文档库 最新最全的文档下载
当前位置:文档库 › 高速缓冲存储器.

高速缓冲存储器.

高速缓冲存储器.
高速缓冲存储器.

3.7 高速缓冲存储器

高速缓冲存储器的功能是提高CPU数据输入/输出的速率,突破所谓的存储器瓶颈问题,即CPU与存储系统间数据传送带宽限制。高速缓冲存储器能以极高的速率进行数据的访问,但因其价格高昂,所以只在CPU和主存之间添加少量的Cache,利用程序的局部性原理来进行工作。

3.7.1 程序访问的局部性原理

程序访问的局部性有两个方面的含义:时间局部性和空间局部性。时间局部性是指最近的访问项(指令/数据)很可能在不久的将来再次被访问(往往会引起对最近使用区域的集中访问),而空间局部性是指一个进程访问的各项地址彼此很近。

换句话说,就是最近的、未来要用的指令和数据大多局限于正在用的指令和数据,或是存放在与这些指令和数据位置上邻近的单元中。这样,就可以把目前常用或将要用到的信息预先放在存取速度最快的存储器中,从而使CPU的访问速度大大提高。

依据局部性原理,把主存储器中访问概率高的内容存放在Cache中,当CPU需要读取数据时,首先在Cache中查找是否有所需内容,如果有则直接从Cache中读取;若没有再从主存中读取该数据,然后同时送往Cache和CPU。如果CPU需要访问的内容大多都能在Cache中找到(称为命中),则可以大大提高系统性能。

3.7.2 Cache的基本工作原理

如图3-13所示给出了Cache的基本结构。Cache和主存都被分成若干个大小相等的块,每块由若干字节组成。由于Cache的容量远小于主存的容量,所以Cache的块数要远少于主存的块数,它保存的信息只是主存中最活跃的若干块的副本。用主存地址的块号字段访问Cache标记,并将取出的标记和主存地址的标记字段相比较,若相等,说明访问Cache有效,称Cache命中,若不相等,说明访问Cache无效,称Cache不命中或失效,而此时需要从主存中将该块取出至Cache中。

当CPU发出读请求时,如果Cache命中,就直接对Cache 进行读操作,与主存无关;如果Cache不命中,则仍需访问主存,并把该块信息一次从主存调入Cache内。若此时Cache已满,则须根据某种替换算法,用这个块替换掉Cache中原来的某块信息。

当CPU发出写请求时,如果Cache命中,有可能会遇到Cache与主存中的内容不一致的问题,处理的方法主要有两种,一是同时写入Cache和主存,称为写直达法;二是将信息暂时只写入Cache,并用标志将该块加以注明,直到该块从Cache中替换出来时才一次写入主存,称为写回法。如果不命中,就直接把信息写入主存,而与Cache无关。

3.7.3 Cache和主存之间的映像方式

为了把信息放到Cache中,必须应用某种函数把主存地址映像到Cache中定位,称为地址映像(映射)。而将主存地址变换成Cache地址,称做地址变换,它们之间是密切相关的。常用的地址映像方式有三种,分别是全相联映像、直接映像和组相联映像。

1.全相联映像

全相联映像是指将内存和Cache按照固定的相同的大小进行分块。内存的块和Cache的块可以任意对应,即内存的任何一块都可以映像到Cache的任何一块。在Cache的存储空间被占满的情况下,也允许确实已被占满的Cache存储器中替换出任何一个旧块,具体如图3-14所示。

2.直接映像

直接映像先将Cache分成若干块,每个块的大小相同,并对每个块进行编号。同时根据Cache容量大小将内存分成若干区(页),每个区的容量都跟Cache的容量相同,然后对内存进行分块,每块的大小跟Cache块的大小相同,同样对区内的块进行编号。映像时,内存的某个区的块只能保存在与其块号相同的Cache块中。如图3-15所示,内存各区中的第0块只能映像到Cache的第0块,而不能映像到其他块。

3.组相联映像

组相联映像实际上是直接映像和全相联映像的折中方案。组相联映像方式先将Cache分成大小相同的若干区(组),对每个区按照直接映像的方式进行分块,并且编号,因此,Cache中有多个编号相同的块。对内存按照Cache区的大小进行分页,再对每页按照Cache块的大小进行分块,每个内存块可以对应不同Cache区中的相同块号的块。如图3-16中内存第0页的第0块,可以对应Cache的第0区的第0块,也可以对应第j区的第0块。

在三种方式中,全相联映像方式比较灵活,Cache的块冲突概率最低、空间利用率最高,但是地址变换速度慢,而且成本高,实现起来比较困难;直接映像方式是最简单的地址映像方式,成本低,易实现,地址变换速度快,而且不涉及其他两种映像方式中的替换算法问题。但这种方式不够灵活,Cache 的块冲突概率最高、空间利用率最低;组相联映像实际上是全

