Tải bản đầy đủ (.pdf) (17 trang)

Câu hỏi và trả lời bài tập kiến trúc máy tính ĐH Cần Thơ.

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (919.96 KB, 17 trang )

CÂU HỎI KIẾN TRÚC MÁY TÍNH
CHƯƠNG 1
1. Số nhị phân 8 bit (11010101) tương ứng với số nguyên thập phân có dấu là bao
nhiêu trong các phép biểu diễn số có dấu sau đây:
a. Dấu và trị tuyệt đối.
b. Số bù 1.
c. Số bù 2.
d. Số thừa K=128.
2. Cho số nguyên -65, biểu diễn số nguyên dưới dạng nhị phân 8 bit trong các
phép biểu diễn sau:
a. Dấu và trị tuyệt đối.
b. Số bù 1.
c. Số bù 2.
d. Số thừa K=128.
3. Đổi các số sau đây:
a. 0100102 sang số thập phân.
b. 109010 sang Số nhị phân.
c. 20.875 sang số nhị phân.
d. -2010 sang số nhị phân 16 bits.
4. Biểu diễn các số thực dưới đây bằng số có dấu chấm động chính xác đơn 32
bit.
a. 135.75.
b. -581.675.
c. 1150.6875.
d. -11257. 125
CHƯƠNG 2
1.
2.
3.
4.
5.



Load R28, (1500) ; Cho biết mã tác vụ Load: 001001.
Load R20, 400(R17) ; Cho biết mã tác vụ Load: 001001.
Store R12, (R24) ; Cho biết mã tác vụ Store: 001010.
Add R25, R17, R13 ; Cho biết mã tác vụ Add: 011010.
Sub R2, R16, #-1250; Cho biết mã tác vụ Sub: 011011.

CHƯƠNG 3
1.
2.
3.
4.

Load R5, (R20).
Store R7, 100(R21).
Add R5, R4, R20.
Sub R10, R12, R24.


5.
6.
7.
8.
9.

AND R5, R2, R15.
OR R15, R3, R7.
JMP R7.
BRA +5.
BGT R4, +2.


CHƯƠNG 4

Cho một bộ nhớ cache tương ứng trực tiếp có 8 khối, mỗi khối có 16 byte. Bộ nhớ
trong có 256 khối. Khi thành công cache sử dụng cách ghi lại; Khi thất bại cache dùng
cách ghi có nạp.
1. Giả sử lúc khởi động, 8 khối sau đây của bộ nhớ trong đã được đưa lên cache:
8, 17, 23, 34, 38, 67, 69, 132. Viết bảng nhãn của các khối hiện đang nằm trong
cache.
2. Cập nhật bảng nhản khi CPU lần lượt đưa ra các địa chỉ sau đây để đọc / ghi
vào bộ nhớ trong:
a. Đọc: 43FH
b. Đọc: 82AH
c. Đọc: 915H
d. Ghi: 08CH
e. Ghi: B4AH
f. Ghi: 45DH
g. Đọc: 5E9H

h. Ghi: C7AH
i. Đọc: D85H
j. Ghi: 92AH
k. Đọc: 6C5H
l. Ghi: 458H


BÀI GIẢI
CHƯƠNG 1
Câu 1. Số nhị phân 8 bit (11010101) tương ứng với số nguyên thập phân có dấu là
bao nhiêu trong các phép biểu diễn số có dấu sau đây:

a. Dấu và giá trị tuyệt đối:
Ta có công thức:

(

)
1


6

=> N = (-1) *(1*2 +0*25+1*24+0*23+1*22+0*21+1*20)
=> N = -8510
Kết quả: -8510
b. Số bù 1:
Vì phép biểu diễn là số bù 1 và có bit dấu là 1 => là số âm, nên ta có:
110101012 = 001010102 (biểu diễn số dương)
Dựa trên công thức câu a. ta có:
N = (-1)0*(0*26+1*25+0*24+1*23+0*22+1*21+0*20)
=> N = 4210
=> (00101010)2 = 4210
=> (11010101)2 = -4210
Kết quả: -4210
c. Số bù 2:
Ta có công thức:



