Chơng 2 Máy VI tính v Hệ thống vi xử lý Bộ vi xử lý có mặt trong các máy vi tính l sự phát triển tiếp theo của bộ xử lý trung tâm đợc dùng nh l một bộ phận chủ chốt trong các máy tính của các thế hệ trớc. Để nắm bắt đợc tính liên tục v tính kế thừa của sự phát triển ny, trớc khi giới thiệu về các bộ vi xử lý ta để ra một chút thời gian để giới thiệu sơ qua về các loại máy tính nói chung. 1. Từ máy tính lớn đến máy vi tính Nh ta đã biết về kiến trúc của máy tính nói chung, một máy tính (computer) thông thờng bao gồm các khối chức năng cơ bản nh: khối xử lý trung tâm (CPU, central processing unit), bộ nhớ (M, memory) v khối phối ghép với thiết bị ngoại vi (I/O, input/output). Tuỳ theo quy mô phức tạp của các khối chức năng kể trên m ngời ta phân các máy tính điện tử đã v đang đợc sử dụng ra thnh các loại sau: 1.1. Máy tính lớn Máy tính lớn (mainframe) l loại máy tính đợc thiết kế để giải các bi toán lớn với tốc độ rất nhanh. Nó thờng lm việc với số liệu với độ di từ 64 bit hoặc hơn nữa v đợc trang bị bộ nhớ rất lớn. Chính vì vậy máy tính lớn cũng lớn về kích thớc vật lý. Chúng thờng đợc dùng để điều khiển các hệ thống thiết bị dùng trong quân 19 sự hoặc các hệ thống máy móc của chơng trình nghiên cứu vũ trụ, để xử lý các thông tin trong ngnh ngân hng, ngnh khí tợng, các công ty bảo hiểm Tiêu biểu cho loại máy tính ny l máy IBM 4381, Honeywell DSP8. Loại máy mạnh nhất trong số các máy lớn đợc gọi l supercomputer (nh loại máy Y-MP/832 của Cray). 1.2. Máy tính con Máy tính con (minicomputer) l một dạng thu nhỏ về kích thớc cũng nh về tính năng của máy tính lớn. Nó ra đời nhằm thoả mãn các nhu cầu sử dụng máy tính cho các ứng dụng vừa phải m nếu dùng máy to vo đó thì sẽ gây ra lãng phí. Do vậy máy tính con thờng lm việc với các dữ liệu có độ di từ l 32 bit với tốc độ chậm hơn v khả năng của bộ nhớ hạn chế hơn. Máy tính con thờng dùng cho các tính toán khoa học kỹ thuật, gia công dữ liệu qui mô nhỏ hay để điều khiển quá trình công nghệ. Tiêu biểu cho nhóm ny l các máy VAX 6360 của Digital Equipment Corporation v MV/8000II của Data General. 1.3. Máy vi tính Máy vi tính (microcomputer) l loại máy tính rất thông dụng hiện nay. Một máy vi tính có thể l một bộ vi điều khiển (microcontroller), một máy vi tính trong một vỏ vi mạch (one-chip microcomputer) hoặc một hệ vi xử lý có khả năng lm việc với số liệu có độ di 1 bit, 4 bit, 8 bit, 16 bit. Hiện nay một số máy vi tính có thể có tính năng so sánh đợc với máy tính con, lm việc với số liệu có độ di từ l 32 bit (thậm chí l 64 bit). Ranh giới phân chia giữa máy vi tính v máy tính con chính vì thế ngy cng không rõ nét. Một đặc điểm tiêu biểu dễ nhận biết của các loại máy vi tính l chúng đều sử dụng các bộ xử lý trung tâm (CPU) đợc chế tạo bằng công nghệ mạch vi điện tử với mức độ tổ hợp lớn, mạch VLSI (very large scale of integration) m ngời ta quen gọi l các bộ vi xử lý (microprocessor, P). Các bộ vi xử lý hiện có trên thị trờng thờng đợc xếp theo các họ phụ thuộc vo các nh sản xuất v chúng rất đa dạng về chủng loại. Nổi bật nhất trong các họ vi xử lý đó l 2 họ của 2 nh sản xuất hng đầu rất nổi tiếng trong lĩnh vực ny, đó l họ vi xử lý 80x86 của Intel v họ vi xử lý 680xx của Motorola. Trong các chơng sau chúng ta sẽ quan tâm chủ yếu đến các bộ vi xử lý, các mạch phụ trợ v các hệ thống xây dựng trên cơ sở linh kiện của Intel, tuy thế sau đây ta cũng sẽ giới thiệu lớt qua về lịch sử phát triển v các đặc điểm chung nhất của các thế hệ vi xử lý từ trớc đến nay. Cuối cùng ta sẽ đa ra các bảng tổng kết, trong đó nêu ra các thông số chính của các bộ vi xử lý thế hệ gần đây nhất của 2 nh cung cấp nổi tiếng l Intel v Motorola. 20 2. Sự phát triển của các bộ vi xử lý 2.1. Thế hệ 1 (1971 - 1973) Năm 1971, trong khi phát triển các vi mạch dùng cho máy tính cầm tay, Intel đã cho ra đời bộ vi xử lý đầu tiên l 4004 (4 bit số liệu, 12 bit địa chỉ). Sau đó Intel v các nh sản xuất khác cũng lần lợt cho ra đời các bộ vi xử lý khác: 4040 (4 bit) v 8008 (8 bit) của Intel, PPS-4 (4 bit) của Rockwell International, IPM-16 (16 bit) của National Semiconductor. Đặc điểm chung của các vi xử lý thế hệ ny l: Độ di từ thờng l 4 bit (cũng có thể di hơn), Công nghệ chế tạo PMOS với đặc điểm mật độ phần tử nhỏ, tốc độ thấp, giá rẻ v chỉ có khả năng đa ra dòng tải nhỏ, Tốc độ thực hiện lệnh: 10- 60 s/lệnh với tần số đồng hồ f clk = 0,1 - 0,8 MHz, Tập lệnh đơn giản v phải cần nhiều vi mạch phụ trợ mới tạo nên một hệ vi xử lý hon chỉnh. 2.2. Thế hệ 2 (1974 - 1977) Các bộ vi xử lý đại diện trong thế hệ ny l các vi xử lý 8 bit 6502 của MOS Technology, 6800 v 6809 của Motorola, 8080 v 8085 của Intel v đặc biệt l bộ vi xử lý Z80 của Zilog. Các bộ vi xử lý ny có tập lệnh phong phú hơn v thờng có khả năng phân biệt địa chỉ bộ nhớ với dung lợng đến 64KB. Có một số bộ vi xử lý còn có khả năng phân biệt đợc 256 địa chỉ cho các thiết bị ngoại vi (họ Intel v Zilog). Chúng đã đợc sử dụng rất rộng rãi trong công nghiệp v nhất l để tạo ra các máy tính 8 bit nổi tiếng một thời nh Apple II v Commodore 64. Tất cả các bộ vi xử lý thời kỳ ny đều đợc sản xuất bằng công nghệ NMOS (với mật độ phần tử trên một đơn vị diện tích cao hơn so với công nghệ PMOS) hoặc CMOS (tiết kiệm điện năng tiêu thụ) cho phép đạt đợc tốc độ từ 1-8 s/lệnh với tần số đồng hồ f clk = 1-5 MHz. 2.3. Thế hệ 3 (1978 - 1982) Các bộ vi xử lý trong thế hệ ny có đại diện l các bộ vi xử lý 16 bit 8086/80186/80286 của Intel hoặc 68000/68010 của Motorola. Một điều tiến bộ hơn hẳn so với các bộ vi xử lý 8 bit thế hệ trớc l các bộ vi xử lý 16 bit có tập lệnh đa dạng với các lệnh nhân, lệnh chia v các lệnh thao tác với chuỗi ký tự. Khả năng phân biệt địa chỉ cho bộ nhớ hoặc cho thiết bị ngoại vi của các vi xử lý thế hệ ny cũng lớn hơn (từ 1 MB đến 16 MB cho bộ nhớ v tới 64 K địa chỉ cho thiết bị ngoại vi đối với họ Intel). Đây l các bộ vi xử lý đợc dùng trong các máy IBM PC, PC/XT, PC/AT v các máy Macintosh của Apple. Phần lớn các bộ vi xử lý trong thế hệ ny 21 đều đợc sản xuất bằng công nghệ HMOS v cho phép đạt đợc tốc độ từ 0,1-1 s/lệnh với tần số đồng hồ f clk = 5-10 MHz. Trong thời kỳ ny cũng xuất hiện các máy vi tính 8 bit trong một vỏ nh 8048/49 v 6805R2 (mạch ny còn có thêm cả ADC 12 bit cho 4 kênh đầu vo tơng tự) hoặc các bộ vi điều khiển 1 bit trong 1 vỏ nh MC 14500B v 4 bit trong 1 vỏ nh MC 141000. 2.4. Thế hệ 4 (1983 - ?) Các bộ vi xử lý đại diện trong thế hệ ny l các vi xử lý 32 bit 80386/80486 v 64 bit Pentium của Intel, các vi xử lý 32 bit 68020/68030/68040/68060 của Motorola. Đặc điểm của các bộ vi xử lý thế hệ ny l bus địa chỉ đều l 32 bit (phân biệt 4 GB bộ nhớ) v có khả năng lm việc với bộ nhớ ảo. Ngời ta cũng áp dụng các cơ chế hoặc các cấu trúc đã đợc sử dụng trong các máy tính lớn vo các bộ vi xử lý: cơ chế xử lý xen kẽ liên tục dòng mã lệnh (pipeline), bộ nhớ cache (bộ nhớ ẩn), bộ nhớ ảo. Các bộ vi xử lý ny đều có bộ quản lý bộ nhớ (MMU) v nhiều khi cả các bộ đồng xử lý toán học ở bên trong. Chính nhờ các cải tiến đó m các bộ vi xử lý thế hệ ny có khả năng cạnh tranh đợc với các máy tính nhỏ trong rất nhiều lĩnh vực ứng dụng. Phần lớn các bộ vi xử lý thế hệ ny đều đợc sản xuất bằng công nghệ HCMOS. Một số thông số chính của các bộ vi xử lý của Intel v Motorola đợc cho trong bảng 2.1 v 2.2. Bảng 2.1.a. Các bộ vi xử lý 16 bit của Intel 8086 8088 80286 Năm sản xuất 6/1978 1979 2/1982 f clk max (đồng hồ nhịp) 10 Mhz 10 Mhz 20 Mhz MIPS (triệu lệnh/s) 0,33 0,33 1,2 Số transistor 29.000 29.000 134.000 Bus số liệu 16 bit 8 bit 16 bit Bus địa chỉ 20 bit 20 bit 24 bit Khả năng địa chỉ 1 MB 1 MB 16 MB Số chân 40 40 68 Chế độ bộ nhớ ảo không không có Có bộ quản lý bộ nhớ ở bên trong không không có Đồng xử lý toán học 8087 8087 80287 22 Bảng 2.1.b. Các bộ vi xử lý 32 bit của Intel 386DX 386SX 486DX 486SX 486DX2 Pentium Năm sản xuất 10/1985 6/1988 4/1989 4/1991 3/1992 5/1993 f clk max (đồng hồ nhịp) 40 Mhz 33MHz 50MHz 25MHz 66 Mhz 100 Mhz MIPS (triệu lệnh/s) 6 2,5 20 16,5 52 112 Số transistor 275.000 275.000 1,2 triệu 1,18 triệu 1,2 triệu 3,1 triệu Bộ nhớ Cache Bên ngoi, do 82385 đ.khiển Bên ngoi, do 82385 đ.khiển I/Dcache 8KB I/Dcache 8KB I/Dcache 8KB Icache 8KB Dcache 8KB Bus số liệu 32 bit 16 bit 32 bit 32 bit 32 bit 64 bit Bus địa chỉ 32 bit 24 bit 32 bit 32 bit 32 bit 32 bit Khả năng địa chỉ 4 GB 16 MB 4 GB 4 GB 4 GB 4 GB Số chân 132 100 168 168 168 273 Chế độ bộ nhớ ảo có có có có có có Có bộ quản lý v bảo vệ bộ nhớ ở bên trong có có có có có có Đồng xử lý toán học 80387DX 80387SX bên trong 80487SX bên trong bên trong Ghi chú I/DCache: bộ nhớ cache (ẩn) chung cho lệnh v dữ liệu ICache: bộ nhớ cache cho lệnh. DCache: bộ nhớ cache cho dữ liệu. Bảng 2.2. Các bộ vi xử lý 16/32 bit của Motorola 68000 68010 68020 68030 68040 68060 Năm sản xuất 1979 1983 1984 1987 1989 1994 f clk max (đồng hồ nhịp) 25 Mhz 25 Mhz 33 Mhz 33-50 Mhz 33-40 Mhz 66 Mhz MIPS (triệu lệnh/s) 2,4 2,4 6,5 12 39 100 Số transistor 200.000 1,2 triệu 2,5 triệu Bus số liệu 16 bit 16 bit 32 bit 32 bit 32 bit 32 bit Bus địa chỉ 24 bit 24 bit 32 bit 32 bit 32 bit 32 bit Khả năng địa chỉ 16 MB 16 MB 4 GB 4 GB 4 GB 4 GB Số chân 64 hoặc 68 64 hoặc 68 114 118 179 223 Bộ nhớ cache không Icache 6B Icache 256B Icache 256B Dcache 256B Icache 4KB Dcache4KB Icache 8KB Dcache 8KB Chế độ bộ nhớ ảo không có có có có có Có bộ quản lý bộ nhở (MMU) ỏ bên trong không không Bên ngoi, do 68851 lm có có có Đồng xử lý toán học không không 68881/68882 68882 bên trong bên trong Ghi chú ICache: bộ nhớ cache cho lệnh. DCache: bộ nhớ cache cho dữ liệu. 23 Bên cạnh các bộ vi xử lý vạn năng truyền thống thờng đợc dùng để xây dựng các máy tính với tập lệnh đầy đủ (complex instruction set computer, CISC) đã nói ở trên, trong thời gian ny cũng xuất hiện các bộ vi xử lý cải tiến dùng để xây dựng các máy tính với tập lệnh rút gọn (reduced instruction set computer, RISC) với nhiều tính năng có thể so sánh với các máy tính lớn ở các thế hệ trớc. Đó l các bộ vi xử lý Alpha của Digital, PowerPC của tổ hợp các hãng Apple-Motorola-IBM Có lẽ hãy còn sớm, nhng cũng đã có khá nhiều biểu hiện để có thể nói đợc rằng sự ra đời của các vi xử lý loại RISC chính l sự bắt đầu cho một thế hệ khác trong lịch sử phát triển của các bộ vi xử lý. 3. Giới thiệu sơ lợc cấu trúc v hoạt động của hệ vi xử lý Trên đây ta đã thấy bộ vi xử lý l một thnh phần rất cơ bản không thiếu đợc để tạo nên máy vi tính. Trong thực tế bộ vi xử lý còn phải kết hợp thêm với các bộ phận điện tử khác nh bộ nhớ v các bộ phối ghép vo/ra để tạo nên một hệ vi xử lý hon chỉnh. Cần lu ý rằng để chỉ một hệ thống có cấu trúc nh trên, thuật ngữ "hệ vi xử lý" mang ý nghĩa tổng quát hơn so với thuật ngữ "máy vi tính", vì máy vi tính chỉ l một trong những ứng dụng cụ thể của hệ vi xử lý. Hình 2.1 giới thiệu sơ đồ khối tổng quát của một hệ vi xử lý. . Bus điều khiển Bus dữ liệu Bus địa chỉ Bộ xử lý trung tâm (CPU) Bộ nhớ (Memory) ROM-RAM Phối ghép vo/ra (I/O) Thiết bị vo Thiết bị ra thanh ghi thanh ghi i Hình 2.1. Sơ đồ khối của hệ vi xử lý với các thanh ghi trong v ngoi. Trong sơ đồ ny ta thấy rõ các khối chức năng chính của hệ vi xử lý gồm: trong ngo 24 + Khối xử lý trung tâm (central processing unit, CPU), + Bộ nhớ bán dẫn(memory, M), + Khối phối ghép với các thiết bị ngoại vi (input/output, I/O), + Các bus truyền thông tin. Ba khối chức năng đầu liên hệ với nhau thông qua tập các đờng dây để truyền tín hiệu gọi chung l bus hệ thống. Bus hệ thống bao gồm 3 bus thnh phần. ứng với các tín hiệu địa chỉ, dữ liệu v điều khiển ta có bus địa chỉ, bus dữ liệu v bus điều khiển. CPU đóng vai trò chủ đạo trong hệ vi xử lý. Đây l một mạch vi điện tử có độ tích hợp rất cao. Khi hoạt động, nó đọc mã lệnh đợc ghi dới dạng các bit 0 v bit 1 từ bộ nhớ, sau đó nó sẽ giải mã các lệnh ny thnh dãy các xung điều khiển ứng với các thao tác trong lệnh để điều khiển các khối khác thực hiện từng bớc các thao tác đó. Để lm đợc việc ny bên trong CPU có thanh ghi dùng để chứa địa chỉ của lệnh sắp thực hiện gọi l thanh ghi con trỏ lệnh (instruction pointer, IP) hoặc bộ đếm chơng trình (program counter, PC), một số thanh ghi đa năng khác cùng bộ tính toán số học v lôgic (ALU) để thao tác với dữ liệu. Ngoi ra ở đây còn có các hệ thống mạch điện tử rất phức tạp để giải mã lệnh v từ đó tạo ra các xung điều khiển cho ton hệ. Bộ nhớ bán dẫn hay còn gọi l bộ nhớ trong l một bộ phận khác rất quan trọng của hệ vi xử lý. Tại đây (trong ROM) ta có thể chứa chơng trình điều khiển hoạt động của ton hệ để khi bật điện thì CPU có thể lấy lệnh từ đây m khởi đầu hệ thống. Một phần của chơng trình điều khiển hệ thống, các chơng trình ứng dụng, dữ liệu cùng các kết quả của chơng trình thờng đợc để trong RAM. Các dữ liệu v chơng trình muốn lu trữ lâu di sẽ đợc để ở bộ nhớ ngoi. Khối phối ghép vo/ra (I/O) tạo ra khả năng giao tiếp giữa hệ vi xử lý với thế giới bên ngoi. Các thiết bị ngoại vi nh bn phím, chuột, mn hình, máy in, chuyển đổi số/tơng tự (D/A converter, DAC) v chuyển đổi tơng tự/số (A/D converter, ADC), ổ đĩa từ đều liên hệ với hệ vi xử lý qua bộ phận ny. Bộ phận phối ghép cụ thể giữa bus hệ thống với thế giới bên ngoi thờng đợc gọi l cổng. Nh vậy ta sẽ có các cổng vo để lấy thông tin từ ngoi vo v các cổng ra để đa thông tin từ trong hệ ra ngoi. Tuỳ theo nhu cầu cụ thể của công việc, các mạch cổng ny có thể đợc xây dựng từ các mạch lôgic đơn giản hoặc từ các vi mạch chuyên dụng lập trình đợc. Bus địa chỉ thờng có từ 16, 20, 24 đến 32 đờng dây song song chuyển tải thông tin của các bit địa chỉ. Khi đọc/ghi bộ nhớ CPU sẽ đa ra trên bus ny địa chỉ của ô nhớ liên quan. Khả năng phân biệt địa chỉ (số lợng địa chỉ cho ô nhớ m CPU có khả năng phân biệt đợc) phụ thuộc vo số bit của bus địa chỉ. Ví dụ nếu một CPU có số đờng dây địa chỉ l N =16 thì nó có khả năng địa chỉ hoá đợc 2 N = 65536=64 Kilô ô nhớ khác nhau (1K = 2 10 = 1024). Khi đọc/ghi với cổng vo/ra CPU cũng đa ra trên bus địa chỉ các bit địa chỉ tơng ứng của cổng. Trên sơ đồ khối ta dễ nhận ra tính 25 một chiều của bus địa chỉ qua chiều của mũi tên. Chỉ có CPU mới có khả năng đa ra địa chỉ trên bus địa chỉ (sau ny ta sẽ thấy còn mạch DMAC, mạch điều khiển trao đổi dữ liệu trực tiếp giữa bộ nhớ - thiết bị ngoại vi cũng có khả năng ny). Bus dữ liệu thờng có từ 8, 16, 20, 24, 32 đến 64 đờng dây tuỳ theo các bộ vi xử lý cụ thể. Số lợng đờng dây ny quyết định số bit dữ liệu m CPU có khả năng xử lý cùng một lúc. Chiều mũi tên trên bus số liệu chỉ ra rằng đây l bus 2 chiều, nghĩa l dữ liệu có thể đợc truyền đi từ CPU (dữ liệu ra) hoặc truyền đến CPU (dữ liệu vo). Các phần tử có đầu ra nối thẳng với bus dữ liệu đều phải đợc trang bị đầu ra 3 trạng thái để có thể ghép vo đợc v hoạt động bình thờng với bus ny. Bus điều khiển thờng gồm hng chục đờng dây tín hiệu khác nhau. Mỗi tín hiệu điều khiển có một chiều nhất định.Vì khi hoạt động CPU đa tín hiệu điều khiển tới các khối khác trong hệ, đồng thời nó cũng nhận các tín hiệu điều khiển từ các khối đó để phối hợp hoạt động của ton hệ nên các tín hiệu ny trên trên hình vẽ đợc thể hiện bởi các đờng có mũi tên theo 2 chiều, điều đó không phải l để chỉ tính 2 chiều của một tín hiệu m l tính 2 chiều của cả nhóm tín hiệu. Hoạt động của hệ thống vi xử lý trên cũng có thể đợc nhìn theo một cách khác. Trong khi hoạt động v tại một thời điểm nhất định, về mặt chức năng mỗi khối trong hệ thống trên tơng đơng với các thanh ghi trong (nằm trong CPU) hoặc các thanh ghi ngoi (nằm rải rác trong bộ nhớ ROM, bộ nhớ RAM v trong khối phối ghép I/O). Hoạt động của ton hệ thực chất l sự phối hợp hoạt động của các thanh ghi trong v ngoi nói trên để thực hiện sự biến đổi dữ liệu hoặc sự trao đổi dữ liệu theo các yêu cầu đã định trớc. 26 . Chơng 2 Máy VI tính v Hệ thống vi xử lý Bộ vi xử lý có mặt trong các máy vi tính l sự phát triển tiếp theo của bộ xử lý trung tâm đợc dùng nh l một bộ phận chủ chốt trong các máy tính của. bit trong 1 vỏ nh MC 141000. 2. 4. Thế hệ 4 (1983 - ?) Các bộ vi xử lý đại diện trong thế hệ ny l các vi xử lý 32 bit 80386/80486 v 64 bit Pentium của Intel, các vi xử lý 32 bit 68 020 /68030/68040/68060. (triệu lệnh/s) 2, 4 2, 4 6,5 12 39 100 Số transistor 20 0.000 1 ,2 triệu 2, 5 triệu Bus số liệu 16 bit 16 bit 32 bit 32 bit 32 bit 32 bit Bus địa chỉ 24 bit 24 bit 32 bit 32 bit 32 bit 32 bit Khả