CN101681345A - 处理装置、处理系统、数据共享处理方法及数据共享处理用集成电路 - Google Patents

处理装置、处理系统、数据共享处理方法及数据共享处理用集成电路 Download PDF

Info

Publication number
CN101681345A
CN101681345A CN200980000359A CN200980000359A CN101681345A CN 101681345 A CN101681345 A CN 101681345A CN 200980000359 A CN200980000359 A CN 200980000359A CN 200980000359 A CN200980000359 A CN 200980000359A CN 101681345 A CN101681345 A CN 101681345A
Authority
CN
China
Prior art keywords
mentioned
data
access
request
shared
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.)
Granted
Application number
CN200980000359A
Other languages
English (en)
Other versions
CN101681345B (zh
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 CN101681345A publication Critical patent/CN101681345A/zh
Application granted granted Critical
Publication of CN101681345B publication Critical patent/CN101681345B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • 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

Abstract

一种处理装置,在和多个外部处理装置之间共享数据进行处理,具备:处理器;共享数据存储机构,存储和1个以上的外部处理装置共享的1个以上数据块;输出机构,在上述处理器对上述共享数据存储机构的访问请求是写入请求时,输出存储在下述存储区域中的数据块的块识别信息和与写入请求有关的数据,该存储区域包含应当存储与该写入请求有关的数据的区域;输入机构,根据由外部处理装置输出的块识别信息,只有在由该外部处理装置所输出的数据是本装置应共享的数据时,才使该数据存储于上述共享数据存储机构中。

Description

处理装置、处理系统、数据共享处理方法及数据共享处理用集成电路
技术领域
本发明涉及一种多处理器系统,特别涉及到用来在处理器间共享数据的技术。
背景技术
作为多处理器系统中多个处理器间的数据共享方法,通过在1个共享存储器上存储共享数据,由各处理器访问该共享存储器,来共享数据的方法(所谓的紧耦合多处理器系统)已为众所周知。
采用该方法,具有保持各处理器使用的共享数据同一性较为容易这样的优点,另一方面,却存在随着处理器的个数增加,易于发生对共享存储器的访问竞争,系统整体的处理效率下降这样的问题。
这一点在要求实时性的处理,例如接收从广播站所发送的数字广播来对图像等的数据进行解码并显示等的那类处理中,尤其成为问题。
作为解决该问题的方法,在每个处理器中设置专用存储器,在各专用存储器中分别存储共享数据的副本,各处理器访问自己的专用存储器的方法(所谓的松耦合多处理器系统)已为众所周知(例如专利文献1、2)。
图30是说明松耦合多处理器系统中以往的数据共享方法所用的附图。
同图所示的专用存储器3A、专用存储器3B及专用存储器3C分别是处理器1A用、处理器1B用及处理器1C用的存储器,并且在各专用存储器中,预先确保了存储共享数据的副本所用的共享区域。
存储器控制装置4若从各处理器传送出对各个专用存储器的访问请求,则按照该访问请求是否是对共享区域的写入请求,来控制总线选择电路5A~5C。
例如,在来自处理器1A的访问请求是对共享区域的写入请求时,要控制总线选择电路5A~5C,以便将写入对象的数据写入专用存储器3A~3C的各共享区域中。另外,在来自处理器1A的访问请求是对共享区域以外的区域的写入请求,或是对某个区域的读出请求时,要控制总线选择电路5A~5C以便只访问专用存储器3A。
其结果为,由于当某个处理器的专用存储器上的共享数据被更新时,其他处理器的专用存储器上的共享数据也被更新,因而可以保持共享数据的同一性。另外,由于其他处理器专用存储器上的共享数据更新只限于对某个处理器专用存储器共享区域的写入请求发生的情形,因而可以减低访问竞争发生的可能性。
专利文献1:日本专利公开昭61-122771号公报
专利文献2:日本专利公开平3-127248号公报
发明内容
但是,采用以往的方法,要将多处理器系统整体的处理所需要的全部共享数据存储于全部处理器的专用存储器中。
例如,即便是在上述处理器1A~1C之中的处理器1A和1B之间需要共享,对处理器1C不需要的数据,该数据也要存储于处理器1C的专用存储器3C中。
其结果为,在专用存储器3C中,因对处理器1C不需要的数据而白白消耗存储区域。另外,由于当在处理器1A和1B中共享的数据由这些处理器更新时,更新后的数据也被写入专用存储器3C中,因而在和由处理器1C进行的对专用存储器3C的访问之间产生无用竞争的可能性增高。
因此,本发明是鉴于此问题而进行的,其目的为提供处理装置、处理系统、数据共享处理方法及数据共享处理用集成电路,能够防止专用存储器中无用的存储区域消耗及无用的访问竞争发生。
为了解决上述课题,本发明所涉及的处理装置在多个外部处理装置之间共享数据进行处理,其特征为,具备:处理器;共享数据存储机构,存储和1个以上外部处理装置共享的1个以上数据块;输出机构,在对上述共享数据存储机构的由上述处理器发出的访问请求是写入请求时,输出存储在下述存储区域中的数据块的块识别信息和与写入请求有关的数据,该存储区域包含应当存储与该写入请求有关的数据的区域;输入机构,根据由外部处理装置所输出的块识别信息,来判定由该外部处理装置所输出的数据是否是本装置应共享的数据,在进行了肯定的判定时,使该数据存储于上述共享数据存储机构中,在进行了否定的判定时,不使该数据存储于上述共享数据存储机构中。
这里的共享是指,在1个以上的外部处理装置具备的存储器等存储机构和处理装置具备的共享数据存储机构中分别存储应共享的1个以上数据块的副本,各个装置通过访问本装置具备的存储机构来实现的共享。
发明效果
由于具备上述结构的本发明所涉及的处理装置中的输入机构只使由外部处理装置所输出的数据之中本装置应共享的数据,存储于共享数据存储机构中,因而可以防止因使之存储不需要的数据而白白消耗共享数据存储机构的存储区域。另外,由于不存储不需要的数据,因而可以防止写入外部处理装置所输出的、对本装置的处理器不需要的数据所用的对共享数据存储机构的访问请求和由处理器发出的对共享数据存储机构的访问请求之间的竞争。
另外,本发明所涉及的处理装置由于输出机构输出和外部处理装置共享的数据,并且如上所述,输入机构只使本装置应共享的数据存储于共享数据存储机构中,因而处理器不需要执行用来使数据共享化的处理,可以专门进行预定的处理。
另外,上述处理装置还具备管理信息存储机构,按存储在上述共享数据存储机构中的每一数据块,使块识别信息和表示该数据块存储区域的地址信息相关联,进行存储;上述输出机构在对上述共享数据存储机构的由上述处理器发出的访问请求是对上述管理信息存储机构存储的各地址信息所示的存储区域某一个的写入请求时,进行上述输出;上述输入机构在和由外部处理装置所输出的块识别信息一致的块识别信息已存储在上述管理信息存储机构中时进行肯定的判定,使之在和该块识别信息相关联的地址信息所示的存储区域中,存储由外部处理装置所输出的数据,也可以。
据此,本发明所涉及的处理装置由于按每一数据块存储块识别信息和表示该数据块存储区域的地址信息,因而可以按块数据单位同外部处理装置共享数据。
另外,上述管理信息存储机构还按存储在上述共享数据存储机构中的数据块之中由外部处理装置更新的每一数据块,使作为该数据块输出源的外部处理装置的装置识别信息相关联进行存储;上述输出机构在进行上述输出之时,还输出本装置的装置识别信息;上述输入机构只有在和由外部处理装置所输出的装置识别信息及块识别信息一致的装置识别信息以及块识别信息相关联地存储在上述管理信息存储机构中时,才进行上述肯定的判定,也可以。
据此,本发明所涉及的处理装置由于利用作为该数据块输出源的外部处理装置的装置识别信息和块识别信息的组合,来判定是否存储由外部处理装置所输出的数据块,因而即便在不同的外部处理装置输出了相同的块识别信息时,也可以恰当地只存储本装置应共享的数据。
另外,上述处理装置具备共享数据访问机构,根据访问请求,进行对上述共享数据存储机构的访问;上述输出机构每次有对上述共享数据存储机构的由上述处理器发出的访问请求,都将该访问请求传送给上述共享数据访问机构;上述输入机构在进行了肯定的判定时,将下述访问请求传送给上述共享数据访问机构,该访问请求是在和该判定所涉及的块识别信息相关联的地址信息所示的存储区域中,写入由外部处理装置所输出的数据之意;上述共享数据访问机构在从上述输入机构接收到访问请求的场合,也从上述输出机构接收到访问请求时,比来自该输出机构的访问请求更为优先,进行基于来自该输入机构的访问请求的访问,也可以。
据此,本发明所涉及的处理装置由于在来自本装置具备的处理器的访问请求和用来写入由外部处理装置所输出的、本装置应共享的数据的访问请求产生了竞争时,使后者的访问请求优先进行处理,因而可以将外部处理装置更新后的数据快速反映于共享数据存储机构中。其结果为,本发明所涉及的处理装置具备的处理器可以根据外部处理装置所更新的最新数据进行处理。
另外,存储在上述管理信息存储机构中的各信息通过由上述处理器执行预定的程序来更新,也可以。
据此,本发明所涉及的处理装置由于可以根据由本装置具备的处理器更新后的管理信息存储机构中的信息,进行和外部处理装置之间的数据共享,因而不用另行设置用来更新该信息的外部更新装置等,就可以进行和外部处理装置之间的数据共享。
另外,上述处理装置还具备:缓冲存储器;访问控制机构,根据访问请求,进行对上述共享数据存储机构或上述缓冲存储器的访问;上述输出机构每次有对上述共享数据存储机构的由上述处理器发出的访问请求,都将该访问请求传送给上述访问控制机构;上述输入机构在进行了肯定的判定时,将下述访问请求传送给上述访问控制机构,该访问请求用来在和该判定所涉及的块识别信息相关联的地址信息所示的存储区域中,写入由外部处理装置所输出的数据;上述访问控制机构在从上述输入机构接收到访问请求的场合,也从上述输出机构接收到访问请求时,根据来自该输入机构的访问请求,使与该访问请求有关的数据存储于上述缓冲存储器中,令存储在该缓冲存储器中的数据,在未接收到访问请求时反映于上述共享数据存储机构中,也可以。
据此,本发明所涉及的处理装置由于在来自本装置具备的处理器的访问请求和用来写入由外部处理装置所输出的、本装置应共享的数据的访问请求产生了竞争时,将与后一个访问请求有关的数据存储于缓冲存储器中,因而可以使处理器快速进行对共享数据存储机构的访问。
另外,上述访问控制机构在接收到访问请求时,按照对于与该访问请求有关的数据的上述共享数据存储机构上的存储区域是否和对于已经存储在上述缓冲存储器中的数据的该共享数据存储机构上的存储区域一致,对上述共享数据存储机构和上述缓冲存储器的某一个,进行基于该访问请求的访问,也可以。
据此,本发明所涉及的处理装置由于例如在与来自处理器的访问请求有关的数据已存储在缓冲存储器中时,能够使之对缓冲存储器进行访问,在该期间将本装置应共享的数据存储于共享数据存储机构中,因而可以使外部处理装置更新后的数据快速反映于共享数据存储机构中,同时快速处理来自处理器的访问请求。
另外,上述访问控制机构还在基于所接收访问请求的对上述缓冲存储器的访问完成之后,使该访问后的数据反映于上述共享数据存储机构中,也可以。
这里,所谓访问后的数据,在访问请求为数据的读出请求时,是指从缓冲器所读出的数据,在访问请求为数据的写入请求时,是指写入对象的数据。
据此,由于在与访问请求有关的数据已存储在缓冲存储器中时,能够使之对缓冲存储器进行访问,因而通过在此后,也就是在由处理器发出的对共享数据存储机构的访问未进行的期间,使访问后的数据反映到共享数据存储机构中,就可以使缓冲存储器上的数据更为快速地反映到共享数据存储机构中。
另外,上述处理装置还具备:固有数据存储机构,存储不需要和外部处理装置共享的1个以上数据块;数据访问机构,根据访问请求,进行对上述共享数据存储机构或上述固有数据存储机构的访问;上述输出机构每次有由上述处理器发出的访问请求,都将该访问请求传送给上述数据访问机构;上述输入机构在进行了肯定的判定时,将下述访问请求传送给上述数据访问机构,该访问请求用来在和该判定所涉及的块识别信息相关联的地址信息所示的存储区域中,写入由外部处理装置所输出的数据;上述数据访问机构能够对上述共享数据存储机构和固有数据存储机构同时进行访问,在从上述输入机构接收到访问请求时,也从上述输出机构接收到访问请求的场合,与来自该输出机构的访问请求有关的数据的存储区域是上述固有数据存储机构上的存储区域时,对该固有数据存储机构进行基于该访问请求的访问,与此同时,对上述共享数据存储机构进行基于来自上述输入机构的访问请求的访问,也可以。
据此,本发明所涉及的处理装置由于来自本装置具备的处理器的对只有本装置需要的数据的访问请求不可能和用来写入由外部处理装置所输出的、本装置应共享的数据的访问请求产生竞争,因而可以进一步减低访问竞争的发生。
另外,上述共享数据存储机构包含:第1存储器,存储和1个以上外部处理装置共享的数据块之中,只由本装置更新的1个以上数据块;第2存储器,存储除只由上述本装置更新的1个以上数据块之外的和外部处理装置共享的1个以上数据块;上述处理装置还具备存储器访问机构,根据访问请求,进行对上述第1存储器或上述第2存储器的访问;上述输出机构每次有由上述处理器发出的访问请求,都将该访问请求传送给上述存储器访问机构;上述输入机构在进行了肯定的判定时,将下述访问请求传送给上述存储器访问机构,该访问请求用来在和该判定所涉及的块识别信息相关联的地址信息所示的存储区域中,写入由外部处理装置所输出的数据;上述存储器访问机构能够对上述第1存储器和第2存储器同时进行访问,在从上述输入机构接收到访问请求时,也从上述输出机构接收到访问请求的场合,与来自该输出机构的访问请求有关的数据的存储区域是上述第1存储器上的存储区域时,对该第1存储器进行基于该访问请求的访问,与此同时,对上述第2存储器进行基于来自上述输入机构的访问请求的访问,也可以。
据此,本发明所涉及的处理装置由于来自本装置具备的处理器的对只由本装置更新的共享数据的访问请求不可能和写入用来由外部处理装置所输出的、本装置应共享的数据的访问请求产生竞争,因而可以进一步减低访问竞争的发生。
另外,上述处理装置还具备缓冲存储器,存储从外部处理装置所输出的数据;上述存储器访问机构在接收到对上述第2存储器上存储区域的访问请求时,按照该存储区域是否和对于已经存储在上述缓冲存储器中的数据的上述第2存储器上存储区域一致,对上述第2存储器和上述缓冲存储器的某一个进行基于该访问请求的访问,也可以。
据此,本发明所涉及的处理装置由于即便来自处理器的访问请求是对第2存储器的访问请求,在与该访问请求有关的数据已存储在缓冲存储器中时,也能够使之对缓冲存储器进行访问,因而可以在该期间将本装置应共享的数据存储于共享数据存储机构中。也就是说,可以进一步减低访问竞争的发生。
为了解决上述课题,本发明所涉及的处理系统包含为了共享数据而经由公共总线相互连接的多个处理装置,其特征为,各处理装置具备:处理器;共享数据存储机构,存储和1个以上处理装置共享的1个以上数据块;输出机构,在对上述共享数据存储机构的由上述处理器发出的访问请求是写入请求时,将当前存储与该写入请求有关的数据的数据块的块识别信息和与写入请求有关的数据,输出到上述公共总线上;输入机构,根据由其他处理装置输出到上述公共总线上的块识别信息,来判定由该其他处理装置输出到上述公共总线上的数据是否是本装置应共享的数据,在进行了肯定的判定时,使该数据存储于上述共享数据存储机构中。
具备上述结构的本发明所涉及的处理系统中的各处理装置由于只将由其他处理装置所输出的数据之中本装置应共享的数据,存储于共享数据存储机构中,因而可以防止因存储不需要的数据而白白消耗共享数据存储机构的存储区域。另外,由于不存储不需要的数据,因而可以防止用来写入其他处理装置所输出的、对本装置的处理器不需要的数据的对共享数据存储机构的访问请求和由处理器发出的对共享数据存储机构的访问请求之间的竞争。
另外,本发明所涉及的处理系统中的各处理装置由于输出和其他处理装置共享的数据,并且如上所述,只将本装置应共享的数据存储于共享数据存储机构中,因而处理器不需要执行用来使数据共享化的处理,可以专门进行预定的处理。
另外,各处理装置还具备管理信息存储机构,按存储在上述共享数据存储机构中的每一数据块,使作为该数据块输出源的处理装置的装置识别信息、块识别信息和表示该数据块存储区域的地址信息相关联进行存储;上述输出机构在对上述共享数据存储机构的由上述处理器发出的访问请求是对上述管理信息存储机构存储的各地址信息所示的存储区域某一个的写入请求时,进行上述输出,并且将和该输出所涉及的块识别信息相关联所存储的装置识别信息输出到上述公共总线上;上述输入机构在和由其他处理装置所输出的装置识别信息及块识别信息一致的装置识别信息及块识别信息已相关联地存储在上述管理信息存储机构中时进行肯定的判定,使之在和该块识别信息相关联的地址信息所示的存储区域中,存储由其他处理装置所输出的数据;任一个处理装置中的上述处理器通过执行预定的程序,来生成将存储于各管理信息存储机构中的各信息,使各处理装置进行存储,也可以。
据此,由于本发明所涉及的处理系统中的任一个处理装置具备的处理器生成将存储于各处理装置的管理信息存储机构中的各信息,因而能够和各信息一致地生成,使各信息的管理变得容易。
附图说明
图1是实施方式1所涉及的处理系统1000的系统结构图。
图2是输出管理部140的功能框图。
图3是输入管理部150的功能框图。
图4是表示输出管理信息表180及输入管理信息表190数据结构及内容例的附图。
图5是表示由输出管理部140进行的输出判定处理的流程图。
图6是表示由输入管理部150进行的输入判定处理的流程图。
图7是表示由选择部160进行的存储器访问请求信号的传送处理和由存储器控制部170进行的存储器访问处理的流程图。
图8是应用例1所涉及的数字广播接收器1000A的结构图。
图9是说明应用例1所涉及的计算机100B~100D执行解码处理的1幅图像中的区域所用的附图。
图10是表示应用例1所涉及的各计算机中的输出管理信息表180内容例的附图。
图11是表示应用例1所涉及的各计算机中的输入管理信息表190内容例的附图。
图12是采用以往的方法由各计算机共享数据的数字广播接收器10A的结构图。
图13是表示应用例2所涉及的数字广播接收器1000A及按以往方式共享数据的数字广播接收器10A各自中的各存储器数据配置的附图。
图14是表示应用例2所涉及的各计算机中的输出管理信息表180及输入管理信息表190内容例的附图。
图15是说明应用例2所涉及的各计算机动作所用的附图。
图16是说明应用例3中的联合处理流程所用的附图。
图17是表示应用例3所涉及的各计算机及按以往方式共享数据并执行联合处理的各计算机各自中的各存储器数据配置的附图。
图18是表示应用例3所涉及的各计算机输出管理信息表180及输入管理信息表190内容例的附图。
图19是说明应用例3所涉及的各计算机动作所用的附图。
图20是说明应用例4所涉及的各计算机动作所用的附图。
图21是表示应用例4所涉及的各计算机中的输出管理信息表180及输入管理信息表190内容例的附图。
图22是说明应用例4的异例所涉及的恒定时各计算机中的输出管理信息表180和输入管理信息表190的内容例及各计算机动作所用的附图。
图23是表示应用例5所涉及的各存储器数据配置、各计算机输出管理信息表180及输入管理信息表190的内容例的附图。
图24是实施方式2所涉及的处理系统1100的系统结构图。
图25是表示由共享数据控制部220进行的访问控制处理的流程图。
图26是实施方式3所涉及的处理系统1200的系统结构图。
图27是实施方式4所涉及的处理系统1300的系统结构图。
图28是表示异例所涉及的各计算机输出管理信息表及输入管理信息表190内容例的附图。
图29是说明异例所涉及的各计算机动作所用的附图。
图30是说明松耦合多处理器系统内以往的数据共享方法所用的附图。
符号说明
100A~E、200A~C、300A~C、400A~C、500A~C  计算机
101公共总线
102公共总线协调部
110A~E存储器
120A~C处理器
130协调部
140输出管理部
141输出管理信息保持部
142内部总线控制部
143输出判定部
144公共总线控制部
150输入管理部
151输入管理信息保持部
152输入判定部
153内部总线控制部
160选择部
170存储器控制部
210缓冲器
220共享数据控制部
310A~C固有存储器
320A~C共享存储器
330存储器选择控制部
340固有存储器控制部
350共享存储器控制部
410存储器选择控制部
1000、1100、1200、1300处理系统
1000A数字广播接收器
具体实施方式
下面,对于本发明的实施方式,一边参照附图一边进行说明。
《实施方式1》
<结构>
首先,对于实施方式1所涉及的处理系统1000结构进行说明。
图1是实施方式1所涉及的处理系统1000的系统结构图。
如同图所示,处理系统1000包括:计算机100A~100E,经由公共总线101相互进行连接;存储器110A~110E,和各计算机以1对1的形式进行连接;公共总线协调部102。
还有,在同图中虽然图示出5台计算机(100A~100E),但这是一例,计算机的台数不限于同图所示的例子,而只要是2台以上,多少都可以。另外,在同图中虽然图示出各计算机和各存储器以1对1的形式进行连接的例子,但是也可以和2个以上的存储器进行连接。对于这一点,在下面的各实施方式中也相同。
这里,公共总线101是各计算机收发共享数据所用的总线,公共总线协调部102具有协调来自将要对公共总线101输出共享数据的各计算机的公共总线101使用请求之功能。
各存储器(110A~110E)用来存储连接目标计算机内的各处理器使用的程序或数据,在该数据中,包括只有连接目标的计算机使用的数据和在计算机间共享的共享数据。
各计算机(100A~100E)具有一边和1个以上的其他计算机共享数据一边执行指定处理之功能。
各计算机因为具有相同的结构,所以在下面,将以计算机100A为例进行说明。
计算机100A具备处理器120A~120C、协调部130、输出管理部140、输入管理部150、选择部160和存储器控制部170。
这里,各处理器(120A~120C)用来通过执行分别存储在存储器110A中的预定程序,利用存储在存储器110A中的数据实施指定的处理,在需要对存储器110A进行访问时,将存储器访问请求信号传送给协调部130。
该存储器访问请求信号是指定访问类别(读出或者写入)及作为访问对象的存储器110A上存储区域地址的信号,特别是在访问类别为“写入”时,包含写入对象数据。
协调部130具有协调由各处理器发出的对存储器110A的访问请求之功能,具体而言,从由各处理器接收到的各存储器访问请求信号之中,选出1个存储器访问请求信号将其传送给输出管理部140。
还有,协调部130在传送给输出管理部140的存储器访问请求信号是请求从存储器110A读出数据的读出请求信号(也就是访问类别为“读出”的存储器访问请求信号)时,和该读出请求信号的传送一起,传送作为其请求源的处理器识别信息。
下面,在表述为“存储器访问请求信号等”的场合,意味着在存储器访问请求信号是读出请求信号时包含处理器的识别信息,进行说明。
输出管理部140是一种电路,将从协调部130接收到的存储器访问请求信号等传送给选择部160,并且尤其在该存储器请求信号是请求对共享数据的写入的写入请求信号(也就是访问类别为“写入”的存储器访问请求信号)时,将写入对象数据及该数据的识别信息等输出到公共总线101上。还有,该输出在从公共总线协调部102获得公共总线101的使用权之后进行。有关输出管理部140的结构(参见图2)将在下面进行详细说明。
输入管理部150是一种电路,根据从其他计算机(100B~100E)输出到公共总线101上的写入对象数据的识别信息等,来判定所输出写入对象的数据是否是本机应共享的数据,按照判定结果,将该数据对存储器110A的写入请求信号传送给选择部160。还有,有关输入管理部150的结构(参图3)将在下面进行详细说明。
选择部160是一种电路,将从输出管理部140接收到的存储器访问请求信号等和从输入管理部接收到的写入请求信号依次传送给存储器控制部170。特别是,在从两个管理部接收到信号时,选择部160将来自输入管理部150的存储器访问请求信号优先传送给存储器控制部170。也就是说,这种情况下要使处理器对存储器110A的访问等待。
存储器控制部170具有根据从选择部160接收到的存储器访问请求信号等或者写入请求信号,访问存储器110A之功能。
下面,对于输出管理部140的结构进行说明。
图2是输出管理部140的功能框图。
如同图所示,输出管理部140具备输出管理信息保持部141、内部总线控制部142、输出判定部143和公共总线控制部144。
这里,输出管理信息保持部141是存储输出管理信息表180(参见图4(a))所用的存储器区域。有关输出管理信息表180将在下面进行说明。
内部总线控制部142具有将从协调部130接收到的存储器访问请求信号传送给输出判定部143之功能、按照输出判定部143的指示将接收到的存储器访问请求信号等传送到选择部160之功能以及将该存储器访问请求信号中包含的写入对象数据输出到公共总线101上之功能。
输出判定部143具有下述功能,即根据输出管理信息保持部141的输出管理信息表180,来判定从内部总线控制部142接收到的存储器访问请求信号是否是对共享数据的写入请求信号,并按照判定结果,对公共总线控制部144或内部总线控制部142传送指定信号之功能。
更为详细而言,在存储器访问请求信号是对共享数据的写入请求信号时,将写入对象数据的识别信息等传送给公共总线控制部144,在不是对共享数据的写入请求信号时,将指示存储器访问请求信号等对选择部160的传送的信号,传送给内部总线控制部142。
另外,输出判定部143具有下述功能,即在从公共总线控制部144接收到下述的输出完成信号时,将指示存储器访问请求信号对选择部160的传送及写入对象数据对公共总线101的输出的信号,传送给内部总线控制部142之功能。
公共总线控制部144具有下述功能,即每次从输出判定部143接收写入对象数据的识别信息等,都从公共总线协调部102获得公共总线101的使用权,将该识别信息等输出到公共总线101上,并且把输出过该识别信息等之意的输出完成信号传送给输出判定部143之功能。
接下来,对于输入管理部150的结构进行说明。
图3是输入管理部150的功能框图。
如同图所示,输入管理部150具备输入管理信息保持部151、输入判定部152和内部总线控制部153。
这里,输入管理信息保持部151是存储输入管理信息表190(参见图4(b))所用的存储区域。有关输入管理信息表190将在下面进行说明。
输入判定部152具有下述功能,即根据从其他的计算机(100B~100E)输出到公共总线101上的写入对象数据的识别信息等和输入管理信息保持部151的输入管理信息表190,来判定输出到公共总线101上的写入对象数据是否是本机应共享的数据之功能。特别是,在写入对象数据是本机应共享的数据时,输入判定部152生成访问命令信号,将其传送给内部总线控制部153,该访问命令信号指定访问类别(写入)及应当写入该数据的存储器110A上的地址。
内部总线控制部153具备下述功能,即若从输入判定部152接收到访问命令信号,则接收从其他计算机输出到公共总线101上的写入对象数据,将包含该写入对象数据和接收到的访问命令信号在内的写入请求信号传送给选择部160之功能。
<数据>
以计算机100A的情形为例,来说明由各计算机使用的数据。
<输出管理信息表>
首先,对于输出管理信息表180进行说明。
图4(a)是表示输出管理信息表180的数据结构及内容例的附图。
存储在输出管理信息保持部141中的输出管理信息表180如同图所示,是按本机应对其他计算机传送的每一共享数据,使Valid181、Master ID182、Data ID183、Start Address184及End Address185建立对应地构成的信息。
下面,将该相互建立了对应的Valid、Master ID、Data ID、Start Address和End Address总体称为“输出管理信息”。
输出管理信息表180在由输出判定部143判定来自计算机内处理器的存储器访问请求信号是否是对共享数据的存储器访问请求信号时使用。
这里,Valid181是表示包含该Valid的输出管理信息是有效还是无效的信息,在本例中将有效的情形设为“1”,将无效的情形设为“0”。也就是说,要把与Valid为“1”的输出管理信息对应的共享数据传送给公共总线101。
Master ID182是将对应的共享数据传送到公共总线101的计算机的识别信息,在下面作为一例,设为计算机100A~100E的Master ID是“0”~“4”,进行说明。
这里,因为表示出计算机100A保持的输出管理信息表180的例子,所以全部的Master ID为“0”。若是其他的计算机,例如计算机100B保持的输出管理信息表180,则Master ID全部为“1”。
Data ID183是对应的共享数据的识别信息,不和其他的Data ID重复。
Start Address184和End Address185分别是表示对应的共享数据被存储的存储器110A上存储区域的开始地址和结束地址的信息。
同图表示出,例如在存储器110A中存储在Start Address为“0x0000”且End Address为“0x00ff”的存储区域中的数据是应当传送给其他计算机的共享数据,其Data ID是“0”,将该数据输出到公共总线101的计算机的MasterID是“0”(也就是计算机100A)。
下面,说明对输出管理信息表180的数据登录方法一例。
对输出管理信息表180的数据登录首先在处理系统1000的运用开始前进行。
具体而言,通过由处理系统1000中任意计算机内的1个处理器执行存储在本机连接的存储器中的程序,生成应在各计算机的输出管理信息表180中登录的输出管理信息,经过相互连接各计算机的表设定用总线(未图示),在各计算机的输出管理信息表180中登录有效的输出管理信息(也就是Valid为“1”)。该输出管理信息的生成其实施为,Master ID及Data ID的组合不和其他Master ID及Data ID的组合重复。
还有,各处理器(120A~120C)如同前面所说明的那样,通过执行存储在存储器110A中的预定程序,利用存储在该存储器110A中的数据来执行指定的处理,但是该预定的程序其构成为,使用所登录的有效输出管理信息内存储于存储区域(由Start Address及End Address确定)中的数据来执行指定的处理。
另外,在某个计算机中,产生了因某种原因而不需要和其他计算机之间的共享的数据时,仅仅通过将与该共享数据对应的已登录的输出管理信息的Valid更新为“0”,就可以解除共享的设定。另外,在再次需要该数据的共享时,仅仅通过将对应的输出管理信息的Valid更新为“1”,就可以进行共享设定。
<输入管理信息表>
下面,对于输入管理信息表190进行说明。
图4(b)是表示输入管理信息表190的数据结构及内容例的附图。
存储在输入管理信息保持部151中的输入管理信息表190如同图所示,是按本机应从其他计算机接收的每一共享数据,使Valid191、Master ID192、Data ID193、Start Address194及End Address195相对应地构成的信息。
下面,将该相互建立了对应的Valid、Master ID、Data ID、Start Address和End Address总体称为“输入管理信息”。
输入管理信息表190在输入判定部152判定是否应接收由其他计算机输出到公共总线101上的写入对象数据时使用。
还有,输入管理信息表190和输出管理信息表180因为具有相同的数据结构,所以各数据的详细说明予以省略,但是由其他计算机输出到公共总线101上的共享数据之中与Valid为“1”的输入管理信息对应的共享数据要存储于存储器110A中。
同图表示出,例如Master ID为“1”(也就是计算机100B)且Data ID为“0”的数据是本机应从其他计算机接收的共享数据,并且该共享数据存储于存储器110A的Start Address为“0x0000”且End Address为“0x007f”的存储区域中。
还有,对输入管理信息表190的数据登录因为和输出管理信息表180同样地进行,所以详细的说明予以省略。
<动作>
下面,说明具备上述结构并处理上述数据的各计算机动作。
<输出管理部的动作>
首先,对于由输出管理部140进行的输出判定处理进行说明。
图5是表示由输出管理部140进行的输出判定处理的流程图。
还有,下面步骤S100~S108的处理重复执行。
输出管理部140的输出判定部143判定是否经由内部总线控制部142从协调部130接收到存储器访问请求信号(步骤S100),在未接收到时(步骤S100:否),什么都不做就结束输出判定处理。
另一方面,在接收到存储器访问请求信号时(步骤S100:是),根据该信号的访问类别来判定该信号是否是写入请求信号(步骤S101),在是写入请求信号时(步骤S101:是),根据输出管理信息保持部141的输出管理信息表180,来判定该写入请求是否是对应当传送给其他计算机的共享数据的请求(步骤S102)。
更为详细而言,只有在接收到的信号中包含的存储器110A上的写入目标的地址包含于输出管理信息表180中有效(也就是Valid为“1”)的输出管理信息Start Address和End Address的范围内时,才进行肯定的判定。
例如,在写入目标的地址为“0x0001”时,由于该地址在图4(a)所示的输出管理信息表180中,包含于Start Address“0x0000”和EndAddress“0x00ff”的范围内,因而要进行肯定的判定。另外,在写入目标的地址为“0x0400”时,由于该地址不包含于输出管理信息表180中有效的输出管理信息任一个的Start Address和End Address的范围内,因而要进行否定的判定。
在步骤S102中,写入请求是对应当传送给其他计算机的共享数据的请求时(步骤S102:是),输出判定部143从输出管理信息表180取得对应的共享数据的Master ID及Data ID,并且计算对该共享数据Start Address的写入目标地址的偏移(下面只称为“偏移”),将所取得的Master ID及DataID和计算出的偏移传送给公共总线控制部144(步骤S103)。
例如,在上述写入目标的地址为“0x0001”时的例子中,Master ID“0”、Data ID“0”及偏移“0x001”被传送给公共总线控制部144。
接下来,接收到Master ID等后的公共总线控制部144为了获得公共总线101的使用权,对公共总线协调部102传送公共总线访问请求信号(步骤S104)。接收到该公共总线访问请求信号后的公共总线协调部102在对公共总线101协调来自请求数据传送的各计算机的请求之后,发送公共总线访问允许信号,该公共总线访问允许信号是给作为该接收到的公共总线访问请求信号的发送源的计算机,赋予公共总线101的使用权之意。
在步骤S104中传送公共总线访问请求信号后的公共总线控制部144判定是否从公共总线协调部102接收到公共总线访问允许信号(步骤S105),在未接收到时,再次执行步骤S105的处理。
另一方面,在接收到公共总线访问允许信号时(步骤S105:是),公共总线控制部144将从输出判定部143接收到的Master ID、Data ID及偏移输出到公共总线101上,并且把输出过Master ID等之意的输出完成信号传送给输出判定部143(步骤S106)。
接收到输出完成信号后的输出判定部143将指示存储器访问请求信号对选择部160的传送及写入对象数据对公共总线101的输出的信号,传送给内部总线控制部142。接收到该信号后的内部总线控制部142将接收到的存储器访问请求信号中包含的写入对象数据输出到公共总线101上,并且对选择部160传送该存储器访问请求信号(步骤S107),结束输出判定处理。
另一方面,在步骤S101中是读出请求信号时(步骤S101:否),或者在步骤S102中写入请求不是对应当传送给其他计算机的共享数据的请求时(步骤S102:否),输出判定部143对内部总线控制部142传送指示存储器访问请求信号等传送的信号,接收到该信号后的内部总线控制部142对选择部160传送接收到的存储器访问请求信号等(步骤S108),并结束输出判定处理。
<输入管理部的动作>
下面,对于由输入管理部150进行的输入判定处理进行说明。
图6是表示由输入管理部150进行的输入判定处理的流程图。
还有,下面步骤S110~S115的处理重复执行。
输入管理部150的输入判定部152判定是否从其他的计算机向公共总线101上输出了Master ID等(步骤S110),在未输出时(步骤S110:否),什么都不做就结束输入判定处理。
另一方面,在已输出Master ID等时(步骤S110:是),输入判定部152接收所输出的Master ID、Data ID及偏移(步骤S111)。
输入判定部152根据接收到的Master ID及Data ID,来判定从其他的计算机输出到公共总线101上的写入对象数据是否是本机应接收的共享数据(步骤S112)。
更为详细而言,参照输入管理信息保持部151的输入管理信息表190,只有在使接收到的Master ID及Data ID相对应地输入管理信息已登录时,才进行肯定的判定。
例如,在接收到的Master ID为“1”、Data ID为“0”时,由于在图4(b)所示的输入管理信息表190中已经登录相应的输入管理信息,因而要进行肯定的判定。另外,例如在接收到的Master ID为“1”且Data ID为“2”时,由于未登录相应的输入管理信息因而要进行否定的判定。
在步骤S112中,不是本机应接收的共享数据时(步骤S112:否),结束输入判定处理,在是本机应接收的共享数据时(步骤S112:是),输入判定部152将指定访问类别(写入)及写入目标地址的访问命令信号传送给内部总线控制部153(步骤S113)。这里,写入目标的地址是对相应的输入管理信息中包含的Start Address加上接收到的偏移后的地址。
接收到访问命令信号后的内部总线控制部153从公共总线101,接收由其他计算机所输出的写入对象数据,将包含该写入对象数据和接收到的访问命令信号在内的存储器访问请求信号传送给选择部160(步骤S115),并结束输入判定处理。
<选择部及存储器控制部的动作>
下面,对于由选择部160进行的存储器访问请求信号传送处理和由存储器控制部170进行的存储器访问处理,进行说明。
图7是表示由选择部160进行的存储器访问请求信号传送处理和由存储器控制部170进行的存储器访问处理的流程图。
首先,对于选择部160的处理进行说明。
还有,下面步骤S120~S124的处理重复执行。
选择部160判定是否从输出管理部140和输入管理部150的双方接收到存储器访问请求信号(对于输入管理部150来说,尤其是写入请求信号)(步骤S120),在接收到时(步骤S120:是),首先将来自输入管理部150的存储器访问请求信号传送给存储器控制部170(步骤S121)。
接着,选择部160将来自输出管理部140的存储器访问请求信号等传送给存储器控制部170(步骤S122),并结束存储器访问请求信号的传送处理。
另一方面,在步骤S120中,未从输出管理部140和输入管理部150的双方接收到存储器访问请求信号时(步骤S120:否),选择部160判定是否从输出管理部140和输入管理部150中的某一个接收到存储器访问请求信号(步骤S123)。
在未从任一个接收到存储器访问请求信号时(步骤S123:否),结束存储器访问请求信号的传送处理,在从某一个接收到存储器访问请求信号时(步骤S123:是),将接收到的存储器访问请求信号等传送给存储器控制部170(步骤S124),并结束存储器访问请求信号的传送处理。
下面,对于存储器控制部170的处理进行说明。
还有,下面步骤S130、S131的处理重复执行。
存储器控制部170判定是否接收到选择部160所传送的存储器访问请求信号(在上述步骤S121、S122、S124中所传送的信号)(步骤S130),在未接收到时(步骤S130:否),什么都不做就结束存储器访问处理。
另一方面,在接收到存储器访问请求信号时(步骤S130:是),按照该存储器访问请求信号,对本机连接的存储器实施数据的读出或写入(步骤S131),并结束存储器访问处理。还有,在步骤S131中,存储器访问请求信号是读出请求信号时,存储器控制部170根据接收到的处理器的识别信息,对符合的处理器传送所读出的数据。
<应用例1>
首先,说明将实施方式1所涉及的处理系统1000,应用于具有MPEG(Moving Picture Experts Group)解码功能的数字广播接收器1000A中的例子。
<结构>
图8是应用例1所涉及的数字广播接收器1000A的结构图。
如同图所示,数字广播接收器1000A除处理系统1000之外,还包括天线、调谐器、扬声器及监视器等来构成。
还有,在下面为了简化说明,设为各计算机只具备1个处理器120A,并且对于由公共总线协调部102进行的公共总线101使用权的协调处理,这里并未特别提到(在同图中也予以省略)。
这里,通过由各计算机(100A~100E)内的处理器120A执行存储在本机连接的存储器(110A~110E)的固有区域(是存储共享数据以外的数据的存储区域,并且同图各存储器中的网点部分就相当于该区域)中的程序,各计算机实现下面的功能。
也就是说,计算机100A具有下述功能,即从由天线并经由调谐器接收到的MPEG流(编码流),取出Audio数据和Video数据,执行Audio数据的解码处理和使解码后的Audio数据向扬声器输出的处理之功能。
计算机100B~100D各自具有执行由计算机100A所取出Video数据的解码处理之功能。
一般来说,Video数据的解码处理和Audio数据的解码处理相比,运算量及处理数据量较多。从而,在本应用例中,3台计算机100B~100D要分担执行Video数据的解码处理。具体而言,如图9所示,由计算机100B、计算机100C及计算机100D分别解码将1幅图像(帧)按垂直方向三等分后的V1区域、V2区域及V3区域。
计算机100E具有使由计算机100B~100D得到的已解码Video数据显示于监视器上之功能。
<各存储器上的数据>
下面,根据图8,对于存储于各存储器中的数据进行说明。
同图各存储器的左侧所表述的0及字母表示出各存储器内的地址值。例如,在存储器110A中表示出StA的存储区域是0~a-1地址。还有,在该应用例中,虽然设为从各存储器的“0”地址开始存储各数据,进行了说明,但这是一例,也可以按任意的地址存储各数据。对于这一点,在以后的各应用例中也相同。
存储器110A中的StA是从计算机100A接收到的MPEG流所取出的Audio数据,DecA是作为计算机100A将StA解码后的结果的解码后Audio数据。
另外,存储器110A中的StV1、StV2及StV3各自是将从计算机100A接收到的MPEG流所取出的Video数据分割使之对应于各区域(V1~V3区域)后的分割Video数据。
由于计算机100B~100D对该分割Video数据执行解码处理,因而计算机100B~100D需要和计算机100A共享本机处理的分割Video数据。从而,如同图所示,在存储器110B、存储器110C及存储器110D中分别存储StV1、StV2及StV3。
另外,存储器110B中的DecV1表示出,作为计算机100B将存储器110B中的StV1解码后的结果的解码后分割Video数据。另外,存储器110C中的DecV2及存储器110D中的DecV3也表示出,作为计算机100C、100D各自将StV2、StV3解码后的结果的解码后分割Video数据。
由于计算机100E根据这些解码后的分割Video数据,进行对监视器的显示,因而需要和计算机100B~100D共享这些分割Video数据。从而,如同图所示,在存储器110E中存储DecV1、DecV2及DecV3。
另外,一般来说,在MPEG内Video流的解码处理中,为了动态补偿处理或闭塞滤波器处理等,需要参照已解码的图像数据。
从而,如上所述,在将1幅图像分割为3个区域(V1~V3区域)由3台计算机100B~100D进行分担解码时,需要参照由其他计算机得到的已解码图像,也就是说,在3台计算机100B~100D之间有时需要已解码图像的数据共享。
这里,当对计算机100B~100D各自分担的区域(V1~V3区域)进行解码时,需要参照哪个范围的已解码图像一般根据编码时所指定的配置文件和按等级规定的动态向量最大值来决定,但是这里为了说明的简单化,假定为参照相邻的所有区域的分割图像,进行说明。
因此,如同图所示,在存储器110B中存储DecV2,在存储器110C中存储DecV1及DecV3,在存储器110C中存储DecV2。
<管理信息表>
下面,说明各计算机保持的输出管理信息表180和输入管理信息表190的内容例。
图10是表示应用例1所涉及的各计算机中的输出管理信息表180内容例的附图。
例如,同图所示的计算机100A中输出管理信息表180的输出管理信息186表示出,在存储器110A中,存储在Start Address为“a”且End Address为“b-1”的存储区域中的共享数据(也就是StV1)的Data ID是“0”,并且发送该共享数据的计算机的Master ID是“0”(也就是计算机100A)。
如同图所示,通过设定各计算机中的输出管理信息表180,计算机100A就在将StV1、StV2、StV3写入存储器110A中时,把这些数据和对应的Master ID等一起输出到公共总线101上。
另外,计算机100B、计算机100C及计算机100D分别在将DecV1、DecV2、DecV3分别写入存储器110B、存储器110C、存储器110D中时,把这些数据和对应的Master ID等一起输出到公共总线101上。
图11是表示应用例1所涉及的各计算机中的输入管理信息表190内容例的附图。
例如,同图所示的计算机100B中输入管理信息表190的输入管理信息196表示出,Master ID为“0”(也就是计算机100A)且Data ID为“0”的数据(也就是StV1)是本机应从其他计算机接收的共享数据,并且该共享数据存储于存储器110B的Start Address为“0”且End Address为“f-1”的存储区域中。
如同图所示,通过设定各计算机中的输入管理信息表190,计算机100B若对公共总线101输出了StV1,则将其写入存储器110B对应的区域(0~f-1地址)中,同样若输出了DecV2,则将其写入存储器110B对应的区域中。
另外,同样计算机100C若对公共总线101输出了StV2、DecV1、DecV3,计算机100D若输出了StV3、DecV2,并且计算机100E若输出了DecV1、DecV2、DecV3,则把它们写入各自的存储器对应的区域中。
如上所述,通过设定各计算机中的输出管理信息表180及输入管理信息表190,就可以在保持共享数据的同一性的同时,只把各计算机在处理中需要的共享数据保持于各存储器中。
<和以往的比较>
下面,说明在采用以往的方法(专利文献1等的方法)由各计算机共享数据的数字广播接收器10A中,保持于各存储器中的数据。
图12是采用以往的方法由各计算机共享数据的数字广播接收器10A的结构图。
同图所示的计算机6A~6E的功能和上述计算机100A~100E相同,并且存储器7A~7E也是和上述的存储器110A~110E相同的存储器。
在以往的方法中,由于在系统整体中将需要的全部共享数据存储于所有的存储器中,因而如同图所示,系统整体的共享数据(StV1、StV2、StV3、DecV1、DecV2、DecV3)被存储于各存储器中。
其结果为,各存储器因连接目标的计算机不使用的数据,而白白消耗存储区域。例如,存储器7B因为计算机6B不使用的StV2、StV3、DecV3,存储区域被白白消耗掉。
另外,例如由于在计算机6A将StV2写入到存储器7A中时,该StV2被写入存储器中,因而和对各存储器的来自连接目标计算机的访问产生竞争的可能性增高。
另一方面,在上述应用例1所涉及的数字广播接收器1000A中,由于各计算机只将需要的数据存储于各存储器中,因而区域被白白消耗的情况不存在(参见图8),且也不产生无用的访问竞争。
<应用例2>
下面,说明将在实施方式1中所说明的各计算机间数据共享方法,应用到上述数字广播接收器1000A内各计算机的同步控制中的例子。
这里所谓的同步控制是指,通过使之对多台计算机同时执行特定的处理,来控制系统整体。作为数字广播接收器1000A内的同步控制例,可举出使各计算机同时执行伴随信道变换的解码流变换处理或因流的差错导致的画面跳过、缓冲区清空(buffer flush)等错误隐蔽处理等。
<各存储器上的数据>
首先,对于存储于各存储器中的数据进行说明。
图13(a)是表示应用例2所涉及的数字广播接收器1000A各存储器中的数据配置的附图。
还有,上述应用例1所涉及的数字广播接收器1000A虽然设为具备5台计算机(100A~100E),进行了说明,但是在下面,将设为具备4台计算机100A~100D进行说明。
这里,存储器110B~110D中的Status flag1~3分别是表示连接对方计算机100B~110D中的同步处理执行状态的标识,在该例子中,将未执行的状态设为“0”,将执行中的状态设为“1”进行说明。各计算机分别因Statusflag1~3被从“0”更新为“1”而开始同步处理,若完成了同步处理,则从“1”更新为“0”。
另外,存储器110A中的Start flag是用来使各计算机开始同步处理的启动标识,End flag1~3各自是表示计算机100B~100D中的同步处理执行状态的标识,在该例子中,将未执行的状态设为“0”,将执行中的状态设为“1”进行说明。
还有,虽然各标识设为取得“0”或“1”的值进行了说明,但这是一例,也可以是其他的值。
<管理信息表>
下面,说明各计算机保持的输出管理信息表180和输入管理信息表190的内容例。
图14(a)是表示应用例2所涉及的各计算机中的输出管理信息表180内容例的附图。
如同图所示,通过设定各计算机中的输出管理信息表180,计算机100A就在写入Start flag时,将该Start flag和对应的Master ID等一起,输出到公共总线101上。
另外,计算机100B~100D分别在写入Status flag1~3时,将这些数据和对应的Master ID等一起,输出到公共总线101上。
图14(b)是表示应用例2所涉及的各计算机内的输入管理信息表190内容例的附图。
如同图所示,通过设定各计算机中的输入管理信息表190,计算机100B、100C、100D若对公共总线101输出了Start flag,则接收该信号,分别写入存储器110B的Status flag1区域、存储器110C的Status flag2区域及存储器110D的Status flag3区域中。
另外,计算机100A若从计算机100B、100C、100D分别输出了Statusflag1、2、3,则接收该信号,把各自写入存储器110A的End flag1、2、3存储区域中。
<动作>
下面,具体说明各计算机的动作。
图15是说明应用例2所涉及的各计算机动作所用的附图。
还有,在同图中,用箭头表示数据的流动,用粗字表述各存储器内的数据之中所写入的数据。这在下面的各应用例中也相同。
计算机100A在需要使计算机100B~100D执行同步处理时,首先确认存储在存储器110A中的End flag1~3是“0”,也就是计算机100B~100D不是正在执行同步处理(参见同图(a))。
接下来,计算机100A为了使计算机100B~100D开始同步处理,在存储器110A的Start flag存储区域中写入“1”,并且根据本机存储的输出管理信息表180,对公共总线101输出Start fag“1”(还同时输出Master ID“0”、Data ID“0”等)。
还有,计算机100A要在存储器110A的End flag1~3各存储区域中事先写入“1”。
计算机100B~100D各自根据输出到公共总线101上的Master ID“0”、Data ID“0”和本机存储的输入管理信息表190,进行接收该Start flag“1”的判定,在存储器110B~110D的Status flag1~3各区域中写入“1”(参见同图(b))。
通过该写入,计算机100B~100D各自开始同步处理。计算机100B~100D各自若完成了同步处理,则在存储器110B~110D的Status flag1~3中写入“0”,并且根据本机存储的输出管理信息表180,对公共总线101输出各自(和上面相同同时输出与所输出的数据对应的Master ID、Data ID等)。
计算机100A根据输出到公共总线101上的Master ID、Data ID和本机存储的输入管理信息表190,进行接收该Status flag1~3的判定,将其写入存储器110A的End flag1~3区域中(参见同图(c))。
最后,计算机100A确认存储在存储器110A中的End flag1~3为“0”,也就是说计算机100B~100D已完成同步处理。
<和以往的比较>
图13(b)是表示使按以往方式来共享数据的数字广播接收器10A内的各计算机执行同步处理时各存储器中的数据配置的附图。
与之进行比较,数字广播接收器1000A如同图(a)所示,在各存储器的存储区域中没有产生浪费,另外由于不进行无用的写入,因而可以认为不产生无用的访问竞争。
另外,由于在各计算机中,如上所述设定输出管理信息表180及输入管理信息表190,因而通过由计算机100A进行的Start fag“1”对存储器110A的写入,就可以在多台计算机100B~100D中同时开始同步处理,且由于根据计算机100B~100D各自输出的Status flag1~3,计算机100A就可以判明各计算机中的同步处理的完成,因而可以轻易地实现同步控制。
还有,在该应用例中,虽然说明了计算机100A使其他的全部计算机(100B~100D)执行同步处理的例子,但是也可以只使一部分计算机执行同步处理。
例如,在只使计算机100B和100C执行同步处理,不使计算机100D执行时,只要使计算机100D保持的输入管理信息表190内有关Status flag3的输入管理信息无效就可以(将Valid设定为“0”)。
另外,在该应用例中,虽然说明了计算机100A使其他的全部计算机(100B~100D)按相同的定时执行同步处理的例子,但是也可以使之按不同的定时开始。
例如,在使计算机100B和100C按相同的定时T1,且计算机100D按与之不同的定时T2开始同步处理时,计算机100A使之将定时T1用的Startflag1和定时T2用的Start flag2存储于存储器110A中,事先设定计算机100A的输出管理信息表180,以便在将各自更新成“1”时输出到公共总线101上。
另外,事先设定各自的输入管理信息表190,以便计算机100B和100C接收Start flag1,计算机100D接收Start flag2。还有,当然计算机100B~100D执行的同步处理内容相同或是不同,都可以。
<应用例3>
下面,说明将实施方式1所涉及的处理系统1000应用到各计算机利用其他计算机的处理结果来执行处理的联合处理系统中的例子。
还有,虽然设为处理系统1000具备5台计算机(100A~100E)进行了说明,但是本应用例的联合处理系统将设为具备4台计算机100A~100D进行说明。
<联合处理的流程>
图16是说明应用例3中的联合处理流程所用的附图。
如同图所示,本联合处理按处理A、处理B、处理C及处理D的顺序执行。这里,处理B~处理D使用前1个执行过的处理之结果(Data0~2)来执行。
还有,在下面设为分别由计算机100A~100D执行处理A~D,进行说明。另外,若由计算机100D进行的处理D完成,则计算机100A开始下面的处理A。
<各存储器上的数据>
图17(a)是表示应用例3所涉及的各存储器数据配置的附图。
这里,各存储器中的Status0~3是用来使与各计算机对应的处理开始的启动标识,各计算机在该标识和本机的Master ID一致时开始对应的处理,写入若该处理完成则执行下一处理的计算机Master ID。
另外,各存储器中的Data0~3分别是通过处理A~D生成的数据,对应于图16所示的各数据(Data0~3)。
<管理信息表>
图18(a)是表示应用例3所涉及的各计算机输出管理信息表180内容例的附图。
如同图所示,通过设定各计算机中的输出管理信息表180,计算机100A~100D就在将Status0~3及Data0~2写入各存储器中时,将它们和对应的Master ID等一起,输出到公共总线101上。
图18(b)是表示应用例3所涉及的各计算机输入管理信息表190内容例的附图。
如同图所示,通过设定各计算机中的输入管理信息表190,计算机100A~100C就将从下述计算机输出的Status分别写入存储器110A~110C的Status0~2区域中,该计算机执行本机执行的处理前后的处理。另外,计算机100D将从下述计算机100C输出的Status2写入存储器110D的Status3区域中,该计算机执行本机执行的处理D之前的处理C。
另外,计算机100B~100D将从下述计算机输出的Data分别写入存储器110B~110D的Data1~3区域中,该计算机在本机执行的处理之前执行处理。
<动作>
图19是说明应用例3所涉及的各计算机动作所用的附图。
首先,计算机100A参照存储器110A的Status0区域,在Status0和本机的Master ID“0”一致时,开始处理A(参见同图(a))。
计算机100A若完成了处理A,则在存储器110A的相应区域中写入Data0,并且根据本机存储的输出管理信息表180,对公共总线101输出Data0(还同时输出Master ID“0”、Data ID“1”等)。
计算机100B根据输出到公共总线101上的Master ID“0”、Data ID“1”和本机存储的输入管理信息表190,进行接收该Data0的判定,在存储器110B的Data1区域中写入Data0。
随后,计算机100A在存储器110A的Status0区域写入“1”,并且根据本机存储的输出管理信息表180,对公共总线101输出Status0“1”(还同时输出Master ID“0”、Data ID“0”等)。
计算机100B根据输出到公共总线101上的Master ID“0”、Data ID“0”和本机存储的输入管理信息表190,进行接收该Status0“1”的判定,在存储器110B的Status1区域中写入“1”(参见同图(b))。
其结果为,计算机100B由于Status1和本机的Master ID“1”一致因而开始处理B,若处理B完成,则在存储器110B的相应区域中写入Data1,并且根据本机存储的输出管理信息表180,对公共总线101输出Data1(还同时输出Master ID“1”、Data ID“1”等)。
计算机100C根据输出到公共总线101上的Master ID“1”、Data ID“1”和本机存储的输入管理信息表190,进行接收该Data1的判定,在存储器110C的Data2区域中写入Data1。
随后,计算机100B在存储器110B的Status1区域中写入“2”,并且根据本机存储的输出管理信息表180,对公共总线101输出Status1“2”(还同时输出MasterID“1”、Data ID“0”等)。
计算机100A及100C各自根据输出到公共总线101上的Master ID“1”、Data ID“0”和本机存储的输入管理信息表190,进行接收该Status1“2”的判定,分别在存储器110A的Status0区域、存储器110C的Status2区域中写入“2”(参见同图(c))。
同样,计算机100C开始处理C,若该处理C完成,则在存储器110C的相应区域中写入Data2,并且将其输出到公共总线101上,计算机100D在存储器110D的Data3区域中写入Data2。随后,计算机100C在存储器110C的Status2区域中写入“3”,并且将其输出到公共总线101上,计算机100B及100D将该Status2“3”分别写入存储器110B的Status1区域、存储器110D的Status3区域中(参见同图(d))。
同样,计算机100D开始处理D,若该处理D完成,则在存储器110D的相应区域中写入Data3。随后,计算机100D在存储器110D的Status3区域中写入“0”,并且将其输出到公共总线101上,计算机100A及100C将该Status3“0”分别写入存储器110A的Status0区域、存储器110C的Status2区域中(参见同图(e))。
以后,计算机100A由于Status0和本机的Master ID“0”一致,因而再次开始处理A。
<和以往的比较>
图17(b)是表示按以往方式来共享数据并执行联合处理的联合处理系统内各存储器数据配置的附图。
在同图(a)所示的应用例3所涉及的联合处理系统中,和同图(b)进行比较,大幅减少了各存储器内共享数据用的存储区域,可以认为,在各存储器的存储区域中没有产生浪费,另外,不产生因无用的写入导致的和计算机内的处理器之间的存储器访问竞争。
还有,在本应用例中,虽然为了简化说明,设为如同处理A→处理B→处理C→处理D之类的那样按顺序执行联合处理,说明了在各存储器中设置存储1个世代量Status和Data的区域之例子,但是也可以使之存储多个世代量的Status和Data,由各计算机并行执行各处理。
另外,在本实施例中,虽然设为由执行前后处理的计算机共享各计算机的Status,进行了说明,但是也可以设定输入管理信息表190以便由所有的计算机共享。借此,各计算机通过参照本机连接的存储器的Status,就可以判明当前进行处理的计算机,因此能够轻易掌握系统整体上的处理状况。
<应用例4>
将说明在上述应用例3所涉及的联合处理系统中,添加在恒定时是空闲状态的计算机100E,并按照其他计算机100B~100D的处理负荷,由该计算机100E分担该计算机处理一部分的例子。
图20是说明应用例4所涉及的各计算机动作所用的附图。
在下面,使用同图,来说明在计算机100C执行的处理C负荷增高时,由该计算机100E分担处理C一部分的情形的动作例。
还有,同图表示出,计算机100A完成处理A,将Data0输出到公共总线101上后的状态,省略了计算机100A的图示。
如同图(a)所示,在恒定时,计算机100B~100D分别执行处理B~D,计算机100E是空闲状态。
还有,应用例3所涉及的各计算机虽然设为在Status和本机的Master ID一致时开始处理,进行了说明,但是在该应用例4中,在写入了前1个的处理结果(Data0~2)时,就开始处理,并且把前1个的处理结果和本装置的处理结果写入不同的区域中。
图21(a)是表示应用例4所涉及的恒定时各计算机的输出管理信息表180内容例的附图。
还有,在同图中,也省略了计算机100A的输出管理信息表180的记述。
如同图所示,通过设定各计算机中的输出管理信息表180,计算机100B、100C分别在写入Data1、Data2时,将该Data1、Data2和对应的Master ID等一起,输出到公共总线101上。
另外,图21(b)是表示应用例4所涉及的恒定时各计算机的输入管理信息表190内容例的附图。
还有,在同图中,也省略了计算机100A的输入管理信息表190的记述。
如同图所示,通过设定各计算机中的输入管理信息表190,计算机100B~100D若分别对公共总线101输出了Data0~Data2,则接收该信号,将其写入存储器110B~110D对应的区域中。
若从图20(a)的状态开始,由计算机100C进行的处理C的处理负荷一直增高,(例如,若处理C从开始到结束的处理时间达到了指定时间以上),则为了使空闲状态的计算机100E执行处理C的一部分,如图21(c)所示,任意计算机内的1个处理器(例如计算机100A的处理器120A)在计算机100E的输入管理信息表190中登录输入管理信息。还有,该登录例如从计算机100C收到处理C的负荷已增高之意的通知,而执行。
因此,计算机100E接收由计算机100B输出到公共总线101上的Data1,将其写入存储器110E对应的区域中(参见图20(b))。
随后,若处理所需要的Data1储存到计算机100E的存储器110E中,则如图21(d)、(e)所示,在计算机100D的输入管理信息表190中登录输入管理信息197,并且登录计算机100E的输出管理信息。
随后,计算机100E开始处理C,在存储器110E的相应区域中写入Data2,并且对公共总线101输出Data2,计算机100D接收该信号将其写入存储器110D的Data2区域中(参见图20(c))。
还有,在由计算机100C和100E分担执行处理C时,例如使用将Data1二等分后的前半部分,由计算机100C执行处理C,输出Data2的前半部分,并且使用Data1的后半部分,由计算机100E执行处理C,输出Data2的后半部分。也就是说,将其写入存储器110D对应的区域中,以将从计算机100C输出的Data2的前半部分和从计算机100E输出的Data2的后半部分合并,来构成Data2。
这样,因为各计算机根据输出管理信息表180及输入管理信息表190来控制共享数据的输入输出,所以通过根据需要来更新该表,即便在运用中,也可以在不给其他的计算机带来较大影响的状况下,轻易地使联合处理系统具备的计算机台数增减。这意味着,尤其是在实现要求实时性的处理的系统中,性能保证能够轻易实现。
另外,由于在增加了计算机台数时,不需要为该计算机用而单独输出数据,因而可以防止公共总线101上的数据量增加。
另外,由于在恒定时,计算机100E不将其他计算机100A~100C输出到公共总线101上的数据写入存储器110E中,因而在恒定时使计算机100E执行不需要和计算机100A~100D之间的数据收发那种处理的场合,计算机100E可以在独享存储器110E的存储区域,且不产生访问竞争的状况下有效地执行处理。
还有,在本应用例中,虽然设为当将处理C由计算机100C和100E进行分担处理时,不需要参照当前执行分担处理的其他计算机所生成的Data2,进行了说明,但是在需要参照其他计算机所生成的Data2时,也象应用例1中所说明的那样,通过在计算机100C和100E的输入管理信息表190中,登录接收当前执行分担处理的其他计算机输出的Data2那种输入管理信息,就能够实现。
另外,在本应用例中,虽然说明了将处理C由计算机100C和100E进行分担处理的情形,但是例如在计算机100C因故障等而无法使用时,也可以采用同样的方法,使计算机100E代替由计算机100C进行的处理C执行。
另外,在本应用例中,虽然设定了计算机100E的输入管理信息表190,以便计算机100E在恒定时,不接收来自其他计算机100A~100C的Data0~2,但是也可以使之在恒定时仍接收。在计算机100C、100D中,也可以设定计算机100C、100D的输入管理信息表190,以便分别从计算机100E接收Data1、Data2以及Data3(参见图22(a)(b))。
这种情况下,各计算机间的数据流动如同图(c)所示。
据此,因为计算机100A~100C所生成的最新Data0~2总是被反映于计算机100E的存储器110E中,所以即便在计算机100E开始处理B~D中的某个的分担处理时,也不需要重新设定输出管理信息表180及输入管理信息表190,可以更加高速地使分担处理开始。
还有,即便象图22(b)那样在计算机100C、100D中,设定了输入管理信息表190时,也由于在计算机100E开始分担处理之前,不从计算机100E对公共总线101输出Data1、Data2或Data3,因而不发生对存储器110B的Data1写入、对存储器110C的Data2写入或对存储器110D的Data3写入。从而,即便在如上进行了设定时,在计算机100E开始分担处理之前,公共总线101上的数据量也不和图20中所说明的情形发生变化,也没有给其他的计算机带来影响的状况。
<应用例5>
说明将实施方式1中所说明的各计算机间数据共享方法应用到各计算机的初始化处理中的例子。
<各存储器上的数据配置>
图23(a)是表示应用例5所涉及的各存储器数据配置的附图。
这里,各存储器中的Init all是各计算机共同使用的初始数据,Init0~Init3分别是只有计算机100A~100D使用的初始数据,Init12、Init23以及Init31分别是计算机100B和100C、计算机100C和100D以及计算机100B和100D使用的初始数据。
<管理信息表>
图23(b)是表示应用例5所涉及的各计算机输出管理信息表180内容例的附图。
如同图所示,通过设定各计算机中的输出管理信息表180,计算机100A就在将Init all、Init1~3、Init12、Init23及Init31写入存储器110A中时,将它们和对应的Master ID等一起,输出到公共总线101上。
还有,因为在其他计算机(100B~100D)的输出管理信息表180中未登录有效的输出管理信息(也就是说,Valid为“0”,而同图中的图示予以省略),所以计算机100B~100D不对公共总线101输出数据。
图23(c)是表示应用例5所涉及的各计算机输入管理信息表190内容例的附图。
如同图所示,通过设定各计算机中的输入管理信息表190,计算机100B就将Init all、Init1、Init12及Init31,计算机100C就将Init all、Init2、Init12及Init23,计算机100D就将Init all、Init3、Init23及Init31写入各存储器(100B~100D)各自对应的区域中。
还有,因为在计算机100A的输入管理信息表190中未登录有效的输入管理信息(也就是说,Vaild为“0”,而同图中的图示予以省略),所以计算机100A不将由其他计算机(100B~100D)输出到公共总线101上的数据写入存储器110A中。
如上所述,因为通过设定各计算机的输出管理信息表180及输入管理信息表190,只是由计算机100A将各初始数据(Init all、Init1~3、Init12、Init23及Init31)写入存储器110A中,就在存储器110B~110D中分别写入其他计算机(100B~100D)使用的初始数据,所以可以高速进行系统整体的初始化。
另外,在本应用列中,因为只有计算机100A进行初始数据的写入,所以例如在由外部存储装置保持初始数据的那种系统中,只将计算机100A和该外部存储装置进行连接就足够。
也就是说,在多处理器系统中,因为将用来和外部连接装置进行连接的接口部只设置于计算机100A中就足够,所以可以减少系统整体的成本。
《实施方式2》
实施方式1所涉及的各计算机的选择部160设为,在接收到来自输出管理部140的存储器访问请求信号和来自输入管理部150的写入请求信号时,使来自输入管理部150的写入请求信号优先地传送给存储器控制部170,进行了说明。
从而,可能产生使来自计算机内处理器的存储器访问等待,处理效率下降的那种问题。
因此,在下面将以根据上述实施方式1的变更部分为中心,来说明一个实施例,该实施例其变化为,通过在各计算机中设置用来暂时存储与来自输入管理部150的写入请求有关的数据等的缓冲器,使之高速进行来自计算机内处理器的存储器访问。
<结构>
图24是实施方式2所涉及的处理系统1100的系统结构图。
处理系统1100如同图所示,取代实施方式1所涉及的处理系统1000中的各计算机,而具备计算机200A~200C。
计算机200A~200C分别取代实施方式1所涉及的各计算机选择部160而具备共享数据控制部220,并且还具备缓冲器210。
各计算机(200A~200C)因为具有相同的结构,所以在下面将以计算机200A为例进行说明。还有,在同图中用粗线所示的部位特别表示出,是和实施方式1所涉及的计算机100A不同的部位。
这里,缓冲器210是暂时存储与共享数据控制部220经由输入管理部150接收到的写入请求信号有关的数据所用的存储器区域。更为详细而言,通过共享数据控制部220,使写入对象数据、作为写入该数据的目标的存储器110A地址和表示该数据是否已完成向存储器110A的写入的标识相对应地进行记录。
共享数据控制部220具有在从输出管理部140或输入管理部150接收到存储器访问请求信号时,经过缓冲器210或存储器控制部170来访问存储器110A之功能。
<动作>
下面,说明共享数据控制部220的动作。
图25是表示由共享数据控制部220进行的访问控制处理的流程图。
还有,下面步骤S201~S216的处理重复执行。
共享数据控制部220判定是否从输出管理部140接收到存储器访问请求信号(步骤S201),在接收到时(步骤S201:是),判定与该访问请求有关的存储器110A上的地址一致,且对存储器110A的写入未完成的数据是否存储在缓冲器210中(步骤S202)。更为详细而言,只有在和下述地址及标识建立了对应的数据存储在缓冲器210中时才进行肯定的判定,该地址和与访问请求有关的存储器110A上的地址一致,该标识是对存储器110A的写入未完成之意。
在地址一致,且对存储器110A的写入未完成的数据未存储在缓冲器210中时(步骤S202:否),共享数据控制部220将来自输出管理部140的存储器访问请求信号等传送给存储器控制器170(步骤S203)。
接下来,共享数据控制部220判定是否从输入管理部150接收到写入请求信号(步骤S204),在未接收到时(步骤S204:否),结束访问控制处理,在接收到时(步骤S204:是),使来自输入管理部150的写入请求信号中包含的写入对象数据、对应的存储器110B的地址和表示写入未完成之意的标识建立对应,写入到缓冲器中(步骤S205),并结束访问控制处理。
另一方面,在步骤S202中,地址一致,且对存储器110A的写入未完成的数据已存储在缓冲器210中时(步骤S202:是),共享数据控制部220从缓冲器210读出该数据(步骤S206),判定来自输出管理部140的存储器访问请求信号是否是写入请求信号(步骤S207)。
在来自输出管理部140的存储器访问请求信号是读出请求信号时(步骤S207:否),共享数据控制部220将在步骤S206中所读出的数据传送给处理器,并且将用来把该数据写入缓冲器210中所存储的地址内的写入请求信号,传送给存储器控制部170(步骤S208)。
另一方面,在来自输出管理部140的存储器访问请求信号是写入请求信号时(步骤S207:是),共享数据控制部220对在步骤S206中所读出的数据,执行使之反映与该写入请求信号有关的数据的处理(例如重写处理),将用来把反映后的数据写入缓冲器210中所存储的地址内的写入请求信号,传送给存储器控制部170(步骤S209)。
若在步骤S208或者步骤S209中,传送出了写入请求信号,则共享数据控制部220在缓冲器210中,更新和与该写入请求有关的数据相对应地存储的标识,使之表示写入已完成之意,进入上述步骤S204的处理。
另外,在步骤S201中,未从输出管理部140接收到存储器访问请求信号时(步骤S201:否),共享数据控制部220判定是否从输入管理部150接收到存储器访问请求信号(写入请求信号)(步骤S210),在未接收到时(步骤S210:否),判定对存储器110A的写入未完成的数据是否已存储在缓冲器210中(步骤S211)。更为详细而言,在和对存储器110A的写入未完成之意的标识建立了对应的数据已存储在缓冲器210中时进行肯定的判定。
在对存储器110A的写入未完成的数据不存在时(步骤S211:否),按原状结束访问控制处理,在对存储器110A的写入未完成的数据存在时(步骤S211:是),共享数据控制部220从缓冲器210读出该数据,将用来把所读出的数据写入缓冲器210中所存储的地址内的写入请求信号,传送给存储器控制部170(步骤S212),和步骤S208等中所说明的方法相同更新标识,并结束访问控制处理。
另一方面,在步骤S210中从输入管理部150接收到存储器访问请求信号(写入请求信号)时(步骤S210:是),和上述的步骤S202相同,判定与该写入请求有关的存储器110A上的地址一致,且对存储器110A的写入未完成的数据是否已存储在缓冲器210中(步骤S213)。
在地址一致,且对存储器110A的写入未完成的数据不存在于缓冲器210中时(步骤S213:否),共享数据控制部220将来自输入管理部150的存储器访问请求信号(写入请求信号)传送给存储器控制部170(步骤S214),并结束访问控制处理。
另外,在步骤S213中,地址一致,且对存储器110A的写入未完成的数据已存储在缓冲器210中时(步骤S213:是),共享数据控制部220从缓冲器210读出该数据(步骤S215)。
另外,共享数据控制部220对所读出的数据,执行使之反映与该写入请求信号有关的数据的处理(例如重写处理),将用来把反映后的数据写入到缓冲器210中所存储的地址内的写入请求信号,传送给存储器控制部170(步骤S216),和步骤S208等中所说明的方法相同更新标识,并结束访问控制处理。
这样,由于共享数据控制部220将和其他计算机之间的共享数据(写入对象数据)存储于缓冲器210中,在由计算机内的处理器进行的存储器访问未进行时写入缓冲器210中所存储的共享数据,因而可以防止来自计算机内处理器的存储器访问请求和下述写入请求之间的竞争,该写入请求是与和其他计算机之间的共享数据(写入对象数据)有关的写入请求。也就是说,可以在不使由计算机内的处理器进行的存储器访问等待的状况下,高速进行。
另外,在与来自计算机内处理器的访问请求有关的数据已经作为对存储器110A的写入尚未完成的数据存储在缓冲器210中时,共享数据控制部220对该缓冲器210内的数据执行访问处理。从而,由于计算机内的处理器即便是和其他计算机之间的共享数据(写入对象数据)被写入存储器110A中之前的状态,也可以访问最新的共享数据,并且不进行对存储器110A的访问,因而能够在该期间写入缓冲器210内的数据,可以使缓冲器210内的数据在比较短的时间内反映于存储器110A中。
《实施方式3》
下面,以根据上述实施方式1的变更部分为中心来说明一个实施例,该实施例其变化为,通过将各计算机内的处理器在处理中使用的数据分为只有该处理器使用的数据和共享数据,在物理上不同的2个存储器(固有存储器和共享存储器)中存储各个数据,而不用使来自各计算机内处理器的存储器访问等待,更为高速地进行。
图26是实施方式3所涉及的处理系统1200的系统结构图。
处理系统1200如同图所示,取代实施方式1所涉及的处理系统1000中的各计算机,而具备计算机300A~300C。
计算机300A~300C取代实施方式1所涉及的各计算机选择部160而具备存储器选择控制部330,并取代存储器控制部170而具备固有存储器控制部340和共享存储器控制部350。
另外,各计算机取代存储器110A~110C,分别连接到固有存储器310A~310C和共享存储器320A~320C上。
各计算机(300A~300C)因为具有相同的结构,所以在下面将以计算机300A为例进行说明。还有,在同图中用粗线所示的部位特别表示出,是和实施方式1所涉及的计算机100A不同的部位。
这里,存储器选择控制部330具有将从输出管理部140接收到的存储器访问请求信号及从输入管理部150接收到的写入请求信号,传送给固有存储器控制部340和共享存储器控制部350的某一个之功能。
更为详细而言,在从输出管理部140接收到的存储器访问请求信号是对固有存储器310A的访问请求信号时,将该信号传送给固有存储器控制部340,在是对共享存储器320A的访问请求信号时,将该信号传送给共享存储器控制部350。另外,从输入管理部150接收到的写入请求信号全部传送给共享存储器控制部350。特别是,在同时接收到来自输出管理部140的对共享存储器320的访问请求信号和来自输入管理部150的写入请求信号时,使来自输入管理部150的写入请求信号优先地传送给共享存储器控制部350。也就是说,这种情况下,要使来自处理器的对共享存储器320的访问等待。
还有,存储器选择控制部330需要判断从输出管理部140接收到的存储器访问请求信号是对固有存储器310A和共享存储器320A哪个的访问请求信号。为了进行该判断,存储器选择控制部330也可以保持例如使逻辑地址和物理地址建立了对应的信息,将从输出管理部140接收到的存储器访问请求信号中包含的地址(逻辑地址),变换为各存储器(固有存储器310A、共享存储器320A)中的地址(物理地址),生成指定变换后地址的新的存储器访问请求信号,将其传送给对应的存储器。
另外,也可以由协调部130保持上述使逻辑地址和物理地址建立了对应的信息,当协调部130对输出管理部140传送存储器访问请求信号时,生成新的存储器访问请求信号,传送给输出管理部140。
另外,作为其他的方法,也可以变更各处理器对协调部130传送的存储器访问请求信号,使之包含下述信息,该信息指定是对固有存储器310A和共享存储器320A中的哪个的访问请求信号。
固有存储器控制部340具有根据从存储器选择控制部330接收到的存储器访问请求信号等,访问固有存储器310A之功能,该固有存储器310A存储不需要和其他计算机共享的数据,也就是只有计算机300A内的各处理器(120A~120C)使用的数据。作为存储于该固有存储器310A中的数据例,可举出各处理器(120A~120C)各自应执行的程序。
共享存储器控制部350具有根据从存储器选择控制部330接收到的存储器访问请求信号等,访问存储和其他计算机之间的共享数据的共享存储器320A之功能。
这样,由于将不需要和其他计算机共享的数据存储于固有存储器310A中,使共享数据存储于共享存储器320A中,因而能够同时访问固有存储器310A和共享存储器320A。也就是说,在来自计算机内处理器的访问请求是对固有存储器310A的访问请求时,可以防止该访问请求和下述写入请求之间的竞争,该写入请求是与和其他计算机之间的共享数据(写入对象数据)有关的对共享存储器320A的访问请求。
《实施方式4》
在下面,以根据实施方式3的变更部分为中心,说明将实施方式2及实施方式3中的特征结构组合后的一个实施例。
图27是实施方式4所涉及的处理系统1300的系统结构图。
处理系统1300如同图所示,取代实施方式3所涉及的计算机300A~300C,而具备计算机400A~400C。
计算机400A~400C取代实施方式3所涉及的各计算机存储器选择部330而具备存储器选择控制部410,并且具备实施方式2所涉及的缓冲器210及共享数据控制部220。
各计算机(400A~400C)因为具有相同的结构,所以在下面将以计算机400A为例进行说明。还有,在同图中用粗线所示的部位特别表示出,是和实施方式3所涉及的计算机300A不同的部位。
这里,存储器选择控制部410和实施方式3所涉及的存储器选择控制部330的不同之处为,将从输出管理部140接收到的对共享存储器320A的访问请求信号及从输入管理部150接收到的写入请求信号,传送给共享数据控制部220。
共享数据控制部220具有在经由存储器选择控制部410从输出管理部140或输入管理部150接收到存储器访问请求信号时,通过缓冲器210或者共享存储器控制部350访问共享存储器320A之功能。具体而言,如同实施方式2中所说明的那样,按照图25所示的流程图,执行访问控制处理。
因此,和实施方式3的情形进行比较,即便来自计算机内处理器的访问请求是对共享存储器320A的访问请求,也可以防止和下述写入请求之间的竞争,该写入请求是与和其他计算机之间的共享数据(写入对象数据)有关的对共享存储器320A的访问请求。也就是说,可以在不使由计算机内的处理器进行的存储器访问等待的状况下,高速进行。
另外,共享数据控制部220在由计算机内的处理器进行的对共享存储器320A的访问未进行时,将存储在缓冲器210中的共享数据写入共享存储器320A中。也就是说,在由计算机内的处理器进行的对固有存储器310A的访问正在进行时,也能够将存储在缓冲器210中的共享数据写入到共享存储器320A中。从而,由于比较实施方式2的情形,能够将存储在缓冲器210中的共享数据更为频繁地写入共享存储器320A中,因而可以更为快速地使缓冲器210内的数据反映于共享存储器320A中。其结果为,可以使用容量比实施方式2更少的缓冲器210。
《异例》
在下面,对于一个异例进行说明,该异例其变化为只有在各计算机内的输出管理部140接收到来自本计算机内特定处理器的写入请求信号时才对公共总线101输出写入对象数据。
异例所涉及的各计算机(500A~500D)稍微变更了实施方式1所涉及的各计算机输出管理部140保持的输出管理信息表180数据结构和协调部130的功能。
具体而言,异例所涉及的协调部协调由各处理器发出的对存储器110A的访问请求,在将1个存储器访问请求信号传送给异例所涉及的输出管理部时,还将作为该信号发送源的处理器的识别信息(下述的Processor ID)传送给异例所涉及的输出管理部。
在下面,以将异例所涉及的处理系统,和上述应用例3相同应用到由计算机500A~500D分别执行处理A~D的联合处理系统中的情形为例,并以根据实施方式1的变更部分为中心,进行说明。
特别是,在该例子中,设为各计算机内的处理器120A分别执行处理A~D,并且若由计算机100B进行的处理B的负荷增高则计算机100A的处理器120B对处理B进行分担处理,进行说明。还有,该例子所涉及的计算机500B~500D和应用例5相同,在写入了前1个处理结果(Data0~2)时,开始利用这些数据的处理B~D。
图28(a)是表示异例所涉及的各计算机输出管理信息表内容例的附图。
如同图所示,在异例所涉及的输出管理信息表的输出管理信息中,除实施方式1所涉及的输出管理信息表180的输出管理信息中包含的各数据之外,还包含Processor ID。
这里,Processor ID是处理器的识别信息,该处理器传送对对应的共享数据的写入请求信号;在下面作为一例,异例所涉及的各计算机处理器120A~120C的Processor ID是“0”~“2”。
如同图所示,通过设定各计算机中的输出管理信息表,计算机500A就在将与Processor ID为“0”和“1”的各处理器(也就是处理器120A和120B)的写入请求信号有关的数据(Data0和Data1)写入存储器110A中时,把它们和对应的Master ID等一起,输出到公共总线101上。
另外,计算机500B、500C分别在将与Processor ID为“0”的处理器(也就是处理器120A)的写入请求信号有关的数据(Data1、Data2)写入各存储器(110B、110C)中时,把它们和对应的Master ID等一起,输出到公共总线101上。
图28(b)是表示异例所涉及的各计算机输入管理信息表190内容例的附图。
在异例中,输入管理信息表190的数据结构和实施方式1没有发生变更,如同图所示,通过设定各计算机中的输入管理信息表,计算机500B、计算机500C及计算机500D就将计算机500A输出的Data0、计算机500A及500B输出的Data1及计算机500C输出的Data2,分别写入存储器110B~110D各自对应的区域中。
在下面,说明计算机500A~500D分别执行处理A~D的联合处理系统动作。
图29是说明异例所涉及的各计算机动作所用的附图。
同图(a)~(c)表示出,恒定时各计算机的动作。对此,因为和上述的应用例3相同,所以详细的说明予以省略。
同图(d)表示出,由计算机500B进行的处理B的负荷增高,计算机500A的处理器120B对处理B进行分担处理的状态。
若处理B的负荷达到了一定以上(例如,处理B从开始到结束的处理时间大于等于指定时间),则计算机500B对计算机500A指示处理B的分担处理,计算机500A的处理器120B接受该指示,开始处理B的分担处理。
计算机500A的处理器120B例如使用将下述处理结果(Data0)二等分后的后半部分来执行处理B,将其结果(Data1的后半部分)写入存储过该处理B所使用的Data0后半部分的区域中,上述处理结果(Data0)是存储器110A中所写入的由本机处理器120A进行的处理A的处理结果。
另外,计算机500B和由计算机500A的处理器120B进行的处理B执行同时,例如使用存储在存储器110B中的Data0前半部分来执行处理B,将其结果(Data1的前半部分)写入存储过该处理B所使用的Data0前半部分的区域中。
计算机500A、500B分别在写入Data1时,根据各自存储的输出管理信息表,对公共总线101输出Data1(还同时输出Master ID等)。
计算机500C根据输出到公共总线101上的Master ID等和本机存储的输入管理信息表190,进行接收Data1的判定,将其写入存储器110C对应的区域中,开始处理C。
这样,在异例所涉及的输出管理信息表中,因为包含Processor ID,所以如上所述,即便计算机500A的处理器120A写入Data0的存储器110A区域和计算机500A的处理器120B写入Data1的存储器110A区域重复,也可以将与来自不同处理器的写入请求信号有关的共享数据作为单个的数据进行管理。也就是说,如上所述,能够实现使计算机500B接收计算机500A对公共总线101输出的Data0,使计算机500C接收Data1的那种结构。
另外,由于可以重复设定存储单个共享数据的存储器上的区域,因而能够节约存储器上共享数据用的存储区域。
还有,如同应用例3中所说明的那样,通过在各存储器中存储多个世代量的Data,还能够使各计算机同时执行各处理。
<补充>
上面,对于本发明所涉及的处理系统,根据各实施方式及异例进行了说明,但是也可以如下进行变通,并且不言而喻,本发明不限于象上述各实施方式及异例所示那样的处理系统。
(1)在各实施方式及异例中,虽然设为输出管理信息及输入管理信息包含Valid,并且在Valid是“1”时输出管理信息及输入管理信息为有效,进行了说明,但是也可以省略Valid,只将有效的输出管理信息及输入管理信息,登录于输出管理信息表及输入管理信息表中。
(2)在各实施方式及异例中,虽然设为分别设置输出管理信息表和输入管理信息表,进行了说明,但是也可以在1个输入输出管理表中登录输出管理信息及输入管理信息,输出管理部的输出判定部143及输入管理部的输入判定部152在进行判定时,参照输入输出管理表。此时,在输入输出管理表中,要事先登录用来区分输出管理信息及输入管理信息的标识。
再者,在各计算机间共享相互更新的数据的那种系统中,也不需要区分输出管理信息及输入管理信息,只要按照输入输出管理表中所登录的输入输出管理信息,输出与由本机的处理器发出的写入请求有关的数据,接收从其他计算机所输出的数据,就可以。在如此进行了变通的场合,有效之处为和分别设置输出管理信息表与输入管理信息表的情形进行比较,用来存储表的存储器容量减半。
(3)在各实施方式及异例中,虽然设为由处理系统中任意计算机内的1个处理器执行向各计算机的输出管理信息表及输入管理信息表登录的数据生成及对各表的登录,进行了说明,但是也可以通过由各计算机内的处理器执行本机所连接的存储器中所存储的程序,进行生成及登录。
因为输出管理信息及输入管理信息包含Master ID和Data ID,并且根据两个ID的组合来识别共享数据,所以各计算机只要对应当输出给其他计算机的各共享数据分配Data ID使之不重复就可以,并且因为也可以不和其他计算机已分配的Data ID重复,所以各计算机可以单独设定输出管理信息表。
另外,也可以由处理系统中任意计算机内的1个处理器仅仅执行向各计算机的输出管理信息表及输入管理信息表登录的数据生成,通过表设定用的总线,向各计算机发送所生成的数据,将各计算机内的处理器接收到的数据登录于本机内的表中。
另外,也可以由各计算机内的处理器执行已经登录的输出管理信息及输入管理信息的有效或无效设定(也就是Valid的更新)。
(4)在各实施方式及异例中,虽然说明了输出管理信息及输入管理信息包含Master ID和Data ID,并根据两个ID的组合来识别共享数据的例子,但是也可以生成能通过系统整体来识别各共享数据的识别信息。
(5)在各实施方式及异例中,虽然设为在各计算机输出管理信息表内的各输出管理信息中包含该计算机的Master ID,进行了说明,但是各计算机也可以使之事先另行存储本机的Master ID,对于Master ID则不包含于各输出管理信息中。
(6)在各实施方式及异例中,设为写入目标的地址(其他的计算机所输出的偏移+对应的输入管理信息的Start Address)收存于其对应的输入管理信息End Address之前的范围内,进行了说明。但是,不一定必须这样,例如只要如下进行控制以便不执行对应的共享数据向存储区域以外的写入,就可以。
(a)其控制为,将该访问作为共享区域外的访问,不存储于该计算机的存储器中。
(b)其控制为,将从计算出的写入目标地址减去其存储区域的地址空间量后的地址作为存储目标,在该存储区域内进行重叠。
(c)其控制为,变换为对特定的固定地址的访问。
(7)在各实施方式及异例中,虽然设为在输出管理信息及输入管理信息中包含EndAddress,进行了说明,但是也可以不包含EndAddress。那种情况下,例如需要使对各共享数据的存储区域成为同一大小。
(8)在各实施方式及异例中,虽然设为按StartAddress和EndAddress来进行输出管理信息及输入管理信息中存储区域的指定,进行了说明,但是不限于此,例如也可以取代End Address,使用区域大小。
(9)在各实施方式及异例中,虽然说明了为了减小公共总线101的总线宽度,利用Master ID、Data ID和偏移来指定写入目标地址的方式,但是不限于此,例如也可以只利用Master ID和Data ID来指定写入目标地址,将对应的区域的全部数据作为写入对象的数据进行发送。另外,输出管理部也可以只输出经由协调部接收到的来自处理器的存储器访问请求信号中所包含的地址全部位或者一部分位,来确定地址。
(10)在各实施方式及异例中,虽然为了使说明变得简单,以从协调部传送的存储器访问请求信号中访问请求的传送单位为可在1周期内执行的单位,进行了说明,但是不限于此,例如即便是在多个周期内传送的突发传送访问请求,也能够同样安装。
这种情况下,在突发传送中发生了跨越输出管理信息表中所设定的存储区域边界的那种访问时,需要进行下述控制等数个改进,该控制为,将其访问请求分割为非共享数据访问和共享数据访问,执行与各自对应的处理,或者在公共总线协调部102中,为了使协调单位成为1个突发传送,将通知对公共总线101的数据传送已完成的信号,由输出管理部传送给公共总线协调部102,但是因为它们使用现有的安装技术就可以应对,所以这里省略详细的说明。
(11)在各实施方式及异例中,为了使说明变得简单,设为存储器控制部170、固有存储器控制部340及共享存储器控制部350仅仅将与写入请求信号有关的数据写入存储器中,进行了说明,但是也可以在该写入请求信号中包含字节屏蔽等对写入处理进行特殊处理的控制信息,并且存储器控制部170等也可以执行根据其控制信息的数据更新处理。
(12)在实施方式2中,虽然设为在从计算机内的处理器对存储器的访问未进行的期间进行,说明了存储在缓冲器210中的对存储器的写入未完成的数据,但是例如也可以在缓冲器210内存在未写入的数据时,共享数据控制部220为了将该数据写入存储器中,明确地将写入请求信号传送给协调部130,在协调部130协调的结果为,选择出该信号时从缓冲器210写入到存储器中。
据此,可以在协调部130中,保证将缓冲器210内未写入的数据可靠地写入存储器中,例如可以避免缓冲器已满,结果将公共总线101上的数据传送停止,或者通过共享数据控制部220停止由协调部130选择出的处理器的存储器访问请求之类的处理,系统的性能保证较为容易。
(13)在实施方式2中设为,如同图25中所说明的那样,只接收来自输入管理部150的写入请求信号(步骤S201:否,S210:是),对存储器110A的写入未完成的数据被存储到缓冲器210中,而在和与该写入请求有关的存储器110A上的地址不一致时(步骤S213:否),共享数据控制部220将来自输入管理部150的写入请求信号传送给存储器控制部170(步骤S214),进行了说明。
但是,例如也可以将下述写入请求信号传送给存储器控制部170,将与来自输入管理部150的写入请求信号有关的数据写入缓冲器210中,该写入请求信号用来将缓冲器210内未写入的数据之中最早写入到缓冲器210中的数据写入存储器中。
据此,因为可以从由其他计算机接收到的共享数据之中更新最陈旧的数据开始优先反映于存储器中,所以能够缩短从由其他计算机接收到反映于存储器中的期间。
(14)在实施方式2中,虽然如同图25所说明的那样,在访问请求产生了竞争时,有时同时发生对缓冲器210的读出和写入,但是由于采用双端口存储器来构成缓冲器210,或者通过加宽缓冲器210的总线,并且提高缓冲器210的动作频率等,来提高缓冲器210的传送频带,因而能够避免因缓冲器210的传送等待导致的各存储器访问处理性能变坏。
(15)在实施方式2中设为,为了实现存储器访问性能的高速化,在与共享数据控制部220接收到的存储器访问请求信号有关的数据作为对存储器的未写入数据被存储到缓冲器210中时,在读出该数据并传送给处理器之后将该数据写入存储器中,或者在使从缓冲器210所读出的数据反映于写入请求信号有关的数据之后,将反映后的数据写入存储器中,进行了说明。
但是,为了简化处理,也可以如下实施。
也就是说,在与来自处理器的读出请求信号有关的数据作为对存储器的未写入数据被存储到缓冲器210中时,也可以在将该未写入数据写入存储器中之后,从存储器读出与读出请求信号有关的数据。
另外,在与来自输入管理部150的写入请求信号有关的数据作为对存储器的未写入数据被存储到缓冲器210中时,也可以同时执行将该未写入数据写入存储器中的处理和将与写入请求信号有关的数据写入缓冲器210中的处理。
(16)在实施方式3中,虽然设为将和其他计算机之间的共享数据全部存储于共享存储器320A中,进行了说明,但是为了使计算机内处理器的存储器访问性能得到进一步提高,对于和其他计算机共享的数据之中只由本计算机更新的数据,也可以存储于固有存储器310A中,只把其他计算机也进行更新的数据存储于共享存储器320A。
其结果为,由于可以同时进行用来写入从其他计算机接收到的共享数据的对共享存储器320A的访问和用来从本机内的处理器写入只由本机更新的共享数据的对固有存储器310A的访问,因而不需要使由本机内的处理器进行的存储器访问等待,可以避免访问性能变坏。
(17)在异例中,虽然说明了在输出管理信息中包含Processor ID的例子,但是也可以取而代之,包含作为任务识别信息的Task ID。也就是说,也可以不按处理器单位,而按任务单位来判断是否是应当传送给其他计算机的共享数据。
(18)虽然设为,异例所涉及的输出管理部针对Processor ID不输出到公共总线101上,进行了说明,但是也可以进行变通以在各输入管理信息中也包含Processor ID,并且各计算机也根据Processor ID来判断是否是本机应共享的数据。
(19)在各实施方式及异例中,虽然设为各计算机的结构相同,进行了说明,但是并不限定于此。例如,各计算机内的处理器个数既可以不同,并且各计算机具备的处理器个数也可以是1个。这种情况下,不需要协调部。也就是说,在排列多台结构为对1个处理器分配1个专用存储器的计算机时,也能够和各实施方式及异例中所说明的方式相同加以使用。
另外,处理器也可以是一部分或者全部由DSP(Digital SignalProcessor)、加速器(布线逻辑)等的非处理器构成的处理器。
(20)在各实施方式及异例中所说明的各计算机的各功能块典型的是作为LSI(Large Scale Integration)来实现,该LSI是一种集成电路。它们既可以分别进行单芯片化,也可以进行单芯片化使之包含一部分或者全部。
另外,能够使各计算机成为由分别集成于1个半导体上的LSI来构成的设备,在多个LSI间,还作为进行数据共享的数据共享机构来适应。
在此,虽然设为LSI,但是也有时根据集成度的不同,称呼为IC、系统LSI、超大规模LSI和特大LSI。
另外,集成电路化的技术并不限于LSI,也可以采用专用电路或者公共处理器来实现。也可以在LSI制造后,利用可编程的FPGA(FieldProgrammable Gate Array)或可重新构成LSI内部的电路单元连接和设定的可重构处理器。
再者,如果因半导体技术的进步或者派生的其他技术,出现了替代LSI的集成电路化技术,则当然也可以使用该技术,进行功能块的集成化。生物技术的应用等存在可能性。
(21)在各实施方式及异例中,虽然设为各存储器在各计算机的外部,进行了图示,但是存储器也可以在各计算机的内部。另外,如上所述,作为LSI的结构单位,存在各种各样的形式,而在各个实施方式中,各计算机的存储器也可以存在于被构成的LSI内部、外部任一侧,再者,即便是混合的形式也可以使用。
(22)在各实施方式及异例中,虽然设为公共总线协调部102独立存在于各计算机的外部,进行了说明,但是也可以在全部或者一部分的计算机内部。
(23)在各实施方式及异例中,虽然设为输出管理部及输入管理部是电路,进行了说明,但是例如既可以通过由各计算机中包含的1个处理器执行指定的程序,来实现输出管理部及输入管理部的功能,也可以由单个的处理器实现输出管理部和输入管理部的功能。
(24)本发明所涉及的处理系统具备的各处理装置相当于各实施方式及异例所涉及的各计算机及各存储器。
另外,本发明所涉及的处理装置中的共享数据存储机构相当于各实施方式及异例所涉及的存储器或共享存储器,输出机构、输入机构及管理信息存储机构相当于输出管理部及输入管理部,共享数据访问机构相当于选择部及存储器控制部,缓冲存储器相当于缓冲器,访问控制机构相当于共享数据控制部及存储器控制部,固有数据存储机构相当于固有存储器,数据访问机构相当于存储器选择控制部、固有存储器控制部及共享存储器控制部,第1存储器相当于固有存储器,第2存储器相当于共享存储器,存储器访问机构相当于存储器选择控制部、固有存储器控制部、共享数据控制部及共享存储器控制部。
产业上的可利用性
本发明可以为了在所谓松耦合多处理器系统中的处理器间共享数据,加以利用。

Claims (15)

1、一种处理装置,在和多个外部处理装置之间共享并处理数据,其特征为,
具备:
处理器;
共享数据存储机构,存储和1个以上的外部处理装置共享的1个以上的数据块;
输出机构,在上述处理器对上述共享数据存储机构的访问请求是写入请求时,输出存储在下述存储区域中的数据块的块识别信息和与写入请求有关的数据,该存储区域包含应当存储与该写入请求有关的数据的区域;以及
输入机构,根据由外部处理装置输出的块识别信息,判定由该外部处理装置输出的数据是否是本装置应共享的数据,在进行了肯定的判定时,使该数据存储于上述共享数据存储机构中,在进行了否定的判定时,不使该数据存储于上述共享数据存储机构中。
2、如权利要求1所述的处理装置,其特征为,
上述处理装置还具备管理信息存储机构,该管理信息存储机构按存储在上述共享数据存储机构中的每个数据块,使块识别信息和表示该数据块的存储区域的地址信息相对应地存储;
在上述处理器对上述共享数据存储机构的访问请求是对上述管理信息存储机构存储的各地址信息所示的存储区域中的某一个存储区域的写入请求时,上述输出机构进行上述输出;
在和由外部处理装置输出的块识别信息一致的块识别信息存储在上述管理信息存储机构中时,上述输入机构进行肯定的判定,使由外部处理装置输出的数据存储在和该块识别信息建立了对应的地址信息所示的存储区域中。
3、如权利要求2所述的处理装置,其特征为,
上述管理信息存储机构还按存储在上述共享数据存储机构中的数据块中的、由外部处理装置更新的每个数据块,使作为该数据块的输出源的外部处理装置的装置识别信息相对应地存储;
上述输出机构在上述输出时,还输出本装置的装置识别信息;
只有在和由外部处理装置输出的装置识别信息及块识别信息一致的装置识别信息及块识别信息相对应地存储在上述管理信息存储机构中时,上述输入机构才进行上述肯定的判定。
4、如权利要求2所述的处理装置,其特征为,
上述处理装置具备共享数据访问机构,该共享数据访问机构根据访问请求,对上述共享数据存储机构进行访问;
每当有上述处理器对上述共享数据存储机构的访问请求,上述输出机构都将该访问请求传送给上述共享数据访问机构;
在进行了肯定的判定时,上述输入机构将下述访问请求传送给上述共享数据访问机构,该访问请求是在和该判定有关的块识别信息建立了对应的地址信息所示的存储区域中,写入由外部处理装置输出的数据的访问请求;
在从上述输入机构接收到访问请求的情况下,也从上述输出机构接收到访问请求时,上述共享数据访问机构进行基于比来自该输出机构的访问请求更为优先的、来自该输入机构的访问请求的访问。
5、如权利要求2所述的处理装置,其特征为,
存储在上述管理信息存储机构中的各信息通过由上述处理器执行预定的程序来更新。
6、如权利要求1所述的处理装置,其特征为,
上述处理装置,还具备:
缓冲存储器;以及
访问控制机构,根据访问请求,对上述共享数据存储机构或上述缓冲存储器进行访问;
每当有上述处理器对上述共享数据存储机构的访问请求,上述输出机构都将该访问请求传送给上述访问控制机构;
在进行了肯定的判定时,上述输入机构将下述访问请求传送给上述访问控制机构,该访问请求用来在和该判定有关的块识别信息建立了对应的地址信息所示的存储区域中,写入由外部处理装置输出的数据;
在从上述输入机构接收到访问请求的情况下,也从上述输出机构接收到访问请求时,上述访问控制机构根据来自该输入机构的访问请求,使与该访问请求有关的数据存储于上述缓冲存储器中,使存储在该缓冲存储器中的数据,在未接收到访问请求时反映于上述共享数据存储机构中。
7、如权利要求6所述的处理装置,其特征为,
在接收到访问请求时,上述访问控制机构按照对于与该访问请求有关的数据的上述共享数据存储机构上的存储区域是否和对于已经存储在上述缓冲存储器中的数据的该共享数据存储机构上的存储区域一致,对上述共享数据存储机构和上述缓冲存储器中的某一个,进行基于该访问请求的访问。
8、如权利要求7所述的处理装置,其特征为,
在基于接收到的访问请求的、对上述缓冲存储器的访问完成之后,上述访问控制机构也使该访问后的数据反映于上述共享数据存储机构中。
9、如权利要求1所述的处理装置,其特征为,
上述处理装置,还具备:
固有数据存储机构,存储不需要和外部处理装置共享的1个以上的数据块;以及
数据访问机构,根据访问请求,对上述共享数据存储机构或上述固有数据存储机构进行访问;
每当有上述处理器的访问请求,上述输出机构都将该访问请求传送给上述数据访问机构;
在进行了肯定的判定时,上述输入机构将下述访问请求传送给上述数据访问机构,该访问请求是用来在和该判定有关的块识别信息建立了对应的地址信息所示的存储区域中,写入由外部处理装置输出的数据;
上述数据访问机构能够对上述共享数据存储机构和固有数据存储机构同时进行访问,
在从上述输入机构接收到访问请求时,也从上述输出机构接收到访问请求的情况下,与来自该输出机构的访问请求有关的数据的存储区域是上述固有数据存储机构上的存储区域时,上述数据访问机构对该固有数据存储机构进行基于该访问请求的访问,与此同时,对上述共享数据存储机构进行基于来自上述输入机构的访问请求的访问。
10、如权利要求1所述的处理装置,其特征为,
上述共享数据存储机构,包含:
第1存储器,存储和1个以上的外部处理装置共享的数据块之中,只由本装置更新的1个以上的数据块;以及
第2存储器,存储只由上述本装置更新的1个以上的数据块之外的和外部处理装置共享的1个以上的数据块;
上述处理装置还具备存储器访问机构,该存储器访问机构根据访问请求,对上述第1存储器或上述第2存储器进行访问;
每当有上述处理器的访问请求,上述输出机构都将该访问请求传送给上述存储器访问机构;
在进行了肯定的判定时,上述输入机构将下述访问请求传送给上述存储器访问机构,该访问请求用来在和该判定有关的块识别信息建立了对应的地址信息所示的存储区域中,写入由外部处理装置输出的数据;
上述存储器访问机构能够对上述第1存储器和第2存储器同时进行访问,
在从上述输入机构接收到访问请求时,也从上述输出机构接收到访问请求的情况下,与来自该输出机构的访问请求有关的数据的存储区域是上述第1存储器上的存储区域时,上述存储器访问机构对该第1存储器进行基于该访问请求的访问,与此同时,对上述第2存储器进行基于来自上述输入机构的访问请求的访问。
11、如权利要求10所述的处理装置,其特征为,
上述处理装置还具备缓冲存储器,该缓冲存储器存储从外部处理装置输出的数据;
在接收到对上述第2存储器上的存储区域的访问请求时,上述存储器访问机构按照该存储区域是否和对于已经存储在上述缓冲存储器中的数据的上述第2存储器上的存储区域一致,对上述第2存储器和上述缓冲存储器中的某一个进行基于该访问请求的访问。
12、一种处理系统,包含为了共享数据而经由公共总线相互连接的多个处理装置,其特征为,
各处理装置,具备:
处理器;
共享数据存储机构,存储和1个以上的其他处理装置共享的1个以上的数据块;
输出机构,在上述处理器对上述共享数据存储机构的访问请求是写入请求时,将存储与该写入请求有关的数据的数据块的块识别信息和与写入请求有关的数据,输出到上述公共总线上;以及
输入机构,根据由其他处理装置输出到上述公共总线上的块识别信息,来判定由该其他处理装置输出到该公共总线上的数据是否是本装置应共享的数据,在进行了肯定的判定时,使该数据存储于上述共享数据存储机构中。
13、如权利要求12所述的处理系统,其特征为,
各处理装置还具备管理信息存储机构,该管理信息存储机构按存储在上述共享数据存储机构中的每个数据块,使作为该数据块的输出源的处理装置的装置识别信息、块识别信息和表示该数据块的存储区域的地址信息相对应地存储;
在上述处理器对上述共享数据存储机构的访问请求是对上述管理信息存储机构存储的各地址信息所示的存储区域中的某一个的写入请求时,上述输出机构进行上述输出,并且将和该输出有关的块识别信息相对应地存储的装置识别信息输出到上述公共总线上;
在和由其他处理装置输出的装置识别信息及块识别信息一致的装置识别信息及块识别信息相对应地存储在上述管理信息存储机构中时,上述输入机构进行肯定的判定,使由其他处理装置输出的数据存储在和该块识别信息建立了对应的地址信息所示的存储区域中;
任一个处理装置中的上述处理器通过执行预定的程序,生成存储于各管理信息存储机构中的各信息,并存储于各处理装置。
14、一种处理装置中的数据共享处理方法,该处理装置在和多个外部处理装置之间共享并处理数据,其特征为,
上述处理装置,具备:
处理器;以及
共享数据存储机构,存储和1个以上的外部处理装置共享的1个以上的数据块;
上述数据共享处理方法,包含:
输出步骤,在上述处理器对上述共享数据存储机构的访问请求是写入请求时,输出存储在下述存储区域中的数据块的块识别信息和与写入请求有关的数据,该存储区域包含应当存储与该写入请求有关的数据的区域;以及
输入步骤,根据由外部处理装置输出的块识别信息,来判定由该外部处理装置输出的数据是否是本装置应共享的数据,在进行了肯定的判定时,使该数据存储于上述共享数据存储机构中,在进行了否定的判定时,不使该数据存储于上述共享数据存储机构中。
15、一种数据共享处理用集成电路,在和多个外部处理装置之间共享并处理数据,其特征为,
具备:
处理器;
共享数据存储机构,存储和1个以上的外部处理装置共享的1个以上的数据块;
输出机构,在上述处理器对上述共享数据存储机构的访问请求是写入请求时,输出存储在下述存储区域中的数据块的块识别信息和与写入请求有关的数据,该存储区域包含应当存储与该写入请求有关的数据的区域;以及
输入机构,根据由外部处理装置输出的块识别信息,来判定由该外部处理装置输出的数据是否是本装置应共享的数据,在进行了肯定的判定时,使该数据存储于上述共享数据存储机构中,在进行了否定的判定时,不使该数据存储于上述共享数据存储机构中。
CN2009800003596A 2008-03-19 2009-03-18 处理装置、处理系统、数据共享处理方法及数据共享处理用集成电路 Expired - Fee Related CN101681345B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP070998/2008 2008-03-19
JP2008070998 2008-03-19
PCT/JP2009/001205 WO2009116279A1 (ja) 2008-03-19 2009-03-18 処理装置、処理システム、データ共有処理方法、及びデータ共有処理用集積回路

Publications (2)

Publication Number Publication Date
CN101681345A true CN101681345A (zh) 2010-03-24
CN101681345B CN101681345B (zh) 2013-09-11

Family

ID=41090694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009800003596A Expired - Fee Related CN101681345B (zh) 2008-03-19 2009-03-18 处理装置、处理系统、数据共享处理方法及数据共享处理用集成电路

Country Status (4)

Country Link
US (1) US9176891B2 (zh)
JP (1) JP5307796B2 (zh)
CN (1) CN101681345B (zh)
WO (1) WO2009116279A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110741359A (zh) * 2017-06-08 2020-01-31 高通股份有限公司 改变共享总线上集成电路的从属标识的系统和方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102804150B (zh) 2011-03-16 2016-01-20 松下电器产业株式会社 数据处理装置、数据处理方法及数据共享系统
KR101949417B1 (ko) * 2011-12-02 2019-02-20 삼성전자주식회사 프로세서, 명령어 생성 장치 및 방법
US10268605B1 (en) * 2014-04-30 2019-04-23 Altera Corporation Hybrid architecture for signal processing and signal processing accelerator

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US281255A (en) * 1883-07-17 Folding or cabinet bath-tub
US621059A (en) * 1899-03-14 fuller
US3127248A (en) * 1964-03-31 Catalyst tube assembly
CH624817B (de) * 1979-09-04 Balzers Hochvakuum Verfahren zur herstellung goldfarbener ueberzuege.
JPS61122771A (ja) 1984-11-20 1986-06-10 Nec Corp マルチマイクロプロセサシステム
JPS621059A (ja) 1985-06-26 1987-01-07 Nippon Signal Co Ltd:The マルチ・マイクロプロセツサシステムにおける共有メモリアクセス法
JP2813182B2 (ja) 1988-09-19 1998-10-22 株式会社日立製作所 マルチプロセッサコンピュータ複合装置
JPH03127248A (ja) 1989-10-13 1991-05-30 Toshiba Corp 複合計算機システム
JPH04333962A (ja) 1991-05-10 1992-11-20 Nec Corp メモリ制御方式
JPH0619785A (ja) * 1992-03-27 1994-01-28 Matsushita Electric Ind Co Ltd 分散共有仮想メモリーとその構成方法
US5950228A (en) * 1997-02-03 1999-09-07 Digital Equipment Corporation Variable-grained memory sharing for clusters of symmetric multi-processors using private and shared state tables
US6105122A (en) * 1998-02-06 2000-08-15 Ncr Corporation I/O protocol for highly configurable multi-node processing system
JP3884990B2 (ja) * 2002-04-26 2007-02-21 富士通株式会社 マルチプロセッサ装置
CN1329857C (zh) * 2003-10-23 2007-08-01 华为技术有限公司 多处理单元环境下统一输入输出方法
JP3897028B2 (ja) 2004-03-19 2007-03-22 日本電気株式会社 情報処理システム、共有データ処理方法、共有データ処理プログラム
US20050273571A1 (en) * 2004-06-02 2005-12-08 Lyon Thomas L Distributed virtual multiprocessor
JP4765003B2 (ja) 2006-03-15 2011-09-07 富士電機株式会社 マルチプロセッサシステム
JP4490397B2 (ja) 2006-07-03 2010-06-23 日本電信電話株式会社 分散共有メモリを用いた同報通信方法、同報通信装置、および、同報通信プログラム
JP2008225906A (ja) 2007-03-13 2008-09-25 Toyota Motor Corp 情報処理システム及びその情報処理システムを構成するコア識別コントローラ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110741359A (zh) * 2017-06-08 2020-01-31 高通股份有限公司 改变共享总线上集成电路的从属标识的系统和方法
CN110741359B (zh) * 2017-06-08 2021-03-26 高通股份有限公司 改变共享总线上集成电路的从属标识的系统和方法

Also Published As

Publication number Publication date
CN101681345B (zh) 2013-09-11
US9176891B2 (en) 2015-11-03
WO2009116279A1 (ja) 2009-09-24
US20100077156A1 (en) 2010-03-25
JP5307796B2 (ja) 2013-10-02
JPWO2009116279A1 (ja) 2011-07-21

Similar Documents

Publication Publication Date Title
JP6047747B2 (ja) 制御タイプの実行モードとデータフロータイプの実行モードとの組み合わせによりタスクを並列に実行可能な複数の処理ユニットを有するシステム
CN105068953B (zh) 用于对等高速外围组件互联存储传输的系统和方法
CN101099140B (zh) 用于混合dma队列和dma表的方法和装置
CN101667284B (zh) 用于中央处理单元和图形处理单元之间通信的设备和方法
CN102105871B (zh) 虚拟处理设备的中断控制
TWI522792B (zh) 用以產生要求之設備、用於記憶體要求之方法、及運算系統
CN100555223C (zh) 在计算系统中管理驱动器的系统和方法
US7818503B2 (en) Method and apparatus for memory utilization
TW460781B (en) A data cache system
JP5137434B2 (ja) データ処理装置、分散処理システム、データ処理方法、及びデータ処理プログラム
US20090327610A1 (en) Method and System for Conducting Intensive Multitask and Multiflow Calculation in Real-Time
CN105138473B (zh) 管理高速缓冲存储器的系统和方法
CN101681345B (zh) 处理装置、处理系统、数据共享处理方法及数据共享处理用集成电路
CN107078971A (zh) 组合保证吞吐量和尽力而为的片上网络
CN101515261A (zh) 集成电路内设备之间的数据传输
TW201344435A (zh) 用於在階層式快取設計之快取記憶體間有效通訊的方法及設備
CN1262934C (zh) 具有不同资源访问方案的系统集成代理程序
CN115437691B (zh) 一种针对risc-v矢量与浮点寄存器的物理寄存器堆分配装置
KR20090052111A (ko) 범용 프로세서 레퍼런스 보드와 도터 보드와의 메모리공유제어장치 및 그 방법
CN101777030B (zh) 数据传输系统的验证装置和方法
CN105229622B (zh) 应用和硬件设备之间的通信系统和方法
US20220300421A1 (en) Memory Sharing
CN114430821A (zh) 用于在处理器中执行的指令流中的分支集合活动检测的动态集合活动分支训练
KR101081881B1 (ko) 프로세서 간의 통신을 위한 인터페이스 장치 및 통신 시스템
KR100865102B1 (ko) 멀티프로세서 시스템, 시스템 보드 및 캐시 대체 요구 처리방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130911

Termination date: 20200318

CF01 Termination of patent right due to non-payment of annual fee