存储系统机制

上传人:d****1 文档编号:200025597 上传时间:2023-04-13 格式:DOCX 页数:17 大小:384.33KB
返回 下载 相关 举报
存储系统机制_第1页
第1页 / 共17页
存储系统机制_第2页
第2页 / 共17页
存储系统机制_第3页
第3页 / 共17页
点击查看更多>>
资源描述
存储系统机制存储器映射Cache存储系统机制存储器就是用来存储信息的部件,存储器是嵌入式系统硬件中的重要组成部分。设计嵌入式系统的存储器时需要考虑:是否需要扩展;整个嵌入式系统的存储器是由片内和片外两部分组成。为了解决速度和内存容量的问题,在系统中采用虚拟地址空间和高速缓存来提高内存的平均性能。存储管理单元(MMU)进行地址转换,它在一个小的物理内存中提供相对较大的虚拟存储空间。存储器部件的分类按在系统中的地位分类:(1)主存储器(Main Memory,简称内存或主存)(2)辅助存储器(Auxiliary Memory,Secondary Memory,简称辅存或外存)按存储介质分类:(1)磁存储器(Magnetic Memory),(2)半导体集成电路存储器(通常称为半导体存储器),(3)光存储器(Optical Memory),(4)激光光盘存储器(Laser Optical Disk)按信息存取方式分类:(1)随机存取存储器RAM(2)只读存储器ROM存储器的组织和结构嵌入式存储器一般采用存储密度较大的存储器芯片,典型的嵌入式存储器系统由ROM、RAM、EPROM等 组成。RAM空间ROM空间常用的存储器随机存储器(RAM)(1) 静态随机存储器(SRAM)(2) 动态随机存储器(DRAM)只读存储器(ROM),它在嵌入式系统中非常有用,因为许多代码或数据不随时间改变。(1) 工厂编程的只读存储器(2) 现场可编程只读存储器存储器的性能大容量、高速度、低价格是评价存储器性能的三个主要指标,也是存储体系设计的主要目标。容量:Sw=Wlm。其中W为存储体的字长(单位为位或字节),l为单个存储体的字数,m为并行工作的存 储体个数。速度:m个存储体并行工作时,可达到的最大频率宽度为Bm=Wm/TM。其中TM是连续起动一个存储 器所必要的时间间隔,TMTA。Bm是连续提供数据的速率。价格:具有SM位的存储器,每位价格表示为c=C/Sm。其中C是总价格。存储体系的组成单体单字存储器单体多字存储器多体单字交叉存取存储器多体多字交叉存取存储器并行主存系统:能并行读出多个CPU字的单体多字和多体单字及多体多字的交叉存取系统。存储体系的形式存储层次结构的组成原则: 每位价格从上往下依次减少。 存储容量从上往下依次增加。 存取速度从上往下依次减慢。 CPU的访问频度从上往下依次减少。总线协议总线是CPU与存储器和设备通信的机制。总线的一个主要作用是提供到存储器的接口。大部分总线协议的基本构件是四周期握手协议。总线读写总线的基本操作是读和写。Clock提供总线组件各部分同步。当总线读时,R/W为1。当总线写时,R/W为0。Address是一个a位信号束,为访问提供地址。Data是一个n位信号束,它可从CPU得到数据或向CPU传送数据。Data ready当数据束上值合法时发信号。总线的时序图总线行为以时序图说明。时序图表示总线上的信号如何随时间变化。直接内存访问(DMA )多数情况下,数据的传输需要CPU的介入。但是,有时候某些数据传输类型无须CPU加入。直接存储器访问(DMA)是允许读写不由CPU控制的总线操作系统总线配置一个微处理器系统可能含有多条总线。高速设备可连到高速总线上,低速设备连到别的总线上。 桥:使总线可以互连的逻辑电路。高速总线通常要更昂贵的电路和连接器,可通过使用较慢、较便宜的总线来降低低速设备成本。桥允许总线独立操作,在I/O操作中可提供某些并行性。桥不仅是高速总线的受控器,而且是低速总线的主控器。桥从高速总线上获取指令而将它们传到低速总线,它还将结果从低速总线传到高速总线上。 桥还可以作为两桥之间的协议翻译器。ARM存储数据类型六种数据类型:(1)8位有符号和无符号字节。(2)16位有符号和无符号半字。(3)32位有符号和无符号字。ARM指令都是32位的字,必须以字(4字节)为单位边界对齐。Thumb指令是16位半字,必须以2字节位单位边界对齐。在内部,所有ARM操作都是面向32位的操作数;只有数据传送指令支持较短的字节和半字的数据类型。 当从存储器调入一个字节和半字时,根据指令对数据的操作类型,将其无符号0或有符号符号位”扩展为 32位,进而作为32位数据在内部进行处理。ARM体系结构所支持的最大寻址空间为4GB(232字节)ARM体系结构将存储器看作是从零地址开始的字节的线性组合。从零字节到三字节放置第一个存储的字数 据,从第四个字节到第七个字节放置第二个存储的字数据,依次排列。ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式ARM存储格式数据存储格式有两种:(1)大端模式:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址。(2)小端模式:较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址。3124 2316 158 70字单心半字单元A半字单元们W字节单元字节俄元41字节申/胡+2字廿申兀43大端存储模式312d 23比比S 70字单元A半字单元A-N半字单兀A字节单元33字节单元脚字节单7 + 1字廿牌无A小新螂式(瞄ARM存储周期4种基本类型:空闲周期。非顺序周期。顺序周期。协处理器寄存器传送周期。ARM总线接口信号分类以ARM7为例ARM7TDMI的总线接口信号分成4类:时钟和时钟控制信号:MCLK、ECLK、nRESET、nWAIT。地址类信号:A31:0、nRW、MAS1:0、nOPC、nTRANS、LOCK、TBIT。存储器请求信号:nMREQ、SEQ。数据时序信号:D31:0、DIN31:0、DOUT31:0、ABORT、BL3:0。ARM总线接口可以实现的总线周期总线周期使用nMREQ和SEQ信号编码。4种不同类型的总线周期。N周期:非顺序周期,最简单的总线周期;存储控制器必须启动存储器访问来满足这个请求;该方式存储 系统常需要长的访问时间。S周期:顺序周期,实现总线上的突发传送;第一个周期,地址可与前一个内部周期相同;与非顺序访问 相比响应更快,访问时间更短。I周期:内部周期,不要求存储器访问;可广播下一次访问的地址以便开始译码,但存储控制器不允许进行 存储器访问。C周期:协处理器寄存器传递周期,通过数据总线向或从协处理器传送数据;不需存储周期,存储控制器 不启动事务;传送期间,存储系统不允许驱动数据总线。高速缓存(Cache)的分类1)统一 Cache和独立的数据/程序Cache统一 Cache: 一个存储系统中指令预取时使用的Cache和数据读写时使用的Cache是同一个Cache。 独立的Cache: 一个存储系统中指令预取时使用的Cache和数据读写时使用的Cache是各自独立的。 用于指令预取的Cache称为指令Cache。用于数据读写的Cache称为数据Cache。使用独立的数据Cache和指令Cache,可以在同一个时钟周期中读取指令和数据,而不需要双端口的C ache。 但此时要注意保证指令和数据的一致性。(2)写通Cache和写回Cache当CPU更新了 Cache的内容时,要将结果写回到主存中。写通法:write-throught,指CPU在执行写操作时,必须把数据同时写入Cache和主存。写回法:write-back,指CPU在执行写操作时,被写的数据只写入Cache,不写入主存。仅当需要替换时, 才把已经修改的Cache块写回到主存中。(3)读操作分配Cache和写操作分配Cache当进行数据写操作时,可能Cache未命中,这时根据Cache执行的操作不同。读操作分配Cache:当进行数据写操作时,如果Cache未命中,只是简单地将数据写入主存中。主要在数 据读取时,才进行Cache内容预取。写操作分配Cache:当进行数据写操作时,如果Cache未命中,Cache系统将会进行Cache内容预取,从 主存中将相应的块读取到Cache中相应的位置,并执行写操作,把数据写入到Cache中。对于写通类型的Cache,数据将会同时被写入到主存中,对于写回类型的Cache数据将在合适的时候写回 到主存中。Cache的工作原理在Cache存储系统当中,把主存储器和Cache都划分成相同大小的块。主存地址可以由块号M和块内地址N两部分组成。同样,Cache的地址也由块号m和块内地址n组成。Cache地址映像和变换方式1)直接映像快,造价低。但由于映射策略简单,所以有一定的局限性。如果访问频繁的块正好被映射到同一个块,就不能充分利用高速缓存的好处。(2)组相联映像组相联映像由组的个数来标识,每个组被实现为一个直接映射高速缓存。高速缓存请求同时广播到所有的组。如果某组中有这个单元,该高速缓存便报告命中。比直接映射慢,命中率较高。(3)全相联映像主存中任意一个块都可以映射到Cache中的任意一个块的位置上。不同的ARM有不同大小的高速缓存和组织结构。Cache的替换算法(1)轮转法维护一个逻辑计数器,利用该计数器依次选择将要被替换出去的Cache块。这种算法容易预测最坏情况下Cache的性能。缺点:在程序发生很小的变化时,可能造成Cache平均性能急剧的变化。(2)随机替换算法通过一个伪随机数发生器产生一个伪随机数,用新块将编号为该伪随机数的Cache块替换掉。算法简单,易于实现。没有考虑程序的局部性特点,也没有利用以前块地址分布情况,因而效果较差。不易预测最坏情况下Cache的性能。存储管理单元MMU存储管理单元在CPU和物理内存之间进行地址转换。由于是将地址从逻辑空间映射到物理空间,因此这个转换过程一般称为内存映射。在ARM系统中,存储管理单元MMU主要工作:(1)虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。(2)存储器访问权限的控制。(3)设置虚拟存储空间的缓冲的特性MMU的页表页表是实现上述功能的一个重要手段,它实际上是位于内存中的一个对照表。为了实现不同层次的管理,系统提供了基于段或页的存储器访问方式1. 段(section):由1MB的存储器块构成2. 大页(large page):由64KB的存储器块构成3. 小页(small page):由4KB的存储器块构成4. 极小页(tiny page):由1KB的存储器块构成MMU的页表续地址变换条目:页表的每一行对应与虚拟地址空间的一个页,该行同时包含了该虚拟内存页对应的物理内 存页的地址、该页的访问权限以及缓冲特性等。我们将页表中的一行称为地址变换条目。页表:存放在内存中,系统通常有一个寄存器来保存页表的基地址。ARM系统中使用的就是CP15的寄存 器C2。快表:从虚拟地址到物理地址的转换实际上就是查询页表的过程。由于程序在执行过程中具有局部性,即 在一段时间内只是局限在少数几个单元,为了加快页表的查询速度,在系统中通常使用一个容量更小、速 度更快的存储器件来保存当前需要访问的地址变换条目,这个容量小的页表又称作快表(TLB)。快表的使用更新:当CPU需要访问内存时,首先在TLB中查找需要的地址变换条目。若不存在则在内存页表中查询, 并把查询的结果添加到TLB中。清除:当内存中页表的内容改变或者使用新的页表时,TLB中的内容需要清空。CP15的寄存器8用于完成 该功能。锁定:可以将一个地址变换条目锁定在TLB中,以加快访问速度,CP15的寄存器10用于完成该功能。MMU的存储访问过程使能MMU时存储访问过程。C 控制位:Cachable,B 控制位:Bufferable禁止MMU时存储访问过程。先要确定芯片是否支持cache和write buffer。如果芯片规定当禁止MMU时禁止cache和write buffer,则存储访问将不考虑C和B控制位。如果芯片规定当禁止MMU时可以使能cache和write buffer,则数据访问时,C=0,B=0;指令读取时,如果使用分开的TLB,那么C=1,如果使用统一的TLB,那么C=0。存储访问不进行权限控制,MMU也不会产生存储访问中止信号。所有的物理地址和虚拟地址相等,即使用平板存储模式。MMU中的地址变换过程通过两级页表实现。一级页表:包含以段为单位的地址变换条目,以及指向二级页表的指针。一级页表实现的地址映射粒度较大。以段为单位的地址变换过程只需要一级页表。二级页表:包含以大页和小页为单位的地址变换条目。以页为单位的地址变换过程需要二级页表。ARM支持的存储块大小有4种:(1)段(Section):大小为1MB的存储块。(2)大页(Large Pages):大小为64KB的存储块。(3)小页(Small Pages):大小为4KB的存储块。(4)极小页(Tiny Pages):大小为1KB的存储块。一级页表地址变换过程CP15的寄存器C2中存放的是内存中页表的基地址。形成一个32位的索引值,使用该32位索引值从页表中找出相应的地址变换条目。该条目或者包含一个一 级描述符,或者包含一个指向二级页表的指针。一级描述符一级描述符:从页表中得到的相应地址变换条目。它定义了与之相应的1M存储空间是如何映射的。一级描述符类型:4种格式的一级描述符,由位1:0定义。31即 1912 10 9 S 5 43 N I 0-L阴枫业_纹页表的基地址fl域用户定冥1。1段堵地址为Qh Pc城C H! i0纸粒度-搁页表的基地E为。域用户定义vJi Lfj iJih 心w心 Cninj粗粒度页表描述符粗粒度页表描述符:一级描述符的位1:0为0b01(0b代表二进制),包含了粗粒度的二级页表的物理地 址。字段含义位1:0-级描述符的类型标识位4:2也用户定义位皿本段所在的域的标洪符位当前未使用,成为0位:10粗粒度二级贞表的基地址,该地址是1KB对齐的粗粒瘦二级页表的基地址 3 。域 用尸定X 0 1 JJi L.ii Lm* 5 Cin.iJ顽匹. .级页表的基建二)0域用尸定义0-1粗粒度页表描述符获取二级描述符过程段描述符段描述符:一级描述符的位1:0为0b10。SI20 192 I t H 9 N 5432 1 门字段含义位1:0一级描述符的类型称诅位杖卜B控制位位4由用户定义位8 5J本段所在的域的标识符位9当前未使用,应为9位11:101访向极限控制位当前未使用,成涮位/斓改段对.应的物理空间的底地址的高12仲Si心sg曲如段的地址变换过程细粒度页表描述符细粒度页表描述符:一级描述符的位1:0为0b11,包含了细粒度的二级页表的物理地址。字段含义位1:0级描述符的类型标饮位14:2由用户定义位缨萄本段所在的域的林识符位9:11当前-未使用,应为0位31*细粒度二级页表的基地址,该地址是4RB对齐的ii粒.度-一二页表的桔地1域用户;【y。Ltii土& Cn./iJ二纹页表的艇王二0域用户定鬼1f细粒度页表描述符获取二级描述符过程MMU中的存储访问权限控制在MMU中,寄存器C1的R、S控制位和页表中地址转换条目中的访问权限控制位(A、P)联合作用控制 存储访问的权限。MMU存储访问权限控制的具体规则如下:.pS It特双级时访向权限田户巍时话间松限(JhOO0 0没布访问特世没寿访问特权ObOO1 D只读没有访问特权dhOOU 1只读(JhOU1 1不n顶知不可筏知ObUl渎泻没有访问侍极Ob 10X X只读dhllX XMMU 中的域(Domain)域:一些段、大页或者小页的集合。ARM支持最多16个域。每个域的访问控制特性由CP15中的寄存器C3中的两位控制。因此能很容易地将某个域的地址空间包含在虚拟存储空间中,或是排除在虚拟存储空间之外。CP15中寄存器C3中的每两位控制一个域的访问控制特性,字段编码和含义如下:控制位编码邮类型|做义ObOO没有访问特权这时访问该域将产生访问失效OhOl客户类型根据页表中地址变换秦廿审的访间枚限控制位 决定是否允许特定的存储访问OblO保留使用废值会产生不可预知的姑果Obll管理者极隈不考虑页表中地址变换条目中的访问 权限控制位这种情况卜不会产生访问代效快速上下文切换技术快速上下文切换技术FCSE(Fast Context Switch Extension):通过修改系统中不同进程的虚拟地址,避 免在进行进程间切换时造成的虚拟地址到物理地址的重映射。如果两个进程占用的虚拟地址空间有重叠,则系统在这两个进程之间进行切换时,必须进行虚拟地址到物 理地址的重映射,包括重建TLB、清除Cache,整个工作需要巨大的系统开销,而快速上下文切换技术的 引入避免了这种开销。FCSE位于CPU和MMU之间,其功能就是将不同进程使用的相同虚拟地址映射为不同的虚拟空间,使得在 上下文切换时无须重建TLB等。存储器映射的输入/输出 在ARM系统中,I/O操作通常被映射成存储器操作,即输入/输出是通过存储器映射的可寻址外围寄存器和 中断输入的组合来实现的。在ARM中,I/O的输出操作可通过存储器写入操作实现;I/O的输入操作可通过存储器读取操作实现。这 样I/O空间就被映射成存储空间。但是,对于存储器映射的I/O空间的操作,不能使用Cache技术。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!