CN110245096B - 一种实现处理器直接连接扩展计算模块的方法 - Google Patents

一种实现处理器直接连接扩展计算模块的方法 Download PDF

Info

Publication number
CN110245096B
CN110245096B CN201910548243.1A CN201910548243A CN110245096B CN 110245096 B CN110245096 B CN 110245096B CN 201910548243 A CN201910548243 A CN 201910548243A CN 110245096 B CN110245096 B CN 110245096B
Authority
CN
China
Prior art keywords
processor
alu
spr
extended
register
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
Application number
CN201910548243.1A
Other languages
English (en)
Other versions
CN110245096A (zh
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.)
Suzhou Blizzard Electronic Technology Co ltd
Original Assignee
Suzhou Blizzard Electronic Technology Co 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 Suzhou Blizzard Electronic Technology Co ltd filed Critical Suzhou Blizzard Electronic Technology Co ltd
Priority to CN201910548243.1A priority Critical patent/CN110245096B/zh
Publication of CN110245096A publication Critical patent/CN110245096A/zh
Application granted granted Critical
Publication of CN110245096B publication Critical patent/CN110245096B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及一种实现处理器直接连接扩展计算模块的方法,包括:在处理器内原有的特殊目的寄存器(SPR)访问接口或存储访问接口上再引出1个接口用来连接扩展算术逻辑单元(ALU)的寄存器文件;所述处理器的内核,访问SPR时有1个SPR接口,访问外部存储器时有1个存储访问接口,其中包括2种连接方式,方式一:SPR接口连接扩展ALU方式;方式二:存储访问接口连接扩展ALU方式;这2种方式可以二选一,也可以同时使用。本发明的有益效果是:(1)不需要处理器修改指令集,使用现有处理器指令集即可,无需新增定制指令或协处理器指令。(2)不改动处理器内核流水线结构,利用处理器内核访问内部寄存器或外部存储器的接口来实现扩展。

Description

