首页> 中国专利> 具有低功率数字信号处理(DSP)模式的通用处理单元

具有低功率数字信号处理(DSP)模式的通用处理单元

摘要

一种方法和电路布置利用具有低功率DSP模式的通用处理单元,该低功率DSP模式用于重新配置通用处理单元以用减少的功率消耗高效地执行DSP工作量。在DSP模式中时,可以停用数据高速缓存、执行单元和同时多线程中的一项或者多项以减少功率消耗并且提供用于DSP工作量的性能。另外,可以停用用于寄存器文件的用于支持多线程化的分割以及寄存器重命名功能,以提供用于与DSP工作量使用的扩展的寄存器集合。作为结果,通用处理单元可以具有功率消耗减少的用于DSP工作量的增强的性能,而又未牺牲用于其它非DSP/通用工作量的性能。

著录项

  • 公开/公告号CN104331528A

    专利类型发明专利

  • 公开/公告日2015-02-04

    原文格式PDF

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

    申请/专利号CN201410347752.5

  • 申请日2014-07-21

  • 分类号G06F17/50;

  • 代理机构北京市金杜律师事务所;

  • 代理人酆迅

  • 地址 美国纽约阿芒克

  • 入库时间 2023-12-17 03:22:58

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-10

    未缴年费专利权终止 IPC(主分类):G06F17/50 授权公告日:20180720 终止日期:20190721 申请日:20140721

    专利权的终止

  • 2018-07-20

    授权

    授权

  • 2017-12-15

    专利申请权的转移 IPC(主分类):G06F17/50 登记生效日:20171124 变更前: 变更后: 申请日:20140721

    专利申请权、专利权的转移

  • 2015-03-11

    实质审查的生效 IPC(主分类):G06F17/50 申请日:20140721

    实质审查的生效

  • 2015-02-04

    公开

    公开

说明书

技术领域

本发明主要地涉及数据处理并且具体地涉及处理器架构和控制这样的架构的功率消耗。 

背景技术

随着半导体技术继续随着时钟速度增加而尺寸更接近实际限制,架构设计师越来越聚焦于处理器架构中的并行性以获得性能提高。在芯片级,多个处理核经常设置于相同芯片上从而以与分离处理器芯片颇为相同的方式工作,或者在某个程度上作为完全分离计算机工作。此外,即使在核内仍然通过使用被专门化为处置某些类型的操作的多个执行单元来运用并行性。也在许多实例中运用流水线化,使得可能需要多个时钟周期来执行的某些操作被分解为层级(stage),从而使其它操作能够始于更早操作完成之前。也运用多线程化来使多个指令流能够被并行处理从而使更多总体工作能够在任何给定的时钟周期中被执行。 

然而用于提高执行单元性能的这些各种技术并非没有代价。并行性增添复杂性从而经常需要更大数目的逻辑门,这增加这样的执行单元的尺寸和功率消耗这二者。将这些技术与对通过其它技术、比如增加的切换频率增加性能的一般愿望结合,复杂、高性能执行单元的功率消耗继续增加,尽管有通过过程改进来减少这样的功率消耗的努力。过量功率消耗可以对于便携或者电池供电的设备带来问题,但是更通常地,过量功率消耗由于发热会对于几乎所有电子电路带来问题——这经常需要精巧冷却系统以保证电路未过热和出故障。 

经常在电子电路、比如在膝上型计算机或者其它便携设备中使 用的电子电路中通常通过节制电路的时钟速率或者频率以减少功率消耗和发热来使用对功率消耗的芯片范围的控制。此外,也可以在一些实例中通过暂时关闭芯片上的未使用电路、例如包括全部执行单元来减少功率消耗。然而在所有这些实例中,节制电路的功率消耗通常造成芯片中的更低性能。另外,对这样的电路的总功率消耗进行定义的电路特性、例如周期(cycle)时间、电压、逻辑面积、电容等经常被设计为满足最大性能目标。 

具体对于复杂片上系统(SOC)设计,越来越复杂的逻辑电路装置被并入个别芯片中,并且在许多实例中,花费比执行希望的计算而花费的每位功率更多的每位功率以将位从存储器移向中央处理单元(CPU)。作为结果,需要用于片上和片外到处移动数据的改进的功率减少机制。此外,许多特征一旦为数字信号处理器(DSP)所特有就越来越被实施于通用处理器上,以通过消除对于系统中的分离DSP芯片的需要来减少成本,并且通过消除对于在DSP芯片与CPU之间移动数据的需要来增加性能。 

然而,更传统地被DSP执行的许多算法、例如快速傅里叶变换(FFT)并未与使用传统通用处理器或者CPU一样好地表现。虽然向更新近通用处理器设计添加的一些特征、例如SIMD执行单元和预测已经显著提高性能,但是执行这些算法的通用处理单元的功率消耗仍然通常比为那些算法专门定制的DSP芯片的功率消耗高得多。这主要因为通用处理单元通常并入旨在于一般为多数工作量提高性能的大型逻辑块、比如多个高速缓存存储器、多个执行线程、多个执行单元等。然而对于许多DSP算法,这一逻辑对提高性能其很少作用,因此在通用处理器中执行这样的DSP算法时,这一逻辑的附加功率消耗经常被过量地浪费。 

