03/06-eveW-性能 性能度量 响应时间( response time) 吞吐率 Throughpu) cPU执行时间= ICx CPI X T CPI Cycles per Instruction MIPS E Millions of instructions per second Latency versus Bandwidth Latency指单个任务的执行时间, Bandwidth指单位时间完成的任务量 rate Latency的提升滞后于带宽的提升(在过去的30年) Amdahl'sLaw用来度量加速比( speedup) 性能提升受限于任务中可加速部分所占的比例 应用于多处理器系统的基本假设∶在给定的问题规模下,研究随着处理器数 目的增 变化 Benchmarks:指一组用于测试的程序 比较计算机系统的性能 speC benchmark:针对一组应用综合性能值采用 SPEC ratios的几何平均 2021/2/5
03/06-review-性能 • 性能度量 – 响应时间 (response time) – 吞吐率 (Throughput) • CPU 执行时间 = IC × CPI × T – CPI ( Cycles per Instruction) • MIPS = Millions of Instructions Per Second • Latency versus Bandwidth – Latency指单个任务的执行时间,Bandwidth 指单位时间完成的任务量 (rate) – Latency 的提升滞后于带宽的提升 (在过去的30年) • Amdahl’s Law 用来度量加速比(speedup) – 性能提升受限于任务中可加速部分所占的比例 – 应用于多处理器系统的基本假设:在给定的问题规模下,研究随着处理器数 目的增加性能的变化 • Benchmarks:指一组用于测试的程序 – 比较计算机系统的性能 – SPEC benchmark : 针对一组应用综合性能值采用SPEC ratios 的几何平均 2021/2/5 2
03/06- review-能耗/功耗 给定负载情况下能耗越少,能效越高,特别是 对电池供电的移动设备。 功耗已经成为系统设计的重要约束条件之 A chip might be limited to 120 watts(cooling power supply) Power Consumed Dynamic power Static Power 晶体管开和关的切换导致的功耗为动态功耗 由于晶体管静态漏电流导致的功耗称为静态功耗 通过降低频率可节省功耗 降低电压可降低功耗和能耗 2021/2/5
03/06-review-能耗/功耗 • 给定负载情况下能耗越少,能效越高, 特别是 对电池供电的移动设备。 • 功耗已经成为系统设计的重要约束条件之一 – A chip might be limited to 120 watts (cooling + power supply) • Power Consumed = Dynamic Power + Static Power – 晶体管开和关的切换导致的功耗为动态功耗 – 由于晶体管静态漏电流导致的功耗称为静态功耗 • 通过降低频率可节省功耗 • 降低电压可降低功耗和能耗 2021/2/5 3
Recap:指令集架构 ·软件子系统与硬件子系统的关键界面 software 一组直接由硬件执行的指令,包括 程序员可见的机器状态 FF instruction set FTTTTTT 程序员可见的指令集合(操作机器状态的长和ane 应具备的特性 成本 简洁性 架构和具体实现分离:可持续多代,以保持向后( backward)兼容 可扩展空间:可用于不同应用领域( desktops, servers, embedded applications 易于编程/编译/链接:为高层软件的设计与开发提供方便的功能 性能:方便低层硬件子系统高效实现 ·IBM360是第一个将ISA与其实现分离的系列机 给定一个SA,可以有不同的实现方式;例如AMD/ ntel cPu都是X86-64 指令集。 ARMISA也有不同的实现方式 2021/2/5
Recap:指令集架构 • 软件子系统与硬件子系统的关键界面 • 一组直接由硬件执行的指令,包括 – 程序员可见的机器状态 – 程序员可见的指令集合(操作机器状态的指令) • 应具备的特性 – 成本 – 简洁性 – 架构和具体实现分离:可持续多代,以保持向后(backward) 兼容 – 可扩展空间:可用于不同应用领域(desktops, servers, embedded applications) – 易于编程/编译/链接:为高层软件的设计与开发提供方便的功能 – 性能:方便低层硬件子系统高效实现 • IBM 360 是第一个将ISA与其实现分离的系列机 – 给定一个ISA,可以有不同的实现方式;例如AMD/Intel CPU 都是X86-64 指令集。ARM ISA 也有不同的实现方式 2021/2/5 4 instruction set software hardware
用户级ISA和特权级ISA Application Software Applica tion Software System Calls System calls Operating system Operating System System ISA User ISA ISA L System ISA User IsA ABI Hardware Hardware (b) 重要的系统界面( System Interface) ISA界面( Instruction Set architecture) ABI界面( Application Binary Interface) ISA:用户级ISA+特权级ISA 用户级ISA适用于操作系统和应用程序 特权级ISA适用于硬件资源的管理(操作系统)
用户级ISA和特权级ISA • 重要的系统界面(System Interface) – ISA界面(Instruction Set Architecture) – ABI界面(Application Binary Interface) • ISA:用户级ISA+特权级ISA – 用户级ISA 适用于操作系统和应用程序 – 特权级ISA 适用于硬件资源的管理(操作系统) 2021/2/5 5
ISA的实现 ISA通常设计时会考虑特定的微体系结构(实现)方式。 Accumulator→ hardwired, unpipelined(硬布线、非流水) -ClSC→ microcoded(微程序) RSC→ hardwired, pipelined(硬布线、流水线) VLIW fixed-latency order parallel pipelines(固定延 时、顺序执行、多条流水线并行) JM→ software interpretation(软件解释) ISA理论上可以用任何微体系结构(实现)方式 Intel lvy Bridge: hardwired pipelined CISC ( x86)machine with some microcode support(硬布线流水化(部分微程 序支持)) Spike: Software- interpreted RISC-V machine(模拟器) ARM Jazelle: A hardware JVM processor 2021/2/5
ISA的实现 • ISA 通常设计时会考虑特定的微体系结构(实现)方式。 – Accumulator hardwired, unpipelined (硬布线、非流水) – CISC microcoded (微程序) – RISC hardwired, pipelined(硬布线、流水线) – VLIW fixed-latency in-order parallel pipelines (固定延 时、顺序执行、多条流水线并行) – JVM software interpretation(软件解释) • ISA 理论上可以用任何微体系结构(实现)方式 – Intel Ivy Bridge: hardwired pipelined CISC (x86) machine (with some microcode support) (硬布线流水化(部分微程 序支持)) – Spike: Software-interpreted RISC-V machine (模拟器) – ARM Jazelle: A hardware JVM processor 2021/2/5 6
Recap:ISA的演进 Accumulator a Register-Memory Register-Register Processor Processor Processor Processor TOP ALU 9ALU ALU ALU Memory Memon Memory Memory Load a Push a oad R1.A oad Rl.A C=A+B Add B Push B Add R1. B oad R2, B Store c Add Store R1.C Add R3 R1 R2 Pop C Store R3. C 202125
Recap:ISA 的演进 2021/2/5 7
Recap:ISA必须说明哪些东西? Instruction Fetch 指令格式或编码方式。即如何编码? ·操作数和操作结果的存放位置 Instruction 存放位置? Decode 多少个显式操作数 存储器操作数如何定位 Operand 哪些操作数可以或不可以放到存储器 Fetch 寻址方式 Execute 数据类型和大小 ·支持哪些操作 Result 下一条指令地址 Store jumps, conditions branches fetch-decode-execute is implicit Next Instruction 202125
Recap:ISA必须说明哪些东西? • 指令格式或编码方式。即如何编码? • 操作数和操作结果的存放位置 – 存放位置? – 多少个显式操作数? – 存储器操作数如何定位? – 哪些操作数可以或不可以放到存储器 中? – 寻址方式 • 数据类型和大小 • 支持哪些操作 • 下一条指令地址 – jumps, conditions, branches – fetch-decode-execute is implicit! 2021/2/5 8 Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction
Recap:有关SA的若干问题 存储器寻址 操作数的类型与大小 所支持的操作 控制转移类指令 指令格式 202125 9
Recap: 有关ISA的若干问题 • 存储器寻址 • 操作数的类型与大小 • 所支持的操作 • 控制转移类指令 • 指令格式 2021/2/5 9
Recap:存储器寻址 ·80年以来几乎所有机器的存储都是按字节编址 一个存储器地址可以访问 一个字节、2个字节、4个字节、更多字节 不同体系结构对字的定义是不同的 16位字( Intel x86)32位字(MIPS) 如何读32位字,两种方案 每次一个字节,四次完成;每次一个字,一次完成 问题 (1)如何将字节地址映射到字地址(尾端问题) (2)一个字是否可以存放在任何字节边界上对齐问题 202125
Recap: 存储器寻址 • 80年以来几乎所有机器的存储器都是按字节编址 • 一个存储器地址可以访问: – 一个字节、2个字节、4个字节、更多字节….. • 不同体系结构对字的定义是不同的 – 16位字(Intel X86)32位字(MIPS) • 如何读32位字,两种方案 – 每次一个字节,四次完成;每次一个字,一次完成 • 问题: (1)如何将字节地址映射到字地址 (尾端问题) (2)一个字是否可以存放在任何字节边界上(对齐问题) 2021/2/5 10
Recap 尾端问题 little endian, big endian,在一个字内部的字节顺序问题 X+3x+2x+1 1. Little Endian byte te ordering Byte 3 Byte 2 Byte 1 Byte 0 32-bit Register Y Memory address x address of least-significant by yte(Intel x86 +1x+2 +3 2. Big Endian byte orderingByte 0 Byte 1 Byte 2 Byte 3 32-bit Register t Memory address X= address of most-significant byte(SPARC) 如地址xXx00指定了一个字(int),存储器中从xXx0处 连续存放fff000,则有两种方式: - Little endian方式下xX00位置是字的最低字节,整数值为0000 ffff Intel 80X86, DEC Vax, DEC Alpha(Windows NT Big endian方式下XX×00位置是字的最高字节,整数值为fft00BM 360/ 370, Motorola 68k, MIPS, Sparc, HP pa 202125
Recap: 尾端问题 • 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 2021/2/5 11