一种可配置处理器的制作方法

文档序号:6597342阅读:187来源:国知局
专利名称:一种可配置处理器的制作方法
技术领域
本发明涉及集成电路设计领域。

背景技术
随着多媒体技术的发展,对集成电路的功能提出了新的要求,需要芯片可以高速 地处理流数据,能进行大量的、高速的加法、乘法、快速傅立叶变换、离散余弦变换等运算, 并可及时更新功能以面向快速变化的市场需求。传统通用处理器(CPU)和数字信号处理器(DSP)在功能上具有很高的灵活性,只 需要通过更新相应的应用程序就可以面向不同的应用,满足用户的需求。可是由于通用处 理器运算资源有限,对流数据的处理能力不足,吞吐率不高,限制了它的应用。即使采用多 核结构,其运算资源仍旧是个限制,同时其并行度受到应用程序的限制,运算资源的分配也 受到限制,吞吐率仍不理想。同通用处理器相比,数字信号处理器在运算资源上有所优化, 增加了部分运算单元,可是运算资源仍然有限。即便在某些芯片中,乘法器、加法器、移位器 等部件直接做到一个模块中,然后复用该模块,使得芯片拥有大量的运算资源,可是该芯片 的配置方法受到限制,灵活性不够。专用集成电路ASIC(Application Specific Integrated Circuit)芯片可以 很好的处理流数据,具有很高的吞吐率,可以满足大量的、高速的数据运算需求。可是 ASIC芯片的设计时间较长,设计成本较高,对于一款90nm的ASIC芯片,其非经常性费用 NRE(non-recurring engineering cost)可以很轻易的超过数百万美元。同时ASIC芯片 还缺乏灵活性,不能在市场需求变化时,轻易的改变功能,需要重新设计一款芯片。若在一 块ASIC芯片上实现不同模式的操作,比如面向不同的视频解码标准,它需要为不同的视频 解码标准设计不同的模块,集成在同一块芯片上,提高了成本。

