首页> 中国专利> 数据处理系统中访问数据的方法以及电路安排

数据处理系统中访问数据的方法以及电路安排

摘要

一种方法和电路安排根据存储在存储器地址转换数据结构(如有效到真实地址转换(ERAT)或转换后备缓冲器(TLB))中的一种或多种搅和相关页面属性,有选择地搅和与处理单元耦合的一个或多个级别的高速缓冲存储器中的数据。例如,存储器地址转换数据结构可以结合存储器页面中的数据的存储器访问请求来访问,以便该数据结构中与存储器页面相关的属性可以用于控制是否搅和数据,以及如果是的话,如何与处理存储器访问请求相关地将数据格式化。

著录项

  • 公开/公告号CN103870397A

    专利类型发明专利

  • 公开/公告日2014-06-18

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201310628908.2

  • 申请日2013-11-29

  • 分类号G06F12/10;G06F15/173;G06F13/16;

  • 代理机构北京市柳沈律师事务所;

  • 代理人张贵东

  • 地址 美国纽约阿芒克

  • 入库时间 2024-02-20 00:20:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-12

    授权

    授权

  • 2014-07-16

    实质审查的生效 IPC(主分类):G06F12/10 申请日:20131129

    实质审查的生效

  • 2014-06-18

    公开

    公开

说明书

技术领域

本发明一般涉及数据处理,尤其涉及处理器架构以及其中的数据的组织。

背景技术

随着半导体技术在时钟速度的增加方面继续缓慢地越来越接近实际极 限,设计师越来越多地把注意力放在处理器架构的并行技术上来实现性能提 高。在芯片级上,往往将多个处理器核心布置在同一芯片上,以与独立处理 器芯片,或在某种程度上,与完全独立计算机几乎相同的方式起作用。另外, 甚至在核心内,通过使用专门管理某些类型的操作的多个执行单元来采用并 行技术。在许多情况下也采用流水线技术,以便将可能花费多个时钟周期来 执行的操作分解成几个阶段,使其他操作能够在较早的操作完成之前开始。 还采用多线程技术使多个指令流能够并行地得到处理,使得在任何给定时钟 周期中能够执行更综合工作。

继续利用并行技术的一个领域是在执行单元,例如,定点或浮点执行单 元的领域中。例如,许多浮点执行单元是高度流水线化的。但是,虽然流水 线技术可以提高性能,但当通过流水线处理的指令不相互依赖时,例如,在 后面的指令不使用较早指令的结果的情况下,流水线技术是最有效的。每当 指令作用在另一条指令的结果上时,通常,后面的指令不能进入流水线中, 直到较早的指令从流水线中退出和计算出它的结果。后面的指令被认为依赖 于较早的指令,后面的指令停顿下来等待较早指令的结果的现象被说成将“气 泡”,或未正在进行生产性操作的周期引入流水线中。

可以用于从流水线执行单元中提取较高利用率部分和消除未用气泡的一 种技术是引入多线程技术。这样,其他线程能够将指令发到流水线中的未用 时隙中,这抬高了利用率,因此扩大了总吞吐量。提高性能的另一种流行技 术是也称为将数据“矢量化”的单指令多数据(SIMD)框架。这样,响应相 同SIMD指令,同时对多个数据元素进行操作。矢量执行单元通常包括管理 矢量中的不同数据点和同时对所有数据点进行相似操作的多条处理线。例如, 对于依靠四(4)字矢量的架构,矢量执行单元可以包括对每个矢量中的四个 字进行相同操作的四条处理线。

也可以将上述技术组合在一起,得出使多个线程能够将SIMD指令发给 矢量执行单元以便同时处理数据点的“矢量”的多线程矢量执行单元。通常, 将调度算法与发出逻辑结合在一起使用,以保证每个线程以合理速率进行下 去,使执行单元流水线中的气泡的数量保持在最低水平上。

尽管SIMD执行单元具有突出执行能力,但已经发现,在将数据排列成 利用多线SIMD执行单元的格式的过程中消耗了相当数量的额外处理开销。 例如,当以结构阵列(AOS)格式将数据存储在存储器中以及执行单元处理 具有阵列结构(SOA)格式的数据时,这个问题更加严重。更进一步,在许 多情况下,一个进程可能需要一种格式的数据,而另一个进程要求数据具有 不同格式,这往往迫使数据以一种格式存储在存储器中,处理器在利用SIMD 执行单元处理数据之前将数据装载和重新排序成其他格式。

对这个问题的一种传统做法是将所有数据装载在矢量寄存器文件中,然 后在矢量寄存器文件中来回移动。但是,这种做法通常会浪费许多指令。另 一种做法是正好在进入寄存器文件中之前“搅和(swizzle)”或重排负载数据。 虽然这种做法通常节省了功能指令,但该做法通常仍然要求每个负载多次访 问数据高速缓存。

作为一个例子,依靠SIMD操作的许多典型工作负载遵循存在矢量装载, 接着像多次相加那样的SIMD浮点运算,然后接着矢量存储的简单循环。在 许多传统处理器架构中,这种三指令序列被当作四周期装载、单周期数学运 算、和四周期存储来处理,导致高速缓存带宽负担非常重和未充分利用SIMD 执行单元的处理能力的循环。

因此,在技术上仍然明显需要使与以适合在数据处理系统中执行,尤其 使用SIMD执行单元执行的格式排列数据相关的额外执行开销最小的方式。

发明内容

本发明通过提供一种方法和电路安排解决与现有技术相关的这些和其他 问题,该方法和电路安排根据存储在像有效到真实地址转换(ERAT)或转换 后备缓冲器(TLB)那样的存储器地址转换数据结构中的一种或多种搅和相 关页面属性,有选择地搅和与处理单元耦合的一个或多个级别高速缓冲存储 器中的数据。例如,存储器地址转换数据结构可以结合存储器页面中的数据 的存储器访问请求来访问,以便该数据结构中与存储器页面相关的属性可以 用于控制是否搅和数据,以及如果是的话,如何与管理存储器访问请求相关 地将数据格式化。这样,当从高速缓冲存储器中检索数据供处理单元处理时, 以最适合处理单元有效处理数据的形式将数据格式化。

因此,按照本发明的一个方面,在数据处理系统中通过如下步骤访问数 据:响应数据处理系统中的处理单元发起的存储器访问请求,访问存储器地 址转换数据结构,以便为该存储器访问请求进行存储器地址转换;访问该存 储器地址转换数据结构中的至少一种搅和相关页面属性,以便确定是否应该 搅和来自与该存储器访问请求相关的存储器页面的数据;以及根据该至少一 种搅和相关页面属性使来自存储器页面的数据以搅和后格式存储在高速缓冲 存储器中。

表征本发明的这些和其他优点和特征展示在所附的和形成其进一步部分 的权利要求书中,但是,为了更好地理解本发明,以及通过其使用所达到的 优点和目的,应该参考附图以及描述本发明的示范性实施例的伴随描述性内 容。

