已阅读5页,还剩50页未读, 继续免费阅读
(微电子学与固体电子学专业论文)64位risc+cpu的cache设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文主要介绍了国内第一枚6 4 位r i s cc p u v e g a 的c a c h e 特性及设计。 首先介绍了r i s cc p u 的主要特点,与c i s c 架构不同的是r i s c 架构采用的是使 用率较高的指令,而且所有指令长度一致,这样非常有利于软件硬件同时发展,因 而r i s c 架构应用越来越广泛。 为了提高运行速度,r i s c 架构主要采用了两种方法:流水线及快速缓存 ( c a c h e ) 。五级流水线使得每条指令的平均执行周期缩短至一至两个周期,而c a c h e 的存在减少了内存的存取频率,补充了内存存取速度慢的不足,进而提高运行速 度。本人参与开发的c a c h e 采用哈佛结构两个分离的片内c a c h e :指令c a c h e 和 数据c a c h e ,在c a c h e 与内存之间还有w r i t eb u f f e r 用于两者之间数据缓存,以保证 c a c h e 与主内存之间内容的一直性。指令c a c h e 大小为1 6 k b y t e s ,数据c a c h e 大小 为8 k b y t e s ,两者都是直接映射,由虚拟地址索引,物理地址与c a c h et a g 相比较来 确定c a c h el i n e 的h i t m i s s 情况;w r i t eb u f f e r 为一“f i f o ”结构。 整个c a c h e 设计我们采用v e r i t o gh d l 实现,并应用e d a 工具进行了综合与 验证,这是一个循环往复的过程。目前该模块已经顺利通过验证,我们期待着我们 的c p u 产品- - v e g a 的面市。 关键词:r i s c ,流水线,指令c a c h e ,数据c a c h e ,w r i t e b u f f e r ,v e r i l o g a b s t r a e t t h i sp a p e rm a i n l yd e s c r i b e st h ec h a r a c t e r i s t i c sa n dd e s i g no ft h ec a c h eo f t h ef i r s t 6 4 - b i tr i s ec p u v e g ao fo u r c o u n t r y t h ef e a t u r e so fr i s ca r ei n t r o d u c e df i r s t l y d i f f e r e n tw i t hc i s ca r c h i t e c t u r e ,r i s ca r c h i t e c t u r ea d o p t sm o s t u s e di n s t r u c t i o n sa n d f i x e st h el e n g t ho fi n s t r u c t i o nw o r d t h i si sv e r yu s e f u lf o rt h ec o m m o n d e v e l o p m e n t o f h a r d w a r ea n ds o f t w a r e a n dr i s ea r c h i t e c t u r ei su s e di l o r ea n dm o r e e x t e n s i v e l y r i s ea r c h i t e c t u r em a i n l ya d o p t st w ow a y st o i m p r o v es p e e d :p i p e l i n ea n dc a c h e t h e f i v e s t a g ep i p e l i n ec a nr e d u c et h en u m b e r o fc y c l e s i n s t r u c t i o nt oo n et ot w oc y c l e s a n d h i g h s p e e dc a c h ec a l lp r o v i d eap r i m a r yp o o lo fr e u s a b l ei n s t r u c t i o n sa n dd a t at h a t a r ea c c e s s e dm o r ef r e q u e n t l yb yt h ep r o c e s s o r t h i sc a ni m p r o v et h el o n ga c c e s st i m eo f s y s t e mm e m o r y t h ec a c h e sw ed e s i g n e di no u rp r o j e c ta d o p th a r v a r da r c h i t e c t u r e s e p a r a t eo n - c h i p c a c h e s :i n s t r u c t i o nc a c h ea n dd a t ac a c h e t h e r ei saw r i t eb u f f e rb e t w e e n c a c h e sa n ds y s t e mm e m o r yu s e da sab u f f e r ,i no r d e rt ok e e pt h ec o n s i s t e n c yo ft h e c o n t e n ti nc a c h e sa n dm e m o r y o u ri n s t r u c t i o nc a c h ei s 1 6 k b y t e s ,a n dd a t ac a c h ei s 8 k b y t e s t h e ya r ea l ld i r e c t - m a p p i n g ,i n d e x e dw i t hav i r t u a la d d r e s sa n dc h e c k e dw i t ha p h y s i c a lt a g w r i t eb u f f e ri sa “f i f o ” t h ed e s i g no fc a c h ei s i m p l e m e n t e dw i t hv e r i l o gh d l ,a n do u rd e s i g nh a sp a s s e d t h el o g i cs y n t h e s i sa n dv e r i f i c a t i o no f a d v a n c ee d at 0 0 1 i ti sar e c y c l i n gp r o c e s s w ea r e l o o k i n gf o r w a r dt os e e i n go u r v e g ac o m ei n t om a r k e ts o o n k e y w o r d s :r i s e ,p i p e l i n e ,i n s t r u c t i o nc a c h e ,d a t ac a c h e ,w r i t eb u f f e r ,v e r i l o g 天津大学硕士学位论文:6 4 位r i s cc p u 的c a c h e 设计 前言 集成电路技术是现代信息技术的基础,是衡量一个国家科学技术水平和综合国 的重要标志之2 。我国将i c ( 微电予) 产业和软件产业作为国家”十五”期间重点 发展的两大产业,将这两大产业视为人的“心脏”和“大脑”,并在政策上给予相 当大的优惠。国家己决定在“十五”国家“8 6 3 ”中列“超大规模集成电路重大专 项”,投入经费达1 2 亿,重点支持大规模集成电路设计和相关材料设备,争取到 2 0 10 年使我国成为大规模集成电路设计大国。为适应国家的这一发展规划,满足 微电子发展的需要,今后集成电路发展的重点将是提高电路设计水平,加快研制具 有自主知识产权的芯片,集成电路的设计技术迅速成为当前的发展热点。其中 c p u 核心技术的掌握对于保障我国信息安全、提高信息产业的核心竞争力和效益 更是具有重大意义。科技部徐冠华部长在发言中指出,没有自己的c p u 芯片,我 们的信息产业大厦就如同建立在沙滩上。我们只有拥有了自己的核心技术,才能摆 脱受制于人的局面。 本次课题参与设计的深圳艾科创新微电子有限公司6 4 位r i s cc p u v e g a 将是我国第一枚6 4 位r i s cc p u 。目前该产品已进入版图设计阶段,不久即将流 片,预计产品将来可以应用于手持p c 及p d a 设备,智能电话和互联网电子邮件 电路,信息家电,网络及数字通讯设备等多种场合。如果产品获得成功,这将是我 国c p u 史上继中芯微系统公司“方舟一号”的又一大突破,这样我国便掌握了当 今世界6 4 位、3 2 位r i s cc p u 的核心技术。 当今世界较为通用的c p u 有1 6 3 2 位,6 4 位。对于r i s cc p u 来讲,m i p s 与 a r m 两大类产品拥有最大的市场占有量。如m i p s 3 2 系列,m i p s 6 4 系列,a r m 7 系列,a r m 9 系列,a r m 9 e 系列等已经广泛应用于各种领域。我们设计的这款 c p u 与n e c v r 4 3 0 0 ( 属m i p s 产品) 兼容,在国内处于绝对领先水平。 在这次c p u 开发过程中本人与另一同事合作开发了c a c h e 模块,并完成了若 干流水线控制模块的激励程序编写与仿真,同时还独立完成了一流水线控制模块一 天津大学硕士学位论文:6 4 位r i s cc p u 的c a c h e 设计 一f l u s h 的开发。由于流水线模块设计太多模块间的互联以及时序逻辑分析,本论 文只对c a c h e 的特性及开发做了介绍。 本次设计的c a c h e 为国内首次6 4 位r 1 s cc p uc a c h e ,其结构及大小都达到国 内领先,世界先进水平。所设计c a c h e 采用了当今世界较为流行的哈佛结构分 离的片内指令c a c h e 和数据c a c h e ,与纽曼结构( 统一的指令和数据c a c h e ) 相比哈 佛结构能更有效的提高c p u 运行速度。c a c h e 查找为直接映射方式。其中指令 c a c h e 大小为1 6 k ,数据c a c h e 大小为8 k ,c a c h e 与主内存间数据的一致性以w r i t e b a c k 方式通过w r i t eb u f f e r 来保证,w r i t eb a c k 方式与w r i t et h r o u g h 方式相比效率更 高,相应的能更有效的节省c p u 处理时间。本人本次设计中采用的硬件描述语言 为v e r i l o gh d l ,所有模块设计通过了先进e d a 工具的综合与验证。 本论文将从全局着手,对r i s cc p u 以及c a c h e 相关背景知识进行了描述,见 第一章至第四章,之后围绕大规模集成电路设计流程对本人所完成c a c h e 设计工作 进行了详细介绍,见第五章。 2 天津大学硕士学位论文:6 4 位r i s cc p u 的c a c h e 设计 第一章r i s c c p u 简介 c p u 从指令的特点上大致可以分为两类:c i s c ( c o m p l e xi n s t r u c t i o n s e t c o m p u t e r ) ;f i r i s c ( r e d u c e di n s t r u c t i o ns e tc o m p u t e r ) 。2 0 世纪8 0 年代以前一直是 c 1 s c 即复杂指令集计算机的天下。后来随着大规模集成电路技术的发展,计算机 硬件成本不断下降,软件成本不断提高,于是人们增加了更多功能更为复杂的指 令,以提高操作系统的效率:另外在市场竞争的压力下,同一系列产品的新型机为 了兼容上一代产品肘其指令系统只能扩充,原有的指令还必须完整保留,这样一来 指令系统变得越来越庞大越来越复杂,有的计算机指令甚至达到数百条,如i b m 公司的大中型计算机,i n t e l 公司的8 0 8 6 ,8 0 2 8 6 ,8 0 3 8 6 微处理器等。日益庞大 的指令系统不仅使计算机研制周期变长,而且还有难以调试,难以维护等一些自身 无法克服的缺点。于是,r i s c 的概念就应运而生。1 9 8 2 年加州大学伯克利分校研 制了r i s c 架构的c p u ,后来发展了m i p s 系列产品:同年i b m 公司也宣布研制成 功8 0 1 小型r i s c 架构的计算机。r i s c 发展到今天已经与c i s c 架构并驾齐驱,应 用越来越广泛,例如当今好多p d a ,手机,数字消费类电子产品s o c ( s y s t e m o n c h i p ;片上系统) 等等纷纷选择采用r i s c 架构的c p u ,还有电脑通用处理器也结 合了r i s c 与c i s c 两种技术。 第一节r i s c 特点 r i s c 的出现是因为人们发现机器执行的指令中8 5 左右的都是简单指令。复 杂指令运用得很少,于是人们通过简化c p u 的指令功能,使指令的平均执行周期 减少,从而提高c p u 的工作主频;同时使用大量通用寄存器,来提高子程序执行 的速度。所以般r i s c 计算机的速度是同等c i s c 计算机的3 倍左右。当然, r i s cc p u 的速度不是简单的通过简化指令提高的,采用精简指令集只是它的一个 方面,相应的还有一系列的特点使得其c p u 速度得以大大提高。我们来看c p u 执 天津大学硕士学位论文:6 4 位i 刚i s c c p u 的c a c h e 设计 行运算的速度一般受三个因素的影响:( 1 ) 程序中指令数i ;( 2 ) 每条指令执行所用周 期数c p i ;( 3 ) 周期时间t 。由这三者又得出: 程序执行时间= i * c p i * t 因此从这个等式可以看出减小二个因素中任意一个都可以提高c p u 的速度。同样 的我们可以由此来说明r i s cc p u 的特点。 1 采用多级指令流水线( p i p e l i n e ) 结构 采用流水线技术就是将每条指令分成固定几个步骤完成,同时让多条指令重 叠执行,这样就可以减小c p i 值,使c p u 不浪费空周期。这是非常重要的一个特 性,稍后论文会对此进行具体描述。例如:n e cv r 4 3 0 0 采用的是五级流水线,就 是说在同一时钟周期可同时执行五条指令;a m d k 6 k 6 2 采用的是六级流水 线,同一时钟周期可同时执行六条指令,这样一来平均每一个时钟周期就可以执行 一条指令,当然这跟流水线的运行情况相关。流水线运行状况由流水线控制处理。 2 采用固定长度的简单指令格式 例如n e cv r 4 3 0 0 所有指令长度都为3 2 位长,一般都为简单指令如算术逻辑 运算指令,加载( 1 0 a d ) 存储( s t o r e ) 指令以及跳转指令等等。这样统一的指令集 非常有利于采用流水线结构,可减小时钟周期数量,也即减小c p i 值,从而实现 c p u 速度的提高。对于复杂操作可以用多个简单指令完成,也就是将部分硬件功 能由软件来完成,这样可以降低硬件复杂度,使机器架构更为紧凑。 3 采用加载( l o a d ) 、存储( s t o r e ) 结构 执行操作数存储在主内存的指令相对来讲速度会慢一些,因为主内存的存取 时间要求比较长。为了减少主内存的存取次数,r i s c 架构采用了l o a d s t o r e 结构。 就是在处理器中安排有很多寄存器,平时大部分指令的操作数都存在于这些寄存器 中,只有l o a d s t o r e 指令才会对主内存进行存取操作。这样就可以达到大大减少主 内存存取次数的目的,从而可以降低主内存带宽要求;同时将指令限制于寄存器执 4 天津大学硕士学位论文:6 4 位r i s c c p u 的c a c h e 设计 行还有利于指令的简化。例如:a m d - - k 6 k 6 - - 2 、p i i c e l e r o n p r o 均支持对寄存 器的直接操作和重新命名:n e cv p 4 3 0 0 有3 2 个通用寄存器。 4 采用高速缓存( c a c h e ) 结构 c p u 内存中存有c p u 运行所需的指令与数据,但是主内存访问速度远远不能 满足处理器的要求,于是为保证指令和数据不间断地快速传送给处理器,r i s c c p u 设置了一定大小的c a c h e 暂存一部分主内存的指令及数据,以满足处理器快速 需求。 根据c a c h e 结构不同r i s c 可分为两种结构:纽曼( n e w m a n ) 结构和哈佛 ( h a r v a r d ) 结构。纽曼结构指具有单一的指令和数据c a c h e ,二者不加以区分,例 如a r m 7 t d m i 就是纽曼结构;哈佛结构是指具有分离的数据c a c h e 和指令 c a c h e 。例如n e cv r 4 3 0 0 就是哈佛结构,含有两个分离的片内c a c h e ,分别为1 6 k 指令c a c h e 和8 k 数据c a c h e 。本文的下列章节将对6 4 位r i s cc p uc a c h e 进行详 尽介绍,这是本文的主要内容之一。 5 对编译器的要求一般比较高 一般要求编译器在编译时必须充分考虑机器代码的在c p u 中的执行状态,在 编译时不是按原程序的代码顺序安排机器指令的顺序,而是需要根据指令执行速度 的快慢以及c p u 的流水线深度等情况合理调整机器代码的顺序,从而可使c p u 最 大限度地多级流水线并行执行,这样才可充分发挥r i s c 微处理器的性能。 第二节r 1 s c 微处理器设计 自从r i s c 问世以来,r i s c 设计总是一个反反复复反馈调整不断完善的过 程。m i p s 系列就是由早期斯坦福大学有关m i p s 的研究成果以及相应的编译器开 发步步发展起来的。r i s cc p u 在增加每一项新的特性之前都必须经过严格的确 天津大学硕士学位论文:6 4 位r 1 s c c p u 的c a c h e 设 f 认,只有能真正提高c p u 性能的才可以增加。比如它的每一条指令的增加都要经 过慎重筛选,新指令必须是能真正提高c p u 性能。在这方面m 1 p s 尤其重视,因 而它的指令集极为精简,并且易于高级语言的转换。每一条指令都是c p u 的架构 需要或者是可以由编译器自然生成的,这样使得产品应用极为方便。而其它些 r 1 s c 产品经常会有一些用户级指令难以由编译器生成,这样就限制了产品的使用 范围。 尽管r i s c 设计有诸多严格要求,但是与c i s c 设计相比它还是有着不可比拟 的优越性,这在芯片面积和人力资源上显得更为突出。 首先,r i s c 设计周期短。r i s c 架构的c p u 实现起来更快:因为一个不带微 代码的新型简化架构的实现和调试比带有微代码的复杂架构要容易得多。由于 c i s cc p u 设计周期很长,往往是所采用技术都过时了调试工作还没有彻底完成, 而r i s c 设计就很少陷入这种尴尬场面。 其次,所占芯片面积小。r 1 s c 处理器的精简可以在“拥挤”的芯片上释放一 些空间给其它单元,比如寄存器,t l b ,协处理器以及快速乘除单元,这些附加的 资源可以r i s c 处理器性能得到提高。 第三,为程序员提供了便利。r 1 s cc p u 架构的简单同样有利于程序员。首先 统一的指令使程序员易于掌握:另外由于指令流完全在流水线的控制下执行,指令 数及周期数之间关系比较紧密,有利于程序员掌握程序的执行过程,同时也使程序 员对硬件更为了解,这在调试阶段非常有效。 第四,易于采用先进的半导体技术。随着v l s i 技术的发展,芯片上所载晶体 管的数目直是最致命的限制因素。而r i s c 的精简使其可以采用比c i s c 小得多 的片内晶体管,这样一来就导致最先采用新的v l s i 技术( 比如v l s ie c l ,v l s i g a a s ) 的c p u 曾经一直是而且将来还会是r i s c 架构的c p u 。因而r 1 s c 处理器总 是能利用最新的半导体技术,并且在c i s cc p u 采用这些新技术之前它们已进一步 提高了性能。 6 天津大学硕士学位论文:6 4 位p j s cc p u 的c a c h e 设计 第二章流水线( p i p e l i n e ) 在正式介绍r i s cc p u 的c a c h e 设计之前先介绍个r i s c 架构非常重要的概 念流水线,这也是前面所述r i s c 架构之所以快速的重要原因之一。 2 1 流水线定义 假设有1 0 人去医院体检,要进行眼科,口腔科,肝功,及胸透四项检查。眼 科,口腔科检查各需6 分钟,验肝功需8 分钟,胸透需7 分钟,下面用两种方法安 排体检。第一种方法是每人一次性检查完所有项目,如图2 1 所示,然后接着第二 个人检查,这样1 0 个人体检完所花的最短时间是2 7 0 分钟;第二种方法是一个人 检完一项进行第二项检查时,第二个人开始检查第一项,如图2 2 所示,这样给每 项检查预留所有项目中最长时间,本例中是8 分钟,则1 0 个人体检完所花的最长 时间是1 0 4 分钟,比第一种方法节省了至少1 6 6 分钟,而且体检人数越多节省的时 间越多,r i s c 架构中流水线( p i p e l i n e ) i 构i 概念就是基于这个原理。在这个例子中相 当于采用的是四级流水线,即在同一时间内可以进行四项检查,如图2 2 中两条竖 虚线所示。 曼 曼 鱼! f 墅翌f 壁翌i 旦竺翌l 竺竺f8 。, z :亘堑 亟 匦堕i 夏亟口 1 2 3 4 体检总时间:1 0 - ( 8 十6 + 6 + 7 ) = 2 7 0 分钟 图2 - l方法一 肝功日琵科口腔科脾透 8888 l 肝功l 眼科口腔科胸透 88 88 肝功日艮科口腔科脾透 8 8 88 肝功 眼科口腔科胸透 体检总时间:8 1 3ti 0 4 分钟 图2 - 2方法二 7 天津大学硕士学位论文:6 4 位r i s c c p u 的c a c h e 设计 本次参与设计的深圳艾科创新微电子有限公司6 4 位r i s cc p u ( g 为v e g a ) 与 n e cv r 4 3 0 0 兼容。我们采用的是五级流水线,即在一个时钟周期内可以同时执行 五条指令。五级流水线的划分是依据一条指令的执行过程确定的,即将所有指令都 分成固定的5 个步骤完成,从取指令,解码,运算,数据存取到数据写回寄存器, 如图2 3 所示。在整个c p u 运行中,流水线受流水线l 对钟( p i p e l i n ec l o c n 控制,时 钟的快慢由p i n 脚d i v m o d e ( 1 :o ) 决定。流水线时钟又叫p c l o c k ,它的每个周期叫 做p c y c l e ,每个p c y c l e 分为两级:巾1 和0 2 。这样一来就相当于要在5 个p c y c l e 中执行完一条指令,当然如果所需的数据不在c a c h e 当中而需要从主内存中获取的 时候执行一条指令就会不止5 个p c y c l e 了。在流水线顺利执行时五条指令就可以 同时执行了,效果相当于一个时钟内完成一条指令,如图2 - 4 所示。图中水平方向 表示一条指令的执行过程,垂直方向表示五条指令同时执行。 l i d a s t e r c l o c kc y d e i p c 州e l p c 嗽厂弋厂_ 、厂_ 、厂弋厂弋 户n a i 中1i 啦i 零1j 眈i 辔1 0 2 i m 1l 中2 im 1 | 啦l c y c l e 图2 - 3 流水线示意图 五级流水线分别是: i c 一从指令c a c h e 中取指 r f 一从寄存器中取出经过解码的指令 e x 一指令执行 d c 一一所数据c a c h e 进行操作 w b 一将运算结果写回到寄存器 天津大学硕士学位论文:6 4 位r i s c c p u 的c a c h e 设计 容。 c l | 盯毪n t c p u c y c i e 图2 - 4 流水线中指令的执行 下面图2 - 5 说明了各级流水线的操作,表2 1 具体解释了各个操作的具体内 嘲h :hnnn p h a s ei 。- 1m 2 i 中- 1 中2i 中i 中2l 中,i 0 2 l 中,i 0 2 l c y c l e 玉二工二叵二 ! 二工 叵二 e 图2 - 5 流水线操作 9 一 粤一 匠旦 e t t n 咖 鹏 埘 一 一 一 天津大学硕士学位论文:6 4 位r i s cc p u 的c a c h e 设计 表2 - 1 流水线操作描述 b e g i n sd r 1 g m n e m o n i c d e s c r i p t i o n s c y c l e 地j s p l m e 中1 i ci c fi n s t r u c t i o nc a c h ef e t c h o 皇 i t l bi n r a r u c t i o nm i c r o - t l br e a d m 1i t ci n s t r u c t i o nc a c h et a gc h e c k r f r r e g 话t e rf i l er 翻i d r f 中2i d b ci n s t r u c t i o nd e c o d e i v ai n s b + u c t i o nv i r t u a la d d r e s sc a l c u l a t i o n b c h l pb r a n c hc o m p a r e e x州a l ua r i t h m e t i cl o g i co p e r a t i o n d v ad a t av i r t u a ia d d r e s sc a l c u l a t i o n d c rd a t ac 8 e h er e 8 d 巾1 d t l b d a t a j o i n t - t l b 删 d c l al o a dd a t aa l i g n m c m t 中2 d t cd a mc a c h et a gc h e c k d c wd a t ac a c h ew r i t e 中1 w b r f w r e s h t t e rf i l ew r i t e 曲2 下面就以l w ( 1 0 a dw o r d ) 指令执行为例说明流水线各级操作 l wr t ,o f f s e t ( b a s e ) i c 级 r f 级 在i c 级的m 1 ,虚拟地址的低1 4 位用来指向指令c a c h e ( 因为指令 c a c h e 大小为1 6 k ) 。同时i t l b 选好相应物理地址所在的页地址。 在r f 级的中l ,c a c h e 的i n d e x 与i t l b 的p f n ( p a g ef r a m en u m b e r ) 相 比较,同时读出指令c a c h e 中的数据。在q ) l 的后面部分c a c h e 的 h i t m i s s 信号有效,同时虚拟p c 值加4 指向下一条指令。 在m 2 ,流水线到达双端口寄存器( b a s e l ,此时寄存器输出据有效。 同时如果所需数据还没有写入相应寄存器( 此时为b a s e ) ,旁路选择器 会从e x 级或d c 级提前选择合适数据输入。 1 0 天滓大学硕士学位论文:6 4 位r i s cc p u 的c a c h e 设计 e x 级 通过旁路选择器得到的g p r ( b a s e ) 的值加上偏移量( o f f s e t ) 的值便组成 所需地址。a l u 操作的结果就是把运算出来的结果也就是操作数的 有效虚拟地址( d v a ) 在中2 输出。 d c 级 同时访问数据c a c h e 和t l b ;将c a c h e 的t a g 值与t l b 的 p f n 相比较;经过排序器( a l i g n e r ) 排序的数据经锁存在0 2 输出。 w b 级在中1 将从数据c a c h e 得到的数据写入寄存器n 。 2 2d l a ys l o t v e g a 的另外一个特点是对加载指令( 1 0 a d ) 和跳转指令( b r a l l c h j u m p ) 进行延迟 处理,下面就对跳转指令的延迟处理进行说明。 在v e g a 的流水线运行当中,如果出现下面两种情况之一需要对跳转指令进 行延迟处理,就是在跳转指令与目的指令中间可以附加一条有效指令: 目标地址是由j u m p 指令计算出来的,会无条件跳转 b r a n c h 指令条件满足并且目标地址已经算出 由于b r a n c h j u m p 指令的目标指令地址是在流水线的e x 级计算出来的,所以 目标指令i c 的级必须等到b r a n c h j u m p 指令的e x 级才能有效,也就是在 b r a n c h j u m p 指令的下下一条指令运行,所以在这二者之间就可以附加一条指令让 流水线继续进行而不浪费时间,所加的那条指令就叫做b r a n c h 延迟( b r a n c hd e l a y s l o t ) ,具体如图2 - 6 所示。 b r a n c h 旧哺n c h t a r g e t s l n g l eb c s n c h d 肼量y i n s t r u c t l o n b r a n c hd e l a y 图2 - 6b r a n c hd e l a y 2 3 数据冒险( d a t ah a z a r d1 在流水线的实际操作中会有很多特殊情况要进行特殊处理,比如中断( i n t e r l o c k ) 处理,异常( e x c e p t i o n ) 处理,还有硬件资源的分配调制( 如h a z a r d ) 等等,下面就对 数据冒险( d a t a h a z a r d ) 及其处理进行说明。 天津大学硕士学位论文:6 4 位r i s cc p u 的c a c h e 设计 数据冒险是指数据在使用之前还没有准备好,比如说一条指令所需的数据是上 一条指令处理的结果,还正处在流水线运行当中。如图2 7 所示,寄存器r l 在加 法指令的w b 级才有数据写入,但是减法指令在r f 级就需要读取r 1 中的数据, 同样后面两条指令情况也类似,这就产生了数据冒险,在正常情况下只有最后一条 指令即异或指令才能正确读取r l 的数据。为了解决这个问题就需要将数据提前准 备好输出( f o r w a r d ) ,如图2 - 8 所示。 天津大学硕士学位论文:6 4 位r i s cc p u 的c a c h e 设训 2 4p i p e l i n es t a l l ( 流水线迟延1 在前面所举例子中流水线为5 级流水线,也就是说一条指令正常情况下在5 个 p c y e l e 内执行完,最终有效时间相当于一个p c y c l e 完成一条指令。但是整个流水线 运行总有不正常情况,比如说从指令c a c h e 中取指发生了c a c h em i s s ,就要向主内存 请求数据,但是这一切不可能在一个p c y c l e 内完成,类似的还有其它的情况,这 个时候就引入了p i p e l i n es t a l l 这一概念。如2 - 9 所示,乘法指令的e x 级需要若干 个p c y c l e 完成,则整个流水线的对应级都维持若干个p c y c l e ,等到该指令的e x 级 完成之后再进入下一级流水线。 f r ir u ”fr u “f r 神f s 轴”l s 懈h i r u nl r o n 图2 - 9p i p e l i n es t a l l 示意图 2 5e x c e p t i o n 当e x c e p t i o n 条件满足时,p i p e l i n e 需s t a l l 两个p c y c l e ,同时发生e x c e p t i o n 的 指令及其后的当前p i p e l i n e 中所有指令都要被终止,如图2 1 0 所示,图中为一在e x 级发生的e x c e p t i o n ,所有带“# ”的指令都要终止。相应的被终止的指令若是再满 足s t a l l 或者e x c e p t i o n 条件则不再被响应, 因为指令都要被取消,再花时间处理就 没有必要了。 e x c e p t i o n 由软件处理。e x c e p t i o n 产生之后硬件会将表明e x c e p t i o n 类型的信息 以及一些相关c p u 状态信息存入c p 0 寄存器当中,然后跳入设置好的e x c e p t i o n v e c t o r 所指程序中执行,那是一段事先准备好的e x c e p t i o n 处理程序,针对不同的 天津大学硕士学位论文;6 4 位r i s cc p u 的c a c h e 设计 e x c e p t i o nv e c t o r 所执行的处理程序是不一样的;处理程序执行完之后整个流水线再 根据c p o 寄存器所保存的信息回到原先位置继续流水线的运行。 图2 1 0e x 级e x c e p t i o n 2 6 n u s h f l u s h 就是指指令的终止。在p i p e l i n e 执行过程中,当满足一定的条件时需要 终止某些指令的运行,例如2 1 0 所示情况下就需要f l u s h 三条指令,图中带“# ” 的指令就是。在硬件的实现上就是将需要被f l u s h 的指令的控制信号设置成无效状 态,让该指令进行无效操作,即从被终止的那一刻起就变成了一条n o p 指令。 在本次c p u 设计中该模块也由本人独立完成,由于牵涉到太多模块之间牵连 性以及流水线的时序问题,本文对此不进行具体介绍了。 1 4 天津大学硕士学位论文:6 4 位r i s cc p u 的c a c h e 设计 第三章v e g a 简介 作为一个完整的计算机体系结构是由软件和硬件相辅相成的,指令集则起二者 之间的桥梁作用,如图3 1 所示,有一种说法就是计算机体系结构为指令集与机器 架构之和。设计中硬件部分则遵循自顶向下( t o p d o w n ) 原则,在指令集确定之后, 硬件提供相应的i o 接口,同时准备好相应的数据通道并加以正确的控制信号,使 得指令流在流水线控制下能够顺利执行。软件方面则应准备相应的编译器以及操作 系统,将各种操作命令以及系统程序生成r i s cc p u 可以识别的硬件可执行的机器 码,当然相应的应用程序也是必不可少的。 l n e t r u c t i o ns e t a r c h i t e c t t i r e 图3 - 1计算机系统关系图 天津大学硕士学像论文 6 4 位r i s cc p u 蛇c a c h e 设计 第一节 v e g ac p u 功能模块髓介 我们先来看錾6 4 位r t s cc p u “v e g a ”鳃各个珐g 模块,如图3 - 2 掰示。熬 个v e g ac p u 有两个处理器,一个是6 4 位r i s c 中央处理器,有3 2 个邋用枣枣器, 娟予处建器与主内存之阀数搽交换;另外个处理瓣愚系统控制协处理器( c p 0 ) ,鸯 3 2 个控卷l 寄存器,在e x c e p t i o n ( 巽鬻) 处理中起着羹要作瑙,同时还记录着攘个流水 线中每个模块的工作状态值,为淡水线控到提供夔要傣怠。下瑟对各功能模块进行 简要介绍。 褥3 - 2v e g a 葫能模块示意强 1 6 天津大学硕士学位论文:6 4 位r i s ec p u 的c a c h e 设计 3 1 1c a c h e r i s c 架构的目标就是在一个c p u 时钟周期内执行一条甚至多条指令。为此, m i p sr 一系列采用了紧凑统的指令集,多级指令流水线,并慎重的选择合适的编 译器来提高c p u 运行速度,v e g a 也是如此。但是,所有这些如果没有一个有效的 存储器系统的支持都会功亏一篑。 图3 3 为本次所设计的v e g ac a c h e 示意图。该c a c h e 系统为哈佛结构,有两 个分离的片内指令c a c h e 和数据c a c h e 以及一个w r i t eb u f f e r ,处理器可以在同一时 钟周期同时对指令c a c h e 和数据c a c h e 进行操作。由于主内存速度比较慢,指令c a c h e 和数据c a c h e 的加入大大改善了这一不足,可以允许处理器全速运行的同时使主内 存以及总线仍以较低的速度运行;同时w r i t eb u f f e r 为了保证c a c h e 中的数据和主内 存中数据保持一致,可以协调c a c h e 与主内存之间速度的差异。 图3 3v e g ac a c h e 示意图 3 1 2c p u 寄存器 v e g a 有3 2 个通用寄存器( r o 至r 3 1 ) 以及3 个特殊寄存器,如图3 - 4 所示。3 2 个 通用寄存器都为3 2 位字长,除了r o 及r 3 l 外其它都是对称处理的:r 0 由硬件设置 为全零,r 3 l 为j u m p & l i n k 指令的链接寄存器。另外c p u 还有3 个特殊寄存器: p c ,h i 及l o 。其中p c 是程序计数器;h i ,l o 用于6 4 位乘除运算中,h i 在乘 法中来存放高位字,除法中用来存放余数;l o 在乘法中用来存放低位字,在除法 中用来存放商。 1 7 天津大学硕士学位论文:6 4 位r i s cc p u 的c a c h e 设计 g e n e r a lp u r p o s er e g i s t e r s 6 3o r o = 0 r 1 r 2 r 2 9 t 3 0 r 3 1 = l i n ka d d r e s s 6 3 0 6 3o p r o g r a mc o u n t e r o 图3 - 4c p u 通用寄存器 3 1 3c p 0 寄存器 v e g a 中c p 0 属于片内系统,有3 2 个寄存器,如图3 - 5 所示,图中寄存器名所 对应的数字表示软件中编程中寄存器编号。 u s e dw i t hm e m o r y : u s e dw i t he x c e p t i o n m a 忡m e r ds y s t e m:p r o o “ 3 1 0 l = 匕b 幽 幽;幽幽 口 团旺口 u 幽 山i 匕幽 幽;幽幽 臣口团团;囝 。r o g l o t e rn u m b r 图3 。5c p 0 寄存器 天津大学硕士学位论文:6 4 位r i s cc p u 的c a c h e 设计 c p 0 负责完成虚拟地址至物理地址的转换控制, e x c e p t i o n 处理,以及k e m e l 模式,s u p e r v i s o r 模式和u s e r 模式之间的转换。在流水线运行当中,c p 0 监控着c a c h e 系统,并且为流水线提供错误诊断以及错误修复的时序控制信息,图3 5 中左边一 组为存储器管理所需寄存器及t l b ,右边一组为e x c e p t i o n 处理所需寄存器。t l b 为t r a n s l a t i o nl o o k a s i d eb u f f e r 的缩写,是存储器管理系统( m m u ) 的主要部分,负责 将虚拟地址翻译成物理地址。v e g at l b 有3 2 条e n t r y ,每条对应两个页( 奇页和 偶页) ,页大小从4 k b 到1 6 m b 不等。 3 1 4 存储器管理单元( m m u ) 现在的计算机系统般要求在同一时间内运行几个程序,但是一个处理器在同 一时间内只能处理一个程序中的指令,它可以在不同的程序间通过不停的切换来使 得所有程序都可以同时进行。这种频繁的切换是由操作系统控制的,所以应用程序 员可以自由的编写程序,感觉好象自己完全占有c p u 运行时间。而支持这样频繁切 换的硬件就是存储器管理单元( m m u :m e m o r ym a n a g e m e n tu n i t ) 。 m m u 有两个基本功能: 将虚拟地址转换成物理地址 模式保护功能,禁止存储器非法访问 v e g am m u 通过片内t l b ( t r a n s l a t i o ni o o k a s i d eb u f f e r ) 来实现虚拟地址到物 理地址的转换。t l b 相当于一个完全结合的c a c h e ,其中有3 2 条e n t r y 。给定一个虚 拟地址,t l b 会检查所有的e n t r y ,看是否有与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苯乙烯-丙烯腈树脂(SAN)装置操作工复试测试考核试卷含答案
- 耐火纤维制品工岗前工作技巧考核试卷含答案
- 有机氟生产工岗前设备巡检考核试卷含答案
- 铁路机车车辆制动钳工岗前安全培训效果考核试卷含答案
- 奶油搅拌压炼工交接水平考核试卷含答案
- 丙烯酸及酯装置操作工安全专项考核试卷含答案
- 室温硫化硅橡胶生产工环保及安全知识考核试卷含答案
- 电工合金熔炼及热变形工岗中实战考核试卷含答案
- 混合料工岗位培训效果考核试卷含答案
- 渔船普通船员价值创造模拟考核试卷含答案
- 三年级好词好句好段摘抄大全
- 智研咨询发布:2026年中国光伏建筑一体化(BIPV)行业市场现状、发展概况、未来前景分析报告
- 2026年部编版道德与法治四年级上册第1课《热爱班集体》教案设计
- 有机化学(第六版)全套课件
- 新22J01 工程做法图集
- 光学课程电子教案
- 《网店客户服务》中职全套教学课件
- 代收代付合同协议
- 《煤炭工业露天矿工程建设项目可行性研究报告编制标准》
- 华为MA5800配置及调试手册
- 熊猫烧香病毒样本
评论
0/150
提交评论