CN116860665A - 由处理器执行的地址翻译方法及相关产品 - Google Patents
由处理器执行的地址翻译方法及相关产品 Download PDFInfo
- Publication number
- CN116860665A CN116860665A CN202310891442.9A CN202310891442A CN116860665A CN 116860665 A CN116860665 A CN 116860665A CN 202310891442 A CN202310891442 A CN 202310891442A CN 116860665 A CN116860665 A CN 116860665A
- Authority
- CN
- China
- Prior art keywords
- address
- request
- ptw
- page table
- translation
- 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.)
- Pending
Links
- 238000013519 translation Methods 0.000 title claims abstract description 227
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 49
- 230000014616 translation Effects 0.000 claims description 223
- 239000000872 buffer Substances 0.000 claims description 51
- 230000004044 response Effects 0.000 claims description 28
- 101150015860 MC1R gene Proteins 0.000 claims description 9
- 102100034216 Melanocyte-stimulating hormone receptor Human genes 0.000 claims description 9
- 238000003860 storage Methods 0.000 abstract description 18
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
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
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
技术领域
本公开一般地涉及计算机领域,尤其涉及存储管理领域。更具体地,本公开涉及由处理器执行的地址翻译方法、处理器、计算装置、芯片和板卡。
背景技术
在计算机技术领域,计算机操作***的重要职能之一是内存管理。在多进程操作***中,每个进程都有自己的虚拟地址空间,可以使用***规定范围内的任意虚拟地址(Virtual Address)。中央处理器CPU(Central Processing Unit)执行应用程序时所使用的地址是虚拟地址。操作***给进程分配内存时,需要把使用到的虚拟地址映射到物理地址(Physical Address),物理地址才是真正的物理内存访问地址。因此,要进行数据访问之前,需要先进行地址翻译(即,将虚拟地址翻译成实质存储数据的物理地址)。通过这种将地址区分为虚拟地址和物理地址的方式,可以简化程序编译,使编译器基于连续的、充足的虚拟地址空间来编译程序,并且不同进程的虚拟地址被分配到不同的物理地址,使得***能够同时运行多个进程,从而提高整个计算机***的运行效率。此外,由于应用程序可以使用但无法更改地址翻译,因此一个进程无法访问到另一个进程的内存内容,从而增加了***的安全性。
图1是一个示例地址翻译过程的示意图,示出了四级页表的地址翻译过程。如图1所示,一个虚拟地址被划分为几个地址段,从高位到低位分别表示为EXT、OFFSET_lvl4、OFFSET_lvl3、OFFSET_lvl2、OFFSET_lvl1、OFFSET_pg。在该示例中,最高虚拟地址段EXT没有被使用。在地址翻译过程中,虚拟地址段OFFSET_lvl4、OFFSET_lvl3、OFFSET_lvl2、OFFSET_lvl1分别被用作四级页表中的索引,即,虚拟地址段OFFSET_lvl4被用作第四级页表(最高级页表)中的索引,虚拟地址段OFFSET_lvl3被用作第三级页表中的索引,虚拟地址段OFFSET_lvl2被用作第二级页表中的索引,虚拟地址段OFFSET_lvl1被用作第一级页表中的索引。最高级页表(也即第四级页表)的初始地址存放在例如控制寄存器CR3中,其内容由操作***设定,应用程序无法更改。为了进行地址翻译,处理器使用OFFSET_lvl4作为索引在第四级页表(最高级页表)中找到该索引处的页表项,该页表项存放的内容就是第三级页表(下一级页表)的地址(也可以说是OFFSET_lvl4在第四级页表中指向第三级页表地址),然后使用OFFSET_lvl3作为索引在第三级页表中找到该索引处的页表项,该页表项的内容就是第二级页表(下一级页表)的地址(也可以说是OFFSET_lvl3在第三级页表中指向第二级页表地址),然后使用OFFSET_lvl2作为索引在第二级页表中找到该索引处的页表项,该页表项的内容就是第一级页表(下一级页表)的地址(也可以说是OFFSET_lvl2在第二级页表中指向第一级页表地址),然后使用OFFSET_lvl1作为索引在第一级页表中找到该索引处的页表项PTE(Page Table Entry),该页表项的内容是相应内存页的物理地址(也可以说是OFFSET_lvl1在第一级页表中指向内存页地址),它与虚拟地址中的最低地址段(即地址偏移OFFSET_pg)合并即可得到该虚拟地址对应的物理地址。由于该地址翻译过程包含从最高级页表到最低级页表的遍历,因此该过程也可以称为页表遍历。
本领域技术人员可以领会,图1中示出的虚拟地址只是示例,其它虚拟地址的最高地址段在页表遍历中也有可能在最高级页表中被用作索引。例如,在上述示例的一个变型中,总共有五级页表,且在地址翻译过程中,最高位虚拟地址段EXT在最高级页表中也被用作索引。
地址翻译是一个非常耗时的过程,对于多级页表,通常需要多次访问内存才能获得对应的物理地址。以图1所示的四级页表为例,需要访问内存4次才能获得对应的物理地址。因此,为了节省地址翻译时间,提升计算机***性能,可以在处理器核中设置一个硬件缓冲器,即,翻译后备缓冲器TLB(Translation Lookaside Buffer)来存放之前使用过的第一级页表项(PTE)。当需要进行地址翻译时,首先到TLB中查询是否有需要的PTE,如果命中,则可以立即获得对应的物理地址。TLB架构也可以是多级结构,最低一级TLB的尺寸最小且速度最快,当最低一级TLB没有命中时,再搜索下一级TLB。
尽管TLB能够减少很多地址翻译的时延,但是当地址翻译请求在TLB中未命中,还是避免不了进行页表遍历来进行地址翻译。为了减少页表遍历操作所需时间,通常为处理器核单独设置一个硬件页表遍历器PTW(Page Table Walker),该硬件页表遍历器可以设置在处理器核的内部或外部。通过使用硬件页表遍历器,可以快速遍历多级页表以获得最终的内存页物理地址。
发明内容
发明人认识到,虽然存在PTW这样的机制来减轻TLB未命中对性能的损失,但是页表遍历的延迟仍然很高,由此也增大了存储器访问的延迟。虽然该问题对于一般处理器都存在,但是对于最近出现的称为神经处理器NPU(Neural Processing Unit)的新型计算机处理器尤为突出。
NPU被布置用于复杂的深度学习模型和大规模数据集训练。经过研究,发明人发现,在NPU上进行地址翻译存在以下两个挑战。
(1)在NPU上具有大量突发的稀疏地址转换请求。一方面,当前的推荐***通常在兆兆字节规模的数据集上被训练,这导致了嵌入层的巨大尺寸,并使嵌入查找呈现出高度稀疏和不规则的内存访问模式。另一方面,NPU通常将权重和输入数据的循环拦截成小块,并通过对暂存存储器(SPM)进行双重缓冲,使访问延迟与计算时间重叠。在正常情况下,这些小块可以利用并行性,但在嵌入查找阶段,它们可能会在短时间内引发大量突发的地址翻译请求。
(2)NPU对长的地址翻译延迟很敏感,由于页表通常被实现为多级基数树(radixtree)(如x86-64),在地址翻译的关键路径中将要求多个内存引用。长的地址翻译延迟会降低乘累加运算利用率,并可能使一些时间敏感的任务无法执行。
本公开的一个目的在于消除或缓解至少上述页表遍历延迟高的技术问题。为了实现该目的,本公开的发明人提出并利用了翻译路径的概念。具体而言,发明人将从虚拟地址翻译的起点(即最高级页表地址)向终点(即内存页的物理地址)遍历的所有下一级页表的地址按遍历顺序的串连视为是该虚拟地址的翻译路径(例如,在图1的示例中,翻译路径是第三级页表的地址+第二级页表的地址+第一级页表的地址),换言之,翻译路径包括了虚拟地址中从高位到低位的连续N个地址段依次在从最高级页表开始的多级页表遍历中各自指向的N个页表地址(N>1)。进而,发明人想到在处理器中保存最近被请求翻译的虚拟地址的所述N个地址段和翻译路径的方案,由此使得在处理具有相同翻译路径(或其部分)的当前虚拟地址翻译请求时,可从该相同翻译路径(或其部分)中的最后页表地址直接开始页表遍历,从而缩短页表遍历的时间。
在本公开方案的实现中,翻译路径的保存被实现为所述N个页表地址的保存,翻译路径的比对也被转化为当前虚拟地址的所述N个地址段和保存的N个地址段的比对(因为其中相同地址段对应于相同页表地址,从而意味着相同翻译路径或其部分)。
根据本公开的第一方面,上述目的通过一种由处理器执行的地址翻译方法来实现,其中所述处理器包括页表遍历器和翻译路径缓存,所述翻译路径缓存中的条目用于保存最近被请求翻译的部分虚拟地址及其翻译路径,所述部分虚拟地址包括从高位到低位的连续N个地址段,N>=1,所述翻译路径包括对应于所述N个地址段依次在从最高级页表开始的多级页表遍历中各自指向的N个页表地址。所述方法包括:响应于地址翻译请求,将所述地址翻译请求中的虚拟地址与所述翻译路径缓存中的条目进行比对;响应于所述虚拟地址与所述翻译路径缓存中的一个或多个条目存在匹配,选择匹配前缀最长的条目作为匹配项;以及使用所述页表遍历器,从所述匹配项中最后匹配地址段指向的页表地址开始进行页表遍历。
根据本公开的第二方面,上述目的通过一种处理器来实现。所述处理器包括页表遍历单元,所述页表遍历单元包括页表遍历器和翻译路径缓存。所述翻译路径缓存中的条目用于保存最近被请求翻译的部分虚拟地址及其翻译路径,所述部分虚拟地址包括从高位到低位的连续N个地址段,N>=1,所述翻译路径包括对应于所述N个地址段依次在从最高级页表开始的多级页表遍历中各自指向的N个页表地址。所述页表遍历单元配置用于:响应于地址翻译请求,将所述地址翻译请求中的虚拟地址与所述翻译路径缓存中的条目进行比对;响应于所述虚拟地址与所述翻译路径缓存中的一个或多个条目存在匹配,选择匹配前缀最长的条目作为匹配项;以及使用所述页表遍历器从所述匹配项中最后匹配地址段指向的页表地址开始进行页表遍历。
根据本公开的第三方面,上述目的通过一种计算装置来实现。所述计算装置包括根据所述第二方面的处理器。
根据本公开的第四方面,上述目的通过一种芯片来实现。所述芯片包括根据所述第三方面所述的计算装置。
根据本公开的第五方面,上述目的通过一种板卡来实现。所述板卡包括根据所述第四方面所述的芯片。
通过如上所提供的地址翻译方法、处理器、计算装置、芯片和板卡,本公开实施例通过从保存的相同翻译路径(或其部分)中的最后页表地址直接开始页表遍历,能够缩短页表遍历的时间。进一步,在一些实施例中,通过在处理器的TLB中设置两个或更多访问端口,可以支持同时接收两个或更多的地址翻译请求,进而可并发处理所述两个或更多的地址翻译请求。更进一步地,在一些实施例中,通过在处理器中设置合并缓冲区以存储已递送给页表遍历器进行遍历但尚未返回页物理地址的页表遍历PTW请求,可以合并处理带有相邻虚拟地址的多个地址翻译请求,缩短整体地址翻译时间。
附图说明
通过参考附图的以下详细描述,本公开的上述和其它方面、特征和益处将变得更加显而易见。在附图中,使用相同的参考数字或字母来表示相同或等效的元件。附图被示出是为了方便更好理解本公开的实施例,并且不一定按比例绘制,其中:
图1是一个示例地址翻译过程的示意图;
图2是根据本公开一些实施例的处理器执行的方法的流程图;
图3示出页表遍历的一个具体示例;
图4示意性示出已保存一个条目的示例翻译路径缓存;
图5示意性示出已保存两个条目的示例翻译路径缓存;
图6示出本公开实施例的处理器的示例示意框图;
图7示出本公开实施例的板卡的结构图;
图8示出本公开实施例的组合处理装置的结构图。
具体实施方式
下文将参考附图更全面地描述本文的实施例。然而,本文的实施例可以以许多不同的形式来实施,并且不应被解释为限制所附权利要求的范围。
本文使用的术语仅用于描述特定实施例的目的,而非旨在进行限制。如本文所使用的,指示对象的名词可指单数个对象,也可指复数个对象,除非上下文另有明确指示。将进一步理解的是,术语“包括”、“包含”和/或“含有”在本文中使用时指定所述特征、步骤、操作、元件和/或组件的存在,但并不排除一个或多个其它特征、步骤、操作、元件、组件和/或其组合的存在或添加。
此外,在本文中使用诸如“第一”、“第二”和“第三”等序数词来修饰对象本身并不意味着一个对象相对于另一个对象的任何优先级、优先顺序或次序,也不意味着方法的动作被执行的时间顺序,而是仅用作将具有特定名称的一个对象与具有相同名称的另一对象进行区分的标签以区分这些对象。
除非另有定义,否则本文中使用的所有术语(包括技术术语和科学术语)具有与一般理解相同的含义。将进一步理解,本文中使用的术语应被解释为具有与其在本说明书和相关技术领域的上下文中的含义一致的含义,并且不应以限制性的意义被解读,除非在本文中明确如此被定义。
图2是根据本公开一些实施例的由处理器执行的地址翻译方法200的流程图,其中所述处理器包括页表遍历器和翻译路径缓存,所述翻译路径缓存中的条目用于保存最近被请求翻译的部分虚拟地址及其翻译路径,所述部分虚拟地址包括从高位到低位的连续N个地址段,N>=1,所述翻译路径包括对应于所述N个地址段依次在从最高级页表开始的多级页表遍历中各自指向的N个页表地址。
方法200包括以下步骤:响应于地址翻译请求,将所述地址翻译请求中的虚拟地址与所述翻译路径缓存中的条目进行比对的步骤201;响应于所述虚拟地址与所述翻译路径缓存中的一个或多个条目存在匹配,选择匹配前缀最长的条目作为匹配项的步骤202;以及使用所述页表遍历器,从所述匹配项中最后匹配地址段指向的页表地址开始进行页表遍历的步骤203。
接下来,方法200及其各个实施例将结合图3至图5被进一步描述。可理解的是,虽然图3至图5示出关于四级页表的示例,但是本公开方案中的页表级数不限于四,而可以是大于或等于二的任何数量。另外,虽然某些实施例提到了对NPU的特别考虑,但是本申请的方案普遍适用于例如中央处理器CPU(Central Processing Unit),图形处理器GPU(Graphics Processing Unit)、张量处理器TPU(Tensor Processing Unit)和智能处理器IPU(Intelligent Processing Unit)等等各种处理器,只要在它们的地址翻译过程中也存在页表遍历机制所带来的存储器访问延迟问题。
图3示出页表遍历的一个具体示例,其中涉及四级页表。假设该示例的虚拟地址中参与页表遍历的连续多个地址段分别是0b9、00c、0ae、0c2(以十六进制数来表示)。
在通常的页表遍历中,如图3所示,在从控制寄存器CR3取得第四级页表(最高级页表)的地址613之后,处理器使用地址段0b9作为索引在第四级页表中找到该索引处的页表项,该页表项存放的十六进制数042就是第三级页表(下一级页表)的地址,也可以说是地址段0b9在第四级页表中指向第三级页表地址042。值得注意的是,在图3的示例中,页表地址是用物理页号PPN(Physical Page Number)来表示的,因为在PPN之后补齐***特定位数的零就可以得到完整的页表地址。本领域技术人员可以明白,用PPN来表示页表地址只是示例,页表地址还可以有多种其它表示方式,本公开的方案在此方面没有限制。
在得到第三级页表的地址之后,处理器使用地址段00c作为索引在第三级页表中找到该索引处的页表项,该页表项存放的十六进制数125就是第二级页表(下一级页表)的地址(也可以说是地址段00c在第三级页表中指向第二级页表地址125),然后使用地址段0ae作为索引在第二级页表中找到该索引处的页表项,该页表项存放的十六进制数508就是第一级页表(下一级页表)的地址(也可以说是地址段0ae在第二级页表中指向第一级页表地址508),然后使用地址段0c2作为索引在第一级页表中找到该索引处的页表项PTE,该页表项存放的十六进制数123是相应内存页的物理地址(也可以说是地址段0c2在第一级页表中指向内存页表地址123),它与虚拟地址中的最低地址段(未示出)合并即可得到该虚拟地址对应的物理地址。
在图3的示例中,按照本公开的定义,该虚拟地址中从高位到低位的连续三个地址段0b9、00c、0ae(不包括指向内存页的虚拟地址段0c2)是该虚拟地址的所述N个地址段,其分别对应于所述N个地址段依次在从最高级页表开始的多级页表遍历中各自指向的N个页表地址,即,042、125、508,这些页表地址的串联形成了该虚拟地址的翻译路径。
现假设图3的示例虚拟地址是处理器要处理的地址翻译请求中的虚拟地址,并且该地址翻译请求将被处理器按照本公开实施例的方法进行处理,以及其中处理器包括页表遍历器和翻译路径缓存,该缓存中的条目用于保存最近被请求翻译的部分虚拟地址及其翻译路径,所述部分虚拟地址包括从高位到低位的连续N个地址段(N>=1),所述翻译路径包括对应于所述N个地址段依次在从最高级页表开始的多级页表遍历中各自指向的N个页表地址。还假设此时翻译路径缓存中未保存任何条目。
首先,处理器将该地址翻译请求中的虚拟地址与翻译路径缓存中的条目进行比对。由于此时翻译路径缓存中未保存任何条目,因此处理器直接确定该虚拟地址与翻译路径缓存中任何条目都不存在匹配(所述匹配是指该虚拟地址中所述N个地址段的和所比对的条目中N个地址段的前一个或多个地址段完全相同,或者说地址前缀相同),从而处理器使用页表遍历器从最高级页表地址613开始进行上述页表遍历,以找到该虚拟地址对应的物理地址。
在一个实施例中,在找到该物理地址之后,响应于该虚拟地址与翻译路径缓存中的任何条目不存在完全匹配,处理器将该虚拟地址的所述N个地址段(即0b9、00c、0ae)及其对应的N个页表地址(即042、125、508)保存在翻译路径缓存的条目中,其中所述完全匹配是指虚拟地址中的所述N个地址段与翻译路径缓存中的一个条目的N个地址段完全对应相同。
图4示意性示出已保存该条目的示例翻译路径缓存,该条目内容包括所述N个地址段0b9/00c/0ae(以“索引”字段形式存在)及其对应的N个页表地址042/125/508(以“翻译路径”字段形式存在)。
在完成该地址翻译请求的处理之后,假设处理器又接收到需要处理的另一地址翻译请求(未示出),且其中的虚拟地址的所述N个地址段值是0b9、00c和0ad。
按照本公开实施例的方法,处理器首先将所述另一地址翻译请求中的虚拟地址与翻译路径缓存中的条目进行比对。由于此时翻译路径缓存中仅有一个条目,因此所述比对仅涉及该虚拟地址和该条目。然后,处理器发现该虚拟地址中的所述N个地址段的前两个地址段0b9和00c和该条目中的N个地址段中的前两个地址段0b9和00c完全相同(参见图4),即,该虚拟地址与翻译路径缓存中的该条目存在匹配。
响应于该匹配,处理器选择该条目作为匹配项,并且使用页表遍历器从该匹配项中最后匹配地址段(00c)相对应的页表地址(125)开始进行页表遍历(参见图3),以找到所述虚拟地址对应的物理地址。换言之,该虚拟地址的翻译路径和保存的翻译路径有部分相同,则无需在该相同翻译路径部分上进行页表遍历,而是从该相同翻译路径部分中的最后页表地址直接开始页表遍历,从而缩短页表遍历的时间。
在一个实施例中,在找到该物理地址之后,响应于该虚拟地址与翻译路径缓存中的任何条目不存在完全匹配(如上所述,该虚拟地址与该缓存中的现有条目仅存在部分匹配),处理器将该虚拟地址的所述N个地址段(即0b9、00c和0ad)及其对应的N个页表地址(即042、125、378)保存在翻译路径缓存的条目中。图5示意性示出已保存该条目和之前条目的示例翻译路径缓存,该条目内容包括所述N个地址段0b9/00c/0ad(以“索引”字段形式存在)及其对应的N个页表地址042/125/378(以“翻译路径”字段形式存在)。
在完成所述另一地址翻译请求的处理之后,假设处理器又接收到需要处理的又一地址翻译请求(未示出),且其中的虚拟地址的所述N个地址段值是0b9、00c和0ae。
按照本公开实施例的方法,处理器首先将所述又一地址翻译请求中的虚拟地址与翻译路径缓存中的条目进行比对。由于此时翻译路径缓存中已有两个条目,处理器经过所述比对发现该虚拟地址中的所述N个地址段0b9、00c和0ae和第一个条目中的N个地址段完全相同,且所述N个地址段中的前两个地址段0b9和00c与第二个条目中的N个地址的前两个地址段完全相同(参见图5)。响应于该虚拟地址与翻译路径缓存的这两个条目存在匹配,处理器选择匹配前缀最长的条目(即第一个条目)作为匹配项,并且使用页表遍历器从所述匹配项中最后匹配地址段(即,地址段0ae)相对应的页表地址(即508)开始进行页表遍历(参见图3),以找到所述虚拟地址对应的物理地址。换言之,该虚拟地址的翻译路径和保存的某个翻译路径完全相同,则无需在该相同翻译路径上进行页表遍历,而是从该相同翻译路径中的最后页表地址直接开始页表遍历,从而缩短页表遍历的时间。
在找到该物理地址之后,由于该虚拟地址与翻译路径缓存中的第一个条目存在完全匹配,处理器不会将所述又一地址翻译请求中的虚拟地址的所述N个地址段及其对应的N个页表地址保存在翻译路径缓存的条目中。
本领域技术人员可以明白,在翻译路径缓存中保存的条目数量未达到该缓存容量上限之前,将所述N个地址段及其对应的N个页表地址保存在翻译路径缓存的条目中是指在翻译路径缓存中新建条目来进行所述保存;在翻译路径缓存中保存的条目数量达到该缓存容量上限之后,如果处理器还需要在该缓存中保存新条目,则可以将该新条目覆盖该缓冲中最先保存的条目,或者覆盖与该新条目最相似的条目。本公开的方案在此方面没有限制。本领域技术人员还明白,虽然图4和图5的示例翻译路径缓存被示为只能容纳4个条目,但是翻译路径缓存的容量上限可以根据本公开方案所应用的场合和要求而被设置为任何适合的量。本公开的方案在此方面没有限制。
在一个实施例中,翻译路径缓存位于页表遍历器中。然而,本领域技术人员完全明白,在其它实施例中,翻译路径缓存也可以位于页表遍历器之外。本公开的方案在此方面没有限制。
在一个实施例中,处理器还包括翻译后备缓冲器TLB,并且所述方法是响应于所述地址翻译请求在所述TLB中未命中而被执行的。然而,本领域技术人员完全明白,即使处理器中没有TLB,本公开的方案依然可以适用。
在某些处理器(例如NPU)中,地址翻译的瓶颈重点在于并发度不够大,而不在于未充分利用引用局部性。因此,在进一步的实施例中,所述TLB可以具有两个或更多访问端口,以支持通过所述两个或更多访问端口同时接收两个或更多的地址翻译请求,以及并发处理所述两个或更多的地址翻译请求。
如果处理器能同时接收并且并发处理两个或更多的地址翻译请求,则处理器可能想要跟踪在TLB中未命中的未完成地址翻译请求的状态,以便能够实现命中的地址翻译请求和未命中的地址翻译请求的重叠处理和两个未命中的地址翻译请求的重叠处理、以及乱序返回地址翻译请求结果的功能。因此,在进一步的实施例中,处理器还包括未命中状态处置寄存器MSHR,用于缓存任何未命中TLB的地址翻译请求直到完成该请求的地址翻译。
本公开的发明人还发现,指令、常规数据和离散数据通常展现出不同的引用局部性。因此,在一个实施例中,所述TLB包括专用于指令地址的指令翻译后备缓冲器ITLB、专用于常规数据地址的数据翻译后备缓冲器DTLB1和专用于离散数据地址的数据翻译后备缓冲器DTLB2,并且其中所述DTLB2具有两个或更多访问端口,每个访问端口覆盖一部分地址空间。
本公开的发明人还发现,18%–44%的地址翻译请求的虚拟地址和最近某个地址翻译请求的虚拟地址对应于同一内存页,或者说前者的虚拟地址和后者的虚拟地址相邻。这些带有相邻虚拟地址的地址翻译请求可能引发不必要的重复页表遍历,因为这些页表遍历都得到同一个内存页地址,只不过是以该内存页地址加上各自的地址偏移得到各自对应的物理地址。虽然对于这些地址翻译请求的页表遍历,本公开的上述方法可以缩短页表遍历的时间(因为翻译路径与最近保存的翻译路径相同),但还是需要在一级页表中获取同一内存页的地址,因而依然引发了不必要的重复操作。为了避免重复处理这些带有相邻虚拟地址的地址翻译请求,发明人想到合并处理这些地址翻译请求。具体来说,在一个实施例中,处理器还包括合并缓冲区,所述合并缓冲区内存储有已递送给所述页表遍历器进行遍历但尚未返回页物理地址的页表遍历PTW请求,并且所述方法还包括:响应于接收到新的PTW请求,判断所述新的PTW请求与所述合并缓冲区内的任一已存储PTW请求是否请求相同页;响应于确定所述新的PTW请求与一已存储PTW请求请求相同页,将所述新的PTW请求存储到所述合并缓冲区中与请求相同页的所述已存储PTW请求关联的合并项中;以及等待所述请求相同页的所述已存储PTW请求的页表遍历返回结果。
在进一步的实施例中,判断所述新的PTW请求与所述合并缓冲区内的任一已存储PTW请求是否请求相同页包括:将所述新的PTW请求的虚拟地址与任一已存储PTW请求的虚拟地址中除最低地址段之外的其余地址段进行比较;若所述其余地址段均相同,则确定所述新的PTW请求与一已存储PTW请求请求相同页。
在进一步的实施例中,所述方法还包括:响应于确定所述新的PTW请求不与任一已存储PTW请求请求相同页,在所述合并缓冲区中存储与所述新的PTW请求关联的新合并项;以及向所述页表遍历器递送所述新的PTW请求。
在进一步的实施例中,所述方法还包括:响应于所述页表遍历器返回针对一已存储PTW请求的页物理地址,基于所述页物理地址为与所述已存储PTW请求关联的合并项中的所有PTW请求分别生成页表遍历结果。
在进一步的实施例中,所述基于所述页物理地址为与所述已存储PTW请求关联的合并项中的所有PTW请求分别生成页表遍历结果包括:针对合并项中的每个PTW请求,基于所述页物理地址和所述PTW请求的虚拟地址中的最低地址段生成与所述虚拟地址对应的物理地址,作为所述PTW请求的页表遍历结果。
本领域技术人员可以理解,带有相邻虚拟地址的第二地址翻译请求在被处理完成之后,无需从合并缓冲区中被删除,并且在下次需要存储另一个带有相邻虚拟地址的地址翻译请求时可以直接被覆盖。
显然,合并缓冲区越大,可挂起的带有相邻虚拟地址的地址翻译请求就越多,且避免的重复页表遍历操作就越多。然而,仅针对少数极端情况扩大合并缓冲区是浪费资源的。本公开的发明人通过实验发现,能够存储8到12个条目的合并缓冲区足以应付大多数情况下的带有相邻虚拟地址的地址翻译请求。因此,在进一步的实施例中,合并缓冲区的容量上限是8、9、10、11或12。
在进一步的实施例中,合并缓冲区位于所述页表遍历器中。然而,本领域技术人员完全明白,在其它实施例中,合并缓冲区也可以位于页表遍历器之外。本公开的方案在此方面没有限制。
相应地,本公开的实施例还提供一种处理器,包括页表遍历单元,所述页表遍历单元包括页表遍历器和翻译路径缓存,其中:所述翻译路径缓存中的条目用于保存最近被请求翻译的虚拟地址及其翻译路径,所述虚拟地址包括从高位到低位的连续N个地址段,N>1,所述翻译路径包括对应于所述N个地址段依次在从最高级页表开始的多级页表遍历中各自指向的N个页表地址;所述页表遍历单元配置用于:响应于地址翻译请求,将所述地址翻译请求中的虚拟地址与所述翻译路径缓存中的条目进行比对;响应于所述虚拟地址与所述翻译路径缓存中的一个或多个条目存在匹配,选择匹配前缀最长的条目作为匹配项;以及使用所述页表遍历器从所述匹配项中最后匹配地址段指向的页表地址开始进行页表遍历。所述处理器的各个实施例与上述方法的各个实施例相对应,因此不在此重复描述。
图6示出本公开实施例的处理器600的示例示意框图。在该示例中,页表遍历单元604包括合并缓冲区605、翻译路径缓存606和页表遍历器607,且翻译后备单元601包括TLB602和MSHR 603。然而,如上所述,本领域技术人员完全明白,合并缓冲区605可位于页表遍历单元604的外部,MSHR 603也可以位于翻译后备单元601的外部。本公开的方案在此方面没有限制。在一个实施例中,所述处理器也可以在没有页表遍历单元604的情况下包括合并缓冲区605、翻译路径缓存606和页表遍历器607。在一个实施例中,所述处理器也可以在没有翻译后备单元601的情况下包括TLB 602和MSHR 603。本公开的方案在此方面没有限制。本领域技术人员还明白,TLB 602、MSHR 603和合并缓冲区605中的一个或多个在所述处理器的某些实施例中可以不存在(如上所述)。在一个实施例中,翻译路径缓存606与页表遍历器607的物理位置相邻或相近。在一个实施例中,合并缓冲区605与页表遍历器607的物理位置相邻或相近。
另外,虽然图6的处理器示例中仅示出一个翻译后备单元、一个TLB、一个MSHR、一个页表遍历单元、一个页表遍历器、一个合并缓冲区和一个翻译路径缓存,但是本公开实施例的处理器可包括一个或多个翻译后备单元、一个或多个TLB、一个或多个MSHR、一个或多个页表遍历单元、一个或多个页表遍历器、一个或多个合并缓冲区以及一个或多个翻译路径缓存。本公开的方案在此方面没有限制。
应当理解,框图和/或流程图图示的框以及框图和/或者流程图图示中的框的组合可以通过计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机和/或其它可编程数据处理设备的处理器,使得经由所述计算机和/或者所述其它可编程的数据处理设备的处理器而被执行的所述指令创建用于实现框图和/或流程图的框中指定的功能/动作的部件。
还应理解,流程图的框中所示的功能/动作可能并不以图示中所示顺序的顺序来发生。例如,取决于所涉及的功能/动作,连续显示的两个框可能实际上基本同时被执行,或者这些框有时可能以相反的顺序被执行。尽管一些图可能包括通信路径上的箭头以示出通信的主要方向,但是应当理解,通信可能在与所描绘的箭头相反的方向上发生。
此外,本公开的方案可以采取存储器上的计算机程序的形式,所述存储器具有在介质中实施的计算机可用或计算机可读程序代码,以供指令执行***使用或与指令执行***结合使用。在本文档的上下文中,存储器可以是可包含、存储或适于传送程序以供指令执行***、设备或装置使用或与之结合使用的任何介质。
本公开由此还提供了一种其上已存储指令的机器可读存储介质(未示出),所述指令在处理器上被执行时使得所述处理器执行结合上述实施例描述的用于加快处理地址翻译请求的方法。
图7示出本披露实施例的一种板卡70的结构示意图。如图7所示,板卡70包括芯片701,其是一种***级芯片(System on Chip,SoC),或称片上***,集成有一个或多个组合处理装置,组合处理装置是一种人工智能运算单元,用以支持各类深度学***台的存储能力和计算能力有很高的要求,此实施例的板卡70适用在云端智能应用,具有庞大的片外存储、片上存储和强大的计算能力。
芯片701通过对外接口装置702与外部设备703相连接。外部设备703例如是服务器、计算机、摄像头、显示器、鼠标、键盘、网卡或wifi接口等。待处理的数据可以由外部设备703通过对外接口装置702传递至芯片701。芯片701的计算结果可以经由对外接口装置702传送回外部设备703。根据不同的应用场景,对外接口装置702可以具有不同的接口形式,例如PCIe接口等。
板卡70还包括用于存储数据的存储器件704,其包括一个或多个存储单元705。存储器件704通过总线与控制器件706和芯片701进行连接和数据传输。板卡70中的控制器件706配置用于对芯片701的状态进行调控。为此,在一个应用场景中,控制器件706可以包括单片机(Micro Controller Unit,MCU)。
图8是示出此实施例的芯片701中的组合处理装置的结构图。如图8中所示,组合处理装置80包括计算装置801、接口装置802、处理装置803和存储装置804。
计算装置801配置成执行用户指定的操作,主要实现为单核智能处理器或者多核智能处理器,用以执行深度学习或机器学习的计算,其可以通过接口装置802与处理装置803进行交互,以共同完成用户指定的操作。
接口装置802用于在计算装置801与处理装置803间传输数据和控制指令。例如,计算装置801可以经由接口装置802从处理装置803中获取输入数据,写入计算装置801片上的存储装置。进一步,计算装置801可以经由接口装置802从处理装置803中获取控制指令,写入计算装置801片上的控制缓存中。替代地或可选地,接口装置802也可以读取计算装置801的存储装置中的数据并传输给处理装置803。
处理装置803作为通用的处理装置,执行包括但不限于数据搬运、对计算装置801的开启和/或停止等基本控制。根据实现方式的不同,处理装置803可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或其他通用和/或专用处理器中的一种或多种类型的处理器,这些处理器包括但不限于数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算装置801而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算装置801和处理装置803整合共同考虑时,二者视为形成异构多核结构。
存储装置804用以存储待处理的数据,其可以是DRAM,为DDR内存,大小通常为16G或更大,用于保存计算装置801和/或处理装置803的数据。
在计算装置801运行神经网络时,一般首先需要利用处理装置803对神经网络进行编译得到可执行文件,该可执行文件包含设备信息,即可执行文件需在异构计算机***中的哪一设备上执行。可执行文件被汇编链接后可得到神经网络的可执行程序,并将该可执行程序存储在存储装置804中。
处理装置803可以从可执行程序的存储位置读取可执行程序,并根据该可执行程序得到程序的多个任务。这些任务经接口装置802被分发至计算装置801上执行,最终获得运算结果。
根据上述结合图7和图8的描述,本领域技术人员可以理解本披露也公开了一种电子设备或装置,其可以包括一个或多个上述板卡、一个或多个上述芯片和/或一个或多个上述组合处理装置。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个***,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本披露的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本披露实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如CPU、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
虽然本文已经示出和描述了本披露的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本披露思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本披露的过程中,可以采用对本文所描述的本披露实施例的各种替代方案。所附权利要求书旨在限定本披露的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。
Claims (27)
1.一种由处理器执行的地址翻译方法,其中所述处理器包括页表遍历器和翻译路径缓存,所述翻译路径缓存中的条目用于保存最近被请求翻译的部分虚拟地址及其翻译路径,所述部分虚拟地址包括从高位到低位的连续N个地址段,N>=1,所述翻译路径包括对应于所述N个地址段依次在从最高级页表开始的多级页表遍历中各自指向的N个页表地址,所述方法包括:
响应于地址翻译请求,将所述地址翻译请求中的虚拟地址与所述翻译路径缓存中的条目进行比对;
响应于所述虚拟地址与所述翻译路径缓存中的一个或多个条目存在匹配,选择匹配前缀最长的条目作为匹配项;以及
使用所述页表遍历器,从所述匹配项中最后匹配地址段指向的页表地址开始进行页表遍历。
2.根据权利要求1所述的方法,其中所述方法还包括:
响应于所述虚拟地址与所述翻译路径缓存中的任一条目不存在完全匹配,将所述虚拟地址的所述N个地址段及其翻译路径保存在所述翻译路径缓存中,其中所述完全匹配是指所述虚拟地址中的所述N个地址段与所述翻译路径缓存中的一个条目的N个地址段完全对应相同。
3.根据权利要求1-2中任一项所述的方法,其中所述处理器还包括翻译后备缓冲器TLB,并且所述方法是响应于所述地址翻译请求在所述TLB中未命中而被执行的。
4.根据权利要求3所述的方法,其中所述TLB具有两个或更多访问端口,以支持通过所述两个或更多访问端口同时接收两个或更多的地址翻译请求,以及并发处理所述两个或更多的地址翻译请求。
5.根据权利要求4所述的方法,其中所述处理器还包括未命中状态处置寄存器MSHR,用于缓存任何未命中TLB的地址翻译请求直到完成该请求的地址翻译。
6.根据权利要求3-5中任一项所述的方法,其中所述TLB包括专用于指令地址的指令翻译后备缓冲器ITLB、专用于常规数据地址的数据翻译后备缓冲器DTLB1和专用于离散数据地址的数据翻译后备缓冲器DTLB2,并且其中所述DTLB2具有两个或更多访问端口,每个访问端口覆盖一部分地址空间。
7.根据权利要求1-6中任一项所述的方法,其中所述处理器还包括合并缓冲区,所述合并缓冲区内存储有已递送给所述页表遍历器进行遍历但尚未返回页物理地址的页表遍历PTW请求,并且所述方法还包括:
响应于接收到新的PTW请求,判断所述新的PTW请求与所述合并缓冲区内的任一已存储PTW请求是否请求相同页;以及
响应于确定所述新的PTW请求与一已存储PTW请求请求相同页,将所述新的PTW请求存储到所述合并缓冲区中与请求相同页的所述已存储PTW请求关联的合并项中;以及
等待所述请求相同页的所述已存储PTW请求的页表遍历返回结果。
8.根据权利要求7所述的方法,其中判断所述新的PTW请求与所述合并缓冲区内的任一已存储PTW请求是否请求相同页包括:
将所述新的PTW请求的虚拟地址与任一已存储PTW请求的虚拟地址中除最低地址段之外的其余地址段进行比较;
若所述其余地址段均相同,则确定所述新的PTW请求与一已存储PTW请求请求相同页。
9.根据权利要求7-8中任一项所述的方法,其中所述方法还包括:
响应于确定所述新的PTW请求不与任一已存储PTW请求请求相同页,在所述合并缓冲区中存储与所述新的PTW请求关联的新合并项;以及
向所述页表遍历器递送所述新的PTW请求。
10.根据权利要求7-9中任一项所述的方法,其中所述方法还包括:
响应于所述页表遍历器返回针对一已存储PTW请求的页物理地址,基于所述页物理地址为与所述已存储PTW请求关联的合并项中的所有PTW请求分别生成页表遍历结果。
11.根据权利要求10所述的方法,其中所述基于所述页物理地址为与所述已存储PTW请求关联的合并项中的所有PTW请求分别生成页表遍历结果包括:
针对合并项中的每个PTW请求,基于所述页物理地址和所述PTW请求的虚拟地址中的最低地址段生成与所述虚拟地址对应的物理地址,作为所述PTW请求的页表遍历结果。
12.一种处理器,包括页表遍历单元,所述页表遍历单元包括页表遍历器和翻译路径缓存,其中:
所述翻译路径缓存中的条目用于保存最近被请求翻译的部分虚拟地址及其翻译路径,所述部分虚拟地址包括从高位到低位的连续N个地址段,N>=1,所述翻译路径包括对应于所述N个地址段依次在从最高级页表开始的多级页表遍历中各自指向的N个页表地址;
所述页表遍历单元配置用于:
响应于地址翻译请求,将所述地址翻译请求中的虚拟地址与所述翻译路径缓存中的条目进行比对;
响应于所述虚拟地址与所述翻译路径缓存中的一个或多个条目存在匹配,选择匹配前缀最长的条目作为匹配项;以及
使用所述页表遍历器从所述匹配项中最后匹配地址段指向的页表地址开始进行页表遍历。
13.根据权利要求12所述的处理器,其中所述页表遍历单元进一步配置用于:
响应于所述虚拟地址与所述翻译路径缓存中的任一条目不存在完全匹配,将所述虚拟地址的所述N个地址段及其翻译路径保存在所述翻译路径缓存中,其中所述完全匹配是指所述虚拟地址中的所述N个地址段与所述翻译路径缓存中的一个条目的N个地址段完全对应相同。
14.根据权利要求12-13中任一项所述的处理器,其中所述翻译路径缓存与所述页表遍历器的物理位置相邻或相近。
15.根据权利要求12-14中任一项所述的处理器,还包括翻译后备单元,所述翻译后备单元包括翻译后备缓冲器TLB,并且所述地址翻译请求是响应于所述地址翻译请求在所述TLB中未命中而传递给所述页表遍历单元。
16.根据权利要求15所述的处理器,其中所述TLB具有两个或更多端口,以支持通过所述两个或更多访问端口同时接收两个或更多的地址翻译请求,以及并发处理所述两个或更多的地址翻译请求。
17.根据权利要求16所述的处理器,其中所述翻译后备单元还包括未命中状态处置寄存器MSHR,用于缓存任何未命中TLB的地址翻译请求直到完成该请求的地址翻译。
18.根据权利要求16-17中任一项所述的处理器,其中所述TLB包括专用于指令地址的指令翻译后备缓冲器ITLB、专用于常规数据地址的数据翻译后备缓冲器DTLB1和专用于离散数据地址的数据翻译后备缓冲器DTLB2,并且其中所述DTLB2具有两个或更多访问端口,每个访问端口覆盖一部分地址空间。
19.根据权利要求12-18中任一项所述的处理器,其中所述页表遍历单元还包括合并缓冲区,所述合并缓冲区内存储有已递送给所述页表遍历器进行遍历但尚未返回页物理地址的页表遍历PTW请求,并且所述页表遍历单元进一步配置用于:
响应于接收到新的PTW请求,判断所述新的PTW请求与所述合并缓冲区内的任一已存储PTW请求是否请求相同页;以及
响应于确定所述新的PTW请求与一已存储PTW请求请求相同页,将所述新的PTW请求存储到所述合并缓冲区中与请求相同页的所述已存储PTW请求关联的合并项中;以及
等待所述请求相同页的所述已存储PTW请求的页表遍历返回结果。
20.根据权利要求19所述的处理器,其中所述页表遍历单元进一步配置用于按如下判断所述新的PTW请求与所述合并缓冲区内的任一已存储PTW请求是否请求相同页:
将所述新的PTW请求的虚拟地址与任一已存储PTW请求的虚拟地址中除最低地址段之外的其余地址段进行比较;
若所述其余地址段均相同,则确定所述新的PTW请求与一已存储PTW请求请求相同页。
21.根据权利要求19-20中任一项所述的处理器,其中所述页表遍历单元进一步配置用于:
响应于确定所述新的PTW请求不与任一已存储PTW请求请求相同页,在所述合并缓冲区中存储与所述新的PTW请求关联的新合并项;以及
向所述页表遍历器递送所述新的PTW请求。
22.根据权利要求19-21中任一项所述的处理器,其中所述页表遍历单元进一步配置用于:
响应于所述页表遍历器返回针对一已存储PTW请求的页物理地址,基于所述页物理地址为与所述已存储PTW请求关联的合并项中的所有PTW请求分别生成页表遍历结果。
23.根据权利要求22所述的处理器,其中所述页表遍历单元进一步配置用于按如下为与所述已存储PTW请求关联的合并项中的所有PTW请求分别生成页表遍历结果:
针对合并项中的每个PTW请求,基于所述页物理地址和所述PTW请求的虚拟地址中的最低地址段生成与所述虚拟地址对应的物理地址,作为所述PTW请求的页表遍历结果。
24.根据权利要求19-23中任一项所述的处理器,其中所述合并缓冲区与所述页表遍历器的物理位置相邻或相近。
25.一种计算装置,包括根据权利要求12-24任一所述的处理器。
26.一种芯片,包括根据权利要求25所述的计算装置。
27.一种板卡,包括根据权利要求26所述的芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310891442.9A CN116860665A (zh) | 2023-07-19 | 2023-07-19 | 由处理器执行的地址翻译方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310891442.9A CN116860665A (zh) | 2023-07-19 | 2023-07-19 | 由处理器执行的地址翻译方法及相关产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116860665A true CN116860665A (zh) | 2023-10-10 |
Family
ID=88226675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310891442.9A Pending CN116860665A (zh) | 2023-07-19 | 2023-07-19 | 由处理器执行的地址翻译方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116860665A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171065A (zh) * | 2023-11-02 | 2023-12-05 | 摩尔线程智能科技(北京)有限责任公司 | 地址管理方法、装置、电子设备及存储介质 |
CN117851292A (zh) * | 2024-03-07 | 2024-04-09 | 北京象帝先计算技术有限公司 | 集成电路***、组件、设备及内存管理方法 |
-
2023
- 2023-07-19 CN CN202310891442.9A patent/CN116860665A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171065A (zh) * | 2023-11-02 | 2023-12-05 | 摩尔线程智能科技(北京)有限责任公司 | 地址管理方法、装置、电子设备及存储介质 |
CN117171065B (zh) * | 2023-11-02 | 2024-03-01 | 摩尔线程智能科技(北京)有限责任公司 | 地址管理方法、装置、电子设备及存储介质 |
CN117851292A (zh) * | 2024-03-07 | 2024-04-09 | 北京象帝先计算技术有限公司 | 集成电路***、组件、设备及内存管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10176099B2 (en) | Using data pattern to mark cache lines as invalid | |
US7447868B2 (en) | Using vector processors to accelerate cache lookups | |
US8832350B2 (en) | Method and apparatus for efficient memory bank utilization in multi-threaded packet processors | |
US7089398B2 (en) | Address translation using a page size tag | |
US10372618B2 (en) | Apparatus and method for maintaining address translation data within an address translation cache | |
CN116860665A (zh) | 由处理器执行的地址翻译方法及相关产品 | |
US8370575B2 (en) | Optimized software cache lookup for SIMD architectures | |
US20160267013A1 (en) | Techniques to prelink software to improve memory de-duplication in a virtual system | |
US10579522B2 (en) | Method and device for accessing a cache memory | |
JP2005174341A (ja) | 種々のキャッシュ・レベルにおける連想セットの重畳一致グループを有するマルチレベル・キャッシュ | |
US20210089451A1 (en) | Storage management apparatus, storage management method, processor, and computer system | |
US9075746B2 (en) | Utility and lifetime based cache replacement policy | |
US20140189192A1 (en) | Apparatus and method for a multiple page size translation lookaside buffer (tlb) | |
WO2023108938A1 (zh) | 解决高速缓冲存储器地址二义性问题的方法和装置 | |
WO2019019719A1 (zh) | 分支预测方法及装置 | |
JP2020514859A (ja) | 変換索引バッファにおける構成可能なスキューアソシエイティビティ | |
CN105393210A (zh) | 用于模拟共享存储器结构的存储器单元 | |
WO2023055486A1 (en) | Re-reference interval prediction (rrip) with pseudo-lru supplemental age information | |
CN105718386A (zh) | 程序存储器控制器中页面窗口的本地页面转换和许可存储 | |
CN114925001A (zh) | 处理器、页表预取方法、电子设备 | |
CN114238167A (zh) | 信息预取方法、处理器、电子设备 | |
US9514047B2 (en) | Apparatus and method to dynamically expand associativity of a cache memory | |
CN114925002A (zh) | 电子装置、电子设备和地址转换方法 | |
CN103150196A (zh) | 动态二进制翻译中代码Cache管理方法 | |
US20210117100A1 (en) | Hybrid first-fit k-choice insertions for hash tables, hash sets, approximate set membership data structures, and caches |
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 |