CN102609377A - 存储器存取控制电路、存储器设备和信息处理系统 - Google Patents

存储器存取控制电路、存储器设备和信息处理系统 Download PDF

Info

Publication number
CN102609377A
CN102609377A CN2012100057104A CN201210005710A CN102609377A CN 102609377 A CN102609377 A CN 102609377A CN 2012100057104 A CN2012100057104 A CN 2012100057104A CN 201210005710 A CN201210005710 A CN 201210005710A CN 102609377 A CN102609377 A CN 102609377A
Authority
CN
China
Prior art keywords
size
looking ahead
prefetch buffer
storer
change
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
Application number
CN2012100057104A
Other languages
English (en)
Inventor
木森祥隆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN102609377A publication Critical patent/CN102609377A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

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)
  • Memory System (AREA)

Abstract

公开了存储器存取控制电路、预取电路、存储器设备和信息处理系统。该存储器存取控制电路包括:预取大小改变命令检测部分,配置为检测改变从存储器传送到预取缓冲器的数据的预取大小的命令;传送状态监控部分,配置为监控在存储器与预取缓冲器之间传送数据的状态;和预取大小改变部分,配置为当检测到改变预取大小的命令和没有监控到在存储器与预取缓冲器之间传送数据的状态时,立即改变预取缓冲器中的预取大小,以及当检测到改变预取大小的命令和监控到在存储器与预取缓冲器之间传送数据的状态时,在完成在存储器与预取缓冲器之间传送数据的状态之后改变预取缓冲器中的预取大小。

Description

