Bài giảng kiến trúc máy tính chương 3 phép số học

43 252 1
Bài giảng kiến trúc máy tính   chương 3 phép số học

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Computer Architecture Computer Science & Engineering Chương Phép số học BK TP.HCM 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính Mạch Half Adder x y XOR S Half adde r C x S y XOR AND x y S C 0 0 1 1 1 11 September 2015 C AND Khoa Khoa học & Kỹ thuật 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 11 September 2015 Half adder Half adder Khoa Khoa học & Kỹ thuật 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 = 11 September 2015 Khoa Khoa học & Kỹ thuật Máy tính Full adder (3) C0 x y 11 September 2015 Half adde r S1 Half adde r S C2 C1 C Khoa Khoa học & Kỹ thuật Máy tính Cộng nhiều Bits x0 y0 Full adder x1 y1 Full adder x2 y2 Full adder x3 y3 Full adder 11 September 2015 S0 S1 x3x2x1x0 + y3y2y1y0 C S3S2S1S0 S2 S3 Khoa Khoa học & Kỹ thuật Máy tính C Phép cộng số nguyên   Ví dụ: + Tràn kết tràn ngưỡng   Cộng tốn hạng trái dấu: khơng tràn Cộng toá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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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ừ toán hạng dấu, khơng tràn Trừ tố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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 32 Phần cứng cộng (FP) Bước Bước Bước Bước BK TP.HCM 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 (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  1.1102 × 2–3 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính) 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 39 Ví dụ: Nhân Ma trận  X=X+Y×Z  Tất ma trận 32 × 32, phần tử ma trận 64-bit (chính xác kép)  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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 40 Ví dụ: Nhân Ma trận (tt.) BK TP.HCM 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 41 Ví dụ: Nhân Ma trận (tt.) BK TP.HCM 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 42 Kết luận  ISAs hỗ trợ phép số học    Bounded range and precision   Số nguyên 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 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 43 ... học & Kỹ thuật Máy tính 32 Phần cứng cộng (FP) Bước Bước Bước Bước BK TP.HCM 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 33 Phép nhân thập phân  Giả sử nhân số thập phân (4 ký số)   Cộng số. .. reg’s Ví dụ: ldc1 $f8, 32 ($sp) TP.HCM 9/11/2015 Khoa Khoa học & Kỹ thuật Máy tính 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,...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 9/11/2015 Khoa Khoa học & Kỹ

Ngày đăng: 03/01/2016, 10:18

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan