1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Kiến trúc máy tính (Tạ Kim Huệ) Chương 2

65 17 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Slide 1

  • Slide 2

  • Kiến trúc tập lệnh

  • Chu kỳ thực thi lệnh cơ bản

  • Thực thi chương trình

  • Thực thi lệnh

  • Thực thi lệnh

  • Các kiểu toán hạng cơ bản

  • So sánh số lượng toán hạng

  • So sánh số lượng các chỉ thị

  • Kích thước toán hạng (Operand)

  • Slide 12

  • Slide 13

  • Slide 14

  • Ánh xạ địa chỉ theo byte: Endianess

  • Ánh xạ địa chỉ theo tuyến : Alignment

  • Dạng chỉ thị MIPS và các chế độ đánh địa chỉ

  • Thống kê các kiểu địa chỉ

  • Ví dụ: Tập lệnh MIPS

  • Slide 20

  • Slide 21

  • Các lệnh thực thi

  • Các phép toán

  • Ví dụ về lệnh: Add/sub (1 of 2)

  • Ví dụ về lệnh: Add/sub (2 of 2)

  • Thực hành: add/sub

  • Dịch chuyển dữ liệu

  • Lệnh tải từ: Load word (1 of 2)

  • Lệnh tải từ: Load word (2 of 2)

  • Lệnh tải từ với độ lệch địa chỉ.

  • Lệnh lưu từ: Store word

  • Ví dụ:

  • Các lệnh điều khiển rẽ nhánh

  • Lệnh nhảy không điều kiện

  • Các chỉ thị rẽ nhánh

  • Xác định địa chỉ rẽ nhánh có điều kiện

  • Lệnh nhảy không điều kiện

  • Vòng lặp

  • Địa chỉ trong lệnh rẽ nhánh và lệnh nhảy

  • Ví dụ nhảy địa chỉ: loops

  • Biên dịch thành mã máy Mã hóa và các định dạng

  • Định dạng lệnh (mã máy)

  • Định dạng lệnh MIPS

  • Tổng kết các lệnh MIPS

  • Tổng kết các lệnh MIPS

  • Hằng số (lệnh trực tiếp)

  • Tải các giá trị tức thì (hằng số)

  • Tải các giá trị lớn

  • Thủ tục gọi hàm

  • Các thủ tục gọi hàm

  • Các thủ tục gọi hàm

  • Nguyên tắc sử dụng thủ tục

  • Các thanh ghi lưu trữ: Quy ước trong MIPS

  • Tên các thanh ghi MIPS và các quy ước

  • Làm thế nào để thực thi một thủ tục gọi

  • Ví dụ

  • Các ví dụ về thủ tục gọi hàm và ngăn xếp

  • Lưu trữ vào thanh ghi (trong ngăn xếp)

  • Calls: Why Are Stacks So Great?

  • Các bộ nhớ ngăn xếp

  • Call-Return Linkage: Stack Frames

  • Các kiến trúc tập lệnh khác (ISAs)

  • Phân loại tập lệnh cơ bản

  • Các chế độ đánh địa chỉ

  • Tổng kết: Các kiến trúc tập lệnh

Nội dung

