Giuaky ktmt2023

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

TRƯỜNG ĐẠI HỌC MỞ TP.

HCM
KHOA CÔNG NGHỆ THÔNG TIN ĐỀ THI KẾT GIỮA KỲ
Môn: KIẾN TRÚC MÁY TÍNH

Câu 1 (2.5 điểm):


a) Giả sử tập lệnh và nội dung bộ nhớ của máy IAS được cho như sau:

Kiểu lệnh Mã lệnh Từ gợi nhớ Ý nghĩa

Chuyển nội dung của thanh ghi AC đến vị trí


00100001 STOR M(X)
nhớ X.
Chuyển dữ
Chuyển nội dung của vị trí nhớ X đến thanh
liệu 00000001 LOAD M(X)
ghi AC.
00000010 LOAD –M(X) Chuyển -M(X) đến thanh ghi AC.
Nếu AC không âm, nhảy đến lệnh kế tiếp
00001111 JUMP +M(X,0:19)
Rẽ nhánh có phía bên nửa trái của M(X).
điều kiện 00010000 JUMP +M(X,20:39) Nếu AC không âm, nhảy đến lệnh kế tiếp
phía bên nửa phải của M(X).

Địa chỉ Nội dung


0AX 010F1210F2
0AY 010F10F0A4
0AZ 020F1210F2
0AT -

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)

Địa chỉ 0AY:


Nội dung: 010F10F0A4
Xét lệnh bên trái: 010F1 có mã lệnh (opcode) là 01 và địa chỉ 0F1
- Quy đổi mã lệnh: 01(16) = 00000001(2)
� Vậy mã lệnh hợp ngữ là: LOAD M(0F1)

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)

Địa chỉ 0AZ:


Nội dung: 020F1210F2
Xét lệnh bên trái: 020F1 có mã lệnh (opcode) là 02 và địa chỉ 0F1
- Quy đổi mã lệnh: 02(16) = 00000010(2)
� Vậy mã lệnh hợp ngữ 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)

Địa chỉ 0AT : Ko có nội dung


Câu 2 (1.0 điểm) Điền trạng thái ngõ ra Qn+1 của flip-flop JK ứng với các ngõ vào J và K được cho trong bảng sau
(t là thứ tự về thời gian của các chu kỳ xung nhịp):

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

Câu 3 (1.5 điểm): Giả sử có 2 máy tính A và B như sau:


Máy tính A: TA= 750ps, CPIA= 2.0
Máy tính B: TB= 600ps, CPIB= 2.5
2
Cùng kiến trúc tập lệnh (ISA)
Máy nào nhanh hơn và nhanh hơn bao nhiêu ?
Giải
Hướng làm
Để so sánh hiệu suất của 2 máy tính, chúng ta có thể tính toán thời gian thực hiện một chương trình tính
toán nhất định trên cả 2 máy tính và so sánh thời gian đó. Thời gian này có thể được tính bằng công thức
sau:

Execution time = CPU time = T x CPI x IC,


trong đó:

T là thời gian xử lý một lệnh (thường tính bằng picosecond).


CPI là số lần thực hiện một lệnh trên trung bình (CPI = Cycles Per Instruction).
IC là số lượng lệnh thực hiện trong chương trình.

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

Câu 4 (2.5 điểm):


a) (1.0 điểm) Giả sử đường ống lệnh có 4 công đoạn: Lấy lệnh (FI), giải mã lệnh và tính địa chỉ (DI), lấy
toán hạng (FO) và thực thi lệnh (EI). Hãy vẽ biểu đồ để cho thấy cần bao nhiêu đơn vị thời gian khi lệnh
5 là lệnh rẽ nhánh đến lệnh 10. Sau đó, chương trình thực thi thêm 2 lệnh nữa (lệnh 11 và 12) thì kết thúc.
Biểu đồ Gantt:

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)

Câu 5 (2.5 điểm):


Một hệ thống bộ nhớ ảo có kích thước mỗi trang là 2 KB, 16 trang ảo và 4 khung trang vật lý. Bảng trang
được cho như sau:

Số thứ tự trang ảo Số thứ tự khung trang


0 -
1 2
2 1
3 -
4 3
5 1
6 -
7 0
8 -
9 2
10 1
11 2
12 3
13 -
14 3
15 0

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)

You might also like