可重构数据处理平台的制作方法

文档序号:6482326阅读:172来源:国知局
专利名称:可重构数据处理平台的制作方法
技术领域
本发明涉及集成电路设计领域。
背景技术
随着多媒体技术的发展,对集成电路的功能提出了新的要求,需要芯片可以高速的处理流数据,能进行大量的、高速的加法、乘法、快速傅立叶变换、离散余弦变换等运算,并可及时更新功能以面向快速变化的市场需求。 传统通用处理器(CPU)和数字信号处理器(DSP)在功能上具有很高的灵活性,只需要通过更新相应的应用程序就可以面向不同的应用,满足用户的需求。可是由于通用处理器运算资源有限,对流数据的处理能力不足,吞吐率不高,限制了它的应用。即使采用多核结构,其运算资源仍旧是个限制,同时其并行度受到应用程序的限制,运算资源的分配也受到限制,吞吐率仍不理想。同通用处理器相比,数字信号处理器在运算资源上有所优化,增加了部分运算单元,可是运算资源仍然有限。在一些芯片如UC. Davis的ASAP(Asynchro丽sArray of Simple Processors)中,乘法器、力口法器、移位器等部件直接做到一个模块中,然后复用该模块,使得芯片拥有大量的运算资源,可是该芯片的配置方法受到限制,灵活性不够。 专用集成电路ASIC(Application Specific Integrated Circuit)芯片可以很好的处理流数据,具有很高的吞吐率,可以满足大量的、高速的数据运算需求。可是ASIC芯片的设计时间较长,设计成本较高,对于一款90nm的ASIC芯片,其非经常性费用NRE (non-recurring engineering cost)可以很轻易的超过数百万美元。同时ASIC芯片还缺乏灵活性,不能在市场需求变化时,轻易的改变功能,需要重新设计一款芯片。若在一块ASIC芯片上实现不同模式的操作,比如面向不同的视频解码标准,它需要为不同的视频解码标准设计不同的模块,集成在同一块芯片上,提高了成本。 目前市场上的FPGA (Field Programmable Gate Array)主要是基于查询表LUT(Lookup Table)的,与ASIC相比,具有很大的灵活性,面对不同应用,可以很灵活的进行配置,且其NRE费用极低,设计成本很低。但是由于FPGA主要面向随机逻辑(randomlogic),可以方便的实现如两输入、三输入的与非,或非等逻辑操作,但其面向如乘法等运算操作时其性能受到严重限制,所综合出的乘法器等运算部件的面积较大。虽然FPGA中自带乘法器,如18X18乘法器,但是要把它配置成32X32或8X8乘法器将是很困难的。使用FPGA进行设计时,互连延迟在FPGA的延迟中占据主导地位,如使用lattice公司的型号为LFSC25的FPGA实现循环冗余码校验CRC(cyclic redundancy check)的计算,其互连延迟占总延迟的78.3%。可见FPGA的互连延迟严重的限制了其性能的提高。且FPGA的互连延迟要在设计映射到FPGA上后才能知道,不能在设计时就知道设计的大致延迟,这样就使得使用FPGA做设计时,很可能为了延迟收敛多次更改设计,延长了设计周期。

发明内容
本发明针对现有技术的不足,提出一种可重构数据处理平台,通过对规整(regular)的可重构的普适数字信号处理块的不同配置,实现不同位宽/字长的算术、逻辑运算,能支持高阶(high radix)乘法,基本单元(cell)可以不使用查找表(LUT),并避免了复杂的内部连线,因此本发明具备ASIC的高吞吐率和高性能,同时兼具FPGA的灵活性和低成本。 本发明所述的一种可重构数据处理平台,可以通过配置(set)特定的配置存储器(setting memory)实现不同的功能。所述可重构数据处理平台由以下单数个或复数个部分或全部模块构成 (1)可重构普适数字数据处理块(Reconfigurable Universal DigitalDat即rocessing block),用于数字类数据处理; (2)可重构存储器(reconfigurable memory),用于存储和数据重排序; (3)可重构控制单元(reconfigurable controller),可单独用于产生控制信号,
也可与其他逻辑共同实现可配置的逻辑功能;所述其他逻辑包括但不限于可重构普适数字
数据处理块和可重构存储器。 本发明所述的可重构普适数字数据处理块,由大量实现一位(bit)最基本运算的单数种或少量复数种基本单元(cell)由互联结构规整地(regularly)连接构成,整个普适数字信号处理块具有非各轴同性(axis asymmetrical)的预设连接,能实现特定的功能,并可以通过配置特定的配置存储器实现重构,以基本单元为最小单位拆分成单数个或复数个数字类数据处理器(digital dat即rocessor),每个数字类数据处理器根据相应配置实现不同位宽的数字类数据处理功能,所述可重构普适数字数据处理块即可同时实现单数个或复数个相关或互不相关的算法;所述配置存储器可以全部或部分位于所述可重构普适数字数据处理块内,也可以全部或部分位于所述可重构普适数字数据处理块外;所述复数个数字类数据处理器可以各自独立,也可以部分或全部有相互联系,串行、并行或串并混合地进行数字类信号的处理;当所述数字类数据处理器为独立的数字类数据处理器时,能通过纵向总线和/或横向总线或旁路路径越过/绕过其他数字类数据处理器与外部联系;所述数字类数据处理包括但不限于算术、逻辑运算及算术、逻辑运算的组合;所述算术运算包括任意位宽小于等于所述普适数字信号处理块总位宽的定点运算和浮点运算;所述数字类数据处理包括但不限于数字信号处理。 本发明所述的基本单元通过配置可以完成一位逻辑运算和一位加法运算;由所述基本单元经配置并按配置信息决定的连接关系连接构成的行(row)能实现所述基本单元无法独立实现的复数位逻辑运算和特定的复数位算术运算,包括但不限于加法、减法和移位;由所述基本单元经配置并按配置信息决定的连接关系连接构成的阵(array),能实现所述行无法独立实现的特定的复数位运算,包括但不限于移位、乘法、乘加、乘减、限辐、提取、绝对值和舍入。所述行是由所述基本单元连接而成的运算器件,一般即为物理位置意义上的一行,但本发明中所述行的概念,只是为了更清楚地阐述本发明的技术思路和实现方案,行与行之间的位置关系也仅仅是逻辑上的关系,而并不是特指物理位置上的关系。在实际实现中,所述行的形状可以是任意的,由行构成的普适数字信号处理块的形状也可以是任意的。
本发明所述的基本单元可以不使用查找表(LUT),用同一套逻辑实现不同的功能。所述功能包括但不限于逻辑运算和加法运算。所述基本单元至少包含进位(carry)产生逻辑、和(sum)产生逻辑、复数个配置存储器、复数个输入端口和复数个输出端口。
所述输入端口和输出端口的位宽可以是单数位的,也可以是复数位的。所述输入端口全部或部分由输入多路选择器选择出送入进位产生逻辑/和产生逻辑的数据。所述多路选择器的选择端控制信号来源于配置存储器。所述输入多路选择器至少包含一个进位输入多路选择器和一个用于根据高阶(high radix)乘法重编码结果选择输入的多路选择器。所述输出端口的数据全部或部分来源于带旁路功能的输出延迟(delay)装置。所述带旁路功能的输出延迟装置包括但不限于多路选择器和寄存器/锁存器。所述带旁路功能的输出延迟装置中的多路选择器用于从进位产生逻辑/和产生逻辑的输出和延迟后的输出中选择数据作为最终的输出,选择端控制信号来源于配置存储器。根据所述可重构数据处理平台具体实现的不同,所述基本单元中用于输出延迟的延迟装置及相应的多路选择器和配置存储器可以直接连接在输出端,也可以连接在相应的输入端。例如当相邻基本单元间的一组输入端口与一组输出端口对应连接时,可以在所述输入端口中增加延迟装置及相应的多路选择器和配置存储器,并省略所述输出端口中的相应延迟装置及相应的多路选择器和配置存储器。 本发明所述的进位产生逻辑可以根据配置产生全加器的进位输出,也可以根据配置产生逻辑运算的输出。所述和产生逻辑可以根据配置产生全加器的和输出,也可以根据配置产生逻辑运算的输出。 本发明所述的普适数字信号处理块中的配置存储器用于存储配置信息,可以全部或部分位于所述基本单元中,也可以全部或部分位于所述基本单元外;当所述配置存储器全部或部分位于所述基本单元外时,所述配置存储器可以用于控制单数个或复数个基本单元中的相应可重构部分。 本发明所述的基本单元中的进位输入多路选择器的输入根据配置不同可以来自行内右侧相邻基本单元的输出端口 ,也可以来自阵内上方特定基本单元的输出端口 ,也可以是来自相应配置存储器的作系数用的配置信息,还可以被赋值为逻辑"0"或逻辑"1";所述用于根据高阶乘法重编码结果选择输入的多路选择器的输入根据配置不同可以来自阵内上方特定基本单元的输出端口,也可以是被乘数及其反码、左移后的被乘数及其反码或逻辑"O",也可以是来自相应配置存储器的作系数用的配置信息;所述其他输入端多路选择器的输入根据配置不同可以来自操作数的数据输入,也可以是来自相应配置存储器的作系数用的配置信息。 本发明所述的基本单元通过配置、相互连接,可以构成以移位加方式实现的乘法器,也可以构成高阶乘法器,显著减小乘法器的面积,并提高性能。;所述高阶乘法器包括但不限于阶二 (radix-2)乘法器;所述重编码器包括但不限于布斯(booth)编码器;所述重编码器可以是独立存在于所述可重构数据处理平台中,供单数个或复数个乘法器使用,也可以不独立存在而由所述可重构控制单元通过配置实现,还可以由所述可重构数据处理平台外部的逻辑或处理器实现;所述重编码器的编码结果可以作为输入传输到所述构成乘法器的基本单元中控制根据重编码结果选择乘法输入的多路选择器,也可以作为系数(coefficient)预先存储在用于控制根据重编码结果选择乘法输入的多路选择器的配置存储器中。 由所述基本单元可以构成本发明所述的行(row)和阵(array)。根据基本单元内部配置的不同,通过基本单元间不同的连接方式,就能够构成不同的运算器件。所述运算器件包括但不限于加法器、减法器、移位器和逻辑运算器。所述阵一般占物理位置意义上的多行,是由所述基本单元连接而成的运算器件,根据基本单元内部配置的不同,通过基本单元间不同的连接方式,就能够构成不同的运算器件。所述运算器件包括但不限于乘法器、乘加器和乘减器。所述行或阵中的配置存储器存储有行或阵的配置信息,用于相应的配置。
以加法器行为例,将基本单元中的运算部件配置为加法部件,将基本单元的输入输出端口按加法定义配置为操作数输入端口 、低位进位输入端口 、本位和输出端口和本位进位输出端口 ,并将左右相邻基本单元间的低位进位输入端口与本位进位输出端口连接,就可以构成一个行波进位加法器。可以根据实际需要,灵活配置基本单元中的延迟装置,将加法分段构成流水线型加法器,以提高时钟频率。可以通过配置,使基本单元具有额外输出端口,配合超前进位逻辑,以实现超前进位加法器,提高时钟频率。此外,还可以对基本单元及基本单元间的连接进行配置,以构成其他类型的加法器。构成减法器的方法与构成加法器的方法类似。 以移位器行为例,将基本单元中的运算部件配置为旁路,将基本单元的输入输出端口按加法定义配置为操作数输入端口 、操作数输出端口 ,将特定位置关系的基本单元间的操作数输入端口与操作数输出端口连接,就可以构成一个移位器。 一个大跨度移位的移位器可以由复数个小跨度移位的移位器构成,也可以通过特定位置关系的基本单元间的连接通过一次移位实现。 以逻辑与行为例,将基本单元中的运算部件配置为与操作,将基本单元的输入输出端口按加法定义配置为操作数输入端口 、操作数输出端口 ,就可以构成一个逻辑与器件。其他逻辑操作,包括但不限于或、非、异或、同或,都可以通过类似的方式实现。
以乘法器阵为例,将基本单元中的运算部件配置为加法部件,将基本单元的输入输出端口按加法定义配置为操作数输入端口 、低位进位输入端口 、本位和输出端口和本位进位输出端口 ,并将特定位置关系的基本单元间的低位进位输入端口 、本位和输出端口 、本位进位输出端口和操作数输入端口按一定规则连接,就可以构成一个阵列乘法器。对基本单元及基本单元间的连接按其他规则进行配置,可以构成其他类型的乘法器,包括但不限于阶二 (radix-2)乘法器。 以乘加器阵为例,按乘法器阵的构建方法构建,最后再配置一行加法,就可以构成乘加器。此外也可以按一定规则进行配置,实现效率更高的乘加器。构成乘减器的方法与构成乘加器的方法类似。 所述行或阵可以根据配置信息包含单数个或复数个有效位,或不包含有效位。所述单数个或复数个有效位可以用于控制是否运行对应的部分或全部行或阵并标识运行结果的有效性;所述有效位用存储器实现,包括但不限于寄存器、锁存器和随机访问存储器。所述行或阵有效位中的有效信息可以传输到其他行或阵中,也可以传输到所述可重构普适数字数据处理块的外部。如果传输来的有效位中的信息为有效,则所述行或阵需要进行相应运算,且将有效信息送往相应的下一个行或阵或所述可重构普适数字数据处理块的外部;如果传输来的有效位中的信息为无效,则所述行或阵不进行相应的运算,并将无效信息
10送往相应的下一个行或阵或所述可重构普适数字数据处理块的外部。控制所述行或阵不运行的方法包括但不限于关断相应时钟或关断相应电源。所述有效位也可以只用于标识有效性。所述有效位也可以被旁路逻辑旁路而不起作用。 由单数个或复数个所述行或阵可以根据配置存储器中存储的配置信息实现特定
数据处理功能,独立完成数据处理,也可以与行或阵一起串行、并行或串并混合地进行数据
处理。构成所述特定数据处理功能的行或阵可以是同构的,也可以是异构的。 以实现矩阵乘法功能为例,可以在算法上将矩阵乘法等效为多次乘与加的累积,
用复数个乘加器阵按特定规则连接,即可实现矩阵乘法功能。用类似方法还可以实现滤波
(filtering)、快速傅立叶变换(FFT)等数字类数据处理算法。 本发明所述的行或阵和基本单元都是所述可重构普适数字数据处理块的一部分,其划分是相对的,列出所述的层次只是为了更清楚地表达本发明的技术方案,所述层次并不是都必须的。在特定功能的情况下,行可以由单独一个基本单元构成,普适数字信号处理块也可以由单独一个行或阵构成。 将所述可重构普适数字数据处理块按配置信息分割成行或阵、基本单元,并加以连接后,所述可重构普适数字数据处理块即被配置成特定功能的数字类数据处理器。如果所述具有特定功能的数字类数据处理器为独立数字类数据处理器时,能通过纵向总线和/或横向总线或旁路路径越过/绕过其他具有特定功能的数字类数据处理器与所述可重构普适数字数据处理块外部或所述可重构数据处理平台外部联系。当复数个所述具有特定功能的数字类数据处理器的功能相同,且相互独立、同时/并行运行时,可以实现单指令多数据流(SMD);当复数个所述具有特定功能的数字类数据处理器的功能不同,且相互独立、同时/并行运行时,可以实现多发射(multi-issue)。 所述根据配置信息重构而成的实现特定功能的数字类数据处理器可以根据配置信息包含单数个或复数个有效位,或不包含有效位。所述单数个或复数个有效位可以用于控制是否运行对应数字类数据处理器并标识运行结果的有效性。所述有效位用存储器实现,包括但不限于寄存器、锁存器和随机访问存储器。所述有效位中的有效信息可以传输到所述可重构普适数字数据处理块中其他数字类数据处理器中,也可以传输到所述可重构普适数字数据处理块的外部。如果接收到的有效位中的信息为有效,则所述数字类数据处理器或所述数字类数据处理器中的行或阵需要进行相应运算,且将有效信息送往相应的其他数字类数据处理器或所述数字类数据处理器中的行或阵或所述可重构普适数字数据处理块的外部;如果接收到的有效位中的信息为无效,则所述数字类数据处理器不进行相应的运算,并将无效信息送往相应的其他数字类数据处理器或所述可重构普适数字数据处理块的外部。控制所述数字类数据处理器不运行的方法包括但不限于关断相应时钟或关断相应电源。所述有效位也可以只用于标识有效性。所述有效位也可以被旁路逻辑旁路而不起作用。
本发明所述的可重构普适数字数据处理块中的互联结构分为高速局部连接和全局总线两个层次。 所述高速局部连接用于邻近基本单元间的高速连接;所述高速局部连接是硬连接(hard wired)的近距离固定连线,用于大部分时延关键路径;通过对基本单元内输入多路选择器的配置可以重构基本单元间的连接关系。所述连接关系包括但不限于同一行内的加减法的进位关系和不同行间的乘法部分积传递关系。所述可重构局部总线通过配置可以构成加减法进位链和乘法部分积进位,用于构成运算部件,包括但不限于加法器、减法器、乘 法器。 所述全局总线包括纵向连接行或阵的用于传输数据的可重构纵向总线结构和横
向的可重构横向移位结构;所述可重构纵向总线结构用于数据/数据流可重构普适数字数 据处理块中的纵向传输;所述可重构横向移位结构可以根据配置将特定行或阵输出的数据
移位后送往左侧、右侧或下一个行或阵,还可以实现大跨度的数据移位操作和数据交叉换 位操作。 所述可重构纵向总线结构和可重构横向移位结构可以通过配置特定的配置存储 器实现重构,共同构成完整的总线结构,实现所述可重构普适数字数据处理块的数据流的 各种走向。 所述用于纵向连接的可重构纵向总线结构分为可重构向下总线和可重构向上总 线两个方向。所述可重构向下总线和可重构向上总线的数目可以是不同的。单数个或复数 个行或阵构成一个纵向传输单位。所述可重构向下总线可以将所述可重构普适数字数据处 理块外部的数据输入到每个所述纵向传输单位。所述可重构向下总线可以根据配置在任意 所述纵向传输单位处断开。任意所述纵向传输单位的输出也可以借用所述可重构向下总线 向其下的其他纵向传输单位传输数据。所述可重构向上总线与与每个所述纵向传输单位的 数据输出端相连,可以将特定所述纵向传输单位的输出数据送往所述可重构普适数字数据 处理块的外部。任意所述纵向传输单位的输出也可以借用所述可重构向上总线向其上的其 他纵向传输单位传输数据。 单数个或复数个行或阵构成一个横向传输单位。所述用于横向连接的可重构横向 移位结构可以根据配置将所述横向传输单位输出的数据移位后送往下一个所述横向传输 单位。所述移位的位数可以是单数位,也可以是复数位,还可以不移位。 本发明所述的所述可重构存储器可以通过配置特定的配置存储器实现重构,能用 于存储数据并具备数据重排序功能;所述可重构存储器的位宽/字长可以是固定的,也可 以是可变的。所述配置存储器可以全部或部分位于所述可重构存储器内,也可以全部或部 分位于所述可重构存储器外。 所述地址映射能将输入的地址转换为新的地址并输出以实现数据重排序。所述地 址映射可以有单数次映射,也可以有复数次映射。可以通过配置决定具体映射关系和映射 次数。通过映射关系的不同,可以用相同逻辑地址访问同一个存储器的不同物理地址,也可 以用相同逻辑地址顺序对存储器以不同的物理地址顺序实现写入或/和读出,方便地实现 数据地址转换以及构成先入先出缓冲(FIF0)。 所述可重构存储器还可以根据不同的位宽/字长被配置为多个独立的存储器,所 述独立存储器具有独立的地址译码/寻址逻辑和字线。任意所述独立存储器可以有独立的 地址映射,也可以与其他所述独立存储器共用地址映射。 本发明所述的可重构存储器可以位于可重构普适数字数据处理块的上方外侧或
下方外侧,也可以位于所述可重构普适数字数据处理块的内部。所述可重构存储器可以根
据配置与所述可重构普适数字数据处理块按特定规则连接,用于数据存储及缓冲。 本发明所述的可重构控制单元包括可重构随机逻辑和可重构有限状态机,可以通
过配置特定的配置存储器实现重构,用基本部件产生处理不同事务所需的控制信号及有限
12状态机;所述配置存储器可以全部或部分位于所述可重构控制单元内,也可以全部或部分 位于所述可重构控制单元外。。 所述可重构随机逻辑包括可重构功能单元和可重构连接;所述可重构功能单元通
过配置能实现任意种逻辑功能;所述可重构连接通过配置能实现复数个可重构功能单元的
任意种连接;单数个或复数个可重构功能单元及单数个或复数个可重构连接通过特定的配
置,即能实现随机逻辑的重构;所述可重构随机逻辑还可以根据配置,在由可重构功能单元
和可重构连接构成的随机逻辑中插入寄存器/锁存器以保证时延要求。所述可重构有限状态机由可随机访问的存储器(randomly accessiblememory)、
当前状态寄存器、可重构多路选择器和可重构随机逻辑构成。 所述可随机访问的存储器内存储有输入界定值(qualification)、状态迁移 (transition)值和输出控制信号值。所述可随机访问的存储器中的每一行存储对应的单数 组或复数组输入界定值、单数组或复数组状态迁移值和单数组或复数组输出控制信号值。 所述可随机访问的存储器每一行中输入界定值、状态迁移值和输出控制信号值各自占的位 宽/字长是可变的。所述可随机访问的存储器内每行中不同值间的边界信息可以是固定 的,也可以是动态可变的。当所述可随机访问的存储器内每行中不同值间的边界信息可以 动态可变时,由边界标志存储器存储每行相应的边界信息。所述当前状态寄存器用于存储 当前状态值,实现下一状态到当前状态的迁移。所述可重构多路选择器用于从复数组状态 迁移值中选出下一状态,并从复数组输出控制信号值中选出满足条件的控制信号输出。所 述可重构随机逻辑可以通过配置特定的配置存储器实现重构,用于完成特定的随机逻辑功 能。所述可重构有限状态机还可以包括由可重构随机逻辑构成的计数器(counter),以实现 根据计数结果进行状态迁移的功能。 所述当前状态寄存器中的值直接作为地址指向所述可随机访问的存储器中的一 行,相应的输出中的输入界定值与从所述可重构有限状态机外部输入的信号一起传输到可 重构随机逻辑中产生选择信号,用于从所述可随机访问的存储器相应输出中的状态迁移值 中选择出下一状态,并从所述可随机访问的存储器相应输出中的输出控制信号值中选择出 输出控制信号。所述下一状态被存储到当前状态寄存器中作为下一次可随机访问的存储器 寻址的地址。 增加当前状态寄存器的个数并增加一个状态多路选择器和一个输入多路选择器, 则所述可重构有限状态机在配置后可以支持多状态机交替并发(multi-thread)。根据本发 明技术方案,任意时刻只运行一个有限状态机,其他的有限状态机的当前值被存储在相应 的当前状态寄存器中,所述新增的多路选择器选择运行中有限状态机的当前状态寄存器中 的值作为当前状态。当由于多状态机交替并发而切换状态机时,将原运行中的有限状态机 的状态保存在相应当前状态寄存器中,所述新增的多路选择器选择即将运行的有限状态机 相应的当前状态寄存器中的值作为当前状态继续运行状态机,即可完成状态机切换。
本发明所述的可重构控制单元可以与其他逻辑共同实现可重构逻辑功能;所述可 重构逻辑功能包括但不限于可重构输入/输出对外接口 。所述可重构输入/输出对外接口 , 可以对可重构控制单元中的有限状态机进行配置,以同样的一套硬件结构同时实现单数种 或复数种接口协议。如果需要用一套硬件结构同时实现复数种接口协议,则可以配置有限 状态机以实现仲裁模块,以平台内部高时钟频率条件下的分时复用实现对相对低速的复数
13种接口协议的同时支持。 本发明所述的可重构数据处理平台中用于配置可重构的模块的配置信息可以存 储在平台内,也可以存储在平台外。如果配置信息已经存储在所述可重构数据处理平台内, 则可以直接配置各个可重构的模块。当配置信息存储在所述可重构数据处理平台外时,则 可以将所述可重构数据处理平台视为存储器,用向存储器存储数据的方式将所有配置信息 传输到所述可重构数据处理平台中的各个可重构的模块。还可以在所述可重构平台运行时 将所述配置信息传输到各个配置存储器,实现不同功能间的动态切换。 本发明所述的传输到可重构配置的模块的配置信息可以是未经编码的原始配置 信息,也可以是经过编码后的信息。所述编码的方式包括但不限于加密和压縮。对所述加 密编码信息解密所用的密钥可以以硬件形式存在与所述可重构数据处理平台中,也可以通 过配置信息输入所述可重构数据处理平台。 本发明所述的配置信息可以通过人工制定,也可以通过自动工具根据映射规则自
动产生。所述映射包括但不限于硬件描述语言(HDL)到配置信息的映射、计算机程序语言
到配置信息的映射、计算机建模到配置信息的映射和算法描述到配置信息的映射。硬件描
述语言包括但不限于VerilogHDL和VHDL ;计算机程序语言包括但不限于0丄++和JAVA ;计
算机建模包括但不限于Matlab建模;算法描述包括但不限于对特定算法的伪指令(pseudo
instruction)描述。可以预先实现常用的运算的配置信息模板。当使用自动工具根据映射
规则自动产生配置信息时,所述自动工具可以直接调用所述模板中的配置信息。 本发明所述的配置存储器可以是挥发性的,也可以是非挥发性的。当所述配置存
储器是非挥发性时,可以在一次配置形成特定数字类数据处理功能之后保持该功能不变直
到下次配置,方便用户的使用。所述非挥发性存储器包括但不限于FLUSH存储器。还可以
在设计、生产所述可重构数据处理平台时,直接固化配置。所述直接固化配置的方法包括但
不限于在生产时替换版图中的特定层。这样做虽然使所述可重构数据处理平台只能实现特
定功能,但依然能大大縮短研发周期。 本发明所述的可重构数据处理平台还可以包括扩展模块,以适应更广泛的需求; 所述扩展模块包括但不限于随机逻辑控制器、模拟单元、中央处理器、数字信号处理器 (DSP)、数据包头检测器和逻辑零个数检测器。 基于所述的可重构普适数字信号处理块、可重构存储器和可重构控制单元进行设 计,配置为不同的应用,不需要做时延收敛(timing closure)。这是由于本发明所述的基 本单元种类很少,基本单元的各个输入输出之间的延迟是预先可知的,且所有时延关键路 径都可以通过高速互连相互连接,互连的延迟也已知。以一个16X16位的乘法为例,其最 终延迟取决于一个32位的超前进位全加器,当部分积累加的延迟小于32位全加器的延迟 时,将部分积累加的结果直接送到全加器中进行最后的累加;当部分积累加的延迟超过32 位全加器的延迟时,将自动增加所需乘法器所需要的流水线段,把部分积累加过程中的中 间值经过寄存,然后再进行部分积累加,最后再输出到32位全加器中进行最后的累加。可 以看出,由所述的可重构普适数字信号处理块所配置成的乘法器的延迟是可以在设计前就 可以预知的,并做到摸板中。基于可重构存储器和可重构控制单元的设计也可以此方法在 设计前预知时延,避免做时延收敛。 本发明所述的可重构数据处理平台可以具备自测试能力,能够在加电工作的情况下不依赖于外部设备进行芯片的自测试。 当所述可重构数据处理平台具备自测试能力时,可以将可重构普适数字数据处理 块中特定的单数个基本单元或行或阵,或者复数个基本单元或行或阵配置成比较器,对可 重构普适数字数据处理块中相应的复数组其他基本单元或行或阵及基本单元或行或阵的 组合给予具有特定关系的激励,并用所述比较器比较所述复数组其他行或阵及行或阵的组 合的输出是否符合相应的特定关系。 所述激励可以来自所述可重构数据处理平台中的特定模块,也可以来自所述可重 构数据处理平台外部。所述特定关系包括但不限于相等、相反、互逆、互补。所述测试结果 可以被送到所述可重构数据处理平台外部。也可以保存在所述可重构数据处理平台中的存 储器中。 所述的自测试可以是在晶圆测试,封装后集成电路测试或者芯片使用时在系统启 动时进行测试;也可以人为设定自测试条件及周期,在工作期间定期进行自测试;所述存 储器可以是挥发性的,也可以是非挥发性的。 本发明所述的可重构数据处理平台在具备自测试能力的前提下,可以具备自修复 能力。 当所述测试结果保存在所述可重构数据处理平台中的存储器中时,可以对失效基 本单元或失效行或失效阵作标记,并将标记,在对所述可重构数据处理平台进行配置时,可 以根据相应标记绕过失效基本单元或失效行或失效阵,使所述可重构数据处理平台依然能 正常工作,实现自修复。 所述自修复可以是在晶圆测试后进行,封装后集成电路测试后进行或者芯片使用 时在系统启动时进行测试后进行;也可以人为设定自测试自修复条件及周期,在工作期间 定期进行自测试后进行。 本发明提出的可重构数据处理平台与现有技术的本质区别在于 1、本发明中可重构普适数字数据处理块基本单元中可以不包含查找表,简化了设
计,通过基本单元的输出与位于不同行的相邻基本单元的不同连接即可实现不同的运算功
能,与现有技术相比,有很大的改进; 2、本发明中可重构普适数字数据处理块基本单元相互连接可以直接构成高阶乘 法器,不需要额外的译码模块,能显著减小乘法器的面积,并提高性能; 3、本发明中可重构普适数字数据处理块中用于实现特定功能的基本单元间的连
接非常紧密,通常是一行中或相邻行中的相邻基本单元直接连接,使在时延关键路径上的 基本单元间信号传输时延能减少到最小,以提高性能; 4、本发明中可重构存储器能通过配置地址映射关系,改变存储器的寻址方式,实 现数据重排序,这是现有技术中未涉及的; 5、本发明中可重构有限状态机是以可随机访问的存储器为基础实现的,且能支持 交替并发,与现有的可重构有限状态机实现技术都不同; 6、基于所述的可重构数据处理平台进行设计,配置为不同的应用,不需要做时延
收敛,这也是现有技术中未涉及的。 有益效果 首先,本发明所述的可重构 据处理平台可以用一套硬件 实现不同的功能,与将多个实现不同功能的硬件集成在一起的专用集成电路(ASIC)相比,本发明能有效减小芯 片面积和漏电流,降低芯片成本;与通用处理器或数字信号处理器相比,本发明的可重构普 适数字数据处理块中包含有巨量的运算单元,具有通用处理器或数字信号处理器根本无法 达到的吞吐率和更大广度的多发射能力;与FPGA相比,本发明的可重构普适数字数据处 理块结构性更强,相关逻辑间的连接更紧密,逻辑间的连接关系大大简单,能得到更高的性 能,并可以更快速地改变配置,迅速地从一种工作模式切换到另一种,能够以高时钟频率分 时复用的方法实现对相对低速的多种功能的同时支持。 其次,在基于本发明平台进行设计研发时,由于所述基本单元、行或阵被配置成不
同功能时的单位时延(timing)是已知的,且时延关键路径(timingcritical path)上的基
本单元都是近距离连接,预设模板中的行或阵的时延是既定的(deterministic),由此可以
根据具体设计中逻辑的规模和位数很方便地在设计前计算时延,不需要事后进行时延收敛
(timing closure),避免了可能的设计返工问题,能有效地縮短研发周期。 最后,本发明所述的配置信息可以通过自动工具根据映射规则直接从硬件描述语
言、计算机程序语言、计算机建模、算法描述等自动产生,不但能縮短研发周期,还能使不懂
得硬件描述语言或计算机程序语言的算法工程师将更为抽象的模型或算法描述直接映射
到配置信息,免去设计中很多步骤,能提高生产效率。


虽然该发明可以以多种形式的修改和替换来扩展,说明书中也列出了一些具体的 实施图例并进行详细阐述。应当理解的是,发明者的出发点不是将该发明限于所阐述的特 定实施例,正相反,发明者的出发点在于保护所有基于由本权利声明定义的精神或范围内 进行的改进、等效转换和修改。
图1是本发明所述可重构数据处理平台的构成的实施例。
图2是基本单元内部结构的一个实施例。 图3(a)是实现普通加法运算时单个基本单元内部配置的一个实施例。
图3 (b)是实现普通8位加法运算时基本单元间连接的一个实施例。
图4(a)是实现逻辑运算时单个基本单元内部配置的一个实施例。
图4(b)是实现逻辑运算时基本单元间连接的一个实施例。
图5是实现一个4位乘法的基本单元连接的实施例。
图6是一个4位一般乘法器的实施例。 图7相近宽度的数据通道实现单指令流单数据流(SISD)和单指令流多数据流 (SMD)指令的实施例。 图8是实现浮点乘法操作时数据通道中各功能模块划分的实施例。
图9是实现乘加器的实施例。 图10(a)是实现右移一位操作时,基本单元连接的实施例。
图10(b)是实现左移一位操作时,基本单元连接的实施例。
图11(a)是垂直方向数据流基本单元的一个实施例。
图11(b)是总线结构的一个实施例。
图12(a)是横向移位单元的一个实施例。
16


