CN101034381A - 多主机系统和数据传送系统 - Google Patents

多主机系统和数据传送系统 Download PDF

Info

Publication number
CN101034381A
CN101034381A CNA2007100855476A CN200710085547A CN101034381A CN 101034381 A CN101034381 A CN 101034381A CN A2007100855476 A CNA2007100855476 A CN A2007100855476A CN 200710085547 A CN200710085547 A CN 200710085547A CN 101034381 A CN101034381 A CN 101034381A
Authority
CN
China
Prior art keywords
data
main frame
shared region
request
memory controller
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
CNA2007100855476A
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 CN101034381A publication Critical patent/CN101034381A/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/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)
  • Multi Processors (AREA)
  • Memory System (AREA)

Abstract

本发明提供一种多主机系统,在多主机处理中,在存储器上的共享区域共享数据的情况下,可以减轻用于确认主机经存储控制器向存储器写入共享数据的处理所需的系统负担。具有存储控制器(4),执行从主机(1~3)发行的对存储器(5)的访问请求;主机(1),向所述存储控制器(4)发行所述数据对所述共享区域的写入请求;预取控制部(9),确认将所述数据写入到所述共享区域中,并从所述共享区域中预取出所述数据;主机(2),从所述预取单元通知预取所述数据,并读取所述预取的数据。

Description