附图说明

图1是按照本发明的实施例的包括可用在数据处理中的示范性计算机的 示范性自动化计算总机的方块图;

图2是在图1的计算机中实现的示范性NOC的方块图;

图3是更详细地例示来自图2的NOC的节点的示范性实现的方块图;

图4是例示来自图2的NOC的IP块的示范性实现的方块图;

图5是例示按照本发明的示范性搅和操作的方块图;

图6是并入按照本发明的基于存储器地址转换搅和的示范性数据处理系 统的方块图;

图7是在图6中引用的ERAT的示范性ERAT条目格式的方块图;

图8是例示使用支持按照本发明的基于存储器地址转换搅和的数据处理 系统的示范性存储器访问的方块图;

图9是例示在图8的数据处理系统中进行装载访问的操作的示范性顺序 的流程图;

图10是例示在图8的数据处理系统中进行逐出的操作的示范性顺序的流 程图;

图11是例示包括多个级别的按照本发明的基于地址转换搅和的示范性 数据处理系统的方块图;以及

图12是例示使用按照本发明的基于地址转换搅和的分组首标的搅和的 方块图。

具体实施方式

按照本发明的实施例根据存储在像有效到真实地址转换(ERAT)或转换 后备缓冲器(TLB)那样的存储器地址转换数据结构中的搅和相关页面属性, 有选择地搅和存储在一个或多个级别高速缓冲存储器中的数据。例如,存储 器地址转换数据结构可以结合存储器页面中的数据的存储器访问请求来访 问,以便该数据结构中与存储器页面相关的属性可以用于控制是否和如何与 管理存储器访问请求相关地搅和数据。这样,当从高速缓存中检索数据时, 可以在存储在高速缓存中之前将搅和相关页面属性用于控制数据的有选择搅 和。

在这一点上,搅和指的是置换(permutation)、换位(transposition)或将 数据重排成不同排列。通常,进行搅和以便将数据重排成更适合利用处理单 元执行特定任务的格式。如下面更明显看到的,例如,可以将搅和用于将数 据重排,以使其成为更适合图像或图形处理,更适合处理分组首标,或更适 合用在以规则块或组为单位处理数据的许多其他应用的任何一种中的格式。

例如,搅和相关页面属性可以包括是否应该搅和页面中的数据、应该在 高速缓冲存储器的什么级别上搅和页面中的数据、当被逐出(cast out)时应 该将数据写回到更高级高速缓冲存储器中还是使其失效的指示、指示应该如 何将数据重封装在高速缓冲存储器中的跨步长度或尺寸、在每个跨步上访问 的数据的尺寸或数量、或可用在有选择地搅和高速缓冲存储器中的数据中的 任何其他搅和相关信息。

其他变种和修改例对于本领域的普通技术人员来说是显而易见的,因此, 本发明不局限于本文讨论的特定实现。

硬件和软件环境

现在转到附图,其中相同标号在几个视图中自始至终表示相同零件,图 1例示了按照本发明的实施例的包括可用在数据处理中的示范性计算机10的 示范性自动化计算总机。图1的计算机10包括至少一个计算机处理器12或 “CPU”,以及随机访问存储器14(“RAM”),该RAM14通过高速存储器总 线16和总线适配器18与处理器12连接以及与计算机10的其他部件连接。

存储在RAM14中的是应用程序20,即,执行像,例如,文字处理、电 子表格、数据库操作、视频游戏、股市模拟、原子量子过程模拟、或其他用 户级应用那样的特定数据处理任务的用户级计算机程序指令的模块。存储在 RAM14中的还有操作系统22。可结合本发明的实施例使用的操作系统包括 UNIXTM、LinuxTM、微软Windows XPTM、AIXTM、IBM i5/OSTM、和本领域的 普通技术人员可想到的其他操作系统。图1的例子中的操作系统22和应用程 序20被显示在RAM14中,但这样软件的许多部件通常也存储在非易失性存 储器中,例如,盘驱动器24上。

如下面更明显看到的那样,按照本发明的实施例可以在片上网络(NOC) 集成电路器件或芯片内实现,这样,计算机10被例示成包括两个示范性NOC: 视频适配器26和协处理器28。NOC视频适配器26可替代地可以称为图形适 配器,是专门为图形输出到像显示屏或计算机监视器那样的显示设备30而计 算的I/O适配器的例子。NOC视频适配器26通过高速视频总线32、总线适 配器18、和也是高速总线的前端总线34与处理器12连接。NOC协处理器 28通过总线适配器18、和也是高速总线的前端总线34和36与处理器12连 接。图1的NOC协处理器可以优化成,例如,在主处理器12的命令下加速 特定数据处理任务。

图1的示范性NOC视频适配器26和NOC协处理器28每一个都包括 NOC,该NOC包括集成处理器(“IP”)块、路由器、存储器通信控制器、和 网络接口控制器,它们的细节将在下面结合图2-3作更详细讨论。NOC视频 适配器和NOC协处理器每一个都最适用于使用并行处理以及需要快速随机 访问共享存储器的程序。但是,从本公开中受益的本领域的普通技术人员应 该懂得,本发明可以在除了NOC设备和设备架构之外的其他设备和设备架构 中实现。因此本发明不局限于在NOC设备内的实现。

图1的计算机10包括通过扩展总线40和总线适配器18与处理器12和 计算机10的其他部件耦合的盘驱动器适配器38。盘驱动器适配器38以盘驱 动器24的形式将非易失性数据存储设备与计算机10连接,可以使用,例如, 集成驱动电子设备(“IDE”)适配器、小型计算机系统接口(“SCSI”)适配 器、和本领域的普通技术人员可想到的其他适配器来实现。如本领域的普通 技术人员所想到,非易失性计算机存储器也可以实现成光盘驱动器、电可擦 除可编程只读存储器(所谓的“EEPROM”或“闪速”存储器)、RAM驱动 器等。

计算机10还包括一个或多个输入/输出(“I/O”)适配器42,它通过,例 如,软件驱动器和计算机硬件实现面向用户的输入/输出,以便控制到像计算 机显示屏那样的显示设备的输出,以及从像键盘和鼠标那样的用户输入设备 44的用户输入。另外,计算机10还包括用于与其他计算机48数据通信和与 通信网络50数据通信的通信适配器46。这样的数据通信可以通过RS-232连 线,通过像通用串行总线(“USB”)那样的外部总线,通过像IP数据通信网 络那样的数据通信网络,和以本领域的普通技术人员可想到的其他方式串行 地进行。通信适配器实现一台计算机直接或通过数据通信网络将通信数据发 送给另一台计算机的硬件级数据通信。适合用在计算机10中的通信适配器的 例子包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的以 太网(IEEE802.3)适配器、和用于无线数据通信网络通信的802.11适配器。

