[go: up one dir, main page]

CN101111834A - 动态可重配置处理器 - Google Patents

动态可重配置处理器 Download PDF

Info

Publication number
CN101111834A
CN101111834A CNA200580047476XA CN200580047476A CN101111834A CN 101111834 A CN101111834 A CN 101111834A CN A200580047476X A CNA200580047476X A CN A200580047476XA CN 200580047476 A CN200580047476 A CN 200580047476A CN 101111834 A CN101111834 A CN 101111834A
Authority
CN
China
Prior art keywords
instructions
custom
reconfigurable
logic
instruction
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CNA200580047476XA
Other languages
English (en)
Inventor
村上和彰
首藤真
鲁维克·高思尔
松尾拓真
长谷部铁也
菊地修一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyushu University NUC
Original Assignee
Tokyo Electron Ltd
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
Application filed by Tokyo Electron Ltd filed Critical Tokyo Electron Ltd
Publication of CN101111834A publication Critical patent/CN101111834A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30181Instruction operation extension or modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Logic Circuits (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明提供了一种用于从用高级语言描述的应用程序生成用于执行应用程序的处理器的指令集体系结构(此后称为“ISA”)和一系列逻辑电路配置信息的技术。本发明还涉及可以通过向动态逻辑电路可重配置处理器应用所生成的ISA和逻辑电路配置信息来在短时间内设计、开发和制造专用定制LSI的定制LSI开发平台技术。此外,本发明还公开了一种动态可重配置处理器,其可使用所生成的逻辑电路配置信息而被重配置。本发明还公开了相关联的方法。

Description

动态可重配置处理器
技术领域
这里公开的实施例涉及逻辑电路开发,更具体而言涉及用于设计、开发和制造专用定制LSI的技术。
背景技术
在使用包括专用集成电路(ASIC)的定制LSI的领域,为了缩短改变规格或开发产品的周期,诸如现场可编程门阵列(FPGA)或可编程逻辑器件(PLD)等能够自由改变处理器中的逻辑电路的配置的可编程逻辑电路已被广泛使用。但是,由于定制LSI所需的逻辑电路的配置变得复杂并且其规模增大,出现了在FPGA或PLD中必须提供多个算术逻辑单元(ALU)的问题。
在大规模逻辑电路中,考虑到所有组件不是总在工作,因此日本专利申请JP-A No.2003-198362和JP-A No.2003-029969中建议了可以动态重配置过程的逻辑电路的动态逻辑电路可重配置过程。
在设计和开发定制LSI的系统时,必须确定哪些应用由硬件实现,哪些应用由软件实现。如果所有应用都可由硬件实现,则可以实现高操作速度和低功耗。
但是,诸如与芯片制造、设计周期和硬件设计者等有关的设计和开发成本增加了。相反,如果在通用处理器上操作的软件实现所有应用,则很难达到所需的系统性能,但是设计和开发成本降低了。软件开发者开发定制LSI时的一个问题是开发者通常使用诸如“Verilog-HDL”或“VHDL”等软件开发者一般不熟悉的硬件描述语言(HDL)来描述定制LSI的规格。一般需要大量时间来准备所述HDL的代码,因为该代码具有大量描述。此外,通常需要很长时间来执行代码的编译或仿真。
诸如C语言等高度抽象的高级语言或建模工具主要用于检查应用于LSI的算法。但是,如果逻辑电路是使用以高级语言创建的算法准备的,则被检查的算法应当用HDL重写,从而准备时间增加。此外,一个潜在问题在于一旦用HDL创建了逻辑电路配置,就很难改变算法。另一个问题在于软件开发者通常必须考虑操作合成步骤中的特定硬件限制。
发明内容
本发明公开了从用高级语言描述的应用程序生成用于执行应用程序的处理器的指令集体系结构(此后称为“ISA”)和一系列逻辑电路配置信息的技术。本发明还涉及可以通过向动态逻辑电路可重配置处理器应用所生成的ISA和逻辑电路配置信息来在短时间内设计、开发和制造专用定制LSI的定制LSI开发平台技术。此外,本发明还公开了一种动态可重配置处理器,其可使用所生成的逻辑电路配置信息而被重配置。
本发明的目的在于提供定制LSI开发平台,其中当软件开发者在用例如C语言这样的高级语言准备应用程序时,指令集体系结构(ISA)和逻辑电路配置信息被基于所创建的应用程序自动生成。所生成的ISA和逻辑电路配置信息随后被自动应用于动态可重配置逻辑电路处理器。本发明的另一目的在于提供从用高级语言创建的应用程序生成ISA和逻辑电路配置信息的软件模块,以及所生成的ISA和逻辑电路配置信息被自动应用于的动态逻辑电路可重配置处理器。本发明的另一目的在于提供用于从用高级语言创建的应用程序生成ISA和逻辑电路配置信息的程序。
根据本发明的第一方面,提供了一种包括处理器和软件模块的定制LSI开发平台。该处理器是动态逻辑电路可重配置处理器。软件模块包括:ISA生成器,用于生成处理器的ISA;以及逻辑电路配置生成器,用于从构成所述处理器的逻辑电路的可编程元件(PE)的布图布置信息和所述ISA生成逻辑电路配置信息。所述ISA生成器包括用于提取用高级语言描述的程序的指令模式的装置,以及用于将所提取的指令模式与存储在库中的定制指令的模式相比较的装置。此外,所述ISA生成器包括用于将所提取的指令替换为所述定制指令和/或所述定制指令的组合的装置。所述ISA生成器还包括作为用于调用所提取的定制指令的装置的函数调用,以及用于生成包括处理器的控制指令的中间代码的装置。
软件模块包括用于将中间代码和定制指令转换为目标代码的装置。软件模块还包括用于从逻辑电路配置信息生成逻辑电路配置目标代码的装置,以及用于仿真ISA的性能的仿真器。在该实施例中,软件模块还包括用于在将所提取的指令替换为定制指令的过程期间未被替换为定制指令的指令生成为新定制指令的创建器。所述处理器包括动态可重配置逻辑电路、用于存储定制指令的逻辑电路配置信息的配置存储器,以及用于存储所提取的定制指令的存储器。此外,处理器还包括用于临时保存执行所提取的定制指令的结果的寄存器文件,以及用于从配置存储器读取对应于定制指令的逻辑电路配置信息并在执行定制指令时重配置动态可重配置逻辑电路的控制器。此外,控制器还可以包括用于在访问存储器时存储变址的变址寄存器,而处理器还可包括用于存储变址寄存器的值的栈。
根据本发明的第二方面,提供了一种用于生成处理器的ISA的方法,包括从用高级语言描述的程序提取指令模式;将所提取的指令模式与库中存储的定制指令的模式相比较;以及将所提取的指令替换为定制指令和/或定制指令的组合,以便生成ISA。在一些实施例中,提取被替换为定制指令的逻辑元件连接信息,并生成ISA以包括逻辑元件连接信息。此外,逻辑元件连接信息可被存储在库中以便与定制指令相关联。程序指令中在用于将程序指令替换为定制指令和/或定制指令的组合的过程中未被替换为定制指令的指令被创建为新定制指令,并被添加到库以便再次提取定制指令。
根据本发明的第三方面,提供了一种用于生成处理器的逻辑电路配置信息的方法,包括提取用高级语言描述的程序的指令模式,将所提取的指令模式与定制指令的模数相比较,并将所提取的指令替换为定制指令和/或定制指令的组合。在该实施例中,该方法还包括从与定制指令相关联的逻辑元件连接信息和处理器的可编程元件的布图布置信息生成逻辑电路配置信息。在这些实施例中,逻辑元件连接信息可被存储在库中,处理器可以是动态逻辑电路可重配置处理器。
根据本发明的第四方面,提供了一种包括可操作来接收多个程序指令的动态可重配置微处理器,其中程序指令包括至少第一和第二指令集。此外,处理器包括与程序栈电通信的可重配置逻辑电路,其中可重配置逻辑电路具有可互换的第一和第二数据路径,其中要根据第一指令集操作的数据经过第一数据路径,要根据第二指令集操作的数据经过第二数据路径。在处理器的这些实施例中,可重配置逻辑电路可根据微处理器正在执行与第一还是第二指令集相对应的指令而被重配置。
根据第五方面,本发明公开了动态重配置处理电路的方法。在一个实施例中,该方法包括接收要由处理电路执行的多个程序指令,其中程序指令包括至少第一和第二指令集。该方法还包括当根据第一指令集操作数据时将可重配置逻辑电路配置到第一数据路径,当根据第二指令集操作数据时将可重配置逻辑电路配置到第二数据路径;
根据本发明的第六方面,提供了一种动态逻辑电路可重配置处理器。该处理器可以包括动态可重配置逻辑电路、用于存储用于构成动态可重配置逻辑电路的可编程元件(PE)的每个指令的布图布置信息的配置存储器、用于临时保存执行指令的中间结果的寄存器文件、用于存储指令的存储器,以及用于管理处理器(包括指令的执行顺序)的控制。该控制器还包括用于在访问存储器时存储变址的变址寄存器,而处理器还包括用于存储变址寄存器的值的栈。
根据本发明的第七方面,提供了包含在计算机中执行的用于生成动态逻辑电路可重配置处理器的指令集体系结构的一组指令的计算机可读介质。所述一组指令提供以下步骤:从用高级语言描述的处理器的应用程序中的指令提取指令模式;将所提取的指令模式与库中存储的一个或多个定制指令的模式相比较;以及将程序中的指令替换为一个或多个定制指令以便生成指令集体系结构。在第八方面中,指令还包括从与指令集中包括的一个或多个定制指令相关联的逻辑元件连接信息和从处理器的至少一个可编程元件的布图布置信息生成逻辑电路配置信息的步骤。
附图说明
为了更完整地理解本公开、这里的系统和方法的优点,现在结合附图参考下面的描述,在附图中:
图1是示出了根据本发明的定制LSI开发平台的一个实施例的整个结构的框图;
图2是软件模块的一个实施例的详细框图;
图3是ISA生成器的一个实施例的详细框图;
图4是根据本发明的动态逻辑电路可重配置处理器的一个实施例的框图;
图5是根据本发明的动态逻辑电路处理器的一个实施例的功能框图;
图6是示出了指令格式的结构的示意图;
图7是示出了根据本发明实施例的可重配置数据路径的结构的示意图;
图8是示出了根据所公开原理进行的AES加密过程的流程的示意图;
图9是AES加密过程的中间代码的示例性描述;
图10是AES加密过程的中间代码的另一示例性描述;以及
图11是根据所公开的原理进行的DES加密过程的流程图。
具体实施方式
本发明公开了生成处理器的指令集体系结构(此后称为“ISA”)和一系列逻辑电路配置信息以便从用高级语言描述的应用程序执行应用程序的技术。此外,本发明还涉及可以通过将所生成的ISA和逻辑电路配置信息应用于动态逻辑电路可重配置处理器来在短时间内设计、开发和制造专用定制LSI的定制LSI开发平台技术。根据所公开的原理,软件开发者可以采用所公开的技术来开发应用,而不考虑硬件特性。因此可减少开发所需的整个执行周期数,于是可以在短时间内开发专用定制LSI。此外,可以实现用于开发定制LSI的属性的共性(平台),从而使设计和开发属性标准化。
在详细描述所公开的技术之前,应当首先定义本公开全文中使用的一些术语。在本公开中,“动态逻辑电路可重配置处理器”是具有根据指令来动态重配置和处理处理器中的逻辑电路的处理器。“定制LSI”是包括根据需要被设计和制造的专用集成电路(ASIC)的LSI。“定制指令”是由过程执行并由用户定义的指令。“指令集”是处理器中包括的一系列指令代码。“指令集体系结构”(ISA)由生成处理器的逻辑电路配置信息所需的逻辑元件连接信息和指令集构成。“逻辑元件连接信息”例如是定义以此顺序排列的AND(与)电路、OR(或)电路和XOR(异或)电路的信息。相应地,在动态逻辑电路可重配置处理器的逻辑电路中,不包括关于AND电路、OR电路或XOR电路位于何处或什么导线将AND电路、OR电路和XOR电路彼此连接的信息。“定制逻辑电路”是用于实现定制指令的逻辑电路,并且是由于性能需要而不能在通用处理器中实现的电路或功能。“平台”是由可被用来实现不同的定制逻辑电路的公共硬件和软件构成的系统。“数据路径”是用于执行定制指令的处理器的逻辑电路。“可编程元件”是用于构造诸如AND电路、OR电路、XOR电路或ALU电路等逻辑电路的元件。
现在依照这些定义参考图1,其示出了根据本发明的定制LSI开发平台1的一个实施例的整体结构的框图。定制LSI开发平台1包括动态逻辑电路可重配置处理器20和软件模块10。软件模块10由一系列软件构成,所述一系列软件用于针对每个定制指令生成用于动态改变动态逻辑电路可重配置处理器20中的ISA和动态逻辑电路可重配置处理器20中的可重配置逻辑电路24(可重配置数据路径)的逻辑电路配置信息。
如果软件开发者用C语言描述源程序100,则ISA生成器110生成和编译中间代码111和ISA 112以便生成程序目标代码141和逻辑电路配置目标代码142。动态逻辑电路可重配置处理器20处理输入数据27的操作,同时基于程序目标代码141和逻辑电路配置目标代码142针对每个定制指令改变可重配置逻辑电路24,并且输出数据28作为最终结果。
图2是图1所示的软件模块10的详细框图。如果应用C源程序100,则ISA生成器110启动并分析C源程序100的指令结构。此外,在定制指令库160中存储有事先定义的多个定制指令。ISA生成器110提取在C源程序100中正被使用或被重复使用的指令的模式,将其与库160中的定制指令的模式相比较,将C源程序100中的指令替换为定制指令,并生成中间代码111和ISA 112。
中间代码111由定制指令的函数调用和控制指令构成,ISA 112由定制指令和逻辑元件连接信息构成。中间代码111被编译器120编译成汇编代码121,然后变为程序目标代码141。此外,编译器120将中间代码111和ISA 112的定制指令(例如将乘法定义成“×”的定制指令)编译成汇编代码121。ISA 112的定制指令与中间代码111一起被编译器120转换成汇编代码121,然后被汇编器140变为程序目标代码141。
逻辑电路配置生成器130从ISA 112的逻辑元件连接信息和可重配置逻辑电路24的可编程元件(PE)的布图布置信息1310生成逻辑电路配置信息1311。然后,它通过汇编器140将其转换为逻辑电路配置目标代码142。软件模块还包括用于仿真ISA 112的性能(具体而言是程序目标代码141和逻辑电路配置目标代码142)的仿真器170。
图3是ISA生成器110的详细框图。如图3所示,模式模块1110参考库160提取在C源程序100中正被使用或重复使用的指令,将所提取的指令的模式与存储在库160中的定制指令的模式相比较,并将相同指令替换为定制指令(1140)。未被模式模块1110作为定制指令提取的(未作为定制指令被事先创建的)各个指令被创建器150新定义和创建,或者如果所述各个指令可以被合成为已有的定制指令,则它们被合成为已有的定制指令并被定义为新定制指令(1160)。库160的定制指令总是通过定制指令(1160)的添加和合成而被更新。
模式模块1110将C源程序100的指令替换为定制指令,直到C源程序100可被执行。这包括被覆盖指令1120和未被覆盖指令1130。此外,模式模块1110参考逻辑元件连接信息(与定制指令相关联并存储在库160中)和PE的布图布置信息1150,针对每个定制指令生成可重配置逻辑电路24的逻辑电路配置信息。因此,ISA生成器110产生(1170)ISA 112和中间代码111。
图4是示出了根据本发明实施例的动态逻辑电路可重配置处理器20的框图。动态逻辑电路可重配置处理器20包括可重配置数据路径(可重配置逻辑电路)24并通过顺序控制执行程序。动态逻辑电路可重配置处理器20执行C源程序100的过程内容,同时针对每个步骤重置逻辑电路配置。此外,步骤是执行一个指令,包括设置逻辑电路配置和执行操作,所需的时段。此外,逻辑电路配置信息是用于执行定制指令的可重配置逻辑电路的配置信息。
动态逻辑电路可重配置处理器20包括控制器21、栈22、配置存储器23、可重配置数据路径24、寄存器文件25和存储器26。控制器21执行动态逻辑电路可重配置处理器20的整个管理,例如配置数据加载和存储器26中的数据的加载。控制器21包括形成于其中的7个22位变址寄存器211,并且可使用变址寄存器211的值来访问存储器26。此外,控制器21连接到用于存储变址寄存器211的值的栈22。存储器26是用于存储动态逻辑电路可重配置处理器20的指令的存储器件。
图5示出了图4所示动态逻辑电路处理器20的功能框图。该功能图示出了根据所公开的原理,从高级语言源程序动态重配置逻辑电路。如上所述,ISA生成器分析高级源程序100的指令结构。ISA生成器提取在C源程序100中正被使用或重复使用的指令的模式,并将其与库中的定制指令的模式相比较。然后,ISA生成器将源程序100中的指令替换为定制指令,并生成中间代码(见上文)和ISA 112。
ISA 112由(一个或多个)定制指令和逻辑元件连接信息构成。逻辑电路配置信息是从ISA 112的逻辑元件连接信息和可重配置数据路径24的PE的布图布置信息生成的。然后,逻辑电路配置信息被转换成逻辑电路配置目标代码142。这一般是由汇编器(例如上述汇编器140)完成的。根据一个实施例,可以创建多个逻辑电路配置信息目标代码142的集合。在图5中,这些目标代码的示例被标记为142a、142b、142c,但是对可以生成的各目标代码的数量没有限制,并且在示例性实施例中,使用最合适的指令集。每个目标代码集142a、142b、142c规定了动态可重配置逻辑电路24中的相应配置。它们被分别标记为24a、24b、24c,并代表包括逻辑电路24的可编程逻辑元件中的分别的配置。一旦创建了所需的逻辑电路24配置,该实施例中就使用64位寄存器来利用选定配置执行所需代码。
这里公开的动态可重配置逻辑电路处理器20可被重配置来提供一般由多个专门处理单元提供的处理操作。例如,在一个时间点,处理器20可被配置为充当计算机的中央处理单元,而在第二时间点,它被配置为充当专用处理器,然后在第三时间点,它被配置为充当数字信号处理器。通过利用单个处理器20提供这里公开的功能,所公开的原理缩小了整体器件大小和空间。此外,处理能力的灵活性增加而不增加制造成本。具体而言,处理器20中的逻辑元件被映射到要被执行的特定应用。因此,利用所公开的技术,每个应用被更高效地执行,因为每个不同应用是由针对每个应用重配置的硬件执行的。此外,处理器20的这种重配置是根据要被处理的应用代码自动实现的。
图6示出了存储器26存储的指令格式的结构。在图6中,在部分“Exe-Non”中,确定指令是通过可重配置数据路径24的操作执行,还是仅通过操纵变址寄存器211的值而不使用可重配置数据路径24来执行。如果指令是通过可重配置数据路径24的操作执行的,则其中存储有足够配置数据的配置存储器23的地址被存储,并且用于该操作的寄存器文件25被指定。如果指令是通过操纵变址寄存器211的值来执行的,则操作内容和用于操作的变址寄存器211被指定。如果在部分“ImData”中指定存储器地址,则存储器26和变址寄存器211之间的数据交换可被执行。
在部分“Flow-Code”中,程序的执行顺序控制可被指定,并且如果分支条件可被指定,则可使用可重配置数据路径24处的操作结果来分支处理。部分“Dt_Adr”和“Rel_Adr”被用于指定相关地址。部分“Work_Rate”可被用于指定在可重配置数据路径24根据过程内容以1、2、4或8个时钟周期执行过程时的时钟周期数。
简要回看图4,配置存储器23是用于存储配置数据的存储器。配置存储器23可以存储定制指令的128个配置数据。寄存器文件25是用于存储可重配置数据路径24的每个PE处的操作结果,并将它传送到不同功能的寄存器。一个字具有256位宽度。寄存器文件25连接到可重配置数据路径24的PE,存储的寄存器文件25的位位置根据用于输出数据的PE的位置确定。
图7示出了根据本发明的实施例的可重配置数据路径24的结构。在可重配置数据路径24中,PE被布置在16行×8列中。PE具有6个输入和两个输出,并且可以向输入分配任意逻辑功能。PE通过垂直线路(VL)和水平线路(HL)彼此连接。VL连接到一列的各个PE,每个VL连接到HL。切换单元(SW)控制信号从VL到HL或从HL到VL的交换。VL具有64位宽度,其数量为8,HL具有64位宽度,其数量为7。此外,64位数据可一次从存储器被加载到可重配置数据路径24。
在动态逻辑电路可重配置处理器20中,控制器21从存储器26读取程序,并确定指令使用可重配置数据路径24还是仅操作变址寄存器211的值。在使用可重配置数据路径24的情形下,控制器21从程序中指定的配置存储器23的地址读取足够的配置数据,并将该数据加载到可重配置数据路径24。如果配置(逻辑电路配置)固定了,则可重配置数据路径24执行输入数据的处理。在每个PE中执行的操作结果可被输出到VL并写入寄存器文件25。作为中间结果,数据可被传送到独立的函数并且可被使用。通过使用寄存器文件25,大型过程可被划分为多个函数并可被随后执行。在使用变址寄存器211的值的情形下,由于在变址寄存器211中准备操作电路,因此在程序中指定的操作在操作电路中被执行,并且被过渡到下一指令。
实施例1:
通过使用根据本发明实施例的软件模块10和动态逻辑电路可重配置处理器20,开发出增强加密标准(AES)的加密定制LSI。AES被选择作为用于替换数据加密标准(DES)的标准加密方法。ISA是从用C语言创建的AES的程序生成的,AES加密过程在动态逻辑电路可重配置处理器20中执行,以便执行性能评估。在AES中,明文的位数或密钥的位数是可以选择的。但是,在本实施例中,它们都被设置为128位。
图8示出了AES加密过程的流程。首先,称为“State”的二维布置的数据格式明文被布置。轮转密钥(round key)被生成(S1),State和轮转密钥的异或被执行(S2)。轮转函数被执行预定次数。在本实施例中,轮转函数在以下条件下被执行9次。通过以下4个转换来执行轮转函数。首先,具有8位输入和8位输出(byte-sub)的s-box转换过程被执行(S3)。接下来,用于执行关于行的字节单元的循环移位的Shift-Row被执行(S4)。接下来,针对每列的矩阵操作Mix-Column被执行(S5)。此外,State和轮转密钥的异或(Add-Round-Key)被执行(S6)。步骤S3到S6被重复执行9次。最后,Byte-sub(S7)、Shift-Row(S8)和Add-Round-Key(S9)被执行,并且获得密文(Encrypted)(S10)。
四个转换过程Byte-sub、Shift-Row、Mix-Column和Add-Round-Key成为加密过程的核心。当执行这四个转换过程时,用于实现每个转换过程的定制指令被创建。在该实施例中,Byte-sub、Shift-Row、Mix-Column和Add-Round-Key被分别划分成32位、128位、64位和128位的单元。因此,用于划分和组合数据的指令被添加。
图9和图10是用C语言描述的AES加密过程的中间代码111的示例,包括Byte-sub、Shift-Row、Mix-Column和Add-Round-Key。如图9和图10所示,AES加密过程的主例程(main routine)是“encrypt”函数。在图9的中间代码中,定制指令的头部被附着以“vul-”。因此,在整个过程中获得309个周期,在加密过程中获得79个周期。
实施例2:
DES是美国标准与技术研究院(National Institute of Standards andTechnology)规定的加密标准。通过输入64位明文和56位密钥作为在加密和解密中使用相同密钥的公共密钥加密,输出64位密文。在DES加密过程中,64位的串被首先输入并经历基于换位表的初始换位。经换位的位串被按32位划分。经划分的位串分别被利用密钥和加密函数F被加密。密钥使用从输入的56位密钥生成的48位轮转密钥。该过程被执行16次,所创建的左和右位串被组合以执行最终换位。因此,结果被输出作为密文。
图11是DES加密过程的流程图。在动态逻辑电路可重配置处理器20的DES加密过程中需要6个定制指令。表1示出了在DES加密过程中使用的定制指令及其内容。
表1
定制指令 内容
0 密钥的读取和密钥生成单元的换位
1 明文的读取和初始换位
2 密钥生成单元的1位左循环移位
3 密钥生成单元的2位左循环移位
4 密钥生成单元的缩减换位和F函数,以及异或
5 初始换位的反转和输出
首先,通过指令0,56位密钥被从存储器输入到可重配置数据路径24,并且其换位被同时执行。类似地,通过指令1,64位明文被输入,并且其初始换位被同时执行。接下来,根据轮转号码,通过指令2或3执行密钥的循环移位。在指令4中,密钥的缩减换位和加密F函数通过一个指令被执行。
指令之间的数据交换是通过寄存器文件25执行的。该轮转过程被执行16次。在图11中,该重复过程被条件分支过程执行,但是在本实施例中,该重复过程被展开并被顺序执行。这是为了减小设计电路规模,因为为了执行条件分支过程,必须制造用于确定轮转号码的冗余电路。最后执行初始换位的反转,64位密文在存储器中输出。
表2示出了在由动态逻辑电路可重配置处理器20执行DES加密过程时的操作频率和吞吐量。在本实施例中,DES加密过程的操作频率是6.25MHz。作为比较,表2示出了由Intel Pentium4执行DES加密过程的结果。
表2
 操作频率  吞吐量
Vulcan  6.25MHz  570KB/sec
Pentium 4  2.4GHz  150KB/sec
Pentium4的DES加密过程是通过编译C语言的DES加密过程的规范的说明来执行的。在编译选项中使用-O2。从表2看,动态逻辑电路可重配置处理器20的DES加密过程表现出比Intel Pentium(注册商标)4的DES加密过程高3.8倍的性能。这是因为在DES加密过程中可以使用这样的特性,即充当动态逻辑电路可重配置处理器20的组件的PE可以以一位为单元向输入分配任意逻辑功能。
在DES加密过程中,一位单元的换位或替换被重复。在诸如IntelPentium4等32位微处理器中,在以一位为单元执行过程时需要提取一位的过程。在以一位为单元的换位过程中,动态逻辑电路可重配置处理器20的PE将数据从寄存器文件25输入到可重配置数据路径24,将其移动到指定的位位置,并将其再次存储在寄存器文件25中。因此,通过一个指令,可以执行大量数据换位过程。另外,由于PE可以向输入分配任意逻辑功能,所以依赖于数据的多个过程被一个指令合成和执行,从而减少了所执行的时钟周期数。在可重配置数据路径24的DES加密过程中,64位明文加密所需的时钟周期数是70个周期。
总之,本发明提供了定制LSI开发平台,其中当软件开发者用高级语言(例如C语言)准备应用程序时,ISA和逻辑电路配置信息被基于所创建的应用程序自动生成。所生成的ISA和逻辑电路配置信息随后被自动应用到动态可重配置逻辑电路处理器。因此,所公开的原理可被用作为设计和开发定制LSI以及制造专用定制LSI的平台。
虽然上面已经描述了所公开的原理的各种实施例,但是应当理解,它们仅是示例性而非限制性的。因此,本发明的精神和范围不应限于上述任意示例性实施例,而是仅根据本公开公布的任意权利要求及其等同物来限定。此外,所描述的实施例中提供了上述优点和特征,但是它们不应当限制实现任意或全部上述优点的过程和结构的所公布的权利要求的应用。
此外,这里的各部分的标题被提供以与37 CFR 1.77的建议相一致,或者提供组织提示。这些标题不应限制或限定本公开公布的任意权利要求中列出的发明。具体例如,虽然标题是“技术领域”,但是这些权利要求不应受限于在该标题下选择的用于描述所谓的技术领域的语言。此外,“背景技术”中对技术的描述不应被理解为承认该技术是本公开中任意发明的现有技术。“技术内容”也不应被理解为在所公布的权利要求中列出的对发明的限定。此外,本公开中对“发明”的单数引用不应被用来证明本公开中只有单个创新点。根据本公开公布的多个权利要求的限制,可以列举多个发明,因此这些权利要求定义了受保护的发明及其等同物。在所有情形下,这些权利要求的范围应被理解为它们在本公开中体现出的本质,而不应受限于这里列举的标题。
可以在不脱离本发明的广泛精神和范围的情况下作出各种实施例和改变。上述实施例意在说明本发明,而非限制本发明的范围。本发明的范围由所附权利要求而非实施例示出。在本发明的权利要求的等同物的意义内和权利要求范围内作出的各种修改应被认为落在本发明的范围内。
本发明基于2004年11月30日提交的日本专利申请No.2004-345400、2005年11月24日提交的日本专利申请No.2005-338457和2005年11月4日提交的美国专利申请No.11/267,026,并且包括说明书、权利要求书、附图和摘要。上述日本专利申请的全部公开内容通过引用结合于此。

Claims (81)

1.一种动态可重配置微处理器,包括:
可操作来接收多个程序指令的程序栈,所述程序指令包括至少第一和第二指令集;以及
与所述程序栈进行电通信的可重配置逻辑电路,所述可重配置逻辑电路具有可互换的第一和第二数据路径,其中要根据所述第一指令集被操作的数据经过所述第一数据路径,要根据所述第二指令集被操作的数据经过所述第二数据路径,并且其中,所述可重配置逻辑电路可根据所述微处理器正在执行与所述第一还是所述第二指令集相对应的指令而被重配置。
2.根据权利要求1所述的动态可重配置微处理器,其中所述程序栈是程序控制器的一部分,并且其中所述程序控制器提供从所述程序栈到所述可重配置逻辑电路的电通信。
3.根据权利要求1所述的动态可重配置微处理器,其中所述第一指令集是通用指令集,并且其中所述第一数据路径在功能上包括通用微处理器。
4.根据权利要求3所述的动态可重配置微处理器,其中所述第二指令集是数字信号处理指令集,并且其中所述第二数据路径在功能上包括数字信号处理器。
5.根据权利要求4所述的动态可重配置微处理器,其中所述数字信号处理指令集针对数据加密或解密而被优化。
6.根据权利要求1所述的动态可重配置微处理器,其中在所述程序栈中接收的程序指令包括至少第三指令集,并且其中所述可重配置逻辑电路还包括第三数据路径,其中要根据所述第三指令集被操作的数据经过所述第三数据路径,其中所述可重配置逻辑电路可操作来根据正在执行与第一、第二还是第三指令集相对应的指令而被重配置。
7.根据权利要求1所述的动态可重配置微处理器,其中所述程序栈还与所述可重配置逻辑电路进行电通信。
8.根据权利要求7所述的动态可重配置微处理器,其中从所述程序栈到所述可重配置逻辑电路的电通信经过存储所述可重配置逻辑的至少一种配置的配置存储器。
9.根据权利要求7所述的动态可重配置微处理器,其中所述可重配置逻辑电路包括可被互换地选择的可编程元件的阵列,其中所述可编程元件的阵列的第一子集是所述第一数据路径的一部分,并且其中所述可编程元件的阵列的第二子集是所述第二数据路径的一部分。
10.根据权利要求9所述的动态可重配置微处理器,其中所述可编程元件的阵列中的至少一些可编程元件是所述第一数据路径和所述第二数据路径二者的一部分。
11.根据权利要求1所述的动态可重配置微处理器,其中所述第一和第二指令集中的至少一个和所述至少一个指令集在所述可重配置逻辑电路中的相应数据路径适应于在所述微处理器体系结构已根据未来的设计需要被布图之后被定义。
12.根据权利要求11所述的动态可重配置微处理器,其中所述相应数据路径包括可根据制造掩膜选项而被选择的逻辑元件。
13.根据权利要求11所述的动态可重配置微处理器,其中所述相应数据路径包括可根据所述设计需要而被编程的可编程逻辑元件。
14.根据权利要求13所述的动态可重配置微处理器,其中所述可编程逻辑元件包括现场可编程门阵列的门。
15.根据权利要求13所述的动态可重配置微处理器,其中所述可编程逻辑元件包括可编程逻辑器件的门。
16.根据权利要求1所述的动态可重配置微处理器,其中要根据所述第一或第二指令集操作的所述数据包括从源应用代码生成的目标代码。
17.根据权利要求16所述的动态可重配置微处理器,其中所述可重配置逻辑电路可使用从所述源应用代码生成的配置信息,根据所述微处理器正在执行与所述第一还是第二指令集相对应的指令而被重配置。
18.一种动态重配置处理电路的方法,所述方法包括:
接收要被所述处理电路执行的多个程序指令,所述程序指令包括至少第一和第二指令集;
当根据所述第一指令集操作数据时,将可重配置逻辑电路配置到第一数据路径中;以及
当根据所述第二指令集操作数据时,将可重配置逻辑电路配置到第二数据路径中。
19.根据权利要求18所述的方法,其中所述第一指令集是通用指令集,所述方法包括将可重配置逻辑电路配置到第一数据路径中,所述第一数据路径在功能上包括用于根据所述第一指令集来操作数据的通用微处理器。
20.根据权利要求19所述的方法,其中所述第二指令集是数字信号处理指令集,所述方法还包括将可重配置逻辑电路配置到第二数据路径中,所述第二数据路径在功能上包括用于根据所述第二指令集来操作数据的数字信号处理器。
21.根据权利要求20所述的方法,其中根据所述第二指令集来操作数据包括加密或解密数据。
22.根据权利要求18所述的方法,其中接收多个程序指令还包括接收包括第三指令集的多个程序指令,其中所述方法还包括当根据所述第三指令集来操作数据时,将可重配置逻辑电路配置到第三数据路径中。
23.根据权利要求18所述的方法,还包括在配置存储器中存储所述可重配置逻辑的至少一种配置。
24.根据权利要求18所述的方法,其中将可重配置逻辑电路配置到第一或第二数据路径中包括配置可被互换地选择的可编程元件的阵列,其中所述可编程元件的阵列的第一子集是所述第一数据路径的一部分,所述可编程元件的阵列的第二子集是所述第二数据路径的一部分。
25.根据权利要求24所述的方法,其中所述可编程元件的阵列中的至少一些可编程元件是所述第一数据路径和所述第二数据路径二者的一部分。
26.根据权利要求18所述的方法,其中将可重配置逻辑电路配置到所述第一或第二数据路径中包括在根据未来的设计需要对所述微处理器体系结构进行布图之后,将可重配置逻辑电路配置到第一或第二数据路径中。
27.根据权利要求26所述的方法,其中将可重配置逻辑电路配置到第一或第二数据路径中包括根据制造掩膜选项来选择可编程逻辑元件的阵列。
28.根据权利要求26所述的方法,其中将可重配置逻辑电路配置到第一或第二数据路径中包括根据所述设计需要来对所述逻辑元件编程。
29.一种用于结构和电路开发的定制LSI开发平台,所述平台包括:
指令集生成器,用于生成处理器的指令集,所述指令包括来自至少第一和第二指令集的指令;
编译器,用于根据所生成的指令集生成指令;以及
逻辑电路配置生成器,所述逻辑电路配置生成器生成动态可重配置逻辑电路中的第一和第二数据路径的逻辑电路配置信息,其中所述第一和第二数据路径提供可操作来执行分别从第一和第二指令集生成的指令的电路。
30.根据权利要求29所述的定制LSI开发平台,还包括根据逻辑电路配置信息被重配置并且可操作来执行用于LSI开发目的生成的指令的动态可重配置处理器。
31.根据权利要求30所述的定制LSI开发平台,其中所述指令集生成器可操作来:
从用高级语言描述的程序中的指令提取指令模式;
将所提取的指令模式与库中存储的一个或多个定制指令的模式相比较;以及
用所述一个或多个定制指令替换所述程序中的指令模式。
32.根据权利要求31所述的定制LSI开发平台,其中所述指令集生成器还可操作来将其生成的指令集提供给所述编译器,从而所述编译器可操作来生成所述指令。
33.根据权利要求32所述的定制LSI开发平台,其中所生成的指令包括目标代码。
34.根据权利要求31所述的定制LSI开发平台,其中所述动态可重配置处理器还包括:
动态可重配置逻辑电路;
配置存储器,所述配置存储器存储所述一个或多个定制指令的逻辑电路配置信息;
存储器,所述存储器保存所述一个或多个定制指令;
寄存器文件,所述寄存器文件临时保存执行所述一个或多个定制指令的结果;以及
控制器,所述控制器从所述配置存储器读取与所述一个或多个定制指令相对应的逻辑电路配置信息,并在执行所述一个或多个定制指令时重配置所述动态可重配置逻辑电路。
35.根据权利要求34所述的定制LSI开发平台,其中所述控制器还包括用于当访问所述存储器时存储变址的变址寄存器。
36.根据权利要求35所述的定制LSI开发平台,其中所述处理器还包括用于存储所述变址寄存器的值的栈。
37.根据权利要求31所述的定制LSI开发平台,还包括创建器,所述创建器用于当所述程序中的指令被所述一个或多个定制指令替换时,将未被所述一个或多个定制指令替换的程序中的指令生成为新定制指令。
38.一种用于生成处理器的指令集体系结构的方法,所述方法包括:
从用高级语言描述的程序中的指令提取指令模式;
将所提取的指令模式与库中存储的一个或多个定制指令的模式相比较;以及
用所述一个或多个定制指令替换所述程序中的指令,以便生成所述指令集体系结构。
39.根据权利要求38所述的方法,还包括提取与被所述定制指令替换的指令相关联的逻辑元件连接信息,并从所述逻辑元件连接信息和所述定制指令生成所述指令集体系结构。
40.根据权利要求39所述的方法,还包括在所述库中存储所述逻辑元件连接信息以便与所述定制指令相关联。
41.根据权利要求40所述的方法,其中所述处理器是动态可重配置逻辑电路处理器。
42.根据权利要求38所述的方法,还包括向一个或多个定制指令的库添加新定制指令,所述新定制指令包括在所述替换期间未被所述一个或多个定制指令替换的程序中的指令。
43.一种用于生成处理器的逻辑电路配置信息的方法,所述方法包括:
从用高级语言描述的程序中的指令提取指令模式;
将所提取的指令模式与一个或多个定制指令的模式相比较;
用所述一个或多个定制指令替换将所述程序中的指令;以及
从与所述一个或多个定制指令相关联的逻辑元件连接信息和从所述处理器的至少一个可编程元件的布图布置信息,生成所述逻辑电路配置信息。
44.根据权利要求43所述的方法,其中所述逻辑元件连接信息被存储在库中。
45.根据权利要求43所述的方法,其中所述处理器是动态可重配置逻辑电路处理器。
46.一种动态逻辑电路可重配置处理器,包括:
包括至少一个可编程元件的动态可重配置逻辑电路;
配置存储器,所述配置存储器存储用于所述至少一个可编程元件的每个指令的布图布置信息;
寄存器文件,所述寄存器文件临时保存执行所述至少一个可编程元件的指令的中间结果;
存储器,所述存储器保存所述指令;以及
管理所述处理器的控制器,所述控制器管理所述至少一个可编程元件的指令的执行顺序。
47.根据权利要求46所述的动态逻辑电路可重配置处理器,其中所述指令包括至少第一和第二指令集,所述逻辑电路可根据所述处理器正在执行与所述第一还是第二指令集相对应的指令而被配置到第一或第二数据路径中。
48.根据权利要求47所述的动态逻辑电路可重配置处理器,其中所述第一指令集是用于指令集,并且其中所述第一数据路径在功能上包括通用微处理器。
49.根据权利要求48所述的动态逻辑电路可重配置处理器,其中所述第二指令集是数字信号处理指令集,并且其中所述第二数据路径在功能上包括数字信号处理器。
50.根据权利要求49所述的动态逻辑电路可重配置处理器,其中所述数字信号处理指令集针对数据加密或解密而被优化。
51.根据权利要求47所述的动态逻辑电路可重配置处理器,其中所述可重配置逻辑电路包括可被互换地选择的可编程元件的阵列,其中所述可编程元件的阵列的第一子集是所述第一数据路径的一部分,并且其中所述可编程元件的阵列的第二子集是所述第二数据路径的一部分。
52.根据权利要求51所述的动态逻辑电路可重配置处理器,其中所述可编程元件的阵列中的至少一些可编程元件是所述第一数据路径和第二数据路径二者的一部分。
53.根据权利要求51所述的动态逻辑电路可重配置处理器,其中所述可编程逻辑元件包括现场可编程门阵列的门。
54.根据权利要求51所述的动态逻辑电路可重配置处理器,其中所述可编程逻辑元件包括可编程逻辑器件的门。
55.根据权利要求47所述的动态逻辑电路可重配置处理器,其中要根据所述第一或第二指令集操作的数据包括从源应用代码生成的目标代码。
56.根据权利要求55所述的动态逻辑电路可重配置处理器,其中所述可重配置逻辑电路可使用从所述源应用代码生成的配置信息,根据所述处理器正在执行与所述第一还是第二指令集相对应的指令而被重配置。
57.一种定制LSI开发平台,包括:
动态逻辑电路可重配置处理器,所述动态逻辑电路可重配置处理器具有至少一个包括逻辑电路的可编程元件;以及
软件模块,所述软件模块包括:
指令集体系结构生成器,用于生成所述处理器的指令集体系结构;以及
逻辑电路配置生成器,所述逻辑电路配置生成器从所述至少一个可编程元件的布图布置信息和所述指令集体系结构生成所述处理器的逻辑电路配置信息。
58.根据权利要求57所述的定制LSI开发平台,其中所述指令集体系结构包括至少第一和第二指令集,所述逻辑电路配置生成器生成配置信息,以便根据所述处理器正在执行与所述第一还是第二指令集相对应的指令来将所述逻辑电路配置到第一或第二数据路径中。
59.根据权利要求58所述的定制LSI开发平台,其中所述第一指令集是通用指令集,并且其中所述第一数据路径在功能上包括通用微处理器。
60.根据权利要求59所述的定制LSI开发平台,其中所述第二指令集是数字信号处理指令集,并且其中所述第二数据路径在功能上包括数字信号处理器。
61.根据权利要求60所述的定制LSI开发平台,其中所述数字信号处理指令集针对数据加密或解密而被优化。
62.根据权利要求58所述的定制LSI开发平台,其中所述可重配置逻辑电路包括可被互换地选择的可编程元件的阵列,其中所述可编程元件的阵列的第一子集是所述第一数据路径的一部分,并且其中所述可编程元件的阵列的第二子集是所述第二数据路径的一部分。
63.根据权利要求62所述的定制LSI开发平台,其中所述可编程元件的阵列中的至少一些可编程元件是所述第一数据路径和所述第二数据路径二者的一部分。
64.根据权利要求58所述的定制LSI开发平台,其中所述第一和第二指令集中的至少一个和所述至少一个指令集在所述可重配置逻辑电路中的相应数据路径适应于在所述微处理器体系结构已根据未来的设计需要被布图之后被定义。
65.根据权利要求64所述的定制LSI开发平台,其中所述相应数据路径包括可根据制造掩膜选项而被选择的逻辑元件。
66.根据权利要求64所述的定制LSI开发平台,其中所述相应数据路径包括可根据所述设计需要而被编程的可编程逻辑元件。
67.根据权利要求66所述的定制LSI开发平台,其中所述可编程逻辑元件包括现场可编程门阵列的门。
68.根据权利要求66所述的定制LSI开发平台,其中所述可编程逻辑元件包括可编程逻辑器件的门。
69.根据权利要求58所述的定制LSI开发平台,其中所述要根据所述第一或第二指令集操作的数据包括从源应用代码生成的目标代码。
70.根据权利要求69所述的定制LSI开发平台,其中所述可重配置逻辑电路可使用从所述源应用代码生成的配置信息,根据所述微处理器正在执行与所述第一还是第二指令集相对应的指令而被重配置。
71.根据权利要求57所述的定制LSI开发平台,还包括连接到所述逻辑电路配置生成器的配置存储器,所述配置存储器存储所述可重配置逻辑电路的至少一种配置。
72.一种包含要在计算机中执行的用于生成动态逻辑电路可重配置处理器的指令集体系结构的一组指令的计算机可读介质,所述一组指令包括:
从用高级语言描述的应用程序中的指令提取指令模式;
将所提取的指令模式与库中存储的一个或多个定制指令的模式相比较;以及
用所述一个或多个定制指令替换所述程序中的指令,以便生成所述指令集。
73.根据权利要求72所述的计算机可读介质,其中所述一组指令还包括提取与被所述定制指令替换的指令相关联的逻辑元件连接信息,并从所述逻辑元件连接信息和所述定制指令生成所述指令集体系结构。
74.根据权利要求73所述的计算机可读介质,其中所述一组指令还包括在所述库中存储所述逻辑元件连接信息以便与所述定制指令相关联。
75.根据权利要求74所述的计算机可读介质,其中所述处理器是动态可重配置逻辑电路处理器。
76.根据权利要求72所述的计算机可读介质,其中所述一组指令还包括向一个或多个定制指令的库添加新定制指令,所述新定制指令包括在所述替换期间未被所述一个或多个定制指令替换的程序中的指令。
77.一种包含要在计算机中执行的用于生成动态逻辑电路可重配置处理器的逻辑电路配置信息的一组指令的计算机可读介质,所述一组指令包括:
从用高级语言描述的程序中的指令提取指令模式;
将所提取的指令模式与一个或多个定制指令的模式相比较;
用所述一个或多个定制指令替换所述程序中的指令,以便生成指令集;以及
从与所述指令集中包括的一个或多个定制指令相关联的逻辑元件连接信息和从所述处理器的至少一个可编程元件的布图布置信息,生成所述逻辑电路配置信息。
78.根据权利要求77所述的计算机可读介质,其中所述一组指令还包括提取与被所述定制指令替换的指令相关联的逻辑元件连接信息,并从所述逻辑元件连接信息和所述定制指令生成所述指令集体系结构。
79.根据权利要求78所述的计算机可读介质,其中所述一组指令还包括在所述库中存储所述逻辑元件连接信息,以便与所述定制指令相关联。
80.根据权利要求79所述的计算机可读介质,其中所述处理器是动态可重配置逻辑电路处理器。
81.根据权利要求77所述的计算机可读介质,其中所述一组指令还包括向一个或多个定制指令的库添加新定制指令,所述新定制指令包括在所述替换期间未被所述一个或多个定制指令替换的程序中的指令。
CNA200580047476XA 2004-11-30 2005-11-30 动态可重配置处理器 Pending CN101111834A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004345400 2004-11-30
JP345400/2004 2004-11-30
US11/267,026 2005-11-04
JP338457/2005 2005-11-24

Publications (1)

Publication Number Publication Date
CN101111834A true CN101111834A (zh) 2008-01-23

Family

ID=37188436

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA200580047476XA Pending CN101111834A (zh) 2004-11-30 2005-11-30 动态可重配置处理器

Country Status (3)

Country Link
US (1) US20060242385A1 (zh)
CN (1) CN101111834A (zh)
TW (1) TW200617703A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102393814A (zh) * 2011-07-18 2012-03-28 清华大学 一种由软件方式生成动态可重构处理器配置信息的系统
CN102947811A (zh) * 2010-02-01 2013-02-27 阿尔特拉公司 高效处理器装置和关联方法
CN103699832A (zh) * 2010-05-25 2014-04-02 威盛电子股份有限公司 微处理器以及相关的操作方法
CN104247268A (zh) * 2012-05-02 2014-12-24 株式会社半导体能源研究所 可编程逻辑器件
CN104461463A (zh) * 2013-09-20 2015-03-25 威盛电子股份有限公司 用于微处理器的动态重设方法
CN105515763A (zh) * 2014-10-01 2016-04-20 马克西姆综合产品公司 用于经由逻辑门加密来提高机密性的系统和方法
CN107526861A (zh) * 2016-06-15 2017-12-29 株式会社日立制作所 半导体lsi设计装置以及设计方法
CN108563449A (zh) * 2015-12-08 2018-09-21 上海兆芯集成电路有限公司 编译器系统及将应用源程序编译为可执行程序的方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7836317B2 (en) * 2000-05-12 2010-11-16 Altera Corp. Methods and apparatus for power control in a scalable array of processor elements
CA2510366C (en) * 2005-06-14 2013-02-26 Certicom Corp. System and method for remote device registration
JP4890976B2 (ja) * 2005-08-31 2012-03-07 キヤノン株式会社 暗号処理装置
JP4986206B2 (ja) * 2006-02-22 2012-07-25 株式会社日立製作所 暗号処理方法及び暗号処理装置
JP5260324B2 (ja) * 2006-02-28 2013-08-14 サーティコム コーポレーション 製品登録のシステム及び方法
FR2927438B1 (fr) * 2008-02-08 2010-03-05 Commissariat Energie Atomique Methode de prechargement dans une hierarchie de memoires des configurations d'un systeme heterogene reconfigurable de traitement de l'information
JP5163332B2 (ja) * 2008-07-15 2013-03-13 富士通セミコンダクター株式会社 設計プログラム、設計装置、および設計方法
US20110283089A1 (en) * 2009-01-28 2011-11-17 Harshal Ingale modularized micro processor design
US8364946B2 (en) * 2010-03-22 2013-01-29 Ishebabi Harold Reconfigurable computing system and method of developing application for deployment on the same
US8370784B2 (en) * 2010-07-13 2013-02-05 Algotochip Corporation Automatic optimal integrated circuit generator from algorithms and specification
US8880866B2 (en) * 2010-10-15 2014-11-04 Coherent Logix, Incorporated Method and system for disabling communication paths in a multiprocessor fabric by setting register values to disable the communication paths specified by a configuration
US9158544B2 (en) * 2011-06-24 2015-10-13 Robert Keith Mykland System and method for performing a branch object conversion to program configurable logic circuitry
US10089277B2 (en) 2011-06-24 2018-10-02 Robert Keith Mykland Configurable circuit array
CA2751388A1 (en) * 2011-09-01 2013-03-01 Secodix Corporation Method and system for mutli-mode instruction-level streaming
US9304770B2 (en) * 2011-11-21 2016-04-05 Robert Keith Mykland Method and system adapted for converting software constructs into resources for implementation by a dynamically reconfigurable processor
US9633160B2 (en) 2012-06-11 2017-04-25 Robert Keith Mykland Method of placement and routing in a reconfiguration of a dynamically reconfigurable processor
US8893094B2 (en) * 2011-12-30 2014-11-18 Intel Corporation Hardware compilation and/or translation with fault detection and roll back functionality
US8959469B2 (en) * 2012-02-09 2015-02-17 Altera Corporation Configuring a programmable device using high-level language
KR102032895B1 (ko) 2013-01-28 2019-11-08 삼성전자주식회사 기능 유닛들 간의 기능 로직 공유 장치, 방법 및 재구성 가능 프로세서
CN103164305B (zh) * 2013-03-20 2018-03-13 青岛中星微电子有限公司 一种自动生成图像处理模块验证平台的方法及装置
US9461815B2 (en) * 2013-10-18 2016-10-04 Advanced Micro Devices, Inc. Virtualized AES computational engine
US10157164B2 (en) * 2016-09-20 2018-12-18 Qualcomm Incorporated Hierarchical synthesis of computer machine instructions
US10838909B2 (en) 2018-09-24 2020-11-17 Hewlett Packard Enterprise Development Lp Methods and systems for computing in memory
CN112860619A (zh) * 2019-11-27 2021-05-28 量子芯云(北京)微电子科技有限公司 可重构智能控制器
CN114329352B (zh) * 2020-09-29 2025-08-05 腾讯科技(深圳)有限公司 代码保护方法、装置、设备以及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6052773A (en) * 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
WO2000049496A1 (en) * 1999-02-15 2000-08-24 Koninklijke Philips Electronics N.V. Data processor with a configurable functional unit and method using such a data processor
WO2002037264A2 (en) * 2000-11-06 2002-05-10 Broadcom Corporation Reconfigurable processing system and method

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102947811A (zh) * 2010-02-01 2013-02-27 阿尔特拉公司 高效处理器装置和关联方法
CN102947811B (zh) * 2010-02-01 2016-09-28 阿尔特拉公司 高效处理器装置和关联方法
CN103699832A (zh) * 2010-05-25 2014-04-02 威盛电子股份有限公司 微处理器以及相关的操作方法
CN103699832B (zh) * 2010-05-25 2017-03-01 威盛电子股份有限公司 微处理器以及相关的操作方法
CN102393814A (zh) * 2011-07-18 2012-03-28 清华大学 一种由软件方式生成动态可重构处理器配置信息的系统
CN102393814B (zh) * 2011-07-18 2016-01-13 清华大学 一种由软件方式生成动态可重构处理器配置信息的系统
CN104247268B (zh) * 2012-05-02 2016-10-12 株式会社半导体能源研究所 可编程逻辑器件
CN104247268A (zh) * 2012-05-02 2014-12-24 株式会社半导体能源研究所 可编程逻辑器件
US9379706B2 (en) 2012-05-02 2016-06-28 Semiconductor Energy Laboratory Co., Ltd. Programmable logic device
CN104461463A (zh) * 2013-09-20 2015-03-25 威盛电子股份有限公司 用于微处理器的动态重设方法
CN104461463B (zh) * 2013-09-20 2018-04-13 上海兆芯集成电路有限公司 用于微处理器的动态重设方法
CN105515763A (zh) * 2014-10-01 2016-04-20 马克西姆综合产品公司 用于经由逻辑门加密来提高机密性的系统和方法
CN105515763B (zh) * 2014-10-01 2020-12-22 马克西姆综合产品公司 用于经由逻辑门加密来提高机密性的系统和方法
CN108563449A (zh) * 2015-12-08 2018-09-21 上海兆芯集成电路有限公司 编译器系统及将应用源程序编译为可执行程序的方法
CN108563449B (zh) * 2015-12-08 2022-03-15 上海兆芯集成电路有限公司 编译器系统及将应用源程序编译为可执行程序的方法
CN107526861A (zh) * 2016-06-15 2017-12-29 株式会社日立制作所 半导体lsi设计装置以及设计方法
CN107526861B (zh) * 2016-06-15 2020-11-17 株式会社日立制作所 半导体lsi设计装置以及设计方法

Also Published As

Publication number Publication date
TW200617703A (en) 2006-06-01
US20060242385A1 (en) 2006-10-26

Similar Documents

Publication Publication Date Title
CN101111834A (zh) 动态可重配置处理器
US11868775B2 (en) Encoding and decoding variable length instructions
US9111060B2 (en) Partitioning designs to facilitate certification
US9032343B1 (en) Integrating multiple FPGA designs by merging configuration settings
US20070283311A1 (en) Method and system for dynamic reconfiguration of field programmable gate arrays
US7752592B2 (en) Scheduler design to optimize system performance using configurable acceleration engines
US20040130346A1 (en) Silicon object array with unidirectional segmented bus architecture
Huang et al. Managing dynamic reconfiguration overhead in systems-on-a-chip design using reconfigurable datapaths and optimized interconnection networks
US20080288909A1 (en) Template-Based Domain-Specific Reconfigurable Logic
US7676783B2 (en) Apparatus for performing computational transformations as applied to in-memory processing of stateful, transaction oriented systems
Kooli et al. Towards a truly integrated vector processing unit for memory-bound applications based on a cost-competitive computational sram design solution
Gokhale et al. High level compilation for fine grained FPGAs
US7065719B2 (en) Method for designing a system LSI
US10867090B2 (en) Method and apparatus for implementing an application aware system on a programmable logic device
JP2022101459A (ja) モジュラー誤り訂正符号回路
Castillo et al. A secure self-reconfiguring architecture based on open-source hardware
Sun et al. Designing high-quality hardware on a development effort budget: A study of the current state of high-level synthesis
KR20070097051A (ko) 동적으로 재구성 가능한 프로세서
JP4390211B2 (ja) カスタムlsi開発プラットフォーム、命令セット・アーキテクチャ及び論理回路構成情報の生成方法、並びにプログラム
Rákossy et al. Exploiting architecture description language for diverse IP synthesis in heterogeneous MPSoC
Muri et al. Embedded processor-in-memory architecture for accelerating arithmetic operations
CN119452357A (zh) 指针认证
Jozwiak et al. Hardware synthesis for reconfigurable heterogeneous pipelined accelerators
US20230052788A1 (en) Software-Defined Synthesizable Testbench
Piccolboni Multi-Functional Interfaces for Accelerators

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: TOKYO ELECTRON LTD.; APPLICANT

Free format text: FORMER OWNER: TOKYO ELECTRON LTD.

Effective date: 20080307

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20080307

Address after: Tokyo, Japan

Applicant after: Tokyo perseverance KCO cork

Co-applicant after: Kyushu University

Co-applicant after: Fukuoka county industry, science and technology revitalization Consortium

Co-applicant after: Kyushu System Information Technology Research Institute

Address before: Tokyo, Japan, Japan

Applicant before: Tokyo Electron Limited

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication