对于多处理器系统的实时分析和控制的制作方法
【技术领域】
[0001] 本发明的领域一般设及对于诸如计算机、数字信号处理器值S巧和该种嵌入式实 例之类的数字电子系统的软件开发、自动测试W及分析,更具体地说,设及对于多处理器系 统的实时分析和控制。
【背景技术】
[0002] 新数字电子产品的开发需要大量的测试、测量和表征来验证其中的硬件和软件。 对于复杂的数字电子产品,验证成本可能是总开发项目成本的最大一部分。存在用于降低 测试和验证成本的几种方式或技术。
[0003] -种方式是可测性设计值FT),其中产品设计包括对简化测试的技术的规定。其包 括提高产品及其组成设备的内部状态的可控性和可观察性的测试点的规定。测试点的潜在 问题是,它们的位置在系统中变为确定的,并且在最终产品中可能无法改变。另一个问题可 能是,来自测试点的原始数据速率超过系统消费或处理数据的容量,所W产品可能必须W 慢于正常速度的速度运行W执行测试。
[0004] 降低测试和验证成本的另一方式是自动测试,因为如果不需要人类操作者来进行 测试,则每单位时间可W执行更多的测试,导致捕获故障的可能性更高。然而,在应用软件 的开发和自动测试期间,(交互式地)支持在短周期内程序员的增加的设计和测试是有益 的。
[0005] 另一方法是W对产品的正常操作具有可忽略的劣化的方式把测试仪器构建到产 品中。内置的测试仪器炬uilt-inTestInstrumentation, 6口1)的范围可W从高速注入 和收集复杂信号W探查信号处理的高级探测器到诸如统计和图形显示之类的分析能力。该 方法的问题是缺少足够的处理资源来全速地消费原始数据。
[0006] 另一方式是内置自测试化uit-inself-test,BIST)。BIST可W利用大量的自动 内部测试,每个自动内部测试产生被添加到当前和(runningsum)的二进制模式结果。在 所有测试结束时,当前和是签名,该签名可W被输出并且与在设计和仿真期间生成的已知 好签名进行比较。BIST还可W产生更详细的报告,例如哪些(如果有的话)测试失败的报 告。
[0007]BIST和BITI该两者都可W在产品的使用期期间用来增强其可维护性。可W在同 一设备上使用该些技术的组合。
[0008]W上技术中的每种技术都需要对细节有相当多的关注,并且计算机用于跟踪该些 细节。此外,每个产品的细节是不同的,因此,可能需要相当多的工作来对计算机进行编程 W获得每次产品验证所必需的测试、测量和表征数据。
[0009] 使用该些技术的益处通常大于实现它们的成本;然而,在行业中,改进是可能的并 且不断发展。
[0010] 可各种方式降低成本,例如,通过使测试设置和编程过程利用可重用的、经参 数化的模块,所述模块可W容易地被组合W成为用于每个产品的自定义测试系统。
[0011] 可WW各种方式增多益处,例如,通过使测试操作W更高的速度运行,使得每单位 时间可W执行更多的测试,从而增大应用的状态空间的覆盖范围W验证适当的操作(或者 在产品到达客户之前发现漏洞)。
[0012] 越来越多地,诸如计算机、数字信号处理器值S巧和嵌入在封装设备中的那些系 统之类的数字电子系统利用一个或更多个多处理器阵列(multiprocessorarrays,MPA), 其中所述封装设备诸如是;无线电电话、政府服务无线电、消费者无线设备(诸如蜂窝电 话、智能电话和平板计算机)、蜂窝基站设备、视频处理和广播设备、对象识别设备、超光谱 图像数据处理等。MPA可W被宽松地定义为多个处理元件(P巧、支持存储器(SM)和高带宽 互连网络(1脚。如本文中所使用的,术语"处理元件"是指处理器或CPU(中央处理单元)、 微处理器或处理器内核。MPA中的词语"阵列"在其最宽泛的意义上用于意指由网络互连的 多个计算单元(每个包含处理资源和存储器资源),所述网络具有在包括圆形维度(回路或 环路)的一个、两个、=个或更多个维度上可用的连接。注意,较高维度的MPA可W映射到 具有较少维度的制造介质上。例如,具有四维(4D)超立方体的形状的IN中的MPA可W映 射到娃集成电路(1C)巧片的3D叠层上,或者映射到单个2D巧片或者甚至计算单元的1D 线上。此外,低维度的MPA可W映射到较高维度的介质。例如,计算单元的1D线可婉 艇的形状被布局到1C巧片的2D平面上,或者被盘卷成巧片的3D叠层。MPA可W包含多种 类型的计算单元W及处理器和存储器的散置布置。MPA在广义上还包括MPA的层次结构和 嵌套布置,尤其是由互连的1C巧片构成的MPA,其中所述1C巧片包含还可W具有更深层次 结构的一个或更多个MPA。
[0013]MPA对于软件开发方法和工具呈现出新的问题和机会。因为MPA可W扩展到数千 个PE,所W需要管理大量的软件来操作该阵列,并且需要W高效的方式测试、调试和重构该 种软件。一般地,该需要模块化、层次结构、可适应模块复用和自动构建方法。虽然该些思 想已经出现在传统的软件开发系统中,但是它们尚未W支持一般化模块的方式集成到开发 工具中,所述一般化模块可W根据性能要求或者不同的形状或拓扑要求而静态地和/或动 态地适应不同数量的PE和其他资源,该些要求又取决于资源可用性或应用要求。
[0014]软件开发项目是用于生成使某产品或服务根据开发团队采用的要求进行操作的 软件的人和机器工作的组合。一般地,更多的设计和测试自动化是有益的,因为它允许对所 生成的软件进行更多的测试,从而消除更多的漏洞。
[0015]在图1中绘出了用于嵌入式系统的传统现有技术的软件开发环境。除人类软件工 程师和程序员之外,开发环境还具有S个主要部分一-该些是可包括工作站的测试平台和 最终产品,就如所示出的,但是在某些现有技术的开发系统中,工作站可W被认为与测试平 台分离。
[0016]最终产品的最小表示是技术要求列表。对于测试平台的最小要求是生成用于被测 设备(deviceundertest,DUT)的测试模式输入的装置、W及捕捉DUT的输出并且与已知 的好模式进行比较的方式。DUT与最终产品匹配得越接近,所开发的软件在最终产品中将按 照所预期的那样操作的置信度越高。
[0017]工作站的最小要求是具有对大容量存储器的细节、设计数据的数据库、W及读写 项目数据库的一组(或一套)设计工具进行管理的操作系统(0巧的台式或膝上型计算机。 可W存在多于一个的项目和多于一个的项目数据库,并且工具和库可W在它们之间共享, w降低开发成本。
[0018] 一般来说,用于计算机和数字信号处理器值SP)的存储器按该样的层次结构组 织;顶部是快速存储器,层次向下每级是更慢却更高容量的存储器。在MPA中,在层次结构 顶部的支持存储器位于每个PE附近。每个支持存储器可W专口只保持指令或只保持数据。 特定PE的支持存储器可W对该PE是私有的或者与其他PE共享。
[0019] 存储器层次结构再往下可W具有更大的共享存储器,该共享存储器典型地由半导 体同步动态随机存取存储器(SDRAM)组成,所述半导体SDRAM具有比与每个PE相邻的支持 存储器的位容量大许多倍的位容量。存储器层次结构再往下是闪存、磁盘和光盘。
[0020] 如上所述,多处理器阵列(MPA)包括处理元件(P巧、支持存储器(SM)W及支持阳 和/或存储器间的高带宽数据通信的主互连网络(PIN或仅仅IN)的阵列。在图2和图3 示出了例示性的MPA,下面会进行描述。一般地,PE具有用于缓冲输入数据和输出数据的寄 存器、指令处理单元(IPU)W及用于对数据执行算术和逻辑功能的装置,外加用于与系统 的其他部分通信的若干交换器和端口。IPU从存储器取得指令,对它们进行解码,并设置适 当的控制信号W移动数据进出PEW及对数据执行算术和逻辑功能。仅因为每个包含大MPA 的1C巧片的阳数量大,所W适合于大MPA的PE-般比通用处理器(GP巧能效更高。
[0021] 如本文所使用的,术语MPA覆盖了相对同构的处理器阵列W及在所谓的"平台1C" 巧片上集成的通用和专用处理器的异构集合该两者。平台1C巧片可W包含典型地与共享 存储器或许还有巧片上的网络互连的几个至许多个处理器。在MPA和"平台1C"巧片之间 可W存在或可W不存在差异。但是,"平台1C"巧片可W被推销为针对特定垂直市场中的特 定技术需求。
[0022] 示例性MPA架构是在美国专利No. 7415594中公开的HyperX?架构。在HyperiC? 架构的一个实施例中,尺寸范围宽的多处理器阵列可W由基于单元格的硬件构造(网)组 成,其中,每个格被称为超切片(HyperSlice)。该硬件构造可W通过在网格上布置单元格并 且使相邻的格互连来形成。每个超切片可W包括一个或更多个数据存储器和路由器(data memo巧androuter,DMR)W及一个或更多个处理元件(P巧。在美国专利No. 7415594中, DMR被称为可动态配置通信值CC)元件,PE被称为可动态配置处理值(P)元件。DMR可W 为其相邻的PE提供支持存储器,W及为互连网络(1脚提供路由器和链路。
[0023] 可W通过将超切片邻接在一起来创建硬件构造,所述将超切片邻接在一起设及使 超切片对齐W形成正确的电连接。该些连接包括到DMR的链路和到电源网格的连接。复制 超切片、使它们对齐W及通过邻接进行连接的技术是集成电路(1C)巧片,尤其是用互补金 属氧化物半导体(CM0巧电路技术制造的1C的超大规模集成(VLSI)的公知技术。该种硬 件结构具有对于处理元件独立地且透明地操作的PIN,并且可W通过支持任意通信网络拓 扑的超切片之间的能实时地编程和改编的通信通路(可W被称为路由或通道)的整体来提 供按需带宽。经协调的超切片组可W在软件控制下"飞速地"形成和改造。动态地改变用 于评估功能的硬件的量的该种能力允许最佳地应用硬件资源来缓解处理瓶颈。在所述硬件 构造的边缘,链路可W连接到专用于存储器层次结构更往下的存储器类型或者专用于集成 电路(1C)巧片的边缘处的I/O的电路。
[0024] 互连的DMR可W提供跨巧片的W及巧片之间的最近邻、区域和全局通信。该些通 信模式中的每种通信模式可W物理地使用DMR资源来根据数据的所在地和软件算法要求 而不同地发送数据/消息。"快速端口(QuickPort)"设施可W被提供W支持一个或更多 个字的数据从处理器到任何网络目的地的低等待时间传输。对于块传输,DMR内的直接存 储器存取值irectMemcxryAccess,DMA)引擎可用于管理跨越存储器和路由结构的数据移 动。对于PE之间的最近邻通信,使用共享存储器和寄存器可能是最高效的数据移动方法。 对于区域和全局的数据移动,使用路由构造(PIN)可能是最高效的方法。通信通路(或路 由)可W是动态的,或者静态的。动态路由可W针对数据传输而建立,并且当传输完成时被 拆除W释放PIN资源,W便用于其他路由和数据传输。静态路由可W在整个程序执行期间 保持原样,并且主要用于高优先级的和关键的通信。通信通路的物理位置和跨越它们的数 据传输的定时可W在软件程序控制下。可W存在多个通信通路W支持任何发送器和接收器 之间的同时数据传输。
[00巧]DMR的架构可W允许在多处理器构造中使用不同的可互换阳W针对具体应用来 优化系统。HyperX?多处理器系统可W包括同构或异构的PE阵列。PE可W是传统的处理 器,或者可替代地,阳可W不符合处理器的传统定义。阳可W简单地是用作用于某些逻辑 功能的硬连线的处理器的逻辑口的集合,其中为了更高的性能、更小的面积和/或更低的 功率而牺牲可编程性。
[0026]图2例示了依照现有技术的示例性曲口6巧"系统的处理元件(P巧和数据存储器 路由器值MR)的网络的视图。PE被示为矩形块,DMR被示为圆圈。DMR之间的路由通道被 示为点线。实线=角形表示网外通信,实线表示DMR之间的活动数据通信。计算任务由其 数字标识符示出,并且被放置在正执行它的PE上。用于通信的数据变量由其名称示出,并 且被放置在包含它的DMR上。在本示例性示例中,左上方的PE被分配了具有任务ID62的 任务,并且可W经由与该PE相邻的各个DMR与其他PE或存储器进行通信,所述DMR由通信 路径变量t、w和U指定。如还示出的,在本实施例中,活动通信通道经由被标记为"X"的相 邻DMR把被指定为71 (例如,另一任务ID)的阳连接到网外的通信路径或端口。
[0027] 图3例示了依照现有技术的在巧片上实现的示例性多处理器系统。如所示的,类 似于图2的示例性系统,该巧片包括用于与巧片外的设备进行通信的多个I/O路由器、W及 内部多处理结构。HyperX?处理器架构可W包括固有的多维度,但是可所示的平面实现 来物理地实现。处理器架构可W具有高能效特性,并且还可W是在根本上可扩展的(扩展 为大阵列)且可靠的一一代表既低功率又可信赖的概念。使得处理器架构能够实现前所未 有的性能的方面包括最新型的处理器、存储器网络和灵活的10。处理元件(P巧可W是成熟 的DSP/GPP,并且基于由可变宽度指令字指令集架构维持的存储器至存储器(无高速缓存) 架构,所述可变宽度指令字指令集架构可W动态地扩充执行管线W在最大化硬件资源的使 用的同时保持吞吐量。
[002引在图4中更详细地示出了根据现有技术的DMR硬件结构的示例,其中,中央数据存 储器值M)被表示路由器的八角环包围。注意,所示的八角形形状仅仅是象征性的,实际形 状可能是不同的,例如,可W是矩形。可W看出,DMR周围是表示到其他DMR和PE的数据路 径的若干双向箭头。该些双向数据路径可W用在每个端的实际的双向收发器来实现,或者 被实现为方向相反的一对单向路径。
[0029] 图4中的路由器和数据存储器之间的单向箭头表示存储器和路由器之间的单向 数据路径。该些箭头附近的小正方形表示DMA引擎,即,支持从DM读出的DMA读取器值MAR) 和/或支持将数据写到DM的DMA写入器值MAW)。DMAR引擎产生用于存储器的地址信号, 典型地跨缓冲区递增,读取要从链路发送到另一个DMR的数据。类似地,DMAW引擎产生用 于存储器的地址信号,典型地跨缓冲区递增,写入它从链路接收到的数据。每个DMA引擎比 PE小得多,并且使用更少的功率,所W它们对于用于存储器的块的读写是有吸引力的。DMA 引擎可W通过对DM存储器空间中的相关联的配置寄存器的阳写入来进行配置。对特定地 址的写入触发DMA开始递增。当DMA完成一块地址的从头到尾的递增时,它停止一一除非 被配置为无限地继续循环。
[0030] 软件是操作计算机或其他存储有程序的设备所需的指令(也被称为程序代码)的 整体。软件可W根据其用途进行分类。针对具体用途(诸如文字处理、网上冲浪、视频或蜂 窝电话信号处理等)为终端用户操作计算机的软件可W被称为应用软件。应用软件包括 由人类程序员编写的源程序和脚本、各种中间编译形式,并且被称为运行时软件(runtime software)的最终形式可W由目标设备(PE、微处理器或CPU)执行。运行时软件也可W由 仿真器执行,所述仿真器是出于调试(错误消除)的目的而被设计为相比实际的目标设备 提供目标设备的内部状态的更多可见性的设备。
[0031] 开发软件(一组或一套软件开发工具)是用于产生应用软件的软件。基本开发工 具包括如图5中所指示的编译器、汇编器和链接器,其中图5例示了根据现有技术的用于基 于MPA的系统的示例性软件设计和开发流程。用户借W用高级编程语言(例如,C或C++) 写源代码的编辑器也可W被认为是基本开发工具。人类工程师或程序员典型地设计程序, 并用高级编程语言将其翻译成由图5的被标记为"完整设计"的文档表示的源代码,所述文 档可W经由程序编辑器来创建。在被标记为"语言编译/汇编"的方框中,编译器用于将源 代码翻译成模块化的地址可重定位的目标代码;然后汇编器用于创建模块化的机器代码; 最后,链接器用于创建整个程序的可执行二进制映像。如所示出的,还可W在该些阶段的任 何阶段中和在该些阶段中的任何阶段之间执行优化。该个被标记为"对设计进行处理W创 建巧片编程文件"的编译、汇编和链接(生成二进制映像)的包括优化的过程可W用存储在 "make文件(makefiles)"中的对操作系统的指令来自动进行。为了测试程序,二进制映 像一般被加载到目标设备的存储器中(在图5中通过向"处理器1C巧片"提供和实现"巧 片编程信息",即"对巧片进行编程"来表示),并被执行(即,"运行程序")。其他常见的软 件工具包括调试器(用于加载、启动、暂停、转储(dump)和反汇编来自目标PE的二进制映 像)、W及周期精确的仿真器。周期精确的仿真器提供处理器内部状态的完全可见性,但是 它们运行得比目标硬件慢得多,例如,慢上许多个数量级。
[0032] 对于多处理器系统,与单处理器系统相比,存在重要的额外步骤,该步骤是将特定 的处理任务或模块分配到特定的物理资源一一该些物理资源是阳、支持存储器、W及阳与 系统I/O端口之间和各自间的通信资源。通信资源可W包括路由器、路由器之间的链路、包 括交替的路由器和链路的串的路径、支持存储器、W及置于支持存储器和路由器(或链路) 之间的DMA引擎。注意,资源分配可W包括将数据变量分配到存储器资源上,因为共享的和 局部的存储器的分配可能对PE和通信资源的分配有影响,反之亦然。在图5中,该额外步骤 由被标记为资源分配(也可W被称为物理设计)的方框表示。所述流程的资源分配部分可 W利用布置和路由工具,该布置和路由工具可W用来将任务分配给阵列中的特定PE,W及 选择IN中的具体端口和通信通路(路径)。注意,整个系统的物理设计不需要马上全部进 行;特别地,可w在w后、在应用软件开