装置和方法

文档序号:68083 发布日期:2021-10-01 浏览:32次 >En<

阅读说明:本技术 装置和方法 (Apparatus and method ) 是由 彼得·安得烈·里奥克勒 于 2021-03-22 设计创作,主要内容包括:本文涉及装置和方法。装置包括:地址转换电路,用于访问转换数据;事务处理电路,接收转换事务与无效事务,转换事务定义要被转换成相应输出存储器地址的输入存储器地址,该电路用于控制地址转换电路来提供输出存储器地址;无效事务定义对转换数据的至少部分无效;事务跟踪电路,把一组无效纪元中的一个与每个转换事务并与每个无效事务相关联;以及无效电路,存储定义给定无效事务的数据,并且对于具有与给定无效事务相同的无效纪元并且在存储该数据之后被处理的转换事务,处理这些转换事务以在由给定无效事务定义的无效适用于一转换事务时指示出该转换事务被无效;无效电路用于响应于其对数据的存储而至少转发对无效事务的确认以供进一步处理。(This document relates to devices and methods. The device comprises: address translation circuitry for accessing the translated data; transaction processing circuitry to receive a translation transaction and an invalidation transaction, the translation transaction defining an input memory address to be translated into a corresponding output memory address, the circuitry to control the address translation circuitry to provide the output memory address; the invalidation transaction defines at least partial invalidation of the translation data; transaction tracking circuitry to associate one of a set of invalidation epochs with each translation transaction and with each invalidation transaction; and invalidation circuitry to store data defining a given invalidation transaction and, for translation transactions having the same invalidation epoch as the given invalidation transaction and being processed after storing the data, to process the translation transactions to indicate that a translation transaction is invalidated when the invalidation defined by the given invalidation transaction applies to the translation transaction; the invalidation circuitry is to forward at least an acknowledgement of the invalid transaction for further processing in response to its storage of the data.)

装置和方法

技术领域

本公开涉及数据处理。

背景技术

存储器管理允许了构建具有多个虚拟地址映射图的数据处理系统,使得在操作系统上运行的每个应用可具有其自己的虚拟存储器映射。每个应用将位于物理存储器中的单独地址空间中。MMU利用转换表把应用使用的存储器地址——称为虚拟地址——映射成存储器中的物理地址。转换表例如是由软件在存储器中创建的树形层次表数据结构。

MMU硬件一般遍历转换表以实现虚拟地址转换。遍历转换表可涉及执行若干次存储器访问来读取转换表。

转换信息或转换表的来源是控制和监督转换过程的系统,该系统通常可以是操作系统(operating system,OS)或超级监督者。出于各种原因,该监督系统不时会有把转换信息中的至少一部分无效的需求。

发明内容

在一示例布置中,提供了一种装置,包括:

地址转换电路,被配置成访问定义一组存储器地址转换的转换数据;

事务处理电路,用于接收转换事务并且接收无效事务,每个转换事务定义输入存储器地址空间中的一个或多个输入存储器地址,这些输入存储器地址要被转换成输出存储器地址空间中的相应输出存储器地址,其中事务处理电路被配置成控制所述地址转换电路来提供输出存储器地址作为转换响应;

其中每个无效事务定义对转换数据的至少部分无效;

事务跟踪电路,用于把一组至少两个无效纪元中的一无效纪元与每个转换事务相关联并与每个无效事务相关联;以及

无效电路,用于存储定义给定无效事务的数据,并且对于具有与所述给定无效事务相同的无效纪元并且在所述无效电路存储定义所述给定无效事务的数据之后被所述地址转换电路处理的转换事务,处理这些转换事务以在由给定无效事务定义的无效适用于一转换事务时指示出该转换事务被无效;

无效电路被配置成:响应于无效电路对该数据的存储,至少转发对无效事务的确认以供其他装置进一步处理。

在另一示例布置中,提供了一种方法,包括:

访问定义一组存储器地址转换的转换数据;

接收转换事务并且接收无效事务,每个转换事务定义输入存储器地址空间中的一个或多个输入存储器地址,这些输入存储器地址要被转换成输出存储器地址空间中的各个输出存储器地址,其中每个无效事务定义对所述转换数据的至少部分无效;

提供输出存储器地址作为转换响应;

把一组至少两个无效纪元中的一无效纪元与每个转换事务相关联并与每个无效事务相关联;并且

存储定义给定无效事务的数据,并且,对于与给定无效事务具有相同的无效纪元并且在定义所述给定无效事务的数据的存储之后被处理的转换事务,并且处理这些转换事务以在由所述给定无效事务定义的无效适用于一转换事务时指示出该转换事务被无效;并且

响应于无效电路对所述数据的存储,至少转发对无效事务的确认以供进一步处理。

