You are on page 1of 41

Chương 1 : Tổng quan về kiến trúc máy tính

1. Lý thuyết
Câu 1: Khái niệm 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: Nhiều.
+ Giá thành: càng rẻ càng tốt.
Câu 2: Các thành phần
1. Kiến trúc tập lệnh (ISA): là hình ảnh trừu tượng của máy tính ở mức ngôn
ngữ máy ( hoặc hợp ngữ ):
- 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.
2. Vi kiến trúc: còn được gọi là tổ chức máy tính, mô tả hệ thống ở mức thấp,
liên quan tới:
- Các thành phần 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.
3. Thiết kế hệ thống: Tất cả các thành phần phần cứng khác trong hệ thống máy
tính:
- Bus, 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.
- Đa xử lý.
Câu 3: Sơ đồ khối chức năng, chức năng của các thành phần trong một hệ thống
máy tính.

- CPU: bộ xử lý trung tâm:


+ Đọc lệnh từ bộ nhớ.
+ Giải mã và thực hiện lệnh.
- Bộ nhớ trong:
+ Lưu trữ lệnh và dữ liệu để CPU xử lý.
- Các thiết bị vào ra:
+ Nhập dữ liệu và điều khiển.
- Bus hệ thống:
+ Các đường dây kết nối CPU với các thành phần khác của máy tính.
Câu 4: Sơ đồ, đặc điểm của Von-Neumann và Harvard, so sánh V-N hiện đại và
cổ điển.
* Sơ đồ:
* Đặc điểm:
- Von-Neumann:
+ Quá trình thực hiện lệnh 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ó.
+ Hạn chế: Bộ nhớ lệnh và dữ liệu không được truy cập cùng lúc nên thông
lượng nhỏ hơn rất nhiều so với tốc độ CPU có thể làm việc.
+ Khác phục: dùng bộ nhớ Cache giữa CPU và Main memory.

- Harvard:
+ Bộ nhớ chia thành 2 phần:
 Chương trình.
 Dữ liệu.
+ CPU sử dụng 2 bus hệ thống để liên hệ với bộ nhớ:
 CPU có thể đọc lệnh và truy cập dữ liệu bộ nhớ cùng một lúc.
 1 bus A,D cho bộ nhớ chương trình và 1 bus A,D cho bộ nhớ dữ liệu.
* So sánh V-N hiện đại và cổ điển:
- Sơ đồ:

V-N hiện đại dùng thêm Bus hệ thống.


Câu 5: So sánh, phân biệt Harvard và V-N.
Điểm so sánh Harvard V-N
Sắp xếp CPU kết nối RAM và Một kết nối bộ nhớ duy
ROM riêng biệt nhất cấp cho CPU
Yêu cầu phần cứng Nhiều ( dữ liệu và bus Ít ( chỉ cần một bộ nhớ
địa chỉ riêng cho mỗi chung )
bộ nhớ )
Yêu cầu không gian Nhiều Ít
Tốc độ thực hiện Nhanh ( lấy dữ liệu và Chậm ( Không thể
hướng dẫn đồng thời ) đồng thời )
Sử dụng không gian Lãng phí dung lượng Không bị lãng phí
( không thể sử dụng dung lượng ( Có thể sử
không gian của nhau ) dụng )

2.Bài tập
- Tính toán hiệu năng của máy tính dựa trên ( CPI, IC, tốc độ xung nhịp,.. ):
1
+ Định nghĩa hiệu năng: P= T T: thời gian thực hiện.

1
+ Xung nhịp của CPU: Tần số xung nhịp: f 0= t . t 0: thời gian của 1 chu kỳ.
0

n
+ Thời gian CPU: T CPU =n∗t 0= f . n: số chu kỳ xung nhịp.
0

+ Số chu kỳ xung nhịp : n=IC∗CPI IC: số lệnh


CPI: số chu kỳ trên một lệnh.
+ CPI trung bình: CPI = tổng số chu kì / tổng số lệnh.
Chương 2: Khối xử lý trung tâm
1.Lý thuyết
Câu 1: Sơ đồ khối tổng quát và chu trình xử lý lệnh của CPU.
- Sơ đồ:

- Chu trình xử lý lệnh:


1. Khi 1 chương trình được chạy, hệ điều hành tải mã chương trình vào bộ nhớ
trong.
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 MMU.
5. MMU chọn ô nhớ và sinh ra tín hiệu READ.
6. Lệnh chứa trong ô nhớ chuyển tới thanh ghi MBR qua bus D.
7. MR chuyển lệnh tới thanh ghi IR. Sau đó IR 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.
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ện.
10. Thực hiện lại các bước 3 -> 9 để chạy hết lệnh của chương trình.
Câu 2: Thanh ghi của VXL.
- Là thành phần nhớ ở bên trong CPU:
+ Lưu trữ tạm thời lệnh và dữ liệu cho CPU xử lý.
+ Dung lượng nhỏ, số lượng ít.
+ Tốc độ rất cao ( bằng CPU ).
Đọc thêm:
- Các CPU thế hệ cũ (80x86) có 16-32 thanh ghi.
- Kích thước thanh ghi phụ thuộc vào thiết kế CPU : 16,32,64,128 và 256 bit.
Câu 3: Chức năng, đặc điểm và phương thức hoạt động của:
1. Thanh ghi tích lũy A.
- Chức năng:
+ Là một trong những thanh ghi quan trọng nhất của CPU.
+ Lưu toán hạng đầu vào.
+ Chứa kết quả ra.
+ Được dùng trong các lệnh trao đổi dữ liệu với các thiết bị vào ra.
- Đặc điểm: Kích thước bằng với độ dài từ xử lí của CPU: 8,16,32,64 bit.
2. Thanh ghi lệnh IP ( bộ đếm chương trình PC )
- Chức năng: Luôn chứa địa chỉ của ô nhớ chứa lệnh kế tiếp được thực hiện.
- Cách thức hoạt động:
+ PC 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ớ.
+ Sau khi CPU chạy xong 1 lệnh, địa chỉ ô nhớ lệnh tiếp theo được tải vào
PC.
- Đặc điểm: Kích thước PC phụ thuộc vào thiết kế CPU: 8,16,32,64 bit.
3. Thanh ghi lệnh IR:
- Chức năng: Lưu trữ lệnh đang được xử lý.
- Cách thức hoạt động: Lấy lệnh từ MBR và chuyển tới CU để giải mã.
4. Thanh ghi MAR (thanh ghi địa chỉ bộ nhớ)
- Chức năng: Giao diện giữa CPU và bus địa chỉ.
- Cách thức hoạt động: Nhận địa chỉ bộ nhớ của lệnh tiếp theo từ PC và chuyển
nó tới bus địa chỉ.
5. Thanh ghi MBR (thanh ghi đệm bộ nhớ)
- Chức năng: Giao diện giữa CPU và bus dữ liệu.
- Cách thức hoạt động: Nhận lệnh từ bus dữ liệu và chuyển nó tới IR.
6. Thanh ghi cờ FR
- Mỗi bit lưu trữ trạng thái kết quả của phép tính được ALU thực hiện.
- Các bit cờ thường được dùng là các điều kiện rẽ nhánh lệnh tạo logic chương
trình.
- Kích thước FR phụ thuộc thiết kế CPU.
- 2 kiểu cờ:
+ Cờ trạng thái: COAZPS+F.
+ Cờ điều khiển: ITD+F.
7. Con trỏ ngăn xếp SP
- Là 1 đoạn bộ nhớ đặc biệt hoạt động theo nguyên tắc vào sau ra trước (LIFO).
- Thanh ghi luôn trỏ tới đỉnh của ngăn xếp.
- 2 thao tác:
+ Push: đẩy dữ liệu vào ngăn xếp.
+ Pop: lấy dữ liệu ra khỏi ngăn xếp.
Câu 4: Thanh ghi cờ: Ý nghĩa của các cờ Z,S,C,A,O,P,I.
* Thanh ghi cờ FR:
- Mỗi bit lưu trữ trạng thái kết quả của phép tính được ALU thực hiện.
- Các bit cờ thường được dùng là các điều kiện rẽ nhánh lệnh tạo logic chương
trình.
- Kích thước FR phụ thuộc thiết kế CPU.
- 2 kiểu cờ:
+ Cờ trạng thái: COAZPS+F.
+ Cờ điều khiển: ITD+F.
* Ý nghĩa của các cờ:
- ZF: Cờ Zero: ZF = 1 nếu kết quả = 0, ngược lại.
- SF: Cờ dấu: SF = 1 nếu kết quả âm, SF = 0 nếu kết quả dương.
- CF: Cờ nhớ: CF = 1 nếu có nhớ/mượn, ngược lại.
- 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, ngược lại.
- PF: Cờ chẵn lẻ: PF = 1 nếu tổng số bit 1 là lẻ, ngược lại.
- IF: Cờ ngắt: IF = 1 cho phép ngắt, ngược lại ( cấm ngắt ).
Câu 5: Sơ đồ khối, chức năng của khối điều khiển (CU) và khối tính toán số học
(ALU).
* Khối điều khiển: Control Unit

- Sơ đồ:

- Chức năng:
+ Đ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 điều khiển các bộ phận bên trong CPU.
 ---------------------------------------- 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 thành phần bên ngoài.
* Khối số học và logic: ALU
- Sơ đồ:

- Chức năng:
+ 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, trừ, nhân, chia. ADD, SUB, MUL, DIV,…
 Bộ dịch (SHIFT) và quay (ROTATE).
 Bộ phủ định, và, hoặc, hoặc loại trừ. NOT, AND, OR, XOR.
+ ALU có:
 2 cổng IN để nhận đầu vào từ các thanh ghi.
 1 cổng OUT được kết nối với bus trong để gửi kết quả tới các thanh ghi.
Câu 6: 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.
- Có giao diện để trao đổi thông tin với bus ngoài ( bus hệ thống ).
- Có băng thông lớn và tốc độ nhanh hơn bus ngoài.
Chương 3: CPU Pipeline và bộ nhớ cache
1.Lý thuyết
Câu 1: Khái niệm lệnh máy tính, chu kỳ thực hiện lệnh.
1. Lệnh máy tính
- Là một từ nhị phân mà thực hiện một nhiệm vụ cụ thể:
+ Lệnh được lưu trong bộ nhớ.
+ Lệnh được đọc từ bộ nhớ vào CPU để giải mã và thực hiện.
+ Mỗi lệnh có chức năng riêng của nó.
2. Chu kỳ thực hiện lệnh
- Là khoảng thời gian mà CPU thực hiện xong một lệnh.
+ Một chu kỳ thực hiện lệnh gồm một số giai đoạn thực hiện lệnh.
+ Một giai đoạn thực hiện lệnh có thể gồm một số chu kỳ máy.
+ Một chu kỳ máy có thể gồm một số chu kỳ đồng hồ.
+ 1 chu kỳ thực hiện lệnh có thể gồm các thành phần sau:
 Chu kỳ đọc lệnh
 Chu kỳ đọc bộ nhớ
 Chu kỳ ghi bộ nhớ
 Chu kỳ đọc thiết bị ngoại vi
 Chu kỳ ghi thiết bị ngoại vi
 Chu kỳ bus rỗi
