Chương 4 - Số học máy tính. Những nội dung chính được trình bày trong chương này gồm có: Biểu diễn số nguyên, phép cộng và phép trừ số nguyên, phép nhân và phép chia số nguyên, số dấu phẩy động.
NKK-HUST c om Kiến trúc máy tính cu u du o ng th an co ng Chương SỐ HỌC MÁY TÍNH Nguyễn Kim Khánh Trường Đại học Bách khoa Hà Nội 2017 Kiến trúc máy tính CuuDuongThanCong.com 134 https://fb.com/tailieudientucntt NKK-HUST Nội dung học phần cu u du o ng th an co ng c om Chương Giới thiệu chung Chương Cơ logic số Chương Hệ thống máy tính Chương Số học máy tính Chương Kiến trúc tập lệnh Chương Bộ xử lý Chương Bộ nhớ máy tính Chương Hệ thống vào-ra Chương Các kiến trúc song song 2017 Kiến trúc máy tính CuuDuongThanCong.com 135 https://fb.com/tailieudientucntt NKK-HUST c om Nội dung chương cu u du o ng th an co ng 4.1 Biểu diễn số nguyên 4.2 Phép cộng phép trừ số nguyên 4.3 Phép nhân phép chia số nguyên 4.4 Số dấu phẩy động 2017 Kiến trúc máy tính CuuDuongThanCong.com 136 https://fb.com/tailieudientucntt NKK-HUST ng cu u du o ng th an n Số nguyên không dấu (Unsigned Integer) Số nguyên có dấu (Signed Integer) co n c om 4.1 Biểu diễn số nguyên 2017 Kiến trúc máy tính CuuDuongThanCong.com 137 https://fb.com/tailieudientucntt NKK-HUST Biểu diễn số nguyên không dấu Nguyên tắc tổng quát: Dùng n bit biểu diễn số nguyên không dấu A: c om n an co ng an−1an−2 a2 a1a0 n−1 A = ∑ Dải biểu diễn A: 2017 i i=0 cu u du o ng th Giá trị A tính sau: [0, 2n – 1] Kiến trúc máy tính CuuDuongThanCong.com 138 https://fb.com/tailieudientucntt NKK-HUST Ví dụ c om Biểu diễn số nguyên không dấu sau 8-bit: A = 41 ; B = 150 Giải: A = 41 = 32 + + = 25 + 23 + 20 41 = 0010 1001 du o ng th an co ng n cu u B = 150 = 128 + 16 + + = 27 + 24 + 22 + 21 150 = 1001 0110 2017 Kiến trúc máy tính CuuDuongThanCong.com 139 https://fb.com/tailieudientucntt NKK-HUST Ví dụ n N = 1011 1001 ng M = 0001 0010 co n c om Cho số nguyên không dấu M, N biểu diễn 8-bit sau: an n du o Giải: ng th Xác định giá trị chúng ? M = 0001 0010 = 24 + 21 = 16 +2 = 18 n N = 1011 1001 = 27 + 25 + 24 + 23 + 20 cu u n = 128 + 32 + 16 + + = 185 2017 Kiến trúc máy tính CuuDuongThanCong.com 140 https://fb.com/tailieudientucntt NKK-HUST Với n = bit c om Biểu diễn giá trị từ đến 255 (28 - 1) Chú ý: 0000 0001 0000 0010 0000 0011 0000 0100 co ng th an + 0000 0001 0000 0000 Giá trị thập phân ng 1111 1111 Biểu diễn nhị phân 0000 0000 cu u du o có nhớ ra ngồi (Carry out) do vượt ra khỏi dải biểu diễn 1111 1110 254 1111 1111 255 255 + 1 = 0 ??? 2017 Kiến trúc máy tính CuuDuongThanCong.com 141 https://fb.com/tailieudientucntt NKK-HUST Trục số học với n = bit c om Trục số học: 255 ng co an 254 cu u du o ng th Trục số học máy tính: 255 2017 Kiến trúc máy tính CuuDuongThanCong.com 142 https://fb.com/tailieudientucntt NKK-HUST Với n = 16 bit, 32 bit, 64 bit n n n n ng = an co = 255 = 256 th n ng n du o n 0000 0000 0000 0000 0000 0000 1111 1111 0000 0001 0000 0000 1111 1111 1111 1111 = 65535 u n c om n= 16 bit: dải biểu diễn từ đến 65535 (216 - 1) n= 32 bit: dải biểu diễn từ đến 232 - n= 64 bit: dải biểu diễn từ đến 264 - cu n 2017 Kiến trúc máy tính CuuDuongThanCong.com 143 https://fb.com/tailieudientucntt NKK-HUST Chuẩn IEEE754-2008 c om Sign Biased bit exponent n Trailing significand field Dạng 32-bit an bits 23 bits (a) Binary32 format ng n Cơ số R =3462 CHAPTER 10 / COMPUTER ARITHMETIC Các dạng: co n Dạng 64-bit Trailing significand field ng n th Sign Biased bit exponent 52 bits du o 11 bits (b) Binary64 format u Sign bit Dạng 128-bit cu n Biased exponent Trailing significand field 15 bits (c) Binary128 format Figure 10.21 112 bits IEEE 754 Formats is implementation dependent, but the standard places certain constraints on the length of the exponent and significand These formats are arithmetic format types but not interchange format types The extended formats are to be used for interKiến trúc máy tính mediate calculations With their greater precision, the extended formats lessen 179 the 2017 Table 10.3 CuuDuongThanCong.com IEEE 754 Format Parameters https://fb.com/tailieudientucntt NKK-HUST Dạng 32-bit 23 bit c om 8 bit ng co S = số dương S = số âm ng th e (8 bit) giá trị dịch chuyển phần mũ E: e = E + 127 phần mũ E = e - 127 du o n u m (23 bit) phần lẻ phần định trị M: n n 1 bit an n n m S bit dấu: n n e M = 1.m cu n S Công thức xác định giá trị số thực: X = (-1)S*1.m * 2e-127 2017 Kiến trúc máy tính CuuDuongThanCong.com 180 https://fb.com/tailieudientucntt NKK-HUST Ví dụ n ng c om Xác định giá trị số thực biểu diễn 32-bit sau đây: 1100 0001 0101 0110 0000 0000 0000 0000 co S = số âm n e = 1000 0010(2) = 130(10) E = 130 - 127 = Vậy X = -1.10101100(2) * 23 = -1101.011(2) = -13.375(10) u du o ng th an n 0011 1111 1000 0000 0000 0000 0000 0000 = ? cu n 2017 Kiến trúc máy tính CuuDuongThanCong.com 181 https://fb.com/tailieudientucntt NKK-HUST Ví dụ c om Biểu diễn số thực X= 83.75(10) dạng số dấu phẩy động IEEE754 32-bit co ng Giải: X = 83.75(10) = 1010011.11(2) = 1.01001111 x 26 n Ta có: th ng S = số dương n E = e - 127 = e = 127 + = 133(10) = 1000 0101(2) u Vậy: du o n cu n an n X = 0100 0010 1010 0111 1000 0000 0000 0000 2017 Kiến trúc máy tính CuuDuongThanCong.com 182 https://fb.com/tailieudientucntt NKK-HUST Các qui ước đặc biệt c om ng Các bit e 1, bit m 0, X = ± ¥ x111 1111 1000 0000 0000 0000 0000 0000 X =± ¥ ng Các bit e 1, cịn m có bit 1, khơng biểu diễn cho số (NaN - not a number) cu u du o n th an n Các bit e 0, bit m 0, X = ± x000 0000 0000 0000 0000 0000 0000 0000 X = ± co n 2017 Kiến trúc máy tính CuuDuongThanCong.com 183 https://fb.com/tailieudientucntt NKK-HUST Dải giá trị biểu diễn an co ng n 2-127 đến 2+127 10-38 đến 10+38 c om n -2-127 +2-127 +2+127 cu u du o ng th -2+127 2017 Kiến trúc máy tính CuuDuongThanCong.com 184 https://fb.com/tailieudientucntt NKK-HUST Dạng 64-bit th ng n m (52 bit): phần lẻ phần định trị M Giá trị số thực: du o n e = E + 1023 phần mũ E = e - 1023 an n co ng n S bit dấu e (11 bit) giá trị dịch chuyển phần mũ E: c om n n cu u X = (-1)S*1.m * 2e-1023 Dải giá trị biểu diễn: 10-308 đến 10+308 2017 Kiến trúc máy tính CuuDuongThanCong.com 185 https://fb.com/tailieudientucntt NKK-HUST Dạng 128-bit th ng n m (112 bit): phần lẻ phần định trị M Giá trị số thực: du o n e = E + 16383 phần mũ E = e - 16383 an n co ng n S bit dấu e (15 bit) giá trị dịch chuyển phần mũ E: c om n n cu u X = (-1)S*1.m * 2e-16383 Dải giá trị biểu diễn: 10-4932 đến 10+4932 2017 Kiến trúc máy tính CuuDuongThanCong.com 186 https://fb.com/tailieudientucntt NKK-HUST n n ng co cu u du o n X1 * X2 = (M1* M2) * RE1+E2 X1 / X2 = (M1 / M2) * RE1-E2 X1 ± X2 = (M1*RE1-E2 ± M2) * RE2 , với E2 ³ E1 an n th n X1 = M1 * RE1 X2 = M2 * RE2 Ta có ng n c om Thực phép toán số dấu phẩy động 2017 Kiến trúc máy tính CuuDuongThanCong.com 187 https://fb.com/tailieudientucntt NKK-HUST Các khả tràn số Tràn số mũ (Exponent Overflow): mũ dương vượt khỏi giá trị cực đại số mũ dương (à ∞) Tràn số mũ (Exponent Underflow): mũ âm vượt khỏi giá trị cực đại số mũ âm (à 0) Tràn phần định trị (Mantissa Overflow): cộng hai phần định trị có dấu, kết bị nhớ bit cao Tràn phần định trị (Mantissa Underflow): Khi hiệu chỉnh phần định trị, số bị bên phải phần định trị n co cu u du o n ng th an n ng c om n 2017 Kiến trúc máy tính CuuDuongThanCong.com 188 https://fb.com/tailieudientucntt NKK-HUST Kiểm tra số hạng có hay không Hiệu chỉnh phần định trị Cộng trừ phần định trị Chuẩn hoá kết an th cu u n ng n du o n co ng n c om Phép cộng phép trừ 2017 Kiến trúc máy tính CuuDuongThanCong.com 189 https://fb.com/tailieudientucntt NKK-HUST Thuật tốn cộng/trừ số dấu phẩy động c om TRỪ Đổi dấu Y ZßY Y=0? N Phần mũ nhau? Y N Tăng phần mũ nhỏ Zß X Y ng Y N co X=0? Zß Y an CỘNG TRỞ VỀ 2017 định trị = 0? N Dịch phải phần định trị định trị bị tràn? ng cu u du o N Kết chuẩn hóa? Y=0? Y Dịch phải phần định trị Y Cất số vào Z Tăng phần mũ TRỞ VỀ N TRỞ VỀ Y Phần mũ bị tràn? Giảm phần mũ Y Báo tràn N TRỞ VỀ Kiến trúc máy tính CuuDuongThanCong.com Làm trịn kết N Phần mũ bị tràn dưới? TRỞ VỀ Báo tràn Y N TRỞ VỀ th Dịch phải phần định trị Cộng có dấu phần định trị 190 https://fb.com/tailieudientucntt NKK-HUST Thuật toán nhân số dấu phẩy động X=0? N Y=0? Cộng phần mũ Y Trừ cho độ lệch ng Y N c om NHÂN co Zß Tràn phần mũ? Y Thông báo tràn N Tràn phần mũ? N Nhân phần định trị Y Thông báo tràn TRỞ VỀ cu u du o ng th an TRỞ VỀ Chuẩn hóa Làm trịn TRỞ VỀ 2017 Kiến trúc máy tính CuuDuongThanCong.com 191 https://fb.com/tailieudientucntt NKK-HUST Thuật tốn chia số dấu phẩy động N Y=0? Y Zß Zß Trừ phần mũ Công thêm độ lệch ∞ co Y N ng X=0? c om CHIA Tràn phần mũ? th an TRỞ VỀ N du o ng Tràn phần mũ? Y Thông báo tràn TRỞ VỀ cu u N Chia phần định trị Y Thông báo tràn Chuẩn hóa Làm trịn TRỞ VỀ 2017 Kiến trúc máy tính CuuDuongThanCong.com 192 https://fb.com/tailieudientucntt co ng c om NKK-HUST cu u du o ng th an Hết chương 2017 Kiến trúc máy tính CuuDuongThanCong.com 193 https://fb.com/tailieudientucntt ... biểu diễn từ -2 15 đến 21 5-1 u n +32767 (215 - 1) -3 2768 (-2 15) -3 2767 -1 Với n = 32bit: biểu diễn từ -2 31 đến 23 1-1 Với n = 64bit: biểu diễn từ -2 63 đến 26 3-1 2017 Kiến trúc máy tính CuuDuongThanCong.com...NKK-HUST Nội dung học phần cu u du o ng th an co ng c om Chương Giới thiệu chung Chương Cơ logic số Chương Hệ thống máy tính Chương Số học máy tính Chương Kiến trúc tập lệnh Chương Bộ xử lý Chương. .. 0111 1111 -1 28 1000 0000 -1 27 1000 0001 -2 1111 1110 -1 1111 1111 Kiến trúc máy tính CuuDuongThanCong.com 1 54 https://fb.com/tailieudientucntt NKK-HUST n Trục số học: -1 28 +127 an Trục số học máy tính: