数据处理

阅读:540发布:2020-05-16

专利汇可以提供数据处理专利检索,专利查询,专利分析的服务。并且一种 数据处理 器包括用于从CPU中接收外部操作数据的 存储器 管理单元。所述存储器管理单元基于外部操作数据设置外部操作数据的确定性数量值。所述确定性数量值可以是活跃值或非活跃值。所述数据处理器具有用于从存储器管理单元中接收存储器 信号 的非确定性处理器 块 ,并且具有控制块,所述控制块被配置成进行以下操作:(i)如果确定性数量值是活跃值,那么将存储器信号发送到NDP输出端,由此绕过性能增强块;或者(ii)如果确定性数量值是非活跃值,那么将表示响应数据的 请求 的存储器信号的至少一部分发送到性能增强块。,下面是数据处理专利的具体信息内容。

1.一种数据处理器,其特征在于,包括:
存储器管理单元,其具有MMU输入端和MMU输出端,其中所述存储器管理单元被配置为:
在所述MMU输入端处接收来自CPU的外部操作数据,所述外部操作数据能表示响应数据的请求
基于所述外部操作数据设置所述外部操作数据的确定性数量值,其中所述确定性数量值能够为活跃值或非活跃值的任一者;
基于所述外部操作数据和所述确定性数量值将存储器信号提供到所述MMU输出端,非确定性处理器,其包括:
NDP输入端,其被配置成接收来自所述MMU输出端的所述存储器信号;
控制块;
性能增强块;以及
NDP输出端,
其中所述控制块被配置为:
(i)如果所述确定性数量值是所述活跃值,将所述存储器信号发送到所述NDP输出端,由此绕过所述性能增强块;或者
(ii)如果所述确定性数量值是所述非活跃值,将能表示所述响应数据的请求的所述存储器信号的至少一部分发送到所述性能增强块,其中:
如果所述性能增强块包括所述响应数据,则所述性能增强块被配置成将所述响应数据发送到所述CPU;或者
如果所述性能增强块不包括所述响应数据,则所述性能增强块被配置成将所述存储器信号发送到所述NDP输出端。
2.根据权利要求1所述的数据处理器,其特征在于,所述存储器信号包括控制信号和请求信号,所述控制信号能表示所述确定性数量值,所述请求信号能表示所述响应数据的请求,并且其中所述非确定性处理器块另外包括:
路径块,其被配置成接收所述请求信号;
其中所述控制块被配置成接收所述控制信号,并且基于所述控制信号所述控制块被配置为:
(i)如果所述确定性数量值是所述活跃值,指示所述路径块将所述请求信号发送到所述NDP输出端,由此绕过所述性能增强块;或者
(ii)如果所述确定性数量值是所述非活跃值,指示所述路径块将所述请求信号发送到所述性能增强块。
3.根据权利要求2所述的数据处理器,其特征在于,如果所述性能增强块不包括所述响应数据,所述性能增强块被配置成发送:
所述请求信号到所述NDP输出端;以及
所述控制信号到所述NDP输出端。
4.根据在前的任一项权利要求所述的数据处理器,其特征在于,所述外部操作数据包括:
确定性信号,其被配置成设置所述确定性数量的所述值;以及
CPU请求数据,其能表示所述响应数据的请求。
5.根据权利要求4所述的数据处理器,其特征在于,所述CPU请求数据包括能表示存储器访问操作的数据部分以及能表示执行所述存储器访问操作的存储器位置的地址部分。
6.根据权利要求5所述的数据处理器,其特征在于:
所述路径块包括:
数据路径块,其被配置成接收所述数据部分;以及
地址路径块,其被配置成接收所述地址部分;以及
所述性能增强块包括数据阵列和标签阵列,
其中:
当所述确定性数量值是所述活跃值时:
所述数据路径块被配置成将所述数据部分发送到所述NDP输出端;以及所述地址路径块被配置成将所述地址部分发送到所述NDP输出端,以及当所述确定性数量值是所述非活跃值时:
所述数据路径块被配置成将所述数据部分发送到所述数据阵列;以及
所述地址路径块被配置成将所述地址部分发送到所述标签阵列。
7.根据在前的任一项权利要求所述的数据处理器,其特征在于,所述外部操作数据包括核心标识符,所述核心标识符表示在多核心CPU内的核心,并且其中:
所述存储器管理单元被配置成基于所述核心标识符设置所述确定性数量值为所述非活跃值或多个活跃值中的一个。
8.根据在前的任一项权利要求所述的数据处理器,其特征在于,另外包括耦合到所述NDP输出端的交叉开关,所述交叉开关被配置成接收:
来自所述NDP输出端的所述存储器信号,所述存储器信号能表示存储于存储器中的所述响应数据的请求;以及
多个另外的信号,所述多个另外的信号中的每一个能表示请求存储于所述存储器中的相应的响应数据的相应的请求,
其中所述交叉开关被配置成基于所述确定性数量值设置将所述存储器信号发送到所述存储器的优先级顺序。
9.根据权利要求8所述的数据处理器,其特征在于,另外包括第二非确定性处理器块,其中:
所述交叉开关位于所述存储器管理单元与所述第二非确定性处理器块之间;
所述第二非确定性处理器块被配置为:
接收来自所述交叉开关的所述存储器信号;以及
如果所述确定性数量值是所述活跃值,将请求发送到所述存储器以检索所述请求数据;或者
如果所述确定性数量值是所述非活跃值,将所述请求发送到第二性能增强块。
10.一种自动系统,其特征在于,包括根据在前的任一项权利要求所述的数据处理器。