7


6

=> N = -1*2 +(1*2 +0*25+1*24+0*23+1*22+0*21+1*20)
=> N = -4310
Kết quả: -4310
d. Số thừa K=128:
Vì phép biểu diễn số thừa K=128 và có bit dấu là 1 => là số âm, nên ta có
110101012 biểu diễn số nguyên dương.
=> N = (1*27+1*26+0*25+1*24+0*23+1*22+0*21+1*20) – 128
=> N = 8510
Kết quả: 8510
Câu 2. Cho số nguyên -65, biểu diễn số nguyên dưới dạng nhị phân 8 bit trong các
phép biểu diễn sau:
a. Dấu và trị tuyệt đối:
65/2 = 32 dư 1
32/2 = 16 dư 0
16/2 = 8 dư 0
8/2 = 4 dư 0
4/2 = 2 dư 0
2/2 = 1 dư 0
1/2 = 0 dư 1


=> 6510=10000012
Do số nguyên -65 là dương nên bit dấu là 1 nên -6510 = 110000012
Kết quả: -6510 = 110000012
b. Số bù 1:
Ta có : 6510 = 010000012
Lấy bù 1 : -6510 = 101111102
Kết quả: -6510 = 101111102

c. Số bù 2:
Ta có : 6510 = 010000012
Lấy bù 1 : -6510 = 101111102
Cộng thểm 110 = 000000012 :
101111102 + 000000012 = 101111112
Kết quả: -6510 = 101111112
d. Số thừa K=128:
Ta có: 128 – 65 = 63
Đổi số 63 sang số nhị phân ta được biểu diễn của số -65 dưới dạng nhị phân
8 bit trong phép biểu diễn số thừa K = 128.
63/2 = 31 dư 1
31/2 = 15 dư 1
15/2 = 7 dư 1
7/2 = 3 dư 1
3/2 = 1 dư 1
1/2 = 0 dư 1
=> 6310 = 001111112 (biểu diễn nhị phân)
=> -6510 = 001111112 (biểu diễn theo số thừa K=128)
Kết quả: -6510 = 001111112
Bài 3. Đổi các số sau đây:
a. 0100102 sang số thập phân:
0100102 = 0*20+1*21+0*22+0*23+1*24+0*25 = 1810
Kết quả: 1810
b. 1050 sang số nhị phân:
1050/2 = 525 dư 0
525/2 = 262 dư 1
262/2 = 131 dư 0
131/2 = 65
dư 1
65/2 = 32

dư 1
32/2 = 16
dư 0
16/2 = 8
dư 0
8/2 = 4
dư 0
4/2 = 2
dư 0
2/2 = 1
dư 0
1/2 = 0
dư 1
=> 105010 = 100000110102


Kết quả: 105010 = 100000110102
c. 20.875 sang số nhị phân :
Ta đổi phần nguyên 2010 sang số nhị phân:
20/2 = 0 dư 0
10/2 = 5 dư 0
5/2 = 2
dư 1
2/2 = 1
dư 0
1/2 = 0
dư 1
=> 2010 = 101002
Ta đổi phần thập phân 0.875 sang số nhị phân:
0.875*2 = 1,75=> 1

0.75*2 = 1,5 => 1
0.5*2 = 1
=> 1
=> 0.87510 = 1112
Kết quả: 10100.1112
d. -2010 sang số nhị phân 16 bit
Ta đổi số thập phân 2010 sang số nhị phân tương tự các câu trước ta được
201010 = 0000 0111 1101 10102
=> -201010 = 1000 0111 1101 10102
Kết quả: -201010 = 1000 0111 1101 10102
Bài 4. Biểu diễn các số thực dưới đây bằng số có dấu chấm động chính xác đơn 32 bit.
a. 135.75

