CN101777027B - 基于动静态混合调度策略的访存操作管理装置及其方法 - Google Patents
基于动静态混合调度策略的访存操作管理装置及其方法 Download PDFInfo
- Publication number
- CN101777027B CN101777027B CN2010100344631A CN201010034463A CN101777027B CN 101777027 B CN101777027 B CN 101777027B CN 2010100344631 A CN2010100344631 A CN 2010100344631A CN 201010034463 A CN201010034463 A CN 201010034463A CN 101777027 B CN101777027 B CN 101777027B
- Authority
- CN
- China
- Prior art keywords
- memory access
- formation
- cache
- state
- write
- 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
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
基于动静态混合调度策略的访存操作管理装置及其方法,所述方法包括:访存类型判定步骤,用于将访存操作区分为第一类型或第二类型;动态调度访存步骤,用于接收第一类型的访存操作,并以动态调度策略管理第一类型的访存操作;静态调度访存步骤,用于接收第二类型的访存操作,并以静态调度策略管理第二类型的访存操作;访存失效管理步骤,用于管理Cache失效访存操作;访存顺序维护步骤,用于记录并维护所述第一类型的访存操作、第二访存类型的访存操作和Cache失效访存操作的顺序关系。本发明一方面继承了动态调度的高性能优点,另一方面通过适当引入静态调度策略降低了整体的设计复杂度与实现开销,同时兼顾了效率与性能。
Description
技术领域
本发明属于计算机体系结构中处理器技术领域,特别涉及处理器中访存操作管理装置及其方法。
背景技术
在现代处理器体系结构设计中,访存部分的设计实现成为至关重要的一方面。之前的设计人员在这一方面提出了许多优化技术,诸如Cache、非阻塞访问、预取、访存指令相关预测等。这些技术实现过程中需要在访存部件内部缓存多条操作,以便展开有效调度,充分利用优化技术进行处理。
现有的高性能处理器通常采用完全动态的访存操作管理方式,访存操作在进入访存部件后即进入一个统一的动态队列中,对其进行的调度不需要遵守操作进入访存部件的顺序。这在一方面能够极大限度的开发访存操作之间的并行性,提高处理器执行性能,但是在另一方面,在调度的同时维护高速缓存(Cache)一致性所需要做的控制也变得更为复杂。复杂的设计不仅会大大增加设计验证周期的长度,也会增加处理器的资源开销。
另一方面,传统的处理器对于访存操作管理采用了保守的静态调度策略,所有的访存操作在访存部件中被调度的顺序即是它们进入访存部件的顺序。这种机制大大降低了维护Cache一致性的实现复杂度,但它的弊端是无法采用更充分的性能优化技术。
综上,需要一种复杂度低但性能高的访存操作管理机制。
发明内容
本发明的目的在于,提供一种基于动静态混合调度策略的访存操作管理装置及其方法,以降低了整体的设计复杂度与实现开销,同时兼顾了效率与性能。
为实现上述目的,本发明采用如下技术方案:
一种基于动静态混合调度策略的访存操作管理装置,包括:
访存类型判定部件,用于将访存操作区分为第一类型或第二类型;
动态调度访存部件,与所述访存类型判定部件(1)相连接,用于接收第一类型的访存操作,并以动态调度策略管理第一类型的访存操作;
静态调度访存部件,与所述访存类型判定部件(1)相连接,用于接收第二类型的访存操作,并以静态调度策略管理第二类型的访存操作;
访存失效管理部件,用于管理Cache失效访存操作;
访存顺序维护部件,与所述动态调度访存部件、静态调度访存部件和访存失效管理部件相连接,用于记录并维护所述第一类型的访存操作、第二访存类型的访存操作和Cache失效访存操作的顺序关系。
进一步地,所述第一类型的访存操作为Cache读访问,所述Cache读访问包括Cache读失效访问和Cache读命中访问。
进一步地,所述动态调度访存部件以队列的方式处理访存操作的部件,所述动态调度访存部件中的队列为第一队列,所述第一队列中存放;
所述第一队列中的每一项包括:状态域、操作码域、队列号域、物理地址域、结果域和字节准备好域。
进一步地,所述第二类型的访存操作为对于Cache空间的写访问及对于非Cache空间的读访问与写访问。
进一步地,所述静态调度访存部件以队列的方式处理访存操作的部件;所述静态调度访存部件中的队列为第二队列,所述第二队列中存放所述第二类型的访存操作,所述第二队列中的每一项包括:状态域、操作码域、队列号域、物理地址域、数值域和字节写使能域。
进一步地,所述访存失效管理部件以队列的方式处理访存操作的部件,所述访存失效管理部件中的队列为第三队列,所述第三队列存放有Cache失效操作,所述第三队列中的每一项包括:状态域、失效地址域、字节使能域、数据域及返回字节数域。
本发明还提供一种基于动静态混合调度策略的访存操作管理方法,其特征在于包括以下步骤:
访存类型判定步骤,用于将访存操作区分为第一类型或第二类型;
动态调度访存步骤,用于接收第一类型的访存操作,并以动态调度策略管理第一类型的访存操作;
静态调度访存步骤,用于接收第二类型的访存操作,并以静态调度策略管理第二类型的访存操作;
访存失效管理步骤,用于管理Cache失效访存操作;
访存顺序维护步骤,用于记录并维护所述第一类型的访存操作、第二访存类型的访存操作和Cache失效访存操作的顺序关系。
进一步地,所述第一类型的访存操作为Cache读访问,所述Cache读访问包括Cache读失效访问和Cache读命中访问
进一步地,所述动态调度访存步骤中,以队列的方式处理访存操作,所述动态调度访存步骤中的队列为第一队列,所述第一队列中存放所述第一类型的访存操作。
进一步地,所述第二类型的访存操作为对于Cache空间的写访问及对于非Cache空间的读访问与写访问
进一步地,所述静态调度访存步骤中以队列的方式处理访存操作;
所述静态调度访存部件中的队列为第二队列,所述第二队列中存放所述第二类型的访存操作。
进一步地,访存失效管理步骤中以队列的方式处理访存操作,所述访存失效管理步骤中的队列为第三队列,所述第三队列存放有Cachc失效操作。
进一步地,当所述动态调度步骤和静态调度步骤同时选择出各自队列待写回的操作时,动态调度队列的操作优先写回。
本发明一方面继承了动态调度的高性能优点,另一方面通过适当引入静态调度策略降低了整体的设计复杂度与实现开销,同时兼顾了效率与性能。
以下结合附图及实施例进一步说明本发明。
附图说明
图1为本发明基于动静态混合调度策略的访存操作管理装置具体实例结构示意图。
具体实施方式
实施例一
如图1所示,一种基于动静态混合调度策略的访存操作管理装置,包括:
访存类型判定部件1,用于将访存操作区分为第一类型或第二类型;
动态调度访存部件2,与所述访存类型判定部件(1)相连接,用于接收第一类型的访存操作,并以动态调度策略管理第一类型的访存操作;
静态调度访存部件3,与所述访存类型判定部件(1)相连接,用于接收第二类型的访存操作,并以静态调度策略管理第二类型的访存操作;
访存失效管理部件4,用于管理Cache失效访存操作;
访存顺序维护部件5,与所述动态调度访存部件2、静态调度访存部件3和访存失效管理部件4相连接,用于记录并维护所述第一类型的访存操作、第二访存类型的访存操作和Cache失效访存操作的顺序关系。
其中,所述第一类型的访存操作和第二访存类型的访存操作可以根据处理器执行的功能及其对应的访存类型进行优化选择设定。
本实施例中,所述第一类型的访存操作为Cache读访问,具体包括Cache读失效访问和cache读命中访问。
所述动态调度访存部件2以队列的方式处理访存操作的部件。所述动态调度访存部件2中的队列为第一队列20,所述第一队列20中存放所述第一类型的访存操作。读操作进入该第一队列20时,并不一定必须进入第一队列20尾的空项,而是从上次写入的那一项之后开始按正向顺序循环找到第一个空项写入即可(从某项按正向顺序循环查找是指,先从这项查找至队列尾,若没有再从队列头查找至该项之前的那一项)。而从该第一队列20挑选出一项已完成的操作并写回到结果总线上时,也不一定必须从队列头挑出,而是从上次写回的那一项之后开始按正向顺序循环找到第一条已完成的操作将其写回即可。本实施例中以写入指针和写回指针完成该第一队列20的操作,即写入指针和写回指针分别指向最近一次新写入的那一项和最近一次写回的那一项,在处理器复位或例外提交后,这两个指针均指向该第一队列20的最后一项,以保证第一次写入或写回的项都从第0项开始。
如图1所示,本实施例中,所述第一队列20共有8项,每一项包含状态域、操作码域、队列号域、物理地址域、结果域和字节准备好域,具体描述如下:
状态域(STATE):记录该项的状态,共有四种:BLANK表示这一项为空,没有操作;READY表示这一项的操作和执行完毕可以返回结果;WAIT_BUF表示这一项的为一条Cache写失效操作等待进入访存失效队列;WAIT_RESULT表示这一项的Cache写失效操已经进入访存失效队列,在等待结果的返回;
操作码域(OP):记录该项操作的操作码;
队列号域(QID):该项操作在重定序队列中的队列号;
物理地址域(ADDR):该项操作的物理地址;
结果域(VALUE):操作的结果;
字节准备好域(BRDY):操作中哪些字节已经得到。
第一队列20在处理器复位或例外提交后,所有项均置为BLANK状态。Cache命中的读操作在进入第一队列20时就置为READY状态,处于READY状态的操作将不再产生任何动作直到其被写回。所有操作必须处于READY状态才能被写回,除进入第一队列20就置为READY的操作外,Cache失效读操作在得到其所有结果后也被置为READY状态。Cache失效读操作在进入第一队列20时先被置为WAIT_BUF状态,并在访存顺序维护部件4中登记,当它从访存顺序维护部件4中选出进入访存失效队列之后,其在第一队列20中的状态置为WAIT_RESULT状态。处于WAIT_BUF或WAIT_RESULT状态的Cache失效读操作,只要侦听内存总线(mem_res)总线得到所有余下所需数值后,其状态置为READY状态。当操作被写回,或者任何处于非BLANK状态的操作被撤销时,它们的状态都将被置为BLANK。
本实施例中,所述第二类型的访存操作为对于Cache空间的写访问及对于非Cache空间的读访问与写访问。所述静态调度访存部件3同样以队列的方式处理访存操作,所述静态调度访存部件3中的队列为第二队列30,所述第二队列(30)中存放所述第二类型的访存操作。第二队列30为一有序队列,新的操作进入时,只能进入队列尾的空项,只有队列头的指令才能真正执行,产生执行效果后写回。为维护该第二队列30的有序性,本实施例中以头指针和尾指针两个指针完成该第二队列30的操作,其中,所述头指针采用寄存器存放,初始为第0项,每从队列头写回一条操作,指针后移一项。所述尾指针根据头指针和第二队列30中各项状态计算得出,具体来说,从第二队列30的队列头的前一项开始,沿第二队列30的反向顺序,所找到连续空项序列中的最后一个空项。
如图1所示,本实施例中所述第二队列30共有4项,每项包括:状态域、操作码域、队列号域、物理地址域、数值域和字节写使能域,具体描述如下:
状态域(STATE):记录该项的状态,共计六种:BLANK表示这一项没有操作;HIT表示这一项有一条Cache写操作当前它的操作对象在Cache中;MISS表示这一项有一条Cache写操作当前它的操作对象不在Cache中;WAIT_MEM表示非Cache操作等待处理器接口部件接受其请求;WAIT_RESULT表示非Cache读操作等待结果返回;READY表示非Cache读操作结果已经返回,可以写回;
操作码域(OP):记录该项操作的操作码;
队列号域(QID):该项操作的在重定序队列中的队列号;
物理地址域(ADDR):该项操作的物理地址;
数值域(VALUE):对于读操作来说,存放操作的结果,对于写操作,存放待写入的数据;
字节写使能域(BEN):写操作需要写入的字节的使能。
第二队列30中的所有项在处理器复位或例外提交后,所有的项均置为BLANK状态,所有处于非BLANK状态的项,当其被撤销时,也转为BLANK状态。一条Cache写操作从上一级流水线进入第二队列30的时候,根据其在Cache中是否命中将其置为HIT或MISS状态。非Cache读操作或写操作进入第二队列30时,其状态均置为WAIT_MEM。所有类型的操作必须位于第二队列30的队列头方可进行下一步操作。处于HIT状态的Cache命中写操作将待写入数据写入Cache后,从结果总线写回,状态置为BLANK;处于MISS状态的Cache不命中写操作将其记录至访存失效队列后,从结果总线写回,状态置为BLANK;非Cache写操作将其待写数据访问请求发送至处理器接口后,状态置为BLANK;非Cache读操作将其读访问请求发送至处理器接口后,状态置为WAIT_RESULT等待结果返回,当结果从处理器接口返回后,该操作写回结果总线,状态置为BLANK。
访存失效管理部件4亦采用队列(以下“第三队列40”)记录Cache失效操作,该第三队列40并无任何序要求,当Cache失效访问请求需要一个新项时,从上一次写入的那一项开始循环找到第一个空闲项即可。为此本实施例中采用一个写入指针记录第一个可写入的空闲项,用寄存器实现。当从第三队列40中挑选出一项送至处理器接口进行外部存储访问时,也利用该指针,从其所指项开始找到第一个满足访存条件的项。
如图1所示,本实施例中所述第三队列40共有5项,每项包括:状态域、失效地址域、字节使能域、数据域及返回字节数域,具体描述如下:
状态域(STATE):记录访存失效队列中各项状态,共有六个状态:BLANK表示这一项为空;VALID表示这一项已记录了失效操作;MEM_READ表示这一项已经发起了访存读请求;ALL_BACK表示这一项所需的整个Cache块都已经返回;REPLACE表示这一项操作准备发起Cache替换操作;REFILL表示这一项发起Cache填充操作;
失效地址域(ADDR):这一项记录的失效访问所对应的Cache块物理地址;
字节使能域(BEN):字节使能,为1表示对应字节的数据已经为最新有效数据;
数据域(DATA):该项记录的数据,对应一个Cache块;
返回字节数域(COUNT):记录从内存中已经读回的字数。
第三队列40中所有项在处理器复位之后,均置为BLANK状态;当某个失效访问请求申请了一个新项,该项由BLANK状态转为VALID状态;当处理器接口模块能够接受新的访存请求时,会从访存失效队列中挑选一项进行内存读操作,这项的状态随后被置为MEM_READ;当访存失效队列的一项开始访问内存以后,等到它所有的数据返回,其状态置为ALL_BACK;当某项处于ALL_BACK状态且处理器接口模块能够接受新的访存请求时,这一项的状态置为REPLACE;置为REPLACE状态的那一项将根据随机替换算法决定从Cache中替换出一路,随后将状态置为REFILL;将数据填充之前,处于REFILL状态的那一项在Cache替换出来的那一路上。
实施例二
基于动静态混合调度策略的访存操作管理方法,其特征在于包括以下步骤:
动态调度访存步骤,用于接收第一类型的访存操作,并以动态调度策略管理第一类型的访存操作;
静态调度访存步骤,用于接收第二类型的访存操作,并以静态调度策略管理第二类型的访存操作;
访存失效管理步骤,用于管理Cache失效访存操作;
访存顺序维护步骤,用于记录并维护所述第一类型的访存操作、第二访存类型的操作和Cache失效访存操作的顺序关系。
进一步地,所述动态调度访存步骤中,以队列的方式处理访存操作。
本实施例中,所述第一类型的访存操作为Cache读访问,所述Cache读访问包括Cache读失效访问和cache读命中访问。所述动态调度访存步骤中的队列为第一队列10,所述第一队列10中管理的第一类型的访存操作。
进一步地,所述动态调度访存步骤中,Cache读操作进入所述第一队列10时,从上次写入的那一项之后开始按正向顺序循环找到第一个空项写入;从该第一队列10挑选出一项已完成的操作并写回到结果总线上时,从上次写回的那一项之后开始按正向顺序循环找到第一条已完成的操作时写回。
进一步地,所述第一队列20中包括写入指针和写回指针,所述写入指针和写回指针分别指向最近一次新写入的那一项和最近一次写回的那一项,在处理器复位或例外提交后,所述写入指针和写回指针均指向该第一队列10的最后一项。
进一步地,所述第一队列20中的每一项包括:状态域、操作码域、队列号域、物理地址域、结果域和字节准备好域,具体为:
所述状态域,用于记录该项的状态,共有四种:BLANK表示这一项为空,没有操作;READY表示这一项的操作和执行完毕可以返回结果;WAIT_BUF表示这一项的为一条Cache写失效操作等待进入访存失效队列;WAIT_RESULT表示这一项的Cache写失效操已经进入访存失效队列,在等待结果的返回;
操作码域,记录该项操作的操作码;
队列号域,该项操作在重定序队列中的队列号;
物理地址域,记录该项操作的物理地址;
结果域,记录操作的结果;
字节准备好域,记录操作中哪些字节已经得到;
第一队列20在处理器复位或例外提交后,所有项均置为BLANK状态;Cache命中的读操作在进入第一队列20时置为READY状态,并且Cache失效读操作在得到其所有结果后也被置为READY状态;处于READY状态的操作将不再产生任何动作直到其被写回;所有操作必须处于READY状态才能被写回;Cache失效读操作在进入第一队列20时先被置为WAIT_BUF状态,并在所述访存顺序维护步骤中登记,当它从访存顺序维护步骤中选出进入访存失效队列之后,其在第一队列20中的状态置为WAIT_RESULT状态;处于WAIT_BUF或WAIT_RESULT状态的Cache失效读操作,只要侦听内存总线得到所有余下所需数值后,其状态置为READY状态;当操作被写回,或者任何处于非BLANK状态的操作被撤销时,其状态均将被置为BLANK状态。
进一步地,所述静态调度访存步骤中以队列的方式处理访存操作。
本实施例中,所述第二类型的访存操作为对于Cache空间的写访问以及对于非Cache空间的读访问与写访问。所述动态调度访存步骤中的队列为第二队列30,所述第二队列30中管理的第二类型的访存操作。
进一步地,所述第二队列30为一有序队列,新的操作进入时,进入队列尾的空项,执行的项为位于队列头的项,并且在产生执行效果后写回。
进一步地,所述第二队列30采用头指针和尾指针完成操作,所述头指针采用寄存器存放,初始为第0项,每从队列头写回一条操作,指针后移一项;所述尾指针根据头指针和第二队列30中各项状态计算得出。
进一步地,所述第二队列30中的每一项包括:状态域、操作码域、队列号域、物理地址域、数值域和字节写使能域,具体为:
状态域:记录该项的状态,共计六种:BLANK表示这一项没有操作;HIT表示这一项有一条C ache写操作当前它的操作对象在Cache中;MISS表示这一项有一条Cache写操作当前它的操作对象不在Cache中;WAIT_MEM表示非Cache操作等待处理器接口部件接受其请求;WAIT_RESULT表示非Cache读操作等待结果返回;READY表示非Cache读操作结果已经返回,可以写回;
操作码域:记录该项操作的操作码;
队列号域:该项操作的在重定序队列中的队列号;
物理地址域:该项操作的物理地址;
数值域:对于读操作来说,存放操作的结果,对于写操作,存放待写入的数据;
字节写使能域:写操作需要写入的字节的使能。
第二队列30中的所有项在处理器复位或例外提交后,所有的项均置为BLANK状态,所有处于非BLANK状态的项,当其被撤销时,也转为BLANK状态;一条Cache写操作从上一级流水线进入第二队列30时,根据其在Cache中是否命中将其置为HIT或MISS状态;非Cache读操作或写操作进入第二队列30时,其状态均置为WAIT_MEM;只有位于所述第二队列30的队列头的操作才能进行下一步操作;处于HIT状态的Cache命中写操作将待写入数据写入Cache后,从结果总线写回,其状态置为BLANK;处于MISS状态的Cache不命中写操作将其记录至访存失效队列后,从结果总线写回,其状态置为BLANK;非Cache写操作将其待写数据访问请求发送至处理器接口后,其状态置为BLANK;非Cache读操作将其读访问请求发送至处理器接口后,其状态置为WAIT_RESULT,等待结果返回,当结果从处理器接口返回后,该操作写回结果总线,其状态置为BLANK。
进一步地,访存失效管理步骤中以队列的方式处理访存操作。
进一步地,所述访存失效管理步骤中的队列为第三队列40,所述第三队列40存放有Cache失效操作。
进一步地,所述第三队列40中,当Cache失效访问请求需要一个新项时,分配从上一次写入的那一项开始循环找到第一个空闲项,从第三队列40中挑选出第一个满足访存条件的项送至处理器接口进行外部存储访问。
进一步地,所述第三队列40中的每一项包括:状态域、失效地址域、字节使能域、数据域及返回字节数域。
状态域:记录访存失效队列中各项状态,共有六个状态:BLANK表示这一项为空;VALID表示这一项已记录了失效操作;MEM_READ表示这一项已经发起了访存读请求;ALL_BACK表示这一项所需的整个Cache块都已经返回;REPLACE表示这一项操作准备发起Cache替换操作;REFILL表示这一项发起Cache填充操作;
失效地址域:这一项记录的失效访问所对应的Cache块物理地址;
字节使能域:字节使能,表示对应字节的数据已经为最新有效数据;
数据域:该项记录的数据,对应一个Cache块;
返回字节数域:记录从内存中已经读回的字数;
所述第三队列40中所有项在处理器复位之后,均置为BLANK状态;当某个失效访问请求申请了一个新项,该项由BLANK状态转为VALID状态;当处理器接口模块能够接受新的访存请求时,从访存失效队列中挑选一项进行内存读操作,这项的状态被置为MEM_READ;当访存失效队列的一项开始访问内存以后,等到它所有的数据返回,其状态置为ALL_BACK;当某项处于ALL_BACK状态且处理器接口模块能够接受新的访存请求时,这一项的状态置为REPLACE;置为REPLACE状态的项根据随机替换算法决定从Cache中替换出一路,随后将状态置为REFILL;将数据填充之前,处于REFILL状态的那一项在Cache替换出来的那一路上。
进一步地,当动态调度步骤和静态调度步骤同时选择出各自队列待写回的操作时,动态调度队列的操作优先写回。
以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够了解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡依本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。
Claims (16)
1.一种基于动静态混合调度策略的访存操作管理装置,其特征在于包括:
访存类型判定部件(1),用于将访存操作区分为第一类型或第二类型;
动态调度访存部件(2),与所述访存类型判定部件(1)相连接,用于接收第一类型的访存操作,并以动态调度策略管理第一类型的访存操作;
静态调度访存部件(3),与所述访存类型判定部件(1)相连接,用于接收第二类型的访存操作,并以静态调度策略管理第二类型的访存操作;
访存失效管理部件(4),用于管理Cache失效访存操作;
访存顺序维护部件(5),与所述动态调度访存部件(2)、静态调度访存部件(3)和访存失效管理部件(4)相连接,用于记录并维护所述第一类型的访存操作、第二类型的访存操作和Cache失效访存操作的顺序关系。
2.根据权利要求1所述的基于动静态混合调度策略的访存操作管理装置,其特征在于:
所述第一类型的访存操作为Cache读访问,所述Cache读访问包括Cache读失效访问和Cache读命中访问。
3.根据权利要求2所述的基于动静态混合调度策略的访存操作管理装置,其特征在于:
所述动态调度访存部件(2)以队列的方式处理访存操作的部件,所述动态调度访存部件(2)中的队列为第一队列(20),所述第一队列(20)中存放所述第一类型的访存操作;所述第一队列(20)中的每一项包括:状态域、操作码域、队列号域、物理地址域、结果域和字节准备好域。
4.根据权利要求1或2或3所述的基于动静态混合调度策略的访存操作管理装置,其特征在于:
所述第二类型的访存操作为对于Cache空间的写访问及对于非Cache空间的读访问与写访问。
5.根据权利要求4所述的基于动静态混合调度策略的访存操作管理装置,其特征在于:
所述静态调度访存部件(3)以队列的方式处理访存操作的部件;所述静态调度访存部件(3)中的队列为第二队列(30),所述第二队列(30)中存放所述第二类型的访存操作,所述第二队列(30)中的每一项包括:状态域、操作码域、队列号域、物理地址域、数值域和字节写使能域。
6.根据权利要求5所述的基于动静态混合调度策略的访存操作管理装置,其特征在于:
所述访存失效管理部件(4)以队列的方式处理访存操作的部件,所述访存失效管理部件(4)中的队列为第三队列(40),所述第三队列(40)存放有Cache失效操作,所述第三队列(40)中的每一项包括:状态域、失效地址域、字节使能域、数据域及返回字节数域。
7.一种基于动静态混合调度策略的访存操作管理方法,其特征在于包括以下步骤:
访存类型判定步骤,用于将访存操作区分为第一类型或第二类型;
动态调度访存步骤,用于接收第一类型的访存操作,并以动态调度策略管理第一类型的访存操作;
静态调度访存步骤,用于接收第二类型的访存操作,并以静态调度策略管理第二类型的访存操作;
访存失效管理步骤,用于管理Cache失效访存操作;
访存顺序维护步骤,用于记录并维护所述第一类型的访存操作、第二类型的访存操作和Cache失效访存操作的顺序关系。
8.根据权利要求7所述的基于动静态混合调度策略的访存操作管理方法,其特征在于:
所述第一类型的访存操作为Cache读访问,所述Cache读访问包括Cache读失效访问和Cache读命中访问。
9.根据权利要求8所述的基于动静态混合调度策略的访存操作管理方法,其特征在于:
所述动态调度访存步骤中,以队列的方式处理访存操作,所述动态调度访存步骤中的队列为第一队列(20),所述第一队列(20)中存放所述第一类型的访存操作。
10.根据权利要求9所述的基于动静态混合调度策略的访存操作管理方法,其特征在于:
所述第一队列(20)中的每一项包括:状态域、操作码域、队列号域、物理地址域、结果域和字节准备好域,具体为:
所述状态域,用于记录该项的状态,共有四种:BLANK表示这一项为空,没有操作;READY表示这一项的操作和执行完毕可以返回结果;WAIT_BUF表示这一项的为一条Cache写失效操作等待进入访存失效队列;WAIT_RESULT表示这一项的Cache写失效操作已经进入访存失效队列,在等待结果的返回;
操作码域,记录该项操作的操作码;
队列号域,该项操作在重定序队列中的队列号;
物理地址域,记录该项操作的物理地址;
结果域,记录操作的结果;
字节准备好域,记录操作中哪些字节已经得到;
第一队列(20)在处理器复位或例外提交后,所有项均置为BLANK状态;Cache命中的读操作在进入第一队列(20)时置为READY状态,并且Cache失效读操作在得到其所有结果后也被置为READY状态;处于READY状态的操作将不再产生任何动作直到其被写回;所有操作必须处于READY状态才能被写回;Cache失效读操作在进入第一队列(20)时先被置为WAIT_BUF状态,并在所述访存顺序维护步骤中登记,当它从访存顺序维护步骤中选出进入访存失效队列之后,其在第一队列(20)中的状态置为WAIT_RESULT状态;处于WAIT_BUF或WAIT_RESULT状态的Cache失效读操作,只要侦听内存总线得到所有余下所需数值后,其状态置为READY状态;当操作被写回,或者任何处于非BLANK状态的操作被撤销时,其状态均将被置为BLANK状态。
11.根据权利要求7至9中任一权利要求所述的基于动静态混合调度策略的访存操作管理方法,其特征在于:
所述第二类型的访存操作为对于Cache空间的写访问及对于非Cache空间的读访问与写访问。
12.根据权利要求11所述的基于动静态混合调度策略的访存操作管理方法,其特征在于:
所述静态调度访存步骤中以队列的方式处理访存操作;
所述静态调度访存部件(3)中的队列为第二队列(30),所述第二队列(30)中存放所述第二类型的访存操作。
13.根据权利要求12所述的基于动静态混合调度策略的访存操作管理方法,其特征在于:
所述第二队列(30)中的每一项包括:状态域、操作码域、队列号域、物理地址域、数值域和字节写使能域,具体为:
状态域:记录该项的状态,共计六种:BLANK表示这一项没有操作;HIT表示这一项有一条C ache写操作当前它的操作对象在Cache中;MISS表示这一项有一条Cache写操作当前它的操作对象不在Cache中;WAIT_MEM表示非Cache操作等待处理器接口部件接受其请求;WAIT_RESULT表示非Cache读操作等待结果返回;READY表示非Cache读操作结果已经返回,可以写回;
操作码域:记录该项操作的操作码;
队列号域:该项操作的在重定序队列中的队列号;
物理地址域:该项操作的物理地址;
数值域:对于读操作来说,存放操作的结果,对于写操作,存放待写入的数据;
字节写使能域:写操作需要写入的字节的使能;
第二队列(30)中的所有项在处理器复位或例外提交后,所有的项均置为BLANK状态,所有处于非BLANK状态的项,当其被撤销时,也转为BLANK状态;一条Cache写操作进入第二队列(30)时,根据其在Cache中是否命中将其置为HIT或MISS状态;非Cache读操作或写操作进入第二队列(30)时,其状态均置为WAIT_MEM;只有位于所述第二队列(30)的队列头的操作才能进行下一步操作;处于HIT状态的Cache命中写操作将待写入数据写入Cache后,从结果总线写回,其状态置为BLANK;处于MISS状态的Cache不命中写操作将其记录至访存失效队列后,从结果总线写回,其状态置为BLANK;非Cache写操作将其待写数据访问请求发送至处理器接口后,其状态置为BLANK;非Cache读操作将其读访问请求发送至处理器接口后,其状态置为WAIT_RESULT,等待结果返回,当结果从处理器接口返回后,该操作写回结果总线,其状态置为BLANK。
14.根据权利要求12或13所述的基于动静态混合调度策略的访存操作管理方法,其特征在于:
访存失效管理步骤中以队列的方式处理访存操作,所述访存失效管理步骤中的队列为第三队列(40),所述第三队列(40)存放有Cache失效操作。
15.根据权利要求14所述的基于动静态混合调度策略的访存操作管理方法,其特征在于:
所述第三队列(40)中的每一项包括:状态域、失效地址域、字节使能域、数据域及返回字节数域,具体为:
状态域:记录访存失效队列中各项状态,共有六个状态:BLANK表示这一项为空;VALID表示这一项已记录了失效操作;MEM_READ表示这一项已经发起了访存读请求;ALL_BACK表示这一项所需的整个Cache块都已经返回;REPLACE表示这一项操作准备发起Cache替换操作;REFILL表示这一项发起Cache填充操作;
失效地址域:这一项记录的失效访问所对应的Cache块物理地址;
字节使能域:字节使能,表示对应字节的数据已经为最新有效数据;
数据域:该项记录的数据,对应一个Cache块;
返回字节数域:记录从内存中已经读回的字数;
所述第三队列(40)中所有项在处理器复位之后,均置为BLANK状态;当某个失效访问请求申请了一个新项,该项由BLANK状态转为VALID状态;当处理器接口模块能够接受新的访存请求时,从访存失效队列中挑选一项进行内存读操作,这项的状态被置为MEM_READ;当访存失效队列的一项开始访问内存以后,等到它所有的数据返回,其状态置为ALL_BACK;当某项处于ALL_BACK状态且处理器接口模块能够接受新的访存请求时,这一项的状态置为REPLACE;置为REPLACE状态的项根据随机替换算法决定从Cache中替换出一路,随后将状态置为REFILL;将数据填充之前,处于REFILL状态的那一项在Cache替换出来的那一路上。
16.根据权利要求15所述的基于动静态混合调度策略的访存操作管理方法,其特征在于:
当所述动态调度步骤和静态调度步骤同时选择出各自队列待写回的操作时,动态调度队列的操作优先写回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010100344631A CN101777027B (zh) | 2010-01-21 | 2010-01-21 | 基于动静态混合调度策略的访存操作管理装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010100344631A CN101777027B (zh) | 2010-01-21 | 2010-01-21 | 基于动静态混合调度策略的访存操作管理装置及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101777027A CN101777027A (zh) | 2010-07-14 |
CN101777027B true CN101777027B (zh) | 2012-06-06 |
Family
ID=42513495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010100344631A Active CN101777027B (zh) | 2010-01-21 | 2010-01-21 | 基于动静态混合调度策略的访存操作管理装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101777027B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102028729B1 (ko) * | 2013-03-11 | 2019-11-04 | 삼성전자주식회사 | 정적 스케쥴 프로세서의 논블로킹 실행 장치 및 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571325B1 (en) * | 1999-09-23 | 2003-05-27 | Rambus Inc. | Pipelined memory controller and method of controlling access to memory devices in a memory system |
US6571323B2 (en) * | 1999-03-05 | 2003-05-27 | Via Technologies, Inc. | Memory-access management method and system for synchronous dynamic Random-Access memory or the like |
CN101241475A (zh) * | 2006-12-22 | 2008-08-13 | 英特尔公司 | 从动态随机存取存储器到静态随机存取存储器的预取 |
-
2010
- 2010-01-21 CN CN2010100344631A patent/CN101777027B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571323B2 (en) * | 1999-03-05 | 2003-05-27 | Via Technologies, Inc. | Memory-access management method and system for synchronous dynamic Random-Access memory or the like |
US6571325B1 (en) * | 1999-09-23 | 2003-05-27 | Rambus Inc. | Pipelined memory controller and method of controlling access to memory devices in a memory system |
CN101241475A (zh) * | 2006-12-22 | 2008-08-13 | 英特尔公司 | 从动态随机存取存储器到静态随机存取存储器的预取 |
Also Published As
Publication number | Publication date |
---|---|
CN101777027A (zh) | 2010-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180246718A1 (en) | A system and method for multi-issue processors | |
CN108475194A (zh) | 在片上网络架构中的寄存器通信 | |
CN104765575B (zh) | 信息存储处理方法 | |
US20100191918A1 (en) | Cache Controller Device, Interfacing Method and Programming Method Using the Same | |
CN101751246A (zh) | 预取数据的系统和方法 | |
US8583873B2 (en) | Multiport data cache apparatus and method of controlling the same | |
CN102216914A (zh) | 螺旋高速缓存电源管理、自适应大小调整和接口操作 | |
CN105378685B (zh) | 数据存储装置和用于给数据存储装置分配数据的方法 | |
CN101918925B (zh) | 用于处理器的高关联性高速缓存的第二次机会取代机制 | |
CN102841865A (zh) | 高性能缓存系统和方法 | |
EP2530598B1 (en) | Data supply device, cache device, data supply method, and cache method | |
US10019283B2 (en) | Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread | |
CN102063406A (zh) | 用于多核处理器的网络共享Cache及其目录控制方法 | |
US9990299B2 (en) | Cache system and method | |
CN107038125A (zh) | 具有加速预取请求的独立流水线的处理器高速缓存 | |
CN101751245B (zh) | 基于访存历史学习的处理器Cache写失效处理方法 | |
CN111736900B (zh) | 一种并行双通道的cache设计方法和装置 | |
US10275392B2 (en) | Data processing device | |
CN104182281B (zh) | 一种gpgpu寄存器缓存的实现方法 | |
CN101777027B (zh) | 基于动静态混合调度策略的访存操作管理装置及其方法 | |
JP4448550B2 (ja) | キャッシュシステム | |
TWI636362B (zh) | 高性能快取方法和裝置 | |
CN107506139A (zh) | 一种面向相变存储器的写请求优化装置 | |
CN111124297A (zh) | 一种堆叠dram缓存的性能提升方法 | |
CN100428200C (zh) | 一种片上指令cache的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Patentee after: Loongson Zhongke Technology Co.,Ltd. Address before: 100080 No. 10 South Road, Haidian District Academy of Sciences, Beijing Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd. |