多主机系统和数据传送系统
技术领域
本发明涉及多个主机经存储器上的共享区域进行数据交换的多主机系统,尤其涉及提高数据交换时的系统性能用的技术。
背景技术
在现有的多主机系统中,为了使多个主机分担进行数据处理,在可从主机公共访问的存储器上设置共享区域,一个主机将已处理的数据写入到共享区域,另一个主机从共享区域读出该数据,进行下一次的数据处理。经共享区域在主机间交换的数据,也称作共享数据。
作为数据处理的一例,可以举出OSD(屏上显示)。作为OSD的一部分处理,一个主机进行菜单画面的生成处理,将菜单画面的位图数据输出到共享区域,并通知给另一主机。另一个主机生成在菜单画面内显示的文本信息,进行将由文本信息指定的字体数据合成到从共享区域读出的位图数据上的处理。
图1是表示现有的多主机系统的一例的概略结构图。使用图1说明多主机系统的概略结构和动作。
该例中示出的多主机系统100包括多个主机1、2、3、存储控制器(memorycontroller)4、存储器5、高速缓存器6、高速缓存接口7、缓存器8和缓存控制部10,存储控制器4具有各自的主机用的WB(写缓存器)11~13。
经存储控制器4进行自多个主机1~3的存储器访问。存储控制器4在仲裁(arbitration)来自主机1~3的多个数据传送请求后,根据以对应于仲裁结果的顺序选择的数据传送请求,访问存储器5。
这时,存储控制器4在将来自各主机的写入数据保存到对应的WB11~13的时刻,进行对主机通知传送结束这样的放弃控制。该放弃控制的目的是,缩短从主机1~3对存储控制器4的写入访问的持续时间。并且,存储控制器4在WB12保存了写数据之后,若有来自其它主机的访问请求,则继续执行仲裁,执行对存储器5的访问。
另外,由于共享区域被分配给非高速缓存存储器空间,所以有时共享区域的读取访问不能实现由高速缓存器带来的高速化。这种情况下,现有技术中使用如下技术,即增大存储控制器和存储器之间的数据传送单位量,从存储器读取大量的数据保存到缓存器中,由于连续发生缓存器内的读取很容易,所以不访问存储器,而是从缓存器进行读取。
作为与从存储器向缓存器的数据传送控制有关的现有技术,例如,公开了在检测出对缓存器的特定地址(例如,16字节的每个数据块的例如开头地址和末尾地址)的读取时,缓存控制单元进行缓存器的无效化,以及对于包含特定地址的区域,从存储器向缓存器更新数据的技术(参考专利文献1)。
图2是表示多主机系统中的多个主机经存储器上的共享区域进行数据交换的一般处理,表示主机1向共享区域中写入数据、主机2读取该数据的情况的时序图。使用图2说明该处理的主要执行周期。
这里,设共享区域为地址0号到地址100号,将对存储器地址100号的写入访问标记为写100,将存储器地址0号到3号的读取访问合并标记为读0-3。另外,对共享区域外的例如200号地址的访问,设为是来自主机1、2以外的主机(例如主机3等)的访问。
到T1周期之前,主机1结束写0到写99。
在T1周期中,主机1对存储控制器4开始写100。
在T2周期中,存储控制器4的WB11在保存了写100的数据之后,将写接受响应输出给主机1。
在T3周期中,主机1对存储控制器4开始进行对与写入访问相同的地址的读取,即假读100。该假读的目的是,确认在放弃控制下被保存在WB11中的写数据还写入到存储器5中。存储控制器4在来自其它主机的读200和来自主机1的写100的处理之后,处理读100。
在T10周期中,存储控制器4结束对存储器5的读100。
在T11周期中,主机1结束假读100。由此,主机1确认共享数据被写入到存储器5。
在T12周期中,主机1对主机2通知写入结束。
在T13周期中,接收了写结束通知的主机2,开始对共享区域的访问。首先,对缓存控制部10开始读0。缓存控制部10根据总线的数据传送单位量,将读0变换为与其它地址号合并的读0-3,存储控制器4开始读0-3。
在T17到T20周期中,存储控制器4结束读0-3。
在T18周期中,缓存控制部10结束读0。
在T19周期中,主机2结束读0。
在T20周期中,主机2开始读1。由于读0-3的数据被传送给缓存器8,所以来自主机2的读1、2、3都在2个时钟时间内结束。
如以上说明,到T25周期为止,从主机1向主机2的地址0-3的数据交换结束。主机2进一步在T26以后的周期中,进行内部处理和地址4以后的数据读取。
专利文献1:(日本)特开平6-243037号公报(第6页,图1)
但是,现有的多主机系统中,存在当经存储器上的共享区域进行数据交换时的各主机的处理性能受影响的问题。
第一,存在进行共享数据的写入的主机需要进行假读的问题。
如前所述,该假读是为了确认在放弃控制下被保存在写缓存器中的写数据,在其它主机的读取之前可靠地还写入到存储器中的情况而必需的,增加了写入共享数据的主机用于发行假读的负担。尤其,因存储器要求较多的持续时间周期等的理由,在共享数据的假读中需要多个周期的情况下,因等待假读的结束,有可能中断主机的处理。
第二,存在共享数据的读取所需的等待时间不能最佳化的问题。
进行共享数据的读取的主机,在开始读取共享数据之后,到存储控制器从存储器中读取共享数据之前,强要求等待。该等待时间也与前述的假读所需的时间相同,共享数据的读取所需的周期数越多、等待时间就越长,有可能因等待读取结束而中断主机的处理。
发明内容
本发明鉴于上述问题而作出,其目的是提供一种提高多个主机经存储器上的共享区域进行数据交换时的系统的处理性能的多主机系统,和适用于这样的多主机系统的数据传送系统。
为了解决上述问题,本发明的多主机系统中,多个主机使用设置在存储器上的共享区域进行数据的交换,该多主机系统包括:存储控制器,执行从所述多个主机发行的对所述存储器的访问请求;第一主机,是所述多个主机的一个,向所述存储控制器发行向所述共享区域写入所述数据的写入请求;预取单元,确认所述数据已写入到所述共享区域中,从所述共享区域预取出所述数据,向所述多个主机中的另一个通知所述数据被预取的情况;第二主机,是所述多个主机中的另一个主机,若从所述预取单元被通知所述数据被预取的情况,读取所述被预取的数据。
另外,也可以是,所述第一主机在所述写入请求之后,向所述存储控制器请求所述数据自所述共享区域的读取,并根据该读取请求的结束,向所述预取单元通知写入结束;所述预取单元通过从所述第一主机接收所述写入结束的通知,确认所述数据已写入到所述共享区域。
此外,也可以是,所述第一主机在发行所述写入请求之后,与所述数据是否被写入到所述共享区域无关地,向所述预取单元通知写入结束;所述预取单元从所述第一主机接受了所述写入结束的通知时,代替所述第一主机向所述存储控制器请求所述数据自所述共享区域的读取,根据该读取请求结束,确认所述数据被写入到所述共享区域。
再者,本发明不仅可作为多主机系统实现,还可作为适用于多主机系统的数据传送系统来实现。
通过使用本发明的多主机系统,可以省去写入数据时由主机进行的假读,同时,由于通过预取缩短了共享数据的读取等待时间,所以与现有技术相比提高了写入共享数据的主机和读取共享数据的主机各自的处理性能。
该处理性能的提高在使用访问持续时间长的存储器的情况下和在共享数据的写入和假读期间存储控制器仲裁来自其他主机的访问的情况下尤其显著。
附图说明
图1是表示现有的多主机系统的一例的概略结构图;
图2是表示现有的多主机处理的一例的时序图;
图3是表示第一实施方式中的多主机系统101的功能结构的一例的框图;
图4是表示预取控制部9的内部功能结构的一例的框图;
图5是表示主机1的处理一例的流程图;
图6是表示预取控制部9的处理的流程图;
图7是表示主机2的处理一例的流程图;
图8是表示多主机系统101的整体动作的一例的时序图;
图9是表示第二实施方式中的多主机系统102的功能结构一例的框图;
图10是表示预取控制部9a的内部功能结构的一例的框图;
图11是表示主机1a的处理一例的流程图;
图12是表示预取控制部9a的处理一例的流程图;
图13是表示多主机系统102的整体动作的一例的时序图;
图14是表示存储控制器4b的内部功能结构的一例的框图;
图15是表示变形例中的多主机系统的整体动作的一例的时序图;
图16是表示第三实施方式中的多主机系统103的功能结构一例的框图;
图17是表示预取控制部9c的内部功能结构的一例的框图。
具体实施例
(第一实施方式)
下面,使用图3~图17说明本发明的实施方式。
(整体结构)
图3是表示本发明的第一实施方式中的多主机系统101的功能结构一例的框图。多主机系统101是通过预取控制部9从存储器5预取由主机1向存储器5写入的共享数据,并供给来自主机2的参照的系统,包括多个主机1、2、3、存储控制器4、存储器5、缓存器8和预取控制部9。
这里,多主机系统101是发明内容部分记载的多主机系统的一例,预取控制部9和缓存器8是发明内容部分记载的预取单元的一例。预取控制部9和缓存器8可以作为与主机1~3分离的一个以上的集成电路装置来实现。该一个以上的集成电路装置是发明内容部分记载的数据传送系统的一例。
主机1、2经存储控制器4访问存储器5的数据,并且分担着数据处理。下面,将这种处理称作多主机处理。主机1、2通过由主机2读取主机1向存储器5的共享区域写入的共享数据,联合进行多主机处理。尤其,经预取控制部9处理由主机2进行的数据访问。
主机3经存储控制器4访问存储器5的数据,并且进行同主机1、2进行的数据处理相独立的其它数据处理。
预取控制部9通过存储控制器4将从存储器5读取的数据保存在缓存器8中,并且,根据来自主机2的读取请求,向主机2输出保存在缓存器8中的数据。
存储控制器4仲裁来自主机1、2、3的访问请求,并根据与该仲裁结果对应的一个访问请求,进行对存储器5的访问。
(预取控制部9的结构)
图4是表示预取控制部9的内部功能结构的一例的框图。预取控制部9包括主机接口910、缓存读取控制部911、缓存写入控制部912、存储控制器接口913、主机通知接口914、寄存器块915、地址生成部916、存储器读取请求生成部917和预取序列发生器(sequencer)918。
下面,首先按顺序说明各部分的功能,接着说明各部分的联动动作。
寄存器块915具有访问地址寄存器919、读取结束标志寄存器920、共享区域开头地址寄存器921、共享区域最终地址寄存器922、缓存器控制选择寄存器923和通知标志寄存器924。
访问地址寄存器919保存从缓存读取控制部911提供的地址,并且保存表示该地址是否有效的有效位。
读取结束标志寄存器920保存被缓存读取控制部911更新、且与保存在缓存器8中的数据是否由主机2读取有关的读取结束标志。
共享区域开头地址寄存器921和共享区域最终地址寄存器922分别在进行共享区域中的数据的交换之前,设定并保存表示共享区域的开头的共享区域开头地址和表示末尾的共享区域最终地址。
缓存器控制选择寄存器923是保存为了切换对缓存器8的数据传送动作而使用的动作选择标志的寄存器,由主机2设定。
通知标志寄存器924是保存为了表示对主机2发行通知信号的时间而使用的通知标志的寄存器,通过主机通知接口914和预取序列发生器918来更新。
主机接口910将包含来自主机2的读取请求的访问请求向缓存读取控制部911输出,并且将从缓存读取控制部911输出的读取数据向主机2输出。
缓存读取控制部911比较从主机接口910取得的、由主机2请求的读取地址和被保存在访问地址寄存器919中的地址,在两者不一致的情况下,启动预取序列发生器918。在两者一致的情况下,将与读取地址一致的数据从缓存器8输出到主机接口910,并与来自缓存器8的数据读取同步,在读取结束标志寄存器920中记录表示来自缓存器8的数据读取结束的读取结束标志。
另外,缓存读取控制部911在访问地址寄存器919的有效位的值被设定为无效的情况下,不进行上述的地址比较,就启动预取序列发生器918。
缓存写入控制部912将从存储控制器接口913输出的数据写入到缓存器8,并将对缓存器8的写入结束,通知给预取序列发生器918。
存储控制器接口913将来自存储器读取请求生成部917的读取访问的请求传送给存储控制器4,并将从存储控制器4返回的读取数据向缓存写入控制部912输出。
主机通知接口914若从主机1取得了写入结束通知信号,将保存在通知标志寄存器924中的通知标志更新为允许。之后,检测出通知标志从允许更新为禁止,将读取请求通知信号输出给主机2。由预取序列发生器918进行通知标志向禁止的更新。
地址生成部916使用共享区域开头地址寄存器921和访问地址寄存器919的输出,生成存储器读取请求生成部917所生成的读取请求应表示的地址。
存储器读取请求生成部917通过预取序列发生器918的控制,生成对存储控制器接口913的读取请求。
预取序列发生器918使预取控制部9的各部分联合动作。后面详细描述该联合动作。
(动作例)
接着,使用图5到图7说明本发明的第一实施方式中的主要部分的动作例。
图5是表示本发明的第一实施方式中的主机1的处理一例的流程图。
图6是表示本发明的第一实施方式中的预取控制部9的处理一例的流程图。
图7是表示本发明的第一实施方式中的主机2的处理一例的流程图。
作为假想的动作,设主机1和主机2进行分担数据来处理的多主机处理。该多主机处理中,将主机1进行了数据处理的结果写入到设在存储器5上的共享区域,主机2从共享区域读取由主机1写入的结果,进行主机2的数据处理。
(主机1的动作)
首先,参考图5说明主机1的动作。
步骤2001中,主机1在寄存器块915中设定在多主机处理中由系统定义的共享区域的信息和预取控制信息。
步骤2002中,将在多主机处理中由主机1分担的数据处理的结果依次写入到共享区域的开头地址。
步骤2003中,依次写入数据,直到共享区域的最终地址。
步骤2004中,开始对共享区域的最终地址的假读。
步骤2005中,等待在步骤2004开始的对共享区域的最终地址的假读结束。在等待结束的周期中,主机1中断处理。
步骤2006中,向预取控制部9通知对共享区域的写入结束。
步骤2007中,进行用于准备下一次写入共享区域的数据的数据处理。
步骤2008中,等待来自主机2的共享区域的读取结束通知。
步骤2009中,在多主机处理结束之前,返回到步骤2002的处理,重复步骤2002~步骤2007的处理。
这里,说明需要步骤2004的假读的理由。
通过主机1对存储控制器4进行数据的写入请求,并返回来自存储控制器4的该写入请求的接受响应,从而结束步骤2002中的数据的写入处理。存在如下情况:在将来自主机1的数据保存在写入缓存器11中的时刻,存储控制器4向主机1输出写入请求的接受响应,所以主机1根据该接受响应,对主机2通知表示进行了数据写入的读取请求,在主机2向存储控制器4请求了读取该数据的情况下,存储控制器4在该数据实际被写入到存储器5之前,仲裁主机2的读取请求,来访问存储器5。
若这样,在用主机1写入的数据更新存储器5之前,发生主机2从存储器5读取更新前的数据的问题。为了解决该问题,在主机1想要传递给主机2的数据写入之后,接着进行对写入请求时的地址的假读。由于存储控制器4一般对于来自同一主机的访问请求,按请求顺序对存储器5进行访问,所以在进行假读的时刻,保证了之前的写入已结束。
(预取控制部9的动作)
接着,参考图6说明预取控制部9的动作。这里说明的动作是由预取序列发生器918控制的联合动作的一例。
步骤9001中,预取序列发生器918等待来自主机1的对共享区域的写入结束通知。将来自主机1的写入结束通知输入到主机通知接口914,主机通知接口914将保存在通知标志寄存器924中的通知标志设置为允许。若通知标志被设定为允许,预取序列发生器918的控制转移到步骤9002。
步骤9002中,设定寄存器块915内的初始化所需的寄存器。例如,将访问地址寄存器919的有效位的值设为无效。
步骤9003中,预取序列发生器918对地址生成部916进行控制,使其生成应该对存储控制器接口913请求的地址,并向存储器读取请求生成部917输出。本步骤中,地址生成部916从共享地址开头地址寄存器中参照共享区域的开头地址,并使用。
步骤9004中,预取序列发生器918对存储器读取请求生成部917进行控制,使其对存储控制器接口913进行读取请求,其结果,存储器控制接口913对存储控制器14进行用于预取读取数据的读取请求。所请求的传送大小,作为一例可以是缓存器8的缓存容量,该容量一般比主机2读取数据的单位量大。
步骤9005中,存储器控制接口913将来自存储控制器4的读取数据输出给缓存写入控制部912。缓存写入控制部912将读取数据写入到缓存器8。缓存写入控制部912和最后读取数据向缓存器8的写入同步地,向预取序列发生器918通知所有读取数据的预取动作已结束。
预取序列发生器918利用存储器读取请求生成部917输出的地址来更新访问地址寄存器919中保存的地址,并且将有效位的值设定为有效。
步骤9006中,预取序列发生器918将保存在通知标志寄存器924中的通知标志更新为禁止。主机通知接口914检测出通知标志从允许更新为禁止,向主机2通知共享区域的读取请求。
步骤9007中,进行由被通知了共享区域的读取请求的主机2开始的、与自共享区域的读取动作同步的控制。共享区域的数据从共享区域的开头地址起被顺序读取。将来自主机2的读取请求,经主机接口910输出给缓存读取控制部911。对共享区域的开头地址的数据进行最初的读取请求。该数据通过步骤905的处理已经保存在缓存器8中,访问地址寄存器919所保存的地址表示共享区域的开头地址,有效位的值被设定为有效。
由于有效位的值被设定为有效,所以缓存读取控制部911判断为从主机2发出了读取请求的数据被保存在缓存器8中,根据缓存器8的保存数据选择被请求读取的数据,经主机接口910输出给主机2。
若进行了对保存在缓存器8中的后续数据的读取请求,则所请求的数据从缓存器8依次输出到主机2。顺序进行数据的读取,若检测出缓存器8保存的数据已经被全部读取,则预取序列发生器918使控制转移到步骤9008。
步骤9008中,检测来自主机2的读取请求是否是对共享区域的最终地址的读取,若是对最终地址的读取,则在读取结束后,预取控制部9的处理结束。另一方面,若是对共享区域的中间地址的读取,则为了进行下一次预取动作,转移到步骤9009。
步骤9009中,对后续的数据进行与步骤9003相同的控制。即,地址生成部916将前一次在缓存器8中保存了数据的区域的下一个区域的开头地址,生成为新的访问地址。这里,下一个区域的开头地址,可以通过例如在保存于访问地址寄存器919中的访问地址上加上缓存器8所保存的数据大小而生成。
步骤9010中,进行与步骤9004相同的控制。
步骤9011中,进行与步骤9005相同的控制。但是,在将来自存储控制器4的读取数据传送给缓存器8之后,进入步骤9007。
(与预取控制部9的安装有关的几个具体例)
接着,说明与主要步骤的安装有关的几个具体例。
步骤9007中,为了检测出缓存器8保存的数据已被全部读取,读取结束标志寄存器920例如也可以对分割缓存器8而得到的多个部分,保存表示各个部分的数据是否被主机2读取的多个标志信息。这时,根据所有标志信息表示读取结束,可以检测出缓存器8保存的所有数据已被读取。
另外,在知道缓存器8的数据被顺序读取的情况下,仅对与最后读取的地址对应的数据,持有表示该数据是否被主机2读取的标志信息。此时,只要安装与最后的地址对应的1位的读取结束标志寄存器就很充分,所以能够减少硬件成本。
另外,在步骤9008中,来自主机2的读取请求是对共享区域的最终地址的读取请求的判断,可以通过由缓存读取控制部911比较被保存在共享区域最终地址寄存器922中的共享区域最终地址、和从主机接口910向缓存读取控制部911的请求地址的完全一致来进行。
还可以考虑根据被保存在访问地址寄存器919中的访问地址和共享区域最终地址的高位侧地址是否一致,且被保存在读取结束标志寄存器920中的读取结束标志是否表示被保存在缓存器8中的数据是否全部被读取,进行同样的判断。
另外,步骤9007到步骤9011中,为了隐藏向缓存器8预取新数据的时间,也可以由两个缓存器块构成缓存器8。在该结构下,缓存读取控制部911在对应来自主机2的读取请求,从一个缓存器块中读取共享区域的一部分数据的过程中,改变预取序列发生器918的控制内容,使其并行地向另一个缓存器块预取共享区域的下一部分数据。
由此,同由一个缓存器块构成缓存器8的情况相比,可以缩短主机2的读取持续时间。与此相对,在由一个缓存器块构成缓存器8的情况下,从该缓存器块读取所有的数据后,存储控制器4开始共享区域的下一个数据的预取,所以不能隐藏缓存器8的更新周期时间。因此,不能避免主机2的读取频率越高,读取间的周期数越少,越加大主机2的处理性能的劣化的问题。
另外,如步骤9001到步骤9011所示,在从主机1接受了写入结束通知之后,到由主机2读取了共享区域的所有数据为止的期间,在主机2结束被预取到缓存器8中的共享数据的读取的时刻,进行将新的共享数据预取到缓存器8的第一控制,并且,虽然在图中未示出,但也可以是,在由主机2读取了共享区域的所有数据之后,在从主机2接受了对未保存在缓存器8中的数据的访问的时刻,切换到将该数据预取到缓存器8的第二控制。
因此,例如,也可以根据缓存器控制选择寄存器923中保存的动作选择标志,使预取序列发生器918切换第一控制和第二控制,主机2在进行多主机处理之前,即在从主机1接受了写入结束通知之后,到由主机2读取了共享区域的所有数据为止的期间,设置动作选择标志,使其表示第一控制,在多主机处理结束的时刻,即主机2结束了预取到缓存器8的共享数据的读取的时刻,更新动作选择标志,使其表示第二控制。
这里,第一控制是,在预取的数据被顺序访问的情况下,通过一并传送缓存器8的数据来减少从存储控制器4对存储器5的访问次数,从而在提高系统性能方面较佳,相对于此,第二控制是,在预取的数据被随机访问的情况下,存储控制器4将访问存储器5的数据量抑制必要的最小限度,从而在提高系统性能方面较佳。
通过在以顺序访问为主的多主机处理中的对共享区域的读取访问中使用第一控制,在以随机访问为主的多主机处理以外的对共享区域外的读取访问中使用第二控制,可以根据访问的特征来提高系统性能。
另外,被保存在缓存器控制选择寄存器923中的动作选择标志,也可以通过从主机1输出的对共享区域的写入结束通知,设定为第一控制;通过来自主机2的对共享区域的最终地址的读取,设定为第二控制。
通过设置进行这种设定的硬件逻辑而不需要基于软件的寄存器设定处理,可以不改变现有的多主机处理的软件就可以使用,并且,还不会增加由寄存器设定引起的多主机处理周期,得到了良好系统性能的提高效果。
本实施方式中,说明了主机1和主机2共享数据,预取控制器9控制对主机2的读取请求的情况,但是在具有三个以上主机的系统中共享数据的情况下,也可以对两个主机的所有组合设定预取控制部9的主机通知接口914的功能,并且,可以任意选择主机的组合。
(主机2的动作)
接着,参考图7说明主机2的动作。
步骤1001中,若从预取控制部9检测出共享区域的读取请求的通知,转移到步骤1002。
步骤1002中,从共享区域的开头地址起依次执行数据的读取。
步骤1003中,若共享区域的最终地址的数据读取结束,则转移到步骤1004。
步骤1004中,向主机1通知共享区域的数据读取处理已结束。
步骤1005中,在多主机处理中进行这次读取的数据的处理。
步骤1006中,若这次读取的数据的处理结束,如果需要继续进行多主机处理,则返回到步骤1001,等待共享区域的更新。
(系统整体的动作时序)
图8是表示多主机系统101的整体动作的一例的时序图。与现有技术的说明相同,设共享区域为地址0号到地址100号,将对存储器地址100号的写入访问标记为写100,将从存储器地址0号到3号的读取访问合并标记为读取0-3。另外,对共享区域外的例如200号以上且300号以下的地址的访问,是来自主机1、2之外的主机(例如主机3等)的访问。
与现有例的执行周期(参考图2)相比,可以知道图8所示的执行周期具有与能够提高主机2的性能的如下不同点。
第一,主机2在被通知读取请求之后,开始对共享区域的起始地址的读取即可,可以比现有技术推迟读取的开始,其结果,主机2可以在现有技术中等待读取的T13到T17的周期中执行内部处理。
第二,主机2可以在被缩短的T32到T33的周期中执行现有技术在T31到T37的周期中进行的读取4。
另外,主机2在多主机处理中进行对共享区域的读取,但是,当然也可在多主机处理以外进行对共享区域外的读取访问。
缓存读取控制部911也可以在检测出对共享区域外的读取访问的情况下,不进行对缓存器的读取请求和对预取序列发生器的预取请求,而是直接向存储控制器接口913请求对存储控制器4的访问,直接输入从存储控制器接口913输出的读取数据,经由主机接口910输出给主机2。
(总结)
根据以上说明的结构和处理,共享区域的数据在主机2开始读取之前预取到缓存器8中,主机2可以读取被预取的数据。因此,主机2的共享区域开头地址的读取的持续时间周期与现有技术相比,可以缩短经由存储控制器4时耗费的周期数。
另外,通过采取这样的结构,即检测出被预取到缓存器8的数据由主机2全部读取的情况,在主机2读取共享区域的下一数据之前,将该数据预取到缓存器8,从而,在共享区域的大小超过了缓存器的容量的情况下,也可减少对共享区域的读取的持续时间周期。
另外,实施方式1中的多主机系统中,与现有技术相同,需要主机1通过进行假读,来确认请求了读取的数据从存储控制器4可靠地被写入到存储器5的共享区域中。在存储控制器4以低优先级来处理假访问的情况下,由于在处理假访问之前进行其他主机的访问处理,所以增大了从假访问开始到结束的周期。主机1在等待假访问结束的期间,处于停止了处理的状态。主机1在共享区域的写入结束之后,需要继续进行多主机处理,还需要进行其他处理,但是如果假访问需要时间,则存在多主机处理和其他处理的性能劣化的问题。对于解决该问题的结构,在第二实施方式中说明。
(第二实施方式)
第二实施方式中的多主机系统是不需要现有技术及第一实施方式中的主机1进行的假读处理的多主机系统。
图9是表示本发明的第二实施方式中的多主机系统102的功能结构一例的框图。多主机系统102是将第一实施方式中的多主机系统101(参考图3)的主机1和预取控制部9替换为主机1a和预取控制部9a而构成的。
该结构中,主机1a不发行假读,预取控制部9a进行与假读有关的所有处理。
下面,用相同标记表示与第一实施方式中说明的模块相同的模块,并且省略说明。
主机1a向预取控制部9a输出对存储器5的访问请求,来代替直接向存储控制器4输出对存储器5的访问请求。
主机2与第一实施方式中说明的主机2相同。
预取控制部9a将从主机1取得的访问请求中继到存储控制器4,并且,进行与假读有关的处理。
(预取控制部9a的结构)
图10是表示预取控制部9a的内部功能结构的一例的框图。预取控制部9a将预取控制部9(参考图4)的预取序列发生器918替换为控制时序不同的预取序列发生器918a,并且,追加主机接口925、主机访问响应部926、地址生成部927、主机访问请求生成部928、访问选择器929和存储控制器接口930而构成。
下面,首先顺序说明各部分的功能,接着说明各部分的联合动作。
主机接口925将包含来自主机1a的写入请求和读取请求的访问请求向主机访问响应部926输出,并且,将从主机访问响应部926输出的读取数据向主机1a输出。
主机访问响应部926将从主机接口925请求了写入的地址和被保存在共享区域最终地址寄存器922中的共享区域最终地址进行比较,在一致的情况下,将被保存在通知标志寄存器924中的通知标志设定为允许。
这时,主机访问响应部926将来自主机接口925的写入请求传送给存储控制器接口930。主机访问响应部926也可以在该传送之前,向主机接口925输出假响应。
地址生成部927将共享区域最终地址寄存器922的输出向主机访问请求生成部928输出,并且,使用被保存在共享区域开头地址寄存器921及访问地址寄存器919中的共享区域开头地址及访问地址,生成主机访问请求生成部928所生成的、对存储控制器接口930的读取请求中应示出的地址。
主机访问请求生成部928生成对存储控制器接口930的访问请求。
访问选择器929通过预取序列发生器918的控制,选择来自主机访问响应部926的访问请求和来自主机访问请求生成部928的访问请求的一个,输出给存储控制器接口930。
存储控制器接口930根据来自访问选择器929的访问请求,对存储控制器4请求访问,并且,将来自存储控制器4的读取数据输出到缓存写入控制部912。
缓存写入控制部912通过预取序列发生器918的控制,选择从存储控制器接口913输出的数据和从存储控制器接口930输出的数据中的一个,写入到缓存器8中,并将对缓存器8的写入结束通知给预取序列发生器918。
存储控制器接口930根据来自访问选择器929的访问的请求,对存储控制器4请求访问,并且,将来自存储控制器4的读取数据输出到缓存写入控制部912。
预取序列发生器918a使预取控制部9a的各部分联合动作。后面详细描述该联合动作。
(动作例)
接着,使用图11和图12,说明本发明的第二实施方式中的主要部分的动作例。
图11是表示本发明的第二实施方式中的主机1a的处理一例的流程图。
图12是表示本发明的第二实施方式中的预取控制部9a的处理一例的流程图。
(主机1a的动作)
首先,参考图11说明主机1a的动作。主机1a进行从第一实施方式的主机1进行的处理(参考图5)中省去了步骤2004和步骤2005的处理。即,在图11所示的例子中,主机1不进行对共享区域的最终地址的假读,当在步骤2003请求了对共享区域的最终地址的数据写入时,立即在步骤2006向预取控制部9通知存储器的写入结束。即,与数据是否实际被写入到共享区域无关地,进行该写入结束通知。
(预取控制部9a的动作)
接着,参考图12说明预取控制部9a的动作。图中,用相同标记表示与第一实施方式中说明的步骤(参考图6)相同的步骤,并省略说明。
步骤9001中,预取控制部9a检测来自主机1的读取结束通知。该检测的时间同第一实施方式中的主机1进行的假读之后相比,提早到主机1a进行的对共享区域的最终地址的读取请求之后。
步骤9012中,通过预取序列发生器918a的控制,地址生成部916将保存在共享区域最终地址寄存器922中的共享区域最终地址,向主机访问请求生成部928输出。
步骤9013中,通过预取序列发生器918a的控制,主机访问请求生成部928对访问选择器929产生对共享区域最终地址的假读访问。
步骤9014中,存储控制器接口930伴随着对存储控制器4的假读访问的结束,向预取序列发生器918a通知访问结束,预取序列发生器918a使控制转到步骤9003。
(系统整体的动作时序)
图13是表示多主机系统102的整体动作的一例的时序图。
与现有例中的执行周期(参考图2)相比,可以知道图13所示的执行周期中具有能够提高主机1的性能的以下不同点。
即,由预取控制部9a代替执行根据现有技术是在T3到T10中由主机1进行的假读100,所以主机1a不需要进行假读,因此,在T3进行写入通知,在T4周期以后可以执行内部处理。所谓该内部处理,若举一个例子,是多主机处理中用于下一次传送给共享区域的数据的准备。
(第二个总结)
根据以上说明的结构和处理,由预取控制部9a代替主机1a进行对共享区域的最终地址的假读,所以,主机1a可以利用现有技术中由主机1进行的假读的时间进行内部处理,可以提高系统性能。
(第二实施方式的变形例)
以上,说明了预取控制部9a代替主机1a进行假读的例子,但是还可以考虑能够省略假读本身的变形例。下面,说明这种变形例。
该变形例中的多主机系统分别改变图9所示的多主机系统102中的存储控制器4和预取控制部9a的动作而构成。由于该多主机系统的整体结构与图9相同,所以省略图示。
存储控制器4b同存储控制器4相比,变更为新输出访问状态信号,该访问状态信号表示对存储器5执行了主机1发行的对共享区域的最终地址的写入请求。
预取控制部9b同预取控制部9a相比,变更为使用从存储控制器4b取得的访问状态信号,来检测出对存储器5执行了主机1请求的数据写入。由于进行该检测,所以变更了图10所示的预取控制部9a中的预取序列发生器918a的控制。
下面,将图10中的预取控制部9a替换成预取控制部9b,将存储控制器4替换成存储控制器4b进行说明。
在如此变更的预取序列发生器918a的控制下,预取控制部9b如下所述地动作。
通过来自主机1的对共享区域的最终地址的写入访问,从主机接口925向主机访问响应部926输出访问请求。
主机访问响应部926向访问选择器929通知该访问请求,访问选择器929在将该访问请求通知给存储控制器接口930之后,将保存在通知标志寄存器924中的通知标志设定为允许,从而屏蔽与多主机处理无关的、以后的来自主机接口925的访问请求,不使其向后级发行。
另外,如前所述,主机通知接口914也可以在从主机1取得写入结束通知信号时,将通知标志更新为禁止。这种情况下,也能够掩蔽与多主机处理无关的访问请求。
存储控制器接口930向存储控制器4b通知访问请求。其结果,对共享区域的最终地址的访问请求被通知给存储控制器4b,并且由存储控制器4b进行对存储器5的写入处理。
当通知标志被设定为允许时,预取序列发生器918一直等到来自存储控制器4b的访问状态信号示出了由存储控制器4b完成了来自主机1的写入访问为止,之后,与第一实施方式和第二实施方式相同,从存储器上的共享区域的开头地址数据起依次传送给缓存器,并向主机1通知该传送的结束。
图14是表示存储控制器4b的内部功能结构的一例的框图。
主机接口401在与预取控制部9b之间,控制来自主机1的存储器访问请求的传送。
主机接口402在与预取控制部9b之间,控制来自主机2的存储器访问请求的传送。
主机接口403在与主机3之间,控制存储器访问请求的传送。
写缓存器404保存来自主机接口401的写入访问数据,在保存的时刻,向主机接口401通知访问结束。另外,在写缓存器404内存在对存储器5的未传送数据的情况下,将该未传送数据的传送请求通知给仲裁器407和主机选择器408。
写缓存器405对主机接口402实现了与写缓存器404相同的功能。
写缓存器406对主机接口403实现了与写缓存器404相同的功能。
另外,写缓存器404~406具有将来自分别对应的主机接口的读取请求取入到仲裁器407、主机选择器408的作为读缓存器的功能,在接受了读请求时,在写缓存器404~406中有数据的情况下,将该数据输出给对应的主机接口。
仲裁器407调停来自入缓存器404~406的访问请求,并将该调停结果通知给主机选择器408。
主机选择器408具有根据仲裁器407的调停结果,从来自写缓存器404~406的访问请求中选择一个,并对存储器访问序列发生器409进行与所选择出的访问请求相对应的主机访问开始的请求的功能,并执行存储器接口411和写缓存器404~406之间的数据传送。
存储器访问序列发生器409根据来自主机选择器408的存储器访问开始请求,产生预先设定的访问时序。
存储器地址生成部410通过存储器访问序列发生器409的控制,生成存储器地址。
存储器接口411进行对存储器5的数据的访问控制。
访问状态输出部412监视从写缓存器404向仲裁器407的写入的访问请求,并将表示未执行该请求的第一信号输出到预取控制部9b。该第一信号表示写缓存器404中不存在,即没有保留来自主机1的写入数据。另外,监视从存储器访问序列发生部409向存储器接口411的访问请求,并将表示未执行该请求、即不是执行中的第二信号输出到预取控制部9b。
取这些第一和第二信号的逻辑和得到信号,表示应从主机1向存储器5写入的数据不存在于存储控制器4b内,即表示该写入请求既不是保留中也不是执行中。这意味着来自主机1的所有写入数据从存储控制器4b被写入到存储器5中。
预取控制部9b可以使用取从访问状态输出部412取得的第一和第二信号的逻辑和而得到的信号,来确认共享区域的最终地址的数据已写入到存储器中。
另外,访问状态输出部412也可以向预取控制部9输出取这些第一和第二信号的逻辑和而得到的信号。
(系统整体的动作定时)
图15是表示该变形例中的多主机系统的整体动作的一例的时序图。
与第二实施方式中的执行周期(参考图13)相比,可以看出图15所示的执行周期中具有能够提高主机2和系统的整体性能的如下不同点。
第一,由于不进行假读,所以预取控制部9b进行的共享区域的数据预取开始时间从T12提早到T9。结果,可以缩短直到主机2可以读取由主机1写入的数据为止的周转时间,可以实现主机2的响应提高和数据传送的业务量提高。
第二,由于不进行假读,所以降低了对存储控制器4b的访问频率,所以能够提高系统性能。
(其他变形例)
预取控制部9a可以使用传送与主机1有关的数据用的数据路径,将预取数据传送到缓存器8。在该结构中,地址生成部927、主机访问请求生成部928和访问选择器929在预取序列发生器918a的控制下,经由存储控制器接口930对存储控制器4b请求预取用的数据传送,缓存写入控制部912将从存储控制器4b读取的预取数据写入到缓存器8中。
这时,图12的步骤9003到步骤9005、步骤9009到步骤9011的各步骤,由地址生成部927和主机访问请求生成部928执行。
该结构在主机1主要进行多主机处理的情况下有利。在这种情况下,对共享区域的写入结束后,直到进行来自主机2的共享区域的读取结束通知,多主机处理中对存储器5的访问频率降低。因此,通过将不使用的主机1用的存储控制器4的数据路径利用于对主机2的数据的预取,可以提高系统性能。
此外,在第二实施方式中说明了不需要主机1a的假读处理的结构,但是,还可以考虑主机1a虽要求假读,但其等待时间缩短到最小限度的变形例。
在该变形例中,预取控制部9a对来自主机1的假读请求立即返回响应,主机1a将等待假读的时间缩短为最小限度。
具体地说,主机访问响应部926比较被保存在共享区域最终地址寄存器922中的共享区域的最终地址和来自主机接口925的主机1a的读取请求所表示的访问地址,在一致的情况下,立即向主机接口925返回响应。即,该响应作为所述读取请求的结束通知,与是否实际执行了所述读取请求无关地返回给主机1。
主机访问响应部926将被保存在通知标志寄存器924中的通知标志设定为允许,预取序列发生器918控制地址生成部927、主机访问请求生成部928、访问选择器929和存储控制器接口930执行假访问。预取序列发生器918之后的动作与前述相同,对于假访问,通过从存储控制器4接受实际的结束通知,来确认所述数据被写入到所述共享区域,并进行所述数据的预取和对主机2的读取请求的通知等(参考图12)。
根据该结构,由于主机1a将等待假读的时间缩短到最小限度,所以能够提高系统性能。
第一实施方式、第二实施方式中,由于预取控制部9进行使用了缓存器8的预取控制,所以存在存储器设备和传送控制装置的硬件成本增加的问题。对于用于解决该问题的结构,在第三实施方式中说明。
(第三实施方式)
第三实施方式中的主机系统是具有如下结构的多主机系统:在主机2具有高速缓存功能的情况下,通过从外部控制其高速缓存功能,来实现之前说明的缓存器的功能。
图16是表示本发明的第三实施方式中的多主机系统103的功能结构一例的框图。
下面,用相同标记来表示与之前说明的模块相同的模块,并省略说明。
主机2的高速缓存系统由高速缓存器6和高速缓存接口(IF)7构成,还可以从主机2的外部接受高速缓存控制命令并执行。该高速缓存系统从预取控制部接受适当的高速缓存控制命令,来执行共享区域的数据的预取。
本实施方式中,将先行取出命令和高速缓存无效命令作为高速缓存控制命令使用。先行取出命令是在主机2执行中的程序中直接使用的命令,不是数据,是将来使用的命令,即请将数据预先传送给高速缓存器6的命令。若提供了先行取出命令,则高速缓存ID7在所指定的地址的命令、数据已经存在于高速缓存器6中的情况下,什么都不做,在命令、数据不存在于高速缓存器6中的情况下,与来自主机2的访问中的高速缓存缺失的情况相同,将数据取到高速缓存器6的行上。
图16中,预取控制部9c与高速缓存接口7之间进行数据的交换,并且,进行高速缓存控制命令的发行和响应的接收。
图17是表示预取控制部9c的内部功能结构的一例的框图。
高速缓存命令生成部932通过高速缓存控制寄存器933的设定,向高速缓存接口7发行高速缓存命令,另外,通过来自高速缓存接口7的响应,向预取序列发生器918c通知高速缓存命令发行的结束。
高速缓存控制寄存器933具有与对高速缓存接口7的控制命令对应的字段。
接受了来自主机1的写入结束通知的预取序列发生器918c,在高速缓存器控制寄存器933中设定禁止命令。高速缓存命令生成部932在检测出高速缓存控制寄存器933中设置了无效命令的情况时,参照共享区域开头地址寄存器921,向高速缓存接口7发行对共享区域开头地址的无效命令。
高速缓存接口7将包含高速缓存器的共享区域开头地址的高速缓存行的数据设为无效,向高速缓存命令生成部932返回对无效命令的响应。高速缓存命令生成部932将对该无效命令的响应通知给预取序列发生器918c。
预取序列发生器918c在高速缓存控制寄存器933中设定预取命令。预取命令生成部932在检测出高速缓存控制寄存器933中设定了预取命令的情况时,参照共享区域开头地址寄存器921,向高速缓存接口7发行对共享区域开头地址的预取命令。
高速缓存接口7执行高速缓存器的共享区域开头地址数据是否存在于高速缓存器中的搜索,由于事先被设为无效,所以得到不存在的结果,从存储器5预取数据。在预取执行后,向高速缓存命令生成部932返回响应。
高速缓存命令生成部932将该响应通知给预取序列发生器918c。预取序列发生器918c将被保存在通知标志寄存器924中的通知标志设定为禁止。
主机通知接口914向主机2请求对共享区域的读取。主机2从共享区域的开头地址开始读取。由于包含共享区域的开头地址的高速缓存器行大小的数据被保存在高速缓存器6中,所以从高速缓存器6开始进行数据的读取。
(第三总结)
根据以上说明的结构,通过利用主机2具有的高速缓存器系统来实现预取共享区域的数据用的高速缓存器,可以大幅度减少硬件成本。进一步,传送到高速缓存器的数据可以进行随机访问和再利用。
另外,在本实施方式中,说明了主机2具有高速缓存系统,但是,例如如图1所示,在该高速缓存系统设在主机2的外部,对由主机2访问的数据进行高速缓存的情况,也包含在本发明中。
(第三实施方式的变形例)
也可以将传送大小寄存器934追加到寄存器块915中,在传送大小寄存器934中设定在通知对主机2的共享区域的读取请求之前,传送给高速缓存器6的数据的大小。为了发行预取命令,地址生成部935生成从共享区域的开头地址起每次按一次预取的数据量即预取大小增加,一直到被设定在传送大小寄存器934中的数据传送大小为止的一个以上地址。预取序列发生器918c在从地址生成部935接收到因满足数据传送大小而不需要发行预取命令的通知之前,为了对所生成的各地址发行预取命令,重复对高速缓存控制寄存器933的高速缓存控制命令的设定。
根据该结构,在共享区域是能够被收容在高速缓存器的一部分中的大小的情况下,共享数据全部被高速缓存,由于在主机2的多主机处理中的共享区域的读取中不发生存储器访问,所以不会发生现有技术中发生的、作为与其他主机的调停所带来的存储控制器主要问题的持续时间增大造成的读取性能劣化。因此,可以排除对多主机处理和其他主机处理的影响,可以提高系统性能。
此外,虽然未图示,但是追加第一实施方式的读取缓存器(图3所示的缓存器8),使得预取控制部9c向存储控制器4请求将读取缓存器的大小和高速缓存器大小合并后的大小的传送,可以使从存储控制器4向存储器5的访问大小增加。这时,预取序列发生器918在对高速缓存接口7的多个预取命令发行中,以一次的比例来产生对存储控制器4进行请求的时序。
通过增大从存储控制器4向存储器5的传送大小,存储控制器4中,可以降低仲裁的频率,所以可以提高系统性能,同时可以高速进行预取。
根据本发明的多主机系统和数据传送系统,在多个主机共享外部存储器并在主机之间进行数据的交换的系统中,具有保证与各主机对应的主机接口内具有的数据缓存器和外部存储器之间的数据匹配性的结构,由于可高速实现共享数据的传送周期,所以在采用统一的存储器结构的系统LSI等中适用很有用。

