Professional Documents
Culture Documents
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.
- 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ơ đồ:
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ơ đồ:
- 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
- Đặ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
- Ư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ớ.
H: Hệ số hit.
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ỉ…
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…
* 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