EUlà nơi xảy ra các quá trình xử lý dữ liệu ở bên trong bộ VXL, ở 
đây có đơn vị số học và đơn vị logic (ALU Arithmetic And logic Unit) c ùng 
với các thanh ghi để xử lý số liệu và ghi giữ các kết quả trung gian EU nhận 
các lệnh và dữ liệu do EU lại được chuyển ra bộ nhớ hoặc với các thiết bị 
ngoại vi thông qua BIU. Như vậy EU không liên hệ trực tiếp với thế giới bên 
ngoài mà luôn luôn thông qua BIU.
                
              
                                            
                                
            
 
            
                 10 trang
10 trang | 
Chia sẻ: maiphuongdc | Lượt xem: 6249 | Lượt tải: 2 
              
            Bạn đang xem nội dung tài liệu Nguyên tắc hoạt động của bộ vi xử lý, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Nguyên tắc hoạt động của bộ vi xử lý 
a. Bên trong của bộ vi xử lýý. 
- Bộ vi xử lý thường được xem là bộ não của hệ máy vi tính. Bộ VXL là một 
vi mạch tích hợp cực lớn. Chúng ta sẽ nghiên cứu bộ VXL điển hình là 
8086/8088 
 Bộ VXL 8086/8088 gồm có 2 phần chính là đơn vị thực hiện lệnh EU 
(Execution Unit) và đơn vị giao tiếp BIU (Bus Interface Unit). 
EU thực hiện tất cả các tính toán số học và logic, còn BIU thu nhận lệnh 
(Fetche) và dữ liệu từ bộ nhớ. Các lệnh này dùng để điều khiển và cho hoạt 
động của MP. 
Các thanh ghi đa năng 
Các thanh ghi chỉ số và con trỏ 
Thanh ghi đoạn 
Con Trỏ lệnh 
 Toán hạng 
Bộ tạo địa chỉ và 
Đ/K BUS 
Hàng đợi lệnh 
ALU 
BUS 
ĐƠN VỊ THỰC HIỆN EU 
ĐƠN VỊ GHÉP NỐI BIU 
 Hình 2.3: Cấu trúc bộ vi xử lý 8086/8088 
Sơ đồ khối chức năng của BVXL 8086/8088 được giới thiệu như hình vẽ. 
Dưới đây chúng ta nghiên cứu sâu hơn về khối chức năng đó. 
b. Tổ chức bên trong của EUvi mạch 8086/88. 
 EU là nơi xảy ra các quá trình xử lý dữ liệu ở bên trong bộ VXL, ở 
đây có đơn vị số học và đơn vị logic (ALU Arithmetic And logic Unit) cùng 
với các thanh ghi để xử lý số liệu và ghi giữ các kết quả trung gian EU nhận 
các lệnh và dữ liệu do EU lại được chuyển ra bộ nhớ hoặc với các thiết bị 
ngoại vi thông qua BIU. Như vậy EU không liên hệ trực tiếp với thế giới bên 
ngoài mà luôn luôn thông qua BIU. 
 Đơn vị thực hiện EU gồm có 2 phần là ALU và các thanh ghi chung, 
các lệnh từ hàng đợi lệnh trong BIU được thu nhận vào, giải mã và thực hiện 
tại đây. Các lệnh được lấy từ trên xuống theo nguyên tắc FIFO (First in First 
out). 
 ALU gồm các mạch có nhiệm vụ thực hiện các phép tính số học hoặc 
logic trên các số nhị phân theo từng cặp bit vào. 
- Các thanh ghi đa năng (General Register): 
 Bao gồm 4 thanh ghi 16 bít. Thanh ghi đa năng dùng để lưu giữ tạm 
các kết quả trung gian 
 Là những thanh ghi 16 bit được ký hiệu là AX, BX, CX, DX 
(Accumulator, Base, Count, Data) được chia làm 2 nửa 8 bít: nửa cao (dùng 
chữ H) và nửa thấp (dùng chữ L). Các thanh ghi có thể dùng nửa 8 bit để lưu 
theo Byte hoặc kết hợp 2 nửa để lưu theo từ. 
AH AL AX: Accumulator 
BH BL BX: Base 
CH CL CX: Count 
DH DL DX: Data 
 8 bít cao 8 bít thấp 
Thanh ghi AX: Thanh ghi tích luỹ là thanh ghi chính để thực hiện các phép 
toán số học, các lệnh xuất nhập cổng. 
Thanh ghi BX: Thanh ghi cơ sở, dùng để chỉ đến vị trí 1 ô nhớ trong 1 đoạn 
Thanh ghi CX: Thanh ghi đếm, dùng để định số lần lặp của lệnh lặp. 
Thanh ghi DX: Thanh ghi dữ liệu, thường dùng để lưu kết quả của các phép 
tính nhân, chia và định địa chỉ trong các lệnh xuất, nhập cổng. 
- Các thanh ghi con trỏ và chỉ số 
 Thanh ghi con trỏ và thanh ghi chỉ gồm có 4 thanh ghi chỉ số và thanh 