为了进一步说明起见,图2展示了按照本发明实施例的示范性NOC102 的功能方块图。图2中的NOC是在“芯片”100上,即,在集成电路上实现 的。图2中的NOC包括分组成互连节点的集成处理器(“IP”)块104、路由 器110、存储器通信控制器106、和网络接口控制器108。每个IP块104通过 存储器通信控制器106和网络接口控制器108适用于路由器110。每个存储 器通信控制器106控制IP块与存储器之间的通信,每个网络接口控制器108 通过路由器110控制IP块间通信。

在NOC102中,每个IP块代表作为积木用于NOC内的数据处理的同步 或异步逻辑设计的可重用单元。术语“IP块”有时被扩展成“知识产权块”, 其有效地将IP块指定为一方所有的设计,即,一方授权给半导体电路的其他 用户或设计者的知识产权。但是,在本发明的范围内,未要求IP块受任何特 定所有权支配,因此在本说明书中该术语总是被全写成“集成处理器块”。如 这里所规定,IP块是可能是或可能不是知识产权的主体的逻辑、单元、或芯 片布局设计的可重用单元。IP块是可以形成ASIC芯片设计或FPGA逻辑设 计的逻辑核心。

通过类比描述IP块的一种方式是IP块对于NOC设计如同库对于计算机 编程或分立集成电路部件对于印刷电路板设计。在按照本发明实施例的NOC 中,IP块可以实现成通用门级网表,实现成完全专用或通用微处理器,或以 本领域的普通技术人员可想到的其他方式实现。网表类似于高级程序应用的 汇编-代码列表,是IP块逻辑功能的布尔代数表示(门、标准单元)。NOC也 可以,例如,以用像Verilog或VHDL那样的硬件描述语言描述的可合成形 式实现。除了网表和可合成实现之外,NOC也可以用较低级物理描述实现。 诸如SERDES、PLL、DAC、ADC等的类似IP块元件可以以像GDSII那样 的晶体管布局格式分布。IP块的数字元件有时也以布局格式提供。还要懂得, IP块以及按照本发明实现的其他逻辑电路可以以在各种细节水平上定义实现 这样逻辑的电路安排的功能和/或布局的计算机数据文件,例如,逻辑定义程 序代码的形式分发,因此,虽然已经和在下文中将在在全功能集成电路设备、 利用这样设备的数据处理系统、和其他有形、物理硬件电路中实现的电路安 排的背景下对本发明加以描述,但从本公开中受益的本领域的普通技术人员 应该懂得,本发明也可以在程序产品内实现,以及与用于分发程序产品的计 算机可读存储介质的特定类型无关地同等应用本发明,计算机可读存储介质 的例子包括,但不限于,诸如易失性和非易失性存储器件、软盘、硬盘驱动 器、CD-ROM、和DVD(等等)的可记录型介质。

图2的例子中的每个IP块104通过存储器通信控制器106适用于路由器 110。每个存储器通信控制器是适合于在IP块与存储器之间提供数据通信的 同步和异步逻辑电路的总成。IP块与存储器之间的这样通信的例子包括存储 器装载指令和存储器存储指令。存储器通信控制器106将在下面参考图3作 更详细描述。每个IP块104也通过网络接口控制器108适用于路由器110, 网络接口控制器108控制IP块104之间通过路由器110的通信。IP块104之 间的通信的例子包括并行应用中和流水线应用中IP块之间传送数据的消息和 处理数据的指令。网络接口控制器108也在下面参考图3详细描述。

多个路由器110以及它们之间的相应链路118实现NOC的网络操作。链 路118可以是在连接所有路由器的物理、并行导线总线上实现的分组结构。 也就是说,每条链路可以在宽到足以同时容纳包括所有首标信息和有效负载 数据的整个数据交换分组的导线总线上实现。如果分组结构包括,例如,64 个字节,其中包括8个字节首标和56个字节的有效负载数据,则对应每条链 路的导线总线是64个字节宽的512条导线。另外,每条链路可以是双向的, 使得如果链路分组结构包括64个字节,则导线总线实际上包含每个路由器与 网络中其每个邻居之间的1024条导线。在这样的实现中,消息可以包括不止 一个分组,但每个分组精确地与导线总线的宽度一致。在替代例中,可以在 只宽到足以容纳分组的一部分的导线总线上实现链路,以便可以将分组分解 成多个节拍,例如,以便如果一条链路被实现成16个字节宽,或128条导线, 则可以将64个字节分解成四个节拍。要懂得的是,不同实现可以根据实际物 理限制以及所希望运行特性使用不同总线宽度。如果路由器与导线总线的每 个部分之间的连接被称为端口,则每个路由器包括五个端口,网络上数据传 输的四个方向的每一个各一个,第五个端口使路由器通过存储器通信控制器 和网络接口控制器适用于IP块。

每个存储器通信控制器106控制IP块与存储器之间的通信。存储器可以 包括片外主RAM112、通过存储器通信控制器106直接与IP块连接的存储器 114、实现成IP块116的片上存储器、和片上高速缓存。在NOC102中,例 如,片上存储器114、116的任一个都可以实现成片上高速缓冲存储器。所有 这些形式的存储器都可以布置在相同地址空间、物理地址或虚拟地址中,甚 至对于直接附在IP块上的存储器也是如此。因此存储器寻址消息相对于IP 块可以是完全双向的,因为这样的存储器可以从网络上的任何地方的任何IP 块直接寻址。IP块上的存储器116可以从那个IP块或从NOC中的任何其他 IP块寻址。直接附在存储器通信控制器上的存储器114可以由通过那个存储 器通信控制器适用于网络的IP块寻址—也可以从NOC中的任何地方的任何 其他IP块寻址。

NOC102包括两个存储器管理单元(“MMU”)120,122,其为按照本发 明实施例的NOC例示了两种可替代存储器架构。MMU120在IP块内实现, 使IP块内的处理器可以在虚拟存储器中操作,同时使NOC的整合其余架构 可以在物理存储器地址空间中操作。MMU122是片外实现的,通过数据通信 端口124与NOC连接。端口124包括引脚和在NOC与MMU之间传导信号 所需的其他互连线,以及将消息分组从NOC分组格式转换成外部MMU122 所需的总线格式的足够智慧。MMU的外部地点意味着NOC的所有IP块中 的处理器可以在虚拟存储器地址空间中操作,到片外存储器的物理地址的所 有转换由片外MMU122管理。

除了使用MMU120,122例示的两种存储器架构之外,数据通信端口126 还例示了可用在能够用在本发明的实施例中的NOC中的第三种存储器架构。 端口126提供了NOC102的IP块104与片外存储器112之间的直接连接。 如果在处理路径中没有MMU,则这种架构让NOC的所有IP块利用物理地 址空间。在双向共享地址空间时,NOC的所有IP块可以通过由直接与端口 126连接的IP块引导、包括装载和存储的存储器寻址消息在地址空间中访问 存储器。端口126包括引脚和在NOC与片外存储器112之间传导信号所需的 其他互连线,以及将消息分组从NOC分组格式转换成外部片外存储器112所 需的总线格式的足够智慧。