存储器存取控制电路、存储器设备和信息处理系统
技术领域
本公开涉及存储器存取控制电路。更具体地,本公开涉及从存储器预取数据的存储器存取控制电路、包括存储器存取控制电路的预取电路、包括预取电路的存储器设备以及包括存储器设备的信息处理系统。
背景技术
因为处理器将存储器用作指令保存区(hold area)和数据保存区,所以在程序运行期间,处理器需要频繁地存取存储器,该对存储器的频繁存取是存储器所承受的很重的负担。为了减小该负担的大小,即,为了减小处理器存取存储器的频率,在一些配置中在处理器与存储器之间提供预取(prefetch)缓冲器。因此,处理器可以存取预取缓冲器来代替存取存储器。在预取缓冲器中,以行为单位管理存储在预取缓冲器中的数据,每一行都由多个连续字组成。存取存储在预取缓冲器中的字称为高速缓冲命中(hit),而存取未存储在预取缓冲器中的字称为高速缓冲未命中(mishit)。如果在高速缓冲未命中下在预取缓冲器中没有找到处理器想要的字,则以批操作(batch operation)将包括想要的字的多个字从存储器中预取到预取缓冲器。
也称为预取大小的传送大小是在高速缓冲未命中的情况下以批操作从存储器中预取到预取缓冲器的字的数量。预取大小对处理器的处理运行性能的影响很大,如下所示。假如在处理运行时使用预取到预取缓冲器中的字,如果预取大小增加,则处理器的性能也提高。另一方面,如果在处理运行时不使用预取到预取缓冲器中的字,则不想要地浪费存储器存取带宽(band)。为了使预取大小可变,例如,已经提出了用于在提供的区属性管理表中保存各种预取大小的存储器控制器,在从存储器预取字到预取缓冲器的操作时从该区属性管理表查找预取大小。对于与提出的存储器控制器有关的更多信息,建议读者参考诸如日本专利特开号No.2004-240616的文件。
发明内容
根据上述现有技术,可以给每个逻辑地址块分配预取大小。然而,因为预取缓冲器的使用也取决于程序的结构,所以,一般难以确定最优的预取大小。另外,如果运行类型相互不同的程序,则最优预取大小随程序的不同而改变。因此,有时固定的预取大小是不合适的。
因此,本公开旨在解决上述问题,以动态地改变预取缓冲器的预取大小。
为了解决上述问题,根据本公开的第一实施例,提供一种存储器存取控制电路,包括:
预取大小改变命令检测部分,配置为检测改变从存储器传送到预取缓冲器的数据的预取大小的命令;
传送状态监控部分,配置为监控在存储器与预取缓冲器之间传送数据的状态;以及
预取大小改变部分,配置为当检测到改变预取大小的命令以及没有监控到在存储器与预取缓冲器之间传送数据的状态时,立即改变预取缓冲器中的预取大小,以及当检测到改变预取大小的命令以及监控到在存储器与预取缓冲器之间传送数据的状态时,在完成在存储器与预取缓冲器之间传送数据的状态之后改变预取缓冲器中的预取大小。
另外,为了解决上述问题,根据本公开第一实施例,提供了一种包括存储器存取控制电路的预取电路、包括预取电路的存储器设备以及包括存储器设备的信息处理系统。因此,本公开带来动态地改变预取缓冲器的预取大小的性能。
另外,根据本公开第一实施例,可以提供一种配置,其中:
存储器存取控制电路进一步具有最优预取大小确定块,配置为基于伴随由处理器进行的作为对存储器的读存取的存取的统计信息而确定预取缓冲器中的最优预取大小;以及
预取大小改变部分将预取缓冲器的预取大小改变为最优预取大小。
因此,本公开带来将预取缓冲器的预取大小动态地改变为最优预取大小的性能。
另外,根据本公开第一实施例,可以提供另一种配置,其中存储器存取控制电路进一步具有:
读请求带宽测量部分,配置为测量由处理器进行的作为对存储器的读请求的每个请求的读请求带宽;
平均延迟计算部分,配置为对于预取缓冲器的预取大小设置为第一预取大小值的情况以及对于预取缓冲器的预取大小设置为第二预取大小值的情况,基于统计信息计算处理器与存储器之间所需要的平均延迟;
迟延生成频率计算部分,配置为对于预取缓冲器的预取大小设置为第一预取大小值的情况以及对于预取缓冲器的预取大小设置为第二预取大小值的情况,基于读请求带宽以及平均延迟而计算迟延生成频率;
运行性能评估部分,配置为对于预取缓冲器的预取大小设置为第一预取大小值的情况以及对于预取缓冲器的预取大小设置为第二预取大小值的情况,评估处理器的运行性能;以及
最优预取大小确定块,配置为基于运行性能的评估结果而确定将第一预取大小值还是第二预取大小值取为最优预取大小。
因此,本公开带来基于统计信息而确定最优预取大小的性能。
另外,根据本公开的第一实施例,可以提供另一种配置,其中:
存储器存取控制电路进一步具有用于存储改变预取缓冲器的预取大小的命令的预取大小改变寄存器;以及
预取大小改变命令检测部分检测存储在预取大小改变寄存器中的作为用于改变预取缓冲器的预取大小的命令的命令。
因此,本公开带来通过从预取大小改变寄存器中读出命令来检测用于改变预取缓冲器的预取大小的命令的性能。
根据本公开,存储器存取控制电路能够展现出动态改变预取缓冲器的预取大小的优秀能力。
附图说明
图1是示出根据本公开实施例的信息处理系统的典型配置的框图;
图2是示出根据本公开实施例的信息处理系统中包括的处理器中采用的总线主接口的典型配置的图;
图3是示出信息处理系统中采用的作为根据本公开第一实施例的预取电路的预取电路的典型配置的框图;
图4A和图4B是示出根据本公开第一实施例的模式改变寄存器的典型配置的图;
图5是示出由根据本公开第一实施例的预取电路执行的操作的定时的定时图;
图6是示出信息处理系统中采用的作为根据本公开第二实施例的预取电路的预取电路的典型配置的框图;
图7是示出总线主接口中HBURST[2:0]信号的内容的图;
图8是示出根据本公开第二实施例的预取电路中采用的最优预取大小确定块的典型配置的框图;以及
图9示出表示由根据本公开第二实施例的预取电路执行的处理的具体过程的流程图。
具体实施方式
以下描述本公开的实施方式。在以下描述中,将每个实施方式称为实施例。实施例按以下排列的章节进行描述:
1:第一实施例(预取大小的动态控制)
2:第二实施例(最优预取大小的确定)
1:第一实施例
信息处理系统的配置
图1是示出根据本公开实施例的信息处理系统的典型配置的框图。如图所示,信息处理系统具有处理器100、客户机110至130、预取电路200、存储器总线300、存储器控制器400和存储器500。
处理器100通过运行程序指令来执行处理。程序指令预先存储在存储器500的指令保存区中。另外,处理所需要的数据存储在存储器500的数据保存区中。保存在存储器500的指令保存区中的一些指令的备份存储在预取电路200中。出于同样的原因,保存在存储器500的数据保存区中的部分数据的备份存储在预取电路200中。另外,处理器100包括内部高速缓冲存储器101。保存在存储器500的指令保存区中的一些指令的备份存储在高速缓冲存储器101中。出于同样的原因,保存在存储器500的数据保存区中的部分数据的备份存储在高速缓冲存储器101中。除此之外,处理器100还包括内部总线主接口102,用于通过存储器总线300与客户机110、120和130以及存储器500交换数据。
预取电路200预取保存在存储器500的指令保存区中的一些指令的备份以及保存在存储器500的数据保存区中的部分数据的备份,将备份存储到如稍后描述的预取电路200中采用的预取缓冲器210中。如稍后将解释,预取电路200接收卷绕(wrap-around)存储器存取请求的大小以及开始地址。预取电路200转换大小以及起始地址,将转换结果提供给存储器总线300。
存储器总线300连接到客户机110、120和130、连接到处理器100的预取电路200以及存储器控制器400。每个客户机110、120和130可以被看作处理器100之外的处理器。虽然本公开的实施方式并不局限于一元的存储器系统,但是可以假定图中所示的信息处理系统是一元的存储器系统。
存储器控制器400是用于控制对存储器500的存取的控制器。存储器500是处理器100以及每个都可被看作是处理器100之外的处理器的客户机110、120和130共享的存储器。
总线主接口
图2是示出根据本公开实施例的信息处理系统中包括的处理器100中采用的总线主接口102的典型配置的图。总线主接口102遵循ARM公司实行的AHB总线主接口。但是,本公开提供的总线主接口102并不局限于AHB总线主接口。例如,总线主接口102还可以应用于如在以AXI总线以及OCP总线的情况下进行卷绕存储器存取的其它总线。
HGRANT信号是指示传送是仲裁者允许的总线传送的信号。HREADY信号是指示电流传送已经结束的信号。HRESP[1:0]信号是指示传送状态的信号。HRESETn信号是用于执行全局复位的信号。应该注意,附加在信号名称HRESET的后缀“n”指示信号是低有效信号。
HCLK信号是总线时钟输入信号。HCLKEN信号是使能总线时钟输入信号的信号。HRDATA[31:0]信号是传递从存储器500读出的数据的输入信号。
HBUSREQ信号是输出到仲裁者的作为总线传送的请求的信号。HLOCK信号是指示存取是锁定的存取的信号。HTRANS[1:0]信号是指示当前传送的类型的信号。
HADDR[31:0]信号是传递读地址或者写地址给存储器500的地址信号。在突发(burst)传送的情况下,该地址信号传递传送的第一地址。HWRITE信号是指示当前传送的方向是写方向还是读方向的信号。HSIZE[2:0]信号是指示当前传送的大小的信号。HBURST[2:0]信号是指示当前传送的突发长度的信号。HPROT[3:0]信号是保护控制信号。HWDATA[31:0]信号是将要写入存储器500中的数据传递给存储器500的信号。
上述接口是通过存储器总线300的在处理器100与预取电路200之间的接口以及在预取电路200与存储器500之间的接口。然而,为了区别处理器100与预取电路200之间的接口和预取电路200与存储器500之间的接口,有时,对在处理器100与预取电路200之间的接口的每个信号附加前缀“A_”,而对在预取电路200与存储器500之间的接口的每个信号附加前缀″B_″。
预取电路的配置
图3是示出信息处理系统中采用的作为根据本公开第一实施例的预取电路200的预取电路200的典型配置的框图。如图所示,预取电路200采用预取缓冲器210、标签管理部分220、处理器接口230、总线接口240以及模式改变寄存器250。
预取缓冲器210用于为处理器100保存存储器500的指令保存区中保存的一些指令的备份。预取缓冲器210还用于为处理器100保存存储器500的数据保存区中保存的部分数据的备份。预取缓冲器210中使用的管理单元的大小假定为大于处理器100中采用的高速缓冲存储器的行大小。保存在预取缓冲器210中的指令以及数据在逻辑上可以相互区别。替代地,可以提供具有提供用于保存指令的缓冲器作为物理上与用于保存数据的缓冲器分开的缓冲器的配置的预取缓冲器210。
标签管理部分220是用于管理作为指令和数据保存在预取缓冲器210中的对象的地址的标签的部分。地址标签是从地址字段的多个重要位中选择的一些位。标签管理部分220采用模式改变命令检测块225以及模式改变块227。
模式改变命令检测块225是用于检测改变预取缓冲器210中的预取大小的模式的命令的部分。模式改变块227是用于改变预取缓冲器210中的预取大小的模式的部分。预取大小的模式一般假定为32字节模式或者64字节模式,其可以相互切换。对于32位数据总线宽度,可以通过执行8突发的卷绕突发传送来以32字节模式从存储器500预取对象到预取缓冲器210。出于同样的原因,对于32位数据总线宽度,可以通过执行16突发的卷绕突发传送来以64字节模式从存储器500预取对象到预取缓冲器210。应该注意,模式改变命令检测块225是本公开说明书的权利要求中描述的预取大小改变命令检测部分的典型示例。
处理器接口230是用于与处理器100交换信号的接口电路,而总线接口240是用于与存储器总线300交换信号的接口电路。总线接口240采用数据传送处理部分241和传送状态监控部分242。数据传送处理部分241是用于执行处理以在处理器100与存储器500之间传送数据的部分,而传送状态监控部分242是用于监控数据传送处理部分241以确定数据传送处理部分241是否执行处理以在处理器100与存储器500之间传送数据的部分。
模式改变寄存器250是用于存储从处理器100接收的用作改变预取缓冲器210中的预取大小的模式的命令的命令的寄存器。如稍后描述,模式改变寄存器250假定为具有两种类型,即,用于存储指令的寄存器以及用于存储数据的寄存器。替代地,然而,用于存储指令的寄存器与用于存储数据的寄存器可以实现为一个寄存器。应该注意,模式改变寄存器250是本公开说明书的权利要求中描述的预取大小改变寄存器的具体示例。
在改变预取缓冲器210中的预取大小的操作中,处理器100设置模式改变寄存器250中的模式标志。在设置模式改变寄存器250中的模式标志时,将模式标志的设置通过信号线259报告给标签管理部分220。在标签管理部分220中,模式改变命令检测块225检测存储在模式改变寄存器250中的用作改变预取大小的模式的命令的命令,然后将检测结果通过信号线226报告给模式改变块227。
同时,传送状态监控部分242监控数据传送处理部分241的状态,以确定数据传送处理部分241是否正在执行在处理器100与存储器500之间传送数据的处理。传送状态监控部分242将该确定结果作为监控结果通过信号线249报告给模式改变块227。
当模式改变命令检测块225通知模式改变块227由模式改变命令检测块225检测到的用作改变预取缓冲器210中的预取大小的模式的命令的命令时,假如数据传送处理部分241没有执行在处理器100与存储器500之间传送数据的处理,则模式改变块227立即改变预取大小的模式。另一方面,当模式改变命令检测块225通知模式改变块227由模式改变命令检测块225检测到的用作改变预取大小的模式的命令的命令时,如果数据传送处理部分241正在执行在处理器100与存储器500之间传送数据的处理,则模式改变块227在等待数据传送处理部分241终止数据传送处理之后改变预取缓冲器210中的预取大小的模式。另外,模式改变块227通过信号线229通知处理器接口230改变预取缓冲器210中的预取大小的模式的处理的状态。当模式改变块227正在执行改变预取缓冲器210中的预取大小的模式的处理时,处理器接口230将A_HREADY信号保持为反相状态,以防止处理器100发布下一命令给预取电路200。应该注意,模式改变块227是本公开说明书的权利要求中描述的预取大小改变部分的典型示例。
图4A和图4B是示出根据本公开第一实施例的模式改变寄存器250的典型配置的图。更具体地,图4A是示出用于存储改变预取缓冲器210中的数据的预取大小的命令的寄存器251的典型配置的图,而图4B是示出用于存储改变预取缓冲器210中的指令的预取大小的命令的寄存器252的典型配置的图。即使为数据提供寄存器251,而为指令提供寄存器252,寄存器251的字段配置也可以与寄存器252的字段配置相同。这些寄存器251与252能够物理上作为单个寄存器而逻辑上相当于以不同方式实施或者物理上作为两个不同寄存器实施。
假定每个寄存器251和252都具有32位配置。每个寄存器251和252的最低有效位是示出预取大小的模式的模式标志。例如,模式标志0是指示预取大小设置为32字节的32字节模式。另一方面,模式标志1是指示预取大小设置为64字节的64字节模式。为了设置预取大小,使得标签管理部分220中的标签无效。在完成使得标签无效的操作之后,设置预取大小。然而,如果数据传送处理部分241正在执行在处理器100与存储器500之间传送数据的处理,则延迟使得标签无效的操作。
预取电路的操作
图5是示出由根据本公开第一实施例的预取电路200执行的操作的定时的定时图。假定当在操作中正在将从存储器500中读出的数据传送给预取缓冲器210时,处理器100设置模式改变寄存器250中的预取大小改变命令以将预取大小从32字节改变为64字节。
在已经在模式改变寄存器250中设置预取大小改变命令之后,处理器接口230将A_HREADY信号保持为反相状态,以防止处理器100发布下一命令给预取电路200。然后,在完成传送从存储器500读出的数据的操作之后,传送状态监控部分242通过信号线249将传送终止信号传送给模式改变块227。在等待传送终止信号到达模式改变块227之后,标签管理部分220将标签无效,且当前模式信号将模式标志从指示32字节模式的0改变为指示64字节模式的1。然后,处理器接口230激活A_HREADY信号,以将预取电路200置于准备好从处理器100接收下一命令的状态。
如上所述,根据本公开第一实施例,可以在处理器100执行操作的过程中动态地改变预取大小同时保持数据的一致性。
2:第二实施例
在本公开第二实施例中,基于伴随由处理器100发布的作为对存储器500的读存取的存取的统计信息而确定预取缓冲器210中的最优预取大小。并且,在第二实施例的情况下,假定信息处理系统具有早先参考图1解释的典型配置。
预取电路的配置
图6是示出信息处理系统中采用的作为根据本公开第二实施例的预取电路200的预取电路200的典型配置的框图。如图所示,根据本公开第二实施例的预取电路200采用预取控制块201和最优预取大小确定块202。预取控制块201的基本配置包括与早先参考图3解释的用作根据第一实施例的预取电路200的预取电路200相同的部分。也就是说,预取控制块201采用预取缓冲器210、标签管理部分220、处理器接口230和总线接口240。
另外,根据第二实施例的预取电路200中采用的预取控制块201还具有命中率计算部分260。命中率计算部分260是用于基于伴随由处理器100发布的作为对存储器500的读存取的存取的统计信息而对于每个预取大小计算命中率的部分。命中率计算部分260通过信号线268或者269将计算的命中率提供给最优预取大小确定块202。为了方便起见,在该典型配置中将命中率计算部分260包括在预取控制块201中。然而,应该注意,也可以将命中率计算部分260包括在最优预取大小确定块202中。
图7是示出总线主接口102中的HBURST[2:0]信号的内容的图。如果HBURST[2:0]信号的内容设置为3′b000,则HBURST[2:0]信号指示单个传送。应该注意,表达式n′b0...0表示n位的字符串。在3′b000的这种情况下,n的值为3指示字符串是3位的字符串。
如果HBURST[2:0]信号的内容设置为3′b001,则HBURST[2:0]信号指示没有具体长度的递增突发传送(INCR)。递增突发传送是在每个突发传送中给地址添加固定值的传送。
如果HBURST[2:0]信号的内容设置为3′b010,则HBURST[2:0]信号指示4突发卷绕突发传送(WRAP4)。卷绕突发传送是在具体地址范围内添加地址以及在环形边界上卷绕地址的传送。在这种情况下,卷绕存储器存取理解为暗示与卷绕突发传送相同的。
如果HBURST[2:0]信号的内容设置为3′b011,则HBURST[2:0]信号指示4突发递增突发传送(INCR4)。如果HBURST[2:0]信号的内容设置为3′b100,则HBURST[2:0]信号指示8突发卷绕突发传送(WRAP8)。如果HBURST[2:0]信号的内容设置为3′b101,则HBURST[2:0]信号指示8突发递增突发传送(INCR8)。如果HBURST[2:0]信号的内容设置为3′b110,则HBURST[2:0]信号指示16突发卷绕突发传送(WRAP16)。如果HBURST[2:0]信号的内容设置为3′b111,则HBURST[2:0]信号指示16突发递增突发传送(INCR16)。
当处理器100通过使用A_HBURST[2:0]信号发布WRAP4指令给预取电路200时,取决于预取模式,总线接口240通过使用B_HBURST[2:0]信号发布WRAP8或者WRAP16指令给存储器500。也就是说,如果预取模式是32字节模式,则总线接口240通过使用B_HBURST[2:0]信号发布WRAP8指令给存储器500。另一方面,如果预取模式是64字节模式,则总线接口240通过使用B_HBURST[2:0]信号发布WRAP16指令给存储器500。
图8是示出根据本公开第二实施例的预取电路200中采用的最优预取大小确定块202的典型配置的框图。最优预取大小确定块202是用于确定L大小以及S大小中哪一个是适于预取缓冲器210的模式的预取大小的部分。在这种情况下,关系L大小>S大小保持为真。例如,能够假定L以及S大小分别为64以及32字节。最优预取大小确定块202具有性能目标值寄存器271以及命中延迟寄存器272。另外,最优预取大小确定块202还包括读请求带宽测量部分281以及未命中延迟测量部分282。除此之外,最优预取大小确定块202还分别采用用于两个预取大小,即,分别用于L以及S大小的L大小平均延迟计算部分283以及S大小平均延迟计算部分、分别用于两个预取大小,即,分别用于L以及S大小的L大小停止生成频率计算部分285以及S大小停止生成频率计算部分286、以及分别用于两个预取大小,即,分别用于L以及S大小的L大小运行性能评估部分287以及S大小运行性能评估部分288。此外,最优预取大小确定块202还具有模式确定部分289。
性能目标值寄存器271是用于保存作为用于确定预取大小的模式的目标值的处理器100的性能目标值的寄存器。例如,MIPS(百万指令每秒)值可以用作处理器100的性能目标值。处理器100的性能目标值可以根据系统规格而确定以及由处理器接口230通过信号线239在性能目标值寄存器271中设置。
命中延迟寄存器272是用于保存在已经命中预取缓冲器210的情况下的延迟的寄存器。延迟是在处理器100中发布由处理器100做出的读请求与读请求想要的应答数据的到达之间所需要的周期数。如果已经命中预取缓冲器210,则计算的延迟是存储在命中延迟寄存器272中的常数。处理器接口230通过信号线239在命中延迟寄存器272中设置命中延迟。
读请求带测量部分281是用于基于输出到处理器100的应答数据的字节数而实时测量在任一给定点处处理器100每秒做出的读请求的带宽的部分。读请求带宽的单位一般是MB/s(兆字节每秒)。每次接收到由处理器100做出的读请求时更新由读请求带宽测量部分281执行的测量结果。将最后1秒期间执行的测量结果提供给L大小停止生成频率计算部分285以及S大小停止生成频率计算部分286。
未命中延迟测量部分282是用于测量未命中预取缓冲器210的情况下的延迟的部分。如果未命中预取缓冲器210,则做出对存储器500的突发存取。因此,在处理器100中发布由处理器100做出的读请求与读请求想要的应答数据的到达之间的时间是对存储器500的存取所花费的时间。将未命中延迟测量部分282执行的测量结果提供给L大小平均延迟计算部分283以及S大小平均延迟计算部分284。
L大小平均延迟计算部分283以及S大小平均延迟计算部分284是用于计算用于预取大小的模式的平均延迟的部分。更具体地,L大小平均延迟计算部分283是用于计算用于L大小的平均延迟的部分,而S大小平均延迟计算部分284是用于计算用于S大小的平均延迟的部分。因为L大小的命中率不同于S大小的命中率,所以L大小平均延迟计算部分283与S大小平均延迟计算部分284计算用于预取大小的模式的平均延迟。命中率计算部分260通过信号线268将用于S大小的命中率提供给S大小平均延迟计算部分284以及通过信号线269将用于L大小的命中率提供给L大小平均延迟计算部分283。
令符号A表示保存在命中延迟寄存器272中的命中延迟,而符号B表示由未命中延迟测量部分282测量的未命中延迟。另外,令符号X表示由命中率计算部分260计算的作为用于S大小的命中率的命中率。在这种情况下,根据以下公式可以获得用于S大小的平均延迟LS:
LS=A×X+B×(1-X)
令符号Y表示由命中率计算部分260计算的作为用于L大小的命中率的命中率。在这种情况下,可以以下公式能够获得用于L大小的平均延迟LL:
LL=A×Y+B×(1-Y)
L大小平均延迟计算部分283计算用于L大小的平均延迟LL,而S大小平均延迟计算部分284计算用于S大小的平均延迟LS。
L大小停止生成频率计算部分285以及S大小停止生成频率计算部分286是用于计算用于预取大小的模式的停止生成频率的部分。更具体地,L大小停止生成频率计算部分285是用于计算用于L大小的停止生成频率的部分,而S大小停止生成频率计算部分286是用于计算用于S大小的停止生成频率的部分。停止生成频率是处理器100每秒的停止数。令符号Q表示由读请求带宽测量部分281测量的读请求带宽,以及令S大小设置为32字节。在这种情况下,根据以下公式可以求出用于S大小的停止生成频率SS:
SS=LS×Q/32
令L大小设置为64字节。在这种情况下,根据以下公式可以求出用于L大小的停止生成频率SL:
SL=LL×Q/64
L大小停止生成频率计算部分285计算用于L大小的停止生成频率SL,而S大小停止生成频率计算部分286计算用于S大小的停止生成频率SS。
L大小运行性能评估部分287以及S大小运行性能评估部分288是用于确定停止生成频率是否在用于预取大小的模式的性能目标值允许的范围之内的部分。更具体地,L大小运行性能评估部分287是用于确定停止生成频率是否在用于L大小的性能目标值允许的范围之内的部分,而S大小运行性能评估部分288是用于确定停止生成频率是否在用于S大小的性能目标值允许的范围之内的部分。处理器100的性能值由以下公式表示:
处理器性能值[MIPS]=处理器操作频率[MHz]-停止生成频率[MHz]/CPI
上述公式中使用的符号CPI(周期每指令)表示每指令的运行周期数。在这种情况下,假定CPI等于1,则可以通过从处理器100的操作频率中减去停止生成频率来获得处理器100的性能值。因此,通过将差值(处理器操作频率-处理器性能目标值)与停止生成频率进行比较,有可能确定停止生成频率是否在性能目标值允许的范围之内。
也就是说,L大小运行性能评估部分287将作为从处理器100的操作频率中减去保存在性能目标值寄存器271中的处理器性能目标值的结果而获得的值与由L大小停止生成频率计算部分285计算的作为用于L大小的停止生成频率的停止生成频率进行比较。如果发现前者大于后者,则L大小运行性能评估部分287确定用于L大小的停止生成频率在性能目标值允许的范围之内。
另外,S大小运行性能评估部分288将作为从处理器100的操作频率中减去保存在性能目标值寄存器271中的处理器性能目标值的结果而获得的值与由S大小停止生成频率计算部分286计算的作为用于S大小的停止生成频率的停止生成频率进行比较。如果发现前者大于后者,则S大小运行性能评估部分288确定用于S大小的停止生成频率在性能目标值允许的范围之内。
模式确定部分289是用于根据由L大小运行性能评估部分287以及S大小运行性能评估部分288执行的评估结果来确定预取模式的部分。也就是说,如果L大小运行性能评估部分287确定用于L大小的停止生成频率在性能目标值允许的范围之内,以及S大小运行性能评估部分288也确定用于S大小的停止生成频率在性能目标值允许的范围之内,则模式确定部分289选择由用于S大小的模式提供的较小大小作为最优预取大小。
如果L大小运行性能评估部分287确定用于L大小的停止生成频率在性能目标值允许的范围之内,而S大小运行性能评估部分288确定用于S大小的停止生成频率不在性能目标值允许的范围之内,则模式确定部分289选择用于L大小的模式作为最优预取大小。
如果L大小运行性能评估部分287确定用于L大小的停止生成频率不在性能目标值允许的范围之内,以及S大小运行性能评估部分288也确定用于S大小的停止生成频率不在性能目标值允许的范围之内,则不能够将用于S以及L大小的模式选为最优预取大小。在这种情况下,生成中断。
应该注意,逻辑上没有L大小运行性能评估部分287确定用于L大小的停止生成频率不在性能目标值允许的范围之内,而S大小运行性能评估部分288确定用于S大小的停止生成频率在性能目标值允许的范围之内的情况。
模式确定部分289通过信号线299将最优预取大小提供给预取电路200中采用的标签管理部分220。应该注意,模式确定部分289是本公开说明书的权利要求中描述的最优预取大小确定块的具体示例。
标签管理部分220的内部配置与之前参考图3描述的根据第一实施例的预取电路200中采用的标签管理部分220相同。也就是说,当模式改变命令检测块225通过信号线299从模式确定部分289接收到已经由模式确定部分289产生的确定结果时,模式改变命令检测块225检测作为模式改变命令的确定结果。模式改变块227在等待完成总线接口240中执行的传送处理之后改变预取大小的模式。
预取电路的操作
图9示出表示由根据本公开第二实施例的预取电路200执行的处理的具体过程的流程图。如图所示,流程图从步骤S901开始,其中在性能目标值寄存器271中预先设置处理器100的运行性能的目标值。
然后,在接下来的步骤S902,以设置为用于S大小模式以及L大小模式的值的预取大小,处理器100运行程序以获取统计信息。在这种情况下,假定统计信息包括由命中率计算部分260计算的命中率、由读请求带宽测量部分281测量的读请求带宽以及由未命中延迟测量部分282测量的未命中延迟。然后,在接下来的步骤S903,L大小平均延迟计算部分283以及S大小平均延迟计算部分284基于该多条统计信息来计算用于预取大小的模式的平均延迟,而L大小停止生成频率计算部分285以及S大小停止生成频率计算部分286基于平均延迟来计算用于预取大小的模式的停止生成频率。
随后,在接下来的步骤S904,,L大小运行性能评估部分287以及S大小运行性能评估部分288通过确定停止生成频率是否满足停止生成频率在每个性能目标值允许的他们的各个范围之内的条件,来评估停止生成频率。根据由L大小运行性能评估部分287以及S大小运行性能评估部分288在步骤S904产生的评估结果,模式确定部分289按以下选择预取大小的模式。
在接下来的步骤S905,检查由L大小运行性能评估部分287以及S大小运行性能评估部分288在步骤S904产生的评估结果,以确定两种停止生成频率是否都满足上述条件。
如果在步骤S905产生的确定结果指示两种停止生成频率都满足条件,则过程流前进到步骤S907,在该步骤,模式确定部分289选择S大小的模式作为最优预取大小。用这种方法,改变了预取大小的模式。
另一方面,如果在步骤S905产生的确定结果指示两种停止生成频率不是都满足条件,则过程流前进到步骤S906,在该步骤,检查由L大小运行性能评估部分287以及S大小运行性能评估部分288在步骤S904产生的评估结果,以便确定是否任意一个停止生成频率满足条件。
如果在步骤S906产生的确定结果指示任意一个停止生成频率满足条件,则过程流前进到步骤S908,在该步骤,模式确定部分289选择L大小的模式作为最优预取大小。用这种方法,改变预取大小的模式。
另一方面,如果在步骤S906产生的确定结果指示两种停止生成频率都不满足条件,则过程流前进到步骤S909,在该步骤,模式确定部分289生成中断。
如上所述,根据本公开第二实施例,基于统计信息而确定最优预取大小,以使得可以动态地改变预取大小。
应该注意,本公开的实施例仅是本公开的具体实施方式,以及从实施例的描述中显而易见,实施例的每个要素与本公开说明书中包括的权利要求中描述的发明具体要素相对应。出于同样的原因,本公开说明书中包括的权利要求中描述的每个发明具体要素与具有与发明具体要素名称相同的用作实施例中包括的实施例要素的实施例要素相对应。然而,本公开的实施方式并不局限于本公开的实施例。也就是说,在不背离本公开的本质的范围之内,能够对本公开的实施例进行各种修改。
本公开包含与于2011年1月17日在日本专利局提交的日本优先权专利申请JP 2011-006574中公开的主题有关的主题,在此将其全部内容通过引用并入。

