多个转换高速缓存缺失的处理方法和系统的制作方法

文档序号:6570932阅读:451来源:国知局
专利名称:多个转换高速缓存缺失的处理方法和系统的制作方法
技术领域
本发明总体上涉及处理命令队列中的命令。更具体地,本发明涉及在地址转换中发生多个高速缓存缺失(miss,未找到,未命中)之后保持命令队列中的命令排序。
背景技术
计算系统通常包括一个或者多个通信耦合到内存(memory,存储器,记忆体)和输入输出(IO)设备的中央处理器(CPU)。内存可以是包含计算机执行计算所必需的一个或者多个程序和数据的随机存取存储器(RAM)。例如,内存可以包含用于对数据加密的程序以及要被加密的数据。IO设备可以包括视频卡、声卡、图形处理单元等,被配置为发出命令和从CPU接收响应。
CPU可以解释和执行从内存或者IO设备接收到的一个或者多个命令。例如,系统可以接收将两个数相加的请求。CPU可以执行包含所述将两个数相加的逻辑的程序(在内存中)的命令的序列。CPU还可以从输入设备接收输入两个要相加的数的用户输入。在计算的末尾,CPU可以在输出设备比如显示屏上显示结果。
由于在处理了前一命令之后发送来自设备的下一个命令可能需要比较长的时间,在此期间CPU可能不得不保持空闲状态,这样来自设备的多个命令就可能在CPU中的命令队列中排队。因此,CPU可以在处理了上一个命令之后快速访问下一个命令。由于命令之间的相关性,CPU可能被要求按照给定的顺序执行命令。因此,可以将命令置于队列中,按照先进先出(FIFO)的顺序处理,以确保相关的命令按照正确的顺序被执行。例如,如果在某个内存位置的读操作在该内存位置的写操作之后,则必须首先执行写操作,以确保在读操作期间读出正确的数据。因此,源自同一I/O设备的命令可以由CPU按照它们被接收到的顺序加以处理,而来自不同设备的命令可以乱序处理。
CPU接收的命令可以大致分类为(a)要求地址转换的命令以及(b)没有地址的命令。没有地址的命令可以包括中断和同步命令,比如PowerPC的eieio(Enforce In-order Execution of Input/Output,按顺序执行输入输出)命令。中断命令可以是从设备到CPU,请求CPU将正在做的事情搁置一边,做别的事情的命令。可以发出同步命令,使得在该同步命令之前的所有命令被处理完之前不处理随后的命令。因为没有地址与这些命令相关联,它们可以不需要地址转换。
要求地址转换的命令包括读命令和写命令。读命令可以包括要读的数据的位置的地址。类似地,写命令可以包括要写入数据的位置的地址。因为在命令中提供的地址可以是虚拟地址,在执行读或写之前,该地址可能需要转换为内存中的实际物理地址。
地址转换可能需要查找段表和/或页表,以用物理地址匹配虚拟地址。对于最近的目标地址,页表和段表条目可以被保持在高速缓存中,以便快速高效地访问。但是,即使通过高速缓存进行快速高效的访问,在地址转换过程中,随后的命令也可能在流水线中停顿下来。对这种问题的一个解决办法是在地址转换的过程中处理命令队列中随后的命令。但是,对于来自同一I/O设备的命令,仍必须保持命令顺序。
如果在转换期间在高速缓存中没有找到将虚拟地址转换为物理地址的表条目,则可能不得不从内存取该条目。在未找到转换高速缓存时的取条目操作会导致实质性的等待时间。当对某个命令发生了转换高速缓存缺失时,随后的命令的地址转换可能仍在继续。但是,系统可能只允许一个转换高速缓存缺失。因此,只有那些转换高速缓存命中(hit,找到)(缺失之后的命中,即未找到之后的找到)的随后的命令,或者那些不要求地址转换的命令,才能在处理转换高速缓存缺失的同时被处理。因为对转换高速缓存缺失的处理可能要花较长时间,在处理第一个转换高速缓存缺失的同时发生第二个转换高速缓存缺失的概率比较高。
对这种问题的一种解决方案是一次只处理一个命令。但是,如上所述,这可能导致性能的严重下降,因为在地址转换期间命令可能在流水线中停顿下来。另一种解决方案是包括处理多个缺失的硬件。但是,对于必须要处理的每一个增加的多个缺失,这种解决方案可能使系统越来越复杂。还有一种解决方案可以是转换高速缓存的预载入,其中用软件确保没有缺失的情况。但是,这种解决方案导致了不受欢迎的大量软件开销。
因此,需要高效处理命令队列中的多个高速缓存缺失的系统和方法。

