CN113961247B - 一种基于risc-v处理器的向量存/取指令执行方法、***及装置 - Google Patents
一种基于risc-v处理器的向量存/取指令执行方法、***及装置 Download PDFInfo
- Publication number
- CN113961247B CN113961247B CN202111121097.8A CN202111121097A CN113961247B CN 113961247 B CN113961247 B CN 113961247B CN 202111121097 A CN202111121097 A CN 202111121097A CN 113961247 B CN113961247 B CN 113961247B
- Authority
- CN
- China
- Prior art keywords
- micro
- load
- data
- cache
- memory queue
- 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 25
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000007547 defect 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
- 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/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
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
Abstract
本发明提供了一种基于RISC‑V处理器的向量存/取指令执行方法、***及装置,该方法包括:接收来自前端流水线的向量的load/store指令;锁住执行load/store指令的流水线,每个周期中计算一个元素的地址,将访问每个元素的操作拆分为一个微操作;每个微操作访问数据的高速缓存以获取数据;若没有命中第一级高速缓存,则通过内存队列向下一级高速缓存取回缓存行,并将取回的所述缓存行写到内存队列的对应表项中,并通知所有使用该取回的所述缓存行的微操作,所需数据已经准备好;将load/store指令重新进入到流水线中,并执行对应的存取操作。本方案能有效实现strided和indexed两种寻址方式的load/store指令的快速执行,有效减少存储器访问次数。
Description
技术领域
本发明涉及计算机指令调用执行领域,具体涉及一种基于RISC-V处理器上实现的向量存/取指令的执行方法、***及装置。
背景技术
在RISC-V的向量(vector)指令集中,对load/store(向量存/取指令)指令定义了unit-strided,strided和indexed三大类的寻址方式,由于unit-strided类型的寻址方式访问的存储器(memory)是连续的,因此,它只需要按照普通的load/store指令的方式进行实现即可,而对于另外两种寻址方式,它们访问的每个元素(element)在存储器(memory)中都是不连续的,对于load指令来说,这些元素(element)要汇总到一个目的寄存器中,对于store指令来说,要把寄存器中的每个元素写到不同的存储器地址中。
图1给出了RISC-V的vector load指令的格式,图2给出了RISC-V的vector store指令的格式,图3给出了vector load指令的unit寻址方式的示意图,element在内存中的地址由rs1寄存器给出,并且这些元素(element)在内存中占据连续的地址空间,这些元素(element)从内存中取出来放到目的寄存器vd中;图4给出了strided寻址方式的示意图,这些元素(element)在内存中以固定间隔的方式存储,基地址由rs1寄存器给出,地址间隔由rs2寄存器给出,对于vector load指令来说,这些元素(element)从内存中取出来写到vd寄存器中,对于vector store指令来说,这些元素(element)从寄存器vs3写到内存中;图5给出了indexed寻址方式的示意图,每个元素(element)在内存中的地址由rs1给出的基地址,加上vs2寄存器中对应的元素(element)的值组成,每个元素(element)在内存中的位置是分散的,对于vector load指令来说,这些元素(element)从内存中取出后写到vd寄存器中,对于vector store指令来说,这些元素(element)从寄存器vs3写到内存中。举例来说,在向量寄存器宽度(VLEN)是256位,向量元素宽度(称为EEW)是8位的情况下,就需要32次的存储器访问才可以把load指令需要的数据全部取回来,如果处理器支持寄存器重命名,那么把这些数据合并到一个物理寄存器中也是一个比较慢的过程。
因此,针对RISC-V处理器的向量存/取指令,现有的指令执行方式需要的指令周期冗长,资源消耗量大,不能很好满足对RISC-V处理器架构未来在运算速度等方面的要求。
发明内容
针对现有技术的不足,本发明提出一种基于RISC-V处理器的向量存/取指令执行方法、***及装置,能够快速实现strided和indexed两种寻址方式的load/store指令,减少指令执行中寄存器的访问次数,且能够有效支持快速的数据合并,在支持寄存器重命名的处理器上效果更为明显。
具体而言,本发明提供了以下的技术方案:
一方面,本发明提供了一种基于RISC-V处理器的向量存/取指令执行方法,该方法包括:
S1、接收来自前端流水线的向量的load/store指令;
S2、锁住执行load/store指令的流水线,每个周期中计算一个元素的地址,将访问每个元素的操作拆分为一个微操作;所述微操作仅访问的物理地址不同;
S3、每个所述微操作得到物理地址后,访问数据的高速缓存以获取数据,每个所述微操作获取到的数据均与之前周期的微操作得到的数据进行合并;
S4、判断每个所述微操作是否需要占据内存队列中一个新的表项,若需要,则内存队列建立一个表项;若所述微操作使用的缓存行地址已存在于内存队列中,则复用该表项;所述内存队列以缓存行为单位组织队列,每个所述表项表示一个缓存行;
S5、若没有命中第一级高速缓存,则通过内存队列向下一级高速缓存取回缓存行,并将取回的所述缓存行写到内存队列的对应表项,并通知所有使用该取回的所述缓存行的微操作,所需数据已经准备好;
S6、将load/store指令重新进入到流水线中,并执行对应的存取操作。
优选的,所述S1中,若处理器支持重命名,则所述load/store指令为重命名之后的指令。
优选的,所述S2中,每个所述微操作的物理地址为上一微操作的物理地址加上偏移量。如果微操作获取的为虚拟地址,则需要将虚拟地址转换为物理地址。
优选的,所述S3中,所述合并具体为:
若每个所述微操作命中第一级高速缓存,则最后一个所述微操作获得此前全部微操作的结果,直接把合并之后的数据写至目的寄存器;若某一微操作发生第一级高速缓存的缺失,则通过内存队列将相应的缓存行取回来。
优选的,所述S4进一步包括:
每个所述微操作将其必要信息写入到load/store队列的一个表项;所述必要信息包括是否命中高速缓存、所属内存队列、访问存储单元的地址、目的寄存器信息等,从而便于load/store队列的进一步执行和数据调用。
优选的,所述S6进一步包括:
对于load指令,将通过所述微操作获得的数据,按照每个微操作的存储单元的位置进行合并后,写入目的寄存器中;以及
对于store指令,所涉及的所述微操作所要写入的数据在内存队列中进行合并,写入到第一级高速缓存中。
另一方面,本发明还提供了一种基于RISC-V处理器的向量存/取指令执行***,该***包括:
LS模块,用于所述***接收前端流水线的向量的load/store指令,并锁住执行load/store指令的流水线;以及在每个周期中计算一个元素的地址,将访问每个元素的操作拆分为一个微操作;所述微操作仅访问的物理地址不同;
高速缓存模块,用于存储微操作所要获取的数据;
数据合并模块,用于将每个微操作获取到的数据均与之前周期的微操作得到的数据进行合并;
load/store队列模块,用于存储每个微操作的必要信息;
内存队列模块,用于存储微操作所要访问的缓存行,以及,若load/store指令没有命中第一级高速缓存,则向下一级高速缓存取回缓存行,并将取回的所述缓存行写到内存队列的对应表项。
优选的,所述内存队列模块还用于判断每个所述微操作是否需要占据内存队列中的一个新的表项,若需要,则内存队列建立一个表项;若所述微操作所在的缓存行已存在于内存队列中,则复用该表项。
优选的,若每个所述微操作命中第一级高速缓存,则最后一个所述微操作获得此前全部微操作的结果,直接把合并之后的数据写至目的寄存器;若某一微操作发生第一级高速缓存的缺失,则通过内存队列将相应的缓存行取回来,再发送至数据合并模块,进行数据合并,把合并之后的数据写至目的寄存器。
优选的,每个微操作的所述必要信息包括是否命中高速缓存、所属内存队列、访问存储单元的地址、目的寄存器信息等,从而便于load/store队列的进一步执行和数据调用。
又一方面,本发明还提供了一种基于RISC-V处理器的向量存/取指令执行装置,该装置包括基于RISC-V的处理器,以及存储设备,所述处理器从所述存储设备调用指令,以执行如上所述的一种基于RISC-V处理器的向量存/取指令执行方法。
与现有技术相比,本发明提供的技术方案能够在RISC-V处理器上有效实现strided和indexed两种寻址方式的load/store指令的快速执行,可以减少存储器的访问次数,并且可以支持快速的数据合并,在支持寄存器重命名的处理器上面的效果更为明显。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为现有技术中RISC-V的vector load指令的格式;
图2为现有技术中RISC-V的vector store指令的格式;
图3为vector load指令的unit寻址方式;
图4为strided寻址方式;
图5为indexed寻址方式;
图6为本发明实施例的执行方法原理图。
具体实施方式
下面将结合本发明实施例中的图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下,对申请文件中的术语进行说明如下:
Vector load/store:RISC-V的向量存取指令;
VLEN:向量寄存器的宽度,在RISC-V中它的值并不固定,可以有不同的值;
element:向量运算中的元素;
ROB:重排序队列;
EEW:向量运算中的元素的位宽;
MMU:内存管理单元,用来进行虚拟地址到物理地址的转换;
cache:缓存;
cache l ine:缓存行;
MEM queue:内存队列;
L2 cache:第二级缓存。
在一个具体的实施例中,本发明提供的技术方案中,对一条向量的load/store指令会按照正常的方式对VLEN长度的寄存器进行重命名,之后会进入到load/store执行单元,以下简称LS单元,其优选的执行方式参考图1所示(图中标号①至⑧表示一下具体实现方式中的步骤1至8),指令的执行可以优选通过以下步骤实现:
1.首先,需要将接收到的流水线进行锁定,在更为优选的实施方式中,可以设置一LS模块(load/store执行模块),以接收一条来自于前端流水线送过来的向量的load/store指令,如果处理器支持寄存器重命名,那么这是一条经过重命名之后的指令。
2.在LS模块中,把流水线锁住,每个周期计算一个元素(element)的地址,把访问每一个元素的操作都认为一个独立的微操作,但是,本方案中,和普通的指令拆解成微操作不同的是,在这里拆解出来的所有微操作除了访问地址是不同的,其它信息,例如目的寄存器的信息,ROB的编号等,都是相同的。在向量寄存器的宽度(VLEN)固定的情况下,这个拆解共需要占用的周期数是“向量寄存器的宽度/元素的宽度”,即VLEN/EEW的值,对于strided寻址方式来说,计算地址需要的基地址和偏移量都是固定的值,每个微操作的地址都是来自于上一个微操作的地址加上固定的偏移量即可,而对于indexed的寻址方式来说,每个微操作的地址来自于固定的基地址加上不同的偏移量,偏移量来自于向量寄存器中对应的元素的值。在又一个实施方式中,如果处理器支持MMU(内存管理单元),那么此处还应该把每个微操作计算出来的虚拟地址转换为实际的物理地址。即在各个微操作中使用的地址,优选的均为实际的物理地址。
3.每个微操作得到物理地址后,都会去访问第一级的数据高速缓存(Cache),每个微操作从高速缓存中拿到的值都会和之前周期的微操作得到的值进行合并。在一个更为详细的实施方式中,此处共分为两种情况:如果每个微操作都命中了第一级Cache,那么最后一个微操作就可以拿到之前所有微操作的结果,直接可以把合并之后的数据写到目的寄存器中,如果有微操作发生了第一级Cache的缺失,那么就需要使用内存队列(MEM queue)来把相应的缓存行(cache line)取回来。
4.每个微操作会在MEM queue(内存队列)中判断自己是否需要占据一个新的表项(entry),MEM queue是按照一个缓存行的大小组织的队列,每个表项表示了一个缓存行,如果一个微操作发现它要访问的缓存行已经存在于MEM queue中了(例如前面的指令或微操作也访问了这个缓存行),那么这个微操作就只需要复用这个MEM queue的表项即可。每个微操作都会把它的一些必要的信息,包括但是不限于是否命中高速缓存,属于哪个MEMqueue表项,访问存储单元的地址,目的寄存器的信息,store指令携带的数据等,写到load/store队列的一个表项中,这里的load/store队列可以是为load和store指令统一使用的一个队列,也可以是为load和store指令分别使用的独立的队列。
5.对于load指令来说,如果没有命中第一级数据缓存,会通过MEM queue向下一级缓存,例如L2 Cache,取回这个缓存行;对于store指令来说,如果没有命中第一级数据缓存,在store指令满足提交的条件之后,会通过MEM queue把这个缓存行从下一级缓存,例如L2 Cache,取回这个缓存行。所有访问同一个缓存行的微操作只需要访问一次L2 Cache即可。
6.从L2 Cache取回来的缓存行会写到MEM queue对应的表项中,同时会通知load/store队列中所有使用这个缓存行的微操作,它们所需要的数据已经准备好。
7.对于load指令来说,一旦它的所有微操作在load/store队列中都已经准备好数据,它们就可以重新进入到流水线中,这些微操作要么从第一级Cache拿到数据,要么从MEMqueue拿到数据,这些数据会按照每个微操作的元素位置进行合并,然后写到目的寄存器中。这种方式可以避免在load/store队列中存储第一次命中第一级Cache时的数据,从而减少了load/store队列占用的面积。
8.对于store指令来说,它的所有微操作要写的数据都会在MEM queue中进行合并之后写到第一级Cache中,所有写同一个缓存行的微操作只需要写一次第一级Cache。
此外,在另一中具体的实施方式中,本发明提供的方案还可以通过一种***或者装置的方式来实现。
在一个优选的实现方式中,同样结合图6,该***可以包括:
LS模块,用于所述***接收前端流水线的向量的load/store指令,并锁住执行load/store指令的流水线;以及在每个周期中计算一个元素的地址,将访问每个元素的操作拆分为一个微操作;所述微操作仅访问的物理地址不同;
高速缓存模块,用于存储微操作所要获取的数据;
数据合并模块,用于将每个微操作获取到的数据均与之前周期的微操作得到的数据进行合并;
load/store队列模块,用于存储每个微操作的必要信息;
内存队列模块,用于存储微操作所要访问的缓存行,以及,若load/store指令没有命中第一级高速缓存,则向下一级高速缓存取回缓存行,并将取回的所述缓存行写到内存队列的对应入口。
此外,所述内存队列模块还用于判断每个所述微操作是否需要占据一个新的表项,若需要,则内存队列建立一表项;若所述微操作所在的缓存行已存在于内存队列中,则复用该表项。
更具体的,若每个所述微操作命中第一级高速缓存,则最后一个所述微操作获得此前全部微操作的结果,直接把合并之后的数据写至目的寄存器;若某一微操作发生第一级高速缓存的缺失,则通过内存队列将相应的缓存行取回来,再发送至数据合并模块,进行数据合并,把合并之后的数据写至目的寄存器。
更进一步的,每个微操作的所述必要信息包括是否命中高速缓存、所属内存队列、访问存储单元的地址、目的寄存器信息等,从而便于load/store队列的进一步执行和数据调用。
同时,本发明的方案还可以通过一种电子装置的方式来实现,该装置包括基于RISC-V架构的处理器,以及存储设备,所述处理器从所述存储设备调用指令,以执行如上所述的一种基于RISC-V处理器的向量存/取指令执行方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (9)
1.一种基于RISC-V处理器的向量存/取指令执行方法,其特征在于,所述方法包括:
S1、接收来自前端流水线的向量的load/store指令;
S2、锁住load/store流水线,每个周期中计算一个元素的地址,将访问每个元素的操作拆分为一个微操作;所述微操作仅访问的物理地址不同;
S3、每个所述微操作得到物理地址后,访问数据的高速缓存以获取数据,每个所述微操作获取到的数据均与之前周期的微操作得到的数据进行合并;
S4、判断每个所述微操作是否需要占据内存队列中的一个新的表项,若需要,则内存队列建立一个表项;若所述微操作所在的缓存行已存在于内存队列中,则复用内存队列中的这个表项;所述内存队列以缓存行为单位,每个所述表项表示一个缓存行;
S5、若没有命中第一级高速缓存,则通过内存队列向下一级高速缓存取回缓存行,并将取回的所述缓存行写到内存队列的对应表项,并通知所有使用该取回的所述缓存行的微操作,所需数据已经准备好;
S6、将load/store指令重新进入到流水线中,并执行对应的存取操作;
所述S4进一步包括:
每个所述微操作将其必要信息写入到load/store队列的一个表项;所述必要信息包括是否命中高速缓存、所属内存队列、访问存储单元的地址、目的寄存器信息。
2.根据权利要求1所述的方法,其特征在于,所述S1中,若处理器支持重命名,则所述load/store指令为重命名之后的指令。
3.根据权利要求1所述的方法,其特征在于,所述S2中,每个所述微操作的物理地址为上一微操作的物理地址加上偏移量。
4.根据权利要求1所述的方法,其特征在于,所述S3中,所述合并具体为:
若每个所述微操作命中第一级高速缓存,则最后一个所述微操作获得此前全部微操作的结果,直接把合并之后的数据写至目的寄存器;若某一微操作发生第一级高速缓存的缺失,则通过内存队列将相应的缓存行取回来。
5.根据权利要求1所述的方法,其特征在于,所述S6进一步包括:
对于load指令,将通过所述微操作获得的数据,按照每个微操作的存储单元的位置进行合并后,写入目的寄存器中;以及
对于store指令,所涉及的所述微操作所要写入的数据在内存队列中进行合并,写入到第一级高速缓存中。
6.一种基于RISC-V处理器的向量存/取指令执行***,其特征在于,所述***包括:
LS模块,用于所述***接收前端流水线的向量的load/store指令,并锁住执行load/store指令的流水线;以及在每个周期中计算一个元素的地址,将访问每个元素的操作拆分为一个微操作;所述微操作仅访问的物理地址不同;
高速缓存模块,用于存储微操作所要获取的数据;
数据合并模块,用于将每个微操作获取到的数据均与之前周期的微操作得到的数据进行合并;
load/store队列模块,用于存储每个微操作的必要信息,每个所述微操作将其必要信息写入到load/store队列的一个表项;所述必要信息包括是否命中高速缓存、所属内存队列、访问存储单元的地址、目的寄存器信息;
内存队列模块,用于存储微操作所要访问的缓存行,以及,若load/store指令没有命中第一级高速缓存,则向下一级高速缓存取回缓存行,并将取回的所述缓存行写到内存队列的对应表项。
7.根据权利要求6所述的***,其特征在于,所述内存队列模块还用于判断每个所述微操作是否需要占据一个新的表项,若需要,则内存队列建立一个新的表项;若所述微操作所在的缓存行已存在于内存队列中,则复用该表项。
8.根据权利要求6所述的***,其特征在于,若每个所述微操作命中第一级高速缓存,则最后一个所述微操作获得此前全部微操作的结果,直接把合并之后的数据写至目的寄存器;若某一微操作发生第一级高速缓存的缺失,则通过内存队列将相应的缓存行取回来,再发送至数据合并模块,进行数据合并,把合并之后的数据写至目的寄存器。
9.一种基于RISC-V处理器的向量存/取指令执行装置,其特征在于,所述装置包括基于RISC-V的处理器,以及存储设备,所述处理器从所述存储设备调用指令,以执行如权利要求1至5任一所述的一种基于RISC-V处理器的向量存/取指令执行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111121097.8A CN113961247B (zh) | 2021-09-24 | 2021-09-24 | 一种基于risc-v处理器的向量存/取指令执行方法、***及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111121097.8A CN113961247B (zh) | 2021-09-24 | 2021-09-24 | 一种基于risc-v处理器的向量存/取指令执行方法、***及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113961247A CN113961247A (zh) | 2022-01-21 |
CN113961247B true CN113961247B (zh) | 2022-10-11 |
Family
ID=79462099
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111121097.8A Active CN113961247B (zh) | 2021-09-24 | 2021-09-24 | 一种基于risc-v处理器的向量存/取指令执行方法、***及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113961247B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116909943B (zh) * | 2023-09-08 | 2023-12-19 | 飞腾信息技术有限公司 | 一种缓存访问方法、装置、存储介质及电子设备 |
CN116909755B (zh) * | 2023-09-13 | 2023-12-22 | 北京开源芯片研究院 | 一种访存方法、处理器、电子设备及可读存储介质 |
CN117573572A (zh) * | 2024-01-12 | 2024-02-20 | 北京开源芯片研究院 | 重填数据的处理方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5685009A (en) * | 1994-07-20 | 1997-11-04 | Exponential Technology, Inc. | Shared floating-point registers and register port-pairing in a dual-architecture CPU |
CN1195809A (zh) * | 1997-04-10 | 1998-10-14 | 国际商业机器公司 | Store(存数)指令结果的前送 |
CN1355900A (zh) * | 1999-05-13 | 2002-06-26 | Arc国际美国控股公司 | 用于处理器流水线分段法及再装配的方法以及装置 |
CN1625731A (zh) * | 2002-01-31 | 2005-06-08 | Arc国际公司 | 具有多种长度指令集体系结构的可配置数据处理器 |
CN101211256A (zh) * | 2006-12-29 | 2008-07-02 | 上海贝岭股份有限公司 | 一种专用双流水线risc指令***及其操作方法 |
CN102262611A (zh) * | 2010-05-25 | 2011-11-30 | 无锡华润矽科微电子有限公司 | 一种16位的risc cpu***结构 |
CN108845830A (zh) * | 2018-07-03 | 2018-11-20 | 中国人民解放军国防科技大学 | 一种一对数装载指令的执行方法 |
CN110928577A (zh) * | 2019-11-14 | 2020-03-27 | 中国人民解放军国防科技大学 | 一种带异常返回的向量存储指令的执行方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105988774A (zh) * | 2015-02-20 | 2016-10-05 | 上海芯豪微电子有限公司 | 一种多发射处理器***和方法 |
CN106406814B (zh) * | 2016-09-30 | 2019-06-14 | 上海兆芯集成电路有限公司 | 处理器和将架构指令转译成微指令的方法 |
-
2021
- 2021-09-24 CN CN202111121097.8A patent/CN113961247B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5685009A (en) * | 1994-07-20 | 1997-11-04 | Exponential Technology, Inc. | Shared floating-point registers and register port-pairing in a dual-architecture CPU |
CN1195809A (zh) * | 1997-04-10 | 1998-10-14 | 国际商业机器公司 | Store(存数)指令结果的前送 |
CN1355900A (zh) * | 1999-05-13 | 2002-06-26 | Arc国际美国控股公司 | 用于处理器流水线分段法及再装配的方法以及装置 |
CN1625731A (zh) * | 2002-01-31 | 2005-06-08 | Arc国际公司 | 具有多种长度指令集体系结构的可配置数据处理器 |
CN101211256A (zh) * | 2006-12-29 | 2008-07-02 | 上海贝岭股份有限公司 | 一种专用双流水线risc指令***及其操作方法 |
CN102262611A (zh) * | 2010-05-25 | 2011-11-30 | 无锡华润矽科微电子有限公司 | 一种16位的risc cpu***结构 |
CN108845830A (zh) * | 2018-07-03 | 2018-11-20 | 中国人民解放军国防科技大学 | 一种一对数装载指令的执行方法 |
CN110928577A (zh) * | 2019-11-14 | 2020-03-27 | 中国人民解放军国防科技大学 | 一种带异常返回的向量存储指令的执行方法 |
Non-Patent Citations (3)
Title |
---|
Hardware-Accelerated Platforms and Infrastructures for Network Functions: A Survey of Enabling Technologies and Research Studies;Prateek Shantharama .etc;《IEEE Access》;20200709;第8卷;132021-132085 * |
众核处理器中使用写掩码实现混合写回/写穿透策略;林伟;《计算机学报》;20081130;第31卷(第11期);1918-1928 * |
同构众核处理器的片上存储管理与同步机制研究;陈小文;《中国博士学位论文全文数据库(电子期刊)》;20120731;I137-7 * |
Also Published As
Publication number | Publication date |
---|---|
CN113961247A (zh) | 2022-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113961247B (zh) | 一种基于risc-v处理器的向量存/取指令执行方法、***及装置 | |
US6151662A (en) | Data transaction typing for improved caching and prefetching characteristics | |
US6065103A (en) | Speculative store buffer | |
US6549985B1 (en) | Method and apparatus for resolving additional load misses and page table walks under orthogonal stalls in a single pipeline processor | |
US6523109B1 (en) | Store queue multimatch detection | |
US8688951B2 (en) | Operating system virtual memory management for hardware transactional memory | |
US8458408B2 (en) | Cache directed sequential prefetch | |
US5941981A (en) | System for using a data history table to select among multiple data prefetch algorithms | |
US6055650A (en) | Processor configured to detect program phase changes and to adapt thereto | |
US7213126B1 (en) | Method and processor including logic for storing traces within a trace cache | |
US20070050592A1 (en) | Method and apparatus for accessing misaligned data streams | |
US6651161B1 (en) | Store load forward predictor untraining | |
JP2009537053A (ja) | 仮想化されたトランザクショナルメモリのグローバルオーバーフロー方法 | |
JPH0612386A (ja) | プロセス内のスレッドを同期するための方法およびシステム | |
US10423467B2 (en) | Data processing apparatus and method for performing lock-protected processing operations for multiple threads | |
US20030074530A1 (en) | Load/store unit with fast memory data access mechanism | |
CN115640047B (zh) | 指令操作方法及装置、电子装置及存储介质 | |
US5900012A (en) | Storage device having varying access times and a superscalar microprocessor employing the same | |
US6751700B2 (en) | Date processor and storage system including a set associative cache with memory aliasing | |
US6862670B2 (en) | Tagged address stack and microprocessor using same | |
US20140019690A1 (en) | Processor, information processing apparatus, and control method of processor | |
US6704854B1 (en) | Determination of execution resource allocation based on concurrently executable misaligned memory operations | |
US5878252A (en) | Microprocessor configured to generate help instructions for performing data cache fills | |
US9507725B2 (en) | Store forwarding for data caches | |
US7430657B2 (en) | System, method and device for queuing branch predictions |
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 |