Claims (7)

1.一种存储器存取控制电路,包括:
预取大小改变命令检测部分,配置为检测改变从存储器传送到预取缓冲器的数据的预取大小的命令;
传送状态监控部分,配置为监控在所述存储器与所述预取缓冲器之间传送数据的状态;以及
预取大小改变部分,配置为当检测到所述改变所述预取大小的命令以及没有监控到在所述存储器与所述预取缓冲器之间传送数据的状态时,立即改变所述预取缓冲器中的所述预取大小,以及当检测到所述改变所述预取大小的命令以及监控到所述在所述存储器与所述预取缓冲器之间传送数据的状态时,在完成所述在所述存储器与所述预取缓冲器之间传送数据的状态之后改变所述预取缓冲器中的所述预取大小。
2.根据权利要求1所述的存储器存取控制电路,所述存储器存取控制电路进一步具有
最优预取大小确定块,配置为基于伴随由处理器进行的作为对所述存储器的读存取的存取的统计信息而确定所述预取缓冲器中的最优预取大小,
其中所述预取大小改变部分将所述预取缓冲器的所述预取大小改变为所述最优预取大小。
3.根据权利要求2所述的存储器存取控制电路,所述存储器存取控制电路进一步具有:
读请求带宽测量部分,配置为测量每个都由所述处理器做出的作为对所述存储器的读请求的请求的读请求带宽;
平均延迟计算部分,配置为对于所述预取缓冲器的所述预取大小设置为第一预取大小值的情况以及对于所述预取缓冲器的所述预取大小设置为第二预取大小值的情况,基于所述统计信息而计算所述处理器与所述存储器之间所需要的平均延迟;
停止生成频率计算部分,配置为对于所述预取缓冲器的所述预取大小设置为所述第一预取大小值的情况以及对于所述预取缓冲器的所述预取大小设置为所述第二预取大小值的情况,基于所述读请求带宽以及所述平均延迟而计算停止生成频率;
运行性能评估部分,配置为对于所述预取缓冲器的所述预取大小设置为所述第一预取大小值的情况以及对于所述预取缓冲器的所述预取大小设置为所述第二预取大小值的情况,评估所述处理器的运行性能;以及
最优预取大小确定块,配置为基于所述运行性能的所述评估结果而确定将所述第一预取大小值还是所述第二预取大小值取为所述最优预取大小。
4.根据权利要求1所述的存储器存取控制电路,所述存储器存取控制电路进一步具有
预取大小改变寄存器,配置为存储所述用于改变所述预取缓冲器的所述预取大小的命令,
其中,所述预取大小改变命令检测部分检测存储在所述预取大小改变寄存器中的用作所述改变所述预取缓冲器的所述预取大小的命令的命令。
5.一种预取电路,包括:
预取缓冲器;
预取大小改变命令检测部分,配置为检测改变从存储器传送到所述预取缓冲器的数据的预取大小的命令;
传送状态监控部分,配置为监控在所述存储器与所述预取缓冲器之间传送数据的状态;以及
预取大小改变部分,配置为当检测到所述改变所述预取大小的命令以及没有监控到在所述存储器与所述预取缓冲器之间传送数据的状态时,立即改变所述预取缓冲器中的所述预取大小,以及当检测到所述改变所述预取大小的命令以及监控到所述在所述存储器与所述预取缓冲器之间传送数据的状态时,在完成所述在所述存储器与所述预取缓冲器之间传送数据的状态之后改变所述预取缓冲器中的所述预取大小。
6.一种存储器设备,包括:
存储器;
预取缓冲器,用于存储所述存储器中存储的一些数据的备份;
预取大小改变命令检测部分,配置为检测改变从所述存储器传送到所述预取缓冲器的数据的预取大小的命令;
传送状态监控部分,配置为监控在所述存储器与所述预取缓冲器之间传送数据的状态;以及
预取大小改变部分,配置为当检测到所述改变所述预取大小的命令以及没有监控到在所述存储器与所述预取缓冲器之间传送数据的状态时,立即改变所述预取缓冲器中的所述预取大小,以及当检测到所述改变所述预取大小的命令以及监控到所述在所述存储器与所述预取缓冲器之间传送数据的状态时,在完成在所述存储器与所述预取缓冲器之间传送数据的状态之后改变所述预取缓冲器中的所述预取大小。
7.一种信息处理系统,包括:
处理器;
存储器;
预取缓冲器,用于存储所述存储器中存储的一些数据的备份;
预取大小改变命令检测部分,配置为检测改变从所述存储器传送到所述预取缓冲器的数据的预取大小的命令;
传送状态监控部分,配置为监控在所述存储器与所述预取缓冲器之间传送数据的状态;以及
预取大小改变部分,配置为当检测到所述改变所述预取大小的命令以及没有监控到在所述存储器与所述预取缓冲器之间传送数据的状态时,立即改变所述预取缓冲器中的所述预取大小,以及当检测到所述改变所述预取大小的命令以及监控到所述在所述存储器与所述预取缓冲器之间传送数据的状态时,在完成所述在所述存储器与所述预取缓冲器之间传送数据的状态之后改变所述预取缓冲器中的所述预取大小。
CN2012100057104A 2011-01-17 2012-01-10 存储器存取控制电路、存储器设备和信息处理系统 Pending CN102609377A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-006574 2011-01-17
JP2011006574A JP2012150529A (ja) 2011-01-17 2011-01-17 メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム

Publications (1)

Publication Number Publication Date
CN102609377A true CN102609377A (zh) 2012-07-25

Family

ID=46491639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012100057104A Pending CN102609377A (zh) 2011-01-17 2012-01-10 存储器存取控制电路、存储器设备和信息处理系统

Country Status (3)

Country Link
US (1) US20120185651A1 (zh)
JP (1) JP2012150529A (zh)
CN (1) CN102609377A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636270A (zh) * 2013-11-14 2015-05-20 Arm有限公司 数据处理装置中的自适应预取
CN105930281A (zh) * 2016-05-12 2016-09-07 清华大学 以配置信息驱动数据访存模式匹配的片上缓存预取机制
CN109074331A (zh) * 2016-03-27 2018-12-21 高通股份有限公司 具有系统高速缓存和本地资源管理的功率降低存储器子系统

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5971211B2 (ja) * 2013-08-06 2016-08-17 株式会社デンソー 電子制御装置
US10628163B2 (en) 2014-04-17 2020-04-21 Texas Instruments Incorporated Processor with variable pre-fetch threshold
US9785371B1 (en) * 2016-03-27 2017-10-10 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US10942854B2 (en) 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
US11010092B2 (en) * 2018-05-09 2021-05-18 Micron Technology, Inc. Prefetch signaling in memory system or sub-system
US10754578B2 (en) 2018-05-09 2020-08-25 Micron Technology, Inc. Memory buffer management and bypass
US10714159B2 (en) 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US11520703B2 (en) * 2019-01-31 2022-12-06 EMC IP Holding Company LLC Adaptive look-ahead configuration for prefetching data in input/output operations
US11210093B2 (en) 2019-04-08 2021-12-28 Micron Technology, Inc. Large data read techniques
US11954023B2 (en) 2022-07-20 2024-04-09 Microsoft Technology Licensing, Llc Garbage collection prefetching state machine

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3188071B2 (ja) * 1993-10-14 2001-07-16 富士通株式会社 ディスクキャッシュ装置
US5935232A (en) * 1995-11-20 1999-08-10 Advanced Micro Devices, Inc. Variable latency and bandwidth communication pathways
US7181588B2 (en) * 2003-05-22 2007-02-20 International Business Machines Corporation Computer apparatus and method for autonomic adjustment of block transfer size
US20060161647A1 (en) * 2004-12-22 2006-07-20 Waldemar Wojtkiewicz Method and apparatus providing measurement of packet latency in a processor
US20060168571A1 (en) * 2005-01-27 2006-07-27 International Business Machines Corporation System and method for optimized task scheduling in a heterogeneous data processing system
JP4099725B2 (ja) * 2005-09-16 2008-06-11 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置
US7594057B1 (en) * 2006-01-09 2009-09-22 Qlogic, Corporation Method and system for processing DMA requests
JP2007241927A (ja) * 2006-03-13 2007-09-20 Toshiba Corp データ記憶装置及び方法
US7730239B2 (en) * 2006-06-23 2010-06-01 Intel Corporation Data buffer management in a resource limited environment
US8700823B2 (en) * 2007-03-15 2014-04-15 Broadcom Corporation Software driver interconnect framework
US8103832B2 (en) * 2007-06-26 2012-01-24 International Business Machines Corporation Method and apparatus of prefetching streams of varying prefetch depth
US20090240874A1 (en) * 2008-02-29 2009-09-24 Fong Pong Framework for user-level packet processing
US8069299B2 (en) * 2008-06-30 2011-11-29 Intel Corporation Banded indirection for nonvolatile memory devices

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636270A (zh) * 2013-11-14 2015-05-20 Arm有限公司 数据处理装置中的自适应预取
CN109074331A (zh) * 2016-03-27 2018-12-21 高通股份有限公司 具有系统高速缓存和本地资源管理的功率降低存储器子系统
CN109074331B (zh) * 2016-03-27 2022-03-22 高通股份有限公司 具有系统高速缓存和本地资源管理的功率降低存储器子系统
CN105930281A (zh) * 2016-05-12 2016-09-07 清华大学 以配置信息驱动数据访存模式匹配的片上缓存预取机制
CN105930281B (zh) * 2016-05-12 2019-01-15 清华大学 以配置信息驱动数据访存模式匹配的片上缓存预取机制