Ta đổi 135.7510 sang nhị phân tương tự câu 3.c được:
135.7510 = 10000111.112
Ta có: (-1)S*(1,f1f2f3 … f23)*2(E – 127)
Chuẩn hóa:
135.7510 = 10000111.112 = 1.000011111*27
Do 135.75 là số dương nên S = 02 (1 bit)
E – 127 = 7 <=> E = 134 => E = 13410 = 1000 01102 (8 bit)
f = 0000111112 = 000011111000000000000002 (23 bit)
Ta có:
135.7510 = 0 1000 0110 0000 1111 1000 0000 0000 0002
Kết quả: 135.7510 = 0 10000110 000011111000000000000002
b. -581.675

Ta có phần nguyên đổi sang nhị phân tương tự các câu trên.
Đổi phần thập phân:
0.675*2 = 1.35
=> 1

0.35*2 = 0.7 => 0
0.7*2 = 1.4 => 1
0.4*2 = 0.8 => 0
0.8*2 = 1.6 => 1
0.6*2 = 1.2 => 1


0.2*2 = 0.4 => 0
(0.4*2 = 0.8) (lặp lại từ dòng 4)
=> Phần thập phân .101(0110)
581.67510 = 1001000101.101(0110)2 = 1.001000101101(0110) * 29
Do -581.67510 là số âm nên S = 12 (1 bit)
E – 127 = 9 <=> E = 136 => E = 13610 = 1000 10002 (8 bit)
f = 0010001011112 = 0010 0010 1101 0110 0110 0112 (23 bit)
Kết quả: -581.67510 = 1 10001000 001000101101011001100112
c. 1150.6875

1150.687510 = 10001111110.10112 = 1.100011111101011 * 210
Do 1150.687510 là số dương nên S = 02 (1 bit)
E – 127 = 10 <=> E = 137 => E = 13710 = 1000 10012 (8 bit)
f = 1000111111010112 = 1000 1111 1101 0110 0000 0002 (23 bit)
Kết quả: 1150.687510 = 0 10001001 100011111101011000000002
d. -11257.125

-11257.12510 = 10101111111001.0012 = 1.0101111111001001 * 213
Do -11257.12510 là số âm nên S = 12 (1 bit)
E – 127 = 13 <=> E = 140 => E = 14010 = 1000 11002 (8 bit)
f = 01011111110010012 = 0101 1111 1100 1001 0000 0002 (23 bit)
Kết quả: -11257.12510 = 1 10001100 010111111100100100000002



CHƯƠNG 2.
Bài 1. Load R28, (1500)

; Cho biết mã tác vụ Load: 001001.

0 0 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0
Op code (6bit)

Th/g S.L (5bit)

Độ dời có dấu (16bit)

Th/g đc (5bit)

Bài 2. Load R20, 400(R17) ; Cho biết mã tác vụ Load: 001001.
0 0 1 0 0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0
Op code (6bit)

Th/g S.L (5bit)

Bài 3. Store R12, (R24)

Độ dời có dấu (16bit)

Th/g đc (5bit)

; Cho biết mã tác vụ Store: 001010.

0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0

Op code (6bit)

Th/g S.L (5bit)

Độ dời có dấu (16bit)

Th/g đc (5bit)

Bài 4. Add R25, R17, R13 ; Cho biết mã tác vụ Add: 011010.
0 1 1 0 1 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
Op code (6bit)

Đích (5bit)

Nguồn 1 (5bit) Nguồn 2 (5bit)

Op code mở rộng (10bit)

1

Bài 5. Sub R2, R16, #-1250; Cho biết mã tác vụ Sub: 011011.
0 1 1 0 1 1 0 0 0 1 0 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 0
Op code (6bit)

Th/g S.L (5bit)

Th/g đc (5bit)

Số có dấu (toán hang tức thì 16bit)