Kiến trúc máy tính Computer architecture To improve is to change; to be perfect is to change often Winston Churchill Chương 2: Kiến trúc tập lệnh Tập lệnh MIPS Biên dịch mã máy Kiến trúc tập lệnh software instruction set hardware • Multiple Implementations: 8086  Pentium • ISAs evolve: MIPS-I, MIPS-II, MIPS-II, MIPS-IV, MIPS,MDMX, MIPS-32, MIPS-64 Chu thi lệnh Instruction Fetch Obtain instruction from program storage Instruction Decode Determine required actions and instruction size Operand Fetch Locate and obtain operand data Execute Compute result value or status Result Store Next Instruction Deposit results in register or storage for later use Determine successor instruction Thực thi chương trình Bộ xử lý thực thi chương trình nào? Tải lệnh Tìm tốn tử sử dụng Tìm liệu sử dụng Thực tính tốn Tìm lệnh Lặp lại trình … Bài giảng nhấn mạnh thực thi xử lý MIPS Thực thi lệnh Today we’re going to learn the details! Thực thi lệnh Computer Program (Instructions) Programmer's View ADD SUBTRACT AND OR COMPARE 01010 01110 10011 10001 11010 CPU Memory I/O Computer's View Kiến trúc Princeton (Von Neumann) - Data and Instructions mixed in same unified memory Kiến trúc Harvard - Data & Instructions in separate memories - Program as data - Storage utilization - Has advantages in certain high performance implementations - Single memory interface - Can optimize each memory Các kiểu toán hạng Declining cost of registers So sánh số lượng toán hạng Thực thi phép toán (C = A + B) với kiểu toán hạng khác Register (register-memory) Register (load-store) Stack Accumulator Push A Load A Load R1,A Load R1,A Push B Add B Add R1,B Load R2,B Add Store C Store C, R1 Add R3,R1,R2 Pop C Store C,R3 Cycles Seconds ExecutionT ime  Instructio ns   Performance Instructio n Cycle So sánh số lượng thị Các thủ tục gọi hàm main( ) { for ( j=0; j Big/Last Full Little > Big/Next Empty POP: Read from Mem(SP) Decrement SP POP: Decrement SP Read from Mem(SP) PUSH: Increment SP Write to Mem(SP) PUSH: Write to Mem(SP) Increment SP Call-Return Linkage: Stack Frames High Mem ARGS Callee Save Registers Reference args and local variables at fixed (positive) offset from FP (old FP, RA) Local Variables FP SP Grows and shrinks during expression evaluation Low Mem • Many variations on stacks possible (up/down, last pushed /next ) • Compilers normally keep scalar variables in registers, not memory! Các kiến trúc tập lệnh khác (ISAs) Có nhiều kiến trúc tập lệnh khác (ISAs): – x86 (Intel/AMD) – ARM (ARM) – JVM (Java) – PPC (IBM, Motorola) – SPARC (Oracle, Fujitsu) – PTX (Nvidia) – etc Chú ý đến số vấn đề : – Các kiểu mã máy (Machine types) – Phân loại kiểu tập lệnh (ISA classes) – Các chế độ đánh địa (Addressing modes) – Độ lớn thị (Instruction width) – Phân biệt kiến trúc CISC vs RISC Phân loại tập lệnh • Accumulator (1 register) – address add A acc ← acc + mem[A] • General purpose register file (load/store) – addresses add Ra Rb Rc Ra ← Rb + Rc load Ra Rb Ra ← Mem[Rb] • General purpose register file (Register - Memory) – address add Ra B Ra ← Mem[B] • Stack (not a register file but an operand stack) – address add tos ← tos + next tos = top of stack • Comparison: – Bytes per instruction? Number of instructions? Cycles per instruction? Các chế độ đánh địa Tổng kết: Các kiến trúc tập lệnh • Architecture = what’s visible to the program about the machine – Not everything in the implementation is “visible” – The implementation may not follow the architecture – The invisible stuff is the “microarchitecture” and it’s very messy, but very fun (huge engineering challenges; lots of money) • A big piece of the ISA is the assembly language structure – Primitive instructions (appear to) execute sequentially and atomically – Formats, computations, addressing modes, etc • CISC: lots of complicated instructions • RISC: a few basic instructions • All recent machines are RISC, but x86 is still CISC (although they RISC tricks on the inside) ... 00 32 32 Add PC 32 32 32 36 Add 32 32 branch dst address ? HUST-FET, 10 /28 /21 Lệnh nhảy không điều kiện  Lệnh nhảy không điều kiện: j  label #go to label Định dạng lệnh (J Format): 0x 02 26-bit... & 03 sra $s1, $s2, $s1 = $s2 >> (fill with sign bit) and & 24 and $s1, $s2, $s3 $s1 = $s2 & $s3 or & 25 or $s1 = $s2 | $s3 nor & 27 nor $s1, $s2, $s3 $s1, $s2, $s3 $s1 = not ($s2 | $s3) and immediate... load word 23 lw store word 2b sw $s1, 100($s2) Memory($s2+100) = $s1 load byte 20 lb $s1, 101($s2) $s1 = Memory($s2+101) store byte 28 sb $s1, 101($s2) Memory($s2+101) = $s1 load half 21 lh $s1,

Ngày đăng: 28/10/2021, 12:25

HÌNH ẢNH LIÊN QUAN

Bảng tham khảo định dạng lệnh - Bài giảng Kiến trúc máy tính (Tạ Kim Huệ) Chương 2
Bảng tham khảo định dạng lệnh (Trang 21)
Bảng tham khảo định dạng lệnh - Bài giảng Kiến trúc máy tính (Tạ Kim Huệ) Chương 2
Bảng tham khảo định dạng lệnh (Trang 21)
w