1. Trang chủ
  2. » Giáo án - Bài giảng

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

43 253 1

Đ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

Nội dung

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