在另一示例布置中,提供了一种计算机程序,用于控制主机数据处理装置来提供指令执行环境,包括:

地址转换电路,被配置成访问定义一组存储器地址转换的转换数据;

事务处理电路,用于接收转换事务并且接收无效事务,每个转换事务定义输入存储器地址空间中的一个或多个输入存储器地址,这些输入存储器地址要被转换成输出存储器地址空间中的各个输出存储器地址,其中事务处理电路被配置成控制所述地址转换电路来提供输出存储器地址作为转换响应;

其中每个无效事务定义对转换数据的至少部分无效;

事务跟踪电路,用于把一组至少两个无效纪元中的一无效纪元与每个转换事务相关联并与每个无效事务相关联;以及

无效电路,用于存储定义给定无效事务的数据,并且对于具有与所述给定无效事务相同的无效纪元并且在所述无效电路存储定义所述给定无效事务的数据之后被所述地址转换电路处理的转换事务,处理这些转换事务以在由所述给定无效事务定义的无效适用于一转换事务时指示出该转换事务被无效;

所述无效电路被配置成:响应于所述无效电路对该数据的存储,至少转发对无效事务的确认以供其他装置进一步处理。

本技术的进一步的各个方面和特征由所附权利要求来定义。

附图说明

将参考如附图中所示的本技术的实施例来仅作为示例进一步描述本技术,在附图中:

图1示意性图示了数据处理系统;

图2示意性图示了存储器管理单元(MMU);

图3是图示出方法的示意流程图;

图4示意性图示了纪元(epoch)的指派;

图5和图6示意性图示了无效处理器的各方面;

图7-图10是图示出各个方法的示意流程图;并且

图11示意性图示了仿真器实现方式。

具体实施方式

装置的概述

图1示意性图示了数据处理装置100,其包括诸如处理元件(processing element,PE)之类的请求设备或请求者110,该请求设备或请求者110生成存储器访问事务作为其操作的一部分。存储器访问事务是根据输入存储器地址空间中的输入存储器地址定义的,例如虚拟存储器地址空间(virtual memory address space,VAS)中的虚拟存储器地址(virtual memory address,VA)。下文将进一步论述VA的使用。

图1还示出了存储器管理单元(memory management unit,MMU)120,其将与存储器访问事务105相关联的(一个或多个)地址从(一个或多个)输入存储器地址转换成输出存储器地址空间中的(一个或多个)输出存储器地址,例如物理地址空间(physical addressspace,PAS)中的(一个或多个)物理地址(physical address,PA)。MMU把转换的事务115转发到互连电路130,该互连电路130提供路由117来供事务去到完成者设备140,例如主存储器和/或缓存存储器,并且供事务响应145最终返回到请求者设备110。

因此,图1的装置的基本视图是上游设备(例如请求者110)可经由MMU 120访问下游设备(例如完成者140,可选地经由诸如互连130之类的互连)处的信息以在上游设备处使用的地址空间中的存储器地址与下游设备处的地址空间中使用的那些之间进行转换。访问可例如是读取访问、写入访问、检测或改变存储在下游设备处的数据的当前一致性状态的访问、或者其他类型的访问。

MMU 120包括转换缓冲器单元(translation buffer unit,TBU)以及转换控制单元(translation control unit,TCU)126,该TBU可(如下所述)包括转换后备缓冲器(translation lookaside buffer,TLB)122。

如前所述,TBU 124可利用转换后备缓冲器(TLB)122。作为如上所述的存储器访问事务的处理的一部分,被请求者110引用的VAS内的VA需要被转换成PAS中的PA,根据该PA来以电级别寻址(例如由完成者电路140寻址)系统存储器。此转换由TBU 124执行,即使TBU124不能够服务特定的转换,TBU 124也会从TCU 126获得所需的信息,如下所述。

TCU 126具有到互连130的接口132,TCU 126使用该接口132来进行诸如页表游走和从基于存储器的队列或缓冲器(两者都在下文论述)取回命令之类的活动。

请注意,虽然TLB 122在图1中被示为TBU 124的一部分,但TLB 122可改为实现为请求者设备110的一部分或者与请求者设备110相关联,或者在其他实施例中TLB的功能可在请求者设备110和TBU 124两者处提供。在一些示例中,请求者设备110可与该请求者设备本地的所谓的“微”TLB相关联并且MMU可与“主”TLB相关联。

MMU 120可以是单阶段或多阶段(例如两阶段)MMU,其例如包括阶段1MMU和阶段2MMU。

在单阶段MMU中,利用由例如操作系统(OS)建立和监督的转换信息(例如所谓的页表)直接进行VA到PA转换。OS可由与应用程序相同的PE(例如请求者设备110)执行或者可由不同的PE执行,但通常OS以比应用程序更高的权限或安全性级别执行。

在示例两阶段MMU中,执行中的程序或者诸如请求者设备110之类的其他系统模块所要求的VA被阶段1MMU转换成中间物理地址(intermediate physical address,IPA)。IPA被阶段2MMU转换成物理地址(PA)。使用多阶段转换的一个原因是为了当可以在同一处理器上运行的各个“虚拟机”上使用各自的操作系统(OS)时信息处理的安全性。特定的OS接触并且监督VA到IPA转换,而只有超级监督者(监督虚拟机的运行的软件)能够监督阶段2(IPA到PA)转换。通常,超级监督者以比OS更高的权限或安全性级别执行,OS又以比应用程序更高的权限或安全性级别执行。

转换信息的无效

存储器地址转换(无论是从VA到PA,还是从VA到IPA再到PA)是如上所述根据转换信息执行的。这种信息可被缓冲在TLB中或者可形成页表数据的一部分(页表数据本身可被缓冲在例如所谓的游走缓存中)。

转换信息的来源是控制和监督转换过程的系统,该系统(如上所述)通常可以是OS或超级监督者。出于各种原因,该监督系统不时会有把转换信息中的至少一部分无效的需求。

无效可例如针对VAS、IPA空间或PAS的一部分来定义,和/或按照存储器访问事务的一个或多个来源(例如外围设备)来定义,和/或按照关于MMU操作的配置细节和/或按照可被用来与存储器访问事务的属性相比较的其他参数来定义。

实现这个的一种方式是监督系统发出无效。这种无效事务可按各种路线被提供给MMU,例如:(a)可作为所谓的DVM(分布式虚拟存储器管理)消息由CPU、处理元件或其他请求者发送到互连130,互连130随后将其转发到TCU,或者(b)通过使无效被写入到存储器中的命令的队列或缓冲器中,TCU经由接口132从该队列或缓冲器中进行读取。通常,无效一旦被TCU发动,就可能需要被继续转发到其他电路(例如TBU124),但在此之前,TCU需要确保无效事务被对照进行中的每个存储器事务进行了检查,以便检测该存储器访问事务本身是否应当被标记为被无效的。无效事务不被允许“超越”存储器访问事务并且传播到系统的其他部分(其他电路),除非可以保证会被该无效事务无效的任何存储器地址转换在自身没有被标记为被无效的情况下不被允许传播。

先前提出的用于实现该保证级别的布置涉及TCU在转发无效事务(例如转发到TBU)之前对照每个进行中的转换检查无效事务。TCU处的这个检查就处理资源和/或时延而言可能是昂贵的。具体地,在TCU处并行地执行检查就处理资源而言可能是昂贵的,因为需要被检查的事务的数目有可能是很大的。然而,在TCU处串行地执行检查就时延而言可能是昂贵的。具体地,因为TBU处的检查本身可花费较长时间,所以可认为能够尽可能早地把无效转发到TBU是有用的。

无效的伺机(opportunistic)检查

示例实施例使用所谓的伺机技术来应用无效。在实践中,这个记法意味着响应于无效事务,TCU一旦已有如下布置就位便可转发无效事务:这些布置可保证确保应当应用无效的存储器访问事务在没有被对照无效进行检查并且没有被标记为被无效(如果有的话)的情况下不能够离开TCU。换言之,一旦这种措施就位便可执行无效事务的转发,即使在该阶段对每个进行中的存储器访问事务的检查尚未被执行。

在至少许多情况下,这可避免需要“穿行”过进行中的事务并且因此可潜在地降低关于无效的处理开销。另外,这与在上文论述的先前提出的布置下可能的情况相比,可潜在地允许更早地转发无效事务。

这些技术是由TCU 126中的或者与TCU 126相关联的无效处理器(作为无效电路的示例)来实现的,如下所述。

转换控制单元

图2示意性图示了TCU 126的操作的至少一部分。示出的布置涉及单阶段MMU,但对于两阶段或其他多阶段MMU可使用类似的技术,其中每个阶段可能可以遵循相同的布置(或者可替换地,要论述的无效技术可应用到阶段的子集)。

在如图2中所示的形式中,在所示的示图的左侧在输入200处从TBU接收传入转换事务并且在图的右侧提供事务响应210(响应可能被以示意形式示出的输出缓冲器212缓冲)以返回到TBU。

然而,传入转换事务与控制电路295提供的无效事务是穿插(intersperse)进行的。控制电路295监督如图2中所示的整个布置的操作(如对角箭头204示意性表示),但在输入无效事务的情境中,控制电路295响应于上文提及的DVM消息和/或来自指令的队列或缓冲器的存储器读取而生成这些无效事务。转换事务和无效事务的穿插由示意性的复用器202实现。复用器202的输出206因此提供了转换事务与无效事务的穿插流,其中对于每种类型对该流贡献多少没有预定的或者其他要求,也没有关于无效事务相比转换事务何时到达的任何要求。

