编辑: kieth 2018-11-04
计算机体系结构 周学海xhzhou@ustc.

edu.cn0551-3492271中国科学技术大学计算机系 Review 设计发展趋势CapacitySpeedLogic2x in

3 years2x in

3 yearsDRAM4x in

3 years2x in

10 yearsDisk4x in

3 years2x in

10 years运行任务的时间Execution time, response time, latency单位时间内完成的任务数Throughput, bandwidth X性能是Y的n倍 :ExTime(Y) Performance(X)ExTime(X)Performance(Y) Amdahl'

s 定律:CPI Law:执行时间是计算机系统度量的最实际,最可靠的方式 CPU time= Seconds = Instructions x Cycles x Seconds Program Program Instruction Cycle Speedupoverall = ExTimeoldExTimenew =

1 (1 - Fractionenhanced) + Fractionenhanced Speedupenhanced 中国科学技术大学 第2章 指令集结构设计 2.1 指令集结构分类2.2 寻址方式2.3 操作数的类型、表示和大小2.4 指令集功能设计2.5 指令格式2.6 编译技术与计算机体系结构2.7 DLX指令集结构 指令集设计 instruction set software hardware 指令集结构: 我们必须说明哪些东西? InstructionFetch InstructionDecode OperandFetch Execute ResultStore NextInstruction 指令格式或编码方式.即如何编码?操作数和操作结果的存放位置存放位置?多少个显式操作数?存储器操作数如何定位?哪些操作数可以或不可以放到存储器中?数据类型和大小寻址方式支持哪些操作下一条指令地址jumps, conditions, branchesfetch-decode-execute is implicit! 有关ISA的7个方面 Class of ISAMemory addressingAddressing modesTypes and sizes of operandsOperationsControl flow instructionsEncoding an ISA 2.1 ISA 的基本分类 ISA 的基本分类 累加器型(Accumulator) (1 register):1 address add Aacc ? acc + mem[A]1+x addressaddx Aacc ? acc + mem[A + x]堆栈型(Stack):0 address addtos ? tos + next通用寄存器型(General Purpose Register):Register-memory2 address add A BEA[A] ? EA[A] + EA[B]3 address add A B CEA[A] ? EA[B] + EA[C]Load/Store:3 addressadd Ra Rb RcRa ? Rb + Rcload Ra Rb Ra ? mem[Rb]store Ra Rbmem[Rb] ? Ra存储器-存储器型 (目前已经没有) 比较指令条数 计算 C = A+B 通用寄存器型占主导地位 1980以后至今几乎所有的机器都用通用寄存器结构原因寄存器比存储器快对编译器而言寄存器更容易使用 (A*B)-(B*C)-(A*D)寄存器可以存放变量代码紧凑 通用寄存器的分类 分类原则:ALU指令到底是两地址指令还是三地址指令ALU指令中有多少个操作数可以用存储器寻址,即有多少个存储器操作数 常见的通用寄存器型指令集结构的优缺点 Type Advantages Disadvantages RegisterCregister(0,3) Simple, fixed-length instruction en?coding. Simple code generation model. Instructions take similar numbers of clocks to execute. Higher instruction count than architectures with memory references in instructions. More instructions and lower instruction density leads to larger programs. RegisterCmemory(1,2) Data can be accessed without loading first. Instruction format tends to be easy to encode and yields good density. Operands are not equivalent since a source operand in a binary operation is destroyed. Encoding a register number and a memory address?in each instruction may restrict the number?of registers. CPI varies by operand location. MemoryCmemory(3,3) Most compact. Doesn'

t waste registers for temporaries. Large variation in instruction size, especially for three-operand instructions. In addition, large variation in work per instruction. Memory accesses create memory bottleneck. (Not used today.) 2.2 寻址技术 如何解释存储器地址?如何说明寻址方式?1980年以来几乎所有机器的存储器都是按字节编址的ISA设计要关注两个问题:8bits-字节, 16bits-半字,32bits -字, 64bits -双字如何读32位字,两种方案每次一个字节,四次完成每次一个字,一次完成 问题:(1)如何将字节地址映射到字地址 (尾端问题)(2)一个字是否可以存放在任何字节边界上 (对齐问题)即尾端(Endian)和对齐问题 尾端问题 little endian, big endian, 在一个字内部的字节顺序问题,如地址xxx00指定了一个字(int), 存储器中从xxx00处连续存放ffff0000, 则有两种方式:Little endian 方式下xxx00位置是字的最低字节,整数值为0000ffff, Intel 80x86, DEC Vax, DEC Alpha (Windows NT)Big endian 方式下xxx00位置是字的最高字节,整数值为ffff0000, IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA 对齐问题 对一个s字节的对象访问,地址为A,如果A mod s =0 那么它就是边界对齐的.边界对齐的原因是存储器本身读写的要求,存储器本身读写通常就是边界对齐的,对于不是边界对齐的对象的访问可能要导致存储器的两次访问,然后再拼接出所需要的数.(或发生异常) 寻址方式 寻址方式:如何说明要访问的对象地址有效地址:由寻址方式说明的某一存储单元的实际存储器地址.有效地址 vs. 物理地址 Addressing mode Example Meaning Register Add R4,R3 R4 ? R4+R3 Immediate Add R4,#3 R4 ? R4+3 Displacement Add R4,100(R1) R4 ? R4+Mem[100+R1] Register indirect Add R4,(R1) R4 ? R4+Mem[R1] Indexed / Base Add R3,(R1+R2) R3 ? R3+Mem[R1+R2] Direct or absolute Add R1,(1001) R1 ? R1+Mem[1001] Memory indirect Add R1,@(R3) R1 ? R1+Mem[Mem[R3]] Post-increment Add R1,(R2)+ R1 ? R1+Mem[R2];

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题