Câu 2: Các giai đoạn/pha trong chu kỳ thực hiện lệnh
4 giai đoạn:
- Đọ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ả lệnh ( nếu có ) được ghi vào thanh ghi hoặc bộ nhớ.
Câu 3: Dạng lệnh, địa chỉ toán hạng và ví dụ từng dạng.
* Dạng lệnh

- Mỗi lệnh có một mã lệnh riêng và được biểu diễn bằng một số bit.
- Mỗi lệnh có thể có một hoặc nhiều toán hạng và mỗi toán hạng là một địa chỉ.
- 5 dạng toán hạng của lệnh: 3; 2; 1; 1,5; 0 địa chỉ.
* Dạng địa chỉ/toán hạng
1. Toán hạng dạng 3 địa chỉ
- Dạng:
+ Opcode addr1, addr2, addr3.
+ Mỗi địa chi addr1, addr2, addr3: tham chiếu tới một ô nhớ hoặc thanh ghi.
- Ví dụ:
ADD R1, R2, R3; R2 + R3 -> R1
R2 cộng R3 sau đó kết quả đưa vào R1
Ri là các thanh ghi CPU

2. Toán hạng dạng 2 địa chỉ


- Dạng:
+ Opcode addr1, addr2
+ Mỗi địa chỉ addr1, addr2: tham chiếu tới một ô nhớ hoặc thanh ghi.
- Ví dụ:
ADD R1, R2 R1 + R2 -> R1
R1 cộng R2 sau đó kết quả đưa vào R1 ; Ri là các thanh ghi CPU
3. Toán hạng dạng 1 địa chỉ
- Dạng:
+ opcode addr
+ addr: tham chiếu tới 1 thanh ghi hoặc ô nhớ.
+ Khuôn dạng này sử dụng Racc ( thanh ghi tích lũy - Accummulator) mặc định cho
địa chỉ thứ 2.
- Ví dụ:
ADD R1; R1 + Racc -> Racc
R1 cộng Racc sau đó kết quả đưa vào Racc
Ri là các thanh ghi CPU

4. Toán hạng dạng 1,5 địa chỉ


- Dạng:
+ opcode addr1, addr2
+ 1 địa chỉ tham chiếu tới 1 ô nhớ và địa chỉ còn lại tham chiếu tới thanh ghi.
+ Là dạng hỗn hợp giữa các toán hạng thanh ghi và vị trí bộ nhớ.
- Ví dụ:
ADD R1, B; M[B] + R1 - > R1
5. Toán hạng dạng 0 địa chỉ
- Được thực hiện trong các lệnh mà thực hiện các thao tác ngăn xếp: push & pop.
- Ví dụ:
Push a
Push b -> c=a+b
Add pop c
Câu 4: Lệnh vận chuyển dữ liệu ( 5 lệnh thông dụng ), Lệnh toán học logic ( 13
lệnh ), lệnh điều khiển ( 4 lệnh ).
* Lệnh vận chuyển dữ liệu (5 lệnh)
- Chuyển dữ liệu giữa các phần của máy tính.
Các lệnh thông dụng:
- MOVE: chuyển dữ liệu giữa thanh ghi – thanh ghi, ô nhớ - thanh ghi, ô nhớ - ô
nhớ.
- LOAD: nạp nội dung 1 ô nhớ vào 1 thanh ghi.
- STORE: lưu nội dung 1 thanh ghi ra 1 ô nhớ.
- PUSH: đẩy dữ liệu vào ngăn xếp.
- POP: lấy dữ liệu ra khỏi ngăn xếp.
* Lệnh toán học và logic (13 lệnh)
- Thực hiện các thao tác số học và logic giữa các thanh ghi và nội dung ô nhớ.
Các lệnh số học thông dụng (6 lệnh):
- ADD: cộng 2 toán hạng.
- SUBSTRACT: trừ 2 toán hạng.
- MULTIPLY: nhân 2 toán hạng.
- DIVIDE: chia số học.
- INCREMENT: tăng 1.
- DECREMENT: giảm 1.
Các lệnh logic thông dụng (7 lệnh):
- NOT: phủ định.
- AND: và.
- OR: hoặc.
- XOR: hoặc loại trừ.
- COMPARE: so sánh.
- SHIFT: dịch.
- ROTATE: quay.
* Lệnh điều khiển
- Được dùng để thay đổi trình tự các lệnh được thực hiện.
Các lệnh thông dụng ( 4 lệnh ):
- Các lệnh rẽ nhánh có điều kiện.
- Các lệnh rẽ nhánh không điều kiện.
- CALL: lệnh gọi thực hiện từ chương trình con.
- RETUN: lệnh trở về từ chương trình con.
Câu 5: Cơ chế xử lý xen kẽ dòng lệnh (ống lệnh – pipeline), sơ đồ minh họa và
đặc điểm.
- Định nghĩa:
+ Là phương pháp thực hiện lệnh tiên tiến.
+ 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 lệnh.
+ Tăng hiệu năng xử lý lệnh của CPU.
+ Quá trình thực hiện lệnh được chia thành 5 giai đoạn:
 IF: lấy lệnh từ bộ nhớ ( hoặc cache ).
 ID: giải mã lệnh và lấy các toán hạng.
 EX: thực hiện 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ớ, nếu không có truy cập bộ nhớ thì không có.
 WB: lưu kết quả vào thanh ghi,
