一种命令队列控制方法、控制电路及地址映射设备

文档序号:1741932 发布日期:2019-11-26 浏览:31次 >En<

阅读说明:本技术 一种命令队列控制方法、控制电路及地址映射设备 (A kind of command queue&#39;s control method, control circuit and address mapping device ) 是由 刘弋波 张庆 于 2018-05-16 设计创作,主要内容包括:本发明提供了一种命令队列控制方法、控制电路及地址映射设备,其中命令队列控制方法包括:接收带有虚拟地址的命令,当命令满足预设的第一条件时将命令写入命令队列;当接收到下级单元发送的与命令队列中的任一命令相匹配的页表时,根据页表得到该命令的物理地址,并更新该命令在命令队列中的存储数据;当命令队列中该命令的存储数据满足预设的第二条件时,将该命令在命令队列中取出。本发明的技术方案可以让命令队列中符合条件的命令及时取出送走,有利于减少对队列深度的依赖,同时还可以连续向下级单元发出多条查询页表的请求而不必等待前面请求的页表被下级单元送回,因此可以系统性全方位的提升地址映射的效率。(The present invention provides a kind of command queue&#39;s control method, control circuit and address mapping devices, and wherein command queue&#39;s control method includes: to receive the order for having virtual address, when order meets preset first condition by order writing commands queue;When receiving the page table of bottom-ranked unit transmission to match with any order in command queue, the physical address of the order is obtained according to page table, and update storing data of the order in command queue;When the storing data of the order in command queue meets preset second condition, which is taken out in command queue.Technical solution of the present invention can allow timely take out of qualified order in command queue to be seen off, advantageously reduce the dependence to queue depth, continuously the request of a plurality of inquiry page table can also be issued without waiting the page table of predecessor request be sent back to by bottom-ranked unit to bottom-ranked unit simultaneously, thus can the comprehensive promotion address of cache of systematicness efficiency.)

一种命令队列控制方法、控制电路及地址映射设备

技术领域

本发明涉及计算机、通信和消费电子领域,特别涉及一种命令队列控制方法、控制电路及地址映射设备。

背景技术

内存管理单元(Memory management unit,简称MMU)用来将CPU或者设备访问内存命令里的虚拟地址(Virtual Address,简称VA)映射成实际物理地址(Physical Address,简称PA),用于CPU以外设备,比如显示引擎或ISP的MMU又被称为设备内存管理单元(IOMMU)或者系统内存管理单元(SYSMMU)。

地址映射(Address mapping)过程中需要读取存储在内存里的页表,这个过程需要较长时间,因此影响性能,虽然业界普遍在MMU中嵌入映射查找表(TranslationLookaside Buffer,简称TLB)起到缓存最近使用过页表的功能,减少再次查找页表的时间和访问内存的次数,但如何提升MMU本身的效率,减少对性能下降带来的不利影响依然是个关键问题。从公开的资料来看,都是提升某个局部点,缺少一揽子的整体解决方案。

发明内容

为了提升内存管理单元MMU的工作效率和性能,减少地址映射过程中引入的延迟,本发明提供了一种命令队列控制方法、控制电路及地址映射设备。

本发明提供了一种命令队列控制方法,包括:

接收带有虚拟地址的命令,当所述命令满足预设的第一条件时,将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据;

当接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表时,根据所述页表得到该命令的物理地址,并更新该命令在所述命令队列中的存储数据;

当所述命令队列中该命令的存储数据满足预设的第二条件时,将该命令在所述命令队列中取出,其中,所述预设的第二条件为该命令为其对应的通道中最早的命令且该命令在所述命令队列中的存储数据包括物理地址。

可选的,在本发明所述的命令队列控制方法中,在将该命令在所述命令队列中取出之后,还包括:

将与该命令处于相同通道的其他命令的排名均向前移动一位,其中所述排名为将同一通道中的命令按照命令队列接收命令的时间进行排序得到的;

当该通道中的其他命令满足预设的第二条件时,将该通道中的其他命令在所述命令队列中取出。

可选的,在本发明所述的命令队列控制方法中,在接收带有虚拟地址的命令之后,还包括:

查询预设的映射查找表,判断所述映射查找表中所述虚拟地址对应的页表是否存在;

当所述虚拟地址对应的页表不存在时,判定所述命令满足预设的第一条件;

当所述虚拟地址对应的页表存在时,判断所述命令队列中是否已经存储有与所述命令来自相同通道的命令,当已经存储时,判定所述命令满足预设的第一条件。

可选的,在本发明所述的命令队列控制方法中,在将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据之后,还包括:

判断所述命令队列中是否已经存储有包含所述虚拟地址的命令;

当没有存储时,向下级单元发出页表查找请求;

在更新该命令在所述命令队列中的存储数据之后,还包括:

更新所述命令队列中除该命令之外的包含所述虚拟地址的其他命令的存储数据。

可选的,在本发明所述的命令队列控制方法中,在当所述映射查找表中所述虚拟地址对应的页表存在时,判断所述命令队列中是否已经存储有与所述命令来自相同通道的命令之后,还包括:

当所述命令队列中没有存储与所述命令来自相同通道的命令时,发出返回所述命令并完成地址映射的指令。

可选的,在本发明所述的命令队列控制方法中,在接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表之后,还包括:将所述页表存储至所述映射查找表中。

可选的,在本发明所述的命令队列控制方法中,所述命令队列为按内容寻址存储器结构。

本发明还提供了一种命令队列控制电路,包括命令队列写入单元、命令队列更新单元及命令队列取出单元;

所述命令队列写入单元,用于接收带有虚拟地址的命令,当所述命令满足预设的第一条件时,将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据;

所述命令队列更新单元,用于当接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表时,根据所述页表得到该命令的物理地址,并更新该命令在所述命令队列中的存储数据;

所述命令队列取出单元,用于当所述命令队列中该命令的存储数据满足预设的第二条件时,将该命令在所述命令队列中取出,其中,所述预设的第二条件为该命令为其对应的通道中最早的命令且该命令在所述命令队列中的存储数据包括物理地址。

可选的,在本发明所述的命令队列控制电路中,所述命令队列更新单元还用于:在将该命令在所述命令队列中取出之后,将与该命令处于相同通道的其他命令的排名均向前移动一位,其中所述排名为将同一通道中的命令按照命令队列接收命令的时间进行排序得到的;

所述命令队列取出单元,还用于当该通道中的其他命令满足预设的第二条件时,将该通道中的其他命令在所述命令队列中取出。

可选的,在本发明所述的命令队列控制电路中,所述命令队列写入单元,还用于在接收带有虚拟地址的命令之后,查询预设的映射查找表,判断所述映射查找表中所述虚拟地址对应的页表是否存在;

当所述虚拟地址对应的页表不存在时,判定所述命令满足预设的第一条件;

当所述虚拟地址对应的页表存在时,判断所述命令队列中是否已经存储有与所述命令来自相同通道的命令,当已经存储时,判定所述命令满足预设的第一条件。

可选的,在本发明所述的命令队列控制电路中,还包括判断单元;

所述判断单元单元还用于:在将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据之后,判断所述命令队列中是否已经存储有包含所述虚拟地址的命令;当没有存储时,向下级单元发出页表查找请求;

所述命令队列更新单元还用于:在更新该命令在所述命令队列中的存储数据之后,更新所述命令队列中除该命令之外的包含所述虚拟地址的其他命令的存储数据。

可选的,在本发明所述的命令队列控制电路中,所述命令队列写入单元还用于:在当所述映射查找表中所述虚拟地址对应的页表存在,且所述命令队列中没有存储与所述命令来自相同通道的命令时,发出返回所述命令并完成地址映射的指令。

可选的,在本发明所述的命令队列控制电路中,所述命令队列更新单元,还用于:在接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表之后,将所述页表存储至所述映射查找表中。

可选的,在本发明所述的命令队列控制电路中,所述命令队列为按内容寻址存储器结构。

本发明还提供了一种地址映射设备,包括映射查找表、命令队列、映射装置及如上所述的命令队列控制电路;

所述所述映射装置,用于当接收到在命令队列中取出的命令后,将所述命令完成虚拟地址到物理地址的映射。

可选的,在本发明所述的地址映射设备中,所述映射装置还用于当接收到返回所述命令并完成地址映射的指令后,在所述映射查找表中查询得到与所述命令中的虚拟地址相匹配的物理地址,直接完成所述命令虚拟地址到物理地址的映射。

本发明的有益效果如下:

本发明实施例提供的命令队列控制方法、控制电路及地址映射设备,通过将命令存入命令队列,当接收到下级单元发送的与命令队列中的任一命令相匹配的页表时,根据页表得到该命令的物理地址,并更新该命令在命令队列中的存储数据;当命令队列中该命令的存储数据满足预设的第二条件时,将该命令在命令队列中取出。本发明的技术方案允许下级单元乱序返回页表,让命令队列中符合条件的命令及时取出送走,腾出空间存储新的命令,有利于减少对队列深度的依赖,同时还可以连续向下级单元发出多条查询页表的请求而不必等待前面请求的页表被下级单元送回,因此可以系统性全方位的提升地址映射的效率。

附图说明

图1为本发明第一实施例中命令队列控制方法的流程示意图;

图2为本发明第二实施例中命令队列控制方法的流程示意图;

图3为本发明第三实施例中命令队列控制电路的结构示意图;

图4为本发明第四实施例中命令队列控制电路的结构示意图;

图5为MMU在计算机系统或者芯片里的位置示意图;

图6为本发明实例1中地址映射设备的结构示意图;

图7为本发明实例1中地址映射设备的工作流程示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

为了提升内存管理单元MMU的工作效率和性能,减少地址映射过程中引入的延迟,本发明提供了一种命令队列控制方法、地址映射方法及地址映射设备。

根据本发明的第一实施例,提供了一种命令队列控制方法。图1为本发明第一实施例中命令队列控制方法的流程示意图,如图1所示,本发明第一实施例的命令队列控制方法,包括以下步骤:

S101:接收带有虚拟地址的命令,当所述命令满足预设的第一条件时,将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据。

在本发明一个可选实施例中,所述命令队列采用CAM(Context AddressableMemory,按内容寻址存储器)的实现方式,任何一个存储单元可以存放来自任何通道的命令,且存放的物理位置不依赖于命令到达的先后顺序,只要是空置的单元都能被分配使用。在CAM结构中,每个空闲的存储单元可以写入来自任意通道的命令,实现命令队列空间利用效率最大化。

在本发明一个可选实施例中,在接收带有虚拟地址的命令之后,还包括:查询预设的映射查找表,判断所述映射查找表中所述虚拟地址对应的页表是否存在;当所述映射查找表中所述虚拟地址对应的页表不存在时,判定所述命令满足预设的第一条件;当所述映射查找表中所述虚拟地址对应的页表存在时,判断所述命令队列中是否已经存储有与所述命令来自相同通道的命令,当已经存储时,判定所述命令满足预设的第一条件。

进一步的,当所述映射查找表中所述虚拟地址对应的页表存在时,且所述命令队列中没有存储与所述命令来自相同通道的命令时,发出返回所述命令并完成地址映射的指令。

也就是说,当收到带有虚拟地址的命令后,首先对TLB进行查找,当hit的时候(即当映射查找表中虚拟地址对应的页表存在时),继续监测命令队列中是否已经存储了来自相同通道的命令,如果结果为否,命令不会存入队列,反之则将命令存入命令队列。当TLB查找结果为miss的时候(即当映射查找表中虚拟地址对应的页表不存在时),则命令被存入命令队列。

为了提高效率,一般MMU会放置一个TLB(Translation Lookaside Buffer,映射查找表),用来缓存最近使用过的页表,类似cache的作用。当收到带有虚拟地址的命令时,首先会去TLB中查找对应的页表是否存在。当查询结果为hit时,可以利用页表完成虚拟地址到物理地址的映射;当查询结果为miss时则往下一级单元发出返回页表的请求,下一级单元有可能直接访问内存读取页表(page table walk,简称PTW),也有可能下一级的单元存在一个更大容量的二级TLB,先对二级的TLB查找页表后再根据结果决定是否进行PTW的动作。也就是说,在第一实施例中并不是命令队列中所有的命令都会发出页表查找请求,只有当TLB查找结果为miss时,才会发出页表查找请求。

S102:当接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表时,根据所述页表得到该命令的物理地址,并更新该命令在所述命令队列中的存储数据。

在本发明第一实施例中,当命令队列中包括多个命令时,可以往下级单元连续发出针对不同页表的多个请求(即页表查找请求),且后一个的请求发出不必等到前面请求的页表是否返回,实现并行操作;而且后面的页表查找请求可以先于前面的页表查找请求返回页表,实现乱序,让命令队列中符合条件的命令及时取出送走,腾出空间存储新的命令,有利于减少对队列深度的依赖,达到提升性能和减少面积的目的。

S103:当所述命令队列中该命令的存储数据满足预设的第二条件时,将该命令在所述命令队列中取出,其中,所述预设的第二条件为该命令为其对应的通道中最早的命令且该命令在所述命令队列中的存储数据包括物理地址。

在本发明步骤S103中,只要当命令的状态中包括物理地址且该命令为通道中最早的命令时,即可将所述命令在所述命令队列中取出,进一步保证即使在步骤S102中为并行操作及返回页表时实现乱序,也可以在地址映射时,按照命令在对应通道中的先后顺序进行映射。

进一步的,在本发明的一个可选实施例中,在将该命令在所述命令队列中取出,完成虚拟地址到物理地址的映射之后,还包括:将与该命令处于相同通道的其他命令的排名均向前移动一位,其中所述排名为将同一通道中的命令按照命令队列接收命令的时间进行排序得到的;当该通道中的其他命令满足预设的第二条件时,将该通道中的其他命令在所述命令队列中取出。采用进一步的技术方案,可以将属于满足第一种情况的命令在命令队列中取出,其中第一种情况为:映射查找表中虚拟地址对应的页表存在,但命令队列中已经存储有与该命令来自相同通道的命令。

本发明第一实施例提供的命令队列控制方法,允许下级单元乱序返回页表,让命令队列中符合条件的命令及时取出送走,腾出空间存储新的命令,有利于减少对队列深度的依赖,同时还可以连续向下级单元发出多条查询页表的请求而不必等待前面请求的页表被下级单元送回,因此可以系统性全方位的提升地址映射的效率。

根据本发明的第二实施例,提供了一种命令队列控制方法。图2为本发明第二实施例中命令队列控制方法的流程示意图,如图2所示,本发明第二实施例的命令队列控制方法,包括以下步骤:

S201:接收带有虚拟地址的命令,当所述命令满足预设的第一条件时,将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据。

具体的,在接收带有虚拟地址的命令之后,还包括:查询预设的映射查找表,判断映射查找表中该虚拟地址对应的页表是否存在;

当该虚拟地址对应的页表不存在时,判定上述命令满足预设的第一条件;

当该虚拟地址对应的页表存在时,判断命令队列中是否已经存储有与上述命令来自相同通道的命令,当已经存储时,判定上述命令满足预设的第一条件。

S202:判断命令队列中是否已经存储有包含该虚拟地址的命令,当没有存储时,向下级单元发出页表查找请求。

作为本发明实施例的一个可选实施方式,当TLB查找结果为miss的时候,需要监测命令队列中是否已经存储了来自相同虚拟地址的命令,如果结果为否,向下级单元发出页表查找请求,然后将命令存入命令队列,并将状态置为“miss”,如果结果为是,将直接存储命令,而不会向下级单元发出重复的请求。也就是说,在第二实施例中并不是命令队列中所有的命令都会发出页表查找请求,只有当TLB查找结果为miss且命令队列中没有存储来自相同虚拟地址的命令时,才会发出页表查找请求。采用上述方案,对于同一个虚拟地址,可以避免发出重复的请求。

S203:当接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表时,根据所述页表得到该命令的物理地址,更新该命令在所述命令队列中的存储数据,同时更新所述命令队列中除该命令之外的包含所述虚拟地址的其他命令的存储数据。步骤S203目的为更新所述命令队列中包含该虚拟地址的所有命令的存储数据。

在本发明的一个可选实施例中,在接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表之后,还包括:将所述页表存储至所述映射查找表中,可以利用下级单元发送的与所述命令队列中的任一命令相匹配的页表对所述映射查找表随时进行更新。

S204:当所述命令队列中该命令的存储数据满足预设的第二条件时,将该命令在所述命令队列中取出,其中,所述预设的第二条件为该命令为其对应的通道中最早的命令且该命令在所述命令队列中的存储数据包括物理地址。

在本发明的一个可选实施例中,在将该命令在所述命令队列中取出之后,还包括:将与该命令处于相同通道的其他命令的排名均向前移动一位,其中所述排名为将同一通道中的命令按照命令队列接收命令的时间进行排序得到的;当该通道中的其他命令满足预设的第二条件时,将该通道中的其他命令在所述命令队列中取出。

本发明第二实施例提供的命令队列映射方法,不仅可以向下级单元连续发起多个查找页表请求而不必等待前面查找请求的页表送回,并且允许下级单元乱序返回页表,让命令队列中符合条件的命令及时取出送走,腾出空间存储新的命令,减少对队列深度的依赖,而且具备过滤机制,避免发出重复的请求,浪费带宽和增加功耗,可以系统性全方位的提升地址映射的效率。

与本发明的第一实施例相匹配,本发明第三实施例还提供了一种命令队列控制电路,图3为本发明第三实施例中命令队列控制电路的结构示意图,如图3所示,本发明第三实施例的命令队列控制电路包括命令队列写入单元32、命令队列更新单元34及命令队列取出单元36,以下对各单元进行详细的说明。

所述命令队列写入单元32,用于接收带有虚拟地址的命令,当所述命令满足预设的第一条件时,将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据。

在本发明一个可选实施例中,在本发明的地址映射装置中所述命令队列写入单元32还用于在接收带有虚拟地址的命令之后,查询预设的映射查找表,判断所述映射查找表中所述虚拟地址对应的页表是否存在;当所述映射查找表中所述虚拟地址对应的页表不存在时,判定所述命令满足预设的第一条件;当所述映射查找表中所述虚拟地址对应的页表存在时,判断所述命令队列中是否已经存储有与所述命令来自相同通道的命令,当已经存储时,判定所述命令满足预设的第一条件。

进一步的,在本发明第一装置实施例中,所述命令队列写入单元32还用于:在当所述映射查找表中所述虚拟地址对应的页表存在,且所述命令队列中没有存储与所述命令来自相同通道的命令时,发出返回所述命令并完成地址映射的指令。

所述命令队列更新单元34,用于当接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表时,根据所述页表得到该命令的物理地址,并更新该命令在所述命令队列中的存储数据。

在本发明第一装置实施例中,当命令队列中包括多个命令时,可以往下级单元连续发出针对不同页表的多个请求(即页表查找请求),且后一个的请求发出不必等到前面请求的页表是否返回,实现并行操作;而且后面的页表查找请求可以先于前面的页表查找请求返回页表,实现乱序,让命令队列中符合条件的命令及时取出送走,腾出空间存储新的命令,有利于减少对队列深度的依赖,达到减少面积的目的。

所述命令队列取出单元36,用于当所述命令队列中该命令的存储数据满足预设的第二条件时,将该命令在所述命令队列中取出,其中,所述预设的第二条件为该命令为其对应的通道中最早的命令且该命令在所述命令队列中的存储数据包括物理地址。

进一步的,在本发明的一个可选实施例中,所述命令队列更新单元34还用于:在将该命令在所述命令队列中取出,完成虚拟地址到物理地址的映射之后,将与该命令处于相同通道的其他命令的排名均向前移动一位,其中所述排名为将同一通道中的命令按照命令队列接收命令的时间进行排序得到的。所述命令队列取出单元36,还用于当该通道中的其他命令满足预设的第二条件时,将该通道中的其他命令在所述命令队列中取出。

在本发明的命令队列取出单元36中,只要当命令的状态中包括物理地址且该命令为通道中最早的命令时,即可将所述命令在所述命令队列中取出,进一步保证即使采用并行操作及返回页表时实现乱序,同时也确保了对于来自同一通道的命令,是严格按照到来的先后顺序完成命令的取走和地址映射的。

本发明第三实施例提供的命令队列控制电路,允许下级单元乱序返回页表,让命令队列中符合条件的命令及时取出送走,腾出空间存储新的命令,有利于减少对队列深度的依赖,同时还可以连续向下级单元发出多条查询页表的请求而不必等待前面请求的页表被下级单元送回,因此可以系统性全方位的提升地址映射的效率。

与本发明的第二实施例相匹配,本发明的第四实施例提供了一种命令队列控制电路,包括命令队列写入单元32、判断单元33、命令队列更新单元34及命令队列取出单元36,以下对各单元进行详细的说明。

所述命令队列写入单元32,用于接收带有虚拟地址的命令,当所述命令满足预设的条件时,将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据。

所述命令队列更新单元32,还用于在接收带有虚拟地址的命令之后,查询预设的映射查找表,判断映射查找表中该虚拟地址对应的页表是否存在;当该虚拟地址对应的页表不存在时,判定上述命令满足预设的第一条件;当该虚拟地址对应的页表存在时,判断命令队列中是否已经存储有与上述命令来自相同通道的命令,当已经存储时,判定上述命令满足预设的第一条件。

所述判断单元33,用于判断命令队列中是否已经存储有包含该虚拟地址的命令,当没有存储时,向下级单元发出页表查找请求。

所述命令队列更新单元34,用于当接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表时,根据所述页表得到该命令的物理地址,更新该命令在所述命令队列中的存储数据,同时更新所述命令队列中除该命令之外的包含所述虚拟地址的其他命令的存储数据。

在本发明的一个可选实施例中,所述命令队列更新单元34还用于:在接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表之后,将所述页表存储至所述映射查找表中。

所述命令队列取出单元36,用于当所述命令队列中该命令的存储数据满足预设的第二条件时,将该命令在所述命令队列中取出,其中,所述预设的第二条件为该命令为其对应的通道中最早的命令且该命令在所述命令队列中的存储数据包括物理地址。

作为本发明的一个可选实施例,所述命令队列更新单元34还用于:在将该命令在所述命令队列中取出,完成虚拟地址到物理地址的映射之后,将与该命令处于相同通道的其他命令的排名均向前移动一位,其中所述排名为将同一通道中的命令按照命令队列接收命令的时间进行排序得到的。所述命令队列取出单元36,还用于当该通道中的其他命令满足预设的第二条件时,将该通道中的其他命令在所述命令队列中取出。

本发明第四实施例提供的命令队列控制电路,不仅可以向下级单元连续发起多个查找页表请求而不必等待前面查找请求的页表送回,并且允许下级单元乱序返回页表,让命令队列中符合条件的命令及时取出送走,腾出空间存储新的命令,减少对队列深度的依赖,而且具备过滤机制,避免发出重复的请求浪费带宽和增加功耗,可以系统性全方位的提升地址映射的效率。

本发明的第五实施例提供了一种地址映射设备,包括映射查找表、命令队列、映射装置及如上所述的命令队列控制电路,所述映射装置,用于当接收到在命令队列中取出的命令后,将所述命令完成虚拟地址到物理地址的映射。

在本发明的一个可选实施例中,所述映射装置还用于当接收到返回所述命令并完成地址映射的指令后,在映射查找表中查询得到与所述命令中的虚拟地址相匹配的物理地址,直接完成所述命令虚拟地址到物理地址的映射。

为了更详尽的说明本发明的技术方案,给出实例1。

图5为MMU在计算机系统或者芯片里的位置示意图,如图5所示,当CPU或者设备,比如ISP(Image Signal Processing,图像信号处理),GPU(Graphics Processing Unit,图形处理器),显示,编解码引擎往总线发出访问内存的读写命令时,会经过MMU并将命令里的虚拟地址映射为物理地址。具体的,MMU中的地址映射装置将命令里的虚拟地址映射为物理地址。

图6为本发明实例1中地址映射设备的结构示意图,如图6所示,本发明实例1的地址映射设备包括TLB、命令队列、控制电路、及地址映射(相当于上文中的映射装置)。其中,TLB用来缓存最近使用过的页表,命令队列用来存储查找TLB结果为miss的命令或者虽然为hit但是命令队列中已经存在来自同一通道的命令。另外命令队列建议采用CAM(ContentAddressable Memory)的实现方式,如果不采用CAM结构的命令队列,要么需要增加队列的存储空间并按通道分组,要么不支持命令送走时实现通道间的乱序。

控制电路是地址映射装置的核心,包括命令队列写入单元、命令队列更新但与及命令队列取出单元,实现对队列状态的监测,控制命令的写入、更新与取走操作,发往下级单元的页表查找请求,并且实现过滤机制,避免往下级单元发出对相同页表的重复查找请求。

在本发明实例1中,命令队列中存储单元的基本数据结构包括:

图7为本发明实例1中地址映射设备的工作流程示意图,如图7所示,包括以下步骤:

(1)当收到带有虚拟地址的命令后,首先对TLB进行查找;

(2)当hit的时候控制电路会监测命令队列中是否已经存储了来自相同通道的命令,如果结果为否,命令不会存入队列,直接完成地址映射后送走访问内存,反之则将命令存入命令队列,address项内容为查表TLB得到页表的物理地址,状态项置成“HIT”,控制电路选择空闲的位置控制写入操作;

当TLB查找结果为miss的时候,控制电路会去监测命令队列中是否已经存储了来自相同虚拟地址(page index)的命令,如果结果为否,将向下级单元发出查找页表的请求,然后将命令存入命令队列,并将状态置为“MISS”,如果结果为是,将直接存储命令,而不会向下级单元发出重复的请求。

(3)当下级单元返回页表时,会在TLB里面装载存储该页表,同时会更新命令队列对应虚拟地址的全部命令,比如将虚拟地址VA替换成物理地址PA,并将状态从“MISS”更改成“HIT”。

(4)当命令存入命令队列后,控制电路会监测它们的状态,比如状态是否为“HIT”,是否是队列中来自相同通道的最早的命令,只有同时满足两个条件,才符合取出送走的条件。

(5)控制电路不停监测队列的状态,将符合条件的命令取出送走并释放空间。

以上仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:包括能处理数据的存储器设备的半导体系统及其操作方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类