因此,在本领域中存在对于减少集成电路中具体与执行DSP算法等有关的功率消耗的改进方式的持续需要。 

发明内容

本发明通过提供一种方法和电路布置来解决与现有技术关联的这些和其它问题,该方法和电路布置利用具有低功率DSP模式的通用处理单元,该低功率DSP模式用于重新配置通用处理单元以用减少的功率消耗高效地执行DSP工作量。在一些实施例中,例如可以停用数据高速缓存,使得在执行单元与更低级存储器之间的数据流量绕过停用的数据高速缓存。此外,在一些实施例中,可以停用一个或者多个未使用执行单元,并且在通用处理单元中利用同时多线程化时,也可以停用一个或者多个线程。另外,在一些实施例中,可以停用寄存器文件的用于支持多线程化的分区,并且可以停用寄存器重命名功能以提供用于在DSP模式中使用的扩展的寄存器集合。作为结果,在许多实施例中,通用处理单元可以具有功率消耗减少的用于DSP工作量的增强的性能,而又未牺牲用于非DSP/通用工作量目的的性能。 

因此,与本发明的一个方面一致,一种电路布置包括:包括多个功能单元的通用处理单元;以及耦合到通用处理单元的控制逻辑并且该控制逻辑被配置为有选择地配置通用处理单元以在通用处理单元执行DSP算法期间在低功率数字信号处理(DSP)模式中操作。控制逻辑被配置为当通用处理单元被配置为处于DSP模式时停用在多个功能单元之中的用于通用工作量但是对于执行DSP算法而言非必需的至少一个功能单元,使得在执行DSP算法期间减少通用处理单元的功率消耗。 

作为本发明的特征的这些和其它优点以及特征在所附权利要求中被阐述并且形成其又一部分。然而为了更好地理解本发明以及通过使用本发明而获得的优点和目的,应当参照其中描述本发明的示例实施例的附图和所附描述内容。 

附图说明

图1是包括在与本发明的实施例一致的数据处理中有用的示例计算机的示例自动化计算机器的框图。 

图2是在图1的计算机中实施的示例NOC的框图。 

图3是更具体图示来自图2的NOC的节点的示例实现方式的框图。 

图4是图示来自图2的NOC的IP块的示例实现方式的框图。 

图5是图示IP块的示例实现方式的框图,该IP块来自图2的NOC并且被配置为实施与本发明一致的低功率DSP模式。 

图6是在DSP模式中配置的图5的IP块的框图。 

图7是图示在图5中引用的AXU的示例实现方式的框图。 

图8是图示在DSP模式中配置时的图7的AXU的框图。 

具体实施方式

与本发明一致的实施例利用具有低功率数字信号处理(DSP)模式的通用处理单元,该低功率DSP模式用于重新配置通用处理单元以用减少的功率消耗高效地执行DSP工作量。例如在本发明的一些实施例中,控制逻辑当通用处理单元被配置为处于DSP模式中时停用用于通用工作量但是对于执行DSP算法而言非必需的至少一个功能单元,使得在执行DSP算法期间减少通用处理单元的功率消耗。 

通用处理单元在本发明的上下文内可以包括例如如在IP块、处理器芯片、处理器核等内设置的并且能够执行指令以处置通用工作量的实际上任何类型的处理单元。尽管通用处理单元可以包括各种部件、执行单元或者对特定类型的工作量、例如图像处理、图形、科学工作量、事务处理等进行优化或者加速的加速器,但是通用处理单元另外能够处置多个类型的工作量,即使它与更专门化的处理单元相比次优地这样做。通用处理单元至少能够处置除了DSP芯片、DSP执行单元或者其它DSP专属逻辑电路处置的特定DSP工作量之外的工作量。 

DSP工作量涉及执行各种类型的DSP算法——这些DSP算法被表征为操纵信号的数字表示的算法,这些信号又通常代表随时间变化或者在空间上变化的物理数量——例如包括图像处理、音频处理 和传感器数据处理以及其它应用。 

此外,功能单元在本发明的上下文内可以包括执行单元、比如定点执行单元(XU)、浮点执行单元(FPU)、辅助执行单元(AXU)或者各种类型的加速器或者专门化的执行单元(例如加密/解密引擎、DMA引擎、压缩/解压引擎、物理引擎、图形处理器、协同处理器等)。此外,功能单元可以包括除了执行单元或者加速器之外的处理器逻辑类型、例如高速缓存、多线程化逻辑、流水线级、实例或者部件、存储器管理逻辑、地址翻译逻辑、接口逻辑、预测逻辑、重命名逻辑、发布逻辑、解码逻辑、完成逻辑。 

