减少由于地址转换缺失而引起的管线暂缓的方法、装置和系统

文档序号:789528 发布日期:2021-04-09 浏览:19次 >En<

阅读说明:本技术 减少由于地址转换缺失而引起的管线暂缓的方法、装置和系统 (Method, apparatus and system for reducing pipeline stalls due to address translation misses ) 是由 P·戈沙尔 N·乔杜里 R·拉贾戈帕兰 P·埃比勒 B·斯坦普尔 D·S·雷 T·P·施 于 2019-08-26 设计创作,主要内容包括:提出了一种用于减少由于地址转换缺失引起的管线暂缓的方法、装置和系统。一种装置包括:存储器访问指令管线,耦合到存储器访问指令管线的转换后备缓冲器,以及耦合到TLB和存储器访问指令管线两者的TLB缺失队列。TLB缺失队列被配置为选择性地存储第一存储器访问指令连同与第一存储器访问指令相关联的信息,由于第一存储器访问指令在TLB中缺失,第一存储器访问指令已经被从存储器访问指令管线移除。TLB缺失队列还被配置为将第一存储器访问指令重新引入到存储器访问指令管线,存储器访问指令管线与地址转换的返回相关联,该地址转换与第一存储器访问指令有关。(A method, apparatus, and system for reducing pipeline stalls due to address translation misses are presented. An apparatus comprising: the apparatus includes a memory-access instruction pipeline, a translation lookaside buffer coupled to the memory-access instruction pipeline, and a TLB miss queue coupled to both the TLB and the memory-access instruction pipeline. The TLB miss queue is configured to selectively store a first memory access instruction along with information associated with the first memory access instruction, the first memory access instruction having been removed from the memory access instruction pipeline as a result of the first memory access instruction missing in the TLB. The TLB miss queue is further configured to reintroduce the first memory access instruction into a memory access instruction pipeline associated with return of the address translation associated with the first memory access instruction.)

减少由于地址转换缺失而引起的管线暂缓的方法、装置和 系统

根据《美国法典》第35篇第119条的优先权主张

本专利申请要求已转让给本发明的受让人的于2018年8月27日提交的标题为“由于地址转换缺失而引起的管线暂缓的方法、装置和系统”的第16/113,141号非临时申请的优先权,并且在此通过引用明确地并入本文。

技术领域

本公开的方面总体上涉及减少管线暂缓,并且更具体地涉及减少与地址转换缺失相关联的管线暂缓。

背景技术

现代计算设备可以采用虚拟存储器技术来管理它们的存储器层次结构。作为管理虚拟存储器的一部分,这种计算设备经由存储器管理单元(MMU),将由应用使用的虚拟存储器地址转换为物理地址。然后,由存储器队列或类似的硬件块可以使用该转换与主存储器进行交互。由于对这种转换的需求可能很频繁,因此已经开发了将已知或最近使用的转换缓存的机制,这些机制通常被称为转换后备缓冲区(TLB)。TLB用作虚拟到物理转换的缓存,它可以通过避免每次遇到存储器访问操作时都需要遍历存储器层次结构以执行虚拟到物理地址转换,来改善存储器访问操作的延迟,因为这种遍历可能是相对较长的延迟操作。

当存储器访问操作在TLB中具有其虚拟地址缺失并且必须等待来自MMU的转换时,可能会导致进一步的复杂化。如上所述,处理TLB缺失的常见方法是当等待转换时使计算设备的管线暂缓。这意味着存储器访问操作之后的指令也将暂缓。然而,这些后续的指令可能不会导致TLB缺失,也不一定取决于在TLB中缺失的存储器访问操作的结果。因此,有效地浪费了处理器保持暂缓并且等待转换的周期,因为在该时间周期期间可以执行后续的指令,但是等待其转换的存储器访问操作阻挡了将要分配给它们的管线。