- Sơ đồ minh họa:

- Đặc điểm:
+ Là kỹ thuật song song ở mức lệnh.
+ 1 pipeline là đầy đủ nếu nó luôn nhận một lệnh mới tại mỗi chu kỳ đồng hồ.
+ Một pipeline là không đầy đủ nếu có nhiều giai đoạn trễ trong quá trình xử lý.
+ Số lượng giai đoạn của pipeline phụ thuộc vào thiết kế CPU:
 2, 3, 5 giai đoạn: pl đơn giản.
 14 giai đoạn: Pen II, Pen III.
 20 – 31 giai đoạn: PEN IV.
 12 – 15 giai đoạn: Core.
Câu 6: Các vấn đề cơ chế xen kẽ dòng lệnh và biện pháp khắc phục.
1. Vấn đề xung đột tài nguyên (Resource conflict)
- Vấn đề:
+ Xung đột truy cập bộ nhớ.
+ Xung đột truy cập thanh ghi.
- Biện pháp:
+ 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.
2. Xung đột dữ liệu ( Data hazard )
- Vấn đề:
+ Hầu hết là RAW hay Read After Write Hazard ( dữ liệu chưa sẵn sàng cho các
lệnh phụ thuộc tiếp theo ).
- Biện pháp:
+ Nhận biết nó xảy ra.
+ Ngưng pipeline (stall).
+ Sử dụng compiler để nhận biết RAW và:
 Chèn các lệnh NO-OP vào giữa các lệnh có RAW.
 Thay đổi trình tự các lệnh trong chương trình và chèn các lệnh độc lập dữ
liệu vào vị trí giữa 2 lệnh có 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.
3. Do các lệnh rẽ nhánh (Branch Instruction)
- Vấn đề:
+ Do thực hiện gối đầu, các lệnh liền sau rẽ nhánh đã được nạp và thực hiện dở
dang trong ống lệnh sẽ bị đẩy ra làm cho ống lệnh bị trống rỗng và hệ thống phải
bắt đầu nạp mới các lệnh từ địa chỉ đích rẽ nhánh.
- Biện pháp:
+ Sử dụng đích rẽ nhánh.
+ Làm chậm rẽ nhánh.
+ Dự đoán rẽ nhasnh.
Câu 7: Bộ nhớ Cache? Khái niệm, vai trò và hai nguyên lý hoạt động.
* Khái niệm
- Là thành phần nhớ trong sơ đồ phân cấp bộ nhớ máy tính.
- 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í:
+ Hệ thống cũ: cache thường nằm ngoài CPU.
+ Hệ thống mới: cache thường được tích hợp vào trong CPU.

* Vai trò
- 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:
+ 2 hệ thống có cùng hiệu năng, hệ thống có cache sẽ rẻ hơn.
+ 2 hệ thống có cùng giá thành, hê thống có cache sẽ nhanh hơn.
* Hai nguyên lý hoạt động
- Nguyên lý cục bộ/ lân cận về không gian
+ Nếu một vị trí bộ nhớ được truy cập, thì khả năng 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 các mục dữ liệu và lệnh có thứ tự tuần tự theo chương trình.
+ Do các lệnh trong chương trình thường có thứ tự, cache có thể đọc cả khối lệnh
từ bộ nhớ chính và bao gồm cả các phần tử xunh quanh vị trí phần tử hiện tại được
truy cập.
- Nguyên lý cục bộ/ lân cận về thời gian
+ Nếu một vị trí bộ nhớ được truy cập, thì khả năng nó sẽ được truy cập lại trong
thời gian gần tới là cao.
+ Áp dụng với các mục dữ liệu và các lệnh trong vòng lặp.
+ Cache đọc khối dữ liệu trong bộ nhớ bao gồm tất cả các thành phần trong vòng
lặp.
Câu 8: Phương thức CPU trao đổi dữ liệu với bộ nhớ Cache và giữa Cache với bộ
nhớ chính.
- CPU – Cache:
+ Theo các đơn vị cơ sở như byte, word và double word.
- Cache – Bộ nhớ chính:
+ Theo các khối kích thước: 16,32 hoặc 64 bytes.
Câu 9: Nguyên lý, đặc điểm của 2 kiến trúc Cache: Look Aside và Look Through.
* Look Aside

SRAM: RAM lưu dữ liệu cache.


Tag RAM: RAM lưu địa chỉ bộ nhớ.

- 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.
- Nhược: Hit chậm.
* 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: Hit nhanh.
- Nhược:
+ Thiết kế phức tạp.
+ Đắt.
+ Miss chậm.
Câu 10: Các phương pháp ánh xạ Cache: AX trực tiếp, đầy đủ và tập kết hợp.
* AX trực tiếp
- Cache: được chia thành n khối hoặc dòng, từ Line0 -> Line n-1.
- Bộ nhớ:
+ Được chia thành m trang, từ page0 -> page m-1.
+ Mỗi trang bộ nhớ có kích thước bằng cache.
+ Mỗi trang có n lines, từ Line0 tới Line n-1.
- Ánh xạ:
+ Line x của (page0 -> page m-1) được ánh xạ tới Line x của cache. (x chạy từ 0 ->
n-1 ).

Tag: là địa chỉ của trang trong bộ nhớ.