其它变化和修改将为本领域普通技术人员所清楚。因此,本发明不限于这里公开的具体实现方式。 

硬件和软件环境

现在转向附图,其中相似标号贯穿若干视图表示相似部分,图1图示包括在与本发明的实施例一致的数据处理中有用的示例计算机10的示例自动化计算机器。图1的计算机包括至少一个计算机处理器12或者‘CPU’以及通过高速存储器总线16和总线适配器18连接到处理器12和计算机10的其它部件的随机存取存储器14(‘RAM’)。 

在RAM14中存储应用程序20,该应用程序是用于执行特定数据处理任务、如比如字处理、电子表格、数据库操作、视频游戏、股市仿真、自动量子过程仿真或者其它用户级应用的用户级计算机程序指令模块。在RAM14中也存储操作系统22。与本发明的实施例结合有用的操作系统包括UNIXTM、LinuxTM、Microsoft Windows XPTM、AIXTM、IBM的i5/OSTM和如本领域技术人员将想到的其它操作系统。在RAM14中示出在图1的示例中的操作系统22和应用20,但是这样的软件的许多部件通常被存储于也例如在盘驱动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设备和设备架构之外的设备和设备架构中实施本发明。本发明因此不限于在NOC设备内实施。 

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

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

为了进一步说明,图2阐述根据本发明的实施例的示例NOC102的功能框图。在‘芯片’100上、也就是在集成电路上实施图2中的NOC。NOC102包括被分组成互连节点的集成处理器(‘IP’)块104、路由器110、存储器通信控制器106和网络接口控制器108。每个IP块104通过存储器通信控制器106和网络接口控制器108来向路由器110适配。每个存储器通信控制器控制在IP块与存储器之间的通信,并且每个网络接口控制器108控制通过路由器110的IP块间通信。 

在NOC102中,每个IP块代表作为用于在NOC内的数据处理的构建块使用的同步或者异步逻辑设计可重用单位。有时扩展术语‘IP块’为‘知识产权块’从而有效指明IP块为将向半导体电路的其他用户或者设计者许可的、被一方拥有的设计、也就是一方的知识产权。然而在本发明的范围内,未要求IP块受制于任何特定所有权,因此总是在本说明书中扩展该术语为‘集成处理器块’。如这里规定的IP块是可以是或者可以不是知识产权主体的逻辑、单元或者芯片布局设计的可重用单位IP块可以形成为ASIC芯片设计或者FPGA逻辑设计的逻辑核。 

一种用于类似地描述IP块的方式是:IP块是针对NOC设计何种库用于计算机编程或者何种分立集成电路部件用于印刷电路板设 计。在与本发明的实施例一致的NOC中,可以实施IP块为通用门网表、为完整专用或者通用微处理器或者以如本领域技术人员可以想到的其它方式。网表是IP块的逻辑功能的布尔代数表示(门、标准单元),这类似于用于高级程序应用的汇编代码表。也可以例如以在硬件描述语言、比如Verilog或者VHDL中描述的可合成形式实施NOC。除了网表和可合成实现方式之外,也可以在更低级物理描述中交付NOC。可以用晶体管布局格式、比如GDSII分发模拟IP块元件、比如SERDES、PLL、DAC、ADC等。有时也以布局格式赋予IP块的数字元件。也将理解可以用计算机数据文件、例如逻辑定义程序代码的形式分发IP块以及与本发明一致实施的其它逻辑电路装置,这些计算机数据文件在各种细节水平定义实施这样的逻辑的电路布置的功能和/或布局。因此,尽管已经并且下文将在全功能集成电路器件、利用这样的器件的数据处理系统和其它有形物理硬件电路中实施的电路布置的上下文中描述本发明,但是受益于本公开内容的本领域普通技术人员将理解也可以在程序产品内实施本发明并且本发明无论用来分发程序产品的特定计算机可读存储介质类型如何都同样适用。计算机可读存储介质的示例包括但不限于物理、可记录型介质、比如易失性和非易失性存储器设备、软盘、硬盘驱动、CD-ROM和DVD(以及其它示例)。 

在图2的示例中的每个IP块104通过存储器通信控制器106适配到路由器110。每个存储器通信控制器是适于提供在IP块与存储器之间的数据通信的同步和异步逻辑电路的聚合。在IP块与存储器之间的这样的通信的示例包括存储器加载指令和存储器存储指令。以下参照图3更具体描述存储器通信控制器106。每个IP块104也通过网络接口控制器108适配到路由器110,该网络接口控制器控制在IP块104之间通过路由器110的通信。在IP块之间的通信的示例包括携带数据和指令的消息,这些指令用于在并行应用中和在流水线化的应用中在IP块之中处理该数据。以下也参照图3更具体描述网络接口控制器108。 

