Đơn vị điều khiển CU Chức năng: • Nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnh IP • Tăng nội dung thanh ghi PC mỗi khi nhận lệnh song • Giải mã lệnh và xác định thao tác mà lệnh yêu cầu
Trang 2Cấu trúc cơ bản
2
Trang 3Cấu trúc bên trong CPU
3
Trang 4Cấu trúc bên trong CPU
4
Trang 5Cấu trúc cơ bản
1 Đơn vị điều khiển (Control Unit – CU)
2 Đơn vị số học và logic (Arithmetic and Logic
Unit - ALU)
3 Tập thanh ghi (Register File - RF)
và Bus bên trong (Internal Bus)
5
Trang 6Đơn vị số học (ALU)
Chức năng:
Thực hiện các phép toán số học và phép toán logic:
• Số học: cộng, trừ, nhân, chia, tăng, giảm, đảo dấu
• Logic: AND, OR, XOR, NOT, phép dịch bit.
6
Trang 7Đơn vị số học (ALU)
Mô hình kết nối
ALU chuyên sử lí dữ liệu nhưng không lưu dữ liệu
7
Trang 8Đơn vị điều khiển (CU)
Chức năng:
• Nhận lệnh từ bộ nhớ đưa vào thanh ghi lệnh IP
• Tăng nội dung thanh ghi PC mỗi khi nhận lệnh song
• Giải mã lệnh và xác định thao tác mà lệnh yêu cầu
• Phát ra tín hiệu điều khiển thực thi lệnh
• Nhận các tín hiệu yêu cầu từ BUS hệ thống và giải đáp những yêu cầu đó
8
Trang 9Đơn vị điều khiển (CU)
9
Mô hình kết nối
Trang 10Đơn vị điều khiển (CU)
Tín hiệu vào Control Unit:
Clock: tín hiệu xung nhịp từ mạch tạo dao động
bênh ngoài.
Mã lệnh từ thanh ghi lệnh đưa đến CU để giải mã
Các cờ từ thanh ghi cờ cho biết trạng thái của CPU
Các tín hiệu điều khiển từ BUS điều khiển
10
Trang 11Đơn vị điều khiển (CU)
Tín hiệu ra Control Unit:
Các tín hiệu điều kiển bên trong CPU:
Điều khiển các thanh ghi
Điều khiển ALU
Các tín hiệu điều khiển bên ngoài CPU:
Điều khiển bộ nhớ
Điều khiển các module vào/ra
11
Trang 12Tập thanh ghi (Registers)
Là các phần tử có khả năng lưu trữ thông tin với dung lượng 8, 16 , 32, 64 bit
Được xây dựng từ các FlipFlop nên có tốc độ truy xuất rất nhanh
12
Trang 13Tập thanh ghi (Registers)
Chức năng
• Là vùng nhớ được CPU nhận biết qua tên thanh ghi và
có tốc độ truy xuất cực nhanh
• Chứa thông tin tạm thời phục vụ cho hoạt động ở thời điểm hiện tại của CPU
• Số lượng thanh ghi tùy thuộc vào bộ vi xử lý cụ thể tăng hiệu năng CPU
• Thanh ghi chia làm 2 loại: thanh ghi đặc biệt và thanh ghi thông dụng.
13
Trang 15General Registers
Các thanh ghi mục đích chung
Gồm các thanh ghi AX, BX, CX, DX, Các thanh
ghi này được sử dụng như các thanh ghi dữ liệu
16 bít hay hai thanh ghi dữ liệu chiều dài 8 bít
Các thanh ghi mục đích chung được dùng để
chứa các dữ liệu cần thiết khi thực hiện các phép toán hoặc các tác vụ xuất nhập
15
Trang 16Thanh ghi AX
Thanh ghi AX (Accumulator register) : thanh ghi tích
luỹ
Thí dụ nếu AX=1234h thì AH=12H AL=34h
Đây 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 Ngoài ra nó cũng được dùng trong một số lệnh xử lý chuỗi
MUL BH ; AX ← AL*BH
16
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
AL AH
Trang 17Thanh ghi BX
Thanh ghi BX (Base register) : dài 16 bit nhưng nó
cũng có thể chia làm 2 thanh ghi 8 bit BH và BL
Thường thanh ghi BX được dùng trong phép định địa
chỉ cơ sở khi truy xuất các dữ liệu trong bộ nhớ
Trang 18Thanh ghi CX
CX (Counter register) : thanh ghi này dùng làm bộ
đếm trong các vòng lặp Các lệnh tự động lặp lại và sau mỗi lần lặp giá trị của CX tự động giảm đi 1
CX thường chứa số lần dịch, quay trong các lệnh dịch,
quay thanh ghi
18
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CL CH
Trang 20General Registers
Đối với một số CPU đời mới (80386), có các
thanh ghi dài 32, 64 bit Ta ghi thêm E đứng trước tên các thanh ghi 16 bit
EAX, EBX, ECX, EDX
20
Trang 21Thanh ghi đoạn ( segemt R.)
CPU có 4 thanh ghi segment dài 16 bit, các thanh ghi
này không thể chia làm 2 thanh ghi 8 bit như 4 thanh ghi AX,BX,CX và DX
Các thanh ghi đoạn được sử dụng như là địa chỉ cơ sở
của các lệnh trong chương trình, stack và dữ liệu
4 thanh ghi đoạn : CS (Code Segment), DS (Data Segment), SS (Stack Segment) và ES (Extra
Segment)
21
Trang 22Thanh ghi đoạn ( segemt R.)
CS (Code segment): xác định đoạn lệnh – nơi chứa
chương trình được thi hành
DS (Code segment): xác định đoạn dữ liệu – nơi chứa
chương trình được thi hành
SS (Stack segment): xác định đoạn stack – vùng làm việc tạm thời dùng để theo dõi các tham số và các địa chỉ đang được chương trình hiện hành sử dụng
ES (extra segment): trỏ đến đoạn thêm, thường được
dùng để bổ sung cho đoạn dữ liệu có vùng nhớ
>64k cho đoạn dữ liệu
22
Trang 23Thanh ghi con trỏ và chỉ số
Bộ đếm chương trình PC (Pointer Counter)
Còn được gọi là con trỏ lệnh IP (Instruction Pointer)
Giữ địa chỉ của lệnh tiếp theo sẽ được nhận vào
Sau khi một lệnh được nhận vào, nội dung PC tự
động tăng để trỏ sang lệnh kế tiếp
23
Trang 24Thanh ghi con trỏ và chỉ số
24
.
Lệnh Lệnh Lệnh
Lệnh sẽ được nhận vào Lệnh kế tiếp Lệnh Lệnh
.
PC
Trang 25Thanh ghi con trỏ và chỉ số
Thanh ghi con trỏ dữ liệu (Data Pointer)
Chứa địa chỉ của ngăn nhớ dữ liệu mà CPU muốn truy nhập
Thường có một số thanh ghi con trỏ dữ liệu
25
Trang 26Thanh ghi con trỏ và chỉ số
Con trỏ ngăn xếp SP (Stack Pointer)
SP chứa địa chỉ của ngăn nhớ đỉnh ngăn xếp
Khi cất một thông tin vào ngăn xếp:
• Nội dung của SP tự động giảm
• Thông tin được cất vào ngăn nhớ được trỏ bởi SP
Khi lấy một thông tin ra khỏi ngăn xếp:
• Thông tin được đọc từ ngăn nhớ được trỏ bởi SP
• Nội dung của SP tự động tăng
Khi Ngăn xếp rỗng, SP trỏ vào đáy
26
Trang 27Thanh ghi con trỏ và chỉ số
Con trỏ ngăn xếp SP (Stack Pointer) (tt)
27
Chiều tăng của địa chỉ
Trang 28Thanh ghi con trỏ và chỉ số
Thanh ghi cơ sở và thanh ghi chỉ số
Thanh ghi cở sở (Base register): chứa địa chỉ của
ngăn nhớ cơ sở (địa chỉ cơ sở)
Thanh ghi chỉ số (index register): chứa độ lệch địa
chỉ giữa ngăn nhớ mà CPU cần truy cập so với ngăn nhớ cơ sở (chỉ số)
Địa chỉ của ngăn nhớ cần truy nhập = địa chỉ cơ sở +
chỉ số
28
Trang 29Thanh ghi con trỏ và chỉ số
Base registers & Index register
29
Trang 30Thanh ghi con trỏ và chỉ số
SI (source index) là chỉ số nguồn, trỏ vào dữ
liệu mà địa chỉ đoạn được ghi trong DS
DI (destination index) là chỉ số đích, cũng trỏ
vào đoạn dữ liệu mà địa chỉ đoạn ghi trong DS
30
Trang 32Cờ trạng thái
Cờ nhớ CF (Carry Flag): cờ nhớ CF=1 khi có
nhớ hoặc trừ có mượn từ bít có trọng số cao nhất (Most Significant Bit)
32
Trang 33Cờ trạng thái
Chúng ta thực hiện phép cộng có nhớ với thanh
ghi R1 = 200d và thanh ghi R2 = 70d và ghi kết quả vào thanh R1(mà thanh ghi R1 có khả năng chứa đến 255 (8bits))
33
1 1 0 0 1 0 0 0 + 0 1 0 0 0 1 1 0
1 0 0 0 0 1 1 1 0 CF = 1 1 1 1 0
R1
Trang 34Cờ trạng thái
Cờ phụ AF (Auxiliary Carry Flag): cờ nhớ phụ
dùng cho các phép tính với mã BCD AF = 1 khi
có nhớ hoặc mượn từ một số BCD thấp (4 bit thấp) sang một số BCD cao (4 bit cao)
BCD: binary-coded decimal
25H = 0010 0101b
34
Trang 35Cờ trạng thái
Ví dụ về cộng 2 số 29H và 18H.
35
0 0 1 0 1 0 0 1 + 0 0 0 1 1 0 0 0
0 1 0 0 0 0 0 1 + 0 1 1 0
0 1 0 0 0 1 1 1
2 9 H + 1 8 H
4 1 H + 6 H
4 7 H
AF = 1
AF = 1
Trang 36Cờ trạng thái
Cờ Zero ZF (Zero Flag): Ðược bật nếu kết quả
của một phép toán vừa thực hiện bằng 0
Số A = 1001b, Số B = 0110b Thực hiện phép
AND giữa 2 số này
36
1 0 0 1 AND 0 1 1 0
0 0 0 0
ZF = 1
Trang 37Cờ trạng thái
Cờ dấu SF (Sign Flag): Có giá trị tương ứng với
bít có trọng số cao nhất (MSB) của kết quả phép toán vừa được thực hiện
37
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
Trang 38Cờ trạng thái
Cờ chẵn lẻ PF (Parity Flag): cờ kiểm tra chẵn lẻ
PF=1 (0) khi tổng số bít 1 trong kết quả là chẵn (lẻ)
Ví dụ: thực hiện phép cộng giữa số
0010 1001b và 0001 1000b
38
0 0 1 0 1 0 0 1 + 0 0 0 1 1 0 0 0
0 1 0 0 0 0 0 1 Số bit 1 = 2 (chẵn) ZF = 1
Trang 39Cờ trạng thái
Cờ tràn OF (Overflow Flag): cờ tràn OF=1 khi kết quả là
một số vượt ra ngoài giới hạn biểu diễn của nó trong
khi thực hiện phép toán cộng trừ số có dấu (từ -32767
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Trang 401 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
Trang 41 Vậy làm thế nào CPU biết là có tràn hay không?
Nếu phép toán có nhớ vào msb mà msb không nhớ ra hay ngược lại có nhớ ra nhưng không nhớ vào msb thì tràn xuất hiện và set OF = 1.
41
Trang 42Cờ điều khiển
TF (trap flag) cờ bẫy, TF = 1 khi vi xử lý ở trong
chế độ chạy từng lệnh (chế độ này dùng khi cần tìm lỗi trong một chương trình)
IF (interrupt enable flag) cờ cho phép ngắt, IF = 1
cho phép các yêu cầu ngắt che được (maskable interrupt) được tác động
DF (direction flag) cờ hướng DF = 1 khi CPU
làm việc với chuỗi ký tự theo thứ tự từ phải sang trái (lùi)
42
Trang 43 Cache là một loại bộ nhớ có kích thước nhỏ và
tốc độ cao thường là RAM tĩnh chứa các phần được truy cập gần nhất của bộ nhớ chính
Gồm memory caching (bộ nhớ cache hay bộ nhớ
truy xuất nhanh) và disk caching (bộ nhớ đệm đĩa)
43
Trang 44 Một số bộ nhớ cache được tích hợp vào trong
kiến trúc của các bộ vi xử lý (Cache L1- bộ đệm cấp 1) CPU Intel đời 80486 có bộ nhớ cache 8
KB, trong khi lên đời Pentium là 16 KB
44
Trang 45Các thành phần của Cache
SRAM Bộ nhớ truy cập ngẫu nhiên tĩnh (Static
Random Access Memory) là khối lưu trữ dữ liệu kích thức của SRAM chỉ ra kích thước của
Cache
Tag RAM Tag RAM (TRAM) là một phần nhỏ của
SRAM để lưu trữ địa chỉ của dữ liệu được lưu trong SRAM
45
Trang 46Các thành phần của Cache
Bộ điều khiển Cache (Cache controller) Các
nhiệm vụ mà nó đảm nhận là thực thi các snoop
và snarf, cập nhật SRAM và TRAM, thực thi quy định ghi Không phải tất cả các vùng của bộ nhớ đều được lưu trong Cache, gọi là được cache (Cacheable) Các cùng nào của bộ nhớ chính được xác định là không thể lưu trong Cache gọi
là vùng không được cache (non-cacheable) và điều này tùy vào thiết kế Ví dụ như trong PC, vùng video không được lưu trong Cache
46
Trang 47Phân loại cache
Cache L1: Được tích hợp vào lõi của CPU Tốc
độ truy xuất của cache L1 tương đương với tốc
độ của CPU nhưng dung lượng khá nhỏ với hai thành phần chính là Data cache và Code cache (trong một số CPU được gọi là Instruction cache hay Trace cache) để lưu trữ dữ liệu và mã lệnh
47
Trang 48Phân loại cache
Cache L2: Thiết kế trong CPU nhưng không nằm
trong lõi, được gọi là external cache hay cache phụ Hiện tại dung lượng cache L2 thay đổi từ 128KB đến 9MB Chức năng chính của cache L2
là dựa vào các lệnh mà CPU sắp thi hành để lấy
dữ liệu cần thiết từ RAM, CPU sẽ dùng dữ liệu ở cache L2 để tăng tốc độ xử lý
48
Trang 49Phân loại cache
Cache L3 : dùng chung cho tất cả các core, do
sự phát triển của các core trong CPU, Intel tích hợp cache L2 vào trong mỗi core luôn Lúc này kích thước của cache L2 sẽ giảm xuống còn
cache L3 đảm nhận chia sẻ bộ nhớ đệm giữa các core trong CPU
49
Trang 50Câu hỏi củng cố
1 Thiết bị nào trong máy tính đảm nhiệm chức
năng thực hiện phép toán số học và logic ?
A Đơn vị luận lý số học và logic
Trang 52Câu hỏi củng cố
3 Trong CPU bộ phận nào có thể đảm nhiệm
chức năng lưu trữ tạm thời ?
A Bộ luận lý số học và logic
B Một vài thanh ghi
C Đơn vị điều khiển
D Tấc cả đều sai
52
B