龙芯详细设计dc32-r_第1页
龙芯详细设计dc32-r_第2页
龙芯详细设计dc32-r_第3页
龙芯详细设计dc32-r_第4页
龙芯详细设计dc32-r_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MIPS R4000处理器简介片上CPU、FPU、MMU、一级cache以及接口逻辑超流水线技术(如下图)带接口的片上二级cache控制逻辑为高性能多处理器的服务器和低成本桌面系统提供可编程的系统界面为多处理器提供方便的支持CMOS技术实现,带有120万晶体管另外,由于R4000在单个芯片上实现,更容易定义时钟周期图1、R4000内部结构图64位的体系结构通过增加字长度和虚拟地址空间,将32位的R3000体系结构扩展为64位的R4000体系结构。以符号扩展的形式由32位实际地址产生64位虚拟地址,同时继续支持32位地址的体系结构。将32位地址扩展至64位需要使用硬件空间的7%;同时以时间增加一

2、个时钟周期为代价。CPU流水线图3、R4000流水线和指令交叠(超流水结构)CPU流水线载入互锁和分支指令中断正常的流水线流水对于载入指令,此指令执行之后会锁住硬件直到cache被访问,如图4所示:图4、载入指令的执行周期对于分支指令,在EX阶段执行完之前无法确定转移的地址,如图5。执行分支指令时,MIPS结构允许一条分支指令之后的指令在转移目标指令之前执行。整数数据通道R4000执行单元包含64位的寄存器文件,Load aligner,ALU,移位器,乘法器和除法器ALU阶段(EX)是对速度起关键作用的路径对于整数的乘除操作,R4000提供硬件支持对整数乘法器用两位的booth算法实现,将算

3、法分解为四步:booth解码,乘数选择,生成部分结果,结果累加乘法器周期为流水线时钟周期的2倍,操作数为32位则整数乘法器延迟为10个流水线周期;操作数为64位则整数乘法器延迟为20个流水线周期除法器用1位的不恢复余数法算法来实现。操作数为32位则延迟为69个流水线;操作数为64位则延迟为133个流水线。整型移位器寄存器文件有2个读端口和一个写端口,读和写可以在一个周期内完成。浮点部件单元包含3个功能部件:乘法加法除法器、单精度操作部件、双精度操作部件浮点乘法器如图6所示:(乘法流水线分为4个阶段)Booth编码和乘数选择从被选的乘数中产生局部结果前面几步操作产生的局部结果累加结果规格化图6、

4、浮点乘法器浮点加法器如图7所示:(需要4个流水线周期)加法器包含4个阶段:数据转换尾数相加结果取整位数移位加法器有两个数据入口通道。一个用于适应通常的操作数进行加法操作;另一个用于接收乘除法器的中间结果。浮点除法操作通过SRT除法算法实现(根据余数来确定商)。这种算法的复杂度见表1。图7、浮点加法器表1加法器可用于计算平方根,用SRT算法。对单精度操作数,计算平方根的延迟为54个周期,对双精度操作数延迟为112个周期。浮点寄存器文件有两个读端口和两个写端口。一个写端口用于计算结果的写回,另一个写端口用于浮点数的载入、存储和指令移动。读端口和写端口可以在同一周期内进行。阻塞,截断和异常流水线中断

5、流水进程导致阻塞,截断或异常。对于阻塞,流水线不前进。挂起接收后,重启流水线,并重新提交某些指令以保证结果正确。对于截断,例如载入指令锁住CPU,此时DF,DS,TC,WB执行但IF,IS,RF,EX不执行。当截断情况解决之后,流水线指令继续在之前的阶段上执行。对于异常,处理器阻塞正常的指令执行序列并将控制权转给例外处理。图8描述了载入指令在数据cache缺失的情况下整条流水线挂起的情况。不同的阻塞类型包括:数据cache缺失数据第一阶段阻塞:化解FP指令的异常;让指令标志作为结果的扩展;令写缓冲写回到内存指令cache缺失指令译码的后备缓冲区挂起多处理器,根据其他处理器的要求阻塞截断发生在指

6、令的DS阶段中结果不可用经常发生在载入指令中;等待乘法、除法、浮点等长周期指令结束R4000处理器可以使挂起和截断同时发生挂起和截断的执行在给定周期中逻辑检测到挂起或截断状态,在下个周期结束时处理器会处理这种状态图9描述了一个流水线的执行过程处理一个挂起之后,R4000在流水线重新运行之前初始化两个时钟周期的重启序列异常处理正常情况下,3种原因造成R4000流水线无效异常发生时,错误指令之后的指令无效分支指令执行中延迟槽口无效流水线挂起时产生无效的指令“气泡”,作为流水线后端已执行而前端未执行在使指令无效后,指令不存在任何状态内存管理单元(MMU)功能:通过使用片上TLB把虚拟地址转换成物理地

7、址,管理异常,控制cache子系统,并提供诊断和错误恢复机制。R4000提供增强的操作系统支持(1)增加TLB条目(2)使页面大小可变(3)64位体系结构的支持(4)管理员特权模式(5)时钟中断(6)物理地址陷入增加TLB条目方式:实现48条目的TLB,每一条映射到两个连续的页面ITLB是一个两条目,全关联的TLB,是主TLB的一个子集。分支目标指令地址转换补充ITLB,不会引起流水线延迟。使页面大小可变R4000以每一页为基础实现页面大小的变化,变化范围为4kbytes到16Mbytes。这减少了某些情况下对TLB的影响。方式:每一个TLB条目都有对应的掩码用于比较转化虚地址位。64位体系结