Line: là địa chỉ của line trong cache.
Word: là địa chỉ của word trong line.
- Ưu điểm:
+ Thiết kế đơn giản.
+ Nhanh vì ánh xạ cố định.
- Nhược điểm:
+ Vì ánh xạ cố định nên khả năng xảy ra xung đột cao.
+ Tỷ lệ hit thấp.
* AX đầy đủ
- Cache: được chia thành n khối hoặc dòng, từ Line0 tới Line n-1.
- Bộ nhớ:
+ Được chia thành m khối hay dòng, từ Line0 tới Line m-1.
+ Kích thước mỗi dòng cache bằng kích thước một dòng bộ nhớ.
+ Có thể m >> n (m dòng trong bộ nhớ, n dòng của cache).
- Ánh xạ:
+ Một dòng của bộ nhớ có thể ánh xạ tới dòng bất kì của cache.
+ Line i của bộ nhớ có thể ánh xạ tới line j của cache.

Tag: địa chỉ của line trong bộ nhớ


Word: là địa chỉ của từ trong line

- Ưu:
+ Ít xung đột vì ánh xạ linh hoạt.
+ Tỉ lệ hit cao hơn.
- Nhược:
+ Chậm (phải tìm kiếm địa chỉ bộ nhớ trong cache).
+ Phức tạp (có thêm n bộ so sánh địa chỉ trong cache).
- Thường sử dụng cho cache có kích thước nhỏ.
* AX tập kết hợp
- Cache:
+ Chia thành k đường có kích thước = nhau.
+ Mỗi đường được chia thành n dòng, từ Line 0 -> Line n-1.
- Bộ nhớ:
+ Chia thành m trang, từ page0 -> page m-1.
+ Kích thước trang page bằng kích thước way của cache.
+ Mỗi trang có n line, từ Line0 tới Line n-1.
- Ánh xạ:
+ Page được ánh xạ tới Way (ax linh hoạt).
 Một page bộ nhớ có thể được ánh xạ tới way bất kì của cache.
+ Line của page ánh xạ tới line của way (ax cố định).
 Line x của page i được ánh xạ tới Line x của way j (x chạy từ 0 -> n-1).
