CN100495362C - 可锁定码的快取及其处理器、控制器与控制方法 - Google Patents

可锁定码的快取及其处理器、控制器与控制方法 Download PDF

Info

Publication number
CN100495362C
CN100495362C CNB2007101045052A CN200710104505A CN100495362C CN 100495362 C CN100495362 C CN 100495362C CN B2007101045052 A CNB2007101045052 A CN B2007101045052A CN 200710104505 A CN200710104505 A CN 200710104505A CN 100495362 C CN100495362 C CN 100495362C
Authority
CN
China
Prior art keywords
soon
passage
mentioned
getting
channel
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.)
Active
Application number
CNB2007101045052A
Other languages
English (en)
Other versions
CN101046775A (zh
Inventor
威廉V·米勒
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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN101046775A publication Critical patent/CN101046775A/zh
Application granted granted Critical
Publication of CN100495362C publication Critical patent/CN100495362C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例揭示一种于高速缓存锁定编码的系统与方法。实施例中,处理器(processor)包含有快取(cache)以及快取控制器(cachecontroller)。上述快取用于暂存主存储器中的编码的复本。同时,上述快取被分割成数个快取通道(cache way),每一快取通道是分割成数个快取通道部分(cache way portion)。上述快取控制器是利用第一信号以指定数个快取通道中的一快取通道为部分快取通道,以及第二信号用于定义上述部分快取通道中的哪些快取通道部分是要被锁定(lock)。

Description

可锁定码的快取及其处理器、控制器与控制方法
技术领域
本发明是有关于处理器,尤指一种高速缓存以及快取部分锁定的系统与方法。
背景技术
电路设计者致力于降低从存储器位置撷取储存的数据和指令所需的时间以增加处理器运作的速度。一种加速处理器存取码(code)的方法是利用高速缓存暂存处理器最近一次自主存储器读取的编码复本,由于软件程序习惯于做循环因而一再撷取存储器中相同的位置,因此在与处理器沟通的过程中,合并快取系统的部分形式可以加速撷取所需的码,当处理器要求的码存在于快取中,称为“快取寻到(cache hit)”,相对于要求的码不存在于快取中称为“快取失误(cache miss)”。“快取寻到”的码可以更快速地被撷取,如果发生快取失误,处理器则必须自主存储器读取码,而所需花费的时间为自高速缓存撷取码的上百倍。
快取是由快取控制器(cache controller)控制,包含有算法以决定储存哪些码。当新的码自主存储器被撷取并且分配于快取中时,配置算法决定哪一个已存在于快取中的码要被丢弃。上述配置算法是基于统计机率学的概念下,判断哪一个码最有可能将再一次被使用到。举例而言,“轮替(round-robin)”方法是基于已决定的次序简单地将下一个位置的码丢弃;而“最少使用(least recently used)”方法是持续追踪每一登录快取的快取线(cache line)并丢弃最旧的码,为较复杂的方法。
当处理器发出要求读取码时,快取控制器会比对上述要求的码的地址与快取中的地址,以确认上述码是否已存在于快取中。例如,4K字节快取的地址有32位,其中,20位(地址[31:12])是卷标位(tag bits)以及12位(地址[11:0])是偏移位(offset bits)。卷标位分别储存于卷标快取,并且识别主存储器的220快取线中哪些要被储存于给定的快取地址;12偏移位指出码将被储存在212字节快取中的哪个位置。
快取控制器依照快取的架构来使用偏移位,例如,“直接映像(directmap)”是快取的一种形式。有特定偏移位的编码被储存在快取中的唯一位置,例如,假设32字节快取线有地址范围自0000_0700(十六进制)至0000_071F(十六进制)储存于快取中偏移地址700至71F,且假设第二快取线有地址范围自1234_5700至1234_571F。上述第二快取线无法同时与第一快取线被储存,因为这两个快取线有相同的偏移地址700至71F。然而,因为编码编译的随机性质,这类的冲突很容易发生。
因为直接映像会伴随着这类的问题,发展出一种“集合关系型”的快取架构。例如,“双向”集合关系型快取是将整个快取分成两个相同大小的快取通道(cache ways)。额外的位用于指示要储存于两个快取通道中哪一个的特定快取线,其中上述额外位是取自于偏移地址中特定的位。算法可以用来编译这种额外位并且决定要储存在哪一个快取线,或者,卷标地址可以用来比较并检测上述快取线是被储存在第一或是第二快取通道。
快取可以被分为数个部分,例如,“四向”集合关系型快取有四个快取通道,以及八向集合关系型快取有八个快取通道。通过允许有相同偏移位的快取线能够同时储存于不同的快取通道中,可增加快取寻到的比率。直接映像的快取寻到的机率为65%,是合理的数值;而使用四向集合关系型快取,快取寻到的机率可以被提高至90%,随之增加处理器的撷取速度。因为编码地址通常倾向于有相同的偏移位,使用多通道的快取架构是比较好的。
另一种作法,快取被设计成各个快取线可被储存于快取中的任何地方,这种形式的快取称为完全集合关系型(fully set-associative)快取,亦或完全可撷取存储器(content accessible memory)或CAM。CAM需要大量的比较电路(comparators)与关联逻辑且最终会导致缓慢的撷取时间,四向与八向集合关系型快取只需要四个或八个比较电路,通常可提供较佳的撷取速度。
快取控制器的配置算法广被注意,不幸地,产业标准的配置算法存在限制,即是平均来说能提供较佳的性能,但可能无法每次都对系统的关键性工作提供最佳性能。处理器处理的其它工作在时间上可能并不紧急,但部分工作可能需要快速的处理,像是“实时”工作,因此,软件程序通常以紧急实时工作中断其它工作的方式写入,而后,一旦中断完成,上述软件程序可回归至正常工作并且继续做处理。
中断或是实时工作可能不会常常发生,当一旦发生时,却希望他们能够快速地被执行。举例来说,假设中断惯例程序因手机来电而产生铃声信号,虽然上述中断可能好几天才发生一次,但当发生时,因为它是实时事件,所以必须执行的够快。当电话来时,手机可能正在执行背景画面,但是铃声中断取得优先权,想要快速执行中断或是其它高优先权的码必须加载至快取中并且加以“锁定(lock)”,如此一来上述码将不会被丢弃。这种方法改善了中断的惯例程序,因为这种方法可以保证想要撷取的中断惯例程序将会在快取中被寻到并且快速地执行。一般的配置算法对于高优先权码的认知通常不够成熟,因此,软件程序专家必须认知码的哪些部分相较于其它部分具有较高的优先权,进而时时将上述部分码锁定在快取中以便可供随时使用。
另一种快取锁定用在使用频繁的工作。假设软件程序设计者意识到某特定的码段被执行的次数远远高于其它工作,为了最佳化快取寻到的比率,软件程序设计者可选择将上述使用频繁的码锁定于快取中。同时,根据编码和处理器的分析,由于使用频繁的码在短时间内一再被使用,因此可能被放置在最近使用分类中以免被丢弃。丢弃上述码并且立刻自主存储器撷取上述码将会浪费处理器的时间,因此,锁定上述码是有益的。
传统的处理器通过锁定整个快取通道来锁定功能性运算,虽然锁定改善了中断与频繁使用的码的执行性能,但撷取其余码的性能将会下降。假设4K四向快取的每一快取通道储存1K,以及600字节的中断惯例程序被锁定于快取中,在上述锁定的快取通道中有424个没有使用的字节被浪费了,软件程序设计者可以锁定其它编码,但是将会很难决定要在上述剩余的空间中放入哪些编码。另一方面,假设有64K字节的四向快取,每一快取通道为16K,如果一样锁定600字节于其中一个快取通道,将会有约15K字节被浪费。因为近来的趋势倾向于设计较大的快取,每个快取通道必然也较大,不必要的锁定浪费了快取通道的空间。因此,为了满足上述的不足和不适当,尽量减少快取通道空间的浪费在此产业中是必须的。
发明内容
有鉴于此,本发明提供一种锁定编码(例如数据或是指令)于快取中的系统与方法,同时,本发明所提出的处理器可以提供电路设计者描述锁定编码的特征,并且能节省快取空间。于一实施例中,本发明所提出的处理器包含有快取和快取控制器,上述快取可暂存存储器中的编码复本,且上述快取可分成多个快取通道(cache way),每个快取通道又可分成多个快取通道部分(cache way portion);上述快取控制器利用第一和第二信号来控制上述快取,其中,第一信号是指出哪一个快取通道为部分快取通道(partial cache way),而第二信号是定义部分快取通道中的哪些快取通道部分是被锁定。
此外,于另一实施例中,上述快取控制器控制快取中编码的配置,包含有暂存器以储存部分快取通道信号,上述部分快取通道信号指出哪一个快取通道为部分快取通道,其中,部分快取通道又分为多个快取通道部分;上述快取控制器也可包含另一暂存器以储存锁定部分信号(locked portionsignal),其中,上述锁定部分信号说明部分快取通道中的每一个快取通道部分为锁定或是没有锁定。
于另一实施例中,本发明揭示一种快取,包含有数个快取通道,每个快取通道可分为多个快取通道部分,所有快取通道中至少一个快取通道会被指定为部分快取通道,每一个快取通道部分有各自的地址,且部分快取通道中的每个快取通道部分会被标明是锁定或没有锁定。
再者,于另一实施例中,本发明揭示一种锁定编码于快取中的方法,上述方法包含自数个快取通道中指定一快取通道,有较低地址(lower address)的快取通道被定义为锁定,有较高地址(higher address)的快取通道则被定义为没有被锁定,而被指定的快取通道的每个部分会被标明是被锁定或是没有被锁定。
附图说明
图1为本发明实施例的计算机系统的方块图。
图2为本发明实施例于图2中上述快取系统的方块图。
图3为本发明实施例于图2中上述快取控制器的方块图。
图4A与4B为举例说明直接映像快取的图示。
图4C为图3中被锁定部分信号被加载至被锁定部分暂存器的图标。
图5A与5B为举例说明四向集合关系型快取的图标。
图5C为举例说明图3中部分快取通道信号被加载至上述部分快取通道暂存器的图标。
图5D为举例说明图3中被锁定部分信号被加载至被锁定部分暂存器的图标。
图6A与6B为举例说明八向集合关系型快取的图标。
图6C为举例说明图3中部分快取通道信号被加载至上述部分快取通道暂存器的图标。
图6D为例说明图3中被锁定部分信号被加载至被锁定部分暂存器的图标。
图7为本发明实施例的目前揭示的执行方法流程图。
具体实施方式
为让本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并配合所附图式,作详细说明如下:
实施例:
通常来说,快取系统可以根据其性能来分析,通过分析快取寻到的百分比与处理器的总计撷取时间,电路设计者可以根据这些信息来最佳化快取性能。本发明揭示一种和处理器合并的架构,上述架构能使电路设计者让快取使用的最佳化更佳,并且允许电路设计者锁定可能被使用到的码段以加快撷取速度。本发明提出一种系统与方法使设计者能锁定快取通道中单一部分,取代前案直接锁定整个快取通道的做法,对最佳化快取空间提供较佳的弹性。本发明所谓的快取空间举例来说可包含,程序编码、数据、或两者皆是,所谓的“码”是用于表现快取中任何可能的内容。本发明中,部分或完全锁定一快取部分可简单地被解释成没有被丢弃的数据的部分,上述的锁定没有必要防止快取锁定部分的单独更新。
由于较大快取通道的需求持续增加,提供有效率地使用较小部分的低集合关系型快取的系统和方法是需要的,像是四向或是八向集合关系型快取。本发明提出的系统允许电路设计者锁定低集合关系型快取的较小部分以避免浪费不必要的快取空间。本发明提出分割快取通道至较小部分的处理器,使电路设计者能锁定更精确的较小快取空间并且不会浪费大量剩余的快取空间。电路设计者可自行决定需要被锁定的高优先权码与使用频繁的码,而比较不重要的快取空间可以保留给这些码,接着加载并锁定这些编码至保留的快取空间,如此一来,剩余的较大快取部分可以作为正常快取位置。因此,可以快速地撷取高优先权编码与高使用频率编码,亦可以最佳化一般编码的快取寻到机率,因而增加处理器整体速度。
图1为本发明实施例计算机系统10的方块图,其中包含有处理器12、主存储器14与输入/输出(I/O)装置16,每个元件之间由内部总线18连接,如图2所示。处理器12包含快取系统20,快取系统20包含有快取控制器22与快取24。
快取24是第一阶层1(L1)快取,或称为主要快取。举例来说,其可包含有32K字节的同步随机撷取系统(SRAM),快取24用于暂时储存处理器12可能会再使用到的码的区域复本。主存储器14包含动态随机撷取存储器(DRAM),通常较SRAM便宜,但需要较多的撷取时间。因为自主存储器14撷取数据必须经过总线18,而速度受限于总线18的clock,因此,最好尽量使用快取24内的码。
快取24可以包含有集合关系型架构,或者换句话说,其包含有数个快取通道。快取24可为直接映像快取,映像快取没有如集合关系型架构的分割的快取通道,集合关系型架构的每一个快取通道储存有数个快取线,每一条快取线代表数个编码项目,其中每一个编码项目通常是1字节。于某些实施例中,每一条快取线可为32字节。根据本发明的揭示,快取24的每一快取通道是分割成数个快取通道部分,每一快取通道部分将会有数条快取线,每一快取通道部分被设计成有各自的地址,其可独自分别于其它的部分被寻址,同时,每一快取通道部分可以分别被指定为锁定或非锁定。
快取控制器22用以控制快取24相关的操作。当处理器12要求自主存储器14撷取数据或指令时,快取控制器22以快取24的快取线的地址确认要求的地址是否存在于快取24中,如果存在,则此撷取称为“快取寻到”,且数据可以立即自快取24中撷取。如果数据不在快取24中,则此结果称为“快取失误”,处理器12必须要求自主存储器14撷取数据并且储存数据的复本于快取24中,以供下次使用到上述笔数据的可能性。当码自主存储器14被读取,处理器12需要等待大约10到100时钟的周期。
举例来说,处理器12可被设计成用32位地址空间为主存储器14运作,对有4K字节的快取而言,前20位(位31到12)是卷标地址,并且被储存于标签快取,可以通过比较要求的卷标地址来确认上述要求的编码是否在快取中。后12位(位11到0)为“偏移位”,“偏移位”指出快取中上述编码被储存的位置,偏移位的12位中的位地址[4:0]是作为快取线偏移位,与同一个32字节快取线相关联。每一条快取线的大小是由快取线偏移位的长度决定,例如,使用12位的偏移位中的位地址[4:0]作为快取线偏移位,快取线的大小为25(32)字节,12位偏移位中的位地址[11:5]是定义为标签偏移位,与有相同卷标地址的快取线有关联。在直接映像快取中,快取项目将会基于后半段的12个位被储存在快取中唯一位置,因此,两个有相同的偏移的快取线将无法同时被储存在快取中。
快取控制器22使用快取配置算法来决定快取24中的哪个位置要被新接收的码取代。同时,快取配置算法决定哪些码要自快取24被丢弃,丢弃策略可包含轮替(round robin)技术、最不常使用(least recently used)技术或是其它合适的技术。
除了执行快取配置算法之外,快取控制器22也储存“部分快取通道”信号,此信号是指出全部快取通道中哪一个快取通道被部分锁定。此信号类似于前案用来判断哪一个快取通道被锁定的信号,不同的部分在于,本发明所揭示的部分快取通道信号可通过处理器12的进一步信息表明快取通道是完全被锁定、完全没有被锁定或是部分锁定,没有被部分快取通道信号指明为部分快取通道的快取通道则是完全被锁定或是完全没有被锁定,没有被锁定的快取通道即可供标准配置运用。
一个四向集合关系型快取有快取通道0到3,使用一个长度为2位的部分快取通道信号来定义锁定样式以及标明特定快取通道。数值为00的一部分快取通道信号代表(如果有锁定部分的话)锁定部分只会出现在第0个快取通道;数值01代表第0个快取通道被完全锁定,并且第1个快取通道可能有部分部分被锁定,而第2和第3快取通道没有被锁定且可供标准配置使用;数值10代表第0和第1快取通道被完全锁定且第2快取通道有可能有部分部分被锁定,第3快取通道则没有被锁定;数值11代表第0到2快取通道都被完全锁定,且第3快取通道可能被部分锁定。对一个八向快取而言,部分快取通道信号为3位,而十六向快取的部分快取通道信号则为4位,以此类推。
快取控制器22同时也储存“锁定部分信号”,锁定部分信号标明部分锁定快取通道的快取通道部分为锁定或是可供标准配置使用,锁定部分信号定义上述部分快取通道为完全锁定、完全没有锁定或是部分锁定。电路设计者可以建立任何合适的符号来表示被锁定和没有锁定的部分,锁定部分信号的每一位代表相对应的快取通道部分的锁定状态,“0”表示上述部分被锁定,而“1”则表示上述部分没有被锁定(或是开放可供标准配置使用)。举例来说,一个快取可能每个快取通道分成四个快取通道部分,快取通道部分的锁定状态由包含四位的锁定部分信号定义,例如,如果想锁定特定快取通道的第1、第3和第4部分,则锁定部分信号为0100;有八个快取通道部分的快取通道的锁定部分信号则有8位。先前所提的部分快取通道信号与锁定部分信号的结合可以提供电路设计者在锁定的快取空间利用上较前案有更好的解决方式,因此,较小的部分像是1K或2K字节的部分可以依照需要的时候被锁定。
经由处理器12的设计平台,允许电路设计者通过设定部分快取通道信号与锁定部分信号来建立高优先权编码所需的快取。这些信号可利用各种合适的方法加入快取控制器22,一旦加载高优先权码,部分快取通道信号与锁定部分信号将会被永久地设定,因此在处理器12做标准操作的期间,这些信号会保持固定。
图3为本发明实施例图2中快取控制器22的方块图,快取控制器包含有控制模块26、部分快取通道暂存器28与锁定部分暂存器30。快取控制器22控制快取24中的编码配置,控制模块26在处理器12设计期间中接收来自电路设计者的信号,信号所指出的快取通道和快取通道部分将会被锁定。控制模块26发出部分快取通道信号将会被写入快取通道暂存器28,上述的部分快取通道信号指定快取24中一快取通道为部分快取通道。上述部分快取通道又分成数个快取通道部分,响应电路设计者所给的信号。控制模块26发出锁定部分信号并且被写入锁定部分暂存器30,上述的锁定部分信号标明每个快取通道部分是否被锁定。
无论上述码所在的快取通道或是快取通道部分是否被锁定,控制模块26同时也控制快取通道中码的撷取。控制模块26也保证自主存储器14接收到的码不会取代已锁定的码而使已锁定的码被丢弃,自主存储器14接收到的码只会被放置快取24中到没有被锁定的部分。控制模块26包含配置编码以及丢弃旧的或是不需要码的配置算法,且更进一步设计成使程序能将被锁定的码加载到至少一个快取通道部分。控制模块26能分别根据储存于部分快取通道暂存器28的部分快取通道信号和储存于锁定部分暂存器30的锁定部分信号,使加载的码锁定在至少一个快取通道部分中。
图4A为直接映像快取的示意图。在本实施例中,是一个64K字节的快取。例如有地址偏移范围自0000(十六进制)至FFFF(十六进制),快取可以被分成数个部分,数量不限,如图4B所示。上述快取分成16个部分,每个部分为4K字节,编码地址中的四个位是用来确定是16个部分中的哪一个特定部分。因为直接映像快取没有快取通道,所以在此例中快取控制器22没有必要储存部分快取通道信号。但是,一个十六位的锁定部分信号仍是必须用来标明十六个部分中哪一个要被锁定,“0”代表锁定的部分,“1”代表没有被锁定的部分,如图4C图示。如果锁定部分信号为0011_1111_1111_1111,则第一和第二部分是要被锁定的,而剩余的十四个部分是没有被锁定的。在锁定这两个部分之前,电路设计者可加载8K字节的数据或指令到要被锁定的部分中,接着这16位的锁定部分信号会被加载到锁定部分暂存器30以便锁定这两个部分。
图5A为一个四向集合关系型快取的示意图。在本实施例中,上述快取总共有64K字节,而且这四个各有16K字节的快取通道均有14位的地址偏移,范围自0000至3FFF,每一快取通道可以被分成数个部分。在图5B图示中,每一个快取通道被分成8个快取通道部分,每一部分为2K字节。在这个四向快取结构中,编码地址中的0到10的位用来指出各自的快取通道地址的2K数据地址的偏移;3个位(地址[13:11])用来区别快取通道部分(如同图5B的快取通道部分左方所示);以及这两个最高位的位(地址[15:14])则是指明上述编码将被储存于四个快取通道中哪个快取通道。在本实施例中,快取控制器22储存一个长度为2位的部分快取通道信号以指明四个快取通道中的某一个为部分快取通道,此外,也储存一个八位的锁定部分信号以指明八快取通道部分中的哪些(如果有的话)是被锁定的。
例如,参考图5C与图5D图示,如果部分快取通道信号是01以及锁定部分信号是0101_1111,则快取通道0是完全被锁定与快取通道2和3是完全没有被锁定。在快取通道1中,第1和第3快取通道部分000和010是被0锁定,并且快取通道1中其余的六个快取通道部分(001、011、100、101、110与111)是没有被锁定。2位的部分快取通道信号被加载至部分快取通道暂存器28中(图5C),以及8位锁定部分信号是被加载锁定部分暂存器30(图5D)。
假设一快取包含有32K字节的四向集合关联架构,其中,每一快取通道被分成八个快取通道部分,每一快取通道为8K字节以及每一快取通道部分为1K字节。较低地址只需要15位来定义地址,10位(地址[9:0])定义1K部分快取通道的偏移;接下来的3位(地址[12:10])是定义各个快取通道的快取通道部分,最上面的两个位(地址[14:13])是用来定义四个快取通道。
假设一个四向集合关系型快取中的每一快取通道分为四个快取通道部分。如果想要锁定第一快取通道全部部分以及第二快取通道的第三个部分,则部分快取通道信号为01,并且四位的锁定部分信号为1101。另外一个例子,如果想要锁定第一快取通道的第一和第四部分,则部分快取通道信号为00且锁定部分信号为0110。
图6A为一个八向集合关系型快取示意图。此实施例中,上述快取总共64K字节,而且这八个有8K字节的快取通道有地址偏移自0000至1FFF,每一快取通道分为数个部分。如图6B图示,每一快取通道分成四个快取通道部分,每个部分为2K字节。在上述八向快取架构中,位0到10的位用来指出各自的快取通道地址的2K数据地址的偏移;2位(地址[12:11])定义快取通道部分;以及最高位中的三个位(地址[15:13])指出编码被储存在八个快取通道中的哪一个。快取控制器22储存一个长度为3位的部分快取通道信号以指定八个快取通道中哪一个为部分快取通道,同时也储存一个长度为4位的锁定部分信号以指定要锁定选取的快取通道的四个快取通道部分中的哪一个快取通道部分。
参考图6C与图6D,如果部分快取通道信号是001以及锁定部分信号是1101,则快取通道0是完全被锁定,而快取通道2到7则是完全没有被锁定。快取通道1中,只有快取通道部分10被锁定,其余的三个快取通道(00、01和11)部分则没有被锁定。3位的部分快取通道信号被加载至部分快取通道暂存器28中(图6C),以及4位锁定部分信号是被加载锁定部分暂存器30(图6D)。
本发明描述了四向与八向集合关系型快取的范例,虽然在本发明中四向与八向快取为较佳实施例,但是要注意的是,快取24可以按照电路设计者的希望分割成任何合适数目的快取通道。同时,在此以分割成四个或八个快取通道部分的快取通道为范例,虽然这也是较佳实施例,但是仍要注意的是,快取通道可以按照电路设计者的希望分割成任何合适数目的快取通道部分。
本发明同时定义了锁定编码于快取中的方法,包含有自数个快取通道中指定一快取通道,其中,排序在上述快取通道之前的快取通道皆被完全锁定,排序在后的则完全没有被锁定,而被指定的快取通道则会被指定每个部分是被锁定或是没有被锁定。本方法的优点是提供简单且有效率的方式,通过锁定快取中较小的部分以减低快取空间的浪费。
图7为本发明锁定数据或码于快取中的方法的流程图。如方块32所示,上述方法包含自数个快取通道中指定一快取通道,在方块34中,地址比指定的快取通道低的快取通道被定义为锁定。在方块36中,地址比指定的快取通道高的则被定义为没有被锁定。被指定的快取通道则会被指定每个部分是被锁定或是没有被锁定,如方块38所示。
基于处理器对编码撷取的分析,电路设计者可选择依序锁定给定的码于快取中,以改善处理器的效能。根据分析,电路设计者可利用本发明所提出的锁定特征来描述要锁定的码,知道了要被锁定的码,设计者可将上述码载入至可用的快取通道部分并且输入部分快取通道信号和锁定部分信号的值以把码锁定于快取中。因此,借着减低空间浪费,较大的快取剩余空间可以使快取寻到机率提高,同时,借着将高优先权的编码锁定于快取中,上述编码可被快速地撷取以掌握实时或是频繁的使用。
于本发明的实施例中,还可以计算当发生快取遗失时的遗失数据长度,接着比较上述遗失数据和上述指定快取通道中被标明为非锁定部分的长度。当遗失数据的长度比上述指定快取通道中非锁定部分的长度较小或是相同,加载上述遗失数据至上述指定快取通道中被标明为非锁定的部分。当上述遗失数据的长度大于上述指定快取通道中非锁定部分的长度,加载上述遗失数据至上述非锁定的快取通道。
本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。

Claims (10)

1.一种可锁定码的快取系统的处理器,包含有:
快取,用于暂存主存储器中的码的复本,其中,上述快取是分割为多个快取通道,上述每一快取通道分割成多个快取通道部分;以及
快取控制器,用于控制上述快取,其中,上述快取控制器利用第一信号指定上述多个快取通道中的一快取通道为部分快取通道,以及利用第二信号指定哪些上述部分快取通道中的快取通道部分是被锁定的。
2.根据权利要求1所述的处理器,其中,上述快取控制器包含部分快取通道暂存器以储存上述第一信号作为部分快取通道信号,上述快取控制器包含锁定部分暂存器以储存上述第二信号作为锁定部分信号。
3.一种可锁定码的快取控制器,用以控制快取中码的配置,上述快取被分割成多个快取通道,上述快取控制器包含有:
部分快取通道暂存器,用以储存部分快取通道信号,上述部分快取通道信号是指定上述快取多个快取通道中的一快取通道作为部分快取通道,上述部分快取通道分成多个快取通道部分;以及
锁定部分暂存器,用以储存锁定部分信号,上述锁定部分信号是标明上述部分快取通道的每一快取通道部分是否被锁定。
4.根据权利要求3所述的快取控制器,包含控制模块,用以控制上进快取通道中上述码的配置以及控制那些没有被锁定的快取通道部分。
5.根据权利要求4所述的快取控制器,其中,上述控制模块使得码被加载到至少一快取通道部分,其中,上述控制模块使得上述加载的码被锁定在至少一快取通道部分,上述快取通道部分是对应上述部分快取通道信号与上述锁定部分信号。
6.一种可锁定码的快取,其包含有数个快取通道,其特征在于:
每一快取通道是分割成多个快取通道部分,上述多个快取通道中,至少一快取通道能被指定为部分快取通道;
每一快取通道部分是可被分别寻址的;以及
上述部分快取通道的每一快取通道部分是被标明为被锁定或是非锁定的。
7.根据权利要求6所述的快取,其中,相较于上述被指定的快取通道,有较低地址的快取通道被标明为锁定,相较于上述被指定的快取通道,有较高地址的快取通道则被标明为非锁定的。
8.一种高速缓存中锁定码的方法,包含有:
自多个快取通道中指定一快取通道,相较于上述被指定的快取通道,有较低地址的快取通道被标明为锁定,相较于上述被指定的快取通道,有较高地址的快取通道则被标明为非锁定的;以及
标明上述指定的快取通道中的数个部分为锁定的或是非锁定的。
9.根据权利要求8所述的方法,包含有:
当有上述快取通道被标明为锁定时,加载码至上述被定义为锁定的快取通道;
锁定上述被标明为锁定的快取通道;
当有上述被标明为锁定的部分时,载入码至上述被标明为锁定的部分;以及
锁定上述被标明为锁定的部分。
10.根据权利要求8所述的方法,包含有:
计算当发生快取遗失时的遗失数据长度;
比较上述遗失数据和上述指定快取通道中被标明为非锁定部分的长度;以及
当遗失数据的长度比上述指定快取通道中非锁定部分的长度较小或是相同时,加载上述遗失数据至上述指定快取通道中被标明为非锁定的部分。
CNB2007101045052A 2006-07-18 2007-05-25 可锁定码的快取及其处理器、控制器与控制方法 Active CN100495362C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US80765306P 2006-07-18 2006-07-18
US60/807,653 2006-07-18
US11/470,304 2006-09-06

Publications (2)

Publication Number Publication Date
CN101046775A CN101046775A (zh) 2007-10-03
CN100495362C true CN100495362C (zh) 2009-06-03

Family

ID=38771397

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101045052A Active CN100495362C (zh) 2006-07-18 2007-05-25 可锁定码的快取及其处理器、控制器与控制方法

Country Status (1)

Country Link
CN (1) CN100495362C (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697063B2 (en) * 2013-05-15 2017-07-04 Amazon Technologies, Inc. Allocating data based on hardware faults
US9898411B2 (en) 2014-12-14 2018-02-20 Via Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
WO2016097807A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Cache replacement policy that considers memory access type
US9811468B2 (en) 2014-12-14 2017-11-07 Via Alliance Semiconductor Co., Ltd. Set associative cache memory with heterogeneous replacement policy
EP3230874B1 (en) 2014-12-14 2021-04-28 VIA Alliance Semiconductor Co., Ltd. Fully associative cache memory budgeted by memory access type
KR101817847B1 (ko) 2014-12-14 2018-02-21 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 메모리 접근 타입에 기초한 통로에 의해 버짓화된 캐시 메모리

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
嵌入式处理器的Cache结构研究. 陈章龙.小型微型计算机系统,第25卷第7期. 2004
嵌入式处理器的Cache结构研究. 陈章龙.小型微型计算机系统,第25卷第7期. 2004 *

Also Published As

Publication number Publication date
CN101046775A (zh) 2007-10-03

Similar Documents

Publication Publication Date Title
US5274790A (en) Cache memory apparatus having a plurality of accessibility ports
CN100495362C (zh) 可锁定码的快取及其处理器、控制器与控制方法
CN102110058B (zh) 一种低缺失率、低缺失惩罚的缓存方法和装置
US7676632B2 (en) Partial cache way locking
US4964040A (en) Computer hardware executive
US7694077B2 (en) Multi-port integrated cache
CN102841865B (zh) 高性能缓存系统和方法
KR100813370B1 (ko) 캐시 메모리 및 그 제어방법
US5651135A (en) Multi-way set associative cache system in which the number of lines per set differs and loading depends on access frequency
US5535361A (en) Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment
US7836253B2 (en) Cache memory having pipeline structure and method for controlling the same
CN102870089A (zh) 将数据存储到虚拟高速存储系统中的系统和方法
CN100541452C (zh) 处理高速缓存未命中的方法和装置
CN1293776A (zh) 带任务切换的零开销计算机中断
MX2007008823A (es) Metodos y aparatos para administrar dinamicamente memoria en banco.
US7260674B2 (en) Programmable parallel lookup memory
US20080320240A1 (en) Method and arrangements for memory access
US6760810B2 (en) Data processor having instruction cache with low power consumption
US6345336B1 (en) Instruction cache memory includes a clock gate circuit for selectively supplying a clock signal to tag RAM to reduce power consumption
US20020161976A1 (en) Data processor
CN101313290B (zh) 对仅m×n位外围设备执行n位写入访问的系统和方法
CN115168248A (zh) 支持simt架构的高速缓冲存储器及相应处理器
US6785770B2 (en) Data processing apparatus with a cache memory and method of using such an apparatus
JPH03147038A (ja) キャッシュメモリ
WO2006027643A1 (en) A virtual address cache and method for sharing data stored in a virtual address cache

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