一种实现处理器直接连接扩展计算模块的方法
技术领域
本发明涉及处理器技术领域,具体的说是一种实现处理器直接连接扩展计算模块的方法。
背景技术
定制指令加速是指允许设计者在可配置处理器中插入自定义指令来实现某些领域或算法加速计算的方法。采用定制指令实现加速,往往要借助处理器的特定工具,设计者须前期要对初始C/C++等软件程序和算法进行评估,分析计算瓶颈,使用处理器厂商提供的特定定制指令的工具或指令描述语言来实现。实现定制指令的硬件集成到处理器内部,作为数据通路加速的一部分。
定制指令加速是一种需要软硬件之间反复迭代,寻找最优的处理器架构配置和专用指令加速的方法。定制指令需要由编译器识别,如果初始C/C++算法和用户使用的场景差距较大,或者设计者不能概括用户的所有使用场景,或者编译器不能识别某些场景应用时,定制指令加速效果会降低。
定制指令设计和实现依赖于可配置处理器的硬件架构,实现定制指令的硬件逻辑要集成到处理器流水线中,实现逻辑的引入会导致处理器流水线延迟增加,从而降低了处理器的工作频率和性能。
协处理器核加速是一种与处理器紧密协作,针对特定算法进行硬件加速的加速方法。协处理器指用来协同主处理器执行某种特定操作的专用处理芯片或模块。协处理器一般只针对相对成熟和固定的运算进行加速,例如浮点运算。协处理器通过专用的数据通道和指令通信基址来提高信息吞吐量,减少处理器的指令数据传输负担。处理器读取协处理器指令后,传输给协处理器,并继续后续指令的读取。处理器的流水线可以与协处理器的流水线完全屏蔽,直到得到协处理器运算结果,才将结果传输到内部寄存器或外部存储器。
协处理器本身也有类似处理器的特征,有内部流水线等结构,而非仅是专门计算加速模块,所以会占用较大芯片面积。
协处理器只针对特定的应用,例如浮点协处理器只能加速浮点运算,无法根据应用实现灵活的改动,同时需要的协处理器指令和接口。当更换新加速的算法或应用时需要重新设计协处理器本身,同时主处理器也要有新加速的算法的协处理器指令。
发明内容
针对上述现有技术不足,本发明提供一种不需要通过增加定制指令实现处理器直接连接扩展计算模块的方法。
本发明提供的一种实现处理器直接连接扩展计算模块的方法是通过以下技术方案实现的:
一种实现处理器直接连接扩展计算模块的方法,包括:
在处理器内原有的特殊目的寄存器(SPR)访问接口或存储访问接口上再引出1个接口用来连接扩展算术逻辑单元(ALU)的寄存器文件;
所述处理器的内核,访问SPR时有1个SPR接口,访问外部存储器时有1个存储访问接口,其中包括2种连接方式,方式一:SPR接口连接扩展ALU方式;方式二:存储访问接口连接扩展ALU方式;这2种方式可以二选一,也可以同时使用;
通过寄存器来实现所述处理器的内核与扩展ALU通信;在处理器看来,扩展ALU就是一堆寄存器;当处理器内核往扩展ALU输入寄存器写入源操作数后,扩展ALU启动运算,运算完成后结果送往扩展ALU输出寄存器;
其中:
当采取方式一时,扩展ALU的各个寄存器占用SPR地址空间;如果处理器未使用的SPR地址空间充裕,足以容纳所有扩展ALU的寄存器,则为每个扩展ALU寄存器分配SPR地址即可;寄存器的字长可以和处理器其它SPR一致;如果处理器未使用的SPR地址空间不足,则需要在处理器SPR中,或者处理器所在的SOC系统的寄存器文件中设置1个寄存器,名为“SPR页指针(以cext_ptr标识)”;加入SPR页指针后,处理器访问SPR地址空间的地址就变成了{SPR页指针,处理器原访问SPR地址};
当采用方式二是,通过存储访问接口连接扩展ALU时,可以有多个连接位置;一般处理器的内核发出的存储访问并不是和外部总线直接相连接,而是要经过Dcache/DMMU,BIU等模块;连接扩展ALU的位置,可以在处理器内核和Dcache之间,也可以在Dcache/DMMU和BIU之间,也可以在BIU之后;具体连接位置要根据处理器哪处接口便于连接来确定;如果都可以连接,应优先选择距离处理器内核较近的位置。
所述扩展ALU输入和输出寄存器可以是同一个,也可分开。
当扩展ALU需要的数据比较多时,可以使用1个或多个寄存器来存放控制信息。
所述扩展ALU启动运算的方式为:
a、处理器内核往扩展ALU输入寄存器中写入数据,这个“写入动作”会触发扩展ALU运算开始;当输入寄存器有多个时,最后1个或约定某一个写入将触发扩展ALU运算;当采取这种方式时,扩展ALU的启动使能是由寄存器写入地址和寄存器写使能共同触发;
或者b、在扩展ALU输入或输出寄存器中有1位标志位,处理器内核写入完输入寄存器时置位(或清零)此标志位以告诉扩展ALU启动运算。
所述扩展ALU返回运算结果的方式包括:
a、处理器内核直接读取输出寄存器得到运算结果。如果扩展ALU还未运算完成,会阻塞处理器内核读取输出寄存器,直到运算完成更新输出寄存器后;
或者b、在扩展ALU输入或输出寄存器中有1位标志位,处理器内核写入完输入寄存器时置位(或清零)此标志位以告诉扩展ALU启动运算,扩展ALU运算完成后自动清零(或置位)此标志位;处理器内核读取此标志位来判断扩展ALU运算是否完成;当发现运算完成时再读取输出寄存器;
或者c、如果扩展ALU运算所使用的时间较长,其与处理器的通信方式也可以使用中断,当扩展ALU运算完成时,采用中断的方式通知处理器运算完成。
本发明的有益效果是:这种方法的特点有:
(1)不需要处理器修改指令集,使用现有处理器指令集即可,无需新增定制指令或协处理器指令。
(2)不改动处理器内核流水线结构,利用处理器内核访问内部寄存器或外部存储器的接口来实现扩展。
附图说明
图1为连接扩展ALU之后的处理器结构示意图;
图2为扩展ALU输入输出寄存器分开连接示意图;
图3扩展ALU输入输出寄存器合为一个的连接示意图;
图4为处理器内核通过SPR接口连接扩展ALU寄存器方法示意图;
图5为处理器内核通过存储访问接口连接扩展ALU寄存器的方法示意图;
图6为使用RAM来存放扩展ALU输入输出数据示意图;
图7为使用DMA或其他处理器来写入扩展ALU运算输入数据示意图。
具体实施方式
下面将通过实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
ALU,arithmetic and logic unit,算术逻辑单元。一般处理器内置一些ALU单元来实现加减乘除、逻辑等运算。这些已经内置的ALU可以称为标准ALU。“扩展ALU”是指除了处理器原有ALU外,由处理器设计人员或者处理器使用方设计的特殊用途计算或加速计算模块。为了能对同一种算法进行并行加速,有时会放置多个同一种扩展ALU;为了能对不同算法进行加速,也可能放置多个不同扩展ALU。这些多个同一种扩展ALU,或者不同种扩展ALU组成扩展ALU组,或叫扩展ALU阵列。
本方法说明这些扩展ALU如何和处理器内核直接连接,而不用通过片上总线或片上网络实现连接。
CSR,Control Status Register,控制状态寄存器;
SPR,Special Purpose register,特殊目的寄存器;
GPR,General Purpose Register,通用寄存器;
BIU,Bus interface unit,处理器总线接口模块;
Dcache,处理器数据高速缓存;
Icache,处理器指令高速缓存;
DMMU,Data Memory Management unit,处理器数据存储管理单元;
IMMU,Instruction Memory Management unit,处理器指令存储管理单元;
一般处理器都有一些控制状态寄存器定义,不同的处理器对控制状态寄存器的定义和描述略有不同,有些处理器叫CSR,有些处理器叫SPR。本发明以SPR为例说明。
RAM,random access memory,随机访问存储器;
MUX,多路选择器;
DMA,Direct memory access,直接内存访问控制器。
实施例1
如图1所示,为连接扩展ALU之后的处理器结构示意图。处理器原有的内核流水线,GPR访问,取指令访问不受影响。而是在处理器内原有的SPR访问接口,或存储访问接口上再引出1个接口用来连接扩展ALU的寄存器文件。
适合应用本发明的处理器内核,访问SPR时有1个SPR接口,访问外部存储器时有1个存储访问接口。本发明提供了2种方式,方式一:SPR接口连接扩展ALU方式;方式二:存储访问接口连接扩展ALU方式。这2种方式可以二选一,也可以同时使用。
本发明中,处理器内核与扩展ALU通过寄存器来实现通信。在处理器看来,扩展ALU就是一堆寄存器。当处理器内核往扩展ALU输入寄存器写入源操作数后,扩展ALU启动运算。运算完成后结果送往扩展ALU输出寄存器。扩展ALU输入和输出寄存器可以是同一个,也可分开。
处理器内核与扩展ALU通信的方式有多种,例如:
启动运算的方式包括:
1、处理器内核往扩展ALU输入寄存器中写入数据,这个“写入动作”会触发扩展ALU运算开始。当输入寄存器有多个时,最后1个或约定某一个写入将触发扩展ALU运算。当采取这种方式时,扩展ALU的启动使能是由寄存器写入地址和寄存器写使能共同触发。
2、在扩展ALU输入或输出寄存器中有1位标志位,处理器内核写入完输入寄存器时置位(或清零)此标志位以告诉扩展ALU启动运算。
扩展ALU返回运算结果的方式包括:
1、处理器内核直接读取输出寄存器得到运算结果。如果扩展ALU还未运算完成,会阻塞处理器内核读取输出寄存器,直到运算完成更新输出寄存器后。
2、在扩展ALU输入或输出寄存器中有1位标志位,处理器内核写入完输入寄存器时置位(或清零)此标志位以告诉扩展ALU启动运算,扩展ALU运算完成后自动清零(或置位)此标志位。处理器内核读取此标志位来判断扩展ALU运算是否完成。当发现运算完成时再读取输出寄存器。
3、如果扩展ALU运算所使用的时间较长,其与处理器的通信方式也可以使用中断,当扩展ALU运算完成时,采用中断的方式通知处理器运算完成。
实施例2
图2是扩展ALU输入输出寄存器分开连接示意图。注意输入和输出寄存器可能不止一个寄存器,而是1个寄存器文件。
图2中,处理器内核SPR接口引出连线连接扩展ALU的寄存器。MUX的选择信号为SPR_ADDR,当SPR_ADDR等于某一寄存器设定地址时,MUX选择此寄存器输出。访问扩展ALU寄存器的SPR接口如何同访问处理器原有SPR寄存器的接口复用见图4。
SPR_CS是处理器内核访问SPR地址空间的片选信号,为1时表明访问SPR。
SPR_ADDR是处理器内核访问SPR的地址,当有SPR页指针时,SPR页指针在SPR_ADDR的高位上。
SPR_WR是处理器内核写SPR寄存器的使能,为1时表明本次访问是写寄存器,为0时表明本次访问是读寄存器。
SPR_WDATA是处理器内核写SPR寄存器的数据。
SPR_RDATA是处理器内核读SPR寄存器的数据。
SPR_RACK是处理器内核读SPR寄存器的读有效信号,为1时表明SPR_RDATA存放了要读的数据。
实施例3
图3是扩展ALU输入输出寄存器合为一个的连接示意图。当扩展ALU输入输出数据较多时,输入和输出寄存器也可能不止一个寄存器,而是1个寄存器文件。
由于寄存器文件的访问接口和RAM的接口有些类似,所以如果处理器内的SPR接口,或存储访问接口也类似RAM接口,那么两者之间对接会比较容易,否则可能需要加入桥接逻辑电路。而如果芯片设计者想利用SPR接口或者存储访问接口直接挂载一块或几块RAM也是可以的。
实施例4
就像GPR和存储访问一样,处理器对SPR也定义了地址。当采取方式一时,扩展ALU的各个寄存器占用SPR地址空间;当采取方式二时,扩展ALU的各个寄存器占用存储访问的地址空间。
如图4所示,采取方式一时,如果处理器未使用的SPR地址空间充裕,足以容纳所有扩展ALU的寄存器,则为每个扩展ALU寄存器分配SPR地址即可。寄存器的字长可以和处理器其它SPR一致,例如32位,64位等。如果处理器未使用的SPR地址空间不足。则需要在处理器SPR中,或者处理器所在的SOC系统的寄存器文件中设置1个寄存器,名为“SPR页指针(以cext_ptr标识)”。加入SPR页指针后,处理器访问SPR地址空间的地址就变成了{SPR页指针,处理器原访问SPR地址},例如下表。下表是以处理器原访问SPR地址为12位,SPR页指针为4位为例说明;
即:将处理器的SPR空间变成许多页。可以把系统SPR所在页,定义为第0页,SPR页指针为0。扩展ALU的寄存器可以在第1页,第2页,……等其他页。
加入SPR页指针后,处理器上软件在访问系统SPR或其他SPR页时必须首先更新SPR页指针寄存器,然后再访问SPR寄存器。
图4中,SPR_CS是处理器内核访问SPR地址空间的片选信号,为1时表明访问SPR。
SPR_ADDR是处理器内核访问SPR的地址,当有SPR页指针时,SPR页指针在SPR_ADDR的高位上。
SPR_WR是处理器内核写SPR寄存器的使能,为1时表明本次访问是写寄存器,为0时表明本次访问是读寄存器。
SPR_WDATA是处理器内核写SPR寄存器的数据。
SPR_RDATA是处理器内核读SPR寄存器的数据。
SPR_RACK是处理器内核读SPR寄存器的读有效信号,为1时表明SPR_RDATA存放了要读的数据。
当存在扩展ALU时,SPR_CS,SPR_ADDR,SPR_WR,SPR_WDATA会送给系统SPR寄存器,也会送给扩展ALU的寄存器。每个寄存器依据SPR_CS,SPR_ADDR确定本寄存器是否被选中。当选中时,SPR_WR为1时,将SPR_WDATA写入寄存器,当SPR_WR为0时返回寄存器数据。
当存在SPR页指针时,在返回数据时,有1个多路选择器存在于系统SPR寄存器文件和各个扩展ALU阵列的寄存器文件之间。多路选择器的选择控制信号即为SPR页指针。
方式二通过存储访问接口连接扩展ALU时,可以有多个连接位置。一般处理器的内核发出的存储访问并不是和外部总线直接相连接,而是要经过Dcache/DMMU,BIU等模块。连接扩展ALU的位置,可以在处理器内核和Dcache之间,也可以在Dcache/DMMU和BIU之间,也可以在BIU之后。具体连接位置要根据处理器哪处接口便于连接来确定。如果都可以连接,应优先选择距离处理器内核较近的位置。如图5所示,以在处理器内核和Dcache/DMMU之间引出接口连接扩展ALU为例说明。
图5中,MEM_REQ是处理器内核访问外部存储器的请求或使能信号,为1时表明访问有效。
MEM_ADDR是处理器内核访问存储地址。
MEM_BE是处理器内核访问存储时的字节使能。总线位宽为32位时,BE为4位,每位控制1个字节是否参与访问。
MEM_WR是处理器内核写存储器的使能,为1时表明本次访问是写操作,为0时表明本次访问是读操作。
MEM_WDATA是处理器内核写存储器的数据。
MEM_RDATA是处理器内核读存储器的数据。
MEM_RACK是处理器内核读存储器的读响应信号,为1时表明MEM_RDATA存放了要读的数据。
当使用存储接口连接扩展ALU时,扩展ALU的寄存器要占用处理器数据空间一段地址。为了标识这段地址,需要在处理器SPR中或者处理器所在的SOC系统的寄存器文件中设置2个寄存器,1个是“存储扩展基地址(以cext_ba标识)”,另1个是“存储扩展屏蔽(以cext_mask标识)”。指明处理器要访问扩展ALU寄存器空间的选择信号SEL1的计算方法是:SEL1=(MEM_ADDR & cext_mask)==cext_ba,即处理器内核访问外部地址MEM_ADDR与cext_mask按位与,然后再与cext_ba比较,如果相等,SEL1为1,表明处理器内核是在访问扩展ALU寄存器;如果不想等,SEL1为0,表明处理器内核是在访问外部存储器。
当存在扩展ALU时,MEM_ADDR,MEM_BE,MEM_WR,MEM_WDATA会送给Dcache/DMMU。送给Dcache/DMMU的MEM_REQ0的计算方法是MEM_REQ0=MEM_REQ & (~SEL1),即当SEL1为0时,MEM_REQ0=MEM_REQ,进行外部存储器访问;否则MEM_REQ0=0,不进行外部存储器访问。送给扩展ALU的寄存器的MEM_REQ1的计算方法是MEM_REQ1=MEM_REQ & SEL1,即当SEL1为1时,MEM_REQ1=MEM_REQ,进行扩展ALU寄存器访问;否则MEM_REQ1=0,不进行扩展ALU寄存器访问。
扩展ALU每个寄存器依据MEM_REQ1,MEM_ADDR和MEM_BE确定本寄存器是否被选中。当选中时,MEM_WR为1时,将MEM_WDATA写入寄存器,当MEM_WR为0时返回寄存器数据。
在返回数据时,有1个多路选择器存在于Dcache/DMMU和各个扩展ALU阵列的寄存器文件之间。多路选择器的选择控制信号即为SEL1,当SEL1=1时选择扩展ALU寄存器的输出,否则选择Dcache/DMMU的输出。在数据访问期间,SEL1信号保持有效。
实施例5
当扩展ALU需要的数据比较多时,可以使用1个或多个寄存器来存放控制信息,例如启动计算,配置工作模式等,使用1个RAM来存放扩展ALU运算所需要的数据和输出结果。
如图6所示处理器先把扩展ALU运算所需要的数据存入RAM,然后配置控制寄存器启动运算。
当然,根据应用场景的不同,也可以设计成由DMA或处理器来将扩展ALU所需要的输入数据写入RAM。如图7所示,扩展ALU运算输入输出数据存放在芯片上某一RAM中。处理器A,或DMA,或其他处理器通过片上总线实现对这一RAM读写。扩展ALU检测到输入数据写入RAM指定单元后启动运算;或者DMA或其他处理器来将扩展ALU所需要的输入数据写入RAM后,采用中断等方式通知处理器A,由处理器A配置扩展ALU阵列控制寄存器来启动运算。
运算完成后扩展ALU将运算结果写入RAM,以供处理器A,DMA及其它处理器使用。扩展ALU读写RAM的地址和长度等信息存放在扩展ALU阵列控制寄存器中。
以上所述实施例仅表示本发明的实施方式,其描述较为具体和详细,但并不能理解为对本发明范围的限制。应当指出的是,对于本领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明保护范围。