因此,期望提供一种机制,用于允许在TLB中缺失的存储器访问操作之后的指令,并且该指令不取决于当计算设备等待与TLB缺失相关联的地址转换时要被执行的存储器访问操作的返回。

发明内容

以下内容提供了一个或多个方面的简化的概要,以便提供对这些方面的基本理解。该概要不是所有预期方面的详尽概述,并且既不旨在标识所有方面的关键或重要元素,也不旨在描绘任何方面或所有方面的范围。其唯一的目的是以简化的形式呈现一个或多个方面的一些概念,作为稍后呈现的更详细的描述的前序。

在一个方面中,一种装置包括:存储器访问指令管线、耦合到存储器访问指令管线的转换后备缓冲器、以及耦合到TLB和存储器访问指令管线两者的TLB缺失队列。TLB缺失队列被配置为选择性地存储第一存储器访问指令以及与第一存储器访问指令相关联的信息,由于第一存储器访问指令在TLB中缺失,第一存储器访问指令已经被从存储器访问指令管线移除。TLB缺失队列还可以被配置为将第一存储器访问指令重新引入到与地址转换的返回相关联的存储器访问指令管线,该地址转换与第一存储器访问指令有关。

在另一方面中,一种方法包括:从存储器访问指令管线移除在TLB中已经缺失的第一存储器访问指令,以使存储器访问指令管线对其它存储器访问指令可用。该方法还包括当等待针对第一存储器访问指令的地址转换时,将第一存储器访问指令和相关信息选择性地存储在TLB缺失队列中。该方法还可以包括将第一存储器访问指令重新引入到与地址转换的返回相关联的存储器访问指令管线,该地址转换与第一存储器访问指令相关联。

在又一方面中,一种非暂时性计算机可读介质,包括指令,该指令当由处理器执行时,使得处理器从存储器访问指令管线移除在TLB中已经缺失的第一存储器访问指令,以使存储器访问指令管线对其它存储器访问指令可用。指令还导致当等待针对第一存储器访问指令的地址转换时,使得处理器将第一存储器访问指令和相关联的信息选择性地存储在TLB缺失队列中。

在又一方面中,一种装置包括:用于执行存储器访问指令的器件;用于缓存地址转换的器件,耦合到用于执行存储器访问指令的器件;以及用于存储在用于缓存地址转换的装置中缺失的指令的器件,耦合到用与缓存地址转换的期间以及耦合到用于执行存储器访问指令的器件。用于存储缺失的指令的器件被配置为选择性地存储第一存储器访问指令以及与第一存储器访问指令相关联的信息,由于第一存储器访问指令在用于缓存地址转换的器件中缺失,因此第一存储器访问指令已经被从用于执行存储器访问指令的器件中移除。

一个或多个公开的方面的一个优点是,通过从管线中移除生成TLB缺失的操作并且允许执行后续的存储器访问操作,所公开的方面允许实现如上所述的TLB缺失队列的计算设备的改进的吞吐量。在一些方面中,这可以减少功耗并且改善整体系统性能。

附图说明

图1示出了根据本公开的某些方面的被配置为减少由于地址转换缺失而引起的管线暂缓的计算设备的框图。

图2示出了根据本公开的某些方面的示例性TLB缺失队列的详细图。

图3示出了根据本公开的某些方面的与加载管线和存储管线相关联的TLB缺失队列的实现的详细图。

图4示出了根据本公开的某些方面的减少由于地址转换缺失引起的管线暂缓的方法的框图。

图5示出了根据本公开的某些方面的被配置为减少由于地址转换缺失引起的管线暂缓的计算设备的系统级图。

具体实施方式

在以下描述和针对特定方面的相关附图中公开了本文的发明教导的各方面。在不脱离本文的发明构思的范围的情况下,可以设计备选的方面。此外,可能不会详细描述环境中的众所周知的元件,或者可能会省略环境中的众所周知的元件,以免使本文的发明教导的相关细节不清楚。

