高速缓存装置与高速缓存数据存取方法

文档序号:6433817阅读:153来源:国知局
专利名称:高速缓存装置与高速缓存数据存取方法
技术领域
本发明关于一种高速缓存装置与高速缓存数据存取方法,特别是指一种在一高速缓存中锁定并存取一关键数据的装置与方法。
背景技术
现今一高速缓存(Cache Memory)已经被广泛应用于一处理单元(如一中央处理器(CPU))中,当该处理单元欲取得一目标数据时,若是该目标数据已存放于该高速缓存中,则可以有效提升该处理单元的存取效率。参阅图1,一处理单元11包括一处理器111与一高速缓存112。该处理器111由该高速缓存112中存取一目标数据,当该处理器111可以从该高速缓存112中取得该目标数据时,称之为快取命中(Cache hit),反之,若无法从该高速缓存112中取得该目标数据时,称之为快取漏失(Cachemiss);当发生快取漏失时,该高速缓存112会从一主存储器(Mainmemory) 12中取得该目标数据。在美国公告专利号7228386所提出的一现有技术(以下称为第一现有技术)中,其针对一对应多个存取路径(Way)的高速缓存,利用一路径开启缓存器(Way enableregister)以控制每一个存取路径的开启或关闭。举例来说,参阅图2,假设一高速缓存41具有分别对应索引SI S8的八个储存组,每一储存组具有分别对应四个存取路径Wl W4的四个储存组件,该四个存取路径Wl W4分别称为一第一存取路径Wl、一第二存取路径W2、一第三存取路径W3,及一第四存取路径W4。该路径开启缓存器42大小为四位,且每一位用以表示开启或关闭一相对应存取路径,也就是说,假设该路径开启缓存器42的值为1110,且第O至第3位分别对应到第一至第四存取路径Wl W4,第O位为O代表该第一存取路径Wl被关闭,因此不能再覆写其它数据在该第一存取路径Wl所对应的这些储存组件中。一般而言,这样的目的在于当有一关键数据(Critical data)被存放于该第一存取路径Wl所对应的一储存组件中时,且该关键数据是一使用频率较高的数据,为避免该关键数据被覆写造成下次需读取时,必须重新由该主存储器处取得,进而导致处理单元读取数据的效率下降,因而关闭该第一存取路径Wl的写入功能。然而,在该第一存取路径Wl所对应的这些储存组件中不一定全部都已存放关键数据,举例来说,如图2所示,假设索引S8所对应的该储存组中对应于该第一存取路径Wl的储存组件(以下以储存组件(Wl,S8)来表示,其余类推),以及储存组件(Wl,S7)、(Wl,S5)、(Wl, S4)、(Wl, S3)皆各自储存一关键数据,因为该路径开启缓存器42的第O位为0,因此,该第一存取路径Wl所对应的其它储存组件,如(W1,S6)、(Wl,S2)、(Wl,SI),无法再存放其它数据。换句话说,将造成该第一存取路径Wl的利用率下降形成浪费,同时,也可能会使得该高速缓存的快取命中率(Cache hit rate)下降,因此,该第一现有技术仍具有相当大的改善空间。此外,在美国公告专利号6047358所提出的另一现有技术(以下称为第二现有技术)中,其利用多个缓存器设定一锁定范围(Lock range)的大小(L0CK_SIZE)、该锁定范围的对应地址(LOCK_ADDRESS)等信息,进而于该高速缓存装置上设定出该锁定范围的空间以供储存锁定的数据使用。然而,该第二现有技术完成设定该锁定范围的空间之后,必需要执行一初始化程序(Initialization procedure)以锁定多个关键数据在其中;此外,若是这些关键数据的数据量大小大于该高速缓存装置时,该第二现有技术无法设定一大于该高速缓存装置的储存空间大小的锁定范围,因此,其仍然存在着许多问题仍待进一步改善。