Claims (16)

1.一种多主机系统,多个主机使用设置在存储器上的共享区域进行数据的交换,其特征在于,包括:
存储控制器,执行从所述多个主机发行的对所述存储器的访问请求;
第一主机,是所述多个主机的一个,向所述存储控制器发行向所述共享区域写入所述数据的写入请求;
预取单元,确认所述数据已写入到所述共享区域中,从所述共享区域预取出所述数据,向所述多个主机中的另一个通知所述数据被预取的情况;
第二主机,是所述多个主机中的另一个主机,若从所述预取单元被通知所述数据被预取的情况,读取所述被预取的数据。
2.根据权利要求1所述的多主机系统,其特征在于,
所述第一主机在所述写入请求之后,向所述存储控制器请求所述数据自所述共享区域的读取,并根据该读取请求的结束,向所述预取单元通知写入结束;
所述预取单元通过从所述第一主机接收所述写入结束的通知,确认所述数据已写入到所述共享区域。
3.根据权利要求2所述的多主机系统,其特征在于,
所述预取单元以比所述第二主机读取的单位大的单位,预取所述数据。
4.根据权利要求3所述的多主机系统,其特征在于:所述预取单元保存多个标志信息,该标志信息表示是否由所述第二主机分别读取了将所述被预取的数据分割而得到的多个部分,在所述被保存的多个标志信息表示由所述第二主机读取了所有部分的情况下,从所述共享区域预取新的数据。
5.根据权利要求3所述的多主机系统,其特征在于,
所述第二主机以地址顺序读取所述预取出的数据;
所述预取单元保存标志信息,该标志信息表示是否由所述第二主机读取了所述被预取出的数据中最终地址的数据,在所述被保存的标志信息表示由所述第二主机读取了所述最终地址的数据的情况下,从所述共享区域预取新的数据。
6.根据权利要求3所述的多主机系统,其特征在于,
所述预取单元具有缓存器,在多个部分分别保存被预取的数据;
在由所述第二主机读取了在一个部分保存的数据的情况下,从所述共享区域对其他部分预取新的数据。
7.根据权利要求2所述的多主机系统,其特征在于,
所述预取单元保存将第一期间和另外的第二期间区别表示的标志信息,该第一期间是从所述第一主机接受了所述读取结束的通知后,到由所述第二主机读取了预取出的共享区域的所有数据为止的期间;
在所述保存的标志信息表示所述第一期间的情况下,由所述第二主机读取了被预取的所有数据时,从所述共享区域预取新的数据;
在所述保存的标志信息表示所述第二期间的情况下,从所述第二主机接受了对与被预取的数据不同地址的数据的读取请求时,从所述共享区域预取新的数据。
8.根据权利要求2所述的多主机系统,其特征在于,
所述预取单元具有共享区域最终地址寄存器,保存着所述共享区域的最终地址;
在从所述第一主机接受了所述写入结束的通知后,到处理来自所述第二主机的、对保存在所述共享区域最终地址寄存器中的地址的读取请求并结束的期间,在由所述第二主机读取了被预取的所有数据的情况下,从所述共享区域预取新的数据;
在其它期间,在从所述第二主机接受了对于与被预取的数据的地址不同地址的数据的读取请求的情况下,从所述共享区域预取新的数据。
9.根据权利要求1所述的多主机系统,其特征在于,
所述第一主机在发行所述写入请求之后,与所述数据是否被写入到所述共享区域无关地,向所述预取单元通知写入结束;
所述预取单元从所述第一主机接受了所述写入结束的通知时,代替所述第一主机向所述存储控制器请求所述数据自所述共享区域的读取,根据该读取请求结束,确认所述数据被写入到所述共享区域。
10.根据权利要求1所述的多主机系统,其特征在于,
所述第一主机在发行所述写入请求之后,与所述数据是否被写入到所述共享区域无关地,向所述预取单元通知写入结束;
所述存储控制器向所述预取单元输出访问状态信号,该访问状态信号表示所述写入请求是保留在所述存储控制器内还是在执行中;
所述预取单元从所述第一主机接收到所述写入结束的通知时,屏蔽来自所述第一主机的新的访问请求,以便不向所述存储控制器发行所述新的访问请求,之后,通过使所述访问控制信号表示既不是保留中也不是执行中,确认所述数据被写入到所述共享区域。
11.据权利要求1所述的多主机系统,其特征在于,
所述预取控制单元经由用于与所述第一主机有关的数据的传送的数据路径,从所述共享区域预取所述数据。
12.根据权利要求1所述的多主机系统,其特征在于,
所述第一主机在所述写入请求之后,经所述预取单元向所述存储控制器请求所述数据从所述共享区域的读取;
当将来自所述第一主机的所述读取请求中继到所述存储控制器时,与是否由所述存储控制器执行了所述读取请求无关地,所述预取单元向所述第一主机通知所述读取请求的结束,之后,通过从所述存储控制器接受实际的结束通知,确认所述数据被写入到所述共享区域。
13.根据权利要求1所述的多主机系统,其特征在于,
所述多主机系统还具有高速缓存单元,对所述第二主机高速缓存所述存储器上的数据;
所述预取单元通过对所述高速缓存单元提供预取命令,使所述高速缓存单元预取所述数据;
所述第二主机从所述高速缓存单元中读取被预取的所述数据。
14.根据权利要求13所述的多主机系统,其特征在于,
所述预取单元预先设定从共享区域向高速缓存器的数据传送大小,将请求地址增加预取大小,并且将与所述设定的数据传送大小相对应的个数的预取命令提供给所述预取单元;
所述预取单元从共享区域的开头地址起将所述数据传送大小的共享数据传送给所述高速缓存单元,向所述第二主机请求对共享区域的从开头地址开始的读取。
15.根据权利要求13所述的多主机系统,其特征在于,
所述第二主机经所述高速缓存器和缓存器向所述存储控制器输出数据传送请求;
所述预取控制单元向所述高速缓存控制单元提供预取行大小的预取命令,
并且,对所述存储控制器进行请求,使其从所述共享区域同时传送将预取行大小和缓存器大小进行了合计的大小的数据;
交替地进行第一控制和第二控制,所述第一控制是将由所述存储控制器从所述共享区域传送的数据中的从开头起预取行大小的数据和剩余数据,分别分割保存到所述高速缓存单元和缓存器中的控制,所述第二控制是向所述高速缓存单元输出预取行大小的预取命令的控制。
16.一种数据传送系统,控制在多个主机之间使用设置在存储器上的共享区域进行的数据传送,其特征在于:
具有预取单元,确认从所述多个主机的一个向所述共享区域写入了数据,从所述共享区域预取出所述数据,向所述多个主机的另一个通知所述数据被预取的情况。
CNA2007100855476A 2006-03-08 2007-03-08 多主机系统和数据传送系统 Pending CN101034381A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006062490A JP2007241612A (ja) 2006-03-08 2006-03-08 マルチマスタシステム
JP062490/2006 2006-03-08

