1.一种高速缓存元件(buffer cache device),可通过一应用程序(application)获取一第一数据,其中该高速缓存元件包括:
一第一阶高速缓存,用来接收并储存该第一数据;
一第二阶高速缓存,具有与该第一阶高速缓存不同的一存储单元结构;以及
一控制器,用来将储存于该第一阶高速缓存中的该第一数据写入该第二阶高速缓存。
2.根据权利要求1所述的高速缓存元件,其中该第一阶高速缓存为一动态随机存取存储器(Dynamic Random Access Memory,DRAM),该第二阶高速缓存为一相变存储器(Phase Change Memory,PCM)。
3.根据权利要求1所述的高速缓存元件,其中该第一阶高速缓存包括多个区块(blocks),每一这些区块包括:
多个子区块(sub-blocks),每一这些子区块用来储存一部分该第一数据;
多个次未更新位(sub-dirty bits),对应每一这些子区块,用以标示对应的这些子区块中是否储存该第一数据中的至少一未更新(dirty)部分,并将被具有该未更新部分者标示为一未更新子区块;以及
一未更新位(dirty bit),用以标示该区块中是否具有该未更新子区块。
4.根据权利要求3所述的高速缓存元件,其中每一这些子区块具有一粒度尺寸(granularity),等于可平行写入该第二阶高速缓存的一最大数据量。
5.根据权利要求3所述的高速缓存元件,其中该控制器会监控储存于该第二阶高速缓存中的未更新子区块的一数量、该第一阶高速缓存的一快取命中率(hit rate)或储存于该第二阶高速缓存的一空闲时间(idle time);当该数量、该快取命中率和该空闲时间三者之一高于一预设标准时,将储存于该第二阶高速缓存中的所有该未更新子区块写入一主存储器元件。
6.根据权利要求1所述的高速缓存元件,其中该第一阶高速缓存可用来接收并储存一第二数据,该控制器采用一时钟法(CLOCK)策略、一最近最少使用(Least-Recently-Used,LRU)策略、一先到先服务(First-Come, First-Served,FCFS)策略和一最近最少活化(Least-Recently-Activated,LRA)策略之一者,来选择储存于该第一阶高速缓存中的该第一数据或该第二数据写入第二阶高速缓存,再腾空(evict)被选择的该第一数据或该第二数据,以容许一第三数据储存于该第一阶高速缓存中。
7.根据权利要求6所述的高速缓存元件,其中该最近最少活化(Least-Recently-Activated,LRA)策略是选择最近最少被一前景应用程序(foreground application)所存取的该第一数据或该第二数据。
8.根据权利要求6所述的高速缓存元件,该控制器会采用该时钟法策略、该最近最少使用策略、该先到先服务策略和该最近最少活化策略之一者,来选择储存于该第二阶高速缓存中的该第一数据或该第二数据写入一主存储器元件,再腾空该第二阶高速缓存中被选择的该第一数据或该第二数据。
9.一种高速缓存元件的控制方法,其中该高速缓存元件包括一第一阶高速缓存以及一第二阶高速缓存,其中该第二阶高速缓存具有与该第一阶高速缓存不同的一存储单元结构,该高速缓存元件的控制方法包括:
通过一第一应用程序获取一第一数据并储存于该第一阶高速缓存;以及
将储存于该第一阶高速缓存中的该第一数据写入该第二阶高速缓存。
10.根据权利要求9所述的高速缓存元件的控制方法,其中该第一阶高速缓存为一动态随机存取存储器,该第二阶高速缓存为一相变存储器。
11.根据权利要求9所述的高速缓存元件的控制方法,更包括:
将该第一阶高速缓存区隔成多个区块,使每一这些区块包括:
多个子区块,每一这些子区块用来储存一部分该第一数据;
多个次未更新位,对应每一这些子区块,用以标示对应的这些子区块中是否储存该第一数据中的至少一未更新部分,并将被具有该未更新部分者标示为一未更新子区块;以及
一未更新位,用以标示该区块中是否具有该未更新子区块。
12.根据权利要求11所述的高速缓存元件的控制方法,其中将该第一数据写入该第二阶高速缓存的步骤,包括将该未更新子区块复制并储存于该第二阶高速缓存中。
13.根据权利要求11所述的高速缓存元件的控制方法,其中每一这些子区块具有一粒度尺寸,等于可平行写入该第二阶高速缓存的一最大数据量。
14.根据权利要求11所述的高速缓存元件的控制方法,更包括:
监控储存于该第二阶高速缓存中未更新子区块的一数量、该第一阶高速缓存的一快取命中率以及储存于该第二阶高速缓存中该第一数据的一空闲时间;以及
当该数量、该快取命中率和该空闲时间三者之一高于一预设标准时,进行一背景刷新(background flush)操作,将储存于该第二阶高速缓存中的所有该未更新子区块写入一主存储器元件;以及
腾空该第二阶高速缓存中具有该未更新子区块的该区块。
15.根据权利要求14所述的高速缓存元件的控制方法,更包括:
当接收一指令要求(demand request)时,即停止该背景刷新操作;
并完成该指令要求;以及
监控该数量、该快取命中率和该空闲时间。
16.根据权利要求9所述的高速缓存元件的控制方法,更包括:
通过一第二应用程序获取一第二数据并储存于一第一阶高速缓存;
采用一时钟法策略、一最近最少使用策略、一先到先服务策略或一最近最少活化策略之一者,来选择储存于该第一阶高速缓存中的该第一数据或该第二数据,将其写入该第二阶高速缓存;
腾空储存于该第一阶高速缓存中的该第二数据被选择的该第一数据或该第二数据;以及
通过一第三应用程序获取一第三数据并储存于该第一阶高速缓存中。
17.根据权利要求16所述的高速缓存元件的控制方法,其中该最近最少活化策略是选择最近最少被一前景应用程序所存取该第一数据或该第二数据。
18.根据权利要求16所述的高速缓存元件的控制方法,更包括:
采用一时钟法策略、一最近最少使用策略、一先到先服务策略或一最近最少活化策略之一者,来选择储存于该第二阶高速缓存中的该第一数据或该第二数据,将其写入该主存储器元件;以及
腾空储存于该第二阶高速缓存中的该第二数据被选择的该第一数据或该第二数据。
19.一种嵌入式系统(embedded system),包括:
一主存储器元件;
一高速缓存元件,包括:
一第一阶高速缓存,用来通过至少一应用程序接收并储存至少一数据;以及
一第二阶高速缓存,具有与该第一阶高速缓存不同的一存储单元结构;以及
一控制器,用来将储存于该第一阶高速缓存中的该数据写入该第二阶高速缓存;之后,再将被储存于该第二阶高速缓存中的该第一数据写入该主存储器。
20.根据权利要求19所述的嵌入式系统,其中该控制器是内建于该高速缓存元件之中。