Tag: Địa chỉ của trang trong bộ nhớ.
Set: Địa chỉ của line trong way của cache.
Word: Địa chỉ của word trong line.
- Ưu:
+ Nhanh vì ax trực tiếp được sử dụng cho ax dòng.
+ Ít xung đột vì ánh xạ từ trang nhớ tới đường của cache là linh hoạt.
+ Tỉ lệ tìm thấy (hit) cao.
- Nhược:
+ Thiết kế và điều khiển phức tạp vì cache được chia thành các way.
Câu 11: Các phương pháp đọc ghi và chính sách thay thế dòng Cache, phương
pháp LRU, FIFO, Random replacement.
* Thao tác đọc
- Trường hợp tìm thấy ( hit ): Mục dữ liệu yêu cầu tìm thấy trong cache.
+ Mục dữ liệu được đọc từ cache vào CPU.
+ Bộ nhớ chính không tham gia.
- Trường hợp không tìm thấy ( miss ): Mục dữ liệu được đọc từ bộ nhớ vào cache.
+ Dữ liệu được chuyển từ cache vào CPU.
-> Miss penalty: Thời gian truy cập mục dữ liệu = thời gian truy cập cache + thời
gian truy cập bộ nhớ chính.
* Thao tác ghi
- TH Hit (bản tin thuộc 1 khối trong cache):
+ Write through ( ghi thẳng ): mục dữ liệu được ghi vào cache và ghi vào bộ nhớ
đồng thời.
+ Write back ( ghi trễ ): mục dữ liệu trước tiên được ghi vào cache và cả dòng chứa
nó ở trong cache sẽ được ghi lại vào bộ nhớ sau đó.
- TH Miss ( bản tin không có trong cache ):
+ Write allocate ( ghi có đọc lại ): mục dữ liệu trước hết được ghi vào bộ nhớ, sau
đó cả dòng chứa nó sẽ được đọc vào cache.
+ Write non-allocate ( ghi không đọc lại ): Mục dữ liệu chỉ được ghi vào bộ nhớ.
* Chính sách thay thế dòng cache
- Tại sao phải thay thế dòng cache:
+ Ánh xạ dòng ( bộ nhớ ) -> dòng ( cache ) thường là ánh xạ nhiều -> một.
+ Nhiều dòng bộ nhớ chia sẻ một dòng cache -> các dòng bộ nhớ được nạp vào
cache sử dụng một thời gian và được thay thế bởi dòng khác theo yêu cầu thông tin
phục vụ CPU.
- Chính sách thay thế: Xác định cách thức lựa chọn các dòng trong cache để thay
thế khi có dòng mới từ bộ nhớ cần chuyển vào.
* Các chính sách thay thế dòng cache
- Thay thế ngẫu nhiên ( Random Replacement )
+ Các dòng trong cache được chọn ngẫu nhiên để thay.
+ Đơn giản.
+ Tỉ lệ miss cao vì phương pháp này không xét tới dòng cache nào đang thực sự
được sử dụng ( nếu một dòng cache đang được sử dụng mà bị thay thế thì sự kiện
miss xảy ra và cần phải đọc lại vào cache ).
- Thay thế kiểu vào trước ra trước ( FIFO )
+ Dựa trên nguyên lý FIFO.
+ Các dòng cache được đọc vào cache trước sẽ được chọn để thay trước.
+ Tỉ lệ miss thấp hơn so với pp ngẫu nhiên.
+ Tỉ lệ miss vẫn cao vì chưa thực sự xem xét tới block đang thực sự được sử dụng (
một dòng cache “cũ” có thể vẫn đang được sử dụng.
+Cài đặt phức tạp vì cần thêm mạch để giám sát thứ tự nạp.
- 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 nhất trong thời gian gần đây sẽ được chọn để
thay.
+ Xét tới các dòng đang được sử dụng.
+ Tỉ lệ miss thấp nhất so với các pp.
+ Cài đặt phức tạp vì cần thêm mạch để giám sát tần suất sử dụng các dòng cache.
Câu 12: Phương pháp tăng hệ số hit trong Cache, các tham số hiệu năng của bộ
nhớ Cache, các yếu tố ảnh hưởng ( kích thước cache, tách cache, tạo cache nhiều
mức ).
* Phương pháp tăng hệ số hit ( không tìm được , chỉ tìm được pp giảm hệ số miss)
- Cache tốt:
+ Hệ số hit cao.
+ Hệ số miss thấp.
+ Miss Penalty không quá chậm.
- Tăng kích thước dòng cache.
- Tăng mức độ liên kết.
* Các tham số hiệu năng của bộ nhớ Cache
Công thức: t access=t cache + ( 1−H )∗(t memory )
t access: thời gian truy nhập trung bình hệ thống nhớ.

t memory : thời gian truy nhập bộ nhớ chính.

t cache : thời gian truy nhập cache

H: Hệ số hit.

* Các yếu tố ảnh hưởng:


- Kích thước cache:
+ Kích thước cache lớn:
 Lưu trữ nhiều khối dữ liệu hơn.
 Giảm tần suất trao đổi các khối dữ liệu khác nhau.
 Cache lớn chậm hơn cache nhỏ
 Xu hướng: Cache ngày càng lớn.
+ Cache nhiều mức:
 Nâng cao hiệu năng hệ thống.
 Thực tế, cache thường có 2 mức: L1 và L2. Một số có thêm L3.
 Giảm giá thành hệ thống nhớ.
+ Phân chia cache:
 Dữ liệu và lệnh khác nhau về tính cục bộ.
 Cache lệnh chỉ hỗ trợ thao tác đọc còn cache dữ liệu hỗ trợ cả đọc ghi.
 Hỗ trợ nhiều thao tác đọc/ghi cùng lúc.
 Kết hợp các chức năng khác như giải mã trước lệnh vào.

2.Bài tập
- Xác định chế độ địa chỉ và ý nghĩa của lệnh
- Xác định giá trị thanh ghi.
- Viết các chương trình sử dụng lệnh CPU.
- Pipeline.
- Tính toán các trường địa chỉ…

Chương 4 + 5: Kiến trúc tập lệnh và bộ vi


xử lý 8086/8088
1.Lý thuyết
Câu 1: Sơ đồ khối 8086.

Câu 2: Các đoạn thanh ghi CS, DS, SS, ES.


- CS: Code Segment: Thanh ghi đoạn mã, chứa địa chỉ bắt đầu đoạn mã.
- DS: Data Segment: Thanh ghi dữ liệu, chứa địa chỉ bắt đầu dữ liệu.
- SS: Stack Segment: Thanh ghi đoạn ngăn xếp, chứa địa chỉ bắt đầu đoạn ngăn
xếp.
- ES: Extra Segment: Thanh ghi đoạn dữ liệu mở rộng, chứa địa chỉ bắt đầu đoạn
dữ liệu mở rộng.

Câu 3: Các thanh ghi đa năng AX, BX, CX, DX và thanh ghi FR.
- AX: Thanh ghi tổng, dùng để lưu kết quả.
- BX: Thanh ghi cơ sở, dùng để chứa địa chỉ ô nhớ.
- CX: Thanh ghi đếm, dùng làm con đếm cho các lệnh lặp.
- DX: Thanh ghi dữ liệu.
- FR: Thanh ghi cờ, các bit của FR lưu các trạng thái của kết quả phép toán ALU
thực hiện.
Câu 4: Các thanh ghi con trỏ: IP, BP, SP, SI, DI.
- IP: (Instruction Pointer): Con trỏ lệnh chứa địa chỉ của lệnh tiếp theo sẽ được
thực hiện.
- BP: (Base Pointer): Con trỏ cơ sở - sử dụng với đoạn ngăn xếp.
- SP: (Stack Pointer): Con trỏ ngăn xếp, chứa địa chỉ đỉnh ngăn xếp.

- SI: (Source Index): Thanh ghi chỉ số nguồn, chứa địa chỉ ô nhớ nguồn trong thao
tác chuyển dữ liệu.
- DI: (Destination Index): Thanh ghi chỉ số đích, chứa địa chỉ ô nhớ đích trong thao
tác chuyển dữ liệu.
Câu 5: Tập lệnh 8086
* Vận chuyển dữ liệu.
- Vận chuyển giữa: thanh ghi – thanh ghi, thanh ghi – ô nhớ, thanh ghi - thiết bị
vào ra.
- Các lệnh:
+ MOV, MOVSB, MOVSW.
+ IN,OUT.
+ LODSB,LODSW,STOSB, STOSW.
* Số học nguyên và logic.
- Là các lệnh thực hiện các phép toán số học: ADD, SUB, MUL, DIV.
* Dịch và quay.
- Các lệnh: SHL ( dịch trái ), SHR ( dịch phải ), ROL ( quay trái ), ROR ( quay
phải ).
* Chuyển điều khiển.
- Làm thay đổi trật tự thực hiện chương trình.
- Các lệnh:
+ Nhảy không điều kiện JMP.
+ Nhảy có điều kiện: JE,JZ,JNE…

+ Lệnh lặp: LOOP, LOOPE, LOOPZ.


+ Lệnh gọi thực hiện chương trình con CALL.
+ Lệnh trở về từ chương trình con RET.

* Xử lý bit.
- Lệnh lập cờ
- Lệnh xóa cờ
* Điều khiển hệ thống.
- NOP ( No Operation ): Không thực hiện nhiệm vụ cụ thể, chỉ tiêu tốn thời gian
bằng 1 chu kỳ lệnh.
- Lệnh HLT ( Halt ): Dừng việc thực hiện chương trình
* Thao tác dấu phảy động.
* Các lệnh của đơn vị chức năng đặc biệt.
Câu 6: Các chế độ địa chỉ ( 7 chế độ )
1. Chế độ địa chỉ thanh ghi
- Sử dụng các thanh ghi bên trong cpu như các toán hạng để chứa dữ liệu cần thao
tác.
- Gốc đích đều là thanh ghi
- VD:
Mov bx, dx; bx  dx
2. Chế độ địa chỉ tức thì
- Đích: Thanh ghi hoặc ô nhớ
- Gốc: Hằng số
- VD:
Mov cl, 200; cl  200
3. Chế độ địa chỉ trực tiếp
- 1 toán hạng là hằng biểu diễn địa chỉ lệch của ô nhớ
- Toán hạng còn lại có thể là thanh ghi ( không được là ô nhớ )
- VD:
MOV AL, [8088H]; AL  DS:[8088H]
- Note: DS là thanh ghi đoạn ngầm định trong chế độ địa chỉ trực tiếp.
4. Chế độ địa chỉ gián tiếp qua thanh ghi
- 1 toán hạng là 1 thanh ghi chứa địa chỉ lệch của ô nhớ.
- Toán hạng còn lại có thể là thanh ghi.
- VD:
MOV AL, [BX]; AL  [DS:BX]
MOV AL, [BP]; AL  [SS:BP]
5. Chế độ địa chỉ tương đối cơ sở
- 1 toán hạng là địa chỉ của ô nhớ.
- Địa chỉ của ô nhớ được tạo bởi việc sử dụng thanh ghi cơ sở như BX (đoạn DS)
hoặc BP (đoạn SS) và 1 hằng số.
- Toán hạng còn lại có thể là thanh ghi ( không thể là ô nhớ ).
- VD:
MOV AL, [BX+100]; AL  [DS:BX+100];
MOV AL, [BP+200]; AL  [SS:BP+200];
6. Chế độ địa chỉ tương đối chỉ số
- 1 toán hạng là địa chỉ của ô nhớ.
- Địa chỉ của ô nhớ được tạo bởi việc sử dụng thanh ghi cơ sở SI hoặc DI và một
hằng số.
- Toán hạng còn lại có thể là thanh ghi ( không được là ô nhớ ).
- VD:
MOV AL, [SI+100]; AL  [DS:SI+100]
MOV AL, [DI+200]; AL  [DS:DI+200]
7. Chế độ địa chỉ tương đối chỉ số cơ sở:
- 1 toán hạng là địa chỉ của ô nhớ.
- Địa chỉ của ô nhớ được tạo bởi việc sử dụng các thanh ghi BX+SI/DI (dùng đoạn
DS) hoặc BP+SI/DI (dùng đoạn SS ) và một hằng số.
- Toán hạng còn lại có thể là thanh ghi ( không được là ô nhớ ).
- VD:
MOV AL, [BX+SI+100]; AL  [DS:BX+SI+100]
MOV AL, [BP+DI+200]; AL  [SS:BP+DI+200]
* Bản tóm tắt

Câu 7: Cách lệnh xử lý ngắt


- Lệnh INT <Số hiệu ngắt>
- Ý nghĩa: Gọi thực hiện chương trình con phục vụ ngắt tương ứng với < Số hiệu
ngắt >
- VD:
MOV AH,4Ch; Nạp hàm 4Ch
INT 21h; Gọi ngắt DOS số 21h

Chương 6: Bộ nhớ ngoài


Câu 1: Sơ đồ cấu trúc phân cấp của hệ thống bộ nhớ máy tính, thành phần chính,
vai trò và ý nghĩa của cấu trúc phân cấp của hệ thống nhớ.
- Sơ đồ:

- Thành phần chính:


+ Các thanh ghi của CPU
+ Bộ nhớ Cache
+ Bộ nhớ chính
+ Bộ nhớ ngoài
- Vai trò: 2 vai trò chính:
+ Tăng hiệu năng hệ thống thông qua việc giảm thời gian truy cập các ô nhớ.
+ Giảm giá thành sản xuất.
- Ý nghĩa ( chưa tìm được ).
Câu 2: RAID, lý do RAID nâng cao tính tin cậy, tốc độ truy nhập và khả năng lưu
trữ; các kĩ thuật tạo RAID.
* RAID
- RAID là công nghệ tạo ra các thiết bị lưu trữ tiên tiến trên cơ sở đĩa cứng nhằm
mục đích:
+ Hiệu năng, tốc độ cao.
+ Độ tin cậy cao.
+ Dung lượng lớn.
- Mặc dù RAID là một mảng của các ổ đĩa cứng, nhưng không phải tất cả các loại
ổ cứng đều có thể sử dụng để tạo RAID. Trên thực tế, chỉ có các ổ cứng theo chuẩn
SATA, SCSI và tương đương mới hỗ trợ tạo RAID.
* Lý do RAID nâng cao tính tin cậy, tốc độ truy nhập và khả năng lưu trữ
- RAID là 1 tập các HDD nhưng được HDH coi như 1 ổ đĩa logic.
- Dữ liệu được phân tán trên các đĩa vật lý.
- Đĩa dư thừa được sử dụng để lưu trữ thông tin parity  đảm bảo khôi phục dữ
liệu.
* Các kỹ thuật tạo ra RAID : 2 kỹ thuật.
- Disk stripping (tạo lát đĩa):
+ Dữ liệu được chia thành các khối và mỗi khối được ghi đồng thời vào 1 đĩa độc
lập.
+ Các khối dữ liệu sẽ được đọc từ HDD một cách đồng thời.
 Cải thiện tốc độ truy nhập.
- Disk mirroring (bản sao đĩa):
+ Dữ liệu được chia thành các khối và mỗi khối được ghi vào một số đĩa.
+ Tại thời điểm bất kì, luôn có nhiều hơn 1 bản sao dữ liệu  độ tin cậy tăng.
Câu 3: RAID 0, RAID 1, RAID 10
* RAID 0
- Đặc điểm:
+ Dựa trên kĩ thuật disk stripping ( đọc/ghi song song ).
+ Dữ liệu được phân bố trên các đĩa trong mảng.
+ Tối thiểu cần 2 HDD.
- Ưu:
+ Tốc độ nhanh.
+ Đáp ứng tốt các hệ thống nhu cầu I/O cao.
+ Dung lượng là tổng của tất cả các đĩa.
- Nhược:
+ Độ tin cậy như một đĩa.
* RAID 1
- Đặc điểm:
+ Dựa trên kĩ thuật disk mirroring.
+ Tính dư thừa có được đơn giản bằng sao tất cả dữ liệu.
+ Tối thiểu cần 2 HDD.
+ Dữ liệu cũng phân mảnh như RAID 0 nhưng mỗi mảnh logic được ánh xạ tới 2
đĩa vật lý khác nhau.
 Mỗi đĩa trong mảng có một bản sao cùng dữ liệu.
- Ưu:
+ Độ tin cậy cao.
- Nhược:
+ Dung lượng thực sự bằng ½ tổng số đĩa.
+ Chi phí cao.
* RAID 10
- Đặc điểm:
+ Tối thiểu cần 4 HDD.
+ Dựa trên kĩ thuật disk mirroring và stripping.
- Ưu:
+ Nhanh hơn so với 1 đĩa.
+ Tin cậy hơn so với 1 đĩa.
+ Phù hợp với máy chủ yêu cầu tính an toàn cao, hiệu năng lớn.
- Nhược:
+ Dung lượng bằng ½ dung lượng tổng số đĩa.
Chương ngoại: Ngắt và xử lý ngắt
- Một ngắt là một sự kiện bên trong hoặc bên ngoài làm ngắt bộ vi điều khiển để
báo cho nó biết rằng thiết bị cần dịch vụ của nó.
- Một bộ vi điều khiển có thể phục vụ một vài thiết bị, có hai cách để thực hiện
điều này đó là sử dụng các ngắt và thăm dò.
* Sử dụng các ngắt
- Mỗi khi có một thiết bị bất kỳ cần đến dịch vụ của nó thì nó bao cho bộ vi điều
khiển bằng cách gửi một tín hiệu ngắt. Khi nhận được tín hiệu ngắt thì bộ vi điều
khiển ngắt tất cả những gì nó đang thực hiện để chuyển sang phục vụ thiết bị.
- Chương trình đi cùng với ngắt được gọi là trình dịch vụ ngắt ISR (Interrupt
Service Routine) hay còn gọi là trình quản lý ngắt (Interrupt handler).
- Ưu điểm:
+ Bộ vi điều khiển có thể phục vụ được rất nhiều thiết bị ( tuy nhiên không cùng
thời điểm ).
+ Dựa trên mức ưu tiên được gán.
+ Bộ vi điều khiển cũng còn có thể che hoặc làm lơ một yêu cầu dịch vụ của thiết
bị.
* Phương pháp thăm dò
- Bộ vi điều khiển hiển thị liên tục tình trạng của một thiết bị đã cho và điều kiện
thoả mãn thì nó phục vụ thiết bị.
- Sau đó nó chuyển sang hiển thị tình trạng của thiết bị kế tiếp cho đến khi tất cả
đều được phục vụ.
- Nhược:
+ Không tận dụng được hết công dụng của bộ vi điều khiển.
+ Không thể gán mức ưu tiên vì kiểm tra tất cả mọi thiết bị theo kiểu hơi vòng.
+ Lãng phí thời gian của bộ vi điều khiển bằng cách hỏi dò kể cả khi chúng không
cần đến dịch vụ.
* Truy cập trực tiếp bộ nhớ (DMA)
- Thêm mô-đun phần cứng trên bus -> DMAC.
- DMAC điều khiển trao đổi dữ liệu giữa mô đun vào ra với bộ nhớ chính
- Sơ đồ:

- Thành phần của DMAC:


+ Thanh ghi dữ liệu: dữ liệu trao đổi.
+ Thanh ghi địa chỉ: địa chỉ ngăn nhớ dữ liệu.
+ Bộ đếm dữ liệu: Số từ dữ liệu cần trao đổi.
+ Logic điều khiển: Điều khiển hoạt động của DMAC.
- Các kiểu thực hiện DMA:
+ DMA truyền theo khối.
+ DMA lấy chu kỳ.
+ DMA trong suốt.
- Đặc điểm:
+ CPU không tham gia trong quá trình trao đổi dữ liệu.
+ DMAC điều khiển trao đổi dữ liệu giữa bộ nhớ chính với mô đun vào ra -> tốc
độ nhanh.
+ Phù hợp với các yêu cầu trao đổi mạng dữ liệu có kích thước lớn.

You might also like