Claims (5)

1.一种实现处理器直接连接扩展计算模块的方法,其特征在于,包括:
在处理器内原有的SPR访问接口或存储访问接口上再引出1个接口用来连接扩展ALU的寄存器文件;
所述处理器的内核,访问SPR时有1个SPR接口,访问外部存储器时有1个存储访问接口,其中包括2种连接方式,方式一:SPR接口连接扩展ALU方式;方式二:存储访问接口连接扩展ALU方式;连接方式为方式一,或方式一与方式二同时使用;
通过寄存器来实现所述处理器的内核与扩展ALU通信;在处理器看来,扩展ALU就是一堆寄存器;当处理器内核往扩展ALU输入寄存器写入源操作数后,扩展ALU启动运算,运算完成后结果送往扩展ALU输出寄存器;
其中:
当采取方式一时,扩展ALU的各个寄存器占用SPR地址空间;如果处理器未使用的SPR地址空间充裕,足以容纳所有扩展ALU的寄存器,则为每个扩展ALU寄存器分配SPR地址;寄存器的字长和处理器其它SPR一致;如果处理器未使用的SPR地址空间不足,则需要在处理器SPR中,或者处理器所在的SOC系统的寄存器文件中设置1个寄存器,名为“SPR页指针”,以cext_ptr标识;加入SPR页指针后,处理器访问SPR地址空间的地址就变成了{SPR页指针,处理器原访问SPR地址};
当采用方式二时,通过存储访问接口连接扩展ALU时,有多个连接位置;处理器的内核发出的存储访问并不是和外部总线直接相连接,而是要经过Dcache/DMMU,BIU模块;连接扩展ALU的位置,在处理器内核和Dcache之间,或在Dcache/DMMU和BIU之间,或在BIU之后;具体连接位置要根据处理器哪处接口便于连接来确定;如果都能连接,应优先选择距离处理器内核较近的位置。
2.根据权利要求1所述的一种实现处理器直接连接扩展计算模块的方法,其特征在于:所述扩展ALU输入和输出寄存器是同一个,或分开。
3.根据权利要求1所述的一种实现处理器直接连接扩展计算模块的方法,其特征在于:当扩展ALU需要的数据比较多时,使用1个或多个寄存器来存放控制信息。
4.根据权利要求1所述的一种实现处理器直接连接扩展计算模块的方法,其特征在于:所述扩展ALU启动运算的方式为:
a、处理器内核往扩展ALU输入寄存器中写入数据,这个“写入动作”会触发扩展ALU运算开始;当输入寄存器有多个时,最后1个或约定某一个写入将触发扩展ALU运算;当采取这种方式时,扩展ALU的启动使能是由寄存器写入地址和寄存器写使能共同触发;
或者b、在扩展ALU输入或输出寄存器中有1位标志位,处理器内核写入完输入寄存器时置位或清零此标志位以告诉扩展ALU启动运算。
5.根据权利要求1所述的一种实现处理器直接连接扩展计算模块的方法,其特征在于:所述扩展ALU返回运算结果的方式为:
a、处理器内核直接读取输出寄存器得到运算结果;如果扩展ALU还未运算完成,会阻塞处理器内核读取输出寄存器,直到运算完成更新输出寄存器后;
或者b、在扩展ALU输入或输出寄存器中有1位标志位,处理器内核写入完输入寄存器时置位或清零此标志位以告诉扩展ALU启动运算,扩展ALU运算完成后自动清零或置位此标志位;处理器内核读取此标志位来判断扩展ALU运算是否完成;当发现运算完成时再读取输出寄存器;
或者c、如果扩展ALU运算所使用的时间较长,其与处理器的通信方式使用中断,当扩展ALU运算完成时,采用中断的方式通知处理器运算完成。
CN201910548243.1A 2019-06-24 2019-06-24 一种实现处理器直接连接扩展计算模块的方法 Active CN110245096B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910548243.1A CN110245096B (zh) 2019-06-24 2019-06-24 一种实现处理器直接连接扩展计算模块的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910548243.1A CN110245096B (zh) 2019-06-24 2019-06-24 一种实现处理器直接连接扩展计算模块的方法

