一种阵列算术逻辑单元结构的制作方法

文档序号:6460957阅读:208来源:国知局
专利名称:一种阵列算术逻辑单元结构的制作方法
技术领域
本发明涉及集成电路设计领域,具体涉及一种阵列算术逻辑单元结构。
背景技术
当前和未来的集成系统芯片,主要由三部分构成承载操作系统的一 个或多个CPU,若干个标准的I/O接口,支撑特定算法处理的ASIC Application Specific Integrated Circuit,艮卩专用集成电路)。芯片设 计的复杂性和功能的差异性主要由ASIC决定,因为它的设计不仅会影响整 个芯片的体系架构,同时一定会影响设计时间和费用。因此,系统中解决 支撑特定算法处理的ASIC的设计问题处在一个突出的重要位置。ASIC设 计从过去0. 5um以上工艺的全定制阶段,进入今天0. 35-0. 09um的标准单 元自动综合阶段,未来ASIC设计将进入90-45nm阶段,如何提升ASIC 设计的效率和效果,是亟待解决的问题。现有的阵列算术逻辑单元结构采 用同一的控制单元,针对特定的算法,控制单元对多个互联的算术逻辑单 元进行连接配置和运算功能配置,使其具有确定的互联关系以能够协作执 行任务程序。但该方案具有以下缺点设计时间长,针对特定算法实现的 ASIC电路难以兼容其它算法,由于不同算法应用差异性的存在,在设计时 需要改变硬件的整体结构,不易于快速实现,无法满足产品快速上市的需 求。如今一个ASIC设计需要大概8个月到1年左右的时间完成,实现周期 太长,满足不了市场对产品快速升级换代的要求。同时,此方案的硬件实 现设计尤其在90nm及更低工艺下,其研发、流片以及测试的费用都很高。 例如,现今的无线通信就有WCDMA, OFDM, MIMO, WIMAX等众多算法,而在 基站的建设中若针对每种算法都采用对应的硬件实现,时间和成本开销都 特别大。

发明内容
本发明的主要目的就是解决现有技术中的问题,提供一种阵列算术逻 辑单元结构,利用该阵列算术逻辑单元结构能方便地改变其内部算术逻辑 单元的连接关系和运算功能,实现阵列规模和功能的可配置性,从而灵活适应不同算法之间的差异并大大提升设计的效率,降低设计费用。
为实现上述目的,本发明提供一种阵列算术逻辑单元结构,包括通过 互联总线相连的复数个算术逻辑单元簇以及至少两个交换开关与至少两个 算法控制单元,所述算术逻辑单元簇各包含至少两个算术逻辑单元,所述 交换开关包括互联开关和配置单元,所述互联开关设置在所述算术逻辑单 元簇之间的互联总线上,所述配置单元与所述算法控制单元相连,所述算 法控制单元用于控制所述配置单元生成运算功能配置和连接配置,所述互 联开关根据所述连接配置确定其与所连算术逻辑单元簇中的各算术逻辑单 元的连接关系,所述各算术逻辑单元根据所述运算功能配置对指定的输入 数据进行指定的运算。 优选地
所述算术逻辑单元簇与所述交换开关按照相间分布的方式成列连接, 构成复数列的二维处理阵列,所述算法控制单元按照与所述交换开关一对 一连接的方式布置成二维控制阵列。
所述二维处理阵列和所述二维控制阵列按列相间排布,所述交换开关 与左右侧相邻的两个算法控制单元均相连。
所述二维控制阵列中,各行的算法控制单元依次相连,各列的算法控 制单元也依次相连,所述算法控制单元还分别用于和与其相连的所述交换 开关进行数据交换,并通过各算法控制单元之间的连接通道转发来自所述 交换开关的数据。
所述配置单元包括用于提供所述连接配置的配置寄存器和用于提供 所述运算功能配置的配置寄存器;所述交换开关还包括数据寄存器,用于 存储上下相邻的算术逻辑单元簇的各个算术逻辑单元的输出,并向所述各 个算术逻辑单元提供所述指定的数据,所述算法控制单元设置有与所述数
据寄存器进行数据交换的总线接口 。
还包括向所述二维控制阵列提供指令与数据加载的输入单元,所述二 维控制阵列按列或按行连接所述输入单元。
所述算术逻辑单元簇还包括存储器。
所述算术逻辑单元簇中各算术逻辑单元的时钟由与其相连的算法控 制单元控制。
所述算法控制单元与所述算术逻辑单元簇对所述交换开关的访问采 用固定时间片的方式分时进行。
所述算法控制单元具有停止模块和唤醒模块,所述停止模块用于使所述算法控制单元进入休眠状态,所述唤醒模块用于将所述算法控制单元从 休眠状态唤醒。
本发明有益的技术效果是
本发明的阵列算术逻辑单元结构包括多个算术逻辑单元簇、交换开关 以及算法控制单元,交换开关包括互联开关和配置单元,互联开关设置在 算术逻辑单元簇之间的互联总线上,配置单元与算法控制单元相连,算法 控制单元控制配置单元生成连接配置和运算功能配置,互联开关与算术逻 辑单元簇中的各算术逻辑单元的连接关系通过连接配置确定,各算术逻辑 单元根据运算功能配置对指定的输入数据进行指定的运算。优选实施方式 下,各算法控制单元还互相连接,算法控制单元与交换开关进行数据交换 并将数据通过相连的其它算法控制单元转发到其它交换开关。
本发明实现了较为通用的阵列结构,通过适当调整各个算法控制单元 的配置指令,可将不同算法通过多个算法控制单元映射到阵列中相应的算 术逻辑单元簇,因此,对于不同的应用需要,本发明无需重新做针对特定 算法或应用的专门硬件ASIC,不需要改变硬件整体结构,而只需重新加载 阵列的执行程序,通过软件即可完成,相比于现有采用统一的控制单元的
阵列结构,本发明实现了阵列规模和功能的可配置性,大大提升了 ASIC 设计效率。由于本发明的阵列结构可灵活快速地映射各种算法,也有利于 满足快速更新换代的要求,有利于满足产品的差异性和上市时间的约束, 同时也节约了每项算法的实现代价,降低了设计的一次性工程费用 (NonRecurring Engineering, NRE)。


图1是本发明阵列算术逻辑单元结构一种实施例的主体部分的示意
图2是本发明一种实施例中的交换开关的结构框图3是本发明一种实施例中的算法配置和数据转发单元的结构框图4是本发明一种实施例中的算法配置和数据转发单元的指令和数据 加载通道示意图5是本发明一种实施例包含输入输出的阵列结构示意图;
具体实施例方式
本发明的特征及优点将通过实施例结合附图进行详细说明。 请参考图1,阵列算术逻辑单元ALU结构包括多个算术逻辑单元簇(图 中以ALU簇表示)、多个交换开关Switch以及多个算法控制单元ADU。每个算术逻辑单元簇由一定数量的算术逻辑单元ALU组成。算术逻辑单元簇 与交换开关Switch互联构成复数列的二维处理阵列,在该二维处理阵列的 列方向上,各算术逻辑单元簇和各交换开关Switch以相间分布的方式连 接,即每一列的每个算术逻辑单元簇分别与上下相邻两个交换开关Switch 相连,同样,除阵列边界外,每个交换开关Switch也分别与上下相邻两个 算术逻辑单元簇相连。算法控制单元ADU按照与交换开关Switch —对一相 连的方式布置,构成二维控制阵列,优选地,二维控制阵列和二维处理阵 列的按列相间排布,二维控制阵列各列的每个算法控制单元ADU与其右侧 相邻的交换开关Switch分别对应连接。
算法控制单元ADU负责配置交换开关Switch的路径和算术逻辑单元 的运算功能,即针对相关的算法应用,各算法控制单元ADU根据从外部加 载的指令和数据,控制相应的交换开关Switch进行连接配置和运算功能配 置。交换开关Switch包括互联开关和配置单元,其中,互联开关设置在算 术逻辑单元簇之间的互联总线上,配置单元与算法控制单元ADU相连。算 法控制单元ADU通过读写相应交换开关Switch的配置单元,生成运算功能 配置和连接配置。根据连接配置,可确定互联开关与所连算术逻辑单元簇 中的各算术逻辑单元的连接关系,根据该运算功能配置,各算术逻辑单元 可对指定的输入数据进行指定的运算。
作为改进,算法控制单元ADU还负责与交换开关Switch之间的数据 转发功能。在优选的实施例中,本发明的算法控制单元ADU即同时实现以 上两种功能的算法配置和数据转发单元ADU。此时,每个算法配置与上下 左右相邻的四个算法配置和数据转发ADU相连,即该二维控制阵列中各行 的算法配置和数据转发ADU依次相连,各列的算法配置和数据转发ADU也 依次相连。除通过交换开关Switch进行前述的算法配置,算法配置和数据 转发ADU还用于与相连的交换开关Switch进行数据交换,来自交换开关 Switch的数据可通过互联的算法控制单元进行传递转发。进一步地,各算 法配置和数据转发ADU还可分别与其左相邻的交换开关Switch相连,形成 数据传递与转发的又一通路。由于算法配置和数据转发ADU的数据转发功 能,算术逻辑单元簇之间有更多的数据传送路径可以选择,从而使数据传 递更加灵活,数据传送效率也更高。
请参考图2,各算术逻辑单元ALU具有两个输入端口和一个输出端口, 输入端口与上一级(下相邻的)交换开关Switch相连,输出端口与上下两级交换开关Switch分别相连。根据不同的应用,算术逻辑单元ALU的输入
输出端口设置还可以有更多的选择。交换开关Switch包括以下部分 一组
数据寄存器DataReg,可由算法配置与数据转发单元ADU进行读写,其用 于存储上下相邻两个算术逻辑单元簇的各个算术逻辑单元ALU的输出结 果; 一套互联开关,其用于将各个数据寄存器DataReg的数据按照一定的 连接配置送至下级(上相邻的)算术逻辑单元簇的各个算术逻辑单元ALU; 配置单元,可由算法配置和数据转发ADU进行读写,其包括两组配置寄存 器ConfigReg,第一组配置寄存器用于控制互联开关的连接关系,第二组 配置寄存器用于控制算术逻辑单元ALU的运算功能;以及供其左侧相邻的 算法配置和数据转发ADU访问上述寄存器的总线接口 。
如上所述,算术逻辑单元ALU具体的运算功能由算法配置和数据转发 单元ADU读写的第二组配置寄存器进行控制,算术逻辑单元簇中的每个算 术逻辑单元ALU根据交换开关Switch中的第二组配置寄存器的内容,对指 定寄存器DataReg输入到ALU的数据进行指定的运算。本发明中,算术逻 辑单元ALU能完成的功能包括但不限于加法、减法、乘法、乘法累加、 与、或、异或、左算术/逻辑移位、右算术/逻辑移位、比较、传送等算术 运算和逻辑运算。算术逻辑单元ALU与互联开关的连接关系由ADU读写的 第一组配置寄存器控制。作为一种改进,算术逻辑单元簇中除包含多个算 术逻辑单元外,还包含有存储结构。
请参考图3,算法配置和数据转发ADU包括程序(指令)控制器、定 时器、唤醒器、指令和数据存储器IMEM+DMEM以及与交换开关Switch中的 数据寄存器DataReg进行数据交换的总线接口和与相邻的四个算法配置初 数据转发ADU连接的四个输入输出端口 Port 。算法配置和数据转发单元ADU 作为算法控制单元,负责整个目标算法在阵列ALU中的配置,同时,还承 载算法执行过程(即阵列ALU的计算过程)中的数据转发任务。具体地, 每一个算法配置和数据转发单元ADU负责其右相邻的交换开关switch中的 配置寄存器ConfigReg的配置,控制算术逻辑单元ALU的运算功能,控制 连接算术逻辑单元ALU输入/输出的互联开关,同时还通过读写交换开关 Switch中的数据寄存器DataReg,实现与交换开关Switch之间的数据通信, 并对所连接的算术逻辑单元簇的数据进行转发。四个独立的输入输出端口 Port用于各算法配置和数据转发ADU之间的数据接收和发送,输入输出端 口 Port的位宽和端口的实现形式可以根据具体应用情况来选择。算法配置和数据转发单元ADU之间的数据转发可以独立于算术逻辑单元ALU的运算, 而算法配置和数据转发单元ADU和算术逻辑单元ALU对交换开关Switch 的访问采用分时进行,特别地,可以采用在固定时间片(预定时间间隔) 读写交换开关Switch中的配置寄存器ConfigReg和数据寄存器DataReg 的方式来进行管理和控制。
作为进一步的改进,算法配置和数据转发单元ADU可以通过执行暂停 指令HLT进入休眠状态,并通过其自身设置的唤醒器来唤醒。在另一种改 进中,各个算术逻辑单元簇内每个算术逻辑单元ALU的运算采用统一的时 钟控制,该时钟由算法配置和数据转发ADU负责管理,g卩,各个算术逻辑 单元簇内每个算术逻辑单元ALU运算的启动和停止由与之相连的算法配置 和数据转发ADU控制。
本发明中,算法配置与数据转发单元ADU可以采用状态机来实现,也 可以采用类似处理器的存储指令架构,通过指令的执行完成上述功能。本 实施例采用类似处理器的存储指令架构。算法配置与数据转发单元ADU指 令系统的主要相关指令定义如下
1) Load Reg, Mem;将存储器地址Mem的内容取到寄存器Reg;
2) Store Reg, Mem;将寄存器Reg的内容存到存储器地址Mem;
3) MovSD Reg, SwitchDataReg;将ADU的寄存器Reg的值送到 指定Switch的数据寄存器;
4) MovSDR Reg, SwitchDataReg;将指定Switch的数据寄存器的 值送到ADU的寄存器Reg;
5) MovSC Reg, SwitchConfigReg;将ADU的寄存器Reg的值送 到指定Switch的配置寄存器;
6) MovSCR Reg, SwitchConfigReg;将指定Switch的配置寄存器 的值送到ADU的寄存器Reg;
7) In Reg, Port;从连接其它ADU的端口 Port取数据到Reg;
8) Out Reg, Port;将Reg的数据发送到连接其它ADU的端口 Port;
9) Jmp +/-offset;按偏移量+/-0^£361跳转到下条指令,即程 序计数器PC +/-offset;
10) Timer num;设置定时器;计数到num发出信号;
11) Rousernum;设置唤醒器;计数到num唤醒ADU:12) HLT; ADU暂停指令执行;
图4展示了阵列ALU结构中,算法配置与数据转发单元ADU的指令和 数据加载情况。算法配置与数据转发单元ADU的指令和数据可以按行或列 加载的方式统一规划实现。图4中,算术逻辑单元ALU和交换开关Switch 被省略没有画出。指令和数据采用按列加载方式直接写入各个算法配置与 数据转发单元ADU内的指令和数据存储器。阵列ALU结构可通过对外部的 指令和数据存储器IMEM+ DMEM的访问来完成自身程序和数据的加载。此外, 阵列ALU结构中的所有算法配置与数据转发单元ADU采用统一的控制信号 进行复位,复位信号由外部统一提供的。此外,通过复用指令和数据加载 通道,可执行阵列ALU结构测试功能。
采用本发明的阵列ALU,能够通过可配置规模和功能的系列化的ALU 阵列去支撑特定算法处理的ASIC实现,从而提升ASIC设计效率和效果, 同肘还能满足产品的差异性和上市时间的约束,并大大降低设计研发费用。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说 明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术 领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若 干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种阵列算术逻辑单元结构,其特征在于,包括通过互联总线相连的复数个算术逻辑单元簇以及至少两个交换开关与至少两个算法控制单元,所述算术逻辑单元簇各包含至少两个算术逻辑单元,所述交换开关包括互联开关和配置单元,所述互联开关设置在所述算术逻辑单元簇之间的互联总线上,所述配置单元与所述算法控制单元相连,所述算法控制单元用于控制所述配置单元生成运算功能配置和连接配置,所述互联开关根据所述连接配置确定其与所连算术逻辑单元簇中的各算术逻辑单元的连接关系,所述各算术逻辑单元根据所述运算功能配置对指定的输入数据进行指定的运算。
2. 如权利要求1所述的阵列算术逻辑单元结构,其特征在于,所述 算术逻辑单元簇与所述交换开关在列方向上按照相间分布的方式连接,构 成复数列的二维处理阵列,所述算法控制单元按照与所述交换开关一对一 连接的方式布置成二维控制阵列。
3. 如权利要求2所述的阵列算术逻辑单元结构,其特征在于,所述 二维处理阵列和所述二维控制阵列按列相间排布,所述交换开关与左右侧 相邻的两个算法控制单元均相连。
4. 如权利要求1至3任意一项所述的阵列算术逻辑单元结构,其特 征在于,所述二维控制阵列中,各行的算法控制单元依次相连,各列的算 法控制单元也依次相连,所述算法控制单元还分别用于与相连的所述交换 开关进行数据交换,来自所述交换开关的数据通过各算法控制单元传递转 发。
5. 如权利要求4所述的阵列算术逻辑单元结构,其特征在于,所述 配置单元包括用于提供所述连接配置的配置寄存器和用于提供所述运算 功能配置的配置寄存器;所述交换开关还包括数据寄存器,用于存储上下 相邻的算术逻辑单元簇的各个算术逻辑单元的输出,并向所述各个算术逻 辑单元提供所述指定的数据,所述算法控制单元设置有与所述数据寄存器 进行数据交换的总线接口。
6. 如权利要求4所述的阵列算术逻辑单元结构,其特征在于,还包 括向所述二维控制阵列提供指令与数据加载的输入单元,所述二维控制阵 列按列或按行连接所述输入单元。
7. 如权利要求1至3任意一项所述的阵列算术逻辑单元结构,其特 征在于,所述算术逻辑单元簇还包括存储器。
8. 如权利要求1至3任意一项所述的阵列算术逻辑单元结构,其特 征在于,所述算术逻辑单元簇中各算术逻辑单元的时钟由与其相连的算法 控制单元控制。
9. 如权利要求1至3任意一项所述的阵列算术逻辑单元结构,其特 征在于,所述算法控制单元与所述算术逻辑单元簇对所述交换开关的访问 采用固定时间片的方式分时进行。
10. 如权利要求1至3任意一项所述的阵列算术逻辑单元结构,其特 征在于,所述算法控制单元具有停止模块和唤醒模块,所述停止模块用于 使所述算法控制单元进入休眠状态,所述唤醒模块用于将所述算法控制 单元从休眠状态唤醒。
全文摘要
本发明公开了一种阵列算术逻辑单元结构,包括通过互联总线相连的复数个算术逻辑单元簇、至少两个交换开关以及至少两个算法控制单元,算术逻辑单元簇各包含至少两个算术逻辑单元,交换开关包括互联开关和配置单元,互联开关设置在算术逻辑单元簇之间的互联总线上,配置单元与算法控制单元相连,算法控制单元用于控制配置单元生成运算功能配置和连接配置,互联开关根据连接配置确定其与算术逻辑单元簇中的各算术逻辑单元的连接关系,各算术逻辑单元根据运算功能配置对指定的输入数据进行指定的运算。本发明的阵列算术逻辑单元结构规模和功能可灵活配置,能够支撑不同特定算法处理的ASIC实现,提升了设计效率和效果,降低了设计研发费用。
文档编号G06F9/302GK101320321SQ20081006812
公开日2008年12月10日 申请日期2008年6月27日 优先权日2008年6月27日
发明者刘彦亮, 叶兆华, 丹 周, 鹏 戴, 王新安, 来 魏, 维 黄 申请人:北京大学深圳研究生院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1