CHƯƠNG 3
1. Load R5, (R20).
a. Đọc lệnh
MAR  PC
IR
 M[MAR]
b. Giải mã lệnh và đọc các thanh ghi nguồn
A
0
B
 R20
PC  PC + 4


c. Thi hành lệnh
MAR  A + B
d. Thâm nhập bộ nhớ / nhảy lần cuối
MDR  M[MAR]
e. Lưu kết quả
R5  MDR
2. Store R7, 100(R21).
a. Đọc lệnh
MAR  PC
IR
 M[MAR]
b. Giải mã lệnh và đọc các thanh ghi nguồn
A
 100
B
 R21

PC  PC + 4
c. Thi hành lệnh
MAR  A + B
MDR  R7
d. Thâm nhập bộ nhớ / nhảy lần cuối
M[MAR]  MDR
3. Add R5, R4, R20.
a. Đọc lệnh
MAR  PC
IR
 M[MAR]
b. Giải mã lệnh và đọc các thanh ghi nguồn
A
 R4
B
 R20
PC  PC + 4
c. Thi hành lệnh
Ngã ra ALU  A + B
d. Lưu kết quả
R5  Ngã ra ALU
4. Sub R10, R12, R24.
a. Đọc lệnh
MAR  PC
IR
 M[MAR]
b. Giải mã lệnh và đọc các thanh ghi nguồn
A
 R12
B

 R24
PC  PC + 4
c. Thi hành lệnh
Ngã ra ALU  A - B
d. Lưu kết quả
R10
 Ngã ra ALU


5. AND R5, R2, R15.
a. Đọc lệnh
MAR  PC
IR
 M[MAR]
b. Giải mã lệnh và đọc các thanh ghi nguồn
A
 R2
B
 R15
PC  PC + 4
c. Thi hành lệnh
Ngã ra ALU  A AND B
d. Lưu kết quả
R5
 Ngã ra ALU
6. OR R15, R3, R7.
a. Đọc lệnh
MAR  PC
IR
 M[MAR]

b. Giải mã lệnh và đọc các thanh ghi nguồn
A
 R3
B
 R7
PC  PC + 4
c. Thi hành lệnh
Ngã ra ALU  A OR B
d. Lưu kết quả
R15  Ngã ra ALU
7. JMP R7.
a. Đọc lệnh
MAR  PC
IR
 M[MAR]
b. Giải mã lệnh và đọc các thanh ghi nguồn
A
0
B
 R7
PC  PC + 4
c. Thi hành lệnh
Ngã ra ALU  B
d. Thâm nhập bộ nhớ hoặc nhảy lần cuối
PC  Ngã ra ALU
8. BRA +5.
a. Đọc lệnh
MAR  PC
IR
 M[MAR]

b. Giải mã lệnh và đọc các thanh ghi nguồn
PC  PC + 4
c. Thi hành lệnh


d.
9. BGT
a.

b.

c.

d.

Ngã ra ALU  PC + 5*4
Thâm nhập bộ nhớ hoặc nhảy lần cuối
PC
 Ngã ra ALU
R4, +2.
Đọc lệnh
MAR  PC
IR
 M[MAR]
Giải mã lệnh và đọc các thanh ghi nguồn
A
 R4
B
 2*4
PC  PC + 4

Thi hành lệnh
Nếu điều kiện trên A thỏa thì
Ngã ra ALU  PC + B
Thâm nhập bộ nhớ hoặc nhảy lần cuối
PC  Ngã ra ALU
Nếu không thỏa điều kiện, thực hiện lệnh kế tiếp.

CHƯƠNG 4
1. Viết bảng nhãn của các khối hiện đang nằm trong cache.

Khối

Nhãn

Chỉ số

8

0 0 0 0 1 0 0 0

17

0 0 0 1 0 0 0 1

23

0 0 0 1 0 1 1 1

34


0 0 1 0 0 0 1 0

38

0 0 1 0 0 1 1 0

67

