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.
10 trang |
Chia sẻ: longpd | Lượt xem: 8695 | Lượt tải: 1
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