CN110928832A - 异步流水线处理器电路、装置及数据处理方法 - Google Patents
异步流水线处理器电路、装置及数据处理方法 Download PDFInfo
- Publication number
- CN110928832A CN110928832A CN201910953552.7A CN201910953552A CN110928832A CN 110928832 A CN110928832 A CN 110928832A CN 201910953552 A CN201910953552 A CN 201910953552A CN 110928832 A CN110928832 A CN 110928832A
- Authority
- CN
- China
- Prior art keywords
- data
- asynchronous
- memory
- pipeline
- interface
- 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
Links
- 238000003672 processing method Methods 0.000 title abstract description 7
- 230000001360 synchronised effect Effects 0.000 claims abstract description 21
- 230000003993 interaction Effects 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 12
- 230000000630 rising effect Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 240000007182 Ochroma pyramidale Species 0.000 description 1
- 241000734694 Polygala vulgaris Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/30105—Register structure
-
- 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
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
Abstract
本发明公开了异步流水线处理器电路、装置及数据处理方法,其中电路包括:流水线模块,用于与存储器进行数据交互操作,以及在需要进行乘法操作时,将源操作数输入异步乘法器;异步乘法器,用于对源操作数进行乘法处理,并在处理完成后,输出处理数据至流水线模块;数据接口,包括第一接口和第二接口,所述流水线模块通过第一接口同步读取存储器中的数据,通过第二接口将数据异步写入存储器中。本发明的异步流水线处理器电路中,通过采用一种支持异步写入、同步读取的数据接口,通过第一接口输出数据至存储器,通过第二接口从存储器读取数据,提供一种新的异步处理器设计方案,可广泛应用于处理器电路领域。
Description
技术领域
本发明涉及处理器电路领域,尤其涉及一种异步流水线处理器电路、装置及数据处理方法。
背景技术
随着工艺的不断进步及芯片上资源的不断增加,微处理器设计遇到了一系列问题,比如为芯片提供一个全局时钟网络越来越困难,时钟偏斜等问题越来越突出。基于上述问题,大家越来越注重异步电路的设计,目前异步微处理器技术仍不成熟。
发明内容
为了解决上述技术问题,本发明的目的是提供一种基于异步流水线的处理器电路、装置及数据处理方法。
本发明所采用的第一技术方案是:
一种异步流水线处理器电路,包括:
流水线模块,用于与存储器进行数据交互操作,以及在需要进行乘法操作时,将源操作数输入异步乘法器;
异步乘法器,用于对源操作数进行乘法处理,并在处理完成后,输出处理数据至流水线模块;
数据接口,包括第一接口和第二接口,所述流水线模块通过第一接口同步读取存储器中的数据,通过第二接口将数据异步写入存储器中。
进一步,所述流水线模块包括:
取指单元,用于进行取指,以及进行分支判断和发送指令操作;
译码单元,用于进行指令译码和对通用寄存器访问操作,以及将暂停信息发送至取指单元和将译码结果发送至执行单元;
执行单元,用于操作数提取和进行逻辑/算术运算,以及将跳转信息发送至取指单元,将运算结果转送至通用寄存器组,将存储器访问信息和写寄存器信息发送至访存单元;
访存单元,用于对存储器进行访问,以及将从存储器中读取的数据和执行单元发送的写寄存器信息发送至通用寄存器组;
通用寄存器组,用于更新存储写寄存器信息,以及将译码单元访问的寄存器数据读出。
进一步,还包括缓冲电路,用于对取指单元、译码单元、执行单元、访存单元和/或通用寄存器组输出的数据进行缓存。
进一步,所述缓冲电路设置在流水线模块中两个连接的单元之间。
进一步,所述指令采用RISCV指令集。
进一步,所述取指单元的取指由译码单元和执行单元发送的信息进行驱动,且在跳转时流水线指令开销为1。
进一步,所述异步乘法器采用单周期异步BOOTH乘法器。
进一步,所述异步乘法器包括全加器、移位器和计数器。
本发明所采用的第二技术方案是:
一种异步流水线处理器装置,包括处理器电路和存储器,所述处理器电路和存储器连接,所述处理器电路采用如上所述的一种异步流水线处理器电路。
本发明所采用的第三技术方案是:
一种异步流水线处理器数据处理方法,包括以下步骤:
采用同步方式读取存储器中的数据,并在需要进行乘法操作时,获取源操作数;
对源操作数进行乘法处理后,获得处理数据,采用异步方式将处理数据写入存储器。
本发明的有益效果是:本发明的异步流水线处理器电路中,通过采用一种支持异步写入、同步读取的数据接口,通过第一接口输出数据至存储器,通过第二接口从存储器读取数据,提供一种新的异步处理器设计方案。
附图说明
图1是本发明一种异步流水线处理器电路的结构框图;
图2是具体实施例中流水线模块的结构框图;
图3是具体实施例中指令跳转的示意图;
图4是具体实施例中异步乘法器的示意图;
图5是具体实施例中流水线间各单元数据传输的示意图;
图6是具体实施例中带有缓冲电路的流水线间各单元数据传输的示意图;
图7是具体实施例中没有缓冲电路的时序的示意图;
图8是具体实施例中带有缓冲电路的时序的示意图;
图9是具体实施例中读取ROM数据的时序示意图;
图10是具体实施例中读取RAM数据的时序示意图;
图11是本发明一种异步流水线处理器数据处理方法的步骤流程图。
具体实施方式
如图1所示,本实施例提供了一种异步流水线处理器电路,包括:
流水线模块,用于与存储器进行数据交互操作,以及在需要进行乘法操作时,将源操作数输入异步乘法器;
异步乘法器,用于对源操作数进行乘法处理,并在处理完成后,输出处理数据至流水线模块;
数据接口,包括第一接口和第二接口,所述流水线模块通过第一接口同步读取存储器中的数据,通过第二接口将数据异步写入存储器中。
本实施例中,所述流水线模块为多级流水线模块,具体可以三级流水线或者四级流水线等,所述异步乘法器可采用异步乘法器来实现,所述数据接口为支持异步写入、同步读取的数据接口,通过第一接口输出数据至存储器,通过第二接口从存储器读取数据。本实施例的数据接口不仅适用于本发明中的异步处理器,同样适用于其它基于FPGA进行的异步电路设计。
进一步作为优选的实施方式,所述流水线模块包括:
取指单元,用于进行取指,以及进行分支判断和发送指令操作;
译码单元,用于进行指令译码和对通用寄存器访问操作,以及将暂停信息发送至取指单元和将译码结果发送至执行单元;
执行单元,用于操作数提取和进行逻辑/算术运算,以及将跳转信息发送至取指单元,将运算结果转送至通用寄存器组,将存储器访问信息和写寄存器信息发送至访存单元;
访存单元,用于对存储器进行访问,以及将从存储器中读取的数据和执行单元发送的写寄存器信息发送至通用寄存器组;
通用寄存器组,用于更新存储写寄存器信息,以及将译码单元访问的寄存器数据读出。
进一步作为优选的实施方式,还包括缓冲电路,用于对取指单元、译码单元、执行单元、访存单元和/或通用寄存器组输出的数据进行缓存。
进一步作为优选的实施方式,所述缓冲电路设置在流水线模块中两个连接的单元之间。
进一步作为优选的实施方式,所述指令采用RISCV指令集。
进一步作为优选的实施方式,所述取指单元的取指由译码单元和执行单元发送的信息进行驱动,且在跳转时流水线指令开销为1。即流水线指令开销为1。
进一步作为优选的实施方式,所述异步乘法器采用单周期异步BOOTH乘法器。
进一步作为优选的实施方式,所述异步乘法器包括全加器、移位器和计数器。
具体实施例
以下结合图2至图10对上述电路进行详细解释说明。
在本实施例中,处理器中采用的指令集可以为基于RISCV32I与RISCV32M的指令集,握手协议采用四相双轨协议。
参照图2,所述流水线模块四级流水线,具体包括取指单元(以下简称IF)、译码单元(以下简称ID)、执行单元(以下简称EX)、访存单元(以下简称MEM)和通用寄存器组(以下简称Regfiles)。其中,取指单元用于操作指令地址寄存器(PC)、分支判断(即判断是否暂停或跳转)和发送指令等。译码单元用于进行指令译码、立即数提取、寄存器访问、暂停信号发送至IF(为读存储器指令时)以及译码结果发送至EX。执行单元用于操作数提取、逻辑或算术运算、跳转信息发送至IF、运算结果转送至Regfiles(以防数据冲突)、存储器访问信息及写寄存器信息发送至MEM。访存单元用于存储器访问(读写),读存储器数据或EX发送的写寄存器数据最终发送至Regfiles。通用寄存器组用于流水线各模块访问地址接收,依次接收MEM、EX的写寄存器信息并更新寄存器组数据,将ID访问地址的寄存器数据读出。
其中,取指单元的取指由ID与EX的反馈信息驱动,跳转时流水线中仅清空一条指令(执行跳转时ID模块中指令),如此流水线开销较小,与相同架构的同步处理器相比实现高速跳转。因为在同步电路中,由于寄存器对时钟上升沿敏感,在相同处理器架构下,IF无法在跳转指令进入流水线后的第二个时钟到来前取得EX模块反馈的跳转信息;目前同步处理器中通常采用分支预测单元设计,本实施例在保证流水线深度,无额外扩充预测单元的情况下实现。
结合图3对上述原理进行说明,在四级流水线上实现了无预测单元的高速指令跳转,兼顾了处理器流水线深度与指令跳转的速度,本实施例提供一种面对处理器架构中指令分支预测的方法。如图3所示,指令Inst 1为跳转指令,Inst 3即为跳转目的地址的指令,通过异步设计,令IF取指模块在接收EX模块反馈的跳转信息后才执行取指操作,则每次跳转时,跳转指令开销仅为一条指令,即跳转执行时ID模块中译码的指令Inst 2,有效减小流水线中的跳转开销,提高程序执行效率。而相同架构的同步处理器的四级流水线中,IF模块取指令与EX模块计算跳转地址在同一个时钟周期进行,跳转的指令开销为2,每次跳转,流水线中需清空两条指令。
参照图4,所述异步乘法器采用高速的单周期异步BOOTH乘法器,在本实施例中,该异步乘法器由1个32位加法器(采用其他位数的加法器也可实现)、1个移位器与一个32进制计数器构成,这种结构能够兼顾了资源与速度的优化,其中,BOOTH算法为诸多乘法器电路的基础算法。具体地,所述异步乘法器与执行单元连接,其中接口为2个32位的操作数接口与1个64位的乘法结果接口,EX单元执行乘法时将数据输入操作数接口,由于处理器电路为异步电路系统,乘法执行完毕前系统不会随时间变化自行执行后续指令,EX单元接收到返回的乘法结果后继续后续工作,属于单周期乘法。
图4为异步乘法器的结构示意图,主要包括顶层模块(对应图3中的Top)、执行模块(对应图3中的Excution)和控制器(对应图3中的Controller),乘法器接收乘法操作数后启动,将源操作数输入至乘法执行模块,然后等待控制器将乘法最终结果输出。执行模块主要由一个32位全加器,移位器与部分选择电路组成。电路启动后,首先从顶层模块接收源操作数。每轮操作中,首先从控制电路接收启动/完成信号,当启动信号有效时,直接执行加法与移位,将结果作为中间值输出;当启动与完成信号均无效时,从控制电路接收中间值,选择电路根据每轮中间值操作数状态位的不同选择本轮跳过加法执行或执行中间值与源操作数或其取反值的加法,然后对加法结果进行移位,最后将结果作为中间值输出至控制电路;当完成信号有效时,乘法完成,执行模块重新等待从顶层输入的新一轮源操作数。
其中,控制电路主要包括一个32进制计数器,电路启动时,计数器初始化为0,计数器为0时输出启动信号。计数器为32时输出完成信号,每进行一次乘法的中间值交换,计数器加1,当计数为32时,将该次交换的中间值作为最终结果输出至顶层,计数器重置为0。该计数器性能经Xlinx型号为ZC706的FPGA验证后,单次32位乘法执行速度为20ns,不受时钟频率限制,性能在同类乘法器中较为优秀,属于一种高速乘法器。本实施例中的异步乘法器的结构为一种全新的内部架构,为将来异步处理器电路提供新的解决方案。
针对于在处理器电路中设置缓冲电路的技术方案,现在结合图5至图8进行说明。该缓冲电路为提高异步流水线并行度的功能电路,由于异步电路为顺序执行的事件驱动电路,因此在异步的流水线电路中,流水线前级的模块一般需等待后级模块完成后才可与之进行握手,如图5所示。黑色箭头即为握手行为,因此在模块间插入数据缓冲电路(以下简称buffer),各模块的输出数据先输入至buffer,再由buffer与目标模块进行握手,如图6所示,流水线各级模块将结果暂存至中间电路E处,在流水线中实现整体的并行运算,提升系统执行效率。
由于流水线各模块的每个周期均以与流水线前级的数据握手为起点,与后级的数据握手为终点,且根据指令的不同,各级流水线模块对指令的处理时间存在差异。且存在乘法、访存等执在各流水线模块执行时间差异极大的指令,buffer可将流水线模块在执行完指令操作后无需等待下级流水的空闲进行数据握手,避免模块闲置,提高指令执行效率,现举例说明:
设一流水线中存在两级P1与P2,对指令处理时间分别如下表1所示。
表1
指令 | P1处理时间 | P2处理时间 |
I1 | 2 | 10 |
I2 | 2 | 10 |
I3 | 20 | 2 |
在不使用Buffer时,得到的时序图图7所示,以指令进入P2,流水线填满为起点,指令执行时间为:10+20+2=32。在使用buffer时,时序如图8所示,以指令进入P2,流水线填满为起点,执行时间为:2+20+2=24。可看出,在交替处理乘法、访存等执行时间较长的指令时明显提升执行效率,举例仅为二级流水的简单模型,处理器的四级流水线中情况更为复杂,总体而言缓冲电路明显提升流水线的并行度。流水线中任意两个模块(IF、ID、EX、MEM、REGFILES)间的数据接口间均存在对应独立的缓冲电路。且缓冲电路可减少流水线用于模块间握手通信时间,不使用buffer时,流水线中指令更新的工作状态为:各级模块完成操作->MEM与EX握手->ID与EX握手->IF与ID握手->IF取指令;使用buffer后为:各级模块完成操作->各级模块与buffer握手->IF取指,这是由于在等待各级模块完成操作时,执行速度较快的模块执行完本模块操作后可将执行结果先行存入buffer中,则在最慢模块执行完后,各模块可并行地与前级buffer握手完成指令传递,二者区别如图5和图6所示,其中图中D代表流水线模块,E代表缓冲电路。
针对数据接口的框架,现在结合图9至图10进行详细解释说明。本实施例中的数据接口的框架为一种异步写入、同步读取的访存架构,同时采用一种时钟上升沿检测,下降沿输出的方案面对异步通信的亚稳态问题,这种架构与其它异步-同步接口技术的区别在于本实施例提出的架构是一种更适用于基于FPGA进行的半定制数字电路设计(基于FPGA难以设计独立于时钟的纯组合逻辑可控延迟电路)。
如图1所示,数据接口包括A_S接口和S_A接口,其中A_S接口为异步处理器输出至存储器的数据接口,S_A接口为从存储器读取数据的接口。本实施例中访存的技术方案采用哈佛结构,存储器分为指令存储与数据存储,指令存储器无需时钟输入,rom对地址输入即时响应,数据接口S_A_rom在异步处理器对指令的请求信号inst_req有效时将指令转换为双规编码输出即可;而数据存储器需要时钟输入,本设计对数据存储的时钟输入的解决方案为由异步处理器产生时钟信号。由于异步电路为事件驱动,易于顺序执行逻辑,可在对地址、使能、写数据等信号的握手完成后,再输出一位的高电平有效信号作为存储器的时钟输入。实现对存储器的高速访问。
而数据读取方面,异步电路对输入电平敏感,非法或错误的数据输入容易导致处理器的锁死,因此对异步处理器的数据输入需设计专用的数据接口,在Xlinx公司地FPGA中不提供产生可控延迟的单元电路,而采用纯组合逻辑产生的延迟并不可控,同时本实施例采用的技术工具Balsa仅面对Xlinx FPGA的技术库,引入同步时钟采集存储器数据,同时作为计时器,在系统初始化后进行一定延时来等待异步处理器完成初始化,在初始化完成前屏蔽对异步处理器的一切有效数据输入。即系统中存在两个时钟信号,一为异步处理器产生的存储器访问时钟A_CLK,二为FPGA产生的数据读取时钟S_CLK。由于处理器中需等待数据的读入来完成握手后MEM模块才能继续工作,因此不会出现一个S_CLK周期中有多个数据需要读入的情况。
为避免异步数据写入时的亚稳态,采用上升沿采集,下降沿输出的方案。具体为:在时钟上升沿检测异步处理器给出的rdata_req信号作为数据读使能,在时钟下降沿将从存储器输入的数据转换为双轨编码数据输出至异步处理器。
如图9所示,A_S_romaddr_i为A_S_rom接口输入数据,也即异步处理器输出数据,为指令存储器地址信号;A_S_romaddr_o为A_S_rom接口输出数据,即转换后的同步输出数据,A_S_rom接口输出同步数据的同时返回数据接收信号至异步处理器,异步处理器随机将输出信号置零;A_req为异步处理器的数据请求信号,异步处理器在完成地址信号输出后输出该请求信号;ROM_data_o为指令存储器输出数据,如图所示,由于指令存储器ROM可对输入地址信号即时响应输出,从而可在A_req信号之前到达S_A接口处,则S_A接口可实现为组合逻辑,在A_req信号有效时将输入信号ROM_data_o转换为异步双轨数据输出。
如图10所示,A_S_data_i为A_S_ram接口输入数据,也即异步处理器输出数据,如存储器访问地址,存储器写入数据等信号;A_S_data_o为A_S接口输出数据,即异步双轨数据转换后的同步数据,A_S输出数据时同时返回数据接收信号至异步处理器,处理器随后将输出信号置零;A_clk为异步处理器输出的时钟脉冲信号,同样经A_S接口转换;RAM_data_o为存储器输出数据,在接受到地址等信号后,由A_clk作为时钟触发,存储器输出数据;A_req为异步处理器对数据的请求信号,异步处理器在输出时钟信号后进入等待数据输入状态,并输出数据请求信号;S_clk为同步时钟信号;S_A_data_o为S_A接口的数据输出,S_A接口以同步时钟S_clk为时钟输入,在S_clk上升沿检测A_req作为输出使能信号,在S_clk下降沿进行数据输出,异步处理器检测到数据输出后将A_req请求信号置零。
上述提供的异步电路产生一种异步写入时钟A_clk用于写入数据与地址信号,接口处通过同步时钟S_clk读取数据,这一种架构不仅适用于本发明中的异步处理器,同样适用于其它基于FPGA进行的异步电路设计。
由于本实施例中的指令可采用RISCV指令集,具体地,数据接口在工作时,A_S接口的信号包括有:指令存储器地址rom_addr,指令读使能rom_re,数据存储器地址ram_addr,数据存储器时钟ram_clk,数据存储器写入片选信号ram_sel和数据存储器写入数据ram_wdata。对于每种数据信号配置单独的数据接口,每个接口的端口信号为:输入端口:复位信号rst,异步双轨数据d_i0[n-1:0],d_i1[n-1:0],输出端口:数据输出d_o[n-1:0],数据接收信号ack,接口在接收异步数据后,首先进行数据有效性检测,将双轨数据进行异或运算来进行检测,当数据确定有效后转换为同步数据输出,同时返回接收信号ack,当输入数据为空状态(0,0)时,ack信号拉低。
S_A接口的信号包括:指令rom_data和存储器读数据ram_rdata。对于两类数据分别进行不同的接口设计,二者端口配置相同,均为:输入端口:复位信号rst,同步时钟信号S_clk,输入d_i[n-1:0],读使能信号re,输出端口:异步双轨输出d_o1[n-1:0],d_o0[n-1:0],对于指令接口S_A_rom_data,接口复位后,首先进行通过同步时钟信号进行计时,计时长度根据时钟频率及实现环境的区别自行定义;在计时完成后,通过组合逻辑完成接口功能,在使能信号有效时将指令输入编码为双轨编码输出,使能信号re由对应的指令读使能信号的A_S接口给出。对于数据接口S_A_ram_rdata,同样配置计时器;计时完成后,为确保异步使能信号到来时输入数据的有效性,采用上升沿采集,下降沿输出的方案。具体为:在时钟上升沿检测异步处理器给出,经A_S接口转换给出的dmem_re信号,产生本地使能信号re_2,在时钟下降沿检测本地使能信号将从存储器输入的数据转换为双规编码数据输出至异步处理器。
综上所述,本实施例的异步流水线处理器电路,至少具有如下的有益效果:
(1)、高速的单周期异步乘法器的框架,一种高速的32位异步乘法器,在处理器内实现单周期乘法,兼顾资源优化。
(2)、提供了一种异步写入、同步读取的访存架构,这种架构与其它异步-同步接口技术的区别在于,本实施例提出的架构是一种更适用于基于FPGA进行的半定制数字电路设计。
(3)、在微架构上,在四级流水线上实现了无预测单元的高速指令跳转,兼顾了处理器流水线深度与指令跳转的速度,提供一种面对处理器架构中指令分支预测的方法。
本实施例还提供了一种异步流水线处理器装置,包括处理器电路和存储器,所述处理器电路和存储器连接,所述处理器电路采用如上所述的一种异步流水线处理器电路。
本实施例的一种异步流水线处理器装置,与可执行上述实施例一种异步流水线处理器电路的任意组合,具备上述实施例相应的功能和有益效果。
如图11所述,本实施例还提供了一种异步流水线处理器数据处理方法,包括以下步骤:
S1、采用同步方式读取存储器中的数据,并在需要进行乘法操作时,获取源操作数;
S2、对源操作数进行乘法处理后,获得处理数据,采用异步方式将处理数据写入存储器。
本实施例的一种异步流水线处理器数据处理方法,与上述实施例一种异步流水线处理器电路具有一一对应关系,具备上述实施例相应的功能和有益效果。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种异步流水线处理器电路,其特征在于,包括:
流水线模块,用于与存储器进行数据交互操作,以及在需要进行乘法操作时,将源操作数输入异步乘法器;
异步乘法器,用于对源操作数进行乘法处理,并在处理完成后,输出处理数据至流水线模块;
数据接口,包括第一接口和第二接口,所述流水线模块通过第一接口同步读取存储器中的数据,通过第二接口将数据异步写入存储器中。
2.根据权利要求1所述的一种异步流水线处理器电路,其特征在于,所述流水线模块包括:
取指单元,用于进行取指,以及进行分支判断和发送指令操作;
译码单元,用于进行指令译码和对通用寄存器访问操作,以及将暂停信息发送至取指单元和将译码结果发送至执行单元;
执行单元,用于操作数提取和进行逻辑/算术运算,以及将跳转信息发送至取指单元,将运算结果转送至通用寄存器组,将存储器访问信息和写寄存器信息发送至访存单元;
访存单元,用于对存储器进行访问,以及将从存储器中读取的数据和执行单元发送的写寄存器信息发送至通用寄存器组;
通用寄存器组,用于更新存储写寄存器信息,以及将译码单元访问的寄存器数据读出。
3.根据权利要求2所述的一种异步流水线处理器电路,其特征在于,还包括缓冲电路,用于对取指单元、译码单元、执行单元、访存单元和/或通用寄存器组输出的数据进行缓存。
4.根据权利要求3所述的一种异步流水线处理器电路,其特征在于,所述缓冲电路设置在流水线模块中两个连接的单元之间。
5.根据权利要求2所述的一种异步流水线处理器电路,其特征在于,所述指令采用RISCV指令集。
6.根据权利要求5所述的一种异步流水线处理器电路,其特征在于,所述取指单元的取指由译码单元和执行单元发送的信息进行驱动,且在跳转时流水线指令开销为1。
7.根据权利要求1所述的一种异步流水线处理器电路,其特征在于,所述异步乘法器采用单周期异步BOOTH乘法器。
8.根据权利要求6所述的一种异步流水线处理器电路,其特征在于,所述异步乘法器包括全加器、移位器和计数器。
9.一种异步流水线处理器装置,其特征在于,包括处理器电路和存储器,所述处理器电路和存储器连接,所述处理器电路采用如权利要求1-8任一项所述的一种异步流水线处理器电路。
10.一种异步流水线处理器数据处理方法,其特征在于,包括以下步骤:
采用同步方式读取存储器中的数据,并在需要进行乘法操作时,获取源操作数;
对源操作数进行乘法处理后,获得处理数据,采用异步方式将处理数据写入存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910953552.7A CN110928832A (zh) | 2019-10-09 | 2019-10-09 | 异步流水线处理器电路、装置及数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910953552.7A CN110928832A (zh) | 2019-10-09 | 2019-10-09 | 异步流水线处理器电路、装置及数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110928832A true CN110928832A (zh) | 2020-03-27 |
Family
ID=69849118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910953552.7A Pending CN110928832A (zh) | 2019-10-09 | 2019-10-09 | 异步流水线处理器电路、装置及数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110928832A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112803929A (zh) * | 2021-03-26 | 2021-05-14 | 北京中科芯蕊科技有限公司 | 一种异步真四相握手协议电路及其控制方法 |
CN113407239A (zh) * | 2021-06-09 | 2021-09-17 | 中山大学 | 一种基于异步单轨的流水线处理器 |
WO2022121090A1 (zh) * | 2020-12-09 | 2022-06-16 | 上海交通大学 | 支持高吞吐多精度乘法运算的处理器 |
CN115437695A (zh) * | 2022-07-01 | 2022-12-06 | 无锡芯领域微电子有限公司 | 一种分支延时槽处理方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200990087Y (zh) * | 2006-09-29 | 2007-12-12 | 上海海尔集成电路有限公司 | 一种8位精简指令集微控制器 |
CN101403963A (zh) * | 2008-11-13 | 2009-04-08 | 戴葵 | 异步数据触发微处理器体系结构 |
CN101751980A (zh) * | 2008-12-17 | 2010-06-23 | 中国科学院电子学研究所 | 基于存储器知识产权核的嵌入式可编程存储器 |
US20120159095A1 (en) * | 2010-12-20 | 2012-06-21 | Stmicroelectronics S.R.L. | Interface system, and corresponding integrated circuit and method |
US20120324175A1 (en) * | 2011-06-14 | 2012-12-20 | Texas Instruments Incorporated | Multi-Port Register File with an Input Pipelined Architecture with Asynchronous Reads and Localized Feedback |
CN102931994A (zh) * | 2012-09-26 | 2013-02-13 | 成都嘉纳海威科技有限责任公司 | 应用于信号处理芯片的高速信号采样和同步的架构及方法 |
CN103067706A (zh) * | 2012-12-20 | 2013-04-24 | 西安电子科技大学 | 基于fpga的ip核 |
CN105355229A (zh) * | 2015-10-29 | 2016-02-24 | 同济大学 | 异步电路系统对同步随机存储器的写入电路和读取电路 |
CN107077381A (zh) * | 2014-10-09 | 2017-08-18 | 华为技术有限公司 | 异步指令执行装置和方法 |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
-
2019
- 2019-10-09 CN CN201910953552.7A patent/CN110928832A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN200990087Y (zh) * | 2006-09-29 | 2007-12-12 | 上海海尔集成电路有限公司 | 一种8位精简指令集微控制器 |
CN101403963A (zh) * | 2008-11-13 | 2009-04-08 | 戴葵 | 异步数据触发微处理器体系结构 |
CN101751980A (zh) * | 2008-12-17 | 2010-06-23 | 中国科学院电子学研究所 | 基于存储器知识产权核的嵌入式可编程存储器 |
US20120159095A1 (en) * | 2010-12-20 | 2012-06-21 | Stmicroelectronics S.R.L. | Interface system, and corresponding integrated circuit and method |
US20120324175A1 (en) * | 2011-06-14 | 2012-12-20 | Texas Instruments Incorporated | Multi-Port Register File with an Input Pipelined Architecture with Asynchronous Reads and Localized Feedback |
CN102931994A (zh) * | 2012-09-26 | 2013-02-13 | 成都嘉纳海威科技有限责任公司 | 应用于信号处理芯片的高速信号采样和同步的架构及方法 |
CN103067706A (zh) * | 2012-12-20 | 2013-04-24 | 西安电子科技大学 | 基于fpga的ip核 |
CN107077381A (zh) * | 2014-10-09 | 2017-08-18 | 华为技术有限公司 | 异步指令执行装置和方法 |
CN105355229A (zh) * | 2015-10-29 | 2016-02-24 | 同济大学 | 异步电路系统对同步随机存储器的写入电路和读取电路 |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
Non-Patent Citations (1)
Title |
---|
石伟,苏博,任洪广,王志英: "一种低功耗异步乘法器的研究与实现", 《计算机工程与科学》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022121090A1 (zh) * | 2020-12-09 | 2022-06-16 | 上海交通大学 | 支持高吞吐多精度乘法运算的处理器 |
CN112803929A (zh) * | 2021-03-26 | 2021-05-14 | 北京中科芯蕊科技有限公司 | 一种异步真四相握手协议电路及其控制方法 |
CN112803929B (zh) * | 2021-03-26 | 2021-07-02 | 北京中科芯蕊科技有限公司 | 一种异步真四相握手协议电路及其控制方法 |
CN113407239A (zh) * | 2021-06-09 | 2021-09-17 | 中山大学 | 一种基于异步单轨的流水线处理器 |
CN113407239B (zh) * | 2021-06-09 | 2023-06-13 | 中山大学 | 一种基于异步单轨的流水线处理器 |
CN115437695A (zh) * | 2022-07-01 | 2022-12-06 | 无锡芯领域微电子有限公司 | 一种分支延时槽处理方法及装置 |
CN115437695B (zh) * | 2022-07-01 | 2024-01-23 | 无锡芯领域微电子有限公司 | 一种分支延时槽处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110928832A (zh) | 异步流水线处理器电路、装置及数据处理方法 | |
Trivedi et al. | Design & analysis of 16 bit RISC processor using low power pipelining | |
US9910673B2 (en) | Reconfigurable microprocessor hardware architecture | |
CN101221541B (zh) | 用于soc的可编程通信控制器 | |
US8977835B2 (en) | Reversing processing order in half-pumped SIMD execution units to achieve K cycle issue-to-issue latency | |
CN112099762A (zh) | 快速实现sm2密码算法的协处理系统及方法 | |
CN110806899B (zh) | 一种基于指令扩展的流水线紧耦合加速器接口结构 | |
US7693926B2 (en) | Modular multiplication acceleration circuit and method for data encryption/decryption | |
CA2657168C (en) | Efficient interrupt return address save mechanism | |
Gautschi et al. | SIR10US: A tightly coupled elliptic-curve cryptography co-processor for the OpenRISC | |
CN102436781B (zh) | 基于隐式相关性和隐式旁路的微处理器指令拆分装置 | |
US10445099B2 (en) | Reconfigurable microprocessor hardware architecture | |
CN111124360A (zh) | 一种可配置矩阵乘法的加速器 | |
CN111459546A (zh) | 一种实现操作数位宽可变的装置及方法 | |
JPH03201031A (ja) | 情報処理装置 | |
CN112579172B (zh) | 一种非流水单元多周期同指令执行的处理电路及方法 | |
CN113946368A (zh) | 一种基于risc-v指令集的三级流水线架构、处理器及数据处理方法 | |
Zhuo et al. | High-performance and area-efficient reduction circuits on FPGAs | |
CN113407239B (zh) | 一种基于异步单轨的流水线处理器 | |
KR100639146B1 (ko) | 카테시안 제어기를 갖는 데이터 처리 시스템 | |
US9658857B2 (en) | Method and apparatus for processor to operate at its natural clock frequency in the system | |
CN101615114A (zh) | 完成两次乘法两次加法两次位移的微处理器实现方法 | |
US7594103B1 (en) | Microprocessor and method of processing instructions for responding to interrupt condition | |
CN102043755A (zh) | 可重组态处理装置及其系统 | |
Jayanthi et al. | The Design of High Performance Asynchronous Pipelines with Quasi Delay Insensitive |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200327 |
|
RJ01 | Rejection of invention patent application after publication |