无效事务被示意性连接208传递到无效处理器298。连接208允许:(a)把无效事务传递到无效处理器298,(b)无效处理器298对于输出206处的事务的计数和监视,以及(c)提供要与输出206处的事务相关联的无效纪元,如下所述。

传入转换事务被从复用器202传递到复用器215并且在游走缓存217(其在缓存控制器219的控制下操作)中形成缓存查找。转换请求属性也被存储在存储器220中,由此把标识符与游走缓存查找相关联并且与存储在存储器220中的属性相关联,以便当响应225从游走缓存返回时,根据标识符来把响应225与存储在存储器220中的属性重结合并且把它们传递到缓存响应处理器230以供处理。

游走缓存存储从先前页表游走得出的信息。如果所需信息被保存在了游走缓存217中,则缓存响应处理器230进行的处理可导致可使用的转换响应经由复用器235被路由到输出210。由路由240示意性表示的另一个可能性是该处理引起另一缓存查找(例如到下一级页表)。由路由245表示的另外一个可能性是该处理引起所谓的页表游走(page tablewalk,PTW)的发起,使得复用器250把缓存响应处理器的输出作为PTW请求255转发。

PTW请求的属性也同样与标识符相关联地被存储在存储器260中,使得当PTW响应265被接收到时,根据该标识符来把PTW响应265与其存储在游走缓存260中的属性重结合并且被PTW响应处理器270处理。该处理的结果可导致如路由275所表示的转换响应,如路由280所表示的另一PTW请求,或者实际上如路由285所表示的另一缓存查找。

MMU的操作的这些方面,以及下文将要论述的另外方面,在控制电路295的整体控制之下。

无效处理器298与下述四项相关联:提供有传入事务200的输入、缓存响应处理器、PTW响应处理器、和提供转换响应210的输出。无效处理器298的操作的各方面将在下文进一步论述。

无效纪元的指派

图3是图示出无效处理器298的操作的一个方面的示意流程图。这个方面涉及所谓的无效纪元的指派。

作为背景,在图2的复用器215的输入处接收的传入事务可包括:(i)需要存储器地址转换的存储器访问事务、或者(ii)无效事务。无效处理器298向每个这样的事务指派“无效纪元”。纪元可以是下述数值标识符:根据事务相对于其他事务被接收到的顺序,该数值标识符(至少在首次被指派时)标识出相继接收的事务的分组。

在一些示例中,纪元可以是纪元的有序集合或序列的一部分,使得要被指派给传入事务的纪元可被“递增”(移至有序集合或序列中的下一个,即使这不是通过数值“递增”或者向纪元标识符加一来表示的)。在一些示例中,有序集合或序列可以是循环有序集合或序列,使得序列“回绕”并且在从序列中的最末纪元执行递增时返回到初始纪元。在一些示例中,在有序集合中提供的纪元的数目是在任何一个时间可以潜在“存活”或者在使用中的纪元的数目的至少两倍。更概括而言,事务跟踪电路被配置成把当前无效纪元与每个接收到的转换事务相关联并且与每个接收到的无效事务相关联;并且事务跟踪电路被配置成响应于当前无效纪元与接收到的无效事务的关联而把当前无效纪元改变成无效纪元的集合中的另一无效纪元。

然而,基本要求只是需要(或者至少可能需要)被对照无效来检查的一组事务可与该无效相关联。因此不需要标识符是顺序的或者循环的;这些特征只是使得对照多个无效来检查事务潜在地更简单直接,因为这些特征可提供与要利用下文论述的技术检查的下一个无效的隐式或显式的关联。然而,在其他示例中,任何标识符,甚至是随机或伪随机的数字,也可被指派为无效纪元,只要相对于当前在系统内使用中的任何其他无效纪元该标识符是唯一的即可。可以全局地或者针对这些无效纪元中需要或者可能需要对照其来检查的每个事务来维护列表,其中一旦执行了特定检查则从该列表中删除条目。

每个纪元可具有相关联的计数器,其维护对与该纪元相关联的当前未检查的存储器访问事务的计数。

参考图3,在步骤300,无效处理器初始化器初始化所谓的传入纪元及其相关联的计数器(例如通过将计数器设置为零)。该传入纪元被指派给每个传入事务,一直到传入事务包括下一个接收的无效事务。针对每个被指派该无效纪元的转换事务,计数器被递增。在一些示例中,对于不需要对照无效来进行检查的事务,不递增计数器。这里的示例可包括已经被上游处理标记为无效的事务、不涉及TBU处的缓存的转换信息的事务、或者从架构上不允许被无效的任何类别的事务。

因此,参考图3,下一个事务在步骤310被接收并在步骤320被指派传入纪元。

如果在步骤330,接收到的事务实际上是无效事务,则控制传递到步骤340,在这里传入纪元被递增或者以其他方式被改变到新的传入纪元并且与该新的传入纪元相关联的计数器在步骤350被初始化,然后控制返回到步骤310。

另一方面,如果接收到的事务被检测为不是无效事务,则与现行传入纪元相关联的计数器在步骤360被递增或者以其他方式被改变并且控制返回到步骤310。

这个布置的作用是对于每个无效事务,将在它之前接收的一组事务以及有多少个这样的事务的计数与该无效事务相关联。

如上所述,传入纪元的递增可以是传入纪元被移至无效纪元的有序序列(例如循环有序序列)中的下一个纪元,但如前所述该序列实际上不需要是有序的或者循环的。

图4按照由个体矩形400表示的示例系列事务示意性图示了图3中所示的过程,其中更早接收到的事务在图4的右侧绘出并且更晚接收到的事务在图4的左侧绘出。纪元(按序列顺序)在此示例中被表示为纪元A、B、C...

假定传入纪元首先被初始化为纪元“A”并且三个事务在无效事务410之前被接收到。这三个接收到的事务420的每一者与无效事务410一样与传入纪元A相关联。计数器随每个非无效事务被递增并且计数值1、2、3在每个相应事务的上方示出。因此,在针对纪元A最终应用图3的步骤360时,纪元A的计数器达到值3。

响应于无效事务410,传入纪元在步骤340被递增到纪元“B”并且与纪元B相关联的计数器被初始化。然后,随着事务430被接收到,它们与传入纪元B相关联并且计数器被递增1、2。纪元B的计数器达到值2。下一个无效事务440也与纪元B相关联并且传入纪元随后被递增到有序序列中的下一个纪元“C”并且与纪元C相关联的计数器被重置为0。随后接收到的事务450与无效纪元C相关联并且计数器随每一个事务被递增。

以上的图3和图4涉及的是无效处理器298对无效纪元的分配。现在将描述无效处理器298的操作的涉及无效的伺机应用的另外方面。

因此,无效处理器298在这里充当事务跟踪电路,该事务跟踪电路被配置成把当前无效纪元与每个接收到的转换事务相关联并与每个接收到的无效事务相关联;并且响应于当前无效纪元与接收到的无效事务的关联,把当前纪元改变成无效纪元的有序序列中的下一个纪元。

请注意,给定的事务在在它之后到达的所有无效的范围内。因此,例如,事务420的每一者最初与无效纪元A相关联,但一旦它们已被对照无效410进行了检查,则要求它们对照无效B来检查,等等依此类推。下文将针对计数器的递增和递减来进一步论述这一点。

无效处理器的进一步操作

作为概述,图5示意性图示了无效处理器的操作的有序的一方面,因为其具有多个所谓的“槽位”500、510。请注意,在图5中示意性表示了两个这种槽位,但可提供不同的数目的槽位。

每个槽位提供了处理电路的表现形式以基于伺机来应用个体无效。

无效事务520被提供到槽位之一(500),并且取决于下文将要讨论的操作的特征,先前由槽位500保存的无效事务可被提供到槽位510。每个槽位与比较电路和其他电路相关联以使得能够检测事务的属性并且写入无效标志、标记或者与这些事务相关的其他数据。

图6示意性图示了与图5的槽位500、510之一相关的示例布置。可提供多个这种槽位(例如,多于两个),因为与每个额外的槽位相关联的额外处理开销是相对较低的。

无效纪元存储装置600保存当前被该槽位处理的无效纪元。计数器610被初始化为由图3的步骤360生成的计数,换言之初始化为当接收到重置计数并且递增了传入纪元的无效事务时该计数器的值。因此,计数器610被初始化为该无效纪元可应用到的早前接收到的事务的总数。

在仍提供上述保证的同时,对事务的检查可在相对有限数目(相对于MMU电路)的位置处执行。对于该电路,例如这些位置可以是可观察架构上指定的行为的位置,例如在下述各项的输出(概括示为输出630)处:缓冲器212、缓存响应处理器230、以及PTW响应处理器270。对“架构上指定的”位置的使用指示出电路内事务可被观察的位置(这是架构规范的意义所在)。这个特征是潜在重要的,因为其具有如下效果:无效处理器298可在这些位置与事务交互,而不一定需要额外的存储器读取或写入操作或者额外的时延。这进而可意味着对事务处理操作的性能的影响(或成本)是很低的或者是零。