Publications (2)

Publication Number Publication Date
CN110245096A CN110245096A (zh) 2019-09-17
CN110245096B true CN110245096B (zh) 2023-07-25

Family

ID=67888974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910548243.1A Active CN110245096B (zh) 2019-06-24 2019-06-24 一种实现处理器直接连接扩展计算模块的方法

Country Status (1)

Country Link
CN (1) CN110245096B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5678037A (en) * 1994-09-16 1997-10-14 Vlsi Technology, Inc. Hardware graphics accelerator system and method therefor
JP2000235490A (ja) * 1999-02-17 2000-08-29 Hitachi Ltd マイクロプロセッサ
JP2002351658A (ja) * 2001-05-29 2002-12-06 Matsushita Electric Ind Co Ltd 演算処理装置
CN1766834A (zh) * 2005-01-20 2006-05-03 西安电子科技大学 双算术逻辑单元精简指令集8位微控制器
CN109062857A (zh) * 2018-08-14 2018-12-21 苏州硅岛信息科技有限公司 一种能高速实现多处理器间通信的新型消息控制器及其通信方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092662A (ja) * 1999-09-22 2001-04-06 Toshiba Corp プロセッサコア及びこれを用いたプロセッサ
DE10256586A1 (de) * 2002-12-04 2004-06-17 Philips Intellectual Property & Standards Gmbh Datenverarbeitungseinrichtung mit Mikroprozessor und mit zusätzlicher Recheneinheit sowie zugeordnetes Verfahren
CN1297888C (zh) * 2004-03-03 2007-01-31 浙江大学 32位媒体数字信号处理器
CN101221496B (zh) * 2008-01-23 2011-10-26 中国科学院计算技术研究所 精简指令集计算机处理器装置及其数据处理方法
JP5920226B2 (ja) * 2011-02-15 2016-05-18 日本電気株式会社 複素演算処理用コプロセッサ及びプロセッサシステム
CN102339386B (zh) * 2011-08-16 2013-08-28 杭州晟元芯片技术有限公司 一种嵌入式指纹特征提取加速方法
US9003102B2 (en) * 2011-08-26 2015-04-07 Sandisk Technologies Inc. Controller with extended status register and method of use therewith
US10318308B2 (en) * 2012-10-31 2019-06-11 Mobileye Vision Technologies Ltd. Arithmetic logic unit
CN103019324B (zh) * 2012-12-26 2015-08-12 无锡江南计算技术研究所 内存能力增强的可重构微服务器
CN104035896B (zh) * 2014-06-10 2017-01-11 复旦大学 一种适用于2.5d多核系统的融合存储器的片外加速器
CN104536913B (zh) * 2014-12-10 2017-07-28 山东华芯半导体有限公司 一种基于多块ram的大数运算电路的数据转移方法
CN104657297B (zh) * 2015-02-03 2018-02-09 杭州士兰控股有限公司 计算设备扩展系统及扩展方法
CN104598405B (zh) * 2015-02-03 2018-05-11 杭州士兰控股有限公司 扩展芯片及可扩展的芯片系统及控制方法
CN105988773B (zh) * 2015-02-10 2021-03-09 恩智浦美国有限公司 硬件接口组件和用于硬件接口组件的方法
US20170371662A1 (en) * 2016-06-23 2017-12-28 Intel Corporation Extension of register files for local processing of data in computing environments
CN117033279A (zh) * 2017-05-12 2023-11-10 葛松芬 一种时序输入输出控制方法
CN108415728B (zh) * 2018-03-01 2020-12-29 中国科学院计算技术研究所 一种用于处理器的扩展浮点运算指令执行方法及装置
CN108446096B (zh) * 2018-03-21 2021-01-29 杭州中天微系统有限公司 数据计算系统
CN109144573A (zh) * 2018-08-16 2019-01-04 胡振波 基于risc-v指令集的二级流水线架构

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5678037A (en) * 1994-09-16 1997-10-14 Vlsi Technology, Inc. Hardware graphics accelerator system and method therefor
JP2000235490A (ja) * 1999-02-17 2000-08-29 Hitachi Ltd マイクロプロセッサ
JP2002351658A (ja) * 2001-05-29 2002-12-06 Matsushita Electric Ind Co Ltd 演算処理装置
CN1766834A (zh) * 2005-01-20 2006-05-03 西安电子科技大学 双算术逻辑单元精简指令集8位微控制器
CN109062857A (zh) * 2018-08-14 2018-12-21 苏州硅岛信息科技有限公司 一种能高速实现多处理器间通信的新型消息控制器及其通信方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
《基于存储总线的可重构硬件加速部件研究与设计》;李玉军;《中国优秀硕士学位论文全文数据库信息科技辑》;I135-282 *
A novel implementation of 32 bit extended ALU Architecture at 28nm FPGA;Gaur, N.;《2016 International Conference on Emerging Trends in Communication Technologies (ETCT)》;第1-4页 *
基于扩展寄存器与片上网络的运算阵列设计;张家杰;《计算机工程》;20121026;第39卷(第7期);第7-10+15页 *
多核处理器关键技术研究——运算阵列及存储器的架构与实现;张家杰;《中国优秀硕士学位论文全文数据库信息科技辑》;I137-43 *
面向存储器级耦合的可重构硬件加速部件的研究与模拟;张宇;《中国优秀硕士学位论文全文数据库信息科技辑》;I137-49 *