单词“示例性”在本文中用于表示“用作示例、实例或说明”。本文中被描述为“示例性”的任何方面不必被解释为比其它方面优选或有利。同样,术语“本发明的方面”并不要求本发明的所有方面都包括所讨论的特征、优点或操作模式。

本文使用的术语仅出于描述特定方面的目的,而不旨在限制本发明的方面。如本文使用的,除非上下文另外明确指出,否则单数形式“一”、“一个”和“该”也旨在包括复数形式。另外将理解,当在本文中使用术语“包括(comprises)”、“包括(comprising)”、“包含(includes)”和/或“包含(including)”时,指定所陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除个或多个其它特征、整数、步骤、操作、元件、部件和/或其组的存在或增加。

此外,根据要由例如计算设备的元件执行的动作的序列来描述许多方面。将认识到,可以由特定的电路(例如,专用集成电路(ASIC))、由一个或多个处理器执行的程序指令、或由两者的组合来执行本文描述的各种动作。此外,可以认为本文描述的这些动作的序列完全体现在其中存储有对应的计算机指令的集合的任何形式的计算机可读存储介质内,该计算机指令在执行时将导致关联的处理器执行本文描述的功能。因此,本发明的各个方面可以以许多不同的形式体现,所有这些形式都被认为在所要求保护的主题的范围内。另外,对于本文描述的方面中的每个方面,本文可以将任何这种方面的对应的形式描述为例如“被逻辑的配置为”来执行所描述的动作。

就这一点而言,图1示出了根据本公开的某些方面的被配置为减少由于地址转换缺失导致的管线暂缓的计算设备100的框图。该计算设备包括被耦合到存储器管理单元(MMU)120的中央处理单元(CPU)110。CPU 110还包括耦合到转换后备缓冲器(TLB)114和TLB缺失队列(TMQ)116两者的加载/存储管线112。TLB 114和TLB缺失队列116彼此耦合,并且被耦合到MMU 120。如将在本文中进一步描述的,MMU 120可以被耦合到主存储系统(未示出),并且可以被配置为执行页表查询(page table walk),以便将地址转换提供回TLB 114和TLB缺失队列116。

在操作期间,CPU 100可能遇到其可能被分派到加载/存储管线112的存储器访问指令(MAI)111(即,加载或存储指令)。为了执行存储器访问指令111,加载/存储管线112可以从TLB 114请求针对存储器访问指令111的地址转换。如果TLB 114已经具有用于存储器访问指令111的地址转换,它可以将转换返回给加载/存储管线112并且存储器访问指令111的执行可以被继续。然而,如果TLB 114不具有用于存储器访问指令111的地址转换,则它必须向MMU 120请求转换,该MMU 120执行页表查询以确定转换。页表查询可以涉及多个周期,并且在该时间期间存储器访问指令111无法继续执行。然而,可能还有等待从CPU 110分派到加载/存储管线112的其它后续的存储器访问指令。

为了允许这些后续的存储器访问指令在等待与在TLB 114中已经缺失的存储器访问指令111相关联的地址转换时,访问加载/存储管线112,从加载/存储管线112暂时地移除存储器访问指令111并且存储在TLB缺失队列116的条目中。TLB缺失队列116包括多个条目,多个条目中的每个条目可以储存与至少一个存储器访问指令(例如,存储器访问指令111)相关联的信息。TLB缺失队列116可以将加载指令和存储指令两者存储在统一队列中,或者可以维护对加载和存储指令执行基本相似的缺失队列功能的单独结构。

无论是实现为统一队列还是单独的加载和存储TLB缺失队列,TLB缺失队列116均可以跟踪存储在队列中的特定存储器访问指令是否需要将用于地址转换的请求提交给MMU120,并且可以跟踪是否已经从MMU 120接收到该条目的转换。取决于TLB缺失队列116在何处以及如何被配置为向加载/存储管线112重新引入存储器访问指令(诸如,存储器访问指令111),(如果要在执行危险检查之后的阶段,所存储的存储器访问指令要被重新插入到加载/存储管线112中)TLB缺失队列116还可以存储与每个存储的存储器访问指令相关联的危险信息。