检测器620检测输出630处的事务的属性。无效检测电路640被布置成:取决于是否检测到无效(或者如上所述与无效相关联的不论什么参数)应用到输出630处的事务,选择性地把无效标志650与该事务相关联。如下所述,检查(a)在缓冲器212的输出处执行,并且也(b)在缓存响应处理器230以及PTW响应处理器270的输出处执行。

一旦事务已被检查,无论是否应用了无效标志,就进一步执行这两件事:(a)与该无效纪元相关联的计数器被递减,以表明在该无效纪元中剩下仍待检查的事务少了一个;以及(b)与新检查的这个事务相关联的无效纪元被改变成替换纪元。这个替换纪元可以是在有序序列中不早于刚才检查的纪元的无效纪元(或者对于非有序纪元,不早于刚才检查的纪元而被指派的无效纪元),无效电路针对该无效纪元当前并未存储定义相关联的无效事务的数据。因此,例如,在两槽位无效处理器的情况下,事务受到的检查使得该事务的无效纪元被改变成比两个槽位中的那两个都更晚的下一个纪元,或者换言之被改变成下述无效纪元:无效处理器针对该无效纪元当前并未存储定义相关联的无效事务的数据。更概括而言,替换纪元可以是被关联为当前纪元的纪元,对于接收到的那些事务而言,该纪元不早于与给定的无效事务相关联的无效纪元。

联系输出630的概括表现形式,这个布置提供了这样的示例:其中地址转换电路包括一个或多个(或者在示例中包括两个或更多个)相继处理部分(例如230、270);并且无效处理器被配置成响应于转换事务被一个或多个相继处理部分的每一者所处理而处理这些转换事务,例如其中无效电路被配置成响应于转换事务被一个或多个相继处理部分的每一者输出而处理这些转换事务。

游走控制器660在下文将要论述的环境下被配置成逐个走过所有正被MMU处理(或者至少正被缓存响应处理器和PTW响应处理器处理)的进行中事务并且检测它们中的任何一者是否应当被无效。游走控制器660的操作和其操作被发起的环境将在下文进一步论述。

图6的布置在控制电路670的控制之下。

因此,如上文讨论的那样操作的图1、图5和图6的装置提供了一种装置的示例,该装置包括:

地址转换电路120,被配置成访问定义一组存储器地址转换的转换数据;

事务处理电路(实现为120、215),用于接收转换事务并且接收无效事务,每个转换事务定义输入存储器地址空间中的一个或多个输入存储器地址,这些输入存储器地址要被转换成输出存储器地址空间中的相应输出存储器地址,其中所述事务处理电路被配置成控制所述地址转换电路来提供输出存储器地址作为转换响应;

其中每个无效事务定义对所述转换数据的至少部分无效;

事务跟踪电路298,用于把一组至少两个无效纪元中的一无效纪元与每个转换事务相关联并与每个无效事务相关联;以及

无效电路298(600,610),用于存储定义给定无效事务的数据,并且对于具有与所述给定无效事务相同的无效纪元并且在所述无效电路存储定义所述给定无效事务的数据之后被所述地址转换电路处理的转换事务,处理这些转换事务以在由所述给定无效事务定义的无效适用于一转换事务时指示出该转换事务被无效;

所述无效电路被配置成:响应于所述无效电路对所述数据的存储,至少转发对无效事务的确认以供其他装置进一步处理。

输出缓冲器检查

对缓存响应处理器和PTW响应处理器的输出处的事务的检查在一些情形中可能不足以提供上述保证。为了能够实现无效事务的转发并且确保该保证适用,在一些示例中,确认至少需要被对照无效进行检查的事务当前没有被缓冲用于输出,也是适当的。这也可由检测器620根据下面的图7的技术来执行。

这提供了这样的示例,其中MMU包括输出缓冲器电路212的一个或多个实例来存储被地址转换电路处理的转换事务;其中无效处理器被配置成在无效电路至少转发对无效事务的确认之前检测具有与给定无效事务相同无效纪元的转换事务不存在于输出缓冲器电路中。

请注意,当事务在输出210处离开TCU时,其中仍包括该事务或者仍潜在与该事务相关的所有无效纪元的计数器递减——这包括引起伺机无效的那些无效纪元,等待槽位的那些无效纪元,以及尚未与无效事务相关联的“传入”纪元。

伺机无效的发起

图7是图示出关于要处理的下一个无效事务的操作的示意流程图。

响应于下一个无效事务700——该下一个无效事务700(在这些步骤之前)可能被与无效电路相关联的存储器521保存,该存储器521用于存储要被无效电路处理的一个或多个无效事务的队列,在步骤720进行尝试来为该无效事务建立无效槽位,也就是说,如上所述,该无效事务被存储到无效处理器298中的空闲槽位。

当这成功时(在步骤730处检测),控制传递到步骤710,在这里检查到在(一个或多个)输出缓冲器212中没有剩有该无效可应用的事务。这是通过检测器620检查到在输出210处正输出的任何事务具有比正被检查的当前纪元更晚指派的无效纪元(或者检测器620等待这种情形)来完成的。当步骤710完成时,则MMU 120处于其可确信应当应用该无效的事务不会在没有被无效的情况下离开MMU的状态中。因此,虽然无效不一定已被此阶段完成,但所谓的懒惰或者伺机检测和无效系统已被建立到没有事务可在尚未被适当处理的情况下离开MMU的程度。因此,在这个阶段,无效可在步骤740被转发到其他电路,例如TBU,以便处理。

然而如果步骤730处的结果是否定的,因为无效处理器298没有空闲槽位可用,则控制传递到步骤760,在这里进行所谓的游走以便释放槽位。这涉及游走控制器660依次检测缓存响应处理器和PTW响应处理器处的每个进行中的事务并且选择性地向该事务应用无效。每一次,与该无效相关联的计数被递减,并且当其达到0时,当前占用该槽位的无效可被引退并且槽位被腾空来用于新处理的事务。换言之,无效处理器被配置成响应于与无效事务相关联的无效纪元的计数值指示出没有剩余有尚未被无效电路处理的与该无效纪元相关联的转换事务,而引退该无效事务。

步骤760提供了这样的操作的示例,其中无效处理器被配置成选择性地完成对无效电路当前为其存储数据的无效事务的处理,以允许无效电路接受来自队列的下一个无效事务,其方式是通过在计数值指示出大于零时检测当前正被地址转换电路处理的每个转换事务,并且当当前正在进行中的转换事务具有与要完成的无效事务相同的无效纪元时,递减计数值并且选择性地向该转换事务应用无效。

步骤770在必要时(以及在步骤770处检测到时)被重复,直到空闲槽位可用为止。

请注意,当无效正在等待空闲槽位时,其不被对照事务来检查,但当其在队列中等待时其计数器可被改变。

图8示意性图示了例如对于输出210进行的步骤710的各方面。

在步骤800,无效处理器298检测输出210处的当前事务的无效纪元。如果在步骤810,这是比正被考虑的无效纪元更晚的纪元,则步骤710被认为在步骤820完成,因为不可能有仍被保存在输出缓冲器等中的需要被对照当前无效来检查的相关事务。然而,如果不是,则控制返回到步骤800。

图9示意性表示了图6的装置与缓存响应处理器230和/或PTW响应处理器270的输出有关的操作。请注意,这些步骤可以对于无效处理器的每个槽位并行地或者以其他方式执行。

这种输出在步骤900处被检测并且在步骤910处被检查以检测其是否具有与存储装置600所存储的当前无效纪元相同的无效纪元。如果答案为是,则控制传递到步骤920。如果否,则控制针对该输出处要检查的下一个事务返回到步骤900。

换言之,无效处理器被配置成存储定义两个或更多个无效事务的数据并且处理具有与这两个或更多个无效事务中的任何一者相同无效纪元的转换事务。

步骤920涉及递减用于该无效纪元的计数器,然后在步骤930检测无效是否适用于该事务。如果答案为是,则在步骤940该事务被标记为被无效。步骤930的否定结果或者步骤940的输出把控制传递到步骤950,在这里该事务的无效纪元如上所述被改变成最旧的当前未检查的无效纪元的。

请注意,对于步骤920,在具有多个槽位的无效处理器的情况下(像图5的示例中那样),事务被并行地对照潜在的多个无效进行处理。这些被检查的无效纪元的每一者的计数器因此被递减并且事务离开这些无效纪元的每一者。在步骤960,如果与当前无效纪元相关联的计数器已达到0,则在步骤970无效被引退,并且在步骤980,使得相关槽位可用来被重指派给另一无效。如果步骤960处的结果是否定的,则控制传递回到步骤900以接收来自相关电路的下一个输出。

总结方法

图10是图示出一种方法的示意流程图,该方法包括:

(在步骤1000)访问定义一组存储器地址转换的转换数据;

(在步骤1010)接收转换事务并且接收无效事务,每个转换事务定义输入存储器地址空间中的一个或多个输入存储器地址,这些输入存储器地址要被转换成输出存储器地址空间中的相应输出存储器地址,其中每个无效事务定义对所述转换数据的至少部分无效;

(在步骤1020)提供输出存储器地址作为转换响应;

(在步骤1030)把一组至少两个无效纪元中的一无效纪元与每个转换事务相关联并且与每个无效事务相关联;并且

(在步骤1040)存储定义给定无效事务的数据,并且,对于具有与所述给定无效事务相同的无效纪元并且在对定义所述给定无效事务的数据的存储之后被处理的转换事务,处理这些转换事务以在由所述给定无效事务定义的无效适用于一转换事务时指示出该转换事务被无效;并且