相联映像和直接映像的折中方案,其优点和缺点介于全相联和直接映像方式的优缺点之间。

3.7.4 Cache中主存块的替换算法

当采用全相联映像和组相联映像方式从主存向Cache传送一个新块,而Cache中的可用位置已经占满时,就产生了替换算法的问题。目前,常用的替换算法主要有以下几种。

1.随机替换算法

随机替换算法的思想最简单,即随机地选择一个Cache 块进行替换,它不考虑Cache块过去、现在及将来的使用情

况。

2.先进先出算法

先进先出(First Input First Output,FIFO)算法的思想是:按调入Cache的先后决定淘汰的顺序,即在需要更

新时,将最先进入Cache的块作为被替换的块。这种方法不需要随时记录各个块的使用情况,容易实现,而且系统开销小。其缺点是可能会把一些需要经常使用的程序块(如循环程序)也作为最早进入Cache的块替换掉。

3.近期最少使用算法

最近最少使用(Least Recently Used,LRU)算法是把CPU近期最少使用的块作为被替换的块。这种替换方法需要随时记录Cache中各块的使用情况,以便确定哪个块是近期最少使用的块。LRU算法相对合理,但实现起来比较复杂,系统开销较大。通常需要对每一块设置一个称为计数器的硬件或软件模块,用以记录其被使用的情况。

无论FIFO算法还是LRU算法,都不能确定调出去的块近期将绝不会再被使用。研究表明,采用这两种算法后可使Cache的命中率达到90%左右,其中LRU算法略优于FIFO算法,这在实际使用中已经是很不错的了。

3.7.5 Cache写策略

CPU对Cache的写入更改了Cache的内容。可选用写操作策略使Cache内容和主存内容保持一致。Cache写的策略主要

有以下几种。

1.写回法

当CPU写Cache命中时,只修改Cache的内容,而不立即写入主存。只有当该块被换出时才写回主存。这种方法减少了访问主存的次数,但是存在不一致性的隐患。实现这种方法时,每个Cache块必须配置一个修改位,以反映此块是否被

CPU修改过。这种方法的优点是操作速度快,缺点是因主存中的字块未随时修改而有可能出错。

2.写全法

也称为写直达法。当写Cache命中时,Cache与主存同时发生写修改,因而较好地维护了Cache与主存的内容的一致性;当写Cache未命中时,直接向主存进行写入。Cache中每块无须设置一个修改位及相应的判断逻辑。缺点是降低了

Cache的功效。

3.写一次法

写一次法是基于写回法并结合了写全法的写策略,写命中与写未命中的处理方法与写回法基本相同,只是第一次写命中时要同时写入主存。这便于维护系统全部Cache的一致性。

3.7.6 Cache的性能

增加Cache的目的,就是在性能上使主存的平均读出时间尽可能接近Cache的读出时间,因此,Cache的命中率应接近于1。由于程序访问的局部性,这是可能的。在一个程序执行期间,设Nc表示Cache完成存取的总次数,Nm表示主存完成存取的总次数,h为命中率,则有:

若tc表示命中时的Cache访问时间,tm表示未命中时的主存访问时间,则Cache/主存系统的平均访问时间ta为:

设r=tm/tc,表示主存慢于Cache的倍率,e表示访问效率,则有:

为提高访问效率,命中率h越接近1越好,r值以5~10为宜,不宜太大。命中率h与程序的行为、Cache的容量、组织方式、块的大小有关。

高速大容量FLASH存储系统设计

文章编号:1008-8652(2007)01-83-05 高速大容量FL A S H存储系统设计 李 超 王虹现 邢孟道 (西安电子科技大学 西安 710071) 【摘要】 介绍所设计的高速、大容量存储卡的组成机制和系统实现方案。采用固态存储芯片FLASH(闪存)为存储介质,FP GA(现场可编程门阵列)为存储阵列的控制核心,针对外部高速数据的输入,引入了多级流水和冗余校验技术,并自动屏蔽了FL ASH的坏块。成功实现了用高密度、相对低速的FL ASH存储器对高速实时数据的可靠存储。另外,通过U SB和CPCI接口,可以同主机进行良好的数据通信。 关键词:FP GA;FLASH;存储;高速 中图分类号:TP333 文献标识码:A Design of a FLASH Storage System with High Speed and Large C apacity Li Chao Wang Hongxian Xing Mengdao (X i di an Uni versit y,X i’an710071) Abstract:Configuration and system implementatio n of a storage board wit h high speed and large ca2 pacity is int roduced.Solid2state storage chip FL ASH is storage medium of t he board,and field p rogram2 mable gate array(FP GA)is t he cont rol core of t he storage array.Multi2stage flow and redundancy correc2 tion technique are applied to deal wit h external high speed inp ut data;and invalid blocks of FL ASH chip s can be masked automatically.By using of t he storage board,high speed real2time data can be successf ully stored wit h high density lower speed FLASH chip s.Additionally,t he storage board can well communicate wit h host p rocessor via U SB and CPCI interfaces. K eyw ords:FP GA;FLASH;storage;high speed 1 引言 高速存储系统目前在雷达、图像处理、语音识别、声纳、通信等领域有着广泛地应用。特别是随着雷达成像技术逐渐成熟,分辨率和采样率都大幅提升,需要实时保存大量数据。此时,开发出超高速、大容量的存储系统就显得尤为重要。FL ASH芯片,以半导体作为记忆载体,比传统的存储设备更能承受温度的变化、机械的振动和冲击,可靠性更高,易于实现高速度、低功耗和小型化,日趋成为存储器的主流。 在某机载合成孔径雷达的试验中,雷达以正侧视条带式工作在X波段,空间分辨率达到0.3m×0.3m 的高分辨率,I、Q双通道采样,采样频率640M Hz,采样位宽为8位,场景距离向20560点,方位向重复频率为4k/s,要求最小存储速度2×8bit×20560×4k/s=164.48Mbytes/s。本文将详细介绍所设计的FLASH 存储系统是如何构建来满足数据传输要求的。  3收稿日期:2006-07-25

