上海交大ARM培训教材带Cache内核简要介绍.ppt_第1页
上海交大ARM培训教材带Cache内核简要介绍.ppt_第2页
上海交大ARM培训教材带Cache内核简要介绍.ppt_第3页
上海交大ARM培训教材带Cache内核简要介绍.ppt_第4页
上海交大ARM培训教材带Cache内核简要介绍.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

带Cache的内核简要介绍,带Cache的ARM宏单元举例,Cache,ARM内核,地址,地址,写缓冲,MMU或MPU,数据读,数据写,数据,控制逻辑,CP15,AMBA总线接口,JTAG及非AMBA信号,AMBA接口,议程,Cache、同步和写缓冲介绍存储器保护单元内存管理单元紧耦合存储器带Cache的ARM处理器,外部存储器,CPU,Cache,地址,数据,总线接口,什么是cache?,位于处理器中的少量高速缓冲存储器,保存最近被访问的存储空间内容的备份哪些存储空间需要读入到cache中,要通过MMU或MPU来控制依赖于内存的重使用仅用来改善速度较慢的存储器或总线宽度较窄的存储器的性能降低对总线宽度的要求减少功耗,Cache的用法,数据以每次传送一行的方式复制到cache中每个cache行包含连续的数据Cache行按其自然的行边界尺寸分配Cache中的数据一旦被获取后,立即对内核有效这一处理就是大家所知的数据流动在一个cache读操作不命中后,将激发cache行内容的填充但新数据应放在cache的什么位置?ARM处理器支持以下置换策略中的一个或多个:随机,循环轮换轮换指针指向下一个要填充的cache行已经使用过的行将被收回和替换对回写数据cache而言,任何改过的数据都要写到存储器中,结合性,简单cache,采用直接映射策略一个特殊的存储器数据项被存放在cache的某个特定位置。相同cache地址域的数据项将竞争这一位置。实施简单,执行快捷块结合cache,减少位置竞争一个特殊的存储器数据项被存放在cache的许多位置如果一个特殊的存储器数据项被存放在cache中的n个位置,那么可以说cache是n维的实施较复杂,需要更多的比较硬件,直接映射Cache,2-维块结合Cache,若干定义,Line:行,cache的最小可装载单元任何情况下都是存储器中一个连续的字块。Tag:标签,存放在cache中的存储器地址的一部分,用来识别定位在那里的特定的物理地址。Set:块,一组行,用来保持来自特定存储器空间的数据。Way:维,一个块所含行的数量,就是cache的维数。Index:索引,存储器地址的一部分,它决定可以存储cache行的块。,4-维块结合Cache,3110954210,地址,Cache行,5,3,注:每一个地址索引映射到一个cache行,该行可存于4维的任意一维中(4维结合),存于TAG中的地址(22位),Index,Word,Unused,Data,way0,TAG,Line0,Line1,Line30,Line31,这里是一个4kcache的例子:4waysx32lines(sets)x8words=4kbcache,v,d0,d1,v-有效位d0,d1脏位,d0,d1,0,1,2,3,4,5,6,7,d0,d1,64-维块结合Cache,317654210,地址,Cacheline,2,3,注:每个地址索引映射到单一的块,每个块可以存储64不同的地址标签(64waysholding4lines).,Decoder,存于TAG中的地址(25位),Index,Word,Unused,这里是ARM922T的例子:4setsx64lines(ways)x8words=8kbcache,用内容设定地址的存储器(CAM),Data,Set0,TAG,Line0,Line1,Line62,Line63,Cache闭锁(1),部分cache可能闭锁以避免被清除其间隔尺度随着内核的不同而变化可能在需要保证实时性能时使用需要一个短的子程序来控制行填充提供了例子程序目标计数器范围受限(cp15之r9)闭锁行可免于替换仍可被冲洗-那么闭锁机制肯定被清除了,这是一个4维结合的cache,每维包含32行(块).单一的目标计数器选择将要替换的维.闭锁固定了计数器的基值所以该值以下的通道完全免于替换.闭锁具有一维的间隔尺寸(1/4的cache大小).,Cache闭锁(2),这是一个64维,4个块的结合cache.单一的目标计数器选择将要替换的维(每个块中相同数字的行).闭锁固定了计数器的基值所以该值以下的块完全免于替换.闭锁具有一行的间隔尺寸(1/64的cache大小).,VictimCounter,闭锁行(通道),Data,set0,TAG,Line62,Line63,Line0,Line1,Data,set1,TAG,Line62,Line63,Line0,Line1,Data,set2,TAG,Line62,Line63,Line0,Line1,Data,set3,TAG,Line62,Line63,Line0,Line1,Cache闭锁(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整除,同步模式(固化宏单元),ignored,BCLK,FCLK,FastBus,内核及外部总线由BCLK同步.,BCLK,FCLK,Asynchronous,FCLK的频率必须比BCLK.高.二者相位关系没有限制.ASB操作需BIU与BCLK同步.最大1.5个BCLK周期的同步延迟.,BCLK,FCLK,Synchronous,FCLK的频率必须比BCLK.高BCLK只可以在FCLK为高期间改变.ASB操作需BIU与BCLK同步.最大1个BCLK周期的同步延迟.,写缓冲器(1),用于消除内核和存储器速度不匹配的影响数据进入缓冲器时是按内核的速度数据写到存储器时按总线的速度存储器访问总是以正确的顺序出现在非cache读,非缓冲写和cache行填充时,写缓冲总是首先被排空有一个特定的排空写缓冲操作,地址寄存器,数据寄存器,内部数据总线,a0,d1,a1,a2,a3,d2,d3,d4,d5,d6,d7,内核时钟,总线时钟,内部地址总线,总线接口单元,d0,写缓冲器(2),写操作出现以下情况时处理器将停顿:写缓冲器满写缓冲器被禁用写到不可用作缓冲的区域在写非缓冲区之前写缓冲器将被排空如果写缓冲在软件的控制下被排空(通过CP15),处理器将停止执行在写缓冲的时候不能产生异常中断异常中断将被忽略,Cache写策略,存储器管理,存储器保护单元(MPU)将存储空间分割为带有可编程特权的独立的区域设置简单节省功耗和芯片面积不支持虚拟内存无可用于页表的内存ARM940T是一例带有MPU的ARM内核内存管理单元(MMU)提供更多灵活的动态的存储器控制,连同更强大的特权配置设置复杂通过页表支持虚拟内存ARM920T是一例带有MMU的ARM内核,编程模式,内核通过写CP15的寄存器来配置cache,保护单元,及其他系统操作象大端或小端模式配置.定义在CP15中的寄存器只能用MCR和MRC指令访问.MCR/MRCcondp15,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使能之前有效,0 x25FFFFFF,0 x24000000,0 x1FFFFFFF,0 x10000000,0 x0003FFFF,0 x00000000,Background,SRAM,Peripherals,Flash,指令区域图,读写不可cache不可缓冲,Background,SRAM,Flash,只读可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被禁用了外部地址总线将直接输出虚拟地址,虚拟地址到物理地址的映射,保护&中止,虚拟存储器,物理存储器,变换和校验机制.,ProcessC,ProcessB,ProcessA,Manager,ProcessD,MMU,RAM,RAM,VRAM,ROM,RAM,RAM,RAM,变换表,ITLB,DTLB,为什么要用MMU?,保护单元提供的是粗略的,通常是静态的存储模式不能分配额外的存储空间MMU可以“动态地”重新定位存储空间对存储器“重新分配”使其纳入有效的管理将变换过程与系统的其他部分隔离生成所需的页表虚拟存储系统,TLB和变换表,TLB是最近用于从虚拟地址到物理地址变换的cache为大多数存储器访问提供变换和访问权限的信息若TLB没有命中,页表浮动硬件将从存于物理存储器中的变换表重新找回,然后TLB被更新如果TLB满了,有的值将因循环编排的方式被覆盖变换表驻留在物理存储器中第一级页表包含4096个变换,通过虚拟地址的位31:20索引变换项包含一个指针,指向1MB的段物理空间,连同其属性信息.指向另一页表基地址的指针,包含了许多指向较少页物理地址指针好的间隔尺度要求更多的页表,因此也需要更多的物理存储空间!,检查TLB是否包含该虚拟地址,虚拟地址,得到物理地址,页表浮动,得到物理地址,是,否,更新TLB,MMU转换过程,变换过程由硬件完成,对用户是透明的变换表由软件产生,第一级描述,第一级描述是转换表中的一个条目,它可以是:一个错误一个段描述一个粗略的或细致的页描述段描述指针指向1Mb的段物理空间,包括访问权限和可cache和可缓冲的控制位如果第一级取返回的是一个页描述,这将提供第二级描述表的基地址,粗略页表,错误,详细页表,段,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,段基地址,1,AP,域选择,C,B,10,粗略的第二级描述基地址,1,域选择,01,详细的第二级描述基地址,1,域选择,11,00,第二级描述,第二级描述保存的是大页,小页的基地址位1:0代表访问类别微页只支持详细页表加入微页是为了改善存储器以用于更高级的文件分段系统,大页,错误,微页,小页,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,大页基地址,01,00,AP3,AP2,AP1,AP0,C,B,小页基地址,C,B,10,AP3,AP2,AP1,AP0,微页基地址,11,C,B,AP,第一级变换页表,虚拟地址,第一级转换页表,C,B,DomainSelector,AP,0 x000,1,10,C,B,DomainSelector,AP,0 x002,1,10,C,B,DomainSelector,AP,0 xFFC,1,10,C,B,DomainSelector,AP,0 xFFF,1,10,C,B,DomainSelector,AP,0 xFFF,1,10,C,B,DomainSelector,AP,0 xFFF,1,10,C,B,DomainSelector,AP,0 xFFF,1,10,0 x00200000,0 x00300000,0 x00400000,0 x00100000,0 x00500000,0 x00600000,0 xFFF00000,0 xFFE00000,0 xFFD00000,0 xFFC00000,物理地址,4096项,1MB段,1MB段,错误,0 x00100000,0 x00300000,0 x00400000,0 x00200000,0 x00500000,0 x00600000,0 xFFF00000,0 xFFE00000,0 xFFD00000,0 xFFC00000,0 x00000000,0 x00000000,00,00,FineTableBase,1,11,DomainSelector,CoarseTableBase,1,01,DomainSelector,粗略第二级转换页表,细致第二级转换页表,第一级地址变换,虚拟地址,第一级页表项,物理地址,段索引,段基地址,1,AP,域,C,B,10,段基地址,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,段索引,索引进入第一级页表,+TTB,第二级变换页表,第二级转换页表,C,B,AP3,LargePageBase,01,AP2,AP1,AP0,00,C,B,AP3,SmallPageBase,10,AP2,AP1,AP0,11,C,B,TinyPageBase,11,AP,C,B,AP3,SmallPageBase,10,AP2,AP1,AP0,C,B,AP3,LargePageBase,01,AP2,AP1,AP0,00,粗略页表-256项,细致页表-1024项,微页1024页,1kB,大页16页,64kB,大页16页,64kB,小页256页,4kB,小页256页,4kB,错误,第二级地址变换,D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0,310,域,MMU访问主要由域控制所有定义的存储器区域都有一个相关联的域域被定义为2比特的读写区可以定义16个域域通常允许3个状态客户态服从段或页描述中的访问权限管理态忽略段或页描述中的访问权限所以无错误产生无读写态任何访问都将产生一个域错误可以通过简单的协处理器写操作修改域的读写区,ProcessIDSBZ,3125240,CP15C13进程ID寄存器,用于快速的文本切换(FCSE)进程ID可以取代虚拟地址的位31:25如果CP15之R13是0,VA位31:25未修改有效地允许每个进程运行在相同的虚拟地址空间复未时为0MCR/MRCp15,0,Rd,c13,c0,0读进程ID寄存器,返回进程标识写操作将更新进程标识,利用进程ID寄存器生成地址,VA24:0,进程ID,OS进程管理,VA31:25,判决逻辑,来自内核的指令地址VA31:0,MVA31:0修改过的地址送入Cache和MMU,进程ID映射举例,4GB32MB,来自内核的虚拟地址(VA),MMU虚拟地址(MVA),4GB32MB0MB,进程ID,如果(0VA32MB)则MVA=(32MBProcessID)+VA,P0,P1,P2,P3,P4,P31,P30,0MB,MMU配置步骤,在存储器中构造转换页表,定义所需的从虚拟地址到物理地址转换的初始值转换页表项包括可cache和可缓冲的属性也包括访问权限设置变换页表基地址CP15之c2使能cache,设置时钟同步模式并使能MMUCP15之c1其他内核缺省配置如存储模式和向量地址页在这里设置,议程,Cache、同步和写缓冲介绍存储器保护单元存储器管理单元紧耦合内存ARM的带Cache处理器,什么是紧耦合内存?,取代cache的一种选择,当其附在速度较慢的外部存储器上时,允许提供高性能的读写操作快速存储器,紧靠微处理器提供高速性能,而不访问系统总线与等量的cache相比,在芯片尺寸上付出的代价较小在存储器映射中的位置是固定的代码和数据执行前将被复制到此实时性能能够被准确预测,ARM966E-S存储器映射,0 x00000000,TCM混叠,64MBInstructionMemory,64MBDataMemory,0 x04000000,0 x08000000,128MBAHBBuffered,256MBAHBUnbuffered,0 x10000000,0 xFFFFFFFF,256MBAHBUnbuffered,InstructionMemory64KB,InstructionAlias164KB,DataAlias204732KB,InstructionAlias102364KB,DataMemory32KB,DataAlias132KB,0 x00000000,0 x00010000,0 x04000000,0 x04008000,0 x07FFFFFF,0 x03FF0000,0 x07FF8000,物理存储区图,ARM946E-S存储器映射,TCM存储器映射,内核TCM存储器,指令TCM的基地址总是0 x0数据TCM的基地址是其大小的整数倍TCM的大小可以指定如果大于其实际大小,将发生TCM混淆现象如果小于其实际大小,某些存储空间将不会出现随后可以放置在更好的地址使能后,TCM不可以重叠,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)紧耦合SRAM,ARM的带Cache处理器,ARM10系列-ARM1020EARM9E-S系列-ARM926EJ-S,ARM946E-S,ARM966E-SARM9TDMI系列-ARM920T,ARM922T,ARM940TARM7TDMI系列-ARM710T,ARM720T,ARM740TStrongARM和XScale系列更早的ARM处理器-ARM710a,ARM610等.,TM,ARMCached内核一览,720T,740T,920T,940T,SA110,926E,946E,966E,1020E,XScale,Architecture,Von,Neuman,Von,Neuman,Harvard,Harvard,Harvard,Harvard,Harvard,Harvard,Harvard,Harvard,Cache,8KUnified,4words/line,8KUnified,4words/line,16K,Instr,16KData,8Words/Line,4K,Instr,4KData,4Words/Line,16K,Instr,16KData,4Words/Line,4-128K,Instr,4-128KData,8Words/Line,0-1024K,Instr,0-1024KData,8Words/Line,None,16K,Instr,16KData,8Words/Line,32K,Instr,32KData,8Words/Line,Set,Associativity,4way,4way,64way,64way,32way,4way,4way,NA,64way,32

温馨提示

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

评论

0/150

提交评论