一种系统内存管理装置和系统内存管理方法与流程

文档序号:16531667发布日期:2019-01-05 10:48阅读:1384来源:国知局
本发明涉及通信及微电子
技术领域
:,尤其涉及一种系统内存管理装置和系统内存管理方法。
背景技术
::在arm存储系统中,使用内存管理单元(memorymanagementunit,mmu)实现虚拟地址到实际物理地址的映射。通过虚拟地址技术,应用程序可认为自身拥有连续的可用的内存(一个连续完整的地址空间),而实际上,应用程序通常被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换,这样使得大型程序的编写变得更容易,对真正的物理内存(例如ram)的使用也更有效率。随着电子设备存储空间的飞速发展,现有的片上系统(systemonchip,soc)层级的系统内存管理单元(systemmemorymanagementunit,smmu)已使得系统中虚拟地址转化为物理地址的效率显著提升。如图1所示,现有arm公司的smmu设计框架主要包括两个主要部分,即转译缓冲单元(translationbufferunit,tbu)和转译控制单元(translationcontrolunit,tcu)。tbu主要包括tag表存储阵列(也可以称为转译查找表translationlookasidebuffer,tlb),负责虚拟地址往物理地址的快速转化。tlb中每一行都保存着一个由单个pte(pagetableentry,页表项)组成的块,如果能够从tlb页表项中获取虚拟地址及其对应的物理地址,称为tlb命中(tlbhit),反之称为tlb失败(tlbmiss)。tcu包括页表查找(pagetablewalk,ptw)功能、smmu的控制寄存器和对应的编程接口、二级tlb等,负责tlb不命中时查页表和各种控制。通常,tcu只有一个,tbu可以有多个,不同的主设备(masterdevice)可以连接在不同tbu的上游,每个tbu中的tlb能反映该masterdevice近期常访问的地址。而由于要求tbu能实现单个时钟周期(cycle)内命中tlb,所以tbu里含有大量的比对逻辑,从逻辑综合(designcompiler,dc)后的结果看,芯片面积因此有很大的增加,即现有的提高地址转化的效率的方法是以增大smmu所占的面积作为代价的。如果减少tbu的数量或缩小单个tbu内一级tlb的页表项数目来节省面积,又会影响地址转化效率。对于越来越复杂的soc系统设计,如何既能花费更低的面积成本,又能高效地管理复杂的地址空间分配,已成为内存管理技术的重要研究方向。技术实现要素:为了解决上述技术问题,本发明提供了一种系统内存管理装置和系统内存管理方法,能够有效节省芯片的设计面积。为了达到本发明目的,本发明实施例的技术方案是这样实现的:本发明实施例提供了一种系统内存管理装置,包括一个转译控制单元、若干转译缓冲单元、一仲裁单元和一比对判断单元,其中:转译控制单元,用于进行二级转译查找表的查找或全局页表查找,产生页表查找结果并发送至转译缓冲单元,或当页表项无效时,产生页表项对应的转译查找表入口无效请求并发送至转译缓冲单元;转译缓冲单元,包含用于存储和自身相连的各个主设备的常用物理地址的标签表存储阵列,并接收来自主设备的读写请求以及来自转译控制单元的页表查找结果或页表项对应的转译查找表入口无效请求,获取读写请求、页表查找结果或页表项对应的转译查找表入口无效请求中的要比对的信息并发送至比对判断单元,产生与要比对的信息对应的标签比对请求并发送至仲裁单元;仲裁单元,用于接收标签比对请求,对标签比对请求进行存储并排序,将最优先的标签比对请求发送至比对判断单元;比对判断单元,用于接收最优先的标签比对请求,获取最优先的标签比对请求对应的要比对的信息及对应的标签表存储阵列,将要比对的信息和对应的标签表存储阵列进行比对,产生比对结果并发送至转译缓冲单元。进一步地,所述转译缓冲单元包括分离设置的主模块和标签存储模块,其中,主模块,用于存储各个主设备的常用物理地址,接收来自主设备的读写请求以及来自转译控制单元的页表查找结果或转译查找表入口无效请求,分别获取读写请求、页表查找结果或页表项对应的转译查找表入口无效请求中的要比对的信息并发送至比对判断单元,产生与要比对的信息对应的标签比对请求并发送至仲裁单元;标签存储模块,用于存储与常用物理地址对应的标签表存储阵列。进一步地,所述比对判断单元包括一号多路选择器、二号多路选择器和比对模块,其中:所述仲裁单元具体用于,对标签比对请求进行存储并排列优先级,将优先级最高的标签比对请求对应的转译缓冲单元的标识发送至一号多路选择器和二号多路选择器的选择控制端;将所述若干转译缓冲单元的标签表存储阵列输入所述一号多路选择器的数据输入端,将所述若干转译缓冲单元的要比对的信息输入所述二号多路选择器的数据输入端,将所述一号多路选择器和二号多路选择器的数据输出端均连接至比对模块;所述比对模块,用于对一号多路选择器和二号多路选择器的数据输出结果进行比对,将比对结果发送至所述转译缓冲单元。进一步地,所述比对判断单元包括相互独立的第一比对模块和第二比对模块,其中,所述仲裁单元,具体用于接收所述由主设备的读写请求产生的标签比对请求,标记为第一类标签比对请求,对第一类标签比对请求进行存储并排序;接收所述由转译控制单元的页表查找结果返回转译查找表或页表项对应的转译查找表入口无效请求产生的标签比对请求,标记为第二类标签比对请求,对第二类标签比对请求进行存储并排序;第一比对模块,用于提取所述仲裁单元中的最优先的第一类标签比对请求,获取与最优先的第一类标签比对请求对应的要比对的信息和最优先的第一类标签比对请求所属的转译缓冲单元的标签表存储阵列进行比对,产生比对结果并发送至所述转译缓冲单元;第二比对模块,用于提取所述仲裁单元中的最优先的第二类标签比对请求,获取与最优先的第二类标签比对请求对应的要比对的信息和最优先的第二类标签比对请求所属的转译缓冲单元的标签表存储阵列进行比对,产生比对结果并发送至所述转译缓冲单元。进一步地,所述仲裁单元对标签比对请求进行存储并排序时,由转译控制单元的页表项对应的转译查找表入口无效请求产生的标签比对请求,由转译控制单元的页表查找结果返回转译查找表产生的标签比对请求,以及由主设备的读写请求产生的标签比对请求,其优先级顺序由高到低排列。进一步地,对于所述由转译控制单元的页表项对应的转译查找表入口无效请求或页表查找结果返回转译查找表产生的标签比对请求,所述仲裁单元按照先来后到的次序进行存储并排序。进一步地,对于同时到来的由转译控制单元的页表项对应的转译查找表入口无效请求或页表查找结果返回转译查找表产生的标签比对请求,所述仲裁单元根据所述标签比对请求最初来源的转译缓冲单元的优先级进行存储并排序。进一步地,对于所述由主设备的读写请求产生的标签比对请求,所述仲裁单元按照预先指定的各个主设备的优先级顺序,或者根据主设备正在读写的传输数进行存储并排序,主设备正在读写的传输数越少,排序的优先级越高。本发明实施例还提供了一种系统内存管理方法,包括:系统内存管理装置中的转译缓冲单元接收来自主设备的读写请求以及来自转译控制单元的页表查找结果或页表项对应的转译查找表入口无效请求,获取读写请求、页表查找结果或页表项对应的转译查找表入口无效请求中的要比对的信息,产生与要比对的信息对应的标签比对请求;系统内存管理装置将比对请求存入缓冲器并进行优先级排序;系统内存管理装置提取缓存器中的最优先的标签比对请求,获取最优先的标签比对请求所属的转译缓冲单元的要比对的信息,并和对应的标签表存储阵列进行比对,产生比对结果并发送至转译缓冲单元。进一步地,所述系统内存管理装置将比对请求存入缓冲器并进行优先级排序时,由转译控制单元的页表项对应的转译查找表入口无效请求产生的标签比对请求,由转译控制单元的页表查找结果返回转译查找表产生的标签比对请求,以及由主设备的读写请求产生的标签比对请求,其优先级顺序由高到低排列。本发明的技术方案,具有如下有益效果:本发明提供的系统内存管理装置和系统内存管理方法,通过增加一仲裁单元,让若干tbu共用一个比较判断单元,增加的面积远小于精简的面积,从而有效节省了芯片的设计面积,为整个soc节省了成本。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为现有的系统内存管理装置的结构示意图;图2为本发明实施例的系统内存管理装置的结构示意图;图3为本发明实施例的系统内存管理方法的流程示意图;图4为本发明优选实施例的系统内存管理装置的结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。如图2所示,根据本发明的一种系统内存管理装置,包括一转译控制单元(tcu)、若干转译缓冲单元(tbu)、一仲裁单元和一比对判断单元,其中:转译控制单元,用于进行二级转译查找表(lv2-tlb)的查找或全局页表查找(ptw),产生页表查找结果并发送至转译缓冲单元,或当页表项无效时,产生页表项对应的转译查找表入口无效请求并发送至转译缓冲单元;转译缓冲单元,包含用于存储和自身相连的各个主设备(masterdevice)的常用物理地址的标签(tag)表存储阵列(tlb-tag),并接收来自主设备的读写请求以及来自转译控制单元的页表查找结果或页表项对应的转译查找表入口无效请求,获取读写请求、页表查找结果或页表项对应的转译查找表入口无效请求中的要比对的信息并发送至比对判断单元,产生与要比对的信息对应的标签(tag)比对请求并发送至仲裁单元;仲裁单元,用于接收标签比对请求,对标签比对请求进行存储并排序,将最优先的标签比对请求发送至比对判断单元;比对判断单元,用于接收最优先的标签比对请求,获取最优先的标签比对请求对应的要比对的信息及对应的标签表存储阵列,将要比对的信息和对应的标签表存储阵列进行比对,产生比对结果并发送至转译缓冲单元。值得说明的是,比对结果有命中和不命中两种情况,命中时会告知对应转移缓冲单元被命中的tag表入口的索引信息,常用的形式是独热码的hit信号,不命中时也会通知对应的转译缓冲单元。优选地,所述仲裁单元将最优先的标签比对请求发送至比对判断单元时,同时通知对应的转译缓冲单元。此时转译缓冲单元准备接收比对结果,当比对判断单元将结果发送至各个转译缓冲单元时,对应的转译缓冲单元解析比对结果,如果命中,则将对应的物理地址取出;如果没有命中,将交付转译控制单元进行二级转译查找表的查找或全局页表查找。此外,转译控制单元还有一些其他辅助功能,例如寄存器配置等。转译缓冲单元中除上述功能外,还有一些其他功能,所述其他功能为arm公司固有的设计,不再详述。当有比对需求时,每个转译缓冲单元(tbu)根据自身的使能和闲忙状况向仲裁单元提出申请,仲裁单元根据预先设置的比对顺序或根据soc中各通路的闲忙情况对标签比对请求进行排序,从而仲裁当前哪个tbu的tag表存储阵列(tlb)要和对应的包含虚拟地址、流标识(streamid)、安全等信息的要比对的信息进行比对。因为每个标签比对请求都来自对应的tbu,所以仲裁后会选中对应的tlb,选中对应的要用于比对的信息,并选中对应的标签表存储阵列。对于由主设备的读写请求产生的标签比对请求,要比对的信息除虚拟地址外,还包含安全属性/流标识(streamid)等,所述streamid是一种区分其源头的主设备功能的标志信息。仲裁结果通过仲裁单元的输出控制信号输出,比对判断单元产生比对结果回馈到每个tbu中,用来管控比对命中或不命中之后的后续行为。转译缓冲单元接收到比对结果,如果比对结果中有tlb-tag表中的某一页表入口(pagetableentry)命中,输出与其虚拟地址对应的物理地址;如果比对结果中没有命中的页表入口,将产生页表查找请求或二级页表项查找请求至转译控制单元。由于仲裁单元要对标签比对请求进行排序并存储,所以仲裁单元会内含一个小的缓冲器(buffer),缓冲器级数可以设置为tbu的数量或其它值,buffer满后不再接收标签比对请求。由于仲裁单元同时可收到多个tbu的请求,所以该buffer在单拍内能一次接收多个请求,按一般设计原则,优先级仲裁的过程发生在标签比对请求被记录进buffer之后。但是在一个周期中同时发起的比对请求数量多于buffer剩余存量的时候,又不得不在写入buffer之前作出选择,这种选择的优先级可以由配置寄存器来指定。当buffer中没有残留的标签比对请求且同时只到来一个新的标签比对请求时,该标签比对请求可直接从缓冲器直通(bypass)过去。进一步地,所述转译缓冲单元包括分离设置的主模块和标签存储模块,其中,所述转译缓冲单元的主模块,是转译缓冲单元中剔除标签存储模块之外的部分,功能包括但不限于:存储各个主设备的常用物理地址,接收来自主设备的读写请求以及来自转译控制单元的页表查找结果或页表项对应的转译查找表入口无效请求,分别获取读写请求、页表查找结果或页表项对应的转译查找表入口无效请求中的要比对的信息并发送至比对判断单元,产生与要比对的信息对应的标签比对请求并发送至仲裁单元;标签存储模块,用于存储与物理地址对应的tag表存储阵列(tlb-tag)。需要说明的是,现有arm设计中的tag表存储阵列(tlb-tag),在本申请中被集中在标签存储模块中,所述标签存储模块可以为一整块的特殊存储器(memory),可以同时读出一个tag表存储阵列(tlb)的所有页表项数据。把这部分独立出来是为了把所有的tbu的标签存储表统一到一起进行管理,也为这部分的后端设计或全定制设计提供便利,通过分离设置的主模块和标签存储模块,可以更加优化整个标签存储模块,减少tag阵列和比对判断单元之间相互连接的走线长度。进一步地,所述比对判断单元包括一号多路选择器、二号多路选择器和比对模块,其中,所述仲裁单元具体用于,对标签比对请求进行存储并排列优先级,将优先级最高的标签比对请求对应的转译缓冲单元的标识发送至一号多路选择器和二号多路选择器的选择控制端;将所述若干转译缓冲单元的tag表存储阵列输入所述一号多路选择器的数据输入端,将所述若干转译缓冲单元的要比对的信息输入所述二号多路选择器的数据输入端,将所述一号多路选择器和二号多路选择器的数据输出端均连接至比对模块;所述比对模块,用于对一号多路选择器和二号多路选择器的数据输出结果进行比对,将比对结果发送至转译缓冲单元。需要说明的是,所述转译缓冲单元的标识可以为转译缓冲单元的编号或其它标识信息。所述比对模块通常在单个时钟周期内完成和tag表中每一项(entry)的比对。此外,所述一号多路选择器可能会比较大,因为要选出整个阵列,所以可把各tag阵列放在一起,以便可以减少布线,还可以进行包括该一号多路选择器和tag阵列在内的数字电路的全定制设计,即将一号多路选择器设置在标签存储模块内部,把它们作为一个整体进行全定制设计,这样可以更加节省面积。进一步地,所述比对判断单元包括相互独立的第一比对模块和第二比对模块,其中,仲裁单元,用于接收由主设备的读写请求产生的标签比对请求,标记为第一类标签比对请求,对第一类标签比对请求进行存储并排序;接收由转译控制单元的页表查找结果返回转译查找表或页表项对应的转译查找表入口无效请求产生的标签比对请求,标记为第二类标签比对请求,对第二类标签比对请求进行存储并排序;第一比对模块,用于提取仲裁单元中的最优先的第一类标签比对请求,获取与最优先的第一类标签比对请求对应的要比对的信息和最优先的第一类标签比对请求所属的转译缓冲单元的tag表存储阵列进行比对,产生比对结果并发送至转译缓冲单元;第二比对模块,用于提取仲裁单元中的最优先的第二类标签比对请求,获取与最优先的第二类标签比对请求对应的要比对的信息和最优先的第二类标签比对请求所属的转译缓冲单元的tag表存储阵列进行比对,产生比对结果并发送至转译缓冲单元。需要说明的是,由于页表查找(ptw)发生的概率和页表项无效(tlbinvalid)发生的频率都比较少,且ptw后对tlb的更新也不需要连续每个时间周期更新页表项,因此在比对判断单元中,仅保留一组或两组比较器就可以了,如果用两组比较器,则由转译控制单元的页表查找结果返回转译查找表时或页表项对应的转译查找表入口无效请求产生时所需要的第二类标签比对请求共用一个比较器,由主设备的读写请求产生的标签比对请求使用另一个独立的比较器。进一步地,所述仲裁单元对标签比对请求进行存储并排序时,由转译控制单元的页表项对应的转译查找表入口无效请求产生的标签比对请求、由转译控制单元的页表查找结果返回转译查找表产生的标签比对请求以及由主设备的读写请求产生的标签比对请求,其优先级顺序由高到低排列。进一步地,由转译控制单元的页表查找结果返回转译查找表或页表项对应的转译查找表入口无效请求产生的标签比对请求之间,按照先来后到的次序排列优先级。对于同时到来的由转译控制单元的页表查找结果返回转译查找表或页表项对应的转译查找表入口无效请求产生的标签比对请求,所述仲裁单元根据所述标签比对请求最初来源的转译缓冲单元的优先级进行存储并排序,例如,对于同时到来的此类请求,可按最初来自哪个tbu及根据寄存器确定的各个tbu的优先级,来指明各个标签比对请求的优先级。值得说明的是,在arm公司的现有设计中tcu到多个tbu的通讯通路一般不可并行发送,此处考虑的场景比较灵活,所述方案不完全拘于arm公司现有产品的设计。值得说明的是,由主设备的读写请求产生的标签比对请求之间的优先级排序规则可以很灵活,可以基于寄存器配置来指定源于哪个主设备的标签比对请求有更高的优先级,也可以根据统计soc中各有关通路的闲忙情况来分配优先级。具体地,对于所述由主设备的读写请求产生的标签比对请求,所述仲裁单元按照预先指定的各个主设备的优先级顺序,或者根据主设备正在读写的传输数进行存储并排序,主设备正在读写的传输数越少,优先级越高。由主设备的读写请求产生的标签比对请求中,可主要按主设备正在读写的传输数这种方式找出最优先的比对请求,先来后到的排序方式作为此方式不能区分优先级时的补充方式。需要说明的是,所述根据统计soc中各有关通路的闲忙情况来分配优先级的方法,可以用axi通道的握手信号来统计未处理完的传输数量(即soc专用术语中的正在outstanding的事务量),分配给该统计参数较小的主设备一方,即通过统计每个tbu的ace-liteslave口的读请求(arvalid)/写请求(awvalid)和读反馈(rlast和rvalid同时)/写反馈(bvalid)和对应ready信号的握手次数,计算出每个ace-liteslave口的正在读写的传输数(即正在outstanding的数量),正在读写的传输数越多,说明该主设备之前发的传输还没处理完,不必先急于处理新的传输,因此可以让主设备正在读写的传输数越少,优先级越高。如图3所示,根据本发明的一种系统内存管理方法,包括:步骤301:系统内存管理装置中的转译缓冲单元接收来自主设备的读写请求,以及来自转译控制单元的页表查找结果或页表项对应的转译查找表入口无效请求,获取读写请求、页表查找结果或页表项对应的转译查找表入口无效请求中的要比对的信息,产生与要比对的信息对应的标签比对请求;值得说明的是,比对结果有命中和不命中两种情况,命中时会告知对应转移缓冲单元被命中的tag表入口的索引信息,常用的形式是独热码的hit信号,不命中时也会通知对应转移缓冲单元。此外,转译缓冲单元中除上述功能外,还有一些其他功能,例如寄存器配置等。所述其他功能为arm公司固有的设计,不再详述。当有比对需求时,每个转译缓冲单元(tbu)根据自身的闲忙和使能状况产生标签比对请求,系统内存管理装置根据相关条件排序,仲裁当前哪个tbu的tag表存储阵列要和对应的包含虚拟地址、流标识(streamid)、安全属性等要比对的信息进行比对,产生的比对结果回馈到每个tbu中,用来管控比对命中或不命中之后的后续行为。转译缓冲单元接收到比对结果,如果比对结果中有虚拟地址命中,则输出与虚拟地址对应的物理地址;如果比对结果中没有虚拟地址命中,则可根据条件判断产生进一步的查找请求至转译控制单元;转译控制单元进行全局页表查找(ptw)或二级转译查找表查找,产生页表查找结果并发送至转译缓冲单元,或当页表项无效时,产生页表项对应的转译查找表入口无效请求并发送至转译缓冲单元。进一步地,所述转译缓冲单元包括分离的数据存储器和标签存储器,所述数据存储器用于存放物理地址,所述标签存储器用于存放与物理地址对应的标签表存储阵列,所述标签表存储阵列包括虚拟地址、streamid、安全属性等。需要说明的是,现有arm公司设计中的多个tag表存储阵列(每个tbu的tlb对应一个),在本申请中被集中成一个统一的标签存储器,所述标签存储器可以为一整块的特殊存储器(memory),可以同时读出一个tag表存储阵列的所有入口(entry)的内容。通过将标签存储器与转译缓冲单元的其它部分分离设置,可以更加优化整个标签存储器,并减少从后端角度看的tag阵列周围的走线长度。步骤302:系统内存管理装置将比对请求存入缓冲器并进行优先级排序;在本发明一实施例中,所述缓冲器(buffer)级数可以设置为tbu的数量或其它值,buffer满后不再接收标签比对请求。该buffer在单拍内能一次接收多个请求,按一般设计原则,优先级仲裁的过程发生在标签比对请求被记录进buffer之后。但是在一个周期中同时发起的比对请求数量多于buffer剩余存量的时候,又不得不在写入buffer之前作出选择,这种选择的优先级可以由配置寄存器来指定。当buffer中没有残留的标签比对请求且同时只到来一个新的标签比对请求时,该标签比对请求可直接从缓冲器直通(bypass)过去。进一步地,所述系统内存管理装置将比对请求存入缓冲器并进行优先级排序时,由转译控制单元的页表项对应的转译查找表入口无效请求产生的标签比对请求、由转译控制单元的页表查找结果返回转译查找表时产生的标签比对请求以及由主设备的读写请求产生的标签比对请求,其优先级顺序由高到低排列。进一步地,由转译控制单元的页表查找结果返回转译查找表时所产生的标签比对请求之间,或页表项对应的转译查找表入口无效请求产生时所产生要的标签比对请求之间,按照先来后到的次序排列优先级。对于同时到来的此类标签比对请求,可根据所述标签比对请求最初来源的转译缓冲单元的优先级来确定各个标签比对请求的优先级,由最初来自哪个tbu及各按寄存器规定的tbu的优先级,来指明各个标签比对请求的优先级。顺便提及,arm公司的原始设计中tcu到多个tbu的通讯通路一般不可并行发送,此处考虑的场景比较灵活,不完全拘于arm公司现有产品的设计。进一步地,在所述由主设备的读写请求产生的标签比对请求中,所述仲裁单元按照预先由寄存器指定各个主设备的优先级顺序,或者根据主设备正在读写的传输数设置优先级,主设备正在读写的传输数越少,优先级越高。由主设备的读写请求中,可主要按主设备正在读写的传输数这种方式找出最优先的比对请求,先来后到的排序方式作为此方式不能区分优先级时的补充方式。需要说明的是,通过统计每个tbu的ace-liteslave口的读请求(arvalid)/写请求(awvalid)和读反馈(rlast和rvalid同时)/写反馈(bvalid)和对应ready信号的握手次数,计算出每个ace-liteslave口的正在读写的传输数(即正在outstanding的数量),正在读写的传输数越多,说明该主设备之前发的传输还没处理完,不必先急于处理新的传输,因此可以让主设备正在读写的传输数越少,优先级越高。步骤303:系统内存管理装置提取缓冲器中的最优先的标签比对请求,获取最优先的标签比对请求所属的转译缓冲单元的要比对的信息,并和对应的标签表存储阵列进行比对,产生比对结果并发送至转译缓冲单元。需要说明的是,由于页表查找(ptw)发生的概率和页表项无效(tlbinvalid)发生的频率都比较少,且ptw后对tlb的更新也不需要连续每个时间周期更新页表项,因此在系统内存管理装置中,仅保留一组比较器就可以了,或者使用一个比较器处理由转译控制单元的页表查找结果返回转译查找表和页表项对应的转译查找表入口无效请求产生的第二类标签比对请求,使用另一个独立的比较器处理由主设备的读写请求产生的第一类标签比对请求。以下通过一个优选实施例,说明本发明的系统内存管理装置和系统内存管理方法。值得注意的是,以下的优选实施例只是为了更好的描述本发明,并不构成对本发明不当的限定。如图4所示,根据本发明的一种系统内存管理装置(smmu),包括如下几个模块:1)转译控制单元(translationcontrolunit,tcu)包括页表查找(pagetablewalk,ptw)功能;包括smmu的控制寄存器和对应的编程接口;包括对tlb进行按地址或按其他条件无效(invalid)的无效模块;可以带有二级tlb等。2)转译缓冲单元(translationbufferunit,tbu)包括一级tlb的数据存储器(dataram),用来存储翻译后的物理地址和相关属性;包括根据条件判断产生标签比对请求的逻辑;含有ptw条件判断的逻辑,满足条件的传输送往tcu进行ptw进程。3)标签存储模块(用于集中存放tlbtag阵列)所有在现有arm公司设计中的一级tlb的tag阵列,在本实施例中被集中在这个模块里,可以被整合成一个整块的特殊memory。这个memory同时可以读出一个tlb的n个数据,所述n为一个tlb的entry数目;这样做的好处是可以更加优化整个tagmemory,减少该阵列和tbutag选择器(后边附图中的mux1)之间相互连接的走线长度。如果是全定制的设计,这个tag阵列选择的mux可做在这个memory内部,这样可以更加节省面积。4)各tbu公用的比较判断模块在smmu的工作中,既要比较上游主设备(masterdevice)来的新传输的关键信息,用来翻译物理地址;也要比较tcu中无效模块传来的关键信息,因为在页表分配的变更等情况下,需要invalid各tbu中的一级tlb的某些页表项(entry),此时需要通过比对来找到对应的entry;还有一种情况也需要进行比对,就是ptw之后需要更新一级tlb时,ptw是一个非常耗时的过程,ptw的结果返回tbu时,需要更新哪个tlbentry,是此时由比对确定的。由于本申请中的多个tbu只共享一个比较判断模块,因此需要加入两个多路选择器(mux),一个是标签存储模块的mux1,对多个标签(tag)阵列进行mux选择,选出当前要比对的tag阵列;一个是将多个要比对的上游关键信息载体(包括streamid/虚拟地址/安全等信息)进行mux选择的mux2。5)仲裁器仲裁器仲裁哪个tbu享有比较判断模块,仲裁器的输出控制信号连接mux1和mux2的select端。本发明的系统内存管理方法的流程如下(以下步骤是逻辑上的先后因果次序,在实现的细节时序上,前后步骤中做的事情也可以是同时的):第一步:各tbu接收主设备(masterdevice)发来的新传输或tcu发来的tlbinvalid请求或ptw后更新tlb请求;第二步:各tbu根据自身闲忙情况和使能情况,向仲裁器发起标签比对请求;第三步:仲裁器接收比对请求,选出对多个请求的仲裁结果,根据仲裁结果,选中一个tbu,同时获取被选中的tbu的tlbtag和有效关键信息载体进行比对,产生比对结果发往tbu;第四步:被仲裁选中的tbu根据比对结果进行下一步工作,如取出tlb中的物理地址或进行二级tlb查找或ptw准备工作。本发明提供的系统内存管理装置和系统内存管理方法,通过增加一仲裁单元,让若干tbu共用一个比较判断单元,增加的面积远小于精简的面积,从而为整个soc节省了成本;此外,常见soc设计中,通常使用一个统一的ddr作为最终存储空间,而ddr的访问效率是有限的,因此对含有smmu的整个soc来言,效率的瓶颈通常在ddr和通往ddr的通路上。虽然arm公司的设计中,多个tlb能在单个时钟周期内并行的完成比对,但假如每个tbu都在每个时钟周期向下游发出一笔读/写传输,从而一个时钟周期内就有多笔读/写传输从smmu送往下游,那么在下游送往ddr的过程中,效率必然会受到限制。因此,一般来说,无论有多少个tbu,只要有一个比对判断单元就足够了,只要在smmu内仲裁得当,整个soc的效率是不会受到多少影响的。本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1