高速缓冲存储器.

3.7 高速缓冲存储器 高速缓冲存储器的功能是提高CPU数据输入/输出的速率,突破所谓的存储器瓶颈问题,即CPU与存储系统间数据传送带宽限制。高速缓冲存储器能以极高的速率进行数据的访问,但因其价格高昂,所以只在CPU和主存之间添加少量的Cache,利用程序的局部性原理来进行工作。 3.7.1 程序访问的局部性原理 程序访问的局部性有两个方面的含义:时间局部性和空间局部性。时间局部性是指最近的访问项(指令/数据)很可能在不久的将来再次被访问(往往会引起对最近使用区域的集中访问),而空间局部性是指一个进程访问的各项地址彼此很近。 换句话说,就是最近的、未来要用的指令和数据大多局限于正在用的指令和数据,或是存放在与这些指令和数据位置上邻近的单元中。这样,就可以把目前常用或将要用到的信息预先放在存取速度最快的存储器中,从而使CPU的访问速度大大提高。 依据局部性原理,把主存储器中访问概率高的内容存放在Cache中,当CPU需要读取数据时,首先在Cache中查找是否有所需内容,如果有则直接从Cache中读取;若没有再从主存中读取该数据,然后同时送往Cache和CPU。如果CPU需要访问的内容大多都能在Cache中找到(称为命中),则可以大大提高系统性能。 3.7.2 Cache的基本工作原理

如图3-13所示给出了Cache的基本结构。Cache和主存都被分成若干个大小相等的块,每块由若干字节组成。由于Cache的容量远小于主存的容量,所以Cache的块数要远少于主存的块数,它保存的信息只是主存中最活跃的若干块的副本。用主存地址的块号字段访问Cache标记,并将取出的标记和主存地址的标记字段相比较,若相等,说明访问Cache有效,称Cache命中,若不相等,说明访问Cache无效,称Cache不命中或失效,而此时需要从主存中将该块取出至Cache中。 当CPU发出读请求时,如果Cache命中,就直接对Cache 进行读操作,与主存无关;如果Cache不命中,则仍需访问主存,并把该块信息一次从主存调入Cache内。若此时Cache已满,则须根据某种替换算法,用这个块替换掉Cache中原来的某块信息。 当CPU发出写请求时,如果Cache命中,有可能会遇到Cache与主存中的内容不一致的问题,处理的方法主要有两种,一是同时写入Cache和主存,称为写直达法;二是将信息暂时只写入Cache,并用标志将该块加以注明,直到该块从Cache中替换出来时才一次写入主存,称为写回法。如果不命中,就直接把信息写入主存,而与Cache无关。

高速缓冲存储器Cache的工作原理及技术实现

桂林理工大学2013年春季学期 <<计算机组成原理X>>课程论文 题目:高速缓冲存储器Cache的工作原 理及技术实现 专业:网络工程 班级:网络11-2班 学号:3110757202 姓名:xxx 信息科学与工程学院 2013年7月

【内容摘要】 缓冲存储器用在两个工作速度不同的硬件之间,在交换信息过程中起到缓冲作用,它能提高计算机系统的工作效益。高速缓冲存储器Cache 是架设在CPU与内存之间的临时存储器,它的容量比内存小但交换速度快,主要用来提高CPU提取数据的速度,Cache作为PC系统中一个重要功能部件,已成为评价和选购P C系统的重要指标,下面主要谈谈Cache的原理、设计及发展趋势。 【关键词】Cache CPU 命中率映像局部性原理 【前言】 我们通常都认为计算机的速度是由CPU决定的, 虽然CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于CPU,还要有其它的硬件或软件来充分发挥它的速度,与系统架构、指令结构、信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特别是与CPU/内存之间的存取速度有关。我们知道要使用的软件都要通过主存储器(内存)才能运行,而主存储器的运行速度和CPU之间有一个数量级的差距,这就限制了CPU速度潜力的发挥,若CPU工作速度较高,但内存存取速度较低,则造成CPU等待,降低处理速度,浪费CPU的能力。如500MHz的PⅢ,一次指令执行时间为2ns,与其相配的内存(SDRAM)存取时间为10ns,比前者慢5倍,CPU和PC的性能怎么发挥出来? 如何减少CPU与内存之间的速度差异?有4种办法:一种是在基本总线周期中插入等待,这样会浪费CPU的能力。另一种方法是采用存取时

基于FPGA的高速大容量FLASH存储

技术创新 中文核心期刊《微计算机信息》(嵌入式与SOC)2008年第24卷第9-2期PLDCPLDFPGA应用 基于FPGA的高速大容量FLASH存储 DesignofaFLASHStorageSystemwithHighSpeedandLargeCapacitybymeansofFPGA (中北大学仪器科学与动态测试教育部重点实验室)麻海霞马铁华 MAHai-xiaMATie-hua 摘要:本文研究RS-422电平传输串行数据,通过FPGA把串行数据转化为并行数据存储到高速大容量的FLASH的存储系统的具体设计,FPGA(现场可编程门阵列)为存储阵列的核心。不仅分析了RS-422电平在具体使用时需要注意的问题,而且针对外部高速数据的输入,在数据存储部分引入新的方法,能够更加快速的实现FLASH存储器对高速实时数据的可靠存储。关键词:RS-422;FPGA;高速;大容量;FLASH 中图分类号:TP274+.2文献标识码:A Abstract:TheresearchusestheRS-422leveltransmissionserialdatainthistext,SystemimplementationofastorageboardwouldmakeserialdatatransfersparalleldatastoredintoFLASHofhighspeedandlargecapacitywithFPGAisintroduced,andfieldpro-grammablegatearray(FPGA)isthecontrolcoreofthestoragearray.NotonlycarefullyhasanalyzedtheRS-422levelwhentheconcreteuseneedstodayattentionquestion,butalsonewmethodsareappliedtodealwithexternalhighspeedinputdata,Byusingofthestorageboard,highspeedrealtimedatacanbesuccessfullystoredwithhighdensitylowerspeedFLASHchips. Keywords:RS-422;FPGA;highspeed;largecapacity;FLASH 文章编号:1008-0570(2008)09-2-0144-02 1引言 数字电路应用越来越广泛,传统通用的数字集成芯片已经 难以满足系统的功能要求,随着系统复杂程度的提高,所需通 用集成电路的数量呈爆炸性增值,使得电路的体积膨大,可靠 性难以保证。因而出现了现场可编程门阵列(FPGA)和复杂可编 程逻辑器件(CPLD)。在我国20世纪90年代以前,测试系统采 用磁带记录,效率和安全保障性不高;随之出现的是遥测技术, 但在传输数据的过程中会出现误差;接着是静态存储器,它读、 写方便,但是存储的数据会因为断电而丢失,所以,不利于数据 长时间保存;目前,闪存的问世,NOR和NAND是现在市场上 两种主要的非易失闪存技术,它有存储容量大、体积小、可靠性 高等优点,测试系统会逐步向这个方向发展。 2设计思想 图1设计示意图 2.1核心芯片选择 (1)接受芯片选择MAX491 此芯片为RS-422/485扩展芯片,为DIP14封装。MAX491 有两个控制端,如果两个控制端由微处理器的一个I/O口控制, 则总线,两线制,半双工工作。如果两个控制端单独控制,则总 线为RS-422总线,四线制,全双工工作。MAX491采用+5V电 源供电,当供电电流仅有500uA时,传输速率却能达到 2.5Mbits/s。它的内部有一个传输线驱动器和一个传输线接收 器,因此可以采用全双工工作。 (2)FPGA采用Spartan-II系列Xc2s100 Spartan-II系列Xc2s100有着丰富的触发器和LUT(Look- Up-Table),非常适合复杂时序逻辑的设计。FLASH采用SAM- SUNG公司的NANDFLASH芯片K9F8G08,接口宽度8位。每 个芯片含8192个数据块,一个块分为64页,每页大小为(2K+ 64)Bytes,其中64Bytes为空闲区,存储容量为8Gbit。它以页为 单位进行读写,以块为单位擦除、命令、数据、地址共用同一总 线,具有硬件数据保护功能。 2.2MAX491设计时需要注意的问题 (1)RS-422传输线上匹配的一些说明:理论上,在每个接 收数据信号的中点进行采样时,只要反射信号在开始采样时衰 减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国 MAXIM公司有篇文章提到一条经验性的原则可以用来判断在 什么样的数据速率和电缆长度时需要进行匹配:当信号的转换 时间(上升或下降时间)超过电信号沿总线单向传输所需时间 的3倍以上时就可以不加匹配。 *一般终端匹配采用终接电阻方法,RS-422在总线电缆的 远端并接电阻,终接电阻一般在RS-422网络中取100Ω,这种 匹配方法简单有效,但有一个缺点,匹配电阻要消耗较大功率, 对于功耗限制比较严格的系统不太适合; *另外一种比较省电的匹配方式是RC匹配; *还有一种采用二极管的匹配方法。 (2)RS-422的接地问题 RS-422传输网络的接地是很重要的,因为接地系统不合 理会影响整个网络的稳定性,尤其是在工作环境比较恶劣和传麻海霞:在读硕士研究生 基金项目:总装备部(9140A17080307BQ0409)