本领域技术人员将认识到一些类型的指令可能不适合放置到TLB缺失队列116中,并且在这种指令的情况下,管线可能暂缓。特别地,执行特定命令的指令可以不被放入TLB缺失队列116中(因为这样做可能允许较新的指令移动到它们之前,根据定义,这是不允许的)。同样地,执行特定排序的其它指令(诸如,屏障指令)可以不被放置在TLB缺失队列116中,以避免死锁情形。

此外,如果在TLB 114中缺失存储器访问指令,但是已知已经请求了与该存储器访问指令相关联的转换,并且将在相对较短的数目的周期内可用,则与使用来自TLB缺失队列116的另一个条目相比,在该数目的周期中暂缓管线可能更加有益。例如,可以对阈值数目的周期进行编程,并且如果转换将在该数目的周期内可用,则计算设备100可能暂缓并且等待转换,而不是将存储器访问指令存储在TLB缺失队列116中。确定阈值可以取决于许多因素,诸如转换请求的延迟、管线和TLB的体系结构、TLB缺失队列116的大小以及管线重入策略以及其它相关因素。备选地,如上所述代替或除了在一些数目的周期内暂缓加载/存储管线112,存储器访问指令可以被重新引入加载/存储管线112,而不是将存储器访问指令暂缓在加载/存储管线112中的适当位置。

就这一点而言,图2示出了根据本公开的某些方面的示例性TLB缺失队列202的详细图200。TLB缺失队列202包括存储结构210,存储结构210包括多个条目211a-d。条目211a-d中的每个条目包括指令字段212、“需求请求”字段214以及“具有转换”字段216。指令字段212可以被用于存储特定的存储器访问指令(诸如,关于图1描述的存储器访问指令111),并且还可以被用作索引,以确定已经为其请求转换的存储器的相关页面。“需求请求”字段214存储与该条目相关联的存储器访问指令是否需要提交用于地址转换的请求或者用于存储器的相关页面的地址转换的请求是否已经被提交的指示符。例如,当两个存储器访问指令都在TLB 114中缺失并且都将存储器的相同页面作为目标时,可能发生这种情况。两个存储器访问指令中的第一个存储器访问指令将被放置在TLB缺失队列202中,并且将触发MMU120中的页表查询。第二存储器访问指令将被存在TLB缺失队列202中,但是TLB缺失队列202可以被配置为将第二存储器访问指令与当前存储在TLB缺失队列中的任何其它存储器访问指令(即,TLB缺失队列的活动条目)进行比较,并且第二存储器访问指令具有待处理的地址转换请求,并且如果第二存储器访问指令将已经进行了地址转换请求的页面作为目标,则可以设置“需求请求”字段214以指示不应该生成任何相关联的地址转换请求。“具有转换”字段216指示是否已经接收到针对特定条目的转换。

本领域技术人员将认识到,是否将TLB缺失队列实现为统一的或单独的加载/存储结构、队列包含多少条目、队列在哪里将指令重新引入(例如,加载、存储或组合的加载/存储)管线中,因此要使用多少存储空间来存储与队列中存储的指令相关的数据(例如,“需求请求”、“具有转换”、危险信息等)都与设计选择相关,并且在本公开的教导的范围内。为此,图3示出了根据一个方面的与负载管线和存储管线相关联的TLB缺失队列的实现300的详细图。

