首页> 中国专利> 用于缺失情况下的缓存命中冲突处理的方法和系统

用于缺失情况下的缓存命中冲突处理的方法和系统

摘要

本发明的实施例提供了用于在处理命令队列中的命令的同时保持命令的顺序的方法和系统。命令可以在CPU处的输入命令队列中被排队。在用于命令的地址转换期间,后续命令可以被处理以提高效率。处理过的命令可以被放置在输出队列中并被按顺序发送到CPU。如果没找到用于命令的地址转换条目,那么可以从存储器获取转换条目。用于依赖于得到缺失的命令的后续命令的地址转换可以被保留,直到从存储器取得地址转换条目。因此,避免了用于后续命令的地址的重新转换。

著录项

  • 公开/公告号CN101013403A

    专利类型发明专利

  • 公开/公告日2007-08-08

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200710006903.0

  • 申请日2007-01-30

  • 分类号G06F12/10(20060101);

  • 代理机构11247 北京市中咨律师事务所;

  • 代理人于静;张亚非

  • 地址 美国纽约

  • 入库时间 2023-12-17 18:54:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-04-20

    未缴年费专利权终止 IPC(主分类):G06F12/10 授权公告日:20090603 终止日期:20100130 申请日:20070130

    专利权的终止

  • 2009-06-03

    授权

    授权

  • 2007-10-03

    实质审查的生效

    实质审查的生效

  • 2007-08-08

    公开

    公开

说明书

技术领域

本发明大体涉及处理命令队列中的命令。更具体地,本发明涉及处理在未解决的地址转换缓存缺失(cache miss)情况下得到地址转换缓存命中的命令。

背景技术

计算系统通常包括一个或多个可通信地连接到存储器和输入/输出(IO)设备的中央处理单元(CPU)。该存储器可以是随机存取存储器(RAM),其包含一个或多个程序以及对于计算机所执行的计算来说是必要的数据。例如,该存储器可包含用于对数据进行加密的程序以及将被加密的数据。所述IO设备可包括显卡、声卡、图形处理单元等,它们被配置为发出命令以及从CPU接收响应。

CPU可以解释并执行从所述存储器或IO设备接收的一个或多个命令。例如,该系统可接收将两个数字相加的请求。CPU可以执行包括将两个数字相加的逻辑的程序(在存储器中)的一系列命令。CPU也可以从输入将被相加的这两个数字的输入设备接收用户输入。在计算的最后,CPU可在输出设备比如显示屏上显示结果。

由于在处理前一个命令后从设备发送下一个命令需要很长时间,在这段时间中CPU可能不得不保持空闲,来自设备的多个命令可被排队在CPU处的命令队列中。因此,该CPU在处理了前一个命令之后能够快速访问下一个命令。由于命令之间的依赖性,该CPU可被要求以给定的顺序执行命令。因此,命令可以被放置在队列中并以先进先出(FIFO)的顺序被执行以确保依赖的命令以正确的顺序被执行。例如,如果在存储器位置的读操作在到该存储器位置的写操作之后,那么写操作必需被首先执行以确保在读操作期间读出正确的数据。因此从同一个IO设备发出的命令可以以它们被接收的顺序由CPU处理,而来自不同设备的命令可以不按顺序处理。

由CPU接收的命令可以被粗略地分类为(a)需要地址转换的命令和(b)没有地址的命令。没有地址的命令可包括中断和同步指令,比如PowerPC eieio(强制输入/输出的顺序执行)指令。中断命令可以是从设备到CPU的、请求CPU将其正在做的事放在一边而去做其它某事的命令。可以发出eieio操作来阻止后续命令被处理直到该eieio前面的命令已经被处理了为止。因为没有地址与这些命令相关联,所以它们不需要地址转换。

需要地址转换的命令包括读命令和写命令。读命令可包括将被读的数据的位置的地址。类似的,写命令可包括数据将被写的位置的地址。因为提供在该命令中的地址可能是虚拟地址,所以在执行读或写之前,地址可能需要转换到存储器中的实际物理位置。

地址转换可能需要查找段表和页表以将虚拟地址和物理地址相匹配。对于最近作为目标的地址,页表和段表条目可被保留在缓存中以便快速和高效地访问。然而,即使有通过缓存的快速和高效访问,在地址转换期间随后的命令可能在流水线中被停顿(stall)。对这个问题的一种解决方案是在地址转换期间处理命令队列中的后续命令。然而,对于来自于同一个IO设备的命令,命令顺序必需被保持。