浅谈高速缓冲存储器

浅谈高速缓冲存储器 缓冲存储器用在两个工作速度不同的硬件之间,在交换信息过程中起到缓冲作用。它能提高计算机系统的工作效益。下面主要谈谈两种高速缓冲存储器、它的作用及发展趋势。一、高速缓冲存储器Cache 我们通常都认为计算机的速度是由CPU决定的,但是还要有其它的硬件或软件来充分发挥它的速度。我们知道要使用的软件都要通过主存储器(内存)才能运行,而主存储器的运行速度和CPU之间有一个数量级的差距,这就限制了CPU速度潜力的发挥,为了弥补这个差距,人们在主存储器和CPU之间设置一种高速缓冲存储器Cache。高速缓冲存储器Cache的运行速度高于主存储器数倍,与CPU速度差不多,容量较小。高速缓冲存储器Cache中的数据是主存储器的副本,在程序运行中,当需要取指令或数据时,CPU先检查高速缓冲存储器Cache中是否有内容,若有就从Cache中取出,否则从主存储器取出,这样就充分发挥了CPU的潜力。在486的机种中经常配备高速缓冲存储器Cache,与主存储器相比,它的工作性质是不同的。简单地说,Cache是针对CPU作输入输出动作的,而主存储器是针对总线作输入输出动作的,因此Cache比主存储器的速度快。现在486机型一般配置有256K的Cache,Cache并不是越大越好,一般有256K就足够了。另外,如果机器本身没有配备硬件Cache,可以使用某些工具软件(如PC TOOLS,NORTON等)控制的Cache功能,也能达到同样的效果。二、磁盘高速缓冲存储器SMARTDRV SMARTDRV.EXE是DOS 6.2中的外部设备驱动程序。用此程序可启动或设置磁盘高速缓冲存储器。与

数据库系统工程师考试知识点精讲(高速缓冲存储器)

数据库系统工程师考试知识点精讲(高速缓冲存储器) 数据库系统工程师为软考中一门中级资格考试,以下是小编整理的一些数据库系统工程师考试知识点精讲,供大家参考学习。 高速缓冲存储器 Cache的功能是提高CPU数据输入输出的速率,突破所谓的“冯•诺依曼瓶颈”,即CPU与存储系统间数据传送带宽限制。高速存储器能以极高的速率进行数据的访问,但因其价格高昂,如果计算机的内存完全由这种高速存储器组成则会大大增加计算机的成本。通常在CPU和内存之间设置小容量的高速存储器Cache。Cache容量小但速度快,内存速度较低但容量大,通过优化调度算法,系统的性能会大大改善,仿佛其存储系统容量与内存相当而访问速度近似Cache。 1.Cache基本原理 使用Cache改善系统性能的依据是程序的局部性原理。依据局部性原理,把内存中访问概率高的内容存放在Cache中,当CPU需要读取数据时首先在Cache中查找是否有所需内容,如果有,则直接从Cache中读取;若没有,再从内存中读取该数据,然后同时送往CPU和Cache。如果CPU需要访问的内容大多都能在Cache中找到(称为访问命中),则可以大大提高系统性能。 如果以h代表对Cache的访问命中率(“1-h”称为失效率,或者称为未命中率),t1表示Cache的周期时间,t2表示内存的周期时间,以读操作为例,使用“Cache+主存储器”的系统的平均周期为t3,则: 计算机硬件基础

