Xem mẫu

  1. Khoa KH & KT Máy tính Boä moân Kyõ thuaät Maùy tính Phaïm Töôøng ng Haûi Nguyeãn Quoác Tuaán
  2. Tài liệu tham khảo “Computer Organization and Design: the hardware/software interface”, John L. Hennessy & David A. Patterson, Second Edition, MORGAN KAUFMANN PUBLISHERS, INC. 1998 “Computer Architecture: a quantitative approach”, John L. Hennessy & David A. Patterson, Third Edition, MORGAN KAUFMANN PUBLISHERS, INC. 2002 Kiến trúc Máy tính - Chap 04 2
  3. Chương 4. Kiến trúc Máy tính - Chap 04 3
  4. 4.1 Dẫn nhập Máy tính biểu diễn thông tin dưới dạng nhị phân Các đại lượng số đếm cũng biểu diễn dưới dạng nhị phân Một số câu hỏi thường gặp • Cách biểu diễn số đếm trên máy tính ? • Các giới hạn trong biểu diễn số đếm ? • Cách tính toán trên số nhị phân ? • Số thực ? v.v... Nội dung của chương này bao gồm • Biểu diễn số đếm trên máy tính • Các giải thuật tính toán • Phần cứng hiện thực giải thuật tính toán • Nhóm lệnh tính toán Kiến trúc Máy tính - Chap 04 4
  5. 4.2 Số nguyên có dấu và không dấu MIPS biểu diễn số nguyên theo từ (word) có kích thước 32 bit Td. biểu diễn giá trị 10112 0000 0000 0000 0000 0000 0000 0000 1011 • Bit trọng số thấp nhất (least significant bit) nằm bên phải cùng • Bit trọng số cao nhất (most significant bit) nằm bên trái cùng Tầm vực giá trị biểu diễn ở số nguyên không dấu • Nhỏ nhất là 0 , lớn nhất là 232 – 1 (4.294.967.295) 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111 Các bit không có nghĩa là các bit 0 nằm ở bên trái của số đếm Kiến trúc Máy tính - Chap 04 5
  6. ... MIPS biểu diễn số nguyên âm theo bù 2 • Bit dấu (sign bit) là bit nằm phía trái cùng • Tầm vực giá trị biểu diễn từ - 2(32-1) cho đến 2(32-1) -1 1000 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 1111 1111 1111 Vấn đề mở rộng dấu (sign extension) • Td. biểu diễn giá trị -5 toán hạng 8 bit 1111 1011 toán hạng 16 bit 1111 1111 1111 1011 toán hạng 32 bit 1111 1111 1111 1111 1111 1111 1111 1011 • Lưu ý về các bit không có nghĩa ? Các lệnh liên quan đến số nguyên có dấu và không dấu • lb và lbu , slt và sltu , slti và sltiu Kiến trúc Máy tính - Chap 04 6
  7. 4.3 Cộng và trừ Cộng trừ nhị phân theo số bù 2 Kết quả của phép cộng/trừ vượt quá giới hạn biểu diễn ? • Tràn bit (carry) Phép toán A B Kết quả • Tràn dấu (overflow) A + B ≥ 0 ≥ 0 < 0 • Điều kiện A + B < 0 < 0 ≥ 0 gây tràn dấu A - B ≥ 0 < 0 < 0 • Xử lý tràn ? A - B < 0 ≥ 0 ≥ 0 Các lệnh số học • Cộng/trừ số nguyên có dấu add , addi , sub sinh ra ngoại lệ (exception) thông báo đến bộ điều khiển • Cộng/trừ số nguyên không dấu addu , addiu , subu Thanh ghi EPC (exception program counter) chứa địa chỉ của câu lệnh sinh ra ngoại lệ • Lệnh mfc0 reg , $epc (move from system control) Kiến trúc Máy tính - Chap 04 7
  8. ... Phân tích đoạn chương trình sau addu $t0 , $t1 , $t2 xor $t3 , $t1 , $t2 slt $t3 , $t3 , $zero bne $t3 , $zero , No_overflow xor $t3 , $t0 , $t1 slt $t3 , $t3 , $zero bne $t3 , $zero , Overflow Kiến trúc Máy tính - Chap 04 8
  9. ... Phân tích đoạn chương trình sau addu $t0 , $t1 , $t2 nor $t3 , $t1 , $zero sltu $t3 , $t3 , $t2 bne $t3 , $zero , Overflow Kiến trúc Máy tính - Chap 04 9
  10. 4.4 Các phép toán luận lý Các phép toán luận lý cơ bản • and , andi • or , ori Các lệnh dịch (shift) • Dịch luận lý (logical shift) sll rd , rt , shamt và sllv rd , rt , rs srl rd , rt , shamt và srlv rd , rt , rs • Dịch số học (arithmetic shift) sra rd , rt , shamt và srav rd , rt , rs Dạng thức lệnh dịch trái luận lý • Td. sll $t2 , $s0 , 8 0 0 16 10 8 0 op rs rt rd shamt funct Kiến trúc Máy tính - Chap 04 10
  11. 4.5 Đơn vị số học – luận lý Đơn vị số học – luận lý (ALU – Arithmetic Logic Unit) đảm nhận việc thực hiện các phép toán cho bộ xử lý MIPS là bộ xử lý có độ dài từ là 32 bit nên cần đơn vị ALU 32 bit Các mạch phần cứng cơ bản d Cin a 0 c a Sum b 1 b + Cout Kiến trúc Máy tính - Chap 04 11
  12. ... ALU 1 bit ALU 32 bit Cin Operation Cin Operation a0 Cin Result0 ALU0 b0 Cout a 0 a1 Cin Result1 ALU1 1 Result b1 Cout a2 Cin Result2 ALU2 b + 2 b2 Cout Cout a31 Cin Result31 ALU31 b31 Cout Kiến trúc Máy tính - Chap 04 12
  13. ... Tinh chỉnh đơn vị ALU B invert Cin Operation a 0 B invert Cin Operation 1 Result a 0 1 b 0 + 2 Result 1 Cout b 0 + 2 1 Less 3 Cout Kiến trúc Máy tính - Chap 04 13
  14. ... Tinh chỉnh đơn vị ALU (tt) B invert Cin Operation B invert Cin Operation a0 Cin a b0 ALU0 Result0 0 Less C out 1 a1 Cin b1 Result1 ALU1 Result 0 Less C out b 0 + 2 a2 b2 Cin ALU2 Result2 1 0 Less C Less 3 Set out Overflow Overflow a31 Cin Result31 b31 ALU31 Overflow Less C Set 0 out Kiến trúc Máy tính - Chap 04 14
  15. ... B invert Cin Operation Tinh chỉnh đơn vị ALU (tt) a0 Cin Result0 b0 ALU0 Less C out ALU operation a1 Cin Result1 a b1 ALU1 Zero 0 Less C out Zero ALU Result Overflow a2 Cin Result2 b b2 ALU2 0 Less C out Carry out Result31 a31 Cin Overflow b31 ALU31 Less C Set 0 out Kiến trúc Máy tính - Chap 04 15
  16. 4.6 Mạch nhân Phép toán nhân Số bị nhân (Multiplicand) 10002 Số nhân (Multiplier) 10012 1000 0000 0000 1000 Tích (Product) 10010002 Hiện thực • Bằng chương trình dựa trên các phép toán cộng/trừ • Bằng mạch phần cứng Kiến trúc Máy tính - Chap 04 16
  17. ... Mạch nhân dạng 1 • Sơ đồ khối • Giải thuật • Minh họa Kiến trúc Máy tính - Chap 04 17
  18. ... Mạch nhân dạng 2 • Sơ đồ khối • Giải thuật • Minh họa Kiến trúc Máy tính - Chap 04 18
  19. ... Mạch nhân dạng 3 • Sơ đồ khối • Giải thuật • Minh họa Kiến trúc Máy tính - Chap 04 19
  20. ... Nhân số nguyên có dấu • Nhân phần trị tuyệt đối, sau đó xác định dấu cho tích số • Giải thuật Booth: căn cứ ai ai-1 Thực hiện trên chuỗi bit 1 ở số nhân 0 0 Không làm gì cả 0 1 Cộng thêm số bị nhân 1 0 Trừ đi số bị nhân 1 1 Không làm gì cả Nhân trong tập lệnh MIPS • Tích số là 1 giá trị 64 bit được chứa trong cặp thanh ghi hi và lo • Lệnh nhân mult rs , rt multu rs , rt • Lệnh chuyển dữ liệu tích số mfhi rd mflo rd Kiến trúc Máy tính - Chap 04 20
nguon tai.lieu . vn