(微电子学与固体电子学专业论文)64位微处理器中数据缓存的设计与实现.pdf_第1页
(微电子学与固体电子学专业论文)64位微处理器中数据缓存的设计与实现.pdf_第2页
(微电子学与固体电子学专业论文)64位微处理器中数据缓存的设计与实现.pdf_第3页
(微电子学与固体电子学专业论文)64位微处理器中数据缓存的设计与实现.pdf_第4页
(微电子学与固体电子学专业论文)64位微处理器中数据缓存的设计与实现.pdf_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 微处理器是信息产品中不可缺少的部件,它有通用和专用两种。微处理器 设计是集成电路设计中最复杂也最具挑战性的工作。本论文设计研究工作来 源于国家科技部8 6 3 项目9 具有自主知识产权的6 4 位高性能嵌入式微处理 器的设计”,该项目的设计过程采用了目前国内少有的微处理器设计方法全 定制设计方法,充分利用而又不依赖e d a 工具进行设计。弥补了半定制设计 的不足。 论文首先分析了我国开发具有自主知识产权的微处理器的重要性和必要 性,介绍了集成电路设计方法和全定制设计流程。然后详细分析了高速缓冲存 储器( c a c h e ) 的结构和基本原理,在此基础上,对多核处理器的缓存进行研究, 介绍了s m p 结构分类和解决c a c h e 一致性的方案,另外介绍了三种具有代表 性的s c m p 模型p o w e i t 4 - i b m ,h y d r a s t a n f o r d ,s m p d c a ;并分析比较 了三种模型的利弊;提出了四核处理器缓存系统的设计方案。 本文着重介绍了基于m i p sr 4 0 0 0 指令集的五段流水线的数据高速缓存的 全定制设计,包括电路设计、电路前仿真、版图设计、版图验证、版图参数提 取、后仿真在内的全部后端设计。设计时将系统分为数据通道和控制逻辑两部 分,数据通道部分采用手工设计电路,手工绘制版图的全定制设计,控制逻辑 采用综合、自动布局布线的方法。设计采用哈佛总线结构分离的4 k b 的数据 c a c h e 和4 k b 的指令c a c h e 。采用直接映象的映象方式,虚拟地址索引、物理 地址与t a g 比较判断是否命中,采用了l r u 替换策略。 关键词;高速缓冲存储器,全定制,电路和版图设计,版图验证,多核处理器 a b s t r a c t a b s t r a c t m i c r o p r o c e s s o ri s a l li n d i s p e n s a b l ed e v i c ei ni n f o r m a t i o np r o d u c t t h e r ea r e t w ot y p e s :g e n e r i ca n ds p e c i a la p p l i c a t i o n a n dt h ed e s i g no fm i c r o p r o c e s s o ri sv e r y t o u g ha n dc h a n l l e n g e t h i sp a p e rf o c u so nt h er b s e 盯c ha n dd e s i g no fc a c h ei n 6 4 - b i th i 【g hp e r f o r m a n c em i c r o p r o c e s s o r , a nn a t i o n a ls c i e n c ea n dt e c h n o l o g y m i n i s t r y8 6 3p r o j e e l ,u s i n gf u l lc u s t o m e rd e s i g nf l o w , w h i c ht a k ef u l lu s eo fe d a t o o l sa n di m p r o v et h ed e f i c i e n c yo fc u s t o m e rd e s i g n a tf i r s t ,w ea n a l y s et h ei m p o r t a n c eo fd e v e l o p i n gi n d e p e n d e n c ei n t e l l i g e n c e p r o p e r t yc o r e ,i cd e s i g nm e t h o d sa n df u l lc u s t o m e rd e s i g nf l o w t h e na n a l y s ec a c h e i n m u l t i p r o c e s s o r s ,i n t r o d u c et h es m pa n dt h em e t h o d st o s o l v et h ec a c h e c o h e r e n c e ;a n di n t r o d u c ek i n d so fs c m p p o w e r 4 i b m ,h y d r a s t a n f o r d , s m p d c aa n dc o m p a r et h e m h a v ei d e a so nf o u r - c o r ec p uc a c h e w ed e t a i l e da n a l y s et h ea r c h i t e c t u r ea n dt h et h e o r yo fc a c h e ,d e t a i l e de x p l a i n t h ef u l lc u s t o m e rd e s i g no ft h ec a c h eb a s e do nm i p sr 4 0 0 05 一s t a g ei n s t r u c t i o n a r c h i t e c t u r e ,i n c l u d et h ec i r c u i td e s i g n ,p r e l a y o u ts i m u l a t i o n ,l a y o u td e s i g n ,l a y o u t v e r i f i c a t i o n ,l a y o u tp a r a m e t e re x t r a c t i o na n dp o s t l a y o u ts i m u l a t i o n t h e r ea t et w o s e c t i o n s 一一d a t a p a t hs e c t i o na n dc o n t r o lu n i t w ep o to nt h ef u l l - c u s t o md r c u i ta n d l a y o u td e s i g ni nt h ed a t ap a t hs e c t i o n ,a n dt h es y n t h e s i sm e t h o di nt h ec o n t r o lu n i t r e a l i z i n gah a v a r ds t r u c t u r e ,s e p a r a t e4 k bi c a c h ea n d4 k bd c a c h e ,d i r e c tm a p , v i r t u a l l yi n d e x e da n dp h y s i c a lt a g g e d ,a n dl r ur e p l a c e m e n ts t r a t e g y k e yw o r d s :c a c h e ,f u l lc u s t o m e r , s c h e m a t i ca n dl a y o u td e s i g n ,l a y o u tv e r i f i c a t i o n , m u l t i p r o c e s s o r s 学位论文版权使用授权书 本人完全了解同济大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名:加j 专 2 司年3 月z o 日 经指导教师同意,本学位论文属于保密,在年解密后适用 本授权书。 指导教师签名:学位论文作者签名: 年月日年月日 同济大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 签名:趁j 厶1 年了月2 0 日 第1 章绪论 1 1 课题背景与来源 第1 章绪论 集成电路( i n t e g r a t e dc i r c u i t ,i c ) 技术发展迅速,已经成为现代新兴工业的 主流,而技术的进步使得从原来的小规模集成电路( s m a l ls c a l ei n t e g r a t i o n ,s s i ) 发展到可以在同一芯片中容纳数百万个晶体管的超大规模集成电路( v e r yl a r g e s c a l ei n t e g r a t e dc i r c u i t ,v l s i ) 。 超大规模集成电路及其相关技术是现代微电子信息技术飞速发展的关键性 技术,具有广泛影响和深远作用。微电子技术是电子信息产业的基础和心脏, 而集成电路是微电子技术的核心。 集成电路产业具有规模大、增长快、投资多、关联强、回报高的显著特点。 美国半导体工业协会称“美国半导体工业是美国经济的倍增器”,并指出半导体 是一种使其他所有工业黯然失色,又使其他工业得以繁荣发展的技术,半导体 在根本上驱动着所有电子产品的进步。美国半导体咨询委员会给布什总统的报 告中称其为“生死攸关的工业”,韩国称其为“工业粮食4 。正因为如此,集成 电路产业是当今世界发展最为迅速和竞争最为激烈的产业【1 】1 2 1 1 3 1 1 4 1 。 近几年,世界上集成电路产业的发展非常迅速。但是,我国在这一领域与 发达国家的差距是很大的。从技术上看,著名的i n t e l 公司已进入奔腾时代, c p u 的主频已经超过2 ( 3 ;从市场份额来看,国产芯片年销售额为8 3 亿元人民 币,仅占全球份额的百分之一左右,国内集成电路需求的自给率也比较低,中 国目前所需的大量集成电路及微电子组件依赖进口,这不仅使得中国信息产业 的档次难以大幅提升,对于信息安全也构成一定的威胁。国防电子产品过分依 赖于国外,对国防安全也会造成负面影响。即使在国内,较高水平芯片制造公 司的技术、市场和管理的主导权尚未掌握在中国人手中,所以,要发展中国自 己的集成电路产业,必须掌握集成电路的设计开发能力和生产加工技术。 我国已将i c 产业和软件产业作为国家“十五”期间重点发展的两大产业, 将这两大产业视为人的。心脏”和。大脑”,并在政策上给予相当大的优惠。国 家己决定在“十五”国家“8 6 3 ”计划中列“超大规模集成电路重大专项”,投 第l 章绪论 入经费达1 2 亿,重点支持大规模集成电路设计和相关材料设备,争取到2 0 1 0 年使我国成为大规模集成电路设计大国。为适应国家的这一发展规划,满足微 电子发展的需要,今后集成电路发展的重点将是提高电路设计水平,加快研制 具有自主知识产权的芯片,集成电路的设计技术迅速成为当前的发展热点。其 中c p u 核心技术的掌握对于保障我国信息安全,提高信息产业的核心竞争力和 效益更是具有重大意义。 本课题来源于国家科技部8 6 3 项目“具有自主知识产权的6 4 位高性能 嵌入式微处理器的设计”。 1 2 集成电路设计方法 集成电路设计过程有两种基本的设计思路i5 l :一种是自顶向下( t o p d o w n ) 的 设计思路,一种是自底占 _ 2 ( b o t t o m u p ) 的设计思路。具体选择哪一种设计方法 要取决于对下述因素的考虑:设计者的设计经验、设计的规模和复杂程度、设 计采用的工艺及选定的i c 生产厂家等。 t o p d o w n 设计方法可以分为三个大的阶段:系统设计、综合优化、系统实 现。各个阶段并没有绝对的界限。通常的过程是首先从系统设计入手,在顶层 进行功能框图的划分和结构设计。在功能级进行仿真、纠错,并用硬件描述语 言( h d l ,h a r d w a r ed e s c r i p t i o nl a n g u s g e ) 对高层次的系统行为进行描述,然后用 综合工具将设计转化为具体门电路网表,其对应的物理实现可以是p l d 器件或 专用集成电路( a s i c ) 。自顶向下设计技术的关键在于系统的功能分析、模块划分、 仿真、综合与测试。本设计采用的即是这种设计方法。 b o t t o m u p 设计是一种传统的设计思路,一般是设计者选择标准的集成电路, 或者将各种基本单元,如各种门电路以及加法器,计数器等模块做成基本单元 库,调用这些基本单元,逐级向上组合,直到设计出满足自己需要的系统为止。 这样的设计方法在i c 设计的复杂度低于1 0 0 0 0 门时是相当有效的,但随着设计 复杂度的不断增加,设计师必须投入更多的时间,从一个很高的系统层次上对 自己的设计进行功能定义、设计以及分析,然后才能逐步将整个设计细致化, 这样很难处理好其层次化的各个细节。 综上,自底向上的设计方法往往使设计者关注了细节,却对整个系统缺乏 规划,当设计出现问题时,如果需要修改,会非常麻烦,甚至前功尽弃;而自 2 第l 章绪论 项向下的设计方法更符合人们的逻辑思维习惯,因此更为设计者所接受,同时 也被更多的e d a 工具所支持。 1 3 全定制v l s i 设计及流程 数字v l s i 芯片按其实现和构成电路所采用的方法分为三类1 1 l :专用集成电 路设计( a s i o 、半定制设计和全定制设计( f u l l - c u s t o md e s i g n ) 。 专用集成电路设计用于专门用途的集成电路,普遍用于设计原型和小批量 产品,设计者使用一套扩展的c a d 工具,通过标准的数字逻辑结构,如状态图, 功能表和逻辑图束描述系统。a s i c 的缺点是所有的特性( 如速度) 都由体系结 构设计确定,设计者无法改动电子期间,所以时间延迟不能改变。 半定制设计介于a s i c 设计和全定制之问。芯片的大部分采用一组预先定义 的基本单元,作为构建功能块。每个单元提供一个基本的功能,如逻辑操作或 存储电路,因此主要设计取决于一个叫做。库”的数据库集合。一个单元本身 包含在硅片上建立电路所需的所有信息。 全定制设计主要是基于晶体管级芯片设计,芯片中的全部器件及互联线的 版图( 1 a y o u t ) 都是按照系统要求,进行人工设计。它适用于要求最高速度、最 低功耗和最小面积的设计。 本设计采用全定制设计方法。这里重点介绍全定制设计。 全定制设计的特点是针对每一个元件进行电路参数和版图参数的优化,它 往往采用自由格式的版图设计规则进行设计,并且由设计者不断完善版图设计, 以使得每个元件以及内部连接安排得最紧凑、最合适。这样,可以得到最佳的 性能( 包括运行速度和功耗) 以及最小的芯片尺寸,有利于提高集成度和降低 生产成本。 利用这样的设计方法进行集成电路设计时,除了要求有人机交互的图形系 统支持外,还要求有完整的检查和验证的e d a 工具。全定制的设计方法要求设 计者有相当深入的微电子技术和生产工艺方面的专业知识和一定的设计经验。 但它也有一定的缺点,那就是设计周期比较长,查错方面比较困难,而且设计 的费用相对较高。尽管如此,全定制设计在某些集成电路设计中是不可或缺的: 芯片的使用量非常大,如通用集成电路、微处理器等; 在设计中可重用多次的模块,如加法器、乘法器、移位器等单元; 3 第1 章绪论 要求在恶劣环境中使用的供科学探索研究的专用芯片,这样的芯片不以 市场凹报衡量价值:如太空飞行器专用芯片、极地探索仪器仪表专用芯 片等。 全定制设计流程如图1 1 。包括体系结构、r t l 模型建立与验证、综合、布 局布线、电路设计与仿真、版图设计与验证等关键环节。 综合 工 时序 工 f j 级刚丧 体系结构 二二1 二二 c 模喇 二二工二 r t l 模硝 榨宙i 单无j 艘槲墒道 逻辑仿真 电蹄设计 e l d o 性, 真 布埘布线版嘲设计 全芯片集成 工 后仿真 图1 1 全定制设计流程 1 4 论文的主要工作 论文的核心是分析、研究高性能6 4 位微处理器的存储层次及高性能的缓存。 4 第1 章绪论 论文的主要工作有以下几个方面: ( 1 ) 存储层次分析: 分析存储层次在6 4 位高性能c p u 中的位置和作用,以及它对c p u 整体性 能的影响。 ( 2 ) 多核处理器缓存的研究: 分析s m p 结构和s c m p 结构,介绍了三种典型的s c m p 模型一一 p o w e r 4 - 1 b m 模型,h y d r a s t a n f o r d 模型,s m p d c a 模型,并分析比较了他 们的不同点,在此基础上提出了四核处理器的设计方案,为下一步工作奠定了 基础。 ( 3 ) 数据高速缓存的电路设计及仿真: 根据c a c h e 的结构和工作原理,设计数据高速缓存数据通道部分的电路, 并根据仿真结果改善电路,以达到设计要求。 ( 4 ) 数据高速缓存的版图设计及验证: 在深入了解c m o s 管的工作原理和芯片生产厂商工艺的基础上,根据c a c h e 数据通道电路全定制设计出版图,通过验证;并将原理和实际相结合,总结了 版图的设计规范。 1 5 主要创新点 本课题结合当前微处理器向多核发展的趋势,借鉴几种典型的多核处理器 模型,作者提出了6 4 位四核处理器缓存系统的设计方案,为以后多核处理器的 设计奠定基础。 采用先进的9 0 纳米工艺,对6 4 位高性能微处理器中数据高速缓存进行全 定制设计及研究,它将作为以后多核处理器中核内l l c a c h e 。在详细研究数据高 速缓存数据通道部分的电路及c a c h e 的结构和原理的基础上,通过仿真一更改 电路一再仿真的模式,设计出能满足要求的数据通道的电路、版图,从而完成 6 4 位高性能微处理器数据高速缓存的设计。 1 6 论文的组织结构 论文共有5 章,包括5 个部分。第一部分是绪论,包括第1 章;第二部分 5 第1 章绪论 是c p u 模块和流水线的分析,包括第2 章;第三部分是多核处理器缓存的研究 以及数据缓存的全定制设计与实现,包括第3 、4 章:第四部分是结论与展望, 包括第5 章。论文主体部分安排如下: 第2 章分析了c p u 的模块和流水线。研究了c p u 各组成部分及相互问的联 系,分析了血段流水线各段所完成的工作。 第3 章进行了多核处理器缓存的研究,分析比较了三种典型的多核处理器, 并对6 4 位四核处理器缓存系统提出设计方案。 第4 章介绍数据缓存的全定制设计及实现。分析了存储层次,c a c h e 的结构 和工作原理,具体介绍了整个数据缓存的全定制后端设计与实现。 第5 章对整个论文的内容进行总结和展望,指出了设计中存在的问题,并 提出了进一步工作的想法。 6 第2 章高速缓冲存储器( c a c h e ) 第2 章高速缓冲存储器( c a c h e ) 高速缓存( c a c h e ) 是位于c p u 与主存之间的静态r a m 存储器,它是为了 解决c p u 与主存之自j 速度匹配问题而设置的。目前c a c h e 已经成为衡量c p u 性 能的一个必要指标。 2 1 存储层次 2 1 1 局部性原理 对大量典型程序运行状况分析,可以得到以下结论f 6 1 m :在一个较短的时间 间隔内,地址往往集中在存储器逻辑地址空间的很小范围内对于指令而言, 本身就是连续的。如果有循环,则相同的指令段将被执行多遍。对于数据而言, 对数组的操作及编译器对程序的优化都能够将被频繁地访问的数据放到一个局 部的范围内,从而减少对其他地址空间的访问。这种指令或数据的相对集中即 为局部性原理。 局部性原理又可以分为时间局部性和空间局部性。具体定义如下: 程序执行的时间局部性原理( r r e m p o r a ll o c a l i t y ) 时间局部性是指一旦主存的某个位置被访问了,那么它往往很快会再次被 访问。典型的例子是程序的结构。 程序执行的空间局部性原理( s p a t i a ll o c a l i t y ) 空间局部性是指一旦主存的某个位置被访问了,那么它临近的位置也有可 能很快会被访问。典型的例子是程序的顺序执行。 2 1 2 存储层次 根据程序运行的局部性原理,可以将存储器的结构被分为不同的层次:每 一层都比下一层具有更小的容量,更快的速度。构成这种组织结构的目的是为 了提供一个合适的存储系统,从总体上来看,它的价格几乎相当于最便宜的一 7 第2 章高速缓冲存储器( c a c h e ) 层存储器的价格,但是访存的速度却能接近最快一层的速度。层次结构中的各 层通常是子集关系,某一层中的所有数据都能在下一层中找到,而下一层中的 所有数掘也都能够在更下一层中找到( 如图2 1 ) 。 价 格 存储层次结构 图2 1 存储层次 快 速 度 存储层次的重要性随着处理器性能的提高而不断增加。据统计f 8 l 1 9 8 6 年以 前微处理器性能以每年3 5 的速度提高;而1 9 8 7 年以来,微处理器的性能以每 年5 5 的速度提高,这样的飞跃很大程度上是存储系统不断改进的结果。图2 2 描述了随着主存储器访问性能的提高,c p u 的性能飞速增长的过程。 r 妒毋荸孝妒尊妒聋聋笋妒聋# 孝妒毒乎聋妒毋扩爷希伊 t 图2 2 存储器和c p u 的性能随时问的变化曲线 第2 章高速缓冲存储器( c a c h e ) 2 2c a c h e 的基本结构 c a c h e 通常是存储器层次结构中距离c p u 最近的存罐层次,一般采用s r a m ( 静态随机存储器) 结构,其速度比下一层的d r a m 快得多,而容量要比下一 层的d r a m 小的多。高速缓存的存在目的就是为了构成存储器层次结构,得到 最快的可用存储器的速度,以及最便宜的半导体存储器的容量。 c a c h e 中存放主存储器的副本,当c p u 试图从存储器中读取一个字时,检 查这个字是否在c a c h e 中,如果是,则这个字由高速缓存传送给c p u ,从而节 省了访存时问;否则,将包含这个字的块装入c a c h e 中,再把这个字传送给c p u 。 图2 3 描述了c a c h e :t 存储器系统的结构。 存储器 o i t 2 3 2 8 一i 罅长一 a ) 主存储器 块( 睥) 卜 槽号 o 1 2 标记块 一块长( 婷) b ) 高逮缓存 图2 3c a c h e r e 存储器系统的结构 主存储器由多达2 4 个可寻址的字组成,每个字有难一的1 1 位地址。为了实 现与高速缓存的映射,我们把这个存储器看成由许多定长的块组成,每块有k 个字,即有肼2 z 个块。高速缓存由c 个槽组成,每个槽有k 个字。槽的数 量远远小于主存储器块的数目( c m ) 。在任何时候,主存储器中的几个块驻留 在高速缓存的槽中。如果要读取存储块中的某个字,则整个块被传送到高速缓 存的一个槽中,由于块数多于槽数,所以单个的槽不能永久的被某块专用,因 此,每个槽有一个标志( t a g ) ,用来识别当前存储的是主存储器中的哪个块。 为了迸一步7 解这种跌射,我幻看一下c p u 她址周高速缓存地址间约关系。 9 第2 章高速缓冲存储器( c a c h e ) 图2 4 给出了c a c h e 地址的划分情况,第一个划分是在块地址和块内偏移之间作 出的。块地址( b l o c kf r a m ea d d r c s s ) 可以进一步细分成标志域( t a g ) 和索引域 ( i n d e x ) :块内偏移地址( b l o c k o f f s e t ) 用束从块中选出所需的数据( 字或字节) 索引域用来选择槽,通过比较标志域来判断高速缓存是否命中。 i块地址( b l 。c ka d d r e s s ) 块内偏移 标志( t 4 9 )索引( i n d e x ) ( b 1 0 e ko f f s e t ) i 图2 4 c a c h e 地址的3 个部分 2 2 1c a c h e 的地址映象方式 所谓地址映象是指如何确定c a c h e 中的内容是主存中的哪一部分的拷贝, 即必须应用某种函数把主存地址映象到c a c h e 中定位。具体来说,地址映象方 式通常采用直接映象、全相联映象、组相联映象三种1 8 j o ( 1 ) 直接映象( d i r e c t m a p ) 如果主存中的每个块在高速缓存中只能出现在唯一位置上,那么这种映象 就叫做直接映象( 如图2 5 ) 。这是一种最简单而又直接的映象方式,可以用公 式b = b m o dc 6 来计算,其中b 是c a c h e 的块号,b 是主存的块号,c 是c a c h e 的块数。这样,整个c a c h e 地址与主存地址的低位部分完全相同。 在直接映象情况下,由于每个主存储器的块在高速缓存中仅存在一个位置, 因而把地址的比较次数减少为一次。其做法是,为高速缓存中的每个块位置分 配一个索引( i n d e x ) 字段,用标志( t a g ) 字段区分存放在不同位置上的不同的块 ( b l o c k ) 。直接映象把主存储器分成若干页,主存储器的每一页与高速缓存的容量 大小相同,匹配的主存储器的偏移量可以直接映象为高速缓存的偏移量。高速 缓存的t a g ( 标志) 存储器保存着主存储器的页地址( 页号) 。 直接映象的优点是所需硬件简单,只需要少量的比较电路,因此成本较低。 缺点是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 利用率很低。 1 0 第2 章高速缓冲存储器( c a c h e ) 图2 5 直接映象 ( 2 ) 全相联映象( f u nm a p ) 如果一个块可以被放到c a c h e 中的任何个地方,那么这种映象就叫做全相 联映象( 图2 6 ) 。 在全相联映象中,块与块之间,以及存储顺序或保存的存储器地址之间没 有直接的关系。程序可以访问很多的子程序、堆栈和段,而它们是位于主存储 器的不同部位上,因此,高速缓存中会保存着很多互不相关的数据块,高速缓 存必须对每个块和块自身的地址加以存储。当请求数据时,高速缓存的控制器 要把请求地址周所有地址加以比较,进行确认, 全相联映象的优点是它能够在给定的时间内去存储主存储器中的不同的块 命中率高;缺点是每一次请求地址同c a c h e o o 的地址进行比较需要相当的时间, 速度较慢。 1 1 第2 章高速缓冲存储器( c a c h e ) 图2 6 全相联映象 ( 3 ) 组相联映象( s e t a s s o c i a t i v e1 组相联映象方式是介于全相联和直接映象之间的一种结构。这种类型的高 速缓存使用了几组直接映象的块,在组内实现直接映象;而组与组阃采用全相 联方式。这样对于某一个给定的索引号,可以允许有几个块位置,因而可以增 加命中率和系统效率。但这种方式的电路实现较复杂。( 如图2 7 ) 这种映象方式中,块的大小对命中率的影响非常敏感。块很小时,命中率 很低,随着块大小的增加,由于程序的局部性,命中率增加,当块非常大时, 进入c a c h e 中的许多数据可能用不上,当块大小等于c a c h e 容量时,命中率将趋 近于零。同时,分组的数目对命中率的影响也很明显,随着组数的增加,c a c h e 的命中率要降低。当组数超过一定数量时,命中率的下降非常快。 第2 章高速缓冲存储器( c a c h e ) 2 2 2 查找方法 图2 7 组相联映象 当c p u 访问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 的一个块,用于指出 当前块中存放的信息是哪个主存块的。它实际上记录了主存块的块地址的高位 部分,称为标志t a g 。c a c h e 中每一个块只能由其标志唯一确定它是主存的哪一 个块。 为了指出c a c h e 中的块是否包含有效信息,一般在目录表中给每一项设置 一个有效位。例如,当该位为“1 ”时表示:该目录项有效,也就是说c a c h e 中 相应块历包含的信息有效。当一个主存块被调入c a c h e 中某一个位置时,他的 第2 章高速缓冲存储器( c a c h e ) 标志就被填入目录表中与该c a c h e 块对应的项中,并且该项的有效位被置“1 ”。 根据映象规则的不同,一个主存块可以映象到c a c h e 中的一个或多个候选 位置。当c p u 访问该主存块时,必须且只需查找它的候选位置所对应的标志即 可。如果有与所访问的主存块相同的标志,且其有效位为“1 ”,则它所对应的 c a c h e 块即是所要查找的块。为了保证速度,对各候选位置的所对应的标志的检 查比较应并行进行。因此候选位置越多,实现查找的机制就越复杂,代价就越 高。 直接映象c a c h e 的候选位置少,只有一个;全相联c a c h e 的候选位置最多, 为m 个:n 路组相联则介于二者之间,为n 个。并行查找的实现方法有两种:( 1 ) 用相联存储器( c a m ) 实现;( 2 ) 用单体多字存储器和比较器来实现。图2 8 中画 出了用第二种方法实现4 路组相联的情况。这时需要4 个比较器。c p u 访存时, 用本次访存地址中的索引i n d e x 从标志存储器中选取一行( 对应于一组) ,并从该 行读出4 个标志,然后将它们与本次访存地址中的标志t a g 进行并行比较。根据 比较结果确定是否命中以及该组中哪一个块是要访问的块( 若命中) 。若未命中, 则向外发出c a c h em i s s 指示,启动所需块的调入。 图2 8 四路组相联并行标志比较 目录表 ( 标识存储器) 由图中可以看出,n 越大,实现查找的机制就越复杂,代价就越高。直接映 象的c a c h e 的查找最简单:只需查找一个位置即可。所访问的块要么就在这个 1 4 第2 章高速缓冲存储器( c a c h e ) 位置上,要么不在c a c h e 中。 无论是直接映象还是组相联,查找时只需比较t a g , i n d e x 无需参加比较。这 是因为i n d e x 己被用来选择要查找的组或块,而所有索引相同( 且只有索引相同) 的块都被映射到该组中。所以,该组中存放的块的索引一定与本次访存的i n d e x 相同。如果c a c h e 的容量不变,提高相联度会增加每一组中的块数,从而减少 i n d e x 的位数和增加t a g 的位数。当采用类似于图2 8 的并行比较方案时,不仅 所需的比较器的个数随之增加,而且比较器的位数也随之增大。在全相联的情 况下,i n d e x 的位数为0 。块地址全都用作t a g ,此时。多采用c a m 结构来作 比较。 2 3 读写策略 在c p u 和主存之阃插入了高速缓存,就会产生c t u 、高速缓存和主存问的 数据致性问题 9 1 ,正确选择高速缓存的读写策略,是解决问题的关键。 2 3 1 读操作 贯穿读出式( l o o k t h r o u g h ) : 该方式将商速缓存隔在c t u 与主存之间,c p u 对主存的所有数据请求都要 首先送到高速缓存,由高速缓存自行查找。如果命中,则切断c p u 对主存的请 求,并将数据送出;不命中,则将数据请求传给主存。该方法的优点是降低了 c p u 对主存的请求次数,缺点是延迟了c p u 对主存的访问时日j 。 旁路读出式( i , o o k a s i d e ) : 在这种方式中,c p u 发出数据请求时,并不是单通道地穿过高速缓存,而 是向高速缓存和主存同时发出请求。由于高速缓存速度更快,如果命中,则高 速缓存在将数据回送给c p u 的同时,还来得及中断c p u 对主存的请求;如果不 命中,则高速缓存不做任何动作,由c p u 直接访问主存。它的优点是没有时间 延迟,缺点是每次c p u 对主存的访问都存在,这样,就占用了一部分总线时间。 2 3 2 写操作 高速缓存中的块可以在标志位被读出和比较的同时被读取,所以读块操作 第2 章高速缓冲存储器( c a c h e ) 在获得块地址的同时就丌始了。如果读命中,块中所需信息立刻被传送到c p u ; 如果没有命中,这样做虽然没有得到任何好处,但是也没有什么坏处,只需把 读到的信息丢弃掉即可。 对于写操作来说,情况则不然。只有标志位有效而且写命中时,块j 被修 改。因为标志位检查不能与写数据并行进行,写操作通常要比读操作需要的时 间长。另一个复杂情况是处理器必须给出要写数据的大小,通常在1 到8 字节 之间,这时只有块中的这几个字节可以被改变。而读操作可以读取比所需字节 数更多的信息。写策略可以区分高速缓存的设计,通常有两种基本策略: 写通过式( w r i t et h r o e l g h ) : 任一从c p u 发出的写信号送到高速缓存的同时,也写入主存,以保证主存 的数据能同步地更新。它的优点是操作简单,但由于主存的速度慢,降低了系 统的写速度并占用了总线的时间。 回写式( w r i t eb a c k ) : 为了克服写通过式中存在的弊病,尽量减少对主存的访问次数,又发展出 了回写式。它是这样工作的:数据一般只写到高速缓存中,这样有可能出现高 速缓存中的数掘得到更新而主存中的数据不变( 数掘陈旧) 的情况。但此时可在高 速缓存中设一个标志地址及数据陈旧的信息,只有当高速缓存中的数据被再次 更改时,才将原更新的数据写入主存相应的单元中,然后再接受再次更新的数 据。这样保证了c a c h e 和主存中的数据不致产生冲突。 回写式和写通过式各有优点。在回写法中,写操作的速度和高速缓存的速 度是一致的,而且在同一个块的多次写入仅仅需要对下一层存储器的一次写操 作,因此,回写法需要较小的存储带宽,这种方法在多处理器系统中更具有吸 引力。在写通过法中,当写操作缺失时,不必对较低层存储器进行写操作,而 且写通过法也比回写法更容易实现。写通过法还可以保证下一层的存储器有当 前最新数据的副本。 在写通过法中,如果c p u 的操作必须等待写操作结束才能进行,则这种c p u 称作写停顿( w r i t es t a l l ) 。通常用来减少写停顿的优化策略是写缓存( w r i t eb u f f e r ) 技术。它允许处理器把数据写到缓冲区后立刻可以工作,因此使处理器执行时 问和存储器更新时| - 日j 重叠。 因为在写操作时并不需要数据,因而在写缺失时通常有两种应对策略: 写分配( w r i t ea l l o c a t e ) 在发生写缺失时主存的块被读到高速缓存中, 1 6 第2 章赢速缓冲存储器( c a c h e ) 然后执行上面的写命中操作。运行机制与读缺失类似。 非写分配( n u a - w r i t ea l l o c a t e ) 仅修改下一层存储器中的该块而不将该块 写到高速缓存中。 虽然任何一种写缺失策略都可以被应用到写回法或写通过法中,但是采用 回写法的高速缓存通常利用写分配( 期望对该块的接下来的写操作能够在高速 缓存中命中) 策略,而写通过法经常与非写分配( 因为对该块的接下来的写操 作仍必须写入到下一层存储器中去) 策略配合使用。 2 4 替换策略 当缺失发生时,高速缓存控制器必须选择高速缓存中的一个块用主存中的 期望的数据块来替换。使用直接映射的优点是硬件决策简单不需要任何选 择:只有一个块被检查是否命中,当不命中时,也只有这个被检查的块可以被 替换。如果是全相联或是组相联,则发生缺失时就要从多块中做出选择。有三 种基本的块替换策略1 6 j : 随机替换策略一为了均匀地分配,候选块将被随机选择。一些系统产生伪 随机数块号,以获得可重复的行为,当调试硬件时。这种方式尤其有用。这 种方法简单、易于用硬件实现,但没有考虑c a c h e 块过去被使用的情况,反 映不了程序的局部性,所以其失效率比较高。 最近最少使用( l r u ) 替换策略一为了减少替换那些可能不久就要用到的 信息的几率需要记录块的访问次数。对缓存中的每个缓存对象维持一个引 用计数器,每次当缓存命中时,将使得相应的计数器加1 ,利用历史信息来 预测未来使用情况,被替换的块将是最长时间内没有被访问的c a c h e 块,即 计数器值最小的缓存对象。l r u 使用了一个局部性原理的推论:如采一个 最近被使用的块很可能会被再次访问,那么最好替换最近最少使用的块。 先进先出( h f 0 ) 替换策略f i f o 替换算法的工作思想是对c a c h e 中的 每条记录进行计时,时间较长的即为先进入缓存的数据,当替换时应先被替 换掉。由于计算l r u 比较复杂,该替换策略将最早进入c a c h e 的块作为替 换块,其优点是容易实现。虽然利用了同一组中各块进入c a c h e 的顺序信息, 但不能正确地反映程序的局部性,因为最先进入的块,很可能是经常要用到 的块。 1 7 第2 章高速缓冲存储器( c a c h e ) 随机替换、先进先出的优点都是硬件简单、容易实现。而l r u 能较好地反 映程序的局部性,失效率低,但l r u 比较复杂,硬件实现比较困难,特别是当 组的大小增加时,l r u 的实现代价会越来越高。l r u 和随机替换法分别因其失 效率低和实现简单而被广泛采用。 2 5c a c h e 与其他模块相关- 眭 在整个c p u 中c a c h e 不可能是一个孤立的系统【1 0 】1 1 ,而是与其他模块密切 相关,这罩首先介绍一下6 4 位c p u 的模块划分。 本项目由同济大学微电子中心的老师和同学共同努力完成,设计队伍严格 按照微处理器设计方法学以及设计流程进行组织。采用矩阵管理,以模块划分 的横向单元管理与以设计流程划分的纵向任务管理相结合;采用目标管理,项 目计划、进度控制和设计审查相结合。 6 4 位c p u 采用如下所示的模块划分( 图2 9 ) : 图2 9 6 4 位c p u 模块划分 第2 章高速缓冲存储器( c a c h e ) 算术逻辑单元( a l u ,a r i t h m e t i cl o g i cu n i t ) 乘除单元( m d u ,m u l t i p l i c a t i o na n dd i v i s i o nu n i t ) 寄存器堆 g f , r e g i s t e rf i l e ) 对准器单元( a l i g n e r ) 系统控制协处理器( c p 0 ,s y s t e mc o n t r o lc o p r o c e s s o r ) 存储管理单元( m m u 。m e m o r ym a n a g e m e n tu n i t ) 程序计数器单元( p c ,p r o g r a mc o u n t e r ) 数据缓存( p c ,d a t ac a c h 曲 指令缓存( i c ,i n s t r u c t i o nc a c h e ) 总线接口单元( b i u b u si n t e r f a c eu n i t ) 其中,本人参与了包括a l i g n e r , 越,p c ,d c a c h e ,l c a c h e ,b 1 u 多个模块的设 计。从事了包括电路设计,前仿真,版图设计,d r c 、l v s 验证,版图参数提 取后仿真等后端漉程,积累相当丰富的设计经验,收获颇多。 c a c h e 与其他模块的关系如图2 1 1 : m m u :m m u 将4 0 位虚拟地址转换成3 6 位物理地址,其中高2 8 位经过地 址转换后备缓冲存储器( 1 1 l b ) 转换为2 4 位物理地址, 与c a c h e 中标志存 储器中的t a g 进行比较,判断是否命中。 c p o :c p o 中的t a g l o 寄存器存储着c a c h e 中2 4 位的t a g 信息、c a c h e 的状 态,t a g h i 寄存器暂无使用,如图2 1 0 。通过控制t a g l o 寄存器内容可以人 为控制c a c h e 中的内容。 t a o l o t a g h 图2 t o t a 9 1 o 和t a g h i 寄存器格式 a u j :经过a l u 计算所得的物理地址的低1 2 位不经过任何转换直接做为 c a c h e 的i n d e x 对数据进行定位。 a l i g n e r :a l i g n e r 分为l o a d _ a l i g n e r 和s t o r e _ a l i g n e r 两部分,分剐完成l o a d 1 9 第2 章高速缓冲存储器( c a c h e ) 操作和s t o r e 操作。a l i g n e r 的功能是根据需要将数据进行排序,排列方式为 l i t t l e e n d i a n 。由于c a c h e 的l o a

温馨提示

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

最新文档

评论

0/150

提交评论