ghi con trỏ dùng cho việc lưu trú thông tin vào trong một khu vực đặc biệt 
của bộ nhớ. Các thanh ghi con trỏ (Pointer Register) được ký hiệu là SP và 
BP, còn các thanh ghi chỉ số (Index, Register) thì ký hiệu là SI và DI. Đây là 
các thanh ghi 16 bít, không thể chia thành 2 thanh ghi 8 bít. 
Các thanh ghi này thường được dùng chủ yếu để trỏ hoặc ghi chỉ số để xác định 
một địa chỉ trong bộ nhớ. Các địa chỉ được chứa trong các thanh ghi này có thể 
được liên hợp với các thông tin từ BIU để định vị trí thực của dữ liệu trong bộ 
nhớ. 
SP Stack pointer 
BP Base Pointer 
SI Source Index 
DI Destination Index 
- Bp: Thanh ghi con trỏ cơ sở, dùng trong phép định địa chỉ cơ sở khi truy 
xuất Stack 
- Stack: (Ngăn xếp) là một vùng trong bộ nhớ trong để lưu trữ các dữ liệu 
tạm thời. Stack được sử dụng khi chương trình thực hiện một lệnh gọi 
chương trình con hay 1 ngắt. Lúc đó CPU lưu địa chỉ của lệnh kế tiếp sau 
lệnh gọi vào Stack. Khi thực hiện xong chương trình con hoặc ngắt thì CPU 
sẽ lấy địa chỉ này ra khỏi Stack để có thể thực hiện lệnh kế tiếp. Stack làm 
việc theo nguyên tắc LIFO (Last in First out). 
Để quản lý Stack cần sử dụng con trỏ để chỉ đến tỉnh của Stack. 
- SP: Thanh ghi con trỏ ngăn xếp, được dùng làm con trò để chỉ đến phần 
tử ở đỉnh của Stack. 
- SI và DI: Được dùng trong các lệnh xử lý chuỗi và trong các phép định địa 
chỉ chỉ mục khi truy xuất bộ nhớ. 
SI: Thanh ghi chỉ số đích, dùng để xác định địa chỉ chỉ bắt đầu của chuỗi 
nguồn. 
DI: Thanh ghi chỉ số đích, dùng để xác định địa chỉ bắt đầu của chuỗi số 
đích. 
- Thanh ghi cờ.(Flags register). 
 Là thanh ghi 16 bít Dùng để luư giữ thông tin về các trạng thái công 
tác của EU hoặc kết quả phép toán do ALU thực hiện. MP 8086/8088 có 9 
cờ để ghi thông tin 
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 
 OF DF IF TF SF ZF AF PF CF 
Cờ Các cờ ý nghĩa 
AF 
CF 
OF 
SF 
PF 
ZF 
DF 
IF 
TF 
Auxiliary Flag 
Carry Flag 
Overflow Flag 
Sign Flag 
Parity Fiag 
Zero Flag 
Direcction Flag 
Interupt-Enable Flag 
Trap Flag 
Cờ phụ - chỉ thị nếu số nhớ vượt 4 LSB 
Cờ nhớ - chỉ thị nếu số nhớ vượt 4 MSB 
Cờ tràn - chỉ thị nếu kết quả vượt thang 
Cờ dấu - chỉ thị kết quả âm 
Cờ chẵn - chỉ thị nếu ở kết quả số các số 1 chẵn 
Cờ zero - chỉ thị nếu kết quả bằng 0 
Cờ hướng - nếu DF=1 thực hiện theo chiều 
giảm 
Cờ ngắt - báo MP biết yêu cầu ngắt 
Cờ bẫy - đặt MP vào chế độ chạy từng lệnh 
 CPU 8086/8088 chỉ dùng 9 bít làm cờ 
c.Tổ chức bên trong của BIU 
- Bộ tạo địa chỉ và điều khiển Bus. 
 BIU gồm có mạch tạo địa chỉ và điều khiển BUS. Nó có nhiệm vụ bảo 
đảm cho BUS được sử dụng hết dung lượng. Để đảm bảo được điều đó, BIU 
phải thực hiện 2 chức năng sau: 
- Chức năng 1: BUS nhận trước các lệnh, cất tạm vào dãy chứa lệnh nhờ đó 
mà MP tăng được tốc độ tính toán. 
- Chức năng 2: BUS đảm đương mọi chức năng điều khiển BUS để EU có 
thể tập trung vào việc xử lý dữ liệu và thực hiện lệnh. Con trỏ lệnh chứa địa 
chỉ của lệnh thực hiện tiếp theo. 
 BIU được dùng để trực tiếp truy xuất hoặc phối ghép với những bộ 
