CN101089832A - 统一存储器*** - Google Patents

统一存储器*** Download PDF

Info

Publication number
CN101089832A
CN101089832A CNA2007101111035A CN200710111103A CN101089832A CN 101089832 A CN101089832 A CN 101089832A CN A2007101111035 A CNA2007101111035 A CN A2007101111035A CN 200710111103 A CN200710111103 A CN 200710111103A CN 101089832 A CN101089832 A CN 101089832A
Authority
CN
China
Prior art keywords
access
predicted
access request
request
storage
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
CNA2007101111035A
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101089832A publication Critical patent/CN101089832A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供一种统一存储器***,该***包括:由多个主控装置存取的存储器;预测存取控制部,根据所述多个主控装置之一的CPU对所述存储器的第1存取请求,产生对所述存储器的预测性的第2存取请求;存储控制器,接收所述第1和第2存取请求、以及所述多个主控装置中所述CPU之外的其他主控装置对所述存储器的存取请求,并对所述存储器执行这些请求。所述预测存取控制部,根据有关对所述存储器存取的信息即预测存取信息,产生所述第2存取请求。通过本发明,可以提高统一存储器***的性能。

Description

统一存储器***
技术领域
本发明涉及一种具有由多个主控装置存取的存储器的统一存储器***,特别涉及一种对存储器的预测存取(speculative access)进行控制的技术。
背景技术
近年来,从手机等移动产品到数码电视、DVD(digital versatile disc)录像机等固定产品,都使用了多个CPU(central processing unit)、DSP(digital signalprocessor),以实现多功能化并提高性能。随着半导体集成度的提高,以降低成本为目的,开始采用统一存储器***,使得在CPU和DSP集成到同一芯片的同时,还能共用多个以往分别由CPU和DSP专用的外部存储器。
在统一存储器***中,当其他主控装置正在使用外部存储器时,作为主控装置进行操作的CPU和DSP为使用该外部存储器就需要等待。***不能允许等待时间超出预想的情况出现。因此,通过给每个主控装置分配存储器存取量,或给主控装置设定优先级,优先处理优先级高的主控装置,使得等待时间超出预想的情况不会发生。
特别是在使用介质处理的统一存储器***中,突发存取在对存储器的存取中正逐渐成为主体。这是因为介质处理由DSP负责,并以统一的数据单位来进行。
另一方面,CPU需要执行对DSP的操作调度、伴随输入输出的中断处理、CPU应用处理(例如用于GUI(graphical user interface)的处理)等密集的处理,因此,年年都在提高处理性能。
但是,在统一存储器***中,CPU处理性能的提高日益困难。原因在于:对存储器的存取一般与DSP的介质处理相一致,以突发传输的方式来进行,而存储器的潜伏时间(latency)的性能不高。由于CPU中的处理多半是针对存储器的单一输入输出单位的数据,所以存储器的潜伏时间数变大时,则CPU性能下降。
因此,目前已知有,在CPU和存储控制器之间设置具有缓冲存储器的电桥(bridge)、或在存储控制器内设置缓冲存储器的技术。在上述技术中,对存储器进行的突发存取与CPU的请求大小无关,所读出的数据被保存在缓冲存储器中。之后,如果发生CPU对缓冲存储器中所保存数据的存取,则缓冲存储器中保存的数据被传输给CPU。从而,可以在表面上减少从CPU到存储器的潜伏时间数。进而,还对CPU将来会产生的存取进行预测,在CPU的存取请求之外又产生预测到的存取(预测存取)。
预测正确时,可以通过预测存取提高CPU性能。但是,因为使用存储器的其他主控装置有时会被迫等待对存储器的存取直到预测存取结束,所以,对于其他主控装置而言,预测存取是造成性能恶化的主要原因。
预测错误时,尽管预测存取没有起到作用,但因为在该预测存取结束之前无法对存储器进行存取,所以预测存取使得CPU的后续的一般存取的潜伏时间数增加,从而成为整个***性能恶化的主要原因。
在伴有预测存取的统一存储器***中,由预测存取导致各个主控装置的存取潜伏时间增加,因而造成***性能恶化,为防止这一问题发生的技术有例如日本特开2003-186669号公报所公开的技术。也就是说,居于存储器层次中高层的主控装置(CPU)在对存储器层次中位于低层的从动装置(存储控制器)的数据传输命令中标明是预测存取,存储器层次中位于低层的从动装置判断出执行预测存取会使***性能下降时,丢弃预测存取。
为了取消或丢弃预测存取请求,需要新设计并安装用于CPU(或电桥)和存储控制器取消或丢弃预测存取请求的协议和对应电路,其中,CPU(或电桥)为存取请求方,存储控制器为存取受理方。
可是,CPU(或电桥)对存储控制器的预测存取请求的取消,发生于不依赖于存储控制器内部状态的时机下,所以很难设计和验证存储控制器。并且,存储控制器对预测存取请求的丢弃,发生于不依赖于CPU(或电桥)内部状态的时机下,所以很难设计和验证CPU(或电桥)。在存储控制器中设置缓冲存储器的情况也同样。
进而,存储控制器开始基于预测存取请求的存储器存取时,按照存储控制器和存储器之间的协议,一般不能中止存储器存取。因此,预测存取必须完成,而产生不必要的预测存取请求时,则由此会造成***性能恶化。
发明内容
本发明的目的在于控制预测存取请求的产生,从而提高统一存储器***的性能。
为了解决上述问题,本发明的统一存储器***包括:
由多个主控装置存取的存储器;
预测存取控制部,用于根据多个主控装置之一的CPU对所述存储器的第1存取请求,产生对所述存储器的预测性的第2存取请求;和
存储控制器,用于接收所述第1和第2存取请求、以及所述多个主控装置中所述CPU之外的其他主控装置对所述存储器的存取请求,并对所述存储器执行这些请求;
其中,所述预测存取控制部根据有关对所述存储器存取的信息即预测存取信息,产生所述第2存取请求。
从而,因为根据预测存取信息产生预测性存取请求,所以CPU之外的其他主控装置对存储器的存取、CPU对存储器的一般存取,因预测存取而被迫等待的情况减少。此外,即使来自CPU之外的主控装置的存取增加,也仍然可以抑制统一存储器***的性能恶化。
本发明使来自CPU之外的主控装置的存储器存取因预测存取而被迫等待的情况减少,从而可以防止CPU之外的其他主控装置的处理性能的下降;本发明还使来自CPU的一般存取因预测存取而被迫等待的情况减少,从而可以提高CPU的处理性能。因此,本发明可以提高统一存储器***的性能。特别在存储器的存取潜伏时间长时,可以获得显著的效果。
附图说明
图1是本发明实施方式中的统一存储器***的结构示例框图;
图2是图1中的电桥的结构示例框图;
图3是图1中的存储控制器的结构示例框图;
图4是图1的CPU中处理流程的示例流程图;
图5是图1的CPU中处理流程的另一示例流程图;
图6是图2的CPU存取控制部中处理流程的示例流程图;
图7是图2的预测存取控制部中处理流程的示例流程图;
图8是图1的统一存储器***的第1示例时序图;
图9是图1的统一存储器***的第2示例时序图;
图10是图1的统一存储器***的第3示例时序图;
图11是图1的统一存储器***的第4示例时序图;
图12是图1的统一存储器***的第5示例时序图。
符号说明
1    CPU
2,3 DSP
4    存储控制器
5    存储器
6    超高速缓冲存储器
7    CPU控制总线
8    缓冲存储器
9    电桥
942  CPU存取控制部
944  预测存取控制部
具体实施方式
下面参照附图说明本发明的实施方式。
图1是本发明实施方式中的统一存储器***的结构示例框图。图1的统一存储器***包括:存储控制器4、存储器5、缓冲存储器8和电桥9。该统一存储器***通过均作为主控装置进行操作的CPU1和DSP2、3来存取。CPU1,DSP2、3和电桥9之间通过CPU控制总线7连接。CPU1上连接有超高速缓冲存储器6。
DSP2和3通过存储控制器4存取存储器5中的数据,同时进行独立的介质处理。CPU1通过电桥9和存储控制器4存取存储器5中的数据。
电桥9包括CPU存取控制部942和预测存取控制部944。CPU存取控制部942接收CPU1对存储器5的一般存取请求,并向存储控制器4输出。预测存取控制部944根据来自该CPU1的存取,预测其后续的、CPU1对存储器5的新的存取,其结果产生预测性的存取请求(预测存取请求),并向存储控制器4输出。存储控制器4从电桥9和DSP2、3接收存取请求后进行仲裁,并根据其结果进行对存储器5的存取。
图2是图1中的电桥9的结构示例框图。图2中的电桥9包括CPU接口910、缓冲读(buffer read)控制部911、缓冲写控制部912、存储控制器接口913、CPU控制总线接口914、寄存器块915、地址生成部916、存储器读生成部917、电桥控制部918、预测控制模式(pattern)表保存部919和大小生成部920。
寄存器块915具有:存取地址寄存器931、预测控制寄存器932、参数选择寄存器933、加权设置寄存器934、预测多重控制寄存器935、请求数寄存器936、潜伏时间寄存器937和请求主控装置信息寄存器938。
电桥控制部918具有CPU存取控制部942和预测存取控制部944。CPU存取控制部942和预测存取控制部944使电桥9中的各部分互相联系、协同操作。对于该联系操作,将在后文详细描述。
存取地址寄存器931将缓冲读控制部911提供的地址信息保存在地址域(address field)中,并保存用于表示该地址信息是否有效的有效位(valid bit)。
预测控制寄存器932是用于允许预测存取控制部944产生预测存取请求的寄存器,由CPU1设置。
参数选择寄存器933是用于设置预测存取控制部944在预测存取控制中使用的寄存器的组合的寄存器,由CPU1设置。
加权设置寄存器934是使用多个预测控制参数进行预测存取控制时,用于设置预测控制参数的权值的寄存器,由CPU1设置。
预测多重控制寄存器935是用于允许预测存取控制部944产生多重预测存取请求的寄存器,由CPU1设置。
请求数寄存器936是保存存取请求中的主控装置数的寄存器,其中,所述存取请求中的主控装置数为存储控制器4向电桥9输出的预测存取信息。潜伏时间寄存器937是保存潜伏时间数(完成对存储器5的存取所需的周期数)的寄存器,其中,所述潜伏时间数为存储控制器4向电桥9输出的预测存取信息。请求主控装置信息寄存器938是保存存取请求中的主控装置信息的寄存器,其中,所述存取请求中的主控装置信息为存储控制器4向电桥9输出的预测存取信息。请求数寄存器936、潜伏时间寄存器937和请求主控装置信息寄存器938由CPU1设置,用于设置预测存取请求的产生条件。
CPU接口910向缓冲读控制部911输出包含来自CPU1的读请求的存取言息,并将由缓冲读控制部911输出的读出数据输出给CPU1。
缓冲读控制部911比较由CPU接口910输出的CPU1所请求的读地址和存取地址寄存器931中保存的地址,该两个地址不一致时,启动CPU存取控制部942;该两个地址一致时,缓冲读控制部911从缓冲存储器8中读出与读地址一致的数据后输出给CPU接口910。
另外,存取地址寄存器919的有效位被设置成无效时,缓冲读控制部911启动CPU存取控制部942,而无须进行上述地址比较。
缓冲写控制部912将存储控制器接口913输出的数据写入缓冲存储器8,并通知CPU存取控制部942或预测存取控制部944,已完成对缓冲存储器8的写入。
存储控制器接口913将来自存储器读生成部917的读存取的请求传输给存储控制器4,并将存储控制器4返回的读出数据输出给缓冲写控制部912。
CPU控制总线接口914将来自CPU控制总线7的存取从CPU1接入到寄存器块915中的可存取的寄存器、预测控制模式表保存部919。其中,所述CPU控制总线7用于从CPU1控制DSP2、3和电桥9。
地址生成部916,利用存取地址寄存器931的输出,生成应表示在存储器读生成部917生成的读请求中的地址信息。
存储器读生成部917按照CPU存取控制部942或预测存取控制部944的控制,生成对存储控制器接口913的读存取请求。
图3是图1中的存储控制器4的结构示例框图。图3中的存储控制器4包括:主控装置接口401、402、403,仲裁器(arbiter)404,主控装置选择器405,存储器存取序列发生器(sequencer)406,存储器地址生成部407,存储器接口408,存取信息输出部409和存储器存取计数器410。
主控装置接口401用于对传输电桥9向存储控制器4请求的存取进行控制。主控装置接口402用于对传输DSP2向存储控制器4请求的存取进行控制。主控装置接口403用于对传输DSP3向存储控制器4请求的存取进行控制。
仲裁器404对来自主控装置接口401~403的传输请求进行仲裁,将其结果通知主控装置选择器405,并将仲裁前的传输请求数输出给存储器存取计数器410。
主控装置选择器405根据仲裁器404的仲裁结果,从主控装置接口401~403的传输请求中选择1个传输请求,并根据所选择的传输请求向存储器存取序列发生器406进行存储器存取开始请求,进而,进行存储器接口408和输出所选择的传输请求的主控装置接口间的数据传输。
存储器存取序列发生器406根据来自主控装置选择器405的存储器存取开始请求,产生事先按照存储器规定好的存取序列。
存储器地址生成部407按照存储器存取序列发生器406的控制,生成存储器地址。
存储器接口408进行与存储器5之间的数据的输入输出控制。并且,在对存储器5的存取过程中,向存储器存取计数器410输出距完成存取所剩余的周期数。
存储器存取计数器410从存储器接口408接收剩余的存取周期数,从仲裁器404接收仲裁前的传输请求数,根据这些数值计算出存储器存取周期数,并输出给存取信息输出部409。
存取信息输出部409接收正在由仲裁器404仲裁的存取请求数,将其作为请求数输出给电桥9,并且接收表示正在由仲裁器404仲裁的主控装置的信息和由存储器存取计数器410计量的存储器存取周期数,分别作为请求主控装置信息和潜伏时间数输出给电桥9。请求数、请求主控装置信息和潜伏时间数都是预测存取信息。
图4是图1的CPU1中处理流程的示例流程图。图4中,通过CPU1中的软件处理,检测作为预测存取信息的存储器存取优先级高于CPU1的主控装置的处理,并根据其结果控制电桥9的预测存取请求的产生。假设CPU1的优先级比DSP2和DSP3低。将进行操作的主控装置仅为CPU1的状态作为***操作状态A,将位于***操作状态A之后、且进行操作的主控装置是CPU1、DSP2和DSP3的状态作为***操作状态B,将位于***操作状态B之后、且进行操作的主控装置仅为CPU1的状态作为***操作状态C。
步骤S11中,CPU1检测***操作状态是否发生切换。检测出切换发生时执行步骤S12,没检测出切换发生时返回步骤S11。
步骤S12中,CPU1判断是否有存储器存取优先级高于CPU1的主控装置。如果有,则执行步骤S13,否则执行步骤S17。处于***操作状态B时,因为DSP2和DSP3的存储器存取优先级比CPU1高,所以执行步骤S13。
步骤S13中,CPU1将表示禁止产生预测存取请求的信息设置在电桥9的预测控制寄存器932中。因此,对于在这之后的来自CPU1的一般存取,电桥9进行控制,使之不产生预测存取请求。
步骤S14中,CPU1启动DSP2和DSP3的处理。因此,产生DSP2和DSP3对存储器5的存取,这些存取在存储控制器4中进行仲裁和处理。
步骤S15中,CPU1检测优先级高于CPU1的DSP2、3的处理是否已结束。如果已结束,则执行步骤S16;如果没有结束,则返回步骤S15。
步骤S16中,CPU1将表示允许产生预测存取请求的信息作为预测存取信息设置在预测控制寄存器932中。因此,对于在这之后的来自CPU1的一般存取,电桥9进行控制,使之产生预测存取请求。之后,返回步骤S11。
步骤S17中,和步骤S16一样,CPU1将表示允许产生预测存取请求的信息设置在预测控制寄存器932中。
步骤S18中,CPU1启动DSP2和DSP3的处理,并返回步骤S11。因而产生DSP2和DSP3对存储器5的存取,这些存取在存储控制器4中进行仲裁和处理。
图5是图1的CPU1中处理流程的另一示例流程图。图5中,通过CPU1中的软件处理,检测作为预测存取信息的预测存取命中率高的期间,并根据其结果控制电桥9的预测存取请求的产生。
预测存取命中率是指,在已针对由CPU1的处理产生的存储器存取而产生的预测存取请求中,按照预测存取请求进行的数据传输为有用的比例,即,通过预测存取被传输并保存在缓冲器中的数据可在后续的一般存取中使用的比例。作为预测存取命中率的计算方法,例如事先将***中预计实施的CPU1的多个处理按照几种模式进行分类,对于各个模式,CPU1事先使电桥进行预测存取请求并测量预测存取命中率。之后,实际进行操作时,CPU1检测是哪种CPU处理模式,继而控制预测存取请求的产生。如果是预测存取命中率可达到规定值或规定值以上的CPU处理模式,则产生预测存取请求。
这里,假设CPU1的处理按照预测存取命中率高的CPU处理A、预测存取命中率低的CPU处理B、预测存取命中率高的CPU处理C的顺序进行切换。
步骤S21中,CPU1检测CPU处理是否发生切换。如果切换发生,则执行步骤S22;如果没有发生,则返回步骤S21。
步骤S22中,CPU1判断CPU1的处理是否是预测存取命中率为规定值或规定值以下的处理。如果预测存取命中率为规定值或规定值以下,则执行步骤S23;如果预测存取命中率比规定值大,则执行步骤S25。例如,在CPU处理B的情况下,执行步骤S23;在CPU处理A和CPU处理C的情况下,执行步骤S25。
步骤S23中,CPU1将表示禁止预测存取请求产生的信息设置在电桥9的预测控制寄存器932中。因此,对于在这之后的来自CPU1的一般存取,电桥9进行控制,使之不产生预测存取请求。
步骤S24中,CPU1启动DSP2和DSP3的处理。因此,产生DSP2和DSP3对存储器5的存取,这些存取在存储控制器4中进行仲裁和处理。之后,返回步骤S21。
步骤25中,CPU1将表示允许预测存取请求产生的信息设置在电桥9的预测控制寄存器932中。因此,对于在这之后的来自CPU1的一般存取,电桥9进行控制,使之产生预测存取请求。
图6是图2的CPU存取控制部942中处理流程的示例流程图。这里,以来自CPU1的一般存取发生时的情况为例进行说明。
图6的步骤S41中,CPU存取控制部942判断来自CPU1的存取是否为未命中(缓冲存储器8中不存在所请求的数据)。在缓冲存储器8中没有CPU1所存取的数据时,CPU存取控制部942从缓冲读控制部911接收到表示该内容的通知,执行步骤S42;否则,返回步骤S41。
步骤S42中,CPU存取控制部942检测是否正在对存储控制器4进行存取,即存储控制器接口913是否处在操作中。如果正在存取,则返回步骤S42;如果不是正在存取,则执行步骤S43。例如,如果正在进行预测存取,且存储控制器接口913处在操作中,则等待预测存取的完成。
步骤S43中,CPU存取控制部942控制地址生成部916和存储器读生成部917,以生成并输出应向存储控制器接口913请求的数据的地址(读地址)。此时,地址生成部916参照存取地址寄存器931的地址域。所生成的地址是来自CPU1的请求地址。
步骤S44中,CPU存取控制部942指示存储器读生成部917,使存储控制器接口913开始对存储控制器4进行存取。存储控制器接口913向存储控制器4进行读请求。
步骤S45中,存储控制器接口913从存储控制器4接收到所读出的数据,并输出给缓冲写控制部912。缓冲写控制部912将所读出的数据写入缓冲存储器8。将所有读出数据向缓冲存储器8写入结束时,缓冲写控制部912通知CPU存取控制部942,缓冲存储器8的写入已完成,并执行步骤S46。此时,CPU存取控制部942用存储器读生成部917输出的地址更新存取地址寄存器931的地址域,进而将有效位设定为有效。对所有读出数据的写入没有结束时,则返回步骤S45。
步骤S46中,CPU存取控制部942指示缓冲读控制部911,对来自CPU1的读请求进行应答。缓冲读控制部911从缓冲存储器8保存的数据中选择读请求的数据,并通过CPU接口910输出给CPU1。
步骤S47中,CPU存取控制部942通知预测存取控制部944,来自CPU1的读存取(一般存取)已完成。但是,在已使用缓冲存储器8中已保存数据的情况下,则不进行通知。
之后,如果CPU1的后续读请求是针对缓冲存储器8中保存的数据,则所请求的数据从缓冲存储器8依次输出给CPU1。
图7是图2的预测存取控制部944中处理流程的示例流程图。假设在缓冲存储器8中不存在来自CPU1的一般存取所请求的数据时产生的存储器存取已经完成。
图7的步骤S51中,预测存取控制部944等待CPU存取控制部942发出的CPU1的一般存取完成的通知。如果收到完成通知,则执行步骤S52;否则返回步骤S51。
步骤S52中,预测存取控制部944根据寄存器块915等信息,判断是否产生预测存取请求。如果产生,则执行步骤S53;否则返回步骤S51。
步骤S53中,预测存取控制部944控制地址生成部916和存储器读生成部917,以生成并输出应向存储控制器接口913请求的数据的地址(预测读地址)。此时,地址生成部916在存取地址寄存器931的地址域的地址上加上传输大小,生成预测读地址。也就是说,地址生成部916根据前一次来自CPU1的请求,生成与存储器传输的数据的地址连续的下一个地址。
步骤S54中,预测存取控制部944控制大小生成部920和存储器读生成部917,以输出应向存储控制器接口913请求的数据的大小。大小生成部920根据例如预测存取命中率、DSP2和DSP3对存储控制器4的存取请求的有无等,相应改变缓冲存储器8按照预测存取请求所传输的数据的大小。
步骤S55中,预测存取控制部944指示存储器读生成部917,使存储控制器接口913开始对存储控制器4进行存取。存储控制器接口913向存储控制器4进行读请求。
步骤S56中,预测存取控制部944通知CPU存取控制部942,已开始对存储控制器4进行预测存取。CPU存取控制部942,在预测存取过程中需要对存储器进行来自CPU1的一般存取时,要一直等到预测存取完成。
步骤S57中,预测存取控制部944判断存储控制器4的处理是否已完成,即,对存储控制器4的存取是否已结束。如果已经结束,则执行步骤S58;否则返回步骤S57。
步骤S58中,预测存取控制部944通知CPU存取控制部942,已完成对存储控制器的存取,并返回步骤S51。于是,CPU存取控制部942需要对存储器5进行来自CPU1的一般存取时,就可以马上开始一般存取的处理。
图8是图1的统一存储器***的第1示例时序图。图8示出的是CPU控制总线7、CPU存储器总线、电桥9-CPU1之间的接口(IF)、电桥9-存储控制器(MEMC)4之间的接口和存储控制器4-主控装置之间的接口中的存取。
图8中,地址a0、a1、a2分别是由CPU1、DSP2、DSP3请求读出的数据的地址。括号内表示的是所读出的数据的范围或该范围的起始地址。下面结合图4和图8描述CPU1按照图4的流程图进行操作的情况。
在周期T0,从***操作A(只有CPU1操作)向***操作B(CPU1、DSP2和DSP3进行操作)切换。因为比CPU1优先级高的DSP2和DSP3开始操作,所以CPU1利用CPU控制总线7,在电桥9中的预测控制寄存器932中设置禁止产生预测存取请求(步骤S13)。
在周期T1,CPU1、DSP2、DSP3开始各自的处理。DSP2从周期T7开始产生对存储器5的存取请求(读R30),DSP3从周期T13开始产生对存储器5的存取请求(读R40),但不产生CPU1的预测存取请求。因此,CPU1的一般存取、DSP2和DSP3的存取在存储控制器4中进行仲裁和处理。
在周期T23,CPU1从DSP2和DSP3接收到处理完成的通知时,则利用CPU控制总线7,在电桥9中的预测控制寄存器932中设置允许产生预测存取请求(步骤S16)。因此,在周期T24完成一般存取后,跟着在周期T25产生预测存取请求(读R22)。
这样,CPU1通过检测是否存在较高优先级的主控装置,并对预测控制寄存器932进行设置,从而抑制电桥9产生预测存取请求。在完成比CPU1优先级高的主控装置的处理之前,电桥9不产生预测存取请求,所以存储器存取不会因预测存取而被迫等待,可以在预想时间内完成存储器存取。因此,可以抑制优先级高于CPU1的主控装置的性能恶化。
下面,结合图5和图8描述CPU1按照图5的流程图进行操作的情况。
在周期T0,CPU1在从CPU处理A(预测存取命中率高)向CPU处理B(预测存取命中率低)进行切换时,检测出CPU处理B中的来自电桥9的预测存取命中率低,利用CPU控制总线7,在电桥9的预测控制寄存器932中设置禁止产生预测存取请求(步骤S23)。
在周期T1,CPU1、DSP2、DSP3开始各自的处理。DSP2从周期T7开始产生对存储器5的存取请求(读R30),DSP3从周期T13开始产生对存储器5的存取请求(读R40),但不产生CPU1的预测存取请求。因此,CPU1的一般存取、DSP2和DSP3的存取在存储控制器4中进行仲裁和处理。
在周期T23,CPU1在从CPU处理B向CPU处理C进行切换时,检测出CPU处理C的预测存取命中率高,利用CPU控制总线7,在电桥9的预测控制寄存器932中设置允许产生预测存取请求(步骤S25)。因此,在周期T24完成一般存取后,跟着在周期T25产生预测存取请求(读R22)。
这样,通过对预测控制寄存器932进行设置,从而在预测存取命中率低时抑制电桥9产生预测存取请求。因此可以抑制由预测存取引起的其它主控装置的性能恶化。此外,因为实际产生的预测存取的命中率变高,所以可以提高CPU1的处理性能。
另外,对于CPU1的处理中伴有的存储器存取是针对可缓存(cacheable)区域的存取的情况,即未命中的情况,CPU1也可以将其作为预测存取命中率高的情况进行检测。这是因为已经预见到存在下述情况,即,发生高速缓冲存储器未命中(cache miss)后,会连续发生高速缓冲存储器未命中。
此外,CPU1还可以利用CPU1处理中给进程分配的进程ID的优先级,将优先级高的进程中伴有的存储器存取作为预测存取的命中率高的情况进行检测。高速缓冲存储器未命中的检测、进程ID的检测,可以使用CPU1的软件处理进行,也可以使用高速缓冲存储器接口、MMU(memory management unit)中所设置的专用硬件进行。
CPU1按照图4或图5进行处理,来控制预测存取时,CPU1需要进行软件的处理,该软件处理用于检测***操作的切换、对预测控制寄存器932进行设置。因此造成了CPU1在处理性能上的消耗。并且,如图4所示根据主控装置的优先级来进行控制时,直到优先级高的主控装置的处理结束为止都要对预测存取进行控制。其结果,即便是在优先级高的主控装置不使用存储器的期间,预测存取也被抑制。也就是说,很难进行实时反映存储器的存取状况的预测存取控制。那么,下面对另一例子进行描述。
图9是图1的统一存储器***的第2示例时序图。下面将对下述情况进行描述:存储控制器4的存取信息输出部409,将主控装置对存储控制器4的存取请求数(MEMC请求数)作为预测存取信息输出,电桥9根据其输出信息控制预测存取请求的产生。
CPU1事先在电桥9的请求数寄存器936中设置电桥9的预测存取请求的产生条件。这里,假设CPU1在请求数寄存器936中将值“0”设置为初始值。
存储控制器4从多个主控装置收到存取请求,存取信息输出部409将存取请求数输出至请求数寄存器936保存。预测存取控制部944在图7的步骤S52中将请求数寄存器936的输出作为阈值使用。再有,存取信息输出部409输出的请求数中包含来自电桥9的请求时,预测存取控制部944使用该输出的请求数减去电桥9的请求数后得到的差值。
在图9的周期T6,因为来自CPU1的一般存取完成时,则存取请求数变为“0”,所以预测存取控制部944开始准备生成预测存取请求。在周期T7,由DSP2产生存取请求(读R30),存取请求数变为“1”。因为存取请求数超出阈值“0”,所以电桥9不产生预测存取请求,一直等到存取请求数变为“0”为止。
在周期T12,读R30完成。在周期T13,产生来自DSP3的存取请求(读R40),和来自CPU1的一般存取的存取请求(读R21)。因为存取请求数超出阈值“0”,所以电桥9不产生预测存取请求,一直等到存取请求数变为“0”为止。在周期T18,读R40完成,所以在周期T19,存取请求数变为“1”。
因为读R21完成时则存取请求数变为“0”,所以在周期T24,预测存取控制部944开始准备生成预测存取请求。在周期T25,存取请求数变为“0”,所以预测存取控制部944产生预测存取请求,预测存取(读R22)开始。
另外,预测存取时所存取的地址和传输大小等,根据之前最近的一般存取即读R21确定,而不是根据读R20确定。
对于图9的情况,可以在每个可能产生预测存取请求的周期中对预测存取请求的产生进行控制,而不用受到来自CPU1的对产生预测存取的控制。因此,只在对预测存取请求的产生条件进行变更时,才由CPU1进行预测存取控制,从而可以降低CPU处理性能上的消耗。并且,在请求数很多时,实时抑制了预测存取请求的产生,所以可以抑制***的性能恶化。
图10是图1的统一存储器***的第3示例时序图。下面将对下述情况进行描述:存储控制器4的存取信息输出部409将潜伏时间数(MEMC潜伏时间数)作为预测存取信息输出,电桥9根据其输出信息控制预测存取请求的产生。
CPU1事先在电桥9的潜伏时间寄存器937中设置电桥9的预测存取的产生条件。这里,假设CPU1在潜伏时间寄存器937中设置值“1”。
存取信息输出部409从存取请求中的请求数和存储器存取中的剩余周期中计算针对新请求的潜伏时间数,并将其结果输出至潜伏时间寄存器937保存。预测存取控制部944在图7的步骤S52中将潜伏时间寄存器937的输出作为阈值使用。
在图10的周期T6,伴随着来自CPU1的一般存取的完成,预测存取控制部944判断是否产生预测存取请求。在周期T6,产生来自DSP2的存取请求(读R30),存取信息输出部409将潜伏时间数“7”作为预测存取信息向电桥9输出。因为潜伏时间数在阈值“1”以上,所以电桥9不产生预测存取请求。
在周期T12,读R30完成,潜伏时间数为“1”,所以预测存取控制部944开始预测存取请求的准备。
在周期T13,由DSP3产生存取请求(读R40),由CPU1产生存取请求(读R21),因此,潜伏时间数为“12”。因为潜伏时间数在阈值“1”以上,所以不产生预测存取请求。
在周期T24,读R21完成,潜伏时间数为“1”,所以预测存取控制部944开始预测存取请求的准备。在周期T25,潜伏时间数为“0”,所以预测存取控制部944产生预测存取请求,预测存取开始。
另外,图10中预测存取时所存取的地址和传输大小等,也是根据之前最近的一般存取即读R21确定,而不是根据读R20确定。
对于图10的情况,只在对预测存取请求的产生条件进行变更时,才由CPU1进行预测存取控制,从而可以降低CPU处理性能上的消耗。并且,当潜伏时间数大时,在每个可能产生预测存取请求的周期中抑制预测存取请求的产生,因而可以抑制***的性能恶化。因为在发生CPU1的一般存取时也控制预测存取请求的产生,所以可提高CPU1的存取性能。
图11是图1的统一存储器***的第4示例时序图。和图10的情况一样,对电桥9从存储控制器4的存取信息控制部409接收潜伏时间数(MEMC潜伏时间数)作为预测存取信息,并控制预测存取请求产生的情况进行描述。但是,假设在潜伏时间寄存器937中设置的值为“3”。预测存取控制部944在图7的步骤S52中将潜伏时间寄存器937的输出作为阈值使用。
在图11的周期T6,和图10的情况一样,存取信息输出部409将“7”作为存取信息向电桥9输出。因为潜伏时间数在阈值“3”以上,所以电桥9不产生预测存取请求。
在周期T10,进行读R30对应的存储器存取,潜伏时间数为“3”,和阈值“3”一致,所以预测存取控制部944开始预测存取请求的准备。
在周期T11,产生CPU1向电桥9的存取请求(读R12)。在缓冲存储器8中没有读R12的请求数据时,产生作为一般存取的存取请求(读R21)。此时,预测存取控制部944在读R21完成之前不产生预测存取请求。
图12是图1的统一存储器***的第5示例时序图。下面将对下述情况进行描述:存储控制器4的存取信息输出部409将请求主控装置信息(MEMC请求主控装置信息)作为预测存取信息输出,电桥9根据其输出信息控制预测存取请求的产生。
请求主控装置信息是表示对存储控制器4进行存取请求的主控装置的信息。例如,请求主控装置信息的各比特位分别对应于一个主控装置。在主控装置进行存取请求时,该主控装置对应的比特位的值设为“1”;在主控装置未进行存取请求时,该主控装置对应的比特位的值设为“0”。
例如,在请求主控装置信息中依次包含有对应于CPU1、DSP2和DSP3的比特位。此时,CPU1、DSP2和DSP3中只有DSP2进行存取请求时,请求主控装置信息编码为“010”;只有DSP3进行存取请求时请求主控装置信息编码为“001”。存取信息输出部409将表示正在进行存取请求的主控装置的请求主控装置信息输出给电桥9。
另一方面,CPU1在电桥9的请求主控装置信息寄存器938中,事先设置针对预测存取请求的其他主控装置的存取请求的优先级,作为电桥9的预测存取请求的产生条件。请求主控装置信息寄存器938的各比特位分别对应于一个主控装置。其他主控装置的存取请求的优先级高时,该主控装置对应的比特位的值设为“1”;其他主控装置的存取请求的优先级低时,该主控装置对应的比特位的值设为“0”。
请求主控装置信息寄存器938具有与请求主控装置信息相同顺序的对应于CPU1、DSP2和DSP3的比特位。这里,以DSP2和DSP3中优先级高于CPU1的主控装置为DSP2的情况,即CPU1在请求主控装置信息寄存器938中设置“010”的情况为例进行说明。预测存取控制部944在图7的步骤S52中会使用请求主控装置信息寄存器938的输出和请求主控装置信息。
在图12中的周期T6,伴随着来自CPU1的一般存取的完成,预测存取控制部944判断是否产生预测存取请求。存取信息输出部409将请求主控装置信息“100”作为预测存取信息输出给电桥9。因为优先级高的DSP2未进行存取请求,所以电桥9开始准备生成预测存取请求。
在周期T7,由DSP2产生存取请求(读R30)。因此,请求主控装置信息变为“010”。因为知道是请求主控装置信息寄存器938指定的主控装置(DSP2)产生的存取请求,所以优先执行读R30,在读R30完成之前不产生预测存取请求。
在周期T13,读R30完成,并产生DSP3的存取请求(读R40),请求主控装置信息变为“001”。因为DSP3不是请求主控装置信息寄存器938指定的主控装置,所以预测存取控制部944产生预测存取请求(读R21)。DSP3的存取被迫等待,直到读R21完成为止。
对于图12的情况,可以在每个可能产生预测存取请求的周期中进行对产生预测存取请求的控制,而不用受到来自CPU1的对产生预测存取的控制。因此,可以减少CPU1的预测存取控制处理。并且,在发生比CPU1的存储器存取优先级高的主控装置的存储器存取时,抑制预测存取请求的产生,因而可以抑制***的性能恶化。
如下面的其它变形例所述,也可以利用***的操作状况和对存储器的存取状况这两者来进行预测存取控制。
如图2中的寄存器块915所示,假设有多个用于预测存取控制的预测控制相关寄存器,且在各个寄存器中保存有对应的预测控制参数。预测控制参数是预测存取信息或基于预测存取信息所求出的控制预测存取产生的值。
CPU1对***操作状态的切换进行检测,根据***的操作状态,选择所使用的预测控制参数和对应的寄存器,并将其设定在参数选择寄存器933中。***操作状态和预测控制相关寄存器的组合可以事先确定,也可以在提取出***状态后确定。其结果,使得预测存取请求的产生可以通过适当的预测控制相关寄存器来控制。
预测存取控制部944,基于所选择的多个预测控制参数中的每一个,得到对产生预测存取请求的判定结果后,利用加权设置寄存器934的值,对所述判定结果进行加权计算,并根据其结果进行预测存取的控制。
下面,对上述预测存取控制的一个例子进行描述,其中,使用CPU1输出的预测存取命中率和存储控制器4输出的潜伏时间数作为预测控制参数。
在参数选择寄存器933的各比特位中分配有预测控制相关寄存器。例如,假设在参数选择寄存器933中从高比特位起依次分配有预测控制寄存器932、请求数寄存器936、潜伏时间寄存器937、请求主控装置信息寄存器938,在参数控制寄存器933中设置有“1010”。也就是说,预测控制寄存器932和潜伏时间寄存器937被设置为应使用的预测控制相关寄存器。
CPU1根据预测存取命中率,设置预测控制寄存器932中的值。存储控制器4计算存取潜伏时间,并输出给电桥9。
在加权设置寄存器934中,设置有用于对预测存取请求的判定结果进行加权的系数,所述判定结果是根据所使用的预测控制相关寄存器作出的。例如,假设以40%的比例考虑根据预测控制寄存器932作出的判定结果,以60%的比例考虑根据潜伏时间寄存器937作出的判定结果时,在加权设置寄存器934中设置有“4600”。电桥9中,在来自CPU1的一般存取完成的同时,按照下面的步骤对预测存取请求的产生进行控制。
第1步骤中,预测存取控制部944根据所选择的预测控制参数,对预测存取请求的产生进行判断。针对各个预测控制参数,判定为应产生预测存取请求时,求得结果为“1”;判定为不应产生预测存取请求时,求得结果为“0”。
假设:预测存取命中率比规定值高,应产生预测请求;CPU1已将“1”设置到预测控制寄存器932中;并且,CPU1已将“2”设置到潜伏时间寄存器937中;存储控制器4已将“3”作为潜伏时间数输出。此时,预测存取控制部944,针对预测存取命中率,求得判定结果为“1”;针对潜伏时间数,因为潜伏时间数比潜伏时间寄存器937的值大,所以求得判定结果为“0”。
第2步骤中,预测存取控制部944利用加权设置寄存器934的值,对多个预测控制参数的判定结果进行加权计算。加权计算的结果为(0×6+1×4)/2=2,将该结果作为用于预测存取控制中的控制值。
第3步骤中,预测存取控制部944只在预测存取控制值超出阈值时产生预测存取请求。例如,假设阈值为“3”,则预测存取控制部944不产生预测存取请求。也就是说,即便CPU1判定为预测存取命中率高,在存储控制器4通知的潜伏时间数大时,预测存取控制部944也抑制预测存取请求。
并且,例如,存储控制器4输出的潜伏时间数小,针对潜伏时间数的判定结果为“ 1”时,加权计算的结果为(1×6+1×4)/2=5。此时,预测存取控制部944产生预测存取请求。
这样,因为利用***操作状况和对存储器的存取状况这两者来进行预测存取控制,所以可以抑制***性能大大降低的可能性。
另外,对多个预测控制参数进行加权计算求出预测存取的控制值,也可以通过使用预测控制模式表保存部919来代替。预测控制模式表保存部919保存有查找表(look up table)即预测控制模式表。预测控制模式表被构成为:若输入地址为表示多个预测控制参数的组合的值,则输出数据为对判定结果进行加权计算的结果(加权计算值),其中,所述判定结果是分别基于各个预测控制参数而得到的、有关预测存取请求的产生的判定结果。
预测存取控制部944向预测控制模式表保存部919提供多个预测控制参数的组合,并接收加权计算值作为预测存取的控制值。由此,可以不再需要参数选择寄存器933、加权设置寄存器934和用于加权计算的运算器。
另外,在预测控制模式表中,还可以根据预测控制参数的值设置不同的值。例如,假设选择预测存取命中率和潜伏时间数作为预测控制参数。然后,在潜伏时间数小时,减小有关预测存取命中率的判定结果的权值,潜伏时间数大时,加大有关预测存取命中率的判定结果的权值,再求出加权计算值。这样,可以对控制预测存取请求的产生进行最佳的设置。
还可以在CPU1的存储器存取优先级高、电桥9的预测存取的命中率高(因此可以预想到预测存取的命中率高)时,使电桥9不仅是在完成CPU1的一般存取时,而且在完成预测存取时也可以产生预测存取。也就是说,还可以使预测存取能够连续产生。在上述能够预想的情况下,CPU1在预测多重控制寄存器935中进行表示允许连续产生预测存取的设置,CPU1和预测存取控制部944根据预测多重控制寄存器935的设置进行预测控制寄存器932的设置。
通过上述构成,在预测存取的命中率高、存储器存取在连续区域中进行时,预测存取命中率会更高,从而可以进一步提高CPU1的处理性能。
此外,还可以由电桥9自身来测量电桥9的预测存取的命中率。电桥9对保存在缓冲存储器8中的数据是来自CPU1的一般存取的数据,还是来自电桥9的预测存取的数据进行识别和管理。在来自预测存取的数据被使用在一般存取中时,电桥9判定预测存取的命中率高。还可以将电桥9实际测到的预测存取命中率和CPU1所预测的预测存取的命中率组合使用,这样,预测存取命中率会更高,从而可以进一步提高CPU1的处理性能。
此外,还可以根据来自存储控制器4的存取请求数、正在进行存取的主控装置信息,使预测存取能够连续产生。
还可以是大小生成部920根据***的操作状况和存储器的存取状况,改变应向存储控制器4请求的数据的大小,使按照预测存取请求或其后连续产生的预测存取请求所传输的数据的大小为满足预测存取信息(预测存取命中率、来自存储控制器4的存取请求数和正在进行存取的主控装置信息等)的大小。
上述构成对于CPU1的存储器存取优先级高、电桥9的预测存取的命中率高、在存储控制器4中未进行来自其他主控装置的存取的情况很有利。还可以以缓冲存储器8的容量为上限,增加应请求的数据的大小,从而可以增加数据的预读量。这样,预测存取命中率会更高,从而可以进一步提高CPU1的处理性能。
再有,虽然描述的是电桥9中包括预测存取控制部944的情况,但也可以是在存储控制器4中包括预测存取控制部944。例如,可以使存取控制器4中装有电桥9和缓冲存储器8。
此外,还可以从多个主控装置中选择特定的主控装置,对所选择的主控装置进行预测存取控制。例如,在连接有多个CPU作为主控装置的***中,在各个CPU的优先级随时间而变化时,可以选择优先级高的CPU,并对所选择的CPU进行预测存取控制。从而,可以提高各个CPU的处理性能。与每个CPU中包含电桥和缓冲存储器的情况相比,上述构成可以抑制硬件的规模。
如上所述,本发明可以抑制由CPU的预测存取引起的***性能的下降,所以作为统一存储器***是有用的,进而,对采用统一存储器架构的***LSI等是有用的。

