据物理分页指针比较结果转送数据的装置及方法

文档序号:6578102阅读:234来源:国知局
专利名称:据物理分页指针比较结果转送数据的装置及方法
技术领域
(0001)本发明涉及一种支持分页虚拟内存系统并工作于流水线化微处理器中的储存再转送的装置及方法。特别是使用比较器用以比较加载数据的物理分页指针与处于储存缓冲区中数据的物理分页指针以决定是否转送处于储存执行状态的数据。
(0004)因此,当指令被提取时,就被导入流水线的一端。指令于微处理器中经历流水线阶段,直到执行完毕。然而,当指令于微处理器中经历流水线阶段的处理时,有时,一较早处理(或于较高阶层中处理)的指令需要等待另一先前于它的较晚指令(或于较低阶层中处理的指令)执行完毕的结果。
(0005)何谓储存执行(Store hit)状态?储存执行(Store hit)状态意谓在一较高层次流水线(Pipeline)中等待执行的指令需等待一较低层次流水线中的指令执行完毕后才执行的一种状况。储存执行(Store hit)状态常发生在流水线(Pipeline)中一加载指令需等待另一加载指令执行完毕以标示加载数据储存地址后才执行的一种状况。也就是说,在流水线中,一加载指令执行完毕,并标示加载数据储存的地址(address)后,另一加载指令根据其所标示的数据储存地址找到前述的地址上所储存的加载数据后再执行另一指令的一种状况,此时,加载数据仍然停留于微处理器的流水线中,尚未被更新至微处理器的数据高速缓存(Data Cache)或系统内存中。
(0006)在先进的微处理器技术中,特别是在英特尔(Intel)X86微处理器系列中,储存执行(Store hit)的状况是经常发生的。这种现象主要归因于先进的X86微处理器的编译器(Compiler)中的暂存盘(RegisterFile)使用相对较少的缓存器(Register),另外,X86微处理器内建高容量的数据高速缓存(Data Cache),且X86微处理器对于前述的数据高速缓存(Data Cache)及暂存盘(Register File)存取的速度几乎是一样快,因此,当编译器(Compiler)使用完暂存盘(Register File)中的缓存器(Register)时,编译器(Compiler)会将高容量的数据高速缓存(DataCache)当作大型的暂存盘(Register File)使用。特别是当以下的情况发生时,编译器(Compiler)常会产生储存执行(Store学hit)的情形。
(0007)第一,当循环计数器(Loop Counter)变量储存于一内存地址时。第二,当一内存地址被当作一连串数学运算的暂存地址时。第三,当一迭堆地址被一串非常短的附程序中的一非常短的指令存取时,也就是说,当一传回地址(Return Address)被使用,同时系统执行一附程序中的一小串指令时,储存执行(Store hit)的情形便会发生于传回地址(Return Address)上。
(0008)当储存执行(Store hit)的情形发生时,加载指令的执行需由连贯的数据所提供,也就是加载地址上最新的数据。而此时,最新的数据仍然在流水线(Pipeline)中不在数据高速缓存(Data Cache)或系统内存中,故微处理器将无法自数据高速缓存(Data Cache)或系统内存中取用前述的最新数据。解决的方法之一是使微处理器暂时等待一段时间待数据高速缓存(Data Cache)或系统内存中处于储存执行(Store hit)状态的数据被更新,并将此位于数据高速缓存(Data Cache)或系统内存中更新的数据提供给加载的指令后再继续执行。但很明显的,此种解决的方法会使微处理器系统处理的效能变差,较好的解决的方法是决定最新数据的加载地址(Load Address)后,根据加载地址,直接将最新数据由等待处理层次转送至加载指令执行的层次。
(0009)转送处于储存执行(Store hit)状态的数据是一件复杂的工作,主要原因是,许多微处理器使用分页内存技术。在分页内存的架构中,加载指令的虚拟地址(Virtual Address)必须转换为物理地址(PhysicalAddress)以便确的存取数据。而为了要侦测储存执行的状态及转送正确的数据,加载数据的物理地址及微处理器中处于储存状态数据的物理地址必须加以比较,而在分页内存的系统中,比较虚拟地址(VirtualAddress)是不够的,因加载数据的虚拟地址及微处理器中处于储存状态数据的虚拟地址虽然不相同,但都可能参照于同一物理地址。
(0010)具备分页内存系统的微处理器基本上使用Translation-Lookaside Buffer(TLB)以快速存取由虚拟地址转换而来的物理地址。TLB负责将虚拟地址转换成物理地址。TLB的技术将传统冗长不断重复的虚拟地址转换成物理地址的工作大幅简化,使得系统数据处理的效能增加。
(0011)为了侦测储存执行(Store hit)状态是否存在,系统将比较加载指令的物理地址(Physical Address)与流水线中等待处理指令的物理地址。若侦测储存执行(Store hit)状态存在,处于测储存执行状态的最新数据将被转送至加载指令。同时,物理地址比较的动作及指令转送的动作是循序发生的。而循序发生的时序长短对于微处理器处理循环的效能来说是十分重要的。因此,如何提供一种方法使循序发生的时序缩短对于改善微处理器处理循环的效能提升将有很大的帮助。
(0013)本发明装置的次要目的乃在于提供一种支持分页虚拟内存的微处理器,此种微处理器包括一指针对等指示器(Index Match Indicator)用以显示加载指令的加载数据的物理分页指针是否与处于储存状态的数据的物理分页指针相同。前述的微处理器亦包括一转送的逻辑装置,其搭配指针对等指示器使用,当指针对等指示器显示加载物理分页指针(LoadPhysical Page Index)及储存物理分页指针(Store Physical Page Index)为一致时,前述的转送逻辑装置可将处于储存状态的数据转送至执行的指令中。转送逻辑装置根据加载数据及储存数据是否在同一物理内存的分页中以决定是否将储存数据转送至加载指令中。
(0014)本发明的另一目的乃在于提供一种方法,此种方法特别着重于转送微处理器流水线中处于储存执行的数据或指令。此种方法乃在于比较加载指令的加载数据(或指令)的物理分页指针是否与流水线中处于储存状态的数据(或指令)的物理分页指针相同。当加载指令的加载数据的物理分页指针与流水线中处于储存状态的数据(或指令)的物理分页指针相同时,此种方法同时包括将处于第一利于流水线中处于储存状态的数据转送至第二种加载指令执行的状态。
(0015)本发明的再一目的乃在于提供一种支持流水线处理的微处理器,此种微处理器包括多重储存暂存区,前述的多重储存暂存区中储存等待写入内存的数据。此种微处理器同时包括多重地址缓存器,可搭配前述储存数据物理分页指针的多重储存暂存区一起使用。此种微处理器同时亦包括多重指针比较器,可搭配前述的多重地址缓存器一起使用,多重指针比较器可比较多重物理分页指针与加载指令所要求的数据的物理分页指针的差异。前述的微处理器同时亦包括控制逻辑,搭配前述的多重指针比较器一起使用,当多重指针比较器比较一物理分页指针与加载指令所要求的数据的物理分页指针为相同时,前述的控制逻辑可将储存于多重储存暂存区的数据转送至加载指令中执行。
(0016)本发明较现有技术有许多优点,其中之一是可减少储存再转送(Store Forward)的时间。特别是当一微处理器的处理循环控制不允许足够的时间比较完整物理内存以转送一数据或指令时,本发明的方法及装置更能发挥极大的功效。再者,本发明的方法亦提供另一附加的流水线以满足物理上须比较完整物理内存以转送数据或指令的需求,此种作法对于微处理器的处理效能是相当重要的,特别是微处理器对于预测失误事件处理的效能。另外,本发明的方法及装置更能加速微处理器处理循环控制的时间以满足物理上需比较完整物理内存以转送数据或指令的需求。
为了能对本发明有更进一步的了解与认同,配合附图作一详细说明如后。
(0018)

