lOMoARcPSD| 59092960
1: Kiến trúc máy nh gì? Bao gồm những thành phần nào ?
Kiến trúc máy nh: Là khoa học về lựa chọn và kết nối các thành phần phần cứng của máy nh
nhằm đạt yêu cầu: - Hiệu năng: càng nhanh càng tốt- Chức năng: đáp ứng nhiều chức năng- Giá
thành: càng rẻ càng tốt
Các thành phần cơ bản của kiến trúc máy nh:
- Kiến trúc tập lệnh: Mô hình trừu tượng của máy nh ở mức ngôn ngữ máy (hợp ngữ) xác định
những gì bộ xử lý thực hiện và cách thực hiện: + Tập lệnh + Các chế độ địa chỉ bộ nh + Các
thanh ghi + Khuôn dạng địa chỉ và dữ liệu - Vi kiến trúc: Là tổ chức máy nh, mô tả về hệ thống
ở mức thấp, liên quan tới:
+ Các thành phần cứng kết nối với nhau như thế nào + Các thành phần phần cứng phối hợp,
tương tác với nhau như thế nào để thực hiện tập lệnh
- Thiết kế hệ thống: Bao gồm tất cả các thành phần phần cứng khác trong hệ thống máy nh:
+ Các hệ thống kết nối như bus và chuyển mạch + Mạch điều khiển bộ nhớ, cấu trúc phân cấp
bộ nh
+ Các kỹ thuật giảm tải cho CPU như truy cập trực ếp bộ nhớ + Các vấn đề như đa xử lý
2: Vẽ sơ đồ khối chức năng của hệ thống máy nh
3: Thanh ghi của vi xử lí là gì ? Nêu chức năng và đặc điểm của thanh ghi ch lũy A Thanh ghi
(registers) là các ô nhớ bên trong CPU, có nhiệm vụ lưu trữ tạm thời lệnh và dữ liệu cho CPU
xử
Thanh ghi ch lũy( thanh ghi A )là một trong những thanh ghi quan trọng nhất của CPU
+ Lưu trữ các toán hạng đầu vào + Lưu kết quả đầu ra
- Kích thước của thanh ghi A tương ứng với độ dài từ xử lý của CPU: 8, 16, 32, 64 bit
- Cũng được sử dụng để trao đổi dữ liệu với các thiết bị vào ra
4: Chức năng và phương thức hoạt động của bộ nhớ PC( thanh ghi lệnh IP)
- PC lưu địa chỉ của lệnh ếp theo
- chứa địa chỉ ô nhớ chứa lệnh đầu ên của chương trình khi nó được kích hoạt và được tải vào
bộ nh
- Khi CPU chạy xong một lệnh, địa chỉ lệnh ếp theo được tải vào PC
- Kích thước của PC phụ thuộc vào thiết kế CPU: 8, 16, 32, 64 bit
5: Chức năng và phương thức hoạt động của con trỏ ngăn xếp(stackP)
- Ngăn xếp là 1 đoạn bộ nhớ đặc biệt hoạt động theo nguyên tắc vào sau ra trước
- Con trỏ ngăn xếp là thanh ghi luôn trỏ tới đỉnh của ngăn xếp
lOMoARcPSD| 59092960
- Hai thao tác với ngăn xếp: Push và Pop
Thanh ghi <-{SP}chuyển dữ liệu từ đỉnh nx vào thanh ghi
SP <- SP – 1 giảm địa chỉ đỉnh ngăn xếp
SP <-SP + 1 ; tăng địa chỉ đỉnh ngăn xếp
{SP} <- Dữ liệu ; nạp dữ liệu vào ngăn x
6: Thanh ghi cờ( thanh ghi trạng thái) của vi xử lí có chức năng gì ?Nêu ý nghĩa cờ C cờ Z cờ S
Thanh ghi trạng thái hoặc thanh ghi cờ là thanh ghi đặc biệt của CPU, mỗi bit của thanh ghi cờ
lưu trạng thái của kết quả của phép nh ALU
+ ZF: Cờ Zero, ZF=1 nếu kết quả=0 và ZF=0 nếu kết quả<>0.
+ SF: Cờ dấu, SF=1 nếu kết quả âm và SF=0 nếu kết quả dương.
+ CF: Cờ nhớ, CF=1 nếu có nhớ/ợn, CF=0 trong trường hợp khác.
+ AF: Cờ nhphụ, AF=1 nếu có nhớ/n ở nửa thấp của toán hạng.
+ OF: Cờ tràn, OF=1 nếu xảy ra tràn, OF=0 trong trường hợp khác
+ PF: Cờ chẵn lẻ, PF=1 nếu tổng số bit 1 trong kết quả là lẻ và PF=0 nếu tổng số bit 1 trong
kết quả là chẵn.
+ IF: Cờ ngắt, IF=1: cho phép ngắt, IF=0: cấm ngt.
7: Chế độ địa chỉ là gì ?
- Định nghĩa chế độ địa chỉ là cách CPU tổ chức các toán hạng của lệnh. Gồm 9 chế độ định địa
chỉ:
1. Chế độ định địa chỉ tức thì (Im):
- Định nghĩa: Toán hạng nguồn là 1 hằng số
- ví dụ: MOV AH, 08H ;AH=08H
2. 2. Chế độ định địa chỉ thanh ghi (Reg)
- Định nghĩa: Dữ liệu toán hạng nằm trong thanh ghi
- ví dụMOV AH, 08H ;AH=08H MOV AH, AL ;AH=AL
3. 3. Chế độ định địa chỉ trực ếp (Mem)
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là 1 hằng số
- Ví dụ: MOV AH, [08H] ;AH=[08H] =100 toán hạng nguồn MOV [08H], DL ;toán hạng đích
4. 4. Chế độ định địa chỉ gián ếp (Mem)
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là giá trị của thanh ghi
(thanh ghi chứa địa chỉ này phải là thanh ghi 16 bit) - Ví dụ:MOV AH, [BX] ;AH=[BX] MOV [BX],
DL
5. 5. Chế độ định địa chỉ gián ếp thanh ghi
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là giá trị của thanh ghi
BX/BP/SI/DI
- Ví dụ: MOV AH, [BX] MOV AH, [BP]
6. 6. Chế độ định địa chỉ cơ sở và chế độ định địa chỉ chỉ số
- Bản chất là chế độ định địa chỉ gián ếp thanh ghi. Khác nhau là dùng thanh ghi nào
- Với chế độ định địa chỉ cơ sở: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là giá trị
của thanh ghi cơ sở BX/BP- Với chế độ định địa chỉ cơ sở: Dữ liệu toán hạng nằm trong bộ nhớ,
có địa chỉ độ lệnh là giá trị của thanh ghi chỉ số SI/DI
lOMoARcPSD| 59092960
7. 7. Chế độ định địa chỉ tương đối cơ sở
- Địnhnghĩa:Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là sự kết hợp của giá trị
thanh ghi cơ sở BX/BP với 1 hằng số- Ví dụ: MOV AH, [BX+10]
8. 8. Chế độ định địa chỉ tương đối chỉ số
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là sự kết hợp của giá trị
thanh ghi chỉ số SI/DI với 1 hằng số
- Ví dụ: MOV AH, [SI+10]
9. 9. Chế độ định địa chỉ cơ sở chỉ số
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là sự kết hợp của giá trị
thanh ghi cơ sở BX/BP và thanh ghi chỉ số SI/DI- Ví dụ: MOV AH, [BX + SI] MOV [BP + DI], AL
10. 10. Chế độ định địa chỉ tương đối cơ sở chỉ số
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là sự kết hợp của giá trị
thanh ghi cơ sở BX/BP, thanh ghi chỉ số SI/DI và 1 hằng số
- Ví dụ: MOV AH, [BX + SI +10] MOV [BP + DI + 10], AL
8. Phương thức trao đổi dữ liệu giữa CPU và bộ nhớ cache và giữa bộ nhớ cache với bộ nh
chính
CPU trao đổi dữ liệu với cache theo các đơn vị cơ sở như byte, từ và từ kép. Còn cache trao
đổi dữ liệu với bộ nhớ chính theo các khối, với kích thước 16, 32, 64 bytes. Sở dĩ CPU trao đổi
dữ liệu với cache theo các đơn vị cơ sở mà không theo khối do dữ liệu được lưu trong các
thanh ghi của CPU – vốn có dung lượng rất hạn chế. Vì vậy, CPU chỉ trao đổi các phần tử dữ liệu
cần thiết theo yêu cầu của các lệnh. Ngược lại, cache trao đổi dữ liệu với bộ nhớ chính theo các
khối, mỗi khối gồm nhiều byte knhau với mục đích bao phủ các mẩu dữ liệu lân cận theo
không gian và thời gian. Ngoài ra, trao đổi dữ liệu theo khối (hay mẻ) với bộ nhớ chính giúp
cache tận dụng tt hơn băng thông đường truyền và nhờ vậy có thể tăng tốc độ truyền dữ liệu.
9: Vẽ sơ đồ và nêu đặc điểm của ktmt von-neuman cổ điển
*Các máy nh kiến trúc Von-Neumann dựa trên 3 khái niệm cơ bản:
- Dữ liệu và lệnh được lưu trong bnhớ đọc/ viết chia sẻ
- Bộ nhđược đánh địa chỉ dựa trên đoạn và không phụ thuộc vào
việc nó lưu trữ - Các lệnh của chương trình được chạy lần lượt, lệnh
nọ ếp sau lệnhkia * Quá trình thực hiện được chia thành 3 giai đoạn
chính:
- CPU lấy lệnh từ bộ nhớ - CPU giải mã lệnh và chạy lệnh; nếu lệnh
cần dữ liệu thì đọc dữ liệu từ bộ nhớ - CPU viết kết quả vào bộ nhớ nếu có
lOMoARcPSD| 59092960
- Đặc điểm:
+ Chia bộ nhớ trong thành 2 phần riêng rẽ:
- Bộ nhớ lưu chương trình (Program Memory) - Bộ nhớ lưu dữ liệu (Data Memory)
+ Hai hệ thống bus riêng: sử dụng để kết nối CPU với bộ nhớ lưu chương trình và bnhớ lưu dữ
liệu
+ Mỗi bộ nh đều có 3 thành phần để truyền dẫn các n hiệu địa chỉ, dữ liệu và điều khiển
Ưu điểm của kiến trúc Harvard so với Von Neumann
1. Truy cập nhanh hơn: do lệnh và dữ liệu có bus riêng, có thể truy cập song song.
2. Hiệu suất cao hơn: giảm xung đột bộ nhớ (instrucon/data conict).
3. An toàn hơn: code và dữ liệu tách biệt, tránh ghi đè nhầm mã chương trình.
4. Tối ưu cho hệ nhúng: phù hợp với vi điều khiển, DSP nhờ tốc độ và độ ổn định.
10.Nêu sơ đồ khối tổng quát và chu trình xử lí lệnh của CPU
Cấu tạo của CPU
- gồm 3 thành phần chính:
+ Khối xử lý (CU) + Khối số học và logic (ALU) + Các thanh ghi (Regs) - Chức năng của các thành
phn:
+ Chức năng CU: nhận lệnh, giải mã lệnh thành mi lệnh và thi hành các mi lệnh
+ Chức năng ALU: ● Thực hiện phép nh số học +, -, *, / ● Thực hiện phép nh logic and, not, or
-> Theo sự điều khiển của CU
lOMoARcPSD| 59092960
+ Chức năng Regs: Chứa lệnh và dữ liệu cho hoạt động của CPU theo chức năng của một số
thanh ghi điển hình (phần các thanh ghi)
Câu hỏi trong đề thi: nêu chức năng của các thành phần trong quá trình CPU xử lý lệnh ADD
R1, R2
-> trả lời: Trong quá trình CPU xử lý lệnh ADD R1, R2, các thành phần chính bao gồm
1. Khối xử lý (Control Unit - CU): Đây là thành phần quản lý và điều khiển hoạt động của
CPU. Chức năng chính của CU là lấy lệnh từ bộ nhớ, giải mã lệnh và điều khiển các thành phần
khác của CPU để thực hiện lệnh đó. CU sẽ xác định các n hiệu điều khiển và lựa chọn đường
dẫn dữ liệu trong CPU để thực hiện lệnh ADD R1, R2.
2. Khối số học và logic (Arithmec Logic Unit - ALU): ALU là thành phần chịu trách nhiệm
thực hiện các phép toán số học và logic trong CPU. Trong trường hợp lệnh ADD R1, R2, ALU s
nhận giá trị từ thanh ghi R1 và R2, thực hiện phép cộng và đưa kết quả vào một thanh ghi khác
hoặc trả về cho CU.
3. Các thanh ghi (Registers): Các thanh ghi là các bộ nhớ nhanh và nhỏ được sử dụng trong
CPU để lưu trữ dữ liệu tạm thời và các giá trị trung gian. Trong trường hợp lệnh ADD R1, R2,
thanh ghi R1 và R2 chứa các giá trị cần được cộng lại với nhau. Kết quả của phép cộng sẽ đưc
lưu trữ trong một thanh ghi khác hoặc được trả về cho CU. Tóm lại, trong quá trình xử lý lệnh
ADD R1, R2, Khối xử lý (CU) sẽ điều khiển hoạt động của ALU và truy cập vào các thanh ghi
(Regs) để thực hiện phép cộng và lưu trữ kết quả.
Chu kỳ xử lý lệnh của CPU:
1. Khi một chương trình được chạy, hđiều hành tải mã chương trình vào bộ nhớ trong RAM
2. Địa chỉ lệnh đầu ên của chương trình được đưa vào thanh ghi PC
3. Địa chỉ của ô nhớ chứa lệnh được chuyển tới bus A qua thanh ghi MAR
4. Bus A truyền địa chỉ tới khối quản lý bộ nhMMU
5. MMU chọn ô nhớ và sinh ra n hiệu READ
6. Lệnh chứa trong ô nhớ được chuyển tới thanh ghi MBR qua bus D
7. MBR chuyển lệnh tới thanh ghi IR. Sau đó IR lại chuyển lệnh tới CU
8. CU giải mã lệnh và sinh ra các n hiệu xử lý cho các đơn vị khác, ví dụ như ALU để thực hiện
lệnh cộng
9. Địa chỉ trong PC được tăng lên để trỏ tới lệnh ếp theo của chương trình sẽ được thực
hiện10. Thực hiện lại các bước 3 -> 9 để chạy hết các lệnh của chương trình Các thanh ghi:
1. Thanh ghi ch lũy A
- Thanh ghi ch lũy hay thanh ghi A là một trong những thanh ghi quan trọng nhất của CPU
+ Lưu trữ các toán hạng đầu vào + Lưu kết quả đầu ra
- Kích thước của thanh ghi A tương ứng với độ dài từ xử lý của CPU: 8, 16, 32, 64 bit
- Cũng được sử dụng để trao đổi dữ liệu với các thiết bị vào ra
2. Bộ đếm chương trình PC
- PC lưu địa chỉ của lệnh ếp theo
- chứa địa chỉ ô nhớ chứa lệnh đầu ên của chương trình khi nó được kích hoạt và được tải vào
bộ nh
- Khi CPU chạy xong một lệnh, địa chỉ lệnh ếp theo được tải vào PC
- Kích thước của PC phụ thuộc vào thiết kế CPU: 8, 16, 32, 64 bit
lOMoARcPSD| 59092960
3. Con trỏ ngăn xếp SP
- Ngăn xếp là 1 đoạn bộ nhớ đặc biệt hoạt động theo nguyên tắc vào sau ra trước
- Con trỏ ngăn xếp là thanh ghi luôn trỏ tới đỉnh của ngăn xếp
- Hai thao tác với ngăn xếp: Push và Pop
4. Thanh ghi lệnh IR
- Lưu trữ lệnh đang được xử lý
- IR lấy lệnh từ MBR và chuyển nó tới CU để giải mã lệnh
5. Thanh ghi MAR
- Thanh ghi địa chỉ bộ nh
6. Thanh ghi MBR
- Thanh ghi nhớ đệm
11: sơ đồ khối và chức năng của khối điều khiển CU và khối nh toán số học và logic ( ALU)
- Điều khiển tất cả các hoạt động của CPU theo xung nhịp đồng hồ- Nhận 3 n hiệu đầu vào:
+ Lệnh từ IR + Giá trị các cờ trạng thái + Xung đồng hồ - CU sinh 2 nhóm n hiệu đầu ra:
+ Nhóm n hiệu điều khiển các bộ phận bên trong CPU
+ Nhóm n hiệu điều khiển các bộ phận bên ngoài CPU
- Sử dụng nhịp đồng hồ để đồng bộ hóa các đơn vị bên trong CPU và giữa CPU với các thphần
bên ngoài
- ALU có: + 2 cổng IN để nhận đầu vào từ các thanh ghi + 1 cổng OUT được nối với bus trong để
gửi kết quả tới các thanh ghi- Bao gồm các đơn vị chức năng con để thực hiện các phép toán s
học và logic:
+ Bộ cộng (ADD), bộ trừ (SUB), bộ nhân (MUL), bộ chia (DIV), . . . + Các bộ dịch (SHIFT) và quay
(ROTATE) + Bộ logic như phủ định (NOT), bộ và (AND), bộ hoặc (OR), và bhoặc loại trừ (XOR)
(Các bus bên trong CPU)
- Bus trong là kênh liên lạc của tất cả các thành phần trong CPU - Hỗ trợ liên lạc 2 chiều
- Bus trong có giao diện để trao đổi thông n với bus ngoài - Bus trong có băng thông lớn và tốc
độ nhanh hơn so với bus ngoài12. Lệnh máy nh
lOMoARcPSD| 59092960
Khái niệm về lệnh máy nh
- là một từ nhị phân được gán một nhiệm vụ cụ thể, hướng dẫn cho máy nh biết phải làm gì.
- Các giai đoạn xử lý lệnh:
+ Đọc lệnh IF: lệnh được đọc từ bộ nhớ vào CPU + Giải mã lệnh ID: CPU giải mã lệnh
+ Chạy lệnh IE: CPU thực hiện lệnh + Ghi WB: kết quả (nếu có) ghi vào thanh ghi/ bnh
- Khuôn dạng của lệnh
+ Dạng tổng quát của lệnh máy nh gồm 2 phần chính:
1) Mã lệnh: Mã hóa cho thao tác mà bộ xử lý phải thực hiện
2) Địa chỉ của các toán hạng: Chỉ ra nơi chứa các toán hạng mà thao tác sẽ tác động: - Toán hạng
nguồn: dữ liệu vào của thao tác - Toán dạng đích: dữ liệu ra của thao tác.
Câu hỏi 2.7: Nêu các dạng địa chỉ của lệnh. Cho ví dụ minh hoạ với mi dạng địa chỉ.
Toán hạng 3 địa chỉ: Dạng: opcode addr1, addr2, addr3
Mỗi địa chỉ addr1, addr2, addr3 tham chiếu đến một ô nhớ hoặc một thanh ghi.
Ví dụ: ADD R1, R2, R3; R1 ← R2 + R3 R2 cộng với R3, kết quả gán vào R1. (R
i
là thanh ghi
của CPU) ADD A, B, C; M[A] ← M[B] + M[C] A, B, C là địa chỉ các ô nhớ.
Toán hạng 2 địa chỉ: Dạng: opcode addr1, addr2
Mỗi địa chỉ addr1, addr2 tham chiếu đến một ô nhớ hoặc một thanh ghi.
Ví dụ: ADD R1, R2; R1 ← R1 + R2 //R1 cộng với R2, kết quản vào R1. (Ri là thanh ghi của CPU)
ADD A, B; M[A] ← M[B] + M[B] // A, B là địa chỉ các ô nhớ.
Toán hạng 1 địa chỉ: Dạng: opcode addr1
Địa chỉ addr1 tham chiếu đến một ô nhớ hoặc một thanh ghi.Ở dạng 1 địa chỉ, thanh ghi ch luỹ
A (Accumulator) được sử dụng như địa chỉ addr2 trong dạng 2 địa chỉ.
Ví dụ: ADD R1; Racc ← Racc + R1 // R1 cộng với Racc, kết quả gán vào Racc. R1 là thanh
ghi của CPU. ADD A; Racc Racc + M[A] // A là địa chỉ một ô nhớ.
Toán hạng 1,5 địa chỉ: // Dạng: opcode addr1, addr2
Một địa chỉ tham chiếu đến một ô nhớ và địa chỉ còn lại tham chiếu đến một thanh ghi. Dạng
1,5 địa chỉ là dạng hỗn hợp giữa ô nhớ và thanh ghi. Ví dụ: ADD A, R1; M[A] M[A] + R1 // Nội
dung ô nhớ A cộng với R1, kết quả lưu vào ô nhớ A R1 là thanh ghi của CPU và A là địa chỉ một ô
nhớ.
Toán hạng 0 địa chỉ: Được sử dụng trong các lệnh thao tác với ngăn xếp: PUSH và POP.
13.Cơ chế xử lý xen kẽ dòng lệnh (Cơ chế ống lệnh pipeline)
- Cơ chế xử lý xen kẽ dòng lệnh là một phương pháp cho phép đồng thời thực hiện nhiều lệnh,
giảm thời gian trung bình thực hiện mỗi lệnh, tăng hiệu năng xử lệnh của CPU.
- Mỗi lệnh thực hiện theo 5 giai đoạn của hệ thông:
+ IF Đọc lệnh: lấy lệnh từ bộ nhớ (hoặc cache)
+ ID Giải mã lệnh: thực hiện giải mã lệnh và lấy các toán hạng
+ IE Thực thi lệnh: Nếu là lệnh truy cập bộ nhthì nh toán địa chỉ bộ nhớ + MEM Đọc-ghi bộ
nhớ: Đọc và ghi bộ nhớ nếu không truy cập bộ nhớ thì không có giai đoạn này
+ WB Ghi: Kết quả (nếu có) CPU xử lý được ghi vào thanh ghi/bộ nhớ lưu
Các vấn đề liên quan đến xen kẽ dòng lệnh
- Xung đột tài nguyên: + Xung đột truy cập bộ nhớ + Xung đột truy cập thanh ghi
lOMoARcPSD| 59092960
- Xung đột/ tranh chấp dữ liệu (Data Hazard) + Vấn đề read aer write hazard- Các câu lệnh r
nhánh
+ Không điều kiện + Có điều kiện + Gọi thực hiện và trở v từ chương trình con Cách khắc phục
những vấn đề trên:
- Xung đột tài nguyên: Tài nguyên không đủ
+ Nâng cao khả năng tài nguyên + Memory/ cache: hỗ trợ nhiều thao tác đọc/ ghi cùng lúc
+ Chia cache thành cache lệnh và cache dữ liệu để cải thiện truy nhập
- Xung đột/ tranh chấp dữ liệu (Data Hazard): Tranh chấp đọc sau khi ghi (RAW) là kiểu hay gặp
nhất
+ Nhận dạng tranh chấp RAW khi nó diễn ra (các lệnh phụ thuc)
+ Khi tranh chấp RAW xảy ra, tạm dừng (stall) pipeline cho đến khi lệnh phía trước hoàn tất giai
đoạn WB + Có thể dùng compiler để nhận dạng RAW và thực hiện:
-> Chèn các lệnh NO-OP và giữa các lệnh có thể gây ra tranh chấp (NO-OP là lệnh rỗng, và chỉ
dùng để êu tốn thời của CPU)
-> Thay đổi thứ tự thực hiện của các lệnh trong chương trình và chèn các lệnh độc lập vào giữa
các lệnh có thể gây ra tranh chấp RAW.
+ Sử dụng phần cứng để xác định RAW dự đoán trước giá trị dữ liệu phụ thuộc.
- Xử lý rẽ nhánh: Lệnh rẽ nhánh làm thay đổi bộ đếm của chương trình nên có thể làm thay đi
thứ tự thực hiện các lệnh của chương trình pipeline.
+ Đích rẽ nhánh + Dự đoán rẽ nhánh
+ Làm chậm rẽ nhánh:
-> Sử dụng complier để chèn NO-OP vào vị trí ngay sau lệnh rẽ nhánh
->Chuyển một lệnh độc lập từ trước tới ngay sau lệnh rẽ nhánh 14. Cấu trúc phân cấp bộ nh
Hệ thống bộ nhớ máy nh được tổ chức theo cấu trúc phân cấp gồm các thành phần chính sau:
1. Thanh ghi CPU (CPU Registers) o Dung lưng: Rất nhỏ (vài chục byte đến vài KB).
o Tốc độ truy cập: Nhanh nhất, hoạt động ở tốc độ của CPU. o Giá thành: Cao
nhất do ch hợp trực ếp trong CPU.
o Vai trò: Lưu trữ toán hạng và kết quả tạm thời khi CPU xử lý lệnh.
2. Bộ nhớ Cache
o Dung lượng: Nhỏ (từ vài KB đến vài chục MB). o Tốc độ truy cập: Rất nhanh,
nhưng chậm hơn thanh ghi. o Giá thành: Đắt, nhưng rẻ hơn thanh ghi.
lOMoARcPSD| 59092960
o Vai trò: Lưu trữ dữ liệu và lệnh thường dùng, giúp CPU giảm thời gian truy cập
bộ nhớ chính.
3. Bộ nhớ chính (Main Memory - RAM/ROM) o Dung lượng: Lớn hơn (từ vài trăm MB
đến hàng GB). o Tốc độ truy cập: Chậm hơn cache, nhưng nhanh hơn bộ nhớ ngoài. o
Giá thành: Thấp hơn cache.
o Vai trò: Lưu trữ chương trình và dữ liệu đang hoạt động.
4. Bộ nhớ ngoài (Secondary/Terary Storage - HDD, SSD, đĩa quang, băng từ) o Dung
ng: Rất lớn (từ vài chục GB đến hàng TB). o Tốc độ truy cập: Chậm nhất. o Giá
thành: Rẻ nht.
o Vai trò: Lưu trữ dữ liệu lâu dài (hệ điều hành, phần mềm, le người dùng).
Tại sao cấu trúc phân cấp giúp tăng hiệu năng và giảm giá thành sản xuất?
1. Tăng hiệu năng hệ thống o Giảm thời gian truy cập trung bình o Cơ chế dự đoán
(prefetching): o Tận dụng nguyên tắc cục bộ (locality
2. Giảm giá thành sản xuất o Tối ưu chi phí o Cân bằng giữa tốc độ và dung lượng:
o Hiệu quả kinh tế:
Vai trò của cấu trúc phân cấp bộ nhớ - Nâng cao hiệu năng hệ thống:
+ Dung hòa được CPU có tốc độ cao với bộ nhớ chính và bnhphụ có tốc độ thấp
+ Thời gian truy cập dữ liệu trung bình của CPU từ hệ thống bộ nhớ gần bằng thời gian truy cập
cache
- Giảm giá thành sản xuất: + Các thành phần đắt ền sẽ được sử dụng với dung lượng nhỏ hơn
+ Các thành phần rẻ hơn được sử dụng với dung lượng lớn hơn
+ Tổng giá thành của hệ thống nhớ theo mô hình phân cấp sẽ rẻ hơn so với hệ thống nhớ không
phân cấp cùng tốc độ 15: bộ nhớ cache
Bộ nhớ cache- Cache là thành phần nhớ trong sơ đồ phân cấp bộ nhy nh.
+ Nó hoạt động như thành phần trung gian, trung chuyển dữ liệu từ bộ nhớ chính về CPU và
ngược lại - Vị trí của cache:
+ Với các hệ thống cũ, cache thường nằm ngoài CPU + Với các CPU mới, cache thường được ch
hợp vào trong CPU - Dung lượng cache thường nhỏ:
- Tốc độ truy nhập của cache nhanh hơn so với tốc độ bộ nhớ chính
- Giá thành cache (nh trên bit) thường đắt hơn so với bộ nhớ chínhVai trò của bộ nhớ cache
- Nâng cao hiệu năng hệ thống:
+ Dung hòa giữa CPU có tốc độ cao và bộ nhớ chính tốc độ thp
+ Thời gian trung bình CPU truy cập hệ thống bộ nhgần bằng thời gian truy cập cache - Gim
giá thành sản xuất:
+ Nếu 2 hệ thống có cùng hiệu năng thì hệ thống có cache sẽ rẻ hơn + Nếu 2 hệ thống cùng giá
thành, hệ thống có cache sẽ nhanh hơn Hai nguyên lí hoạt động của cache:
-Nguyên lý lân cận về không gian: “Nếu một ô nhớ đang được truy nhập thì xác xuất các ô nhớ
liền kề với nó được truy nhập trong tương lai gần là rất cao. Lân cận về không gian thường
được áp dụng cho nhóm lệnh hoặc dữ liệu có nh tuần tự cao trong không gian chương trình. -
Nguyên lý lân cận vthời gian chú trọng hơn đến nh lặp lại của việc truy nhập các mẩu thông
lOMoARcPSD| 59092960
n trong một khoảng thời gian tương đối ngắn: “Nếu một ô nhớ đang được truy nhập thì xác
xuất nó được truy nhập lại trong tương lai gần là rất cao. Lân cận về thời gian được áp dụng
cho dữ liệu và nhóm các lệnh trong vòng lặp
Phương thức trao đổi dữ liệu của bộ nhớ cache với các thành phần trong máy nh - CPU trao
đổi dữ liệu với cache theo các đơn vị cơ sở như byte, từ và từ kép.
- Cache trao đổi dữ liệu với bộ nhớ chính theo các khối, với kích thước 16, 32, 64 bytes.16.
- Kiến trúc Look aside:
+ Cache và bộ nh cùng được kết nối tới bus hệ thng
+ Cache và bộ nh chính “thấy” chu kỳ bus CPU tại cùng một thời điểm + Ưu điểm:
- Thiết kế đơn giản
- Miss nhanh: khi CPU không m thấy mục dữ liệu trong cache nó đồng thời m trong bộ nh
chính cùng 1 chu kỳ xung nhịp+ Nhược điểm:
- Hit chậm: cache kết nối với CPU sử dụng bus hệ thống có tần số làm việc không cao và băng
thông hẹp- Kiến trúc Look Through:
+ Cache nằm giữa CPU và bộ nhớ chính + Cache “thấy” chu kỳ bus CPU trước sau đó nó
“truyền” lại cho bộ nhớ chính + Ưu điểm:
- Hit nhanh : Cache kết nối với CPU bằng bus riêng tốc độ cao và có băng thông lớn+ Nhược
đim:
- Đắt - Thiết kế phức tạp
- Miss chậm : khi CPU không m thấy dữ liệu trong cache nó cần m trong Bộ nhớ tại 1 xung
nhịp ếp theo
Câu hỏi thêm trong đề: Look Aside và Look Through cái nào được sử dụng nhiều hơn trong
thực tế hiện nay. Tại sao?
=> Trả lời: -> Look Aside được sử dụng nhiều hơn trong thực tế vì có những lợi ích sau:
+ Do Cache và bộ nhớ chính đều kết nối với BUS hthống nên nó cho phép việc truy xuất Cache
và bộ nhớ chính xảy ra độc lập, giúp giảm thiểu sự chồng chéo và tăng hiệu suất
+ Nó cho phép kiểm soát rõ ng hơn về việc cập nhật dữ liệu giữa cache và bộ nhchính. Ví dụ:
nếu Cache không có dữ liệu, CPU sẽ truy xuất thẳng vào bộ nhớ chính đọc dữ liệu, sau đó Cache
sẽ cập nhật dữ liệu CPU đã đọc + Cung cấp khả năng mở rộng tốt hơn vì Cache có thể được mở
rộng mà không ảnh hưởng đến việc truy xuất bộ nhớ chính
16. RAID là gì? Tại sao RAID có thể nâng cao nh n cậy, tốc độ truy cập và dung lượng hệ
thống lưu trữ? Cấu hình RAID nào phù hợp hơn với máy chủ cơ sở dữ liệu trong ba loại RAID
0, RAID 1và RAID 10? Giải thích?
- Định nghĩa RAID: là một công nghệ tạo các thiết bị lưu trữ ên ến trên cơ sở các ổ đĩa độc lập,
nhằm các mục đích: + Tốc độ cao + Tính n cậy cao + Dung lượng lớn
- Cấu hình RAID nào phù hợp hơn với máy chủ cơ sở dữ liệu trong ba loại RAID 0, RAID 1 và RAID
10?
+ RAID10 phù hợp máy chủ cơ sở dữ liệu: Thời gian đáp ứng, thời gian phản hồi nhanh
+ RAID5 phù hợp đầu tư kinh doanh: do tốc độ nhanh, dung lượng hiệu dụng lớn 87,5% + RAID6
phù hợp cho kĩ thuật: Khả năng đảm bảo lớn do cho phép khả năng hỏng 2 ổ 17. Chính sách
thay thế dòng Cache:
1. Ngẫu nhiên
lOMoARcPSD| 59092960
- Các dòng cache được chọn ngẫu nhiên để thay thế - Ưu điểm: Cài đặt đơn giản, nhanh -
Nhược điểm:
+ Khi đưa dòng cache mới thay thế ngẫn nhiên không xem xét đến các dòng cache đang được
sử dụng
+ Nếu một dòng cache đang được sử dụng và bị thay thế -> xảy ra xung đột dữ liệu, bị miss dữ
liệu và nó lại cần được đọc từ bộ nhớ chính vào cache. -> hệ số miss cao
2. Thay thế kiểu vào trước ra trước (FIFO - First in First out)
- Các dòng cache được đọc vào cache trước sẽ bị chọn để thay thế trước
- Ưu điểm: Do biết được thời gian của các dòng cache sẽ bị thay thế nên giảm thiểu việc dữ liệu
bị mất => có hệ số miss thấp hơn so với thay thếngẫu nhiên - Nhược điểm:
+ Thay thế vẫn chưa thực sự xem xét đến các dòng cache đang được sử dụng. Một dòng cache
già” vẫn có thể đang được sử dụng => hệ số miss vẫn còn cao
+ Cài đặt phức tạp do cần có mạch điện tử ồng hồ đo thời gian sống của các dòng cache) để
theo dõi trật tự nạp các dòng bộ nhớ vào cache 3. Thay thế các dòng ít được sử dụng gần đây
nhất (LRU)
- Các dòng cache ít được sử dụng gần đây nhất được lựa chọn để thay thế
- Ưu điểm:
+ Có hệ số miss thấp nhất so thay thế ngu nhiên và thay thế vào trước ra trước
+ Do thay thế LRU có xem xét đến các dòng cache đang được sử dụng
- Nhược điểm: Cài đặt phức tạp do cần có mạch điện tử để theo dõi tần suất sử dụng của dòng
cache
Câu hỏi trong đề thi: Chính sách nào cho hiệu quả cao nhất? Vì sao
=> Trả lời: Chính sách thay thế dòng ít được sử dụng gần đây nhất (LRU) cho hiệu quả cao nhất.
Vì nó xem xét đến các dòng cache đang sử dụng. Nếu dòng cache nào ít hoạt động thì sẽ bị thay
thế và ngược lại dòng cache hoạt động nhiều, lưu nhiều dữ liệu bộ nhớ sẽ không bị thay thế.
Dẫn đến hệ số miss thấp và hệ số Hit cao. Nên chính sách này cho hiệu suất tốt nhất.
18. /*/Các cơ chế, phương thức đọc ghi bộ nh(nguyên lý hoạt động của cache) - Cục bộ (lân
cận) về không gian:
+ Nếu một vị trí bộ nhđược truy cập, thì xác suất các vị trí gần đó được truy cập trong thời
gian gần tới là cao + Áp dụng với dữ liệu và các lệnh có thứ tự tuần tự theo chương trình
+ Lệnh trong chương trình thường có thứ tự tuần tự, do đó cache đọc một khối lệnh trong bộ
nhớ, mà bao gồm cả các phần tử xung quanh vị trí phần tử hiện tại được truy cập.
-> Ví dụ minh họa: Giả sử chúng ta có một chương trình nh tổng của một mảng lớn chứa các
phần tử số nguyên. Chương trình lặp qua mảng và nh tổng bằng cách cộng các phần tử lại với
nhau. Khi chúng ta truy cập vào một phần tử đầu ên của mảng, nó sẽ được nạp vào cache
cùng với một số khối dữ liệu xung quanh. Sau đó, chúng ta ếp tục truy cập vào các phần tử
ếp theo trong mảng. Vì các phần tử này nằm gần nhau và đã được nạp vào cache, chúng ta có
thể truy cập dữ liệu từ cache một cách nhanh chóng, không cần truy cập lại bộ nhớ chính. Điều
này giúp tn dụng nguyên lý cận kvề không gian - Cục bộ (lân cận) về thời gian:
+ Nếu một vị trí bộ nhđược truy cập, thì xác suất nó được truy cập lại trong thời gian gần là
cao
+ Áp dụng với các mục dữ liệu và các lệnh trong vòng lặp
lOMoARcPSD| 59092960
+ Cache đọc khối dữ liệu trong bộ nhớ gồm tất cả các thành phần trong vòng lặp
-> Ví dụ minh họa vẫn ví dụ trên: trong vòng lặp trên, ta truy cập lại các phần tử đã được truy
cập trước đó. Khi chúng ta truy cập lại các phần tử này, chúng đã được lưu trong cache và có
thể truy xuất nhanh chóng mà không cần truy cập lại bộ nhớ chính. Điều này tận dụng nguyên
cận kề về thời gian.
Các yếu tố tăng hệ số hit và hiệu năng 1. Kích thước cache:
- Với kích thước lớn, có thể giảm tần suất tráo đổi các dòng cache của các chương trình khác
nhau với bộ nhớ chính. Đồng thời- Hỗ trợ đa nhiệm, xử lý song song và các hệ thống CPU nhiều
nhân tốt hơn.
- Nhược điểm của cache lớn là chậm
2. Chia tách cache
- Dữ liệu và lệnh có nh lân cận khác nhau;
- Dữ liệu thường có nh lân cận về thời gian cao hơn lân cận về không gian; lệnh có nh lân cận
về không gian cao hơn lân cận về thời gian;- Cache lệnh chỉ cần hỗ trợ thao tác đọc; cache dữ
liệu cần hỗ trợ cả 2 thao tác đọc và ghi và tách cache giúp tối ưu hoá dễ dàng hơn; - Hỗ tr
nhiều lệnh truy nhập đồng thời hệ thống nhớ, giảm xung đột tài nguyên cho CPU pipeline.
3. Tạo cache nhiều mức
- Hệ thống nhớ với nhiều mức cache có khả năng dung hòa tốc độ giữa các thành phần tốt hơn
và có thời gian truy nhập trung bình hệ thống nhớ thấp hơn - Nhiều mức cache có thể giúp
giảm giá thành hệ thống nhớ.
18. Thế nào là vào ra bằng thăm dò và vào ra bằng truy nhập trực ếp bộ nhớ (DMA). So
sánh sự giống, khác nhau của hai phương pháp và lấy ví dụ minh hoạ.
1. Vào ra bằng thăm dò (Programmed I/O - PIO):
CPU tự điều khiểnliên tục kiểm tra thiết bị ngoại vi.
Khi thiết bị sẵn sàng, CPU đọc/ghi dữ liệu.
CPU bị chiếm dụng liên tục.
Ví dụ: CPU kiểm tra bàn phím xem có phím nào được nhấn chưa.
2. Vào ra bằng DMA (Direct Memory Access):
CPU giao nhiệm vụ cho bộ điều khiển DMA.
DMA tự động truyền dữ liệu giữa thiết bị và bộ nhớ.
CPU rảnh để làm việc khác.
Ví dụ: Truyền dữ liệu từ ổ cứng vào RAM.
3. So sánh nhanh:
Tiêu chíThăm dò (PIO) DMA
CPU điều khiển Trực ếpGián ếp (qua DMA)
Tốc độ Chậm Nhanh, hiệu quả cao
Phù hợp Thiết bị chậmThiết bị nhanh, dữ liệu lớn
19.RAM
Câu hỏi 2.10: Phân biệt bộ nhớ RAM nh và RAM động.
Tại sao bộ nhớ RAM động cần quá trình làm tươi và RAM động thường rẻ hơn RAM nh ? TL :
lOMoARcPSD| 59092960
SRAM (Stac Ram) là loại RAM sử dụng một mạch lật trigo lưỡng ổn để lưu một bit thông n.
Thông n trong SRAM luôn ổn định và không phải
“làm tƣơi” định kỳ. Tốc độ truy nhập SRAM cũng nhanh hơn nhiều so với DRAM. Mỗi mạch lật
lưu 1 bit thường sử dụng 6, 8 hoặc 10 transitors (gọi là mạch 6T, 8T hoặc 10T); SRAM thường có
tốc độ truy nhập nhanh do các bit của SRAM có cấu trúc đối xứng, Các mạch nhớ SRAM chấp
nhận tất cả các chân địa chỉ tại một thời điểm (không dồn kênh).
DRAM (Dynamic Ram): Mỗi bit DRAM dựa trên một tụ điện và một transitor:Hai mức ch điện
của tụ biểu diễn 2 mức logic 0 1:
• Không ch điện: mức 0 • Tích đầy điện: mức 1.
Thông n lưu trong các bit DRAM không ổn định và phải được “làm tươi” định kỳ. DRAM chậm
hơn nhưng rẻ hơn SRAM.
RAM động cần quá trình làm tươi vì tụ thường tự phóng điện, điện ch trong tụ có xu hướng
bị tổn hao theo thời gian nên:
Cần nạp lại thông n trong tụ thường xuyên để tránh mất thông n.
Việc nạp lại thông n cho tụ là quá trình làm tươi (refresh), phải theo định kỳ.
DRAM thường rẻ hơn SRAM do:
Mỗi bít SRAM dùng nhiều transitor hơn so với 1 bit DRAM
Do cấu trúc bên trong của SRAM bit phức tạp hơn nên mật độ cấy linh kiện trong SRAM
thường thấp.

Preview text:

lOMoAR cPSD| 59092960
1: Kiến trúc máy tính gì? Bao gồm những thành phần nào ?
Kiến trúc máy tính: Là khoa học về lựa chọn và kết nối các thành phần phần cứng của máy tính
nhằm đạt yêu cầu: - Hiệu năng: càng nhanh càng tốt- Chức năng: đáp ứng nhiều chức năng- Giá
thành: càng rẻ càng tốt
Các thành phần cơ bản của kiến trúc máy tính:
- Kiến trúc tập lệnh: Mô hình trừu tượng của máy tính ở mức ngôn ngữ máy (hợp ngữ) xác định
những gì bộ xử lý thực hiện và cách thực hiện: + Tập lệnh + Các chế độ địa chỉ bộ nhớ + Các
thanh ghi + Khuôn dạng địa chỉ và dữ liệu - Vi kiến trúc: Là tổ chức máy tính, mô tả về hệ thống
ở mức thấp, liên quan tới:
+ Các thành phần cứng kết nối với nhau như thế nào + Các thành phần phần cứng phối hợp,
tương tác với nhau như thế nào để thực hiện tập lệnh
- Thiết kế hệ thống: Bao gồm tất cả các thành phần phần cứng khác trong hệ thống máy tính:
+ Các hệ thống kết nối như bus và chuyển mạch + Mạch điều khiển bộ nhớ, cấu trúc phân cấp bộ nhớ
+ Các kỹ thuật giảm tải cho CPU như truy cập trực tiếp bộ nhớ + Các vấn đề như đa xử lý
2: Vẽ sơ đồ khối chức năng của hệ thống máy tính
3: Thanh ghi của vi xử lí là gì ? Nêu chức năng và đặc điểm của thanh ghi tích lũy A Thanh ghi
(registers) là các ô nhớ bên trong CPU, có nhiệm vụ lưu trữ tạm thời lệnh và dữ liệu cho CPU xử lý
Thanh ghi tích lũy( thanh ghi A )là một trong những thanh ghi quan trọng nhất của CPU
+ Lưu trữ các toán hạng đầu vào + Lưu kết quả đầu ra
- Kích thước của thanh ghi A tương ứng với độ dài từ xử lý của CPU: 8, 16, 32, 64 bit
- Cũng được sử dụng để trao đổi dữ liệu với các thiết bị vào ra
4: Chức năng và phương thức hoạt động của bộ nhớ PC( thanh ghi lệnh IP)
- PC lưu địa chỉ của lệnh tiếp theo
- chứa địa chỉ ô nhớ chứa lệnh đầu tiên của chương trình khi nó được kích hoạt và được tải vào bộ nhớ
- Khi CPU chạy xong một lệnh, địa chỉ lệnh tiếp theo được tải vào PC
- Kích thước của PC phụ thuộc vào thiết kế CPU: 8, 16, 32, 64 bit
5: Chức năng và phương thức hoạt động của con trỏ ngăn xếp(stackP)
- Ngăn xếp là 1 đoạn bộ nhớ đặc biệt hoạt động theo nguyên tắc vào sau ra trước
- Con trỏ ngăn xếp là thanh ghi luôn trỏ tới đỉnh của ngăn xếp lOMoAR cPSD| 59092960
- Hai thao tác với ngăn xếp: Push và Pop
Thanh ghi <-{SP}chuyển dữ liệu từ đỉnh nx vào thanh ghi
SP <- SP – 1 giảm địa chỉ đỉnh ngăn xếp
SP <-SP + 1 ; tăng địa chỉ đỉnh ngăn xếp
{SP} <- Dữ liệu ; nạp dữ liệu vào ngăn x
6: Thanh ghi cờ( thanh ghi trạng thái) của vi xử lí có chức năng gì ?Nêu ý nghĩa cờ C cờ Z cờ S
Thanh ghi trạng thái hoặc thanh ghi cờ là thanh ghi đặc biệt của CPU, mỗi bit của thanh ghi cờ
lưu trạng thái của kết quả của phép tính ALU
+ ZF: Cờ Zero, ZF=1 nếu kết quả=0 và ZF=0 nếu kết quả<>0.
+ SF: Cờ dấu, SF=1 nếu kết quả âm và SF=0 nếu kết quả dương.
+ CF: Cờ nhớ, CF=1 nếu có nhớ/mượn, CF=0 trong trường hợp khác.
+ AF: Cờ nhớ phụ, AF=1 nếu có nhớ/mượn ở nửa thấp của toán hạng.
+ OF: Cờ tràn, OF=1 nếu xảy ra tràn, OF=0 trong trường hợp khác
+ PF: Cờ chẵn lẻ, PF=1 nếu tổng số bit 1 trong kết quả là lẻ và PF=0 nếu tổng số bit 1 trong kết quả là chẵn.
+ IF: Cờ ngắt, IF=1: cho phép ngắt, IF=0: cấm ngắt.
7: Chế độ địa chỉ là gì ?
- Định nghĩa chế độ địa chỉ là cách CPU tổ chức các toán hạng của lệnh. Gồm 9 chế độ định địa chỉ: 1.
Chế độ định địa chỉ tức thì (Im):
- Định nghĩa: Toán hạng nguồn là 1 hằng số
- ví dụ: MOV AH, 08H ;AH=08H 2.
2. Chế độ định địa chỉ thanh ghi (Reg)
- Định nghĩa: Dữ liệu toán hạng nằm trong thanh ghi
- ví dụMOV AH, 08H ;AH=08H MOV AH, AL ;AH=AL 3.
3. Chế độ định địa chỉ trực tiếp (Mem)
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là 1 hằng số
- Ví dụ: MOV AH, [08H] ;AH=[08H] =100 toán hạng nguồn MOV [08H], DL ;toán hạng đích 4.
4. Chế độ định địa chỉ gián tiếp (Mem)
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là giá trị của thanh ghi
(thanh ghi chứa địa chỉ này phải là thanh ghi 16 bit) - Ví dụ:MOV AH, [BX] ;AH=[BX] MOV [BX], DL 5.
5. Chế độ định địa chỉ gián tiếp thanh ghi
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là giá trị của thanh ghi BX/BP/SI/DI
- Ví dụ: MOV AH, [BX] MOV AH, [BP] 6.
6. Chế độ định địa chỉ cơ sở và chế độ định địa chỉ chỉ số
- Bản chất là chế độ định địa chỉ gián tiếp thanh ghi. Khác nhau là dùng thanh ghi nào
- Với chế độ định địa chỉ cơ sở: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là giá trị
của thanh ghi cơ sở BX/BP- Với chế độ định địa chỉ cơ sở: Dữ liệu toán hạng nằm trong bộ nhớ,
có địa chỉ độ lệnh là giá trị của thanh ghi chỉ số SI/DI lOMoAR cPSD| 59092960 7.
7. Chế độ định địa chỉ tương đối cơ sở
- Địnhnghĩa:Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là sự kết hợp của giá trị
thanh ghi cơ sở BX/BP với 1 hằng số- Ví dụ: MOV AH, [BX+10] 8.
8. Chế độ định địa chỉ tương đối chỉ số
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là sự kết hợp của giá trị
thanh ghi chỉ số SI/DI với 1 hằng số - Ví dụ: MOV AH, [SI+10] 9.
9. Chế độ định địa chỉ cơ sở chỉ số
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là sự kết hợp của giá trị
thanh ghi cơ sở BX/BP và thanh ghi chỉ số SI/DI- Ví dụ: MOV AH, [BX + SI] MOV [BP + DI], AL
10. 10. Chế độ định địa chỉ tương đối cơ sở chỉ số
- Định nghĩa: Dữ liệu toán hạng nằm trong bộ nhớ, có địa chỉ độ lệnh là sự kết hợp của giá trị
thanh ghi cơ sở BX/BP, thanh ghi chỉ số SI/DI và 1 hằng số
- Ví dụ: MOV AH, [BX + SI +10] MOV [BP + DI + 10], AL
8. Phương thức trao đổi dữ liệu giữa CPU và bộ nhớ cache và giữa bộ nhớ cache với bộ nhớ chính
CPU trao đổi dữ liệu với cache theo các đơn vị cơ sở như byte, từ và từ kép. Còn cache trao
đổi dữ liệu với bộ nhớ chính theo các khối, với kích thước 16, 32, 64 bytes. Sở dĩ CPU trao đổi
dữ liệu với cache theo các đơn vị cơ sở mà không theo khối do dữ liệu được lưu trong các
thanh ghi của CPU – vốn có dung lượng rất hạn chế. Vì vậy, CPU chỉ trao đổi các phần tử dữ liệu
cần thiết theo yêu cầu của các lệnh. Ngược lại, cache trao đổi dữ liệu với bộ nhớ chính theo các
khối, mỗi khối gồm nhiều byte kề nhau với mục đích bao phủ các mẩu dữ liệu lân cận theo
không gian và thời gian. Ngoài ra, trao đổi dữ liệu theo khối (hay mẻ) với bộ nhớ chính giúp
cache tận dụng tốt hơn băng thông đường truyền và nhờ vậy có thể tăng tốc độ truyền dữ liệu.
9: Vẽ sơ đồ và nêu đặc điểm của ktmt von-neuman cổ điển
*Các máy tính kiến trúc Von-Neumann dựa trên 3 khái niệm cơ bản: -
Dữ liệu và lệnh được lưu trong bộ nhớ đọc/ viết chia sẻ -
Bộ nhớ được đánh địa chỉ dựa trên đoạn và không phụ thuộc vào
việc nó lưu trữ gì- Các lệnh của chương trình được chạy lần lượt, lệnh
nọ tiếp sau lệnhkia * Quá trình thực hiện được chia thành 3 giai đoạn chính: -
CPU lấy lệnh từ bộ nhớ - CPU giải mã lệnh và chạy lệnh; nếu lệnh
cần dữ liệu thì đọc dữ liệu từ bộ nhớ - CPU viết kết quả vào bộ nhớ nếu có lOMoAR cPSD| 59092960 - Đặc điểm:
+ Chia bộ nhớ trong thành 2 phần riêng rẽ:
- Bộ nhớ lưu chương trình (Program Memory) - Bộ nhớ lưu dữ liệu (Data Memory)
+ Hai hệ thống bus riêng: sử dụng để kết nối CPU với bộ nhớ lưu chương trình và bộ nhớ lưu dữ liệu
+ Mỗi bộ nhớ đều có 3 thành phần để truyền dẫn các tín hiệu địa chỉ, dữ liệu và điều khiển
Ưu điểm của kiến trúc Harvard so với Von Neumann 1.
Truy cập nhanh hơn: do lệnh và dữ liệu có bus riêng, có thể truy cập song song. 2.
Hiệu suất cao hơn: giảm xung đột bộ nhớ (instruction/data conflict). 3.
An toàn hơn: code và dữ liệu tách biệt, tránh ghi đè nhầm mã chương trình. 4.
Tối ưu cho hệ nhúng: phù hợp với vi điều khiển, DSP nhờ tốc độ và độ ổn định.
10.Nêu sơ đồ khối tổng quát và chu trình xử lí lệnh của CPU Cấu tạo của CPU
- gồm 3 thành phần chính:
+ Khối xử lý (CU) + Khối số học và logic (ALU) + Các thanh ghi (Regs) - Chức năng của các thành phần:
+ Chức năng CU: nhận lệnh, giải mã lệnh thành mi lệnh và thi hành các mi lệnh
+ Chức năng ALU: ● Thực hiện phép tính số học +, -, *, / ● Thực hiện phép tính logic and, not, or
-> Theo sự điều khiển của CU lOMoAR cPSD| 59092960
+ Chức năng Regs: Chứa lệnh và dữ liệu cho hoạt động của CPU theo chức năng của một số
thanh ghi điển hình (phần các thanh ghi)
Câu hỏi trong đề thi: nêu chức năng của các thành phần trong quá trình CPU xử lý lệnh ADD R1, R2
-> trả lời: Trong quá trình CPU xử lý lệnh ADD R1, R2, các thành phần chính bao gồm 1.
Khối xử lý (Control Unit - CU): Đây là thành phần quản lý và điều khiển hoạt động của
CPU. Chức năng chính của CU là lấy lệnh từ bộ nhớ, giải mã lệnh và điều khiển các thành phần
khác của CPU để thực hiện lệnh đó. CU sẽ xác định các tín hiệu điều khiển và lựa chọn đường
dẫn dữ liệu trong CPU để thực hiện lệnh ADD R1, R2. 2.
Khối số học và logic (Arithmetic Logic Unit - ALU): ALU là thành phần chịu trách nhiệm
thực hiện các phép toán số học và logic trong CPU. Trong trường hợp lệnh ADD R1, R2, ALU sẽ
nhận giá trị từ thanh ghi R1 và R2, thực hiện phép cộng và đưa kết quả vào một thanh ghi khác hoặc trả về cho CU. 3.
Các thanh ghi (Registers): Các thanh ghi là các bộ nhớ nhanh và nhỏ được sử dụng trong
CPU để lưu trữ dữ liệu tạm thời và các giá trị trung gian. Trong trường hợp lệnh ADD R1, R2,
thanh ghi R1 và R2 chứa các giá trị cần được cộng lại với nhau. Kết quả của phép cộng sẽ được
lưu trữ trong một thanh ghi khác hoặc được trả về cho CU. Tóm lại, trong quá trình xử lý lệnh
ADD R1, R2, Khối xử lý (CU) sẽ điều khiển hoạt động của ALU và truy cập vào các thanh ghi
(Regs) để thực hiện phép cộng và lưu trữ kết quả.
Chu kỳ xử lý lệnh của CPU:
1. Khi một chương trình được chạy, hệ điều hành tải mã chương trình vào bộ nhớ trong RAM
2. Địa chỉ lệnh đầu tiên của chương trình được đưa vào thanh ghi PC
3. Địa chỉ của ô nhớ chứa lệnh được chuyển tới bus A qua thanh ghi MAR
4. Bus A truyền địa chỉ tới khối quản lý bộ nhớ MMU
5. MMU chọn ô nhớ và sinh ra tín hiệu READ
6. Lệnh chứa trong ô nhớ được chuyển tới thanh ghi MBR qua bus D
7. MBR chuyển lệnh tới thanh ghi IR. Sau đó IR lại chuyển lệnh tới CU
8. CU giải mã lệnh và sinh ra các tín hiệu xử lý cho các đơn vị khác, ví dụ như ALU để thực hiện lệnh cộng
9. Địa chỉ trong PC được tăng lên để trỏ tới lệnh tiếp theo của chương trình sẽ được thực
hiện10. Thực hiện lại các bước 3 -> 9 để chạy hết các lệnh của chương trình Các thanh ghi:
1. Thanh ghi tích lũy A
- Thanh ghi tích lũy hay thanh ghi A là một trong những thanh ghi quan trọng nhất của CPU
+ Lưu trữ các toán hạng đầu vào + Lưu kết quả đầu ra
- Kích thước của thanh ghi A tương ứng với độ dài từ xử lý của CPU: 8, 16, 32, 64 bit
- Cũng được sử dụng để trao đổi dữ liệu với các thiết bị vào ra
2. Bộ đếm chương trình PC
- PC lưu địa chỉ của lệnh tiếp theo
- chứa địa chỉ ô nhớ chứa lệnh đầu tiên của chương trình khi nó được kích hoạt và được tải vào bộ nhớ
- Khi CPU chạy xong một lệnh, địa chỉ lệnh tiếp theo được tải vào PC
- Kích thước của PC phụ thuộc vào thiết kế CPU: 8, 16, 32, 64 bit lOMoAR cPSD| 59092960
3. Con trỏ ngăn xếp SP
- Ngăn xếp là 1 đoạn bộ nhớ đặc biệt hoạt động theo nguyên tắc vào sau ra trước
- Con trỏ ngăn xếp là thanh ghi luôn trỏ tới đỉnh của ngăn xếp
- Hai thao tác với ngăn xếp: Push và Pop 4. Thanh ghi lệnh IR
- Lưu trữ lệnh đang được xử lý
- IR lấy lệnh từ MBR và chuyển nó tới CU để giải mã lệnh 5. Thanh ghi MAR
- Thanh ghi địa chỉ bộ nhớ 6. Thanh ghi MBR - Thanh ghi nhớ đệm
11: sơ đồ khối và chức năng của khối điều khiển CU và khối tính toán số học và logic ( ALU)
- Điều khiển tất cả các hoạt động của CPU theo xung nhịp đồng hồ- Nhận 3 tín hiệu đầu vào:
+ Lệnh từ IR + Giá trị các cờ trạng thái + Xung đồng hồ - CU sinh 2 nhóm tín hiệu đầu ra:
+ Nhóm tín hiệu điều khiển các bộ phận bên trong CPU
+ Nhóm tín hiệu điều khiển các bộ phận bên ngoài CPU
- Sử dụng nhịp đồng hồ để đồng bộ hóa các đơn vị bên trong CPU và giữa CPU với các thphần bên ngoài
- ALU có: + 2 cổng IN để nhận đầu vào từ các thanh ghi + 1 cổng OUT được nối với bus trong để
gửi kết quả tới các thanh ghi- Bao gồm các đơn vị chức năng con để thực hiện các phép toán số học và logic:
+ Bộ cộng (ADD), bộ trừ (SUB), bộ nhân (MUL), bộ chia (DIV), . . . + Các bộ dịch (SHIFT) và quay
(ROTATE) + Bộ logic như phủ định (NOT), bộ và (AND), bộ hoặc (OR), và bộ hoặc loại trừ (XOR)
(Các bus bên trong CPU)
- Bus trong là kênh liên lạc của tất cả các thành phần trong CPU - Hỗ trợ liên lạc 2 chiều
- Bus trong có giao diện để trao đổi thông tin với bus ngoài - Bus trong có băng thông lớn và tốc
độ nhanh hơn so với bus ngoài12. Lệnh máy tính lOMoAR cPSD| 59092960
Khái niệm về lệnh máy tính
- là một từ nhị phân được gán một nhiệm vụ cụ thể, hướng dẫn cho máy tính biết phải làm gì.
- Các giai đoạn xử lý lệnh:
+ Đọc lệnh IF: lệnh được đọc từ bộ nhớ vào CPU + Giải mã lệnh ID: CPU giải mã lệnh
+ Chạy lệnh IE: CPU thực hiện lệnh + Ghi WB: kết quả (nếu có) ghi vào thanh ghi/ bộ nhớ - Khuôn dạng của lệnh
+ Dạng tổng quát của lệnh máy tính gồm 2 phần chính:
1) Mã lệnh: Mã hóa cho thao tác mà bộ xử lý phải thực hiện
2) Địa chỉ của các toán hạng: Chỉ ra nơi chứa các toán hạng mà thao tác sẽ tác động: - Toán hạng
nguồn: dữ liệu vào của thao tác - Toán dạng đích: dữ liệu ra của thao tác.
Câu hỏi 2.7: Nêu các dạng địa chỉ của lệnh. Cho ví dụ minh hoạ với mỗi dạng địa chỉ.
Toán hạng 3 địa chỉ: Dạng: opcode addr1, addr2, addr3
Mỗi địa chỉ addr1, addr2, addr3 tham chiếu đến một ô nhớ hoặc một thanh ghi. Ví dụ: ADD R1, R2, R3;
R1 ← R2 + R3 R2 cộng với R3, kết quả gán vào R1. (Ri là thanh ghi của CPU) ADD A, B, C;
M[A] ← M[B] + M[C] A, B, C là địa chỉ các ô nhớ.
Toán hạng 2 địa chỉ: Dạng: opcode addr1, addr2
Mỗi địa chỉ addr1, addr2 tham chiếu đến một ô nhớ hoặc một thanh ghi.
Ví dụ: ADD R1, R2; R1 ← R1 + R2 //R1 cộng với R2, kết quả gán vào R1. (Ri là thanh ghi của CPU)
ADD A, B; M[A] ← M[B] + M[B] // A, B là địa chỉ các ô nhớ.
Toán hạng 1 địa chỉ: Dạng: opcode addr1
Địa chỉ addr1 tham chiếu đến một ô nhớ hoặc một thanh ghi.Ở dạng 1 địa chỉ, thanh ghi tích luỹ
A (Accumulator) được sử dụng như địa chỉ addr2 trong dạng 2 địa chỉ. Ví dụ: ADD R1;
Racc ← Racc + R1 // R1 cộng với Racc, kết quả gán vào Racc. R1 là thanh
ghi của CPU. ADD A; Racc Racc + M[A] // A là địa chỉ một ô nhớ.
Toán hạng 1,5 địa chỉ: // Dạng: opcode addr1, addr2
Một địa chỉ tham chiếu đến một ô nhớ và địa chỉ còn lại tham chiếu đến một thanh ghi. Dạng
1,5 địa chỉ là dạng hỗn hợp giữa ô nhớ và thanh ghi. Ví dụ: ADD A, R1; M[A] M[A] + R1 // Nội
dung ô nhớ A cộng với R1, kết quả lưu vào ô nhớ A R1 là thanh ghi của CPU và A là địa chỉ một ô nhớ.
Toán hạng 0 địa chỉ: Được sử dụng trong các lệnh thao tác với ngăn xếp: PUSH và POP.
13.Cơ chế xử lý xen kẽ dòng lệnh (Cơ chế ống lệnh pipeline)
- Cơ chế xử lý xen kẽ dòng lệnh là một phương pháp cho phép đồng thời thực hiện nhiều lệnh,
giảm thời gian trung bình thực hiện mỗi lệnh, tăng hiệu năng xử lệnh của CPU.
- Mỗi lệnh thực hiện theo 5 giai đoạn của hệ thông:
+ IF Đọc lệnh: lấy lệnh từ bộ nhớ (hoặc cache)
+ ID Giải mã lệnh: thực hiện giải mã lệnh và lấy các toán hạng
+ IE Thực thi lệnh: Nếu là lệnh truy cập bộ nhớ thì tính toán địa chỉ bộ nhớ + MEM Đọc-ghi bộ
nhớ: Đọc và ghi bộ nhớ nếu không truy cập bộ nhớ thì không có giai đoạn này
+ WB Ghi: Kết quả (nếu có) CPU xử lý được ghi vào thanh ghi/bộ nhớ lưu
Các vấn đề liên quan đến xen kẽ dòng lệnh
- Xung đột tài nguyên: + Xung đột truy cập bộ nhớ + Xung đột truy cập thanh ghi lOMoAR cPSD| 59092960
- Xung đột/ tranh chấp dữ liệu (Data Hazard) + Vấn đề read after write hazard- Các câu lệnh rẽ nhánh
+ Không điều kiện + Có điều kiện + Gọi thực hiện và trở về từ chương trình con Cách khắc phục
những vấn đề trên:
- Xung đột tài nguyên: Tài nguyên không đủ
+ Nâng cao khả năng tài nguyên + Memory/ cache: hỗ trợ nhiều thao tác đọc/ ghi cùng lúc
+ Chia cache thành cache lệnh và cache dữ liệu để cải thiện truy nhập
- Xung đột/ tranh chấp dữ liệu (Data Hazard): Tranh chấp đọc sau khi ghi (RAW) là kiểu hay gặp nhất
+ Nhận dạng tranh chấp RAW khi nó diễn ra (các lệnh phụ thuộc)
+ Khi tranh chấp RAW xảy ra, tạm dừng (stall) pipeline cho đến khi lệnh phía trước hoàn tất giai
đoạn WB + Có thể dùng compiler để nhận dạng RAW và thực hiện:
-> Chèn các lệnh NO-OP và giữa các lệnh có thể gây ra tranh chấp (NO-OP là lệnh rỗng, và chỉ
dùng để tiêu tốn thời của CPU)
-> Thay đổi thứ tự thực hiện của các lệnh trong chương trình và chèn các lệnh độc lập vào giữa
các lệnh có thể gây ra tranh chấp RAW.
+ Sử dụng phần cứng để xác định RAW và dự đoán trước giá trị dữ liệu phụ thuộc.
- Xử lý rẽ nhánh: Lệnh rẽ nhánh làm thay đổi bộ đếm của chương trình nên có thể làm thay đổi
thứ tự thực hiện các lệnh của chương trình pipeline.
+ Đích rẽ nhánh + Dự đoán rẽ nhánh + Làm chậm rẽ nhánh:
-> Sử dụng complier để chèn NO-OP vào vị trí ngay sau lệnh rẽ nhánh
->Chuyển một lệnh độc lập từ trước tới ngay sau lệnh rẽ nhánh 14. Cấu trúc phân cấp bộ nhớ
Hệ thống bộ nhớ máy tính được tổ chức theo cấu trúc phân cấp gồm các thành phần chính sau: 1.
Thanh ghi CPU (CPU Registers) o Dung lượng: Rất nhỏ (vài chục byte đến vài KB).
o Tốc độ truy cập: Nhanh nhất, hoạt động ở tốc độ của CPU. o Giá thành: Cao
nhất do tích hợp trực tiếp trong CPU.
o Vai trò: Lưu trữ toán hạng và kết quả tạm thời khi CPU xử lý lệnh. 2. Bộ nhớ Cache
o Dung lượng: Nhỏ (từ vài KB đến vài chục MB). o Tốc độ truy cập: Rất nhanh,
nhưng chậm hơn thanh ghi. o Giá thành: Đắt, nhưng rẻ hơn thanh ghi. lOMoAR cPSD| 59092960
o Vai trò: Lưu trữ dữ liệu và lệnh thường dùng, giúp CPU giảm thời gian truy cập bộ nhớ chính. 3.
Bộ nhớ chính (Main Memory - RAM/ROM) o Dung lượng: Lớn hơn (từ vài trăm MB
đến hàng GB). o Tốc độ truy cập: Chậm hơn cache, nhưng nhanh hơn bộ nhớ ngoài. o
Giá thành: Thấp hơn cache.
o Vai trò: Lưu trữ chương trình và dữ liệu đang hoạt động. 4.
Bộ nhớ ngoài (Secondary/Tertiary Storage - HDD, SSD, đĩa quang, băng từ) o Dung
lượng: Rất lớn (từ vài chục GB đến hàng TB). o Tốc độ truy cập: Chậm nhất. o Giá thành: Rẻ nhất.
o Vai trò: Lưu trữ dữ liệu lâu dài (hệ điều hành, phần mềm, file người dùng).
Tại sao cấu trúc phân cấp giúp tăng hiệu năng và giảm giá thành sản xuất? 1.
Tăng hiệu năng hệ thống o Giảm thời gian truy cập trung bình o Cơ chế dự đoán
(prefetching): o Tận dụng nguyên tắc cục bộ (locality 2.
Giảm giá thành sản xuất o Tối ưu chi phí o Cân bằng giữa tốc độ và dung lượng:
o Hiệu quả kinh tế:
Vai trò của cấu trúc phân cấp bộ nhớ - Nâng cao hiệu năng hệ thống:
+ Dung hòa được CPU có tốc độ cao với bộ nhớ chính và bộ nhớ phụ có tốc độ thấp
+ Thời gian truy cập dữ liệu trung bình của CPU từ hệ thống bộ nhớ gần bằng thời gian truy cập cache
- Giảm giá thành sản xuất: + Các thành phần đắt tiền sẽ được sử dụng với dung lượng nhỏ hơn
+ Các thành phần rẻ hơn được sử dụng với dung lượng lớn hơn
+ Tổng giá thành của hệ thống nhớ theo mô hình phân cấp sẽ rẻ hơn so với hệ thống nhớ không
phân cấp cùng tốc độ 15: bộ nhớ cache
Bộ nhớ cache- Cache là thành phần nhớ trong sơ đồ phân cấp bộ nhớ máy tính.
+ Nó hoạt động như thành phần trung gian, trung chuyển dữ liệu từ bộ nhớ chính về CPU và
ngược lại - Vị trí của cache:
+ Với các hệ thống cũ, cache thường nằm ngoài CPU + Với các CPU mới, cache thường được tích
hợp vào trong CPU - Dung lượng cache thường nhỏ:
- Tốc độ truy nhập của cache nhanh hơn so với tốc độ bộ nhớ chính
- Giá thành cache (tính trên bit) thường đắt hơn so với bộ nhớ chínhVai trò của bộ nhớ cache
- Nâng cao hiệu năng hệ thống:
+ Dung hòa giữa CPU có tốc độ cao và bộ nhớ chính tốc độ thấp
+ Thời gian trung bình CPU truy cập hệ thống bộ nhớ gần bằng thời gian truy cập cache - Giảm giá thành sản xuất:
+ Nếu 2 hệ thống có cùng hiệu năng thì hệ thống có cache sẽ rẻ hơn + Nếu 2 hệ thống cùng giá
thành, hệ thống có cache sẽ nhanh hơn Hai nguyên lí hoạt động của cache:
-Nguyên lý lân cận về không gian: “Nếu một ô nhớ đang được truy nhập thì xác xuất các ô nhớ
liền kề với nó được truy nhập trong tương lai gần là rất cao”. Lân cận về không gian thường
được áp dụng cho nhóm lệnh hoặc dữ liệu có tính tuần tự cao trong không gian chương trình. -
Nguyên lý lân cận về thời gian chú trọng hơn đến tính lặp lại của việc truy nhập các mẩu thông lOMoAR cPSD| 59092960
tin trong một khoảng thời gian tương đối ngắn: “Nếu một ô nhớ đang được truy nhập thì xác
xuất nó được truy nhập lại trong tương lai gần là rất cao
”. Lân cận về thời gian được áp dụng
cho dữ liệu và nhóm các lệnh trong vòng lặp
Phương thức trao đổi dữ liệu của bộ nhớ cache với các thành phần trong máy tính - CPU trao
đổi dữ liệu với cache theo các đơn vị cơ sở như byte, từ và từ kép.
- Cache trao đổi dữ liệu với bộ nhớ chính theo các khối, với kích thước 16, 32, 64 bytes.16.
- Kiến trúc Look aside:
+ Cache và bộ nhớ cùng được kết nối tới bus hệ thống
+ Cache và bộ nhớ chính “thấy” chu kỳ bus CPU tại cùng một thời điểm + Ưu điểm: - Thiết kế đơn giản
- Miss nhanh: khi CPU không tìm thấy mục dữ liệu trong cache nó đồng thời tìm trong bộ nhớ
chính cùng 1 chu kỳ xung nhịp+ Nhược điểm:
- Hit chậm: cache kết nối với CPU sử dụng bus hệ thống có tần số làm việc không cao và băng
thông hẹp- Kiến trúc Look Through:
+ Cache nằm giữa CPU và bộ nhớ chính + Cache “thấy” chu kỳ bus CPU trước sau đó nó
“truyền” lại cho bộ nhớ chính + Ưu điểm:
- Hit nhanh : Cache kết nối với CPU bằng bus riêng tốc độ cao và có băng thông lớn+ Nhược điểm:
- Đắt - Thiết kế phức tạp
- Miss chậm : khi CPU không tìm thấy dữ liệu trong cache nó cần tìm trong Bộ nhớ tại 1 xung nhịp tiếp theo
Câu hỏi thêm trong đề: Look Aside và Look Through cái nào được sử dụng nhiều hơn trong
thực tế hiện nay. Tại sao?
=> Trả lời: -> Look Aside được sử dụng nhiều hơn trong thực tế vì có những lợi ích sau:
+ Do Cache và bộ nhớ chính đều kết nối với BUS hệ thống nên nó cho phép việc truy xuất Cache
và bộ nhớ chính xảy ra độc lập, giúp giảm thiểu sự chồng chéo và tăng hiệu suất
+ Nó cho phép kiểm soát rõ ràng hơn về việc cập nhật dữ liệu giữa cache và bộ nhớ chính. Ví dụ:
nếu Cache không có dữ liệu, CPU sẽ truy xuất thẳng vào bộ nhớ chính đọc dữ liệu, sau đó Cache
sẽ cập nhật dữ liệu CPU đã đọc + Cung cấp khả năng mở rộng tốt hơn vì Cache có thể được mở
rộng mà không ảnh hưởng đến việc truy xuất bộ nhớ chính
16. RAID là gì? Tại sao RAID có thể nâng cao tính tin cậy, tốc độ truy cập và dung lượng hệ
thống lưu trữ? Cấu hình RAID nào phù hợp hơn với máy chủ cơ sở dữ liệu trong ba loại RAID
0, RAID 1và RAID 10? Giải thích?

- Định nghĩa RAID: là một công nghệ tạo các thiết bị lưu trữ tiên tiến trên cơ sở các ổ đĩa độc lập,
nhằm các mục đích: + Tốc độ cao + Tính tin cậy cao + Dung lượng lớn
- Cấu hình RAID nào phù hợp hơn với máy chủ cơ sở dữ liệu trong ba loại RAID 0, RAID 1 và RAID 10?
+ RAID10 phù hợp máy chủ cơ sở dữ liệu: Thời gian đáp ứng, thời gian phản hồi nhanh
+ RAID5 phù hợp đầu tư kinh doanh: do tốc độ nhanh, dung lượng hiệu dụng lớn 87,5% + RAID6
phù hợp cho kĩ thuật: Khả năng đảm bảo lớn do cho phép khả năng hỏng 2 ổ 17. Chính sách
thay thế dòng Cache:
1. Ngẫu nhiên lOMoAR cPSD| 59092960
- Các dòng cache được chọn ngẫu nhiên để thay thế - Ưu điểm: Cài đặt đơn giản, nhanh - Nhược điểm:
+ Khi đưa dòng cache mới thay thế ngẫn nhiên không xem xét đến các dòng cache đang được sử dụng
+ Nếu một dòng cache đang được sử dụng và bị thay thế -> xảy ra xung đột dữ liệu, bị miss dữ
liệu và nó lại cần được đọc từ bộ nhớ chính vào cache. -> hệ số miss cao
2. Thay thế kiểu vào trước ra trước (FIFO - First in First out)
- Các dòng cache được đọc vào cache trước sẽ bị chọn để thay thế trước
- Ưu điểm: Do biết được thời gian của các dòng cache sẽ bị thay thế nên giảm thiểu việc dữ liệu
bị mất => có hệ số miss thấp hơn so với thay thếngẫu nhiên - Nhược điểm:
+ Thay thế vẫn chưa thực sự xem xét đến các dòng cache đang được sử dụng. Một dòng cache
“già” vẫn có thể đang được sử dụng => hệ số miss vẫn còn cao
+ Cài đặt phức tạp do cần có mạch điện tử (đồng hồ đo thời gian sống của các dòng cache) để
theo dõi trật tự nạp các dòng bộ nhớ vào cache 3. Thay thế các dòng ít được sử dụng gần đây nhất (LRU)
- Các dòng cache ít được sử dụng gần đây nhất được lựa chọn để thay thế - Ưu điểm:
+ Có hệ số miss thấp nhất so thay thế ngẫu nhiên và thay thế vào trước ra trước
+ Do thay thế LRU có xem xét đến các dòng cache đang được sử dụng
- Nhược điểm: Cài đặt phức tạp do cần có mạch điện tử để theo dõi tần suất sử dụng của dòng cache
Câu hỏi trong đề thi: Chính sách nào cho hiệu quả cao nhất? Vì sao
=> Trả lời: Chính sách thay thế dòng ít được sử dụng gần đây nhất (LRU) cho hiệu quả cao nhất.
Vì nó xem xét đến các dòng cache đang sử dụng. Nếu dòng cache nào ít hoạt động thì sẽ bị thay
thế và ngược lại dòng cache hoạt động nhiều, lưu nhiều dữ liệu bộ nhớ sẽ không bị thay thế.
Dẫn đến hệ số miss thấp và hệ số Hit cao. Nên chính sách này cho hiệu suất tốt nhất.
18. /*/Các cơ chế, phương thức đọc ghi bộ nhớ (nguyên lý hoạt động của cache) - Cục bộ (lân cận) về không gian:
+ Nếu một vị trí bộ nhớ được truy cập, thì xác suất các vị trí gần đó được truy cập trong thời
gian gần tới là cao + Áp dụng với dữ liệu và các lệnh có thứ tự tuần tự theo chương trình
+ Lệnh trong chương trình thường có thứ tự tuần tự, do đó cache đọc một khối lệnh trong bộ
nhớ, mà bao gồm cả các phần tử xung quanh vị trí phần tử hiện tại được truy cập.
-> Ví dụ minh họa: Giả sử chúng ta có một chương trình tính tổng của một mảng lớn chứa các
phần tử số nguyên. Chương trình lặp qua mảng và tính tổng bằng cách cộng các phần tử lại với
nhau. Khi chúng ta truy cập vào một phần tử đầu tiên của mảng, nó sẽ được nạp vào cache
cùng với một số khối dữ liệu xung quanh. Sau đó, chúng ta tiếp tục truy cập vào các phần tử
tiếp theo trong mảng. Vì các phần tử này nằm gần nhau và đã được nạp vào cache, chúng ta có
thể truy cập dữ liệu từ cache một cách nhanh chóng, không cần truy cập lại bộ nhớ chính. Điều
này giúp tận dụng nguyên lý cận kề về không gian - Cục bộ (lân cận) về thời gian:
+ Nếu một vị trí bộ nhớ được truy cập, thì xác suất nó được truy cập lại trong thời gian gần là cao
+ Áp dụng với các mục dữ liệu và các lệnh trong vòng lặp lOMoAR cPSD| 59092960
+ Cache đọc khối dữ liệu trong bộ nhớ gồm tất cả các thành phần trong vòng lặp
-> Ví dụ minh họa vẫn ví dụ trên: trong vòng lặp trên, ta truy cập lại các phần tử đã được truy
cập trước đó. Khi chúng ta truy cập lại các phần tử này, chúng đã được lưu trong cache và có
thể truy xuất nhanh chóng mà không cần truy cập lại bộ nhớ chính. Điều này tận dụng nguyên lý cận kề về thời gian.
Các yếu tố tăng hệ số hit và hiệu năng 1. Kích thước cache:
- Với kích thước lớn, có thể giảm tần suất tráo đổi các dòng cache của các chương trình khác
nhau với bộ nhớ chính. Đồng thời- Hỗ trợ đa nhiệm, xử lý song song và các hệ thống CPU nhiều nhân tốt hơn.
- Nhược điểm của cache lớn là chậm 2. Chia tách cache
- Dữ liệu và lệnh có tính lân cận khác nhau;
- Dữ liệu thường có tính lân cận về thời gian cao hơn lân cận về không gian; lệnh có tính lân cận
về không gian cao hơn lân cận về thời gian;- Cache lệnh chỉ cần hỗ trợ thao tác đọc; cache dữ
liệu cần hỗ trợ cả 2 thao tác đọc và ghi và tách cache giúp tối ưu hoá dễ dàng hơn; - Hỗ trợ
nhiều lệnh truy nhập đồng thời hệ thống nhớ, giảm xung đột tài nguyên cho CPU pipeline. 3. Tạo cache nhiều mức
- Hệ thống nhớ với nhiều mức cache có khả năng dung hòa tốc độ giữa các thành phần tốt hơn
và có thời gian truy nhập trung bình hệ thống nhớ thấp hơn - Nhiều mức cache có thể giúp
giảm giá thành hệ thống nhớ.
18. Thế nào là vào ra bằng thăm dò và vào ra bằng truy nhập trực tiếp bộ nhớ (DMA). So
sánh sự giống, khác nhau của hai phương pháp và lấy ví dụ minh hoạ.
1. Vào ra bằng thăm dò (Programmed I/O - PIO):
CPU tự điều khiểnliên tục kiểm tra thiết bị ngoại vi. •
Khi thiết bị sẵn sàng, CPU đọc/ghi dữ liệu. •
❌ CPU bị chiếm dụng liên tục.
Ví dụ: CPU kiểm tra bàn phím xem có phím nào được nhấn chưa.
2. Vào ra bằng DMA (Direct Memory Access):
CPU giao nhiệm vụ cho bộ điều khiển DMA. •
DMA tự động truyền dữ liệu giữa thiết bị và bộ nhớ. •
✅ CPU rảnh để làm việc khác.
Ví dụ: Truyền dữ liệu từ ổ cứng vào RAM. 3. So sánh nhanh:
Tiêu chíThăm dò (PIO) DMA
CPU điều khiển Trực tiếpGián tiếp (qua DMA) Tốc độ
Chậm Nhanh, hiệu quả cao
Phù hợp Thiết bị chậmThiết bị nhanh, dữ liệu lớn 19.RAM
Câu hỏi 2.10: Phân biệt bộ nhớ RAM tĩnh và RAM động.
Tại sao bộ nhớ RAM động cần quá trình làm tươi và RAM động thường rẻ hơn RAM tĩnh ? TL : lOMoAR cPSD| 59092960
SRAM (Static Ram) là loại RAM sử dụng một mạch lật trigo lưỡng ổn để lưu một bit thông tin.
Thông tin trong SRAM luôn ổn định và không phải
“làm tƣơi” định kỳ. Tốc độ truy nhập SRAM cũng nhanh hơn nhiều so với DRAM. Mỗi mạch lật
lưu 1 bit thường sử dụng 6, 8 hoặc 10 transitors (gọi là mạch 6T, 8T hoặc 10T); SRAM thường có
tốc độ truy nhập nhanh do các bit của SRAM có cấu trúc đối xứng, Các mạch nhớ SRAM chấp
nhận tất cả các chân địa chỉ tại một thời điểm (không dồn kênh).
DRAM (Dynamic Ram): Mỗi bit DRAM dựa trên một tụ điện và một transitor:Hai mức tích điện
của tụ biểu diễn 2 mức logic 0 1:
• Không tích điện: mức 0 • Tích đầy điện: mức 1.
Thông tin lưu trong các bit DRAM không ổn định và phải được “làm tươi” định kỳ. DRAM chậm hơn nhưng rẻ hơn SRAM.
RAM động cần quá trình làm tươi vì tụ thường tự phóng điện, điện tích trong tụ có xu hướng
bị tổn hao theo thời gian nên: •
Cần nạp lại thông tin trong tụ thường xuyên để tránh mất thông tin. •
Việc nạp lại thông tin cho tụ là quá trình làm tươi (refresh), phải theo định kỳ.
DRAM thường rẻ hơn SRAM do: •
Mỗi bít SRAM dùng nhiều transitor hơn so với 1 bit DRAM •
Do cấu trúc bên trong của SRAM bit phức tạp hơn nên mật độ cấy linh kiện trong SRAM thường thấp.