CN110502458A - 一种命令队列控制方法、控制电路及地址映射设备 - Google Patents
一种命令队列控制方法、控制电路及地址映射设备 Download PDFInfo
- Publication number
- CN110502458A CN110502458A CN201810469387.3A CN201810469387A CN110502458A CN 110502458 A CN110502458 A CN 110502458A CN 201810469387 A CN201810469387 A CN 201810469387A CN 110502458 A CN110502458 A CN 110502458A
- Authority
- CN
- China
- Prior art keywords
- order
- command queue
- page table
- address
- queue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种命令队列控制方法、控制电路及地址映射设备,其中命令队列控制方法包括:接收带有虚拟地址的命令,当命令满足预设的第一条件时将命令写入命令队列;当接收到下级单元发送的与命令队列中的任一命令相匹配的页表时,根据页表得到该命令的物理地址,并更新该命令在命令队列中的存储数据;当命令队列中该命令的存储数据满足预设的第二条件时,将该命令在命令队列中取出。本发明的技术方案可以让命令队列中符合条件的命令及时取出送走,有利于减少对队列深度的依赖,同时还可以连续向下级单元发出多条查询页表的请求而不必等待前面请求的页表被下级单元送回,因此可以系统性全方位的提升地址映射的效率。
Description
技术领域
本发明涉及计算机、通信和消费电子领域,特别涉及一种命令队列控制方法、控制电路及地址映射设备。
背景技术
内存管理单元(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)控制电路不停监测队列的状态,将符合条件的命令取出送走并释放空间。
以上仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (16)
1.一种命令队列控制方法,其特征在于,包括:
接收带有虚拟地址的命令,当所述命令满足预设的第一条件时,将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据;
当接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表时,根据所述页表得到该命令的物理地址,并更新该命令在所述命令队列中的存储数据;
当所述命令队列中该命令的存储数据满足预设的第二条件时,将该命令在所述命令队列中取出,其中,所述预设的第二条件为该命令为其对应的通道中最早的命令且该命令在所述命令队列中的存储数据包括物理地址。
2.如权利要求1所述的命令队列控制方法,其特征在于,在将该命令在所述命令队列中取出之后,还包括:
将与该命令处于相同通道的其他命令的排名均向前移动一位,其中所述排名为将同一通道中的命令按照命令队列接收命令的时间进行排序得到的;
当该通道中的其他命令满足预设的第二条件时,将该通道中的其他命令在所述命令队列中取出。
3.如权利要求1或2所述的命令队列控制方法,其特征在于,在接收带有虚拟地址的命令之后,还包括:
查询预设的映射查找表,判断所述映射查找表中所述虚拟地址对应的页表是否存在;
当所述虚拟地址对应的页表不存在时,判定所述命令满足预设的第一条件;
当所述虚拟地址对应的页表存在时,判断所述命令队列中是否已经存储有与所述命令来自相同通道的命令,当已经存储时,判定所述命令满足预设的第一条件。
4.如权利要求1或2所述的命令队列控制方法,其特征在于,在将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据之后,还包括:
判断所述命令队列中是否已经存储有包含所述虚拟地址的命令;
当没有存储时,向下级单元发出页表查找请求;
在更新该命令在所述命令队列中的存储数据之后,还包括:
更新所述命令队列中除该命令之外的包含所述虚拟地址的其他命令的存储数据。
5.如权利要求3所述的命令队列控制方法,其特征在于,在当所述映射查找表中所述虚拟地址对应的页表存在时,判断所述命令队列中是否已经存储有与所述命令来自相同通道的命令之后,还包括:
当所述命令队列中没有存储与所述命令来自相同通道的命令时,映射查找表发出返回所述命令并完成地址映射的指令。
6.如权利要求1或2所述的命令队列控制方法,其特征在于,在接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表之后,还包括:
将所述页表存储至所述映射查找表中。
7.如权利要求1或2所述的命令队列控制方法,其特征在于,所述命令队列为按内容寻址存储器结构。
8.一种命令队列控制电路,其特征在于,包括命令队列写入单元、命令队列更新单元及命令队列取出单元;
所述命令队列写入单元,用于接收带有虚拟地址的命令,当所述命令满足预设的第一条件时,将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据;
所述命令队列更新单元,用于当接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表时,根据所述页表得到该命令的物理地址,并更新该命令在所述命令队列中的存储数据;
所述命令队列取出单元,用于当所述命令队列中该命令的存储数据满足预设的第二条件时,将该命令在所述命令队列中取出,其中,所述预设的第二条件为该命令为其对应的通道中最早的命令且该命令在所述命令队列中的存储数据包括物理地址。
9.如权利要求8所述的命令队列控制电路,其特征在于,所述命令队列更新单元还用于:在将该命令在所述命令队列中取出之后,将与该命令处于相同通道的其他命令的排名均向前移动一位,其中所述排名为将同一通道中的命令按照命令队列接收命令的时间进行排序得到的;
所述命令队列取出单元,还用于当该通道中的其他命令满足预设的第二条件时,将该通道中的其他命令在所述命令队列中取出。
10.如权利要求8或9所述的命令队列控制电路,其特征在于:
所述命令队列写入单元,还用于在接收带有虚拟地址的命令之后,查询预设的映射查找表,判断所述映射查找表中所述虚拟地址对应的页表是否存在;
当所述虚拟地址对应的页表不存在时,判定所述命令满足预设的第一条件;
当所述虚拟地址对应的页表存在时,判断所述命令队列中是否已经存储有与所述命令来自相同通道的命令,当已经存储时,判定所述命令满足预设的第一条件。
11.如权利要求8或9所述的命令队列控制电路,其特征在于,还包括判断单元;
所述判断单元还用于:在将所述命令写入命令队列并生成所述命令在所述命令队列中的存储数据之后,判断所述命令队列中是否已经存储有包含所述虚拟地址的命令;当没有存储时,向下级单元发出页表查找请求;
所述命令队列更新单元还用于:在更新该命令在所述命令队列中的存储数据之后,更新所述命令队列中除该命令之外的包含所述虚拟地址的其他命令的存储数据。
12.如权利要求10所述的命令队列控制电路,其特征在于,所述命令队列写入单元还用于:在当所述映射查找表中所述虚拟地址对应的页表存在,且所述命令队列中没有存储与所述命令来自相同通道的命令时,发出返回所述命令并完成地址映射的指令。
13.如权利要求8或9所述的命令队列控制电路,其特征在于,所述命令队列更新单元,还用于:在接收到下级单元发送的与所述命令队列中的任一命令相匹配的页表之后,将所述页表存储至所述映射查找表中。
14.如权利要求8或9所述的命令队列控制电路,其特征在于,所述命令队列为按内容寻址存储器结构。
15.一种地址映射设备,包括映射查找表、命令队列、映射装置及权利要求8~14任一项所述的命令队列控制电路;
所述映射装置,用于当接收到在命令队列中取出的命令后,将所述命令完成虚拟地址到物理地址的映射。
16.如权利要求15所述的地址映射设备,其特征在于,所述映射装置还用于当接收到返回所述命令并完成地址映射的指令后,在所述映射查找表中查询得到与所述命令中的虚拟地址相匹配的物理地址,直接完成所述命令虚拟地址到物理地址的映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810469387.3A CN110502458B (zh) | 2018-05-16 | 2018-05-16 | 一种命令队列控制方法、控制电路及地址映射设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810469387.3A CN110502458B (zh) | 2018-05-16 | 2018-05-16 | 一种命令队列控制方法、控制电路及地址映射设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110502458A true CN110502458A (zh) | 2019-11-26 |
CN110502458B CN110502458B (zh) | 2021-10-15 |
Family
ID=68584740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810469387.3A Active CN110502458B (zh) | 2018-05-16 | 2018-05-16 | 一种命令队列控制方法、控制电路及地址映射设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502458B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101165666A (zh) * | 2006-10-17 | 2008-04-23 | 国际商业机器公司 | 在数据处理系统中建立地址转换的方法和装置 |
CN100495363C (zh) * | 2006-02-01 | 2009-06-03 | 国际商业机器公司 | 用于缺失情况下的缓存命中冲突处理的方法和系统 |
US20130212585A1 (en) * | 2012-02-10 | 2013-08-15 | Thang M. Tran | Data processing system operable in single and multi-thread modes and having multiple caches and method of operation |
US20150121046A1 (en) * | 2013-10-25 | 2015-04-30 | Advanced Micro Devices, Inc. | Ordering and bandwidth improvements for load and store unit and data cache |
-
2018
- 2018-05-16 CN CN201810469387.3A patent/CN110502458B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100495363C (zh) * | 2006-02-01 | 2009-06-03 | 国际商业机器公司 | 用于缺失情况下的缓存命中冲突处理的方法和系统 |
CN101165666A (zh) * | 2006-10-17 | 2008-04-23 | 国际商业机器公司 | 在数据处理系统中建立地址转换的方法和装置 |
US20130212585A1 (en) * | 2012-02-10 | 2013-08-15 | Thang M. Tran | Data processing system operable in single and multi-thread modes and having multiple caches and method of operation |
US20150121046A1 (en) * | 2013-10-25 | 2015-04-30 | Advanced Micro Devices, Inc. | Ordering and bandwidth improvements for load and store unit and data cache |
CN105765525A (zh) * | 2013-10-25 | 2016-07-13 | 超威半导体公司 | 加载和存储单元以及数据高速缓存的排序和带宽改进 |
Non-Patent Citations (1)
Title |
---|
刘军 等: "多流并发I/O结点实现技术研究", 《 电子计算机与外部设备》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110502458B (zh) | 2021-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105205009B (zh) | 一种基于大容量固态存储的地址映射方法及装置 | |
CN105094686B (zh) | 数据缓存方法、缓存和计算机系统 | |
CN100356348C (zh) | 一种支持处理器的功率操作模式的高速缓存存储器 | |
US7284095B2 (en) | Latency-aware replacement system and method for cache memories | |
US10628318B2 (en) | Cache sector usage prediction | |
US9792221B2 (en) | System and method for improving performance of read/write operations from a persistent memory device | |
US10380030B2 (en) | Caching of virtual to physical address translations | |
US6782453B2 (en) | Storing data in memory | |
JP6859361B2 (ja) | 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
CN109446117B (zh) | 一种固态硬盘页级闪存转换层设计方法 | |
CN108694127A (zh) | 用于在固态驱动器中实行高速缓存操作的装置、计算机程序产品和方法 | |
CN105378685B (zh) | 数据存储装置和用于给数据存储装置分配数据的方法 | |
US20160147670A1 (en) | Page cache device and method for efficient mapping | |
US20070079070A1 (en) | Cache controller | |
WO2024045586A1 (zh) | 支持simt架构的高速缓冲存储器及相应处理器 | |
CN109582600A (zh) | 一种数据处理方法及装置 | |
US12099451B2 (en) | Re-reference interval prediction (RRIP) with pseudo-LRU supplemental age information | |
US5530834A (en) | Set-associative cache memory having an enhanced LRU replacement strategy | |
US20080313407A1 (en) | Latency-aware replacement system and method for cache memories | |
CN103885890B (zh) | 高速缓冲存储器cache中cache块的替换处理方法和装置 | |
CN111124297B (zh) | 一种堆叠dram缓存的性能提升方法 | |
CN109669881B (zh) | 一种基于Cache空间预约算法的计算方法 | |
CN104378295B (zh) | 表项管理装置及表项管理方法 | |
CN110502458A (zh) | 一种命令队列控制方法、控制电路及地址映射设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |