具有同步指令的处理系统的制作方法_2

文档序号:8501112阅读:来源:国知局
3]SIMD指令可允许指令的高效处理。然而,效率可能取决于数据被提供给ALU的速率。通常,来自一个SMD指令的数据结果的数量在从2到8的范围中变化,并且当每个SMD的数据结果的数量增加时,每个数据项中所包括的位的数量通常减小。增加每个SIMD指令的数据项的数量的努力可能导致各种问题,包括但不限于:从公共存储器将多个数据项同时提供给ALU、将来自ALU的结果同时存储回存储器中、在操作期间的额外的功率耗散和当额外的ALU空闲但已加电并且准备好时的另外的泄漏功率耗散。
[0044]最近的微处理器和DSP能够通过多个IPU以及ALU来同时执行多个线程。对于每个微处理器/DSP设计类型,复制什么以及是否使其特殊化广泛地变化。因为每个线程可具有独立指令流,所以这种并行操作模式被称为多指令多数据(MMD)。每个处理器的线程的典型数量是2-4,但已设计出能够实现16个线程或更多线程的处理器。除了用于供应对应ALU的多个数据流的问题之外,增加每个处理器的线程的数量的努力还遇到这些问题:从公共存储器使同时的指令流到达多个IPU和额外的寄存器的额外的泄漏功率耗散。
[0045]多处理
[0046]多处理器系统允许程序员将大任务划分成能够并行地执行的多个较小任务。并行执行能够被用于缩短完成大任务的时间或者减少功耗(通过降低处理器的时钟频率)。如果时钟频率降低,则电源电压也可减小以节省能量。
[0047]多处理器系统可被用于各种计算机系统之一。计算系统的实施例被示出在图1中。在示出的实施例中,计算系统100可以是桌上型计算机、膝上型计算机、平板计算机、智能电话或任何其它合适的系统。在各种实施例中,计算系统100可包括一个或多个嵌入式系统(诸如,例如嵌入式系统110)。在某个实施例中,嵌入式系统110可包括一个或多个集成电路(IC)(诸如,例如多处理器IC 120)。虽然在嵌入式系统110中仅描述一个1C,但在其它实施例中,可采用不同数量的1C,每个IC可被配置为执行不同功能。
[0048]参照图2A,示出描述软件和硬件分级体系的实施例的方框图。在该分级体系的底部,是计算系统240。在一些实施例中,计算系统240可对应于计算系统100。在各种实施例中,计算系统240可以是桌面工作站,而在其它实施例中,计算系统240可以是膝上型计算机或其它移动装置,并且可包括诸如显示器、硬盘驱动器、网络接口装置的部件和任何其它合适的部件。
[0049]在该分级体系的下一级别,是操作系统250。在各种实施例中,操作系统250可以是各种类型的操作系统之一(诸如,例如Windows、Linux、Unix等)。在各种实施例中,操作系统(诸如,操作系统250)可提供应用或用户程序访问计算系统240的硬件所需的命令和程序指令。
[0050]如上所述,操作系统250可为其它程序提供对硬件资源的访问。在示出的实施例中,这种程序包括设计工具套件210以及项目数据库220A和220B。在一些实施例中,设计工具套件210可被配置为允许用户配置计算系统240内的硬件资源。如以下将更详细描述,这种配置可包括将控制位存储在多处理器内的一个或多个控制寄存器中。在各种实施例中,控制位可控制多处理器的处理元件之间的信息的路由。在一些实施例中,控制位还可控制多处理器的处理元件之间的同步。
[0051]测试和开发系统的实施例被示出在图2B中。在示出的实施例中,多处理器IC 270被包括在开发系统250中。开发系统250被耦合到测试台260。在各种实施例中,测试台260可包括测试装备、膝上型计算机和任何其它合适的装备以帮助多处理器IC 270的测试和开发。
[0052]在操作期间,开发系统250可被用于确定如何配置多处理器270以与给定软件应用一起使用。在一些实施例中,该配置可包括确定如何同步多处理器270内的一个或多个处理元件,以便允许个体处理元件在并行处理期间交换数据。
[0053]需要注意的是,图2B中示出的实施例仅是例子。在其它实施例中,可采用不同数量的多处理器IC和不同测试装备。
[0054]多处理器IC的实施例被示出在图3中。在示出的实施例中,多处理器IC 300包括处理器阵列310。在其它实施例中,多处理器IC 300还可包括其它电路和功能块(未示出)。例如,多处理器IC 300可包括模拟/混合信号块,该模拟/混合信号块可包括振荡器、锁相环(PLL)、内部电源产生和调节电路等。
[0055]在操作期间,存储在存储器中或存储在硬盘驱动器或其它合适的介质上的程序指令可由处理器阵列310执行。在一些实施例中,处理器阵列310内的个体处理元件(PE)可被配置为执行某些程序指令。如以下更详细所述,在各种实施例中,可通过使用同步在PE之间协调程序指令的执行。
[0056]参照图4,示出示例性多处理器阵列(MPA)。在一些实施例中,MPA 400可对应于如图3中所示的多处理器IC 300的处理器阵列310。在示出的实施例中,MPA 400包括多个处理元件(PE)和多个支持存储器(SM)和互连网络(IN)。IN包括切换节点和链路。切换节点(还被称为路由器)可被与链路一起使用以形成PE之间以及PE和MPA I/O端口之间的通信路径。然而,在每个PE,可在SM中缓冲传送的任何信息。在示出的实施例中,SM被与通信路径路由器组合,称为数据存储器路由器(DMR)。如这里所使用,PE还可被称为PE节点,并且DMR还可被称为DMR节点。DMR还在这里被称为“可配置通信元件或CCE”。
[0057]如图4中所示的DMR之间的链路形成直线网格。然而,在其它实施例中,可采用和设想许多其它连接方案。在图4中示出的MPA连接方案中,每个PE被连接到四个邻居DMR,而每个DMR被连接到四个邻居PE以及四个邻居DMR。还设想其它连接方案以支持更高维数IN,诸如针对每个DMR使用六个DMR至DMR链路以支持三维直线网格或者针对每个DMR使用八个链路以便除了北、东、南和西方向之外还支持四个对角线方向。链路不需要局限于在物理上最近的邻居。
[0058]在各种实施例中,MPA和应用软件的组合可被称为并行处理系统(PPS)。例如,MPA可被编程为缓冲和分析来自照相机的原始视频数据,然后对缓冲内容执行视频数据压缩以将压缩数据向外发送到无线电链路上。例如,应用软件和MPA的这种组合可被称为并行视频信号处理器。
[0059]具有芯片I/O基元的MPA 400可被用于当前使用通用微处理器、DSP、FPGA或ASIC的各种系统和应用中的任何一种。例如,图4中示出的处理系统可被用于各种类型的计算机系统、数字信号处理器(DSP)或需要计算的其它装置中的任何一种。
[0060]需要注意的是,图4中示出的MPA仅是例子。在其它实施例中,可采用不同数量的PE和PE之间的不同连接机构。
[0061]同步
[0062]尽管多处理可允许同时执行更多程序指令,但多处理可能导致需要在时间和空间中的特定边界同步更小任务以用于高效通信和协调。当两个或更多任务在系统时钟的同一最小瞬间(还被称为时钟周期或仅仅简称为“周期”)开始时,所述两个或更多任务被同步。在各种实施例中,任务的同步可能难以实现与小数量的周期的同步。
[0063]如上所述,PIN不保障消息传送,如此不适合PE的同步。替代方案是在每个PE和共享存储器位置中采用软件屏障。当PE到达它的屏障时,它将位置值递增并且随后定期地轮询该位置值,直至该位置值与将要被协调的PE的预期数量匹配。然而,当采用这种技术时,多数PE架构将不会保证一组PE将会全部继续超过在同一时钟周期内与另一 PE同步的屏障。
[0064]在各种实施例中,PE架构可能能够在宽范围的周期(诸如,例如I至20个周期)内同步任务,但任何特定实例中的周期的实际数量取决于超出程序员的正常控制的几个因素,诸如其它活动线程的状态、SM中的当前处理的数据的位置、高速缓存、中断处理等。
[0065]在一些实施例中,同步网络(在这里还被称为“sync网络”)可被用于同步MPA的一个或多个PE之间的任务。多处理器系统的主互连网络(PIN)可包括链路和节点(其中节点具有用于连接到链路以及连接到散布的处理元件(PE)和支持存储器(SM)的端口),而sync网络可包括一组sync控制器、一组PE适配器和它们之间的连接以及每个PE中的新指令。
[0066]具有sync网络的MPA的实施例被示出在图5中。在示出的实施例中,单个sync控制器(C)被用于PIN中的每个节点。系统中的sync控制器可全部是相同的。每个sync控制器可具有其中每个端口都耦合到邻近PE的多个端口、和用于配置目的的一个端口。在一些实施例中,耦合到sync控制器的邻近PE的集合可以与最近的PIN节点耦合到的集合相同。配置端口可被耦合到SM位置、PE寄存器、用于编程/调试的辅助网络或为它提供配置数据的任何其它装置。sync控制器上的PE端口具有输入sync信号和输出sync_stall信号。
[0067]在一些实施例中,每个PE可采用具有多个端口的sync适配器(A),每个端口用于親合到sync控制器以及它自己的PE。在一些实施例中,sync适配器可被集成在PE中,而在其它实施例中,sync适配器可以是单独的实体。可通过从PE观察的方向(诸如,在四耦合的情况下的指南针方向NE、SE、SW和NW)来区分耦合到sync控制器的不同端口。适配器上的每个端口具有输出sync信号和输入sync_stall信号。还设想sync控制器和适配器之间的其它连接方案以支持更高维数IN。sync控制器和sync适配器之间的链路不需要局限于在物理上最近的邻居。
[0068]需要注意的是,图5中示出的sync网络仅是例子。在其它实施例中,可采用和设想不同数量的sync控制器和适配器以及sync控制器和适配器之间的不同连接。
[0069]在一些实施例中,可采用PE之间的同步的软件控制。在这种情况下,专用“sync”指令可被包括到PE指令集。在各种实施例中,用于这种指令的汇编语言格式可以是:
[0070]sync<direct1n list〉
[0071]〈direct1n list〉字段可指示用于发送sync信号(使sync信号变为有效)并且随后等待无效的sync_stall信号的sync控制器方向的列表(即,sync控制器方向中的一个或多个)。PE可在执行下一指令之前等待,直至与该列表对应的所有synC_stall信号已变为无效。
[0072]在一些实施例中,如
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1