路由器110和在它们之间的对应链路118实施NOC的网络操作。链路118可以是在连接所有路由器的物理、并行接口总线上实施的分组结构。也就是说,可以在宽到足以同时容纳包括所有首部信息和净荷数据的整个数据交换分组的接线总线上实施每个链路。如果分组数据结构包括64字节,这些字节例如包括八字节首部和56字节的净荷数据,则衬托每个链路的接线总线是64字节宽的512线。此外,每个链路可以是双向,从而如果链路分组结构包括64字节,则接线总线实际包含在每个路由器与它的在网络中的邻居中的每个邻居之间的1024线。在这样的实现方式中,消息可以包括多于一个分组,但是每个分组将精确地相配到接线总线的宽度上。在该可选方案中,可以在接线总线上实施链路,该接线总线仅宽到足以容纳分组的部分,从而分组将被分解成多个取字时间(beat),例如从而如果实施链路为宽度为16字节或者128个接线,则64字节分组可以被分解成四个取字时间(beat)。将理解不同实现方式可以基于实际物理限制以及希望的性能特性使用不同总线宽度。如果在路由器与每个接线总线段之间的连接称为端口,则每个路由器包括五个端口,一个用于在网络上的数据传输的四个方向中的每个相应方向而第五端口用于通过存储器通信控制器和网络接口控制器将路由器适配到特定IP块。 

每个存储器通信控制器106控制在IP块与存储器之间的通信。存储器可以包括片外主RAM112、通过存储器通信控制器106直接连接到IP块的存储器114、作为IP块116启用的片上存储器和片上高速缓存。在NOC102中,片上存储器114、116中的任一片上存储器例如可以被实施为片上高速缓存存储器。所有这些存储器形式可以被设置于物理地址或者虚拟地址的相同地址空间中,这即使对于直接附着到IP块的存储器也成立。存储器寻址的消息因此相对于IP块可以完全双向,因为可以从在网络上别处的任何IP块对这样的存储器寻址。在IP块上的存储器116可以从该IP块或者从在NOC中的任何其它IP块被寻址。直接附着到存储器通信控制器的存储器114 可以由该IP块寻址,该IP块被该存储器通信控制器适配到网络,并且通信控制器的存储器114也可以由在NOC中别处的任何其它IP块寻址。 

NOC102包括两个存储器管理单元(‘MMU’)120、122,这举例说明用于与本发明的实施例一致的NOC的两个备选存储器架构。在IP块内实施MMU120从而允许在IP块内的处理器在虚拟存储器中操作而允许NOC的整个其余架构在物理存储器地址空间中操作。MMU122被片外实施、通过数据通信端口124连接到NOC。端口124包括管脚和为了进行在NOC与MMU之间的信号而需要的其它互连以及用于将消息分组从NOC分组格式转换成外部MMU1212所需总线格式的充分智能。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块提供数据处理服务、例如包括接收和在NOC的IP块之间派发来自主机计算机的数据处理请求。NOC可以例如如以上参照图1描述的那样在更大计算机10 上实施视频图形适配器26或者协同处理器28。在图2的示例中,主机接口处理器128通过数据通信端口130连接到更大主机计算机。端口130包括管脚和为了进行在NOC与主机计算机之间的信号而需要的其它互连以及用于将来自NOC的消息分组转换成主机计算机10所需总线格式的充分智能。在图1的计算机中的NOC协同处理器的示例中,这样的端口将提供在NOC协同处理器28的链路结构与在NOC协同处理器28与总线适配器18之间的前侧总线36所需要的协议之间的数据通信格式翻译。 

图3接着图示功能框图,该功能框图更具体图示在132共同图示的在NOC102内的IP块104、存储器通信控制器106、网络接口控制器108和路由器110内实施的部件。IP块104包括计算机处理器134和I/O功能136。在本例中,计算机存储器由在IP块104中的随机存取存储器(‘RAM’)段138代表。存储器如以上参照图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。存储器通信控制器执行的存储器通信指令不仅可以始发于通过特定存储器通信控制器被适配到路由器的IP块,而且可以始发于在NOC102中别处的任何IP块104。也就是说,在NOC中的任何IP块可以生成存储器通信指令并且通过NOC的路由器向与另一IP块关联的另一存储器通信控制器传输该该存储器通信指令用于执行该存储器通信指令。这样的存储器通 信指令可以例如包括翻译后备缓冲控制指令(translation lookaside buffer control instruction)、高速缓存控制指令、屏障指令以及存储器加载和存储指令。 

每个存储器通信执行引擎140被启用以与其它存储器通信执行引擎分离和并行地执行完整存储器通信指令。存储器通信执行引擎实施被优化用于存储器通信指令并发吞吐量的可缩放存储器事务处理器。存储器通信控制器106支持多个存储器通信执行引擎140,所有这些存储器通信执行引擎并发运行用于同时执行多个存储器通信指令。新存储器通信指令被存储器通信控制器106分配给存储器通信引擎140,并且存储器通信执行引擎140可以同时接受多个响应事件。在本例中,所有存储器通信执行引擎140相同。因此通过缩放存储器通信执行引擎140的数目,来实施对于可以被存储器通信控制器106同时处置的存储器通信指令数目的缩放。 