在图2的例子中,将IP块之一指定成主接口处理器128。主接口处理器 128提供NOC与可以安装NOC的主计算机10之间的接口,并且还对NOC 上的其他IP块提供数据处理服务,包括,例如,从主计算机接收和在IP块 之间分派NOC数据处理请求。NOC可以,例如,如上面参考图1所述将视 频图形适配器26或协处理器28实现在较大型计算机10上。在图2的例子中, 主接口处理器128通过数据通信端口130与较大型主计算机连接。端口130 包括引脚和在NOC与主计算机10之间传导信号所需的其他互连线,以及将 消息分组从NOC分组格式转换成主计算机10所需的总线格式的足够智慧。 在图1中的计算机中的NOC协处理器的例子中,这样的端口将提供NOC协 处理器28的链路结构与NOC协处理器28与总线适配器18之间的前端总线 36所需的协议之间的数据通信格式转换。

图3接着例示了更详细地例示在用132笼统例示的NOC102中的IP块 104、存储器通信控制器106、网络接口控制器108和路由器110内实现的部 件的功能方块图。IP块104包括计算机处理器134和I/O功能136。在这个 例子中,计算机存储器用一片随机访问存储器(“RAM”)138表示在IP块104 中。存储器如上面参考图2所述,可以占据每个IP块上的内容可从NOC中 的任何IP块访问的几段物理地址空间。每个IP块中的处理器134、I/O能力 136、和存储器138有效地将IP块实现成一般可编程微型计算机。但是,如 上所述,在本发明的范围内,IP块一般代表作为积木用于NOC内的数据处 理的同步或异步逻辑的可重用单元。因此,将IP块实现成一般可编程微型计 算机尽管是可用于说明目的的普通实施例,但不限制本发明。

在图3的NOC102中,每个存储器通信控制器106包括多个存储器通信 执行引擎140。使每个存储器通信执行引擎140都能够执行来自IP块104的 存储通信指令,包括网络与IP块104之间的双向存储器通信指令流141,142, 144。存储器通信控制器106执行的存储器通信指令不仅源自通过特定存储器 通信控制器适合于路由器的IP块,而且源自NOC102中的任何地方的任何 IP块104。也就是说,NOC中的任何IP块都可以生成存储器通信指令,并通 过NOC的路由器将那种存储器通信指令发送给与另一个IP块相联系的另一 个存储器通信控制器以便执行那种存储器通信指令。这样的存储器通信指令 可以包括,例如,转换后备缓冲器控制指令、高速缓存控制指令、屏障指令、 和存储器装载和存储指令。

使每个存储器通信执行引擎140能够分开地和与其他存储器通信执行引 擎并行地执行完整存储器通信指令。存储器通信执行引擎实现为存储器通信 指令的并发吞吐量优化的可增减存储器事务处理器。存储器通信控制器106 支持所有都同时运行的多个存储器通信执行引擎140以便同时执行多条存储 器通信指令。新存储器通信指令由存储器通信控制器106分配给存储器通信 执行引擎140,存储器通信执行引擎140可以同时接受多个响应事件。在这 个例子中,所有存储器通信执行引擎140都是相同的。因此,增减存储器通 信控制器106可以同时管理的存储器通信指令的数量通过增减存储器通信执 行引擎140的数量来实现。

在图3的NOC102中,使每个网络接口控制器108能够将通信指令从命 令格式转换成通过路由器110在IP块104之间传送的网络分组格式。通信指 令可以由IP块104或由存储器通信控制器106以命令格式明确表达,并以命 令格式提供给网络接口控制器108。该命令格式可以是与IP块104和存储器 通信控制器106的架构寄存器文件相容的本机格式。网络分组格式通常是通 过网络的路由110传输所需的格式。每个这样的消息由一个或多个网络分组 组成。在网络接口控制器中从命令格式转换成分组格式的这样通信指令的例 子包括IP块与存储器之间的存储器装载指令和存储器存储指令。这样的通信 指令还可以包括在并行应用中和在流水线应用中在传送数据的IP块之间发送 消息的通信指令和在IP块之间处理数据的指令。

在图3的NOC102中,使每个IP块都能够通过IP块的存储器通信控制 器向和从存储器发送基于存储器地址的通信物,然后通过它的网络接口控制 器也发送给网络。基于存储器地址的通信物是由IP块的存储器通信控制器的 存储器通信执行引擎执行、像装载指令或存储指令那样的存储器访问指令。 这样基于存储器地址的通信物通常源自IP块,以命令格式明确表达,并转交 给存储器通信控制器加以执行。

许多基于存储器地址的通信物利用消息业务来进行,因为要访问的某个 存储器可能处在物理存储器地址空间中的某个地方,片上或片外,直接附在 NOC中的某个存储器通信控制器上,或最终通过NOC的某个IP块访问—IP 块与该NOC无关地始发某个特定基于存储器地址的通信物。因此,在NOC 102中,将利用消息业务进行的所有基于存储器地址通信物从存储器通信控 制器传递到相关网络接口控制器,以便从命令格式转换成分组格式和在消息 中通过网络发送。在转换成分组格式时,网络接口控制器还依赖于基于存储 器地址的通信物要访问的一个或几个存储器地址地识别分组的网络地址。利 用存储器地址寻址基于存储器地址的消息。每个存储器地址由网络接口控制 器映射成网络地址,通常,负责某个范围物理存储器地址的存储器通信控制 器的网络地点。存储器通信控制器106的网络地点自然也是存储器通信控制 器的相关路由器110、网络接口控制器108、IP块104的网络地点。每个网络 接口控制器内的指令转换逻辑150能够为了通过NOC的路由器发送基于存储 器地址通信物的目的将存储器地址转换成网络地址。

一旦从网络的路由器110接收到消息业务,每个网络接口控制器108就 检查每个分组是否有存储器指令。将包含存储器指令的每个分组交给与正在 接收网络接口控制器相联系的存储器通信控制器106,存储器通信控制器106 在将分组的其余有效负载发送给IP块作进一步处理之前执行存储器指令。这 样,在IP块开始执行依赖于特定存储器内容的来自消息的指令之前,总是准 备好存储器内容来支持IP块的数据处理。

在图3的NOC102中,使每个IP块104能够绕过它的存储器通信控制 器106,通过IP块的网络接口控制器108直接将IP块间的网络寻址通信物 146发送给网络。网络寻址通信物是通过网络地址指向另一个IF块的消息。 如本领域的普通技术人员所想到,这样的消息在流水线应用中发送工作数据, 在SIMD应用中在IP块之间发送用于单个程序处理的多个数据等等。这样的 消息与基于存储器地址通信物的不同之处在于它们一开始就被始发IP块网络 寻址的,该始发IP块知道通过NOC的路由器将消息引向的网络地址。这样 的网络寻址通信物由IP块通过I/O功能136以命令格式直接传递给IP块的网 络接口控制器,然后由网络接口控制器转换成分组格式,并通过NOC的路由 器发送给另一个IP块。这样的网络寻址通信物146是双向的,依赖于它们在 某个特定应用中的使用,潜在地转给NOC的每个IP块和从NOC的每个IP 块转出。但是,使每个网络接口控制器都能够向和从相关路由器发送和接收 这样的通信物,以及使每个网络接口控制器都能够绕过相关存储器通信控制 器106地直接向和从相关IP块发送和接收这样的通信物。

