数据流同步的嵌入式现场可编程处理器阵列的制作方法

文档序号:6422606阅读:169来源:国知局
专利名称:数据流同步的嵌入式现场可编程处理器阵列的制作方法
技术领域
本发明涉及嵌入在集成电路中的阵列处理器,诸如那些在例如硅的半导体材料中实现的,并且特别涉及可重配置的嵌入式阵列处理器。
背景技术
嵌入式系统是在整体系统中针对特定用途或应用而专门设计的硬件或软件的某种组合,并且可以是能力固化的或者是可编程的。例如,移动电话可以具有节能集成电路(IC)或者“芯片”,其仅可以连同其各自类型的电话一起运行,并且专门用于控制显示器和其他元件以节约电力。
相同的移动电话典型地包括数字信号处理集成电路,其在无线电装置的数字部分上执行功能。为了适应进入的信号的不同的和/或变化的无线电广播格式,可编程的无线电装置是理想的。然而,数字无线电处理功能可伴随有高的数据采样速率,以及高的计算负荷,这对于在可编程硬件上实现,典型地是不切实际的。
嵌入式现场可编程门阵列(EFPGA)是“芯片宏”,其可以在现场进行编程,可以集成在硅芯片中,并且可以获得自有限数目的销售商。这些专用处理器操作于高的速度,使所需的硬件量最小,并且使软件开发编程时间最小。尽管EFPGA提供了“芯片产后”的重配置能力,但是其设计密度是低的,并且其时钟速度是不可预知的,特别是针对数字无线电装置中的高速解调功能。

发明内容
本发明涉及嵌入式处理器,其包括处理单元的二维阵列和用于可重配置地连接信号处理电路和该阵列外围的各个单元之间的路径的机构。该处理器在数据流控制下执行数学运算,并且由此容易地集成到在相同的控制模式下运行的信号处理电路中。根据本发明,该集成电路的信号处理行为可以在现场重配置。


