传输装置、传输系统以及传输方法
【专利摘要】本发明公开了一种传输装置、传输系统以及传输方法,该传输装置包括第一通信路径,其与对共享内存中的指定范围执行读写的内存控制器进行通信;第二通信路径,其与对装置间的请求进行仲裁及根据一个或多个运算装置的请求指定共享内存中的范围并请求内存控制器对所述范围执行读写的仲裁装置进行通信;接收单元,其从请求装置接收对共享内存中存储的数据的请求;登记单元,其从仲裁装置检测出范围并登记所述范围;获取单元,在从请求装置发出的请求是对已登记的范围发出的情况下,其通过第一通信路径从内存控制器获取数据,在请求是对未登记的范围发出的情况下,通过第二通信路径从仲裁装置获取数据;以及传输单元,其将所获取的数据传输到请求装置。
【专利说明】
传输装置、传输系统以及传输方法
技术领域
[0001 ] 本发明涉及一种传输装置、传输系统以及传输方法。
【背景技术】
[0002]日本专利文献特开2008-140078号公报公开了一种监测在高速缓冲和主存储器之间的数据传输,确定已经被访问的所述主存储器的地址,以及选择数据传输的通道的技术。
【发明内容】
[0003]因此,本发明的宗旨是为了实现在保持由多个装置共享的存储内容的一致性的同时提高这些装置的处理速度。
[0004]根据本发明的第一方面,提供一种传输装置,其包括第一通信路径、第二通信路径、接收单元、登记单元、获取单元以及传输单元。所述第一通信路径与内存控制器进行通信,所述内存控制器执行对共享内存中所指定的范围的读取和写入。所述第二通信路径与仲裁装置进行通信,所述仲裁装置对装置之间的请求进行仲裁,所述仲裁装置根据一个或多个运算装置的请求指定所述共享内存中的范围,并且请求所述内存控制器执行对所述范围的读取和写入。所述接收单元从请求装置接收对所述共享内存中存储的数据的请求。所述登记单元从所述仲裁装置检测出范围并且登记所述范围,该所述范围是为了由所述一个或多个运算装置中的一个运算装置写入而已被指定的范围。所述获取单元,在从所述请求装置发出的所述请求是对已登记的范围发出的情况下,通过所述第一通信路径从所述内存控制器获取所述数据,在所述请求是对未登记的范围发出的情况下,通过所述第二通信路径从所述仲裁装置获取所述数据。所述传输单元将所获取的数据传输到所述请求装置。在从所述仲裁装置检测出的第一范围与已经被登记的第二范围的至少一部分重叠或与所述第二范围毗连的情况下,所述登记单元将所述第一范围和所述第二范围合并为单一连续范围并且将所述第一范围和所述第二范围登记为单一连续范围。
[0005]根据本发明的第二方面,提供一种根据本发明的第一方面的传输装置,其中,在从所述仲裁装置检测出的所述第一范围与已经被登记的多个第二范围中的任何一个既不重叠也不毗连,且多个第二范围的数量超过阈值的情况下,所述登记单元对多个第二范围中的每一个确定基于预定的评价的评价值,删除评价值最低的某个第二范围,并登记所述第一范围。
[0006]根据本发明的第三方面,提供一种根据本发明的第一方面的传输装置,其中,在从所述仲裁装置检测出的所述第一范围与已经被登记的多个第二范围中的任何一个既不重叠也不毗连,而且多个第二范围的数量超过阈值的情况下,所述登记单元对所述第一范围和多个第二范围中的每一个确定基于预定的评价的评价值,并且,在所述第一范围的评价值比多个第二范围的评价值都低的情况下,不登记所述第一范围。
[0007]根据本发明的第四方面,提供一种根据本发明的第二或第三方面的传输装置,其中,对于多个第二范围的范围中的每一个,所述登记单元将基于所述范围所表示的数据量的值确定为所述范围的评价值,并且确定数据量越小,评价值越低。
[0008]根据本发明的第五方面,提供一种根据本发明的第二或第三方面的传输装置,其中,对于多个第二范围的范围中的每一个,所述登记单元将基于所述范围到另一个范围的最短距离的值确定为所述范围的评价值,并且确定最短距离越长,评价值越低。
[0009]根据本发明的第六方面,提供一种传输装置,其包括第一通信路径、第二通信路径、接收单元、登记单元、获取单元以及传输单元。所述第一通信路径与内存控制器进行通信,所述内存控制器执行对共享内存中所指定的范围的读取和写入。所述第二通信路径与仲裁装置进行通信,所述仲裁装置对装置之间的请求进行仲裁,所述仲裁装置根据一个或多个运算装置的请求指定所述共享内存中的范围,并请求所述内存控制器执行对所述范围的读取和写入。所述接收单元从请求装置接收对所述共享内存中存储的数据的请求。所述登记单元从所述仲裁装置检测出范围并登记所述范围,该所述范围是为了由所述一个或多个运算装置中的一个运算装置读取而已被指定的范围。所述获取单元在从所述请求装置发出的所述请求是对未登记的范围发出的情况下,通过所述第一通信路径从所述内存控制器获取所述数据,在所述请求是对已登记的范围发出的情况下,通过所述第二通信路径从所述仲裁装置获取所述数据。所述传输单元将所获取的数据传输到所述请求装置。在从所述仲裁装置检测出的第一范围与已经被登记的第二范围的至少一部分重叠或与所述第二范围毗连的情况下,所述登记单元将所述第一范围和所述第二范围合并为单一连续范围并且将所述第一范围和所述第二范围登记为单一连续范围。
[0010]根据本发明的第七方面,提供一种根据本发明的第六方面的传输装置,其中,在从所述仲裁装置检测出的所述第一范围与已经被登记的多个第二范围中的任何一个既不重叠也不毗连,且所述多个第二范围的数量超过阈值的情况下,所述登记单元将多个第二范围中最靠近所述第一范围的某个第二范围与所述第一范围合并为单一连续范围,并且将所述某个第二范围和所述第一范围登记为单一连续范围。
[0011 ] 根据本发明的第八方面,提供一种根据本发明的第六方面的传输装置,其中,在从所述仲裁装置检测出的所述第一范围与已经被登记的多个第二范围中的任何一个既不重叠也不毗连,且多个第二范围的数量超过阈值的情况下,所述登记单元登记所述第一范围,并且另外将多个第二范围之间距离最短的两个第二范围合并为单一连续范围,并将所述两个第二范围登记为单一连续范围。
[0012]根据本发明的第九方面,提供一种传输系统,其包括根据本发明的第一至第八方面的任意一个方面的传输装置、内存控制器、仲裁装置以及请求装置。所述内存控制器通过所述第一通信路径与所述传输装置进行通信,并执行对共享内存中所指定的范围的读取和写入。所述仲裁装置对装置之间的请求进行仲裁,并通过所述第二通信路径与所述传输装置进行通信,所述仲裁装置根据一个或多个运算装置的请求指定所述共享内存中的范围,并请求所述内存控制器执行对所述范围的读取和写入。所述请求装置发送对所述共享内存中存储的数据的请求到所述传输装置。
[0013]根据本发明的第十方面,提供一种用于计算机的传输方法,所述计算机包括与内存控制器进行通信的第一通信路径,所述内存控制器执行对共享内存中所指定的范围的读取和写入;以及与仲裁装置进行通信的第二通信路径,所述仲裁装置对装置之间的请求进行仲裁,所述仲裁装置根据一个或多个运算装置的请求指定所述共享内存中的范围,并请求所述内存控制器执行对所述范围的读取和写入,所述传输方法包括:从请求装置接收对所述共享内存中存储的数据的请求;从所述仲裁装置检测范围并且登记所述范围,该所述范围是为了由所述一个或多个运算装置中的一个运算装置写入而已被指定的范围;在从所述请求装置发出的所述请求是对已登记的范围发出的情况下,通过所述第一通信路径从所述内存控制器获取所述数据,在所述请求是对未登记的范围发出的情况下,通过所述第二通信路径从所述仲裁装置获取所述数据;以及将所获取的数据传输到所述请求装置。其中,在从所述仲裁装置检测出的第一范围与已经被登记的第二范围的至少一部分重叠或与所述第二范围毗连的情况下,在所述登记中,所述第一范围和所述第二范围被合并为单一连续范围且将所述第一范围和所述第二范围登记为单一连续范围。
[0014]根据本发明的第一、第六、第九以及第十方面,可以实现即保持由多个装置共享的存储内容的一致性又能提高这些装置的处理速度。
[0015]根据本发明的第二方面,所登记的范围的数量不超过阈值,所述范围是为了由运算装置写入而已被指定的范围。
[0016]根据本发明的第三方面,在从所述仲裁装置检测出的范围的评价值比已经被登记的范围的评价值低的情况下,已经被登记的所述范围不必被删除。
[0017]根据本发明的第四方面,不太可能被所述请求装置请求的范围被删除。
[0018]根据本发明的第五方面,不太可能与从所述仲裁装置检测出的范围合并的范围被删除。
[0019]根据本发明的第七和第八方面,已登记的范围不必被删除。
【附图说明】
[0020]将基于下列附图详细说明本发明的示例性实施例,其中:
[0021]图1是示出根据本示例性实施例的传输系统的整体配置的图;
[0022]图2是示出传输装置的功能结构的图;
[0023]图3A和图3B是示出管理表的实施例的图;
[0024]图4是说明确定范围时所必需的彳g息的图;
[0025]图5是示出所述传输系统的操作的顺序图;
[0026]图6是示出所述传输装置中登记处理的操作的流程图;
[0027]图7A和图7B是示出第一范围和第二范围相互既不毗连也不重叠的情况的图;
[0028]图8A至图8C是示出所述第一范围和所述第二范围重叠的情况的图;
[0029]图9是示出缩减处理的操作的流程图;
[0030]图10是示出变形例中的缩减处理的操作的流程图;
[0031]图11是示出变形例中的缩减处理的操作的流程图;以及
[0032]图12A至图12C是示出变形例中的合并的图。
【具体实施方式】
[0033]1.示例性实施例
[0034]1-1.传输系统的整体配置
[0035]图1是示出根据本示例性实施例的传输系统9的整体配置的图。如图1所示,所述传输系统9包括传输装置1、内存控制器3、仲裁总线5以及请求装置7。此外,所述传输系统9还包括共享内存2、一个或多个运算装置4以及内部总线6。
[0036]所述内存控制器3为一种控制器装置,其执行对所述共享内存2中所指定的范围的读取和写入。所述内存控制器3通过第一通信路径Pl与所述传输装置I进行通信。此夕卜,所述内存控制器3从所述仲裁总线5接收关于读取和写入的请求。所述传输装置I监测这些请求。
[0037]所述仲裁总线5被称为,例如,高速缓冲一致性互连(CCI)总线,并且被用作仲裁装置之间的请求的装置(仲裁装置)。所述仲裁总线5通过第二通信路径P2与所述传输装置I进行通信,且为一种总线,该总线根据从所述一个或多个运算装置4发出的请求指定所述共享内存2中的范围,并请求所述内存控制器3执行对所述范围的读取和写入。所述仲裁总线5运行以使在所述共享内存2中存储的数据和从所述共享内存2读出的以及写入到所述一个或多个运算装置4之中的一个运算装置4的高速缓冲存储器41中的数据之间保持一致性。
[0038]由于所述仲裁总线5除了从所述一个或多个运算装置4接收请求以外,还从所述传输装置I接收请求,所以所述仲裁总线5包括有一个存储用于管理这些请求的队列的临时存储区。当对请求的处理速度跟不上发出的请求的数量时,所述队列变长并且可能耗费很长一段时间直到执行了请求的处理。
[0039]所述请求装置7被称为,例如,直接存储器访问(DMA)装置,是一种向所述传输装置I发送关于读出所述共享内存2中存储的数据的请求的装置。
[0040]所述传输装置I根据从所述请求装置7所发出的请求的内容确定一个从其中请求数据的对象(以下称为数据请求目的地),获取数据,并将所获取的数据传输到所述请求装置7。
[0041 ] 所述共享内存2为由构成系统的装置所共享的内存,是由所述内存控制器3执行从其中读取和执行对其写入的内存。所述共享内存2的内存容量为,例如,8千兆字节。
[0042]所述运算装置4为一种指定所述共享内存2中的范围并请求所述内存控制器3通过所述仲裁总线5执行对所述范围的读取和写入的装置。图1中所示为两个运算装置4,每个运算装置4都包括高速缓冲存储器41作为用于计算的临时存储区。所述高速缓冲存储器41的内存容量为,例如,I兆字节。
[0043]所述内部总线6是传递在所述请求装置7和所述传输装置I之间传送的信息的总线。
[0044]1-2.传输装置的结构
[0045]所述传输装置I根据需要可包括处理单元,以及诸如只读存储器(ROM)或随机存取存储器(RAM)的存储装置。
[0046]图2是示出所述传输装置I的功能结构的图。所述传输装置I用作接收单元11、登记单元12、获取单元13、传输单元14、检测器15以及内存16。
[0047]所述检测器15监测由所述运算装置4发出的且从所述仲裁总线5传输到所述内存控制器3的请求,并检测出为了由所述运算装置4写入而被指定的共享内存2的范围。由所述检测器15检测出的所述范围是连续范围,在所述运算装置4请求了两个或更多的非连续的范围的情况下,所述检测器15将该两个或更多的范围作为分开的范围进行检测。
[0048]应该注意到,即使在执行了复数次的数据写入的情况下,当每次写入的范围、之前写入的范围以及在所述范围之后要被写入的范围是连续的范围的情况下,所述检测器15可以将被请求了复数次的所述范围作为单一连续范围进行检测。
[0049]所述登记单元12将由所述检测器15检测出的所述共享内存2的范围登记到所述内存16的管理表161中。
[0050]所述内存16包括诸如上述的ROM或RAM的存储装置,并且存储有所述管理表161。
[0051]图3A和图3B是不出所述管理表161的实施例的图。所述管理表161为将由所述检测器15检测出的所述共享内存2中的连续范围以各个范围的形式进行存储的表。如图3A所示,所述共享内存2中的所述连续范围的每一个由唯一的编号表示,且表示为包括所述范围的开始位置(SP)和数据量(SZ)的记录。
[0052]应该注意到,指定范围的记录不总是用开始位置与数据量的组合来表示。例如,如图3B所示,记录也可以用开始位置(SP)与结束位置(EP)的组合来表示。此外,在下面的示例中,所述内存16中预存了一个表示可以登记在所述管理表161中的记录的最大值的阈值。
[0053]图4是说明确定范围时所必需的信息的图。开始位置SP为表示某个范围的第一个地址的信息。数据量SZ为表示所述范围的大小的信息。结束位置EP为,例如,表示通过增加一个最小储存单元到所述范围的最后的地址而获取的地址的信息。这里,最小储存单元为可以一次读写的最小数据量,也就是,例如,16字节。
[0054]—旦确定了所述开始位置SP、所述数据量SZ以及所述结束位置EP之中的任意两个,就确定了图4中的斜线阴影范围。
[0055]所述接收单元11通过所述内部总线6从所述请求装置7接收对所述共享内存2中存储的数据的请求。当接收到对所述数据的所述请求时,所述接收单元11将所述请求发送到所述获取单元13。
[0056]所述获取单元13将由所述接收单元11接收的范围与登记在所述管理表161中的范围进行对比,确定从所述请求装置7发出的所述请求是否为对已登记的范围发出的。然后,所述获取单元13根据所述确定结果选择所述仲裁总线5与所述内存控制器3的两者之一作为数据请求目的地,并从所选择的数据请求目的地获取数据。
[0057]作为确定的结果,在确认到从所述请求装置7所发出的所述请求是对已登记在所述管理表161中的范围发出的情况下,所述获取单元13通过所述第一通信路径Pl从所述内存控制器3获取数据。与此相反,在确认到从所述请求装置7所发出的所述请求是对未被登记在所述管理表161中的范围发出的情况下,所述获取单元13通过所述第二通信路径P2从所述仲裁总线5获取数据。
[0058]所述传输单元14将由所述获取单元13获取的所述数据通过所述内部总线6传输到所述请求装置7。
[0059]1-3.传输系统的操作
[0060]图5是示出所述传输系统9的操作的顺序图。所述传输装置I被设置为在刚刚接通电源之后的初始状态从所述内存控制器3获取一个由所述请求装置7请求的范围。然后,当从所述仲裁总线5第一次检测到为了由某个运算装置4读取而被指定的范围时,所述传输装置I被重新设置以便退出所述初始状态并从所述仲裁总线5获取由所述请求装置7请求的范围。当所述运算装置4通过所述仲裁总线5持续读取并且所读出的数据量超过所述高速缓冲存储器41的内存容量时,所述运算装置4通过所述仲裁总线5向所述内存控制器3发出请求以便将已经完成了计算且不必再存储的所述存储内容,即所述高速缓冲存储器41中存储的所述存储内容,写入到所述共享内存2中。
[0061]已从所述运算装置4的任何之一接收了请求的仲裁总线5根据所述请求指定所述共享内存2中的范围,并且请求所述内存控制器3执行读取或写入(步骤S001)。所述传输装置I监测在步骤SOOl中发出的这个请求。当写入请求从所述仲裁总线5发给所述内存控制器3时,所述传输装置I检测出由所述请求所表示的并在所述共享内存2中指定的范围(步骤S002)。然后,所述传输装置I登记被检测出的范围(步骤S100)。这一登记处理将在以后说明。
[0062]其次,当所述请求装置7在所述共享内存2中指定某个范围,并且请求所述传输装置I读出数据时(步骤S011),已接收该请求的所述传输装置I根据该请求的内容以及在步骤SlOO中登记的内容选择数据请求目的地(步骤S012)。所述传输装置I从所述内存控制器3或所述仲裁总线5(在图5中实线所示的实施例中,是从所述内存控制器3)的两者之一获取由所述请求装置7请求的所述范围的数据(步骤S013)。然后,所述传输装置I将所获取的数据传输到所述请求装置7 (步骤S014)。
[0063]1-4.传输装置的操作
[0064](I)登记处理的操作
[0065]图6是示出在所述传输装置I中的所述登记处理的操作的流程图。所述传输装置I监测从所述仲裁总线5发给所述内存控制器3的请求,并且确定是否检测出为了由某个运算装置4写入而被指定的范围(步骤S101)。在确定未检测出为了由所述运算装置4写入而被指定的范围的情况下(步骤SlOl中的“否”),所述传输装置I反复执行这一确认。
[0066]与此相反,在确定已检测出上述范围的情况下(步骤SlOl中的“是”),所述传输装置I确定被检测出的范围(步骤S102)。然后,所述传输装置I将所确定的范围与登记在所述内存16的所述管理表161中的某个范围进行对比(步骤S103),并确定这些范围是否相互毗连或重叠(步骤S104)。
[0067]在确定了所确定的范围与登记在所述内存16的所述管理表161中的某个范围是相互毗连或重叠的情况下,换言之,在从所述仲裁总线5检测出的所述范围(以下称为第一范围)与登记在所述管理表161中的某个范围(以下称为第二范围)的至少一部分重叠或与该第二范围毗连的情况下(步骤S104中的“是”),所述传输装置I将这些范围合并为单一连续范围并将这些范围登记为单一连续范围(步骤S105)。
[0068]图7A和图7B是示出第一范围和第二范围既不互相毗连也不重叠的情况的图。在所述管理表161中,如图7A和图7B所示的第二范围R2的开始位置以SP2表示,数据量以SZ2表示。然后,在图7A所示的实施例中,从所述仲裁总线5检测出的第一范围Rl与所述第二范围R2是分开的,所述第一范围Rl与所述第二范围R2既不毗连也不重叠。因此,如图7B所示,只要所登记的记录的数量不超过阈值,所述第一范围Rl即可登记为不同于所述管理表161中的所述第二范围R2的区域。
[0069]图8A至图8C是示出第一范围和第二范围重叠的情况的图。如图8A所示,由于所述第二范围R2的开始位置SP2位于所述第一范围Rl内,所以所述第一范围Rl与所述第二范围R2重叠。图SB所示的已涂黑的区域为所述第一范围Rl和所述第二范围R2重叠的区域。
[0070]如图SC所示,由于所述第一范围Rl与所述第二范围R2有一个重叠的区域,所述传输装置I将所述第一范围Rl和所述第二范围R2合并为单一连续范围的第三范围R3,并在所述管理表161中登记所述第三范围R3。因此,在这种情况下,在所述管理表161中,将在所述〃开始位置〃的字段中以SP2表示且在所述〃数据量〃的字段中以SZ2表示的记录重写为一个新的登记,其中,表示所述第三范围R3的开始位置的SP3在所述〃开始位置〃的字段中表示,表示所述第三范围R3的数据量的SZ3在所述"数据量"的字段中表示。
[0071]应该注意到,即使在所述第一范围Rl与所述第二范围R2没有重叠的区域时,在所述第一范围Rl和所述第二范围R2相互毗连的情况下,换言之,在所述第一范围Rl和所述第二范围R2之间不夹有其他数据的情况下,所述传输装置I将所述第一范围Rl和所述第二范围R2合并为单一连续范围的所述第三范围R3,并在所述管理表161中登记所述第三范围R3。
[0072]如图6所示,在确定所述第一范围不与所述第二范围毗连而且所述第一范围也不与所述第二范围的任何部分重叠的情况下(步骤S104中的“否”),在新登记所述第一范围时,所述传输装置I确定登记在所述管理表161中的记录的数量是否超过了预定的阈值(步骤 S106) ο
[0073]在新登记所述第一范围时,在确定登记在所述管理表161中的记录的数量超过了预定的阈值的情况下(步骤S106中的“是”),所述传输装置I执行减少登记在所述管理表161中的记录数量的缩减处理(步骤S200)。与此相反,在确定登记在所述管理表161中的记录的数量没超过预定的阈值的情况下(步骤S106中的“否”),所述传输装置I增加第一范围并将所述第一范围登记到所述管理表161中(步骤S107)。
[0074](2)缩减处理的操作
[0075]图9是示出上述缩减处理的操作的流程图。在步骤S200中,所述传输装置I对每个登记在所述管理表161中的所述范围(即,所述第二范围)执行预定的评价,并确定基于所述评价的评价值(步骤S201)。然后,所述传输装置I相互对比所确定的评价值,从登记在所述管理表161中的所述记录中选择具有最低评价值的记录(步骤S202),并删除所选择的记录(步骤S203) ο
[0076]在本实施例中,评价值为基于登记在所述管理表161中的范围的数据量的值。所述传输装置I用所述范围的数据量评价登记在所述管理表161中的某个范围。数据量越小,所分配的评价值越低。因此,在登记在所述管理表161中的范围的数量超过所述预定阈值的情况下,删除所述范围中的最小的范围。删除的范围越小,所述范围越不太可能被包含到由所述请求装置7所请求的所述范围之中。换言之,所述范围越不太可能被所述请求装置7请求,分配给所述范围的优先级越高,并且删除按优先级的次序执行。
[0077]在上述记录已经被从所述管理表161中删除以后,所述传输装置I增加第一范围并将所述第一范围登记到所述管理表161中(步骤S204)。通过该操作,由于在增加并登记表示所述第一范围的记录之前从所述管理表161中删除了一个记录,所以登记在所述管理表161中的记录数量不会改变,防止了记录数量的增加。
[0078]通过上述的操作,所述传输装置I检测出并登记为了由所述运算装置4写入而被指定的范围。在从所述请求装置7发出的请求是对已经被登记的范围发出的情况下,所述传输装置I从所述内存控制器3获取对应的数据。
[0079]关于从所述请求装置7发出的读取请求是对为了由所述运算装置4写入而被指定的范围发出的描述是指:已经由所述请求装置7请求读出的所述范围的数据已经被所述运算装置4作为最新的信息写入。因此,所述传输装置I从所述内存控制器3请求数据,直接从存储有最新的信息的所述共享内存2获取数据,并将所获取的数据传输到所述请求装置I。
[0080]与此相反,在从所述请求装置7发出的读取请求不是对为了由所述运算装置4写入而被指定的范围发出的情况下,由所述请求装置7请求的所述范围的最新的信息可以一直存在于所述运算装置4的所述高速缓冲存储器41中。从而所述传输装置I从所述仲裁总线5而不是从所述内存控制器3来获取所述范围的数据。
[0081]换言之,在由所述请求装置7请求的所述范围的最新的信息可以被所述运算装置4处理的情况下,根据本发明的示例性实施例的所述传输装置I即使耗费时间也要从所述仲裁总线5获取数据并传输所述数据。因此,减少了更有可能被覆盖的所述共享内存2中的数据传输到所述请求装置7的可能性。与此相反,在由所述请求装置7请求的所述范围的最新的信息已经被所述运算装置4写入并且最新的信息不太可能被处理的情况下,所述传输装置I直接从所述内存控制器3获取数据。因此,提高了数据传输到所述请求装置7的速度,可以缩短处理时间。
[0082]应该注意到,当在所述管理表161中表示的所述范围全部合并且变为对应于所述共享内存2整体的范围时,例如,所述传输装置I可以设置为,丢弃掉所述管理表161中的所述存储内容并且由所述请求装置7请求的范围从所述内存控制器3获取。
[0083]2.变形例
[0084]上面已经对示例性实施例进行了说明。所述示例性实施例的所述内容可以进行如下的变形。此外,还可以合并下列变形例的一部分或全部。
[0085]2-1.变形例 I
[0086]在上述示例性实施例中,当新登记第一范围时,所述传输装置I确定登记在所述管理表161中的记录的数量是否超过了所述预定的阈值;然而,也可以不进行这一确定。在这种情况下,可以不限制登记在所述管理表161中的记录的最大数量。例如,只要将由所述运算装置4发出的请求使调整为登记在所述管理表161中的记录的数量不超过某个数值即可。
[0087]2-2.变形例 2
[0088]在上述示例性实施例的步骤S201中,所述传输装置I对登记在所述管理表161中的所述第二范围的每一个执行预定的评价,并确定基于所述评价的评价值。然而,也可以对所述第一范围确定评价值,并且可以将该评价值包含于进行评价值之间的对比的对象中。
[0089]在这种情况下,对各自的第一范围和第二范围确定评价值。在具有最低评价值的所述范围是所述第二范围之一的情况下,如上所述,所述传输装置I删除所述第二范围并且新登记所述第一范围。与此相反,在对各自的第一范围和第二范围确定评价值,且具有最低评价值的范围是所述第一范围的情况下,所述传输装置I不新登记所述第一范围。
[0090]图10是示出在该变形例中的缩减处理的操作的流程图。在该变形例中,所述传输装置I执行如图6所示的处理,其中,用图10所示的步骤S210取代步骤S200。
[0091]在步骤S210中,所述传输装置I对从所述仲裁总线5检测出的所述第一范围和登记在所述管理表161中的所述第二范围中的每一个执行预定的评价,并确定基于所述评价的评价值(步骤S211)。然后,所述传输装置I相互对比所确定的评价值,并从登记在所述管理表161中的所述登记中选择具有最低评价值的记录(步骤S212)。所述传输装置I确定所选记录是否为计划增加的范围,换言之,是否为表示所述第一范围的记录(步骤S213)。在确定所选记录是表示所述第一范围的记录的情况下(步骤S213中的“是”),不增加所述第一范围(步骤S214),然后所述处理结束。
[0092]与此相反,在确定所选的记录不是表示所述第一范围的记录的情况下(步骤S213中的“否”),所述传输装置I删除所选的记录(步骤S215)。
[0093]在从所述管理表161中删除上述记录之后,所述传输装置I在所述管理表161中增加并登记所述第一范围(步骤S216)。
[0094]通过该操作,在表示所述第一范围的记录具有一个比所述第二范围的任何一个都低的评价值的情况下,取消向所述管理表161中增加所述第一范围。与此相反,在另一种情况下,由于在增加和登记表示所述第一范围的所述记录之前删除表示某个第二范围的一个记录,所以登记在所述管理表161中的记录的数量不会改变,防止了记录数量的增加。
[0095]2-3.变形例 3
[0096]在上述示例性实施例中,评价值为基于登记在所述管理表161中的范围的数据量的值;然而,评价值也可以是一个基于登记在所述管理表16中的范围的另一个属性的值。例如,评价值也可以是一个基于登记在所述管理表161中的从某个范围到另一个范围的最短距离的值。在这种情况下,从某个范围到另一个范围的最短距离越长,所述某个范围的评价值越低。在这种结构中,所述范围越不太可能被合并为从所述仲裁总线5检测出的范围,分配给所述范围的优先级就越高,且按优先级的顺序执行删除。
[0097]应该注意到,评价值也可以是一个基于检测时间段的值。在这种情况下,例如,某个范围的检测时间段越长,所述某个范围的所述评价值可越低。在这种结构中,为了由所述运算装置4写入而被指定的时间段越长,对应于所述时间段的某个记录越有可能被从所述管理表161中删除。
[0098]2-4.变形例 4
[0099]在上述示例性实施例中,所述传输装置I的所述检测器15监测由所述运算装置4发出并且从所述仲裁总线5传输到所述内存控制器3的请求,并检测出为了由所述运算装置4写入而被指定的所述共享内存2的范围。然而,也可以检测出为了由所述运算装置4读取而被指定的所述共享内存2的某个范围。
[0100]在该变形例中,在从所述请求装置7发出的请求是对未登记在所述内存16的所述管理表161中的范围发出情况下,所述传输装置I的所述获取单元13通过所述第一通信路径Pl从所述内存控制器3获取数据。与此相反,在从所述请求装置7发出的请求是对登记在所述管理表161中的范围发出的情况下,所述获取单元13通过所述第二通信路径P2从所述仲裁总线5获取数据。
[0101]关于从所述请求装置7发出的读取请求是对为了由某个运算装置4读取而被指定的范围发出的描述是指:已经被所述请求装置7请求读出的所述范围的数据已经被所述运算装置4读出并且所述数据将来可以通过计算后更新。因此,所述传输装置I不是从所述内存控制器3而是从所述仲裁总线5请求所述数据,并且使得所述仲裁总线5确定所述范围的最新的信息所存储的内存区域。此后,所述传输装置I获取数据并将所获取的数据传输到所述请求装置7。因此,提高了数据传输的安全性。
[0102]与此相反,在从所述请求装置7发出的读取请求不是对为了由某个运算装置4读取而被指定的范围发出的情况下,由所述请求装置7请求的所述范围的最新的信息还没有被从运算装置4的高速缓冲存储器41读出和写入所述运算装置4的所述高速缓冲存储器41中,而存储于所述共享内存2中。因此所述传输装置I不是从所述仲裁总线5而是直接从所述内存控制器3获取所述范围的所述数据。结果,提高了处理速度。
[0103]2-5.变形例 5
[0104]在上述示例性实施例中,当执行所述缩减处理时,所述传输装置I相互对比登记在所述管理表161中的对各自的第二范围所确定的所述评价值,并删除在所述第二范围中具有最低评价值的第二范围。然而,在上述变形例4中,所述传输装置I可以根据所述评价值选择一个表示登记在所述管理表161中的所述第二范围的记录,可以将所选的范围和所述第一范围合并为单一连续范围并将所选范围和所述第一范围重新登记为单一连续范围。
[0105]图11是示出在该变形例中的缩减处理的操作的流程图。在该变形例中,所述传输装置I执行如图6所示的处理,其中代替步骤S200,而执行如图11所示的步骤S220。
[0106]在步骤S220中,所述传输装置I对被登记在所述管理表161中的所述第二范围的每一个执行预定的评价,并确定基于所述评价的评价值(步骤S221)。然后,所述传输装置I相互对比所确定的评价值,并从被登记在所述管理表161中的所述第二范围中选择具有最低评价值的第二范围(步骤S222)。所述传输装置I将所选的第二范围和从所述仲裁总线5检测出的所述第一范围合并为单一连续范围,并且将所选择的第二范围和所述第一范围登记为单一连续范围(步骤S223)。
[0107]某个第二范围的评价值也可以是,例如,一个基于从所述第二范围到所述第一范围的距离的值。在这种情况下,选择到所述第一范围的具有最短距离的所述第二范围,将所选的第二范围和所述第一范围合并,且将所选的第二范围和所述第一范围重新登记为单一连续范围。图12A至图12C是示出在该变形例中的合并的图。如图12A所示,当检测出所述第一范围Rl时,对在所述管理表161中描述的所述第二范围R2的每一个根据到所述第一范围Rl的距离进行评价。
[0108]例如,根据各自到所述第一范围Rl的距离,对与所述第一范围Rl毗连的两个第二范围R2a和R2b各自进行评价,所述距离如图12B中已涂黑的区域所示。在这种情况下,因为从所述第二范围R2b到所述第一范围Rl的距离比从所述第二范围R2a到所述第一范围Rl的距离短,所以选择所述第二范围R2b。
[0109]所述传输装置I合并所述第一范围Rl和所述第二范围R2b,并将形成的范围作为第三范围R3登记到所述管理表161中,该第三范围R3为如图12C所示的单一连续范围。即使在这种情况下,登记在所述管理表161中的记录数量也不会改变,因此防止了记录数量的增加。
[0110]在上述变形例4,在从所述管理表161中删除某个第二范围之后,由所述请求装置7所请求的范围中可以包括被删除的范围。这里,可能有这种情况,对于其中的数据已经被从所述共享内存2读出以及已经被写入某个运算装置4的所述高速缓冲存储器41的范围,所述传输装置I还从所述内存控制器3获取所述范围的数据,并将所获取的数据传输到所述请求装置7,从而将非最新的信息的数据传输到所述请求装置7。与此相反,在该变形例中,因为执行的合并中未执行某个登记范围的删除,所以所述传输装置I不会将非最新的信息的数据传输到所述请求装置7。
[0111]2-6.变形例 6
[0112]在上述变形例5中,要确定评价值的对象只有所述第二范围;然而,也可以对所述第一范围确定评价值。然后,根据所述评价值从第一范围和第二范围中选择两个范围,且两个所选的范围可以被合并和登记。在这种情况下,某个范围的评价值也可以是一个基于从某个范围到另一个范围的最短距离的值。
[0113]2-7.变形例 7
[0114]在上述变形例5中,是将所述第二范围中所选择的一个和所述第一范围合并;然而,登记所述第一范围,另外可以选择两个第二范围,并可以合并两个所选的第二范围。换言之,所述传输装置I对被登记在所述管理表161中的所述第二范围的每一个执行预定的评价,并且确定基于所述评价的评价值。然后,所述传输装置I可以根据所述评价值选择两个表示登记在所述管理表161中的所述第二范围的所述记录,并且可以将两个所选的第二范围合并为单一连续范围,并将两个所选的第二范围重新登记为单一连续范围。
[0115]在这种情况下,评价值可以是基于两个第二范围之间的距离的值。换言之,在被从所述仲裁总线5检测出的所述第一范围与被登记在所述管理表161中的多个第二范围中的任意一个既不重叠也不毗连,而且所述多个第二范围的数量超过某个阈值的情况下,所述登记单元12将该第一范围登记在所述管理表161中,并且另外将所述多个第二范围中距离最短的两个范围合并为单一连续范围,并将所述两个范围登记为单一连续范围。即使在这种情况下,登记在所述管理表161中的记录数量也不会改变,因此防止了记录数量的增加。
[0116]2-8.变形例 8
[0117]控制所述传输装置I的程序可以在如下状态下提供,即,将所述程序存储于计算机可读登记介质中,例如,包括诸如磁带或磁盘的磁登记介质,诸如光盘的光登记介质,磁光登记介质,以及半导体存储器。此外,这些程序还可以,例如,通过互联网下载。应该注意至IJ,有些情况下,各种装置都可以用作所述传输装置I的所述处理单元。例如,使用专用处理器等。
[0118]为了进行图示和说明,以上对本发明的示例性实施例进行了描述。其目的并不在于全面详尽地描述本发明或将本发明限定于所公开的具体形式。很显然,对本技术领域的技术人员而言,可以做出许多修改以及变形。本实施例的选择和描述,其目的在于以最佳方式解释本发明的原理及其实际应用,从而使得本技术领域的其他熟练技术人员能够理解本发明的各种实施例,并做出适合特定用途的各种变形。本发明的范围由与本说明书一起提交的权利要求书及其等同物限定。
【主权项】
1.一种传输装置,其特征在于,包括: 第一通信路径,其与内存控制器进行通信,所述内存控制器对共享内存中所指定的范围执行读取和写入; 第二通信路径,其与仲裁装置进行通信,所述仲裁装置对装置之间的请求进行仲裁,所述仲裁装置根据一个或多个运算装置的请求指定所述共享内存中的范围,并且请求所述内存控制器执行对所述范围的读取和写入; 接收单元,其从请求装置接收对所述共享内存中存储的数据的请求; 登记单元,其从所述仲裁装置检测出范围并且登记所述范围,该所述范围是为了由所述一个或多个运算装置之中的一个运算装置写入而已被指定的范围; 获取单元,在从所述请求装置发出的所述请求是对已登记的范围发出的情况下,其通过所述第一通信路径从所述内存控制器获取所述数据,在所述请求是对未登记的范围发出的情况下,其通过所述第二通信路径从所述仲裁装置获取所述数据;以及传输单元,其将所获取的数据传输到所述请求装置, 其中,在从所述仲裁装置检测出的第一范围与已经被登记的第二范围的至少一部分重叠或与所述第二范围毗连的情况下,所述登记单元将所述第一范围和所述第二范围合并为单一连续范围并且将所述第一范围和所述第二范围登记为所述单一连续范围。2.根据权利要求1所述的传输装置,其中,在从所述仲裁装置检测出的所述第一范围与已经被登记的多个第二范围中的任何一个既不重叠也不毗连,并且所述多个第二范围的数量超过了阈值的情况下,所述登记单元对所述多个第二范围中的每一个确定基于预定的评价的评价值,删除评价值最低的某个第二范围,并登记所述第一范围。3.根据权利要求1所述的传输装置,其中,在从所述仲裁装置检测出的所述第一范围与已经被登记的多个第二范围中的任何一个既不重叠也不毗连,并且所述多个第二范围的数量超过阈值的情况下,所述登记单元对所述第一范围和多个第二范围中的每一个确定基于预定的评价的评价值,且在所述第一范围的评价值比多个第二范围的评价值都低的情况下,不登记所述第一范围。4.根据权利要求2或3所述的传输装置,其中,对于所述多个第二范围的范围中的每一个,所述登记单元将基于所述范围所表示的数据量的值确定为所述范围的评价值,且确定数据量越小,所述评价值越低。5.根据权利要求2或3所述的传输装置,其中,对于多个第二范围的范围中的每一个,所述登记单元将基于所述范围到另一个范围的最短距离的值确定为所述范围的评价值,并且确定最短距离越长,所述评价值越低。6.一种传输装置,其特征在于,包括: 第一通信路径,其与内存控制器进行通信,所述内存控制器执行对共享内存中所指定的范围的读取和写入; 第二通信路径,其与仲裁装置进行通信,所述仲裁装置对装置之间的请求进行仲裁,所述仲裁装置根据一个或多个运算装置的请求指定所述共享内存中的范围,并且请求所述内存控制器执行对所述范围的读取和写入; 接收单元,其从请求装置接收对所述共享内存中存储的数据的请求; 登记单元,其从所述仲裁装置检测出范围并且登记所述范围,该所述范围是为了由所述一个或多个运算装置之中的一个运算装置读取而已被指定的范围; 获取单元,在从所述请求装置发出的请求是对未登记的范围发出的情况下,其通过所述第一通信路径从所述内存控制器获取所述数据,在所述请求是对已登记的范围发出的情况下,其通过所述第二通信路径从所述仲裁装置获取所述数据;以及 传输单元,其将所获取的数据传输到所述请求装置, 其中,在从所述仲裁装置检测出的第一范围与已经被登记的第二范围的至少一部分重叠或与所述第二范围毗连的情况下,所述登记单元将所述第一范围和所述第二范围合并为单一连续范围,并且将所述第一范围和所述第二范围登记为所述单一连续范围。7.根据权利要求6所述的传输装置,其中,在从所述仲裁装置检测出的所述第一范围与已经被登记的多个第二范围中的任何一个既不重叠也不毗连,并且所述多个第二范围的数量超过阈值的情况下,所述登记单元将多个第二范围中最靠近所述第一范围的某个第二范围与所述第一范围合并为单一连续范围,并且将所述某个第二范围和所述第一范围登记为所述单一连续范围。8.根据权利要求6所述的传输装置,其中,在从所述仲裁装置检测出的所述第一范围与已经被登记的多个第二范围中的任何一个既不重叠也不毗连,并且所述多个第二范围的数量超过阈值的情况下,所述登记单元登记所述第一范围,并且另外将所述多个第二范围中距离最短的两个第二范围合并为单一连续范围,并将所述两个第二范围登记为所述单一连续范围。9.一种传输系统,其特征在于,包括: 根据权利要求1至8的任意一项所述的传输装置; 内存控制器,其通过所述第一通信路径与所述传输装置进行通信,并执行对共享内存中所指定的范围的读取和写入; 仲裁装置,其对装置之间的请求进行仲裁,并且通过所述第二通信路径与所述传输装置进行通信,所述仲裁装置根据一个或多个运算装置的请求指定所述共享内存中的范围,并且请求所述内存控制器执行对所述范围的读取和写入;以及 请求装置,其将对所述共享内存中存储的数据的请求发送到所述传输装置。10.一种用于计算机的传输方法,所述计算机包括与内存控制器进行通信的第一通信路径,所述内存控制器执行对共享内存中所指定的范围的读取和写入;以及与仲裁装置进行通信的第二通信路径,所述仲裁装置对装置之间的请求进行仲裁,所述仲裁装置根据一个或多个运算装置的请求指定所述共享内存中的范围,并且请求所述内存控制器执行对所述范围的读取和写入,所述传输方法包括: 从请求装置接收对所述共享内存中存储的数据的请求; 从所述仲裁装置检测出范围并且登记所述范围,该所述范围是为了由所述一个或多个运算装置中的一个运算装置写入而已被指定的范围; 在从所述请求装置发出的所述请求是对已登记的范围发出的情况下,通过所述第一通信路径从所述内存控制器获取所述数据,在所述请求是对未登记的范围发出的情况下,通过所述第二通信路径从所述仲裁装置获取所述数据;以及 将所获取的数据传送到所述请求装置, 其中,在从所述仲裁装置检测出的第一范围与已经被登记的第二范围的至少一部分重叠或与所述第二范围毗连的情况下,在所述登记中将所述第一范围和所述第二范围合并为单一连续范围,并且将所述第一范围和所述第二范围登记为所述单一连续范围。
【文档编号】H04L29/08GK105991756SQ201510641496
【公开日】2016年10月5日
【申请日】2015年9月30日
【发明人】桥本贵之, 三角晃, 杉山雄, 杉山雄一
【申请人】富士施乐株式会社