CN103019954A - 高速缓存装置与高速缓存数据存取方法 - Google Patents
高速缓存装置与高速缓存数据存取方法 Download PDFInfo
- Publication number
- CN103019954A CN103019954A CN2011102841277A CN201110284127A CN103019954A CN 103019954 A CN103019954 A CN 103019954A CN 2011102841277 A CN2011102841277 A CN 2011102841277A CN 201110284127 A CN201110284127 A CN 201110284127A CN 103019954 A CN103019954 A CN 103019954A
- Authority
- CN
- China
- Prior art keywords
- storage
- path
- denoted
- data
- destination address
- 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了高速缓存装置和高速缓存数据存取方法,该高速缓存数据存取方法适用于与一处理器及一主存储器电连接的高速缓存装置,该高速缓存装置包括具有多个储存组的一数据储存单元,每一储存组具有分别对应多个存取路径的多个储存组件,该高速缓存数据存取方法包含下列步骤:接收由该处理器所传送的一目标地址;根据该目标地址判断该数据储存单元中是否存有一目标数据;接收该目标数据;根据该目标地址所对应的该储存组的这些储存组件是否被标示为有效的以及该目标地址是否介于一锁定范围来选取一牺牲路径;以及将该目标数据写入该牺牲路径中。
Description
技术领域
本发明关于一种高速缓存装置与高速缓存数据存取方法,特别是指一种在一高速缓存中锁定并存取一关键数据的装置与方法。
背景技术
现今一高速缓存(Cache Memory)已经被广泛应用于一处理单元(如:一中央处理器(CPU))中,当该处理单元欲取得一目标数据时,若是该目标数据已存放于该高速缓存中,则可以有效提升该处理单元的存取效率。
参阅图1,一处理单元11包括一处理器111与一高速缓存112。该处理器111由该高速缓存112中存取一目标数据,当该处理器111可以从该高速缓存112中取得该目标数据时,称之为快取命中(Cache hit),反之,若无法从该高速缓存112中取得该目标数据时,称之为快取漏失(Cachemiss);当发生快取漏失时,该高速缓存112会从一主存储器(Main memory)12中取得该目标数据。
在美国公告专利号7228386所提出的一现有技术(以下称为第一现有技术)中,其针对一对应多个存取路径(Way)的高速缓存,利用一路径开启缓存器(Way enable register)以控制每一个存取路径的开启或关闭。举例来说,参阅图2,假设一高速缓存41具有分别对应索引S1~S8的八个储存组,每一储存组具有分别对应四个存取路径W1~W4的四个储存组件,该四个存取路径W1~W4分别称为一第一存取路径W1、一第二存取路径W2、一第三存取路径W3,及一第四存取路径W4。该路径开启缓存器42大小为四位,且每一位用以表示开启或关闭一相对应存取路径,也就是说,假设该路径开启缓存器42的值为1110,且第0至第3位分别对应到第一至第四存取路径W1~W4,第0位为0代表该第一存取路径W1被关闭,因此不能再覆写其它数据在该第一存取路径W1所对应的这些储存组件中。
一般而言,这样的目的在于当有一关键数据(Critical data)被存放于该第一存取路径W1所对应的一储存组件中时,且该关键数据是一使用频率较高的数据,为避免该关键数据被覆写造成下次需读取时,必须重新由该主存储器处取得,进而导致处理单元读取数据的效率下降,因而关闭该第一存取路径W1的写入功能。
然而,在该第一存取路径W1所对应的这些储存组件中不一定全部都已存放关键数据,举例来说,如图2所示,假设索引S8所对应的该储存组中对应于该第一存取路径W1的储存组件(以下以储存组件(W1,S8)来表示,其余类推),以及储存组件(W1,S7)、(W1,S5)、(W1,S4)、(W1,S3)皆各自储存一关键数据,因为该路径开启缓存器42的第0位为0,因此,该第一存取路径W1所对应的其它储存组件,如:(W1,S6)、(W1,S2)、(W1,S1),无法再存放其它数据。换句话说,将造成该第一存取路径W1的利用率下降形成浪费,同时,也可能会使得该高速缓存的快取命中率(Cache hit rate)下降,因此,该第一现有技术仍具有相当大的改善空间。
此外,在美国公告专利号6047358所提出的另一现有技术(以下称为第二现有技术)中,其利用多个缓存器设定一锁定范围(Lock range)的大小(LOCK_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 topregister)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),其每一位用以标示一相对应的储存组件中的数据是否为有效的,一般而言,其值为1时代表相对应的数据被标示为有效的,也即有被使用,而其值为0时则代表相对应的资料为无效的。该写回旗标单元92是一写回内存(Dirty bitmemory),其每一位用以标示一相对应的储存组件中的数据是否为写回的,一般而言,其值为1时代表相对应的数据被标示为写回的,也就是须写回至主存储器51中,其值为0时则代表相对应的数据不须写回至主存储器51中。该取代优先权单元93是一最近最少使用内存(LRU memory),用以标示每一储存组件中的数据的取代顺位,其根据一最近最少使用算法(LRU algorithm)进行排序,也即,当有新的数据要储存时,被标示为第一顺位的数据将优先被取代。该关键旗标单元94是一关键旗标内存(Critical memory),其每一位用以表示一相对应之储存组件中的数据是否为关键的,一般而言,其值为1时代表相对应的数据被标示为关键的,也就是其为在锁定范围内的关键数据,其值为0时则代表相对应的数据为非关键数据。该标签地址储存单元95是一标签内存(Tag memory),其用以标示每一储存组件中的数据在该主存储器51中的地址。
参阅图4,假设该数据储存单元96具有分别对应索引S1~S16的十六个储存组,每一储存组具有分别对应四个存取路径W1~W4的四个储存组件,因此,该数据储存单元96具有4×16个储存组件。相似的,该有效旗标单元91、该写回旗标单元92、该取代优先权单元93、该关键旗标单元94与该标签地址储存单元95也各自具有分别对应该4×16个储存组件的4×16个储存空间,因此,该4×16个储存空间也可通过索引S1~S16及存取路径W1~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,代表存取路径W1、W2被标示为锁定的,而存取路径W3、W4没被标示为锁定的,并假设该有效旗标单元91中相对应的值为0000,代表储存组件(W1,S15)、(W2,S15)、(W3,S15)、(W4,S15)没被标示为有效的,且该关键旗标单元94中相对应的值为0000,代表储存组件(W1,S15)、(W2,S15)、(W3,S15)、(W4,S15)没被标示为关键的。
假设现在要写入一组目标数据的顺序如下:C1、NC1、NC2、NC3、NC4、C2、NC5、C3及NC6,其中,C代表该目标数据为一关键数据,而NC代表该目标数据为一非关键数据。
当该控制器974要写入该目标数据C1时,根据子步骤831(见图6),由于储存组件(W1,S15)、(W2,S15)、(W3,S15)、(W4,S15)并非全部被标示为有效的,因此流程前进到子步骤73(见图6)。根据子步骤731(见图9),由于该目标数据C1是一关键数据(其目标地址的标签字段介于锁定范围中),因此流程前进到子步骤732(见图9)。根据子步骤732,由于储存组件(W1,S15)、(W2,S15)皆没被标示为关键的(其所储存的数据未介于锁定范围中),因此流程前进到子步骤734(见图9)。根据子步骤734,由于存取路径W1、W2被标示为锁定的,且储存组件(W1,S15)、(W2,S15)皆没被标示为有效的,因此存取路径W1、W2中的任一者可被选择作为该牺牲路径,假设存取路径W1被选择作为该牺牲路径。接着,根据步骤84(见图5),该目标数据C1被写入储存组件(W1,S15)中,如图10(a)所示。接着,根据步骤86(见图5),储存组件(W1,S15)被标示为有效的、关键的。
当该控制器974要写入该目标数据NC1时,根据子步骤831(见图6),由于储存组件(W1,S15)、(W2,S15)、(W3,S15)、(W4,S15)并非全部被标示为有效的,因此流程前进到子步骤73(见图6)。根据子步骤731(见图9),由于该目标数据NC1是一非关键数据,因此流程前进到子步骤735(见图9)。根据子步骤735,由于储存组件(W2,S15)、(W3,S15)、(W4,S15)没被标示为有效的,因此存取路径W2、W3、W4中的任一者可被选择作为该牺牲路径,假设存取路径W2被选择作为该牺牲路径。接着,根据步骤84(见图5),该目标数据NC1被写入储存组件(W2,S15)中,如图10(b)所示。接着,根据步骤86(见图5),储存组件(W2,S15)被标示为有效的。
相似于存放该目标数据NC1的过程,该目标数据NC2被写入储存组件(W3,S15)中,如图10(c)所示,且储存组件(W3,S15)被标示为有效的,该目标数据NC3被写入储存组件(W4,S15)中,如图10(c)所示,且储存组件(W4,S15)被标示为有效的。
到目前为止,储存组件(W1,S15)、(W2,S15)、(W3,S15)、(W4,S15)皆被标示为有效的。
当该控制器974要写入该目标数据NC4时,根据子步骤831(见图6),由于储存组件(W1,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),由于储存组件(W1,S15)、(W2,S15)、(W3,S15)、(W4,S15)皆被标示为有效的,因此流程前进到子步骤832(见图6)。根据子步骤832,由于该目标数据C2是一关键数据,因此流程前进到子步骤71(见图6)。根据子步骤711(见图7),由于储存组件(W1,S15)、(W2,S15)并非全部被标示为关键的,因此流程前进到子步骤713(见图7)。根据子步骤713,由于存取路径W1、W2被标示为锁定的,储存组件(W2,S15)没被标示为关键的,因此存取路径W2可被选择作为该牺牲路径。接着,根据步骤84(见图5),该目标数据C2被写入储存组件(W2,S15)中,如图11(a)所示。接着,根据步骤86(见图5),储存组件(W2,S15)被标示为有效的、关键的。
到目前为止,储存单元(W1,S15)、(W2,S15)皆被标示为关键的。
当该控制器974要写入该目标数据NC5时,根据子步骤831(见图6),由于储存组件(W1,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),由于储存组件(W1,S15)、(W2,S15)、(W3,S15)、(W4,S15)皆被标示为有效的,因此流程前进到子步骤832(见图6)。根据子步骤832,由于该目标数据C3是一关键数据,因此流程前进到子步骤71(见图6)。根据子步骤711(见图7),由于储存组件(W1,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),由于储存组件(W1,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的标示,仍可以对锁定存取路径内储存非关键数据或尚未使用的储存组件进行存取,因此,可以大幅改善如第一现有技术中因锁定部分存取路径以保留这些关键数据后其间剩余的储存组件皆无法再利用的问题,同时,上述实施例也可有效提升快取命中率;此外,由于没被锁定的存取路径内所储存的关键资料可被覆写,所以该锁定范围可以大于该高速缓存的储存空间的大小,避免如第二现有技术那样,当该锁定范围超出该外取内存的储存范围时,需重新设定这些相关缓存器,以及重设该锁定范围所造成使用上的困难,同时,上述实施例也不需要任何初始化程序,因此,可以有效提高使用效率。故确实能达成本发明的目的。
以上所述者仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即但凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。
Claims (12)
1.一种高速缓存数据存取方法,适用于与一处理器及一主存储器电连接的一高速缓存装置,所述高速缓存装置包括具有多个储存组的一数据储存单元,每一储存组具有分别对应多个存取路径的多个储存组件,所述高速缓存数据存取方法包含下列步骤:
接收由所述处理器所传送的一目标地址;
根据所述目标地址判断所述数据储存单元中是否存有一目标数据;
接收所述目标数据;
根据所述目标地址所对应的所述储存组的所述多个储存组件是否被标示为有效的以及所述目标地址是否介于一锁定范围来选取一牺牲路径;以及
将所述目标数据写入所述牺牲路径中。
2.根据权利要求1所述的高速缓存数据存取方法,其中,所述锁定范围大于所述数据储存单元的大小。
3.根据权利要求1所述的高速缓存数据存取方法,其中
还根据所述目标地址所对应的所述储存组中对应于被标示为锁定的存取路径的所有储存组件是否被标示为关键的来选取所述牺牲路径。
4.根据权利要求3所述的高速缓存数据存取方法,其中,选取所述牺牲路径的步骤包括以下子步骤:
选择一被标示为锁定的存取路径作为所述牺牲路径,其中,所述存取路径对应于所述目标地址所对应的所述储存组中没被标示为关键的一储存组件。
5.根据权利要求4所述的高速缓存数据存取方法,还包括以下步骤:
当所述目标地址介于所述锁定范围时,将所述储存组件标示为关键的。
6.根据权利要求3所述的高速缓存数据存取方法,其中,选取所述牺牲路径的步骤包括以下子步骤:
选择一被标示为锁定的存取路径作为所述牺牲路径,其中,所述存取路径对应于所述目标地址所对应的所述储存组中没被标示为有效的一储存组件。
7.一种高速缓存装置,耦接一处理器及一主存储器,其包含:
一控制单元,用以界定在所述主存储器中的一锁定范围;
一数据储存单元,具有多个储存组,每一储存组具有分别对应多个存取路径的多个储存组件;及
一关键旗标单元,用于标示每一储存组件中的数据是否介于所述锁定范围中;
其中,所述锁定范围大于所述数据储存单元的大小。
8.根据权利要求7所述的高速缓存装置,其中,当所述控制单元接收由所述处理器所传送的一目标地址,且所述数据储存单元未储存有对应所述目标地址的一目标数据时,根据所述目标地址所对应的所述储存组的所述多个储存组件是否被标示为有效的以及所述目标地址是否介于所述锁定范围来从所述多个存取路径选取一牺牲路径,并将所述目标数据写入所述牺牲路径。
9.根据权利要求8所述的高速缓存装置,其中,所述控制单元还根据所述目标地址所对应的所述储存组中对应于被标示为锁定的存取路径的所有储存组件是否被标示为关键的来选取所述牺牲路径。
10.根据权利要求9所述的高速缓存装置,其中,所述控制单元选择一被标示为锁定的存取路径作为所述牺牲路径,所述存取路径对应于所述目标地址所对应的所述储存组中没被标示为关键的所述储存组件。
11.根据权利要求10所述的高速缓存装置,其中,当所述目标地址介于所述锁定范围时,所述控制单元将所述储存组件标示为关键的。
12.根据权利要求9所述的高速缓存装置,其中,所述控制单元选择一被标示为锁定的存取路径作为所述牺牲路径,其中,所述存取路径对应于所述目标地址所对应的所述储存组中没被标示为有效的所述储存组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102841277A CN103019954A (zh) | 2011-09-22 | 2011-09-22 | 高速缓存装置与高速缓存数据存取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102841277A CN103019954A (zh) | 2011-09-22 | 2011-09-22 | 高速缓存装置与高速缓存数据存取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103019954A true CN103019954A (zh) | 2013-04-03 |
Family
ID=47968579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102841277A Pending CN103019954A (zh) | 2011-09-22 | 2011-09-22 | 高速缓存装置与高速缓存数据存取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019954A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375955A (zh) * | 2013-08-16 | 2015-02-25 | 爱思开海力士有限公司 | 高速缓冲存储器设备及其控制方法 |
CN109634910A (zh) * | 2018-11-08 | 2019-04-16 | 珠海全志科技股份有限公司 | 一种提升dvr文件写入速度的方法 |
CN112988036A (zh) * | 2019-12-16 | 2021-06-18 | 瑞昱半导体股份有限公司 | 存储器数据存取装置及其方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198442A1 (en) * | 2004-03-02 | 2005-09-08 | Mandler Alberto R. | Conditionally accessible cache memory |
CN1766853A (zh) * | 2004-10-28 | 2006-05-03 | 国际商业机器公司 | 使用锁定高速缓冲存储器用于直接存入的系统和方法 |
CN1971538A (zh) * | 2005-08-05 | 2007-05-30 | 富士通株式会社 | 降低高速缓存的功耗 |
CN1991792A (zh) * | 2005-09-30 | 2007-07-04 | 英特尔公司 | 用于有效使用高速缓存及存储器的指令辅助高速缓存管理 |
CN101326500A (zh) * | 2006-05-24 | 2008-12-17 | 索尼计算机娱乐公司 | 提供同时软件/硬件高速缓存填充的方法与装置 |
CN101772759A (zh) * | 2007-08-02 | 2010-07-07 | 飞思卡尔半导体公司 | 高速缓存锁定设备及其方法 |
-
2011
- 2011-09-22 CN CN2011102841277A patent/CN103019954A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198442A1 (en) * | 2004-03-02 | 2005-09-08 | Mandler Alberto R. | Conditionally accessible cache memory |
CN1766853A (zh) * | 2004-10-28 | 2006-05-03 | 国际商业机器公司 | 使用锁定高速缓冲存储器用于直接存入的系统和方法 |
CN1971538A (zh) * | 2005-08-05 | 2007-05-30 | 富士通株式会社 | 降低高速缓存的功耗 |
CN1991792A (zh) * | 2005-09-30 | 2007-07-04 | 英特尔公司 | 用于有效使用高速缓存及存储器的指令辅助高速缓存管理 |
CN101326500A (zh) * | 2006-05-24 | 2008-12-17 | 索尼计算机娱乐公司 | 提供同时软件/硬件高速缓存填充的方法与装置 |
CN101772759A (zh) * | 2007-08-02 | 2010-07-07 | 飞思卡尔半导体公司 | 高速缓存锁定设备及其方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104375955A (zh) * | 2013-08-16 | 2015-02-25 | 爱思开海力士有限公司 | 高速缓冲存储器设备及其控制方法 |
CN104375955B (zh) * | 2013-08-16 | 2019-05-03 | 爱思开海力士有限公司 | 高速缓冲存储器设备及其控制方法 |
CN109634910A (zh) * | 2018-11-08 | 2019-04-16 | 珠海全志科技股份有限公司 | 一种提升dvr文件写入速度的方法 |
CN112988036A (zh) * | 2019-12-16 | 2021-06-18 | 瑞昱半导体股份有限公司 | 存储器数据存取装置及其方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5737750A (en) | Partitioned single array cache memory having first and second storage regions for storing non-branch and branch instructions | |
US8437190B2 (en) | Interleaved flash storage system and method | |
CN105094686B (zh) | 数据缓存方法、缓存和计算机系统 | |
CN104487953B (zh) | 用于层次型存储器系统的存储器管理 | |
US8041920B2 (en) | Partitioning memory mapped device configuration space | |
CN105164653B (zh) | 属性字段的多核页表集合 | |
CN101493796B (zh) | 存储器内、页面内目录高速缓存一致性配置 | |
US10747683B2 (en) | Translation lookaside buffer switch bank | |
US8341344B2 (en) | Techniques for accessing a resource in a processor system | |
CN109213697A (zh) | 智能存储器数据存储或加载方法和装置 | |
CN115168247B (zh) | 用于并行处理器中动态共享存储空间的方法及相应处理器 | |
CN106445398A (zh) | 一种基于新型存储器的嵌入式文件系统及其实现方法 | |
CN115168248B (zh) | 支持simt架构的高速缓冲存储器及相应处理器 | |
US20090319721A1 (en) | Flash memory apparatus and method for operating the same | |
US7080220B2 (en) | Page replacement with a re-reference indicator | |
WO2010004497A1 (en) | Cache management systems and methods | |
CN108694133A (zh) | 用于即时高速缓存关联性的装置、方法和系统 | |
CN103019954A (zh) | 高速缓存装置与高速缓存数据存取方法 | |
US20080016282A1 (en) | Cache memory system | |
CN102650972B (zh) | 数据存储方法、装置及系统 | |
US20070266199A1 (en) | Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache | |
CN106155567A (zh) | 存储器装置及其操作方法 | |
CN101196851B (zh) | 闪存的数据管理方法 | |
KR20110066526A (ko) | 다중포트 메모리 콘트롤러 및 다중포트 캐시 | |
US8671262B2 (en) | Single-port memory with addresses having a first portion identifying a first memory block and a second portion identifying a same rank in first, second, third, and fourth memory blocks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130403 |