专利名称:存储器访问控制装置及存储器访问控制方法
技术领域:
本发明涉及以组相联(set-associative)方式进行高速缓存(cache) 控制的存储器访问控制装置及存储器访问控制方法,特别涉及如下的存 储器访问控制装置及存储器访问控制方法防止高速缓存按照未预期的 定时清除(deletion),并将重试的发生限制在最小限,能够保持较高的高 速缓存命中率。
背景技术:
作为在存储器访问控制装置中使用的高速缓存控制方式之一,包括 组相联方式。组相联方式如下将数据块的地址的一部分作为索引,选 择组,将数据块存储到组所包含的WAY (路)的任意一个中。每个组中 存在多个WAY,例如为四路组相联方式的情况下,每个组中存在4个 WAY。在组相联方式中,由于不能将全部的数据块存储到高速缓存中,所 以存储器访问控制装置在适当替换高速缓存的内容的同时,将被访问的 可能性高的数据块保持在高速缓存中。用于替换高速缓存的内容的算法 被称为替换算法(replace algorithm),其对于提高高速缓存的命中率,是 非常重要的因素。但是,对于来自CPU (Central Processing Unit)的加载/存储请求, 其处理所需时间根据高速缓存是否命中而大不相同。来自CPU的请求未 命中高速缓存,需要对主存储器进行访问的情况下,所需处理时间为命 中高速缓存时的100倍以上。为了高效执行这种处理时间差异非常大的 处理,存储器访问控制装置具有移动缓存(Move In Buffer,以下称为 "MIB"),在此对主存储器的访问等处理时间较长的处理的执行进行管理。MIB具有多个条目(entry),在每个条目中存储处理对象的数据块的地址或WAY等信息。而且,根据存储于各条目的信息,执行处理并进行 监视, 一旦处理完成,则将与该处理对应的条目释放。通过像这样具有可并行执行多个请求的MIB,存储器访问控制装置不等待对主存储器的 访问等、延时(latency)较大的处理的执行结束,就能够执行其他处理。其中,在利用MIB的情况下,需要注意WAY的选择。例如,在MIB 中进行从主存储器加载与组1对应的数据块X的处理,该数据块X被高 速缓冲存储到WAY 0中。在此,若在存储与组1对应的数据块Y的其他 处理中,将WAYO选为高速缓存目的地,则刚刚将数据块Y存储到高速 缓存之后,通过MIB的加载处理,WAY0被重写(overwrite),存在存储 数据块Y从高速缓存中丢失的可能性。该情况下,在WAYO重写之前,数据块Y被写出到主存储器中,所 以不会发生数据本身的清除,但由于高速缓存的清除,会导致高速缓存 的命中率下降。并且,若在像1次高速缓存/2次高速缓存那样阶层化的 高速缓存系统的下位高速缓存中发生这种高速缓存的清除,则有可能使 上位高速缓存保持的数据块还必须保持在下位高速缓存这一包含关系瓦 解。而且,在现有的存储器访问控制装置中,采用如下方式当MIB中存在针对与处理中的数据块同组的数据块的加载/存储请求的情况下,重试请求,使请求的执行延迟到MIB的处理结束,从而避免高速缓存的清除。并且,替代该方式,如专利文献1中所述,还可以采用如下方式在MIB中进行同一组且同一 WAY的数据块的处理的情况下,还可以错 开相应件数份,选择WAY。专利文献l:日本特开2001-51899号公报但是,对于使请求的执行延迟的现有方式,虽然容易进行安装,但 另一方面仍存在如下问题当存在可用于同一组的WAY的情况下,也要 重试请求,导致性能下降。并且,对于专利文献1中记载的方式,由于 要选择与通过替换算法选择的WAY不同的WAY,因此,仍存在导致高 速缓存的命中率下降的问题。发明内容本发明是鉴于上述情况而提出的,其目的在于,提供一种存储器访 问控制装置及存储器访问控制方法,其能够防止因MIB动作而导致高速 缓存按照未预期的定时清除,并将重试的发生抑制在最小限,保持较高 的高速缓存的命中率。为了解决上述课题,达到上述目的,本发明提供一种存储器访问控 制装置,所述存储器访问控制装置具有存储与多个请求有关的信息、且 并行执行这些请求的缓存,并且,该存储器访问控制装置以组相联方式 进行高速缓存控制,该存储器访问控制装置的特征在于,该存储器访问 控制装置具备处理状况输出单元,其在对该存储器访问控制装置进行 了存储器访问请求的情况下,从所述缓存中选择以与该存储器访问请求 的处理对象的数据块同一组的数据块为处理对象的请求,输出分配给所选择的请求的WAY;替换WAY选择单元,其根据预定的替换算法,选 择除了通过所述处理状况输出单元输出的WAY以外的、分配给所述存储器访问请求的WAY;以及控制单元,其进行如下控制在所述存储器访问请求的处理对象的数据块未命中高速缓存的情况下,使得所述数据块存储于通过所述替换WAY选择单元选择的WAY。并且,本发明提供一种存储器访问控制装置的存储器访问控制方法, 其中,所述存储器访问控制装置具有存储与多个请求有关的信息、且并 行执行这些请求的缓存,并且,该存储器访问控制装置以组相联方式进 行高速缓存控制,所述存储器访问控制方法的特征在于,该存储器访问控制方法包括处理状况输出步骤,在对该存储器访问控制装置进行了存储器访问请求的情况下,从所述缓存中选择以与该存储器访问请求的 处理对象的数据块同一组的数据块为处理对象的请求,输出分配给所选择的请求的WAY;替换WAY选择步骤,根据预定的替换算法,选择除 了通过所述处理状况输出步骤输出的WAY以外的、分配给所述存储器访问请求的WAY;以及控制步骤,进行如下控制在所述存储器访问请求的处理对象的数据块未命中高速缓存的情况下,使得所述数据块存储于通过所述替换WAY选择步骤选择的WAY。根据这些发明,根据替换算法,选择除了分配给先行执行的请求的WAY以外的、分配给新请求的WAY,因此,能够在防止高速缓存按照未 预期的定时清除的同时,保持较高的高速缓存的命中率。并且,本发明的特征在于,在上述的发明中,所述替换算法为LRU (Least Recently Used:最近最少使用)算法。根据本发明,作为替换算法,利用LRU算法,从而能够提高高速缓 存的命中率。并且,本发明的特征在于,在上述的发明中,所述控制单元在所述 存储器访问请求的处理对象的数据块未命中高速缓存的情况下,在通过 所述处理状况输出单元输出的WAY包含可使用的全部WAY时,重试该 存储器访问请求。并且,本发明的特征在于,在上述的发明中,在所述控制步骤中, 在所述存储器访问请求的处理对象的数据块未命中高速缓存的情况下, 在通过所述处理状况输出步骤输出的WAY包含可使用的全部WAY时, 重试该存储器访问请求。根据这些发明,在请求的处理对象的数据块未命中高速缓存的情况 下,仅在全部WAY不可使用时,重试请求,因此,能够将因重试引起的 性能下降抑制在最小限。而且,本发明的特征在于,在上述的发明中,所述控制单元在所述 存储器访问请求的处理对象的数据块命中高速缓存的情况下,在命中的 WAY包含于通过所述处理状况输出单元输出的WAY时,重试该存储器 访问请求。此外,本发明的特征在于,在上述的发明中,在所述控制步骤中, 在所述存储器访问请求的处理对象的数据块命中高速缓存的情况下,在 命中的WAY包含于通过所述处理状况输出步骤输出的WAY时,重试该 存储器访问请求。根据这些发明,在请求的处理对象的数据块命中高速缓存的情况下, 命中的WAY包含于分配给先行执行的请求的WAY时,重试请求,因此, 能够防止高速缓存按照未预期的定时清除。发明效果根据本发明,根据替换算法,选择除了分配给先行执行的请求的 WAY以外的、分配给新请求的WAY,因此,发挥如下效果能够在防止 高速缓存按照未预期的定时清除的同时,保持较高的高速缓存的命中率。并且,根据本发明,作为替换算法,利用lru算法,因^:,发挥能够提高高速缓存的命中率的效果。而且,根据本发明,在请求的处理对象的数据块未命中高速缓存的情况下,仅在全部WAY不可使用时,重试请求,因此,发挥能够将因重 试引起的性能下降抑制在最小限的效果。此外,根据本发明,在请求的处理对象的数据块命中高速缓存的情 况下,命中的WAY包含于分配给先行执行的请求的WAY时,重试请求, 因此,发挥能够防止高速缓存按照未预期的定时清除的效果。
图1是示出本实施例的存储器访问控制装置的结构的功能框图。图2是示出MIB的结构的功能框图。图3是示出替换WAY选择部的结构的功能框图。图4是示出WAY选择部的结构的一例的电路概要图。图5是示出WAY使用判断部的结构的一例的电路概要图。图6是示出图1所示的存储器访问控制装置的处理顺序的流程图。图7是示出现有的存储器访问控制装置的结构的功能框图。图8是示出命中判断部的结构的功能框图。图9是示出MIB的结构的功能框图。图io是示出替换way选择部的结构的功能框图。图11是示出图7所示的存储器访问控制装置的处理顺序的流程图。标记说明11 13 OR电路;14 AND电路;21、 22 AND电路;23 OR 电路;100 CPU; 200 203存储器访问控制装置;210端口; 220命中 判断部;221标签存储器;222标签比较部;230 MIB; 231a寄存器;231b索引比较部;232处理状况输出部;240替换WAY选择部;241 LRU-RAM; 242WAY选择部;250控制部;300高速缓存;400主存储器; 500 503存储器访问控制装置;510端口; 520命中判断部;530MIB; 531a寄存器;531b索引比较部;531c解码器;531d处理对象WAY输 出部;532处理状况输出部;540替换WAY选择部;541 LRU-RAM; 542 WAY选择部;543 WAY使用判断部;550控制部具体实施方式
下面,根据附图,详细说明本发明的存储器访问控制装置以及存储 器访问控制方法的实施例。另外,本发明不受该实施例限定。 实施例首先,说明将请求执行延迟到MIB处理结束的现有的存储器访问控 制方式。图7是示出现有的存储器访问控制装置的结构的功能框图。如 图7所示,存储器访问控制装置200采用与CPU 100、高速缓存300以 及主存储器400相连的结构。CPU 100是执行各种处理的运算装置,对存储器访问控制装置200 发布向主存储器400加载/存储数据的请求,接收其结果。另外,当高速 缓存阶层化时,有时CPU 100和存储器访问控制装置200之间还隔着其 他存储器访问控制装置。高速缓存300是可进行高速访问的SRAM (Static Random Access Memory:静态随机访问存储器)等存储器,通过保持主存储器400的数 据的部分拷贝,从而提高数据访问速度。以数据块单位向高速缓存300 存储数据,数据块的存储位置由组和WAY的组合确定。主存储器400是 展开由CPU 100执行各种处理时所需的程序或数据的存储器。存储器访问控制装置200是控制对高速缓存30和主存储器400的访 问,以便能够高效执行CPU100的加载/存储请求的装置。存储器访问控 制装置200对高速缓存的控制采用组相联方式。并且,在每个处理器均具备高速缓存的多处理器系统的情况下,存 储器访问控制装置200还与存储器访问控制装置201 存储器访问控制装置203等其他存储器访问控制装置连接。如图7所示,存储器访问控制装置200具有端口 210、命中判断部 220、 MIB 230、替换WAY选择部240、以及控制部250。下面,关注于 到对新请求分配WAY为止的处理,说明各处理部的详细情况。端口 210是临时保持从CPU 100发送来的请求的装置。在此保持的 请求以预定的优先顺序读出,发送到控制部250。并且,与此同时,所读 出的请求的处理对象的数据块地址(以下称为"请求地址")被发送到命 中判断部220、 MIB 230以及替换WAY选择部240。命中判断部220是判断与从端口 210发送来的请求地址对应的数据 块是否存储于高速缓存300中的处理部。图8示出命中判断部220的结 构。如图8所示,命中判断部220具有标签存储器221和标签比较部222, 若从端口 210发送来请求地址,则将其索引输入到标签存储器221,将该 标签输入到标签比较部222。在此,先说明请求地址。请求地址分为标签、索引以及偏移量 (offset)。偏移量是请求地址的下位比特,是用于指定数据块内的位置的 部分。标签和索引是用于识别数据块的部分,使用其中的索引部分,确 定将数据块存储到高速缓存的哪一组。标签存储器221是用于存储与高速缓存300中存储的数据块有关的 管理信息的装置。这里所说的管理信息具体是指,数据块地址的标签、 是否进行了更新的状态、以及各种控制标记等。管理信息存储于与对应 数据块在高速缓存300中的存储位置相同的位置。即,当某个数据块存 储于高速缓存300的组1的WAYO的情况下,其管理信息存储于标签存 储器221的组1的WAYO。若请求地址的索引输入到标签存储器221,则该标签存储器221选 择与该索引对应的组,将所选择的组中包含的各WAY的管理信息发送到 标签比较部222。若请求地址的标签输入到标签比较部222,则该标签比较部222对 输入的标签和从标签存储器221发送来的管理信息进行比较,判断与请 求地址对应的数据块是否存储于高速缓存300中。具体地说,若从标签存储器221发送来的管理信息中存在与输入的标签相同的标签,则判断与该管理信息对应的WAY中高速缓存有数据块。而且,当标签比较部222判断为与请求地址对应的数据块存储于高 速缓存300的情况下,将HIT信号设为接通(ON),进一步将与存储有 数据块的WAY对应的HIT-WAY信号设为接通。另一方面,判断为与请 求地址对应的数据块未存储于高速缓存300的情况下,将MISS信号设为 接通。这些信号被输出到控制部250。MIB 230是对与主存储器400之间进行的数据块传送处理等耗时处 理的执行进行管理的处理部。图9示出MIB 230的结构。如该图所示, MIB 230具有MIB 0 MIB m的多个条目和处理状况输出部232,当从端 口 210发送来请求地址时,将该索引输入到各条目。各条目具有寄存器231a和索引比较部231b,用于管理分配给自身的 处理的执行。寄存器231a是用于存储与被分配的处理有关的信息的装置, 其存储表示是否对该条目分配了处理的V比特;表示被分配的处理的 请求地址的标签、索引和偏移量;分配给处理的WAY;以及各种控制标 记等。若请求地址的索引输入到索引比较部231b,则该索引比较部231b 取得该条目的寄存器231a的V比特和索引,将在V比特保持不变且所 输入的索引与所取得的索引一致的情况下输出的信号设为接通。而且,处理状况输出部232求出这样从各条目的索引比较部231b输 出的信号的逻辑和,作为MIB—INDEX—MCH信号输出。即,当与请求地 址具有同一索引的数据块在MIB 230中设为处理对象的情况下, MIB—INDEX—MCH信号为接通。该信号被输出到控制部250。替换WAY选择部240是用于选择应存储与从端口 210发送来的请求 地址对应的数据块的WAY的处理部。图10示出替换WAY选择部240 的结构。如该图所示,替换WAY选择部240具有LRU-RAM 241、 WAY 选择部242,当从端口 210发送来请求地址时,将其索引输入到LRU-RAM 241。LRU-RAM 241是用于将高速缓存300最后访问的时间按照每个组和每个WAY进行存储的装置。而且,若请求地址的索引输入到LRU-RAM 241,则该LRU-RAM 241选择与该索引对应的组,将所选择的组中包含 的各WAY最后进行访问的时间输出到WAY选择部242。若各WAY最后访问的时间输入到WAY选择部242,则该WAY选 择部242选择访问时间最早的WAY,将与该WAY对应的RPL-WAY信 号设为接通。此时,WAY选择部242参照被输入的退化信息,从选择对 象中除去因永久性故障等而不能使用的WAY。 RPL-WAY信号被输出到 控制部250。控制部250是用于执行与从端口 210发送来的请求对应的各种控制 的控制部。控制部250从端口 210接收请求,并作为上述处理结果,还 接受从命中判断部220、 MIB 230以及替换WAY选择部240输出的各种 信号的输入。而且,根据这些信号的状态,变更对请求的处置。具体地说,当从MIB 230输入的MIB—INDEX—MCH信号为接通的 情况下,将请求返回端口 210,进行重试。这是由于,在MIB 230进行 与请求地址具有同一索引的数据块的处理的情况下,存在如下的可能性 因从端口 210发送来的请求,导致存储于高速缓存300的数据块按照未预期的定时被重写,从高速缓存清除掉。在从MIB 230输入的MIB—INDEX一MCH信号断开的情况下,控制部250选择用于存储请求的处理对象的数据块的WAY,将所选择的WAY 分配给请求,执行与请求内容相应的处理。具体地说,在从命中判断部220输入的HIT信号为接通的情况下, 将从命中判断部220输入的HIT-WAY信号所表示的WAY、即请求地址 在标签存储器221命中的WAY (以下称为"命中WAY")分配给请求,执 行处理。并且,在从命中判断部220输入的MISS信号为接通的情况下,将 从替换WAY选择部240输入的RPL-WAY信号所示的WAY、即通过替 换算法判断为最适合于改写的WAY(以下称为"替换WAY")分配给请求, 执行处理。接着,说明图7所示的存储器访问控制装置200的处理顺序。图ll是示出图7所示的存储器访问控制装置200的处理顺序的流程图。该图 中示出控制部250接收到请求之后到选择要使用的WAY为止的处理顺 序。从端口 210发送来的请求被控制部250接收(步骤SlOl)。与此并 行,从端口 210发送来的请求地址被命中判断部220、 MIB 230、以及替 换WAY选择部240接收。接收到请求地址的命中判断部220对标签存储器221进行检索,调 査与请求地址对应的数据块是否存在于高速缓存中,将其结果输出到控 制部250 (步骤S102)。接收到请求地址的MIB 230调查是否正在执行将 与请求地址具有同一索引的数据块作为处理对象的处理,将其结果输出 到控制部250 (步骤S103)。并且,接收到请求地址的替换WAY选择部240,根据替换算法选择 属于与请求地址对应的组的WAY中最适合替换的WAY,将其结果输出 到控制部250 (步骤S104)。而且,控制部250借助来自MIB 230的输入,了解到Mffi 230中正在执行将与请求地址具有同一索引的数据块设为处理对象的处理的情况 下(步骤S105:是),将请求送回到端口210,进行重试。另一方面,当了解到在MIB 230中未执行将与请求地址具有同一索 引的数据块设为处理对象的处理的情况下(步骤S105:否),执行与请求 内容相应的处理。此时,通过标签存储器221的检索,判断出高速缓存有与请求地址 对应的数据块的情况下,(步骤S106:是),将从命中判断部220输入的 命中WAY作为高速缓存的存储位置,分配给请求(步骤S107)。并且, 判断为未高速缓存有与请求地址对应的数据块的情况下(步骤S106:否), 将从替换WAY选择部240输入的替换WAY,作为高速缓存的存储位置, 分配给请求(步骤S108)。像这样,在现有的存储器访问控制方式中,通过MIB 230的重写, 避免存储于高速缓存300的数据块按照未预期的定时清除,因此,在MIB 230中正在执行将与请求地址具有同一索引的数据块设为处理对象的处理的情况下,要重试请求。但是,即使MIB 230中正在执行将与请求地址具有同一索引的数据 块设为处理对象的处理,只要对新请求分配与分配给该处理的WAY不同 的WAY,就不会发生未预期的高速缓存清除的情况。g卩,在现有的存储 器访问控制方式中,进行没必要的请求重试,导致性能相应下降。接着,说明本实施例的存储器访问控制装置。图1是示出本实施例 的存储器访问控制装置的结构的功能框图。如该图所示,存储器访问控 制装置500采用与CPU 100、高速缓存300以及主存储器400相连的结 构。对于CPU 100、高速缓存300以及主存储器400,已进行了说明,因 此,在此省略说明。存储器访问控制装置500是控制对高速缓存300和主存储器400的 访问,以便能够高效执行CPU100的加载/存储请求的装置。存储器访问 控制装置500对高速缓存的控制采用组相联方式。另外,存储器访问控 制装置500还可以与CPU 100、高速缓存300或主存储器400作为一体 装置构成。并且,在每个处理器均具备高速缓存的多处理器系统的情况下,存 储器访问控制装置500还与存储器访问控制装置501 存储器访问控制装 置503等其他存储器访问控制装置连接。如图1所示,存储器访问控制装置500具有端口 510、命中判断部 520、 MIB 530、替换WAY选择部540、以及控制部550。下面,关注于 到给新请求分配WAY为止的处理,详细说明各处理部。端口 510是临时保持从CPU 100发送来的请求的装置。在此保持的 请求以预定的优先顺序读出,发送到控制部550。并且,与此同时,请求 地址被发送到命中判断部520、 MIB 530以及替换WAY选择部540。命中判断部520是判断与从端口 510发送来的请求地址对应的数据 块是否存储于高速缓存300的处理部。命中判断部520的结构与图8所 示的命中判断部220的结构相同,但是,其不仅将HIT-WAY信号输出给 控制部550,还输出给替换WAY选择部540。MIB 530是对与主存储器400之间进行的数据块传送处理等耗时处理的执行进行管理的处理部。图2示出MIB 530的结构。如该图所示、 MIB 530具有MIB 0 MIB m的多个条目和处理状况输出部532,当从端 口 510发送来请求地址时,将该索引输入到各条目。各条目具有寄存器531a、索引比较部531b、解码器531c、以及处理 对象WAY输出部531d。寄存器531a和索引比较部531b分别是与图9 所示的寄存器231a和索引比较部231b相同的装置。解码器531c是将与设定于寄存器531a的WAY对应的信号设为接 通,输出到处理对象WAY输出部531d的电路。处理对象WAY输出部 531d是在从索引比较部531b输出的信号为接通的情况下,将从解码器 531c输出的信号传送到处理状况输出部532的处理部。处理状况输出部532是求出从各条目的索引比较部531b输出的信号 的逻辑和,作为MIB—INDEX一MCH信号输出的处理部。并且,处理状况 输出部532对每个WAY求出从各条目的处理对象WAY输出部531d传送 来的信号的逻辑和,作为MIB一INDEX一MCH—WAY信号输出。艮卩,在MIB 530中正在执行将与请求地址具有同一索引的数据块设 为处理对象的处理的情况下,MIB一INDEX一MCH信号为接通。并且,对 于MIB一INDEX一MCH—WAY信号而言,在MIB 530中正在执行将与请求 地址具有同一索引的数据块设为处理对象的处理的情况下,与被分配给 处理的WAY对应的信号为接通。MIBJNDEX—MCH信号输出到控制部 550, MIB—INDEX—MCH_WAY信号输出到替换WAY选择部540。替换WAY选择部540是用于选择应存储与从端口 510发送来的请求 地址对应的数据块的WAY的处理部。图3示出替换WAY选择部540的 结构。如该图所示,替换WAY选择部540具有LRU-RAM 541、 WAY选 择部542、以及WAY使用判断部543,当从端口 510发送来请求地址时, 将该索引输入到LRU-RAM 541。LRU-RAM 541是与图10所示的LRU-RAM 241相同的装置,当被 输入了请求地址的索引时,选择与该索引对应的组,将所选择的组中包 含的各WAY最后访问的时间输出到WAY选择部542。若各WAY最后访问的时间输入到WAY选择部542,则该WAY选择部542选择访问时间最早的WAY,将与该WAY对应的RPL-WAY信 号设为接通。此时,WAY选择部542参照对每个WAY求出被输入的退 化信息和MIB—INDEX—MCH一WAY信号的逻辑和的DISABLE_WAY信 号,从选择对象中除去因永久性故障等而不能使用的WAY和分配给MIB 530正在执行的处理的WAY。 RPL-WAY信号被输出到控制部550。如上所述,将最后访问起经过时间最长的WAY选择为替换WAY的 替换算法称为LRU算法,其能够实现非常高的高速缓存的命中率。根据 上述的替换WAY选择部540的结构,根据LRU算法,选择除了分配给 MIB 530正在执行的处理的WAY以外的、替换WAY,因此,能够在保 持较高的高速缓存的命中率的状态下,实现避免未预期的高速缓存的清 除。并且,根据上述的替换WAY选择部540的结构,通过对以往因永久 性故障等而退化的WAY除外的结构进行扩展,从而能够容易地实现将分 配给MIB 530中正在执行的处理的WAY除外的功能。另外,还可以采用如下结构将高速缓存300最后访问的时间存储 到命中判断部520的标签存储器,而不存储于LRU-RAM 541。并且,作 为替换算法,可以替代LRU算法,采用其他算法。图4示出WAY选择部542的结构的一例。该图是WAY选择部542 中判断WAYO是否为替换WAY的部分的电路概要图。在WAY 1为选择对象外、或WAY 1的最终访问时间比WAYO的最 终访问时间晚的情况下、即WAYl不适合作为替换WAY的情况下,OR 电路ll的输出为接通。同样地,在WAY2不适合作为替换WAY的情况 下,OR电路12的输出为接通;在WAY 3不适合作为替换WAY的情况 下,OR电路13的输出为接通。而且,当OR电路11 13的输出全部为接通,WAYO不是选择对象 外的情况下,AND电路14的输出为接通。WAY选择部542存在WAY 数量份的与之相同的电路。WAY使用判断部543是判断WAY是否可以使用的处理部。WAY使 用判断部543参照DISABLE—WAY信号,当全部WAY为选择对象外的情况下,将表示不存在可选择的替换WAY的RPL-WAY—NOT—FOUND信号设为接通。并且,对照从命中判断部520输入的HIT-WAY信号和 DISABLE—WAY信号,当与HIT-WAY信号对应的WAY为选择对象外的 情况下,将HIT一WAY—IN—USE信号设为接通。请求地址在命中判断部520中命中任意一个WAY的情况下,若仅仅 读出高速缓存300上的数据块,则只不过是进行被分配区域的操作,所 以也可以不考虑在MIB 530正在进行的处理,而执行请求。但是,为了执行请求,需要取得MIB 530的条目的情况下,若分配 给新登记到MIB 530的条目中的处理的WAY,与分配给已登记到MIB 530的条目中的处理的WAY重复,则先完成的处理的高速缓存由于后完 成的处理而按照未预期的定时重写,存在高速缓存清除的可能性。为了避免高速缓存的清除,HIT—WAY一INJJSE信号被控制部550使 用。请求地址在命中判断部520中命中任意一个WAY的情况下,需要取 得MIB 530的条目,例如,在每个处理器具备高速缓存的多处理器系统 中,需要将其他高速缓存的数据块无效化的情况等。图5示出WAY使用判断部543的结构的一例。AND电路21的输出 是RPL-WAY—NOT—FOUND信号,在全部WAY为选择对象外的情况下, 为接通。请求地址在命中判断部520中命中任意一个WAY,该WAY为 选择对象外的情况下,AND电路22将与该WAY对应的输出设为接通。 OR电路23的输出为HIT_WAY—IN—USE信号,在AND电路22输出的 任意一个信号为接通的情况下,为接通。控制部550是执行与从端口 510发送来的请求对应的各种控制的控 制部。控制部550从端口 510接收请求,并且,作为上述处理的结果, 还接受从命中判断部520、 MIB 530以及替换WAY选择部540输出的各 种信号的输入。并且,根据这些信号的状态,变更对请求的处置。具体地说,从命中判断部520输入的MISS信号为接通的情况下, 即请求地址未命中高速缓存的情况下,若从替换WAY选择部540输入的 RPL-WAY—NOT—FOUND信号为接通,则全部WAY为选择对象外,因此,将请求送回到端口 510,进行重试。若RPL-WAY—NOT_FOUND信号为 断开,则将从替换WAY选择部540输入的RPL-WAY信号所表示的替换 WAY分配给请求,执行处理。并且,从命中判断部520输入的HIT信号为接通的情况下,即请求 地址命中高速缓存的情况下,若需要取得MIB 530的条目,且从替换WAY 选择部540输入的HIT-WAY—IN—USE信号为接通,则为了避免高速缓存 的清除,将请求送回到端口 510,进行重试。若不必取得MIB 530的条 目或HIT-WAY一IN一USE信号为断开,则使用从命中判断部520输入的 HIT-WAY信号表示的命中WAY,执行处理。另外,HIT-WAY—INJJSE信号为接通的情况下,存在高速缓存在短 时间内清除的可能性,由此,有可能导致高速缓存的命中率下降,因此, 也可以不管是否需要取得MIB 530的条目,重试请求。接着,说明图1所示的存储器访问控制装置500的处理顺序。图6 是示出图1所示的存储器访问控制装置500的处理顺序的流程图。该图 示出控制部550接收到请求之后到选择要使用的WAY为止的处理顺序。从端口 510发送来的请求被控制部550接收(步骤S201)。与此并 行地,从端口 510发送来的请求地址被命中判断部520、 MIB 530、以及 替换WAY选择部540接收。接收到请求地址的命中判断部520对标签存储器进行检索,调查是 否存在与请求地址相同的数据块,将其结果输出到控制部550和替换 WAY选择部540 (步骤S202)。接收到请求地址的MIB 530取得正在对 与请求地址具有同一索引的数据块进行处理的条目的处理对象WAY,将 取得结果输出到替换WAY选择部540 (步骤S203)。而且,接收到请求地址的替换WAY选择部540将从MIB 530通知 来的处理对象WAY除外,通过替换算法选择属于与请求地址对应的组的 WAY中最适合替换的WAY,将其结果输出到控制部550 (步骤S204)。 并且,调查从命中判断部520通知的命中WAY是否包含在处理对象WAY 中,将其结果也输出到控制部550 (步骤S205)。此外,控制部550在请求地址命中了命中判断部520的标签存储器的情况下(步骤S206:是),需要取得MIB 530的条目(步骤S207:是), 若命中WAY包含在处理对象WAY中(步骤S208:是),则将请求送回 到端口510,进行重试。若无需取得MIB 530的条目(步骤S207:否) 或命中WAY不包含在处理对象WAY中(步骤S208:否),则将从命中 判断部520输入的命中WAY,作为高速缓存的存储位置,执行处理(步 骤S209)。并且,请求地址在命中判断部520的标签存储器中未命中的情况下 (步骤S206:否),若全部WAY成为MIB 530的处理对象WAY (步骤 S210:是),则将请求送回到端口 510,进行重试。若不是这样(步骤S210: 否),则将从替换WAY选择部540输入的替换WAY,作为高速缓存的存 储位置,执行处理(步骤S211)。这样,在本实施例的存储器访问控制方式中,将MIB 530正在进行 的处理中成为使用对象的WAY除外,选择替换WAY,仅在全部WAY为 使用对象的情况下,重试请求,因此,能够将因重试而导致的性能下降 抑制在最小限。并且,采用替换WAY的选择始终根据替换算法进行的结 构,因此,能够确保较高的高速缓存命中率。产业上的可利用性如上所述,本发明的存储器访问控制装置以及存储器访问控制方法, 对于防止由MIB动作引起未预期定时下的高速缓存非常有用,尤其,能 够将重试的发生抑制在最小限,适合需要保持高的高速缓存的命中率的 情况。
权利要求
1.一种存储器访问控制装置,所述存储器访问控制装置具有存储与多个请求有关的信息、且并行执行这些请求的缓存,并且,该存储器访问控制装置以组相联方式进行高速缓存控制,该存储器访问控制装置的特征在于,该存储器访问控制装置具备处理状况输出单元,其在对该存储器访问控制装置进行了存储器访问请求的情况下,从所述缓存中选择以与该存储器访问请求的处理对象的数据块同一组的数据块为处理对象的请求,输出分配给所选择的请求的WAY;替换WAY选择单元,其根据预定的替换算法,选择除了通过所述处理状况输出单元输出的WAY以外的、分配给所述存储器访问请求的WAY;以及控制单元,其进行如下控制在所述存储器访问请求的处理对象的数据块未命中高速缓存的情况下,使得所述数据块存储于通过所述替换WAY选择单元选择的WAY。
2. 根据权利要求1所述的存储器访问控制装置,其特征在于,所述 替换算法是LRU算法。
3. 根据权利要求1所述的存储器访问控制装置,其特征在于,所述 控制单元在所述存储器访问请求的处理对象的数据块未命中高速缓存的 情况下,在通过所述处理状况输出单元输出的WAY包含可使用的全部 WAY时,重试该存储器访问请求。
4. 根据权利要求1所述的存储器访问控制装置,其特征在于,所述 控制单元在所述存储器访问请求的处理对象的数据块命中高速缓存的情 况下,在命中的WAY包含于通过所述处理状况输出单元输出的WAY时, 重试该存储器访问请求。
5. —种存储器访问控制装置的存储器访问控制方法,其中,所述存 储器访问控制装置具有存储与多个请求有关的信息、且并行执行这些请 求的缓存,并且,该存储器访问控制装置以组相联方式进行高速缓存控制,所述存储器访问控制方法的特征在于,该存储器访问控制方法包括: 处理状况输出步骤,在对该存储器访问控制装置进行了存储器访问 请求的情况下,从所述缓存中选择以与该存储器访问请求的处理对象的数据块同一组的数据块为处理对象的请求,lr出分配给所选择的请求的WAY;替换WAY选择步骤,根据预定的替换算法,选择除了通过所述处理 状况输出步骤输出的WAY以外的、分配给所述存储器访问请求的WAY; 以及控制步骤,进行如下控制在所述存储器访问请求的处理对象的数据块未命中高速缓存的情况下,使得所述数据块存储于通过所述替换WAY选择步骤选择的WAY。
6. 根据权利要求5所述的存储器访问控制方法,其特征在于,所述 替换算法是LRU算法。
7. 根据权利要求5所述的存储器访问控制方法,其特征在于,在所 述控制步骤中,在所述存储器访问请求的处理对象的数据块未命中高速 缓存的情况下,在通过所述处理状况输出步骤输出的WAY包含可使用的 全部WAY时,重试该存储器访问请求。
8. 根据权利要求5所述的存储器访问控制方法,其特征在于,所述 控制步骤中,在所述存储器访问请求的处理对象的数据块命中高速缓存 的情况下,在命中的WAY包含于通过所述处理状况输出步骤输出的WAY 时,重试该存储器访问请求。
全文摘要
本发明提供一种存储器访问控制装置及存储器访问控制方法。本发明的存储器访问控制装置(500),其具有存储与多个请求有关的信息、且并行执行这些请求的MIB(530)缓存。在对该存储器访问控制装置(500)进行了存储器访问请求的情况下,MIB(530)从所述缓存中选择将与存储器访问请求的处理对象的数据块同一组的数据块设为处理对象的请求,向替换WAY选择部(540)输出分配给所选择的请求的WAY。并且,替换WAY选择部(540)根据预定的替换算法,选择除了通过MIB(530)输出的WAY以外的、分配给所述存储器访问请求的WAY。
文档编号G06F12/12GK101336419SQ20068005200
公开日2008年12月31日 申请日期2006年1月31日 优先权日2006年1月31日
发明者大川智顺, 小岛广行 申请人:富士通株式会社