借助于下面列出的附图,下面将描述此处公开的本发明的细节,在附图中,相同或者相似的部件由相同的参考数字表示图1示出了根据本发明的具有嵌入式阵列处理器的设备的示例;且图2示出了控制图1的阵列处理器的处理的示例性流程;并且图3示出了使用根据本发明的嵌入式阵列处理器的混合信号片上系统的示例。
具体实施例方式
图1示出了根据本发明的装置的示例性实施例。接收机100,诸如广播中的接收机或有线电视接收机、局域网无线接收机或者移动电话接收机,包含IC 102。IC 102包括系统控制器104和嵌入式阵列处理器106。阵列处理器是能够执行指令的处理器,这些指令可以对由阵列构成的输入进行操作。嵌入式阵列处理器106具有二维矩形阵列108以及在图1中示出的用于在全部四个边缘围绕阵列108的机构或接口110。二维阵列108由处理单元112组成。
优选地,阵列108中单元间连接是这样的,使得每个单元112仅连接到其列相同且其行紧邻的单元112,并且仅连接到其行相同且其列紧邻的单元112,用以实现“最近的邻居(nearest neighbor)”的连接结构,如本发明人所共有的在2001年10月1日提交的美国专利公布No.2003/0065904(在下文为’904申请)的图2中所示出的,该专利的整体公开内容在此处并入列为参考。由于单元间的连接完全是最近的邻居,因此该阵列提供了可扩展的灵活性。
接口110具有边界单元114,其连接到阵列108外围的各个处理单元112,每个边界单元114具有缓冲器116。该外围优选地包括位于阵列边缘的那些处理单元112,即,第一行、最后一行、第一列和最后一列中的至少一个中。由于在最近的邻居方案之下,内部阵列连接单元到单元留下了对于每个拐角单元112的两个邻居的缺失,并且对于阵列边缘上的每个其他单元112的一个邻居的缺失,因此对相应的边界单元114产生每个缺失的连接。
接口110中进一步包括输入/输出(I/O)焊盘118,每个边界单元114具有一个,以及用于可重配置地将每个I/O焊盘118一对一地连接到相应的边界单元114的交错网络(crossbar network)120。对于每个此连接,形成了信息路径。图1示出了信息路径122,其包括I/O焊盘118、交错网络120和边界单元114。重配置路径使得该路径横穿不同的边界单元114、不同的I/O焊盘118,或者此两者。路径124是路径112的重配置,其横穿不同的边界单元114。
在优选实施例中,阵列处理器106是脉动处理阵列,可以与用于输入操作数的装配线相象的专用系统,尽管运算典型地不是在严格的直线方向上进行而是在变化的方向上进行。在处理单元的二维阵列中,由不同的处理单元针对数据执行不同的数学运算,同时数据以有序的前后紧接的行进从一个单元前进至另一单元。脉动阵列的一个示例是使矩阵相乘的阵列。一行条目同相应的一列条目相乘,并且对积求和以产生有序的和的列。通过并行配置待执行的运算,获得了效率,由此在最少的时钟周期中产生了结果。’904申请提供了脉动处理阵列的另一示例,实现了32拍实时有限脉冲响应(FIR)滤波器。通过将其它级、二维的或其他连接到初始二维阵列来增强滤波器,边界单元连接到每个级的外围的处理单元。通过边界单元114连接的此增强阵列也处于本发明的预期范围之内。
在一个实施例中,边界单元114不仅向阵列108提供输入。它们还向I/O焊盘118提供阵列处理的结果。边界单元114通过邻居到邻居的传递从产生结果的处理单元112中接收这些结果。任选地,边界单元114可以校验该结果,并且向外部处理输出数据有效信号。
在优选实施例中,IC 102包括存储器,利用总线将阵列程序从该存储器下载到相应的处理单元112。该存储器优选地是随机存取存储器(RAM)或者其他的可写存储设备,由此可以提供更新的阵列程序,如通过接收机100外部的阵列生成器。
系统控制器104在配置总线上,诸如在’904申请的图16中所示的随机存取配置总线上,将阵列程序传递到嵌入式阵列处理器106的主单元126。参考图2,在系统初始化时或者在重配置时,主单元126将该阵列程序传递到适当的处理单元112(步骤202),例如,实现用于处理阵列106的新的算法(步骤204)。由于脉动处理所固有的并行性,某些处理单元112可以接收同样的程序。作为可替换的实现方案,系统控制器104和RAM相反可以驻留在嵌入式阵列处理器106中。
在图2中进一步示出了进入阵列108的示例性数据流。当在I/O焊盘118上接收到新的操作数时,其在交错网络120指向相应的边界单元114的路径上继续流动(步骤206),该边界单元114检测该操作数的有效性(步骤208)。如果是无效的,则随之发生错误处理(212),其可能涉及通知接收机100的用户,并且使用嵌入式阵列处理器106从IC应用程序请求216新的操作数(步骤216)。可替换地,可以应用前向纠错技术,用于校正错误的操作数。作为另一替换方案,在边界单元114进行缓冲之前,可以另外上游地执行校验。在图2所示的实施例中,有效的操作数添加到缓冲器116(步骤214),并且计数器(未示出)增加(步骤216)。优选地,缓冲器单元116被实现为在缓冲器116满时,如通过发出停止指令使处理器停止提供新的操作数,该停止指令在相应的I/O焊盘128上被路由至处理器。随后,当操作数去缓冲(de-buffer)时,向处理器发出继续指令。可替换地,可以在开始时提供足够的缓冲空间,以确保容纳新操作数的入流。在步骤218中,对应于输入操作数的预定数目的参数同缓冲器计数进行比较。该参数可以在边界单元114之间变化,并且其优选地是可编程的。该缓冲器,例如,环形或者圆形缓冲器,优选地在软件中实现。可替换地,可以使用简单的先入先出(FIFO)缓冲器。
如果缓冲器的计数大于或者等于该参数,则激活触发事件,例如,边界单元114通知主单元126(步骤220)。如果缓冲器的计数相反地小于该参数,则控制返回到循环的顶部(步骤206),并且等待新的操作数。
当从缓冲器读操作数以备由阵列108使用时(步骤222),计数器减小(步骤224)。
主单元126,上文就其分配下载的阵列程序的功能进行了描述,还具有另外的功能,即基于操作数的入流引导阵列运算。将对阵列108执行的新的运算,或者当前运算的新的阶段,可能需要缓冲的输入操作数。当所需的处理单元112是空闲的时候(步骤226),主单元126检查其是否已经接收到来自激活的边界单元114(即,同阵列外围上的所需处理单元紧邻的边界单元)的触发事件(步骤228)。如果已经接收到所有的触发事件,或者在其发生时,则从缓冲器读操作数,开始新的运算或阶段,并且重置触发事件(步骤230)。
根据上文所述的边界和主单元协议,阵列处理器106执行数学运算,其时序基于沿着向阵列108提供操作数的路径的输入操作数流。
在优选实施例中,关于步骤218的参数被设为零。实际上,因此实现了Kahn处理网络。在此网络中,处理器通过具有先入先出(FIFO)缓冲器的通道互连。处理器既可以向FIFO通道发送数据,也可以自FIFO通道接收数据。如果处理器请求进行读取,并且没有数据可用,则处理器停止直至有数据可用。在纯粹的Kahn处理网络中,提供了足够的缓冲空间,以容纳不受限数目的写操作。在当前的实现方案中,优选地限制写操作,由此,如果处理器写FIFO通道,并且其是满的,然后处理器停止,直至存在可写的空间。
作为本发明的一个示例,IC 102上的其他处理器连同嵌入式阵列处理器106一起,形成了具有受限写操作的Kahn处理网络,即,当缓冲器满时停止写操作。缓冲器114均被实现为一对FIFO。
在此优选实施例中,步骤216可以保留,用以检测缓冲器114何时是满的,在该时刻,优选地向提供输入操作数的处理器发出如上文所述的停止指令。如果保留了步骤216,则也将保留关于边界单元的计数器减小处理(步骤222、224),并且在操作数去缓冲时将发出继续指令。
使用图形用户接口(GUI)可以预备阵列程序,其可以编辑和显示将被下载到IC 102上的RAM、并随即下载到每个编程单元112的代码。
嵌入式阵列处理器106对于集成是特别有用的,其方式与将FPGA嵌入到片上系统(SoC)的方式相似。基于边界单元的接口110提供了简单的集成,并且提供了简单的软件编程流程,代替了EFPGA的专有的硬件设计流程的特性。
如图3中说明性示出的,嵌入式阵列处理器106可以与通用片上系统102一起集成,其包括数字电路302,并且可能包括模拟电路304,以便于在系统中引入重配置能力。该数字电路可以由固定设计的数字电路模块306组成。其中一个模块306可以用作系统控制器104。模块306具有通过路由开关308互连的引脚,其通常将一个数字电路模块306的输出连接到另一数字电路模块306的输入。路由开关308还能够用备选的输入和输出连接器对310替换两个模块306之间的连接,用以将连接从这两个模块306中的一个或两个切换到嵌入式阵列处理器106的各个引脚128。使用一个或者多个模数转换器314,用于将来自模拟电路输出端304的模拟信号转换为有待连接路由至数字电路模块306的数字信号,可以使该数字电路同模拟电路304集成。通过相似的方式,通过数模转换器316,可以将对于模拟电路304的数字电路输出从数字采样转换为模拟信号。路由开关318还可以安置在转换器314和数字电路302之间,以便于提供来自处理器106和通向处理器106的可切换的连接。特别地,输入/输出连接器对320提供了从模拟电路到数字电路的信号路径以及通向或者来自所述一个或多个输入/输出焊盘的信号路径之间的切换。相似地,路由开关322可以安置在数模转换器316和数字电路302之间。路由开关308、318、322同处理器106的可重配置接口110的组合,在阵列处理器307中为模拟和数字电路302、304提供了一个或者多个数据流驱动信号处理功能,并且将此功能插入到任一数字电路链中。通过相似的方式,可以将数据流驱动信号处理功能编程到阵列处理器307中,并且可以将此功能插入到模拟电路301中。如图3所见,处理器阵列106可以与芯片上的多个不同类的并行处理元件相接口。本发明的预期范围不限于所示出的设置,并且可以包括例如集成电路元件之间的可替换的和/或附加的连接。
尽管已示出和描述了所考虑的本发明的优选实施例,但是显然,应当理解,在不偏离本发明的精神的前提下,可以容易地进行形式或细节上的不同的修改和变化。例如,通过每个边界单元中的局部选择机构,可以实现可重配置的路由,而非借助于交错网络。因此,目的并非在于将本发明限制于所描述和说明的具体形式,而是应将本发明解释为涵盖了可能归于附属权利要求的范围内的所有修改方案。
权利要求
1.一种集成电路(102)上的处理器(106),该处理器具有处理单元的二维阵列(108)和用于将到阵列的多个路径可重配置地连接到该阵列外围上的各个单元(112)的机构(110),该处理器执行数学运算,其时序基于沿该路径(218、220)的输入操作数流。
2.权利要求1的处理器,其中所述阵列包括脉动处理阵列(108)。
3.权利要求1的处理器,其中所述集成电路进一步包括同所述处理器通信连接的模拟电路(304)。
4.一种接收机(100),包括权利要求3的集成电路。
5.权利要求1的处理器,其中阵列中单元间的连接是这样的,使得阵列的每个单元仅连接到其列相同且其行紧邻的单元,并且仅连接到其行相同且其列紧邻的单元(112)。
6.权利要求1的处理器,进一步包括沿多个路径每一个的处理器的输入/输出焊盘(118)。
7.权利要求1的处理器,进一步包括沿相应各个路径的处理器的一个或者多个输入/输出焊盘(118),其中集成电路包括同所述处理器通信连接的模拟电路(304)、数字电路(302)以及通过可重配置的开关(110)连接到数字电路的模数转换器(314),可重配置开关(110)被配置用于在从模拟电路到数字电路的信号路径和通向或来自所述一个或多个输入/输出焊盘(118)的信号路径之间切换。
8.权利要求1的处理器,其中每个路径横穿连接到相应的其中一个所述各个单元(112)的边界单元(114),由此路径的重配置使得路径横穿不同边界单元和不同I/O焊盘(118、122、124)中的至少一个。
9.权利要求1的处理器,其中所述机构包括交错网络(120)。
10.权利要求1的处理器,其中所述路径一对一地同所述各个单元(122、124)连接。
11.权利要求10的处理器,其中所述输入操作数在到达阵列(214)之前在它们各自的路径上进行缓冲,在对于所述路径的预定子集中的各个路径缓冲相应的预定数目的操作数之前,不开始所述操作(230),所述数目是1或者更大。
12.权利要求10的处理器,其中所述输入操作数在到达阵列(214)之前在它们各自的路径上进行缓冲,在对于所述路径的预定子集中的各个路径已被缓冲的相应预定数目的操作数已被确认为有效之前,不开始所述操作(230),所述数目是1或者更大。
13.权利要求12的处理器,进一步包括阵列单元(112)连接到其的总线,并且借助于所述总线,阵列单元是可编程的(202)。
14.权利要求13的处理器,在所述总线上进一步包括主单元(126),用于重新编程阵列单元(202)。
15.权利要求14的处理器,其中所述主单元(126)开始所述操作(230)。
16.权利要求1的处理器,进一步包括阵列单元(112)连接到其的总线,并且借助于所述总线,阵列单元是可编程的(202)。
17.权利要求1的处理器,包括阵列处理器,其包括所述二维阵列(108)。
18.权利要求1的处理器,其中所述阵列是矩形的,并且所述外围包括位于所述阵列的第一行、最后一行、第一列和最后一列的至少一个中的所述处理单元(112)。
19.权利要求1的处理器,其中所述路径包括先入先出(FIFO)缓冲器,其被设置为Kahn处理网络,实现用于在缓冲器满时停止对所述缓冲器的缓冲器进行写处理。
20.一种方法,包括步骤在集成电路(102)上提供处理器(106),其具有处理单元的二维阵列(108)和用于将到阵列的多个路径可重配置地连接到该阵列外围上的各个单元(112)的机构(110);以及利用所述处理器执行数学运算,其时序基于沿该路径(218、220)的输入操作数流。
全文摘要
一种嵌入式的现场可编程处理器,其包括用于执行数学运算的处理单元,该数学运算的时序依赖于操作数的入流。一种阵列接口,其可重配置地将用于入流的路径连接到阵列外围的各个单元。该阵列优选地具有脉动的类型,并且优选地通过最近邻居单元间连接来实现。
文档编号G06F15/80GK1726485SQ200380105832
公开日2006年1月25日 申请日期2003年11月28日 优先权日2002年12月12日
发明者G·F·布恩斯, K·维德亚纳塔恩 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1