1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Kiến trúc máy tính: Chương 3 - Nguyễn Thanh Sơn (2019)

43 88 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 43
Dung lượng 1,32 MB

Nội dung

Bài giảng Kiến trúc máy tính - Chương 3: Phép số học cung cấp cho người học các kiến thức: Phép số học, nhắc lại mạch số, phép trừ số nguyên, xử lý tràn, phần cứng thực hiện nhân, bộ nhân cải thiện, lệnh nhân trong MIPS,... Mời các bạn cùng tham khảo nội dung chi tiết.

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 ... thuật Máy tính https://fb.com/tailieudientucntt 15 Lệnh nhân MIPS  Kết 64-bit, chứa ghi 32 -bit    HI: chứa 32 -bit cao LO: chứa 32 -bit thấp Lệnh nhân  mult rs, rt     multu rs, rt 64-bit... 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... ? ?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. 437 5) 1.1102 × 2? ?3 (no change) Xác định dấu: (+) × (–)  (-) –1.1102 × 2–3

Ngày đăng: 11/01/2020, 18:21

TỪ KHÓA LIÊN QUAN