所示的实现300具有单独的加载管线302和存储管线304,每个加载管线302和存储管线304具有四个所示的阶段(用于加载管线302的阶段LD1 310、阶段LD2 312、阶段LD3314以及阶段LD4 316,用于存储管线304的阶段ST1 320、阶段ST2 322以及阶段ST4 326)。加载管线302和存储管线304被耦合到公共TLB 308。加载管线302与加载TLB缺失队列(LDTMQ)318相关联,加载TLB缺失队列318被配置为在加载管线302的LD1阶段310处重新插入指令。存储管线304与存储TLB缺失队列(ST TMQ)328相关联,存储TLB缺失队列328被配置为在存储管线304的ST3阶段324处重新插入指令。如先前关于图3所讨论的,加载TLB缺失队列318和存储TLB缺失队列328被耦合在一起以使能冗余页面转换请求的检测和抑制(即,需要与存储指令380相同的页面转换的加载指令370将不会发出其自己的独立转换请求,该存储指令380已经向更高级别的TLB或MMU发出页面转换请求,反之亦然)。

在所示的方面中,加载TLB缺失队列318可以对应于图2的TLB缺失队列202并且可以包含4个条目,每个条目存储指令、“需求请求”字段、“具有转换”字段。因为加载TLB缺失队列318不跟踪与条目相关联的危险,所以它可以在这些指令流过加载管线302时将重新检查其危险的阶段处,将指令重新引入加载管线302。在所示的方面中,在LD1阶段310和LD2阶段312中执行危险检查,因此加载TLB缺失队列318在LD1阶段310之前将指令重新引入加载管线302。相反,存储TLB缺失队列328可能只包含单个条目,但是因为条目较少,所以它可能包含与加载TLB缺失队列318相同的信息,并且可能附加地包含完整的危险检查信息,以允许存储在存储TLB缺失队列328中的指令在等待其相关转换时(即,从更高级别的TLB或从页表查询)参与危险检查。因为存储TLB缺失队列328对存储在其中的指令实现了完整的危险检查,所以它可以在从管线移除指令的相同阶段(在所示的示例中,在ST3阶段324中)处将指令重新引入存储管线304中。

本领域技术人员将认识到,在加载TLB缺失队列318和存储TLB缺失队列328中的每个缺失队列中存储多少条目以及存储多少信息的选择是设计选择,并且可以取决于诸如与存储指令和信息相关联的物理结构所消耗的面积、与加载指令和存储指令相关联的相对频率和延迟惩罚的因素。此外,用于指令的重入点的选择可以取决于类似的因素。此外,具有多个加载、多个存储或多个组合的加载/存储管线的实现是可能的,并且只要多个管线实现与重入点和危险检查以及信息存储有关的类似的方法,则加载或存储指令可以重新进入能够为该类型的指令提供服务的任何管线。

图4示出了根据本公开的某些方面的减少由于地址转换缺失引起的管线暂缓的方法400的框图。方法400从框410开始,通过从存储器访问管线移除在TLB中缺失的第一存储器访问指令,以使该管线对其它存储器访问指令可用。例如,关于图1,在TLB 114中缺失之后,存储器访问指令111被从加载/存储管线112移除,以允许后续的存储器访问指令使用加载/存储管线112。

方法400在框420中继续,通过在等待第一存储器访问指令的地址转换时,将第一存储器访问指令和相关联的信息选择性地存储在TLB缺失队列中。例如,关于图1,存储器访问指令111被存储在TLB缺失队列116的条目中。在一些方面中,TLB缺失队列可以对应于图2的TLB缺失队列202、图3的加载TLB缺失队列318或者图3的存储TLB缺失队列328。

方法400可以在框430中进一步继续,通过将第一存储器访问指令重新引入存储器访问管线。例如,关于图1,存储器访问指令111可以被重新引入加载/存储管线112。如关于图1-3所讨论的,可以以多种方式来实现将第一存储器访问指令重新引入管线中,所有这些方式都在本公开的教导的范围内。此外,第一存储器访问指令的重新引入的定时可以变化。在一个方面中,系统可以等待直到相关联的地址转换已经从更高级别TLB或页表查询返回之后,才将第一存储器访问指令重新引入管线中。在另一方面中,系统可以跟踪并且预期地址转换的返回,并且可以将第一存储器访问指令重新引入管线中,使得其将到达管线阶段,在该阶段中,地址转换在相关联的地址转换之前被执行或与相关联的地址转换同时被执行。

