Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
1,32 MB
Nội dung
Computer Architecture Computer Science & Engineering Chương Phép số học BK TP.HCM CuuDuongThanCong.com https://fb.com/tailieudientucntt Các phép số học Các phép tính số nguyên Cộng Trừ Nhân Chia Xử lý tràn Số thực với dấu chấm di động (FloatingPoint) Cách biểu diễn phép tính BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Nhắc lại mạch số Mơn học: Nhập mơn điện tốn (Năm I) Thiết kế hệ thống số BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Mạch Half Adder x y Half adde r XOR S x C y S XOR AND x y S C 0 0 1 1 1 April 2019 CuuDuongThanCong.com C AND Khoa Khoa học & Kỹ thuậthttps://fb.com/tailieudientucntt Máy tính Mạch Full Adder C0 x y S Full adder C S = x + y + C0 S = (x + y) + C0 Tính: S1 = x + y Tính: S2 = S1 + C0 April 2019 CuuDuongThanCong.com Half adder Half adder Khoa Khoa học & Kỹ thuật https://fb.com/tailieudientucntt Máy tính Full adder (2) C0 x y S C C0 S1 C1 C2 C 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 1 1 1 C = when C1 = or C2 = April 2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật https://fb.com/tailieudientucntt Máy tính Full adder (3) C0 x y April 2019 Half adde r CuuDuongThanCong.com S1 Half adde r S C2 C1 C Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Cộng nhiều Bits x0 y0 Full adder x1 y1 Full adder x2 y2 Full adder x3 y3 Full adder April 2019 CuuDuongThanCong.com S0 S1 x3x2x1x0 + y3y2y1y0 C S3S2S1S0 S2 S3 C Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Phép cộng số nguyên Ví dụ: + Tràn kết tràn ngưỡng Cộng toán hạng trái dấu: khơng tràn Cộng tốn hạng dương BK Tràn bit dấu kết Cộng toán hạng âm Tràn bit dấu kết TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt Phép trừ số nguyên Cộng số âm tốn hạng thứ Ví dụ: – = + (–6) +7: –6: +1: 0000 0000 … 0000 0111 1111 1111 … 1111 1010 0000 0000 … 0000 0001 Tràn kết vượt ngưỡng Phép trừ tốn hạng dấu, khơng tràn Trừ toán hạng âm với toán hạng dương Tràn bit dấu kết Trừ toán hạng dương với toán hạng âm Tràn bit dấu kết BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 10 Số vơ hạn (Infinities) Số không hợp lệ (NaNs) Exponent = 111 1, Fraction = 000 ±Infinity Dùng để kiểm tra kết phép tính Exponent = 111 1, Fraction ≠ 000 Not-a-Number (NaN) Số khơng hợp lệ Ví dụ: chia cho zero: 0.0 / 0.0 Dùng để kiểm tra kết phép tính BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 29 Phép cộng Giả sử có phép cộng số thập phân (4 ký số) Điều chỉnh dấu chấm 9.999 × 101 + 0.016 × 101 = 10.015 × 101 Chuẩn hóa kết & kiểm tra ngưỡng Dời số mũ số nhỏ cho đồng số mũ 9.999 × 101 + 0.016 × 101 Cộng hệ số 9.999 × 101 + 1.610 × 10–1 1.0015 × 102 Làm tròn điều chỉnh cần thiết 1.002 × 102 BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 30 Cộng nhị phân Giả sử cộng số nhị phân (4 ký số): Điều chỉnh dấu chấm BK 1.0002 × 2–1 + –0.1112 × 2–1 = 0.0012 × 2–1 Chuẩn hóa kết & kiểm tra ngưỡng Dời số mũ số nhỏ cho đồng số mũ 1.0002 × 2–1 + –0.1112 × 2–1 Cộng hệ số 1.0002 × 2–1 + –1.1102 × 2–2 (0.5 + –0.4375) 1.0002 × 2–4, (nằm ngưỡng cho phép) Làm tròn điều chỉnh cần thiết 1.0002 × 2–4 (khơng cần điều chỉnh) = 0.0625 TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 31 Phần cứng cộng (FP) Phức tạp nhiều so với cộng số nguyên Nếu thực chu kỳ đồng hồ - Chu kỳ dài Dài nhiều so với phép cộng số nguyên Kéo dài thời gian xung đồng hồ ảnh hưởng đến lệnh khác Bộ cộng (FP) thường kéo dài nhiều chu kỳ Có thể cải thiện chế ống BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 32 Phần cứng cộng (FP) Bước Bước Bước Bước BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 33 Phép nhân thập phân Giả sử nhân số thập phân (4 ký số) Cộng số mũ 1.110 × 9.200 = 10.212 10.212 × 105 Chuẩn hóa kết & kiểm tra ngưỡng Nếu dùng số mũ biased, trừ biased vào tổng Số mũ = 10 + –5 = Nhân hệ số 1.110 × 1010 × 9.200 × 10–5 1.0212 × 106 Làm tròn điều chỉnh cần thiết Xác định dấu kết +1.021 × 106 BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 34 Phép nhân nhị phân (FP) Giả sử nhân số thập phân (4 ký số) Cộng số mũ BK 1.1102 × 2–3 1.1102 × 2–3 (khơng đổi: nằm ngưỡng cho phép) Làm tròn điều chỉnh cần thiết 1.0002 × 1.1102 = 1.1102 Chuẩn hóa kết & kiểm tra ngưỡng Unbiased: –1 + –2 = –3 Biased: (–1 + 127) + (–2 + 127) = –3 + 254 – 127 = –3 + 127 Nhân hệ số 1.0002 × 2–1 × –1.1102 × 2–2 (0.5 × –0.4375) 1.1102 × 2–3 (no change) Xác định dấu: (+) × (–) (-) –1.1102 × 2–3 = –0.21875 TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính) https://fb.com/tailieudientucntt 35 Phần cứng Bộ số học (FP) Bộ nhân (FP) Bộ cộng (FP) có độ phức tạp Phần cứng Bộ số học thường thực tác vụ sau: BK Chỉ khác cho phép tính hệ số Cộng, Trừ, Nhân, Chia, Căn, Nghịch đảo Chuyển đổi FP integer Các tác vụ thường kéo dài nhiều chu kỳ xung đồng hồ Cải thiện chế đường ống TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 36 Lệnh FP MIPS Phần cứng FP coprocessor Mở rộng kiến trúc tập lệnh Có ghi FP riêng 32 ghi (đơn): $f0, $f1, … $f31 Chính xác kép cách ghép: $f0/$f1, $f2/$f3, Các lệnh FP thực ghi FP Chương trình thường không thực phép số nguyên liệu FP ngược lại Thanh ghi riêng không làm phức tạp thêm code Các lệnh FP load store lwc1, ldc1, swc1, sdc1 BK Phiên MIPs ISA hỗ trợ 32 × 64-bit FP reg’s Ví dụ: ldc1 $f8, 32($sp) TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 37 Lệnh FP MIPS Phép tính số học (đơn) add.s, sub.s, mul.s, div.s Phép tính số học (kép) add.d, sub.d, mul.d, div.d c.xx.s, c.xx.d (xx is eq, lt, le, …) Gán xóa bit điều kiện code e.g c.lt.s $f3, $f4 Rẽ nhánh theo điều kiện BK Ví dụ: mul.d $f4, $f4, $f6 Lệnh so sánh (đơn/kép) Ví dụ: add.s $f0, $f1, $f6 bc1t, bc1f Ví dụ: bc1t TargetLabel TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 38 Ví dụ: Chuyển °F sang °C C code: float f2c (float fahr) { return ((5.0/9.0)*(fahr - 32.0)); } fahr chứa $f12, kết $f0, số nhớ toàn cục BK Biên dịch thành MIPS code: f2c: lwc1 lwc2 div.s lwc1 sub.s mul.s jr $f16, $f18, $f16, $f18, $f18, $f0, $ra const5($gp) const9($gp) $f16, $f18 const32($gp) $f12, $f18 $f16, $f18 TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 39 Ví dụ: Nhân Ma trận X=X+Y Z Tất ma trận 32 (chính xác kép) 32, phần tử ma trận 64-bit C code: void mm (double x[][], double y[][], double z[][]) { int i, j, k; for (i = 0; i! = 32; i = i + 1) for (j = 0; j! = 32; j = j + 1) for (k = 0; k! = 32; k = k + 1) x[i][j] = x[i][j] + y[i][k] * z[k][j]; } Địa x, y, z chứa $a0, $a1, $a2, i, j, k $s0, $s1, $s2 BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 40 Ví dụ: Nhân Ma trận (tt.) BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 41 Ví dụ: Nhân Ma trận (tt.) BK TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 42 Kết luận ISAs hỗ trợ phép số học Bounded range and precision Số ngun có dấu khơng dấu Floating-point approximation to reals Operations can overflow and underflow MIPS ISA Core instructions: 54 most frequently used BK 100% of SPECINT, 97% of SPECFP Other instructions: less frequent TP.HCM 4/5/2019 CuuDuongThanCong.com Khoa Khoa học & Kỹ thuật Máy tính https://fb.com/tailieudientucntt 43 ... CuuDuongThanCong .com Khoa Khoa học & Kỹ thuật Máy tính https://fb .com/ tailieudientucntt 12 Phần cứng thực nhân BK TP.HCM 4/5/2019 CuuDuongThanCong .com Khoa Khoa học & Kỹ thuật Máy tính https://fb .com/ tailieudientucntt... thuật https://fb .com/ tailieudientucntt Máy tính Full adder (3) C0 x y April 2019 Half adde r CuuDuongThanCong .com S1 Half adde r S C2 C1 C Khoa Khoa học & Kỹ thuật Máy tính https://fb .com/ tailieudientucntt... bước song song: add/shift Một chu kỳ cho phép cộng (tích thành phần) Có thể chấp nhận tần xuất thấp BK TP.HCM 4/5/2019 CuuDuongThanCong .com Khoa Khoa học & Kỹ thuật Máy tính https://fb .com/ tailieudientucntt