Control & status registerCó một số thanh ghi được dùng để điều khiển hoạt động của CPU Program Counter Instruction Decoding Register Memory Address Register Memory Buffer Regist
Trang 1CHƯƠNG 4
BỘ VI XỬ LÝ
Trang 31 Kiến trúc chung của bộ vi xử lý
Tìm nạp dữ liệu (Fetch data)
Xử lý dữ liệu (Process data)
Ghi dữ liệu (Write data)
CPU với bus hệ thống
Bộ nhớ trong,
là chỗ chứa tạm thời
Trang 41 Kiến trúc chung của bộ vi xử lý
KTMM
4 / 50
Sơ đồ kiến trúc bên trong của CPU
Trang 5Là một trong các quyết định thiết kế quan trọng
Mức cao nhất trong phân cấp bộ nhớ
KTMM
5 / 50
Trang 6User-visible register
User-visible register là thanh ghi có thể được tham chiếu
qua ngôn ngữ máy, cho phép thu nhỏ bộ nhớ chính bằng tối ưu hóa việc sử dụng các thanh ghi, bao gồm các loại:
General Purpose: đa chức năng, chứa operand của chỉ thị, có thể phân chia cho các chức năng khác nhau bởi người lập trình
Data: chỉ chứa data, không được dùng để tính toán địa chỉ
Address: dùng cho chế độ địa chỉ như segment pointer, index register, stack pointer
Condition Codes: chứa các mã điều kiện (còn gọi là các flag)
KTMM
6 / 50
Trang 7Control & status register
Có một số thanh ghi được dùng để điều khiển hoạt động của CPU
Program Counter
Instruction Decoding Register
Memory Address Register
Memory Buffer Register
Tất cả các thiết kế đều có một hay tập thanh ghi gọi là PSW (Program Status Word)
KTMM
7 / 50
Trang 8Ví dụ Bộ xử lý 8086
Vi xử lý Intel 8086 là vi xử lý 16 bit, các phép toán xử lý bên trong CPU thực hiện trên số nhị phân 16 bit Bao gồm:
Bộ thanh ghi đa dụng
Bộ thanh đoạn và con trỏ lệnh
Thanh ghi trạng thái
KTMM
8 / 50
Trang 9Bộ xử lý 8086: Bộ thanh ghi đa dụng
Gồm 8 thanh ghi 16 bit.
Các thanh ghi AX, BX, CX, DX có thể dùng phân nửa như các thanh ghi 8 bit AH, AL, BH, BL, CH, CL, DH, DL.
Thanh ghi AH là nửa cao của thanh ghi AX.Thanh ghi AL
là nửa thấp của thanh ghi AX.
- AX là thanh ghi bộ tích lũy 16 bit (ACC) AL là thanh ghi
bộ tích lũy 8 bit BX là thanh ghi nền (base register) CX là thanh ghi bộ đếm (counter).DX là thanh ghi dữ liệu (data).
SI là thanh ghi chỉ số nguồn (source index).
DI là thanh ghi chỉ số đích (destination index).
BP là thanh ghi con trỏ nền (base pointer).
SP là thanh ghi con trỏ chồng (stack pointer).
9 / 50
Trang 10Bộ xử lý 8086: Bộ thanh ghi đa dụng
Gồm 8 thanh ghi 16 bit.
Các thanh ghi AX, BX, CX, DX có thể dùng phân nửa như các thanh ghi 8 bit AH, AL, BH, BL, CH, CL, DH, DL.
Thanh ghi AH là nửa cao của thanh ghi AX.Thanh ghi AL
là nửa thấp của thanh ghi AX.
- AX là thanh ghi bộ tích lũy 16 bit (ACC) AL là thanh ghi
bộ tích lũy 8 bit BX là thanh ghi nền (base register) CX là thanh ghi bộ đếm (counter).DX là thanh ghi dữ liệu (data).
SI là thanh ghi chỉ số nguồn (source index).
DI là thanh ghi chỉ số đích (destination index).
BP là thanh ghi con trỏ nền (base pointer).
SP là thanh ghi con trỏ chồng (stack pointer).
10 /
50
Trang 11Bộ xử lý 8086: Bộ thanh đoạn và con trỏ lệnh
Gồm 4 thanh ghi đoạn 16 bit dùng để quản lý bộ nhớ theo phương pháp phân đoạn.
CS là thanh ghi đoạn chương trình (code segment).
DS là thanh ghi đoạn dữ liệu (data segment).
SS là thanh ghi đoạn chồng (stack segment).
ES là thanh ghi đoạn mở rộng (extra segment).
IP là thanh ghi con trỏ lệnh (instruction pointer).
11 /
50
Trang 12Bộ xử lý 8086: Thanh ghi cờ
SF là cờ dấu (sign flag) CF là cờ nhớ (carry flag) ZF là cờ
không (zero flag) OF là cờ tràn (overflow flag) AF là cờ trung
gian (auxiliary flag) hay còn gọi là cờ nhớ nửa (half-carry flag)
AF = 0 khi không có sự tràn về dung lượng 4 bit AF = 1 khi có
sự tràn về dung lượng 4 bit.
Ví dụ : phép toán 00001001 + 00000111 = 00010000 sẽ lập cờ
AF lên 1.
Cờ AF thường được dùng trong các phép toán BCD (là các số dùng hệ nhị phân 4 bit để biểu diễn số thập phân từ 0 ÷ 9).
PF là cờ kiểm tra chẳn lẻ (parity flag).
DF là cờ định hướng (direction flag).DF = 0 : định hướng giảm
địa chỉ cho các lệnh xử lý chuỗi DF = 1 : định hướng tăng địa chỉ cho các lệnh xử lý chuỗi.
IF là cờ ngắt quãng (interrupt enable flag) IF = 0 : cấm ngắt
cứng INTR IF = 1 : cho phép ngắt cứng INTR.
12 /
50
Trang 13Đơn vị số học và logic ALU
Định nghĩa: là 1 phần của máy tính thực sự thực hiện
các thao tác số học và logic trên dữ liệu Tất cả các thành phần khác của hệ thống máy tính – đơn vị điều khiển, thanh ghi, bộ nhớ, chủ yếu mang dữ liệu vào cho ALU để ALU xử lý và sau đó đưa kết quả ra ngoài
KTMM
13 /
50
Trang 14Đơn vị số học và logic ALU
KTMM
14 /
50
Trang 15Đơn vị điều khiển CU
KTMM
15 /
50
Đơn vị điều khiển thực hiện 2 công tác chính:
Sự sắp xếp chuỗi (sequencing): Đơn vị điều khiển
CPU sắp xếp chuỗi vi thao tác vào 1 chuỗi liên tục thích hợp, dựa trên chương trình đang thực hiện
Sự thi hành (Execution): Đơn vị điều khiển khiến mỗi
vi thao tác được thực hiện Đơn vị điều khiển thao tác dựa vào việc sử dụng các tín hiệu điều khiển
Trang 16Đơn vị điều khiển CU
KTMM
16 /
50
Trang 17Các tín hiệu điều khiển vào
Clock: đây là cách đơn vị điều khiển “giữ thời gian” Đơn vị điều khiển tạo ra 1 vi thao tác (hoặc 1 tập các thao tác đông thời) được thực hiện với mỗi xung đồng
hồ Đây là 1 vài lần nhắc đến như là chu kỳ thời gian
xử lý, hoặc chu kỳ thời gian đồng hồ
Thanh ghi chỉ lệnh: mã chỉ lệnh hiện tại được dùng để xác định vi thao tác nào được thực hiện trong chu kì thi hành
Cờ: có các yêu cầu bởi đơn vị điều khiển để xác định trạng thái của CPU và kết quả của thao tác ALU trước
VD, đối với chỉ lệnh Increment and skip if rezo (ISZ), đơn vị điều khiển sẽ lượng gia PC nếu cờ Rezo được đặt
KTMM
17 /
50
Trang 18Các tín hiệu điều khiển vào
Các tín hiệu điều khiển từ bus điều khiển: Khẩu phần bus điều khiển của bus hệ thống cung cấp tín hiệu cho đơn vị điều khiển, như tín hiệu ngắt và sự công nhận
KTMM
18 /
50
Trang 19Các tín hiệu điều khiển ra
Tín hiệu điều khiển trong CPU: có 2 loại: nó khiến sữ liệu bị di chuyển từ 1 thanh ghi tới các thanh ghi khác,
và làm hoạt động các chức năng ALU cụ thể
Các tín hiệu điều khiển bus: cũng có 2 loại các tín hiệu điều khiển bộ nhớ, và tín hiệu điều khiển module vào ra
KTMM
19 /
50
Trang 20Đơn vị điều khiển chương trình
KTMM
20 /
50
Trang 21Đơn vị điều khiển chương trình