图1为本发明的流水线化的微处理器中储存后再转送装置的示意图。
(0019)图2为图1的虚拟内存转为物理内存的示意图。
(0020)图3为根据本发明的比较物理分页内存指针以转送数据或指令的工作流程的示意图。
(0021)图4为为现有技术中比较物理分页内存完整地址以转送数据或指令的工作流程的示意图。图中100---微处理器。101---A阶层。
102---地址产生器。103---D阶层。
104---转换查询缓冲区(TLB)。105---G阶层。
106---指针比较器。107---E阶层。
108---数据快取区。109---S阶层。
111---W阶层。112---物理分页地址比较器。
114---控制逻辑。116---转送多工器。
118---数学运算逻辑单元(ALU)。122---储存缓冲区。
124---储存缓冲区控制逻辑。126---储存缓冲区物理地址缓存器。
128、132、134、136、138---多工器地址缓存器。
142---数据。144---操作数。
152、154、156---多工器数据缓存器。
158---数据。162---指针比较信号。
164---PPA比较信号。166---时间信号。
168---控制信号。172---迟延信号。
174---物理分页指针位。176---物理分页指针。
178---响应缓冲区数据。182---物理地址。
183---物理分页地址。184---物理分页地址。
186---物理地址。188---虚拟地址。
192---储存数据。194---快速存取线。
196---运算数据。198---操作数选择多工器。
202---虚拟分页号码。204---物理分页指针。
206---字节位移量。208---分页表。
212---物理分页地址。
302、304、306、312、314、316、318、322、324、326、402、404、406、408、412、414---流程步骤。
(0022)请参考图1,图1为本发明的流水线化的微处理器100中储存后再转送装置的示意图。在本实施例中,微处理器100为一包括X86架构的微处理器,微处理器100包括一组具备13种阶层状态的流水线系统。图1显示最底层的6种流水线架构,依序为A阶层101(地址层)、D阶层103(数据层)、G阶层105(第二数据层)、E阶层107(执行层)、S阶层109(储存层)及W阶层111(回写层)。较高的阶层包括一提取地址产生层、一指令提取层、两个指令快速存取层、一指令格式层、一指令译码转换层及一缓存器档案存取层,图1中并无显示。
(0023)在本实施例中,微处理器100流水线中的较高阶层提取宏指令(Macroinstructions)并将宏指令转换为微指令(Microinstructions)或微操作(Micro-Operations)例如加载或储存的指令。加载指令明确标示一内存地址,从其上数据由内存加载至微处理器100中。储存指令明确标示一内存地址,从其上数据由微处理器100中储存至内存中。在图1的实施例中,加载数据提供至位于G阶层105(第二数据层)的加载指令中。
(0024)微处理器100同时于A阶层101(地址层)包括一地址产生器102。地址产生器102产生一虚拟地址,该虚拟地址将提供给一位于D阶层103(数据层)的多工器地址缓存器128。说的更清楚一点,地址产生器102产生一虚拟地址,该虚拟地址用以明确标示加载指令或储存指令所使用的加载数据或储存数据的地址。地址产生器102乃是根据加载指令或储存指令的操作数以产生加载数据或储存数据的虚拟地址。另外,地址产生器102亦可根据微处理器100的Segment缓存器及描述器的数值以产生加载指令或储存指令的虚拟地址。
(0025)微处理器100同时于D阶层103(数据层)中包括一转换查询缓冲区(TLB)104。该转换查询缓冲区(TLB)104自D阶层103中的地址缓存器128中接收虚拟地址188后将其转换为物理地址186。转换查询缓冲区(TLB)104快速存取微处理器100中执行的操作系统根据分页表由虚拟地址转换成的物理地址。当需要转换时,系统会查询转换查询缓冲区(TLB)104,转换查询缓冲区(TLB)104便将虚拟地址相对应的物理地址提供给系统。此种过程便称为「TLB查询」或在TLB中「查询物理地址」。
(0026)请参考图2,图2为图1的虚拟内存188转为物理内存186的示意图。由图可知,虚拟内存188在传统的分页内存系统中占用4KB的容量。本发明的方法及装置并不受限于任何特殊的分页大小、虚拟内存大小、物理内存大小或任何分页转换系统。分页虚拟内存系统是现今微处理器领域、计算机领域及操作系统领域中经常使用的技术。
(0027)虚拟内存188中包括一虚拟分页号码202。虚拟分页号码202占用虚拟内存188中31至12位(Bit)的位置。虚拟分页号码202于操作系统所维护的分页表208中扮演一指针的角色。虚拟分页号码202在分页表208中决定了分页系统中定义所欲被存取数据的物理分页地址212,也就是说,物理分页地址212明确标示了分页系统中欲被存取数据的虚拟分页号码202所对应的物理分页地址。在一些分页内存系统中,为了取得物理分页地址212,分页表208中多重层次的分页表必须保持移动。移动过后,被转换过的物理分页地址将被快速储存于TLB 104中(如图1所示)以便连续的存取动作存取虚拟分页号码202时可快速的提供物理分页地址212。
(0028)虚拟内存188中同时亦包括一物理分页指针204。物理分页指针204占用虚拟内存188中11至3位(Bit)的位置。物理分页指针204用以标示分页中一字符(Word)的位移量状态。在图2的实施例中,一字符(Word)占用了8个字节(Bytes)。特别需要说明的,物理分页指针204是不需要分页内存系统转换处理的。
(0029)虚拟内存188中同时亦包括一字节(Byte)位移量206。字节位移量206占用虚拟内存188中2至0位(Bit)的位置。字节位移量206用以标示由物理分页地址212及物理分页指针204所寻址的一8个位的字节中一个位的状态。字节位移量206亦是不需要分页内存系统转换处理的。字节位移量206、物理分页指针204及物理分页地址212共同组成了数据虚拟内存188所对应的完整的物理地址186。
(0030)本发明的发明者指出,在一般的状况下,执行状态中的指令及处于储存状态的指令同时出现在不同的分页中但具有相同物理分页指针的状况十分少。另外,本发明的发明者发现,两个或两个以上于流水线中处于储存状态的指令同时在不同的分页中但具有相同物理分页指针的状况亦十分少。
(0031)本发明利用这些发现,比较处于执行状态中的指令的物理分页指针及处于储存状态的指令的物理分页指针以决定系统是否处于一储存执行(Store hit)的状态中。此比较的动作是与TLB查询同时进行的。若比较的结果,两者的物理分页指针是相同的,则处于储存执行的状态中的数据(或指令)将根据比较的结果被转送。此与传统现有技术中处理储存执行(Store hit)状态的做法是不同的,如图4所示,现有技术中处理储存执行(Store hit)状态的做法是等待TLB查询结果以产生完整的物理地址后,再根据此完整的物理地址以比较处于储存状态数据的完整的物理地址以决定系统是否处于一储存执行(Store hit)的状态中并转送处于储存执行(Store hit)状态中的数据。
(0032)请再参考图1,微处理器100同时包括一系列的多工器地址缓存器138、136、134及132分别位于G阶层105(第二数据层)、E阶层107(执行层)、S阶层109(储存层)及W阶层111(回写层)。地址缓存器138、136、134及132分别储存于微处理器100流水线中不同的加载指令及储存指令相对应的物理地址。G阶层105的地址缓存器138提供一加载指令相对应的物理地址给G阶层105用以比较储存数据的地址以侦测储存执行的状态是否存在,以下将有所描述。
(0033)微处理器100同时包括储存缓冲区122用以储存于微处理器100流水线中等待写入内存或数据快取区108的数据。本实施例中,储存缓冲区122包括四个缓存器用以储存四个于微处理器100流水线中等待执行的指令的相关数据。
(0034)微处理器100同时包括储存缓冲区(SB)物理地址缓存器126。储存缓冲区物理地址缓存器126自W阶层111(回写层)物理地址缓存器132中取得一物理地址。假如该物理地址是给等待处理指令使用者,则该物理地址便储存于储存缓冲区物理地址缓存器126中。本实施例中,储存缓冲区物理地址缓存器126包括四个缓存器用以储存四个等待执行指令的物理地址182。也就是,四个储存缓冲区物理地址缓存器126储存了四个储存于储存缓冲区122中相对应的物理地址182。
(0035)微处理器100同时包括储存缓冲区控制逻辑124。储存缓冲区控制逻辑124用以控制管理储存缓冲区物理地址缓存器126及储存缓冲区122中物理地址及储存数据的存放。储存缓冲区控制逻辑124控制储存缓冲区122中储存数据的时间以维持数据的更新。当一加载指令发生多重储存执行的状况时,一数据166由储存缓冲区控制逻辑124提供给控制逻辑114,使控制逻辑1114能够判别那个是最新的数据。
(0036)微处理器100同时包括一组指针比较器106位于D阶层103(数据层)中。本实施例中,指针比较器106包括四个指针比较器。每一指针比较器自虚拟内存188取得物理分页指针位174。每一指针比较器同时自等待执行指令的物理地址182中取得物理分页指针位176。当一加载指令处理至D阶层103(数据层)时,指针比较器106的每一指针比较器将比较物理分页指针位174及物理分页指针位176。每一指针比较器并产生一指针比较信号162。假设物理分页指针位174及物理分页指针位176相等则指针比较信号162的状态为真。指针比较信号162将被提供给控制逻辑114。在图1的实施例中,指针比较器106比较了9个位的数据,因为指针比较器106只比较物理分页指针而没有如现有技术般比较物理地址完整的32个位。因此,因为比较的位数明显少许多,使用本发明方法的系统的处理效能将明显的提高许多。
(0037)微处理器100同时包括一物理分页地址比较器112位于G阶层105(第二数据层)中。在本实施例中,物理分页地址比较器112包括四个比较器。每一个物理分页地址比较器自G阶层105地址缓存器138中取得G阶层105中加载指令的物理分页地址184。另外,每一个物理分页地址比较器自储存缓冲物理地址缓存器126中取得储存物理地址182的物理分页地址183。每一个物理分页地址比较器112产生一PPA比较信号164。假设物理分页地址184及物理分页地址183相等则PPA比较信号164的状态为真。也就是说,假如加载数据与相对应的储存数据位于相同的物理内存分页中时,PPA比较信号164的状态为真。PPA比较信号164将被提供给控制逻辑114。在图1的实施例中,物理分页地址比较器112比较了20个位的数据,因为物理分页地址比较器112只比较物理分页地址而没有如现有技术般比较物理地址完整的32个位。因此,因比较的位数明显少许多,使用本发明方法的系统处理效能将明显的提高许多。
(0038)微处理器100同时包括一数据快取区108位于D阶层103(数据层)中。数据快取区108自地址缓存器128中取得虚拟地址188。当虚拟地址188「击中」(Hit)数据快取区108时,数据快取区108提供一快速存取线194(Cache Line)给虚拟地址188。数据快取区108同时自TLB104中取得物理地址186。于本实施例中,数据快取区108为一二循环的快取区。
(0039)微处理器100同时包括一转送多工器116位于G阶层105(第二数据层)中。转送多工器116自数据快取区108中取得快速存取线194。另外,转送多工器116接收响应的缓冲数据178。假设一加载指令所要求的数据不存在于数据快取区108中亦不存在于微处理器100的流水线中时,该数据将被自内存中提取至响应缓冲区并被提供至转送多工器116。另外,转送多工器116并自储存缓冲区122取得储存数据192。
(0040)转送多工器116自数据快取区108的快速存取线194中取得响应缓冲区数据178,或自储存缓冲区122中取得储存数据192,并根据控制逻辑114所提供的控制信号168将这些数据输出为数据142。当根据指针比较器106比较物理分页指针的结果所决定的储存执行的状态发生时,控制逻辑114控制转送多工器116并使其转送储存数据192至一位于G阶层105(第二数据层)的加载指令中。当一处于储存执行的数据被转送错误时,转送多工器116将选择响应缓冲区数据178的数据或数据快取区108的快速存取线194中的数据作为正确的数据以更正转送错误的数据。
(0041)微处理器100同时包括一操作数选择多工器198,操作数选择多工器198接收转送多工器116所挑选的数据142,操作数选择多工器198同时接收微处理器100中其它来源所提供的运算数据196,例如从微处理器100的缓存器档案中取得数据。操作数选择多工器198输出的数据为选择过的操作数144。
(0042)微处理器100同时包括一位于E阶层107(执行层)中的多工器数据缓存器156,多工器数据缓存器156则用以接收操作数选择多工器198所挑选的操作数144。多工数据缓存器156将挑选出的操作数提供给位于E阶层107(执行层)和的一个或多个数学运算逻辑单元(ALU)118。数学运算逻辑单元(ALU)118根据操作数选择多工器198所挑选的操作数以处理数学或逻辑运算并产生一结果数据158。若是结果数据158是一有关储存指令的数据,则结果数据便是一储存数据。
(0043)微处理器100同时包括一位于S阶层109(储存层)中的多工数据缓存器154,多工数据缓存器154则用以接收ALU 118中的结果数据158。微处理器100同时包括一位于W阶层111(回写层)中的多工数据缓存器152用以自S阶层109(储存层)的数据缓存器154中取得数据。W阶层111(回写层)将选择适当的数据并回写入微处理器100的缓存器档案中。
(0044)控制逻辑114使用指针比较信号162、PPA比较信号164及时间信号166并通过控制信号168以控制转送多工器116。另外,控制逻辑114并产生一迟延(Stall)信号172。每一地址缓存器128、132、134、136及138以及多工数据缓存器152、154及156都会收到迟延(Stall)信号172。假设控制逻辑114决定转送多工器116需要被控制以根据指针比较信号162的状态转送处于储存执行的数据,接着又根据PPA比较信号164的状态发现转送是错误的,控制逻辑114便发出迟延(Stall)信号172以暂缓微处理器100流水线中指令的执行。也就是,当迟延(Stall)信号172的状态为真时,地址缓存器128、132、134、136及138以及多工数据缓存器152、154及156都将维持其原本的状态。
(0045)现请参考图3,图3为根据本发明的比较物理分页内存指针以转送数据或指令的装置的工作流程示意图。工作流程由步骤302开始。
(0046)于步骤302中,当微处理器100处于D阶层103(数据层)状态时,其发出一加载指令。加载指令具备一虚拟地址188储存于D阶层103的地址缓存器128中。加载指令是接着一储存指令由微处理器100发出的,储存指令的储存数据储存于储存缓冲区122中等待写入内存或数据快取区108中。请参考处理流程步骤302、步骤304及步骤306,由图所示,流程304及流程306是同时进行的。
(0047)请参考处理流程步骤304,加载的虚拟地址188被提供至TLB104。TLB104参考虚拟地址188的虚拟分页号码202并将转换过的物理地址186的物理分页地址212提供至地址缓存器138。而后,处理流程从步骤304进行至步骤306。
(0048)在步骤316中,指针比较器106比较加载指令的虚拟地址188的物理分页指针174与储存物理地址182的物理分页指针176并产生指针比较信号162。
(0049)于步骤308中,控制逻辑114检查指针比较信号162以决定加载物理分页指针174及任何储存物理分页指针174的比较结果。若比较的结果是正确的,处理流程便进行至步骤314,如果不是,处理步骤则进行步骤312。
(0050)于步骤312中,加载指令所使用的加载数据乃通过响应缓冲区数据178经数据路径由数据快取区108或内存中加载,此种情况发生的原因乃由于在步骤308中,储存执行的情况并未发生。
(0051)于步骤314中,若储存数据192的物理分页指针176与进行至G阶层105(第二数据层)的加载指令的物理分页指针174比较的结果是正确的,控制逻辑114便通过控制信号168以控制转送多工器116转送最新的储存数据192。也就是说,转送多工器116将于储存于储存缓冲区122中四个储存数据192中挑选其一,其对应的指针比较信号162是正确的。也就是说,转送多工器116挑选比较正确的储存数据192其为最新储存于储存缓冲区122的数据。并且,当加载指令处理至E阶层107(执行层)时,操作数选择多工器198从转送多工器116挑选数据142并将其提供至E阶层107(执行层)供加载指令使用。处理步骤由步骤314进行至步骤318。
(0052)于步骤316中,物理分页地址比较器112比较加载的物理分页地址184与储存的物理分页地址183并产生PPA比较信号164。步骤314及步骤316几乎是同时进行的。
(0053)于步骤318中,控制逻辑114检查PPA比较信号164以决定加载物理分页指针184及任何储存物理分页指针183的比较结果。若比较的结果是正确的,处理流程便停止,如果不是,处理步骤则进行至步骤322。
(0054)于步骤318中,控制逻辑114使用一迟延(Stall)信号172以暂缓微处理器100流水线中指令的执行。控制逻辑114暂缓微处理器100流水线中指令的执行是因为于步骤314中,大量处于储存执行的数据被错误的转送。也就是说,即使加载指令的物理分页指针174与储存数据192的物理分页指针174比较的结果是正确的,但若加载数据与储存数据于内存中位于不同的分页中,控制逻辑114仍会暂缓微处理器100流水线中指令的执行。因此,被错误转送的数据需要被更正,更正的方法需通过提取完整的加载物理地址186来完成。
(0055)于步骤324中,完整的加载物理地址186所标示的正确数据被自数据快取区108或内存中提取出来。也就是,若完整的加载物理地址186需使用数据快取区108时,控制逻辑114将控制转送多工器116自数据快取区108中挑选一快速存取线194。否则,控制逻辑114将控制转送多工器116选择响应缓冲区数据178当其自内存中离开时。另外,当正确的数据到达时,操作数选择多工器198自转送多工器116中挑选数据142并转送至E阶层107中暂停执行的加载指令。
(0056)于步骤326中,当正确的数据被送达时,控制逻辑114解除迟延信号172以停止微处理器100流水线中指令暂缓执行的状态。
(0057)图4为为现有技术中比较物理分页内存完整地址以储存转送数据或指令的工作流程示意图。以下将从现有技术微处理器的角度来探讨现有技术中储存转送数据或指令的工作流程。现有技术中的微处理器并不包括指针比较器106及物理分页地址比较器112。现有技术中的微处理器包括一组比较器用以比较TLB所提供的加载指令完整的物理地址与等待处理指令完整的物理地址。因此,现有技术中的微处理器最大的缺点在于处理的循环时间较长,另外,必须要增加额外的一个控制程序用以使转送多工器得到物理地址与TLB查询比较的结果。
(0058)于步骤402中,加载指令已进入加载数据被收到的状态。
(0059)于步骤404中,加载指令的虚拟地址被提供至TLB,TLB将虚拟地址转换为物理地址。
(0060)于步骤406中,完整物理地址比较器比较加载指令完整的物理地址与等待处理指令完整的物理地址并标示比较的结果。
(0061)于步骤408中,加载指令完整的物理地址与等待处理指令完整的物理地址并标示比较的结果若相同,则处理流程将进行步骤414,若不相同,处理流程将进行步骤412。
(0062)于步骤412中,加载指令所标示的加载数据是从数据快取区或内存中通过响应缓冲区所加载者,这是因为储存后执行的状态并不存在(如步骤408中所示)。
(0063)于步骤414中,最新处于储存后执行状态的数据将根据步骤406与步骤404物理地址比较的结果自储存缓冲区转送至加载指令。
(0064)现有技术中储存再转送的处理流程必须将TLB查询、物理地址比较及转送等动作依序进行,但相反地,本发明的储存再转送的处理流程是同时比较物理地址分页指针与TLB查询,并根据指针比较的结果以转送处于储存执行状态的数据,其转送处于储存执行状态的数据的速度较现有技术为快。
(0065)另外,本发明中较小的指针比较器106及物理分页地址比较器112在执行比较时使用较少的比较位,因此,比较的速度较快,故可增加微处理器处理的效能。
(0066)故本发明如前述的说明,确能达到预期的作用及效果,上述本发明较佳实施例的说明,是用以揭示本发明的技术特征,而非限制本发明的权益。例如,本说明书中的实施例所引用的分页内存系统并不受限于任何特定的分页内存系统;本说明书中的实施例所引用的微处理器并不受限于X86微处理器;本说明书中的实施例所提到的虚拟地址、物理地址及物理分页指针的容量可以为任何的大小,另外,本发明的方法可适用于不同数量的储存缓冲区。因此,举凡结构上的细微变更或组件数目上的变更及等效的取换,应隶属本发明的范畴。
权利要求
1.一种微处理器流水线中储存后转送的装置,其特征在于,微处理器流水线中包括两种状态,第一种状态为接收一加载虚拟地址所标示的加载数据,第二种状态为储存一等待写入储存物理地址的储存数据,加载虚拟地址包括一加载虚拟分页号码及一加载物理分页号码,储存物理地址包括一储存物理分页地址及一储存物理分页指针,该装置包括一指针比较器,用以比较加载物理分页指针及储存物理分页指针一转送逻辑,配合该指针比较器使用,当该指针比较器显示比较加载物理分页指针及储存物理分页指针的结果是正确时,用以将储存数据由该第二种状态转送至该第一种状态。
2.如权利要求1所述的微处理器流水线中储存后转送的装置,其特征在于,还包括一转换查询缓冲区(TLB),配合该转送逻辑使用,用以接收加载虚拟分页号码并提供一相对应的加载物理分页地址。
3.如权利要求2所述的微处理器流水线中储存后转送的装置,其特征在于,还包括一物理分页地址比较器,配合该转送逻辑使用,用以比较加载物理分页地址与储存物理分页地址。
4.如权利要求3所述的微处理器流水线中储存后转送的装置,其特征在于,当该物理分页地址比较器显示加载物理分页地址与储存物理分页地址的比较结果是错误时,该转送逻辑在转送数据后暂停流水线中执行的指令。
5.如权利要求3所述的微处理器流水线中储存后转送的装置,其特征在于,该转送逻辑将数据由该第二利状态转送至该第一种状态的动作是与该物理分页地址比较器比较加载物理分页地址与储存物理分页地址的动作同时进行。
6.如权利要求2所述的微处理器流水线中储存后转送的装置,其特征在于,该指针比较器比较加载物理分页指针与储存物理分页指针的动作是与该TLB转换加载虚拟分页号码为加载物理分页地址的动作同时进行。
7.如权利要求1所述的微处理器流水线中储存后转送的装置,其特征在于,在流水线中,该第二种状态是位于该第一种状态之后。
8.如权利要求1所述的装置,其特征在于,该转送逻辑还包括一转送多工器,用以接收储存数据,并根据指针比较器比较的结果选择性的将储存数据转送至该第一种状态。
9.如权利要求8所述的微处理器流水线中储存后转送的装置,其特征在于,转送多工器更用以自一数据快取区接收数据,并根据该指针比较器比较加载物理分页指针与储存物理分页指针的结果选择性地将该接收数据转送至该第一种状态。
10.如权利要求8所述的微处理器流水线中储存后转送的装置,其特征在于,该转送多工器更用以自一反应缓冲区接收数据,并根据该指针比较器比较加载物理分页指针与储存物理分页指针的结果选择性地将该接收数据转送至该第一种状态。
11.如权利要求1所述的微处理器流水线中储存后转送的装置,其特征在于,加载物理分页指针可在一物理内存分页中标示一解除(offset)状态。
12.如权利要求1所述的微处理器流水线中储存后转送的装置,其特征在于,加载虚拟分页号码包括20个位。
13.如权利要求1所述的微处理器流水线中储存后转送的装置,其特征在于,储存物理分页地址包括20个位。
14.一支持分页虚拟内存的微处理器,其特征在于,包括一指针比较指示器,用以显示一加载指令所标示的加载数据的物理分页指针与微处理器储存的等待数据的物理分页指针比较的结果;以及一转送逻辑,配合该指针比较指示器使用,当该指针比较指示器显示比较加载数据物理分页指针及储存数据物理分页指针的结果是正确时,用以将该储存数据转送至该加载指令;该转送逻辑根据该指针比较指示器显示的结果转送该储存数据至该加载指令后会检查该加载数据及储存数据是否位于一相同的物理内存的分页中。
15.如权利要求14所述的微处理器,其特征在于,还包括一物理分页地址比较指示器,配合该转送逻辑,用以指示该加载数据及储存数据是否位于相同的物理内存分页中。
16.如权利要求15所述的微处理器,其特征在于,还包括一暂停信号,配合该物理分页地址比较指示器使用,当该物理分页地址比较指示器显示加载数据与储存数据不位于相同的物理内存分页中时,用以暂停微处理器中执行的指令。
17.如权利要求16所述的微处理器,其特征在于,该暂停信号暂停微处理器中执行指令的动作是紧接于该转送逻辑转送该储存数据至该加载指令动作之后。
18.如权利要求16所述的微处理器,其特征在于,该微处理器将保持暂停处理状态直到一加载数据被该加载指令自一物理内存分页中取出。
19.如权利要求14所述的微处理器,其特征在于,该微处理器为一x86架构的微处理器。
20.一种于微处理器流水线中转送储存执行数据的方法,其特征在于,包括比较一加载指令标示的物理分页指针与一于流水线中处于等待状况的储存指令标示的物理分页指针;以及若比较该加载指令标示的物理分页指针与于流水线中处于等待状况的储存指令标示的物理分页指针的结果是正确的,则将流水线中处于等待状态(第一状态)的储存数据转送至流水线中处于执行状态的第二状态。
21.如权利要求20所述的方法,其特征在于,还包括比较该加载指令所标示的数据的物理分页地址与该储存数据的物理分页地址。
22.如权利要求21所述的方法,其特征在于,还包括若该加载指令所标示的数据的物理分页地址与该储存数据的物理分页地址比较的结果是错误的,则于该转送后暂停微处理器流水线中执行的指令。
23.如权利要求22所述的方法,其特征在于,还包括于微处理器流水线暂停时,提供正确的数据至该第二种状态。
24.如权利要求21所述的方法,其特征在于,该比较该加载指令所标示的该数据的该物理分页地址与该储存数据的物理分页地址的动作是与该转送动作同时进行。
25.如权利要求21所述的方法,其特征在于,还包括转换该加载指令所标示的该数据的虚拟分页号码成为该物理分页地址并比较该加载指令所标示的该数据的物理分页地址与该储存数据的该物理分页地址。
26.如权利要求25所述的方法,其特征在于,比较该加载指令所标示的该数据的物理分页指针与该储存数据的该物理分页指针的动作是与转换该加载指令所标示的该数据的虚拟分页号码为该物理分页地址的动作同时进行。
27.如权利要求25所述的方法,其特征在于,转换的方法包括提供该虚拟分页号码至一转换查询缓冲区(TLB);并且自该转换查询缓冲区(TLB)取得该加载指令所标示的虚拟分页号码相对应的该数据的物理分页地址。
28.一流水线化的微处理器,其特征在于,包括一组多重的储存缓冲区,用以储存多个数据等待写入内存;一组多重的地址缓存器,配合该多重储存缓冲区使用,用以储存多个数据相对应的物理分页指针;一组多重的指针比较器,配合该多重地址缓存器使用,用以比较多重的物理分页指针与一加载指令所标示的数据的物理分页指针;一控制逻辑,配合该多重指针比较器使用,当该多重指针比较器显示比较该多重物理分页指针的一物理分页指针与该加载指令所标示的该数据的该物理分页指针的结果为正确时,用以将该储存的多重数据自该多重储存缓冲区转送至该加载指令。
29.如权利要求28所述的微处理器,其特征在于,该加载指令所标示的该数据的该物理分页指针可在一微处理器系统内存的物理内存分页中标示一解除(offset)状态。
30.如权利要求29所述的微处理器,其特征在于,该加载指令所要求的该数据的该物理分页指针将被提供至该多重指针比较器而不需将该加载指令所标示的该数据的虚拟地址加以转换。
31.如权利要求28所述的微处理器,其特征在于,该微处理器所发出的加载指令是紧跟于微处理器所发出的该多重储存数据相关的储存指令之后。
32.如权利要求28所述的微处理器,其特征在于,该多重指针比较器显示超过一个物理分页指针与加载指令所要求数据的物理分页指针的比较结果是正确时,该控制逻辑将多个储存数据中相对应最新的一个转送至该加载指令中。
33.如权利要求32所述的微处理器,其特征在于,该控制逻辑被设定可从该多重储存缓冲区中接收控制信号以显示多个等待写入内存的储存数据的等待时间。
34.如权利要求33所述的微处理器,其特征在于,该控制逻辑依据自该多重储存缓冲区中接收的控制信号将多个储存数据中相对应且比较正确的最新的一个数据转送至该加载指令中。
全文摘要
本发明涉及一种支持分页虚拟内存系统并工作于流水线化微处理器中的储存再转送的装置及方法。包括多个比较器(Comparator)用以比较加载数据的物理分页指针与处于储存缓冲区中数据的物理分页指针以决定是否发生储存执行的状态。如比较结果是正确的,转送逻辑便根据比较的指针转送最新处于储存执行状态的数据。指针比较的动作与加载数据虚拟分页号码的TLB查询动作是同时进行的,TLB查询动作将产生一物理分页地址。加载数据物理分页地址将与储存数据物理分页地址进行比较以确定转送的储存执行数据与加载数据位于相同的分页中。如比较结果是不正确的,便暂停执行微处器流水线中执行的指令并更正错误的转送数据,待错误的数据被更正后,微处器流水线中执行的指令便继续执行。
文档编号G06F9/38GK1397877SQ0211855
公开日2003年2月19日 申请日期2002年4月27日 优先权日2001年7月18日
发明者罗德·胡克, 葛兰·亨利 申请人:智慧第一公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1