如果在转换期间在缓存中没有找到将虚拟地址转换成物理地址的表条目,那么该条目可能不得不从存储器中读取。当存在转换缓存缺失时读取条目可能导致很大的等待时间。当对于命令发生转换缓存缺失时,用于后续命令的地址转换可以仍旧继续。然而,系统只能允许一次转换缓存缺失。因此,当处理转换缓存缺失时,只有那些具有转换缓存命中(缺失情况下的命中)的后续命令或不需要地址转换的命令可以被处理。

该解决方案的一个问题是在未解决的地址转换缓存缺失情况下得到缓存命中的命令可能依赖于得到未解决地址转换缓存缺失的命令。例如,依赖命令可能由相同设备发出,并在相同的虚拟通道中,因而需要按顺序执行命令。由于依赖性,在获取了用于得到缺失的命令的转换结果后,后续依赖命令可能被再次处理。因此,依赖后续命令的地址可能需要在未解决的缺失被处理之后被重新转换。

对此问题的一个解决方案是一次仅处理一个命令。然而,如上所述,这可能引起严重的性能下降,因为在地址转换期间,命令可能在流水线中被停顿。另一个解决方案可以是在从存储器中获取了用于得到缺失的命令的地址转换条目之后,重新发出后续依赖命令以便转换。然而,这种解决方案由于多余的地址转换而是低效的。再一种解决方案可以是包括转换缓存的软件预加载,其中该软件确保没有缺失。然而,这种解决方案带来了不希望的软件开销。

因此,所需要的是用于高效地处理在缺失情况下得到命中的命令的系统和方法。

发明内容

本发明大体提供了用于处理命令队列中的命令的方法和系统。

本发明的一个实施例提供了一种处理命令队列中的命令的方法,该命令队列中存储了从一个或多个输入/输出设备接收的命令的序列。该方法大体包括发送命令队列中第一命令的目标地址到地址转换逻辑以进行转换,并且响应于确定转换逻辑的地址转换表中不存在包含命令队列中第一个命令的目标地址的虚拟到实际的转换的地址转换条目,发起从存储器获取该地址转换条目。该方法进一步包括在获取用于该第一命令的条目的同时处理在该第一命令之后接收的一个或多个命令,其中该处理包括发送命令队列中第二命令的目标地址到地址转换逻辑以进行转换。改方法进一步包括,响应于确定在第一命令之后接收的一个或多个命令是由发送第一命令的同一个设备发送的,保留该一个或多个命令和第二命令的地址转换直到用于第一命令的地址转换完成。

本发明的另一个实施例提供了一种用于处理命令队列中的命令的系统,其大体包括一个或多个输入/输出设备和处理器。该处理器大体包括(i)命令队列,其被配置为存储从一个或多个输入/输出设备接收的命令序列,(ii)输入控制器,其被配置为以流水线的方式处理来自命令队列的命令,(iii)地址转换逻辑,其被配置为使用包含有虚拟到实际地址转换的条目的地址转换表来转换由输入控制器处理的命令的目标地址,以及(iv)控制逻辑,其被配置为响应于确定第二命令是由发送第一命令的同一设备发送的,用于该第一命令的地址转换条目在缓存中没有找到,那么保留用于第二命令的地址转换直到用于第一命令的地址转换条目被获取。

本发明的另一实施例提供了一种用于处理命令队列中的命令的微处理器。该微处理器大体包括(i)命令队列,其被配置为存储从输入/输出设备接收的命令序列,(ii)输入控制器,其被配置为以流水线的方式处理命令队列中的命令,(iii)地址转换逻辑,其被配置为利用被缓存的地址转换表中的地址转换条目将虚拟地址转换为物理地址,并且如果对于某个命令,在缓存中没有找到地址转换条目,那么从存储器获取相应的地址转换条目,以及(iv)输出控制器,其被配置为响应于确定第二命令是由发送第一命令的同一设备发送的,用于第一命令的地址转换条目在缓存中没有找到,那么保留用于第二命令的地址转换直到用于第一命令的地址转换条目被获取。

附图说明

为了能够详细理解实现本发明的上述特征、优点和目标的方式,可通过参考附图中图示的本发明的实施例而获得对上面简要概括的本发明的更具体的描述。

然而应注意到,附图中仅仅图示了本发明的典型实施例,并且因此不应认为是对本发明范围的限制,因为本发明可以容许其他同样有效的实施例。

