Bài giảng Kiến trúc máy tính - Chương 3: Phép số học

Tập các lệnh của 1 máy tính
 Máy tính khác nhau có các tập lệnh
khác nhau
 Tuy vậy, có thể có nhiều điểm giống nhau
 Máy tính ở các thế hệ trước thường có
tập lệnh rất đơn giản
 Lý do: dễ thực hiện
 Một số máy tính hiện nay cũng có tập
lệnh đơn giản 
pdf 43 trang xuanthi 28/12/2022 2780
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 3: Phép số học", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_3_phep_so_hoc.pdf

Nội dung text: Bài giảng Kiến trúc máy tính - Chương 3: Phép số học

  1. Các phép số học  Các phép tính trên số nguyên  Cộng và Trừ  Nhân và Chia  Xử lý tràn  Số thực với dấu chấm di động (Floating- Point)  Cách biểu diễn và các phép tính BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 2
  2. Mạch Half Adder XOR x Half S x S y adde C y r XOR AND x y S C C 0 0 0 0 AND 0 1 1 0 1 0 1 0 1 1 0 1 25 August 2016 Khoa Khoa học & Kỹ thuật Máy tính 4
  3. Full adder (2) C0 x y S C C0 S1 C1 C2 C 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 0 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 0 1 0 1 C = 1 when C1 = 1 or C2 = 1 25 August 2016 Khoa Khoa học & Kỹ thuật Máy tính 6
  4. Cộng nhiều Bits 0 S0 x0 Full adder 0 y0 x3x2x1x0 + S1 y3y2y1y0 x1 Full y1 adder 1 C S3S2S1S0 S2 x2 Full y2 adder 2 S3 x3 Full C y3 adder 3 25 August 2016 Khoa Khoa học & Kỹ thuật Máy tính 8
  5. Phép trừ số nguyên  Cộng số âm của toán hạng thứ 2  Ví dụ: 7 – 6 = 7 + (–6) +7: 0000 0000 0000 0111 –6: 1111 1111 1111 1010 +1: 0000 0000 0000 0001  Tràn nếu kết quả vượt ngưỡng  Phép trừ 2 toán hạng cùng dấu, không bao giờ tràn  Trừ 1 toán hạng âm với 1 toán hạng dương  Tràn nếu bit dấu của kết quả là 0  Trừ 1 toán hạng dương với 1 toán hạng âm  Tràn nếu bit dấu của kết quả là 1 BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 10
  6. Phép nhân  Bắt đầu bằng phép nhân thuần túy multiplicand 1000 multiplier × 1001 1000 0000 0000 1000 product 1001000 Length of product is the sum of operand lengths BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 12
  7. Bộ nhân cải thiện  Các bước song song: add/shift  Một chu kỳ cho mỗi phép cộng (tích thành phần)  Có thể chấp nhận khi tần xuất thấp BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 14
  8. Lệnh nhân trong MIPS  Kết quả sẽ là 64-bit, chứa trong 2 thanh 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 kết quả chứa trong HI/LO  mfhi rd / mflo rd  Chuyển từ HI/LO vào rd  Có thể kiểm tra giá trị HI xem kết quả phép nhân có tràn?  mul rd, rs, rt  32 bits thấp của kết quả phép nhân –> rd BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 16
  9. Phần cứng thực hiện chia Initially divisor in left half Initially dividend BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 18
  10. Bộ chia nhanh  Không thể thực hiện song song như trong bộ nhân  Dấu trong mỗi phép trừ thành phần là điều kiện  Có thể tạo bộ chia nhanh (e.g. SRT devision) BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 20
  11. Dấu chấm di động (Floating Point)  Biểu diễn các số khác số nguyên (số thực)  Bao gồm cả số rất nhỏ lẫn số rất lớn  Giống như biểu diễn số trong khoa học 56  –2.34 × 10 –4  +0.002 × 10 9  +987.02 × 10  Kiểu nhị phân yyyy  ±1.xxxxxxx2 × 2  Kiểu float và double trong ngôn ngữ C BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 22
  12. Dạng định chuẩn theo IEEE  S: bit dấu (0 (+) , 1 (-))  Normalized significand: 1.0 ≤ |significand| < 2.0  Luôn có 1 bit trước dấu chấm, nên bit này thường ẩn  Significand is Fraction with the “1.” restored  Exponent: excess representation: actual exponent + Bias  Ensures exponent is unsigned  Single: Bias = 127; Double: Bias = 1203 BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 24
  13. Mức độ chính xác  Mang tính tương đối  Xác định bởi các bit fraction –23  Đơn: khoảng 2  Tương đương với 23 × log102 ≈ 23 × 0.3 ≈ 6: chính xác đến 6 số (hệ thập phân) –52  Kép: khoảng 2  Tương đương với 52 × log102 ≈ 52 × 0.3 ≈ 16: chính xác đến 16 số (hệ thập phân) BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 26
  14. Ví dụ: (tt.)  Cho biết số thực thập phân của một số biểu diễn bằng dấu chấm di động (đơn) sau: 11000000101000 00  S = 1  Fraction = 01000 002  Fxponent = 100000012 = 129 1 (129 – 127)  x = (–1) × (1 + 012) × 2 = (–1) × 1.25 × 22 BK = –5.0 TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 28
  15. Phép cộng  Giả sử có phép cộng 2 số thập phân (4 ký số) 1 –1  9.999 × 10 + 1.610 × 10  1. Điều chỉnh dấu chấm  Dời số mũ của số nhỏ hơn cho đồng số mũ 1 1  9.999 × 10 + 0.016 × 10  2. Cộng hệ số 1 1 1  9.999 × 10 + 0.016 × 10 = 10.015 × 10  3. Chuẩn hóa kết quả & kiểm tra ngưỡng 2  1.0015 × 10  4. Làm tròn và điều chỉnh nếu cần thiết 2  1.002 × 10 BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 30
  16. Phần cứng bộ cộng (FP)  Phức tạp hơn rất nhiều so với bộ cộng số nguyên  Nếu thực hiện trong 1 chu kỳ đồng hồ - Chu kỳ quá dài  Dài hơn nhiều so với các phép cộng số nguyên  Kéo dài thời gian xung đồng hồ ảnh hưởng đến các lệnh khác  Bộ cộng (FP) thường kéo dài nhiều chu kỳ  Có thể cải thiện bằng cơ chế ống BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 32
  17. Phép nhân thập phân  Giả sử nhân 2 số thập phân (4 ký số) 10 –5  1.110 × 10 × 9.200 × 10  1. Cộng số mũ  Nếu dùng số mũ biased, trừ biased vào tổng  Số mũ mới là = 10 + –5 = 5  2. Nhân hệ số 5  1.110 × 9.200 = 10.212 10.212 × 10  3. Chuẩn hóa kết quả & kiểm tra ngưỡng 6  1.0212 × 10  4. Làm tròn và điều chỉnh nếu cần thiết  5. Xác định dấu của kết quả 6  +1.021 × 10 BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 34
  18. Phần cứng Bộ số học (FP)  Bộ nhân (FP) và Bộ cộng (FP) có độ phức tạp như nhau  Chỉ khác nhau cho phép tính hệ số  Phần cứng Bộ số học thường thực hiện các tác vụ sau:  Cộng, Trừ, Nhân, Chia, Căn, Nghịch đảo  Chuyển đổi FP  integer  Các tác vụ này thường kéo dài trong nhiều chu kỳ xung đồng hồ BK  Cải thiện bằng cơ chế đường ống TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 36
  19. Lệnh FP trong MIPS  Phép tính số học (đơn)  add.s, sub.s, mul.s, div.s  Ví dụ: add.s $f0, $f1, $f6  Phép tính số học (kép)  add.d, sub.d, mul.d, div.d  Ví dụ: mul.d $f4, $f4, $f6  Lệnh so sánh (đơn/kép)  c.xx.s, c.xx.d (xx is eq, lt, le, )  Gán hoặc xóa bit điều kiện code  e.g. c.lt.s $f3, $f4  Rẽ nhánh theo điều kiện  bc1t, bc1f  Ví dụ: bc1t TargetLabel BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 38
  20. Ví dụ: Nhân Ma trận  X = X + Y × Z  Tất cả đều là ma trận 32 × 32, các phần tử của 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 chỉ của x, y, z chứa trong $a0, $a1, $a2, và i, j, k trong $s0, $s1, $s2 BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 40
  21. Ví dụ: Nhân Ma trận (tt.) BK TP.HCM 25-Aug-16 Khoa Khoa học & Kỹ thuật Máy tính 42