phận khác của máy tính. 
 BIU gồm 3 khối chức năng - Đơn vị điều khiển BUS 
- Hàng chứa lệnh 
- Điều khiển địa chỉ 
- Đơn vị điều khiển BUS (Bus Control Unit). 
Dùng để thực hiện các thao tác Bus đối với MP. Nó tiếp nhận và tạo các 
lệnh, dữ liệu và các tín hiệu điều khiển giữa MP và các bộ nhớ khác của hệ. 
Ví dụ, xác định hướng di chuyển của dữ liệu trên BUS dữ liệu bằng đường 
dây điều khiển DT/R (Data transmit/receive) phát hoặc thu dữ liệu. 
-Hàng chứa lệnh (Instruction Queue) 
Dùng hàng chứa lệnh để làm nơi lưu trữ tạm thời các lệnh sẽ được thực hiện 
trong EU. Thông qua đơn vị điều khiển bus, BIU nhận trước các lệnh và cất 
tạm chúng vào trong hàng chứa lệnh. Đây là công việc chiếm nhiều thời gian 
hơn so với việc tính toán trong EU. Do vậy BIU và EU cùng hoạt động song 
song bảo đảm nâng cao hiệu quả làm việc của MP. 
- Đơn vị điều khiển địa chỉ (Address Control Unit) 
MP 8088/8086 có 20 đường địa chỉ (20 bít) vì vậy có khả năng đánh địa chỉ 
đến 1Mb. Đơn vị điều khiển địa chỉ phối hợp hoạt động với con trỏ lệnh, các 
thanh ghi đoạn và mạch tạo địa chỉ để xác định địa chỉ ô nhớ như được vẽ 
trong hình sau. 
- Con trỏ lệnh:(Instruction Pointer - IP) 
Thanh ghi đoạn 
Thanh ghi dữ liệu 
Thanh ghi ngăn xếp 
Thanh ghi phụ 
Con trỏ lệnh 
Bộ tạo 
 địa chỉ 
 16 bit 
Đ/C cơ sở 
Đến bộ nhớ 
20 bit 
 CS 
DS 
SS 
ES 
IP 
Từ EU 
SP, BP, SI, DI, BX 
 ĐƠN VỊ ĐIỀU KHIỂN ĐỊA CHỈ 
Là một thanh ghi 16 bit dùng để chỉ cho MP biết lệnh phải thực hiện tiếp 
theo. Mỗi lần đơn vị thực hiện EU nhận 1 lệnh thì con trỏ lệnh được tăng lên 
để chỉ rõ lệnh được thực hiện tiếp theo trong chương trình. 
- Các thanh ghi đoạn ( Segment Register) 
Gồm có 4 thanh ghi 
- CS: (Code Segment ) Thanh ghi mã lệnh. Chỉ ra đoạn bộ nhớ mã 
- DS: (Data Segment ) Thanh ghi dữ liệu. Chỉ ra đoạn bộ nhớ dữ liệu 
- SS: (Stack Segment ) Thanh ghi ngăn xếp. Chi ra đoạn bộ nhớ dùng 
làm ngăn xếp. 
- ES: (Extra Segment) Thanh ghi phụ . Chỉ ra đoạn nhớ phụ được dùng 
để cất dữ liệu. 
Mỗi đoạn của bộ nhớ có thể dài đến 64Kb. MP 8086/88 sử dụng 20 đường 
địa chỉ nên có thể lập địa chỉ cho 220 ô nhớ (1048576 byte nhớ). Đây là điều 
gây khó khăn bởi vì các thanh ghi của MP đều sử dụng độ dài là 16 bit. Để 
khắc phục vấn đề này người ta đưa ra khái niệm địa chỉ đoạn và địa chỉ 
offset (địa chỉ- độ dời). Người sử dụng các thanh ghi đoạn 16 bit CS, DS, SS 
và ES để xác định địa chỉ dịch chuyển tính từ địa chỉ đoạn. Cụ thể là địa chỉ 
đoạn sẽ được dịch trái 1 khoảng 4 bit kết hợp với địa chỉ offset giữ nguyên 
sẽ tạo thành cách xác định địa chỉ 20 bit. 
Thanh ghi Ofset Thao tác 
CS 
DS 
SS 
ES 
IP 
BX, SI, DI 
SP 
DI 
Nhận lệnh 
Dữ liệu 
Ngăn xếp 
Nơi gửi tới 
            Các file đính kèm theo tài liệu này:
 10_9505.pdf 10_9505.pdf