图1是根据本发明一实施例的示例性系统的图示。

图2是根据本发明一实施例的命令处理器的图示。

图3是由转换接口输入控制所执行的用来处理输入命令FIFO中的命令的示例性操作的流程图。

图4是由转换逻辑所执行的用来将虚拟地址转换成物理地址的示例性操作的流程图。

图5是由转换接口输出控制所执行的用来处理缺失情况下的命中的示例性操作的流程图。

图6是由转换接口输出控制所执行的用来处理多转换缓存缺失的示例性操作的流程图。

图7是在重新处理缺失情况下引起缺失的命令之前所执行的用来清空(flush)流水线的示例性操作的流程图。

具体实施方式

本发明实施例提供了用于在处理命令队列中的命令的同时保持命令顺序的方法和系统。命令可以在CPU处的输入命令队列中被排队。在用于命令的地址转换过程中,后续命令可以被处理以提高效率。处理过的命令可以被放置在输出队列中并按顺序发送到CPU。如果没找到用于命令的地址转换条目,那么可以从存储器获取转换条目。对于依赖于得到缺失的命令的后续命令的地址转换可以被保留直到该地址转换条目被从存储器中获取。因此,避免了用于后续命令的地址的重新转换。

以下,参考本发明的实施利。然而,应当理解本发明并不局限于描述的特定实施例。相反,以下无论是否涉及不同的实施例的特征和要素的任何组合被认为实施和实践本发明。此外,在不同实施例中,本发明提供了相对于现有技术的许多优点。然而,尽管本发明的实施例可以实现相对于其它可能解决方案和/或现有技术的优点,但是特定的优点是否由给定的实施例实现并不限制本发明。因此,以下的方面、特征、实施例和优点仅仅是示意性的并且并不被认为是所附权利要求的要素或限制,除非在权利要求中明确说明。同样,对于“本发明”的提及不应被解释为在此描述的任何发明主题的概括,并且不应被认为是所附权利要求的要素或限定,除非权利要求中明确说明。

示例性系统

图1图示了可以在其中实现本发明实施例的示例性系统100。系统100可以包括中央处理单元(CPU)110,其可通信地连接到输入/输出(I/O)设备120和存储器140。例如,CPU 110可以通过总线从IO桥120连接到IO设备130和存储器140。IO设备130可以被配置为提供对CPU 110的输入,例如通过所图示的命令131。示例性IO设备包括图形处理单元、显卡、声卡、动态随即存取存储器(DRAM)等等。

IO设备130还可被配置为从CPU 110接收响应132。响应132例如可包括CPU计算的可以被显示给用户的结果。响应132还可以包括在存储器设备例如上面描述的DRAM设备上执行的写操作。尽管图1中示出了一个IO设备120,但是本领域技术人员应该知道任何数量的IO设备130都可以在同一个或多个总线上被连接到CPU。

存储器140优选的是比如动态随机存取存储器(DRAM)的随机存取存储器。存储器140可以足够大来保持一个或多个被CPU处理的程序和/或数据结构。尽管存储器140被示为单个实体,但是应当理解存储器140实际上可包括多个模块,并且存储器140可以存在于从高速缓存到低速但更大的DRAM芯片的多种级别中。

CPU 110可包括命令处理器111、转换逻辑112、嵌入处理器113和缓存114。命令处理器111可从IO设备120接收一个或多个命令131并处理该命令。每个命令131可以被粗略粗略地分类为需要地址转换的命令和没有地址的命令。因此,处理该命令可包括确定该命令是否需要地址转换。如果该命令需要地址转换,那么命令处理器可将该命令分派给转换逻辑112以用于地址转换。在需要转换的那些命令131被转换之后,命令处理器可放置顺序命令133在片上总线(on-chip bus)117上以由存储器控制器118上的嵌入式处理器113进行处理。

转换逻辑112可从命令处理器111接收一个或多个需要地址转换的命令。需要地址转换的命令例如可以包括读和写命令。读命令可以包括将被读取的数据的位置的地址。类似地,写操作可以包括数据将被写入的位置的地址。

包括在需要转换的命令中的地址可以是虚拟地址。虚拟地址可以指向分配给特定程序的虚拟存储器。虚拟存储器可以是指派给该程序的连续存储空间,其映射到存储器140内部的不同的、非连续的、物理存储位置。例如,虚拟存储器地址可以映射到物理存储器和/或辅助存储器中不同的非连续的存储器位置。因此,当使用虚拟存储器地址时,虚拟地址必需被转换为实际物理地址以执行在该位置上的操作。

