版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
带Cache的内核简要介绍带Cache的ARM宏单元举例CacheARM内核地址地址写缓冲MMU或MPU数据读数据写数据控制逻辑CP15AMBA总线接口JTAG及非AMBA信号AMBA
接口议程Cache、同步和写缓冲介绍存储器保护单元内存管理单元紧耦合存储器带Cache的ARM处理器外部存储器CPUCache地址数据总线接口什么是cache?位于处理器中的少量高速缓冲存储器,保存最近被访问的存储空间内容的备份哪些存储空间需要读入到cache中,要通过MMU或MPU来控制依赖于内存的重使用仅用来改善速度较慢的存储器或总线宽度较窄的存储器的性能降低对总线宽度的要求减少功耗Cache的用法数据以每次传送一行的方式复制到cache中每个cache行包含连续的数据Cache行按其自然的行边界尺寸分配Cache中的数据一旦被获取后,立即对内核有效这一处理就是大家所知的数据流动在一个cache读操作不命中后,将激发cache行内容的填充但新数据应放在cache的什么位置?ARM处理器支持以下置换策略中的一个或多个:随机,循环轮换轮换指针指向下一个要填充的cache行已经使用过的行将被收回和替换对回写数据cache而言,任何改过的数据都要写到存储器中结合性简单cache,采用直接映射策略一个特殊的存储器数据项被存放在cache的某个特定位置。相同cache地址域的数据项将竞争这一位置。实施简单,执行快捷块结合cache,减少位置竞争一个特殊的存储器数据项被存放在cache的许多位置如果一个特殊的存储器数据项被存放在cache中的‘n’个位置,那么可以说cache是n维的实施较复杂,需要更多的比较硬件主存储器0x00000x00100x00200x00300x00400x00500x00600x00700x00800x0090Cache直接映射Cache000110010x006400tagindexword地址tagram数据=2-维块结合Cache主存储器0x00000x00100x00200x00300x00400x00500x00600x00700x00800x0090Way0Way1Set02-Way,4Sets?数据=tagindex=tagindexWay0Way1目标计数器替换策略:随机循环最近最少使用(LRU)††:当前ARM处理器未用若干定义Line: 行,cache的最小可装载单元–任何情况下都是存储器中一个连续的字块。Tag: 标签,存放在cache中的存储器地址的一部分,用来识别定位在那里的特定的物理地址。Set: 块,一组行,用来保持来自特定存储器空间的数据。Way: 维,一个块所含行的数量,就是cache的维数。Index: 索引,存储器地址的一部分,它决定可以存储cache行的块。4-维块结合CacheDecoderDecoderDecoder3110954210地址Cache行53注:每一个地址索引映射到一个cache行,该行可存于4维的任意一维中(4维结合)存于TAG中的地址(22位)IndexWordUnusedDataway0TAGLine0Line1Line30Line31这里是一个4kcache的例子: 4ways
x32lines(sets) x8words
=4kbcacheDecodervd0d1v-有效位d0,d1–脏位01234567d0d101234567d0d164-维块结合Cache317654210地址Cacheline23注:每个地址索引映射到单一的块,每个块可以存储64不同的地址标签(64waysholding4lines).Decoder存于TAG中的地址(25位)IndexWordUnused这里是ARM922T的例子: 4sets
x64lines(ways) x8words
=8kbcache用内容设定地址的存储器(CAM)DataSet0TAGLine0Line1Line62Line63Cache闭锁(1)部分cache可能闭锁以避免被清除其间隔尺度随着内核的不同而变化可能在需要保证实时性能时使用需要一个短的子程序来控制行填充提供了例子程序目标计数器范围受限(cp15之r9)闭锁行可免于替换仍可被‘冲洗’-那么闭锁机制肯定被清除了这是一个4维结合的cache,每维包含32行(块).单一的目标计数器选择将要替换的维.闭锁固定了计数器的基值所以该值以下的通道完全免于替换.闭锁具有一维的间隔尺寸(1/4的cache大小).Cache闭锁(2)VictimCounterDataway2TAGLine0Line1Line30Line31闭锁行Dataway0TAGLine1Line0Line30Line31Dataway1TAGLine1Line0Line30Line31Dataway3TAGLine0Line1Line30Line31这是一个64维,4个块的结合cache.单一的目标计数器选择将要替换的维(每个块中相同数字的行).闭锁固定了计数器的基值所以该值以下的块完全免于替换.闭锁具有一行的间隔尺寸(1/64的cache大小).VictimCounter闭锁行(通道)Dataset0TAGLine62Line63Line0Line1Dataset1TAGLine62Line63Line0Line1Dataset2TAGLine62Line63Line0Line1Dataset3TAGLine62Line63Line0Line1Cache闭锁(3)CacheFlushing保存在cache中的信息将优先与存储器相联系。但并不总是希望如此如果使用了自修改的代码如果MPU或MMU被重新编程因此需要一种机制来“刷新”cache当cache被刷新时,cache行将被标记为无效,然后被重新使用另外,数据cache可能含有‘脏数据’,所以要通过分别操作将数据写回存储器Cache清理和刷新由CP15指令来实现时钟固化宏单元内核(硬核)硬核(例如ARM920T,ARM940T)有两个时钟输入,提供了灵活的时钟配置方法BCLKAMBA总线时钟,为所有的外部总线提供时钟只有在配置为‘快速总线’时才用于内核FCLK当配置为‘同步’或‘异步’时钟模式,没有外部总线活动时为内核提供时钟可合成内核(软核)可综合内核(例如.ARM946E-S,ARM966E-S,ARM926EJ-S)只有单个时钟输入单个时钟输入作为CLK信号HCLKEN是第二个输入,用来生成总线时钟输出(HCLK)HCLK必须能被CLK整除同步模式
(固化宏单元)ignoredBCLKFCLKFastBus内核及外部总线由BCLK同步.BCLKFCLKAsynchronous
FCLK的频率必须比BCLK.高.
二者相位关系没有限制.ASB操作需BIU与BCLK同步.最大1.5个BCLK周期的同步延迟.BCLKFCLKSynchronous
FCLK的频率必须比BCLK.高BCLK只可以在FCLK为高期间改变.ASB操作需BIU与BCLK同步.
最大1个BCLK周期的同步延迟.写缓冲器(1)用于消除内核和存储器速度不匹配的影响数据进入缓冲器时是按内核的速度数据写到存储器时按总线的速度存储器访问总是以正确的顺序出现在非cache读,非缓冲写和cache行填充时,写缓冲总是首先被排空有一个特定的排空写缓冲操作地址寄存器数据寄存器内部数据总线a0d1a1a2a3d2d3d4d5d6d7内核时钟总线时钟内部地址总线总线接口单元d0写缓冲器(2)写操作出现以下情况时处理器将停顿:写缓冲器满写缓冲器被禁用写到不可用作缓冲的区域在写非缓冲区之前写缓冲器将被排空如果写缓冲在软件的控制下被排空(通过CP15),处理器将停止执行在写缓冲的时候不能产生异常中断异常中断将被忽略CPUCacheWriteBufferAccess
Mode
0Noncacheable,nonbufferable0GCdGBd0Noncacheable,bufferable11WT,WriteThrough01WB,WriteBack1ExternalMemoryCache写策略WriteBack:Iflocationiswithinthecache,onlythecacheisupdatedCPUCacheWriteBufferAccess
Mode
0Noncacheable,nonbufferable0GCdGBd0Noncacheable,bufferable11WT,WriteThrough01WB,WriteBack1ExternalMemoryCPUCacheWriteBufferAccess
Mode
0Noncacheable,nonbufferable0GCdGBd0Noncacheable,bufferable11WT,WriteThrough01WB,WriteBack1ExternalMemoryWriteThrough:Iflocationiswithinthecache,thecacheisupdated.WriteisalsosenttomemoryviatheWriteBuffer访问模式
0非cache,非缓冲0GCdGBd0非cache,可缓冲11WT,直写01WB,回写1直写:如果位置在cache之内,cache将被更新.数据也通过写缓冲送至存储器.回写:如果位置在cache之内,只有cache被更新.注:如果数据位置不在cache之内,数据将被直接写到存储器中。如果存储器是可cache或可缓冲的,写缓冲将被使用。CPUCache写缓冲外部存储器wbwt存储器管理存储器保护单元(MPU)将存储空间分割为带有可编程特权的独立的区域设置简单节省功耗和芯片面积不支持虚拟内存无可用于页表的内存ARM940T是一例带有MPU的ARM内核内存管理单元(MMU)提供更多灵活的动态的存储器控制,连同更强大的特权配置设置复杂通过页表支持虚拟内存ARM920T是一例带有MMU的ARM内核编程模式内核通过写CP15的寄存器来配置cache,保护单元,及其他系统操作象大端或小端模式配置.定义在CP15中的寄存器只能用MCR
和MRC
指令访问.MCR/MRC{cond}p15,opcode_1,rd,cn,cm,opcode_2p15–指定协处理器15opcode_1–总是为0rd-ARM源或目的寄存器cn-CP15主寄存器cm–附属寄存器名opcode_2-可选的3比特数用来指定附加信息其他协处理器指令(CDP,LDC,STC)或在非特权模式使用MCR/MRC访问CP15将导致未定义指令异常.议程 Cache、同步和写缓冲介绍存储器保护单元 存储器管理单元 紧耦合存储器 ARM的带Cache处理器保护单元用于分割存储器区块可以具有单独的cache属性每个区块可以具有不同的访问设置,例如仅为特权模式区块的大小和基地址是可选的可以是分开的数据区和指令区(哈佛结构)在保护单元使能之前至少有一个数据存储区和一个指令存储区被定义区间的大小是可变的,典型值是4KB到4GB区块的边界值必须等于其大小的整数倍保护单元必须在cache使能之前有效0x25FFFFFF0x240000000x1FFFFFFF0x100000000x0003FFFF0x00000000BackgroundSRAMPeripheralsFlash指令区域图读写不可cache
不可缓冲BackgroundSRAMFlash只读可Cache只读
可Cache只读可Cache读写
可Cache
可缓冲数据区域图保护区域举例注:指令区必须有定义为允许文字池访问的相应数据区.可以设定可重叠的背景区(Background).MPU配置步骤参照你的目标系统定义和使能保护寄存器CP15之c6为每个存储区域设定可用于cache或可用于缓冲的属性CP15之c2和c3为每个存储区域设定访问许可CP15之c5使能cache,设置时钟同步模式,并使能MPUCP15之c1其他内核缺省值,象数据存放模式,向量表的位置等都通过c1设置议程
Cache、同步和写缓冲介绍 存储器保护单元存储器管理单元 紧耦合存储器 ARM的带Cache处理器什么是MMU内存管理单元控制存储器的访问权限将虚拟地址转换为物理地址MMU的组成后备变换缓冲器(TLB)最近用于页变换的cache页表浮动硬件逻辑更新TLB访问控制逻辑如果MMU被禁用了外部地址总线将直接输出虚拟地址虚拟地址到物理地址的映射保护&中止虚拟存储器物理存储器变换和校验机制.ProcessCProcessBProcessAManagerProcessDMMURAMRAMVRAMROMRAMRAMRAM变换表ITLBDTLB为什么要用MMU?保护单元提供的是粗略的,通常是静态的存储模式不能分配额外的存储空间MMU可以“动态地”重新定位存储空间对存储器“重新分配”使其纳入有效的管理将变换过程与系统的其他部分隔离生成所需的页表虚拟存储系统TLB和变换表TLB是最近用于从虚拟地址到物理地址变换的cache为大多数存储器访问提供变换和访问权限的信息若TLB没有命中,页表浮动硬件将从存于物理存储器中的变换表重新找回,然后TLB被更新如果TLB满了,有的值将因循环编排的方式被覆盖变换表驻留在物理存储器中第一级页表包含4096个变换,通过虚拟地址的位31:20索引变换项包含一个指针,指向1MB的段物理空间,连同其属性信息...指向另一页表基地址的指针,包含了许多指向较少页物理地址指针好的间隔尺度要求更多的页表,因此也需要更多的物理存储空间!检查TLB是否包含该虚拟地址虚拟地址得到物理地址页表浮动得到物理地址是否更新TLBMMU转换过程变换过程由硬件完成,对用户是透明的变换表由软件产生第一级描述第一级描述是转换表中的一个条目,它可以是:一个错误一个段描述一个粗略的或细致的页描述段描述指针指向1Mb的段物理空间,包括访问权限和可cache和可缓冲的控制位如果第一级取返回的是一个页描述,这将提供第二级描述表的基地址粗略页表错误详细页表段313029282726252423222120191817161514131211109876543210段基地址1AP域选择CB10粗略的第二级描述基地址1域选择01详细的第二级描述基地址1域选择1100第二级描述第二级描述保存的是大页,小页的基地址位[1:0]代表访问类别微页只支持详细页表加入微页是为了改善存储器以用于更高级的文件分段系统大页错误微页小页313029282726252423222120191817161514131211109876543210大页基地址0100AP3AP2AP1AP0CB小页基地址CB10AP3AP2AP1AP0微页基地址11CBAP第一级变换页表虚拟地址第一级转换页表CBDomainSelectorAP0x000110CBDomainSelectorAP0x002110CBDomainSelectorAP0xFFC110CBDomainSelectorAP0xFFF110CBDomainSelectorAP0xFFF110CBDomainSelectorAP0xFFF110CBDomainSelectorAP0xFFF1100x002000000x003000000x004000000x001000000x005000000x006000000xFFF000000xFFE000000xFFD000000xFFC00000物理地址4096项1MB段1MB段错误0x001000000x003000000x004000000x002000000x005000000x006000000xFFF000000xFFE000000xFFD000000xFFC000000x000000000x000000000000FineTableBase111DomainSelectorCoarseTableBase101DomainSelector粗略第二级转换页表细致第二级转换页表第一级地址变换虚拟地址第一级页表项物理地址段索引段基地址1AP域CB10段基地址313029282726252423222120191817161514131211109876543210段索引索引进入第一级页表+TTB第二级变换页表第二级转换页表CBAP3LargePageBase01AP2AP1AP000CBAP3SmallPageBase10AP2AP1AP011CBTinyPageBase11APCBAP3SmallPageBase10AP2AP1AP0CBAP3LargePageBase01AP2AP1AP000粗略页表-256项细致页表-1024项微页1024页1kB大页16页64kB大页16页64kB小页256页4kB小页256页4kB错误第二级地址变换虚拟地址物理地址313029282726252423222120191817161514131211109876543210页索引索引进入第一级页表第一级页表项第二级页表项页索引大页/小页/微页基地址索引进入第二级页表大页/小页/微页基地址xxCBAP粗略/细致第二级描述基地址1页x1+TTB+D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0310域MMU访问主要由域控制所有定义的存储器区域都有一个相关联的域域被定义为2比特的读写区可以定义16个域域通常允许3个状态客户态–服从段或页描述中的访问权限管理态–忽略段或页描述中的访问权限所以无错误产生无读写态–任何访问都将产生一个域错误可以通过简单的协处理器写操作修改域的读写区
ProcessIDSBZ3125240CP15C13–进程ID寄存器用于快速的文本切换(FCSE)进程ID可以取代虚拟地址的位[31:25]如果CP15之R13是0,VA位[31:25]未修改有效地允许每个进程运行在相同的虚拟地址空间复未时为0MCR/MRCp15,0,Rd,c13,c0,0读进程ID寄存器,返回进程标识写操作将更新进程标识利用进程ID寄存器生成地址VA[24:0]进程IDOS进程管理VA[31:25]判决逻辑来自内核的指令地址VA[31:0]MVA[31:0]修改过的地址送入Cache和MMU进程ID–映射举例4GB32MB来自内核的虚拟地址(VA)MMU虚拟地址(MVA)4GB32MB0MB进程ID如果(0
VA<32MB)则MVA=(32MBProcessID)+VAP0P1P2P3P4P31P300MBMMU配置步骤在存储器中构造转换页表,定义所需的从虚拟地址到物理地址转换的初始值转换页表项包括可cache和可缓冲的属性也包括访问权限设置变换页表基地址CP15之c2使能cache,设置时钟同步模式并使能MMUCP15之c1其他内核缺省配置如存储模式和向量地址页在这里设置议程 Cache、同步和写缓冲介绍 存储器保护单元 存储器管理单元紧耦合内存 ARM的带Cache处理器什么是紧耦合内存?取代cache的一种选择,当其附在速度较慢的外部存储器上时,允许提供高性能的读写操作快速存储器,紧靠微处理器提供高速性能,而不访问系统总线与等量的cache相比,在芯片尺寸上付出的代价较小在存储器映射中的位置是固定的代码和数据执行前将被复制到此实时性能能够被准确预测ARM966E-S存储器映射0x00000000TCM混叠64MBInstructionMemory64MBDataMemory0x040000000x08000000128MBAHBBuffered256MBAHBUnbuffered0x100000000xFFFFFFFF256MBAHBUnbufferedInstructionMemory64KBInstructionAlias164KBDataAlias204732KBInstructionAlias102364KBDataMemory32KBDataAlias132KB0x000000000x000100000x040000000x040080000x07FFFFFF0x03FF00000x07FF8000物理存储区图ARM946E-S存储器映射TCM存储器映射内核TCM存储器指令TCM的基地址总是0x0数据TCM的基地址是其大小的整数倍TCM的大小可以指定如果大于其实际大小,将发生TCM混淆现象如果小于其实际大小,某些存储空间将不会出现随后可以放置在更好的地址使能后,TCM不可以重叠1/2Size1/2Size0-1024KBTCM0-1024KBTCM0-1024KBTCM(Alias1)0-1024KBTCM0-1024KBTCM(Alias1)0-1024KBTCM0-1024KBTCM1/2Size1/2Size0-1024KBTCM0-1024KBTCM0-1024KBTCM(Alias1)0-1024KBTCM0-1024KBTCM(Alias1)0-1024KBTCM议程
Cache、同步和写缓冲介绍 存储器保护单元 存储器管理单元 紧耦合内存ARM的带Cache处理器命名约定ARMx1z(e.g.ARM710T)表示cache和全MMUARMx2z(e.g.ARM720T)cache,MMU及进程ID支持ARMx4z(e.g.ARM740T)cache和保护单元ARMx6z(e.g.ARM966E-S)写缓冲但无cacheARMxy6(e.g.ARM946E-S)紧耦合SRAMARM的带Cache处理器ARM10系列-ARM1020EARM9E-S系列-ARM926EJ-S,ARM946E-S,ARM966E-SARM9TDMI系列-ARM920T,ARM922T,ARM940TARM7TDMI系列-ARM710T,ARM720T,ARM740TStrongARM和XScale系列更早的ARM处理器-ARM710a,ARM610等.TMARMCached内核一览720T740T920T940TSA110926E946E966E1020EXScaleArchitectureVonNeumanVonNeumanHarvardHarvardHarvardHarvardHarvardHarvardHarvardHarvardCache8KUnified4word
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度旅游车辆租赁与旅游产品设计合同3篇
- 2025版智慧城市交通管理系统建设合同范本二零二五4篇
- 2025年度智慧医疗设备销售代理合同2篇
- 2025版南京租赁房屋租赁押金退还合同4篇
- 2025年度农业科技示范园区建设合同8篇
- 2025年个人房产测绘与房地产营销服务合同
- 二零二五年度高端定制实木地板采购供应合同4篇
- 2025年度镍矿出口退税与物流服务合同范本4篇
- 二零二五年度新型暖气材料研发与应用推广合同范本4篇
- 2025年度门面租赁合同租赁保证金管理范本4篇
- (高清版)TDT 1056-2019 县级国土资源调查生产成本定额
- 环境监测对环境保护的意义
- 2023年数学竞赛AMC8试卷(含答案)
- 神经外科课件:神经外科急重症
- 2024年低压电工证理论考试题库及答案
- 2023年十天突破公务员面试
- 《疯狂动物城》中英文对照(全本台词)
- 医院住院医师规范化培训证明(样本)
- 小学六年级语文阅读理解100篇(及答案)
- 气功修炼十奥妙
- 安徽省物业服务标准
评论
0/150
提交评论