现在将结合图5讨论可以在其中利用本公开的方面的示例装置。图5示出了计算设备500的图,该计算设备500包括用于减少由于关于图1、图2和图3所描述的地址转换缺失引起的管线暂缓的结构,并且该结构可以根据图4中描述的方法进行操作。在那一方面,系统500包括处理器502,处理器502可以结合图1的加载/存储管线112、TLB 114以及TLB缺失队列116(其还可以对应于图2的TLB缺失队列202,以及图3的实现300的元件中的任何元件)。系统500还包括经由系统总线140耦合到处理器502的主存储器系统580。主存储器系统580还可以存储非暂时性计算机可读指令,该指令当由处理器502执行时,可以执行图4的方法400。

图5还以虚线示出了可选的框,诸如耦合到处理器502的编码器/解码器(编解码器(CODEC))534(例如,音频和/或语音编解码器);耦合到编解码器534的扬声器536和麦克风538;以及耦合到无线控制器540的无线天线542,无线天线542被耦合到处理器502。此外,系统502还示出了被耦合到处理器502并且被耦合到显示器528的显示控制器526,以及被耦合到处理器502并且被耦合到网络572的有线网络控制器570。在存在这些可选的框中的一个或多个框的情况下,在特定方面中,处理器502、显示控制器526、存储器580和无线控制器540可以被包括在系统级封装或片上系统设备522中。

因此,在特定方面,输入设备530和电源544被耦合到片上系统设备522。而且,在特定方面中,如图5所示,在存在一个或多个可选的框的情况下,显示器528、输入设备530、扬声器536、麦克风538、无线天线542以及电源544在片上系统设备522的外部。然而,显示器528、输入设备530、扬声器536、麦克风538、无线天线542和电源544中的每个设备可以被耦合到片上系统设备522的部件,诸如接口或控制器。

应当注意,尽管图5总体上描述了计算设备,但是处理器502和存储器580还可以被集成到移动电话、通信设备、计算机、服务器、膝上型计算机、平板电脑、个人数字助理、音乐播放器、视频播放器、娱乐单元以及机顶盒,或其它类似的设备中。

本领域技术人员将认识到,可以使用多种不同技术和技巧中的任何技术或技巧来表示信息和信号。例如,在以上整个说明书中可能引用的数据、指令、命令、信息、信号、位、符号和芯片可以由电压、电流、电磁波、磁场或粒子、光场或粒子或其任何组合表示。

此外,本领域技术人员将认识到,结合本文公开的方面描述的各种说明性的逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,上文已经在其功能性方面总体上描述了各种说明性的部件、块、模块、电路和步骤。将这种功能性实现为硬件还是软件取决于特定的应用和施加在整个系统上的设计约束。技术人员可以针对每个特定应用以各种方式来实现所描述的功能,但是这种实现决定不应被解释为使得脱离本发明的范围。

结合本文公开的方面描述的方法、序列和/或算法可以被直接地体现在硬件中,体现在由处理器执行的软件模块中,或体现在两者的组合中。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域已知的任何其它形式的存储介质中。示例性存储介质被耦合到处理器,使得处理器可以从存储介质读取信息,并且可以向存储介质写入信息。备选地,存储介质可以被集成到处理器。

尽管前述公开示出了本发明的说明性方面,但是应当注意,在不脱离由所附权利要求限定的本发明的范围的情况下,可以在本文中进行各种改变和修改。根据本文描述的本发明的方面的方法权利要求的功能、步骤和/或动作不需要以任何特定顺序执行。此外,尽管本发明的元件可以以单数形式描述或声明,但是可以想到复数形式,除非明确地说明了对单数形式的限制。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于控制存储器存取的装置及方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类