Khi nhu cầu xử lý số liệu đòi hỏi có độ chính xác cao và thực hiện các chức năng bởi các giải thuật tinh xảo và đòi hởi xử lý nhanh, thì các CPU 8 bit có thể không đáp ứng được, đặc biệt khi HTN có sử dụng các hệ điều hành như RTOS. Trong trường hợp này cần bộ xử lý với số bit biểu diễn số liệu lên đến 16, 32 bit. Với họ CPU đa năng, có thể chọn Intel 8086/8088. Dưới đây là mô hình kiến trúc của Intel 8986:
54
Hình 2.26 CPU Intel x86
55
Các CPU họ 80x86 được phát triển trên cơ sở công nghệ chế tạo CHMOS với mật độ tích hợp rất cao (VLSI), có độ tiêu hao công suất rất nhỏ. Sơ đồ khối chức năng của CPU 8086 được thể hiện trên như hình trên, gồm hai thành phần chủ yếu là đơn vị ghép nối BUS (BIU – BUS Interface Unit), đơn vị thực thi lệnh (EU – Execute Unit). Tất cả các thanh ghi và đường truyền dữ liệu trong EU đều có độ dài 16 bits. BIU thực hiện tất cảc các nhiệm vụ giao tiếp với BUS bên ngoài: thiết lập khâu liên kết với BUS dữ liệu, BUS địa chỉ và BUS điều khiển. Dữ liệu được trao đổi giữa CPU với bộ nhớ khi EU có yêu cầu, song không được truyền trực tiếp tới EU mà thông qua một vùng nhớ RAM dung lượng nhỏ (6 bytes) được gọi là hàng nhận lệnh trước (Instruction Stream Byte Queue PQ - PreFetch Quere) rồi mới được truyền cho hệ thống thực thi lệnh EU. BUI bao gồm các thanh ghi đoạn nhớ, con trỏ lệnh, và bộ điều khiển BUS.
EU chính là “lõi” của họ CPU X86 và gần giống như CPU 8085 đã đề cập.
Có thể mô tả cách làm việc đơn giản như sau: Khi EU đang thực hiện một lệnh thì BUI đã tìm và lấy lệnh sau từ RAM ngoài và đặt sẵn vào PQ. Đây là cơ chế đường ống (pipeline), một kỹ thuật tăng tốc độ cho CPU. Kỹ thuật đường ống sử dụng một vùng nhớ RAM cực nhanh (PQ), làm tăng đáng kể tốc độ của bộ xử lý thông qua việc truy tìm lệnh ở PQ thay vì tìm từ bộ nhớ RAM bên ngoài. Nếu so với cách thức truyền thống, có thể coi thực tế thời gian lấy lệnh bằng 0. Có thể tìm hiểu thêm về CPU loại này từ các tài liệu chuyên môn khác.
Cho dù CPU hoạt động bên trong có khác, nhưng những nguyên lí máy tính thì không có gì thay đổi khi thiết kế. Khi tìm hiểu kĩ tài liệu thiết kế với CPU cụ thể ta có thể lên được một sơ đồ cho bo mạch. Với CPU 8086, một thiết kế với qui mô tối thiểu sẽ như sau:
- CPU
- Mạch tạo xung nhịp đồng hồ 8284
- Mạch tạo các tín hiệu cho BUS điều khiển 8288 - Mạch chốt địa chỉ latch 16 bit với xung ALE - Mạch khuyếch đại BUS dữ liệu 3 trang thái 8286
Mạch điều khiển ngắt (sử dụng vi mạch chuyên dụng 8259 cho 8 ngắt, mở rộng tới 16 ngắt, tổ chức theo vector, khác với CPU 8085 !). Các vector ngắt được định nghĩa như sau:
Số của vector Ý nghĩa của vector
0 Divide error 1 Debug exception
2 Non-masked interrupt NMI 3 One byte interrupt INT 4 Interrupt on overflow INTO S Array bounds check BOUND 6 Invalid opcode
7 Device not available 8 Double fault
9 Coprocessor segment overrun 10 Invalid TSS
56 11 Segment not present 12 Stack fault
13 General protection fault 14 Page fault
15 Reserved
16 Coprocessor error 17-32 Reserved
33-255 INT n trap instructions
Hình 2.27 Bo mạch với tối thiểu với CPU 8086:BUS controller, Ngắt controller, RAM Biểu đồ thời gian.
57
Hình 2.28 CPU 8086 timing: lệnh đọc Ở T 1 :
§ Địa chỉ đặt lên BUS dồn kênh AD Address/Data bus.
§ Tín hiệu điều khiển M/ IO , ALE and DT/ R sẽ cho biết thao tác là ttruy nhập bộ nhớ hay thao tác vào/ra (do mã lệnh OPCODE). Chốt địa chỉ lại, lạp hướng truyề dữ liệu trên BÚ dũ liêu.
Ở T2:
§ 8086 phát tín hiệu RD hay WR, DEN. Để ghi dua liệu,DEN cho phép bộ nhớ hay thiết bị IO nhận dữ liệu để ghivà CPU nhận dữ liêu đọc.
Ở T 3:
§ Bộ nhớ nhận dữ liệu.
§ READY dùng để kéo dài số trạng thái chờ nếu sử dụng RAM có thời gian truy nhập lâu (access time). READ được CPU ghi nhận ở cuối T
§ Nếu READ=low, T3 thành T đợi (kéo dài trạng thái truy nhập RAM RD hay WR.
§ READY=high, dữ liệu được ghi nhận cuối T3.
Ở T4:
§ BUS treo, chuẩn bị cho chu kì tiếp theo. Lưu ý: Khi thực hành đọc kĩ tài liệu CPU 8086 !