发明内容
因此,本发明的目的之一即在提供一种可以解决上述问题的高速缓存数据存取方法。于是,本发明高速缓存数据存取方法适用于与一处理器及一主存储器电连接的高速缓存装置。该高速缓存装置包括具有多个储存组的一数据储存单元。每一储存组具有分别对应多个存取路径的多个储存组件。该高速缓存数据存取方法包含下列步骤接收由该处理器所传送的一目标地址;根据该目标地址判断该数据储存单元中是否存有一目标数据;接收该目标数据;根据该目标地址所对应的该储存组的这些储存组件是否被标示为有效的以及该目标地址是否介于一锁定范围来选取一牺牲路径;以及将该目标数据写入该牺牲路径中。而本发明的目的之二在于提供一种可以解决上述问题的高速缓存装置。于是,本发明高速缓存装置耦接一处理器及一主存储器,其包含一控制单元,用以界定在该主存储器中的一锁定范围;一数据储存单元,具有多个储存组,每一储存组具有分别对应多个存取路径的多个储存组件 '及一关键旗标单元,用于标示每一储存组件中的数据是否介于该锁定范围中;其中,该锁定范围大于该数据储存单元的大小。


图1是一现有技术的系统方块图;图2是该现有技术控制存取路径的示意图;图3是本发明的高速缓存装置的较佳实施例的系统方块图;图4是本发明的高速缓存装置的较佳实施例的一说明范例;图5是本发明的高速缓存数据存取方法的较佳实施例的流程图;图6是本发明的高速缓存数据存取方法的较佳实施例的牺牲路径选择程序的流程图;图7是本发明的高速缓存数据存取方法的较佳实施例的第一牺牲路径选择子程序的流程图;图8是本发明的高速缓存数据存取方法的较佳实施例的第二牺牲路径选择子程序的流程图;图9是本发明的高速缓存数据存取方法的较佳实施例的第三牺牲路径选择子程序的流程图;图10是本发明的高速缓存数据存取方法的较佳实施例的说明范例;图11是本发明的高速缓存数据存取方法的较佳实施例的说明范例(续);及图12是本发明的高速缓存数据存取方法的另一实施例。主要组件符号说明11 处理单元111处理器 112高速缓存12 主存储器41 高速缓存42 路径开启缓存器50 处理器51 主存储器502 510步骤514 516子步骤518步骤8 高速缓存数据存取方法81 88 步骤831 833子步骤71 73 子步骤711 713子步骤721 723子步骤731 735子步骤9 高速缓存装置91 有效旗标单元92 写回旗标单元93 取代优先权单元94 关键旗标单元95标签地址储存单元96 数据储存单元97控制单元971锁定范围起始位置缓存器972锁定范围结束位置缓存器973关键路径开启缓存器974控制器
具体实施例方式有关本发明的前述及其它技术内容、特点与功效,在以下配合参考附图的较佳实施例的详细说明中,将可清楚的呈现。高速缓存装置参阅图3,本发明高速缓存装置9的一较佳实施例,适用于与一处理器50及一主存储器51电连接,且接收一由该处理器50所传送的具有一标签(Tag)字段及一索引(Index)字段的目标地址,其包含一有效旗标单元91、一写回旗标单元92、一取代优先权单元93、一关键旗标单元94、一标签地址储存单元95、一数据储存单元96,及一控制单元97。该控制单元97包括一锁定范围起始地址缓存器(Lock range top register)971、一锁定范围结束地址缓存器(Lock range base register)972、一关键路径开启缓存器(Critical way enable register) 973,及一控制器 974。该锁定范围起始地址缓存器971与锁定范围结束地址缓存器972用以界定在该主存储器51中的一锁定范围,且与这些现有技术最大不同的是,该锁定范围可被设定成一大于该高速缓存装置9的储存空间的大小的范围。该关键路径开启缓存器973用以标示多个存取路径中的每一者是否为锁定的,也就是不能再覆写其它数据。在本实施例中,该数据储存单元96是一数据存储器(Data memory),其用以储存欲储存在该高速缓存装置9中的数据,该数据储存单元96具有多个储存组,且每一储存组具有分别对应这些存取路径的多个储存组件。该有效旗标单元91是一有效旗标内存(Valid bit memory),其每一位用以标示一相对应的储存组件中的数据是否为有效的,一般而言,其值为I时代表相对应的数据被标示为有效的,也即有被使用,而其值为O时则代表相对应的资料为无效的。该写回旗标单元92是一写回内存(Dirty bit memory),其每一位用以标示一相对应的储存组件中的数据是否为写回的,一般而言,其值为I时代表相对应的数据被标示为写回的,也就是须写回至主存储器51中,其值为O时则代表相对应的数据不须写回至主存储器51中。该取代优先权单元93是一最近最少使用内存(LRUmemory),用以标示每一储存组件中的数据的取代顺位,其根据一最近最少使用算法(LRUalgorithm)进行排序,也即,当有新的数据要储存时,被标示为第一顺位的数据将优先被取代。该关键旗标单元94是一关键旗标内存(Critical memory),其每一位用以表示一相对应之储存组件中的数据是否为关键的,一般而言,其值为I时代表相对应的数据被标示为关键的,也就是其为在锁定范围内的关键数据,其值为O时则代表相对应的数据为非关键数据。该标签地址储存单元95是一标签内存(Tag memory),其用以标示每一储存组件中的数据在该主存储器51中的地址。参阅图4,假设该数据储存单元96具有分别对应索引SI S16的十六个储存组,每一储存组具有分别对应四个存取路径Wl W4的四个储存组件,因此,该数据储存单元96具有4X16个储存组件。相似的,该有效旗标单元91、该写回旗标单元92、该取代优先权单元93、该关键旗标单元94与该标签地址储存单元95也各自具有分别对应该4X 16个储存组件的4X 16个储存空间,因此,该4X 16个储存空间也可通过索引SI S16及存取路径Wl W4来寻址。如上所述的高速缓存装置9,经适当组配后得以完成一高速缓存数据存取方法,现说明该高速缓存数据存取方法如下。高速缓存数据存取方法联合参阅图3与图5,本发明的高速缓存数据存取方法8的一较佳实施例,适用于上述高速缓存装置9,其包含下列步骤步骤81是该控制器974根据该目标地址及该关键旗标单元94,判断该数据储存单元96中是否存在一储存组件存有一目标数据,也就是判断是否快取命中,如果判断结果为是,则流程前进到步骤87,如果判断结果为否,则流程前进到步骤82。在本实施例中,该控制器974判断该关键旗标单元94对应于该目标地址的索引字段的这些储存空间所标示的地址中,是否存在一地址等于该目标地址的标签字段,如果是,表示与该地址所对应的该储存组件存有该目标数据。步骤82是该控制器974由该主存储器51读取该目标地址所对应的目标数据。在本实施例中,该控制器974是根据该目标地址的标签字段由该主存储器51读取该目标数据。步骤83是该控制器974执行一牺牲路径选择程序,以选择这些存取路径中的一者作为一牺牲路径。
步骤84是该控制器974将步骤82所读取的该目标数据写入该目标地址的索引字段所对应的该储存组中对应于该牺牲路径的一储存组件中。步骤85是该控制器974更新该取代优先权单元93,以将该目标地址的索引字段所对应的该储存组中对应于该牺牲路径的该储存组件的取代顺序后移。值得说明的是,在本实施例中,该取代优先权单元93是根据一最近最少使用算法进行排序的更新,且该最近最少使用算法为相关领域人士所熟知的技艺,因此在此不多作赘述,但在本发明中,该取代优先权单元93之排序更新方式并不以此为限。步骤86是该控制器974更新该有效旗标单元91及该写回旗标单元92,且在该目标地址的标签字段介于该锁定范围中时,更新该关键旗标单元94。流程结束。在本实施例中,更新该有效旗标单元91、该写回旗标单元92及该关键旗标单元94的方式是将该目标地址的索引字段所对应的该储存组中对应于该牺牲路径的该储存组件分别标示为有效的、写回的及关键的。步骤87是该控制器974由该数据储存单元96读取该目标地址所对应的该目标数据。步骤88是该控制器974更新该取代优先权单元93,以将该目标地址所对应的该储存组件的取代顺序后移。流程结束。需注意的是,在本实施例中,是先执行步骤82,之后才执行步骤83,但在其它实施例中,可以是先执行步骤83,之后才执行步骤82,但也可以是同时执行步骤82、83。值得一提的是,在该高速缓存数据存取方法中,最重要的是如何有效选择该牺牲路径以储存该目标数据,并进一步提升该高速缓存装置9的快取命中率,因此,在步骤83中如何选取该牺牲路径将至为关键,现说明如下。联合参阅图3与图6,该牺牲路径选择程序具有以下子步骤子步骤831是该控制器974根据该有效旗标单元91,判断该目标地址的索引字段所对应的该储存组的多个储存组件是否均被标示为有效的,如果判断结果为是,则流程前进到子步骤832,如果判断结果为否,则流程前进到子步骤73。子步骤832是该控制器974判断该目标地址的标签字段是否介于该锁定范围中,如果判断结果为是,则流程前进到子步骤71,如果判断结果为否,则流程前进到子步骤72。子步骤71是该控制器974执行一第一牺牲路径选择子程序,以选择该牺牲路径。接着流程前进到子步骤833。子步骤72是该控制器974执行一第二牺牲路径选择子程序,以选择该牺牲路径。接着流程前进到子步骤833。子步骤73是该控制器974执行一第三牺牲路径选择子程序,以选择该牺牲路径。该牺牲路径选择程序结束。子步骤833是该控制器974根据该写回旗标单元92,当该目标地址的索引字段所对应的该储存组中对应于该牺牲路径的该储存组件被标示为写回的时,将该储存组件中的数据写回至该主存储器51。该牺牲路径选择程序结束。联合参阅图3与图7,该第一牺牲路径选择子程序包括以下子步骤子步骤711是该控制器974根据该关键旗标单元94及该关键路径开启缓存器973,判断该目标地址的索引字段所对应的该储存组中对应于被标示为锁定的所有存取路径的所有储存组件是否均被标示为关键的,如果判断结果为是,则流程前进到子步骤712,如果判断结果为否,则流程前进到子步骤713。子步骤712是该控制器974选择这些存取路径中的一者作为该牺牲路径,该牺牲路径没被标示为锁定的。该第一牺牲路径选择子程序结束。在本实施例中,当这些存取路径中有多个存取路径可被选择作为该牺牲路径时,该控制器974会根据该取代优先权单元93进行选择。子步骤713是该控制器974选择这些存取路径中的一者作为该牺牲路径,该牺牲路径被标示为锁定的,且对应于该目标地址的索引字段所对应的该储存组中没被标示为关键的一储存组件。该第一牺牲路径选择子程序结束。联合参阅图3与图8,该第二牺牲路径选择子程序包括以下子步骤子步骤721是该控制器974根据该关键旗标单元94及该关键路径开启缓存器973,判断该目标地址的索引字段所对应的该储存组中对应于被标示为锁定的所有存取路径的所有储存组件是否均被标示为关键的,如果判断结果为是,则流程前进到子步骤722,如果判断结果为否,则流程前进到子步骤723。子步骤722是该控制器974选择这些存取路径中的一者作为该牺牲路径,该牺牲路径没被标示为锁定的。该第二牺牲路径选择子程序结束。子步骤723是该控制器974选择这些存取路径中的一者作为该牺牲路径,该牺牲路径对应于该目标地址的索引字段所对应的该储存组中没被标示为关键的一储存组件。该第二牺牲路径选择子程序结束。联合参阅图3与图9,该第三牺牲路径选择子程序包括以下子步骤子步骤731是该控制器974判断该目标地址的标签字段是否介于该锁定范围中,如果判断结果为是,则流程前进到子步骤732,如果判断结果为否,流程前进到子步骤735。子步骤732是该控制器974根据该关键旗标单元94及该关键路径开启缓存器973,判断该目标地址的索引字段所对应的该储存组中对应于被标示为锁定的所有存取路径的所有储存组件是否均被标示为关键的,如果判断结果为是,则流程前进到子步骤733,如果判断结果为否,流程前进到子步骤734。子步骤733是该控制器974选择这些存取路径中的一者作为该牺牲路径,该牺牲路径没被标示为锁定的,且对应于该目标地址的索引字段所对应的该储存组中没被标示为有效的一储存组件。该第三牺牲路径选择子程序结束。子步骤734是该控制器974选择这些存取路径中的一者作为该牺牲路径,该牺牲路径被标示为锁定的,且对应于该目标地址的索引字段所对应的该储存组中没被标示为有效的一储存组件。该第三牺牲路径选择子程序结束。子步骤735是该控制器974选择这些存取路径中的一者作为该牺牲路径,该牺牲路径对应于该目标地址的索引字段所对应的该储存组中没被标示为有效的一储存组件。该第三牺牲路径选择子程序结束。举例来说,联合参阅图3与图10,假设该控制器974根据该目标地址的索引字段,选取该数据储存单元96中相对应的一储存组(例如索引S15所对应的储存组),且假设该关键路径开启缓存器973中相对应的值为0011,代表存取路径Wl、W2被标示为锁定的,而存取路径W3、W4没被标示为锁定的,并假设该有效旗标单元91中相对应的值为0000,代表储存组件(wi,S15)、(W2,S15)、(W3,S15)、(W4,S15)没被标示为有效的,且该关键旗标单元94中相对应的值为0000,代表储存组件(Wl,S15)、(W2,S15)、(W3,S15)、(W4,S15)没被标示为关键的。假设现在要写入一组目标数据的顺序如下C1、NC1、NC2、NC3、NC4、C2、NC5、C3及NC6,其中,C代表该目标数据为一关键数据,而NC代表该目标数据为一非关键数据。当该控制器974要写入该目标数据Cl时,根据子步骤831 (见图6),由于储存组件(Wl, S15)、(W2,S15)、(W3,S15)、(W4,S15)并非全部被标示为有效的,因此流程前进到子步骤73 (见图6)。根据子步骤731 (见图9),由于该目标数据Cl是一关键数据(其目标地址的标签字段介于锁定范围中),因此流程前进到子步骤732 (见图9)。根据子步骤732,由于储存组件(Wl,S15)、(W2,S15)皆没被标示为关键的(其所储存的数据未介于锁定范围中),因此流程前进到子步骤734 (见图9)。根据子步骤734,由于存取路径Wl、W2被标示为锁定的,且储存组件(Wl,S15)、(W2,S15)皆没被标示为有效的,因此存取路径W1、W2中的任一者可被选择作为该牺牲路径,假设存取路径Wl被选择作为该牺牲路径。接着,根据步骤84(见图5),该目标数据Cl被写入储存组件(W1,S15)中,如图10(a)所示。接着,根据步骤86(见图5),储存组件(Wl,S15)被标示为有效的、关键的。当该控制器974要写入该目标数据NCl时,根据子步骤831 (见图6),由于储存组件(Wl,S15)、(W2,S15)、(W3,S15)、(W4,S15)并非全部被标示为有效的,因此流程前进到子步骤73 (见图6)。根据子步骤731 (见图9),由于该目标数据NCl是一非关键数据,因此流程前进到子步骤735 (见图9)。根据子步骤735,由于储存组件(W2,S15)、(W3,S15)、(W4,S15)没被标示为有效的,因此存取路径W2、W3、W4中的任一者可被选择作为该牺牲路径,假设存取路径W2被选择作为该牺牲路径。接着,根据步骤84 (见图5),该目标数据NCl被写入储存组件(W2,S15)中,如图10(b)所示。接着,根据步骤86(见图5),储存组件(W2,S15)被标示为有效的。相似于存放该目标数据NCl的过程,该目标数据NC2被写入储存组件(W3,S15)中,如图10(c)所示,且储存组件(W3,S15)被标示为有效的,该目标数据NC3被写入储存组件(W4,S15)中,如图10(c)所示,且储存组件(W4, S15)被标示为有效的。到目前为止,储存组件(Wl,S15)、(W2, S15)、(W3, S15)、(W4, S15)皆被标示为有效的。当该控制器974要写入该目标数据NC4时,根据子步骤831 (见图6),由于储存组件(Wl,S15)、(W2,S15)、(W3,S15)、(W4,S15)皆被标示为有效的,因此流程前进到子步骤832 (见图6)。根据子步骤832,由于该目标数据NC4是一非关键数据,因此流程前进到子步骤72 (见图6)。根据子步骤721 (见图8),由于储存组件(W1,S15)、(W2,S15)并非全部被标示为关键的,因此流程前进到子步骤723 (见图8)。根据子步骤723,由于储存组件(W2,S15)、(W3,S15)、(W4,S15)没被标示为关键的,因此存取路径W2、W3、W4中的任一者可被选择作为该牺牲路径,假设存取路径W2被选择作为该牺牲路径。接着,根据步骤84 (见图5),该目标数据NC4被写入储存组件(W2,S15)中,如图10(d)所示。接着,根据步骤86(见图5),储存组件(W2,S15)被标示为有效的。联合参阅图3与图11,当该控制器974要写入该目标数据C2时,根据子步骤
831(见图6),由于储存组件(ffl,S15)、(W2, S15)、(W3, S15)、(W4, S15)皆被标示为有效的,因此流程前进到子步骤832 (见图6)。根据子步骤832,由于该目标数据C2是一关键数据,因此流程前进到子步骤71 (见图6)。根据子步骤711 (见图7),由于储存组件(Wl,S15)、(W2,S15)并非全部被标示为关键的,因此流程前进到子步骤713(见图7)。根据子步骤713,由于存取路径W1、W2被标示为锁定的,储存组件(W2,S15)没被标示为关键的,因此存取路径W2可被选择作为该牺牲路径。接着,根据步骤84 (见图5),该目标数据C2被写入储存组件(W2,S15)中,如图11(a)所示。接着,根据步骤86(见图5),储存组件(W2,S15)被标示为有效的、关键的。到目前为止,储存单元(Wl,S15)、(W2,S15)皆被标示为关键的。当该控制器974要写入该目标数据NC5时,根据子步骤831 (见图6),由于储存组件(Wl,S15)、(W2,S15)、(W3,S15)、(W4,S15)皆被标示为有效的,因此流程前进到子步骤832 (见图6)。根据子步骤832,由于该目标数据NC5是一非关键数据,因此,流程前进到子步骤72 (见图6)。根据子步骤721(见图8),由于储存组件(W1,S15)、(W2,S15)皆被标示为关键的,因此流程前进到子步骤722 (见图8)。根据子步骤722,由于存取路径W3、W4没被标示为锁定的,因此存取路径W3、W4中的任一者可被选择作为该牺牲路径,假设存取路径W3被选择作为该牺牲路径。接着,根据步骤84 (见图5),该目标数据NC5被写入储存组件(W3,S15)中,如图11(b)所示。接着,根据步骤86(见图5),储存组件(W3,S15)被标示为有效的。当该控制器974要写入该目标数据C3时,根据子步骤831 (见图6),由于储存组件(Wl,S15)、(W2,S15)、(W3,S15)、(W4,S15)皆被标示为有效的,因此流程前进到子步骤832 (见图6)。根据子步骤832,由于该目标数据C3是一关键数据,因此流程前进到子步骤71 (见图6)。根据子步骤711 (见图7),由于储存组件(Wl,S15)、(W2,S15)皆被标示为关键的,因此流程前进到子步骤712 (见图7)。根据子步骤712,由于存取路径W3、W4没被标示为锁定的,因此存取路径W3、W4中的任一者可被选择作为该牺牲路径,假设存取路径W4被选择作为该牺牲路径。接着,根据步骤84(见图5),该目标数据C3被写入储存组件(W4,S15)中,如图11(c)所示。接着,根据步骤86(见图5),储存组件(W4,S15)被标示为有效的、关键的。当该控制器974要写入该目标数据NC6时,根据子步骤831 (见图6),由于储存组件(Wl,S15)、(W2,S15)、(W3,S15)、(W4,S15)皆被标示为有效的,因此流程前进到子步骤
832(见图6)。根据子步骤832,由于该目标数据NC6是一非关键数据,因此流程前进到子步骤72 (见图6)。根据子步骤721(见图8),由于储存组件(W1,S15)、(W2,S15)皆被标示为关键的,因此流程前进到子步骤722 (见图8)。根据子步骤722,由于存取路径W3、W4没被标示为锁定的,因此存取路径W3、W4中的任一者可被选择作为该牺牲路径,假设存取路径W3被选择作为该牺牲路径。接着,根据步骤84(见图5),该目标数据NC6被写入储存组件(W3, S15)中,如图11(d)所示。接着,根据步骤86 (见图5),储存组件(W3,S15)被标示为有效的。请参考图3与图12,其为根据本发明的另一实施例的一种高速缓存数据存取方法,其适用于与一处理器50及一主存储器51电连接的高速缓存装置9,该高速缓存装置9包括一控制单元97、一关键旗标单元94及具有多个储存组的一数据储存单元96,每一储存组具有分别对应多个存取路径的多个储存组件,该控制单元97用以界定在该主存储器中的一锁定范围,该关键旗标单元94用于标示每一储存组件中的数据是否介于该锁定范围中,该高速缓存数据存取方法包含下列步骤步骤502 :该控制单元97接收由该处理器50所传送的一目标地址;步骤504 :该控制单元97根据该目标地址判断该数据储存单元96中是否存有一目标数据;步骤506 :该控制单元97接收该目标数据;步骤508 :该控制单元97根据该目标地址所对应的该储存组的这些储存组件是否被标示为有效的以及该目标地址是否介于一锁定范围来选取一牺牲路径;以及步骤510 :该控制单元97将该目标数据写入该牺牲路径中。较佳地,该锁定范围大于该数据储存单元96的大小。较佳地,在步骤508中,该控制单元97还根据该目标地址所对应的该储存组中对应于被标示为锁定的存取路径的所有储存组件是否被标示为关键的来选取该牺牲路径。较佳地,步骤508包括以下子步骤子步骤514 :该控制单元97选择一被标示为锁定的存取路径作为该牺牲路径,其中,该存取路径对应于该目标地址所对应的该储存组中没被标示为关键的一储存组件。较佳地,步骤508包括以下子步骤子步骤516 :该控制单元97选择一被标示为锁定的存取路径作为该牺牲路径,其中该存取路径对应于该目标地址所对应的该储存组中没被标示为有效的一储存组件。较佳地,该高速缓存数据存取方法还包括以下步骤步骤518 :当该目标地址介于该锁定范围时,该控制单元97将该储存组件标示为关键的。综上所述,上述实施例利用该关键旗标单元94与该关键路径开启缓存器973配合,当该关键路径开启缓存器973锁定部分存取路径时,通过该关键旗标单元94的标示,仍可以对锁定存取路径内储存非关键数据或尚未使用的储存组件进行存取,因此,可以大幅改善如第一现有技术中因锁定部分存取路径以保留这些关键数据后其间剩余的储存组件皆无法再利用的问题,同时,上述实施例也可有效提升快取命中率;此外,由于没被锁定的存取路径内所储存的关键资料可被覆写,所以该锁定范围可以大于该高速缓存的储存空间的大小,避免如第二现有技术那样,当该锁定范围超出该外取内存的储存范围时,需重新设定这些相关缓存器,以及重设该锁定范围所造成使用上的困难,同时,上述实施例也不需要任何初始化程序,因此,可以有效提高使用效率。故确实能达成本发明的目的。以上所述者仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即但凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。
权利要求
1.一种高速缓存数据存取方法,适用于与一处理器及一主存储器电连接的一高速缓存装置,所述高速缓存装置包括具有多个储存组的一数据储存单元,每一储存组具有分别对应多个存取路径的多个储存组件,所述高速缓存数据存取方法包含下列步骤 接收由所述处理器所传送的一目标地址; 根据所述目标地址判断所述数据储存单元中是否存有一目标数据; 接收所述目标数据; 根据所述目标地址所对应的所述储存组的所述多个储存组件是否被标示为有效的以及所述目标地址是否介于一锁定范围来选取一牺牲路径;以及 将所述目标数据写入所述牺牲路径中。
2.根据权利要求1所述的高速缓存数据存取方法,其中,所述锁定范围大于所述数据储存单元的大小。
3.根据权利要求1所述的高速缓存数据存取方法,其中 还根据所述目标地址所对应的所述储存组中对应于被标示为锁定的存取路径的所有储存组件是否被标示为关键的来选取所述牺牲路径。
4.根据权利要求3所述的高速缓存数据存取方法,其中,选取所述牺牲路径的步骤包括以下子步骤 选择一被标示为锁定的存取路径作为所述牺牲路径,其中,所述存取路径对应于所述目标地址所对应的所述储存组中没被标示为关键的一储存组件。
5.根据权利要求4所述的高速缓存数据存取方法,还包括以下步骤 当所述目标地址介于所述锁定范围时,将所述储存组件标示为关键的。
6.根据权利要求3所述的高速缓存数据存取方法,其中,选取所述牺牲路径的步骤包括以下子步骤 选择一被标示为锁定的存取路径作为所述牺牲路径,其中,所述存取路径对应于所述目标地址所对应的所述储存组中没被标示为有效的一储存组件。
7.一种高速缓存装置,耦接一处理器及一主存储器,其包含 一控制单元,用以界定在所述主存储器中的一锁定范围; 一数据储存单元,具有多个储存组,每一储存组具有分别对应多个存取路径的多个储存组件 '及 一关键旗标单元,用于标示每一储存组件中的数据是否介于所述锁定范围中; 其中,所述锁定范围大于所述数据储存单元的大小。
8.根据权利要求7所述的高速缓存装置,其中,当所述控制单元接收由所述处理器所传送的一目标地址,且所述数据储存单元未储存有对应所述目标地址的一目标数据时,根据所述目标地址所对应的所述储存组的所述多个储存组件是否被标示为有效的以及所述目标地址是否介于所述锁定范围来从所述多个存取路径选取一牺牲路径,并将所述目标数据写入所述牺牲路径。
9.根据权利要求8所述的高速缓存装置,其中,所述控制单元还根据所述目标地址所对应的所述储存组中对应于被标示为锁定的存取路径的所有储存组件是否被标示为关键的来选取所述牺牲路径。
10.根据权利要求9所述的高速缓存装置,其中,所述控制单元选择一被标示为锁定的存取路径作为所述牺牲路径,所述存取路径对应于所述目标地址所对应的所述储存组中没被标示为关键的所述储存组件。
11.根据权利要求10所述的高速缓存装置,其中,当所述目标地址介于所述锁定范围时,所述控制单元将所述储存组件标示为关键的。
12.根据权利要求9所述的高速缓存装置,其中,所述控制单元选择一被标示为锁定的存取路径作为所述牺牲路径,其中,所述存取路径对应于所述目标地址所对应的所述储存组中没被标示为有效的所述储存组件。
全文摘要
本发明提供了高速缓存装置和高速缓存数据存取方法,该高速缓存数据存取方法适用于与一处理器及一主存储器电连接的高速缓存装置,该高速缓存装置包括具有多个储存组的一数据储存单元,每一储存组具有分别对应多个存取路径的多个储存组件,该高速缓存数据存取方法包含下列步骤接收由该处理器所传送的一目标地址;根据该目标地址判断该数据储存单元中是否存有一目标数据;接收该目标数据;根据该目标地址所对应的该储存组的这些储存组件是否被标示为有效的以及该目标地址是否介于一锁定范围来选取一牺牲路径;以及将该目标数据写入该牺牲路径中。
文档编号G06F12/08GK103019954SQ20111028412
公开日2013年4月3日 申请日期2011年9月22日 优先权日2011年9月22日
发明者卢彦儒, 黄朝玮 申请人:瑞昱半导体股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1