CN110806899B - 一种基于指令扩展的流水线紧耦合加速器接口结构 - Google Patents
一种基于指令扩展的流水线紧耦合加速器接口结构 Download PDFInfo
- Publication number
- CN110806899B CN110806899B CN201911061832.3A CN201911061832A CN110806899B CN 110806899 B CN110806899 B CN 110806899B CN 201911061832 A CN201911061832 A CN 201911061832A CN 110806899 B CN110806899 B CN 110806899B
- Authority
- CN
- China
- Prior art keywords
- stage
- accelerator
- instruction
- pipeline
- data
- 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
- 230000008878 coupling Effects 0.000 title description 3
- 238000010168 coupling process Methods 0.000 title description 3
- 238000005859 coupling reaction Methods 0.000 title description 3
- 230000001133 acceleration Effects 0.000 claims abstract description 55
- 230000004044 response Effects 0.000 claims abstract description 25
- 238000001514 detection method Methods 0.000 claims abstract description 16
- 230000000903 blocking effect Effects 0.000 claims abstract description 11
- 230000009471 action Effects 0.000 claims abstract description 6
- 230000007246 mechanism Effects 0.000 claims description 10
- BDEDPKFUFGCVCJ-UHFFFAOYSA-N 3,6-dihydroxy-8,8-dimethyl-1-oxo-3,4,7,9-tetrahydrocyclopenta[h]isochromene-5-carbaldehyde Chemical compound O=C1OC(O)CC(C(C=O)=C2O)=C1C1=C2CC(C)(C)C1 BDEDPKFUFGCVCJ-UHFFFAOYSA-N 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 3
- 238000013461 design Methods 0.000 description 20
- 230000000875 corresponding effect Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 230000010354 integration Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009545 invasion Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种基于指令扩展的流水线紧耦合加速器接口结构,包括相关检测模块和加速引擎,相关检测模块设置在译码级,用于检测加速指令对于寄存器文件RF访问的数据相关;当加速指令进入译码级后,启动相关检测模块,输入寄存器文件RF访问请求,仅当判断有相关产生,产生阻塞应答信号;加速引擎设置在运算执行级,由译码级通过级间寄存器reg3发出的加速器访问请求信号激活加速引擎部件,此时运算执行部件处于旁路状态,运算执行部件与加速器的访问应答进入多路选择器MUX1,多路选择器MUX1将在加速指令标识信号作用下选择相应的结果发往级间寄存器reg4。本发明具有极强的通用性,适用于多数处理器系统。
Description
技术领域
本发明属于集成电路设计与处理器设计技术领域,具体涉及一种基于指令扩展的流水线紧耦合加速器接口结构。
背景技术
目前,以处理器为代表的超大规模集成电路一直都是微电子领域复杂度与技术难度最高的一个方向,其在体系结构的探索创新一直没有止步。传统的微处理器设计基于标准ISA(Instruction Set Architecture),完成时序均衡的流水线设计,其中执行级实现了ISA规定的逻辑、算术等指令功能。一般的,ISA的正交性能够保证基于基本操作可以构建更高等级的函数运算,但是,这种基本指令带来通用性的同时也带来了无法提升在特定应用下的性能问题,因此,专用加速器在当前微处理器设计中大行其道。
当前,专用加速器的主要形式有:
(1)采用异构多核体系,主控处理器负责全局程序调度与控制,而协处理器则专门负责图像、视频、编解码等密集运算应用,这种体系的优势在于可以针对特殊应用快速完成异构体系设计,缩短研制周期与设计风险,但是缺点在于不同处理器核可能采用不同指令集,软件开发难度较大且移植性差;
(2)采用“主从式”IP集成形式,相对于异构体系,这里的协处理器没有指令系统,仅根据主处理器的命令按照既定的状态机被动的进行数据处理,并将数据处理结果反馈主处理器,这种体系的优势在于消除了指令集兼容的问题,但是缺点在于主控命令的下达与反馈耗时较长,硬件加速的实时性较差;
(3)采用流水线紧耦合结构,采用阻塞式执行,当浮点加速指令进入流水线后,由加速器接管该指令的执行,同时暂停主流水线,这种结构的优势在于加速指令以系统主频的速度执行,指令启动与结果返回的实时性最高,然后这种方案一方面仍然解析的是细粒度的基本指令,其仅对微操作加速,对复杂应用的加速效果不佳,同时该方案往往采用阻塞式执行,对主控程序的执行影响较大。
当今如何挖掘计算机体系结构的创新以寻求新的效能增长点成为研究的热点,而采用硬件加速器的方法无疑成为开销较小,效能较高的一种结构形态。然而,硬件加速器与主处理器在指令定义、集成形式、接口协议以及对流水线的影响方面都是需要考虑并解决的问题,其目的就是要以较小的资源开销获得效能的最大化提升,同时应易于应用程序的开发。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于指令扩展的流水线紧耦合加速器接口结构,不仅能够有效解决上述几个方面的问题,同时能够快速完成不同应用加速器的研发设计,具有非常大的应用价值。经检索相关专利,尚未发现有解决该问题的方法。
本发明采用以下技术方案:
一种基于指令扩展的流水线紧耦合加速器接口结构,包括相关检测模块和加速引擎,相关检测模块设置在译码级,用于检测加速指令对于寄存器文件RF访问的数据相关;当加速指令进入译码级后,启动相关检测模块,输入寄存器文件RF访问请求,当判断有相关产生,产生阻塞应答信号;加速引擎设置在运算执行级,由译码级通过级间寄存器reg3发出的加速器访问请求信号激活加速引擎部件,此时运算执行部件处于旁路状态,运算执行部件与加速器的访问应答进入多路选择器MUX1,多路选择器MUX1在加速指令标识信号作用下选择结果发往级间寄存器reg4。
具体的,当一条加速指令进入到指令译码级进行译码,通过fmt域识别出当前是一条加速指令即生成加速指令标识信号传递到运算执行级。
具体的,相关检测模块具体为:
当寄存器文件RF访问请求输入后,确定在译码级需要访问的源和目的寄存器号DC_reg,利用三个比较器并行的与后续流水级对应的源、目的寄存器号EX_reg、MEM_reg、WB_reg进行比较。
进一步的,通过比较器3判断译码级寄存器号DC_reg与写回级寄存器号WB_reg是否一致,如果相同则通过多路选择器MUX3旁路输出写回级数据WB_data,否则由下一级MUX2输出;
继续通过比较器2判断DC_reg与存储器寄存器号MEM_reg是否一致,如果相同则通过多路选择器MUX2旁路输出存储级数据MEM_data,否则由下一级MUX1输出;
继续通过比较器1判断DC_reg与执行级寄存器号EX_reg是否一致,如果相同则通过多路选择器MUX1旁路输出执行级数据EX_data,否则将正常访问寄存器文件RF,并最终将结果通过3级MUX输出。
更进一步的,三个比较器的判别结果作为流水线停顿时机的指示信号,当命中3信号有效,则不需要停顿流水线,当命中2信号有效,则需要停顿1级流水,当命中1信号有效,则需要停顿2级流水。
具体的,加速器与执行级紧耦合时,加速器与下一流水级D-Cache访问级之间设置有互连通道,译码级通过级间寄存器reg3发出的加速器访问请求在加速引擎中转换成存储器访问请求,该信号与级间寄存器reg4经过多路选择器MUX2后访问数据存储器,存储器的输出结果通过存储器访问应答通道返回加速引擎,转换成加速器访问应答返回执行级。
具体的,加速器与流水线之间以及加速器与存储器之间均采用握手机制实现流水线有序推进。
进一步的,当加速指令译码后,其对应域将分别转换为加速器的各个输入信号,acc_cmd对应op,acc_rs1_id、acc_rs2_id和acc_rd_id分别对应rs1、rs2和rd,而acc_rs1_valid、acc_rs2_valid和acc_rd_valid分别对应v1、v2和v3,acc_rs1和acc_rs2则是rs1和rs2的32位具体数据,输出端口中的acc_rd则是用于写回rd的32位读数据;整个信号列表中,acc_require和acc_ack作为握手的请求和应答,用于控制流水线执行级的推动。
具体的,紧耦合加速器结构通过在执行级并行增加一个执行路径,实现加速指令到加速引擎的映射。
与现有技术相比,本发明至少具有以下有益效果:
本发明公开的一种基于指令扩展的流水线紧耦合加速器接口结构,基于现有指令集的可扩展能力,在流水线译码级对扩展指令码的位域进行统一译码,同时在执行级设计一种通用的“请求-应答”协议,可以实现任意扩展指令向加速器的注入。该方案对原始流水线不具有任何硬件侵入,保证了系统主频性能不受影响;加速器接口包括两部分:其一是与流水线译码级与执行级的握手接口,可以实现任意指令快速的注入加速器以及结果返回,其二是实现了与存储系统的直接通信,从而最大程度降低批量数据处理下对主流水线的性能影响;针对加速指令的无阻塞式流水线执行模式,相较于传统的无条件等待机制,可以在无指令相关前提下加快系统程序的执行效率,从而实现了一定程度的指令级并行性。
进一步的,当一条加速指令进入到指令译码级进行译码,通过fmt域识别出当前是一条加速指令即生成加速标识信号传递到执行级。相对于传统译码级要求对任意指令的32位进行全译码的策略,本发明只对其中7位fmt进行部分译码,一方面可以复用主流水线译码级的既有逻辑,另外可以避免因扩展指令与基本指令的差异造成主流水线译码逻辑的冗余修改,有利于降低资源与功耗开销。
进一步的,相关检测模块是处理器流水线设计的核心,它用于解决指令流中前后指令存在的写后度、写后写的数据相关,通过在译码级增加扩展指令的相关检测,一方面能够保证扩展指令在流水线中的语义正确,避免程序错误,另一方面通过识别指令的相关性,可以在保证流水不停顿的前提下,保证非相关指令的无阻塞执行,从而提高整个处理器的执行效率。
进一步的,加速器增加了与D-Cache的互连通道,其目的在于进一步加快加速器对存储区域的访问速度,传统的加速器获取数据均依靠主流水线的访存逻辑,这种间接传递的方式必然造成访存延迟的增大,因此,本发明直接增加了加速器与存储区域D-Cache的接口,这样可以加快数据获取速度,进而提高加速器的处理效率。
进一步的,加速器与流水线、加速器与存储区域之间采用握手机制实现控制与数据通路,这种方案实质上是一种异步访问时序,相对于同步访问时序可以极大降低设计逻辑复杂度,且有利于进行功能调试,缩短设计开发周期。
进一步的,通过在执行级增加一个并行执行路径,目的是将加速器与主流水线的执行单元并行处理,这样的优势在于主流水线中对执行级的所有相关控制逻辑可以无缝移植到加速引擎,极大简化了因引入加速器而对主流水线控制结构的修改,有利于设计集成并降低设计复杂度。
综上所述,本发明加速器接口不依赖于特定指令集,且对流水线及存储系统均采用广泛应用的握手机制,因而最大程度降低了加速器设计复杂度,且有利于硬件加速器的快速设计与集成,采用的无阻塞式流水线执行模式极大提高了系统性能,具有极强的通用性,适用于多数处理器系统。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为加速指令格式示意图;
图2为流水线紧耦合加速器结构示意图;
图3为非阻塞相关检测机制示意图;
图4为加速器交互时序图。
具体实施方式
本发明提供了一种基于指令扩展的流水线紧耦合加速器接口结构,充分挖掘当前指令集可扩展的能力,通过利用可扩展指令位域编码进行统一译码,避免了因增减扩展指令而对主流水线的侵入,并提出一种基于“请求-应答”的交互协议完成与主流水线的紧耦合。同时,为了降低加速指令对主程序性能的影响,提出一种非阻塞式的相关处理机制,可以极大提升该加速器接口的适用性。该技术实现的加速器接口设计结构,不依赖于特定的指令集系统,对原始流水线的不具有任何破坏性,能够实现任意扩展指令与基本指令的并行执行,不仅能够实现复杂应用的快速执行,同时也兼具了指令级并行的部分优势。该技术不依赖于特定处理器结构与总线协议,具有良好的通用性和可扩展性,具有较高的应用价值。
请参阅图1,给出了加速器指令格式,该指令格式以目前常见的RISC指令集为模板,包括用于流水线译码级识别为加速器指令的7位扩展指令码fmt,用于指示当前加速器指令具体功能的7位操作码op,用于指示源寄存器1、源寄存器2和目的寄存器号的5位rs1/rs2/rd,以及表示对应rs1/rs2/rd是否有效的v1/v2/vd。
对于通常的处理器而言,一条指令需要分别经历PC产生(PC)、I-Cache访问(IF)、指令译码(ID)、运算执行(EX)、D-Cache(MEM)和写回提交(WB),这些流水级分别由寄存器(reg1~reg5)分割开,如图2所示。
请参阅图3,本发明一种基于指令扩展的流水线紧耦合加速器接口结构,非阻塞相关检测机制分为控制部分和数据部分。
控制部分是对前后指令间的数据相关进行判断,并生成相应的相关控制信号,包括了图3中的DC_reg、EX_reg、MEM_reg、WB_reg、比较器1、比较器2、比较器3,在工作时,RF请求在流水线中最先到达译码级即DC_reg,此时由DC_reg级将译码级寄存器号广播给三个比较器,同时三个比较器分别接收三个流水级(EX_reg、MEM_reg、WB_reg)的寄存器号进行比较,当有匹配相等时,证明在对应流水级发生数据相关,并将相关指示信号(命中1、命中2、命中3)发往数据部分。
数据部分是在控制部分生成的相关指示信号(命中1、命中2、命中3)作用下,在不同流水级中选择正确的数据来源作为RF访问应答,包括图3中的寄存器文件RF、EX_data、MEM_data、WB_data、MUX1、MUX2、MUX3,在工作时,若命中3信号有效,证明在写回级发生相关,那么MUX3将写回级数据WB_data输出,否则继续判断命中2信号是否有效,若有效证明在存储器级发生相关,MUX2将存储级数据MEM_data输出给MUX3,否则继续判断命中1信号是否有效,若有效证明在执行级发生相关,MUX1将执行级数据EX_data输出给MUX2,否则证明各级均无相关产生,那么将寄存器文件输出数据RF依次通过MUX1、MUX2、MUX3输出作为RF访问应答。
与流水线中执行级的运算执行部件并行集成,具体原理是:
当一条加速指令进入到指令译码级进行译码,通过fmt域识别出当前是一条加速指令即生成加速指令标识信号传递到运算执行级,而在运算执行级,由译码级通过级间寄存器reg3发出的加速器访问请求信号仅激活加速引擎部件而非原始的运算执行部件,此时运算执行部件处于旁路状态,运算执行部件与加速器的访问应答进入多路选择器MUX1,该MUX1将在加速指令标识信号作用下选择相应的结果发往级间寄存器reg4。
为了进一步提高加速引擎的执行效率,本发明允许加速引擎不仅可以实现特定应用的加速运算操作,也提供了快速访存的功能,具体实现原理是:
在加速器与执行级进行紧耦合的同时,也增加了加速器与下一流水级D-Cache访问级的互连通道,此时译码级通过reg3发出的加速器访问请求在加速引擎中进一步转换成存储器访问请求,该信号与级间寄存器reg4经过多路选择器MUX2后访问数据存储器,存储器的输出结果通过存储器访问应答通道返回加速引擎,进而转换成加速器访问应答返回执行级。
紧耦合加速器结构的主要方式是,不改变流水线原来的设计结构,仅通过在执行级并行增加一个执行路径,实现加速指令到加速引擎的映射,从而提高特定应用的执行效率。这种设计方法仅通过增加若干多路选择器以及控制信号,即可实现加速引擎的高效集成,具有较高的通用性和扩展性。
加速器与流水线之间,以及加速器与存储器之间,均采用握手机制实现流水线的有序推进。流水线与加速器接口信号如表1所示,其中输入信号与图1中指令域格式对应,即当加速指令译码后,其对应域将分别转换为加速器的各个输入信号,acc_cmd对应op,acc_rs1_id、acc_rs2_id和acc_rd_id分别对应rs1、rs2和rd,而acc_rs1_valid、acc_rs2_valid和acc_rd_valid分别对应v1、v2和v3,acc_rs1和acc_rs2则是rs1和rs2的32位具体数据,输出端口中的acc_rd则是用于写回rd的32位读数据。整个信号列表中,acc_require和acc_ack作为握手的请求和应答,用于控制流水线执行级的推动。
表1流水线-加速器接口信号
表2给出了加速器和存储器的接口信号,其中,mem_cmd用于指示读写访问类型,mem_addr表示访问地址,mem_size与mem_len分别表示数据访问的大小(如字节、半字或字)以及猝发传输长度,mem_wdata表示写数据,mem_rdata表示读数据,这里mem_require和mem_ack同样作为握手的请求和应答,间接影响表1中的acc_ack产生时机。
表2加速器-存储器接口信号
由于加速指令是在既有指令集的基础上进行的额外扩展,通常情况下,紧耦合的硬件加速器采用阻塞式控制方式保证流水线修改的最小化。
然而,这种方法将带来性能的严重降低,主要原因是无差别的将每条加速指令均停顿于执行级,只有应答信号acc_ack产生后才能继续推动整个流水线。这种无差别的处理方式没有考虑数据是否相关,实际上,只有数据相关的指令需要停顿流水等待数据相关的解除,非数据相关的指令无需阻塞流水线。
数据相关需要考虑的包括对于相同地址的写后读和写后写两种行为,写后读需要保证先执行的写操作正确写入目的地址后,才能保证后来的读操作行为正确,写后写需要保证后到的写操作能够正确的覆盖前次的写操作数据。如图2所示,本发明在译码级增加了相关检测模块,主要检测加速指令对于寄存器文件RF访问的数据相关。当加速指令进入译码级后,启动相关检测模块,输入RF访问请求,仅当判断有相关产生,才会产生阻塞应答信号。
相关检测的具体原理如图3所示,当RF访问请求输入后,可以确定在译码级需要访问的源和目的寄存器号(DC_reg),同时利用3个比较器并行的与后续流水级对应的源、目的寄存器号(EX_reg、MEM_reg、WB_reg)进行比较。
从优先级而言,首先通过比较器3判断译码级寄存器号DC_reg与写回级寄存器号WB_reg是否一致,如果相同则通过多路选择器MUX3旁路输出写回级数据WB_data,否则由下一级MUX2输出;继续通过比较器2判断DC_reg与存储器寄存器号MEM_reg是否一致,如果相同则通过多路选择器MUX2旁路输出存储级数据MEM_data,否则由下一级MUX1输出;继续通过比较器1判断DC_reg与执行级寄存器号EX_reg是否一致,如果相同则通过多路选择器MUX1旁路输出执行级数据EX_data,否则将正常访问寄存器文件RF,并最终将该结果通过3级MUX输出。同时,3个比较器的判别结果将作为流水线停顿时机的指示信号,例如若命中3信号有效,则不需要停顿流水线,若命中2信号有效,则需要停顿1级流水,若命中1信号有效,则需要停顿2级流水。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图4,给出了加速器与流水线和存储器交互的时序示意图。
在T0周期,流水线向加速器注入访问请求acc_req,同时发出表1中的其它输入控制信号;加速器接收到输入后,于T1周期锁存后转换成表2中的存储器输入接口信号,其中包括了存储器访问请求mem_req;
此后,经过若干等待周期后,TN周期存储器完成访问并向加速器输出存储器访问应答信号mem_ack及存储器输出数据mem_rdata,这时由mem_req和mem_ack完成存储器接口的握手;经过一个周期的锁存,在TN+1周期加速器将存储器应答转换成流水线的应答信号acc_ack和输出输出acc_rdata。至此,由acc_req和acc_ack完成流水线接口的握手,一次加速器激活操作完毕,下一个周期TN+2允许流水线发起新的一次加速器访问请求。
本发明已经应用于一款RISC结构处理器中,该处理器在流水线与存储系统中实现了一套握手协议,并改进了流水线指令相关判别机制。基于该机制,实现了面向不同应用的扩展指令,并集成满足握手协议的多种加速器,经验证,所提发明结构不仅成功激活加速器完成扩展指令要求的相关动作,同时不影响流水线中无相关指令的并行执行。该设计结构相对于其它加速器集成方式有效提高了执行效率,同时对主处理器的侵入最小,易于相关软件产品的研发,具有较高的实用价值和通用性
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (8)
1.一种基于指令扩展的流水线紧耦合加速器接口结构,其特征在于,包括相关检测模块和加速引擎,相关检测模块设置在译码级,用于检测加速指令对于寄存器文件RF访问的数据相关;当加速指令进入译码级后,启动相关检测模块,输入寄存器文件RF访问请求,当判断有相关产生,产生阻塞应答信号;加速引擎设置在运算执行级,由译码级通过级间寄存器reg3发出的加速器访问请求信号激活加速引擎部件,此时运算执行部件处于旁路状态,运算执行部件与加速器的访问应答进入多路选择器MUX1,多路选择器MUX1在加速指令标识信号作用下选择结果发往级间寄存器reg4;
相关检测模块具体为:
当寄存器文件RF访问请求输入后,确定在译码级需要访问的源和目的寄存器号DC_reg,利用三个比较器并行的与后续流水级对应的源、目的寄存器号EX_reg、MEM_reg、WB_reg进行比较。
2.根据权利要求1所述的基于指令扩展的流水线紧耦合加速器接口结构,其特征在于,当一条加速指令进入到指令译码级进行译码,通过fmt域识别出当前是一条加速指令即生成加速指令标识信号传递到运算执行级。
3.根据权利要求1所述的基于指令扩展的流水线紧耦合加速器接口结构,其特征在于,通过比较器3判断译码级寄存器号DC_reg与写回级寄存器号WB_reg是否一致,如果相同则通过多路选择器MUX3旁路输出写回级数据WB_data,否则由下一级MUX2输出;
继续通过比较器2判断DC_reg与存储器寄存器号MEM_reg是否一致,如果相同则通过多路选择器MUX2旁路输出存储级数据MEM_data,否则由下一级MUX1输出;
继续通过比较器1判断DC_reg与执行级寄存器号EX_reg是否一致,如果相同则通过多路选择器MUX1旁路输出执行级数据EX_data,否则将正常访问寄存器文件RF,并最终将结果通过3级MUX输出。
4.根据权利要求3所述的基于指令扩展的流水线紧耦合加速器接口结构,其特征在于,三个比较器的判别结果作为流水线停顿时机的指示信号,当命中3信号有效,则不需要停顿流水线,当命中2信号有效,则需要停顿1级流水,当命中1信号有效,则需要停顿2级流水。
5.根据权利要求1所述的基于指令扩展的流水线紧耦合加速器接口结构,其特征在于,加速器与执行级紧耦合时,加速器与下一流水级D-Cache访问级之间设置有互连通道,译码级通过级间寄存器reg3发出的加速器访问请求在加速引擎中转换成存储器访问请求,该信号与级间寄存器reg4经过多路选择器MUX2后访问数据存储器,存储器的输出结果通过存储器访问应答通道返回加速引擎,转换成加速器访问应答返回执行级。
6.根据权利要求1或5所述的基于指令扩展的流水线紧耦合加速器接口结构,其特征在于,加速器与流水线之间以及加速器与存储器之间均采用握手机制实现流水线有序推进。
7.根据权利要求6所述的基于指令扩展的流水线紧耦合加速器接口结构,其特征在于,当加速指令译码后,其对应域将分别转换为加速器的各个输入信号,acc_cmd对应op,acc_rs1_id、acc_rs2_id和acc_rd_id分别对应rs1、rs2和rd,而acc_rs1_valid、acc_rs2_valid和acc_rd_valid分别对应v1、v2和v3,acc_rs1和acc_rs2则是rs1和rs2的32位具体数据,输出端口中的acc_rd则是用于写回rd的32位读数据;整个信号列表中,acc_require和acc_ack作为握手的请求和应答,用于控制流水线执行级的推动。
8.根据权利要求1所述的基于指令扩展的流水线紧耦合加速器接口结构,其特征在于,紧耦合加速器结构通过在执行级并行增加一个执行路径,实现加速指令到加速引擎的映射。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911061832.3A CN110806899B (zh) | 2019-11-01 | 2019-11-01 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911061832.3A CN110806899B (zh) | 2019-11-01 | 2019-11-01 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110806899A CN110806899A (zh) | 2020-02-18 |
CN110806899B true CN110806899B (zh) | 2021-08-24 |
Family
ID=69500932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911061832.3A Active CN110806899B (zh) | 2019-11-01 | 2019-11-01 | 一种基于指令扩展的流水线紧耦合加速器接口结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110806899B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324383B (zh) * | 2020-02-28 | 2022-05-10 | 西安微电子技术研究所 | 一种基于risc-v指令扩展的安全协处理器结构 |
CN113778526B (zh) * | 2021-11-12 | 2022-02-22 | 北京微核芯科技有限公司 | 一种基于Cache的流水线的执行方法及装置 |
CN117331603B (zh) * | 2023-09-18 | 2024-04-09 | 中国人民解放军军事科学院国防科技创新研究院 | 基于优先级判定的深度流水线前向旁路 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7055060B2 (en) * | 2002-12-19 | 2006-05-30 | Intel Corporation | On-die mechanism for high-reliability processor |
US8127114B2 (en) * | 2007-03-28 | 2012-02-28 | Qualcomm Incorporated | System and method for executing instructions prior to an execution stage in a processor |
CN101593097B (zh) * | 2009-05-22 | 2011-07-27 | 西安交通大学 | 嵌入式同构对称双核risc微处理器的设计方法 |
CN101719055B (zh) * | 2009-12-03 | 2012-10-10 | 杭州中天微系统有限公司 | 快速执行加载存储指令模块 |
US8880851B2 (en) * | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9128701B2 (en) * | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
CN103220122B (zh) * | 2013-03-29 | 2015-12-23 | 西安空间无线电技术研究所 | 一种可变参数高速并行帧同步器 |
US10397591B2 (en) * | 2014-04-11 | 2019-08-27 | Texas Instruments Incorporated | Processor instructions for accelerating video coding |
US20170315812A1 (en) * | 2016-04-28 | 2017-11-02 | Microsoft Technology Licensing, Llc | Parallel instruction scheduler for block isa processor |
US11263143B2 (en) * | 2017-09-29 | 2022-03-01 | Intel Corporation | Coherent accelerator fabric controller |
GB2569271B (en) * | 2017-10-20 | 2020-05-13 | Graphcore Ltd | Synchronization with a host processor |
CN107885611B (zh) * | 2017-11-24 | 2021-02-19 | 西安微电子技术研究所 | 可主动回写的分级指令存储器结构容错方法和装置 |
US20190303159A1 (en) * | 2018-03-29 | 2019-10-03 | Intel Corporation | Instruction set architecture to facilitate energy-efficient computing for exascale architectures |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN110032452B (zh) * | 2019-04-19 | 2021-08-24 | 上海兆芯集成电路有限公司 | 处理系统与异构处理器加速方法 |
CN110083569A (zh) * | 2019-04-30 | 2019-08-02 | 芯来智融半导体科技(上海)有限公司 | 一种适用于risc-v架构的协处理器接口 |
-
2019
- 2019-11-01 CN CN201911061832.3A patent/CN110806899B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110806899A (zh) | 2020-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110806899B (zh) | 一种基于指令扩展的流水线紧耦合加速器接口结构 | |
US11720365B2 (en) | Path prediction method used for instruction cache, access control unit, and instruction processing apparatus | |
US20050188178A1 (en) | Vector processing apparatus with overtaking function | |
US7639764B2 (en) | Method and apparatus for synchronizing data between different clock domains in a memory controller | |
US7730290B2 (en) | Systems for executing load instructions that achieve sequential load consistency | |
US5041968A (en) | Reduced instruction set computer (RISC) type microprocessor executing instruction functions indicating data location for arithmetic operations and result location | |
US20210089309A1 (en) | Byte comparison method for string processing and instruction processing apparatus | |
JPH01177127A (ja) | 情報処理装置 | |
US7681022B2 (en) | Efficient interrupt return address save mechanism | |
JP4131789B2 (ja) | キャッシュ制御装置および方法 | |
CN112256331B (zh) | 虚拟机指令解析加速方法、装置和计算机存储介质 | |
WO2020108212A1 (zh) | 寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质 | |
CN113946368B (zh) | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 | |
US7054971B2 (en) | Interface between a host and a slave device having a latency greater than the latency of the host | |
CN111857830B (zh) | 一种提前转发指令数据的通路设计方法、系统及存储介质 | |
CN114924792A (zh) | 指令译码单元、指令执行单元及相关装置和方法 | |
JP2798121B2 (ja) | データ処理装置 | |
US7310260B2 (en) | High performance register accesses | |
JP2001092661A (ja) | データ処理装置 | |
WO2021061626A1 (en) | Instruction executing method and apparatus | |
EP0415351A2 (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
Prakash et al. | Custom instructions with local memory elements without expensive DMA transfers | |
CN114579483B (zh) | 一种基于软件实现外设的sdp芯片及方法 | |
US7594103B1 (en) | Microprocessor and method of processing instructions for responding to interrupt condition | |
CN114995884A (zh) | 指令退休单元、指令执行单元及相关装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |