版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实时数字信号处理,第4章 存储器,分级存储器模型,内核都支持分级存储器 片上一级(L1) 指令、数据和暂存存储器3个独立部分 内核一部分 单周期访问 片上二级(L2) 核外片上存储器 空间较大但延迟也较大 片外L3存储器 同步、异步存储器 有更大的空间,但延迟也更大,内核片上存储器L1,100KB 32KB指令存储器 16KB指令SRAM;16KB指令Cache/SRAM(可通过通道或线锁定Cache) 64KB数据存储器 32KB SRAM;32KB数据Cache/SRAM 4KB Scratch Pad SRAM(数据暂存存储器) 5个特点 改进的哈佛体系结构 每时钟周期多达4个内核存储器
2、访问 一个64-bit指令取指,两个32-bit数据加载,一个流水线的32-bit数据存储 同时进行系统DMA、Cache维持和内核访问 具有高带宽、低延迟性能,能提供确定性访问时间和非常高的吞吐量 用于要求直接控制访问时间的应用 用于关键DSP算法和快速文本切换(CCLK速度) 指令和数据Cache(带Cache控制硬件的SRAM) 高性能、简单编程模型,消除了数据移入/出L1存储器的显性操作 快速移植、开发,无需为存储器组织进行性能优化 指令和数据cahe选项用于微控制器代码 提供了操作方便的Cache控制程序设计指令,如PREFETCH和FLUSH 具有存储器保护功能,L1指令SRAM,
3、32KB L1指令SRAM配置为SRAM 16KB存储器组分为4KB子组,由处理器和DMA独立访问 16KB L1指令存储器配置为4通路设置关联Cache 指令可进入高速缓存中4个不同的通道 减小了高速缓存线(Cache Line)的置换频率,提高了整体性能 可以解除L1指令Cache单个通道或线的锁定,允许进一步控制时间关键代码,L1数据SRAM,数据组A和数据组B 如果都配置为SRAM,每个16KB组都分成4个4KB子组,可以独立地被处理器和DMA访问 各自的一个16KB组可配置2通路设置关联结构Cache 提供了两个独立的位置来保持被缓存的数据 减少了Cache Line的置换率,提高了
4、整体性能,Scratch Pad SRAM,专门的独立的4KB Scratch Pad SRAM 用于Scratchpad Data SRAM 不能设置为Cache或DMA对象 在要求快速的应用中用于映射用户和监控堆栈 在中断处理时获得最快的上下文环境切换,L2、L3、MMR、BOOT,L2 128KB L2具有低延迟、高带宽能力,与L1构成了片上存储器分级结构 不能配置为Cache,能够存储指令和数据 但为使能了部分或全部Cache的系统提供确定的、限定的访问时间 L1 Cache设置成从L2上高速缓存指令和数据 L3 4组异步存储器空间和4组同步DRAM(SDRAM)空间 每个异步组固定为
5、64MB,而每个同步组可以配置成16-128MB SDRAM起始地址是0 x0000 0000,异步存储器组起始地址是0 x2000 0000 MMR 存储器空间高端部分分配给内核和系统MMR 在监控模式或仿真模式下访问这个区域 Boot ROM 内部存储器空间的低2KB空间 根据引导方式,复位时处理器在这个空间执行相应的引导程序 处理器没有定义单独的I/O空间,L1指令存储器组结构,L1指令存储器子组,指令存储器控制寄存器IMEM_CONTROL,1,ENICPLB位与CPLB描述符,使能L2存储器被高速缓存访问 存储器配置为Cache 用ENICPLB位使能CPLB 通过CPLB描述符(I
6、CPLB_DATAx和ICPLB_ADDRx寄存器)指定想要作为Cache使能的存储器页面 复位后默认的指令CPLB是禁止的 只通过L1存储器接口来执行最小地址检查 异常 试图访问保留(没有安装)的L1指令空间、L1数据空间、MMR空间去取指令 描述符(ICPLB_DATAx和ICPLB_ADDRx寄存器)更新 先必须使用ENICPLB位禁止CPLB 应跟着一条CSYNC指令 加载存储顺序是不可靠的 使能或禁止Cache或CPLB 写IMEM_CONTROL后紧接一条SSYNC指令以确保正确的行为 要确保正确行为和未来兼容性,所有保留位必须置0,L1指令SRAM取指,内核通过64位宽取指总线读
7、取指令 地址64-bit对齐 返回任一16-bit、32-bit或64-bit指令的组合 4个16-bit指令,两个16-bit指令和一个32-bit指令,或一个64-bit指令 DAG不能直接访问L1指令存储器 异常 写L1指令SRAM必须通过64-bit宽的系统DMA口 SRAM单端口子组集合,双端口特征 系统和内核同时进行访问 不是同一子组的同一个(地址位2匹配的)32-bit单元 否则,系统DMA控制器优先权高于内核,L1指令Cache,4通路设置关联的16KB指令Cache 不能直接访问Cache 为改善关键代码平均延迟,每一Cache通路可单独锁定 只有被CPLB指定的能够作为高速
8、缓存的存储器页面才可进行高速缓存操作 任何要访问的存储器位置必须有一个可用的相关联的页面定义 否则会产生CPLB异常 CPLB描述参见“存储器保护和属性”,指令高速缓存组织,高速缓存线,Cache 高速缓存线(Cache Line)的集合 Cache Line 由标签(Tag)和数据(Data)构成 Tag 了20位地址标签(Address Tag)、最近最少使用的(LRU)位、一个有效位、一个线锁定位 Data 4个64位字指令数据 Tag和Data分别存储在Tag和Data存储器数组中,高速缓存访问命中和错失,Cache命中 来自于内核取指请求的地址与Cache中的有效入口匹配 要取指地址
9、的高18位及位11和10与当前一个Cache Set里有效高速缓存线地址标签的比较 取指地址的位9到5来选择Cache Set Address-Tag比较匹配则Cache命中 目标64-bit指令字首先送到指令对齐单元,保存在2个64-bit的指令缓冲器之一里 Cache错失 产生Cache Line填充访问 重新找回错失的Cache Line 访问L2或L3的地址就是目标指令字的地址 内核停止运行直到目标指令字返回,高速缓存线填充,从存储器里取32个字节数据 要求在L2或外部的读数据口上一个高速缓存线读数据传送 即一组4个64位字突发的数据字 读传送的地址:目标指令字的地址 首先返回目标指令
10、字 之后按地址顺序依次获取后续3个指令字 如果需要的话,将回绕,如表4-2所示,高速缓存线填充缓冲器,线填充缓冲器 返回的新高速缓存线写入L1存储器一个4KB存储器组前,每个64位字被缓冲到2个4入口线填充缓冲器之一 允许内核访问新Cache Line上的数据,不必等缓存线写入Cache 两个独立的缓冲器允许继续加载来自于慢速的外部存储器里的数据 不会导致跳转到快速的片上L2存储器而暂停 使用哪一个线缓冲器取决于存储器页面CPLB里的CPLB_MEMLEV位,高速缓存线置换,Tag-Address比较操作时取指地址的位9到5作为索引来选择Cache Set Cache错失 Cache Line
11、置换单元检查相关Cache Set有效位以决定新Cache Line入口 通路?,?=0、1、2、3 首先检查无效入口(也就是有效位清除的入口) 一个无效入口,它就为新的Cache Line 多个无效入口,基于优先级选择新Cache Line置换入口 首先是通路0,然后是通路1,接着是通路2,最后是通路3 例如: 如果通路3是无效的,通路0、1和2都是有效的,那么将选择通路3 如果通路0和1是无效的,而通路2和3是有效的,那么将选择通路0 如果通路2和3是无效的,而通路0和1是有效的,那么将选择通路2 其次,置换逻辑使用LRU算法,指令Cache管理,指令高速缓存用线锁定 ICPLB_DATA
12、x寄存器CPLB_LRUPRIO位 用于控制哪些代码继续保留在指令Cache中 Cache Line填充时它随缓存线的Tag一起保存 它将与LRU算法一起决定当所有通路都被占用而要获取一个新的高速缓存线时,将牺牲哪个通路 指示一个缓存线重要性是低还是高 改进的LRU策略中一个重要性高的可以置换一个重要性低的,反之不能 若通路重要性都高,则可缓存的重要性低的将继续取给内核,但不被高速缓存 重要性低的只能置换没有被占用的通路,或其它低重要性的 获取的重要性高 首先寻找并置换没有被占用的通路,然后是最近最少使用的低重要性的,最后是重要性高的(使用LRU策略) IMEM_CONTROL寄存器的LRUP
13、RIORST位 同时将所有先前被缓存的重要性高的指令转换成低重要性的,指令Cache管理,指令高速缓存用通路锁定 使能Cache后有4个通路可用 锁定位(ILOC3:0) 每位控制一个通路 锁定特定通路可以阻止其参与LRU置换策略 所有4个通路都锁定,将阻止Cache分配 一个被缓存的指令在其所在通路被锁定时只能使用IFLUSH指令来移出,或在“backdoor” MMR协助下对Tag阵列进行操纵来实现 下面给出的示例序列演示了如何解锁通路0 如果感兴趣的代码已经在指令Cache,首先使整个Cache失效 如果需要的话,禁止中断以防止ISR潜在地破坏锁定的Cache 设置ILOC3:1锁定其它
14、通路,只允许Cache通路0可以被新代码置换 执行感兴趣代码。任何可缓存异常,如退出代码,此代码执行所涉及的,都将进入指令Cache 一旦退出关键代码,清除ILOC3:1并设置ILOC0,则关键代码(和设置ILOC0的指令)被锁进通路0 如果需要的话重新使能中断,指令Cache管理,指令Cache失效 可以用一个地址、一条Cache Line或整个Cache使指令Cache无效 指令IFLUSH 基于缓存线地址明确地使Cache Line无效,地址从P寄存器上产生 无修改过的(脏)数据,使Cache Line无效即可 例子:P2寄存器包含一个有效的存储器单元地址,已经进入Cache,则使该Ca
15、che Line变成无效的指令 iflush p2 ; / *使包含由P2指向的地址的Cache Line无效* / 使存储器映射中一个特定地址无效,不能使整个Cache组无效 快一些的直接使整个Cache组无效的技术 直接设置Cache Line的无效位 使用附加的MMR ITEST_COMMAND和ITEST_DATA1:0,直接读/写所有Cache入口 使整个指令Cache无效的另一方法 清除IMEM_CONTROL的位IMC,所有Cache中的有效位被设置成无效态 在使Cache无效前应使用一条SSYNC指令,这些操作的每一个之间应插入CSYNC指令,指令测试寄存器,整理文稿p.6最后
16、一段,指令测试命令寄存器,指令测试数据寄存器ITEST_DATA1,指令测试数据寄存器ITEST_DATA0,指令测试数据寄存器ITEST_DATA0,L1数据存储器,用于存储数据 单口子段构成,多端口性能 降低了访问冲突 一个内核时钟周期的L1数据传送可以是 加载2个32-bit DAG 一个流水线的32-bit DAG存储 一个64-bit DMA IO 一个64-bit Cache填充访问,L1数据存储器结构,L1数据存储器SRAM子组起始地址,数据存储器控制寄存器DMEM_CONTROL,L1数据存储器,复位后默认情况下L1数据存储器都作为SRAM L1数据SRAM 访问同一个(地址位
17、2匹配的)32-bit字、同一个4KB子组(地址位13 和12匹配)、同一个16KB半组(地址位16匹配)、同一个组(地址位21和20匹配)会发生冲突 访问权首先授予DAG,然后是存储缓冲区,最后是DMA和Cache填充处理 为确保足够的DMA带宽,如果已经被阻塞了连续16个内核时钟周期,或者如果在第1个DMA I/O处理前还有第2个DMA I/O已在队列中,可以给予DMA最高的优先级 使L2存储器能被高速缓存访问 使部分存储器用作Cache 使能CPLB(使用ENDCPLB位)并通过CPLB描述符(寄存器DCPLB_DATAx和DCPLB_ADDRx)指定选择存储器页面作为使能的高速缓存 复
18、位后默认情况下Cache和CPLB地址检查是禁止的 为确保适当行为和未来兼容性,写DMEM_CONTROL时所有保留位必须置0 更新描述符(寄存器DCPLB_DATAx和DCPLB_ADDRx)之前必须禁止CPLB 因为加载存储顺序是不牢靠的,要确保正确的行为 禁止CPLB时应先有一条CSYNC指令 使能CPLB时应跟上一条CSYNC指令 使能或禁止Cache或CPLB时在写DMEM_CONTROL后应立即跟上一条SSYNC,L1数据Cache,3种不同Cache模式 仅在读时分配Cache Line的通写模式 在读和写时都分配Cache Line的通写模式 在读和写时都分配Cache Lin
19、e的回写模式 Cache模式由DCPLB描述符选择(见“存储器保护和属性”) 3种模式可以任意组合,每个存储器页Cache模式独立选择,映射可高速缓存地址空间到数据组的例子,整理文稿p.9,数据Cache访问,p.10,Cache写存储器有通写或回写方法,P.11,中断优先级寄存器(IPRIO)和写缓冲器深度,p.11,数据高速缓存控制指令,p.11,数据高速缓存无效,p.11,数据测试寄存器,p.12,片上L2存储器,p.12 8个独立的16K的子组,有两个L2访问端口 优先级 延迟,存储器管理单元,基于页面的存储器管理单元(MMU提供了对存储器高速缓存能力的控制,以及页面级上保护属性的管理
20、 MMU是作为两个16入口的内容可寻址存储器(CAM)块来实现的 每个入口被称之为一个高速缓存旁视缓冲器(CPLB)描述符 CPLB入口在指令和数据上也是分开的 16个CPLB入口用于取指要求,被称为ICPLB 16个CPLB入口用于数据处理,称之为DCPLB,CPLB入口,每一个CPLB入口包含一对32-bit值 取指: ICPLB_ADDRn定义了CPLB描述符描述的页面的起始地址 ICPLB_DATAn定义了CPLB描述符描述的页面的属性 数据操作: DCPLB_ADDRm定义了CPLB描述符描述的页面的起始地址 ICPLB_DATAm定义了CPLB描述符描述的页面的属性 两个默认的CPLB描述符用于Scratchpad Data存储器和系统及内核MMR空间的数据访问 定义了上述空间是非高速缓存的 对这些区间不需要建立附加的CPLB 如果为这个空间创建了有效的CPL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年暖通空调系统节能改造方案试题及答案
- 装饰装修工程施工方案及技术措施
- 2026年质量管理体系认证考试安排试题及答案
- 2026年术后照护计划
- 2026年甘肃省兰州市红古区人民医院招聘专业技术人员笔试参考试题及答案解析
- 中考历史试卷格式
- 2026福建三明仲裁委招聘仲裁秘书、送达人员3人笔试备考题库及答案解析
- 2026宿迁市泗洪县部分事业单位招聘96人笔试参考题库及答案解析
- 重庆川仪自动化股份有限公司2026届春季校园招聘考试参考试题及答案解析
- 2026年安全生产动员大会发言稿要点梳理技巧
- 四川省非金属(盐业)地质调查研究所2026年公开考核招聘工作人员(8人)笔试备考试题及答案解析
- 2026年护士资格考试统考历年真题及答案
- 2026江苏南京市雨花台区征收拆迁安置办公室招聘编外人员3人笔试参考题库及答案解析
- 内部财务交叉检查制度
- OpenClaw:AI从聊天到行动 下一代智能助手白皮书
- 电梯维保2026年复工培训
- 中国整形美容外科诊疗指南(2025版)
- 2026年及未来5年中国骨科手术机器人行业市场全景监测及投资战略咨询报告
- 《康复评定技术》课件-言语功能评定
- 安全文明施工措施费专款专用的方案
- 复方氨基酸注射液
评论
0/150
提交评论