对于多处理器系统的实时分析和控制的制作方法_4

文档序号:8548074阅读:来源:国知局
1进一步示出的,在本方法中,可W在各种点中的任何点处插入一个或更多 个探测器。例如,在各种实施例中,可w在资源分配之前、在链接之后、和/或尤其在执行期 间,插入一个或更多个探测器。应注意,在各种实施例中,如下面所讨论的,探测器可W自动 地插入,或者可W例如由例如开发人员或测试人员之类的用户手动地插入。
[0132] 在一些实施例中,所述工具可W包括被配置为控制软件定义的测试平台的控制程 序。软件定义的测试平台可W被配置为实时地测试被测设备值UT)和在该DUT上执行的应 用软件,其中,该DUT包括含有多个处理元件、支持存储器和高带宽互连网络(1脚的多处理 器阵列(MPA),所述IN通信地禪接所述多个处理元件和支持存储器。软件定义的测试平台 还可W被配置为提供例如测试矢量和/或信号流之类的输入数据W激励DUT,并且接收由 DUT的仿真产生的数据。附加地或者可替代地,DUT可W被配置为从禪接到DUT的外部信号 或数据源,例如从摄像机,接收输入数据,即,实时信号。
[0133] 此外,软件定义的测试平台可W被配置为在DUT正W全操作速度实时地执行应用 软件的同时分析(例如,测试)DUT和应用软件。在一些实施例中,软件定义的测试平台可 W被配置为在对DUT和应用软件性能零影响的情况下分析DUT和应用软件,而在其他实施 例中,如下面更详细地讨论的,对DUT和应用软件的影响可W不为零,但是可忽略,即,足够 小W至于不能被用户检测到,太小W至于对应用的操作的影响不可测量,或者在某指定的 容限内。在一个实施例中,MPA可W被配置为使用MPA的第一部分来执行软件应用(或应 用软件),并且所述工具可W被配置为自动地将一个或更多个软件探测器配置到MPA的第 二部分上。为了在DUT正W全操作速度执行应用软件的同时分析DUT和应用软件,所述一 个或更多个软件探测器可W被配置为在执行期间从软件应用读取数据或者将数据写到软 件应用,W便进行分析或控制。下面提供进一步的细节。 阳134]连时调制
[0135] 在一些实施例中,可W通过将"调试探测器"插入到正在执行应用运行时软件的硬 件DUT中W监视内部信号来实现实时调试。理想地,调试探测器应是完全非侵入性的,即, 不应W任何方式对用户的应用软件的操作产生影响或效果。在一些情形下,该可W是真实 的;然而,在大多数情形下,效果将是可忽略的,并且在一些情形下,可能没有足够的资源, 或者可能存在对于探测器插入的安全屏障。注意,取决于所考虑的特定的应用领域或用途, 术语"可忽略的效果"和"实时地"可W表示不同的容限水平。例如,在一些实施例中,该些 术语可W意味着测试是在对DUT和/或应用性能的影响小于1 %的情况下执行的。类似地, 在各种其他的示例性实施例中,例如,按照指定的要求,可接受的容限可W小于0. 1%、小于 0. 5%、1 %,小于2%、小于3%、小于4%、小于5%,等等。更一般地,在各种不同的实施例 中,可接受的容限(因此,"可忽略"和全操作速度实时地"的意义)可W视情况被指定 为任何期望的值。
[0136] 在一个示例性实施例中,探测器可W实现为在例如未被应用软件使用的PE和通 信资源之类的MPA硬件构造上运行的任务。探测器可W将期望的数据从巧片流传输到开发 板和连接的用作软件开发工具的主机的PC,或者诸如逻辑分析器之类的设备。在主机上,数 据可W被放到文件中,图形化地显示,和/或流传输到附连的诸如扬声器或视频监视器之 类的设备。主机还可高速将测试信号输入数据提供给DUT,如果不是直接地提供,则通 过将输入数据文件传送到与DUT相邻或靠近的SDRAM来提供。对于一些测试,输入数据可 W在DUT上生成,而在其他情况下,可W使用外部信号生成器。
[0137]用于数字信号的探测器可WW许多不同的方式实现。在一些实施例中,探测器可 W包括采样部分、数据处理部分和巧片输出部分。在一些实施例中,MPA可W将数据形成或 格式化为数据包,W将数据发送到主机,而在其他实施例中,MPA可W将数据发送到用于该 目的的另一个巧片。 阳13引辅巧发泼
[0139] 实现探测器的采样部分的一种示例性方式是:在PE任务中找到针对感兴趣信号 的第一"发送"声明,然后在第一发送之后插入第二(辅助),发送声明针对同一信号,但是 使相关联的通信通路从不同方向退出DMR并且被引导沿着空闲通路到巧片I/O端口。包含 两个发送声明的任务可W被重新编译,并且与应用软件的其余部分链接,W创建具有用于 测试和分析的信号接入的二进制映像。然后,每次发送任务发送感兴趣信号的数据块,它还 将同一数据块发送到探测器。该可能没有完全满足探测器为非侵入性的要求,因为发送任 务必须执行第二发送,该增加了执行该任务的周期。然而,如果第二发送使用未被应用软件 使用的硬件资源,则该种成本可W得到改善。例如,如果第二(辅助)发送声明使用DMA引 擎,则PE可W尽被延迟几个PE时钟周期来写DMA控制寄存器,然后PE可W继续应用任务。 通常,与分配给任务的时间相比,该些额外的周期是可忽略的。作为另一个示例,在一些实 施例中,第二或辅助发送声明可W利用巧片上的网络来将探测器数据提供给MPA的边缘。
[0140] 图12是根据一个示例性实施例的用于使用辅助发送声明来测试被测设备值UT) 的方法的高级流程图。DUT包括多处理器阵列(MPA),W上描述了MPA的各种实施例。图12 中所示的方法可W与上面的图中所示的计算机系统或设备W及其他设备中的任何一个结 合使用。在所示的示例性实施例中,如在图12中由标记"软件定义的测试平台100"和"修 改的应用软件200"所指示的,该方法一部分由软件定义的测试平台执行,一部分由在MPA 上执行的(修改的)应用软件执行。
[0141] 在各种实施例中,所示的方法要素中的一些可W按不同于所示次序的次序、同时 地执行,或者可W省略。也可W根据需要执行附加的方法要素。如所示出的,该方法可W如 下操作。
[0142] 首先,在1202中,可W将期望被测试的应用软件存储在例如存储器介质中。该应 用软件可W能够部署为在MPA上的第一硬件资源上执行。如W上所讨论的,MPA可W包括 多个处理元件、多个存储器W及通信地禪合所述多个处理元件和所述多个存储器的互连网 络(1脚。
[0143] 在1204中,可W将期望被测试的应用软件修改为包括测试代码,由此创建修改的 应用软件。修改的应用软件中的测试代码可W包括至少一个辅助发送声明。
[0144] 在一些实施例中,测试代码可W由软件定义的测试平台自动地包括在应用软件 中,即,在没有调用或执行所述包括的直接用户输入的情况下。例如,可W对应用软件进行 分析W在应用软件中定位第一发送声明,并且可W与第一发送声明邻近地将辅助发送声明 自动插入在应用软件中。此外,在一些实施例中,可W对应用软件进行分析W在应用软件中 定位多个发送声明,并且可W与所述多个发送声明中的各自的发送声明邻近地将相应的一 个或更多个辅助发送声明自动插入在应用软件中。因此,测试代码可W包括多个辅助发送 声明。注意,在一些实施例中,用户可W选择或指示应用软件中的哪些发送声明是感兴趣 的,并且辅助发送可W相应地被自动插入。换句话说,用户可W指定哪些发送声明(或感兴 趣的信号/数据)将被探测,并且所述方法或工具可w与每个选择的或指示的发送声明邻 近地自动插入各自的一个或更多个辅助发送。
[0145] 在其他实施例中,测试代码可W由用户手动地包括在应用中,例如,用户可W例如 经由编辑器或者通过除了软件定义的测试平台之外的处理将测试代码插入到应用软件中。 在其他实施例中,可W利用自动技术和手动技术的各种组合。例如,工具可W自动地发现或 定位发送声明,用户可W指示或选择感兴趣的发送声明,并且相应地手动插入辅助发送声 明。在其他实施例中,用户可W手动地确定发送声明的位置,并且确定哪些是感兴趣的,并 且辅助发送可W被手动地或自动地插入。
[0146] 在1206中,可W将修改的应用软件部署在MPA的硬件资源上。该部署可W包括: 将应用软件部署为使用MPA的第一硬件资源,并且将测试代码部署为在第一硬件资源中的 至少一个上执行并且被配置为使用MPA的一个或更多个第二硬件资源,其中,第二硬件资 源不同于第一硬件资源,并且不被应用软件使用。W全操作速度实时地执行修改的应用软 件的MPA可W包含,即,包括被测设备值UT)、是DUT、或被包括在DUT中。
[0147] 在一些实施例中,可W例如通过软件定义的测试平台自动地将修改的应用软件部 署在MPA的第一硬件资源上。在其他实施例中,可W通过某其他媒介(例如,由用户手动 地)或者通过除了软件定义的测试平台之外的处理将修改的应用软件部署在MPA的第一硬 件资源上。
[0148] 在1208中,输入数据可W由修改的应用软件接收W激励DUT。在一些实施例中, 输入数据中的至少一些可W由软件定义的测试平台,例如由主机,来提供,W激励DUT。例 如,软件定义的测试平台可W为DUT/应用软件提供包括一组输入数据的测试矢量,并且可 W包括所期望的任何类型和数量的数据或信号。
[0149] 附加地,或者可替代地,在一些实施例中,DUT可W例如经由开发板从禪接到DUT 的外部信号(数据)源接收输入数据。在一个实施例中,外部信号源可W提供实时的和/ 或现实世界的数据来激励DUT。换句话说,DUT可W从禪接到DUT的外部信号源接收实时数 据来激励DUT。其中,外部信号源的示例包括但不限于;摄像机、网络设备(诸如路由器、调 制解调器、集线器等)、传感器和其他系统等。注意,在各种实施例中,可W根据需要使用任 何类型的外部信号源。
[0150]MPA可全操作速度实时地执行修改的应用软件。换句话说,尽管DUT/MPA和应 用软件正被测试,但是修改的应用软件可W如正常操作期间一样快地(或者在效率上一样 快地)执行。如W上所说明的,全操作速度实时地"执行修改的应用软件意指,在执行 修改的应用软件时的系统性能在正常操作期间(例如,当未被测试或调试时)的系统性能 的某指定容限内,例如,根据期望或需要,在0. !%、〇. 5%、1%、2%、4%、5%等内。更一般 地,如W上还指出的,可接受的容限可W视情况被指定为任何期望的值,由此针对任何特定 应用程序定义全操作速度实时地"。因此,本文中所公开的技术可W在对系统性能(包 括执行应用软件的DUT的性能)的影响可忽略的情况下用来分析DUT。
[0151] 在1210中,可W由修改的应用软件基于输入数据在DUT中产生第一数据。换句话 说,响应于输入数据,在MPA上执行的修改的应用软件可W生成第一数据(在一些实施例 中,第一数据也可W被认为是信号)。在一些实施例中,所生成的第一数据可W最初存储在 计算第一数据的MPA的处理元件中的或相邻的本地存储器中,例如,存储在相邻DMR的寄存 器或存储器中。
[0152] 在利用第一DMA引擎提供第一数据的至少一个子集的一些实施例中,所述生成可 W包括将第一数据存储在MPA的第一存储器中,其中,第一存储器是被应用软件使用的第 一硬件资源之一,并且其中,包括作为一个或更多个第二硬件资源之一的第一DMA引擎的 多个DMA引擎与第一存储器相关联。此外,在一个实施例中,第二DMA引擎也可W与第一存 储器相关联,其中,第二DMA引擎是被应用软件使用的第一硬件资源之一。
[0153] 在1212中,由修改的应用软件执行第一发送声明,其中,第一发送声明将第一数 据提供给修改的应用软件使用。换句话说,修改的应用软件可W执行第一发送声明W将第 一数据提供给修改的软件应用的某其他部分或功能。第一发送声明可W在MPA的第一硬件 资源之一上执行。
[0154] 在1214中,修改的应用软件可W在第一硬件资源之一上执行辅助发送声明W使 用第二硬件资源中的至少一个将第一数据的至少一个子集提供给MPA的边缘处的管脚。例 如,在一个实施例中,执行辅助发送声明(W将第一数据的至少一个子集提供给MPA的边缘 处的管脚)可W对MPA的第一直接存储器存取值MA)引擎进行编程,W将第一数据的所述 至少一个子集提供给MPA的边缘处的管脚,其中,第一DMA引擎是MPA的未被应用软件使用 的所述一个或更多个第二硬件资源之一。第一数据(从第一硬件资源)到第一DMA引擎上 的数据传输的该种卸载因此可W防止数据传输的执行降低执行(修改的)应用软件的操作 性能(如W上所说明的,超出指定的容限)。因此,辅助发送声明可W操作为经由例如第二 硬件资源之一,例如,第一DMA引擎,悄悄地"接入"应用软件,由此生成第一数据的副本W 用于分析目的。
[0巧5] 在一个实施例中,第一数据可W经由通过MPA的IN的第一数据路径提供给修改的 应用软件使用,并且第一数据可W经由通过MPA的IN的第二数据路径提供给MPA的边缘处 的管脚,其中,第二数据路径不同于第一数据路径。
[0156] 在1216中,由辅助发送声明提供的第一数据可W例如经由MPA的边缘处的管脚例 如被软件定义的测试平台(例如,主机)接收。所接收的第一数据可W可用于分析DUT的 操作,例如,W便测试和调试应用软件。
[0157] 如W上所指出的,在一些实施例中,上面的各种方法要素可W由软件定义的测试 平台执行。例如,在一个示例性实施例中,W上所述修改和接收可W由软件定义的测试平台 执行,其中,软件定义的测试平台在对DUT性能的影响可忽略的情况下测试DUT。
[015引 W略微不同的方式描述W上方法的重要方面,在一些实施例中,存储器介质可W 存储被配置为部署在多处理器阵列(MPA)的第一资源上和/或使用MPA的第一资源的应用 软件,其中,MPA包括多个处理元件、多个存储器和通信地禪接所述多个处理元件和所述多 个存储器的高带宽互连网络(1脚。存储器介质还可W包括该样的程序指令;所述程序指令 可被处理器执行W将期望被测试的应用软件修改为包括测试代码,由此生成修改的应用软 件,其中,修改的应用软件中的测试代码包括至少一个辅助发送声明。如W上所指出的,测 试代码可W被配置为使用MPA的一个或更多个不同的第二资源,其中,所述一个或更多个 不同的第二资源未被应用软件使用,并且其中,执行应用软件的MPA包括被测设备值UT)。 [0159] 在MPA上执行的修改的应用软件可W被配置为;接收输入数据W激励DUT,基于输 入数据在DUT中生成第一数据,执行第一发送声明W将第一数据提供给修改的应用软件使 用,并且执行辅助发送声明来对MPA的直接存储器存取值MA)引擎进行编程W将第一数据 提供给MPA的边缘处的管脚,其中,DMA引擎是MPA的所述一个或更多个第二资源之一。该 程序指令可W进一步可执行为接收由DMA引擎得到的第一数据,其中,第一数据可用于测 试DUT。
[0160]从应用软件的角度来考虑W上技术,存储器介质可W存储可在多处理器阵列 (MPA)中执行的程序指令,其中,该程序指令包括应用软件和插入到该应用软件中的测试代 码。所述程序指令可W可执行为;接收输入数据,基于输入数据生成第一数据,执行应用软 件中的第一发送声明W将第一数据提供给应用软件使用,并且执行来自插入到应用软件中 的测试代码的至少一个辅助发送声明来对MPA的第一直接存储器存取值MA)引擎进行编程 W将第一数据提供给MPA的边缘处的管脚。如W上还指出的,第一DMA引擎可W是MPA的 未被应用软件使用的硬件资源。第一数据可W可用于分析DUT。
[0161]W上方法的实施例利用插入到应用软件中的辅助发送声明来对MPA上的未被使 用的或空闲的DMA进行编程W从正在执行的应用软件提取感兴趣的数据(或信号),W便在 不会显著地影响系统的性能的情况下提供给MPA的边缘。用于复制和提取该种数据或信号 的其他技术也被构想,并且在下面进行描述。 阳16引外部测试代码
[0163] 图13是根据一个示例性实施例的用于测试DUT的方法的高级流程图,例如与图12 的使用辅助发送声明相反,该方法使用应用软件外部的测试代码(其也可W被称为测试程 序代码)来从MPA复制和提取感兴趣的数据或信号。与图12的方法一样,DUT包括多处理 器阵列(MPA),W上描述了MPA的各种实施例。图13中所示的方法可W与W上图中所示的 计算机系统或设备W及其他设备中的任何一个结合使用。在各种实施例中,所示的方法要 素中的一些可W按不同于所示次序的次序同时地执行,或者可W省略。也可W根据需要来 执行附加的方法要素。如所示出的,该方法可W如下操作。
[0164] 首先,在1302中,可W对期望被测试的应用软件进行分析。所述应用软件可W被 配置为部署在多处理器阵列(MPA)的第一硬件资源上。与图12的方法一样,MPA包括多个 处理元件、多个存储器和通信地禪接所述多个处理元件和所述多个存储器的高带宽互连网 络(1脚。例如,在一个实施例中,软件定义的测试平台可W自动地分析应用软件W确定感兴 趣的数据或信号是在何处和/或何时产生的。
[0165] 在1304中,可W创建测试程序代码,所述测试程序代码可执行为对MPA上的硬件 资源进行配置W复制在应用软件中生成的数据的至少一个子集,W用于分析(例如,测试) 目的。在一些实施例中,测试程序代码的创建可W是自动的,例如,可W在没有指定该代码 的直接用户输入的情况下由软件定义的测试平台进行。在其他实施例中,用户可W例如经 由软件定义的测试平台或程序开发环境的编辑器来创建测试程序代码的至少一部分。
[0166] 在1306中,可W将所述应用软件部署在MPA的第一硬件资源上,其中,执行所述应 用软件的MPA包括被测设备值UT)。
[0167] 在1308中,可W提供输入数据来激励DUT。如W上所讨论的,DUT可W包括W全操 作速度实时地执行所述
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1