CN104391680A - 一种超标量微处理器中实现存储指令流水提交方法 - Google Patents
一种超标量微处理器中实现存储指令流水提交方法 Download PDFInfo
- Publication number
- CN104391680A CN104391680A CN201410685360.XA CN201410685360A CN104391680A CN 104391680 A CN104391680 A CN 104391680A CN 201410685360 A CN201410685360 A CN 201410685360A CN 104391680 A CN104391680 A CN 104391680A
- Authority
- CN
- China
- Prior art keywords
- instruction
- load
- rob
- reorder
- sequence number
- 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.)
- Granted
Links
Landscapes
- Advance Control (AREA)
Abstract
本发明涉及一种超标量微处理器中实现存储指令流水提交方法,本方法利用三类缓冲的自排序功能,通过改进三类缓冲间的接口协议,弱化存储指令的执行条件,加快存储指令的提交速度。通过恰当配置每个时钟周期提交的指令数量,以及每个时钟周期写一级数据缓存的存储指令数量,在执行连续的存储指令序列时,在存储地址命中一级数据缓存且具有可写权限的条件下,可实现存储指令流水提交功能,显著提高微处理器性能。
Description
技术领域
本发明涉及超标量微处理器的访存指令完成和提交逻辑,特别是涉及一种超标量微处理器中实现存储指令流水提交方法。
背景技术
当前的超标量微处理器都支持乱序发射、乱序执行、推测执行和顺序提交,如图1所示,指令流水线通常包括取指(Fetch)、译码(Decode)、寄存器重命名(Map)、发射(Issue)、执行(Execute)、提交(Retire)等几个基本的流水线站台。指令执行完成后按程序顺序进行提交是基本设计要求,因此当前的超标量微处理器都设置有一个全指令重排序缓冲(ROB),该缓冲是一个带头尾指针的循环队列,所有进入指令流水线的指令按程序顺序登记到ROB的队尾。指令执行以后,将异常或完成信息登记在各自对应的ROB条目中,登记的顺序与程序顺序无关。每个时钟周期,检查ROB队头,如果队头第一条指令发生异常,则撤销该指令对处理器状态产生的影响,并进入异常处理流程;如果队头连续的一条或多条指令执行完成并且没有发生异常,则接收指令对处理器状态产生的影响,简称指令提交。
为了描述方便,此处按程序的顺序对指令进行年龄排序,排在程序前面的指令称为年老的指令,排在程序后面的指令称为年轻的指令,所有进入指令流水线但还没有提交的指令称为飞行的指令。
ROB用于存放所有飞行指令的信息,包括取指地址和执行结果等。将指令在ROB中分配的条目号高位扩展一位后,作为指令的年龄序号(Inum号),该序号是指令在飞行期间的唯一标识,可用于指令间的年龄排序,排序方法是:两条指令的Inum号高位相同时,低位值越大的指令越年轻;高位不同时,低位值越小的指令则越年轻。
每个时钟周期里提交的指令数量会最终制约处理器单位时间内执行的指令数量(IPC),对处理器性能产生至关重要的影响。在精简指令集系统(RISC)中,指令大致可分为两类,一类是运算指令,这类指令的操作数都在处理器内部的寄存器中,其执行所花费的时钟周期是固定的;另一类是访存指令,这类指令所访问的数据可能在处理器内部不同缓存(Cache)中,也可能在外部主存中,其执行所花费的时钟周期是不固定的,有的需要几个时钟周期,有的可能需要上百个时钟周期。当访存指令到达ROB头部,但还未执行完成时,会长时间无法提交。因此,要提高指令的提交带宽,关键就是要解决访存指令的提交效率。
访存指令分为装入指令(Load)和存储指令(Store)两种,其中Load指令从一级数据Cache(DCache)或主存中读出数据并写入寄存器后,就表示执行完成可以提交。由于超标量微处理器支持乱序执行和推测执行,为保证程序执行的正确性,Store指令只能在确认是当前指令序列中最年老的指令且无异常时,才能将数据写入DCache或发向核外主存,然后才能提交。由此可见,Store指令的写DCache操作依赖于前一条指令的提交时刻,即使在命中一级数据Cache且具有可写权限的情况下,Store指令也无法与比它年老的指令一起提交,因此Store指令的提交速度非常慢。
为了控制访存指令的执行和提交,当前的超标量处理器中通常会在访存部件设置装入指令重排序缓冲(LQ)和存储指令重排序缓冲(SQ)。LQ用于存放所有飞行的Load类指令信息,包括Inum号、访存地址、目标寄存器号和执行结果等;SQ用于存放所有飞行的Store类指令信息,包括的Inum号、访存地址、存储数据和执行结果等。
发明内容
传统的访存指令提交流程如下,ROB与LQ/SQ的接口信号示意图如图2,具体操作如下:
1)对于Load指令:访存部件从Cache或主存中读出数据写入寄存器文件后,向ROB报完成,ROB收到完成信号后,按顺序提交指令,通知访存部件删除LQ中的条目;
2)对于Store指令:ROB先通知访存部件该指令为ROB头部第一条指令,允许Store指令执行,访存部件在命中DCache且获得可写权限后,启动写DCache操作,同时向ROB报完成,ROB收到完成信号后,按顺序提交指令,通知访存部件删除SQ中的条目。
本发明的发明人发现在上述流程中,Load指令的执行不依赖其它指令的状态,但LQ条目的释放依赖于本条Load指令提交的时刻。上述特性不影响Load指令的提交速度,但影响LQ条目的释放速度,在Load指令密集的情况下,可能导致指令流水线因LQ队列满而阻塞,从而影响处理器性能。
Store指令的执行依赖于前一条指令提交的时刻,而SQ条目的释放又依赖于本条Store指令提交的时刻。上述特性既影响Store指令的提交速度,又影响SQ条目的释放速度,因此对处理器性能影响很大。举例如下:
考虑到真实芯片中的传输延迟,假设ROB与访存部件之间的信号传送需花费一个时钟周期,则从ROB头指针更新到一条存储指令提交的操作节拍如下:
1)时钟周期0:ROB的头指针更新,指向一条Store指令;
2)时钟周期1:ROB通知SQ该Store指令已是当前指令序列中最年老的指令,允许执行写操作;
3)时钟周期2:SQ在条目中标记该Store指令可执行,理想情况下,当拍检查到命中DCache且具有可写权限,准备写DCache;
4)时钟周期3:SQ执行写DCache操作,并向ROB报完成;
5)时钟周期4:ROB检测到Store指令已执行完成,提交该指令;
6)时钟周期5:ROB通知SQ该Store指令已提交;
7)时钟周期6:对应的SQ条目释放。
由此可见,一条Store指令从到达ROB头部到提交最快需要5个时钟周期。如下表1所示,当指令流中出现连续的Store指令时,即使在理想情况下(命中DCache,且获得可写权限),也无法实现流水提交,只能每5个时钟周期提交一条指令,严重影响处理器的IPC。
表1
本发明所要解决的技术问题是提供一种超标量微处理器中实现存储指令流水提交方法,使得每个时钟周期里可以提交更多的指令,并且在存储地址命中DCache且具有可写权限的条件下,能实现存储指令流水提交功能。
本发明解决其技术问题所采用的技术方案是:提供一种超标量微处理器中实现存储指令流水提交方法,包括以下步骤:
(1)全指令重排序缓冲从当前头指针开始,检查头部n条指令的状态,选出当前允许提交的最年轻的指令的年龄序号发送给访存部件;
(2)访存部件收到所述年龄序号后,查询装入指令重排序缓冲,将装入指令重排序缓冲中与所述年龄序号相同的装入指令,以及比所述年龄序号更年老的装入指令都标记为可提交状态,一旦可提交状态的装入指令正常执行完成,向全指令重排序缓冲报告完成,同时删除可提交状态的装入指令对应的装入指令重排序缓冲条目;
(3)全指令重排序缓冲收到指令的完成信号后,登记到对应的条目中,全指令重排序缓冲从当前头指针开始,检查头部n条指令的状态,如果h条指令都无异常,且执行完成,则h条指令在一个时钟周期里一起提交,并移动全指令重排序缓冲的头指针,其中,n≥h≥1。
所述步骤(2)中访存部件收到所述年龄序号后还同时查询存储指令重排序缓冲,将存储指令重排序缓冲中与所述年龄序号相同的存储指令,以及比所述年龄序号更年老的存储指令都标记为可提交状态;如果存储指令重排序缓冲队头的存储指令命中一级数据缓存,且获得可写权限,并且被标记为可提交状态,就向全指令重排序缓冲报告完成,同时准备将数据写入一级数据缓存,等数据写入一级数据缓存后删除该指令对应的存储指令重排序缓冲条目。
所述步骤(1)中选择允许提交的最年轻的指令的年龄序号的原则是:如果被选的指令是运算指令,且该指令以及年老的指令都是已完成且无异常的指令;如果被选的指令是装入指令,则年老的指令是已完成无异常的运算指令或无异常的装入指令;如果被选的指令是存储指令,则年老的指令是已完成无异常的运算指令和装入指令,或是无异常的存储指令。
所述步骤(2)中访存部件允许一个时钟周期里删除m个装入指令重排序缓冲条目。
所述步骤(2)中访存部件允许一个时钟周期里将g条存储指令的数据写入一级数据缓存,并删除g个存储指令重排序缓冲条目。
有益效果
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:
本发明中Load指令的执行不依赖其它指令的状态,并且LQ条目的释放可与Load指令的提交并行进行。相对改进前的流程,提前释放LQ条目,可提高LQ条目的利用率,从而有效改善了处理器性能。
本发明中Store指令的执行只依赖于前几条指令是否已无异常执行完成,而不依赖于是否已提交,SQ条目的释放可与Store指令的提交并行进行。相对改进前的流程,提前执行Store指令,也提前释放SQ条目,可提高SQ条目的利用率,从而有效改善了处理器性能。此外,执行Store指令不再依赖前一条指令的提交,在理想情况下,Store指令可实现流水提交,大大提高了这种情况下的处理器性能。
附图说明
图1是现有技术中超标量微处理器中实现存储指令流水提交装置示意图;
图2是现有技术中严格的访存指令提交流程下ROB与IQ/SQ之间的接口示意图;
图3是本发明中改进的访存指令提交流程下ROB与IQ/SQ之间的接口示意图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明的实施方式涉及一种超标量微处理器中实现存储指令流水提交方法,如图2所示,包括以下步骤:
(1)全指令重排序缓冲从当前头指针开始,检查头部n条指令的状态,选出当前允许提交的最年轻的指令的年龄序号并发送给访存部件;选择允许提交的最年轻的指令的年龄序号的原则如下:如果被选的指令是运算指令,则该指令以及年老的指令都是已完成且无异常的指令;如果被选的指令是装入指令,则年老的指令是已完成无异常的运算指令或无异常的装入指令;如果被选的指令是存储指令,则年老的指令是已完成无异常的运算指令和装入指令,或是无异常的存储指令。
(2)访存部件收到所述年龄序号后,查询装入指令重排序缓冲,将装入指令重排序缓冲中与所述年龄序号相同的装入指令,以及比所述年龄序号更年老的装入指令都标记为可提交状态,一旦可提交状态的装入指令正常执行完成,向全指令重排序缓冲报告完成,同时删除可提交状态的装入指令对应的装入指令重排序缓冲条目;
(3)全指令重排序缓冲收到指令的完成信号后,登记到对应的条目中,全指令重排序缓冲从当前头指针开始,检查头部n条指令的状态,如果h条指令都无异常,且执行完成,则h条指令在一个时钟周期里一起提交,并移动全指令重排序缓冲的头指针,其中,n≥h≥1。
所述步骤(2)中访存部件收到所述年龄序号后还同时查询存储指令重排序缓冲,将存储指令重排序缓冲中与所述年龄序号相同的存储指令,以及比所述年龄序号更年老的存储指令都标记为可提交状态;如果存储指令重排序缓冲队头的存储指令命中一级数据缓存,且获得可写权限,并且被标记为可提交状态,就向全指令重排序缓冲报告完成,同时准备将数据写入一级数据缓存,等数据写入一级数据缓存后删除该指令对应的存储指令重排序缓冲条目。
下面通过具体的实施例来进一步说明本发明。
每个时钟周期里,ROB检查从头指针开始的n条(这里假定n=4)指令,按以下规则向访存部件发送允许提交的Inum号:
1)ROB头部n条指令全是运算指令,从ROB头指针开始找到连续的指令序列(数量为x,n≥x≥1),序列中的指令全是已完成且无异常的运算指令,将其中最年轻的指令的Inum号发给访存部件。由于没有比该Inum号更年老的访存指令,因此访存部件拿到此号后不进行任何操作。
顺序 | 指令 | 完成标志 | 异常标志 |
ROB头0 | Add0 | 1 | 0 |
ROB头1 | Add1 | 1 | 0 |
ROB头2 | Add2 | 0 | 0 |
ROB头3 | Add3 | 1 | 0 |
表3
表3中,ROB将Add1指令的Inum号发送给访存部件。
2)ROB头部n条指令全是Load指令,从ROB头指针开始找到连续的指令序列(数量为x,n≥x≥1),序列中的指令全是无异常的Load指令(不要求已完成),将最年轻的指令的Inum号发给访存部件,访存部件将允许该序列中所有Load指令一旦读出数据写完寄存器文件就可向ROB报完成,并释放LQ条目。
顺序 | 指令 | 完成标志 | 异常标志 |
ROB头0 | Load0 | 0/1 | 0 |
ROB头1 | Load1 | 0/1 | 0 |
ROB头2 | Load2 | 0/1 | 0 |
ROB头3 | Load3 | 0/1 | 0 |
表4
表4中,ROB将Load3指令的Inum号发送给访存部件,LQ标记Load0~Load3指令允许提交。
3)ROB头部n条指令包含Load指令和运算指令,从ROB头指针开始找到连续的指令序列(数量为x,n≥x≥1),序列中的指令要么是已完成且无异常的运算指令,要么是无异常的Load指令(不要求已完成),将序列中最年轻的指令的Inum号发访存部件,访存部件将允许该序列中所有Load指令一旦读出数据写完寄存器文件就可向ROB报完成,并释放LQ条目。
顺序 | 指令 | 完成标志 | 异常标志 |
ROB头0 | Load0 | 0/1 | 0 |
ROB头1 | Add1 | 1 | 0 |
ROB头2 | Load2 | 0/1 | 0 |
ROB头3 | Load3 | 0/1 | 0 |
表5
表5中,ROB将Load3指令的Inum号发送给访存部件,LQ标记Load0、Load2、Load3指令允许提交。
顺序 | 指令 | 完成标志 | 异常标志 |
ROB头0 | Add0 | 1 | 0 |
ROB头1 | Load1 | 0/1 | 0 |
ROB头2 | Load2 | 0/1 | 0 |
ROB头3 | Add3 | 0 | 0 |
表6
表6中,Add3是运算类指令且没有报完成,不能加入允许提交的序列,因此ROB将Load2指令的Inum号发送给访存部件,LQ标记Load1、Load2指令允许提交。
4)ROB头部n条指令全是Store指令,从ROB头指针开始找到连续的指令序列(数量为x,n≥x≥1),序列中的指令全是无异常的Store指令序列(不要求已完成),将最年轻的指令的Inum号发访存部件,访存部件将允许该序列中所有Store指令一旦命中DCache且获得写权限就可将数据写入DCache,向ROB报完成,并释放SQ条目。
顺序 | 指令 | 完成标志 | 异常标志 |
ROB头0 | Store0 | 0/1 | 0 |
ROB头1 | Store1 | 0 | 0 |
ROB头2 | Store2 | 0 | 0 |
ROB头3 | Store3 | 0 | 0 |
表7
表7中,ROB将Store3指令的Inum号发送给访存部件,SQ标记Store0~Store3指令允许提交。
5)ROB头部n条指令包含Load指令、运算指令和Store指令,从ROB头指针开始找到连续的指令序列(数量为x,n≥x≥1),序列中的指令要么是已完成且无异常的运算指令和Load指令,要么是无异常的Store指令(不要求已完成),将序列中最年轻的指令的Inum号发访存部件,访存部件将允许序列中所有Load指令一旦读出数据写完寄存器文件就可向ROB报完成,并释放LQ条目;允许序列中所有Store指令一旦命中DCache且获得写权限就可将数据写入DCache,向ROB报完成,并释放SQ条目。
顺序 | 指令 | 完成标志 | 异常标志 |
ROB头0 | Add0 | 1 | 0 |
ROB头1 | Store1 | 0 | 0 |
ROB头2 | Add2 | 1 | 0 |
ROB头3 | Store3 | 0 | 0 |
表8
表8中,ROB将Store3指令的Inum号发送给访存部件,SQ标记Store1和Store3指令允许提交。
顺序 | 指令 | 完成标志 | 异常标志 |
ROB头0 | Add0 | 1 | 0 |
ROB头1 | Store1 | 0 | 0 |
ROB头2 | Load2 | 1 | 0 |
ROB头3 | Store3 | 0 | 0 |
表9
表9中,ROB将Store3指令的Inum号发送给访存部件。LQ可能已释放Load2指令对应的条目,如果未释放则标记Load2指令允许提交,SQ标记Store1和Store3指令允许提交。
顺序 | 指令 | 完成标志 | 异常标志 |
ROB头0 | Add0 | 1 | 0 |
ROB头1 | Store1 | 0 | 0 |
ROB头2 | Load2 | 0 | 0 |
ROB头3 | Store3 | 0 | 0 |
表10
表10中,Load2指令还没有报完成,因此不能加入允许退出序列,因此ROB将Store1指令的Inum号发送给访存部件。LQ无法标记任何指令允许提交,SQ标记Store1指令允许提交。
在改进流程下,Load指令在从Cache或主存中读出数据写入寄存器时,如果该指令已被标记为允许提交状态,则该指令所在的LQ条目在向ROB报完成后就可以释放,而不依赖于ROB是否已提交该Load指令,因此相对改进前的流程,LQ条目的释放时刻提前了,LQ条目的利用率提高了。
在改进流程下,Store指令将数据写入DCache后,该指令所在的SQ条目就可以释放,而不依赖于ROB是否已提交该Store指令,因此相对改进前的流程,SQ条目的释放时刻提前了,SQ条目的利用率提高了。此外,SQ中Store指令执行写DCache的操作只依赖于前几条指令的执行状态,如果前面是非Store指令,则要求无异常且已执行完成(不要求已提交);如果是Store指令,则由SQ按程序顺序依次执行写操作。在理想情况下,指令流出现连续多条Store指令,每条Store指令都命中DCache且具有可写权限时,根据超标量微处理器的目标设计频率,适当配置各项参数,可实现存储指令流水提交。
在原来的信号传输延迟下,如果每个时钟周期内,SQ允许1条Store指令执行写DCache操作,ROB检查并允许4条指令提交,则上述理想情况下的操作流程如下表11:
表11
表11相对表1,相同条件下Store指令对应的SQ条目提前2个时钟周期释放,且每个时钟周期都有一条Store指令提交,提交带宽提高了5倍。
在原来的信号传输延迟下,如果每个时钟周期内,SQ允许2条Store指令执行写DCache操作,ROB检查并允许4条指令提交,则上述理想情况下,每个时钟周期可提交2条Store指令,提交带宽将比改进前提高10倍。
Claims (5)
1.一种超标量微处理器中实现存储指令流水提交方法,其特征在于,包括以下步骤:
(1)全指令重排序缓冲从当前头指针开始,检查头部n条指令的状态,选出当前允许提交的最年轻的指令的年龄序号发送给访存部件;
(2)访存部件收到所述年龄序号后,查询装入指令重排序缓冲,将装入指令重排序缓冲中与所述年龄序号相同的装入指令,以及比所述年龄序号更年老的装入指令都标记为可提交状态,一旦可提交状态的装入指令正常执行完成,向全指令重排序缓冲报告完成,同时删除可提交状态的装入指令对应的装入指令重排序缓冲条目;
(3)全指令重排序缓冲收到指令的完成信号后,登记到对应的条目中,全指令重排序缓冲从当前头指针开始,检查头部n条指令的状态,如果头h条指令都无异常,且执行完成,则h条指令在一个时钟周期里一起提交,并移动全指令重排序缓冲的头指针,其中,n≥h≥1。
2.根据权利要求1所述的超标量微处理器中实现存储指令流水提交方法,其特征在于,所述步骤(2)中访存部件收到所述年龄序号后还同时查询存储指令重排序缓冲,将存储指令重排序缓冲中与所述年龄序号相同的存储指令,以及比所述年龄序号更年老的存储指令都标记为可提交状态;如果存储指令重排序缓冲队头的存储指令命中一级数据缓存,且获得可写权限,并且被标记为可提交状态,就向全指令重排序缓冲报告完成,同时准备将数据写入一级数据缓存,等数据写入一级数据缓存后删除该指令对应的存储指令重排序缓冲条目。
3.根据权利要求1所述的超标量微处理器中实现存储指令流水提交方法,其特征在于,所述步骤(1)中选择允许提交的最年轻的指令的年龄序号的原则是:如果被选的指令是运算指令,且该指令以及年老的指令都是已完成且无异常的指令;如果被选的指令是装入指令,则年老的指令是已完成无异常的运算指令或无异常的装入指令;如果被选的指令是存储指令,则年老的指令是已完成无异常的运算指令和装入指令,或是无异常的存储指令。
4.根据权利要求1所述的超标量微处理器中实现存储指令流水提交方法,其特征在于,所述步骤(2)中访存部件允许一个时钟周期里删除m个装入指令重排序缓冲条目。
5.根据权利要求2所述的超标量微处理器中实现存储指令流水提交方法,其特征在于,所述步骤(2)中访存部件允许一个时钟周期里将g条存储指令的数据写入一级数据缓存,并删除g个存储指令重排序缓冲条目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410685360.XA CN104391680B (zh) | 2014-11-25 | 2014-11-25 | 一种超标量微处理器中实现存储指令流水提交方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410685360.XA CN104391680B (zh) | 2014-11-25 | 2014-11-25 | 一种超标量微处理器中实现存储指令流水提交方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104391680A true CN104391680A (zh) | 2015-03-04 |
CN104391680B CN104391680B (zh) | 2017-04-19 |
Family
ID=52609588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410685360.XA Active CN104391680B (zh) | 2014-11-25 | 2014-11-25 | 一种超标量微处理器中实现存储指令流水提交方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104391680B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110609709A (zh) * | 2019-09-11 | 2019-12-24 | 上海高性能集成电路设计中心 | 一种超标量微处理器中重发自陷立即处理方法 |
CN110661728A (zh) * | 2019-09-12 | 2020-01-07 | 无锡江南计算技术研究所 | 多虚通道传输时共享与私有相结合的缓冲设计方法与装置 |
CN110737474A (zh) * | 2019-09-29 | 2020-01-31 | 上海高性能集成电路设计中心 | 一种指令地址压缩存储方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187859A (zh) * | 2006-11-17 | 2008-05-28 | 上海高性能集成电路设计中心 | 基于访存指令的数据流预取方法 |
CN101447911A (zh) * | 2007-11-27 | 2009-06-03 | 上海高性能集成电路设计中心 | 一种通过分布控制扩展访存队列容量的装置 |
US20120173848A1 (en) * | 2010-12-30 | 2012-07-05 | Stmicroelectronics R&D (Beijing) Co. Ltd | Pipeline flush for processor that may execute instructions out of order |
-
2014
- 2014-11-25 CN CN201410685360.XA patent/CN104391680B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101187859A (zh) * | 2006-11-17 | 2008-05-28 | 上海高性能集成电路设计中心 | 基于访存指令的数据流预取方法 |
CN101447911A (zh) * | 2007-11-27 | 2009-06-03 | 上海高性能集成电路设计中心 | 一种通过分布控制扩展访存队列容量的装置 |
US20120173848A1 (en) * | 2010-12-30 | 2012-07-05 | Stmicroelectronics R&D (Beijing) Co. Ltd | Pipeline flush for processor that may execute instructions out of order |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110609709A (zh) * | 2019-09-11 | 2019-12-24 | 上海高性能集成电路设计中心 | 一种超标量微处理器中重发自陷立即处理方法 |
CN110661728A (zh) * | 2019-09-12 | 2020-01-07 | 无锡江南计算技术研究所 | 多虚通道传输时共享与私有相结合的缓冲设计方法与装置 |
CN110661728B (zh) * | 2019-09-12 | 2022-10-04 | 无锡江南计算技术研究所 | 多虚通道传输时共享与私有相结合的缓冲设计方法与装置 |
CN110737474A (zh) * | 2019-09-29 | 2020-01-31 | 上海高性能集成电路设计中心 | 一种指令地址压缩存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104391680B (zh) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2660716B1 (en) | Load-store dependency predictor content management | |
US9052890B2 (en) | Execute at commit state update instructions, apparatus, methods, and systems | |
EP2972844B1 (en) | Method and apparatus for efficient scheduling for asymmetrical execution units | |
US9582276B2 (en) | Processor and method for implementing barrier operation using speculative and architectural color values | |
US8090931B2 (en) | Microprocessor with fused store address/store data microinstruction | |
US9430235B2 (en) | Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors | |
US9600289B2 (en) | Load-store dependency predictor PC hashing | |
US8131976B2 (en) | Tracking effective addresses in an out-of-order processor | |
US9569214B2 (en) | Execution pipeline data forwarding | |
CN101281460B (zh) | 处理多个线程的方法和设备 | |
US20140095847A1 (en) | Instruction and highly efficient micro-architecture to enable instant context switch for user-level threading | |
CN106406814A (zh) | 处理器和将架构指令转译成微指令的方法 | |
US10437599B2 (en) | System and method of reducing processor pipeline stall caused by full load queue | |
KR20190033084A (ko) | 로드 스토어 유닛들을 바이패싱하여 스토어 및 로드 추적 | |
US6324640B1 (en) | System and method for dispatching groups of instructions using pipelined register renaming | |
US8468325B2 (en) | Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors | |
CN104391680A (zh) | 一种超标量微处理器中实现存储指令流水提交方法 | |
US11451241B2 (en) | Setting values of portions of registers based on bit values | |
CN101840330B (zh) | 一种微处理器和其信息储存方法 | |
EP3757772A1 (en) | System, apparatus and method for a hybrid reservation station for a processor | |
CN101137966A (zh) | 通用执行数据通路中软件控制的内容可寻址存储器 | |
US20180052684A1 (en) | Triple-pass execution | |
US20240184575A1 (en) | Transfer Buffer Between a Scalar Pipeline and Vector Pipeline | |
CN103235716B (zh) | 一种用于检测流水线数据相关的装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |