Professional Documents
Culture Documents
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 1 Bài giảng Kiến trúc Máy tính 2
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 3 Bài giảng Kiến trúc Máy tính 4
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 5 Bài giảng Kiến trúc Máy tính 6
NKK-HUT NKK-HUT
Ví dụ 2. Cho các số nguyên không dấu M, N Biểu diễn được các giá trị từ 0 đến 255
được biểu diễn bằng 8-bit như sau:
0000 0000 = 0 Chú ý:
M = 0001 0010 0000 0001 = 1 1111 1111
N = 1011 1001 0000 0010 = 2 + 0000 0001
Xác định giá trị của chúng ? 0000 0011 = 3 1 0000 0000
Giải: ... Vậy: 255 + 1 = 0 ?
1111 1111 = 255 Æ do tràn nhớ ra
M = 0001 0010 = 24 + 21 = 16 +2 = 18
ngoài
N = 1011 1001 = 27 + 25 + 24 + 23 + 20
= 128 + 32 + 16 + 8 + 1 = 185
Bài giảng Kiến trúc Máy tính 7 Bài giảng Kiến trúc Máy tính 8
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 9 Bài giảng Kiến trúc Máy tính 10
NKK-HUT NKK-HUT
NKK-HUT NKK-HUT
NKK-HUT NKK-HUT
Quy tắc tìm Số bù một và Số bù hai c. Biểu diễn số nguyên có dấu bằng mã bù hai
NKK-HUT NKK-HUT
0 a n − 2 ... a 2 a1 a0 1a n − 2 ... a 2 a1 a0
Giá trị của số dương A: Giá trị của số âm A:
n−2 n−2
A = ∑ ai 2 i A = −2 n −1
+ ∑ ai 2 i
i =0 i =0
Dải biểu diễn cho số dương: 0 đến 2n-1-1 Dải biểu diễn cho số âm: -1 đến -2n-1
Bài giảng Kiến trúc Máy tính 17 Bài giảng Kiến trúc Máy tính 18
NKK-HUT NKK-HUT
NKK-HUT NKK-HUT
NKK-HUT NKK-HUT
Trục số học số nguyên có dấu với n = 8 bit Với n = 16 bit, 32 bit, 64 bit
NKK-HUT NKK-HUT
Chuyển đổi từ byte thành word 3. Biểu diễn số nguyên theo mã BCD
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 27 Bài giảng Kiến trúc Máy tính 28
NKK-HUT NKK-HUT
Phép cộng số BCD 5.2. Thực hiện phép cộng/trừ với số nguyên
35 Æ 0011 0101BCD 1. Phép cộng số nguyên không dấu
+ 61 Æ + 0110 0001BCD
Bộ cộng n-bit
96 Å 1001 0110BCD
kết quả đúng (không phải hiệu chỉnh)
87 Æ 1000 0111BCD
+ 96 Æ + 1001 0110BCD
1 83 1 0001 1101 Æ kết quả sai
+ 0110 0110 Å hiệu chỉnh
0001 1000 0011BCD Ækết quả đúng
1 8 3
Hiệu chỉnh: cộng thêm 6 ở những vị trí có nhớ (>9)
Bài giảng Kiến trúc Máy tính 29 Bài giảng Kiến trúc Máy tính 30
NKK-HUT NKK-HUT
Nguyên tắc cộng số nguyên không dấu Ví dụ cộng số nguyên không dấu
57 = 0011 1001
Khi cộng hai số nguyên không dấu n-bit, + 34 = + 0010 0010
91 0101 1011 = 64+16+8+2+1=91 Æ đúng
kết quả nhận được là n-bit:
Nếu Cout=0 Æ nhận được kết quả đúng. 209 = 1101 0001
+ 73 = + 0100 1001
Nếu Cout=1 Æ nhận được kết quả sai, 282 1 0001 1010
do tràn nhớ ra ngoài (Carry Out). 0001 1010 = 16+8+2=26 Æ sai
Æ có tràn nhớ ra ngoài (Cout=1)
Tràn nhớ ra ngoài khi: tổng > (2n – 1)
Để có kết quả đúng ta thực hiện cộng theo 16-bit:
209 = 0000 0000 1101 0001
+ 73 = + 0000 0000 0100 1001
0000 0001 0001 1010 = 256+16+8+2 = 282
Bài giảng Kiến trúc Máy tính 31 Bài giảng Kiến trúc Máy tính 32
NKK-HUT NKK-HUT
NKK-HUT NKK-HUT
NKK-HUT NKK-HUT
4. Nguyên tắc thực hiện phép trừ 5.3. Thực hiện phép nhân
Phép trừ hai số nguyên: X-Y = X+(-Y) Nhân số nguyên không dấu
Nguyên tắc: Lấy bù hai của Y để được –Y,
rồi cộng với X 1011 Số bị nhân (11)
x 1101 Số nhân (13)
1011
0000 Các tích riêng phần
1011
1011
10001111 Tích (143)
Bài giảng Kiến trúc Máy tính 37 Bài giảng Kiến trúc Máy tính 38
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 39 Bài giảng Kiến trúc Máy tính 40
NKK-HUT NKK-HUT
C A Q
0 0000 1101 Các giá trị khởi đầu
+ 1011
0 1011 1101 A ← A + M
0 0101 1110 Dịch phải
0 0010 1111 Dịch phải
+ 1011
0 1101 1111 A ← A + M
0 0110 1111 Dịch phải
+ 1011
1 0001 1111 A ← A + M
0 1000 1111 Dịch phải
Bài giảng Kiến trúc Máy tính 41 Bài giảng Kiến trúc Máy tính 42
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 43 Bài giảng Kiến trúc Máy tính 44
NKK-HUT NKK-HUT
B¾t ®Çu
Sử dụng thuật giải nhân không dấu Thuật giải Booth
A := 0, Q-1 := 0
Bước 1. Chuyển đổi số bị nhân và số M := Sè bÞ nh©n
Q := Sè nh©n
Bước 3. Hiệu chỉnh dấu của tích: DÞch ph¶i sè häc A,Q,Q-1
Bé ®Õm:=Bé ®Õm-1
Nếu hai thừa số ban đầu là khác dấu thì đảo Yes
Bài giảng Kiến trúc Máy tính 45 Bài giảng Kiến trúc Máy tính 46
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 47 Bài giảng Kiến trúc Máy tính 48
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 49 Bài giảng Kiến trúc Máy tính 50
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 51 Bài giảng Kiến trúc Máy tính 52
NKK-HUT NKK-HUT
S là bit dấu:
S = 0 Æ số dương
S = 1 Æ số âm
e (8 bit) là mã excess-127 của phần mũ E:
e = E+127 Æ E = e – 127
giá trị 127 gọi là là độ lệch (bias)
m (23 bit) là phần lẻ của phần định trị M:
M = 1.m
Công thức xác định giá trị của số thực:
X = (-1)S*1.m * 2e-127
Bài giảng Kiến trúc Máy tính 53 Bài giảng Kiến trúc Máy tính 54
NKK-HUT NKK-HUT
Ví dụ 1 Ví dụ 2
Xác định giá trị của số thực được biểu diễn bằng Biểu diễn số thực X= 83.75 về dạng số dấu phẩy
32-bit như sau: động IEEE754 32-bit
1100 0001 0101 0110 0000 0000 0000 0000 Giải:
S = 1 Æ số âm X = 83.75(10) = 1010011.11(2) = 1.01001111 x 26
e = 1000 00102 = 130 Æ E = 130-127=3
Ta có:
Vậy
S = 0 vì đây là số dương
X = -1.10101100 * 23 = -1101.011 = -13.375
E = e-127 = 6 Æ e = 127 + 6 = 133(10) = 1000 0101(2)
Bài giảng Kiến trúc Máy tính 55 Bài giảng Kiến trúc Máy tính 56
NKK-HUT NKK-HUT
Ví dụ 3 Bài tập
Biểu diễn số thực X= -0,2 về dạng số dấu phẩy Biểu diễn các số thực sau đây về dạng số
động IEEE754 32-bit dấu phẩy động IEEE754 32-bit:
Giải:
X = - 27.0625; Y = 1/32
X = -0,2(10) = - 0.00110011...0011...(2) =
= - 1.100110011..0011... x 2-3
Ta có:
S = 1 vì đây là số âm
E = e-127 = -3 Æ e = 127 -3 = 124(10) = 0111 1100(2)
Vậy:
X = 1011 1110 0100 1100 1100 1100 1100 1100
Bài giảng Kiến trúc Máy tính 57 Bài giảng Kiến trúc Máy tính 58
NKK-HUT NKK-HUT
Các qui ước đặc biệt Dải giá trị biểu diễn
Các bit của e bằng 0, các bit của m bằng 0, thì X = ± 0
x000 0000 0000 0000 0000 0000 0000 0000 Æ X = ± 0
2-127 đến 2+127
10-38 đến 10+38
Các bit của e bằng 1, các bit của m bằng 0, thì X = ± ∞
x111 1111 1000 0000 0000 0000 0000 0000 Æ X =± ∞
Các bit của e bằng 1, còn m có ít nhất một bit bằng 1, thì
nó không biểu diễn cho số nào cả (NaN - not a number)
Bài giảng Kiến trúc Máy tính 59 Bài giảng Kiến trúc Máy tính 60
NKK-HUT NKK-HUT
Bài giảng Kiến trúc Máy tính 61 Bài giảng Kiến trúc Máy tính 62
NKK-HUT NKK-HUT
3.Thực hiện phép toán số dấu phẩy động Các khả năng tràn số
Tràn trên số mũ (Exponent Overflow): mũ
X1 = M1 * RE1 dương vượt ra khỏi giá trị cực đại của số mũ
X2 = M2 * RE2 dương có thể. (Æ ∞)
Ta có Tràn dưới số mũ (Exponent Underflow): mũ âm
X1 * X2 = (M1* M2) * RE1+E2 vượt ra khỏi giá trị cực đại của số mũ âm có thể
X1 / X2 = (M1 / M2) * RE1-E2 (Æ 0).
X1 ± X2 = (M1*RE1-E2 ± M2) * RE2 , với E2 ≥ E1 Tràn trên phần định trị (Mantissa Overflow):
cộng hai phần định trị có cùng dấu, kết quả bị
nhớ ra ngoài bit cao nhất.
Tràn dưới phần định trị (Mantissa Underflow):
Khi hiệu chỉnh phần định trị, các số bị mất ở bên
phải phần định trị.
Bài giảng Kiến trúc Máy tính 63 Bài giảng Kiến trúc Máy tính 64
NKK-HUT NKK-HUT
Phép cộng và phép trừ Thuật toán cộng/trừ số dấu phẩy động
Bài giảng Kiến trúc Máy tính 65 Bài giảng Kiến trúc Máy tính 66
NKK-HUT NKK-HUT
Thuật toán nhân số dấu phẩy động Thuật toán chia số dấu phẩy động
Bài giảng Kiến trúc Máy tính 67 Bài giảng Kiến trúc Máy tính 68
NKK-HUT NKK-HUT