在图3的NOC102中,每个网络接口控制器108被启用为将通信指令从命令格式转换成用于通过路由器110在IP块104之间传输的网络分组格式。通信指令可以在命令格式中被IP块104制定或者被存储器通信控制器106制定并且在命令格式中提供给网络接口控制器108。命令格式可以是本机格式,该本机格式符合IP块104和存储器通信控制器106的架构寄存器文件。网络分组格式通常是通过网络的路由器110传输而需要的格式。每个这样的消息由一个或者多个网络分组组成。在网络接口控制器中从命令格式转换成分组格式的这样的通信指令的示例包括在IP块与存储器之间的存储器加载指令和存储器存储指令。这样的通信指令也可以包括如下通信指令,这些通信指令在IP块之中发送携带数据和指令的消息,这些指令用于在并行应用中和在流水线化的应用中在IP块之中处理该数据。 

在图的NOC102中,每个IP块被启用为通过IP块的存储器通信控制器向和从存储器发送基于存储器地址的通信,然后也通过它的网络接口控制器向网络发送基于存储器地址的通信。基于存储器 地址的通信是IP块的存储器通信控制器的存储器通信执行引擎执行的存储器访问指令、比如加载指令或者存储指令。这样的基于存储器地址的通信通常始发于IP块、在命令格式中被制定并且被交接到存储器通信控制器以用于执行。 

用消息流量执行许多基于存储器地址的通信,因为任何待访问的存储器可以位于物理存储器地址空间中别处、片上或者片外、直接附着到在NOC中的任何存储器通信控制器或者最终通过NOC的任何块来访问——无论任何特定的基于存储器地址的通信始发于哪个IP块。因此,在NOC102中,用消息流量执行的所有基于存储器地址的通信从存储器通信控制器向关联网络接口控制器传递,以用于从命令格式转换成分组格式并且在消息中通过网络传输。在转换成分组格式时,网络接口控制器也根据基于存储器地址的通信将访问的一个或者多个存储器地址标识用于分组的网络地址。用存储器地址对基于存储器地址的消息寻址。每个存储器地址被网络接口控制器映射到网络地址、通常为负责某个物理存储器地址范围的存储器通信控制器的网络位置。存储器通信控制器106的网络位置自然地也是该存储器通信控制器的关联路由器110、网络接口控制器108和IP块104的网络位置。在每个网络接口控制器内的指令转换逻辑150能够将存储器地址转换成网络地址,以用于通过NOC的路由器传输基于存储器地址的通信。 

在从网络的路由器110接收消息流量时,每个网络接口控制器108针对存储器指令检查每个分组。包含存储器指令的每个分组被交给与接收网络接口控制器关联的存储器通信控制器106,该存储器通信控制器在向IP块发送分组的其余净荷用于进一步处理之前执行存储器指令。以这一方式,存储器内容总是在IP块开始执行依赖于特定存储器内容的来自消息的指令之前被预备为支持IP块的数据处理。 

在图3的NOC102中,每个IP块104被启用为绕过它的存储器通信控制器106并且通过IP块的网络接口控制器108向网络直接 发送IP块间、网络寻址的通信146。网络寻址的通信是被网络地址引向另一IP块的消息。如本领域技术人员将想到的那样,这样的消息在流水线化的应用中传输工作数据、在SIMD应用中在IP块之中传输用于单个程序处理的多个数据、以此类推。这样的消息与基于存储器地址的通信不同在于它们从开始就是被始发IP块进行网络寻址的,该始发IP块知道消息将通过NOC的路由器被引向的网络地址。这样的网络寻址的通信在命令格式中被IP块通过I/O功能136直接传递到IP块的网络接口控制器、然后被网络接口控制器转换成分组格式并且通过NOC的路由器传输到另一IP块。这样的网络寻址的通信146是双向的,从而根据它们在任何特定应用中的使用潜在地向以及从NOC的每个IP块继续。然而每个网络接口控制器被启用为既向关联路由器发送又从关联路由器接收这样的通信,并且每个网络接口控制器被启用为直接既向关联IP块发送又向关联IP块接收这样的通信从而绕过关联存储器通信控制器106。 

在图3的示例中的每个网络接口控制器108也被启用为在网络上实施虚拟信道从而按照类型表征网络分组。每个网络接口控制器108包括虚拟信道实施逻辑148,该虚拟信道实施逻辑按照类型对每个通信指令分类,并且在以分组形式向路由器110转交指令以用于在NOC上传输之前,在网络分组格式的字段中记录指令的类型。通信指令类型的示例包括IP块间、基于网络地址的消息、请求消息、对请求消息的响应、引向高速缓存的无效消息;存储器加载和存储消息;以及对存储器加载消息的响应等。 