系统的平均存储周期与命中率有很密切的关系,命中率的提高即使很小也能导致性能上的较大改善。 例如:设某计算机主存的读/写时间为100ns,有一个指令和数据合一的Cache,已知该Cache的读/写时间为10ns,取指令的命中率为98%,取数的命中率为95%。在执行某类程序时,约有1/5指令需要存/取一个操作数。假设指令流水线在任何时候都不阻塞,则设置Cache后,每条指令的平均访存时间约为: (2%×100ns+98%×10ns)+1/5×(5%×100ns+95%×10ns)=14.7ns 2.映射机制 当CPU发出访存请求后,存储器地址先被送到Cache控制器以确定所需数据是否已在Cache中,若命中则直接对Cache进行访问。这个过程称为Cache 的地址映射(映像)。在Cache的地址映射中,主存和Cache将均分成容量相同的块(页)。常见的映射方法有直接映射、全相联映射和组相联映射。 (1)直接映射。直接映射方式以随机存取存储器作为Cache存储器,硬件电路较简单。直接映射是一种多对一的映射关系,但一个主存块只能够复制到Cache的一个特定位置上去。Cache的块号i和主存的块号j有函数关系: i=j%m(其中m为Cache总块数) 例如,某Cache容量为16KB(即可用14位表示),每块的大小为16B(即可用4位表示),则说明其可分为1024块(可用10位表示)。则主存地址的最低4位为Cache的块内地址,然后接下来的中间10位为Cache块号。如果内存地址为1234E8F8H的话(一共32位),那么最后4位就是1000(对应十六进制数的最后一位“8”),而中间10位,则应从E8F(111010001111)

基于NANDFLASH的高速大容量存储系统设计

2011年4月15日第34卷第8期 现代电子技术 M odern Electro nics T echnique Apr.2011V ol.34N o.8 基于NAND FLASH 的高速大容量存储系统设计 朱知博 (中国空空导弹研究院,河南洛阳 471009) 摘 要:为了解决目前记录系统容量小、存储速度低的问题,采用性能优良的固态N A ND 型FL A SH 为存储介质,大规模集成电路F PGA 为控制核心,通过使用并行处理技术和流水线技术实现了多片低速F LA SH 对高速数据的存储,提高了整个系统的存储容量和存储速度。针对F LA SH 内部存在坏块的自身缺陷,建立一套查询、更新和屏蔽坏块的处理机制,有效的提高了数据存储的可靠性。 关键词:高速;流水线;F L ASH ;F PG A 中图分类号:T N911 34 文献标识码:A 文章编号:1004 373X(2011)08 0170 04 Design of High speed and Mass Storage System Based on NAND Flash ZH U Zhi bo (Chi na Airborne Missi le Academy,L uo yang 471009,China) Abstract :In or der to solv e t he problem o f small capacity and lo w speed storag e in the recor ding system,the so lid NA N D Flash w ith excellent per for mance is taken as a sto rag e medium and larg e scale integr ated circuit o f F PG A as a contr ol cor e.T he application o f parallel pro cessing techno log y and pipeline techno log y makes the hig h speed dat a stor age achieved by sev eral low speed Flash,which impro ves t he stor age capacity and sto rage speed o f the who le sy st em.Aiming to the draw back of internal bad block in Flash,a set of pr ocessing mechanism for inquir ing,updating and shielding bad block is established,thus the reliability o f the data stor age is impr ov ed. Keywords :high speed;f low line;Flash;FP GA 收稿日期:2010 12 26 0 引 言 在数据采集存储系统中,往往需要对采集后的数据进行存储以方便后续分析处理。随着我国航空电子技 术和雷达成像技术的快速发展,分辨率和采样率大幅提升,由此便带来了高速大容量数据的存储问题。同时存储系统又要求掉电存储数据并具有良好的抗振动能力,因此存储电路通常采用非易失的电路芯片构成,而传统的DOC,E 2PROM 等存储技术由于容量小、速度低等缺点已经不适用高速大容量数据的存储。快速发展的闪速存储器(FLASH M EM ORY)因其具有体积小、成本低、功耗小、寿命长、抗振动和宽温度适应范围等特点,逐渐成为高速大容量存储系统设计的主流方案。1 FLASH 的控制逻辑 目前FLA SH 芯片主要分为N OR 型和NA ND 型。NOR 型具有可靠性高,随机读取速度快等优点,适用于程序代码的存储。NA ND 型是一种线性存储设备,适用于大容量数据和文件的存储。K9WBG08U1M [1]是三星公司推出的一款NAND 型 FLASH 芯片,存储容量达到4GB,它内部由两片2GB 的FLASH 构成,通过片选信号CE1/CE2进行选择控制,每片FLA SH 由8192个块组成,每块有64页,每页能存储(4096+128)个字节的数据。因此,访问芯片需要5个地址周期,其中3个周期的行地址用来确定某一页,2个周期的列地址用来确定每页的某个字节。对FLASH 进行的操作主要有:存储、读取和擦除。由于指令、地址和数据复用芯片的8个I/O 口,因此需要2个控制信号CLE 和ALE 分别锁存指令和地址。 存储操作一般使用基于页的连续存储模式,所有的命令字、地址、数据都是在WE 的上升沿写入。首先输入命令字80H ,随后紧跟输入5个周期的地址,并且在WE 的上升沿将串行输入数据加载进芯片内部的数据存储器中,最后输入页编程确认命令10H 便可启动存储操作,数据将自动的从片内寄存器写入存储体中,随后可通过输入读状态命令70H 来判断I/O 端口输出是否为0来检测此次编程操作的成功性。 读取操作通常也以页为单位进行。输入起始命令字00H 、5个周期的地址和结束命令字30H 后,对应地址的一页4096个字节数据便传输给数据寄存器,随后在RE 的下降沿将数据驱动到I/O 总线输出。 擦除操作与存储、读取操作略有不同,它是以块为

