Để nắm bắt được tính liên tục vμ tính kế thừa của sự phát triển nμy, 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 chu
Trang 1Chương 2
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 nμy, 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 thμnh 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 bμi toán
lớn với tốc độ rất nhanh Nó thường lμm việc với số liệu với độ dμi 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
Trang 2sự 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 ngμnh ngân hμng, ngμnh khí tượng, các công ty bảo hiểm Tiêu biểu cho loại máy tính nμy 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 vμo đó thì sẽ gây ra lãng phí Do vậy máy tính con thường lμm việc với các dữ liệu có độ dμi 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 nμy 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 lμm việc với số liệu có độ dμi 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, lμm việc với số liệu có độ dμi 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ế ngμy cμng 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 vμo 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 hμng đầu rất nổi tiếng trong lĩnh vực nμy, đó 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
Trang 32 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ệ nμy lμ:
• Độ dμi từ thường lμ 4 bit (cũng có thể dμi 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ồ fclk = 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ý hoμn chỉnh
2.2 Thế hệ 2 (1974 - 1977)
Các bộ vi xử lý đại diện trong thế hệ nμy 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ý nμy 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ỳ nμy đề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ồ fclk = 1-5 MHz
2.3 Thế hệ 3 (1978 - 1982)
Các bộ vi xử lý trong thế hệ nμy 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ệ nμy 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,
Trang 4đề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ồ fclk = 5-10 MHz
Trong thời kỳ nμy 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 nμy còn có thêm cả ADC 12 bit cho 4 kênh đầu vμo 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ệ nμy 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ệ nμy lμ bus địa chỉ đều lμ 32 bit (phân biệt 4 GB bộ
nhớ) vμ có khả năng lμm 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 vμo 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ý nμy đề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ệ nμy 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ệ nμy đề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
Có bộ quản lý bộ nhớ ở bên
trong
không không có
Trang 5B¶ng 2.1.b C¸c bé vi xö lý 32 bit cña Intel
386DX 386SX 486DX 486SX 486DX2 Pentium
82385 ®.khiÓn
Bªn ngoμi, do
82385 ®.khiÓn
I/Dcache 8KB
I/Dcache 8KB
I/Dcache 8KB
Icache 8KB Dcache 8KB
Cã bé qu¶n lý vμ b¶o vÖ
bé nhí ë 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
Dcache 256B
Icache 4KB Dcache4KB
Icache 8KB Dcache 8KB
Cã bé qu¶n lý bé nhë
(MMU) á bªn trong
68851 lμm
Ghi chó ICache: bé nhí cache cho lÖnh DCache: bé nhí cache cho d÷ liÖu
Trang 6Bê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 nμy 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, nhưng 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 thμnh 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 vμo/ra để tạo nên một hệ vi xử
lý hoμn chỉnh Cần lưu ý 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 vμo/ra (I/O)
Thiết bị vμo Thiết bị ra
μi
Hình 2.1 Sơ đồ khối của hệ vi xử lý với các thanh ghi trong vμ ngoμi
Trong sơ đồ nμy ta thấy rõ các khối chức năng chính của hệ vi xử lý gồm:
Trang 7+ 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 thμnh 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 nμy thμnh 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
đó Để lμm được việc nμy 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 Ngoμi 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
toμn 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 toμn 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 lưu trữ lâu dμi sẽ được để ở bộ nhớ ngoμi
Khối phối ghép vμo/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 ngoμi Các thiết bị ngoại vi như bμn phím, chuột, mμn 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 nμy Bộ phận phối
ghép cụ thể giữa bus hệ thống với thế giới bên ngoμi thường được gọi lμ cổng Như vậy
ta sẽ có các cổng vμo để lấy thông tin từ ngoμi vμo vμ các cổng ra để đưa thông tin từ
trong hệ ra ngoμi Tuỳ theo nhu cầu cụ thể của công việc, các mạch cổng nμy 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 nμy đị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 vμo 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 2N
= 65536=64 Kilô ô nhớ khác nhau (1K = 210 = 1024) Khi đọc/ghi với cổng vμo/ra CPU cũng đưa ra
Trang 8mộ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 nμy 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 nμy)
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 nμy 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 vμo) 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 vμo được vμ hoạt động bình thường với bus nμy
Bus điều khiển thường gồm hμng 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 toμn hệ nên các tín hiệu nμy 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 ngoμi (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 toμn hệ thực chất lμ sự phối hợp hoạt động của các thanh
ghi trong vμ ngoμi 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