• <tr id='BV05aT'><strong id='BV05aT'></strong><small id='BV05aT'></small><button id='BV05aT'></button><li id='BV05aT'><noscript id='BV05aT'><big id='BV05aT'></big><dt id='BV05aT'></dt></noscript></li></tr><ol id='BV05aT'><option id='BV05aT'><table id='BV05aT'><blockquote id='BV05aT'><tbody id='BV05aT'></tbody></blockquote></table></option></ol><u id='BV05aT'></u><kbd id='BV05aT'><kbd id='BV05aT'></kbd></kbd>

    <code id='BV05aT'><strong id='BV05aT'></strong></code>

    <fieldset id='BV05aT'></fieldset>
          <span id='BV05aT'></span>

              <ins id='BV05aT'></ins>
              <acronym id='BV05aT'><em id='BV05aT'></em><td id='BV05aT'><div id='BV05aT'></div></td></acronym><address id='BV05aT'><big id='BV05aT'><big id='BV05aT'></big><legend id='BV05aT'></legend></big></address>

              <i id='BV05aT'><div id='BV05aT'><ins id='BV05aT'></ins></div></i>
              <i id='BV05aT'></i>
            1. <dl id='BV05aT'></dl>
              1. <blockquote id='BV05aT'><q id='BV05aT'><noscript id='BV05aT'></noscript><dt id='BV05aT'></dt></q></blockquote><noframes id='BV05aT'><i id='BV05aT'></i>
                复制成功
                • 图案背景
                • 纯色背景
                视图
                标记
                批注
                批注本?地保存成功,开通会员?云端永久保存 去开通
                仝泽民

                上传于:2021-09-06

                粉丝量:6

                二级建造师,熟悉建筑行业?、高等教育,具有十年工作经验

                
                • 相关
                • 目录
                • 笔记
                • 书签

                暂无目录

                点击鼠标右?键菜单,创建目录

                暂无笔记

                选择文本,点击鼠标右键菜单,添加笔记

                暂无书签

                在左侧文?档中,点击鼠标右键,添加书签

                《计算机组织与体系结构》 (5)

                下载积分:400

                内容提示: 北京? 大 学计算机科学?技术系 北京? 大 学微处?理器研究开发中? 心 MIPS 指令系统体系结?构 MIPS Instruction Set Architecture 计算机组织与系统结构 (R2) 2015.10.29 程 旭 北京? 大 学?计算机科学技术系 北京? 大 学微处理器研究?开发中? 心 本讲概况 ??上讲复习 ??MIPS指令系?统体系结构 ??MIPS的其他情况 ??MIPS (PowerPC、VAX、80x86) 北京? 大 学计算?机科学技术系 北京? 大 学微处理?器研究开发中? 心 指令(Instructions ): @? 机器语言的字?词 @? 比高级语言更加简单 、 原始 例如 , 没有复杂的控?制流 @? 限制性...

                文档格式:PDF | 页数:61 | 浏览次数:1 | 上传日期:2021-09-06 23:08:11 | 文档星级:
                北京? 大 学计算机科?学技术系 北京? 大 学微处理器研?究开发中? 心 MIPS 指令系统体?系结构 MIPS Instruction Set Architecture 计算机组织与系统结构 (R2) 2015.10.29 程 旭 北京? 大 学计算机科学?技术系 北京? 大 学微处理器?研究开发中? 心 本讲概况 ??上讲复习 ??MIPS指令系统体?系结构 ??MIPS的其他情况 ??MIPS (PowerPC、VAX、80x86) 北京? 大 学计算机科学?技术系 北京? 大 学微处理器?研究开发中? 心 指令(Instructions ): °? 机器语言?的字词 °? 比高级语言更加简单 、 原始 例如 , 没有复杂的?控制流? °? 限?制性非常强 例如 :MIPS 算术?运算指令 °? 更课程我们将基于MIPS 指令系统体系结构 •? 与二十世纪八十年代后的许多结构都很类似 :NEC, Nintendo, Silicon Graphics, Sony 设计目标 : 更高性能 、 更低成本 、 更少设计周?期 北京? 大 学计算机科学技术系 北京? 大 学微处理器研?究开发中? 心 MIPS 算术指令 °? 所有算术指令?都有 3 个操作数 °? 操作数的次序是固?定的(目标操作数领先 ) 示例 : C 代码: A = B + C MIPS 代码: add $s0, $s1, $s2 ( 编译器完成寄存器与变量的关联) 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发?中? 心 MIPS arithmetic °?Design Principle: simplicity favors regularity. Why? °?Of course this complicates some things... C code: A = B + C + D; E = F - A; MIPS code: add $t0, $s1, $s2 add $s0, $t0, $s3 sub $s4, $s5, $s0 °?Operands must be registers, only 32 registers provided °?Design Principle: smaller is faster. Why? 北京? 大 学计算机科学技术系 北京? 大 学?微处理器研究开发中? 心 Registers vs. Memory Processor I/O Control Datapath Memory Input Output °?Arithmetic instructions operands must be registers, •?only 32 registers provided °?Compiler associates variables with registers °?What about programs with lots of variables 北京? 大 学计算机科学技术系 北京? 大 学微处?理器研究开发中? 心 Memory Organization °? Viewed as a large, single-dimension array, with an address. °? A memory address is an index into the array °? &quot; Byte addressing &quot; means that the index points to a byte of memory. 0 1 2 3 4 5 6 ... 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data 北京? 大 学计算机科学技术系 北京? 大 学微处?理器研究开发中? 心 Memory Organization °? Bytes are nice, but most data items use larger &quot;words&quot; °? For MIPS, a word is 32 bits or 4 bytes. °? 2 32 bytes with byte addresses from 0 to 2 32 -1 °? 2 30 words with byte addresses 0, 4, 8, ... 2 32 -4 °? Words are aligned i.e., what are the least 2 significant bits of a word address? ... 0 4 8 12 32 bits of data 32 bits of data 32 bits of data 32 bits of data Registers hold 32 bits of data 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 Instructions °?Load and store instructions °?Example: C code: A[8] = h + A[8]; MIPS code: lw $t0, 32($s3) add $t0, $s2, $t0 sw $t0, 32($s3) °?Store word has destination last °?Remember arithmetic operands are registers, not memory! 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 Our First Example °?Can we figure out the code? 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 Assume: k-&gt;$5 v[0]-&gt;$4 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 So far we have learned: °?MIPS -? loading words but addressing bytes -? arithmetic on registers only °?Instruction Meaning add $s1, $s2, $s3 $s1 = $s2 + $s3 sub $s1, $s2, $s3 $s1 = $s2 - $s3 lw $s1, 100($s2) $s1 = Memory[$s2+100] sw $s1, 100($s2) Memory[$s2+100] = $s1 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °? Instructions, like registers and words of data, are also 32 bits long •? Example: add $t0, $s1, $s2 •? registers have numbers, $t0=9, $s1=17, $s2=18 °? Instruction Format: 000000 10001 10010 01000 00000 100000 op rs rt rd shamt funct °?Can you guess what the field names stand for? Machine Language 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °? Consider the load-word and store-word instructions, •? What would the regularity principle have us do? •? New principle: Good design demands a compromise °? Introduce a new type of instruction format •? I-type for data transfer instructions •? other format was R-type for register °? Example: lw $t0, 32($s2) 35 18 9 32 op rs rt 16 bit number Where's the compromise? Machine Language 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °?Instructions are bits °? Programs are stored in memory to be read or written just like data °? Fetch &amp; Execute Cycle •? Instructions are fetched and put into a special register •? Bits in the register &quot;control&quot; the subsequent actions •? Fetch the next instruction and continue Processor Memory memory for data, programs, compilers, editors, etc. Stored Program Concept 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °?Decision making instructions •?alter the control flow, •?i.e., change the &quot;next&quot; instruction to be executed °?MIPS conditional branch instructions: bne $t0, $t1, Label beq $t0, $t1, Label °?Example: if (i==j) h = i + j; bne $s0, $s1, Label add $s3, $s0, $s1 Label: .... Control 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °?MIPS unconditional branch instructions: j label °?Example: if (i!=j) beq $s4, $s5, Lab1 h=i+j; add $s3, $s4, $s5 else j Lab2 h=i-j; Lab1: sub $s3, $s4, $s5 Lab2: ... °?Can you build a sample for loop? Control 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 So far: °? Instruction Meaning add $s1,$s2,$s3 $s1 = $s2 + $s3 sub $s1,$s2,$s3 $s1 = $s2 - $s3 lw $s1,100($s2) $s1 = Memory[$s2+100] sw $s1,100($s2) Memory[$s2+100] = $s1 bne $s4,$s5,L Next instr. is at Label if $s4 ≠ ≠ $s5 beq $s4,$s5,L Next instr. is at Label if $s4 = $s5 j Label Next instr. is at Label °? Formats: op rs rt rd shamt funct op rs rt 16 bit address op 26 bit address R I J 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °? We have: beq, bne, what about Branch-if-less-than? °? New instruction: slt : set on less than °? slt $t0, $s1, $s2 if $s1 &lt; $s2 then $t0 = 1 else $t0 = 0 °? Can use this instruction to build &quot;blt $s1, $s2, Label&quot; can now build general control structures °? Note that the assembler needs a register to do this, there are policy of use conventions for registers 2 Control Flow 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 Policy of Use Conventions $zero 0 the constant value 0$v0-$v1 2-3 values for results and expression evaluation$a0-$a3 4-7 arguments$t0-$t7 8-15 temporaries$s0-$s7 16-23 saved$t8-$t9 24-25 more temporaries$gp 28 global pointer$sp 29 stack pointer$fp 30 frame pointer$ra 31 return address 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °? Small constants are used quite frequently (50% of operands) e.g., A = A + 5; B = B + 1; C = C - 18; °? Solutions? Why not? •? put 'typical constants' in memory and load them. •? create hard-wired registers (like $zero) for constants like one. °? MIPS Instructions: addi $29, $29, 4 slti $8, $18, 10 andi $29, $29, 6 ori $29, $29, 4 °? How do we make this work? Constants 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °? We'd like to be able to load a 32 bit constant into a register °? Must use two instructions, new &quot;load upper immediate&quot; instruction lui $t0, 1010101010101010 °? Then must get the lower order bits right, i.e., ori $t0, $t0, 1010101010101010 1010101010101010 0000000000000000 0000000000000000 1010101010101010 1010101010101010 1010101010101010 ori 1010101010101010 0000000000000000 filled with zeros How about larger constants? 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °?Assembly provides convenient symbolic representation •? much easier than writing down numbers •? e.g., destination first °?Machine language is the underlying reality •? e.g., destination is no longer first °?Assembly can provide 'pseudo instructions' •? e.g., Move $t0, $t1 exists only in Assembly •? would be implemented using Add $t0,$t1,$zero °?When considering performance you should count real instructions Assembly Language vs. Machine Language 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °? Instructions: bne $t4,$t5,Label Next instruction is at Label if $t4 ≠ ≠ $t5 beq $t4,$t5,Label Next instruction is at Label if $t4 = $t5 j Label Next instruction is at Label °? Formats: °? Addresses are not 32 bits -? How do we handle this with load and store instructions? op rs rt 16 bit address op 26 bit address I J Addresses in Branches and Jumps 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 °?Instructions: bne $t4,$t5,Label Next instruction is at Label if $t4 ≠ ≠ t5 beq $t4,$t5,Label Next instruction is at Label if $t4 =$t5 °?Formats: °?Could specify a register (like lw and sw) and add it to address •?use Instruction Address Register (PC = program counter) •?most branches are local (principle of locality) °?Jump instructions just use high order bits of PC •?address boundaries of 256 MB op rs rt 16 bit address I Addresses in Branches 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 MIPS R2000 / R3000 的寄存器 °? 可编程存储 •? 2 32 x bytes •? 31 x 32-bit GPRs (R0 ≡ ≡ 0) •? 32 x 32-bit FP regs ( 数据?处理成对:paired DP) •? HI, LO, PC 0 r0 r1 . r31 PC lo hi . . 北京? 大 学计算机科学技术系 北京? 大 学微处理器研究开发中? 心 MIPS 的寻址? 方 式/指令格式 Register (direct) Base+index Immediate PC-relative op rs rt rd immed register op rs rt register + Memory immed op rs rt immed op rs rt PC + Memory 北京? 大 学计算机科学技术系 北...

                关注我们

                关注微信公众号

                您选择了以下内容