Also Published As

Publication number Publication date
CN110245096A (zh) 2019-09-17

Similar Documents

Publication Publication Date Title
US5347636A (en) Data processor which efficiently accesses main memory and input/output devices
US20200159681A1 (en) Information processor with tightly coupled smart memory unit
US20080270707A1 (en) Data processor
US6401197B1 (en) Microprocessor and multiprocessor system
JPH06149545A (ja) Cpuと乗算器とを有する半導体集積回路
JPH0612327A (ja) キャッシュメモリを有するデータプロセッサ
US20180052685A1 (en) Processor and method for executing instructions on processor
US5053986A (en) Circuit for preservation of sign information in operations for comparison of the absolute value of operands
CN115421899A (zh) 可重构处理器多端口可配缓存访问方法及装置
JPS63193246A (ja) 集積キャッシュ・メモリと外部メモリの間の一貫性を保つ方法と装置
CN111124360B (zh) 一种可配置矩阵乘法的加速器
US20030196072A1 (en) Digital signal processor architecture for high computation speed
CN110245096B (zh) 一种实现处理器直接连接扩展计算模块的方法
US11093276B2 (en) System and method for batch accessing
JPH0282330A (ja) ムーブアウト・システム
CN114168199B (zh) 读写操作多数据请求解耦电路结构及读写方法
KR100267092B1 (ko) 멀티미디어신호프로세서의단일명령다중데이터처리
KR100463204B1 (ko) 선택적인 데이터 캐시 구조를 갖는 데이터 프로세싱 장치및 이를 포함하는 컴퓨터 시스템
JPS60195661A (ja) デ−タ処理システム
JP4448917B2 (ja) 半導体集積回路装置、データ処理装置及びマイクロコンピュータ
JP3323341B2 (ja) エミュレーション用プロセッサおよびそれを搭載したエミュレータ
JPH06149669A (ja) キャッシュデータ転送方式およびキャッシュデータ転送装置
JPH0926945A (ja) 情報処理装置
JPH11283362A (ja) FiFoメモリ制御回路及びこの制御回路を使用したマイクロプロセッサ制御回路
KR930002336B1 (ko) Tas 명령어 제어회로

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
TA01 Transfer of patent application right

Effective date of registration: 20230625

Address after: 215000 Xinan village, Shengze Town, Wujiang District, Suzhou City, Jiangsu Province (room 902-2, business incubation base of South Third Ring Road Science and Innovation Park)

Applicant after: Suzhou Blizzard Electronic Technology Co.,Ltd.

Address before: Room 712, 7 / F, Kangyang building, 406 Chunfeng Road, Huangdai Town, Xiangcheng District, Suzhou City, Jiangsu Province 215000

Applicant before: SUZHOU GUIDAO INFORMATION TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant