Xem mẫu

  1. Kiến trúc tập lệnh1
  2. Nội dung ¡ Xem lại cách thực thi một chương trình ¡ Phân loại lệnh trong MIPS ¡ Truy cập bộ nhớ trong MIPS ¡ Chi tiết về các toán tử – Add, sub, etc. ¡ Chi tiết về các lệnh chuyển đổi dữ liệu – Load, store… ¡ Chi tiết về các lệnh điều khiển – Jump, branch if equal…
  3. Thực thi lệnh Today we’re going to learn the details!
  4. Thực thi chương trình Bộ xử lý thực thi chương trình như thế nào? 1. Tải lệnh 2. Tìm ra toán tử được sử dụng 3. Tìm ra dữ liệu nào được sử dụng 4. Thực hiện tính toán 5. Tìm lệnh tiếp theo Lặp lại quá trình … Bài giảng nhấn mạnh sự thực thi trong bộ xử lý MIPS
  5. Ví dụ: Tập lệnh MIPS Định dạng trường lệnh 3 toán hạng : Complex  operation many  instructions  with temporary  values.
  6. Phân loại tập lệnh Toán tử – Số học (add, multiply, subtract, divide, …) – Logic (and, or, not, xor, …) Dịch chuyển dữ liệu – Move (register to register) – Load (memory to register) – Store (register to memory) Điều khiển dữ liệu – Branch (có điều kiện, e.g., , ==) – Jump (không điều kiện, e.g., goto)
  7. Bảng tham khảo định dạng lệnh
  8. Tập thanh ghi trong MIPS Câu hỏi: Tại sao giá trị thanh ghi R0 luôn bằng 0? 32 Thanh ghi đa dụng. – Kí hiệu R0…R31 hoặc $0…$31 Trả lời: Luôn cần – Các biến phải lưu trên thanh ghi. giá trị 0 trong một chương trình Một số trường hợp đặc biệt. Move:  – R0 luôn có giá trị zero (0) add dest, src, R0 – R29 là thanh ghi con trỏ ngăn xếp – R31 được sử dụng cho thủ tục quay lại địa chỉ Một số thanh ghi đặc biệt. – PC (Program Counter): Thanh ghi lệnh hiện tại – HI & LO: lưu kết quả của phép nhân – Thanh ghi dấu phẩy động – Một số thanh ghi điều khiển
  9. Tổ chức bộ nhớ Bộ nhớ là một mảng 1 chiều lưu trữ dữ liệu • Mỗi ô nhớ có kích thước 1 byte (8 bits) • Địa chỉ bộ nhớ trong mảng Địa chỉ bộ nhớ được đánh chỉ số trên mảng • Máy tính 32 bits, có 232 ô nhớ (4GB) • Máy tính 64‐bit, có 264 ô nhớ (16EB) – 64-bit x86 lên tới ~48‐bits một ô nhớ (4PB).
  10. Dữ liệu: Kiểu và kích thước Các kiểu dữ liệu trong MIPS được định nghĩa là 1 từ – Một từ gồm 32 bits = 4 bytes – 232 bytes = 230 words: addresses 0, 4, 8, … Câu hỏi: Đâu là 2 bit cuối cùng trong một địa chỉ từ ?
  11. Truy nhập alignment (Access alignment) • Địa chỉ Alignment : Tạo trên 4 byte (word) ở đường biên (e.g., 0, 4, 8, 12…) – Dữ liệu được lưu trữ ở địa chỉ byte chia hết cho kích thước • Địa chỉ Unalignment thì không (e.g., 1, 3, 7, 63) • Một số kỹ thuật hỗ trợ truy cập Unaligment (not MIPS) – Phần cứng có thể chuyển đổi thành đa truy cập định tuyến ( complex) – Phần cứng có thể dò được và có phần mềm cố định truy cập không định tuyến (slow) • Một số nhược điểm – 2 truy cập bộ nhớ cộng gộp tạo ra dữ liệu unaligned – Intel cung cấp hỗ trợ thực thi mức cao trên vào năm 2010 (Nehalem)
  12. Processor execution model  ¡Bộ xử lý thực thi lệnh theo 2 chế Question:  Why do we  care about in‐ độ sequential và order and  atomic  execution? atomic Answer: Without it we  could not  understand  the program. – Sequential:
  13. Máy tính lưu trữ chương trình Chương trình và dữ liệu được lưu trữ trong bộ nhớ – Các lệnh phải được nạp từ bộ nhớ để thực thi – Dữ liệu phải được nạp từ bộ nhớ để tính toán
  14. Ví dụ: Các chỉ thị lệnh Phép toán (Data operations) – Số học (add, multiply, subtract, divide, 1. Data operations: …) add/sub – Logic (and, or, not, xor, …) Dịch chuyển dữ liệu (Data transfer) – Move (register to register) 2. Data transfers: load  – Load (memory to register) word/store word – Store (register to memory) Rẽ nhánh (Sequencing) 3. Sequencing:  – Branch (conditional, e.g., , ==) Branch/jump – Jump (unconditional, e.g., goto)
  15. Chi tiết về các chỉ thị lệnh 1. Program Counter (PC) lưu trữ địa chỉ lệnh. 2. Các lệnh được nạp từ bộ nhớ vào thanh ghi lệnh. 3. Bộ điều khiển giải mã lệnh và báo cho ALU và tệp thanh ghi phải làm gì. 4. ALU thực thi lệnh và kết quả được chuyển lại tệp thanh ghi. 5. Bộ điều khiển cập nhật lại giá trị của PC cho lệnh tiếp theo.
  16. Add/sub example (1 of 2)
  17. Add/sub example (2 of 2) Bộ đếm chương  trình (PC) nạp lệnh  từ thanh ghi lệnh Control báo cho  ALU và thanh ghi  dữ liệu (Register  File) phải làm gì.  ALU ghi kết quả vào  Register File.
  18. Thực hành: add/sub f=(g+h) ‐(i+j) R3=f R4=g R5=h R6=i R7=j
  19. Các lệnh dịch chuyển dữ liệu
  20. Chi tiết về dịch chuyển dữ liệu 1. ALU tạo ra địa chỉ 2. Địa chỉ gửi tới thanh ghi địa chỉ bộ nhớ (Memory Address Register) 3. Kết quả xác định hướng dịch chuyến đi/ đến được lưu trữ trên thanh ghi dữ liệu bộ nhớ (Memory Data Register) 4. Dữ liệu từ bộ nhớ có thể được ghi lại trên tệp thanh ghi (Register File) hoặc ghi vào bộ nhớ.
nguon tai.lieu . vn