CN104067246B - 通过物理地址进行的非分配存储器存取 - Google Patents
通过物理地址进行的非分配存储器存取 Download PDFInfo
- Publication number
- CN104067246B CN104067246B CN201380005026.9A CN201380005026A CN104067246B CN 104067246 B CN104067246 B CN 104067246B CN 201380005026 A CN201380005026 A CN 201380005026A CN 104067246 B CN104067246 B CN 104067246B
- Authority
- CN
- China
- Prior art keywords
- physical address
- memory
- cache memory
- level
- memory access
- 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.)
- Expired - Fee Related
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- 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]
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
本发明提供用于通过物理地址执行非分配存储器存取指令的系统及方法。一种系统包含处理器、一或多个层级的高速缓冲存储器、存储器、转译后备缓冲器TLB,及指定由所述处理器进行的存储器存取及相关联的物理地址的存储器存取指令。执行逻辑经配置以针对所述存储器存取指令绕过所述TLB且通过所述物理地址执行所述存储器存取,同时避免分配其中可能遇到未中的一或多个中间层级的高速缓冲存储器。
Description
依据35U.S.C.§119规定主张优先权
本专利申请案主张2012年1月10日申请的题为“通过物理地址进行的非分配存储器存取(Non-Allocating Memory Access with Physical Address)”的第61/584,964号临时申请案的优先权,且本专利申请案已让与给其受让人且借此明确地以引用的方式并入本文中。
技术领域
所揭示实施例涉及使用物理地址进行的存储器存取操作。更明确地说,示范性实施例涉及经设计以绕过虚拟到物理地址转译且避免分配一或多个中间层级的高速缓冲存储器的存储器存取指令。
背景技术
如此项技术中所熟知的,虚拟存储器可通过虚拟地址来寻址。虚拟地址空间常规地划分成数个相连虚拟存储器地址或“页”块。虽然可参考虚拟地址来撰写程序,但对于通过处理器执行程序指令来说,到物理地址的转译可能为有必要的。可使用页表来将虚拟地址映射到对应物理地址。存储器管理单元(MMU)常规地用以查找保持虚拟到物理地址映射的页表,以便处置转译。因为相连虚拟地址无法便利地映射到相连物理地址,所以MMU可能需要走查若干页表(被称为“页表走查”)以查找所要转译。
MMU可包含例如转译后备缓冲器(TLB)等硬件。TLB可在带标记硬件查找表中高速缓存对频繁存取的页面的转译。因此,如果虚拟地址在TLB中命中,那么可从TLB重新使用对应物理地址转译,而不必招致与页表走查相关联的成本。
MMU还可经配置以在软件中执行页表走查。软件页表走查常常遭受限制:页表项(PTE)的虚拟地址为未知的,且因此在PTE位于相关联的处理器高速缓冲存储器或主存储器中的一者中的情况下PTE也为未知的。因此,转译过程可为冗长乏味的且耗时的。
转译过程可遭受与“超级监督器”或虚拟机管理器(VMM)相关联的额外缺点。VMM可允许两个或两个以上操作系统(在此项技术中被称为“来宾”)在主机处理系统上同时执行。VMM可呈现虚拟操作平台且管理来宾操作系统的执行。然而,常规VMM不具有对由来宾存取的存储元件(数据/指令)的可高速缓存性类型(例如,“经高速缓存”或“未经高速缓存”)的可见性。因此,来宾有可能改变可能不被VMM注意的存储元件的可高速缓存性类型。另外,VMM可能不能够保持跟踪可由来宾变更的虚拟到物理地址映射。虽然已知架构采用保持来宾所特定的虚拟到物理地址的临时映射的机制,但此类映射机制倾向于非常缓慢。
额外缺点可能与调试器相关联。调试软件或硬件有时可使用指令来查询存在于被进行调试的处理系统中的特定地址处的数据值。传回被查询的数据值可影响高速缓存图像,此取决于相关联的地址的可高速缓存性类型。此外,可基于调试器来触发页表走查或TLB存取,调试器可侵犯处理系统的资源。
因此,此项技术中需要避免与处理系统中的虚拟到物理地址转译相关联的上述缺点。
发明内容
本发明的示范性实施例涉及用于经设计以绕过虚拟到物理地址转译且避免分配一或多个中间层级的高速缓冲存储器的存储器存取指令的系统及方法。
举例来说,示范性实施例涉及一种用于存取存储器的方法,其包括:指定用于所述存储器存取的物理地址;绕过虚拟到物理地址转译;以及使用所述物理地址执行所述存储器存取。
另一示范性实施例涉及用于通过处理器存取存储器的存储器存取指令,其中所述存储器存取指令包括:对应于用于所述存储器存取的地址的第一字段;对应于存取模式的第二字段;及包括经配置以指导执行逻辑进行以下操作的操作码的第三字段:在所述存取模式的第一模式中,确定所述第一字段中的所述地址为物理地址;绕过虚拟到物理地址转译;及通过所述物理地址执行所述存储器存取。所述操作码经进一步配置以指导所述执行逻辑进行以下操作:在所述存取模式的第二模式中,确定所述第一字段中的所述地址为虚拟地址;从所述虚拟地址执行虚拟到物理地址转译以确定物理地址;及通过所述物理地址执行所述存储器存取。
另一示范性实施例涉及一种处理系统,其包括:处理器,其包括寄存器堆;存储器;转译后备缓冲器(TLB),其经配置以转译虚拟到物理地址;及执行逻辑,其经配置以响应于指定存储器存取及相关联的物理地址的存储器存取指令而进行以下操作:针对所述存储器存取指令绕过虚拟到物理地址转译;及通过所述物理地址执行所述存储器存取。
另一示范性实施例涉及一种用于存取存储器的系统,其包括:用于指定用于所述存储器存取的物理地址的装置;用于绕过虚拟到物理地址转译的装置;以及用于使用所述物理地址执行所述存储器存取的装置。
另一示范性实施例涉及一种包括代码的非暂时性计算机可读存储媒体,所述代码在由处理系统执行时致使所述处理系统执行用于存取存储器的操作,所述非暂时性计算机可读存储媒体包括:用于指定用于所述存储器存取的物理地址的代码;用于绕过虚拟到物理地址转译的代码;以及用于使用所述物理地址执行所述存储器存取的代码。
附图说明
呈现随附图式以辅助描述本发明的实施例且提供随附图式仅用于说明实施例而非限制实施例。
图1说明根据示范性实施例的经配置以实施示范性存储器存取指令的处理系统100。
图2说明指定加载的示范性存储器存取指令的逻辑实施方案。
图3说明根据示范性实施例的存取存储器的方法的示范性操作流程图。
图4说明包含根据示范性实施例配置的多核心处理器的无线装置的框图。
具体实施方式
本发明的各方面揭示于针对本发明的特定实施例的以下描述及相关图式中。可在不脱离本发明的范围的情况下设计替代实施例。此外,将不会详细描述本发明的众所熟知的元件,或将省略所述元件,以免混淆本发明的相关细节。
词“示范性的”在本文中用以意味“充当实例、例子或说明”。本文中被描述为“示范性的”任何实施例未必应被解释为比其它实施例优选或有利。同样,术语“本发明的实施例”并不需要本发明的所有实施例包含所论述的特征、优点或操作模式。
本文中所使用的术语仅用于描述特定实施例的目的且并不希望限制本发明的实施例。如本文中所使用,除非上下文另外清楚地指示,否则希望单数形式“一”及“所述”也包含复数形式。应进一步理解,术语“包括(comprises、comprising)”及/或“包含(includes、including)”在用于本文中时指定所陈述的特征、整数、步骤、操作、元件及/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件及/或其群组的存在或添加。
此外,依据待由(例如)计算装置的元件执行的动作的序列来描述许多实施例。将认识到,可由特定电路(例如,专用集成电路(ASIC))、由正由一或多个处理器执行的程序指令或由两者的组合来执行本文中所述的各种动作。此外,可将本文中所述的这些动作序列视为完全体现于任何形式的计算机可读存储媒体内,所述计算机可读存储媒体中已存储一组对应计算机指令,所述指令在经执行时将致使相关联的处理器执行本文中所述的功能性。因此,本发明的各方面可以许多不同形式来体现,所有所述形式均预期在所主张的标的物的范围内。此外,对于本文中所述的实施例中的每一者来说,任何此类实施例的对应形式可在本文中被描述为(例如)“经配置以(执行所描述的动作)的逻辑”。
示范性实施例涉及包括经虚拟寻址的存储器空间的处理系统。实施例可包括指定物理地址而不是虚拟地址的指令及方法。示范性存储器存取指令可为加载或存储。如将详细描述,示范性存储器存取指令可简化软件页表走查,改善VMM功能,及使调试更容易。
现在参看图1,说明示范性处理系统100。处理系统100可包括处理器102,处理器102可为CPU或处理器核心。处理器102可包括可支持一或多个线程的一或多个执行管线(未图示)、一或多个寄存器堆(共同描绘为寄存器堆104)及此项技术中众所熟知的其它组件。处理器102可耦合到本地(或L1)高速缓冲存储器(例如,I-高速缓冲存储器108及D-高速缓冲存储器110),以及一或多个较高层级高速缓冲存储器(例如,L2高速缓冲存储器等)(未明确展示)。高速缓冲存储器可最终与例如存储器112等主存储器通信。处理器102可与MMU106交互以获得虚拟到物理地址的转译以便对高速缓冲存储器或存储器112执行存储器存取操作(加载/存储)。MMU106可包含TLB(未图示)及额外硬件/软件以执行页表走查。虚拟机管理器VMM114经展示为与处理器102通信。VMM114可支持一或多个来宾116在处理系统100上操作。处理系统100的所描绘配置仅用于说明性目的,且所属领域的技术人员将认识到对处理系统100的合适修改及额外组件及到处理系统100的连接,而不脱离所揭示的实施例的范围。
继续参看图1,现在将描述示范性存储器存取指令120。在图1中借助于表示可在执行指令中形成的通信路径的虚线说明指令120。所属领域的技术人员将认识到,可适当地修改指令120的实施方案以适应处理系统100的特定配置。另外,本文中参考“执行逻辑”,未明确说明“执行逻辑”,但应理解,“执行逻辑”一股包括将用以执行根据示范性实施例的在处理系统100中执行指令120的过程中所涉及的各种操作的适当逻辑块及硬件模块。所属领域的技术人员将认识到用于此执行逻辑的合适实施方案。
在一个示范性实施例中,指令120为加载指令,其中加载指令可直接指定用于加载的物理地址,而不是虚拟地址(如常规技术中已知的)。通过指定用于加载的物理地址,指令120避免了对虚拟到物理地址转译的需要,且因此,指令120的执行可避免存取MMU106(如图1中所展示)。因此,可通过使用用于加载的物理地址直接查询高速缓冲存储器(例如,I-高速缓冲存储器108及D-高速缓冲存储器110)来进行指令120的执行。
在一种情况下,用于加载的物理地址可在高速缓冲存储器中的一者中命中。举例来说,指令120的执行可首先查询本地高速缓冲存储器,且如果存在未中,那么执行可进行到下一层级高速缓冲存储器,等等,直到存在命中为止。不管哪个高速缓冲存储器层级产生命中,均从命中高速缓冲存储器中检索对应于用于加载的物理地址的数据值,且可将所述数据值直接递送到寄存器堆104。
在其中用于加载的物理地址在高速缓冲存储器中的任一者中不会命中的情况下,可从主存储器112中提取对应数据值。然而,此情形将被视为未经高速缓存加载或非分配加载。换句话说,在未中之后将不会用数据值来更新高速缓冲存储器。在对处理系统100执行调试操作的调试器(未图示)的一个实例中,可在调试器的针对物理地址的加载请求之后产生指令120。可见上述指令120的示范性执行使得高速缓存图像不受调试器的请求扰乱,这是因为指令120的非分配性质。与常规实施方案相比较,处理系统100可因此保持免于由于调试器影响缓冲图像而中断正常操作。
在另一示范性实施例中,指令120可为存储指令,其中存储指令可直接指定用于存储的物理地址,而不是虚拟地址(如常规技术中已知的)。类似于如上文所描述的加载指令的操作,存储指令可首先查询本地高速缓冲存储器,且在存在命中的情况下,可执行存储。可通过指令120的操作码来指定至少两种种类的存储操作-直写及回写。在直写存储中,可通过物理地址查询例如I-高速缓冲存储器108及D-高速缓冲存储器110等高速缓冲存储器且在命中的情况下,查询高速缓冲存储器阶层的下一较高层级,且最终,还可查询及更新主存储器、存储器112。另一方面,对于回写存储,在命中的情况下,存储操作结束而不进行到高速缓冲存储器阶层的下一较高层级。
对于回写存储及直写存储两者,如果遇到未中,那么存储可进行到通过物理地址查询下一层级的高速缓冲存储器,且此后,在必要时查询主存储器112。然而,在示范性实施例中,未中将不需要高速缓冲存储器分配,类似于加载。在一些实施例中,可包含专用缓冲器或数据阵列以用于此类非分配存储操作,如将参看图2进一步描述。
现在参看图2,说明指令120的示范性硬件实施方案。高速缓冲存储器(例如,D-高速缓冲存储器110)的扩展视图经展示为包括组件阵列:数据阵列210,其存储数据值;标签阵列202,其包括存储在数据阵列210中的对应数据的物理地址的选定位;状态阵列204,其存储用于对应组的相关联的状态信息;以及替换指针阵列206,其存储用于任何分配加载或存储操作的相关联的路线信息,分配加载或存储操作可能需要针对对应分配替换路线。尽管对于指令120的执行来说未存取DTLB214,但DTLB214可保持针对频繁存取的地址的虚拟到物理地址转译。DTLB214可包含于(例如)MMU106中。
首先,关于加载,当接收到用于由处理器102进行处理的用于示范性加载的指令120时,检索用于加载的指令120中所指定的物理地址字段。针对以下各字段分析物理地址字段:PA[标签位]208a,其对应于与用于加载地址的标签相关联的位;PA[组位]208b,其对应于与加载地址相关联的组;及PA[数据阵列位]208c,其对应于在D-高速缓冲存储器110中命中的加载地址在数据阵列210中的位置。在一个实施方案中,可通过组合PA[组位]208b与行偏移值以指定加载地址的位置来形成PA[数据阵列位]208c。举例来说,数据阵列210可包括高速缓存行块。行偏移值可用以基于用于加载的物理地址及加载的大小(例如,字节、半字、字、双字等)指定位于高速缓存行块中的数据的所要字节。
指令120的执行还可包括确证命令直接选择PA216,所述命令直接选择PA216致使选择器216在可从DTLB214导出的位上直接选择PA[标签位]208a且还可抑制由DTLB214进行虚拟到物理地址转译。可使用PA[组位]208b来存取标签阵列202及状态阵列204,且比较器218可接着比较标签位PA[标签位]208a是否存在于标签阵列202中,及其状态信息是否适当(例如,“有效”)。如果比较器218在命中/未中行220上产生命中,确认加载地址存在且有效,那么可联合地使用PA[数据阵列位]208c及从替换指针阵列206导出的相关联的路线信息来存取数据阵列210以检索用于由指令120指定的示范性加载指令的所要数据值。可接着从读取数据行224中读出所要数据值且可将所要数据值直接传送到处理器102(例如,传送到寄存器堆104)。
在根据指定加载的指令120的示范性实施例从D-高速缓冲存储器110中查询及检索数据的上述实施方案中,高速缓存图像(例如,D-高速缓冲存储器110的高速缓存图像)可保持不变。换句话说,不管存在命中还是未中,标签阵列202、状态阵列204、替换指针阵列206及数据阵列210均不变更。
现在转向存储,对于直写存储及回写存储两者,操作类似。举例来说,如果指令120指定将数据存储到物理地址,那么在一个实施方案中,可针对直写存储及回写存储两者查询本地高速缓冲存储器(D-高速缓冲存储器110),且如果找到物理地址,那么可将数据写入到专用阵列(写入数据阵列222),所述阵列可包含于数据阵列210中,如图2中所展示。在直写存储的情况下,操作可进行到查询及更新下一较高层级高速缓冲存储器(未图示),如上文所描述,而在回写的情况下,操作可以写入写入数据阵列222结束。
对于直写存储及回写存储两者,如果未找到物理地址,即,存在未中,那么可跳过对D-高速缓冲存储器110阵列的任何更新,且可将数据直接写入到存储器112中的物理地址位置。换句话说,可将存储视为非分配存储。可在调试操作中(例如)由调试器来使用由指令120指定的此类示范性存储操作。
类似于可由指令120指定的用于可关于D-高速缓冲存储器110的数据的加载/存储指令,示范性实施例还可包含用于关于I-高速缓冲存储器108的指令值的加载/存储指令。举例来说,可指定物理地址提取指令,其可以与上文所描述的指令120相似的方式来执行。物理地址提取指令可用以按非分配方式定位对应于物理地址的指令值。因此,可首先查询I-高速缓冲存储器108。如果遇到命中,那么所要提取操作可通过从指令中所指定的物理地址提取指令值而进行。如果遇到未中,那么可跳过I-高速缓冲存储器108的分配且执行可进行到查询任何下一层级高速缓冲存储器且最终在需要时查询主存储器112。
虽然上述描述一股涉及针对指令120的每个实例绕过MMU106/DTLB214,但在一些实施例中,可另外或替代地包含指令120的变化。在不损失一股性的情况下,可将指令120的变化指明为指令120′(未图示),其中指令120′可包括指定模式位以控制对MMU或TLB的绕过。举例来说,在由指令120′的模式位定义的第一模式中,可将指令120′中所指定的地址值视为虚拟地址且可存取MMU106以进行虚拟到物理地址转译。另一方面,在由指令120′的模式位定义的第二模式中,可将地址值视为物理地址且可绕过MMU106。
因此,在一些实施例中,指令120′可包括以下字段。指令120′的第一字段可对应于用于存储器存取的地址,可基于上文所描述的模式确定所述地址为虚拟地址还是物理地址。指令120′的第二字段可对应于在上述第一模式或第二模式之间选择的存取模式;且指令120′的第三字段可包括指令120′的操作码(或如此项技术中已知的OpCode)。如果存取模式经设置为第一模式,那么执行逻辑可确定第一字段中的地址为物理地址且绕过MMU106/DTLB214中的虚拟到物理地址转译且通过物理地址执行存储器存取。另一方面,存取模式经设置为第二模式,执行逻辑可确定第一字段中的地址为虚拟地址且通过调用MMU106/DTLB214从虚拟地址执行任何所需的虚拟到物理地址转译以确定物理地址,且接着进行到通过物理地址执行存储器存取。
应了解,实施例包含用于执行本文中所揭示的过程、函数及/或算法的各种方法。举例来说,如图3中所说明,实施例可包含用于存取存储器(例如,D-高速缓冲存储器210)的方法,其包括:指定用于存储器存取的物理地址(例如,指令120指定包括位208a、208b及208c的物理地址)-框302;绕过地址转译(例如,绕过DTLB214)-框304;及使用物理地址执行存储器存取(例如,选择器216经配置以选择物理地址位208a、208b及208c,而不是来自DTLB214的虚拟到物理地址转译)-框306。
所属领域的技术人员将了解,可使用多种不同技术及技艺中的任一者来表示信息及信号。举例来说,可用电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在以上描述中始终参考的数据、指令、命令、信息、信号、位、符号及码片。
另外,所属领域的技术人员将了解,结合本文中所揭示的实施例而描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚说明硬件与软件的此互换性,上文已一股关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。此功能性是实施为硬件还是软件取决于特定应用及强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但此类实施方案决策不应被解译为会导致脱离本发明的范围。
结合本文中所揭示的实施例而描述的方法、序列及/或算法可直接体现于硬件中、由处理器执行的软件模块中或两者的组合中。软件模块可驻留于RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可卸除式磁盘、CD-ROM,或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。
参看图4,描绘包含根据示范性实施例配置的多核心处理器的无线装置的特定说明性实施例的框图且一股将其指明为400。装置400包含数字信号处理器(DSP)464。类似于处理系统100,DSP464可包含图1的MMU106、包括寄存器堆104的处理器102、I-高速缓冲存储器108及D-高速缓冲存储器110,其可耦合到存储器432,如所展示。装置400可经配置以执行指令120及120′,而不执行虚拟到物理地址转译(如先前实施例中所描述)。图4还展示显示控制器426,其耦合到DSP464且耦合到显示器428。译码器/解码器(CODEC)434(例如,音频及/或语音CODEC)可耦合到DSP464。还说明例如无线控制器440(其可包含调制解调器)等其它组件。扬声器436及麦克风438可耦合到CODEC434。图4还指示无线控制器440可耦合到无线天线442。在特定实施例中,DSP464、显示控制器426、存储器432、CODEC434及无线控制器440包含于系统级封装或系统芯片装置422中。
在特定实施例中,输入装置430及电力供应器444耦合到系统芯片装置422。此外,在特定实施例中,如图4中所说明,显示器428、输入装置430、扬声器436、麦克风438、无线天线442及电力供应器444在系统芯片装置422的外部。然而,显示器428、输入装置430、扬声器436、麦克风438、无线天线442及电力供应器444中的每一者可耦合到系统芯片装置422的组件(例如,接口或控制器)。
应注意,尽管图4描绘无线通信装置,但DSP464及存储器432还可集成到机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理(PDA)、固定位置数据单元或计算机中。处理器(例如,DSP464)还可集成到此装置中。
因此,本发明的实施例可包含体现一种用于进行以下操作的方法的计算机可读媒体:使用物理地址且绕过经配置以进行虚拟到物理地址转译的MMU来存取存储器。因此,本发明并不限于所说明的实例且用于执行本文中所描述的功能性的任何装置包含在本发明的实施例中。
虽然前述揭示内容展示本发明的说明性实施例,但应注意,在不脱离如附加权利要求书所界定的本发明的范围的情况下,可在本文中进行各种改变及修改。无需以任何特定次序来执行根据本文中所述的本发明的实施例的方法权利要求项的功能、步骤及/或动作。此外,尽管可能以单数形式描述或主张本发明的元件,但除非明确陈述对于单数的限制,否则也预期复数形式。
Claims (20)
1.一种用于存取存储器的方法,其中在处理器和所述存储器之间配置高速缓冲存储器的至少两个层级,其中能够使用物理地址来直接查询每一高速缓冲存储器层级,其包括:
由处理器起始存储器存取请求;
指定用于所述存储器存取请求的物理地址;
绕过虚拟到物理地址转译;
使用所述物理地址直接查询所述高速缓冲存储器的每一层级和所述存储器,直到首先遇到命中;以及
使用所述物理地址从其中首先遇到所述命中的所述高速缓冲存储器层级或存储器执行存储器存取,而不修改其中遇到未中的任何中间高速缓冲存储器层级的高速缓存状态。
2.根据权利要求1所述的方法,其中所述存储器存取请求是加载请求,
其中执行所述存储器存取包括将与所述物理地址相关联的数据从其中首先遇到所述命中的所述高速缓冲存储器层级或存储器直接传回到所述处理器。
3.根据权利要求2所述的方法,其进一步包括:避免在所述中间高速缓冲存储器层级中分配所述数据,其中所述加载请求遇到未中。
4.根据权利要求1所述的方法,其进一步包括:避免查找与所述物理地址相关联的页属性。
5.根据权利要求1所述的方法,其中所述存储器存取请求是存储请求,且
其中执行所述存储器存取包括将与所述存储请求相关联的数据从所述处理器直接写入到其中首先遇到所述命中的所述高速缓冲存储器层级或存储器。
6.根据权利要求5所述的方法,其进一步包括避免分配任何中间高速缓冲存储器层级,其中所述存储请求遇到未中。
7.根据权利要求5所述的方法,其中所述存储请求是以直写操作形式来执行,以使得在首先在第一高速缓冲存储器层级中找到所述物理地址的情况下,所述方法进一步包括将所述数据写入到存在于所述第一高速缓冲存储器层级与所述存储器之间的任何高速缓冲存储器层级。
8.根据权利要求1所述的方法,其中所述物理地址对应于寄存器堆中的寄存器。
9.根据权利要求1所述的方法,其中所述存储器存取请求是加载请求,且其中遇到未中的所述高速缓冲存储器的高速缓存图像保持不变。
10.根据权利要求9所述的方法,其中所述高速缓存图像包括标签阵列、状态阵列、替换指针阵列或数据阵列中的一或多者,且其中所述高速缓存图像保持不变包括不变更所述标签阵列、状态阵列、替换指针阵列和数据阵列。
11.一种处理系统,其包括:
处理器,其包括寄存器堆;
存储器;
经配置在所述处理器和所述存储器之间的至少两个层级的高速缓冲存储器,其中能够直接使用物理地址来查询每一高速缓冲存储器层级;
转译后备缓冲器TLB,其经配置以转译虚拟到物理地址;以及
执行逻辑,其经配置以响应于由所述处理器起始的存储器存取指令而进行以下操作,所述存储器存取指令指定相关联的物理地址:
针对所述存储器存取指令绕过虚拟到物理地址转译;
使用所述物理地址直接查询所述高速缓冲存储器的每一层级和所述存储器直到首先遇到命中;以及
通过所述物理地址从其中首先遇到所述命中的所述高速缓冲存储器层级或存储器执行存储器存取,而不修改其中遇到未中的任何中间高速缓冲存储器层级的高速缓存状态。
12.根据权利要求11所述的处理系统,其中所述存储器存取指令为加载请求,且所述
执行逻辑经配置以:
将与所述物理地址相关联的数据从其中首先遇到所述命中的所述高速缓冲存储器层级或存储器直接传回到所述寄存器堆中对应于所述物理地址的寄存器。
13.根据权利要求12所述的处理系统,其中所述执行逻辑经进一步配置以避免在所述中间高速缓冲存储器层级中分配所述数据,且其中所述加载请求遇到未中。
14.根据权利要求11所述的处理系统,其中所述执行逻辑经进一步配置以避免查找与所述物理地址相关联的页属性。
15.根据权利要求11所述的处理系统,其中所述存储器存取指令为存储请求,且所述执行逻辑经配置以:
将与所述存储请求相关联的数据从所述处理器直接写入到其中首先遇到所述命中的所述高速缓冲存储器层级或存储器。
16.根据权利要求15所述的处理系统,其中所述执行逻辑经进一步配置以避免分配任何中间高速缓冲存储器层级,且其中所述存储请求遇到未中。
17.根据权利要求15所述的处理系统,其中所述存储器存取指令经进一步指定为直写操作,以使得在首先在第一高速缓冲存储器层级中找到所述物理地址的情况下,所述执行逻辑经配置以将所述数据写入到存在于所述第一高速缓冲存储器层级与所述存储器之间的任何高速缓冲存储器层级。
18.根据权利要求11所述的处理系统,其集成于半导体裸片中。
19.根据权利要求11所述的处理系统,其集成到选自由以下各者组成的群组的装置中:
机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理PDA、固定位置数据单元,以及计算机。
20.一种设备,其包括用于执行根据权利要求1到10中任一权利要求所述的方法的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261584964P | 2012-01-10 | 2012-01-10 | |
US61/584,964 | 2012-01-10 | ||
US13/398,927 US20130179642A1 (en) | 2012-01-10 | 2012-02-17 | Non-Allocating Memory Access with Physical Address |
US13/398,927 | 2012-02-17 | ||
PCT/US2013/021050 WO2013106583A1 (en) | 2012-01-10 | 2013-01-10 | Non-allocating memory access with physical address |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104067246A CN104067246A (zh) | 2014-09-24 |
CN104067246B true CN104067246B (zh) | 2018-07-03 |
Family
ID=48744770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380005026.9A Expired - Fee Related CN104067246B (zh) | 2012-01-10 | 2013-01-10 | 通过物理地址进行的非分配存储器存取 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20130179642A1 (zh) |
EP (1) | EP2802993A1 (zh) |
JP (1) | JP6133896B2 (zh) |
KR (1) | KR20140110070A (zh) |
CN (1) | CN104067246B (zh) |
WO (1) | WO2013106583A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9268694B2 (en) | 2013-09-26 | 2016-02-23 | Cavium, Inc. | Maintenance of cache and tags in a translation lookaside buffer |
US9208103B2 (en) * | 2013-09-26 | 2015-12-08 | Cavium, Inc. | Translation bypass in multi-stage address translation |
US9645941B2 (en) * | 2013-09-26 | 2017-05-09 | Cavium, Inc. | Collapsed address translation with multiple page sizes |
US9639476B2 (en) * | 2013-09-26 | 2017-05-02 | Cavium, Inc. | Merged TLB structure for multiple sequential address translations |
US20150161057A1 (en) * | 2013-12-05 | 2015-06-11 | Qualcomm Incorporated | System and method for providing client-side address translation in a memory management system |
WO2016064403A1 (en) * | 2014-10-23 | 2016-04-28 | Hewlett Packard Enterprise Development Lp | Supervisory memory management unit |
US20160210231A1 (en) * | 2015-01-21 | 2016-07-21 | Mediatek Singapore Pte. Ltd. | Heterogeneous system architecture for shared memory |
GB2536880B (en) * | 2015-03-24 | 2021-07-28 | Advanced Risc Mach Ltd | Memory management |
US10078597B2 (en) * | 2015-04-03 | 2018-09-18 | Via Alliance Semiconductor Co., Ltd. | System and method of distinguishing system management mode entries in a translation address cache of a processor |
US10180908B2 (en) * | 2015-05-13 | 2019-01-15 | Qualcomm Incorporated | Method and apparatus for virtualized control of a shared system cache |
US9672159B2 (en) * | 2015-07-02 | 2017-06-06 | Arm Limited | Translation buffer unit management |
US10223289B2 (en) * | 2015-07-07 | 2019-03-05 | Qualcomm Incorporated | Secure handling of memory caches and cached software module identities for a method to isolate software modules by means of controlled encryption key management |
US20170046158A1 (en) * | 2015-08-14 | 2017-02-16 | Qualcomm Incorporated | Determining prefetch instructions based on instruction encoding |
US10019380B2 (en) * | 2015-09-25 | 2018-07-10 | Qualcomm Incorporated | Providing memory management functionality using aggregated memory management units (MMUs) |
US10102168B2 (en) * | 2016-02-09 | 2018-10-16 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Scalable low-latency mesh interconnect for switch chips |
DE102017000530B4 (de) | 2016-02-09 | 2023-12-21 | Avago Technologies International Sales Pte. Limited | Skalierbare Maschinennetzkopplungsstruktur mit niedriger Latenz für Switch-Chips |
US20170255569A1 (en) * | 2016-03-01 | 2017-09-07 | Qualcomm Incorporated | Write-allocation for a cache based on execute permissions |
US9823854B2 (en) * | 2016-03-18 | 2017-11-21 | Qualcomm Incorporated | Priority-based access of compressed memory lines in memory in a processor-based system |
US11221971B2 (en) | 2016-04-08 | 2022-01-11 | Qualcomm Incorporated | QoS-class based servicing of requests for a shared resource |
US10482021B2 (en) * | 2016-06-24 | 2019-11-19 | Qualcomm Incorporated | Priority-based storage and access of compressed memory lines in memory in a processor-based system |
US10061698B2 (en) * | 2017-01-31 | 2018-08-28 | Qualcomm Incorporated | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur |
US10402355B2 (en) * | 2017-02-08 | 2019-09-03 | Texas Instruments Incorporated | Apparatus and mechanism to bypass PCIe address translation by using alternative routing |
CN116431530B (zh) * | 2023-02-08 | 2024-03-15 | 北京超弦存储器研究院 | 一种cxl内存模组、内存的处理方法及计算机系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
CN101390062A (zh) * | 2006-02-23 | 2009-03-18 | 飞思卡尔半导体公司 | 具有地址转换旁路的数据处理系统及其方法 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4323929A1 (de) * | 1992-10-13 | 1994-04-14 | Hewlett Packard Co | Software-geführtes Mehrebenen-Cache-Speichersystem |
US5623632A (en) * | 1995-05-17 | 1997-04-22 | International Business Machines Corporation | System and method for improving multilevel cache performance in a multiprocessing system |
US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
US5740399A (en) * | 1995-08-23 | 1998-04-14 | International Business Machines Corporation | Modified L1/L2 cache inclusion for aggressive prefetch |
US6085291A (en) * | 1995-11-06 | 2000-07-04 | International Business Machines Corporation | System and method for selectively controlling fetching and prefetching of data to a processor |
US5737751A (en) * | 1996-03-26 | 1998-04-07 | Intellectual Business Machines Corporation | Cache memory management system having reduced reloads to a second level cache for enhanced memory performance in a data processing system |
US5956507A (en) * | 1996-05-14 | 1999-09-21 | Shearer, Jr.; Bennie L. | Dynamic alteration of operating system kernel resource tables |
US5892970A (en) * | 1996-07-01 | 1999-04-06 | Sun Microsystems, Inc. | Multiprocessing system configured to perform efficient block copy operations |
US5983332A (en) * | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture |
US5960465A (en) * | 1997-02-27 | 1999-09-28 | Novell, Inc. | Apparatus and method for directly accessing compressed data utilizing a compressed memory address translation unit and compression descriptor table |
US6014740A (en) * | 1997-04-11 | 2000-01-11 | Bmc Software, Inc. | Single instruction method of seizing control of program execution flow in a multiprocessor computer system |
US6145054A (en) * | 1998-01-21 | 2000-11-07 | Sun Microsystems, Inc. | Apparatus and method for handling multiple mergeable misses in a non-blocking cache |
US6341325B2 (en) * | 1999-01-12 | 2002-01-22 | International Business Machines Corporation | Method and apparatus for addressing main memory contents including a directory structure in a computer system |
US6385712B1 (en) * | 1999-10-25 | 2002-05-07 | Ati International Srl | Method and apparatus for segregation of virtual address space |
US6625714B1 (en) * | 1999-12-17 | 2003-09-23 | Hewlett-Packard Development Company, L.P. | Parallel distributed function translation lookaside buffer |
US6741258B1 (en) * | 2000-01-04 | 2004-05-25 | Advanced Micro Devices, Inc. | Distributed translation look-aside buffers for graphics address remapping table |
US6711653B1 (en) * | 2000-03-30 | 2004-03-23 | Intel Corporation | Flexible mechanism for enforcing coherency among caching structures |
US6549997B2 (en) * | 2001-03-16 | 2003-04-15 | Fujitsu Limited | Dynamic variable page size translation of addresses |
US6889308B1 (en) * | 2002-01-18 | 2005-05-03 | Advanced Micro Devices, Inc. | Method and apparatus for protecting page translations |
DE60306952T2 (de) * | 2002-11-18 | 2007-02-08 | Arm Ltd., Cherry Hinton | Zuordnung von virtuellen zu physischen speicheradressen in einem system mit einem sicheren bereich und einem nicht sicheren bereich |
US20040193833A1 (en) * | 2003-03-27 | 2004-09-30 | Kathryn Hampton | Physical mode addressing |
US7076635B1 (en) * | 2003-09-04 | 2006-07-11 | Advanced Micro Devices, Inc. | Method and apparatus for reducing instruction TLB accesses |
US7302528B2 (en) * | 2004-11-19 | 2007-11-27 | Intel Corporation | Caching bypass |
US9280473B2 (en) * | 2004-12-02 | 2016-03-08 | Intel Corporation | Method and apparatus for accessing physical memory from a CPU or processing element in a high performance manner |
US7237065B2 (en) * | 2005-05-24 | 2007-06-26 | Texas Instruments Incorporated | Configurable cache system depending on instruction type |
JP5076411B2 (ja) * | 2005-11-30 | 2012-11-21 | ソニー株式会社 | 記憶装置、コンピュータシステム |
US20080229026A1 (en) * | 2007-03-15 | 2008-09-18 | Taiwan Semiconductor Manufacturing Co., Ltd. | System and method for concurrently checking availability of data in extending memories |
US9710384B2 (en) * | 2008-01-04 | 2017-07-18 | Micron Technology, Inc. | Microprocessor architecture having alternative memory access paths |
JP2009093559A (ja) * | 2007-10-11 | 2009-04-30 | Nec Corp | プロセッサ、情報処理装置、プロセッサのキャッシュ制御方法 |
US8145874B2 (en) * | 2008-02-26 | 2012-03-27 | Qualcomm Incorporated | System and method of data forwarding within an execution unit |
US8185692B2 (en) * | 2009-02-09 | 2012-05-22 | Oracle America, Inc. | Unified cache structure that facilitates accessing translation table entries |
-
2012
- 2012-02-17 US US13/398,927 patent/US20130179642A1/en not_active Abandoned
-
2013
- 2013-01-10 CN CN201380005026.9A patent/CN104067246B/zh not_active Expired - Fee Related
- 2013-01-10 EP EP13700444.6A patent/EP2802993A1/en not_active Withdrawn
- 2013-01-10 KR KR1020147022169A patent/KR20140110070A/ko not_active Application Discontinuation
- 2013-01-10 WO PCT/US2013/021050 patent/WO2013106583A1/en active Application Filing
- 2013-01-10 JP JP2014551429A patent/JP6133896B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
CN101390062A (zh) * | 2006-02-23 | 2009-03-18 | 飞思卡尔半导体公司 | 具有地址转换旁路的数据处理系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2015503805A (ja) | 2015-02-02 |
CN104067246A (zh) | 2014-09-24 |
JP6133896B2 (ja) | 2017-05-24 |
WO2013106583A1 (en) | 2013-07-18 |
US20130179642A1 (en) | 2013-07-11 |
KR20140110070A (ko) | 2014-09-16 |
EP2802993A1 (en) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104067246B (zh) | 通过物理地址进行的非分配存储器存取 | |
US10210101B2 (en) | Systems and methods for flushing a cache with modified data | |
KR101483849B1 (ko) | 계층적으로 캐싱되는 프로세서들에서의 조정된 프리페칭 | |
US9086813B2 (en) | Method and apparatus to save and restore system memory management unit (MMU) contexts | |
US7904660B2 (en) | Page descriptors for prefetching and memory management | |
CN103443777B (zh) | 具有预填充能力的存储器管理单元 | |
US20190121540A1 (en) | Controller hardware automation for host-aware performance booster | |
US10083126B2 (en) | Apparatus and method for avoiding conflicting entries in a storage structure | |
US10977199B2 (en) | Modifying NVMe physical region page list pointers and data pointers to facilitate routing of PCIe memory requests | |
GB2516477A (en) | Method and system for handling virtual memory address synonyms in a multi-level cache hierarchy structure | |
CN108604210B (zh) | 基于执行许可的高速缓存的写分配 | |
JPH06318177A (ja) | キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム | |
CN112631962B (zh) | 存储管理装置、存储管理方法、处理器和计算机系统 | |
US9069677B2 (en) | Input/output de-duplication based on variable-size chunks | |
EP3844624B1 (en) | Method, apparatus, and system for reducing pipeline stalls due to address translation misses | |
TWI499910B (zh) | 具有相黏移除引擎之系統快取記憶體 | |
US20070073971A1 (en) | Memory caching in data processing | |
US8606989B2 (en) | Methods and apparatus for burst data transfers between double data rate (DDR) memories and embedded processors during training | |
US6516388B1 (en) | Method and apparatus for reducing cache pollution | |
US8214597B2 (en) | Cache tentative read buffer | |
US10896041B1 (en) | Enabling early execution of move-immediate instructions having variable immediate value sizes in processor-based devices | |
EP3283966B1 (en) | Virtualization-aware prefetching | |
JP2007286990A (ja) | キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム | |
US20220365712A1 (en) | Method and device for accessing memory | |
WO2024039954A1 (en) | Dual store queue |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180703 Termination date: 20220110 |