Bài giảng Kiến trúc máy tính - Chương IV: Kiến trúc tập lệnh (ISA) - Nguyễn Quý Sỹ

pdf 60 trang ngocly 2540
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 IV: Kiến trúc tập lệnh (ISA) - Nguyễn Quý Sỹ", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_iv_kien_truc_tap_lenh_is.pdf

Nội dung text: Bài giảng Kiến trúc máy tính - Chương IV: Kiến trúc tập lệnh (ISA) - Nguyễn Quý Sỹ

  1. Generated by Foxit PDF Creator © Foxit Software For evaluation only. HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Posts and Telecommunications Institute of Technology KIẾN TRÚC MÁY TÍNH Chương IV: Kiến trúc tập lệnh (ISA) Giảng viên: TS. Nguyễn Quý Sỹ Email: synq@ptit.edu.vn Hà nội, 17 December 2009
  2. Generated by Foxit PDF Creator © Foxit Software For evaluation only. Nội dung 1. Giới thiệu 2. Phân loại kiến trúc tập lệnh 3. Chế độ định địa chỉ 4. Các thanh ghi của tập lệnh 5. Khuôn dạng lệnh 6. Các kiểu lệnh 7. Bộ biên dịch Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  3. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 1. Giới thiệu • Các máy đa mức hiện đại Đây là mức ngôn ngữ máy Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  4. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 1. Giới thiệu (t) • Kiến trúc tập lệnh là cấu trúc của một máy tính mà người lập trình ngôn ngữ máy phải hiểu để viết một chương trình chuẩn cho máy đó. – Đây là phát biểu của IBM vào năm 1964 khi giới thiệu kiến trúc IBM 360, kiến trúc này được rút ra từ 7 tập lệnh IBM khác nhau • Ngôn ngữ duy nhất mà một máy tính nhận dạng được khi chạy là ngôn ngữ máy của nó hoặc kiến trúc tập lệnh. • Kiến trúc tập lệnh cũng mô tả máy mà một người thiết kế phần cứng cần phải hiểu để thiết kế ra được một sản phẩm máy tính chuẩn. Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  5. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 1. Giới thiệu (t) • Kiến trúc tập lệnh dùng như là một giao diện giữa phần cứng và phần mềm (Là một ngôn ngữ cả hai đều phải hiểu) • Kiến trúc tập lệnh cung cấp cơ chế để phần mềm “nói” với phần cứng cái cần làm. High level language code : C, C++, Java, Fortan, compiler Assembly language code: architecture specific statements assembler Machine language code: architecture specific bit patterns software instruction set level hardware Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  6. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 1. Giới thiệu (t) • Một kiến trúc sư máy tính phải bàn bạc với cả hai: – người viết chương trình biên dịch – và người thiết kế phần cứng khi thiết kế một máy kết hợp các thuộc tính của cả phần cứng và phần mềm ở mức ISA: – Định nghĩa về chức năng các tác vụ, các chế độ và các vị trí lưu trữ mà phần cứng hỗ trợ – Mô tả chính xác gọi và truy cập bằng phần mềm như thế nào • Thông thường, nên tương thích ngược để có thể chạy các chương trình đang có. Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  7. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 1. Giới thiệu (t) • Một ISA tốt? – Khả năng thực thi • Một ISA tốt nên định nghĩa một tập các lệnh sao cho các các lệnh có thể thực thi được hiệu quả hiện tại và tương lai, có kết quả bằng các thiết kế mang lại lợi nhuận qua nhiều thế hệ • Các thế hệ x86 (IA32): 8086, 286, 386, 486, Pentium, PentiumII, PentiumIII, Pentium4, – Khả năng lập trình một target (toolkit) rõ ràng cho mã được biên dịch. Dễ dàng biểu diễn các chương trình hiệu quả Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  8. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 1. Giới thiệu (t) • Các đơn vị đo ISA – Tính trực giao • Không có các thanh ghi đặc biệt, vài trường hợp đặc biệt, tất cả các chế độ toán hạng có thể sử dụng với dạng dữ liệu hoặc dạng lệnh bất kỳ – Tính đầy đủ • Hỗ trợ đa dạng các tác vụ và các ứng dụng – Tính cân đối • Không quá tải ý nghĩa các trường lệnh – Tổ chức hợp lý • Các yêu cầu tài nguyên dễ xác định – Dễ biên dịch – Dễ thực hiện Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  9. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 1. Giới thiệu (t) • Các vấn đề khi thiết kế tập lệnh – Các toán hạng được lưu trữ ở đâu? • Các thanh ghi, bộ nhớ, ngăn xếp, tích luỹ – Có bao nhiêu toán hạng? • 0, 1, 2 hay là 3 – Vị trí toán hạng được xác định như thế nào? • Thanh ghi, trực tiếpgián tiếp, – Kiểu và kích cỡ toán hạng được hỗ trợ là gì? • Byte, Int, Float, Double, String, Vector – Những tác vụ nào được hỗ trợ? • Add, Sub, Mul, Move, Compare Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  10. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 1. Giới thiệu (t) • Sự phát triển của kiến trúc tập lệnh Single Accumulator (EDSAC 1950) Accumulator + Index Registers (Manchester Mark I, IBM 700 series 1953) Separation of Programming Model from Implementation High-level Language Based Concept of a Family (B5000 1963) (IBM 360 1964) General Purpose Register Machines Complex Instruction Sets Load/Store Architecture (Vax, Intel 8086 1977-80) (CDC 6600, Cray 1 1963-76) RISC Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông (Mips,Sparc,88000,IBM RS6000, . . .1987+)
  11. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 1. Giới thiệu (t) • Mã mức ISA là sản phẩm của một bộ biên dịch. • Người viết bộ biên dịch phải biết mô hình bộ nhớ là gì, có các thanh ghi nào, các dạng dữ liệu và các lệnh nào có thể sử dụng được. – Các mô hình bộ nhớ – Các thanh ghi – Các kiểu dữ liệu – Các khuôn dạng lệnh – Các kiểu lệnh – Luồng điều khiển Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  12. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 1. Giới thiệu (t) • Các chế độ ISA: Ở mức ISA level, hầu hết các máy hoạt động trên 2 chế độ: – Chế độ Kernel chạy hệ điều hành cho phép các tất cả các lệnh được thực hiện. • Lập trình các hệ thống • Thao tác cache trực tiếp • Các lệnh thiết bị ngoại vi trực tiếp • Kiến tạo thư viện hệ thống – Chế độ người sử dụng chạy chế độ ứng dụng và không cho phép thi hành các lệnh nhạy cảm nào đó . • Lập trình ứng dụng • Thi hành các ứng dụng • Word, Excel • Applets • Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  13. Generated by Foxit PDF Creator © Foxit Software For evaluation only. Nội dung 1. Giới thiệu 2. Phân loại kiến trúc tập lệnh 3. Chế độ định địa chỉ 4. Các thanh ghi của tập lệnh 5. Khuôn dạng lệnh 6. Các kiểu lệnh 7. Bộ biên dịch Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  14. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh • Phân lớp các kiến trúc tập lệnh – Tích luỹ (trước 1960): 1 địa chỉ add A acc ¬ acc + mem[A] – Stack (1960s to 1970s): 0 địa chỉ add tos ¬ tos + next – Bộ nhớ-Bộ nhớ (1970s to 1980s): 2 địa chỉ add A, B mem[A] ¬ mem[A] + mem[B] 3 địa chỉ add A, B, C mem[A] ¬ mem[B] + mem[C] – Thanh ghi-Bộ nhớ (1970s đến nay): 2 địa chỉ add R1, A R1 ¬ R1 + mem[A] load R1, A R1 ¬ mem[A] – Thanh ghi/Thanh ghi (Nạp/lưu trữ) (1960s tới nay): 3 địa chỉ add R1, R2, R3 R1 ¬ R2 + R3 load R1, R2 R1 ¬ mem[R2] store R1, R2 mem[R1] ¬ R2 Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  15. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc thanh ghi tích luỹ – add A, sub A, mult A, div A, . . . – load A, store A • Ví dụ: A*B - (A+C*B) load B mul C D add A B B*C A+B*C A+B*C A A*B kết quả store D load A mul B sub D Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  16. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc thanh ghi tích luỹ – Ưu điểm • Yêu cầu phần cứng rất thấp • Dễ hiểu và dễ thiết kế – Nhược điểm • Thanh ghi tích luỹ trở thành nút cổ chai • Khả năng thấp đối với cơ chế sóng song và kỹ thuật đường ống • Lưu lượng bộ nhớ cao Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  17. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc ngăn xếp – Tập lệnh: • add, sub, mult, div, . . . • push A, pop A – Example: A*B - (A+C*B) push A push B mul push A push C push B mul add sub Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  18. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc ngăn xếp – Ưu điểm • Mật độ nguồn tốt (đỉnh của ngăn xếp) • Yêu cầu phần cứng thấp • Dễ viết bộ biên dịch đơn giản hơn cho các kiến trúc ngăn xếp – Nhược điểm • Ngăn xếp trở thành nút cổ chai • Ít khả năng cho cơ chế song song và đường ống • Dữ liệu không luôn luôn ở đỉnh của ngăn xếp khi cần, vì vậy các lệnh bổ sung như TOP và SWAP được cần tới • Khó viết một bộ biên dịch tối ưu cho các kiến trúc ngăn xếp Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  19. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc bộ nhớ-bộ nhớ – Tập lệnh • (3 toán hạng) add A, B, C sub A, B, C mul A, B, C • (2 toàn hạng) add A, B sub A, B mul A, B • Ví dụ: A*B - (A+C*B) 3 toán hạng 2 toán hạng mul D, A, B mov D, A mul E, C, B mul D, B add E, A, E mov E, C sub E, D, E mul E, B add E, A sub E, D Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  20. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc bộ nhớ-bộ nhớ – Ưu điểm • Yêu cầu ít lệnh (đặc biệt nếu 3 toán hạng) • Dễ viết các bộ biên dịch (đặc biệt nếu 3 toán hạng) – Nhược điểm • Lưu lượng bộ nhớ rất cao (đặc biệt nếu 3 toán hạng) • Số lượng các xung CLK trên một lệnh thay đổi • Với 2 toán hạng, yêu cầu dịch chuyển dữ liệu nhiều hơn Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  21. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc thanh ghi-bộ nhớ – Tập lệnh: • add R1, A sub R1, A mul R1, B • load R1, A store R1, A – Ví dụ: A*B - (A+C*B) load R1, A mul R1, B /* A*B */ store R1, D load R2, C mul R2, B /* C*B */ add R2, A /* A + CB */ sub R2, D /* AB - (A + C*B) */ Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  22. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc thanh ghi-bộ nhớ – Ưu điểm • Một số dữ liệu có thể truy cập mà không cần nạp trước • Khuôn dạng lệnh dễ mã hoá • Mật độ mã tốt – Nhược điểm • Các toán hạng không tương đương (trực giao yếu) • Số lượng các CLK/1 lệnh thay đổi • Có thể giới hạn số lượng các thanh ghi Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  23. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc nạp-lưu trữ – Tập lệnh: • add R1, R2, R3 sub R1, R2, R3 mul R1, R2, R3 • load R1, &A store R1, &A move R1, R2 – Ví dụ: A*B - (A+C*B) • load R1, &A • load R2, &B • load R3, &C • mul R7, R3, R2 /* C*B */ • add R8, R7, R1 /* A + C*B */ • mul R9, R1, R2 /* A*B */ • sub R10, R9, R8 /*A*B - (A+C*B) */ Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  24. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc nạp-lưu trữ – Ưu điểm • Mã hoá lệnh đơn giản, có độ dài cố định • Các lệnh thực hiện trong số lượng chu kỳ CLK giống nhau • Tương đối dễ dàng thực hiện kỹ thuật đường ống – Nhược điểm • Tổng số lệnh cao hơn • Không phải tất cả các lệnh cần 3 toán hạng • Phụ thuộc vào bộ biên dịch tốt Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  25. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 2. Phân loại kiến trúc tập lệnh (t) • Kiến trúc các thanh ghi – Thuận lợi • Nhanh hơn bộ nhớ cache hoặc bộ nhớ chính (không có chế độ địa chỉ hoặc nhãn) • Xác định (không miss) • Có thể tái tạo (nhiều cổng đọc) • Bộ nhận dạng ngắn (thông thường 3-8 bit) • Lưu lượng bộ nhớ giảm – Bất lợi • Cần lưu lại và khôi phục các gọi thủ tục và chuyển đổi ngữ cảnh • Không thể lấy địa chỉ của một thanh ghi (đối với con trỏ) • Kích thước cố định (không thể lưu trữ các chuỗi hoặc các cấu trúc hiệu quả) • Bộ biên dịch phải quản lý • Số lượng thanh ghi hữu hạn Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  26. Generated by Foxit PDF Creator © Foxit Software For evaluation only. Nội dung 1. Giới thiệu 2. Phân loại kiến trúc tập lệnh 3. Định địa chỉ 4. Các thanh ghi của tập lệnh 5. Khuôn dạng lệnh 6. Các kiểu lệnh 7. Bộ biên dịch Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  27. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 3. Định địa chỉ • Mô hình bộ nhớ IS – Bytes ® 8 bits-là kích thước ô chung nhất – Các ô ® phần nhỏ nhất có thể truy cập của bộ nhớ • 1 to 64 Bits – Words ® độ rộng của bus dữ liệu, độ rộng của bộ nhớ • Trước đây, 2-byte, thậm chí các từ 1-byte là phổ biến • Hiện nay, các từ 4-byte và 8-byte là phổ biến nhất – Các từ thường được sắp xếp với các biên tự nhiên của nó. • Đó là một từ 4-byte phải bắt đầu tại 0, 4, 8, etc. và không ở 1, 2, 3, 5, 6, 7, etc. • Đó là một từ 8-byte phải bắt đầu tại 0, 8, 16, etc. Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  28. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 3. Định địa chỉ (t) • Định địa chỉ Big Edian – Địa chỉ byte nhị phân x x00 là ở vị trí có trọng số cao nhất (MSB) của từ 32 bit (IBM, Motorola, Sun, HP) LSB MSB 1 2 3 4 5 6 7 8 Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  29. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 3. Định địa chỉ (t) • Định địa chỉ Little Edian – Địa chỉ byte nhị phân x x00 là ở vị trí có trọng số thấp nhất (LSB) của từ 32 bit (Intel, DEC) MSB LSB 3 2 1 0 7 6 5 4 • Người lập trình cần cẩn thận khi chuyển giao dữ liệu nhị phân giữa các máy Big Edian và Little Edian Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  30. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 3. Định địa chỉ (t) • Chuẩn trực toán hạng – Truy cập tới một toán hạng có kích thước S byte ở địa chỉ byte A được gọi là được chuẩn trực nếu A mod S = 0. 40 41 42 43 44 D0 D1 D2 D3 D0 D1 D2 D3 Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  31. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 3. Định địa chỉ (t) • Chuẩn trực không giới hạn – Nếu kiến trúc không giới hạn truy cập bộ nhớ để được trực chuẩn thì • Phần mềm đơn giản • Phần cứng phải phát hiện không trực chuẩn và thực hiện hai truy cập bộ nhớ • Logic để thực hiện phát hiện tốn kém • Có thể làm chậm lại tất cả các tham chiếu • Thỉnh thoảng yêu cầu tương thích ngược Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  32. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 3. Định địa chỉ (t) • Chuẩn trực bị giới hạn – Nếu kiến trúc giới hạn các truy nhập bộ nhớ để được trực chuẩn thì • Phần mềm phải đảm bảo trực chuẩn • Phần cứng phát hiện các truy cập không trực chuẩn và các bẫy • Không sử dụng thời gian mở rộng khi dữ liệu được trực chuẩn – Bởi vì tôi muốn làm trường hợp chung nhanh, có trực chuẩn bị giới hạn thường là một lựa chọn tốt hơn, nếu tương thích không phải là một trở ngại Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  33. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 3. Định địa chỉ (t)-Các chế độ định địa chỉ Chế độ định địa chỉ Ví dụ Hành dộng 1. Register direct Add R4, R3 R4 <- R4 + R3 2. Immediate Add R4, #3 R4 <- R4 + 3 3. Displacement Add R4, 100(R1) R4 <- R4 + M[100 + R1] 4. Register indirect Add R4, (R1) R4 <- R4 + M[R1] 5. Indexed Add R4, (R1 + R2) R4 <- R4 + M[R1 + R2] 6. Direct Add R4, (1000) R4 <- R4 + M[1000] Theo nghiên cứu của Clark and Emer, các chế độ 1-4 chiếm 7. Memory Indirect Add93% R4, củ @(R3)a tất cả toán R4 h ạ<-ng R4 + M[M[R3]] 8. Autoincrement Add R4, (R2)+ R4 <- R4 + M[R2] R2 <- R2 + d 9. Autodecrement Add R4, (R2)- R4 <- R4 + M[R2] R2 <- R2 - d 10. Scaled Add R4, 100(R2)[R3] R4 <- R4+M[100+R2+R3*d] Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  34. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 3. Định địa chỉ-Các chế độ định địa chỉ (t) • Định địa chỉ cơ sở-chỉ số – Một số máy có một chế độ định địa chỉ trong đó địa chỉ bộ nhớ được tính toán bằng cách cộng 2 thanh ghi cộng với (tuỳ chọn) một địa chỉ offset . – Một trong các thanh ghi là cơ sở và thanh ghi khác là chỉ số • Định địa chỉ ngăn xếp – Để thực hiện các lệnh càng ngắn càng tốt – Khi sử dụng định địa chỉ ngăn xếp, chúng ta không cần bầt kỳ địa chỉ nào – Khuôn dạng lệnh là mã lệnh không có địa chỉ Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  35. Generated by Foxit PDF Creator © Foxit Software For evaluation only. Nội dung 1. Giới thiệu 2. Phân loại kiến trúc tập lệnh 3. Định địa chỉ 4. Các thanh ghi của tập lệnh 5. Khuôn dạng lệnh 6. Các kiểu lệnh 7. Bộ biên dịch Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  36. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 4. Các thanh ghi ISA • Mục đích của các thanh ghi – Điều khiển thi hành chương trình, – Chứa các kết quả tạm thời, tăng tốc độ thi hành – • Một số thanh ghi ISA là phân tập của các thanh ghi vi kiến trúc (tổ chức máy tính) – Phổ biến: PC, SP – Nhìn thấy đối với cả hai vi kiến trúc và ISA – Chỉ có vi kiến trúc: MAR, TOS Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  37. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 4. Các thanh ghi ISA (t) • Hai dạng của các thanh ghi ISA – Đa năng: chứa các biến nội bộ chính và các kết quả tính toán chung gian. Chức năng chính của chúng là để cung cấp truy cập tới các dữ liệu sử dụng nhiều, tránh truy cập bộ nhớ – Chuyên dụng: các thanh ghi có chức năng riêng • Từ trạng thái chương trình (PSW ® N, Z, V, C, A, P) • PC, SP Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  38. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 4. Các thanh ghi ISA (t) • Ngoài các thanh ghi ISA có thể nhìn thấy được đối với các chương trình của người sử dụng, có một số lượng đáng kể các thanh ghi chuyên dụng có thể sử dụng chỉ ở chế độ kernel. Chúng điều khiển cache, bộ nhớ, các thiết bị I/O, và các thuộc tính phần cứng khác. • Vì chúng được sử dụng chỉ bởi hệ điều hành, nên các bộ biên dịch và người sử dụng không cần kiến thức về chúng Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  39. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 4. Các thanh ghi ISA (t) • Từ trạng thái chương trình (PSW) – Chứa các bit khác nhau cần cho CPU và được sử dụng trong cả hai chế độ kernel và người sử dụng – Các bit điều kiện điển hình: các bit này thay đổi theo từng chu kỳ ALU và phản ánh trạng thái cả tác vụ gần nhất • N: ALU result Negative • Z: ALU result Zero • V: ALU result Overflow • C: Carry out of leftmost bit of ALU result • A: Set when carry out of bit 3 of ALU • P: ALU result has even parity – Thường PSW có thể đọc được ở chế độ người sử dụng; chỉ có thể ghi được ở chế độ Kernel Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  40. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 4. Các thanh ghi ISA (t) • Các lệnh liên quan – Đặc điểm chính của mức ISA là tập các lệnh máy điều khiển hoạt động của nó – LOAD và STORE dịch chuyển dữ liệu giữa bộ nhớ và các thanh ghi – Các lệnh số để tính toán, các lệnh logic và các lệnh so sánh các hạng mục dữ liệu và rẽ nhánh dựa trên kết quả. Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  41. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 4. Các thanh ghi ISA (t) • Bao nhiêu thanh ghi thì đủ? – Các thanh ghi nhanh hơn bộ nhớ, vậy càng nhiều thì càng tốt? • Trả lời-Không – Một lý do các thanh ghi nhanh hơn khi có ít thanh ghi hơn • Nhỏ thì nhanh (chân lý của phần cứng) – Lý do khác là chúng định địa chỉ trực tiếp (không tính toán địa chỉ) • Nhiều thanh ghi hơn có nghĩa bộ xác định lớn hơn (định địa chỉ gián tiếp) – Không phải tất cả mọi thứ đều có thể đặt vào thanh ghi • Các cấu trúc, các mảng, bất kỳ thứ gì được trỏ- – Hướng tới nhiều thanh ghi hơn Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  42. Generated by Foxit PDF Creator © Foxit Software For evaluation only. Nội dung 1. Giới thiệu 2. Phân loại kiến trúc tập lệnh 3. Định địa chỉ 4. Các thanh ghi của tập lệnh 5. Khuôn dạng lệnh 6. Các kiểu lệnh 7. Bộ biên dịch Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  43. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 4. Khuôn dạng lệnh • Thay đổi – Độ dài lệnh thay đổi dựa trên toán hạng và cách xác định địa chỉ • Các lệnh VAX thay đổi từ 1 đến 53 byte • Trong khi lệnh x86 thay đổi từ 1-17 byte. – Mật độ mã tốt, nhưng khó khăn để giải mã và kỹ thuật đường ống • Cố định – Chỉ có 1 kích thước nhất đối với tất cả các lệnh – DLX, MIPS, Power PC, Sparc all có các lệnh 32 bit – Không có mật độ mã tốt nhưng dễ dàng giải mã và đường ống • Lai – Có nhiều độ dài khuôn dạng xác định theo toán hạng – Ví dụ, IBM 360/370 – Thoả hiệp giữa mật độ mã và dễ giải mã Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  44. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 5. Khuôn dạng lệnh (t) • Một lệnh chứa chỉ một toán tử hoặc một toán tử kèm theo đằng sau một, hai, hoặc ba địa chỉ xác định chi tiết toán hạng. • Trên một số máy, tất cả các lệnh có cùng độ dài, đơn giản hơn và thực hiện giải mã đơn giản hơn nhưng lãng phí vì tất cả các lệnh phải có độ dài bằng với một lệnh dài nhất. • Các máy khác có các lệnh với độ dài khác nhau, ngắn hơn so với cùng độ dài hoặc dài hơn độ dài của từ. Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  45. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 5. Khuôn dạng lệnh (t) • Các khuôn dạng lệnh phổ biến • Quan hệ giữa độ dài lệnh lệnh và từ Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  46. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 5. Khuôn dạng lệnh (t) • Các tiêu chí thiết kế khuôn dạng lệnh – Tốc độ bộ nhớ hiệu quả • Sử dụng hệ thống bộ nhớ phân cấp (các thanh ghi, cache, ) – Dễ mã hoá – Tốc độ bộ xử lý (tốc độ mà các lệnh có thể thi hành) – Không gian địa chỉ • Kích thước truy cập (bao nhiêu byte một lần) • Độ phân giải truy nhập (từng byte, từng từ) (Độ phân giải càng tinh, địa chỉ càng dài hơn và các lệnh càng dài hơn) Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  47. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 5. Khuôn dạng lệnh (t) • Một khuôn dạng lệnh điển hình: với 4 bit toán tử và 3 trường địa chỉ 4 bit • Chỉ có 16 toán tử • Chỉ có 16 thanh ghi • Chỉ có 16 biến nội bộ Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  48. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 5. Khuôn dạng lệnh (t) Khuôn • Giả thuyết độ dài lệnh không dạng 0 1 2 3 đổi, nhưng số lượng các toán nửa hạng khác nhau à các toán tử byte Lệnh 3 Toán tử Toán Toán Toán có kích thước khác nhau (mở toán 4-bit hạng 1 hạng 2 hạng 3 rộng toán tử) hạng 0-E Lệnh 2 Toán tử 8-bit Toán Toán toán hạng 1 hạng 2 • Example 1: hạng F0-FE Lệnh 1 OpCodes: Toán tử 12-bit Toán toán hạng 0,1, , D, E, hạng FF0-FFE F0, F1, , FD, FE, Lệnh 0 Toán tử 16-bit FF0, FF1, , FFD, FFE, toán FFF0-FFFF FFF0, FFF1, , FFFD, FFFE, FFFF. hạng Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  49. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 5. Khuôn dạng lệnh (t) • Ví dụ các khuôn dạng lệnh 1 – Khuôn dạng 1: Mã lệnh 4 bit. Các tác vụ được chỉ thị bởi các mã lệnh 0-E. F là mã mở rộng, chỉ thị các khuôn dạng 2, 3, hoặc 4. 4-bit opcode: 0-E 4-bit operand 1 4-bit operand 2 4-bit operand 3 – Khuôn dạng 2: Mã lệnh 8 bit. Các tác vụ được chỉ thị bởi các mã lệnh F0-FE. FF is mã mở rộng, chỉ thị các khuôn dạng 3 hoặc 4. 8-bit opcode: F0-FE 4-bit operand 1 4-bit operand 2 – Khuôn dạng: Mã lệnh 12 bit Opcode. Các tác vụ được chỉ thị bởi các mã lệnh FF0-FFE. mã mở rộng chỉ thị khuôn dạng 4. 12-bit opcode: FF0-FFE 4-bit operand – Khuôn dạng: Mã lệnh 16 bit Opcode. Các tác vụ được chỉ thị bởi các mã lệnh FFF0-FFFF. 16-bit opcode: FFF0-FFFF Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  50. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 5. Khuôn dạng lệnh (t) F F 0 i 0 i j k F F 1 i • Ví dụ 1: Các mã lệnh mở rộng 1 i j k F F 2 i 3-address 2 i j k 1-address F F D i D i j k F F E i E i j k F F F 0 F 0 i j F F F 1 F 1 i j F F F 2 Lệnh 16-bit F 2 i j 2-address 0-address Bit 0-3 4-7 8-B C-F F F F D F D i j F F F E Field 1 2 3 4 F E i j F F F F Instruction TypeOpCode Size Number Field 1 Field 2 Field 3 Field 4 Three Address 4 bits 15 0-E Address 1 Address 2 Address 3 Two Address 8 bits 15 F 0-E Address 1 Address 2 One Address 12 bits 15 F F 0-E Address 1 No Address 16 bits 16 F F F 0-F Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  51. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 5. Khuôn dạng lệnh (t) • Ví dụ 2: Sử dụng các mã lệnh có kích thước khác nhau để sử dụng không gian lệnh hiệu quả Example 1 Example 2 Three address instructions 15 15 Two address instructions 15 14 One address instructions 15 31 Zero address instructions 16 16 Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  52. Generated by Foxit PDF Creator © Foxit Software For evaluation only. Nội dung 1. Giới thiệu 2. Phân loại kiến trúc tập lệnh 3. Định địa chỉ 4. Các thanh ghi của tập lệnh 5. Khuôn dạng lệnh 6. Các kiểu lệnh 7. Bộ biên dịch Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  53. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 6. Các kiểu lệnh • Số học và logic: AND, ADD • Chuyển giao dữ liệu: MOVE, LOAD, STORE • Điều khiển BRANCH, JUMP, CALL • Hệ thống OS CALL, VM • Dấu phẩy ADDF, MULF, DIVF • Thập phân ADDD, CONVERT • Chuỗi MOVE, COMPARE • Đồ hoạ (DE)COMPRESS Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  54. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 6. Các kiểu lệnh (t) Rank Instruction Frequency 1 load 22% 2 branch 20% 3 compare 16% 4 store 12% 5 add 8% 6 and 6% 7 sub 5% 8 register move9 4% 9 call 1% 10 return 1% Total 96% Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  55. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 6. Các kiểu lệnh (t) • Tần suất tương đối của các lệnh điều khiển Tác vụ SPECint92 SPECfp92 Call/Return 13% 11% Þ Thiết kế phần cứng để xử lý các nhánh nhanh, vì Jumps 6% 4% các lệnh này xử lý 9 thường xuyên nhất Branches 81% 87% Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  56. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 7. Các bộ biên dịch • Các mục tiêu của bộ biên dịch – Tất cả các chương trình chuẩn biên dịch đúng – Hầu hết các chương trình đã biên dịch thi hành nhanh – Đạt được kích thước mã nhỏ – Cung cấp hỗ trợ gỡ rối • Bộ biên dịch đa nguồn – Cùng một bộ biên dịch có thể dùng nhiều ngôn ngữ khác nhau • Các bộ biên dịch cho nhiều đối tượng – Cùng một bộ biên dịch có thể tạo ra mã cho các máy khác nhau Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  57. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 6. Các bộ biên dịch (t) • Các bộ biên dịch sử dụng các giai đoạn để quản lý – Pha đầu • Chuyển đổi ngôn ngữ thành dạng trung gian – Tối ưu mức cao • Tạo ra các chuyển đổi nội tuyến và mạch vòng – Tối ưu toàn cầu • Tối ưu toàn cầu và cục bộ, cộng với phân pbổ thanh ghi – Bộ tạo mã (và hợp mã) • Loại từ sự phụ thuộc, chọn lọc lệnh và sắp lịch đường ống Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  58. Generated by Foxit PDF Creator © Foxit Software For evaluation only. 6. Các bộ biên dịch (t) • Thiết kế ISA để nâng cao sự biên dịch – Cung cấp đủ các thanh ghi để cấp phát thanh ghi dễ dàng (nhiều hơn 16) – Cung cấp các tập lệnh thường xuyên nhờ giữ các tác vụ, kiểu dữ liệu và các chế độ địa chỉ trực giao – Cung cấp xây dựng ban đầu hơn là cố gẳng ánh xạ tới một ngôn ngữ bậc cao – Cân bằng đơn giản giữa các lựa chọn – Cho phép bộ biên dịch trợ giúp thực hiện trường hợp chung nhanh Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  59. Generated by Foxit PDF Creator © Foxit Software For evaluation only. Nội dung 1. Giới thiệu 2. Phân loại kiến trúc tập lệnh 3. Chế độ định địa chỉ 4. Các thanh ghi của tập lệnh 5. Khuôn dạng lệnh 6. Các kiểu lệnh 7. Bộ biên dịch Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông
  60. Generated by Foxit PDF Creator © Foxit Software For evaluation only. Kết thúc bài 4 Hà nội, 17 December 2009 Học viện Công nghệ Bưu chính Viễn thông