还使图3的例子中的每个网络接口控制器108都能够实现网络上的虚拟 通道,通过类型表征网络分组。每个网络接口控制器108包括按类型分类每 条通信指令,以及在以分组形式将指令转交给路由器110以便在NOC上发送 之前将指令的类型存储在网络分组格式的字段中的虚拟通道实现逻辑148。 通信指令类型的例子包括IP块间基于网络地址消息、请求消息、对请求消息 的响应、使引向高速缓存的消息失效;存储器装载和存储消息;以及对存储 器装载消息的响应等。

图3的例子中的每个路由器110包括路由逻辑152、虚拟通道控制逻辑 154、和虚拟通道缓冲器156。路由逻辑152通常被实现成同步和异步逻辑的 网络,其为由路由器110、链路118、和路由器之间的总线导线形成的网络中 的数据通信实现数据通信协议栈。路由逻辑152包括本领域的普通技术人员 可以将片外网络与路由表相联系的功能、在至少一些实施例中路由表被认为 太慢了,不方便用在NOC中。实现成同步和异步逻辑的网络的路由逻辑可以 配置成与单个时钟周期一样快地作出路由决定。本例中的路由逻辑通过为转 发在路由器中接收的每个分组选择一个端口来传送分组。每个分组包含分组 要去往的网络地址。

在上面描述基于存储器地址通信物中,每个存储器地址被描述成由网络 接口控制器映射到网络地址,即,存储器通信控制器的网络地点。存储器通 信控制器106的网络地点自然也是那个存储器通信控制器的相关路由器110、 网络接口控制器108和IP块104的网络地点。因此,在IP块间,或基于网 络地址的通信物中,应用级数据处理通常也将网络地址视作由NOC的路由 器、链路、和总线导线形成的网络内IP块的地点。图2例示了这样网络的一 种组织是行和列的网格,其中每个网络地点可以实现成,例如,网格的每组 相关路由器、IP块、存储器通信控制器、和网络接口控制器的唯一标识符或 网格中每个这样的组的x,y坐标。

在图3的NOC102中,每个路由器110实现两个或更多个虚拟通信通道, 其中每个虚拟通信通道通过通信类型来表征。通信指令类型,因此虚拟通道 类型包括上述的那些消息:IP块间基于网络地址消息、请求消息、对请求消 息的响应、使引向高速缓存的消息失效;存储器装载和存储消息;以及对存 储器装载消息的响应等。为了支持虚拟通道,图3的例子中的每个路由器110 还包括虚拟通道控制逻辑154和虚拟通道缓冲器156。虚拟通道控制逻辑154 检查每个接收的分组是否具有其指定的通信类型,并将每个分组放入那种通 信类型的输出虚拟通道缓冲器中,以便通过端口发送给NOC上的相邻路由 器。

每个虚拟通道缓冲器156具有有限存储空间。当在较短时段内接收到许 多分组时,可能填满虚拟通道缓冲器—使得再也不能将分组放入缓冲器中。 换句话说,到达缓冲器充满的虚拟通道的分组将被丢弃。但是,利用总线导 线的控制信号,使本例中的每个虚拟通道缓冲器156能够通过虚拟通道控制 逻辑劝告周围路由器暂停在虚拟通道中的发送,即,暂停特定通信类型的分 组的发送。当如此暂停一个虚拟通道时,所有其他虚拟通道不受影响—可以 继续满负荷运行。控制信号一直通过每个路由器有线传回到每个路由器的相 关网络接口控制器108。每个网络接口控制器被配置成一旦接收到这样的信 号,就描绘从它的相关存储器通信控制器106或从它的相关IP块104接收暂 停虚拟通道的通信指令。这样,虚拟通道的暂停影响一直回溯到始发IP块、 实现该虚拟通道的所有硬件。

暂停虚拟通道中的分组发送的一种效果是再也不会丢弃分组。当路由器 遇到在像,例如,互联网协议那样的一些不可靠协议中可能丢弃分组的状况 时,图3的例子中的路由器通过它们的虚拟通道缓冲器156和它们的虚拟通 道控制逻辑154暂停虚拟通道中的所有分组发送,直到缓冲空间再次可用, 从而没有任何必要丢弃分组。因此,图3的NOC可以利用极薄一层硬件来实 现高度可靠的网络通信协议。

图3的示范性NOC还可以配置成保持片上和片外存储器高速缓存两者之 间的高速缓存一致性。每个NOC可以支持每一个可以针对相同底层存储器地 址空间操作的多个高速缓存。例如,高速缓存可以由IP块,由存储器通信控 制器,或由NOC外部的高速缓存控制器来控制。图2的例子中的片上存储器 通信控制器114,116的任一个也可以实现成片上高速缓存,以及在本发明的 范围内,高速缓冲存储器也可以片外实现。

例示在图3中的每个路由器110包括五个端口,即,通过总线导线118 与其他路由器连接的四个端口158A-D、和通过网络接口控制器108和存储器 通信控制器106将每个路由器与它的相关IP块104连接的第五端口160。可 以从图2和3中的例示中可以看出,NOC102的路由器110和链路118形成 垂直和水平链路连接每个路由器中的垂直和水平端口的网状网络。在图3的 例示中,例如,端口158A,158B,和160被称为垂直端口,端口158B和158D 被称为水平端口。

图4接着以另一种方式例示了实现成划分成发出或指令单元(IU)162、 执行单元(XU)164和辅助执行单元(AXU)166的、按照本发明的IP块 104有一种示范性实现。在例示的实现中,IU162包括从L1指令高速缓存 (iCHCHE)170接收指令的多个指令缓冲器168。每个指令缓冲器168专用 于多个,例如,四个对称多线程(SMT)硬件线程之一。有效到真实地址转 换单元(iERAT)172与iCHCHE170耦合,用于将来自多个线程取出定序器 174的指令提取请求转换成从较低级存储器中检索指令的真实地址。每个线 程取出定序器174专用于特定硬件线程,用于保证相关线程要执行的指令被 取到iCHCHE中以便分派给合适执行单元。也如图4所示,取到指令缓冲器 168中的指令也可以通过分支预测逻辑176监视,分支预测逻辑176向每个 线程取出定序器174提供提示,以便使执行线程时分支引起的指令高速缓存 丢失最少。

IU162还包括专用于每个硬件线程、和配置成解决依赖性问题和控制指 令从指令缓冲器168到XU164的发出的依赖性/发出逻辑块178。另外,在 例示的实施例中,在AXU166中配备了分开依赖性/发出逻辑180,因此允许 分开指令由不同线程同时发给XU164和AXU166。在一个可替代实施例中, 可以将逻辑180布置在IU162中,或可以完全省略逻辑180,使逻辑178将 指令发给AXU166。

