人民网>>IT>>IT专题>>龙芯>>参数揭秘

龙芯2的技术特点
  2006年10月09日17:30 【字号 】【留言】【论坛】【打印】【关闭

  龙芯2号的性能提高主要来自先进的结构设计,包括四发射和乱序执行结构的设计。而乱序执行的关键技术是龙芯2号结构设计的重点和难点,四发射的RISC结构如果没有乱序执行技术的支持是发挥不出效率的。例如典型的定点程序中平均每六、七条指令就有一条转移指令,意味着在四发射结构中每两拍就有一条转移指令。如果等转移指令的目标地址确定再进行后面的取指,意味着每取两拍指令就得等五、六拍甚至更多才能继续后面的取指。又如,做一个简单的加法需要两个操作数,而如果这两个操作数都需要从内存中(即主板上的内存条)取回来,那么在做这个加法之前,需要至少上百拍的时间为这个加法准备数据。指令乱序执行的核心思想就是减少各种相关引起的等待,充分发挥处理器的效率。

  主要做法包括:(1)转移猜测,即在转移指令目标尚未确定的时候,根据过去转移指令执行的历史猜测该转移指令的转移方向和转移目标,并根据猜测的结果进行后续指令的取指,为处理器提供连续稳定的指令流。如果最后发现猜测错误,则取消猜错的转移指令后面的指令。(2)动态调度,即在前面的指令由于操作数未准备好而等待时,后面的操作数已经准备好的指令可以越过前面的指令先执行。(3)寄存器重命名,即指令运算后先写到一个临时的寄存器,等确定该指令不会被取消后再写到真正的目标寄存器中去。这样做的好处除了便于前面指令发生例外或转移猜错时取消外,还避免了由于两条指令写同一个寄存器时的等待。

  此外,访存指令的乱序执行又有新的特征。除了通过增大CACHE和对CACHE进行有效的组织尽量提高CACHE命中率并降低CACHE访问的延迟外,还需要对访存指令进行乱序执行以提高效率。访存指令乱序执行的关键技术包括:(1)Non-blocking技术,即在前面的访存指令由于CACHE不命中进行长延迟的存储访问时,后面的指令可以继续访问CACHE。(2)Memory Disambiguation技术,即在存数和取数指令都乱序执行的情况下,保证取数指令都能取回它前面的最近一条对同一地址的存数指令所存的值。比如如果一条取数指令在一条存数指令之后且两条指令的地址相等,但取数指令先访问CACHE,也要保证取数指令取回该存数指令的值;又如如果一条取数指令在一条存数指令之前且两条指令的地址相等,但存数指令先访问CACHE,也要保证取数指令取回原来CACHE中的值,而不是存数指令新存的值。(3)Load Speculation技术,即在取数指令访问CACHE后,它前面的存数指令地址还没有确定(即取数指令从CACHE中取回的值有可能是错误的),先把取数指令从CACHE中取回的值送给后续的指令用,如果后来发现它前面的存数指令和该取数指令访问的是同一个单元,再取消该取数指令后面的指令。(4)Write Buffer技术,由于存数指令也是乱序执行的,存数指令所存的值不能立即写到CACHE或内存,而是要根据存数指令在程序中的次序写到CACHE或内存。

  在乱序执行的结构中,虽然指令执行是乱序的,但开始和结束是有序的。指令在译码和寄存器重命名后就放在一个有序的队列中,由该队列来记录每一条指令的执行阶段并有序地结束指令。即指令在流水线中是有序进入、乱序执行、有序结束。

  龙芯2号的主要结构特点包括,64位设计,7-10级流水线,包括取指、译码、重命名、发射、读寄存器、执行写回、提交等,其中乘除、浮点操作、以及访存操作在执行写回阶段需要多拍。四发射结构,最多可以有64条指令乱序执行。共有5个功能部件,包括定点ALU1(完成定点加减、逻辑、移位、转移),定点ALU2(完成定点加减、逻辑、移位、乘除),浮点ALU1(完成定点加减、转换、转移),浮点ALU2(完成乘除、开方),以及访存部件(完成访存、系统管理、数据传送)。通过对浮点指令fmt域的简单扩充,浮点部件可以执行完整的定点指令以及4路SIMD的媒体指令。在乱序执行方面,转移猜测使用混合预测+Gshare + BTB + RAS的转移猜测方式;通过物理寄存器到逻辑寄存器映射进行寄存器重命名,定点浮点寄存器堆各为64项;动态调度方面定点和浮点保留站各16项,Reorder Buffer为64项。

  在存储管理方面,TLB为64项全相联,每项两页,页大小在4KB-4MB之间可变。此外,有一个独立的8项的指令TLB是数据TLB的子集。与龙芯1号一样,在TLB中增加可执行位,防止缓冲区溢出攻击。数据CACHE和指令CACHE各为32KB,二路组相联。最多允许32个访存操作的Non-blocking访问,访存相关在访存队列中通过全相联的查找解决,避免了象Alpha21264或MIPS R10000中碰到访存相关时需要重新发射。实现load-speculation,允许前面的store操作未确定的情况下执行load操作并返回结果。Cache失效时实现关键字优先访问,以减少访存等待,Uncached操作实现uncached accelerate算法加速I/O访问。

  来源:来自论坛

(责任编辑:毕磊)
相关专题
· 龙芯
请注意:
  1. 遵守中华人民共和国有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。
  2. 人民网拥有管理笔名和留言的一切权力。
  3. 您在人民网留言板发表的言论,人民网有权在网站内转载或引用。
  4. 如您对管理有意见请向留言板管理员人民日报网络中心反映。
精彩推荐:
钱江大潮分外壮观
钱江大潮分外壮观
各国领导人的体育秀
各国领导人的体育秀
男为讨薪爬塔吊轻生
男为讨薪爬塔吊轻生
猪年饰品大量上柜
猪年饰品大量上柜


热点新闻榜
...更多
  
人民网搜索  互联网搜索








   

镜像:日本  教育网  科技网
E_mail:info@peopledaily.com.cn 新闻线索:rm@peopledaily.com.cn

人民日报社概况 | 关于人民网 | 招聘英才 | 帮助中心 | 广告服务 | 合作加盟 | 网站声明 | 网站律师 | 联系我们 | ENGLISH 
京ICP证000006号|
网上传播视听节目许可证(0104065)| 京朝工商广字第0394号
人 民 网 版 权 所 有 ,未 经 书 面 授 权 禁 止 使 用
Copyright © 1997-2006 by www.people.com.cn. all rights reserved