(在步骤1050)响应于所述无效电路对所述数据的存储而至少转发对无效事务的确认以供进一步处理。

仿真器实现方式

图11图示了可以使用的仿真器实现方式。虽然早前描述的实施例就用于操作支持所关注的技术的特定处理硬件的装置和方法而言实现了本发明,但也可以根据本文描述的实施例提供一种指令执行环境,其是通过使用计算机程序实现的。这种计算机程序经常被称为仿真器,鉴于其提供了硬件架构的一种基于软件的实现方式。仿真器计算机程序的变体包括模拟器、虚拟机、模型和二元转换器,包括动态二元转换器。通常,仿真器实现方式可运行在主机处理器1130上,该主机处理器1130可选地运行主机操作系统1120,支持仿真器程序1110。在一些布置中,在硬件与提供的指令执行环境和/或在同一主机处理器上提供的多个不同的指令执行环境之间可以有多层的仿真。历史上,曾要求有强大的处理器来提供以合理的速度执行的仿真器实现,但这种方案在某些情况下可能是有正当理由的,例如当出于兼容性或重复使用原因而希望运行另一处理器原生的代码时。例如,仿真器实现方式可提供具有主机处理器硬件不支持的额外功能的指令执行环境,或者提供通常与一不同的硬件架构相关联的指令执行环境。仿真的概述在“Some Efficient ArchitectureSimulation Techniques”,Robert Bedichek,Winter 1990USENIX Conference,第53-63页中给出。

就先前已参考特定的硬件构造或特征描述了实施例而言,在仿真的实施例中,等同的功能可由适当的软件构造或特征来提供。例如,特定的电路在仿真实施例中可实现为计算机程序逻辑。类似地,存储器硬件,例如寄存器或缓存,在仿真实施例中可实现为软件数据结构。在先前描述的实施例中提及的硬件元素中的一个或多个存在于主机硬件(例如,主机处理器1130)上的布置中,一些仿真实施例在适当时可利用主机硬件。

仿真器程序1110可被存储在计算机可读存储介质(其可以是非暂态介质)上,并且提供到目标代码1100(这可包括应用、操作系统和超级监督者)的程序接口(指令执行环境),这可以与由仿真器程序1110建模的硬件架构的接口相同。从而,目标代码1100的程序指令,包括上文描述的特征,可利用仿真器程序1110从指令执行环境内来执行,使得不实际具有上文论述的装置的硬件特征的主机计算机1130可模拟这些特征。

图11的布置因此提供了一种计算机程序的示例,用于控制主机数据处理装置来提供指令执行环境,包括:

地址转换电路,被配置成访问定义一组存储器地址转换的转换数据;

事务处理电路,来接收转换事务并且接收无效事务,每个转换事务定义输入存储器地址空间中的一个或多个输入存储器地址,这些输入存储器地址要被转换成输出存储器地址空间中的各个输出存储器地址,其中所述事务处理电路被配置成控制所述地址转换电路来提供输出存储器地址作为转换响应;

其中每个无效事务定义对所述转换数据的至少部分无效;

事务跟踪电路,用于把一组至少两个无效纪元中的一无效纪元与每个转换事务并且与每个无效事务相关联;以及

无效电路,用于把存储定义给定无效事务的数据,并且对于具有与所述给定无效事务相同的无效纪元并且在所述无效电路存储定义所述给定无效事务的数据之后被所述地址转换电路处理的转换事务,处理这些转换事务以在由所述给定无效事务定义的无效适用于一转换事务时指示出该转换事务被无效;

所述无效电路被配置成:响应于所述无效电路对所述数据的存储,至少转发对无效事务的确认以供其他装置进一步处理。

在本申请中,词语“被配置成”被用于意指装置的元素具有能够执行定义的操作的配置。在此上下文中,“配置”指的是硬件或软件的布置或者互连方式。例如,装置可具有提供定义的操作的专用硬件,或者处理器或其他处理装置可被编程为执行该功能,在此情况下,用来执行该功能的软件或程序指令,以及用来提供(例如,存储)这种软件或程序指令的提供介质(例如非暂态机器可读介质),被认为表示本公开的实施例。“被配置成”并不意味着为了提供定义的操作,装置元素需要被以任何方式改变。

虽然本文已参考附图详细描述了本技术的说明性实施例,但要理解本技术不限于这些确切的实施例,并且在不脱离如所附权利要求限定的本技术的范围和精神的情况下,本领域技术人员可在其中实现各种改变、添加和修改。例如,在不脱离本技术的范围的情况下,从属权利要求的特征可与独立权利要求的特征进行各种组合。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:内存访问方法及装置

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类