地址转换可包括查找段表和页表。段表和/或页表可以将虚拟地址与物理地址相匹配。这些预转换表条目可位于主存储器中。用于新近访问的数据的地址转换可被保持在缓存114中的段表116和页表115中以减少用于对先前访问的地址的后续访问的转换时间。如果地址转换在缓存114中被找到,那么转换缓存命中发生并且转换可以从缓存中的页和段表条目被获取。如果地址转换在缓存114中没有找到,那么转换缓存缺失发生并且必要时转换可以从存储器或其它存储设备被带到缓存中。

段表116可指示虚拟地址是否存在于分配给特定程序的存储器段中。段可以是虚拟存储器中的大小可变的块,每个块被指派给特定程序或过程。因此,可以首先访问段表。如果虚拟地址寻址到用于程序的段的边界之外的区域,那么可发生段错误(segmentation fault)。

每个段可以被进一步分割为称为页的固定大小的块。虚拟地址可以寻址包含在段中的一个或多个页。页表115可以映射虚拟地址到存储器中的页。如果页在存储器中没有找到,那么页可以从该所需页可能位于的辅助存储器获取。

命令处理

图2是根据本发明一实施例的命令处理器111的详细视图,该命令处理器可被配置为处理来自IO设备120的命令。命令处理器111可包含输入命令FIFO 201、转换接口输入控制202、转换接口输出控制203和命令队列204。输入命令FIFO 201可以是足够大以保持可由IO设备120发出给CPU的至少预定数量的命令131的缓冲器。命令131可以按照它们被接收的顺序被有顺序地填充在输入命令FIFO 201中。

转换接口输入控制(TIIC)202可以监视和管理输入命令FIFO 201。TIIC可以维护一读指针210和一写指针211。读指针210可以指向用于在输入命令FIFO中处理的下一个可用命令。写指针211可以指示用于在输入命令FIFO中写入新接收的命令的下一个可用位置。当从输入命令FIFO中获取每个命令以便处理时,可递增读指针。类似地,当从IO设备接收每个命令时,也可递增写指针。如果读或写指针到达了输入命令FIFO的末尾,那么指针可以在下一次增加时被重置为指向输入命令FIFO的开始。

TIIC 202可被配置为通过阻止写指针增加到超过读指针来确保输入命令FIFO不会溢出。例如,如果写指针增加并且指向与读指针相同的位置,那么缓冲器可能充满了未处理的命令。如果接收到任何进一步的命令,那么TIIC可发送错误消息来指示命令不能被锁存在CPU中。

TIIC 202还可确定在输入命令FIFO 201中接收的命令是否是需要地址转换的命令。如果接收到了需要地址转换的命令,那么该命令可以被引向转换逻辑112以进行处理。然而,如果该命令不需要地址转换,那么该命令可以被沿着流水线传递下去。

图3是由TIIC执行的用来处理输入命令FIFO中的命令的示例性操作的流程图。TIIC所执行的操作可以是流水线操作。因此,在任何给定的时间多个命令可以被处理。例如,第一命令可由TIIC从输入命令FIFO接收以进行处理。当第一命令被接收时,先前接收的第二命令可由TIIC发送到转换逻辑以进行地址转换。

TIIC中的操作开始于步骤201,从输入命令FIFO接收命令。例如,TIIC可以读取读指针所指向的命令。在该命令被读取后,读指针可以被递增以指向下一个命令。在步骤302,TIIC可确定获取的命令是否需要地址转换。如果确定该命令需要地址转换,那么在步骤303该命令被发送到转换逻辑112以进行地址转换。在步骤304,发送到转换逻辑的命令的输入命令FIFO地址可沿着流水线向下传递。在步骤302,如果确定该命令不需要地址转换,那么在步骤305,该命令和该命令的输入命令FIFO地址沿着流水线向下传递。

回来参考图2,转换逻辑112可处理来自TIIC的地址转换请求。地址转换包括查找段和页表来将虚拟地址转换成存储器140中的实际物理地址。在一些实施例中,转换逻辑可允许到页和段表缓存的流水线访问。如果在地址转换期间遇到了页或段缓存缺失,那么在该缓存缺失被处理的同时,缓存可继续提供用于具有现有条目的那些命令的地址。如果在地址转换期间没有发生缺失,那么转换逻辑可将转换结果提供给转换接口输出控制(TIOC)203,如图2中所示。然而,如果发生了缺失,那么转换逻辑可将引起该缺失的命令通知给TIOC。