在图3的示例中的每个路由器110包括路由逻辑152、虚拟信道控制逻辑154和虚拟信道缓冲器156。通常实施路由逻辑为同步和异步逻辑的网络,该同步和异步逻辑网络实施用于在路由器110、链路118和在路由器之中的总线接线形成的网络中的数据通信的数据通信协议栈。路由逻辑152包括本领域技术人员可以在片外网络中与路由表关联的功能,路由表在至少一些实施例中视为对于在NOC中使用而言太缓慢和繁琐。实施为同步和异步逻辑网络的路由逻辑可 以被配置为使路由判决如单个时钟周期一样快。在本例中的路由逻辑通过选择用于转发在路由器中接收的每个分组来路由分组。每个分组包含分组将被路由到的网络地址。 

在以上描述基于存储器地址的通信时,每个存储器地址被描述为被网络控制器映射到网络地址、存储器通信控制器的网络位置。存储器通信控制器106的网络位置自然地也是该存储器通信控制器的关联路由器110、网络接口控制器108和IP块104的网络位置。因此在IP块间或者基于网络地址的通信中,应用级数据处理通常也将网络地址视为IP块在NOC的路由器、链路和总线接线形成的网络内的位置。图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也可以被配置为维护在片上与片外存储器高速缓存之间的高速缓存相干性(coherency)。每个NOC可以支持各自按照相同下层存储器地址空间操作的多个高速缓存。例如高速缓存可以被IP块、存储器通信控制器或者在NOC外部的高速缓存控制器控制。在图2的示例中的片上存储器114、116中的任一片上存储器也可以被实施为片上高速缓存,并且在本发明的范围内,也可以片外实施高速缓存存储器。 

图3中所示每个路由器110包括五个端口、即通过总线接线118连接到其它路由器的四个端口158A-D以及通过网络接口控制器108和存储器通信控制器106将每个路由器连接到它的关联IP块104的第五端口160。如从图2和3中的示例可见,NOC102的路由器110和链路118形成具有垂直和水平链路的网格网络,这些链路连接每个路由器中的垂直和水平端口。例如在图3的示例中,端口158A、158C和160称为垂直端口,并且端口158B和158D称为水平端口。 

图4接着用另一方式图示实施为处理单元的与本发明一致的IP 块104的一个示例实现方式,该处理单元被分割成发布或者指令单元(IU)162、执行单元(XU)164和辅助执行单元(AXU)166。在所示实现方式中,IU162包括从L1指令高速缓存(iCACHE)170接收指令的多个指令缓冲器168。每个指令缓冲器168专用于多个、例如四个对称多线程(SMT)化的硬件线程之一。有效到实际翻译单元(iERAT)172耦合到iCACHE170,并且用来将来自多个线程取读定序器174的指令取读请求翻译成用于从更低级存储器取读指令的实际地址。每个线程取读定序器174专用于特定硬件线程并且用来保证将被关联线程执行的指令被取读到iCACHE中用于向适当执行单元派发。也如图4中所示,被取读到指令缓冲器168中的指令也可以被分支(branch)预测逻辑176监视,该分支预测逻辑向每个线程取读定序器174提供提示以最小化在执行线程时的分支所产生的指令高速缓存未命中。 

IU162也包括依赖性/发布逻辑块178,该依赖性/发布逻辑块专用于每个硬件线程,并且被配置为解析依赖性并且控制从指令缓冲器168向XU164发布指令。此外,在所示实施例中,在AXU166中提供分离依赖性/发布逻辑180,因此使分离指令能够被不同线程并发发布到XU164和AXU166。在一个可选实施例中,逻辑180可以被设置于IU162中或者可以被完全省略,从而逻辑178向AXU166发布指令。 

实施XU164为定点执行单元,该定点执行单元包括耦合到定点逻辑184、分支逻辑186和加载/存储逻辑188的通用寄存器(GPR)182的集合。加载/存储逻辑188耦合到L1数据高速缓存(dCACHE)190,而作用于dERAT逻辑192提供的实际翻译。XU164可以被配置为实施实际上任何指令集、例如32b或者64b PowerPC指令集的全部或者部分。 

AXU166作为与一个或者多个执行块194一起包括专用依赖性/发布逻辑180的辅助执行单元操作。AXU166可以包括任何数目的执行块并且可以实施实际上任何类型的执行单元、例如浮点单元或 者一个或者多个专用的执行单元,比如加密/解密单元、协同处理器、矢量处理单元、图形处理单元、XML处理单元等。在所示实施例中,AXU166包括对于XU164的高速辅助接口,以例如支持在AXU架构化的状态与XU架构化的状态之间的直接移动。 

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

