与填写中的快取线平行使用的可存取缓冲区及其控制方法

文档序号:6651392阅读:136来源:国知局

专利名称::与填写中的快取线平行使用的可存取缓冲区及其控制方法
技术领域
:本发明涉及以处理器为基础的系统中从存储器进行资料的存取,尤其是在一快取线正在被填写时还能够对快取存储器进行资料存取的快取系统,使得处理器存取速度能提升。
背景技术
:对于计算机系统在处理速度、储存与读取大量资料与/或指令上的需求不断在增加,要加速处理器存取已储存的资料的其中一个办法是将存储器中最近被处理器所读取的资料存放一个复本于快取存储器中,当处理器所要求的资料是位于快取存储器内的时候,从快取存储器读取会比从存储器读取快很多。因为常常会对存储器相同位置的软件反复读取,在业界广泛地使用各种快取系统来与处理器通讯,以加速对所需的资料做更快速的存取。图1与图2举例了一个传统计算机系统10,其包含一处理器12、主存储器14与输出入装置(input/output(I/O))16,彼此间以内部总线18交互连结。输出入装置16是此领域所熟知的技术,故在此不多加讨论。处理器12包含一快取系统20,其包含一快取控制器22与快取存储器24。快取存储器24是称为第一级快取存储器或主要快取存储器,其可包含同步随机存取存储器(SRAM),例如约32K。快取存储器24被用来当作暂时储存单元,以储存经常被使用或最近被使用资料的备份,期待能被处理器12再度使用。主存储器14一般包含动态随机存取存储器(DRAM),动态随机存取存储器较同步随机存取存储器便宜,但却需要花较多的时间,这是因为存取主存储器14资料的速度受限于总线时脉,一般会比处理器时脉慢好几倍。基于这理由,要尽可能地发挥快取存储器24的好处。快取控制器22是被配置于快取系统中20,用以控制快取存储器24的相关运作。当处理器12要求从主存储器14存取资料时,快取控制器22会先去检查资料是否已经在快取存储器中。如果是,则这次的存取视为快取命中(cachehit),并且资料由快取存储器24快速地读取。如果不是,则视为快取错失(cachemiss),处理器12必须从主存储器要求资料,同时储存该资料的一个复本至快取存储器中,该复本可能在之后也可以被使用到。图3说明传统的快取存储器24是如何被组织的,快取存储器24被以快取阵列的方式配置,具有数个快取线(cacheline)26,如图标中的行(columns)所示,快取阵列可能大约有1024个快取线。每一条快取线26具有一个预先定义好的记录项目(entry)28,虽然图3中所表示的快取线26只有8个记录项目28,实际上快取线可以有4、8、16或任意适合的记录项目数量。这里所说的快取线可视为一个从主存储器14中连续地址所撷取的资料单元或资料区块,每一个别的快取线记录项目28储存的资料是从主存储器14其中的一个相对应存储器地址而取得。每一个快取线被以一个预设的宽度来配置,该宽度是指位数,可以是8、16、32或任意合适的数量。因此快取线的宽度也同时定义了每一个记录项目28所储存的位数目。现在来描述快取控制器22的运作,当处理器做了一个存取存储器的要求,快取控制器22会判断这次存取是快取错失还是快取命中。在快取错失时,快取控制器22在快取阵列中配置了一个要被填写的快取线,然而在填入一个快取线26前,快取控制器会先让快取线26失效,因为被填入的资料在整个快取线26被填完前都不可以被存取。接下来快取控制器22从主存储器14中抓取资料并且在快取线26中一次一个记录项目地取代快取线26中的旧值。快取控制器22所抓取的资料不只来自一个被要求的位置,有可来自一连串存储器位置,这些存储器位置的资料预期会被处理器12所需要。例如,一快取线具有8个记录项目,对地址200的要求会使得快取控制器从地址200经由207填入资料至快取线26所对应的记录项目28,当资料被写入快取存储器24时,它会被一口气写入一个快取线,这会持续到快取线26完整被填入为止。在完整填入快取线26后,快取控制器22会让被填入的快取线26生效,表示资料可以从该快取线26存取,每一个快取线都有一个有效位来表示快取线26的有效性。然而在传统快取存储器20中有一个问题,当处理器12要求存取正在填写的快取线时,这个要求可能不为快取命中,也不为快取错失。不能被视为快取命中的原因在于正在填入的快取线在填写的当时被标示为失效,因此在这情形下要以不同于快取命中或快取失效的方式来处理。这种情形下,快取控制器会插入一个等待信号(waitsignal)来“暂停处理器”,或者是让处理器等待,等待一段能够让快取线被填写完并生效的时间。如此,对被填入的快取线的存取将会在快取中命中,也使得资料能被存取。图4举例了在被要求存取资料时在快取系统20中传统快取控制器22运作简单的流程图30。在步骤32中,新的存取会被判断是否为快取命中,换言之,会判断该存取的资料是否在快取存储器内。如果没有,流程会被导向步骤34,在这情形下,快取控制器会暂停处理器,并且从主存储器14将所要求的资料对整个快取线填入。所有接下来对快取线填入的存取要求将会因处理器被暂停而延迟。如果步骤32产生快取命中,则在快取存储器中的资料可以被存取。在这情形下,流程会被导向步骤36,其判断该要求为读取还是写入。在读取要求时,流程前进至步骤38,要是要求为写入,则流程前进至步骤40。在步骤38中,资料可以被立刻从快取存储器中读取,并且让处理器继续执行下一个指令。在步骤40中,开始一个将资料写入快取存储器的程序,在这个写入的程序中,要被储存的资料会被写入快取存储器,并且要被储存的资料可以是在写入快取存储器的同时写入主存储器,也可以是在写入快取存储器(write-to-cache)作业之后才写入主存储器。从图4的流程图中可以看出,除非快取命中(步骤32),否则处理器会被强制等待,使得处理器无法从事其它作业。虽然这样的方法相当简单,但对快取系统而言,它却提供了较差的处理器等待时间。看到这种会使处理器等待时间拉长的事实,熟悉相关技术者纷纷尝试就此议题来设计快取系统。图5示意了一个快取控制器运作的流程图42,其改善了图4的运作。在流程图42中,步骤32、36、38与40与图4相同,是针对要求为快取命中的情况下处理。因为处理器在这情形下不会被延迟,所以流程图42在这个部份可以维持一致。然而,图5的流程图42在步骤32中有关于该要求没有快取命中的情形显然不同于图4,在此快取存储器中并没有命中的情形下,流程会被导入步骤44,判断该要求所命中的快取线是否正在被填写的程序中。如果没有,则流程前进到步骤46,步骤46的执行是在该要求没有命中于快取存储器或是没有命中正在填写的快取线的时,也就是说,必需从主存储器读取的时候。在这种情形下,快取控制器从主存储器要求所需要的资料,其中需要暂停处理器,在目前正在填写的快取线填入程序完成后,再开始一个新的快取线的填写程序。填入程序会一直持续,直到在新快取线中被要求的位置被填入为止。当被要求的位置被填入后,如果该要求在步骤56中被判断为读取,资料将会回馈(步骤56)至处理器,在所读取的资料在步骤56被回馈至处理器后,处理器可以在填入新快取线的其余部份的过程中平行处理额外的作业。如果在步骤44中所判断的要求命中于正在填入的快取线时,则流程前进到步骤50,其判断对一位置(记录项目)所做的资料存取要求是否已经在被填入的快取线中。如果步骤50判断出该位置尚未被填入,则流程会被导入步骤52,在步骤52中,处理器会被暂停,并且填入程序会持续以填入快取线,直到该位置被填入为止。当所要求的位置被填入,如果该要求被判断为步骤48中的读取时,则资料也会被回馈至处理器(步骤56)。如果在步骤50被判断出正在填写的快取线中的该位置已经被填入,则流程导向步骤54。在步骤48中,会判断出该要求是否为读取或是写入。如果为写入,流程会进行至步骤54,但是如果为读取,流程会进行至步骤56。在步骤54中,处理器会被暂停直到整个快取线被填入为止。在快取线被填入后,程序的流程继续至步骤36,执行上述图4的步骤。即使图5改进了图4的流程,仍包含数个等待时间的程序,而让处理器变慢。因此需要更有效地去除处理器等待时间,以改进处理器的效能。由改进传统快取系统,便可进而改进处理器的资料存取速度。
发明内容本发明的目的在于,提供一种与填写中的快取线平行使用的可存取缓冲区及其控制方法,其可改善已知技术的缺点与不足。本发明揭示了一种快取系统,其特征在于,包含一快取控制器,该快取控制器与一处理器通讯;一快取存储器,该快取存储器与该快取控制器通讯,该快取存储器包含复数个用来储存资料的快取线,每一个快取线具有复数个记录项目;一缓冲区系统,该缓冲区系统与该快取控制器通讯,该缓冲区系统包含复数个缓存器,每一个缓存器对应于一个正在填写的快取线内的一个记录项目,要填入该正在填写的快取线内一个该记录项目的相同资料亦储存于对应该记录项目的该缓存器;其中该快取控制器是被配置来储存与该正在填写的快取线及该缓冲区系统的该缓存器相同的资料;以及其中该缓冲区系统的该缓存器中的资料在一快取线填写程序的期间能够被存取。其中上述的缓冲区系统的配置为每一个缓存器的宽度与该快取线记录项目的宽度相同。其中上述的缓冲区系统的配置为该缓存器的数量等于一个该快取线内记录项目的数量。本发明一种用于快取系统的缓冲区系统,其特征在于,包含一快取线填写缓冲区,该快取线填写缓冲区是用来储存要被写入该快取系统的一快取线的资料;一控制装置,是用来控制资料写入该快取线填写缓冲区;一验证装置,是用来验证该快取线填写缓冲区内位置;以及一侦测装置,是用来侦测该快取线填写缓冲区的一存取命中。其中上述的控制装置判断被储存于该快取线填写缓冲区的资料是从一处理器接收,或是从主存储器接收,该判断是根据该验证装置在该快取线填写缓冲区内对该位置所建立的验证。其中上述的验证装置对该控制装置提供复数个验证位,来表示该快取线填写缓冲区的复数个缓存器中目前哪一个被填写。其中上述的验证装置提供偏移量有效位给该控制装置,用以表示哪些缓存器已被填写且为有效。其中上述的快取线填写缓冲区、该控制装置、该验证装置、与该侦测装置包含逻辑电路组件。本发明一种与快取存储器平行使用的缓冲区系统,其特征在于,该缓冲区系统包含复数个缓存器,每一个缓存器是对应于一快取线的一记录项目,该快取线是正处于被填写的程序,每一个个别的该缓存器所储存的资料与该正在填写的快取线内相对应的该记录项目所储存的资料相同;其中该复数个缓存器内的资料在该正在填写的快取线不为有效时能够被存取。其中上述的复数个缓存器在整个快取线被填写并为有效时由一重置位来使其变为失效。其中上述的每一个缓存器是根据该缓存器的有效性从一处理器或主存储器两者之一接收写入资料。其中还包含复数个多任务器,每一个多任务器分别与一个该缓存器相对应,由相对应的该多任务器提供该写入资料给该缓存器。其中还包含至少一多任务器,该多任务器用来将储存于该复数个缓存器之一的资料提供给一快取控制器。本发明一快取控制器,其特征在于,包含一写入装置,用来写入资料至一快取存储器的一快取线并将相同资料写于一平行缓冲区;一第一侦测装置,用来侦测一资料存取是否命中于该快取存储器;一第一存取装置,用来在一快取命中被侦测到时存取资料;以及一第二存取装置,用来在该资料存取要求命中于一快取线时存取在该平行缓冲区的资料,其中,该快取线正处于被填写程序中。其中还包含一第二侦测装置,用来侦测该资料存取要求是否命中于该正在填写的快取线;以及一第三侦测装置,在该资料存取要求命中于该正在填写的缓冲区时,用来侦测该资料存取要求是否命中于一个已经被填写的位置。本发明一种控制快取系统的方法,其特征在于,包含在一快取线开始一填写程序并将相同资料填写于一快取线填写缓冲区;侦测一资料存取要求是否命中于该快取系统的快取;当该资料存取要求没有命中于该快取时,侦测该资料存取要求是否命中于该正在填写的快取线;当该资料存取命中于该正在填写的快取线时,侦测该资料存取要求是否是针对该正在填写的快取线内已经填写的一位置;以及当该位置已经被填写时,由该快取线填写缓冲区存取资料。其中当该资料存取要求没有命中于该正在填写的快取线时,完成该快取线的填写并且开始另一个新的快取线的填写程序,同时将相同资料写入该快取线填写缓冲区。其中当该位置尚未被填写时,继续该正在填写的快取线与该快取线填写缓冲区的填写,直到该被要求的位置被填写为止。本发明的其它目的、功效,请参阅附图及实施例,详细说明如下,其中图1是为传统计算机的功能区块图;图2是图1所示意的传统快取系统的功能区块图;图3是传统快取阵列的图标;图4是图2是传统快取系统的第一种运算程序的流程图;图5是图2是传统快取系统的第二种运算程序的流程图;图6与图7是本发明所揭示的快取系统的具体实施例的示意图;图8是图6与图7所示的缓冲区系统的具体实施例示意图;图9是图8的快取命中侦测模组的具体实施例示意图;图10是图8的缓冲区位置验证模组的具体实施例示意图;图11是图8所示的快取线填写模组的具体实施例示意图;图12举例了图8所示的写入控制模组的输出响应的逻辑电路示意图;以及图13是图6与图7所示的快取控制器的运作程序流程图。具体实施例方式本发明在此所探讨的方向为一种与填写中的快取线平行使用的可存取缓冲区。为了能彻底地了解本发明,将在下列的描述中提出详尽的步骤及其组成。显然地,本发明的施行并未限定于快取线的技艺者所熟习的特殊细节。另一方面,众所周知的组成或步骤并未描述于细节中,以避免造成本发明不必要的限制。本发明的较佳实施例会详细描述如下,然而除了这些详细描述之外,本发明还可以广泛地施行在其它的实施例中,且本发明的范围不受限定,其以之后的专利范围为准。图6与图7是本发明的具体实施例所揭示的快取系统58、60的功能方块示意图。相对于图2的传统快取系统中,只包含一快取控制器与快取存储器,图6与图7另外加上了缓冲区系统66,将需要填入快取线的资料以平行的方式来储存。快取系统58、60包含一快取控制器62、快取存储器64与一缓冲区系统66。快取控制器62与处理器通讯,也透过内部总线与主存储器通讯。除了以快取控制器62控制资料传输到相关的快取存储器64外,它也控制了资料传输到相关的缓冲区系统66。图6的快取系统58不同于图7的快取系统60之处在于,其中快取控制器62是通讯于快取存储器64及缓冲区系统66。在图6中,快取控制器62经由个别的通讯路径与这些组件通讯。在图7中,快取控制器62经由一共享总线67与这些组件通讯。在这两个实施例中,当快取存储器64中的存取要求命中时,快取控制器62可以用典型的方式将资料写入快取存储器64中,并且从快取存储器64中读出资料。然而,在快取存储器64中,正在填写的快取线所被填入的资料也同样地会被快取控制器62写入缓冲区系统66中。如果快取控制器62判断出资料是在快取存储器64内,却因为资料所在的快取线正处于被填写的程序,而使得资料无法被存取时,快取控制器将会去存取在缓冲区系统66中的复本资料,缓冲区系统66成了正在填写的快取线的可存取储存单位。当处理器所要求写入的快取位置,命中于正在填写的快取线时,快取控制器62将资料写入缓冲区系统66,并在快取线完成填写的后,让资料写入快取存储器64。因此,伴随着将写入缓冲区系统66的资料更新,当处理器在快取线填写完成前对该位置有后续的读取请求时,快取控制器62将会由缓冲区系统66将指定的值读出。当相同资料被填入快取线时,缓冲区系统66将资料储存于可存取的缓存器中。由储存资料的复本于缓冲区缓存器,可以在不中断正在填写的快取线或造成不想要的处理器等待时间的情形下,让资料从缓冲区系统66存取。由于缓冲区系统66储存着资料的一份复本,该资料正要被填写至快取线,因此该资料实际上会有三份复本,分别为储存在主存储器的资料、被填入快取线的资料、以及储存于缓冲区系统66中的资料。由于正在填写的快取线内的资料并非随时可以被存取,如先前所解释,当快取线进行填写程序时,这些具体实施例的缓冲区系统66能够在较快的处理器速度下被存取。因此,为了读取正在填写的快取线内的资料,这些具体实施例许可对缓冲区内的相同资料进行存取,以释放处理器来进行其下一个指令,使得处理器的运作速度能够增加。图8是图6与图7的缓冲区系统66的一具体实施例的区块示意图。在此具体实施例中,缓冲区系统66包含一写入控制模组68、一缓冲区命中侦测模组70、一缓冲区位置验证模组72、一快取线填写缓冲区74、与一多任务器模组76。缓冲区系统66的多任务器76的设计,可以用多个多任务器的集合来取代,用以从快取线填写缓冲区74中选出所想要的资料值。写入控制模组68包含能够对输入信号译码并提供指定的响应的任何合适的逻辑组件的组合。并且,在另一具体实施例中,缓冲区系统66的组件68、70与72可以成为快取控制器62的一部份。在图8及后面几个图标所示的具体实施例中,缓冲区系统66被设计来与快取存储器64平行运作,快取存储器64所包含的快取线为一字节宽度并且是四个纪录项目深(one-bytewideandfourentriesdeep)。然而,缓冲区系统66在设计上可以与任何宽度及任何纪录项目数量的快取存储器来运作,熟悉相关技术者可轻易推知缓冲区系统66与任意大小的快取存储器的应用并不受限于本具体实施例所示。写入控制模组68被配置来接收一“处理器读取(processor_read)”信号与一“处理器写入(processor_write)”信号,其分别经由线路78与线路80。这些信号是由处理器送出,用以代表一读取要求与一写入要求。并且缓冲区系统66从处理器接收一“地址”信号82,该“地址”信号82是对应于被要求的资料位于主存储器或快取存储器64中的地址。地址信号82其具有数个位n,较低(leastsignificant)的第0与第1两个位(address[10])为经由线路84写入控制模组68的输入,并且较低的第3至第n位(address[n2])为经由线路86写入缓冲区命中侦测模组70的输入。缓冲区命中侦测模组70被进一步配置来接收一个来自线路88的“开始填写(begin_fill)”位与一个来自线路90的“验证快取线(validate_cache线路)”位。开始填写位表示快取线填写程序的开始,并且会一直维持在高电位,直到快取线的填写被完成。验证快取线位表示快取线是否已经完整地被填写完成。如果为是,验证快取线位以高电位来代表快取线为有效。如果快取线一直在被填写的程序中,则验证快取线位会以低电位来表示快取线还不是有效。基于被要求的快取线是否被表示为有效,快取控制器62可以查看在快取线内的资料是否可以被存取。当一要求命中于正在填写的快取线,而使得该要求也因此命中于快取线填写缓冲区74时,缓冲区命中侦测模组70由线路96输出一“缓冲区命中(buffer_hit)”位至写入控制模组68来表示该要求命中于快取线填写缓冲区74。来自线路90的验证快取线位也被输入至缓冲区位置验证模组72,表示正在填入的地址线的有效性,验证快取线位同时也表示快取线填写缓冲区的有效与否,这是因为当正在填写的快取线本身不为有效时,快取线填写缓冲区74在快取线填写程序的期间为有效。因此,快取线或快取线填写缓冲区74两者中会有一个为有效,但不会同时为有效,快取线是在完整填写后被表示为有效,而快取线填写缓冲区是于快取线填写期间为有效。一个高电位的验证快取线位因此能够被用来当作一个重置信号,使得快取线填写缓冲区失效(invalidate)。另外,缓冲区位置验证模组72被配置来由线路94接收一“填写快取写入(fill_cache_write)”位与一两位的“快取阵列地址(cache_array_address)[10]”信号。缓冲区位置验证模组72由线路98输出四个“验证偏移量(validate_offset)”位与由线路100输出四个“偏移量有效(offset_valid)”位至写入控制模组68,更多细节如下所述。在处理器读取要求命中于快取线填写缓冲区74的时候,写入控制模组68由线路102输出一“处理器读取缓冲区命中(processor_read_buffer_hit)”位来表示。并且,写入控制模组68由线路104输出四个“处理器写入偏移量(processor_write_offset)”位与由线路106输出四个“缓存器写入偏移量(register_offset_write)”位至快取线填写缓冲区74,这些信号的更多细节如下所述。除了线路104与106的信号,快取线填写缓冲区74还从线路108接收一个8位的“填写写入资料(fill_write_data)[70]”信号以及由线路110接收一个8位的“处理器写入资料(processor_write_data)[70]”信号。快取线填写缓冲区74由线路112输出四个8位“缓存器偏移量(register_offset)[70]”信号至多任务器76,多任务器76并且线路84接收处理器地址[10]信号。多任务器76包含四个用来由线路112接收信号的输入00、01、10、与11以及一个由线路84接收处理器地址[10]的选择输入(selectioninput)。多任务器76由位于缓冲区系统66的输出的线路114输出一缓冲区读取资料[70]信号,来表示处理器所要求的资料,该资料对处理器而言可能还是未知,尚储存于快取线填写缓冲区中74。图9是图8所示的缓冲区命中侦测模组70的一具体实施例。缓冲区侦测模组70会侦测哪一个快取线正在被填写并且判断出是否有针对这个正在被填写的快取线的要求,在这情形下该要求会命中于快取线填写缓冲区74。缓冲器命中侦测模组70在本具体实施例中包含第一正反器(flip-flop)116、一第二正反器118与一比较器120。在一具体实施例中,第一正反器116可以包含一D型正反器或其它相匹配的正反器电路。第二正反器118可以是包含一设定-重置正反器、D型正反器或其它相匹配的正反器电路。然而,熟悉相关技术者可轻易推知,缓冲区命中侦测模组70可以是被配置来使用其它逻辑电路组件,以进行相关的功能。如上述,缓冲区命中侦测模组70分别由线路86、88与90接收地址[n2]、开始填入、与验证快取线信号。并且当一要求是针对正在填写的快取线时,缓冲区命中侦测模组70由线路96供应缓冲区命中位至写入控制模组68,因此激活(active)本发明所揭示的缓冲区系统66。当线路88上的开始填写位为高电位时,代表快取线已经开始填写,并且验证快取线位为低电位,其代表第一,快取线正处于填写的程序中,并且不为有效;第二,快取线填写缓冲区74为激活(active),则正反器118的输出将为高电位。此时,可推知快取线正在填写并尚未完成,因此代表快取线填写缓冲区74为有效。线路88的高电位的开始填写位提供时脉(clocks)给正反器116,以输出地址[n2]信号给比较器120。比较器120会侦测出何时上方信号(topsignals)等于下方信号(bottomsignals),并且在侦测出的当时由线路96输出一高电位的缓冲区命中信号,以表示有一个存取资料的要求命中于正在填写的快取线,而实际上的存取是来自于快取线填写缓冲区74。该缓冲区命中位被送至写入控制模组68以进一步做下述的处理。图10是图8所示的缓冲区位置验证模组72的一具体实施例。缓冲区位置验证模组72判断正在填写的快取线的哪一个位置(地址)是正处于被填写的程序中,以及哪些位置已经被填写完毕。如上述,在正在填写的快取线上的这些位置对应着快取线填写缓冲区74的相关位置(缓存器)。在下面的描述中会更清楚的说明,在快取线填写缓冲区74中一个被填写的位置为一个有效位置。本具体实施例的缓冲区位置验证模组72包含一验证信号产生模组(validationsignalgeneratingmodule)122与四个正反器126-0、126-1、126-2与126-3。在其它具体实施例中,缓冲区位置验证模组72可以被设计成为包含许多逻辑为及/或(and/or)的分布式组件的组合,以实质地执行在此所述及的相似功能。正反器126实质上是当作设定-重置(set-reset)正反器来运作,例如,可以包含数个D型正反器与相配合的逻辑电路组件。可推知正反器126的数目与快取线中的项目(entries)数量相关,其中每一个正反器126对应至快取线内的一个记录项目,用来表示该记录项目正在被填写或已经被填写。并且,验证信号产生模组122包含用来译码在线路92与94上的输入信号与用来由线路124提供相对响应的逻辑电路组件的组合。在缓冲区位置验证模组72的运作期间,线路90上的验证快取线信号将会变成低电位,代表快取线仍在填写中并且不为有效。此时,对正在填写的快取线的存取要求会命中于快取线填写缓冲区74。当快取线被完整地填写后,并且验证快取线信号成为高电位,表示快取线为有效时,正反器126会被重置,并且线路100的所有输出会变为低电位,表示快取线填写缓冲区中没有任何位置为有效。然而,在此时对快取线的存取要求会命中于被完整填写的快取线,因此不再需要快取线填写缓冲区74。快取线填写缓冲区将因此被标示(flagged)对这个被完整填写的快取线无效(invalid),并且可以被平行使用于其它被填写的快取线。验证信号产生模组122由线路92接收填写快取写入信号与由线路94接收2位地址[10]。这些被接收的信号是来自快取控制器62,其表示被要求的资料目前正在填写于快取线中相对应于地址[10]的位置,在这个例子中,记录项目共有四个,因此需要2位来寻址这四个可能的缓存器,这四个缓存器被当作快取线中的四个记录项目。这个地址可以被用来指定一偏移量,用来表示是在快取线填入缓冲区74中的哪一个缓存器。例如,在本具体实施例中,偏移量被用来表示四个缓存器中的某一个,以代表是在快取线填写例行程序(cache线路fillingroutine)中的哪一个阶段。验证信号产生模组122由线路124-0、124-1、124-2与124-3输出验证偏移量位至个别正反器126的“设定”输入。这些位也由线路98传输至写入控制模组68。验证偏移量位所表示的是快取线填写缓冲区74中的哪一个缓存器与快取阵列的快取线内所相对应的记录项目。该记录项目目前正处于被填写的程序中。一验证偏移量0(validate_offset_0)位是由线路124-0送至正反器126-0,以表示在快取线填写缓冲区74中的0偏移量缓存器被填写且被验证,一验证偏移量1(validate_offset_1)位由线路124-1送至正反器126-1,一验证偏移量2(validate_offset_2)位由线路124-2送至正反器126-2,以其,一验证偏移量3(validate_offset_3)位由线路124-3送至正反器126-3。验证信号产生模组122输出这些验证偏移量位是根据下列真值表(truthtable)。正反器126是伴随相关的验证偏移量位来设定,并且可以被线路90的验证快取线位重置。正反器126的输出在此被当作偏移量有效(offset_valid)位,由线路100送至图8所示的写入控制模组68。当线路124的一验证偏移量位被接收时,相对应的正反器126所输出的信号会被设为高电位,表示在快取线填写缓冲区74内相对应的缓存器已经被填写且为有效,该信号会一直被维持在高电位直到正反器126被线路90的重置信号所重置。相对地,在先前技术中很少去判断快取线的记录项目是否为有效,而这些偏移量有效位所代表的是快取线填写缓冲区中哪些记录项目为有效。“偏移量”一词在此意指快取填写缓冲区74中的缓存器位置,其中0偏移量意指缓存器位置在主计忆体中的实际地址。例如,如果地址200被要求,则对应到地址200的缓存器具有“0”偏移量,对应到地址201的缓存器具有一个“1”的偏移量,对应到地址202的缓存器具有一个“2”的偏移量,以及对应到地址203的缓存器具有一个“3”的偏移量。因此,一线路100上一个或多个高电位的偏移量有效位被用来当作旗标,来表示在快取线填写缓冲区74内相对应的偏移量的缓存器为有效。对应每一个缓存器的偏移量有效位有着另一种用法,便是将快取存储器64将快取线中的每一个记录项目都对应一个有效位的方式来配置。然而,由于快取线64可能有大约1024个快取线,有效位的数量将会非常地大。假设有1024个快取线,并且每一个快取线包含8个记录项目,则需要8192个有效位以表示快取中每一个记录项目的有效性。当然,快取存储器的大小越大,需要的记录项目有效位就越多。虽然这种实施方式是可行的,在上述具有1024个8记录项目快取线的快取存储器,所需要的快取线填写缓冲区只需要1032个有效位,使得正在填写的快取线的8个记录项目中,每一个记录项目都有一个有效位对应,并且每一个已填写验证的快取线(already-filledvalidatedcache线路)都对应一个有效位,已填写验证的快取线为那些不处于填写程序中的快取线。因此,这个另外的具体实施例也可以是做为图6与图7的具体实施例所包含的缓冲区系统66。再度参考图8,其中的写入控制模组68会由线路104输出处理器写入偏移量,做为对线路100的偏移量有效位与其它上述信号的响应。处理器写入偏移量位被转给快取线填写缓冲区74,以协调出每一个来源(source)提供资料给快取线填写缓冲区74的时序。输入信号被写入控制模组68所译码,以根据下列真值表提供处理器写入偏移量参照图8,写入控制模组68由线路102提供一处理器读取缓冲区命中信号,其被回馈给快取控制器62,用来表示快取线填写缓冲区74目前是否包含处理器所要求的读取资料。处理器读取缓冲区命中信号是根据下列真值表来判断图11是图8所示的快取线填写缓冲区74的一具体实施例,其中快取线填写缓冲区74包含缓冲区或缓存器,用来和正在填写的快取线平行储存相同的资料。在本具体实施例中,快取线填写缓冲区74包含四个多任务器128-0、128-1、128-2与128-3以及四个缓存器130-0、130-1、130-2与130-3。两者中所包含的数量4是相应于快取线中的记录项目,例如四个,其中每一个缓存器130被配置来储存一个字节,该字节代表快取线的宽度。可推知如果快取存储器被设计成具有更多的记录项目时,多任务器与缓存器的数量可同时变成比四个更多或是更少。并且如果快取线具有不是一个字节(8个位)的宽度时,快取线填写缓冲区74的多任务器与缓存器能够被配置来处理更多的记录项目数量。每一个多任务器128由线路108在“0”输入接收8位的填写写入资料信号,该信号是在一读取要求期间中由主存储器填写至一快取线的资料。并且每一个多任务器128由线路110在其“1”输入接收8位的处理器写入资料信号,该信号是在一写入要求期间,处理器内要写入主存储器的资料。多任务器128的选择输入是连接于线路104,其带着上述的真值表内的处理器写入偏移量信号,由这些信号来选择被储存于快取线填写缓冲区74的资料是来自主存储器,还是来自处理器。由每一个多任务器所挑选出的输出是被提供给对应的缓存器130,在此以D型正反器来表示。缓存器130并且由线路106在其时脉输入(clockinput)接收了缓存器偏移量写入位,缓存器偏移量写入位是由写入控制模组68根据图12所示逻辑电路所输出,其中验证偏移量位与处理器写入偏移量位联集(ORed)。来自缓存器130的输出是被提供来当作8位的缓存器偏移量信号,该信号是由线路112送至图8所示的多任务器76。缓存器偏移量信号所呈现的是储存在缓存器130中的实际资料,并且相对于正在填写的快取线,该信号所呈现的也是要被写入该快取线的资料。图13是一流程图131,其示意了在图6与图7的快取系统的运作实例。流程图131开始于决策功能区块132,其判断是否有命中于快取存储器的资料要求。如果有,则处理流程前进至决策功能区块136,其判断该要求是一读取,还是一写入。如果是一读取要求,流程前进至功能方块138,在功能方块138处理器是由快取存储器来读取并且被允许继续下一个指令。如果是一写入要求,流程前进至功能区块140,处理器写入快取存储器并继续其它指令。如果在功能区块132中判断出的决策为快取错失,则流程前进至决策功能区块142,其判断是否该要求命中于正在填写的快取线。如果没有,流程前进至功能区块144,如果是,则流程前进至决策功能区块146。由于在功能区块144中,该要求并未命中于快取存储器或正在填写的快取线,一旦快取线填写程序开始,处理器会被暂停。相对于图5,功能区块144不单单开始填写新的快取线,也平行地开始将相同的资料填写至快取线填写缓冲区。当被要求的位置为于被填写的快取线,流程前进至功能区块150。在功能区块150中,该要求会被判断出是读取还是写入。如果是一个读取命令,流程前进至功能区块152,被读取的资料可以立即回馈,不致有任何延迟,并且处理器可以继续其它运作。如果在功能区块150的要求被判断为一写入,则流程前进至功能区块154,快取控制器将资料一起写入快取存储器与快取填写缓冲区。决策功能方块146会判断在正在填写的快取线中,该存取要求所针对的位置是否已经被填入。如果没有,流程前进至功能区块148,并且如果为是,则流程前进至决策功能区块150。在功能区块148中,当该要求命中于正在填写的快取线,而所针对的位置尚未被填写时,快取线与快取线填写缓冲区继续填入,而处理器被暂停。此时流程前进至功能区块150。并且在功能区块154中,处理器继续运作,使其可以在必要的情形下做出另外一个要求,即使这个要求所要存取的资料位于只有部份填写的快取线中,且该资料已被记录在快取线填写缓冲区内,甚至是去读取前一个写入要求期间填写于快取填写缓冲区的资料。从图13可以看到,处理器被没有被要求需要经历传统系统那样长的等待时间,相反地,由运用本发明的快取系统58、60,以一个可存取的快取线填写缓冲区来记录与正在填写的快取线相同的资料,使得处理器在读取或写入要求的期间,能够存取在部份填写的快取线内的资料,处理器的效能可因此被改善。在此所述的存取,并非由正在填写的快取线来处理,而是由快取线填写缓冲区来处理,该快取线填写缓冲的存取可以与快取本身一样快,使得处理器的存取速度能够因此加快。显然地,依照上面实施例中的描述,本发明可能有许多的修正与差异。因此需要在其附加的权利要求项的范围内加以理解,除了上述详细的描述外,本发明还可以广泛地在其它的实施例中施行。上述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在下述申请专利范围内。权利要求1.一种快取系统,其特征在于,包含一快取控制器,该快取控制器与一处理器通讯;一快取存储器,该快取存储器与该快取控制器通讯,该快取存储器包含复数个用来储存资料的快取线,每一个快取线具有复数个记录项目;一缓冲区系统,该缓冲区系统与该快取控制器通讯,该缓冲区系统包含复数个缓存器,每一个缓存器对应于一个正在填写的快取线内的一个记录项目,要填入该正在填写的快取线内一个该记录项目的相同资料亦储存于对应该记录项目的该缓存器;其中该快取控制器是被配置来储存与该正在填写的快取线及该缓冲区系统的该缓存器相同的资料;以及其中该缓冲区系统的该缓存器中的资料在一快取线填写程序的期间能够被存取。2.根据权利要求1项所述的快取系统,其特征在于,其中上述的缓冲区系统的配置为每一个缓存器的宽度与该快取线记录项目的宽度相同。3.根据权利要求1项所述的快取系统,其特征在于,其中上述的缓冲区系统的配置为该缓存器的数量等于一个该快取线内记录项目的数量。4.一种用于快取系统的缓冲区系统,其特征在于,包含一快取线填写缓冲区,该快取线填写缓冲区是用来储存要被写入该快取系统的一快取线的资料;一控制装置,是用来控制资料写入该快取线填写缓冲区;一验证装置,是用来验证该快取线填写缓冲区内位置;以及一侦测装置,是用来侦测该快取线填写缓冲区的一存取命中。5.根据权利要求4项所述的用于快取系统的缓冲区系统,其特征在于,其中上述的控制装置判断被储存于该快取线填写缓冲区的资料是从一处理器接收,或是从主存储器接收,该判断是根据该验证装置在该快取线填写缓冲区内对该位置所建立的验证。6.根据权利要求5项所述的用于快取系统的缓冲区系统,其特征在于,其中上述的验证装置对该控制装置提供复数个验证位,来表示该快取线填写缓冲区的复数个缓存器中目前哪一个被填写。7.根据权利要求6项所述的用于快取系统的缓冲区系统,其特征在于,其中上述的验证装置提供偏移量有效位给该控制装置,用以表示哪些缓存器已被填写且为有效。8.根据权利要求4项所述的用于快取系统的缓冲区系统,其特征在于,其中上述的快取线填写缓冲区、该控制装置、该验证装置、与该侦测装置包含逻辑电路组件。9.一种与快取存储器平行使用的缓冲区系统,其特征在于,该缓冲区系统包含复数个缓存器,每一个缓存器是对应于一快取线的一记录项目,该快取线是正处于被填写的程序,每一个个别的该缓存器所储存的资料与该正在填写的快取线内相对应的该记录项目所储存的资料相同;其中该复数个缓存器内的资料在该正在填写的快取线不为有效时能够被存取。10.根据权利要求9项所述的与快取存储器平行使用的缓冲区系统,其特征在于,其中上述的复数个缓存器在整个快取线被填写并为有效时由一重置位来使其变为失效。11.根据权利要求9项所述的与快取存储器平行使用的缓冲区系统,其特征在于,其中上述的每一个缓存器是根据该缓存器的有效性从一处理器或主存储器两者之一接收写入资料。12.根据权利要求11项所述的与快取存储器平行使用的缓冲区系统,其特征在于,其中还包含复数个多任务器,每一个多任务器分别与一个该缓存器相对应,由相对应的该多任务器提供该写入资料给该缓存器。13.根据权利要求9项所述的与快取存储器平行使用的缓冲区系统,其特征在于,其中还包含至少一多任务器,该多任务器用来将储存于该复数个缓存器之一的资料提供给一快取控制器。14.一快取控制器,其特征在于,包含一写入装置,用来写入资料至一快取存储器的一快取线并将相同资料写于一平行缓冲区;一第一侦测装置,用来侦测一资料存取是否命中于该快取存储器;一第一存取装置,用来在一快取命中被侦测到时存取资料;以及一第二存取装置,用来在该资料存取要求命中于一快取线时存取在该平行缓冲区的资料,其中,该快取线正处于被填写程序中。15.根据权利要求14项所述的快取控制器,其特征在于,其中还包含一第二侦测装置,用来侦测该资料存取要求是否命中于该正在填写的快取线;以及一第三侦测装置,在该资料存取要求命中于该正在填写的缓冲区时,用来侦测该资料存取要求是否命中于一个已经被填写的位置。16.一种控制快取系统的方法,其特征在于,包含在一快取线开始一填写程序并将相同资料填写于一快取线填写缓冲区;侦测一资料存取要求是否命中于该快取系统的快取;当该资料存取要求没有命中于该快取时,侦测该资料存取要求是否命中于该正在填写的快取线;当该资料存取命中于该正在填写的快取线时,侦测该资料存取要求是否是针对该正在填写的快取线内已经填写的一位置;以及当该位置已经被填写时,由该快取线填写缓冲区存取资料。17.根据权利要求16项所述的控制快取系统的方法,其特征在于,其中当该资料存取要求没有命中于该正在填写的快取线时,完成该快取线的填写并且开始另一个新的快取线的填写程序,同时将相同资料写入该快取线填写缓冲区。18.根据权利要求16项所述的控制快取系统的方法,其特征在于,其中当该位置尚未被填写时,继续该正在填写的快取线与该快取线填写缓冲区的填写,直到该被要求的位置被填写为止。全文摘要一快取系统,用以连接一计算机系统的一处理器,以提升处理器的存取速度。该快取系统包含一与处理器及快取存储器通讯的快取控制器。该快取存储器包含多数个用来储存资料的快取线,每一快取线具有一预设数量的记录项目。该快取系统还包含一与该快取控制器通讯的缓冲区系统,该缓冲区系统包含复数个缓存器,每一个缓存器对应该正在填写的快取线中的一个记录项目。每一个别的缓存器所储存的资料与该正在填写的快取线中对应的记录项目被填入的资料相同,不同于储存于该可填写的快取线内的资料的是,储存于缓冲区系统的缓存器内的资料是可以在快取线填写的程序中被存取。文档编号G06F12/08GK1811734SQ200510131070公开日2006年8月2日申请日期2005年12月9日优先权日2004年12月10日发明者V·米勒威廉申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1