Đề 2

Câu 1: Một hệ thống bộ nhớ ảo có kích thước mỗi trang là 1024 từ, 8 trang ảo và 4 khung trang vật lý. Bảng trang được cho như sau:


Trang ảo
Khung trang
Địa chỉ ảo
0
1
0 – 1023
1
0
1024 – 2047
2
3
2048 -3071
3
-
3072 – 4095
4
-
4096 – 5119
5
2
5120 – 6143
6
-
6144 – 7167
7
-
7168 - 8191

a) Hãy giải thích rõ đề cho biết cần bao nhiêu bit vừa đủ để biểu diễn  1 địa chỉ vật lý?

Giải: Ta có kích thước mỗi trang là : 1024 từ = 2^10, vậy để biểu diễn vừa đủ một địa chỉ vật lý cần 10 bit.

b) Hãy cho biết địa chỉ vật lý (Số thứ tự khung trang và độ dời) ở dạng nhị phân hoặc xảy ra tình trạng lỗi trang(page fault)tương ứng với các địa chỉ ảo ở dạng thập phân sau:0, 1023, 1024, 1025, 3728, 4096, 7800

Giải:
Địa chỉ ảo
Khung Trang
Độ dời
0
1
0 000 000 000
0 - 0 = 0
1023
1
1 111 111 111
1023 - 0 = 1023
1024
0
0 000 000 000
1024 - 1024 = 0
1025
0
0 000 000 001
1025 - 1024 = 1
3728
Lỗi trang

4096
Lỗi trang

7800
Lỗi trang


Câu 2:  Giả sử các giá trị sau được chứa trong thanh ghi và bộ nhớ :


Thanh ghi 5 chứa 20
Bộ nhớ
10
30
20
50
30
40
40
60
50
15

Hãy cho biết giá trị toán thạng trong các lệnh sau:
LOAD IMMEDIATE 50 =>(tức thời) 50
LOAD DIRECT 30 => (trực tiếp) 40
LOAD INDIRECT 20 =>(gián tiếp) 15
LOAD REGISTER 5 =>(thanh ghi) 20
LOAD REGISTER INDIRECT 5 => (gián tiếp thanh ghi) 50
LOAD INDEX 5, 30 => (chỉ số) 15

Câu 4 :

Xét 1 vi mạch điều khiển truy cập bộ nhớ trực tiếp (DMA) 8237A để chuyển 1 byte thông tin bộ nhớ và thiết bị nhập/xuất nó cần 3 chu kỳ xung nhịp. Giả sử vi vạch 8237A được kích ở tần số xung clock 25MHZ


a) Cho biết thời gian để chuyển 1 byte là bao nhiêu?
b) Tốc độ chuyển dữ liệu tối đa có thể đat được là bao nhiêu?
c) Giả sử tốc độ truy cập bộ nhớ không đủ mạnh so với tốc độ của vi mạch 8237A, vì thế vi mạch này phải chờ thêm 2 chu kỳ xung nhịp. Cho biết tốc độ chuyển dữ liệu thực sự là bao nhiêu?

Giải:

Ta có : Tần số xung f = 25 MHZ= 25*10^6 HZ  , CPI(chu kỳ trung bình/1 lệnh) = 3
T = 1/f = 1/(25*10^6) =  4 * 10^ -8
Để chuyển 1 byte thông tin bộ nhớ và thiết bị nhập/xuất nó cần 3 chu kỳ xung nhịp
=>Vậy để chuyển 1 byte cần : 4*3*10^-8 = 12*10^-8 (s)
b. MIPSrate = f / (CPI x 10^6) = (25*10^6) / (3 x 10^6) = 25/3 = 8.3 (MB/s)
c. MIPSrate sau khi chờ 2 xung nhịp thì CPI = 3 + 2 = 5 vậy ta có:
óMIPSrate = f / ( CPI x 10^6) = (25*10^6) / (5 x 10^6) = 5 (MB/s)

Đề 1:

Câu 1: Một hệ thống bộ nhớ ảo có kích thước mỗi trang là 1024 từ, 8 trang ảo và 4 khung trang vật lý. Bảng trang được cho như sau:

Trang ảo
Khung trang
Địa chỉ ảo
0
1
0 – 1023
1
0
1024 – 2047
2
3
2048 -3071
3
-
3072 – 4095
4
-
4096 – 5119
5
2
5120 – 6143
6
-
6144 – 7167
7
-
7168 - 8191
           

a) Hãy giải thích rõ đề cho biết cần bao nhiêu bit vừa đủ để biểu diễn  1 địa chỉ ảo?

Giải: Ta có kích thước mỗi trang là : 1024 từ = 2^10, vậy để biểu diễn vừa đủ một địa chỉ vật lý cần 10 bit.

Hãy cho biết địa chỉ ảo (Số thứ tự 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: 0, 1023, 1024, 1025, 3728, 4096, 7800

Giải:
Địa chỉ ảo
Khung trang
Độ dời
0
1
0
 0 - 0 = 0
1023
1
1023
1023 - 0 = 1023
1024
0
0
1024 - 1024 = 0
1025
0
1
1025 - 1024 = 1



Câu 2:  Giả sử các giá trị sau được chứa trong thanh ghi và bộ nhớ :

Thanh ghi 5 chứa 30
Bộ nhớ
10
20
20
30
30
40
40
50
50
60

Hãy cho biết giá trị toán thạng trong các lệnh sau:

LOAD IMMEDIATE 10 => (Tức thời) 10
LOAD DIRECT 10 =>(Trực tiếp) 20
LOAD INDIRECT 20 =>(Gián tiếp) 40
LOAD REGISTER 5 =>(Thanh ghi) 30
LOAD REGISTER INDIRECT 5 =>(Thanh ghi gián tiếp) 40
LOAD INDEX 5, 20 =>(Chỉ số)  60

Câu 3: 

a) Trình bày bằng hình vẽ sơ đồ dòng dữ liệu của chu kỳ lấy lệnh trong CPU.
b) Mô tả trình tự các bược thực hiện trong sơ đồ này.

Giải:


Câu 4 : Xét bộ xử lý 32 bit, với bus dữ liệu ngoài 32 bit, hoạt động ở tần số 16MHz, Giả sử bộ sử 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 độ(bytes/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?


Giải:

Ta có : f = 16MHz = 16*10^6 Hz
Để chuyển 32/8 = 4 bytes dữ liệu cần 3 chu kỳ xung nhịp
Vậy để chuyển 1 byte cần CPI = 3 : 4 = 0.75 (chu kỳ)
CPI = 0.75
MIPSrate = f / (CPI x 10^6) = 16/10^6/(0.75 x 10^6) = 64/3 (MB/s) = 21.3*10^6(bytes/s)

Vậy tốc độ tối đa để chuyển dữ liệu qua bus này là : 21.3*10^6(bytes/s)

Download đề và tài liệu tại đây : Google Drive