Professional Documents
Culture Documents
Giuaky ktmt2023
Giuaky ktmt2023
Giuaky ktmt2023
HCM
KHOA CÔNG NGHỆ THÔNG TIN ĐỀ THI KẾT GIỮA KỲ
Môn: KIẾN TRÚC MÁY TÍNH
Hãy viết mã lệnh hợp ngữ (từ gợi nhớ) cho các lệnh có nội dung ở trên, bắt đầu từ địa chỉ 0A1.
Gi
ải
Địa chỉ 0AX:
Nội dung: 010F1210F2
Xét lệnh bên trái: 010F1 có mã lệnh (opcode) là 01 và địa chỉ 0F1
- Mã lệnh ở đây là mã ở dạng hecxa(16) ta cần quy đổi về dạng nhị phân(2) để có thể biết mã lệnh mà
đề bài đề ra 01(16) = 00000001(2)
� Vậy mã lệnh hợp ngữ (Từ gợi nhớ) là: LOAD M(0F1)
Xét lệnh bên phải: 210F2 có mã lệnh (opcode) là 21 và địa chỉ 0F2
- Quy đổi mã lệnh: 21(16) = 00100001(2)
� Vậy mã lệnh hợp ngữ là: STOR M(0F2)
1
Xét lệnh bên phải: 0F0A4 có mã lệnh (opcode) là 0F và địa chỉ 0A4
- Quy đổi mã lệnh: 0F(16) = 15(10) = 00001111(2)
� Vậy mã lệnh hợp ngữ là: JUMP +M(0A4,0:19)
Xét lệnh bên phải: 210F2 có mã lệnh (opcode) là 21 và địa chỉ 0F2
- Quy đổi mã lệnh: 21(16) = 00100001(2)
� Vậy mã lệnh hợp ngữ là: STOR M(0F2)
t 0 1 2 3 4 5 6 7 8 9
J 0 1 1 1 1 1 0 1 0 1
K 1 1 0 1 0 1 1 1 0 0
Qn+1
Giải
Ta có bảng chân lý của flip-flop JK:
J K Qn+1
0 0 Qn
0 1 0
1 0 1
1 1 Qn
Từ bảng chân lý ta có:
J K Qn+1
0 1 0
1 1 Qn
1 0 1
1 1 Qn
1 0 1
1 1 Qn
0 1 0
1 1 Qn
0 0 Qn
1 0 1
Làm
Vì 2 máy có cùng kiến trúc tập lệnh (ISA) nên khi chạy trên cùng 1 chương trình thì số lệnh cùng chạy
trên 2 máy là như nhau, gọi là I
- Thời gian thực thi chương trình của máy A = TA * CPIA * I = 750 * 2 * I = 1500 * I (ps)
- Thời gian thực thi chương trình của máy B = TB * CPIB * I = 600 * 2.5 * I = 1500 * I (ps)
� Vậy thời gian thực thi chương trình của 2 máy là như nhau nên hai máy bằng nhau
1 2 3 4 5 6 7 8 9 10 11 12 13 14
Ins 1 FI DI FO EI
Ins 2 FI DI FO EI
Ins 3 FI DI FO EI
Ins 4 FI DI FO EI
Ins 5 FI DI DO EI
Ins 6 FI DI DO
Ins 7 FI DI
Ins 8 FI
Ins 10 FI DI FO EI
Ins 11 FI DI FO EI
Ins 12 FI DI FO EI
3
(Vì lệnh 5 rẽ nhanh đến lệnh 10 nên khi đến lệnh 5 ta dừng thực thi lệnh nhưng vẫn chạy các lệnh khác)
Nhìn vào biểu đồ ta thấy cần 14 dơn vị thời gian
b) (1.5 điểm) Xét bộ xử lý 16 bit, với bus dữ liệu ngoài 16 bit, hoạt động ở tần số 32 MHz. Giả sử bộ xử lý
này thực hiện chuyển dữ liệu cần 3 chu kỳ xung nhịp. Cho biết tốc độ (MB/s) tối đa để chuyển dữ liệu
qua bus này mà bộ xử lý có thể thực hiện được là bao nhiêu (lấy 2 số lẻ trong mỗi phép tính)?
- Ta có công thức tính tốc độ chuyển dữ liệu qua bus
Tốc độ = Chiều rộng bus dữ liệu / Thời gian chuyển dữ liệu
- Bộ nhớ hoạt động ở tần số 32 MHz, mỗi chu kì xung nhịp có thời gian T = 1/f = 1 / 32 MHz =
31.25 ns
+ Thời gian thực hiện chuyển dữ liệu cần 3 chu kì xung nhiệt
Vậy t = 3T = 3 * 31.25 = 93.75 ns
- Ta có kích thước dữ liệu là 16 bit = 2 byte (1 byte = 8 bit), Kích thước dữ liệu này sẽ bằng chiều
rộng bus dữ liệu
2
- Tốc độ (MB/s) = (93.75∗10−9)∗106 = 21.33 (MB/s)
a) (1 điểm) Hãy giải thích rõ để cho biết cần bao nhiêu bit vừa đủ để biểu diễn một địa chỉ vật lý?
- Vì có 4 khung trang vật lý nên ta cần 2 bit ( 22) để biểu diễn khung tranh vật lý :
002 = 010: Khung trang vật lý thứ 1
012 = 110: Khung trang vật lý thứ 2
102 = 210: Khung trang vật lý thứ 3
4
112 = 310: Khung trang vật lý thứ 4
- Vì mỗi trang có kích thước 2 KB (hay 211byte), nên cần sử dụng 11 bit để biểu diễn địa chỉ trang
trong khung trang vật lý.
� Do đó, để biểu diễn một địa chỉ vật lý trong hệ thống này, cần sử dụng tổng cộng 13 bit: 2 bit cho
địa chỉ khung trang vật lý và 11 bit cho địa chỉ trang trong khung trang vật lý.
b) (1.5 điểm) Hãy cho biết địa vật lý (khung trang và độ dời) ở dạng nhị phân tương ứng với các địa chỉ ảo ở
dạng thập phân sau: 1033, 1054, 2052, 40995, 40196, 81193.
Hướng dẫn cách giải
Bước 1: Tính offset (độ dời) của địa chỉ ảo trong trang bằng cách lấy phần dư của địa chỉ ảo khi chia cho
kích thước trang.
Độ dời trang = Địa chỉ ảo % Kích thước trang (B)
Bước 2: Tìm số thứ tự trang ảo bằng cách lấy phần nguyên của địa chỉ ảo khi chia cho kích thước trang.
Số thứ tự trang ảo = Địa chỉ ảo / Kích thước trang (B)
Chú ý: Nếu STT Trang ảo ko có trong bảng -> Lỗi trang (Page fault)
Bước 3: Kiểm tra xem trang ảo đó có được map vào khung trang vật lý nào không, bằng cách xem giá trị
tương ứng trong bảng trang. Nếu giá trị là "-" thì trang ảo chưa được nạp vào khung trang nào cả.
Bước 4: Nếu trang ảo đã được map vào khung trang vật lý, ta lấy số thứ tự khung trang và độ dời để tính
địa chỉ vật lý.
Địa chỉ vật lý = (Số thứ tự khung trang * Kích thước trang) + Độ dời trang
Bài làm
Địa chỉ 1033:
Độ dời = 1033 % 2048 = 1033
Số thứ tự trang ảo = 1033 / 2048 = 0
Nhìn vào bảng ta thấy:
Số thứ tự khung trang = “ - ”
Trang ảo chưa được nạp vào khung trang nào cả
Địa chỉ 1054:
Độ dời = 1054 % 2048 = 1054
Số thứ tự trang ảo = 1054 / 2048 = 0
Nhìn vào bảng ta thấy:
Số thứ tự khung trang = “ - ”
Trang ảo chưa được nạp vào khung trang nào cả
Địa chỉ 2052:
Độ dời = 2052 % 2048 = 4
Số thứ tự trang ảo = 2052 / 2048 = 1
Nhìn vào bảng ta thấy:
Số thứ tự khung trang = 2
Địa chỉ vật lý = (2 * 2048 ) + 4 = 410010 = 10000000001002
5
Địa chỉ 40995:
Độ dời = 40995 % 2048 = 35
Số thứ tự trang ảo = 40995 / 2048 = 20 > 15
Nhìn vào bảng ta thấy:
Số thứ tự khung trang ko tồn tại
➔ Lỗi trang (Page fault)
Địa chỉ 40196:
Độ dời = 40196 % 2048 = 1284
Số thứ tự trang ảo = 40196 / 2048 = 19 > 15
Nhìn vào bảng ta thấy:
Số thứ tự khung trang ko tồn tại
➔ Lỗi trang (Page fault)
Địa chỉ 81193:
Độ dời = 81193 % 2048 = 1321
Số thứ tự trang ảo = 81193 / 2048 = 39 > 15
Nhìn vào bảng ta thấy:
Số thứ tự khung trang ko tồn tại
➔ Lỗi trang (Page fault)