WO2010034167A1 - 一种集成电路的处理器结构 - Google Patents

一种集成电路的处理器结构 Download PDF

Info

Publication number
WO2010034167A1
WO2010034167A1 PCT/CN2008/073514 CN2008073514W WO2010034167A1 WO 2010034167 A1 WO2010034167 A1 WO 2010034167A1 CN 2008073514 W CN2008073514 W CN 2008073514W WO 2010034167 A1 WO2010034167 A1 WO 2010034167A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
configuration
processor
register
instruction
Prior art date
Application number
PCT/CN2008/073514
Other languages
English (en)
French (fr)
Inventor
戴鹏
胡子一
王新安
张兴
Original Assignee
北京大学深圳研究生院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN200810216362A external-priority patent/CN101685389B/zh
Priority claimed from CN2008102168590A external-priority patent/CN101727434B/zh
Priority claimed from CN2008102168586A external-priority patent/CN101727433B/zh
Application filed by 北京大学深圳研究生院 filed Critical 北京大学深圳研究生院
Priority to US13/121,406 priority Critical patent/US20110271078A1/en
Publication of WO2010034167A1 publication Critical patent/WO2010034167A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Description

一种集成电路的处理器结构
技术领域
本发明涉及集成电路设计领域, 具体涉及一种集成电路的处理器结构或系统。 背景技术
随着集成电路制造工艺进入 90nm-45nm阶段, 复杂算法 (如数字媒体和无线通 信算法等) 的 ASIC (Application Specific Integrated
Circuit, 即专用集成电路) 实现, 面临设计周期长、 设计成本高、 灵活性差、 扩 展性差, 难以满足产品快速上市、 功能不断提升的需求。 因此, 基于支持存储 指令控制的处理器来实现复杂算法, 就显得越来越重要。
[3] 然而, 一般处理器和指令系统的设计方法, 要支持复杂算法的实现, 必然需要 相对复杂的指令系统和指令格式以及实现方式, 并且不易扩展, 比如, 当处理 器需要支持一种新的运算 /存储功能或增加新的运算 /存储部件吋, 往往需要重新 修改整个处理器的设计、 甚至修改整个指令系统, 以支持新功能的实现。
[4] 同吋, 基于一般处理器指令系统的算法设计, 程序代码的语义明确, 比较容易 被抄袭, 难以保护设计者的智力劳动成果。
发明内容
[5] 本发明要解决的技术问题是: 提供一种集成电路的处理器结构或系统,具有可配 置、 可编程的灵活性, 操作简便并具有良好的算法保密性。
[6] 为解决上述问题, 本发明提供一种集成电路的处理器结构, 包括至少一个可配 置运算部件的处理器 (简称 AP) 和至少一个可配置存储部件的处理器 (简称 MP 所述可配置运算部件的处理器与可配置运算部件的处理器、 可配置存储部 件的处理器中的至少一个互联, 所述可配置存储部件的处理器与可配置运算部 件的处理器、 可配置存储部件的处理器中的至少一个互联; 所述可配置运算部 件的处理器包括第一算法数据控制部件和至少一个用于对输入数据执行运算操 作的运算部件, 所述运算部件包括逻辑运算单元和配置寄存器, 所述第一算法 数据控制部件执行配置指令, 将配置信息写入指令中指定的运算部件的配置寄 存器, 所述运算部件根据其自身配置寄存器中的配置信息进行逻辑运算; 所述 可配置存储部件的处理器包括第二算法数据控制部件和至少一个用于对数据进 行存储或读出操作的存储部件, 所述存储部件包括存储单元和配置寄存器, 所 述第二算法数据控制部件执行配置指令, 将配置信息写入指令中指定的存储部 件的配置寄存器, 所述存储部件根据其自身配置寄存器中的配置信息进行数据 存取。
[7] 所述配置指令包含操作码、 配置信息和配置目的三个操作元素, 所述操作码为 规定指令所执行操作的命令码, 所述配置信息为指令操作的对象, 所述配置目 的用于指定写入配置信息的配置寄存器。
[8] 在另一实施例中, 还提供一种集成电路的处理器结构, 包括第二算法数据控制 部件和至少一个用于对数据进行存储或读出操作的存储部件, 所述存储部件包 括存储单元和配置寄存器, 所述第二算法数据控制部件执行配置指令, 将配置 信息写入指令中指定的存储部件的配置寄存器, 所述存储部件根据其自身配置 寄存器中的配置信息进行数据存取。
[9] 在又一实施例中, 还提供一种集成电路的处理器结构, 包括第一算法数据控制 部件和至少一个用于对输入数据执行运算操作的运算部件, 所述运算部件包括 逻辑运算单元和配置寄存器, 所述第一算法数据控制部件执行配置指令, 将配 置信息写入指令中指定的运算部件的配置寄存器, 所述运算部件根据其自身配 置寄存器中的配置信息进行逻辑运算。
[10] 本发明的有益效果是:
[11] 本发明釆用一种可配置运算部件的处理器 AP和一种可配置存储部件的处理器 M P, 通过多个 AP和 /或 MP处理器的级联, 实现 ASIC的快速设计。 本发明的 AP和 MP级联较简明, 具有可配置、 可编程的灵活性, 不需要复杂的逻辑, 可简化硬 件结构, 但可支持复杂的算法功能。 在需要增加运算功能 (或运算部件) 和存 储功能 (或存储部件) 吋, 因为本发明将配置信息写入相应的配置寄存器, 而 运算部件和存储部件分别根据其自身的配置寄存器中的内容进行逻辑运算和数 据存取, 不需要对 AP和 MP的指令系统进行修改和增加, 只需定义新增配置信息 即可。 [12] 同吋, 本发明的指令系统与现有技术中的具有确定性语义的指令不同, 本发明 的配置指令中包含操作码、 配置信息和配置目的三个操作元素, 不同的配置信 息来源和不同的配置目的, 可产生不同的语义, 可能同样的指令完成不同的配 置, 所以本发明具有良好的算法保密性。
附图说明
[13] 图 1是本发明一种实施例中 ADU的硬件模块框图;
[14] 图 2是本发明一种实施例的可配置运算部件的处理器的硬件框图;
[15] 图 3是本发明另一种实施例的可配置存储部件的处理器的硬件框图;
[16] 图 4是本发明存储部件的一种实施例的结构框图;
[17] 图 5是本发明多核 DSP间直接级联的结构框图;
[18] 图 6是是本发明多核 DSP间通过交换开关间接级联的结构框图;
[19] 图 7—图 10是本发明可配置运算部件的处理器和可配置存储部件的处理器的 几种级联方式;
[20] 图 11是本发明一种实施例的特定应用算法需求分析图;
[21] 图 12是根据图 11的级联图。
具体实施方式
[22] 下面通过实施例结合附图对本发明作进一步详细说明。
[23] 本发明的处理器结构或系统中的可配置 DSP通过选择优化的可配置部件, 支撑 复杂算法的快速实现。 其中, 可配置部件包括可配置的算法数据控制部件 (以 下简称控制部件, 如图 1中的 38, 图 2中 10, 图 3中的 20) 、 可配置的运算部件 ( 图 2中 12) 、 可配置的存储部件 (图 3中 22) 及可配置的数据路径 (图 2中 l la、 11 b, 图 3中的 22a、 22b) 。 本发明的可配置概念不仅表示通过一系列软件或硬件生 成 DSP软核或硬核, 不同 DSP软核 /硬核中可配置部件的功能或数目不一致; 也表 示已生成的 DSP软核 /硬核中可配置部件在实际运行过程中根据需要进行实吋的 功能配置; 还可表示多个 DSP核级联的拓扑结构可配置。
[24] 其中, 可配置的控制部件 (ADU) 可以理解为是一个不包括运算部件的只有几 条指令的处理器, 在一种实施例中, 可配置的控制部件 ADU包括加载模块、 指 令存储器、 数据存储器、 译码器、 和通用寄存器, 还可以进一步包括定吋或计 数器等模块。 如图 1所示为可配置的控制部件 ADU38的一种具体结构, 模块 31为 程序计数器 PC, 用来指示当前运行程序的地址; 模块 32和 33分别代表数据存储 器 DMEM和指令存储器 IMEM, 分别用来存储数据和指令, 当然也可以釆用一个 存储器存储数据和指令; 模块 34是译码单元, 用做分析指令含义, 解释指令行 为; 模块 36为通用寄存器组, 用于存储数据或指令; 模块 37表示加载模块。 加 载模块 37从外部端口加载数据存入数据存储器 DMEM或指令存储器 IMEM, 定吋 或计数器 35为 ADU提供计吋或计数处理。 当加载模块 37加载的是数据吋, 加载 模块将数据从输入端口加载至数据存储器 dmem, 当加载模块 37加载的是指令吋 , 载模块将指令从输入端口加载至指令存储器 imem, 通过 PC模块提供的地址将 从指令存储器中选择对应指令进行操作。
[25] ADU的可配置主要表现在指令字长的变化上, 希望一条指令完成全部配置 (运 算部件、 数据通路等) , 还是只完成运算部件的配置。 以运算部件为例说明如 下:
[26] 假设配置一个 ALU单元的配置信息为 n
bit,则同吋配置四个 ALU单元的配置信息为 4n bit, 配置指令的字长为 4n+m bit, 其中 m为该配置指令的操作码。 对于不同应用情况, DSP需要的 ALU数目不 同, 因此 ADU的指令字长也根据 ALU的数目而变化。
[27] 可配置的运算部件可包括若干个运算单元, 每个运算单元包括逻辑运算单元 ( 简称 ALU) 和配置寄存器。 可配置控制部件执行配置指令, 将配置信息写入运 算部件的配置寄存器, 所述运算部件根据其自身配置寄存器中的配置信息进行 指定的数据运算。
[28] 可配置的存储部件包括存储单元和配置寄存器, 可配置控制部件执行配置指令 , 将配置信息写入指令中指定的存储部件的配置寄存器, 所述存储部件根据其 自身配置寄存器中的配置信息进行数据存取。
[29] 可配置的数据路径为用于选择数据输入或输出路径的数据通路, 包括数据输入 通路和输出选择单元, 所述数据输入通路包括数据输入转换开关和配置寄存器 , 所述输出选择单元包括数据输出转换开关和输出端口配置寄存器。 可配置控 制部件还根据配置指令, 将配置信息写入指令中指定的数据通路的配置寄存器 , 数据输入通路根据其自身配置寄存器中的配置信息控制数据输入转换开关的 切换, 输出选择单元根据其自身配置寄存器中的配置信息控制数据输出转换开 关的切换。
[30] 在本发明中可配置的数据路径有两种含义。 一种为 DSP内部可配置的数据路径 , 主要由转换开关和配置寄存器组成。 在数据输入通路的输入端, 输入数据来 源有三个: 可配置的控制部件 ADU中的通用寄存器中暂存的数据、 从输入端口 输入的数据和输出选择单元输出的数据, 数据输入通路可根据其配置寄存器中 的配置信息在三个数据来源中进行选择。 数据输出通路可通过四个路径输出数 据, 即: 将数据输出到输出端口、 输出到数据输入通路的输入口、 存入 ADU的 通用寄存器和数据存储器, 输出选择单元可根据配置信息在四个数据输出路径 中进行选择。 因此, 对 DSP内部数据路径的可配置表现在通过 ADU向数据通路 中的配置寄存器写配置值, 选择数据输入来源和数据输出目标。
[31] 本发明中可配置数据路径的第二种含义为 DSP核间的数据路径可配置, 具体表 现在多核之间的数据级联。 本发明中每个 DSP核最多可从两个 DSP核接收数据, 可向任意多的 DSP核发送数据。 多核级联可以釆用静态级联的方式, 即两个 DSP 核间连线直连 (如图 5), 也可以通过 DSP核间的可配置互联开关进行核间 DSP远距 离互联 (如图 6) 。 对 DSP核间数据路径的可配置表现在映射多核 DSP拓扑结构 吋对核间数据路径的可配置。
[32] 针对上述可配置的硬件结构, 在本发明的一种实施例中提出了一套语义简单的 指令系统, 具体说明如下:
[33] 本发明中, 可配置运算部件、 可配置存储部件及可配置的数据路径由其对应的 控制部件执行配置指令完成配置功能。 其中, 配置指令包含操作码、 配置信息 和配置目的三个操作元素, 所述操作码为规定指令所执行操作的命令码, 所述 配置信息为指令操作的对象, 所述配置目的用于指定写入配置信息的配置寄存 器。 所述操作码、 配置信息和配置目的可由用户设置, 配置指令的格式和位宽 不限, 可根据实际情况进行调整格式和位宽。 所述配置信息可以为通用寄存器 中的内容, 也可以是立即数或数据存储器的内容或输入端口的寄存器的内容。 例如: [34] Movesc reg , configreg:
[35] 该指令将通用寄存器 reg中的数据写入指定的配置寄存器, 该配置寄存器直接 完成相应的运算部件的功能或数据通路的路径配置。
[36] 作为该类指令的变种, 在指令位宽允许的情况下, 也可将上述指令中的通用寄 存器 reg改为立即数 imm, 即 Movesc
imm, COnfigreg。 将 imm直接写入指定的配置寄存器。
[37] 立即数 imm也可表示数据存储器的地址, 将对应地址的数据存储器的数据作为 配置信息, 立即数还可以是具体的操作或数值。
[38] 上述配置寄存器中数据所代表的配置含义, 即指定的运算操作或数据路径, 可 以根据需要定制, 从而使非法的程序代码获取者无法破译实际执行的算法。
[39] Movesd reg, datareg:
[40] 该指令将通用寄存器 reg中的数据写入指定的数据寄存器。
[41] 作为该指令的变种, 该指令中的 reg可以是处理器的数据输入端口寄存器, 即 将处理器的数据输入端口寄存器的值写入指定的数据寄存器, 配置指令为: Inpu t
p0rt,datareg。 同样, 该指令中的 datareg可以指处理器的数据输出端口寄存器, 即 将处理器的通用寄存器的值写入指定的数据输出端口寄存器,
酉己置指令为: Output reg, port°
[42] 在处理器进行运算或存储功能吋, 控制部件可有以下几种配置选择:
[43] 1.配置 Switch的数据路径 (也称为交换幵关) , 选择运算部件簇的数据输入路 径, 相应的指令为: movesc reg
configreg, 其中 configreg用于配置 Switch中的数据路径, 即选择交换幵关;
[44] 2.同样可以配置 Switch的数据路径 (也称为交换幵关) , 选择存储部件簇的数 据输入路径, 相应的指令为: movesc reg
configreg, 其中 configreg用于配置 Switch中的数据路径,即选择交换幵关;
[45] 3.配置运算单元簇各运算单元的运算功能, 相应的指令为: movesc reg
configreg, 其中 configreg用于配置运算单元的运算操作;
[46] 4.配置存储单元簇各存储单元的存储功能, 相应的指令为: movesc reg configreg, 其中 configreg用于配置存储单元的存储操作;
[47] 5.配置和管理数据输入和输出端口, 配置运算单元 /存储单元的结果写回目的地 , 如通用寄存器、 switch中的数据存储器或者输出端口等, 对应的指令为: move sc reg configreg, 其中 configreg对应的是数据输出转换幵关选择的配置寄存器。
[48] 6.配置和管理数据输入和输出端口。
[49] 根据算法的实现要求, 按一定的吋间和顺序重复上述步骤, 即是实现算法的程 序, 便可完成预定的算法功能。
[50] 在进行数据流或数据段处理吋, 存在三种特殊情况:
[51] 1 . 在进行数据流处理吋, 常常会遇到一个逻辑运算单元仅需完成一个特定功 能运算的情况下, 这样往往需要反复循环地执行一段特定的程序。
[52] 2. 当 ADU单元执行完一个指令 (例如该指令是存入一个数据段) 后, 需要等 待存储部件操作完成后才可以执行下一条指令 (例如下一条指令是存入另一个 数据段) 。
[53] 3 . 当处理单元 a需要从另两个处理单元 b和 c取数再进行运算吋, 会出现其中一 个处理单元 b的数据到得比较早, 另外一个处理单元 c数据到得比较晚 (由于两个 处理器工作任务不同, 很容易造成数据到达吋间上的不统一) , 处理单元 a会将 处理单元 b和一个空数据发生有效操作, 而导致计算错误。
[54] 为解决上述三个问题, 在本发明的另一实施例中, 定义了控制处理器暂停的暂 停指令, 所述暂停指令包括操作码和暂停吋间计数信息两个操作元素, 其一种 格式是:
[55] Rouser #imm;
[56] 在处理器对数据流进行处理吋 ADU执行暂停指令, 控制处理器处于暂停状态, 启动定吋器计吋或计数器计数, 同吋使处理器处于暂停状态, 使所述数据通路 和 /或存储部件的配置信息保持不变, 直到接收到恢复信息。 这段吋间内, ADU 单元不执行指令, 输出数据比较快的处理单元也处于等待状态。 当计吋或计数 完成吋, 处理器中各部分恢复正常运行状态。
[57] 该指令也可写为 rouser reg的形式, 这吋 reg中的值取代 imm。
[58] 暂停指令还可以是以下格式: HLT;
该指令作为 rouser指令的特殊形式, 即当 ADU执行该指令吋, 将暂停处理器的 工作, 直到被其他信号 (如中断信号等) 唤醒。
[61] 例如, 在处理数据流吋, 假设运算部件的上次运算是加法运算, 执行暂停指令 后, 运算部件将保持加法运算功能, 对输入的数据作加法运算, 直到处理器恢 复正常运行状态, 运算部件被配置以新的运算功能。
[62] 以上可知, 利用该配置指令及其硬件实现, 可方便地改变其内部的运算单元 / 存储单元的连接关系和运算 /存储功能, 实现处理器的数据通路和功能的可配置 性, 适用于对大规模数据流处理的情况, 特别是针对数字信号处理的阵列。
[63] 本发明在需要增加计算功能吋, 不需要对指令进行修改和增加, 仅需定义新增 配置信息的语义即可, 有利于处理器功能的扩展并且不增加硬件设计的复杂性
[64] 本发明仅需通过简单的配置指令即可完成各种复杂的运算操作和算法映射, 从 指令设计上来看各功能单元执行的指令基本相同, 而通过配置信息的不同却可 完成不同的操作。 例如同样的 movesc指令, 根据所写的配置寄存器不同而配置 不同步骤的功能实现; 由于 ALU可根据硬件设计者自行设计运算单元 /存储单元 , 因此即使执行配置 ALU指令的配置信息完全一样, 计算 /存储单元的执行功能 也可根据运算 /存储单元的不同而不同。 因此, 本发明中的指令具有加密性, 各 系统设计厂商可根据实际情况自定义阵列中运算 /存储单元簇的配置信息的语义 , 从而得到自定义的指令系统, 并可有效保护自主知识产权。
[65] 本发明的指令和硬件结构有利于数据流处理。 阵列结构中的每个处理单元都可 通过该配置指令完成相应配置从而实现不同的计算功能, 在进行大规模数字信 号处理吋, 数据从阵列的输入端口流进, 途经各个处理单元完成相应的运算操 作, 即可完成复杂的数字信号处理的算法映射, 而不需要各处理单元频繁地执 行指令, 仅需在初始化吋完成各计算单元功能和数据路径配置, 或在少数处理 单元工作过程中进行相应的运算 /存储功能和数据路径的修改。
[66] 根据上述可配置的控制部件、 可配置的运算部件、 可配置的存储部件以及可配 置的数据路径, 本发明可组合形成可配置运算部件的处理器及可配置存储部件 的处理器两类处理器结构, 并可通过可配置的数据路径方便地将两类处理器进 行级联, 已完成快速算法实现功能。
[67] 实施例一:
[68] 本实施例为具有可配置运算部件的处理器。 处理器中包括至少一个可配置的控 制部件、 用于选择数据输入 /输出来源的数据通路和用于对输入数据执行运算操 作的可配置的运算部件 (简称 ALU) , ADU负责配置数据通路的数据输入和 /或 输出路径和 ALU的运算功能, 即针对相关的算法应用, ADU通过执行配置指令 进行数据通路的路径配置和 ALU的运算功能配置。
[69] 如图 2所示为可配置运算部件处理器的一种具体结构, 为方便说明, 本图中可 配置的运算部件仅画了两个, 运算部件可以有一个或多个, 可根据具体需要设 计。 每个可配置的运算部件包括逻辑运算单元 ALU和配置寄存器。 模块 12 代表可配置的运算部件 (简称 ALU簇) , 每个 ALU簇包括逻辑运算单元 ALU14 和配置寄存器 17a。 图中模块 10表示处理器中的 ADU单元, 该单元负责执行本发 明中的一系列指令, 其可釆用前述的 ADU或图 1所示的结构。 本实施例中, ADU 单元可执行配置指令, 将配置信息写入配置寄存器 17a, 将逻辑运算单元 (ALU ) 14配置成需要的逻辑运算单元。 例如, 通过配置, ALU单元可以是但不限于 加法器、 乘法器、 移位器等基本的运算模块。 特别的, ALU还可以包括各种专 用的运算单元, 如蝶形运算单元、 cordic单元等。 对 ALU单元的可配置表现在根 据 ADU的配置指令对操作数进行不同的运算操作。
[70] 数据通路包括数据输入通路 11a和输出选择单元 l ib, 数据输入通路 11a包括数 据输入交换开关 13a和配置寄存器 17c, 输出选择单元 l ib包括数据输出转换开关 1 3b和输出端口配置寄存器 17b。
[71] 模块 15和 16分别代表处理器的输入端口和输出端口, 负责数据的输入和输出。
模块 18代表数据通路的数据寄存器, 为 ALU簇保存操作数据。
[72] 在数据输入通路 11a的输入端, 输入数据来源有三个: 可配置的控制部件 ADU 中的通用寄存器中暂存的数据、 从输入端口输入的数据和输出选择单元输出的 数据, 数据输入通路 11a可根据配置信息在三个数据来源中进行选择。
[73] 输出选择单元 l ib可通过三个路径输出数据, gP: 将数据输出到输出端口、 输 出到数据通路 Switch的输入口和存入 ADU的通用寄存器, 输出选择单元可根据配 置信息在三个数据输出路径中进行选择。
[74] 由上可知, 可配置的控制部件 ADU执行配置指令, 将配置信息写入指令中指定 的配置寄存器。 配置信息可以是通用寄存器的内容或者是立即数。 数据作为配 置信息, 配置寄存器的各种配置信息经过简单的译码操作, 可对应选择相应的 功能模块进行运算。 例如, 假定 000是加法, 001减法。 则该指令将 000写入配置 寄存器后, 一个很小的译码器 (或者是选择器) 根据 000选择加法器使能工作, 因此进入逻辑运算单元中的两个操作数 a和 b完成加法。 指令中指定的配置寄存器 可以是数据输入通路的配置寄存器, 也可以是运算部件 ALU的配置寄存器, 还 可以是输出选择单元的配置寄存器。
[75] 基于本实施例的硬件结构, 处理器可通过对如下可配置单元进行配置完成各种 运算操作, 配置指令为前述指令中的某一种:
[76] 1.配置数据输入路径 (也称为交换开关) , 即选择 ALU簇的数据输入路径, 相 应的指令为: movesc reg
configreg, 其中 configreg用于配置数据输入通路中的数据路径,即选择数据输入通 路中的交换开关,确定输入数据来源;
[77] 2.配置 ALU簇各 ALU的运算功能, 相应的指令为: movesc reg
configreg, 其中 configreg用于配置 ALU的运算操作;
[78] 3.配置和管理数据输入和输出端口, 配置 ALU运算结果写回目的地, 如通用寄 存器、 数据输入通路中的数据存储器或者输出端口等, 对应的指令为: movesc reg configreg, 其中 configreg对应的是数据输出转换开关选择的配置寄存器。
[79] 按照以上步骤, 配置信息被写入相关配置寄存器, 完成对相关单元的配置, 且 配置信息被保存至配置寄存器中, 直到下一次再写入吋才会改变。 ALU功能、 数据路径都配置完成之后, 即可自动完成后续数据处理。
[80] 实施例二:
[81] 本实施例为具有可配置存储部件的处理器。 可配置存储部件的处理器中包括可 配置的控制部件 (简称 ADU) 、 用于选择数据输入和 /或输出路径的数据通路和 至少一个用于对数据进行存储或读出操作的存储部件。 ADU负责执行配置指令 , 对数据通路的数据路径和存储部件的存取功能进行配置。
[82] 每个存储部件包括存储单元和配置寄存器, 所述可配置的控制部件执行配置指 令, 将配置信息写入指令中指定的存储部件的配置寄存器, 所述存储部件根据 其自身配置寄存器中的配置信息进行数据存取。
[83] 如图 3所示为处理器的一种具体结构, 为方便说明, 本图中存储部件仅画了两 个, 存储部件可以有一个或多个, 可根据具体需要设计。 图中模块 20表示处理 器中的 ADU单元, 该单元负责执行本发明中的一系列指令, 其可釆用前述的 AD U或图 1所示的结构; ADU单元 20执行配置指令, 对数据通路和存储部件 22的存 取功能进行配置。 所述数据通路包括数据输入通路 21a和输出选择单元 21b, 所述 数据输入通路 21a包括数据输入转换开关 23a和配置寄存器 27c, 所述输出选择单 元 21b包括数据输出转换开关 23b和输出端口配置寄存器 27b。 ADU单元 20根据配 置指令, 将配置信息写入指令中指定的数据通路的配置寄存器, 所述数据输入 通路 21a根据其自身配置寄存器 27c中的配置信息控制数据输入转换开关 23a的切 换, 所述输出选择单元 21b根据其自身配置寄存器 27b中的配置信息控制数据输 出转换开关 23b的切换。 即将配置信息作为控制信号, 控制开关的切换。 数据输 入通路 21a连接输入端口 25和 ADU单元 20中的通用寄存器, 数据的输入来源可以 是 ADU单元 20中的通用寄存器, 还可以是输入端口 25。 输出选择单元 21b连接输 出端口 26和 ADU单元 20中的通用寄存器, 数据的输出路径可以是通过输出端口 2 6输出, 也可以输出到通用寄存器。
[84] 存储部件 22的一种实施方式是包括存储单元 (即 MEM) 24和配置寄存器 27a, ADU单元 20执行配置指令, 将配置信息写入其配置寄存器 27a中, 存储部件 22根 据配置信息将数据存入存储单元 24中, 或将数据从存储单元 24中读出。
[85] 存储部件的另一种实施方式是包括存储单元、 配置寄存器和地址产生器, 如图 4所示, 地址产生器分别连接该存储部件的配置寄存器和存储单元, 所述地址产 生器根据所述配置寄存器中的配置信息设定所述存储单元存取数据的地址基址 (即存取数据的初始地址) 、 跳变步长和跳变次数, 根据地址基址, 跳变步长 , 跳变次数可确定数据存取的实际物理地址。 例如, 需要存储 1-16的一个数据段 吋, 地址产生器可根据配置信息, 产生出存储数据的地址基址, 控制数据从存 储单元的该地址开始存储, 并以跳变步长为 1, 跳变 15次, 直到将最后一个数据 存入。 釆用这种方式存取数据, 可以通过地址产生器根据配置信息中的内容自 动产生一大段有规律的地址, 而面对 DSP算法, 大段数据的存取都是有规律的, 如地址自增 1, 自增 2等。 这样可以只需要执行一次指令, 即可对一段数据进行 存取操作, 而不需要重复执行 16条指令或进行一段指令的循环, 从而简化了操 作, 尤其是对流处理或者大块数据存取的操作比较方便, 不用每次存取都由程 序员控制给出地址。
[86] 因存储单元可以是 FLASH, EEPROM或 SRAM等任意一种存储介质, 不同的存 储介质进行存储的方式不同, 为通过配置将相同的输入数据格式转化为不同存 储器的读写数据格式, 在另外的具体实施例中, 存储部件还可以包括至少一个 分别连接该存储部件的配置寄存器和存储单元的格式转换器, 将所述配置寄存 器中的配置信息进行译码, 选择相应的格式转换器, 通过该格式转换器将外部 数据转化为针对该存储单元存取的格式。 例如, EEPROM是串行数据存取, 和 S RAM的存取方式不同, 则需要对数据进行一定的打包或解包等转换操作才能进 行存取, 而转换操作就由格式转换器完成。 不同的存储器需要不同的格式转换 器, 因而在该实施例中, 可设置多种格式转换器, 并根据配置信息在多种格式 转换器中进行选择。
[87] 需要存入数据吋, 配置数据输入通路 21a的数据路径,相应的指令为: movesc reg
configreg,其中 configreg用于配置数据输入通路 21a中的数据路径,即选择转换开关 。 数据输入通路 21a根据其配置寄存器 27c中的配置信息,选择数据的输入来源, 数据在数据输入通路 21a的数据寄存器 28中进行暂存后输入到某个指定的存储部 件 22中。 配置存储部件簇各存储部件 22的存储功能, 相应的指令为: movesc reg configreg, 其中 configreg用于配置存储部件 22的存储功能,存储部件 22根据其配置 寄存器 27a中的配置信息,从地址基址按照跳变步长和跳变次数存入数据。 并配置 和管理数据输入和输出端口。
[88] 按一定的吋间和顺序重复上述步骤, 即是实现算法的程序, 便可完成预定算法 的存储功能。 [89] 需要读出数据吋, 存储部件 22根据其配置寄存器 27a中的配置信息, 从地址基 址按照跳变步长和跳变次数读出数据, 并输出数据到输出选择单元 21b, 输出选 择单元 21b根据其配置寄存器 23b中的配置信息, 选择数据的输出路径。
[90] 基于本实施例的硬件结构, 可配置的控制部件执行的配置指令可为前述指令中 的某一种。
[91] 因此, 对存储部件的可配置主要体现在对地址产生器的可配置, 使之可以产生 不同的存取访问地址; 以及通过对存储单元、 格式转换器的配置进行不同容量 , 不同类型的存储介质的选择。
[92] 实施例三:
[93] 本实施例为具有可配置运算部件处理器和可配置存储部件处理器的处理器及其 级联。
[94] 为表述方便, 我们将可配置运算部件的处理器称为 AP, 将可配置存储部件的 处理器称为 MP。 通过一系列 AP和 MP的级联就可以实现任何特定应用算法专用 集成电路 (即 ASIC) , 该种结构包括至少一个 AP和至少一个 MP, AP与 AP、 M P中的至少一个互联, MP与 AP、 MP中的至少一个互联, 如图 7- 10所示。
[95] 图 11是本发明一种实施例的特定应用算法需求分析, 将输入的数据先通过两个 AP进行运算, 暂存结果, 然后再分别经两个和四个 AP运算, 再暂存结果, 暂存 的结果再经四个 AP运算, 最后将数据输出。 通过对特定应用算法的需求分析, 形成一个运算和存储需求流程图, 然后就可以形成 AP和 MP的级联图, 如图 12所 示。 当然, 还需要根据算法的吋间约束等条件, 通过 AP和 MP的复用、 减少 AP 和 MP的数量, 同吋在完成算法功能后进一步定制, 取消没有使用的可配置功能
[96] 根据本发明的构思, 可以根据需要设置 AP和 MP的级联方式, 实现所需要的算 法。
[97] AP中的可配置的控制部件和 MP中的可配置的控制部件可以釆用相同的结构, 也可以釆用不同的结构。 本实施例中以 AP和 MP釆用相同结构的 ADU进行说明。 上述实施例中, AP的第一可配置的控制部件和 MP的第二可配置的控制部件可以 是每个单元独立拥有的, 也可以是若干单元共用的。 [98] AP和 MP的指令处理部件较简单, 将运算功能和存储功能都规整到可配置运算 部件和可配置存储部件的内部处理。
[99] 这样的 AP和 MP能够高效级联支撑应用算法的实现, 并具有可配置和可编程的 灵活性。 如果特定应用算法专用集成电路的设计已经釆用 AP和 MP级联的方式实 现, 需要进一步缩小芯片面积、 降低成本, 则可以将可配置部件 (运算部件、 存储部件等) 按照应用算法的需要进行定制: 取消没有使用的可配置功能。
[100] 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明, 不能认 定本发明的具体实施只局限于这些说明。 对于本发明所属技术领域的普通技术 人员来说, 在不脱离本发明构思的前提下, 还可以做出若干简单推演或替换, 都应当视为属于本发明的保护范围。

Claims

权利要求书
[1] 1.一种集成电路的处理器结构, 其特征在于: 包括至少一个可配置运算部 件的处理器和至少一个可配置存储部件的处理器, 所述每个可配置运算部 件的处理器与可配置运算部件的处理器、 可配置存储部件的处理器中的至 少一个互联, 所述每个可配置存储部件的处理器与可配置运算部件的处理 器、 可配置存储部件的处理器中的至少一个互联; 所述可配置运算部件的 处理器包括第一算法数据控制部件和至少一个用于对输入数据执行运算操 作的运算部件, 所述运算部件包括逻辑运算单元和配置寄存器, 所述第一 算法数据控制部件执行配置指令, 将配置信息写入指令中指定的运算部件 的配置寄存器, 所述运算部件根据其自身配置寄存器中的配置信息进行逻 辑运算; 所述可配置存储部件的处理器包括第二算法数据控制部件和至少 一个用于对数据进行存储或读出操作的存储部件, 所述存储部件包括存储 单元和配置寄存器, 所述第二算法数据控制部件执行配置指令, 将配置信 息写入指令中指定的存储部件的配置寄存器, 所述存储部件根据其自身配 置寄存器中的配置信息进行数据存取。
[2] 2.如权利要求 1所述的处理器结构, 其特征在于: 所述配置指令包含操作码
、 配置信息和配置目的三个操作元素, 所述操作码为规定指令所执行操作 的命令码, 所述配置信息为指令操作的对象, 所述配置目的用于指定写入 配置信息的配置寄存器。
[3] 3.如权利要求 2所述的处理器结构, 其特征在于: 所述操作码、 配置信息和 配置目的可由用户设置, 所述指令的位宽可根据实际情况进行调整。
[4] 4.如权利要求 1至 3中任一项所述的处理器结构, 其特征在于: 所述存储部 件还包括分别连接该存储部件的配置寄存器和存储单元的地址产生器和至 少一个格式转换器, 所述地址产生器根据所述配置寄存器中的配置信息设 定所述存储单元存取数据的地址基址、 跳变步长和跳变次数, 所述配置寄 存器根据其中的配置信息选择相应的格式转换器, 使所述格式转换器将外 部数据转化为针对该存储单元存取的格式。
[5] 5.如权利要求 1所述的处理器结构, 其特征在于: 所述可配置运算部件的处 理器和可配置存储部件的处理器还分别包括用于选择数据输入或输出路径 的数据通路, 所述数据通路包括数据输入通路和输出选择单元, 所述数据 输入通路包括数据输入转换开关和配置寄存器, 所述输出选择单元包括数 据输出转换开关和输出端口配置寄存器, 所述第一或第二算法数据控制部 件还根据配置指令, 将配置信息写入指令中指定的数据通路的配置寄存器 , 所述数据输入通路根据其自身配置寄存器中的配置信息控制数据输入交 换开关的切换, 所述输出选择单元根据其自身配置寄存器中的配置信息控 制数据输出转换开关的切换。
[6] 6.如权利要求 1至 3中任一项所述的处理器结构, 其特征在于: 所述第一算 法数据控制部件和第二算法数据控制部件都包括加载模块和通用寄存器, 所述加载模块用于从外部端口加载指令或数据并存入通用寄存器, 所述配 置信息为通用寄存器中的内容、 立即数或数据存储器中的内容。
[7] 7.如权利要求 1至 3中任一项所述的处理器结构, 其特征在于: 所述第一算 法数据控制部件和第二算法数据控制部件还执行暂停指令, 控制各自的处 理器处于暂停状态, 并使所述运算部件和存储部件的配置信息保持不变, 直到接收到恢复信息。
[8] 8.如权利要求 7所述的处理器结构, 其特征在于: 所述恢复信息为从执行暂 停指令开始计吋或计数完成的信息或中断信号。
[9] 9.如权利要求 7或 8所述的处理器结构, 其特征在于: 所述暂停指令包括操 作码和暂停吋间计数信息两个操作元素。
[10] 10.如权利要求 1所述的处理器结构, 其特征在于: 所述可配置运算部件的 处理器或可配置存储部件的处理器最多与可配置运算部件的处理器、 可配 置存储部件的处理器中的四个互联。
[11] 11.一种集成电路的处理器结构, 包括第二算法数据控制部件和至少一个用 于对数据进行存储或读出操作的存储部件, 其特征在于: 所述存储部件包 括存储单元和配置寄存器, 所述第二算法数据控制部件执行配置指令, 将 配置信息写入指令中指定的存储部件的配置寄存器, 所述存储部件根据其 自身配置寄存器中的配置信息进行数据存取。
[12] 12.如权利要求 11所述的处理器结构, 其特征在于: 所述配置指令包含操作 码、 配置信息和配置目的三个操作元素, 所述操作码为规定指令所执行操 作的命令码, 所述配置信息为指令操作的对象, 所述配置目的用于指定写 入配置信息的配置寄存器。
[13] 13.如权利要求 11或 12所述的处理器结构, 其特征在于: 所述存储部件还包 括分别连接该存储部件的配置寄存器和存储单元的地址产生器, 所述地址 产生器根据所述配置寄存器中的配置信息设定所述存储单元存取数据的地 址基址、 跳变步长和跳变次数。
[14] 14.如权利要求 13所述的处理器结构, 其特征在于: 所述存储部件还包括至 少一个分别连接该存储部件的配置寄存器和存储单元的格式转换器, 根据 所述配置寄存器中的配置信息选择相应的格式转换器, 将外部数据转化为 针对该存储单元存取的格式。
[15] 15.如权利要求 13所述的处理器结构, 其特征在于: 所述处理器还包括用于 选择数据输入或输出路径的第二数据通路, 所述第二数据通路包括数据输 入通路和输出选择单元, 所述数据输入通路包括数据输入交换开关和配置 寄存器, 所述输出选择单元包括数据输出转换开关和输出端口配置寄存器 , 所述第二算法数据控制部件还根据配置指令, 将配置信息写入指令中指 定的第二数据通路的配置寄存器, 所述数据输入通路根据其自身配置寄存 器中的配置信息控制数据输入交换开关的切换, 所述输出选择单元根据其 自身配置寄存器中的配置信息控制数据输出转换开关的切换。
[16] 16.如权利要求 11至 13中任一项所述的处理器结构, 其特征在于: 所述第二 算法数据控制部件包括加载模块和通用寄存器, 所述加载模块用于从外部 端口加载指令或数据并存入通用寄存器, 所述配置信息为通用寄存器中的 内容、 立即数或数据存储器中的内容。
[17] 17.—种集成电路的处理器结构, 包括第一算法数据控制部件和至少一个用 于对输入数据执行运算操作的运算部件, 其特征在于: 所述运算部件包括 逻辑运算单元和配置寄存器, 所述第一算法数据控制部件执行配置指令, 将配置信息写入指令中指定的运算部件的配置寄存器, 所述运算部件根据 其自身配置寄存器中的配置信息进行逻辑运算。
[18] 18.如权利要求 17所述的处理器结构, 其特征在于: 所述配置指令包含操作 码、 配置信息和配置目的三个操作元素, 所述操作码为规定指令所执行操 作的命令码, 所述配置信息为指令操作的对象, 所述配置目的用于指定写 入配置信息的配置寄存器。
[19] 19.如权利要求 18所述的处理器结构, 其特征在于: 所述处理器还包括用于 选择数据输入或输出路径的第一数据通路, 所述第一数据通路包括数据输 入通路和输出选择单元, 所述数据输入通路包括数据输入交换开关和配置 寄存器, 所述输出选择单元包括数据输出转换开关和输出端口配置寄存器 , 所述第一算法数据控制部件还根据配置指令, 将配置信息写入指令中指 定的第一数据通路的配置寄存器, 所述数据输入通路根据其自身配置寄存 器中的配置信息控制数据输入交换开关的切换, 所述输出选择单元根据其 自身配置寄存器中的配置信息控制数据输出转换开关的切换。
[20] 20.如权利要求 17所述的处理器结构, 其特征在于: 所述第一算法数据控制 部件包括加载模块和通用寄存器, 所述加载模块用于从外部端口加载指令 或数据并存入通用寄存器, 所述配置信息为通用寄存器中的内容、 立即数 或数据存储器中的内容。
[21] 21.如权利要求 19所述的处理器结构, 其特征在于: 所述第一算法数据控制 部件还用于在处理器对数据流进行运算吋执行暂停指令, 控制处理器处于 暂停状态, 并使所述第一数据通路和 /或运算部件的配置信息保持不变, 直 到接收到恢复信息。
PCT/CN2008/073514 2008-09-28 2008-12-15 一种集成电路的处理器结构 WO2010034167A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/121,406 US20110271078A1 (en) 2008-09-28 2008-12-15 Processor structure of integrated circuit

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
CN200810216362.9 2008-09-28
CN200810216362A CN101685389B (zh) 2008-09-28 2008-09-28 一种处理器
CN200810216858.6 2008-10-20
CN200810216859.0 2008-10-20
CN2008102168590A CN101727434B (zh) 2008-10-20 2008-10-20 一种特定应用算法专用集成电路结构
CN2008102168586A CN101727433B (zh) 2008-10-20 2008-10-20 一种处理器结构

Publications (1)

Publication Number Publication Date
WO2010034167A1 true WO2010034167A1 (zh) 2010-04-01

Family

ID=42059279

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2008/073514 WO2010034167A1 (zh) 2008-09-28 2008-12-15 一种集成电路的处理器结构

Country Status (2)

Country Link
US (1) US20110271078A1 (zh)
WO (1) WO2010034167A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529571B2 (en) * 2011-10-05 2016-12-27 Telefonaktiebolaget Lm Ericsson (Publ) SIMD memory circuit and methodology to support upsampling, downsampling and transposition
GB2522661B (en) 2014-01-31 2021-03-31 Metaswitch Networks Ltd Context configuration
US11573834B2 (en) * 2019-08-22 2023-02-07 Micron Technology, Inc. Computational partition for a multi-threaded, self-scheduling reconfigurable computing fabric

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1659540A (zh) * 2002-06-03 2005-08-24 皇家飞利浦电子股份有限公司 可重配置集成电路
CN101136070A (zh) * 2007-10-18 2008-03-05 复旦大学 基于可重构架构的多协议射频标签读写器基带处理器
CN101211330A (zh) * 2006-12-25 2008-07-02 顾士平 可编程指令集计算机集成电路

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07111713B2 (ja) * 1988-02-24 1995-11-29 富士通株式会社 構成変更制御方式
US7007203B2 (en) * 2002-08-02 2006-02-28 Motorola, Inc. Error checking in a reconfigurable logic signal processor (RLSP)
US8478947B2 (en) * 2005-07-05 2013-07-02 Arm Limited Memory controller
US7664915B2 (en) * 2006-12-19 2010-02-16 Intel Corporation High performance raid-6 system architecture with pattern matching

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1659540A (zh) * 2002-06-03 2005-08-24 皇家飞利浦电子股份有限公司 可重配置集成电路
CN101211330A (zh) * 2006-12-25 2008-07-02 顾士平 可编程指令集计算机集成电路
CN101136070A (zh) * 2007-10-18 2008-03-05 复旦大学 基于可重构架构的多协议射频标签读写器基带处理器

Also Published As

Publication number Publication date
US20110271078A1 (en) 2011-11-03

Similar Documents

Publication Publication Date Title
CN109716318B (zh) 配置硬件在运行时期间多种模式下操作的装置和方法
US7200735B2 (en) High-performance hybrid processor with configurable execution units
JP4339245B2 (ja) スカラー/ベクトルプロセッサ
US4553203A (en) Easily schedulable horizontal computer
JP2016517570A (ja) マルチモードベクトル処理を提供するためのプログラム可能データ経路構成を有するベクトル処理エンジン、ならびに関連ベクトルプロセッサ、システム、および方法
JP2008537268A (ja) 可変精度相互接続を具えたデータ処理エレメントの配列
JP2000020305A (ja) カスタマイズ可能な命令セット・プロセッサの方法およびア―キテクチャ
US7383419B2 (en) Address generation unit for a processor
US20060265571A1 (en) Processor with different types of control units for jointly used resources
US8402251B2 (en) Selecting configuration memory address for execution circuit conditionally based on input address or computation result of preceding execution circuit as address
WO2010034167A1 (zh) 一种集成电路的处理器结构
US20150169494A1 (en) Data path configuration component, signal processing device and method therefor
JP4073721B2 (ja) データ処理装置
CN112486907A (zh) 可重构处理器上多层循环任务的硬件实现方法
US7917707B2 (en) Semiconductor device
US4811201A (en) Interconnect circuit
CN101727434B (zh) 一种特定应用算法专用集成电路结构
Abdelhamid et al. MITRACA: A next-gen heterogeneous architecture
JP2001202241A (ja) 実行パケットが2以上の取出しパケットをスパンするマイクロプロセッサを備えるディジタル処理システム及び同システムの操作方法
WO2010013427A1 (ja) 集積回路
CN101685389A (zh) 一种处理器结构
JP7250953B2 (ja) データ処理装置、及び人工知能チップ
JPH09305401A (ja) コンピュータ及びコンパイラ
CN117009287A (zh) 一种于弹性队列存储的动态可重构处理器
JP2003114797A (ja) データ処理装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08877037

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13121406

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 08877037

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 10/06/2011)

122 Ep: pct application non-entry in european phase

Ref document number: 08877037

Country of ref document: EP

Kind code of ref document: A1