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

文档序号:8501112阅读:来源:国知局
果sync控制器未被配置为使这个PE与一个或多个其它PE同步,则sync_stall信号将会保持无效并且PE可不等待sync_stall信号。sync控制器可忽略来自在sync配置寄存器中“屏蔽”的PE的sync,并且可不使sync_stall对于该PE变为有效。在各种实施例中,sync配置寄存器可存储对正在由MPA执行的给定应用特定的信息配置信息。
[0073]如果sync控制器被配置为使给定PE与一个或多个其它非屏蔽的PE同步,并且非屏蔽的PE还未使它们各自的sync信号变为有效,则sync控制器可通过使sync_stall信号变回至有效来做出响应。给定PE可随后等待,直至sync控制器已接收所有非屏蔽的PEsync信号,并且使所有非屏蔽的sync_stall信号变为无效。
[0074]需要注意的是,在各种实施例中,sync控制器可被包括作为DMR的一部分,而在其它实施例中,每个sync控制器可被实现为MPA内的独立单元。
[0075]参照图6,示出sync网络的一部分的实施例。在示出的实施例中,sync网络600包括sync适配器601、603和605以及sync控制器602、604和606。每个sync控制器和sync适配器之间的连接包括两个导线。一个导线可被用于传送sync_request (SR)信号,而另一导线可被用于传送sync_stall (SS)信号。在一些实施例中,SR信号可被从sync适配器发送给sync控制器,并且SS可被从sync控制器发送给sync适配器。
[0076]给定sync控制器和给定sync适配器之间的连接中所包括的这两个导线可编码四个状态。在第一状态下,SR和SS信号都可处于逻辑O电平,指示无效。在第二状态下,SR信号可以是逻辑O电平并且SS信号可以是逻辑I电平,指示sync屏障被激活,但还未被请求。在第三状态下,SR和SS信号都可处于逻辑I值,指示sync屏障有效并且被请求,但还未完成。在第四状态下,SR请求信号可处于逻辑I值并且SS信号可处于逻辑O值,指示sync屏障已被完成。
[0077]需要注意的是,图6中示出的实施例仅是例子。在其它实施例中,可采用不同数量的sync适配器和sync控制器以及不同配置的sync控制器和sync适配器。
[0078]sync适配器的实施例被示出在图7中。在示出的实施例中,sync适配器700包括耦合的OR(或)门710。在各种实施例中,sync适配器700可被包括在PE内,而在其它实施例中,sync适配器可以是MPA内的分离的实体。虽然sync适配器700包括OR门,但在其它实施例中,可采用其它逻辑门和逻辑门的配置。
[0079]在操作期间,sync适配器700可促成PE的指令获取和解码单元以及邻近sync控制器之间的通信。从PE的指令获取和解码单元接收的SR信号可通过sync适配器700到达邻近sync控制器。在一些实施例中,SR信号可以是软件指令(诸如,以前描述的指令)的函数。SS信号从每个sync控制器返回并且由OR门710用逻辑方式组合。所获得的信号可被用于停止PE的指令获取和解码单元。在一些实施例中,来自一个邻近sync控制器的单个有效SS信号可能足以延迟下一个PE时钟周期的指令获取。
[0080]需要注意的是,图7中示出的sync适配器仅是例子。在其它实施例中,可采用和设想不同数量的逻辑门以及不同数量的SR和SS信号。
[0081]参照图8,示出sync控制器的实施例。在示出的实施例中,sync控制器800包括逻辑门801至804和屏蔽寄存器805。在一些实施例中,屏蔽寄存器可位于sync控制器800的外部或者可以是存储器中的映射位置。寄存器(诸如,这里描述的寄存器)可以是被配置为存储一个或多个数据位的存储电路的特定实施例。在一些实施例中,寄存器可包括一个或多个数据存储基元,诸如锁存器、触发器等。寄存器805可包括与对应PE的每个“方向”对应的屏蔽位。需要注意的是,尽管在屏蔽寄存器805中仅描述了四个方向,但在其它实施例中,可采用和设想不同数量的“方向”。
[0082]在操作期间,sync控制器800从邻近sync适配器(诸如,例如如图7中所示的sync适配器700)接收SR信号806。逻辑门801至804可随后通过组合接收的SR信号来产生SS信号807。在一些实施例中,来自屏蔽寄存器805的配置位也可被用于SS信号807的产生。例如,如果屏蔽位是逻辑0,则来自对应方向的输入可被忽略并且与该方向对应的SS信号可被设置为逻辑O电平,指示对应PE未被停止。
[0083]当屏蔽位处于逻辑I电平时,用于对应方向的SS信号的状态可取决于来自该方向的SR信号和对应逻辑门内的对应OR门的输出。当屏蔽位处于逻辑O电平时,对应SS信号和对应SR信号的状态将不会影响SS信号的状态。
[0084]当两个或更多屏蔽位处于逻辑I电平时,对应SS信号将会处于逻辑O电平,在各种实施例中,当SR信号处于逻辑O电平时,这可指示“不停止”条件。如果与SS信号对应的SR信号处于逻辑I电平,并且至少一个其它SR信号处于逻辑I电平,则SS信号将会处于逻辑I电平,这可指示“停止”条件。
[0085]需要注意的是,“低”、“低逻辑电平”或“逻辑O电平”表示地电压或在地附近的电压,并且“高”、“高逻辑电平”或“逻辑I电平”表示足够大以导通η沟道MOSFET和截止P沟道MOSFET的电压电平。在其它实施例中,不同技术可导致针对“低”和“高”的不同电压电平。还需要注意的是,图8中描述的sync控制器的实施例仅是例子。在其它实施例中,可采用不同逻辑门和逻辑门的不同配置。
[0086]需要注意的是,对于任何真实的处理器阵列,存在连接到DMR的有限数量η的ΡΕ,并且这是能够由该DMR在一个时钟周期中同步的PE的最大数量。在一些实施例中,这个数量可以是4,但在其它实施例中,可采用不同数量。如果在每个PE存在执行的t个线程,则通过将sync和sync_stall信号的数量乘以每个sync控制器端口中以及每个适配器端口中的t,能够利用单个DMR同步t*n个线程。为了同步超过η个ΡΕ,可采用不同技术。
[0087]通过对跨越大组的PE的仔细配置的sync命令的链条进行编程,能够同步任何数量的PE,但不是在一个时钟周期中立即完成该同步。该编程技术从组中的最外面的PE到位于该组的中心的某个DMR布置停止屏障,然后布置从中心DMR传播到最外面的PE的释放波。在一些实施例中,空操作指令(通常被称为“nop”)可被添加以微调同步。
[0088]参照图9,示出描述布置成直线的六个PE的同步的例子。需要注意的是,PE可被按照任何形状布置,但为了清楚的目的,针对该例子选择直线。
[0089]对于一行PE,DMR可被用于同步PE对,如图9中所示。给定DMR可被配置为仅当在DMR的NE和NW端口的PE都已向DMR发出sync信号时才从sync stall释放一对PE。为了防止其它PE干扰,所有五个DMR被配置为屏蔽(忽略)它们的沿SW和SE方向的sync端口(除了缺少沿SW、SE方向与其它PE的DMR连接之外,在该示图上未示出这一点)。通过将配置位存储在每个DMR中的sync配置寄存器中来在sync指令之前实现DMR的配置。
[0090]同步图9中描述的六个PE所需的sync编程也被示出在图9中。在每个PE下方列出一组指令。每个PE将会从上到下执行对应指令。虚线连接线显示用于不同PE的哪些sync指令被配对以通过公共DMR(连接到该对中的两个PE的DMR) —起操作。每个PE可在不同时钟周期上到达第一 sync指令,但由硬件强迫它与它所配对的PE在同一时钟周期上退出该sync指令。在这个特定链条例子中,PE被配对,然而,在满足上述DMR约束的情况下,超过两个PE可根据需要在单个周期中被同步。
[0091]检查如图9中所示的PE编程,需要注意的是,两个链条在中心交叉。第一链条具有由用于PEOO和PEOl的第一对sync指令形成的第一链路、由PEOl和PE02之间的第一对sync指令形成的第二链路、由PE02和PE03之间的唯一一对sync指令形成的第三链路、由PE03和PE04之间的第二对sync指令形成的第四链路以及由PE04和PE05之间的第二对sync指令形成的第五链路。第二链条被类似地形成,但按照第一链条的镜像形成;并且它开始于由PE05之间的第一对sync指令形成的链路,并且结束于由PEOO和PEOl之间的第二对sync指令形成的第五链路。
[0092]因此,当在第一 syncSW指令PEOl被从停止释放时,它将会被第一 syncSE指令捕捉,第一 syncSE指令通过与PE02的第一 syncSW指令配对而变成该链条中的下一个链路。类似地,在PE02的列中,当PE02被从第一 syncSW指令释放时,它将会被第一 syncSE指令捕捉,第一 syncSE指令通过与PE02的第一 syncSW指令配对而变成该链条中的下一个链路。诸如此类。
[0093]假设每个PE具有编程的任务,并且这些任务中的每一个可能花费不同的并且可能随机的时间量;那么PE将会交换数据以准备另一迭代。为了准备数据交换,可利用图9的sync编程同步PE。
[0094]当每个PE结束它的任务时,它执行图9中的它的对应列中的第一 sync指令。如果它是链条中遇到sync指令的第一个PE,则它等待。更多PE到达每个链条的上半部,使链路被释放,由此每个PE前进至位于下半部链条中的下一个sync指令,并且等待。最终,两个链条的上部都释放,并且跨越中心DMR 03的链路被释放。由于所有PE现在都正在下半部链条上等待,所以这些链条以每个周期一个链路的速率快速连续地释放PE。
[0095]如图中所示,可能需要在sync的向外移动的波退出期间使内部PE等待最外面的PE被释放。可通过在发生退出的sync指令之后添加nop来编程这种情况。当PE执行nop指令时,它等待一个时钟周期。已知每个向外移动的sync执行将会正好花费一个时钟周期,计算在用于每个PE的程序中使用的nop的数量。由于每个向外移动的sync执行花费一个周期,并且所有nop花费一个周期并且没有PE正在执行可能停止的任何代码,所以所有PE可被以同步方式释放。示图中示出的编程将会保证:所有PE将会在正好同一个时钟周期上退出该指令序列。
[0096]该技术可扩展至具有数千个PE的MPA。例如,具有2025个PE的正方形阵列具有45个PE或44个PE至PE跳跃的边长、和8
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1