Kiến trúc máy tính-Ngôn ngữ máy pdf

65 273 1
Kiến trúc máy tính-Ngôn ngữ máy pdf

Đ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

10/11/2011 1 Computer Architecture Nguyễn Trí Thành Information Systems Department Faculty of Technology College of Technology ntthanh@vnu.edu.vn 10/11/2011 2 Instructions: Language of the Computer 10/11/2011 3 Instruction Set  The repertoire of instructions of a computer  Early computers had very simple instruction sets  Simplified implementation  Many modern computers also have simple instruction sets  Instructions operate using registers 10/11/2011 4 The MIPS Instruction Set  Used as the example throughout the book  Stanford MIPS commercialized by MIPS Technologies (www.mips.com)  Large share of embedded core market  Applications in consumer electronics, network/storage equipment, cameras, printers, …  Typical of many modern ISAs  See MIPS Reference Data tear-out card, and Appendixes B and E 10/11/2011 5 CPU Abstract / Simplified View Registers Register # Data Register # Data memory Address Data Register # PC Instruction ALU Instruction memory Address 10/11/2011 6 Main Types of Instructions  Arithmetic  Integer  Floating Point  Memory access instructions  Load & Store  Control flow  Jump  Conditional Branch  Call & Return 10/11/2011 7 Arithmetic Operations  Add and subtract, three operands  Two sources and one destination add a, b, c # a gets b + c  All arithmetic operations have this form  Design Principle 1: Simplicity favours regularity  Regularity makes implementation simpler  Simplicity enables higher performance at lower cost 10/11/2011 8 Arithmetic Example  C code: f = (g + h) - (i + j);  Compiled MIPS code: add t0, g, h # temp t0 = g + h add t1, i, j # temp t1 = i + j sub f, t0, t1 # f = t0 - t1 10/11/2011 9 Register Operands  Arithmetic instructions use register operands  MIPS has a 32 × 64-bit register file  Use for frequently accessed data  Numbered 0 to 31  32-bit data called a “word”  Assembler names  $t0, $t1, …, $t9 for temporary values  $s0, $s1, …, $s7 for saved variables 10/11/2011 10 Register Operand Example  C code: f = (g + h) - (i + j);  f, …, j in $s0, …, $s4  Compiled MIPS code: add $t0, $s1, $s2 add $t1, $s3, $s4 sub $s0, $t0, $t1 swap(int v[], int k) {int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } swap: muli $2, $5,4 add $2, $4,$2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000 Binary machine language program (for MIPS) C compiler Assembler Assembly language program (for MIPS) High-level language program (in C)

Ngày đăng: 10/08/2014, 17:21

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan