- 1、本文档共130页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* SPARC采用了这种重叠寄存器窗口技术。每个窗口由24个寄存器组成;总的窗口数可以是2~32个,取决于具体实现。图3-35说明了8个窗口的实现,总共使用了136个物理寄存器。物理寄存器R0~R7,是所有过程共用的全局(Global)寄存器。 为每个过程分配一个窗口,即可寻址逻辑寄存器R8~R31,一个窗口分为3组寄存器,每组8个寄存器: ▼ 逻辑寄存器R24~R31标记为输入,与父过程共用。 ▼ 逻辑寄存器R8~R15标记为输出,与子过程共用。 这两组寄存器与其他窗口重叠。 ▼ 逻辑寄存器R16~R23标记为局部的,是本过程使用的局部寄存器,既不与其他过程共用,也不与其他窗口重叠。 * 图3-35 SPARC 寄存器窗口布局和三个过程 * 采用重叠寄存器窗口技术,对程序来说,任何时刻都只能看见和寻址32个逻辑寄存器,尽管实际的物理寄存器不止32个。寄存器窗口重叠是为了在过程之间有效地传递参数,要实现窗口重叠则需重新命名寄存器。 例如:图3-35中的过程B,原有的父过程A输出寄存器R8到R15仍然可见,但是它们现在的名字是输入寄存器R24到R31,也就是说,寄存器被重新命名了。 然而,8个全局寄存器R0~R7是不会变的,也就是说,它们对所有的寄存器窗口都是相同的。 * 2. SPARC指令系统 SPARC基本指令集包括6类指令:LOAD/STORE指令、移位指令、布尔运算指令、算术指令、跳转/转移指令和其他指令。 SPARC具有典型的RISC特征,所有运算操作都基于寄存器,只有LOAD/STORE指令能够访问主存储器。 运算操作指令都是寄存器到寄存器的,运算类指令有三个操作数,其功能可以表示成: RS1 op S2 → Rd 其中,RS1是寄存器操作数,S2或者是寄存器操作数或者是一个13位立即数,Rd是目的寄存器。 * LOAD/STORE指令可以区分对字(32位)、双字、半字、字节的装入或存储。半字或字节的装入指令还可按有符号数和无符号数区别对待,前者是以符号位,后者是以0向左扩展,将目的寄存器左端空缺位填满。 存储器寻址方式只有一个,即存储器操作数的有效地址(EA)是基地址和偏移量之和。基地址来自寄存器,偏移量可以是立即数或来自寄存器,可表示为: 或 * SPARC的这种存储器寻址方式非常灵活,其不同的组合可以形成三种寻址方式,如表3-8所示的后三种寻址方式。 表3-8 以SPARC寻址方式综合成其他寻址方式 一般寻址方式 寻址表示 SPARC等价寻址 SPARC指令类型 立即寻址 操作数=立即数 S2 寄存器-寄存器 寄存器寻址 R RS1,RS2,Rd 寄存器-寄存器 直接寻址 EA=A R0+S2 装入,存储 寄存器间接寻址 EA=(R) RS1+0 装入,存储 基址寻址 EA=(R)+A RS1+S2 装入,存储 * * 第2个操作码op2用于区分BRANCH、SETH等指令。第3个操作码op3是定义指令操作的,每条指令只定义一个单独的操作。opc是协处理机指令操作码,opf是浮点处理机指令操作码。 指令格式3中,大多数指令的第1个源操作数rs1是寄存器操作数;第2个可能是寄存器rs2,也可能是立即数simm13;而目的地址一般均是寄存器rd(除了store和转移指令外)。整数算术逻辑运算指令是将rs1与rs2的内容(或simm13)按操作码op3规定的操作运算后把结果送往rd,其功能可以描述为: 当格式第13位i=0时,(rs1)op3(rs2)→rd 当i=1时,(rs1)op3 simm13→rd * LOAD指令将存储器中的数据取出送到rd中,而STORE指令将rd中的数据存到存储器中。存储器地址的计算方法如下(寄存器间接寻址方式): 当i=0时,存储器地址=(rs1)+(rs2) 当i=1时,存储器地址=(rs1)+simm13 * 由于指令长度是32位,因此不能在指令中包括32位常量。SETHI指令只能设置22位常量,而把剩下的10位留给其他指令去实现。 非预取的条件转移指令使用格式2,由cond字段决定测试哪种条件。a位用于延迟转移控制,当a=0时,跟在转移指令下面的指令总是被执行;当a=1时,只在条件转移指令转移成功时,跟在转移指令下面的指令才被执行。 格式1用于执行过程调CALL指令。这条指令很特别,其操作码只有两位,其余30位都用于定义地址。 * 随着技术的发展,新的指令格式被添加进来,新
您可能关注的文档
- 网络安全加密技术的知识.ppt
- 第五章 香港动作片二种.pdf
- 支架搭设作业指导书讲述.doc
- 第十章 使用数码相机获取图片素材.ppt
- 第五章 西安交大复试机械工程材料.pdf
- 第八章 分户验收记录表.doc
- 电加热炉计算机温度测控系统设计 计算机课程设计(完整版).doc
- 第六章 我国电子商务支付.ppt
- 第八节 电子商务应用案例.ppt
- 优利德数字表UT70B电脑接口软件使用说明书资料.pdf
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
文档评论(0)