- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RISC 机使用寄存器的策略有软件(分配寄存器的算法及编译程序的优化)和硬件(大量寄存器分成窗口,窗口寄存器有重叠)解决。 * 微指令计算机中,机器周期时间为最长微操作时间。复杂的运算由若干条微指令实现。 System Agent(系统助理)基本就相当于曾经的北桥芯片:包括PCI-E控制器,提供PCI-E 2.0信道,支持PCI-E x16或者PCI-E x8插槽; DMI:Direct Media InterfaceI(直接媒体接口),基于PCI-Express总线采用点对点的连接方式,用于连接主板南北桥的总线; Display and Misc:显示引擎等 * * 3.程序转移对流水线的影响 (1)遇到转移指令时,下条指令不再预取(流水)。 (2)用猜测法选定分支中的一个,继续流水。若猜测正确,流水线继续执行;若不正确,返回分支点。 (3)中断处理方法:不精确断点法,将中断发生时已入流水线的指令继续执行完后再进入中断处理子程序。精确断点法,即刻进入中断处理子程序。 4. 指令预取和乱序执行 指令预取:提前从存储器取出指令,暂存在CPU的指令预取部件中;指令取出后可预先分析,可提前取出该指令所需的操作数。 这样,当指令进入流水线后,取指和取数都在CPU内部进行,提高了速度。 乱序执行:对取出的指令预分析,CPU将多条指令不按程序规定的顺序执行(无数据相关、硬件有空) 6.6.1 RISC的CPU 本节主要以 Sun 微系统公司的 SPARC 结构为例来说明CPU(RISC)的构成,并进一步讲述一些基本原理。 SPARC 指令系统已在第5章中介绍过。 在RISC机的指令系统已确定的前提下,为了达到高速运算的目的,在硬件实施方面采取流水线组织尽量使大多数指令在一个机器周期内完成,并尽量缩短机器周期时间。 6.6 CPU举例 图6.30是Fujitsu 公司于1989年生产的基于 SPARC 的MB86901芯片的逻辑框图,主频为25MHz。 图6.30的右半部分基本上是运算器,左半部分为控制器。中间有4个专用寄存器。 1. SPARC 的逻辑图 图6.30 MB86901 逻辑框图 Y寄存器用来配合进行乘法运算 TBR 提供中断程序入口地址的高位部分 PSR 为程序状态寄存器 WIM 中存放与寄存器组有关的窗口寄存器编号 流水线上三条指令的地址 四级流水线:四条指令同时执行(最后一条正从存储器取) 指令缓冲寄存器 对齐电路:字节、半字等在寄存器中靠低位存放(存储器只是边界对准的) 与存储器交换数据通过结果寄存器 PSR为程序状态寄存器,共有32位 31 28 27 24 23 20 19 14 13 12 11 8 7 6 5 4 0 IMPL ver N Z V C 保留 EC EF PIL S PS ET CWP IMPL和ver在某些SPARC芯片中恒为0 EC:是否有协处理器 EF:是否有浮点处理器 PIL:当前处理器中断级别(高于此级别中断才响应) S:管理方式(系统方式、特权指令)还是用户方式 PS:产生陷阱Trap时,保存以前的S值 ET:是否允许响应中断 CWP:当前窗口寄存器,current window pointer 据统计,在CISC中,当程序运行时,访问存储器的指令占总数一半以上(有时达70%),增加寄存器数可减少访存次数。 如对于调用(Call)和返回(Return)指令,SPARC 利用寄存器组而不是存储器(堆栈)来完成上述的传递参数和保留、恢复现场工作,并采用改变窗口指针的办法而省略了在寄存器之间传送的操作,因此使速度大为加快。 2. RISC 的通用寄存器 CPU内存在的实际寄存器又称为物理寄存器(如MB86901的120个寄存器)。SPARC 机指令的寄存器地址码字段长度为5位,允许访问32个寄存器,称之为逻辑寄存器。 计算机运行时,有些数据是整个程序都要用到的,称为全局数据。有些数据限于当前程序段所用(类似 PASCAL 程序中的过程或函数)称为局部数据;同样,所有程序段都能访问的寄存器称为全局寄存器,限于一个程序段所用的寄存器称为局部寄存器。 SPARC 机将32个逻辑寄存器分成两部分:其中8个称为全局寄存器 (逻辑地址0~7),和其余24个寄存器(逻辑地址8~31)组成一个窗口(window)。 SPARC允许设置6~32个窗口,MB86901的寄存器组内有120个寄存器,分成7个窗口。 有一个指针指出当前程序所访问的窗口号,在指令地址所指出的32个逻辑寄存器中: r[0]~r[7]为全局寄存器 r[8]~r[31]为一个窗口中的其他24个寄存器 分成: 输入 ins(r[24]~r[31])
您可能关注的文档
最近下载
- 工业园区集中供汽规划设计时应注意几个问题.doc
- 采暖工程施工组织设计方案.doc VIP
- 征信详细版纸质个人信用报告2024年12月最新版可编辑带水印模板.pdf
- YST360.6-2024 钛铁矿精矿化学分析方法 第6部分:杂质元素含量的测定 电感耦合等离子体原子发射光谱法-报批稿.pdf
- 小学“水资源的保护与合理利用”跨学科主题学习活动设计.doc
- 国家安全教育论文.docx VIP
- 5.2.2平行线的判定(第1课时) 课件 2023-2024学年人教版数学七年级下册.pptx VIP
- 2020 CFA 课后习题 (公司金融).pdf
- 新药临床前毒理学评价—培训课件.ppt
- 教师培训主讲教师.pptx VIP
文档评论(0)