Also Published As

Publication number Publication date
US20120185651A1 (en) 2012-07-19
JP2012150529A (ja) 2012-08-09

Similar Documents

Publication Publication Date Title
CN102609377A (zh) 存储器存取控制电路、存储器设备和信息处理系统
CN108475236B (zh) 测量地址转换延迟
US7640420B2 (en) Pre-fetch apparatus
US8788759B2 (en) Double-buffered data storage to reduce prefetch generation stalls
EP3676713B1 (en) Utilization-based throttling of hardware prefetchers
EP1191454B1 (en) Adaptive retry mechanism
US20030028694A1 (en) Prefetching data for peripheral component interconnect devices
US20120005462A1 (en) Hardware Assist for Optimizing Code During Processing
JP2000222254A (ja) 性能評価のためのヒストグラム計数を行うシステムと方法
US10002089B2 (en) Interrupt-controlled direct memory access peripheral data transfer
CN109196487B (zh) 一种在处理系统中预取数据的方法和系统
CN112612728B (zh) 缓存管理方法及装置、设备
US8255632B2 (en) Pre-fetch control apparatus
US11768778B2 (en) Re-reference indicator for re-reference interval prediction cache replacement policy
US20060143333A1 (en) I/O hub resident cache line monitor and device register update
US9043507B2 (en) Information processing system
CN111858256B (zh) 命令队列监控电路、数据交换方法及其设备
CN102622317B (zh) 存储器访问控制电路、预取电路、存储器设备和信息处理系统
TWI853647B (zh) 異步橋接器與異步橋接方法
JP2868654B2 (ja) キャッシュメモリ制御方法
US20240330191A1 (en) Descriptor cache eviction for multi-queue direct memory access
CN101887360A (zh) 微处理器的数据预先撷取器及方法
US20240126697A1 (en) Setting cache policy information for prefetched cache entry
EP3258381B1 (en) Up/down prefetcher
US20230418755A1 (en) Unloaded cache bypass

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120725