You are on page 1of 16

BÀI TẬP

KIẾN TRÚC MÁY


TÍNH

Họ và tên : Nguyễn Viết Tùng


Lớp : ĐIỆN TỬ 6 – K50
SHSV : 20053776

1
Hà Nội, 5-2009

CHƯƠNG 1
Bài 1
Chuyển đổi các số sau từ hệ 10 sang hệ 2
DD/MM/YY
DD = 28; MM = 03; YY = 88;
28 2
dư 0 14 2
0 7 2
1 3 2
1 1 2
1 0

⟹(28)10=(11100)2

3 2
dư 1 1 2
1 0

⇒(3)10=(11)2

2
88 2
dư 0 44 2
0 22 2
0 11 2
1 5 2
1 2 2
0 1 2
1 0

⇒(88)10=(1011000)2

Bài 2
Người ta nói một lớp có 42 học sinh. Trong đó có 25 nam và
14 nữ. Hỏi người ta nói như vậy có đúng không ? Tại sao?
Trả lời: Nói như vậy đúng nếu trong trường hợp cơ số 7. Còn
nếu không nói rõ cơ số nào, hoặc trong cơ số khác thì sai
Vì: xét trong co số x:
(42)x – (25)x = (14)x
 4x + 2 – 2x – 5 =x+4
⇔ x =7
⇒ cơ số 7 thì đúng

Bài 3
Chứng minh cách tính mã ngược của hai số âm là đồng nhất
C1: [A]ng = A nếu A≥02-A-2-n nếu A≤0

C2: nếu A < 0: A = - 0,a-1 a-2 … a-n


 [A]ng = 1.a-1 . a-2 . a-3 . …a-n .
3
Trả lời:
Trong cách 1:
[A]ng = (2 - |A| - 2- n)10
Xét trong hệ 2:
[A]ng = 10 - 0,a-1 a-2 … a-n - 0,000…1
=1,111…1 - 0,a-1 a-2 a-3… a-n
=1.a-1 . a-2 . a-3 . …a-n . ( vì a-n . + a-n = 1)
=[A]ng ( cách 2)
Bài 4
Vì sao khi thực hiện các phép toán +, - hai dấu phẩy động
phải cân bằng bậc theo số có bậc lớn hơn
A=m1.2p1B=m2.2p2

Giả sử P1 > P2
Nếu cân bằng bậc theo B ( số có bậc nhỏ hơn)
A = m1*.2p2
m1* = m1.2 ( p1-p2 ) ( m1= 0,1…)
giả sử p1- p2 >1
⇒ 2 ( p1-p2 ) >2
⇒ m1* >1
có thể gây tràn bộ nhớ (thực hiện tính m1* sẽ gây lỗi)
Bài 5
Bổ sung cho mã 1 cột dấu khả năng phát hiện tràn khi thực
hiện phép cộng và trừ
Trả lời:
Lưu đồ thuật toán:
S signA
Đ signA =
= signB
signΣ

4
Bài 6
Tính A = 0,1001
+ B = - 0,1101
Trả lời:
[A]ng = 0.1001
[B]ng = 1.0010
⇒ [A+B]ng = 1.1011
⇒ [A+B] = 1.0100
⇒ A+B = - 0,0100
Bài 7
Tính C x D với
C= -1001D=1011

– Xác định dấu:


C<0 SC = 1
D>0 SD = 0
⇒ SCx D = SC ⨁ SD =1

– Xác định |C x D|
Công đoạn1: Thiết lập trạng thái ban đầu

1 0 1 1
G2

1 0 0 1
G1

5
Công đoạn 2: Thực hiện 4 chu trình:

Ct1:
1 0 1 1
G2dp1c G2 → Σ


+
1 0 0 1
G1

1 0 0 1
mới

1 0 0 1
Σmới dp1c

Ct2:
1 0 1
G2dp1c ⇒ G2 → Σ

1 0 0 1

+
1 0 0 1
G1
1 1 0 1 1

mới

1 1 0 1 1
6
Σmới dp1c

Ct3:
1 0
G2 dp1c ⇒ G2 → Σ

1 1 0 1 1
Σdp1c

Ct4
1
G2 dp1c ⇒ G2 → Σ

1 1 0 1 1

+
1 0 0 1
G1

1 1 0 0 0 1 1
Σmới

1 1 0 0 0 1 1
Σmới dp1c

