在数据驱动架构网状阵列中控制存储器存取装置的制作方法

文档序号:6487324阅读:147来源:国知局
专利名称:在数据驱动架构网状阵列中控制存储器存取装置的制作方法
背景以下描述的本发明实施例涉及数据驱动处理器的实现,即在较宽范围的应用上提供良好性能但成本相对较低的数据驱动处理器。
开发了用于处理器的数据驱动架构,以提供比冯·诺伊曼架构更好的解决方案,用于解决用相对较少的指令处理大量数据的特殊问题。冯·诺伊曼型处理器由定时寻址方案控制,它可以从存储器中的几乎任何地方取出指令和数据。由于对可存取的存储器中的位置或指令类型限制较少,冯·诺伊曼处理器能灵活地运行较宽范围的不同程序。相反,数据驱动处理器(DDP)设计成被馈送通常连续地存储于存储器中(或作为数据流到达)的数据块并将根据仅具有对数据操作的少量指令的程序进行处理。这些类型的程序可在诸如文档(例如,用于复印机中)以及音频和视频数据的数字编码和过滤的应用中找到。音频和视频数据应用的实例包括诸如数字照相机、移动通用计算机和如MP3播放器的消息媒体装置的便携式消费信息产品中的压缩和解压缩。由于固有功率效率,即当不用处理更多输入数据时其功率消耗快速降低到基本为零,DDP可特别地适合于这种电池供电的产品。
在具有DDP的多数消费产品中,内置主机控制器(HC)通过使指令和输入数据的馈送与DDP的各处理单元相配合而辅助DDP。例如,消费产品的主要的通用处理器或嵌入式处理器可被编程为用作HC。该HC向DDP的每个处理单元指示要执行的任务。HC还控制DDP和外部存储器之间的数据路径的形成,以便接收流出数据,即处理单元处理的结果。DDP可配备传递流出数据流的直接存储器存取(DMA)单元,该流出数据流源于DDP的各处理单元并到达HC标识的顺序寻址存储器位置。典型DDP的处理单元不了解输入数据的源;也不知道其结果数据最终去往哪里。只有HC知道该信息。