8、构的支持R4000指令集结构支持64位寻址。R4000修正使用40位的地址空间,大于40位则使TLB宽于数据通道。硬件保证虚拟地址的61:42位置0,方便软件对虚拟地址增长的需要。R4000支持32位的物理地址管理员特权模式(另外两种模式为内核模式和用户模式)CACHE指令提供一系列操作,实现高性能对称多进程操作系统和高性能工作站操作系统。(1)这种指令使一些任务更加有效:块拷贝(block copy), 页面清0(page zeroing), cache初始化(cache initialization), 页面刷新(page flushing), cache的测试(cache testing

9、)(2)CACHE指令支持一系列操作: Cache标志的载入和存储 选择使cache行无效 产生脏的cache数据 强迫写回 时钟中断累加器和比较器支持中断服务,累加器看作一个时钟,以流水线时钟速率的一半自增,当此值与比较器中的值相同时产生中断物理地址陷入当物理地址被指定(在watch register),程序引用该地址时产生中断内存层次R4000能适合一系列的系统配置。一个可编程的系统界面(system)能适应不同的系统规格说明,和未来的DRAM和SRAM的改进R4000支持两级的cache层次,两层的cache能够配置不同行大小。多个cache一致性协议可用于R4000支持的多处理器系统一

10、级cache大小有限,在高端的系统中需要支持紧耦合片外二级cache。R4000使用写回的策略管理缓存,(存储数据在cache,仅有在cache行被替换或刷新cache时,数据才会写回到内存中)一级cache为二级cache的子集,以避免虚地址别名。一级cache是虚拟索引的,因此二级cache存储3位虚地址(14:12),用于定位一级cache行,此一级cache行可能包括某些二级cache行的数据。只有一个副本能在一级cache中,因此在一级cache中没有两个虚地址能映射到同一个物理位置。一级cache当前版本支持到32Kbytes指令和32Kbytes数据缓存 一级cache有如下的属

11、性:(1)直接映射(2)虚拟索引(3)物理标志:指令和数据的一级cache有分开的数据和标记数组虚拟地址访问和虚拟地址到物理地址的转换并行进行,在TC阶段检查物理地址是否和Cache行中的物理地址匹配。 R4000结构支持字节存储,数据cache数组被排列成8块,每块有1个字节数据、一个奇偶校验位和一个冗余位。一级cache每次访问64位的数据,同时有写被选择的字节(selected bytes)的能力 二级cache二级cache有如下属性:直接映射物理索引物理标记128位宽度的二级cache接口允许对二级cache进行一次访问来填充4个字(1个字=32位)的一级cache行支持4Mbyte

12、s的二级cache大小在二级cache中,ECC支持修正1位错误和检测2位错误脏数据写回内存的复杂操作(状态机如图11)系统接口系统接口让处理器访问外部资源来解决cache不命中的情况。它允许一个外部代理访问一些处理器内部资源,对于多处理器系统,系统接口提供处理器机制,处理器机制对共享数据cache一致性是必须的64位的R4000系统接口属性:(1)用64位的宽度系统界面去增加主存的内存带宽。系统每两个流水线周期能接收双字。一级cache支持64位的数据宽度,处理器的最大速率和二级cache的访问时间直接相关(2)系统接口可在时钟被分频的版本下编程。(3)当R4000配置二级cache时,系统

13、接口支持交迭模式。多处理器支持R4000提供机制可以实现基于侦听或者目录方式的cache一致性协议(如图10)。设计者紧耦合多处理器逻辑与流水线活动以访问主缓存。 图10、多处理器协议Cache一致性协议R4000实现5状态cache一致性协议(无效,净排他,脏排他,共享,脏共享状态)(invalid, clean exclusive, dirty exclusive, shared and dirty shared)。脏共享状态有效地实现原语(信号量,semaphore)以支持升级了的协议:当处理器成功地获取一个脏(被修改)的共享的原语的副本,使用该原语的其他处理器将使用信号量的最新值。伴随

14、着MESI协议,从其他处理器的请求(也就是一个干预)会产生一个写回到系统得内存。这些写回加重了系统设计的负担。处理器存储cache行的状态、标记和数据.当R4000接收一个外部的探听(snoop),干预(intervention),无效(invalidate),或者更新,将检查二级cache的标记和状态位,同时允许并行地访问一级cache。在二级cache中不命中不需要进一步的行动,由于一级cache是二级cache的子集。如果一个外部的事件在二级cache中命中的情况下,或许需要访问一级cache来完成事务。为了进入一级cache,处理器延迟CPU的流水线。处理器支持写无效和写更新协议,以每

15、一个页面为基础来控制。TLB可能标记页面为(uncached),非一致性(noncoherent),一致性排他(coherent exclusive),一致性写排他(coherent-write exclusive)和一致性写更新(coherent write update)。图11、cache一致性R4000提供一对 (load linked )和( store conditional )指令,用于基于cache一致性处理器间同步 ,例子如下: Loop: II T0,0(T1) ;load counter,set load link bit Addu T0,T0,1 ;increment

16、Sc T0,0(T1) ;store back if load link bit still set Beq T0,0,LOOP ;retry if store failed如果位置已经在之前的连接装载指令中(load linked)导致无效,或被更新的条件存储(store conditional)指令失败,这个机制能实现原语(semaphore),位锁(bit-locks),取加(fetch-and-add)和其他同步机制。也能保证至少一个在总线上的处理器在第一次尝试会获得信号量,死锁和长时间等待并不会放生。 设计方法用二相零重叠的时钟方式,并将时钟分解为平衡的时钟树来控制skew。芯片使用两类寄存器/锁存器:堆栈和动态开关(pass-gate dynamic)。We equip

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论