如果在地址转换期间没有发生缺失,那么转换逻辑可将转换结果提供给转换接口输出控制(TIOC)203,如图2所示。然而,如果发生了缺失,那么转换逻辑可将引起该缺失的命令通知给TIOC。

图4是转换逻辑所执行的用于地址转换的示例性操作的流程图。如对于TIIC,转换逻辑所执行的操作也可以是流水线的。因此,在任何给定的时间多个命令可被处理。操作可开始于步骤401,从TIIC接收用于命令的地址转换的请求。在步骤402,转换逻辑可访问段和页表缓存来获取相应的条目以将虚拟地址转换为物理地址。在步骤403,如果在缓存中找到了相应的页和段表条目,那么在步骤404可将地址转换结果发送到TIOC。

然而,如果在段和页表缓存中没有找到页和段表条目,那么在步骤405,可将对于该命令地址的转换缺失的通知发送给TIOC。在步骤406,转换逻辑可发起缺失处理过程。例如,缺失处理可包括发送请求到存储器或辅助存储设备来要求对应的页或段表条目。

重要的是应注意到,对于一些实施例,当一未解决缺失正被处理时,转换逻辑可仅处理一个转换缓存缺失。如果发生了第二缺失,那么可将缺失通知发送给TIOC。当未解决的缺失被处理的同时对第二缺失的处理将在下面更详细地讨论。此外,当未解决的缺失正被处理时,需要地址转换的后续命令可继续被处理。因为从存储器或辅助存储器获取页和段表条目可能需要相对长的时间,所以停顿后续命令将导致性能显著下降。因此,在缺失被处理的同时,可处理具有转换缓存命中的后续命令。

在缺失情况下处理命令

回来参考图2,在一些实施例中,TIOC可追踪正被转换逻辑处理的未解决缺失的数量并基于命令之间的依赖性保持命令顺序。例如,TIOC可接收到用于发送到转换逻辑进行地址转换的命令以及不需要地址转换的命令的输入命令FIFO地址(指针)。如果接收到的命令不依赖于已经被处理的或正在被处理的命令,那么将对该命令断言(assert)命令完成信号133。该命令完成信号例如可指示该命令已经被处理并准备好被发送给处理器。

另一方面,如果TIOC接收的命令依赖于可能没有被处理的命令,那么可不对该命令断言命令完成信号。例如,在输入命令FIFO中的第一命令可需要地址转换并且可被传送给转换逻辑进行地址转换。当第一命令被转换的同时,依赖于第一命令的可能不需要地址转换的后续第二命令可比第一命令更快地被传递给TIOC。类似地,当第一命令被转换的同时,依赖于第一命令的第三后续命令可得到转换缓存命中并被传递给TIOC。

每个命令可包括一IO标识符(IOID)和与该命令相关联的虚拟通道号码。该IOID例如可以标识从哪个IO设备接收了该命令。TIOC可通过将得到地址转换命中的命令的IOID和虚拟通道与正从存储器获取用于其地址的转换条目的命令的IOID和虚拟通道相比较,来识别命令之间的依赖性。

如在此使用的,术语虚拟通道一般指承载组件例如IO设备和处理器间的请求和/或响应信息的数据路径。每个虚拟通道典型地利用设备中不同的缓冲器,并且一虚拟通道号码指示在该虚拟通道上传送的包将使用哪个缓冲器。虚拟通道之所以被称作虚拟是因为尽管多条虚拟通道可利用单个共同的物理接口(例如,总线),但是它们呈现和用作分离的通道。

如果遇到了在地址转换缓存中缺失情况下得到命中的依赖命令,那么该命令与转换的地址一同可被TIOC存储在命中冲突FIFO 205中。命中冲突FIFO 205可以是足够大以保持预定数目的命令的缓冲器。TIOC可不对存储在命中冲突FIFO 205中的命令断言命令完成信号,直到待决的地址转换缺失已经被处理。

在获取了对于得到缺失的命令的转换结果之后,TIOC可对得到缺失的该命令断言命令完成信号。也可对命中冲突FIFO中的命令断言该命令完成信号。在发出命中冲突FIFO中的命令时,可以使用存储在命令队列中的先前转换的结果。因此,避免了对命中冲突FIFO中的命令的地址的重新转换。