发明内容
本发明针对现有技术的不足,提出一种可配置处理器,可以根据对处理器核的不 同配置,实现处理器与专用集成电路的无缝融合。本发明提出的处理器包括单数个或复数个通过核间的可配置互连结构连接的处 理器核。所述处理器核的输出或所述处理器核中的功能单元的输出可以通过可配置互连结 构直接作为同一个处理器核或其他处理器核的输入,或同一个处理器核或其他处理器核中 的单数个或复数个功能单元的输入。其中,单数或复数个处理器核中的功能单元可以是算术运算单元,也可以是逻辑 运算单元,包括乘、除法器,加法器,饱和处理器,移位器,比较器,逻辑运算器等。其可配置 互连结构主要包括对各功能器件输入操作数的控制,输出结果的控制,以及各个核的连接 和相关操作的执行顺序等。互联结构可以是硬连线,也可以是通过存储器进行数据暂存或 数据交换。对于具有所述核内可配置互连结构的单个处理器核,可以通过对所述核内可配置互连结构的配置,对所述处理器核中的不同功能单元的输入、输出进行连接,构成串行连 接、并行连接或串并混合连接成具有特定功能的连接结构。对于具有所述核间可配置互连结构的多核处理器,可以通过对所述核间可配置互 连结构的配置,对所述处理器中的不同处理器核的输入、输出进行连接,构成串行连接、并 行连接或串并混合连接成具有特定功能的连接结构。当具有所述核间可配置互连结构的多核处理器中的复数个处理器核中也具有所 述可配置互连结构时,可以通过对所述核间及核内的可配置互连结构的配置,对所述处理 器中的不同处理器核中的不同功能单元的输入、输出进行连接,构成串行连接、并行连接或 串并混合连接成具有特定功能的连接结构。当本发明所述处理器包括单数个处理器核时,所述处理器核内的可配置互连结构 由总线、多路选择器构成,用于连接同一个或不同功能单元的输入和输出;所述可配置互连 结构中还可以有寄存器,用于调整功能单元间数据传递的时序或时延;根据配置信息决定 多路选择器的选择信号及寄存器的写控制端,构成所述功能单元间的不同连接,从而实现 不同的功能。举例而言,所有功能单元的结果都可以被存入到相应的寄存器中,各寄存器的输 出全部或部分通过总线反馈到各运算器的输入选择器选出所述运算器进行下一流水线段 运算的数据来源;同时,所述寄存器的输出通过一个或多个输出多路选择器控制,选择最终 的输出结果。同时,这些寄存器的输出。各输入选择器的控制信号由配置信息决定。本发明所述的单个处理器核可以通过配置,使所述处理器中的功能单元间实现流 水线接力,即不同功能单元同时执行不同的运算,根据互连结构配置定义的连接关系,从前 一个功能单元获得所述功能单元新的输入数据,每个功能单元执行完毕后将结果交予后一 个功能单元作为新的输入数据,每个功能单元针对新的输入数据重复执行相同运算。本发明所述的处理器中还可以具有由指令控制的计数器,用于设置对特定单数条 或复数条指令的循环执行次数。由于各功能单元的结果都存入了相应的寄存器,而寄存器的输出又通过总线反馈 到了各单元的输入端,那么可以将所述寄存器视为微流水线的段间寄存器,将在两个相邻 的段间寄存器之间的功能单元视为流水线段,在相应控制信号的控制选择下实现各个功能 单元的有序连接,从而根据需要配置成一条密集运算的微流水线。传统处理器的流水线虽 然能够在同一时钟周期内执行复数个指令对应的不同流水线段的操作,但一次只可能完成 一个操作,而根据本发明技术方案,在一个时钟周期内不仅可以完成单一操作,而且能够根 据需要调用多个运算器件,同时执行多个操作。另外,对特定单数条或复数条指令的循环执行多次的情况,增设一个能被指令设 置的计数器。该计数器被指令赋值,设置对特定单数条或复数条指令的循环执行次数,技术 形式可以递增也可以是递减。通过这种方式以减少指令存储器中的相同重复指令。根据本发明所述技术方案,所述处理器核可以具有译码装置用于对输入的控制流 进行译码,再由译码得到的信息对互连结构进行配置;所述控制流可以是处理器支持的指 令;也可以通过配置,使所述处理器在功能上相当于现有的普通处理器。举例而言,所述处理器核可以有专门用于配置的指令,对所述指令进行译码可以 得到所述可配置互连结构中各个多路选择器控制端的选择信号。由所述选择信号选通多路选择器的特定输入,从而使处理器核中的功能单元通过互连结构形成一种连接关系。其中一个特例是,也可以将所述处理器核中的可配置互连结构配置成一种特殊的 形式,使所述处理器核与传统处理器在功能上完全一致。这种配置方法是普通处理器式的实现指令的正常执行,相关控制信息是由指令译 码直接产生,在该结构下,这条指令可以是如现有普通处理器执行的简单指令,如加法或乘 法,又或是比较跳转等;也可以是完成一系列特定操作的复合指令,如一条指令控制完成 连续乘加、饱和处理、移位运算,又或者进行加、比较、选择(ACQ运算等。当该类指令多次 反复执行时,采用能被指令设置的计数器,可以提高指令的存储密度,有效节约指令存储空 间。单个处理器核可以具有用于存储配置信息的存储器,由根据输入的控制流译码得 到的地址对所述存储器进行访问,并用得到的输出信息对互连结构进行配置。所述控制流 可以是处理器支持的指令。这种配置是类似专用集成电路(ASIC)式的执行过程,即为使互连结构和相关单 元实现特定功能,配置适当参数产生相应的控制信号,这些控制信号一经设定后,一段时间 内就不再发生变化,该互连结构和相关单元就反复执行同样的操作,即构成实现特定功能 的模块。这种方式可以通过读取配置信息得到相应的控制信号,即厂商将常用的若干种操 作的控制信息预先写入到只读存储器(ROM)或随机访问存储器(RAM)中,一并提供给用户。 程序运行时,每组控制信息参数由指令进行索引,即时从ROM中读取相应控制信息,实现对 各功能单元的控制,完成相应功能。采用这种方法时,所述可配置互连结构对用户而言是透 明的,能很好地保护厂商的知识产权。厂商或用户可以通过更换RAM中内容的方式进行产 品升级或功能更新。与直接译码产生控制信息相比,这是一种间接获取控制信息的配置方 式。用户可以通过更改所述RAM中的内容实现用户自定义指令。这种通过从存储器中读取控制信息进行配置的方法十分灵活,且同样可以高效实 现如连续乘加、饱和处理、移位运算,又或加、比较、选择(ACQ运算等。本发明所述处理器核中的部分功能单元可以根据配置信息与核中的其他功能单 元互连,构成具有特定功能的模块;其他未参与互连的资源,也可以根据需要在核内进行配 置,通过互连结构连接,构成具有相关功能的模块。举例而言,可以将处理器核中的加法器配置成地址产生器,将寄存器堆配置成栈, 由所述加法器产生的地址对所述寄存器堆实现的栈进行寻址。所述加法器可以是加法运算 单元中的加法器,也可以是指令计数器中的加法器,还可以是其他一切包含加法器的功能 单元中的加法器。在进行所述加法运算时,还可以根据配置反复使用较小位宽的加法器得 到较大位宽操作数的加法,如使用四次8位加法器以实现32位操作数加法运算。当本发明所述处理器包括复数个处理器核时,所述处理器核可以是现有的普通处 理器核;所述处理器核的输出可以通过所述可配置互连结构作为同一个或不同处理器核的 输入;所述可配置互连结构由总线、多路选择器构成,用于连接同一个或不同处理器核的输 入和输出;所述可配置互连结构中还可以有寄存器,用于调整处理器核间数据传递的时序 和时延;根据配置信息决定多路选择器的选择信号,构成处理器核间的不同连接,从而实现 不同的功能。
可以将所述普通处理器核视为本发明所述的功能单元,用同样的方法配置所述核 间的可配置互连结构即可实现处理器核间的连接,构成特定的功能。当本发明所述处理器包括复数个处理器核时,所述处理器核可以是包含复数个功 能单元及所述可配置互连结构的处理器核;所述处理器核的输出可以通过所述可配置互连 结构作为同一个或不同处理器核的输入;所述可配置互连结构由总线、多路选择器构成,用 于连接同一个或不同处理器核或功能单元的输入和输出;所述可配置互连结构中还可以有 寄存器,用于调整处理器核间数据传递的时序和时延;根据配置信息决定多路选择器的选 择信号,构成处理器核间的不同连接,从而实现不同的功能。当本发明所述处理器包括复数个具有可配置互连结构的处理器核时,所述处理器 核内的可配置互连结构由总线、多路选择器构成,用于连接同一个或不同功能单元的输入 和输出;不同处理器核中的功能单元也可以通过所述核间及核内的可配置互连结构连接; 所述可配置互连结构中还可以有寄存器,用于调整功能单元间数据传递的时序或时延;根 据配置信息决定多路选择器的选择信号及寄存器的写控制端,构成所述功能单元间的不同 连接,从而实现不同的功能。当需要实现的功能比较复杂,单个处理器核经配置后依然无法胜任时,可以将不 同处理器核中的功能单元连接成能够实现所述功能的连接结构。这样做还能充分提高多处 理器核结构中功能单元的利用率,比传统的多处理器核结构有更大的优势。多个可配置核,通过这种所述互连结构连接起来,可以作为一个整体,实现更为复 杂的功能,应用范围得到进一步拓展。根据本发明所述配置信息对复数个处理器核间的互连结构进行配置,可以使所述 复数个处理器核中的每一个实现完整功能的一部分,所述复数个处理器核共同实现完整功 能。多个处理器核通过配置,可以相应的实现相同或不同的功能,将这些核通过所述 互连结构连接起来后,对控制信息进行合理配置,准确控制数据流,就可以使它们协同实现 完整的特定功能,构成一个功能模块。这种功能可以是相对复杂的,如软件无线电领域中常 用的信号调制、有限滤波器(FIR),快速傅立叶变换(FFT)算法的实现等。也可能实现音视 频信号处理中会遇到的矩阵变换,矢量预测等。若干功能模块进一步连接,就可以实现完整 的功能如无线电信号从接收、处理、再发送的整个过程等。在任一单处理器核中的某一功能单元与其他核中的功能单元进行连接,并配置实 现特定功能的同时,该核中的其他资源如运算器或存储器等,也可以通过对控制信息进行 配置,实现相关或独立的功能,从而将硬件资源的闲置率降到最低。如寄存器堆和移位器等 可以配置成串并转换器,加法器也可以应用为相应的程序计数器等。本发明所述处理器中的处理器核可以是同构的,也可以是异构的;当处理器核同 构时,所述处理器由相同的不可配置的处理器核或具有所述可配置互连结构的可配置处理 器核构成;当处理器核异构时,所述处理器由不同的不可配置的处理器核或可配置处理器 核构成;所述不可配置的处理器核包括现有的普通处理器核。这使得在实现特定功能,如FFT时,某些核中可以含有多个某一类运算器,如乘法 器,加法器等,以增加单核运算能力;而另外一些核,可以根据具体情况只包含一些必要的 功能单元,如比较器等,用来实现其他相关功能,如数据流控制等。
本发明所述处理器中还可以包含用于暂存数据或交换数据的存储器,所述存储器 与处理器核通过硬连线或所述可配置互连结构连接。这样,处理器核或功能单元的执行结 构不必马上送到下一个处理器核或功能单元,可以在暂存后再次作为输入送到原处理器核 或功能单元,也可以等待其他处理器核或功能单元的执行结构一起送到下一个处理器核或 功能单元进行后续处理。根据本发明技术方案,可以通过复用缓存的方法实现所述用于暂存数据或交换数 据的存储器。这种连接方式使得处理器核的工作方式更为灵活,适应不同需求下的应用。硬连 线的方式,对于为完成固定功能的配置情况下,可以有效提高性能;而在性能要求不高的情 况下,采用存储器进行数据缓存,可以有效的节约硬件资源。用户可以根据具体需求对在两 种连接方式中进行选择。采用这种利用存储器暂存数据和核间数据交换的结构,可以通过 一级或多级单功能模块实现多点FFT等算法。根据本发明所述技术方案,实现完整功能的复数个处理器核可以有各自来源的配 置信息,也可以共用同一个来源的配置信息;所述配置信息可以是对控制流译码而得的,也 可以是从存储器中读取得到的。所述根据译码得到配置信息和从存储器中读到配置信息的 方法与本发明所述的具有可配置互连结构的单处理器核得到配置信息的方法相同。根据本发明所述技术方案,可以通过配置,使单数个或复数个处理器核以处理器 的模式工作,其他处理器核构成单数个或复数个具有特定功能的模块,通过可配置互连结 构传递数据,实现片上系统(SOC)的功能。这种结构中,被配置成在功能上相当于普通处理器的核,具有较高的灵活性,适合 于运行软件程序及处理控制信息等,类似于普通片上系统中的处理器。被配置成实现特定 功能的单数或复数个核,能形成大规模的运算阵列,结构固定,具有较大的带宽和强大的运 算能力,类似于普通片上系统中的硬连线部分可以高效的完成大量的运算,如FFT、矩阵乘 法等。本发明所述的可配置互连结构则类似于普通片上系统中的总线。本发明所述的处理器可以根据配置信息的变化实时地改变,其中由功能单元或处 理器核组成的模块结构,从而实时改变所述处理器的功能。举例而言,可以将配置信息按行存储在RAM中,每行存储了一个时钟周期内所述 可配置互连结构对应的配置信息。所述处理器运行时,在每个时钟周期都能读出一行配置 信息并改变可配置互连结构的实际连接关系,从而实现处理器功能的实时可变。配置信息可以根据当前指令功能实时配置各处理器核,使其功能能够根据需要而 随时改变,设计上更具有灵活性。有益效果本专利提出的处理器的一种可配置核,该核内还有多个功能单元,通过对控制信 息的配置,可以将多个功能单元进行有序的连接,形成局部流水线(minipipeline),使多个 功能单元可以同时参与运算,大大提高了资源的利用率。这种核内的局部流水线结构,在执 行一系列连续操作或同一操作连续执行多次的情况时,可以有效的提高处理器性能。此外多核可配置处理器核结构,可以通过配置实现用户所需要的功能,同时随时 确定或改变配置方式及控制信息,十分灵活。互连结构使处理器在含有多个简单或可配置 核的情况下,可以高效地协同工作,实现复杂功能。


虽然该发明可以以多种形式的修改和替换来扩展,说明书中也列出了一些具体的 实施图例并进行详细阐述。应当理解的是,发明者的出发点不是将该发明限于所阐述的特 定实施例,正相反,发明者的出发点在于保护所有基于由本权利声明定义的精神或范围内 进行的改进、等效转换和修改。图1是传统的处理器中的算术逻辑单元(ALU)。图2是根据本发明技术方案实现的算术逻辑单元。图3是根据本发明技术方案进行连续运算操作的等效流水线结构图。图4是根据本发明技术方案进行比较选择操作的等效流水线结构图。图5是本发明所述处理器中算术逻辑单元与其他器件之间的协同及模式转换的 实施例。图6是存储器中所述配置信息的格式示例。图7是根据本发明技术方案通过配置所述可配置互连结构实现的逻辑运算单元 功能扩展的实施例。图8(a)是共享存储单元的多处理器核通过本发明所述可配置互连结构直接连接 的示意图。图8(b)是通过交叉开关共享多个存储单元块的多处理器核通过本发明所述可配 置互连结构直接连接的示意图。图9是根据本发明技术方案将多核处理器复数个核中的算术逻辑单元连接成可 实现如快速傅立叶变换(FFT)等运算功能的结构图。图10是将两操作数乘法器扩展为三操作数乘法器的一种方法的实施例。图11是根据本发明技术方案将寄存器堆配置成先入先出队列缓存器(FIFO)的实 施例。图12是根据本发明技术方案将具有独立时钟的移位寄存器配置成具有串/并行 数据转换功能模块的实施例。图13(a)是根据本发明技术方案将多核处理器复数个核中的算术逻辑单元连接 成可实现完成一个复数FFT蝶形运算的实施例。图13 (b)是一个8点的FFT蝶形运算的示意图。图13(c)是根据本发明技术方案采用η个图13(a)结构,通过存储器连接成可实 现2η个点的FFT运算的实施例。图13(d)是根据本发明技术方案将多核处理器复数个核中的算术逻辑单元连接 成可实现乘积累加运算实施例,代表算法DCT,DHT,向量乘法,以及图形处理中的若干算法等。图13(e)是根据本发明技术方案将多核处理器复数个核中的算术逻辑单元连接 成可实现2阶矩阵乘法的实施例。图13(f)是根据本发明技术方案将多核处理器复数个核中的算术逻辑单元连接 成可实现FIR的基本运算单元的实施例。图13(g)是根据本发明技术方案将多核处理器复数个核中的算术逻辑单元连接成可实现用一个基本运算模块来实现矩阵变换的实施例。图13(h)是根据本发明技术方案实现功能模块之间横向和纵向的无缝连接的实 施例。
具体实施例方式图1是传统的处理器中的算术逻辑单元。图中器件(100、101、111、11;3)为段间寄 存器,器件(102、103、110、114)为多路选择器,选择输入到运算器的操作数或输出的最终 结果,器件(104、105、106、107、108、109)为所述运算单元中的各种运算器,分别为乘法器、 加/减法器、移位器、逻辑运算器、饱和处理器(Mturation)、前导零检测器和比较器。当 然,在特定设计中,可以根据需要添加所需的或删除不必要的运算器件。另外,总线(200、 201)为从段间寄存器(100、101)(—般为寄存器堆)中取得的操作数,总线(208、209)是 上一操作结果的数据旁路(Bypass),通过器件(102、103)选择得到实际参与运算的操作数 004、205),各运算器运算结果通过多路选择器(110)选择得到本周期运算最终结果,可以 选择是否经过饱和处理,最终结果(210)从多路选择器(114)选择输出。通常,前导零检测 器的结果(211)和比较器的结果012)不作为运算结果输出,而多用于参与控制信号的产 生逻辑,逻辑运算的结果(21 也可以有同样的应用。各多路选择器的控制信号(202、203、 206,207)根据处理器指令译码及相关逻辑产生。图1所述结构的主要特点是一条指令只完成一个操作,即算术逻辑单元在每时钟 周期只有一个运算器在进行有效运算,且运算单元的操作数来源固定,始终从寄存器堆中 或上一操作结果通过数据旁路取得。图2是根据本发明技术方案实现的算术逻辑单元。图中器件(321、322、323、324、 325、326、327)为段间寄存器,器件(303、304、305、306、307、308、309、310、311、312、313、 328)为多路选择器,用于选择输入到运算器的操作数或输出的最终结果。器件(314、315、 316、317、318、319、320)为运算器,与图1同。总线(400,401,402)为从段间寄存器(一般 为寄存器堆)中取得的操作数,总线(400)上的操作数定义为系数,即变化不频繁的输入操 作数。总线(403、404、405、406、407)分别为各运算器运算结果,根据419选择经多路选择 器(328)得到最终输出结果020),同时又可以通过数据旁路连到了各运算器件的输入多 路选择器上,可以成为下一个周期的操作数。同样,前导零检测器的结果(420)和比较器的 结果G21),以及逻辑运算结果007)的应用情况,也与图1中所述的单元情况相同。信号 线(408、409、410、411、412、413、414、415、416、417、418)分别控制相应的多路选择器(303、 304、305、306、307、308、309、310、311、312、313),选择运算器的输入,可以由配置信息决定 或由控制单元通过指令译码及相关逻辑产生。图2中的处理单元,其结构特点是各运算器的结果都通过数据旁路连接到输入选 择器,这使得各运算模块有可能并行的执行相关运算。在确保实现传统算术逻辑单元功能 的基础上,可以通过配置,提高运算器的利用率,并能调整各运算器在流水线中的次序,使 该算术逻辑单元较传统相比,功能更为灵活和强大。图3是根据本发明技术方案进行连续运算操作的等效流水线结构图。以一串常见 的运算操作为例操作数A与系数C相乘,乘积经过移位处理后与操作数B求和,再将该结 果进行饱和操作后输出。该例中一共涉及四个运算器乘法器(314)、移位器(315)、加法器(316)和饱和处理器(317),相关运算串行完成。因此,可以通过配置控制信号(408、409、 410、411、412、413、414、415、416、417、418、419),使得各多路选择器(303、304、305、306、 307,308,328)的输出分别选择为操作数001)、操作数000)、乘法器旁路结果003)、移位 器旁路结果(404)、操作数(402)、加法器旁路结果(405)、饱和处理结果(406)。通过这种方 式,该算术逻辑单元被配置成了一条特定的流水线,每个时钟周期都可以在总线(300、301、 302)上输入一组新的操作数,并且得到先前输入操作数的运算结果G20)。在本实施例中, 还可以配置前导零检测器与乘法器并行运算,其操作数也为操作数G01),其检测运算结果 可以送到移位器(31 来确定乘法结果的移位量。此外,若把移位和饱和处理的相关流水 段去掉,而保留由乘法器和加法器组成的流水线,那么就可以实现连续的乘加操作,这是各 种数字信号处理(DSP)芯片中广泛应用的最基本操作。图4是根据本发明技术方案进行比较选择操作的等效流水线结构图。本实施例 中进行的操作是对两操作数进行比较,根据比较结果输出其中某一个操作数。本实施例的 实现可以通过对乘法器(314),逻辑运算器(318)和比较器(320)的配置来实现。具体方 法是通过配置信号(417、418)选择比较器(320)的两个输入操作数分别为操作数(401) 和操作数G02);通过配置信号(409、41幻选择乘法器(314)和逻辑运算器(318)的一端 输入分别为操作数(401)和操作数002),再通过配置信号(408)经多路选择器(304)选 择乘法器(314)的另一个输入为参数000),此时将参数(400)信号置为‘1’,同时设置逻 辑运算器执行同逻辑‘1’的与操作。那么,存入寄存器(321)中乘法操作结果即为操作数 001),存入寄存器(325)中的逻辑运算结果即为操作数002),而比较器的结果则存入了 寄存器(327),可以将寄存器(327)的输出(42 经过相关运算后形成控制信号019),选 择寄存器(321)的输出(403)或寄存器(325)的输出007),从而实现了此功能。在这一过 程中,乘法器(314)和逻辑运算器(318)实现的是传递数据的功能,通过合理配置输入,加 法器(316)也可以实现同样的功能,这需要合理使用运算器资源,由用户根据需求而定。维 特比(Viterbi)算法中有关比较和选择的操作,就可以通过这种方式来实现。在这个过程 中,三个运算单元并行执行了相关操作,提高了整个运算的效率。与此同理,运算器(315、 316,317)也可以根据需要参与到并行运算中,并由相关控制信息经相关逻辑,由控制信号 (419)控制选择得到所需结果(420)。图5是本发明所述处理器中算术逻辑单元与其他器件之间的协同及模式转换的 实施例。本发明所述处理器中的算术逻辑单元除了可以与处理器中的寄存器堆配合使用 外,还可以与其他资源,如程序计数器(PC)等相互连接,配合使用。当被算术逻辑单元所处 理的数据来源不限于寄存器堆(即可以从其他途径获取数据)时,如果其带宽能相应增加, 那么可以将运算器(314、315、316、317)配置成用于如图3结构的数据处理单元,而将运算 器(319、320)的工作方式配置成用于产生相关的控制信号。逻辑运算器件(318)则可以视 需要而定,可以用于配置成用于数据处理,也可以用于控制信号产生。此时,两组模块间并 行工作。产生控制信号的模块组,该控制信号可以对数据处理的模块组的工作进行调整,调 整内容包括启动或中断器件工作,流水线控制,以及功能的重新配置等。仍以图3中的实 施例来进行说明,当该单元处于图中所示的工作状态时,可以将器件(318、319、320)配置 成用于产生控制信号的功能。此时若相应输入数据的逻辑运算或比较结果触发了某个状态 控制条件,并对寻址空间进行了重新定位,此时就可以产生相关控制信号,图中信号(423、424,425)为与程序计数器相关的信号,分别为分支判决信号,偏移量值,以及计算所得的下 一地址。控制逻辑根据读取到的配置信息控制流水线和数据流,避免数据冲突和资源冲突, 使其能顺利进入另一种运行方式或工作状态。图6是存储器中所述配置信息的格式示例。图中存储器(600)可以是只读存储器 (ROM)单元,也可以是随机访问存储器(RAM)单元。厂商将常用的若干种操作的控制信息预 先写入到只读存储器(ROM)或随机访问存储器(RAM)中,提供给用户。厂商或用户可以通 过更换RAM中内容的方式进行产品升级或功能更新。同时,用户可以通过更改RAM中的内 容实现用户自定义指令。举例来说,在相关的一组存储器(601)中预置了本发明所述处理 器中算术逻辑单元在某种工作状态下所需的所有控制信息。该工作状态下,算术逻辑单元 可以连续完成加、比较、饱和处理、乘法以及选择输出操作。在进行该操作时,由指令译码产 生的相关信号(60 进行地址索引,从所述存储器中获取特定的配置控制信号,其中包括 了图 3、图 4 中的控制信号(408、409、410、411、412、413、414、415、416、417、418、419),使该 算术逻辑单元内部构成特定的局部流水线(minipipeline),从而进入到相应的工作状态。图7是根据本发明技术方案通过配置所述可配置互连结构实现的逻辑运算器功 能扩展的实施例。算术逻辑单元中的逻辑运算器(318)可以根据需要进行功能扩展,在本 实施例中,将一般的32位逻辑运算器分为4个字节(byte)完成,逻辑运算器(800)为完成 1个字节逻辑运算、产生8位(bit)结果的逻辑运算器。将4个8位的结果分别经过逻辑处 理单元(801)进行特定处理,每个逻辑处理单元(801)输出对应1个字节的1位的结果,共 输出4个1位结果(804、805、806、807)。同理,所述结果(804)和结果(805),结果(806) 和结果(807)可以分别经过逻辑处理单元(80 进行特定处理,产生相应控制信号(808、 809),这两个信号各对应1个半字(Halfword)。而控制信号(808、809)可以再经过逻辑处 理单元(802),形成对应于1个字(Word)的控制信号(810)。这些结果都可与参与相关逻 辑运算,产生相应控制信号。其中,逻辑处理单元(801)和逻辑处理单元(80 都是可配置 的,具体运算依需要而定。图8(a)是共享存储单元的多处理器核通过本发明所述可配置互连结构直接连接 的示意图。目前多核处理器体系结构中,核与核之间的连接都是通过存储器(如二级缓存, 内存等)实现的,即核与核之间共享一块存储器或通过交叉开关共享几块存储器。这种连 接方式,决定了核间的数据交换途径只能通过存储器,这使得处理器在指令形式和功能上 都受到了一定的局限。根据本发明技术方案,通过所述可配置互连结构可以将相邻处理器 核间的一个和多个器件直接连接起来,形成一组或多组核间总线形式,使得这些被连接器 件中的数据流,可以不通过核外围的存储器而直接进行交换和处理。通过这样的方式,使得 特定运算器件的规模和功能得以扩展,从而增强了多核处理器的功能。在本实施例中,通过 可配置互连结构实现了共享存储单元的多处理器核间的直接连接,其中总线(1000)就是 本专利所发明的总线。图中结构可以进行横向和纵向的重复而实现拓扑。图8(b)是通过交叉开关共享多个存储单元块的多处理器核通过本发明所述可配 置互连结构直接连接的示意图。本实施例中的结构与图8(a)的实施例基本相同,唯一的差 别在于本实施例通过可配置互连结构实现的是通过交叉开关共享多个存储单元块的多处 理器核间的直接连接,其中总线(1000)就是本专利所发明的总线。图9是根据本发明技术方案将多核处理器复数个核中的算术逻辑单元连接成可实现如快速傅立叶变换等运算功能的结构图。图中结构(500、501、502、503)所含器件各存 在于一个独立的处理器核中,假设每个处理器核都包含所述器件,则此四个虚线框中器件 所实现的功能都能由各自所在核中的相应处理单元通过配置核内可配置互连结构形成,再 通过对核间的可配置互连结构的配置可以将这些多核处理器中的处理单元连接起来,得到 如图所示的结构。图中的多路选择器输入端并未将所有可能情况表示完整,其具体输入可 以根据实际需要进行连接。该结构可以实现诸如快速傅立叶变换、有限滤波器(FIR)和矩 阵乘法等在带宽和速度上有较高要求的数字信号处理算法。这里首先对乘法器的结构加以 补充说明目前乘法器结构大多可以实现三操作数的乘加/减运算,可以完成A士BXC的 操作,通过对部分积的逐级压缩得到两个伪和,乘法结果由二者相加得到。而图2所示的处 理单元结构中,为方便叙述专利原理,乘法器输入为两个操作数,将其改进为三操作数乘法 器时,只需对第二操作数的输入端采用多路选择器进行处理,即可完成常用的操作数乘以 系数加操作数,或操作数相乘的乘法操作。此外,在实际应用中,为增加带宽且考虑到乘法 器的具体使用情况,图2结构中的乘法结果(403)可以与由多路选择器(3 )的输出结果 (420)共同作为该处理单元的运算结果并行输出。图10是将两操作数乘法器改进为三操作数乘法器的实施例。图中操作数(1001) 和操作数(1002)为普通两操作数乘法器的两个操作数输入,操作数(1003)为改进后的三 操作数乘法器的第三个操作数输入。在本实施例中,操作数(1001)为必定参与乘法运算的 操作数,操作数(100 和操作数(100 通过多路选择器(1004)选择可以得到参与乘法运 算的第二个操作数,操作数(100 和定值‘0’通过多路选择器(100 选择可以得到参与 乘法运算的第三个操作数,乘法单元(1006)为能支持乘法及加法的乘法器。根据本实施例 提出的结构即可实现图9中操作数乘以系数加操作数,或操作数相乘的乘法操作。图11是根据本发明技术方案将寄存器堆配置成先入先出队列缓存器(FIFO)的实 施例。寄存器堆由普通的寄存器堆单元(700)构成,只需将其逻辑进行如图所示扩展,即 可实现一个或几个FIFO,计数器单元(701)可由闲置的任一加法器(ALU或PC中)通过配 置得到,初始化信息(705、706和707)被送入计数器单元,计数器输出值(708、709和710) 用于FIFO寻址,并且都输入到比较器(714),由比较器处理之间相互比较的逻辑,并将结果 (715)输出,参与计数器控制信号的产生逻辑。多路选择器(702、703和704)选择出最终寻 址信号,其中输出(702和70 为读操作地址,输出(704)为写操作地址,分别受各自的控 制信号(711、712和713)控制。图12是根据本发明技术方案将具有独立时钟的移位寄存器配置用于串/并行数 据转换的实施例。图中移位寄存器单元O000)可以作为一个基本运算单元使用,一个多路 选择器O001)有并行32bit输入数据000 和并行32bit输出数据(2003),移位寄存器 单元O000)有串行的Ibit输入Q004)和输出000 。平移一位后的数据可以通 过多路选择器O001)进行选择输入到移位寄存器单元(2000),从而实现移位功能。在进行 串/并转换时,数据在时钟控制下由输入O004)送入移位寄存器单元O000),由平移一位 后的数据输出;而在进行并/串转换时,由并行32bit输入数据000 输入,串行 的Ibit输出000 输出,通过多路选择器O001)选择并行32bit输出数据的移 位结果实现移位功能。图13(a)是根据本发明技术方案将多核处理器复数个核中的算术逻辑单元连接成可实现完成一个复数FFT蝶形运算的实施例。一次蝶形运算中包含有一个乘法操作和2 个加减法操作。其操作数都是复数,即两个操作数分别包括实部和虚部。可表示如下由上式可以(3) (4) (5) (6)看出,实际运算包含4个乘法Re (B) Re (W)、Im(B)Ln(W)、 Re (B) Im (W)、Im (B) Re (W),以及4个加法、4个减法操作。完成该蝶形运算,需要4级流水线操 作,存储器(9101至9112)为相应的段间存储器。数据(9603和9604)与(3) (4) (5) (6)中 的Re (B)和Ln(B)相对应,分别由多路选择器(9402、9403、9409和9410)通过控制逻辑选出 参与运算。输入端Cl和C2均为Re (W),而C3和C4则分别为Hm(W)和。图9a中由 选择器(9404、9405、9406和9407)选出的结果是作为乘法器中的加法操作数(9607、9608、 9609和9610)进行运算的,其中操作数(9607和9608)为‘0,,而操作数(9609和9610)分 别为段间存储器(9105和9107)中保存的上一级的乘法结果,这样由图13(a)中结构和连 接关系可知乘法器(9300、9301、9302 和 9303)分别完成了 0+Re (B) Re (W)、0+Im(B) Re (W)、 [Re (B) Re (W)J-Im(B) Im(W)和[Im(B) Re (W) ]+Re (B) Re (W)的操作。那么,通过选择器(9412 和9413)选择并存入段间存储器(9109和9110)中的结果则分别对应了 (3) (4) (5) (6)中 的 Re (B) Re (W) -Im (B) Im (W)和 Re (B) Im (W) +Im (B) Re (W),即 Re (Bff)和 Im (Bff)的伪和形式。 通过乘法器(9302和930 中的加法器将两组伪和分别相加,其输出结果(9615和9616)则 分别对应Re (BW)和Lii(BW)。根据连接方式的不同,在下一级或返回原级进行下一步运算的 时候,输入端X和Z应分别对应上一级运算的得到结果Re (Bff)和M(BW),由选择器(9400 和9401)控制选出,并根据本级具体运算通过加法器(9200和9201)完成相应的加减法操 作,此时输入端Y和Z分别对应(3) (4) (5) (6)中的Re(A)和Im(A)0对于一个2n个点的FFT运算来说,它包含IiXZlri个蝶形运算,可以通过本发明技 术方案中提出的可配置互连结构,对图13(a)所示的功能模块进行连接来实现,其方式可 以是采用IiXZn-1个图13(a)所示功能模块相连接形成的阵列来实现,也可以通过复用η个 图13(a)所示功能模块的方式来实现。举例来说,图13(b)是一个23即8点的FFT蝶形运算的示意图。该运算可分3级 来完成,其中每级包含4个蝶形运算,共12个蝶形运算。采用所述第一种方式,将3Χ23—1 =12个图13(a)所示功能模块按图13(b)所示结构进行连接即可实现。而图13(c)是根 据本发明技术方案采用3个图13(a)所示功能模块实现一个8点的FFT运算的实施例。该 结构将3个图13 (a)所示的功能模块通过存储单元(如级间RAM,或RF等)进行纵向连接, 采用一定顺序的寻址方式,使3个功能模块分别完成每一级中的4个蝶形运算。每级的运 算结果按一定顺序存入存储单元中,下一级功能模块也按一定的顺序读取使用。通过对数 据流的合理控制,使每级间数据传输得以匹配,就可以仅通过3个图13(a)所示功能模块实 现一个8点的FFT运算。在特定的情况下,也可以通过仅复用一个图13(a)所示功能模块, 来实现上述FFT运算。A,= A+BW = Re (A) +Re (Bff) + j [Im (A) +Im (Bff)]B,= A-Bff = Re (A) -Re (Bff) +j [Im(A) -Im(Bff)]Re (A,)= Re (A) + [Re (B) Re (W) -Im (B) Im (W)]
Im (A' ) = Im (A' ) + [Re (B) Im (W) +Im (B) Re (W)]Re (B,)= Re (A) - [Re (B) Re (W) -Im (B) Im (W)]Im(B,)= Im(A' ) -[Re (B) Im(W) +Im(B) Re (W)]
(1) ⑵
⑶ ⑷
(5)
(6)
图13(d)是根据本发明技术方案将多核处理器复数个核中的算术逻辑单元连接 成可实现乘积累加运算实施例,代表算法DCT,DHT,向量乘法,以及图形处理中的若干算法 等。这类运算具有统一的表达式y (η) =Σ coeff(i)X(i),其中coeff(i)是系数,当运算方 式确定的情况下,coeff(i)是相对确定的,即在较长的一段运算时间内,它是保持不变的。
以DHT变换为例,其变换公式为幻
权利要求
1.一种可配置处理器,其特征在于所述处理器包括单数个或复数个通过核间的可配置 互连结构连接的处理器核,所述处理器核的输出或所述处理器核中的功能单元的输出可以 通过可配置互连结构直接作为同一个处理器核或其他处理器核的输入,或同一个处理器核 或其他处理器核中的单数个或复数个功能单元的输入。
2.根据权利要求1所述的装置,其特征在于当所述处理器包括单数个处理器核时,所 述处理器核内的可配置互连结构由总线、多路选择器构成,用于连接同一个或不同功能单 元的输入和输出;所述可配置互连结构中还可以有寄存器,用于调整功能单元间数据传递 的时序或时延;根据配置信息决定多路选择器的选择信号及寄存器的写控制端,构成所述 功能单元间的不同连接,从而实现不同的功能。
3.根据权利要求2所述的装置,其特征在于可以通过配置,使所述处理器中的功能单 元间实现流水线接力,即不同功能单元同时执行不同的运算,根据互连结构配置定义的连 接关系,从前一个功能单元获得所述功能单元新的输入数据,每个功能单元执行完毕后将 结果交予后一个功能单元作为新的输入数据,每个功能单元针对新的输入数据重复执行相 同运算。
4.根据权利要求2所述的装置,其特征在于所述处理器中还可以具有由指令控制的计 数器,用于设置对特定单数条或复数条指令的循环执行次数。
5.根据权利要求2、3所述的装置,其特征在于可以具有译码装置用于对输入的控制流 进行译码,再由译码得到的信息对互连结构进行配置;所述控制流可以是处理器支持的指 令。
6.根据权利要求2、3所述的装置,其特征在于可以具有用于存储配置信息的存储器, 由根据输入的控制流译码得到的地址对所述存储器进行访问,并用得到的输出信息对互连 结构进行配置;所述控制流可以是处理器支持的指令。
7.根据权利要求1所述的装置,其特征在于当所述处理器包括复数个处理器核时,所 述处理器核可以是现有的普通处理器核;所述处理器核的输出可以通过所述可配置互连结 构作为同一个或不同处理器核的输入;所述可配置互连结构由总线、多路选择器构成,用于 连接同一个或不同处理器核的输入和输出;所述可配置互连结构中还可以有寄存器,用于 调整处理器核间数据传递的时序和时延;根据配置信息决定多路选择器的选择信号,构成 处理器核间的不同连接,从而实现不同的功能。
8.根据权利要求1所述的装置,其特征在于当所述处理器包括复数个处理器核时,所 述处理器核可以是包含复数个功能单元及所述可配置互连结构的处理器核;所述处理器核 的输出可以通过所述可配置互连结构作为同一个或不同处理器核的输入;所述可配置互连 结构由总线、多路选择器构成,用于连接同一个或不同处理器核或功能单元的输入和输出; 所述可配置互连结构中还可以有寄存器,用于调整处理器核间数据传递的时序和时延;根 据配置信息决定多路选择器的选择信号,构成处理器核间的不同连接,从而实现不同的功 能。
9.根据权利要求8所述的装置,其特征在于所述处理器核内的可配置互连结构由总 线、多路选择器构成,用于连接同一个或不同功能单元的输入和输出;不同处理器核中的功 能单元也可以通过所述核间及核内的可配置互连结构连接;所述可配置互连结构中还可以 有寄存器,用于调整功能单元间数据传递的时序或时延;根据配置信息决定多路选择器的选择信号及寄存器的写控制端,构成所述功能单元间的不同连接,从而实现不同的功能。
10.根据权利要求7、8所述的装置,其特征在于根据配置信息对复数个处理器核间的 互连结构进行配置,可以使所述复数个处理器核中的每一个实现完整功能的一部分,所述 复数个处理器核共同实现完整功能。
11.根据权利要求7、8所述的装置,其特征在于所述处理器中的处理器核可以是同构 的,也可以是异构的;当处理器核同构时,所述处理器由相同的不可配置的处理器核或具有 所述可配置互连结构的可配置处理器核构成;当处理器核异构时,所述处理器由不同的不 可配置的处理器核或可配置处理器核构成;所述不可配置的处理器核包括现有的普通处理 器核。
12.根据权利要求7、8所述的装置,其特征在于所述处理器中还可以包含用于暂存数 据或交换数据的存储器,所述存储器与处理器核通过硬连线或所述可配置互连结构连接; 可以通过复用缓存的方法实现所述存储器。
13.根据权利要求7、8所述的装置,其特征在于实现完整功能的复数个处理器核可以 有各自来源的配置信息,也可以共用同一个来源的配置信息;所述配置信息可以是对控制 流译码而得的,也可以是从存储器中读取得到的。
14.根据权利要求7、8所述的装置,其特征在于可以通过配置,使单数个或复数个处理 器核以处理器的模式工作,其他处理器核构成单数个或复数个具有特定功能的模块,通过 可配置互连结构传递数据,实现片上系统(SOC)的功能。
15.根据权利要求2、7、8所述的装置,其特征在于可以根据配置信息的变化实时地改 变处理器中由功能单元或处理器核组成的模块结构,从而实时改变所述处理器的功能。
全文摘要
一种可配置处理器,能根据配置有序连接功能单元,形成局部流水线,使多个功能单元可以同时参与运算以实现特定功能,能提高资源的利用率。此外多核可配置处理器核结构,可以通过配置实现用户所需要的功能,同时随时确定或改变配置方式及控制信息,十分灵活。互连结构使处理器在含有多个简单或可配置核的情况下,可以高效地协同工作,实现复杂功能。
文档编号G06F15/76GK102122275SQ20101002260
公开日2011年7月13日 申请日期2010年1月8日 优先权日2010年1月8日
发明者任浩琪, 林正浩, 赵忠民 申请人:上海芯豪微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1