高速缓冲存储器的功能、结构与工作原理

高速缓冲存储器是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。 Cache的功能是用来存放那些近期需要运行的指令与数据。目的是提高CPU对存储器的访问速度。为此需要解决2 个技术问题:一是主存地址与缓存地址的映象及转换;二是按一定原则对Cache的内容进行替换。 Cache的结构和工作原理如图2.3.1所示。 主要由三大部分组成: Cache存储体:存放由主存调入的指令与数据块。 地址转换部件:建立目录表以实现主存地址到缓存地址的转换。 替换部件:在缓存已满时按一定策略进行数据块替换,并修改地址转换部件。 2.3.2 地址映象与转换 地址映象是指某一数据在内存中的地址与在缓冲中的地址,两者之间的对应关系。下面介绍三种地址映象的方式。 1.全相联方式地址映象规则:主存的任意一块可以映象到Cache中的任意一块 (1) 主存与缓存分成相同大小的数据块。 (2) 主存的某一数据块可以装入缓存的任意一块空间中。 全相联方式的对应关系如图2.3.2所示。如果Cache的块数为C b,主存的块数为M b,则映象关系共有C b×M b种。

图2.3.3示出了目录表的格式及地址变换规则。目录表存放在相关(联)存储器中,其中包括三部分:数据块在主存的块地址、存入缓存后的块地址、及有效位(也称装入位)。由于是全相联方式,因此,目录表的容量应当与缓存的块数相同。 举例:某机主存容量为1M,Cache的容量为32KB,每块的大小为16个字(或字节)。划出主、缓存的地址格式、目录表格式及其容量。

容量:与缓冲块数量相同即211=2048(或32K/16=2048)。优点:命中率比较高,Cache存储空间利用率高。 缺点:访问相关存储器时,每次都要与全部内容比较,速度低,成本高,因而应用少。 2.直接相联方式 地址映象规则:主存储器中一块只能映象到Cache的一个特定的块中。 (1) 主存与缓存分成相同大小的数据块。 (2) 主存容量应是缓存容量的整数倍,将主存空间按缓存的容量分成区,主存中每一区的块数与缓存的总块数相等。 (3) 主存中某区的一块存入缓存时只能存入缓存中块号相同的位置。 图2.3.4示出了直接相联映象规则。可见,主存中各区内相同块号的数据块都可以分别调入缓存中块号相同的地址中,但同时只能有一个区的块存入缓存。由于主、缓存块号相同,因此,目录登记时,只记录调入块的区号即可。

高速缓冲存储器Cache的原理、设计及实现