说明书全文

数据处理

技术领域

[0001] 本发明涉及数据处理器并且具体地说涉及包括具有非确定性的或时间可变的数据处理行为的组件的数据处理器。

背景技术

[0002] 为了增大性能,现代数据处理器(包括集成电路系统,例如,“芯片上系统”(SoC))包含多层存储器(其可以例如是多层高速缓冲存储器或多层本地存储器)、预提取缓冲器、分支目标缓冲器和其它此类性能增强特征。虽然这些特征可以极大地增大数据处理器的性能,但是它们这样做的代价是确定性的降低。
[0003] 在此背景下,确定性是指通过数据处理器初始的特定事件将在具体确定的时间出现的肯定。举例来说,数据处理器可执行设计成在特定时间起始将电流脉冲供应到数据处理器外部的电子组件的软件程序。如果可以确保电流脉冲在特定时间处以仅较小的时间误差容限到达电子组件,那么所述过程可以被称为具有较高程度的确定性或者是“高度确定的”。相反地,如果可以仅确保电流脉冲加上或减去较大时间误差容限在特定时间到达,那么所述过程可以被称为具有较低程度的确定性。
[0004] 在数据处理器包括性能增强组件(例如,高速缓冲存储器)的情况下,性能增强组件的操作可能将较大的时间不确定性引入到中通过数据处理器处理的指令可以实际在处理器外部执行的时间点中。举例来说,处理器核心可以在两个不同时间点处执行相同功能,并且取决于性能增强资源的当前状态,外部指令的完成时间可能显著地改变。在第一情形中,所述功能可以调用可以保存在高速缓冲存储器中的数据,并且在高速缓冲存储器实际上确实包括相关数据的情况下,数据可以快速地供应到处理器核心,由此实现外部指令的快速性能。
[0005] 然而,在第二情形中,高速缓冲存储器可以在随后时间处并不包括相关数据。随后,在询问高速缓冲存储器并且确定相关数据不存在(需要一些时间量的过程)之后,数据处理器可能因此发送相关数据的请求到主存储器,这与访问高速缓冲存储器相比可能要慢的多。当相关数据最后被提供到处理器核心时,为了使得它能够提供用于外部指令的性能,与第一情形中的相同数据的提供相比可能已经经过了相当长的时间周期。以此方式,特定数据的处理器核心调用与实际执行的外部指令之间的时间周期可以是高度可变的,也就是说,它可能呈现较低程度的确定性。
[0006] 呈现较低程度的确定性的数据处理器对于许多应用程序(例如,自动应用程序)而言存在显著的问题。举例来说,动系统的操作可能受益于确保的即时行为。通过内燃机中的火花塞燃烧的计时提供其具体例子,在内燃机中火花塞是通过较高程度的确定性点火的(在若干纳秒的误差容限内),随后可以输送优良的燃烧效率。相反地,由数据处理器提供的具有较低程度的确定性的较大误差容限可以基本上降低燃烧效率。增大的确定性的需要很可能随着中央处理器单元(CPU)变得更加复杂而增大,例如,随着CPU渐增地包括具有多个线程的多个核心。

发明内容

[0007] 根据本发明的第一方面,提供数据处理器,其包括:存储器管理单元,其具有MMU输入端和MMU输出端,其中存储器管理单元可被配置为:在MMU输入端处接收来自CPU的外部操作数据,所述外部操作数据能表示响应数据的请求;基于外部操作数据设置外部操作数据的确定性数量值,其中确定性数量值可以为活跃值或非活跃值中的任一者;基于外部操作数据和确定性数量值将存储器信号提供到MMU输出端;非确定性处理器,所述非确定性处理器块包括:NDP输入端,其被配置成接收来自MMU输出端的存储器信号;控制块;性能增强块;以及NDP输出端,其中控制块可被配置为:(i)如果确定性数量值是活跃值,那么将存储器信号发送到NDP输出端,由此绕过性能增强块;或者(ii)如果确定性数量值是非活跃值,那么将能表示响应数据的请求的存储器信号的至少一部分发送到性能增强块,其中:如果性能增强块包括响应数据,那么性能增强块可被配置成将响应数据发送到CPU;或者如果性能增强块并不包括响应数据,那么性能增强块可以被配置成将存储器信号发送到NDP输出端。
[0008] 在一个或多个实施例中,存储器信号可以包括控制信号和请求信号。控制信号可以表示确定性数量值。请求信号可以表示响应数据的请求。非确定性处理器块可另外包括:路径块,其被配置成接收请求信号。控制块可被配置成接收控制信号,并且基于控制信号控制块可被配置为:(i)如果确定性数量值是活跃值,那么指示路径块将请求信号发送到NDP输出端,由此绕过性能增强块;或者(ii)如果确定性数量值是非活跃值,那么指示路径块将请求信号发送到性能增强块。
[0009] 在一个或多个实施例中,如果性能增强块并不包括响应数据,那么性能增强块可被配置成:将请求信号发送到NDP输出端;以及将控制信号发送到NDP输出端。
[0010] 在一个或多个实施例中,外部操作数据可以包括:确定性信号,其被配置成设置确定性数量的值;以及CPU请求数据,其能表示响应数据的请求。
[0011] 在一个或多个实施例中,CPU请求数据可以包括能表示存储器访问操作的数据部分和能表示用于执行存储器访问操作的存储器位置的地址部分。
[0012] 在一个或多个实施例中,路径块可以包括:数据路径块,其被配置成接收数据部分;以及地址路径块;其被配置成接收地址部分。性能增强块可以包括数据阵列和标签阵列,其中:当确定性数量值是活跃值时:数据路径块可被配置成将数据部分发送到NDP输出端;以及地址路径块可被配置成将地址部分发送到NDP输出端。当确定性数量值是非活跃值时,数据路径块可被配置成将数据部分发送到数据阵列;以及地址路径块可被配置成将地址部分发送到标签阵列。
[0013] 在一个或多个实施例中,外部操作数据可以包括能表示在多核心CPU内的核心的核心标识符。存储器管理单元可被配置成基于核心标识符设置确定性数量值为非活跃值或多个活跃值中的一个。
[0014] 在一个或多个实施例中,控制块可被配置成如果确定性数量值是活跃值,那么基于多个活跃值中的相关联的一个而确定将存储器信号发送到NDP输出端的优先级。
[0015] 在一个或多个实施例中,多个活跃值可能反映与在多核心CPU内的核心相关联的多个不同优先级。
[0016] 在一个或多个实施例中,多个活跃值可以包括较高优先级活跃值和较低优先级活跃值。
[0017] 在一个或多个实施例中,外部操作数据可以来自具有较高优先级核心和较低优先级核心的多核心CPU。外部操作数据可以表示以下任一者:较高优先级响应数据的来自较高优先级核心的请求;或较低优先级响应数据的来自较低优先级核心的请求。当确定性数量值是活跃值时,活跃值可以设置为较高优先级活跃值(当外部操作数据表示较高优先级响应数据的请求时)或较低优先级活跃值(当外部操作数据表示较低优先级响应数据的请求时)的任一者。
[0018] 在一个或多个实施例中,本文所公开的任何数据处理器可另外包括耦合到NDP输出端的交叉开关。交叉开关可被配置成接收:来自NDP输出端的存储器信号,所述存储器信号能表示存储于存储器中的响应数据的请求;以及多个另外的信号,所述多个另外的信号中的每一个能表示请求存储于存储器中的相应的响应数据的相应的请求。交叉开关可被配置成基于确定性数量值设置将存储器信号发送到存储器的优先级顺序。
[0019] 在一个或多个实施例中,优先级顺序设置较高优先级(当活跃值是较高优先级活跃值时)以及较低优先级(当活跃值是较低优先级活跃值时)。
[0020] 在一个或多个实施例中,交叉开关可被配置成以基于所设置的优先级顺序的次序将存储器信号和多个另外的信号发送到存储器。
[0021] 在一个或多个实施例中,可提供数据处理器,所述数据处理器另外包括第二非确定性处理器块。交叉开关可以位于存储器管理单元与第二非确定性处理器块之间。第二非确定性处理器块可被配置为:接收来自交叉开关的存储器信号;以及如果确定性数量值是活跃值,那么将请求发送到存储器以检索请求数据;或者如果确定性数量值是非活跃值,那么将请求发送到第二性能增强块。
[0022] 在一个或多个实施例中,本文所公开的任何数据处理器可另外包括存储器,其中当确定性数量值是活跃值时非确定性处理器块可被配置成将响应数据的请求发送到存储器,由此绕过性能增强块。
[0023] 在一个或多个实施例中,本文所公开的任何数据处理器可另外包括被配置成将外部操作数据提供到存储器管理单元的CPU。
[0024] 在一个或多个实施例中,存储器管理单元可以包括存储器保护单元。
[0025] 在一个或多个实施例中,可提供包括本文所公开的任何数据处理器的自动系统。
[0026] 在一个或多个实施例中,非确定性处理器块可以包括分支目标缓冲器、高速缓冲存储器或预提取缓冲器。
[0027] 在一个或多个实施例中,可提供包括本文所公开的任何数据处理器的集成电路。
[0028] 虽然本发明容许各种修改和替代形式,但其细节已经借助于例子在附图中示出且将详细地描述。然而,应理解,也可能存在除所描述的具体实施例以外的其它实施例。还涵盖属于所附权利要求书的精神和范围内的所有修改、等效物和替代实施例。
[0029] 以上论述并不意图表示当前或将来权利要求集的范围内的每一示例实施例或每一实施方案。以下附图说明和具体实施方式还举例说明各种示例实施例。结合附图考虑以下具体实施方式可以更全面地理解各种示例实施例。

附图说明

[0030] 现将仅借助于例子参考附图描述一个或多个实施例,在附图中:
[0031] 图1示出了包括耦合到非确定性处理器块的存储器管理单元的数据处理器的示例实施例;
[0032] 图2示出了当确定性位被设置成活跃值时非确定性处理器块的示例实施例;
[0033] 图3示出了当确定性位被设置成非活跃值时非确定性处理器块的示例实施例;
[0034] 图4示出了当确定性位被设置成非活跃值时非确定性处理器块的另一示例实施例;
[0035] 图5示出了具有用于指令和数据的单独的路径的数据处理器的示例实施例;以及[0036] 图6示出了具有在纵横开关的相对侧上的处理器核心和存储器阵列的数据处理器的示例实施例。

具体实施方式

[0037] 图1示出了包括耦合到非确定性处理器块120的存储器管理单元110的数据处理器100。数据处理器100耦合到CPU 130并且还耦合到存储器140。当操作时,CPU 130可能需要存储在CPU 130之外或外部的具体数据。为了获得具体数据,CPU可能产生表示具体数据的请求的外部操作数据132,所述外部操作数据132可以被称作响应数据。
[0038] 存储器管理单元110包括MMU输入端114和MMU输出端116。MMU输入端114被配置成从CPU 130中接收外部操作数据132。存储器管理单元110还被配置成基于外部操作数据设置外部操作数据的确定性位值。取决于外部操作数据的内容,数据处理器100以较高程度的确定性操作可能是重要的或者可能是不重要的。确定性位的值可以根据确定性对于具体过程是否重要来设置。因此,确定性位值可以为活跃值或非活跃值,其中当需要较高程度的确定性时设置活跃值,而当对于给定过程而言确定性程度并不重要时设置非活跃值。本领域的技术人员将理解活跃值可以是逻辑1而非活跃值可以是逻辑0,或反之亦然。更一般而言,确定性位是确定性数量的例子,其可具有作为活跃值或非活跃值中的任一者的值。在一些例子中,确定性数量可以是多位词语或可以指示是否需要较高程度的确定性(活跃值)或较低程度的确定性(非活跃值)的任何其它数据结构。在又其它例子中,确定性数量可具有多个活跃值中的一个,当设置活跃值时所述活跃值可用于设置处理外部操作数据的优先级。
[0039] 存储器管理单元110被配置成基于外部操作数据和确定性位值将存储器信号112提供到MMU输出端116。存储器信号112由此包括包含于外部操作数据中的信息以及包含于确定性位中的信息。
[0040] 非确定性处理器块120包括NDP输入端152,所述NDP输入端152被配置成从MMU输出端116中接收存储器信号112。因此,非确定性处理器块120接收表示CPU 130所需要的响应数据的请求的信息和确定性位值,所述确定性位值限定在确定性基础(也就是说,具有众所周知的且高度精确的时间延迟)或非确定性基础(其中准确的时间延迟并不重要)上是否需要具体响应数据。如果准确的时间延迟不重要,那么响应数据的较快的提供可以是可能的,即使较快响应可能因此是不太确定的。
[0041] 非确定性处理器块120可随后以三个可能方法中的一个执行,如下文相对于图2、3和4更详细地论述的。如果确定性位被设置成活跃值,那么非确定性处理器块120可以将响应数据的请求122直接地发送到存储器140,如相对于图2所描述。如果确定性位被设置成非活跃值,那么非确定性处理器块可以检查内部存储器资源以发现响应数据是否本地地存储在这些内部存储器资源中的一个中。如果响应数据是本地存储的,如相对于图3另外描述的,那么响应数据可以经由合适的信号124发送到CPU 130。此信号124可以从非确定性处理器块120的NDP输出端154直接地发送到CPU 130,如图所示,或者可以经由任何其它方便的信号路径发送。替代地,如果响应数据不是本地存储的,如下文相对于图4所述,那么响应数据的请求122可以被发送到存储器140。将了解在将请求发送到存储器140之前检查以确定非确定性处理器块120是否包括响应数据,如果它并不包括响应数据,那么向过程中引入了可变长度的时间延迟,这因而降低了过程的确定性。
[0042] 图2示出了具有NDP输入端202和NDP输出端204的非确定性处理器块200。非确定性处理器块200包括控制块210、性能增强块220和路径块230。
[0043] NDP输入端202被配置成从存储器管理单元(未示出)中接收存储器信号。在此例子中,存储器信号包括两个组分:控制信号212和请求信号232。控制信号212表示确定性位值。请求信号232表示响应数据的请求。
[0044] 非确定性处理器块200另外包括路径块230,所述路径块230被配置成接收请求信号,而控制块210接收控制信号212。在此例子中,确定性位值被设置为活跃值。因此,控制块210将路径控制信号214提供到路径块230。路径控制信号指导路径块230将请求信号232直接地发送到NDP输出端204。因此,请求信号232绕过性能增强块220,下文将相对于图3和4描述性能增强块220的功能性。控制块210还将控制信号212发送到NDP输出端204。NDP输出端
204可以由此将存储器信号提供到存储CPU所请求的响应数据的存储器(未示出)。在此例子中NDP输入端202示出为单个块。然而,将了解NDP输入端202可以包括多个端或插脚,每个端或插脚被配置成接收存储器信号的特定部分。类似地,NPD输出端204还可以包括多个端或插脚。
[0045] 当确定性位值是活跃值时,非确定性处理器块200接收存储器信号且随后将存储器信号提供到NDP输出端204所花费的时间量可以以相对较高程度的准确性已知。因此,当确定性位值是活跃值时,用于从CPU到存储器传播的响应数据以及发送至CPU的响应数据的请求所需要的时间可以为以较高程度的准确性已知。响应数据的请求所需要的时间还可以具有与对出现在不同时间的不同响应数据的所有花费相同时间量待处理的不同请求的较高程度的一致性,每个具有相同相对较高程度的准确性。通过在相同时间量中不断地提供请求数据,数据处理器可以以较高程度的确定性操作。
[0046] 图3示出了与图2的非确定性处理器块相似的非确定性处理器块300。相似特征已经给予相似参考标号,且此处可能未必另外讨论。
[0047] 在图3中,控制信号312表示具有非活跃值的确定性位。因此,控制块将路径控制信号314发送到路径块330使得路径块330由此被配置成将请求信号332发送到性能增强块320。在一些例子中,路径块330可被配置成将整个存储器信号发送到性能增强块320。一般而言,发送到性能增强块的信号应当表示响应数据的请求,尽管将了解信号可以是存储器信号的经修改或经适配的版本或存储器信号的一部分。
[0048] 性能增强块320可以为高速缓冲存储器、分支目标缓冲器、预提取缓冲器(作为非限制性例子)。性能增强块320存储可为CPU所需要的数据由于性能增强块320位于较靠近CPU处且可以包括非常高速的存储器,如果性能增强块320已经访问所请求的数据,那么性能增强块320可以能够与主存储器相比更加快速地将数据提供到CPU。性能增强块的内容通常将随时间推移而改变。性能增强块可被配置成基于最近的CPU行为来尝试预测何种信息将是CPU所需要的。这可能增大内容将是相关的可能性,但是它意味着在一些场合具体请求数据可以存在于性能增强块320中,而在其它场合相同的请求数据可能并不存在。
[0049] 在图3的例子中,性能增强块确实能够访问响应数据且被配置成将响应数据322发送到CPU(未示出)。将了解响应数据322可以直接地或间接地被发送到CPU。
[0050] 图4示出了与图2和图3的非确定性处理器块相似的非确定性处理器块400。相似特征已经给予相似参考标号,且此处可能未必另外讨论。
[0051] 在此例子中,性能增强块420并不访问请求数据。当确定不存在请求数据时,性能增强块420被配置成产生待发送至NDP输出端404的存储器信号。以此方式,存储器信号可以被发送至主存储器以如图2所示的相同方法检索请求数据。在此例子中,性能增强块420将PE路径控制信号434发送到路径块430,所述PE路径控制信号434将路径块430配置成进行以下操作:i)将请求信号432发送到NDP输出端404;以及ii)将另外的路径控制信号436发送到控制块410,所述另外的路径控制信号436将控制块410配置成将控制信号412发送到NDP输出端404。在其它例子中,性能增强块420可被配置成将控制信令直接地发送到路径块430和控制块420两者使得控制信号412和请求信号432可以被提供到NDP输出端404。
[0052] 上文相对于图3和图4所述的情境提供非确定性行为的至少两个来源。首先,将请求数据提供到CPU所花费的时间可以取决于请求数据是否可由性能增强块提供而显著的不同。其次,即使当性能增强块确实包括请求数据时,性能增强块可能自身呈现非确定性行为:例如,性能增强块识别请求数据且将其提供到CPU的速度可以潜在地与其它CPU或在同一CPU内的其它核心不同,这取决于如下因素:请求数据在性能增强块内存储的位置或性能增强块是否已经接收信息的其它请求。在其它请求已经被接收的情况下,性能增强块可具有待处理的请求的队列且由此所花费的时间将取决于队列的长度。然而,可以通过设置确定性位值为活跃值来有效地消除响应时间的这些不确定性,使得非确定性处理器块主动地绕过任何非确定性组件(例如,性能增强块),并且由此以确定性方法处理存储器信号。
[0053] 相对于图2到图4,路径块已经呈现为结构上与性能增强块分隔。然而,将了解在其它例子中,路径块的功能可以集成到性能增强块中,使得请求信号可被直接地提供到性能增强块且随后被确定性地处理(如果确定性位值是活跃值)或非确定性地处理(如果确定性位值是非活跃值)。
[0054] 图5示出根据本发明的实施例的数据处理器500。与图2到图4的对应的特征相似的图5的特征已经给予相似参考标号,且此处可能未必另外讨论。
[0055] 数据处理器500被分成两部分:指令高速缓冲存储500i和数据高速缓冲存储500d。指令高速缓冲存储500i用于接收从CPU 550访问的指令,而数据高速缓冲存储500d用于发送数据到CPU 550和从CPU 550接收数据;在此背景下数据与指令之间的差异将为本领域的技术人员所理解。指令高速缓冲存储500i和数据高速缓冲存储500d的对应的特征已经给予对应的参考标号且下文将相对于数据高速缓冲存储500d进行描述。
[0056] CPU 550被配置成将CPU请求数据提供到数据处理器。CPU请求数据包括表示存储器访问操作(其可以为读取操作或写入操作)的数据部分532dd和表示用于执行存储器访问操作的存储器位置的地址部分532da。因此,根据数据部分532dd的内容,存储器位置可以或者被写入或者从其中读取。
[0057] 数据高速缓冲存储500d包括被配置成从CPU 550接收控制信号512d的控制块510d。数据高速缓冲存储500d具有地址路径块530da和数据路径块530dd,所述地址路径块
530da和数据路径块530dd一起形成路径块的例子。地址路径530da块被配置成接收数据部分532da。数据路径块530dd被配置成接收地址部分532dd。
[0058] 数据高速缓冲存储500d具有标签阵列520dt和数据阵列520dd,所述标签阵列520dt和数据阵列520dd一起形成性能增强块的例子。
[0059] 如果由控制信号512d表示的确定性数量值被设置成活跃值,那么数据路径块530dd将数据部分532dd发送到NDP输出端。这使得数据部分532dd能够被发送到总线接口模块560以用于通过合适的存储器(未示出)的后续处理。类似地,地址路径块530da将地址部分532da发送到NDP输出端使得它可以被发送到总线接口模块560。以此方式,绕过且避免与性能增强块相关联的非确定性。
[0060] 替代地,如果确定性数量值是非活跃值,那么数据路径块530dd将数据部分532dd发送到数据阵列520dd且地址路径块530da将地址部分532da发送到标签阵列520dt。
[0061] 在一些例子中,存储器管理单元可能执行与通用存储器管理相比更加特殊的功能,例如存储器管理单元可以包括存储器保护单元(MPU)。一般而言,MPU可以为MMU的子集。完整的MMU可能提供存储器再次映射、转换和保护功能。相比之下,MPU可能仅仅提供存储器保护功能。
[0062] 图6示出包括核心610的数据处理器600,所述核心610具有CPU612、存储器管理单元614和分支目标缓冲器616。数据处理器600具有通过交叉开关620耦合到核心610的存储器630。在核心610与交叉开关620之间提供L1/L2高速缓冲存储640。存储器630包括预提取缓冲器632和闪存阵列634。因此,数据处理器600包括可能呈现非确定性行为的四个单独的组件:分支目标缓冲器616、L1/L2高速缓冲存储640、交叉开关620和预提取缓冲器632。然而,通过基于确定性位的值来控制这些组件中的一个或多个,数据处理器可以较高程度的确定性运行(当确定性位值是活跃值时)或以较低程度的确定性但是潜在地增大速度运行(当确定性位值是非活跃值时)。
[0063] 分支目标缓冲器616、L1/L2高速缓冲存储640和预提取缓冲器632是非确定性处理器块的类型的所有例子,已经描述了它们的功能。将了解,如本文所述,虽然图6示出具有三个非确定性处理器块的数据处理器600,但是数据处理器可具有可能受益于使用确定性位的任何数目的非确定性处理器块。
[0064] 由于交叉开关620还可以呈现非确定性行为,它还可以基于确定性的位的值而有利地受到控制。交叉开关620充当位于存储器管理单元614与存储器630之间的开关。交叉开关620被配置成将从存储器管理单元614接收的数据发送到存储器630以使得能够取回请求数据。将了解,交叉开关620也可以连接到其它存储器单元(未示出)且将被配置成使得存储器信号被发送到其中假定请求数据待存储的具体存储器。交叉开关620还可以被配置成从存储器630接收请求数据且将请求数据发送回到请求它的CPU 612。
[0065] 为了提供这一功能,交叉开关620可以直接地或间接地耦合到NDP输出端(未示出),且被配置成从NDP输出端接收存储器信号。交叉开关620还可以被配置成接收多个另外的信号,所述多个另外的信号中的每一个表示存储于存储器中的相应的响应数据的相应的请求。这些另外的信号可以由负责存储器信号的CPU 612产生,或由同一CPU 612的不同核心产生,或甚至由不同CPU(未示出)产生。在复杂的系统中,通过交叉开关620接收的信号的量可以不时地显著的改变。这一变化可以产生非确定性行为,这是因为信号可以形成可变长度的队列,交叉开关620可以花费不同的时间周期来处理所述队列。
[0066] 为了改善数据处理器600的确定性,可能需要将交叉开关620配置成基于确定性位值设置发送存储器信号到存储器630的优先级顺序。如果确定性位值是非活跃值,那么交叉开关620可以非确定性地处理存储器信号,例如以相对于多个另外的信号中的每一个的信号被接收的顺序处理它。然而,如果确定性位值是活跃值,那么交叉开关620可被配置成修改处理存储器信号和多个另外的信号的次序。举例来说,交叉开关620可以延迟多个另外的信号的处理且首先处理具有活跃值确定性位的存储器信号。在其它例子中,当确定性位具有活跃值时,交叉开关620可被配置成在预先确定的延迟之后处理存储器信号。以此方式,预先确定的延迟可以确保:无论交叉开关620可为如何繁忙,紧接在预先确定的延迟之后它将始终能够处理存储器信号。这一延迟可以引起最终被更加缓慢地提供到CPU 612但是具有较高程度的确定性的请求数据。
[0067] 在一些例子中,数据处理器可以包括第二非确定性处理器块。第二非确定性处理器块可以位于存储器管理单元614与交叉开关620之间(例如,图6中所示的L1/L2高速缓冲存储640),或者交叉开关620可以位于存储器管理单元614与第二非确定性处理器块之间(例如,图6中所示的预提取缓冲器632)。在任一情况下,第二非确定性处理器块可被配置成接收存储器信号或表示存储器信号的信号。因此,第二非确定性处理器块可被配置成接收表示确定性位值的信息。第二非确定性处理器块可随后被配置成如上文相对于图2到图4的非确定性处理器块所述的起作用。
[0068] 一般而言,本文所述的数据处理器可以包括多个非确定性块,但是可被配置成在高度确定性方法中通过设置确定性位值为活跃值来操作,使得每个非确定性组件或者被绕过、或者被重新配置以确定地操作。为了实现这一点,与穿过数据处理器传播的响应数据的具体请求相关的信令应当包含确定性位值或它的表示,使得每个非确定性组件可以适当地配置。
[0069] 将了解,鉴于上文所述的数据处理器耦合于CPU与存储器之间,根据本发明的实施例的数据处理器还可以包括CPU、多核心CPU或多个CPU以及存储器或多个存储器。
[0070] 多核心CPU具有多个核心,所述多核心CPU在两个核心的例子中可以具有较高优先级核心和较低优先级核心。较高优先级核心可以执行需要较高程度的确定性的大多数时间敏感的操作。较高优先级核心可以执行与通过较低优先级核心执行的操作相比更加时间敏感的操作。
[0071] 在多核心CPU例子中,外部操作数据可以表示来自较高优先级核心的较高优先级响应数据的请求或来自较低优先级核心的较低优先级响应数据的请求的任一者,其中较高优先级响应数据和较低优先级响应数据都是响应数据的例子。
[0072] 当确定性数量值是活跃值时,活跃值可以设置为较高优先级活跃值(当外部操作数据表示较高优先级响应数据的请求时)或较低优先级活跃值(当外部操作数据表示较低优先级响应数据的请求时)的任一者。
[0073] 更一般而言,外部操作数据可以包括表示在多核心CPU内的核心的核心标识符。存储器管理单元可以随后基于核心标识符设置确定性数量值为非活跃值或多个活跃值中的一个。如果确定性数量值是活跃值,那么控制块可以基于多个活跃值中的相关联的一个而确定将存储器信号发送到NDP输出端的优先级。以此方式,确定性数量值可以假设多个不同活跃值反映与具有多个不同程度的时间敏感度的多个不同核心相关联的多个不同优先级。
[0074] 在数据处理器具有被配置成设置处理不同操作的优先级顺序的交叉开关的情况下,优先级顺序可以设置较高优先级(当活跃值是较高优先级活跃值时)和较低优先级(当活跃值是较低优先级活跃值时)。以此方式,不同存储器信号可以以基于所设置的优先级顺序的次序通过交叉开关被发送到存储器,使得在较低优先级存储器信号之前可以发送较高优先级存储器信号。以相似的方式,可以准许渐进地更加时间敏感核心的层级以逐渐地较高优先级来访问交叉开关。
[0075] 在一些例子中,可以通过CPU(无论CPU是多核心或单核心)的具体核心设置确定性数量的不同活跃值以反映不同程度的所需要的确定性。以此方式,从多个不同CPU或核心接收存储器信号的交叉开关可以为受控制的以基于与每个不同存储器信号相关联的确定性的需要而优先处理存储器信号,无论它的起源或目的地如何。这可能在复杂的多处理器数据处理环境中有利地改善确定性的程度。
[0076] 在一些例子中,根据本发明的数据处理器可以被提供为集成电路或芯片上系统(SoC)。
[0077] 所公开的一个或多个例子可以涉及将新的“确定性”位添加到存储器保护单元(MPU)或存储器管理单元(MMU)。确定性位可以被视为高速缓冲存储抑制位的概念性延伸。一般而言,确定性位可以操作以增大访问数据处理器资源的优先级,而移除或绕过动态或非确定性数据处理器资源(例如,高速缓冲存储、预提取缓冲器和分支目标缓冲器(BTB))。
[0078] 在硬件层级处,确定性位可实施为在MMU TLB(旁路转换缓冲器)的MPU区域描述符中的额外的位。可以添加额外的边带以将此信号传播到交叉开关和位于交叉开关下方的从属资源,例如,存储器。此信号可以用与现有边带信号(例如,过程ID)相同的方法传播,尽管它们具有不同功能。
[0079] MMU/MPU的区域描述符的典型转换属性可以包括:
[0080] ●W(透写,其确定高速缓冲存储写入是否是通过主存储器写入的);
[0081] ●I(高速缓冲存储抑制模式,其确定页面是否是可高速缓存的);以及[0082] ●E(小端模式或位端模式,其中通常0=大端模式(默认)并且1=小端模式)[0083] 本发明引入了新的属性“D”,即,确定性位,当确定性位被设置成活跃值时会引起访问被当作确定性的区域。这可以被描述为以“确定性模式”操作。以此方式,当设置确定性位的活跃值时数据处理器被配置成绕过可以不利地影响交易的确定性的元件。
[0084] 典型的MMU可以支持48TLB。额外的D(确定性)位可以添加到这些中的每一个。存储装置的这48个位相当于288或432个栅极(每个位给出6个或9个栅极)。典型的MPU可以支持64个区域。额外的D(确定性)位可以添加到这些中的每一个。存储装置的这64个位相当于
384或576个栅极(每个位给出6个或9个栅极)。边带信号可以添加到总线交易(在MMU情况中来自核心,或在MPU情况中来自交叉开关)。修改现有数据处理器设计以采用本文所公开的确定性位概念可能仅需要必要边带的单个添加,因为多个其它边带通常存在于标准数据处理器中。
[0085] 用于提供较高程度确定性的可替代的方法可以通过具有需要寄存器的复制的多个情形实现。然而,就数据处理资源而言,与基于设置确定性位值的本文中描述方法相比这样的实施是成本很高的。
[0086] 除非明确陈述特定次序,否则可以任何次序执行以上图式中的指令和/或流程图步骤。并且,本领域的技术人员将认识到,尽管已经论述指令的一个例子集/方法,但本说明书中的材料可以通过各种方式组合,从而还产生其它例子,并且应在此具体实施方式提供的背景内来理解。
[0087] 在一些示例实施例中,上文描述的指令集/方法实施为体现为可执行指令集的功能和软件指令,其在计算机或以所述可执行指令编程和控制的机器上实现。此类指令被加载以在处理器(例如,一个或多个CPU)上执行。术语处理器包括微处理器、微控制器、处理器模块或子系统(包括一个或多个微处理器或微控制器),或其它控制或计算装置。处理器可以指代单个组件或多个组件。
[0088] 在其它例子中,本文示出的指令集/方法以及与其相关联的数据和指令存储在相应的存储装置中,所述存储装置实施为一个或多个非暂时性机器或计算机可读或计算机可用存储媒体。此类计算机可读或计算机可用存储媒体被认为是物品(或制品)的一部分。物品或制品可指代任何制造的单个组件或多个组件。如本文所定义的非暂时性机器或计算机可用媒体不包括信号,但是此类媒体可能够接收和处理来自信号和/或其它瞬态媒体的信息。
[0089] 本说明书中论述的材料的示例实施例可以整体或部分地经由网络、计算机或基于数据的装置和/或服务实施。这些可以包括、互联网、内联网、移动装置、台式计算机、处理器、查找表、微控制器、消费者设备、基础架构,或其它致能装置和服务。如本文和权利要求书中可使用,提供以下非排他性定义。
[0090] 在一个例子中,使本文论述的一个或多个指令或步骤自动化。术语“自动化”或“自动”(及其类似变体)意味着使用计算机和/或机械/电气装置控制设备、系统和/或过程的操作,而不需要人类干预、观察、努力和/或决策。
[0091] 将了解,将要被耦合的任何组件可以直接或间接耦合或连接。在间接耦合的情况下,另外的组件可以位于据称将耦合的两个组件之间。
[0092] 在本说明书中,已经依据选定细节集合呈现示例实施例。然而,本领域的普通技术人员将理解,可以实践包括这些细节的不同选定集合的许多其它示例实施例。希望所附权利要求书涵盖所有可能的示例实施例。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