发明内容
本发明总体上提供了用于处理命令队列中的命令的方法系统。更具体地,本发明涉及在地址转换中发生多个高速缓存缺失之后保持命令队列中的命令排序。
本发明的一种实施方式提供了一种用于处理命令队列中的多个转换高速缓存缺失的方法,所述命令队列中存储了从一个或者多个输入输出设备接收到的命令序列。该方法总体上包括将命令队列中的第一命令的目标地址发送给地址转换逻辑以被转换,如果判定在包含命令队列中的第一命令的目标地址的虚拟到实际转换的转换逻辑的地址转换表中不存在地址转换条目,则启动从内存中取地址转换条目。该方法还包括在取所述第一命令的条目的同时,处理在该第一命令之后接收到的一个或者多个命令,其中,所述处理包括将命令队列中第二命令的目标地址发送到地址转换逻辑以被转换,如果判定在包含该第二命令的目标地址的虚拟到实际转换的转换逻辑的地址转换表中不存在地址转换条目,则停止随后的命令的处理,直到取到所述第一条目的目标地址的地址转换条目,其中,停止所述命令的处理包括停止处理命令,并设置指向命令队列中的第二命令的指针。
本发明的另一种实施方式提供了一种总体上包括一个或者多个输入输出设备和处理器的系统。该处理器总体上包括(i)命令队列,被配置为存储从一个或者多个输入输出设备接收到的命令序列,(ii)输入控制器,被配置为以流水线方式处理来自所述命令队列的命令,(iii)地址转换逻辑,被配置为使用具有包含虚拟到实际地址转换的条目的地址转换表,转换所述输入控制器处理的命令的目标地址,以及(iv)控制逻辑,被配置为,如果判定在包含在第一命令之后接收到的第二命令的目标地址的虚拟到实际转换的转换逻辑的地址转换表中不存在地址转换条目,则停止输入控制器对在正在取地址转换条目的第一命令之后收到的命令的处理,直到取到第一命令的目标地址的地址转换条目,并设置指向所述第二命令在命令队列中的地址的指针。
本发明的再一种实施方式包括一种微处理器,其总体上包括(i)命令队列,被配置为存储来自输入输出设备的命令序列,(ii)输入控制器,被配置为以流水线方式处理所述命令队列中的命令,(iii)地址转换逻辑,被配置为使用高速缓存的地址转换条目将虚拟地址转换为物理地址,如果在高速缓存中未找到某个命令的地址转换条目,则从内存中取对应的地址转换条目,以及(iv)输出控制器,被配置为,如果检测到在第一命令之后接收到的第二命令的目标地址的转换条目在地址转换表中不存在,则停止处理在第一命令之后收到的命令的处理,直到取到第一命令的目标地址的地址转换条目,并设置指向所述第二命令在命令队列中的地址的指针。