理块。






例。




图12(b)是可重构普适数字数据处理块的一个实施例。
图13(a)为一块尚未进行配置的可重构普适数字数据信号处理块。
图13(b)为一种配置成单指令流多数据流(SIMD)的可重构普适数字数据信号处
图13(c)为一种配置成串行操作的可重构普适数字数据信号处理块。
图13(d)为一种配置后的可重构普适数字数据信号处理块的输入,输出走向图。
图13(e)为一种配置后的可重构普适数字数据信号处理块的输入,输出走向图。
图14(a)是本发明中可重构存储器地址转换的一个实施例。
图14(b)是本发明中可重构存储器在应用中的一个实施例。
图15(a)的一种有限状态机的实施例。
图15(b)是采用本发明中可重构有限状态机实现图15(a)中有限状态机的实施
图15(c)是将本发明中可重构有限状态机配置成多状态机交替并发的实施例。 图16是本发明中可重构输出端口的一个实施例。 图17是通过视频解码的流程图描述的一个实施例。 图18为配置成乘法器时有效位的配置实施例。 图19是实现绝对值、限幅、比较选择操作的一个实施例。 图20是可重构随机逻辑单元的一个实施例。
具体实施例方式
如图l所示,本发明所述可重构数据处理平台(101)由可重构普适数字数据处理 块(102)、可重构存储器(103)和可重构控制单元(104)构成。可重构普适数字数据处理 块(102)由基本单元(105)规整地构成,整个可重构普适数字数据处理块(102)具有非各 向同性的预设连接,能实现特定的功能,并可以通过配置特定的配置存储器实现重构。
图2(a)是基本单元内部结构的一个实施例。基本单元(201)的三组数据输入端口 分别定义为A、B、C,两组数据输出端口分别定义为Co和S。 A组输入端口为六位,分别对应 逻辑"0"、A1、A2、A1N、A2N、A3,其中A1、A2、A1N、A2N在做乘法时作为部分积产生的输入,在 做其他功能时作为全局信号输入。所述六位输入通过六选一多路选择器(210)选出A组输 入中实际输入到进位(carry)产生逻辑(208)、和(sum)产生逻辑(209)的一位数据输入。 六选一多路选择器(210)由配置存储器(202)控制;B组输入端口为三位,分别对应B1、B2、 配置存储器(205),所述三位输入通过三选一多路选择器(211)选出B组输入中实际输入到 进位产生逻辑(208)、和产生逻辑(209)的一位数据输入。三选一多路选择器(211)由配置 存储器(203)控制;C组输入端口为四位,分别对应C1、C2、逻辑"1"、逻辑"0",所述四位输 入通过一个四选一多路选择器(213)选出C组输入中实际输入到进位产生逻辑(208)、和 产生逻辑(209)的一位数据输入。四选一多路选择器(213)由配置存储器(207)控制。二 选一多路选择器(212)可选择是进位产生逻辑(208)的当前输入值或是寄存器(215)存储 的值作为基本单元(201)的Co输出。寄存器(215)由配置存储器(204)控制是否锁存进 位产生逻辑(208)的输出。二选一多路选择器(214)可选择是和产生逻辑(209)的当前输 出值或是寄存器(216)存储的值作为基本单元(201)的S输出。寄存器(216)由配置存储 器(206)控制是否锁存和产生逻辑(209)的输出。二选一多路选择器(214)由配置存储器(206) 控制。配置存储器(202)、配置存储器(203)、配置存储器(204)、配置存储器(205)、 配置存储器(206)、配置存储器(207)均可与相邻基本单元的对应存储器共用从而简化逻 辑,同一行的所有基本单元在执行相同功能时可只使用一组存储器配置同一行所有基本单 元。具体配置方法见以下实施例。 图3(a)是实现普通加法运算时单个基本单元内部配置的一个实施例。此时,六选 一多路选择器(210)由配置存储器(202)控制选择A2作为A组输入。三选一多路选择器 (211)由配置存储器(203)控制选择配置存储器(203)的输出作为B组输入。四选一多路 选择器(213)由配置存储器(207)控制选择C2作为C组输入。配置存储器(206)配置为 将和产生逻辑(209)的当前输出锁存在寄存器(216)中,二选一多路选择器(214)被配置 存储器(206)配置为选择寄存器(216)存储的值作为基本单元(303)的S输出。二选一多 路选择器(212)被配置存储器(204)配置为选择进位产生逻辑(208)的当前输出值作为基 本单元(303)的Co输出。B组输入也可接外部全局信号输入。 图3(b)是实现普通8位加法运算时基本单元间连接的一个实施例。所有基本单 元(301-308)的A端输入为从非相邻行输出的一组信号G7-G0,B端输入为由各自配置存储 器(205)所存储的值。所有基本单元(301-308)通过单个基本单元Co端与左边相邻基本 单元的C端之间连线(311-317)形成进位链,且进位链可包含超前进位逻辑。通过配置存 储器(207)的适当配置可将进位链断开为几段,从而实现SMD加法指令。
图4(a)是实现逻辑运算时单个基本单元内部配置的一个实施例。此时,六选一多 路选择器(210)由配置存储器(202)控制选择A3作为A组输入。三选一多路选择器(211) 由配置存储器(203)控制选择B2作为B组输入。四选一多路选择器(213)由配置存储器
(207) 控制选择逻辑"O"作为C组输入。二选一多路选择器(214)被配置存储器(206)配 置为选择和产生逻辑(209)的当前输出值作为基本单元(404)的S输出。二选一多路选择 器(212)被配置存储器(204)配置为选择进位产生逻辑(208)的当前输出值作为基本单元 (404)的Co输出。此时,S端输出即为输入A和输入B的异或逻辑结果,Co端输出即为输 入A和输入B的与逻辑结果。 图4(b)是实现逻辑运算时基本单元间连接的一个实施例。此时,所有基本单元 (401-408)的C端输入都为逻辑"O", A端输入为上一行的加法结果SUM7-SUM0, B端输入 为从非相邻行输出的一组信号G7-G0, S端输出即为输入A和输入B的按位异或逻辑结果 X0R7-X0R0, C端输出即为输入A和输入B的按位与逻辑结果AND7-AND0。
图5中的500和506构成的一个四位乘法器的实施例,其连接关系只反映了通过 配置用于实现乘法操作的连线,省去了用于完成其他功能的所有不相关连线。该乘法器的 特点是,被乘数不断变化,而乘数相对固定。乘数经过Booth编码后在特定权重位上产生的 每个部分积与被乘数的关系相对稳定,即为±2倍、士1倍的被乘数或0。此时该乘法器可 以有效减少部分积个数,提高运算效率。 对于一个位宽分别m、n的乘法操作YmXXn,采用Radix2的Booth编码方式,用线 性阵列对部分积进行压縮得到两个部分和,再通过一个带进位加法器得到最终结果。线性 阵列的规模可根据操作数有无符号分为两种基本情况当为有符号操作时,需要201单元 的行数为N/2,其中N为不小于n的最小偶数;当为无符号操作时,需要201单元的行数为 N/2+l,其中N为大于n的最小偶数;两种情况下,需要的201单元的列数均为mX2+2。用于求最终结果的加法器,需要一行m+n个201单元。 由于可以对无符号数高位进行"O"扩展,使之成为符号数,所以对有无符号数是否 要区别对待,完全可以根据用户的需求而灵活决定。 以一个^X^的有符号乘法为例。500是由3X10个201组成的,可以完成部分 积压縮的阵列。 首先将被乘数Y作两位符号扩展,再在其低位补四位"O"。则被乘数Y被表示为一 个位宽为10的数Y」n〈9:0〉,此数连同其左移一位以及分别按位取反的结果,共同对应500 阵列中201模块的A端口输入A1、A2、A1N和A2N。 在进行乘法操作时,为实现正确逻辑,须确定201模块的各端口输入,方式如下
A端口 通过202的配置信息而确定。配置的依据是对乘数X通过Radix2的Booth 编码,选择相应的部分积为0、 +1倍被乘数、-1倍被乘数、+2倍被乘数和-2倍被乘数,分别 通过多路选择器选择A端口的0、A1、A2、A1N和A2N信号作为输入。再经过所需的特定逻辑 处理,参与求和运算。501中经配置后的A端输入可以实现部分积的符号扩展逻辑,502中 的A端输入用于产生正确的部分积,503中的A端输入则通过配置被置为逻辑"O",以保证 低位乘法结果正确。 B端口 通过203的配置信息而确定。501中的B端输入,通过配置被置为逻辑"1", 用以实现部分积符号扩展逻辑。504是乘法运算开始的首行,其中经过配置的B端口输入 可以实现部分积求和过程中所需要的取反码操作的部分逻辑,即符号扩展的部分逻辑。505 中的则通过配置固定选取上一级201中C端输出右移一位的结果,以实现部分积的对齐和 累加。 C端口 通过204的配置信息而确定。501中的C端输入与B端相同,通过配置被 置为逻辑"l",用以实现部分积符号扩展逻辑。504中的C端输入则通过配置被置为逻辑 "0"。 505中的则通过配置固定选取上一级201中S端输出右移两位的结果,以实现部分积 的对齐和累加,移入数据的高位补位逻辑"0 "。 通过以上配置,最后一级得到两组部分和,对齐后通过加法器506相加得到最终 结果。506是乘法操作中使用加法器,其配置方法为 A端口 通过202配置固定选取上一级201中C端输出左移一位的结果,以实现部 分和的对齐和累加。 B端口 通过203配置固定选取上一级201中S端输出的结果。
C端口 通过204配置选取同级低位201中Co端输出结果,形成加法器进位链。
这样,输出端S便可得到位宽为10位的和Pdt〈9:0〉,结果的最高两位是符号扩 展,可以放弃,从而得到有效位宽为8位的最终乘法结果Pdt〈7:0〉。对于乘法结果的低位 Pdt〈3: 0>,可以根据实际应用的具体情况,进行取舍。 由500和506构成的乘法器,对于两个操作数即被乘数和乘数同时变化的乘法运 算,其性能受到配置信息产生方式的影响,会有较大程度的降低,致使其应用受到局限。图6 则是一个可实现两个输入同时变化的一般乘法器的实施例。仍以四位的有符号乘法为例, 该乘法器与上述乘法器的主要不同是,部分积不再根据乘数X进行Booth编码后通过201 中的202配置信息确定,而是将乘数X直接由一组三态门控制的总线实现对部分积的选择, 图中只给出了三态门对部分积选择的控制连接线。由于不进行Booth编码,因此将产生的部分积累加得到的中间结果向右平移的位数较图5的乘法器实施例少一位。而对于符号扩 展的处理和相应端口的输入则采用相同的方法。三态门控制总线的设定方法是用乘数X 的相应位通过601、602、603和604分别控制部分积为1倍被乘数(可由随后逻辑求其相反 数,相反数只可能出现在最后一个部分积)或强制为"0"。将由201求得的两个中间结果, 向右平移与下一级产生的部分积通过201再相加,以此类推,得到最终乘积Pdt。
此外,还可以根据乘法的不同类型,数据的不同位宽,以及是否是SMD等具体情 况,灵活地实现最优配置。图7用相近宽度的数据通道实现了 SISD和SMD指令,是本发明 在重构数据通道上的优势和灵活性的一个具体表现。图7(a)是同图5中结构的一个8位乘 法器,得到的乘法结果为16位,用于运算的整个数据通道的宽度为18位,高度为6行。图 7(b)通过对数据通道的分割和重新配置,在一个宽度为20位,高度为8行的数据通道上,可 以实现四个同样结构的四位乘法器701、702、703和704,每个乘法器的宽度为10,高度为4 行,同时产生四个8可用于后续的运算位的乘法结果。 图8是实现浮点乘法操作时数据通道中各功能模块划分的实施例。浮点乘法分为
三个部分来实现符号位,指数和尾数。浮点乘法所得积的符号位是由两个操作数符号位的
逻辑同或,积的指数是两操作数指数的和,而尾数的乘积就是积的尾数。 图中801、802和803之间的横向连接被断开,分别实现了符号位,指数和尾数的逻
辑。801通过配置实现同或逻辑,完成符号运算,在802、803得到最终结果前,符号运算的
结果逐级传递;802配置成加法器,完成两个指数的求和,此结果在803得到最终结果前,也
逐级传递;803则配置成乘法器,实现无符号数乘法,即得到尾数的乘积。当801、802和803
各部分结果全部产生后输出,即可得到浮点乘法的结果。 浮点乘法乘积的尾数可以依用户需求设定精度,设804产生乘法结果,位宽与尾 数位宽一致,但两个操作数相乘会使得乘积的位宽增加。对于浮点乘法的乘积结果的尾数, 可以选择各种取舍方式进行处理,包括但不限于去尾法,进一法,四舍五入法等。在对此类 算法进行实现时,如四舍五入法,便可以通过对805中处于加法器806前的201单元中包含 的203进行配置来实现,这里将此210单元的B端口输入置为逻辑"l"即可。
图9是实现乘加器的实施例。901是同图5结构的乘法器,902是同图3结构的加 法器。将若干901和902结构的乘法器与加法器如图中方式连接起来,其中,903至906为 配置控制线,作为901乘法器一个操作数的输入端,输入信息是是经过配置后输入的;907 至910为全局总线,作为901乘法器另一个操作数的输入端;911、912和913,也为全局总 线,用于传递乘法和加法产生的中间结果,由此便可以实现乘加器。依据连续进行的乘加操 作次数,可以对乘法器宽度进行配置,以保证求和时的中间结果及最终结果不会出现或在 要求范围内不会出现溢出的情况。假设903至910的输入操作数分别为X、 Y、 Z、 W、 a、 b、 c 和d,那么图9所示乘加器,分别实现aX、 bY、 cZ和dW四个乘法,以及将四个乘积依次向加 的3个加法,由914输出的最终结果为
aX+bY+cZ+dW 需要说明的是由配置控制线输入的乘法操作数X、Y、Z和W应该是一组相对固定的 数。否则,便不能体现本发明中可重构的数据通道的优势。
有了乘加器,就可以实现向量乘法。如
a060cO
cl
c2Z
a3Wc3d3『 上式是向量乘法的数学表达式。同样设式中的X、Y、Z、W为一组相对固定的数,组 成了一个变化不频繁的向量,那么可以通过配置,采用上面所述的乘加器,便可以得到向量 相乘的结果了。 矩阵与向量的乘法是由若干个向量乘法组成,如下式所示 其最后结果的四个元素均是通过四个乘法和三个加法所得到的,依向量乘法的方 法,依次算出四个结果,通过有序的输出,便可实现矩阵与向量的乘法。以此类推,矩阵乘法 也可以通过类似的方法完成。 图10(a)和图10(b)是移位器的实施例。两图分别表示出了 500与506中Co端 输出与下一级基本单元201的B端输入的连接关系。经过配置,可以实现移位器功能,端口 配置方法均为 A端口 通过配置选取需要进行移位的操作数。
B端口 通过202配置被置为逻辑"1"。
C端口 通过204配置被置为逻辑"0"。 由于输出端口 Co分别与下一级中左移一位的基本单元201和右移一位基本单元 201的输入端口 B相连接,所以只需通过对下一级201中的202配置,使其选取恰当的输入, 即可实现相应的移位操作。 如果移位后的操作要求操作数的输入端口为A,那么可以通过配置该级基本单元 201,使A、 C两端口的输入均被置为逻辑"O",则此级的输出端S仍保持了移位结果,而S与 再下一级中的基本单元201的输入端口 A有连接关系,那么通过配置其中的202可使这一 级的A端口输入为所需移位结果。进行移位操作时,可以通过对最高位和最低位的配置,在 移位结果的高位或低位按需要补"0"或"1 "。 图11 (a)是垂直方向数据流基本单元的一个实施例。IN0为4行基本单元的其中某 行的输出,IN1为全局信号输入,二选一选择器(1112)由配置存储器(1101)控制选择将基 本单元输出或是全局信号输入向下传递。二选一多路选择器(1120)由配置存储器(1116) 控制选择是二选一选择器(1112)的当前输出值或是用寄存器(1121)存储的值作为输出 0UT1。寄存器(1121)由配置存储器(1116)控制是否锁存二选一选择器(1112)的的输出。 同时二选一选择器(1113)由配置存储器(1105)控制选择将下面基本单元行产生的输入 (1114)或二选一选择器(1112)的输出向上传递。二选一多路选择器(1123)由配置存储器 (1117)控制选择二选一选择器(1113))的当前输出值或是用寄存器(1122)存储的值作为 输出0UT2。寄存器(1122)由配置存储器(1117)控制是否锁存二选一选择器(1113)的的
21输出。 图11(b)是总线结构的一个实施例。共有4组向下传递信号的总线(1124-1127) 及一组反向传递信号的总线(1123)。四选一选择器(1108)选择4组向下传递信号的总线 (1124-1127)中的一组作为基本单元行(1140)的全局信号输入。基本单元行(1140)的其 他输入由上一行的输出产生。每4个基本单元行的输出通过三态门(1141)连接在一起作 为垂直方向数据流基本单元(1104)的IN0输入。通过垂直方向数据流基本单元(1104)可 实现信号的垂直方向传递。 图12(a)是横向移位单元的一个实施例。输入(1209U210等)各4位信号可以合 起来组成一组从高位到低位的信号或是分别作为不同组信号输入,每组信号的对应位通过 三态门(1205)连接在一起,输出连接在一起的三态门(1205)任意时刻只有一个导通。三 态门(1205)受配置存储器(1206)控制。四选一选择器(1207)可实现移位,它受配置存储 器(1208)控制。通过所示图可按需求实现整体左移(右移)任意位循环移位操作,或是将 单独组的输入信号输出到所有组输出(1211, 1212等)。 图12(b)是可重构普适数字数据处理块的一个实施例。数据从上面进入可重构 普适数字数据处理块,可重构普适数字数据处理块由输入/输出单元(1206)、存储单元 (1213)、横向移位单元(1202)、逻辑单元(1203)构成。逻辑单元(1203)根据需要配置成不 同的功能,可以是一行,也可以是一个阵列。横向移位单元(1202)将信号按要求移位。
图13(a)为一块尚未进行配置的可重构普适数字数据信号处理块。 一块可重构数 字信号处理块(1301)中包含复数个基本单元(1302)。 图13(b)为一种配置成单指令流多数据流(SMD)的可重构普适数字数据信号处 理块。该可重构普适数字数据信号处理块(1301)被配置成同时进行四路运算的一个SMD 处理模块,分别从1315, 1316, 1317, 1318输入数据,从1319, 1320, 1321, 1322输出运算结 果,其中阵1322被配置成乘法运算,行1323被配置成逻辑与操作,行1324被配置成减法操 作,行1325被配置成异或操作,行1326被配置成加法操作,阵1327被配置成右移操作,阵 1328, 1329, 1330, 1331被配置成乘加操作,阵1332, 1334被配置成限幅(saturation)操作 操作,行1333被配置成加法操作。在每一行都有对应的有效位(1360 1372),若某行或某阵 的有效位无效,则对应的行或阵将被关闭,节省功耗。 图13(c)为一种配置成串行操作的可重构普适数字数据信号处理块。该处理块 (1340)的输入为1341,在该数据经处理后,经路径1343,把当前列的输出输出到阵1345的 输入。同样的,经路径1349把整个处理块配置成一个串行操作的模块,其输出为1351。其 中,处理块中的基本单元(1302)经过配置形成功能能不同的处理行,处理阵,如行1353实 现减法操作,行1355实现限幅操作,阵1357实现乘加操作,阵1359实现移位操作等。根据 位宽,该处理块(1340)被配置成三列,每列对应一列有效位(1380,1381,1382)。当有效位 无效(1380,1381,1382)时,对应的行,阵关闭,节省功耗。 图13(d)为一种配置后的可重构普适数字数据信号处理块的输入,输出走向图。 该处理块(1390)的输出为1391,当其经过阵1392的处理后,其输出1393,分别输出到阵 1394, 1395,整个块的输出为1396, 1397。其中数据向下传递(1335)输入到配置后的阵或行 中进行运算处理,向上传递(1336)为经过反回总线传递数据,并不进行运算处理。
图13(e)为一种配置后的可重构普适数字数据信号处理块的输入,输出走向图。该处理块(1398)拥有两个独立的阵阵1344,阵1346,两个阵的输入,输出为独立的。阵 1344的输入为1350,输出为1352 ;阵1346的输入为1354,输出为1356。与图13(d)中的 数据传输相同,向下传递输入到配置后的阵或行中进行运算处理,向上传递为经过反回总 线传递数据,并不进行运算处理。本实施例的输入1354先经过向上传递的总线(1337)输 入到阵中,再进行运算处理。 图14(a)是本发明中可重构存储器地址转换的一个实施例,在本实施例中,可重 构存储器(1401)由复数个字组成,每个字都有对应的地址。当地址输入(1402)为二进制的 1001时,如果可重构存储器(1401)被配置为不映射,则地址输入(1402)经过译码(1403) 后可以寻找到对应于二进制地址1001的字(1404);如果可重构存储器(1401)被配置为映 射,且二进制1001被映射为二进制0010,则地址输入(1402)经过译码(1403)后进入映射 模块,经映射后可以寻找到对应于实际二进制地址0010的字(1406),如此实现不同地址的 影射转换。 图14(b)是本发明中可重构存储器在应用中的一个实施例。在本实施例中,可 重构存储器(1401)由复数个字组成,实现了一个写寻址和读寻址不同存储器。以二进制 1001为例,写映射将其映射为二进制0010,而读映射将其映射为二进制1010。当地址输入
(1402) 为二进制的1001时,如果是写有效(1409),则写映射(1407)工作,将从译码模块
(1403) 传输来的地址映射到二进制地址0010对应的字,实现用逻辑地址1001寻址写物理 地址0010对应的字;如果是读有效(1412),则读映射(1408)工作,将从译码模块(1403)传 输来的地址映射到二进制地址IOIO对应的字,实现用逻辑地址1001寻址读物理地址1010 对应的字。基于本实施例,可以很方便地实现图像压縮算法中像素重排序(zigzag),也可以 很方便地实现FIFO。 本发明所述可重构有限状态机可以被配置成如图15(a)的有限状态机。当处于 状态A(1501)时,若输入为i(O) (1507),则迁移到状态B(1502)。当处于状态B(1502)时, 若输入为J(O) (1508),则迁移到状态A(1501);若输入为j(l) (1509),则保持状态B (1502) 不变;若输入为j(2) (1510),则迁移到状态C (1503);若输入为j (3) (1511),则迁移到状态 D(1504);若输入为j(4) (1512),则迁移到状态E (1505);若输入为j (5) (1513),则迁移到状 态F(1506)。当处于状态C(1503)时,若输入为k(2) (1514),则迁移到状态B(1502)。为更 清楚地描述,图中略去了其他状态及状态迁移条件。 采用本发明中可重构有限状态机可以实现图15(a)中的有限状态机。配置后的可 重构有限状态机如图15(b)所示。该实施例由可随机访问的存储器(1515)、当前状态寄存 器(1521)、可重构多路选择器和可重构随机逻辑(1519)构成,本实施例中可随机访问的存 储器(1515)每一行位宽/字长为q,其中输入界定值(1516)、状态迁移值(1517)和输出控 制信号值(1518)各自的位宽/字长均已确定,分别为r、s、t,即q = r+s+t,此时可以省去边 界标志存储器。当前状态寄存器(1521)中的值代表状态B(1502)时,即处于状态B(1502), 对应到可随机访问的存储器的第B行(1524)。在本实施例中,可随机访问的存储器第B行 (1524)中的存储的值输出,其中r位输出作为6组输入状态信息被传输到可重构组合逻辑 (1519)中,s位输出被作为6组状态迁移信息传输到下一状态多路选择器(1520)中,t位 输出被作为6组输出控制信号信息传输到输出控制多路选择器(1522)中。可重构组合逻 辑(1519)对输入的r位数据和外部输入(1525)进行逻辑操作,得到选择信号(1526)。在本实施例中,所述的逻辑操作即判断外部输入(1525)与6组输入状态信息中的哪一组相 同,并产生对应的选择信号(1526),用于选择下一状态多路选择器(1520)和输出控制多路 选择器(1522)中的相应输入。例如,外部输入为j(2)时,产生的选择信号相应选择状态 表中的状态C(1503)和输出表中的out2 (1527),之后状态C (1503)被写入当前状态寄存器 (1521),并在下一周期指向可随机访问的存储器(1515)的第C行(1528),实现有限状态机 中的状态迁移和控制信号输出。 本实施例中输入界定值(1516)、状态迁移值(1517)和输出控制信号(1518)各 自的位宽/字长是确定的,不需要省去边界标志存储器。在其他情况中,也可以动态调整 输入界定值、状态迁移值和输出控制信号的位宽/字长,即可随机访问的存储器中的边界 (1529)是可以根据边界标志存储器中的值变化的。 本发明所述可重构有限状态机在配置后可以支持多状态机交替并发。在图15(c) 中,可重构有限状态机被配置为三个状态机交替并发,图15(c)与图15(b)相比,增大了可 随机访问的存储器(1515)并增加了一个外部输入多路选择器(1536)、两个当前状态寄存 器(1530)、一个当前状态多路选择器(1531)、两个控制信号寄存器(1535)。外部输入多路 选择器(1536)根据配置选择当前的输入进入可重构组合逻辑中,任意时刻只运行一个有 限状态机,其他两个有限状态机的当前值被存储在相应的当前状态寄存器中,新增的当前 状态多路选择器(1531)选择运行中有限状态机的当前状态寄存器中的值作为当前状态。 当切换状态机时,将原运行中的有限状态机的状态保存在相应当前状态寄存器中,新增的 当前状态多路选择器(1531)选择即将运行的有限状态机相应的当前状态寄存器中的值作 为当前状态继续运行状态机,即可完成状态机切换。三个状态机各状态的相应控制输出可 以如图中控制信号(1532、1533、1534)分别输出到各处,也可以根据需要复用控制线;其 中,控制信号寄存器(1535)可以是复数个也可以是单数个。 将本发明的支持多状态机交替并发的可重构有限状态机配置成对应与不同接口 协议的有限状态机分时复用,并将同一套硬件接口端定义为多种接口协议中的对应输入输 出端口,即可实现输入输出端口 (I/O)的可重构复用。以四种不同协议的输出端口为例,请 参阅图16。在本实施例中,不同协议的输出数据从输出寄存器(1601)中传输到输出逻辑通 道(1602)。输出逻辑通道(1602)根据协议要求不同,可以由可重构普适数字信号处理块中 的基本单元通过配置构成,也可以是可重构控制单元通过配置实现的随机逻辑。输出逻辑 通道(1602)可以是复数个也可以是单数个。由可重构有限状态机配置而成的多状态并发 状态机(1603)能实现所述四种不同协议对应的状态机,并能产生相应的控制信号(1608)。 控制信号(1608)中的一部分在输出逻辑通道(1602)中控制输出寄存器(1601)传输来的 输出数据按特定规则写入FIF0(1604) 。 FIF0(1604)中存储的即是相应端口对应四种协议 各自的输出值。本发明提出的输入输出端口复用,可以是由同一个有限状态机控制不同的 物理端口实现不同的接口协议,也可以由同一个有限状态机控制同一个/组物理端口实现 不同的接口协议。在本实施例中,输出端口 (1606)是单独用于一种接口协议的物理端口, 输出端口 (1607)是由其他三种接口协议复用的物理端口,由多状态有限状态机(1603)通 过端口复用选择器(1605)选择实现分时复用。在本发明中,可以根据配置,使对外端口全 部都是单独用于特定接口协议的物理端口 ,也可以部分是单独用于特定接口协议的物理端 口 、部分是多种协议复用的物理端口 ,还可以全部是多种协议复用的物理端口 ,具有很强的
24灵活性,适用与相同位宽或不同位宽的各种接口协议。本实施例只对输出端口做了说明,输 入端口及输入输出双向端口的情况与输出端口类似。 图17为一典型视频解压縮流程图。本发明可以支持不同视频压縮标准如AVS, MPEG2, H. 264/AVC等标准的视频解压縮。视频解压縮主要分为熵解码(1701),反量化
(no;3),反变换(nos),帧内预测(no了),帧间预测(nog),运动补偿(nii),去块滤波
(1713)等步骤。 各标准的反量化(1703)的基本运算为tu = (CijXA) << B,其中A与B的值对不 同的标准有着不同的值。可以通过配置把不同的值传递给运算单元,实现不同标准的反量 化(1703)。 各标准的反变换(1705)主要是采用矩阵乘,以及加法和移位来实现,但各视频压 縮标准所需要的处理的矩阵大小并不相同,如AVS采用8X8矩阵,H. 264/AVC采用4X4矩 阵,这样可以通过配置大小不同的矩阵来适应各自的需求。 各标准的帧内预测(1707)主要通过乘加及移位实现,且各标准的帧内预测的模 式不同,导致其运算需要的系数不同,需要的乘法、加法的个数也不相同,可以通过配置来 传递不同的系数以及进行乘法、加法等运算的次数。 各标准的帧间预测(1709),运动补偿(1711)差异较大,可以面对不同的视频压縮 标准进行不同的配置。各标准的去块滤波(1713)中,块的划分方式不同,如AVS中的4X4块,H. 264/AVC
中的8 X 8块,滤波的条件与所要做的处理也不相同,也适合进行配置来实现。 从上述分析可以知道,本发明灵活性强,可以实现不同的视频压縮标准中的解压
縮运算。 图18为配置成乘法器时有效位的配置实施例。图中基本单元(1801 1815)与实 施例2中基本单元(201)结构类似,与本实施例描述不相关部分在图中省略。基本单元 1806, 1807, 1808, 1809所在的行执行部分积累加,在一个时钟周期内完成,1810所在的行 执行乘法操作最后一步全加,在另外一个时钟周期内完成。有效位(1816)的传播配置根据 所要实现的功能进行不同配置。在本实施例中,有效位(1816)在基本单元1801, 1802, 1803 中,不经过寄存器(图中已省略)寄存,直接经过多路选择器(1817)的l位选出;有效位 (1816)在基本单元1804,1805中,经过寄存器(1818)存储,下个时钟周期再经过多路选择 器(1817)的O位选出,其中多路选择器(1817)的选择信号由配置存储器(1819)产生。在 有效位(1816)的传递过程中,把有效位传递到相应的三输入与门(1821)中,去控制用于运 算的基本单元(1806 1815)中的寄存器(1822)是否进行存储,其中三输入与门(1821)的 另外两个输入为相应行的多路选择器(1817)的配置信息和时钟信号(1823)。在本实施例 中,通过配置后,基本单元1806, 1807, 1808, 1811, 1812, 1813中的寄存器(1822)不进行锁 存,多路选择器(1824)的输入为其在1位上的输入;基本单元1809, 1810, 1814, 1815中的 寄存器(1822)进行锁存,多路选择器(1824)的输入为其在O位上的输入,即寄存器(1822) 的输出。在本实施例中,三输入与门(1821)可以为专门的列,也可由基本单元配置而成。
图19是实现绝对值、限幅、比较选择操作的一个实施例。三态门(1903)根据位 数要求实现导通或高阻。即输入数据为N位宽度时,第N-1位的三态门(1903)导通,其余 (N-2, ".,O)位的三态门(1903)均为高阻态。三态门(1903)由配置存储器(1904)控制。当配置为绝对值操作时,第一行基本单元(1905)中的输出为输入数据的取反加一结果,第 二行基本单元(1906)所有二选一选择器(1902)根据第一行最高位进位信号(1901,可将其 配置为输入数的符号位)选择是输入数据的原值输出或是上一行的取反加一结果作为输 出;当配置为限幅操作时,第一行基本单元(1905)执行加法或减法操作,第二行基本单元 (1906)中所有二选一选择器(1902)根据第一行最高位进位信号(1901)选择第一行的输出 结果或限幅的最大最小值作为输出;当配置为比较选择操作时,第一行基本单元(1905)执 行比较操作,第二行基本单元(1906)的所有二选一选择器(1902)根据第一行最高位进位 信号(1901,即比较结果)选择输入A或输入B作为输出。 图20是可重构随机逻辑单元的一个实施例。配置存储器(2015,2016)分别控制 四选一选择器(2005,2006)选择输入(2001-2004),四选一选择器(2005,2006)的两位输出 (2007)作为四选一选择器(2008)的控制信号选择配置存储器(2009-2013)中的某个值作 为该可重构随机逻辑单元的输出(2014)。通过将一行可重构随机逻辑单元的输出接到下一 行可重构随机逻辑单元的输入这种方式,实现可重构随机逻辑。
权利要求
一可重构数据处理平台,可以通过配置(set)特定的配置存储器(settingmemory)实现不同的功能;所述可重构数据处理平台由单数个或复数个以下部分或全部模块构成(1)可重构普适数字数据处理块(Reconfigurable Universal Digital Dataprocessing block),用于数字类数据处理;(2)可重构存储器(reconfigurable memory),用于存储和数据重排序;(3)可重构控制单元(reconfigurable controller),可单独用于产生控制信号,也可与其他逻辑共同实现可配置的逻辑功能;所述其他逻辑包括但不限于可重构普适数字数据处理块和可重构存储器。
2. 根据权利要求1所述的可重构数据处理平台,其特征在于所述可重构普适数字数 据处理块,大量实现一位(bit)最基本运算的单数种或少量复数种基本单元(cell)由互 联结构规整地(regularly)连接构成,整个普适数字信号处理块具有非各轴同性(axis asymmetrical)的预设连接,能实现特定的功能,并可以通过配置特定的配置存储器实现 重构,以基本单元为最小单位拆分成单数个或复数个数字类数据处理器(digital data processor),每个数字类数据处理器根据相应配置实现不同位宽的数字类数据处理功能, 所述可重构普适数字数据处理块即可同时实现单数个或复数个相关或互不相关的算法;所 述配置存储器可以全部或部分位于所述可重构普适数字数据处理块内,也可以全部或部分 位于所述可重构普适数字数据处理块外;所述复数个数字类数据处理器可以各自独立,也 可以部分或全部有相互联系,串行、并行或串并混合地进行数字类信号的处理;当所述数字 类数据处理器为独立的数字类数据处理器时,能通过纵向总线和/或横向总线或旁路路径 越过/绕过其他数字类数据处理器与外部联系;所述数字类数据处理包括但不限于算术、 逻辑运算及算术、逻辑运算的组合;所述算术运算包括任意位宽小于等于所述普适数字信 号处理块总位宽的定点运算和浮点运算;所述数字类数据处理包括但不限于数字信号处 理。
3. 根据权利要求1、2所述的可重构数据处理平台,其特征在于用一个所述基本单元通 过配置可以完成一位逻辑运算和一位加法运算;由所述基本单元经配置并按配置信息决定 的连接关系连接构成的行(row)能实现所述基本单元无法独立实现的复数位逻辑运算和 特定的复数位算术运算,包括但不限于加法、减法和移位;由所述基本单元经配置并按配置 信息决定的连接关系连接构成的阵(array),能实现所述行无法独立实现的特定的复数位 运算,包括但不限于移位、乘法、乘加、乘减、限辐、提取、绝对值和舍入。
4. 根据权利要求1、2所述的可重构数据处理平台,其特征在于所述基本单元可以不 使用查找表(LUT),用同一套逻辑实现不同的功能;所述功能包括但不限于逻辑运算和加 法运算;所述基本单元至少包含进位(carry)产生逻辑、和(sum)产生逻辑、复数个配置存 储器、复数个输入端口和复数个输出端口 ;所述输入端口全部或部分由输入多路选择器选 择出送入进位产生逻辑/和产生逻辑的数据;所述多路选择器的选择端控制信号来源于配 置存储器;所述输入多路选择器至少包含一个进位输入多路选择器和一个用于根据高阶 (highradix)乘法重编码结果选择输入的多路选择器;所述输出端口的数据全部或部分来 源于带旁路功能的输出延迟(delay)装置;所述带旁路功能的输出延迟装置包括但不限于 多路选择器和寄存器/锁存器;所述带旁路功能的输出延迟装置中的多路选择器用于从进 位产生逻辑/和产生逻辑的输出和延迟后的输出中选择数据作为最终的输出,选择端控制信号来源于配置存储器。
5. 根据权利要求1、2、4所述的可重构数据处理平台,其特征在于所述进位产生逻辑可 以根据配置产生全加器的进位输出,也可以根据配置产生逻辑运算的输出;所述和产生逻 辑可以根据配置产生全加器的和输出,也可以根据配置产生逻辑运算的输出。
6. 根据权利要求1、2、4所述的可重构数据处理平台,其特征在于所述配置存储器用于 存储配置信息,可以全部或部分位于所述基本单元中,也可以全部或部分位于所述基本单 元外;当所述配置存储器全部或部分位于所述基本单元外时,所述配置存储器可以用于控 制单数个或复数个基本单元中的相应可重构部分。
7. 根据权利要求1、2、4所述的可重构数据处理平台,其特征在于所述基本单元中的进 位输入多路选择器的输入根据配置不同可以来自行内右侧相邻基本单元的输出端口,也可 以来自阵内上方特定基本单元的输出端口 ,也可以是来自相应配置存储器的作系数用的配 置信息,还可以被赋值为逻辑"0"或逻辑"1";所述用于根据高阶乘法重编码结果选择输入 的多路选择器的输入根据配置不同可以来自阵内上方特定基本单元的输出端口,也可以是 被乘数及其反码、左移后的被乘数及其反码或逻辑"0",也可以是来自相应配置存储器的作 系数用的配置信息;所述其他输入端多路选择器的输入根据配置不同可以来自操作数的数 据输入,也可以是来自相应配置存储器的作系数用的配置信息。
8. 根据权利要求1、2、4所述的可重构数据处理平台,其特征在于所述基本单元通过配 置、相互连接,可以构成以移位加方式实现的乘法器,也可以构成高阶乘法器;所述高阶乘 法器包括但不限于阶二 (radix-2)乘法器;所述重编码器包括但不限于布斯(booth)编码 器;所述重编码器可以是独立存在于所述可重构数据处理平台中,供单数个或复数个乘法 器使用,也可以不独立存在而由所述可重构控制单元通过配置实现,还可以由所述可重构 数据处理平台外部的逻辑或处理器实现;所述重编码器的编码结果可以作为输入传输到所 述构成乘法器的基本单元中控制根据重编码结果选择乘法输入的多路选择器,也可以作为 系数(coefficient)预先存储在用于控制根据重编码结果选择乘法输入的多路选择器的 配置存储器中。
9. 根据权利要求1、2所述的可重构数据处理平台,其特征在于所述可重构普适数字数 据处理块中的互联结构分为高速局部连接和全局总线两个层次。
10. 根据权利要求1、2、9所述的可重构数据处理平台,其特征在于所述高速局部连接 用于邻近基本单元间的高速连接;所述高速局部连接是硬连接(hard wired)的近距离固 定连线,用于大部分时延关键路径;通过对基本单元内输入多路选择器的配置可以重构基 本单元间的连接关系;所述连接关系包括但不限于同一行内的加减法的进位关系和不同行 间的乘法部分积传递关系。
11. 根据权利要求1、2、9所述的可重构数据处理平台,其特征在于所述全局总线包括 纵向连接行或阵的用于传输数据的可重构纵向总线结构和横向的可重构横向移位结构;所 述可重构纵向总线结构用于数据/数据流可重构普适数字数据处理块中的纵向传输;所述 可重构横向移位结构可以根据配置将特定行或阵输出的数据移位后送往左侧、右侧或下一 个行或阵,还可以实现大跨度的数据移位操作和数据交叉换位操作。
12. 根据权利要求1、2所述的可重构数据处理平台,其特征在于所述根据配置信息重 构而成的实现特定功能的数字类数据处理器可以根据配置信息包含单数个或复数个有效位(valid flag),或不包含有效位;所述单数个或复数个有效位可以用于控制是否运行对 应数字类数据处理器并标识运行结果的有效性,也可以用于控制是否运行对应数字类数据 处理器中部分或全部行或阵并标识运行结果的有效性;所述有效位用存储器实现,包括但 不限于寄存器、锁存器和随机访问存储器;控制所述行或阵不运行的方法包括但不限于关 断相应时钟或关断相应电源;所述有效位也可以只用于标识有效性;所述有效位也可以被 旁路逻辑旁路而不起作用。
13. 根据权利要求1所述的可重构数据处理平台,其特征在于所述可重构存储器可以 通过配置特定的配置存储器实现重构,能用于存储数据并具备数据重排序功能;所述可重 构存储器的位宽/字长可以是固定的,也可以是可变的;所述配置存储器可以全部或部分 位于所述可重构存储器内,也可以全部或部分位于所述可重构存储器外。
14. 根据权利要求1所述的可重构数据处理平台,其特征在于所述可重构控制单元包 括可重构随机逻辑和可重构有限状态机,可以通过配置特定的配置存储器实现重构,用基 本部件产生处理不同事务所需的控制信号及有限状态机;所述配置存储器可以全部或部分 位于所述可重构控制单元内,也可以全部或部分位于所述可重构控制单元外。
15. 根据权利要求1、14所述的可重构数据处理平台,所述可重构随机逻辑包括可重构 功能单元和可重构连接;所述可重构功能单元通过配置能实现任意种逻辑功能;所述可重 构连接通过配置能实现复数个可重构功能单元的任意种连接;单数个或复数个可重构功能 单元及单数个或复数个可重构连接通过特定的配置,即能实现随机逻辑的重构;所述可重 构随机逻辑还可以根据配置,在由可重构功能单元和可重构连接构成的随机逻辑中插入寄 存器/锁存器以保证时延要求。
16. 根据权利要求1、14所述的可重构数据处理平台,所述可重构有限状态机由可随机 访问的存储器(randomly accessible memory)、当前状态寄存器、可重构多路选择器和可 重构随机逻辑构成;所述可随机访问的存储器内存储有输入界定值(qualification)、状 态迁移(transition)值和输出控制信号值;所述可随机访问的存储器中的每一行存储对 应的单数组或复数组输入界定值、单数组或复数组状态迁移值和单数组或复数组输出控制 信号值;所述可随机访问的存储器每一行中输入界定值、状态迁移值和输出控制信号值各 自占的位宽/字长是不变/可变的;所述可随机访问的存储器内每行中不同值间的边界信 息是不变/可变的;当所述可随机访问的存储器内每行中不同值间的边界信息可变时,由 边界标志存储器存储每行相应的边界信息;所述当前状态寄存器用于存储当前状态值,实 现下一状态到当前状态的迁移;所述可重构多路选择器用于从复数组状态迁移值中选出下 一状态,并从复数组输出控制信号值中选出满足条件的控制信号输出;所述可重构随机逻 辑可以通过配置特定的配置存储器实现重构,用于完成特定的随机逻辑功能;所述可重构 有限状态机还可以包括由可重构随机逻辑构成的计数器(counter),以实现根据计数结果 进行状态迁移的功能;所述可随机访问的存储器可以是可挥发的,也可以是不可挥发的。
17. 根据权利要求1、15、16所述的可重构数据处理平台,所述可重构有限状态机在配 置后可以支持多状态机交替并发(multi-thread)。
18. 根据权利要求1 、 14、 15、 16、 17所述的可重构数据处理平台,其特征在于所述可重 构控制单元可以与其他逻辑共同实现可重构逻辑功能;所述可重构逻辑功能包括但不限于 可重构输入/输出对外接口 ;所述可重构输入/输出对外接口,可以通过配置,以同样的一套硬件结构同时实现单数种或复数种接口协议。
19. 根据权利要求1所述的可重构数据处理平台,其特征在于用于配置可重构的模块的配置信息可以存储在平台内,也可以存储在平台外;当配置信息存储在平台外时,可以将所述可重构数据处理平台视为存储器,用向存储器存储数据的方式将所有配置信息并行传输到所述可重构数据处理平台中的各个配置存储器,或者用扫描链的方式将所有配置信息串行移位输入到所述可重构数据处理平台中的各个配置存储器;还可以在所述可重构平台运行时将所述配置信息传输到各个配置存储器,实现不同功能间的动态切换。
20. 根据权利要求1、19所述的可重构数据处理平台,其特征在于所述配置信息可以是未经编码的原始配置信息,也可以是经过编码后的信息;所述编码的方式包括但不限于加密和压縮;对所述加密编码信息解密所用的密钥可以以硬件形式存在与所述可重构数据处理平台中,也可以通过配置信息输入所述可重构数据处理平台。
21. 根据权利要求1所述的可重构数据处理平台,其特征在于所述配置信息可以通过人工制定,也可以通过工具根据映射规则自动产生;所述映射包括但不限于硬件描述语言(HDL)到配置信息的映射、计算机程序语言到配置信息的映射、计算机建模到配置信息的映射和算法描述到配置信息的映射;在所述可重构数据处理平台中,可以预先实现常用的运算的配置信息模板,当使用自动工具根据映射规则自动产生配置信息时,所述自动工具可以直接调用所述模板中的配置信息。
22. 根据权利要求1所述的可重构数据处理平台,其特征在于所述配置存储器可以是挥发性的,也可以是非挥发性的;还可以在设计、生产所述可重构数据处理平台时,直接固化配置,使所述可重构数据处理平台只能实现特定功能。
23. 根据权利要求1所述的可重构数据处理平台,其特征在于所述可重构数据处理平台还可以包括扩展模块,以适应更广泛的需求;所述扩展模块包括但不限于随机逻辑控制器、模拟单元、中央处理器、数字信号处理器(DSP)、数据包头检测器和逻辑零个数检测器。
24. 根据权利要求1所述的可重构数据处理平台,其特征在于基于所述的可重构普适数字信号处理块、可重构存储器和可重构控制单元进行设计,配置为不同的应用,不需要做时延收敛(timing closure)。
25. 根据权利要求1所述的可重构数据处理平台,其特征在于所述可重构数据处理平台可以具备自测试能力,能够在加电工作的情况下不依赖于外部设备进行芯片的自测试;当所述可重构数据处理平台具备自测试能力时,可以将可重构普适数字数据处理块中特定的单数个基本单元或行或阵,或者复数个基本单元或行或阵配置成比较器,对可重构普适数字数据处理块中相应的复数组其他基本单元或行或阵及基本单元或行或阵的组合给予具有特定关系的激励,并用所述比较器比较所述复数组其他行或阵及行或阵的组合的输出是否符合相应的特定关系;所述激励可以来自所述可重构数据处理平台中的特定模块,也可以来自所述可重构数据处理平台外部;所述特定关系包括但不限于相等、相反、互逆、互补;所述测试结果可以被送到所述可重构数据处理平台外部,也可以保存在所述可重构数据处理平台中的存储器中;所述的自测试可以是在晶圆测试,封装后集成电路测试或者芯片使用时在系统启动时进行测试;也可以人为设定自测试条件及周期,在工作期间定期进行自测试;所述存储器可以是挥发性的,也可以是非挥发性的。
26.根据权利要求1、25所述的可重构数据处理平台,其特征在于所述可重构数据处理平台在具备自测试能力的前提下,可以具备自修复能力;当所述测试结果保存在所述可重构数据处理平台中的存储器中时,可以对失效基本单元或失效行或失效阵作标记,在对所述可重构数据处理平台进行配置时,可以根据相应标记绕过失效基本单元或失效行或失效阵,使所述可重构数据处理平台依然能正常工作,实现自修复;所述自修复可以是在晶圆测试后进行,封装后集成电路测试后进行或者芯片使用时在系统启动时进行测试后进行;也可以人为设定自测试自修复条件及周期,在工作期间定期进行自测试后进行。
全文摘要
本发明提出一种可重构数据处理平台,由可重构普适数字数据处理块、可重构存储器和可重构控制单元构成,可以用一套硬件通过配置实现不同的功能,以较低的成本实现高性能,达到高时钟频率、高吞吐率、多发射的数字类数据处理能力。基于本发明平台进行设计研发,可以将设计简化为配置,所需的配置信息可以通过自动工具根据映射规则直接从硬件描述语言、计算机程序语言、计算机建模、算法描述等自动产生,不需要做时延收敛,避免了可能的设计返工问题,免去设计中很多步骤,能有效地缩短研发周期,提高生产效率。
文档编号G06F17/50GK101782893SQ200910045980
公开日2010年7月21日 申请日期2009年1月21日 优先权日2009年1月21日
发明者任浩琪, 张冰淳, 林正浩, 赵忠民, 郑长春 申请人:上海芯豪微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1