0 1 0 0 0 0 1 1

69

0 1 0 0 0 1 0 1

132

1 0 0 0 0 1 0 0

Chỉ số

Nhãn

M

0

0 0 0 0 1

0


1

0 0 0 1 0

0

2

0 0 1 0 0

0

3

0 1 0 0 0

0

4

1 0 0 0 0

0

5

0 1 0 0 0

0


6

0 0 1 0 0

0

7

0 0 0 1 0

0


2. Cập nhật bảng nhãn khi CPU lần lượt đưa ra các địa chỉ sau đây để đọc/ ghi
vào bộ nhớ trong:
Đọc 43FH :
Đọc 82AH :
Đọc 915H :
Ghi 08CH :
Ghi B4AH :
Ghi 45DH :
Đọc 5E9H :
Ghi C7AH :
Đọc D85H :
Ghi 92AH :
Đọc 6C5H :
l. Ghi 458H :
a.
b.
c.

d.
e.
f.
g.
h.
i.
j.
k.

a. Đọc 43FH:

010000111111
100000101010
100100010101
000010001100
101101001010
010001011101
010111101001
110001111010
110110001101
100100101010
011011000101
010001011000

Nhãn

M

0


0 0 0 0 1

0

1

0 0 0 1 0

0

2

0 0 1 0 0

0

3

0 1 0 0 0

0

4

1 0 0 0 0

0

5


0 1 0 0 0

0

6

0 0 1 0 0

0

7

0 0 0 1 0

0

Nhãn

M

010000111111

Nhãn

Chỉ
số

Chỉ số

Chỉ

số

M

0

0

0

0

0

1

0

0

0

0

0

0

1


0

1

0

0

0

1

0

0

1

0

0

0

1

0

0


2

0

0

1

0

0

0

2

0

0

1

0

0

0

3


0

1

0

0

0

0

3

0

1

0

0

0

0

4

1


0

0

0

0

0

4

1

0

0

0

0

0

5

0

1


0

0

0

0

5

0

1

0

0

0

0

6

0

0

1


0

0

0

6

0

0

1

0

0

0

7

0

0

0

1


0

0

7

0

0

0

1

0

0

Trước khi đọc

Thành công

Sau khi đọc

M = 0 đọc dữ liệu từ bộ nhớ cache, bản nhãn không thay đổi


b. Đọc 82AH: 100000101010
Nhãn


Chỉ số

M

Chỉ số

Nhãn

M

0

0

0

0

0

1

0

0

0

0


0

0

1

0

1

0

0

0

1

0

0

1

0

0

0


1

0

0

2

0

0

1

0

0

0

2

1

0

0

0


0

0

3

0

1

0

0

0

0

3

0

1

0

0

0


0

4

1

0

0

0

0

0

4

1

0

0

0

0

0


5

0

1

0

0

0

0

5

0

1

0

0

0

0

6


0

0

1

0

0

0

6

0

0

1

0

0

0

7

0


0

0

1

0

0

7

0

0

0

1

0

0

Thất bại

Trước khi đọc

Sau khi đọc


M = 0  Nạp khối mới lên cache, cập nhật bản nhãn, đọc dữ liệu từ bộ nhớ
cache
c. Đọc 915H:

100100010101

Nhãn

Chỉ số

Chỉ
số

M

Nhãn

M

0

0

0

0

0

1


0

0

0

0

0

0

1

0

1

0

0

0

1

0

0


1

1

0

0

1

0

0

2

0

0

1

0

0

0

2


0

0

1

0

0

0

3

0

1

0

0

0

0

3

0


1

0

0

0

0

4

1

0

0

0

0

0

4

1

0


0

0

0

0

5

0

1

0

0

0

0

5

0

1

0


0

0

0

6

0

0

1

0

0

0

6

0

0

1

0


0

0

7

0

0

0

1

0

0

7

0

0

0

1

0


0

Trước khi đọc

Thất bại

Sau khi đọc

M = 0  Nạp khối mới lên cache, cập nhật bản nhãn, đọc dữ liệu từ bộ nhớ
cache


d. Ghi 08CH:

000010001100

Nhãn

Chỉ số

Nhãn

Chỉ
số

M

M


0

0

0

0

0

1

0

0

0

0

0

0

1

1

1


0

0

0

1

0

0

1

0

0

0

1

0

0

2

0


0

1

0

0

0

2

0

0

1

0

0

0

3

0

1


0

0

0

0

3

0

1

0

0

0

0

4

1

0

0


0

0

0

4

1

0

0

0

0

0

5

0

1

0

0


0

0

5

0

1

0

0

0

0

6

0

0

1

0

0


0

6

0

0

1

0

0

0

7

0

0

0

1

0

0


7

0

0

0

1

0

0

Thành công

Trước khi đọc

Sau khi đọc

M = 0  Chỉ ghi vào bộ nhớ cache, cập nhật bit M = 1
e. Ghi B4AH: 101101001010
Nhãn

Chỉ số

M

Nhãn


Chỉ số

M

0

0

0

0

0

1

0

0

0

0

0

0

1


0

1

0

0

0

1

0

0

1

0

0

0

1

0

0


2

0

0

1

0

0

0

2

0

0

1

0

0

0

3


0

1

0

0

0

0

3

0

1

0

0

0

0

4

1


0

0

0

0

0

4

1

0

1

1

0

0

5

0

1


0

0

0

0

5

0

1

0

0

0

0

6

0

0

1


0

0

0

6

0

0

1

0

0

0

7

0

0

0

1


0

0

7

0

0

0

1

0

0

Trước khi đọc

Thất bại

Sau khi đọc

M = 0  Ghi vào bộ nhớ trong và nạp khối lên cache, cập nhật bản nhãn


f. Ghi 45DH:

010001011101


Nhãn

Chỉ số

Nhãn

Chỉ số

M

M

0

0

0

0

0

1

0

0

0


0

0

0

1

0

1

0

0

0

1

0

0

1

0

0


0

1

0

0

2

0

0

1

0

0

0

2

0

0

1


0

0

0

3

0

1

0

0

0

0

3

0

1

0

0


0

0

4

1

0

0

0

0

0

4

1

0

0

0

0


0

5

0

1

0

0

0

0

5

0

1

0

0

0

1


6

0

0

1

0

0

0

6

0

0

1

0

0

0

7


0

0

0

1

0

0

7

0

0

0

1

0

0

Thành công

Trước khi đọc


Sau khi đọc

M = 0  Chỉ ghi vào bộ nhớ cache, cập nhật bit M = 1
g. Đọc 5E9H:

010111101001

Nhãn

Chỉ số

M

Nhãn

Chỉ số

M

0

0

0

0

0


1

0

0

0

0

0

0

1

0

1

0

0

0

1

0


0

1

0

0

0

1

0

0

2

0

0

1

0

0

0


2

0

0

1

0

0

0

3

0

1

0

0

0

0

3


0

1

0

0

0

0

4

1

0

0

0

0

0

4

1


0

0

0

0

0

5

0

1

0

0

0

0

5

0

1


0

0

0

0

6

0

0

1

0

0

0

6

0

1

0


1

1

0

7

0

0

0

1

0

0

7

0

0

0

1


0

0

Trước khi đọc

Thất bại

Sau khi đọc

M = 0  Nạp khối mới lên cache, cập nhật bản nhãn, đọc dữ liệu từ bộ nhớ
cache


h. Ghi C7AH: 11000 1111010
Nhãn

Chỉ số

M

Nhãn

Chỉ số

M

0

0


0

0

0

1

0

0

0

0

0

0

1

0

1

0

0


0

1

0

0

1

0

0

0

1

0

0

2

0

0

1


0

0

0

2

0

0

1

0

0

0

3

0

1

0

0


0

0

3