高速缓冲存储器Cache的原理、设计及实现 前言虽然CPU主频的提升会带动系统性能的改善,但系统性能的提高不仅仅取决于C PU,还与系统架构、指令结构、信息在各个部件之间的传送速度及存储部件的存取速度等因素有关,特别是与CPU/内存之间的存取速度有关。若CPU工作速度较高,但内存存取速度较低,则造成CPU等待,降低处理速度,浪费CPU的能力。如500MHz的PⅢ,一次指令执行时间为2ns,与其相配的内存(S DRAM)存取时间为10ns,比前者慢5倍,CPU和PC的性能怎么发挥出来? 如何减少CPU与内存之间的速度差异?有4种办法:一种是在基本总线周期中插入等待,这样会浪费CPU的能力。另一种方法是采用存取时间较快的SRAM作存储器,这样虽然解决了CPU与存储器间速度不匹配的问题,但却大幅提升了系统成本。第3种方法是在慢速的DRAM 和快速CPU之间插入一速度较快、容量较小的SRAM,起到缓冲作用;使CPU既可以以较快速度存取SRAM中的数据,又不使系统成本上升过高,这就是Cache法。还有一种方法,采用新型存储器。目前,一般采用第3种方法。它是PC系统在不大增加成本的前提下,使性能提升的一个非常有效的技术。 本文简介了Cache的概念、原理、结构设计以及在PC及CPU中的实现。Cache的工作原理Cache的工作原理是基于程序访问的局部性。对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布本来就是连续的,再加上循环程序段和子程序段要重复执行多次。因此,对这些地址的访问就自然地具有时间上集中分布的倾向。数据分布的这种集中倾向不如指令明显,但对数组的存储和访问以及工作单元的选择都可以使存储器地址相对集中。这种对局部范围的存储器地址频繁访问,而对此范围以外的地址则访问甚少的现象,就称为程序访问的局部性。 根据程序的局部性原理,可以在主存和CPU通用寄存器之间设置一个高速的容量相对较小的存储器,把正在执行的指令地址附近的一部分指令或数据从主存调入这个存储器,供CPU在一段时间内使用。这对提高程序的运行速度有很大的作用。这个介于主存和CPU之间的高速小容量存储器称作高速缓冲存储器(Cache)。系统正是依据此原理,不断地将与当前指令集相关联的一个不太大的后继指令集从内存读到Cache,然后再与CPU高速传送,从而达到速度匹配。CPU对存储器进行数据请求时,通常先访问Cache。由于局部性原理不能保证所请求的数据百分之百地在Cache中,这里便存在一个命中率。即CPU在任一时刻从Cache中可靠获取数据的几率。命中率越高,正确获取数据的可靠性就越大。一般来说,Cache的存储容量比主存的容量小得多,但不能太小,太小会使命中率太低;也没有必要过大,过大不仅会增加成本,而且当容量超过一定值后,命中率随容量的增加将不会有明显地增长。只要Cache的空间与主存空间在一定范围内保持适当比例的映射关系,Cache的命中率还是相当高的。一般规定Cache与内存的空间比为4:1000,即128kB Cache可映射32MB内存;256kB Cache可映射64MB内存。在这种情况下,命中率都在90%以上。至于没有命中的数据,CPU只好直接从内存获取。获取的同时,也把它拷进Cache,以备下次访问。 Cache的基本结构Cache通常由相联存储器实现。相联存储器的每一个存储块都具有额外的存储信息,称为标签(Tag)。当访问相联存储器时,将地址和每一个标签同时进行比较,从而对标签相同的存储块进行访问。Cache的3种基本结构如下:全相联Cache 在全相联Cache中,存储的块与块之间,以及存储顺序或保存的存储器地址之间没有直接的关系。程序可以访问很多的子程序、堆栈和段,而它们是位于主存储器的不同部位上。因此,Cache

高速缓冲存储器Cache

高速缓冲存储器cache 10计科一班1010311110 韩家君 高速缓冲存储器(Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM技术,也有快取记忆体的名称。它是位于CPU与内存之间的临时存储器,比主存储器体积小但速度快,用于保有从主存储器得到指令的副本——很可能在下一步为处理器所需——的专用缓冲器。在Cache中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从Cache中调用,从而加快读取速度。由此可见,在CPU中加入Cache是一种高效的解决方案,这样整个内存储器(Cache+内存)就变成了既有Cache的高速度,又有内存的大容量的存储系统了。 Cache对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与Ca che间的带宽引起的。 高速缓存的基本概念 在计算机存储系统的层次结构中,介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的。某些机器甚至有二级三级缓存,每级缓存比前一级缓存速度慢且容量大。而这时,一开始的高速小容量存储器就被人称为一级缓存。高速缓存的组成结构 高速缓冲存储器是存在于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多,接近于CPU的速度。 主要由大部分组成: Cache存储体:存放由主存调入的指令与数据块。 地址转换部件:建立目录表以实现主存地址到缓存地址的转换。 替换部件:在缓存满时按一定策略进行数据块替换,并修改地址转换部件。 高速缓存的作用介绍 在计算机技术发展过程中,主存储器存取速度一直比中央处理器操作速度慢得多,使中央处理器的高速处理能力不能充分发挥,整个计算机系统的工作效率受到影响。有很多方法可用来缓和中央处理器和主存储器之间速度不匹配的矛盾,如采用多个通用寄存器、多存储体交叉存取等,在存储层次上采用高速缓冲存储器也是常用的方法之一。很多大、中型计算机以及新近的一些小型机、微型机也都采用高速缓冲存储器。 高速缓冲存储器的容量一般只有主存储器的几百分之一,但它的存取速度能与中央处理器相匹配。根据程序局部性原理,正在使用的主存储器某一单元邻近的那些单元将被用到的可能性很大。因而,当中央处理器存取主存储器某一单元时,计算机硬件就自动地将包括该单元在内的那一组单元内容调入高速缓冲存储器,中央处理器即将存取的主存储器单元很可能就在刚刚调入到高速缓冲存储器的那一组单元内。于是,中央处理器就可以直接对高速缓冲存储器进行存取。在整个处理过程中,如果中央处理器绝大多数存取主存储器的操作能为存取高速缓冲存储器所代替,计算机系统处理速度就能显著提高。 高速缓存的工作原理 1、读取顺序 CPU要读取一个数据时,首先从Cache中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所

相关文档