Claims (15)

1、一种统一存储器***,其特征在于,该***包括:
由多个主控装置存取的存储器;
预测存取控制部,用于根据所述多个主控装置之一的CPU对所述存储器的第1存取请求,产生对所述存储器的预测性的第2存取请求;和
存储控制器,用于接收所述第1和第2存取请求、以及所述多个主控装置中所述CPU之外的其他主控装置对所述存储器的存取请求,并对所述存储器执行这些请求;
其中,所述预测存取控制部根据有关对所述存储器存取的信息即预测存取信息,产生所述第2存取请求。
2、根据权利要求1所述的统一存储器***,其特征在于,
所述CPU利用所述预测存取信息控制所述预测存取控制部。
3、根据权利要求2所述的统一存储器***,其特征在于,
所述CPU使用所述多个主控装置的存储器存取优先级作为所述预测存取信息;
在所述CPU的存储器存取优先级比所述多个主控装置中所述CPU之外的其他主控装置的存储器存取优先级高时,所述预测存取控制部产生所述第2存取请求。
4、根据权利要求2所述的统一存储器***,其特征在于,
所述CPU求出命中率作为所述预测存取信息,该命中率表示按照已执行的预测性存取请求进行的数据传输为有用的比例;
在所述命中率比规定值高时,所述预测存取控制部产生所述第2存取请求。
5、根据权利要求1所述的统一存储器***,其特征在于,
所述存储控制器用于生成所述预测存取信息。
6、根据权利要求5所述的统一存储器***,其特征在于,
所述存储控制器,将来自所述多个主控装置的存取请求数作为所述预测存取信息输出;
在所述存取请求数比规定值小时,所述预测存取控制部产生所述第2存取请求。
7、根据权利要求5所述的统一存储器***,其特征在于,
所述存储控制器,将完成对所述存储器的存取所需的周期数作为所述预测存取信息输出;
不存在尚未执行的对所述存储器的一般存取、且所述周期数比规定值小时,所述预测存取控制部产生所述第2存取请求。
8、根据权利要求5所述的统一存储器***,其特征在于,
所述存储控制器将请求主控装置信息作为所述预测存取信息输出,该请求主控装置信息表示所述多个主控装置中正在对所述存储器进行存取请求的主控装置;
在所述请求主控装置信息未示出规定的主控装置时,所述预测存取控制部产生所述第2存取请求。
9、根据权利要求1所述的统一存储器***,其特征在于,
所述预测存取控制部,根据从多个作为所述预测存取信息的参数中选择的参数,产生所述第2存取请求。
10、根据权利要求9所述的统一存储器***,其特征在于,
所述预测存取控制部,根据对判定结果进行加权计算后的结果,产生所述第2存取请求,其中,该判定结果是基于所述所选择的多个参数中的每一个而得到的、有关所述第2存取请求的产生的判定结果。
11、根据权利要求1所述的统一存储器***,其特征在于,该***进一步包括:
大小生成部,用于将按照所述第2存取请求所传输的数据的大小作为满足所述预测存取信息的大小。
12、根据权利要求1所述的统一存储器***,其特征在于,
在所述CPU对所述存储器的存取的优先级高时,所述预测存取控制部产生预测性的第3存取请求,该第3存取请求用于在根据所述第2存取请求所进行的对所述存储器的存取完成后,进行对所述存储器的存取。
13、根据权利要求12所述的统一存储器***,其特征在于,该***进一步包括:
大小生成部,用于将按照所述第3存取请求所传输的数据的大小作为满足所述预测存取信息的大小。
14、根据权利要求12所述的统一存储器***,其特征在于,
所述预测存取控制部求出命中率,该命中率表示按照已执行的预测性存取请求进行的数据传输为有用的比例,在所述命中率比规定值高时,所述预测存取控制部产生所述第3存取请求。
15根据权利要求14所述的统一存储器***,其特征在于,该***进一步包括:
大小生成部,用于将按照所述第3存取请求所传输的数据的大小作为满足所述命中率的大小。
CNA2007101111035A 2006-06-14 2007-06-11 统一存储器*** Pending CN101089832A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006164623 2006-06-14
JP2006164623A JP2007334564A (ja) 2006-06-14 2006-06-14 ユニファイドメモリシステム

