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 3080
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