为了更好地理解上述特征、优点和本发明的目的,下面参照辅以附解的实施例详细说明在上面已概要说明的本发明。
但是应当注意,附图只是图解了本发明的典型实施方式,因此不应视为限制本发明的范围,因为本发明还可以有其他等效的实施方式。
图1图解了本发明的一种实施方式的系统示例;图2图解了本发明的一种实施方式的命令处理器;图3是由转换接口输入控制(translate interface input control)执行的处理输入命令FIFO队列中的命令的示例操作的流程图;
图4是由转换逻辑执行的将虚拟地址转换为物理地址的示例操作的流程图;图5是由转换接口输出控制(translate interface output control)执行的处理多个转换高速缓存缺失的示例操作的流程图;图6是在重新处理导致缺失之后又缺失的命令之前执行的刷新流水线的示例操作的流程图。
具体实施例方式
本发明的实施方式提供了在处理多个转换高速缓存缺失的同时保持处理命令队列中的命令时的命令顺序的方法和系统。命令可以在CPU中的输入命令队列中排队。在命令的地址转换期间,可以处理后面的命令以提高效率。处理后的命令可以放在输出队列中,由输入输出设备按顺序送给CPU。在地址转换期间,如果在正在处理尚未解决的缺失的同时又发生转换高速缓存缺失,则可以使流水线停顿,可以在处理了第一个缺失之后再处理导致第二个缺失的命令和所有随后的命令。
下面的说明将参照本发明的一些实施方式。但是,应当理解,本发明不限于这里具体描述的实施方式。相反,下面的特征和元素无论是否和不同的实施方式相关,都可以想到对它们进行任意组合来实现和实施本发明。另外,在各种实施方式中,本发明提供了许多相对于现有技术的优点。但是,尽管本发明的实施方式可以实现相对于现有技术和/或其他可能解决方案的优点,但是某一给定实施方式是否实现某一特定优点并不是对本发明的限制。因此,下面的各个方面、特征、实施方式和优点只是说明性的,不应视为所附权利要求的元素或者限制,除非在权利要求书中明确记载。类似地,当说“本发明”时,不应理解为是对这里所公开的发明主题的概括,也不应视为所附权利要求的要素或者限制,除非在权利要求书中明确记载。
系统示例图1图解了一个系统示例100,其中可以实现本发明的各实施方式。系统100可以包括通信耦合到输入输出(I/O)设备120和内存140的中央处理器(CPU)110。例如,CPU110可以利用总线通过输入输出桥120耦合到输入输出设备130和内存140。输入输出设备130可以被配置为提供对CPU110的输入,例如,如图所示,通过命令131。输入输出设备的例子包括图形处理单元、视频卡、声卡、动态随机存取存储器(DRAM)等。
输入输出设备130也可以被配置为从CPU110接收响应132。响应132例如可以包括可以显示给用户的CPU110的计算结果。响应132还可以包括对内存设备比如上述DRAM设备执行的写操作。尽管在图1中图解的是一个输入输出设备120,但本领域普通技术人员知道可以在同一条或者多条总线上向CPU耦合任意数量的输入输出设备130。
内存140最好是随机存取存储器比如动态随机存取存储器(DRAM)。内存140可以足够大,以保存一个或者多个程序和/或由CPU处理的数据结构。尽管内存140被图示为单个实体,但是应当理解,内存140事实上可以包括多个模块,并且内存140可以有多种层次,从高速缓存一直到低速但是容量更大的DRAM芯片。
CPU110可以包括命令处理器111、转换逻辑112、内嵌处理器(embedded processor)113和高速缓存114。命令处理器110可以从输入输出设备120接收一个或者多个命令131并处理所述命令。每一个命令131可以宽泛地分类为需要地址转换的命令和没有地址的命令。因此,对命令的处理可以包括确定该命令是否要求地址转换。如果命令需要地址转换,则命令处理器可以将该命令分派到转换逻辑112进行地址转换。在命令131中要求转换的命令都被转换后,命令处理器可以将有序的命令133放到芯片内总线117上,由内存控制118上的内嵌处理器113处理。
转换逻辑112可以从命令处理器111接收一个或者多个要求地址转换的命令。要求地址转换的命令例如可以包括读命令和写命令。读命令可以包括要读的数据的位置的地址。类似地,写操作可以包括数据要写到的位置的地址。
包括在要求转换的命令中的地址可以是虚拟地址。虚拟地址可以指向分配给特定程序的虚拟内存。虚拟内存可以是分配给该程序的连续的存储空间,该空间映射到内存140内的不同的、不相邻的物理存储位置。例如,虚拟内存地址可以映射到物理内存(memory)和/或辅助存储器(secondary storage)中的不同的不相邻的存储位置。因此,当使用虚拟内存地址时,虚拟地址必须被转换为实际的物理地址以对该位置执行操作。
地址转换可能涉及到查找段表和/或页表。段表和页表可以将虚拟地址与物理地址相匹配。这些转换表条目可以驻留在存储区140中。最近访问的数据的地址转换可以被保持在高速缓存114中的段表条目116和页表条目115中,以减少随后的对先前访问过的地址的访问的转换时间。如果在高速缓存114中没有找到某个地址转换,那么在必要的情况下,可以将所述转换从内存或者其他存储器引入所述高速缓存。
段表条目116可以表明虚拟地址是否在被分配给特定程序的存储段内。段可以是虚拟内存中大小可变的块,每一个块被分配给特定的程序或者进程。因此,可以首先访问段表。如果虚拟地址指向程序的段的边界之外的区域,则可能发生分段错误(segmentation fault)。
每一个段可以进一步分为称为页的固定大小的块。虚拟地址可以指向段内所包含的一个或者多个页。页表115可以将虚拟地址映射到内存140内的页。如果在内存中没有找到某页,可以从可能驻留有希望的页的辅助存储器中取出该页。
命令处理图2是根据本发明的一种实施方式的命令处理器111的详细视图,该命令处理器111可以被配置为处理来自输入输出设备130的命令。命令处理器111可以包含输入命令FIFO201、转换接口输入控制(translate interface input control)202、转换接口输出控制(translateinterface output control)203和命令FIFO204。输入命令FIFO201可以是足够大的缓冲器,以能保持至少预定数量的可能由输入输出设备120发给CPU的命令131。命令131可以按照其被收到的顺序依次放入输入命令FIFO201中。
转换接口输入控制(TIIC)202可以监视和管理输入命令FIFO201。TIIC可以维护读指针210和写指针211。读指针210可以指向输入命令FIFO中用于处理的下一个可用的命令。写指针211可以指向输入命令FIFO中用于写新接收到的命令的下一个可用的位置。随着从输入命令FIFO中取出每一个命令来进行处理,读指针增一。类似地,随着从输入输出设备接收每一个命令,写指针也增一。如果读或写指针到达输入命令FIFO的末尾,则可以重置指针,使其在下一次增一时指向输入命令FIFO的开始。
TIIC202可以被配置为通过防止写指针的增加超过读指针,确保输入命令FIFO不溢出。例如,如果写指针增加了并指向与读指针相同的位置,则缓冲器填满了未被处理的命令。如果再收到任何命令,则TIIC可以发出出错消息,指出命令不能被栓锁在CPU中。
TIIC202还可以判断在输入命令FIFO201中收到的命令是否是要求地址转换的命令。如果收到了要求转换的命令,则可以将该命令送到转换逻辑112进行处理。但是,如果该命令不要求地址转换,则该命令可以在流水线中往下传。
图3是由TIIC执行的处理输入命令FIFO中的命令的示例操作的流程图。TIIC执行的操作可以是流水线操作。因此,在任何给定时间可能有多个命令在进程中。例如,TIIC可能从输入命令FIFO收到第一命令进行处理。在收到第一命令的时候,以前收到的第二命令可以由TIIC发送给转换逻辑进行地址转换。
TIIC中的操作始于步骤301,从输入命令FIFO接收命令。例如,TIIC可以读所述读指针所指的命令。在读该命令后,读指针可以增一以指向下一个命令。在步骤302,TIIC可以判断所取得命令是否要求地址转换。如判定该命令要求地址转换,则该命令可以在步骤303被送往转换逻辑112进行地址转换。在步骤304,被送往转换逻辑的该命令的输入命令FIFO地址可以在流水线中向下传送。在步骤302,如果判定该命令不要求地址转换,则可以将该命令和该命令的输入命令FIFO地址在步骤305在流水线中向下传送。
现在回到图2,转换逻辑112可以处理来自TIIC的地址转换请求。地址转换可能涉及查找段表和页表,以将虚拟地址转换为内存140中的实际物理地址。在某些实施方案中,转换逻辑可以允许对页表和段表高速缓存进行流水线访问。如果在地址转换过程中碰到页或段高速缓存缺失,则在处理该高速缓存缺失的同时,高速缓存可以继续对随后的命令提供高速缓存命中。
如果在地址转换过程中没有出现缺失,则转换逻辑可以向转换接口输出控制(TIOC)203提供转换结果,如图2所示。但是,如果发生了缺失的情况,则转换逻辑可以将导致缺失的命令通知给TIOC。
图4是由转换逻辑执行的进行地址转换的示例操作的流程图。与TIIC一样,由转换逻辑执行的操作也可以流水线化。因此,在任何给定时间,可以有多个命令在进程中。操作可以开始于步骤401,从TIIC接收进行地址转换的请求。在步骤402,转换逻辑可以访问段表和页表高速缓存,以取出对应的条目来将虚拟地址转换为物理地址。在步骤403,如果在高速缓存中找到了对应的页表和段表条目,则可以将地址转换结果在步骤404发送给TIOC。
但是,如果在段表和页表高速缓存中没有找到页表和段表条目,则可在步骤405中将有关该命令地址的转换缺失的通知发送给TIOC。在步骤406,转换逻辑可以启动缺失处理程序。例如,缺失处理可以包括向内存发送对对应的页表和段表条目的请求。
重要的是要注意到,对于某些实施方式,当有未解决的缺失正在被处理时,转换逻辑只能处理一个转换高速缓存缺失。如果发生第二个缺失,则可以将缺失通知发送给TIOC。下面将详细讨论在正在处理未解决的缺失时对第二个缺失的处理。另外,在正在处理未解决的缺失时,随后的要求地址转换的命令可以继续被处理。因为从内存或者辅助存储器取页表和段表条目可能需要比较长的时间,停止随后的命令可能使性能产生实质性的下降。因此,在正在处理某个缺失时,可以处理找到了转换高速缓存的随后的命令。
处理缺失之后的命中回到图2,TIOC可以跟踪正在被转换逻辑处理的未解决的缺失的数量,并基于命令之间的相关关系维持命令的排序。例如,TIOC可以接收被送往转换逻辑进行地址转换的命令以及不要求地址转换的命令的输入命令FIFO地址。如果命令是从同一输入输出设备乱序收到的,则TIOC可以将这些命令保持在命令队列204中,并基于这些命令的输入命令FIFO地址按照所要求的顺序将这些命令分派给CPU。图2图解了TIOC存储在命令队列204中的命令。如果命令对于输入输出设备来说不是乱序的,则TIOC可以如图所示将命令133分派给CPU。
例如,输入命令FIFO中的第一命令可能要求地址转换,可以被转到转换逻辑中进行地址转换。在正在转换第一命令的同时,依赖于该第一命令、不要求地址转换的随后的第二命令可能在第一命令的转换完成之前传递给TIOC。由于所述依赖性,TIOC可以将该第二命令保持在命令队列中,直到第一命令被处理完。之后,第一命令可以在第二命令之前被分派给CPU。类似地,在正在转换第一命令的同时,依赖于该第一命令的随后的第三命令可能命中转换高速缓存,被传递到TIOC。与第二命令一样,第三命令也可以被保持在命令队列中,直到第一命令被处理完并被分派。
TIOC还可以监视在转换逻辑中发生的未命中(缺失)的次数,以识别“缺失之后的缺失”(miss under miss)。如上所述,转换逻辑中每一次发生未命中时,可以发通知给TIOC,识别产生缺失的命令。由于某些实施方式一次只允许处理一个转换高速缓存缺失,如果在正在处理第一个缺失时发生第二个缺失,则TIOC可以停止流水线,直到第一个缺失被处理完。图2图解了从TIOC发给TIIC、识别导致第二个缺失的命令的停止流水线信号。
图5是由TIOC执行的处理地址转换时的缺失(未命中)的示例操作的流程图。操作始于步骤501,从转换逻辑接收缺失通知。在步骤502,TIOC判断是否有别的未解决的缺失正在由转换逻辑处理。如果没有未解决的缺失正在由转换逻辑处理,在步骤511,TIOC记录该命令的输入命令FIFO地址。在步骤512,TIOC可以允许处理在导致缺失的命令之后的命令,以提高性能。另一方面,如果在步骤502判定有未解决的缺失正在处理,则可以停止流水线。这可以在步骤503通过向TIIC与导致第二个缺失的命令的输入命令FIFO地址一起发送一个停止指示来进行。在步骤504,TIOC可以忽略在导致第二个缺失的命令之后的所有命令。TIOC可以通过它们的输入命令FIFO地址来确定这些命令。
作为对从TIOC接收到停止通知的响应,TIIC可以停止流水线,不发出命令,直到有来自TIOC的进一步通知。流水线的停顿可以一直到第一个缺失被处理完,TIOC接收到转换结果。TIIC也可以将读指针重置为指向输入命令FIFO中导致第二个缺失的命令。因此,在完成第一个缺失的处理之后,可以重新发出导致第二个缺失的命令和随后的命令。
在重新发出导致第二个缺失的命令和随后的命令之前,可以将流水线排干。图6是在完成了对未解决的转换高速缓存缺失的处理之后重新发出导致第二个缺失的命令的示例操作的流程图。这些操作始于步骤601,即完成第一个缺失的处理。在步骤602,可以由转换逻辑向TIOC发出通知,指出已经完成第一个缺失的处理。在步骤603,可以将流水线停止一段预定的时间以允许流水线排干。
之后,在步骤604,可以重新开始处理导致第二个缺失的命令以及随后的命令。重新开始处理导致第二个缺失的命令以及随后的命令的一种简单的方式可以是重发所述命令。例如,TIIC可以从输入命令FIFO接收导致缺失的第二命令和随后的命令,并如上所述处理所述命令。这样就维持了命令的顺序。
结论通过在给定命令的地址转换期间允许处理随后的命令,总体性能可以大大提高。另外,通过监视地址转换高速缓存的缺失并在发生“缺失后的缺失”的情况下停止流水线,本发明的各实施方式可以有助于在处理多个转换高速缓存缺失时保持命令的顺序。
尽管前面针对本发明的各实施方式进行了描述,也可以想出本发明的其他的和进一步的实施方式而不偏离本发明的基本范围,这种范围是由所附的权利要求确定的。
权利要求
1.一种用于处理命令队列中的多个转换高速缓存缺失的方法,所述命令队列中存储了从一个或者多个输入输出设备接收到的命令序列,该方法包括将命令队列中的第一命令的目标地址发送给地址转换逻辑以被转换;如果判定在包含命令队列中的第一命令的目标地址的虚拟到实际转换的转换逻辑的地址转换表中不存在地址转换条目,则启动从存储器中取地址转换条目;在取所述第一命令的条目的同时,处理在该第一命令之后接收到的一个或者多个命令,其中,该处理包括将命令队列中第二命令的目标地址发送到地址转换逻辑以被转换;以及如果判定在包含该第二命令的目标地址的虚拟到实际转换的转换逻辑的地址转换表中不存在地址转换条目,则停止随后的命令的处理,直到取到所述第一命令的目标地址的地址转换条目,其中,停止所述命令的处理包括停止处理命令,并设置指向命令队列中的第二命令的指针。
2.如权利要求1所述的方法,其中所述命令包括下述命令之一要求地址转换的命令;和没有地址的命令。
3.如权利要求1所述的方法,其中,所述地址转换表包括段表和页表。
4.如权利要求1所述的方法,其中,所述命令队列是先进先出队列。
5.如权利要求1所述的方法,还包括在接收到所述第一命令的地址转换之后,处理所述第二命令以及第二命令之后的命令。
6.如权利要求1所述的方法,还包括在第二命令队列中存储处理后的命令;以及对于每一个输入输出设备,按照从所述输入输出设备接收所述命令的顺序,向CPU发出处理后的从每一个输入输出设备接收到的命令。
7.如权利要求6所述的方法,还包括乱序发出处理后的从不同的输入输出设备接收到的命令。
8.一种系统,包括一个或者多个输入输出设备;以及处理器,该处理器包括(i)命令队列,被配置为存储从所述一个或者多个输入输出设备接收到的命令序列,(ii)输入控制器,被配置为以流水线方式处理来自所述命令队列的命令,(iii)地址转换逻辑,被配置为使用具有包含虚拟到实际地址转换的条目的地址转换表,转换所述输入控制器处理的命令的目标地址,以及(iv)控制逻辑,被配置为如果判定在包含在第一命令之后接收到的第二命令的目标地址的虚拟到实际转换的转换逻辑的地址转换表中不存在地址转换条目,则停止输入控制器对在正在取地址转换条目的第一命令之后收到的命令的处理,直到取到第一命令的目标地址的地址转换条目,并设置指向所述第二命令在命令队列中的地址的指针。
9.如权利要求8所述的系统,其中,所述地址转换逻辑还被配置为将转换后的地址提供给控制逻辑;以及如果在地址转换表中没有找到某个地址的转换,则通知控制逻辑。
10.如权利要求8所述的系统,其中,为了停止命令的处理,控制逻辑被配置为向输入控制器发送停止信号和第二命令在命令队列中的地址。
11.如权利要求8所述的系统,其中,所述输入控制器被配置为在取到第一命令的地址转换之后发出所述第二命令和随后的命令。
12.一种微处理器,包括(i)命令队列,被配置为存储来自输入输出设备的命令序列;(ii)输入控制器,被配置为以流水线方式处理所述命令队列中的命令;(iii)地址转换逻辑,被配置为使用高速缓存的地址转换条目将虚拟地址转换为物理地址,如果在高速缓存中未找到某个命令的地址转换条目,则从存储器中取对应的地址转换条目,以及(iv)输出控制器,被配置为,如果检测到在第一命令之后接收到的第二命令的目标地址的转换条目在地址转换表中不存在,则停止对在第一命令之后收到的命令的处理,直到取到第一命令的目标地址的地址转换条目,并设置指向所述第二命令在命令队列中的地址的指针。
13.如权利要求12所述的微处理器,其中,所述命令队列是先进先出队列。
14.如权利要求12所述的微处理器,其中,所述地址转换表是段表和页表之一。
15.如权利要求12所述的微处理器,其中,响应于命令要求地址转换的判定,所述输入控制器被配置为将所述命令发送给地址转换逻辑;以及将所述命令在所述命令队列中的地址发送给所述输出控制器。
16.如权利要求12所述的微处理器,其中,所述地址转换逻辑被进一步配置为将转换后的地址提供给输出控制器;以及如果在转换表中没有找到某个地址的转换,则通知输出控制器。
17.如权利要求12所述的微处理器,其中,为了停止命令的处理,所述输出控制器被配置为向所述输入控制器发送停止信号和第二命令在命令队列中的地址。
18.如权利要求12所述的微处理器,其中,所述输入控制器被配置为在取到所述第一命令的地址转换之后,发出所述第二命令和随后的命令。
19.如权利要求12所述的微处理器,其中,所述输出控制器被进一步配置为;在第二命令队列中存储处理后的命令;以及对于每一个输入输出设备,按照从该输入输出设备接收到命令的顺序,向CPU发送处理后的从该输入输出设备接收到的命令。
20.如权利要求19所述的微处理器,其中,所述输出控制器被进一步配置为乱序发出处理后的来自不同输入输出设备的命令。
全文摘要
本发明涉及多个转换高速缓存缺失的处理方法和系统。本发明的实施方式提供了在处理多个转换高速缓存缺失的同时处理命令队列中的命令时保持命令顺序的方法和系统。命令可以在CPU中的输入命令队列中排队。在命令的地址转换期间,可以处理随后的命令以提高效率。处理后的命令可以放在输出队列中并按顺序发给CPU。在地址转换期间,如果正在处理未解决的缺失的时候发生转换高速缓存缺失,则可以停止流水线,在处理完第一个缺失之后重新处理导致第二个缺失的命令以及所有随后的命令。
文档编号G06F9/38GK101013402SQ200710001449
公开日2007年8月8日 申请日期2007年1月8日 优先权日2006年2月1日
发明者伊布拉西姆·A.·奥达, 约翰·D.·艾利史, 查德·B.·麦克布里德 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1