Publications (1)

Publication Number Publication Date
CN101089832A true CN101089832A (zh) 2007-12-19

Family

ID=38862857

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101111035A Pending CN101089832A (zh) 2006-06-14 2007-06-11 统一存储器***

Country Status (3)

Country Link
US (1) US20070294487A1 (zh)
JP (1) JP2007334564A (zh)
CN (1) CN101089832A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103154918A (zh) * 2010-10-08 2013-06-12 高通股份有限公司 用于基于串流事务信息应用页面管理策略的存储器控制器、***和方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9053031B2 (en) * 2007-12-10 2015-06-09 International Business Machines Corporation System and method for handling data access
US7949830B2 (en) * 2007-12-10 2011-05-24 International Business Machines Corporation System and method for handling data requests
US7937533B2 (en) * 2007-12-10 2011-05-03 International Business Machines Corporation Structure for handling data requests
US8032713B2 (en) * 2007-12-10 2011-10-04 International Business Machines Corporation Structure for handling data access
JP5614341B2 (ja) * 2011-03-16 2014-10-29 富士通株式会社 データ処理装置、システムおよびデータ処理装置の動作方法
US8825933B2 (en) 2011-11-30 2014-09-02 Andes Technology Corporation Bus apparatus with default speculative transactions and non-speculative extension
US20150058524A1 (en) * 2012-01-04 2015-02-26 Kenneth C. Creta Bimodal functionality between coherent link and memory expansion
US10061515B2 (en) 2014-09-11 2018-08-28 Toshiba Memory Corporation Information processing apparatus and memory system
JP2017045388A (ja) * 2015-08-28 2017-03-02 株式会社東芝 メモリシステム
JP6726136B2 (ja) * 2017-06-22 2020-07-22 ルネサスエレクトロニクス株式会社 データアクセス装置及びアクセスエラーの通知方法
JP7014965B2 (ja) 2018-06-06 2022-02-02 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5799209A (en) * 1995-12-29 1998-08-25 Chatter; Mukesh Multi-port internally cached DRAM system utilizing independent serial interfaces and buffers arbitratively connected under a dynamic configuration
US5983303A (en) * 1997-05-27 1999-11-09 Fusion Micromedia Corporation Bus arrangements for interconnection of discrete and/or integrated modules in a digital system and associated method
US6058461A (en) * 1997-12-02 2000-05-02 Advanced Micro Devices, Inc. Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation
WO1999034356A2 (en) * 1997-12-30 1999-07-08 Genesis One Technologies, Inc. Disk cache enhancer with dynamically sized read request based upon current cache hit rate
US7849172B2 (en) * 2002-03-01 2010-12-07 Broadcom Corporation Method of analyzing non-preemptive DRAM transactions in real-time unified memory architectures
US6901486B2 (en) * 2002-07-05 2005-05-31 Hewlett-Packard Development Company, L.P. Method and system for optimizing pre-fetch memory transactions
US20040088490A1 (en) * 2002-11-06 2004-05-06 Subir Ghosh Super predictive fetching system and method
US6983356B2 (en) * 2002-12-19 2006-01-03 Intel Corporation High performance memory device-state aware chipset prefetcher
JP2007241612A (ja) * 2006-03-08 2007-09-20 Matsushita Electric Ind Co Ltd マルチマスタシステム
JP4915774B2 (ja) * 2006-03-15 2012-04-11 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103154918A (zh) * 2010-10-08 2013-06-12 高通股份有限公司 用于基于串流事务信息应用页面管理策略的存储器控制器、***和方法
CN103154918B (zh) * 2010-10-08 2016-08-10 高通股份有限公司 用于基于串流事务信息应用页面管理策略的存储器控制器、***和方法