因为获取用于得到缺失的命令的地址转换条目的等待时间可能很大,所以命中冲突FIFO 205可能充满,从而没有为在地址转换缓存中接收了命中的额外依赖命令留下空间。如果命中冲突FIFO变满,那么命中冲突FIFO充满信号212可被发送给TIIC,如图2所示。响应于接收到命中冲突FIFO充满信号,TIIC可停止处理命令。此外,TIIC可将读指针210重置为指向存储在命中冲突FIFO中最后一个命令后面的命令。因此,流水线中在命中冲突FIFO变满之前被TIIC处理的任何命令可以被再一次发出。

图5是TIOC所执行的处理缺失情况下得到命中的命令的示例性操作的流程图。操作开始于步骤501,从TIIC接收命令。在步骤502,TIOC确定该命令是否具有与在地址转换缓存中得到缺失的命令相同的IOID和虚拟通道号码。如果该命令的IOID和虚拟通道号码与得到缺失的命令的IOID和虚拟通道号码不匹配,那么TIOC可存储该命令在命令队列204中并在步骤503发出用于该命令的命令完成信号。

另一方面,如果该命令的IOID和虚拟通道号码与得到缺失的命令的IOID和虚拟通道号码相匹配,那么TIOC可存储该命令和用于该命令的转换结果在命中冲突FIFO 505中。在步骤504,确定命中冲突FIFO现在是否充满。如果命中冲突FIFO现在充满了,那么在步骤506可将命中冲突FIFO充满信号发送给TIIC。

TIOC还可监视在转换逻辑中发生的缺失的数量以识别缺失情况下的缺失。如上所述,每次在转换逻辑中发生缺失,可将一通知发送给TIOC以标识得到缺失的命令。如果在第一缺失被处理的同时发生了第二缺失,那么TIOC可停顿流水线,直到第一缺失已经被处理。TIOC可停顿流水线,直到对于命令的前一个缺失已经完成,然后可恢复对引起第二缺失的命令的处理。图2示出了从TIOC发送到TIIC的、标识引起第二缺失的命令的停顿流水线信号214。

图6是由TIOC所执行的处理地址转换缺失的示例性操作的流程图。操作开始于步骤601,从转换逻辑接收缺失通知。在步骤602,TIOC确定是否有任何未解决缺失正在被转换逻辑所处理。如果没有未解决的缺失当前正在被转换逻辑处理,那么在步骤611,TIOC记录命令的输入命令FIFO地址。在步骤612,TIOC可允许处理引起缺失的命令后面的命令,以此提高性能。另一方面,如果在步骤602确定一未解决的缺失正在被处理,那么流水线可被停顿。这可以通过在步骤603发送停顿指示和引起第二缺失的命令的输入命令FIFO地址给TIIC来完成。在步骤604,TIOC可忽略在引起第二缺失的命令后面的所有命令。TIOC可以通过这些命令的输入命令FIFO地址来确定这些命令。

响应于从TIOC接收到停顿通知,TIIC可以通过不发出命令来停顿流水线,直到来自TIOC的进一步通知。流水线可被停顿,直到第一缺失已被处理并且TIOC接收到转换结果。TIIC也可以重置读指针以指向输入命令FIFO中引起第二缺失的命令。因此,引起第二缺失的命令和后续命令可以在第一缺失已经被处理之后被重新发出。

在重新发出引起第二缺失的命令和后续命令之前,流水线可被排尽(drain)。图7是被执行以在未解决的转换缓存缺失已经被处理之后重新发出引起第二缺失的命令的示例性操作的流程图。操作开始于步骤701,完成对第一缺失的处理。在步骤702,转换逻辑可发送通知到TIOC以指示第一缺失已经被处理。在步骤703,流水线可被停顿预定的时间段以允许流水线排尽。

此后,在步骤704,可以恢复对引起第二缺失的命令和后续命令的处理。恢复对引起第二缺失的命令和后续命令的处理的一种简单方式可以是重新发出这些命令。例如,TIIC可从输入命令FIFO接收引起缺失的命令和后续命令并如上述的那样处理这些命令。因此,命令顺序被保持。

结论

通过允许在用于给定命令的地址转换期间对后续命令进行处理,可大大提高整体性能。此外,依赖于给定命令的后续命令和它们的地址转换可被保留,直到获取了用于给定命令的地址转换,因此避免了为依赖命令重新转换地址的需要。

尽管前述内容针对本发明的实施例,但是可以做出本发明的其他和进一步的实施例,而不脱离本发明的基本范围的情况,并且本发明的范围是由后面的权利要求确定的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号