可以在以上与图1-4结合描述的硬件和软件环境内实施本发明的实施例。然而受益于本公开内容的本领域普通技术人员将理解可以在多个不同环境中实施本发明并且可以对前述硬件和软件实施例进行其它修改而未脱离本发明的精神实质和范围。这样,本发明不限于这里公开的特定硬件和软件环境。 

具有低功率DSP模式的通用处理单元

随着开发更复杂芯片并且技术缩减以允许每芯片更多逻辑,在现代片上系统(SOC)设计中的功率消耗已经而变成显著设计约束。现在已经转移门限限制,其中花费比执行希望的计算而花费的每位(bit)功率更多的每位功率以将该位从存储器移向CPU。因此,需要用于片上和片外到处移动数据的新功率减少机制。此外,许多特征一旦为数字信号处理器(DSP)所特有就越来越被实施于通用处理器上以通过消除对于系统中的分离DSP芯片的需要来减少成本并且通过消除对于在DSP芯片与CPU之间移动数据的需要来增加性能。通常被DSP芯片执行的许多DSP算法、例如快速傅里叶变换(FFT)并不利用传统通用处理单元来执行,并且虽然向通用处理单元设计添加的一些特征、例如单指令多数据(SIMD)执行单元和预测已经提高性能,但是执行这些算法的处理单元的功率消耗仍然比为那些算法专门定制的DSP芯片的功率消耗高得多,这经常因为通用处理 单元通常包含旨在一般为多数工作量提高性能的大型逻辑块、比如L1数据高速缓存。然而对于许多DSP算法,这一逻辑对提高性能起很少作用。 

例如许多DSP算法遵从比如在下表I中表示的相似编码模式: 

表I:DSP算法伪代码 

与以上DSP算法相似的DSP算法通常受益于更大寄存器文件以能够本地相配尽可能多的数据。此外,算法通常没有实际受益于L1数据高速缓存,因为所有数据通常是新数据,这些新数据在它被回写到寄存器文件中之后没有被重用。然而在通用处理单元中执行这样的算法时,仍然通过L1数据高速缓存带动数据,这显著增添处理单元在执行算法时的功率消耗。 

在另一方面,与本发明的实施例可以向现有通用处理单元设计添加相对少量控制逻辑以启用“DSP模式”,在该DSP模式中有效地停用在通用/非DSP工作量中使用的、但是另外对于DSP工作量非必要的一个或者多个功能单元,以减少处理单元的功率消耗和/或提 供处理单元在执行DSP算法时的性能。 

例如在以下讨论的实施例中,DSP模式可以用来使L1数据高速缓存与任何不需要的执行单元一起减少功率(例如通过时钟门控(clock gating)或者使电压岛减少功率)并且启用向其余活跃执行单元的加载和存储以在L2(或者另一更低级存储器)与任何活跃执行单元之间直接流动而不是经过L1数据高速缓存。此外,在这一模式中,用于任何激活执行单元的所有寄存器文件条目(寄存器)可以专用于一个硬件线程,以最大化可用于处置DSP算法的寄存器数目。此外,可以停用多线程化和寄存器重命名、由此允许在DSP模式中直接使用所有物理寄存器。 

通过这样的特征组合,通用处理单元可以被配置为为许多DSP算法提供相校更大的性能而仍然减少在DSP模式中时的功率消耗,并且也未牺牲用于在处理单元未在DSP模式中时(例如在非DSP或者通用模式中时)处置的通用工作量的性能。 

例如图5图示可以例如实施为来自图1-4的计算机的IP块的示例通用处理单元200。通用处理单元200包括被配置为向一个或者多个执行单元、例如辅助执行单元(AXU)204(例如实施为浮点执行单元)、第一和第二定点执行单元(XU0,XU1)206、208和加载存储单元(LSU)210供应指令的指令逻辑202。L1高速缓存被实施为具有对应有效到实际地址翻译(ERAT)单元216、218的分离指令(ICach)高速缓存和数据(DCache)高速缓存212、214。存储器管理单元(MMU)220控制在L1与L2高速缓存之间的接口。 

在所示实施例中的发布逻辑202被多线程化以实现并发执行与多个执行线程关联的多个指令流,并且这样包括用来取读、解码和向各种执行单元204-210发布指令的发布逻辑部件的多个实例222、224。在这一示例中,支持两个线程(线程0和线程1)。实例222用来处置用于线程0的指令,而实例224用来处置用于线程1的指令,并且各自从共享指令缓冲器226取读指令而且包括专用解码逻辑228和重命名逻辑230。分支预测逻辑232用来维持用于多个转移 指令的历史信息并且预测将在执行这样的转移指令之后遵从的代码路径。 

此外,为了实施低功率DSP模式,提供附加DSP模式控制逻辑234,该DSP模式控制逻辑具有例如用于控制供给一个或者多个电压岛236的功率、例如有选择地使通用处理单元200中的一个或者多个功能单元停用和减少功率的能力。用于控制逻辑234的附加功能将从以下讨论中变得更清楚。 