XU164被实现成定点执行单元,包括与定点逻辑184、分支逻辑186和/ 装载/存储逻辑188耦合的一组通用寄存器(GPR)182。装载/存储逻辑188 与L1数据高速缓存(dCACHE)190耦合,由dERAT逻辑192提供有效到 真实地址转换。XU164可以配置成实现几乎任何指令集,例如,32b或64b PowerPC指令集的全部或一部分。

AXU166起包括专用代表性/发出逻辑180以及一个或多个执行块192的 逻辑执行单元的作用。AXU166可以包括任何数量的执行块,以及可以实现 几乎任何类型的执行单元,例如,浮点单元、或像加密/解密单元、协处理器、 矢量处理单元、图形处理单元、XML处理单元等。在例示的实施例中,AXU 166包括与XU164的高速辅助接口,例如,以便支持AXU架构状态与XU 架构状态之间的直接移动。

与IP块104的通信可以经由与NOC102耦合的网络接口控制器108,以 上面结合图2所讨论的方式管理。例如,访问L2高速缓冲存储器的基于地址 通信可以与基于消息通信一起提供。例如,每个IP块104可以包括专用输入 盒和/或输出盒,以便管理IP块之间的节点间通信。

本发明的实施例可以在上面结合图1-4所述的硬件和软件环境内实现。 但是,从本公开中受益的本领域的普通技术人员应该懂得,本发明可以在众 多不同环境中实现,以及可以不偏离本发明的精神和范围地对上述的硬件和 软件环境作出其他修改。这样,本发明不局限于本文公开的特定硬件和软件 环境。

基于地址转换的搅和

在SIMD矢量处理系统中,在将数据排列成利用SIMD处理单元中的多 条线的格式的过程中消耗了相当数量的额外开销。当以结构阵列(AOS)将 数据存储在存储器中以及需要处理具有阵列结构(SOA)格式的数据时,这 个问题更加严重。在许多情况下,一个进程可能想要一种格式的数据,而另 一个进程却偏爱不同格式,使得以一种格式将数据存储在存储器中,而要求 处理器在利用SIMD矢量单元之前装载和重新排序数据。

一般说来,为了解决这个问题,传统做法将所有数据装载在矢量寄存器 文件中,然后在矢量寄存器文件中来回移动。可替代地,可以正好在装入寄 存器文件中之前搅和数据。这后一种做法通常节省了功能指令,但仍然要求 每个负载多次访问数据高速缓存。许多工作负载遵循存在矢量装载,接着 SIMD浮点运算,再接着矢量存储的简单循环,这种三指令序列通常被实现 成四周期装载、单周期数学运算、和四周期存储。这种做法使高速缓存带宽 负担非常重,因此未充分利用SIMD执行单元。

另一方面,按照本发明的实施例利用地址转换数据结构和逻辑在存储器 系统的不同级别之间搅和数据,允许将搅和数据存储在一个或多个级别的高 速缓冲存储器中,以减少高速缓存访问和提高性能。尤其,可以将页表条目 (PTE),或主要用于在存储器架构中将有效或虚拟地址转换成真实地址的其 他适当数据结构用于存储定义是否要搅和存储在特定页面中的数据的一种或 多种搅和相关页面属性。可以将PTE放置在,例如,有效到真实地址转换 (ERAT)表、转换后备缓冲器(TLB)或页表中。搅和相关页面属性还可以 包括像指示应该如何将数据重封装在高速缓冲存储器中的跨步长度或尺寸、 在每个跨步上访问的数据的尺寸、当被逐出时应该将数据写回到更高级高速 缓冲存储器中还是使其失效、和应该发生搅和的高速缓冲存储器的级别的指 示等等。这个页面可以是整个页面,或简单地,如核心架构所定义的子页。

如图5所示,例如,可以以例示在222上的格式将数据的高速缓存行存 储在主存储器中,而可能希望使用例示在224上的格式将数据存储在一个或 多个级别的高速缓冲存储器中,以有助于,例如,矢量执行单元处理。与地 址转换逻辑和/或高速缓存逻辑相关的硬件逻辑可以用于与任何其他高速缓 存行一样地管理高速缓存行上的高速缓存一致性,页表条目或其他地址转换 数据结构将定义如何组织数据和应该如何访问数据的属性提供给硬件逻辑。 对这一行的矢量装载然后可以在单次访问中返还适当组织数据,因此与上述 简单循环例子一样,该循环使用三个处理器执行周期而不是九个,导致显著 加速。对这一行的其他字节或字访问也可以根据规定在PTE中的跨步长度和 访问尺寸计算适当偏移。

另外,虽然在一些实施例中,可能要求逐个高速缓存行地对准搅和的所 有数据,但这未必是所希望的,因此在一些实施例中,可能希望包括通过从 可以确定必须使哪些高速缓存行失效的更高级高速缓存支持失效跨过高速缓 存行和扩展跨步长度的能力。这可以通过为失效访问像ERAT那样的地址转 换数据结构,或将搅和相关属性存储在已经为失效访问的目录标记表中来完 成。

通过支持变量访问和除了字矢量之外的其他跨步长度,可以支持像装载 许多通信分组的一个或多个初始字节和并行处理它们的首标那样的功能。除 了矢量工作负载之外,这还可用于,例如,分组的标量整数处理。

在一些实施例中,可以包括控制是否根据负载访问只返还所请求高速缓 存行,或是否返还所有接触高速缓存行的定义在指令中的模式位或指令修饰 位。对于打算装载矢量的所有元素的情况,这起预取功能的作用。

另外,如上所述,可以将级别属性用于规定在高速缓冲存储器的几个级 别当中,在哪个级别内搅和数据。在本发明的一个实施例中,例如,可以以 标准存储器格式将数据存储在L2和/或L3高速缓存中,多个处理器可以对数 据进行不同作业,因为它们可以来回传递所有权。数据可以以标准格式保留 在L2和/或L3高速缓存中,而每个处理器不同地向那个处理器自己的L1高 速缓存中装载和搅和数据,以便为每个特定处理器优化对数据的访问。

另外,在一些实施例中,重新排序数据也可以为便于更强大优化访问地 将数据存储在高速缓存中创造条件。例如,与分散在几个存储体中相反,搅 和数据时常可以存储在单个存储体中,要不然需要更多的阵列处在活动状态 和更加费力。

例如,图6例示了适合实现按照本发明的基于地址转换搅和的示范性数 据处理系统200。系统200被配置成含有将多个处理核心204一起与存储器 管理单元(MMU)206耦合的存储器总线202。虽然在图6中只例示了两个 处理核心204,但应该懂得,在本发明的不同实施例中可以利用任何数量的 处理核心。

每个处理核心204是包括多(N)个硬件线程208,以及有效到真实地址 转换(ERAT)单元210和集成L1高速缓存212的SMT核心。如在现有技术 中所理解的那样,ERAT210用作存储器地址转换数据,例如,PTE的高速缓 存,通常与较低级数据结构,例如,布置在MMU206中或要不然MMU206 可访问的转换后备缓冲器(TLB)214相联系。TLB214可以用作通常存储在 存储器216中的较大页表的高速缓存。

存储器系统可以包括多级存储器和高速缓存,这样,数据处理系统200 被例示成包括与MMU206耦合和被处理核心204共享的L2高速缓存218。 但是,应该懂得,在本发明的其他实施例中可以利用各种可替代存储器架构。 例如,可以使用另外级别的高速缓冲存储器,例如,L3高速缓存,以及在一 些实施例中,例如,在基于非均匀存储器访问(NUMA)的数据处理系统中 可以划分存储器216。更进一步,另外的高速缓存级别可以专用于特定处理 核心,例如,以便每个处理核心包括可以集成成处理核心或耦合在处理核心 与存储器总线之间的专用L2高速缓存。在一些实施例中,L2或L3高速缓存 可以直接与存储器总线耦合,而不是经由与MMU的专用接口。

另外,应该懂得,例示在图6中的部件可以集成在相同集成电路器件或 芯片上,或可以布置在多个这样的芯片中。在一个实施例中,例如,在NOC 安排中每个处理核心被实现成的IP块,而在SOC安排中总线202、MMU206 和L2高速缓存218被集成在与处理核心相同的芯片上。在其他实施例中,总 线202、MMU206、L2高速缓存218和/或存储器216每一个可能被集成在与 处理核心相同或不同的芯片上,以及在一些情况下,处理核心可以布置在分 开芯片中。

因此,应该懂得,考虑到可以与本发明一起使用的各种各样已知处理器 和存储器架构,本发明不局限于本文例示的特定存储器架构。

为了实现按照本发明的基于地址转换搅和,数据处理系统200包括,例 如,布置在L2高速缓存218内、和可用于有选择地搅和存储在各种级别的存 储器子系统中的高速缓存行的搅和逻辑220。

如上所述,基于地址转换的搅和可以通过将一种或多种页面属性加入存 储器地址转换数据结构,例如,页表条目(PTE)中来实现。例如,图7例 示了能够保留在ERAT210或TLB214中、和扩展成包括各种页面属性232- 238以便支持基于地址转换的搅和的示范性PTE230。搅和属性232,例如, 1-位标志可以用于指示是否应该搅和页面中的数据。可以使用一个或多个位 实现的级别属性234可以用于规定应该在什么级别上搅和数据。在图6的例 示性实施例中,例如,级别属性234可以是控制只在L1高速缓存中还是在 L1和L2高速缓存两者中搅和数据的1-位值。

另外,在一些实施例中,可能希望可选地规定失效属性236,失效属性 236定义应该将搅和的和被逐出高速缓存的数据写回到更高级高速缓存中还 是简单地使其失效。进一步,在一些实施例中,可能希望包括规定用于搅和 数据的跨步长度的跨步属性238。

PTE230还存储与传统PTE类似的附加数据。例如,像指示页面是可高 速缓存的,受到保护的,还是只读的、是否需要存储器一致性或直写、终止 模式位等的属性那样的附加页面属性240可以包括在PTE中,同样可以将一 个或多个位分配给用户模式数据242,例如,用于软件一般性或控制高速缓 存锁定选项。可以提供访问控制页面属性244以便,例如,通过规定与授权 访问页面的进程相联系的进程标识符(PID),或可选地,匹配和/或屏蔽数据 的组合、或适合规定授权访问存储器的页面的一组进程的其他数据控制允许 什么进程可以访问存储器的页面。例如,访问控制属性可以从PID中屏蔽掉 一个或多个LSB,以便允许访问控制属性中与MSB匹配的任何PID访问相 应存储器页面。ERAT页面属性246为PTE存储有效到真实地址转换数据, 通常包括与用于访问PTE的有效/虚拟地址,以及也用于经由CAM功能索引 ERAT的有效/虚拟地址相对应的真实地址。

应该懂得,PTE230的格式也可以用在TLB214以及驻留在存储器架构 中的任何其他页表中。可替代地,存储在不同级别的存储器架构中的PTE可 以根据那种特定级别的存储器架构的需要包括其他数据或省略一些数据。更 进一步,应该懂得,虽然本文讨论的实施例利用术语“ERAT”和“TLB”来 描述存储或高速缓存处理器或处理核心中的存储器地址转换信息的各种硬件 逻辑,但这样的硬件逻辑可以用其他用语来指代,因此本发明不局限于以 ERAT和TLB的方式使用。另外,可以使用其他PTE格式,因此本发明不局 限于例示在图7中的特定PTE格式。

通过将搅和相关属性存储在PTE中,是否在特定高速缓冲存储器中搅和 页面中的数据的确定可以容易地与访问那个数据相联系作出。如在现有技术 中众所周知,例如,运行在固件、内核、分区管理器或操作系统中的管理程 序或其他管理程序级软件传统上用于将存储器页面分配给特定进程,和管理 要不然,如果进程试图访问未授权访问的存储器页面,则可能发生的访问违 例。这样的管理程序级软件,例如,可以为数据处理系统管理整个页表,数 据处理系统中的专用硬件用于将来自页表的PTE高速缓存在TLB214和 ERAT210中。因此,按照本发明的实施例能够衡量现有管理程序级访问控制, 以便代表各种应用或进程设置分配给那些应用或进程的存储器的什么页面将 存储搅和数据,以及如果这样的话,如何以及在何处搅和那个数据。

例如,为了例示利用按照本发明的基于地址转换搅和的示范性存储器访 问的目的,图8例示了示范性数据处理系统,尤其其中的示范性处理核心。 例如,如配备在处理核心的装载/存储单元中的地址生成逻辑252可以,例如, 响应在处理核心中执行的硬件线程(未示出)执行指令,生成从存储器的特 定页面中访问数据(例如,高速缓存行)的存储器访问请求。并行地将该存 储器访问请求发给ERAT253和L1高速缓存254两者,前者进行地址转换操 作,以及针对与正在请求硬件线程相联系的PID确定该存储器访问请求是否 得到授权,后者确定该存储器访问请求指定的高速缓存行当前是否高速缓存 在L1高速缓存中。在图8的例示性实施例中,将ERAT253表示成“dERAT”, 将L1高速缓存254表示成“dCache”,以指示这些部件与数据访问相联系, 以便可以提供相应iERAT和iCache部件来管理指令访问(未示出)。

ERAT253响应该存储器访问请求,为该存储器访问请求指定的存储器的 页面访问PTE256。管理程序保护异常管理逻辑258将该存储器访问请求的 PID与PTE中的访问控制位相比较,如果作为未授权该PID访问存储器的这 个页面的结果发生了访问违例,逻辑258通过如260所表示,将软件异常抛 给管理程序级软件发出中断信号。在存储器访问请求得到授权但在L1高速缓 存中发生丢失的情况下,将该存储器访问请求转发给装载/丢失队列262,装 载/丢失队列262将该请求发给较低级存储器,例如,L2高速缓存264。

更进一步,如图8所例示,将L2高速缓存264与搅和控制器266耦合, 搅和控制器266也利用PTE256中的数据来确定是否在L1和/或L2高速缓存 254,264中搅和高速缓存行。在要搅和高速缓存行的情况下,搅和控制器266 控制多路复用逻辑268输出L2高速缓存264返还的高速缓存行的搅和表示, 以便将搅和高速缓存行存储在L1高速缓存254中。如果不是,则搅和控制器 266控制多路复用逻辑268以不变形式将高速缓存行从L2高速缓存264馈送 到L1高速缓存254。搅和控制器266可以布置在数据处理系统250中的各种 部件中,例如,在L2高速缓存264内,或要不然与其耦合。在许多实施例中 可能希望,例如,使搅和控制器处在预期以未搅和格式存储高速缓存行的最 低级存储器中,以便搅和控制器可以与从较高级高速缓存中完成高速缓存行 请求结合搅和数据。

图9更详细地例示了响应数据处理系统250中代表进程的硬件线程发出 从高速缓存行中装载数据的存储器访问请求进行的操作270的顺序。为了简 化这个讨论,假设保护逻辑已经确定正在请求线程有权访问与该存储器访问 请求相联系的页面,因此在图9中未例示出访问控制相关步骤。因此,如果 允许线程从特定高速缓存行中装载数据,则对L1高速缓存254是否可以完成 该请求作出确定(方块272)。如果在L1高速缓存254上未丢失该存储器访 问请求,则L1高速缓存254完成该请求(方块274),并结束该存储器访问 请求的管理。

但是,如果在L1高速缓存254上丢失了该请求,则在方块276中将该请 求传送给装载/丢失队列262,以便在该队列中加入与该请求相对应的条目。 另外,可能希望将该条目中的一种或多种属性设置成对于高速缓存行与存储 在PTE中的搅和相关属性相对应。接着,在,例如,在到L2高速缓存或较 低级存储器的存储器总线上将该请求发给较低级存储器之前,在方块278中 如从PTE256中的页面属性中所确定,对是否指示搅和页面作出确定。如果 不是,则在方块280中为该存储器访问请求发出总线事务。另一方面,如果 要搅和页面,则在方块282中发出总线事务以及来自PTE256的附加搅和相 关边带数据。

搅和相关边带数据可以以按照本发明的许多方式在存储器总线上传送。 例如,可以在总线架构中提供附加控制线来规定总线事务是否与搅和数据相 联系,以便可以根据一条或多条控制线的状态作出是否要搅和数据的确定。 可替代地,可以将事务类型与搅和数据相联系,以便可以简单地根据总线事 务的事务类型作出确定。在别的其他实施例中,可以提供非搅和相关边带数 据,以及可以使搅和相关属性保留在多级存储器中的PTE中。

接着,在方块284中,由L2高速缓存264,尤其由其中的搅和控制器266 接收总线事务,例如,根据向其提供了总线事务的边带数据或从与L2高速缓 存相联系的TLB中的PTE的副本中确定是否要在L1高速缓存中搅和数据。 如果不是,则将控制传递给方块286,以便直接从L2高速缓存,或如果当前 未高速缓存在L2高速缓存中,则从主存储器返还所请求高速缓存行。

否则,如果要搅和高速缓存行,则方块284将控制传递给方块287,以 便在将数据返还给L1高速缓存之前搅和数据。搅和数据的方式通常基于硬编 码算法,或可替代地,基于经由搅和相关页面属性规定的跨步长度和/或数据 大小的可定制算法。另外,如方块288所例示,如果跨步长度和/或数据大小 跨过高速缓存行和如果模式位或其他控制信息指示应该检索不止一个高速缓 存行,则可以将控制传递给方块290,以便响应该请求搅和和返还一个或多 个另外高速缓存行。

图10接着例示了,例如,每当L1高速缓存中的修改数据被逐出到L2 高速缓存或更高级存储器中时可以执行的逐出例程300。根据PTE是否指示 数据是搅和的(方块302)。不带(方块304)或带有(方块306)搅和边带 数据地发出总线事务。L2高速缓存在方块308中接收总线事务,并确定某些 搅和相关属性是否指示要使数据失效而不是写回到L2高速缓存中。例如,如 果不需要将数据写回到更高级存储器中,例如,如果数据是只读数据,则可 能希望失效。

如果要使数据失效,则将控制传递给方块310,以便简单地在L2高速缓 存中使高速缓存行失效。否则,将控制传递给方块312,以确定数据是否是 搅和的。如果不是,则将控制传递给方块314,以便存储在L2高速缓存中未 改变的数据。如果数据是搅和的,则将控制传递给方块316,在将数据存储 在L2高速缓存中之前,通过搅和控制器流化数据以便去搅和数据。

可以按照本发明将搅和控制逻辑布置在存储器子系统的不同级别上。例 如,图11例示了包括通过三个级别的高速缓存与主存储器324的寄存器文件 322的数据处理系统320:L1高速缓存326、L2高速缓存328和L3高速缓存 330。可以将地址转换数据结构,例如,ERAT332和TLB334布置在存储器 子系统的各种级别上,以及也可以将采取搅和控制器336,338的形式的搅和 逻辑布置在存储器子系统的各种级别上。在一些实施例中,可以将搅和逻辑 集成到高速缓存控制器,例如,L2或L3高速缓存控制器340,342中。

但是,在其他实施例中,搅和逻辑可以与任何高速缓存控制器分开,可 以布置在处理器或处理核心的内部或外部。一般说来,实现本文所述功能的 搅和逻辑的实现完全在从本公开中受益的本领域的普通技术人员的能力之 内。

应该懂得,本文所述的实施例可用在许多应用中。例如,如图12所例示, 可能希望在网络处理应用中通过使用搅和控制器354一起搅和多个分组350 的首标352的第一字节或前几个字节并行处理多个分组350,以便将多个分 组的首标或其中的一些部分封装到相同高速缓存行中。如356所例示的所得 搅和数据只包括多个分组350的首标352的所希望字节,以便,例如,可以 使用矢量处理单元并行地进行多个分组的预处理。如上所述,本文所述实施 例的灵活性允许跨步长度等于分组大小,但未必与高速缓存行组织对齐,使 得多个分组的搅和另外可能导致与搅和高速缓存行的装载请求相联系地预取 一个或多个另外高速缓存行。

因此,按照本发明的实施例可以用于尤其与矢量化处理单元相联系地, 以及使与检索搅和数据有关的等待时间缩短地促进数据的搅和,以便优化所 检索数据的处理。可以不偏离本发明的精神和范围地对公开的实施例作出各 种附加修改。因此,本发明取决于本文所附的权利要求书。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号