Publications (1)

Publication Number Publication Date
CN101034381A true CN101034381A (zh) 2007-09-12

Family

ID=38534938

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007100855476A Pending CN101034381A (zh) 2006-03-08 2007-03-08 多主机系统和数据传送系统

Country Status (3)

Country Link
US (1) US20070226422A1 (zh)
JP (1) JP2007241612A (zh)
CN (1) CN101034381A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104915319A (zh) * 2009-08-21 2015-09-16 谷歌公司 高速缓存信息的系统及方法
CN103885910B (zh) * 2012-12-21 2017-08-25 深圳市兴飞科技有限公司 多设备在主模式下进行iic通信的方法
CN107590099A (zh) * 2017-08-31 2018-01-16 深圳市共济科技股份有限公司 一种多主机访问从机的方法、扩展装置及存储介质
CN108694132A (zh) * 2017-03-30 2018-10-23 西部数据技术公司 计算每一中央处理单元预取的逻辑块号的最佳数目
CN108833477A (zh) * 2018-05-16 2018-11-16 百度在线网络技术(北京)有限公司 基于共享内存的消息传输方法、系统和装置
CN109690490A (zh) * 2016-09-05 2019-04-26 三菱电机株式会社 嵌入系统、嵌入系统控制方法和数据匹配性判定方法
CN111338564A (zh) * 2018-12-19 2020-06-26 三星电子株式会社 包括数据存储设备的系统和控制丢弃操作的方法
CN111352882A (zh) * 2020-02-27 2020-06-30 苏州琅润达检测科技有限公司 一种串口分流装置
CN111797051A (zh) * 2020-06-04 2020-10-20 深圳云天励飞技术有限公司 片上系统、数据传送方法及广播模块
CN113342709A (zh) * 2021-06-04 2021-09-03 海光信息技术股份有限公司 在多处理器系统中访问数据的方法和多处理器系统
CN113360082A (zh) * 2020-03-04 2021-09-07 株式会社日立制作所 存储系统及其控制方法
CN113360082B (zh) * 2020-03-04 2024-06-04 株式会社日立制作所 存储系统及其控制方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636813B2 (en) * 2006-05-22 2009-12-22 International Business Machines Corporation Systems and methods for providing remote pre-fetch buffers
JP4818820B2 (ja) * 2006-06-07 2011-11-16 ルネサスエレクトロニクス株式会社 バスシステムおよびバススレーブならびにバス制御方法
JP2007334564A (ja) * 2006-06-14 2007-12-27 Matsushita Electric Ind Co Ltd ユニファイドメモリシステム
JP2008139908A (ja) * 2006-11-29 2008-06-19 Matsushita Electric Ind Co Ltd メモリ制御装置、コンピュータシステム及びデータ再生記録装置
JP4410270B2 (ja) * 2007-04-17 2010-02-03 株式会社東芝 バス制御装置
CN100489814C (zh) * 2007-08-01 2009-05-20 杭州华三通信技术有限公司 一种共享缓存系统及实现方法
US20100318707A1 (en) * 2008-02-08 2010-12-16 Panasonic Corporation External device access apparatus, control method thereof, and system lsi
JP5187038B2 (ja) * 2008-07-15 2013-04-24 セイコーエプソン株式会社 マルチプロセッサシステム及びそれを搭載した流体吐出装置
US8312228B2 (en) * 2010-04-06 2012-11-13 Sap Ag Processing data in shared memory by multiple processes
US8898408B2 (en) * 2011-12-12 2014-11-25 Dell Products L.P. Memory controller-independent memory mirroring
US9256384B2 (en) * 2013-02-04 2016-02-09 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for reducing write latency in a data storage system by using a command-push model
US9645934B2 (en) * 2013-09-13 2017-05-09 Samsung Electronics Co., Ltd. System-on-chip and address translation method thereof using a translation lookaside buffer and a prefetch buffer
WO2017028877A1 (en) * 2015-08-14 2017-02-23 Huawei Technologies Co., Ltd. Device and method for prefetching content to a cache memory
US9984004B1 (en) * 2016-07-19 2018-05-29 Nutanix, Inc. Dynamic cache balancing
US11422939B2 (en) * 2019-12-26 2022-08-23 Intel Corporation Shared read—using a request tracker as a temporary read cache
KR20220049978A (ko) 2020-10-15 2022-04-22 삼성전자주식회사 장치-부착 메모리에 대한 액세스를 위한 시스템, 장치 및 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06243037A (ja) * 1993-02-18 1994-09-02 Mitsubishi Electric Corp データ先読み装置
JPH08153032A (ja) * 1994-11-29 1996-06-11 Matsushita Electric Ind Co Ltd ネットワーク経由データ先読みバッファ方法
KR100329162B1 (ko) * 1998-10-05 2002-04-10 마츠시타 덴끼 산교 가부시키가이샤 데이터 전송 방법 및 데이터 전송 시스템
JP2002082901A (ja) * 2000-09-06 2002-03-22 Toshiba Corp バス制御装置
US7356670B2 (en) * 2001-12-14 2008-04-08 Nxp B.V. Data processing system
JP4208541B2 (ja) * 2002-09-30 2009-01-14 キヤノン株式会社 メモリ制御装置
JP2004171209A (ja) * 2002-11-19 2004-06-17 Matsushita Electric Ind Co Ltd 共有メモリデータ転送装置
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
JP2005258719A (ja) * 2004-03-10 2005-09-22 Matsushita Electric Ind Co Ltd データ処理システム及びスレーブデバイス
US7360027B2 (en) * 2004-10-15 2008-04-15 Intel Corporation Method and apparatus for initiating CPU data prefetches by an external agent
JP2006318139A (ja) * 2005-05-11 2006-11-24 Matsushita Electric Ind Co Ltd データ転送装置、データ転送方法およびプログラム
US7707388B2 (en) * 2005-11-29 2010-04-27 Xmtt Inc. Computer memory architecture for hybrid serial and parallel computing systems

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104915319B (zh) * 2009-08-21 2018-06-01 谷歌有限责任公司 高速缓存信息的系统及方法
CN104915319A (zh) * 2009-08-21 2015-09-16 谷歌公司 高速缓存信息的系统及方法
CN103885910B (zh) * 2012-12-21 2017-08-25 深圳市兴飞科技有限公司 多设备在主模式下进行iic通信的方法
CN107357756A (zh) * 2012-12-21 2017-11-17 高云 多设备在主模式下进行iic通信的系统
CN109690490A (zh) * 2016-09-05 2019-04-26 三菱电机株式会社 嵌入系统、嵌入系统控制方法和数据匹配性判定方法
CN108694132B (zh) * 2017-03-30 2022-09-13 西部数据技术公司 计算每一中央处理单元预取的逻辑块号的最佳数目
CN108694132A (zh) * 2017-03-30 2018-10-23 西部数据技术公司 计算每一中央处理单元预取的逻辑块号的最佳数目
US11656993B2 (en) 2017-03-30 2023-05-23 Western Digital Technologies, Inc. LBNs prefetching per CPU
CN107590099A (zh) * 2017-08-31 2018-01-16 深圳市共济科技股份有限公司 一种多主机访问从机的方法、扩展装置及存储介质
CN108833477A (zh) * 2018-05-16 2018-11-16 百度在线网络技术(北京)有限公司 基于共享内存的消息传输方法、系统和装置
CN108833477B (zh) * 2018-05-16 2020-09-29 百度在线网络技术(北京)有限公司 基于共享内存的消息传输方法、系统和装置
CN111338564A (zh) * 2018-12-19 2020-06-26 三星电子株式会社 包括数据存储设备的系统和控制丢弃操作的方法
CN111338564B (zh) * 2018-12-19 2024-06-04 三星电子株式会社 包括数据存储设备的系统和控制丢弃操作的方法
CN111352882A (zh) * 2020-02-27 2020-06-30 苏州琅润达检测科技有限公司 一种串口分流装置
CN113360082A (zh) * 2020-03-04 2021-09-07 株式会社日立制作所 存储系统及其控制方法
CN113360082B (zh) * 2020-03-04 2024-06-04 株式会社日立制作所 存储系统及其控制方法
CN111797051A (zh) * 2020-06-04 2020-10-20 深圳云天励飞技术有限公司 片上系统、数据传送方法及广播模块
CN113342709A (zh) * 2021-06-04 2021-09-03 海光信息技术股份有限公司 在多处理器系统中访问数据的方法和多处理器系统
CN113342709B (zh) * 2021-06-04 2023-02-21 海光信息技术股份有限公司 在多处理器系统中访问数据的方法和多处理器系统

