CN101013402A - 多个转换高速缓存缺失的处理方法和系统 - Google Patents

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

Info

Publication number
CN101013402A
CN101013402A CN200710001449.XA CN200710001449A CN101013402A CN 101013402 A CN101013402 A CN 101013402A CN 200710001449 A CN200710001449 A CN 200710001449A CN 101013402 A CN101013402 A CN 101013402A
Authority
CN
China
Prior art keywords
order
address
address translation
input
command
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
Application number
CN200710001449.XA
Other languages
English (en)
Other versions
CN100489816C (zh
Inventor
伊布拉西姆·A.·奥达
约翰·D.·艾利史
查德·B.·麦克布里德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101013402A publication Critical patent/CN101013402A/zh
Application granted granted Critical
Publication of CN100489816C publication Critical patent/CN100489816C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/684TLB miss handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

本发明涉及多个转换高速缓存缺失的处理方法和系统。本发明的实施方式提供了在处理多个转换高速缓存缺失的同时处理命令队列中的命令时保持命令顺序的方法和系统。命令可以在CPU中的输入命令队列中排队。在命令的地址转换期间,可以处理随后的命令以提高效率。处理后的命令可以放在输出队列中并按顺序发给CPU。在地址转换期间,如果正在处理未解决的缺失的时候发生转换高速缓存缺失,则可以停止流水线,在处理完第一个缺失之后重新处理导致第二个缺失的命令以及所有随后的命令。

Description

多个转换高速缓存缺失的处理方法和系统
技术领域
本发明总体上涉及处理命令队列中的命令。更具体地,本发明涉及在地址转换中发生多个高速缓存缺失(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接收导致缺失的第二命令和随后的命令,并如上所述处理所述命令。这样就维持了命令的顺序。
结论
通过在给定命令的地址转换期间允许处理随后的命令,总体性能可以大大提高。另外,通过监视地址转换高速缓存的缺失并在发生“缺失后的缺失”的情况下停止流水线,本发明的各实施方式可以有助于在处理多个转换高速缓存缺失时保持命令的顺序。
尽管前面针对本发明的各实施方式进行了描述,也可以想出本发明的其他的和进一步的实施方式而不偏离本发明的基本范围,这种范围是由所附的权利要求确定的。

Claims (20)

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所述的微处理器,其中,所述输出控制器被进一步配置为乱序发出处理后的来自不同输入输出设备的命令。
CN200710001449.XA 2006-02-01 2007-01-08 多个转换高速缓存缺失的处理方法和系统 Expired - Fee Related CN100489816C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/344,910 US20070180158A1 (en) 2006-02-01 2006-02-01 Method for command list ordering after multiple cache misses
US11/344,910 2006-02-01

Publications (2)

Publication Number Publication Date
CN101013402A true CN101013402A (zh) 2007-08-08
CN100489816C CN100489816C (zh) 2009-05-20

Family

ID=38323468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200710001449.XA Expired - Fee Related CN100489816C (zh) 2006-02-01 2007-01-08 多个转换高速缓存缺失的处理方法和系统

Country Status (4)

Country Link
US (1) US20070180158A1 (zh)
JP (1) JP2007207248A (zh)
CN (1) CN100489816C (zh)
TW (1) TW200809501A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227390B (zh) * 2008-01-22 2011-10-26 中兴通讯股份有限公司 对网络地址转换的映射条目生成顺序实现优先级的方法
CN104823154A (zh) * 2012-06-15 2015-08-05 索夫特机械公司 具有拥有统一结构的动态分派窗口的虚拟加载存储队列
US9904552B2 (en) 2012-06-15 2018-02-27 Intel Corporation Virtual load store queue having a dynamic dispatch window with a distributed structure
US9928121B2 (en) 2012-06-15 2018-03-27 Intel Corporation Method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization
US9990198B2 (en) 2012-06-15 2018-06-05 Intel Corporation Instruction definition to implement load store reordering and optimization
US10019263B2 (en) 2012-06-15 2018-07-10 Intel Corporation Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
US10048964B2 (en) 2012-06-15 2018-08-14 Intel Corporation Disambiguation-free out of order load store queue
CN108733585A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 缓存系统及相关方法
CN111858090A (zh) * 2020-06-30 2020-10-30 广东浪潮大数据研究有限公司 一种数据处理方法、系统、电子设备及存储介质

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8401952B1 (en) 2009-03-24 2013-03-19 Trading Technologies International, Inc. Trade order submission for electronic trading
US8386748B2 (en) * 2009-10-29 2013-02-26 Apple Inc. Address translation unit with multiple virtual queues
US10140210B2 (en) 2013-09-24 2018-11-27 Intel Corporation Method and apparatus for cache occupancy determination and instruction scheduling
US11545209B2 (en) * 2021-05-28 2023-01-03 Micron Technology, Inc. Power savings mode toggling to prevent bias temperature instability
US11581049B2 (en) * 2021-06-01 2023-02-14 Sandisk Technologies Llc System and methods for programming nonvolatile memory having partial select gate drains

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5621896A (en) * 1994-06-01 1997-04-15 Motorola, Inc. Data processor with unified store queue permitting hit under miss memory accesses
DE60238519D1 (de) * 2001-01-12 2011-01-20 Nxp Bv Einheit und verfahren zur speicheradressenübersetzung und bildverarbeitungsvorrichtung mit einer solchen einheit
US6963964B2 (en) * 2002-03-14 2005-11-08 International Business Machines Corporation Method and apparatus for detecting pipeline address conflict using parallel compares of multiple real addresses
US6981125B2 (en) * 2003-04-22 2005-12-27 International Business Machines Corporation Method and apparatus for managing shared virtual storage in an information handling system
US7721067B2 (en) * 2006-01-20 2010-05-18 Qualcomm Incorporated Translation lookaside buffer manipulation

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227390B (zh) * 2008-01-22 2011-10-26 中兴通讯股份有限公司 对网络地址转换的映射条目生成顺序实现优先级的方法
US9990198B2 (en) 2012-06-15 2018-06-05 Intel Corporation Instruction definition to implement load store reordering and optimization
CN104823154B (zh) * 2012-06-15 2017-12-29 英特尔公司 包括虚拟加载存储队列的处理器和系统
US9904552B2 (en) 2012-06-15 2018-02-27 Intel Corporation Virtual load store queue having a dynamic dispatch window with a distributed structure
US9928121B2 (en) 2012-06-15 2018-03-27 Intel Corporation Method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization
US9965277B2 (en) 2012-06-15 2018-05-08 Intel Corporation Virtual load store queue having a dynamic dispatch window with a unified structure
CN104823154A (zh) * 2012-06-15 2015-08-05 索夫特机械公司 具有拥有统一结构的动态分派窗口的虚拟加载存储队列
US10019263B2 (en) 2012-06-15 2018-07-10 Intel Corporation Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
US10048964B2 (en) 2012-06-15 2018-08-14 Intel Corporation Disambiguation-free out of order load store queue
US10592300B2 (en) 2012-06-15 2020-03-17 Intel Corporation Method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization
CN108733585A (zh) * 2017-04-17 2018-11-02 伊姆西Ip控股有限责任公司 缓存系统及相关方法
CN108733585B (zh) * 2017-04-17 2022-05-13 伊姆西Ip控股有限责任公司 缓存系统及相关方法
CN111858090A (zh) * 2020-06-30 2020-10-30 广东浪潮大数据研究有限公司 一种数据处理方法、系统、电子设备及存储介质
CN111858090B (zh) * 2020-06-30 2024-02-09 广东浪潮大数据研究有限公司 一种数据处理方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
US20070180158A1 (en) 2007-08-02
CN100489816C (zh) 2009-05-20
JP2007207248A (ja) 2007-08-16
TW200809501A (en) 2008-02-16

Similar Documents

Publication Publication Date Title
CN100489816C (zh) 多个转换高速缓存缺失的处理方法和系统
US5283883A (en) Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
US8004533B2 (en) Graphics input command stream scheduling method and apparatus
US7073030B2 (en) Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
US20070180156A1 (en) Method for completing IO commands after an IO translation miss
EP1862907A2 (en) Cache memory device and caching method
US11157411B2 (en) Information handling system with immediate scheduling of load operations
CN102169429A (zh) 预取单元、数据预取方法以及微处理器
JPH05324317A (ja) 1,2または3語の命令を順次先取りする方法
CA2142799A1 (en) Integrated level two cache and memory controller with multiple data ports
US8195880B2 (en) Information handling system with immediate scheduling of load operations in a dual-bank cache with dual dispatch into write/read data flow
US20050240731A1 (en) Managing a multi-way associative cache
CN110291507B (zh) 用于提供对存储器系统的加速访问的方法和装置
US8140756B2 (en) Information handling system with immediate scheduling of load operations and fine-grained access to cache memory
US5809550A (en) Method and apparatus for pushing a cacheable memory access operation onto a bus controller queue while determining if the cacheable memory access operation hits a cache
JP2007207249A (ja) ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ
US20100268890A1 (en) Information handling system with immediate scheduling of load operations in a dual-bank cache with single dispatch into write/read data flow
US10380034B2 (en) Cache return order optimization
US20070280224A1 (en) System and method for an output independent crossbar
CN104793987B (zh) 一种数据处理方法及装置
EP2159701A1 (en) Cash control device and cash control method
CN115563031A (zh) 指令高速缓存的预取控制方法、装置、芯片及存储介质
US20050027902A1 (en) DMA completion mechanism
CN115309453A (zh) 一种支持乱序处理器数据预取的缓存访问系统
CN100345103C (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
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090520

Termination date: 20100208