0

1

0

0

0

0

4

1

0

0

0

0


0

4

1

0

0

0

0

0

5

0

1

0

0

0

0


5

0

1

0

0

0

0

6

0

0

1

0

0

0

6


0

0

1

0

0

0

7

0

0

0

1

0

0

7

1


1

0

0

0

0

Thất bại

Trước khi đọc

Sau khi đọc

M = 0  Ghi vào bộ nhớ trong và nạp khối lên cache, cập nhật bản nhãn
i. Đọc D85H: 110110001101
Nhãn

Chỉ số

M

Nhãn

Chỉ số

M


0

0

0

0

0

1

0

0

1

1

0

1

1

0

1


0

0

0

1

0

0

1

0

0

0

1

0

0

2

0


0

1

0

0

0

2

0

0

1

0

0

0

3

0

1


0

0

0

0

3

0

1

0

0

0

0

4

1

0

0


0

0

0

4

1

0

0

0

0

0

5

0

1

0

0


0

0

5

0

1

0

0

0

0

6

0

0

1

0

0


0

6

0

0

1

0

0

0

7

0

0

0

1

0

0


7

0

0

0

1

0

0

Trước khi đọc

Thất bại

Sau khi đọc

M = 0  Nạp khối mới lên cache, cập nhật bản nhãn, đọc dữ liệu từ bộ
cache

nhớ


j. Ghi 92AH:

100100101010


Nhãn

Chỉ số

M

Nhãn

Chỉ số

M

0

0

0

0

0

1

0

0

0


0

0

0

1

0

1

0

0

0

1

0

0

1

0

0


0

1

0

0

2

0

0

1

0

0

0

2

1

0

0


1

0

0

3

0

1

0

0

0

0

3

0

1

0

0


0

0

4

1

0

0

0

0

0

4

1

0

0

0

0


0

5

0

1

0

0

0

0

5

0

1

0

0

0

0


6

0

0

1

0

0

0

6

0

0

1

0

0

0

7


0

0

0

1

0

0

7

0

0

0

1

0

0

Thất bại

Trước khi đọc


Sau khi đọc

M = 0  Ghi vào bộ nhớ trong và nạp khối lên cache, cập nhật bản nhãn
k. Đọc 6C5H:

011011000101

Nhãn

Chỉ số

M

Nhãn

Chỉ số

M

0

0

0

0

0


1

0

0

0

0

0

0

1

0

1

0

0

0

1

0


0

1

0

0

0

1

0

0

2

0

0

1

0

0

0


2

0

0

1

0

0

0

3

0

1

0

0

0

0

3


0

1

0

0

0

0

4

1

0

0

0

0

0

4

0


1

1

0

1

0

5

0

1

0

0

0

0

5

0

1


0

0

0

0

6

0

0

1

0

0

0

6

0

0

1


0

0

0

7

0

0

0

1

0

0

7

0

0

0

1


0

0

Trước khi đọc

Thất bại

Sau khi đọc

M = 0  Nạp khối mới lên cache, cập nhật bản nhãn, đọc dữ liệu từ bộ nhớ


l. Ghi 458H:

010001011000

Nhãn

Chỉ số

M

Chỉ số

Nhãn

M

0


0

0

0

0

1

0

0

0

0

0

0

1

0

1

0


0

0

1

0

0

1

0

0

0

1

0

0

2

0

0


1

0

0

0

2

0

0

1

0

0

0

3

0

1

0


0

0

0

3

0

1

0

0

0

0

4

1

0

0

0


0

0

4

1

0

0

0

0

0

5

0

1

0

0

0


0

5

0

1

0

0

0

1

6

0

0

1

0

0

0


6

0

0

1

0

0

0

7

0

0

0

1

0

0

7


0

0

0

1

0

0

Thành công

Trước khi đọc
M = 0  Chỉ ghi vào bộ nhớ cache, cập nhật bit M = 1

Sau khi đọc



×