附图中,通过作为示例而非限制对本发明的实施例进行说明,其中相同标号表示相似单元。应注意,揭示内容中对本发明“一”实施例的引用不必针对相同实施例,而是表示至少一个。
图1示出了具有数据驱动架构的处理器的框图。
图2示出了处理器的另一个实施例的中可形成的示例数据路径。
图3示出了展示处理器实施例的电子系统的框图。
图4示出了处理器实施例的组件的框图。
图5示出了处理器中使用的输入数据端口部分的框图。
图6示出了处理器中使用的输出数据端口部分。
图7示出了输入和输出数据端口中使用的先进先出逻辑的输入和输出信号。
图8示出了根据本发明实施例的处理数据方法的流程图。
图9示出了用于数据驱动处理器的控制端口网状结构的高等级框图。
图10示出了控制端口用于相互通信的控制字、控制端口数据字和状态指示的示例。
图11示出了可用于控制端口发送器中的判别器的简化框图。
图12给出了提供用于特殊控制端口的选择寄存器以用于配置控制端口的发送器和接收器部分的示例。
具体实施例方式
从图1开始,其中示出了具有数据驱动架构的处理器的框图,希望其在较宽范围的应用方面提供良好的性能且成本相对较低。该处理器由一些处理单元(PU)104(在本例,有6个)构成。每个PU104都具有如网状结构中所示地相互耦合的一些数据端口(本例中,为16个)。数据端口是可编程的,以允许数据从任一处理单元流到另一个以及从任一处理单元流到存储器存取单元108。
根据本发明的实施例,一个或多个PU104配备控制端口,PU可通过该控制端口将关于要从外部存储器120读取的或要写入其中的数据位置的信息发送到存储器存取单元108。图1中未明确标明数据和控制端口,而是分别依靠数据线112和控制线116进行暗示。通过控制端口发送的关于存储器存取通道的寻址信息和模式信息被指定到存储器存取控制寄存器127。例如,控制寄存器127确定设定关于DMA通道的操作模式的对DMA通道以及要通过通道传送的数据的位置标识符。
PU104通常不了解从其中读取数据或将数据写入其中的外部存储器120中的特定位置。PU104基于对其编程的指令仅处理通过其输入端口进入的数据,并通过其指定的输出端口提供结果数据。输出端口是被创建用于将结果数据传递到外部存储器120中的特定位置的数据路径的一部分。主机控制器(未示出)可用于正常地指示和编程PU,以便从经由编程的数据路径逻辑连接到存储器存取单元108的一个或多个数据端口读取数据并向其写入数据。但在图1的实施例中,一个或多个PU104还能向存储器存取单元108发送读取或写入请求,从而使主机控制器免除这些任务。一个或多个PU104中的该存储器寻址能力允许处理器作为一整体更好地适合于处理其中要处理的下一个输入数据块不被连续存储在存储器中的特定应用。接着处理器的更详细描述,将描述示例视频解码应用,以说明PU104的附加的存储器寻址性能的某些好处。
处理器的存储器存取单元108可以是直接存储器存取(DMA)单元,它可读取和写入外部存储器120而不受中央处理单元(CPU)124的干扰。存储器存取单元108用于将从一个或多个PU104的控制部分、CPU124或外部主机控制器(未示出)接收的较高等级的读取和写入命令变换成较低等级的存储器存取命令。该较高等级的读取和写入命令可以是应用专用的,例如专用于视频、文档或音频应用。作为示例,PU104可对存储器存取单元108生成一读取请求,用于存取图像数据的给定帧,但将跳过特定象素。作为另一个示例,读取请求可仅用于整个图像帧的特定块。例如,这种高等级请求可简单地参照显示器上的笛卡尔坐标给出的象素位置。在响应中,存储器存取单元108生成的存储器存取命令将参照外部存储器120中的存储象素值的特定地址。在某些情况中,还需要图1所示的存储器接口电路128,以确保这些较低等级的存储器存取满足外部存储器120的信号电平和计时需要。一些DMA通道是可用的,以请求读取和写入业务,并将数据传送到外部存储器和传送来自外部存储器的数据。
图1所示的处理器还具有用于外部装置(未示出)的I/O接口132。可以看到,PU104的某些输出和输入数据端口,且特别是外围PU1和PU4的那些端口耦合到I/O接口132。接口132允许输入数据和结果数据在PU104和诸如硬盘驱动器、CD-ROM驱动器和视频显示器的外部装置之间传送。接口132因此可设计成在PU104的数据端口所需的信令和并行计算机外围总线或高速串行总线的信令之间进行变换。接口132可用于音频或视频数据的输入和结果流。或者,如整个图像帧的所有输入和结果数据可存入外部存储器120中,且仅当完成所有处理后,才将结果数据传送到海量存储装置或其它外围设备。
为了相对于外部存储器进一步改善处理器的性能,可提供附加的存储器存取单元136,它经由分开的存储器接口138允许PU104也使用附加外部存储器140中可用的存储量。在这种实施例中,PU1-PU3的北侧上的数据端口与第一存储器存取单元108耦合,同时PU4-PU6的南侧上的数据端口与第二存储器存取单元136耦合。为允许PU1-PU3对外部存储器140(南侧上)的存取,PU1-PU3的南侧数据端口耦合到PU4-PU6的北侧数据端口。
图1所示的处理器实施例还具有CPU124。可设置于具有PU104的芯片上的CPU124读取和执行配置PU104的数据端口和存储器存取单元108、136的指令,以形成从任一PU104到外部存储器120、140的数据通道。可将形成通过数据端口的网状结构的数据路径以及向PU104指示它们的各自任务的功能改为委派给外部主机控制器(未示出)。图2将用于说明PU之间形成多个数据路径过程中数据端口的灵活性。
图2示出了处理器的另一个实施例中两点之间形成的示例数据路径。该实施例中,有8个PU104且示出使PU1与PU8相链接的5条数据路径。每个PU104都具有在每个侧边上与四组数据线112连接的数据端口(未示出控制端口和响应的控制线116,但可参见图1)。数据端口网支持从任一PU104到另一个并通过数据通道到外部存储器120、140的数据流。外部存储器120、140可以是专用的缓冲型固态存储器,适合于相对高速存取和相对大量存取,用于诸如文档处理以及视频和音频处理的应用中。或者,外部存储器120、140可以是电子系统中的主机控制器(未示出)的主存储器或其它主存储器的一部分。外部存储器120、140可由双倍数据率或同步动态随机存取存储器构成;适合于处理器的特殊应用的其它类型的固态存储器也可使用。
如上所述,数据端口可配置成在处理器中的任两点之间建立逻辑连接。该实施例中数据端口网的配置由经由计算机外围总线(未示出)通过主机接口139连接的主机处理器(未示出)加以控制。相对低速的全局总线(未示出)将主机接口139连接到所有PU104、存储器存取单元108以及处理器的其它组件。该全局总线用于通过加载用于PU104的指令或微码以及读取状态寄存器(未示出)来配置或编程处理器。此外,边远PU中的每一个,即PU1、PU5、PU4、PU8,具有耦合到各扩展接口(EI)单元141的一对数据端口。EI单元141允许数据端口通信网在多个处理器上扩展,并允许如上所述的诸如视频显示器、硬盘驱动器和打印机的外部外围装置连接到处理器。
PU104可以是分别具有一些侧边的基本一致的单元,其中每个侧边都具有多个单向数据端口,其中的至少一个数据端口是输入端口且至少一个是输出端口。图2的实施例中,来自相邻PU104的每对数据端口的耦合的类型是点对点的单向连接。数据端口和它们与每个PU的编程单元的连接(以下联系图4-7进行描述)的设计使得每个PU内的编程单元不需要涉及通过PU的数据端口传送的任何数据。因此,图2所示的示例中,实际读取或写入所涉及的数据端口的PU104只是PU1和PU8。注意,这些两个PU之间可配置的5个不同的可能数据路径示出了数据端口网状结构的灵活性。为清楚起见,图2中未示出PU1和PU8之间所有可能的数据路径;此外,现在清楚的是,仅有通过存储器存取单元108或136的任何期望数据通路,任一PU104和外部存储器120或140之间可形成类似的可编程数据路径。
期望允许存储器存取单元108的控制寄存器127(参见图1)经由一个或多个PU104的控制端口被写入,以使处理器作为一整体更好地适合于视频处理应用,其中需要处理的输入数据的位置不总是逐块渐进或顺序地变化。作为一示例,考虑视频压缩,其中通过生成指向由于场景运动引起的从前一帧起的图像块位置变化的当前帧的运动矢量,在压缩阶段减少了帧到帧的暂时冗余。现在考虑解码或解压缩阶段,其中PU1被指示解码输入的视频数据以重建“当前”帧。该输入的视频数据也可包括运动矢量。因为运动矢量指向前一帧中的图像数据块,所以需要对外部存储器的分开存取以取得该块。换句话说,运动矢量指向存储在外部存储器120中并需要被复制以解码当前帧的先前帧的图像块。注意,在解码过程开始前,主机控制器不知道该块的精确显示位置(x,y)。但,一旦信息对处理单元(例如,PU1)可用,则可如下迅速如下地执行对外部存储器的存取。首先,PU1通过其控制端口发送命令,以便经由存储器存取单元的某一数据通道Z从位置(x,y)读取。这就形成用与运动矢量有关的寻址和模式信息(在本例中,经由数据通路Z从位置(x,y)读取)配置存储器存取单元108的控制寄存器127。随后,由存储器存取单元108取得读取的数据并通过通道Z使其可用。由于先前在存储器存取单元的通道Z和PU5之间编程了逻辑数据路径(例如,通过外部主机控制器),所以由运动矢量指向的图像块将通过该路径予以路由并进入PU5。如前所述,PU5随后处理该数据,并将结果数据,包括本例中由PU5基于运动矢量并根据某些先前编程的算法生成的解码宏块写回到当前帧的外部存储器。
通常,向一个或多个PU104提供关于什么寻址信息可发送到外部存储器的控制对处理器来说会整体上产生较大的编程自由度和灵活性。提供一个或多个PU中控制端口会允许PU104中包含算法的更多逻辑复杂性,因此使CPU124(参见图1)或主机控制器(未示出)更可用于处理运行应用程序的更复杂任务。添加控制端口不会不利地影响数据端口网状结构的好处,它保留了数据驱动架构的优点(包括减少计时问题和改善功率效率),多PU的并行处理能力,以及PU设计的可缩放性和模块性。
仍参考图2,存储器接口电路128可以与所有PU104的存储器存取单元108和主机接口139一起在芯片内。或者,这些组件可以是多芯片封装的一部分,例如其中每个PU104位于分开芯片上。
现转到图3,示出了包含上述数据驱动处理器304的电子系统的框图。系统可以是可处理预备显示或播放(例如,解压缩视频或音频文件)、存储(例如,在存储前被压缩)或打印的图像、音频或其它媒体的计算或通信装置的任何形式。该系统具有连接器308,它允许处理器304例如经由I/O接口132(参见图1)将其结果数据直接提供给外围设备(未示出)。该系统还具有主机控制器310,它经由总线314与处理器304连通,总线314可以是串行或并行计算机外围总线。主机控制器310配置成执行应用程序,诸如以上给出的视频解码示例,包含特别适于由如处理器304所提供的数据驱动架构执行的任务。主机控制器310可包括嵌入处理器及其相关的主存储器(未示出)。
处理器304处理的内容数据可存入外部存储器316(例如,整个图像帧)并可经由上述数据端口网状连接由处理器304的各处理单元存取。处理器304中的主机接口单元(未示出)将接收来自主机控制器310的指令,它向各处理单元指示它们的任务并形成从处理单元通过数据单元到外部存储器316的数据路径。处理器304在其一个或多个处理单元中还增加控制端口,用于将数据通道寻址信息写到处理器304的存储器存取单元。图3所示的系统还具有燃料电池或可充电电池330,它被耦合成经由电压调节器(VR)模块334向外部存储器316、主机控制器310和处理器304供电。当然,如果燃料电池或可充电电池330的输出电压足够稳定以满足外部存储器、处理器和主机控制器的需要,则不需要VR模块334。
现参考图4,示出了PU104的框图。该实施例中,PU104有一个或多个核心编程单元(PE),它被编程以执行对经由8个输入数据端口408中的任一个接收的输入数据进行操作的指令。每个PE都具有指令存储器以及算术和逻辑单元(ALU),它们实现基线指令组架构。此外,可以向一个或多个PE416添加乘法和累加功能(MAC)单元。附加的PE包括一个或多个加速器单元420(例如,用于执行诸如二进制补码乘法和专用数字过滤特殊操作),并且还设置具有用于PU104内的数据、参数常量和指令的本地存储的集成数据RAM的存储器命令处理机(MCH)424。输入PE428可从UP104的输入数据端口408中的任一个中读取数据,同时输出PE432可将结果数据写到多个输出数据端口436中的任一个。一组通用寄存器440允许数据根据预定信号量协议在PE之间交换。参见Vavro的美国专利申请出版物No.US2002/0147768,它说明了具有经由一些通用寄存器耦合在一起的多个处理单元的数据驱动数字信号处理器的另一示例。注意,图4的实施例中,PU104的每个核心PE都可执行其指令,与通过该PU的一对输入和输出数据端口408、436操作的数据路径无关。换句话说,输入数据端口408、输入PE428、通用寄存器440、输出PE432和输出数据端口424之间有数据路径,而不依赖于PE412、416、加速器单元420和MCH424的操作。以下联系图5-7给出关于输入和输出数据端口408和436的其它细节。
现转到图5,示出了输入数据端口408的部分框图(参见图4)。输入数据端口408从其它PU接收数据。输入数据端口借助请求/准许协议进行通信,其中请求(Request)与数据(Data)一起从PU外部发出。在接受数据时,输入数据端口返回准许(Grant)。在该实施例中,请求/准许协议要求只要请求和准许信号在输入时钟信号的活动边上是活动的就传送数据。该输入数据暂时存入先进先出(FIFO)缓冲器510。因此,将数据存入FIFO510,直到接收了来自一些所谓发送器P0-P7之一的准许信号。提供多路复用器514,以选择来自与输入数据端口408相连的装置的这些准许信号(本例中共8个)中的一个。输入数据端口408可由寄存器设定编程,该寄存器设定控制到多路复用器514的选择输入,以确定8个发送器中的哪一个接收来自FIFO510的数据。该寄存器设定可在发生进入FIFO510的数据传送之前或之后改变。
该实例中,8个可能的准许信号指的是该PU的7个(总共8个中的)输出数据端口,加上该PU104的输入PE428(参见图4)。注意,本例中有8个可能的准许信号,因为只有7个可转发数据的输出数据端口而第八个数据端口简单地对应于与输入数据端口408相关联的一个。如图5所示,还有用于传送来自FIFO510的接收到的数据、请求和初始化信号到PU104中的所有其它装置(本例中8个)的路径。
初始化(Init)信号被传递通过构成数据路径的每个数据端口。因此,如果数据端口在数据的源点处被初始化,Init信号将传播通过作为数据路径的整个逻辑连接,从而初始化整个数据路径。Init信号像数据那样被登记并通过数据端口,以防止通过处理器中长的逻辑连接所累积的传播延迟。所有数据端口接口信号都可按此方式处理,包括数据和请求信号,以防止通过逻辑连接的较大组合延迟。允许输入数据端口的封装引线和输出数据端口的封装引线之间建立逻辑连接的输入数据端口408的其它实现也是可以的。图6示出了输出数据端口436的部分框图。
图6所示的输出数据端口436也称作“发送器”端口,因为它将数据发送到其它PU104。提供了一组三个多路复用器614,以选择将从PU发送出去的请求、数据和Init信号。注意,在该实施例中,每个多路复用器614都具有8个输入,它们对应于PU的7个输入数据端口加上一个输出PE432(参见图4)。再一次,到多路复用器614的选择输入可由在发生数据传送之前或之后变化的寄存器来加以设定控制。
选择的请求、数据和Init信息被置于FIFO620中的暂时存储装置中。如同在以上联系图5描述的输入数据端口408的情况中,输出数据端口的FIFO620响应于从PU外部的装置接收的准许提供缓冲的请求、数据和Init信息。
FIFO510和FIFO620的组合可示作图7中的2-深(2-deep)FIFO720。该2-深FIFO720是通过给定PU的逻辑连接的一部分,它是由输入数据端口和输出数据端口构成的。在输出侧,data_in、request_in和init_in被接收并存入FIFO720,且当已接受该组输入信息时信令是grant_in。FIFO720是响应于从PU外部的装置接收grant_out信号发送data_out、request_out和init_out的编程逻辑连接的一部分。如上所述,该接口信号按一定方式处理,以防止通过逻辑连接的较大组合延迟。这有助于系统片内设计,而不用特别关注数据路径路由。数据端口之间的所有路由都可以是简单的点对点连接,它如上所述地登记于每个数据端口中。该逻辑连接由用于多路复用器514(图5)和614(图6)的简单寄存器设定进行编程。但,用于通过PU104的逻辑连接的其它实现也是可以的。
现转到图8,该图示出了适合于灵活的数据驱动架构的普遍数据处理方法的流程图。操作从框804开始,其中第一组指令和输入数据被提供给数据驱动处理器的第一处理单元(PU)。如以上所建议的,这些指令和输入数据(以及使输入数据到达第一PU的数据路径)可通过处理器的相对低速的全局控制总线由片载CPU或外部主机控制器配合和配置。此外,为第一PU配置一个或多个控制路径,以便将存储器通道寻址信息发送到处理器的存储器存取单元。
在第一PU对输入数据进行操作时,它了解到该第一组指令要求从外部存储器读取或写入该外部存储器。因此,随后以框808继续操作,其中第一PU请求存储器存取单元(经由控制路径)取得或期待给定存储器通道上的数据。先前创建处理器的第二PU和外部存储器之间的逻辑数据路径(经由给定的存储器通道),以便在外部存储器和第二PU之间传送附加数据。根据本发明的实施例,上述添加的控制端口结构用于允许第一PU指定要传送数据的位置,通过先前编程的外部存储器和第二PU之间的数据路径。该逻辑数据路径可通过数据端口网状结构被路由,该网状结构独立于每个处理单元内的个别编程单元。
作为示例,第一PU可了解第一组指令中的图像处理运动矢量。在这种情况中,附加数据将被写入外部存储器,并包括将由第二PU基于运动矢量生成的宏块。诸如音频压缩的许多其它类型的数据驱动应用也可从这种附加性能中受益。
图9示出了用于数据驱动处理器的控制端口网状结构的高等级框图。图中为便于理解,仅示出控制端口网状结构。本发明的该实施例中,DMA单元是从属于PU,其中DMA通道不能启动命令;相反,对DMA通道的所有命令都由PU的北或南控制端口启动。该示例中的每个PU都包含被标记为北、东、南和西的四个控制端口组。每一个都具有端口0和端口1。例如,PU1的E1端口接收命令同时E0发送命令(当被配置成为网状结构中的控制路径的一部分)。点对点总线连接由来自相邻PU(或来自一PU和一DMA单元)的一对控制端口支持。
发送器端口和接收器端口(PU之外)之间点对点连接可用具有命令部分和状态部分的并行总线构成。命令部分可具有16比特总线并用于发送去往DMA单元并用于DMA单元的特殊数据通道的配置指令。状态总线可具备3比特,它们用于将数据通道的状态发送回命令启动器。除了使用初始化(Init)信号之外,可使用请求和准许信令协议,类似于上述数据端口链接。因此,完整命令的发送要花两个时钟周期。现参考图10,在第一个周期中,可发送控制字1004,在第二周期中继之以控制端口_数据字(control port_data word)1008,以完成一命令。如图10所示,控制字包括路由信息(路由标识符,RID),它帮助控制端口将命令路由到它们的正确目的地。更特别地,接收器端口基于RID比特(在本例中指明端口0或端口1以及命令是否指明读取或写入通道)确定命令的目的地。再调用该命令的最终目的地将是设置数据通道(如上所述,通过数据端口可用)用于服务所请求的读取或写入命令的一DMA单元。根据它是0端口还是1端口,端口比特(RID#1)可在发送器端口中被硬接线。R/W比特由命令启动器驱动并将不变地通过控制路径中的控制端口。
控制字1004还包括REG_SEL比特,在本例中是4个,用于定义数据信道的配置。例如,按照0000的REG_SEL值的控制端口_数据字1008可用于信令存储器传送的开始。另一命令可引用用于读取或写入(CH_ADDRX和CH_ADDRY)的(x,y)数据位置。图10中定义了各种其它类型的命令,其中这些特别适合于静止和视频图像处理应用。其它应用可具有不同的命令集合,尽管多数包括允许DMA单元从外部存储器读取内容数据或将内容数据写入其中的数据位置和寻址信息的至少某些形式。注意,在数据端口网状结构中,该数据路径可先前例如由主机控制器配置。
仍参考图10,接收器端口可响应于接收控制字1004和控制端口_数据字1008而发送状态指示1012。本例中,当出现以下两个条件之一时发送状态指示空闲计时器期满或者达到条带(swath)末端(EOS)。如果这两种条件都未出现,则命令启动器将不接收任何状态指示。例如,如果没有EOS条件且在最近的读取或写入后在特定数量的时钟周期内没有存储器读取或存储器写入活动,则空闲计时器期满。在写入情形中,如果在该通道的前一次读取或写入后DMA通道为了等待数据端口处附加内容数据变成可用而超过特定数量的时钟,则空闲计时器期满。在写入情形中,如果该数据信道为了等待在给定数据路径上从PU接收的附加内容数据而超过特定数量的时钟,则空闲计时器期满。在读取情形中,如果最后的内容数据字已移出数据通道(在到PU的路上)超过特定数量的时钟周期,空闲时间期满。定义控制端口之间用于信令的请求和准许协议的其它方式也是可以的。
注意,如果命令启动器接收到空间计时器期满条件,则它可将控制端口控制寄存器(未示出)中的Init比特编程为预定值,从而清除控制路径中以及与控制路径相关的特定DMA通道中的所有命令。此外,如果已对写入数据通道检测出空闲计时器期满条件,命令启动器会将数据端口控制寄存器中的Init比特编程为预定值,从而清除数据端口路径中的所有内容数据以及允许写入数据通道通过DMA单元的队列中的命令予以重新配置。
现参考图11,示出了用于控制端口的判别器的简化示图,该控制端口在这种情况下为北端口N0和N1之一(参见图9)。判别器1104在发送器中并因此判别在本例中来自相关PU的8个可能连接路径的请求(因为有从其接收要发送的请求的六个控制端口,可产生读取命令的输入编程单元(IPE),以及可产生写入命令的输出编程单元(OPE)。在其它实施例中,可以有能产生请求的少于六个或多于六个的控制端口。
现转到图12,示出了用于控制端口North0的示例选择寄存器。本例中,有用于控制端口接收器选择的三个比特,和用于发送器选择的三个比特。接收器选择比特通过指示相关PU的哪个装置应接收通过北端口到达的命令来编程控制端口。类似地,发送器选择比特(从上述可能的八个中)确定哪个装置能通过北端口发送命令。注意,来自OPE的命令通常被引导到DMA写入通道,而来自IPE的命令被引导到DMA读取通道。用于编程控制端口以用作发送器(发送命令离开PU)和用作接收器(路由命令到PU装置)的其它方法也是可以的。
简言之,已描述了运行更宽范围的应用方面更有效的数据驱动处理器的各种实施例。在前述说明书中,已参考其特定的说明性实施例描述了本发明。但显然,可对其进行各种修改和改变而不背离本发明的较宽精神和范围,如所附权利要求书中所阐述的。例如,虽然图中所示的处理器具有六个或八个PU构成,但具有网状结构中彼此连接的少至2个PU或超过8个PU的架构也可从向某些或全部PU添加控制端口中受益。因此,说明书和附图被认为是说明性而非限制性的。
权利要求
1.一种数据驱动处理方法,包括提供第一组指令和输入数据给数据驱动处理器的第一处理单元,以对所述输入数据进行操作;配置数据路径,用于在数据驱动处理器的第二处理单元和外部存储器之间传送数据;以及响应于识别第一组指令将要求从外部存储器读取和写入外部存储器之一,第一处理单元将寻址信息提供给处理器的存储器存取单元,以启用经由所述数据路径的外部存储器和第二处理单元之间的附加数据的传送。
2.如权利要求1所述的方法,其特征在于,所述第一处理单元识别所述第一组指令中的图像处理运动矢量,且所述附加数据要被写入到外部存储器并包括由第二处理单元基于运动矢量生成的宏块。
3.如权利要求1所述的方法,其特征在于,数据路径由外部主机控制器配置。
4.如权利要求1所述的方法,其特征在于,还包括第一处理单元将传送是否是读取和写入之一的指示提供给存储器存取单元。
5.一种数据处理器,它包括第一直接存储器存取(DMA)单元;以及多个处理单元,每一个都具有多个数据端口,这些数据端口彼此耦合并可编程,以允许数据流从任一处理单元到另一个以及从任一处理单元到DMA单元,其中处理单元之一具有控制端口,要从该控制端口发送关于设置DMA通道的信息到DMA单元,通过该DMA通道,待处理的数据之一和结果数据由处理单元之一传送。
6.如权利要求5所述的处理器,其特征在于,还包括存储器接口电路,其中DMA单元将经由该存储器接口电路存取外部存储器。
7.如权利要求6所述的处理器,其特征在于,存储器接口电路与DMA单元、多个处理单元和主机接口一起是片载的。
8.如权利要求6所述的处理器,其特征在于,存储器接口电路被设计成与作为动态随机存取存储器的外部存储器对接。
9.如权利要求5所述的处理器,其特征在于,所述多个处理单元是基本一致的单元,它们每一个都具有多个侧边,每个侧边都具有作为输入端口和输出端口的多个单向数据端口。
10.如权利要求9所述的处理器,其特征在于,输入端口是可编程的,以便将输入数据路由到任一输出端口。
11.如权利要求10所述的处理器,其特征在于,多个处理单元中的每一个在每个侧边上都具有多个控制端口,包括输入控制端口和输出控制端口,其中处理单元的输入控制端口是可编程的,以便使输入命令信息路由到所述处理单元的任一输出控制端口。
12.如权利要求9所述的处理器,其特征在于,还包括到外部装置的接口,其中除了所述处理单元的边远一个的某些输出端口耦合到外部装置接口之外,所述处理单元之一的输出端口耦合到相邻一个所述处理单元的输入端口。
13.如权利要求9所述的处理器,其特征在于,还包括第二DMA单元,其中存在所述多个处理单元的至少四个,所述四个处理单元的第一和第二一些单元的北侧上的数据端口耦合到第一DMA单元,所述四个处理单元的第三和第四一些单元的南侧上的数据端口耦合到第二DMA单元,且所述第一和第二处理单元的南侧的数据端口耦合到所述第三和第四处理单元的北侧的数据端口。
14.如权利要求13所述的处理器,其特征在于,还包括与外部装置的接口,其中处理单元的东侧和西侧的的某些数据端口耦合到该外部装置接口。
15.如权利要求5所述的处理器,其特征在于,还包括中央处理单元,用于读取和执行配置数据端口和DMA单元的指令,以便形成从处理单元之一到外部存储器的数据通道。
16.如权利要求5所述的处理器,其特征在于,还包括主机接口单元,用于从外部主机控制器接收指令,它配置数据端口和DMA单元以形成从处理单元之一到外部存储器的数据路径。
17.一种系统,包括主机控制器;外部存储器;数据驱动处理器,它具有与外部存储器对接的存储器存取单元,每一个都具有多个数据端口的多个处理单元,这些数据端口彼此耦合并可编程,以允许数据流从任一处理单元到另一个以及从任一处理单元到存储器存取单元,以及用于从外部主机控制器接收指令的主机接口单元,这些指令配置数据端口和存储器单元以形成从处理单元之一通过数据通道到达外部存储器的数据路径,其中处理单元之一具有用于将数据位置信息写到存储器存取单元的控制端口;以及可充电电池和燃料电池之一,它被耦合以向外部存储器、主机控制器和数据驱动处理器供电。
18.如权利要求17所述的系统,其特征在于,所述主机控制器包括嵌入处理器和其有关的主存储器。
19.如权利要求17所述的系统,其特征在于,来自相邻处理单元的每对数据端口的耦合是点对点的单向连接。
20.如权利要求19所述的系统,其特征在于,每个处理单元都具有核心编程元件(PE),它可被编程以执行对经由处理单元的输入数据端口接收的输入数据进行操作的指令,可从处理单元的多个输入数据端口中的任一个读取数据的输入PE,以及可将数据写到处理单元的多个输出数据端口中的任一个的输出PE。
21.如权利要求20所述的系统,其特征在于,每个处理单元的核心PE可执行其指令而与通过处理单元的一对所述输入和输出数据端口进行操作的数据路径无关。
22.如权利要求17所述的系统,其特征在于,通过控制端口发送的数据位置信息包括关于图像数据块的大小和显示位置的信息。
23.一种系统,包括外部存储器;数据驱动处理器,它具有与外部存储器对接的存储器存取单元,每一个都具有多个数据端口的多个处理单元,这些数据端口彼此耦合并可编程,以允许数据流从任一处理单元到另一个以及从任一处理单元到存储器存取单元,以及用于接收和执行指令的中央处理单元,这些指令配置数据端口和存储器单元以形成从处理单元之一通过数据通道到达外部存储器的数据路径,其中处理单元之一具有用于将数据通道信息写到存储器存取单元的控制端口;以及可充电电池和燃料电池之一,它被耦合以向外部存储器和数据驱动处理器供电。
24.如权利要求17所述的系统,其特征在于,每个处理单元都具有多个控制端口,它们在网状结构中彼此连接以使包括读取和写入命令、地址和存储器存取单元通道标识符之一的数据通道信息能从任一处理单元产生并经由网状结构中被编程的逻辑控制通道被路由到存储器存取单元。
25.如权利要求23所述的系统,其特征在于,来自相邻处理单元的每对数据端口的耦合是点对点的单向连接。
26.如权利要求23所述的系统,其特征在于,每个处理单元都具有多个控制端口,它们彼此耦合并可编程,以允许数据通道信息从任一处理单元被发送到存储器存取单元。
27.一种数据处理器,包括用于将较高等级的读取和写入命令变换成较低等级的存储器存取命令的装置;用于处理数据的多个装置;用于实现可编程数据路径从而将数据提供给所述多个数据处理装置中的任一个并从它接受数据的装置;用于从除所述多个数据处理装置之外接收指令以配置可编程数据路径实现装置、多个数据处理装置和较高等级读取和写入变换装置的装置;以及用于实现可编程控制路径以便将较高等级的读取和写入命令从所述多个数据处理装置之一传送到较高等级的读取和写入变换装置的装置。
28.如权利要求27所述的处理器,其特征在于,还包括用于确保所述较低等级的存储器存取满足外部存储器的信号等级和计时要求的装置。
29.如权利要求27所述的处理器,其特征在于,还包括用于扩展数据处理器的装置。
全文摘要
将第一组指令和输入数据提供给数据驱动处理器的第一处理单元,以便对输入数据进行操作。响应于识别第一组指令将要求从外部存储器读取或写入外部存储器,第一处理单元设置处理器的第二处理单元和外部存储器之间的逻辑通道,以便在外部存储器和第二处理单元之间传送附加数据。该性能可通过添加与数据端口分开的控制端口到第一处理单元实现,其中控制端口允许第一处理单元写入寻址信息和模式信息(包括附加数据的位置),用于经由处理器的存储器存取单元数据通道读取或写入附加数据。
文档编号G06F15/163GK1813250SQ200480018325
公开日2006年8月2日 申请日期2004年6月18日 优先权日2003年6月30日
发明者L·利平科特, C·H·切赫 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1