Vậy |C X D| = 1100011, signC x D = 1


⇒ C X D = - 1100011

Bài 8
Tính A - B
A=-0,111.2-111B=-0,1001.2-1001
7
a. So sánh bậc:
Xét P2 – p1
[P2]ng = 1.1001
[-P1]ng = 1.0111
⇒ [P2-P1]ng = 1.1101

⇒ [P2-P1] = 1.0010
⇒ P2-P1 < 0
⇒ P1 > P2

b. Cân bằng bậc:


Vì p1>p2 => giữ nguyên A thay đổi B
m2* = m2.2p2-p1
= - 0,1001.2-10
= -0,001001

c. Trừ hai phần định trị


m1 = - 0,111000
*
- m2 = - 0,001001

⇒ m1 = - 0,111000
+ (- m2*) = 0,001001

[m1]ng = 1.000111
+ [m2*]ng = 0.001001
⇒[m1 – m2*]ng = 1.010000

⇒[m1 – m2*] = 1.101111


⇒ m1- m2* = - 0,101111

d. Chuẩn hóa kết quả:


A - B = - 0.101111.2-111

8
Chương 4
Bài 4.1
Chuyển từ lưu đồ thuật toán thực hiện phép cộng sang lưu
đồ thuật toán thực hiện phép trừ:
Chỉ thay đổi phần tính [B]ng và cộng vào tổng
• Phép cộng:

N Sign Y
G1=1

• Chuyển sang phép trừ:


C1:
N
signG1 = 1
Y
C2:
N
signG1 = 0
Y
C3:
N
signG
Y 1
=0

Y
signG1 = 1
N
C4:

➢ Phép nhân:

9
Vẽ lưu đồ thuật toán thực hiện phép nhân theo cách 2 ( không
còn G2)
CĐ1: Thiết lập trạng thái ban đầu
 Xóa ∑, G1, G2
 A -> G1
 B-> ∑ [1’ …n’]
CĐ2: Thực hiện n chu trình
 ∑ [n’] = 1 ⇒ G1 → Σ0 ⇒ G1 không→ Σ
 ∑ dp1c
Đ:=0
Σ[n’] =1

10
Bài 4.2
Đưa ra lưu đồ thuật toán thực hiện phép toán logic:
a. Z1 = A+B

b. Z2 = A.B = A + B

11
c. Z3= A . B +A.B = A⊕B

12
d. Z4 = X1X2+X3X1=X1X2+X3
= (X1 + A) ⊕ A ⊕ X1 (Với A = X2 + X3)
Tính (X
A→1
+
A)
G1 ⊕ A

G1 Σ

13
• Phép chia
c0 c1 … c
n

Sau khi thực hiện phép chia, c0 không còn tồn tại ( vì khi
G2 dịch trái một cột sẽ mất giá trị c0)

Chu trình n

c1 c2 … c
n

Chu trình n+1


⇒ Có thể bỏ C0 vì C0 luôn bằng 0 (nếu c0 # 0 thì A > B, phép
chia sẽ bị tràn)

14
Chương 5
Thiết kế các bộ nhớ:
a. 4k x 1bit
– Kích thước ma trận nhớ:
4k= 22 x 210 = 26 x 26 = 64 x 64
– Kích thước các bộ giải mã
GMx, GMy:
 64 đầu ra
 6 đầu vào
– Số lượng ma trận : 1
– Khối khuyếch đại ghi đọc:1
W/R
D3
A
6
0
F 0
5
6
11

b. 4k x 2 bytes
– Kích thước ma trận nhớ:
4k= 22 x 210 = 26 x 26 = 64 x 64
– Kích thước các bộ giải mã
GMx, GMy:
 64 đầu ra
 6 đầu vào
– Số lượng ma trận : 16
– Khối khuyếch đại ghi đọc:16

W/R
A3
6
0
F
D 0
5
6
11

c. 12k x 1 bytes
12k = 3 x 4k ⇒ ta ghép 3 bộ nhớ dung lượng
4k x 1bytes với nhau

LƯU ĐỒ THUẬT TOÁN

15
PHÉP NHÂN HAI SỐ DẤU PHẢY ĐỘNG

N G1[n+1]=1
Y Đ=0

N signΣ
Y Sign(G
Sign(G
Tràn
=11[1..p])=1
[0..p])=1
1

16

You might also like