CN112433773B - 可重构处理器的配置信息记录方法及装置 - Google Patents
可重构处理器的配置信息记录方法及装置 Download PDFInfo
- Publication number
- CN112433773B CN112433773B CN202011465401.6A CN202011465401A CN112433773B CN 112433773 B CN112433773 B CN 112433773B CN 202011465401 A CN202011465401 A CN 202011465401A CN 112433773 B CN112433773 B CN 112433773B
- Authority
- CN
- China
- Prior art keywords
- configuration information
- field
- operation type
- recording
- bit field
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000015654 memory Effects 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 101100029138 Mycobacterium tuberculosis (strain ATCC 25618 / H37Rv) PE16 gene Proteins 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000010977 unit operation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供了一种可重构处理器的配置信息记录方法及装置,该方法包括:采集可重构处理器的配置信息;采用预定义的配置信息格式,记录所述配置信息;其中,所述预定义的配置信息格式为满足预设长度要求的配置信息格式,包括配置信息长度的扩展位和多个配置信息编码的保留位。本发明可以对可重构处理器的配置信息格式进行描述,扩展性强,灵活性高。
Description
技术领域
本发明涉及计算机硬件技术领域,尤其涉及一种可重构处理器的配置信息记录方法及装置。
背景技术
随着大数据、云计算和人工智能技术的兴起,高性能计算的实现是首先需要考虑的问题,但专用芯片的销售量远不足以覆盖其研发成本,在工艺制造水平达到一定数量级下,处理器性能就无法再依赖于工艺制造水平的发展,而需要在计算方式和架构创新上寻求新的解决方案。可重构处理器就是介于通用处理器与专用处理器之间的高性能处理器,强调资源的复用,寻求与ASIC类似的高性能和高效率。同时,通过改变功能配置信息从而能够适应不同的任务需求,从而具备与通用处理器相同的灵活性。可重构处理技术融合了二者的优点。
为追求与专用处理器相近的高性能和能量效率,使其处理计算密集型等数据并行度高的运算,可重构处理器的配置信息需要实现资源复用,因为相近的指令和数据有相近的译码或者访问方式,反复进行译码取址可能存在冗余。通过调整计算执行顺序,使得应用中相同或者规则的译码取址操作连续执行进行迭代,使其仅做一次译码而多次执行,就能达到节省处理时间或者降低功耗的目的。但是,固化的结构使得专用集成电路扩展性差,缺乏灵活性,从而不能适应不断发展的应用需求。
因此,目前需要一种具有较强的扩展性和灵活性的可重构处理器的配置信息格式的描述方案。
发明内容
本发明实施例提出一种可重构处理器的配置信息记录方法,用以对可重构处理器的配置信息格式进行描述,扩展性强,灵活性高,该方法包括:
采集可重构处理器的配置信息;
采用预定义的配置信息格式,记录所述配置信息;
其中,所述预定义的配置信息格式为满足预设长度要求的配置信息格式;
所述配置信息包括顶层型配置信息、ALU运算型配置信息和访存运算型配置信息;
所述预定义的配置信息格式包括用于记录顶层型配置信息的顶层型配置信息格式、用于记录ALU运算型配置信息的ALU运算型配置信息格式和用于记录访存运算型配置信息的访存运算型配置信息格式;
所述预定义的配置信息格式包括多个字段,每个字段处于不同位域;所述预设长度要求为64bit;
其中,顶层型配置信息格式包括扩展位字段、保留位字段和实际编码字段;
ALU运算型配置信息格式包括扩展位字段和实际编码字段;
访存运算型配置信息格式包括扩展位字段、保留位字段和实际编码字段。
本发明实施例提出一种可重构处理器的配置信息记录装置,用以对可重构处理器的配置信息格式进行描述,扩展性强,灵活性高,该装置包括:
配置信息采集模块,用于采集可重构处理器的配置信息;
配置信息记录模块,用于采用预定义的配置信息格式,记录所述配置信息;
其中,所述预定义的配置信息格式为满足预设长度要求的配置信息格式;
所述配置信息包括顶层型配置信息、ALU运算型配置信息和访存运算型配置信息;
所述预定义的配置信息格式包括用于记录顶层型配置信息的顶层型配置信息格式、用于记录ALU运算型配置信息的ALU运算型配置信息格式和用于记录访存运算型配置信息的访存运算型配置信息格式;
所述预定义的配置信息格式包括多个字段,每个字段处于不同位域;所述预设长度要求为64bit;
其中,顶层型配置信息格式包括扩展位字段、保留位字段和实际编码字段;
ALU运算型配置信息格式包括扩展位字段和实际编码字段;
访存运算型配置信息格式包括扩展位字段、保留位字段和实际编码字段。
本发明实施例还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述可重构处理器的配置信息记录方法。
本发明实施例还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述可重构处理器的配置信息记录方法的计算机程序。
在本发明实施例中,采集可重构处理器的配置信息;采用预定义的配置信息格式,记录所述配置信息;其中,所述预定义的配置信息格式为满足预设长度要求的配置信息格式,包括配置信息长度的扩展位和多个配置信息编码的保留位。在上述过程中,满足预设长度要求的配置信息格式,可以有效地用于粗粒度的可重构处理器中;配置信息长度的扩展位和多个配置信息编码的保留位,可以实现配置信息的扩展,因此具备高灵活性和强扩展性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中可重构处理器的配置信息记录方法的流程图;
图2为本发明实施例中配置信息与配置信息格式的分类示意图;
图3为本发明实施例中预定义的配置信息格式的结构示意图;
图4为本发明实施例中可重构处理器的配置信息记录装置的示意图;
图5为本发明实施例中计算机设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
图1为本发明实施例中可重构处理器的配置信息记录方法的流程图,如图1所示,该方法包括:
步骤101,采集可重构处理器的配置信息;
步骤102,采用预定义的配置信息格式,记录所述配置信息;
其中,所述预定义的配置信息格式为满足预设长度要求的配置信息格式,包括配置信息长度的扩展位和多个配置信息编码的保留位。
在本发明实施例中,满足预设长度要求的配置信息格式,可以有效地用于粗粒度的可重构处理器中;配置信息长度的扩展位和多个配置信息编码的保留位,可以实现配置信息的扩展,因此具备高灵活性和强扩展性。
具体实施时,可重构处理器的配置信息可通过配置控制器从缓存中采集,并发送至可重构处理器的可重构处理单元阵列PEA中,而PEA中每个PE采用预定义的配置信息格式,记录所述配置信息,预定义的配置信息格式是本发明实施例的关键点。
图2为本发明实施例中配置信息与配置信息格式的分类示意图,如图2所示,在一实施例中,所述配置信息包括顶层型配置信息、ALU运算型配置信息和访存运算型配置信息;
所述预定义的配置信息格式包括用于记录顶层型配置信息的顶层型配置信息格式、用于记录ALU运算型配置信息的ALU运算型配置信息格式和用于记录访存运算型配置信息的访存运算型配置信息格式。
可见,上述预定义的配置信息格式分别与配置信息的三种类型对应,通过分类表示,使得三种配置信息格式表示的三种配置信息更清楚,也更方便管理。
需要说明的是,本发明实施例中的配置包指的是整个可重构处理单元阵列PEA需要的配置信息,包括了每个处理单元PE中需要被分配的配置信息,配置信息可以是执行任务,当然,也有可能有的PE没有执行任务。在一个PE的执行任务中,其配置信息的分布形式一般包括了1条顶层型配置信息(顶层型配置信息首先开始执行)和若干条另外两类配置信息(可能两类都有,也可能只有其中的一类,关键是取决于执行任务的类型),也就是说所有的PE执行任务都是统一从顶层型配置信息开始重新执行。
图3为本发明实施例中预定义的配置信息格式的结构示意图,如图3所示,在一实施例中,所述预定义的配置信息格式包括多个字段,每个字段处于不同位域;
所述字段的类型包括扩展位字段、保留位字段或实际编码字段;
所述预设长度要求为64bit。
在上述实施例中,扩展位字段是指该类型的字段对应的位域用于记录配置信息长度的扩展位,保留位字段是指该类型的字段对应的位域用于记录配置信息编码的保留位;实际编码字段是指该类型的字段对应的位域用于记录具有实际含义的编码的字段。扩展位字段和保留位字段实现未来配置信息的扩展,故其具备高灵活性和高扩展性,通过灵活的动态配置,在充分利用硬件资源的前提下,可支持多种运算类型的运算,同时适用于不同的阵列大小、不同的存储大小的可重构阵列,从而提高其计算吞吐率、计算性能和能效。预设长度要求为64bit,可以有效地用于粗粒度可重构处理器。
下面分别介绍顶层型配置信息格式、ALU运算型配置信息格式、以及访存运算型配置信息格式的配置信息。
一、顶层型配置信息格式(Head-Config)
位域[63]:字段ConfigExtend,共1bit,为扩展位字段,表示配置信息长度的扩展位,暂时保留,可始终置0。如果ConfigExtend=0,表示配置信息长度不进行扩展;如果ConfigExtend=1,表示配置信息长度可以进行扩展,例如,在本发明实施例中采用的配置信息的长度为64bit,如果ConfigExtend=1,则可以将配置信息的长度扩展为64+8,64+16,64+32,64+64bit,等等。
位域[62:61]:字段Func,共2bit,为实际编码字段,用于记录PE存储的配置信息的类型,当该字段为00时表示配置信息为顶层型配置信息。
位域[60:56]:字段Task_PackageNum,共5bit,为实际编码字段,用于记录当前PE将执行任务所需要的总共的配置包的个数。
位域[55:53]:共3bit,为保留位字段,即该位域中的位为保留位,可始终置0。
位域[52:48]:字段Package_Index,共5bit,为实际编码字段,表示当前PE执行任务所需的配置包的索引index,当该位等于执行任务所需的总共的配置包的个数时,则表示该PE执行任务完成。
位域[47:45]:字段Bit_width,为保留位字段,可始终置0。
位域[44:37]:字段IndexPE,共8bit,为实际编码字段,表示当前的配置包所属的PE在该PEA中的index。驱动PEA中的控制器为每个PE分配配置包。
位域[36:30]:字段Iteration_PEA,共7bit,为实际编码字段,用于记录可重构处理单元阵列PEA的配置信息的迭代次数;需要pe_enable的使能信号,并且每次PEA所有的PE都统一从顶层型配置信息重新开始执行,其中访存运算的访存地址从其表示的基址重新开始。
位域[29:23]:字段Iteration_PE,共7bit,为实际编码字段,用于记录PEA中每个PE的当前配置包需要在PE内部循环的迭代次数;不需要pe_enabel使能,每次自行从当前配置包的迭代行(位域[16:15]表示迭代行)记录的配置信息开始重复执行,其中LSU运算的访存从上次迭代结束的地址继续累加迭代。
位域[22:17]:字段Initial_Idle,共6bit,为实际编码字段,表示当前PE在执行顶层型配置信息时,需要空闲的周期数,达到该空闲的周期数后,当前PE才去执行下一配置信息。顶层型配置信息格式中位域[14:13]的两位已扩展给Initial_Idle,作为其最高的两位,即一共8位用以字段Initial_Idle的表示。
位域[16:15]:字段Iteration_Line,共2bit,为实际编码字段,当PE根据Iteration_PE进行PE内部循环迭代时,其每次迭代均从Iteration_Line这一迭代行记录的配置信息开始重复执行。
位域[14:12]:共3bit,为实际编码字段,该位域已被其它字段扩展使用,目前该位域的[14:13]的两位扩展给了Iteration_Idle,作为其最高两位;该位域的[12]位扩展给了Iteration_PE,作为其最高位。
域[11:6]:共6bit,为保留位字段,可始终置0。
位域[5:0]:字段Count,共6bit,为实际编码字段,记录当前PE所有配置包有多少条配置信息,目前最大支持一个配置包中含有16条配置信息,PE乒乓执行时每个配置包最大含有8条配置信息,其第一条配置信息一般均为顶层型配置信息。
二、ALU运算型配置信息格式(ALU-Config)
在一实施例中,ALU运算型配置信息包括MUL类运算型配置信息和MAC类运算型配置信息。
位域[63]:字段ConfigExtend,共1bit,为扩展位字段,表示配置信息长度的扩展位,暂时保留,可始终置0。
位域[62:61]:字段Func,共2bit,为实际编码字段,用于记录PE存储的配置信息的类型,当该字段为01时表示配置信息为ALU运算型配置信息。
位域[60:53]:字段In1,共8bit,为实际编码字段,用于表示32bit的操作数1的数据来源,下面分别进行说明:(1)In1[7:5]=000,表示数据来源于本PE的局部寄存器堆,In1[4:0]用于记录局部寄存器Index,目前支持12个局部寄存器,0-7位为数据寄存器,8-11位为迭代寄存器(In1[4:0]最大可支持32个局部寄存器)。(2)In1[7:5]=001,表示数据来源于本PEA阵列的全局寄存器堆,In1[4:0]用于记录全局寄存器的Index;目前实现支持最大20个全局寄存器,0-15位为数据寄存器位,16-19位为迭代寄存器位。(3)In1[7:5]=010,表示数据来源于其它相连PE的计算结果Out1。当In1[4]=0时,表示数据来自其它PE的输出寄存器Out1,In1[3:0]则表示该PE互连Router的Index,最大支持16个不同PE的数据来源;In1[4]=1,表示数据来自其它PE的Execute单元运算的输出,尚未写入Out1;In1[3:0]则表示该PE互连Router的Index,最大支持16个不同PE的数据来源。(4)In1[7:5]=011,数据来源于本PE的计算结果Out1,或者本PE的操作数1的脉动传递输出的结果Out2。In1[4:3]=00,表示数据来自本PE运算后的结果,并从写回到流水线上的输出寄存器Out1读取;In1[4:3]=10表示数据来自本PE的运算后的输出结果Out1,尚未写入流水线上寄存器Out1;In1[4:3]=01,表示操作数1的脉动传递输出的结果Out2,从写回到流水线上的输出寄存器Out2读取;In1[4:3]=11,表示数据来自源操作数1的脉动传递输出结果Out2,但尚未写入流水线上寄存器Out2。(5)当In1[7:5]=100,数据来源于其它相连PE的操作数结果Out2,该数据来源表示的是用于脉动计算时一个操作数在阵列上进行脉动传递。In1[4]=0,表示数据来自其它PE的操作数1写入流水线上的输出寄存器Out2,此时In1[3:0]则表示该PE互连Router的Index,最大支持16个不同PE的数据来源;In1[4]=1时,表示数据来自其它PE的源操作数1传递的输出,但尚未写入Out2,此时In1[3:0]则表示该PE互连Router的Index,最大支持16个不同PE的数据来源。
位域[52:45]:字段In2,共8bit,为实际编码字段,用于表示32bit操作数2的数据来源,其具体编码和含义与字段In1一致,支持其访问全局寄存器,其目的在于降低全局寄存器访问延时和面积开销;但当后续立即数标志使能时,表示In2为立即数,最大支持255的立即数,即In2_Imm[31:0]={24’b{In2[7],In2}}。
位域[44:37]:字段In3,共8bit,为实际编码字段,用于表示操作数3,32bit的数据来源,具体编码和含义与字段In1一致,但硬件不支持访问GR。
位域[36:31]:字段In4,共6bit,为实际编码字段,用于表示操作数4,1bit的数据来源。In4[5]=1,表示数据来源于其它相连PE的计算结果Out3,此时,如果In4[4]=0,表示数据来自其它PE的输出寄存器Out3,In4[3:0]则表示该PE互连Router的Index,最大支持16个不同PE的数据来源;In4[4]=1,表示数据来自其它PE的ALU运算的输出,尚未写入Out3;In4[3:0]则表示该PE互连Router的Index,最大支持16个不同PE的数据来源。In4[5]=0,表示数据来源于本PE的计算结果Out3,In4[4]=0,表示数据来自本PE的输出寄存器Out3;In4[4]=1,表示数据来自本PE的Execute单元运算的Out3输出,但尚未写入流水线寄存器Out3。
位域[30]:字段Imm,共1bit,为实际编码字段,用于表示立即数标志位,判断是否立即数参与ALU运算,Imm=1,表示操作数2来自立即数,否则为寄存器操作运算,其它操作数无立即数参与运算。
位域[29:23]:字段Out1,共7bit,为实际编码字段,用于表示32bit的输出数据1的计算结果输出,Out1表示运算结果的输出,具体为:Out1[6:5]=00,表示输出数据1将输出到本PE的局部寄存器堆,Out1[4:0]表示局部寄存器Index,目前仅支持8个局部寄存器,0-7位为数据寄存器,8-11位为迭代寄存器,同时流水线寄存器Out1Reg默认是被写入的;Out1[6:5]=01,表示输出数据1将输出本PEA阵列的全局寄存器,Out1[4:0]表示全局寄存器Index,目前版本支持16个全局寄存器,0-15位为数据寄存器,16-19位为迭代寄存器,同时流水线寄存器Out1Reg默认是被写入的;Out1[6:5]=10,表示输出数据1将只输出本PE的输出寄存器Out1,即不写入任何其它局部或全局寄存器。
位域[22:16]:字段Out2,共7bit,为实际编码字段,用于表示32bit的输出数据2的结果输出,字段Out2表示操作数1的直接传递输出,具体用来支持脉动阵列运算而设计,编码与Out1一致,只是在硬件上不支持写全局寄存器GR和局部寄存器LR,其主要目的在于降低全局寄存器和局部寄存器访问延时和面积开销。
位域[15]:字段IItype,共1bit,为实际编码字段,用于确定PEA的配置信息的迭代方式,还可以确定idel的方式。IItype=0,表示PEA先迭代完,再统一进行一次Idle,此工作模式适合PEA没有访存冲突的Spatial的静态运算模式,以及比较理想的temporal的动态运算模式。此工作模式主要支持如下几种方式:(1)单条配置信息只迭代,不停顿;(2)单条配置信息不迭代,但是停顿;(3)单条配置信息先迭代完,然后进行统一的停顿。IItype=1,表示每进行一次运算,然后再进行一次停顿Idle,此工作模式适合PEA存在访存冲突的Spatial的静态运算模式、存在数据冒险问题的Spatial的静态运算模式、存在多周期和单周期不匹配的temporal的动态运算模式等;此工作模式主要支持如下几种方式:(1)此模式Idle必须大于0;(2)单条配置每运算(发射)一次,后再进行一次停顿Idle,直到完成所有的迭代次数也包括了其后的停顿。
位域[14:5]:字段Iteration,共10bit,为实际编码字段,该字段表示本条配置信息迭代重复的次数Iter_Num,以及本条配置信息迭代执行完成后,需要间隔的周期数Iter_II。(1)Iteration[9:8]=00,表示以立即数的形式表示迭代次数和迭代间隔,即Iteration[7:3]表示本条配置信息需要迭代重复的次数Iter_Num,最大重复31次;Iteration[2:0]表示本条配置信息迭代重复后,需要间隔的周期数Iter_II,最大间隔7个周期;(2)Iteraion[9:8]=01,且Iter_Num大于等于32或Iter_II大于等于8,表示去取全局寄存器中的存储的值来表示迭代次数和迭代间隔,Iteration[7:3]用于记录全局寄存器堆的Index(目前20个,且只能访问16-19这4个专用全局寄存器),且获得全局寄存器的32bit值,其中全局寄存器中g[31:10]表示迭代次数Iter_Num,全局寄存器中g[9:0]位表示迭代间隔Iter_II。(3)Iteration[9:8]=10,且Iter_Num大于等于32或者Iter_II大于等于8,表示去取局部寄存器堆中的存储的值来表示迭代次数和迭代间隔。Iteration[7:3]用于记录局部寄存器的Index,其中局部寄存器中g[31:10]表示迭代次数Iter_Num;局部寄存器中g[9:0]表示迭代间隔Iter_II。
位域[4:0]:字段Opcode,共5bit,为实际编码字段,用于确定ALU的运算类型;所述字段Opcode最大支持32种运算类型,其中,支持的运算类型中包括二目运算和三目运算,在本发明实施例中提出的记录方法中,目前支持20种,其余编码类型暂时保留。
三、访存运算型配置信息格式(LSU-Config)
位域[63]:字段ConfigExtend,共1bit,为扩展位字段,目前不扩展,可始终置0。
位域[62:61]:字段Func,共2bit,为实际编码字段,用于记录PE存储的配置信息的类型,当该字段为10时表示配置信息为访存运算型配置信息。
位域[60:53]:字段AddrMem,共8bit,为实际编码字段,表示访问Shared Memory运算的基址,支持访问2个不同的Shared Memory,单个16KB,即深度256×32bit。
位域[52:45]:字段InMem,共8bit,为实际编码字段,表示32bit的Store访存数据输入。具体编码和含义与ALU运算型配置信息格式中的字段In2字段一致,支持访问全局寄存器。
位域[44:37]:字段DirectAddrMem,共8bit,为实际编码字段,用于参与ShareMemory的直接立即数地址计算。
位域[36:33]:字段Offset,共4bit,为实际编码字段,表示访存运算配置在循环迭代时的地址偏移量,即访存时地址自增时进行的偏移量,ALU运算型配置信息格式中位域[32]的字段offset_extend扩展给Offset字段,使Offset的大小5bit。
位域[32]:字段offset_extend,共1bit,为实际编码字段,扩展给Offset字段最高位。
位域[31:30]:为保留位字段,共2bit,目前这两位仍保留未使用。
位域[29:23]:字段Out1,共8bit,为实际编码字段,用于表示输出数据1,是访存输出数据的目标地址,具体编码和含义与ALU运算型配置信息格式中的字段Out1一致。
位域[22:19]:为保留位字段,共4bit,可始终置0,可用于未来访存地址的扩展,如Sharememory的空间大小,不同Sharememory的数据交互;或者其它类型配置信息的扩展。
位域[18]:字段Addr_Loop,共1bit,为实际编码字段,用于表示同类访存配置间(Load/Store)地址自增标志,即Addr_Loop为真时,在同一个配置包中,下一条同类访存配置间(Load或者Store)基于上一条最后访存地址,然后自增。尤其在顶层型配置信息的PE_Iteration大于0的工作模式下,需要连续执行配置包相关的操作。具体含义为:(1)Addr_Loop=0,表示下一条同类访存配置间(Load或者Store)根据该条配置信息的访存地址字段,随字段offset自增。(2)Addr_Loop=1,表示下一条同类访存配置(Load或者Store)基于上一条配置信息的最后访存地址,随字段offset自增。
位域[17]:字段IItype,共1bit,为实际编码字段,用于确定PEA的配置信息的迭代方式,还可以确定idel的方式,此字段有与ALU运算型配置信息格式中字段IItype的编码、含义和功能保持一致。
位域[16:15]:字段IncreaseFlag,共2bit,为实际编码字段,表示访存地址的自增或者自减的标志位,例如表示访存地址自动增加Offset,否则访存地址由配置信息中的输入地址决定(即由字段AddrMem和字段DirectAddrMem共同决定,具体含义如下:(1)IncreaseFlag=00,表示访存地址不自增,也不自减,由配置信息中的输入地址决定(AddrMem+DirectAddrMem)。(2)IncreaseFlag=01,表示访存地址自增的标志位,高表示访存地址自动增加Offset;否则访存地址由配置中的输入地址决定(AddrMem+DirectAddrMem)。(3)IncreaseFlag=10,表示访存地址自减的标志位,高表示访存地址自动减少Offset,否则访存地址由配置信息中的输入地址决定(AddrMem+DirectAddrMem)。(4)IncreaseFlag=11,保留未使用。
位域[14:5]:字段Iteration,共10bit,为实际编码字段,用于表示本条配置信息迭代重复的次数,以及迭代间隔。
位域[4:2]:为保留位字段,共3bit,可始终置0。
位域[1:0]:字段Opcode,共2bit,为实际编码字段,用于确定访存运算型配置信息LSU的访存类型,其访存类型分为4种:全局Load、全局Store、局部Load、局部Store。
下面给出一个具体实施例,来说明可重构处理器的配置信息记录方法的具体应用。
对于某实际的可重构处理器,采集其配置信息,之后采用本发明实施例预定义的配置信息格式记录采集的配置信息,最后记录的配置信息如下:
一、以PE1的顶层配置信息为例进行顶层配置信息格式的说明。
位域[63]:字段ConfigExtend,编码值为0,即配置信息长度不进行扩展;
位域[62:61]:字段为Func,编码值为00,表示当前的配置信息为顶层型配置信息Top-Config;
位域[60:56]:字段Task_PackageNum,编码值为0000,表示有1个配置包的任务;
位域[55:53]:为保留位字段,其编码值置为000;
位域[52:48]:字段Package_Index,其编码值为00000,表示当前PE执行任务所需的配置包为当前所有配置包中的第1个配置包;
位域[47:45]:字段Bit_width,其编码值为000,表示为32bit的运算的操作数;
位域[44:37]:字段IndexPE,其编码值为00000001,表示当前PE为PE1;
位域[36:30]:字段Iteration_PEA,其编码值为0000010,表示PEA的配置信息的迭代次数为2;
位域[29:23]:字段Iteration_PE,其编码值0000010,表示PE的当前配置包需要在PE内部循环的迭代次数为2;
位域[22:17]:字段Initial_Idle,其编码值为001000,表示PE执行下一条Store运算的配置信息时,间隔8个周期执行,周期数需要具体进行计算。
位域[16:15]:字段Iteration_Line,其编码值为01,表示PE根据Iteration_PE进行PE内部循环迭代时,每次迭代从第2行记录的配置信息开始;
位域[14:12],编码值为000;
位域[11:6],为保留位字段,其编码值为000000;
位域[5:0],字段Count,其编码值为000001,表示包括了顶层型配置信息和Store配置信息在内,共有2条配置信息。
综合上述字段,PE1的顶层型配置信息的具体编码为:
0_00_00000_000_00000_000_00000001_0000010_0000010_001000_01_00_0_000000_000001。
二、以PE8进行加法操作的配置信息具体说明ALU运算型配置信息格式表示的ALU运算型配置信息,其中加法操作的数据来源于PE0和PE16。
位域[63]:字段ConfigExtend,编码值为0,即配置信息长度不进行扩展;
位域[62:61]:字段Func,编码值为00,表示当前的配置信息为ALU运算型配置信息ALU-Config;
位域[60:53]:字段In1,编码值为10000000时,其中高四位1000表示数据来源于其它相连PE的操作数结果Out2;低四位0000表示PEA中本PE的上方PE即PE0的输出;
位域[52:45]:字段In2,编码值为10000001,其中高四位1000表示数据来源于其它相连PE的操作数结果Out2;,低四位0001表示PEA中本PE下方的PE即PE16的输出;
位域[44:37]:字段In3,编码值为00000000,由于In3不参与运算,不受约束,故默认为0;
位域[36:31]:字段In4,编码值为000000,表示In4不参与运算,不受约束,默认为0;
位域[30]:字段Imm,编码值为0,表示操作数2不是立即数;
位域[29:23]:字段Out1,编码值为0100001,表示Add计算结果写回全局寄存器GR1,并默认输出到输出寄存器中;
位域[22:16]:字段Out2,编码值为1000000,表示默认不写GR和LR;
位域[15]:字段IItype,编码值为0,表示PEA先连续迭代完,然后再进行Idle;
位域[14:5]:字段为Iteration,编码值为0001010101,其中高两位00表示迭代次数使用立即数表示,中间5位01010表示迭代重复的次数Iter_Num为10次,低3位101表示间隔的周期数Iter_II为5个周期,这是由于load运算为6周期,比Add多5个周期。
位域[4:0]:字段Opcode,编码值为00010,表示ALU运算类型为进行有符号Add运算。
综上,PE8的ALU运算型配置信息的具体编码为:
0_00_00000_000_00000_000_00001000_0000010_0000010_000100_01_00_0_000000_000001。
三、以PE16进行load操作的配置信息进行具体说明访存运算型配置信息格式保存的访存运算型配置信息。存运算配置信息格式Load-Config的描述方法。
位域[63]:字段ConfigExtend,编码值为0,即配置信息长度不进行扩展;
位域[62:61]:字段Func,编码值为00,表示当前的配置信息为存运算型配置信息Load-Config;
位域[60:53]:字段AddrMem,编码值为10001000,其中高三位100表示立即数访存,低5位与位域[52:45]共同构成13位访存地址参与立即数运算;
位域[52:45]:字段DirectAddrMem,其编码值为00100100,表示参与立即数地址计算,立即数表示的地址为右边高8个bank的36,即在第13个bank,单个bank为256×32;
位域[44:37]:字段InMem,其编码值为00000000,store运算用时,load运算可默认为0;
位域[36:33]:字段Offset,其编码值为0001,表示访存偏移量为1,累加1时,可连续访问ShareMemory中的数组;
位域[32]:为字段offset_extend,共1bit,为实际编码字段,扩展给Offset字段最高位;
位域[31:30]:为保留位字段;
位域[29:23]:字段Out1,其编码值为0000001,表示load结果写入局部寄存器LR1中,且默认直接输出到输出寄存器中;
位域[22:19]:保留位字段,全部置0;
位域[18]:字段Addr_Loop,共1bit,为实际编码字段,用于表示同类访存配置间(Load/Store)地址自增标志,Addr_Loop=0;
位域[17]:字段IItype,其编码值为0,表示先连续迭代,然后再进行Idle;
位域[16:15]:字段IncreaseFlag,其编码值为01,表示进行自增操作;
位域[14:5]:字段Iteration,其编码值为0001010000,其中高两位00表示立即数表示,中间5位01010表示load操作迭代10次,低3位000表示间隔0个周期;
位域[4:2]:保留位字段,全部置零;
位域[1:0]:Opcode字段,其编码值为00,表示进行全局load运算,可以访问所有ShareMemory的Bank
综上所述字段,PE16的存运算型配置信息的具体编码为:
0_10_10001000_00100100_00000000_0001_000_0000001_10000_0_01_0001010000_000_00。
综上所述,在本发明实施例提出的方法中,采集可重构处理器的配置信息;采用预定义的配置信息格式,记录所述配置信息;其中,所述预定义的配置信息格式为满足预设长度要求的配置信息格式,包括配置信息长度的扩展位和多个配置信息编码的保留位。在上述过程中,满足预设长度要求的配置信息格式,可以有效地用于粗粒度的可重构处理器中;配置信息长度的扩展位和多个配置信息编码的保留位,可以实现配置信息的扩展,因此具备高灵活性和强扩展性。
基于同样的发明构思,本发明实施例还提供了一种可重构处理器的配置信息记录装置,如下面的实施例所述。由于这些解决问题的原理与可重构处理器的配置信息记录方法相似,因此装置的实施可以参见方法的实施,重复之处不在赘述。
图4为本发明实施例中可重构处理器的配置信息记录装置的示意图,如图4所示,该装置包括:
配置信息采集模块401,用于采集可重构处理器的配置信息;
配置信息记录模块402,用于采用预定义的配置信息格式,记录所述配置信息;
其中,所述预定义的配置信息格式为满足预设长度要求的配置信息格式,包括配置信息长度的扩展位和多个配置信息编码的保留位。
在一实施例中,所述预定义的配置信息格式包括多个字段,每个字段处于不同位域;
所述字段的类型包括扩展位字段、保留位字段或实际编码字段;
所述预设长度要求为64bit。
在一实施例中,所述配置信息包括顶层型配置信息、ALU运算型配置信息和访存运算型配置信息;
所述预定义的配置信息格式包括用于记录顶层型配置信息的顶层型配置信息格式、用于记录ALU运算型配置信息的ALU运算型配置信息格式和用于记录访存运算型配置信息的访存运算型配置信息格式。
在一实施例中,在顶层型配置信息格式中,字段Iteration_PEA用于记录可重构处理单元阵列PEA的配置信息的迭代次数;字段Iteration_PE,用于记录PEA中每个处理单元PE的当前配置包需要在PE内部循环的迭代次数。
在一实施例中,在ALU运算型配置信息格式或访存运算型配置信息格式中,字段IItype用于确定PEA的配置信息的迭代方式。
在一实施例中,ALU运算型配置信息包括MUL类运算型配置信息和MAC类运算型配置信息。
在一实施例中,在ALU运算型配置信息格式中,字段Opcode用于确定ALU的运算类型;
所述字段Opcode最大支持32种运算类型,其中,支持的运算类型中包括二目运算和三目运算。
综上所述,在本发明实施例提出的装置中,采集可重构处理器的配置信息;采用预定义的配置信息格式,记录所述配置信息;其中,所述预定义的配置信息格式为满足预设长度要求的配置信息格式,包括配置信息长度的扩展位和多个配置信息编码的保留位。在上述过程中,满足预设长度要求的配置信息格式,可以有效地用于粗粒度的可重构处理器中;配置信息长度的扩展位和多个配置信息编码的保留位,可以实现配置信息的扩展,因此具备高灵活性和强扩展性。
本申请的实施例还提供一种计算机设备,图5为本发明实施例中计算机设备的示意图,该计算机设备能够实现上述实施例中的可重构处理器的配置信息记录方法中全部步骤,所述计算机设备具体包括如下内容:
处理器(processor)501、存储器(memory)502、通信接口(CommunicationsInterface)503和通信总线504;
其中,所述处理器501、存储器502、通信接口503通过所述通信总线504完成相互间的通信;所述通信接口503用于实现服务器端设备、检测设备以及用户端设备等相关设备之间的信息传输;
所述处理器501用于调用所述存储器502中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的可重构处理器的配置信息记录方法中的全部步骤。
本申请的实施例还提供一种计算机可读存储介质,能够实现上述实施例中的可重构处理器的配置信息记录方法中全部步骤,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的可重构处理器的配置信息记录方法的全部步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种可重构处理器的配置信息记录方法,其特征在于,包括:
采集可重构处理器的配置信息;
采用预定义的配置信息格式,记录所述配置信息;
其中,所述预定义的配置信息格式为满足预设长度要求的配置信息格式;
所述配置信息包括顶层型配置信息、ALU运算型配置信息和访存运算型配置信息;
所述预定义的配置信息格式包括用于记录顶层型配置信息的顶层型配置信息格式、用于记录ALU运算型配置信息的ALU运算型配置信息格式和用于记录访存运算型配置信息的访存运算型配置信息格式;
所述预定义的配置信息格式包括多个字段,每个字段处于不同位域;所述预设长度要求为64bit;
其中,顶层型配置信息格式包括扩展位字段、保留位字段和实际编码字段;
ALU运算型配置信息格式包括扩展位字段和实际编码字段;
访存运算型配置信息格式包括扩展位字段、保留位字段和实际编码字段。
2.如权利要求1所述的可重构处理器的配置信息记录方法,其特征在于,在顶层型配置信息格式中,字段Iteration_PEA用于记录可重构处理单元阵列PEA的配置信息的迭代次数;字段Iteration_PE,用于记录PEA中每个处理单元PE的当前配置包需要在PE内部循环的迭代次数。
3.如权利要求1所述的可重构处理器的配置信息记录方法,其特征在于,在ALU运算型配置信息格式或访存运算型配置信息格式中,字段IItype用于确定PEA的配置信息的迭代方式。
4.如权利要求1所述的可重构处理器的配置信息记录方法,其特征在于,ALU运算型配置信息包括MUL类运算型配置信息和MAC类运算型配置信息。
5.如权利要求1所述的可重构处理器的配置信息记录方法,其特征在于,在ALU运算型配置信息格式中,字段Opcode用于确定ALU的运算类型;
所述字段Opcode最大支持32种运算类型,其中,支持的运算类型中包括二目运算和三目运算。
6.一种可重构处理器的配置信息记录装置,其特征在于,包括:
配置信息采集模块,用于采集可重构处理器的配置信息;
配置信息记录模块,用于采用预定义的配置信息格式,记录所述配置信息;
其中,所述预定义的配置信息格式为满足预设长度要求的配置信息格式;
所述配置信息包括顶层型配置信息、ALU运算型配置信息和访存运算型配置信息;
所述预定义的配置信息格式包括用于记录顶层型配置信息的顶层型配置信息格式、用于记录ALU运算型配置信息的ALU运算型配置信息格式和用于记录访存运算型配置信息的访存运算型配置信息格式;
所述预定义的配置信息格式包括多个字段,每个字段处于不同位域;所述预设长度要求为64bit;
其中,顶层型配置信息格式包括扩展位字段、保留位字段和实际编码字段;
ALU运算型配置信息格式包括扩展位字段和实际编码字段;
访存运算型配置信息格式包括扩展位字段、保留位字段和实际编码字段。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5任一项所述方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至5任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011465401.6A CN112433773B (zh) | 2020-12-14 | 2020-12-14 | 可重构处理器的配置信息记录方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011465401.6A CN112433773B (zh) | 2020-12-14 | 2020-12-14 | 可重构处理器的配置信息记录方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112433773A CN112433773A (zh) | 2021-03-02 |
CN112433773B true CN112433773B (zh) | 2021-11-30 |
Family
ID=74692158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011465401.6A Active CN112433773B (zh) | 2020-12-14 | 2020-12-14 | 可重构处理器的配置信息记录方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112433773B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328821B (zh) * | 2022-10-18 | 2022-12-23 | 北京红山微电子技术有限公司 | 基于GPU的可重构Cache系统、访存系统及访存方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015149433A1 (en) * | 2014-03-31 | 2015-10-08 | Tsinghua University | Method and device for generating configuration information of dynamic reconfigurable processor |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101581882B1 (ko) * | 2009-04-20 | 2015-12-31 | 삼성전자주식회사 | 재구성 가능한 프로세서 및 그 재구성 방법 |
KR20120061593A (ko) * | 2010-12-03 | 2012-06-13 | 삼성전자주식회사 | 스레드 동기화 장치 및 방법 |
CN102411555B (zh) * | 2011-08-17 | 2014-01-01 | 清华大学 | 一种可伸缩式动态可重构阵列配置信息方法 |
US9727460B2 (en) * | 2013-11-01 | 2017-08-08 | Samsung Electronics Co., Ltd. | Selecting a memory mapping scheme by determining a number of functional units activated in each cycle of a loop based on analyzing parallelism of a loop |
CN103914404B (zh) * | 2014-04-29 | 2017-05-17 | 东南大学 | 一种粗粒度可重构系统中的配置信息缓存装置及压缩方法 |
CN105302525B (zh) * | 2015-10-16 | 2018-01-05 | 上海交通大学 | 用于多层次异构结构的可重构处理器的并行处理方法 |
CN105468568B (zh) * | 2015-11-13 | 2018-06-05 | 上海交通大学 | 高效的粗粒度可重构计算系统 |
-
2020
- 2020-12-14 CN CN202011465401.6A patent/CN112433773B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015149433A1 (en) * | 2014-03-31 | 2015-10-08 | Tsinghua University | Method and device for generating configuration information of dynamic reconfigurable processor |
Also Published As
Publication number | Publication date |
---|---|
CN112433773A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112612521A (zh) | 一种用于执行矩阵乘运算的装置和方法 | |
WO2007084700A2 (en) | System and method for thread handling in multithreaded parallel computing of nested threads | |
CN102279818B (zh) | 支持有限共享的向量数据访存控制方法及向量存储器 | |
KR101639853B1 (ko) | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당 | |
CN1659514A (zh) | 用于在多线程处理器中数据传送的寄存器 | |
CN112232517B (zh) | 一种人工智能加速引擎和人工智能处理器 | |
CN100573500C (zh) | 基于Avalon总线的流处理器IP核 | |
CN112433773B (zh) | 可重构处理器的配置信息记录方法及装置 | |
Min et al. | NeuralHMC: An efficient HMC-based accelerator for deep neural networks | |
CN102629238B (zh) | 支持向量条件访存的方法和装置 | |
Ross et al. | Implementing openshmem for the adapteva epiphany risc array processor | |
CN113407483B (zh) | 一种面向数据密集型应用的动态可重构处理器 | |
CN114398308A (zh) | 基于数据驱动粗粒度可重构阵列的近内存计算系统 | |
US20210255793A1 (en) | System and method for managing conversion of low-locality data into high-locality data | |
KR101639854B1 (ko) | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 상호접속 구조 | |
Shang et al. | LACS: A high-computational-efficiency accelerator for CNNs | |
CN112559954A (zh) | 基于软件定义可重构处理器的fft算法处理方法及装置 | |
CN111475205A (zh) | 一种基于数据流解耦合的粗粒度可重构阵列结构设计方法 | |
CN103455367A (zh) | 用于实现可重构系统中多任务调度的管理单元和方法 | |
WO2023045250A1 (zh) | 一种内存池资源共用的方法、装置、设备及可读介质 | |
CN111078286A (zh) | 数据通信方法、计算系统和存储介质 | |
CN104636207A (zh) | 基于gpgpu体系结构的协同调度方法及系统 | |
Qiu et al. | An FPGA‐Based Convolutional Neural Network Coprocessor | |
CN112506853A (zh) | 零缓冲流水的可重构处理单元阵列及零缓冲流水方法 | |
CN112486904A (zh) | 可重构处理单元阵列的寄存器堆设计方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |