当前位置:
文档之家› 13_精简指令集计算机-YINSHU
13_精简指令集计算机-YINSHU
重叠寄存器窗口 (Overlapping Register Windows)
重叠窗口的环形缓冲组织 (Circular Buffer diagram)
环形缓冲器的操作 (Operation of Circular Buffer) • 当一个调用指令发出,当前窗口指针将移动至显 示当前活动的寄存器窗口 • 如果所有窗口都在使用中,则生成一个中断指令 ,同时最早的窗口将保存至存储器 • 一个保存的窗口指针将指示保存下一个窗口的地 址
—更大的指令集 —更多的寻址方式 —硬件实现各种高级语言语句
–例如:VAX机上的CASE机器指令
CISC 的意图
• 降低编译器编写的难度 • 提高指令执行的效率
—复杂操作能以微代码实现 (microcode)
• 支持更复杂的HLL
指令的执行特征
• • • • • 执行的操作 (Operations performed) 所用的操作数 (Operands used) 执行顺序 (Execution sequencing) 很多研究用程序以HLL撰写 在程序执行过程中还进行了动态研究的测试
• 精简指令集计算机 (Reduced Instruction Set Computer) • 关键特征
—大量通用寄存器 —使用编译器技术用以优化寄存器的使用 —有限的和简单的指令集 —强调指令流水的优化
处理器的比较
CISC 的推动力
• 软件成本远超过硬件成本 • 高级语言 (High Level Language, HLL)的复杂度 日益增加 • 语义鸿沟 (Semantic gap) • 以上问题产生了以下诉求:
• 微程序式控制器 (Microporgrammed control unit)
—最早由Wilkes于1951年提出 —由IBM于1964年引入其 S/360生产线
• 高速缓存存储器 (Cache memory)
—最早由IBM于1969年在S/360 模式85 上实现商用
计算机的几个主要进展阶段(2)
Recently-used local scalars
Individual variables
Blocks of memory
Compiler-assigned global variables
Recently-used global variables
Save/Restore based on procedure nesting depth
Save/Restore based on cache replacement algorithm
Register addressing
Memory addressing
访问基于窗口寄存器组中的一个局部标量
寄存器窗口 (Register Windows)
• • • • • 只有少数传送参数和局部变量 过程动作的深度仅限定在一个相对窄的范围内 使用多个小的寄存器组 过程调用是自动切换使用不同的寄存器窗口 过程返回将切换只上一次使用的寄存器组
寄存器窗口 (续)
• 一个寄存器窗口的三个固定长度域
—参数寄存器域 —局部寄存器域 —临时寄存器域 —某一级临时寄存器与与下一级参数寄存器域是物理同 一的 —这种物理重叠允许免实际移动数据而传递参数
• 固态RAM (Solid State RAM)
—(参见存储器笔记)
• 微处理器 (Microprocessors)
—Intel 4004 1971
• 流水 (Pipelining)
—将并行化引入机器取指令和指令执行周期
• 多处理器 (Multiple processors)
下一个阶段- RISC
推论 (Implications)
• 对HLL最好的支持是通过优化典型HLL程序中最耗 时操作的性能 • 使用大量寄存器
—可以优化操作数的访问
• 精心谨慎地设计指令流水线
—例如:条件分支的预测等
• 减少指令集
大寄存器组方案的使用 (Large Register File)
• 基于软件
—依赖编译器来是寄存器使用最大化 —寄存器的分配由给定时间内使用最多的变量决定 —要求使用复杂的程序分析算法
操作数 (Operands)
• 主要是局部变量 • 优化的主选方向是对局部标量变量的存储和访问
过程调用 (Procedure Calls)
• • • • 非常耗时 取决于过程中用的参数和变量的数量 同时取决于嵌套的深度 大部分程序不会在大量调用后进行一系列相应的 大量返回 • 大多数变量是局部变量 • (参见访问局部性)
全局变量 (Global Variables)
• 由编译器为HLL中声明的全局变量指派存储器位 置
—对于频繁访问的全局变量来说,该策略效率较低
• 拥有一组全局寄存器
大寄存器组与告诉缓存的对比 (Registers vs Cache)
Large Register File Cache
All local scalars
操作 (Operations)
• 赋值语句 (Assignments)
—数据传送
• 条件语句 (Conditional statements (IF, LOOP))
—控制指令集的顺序
• 调用-返回 (call-return)过程非常耗时 • 少量HLL指令会导致很多机器代码的操作
HLL操作的加权相对动态频度[PATT82a]
William Stallings Computer Organization and Architecture 8th Edition 第13章 精简指令集计算机
计算机的几个主要进展阶段(1)
• 系Байду номын сангаас概念 (The family concept)
—IBM System/360 1964 —DEC PDP-8 —系列的概念将机器的结构与它的具体实现分离开
• 基于硬件
—简单地装备更多寄存器 —因此,更多变量能更长时间地保存在寄存器中
局部变量的寄存器 (Registers for Local Variables) • • • • • • 将局部变量保存在寄存器中 降低主存的访问频率 每一个进程(功能)调用只改变局部变量 参数必须被传递 结果必须被返回 程序调用的变量必须被保存