BÀI TẬP KIẾN TRÚC MÁY TÍNH Họ và tên Lớp SHSV
: Nguyễn Viết Tùng
: ĐIỆN TỬ 6 – K50 : 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;
dư
28
2
0
14 0
2 7 1
2 3
2
1
1
2
1
0
⟹(28)10=(11100)2
3 dư 1
2 1
2
1
0
⇒(3)10=(11)2
2
dư
88
2
0
44 0
2 22
2
0
11
2
1
5
2
1
2 0
2 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
=1,111…1
-
-
0,000…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
⇒
[A+B] =
1.0100
⇒
A+B
=
=
1.1011
- 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 G2
1
∑
1
0 0 G1
1
5
Công đoạn 2: Thực hiện 4 chu trình: Ct1: 1 0 G2dp1c
1
1 G2 → Σ
∑
+ 1 0 0 G1
1
1
0
0
1
1
0
0
1
mới
Σmới dp1c Ct2: 1 G2dp1c
0
1
0
0
0 0 G1
1
1 ⇒ G2 → Σ 1
∑
+ 1
1
1
0
1
1
1
1
0
1
mới
1 6
Σmới dp1c Ct3: 1
0 ⇒ G2 → Σ
G2 dp1c 1
1
0
1
1
Σdp1c Ct4 1 ⇒ G2 → Σ
G2 dp1c 1
1
+ 1 0 0 G1
1
0
1
1
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 [-P1]ng ⇒
=
[P2-P1]ng
1.1001 1.0111
=
1.1101
⇒
[P2-P1] =
1.0010
⇒
P2-P1 P1
< >
⇒ b.
=
0 P2
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 = * m2 = m1 + (- m2*)
= =
- 0,111000 0,001001
[m1]ng
=
1.000111
=
0.001001
⇒[m1 – m2*]ng =
1.010000
⇒
+ [m2*]ng
⇒[m1 – m2*] ⇒ d.
- 0,111000 - 0,001001
m1- m2*
= =
1.101111
- 0,101111
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: signG1 = 1 Y N
C2: signG1 = 0 Y N
C3: signG Y =0 N 1 signG1 = 1 N Y
➢
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
•
c0
Phép chia 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 Đ=0 N G1[n+1]=1 Y Sign(G Sign(G Tràn [0..p])=1 N signΣ Y =11[1..p])=1 1
16