CN1499381A - 高速缓存控制器、高速缓存控制方法以及计算机系统 - Google Patents
高速缓存控制器、高速缓存控制方法以及计算机系统 Download PDFInfo
- Publication number
- CN1499381A CN1499381A CNA2003101204510A CN200310120451A CN1499381A CN 1499381 A CN1499381 A CN 1499381A CN A2003101204510 A CNA2003101204510 A CN A2003101204510A CN 200310120451 A CN200310120451 A CN 200310120451A CN 1499381 A CN1499381 A CN 1499381A
- Authority
- CN
- China
- Prior art keywords
- cache
- task
- address
- memory
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 30
- 230000015654 memory Effects 0.000 claims abstract description 114
- 230000008569 process Effects 0.000 claims description 8
- 238000007726 management method Methods 0.000 description 27
- 230000004048 modification Effects 0.000 description 13
- 238000012986 modification Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
在一个同时执行多个任务的计算机系统中,高速缓存控制器消除由于执行另一个任务而使一个任务的命中率下降的概率。区域管理单元管理与多个任务对应的高速缓冲存储器中的多个区域。地址接收单元从微处理器接收主存储器中的一个位置的地址,在该地址上存储有待存取以执行多个任务中的一个任务的数据。如果待存取的数据没有存储在高速缓冲存储器中,则高速缓存单元从主存储器中获取包括此数据的数据块,并将所获取的数据块存储到高速缓冲存储器中对应于所述任务的区域中。
Description
技术领域
本发明涉及一种高速缓存控制器和一种用于控制高速缓冲存储器的高速缓存控制方法。
本申请基于在日本申请提交的、序列号为No.2002-327429的申请,其内容在此并入作为参考。
背景技术
目前大多数计算机系统都使用分级存储器体系。在该分级存储器体系中,具有高存取速度而昂贵的存储设备与具有低存取速度而价格低的存储设备结合使用,以低成本实现一种高速大容量的存储系统。
例如,在通用个人计算机中,像微处理器中的寄存器、高速缓冲存储器、主存储器以及硬盘之类的存储设备都在一个分级体系中进行组织。
高速缓冲存储器具有比主存储器更高的存取速度。对高速缓冲存储器的存取,例如读或写,是由高速缓存控制器控制的。如果微处理器请求的数据在高速缓冲存储器中没有找到,则高速缓存控制器从主存储器中读取一组包括存储在连续地址中的所请求数据的数据,并将该组数据存储到高速缓冲存储器中。
这种从主存储器到高速缓冲存储器的数据传送称作高速缓存。可以被高速缓存的数据单元是一行(或一块),其也是可以存储在高速缓冲存储器中的数据单元。
此外,在高速缓冲存储器中未查找到所请求的数据,称作高速缓存未命中。
当发生高速缓存未命中时,高速缓存控制器从主存储器将包含所请求的数据的数据组高速缓存在各行单元中。在此期间,微处理器处于等待状态。
另一方面,如果在高速缓冲存储器中找到所请求的数据,则称为高速缓存命中。所有对高速缓冲存储器存取的高速缓存命中比率称为命中率。
由微处理器执行的程序的存取方式具有两个属性:空间局部性和时间局部性。空间局部性是指如果主存储器中的一个地址被存取,那么不久之后邻近地址也可能被存取。时间局部性是指如果主存储器中的一个地址被存取一次,那么不久之后相同的地址可能被再次存取。因此,响应于高速缓存未命中,高速缓存在行单元中的数据组不久会被存取的情况是具有很高概率的。
根据一种预定的高速缓存控制方法(映像方法),高速缓存的数据组存储在高速缓冲存储器指定区域的行单元中。
全相联映像、直接映像和组相联映像是三种主要的高速缓存控制方法。这些方法在1994年4月10日Ohmsha出版的T.Saito & K.Omori的ContemporaryComputer Architecture Principles的第112页中有详细描述。
全相联映像可以将数据存储在高速缓冲存储器的任何可用位置,并且具有最高的高速缓存利用效率。然而,这种方法需要大量的比较器,所以不能被普遍利用。
假定使用直接映像或组相联映像,用于以分时同时执行任务A和B的计算机系统中的高速缓存操作。在这种情况下,被高速缓存以执行任务A的数据组A,可以存储到被高速缓存以执行任务B的数据组B所存储的位置。当发生这种情况时,数据组B被数据组A覆盖并被删除。
将被存取以执行任务B的数据不可能包含在数据组A中。因此,以数据组A覆盖数据组B,增加了任务B的命中率下降的概率。
发明内容
考虑到上述问题,本发明的目的在于提供一种高速缓存控制器和高速缓存控制方法,以消除在以分时或并行同时执行多个任务的计算机系统中,由于执行另一任务而使一个任务的命中率降低的概率。
所述目的可以通过(权利要求1)实现。
根据此结构,一组被高速缓存用于第一任务的数据,存储在对应于第一任务的区域中,并且一组被高速缓存用于第二任务的数据,存储在对应于第二任务的区域中。这解决了传统高速缓存控制方法中,高速缓存的用于第一任务的数据组被高速缓存的用于第二任务的数据组覆盖的问题。因此,可以消除由于执行第二任务而使第一任务命中率下降的概率。
这里,(权利要求2)。
根据此结构,高速缓冲存储器被分成与由微处理器同时执行的任务相同数目的区域,并且所划分的区域与所述任务一一对应地进行管理。
这里,(权利要求3)。
根据此结构,为每一个独立的任务确保必需数量的存储器。这使得如下方式成为可能,例如,分配一小块区域给不需要高速存取的任务,并分配一大块区域给需要高速存取的任务。
这里,(权利要求4)。
任务ID可以由微处理器或其他管理任务的硬件发出。
这里,(权利要求5)。
这里,(权利要求6)。
这里,(权利要求7)。
这里,(权利要求8)。
这里,(权利要求9)。
根据此结构,高速缓冲存储器中的数据可以被快速检测到。
这里,(权利要求10)。
这里,(权利要求11)。
这里,(权利要求12)。
例如,一具有实时保证需求的应用程序,与特定区域对应作为特定任务进行管理。这防止了高速缓存的用于特定任务的数据组被高速缓存的用于另一任务的数据组所覆盖。因此消除了由于执行另一任务而使特定任务的命中率下降的概率,以此可以保证实时处理。
这里,(权利要求13)。
根据此结构,当第一和第二任务的存取方式具有普遍局部性时,这些任务的命中率可以提高。
所述目的也可以由(权利要求14)实现。
所述目的也可以由(权利要求15)实现。
这里,(权利要求16)。
这里,(权利要求17)。
附图说明
本发明的这些和其他目的、优点及特征,从以下结合说明本发明特定实施例的附图的描述中将变得更为清晰。
附图中:
图1示出了根据本发明的一个实施例,包括高速缓存控制器的计算机系统的结构;
图2示出了图1所示高速缓存控制器的结构;
图3示出了一区域管理表的具体实例;
图4示出了当划分16位主存储器地址时的三个字段;
图5是示出高速缓存控制器的高速缓存控制过程的流程图;
图6是示出对高速缓存控制过程的一种改进的流程图;
图7示出了被划分为一特定区域和一非特定区域的高速缓冲存储器;以及
图8示出了在每个区域中具有至少一个通道的高速缓冲存储器。
具体实施方式
下面参照附图来说明本发明的一个实施例的高速缓存控制器。
(一种计算机系统的结构)
图1示出了一包括本实施例的高速缓存控制器的计算机系统的结构。
该计算机系统包括高速缓存控制器1、高速缓冲存储器2、微处理器3、主存储器4、MMU(存储器管理单元)5以及硬盘(未示出)。与本发明的特征并不十分相关的部件在附图中没有示出,并且已经省去对其的说明。
微处理器3执行程序并进行各种操作。详细地说,微处理器3执行多任务处理,即在OS(操作系统)的控制下,以分时方式同时执行作为任务的多个程序。
如果从一项任务切换到执行另一项任务,则微处理器3通过任务ID信号线101将后一任务的任务ID发送给高速缓存控制器1。
在此所指的任务ID是通过转换表示一主存储器地址的逻辑地址产生的,在所述主存储器地址存储有一作为任务执行的程序。
微处理器3还通过存储器存取信号线102,将表示将被存取的一主存储器地址的逻辑地址发送给高速缓存控制器1。如果所述存取为读,则微处理器3通过数据信号线103从高速缓存控制器1接收在主存储器地址的数据。
此外,当执行用于OS等的系统管理程序时,微处理器3通过区域指定信号线106发送包含要被执行的任务数量、每个任务的任务ID,以及每个任务必需的高速缓存存储器大小的区域指定信息给高速缓存控制器1。
高速缓存控制器1控制对高速缓冲存储器2的数据存取。高速缓存控制器1具有以下区别于传统高速缓存控制器的特征。高速缓存控制器1以与由微处理器3以多任务方式执行的任务一一对应的方式管理高速缓冲存储器2的区域,并将一组高速缓存在行单元中用于某一任务的数据,存储到对应于该任务的高速缓冲存储器2的一个区域中。
高速缓存控制器1实现此特征的功能结构在后面会详细说明。
高速缓冲存储器2是一种可以比主存储器4更快地进行存取的存储设备。作为一个示例,高速缓冲存储器2是一个SRAM(静态随机存取存储器)。
MMU5将表示一通过存储器存取信号线104从高速缓存控制器1发送的主存储器地址的逻辑地址,转换为一物理地址。
主存储器4是具有比高速缓冲存储器2更低的存取速度的存储设备。作为一个示例,主存储器4是一个DRAM(动态随机存取存储器)。主存储器4配有一用于控制对主存储器4的数据存取的存储器控制器。
在通过存储器存取信号线104从高速缓存控制器1接收到一主存储器地址(物理地址)时,存储器控制器读取一组存储在包括从主存储器4接收的地址的连续地址中的数据,并通过数据信号线105将该组数据发送到高速缓存控制器1。
(高速缓存控制器1的结构)
下面详细说明高速缓存控制器1的结构。
图2示出了高速缓存控制器1的功能结构。
高速缓存控制器1包括任务ID输入寄存器11、区域管理单元12、地址划分单元14、高速缓冲存储器地址生成单元15、命中/未命中判断单元16、高速缓存目录17、高速缓存单元18,以及数据存取单元19。区域管理单元12包括区域确定单元13。
区域管理单元12根据通过区域指定信号线106从微处理器3发送的区域指定信息,将高速缓冲存储器2划分为多个区域。这样做,区域管理单元12以与任务ID一一对应的方式对各区域进行管理。
图2所示的区域信息包括对应于由微处理器3所执行的任务的任务ID。
任务ID输入寄存器11通过任务ID信号线101,从微处理器3接收任务ID,并将其传送给区域管理单元12。
在从任务ID输入寄存器11接收任务ID的基础上,区域管理单元12使用比较器(cmp)比较所接收的任务ID与包含在区域信息中的每个任务ID。如果所接收的任务ID与包含在任何区域信息中的一个任务ID匹配,则对应于此区域信息的比较器输出该区域的区域号给区域确定单元13。
区域确定单元13根据通过区域指定信号线106从微处理器3发送的区域指定信息,提前生成并保存一个区域管理表。
图3示出了区域管理表的一个具体实例。
在附图中,区域管理表20示出了区域号、基址和大小之间的对应关系。
区域号是识别一个区域的号码。
基址是一个区域的起始位置的高速缓冲存储器地址。
大小表示一个区域的容量。值“1”相当于一行。
在该实施例中,一行是16字节,并且一个主存储器地址存储1字节数据。
在接收到区域号之后,区域确定单元13参照区域管理表,并将对应于区域号的基址和大小分别输出给高速缓冲存储器地址生成单元15和地址划分单元14。
地址划分单元14通过存储器存取信号线102,从微处理器3接收一主存储器地址(逻辑地址),并将该主存储器地址(逻辑地址)分为三个字段。这三个字段接下来被称为标记、索引和字节选择。
图4示出了当划分一16位主存储器地址(逻辑地址)30时的三个字段。
所述标记用于判断存储在由高速缓冲存储器地址生成单元15产生的高速缓冲存储器地址中的一组数据,是否包含由微处理器3所请求的数据。
所述索引用于产生高速缓冲存储器地址。
所述字节选择用于从存储在行单元中的数据组中选择所请求的数据。
在该实施例中,一行由16块1字节的数据构成。因此,主存储器地址(逻辑地址)的低阶4位用作字节选择。
同时,所述标记和索引的字段大小取决于由区域确定单元13通知的区域大小而变化。
假定区域的大小为256行(256×16字节=4096字节)。在这种情况下,主存储器地址(逻辑地址)的高阶4位被用作标记,而接着的8位用作索引。索引的这8位表示区域中256行中的一行。
假定区域的大小为128行。在这种情况下,主存储器地址的高阶5位用作标记,而接着的7位用作索引。索引的这7位表示该区域的128行中的一行。
地址划分单元14发送索引给高速缓冲存储器地址生成单元15,发送标记给命中/未命中判断单元16,并发送字节选择给数据存取单元19。
高速缓冲存储器地址生成单元15将从区域确定单元13接收的基址和从地址划分单元14接收的索引相加,以产生在存储数据于行单元中的高速缓冲存储器2中的高速缓冲存储器地址。高速缓冲存储器地址生成单元15发送高速缓冲存储器地址给命中/未命中判断单元16。
命中/未命中判断单元16检查从地址划分单元14接收的标记是否保存在与从高速缓冲存储器地址生成单元15接收的高速缓冲存储器地址一致的高速缓存目录17中,以判断高速缓存命中或高速缓存未命中。所述高速缓存目录17是一通过标记关联高速缓冲存储器地址的表格。
在高速缓存命中时,命中/未命中判断单元16发送高速缓冲存储器地址给数据存取单元19。
在高速缓存未命中时,命中/未命中判断单元16发送高速缓冲存储器和标记给高速缓存单元18。
如果命中/未命中判断单元16判断高速缓存未命中,则高速缓存单元18通过存储器存取信号线104,发送由地址划分单元14接收的主存储器地址(逻辑地址)给MMU5。MMU5将所述逻辑地址转换为物理地址,并将其发送至主存储器4。
然后高速缓存单元18通过数据信号线105,从主存储器4中获取行单元中的一组数据,并将该组数据存储在高速缓冲存储器2中的从命中/未命中判断单元16所接收到的高速缓冲存储器地址中。高速缓存单元18还将标记和高速缓冲存储器地址相互对应的写入高速缓存目录17中。
数据存取单元19从命中/未命中判断单元16接收高速缓冲存储器地址,并从地址划分单元14中接收字节选择。数据存取单元19使用所述字节选择从存储在高速缓冲存储器地址的数据组中选择所请求的数据,并执行写或读。
在读的情况,数据存取单元19读取数据,并通过数据信号线103将其发送至微处理器3。
(操作)
下面说明高速缓存控制器1响应来自微处理器3的读存取的高速缓存控制过程。
图5是示出高速缓存控制器1响应来自微处理器3的读存取的高速缓存控制过程的流程图。
任务ID输入寄存器11从微处理器3接收一任务ID(S1),并将其传送给区域管理单元12。
区域管理单元12使用比较器比较该任务ID与区域信息中的每个任务ID,并发送一个区域号给区域确定单元13。
区域确定单元13接收该区域号,并参照区域管理表确定一个区域(S2)。区域确定单元13分别发送对应于所述区域号的基址和大小给高速缓冲存储器地址生成单元15和地址划分单元14。
地址划分单元14从微处理器3接收一主存储器地址(S3),并将其分为标记、索引和字节选择。地址划分单元14将该标记、索引和字节选择分别发送给命中/未命中判断单元16、高速缓冲存储器地址生成单元15和数据存取单元19。
高速缓冲存储器地址生成单元15将索引和基址相加,以产生一高速缓冲存储器地址。高速缓冲存储器地址生成单元15发送高速缓冲存储器地址给命中/未命中判断单元16。
命中/未命中判断单元16判断所述标记是否保存在与高速缓冲存储器地址一致的高速缓存目录17中(S4)。
如果是这样,即高速缓存命中(S4:命中),则过程前进到步骤S8。
否则,即高速缓存未命中(S4:未命中),高速缓存单元18高速缓存来自主存储器4中的一组数据(S6),并将该组数据存储在高速缓冲存储器地址中(S7)。高速缓存单元18还将高速缓冲存储器地址和标记分别相互对应地写入高速缓存目录17中。
数据存取单元19发送所请求的数据给微处理器3(S8),以完成高速缓存控制过程。
响应写存取的高速缓存控制过程与上述响应读存取的高速缓存控制过程类似,不同之处仅在于从微处理器3发送的写数据被写入高速缓冲存储器2中,而不是从高速缓冲存储器2中读取数据。
(实例修改)
下面给出上述实施例的一个修改实例。
上述实施例的高速缓存控制器1通过区域指定信号线106,从微处理器3接收区域指定信息。根据该区域指定信息,高速缓存控制器1将高速缓冲存储器2划分为与由微处理器3同时执行的任务相同数目的区域,并管理与各任务的任务ID一致的区域。这可以以如下方式进行修改。高速缓存控制器1从微处理器3接收包括一任务ID和一特定任务的必需的高速缓冲存储器大小的区域指定信息,根据该区域指定信息,将高速缓冲存储器2划分为一特定区域和一非特定区域,并管理与特定任务的任务ID对应的特定区域。
图7示出了被划分为一特定区域和一非特定区域的高速缓冲存储器2A。
在此实例修改中,图2所示的区域管理单元12只保存特定区域的区域信息。该区域信息包括一特定任务的任务ID。同时,只提供一个比较器来比较从任务ID输入寄存器11接收的任务ID与由区域信息表示的任务ID。其他部件与上述实施例中的相同。
图6是示出在此实例修改中的高速缓存控制器1的高速缓存控制过程的流程图。
任务ID输入寄存器11从微处理器3接收一任务ID(S10),并将其传送给区域管理单元12。
区域管理单元12使用一比较器比较该任务ID与区域信息中的任务ID。如果他们是匹配的(S11:是),则在前进到图5中的步骤S3之前,区域管理单元12输出特定区域的区域号给区域确定单元13。如果他们不匹配(S11:否),则在前进到步骤S3之前,区域管理单元12发送非特定区域的区域号给区域确定单元13。接下来的过程与上述实施例中的相同。
例如,一具有实时保证需求的应用程序被设置作为特定任务(程序)。
实时保证需求是指对保证在预定时间内完成预定处理的需求。这种应用程序的例子包括用于回放/记录诸如视频和音频数据流的媒体应用程序。
这种具有实时保证需求的应用程序包括指示需求和必要的高速缓冲存储器大小的标记信息。这样,当此应用程序作为一个任务与多个任务同时执行时,微处理器3根据所述标记信息,判断该应用程序是否是特定任务,并且将其通知给高速缓存控制器1。
(其他修改)
已通过上述实施例和实例修改对本发明的高速缓存控制器进行了说明,可是很明显本发明并不局限于此。下面给出其他修改。
(1)高速缓冲存储器2可以由多个通道构成。一个通道是一个物理上或逻辑上独立的存储单元。
在这种情况下,图3中说明区域号、基址以及大小之间的对应关系的区域管理表20可以省略。而代替为,高速缓存控制器1使用通道号而不是区域号,相互对应地管理通道和任务ID。
图8示出了在每个区域中都包括至少一个通道的高速缓冲存储器2B。
这里,对于具有多于一个通道的每个区域可以使用组相联映像。
(2)上述实施例描述了高速缓存控制器1根据从微处理器3接收的区域指定信息,设置区域和任务以及每个区域的大小之间的对应关系的情况。然而,高速缓存控制器1可以替换地使用从另一外设中,例如执行任务管理的硬件,接收的区域指定信息。
(3)高速缓存控制器1可以根据从微处理器3或另一个外设中接收的区域指定信息,动态产生并删除区域。
(4)上述实施例描述了高速缓存控制器1从微处理器3接收一任务ID并确定一区域的情况。作为另一选择,高速缓存控制器1可以从微处理器3或多个处理器中的一个接收处理器ID并确定一个区域。同时,高速缓存控制器1可以接受任务ID和处理器ID两者,并确定一个区域。
(5)上述实施例描述了区域和任务具有相互一一对应关系的情况。然而,如果存取在相同主存储器地址的数据的两个或多个任务的概率很高,则这些任务可以与一个区域相关。
假定微处理器3同时执行任务A、B和C。根据从微处理器3所给定的区域指定信息,区域管理单元12将高速缓冲存储器2分为两个区域,并将第一区域与任务A的任务ID和任务B的任务ID关联,将任务C的任务ID与第二区域关联。如果在执行任务A或B期间出现高速缓存未命中,则高速缓存单元18将一高速缓存的数据组存储到第一区域中。如果在执行任务C期间出现高速缓存未命中,则高速缓存单元18将一高速缓存的数据组存储到第二区域中。
(6)上述实施例描述了命中/未命中判断单元16,通过参考保存在高速缓存目录17中的所有高速缓冲存储器地址进行判断的情况。作为另一种选择,命中/未命中判断单元16可以仅参照在高速缓存目录17中一确定区域的高速缓冲存储器地址。
(7)上述实施例描述了MMU5位于高速缓存控制器1和主存储器4之间的情况。可选择地是,MMU5也可以位于微处理器3和高速缓存控制器1之间。这使得高速缓存控制器1可以根据由MMU5产生的主存储器4的物理地址,管理高速缓存的数据。
(8)如果相同的应用程序操作作为多个不同的任务,则高速缓存控制器1可以从OS或执行任务管理的硬件接收一任务判别信号,以识别一个任务。
(9)从微处理器3通过任务ID信号线101传送至高速缓存控制器1的任务ID,可以是表示一主存储器地址的逻辑地址,在该地址中存储有作为一个任务而执行的程序,或一个程序计数值。
(10)上述实施例描述了高速缓存控制器1和高速缓冲存储器2都是独立的设备的情况,但是本发明并不受此限制。高速缓存控制器1和高速缓冲存储器2可以作为单个设备来实现。同时,高速缓存控制器1、高速缓冲存储器2,以及微处理器3也可以作为单个设备来实现。
(11)上述实施例和实例修改描述了一种以时分方式同时执行多个任务的计算机系统。然而,本发明同样地可以应用于这样一种计算机系统中,其中可以并行执行多个任务的多个微处理器或一个多处理器,使用共享高速缓冲存储器2同时并行执行多个任务。
(12)上述实施例和实例修改可以下列方式修改。在同时执行多个任务之前,对微处理器3是否具有用于保证实时处理的足够的处理能力进行判断。如果判断结果为否定,则设置高速缓存控制器1来执行上述高速缓存控制过程。
这里,一个具有实时保证需求的应用程序可以包含进行这种判断的测试程序。
(13)上述实例修改描述了一个具有实时保证需求的应用程序,包含指示这种需求的标记信息的情况。此标记信息可以包括一表示需要保证什么程度的实时处理的需求级别。
如果不能分配足够的区域给具有高需求级别的标记信息的应用程序任务,则高速缓存控制器1可以动态减少分配给另一个任务的区域大小,并将其分配给上述应用程序任务。
(14)上述实例修改可以以如下方式修改。假定一个应用程序在显示屏上通过由另一应用程序显示的窗口显示一窗口。在这种情况下,前面的应用程序被设置为具有实时保证需求的应用程序。作为选择,OS管理作为任务而执行的每个应用程序的操作历史。这样,具有高频率激活状态的应用程序被设置为具有实时保证需求的应用程序。
(15)本发明还应用到由上述高速缓存控制器1使用的高速缓存控制方法中。该方法由一控制程序实现。这种控制程序可以被分配作为一个数字信号。
(16)本发明可以由计算机可读存储介质实现,例如软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(blu-ray盘),或半导体存储器,在所述介质上记录有上述控制程序或数字信号。
(17)实现本发明的控制程序或数字信号也可以通过网络,例如电信网、有线或无线通信网、或互联网进行发送。
(18)实现本发明的控制程序或数字信号可以通过分配一其上记录有所述控制程序或数字信号的存储介质、或通过经某一网络发送该控制程序或数字信号来提供给一独立的计算机系统。然后所述独立的计算机系统可以执行上述控制程序或数字信号来实现本发明的作用。
尽管通过示例并参照附图对本发明进行了完整的说明,应当注意对于那些本领域技术人员来说可以很容易作出的各种变化和修改。
因此,除非这种变化和修改脱离了本发明的范围,否则应当认为这种变化和修改包含在本发明范围之内。
Claims (17)
1.一种用在包括高速缓冲存储器、主存储器和同时执行多个任务的微处理器的计算机系统中的高速缓存控制器,包括:
区域管理单元,可操作以管理与多个任务对应的高速缓冲存储器中的多个区域;
地址接收单元,可操作从微处理器中接收主存储器中的一个位置的地址,在该地址存储有将被存取以执行多个任务中的一个任务的数据;以及
高速缓存单元,如果将被存取的数据没有存储在高速缓冲存储器中,则该高速缓存单元可操作从主存储器中获取包括该数据的数据块,并将该获取的数据块存储到高速缓存器中对应于该任务的一个区域中。
2.根据权利要求1所述的高速缓存控制器,
其中区域管理单元将高速缓冲存储器分为数量上等于多个任务的多个区域,并以与多个任务一一对应的方式管理该多个区域。
3.根据权利要求2所述的高速缓存控制器,
其中区域管理单元接收有关微处理器同时执行多少个任务、以及执行多个任务中的每个任务所需的存储器大小的信息,并根据所接收的信息,将高速缓冲存储器分为多个区域。
4.根据权利要求3所述的高速缓存控制器,进一步包括:
任务ID接收单元,可操作以接收所述任务的任务ID,
其中区域管理单元以与多个任务的任务ID一一对应的方式管理多个区域,并且
高速缓存单元将所获取的数据块存储到高速缓冲存储器中对应于所接收的任务ID的区域中。
5.根据权利要求4所述的高速缓存控制器,
其中所述任务ID是主存储器中的一个位置的地址,在该地址上所述任务作为一个程序被存储。
6.根据权利要求4所述的高速缓存控制器,
其中所述任务ID是通过转换主存储器中一个位置的地址产生的,在该地址上所述任务作为一个程序被存储。
7.根据权利要求4所述的高速缓存控制器,
其中微处理器在操作系统的控制下执行多任务处理,并且
所述任务ID是由操作系统分配的进程ID。
8.根据权利要求4所述的高速缓存控制器,进一步包括:
判断单元,通过搜索多个区域中的所有区域,可操作以判断所述数据是否存储在高速缓冲存储器中。
9.根据权利要求4所述的高速缓存控制器,进一步包括:
判断单元,通过搜索对应于所述任务的区域,可操作以判断所述数据是否存储在高速缓冲存储器中。
10.根据权利要求4所述的高速缓存控制器,
其中高速缓冲存储器由多个通道构成,并且
所述多个区域每一个都包含至少一个通道。
11.根据权利要求10所述的高速缓存控制器,对每一个包含多于一个通道的区域使用组相联映像。
12.根据权利要求1所述的高速缓存控制器,
其中区域管理单元将高速缓冲存储器分为一特定区域和一非特定区域,并管理与多个任务之中的特定任务对应的特定区域,并且
如果所述任务是特定任务,则高速缓存单元将所获取的数据块存储到所述特定区域中,并且如果所述任务是除特定任务之外的任务,则高速缓存单元将所获取的数据块存储到所述非特定区域中。
13.根据权利要求1所述的高速缓存控制器,
其中微处理器同时执行第一任务、第二任务和第三任务,
区域管理单元将高速缓冲存储器分为第一区域和第二区域,并与第一任务和第二任务相对应地管理第一区域,与第三任务相对应地管理第二区域,并且
如果所述任务为第一任务或第二任务,则高速缓存单元将所获取的数据块存储到第一区域中,如果所述任务为第三任务,则将所获取的数据块存储到第二区域中。
14.一种用在包括高速缓冲存储器、主存储器和同时执行多个任务的微处理器的计算机系统中的高速缓存控制方法,包括:
(权利要求1)
15.一种包括高速缓冲存储器、高速缓存控制器、主存储器和同时执行多个任务的微处理器的计算机系统,
(权利要求1)
16.如权利要求15所述的计算机系统,进一步包括:
地址转换单元,可操作从微处理器接收表示主存储器中的位置的地址的逻辑地址,在该地址上存储有待存取的数据,该地址转换单元可操作将所述逻辑地址转换为物理地址,并发送该物理地址给地址接收单元,
其中高速缓存控制器进一步包括:
数据块管理单元,可操作使用所述物理地址来管理由高速缓存单元存储在高速缓冲存储器中的数据块。
17.如权利要求15所述的计算机系统,
其中地址接收单元从微处理器接收表示主存储器中的位置的地址的逻辑地址,在该地址上存储有待存取的数据,
所述高速缓存控制器进一步包括:
数据块管理单元,可操作使用所述逻辑地址来管理由高速缓存单元存储在高速缓冲存储器中的数据块,并且
所述计算机系统进一步包括:
地址转换单元,可操作将高速缓存控制器输出的逻辑地址转换为物理地址,并将该物理地址发送给主存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP327429/2002 | 2002-11-11 | ||
JP2002327429 | 2002-11-11 | ||
JP327429/02 | 2002-11-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1499381A true CN1499381A (zh) | 2004-05-26 |
CN1297905C CN1297905C (zh) | 2007-01-31 |
Family
ID=32732665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101204510A Expired - Lifetime CN1297905C (zh) | 2002-11-11 | 2003-11-11 | 高速缓存控制器、高速缓存控制方法以及计算机系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7246202B2 (zh) |
CN (1) | CN1297905C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100395693C (zh) * | 2005-04-22 | 2008-06-18 | 华为技术有限公司 | 一种动态自管理缓冲装置 |
CN100464290C (zh) * | 2007-09-10 | 2009-02-25 | 杭州华三通信技术有限公司 | 缓存管理系统 |
CN1928841B (zh) * | 2005-09-08 | 2010-10-13 | 松下电器产业株式会社 | 高速缓冲存储器分析方法 |
CN102483718A (zh) * | 2009-08-25 | 2012-05-30 | 国际商业机器公司 | 虚拟化环境中的高速缓存分区 |
CN111108485A (zh) * | 2017-08-08 | 2020-05-05 | 大陆汽车有限责任公司 | 操作高速缓存的方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005020111A2 (en) * | 2003-08-21 | 2005-03-03 | Koninklijke Philips Electronics, N.V. | Hardware register access via task tag id |
US8095736B2 (en) * | 2008-02-25 | 2012-01-10 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and systems for dynamic cache partitioning for distributed applications operating on multiprocessor architectures |
US8135911B2 (en) * | 2008-10-21 | 2012-03-13 | International Business Machines Corporation | Managing a region cache |
US8041852B1 (en) * | 2008-12-09 | 2011-10-18 | Calos Fund Limited Liability Company | System and method for using a shared buffer construct in performance of concurrent data-driven tasks |
JP2010244435A (ja) | 2009-04-08 | 2010-10-28 | Panasonic Corp | キャッシュ制御装置及びキャッシュ制御方法 |
JP6042170B2 (ja) | 2012-10-19 | 2016-12-14 | ルネサスエレクトロニクス株式会社 | キャッシュ制御装置及びキャッシュ制御方法 |
CN105144209A (zh) * | 2013-03-15 | 2015-12-09 | 英特里系统公司 | 用于支持多个企业管理商业合作伙伴以及相关联的资产的系统和方法 |
CN104641655A (zh) * | 2013-04-07 | 2015-05-20 | 华为技术有限公司 | 一种终端缓存的方法、终端及服务器 |
US20170083441A1 (en) * | 2015-09-23 | 2017-03-23 | Qualcomm Incorporated | Region-based cache management |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4493026A (en) * | 1982-05-26 | 1985-01-08 | International Business Machines Corporation | Set associative sector cache |
US4942518A (en) * | 1984-06-20 | 1990-07-17 | Convex Computer Corporation | Cache store bypass for computer |
US4926317A (en) * | 1987-07-24 | 1990-05-15 | Convex Computer Corporation | Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses |
KR930008050B1 (ko) * | 1990-02-16 | 1993-08-25 | 가부시끼가이샤 히다찌세이사꾸쇼 | 원칩 마이크로프로세서 및 그 버스시스템 |
JPH06175923A (ja) * | 1992-12-04 | 1994-06-24 | Oki Electric Ind Co Ltd | ディスクキャッシュ装置の制御方法 |
US6745292B1 (en) * | 1995-12-08 | 2004-06-01 | Ncr Corporation | Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors |
US5983329A (en) * | 1996-05-03 | 1999-11-09 | Sun Microsystems, Inc. | Caching virtual memory locks |
JP3088303B2 (ja) * | 1996-09-09 | 2000-09-18 | 日本電気アイシーマイコンシステム株式会社 | キャッシュ・メモリ・バンク制御装置 |
US6047339A (en) * | 1997-10-27 | 2000-04-04 | Emulex Corporation | Buffering data that flows between buses operating at different frequencies |
US6370622B1 (en) * | 1998-11-20 | 2002-04-09 | Massachusetts Institute Of Technology | Method and apparatus for curious and column caching |
JP2001256107A (ja) * | 2000-03-10 | 2001-09-21 | Matsushita Electric Ind Co Ltd | データ処理装置 |
US20020087824A1 (en) * | 2000-12-29 | 2002-07-04 | Hum Herbert H.J. | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache |
-
2003
- 2003-11-10 US US10/705,413 patent/US7246202B2/en active Active
- 2003-11-11 CN CNB2003101204510A patent/CN1297905C/zh not_active Expired - Lifetime
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100395693C (zh) * | 2005-04-22 | 2008-06-18 | 华为技术有限公司 | 一种动态自管理缓冲装置 |
CN1928841B (zh) * | 2005-09-08 | 2010-10-13 | 松下电器产业株式会社 | 高速缓冲存储器分析方法 |
CN100464290C (zh) * | 2007-09-10 | 2009-02-25 | 杭州华三通信技术有限公司 | 缓存管理系统 |
CN102483718A (zh) * | 2009-08-25 | 2012-05-30 | 国际商业机器公司 | 虚拟化环境中的高速缓存分区 |
US8739159B2 (en) | 2009-08-25 | 2014-05-27 | International Business Machines Corporation | Cache partitioning with a partition table to effect allocation of shared cache to virtual machines in virtualized environments |
US8745618B2 (en) | 2009-08-25 | 2014-06-03 | International Business Machines Corporation | Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments |
CN102483718B (zh) * | 2009-08-25 | 2014-12-24 | 国际商业机器公司 | 虚拟化环境中的高速缓存分区 |
CN111108485A (zh) * | 2017-08-08 | 2020-05-05 | 大陆汽车有限责任公司 | 操作高速缓存的方法 |
CN111108485B (zh) * | 2017-08-08 | 2023-11-24 | 大陆汽车科技有限公司 | 操作高速缓存的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20040148466A1 (en) | 2004-07-29 |
US7246202B2 (en) | 2007-07-17 |
CN1297905C (zh) | 2007-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1297905C (zh) | 高速缓存控制器、高速缓存控制方法以及计算机系统 | |
CN1306420C (zh) | 利用永久历史页表数据预取数据到高速缓存的装置和方法 | |
CN1276358C (zh) | 用于存储设备的地址转换单元 | |
CN1881183A (zh) | 信息处理装置、进程控制方法及其计算机程序 | |
CN1205553C (zh) | 分优先级访问外部装置的设备 | |
CN1879092A (zh) | 高速缓冲存储器及其控制方法 | |
CN1606097A (zh) | 闪速存储器控制装置、存储器管理方法、及存储器芯片 | |
CN1781075A (zh) | 电子文件更新期间的设备存储器管理 | |
CN1645342A (zh) | San环境中基于网络的海量存储资源管理方法 | |
CN1016829B (zh) | 在多任务虚拟存储器虚拟计算机型数据处理系统中控制输入输出存取的方法 | |
CN1306414C (zh) | 闪速存储器和闪速存储器的映射控制设备和方法 | |
CN1577310A (zh) | 信息处理系统和存储器管理方法 | |
CN1846200A (zh) | 在处理器中用于减少功耗的微变换检测缓冲器及微标记符 | |
CN1121014C (zh) | 具有risc结构的八位微控制器 | |
CN1296224A (zh) | 从虚地址计算页表索引的方法和装置 | |
CN1181528A (zh) | 二进制程序转换设备,转换方法和程序记录媒体 | |
CN101067779A (zh) | 用于处理来自主机的访问请求的存储系统及方法 | |
CN1652089A (zh) | 重映射闪速存储器的方法 | |
CN1159644C (zh) | 盘式存储装置和数据预读方法 | |
CN1248334A (zh) | 闪速存储器系统 | |
CN1690973A (zh) | 远程复制方法及远程复制系统 | |
CN1369094A (zh) | 用于改进声频和视频数据转移的盘驱动器 | |
CN1862698A (zh) | 信息处理系统、信息生成装置及方法、信息处理装置及方法、程序 | |
CN101060418A (zh) | 适用于带时移iptv直播服务器的专用磁盘读写系统 | |
CN1241098C (zh) | 存储系统中检验数据的方法及设备 |
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 | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20070131 |