Also Published As

Publication number Publication date
US20070294487A1 (en) 2007-12-20
JP2007334564A (ja) 2007-12-27

Similar Documents

Publication Publication Date Title
CN101089832A (zh) 统一存储器***
KR101554294B1 (ko) 추론적 프리챠지의 검출
US8255631B2 (en) Priority-based prefetch requests scheduling and throttling
US8560796B2 (en) Scheduling memory access requests using predicted memory timing and state information
JP4067887B2 (ja) プリフェッチを行う演算処理装置、情報処理装置及びそれらの制御方法
JP4451717B2 (ja) 情報処理装置および情報処理方法
US7640401B2 (en) Remote hit predictor
US20110238934A1 (en) Asynchronously scheduling memory access requests
JPH0950401A (ja) キャッシュメモリ及びそれを備えた情報処理装置
EP2156302B1 (en) Latency reduction for cache coherent bus-based cache
JP2018005395A (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
US11301250B2 (en) Data prefetching auxiliary circuit, data prefetching method, and microprocessor
US7058767B2 (en) Adaptive memory access speculation
US6801982B2 (en) Read prediction algorithm to provide low latency reads with SDRAM cache
JP2023530642A (ja) Dramコマンドストリーク管理
US20080320229A1 (en) Pre-fetch control apparatus
JP2013041414A (ja) 記憶制御システムおよび方法、置換方式および方法
US20220382703A1 (en) Sending a request to agents coupled to an interconnect
JP2006215621A (ja) Dma制御装置
JP2023527685A (ja) 効率的なメモリバス管理
CN110727609A (zh) 一种数据存取混合操作的优化策略及其实现方法
US11994993B2 (en) Adaptive prefetcher for shared system cache
JP7521133B2 (ja) Dramコマンドストリーク効率管理
Khan Brief overview of cache memory
JP2004145780A (ja) マルチプロセッサ・キャッシュ装置

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