Also Published As

Publication number Publication date
US20070226422A1 (en) 2007-09-27
JP2007241612A (ja) 2007-09-20

Similar Documents

Publication Publication Date Title
CN101034381A (zh) 多主机系统和数据传送系统
CN1130644C (zh) 一种在具有多系统总线的计算机系统中保持存储器相关性的系统和方法
CN1934543A (zh) 高速缓冲存储器及其控制方法
CN1282929C (zh) 高速缓存一致性协议的非随机分布式冲突解决
CN1153155C (zh) 装有高效利用主处理器中的寄存器数据的协处理器的信息处理装置
CN1120425C (zh) 存储器控制器和存储器控制方法
CN1185592C (zh) 并行处理器结构
CN1111790C (zh) 检查点处理加速装置及具有该装置的计算机
CN1849592A (zh) 高速缓存相干协议的推测分布式冲突解决
CN1225697C (zh) 半导体存储器
CN1149492C (zh) 遥控方法和服务器
CN1186729C (zh) 从虚地址计算页表索引的方法和装置
CN1280714C (zh) 独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器
CN1282925C (zh) 利用页标志寄存器跟踪存储器装置内物理页的状态的方法
CN1619511A (zh) 执行快速推测式加载运算的微处理器及装置
CN1501259A (zh) 便于具有通用读/写模式的存储器数据存取的装置和方法
CN1383511A (zh) 通过重排序存储器请求提高总线利用率的存储器控制器
CN1991798A (zh) 半导体存储装置
CN1573656A (zh) 并行处理系统中的电源管理系统及电源管理程序
CN1164710A (zh) 分散存储型多处理机系统及故障恢复方法
CN101052949A (zh) 操作系统
CN1932783A (zh) 存储器控制装置
CN1912926A (zh) 可中断图形处理单元处理多个程序的方法和图形处理单元
CN1916961A (zh) 可中断图形处理单元及其控制方法
CN1947107A (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
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20070912