将理解可以利用图5中所示配置的广泛多种替代配置。例如可以例如在组合各种部件或者级用于不同执行单元或者执行线程而不是分离地实施时或者在使用附加和/或备选部件或者级时使用各种备选发布逻辑配置。可以如不同数目和组合的执行单元可以的那样在其它实施例中使用不同存储器架构和高速缓存结构。备选控制逻辑可以用来实施各种类型的功率减少方法(例如时钟门控某个逻辑而不是使这样的逻辑减少功率)。此外,处理单元200可以设置于与其它IP块/处理器核一起集成于相同集成电路设备上的IP块或者处理器核内,或者备选地可以是集成于集成电路设备上的仅有处理单元。 

一般而言,与本发明一致的实施例可以被实际上利用在任何包括多个执行或者其它功能单元的通用处理单元配置内,并且其中在操控通用处理单元时使用的各种执行或者其它功能单元不必在处置DSP算法和其它DSP工作量时使用。因此,本发明不限于这里公开的具体实现方式。 

为了实施低功率DSP模式,控制逻辑234可以响应于在处理单元200处理的指令流中的专用指令或者备选地响应于在处理单元200中的专用寄存器中的可以经由向专用寄存器写入来控制的配置或者模式位。 

在这一实施例中并且如图6中的交叉影线部件所示,控制逻辑234执行多个操作以重新配置处理单元200用于低功率DSP模式。首先,控制逻辑使DERAT218和L1DCache214停用/减少功率(例 如通过降低电压岛)。第二,控制逻辑使在执行DSP操作时非必需或者未使用的所有执行单元(例如XU1208)停用/减少功率。第三,控制逻辑停用多线程化,使得停用除了线程0之外的所有线程(并且使所有关联的线程专属逻辑停用/功率减少)。第四,控制逻辑使重命名逻辑230停用/功率减少。 

此外,在这一实施例中,控制逻辑234还可以执行多个附加操作以进一步增强通用处理单元200在DSP模式中时具体关于就APXU204的配置而言的性能。 

例如如图7中所示,AXU204可以包括寄存器文件250和执行流水线252。在未处于DSP模式中时,L1DCache214被间插于寄存器文件250与L2高速缓存254之间,使得数据通常与从寄存器文件250读取数据或者向寄存器文件250中存储数据相关联地通过L1DCache214。 

此外,在为处于DSP模式中时,寄存器文件250被分割成多个寄存器分区,这些寄存器分区通常各自被分配给特定硬件线程,以避免在硬件线程之间的冲突。因此例如在支持两个硬件线程、线程0和线程1时,图示为具有128个条目的寄存器文件250可以被分割成各自向具体硬件线程、线程0和线程1分配的两个64条目分区256、268。为了支持使用这样的分区,处理单元200包括重命名逻辑230,用于将请求的寄存器260映射到重命名的寄存器262以访问在向请求线程分配的寄存器分区中的寄存器。因此,例如AXU指令可以使用指令中的映射到64个寄存器之一的6位地址来访问AXU寄存器文件250中的寄存器,并且通过使用重命名逻辑230,这一寄存器地址可以被重新映射到被分配给执行指令的线程的适当寄存器分区。 

在这一实施例中并且如图8中所示,控制逻辑234执行多个附加操作,以在处于DSP模式中时重新配置处理单元200。首先,所有AXU204的加载和存储绕过L1DCache214、由此提供在AXU240与L2高速缓存254之间的直接接口。第二,在多线程被停用时,仅 线程0激活,并且使寄存器文件250中的所有AXU寄存器可用于线程0的指令。此外,在寄存器重命名被停用时,每个请求的寄存器260可以被直接映射到寄存器文件250。 

在一些实施例中,可以希望用可以对更多寄存器条目直接寻址的附加ISA扩展指令而不是用通用指令来扩充用于处理单元200的指令集架构(ISA),由此使得在寄存器文件中的所有物理寄存器直接可为扩展的ISA所用。例如,用于AXU的ISA可以包括使用6位地址来标识寄存器(以对应于在处于通用模式中时向每个线程分配的64个寄存器)的指令,并且可以用附加指令扩展用于AXU的ISA,这些附加指令使用7位地址来标识寄存器(以对应于在处于DSP模式中时分配给单个激活线程的128个寄存器)。 

由控制逻辑执行的、用于以这里公开的方式配置通用处理单元用于低功率DSP模式的前述操作的实施,当将ISA的扩展以并入对于低功率DSP模式指令的支持时,将适当在受益于本公开内容的本领域普通技术人员的能力内。 

这里所示实施例因此允许对于处置DSP算法的通用处理单元更大性能,而仍然减少在处置这样的DSP算法时的功率消耗,并且也未牺牲用于其它通用工作量的性能。 

可以对公开的实施例进行各种附加修改而未脱离本发明的精神实质和范围。因此,本发明存在于所附权利要求中。 

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号