JP2010200034A - Information processor, control method thereof, and computer program - Google Patents

Information processor, control method thereof, and computer program Download PDF

Info

Publication number
JP2010200034A
JP2010200034A JP2009043148A JP2009043148A JP2010200034A JP 2010200034 A JP2010200034 A JP 2010200034A JP 2009043148 A JP2009043148 A JP 2009043148A JP 2009043148 A JP2009043148 A JP 2009043148A JP 2010200034 A JP2010200034 A JP 2010200034A
Authority
JP
Japan
Prior art keywords
packet
data
module
flag
unit
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
JP2009043148A
Other languages
Japanese (ja)
Other versions
JP5014362B2 (en
JP2010200034A5 (en
Inventor
Michiaki Takasaka
三千聡 高坂
Takashi Ishikawa
尚 石川
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.)
Canon Inc
Original Assignee
Canon Inc
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
Priority to JP2009043148A priority Critical patent/JP5014362B2/en
Application filed by Canon Inc filed Critical Canon Inc
Priority to EP16150623.3A priority patent/EP3037978A3/en
Priority to CN201080008604.0A priority patent/CN102326158B/en
Priority to PCT/JP2010/052805 priority patent/WO2010098330A1/en
Priority to CN201310409255.9A priority patent/CN103441915B/en
Priority to EP10709293.4A priority patent/EP2401682B1/en
Priority to US13/141,382 priority patent/US8761013B2/en
Priority to KR1020117021448A priority patent/KR101262751B1/en
Publication of JP2010200034A publication Critical patent/JP2010200034A/en
Publication of JP2010200034A5 publication Critical patent/JP2010200034A5/ja
Application granted granted Critical
Publication of JP5014362B2 publication Critical patent/JP5014362B2/en
Priority to US14/269,301 priority patent/US9237097B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/72Routing based on the source address
    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • 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
    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Abstract

<P>PROBLEM TO BE SOLVED: To attain improvement in data transfer efficiency by deleting undesired packets from a ring bus in an information processing system where a plurality of modules are connected via the ring bus. <P>SOLUTION: The present invention relates to an information processing system where a plurality of modules for performing data processing are connected via a ring bus. In particular, the present invention relates to a ring bus control technology for efficiently performing data transfer by monitoring a flag of a packet and excluding an unwanted packet from the ring bus. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は情報処理装置及びその制御方法、コンピュータプログラムに関する。   The present invention relates to an information processing apparatus, a control method thereof, and a computer program.

従来、リング状通信ネットワーク(回路網)は種々のものが提案され、広く知られている。例えば、LAN(ローカルエリアネットワーク)の規格にトークンリングなるものがある(非特許文献1参照)。   Conventionally, various ring communication networks (circuit networks) have been proposed and widely known. For example, a LAN (local area network) standard is a token ring (see Non-Patent Document 1).

以下、トークンリング方式におけるデータ転送に関して簡単に説明する。データを送信したいノードはまずリングバスを周回しているフリートークンと呼ばれるどのノードも占有していないトークンを獲得する。そして、フリートークンを獲得したノードはトークンに宛先識別子や処理データをコピーしてリングバスに送出し宛先モジュールに送信する。上記のようにトークンリング方式ではトークン(Token)というフレームをリングバス上に配置されたノードからノードへ、さらに次のノードへと次々に転送して目的の端末に送信する。   Hereinafter, data transfer in the token ring system will be briefly described. A node that wants to transmit data first obtains a token that is not occupied by any node called a free token circulating around the ring bus. Then, the node that has acquired the free token copies the destination identifier and processing data to the token, sends them to the ring bus, and sends them to the destination module. As described above, in the token ring system, a frame called a token (Token) is transferred from node to node arranged on the ring bus, and further to the next node, and transmitted to the target terminal.

一方、受信側ノードは自らを宛先とするトークンを受信した場合は、処理データをコピーして受信が完了したことを示す受信完了フラグを設定し受信したトークンを再度リングバスに投入する。これは、送信元ノードに対してデータ転送が成功したことを伝えるために行うのであり、送信元ノードは前記受信完了フラグが設定されていないトークンが戻ってきた場合は同じトークンを再送する。このようにトークンの受信完了フラグを設定し送信元ノードに返送することでデータ転送を実現している。   On the other hand, when the receiving node receives a token addressed to itself, the receiving node copies the processing data, sets a reception completion flag indicating that the reception is completed, and inputs the received token to the ring bus again. This is performed to notify the transmission source node that the data transfer has been successful, and the transmission source node retransmits the same token when a token for which the reception completion flag has not been set returns. In this way, data transfer is realized by setting the token reception completion flag and returning it to the transmission source node.

ISO/IEC 8802-5:1998ISO / IEC 8802-5: 1998

データ処理を行う複数のモジュールがリングバスで接続された情報処理システムにおいて、上記説明したようなトークンリングバス方式を適用する場合、受信成功の成否に関わらずトークンを送信元に返送しなければならない。つまり、受信が成功していたとしても返送トークンを送信元が開放するまで誰もデータをトークンにコピーできないので効率的ではない。   In an information processing system in which a plurality of modules that perform data processing are connected by a ring bus, when the token ring bus method as described above is applied, the token must be returned to the transmission source regardless of the success or failure of reception. . In other words, even if the reception is successful, it is not efficient because no one can copy data to the token until the sender releases the return token.

そこで、本発明ではデータ処理を行う複数のモジュールがリングバスで接続された情報処理システムにおいて、効率よくパケットの転送を行うための技術を提供することを目的とする。   Therefore, an object of the present invention is to provide a technique for efficiently transferring packets in an information processing system in which a plurality of modules that perform data processing are connected by a ring bus.

上記課題を解決するための本発明は、リングバスを介して相互接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後に隣接する他方のモジュールへ送信するように構成された情報処理装置であって、各モジュールは、他のモジュールから受信したパケットを識別して、自モジュールにおいて処理すべきパケットであるか否かを判定するパケット識別手段と、前記パケット識別手段が自モジュールにおいて処理すべきパケットであると判定した場合に、当該パケットから処理対象のデータを抽出するパケット受信手段と、抽出された前記データを処理する処理手段と、前記処理手段が前記データを処理する場合に、前記受信したパケットにおけるデータの有効性を表す第1のフラグを、該データが無効であることを示す値に設定するパケット変更手段と、パケットを前記他方のモジュールに送信する送信手段とを備える。   The present invention for solving the above-described problem has a plurality of modules interconnected via a ring bus, each of the plurality of modules receiving a packet storing data from one adjacent module, Information processing apparatus configured to transmit to the other adjacent module after performing the above process, each module identifying a packet received from another module and a packet to be processed in its own module A packet identification unit that determines whether or not there is a packet reception unit that extracts data to be processed from the packet when the packet identification unit determines that the packet is to be processed in the module; A processing means for processing the data; and the received packet when the processing means processes the data. Comprising a first flag representing the validity of the data, a packet changing means for setting to a value indicating that the data is invalid, and transmission means for transmitting the packet to the other module in.

本発明によれば、データ処理を行う複数のモジュールがリングバスで接続されたデータ処理システムにおいて、受信モジュールでパケットを無効にするので、効率よくパケットの転送を行うための技術を提供することができる。   According to the present invention, in a data processing system in which a plurality of modules that perform data processing are connected by a ring bus, a packet is invalidated by a receiving module, and therefore a technique for efficiently transferring a packet can be provided. it can.

データ処理システムの構成の一例を示す図。The figure which shows an example of a structure of a data processing system. データ処理部104の構成例を示す図。The figure which shows the structural example of the data process part. 実施形態1のモジュールの構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a module according to the first embodiment. パケットのフォーマットの一例を示す図。The figure which shows an example of the format of a packet. 実施形態1の処理データ送信部303及び受信部311での処理例のフローチャート。5 is a flowchart of a processing example in a processing data transmission unit 303 and a reception unit 311 according to the first embodiment. 処理データ受信部305及び送信部312での処理例のフローチャート。10 is a flowchart of a processing example in a processing data reception unit 305 and a transmission unit 312. 実施形態2のモジュールの構成例を示す図。FIG. 6 is a diagram illustrating a configuration example of a module according to a second embodiment. 実施形態2の処理データ送信部303及び受信部311での処理例のフローチャート。10 is a flowchart of a processing example in a processing data transmission unit 303 and a reception unit 311 according to the second embodiment.

以下に本願発明の実施形態を示す。本実施形態は、データ処理を行う複数のモジュールがリングバスで接続されたデータ処理システムに関する。
もちろん以下の実施形態は、本願発明の技術分野における当業者による実施を容易にするために開示を提供するものであり、特許請求の範囲によって確定される本願発明の技術的範囲に含まれるほんの一部の実施形態にすぎない。従って、本願明細書に直接的に記載されていない実施形態であっても、技術思想が共通する限り本願発明の技術的範囲に包含されることは当業者にとって自明であろう。
Embodiments of the present invention are shown below. The present embodiment relates to a data processing system in which a plurality of modules that perform data processing are connected by a ring bus.
Of course, the following embodiments are provided for facilitating implementation by those skilled in the art of the present invention, and are only included in the technical scope of the present invention defined by the claims. It is only an embodiment of the part. Therefore, it will be apparent to those skilled in the art that even embodiments that are not directly described in the present specification are included in the technical scope of the present invention as long as they share the same technical idea.

なお、便宜上複数の実施形態を記載するが、これらは個別に発明として成立するだけでなく、もちろん、複数の実施形態を適宜組み合わせることでも発明が成立することは、当業者であれば容易に理解できよう。   Note that although a plurality of embodiments are described for convenience, those skilled in the art can easily understand that these are not only individually established as inventions, but of course that the invention can also be realized by appropriately combining a plurality of embodiments. I can do it.

<実施形態1>
本実施形態における情報処理システムの構成について図1を用いて説明する。CPU101は、データ処理システムの全体動作を制御する機能を有する制御部である。RAM102は、CPU101で処理される入力データや、処理後の出力データ、およびデータ処理部104への設定パラメータデータなどを格納する読み書き可能なメモリである。ROM103は、CPU101の処理手順や、設定パラメータ等の定数などを保持可能な読み出し可能なメモリである。データ処理部104は、本発明で開示する構成ならびにモジュールを具備するデータ処理部である。各モジュールはリングバスで接続されている。データ処理部104はプログラム可能なカスタムICチップで実現してもよい。当該チップは、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等を含む。
<Embodiment 1>
The configuration of the information processing system in this embodiment will be described with reference to FIG. The CPU 101 is a control unit having a function of controlling the overall operation of the data processing system. The RAM 102 is a readable / writable memory that stores input data processed by the CPU 101, output data after processing, setting parameter data to the data processing unit 104, and the like. The ROM 103 is a readable memory that can hold processing procedures of the CPU 101 and constants such as setting parameters. The data processing unit 104 is a data processing unit including the configuration and modules disclosed in the present invention. Each module is connected by a ring bus. The data processing unit 104 may be realized by a programmable custom IC chip. The chip includes, for example, an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).

ここで図2を参照して、データ処理部104の構成を説明する。データ処理部104は複数個のモジュール201から204を有する。リングバス205は、モジュール間でパケットを転送するためのバスである。モジュール201から204はリングバス205を介して接続されている。各モジュールはデータパケットを隣接する一方のモジュールから受信し、所定の処理を行った後に隣接する他方のモジュールへ送信するように構成される。各モジュールが送受信するパケットはリングバスを一方向に移動する。以降の説明では単方向にデータ(又はパケット)を周回させるリング状のバスを単にリングバスと称す。   Here, the configuration of the data processing unit 104 will be described with reference to FIG. The data processing unit 104 includes a plurality of modules 201 to 204. The ring bus 205 is a bus for transferring packets between modules. Modules 201 to 204 are connected via a ring bus 205. Each module is configured to receive a data packet from one adjacent module, perform a predetermined process, and then transmit the data packet to the other adjacent module. Packets transmitted and received by each module move in one direction on the ring bus. In the following description, a ring-shaped bus that circulates data (or packets) in a single direction is simply referred to as a ring bus.

入出力バッファ206は、データの入出力を行うためのバッファである。本実施形態のモジュール201乃至204は、それぞれを識別するためのデータ処理部識別情報を有しているところ、図2では簡単のために「ID」と記述している。以下の発明の実施形態の説明においても「ID」と記述する。なお、IDが1のモジュール201は、入出力バッファ206と接続されて、データの入出力を管理する。   The input / output buffer 206 is a buffer for inputting / outputting data. The modules 201 to 204 according to the present embodiment have data processing unit identification information for identifying each of them. In FIG. 2, “ID” is described for simplicity. In the following description of the embodiment of the invention, “ID” is also described. The module 201 having an ID of 1 is connected to the input / output buffer 206 and manages data input / output.

次に、図3を参照して、データ処理部内の各モジュール201乃至204の構成を説明する。図3において、パケット識別部301は、他のモジュールから到来したパケットを取り込むか否かを判断する。パケット識別部301は自らが待ち受けているIDと一致する送信元IDを保持するパケットを受信した時にパケットをパケット受信部302に出力する。   Next, the configuration of each of the modules 201 to 204 in the data processing unit will be described with reference to FIG. In FIG. 3, a packet identification unit 301 determines whether or not to take in a packet that has arrived from another module. The packet identification unit 301 outputs a packet to the packet reception unit 302 when it receives a packet having a transmission source ID that matches the ID that it is waiting for.

パケット受信部302はパケットの受信処理を行う。処理データ送信部303は、処理部304に処理データを送信する。処理部304は実際のデータ処理を行う。処理データ受信部305は、処理部304からの処理後データを受信する。パケット生成部306は、処理部304から受信した処理後データとパケット変更部308からの出力をもとにパケットを生成する。   The packet receiving unit 302 performs packet reception processing. The processing data transmission unit 303 transmits processing data to the processing unit 304. The processing unit 304 performs actual data processing. The processing data receiving unit 305 receives post-processing data from the processing unit 304. The packet generation unit 306 generates a packet based on the post-processing data received from the processing unit 304 and the output from the packet changing unit 308.

パケット送信部307はパケットをリングバスに送出する。パケット変更部308は、パケット受信部302からの指示に応じて、図4を参照して後述するパケットのデータ有効フラグ401や保留フラグ404の値を変更する。セレクタ309は、パケット送信部307からのパケットとパケット変更部308からのパケットのいずれかをパケット送信部307からの指示に基づいて選択する。セレクタ309はパケット送信部307からの指示がなければパケット変更部308からの出力を選択してそれを出力とする。バッファ310はパケットを次から次へと転送するためのバッファである。   The packet transmission unit 307 sends the packet to the ring bus. The packet changing unit 308 changes the values of the data valid flag 401 and the hold flag 404 of the packet, which will be described later with reference to FIG. 4, in response to an instruction from the packet receiving unit 302. The selector 309 selects either the packet from the packet transmission unit 307 or the packet from the packet change unit 308 based on an instruction from the packet transmission unit 307. If there is no instruction from the packet transmitting unit 307, the selector 309 selects the output from the packet changing unit 308 and outputs it. The buffer 310 is a buffer for transferring packets from one to the next.

上記の構成において、モジュール201、202、203及び204が処理部304と通信部313とを有している。そして、通信部313が処理データ送信部303、処理データ受信部305、セレクタ309、バッファ310、受信部311、及び、送信部312を有している。さらに、受信部311はパケット識別部301、パケット受信部302及びパケット変更部308を有している。また、送信部312がパケット生成部306とパケット送信部307とを有している。   In the above configuration, the modules 201, 202, 203, and 204 have the processing unit 304 and the communication unit 313. The communication unit 313 includes a processing data transmission unit 303, a processing data reception unit 305, a selector 309, a buffer 310, a reception unit 311, and a transmission unit 312. Further, the reception unit 311 includes a packet identification unit 301, a packet reception unit 302, and a packet change unit 308. The transmission unit 312 includes a packet generation unit 306 and a packet transmission unit 307.

本実施形態では以下の説明において、処理部304が1つの入力データを処理することで、1つの出力データを出力する場合を用いて説明する。その際、処理部304に対して入力データが入力されてから出力データが得られるまでの間は、更なる入力データを入力することはできないものとする。そのため、処理部304の状態によりパケット受信部302はパケットの受信を保留しなければならないこともある。   In this embodiment, in the following description, a case where the processing unit 304 processes one input data and outputs one output data will be described. At this time, it is assumed that no further input data can be input until the output data is obtained after the input data is input to the processing unit 304. Therefore, depending on the state of the processing unit 304, the packet receiving unit 302 may have to suspend reception of the packet.

次にモジュール間でデータを送受信するために必要なパケットのフォーマットを図4に示す。データ有効フラグ401は、パケット中のデータが有効性を判断するために利用される第1のフラグ情報である。例えば、データ有効フラグ401が「1」であればデータは有効であり、「0」であればデータは無効であるとする。   Next, FIG. 4 shows the format of a packet necessary for transmitting and receiving data between modules. The data valid flag 401 is first flag information that is used to determine whether data in a packet is valid. For example, if the data valid flag 401 is “1”, the data is valid, and if it is “0”, the data is invalid.

送信元ID402は、パケットを送信したモジュールの識別子を格納する送信元の識別子である。データ格納領域403は処理データ本体を格納する領域である。保留フラグ404は、モジュールがパケットの処理を保留した際に「1」に設定される第2のフラグ情報である。即ち、保留フラグ404が「1」であればパケット処理が保留されたことを示している。なお、処理の保留は、例えば該当モジュールが受信したものの、処理部304がビジー状態であったためデータを処理できなかった場合に行われる。保留フラグ404は初期値として「0」に設定される。即ち、保留フラグが初期値を有するということは、まだ該パケットを受信対象としているリングバス上のモジュールが処理していないことを意味する。   The transmission source ID 402 is an identifier of the transmission source that stores the identifier of the module that transmitted the packet. The data storage area 403 is an area for storing the processing data body. The hold flag 404 is second flag information set to “1” when the module holds the packet processing. That is, if the hold flag 404 is “1”, it indicates that the packet processing is held. Note that the processing is suspended, for example, when the corresponding module has received, but the data cannot be processed because the processing unit 304 is busy. The hold flag 404 is set to “0” as an initial value. That is, the fact that the hold flag has an initial value means that the module on the ring bus that has received the packet has not yet been processed.

また、各モジュールは待ち受けパケットIDを設定でき、パケット識別部301は、待ち受けパケットIDとリングバスを流れるパケットの送信元ID402とが一致した時にパケットを取り込む。例えば、モジュール1、モジュール4、モジュール2、モジュール3、モジュール1の順でデータパスを構成したい場合を考える。この場合、モジュール1の待ち受けパケットIDを3に、モジュール2の待ち受けパケットIDを4に、モジュール3の待ち受けパケットIDを2に、モジュール4の待ち受けパケットIDを1に設定する。このようにして各モジュールの待ち受けパケットIDをそれぞれ設定することで、データパスを形成することができる。なお、待ち受けパケットIDは、各モジュールについて事前に設定され、その情報はパケット識別部301が記憶するものとする。   Each module can set a standby packet ID, and the packet identification unit 301 captures a packet when the standby packet ID matches the transmission source ID 402 of the packet flowing on the ring bus. For example, consider a case where it is desired to configure a data path in the order of module 1, module 4, module 2, module 3, and module 1. In this case, the standby packet ID of module 1 is set to 3, the standby packet ID of module 2 is set to 4, the standby packet ID of module 3 is set to 2, and the standby packet ID of module 4 is set to 1. By setting the standby packet ID of each module in this way, a data path can be formed. The standby packet ID is set in advance for each module, and the information is stored in the packet identification unit 301.

次に、通信部313におけるデータ受信方法に関して説明する。例えば、図2においてID=1のモジュール1からID=3のモジュール3にデータ転送を行う場合を考える。このとき、モジュール3のパケット識別部301はデータ有効フラグ401が有効となっているパケットを取得し、該パケットの送信元ID402と自らの待ち受けパケットIDとを比較する。もし、両者が等しい場合には、該パケットをパケット受信部302に送信する。   Next, a data reception method in the communication unit 313 will be described. For example, in FIG. 2, consider a case where data is transferred from module 1 with ID = 1 to module 3 with ID = 3. At this time, the packet identification unit 301 of the module 3 acquires a packet for which the data valid flag 401 is valid, and compares the transmission source ID 402 of the packet with its own standby packet ID. If they are equal, the packet is transmitted to the packet receiving unit 302.

処理データ送信部303は、処理部304が処理可能であるかどうかを判定し、処理可能と判定した場合、パケット受信部302は取得したパケットから処理対象データを抽出して処理データ送信部303に送信する。その場合、該パケットはすでに不要であるからパケット受信部302はパケットのデータ有効フラグ401を無効(0)に設定するようにパケット変更部308に指示を出す。   The processing data transmission unit 303 determines whether or not the processing unit 304 can process. If the processing data transmission unit 303 determines that the processing is possible, the packet reception unit 302 extracts the processing target data from the acquired packet and sends it to the processing data transmission unit 303. Send. In that case, since the packet is no longer necessary, the packet receiving unit 302 instructs the packet changing unit 308 to set the data valid flag 401 of the packet to invalid (0).

一方、処理データ送信部303が処理部304は処理不可能であると判定した場合、パケット受信部302はパケットの保留フラグ404を1に設定するようにパケット変更部308に指示を出す。パケット変更部308は、パケット受信部302からの指示に従ってデータ有効フラグ401或いは保留フラグ404を変更して、セレクタ309に送信する。セレクタ309は、パケット変更部308とパケット送信部307からの入力のうちいずれかを選択してバッファ310に送信する。   On the other hand, when the processing data transmission unit 303 determines that the processing unit 304 cannot process, the packet receiving unit 302 instructs the packet changing unit 308 to set the packet hold flag 404 to 1. The packet changing unit 308 changes the data valid flag 401 or the hold flag 404 in accordance with an instruction from the packet receiving unit 302 and transmits it to the selector 309. The selector 309 selects one of the inputs from the packet changing unit 308 and the packet transmitting unit 307 and transmits the selected packet to the buffer 310.

次に、図5を参照して、処理データ送信部303及び受信部311における処理を説明する。まず、ステップS501では、前段に位置するモジュールからパケット識別部301がパケットを取得する。ステップS502では、パケット識別部301がパケットのデータ有効フラグ401が有効(1)か否かを判断する。もし、有効であれば(ステップS502で「YES」)、ステップS503に移行する。一方、有効でなければ(ステップS502で「NO」)、本処理を終了する
続くステップS503では、パケット識別部301がパケットの送信元ID402と、モジュールに設定された待ち受けパケットIDとが等しいか否かを判断する。もし、等しいと判断した場合は(ステップS503において「YES」)、ステップS504に移行する。一方、等しいと判断しなかった場合(ステップS503において「NO」)、本処理を終了する。
Next, processing in the processing data transmission unit 303 and the reception unit 311 will be described with reference to FIG. First, in step S501, the packet identification unit 301 acquires a packet from the module located in the preceding stage. In step S502, the packet identification unit 301 determines whether the data validity flag 401 of the packet is valid (1). If it is valid (“YES” in step S502), the process proceeds to step S503. On the other hand, if it is not valid ("NO" in step S502), this process is terminated. Determine whether. If it is determined that they are equal (“YES” in step S503), the process proceeds to step S504. On the other hand, if it is not determined that they are equal (“NO” in step S503), this process ends.

続くステップS504では、処理データ送信部303が処理部304がデータ受け渡し可能な状態であるかを判断する。データ受け渡し可能な状態であると判断した場合は(ステップS504において「YES」)、ステップS505に移行する。一方、データ受け渡し可能な状態でないと判断した場合(ステップS504において「NO」)、ステップS506に移行する。   In subsequent step S504, the processing data transmission unit 303 determines whether or not the processing unit 304 is in a state where data can be transferred. If it is determined that the data can be transferred ("YES" in step S504), the process proceeds to step S505. On the other hand, if it is determined that the data cannot be delivered ("NO" in step S504), the process proceeds to step S506.

ステップS505では、パケット受信部302がパケットから処理データを抽出して処理データ送信部303に送信し、データが処理データ送信部303から処理部304に渡され、ステップS507に移行する。また、ステップS506では、パケット受信部302がパケットの保留フラグ404を1に設定するようにパケット変更部308に指示する。これにより、保留フラグ404が初期値(0)から(1)に変更される。ステップS507では、パケット受信部302がパケットのデータ有効フラグ401を0に設定するようにパケット変更部308に指示する。   In step S505, the packet reception unit 302 extracts the processing data from the packet and transmits it to the processing data transmission unit 303. The data is transferred from the processing data transmission unit 303 to the processing unit 304, and the process proceeds to step S507. In step S506, the packet receiving unit 302 instructs the packet changing unit 308 to set the packet hold flag 404 to 1. As a result, the hold flag 404 is changed from the initial value (0) to (1). In step S507, the packet receiving unit 302 instructs the packet changing unit 308 to set the data valid flag 401 of the packet to 0.

次に、処理データ受信部305及び送信部312におけるデータ送信手順を説明する。例えば図2においてID=1のモジュール1からID=3のモジュール3にデータ転送を行う場合を考える。このとき、まずモジュール1のパケット生成部306はデータ有効フラグ401が無効(0)となっているパケットをパケット変更部308から取得する。   Next, a data transmission procedure in the processing data reception unit 305 and the transmission unit 312 will be described. For example, in FIG. 2, consider a case where data is transferred from module 1 with ID = 1 to module 3 with ID = 3. At this time, first, the packet generation unit 306 of the module 1 acquires from the packet change unit 308 a packet whose data validity flag 401 is invalid (0).

そして該パケットのデータ格納領域403に処理データ受信部305から得られた送信データを格納し、送信元ID402にモジュール1のIDである1を格納する。また、保留フラグ404を初期値(0)に設定し、データ有効フラグ401を1に設定してパケット送信部307に送信する。パケット送信部307はパケット生成部306から取得したパケットをセレクタ309に出力する。そのとき同時にセレクタ309に対してパケット送信部307からの出力が選択されるように選択信号を出力する。   Then, the transmission data obtained from the processing data receiving unit 305 is stored in the data storage area 403 of the packet, and 1 which is the ID of the module 1 is stored in the transmission source ID 402. Further, the hold flag 404 is set to an initial value (0), the data valid flag 401 is set to 1, and the packet is transmitted to the packet transmission unit 307. The packet transmission unit 307 outputs the packet acquired from the packet generation unit 306 to the selector 309. At the same time, a selection signal is output to the selector 309 so that the output from the packet transmission unit 307 is selected.

また、パケット生成部306はパケットの保留フラグ404を監視する。自らが送出したパケットの保留フラグが1に設定されることなく戻ってきた場合は、データ有効フラグ401を0に設定し、受け取り手がいないパケットがリングバスを占有しないようにする。逆に保留フラグ404が1に設定されていた場合は、そのままパケットをリングバスに送出する。   The packet generator 306 monitors the packet hold flag 404. When the hold flag of the packet sent by itself returns without being set to 1, the data valid flag 401 is set to 0 so that a packet with no recipient does not occupy the ring bus. Conversely, if the hold flag 404 is set to 1, the packet is sent as it is to the ring bus.

次に、図6を参照して、処理データ受信部305及び送信部312における処理を説明する。図6において、ステップS601で、パケット生成部306が受信部311のパケット変更部308からパケットを取得する。ステップS602においてパケット生成部306は、受信したパケットのデータ有効フラグ401が0であるか否かを判断する。データ有効フラグ401が0でないと判断した場合(ステップS602において「NO」)、ステップS603に移行する。一方、データ有効フラグ401が0であると判断した場合(ステップS602において「YES」)、ステップS606に移行する。   Next, processing in the processing data receiving unit 305 and the transmitting unit 312 will be described with reference to FIG. In FIG. 6, in step S <b> 601, the packet generation unit 306 acquires a packet from the packet change unit 308 of the reception unit 311. In step S602, the packet generation unit 306 determines whether the data valid flag 401 of the received packet is 0. When it is determined that the data valid flag 401 is not 0 (“NO” in step S602), the process proceeds to step S603. On the other hand, when it is determined that the data valid flag 401 is 0 (“YES” in step S602), the process proceeds to step S606.

ステップS603では、パケット生成部306がパケットの保留フラグ404が1であるか否かを判断する。もし、1であると判断した場合(ステップS603において「YES」)、処理を終了する。この場合、パケット変更部308からのパケットはセレクタ309及びバッファ310を経て次のモジュールに送信される。また、保留フラグ404が1でない、即ち初期値のままであると判断した場合(ステップS603において「NO」)、ステップS604に移行する。   In step S <b> 603, the packet generation unit 306 determines whether or not the packet hold flag 404 is “1”. If it is determined that the number is 1 (“YES” in step S603), the process ends. In this case, the packet from the packet changing unit 308 is transmitted to the next module via the selector 309 and the buffer 310. If it is determined that the hold flag 404 is not 1, that is, the initial value remains unchanged (“NO” in step S603), the process proceeds to step S604.

ステップS604では、パケット生成部306が、パケットの送信元ID402と自モジュールのIDとが等しいか否かを判断する。もし、等しいと判断した場合(ステップS604において「YES」)、ステップS605に移行する。ステップS605では、パケットのデータ有効フラグ401を0に設定し、ステップS611に移行する。一方、等しくないと判断した場合(ステップS604において「NO」)、本処理を終了する。この場合も、パケット変更部308からのパケットはセレクタ309及びバッファ310を経て次のモジュールに送信される。   In step S604, the packet generation unit 306 determines whether the packet transmission source ID 402 is equal to the ID of the own module. If it is determined that they are equal (“YES” in step S604), the process proceeds to step S605. In step S605, the data valid flag 401 of the packet is set to 0, and the process proceeds to step S611. On the other hand, if it is determined that they are not equal (“NO” in step S604), this process ends. Also in this case, the packet from the packet changing unit 308 is transmitted to the next module via the selector 309 and the buffer 310.

ステップS606では、処理部304から有効な処理後データが得られたか否かを判断する。有効な処理後データが得られた場合(ステップS606において「YES」)、ステップS607に移行する。一方、有効な処理後データが得られなかった場合(ステップS606において「NO」、本処理を終了する。   In step S606, it is determined whether valid post-processing data has been obtained from the processing unit 304. When valid post-processing data is obtained (“YES” in step S606), the process proceeds to step S607. On the other hand, if valid post-processing data is not obtained (“NO” in step S606), this processing is terminated.

ステップS607では、処理部304から取得した処理後データをパケットのデータ格納領域403にコピーする。続くステップS608では、パケットのデータ有効フラグ401を1に設定する。さらにステップS609では、パケットの保留フラグ404を初期値(0)に設定する。さらにステップS610では、パケットの送信元ID402に自身のIDを設定する。ステップS611ではセレクタ309に対し、パケット送信部307からの入力を優先するように指示する。   In step S607, the post-processing data acquired from the processing unit 304 is copied to the data storage area 403 of the packet. In the subsequent step S608, the data valid flag 401 of the packet is set to 1. In step S609, the packet hold flag 404 is set to an initial value (0). Further, in step S610, its own ID is set in the packet transmission source ID 402. In step S611, the selector 309 is instructed to prioritize the input from the packet transmission unit 307.

以上説明したように本実施形態では、受信側モジュールにおいて受信パケットのデータを処理できた場合はパケットを無効化し、データを処理できなかった場合はパケットの保留フラグ404を1に設定し再度リングバスに再投入する。これにより、受信対象のパケットを受信側モジュールで管理し、送信側モジュールに対する再送要求パケットがリングバスに送出されないようにすることができる。また、送出パケットの保留フラグ404を送信側モジュールが監視して適宜パケットを無効化することで、不要なパケットをリングバスに周回させないようにし、モジュール間のデータ転送効率を上げることができる。   As described above, in the present embodiment, when the data of the received packet can be processed in the receiving module, the packet is invalidated, and when the data cannot be processed, the packet hold flag 404 is set to 1 and the ring bus is again set. To re-enter. As a result, it is possible to manage the packet to be received by the reception side module and prevent the retransmission request packet for the transmission side module from being sent to the ring bus. Further, the sending side module monitors the outgoing packet hold flag 404 and invalidates the packet as appropriate, so that unnecessary packets are prevented from circulating on the ring bus and the data transfer efficiency between the modules can be improved.

<実施形態2>
上記の実施形態では、パケットの宛先モジュールは1つであったが、宛先は1つでなく、データパスが分岐しても良い。例えば、図2においてモジュール2からの出力パケットをモジュール3及びモジュール4が待ち受けているような場合である。つまり、モジュール2以降のデータパスが分岐する。
<Embodiment 2>
In the above embodiment, there is one packet destination module, but there is no single destination, and the data path may be branched. For example, in FIG. 2, the module 3 and the module 4 are waiting for an output packet from the module 2. That is, the data path after module 2 branches.

上述の実施形態1では、処理部304に対してデータの受け渡しが成功したら受信パケットを無効化した。本実施形態でも、同様にしてモジュール3がパケットの受信に成功したからといってパケットを無効化してしまうと、モジュール4がパケットを受取れなくなってしまう。   In the first embodiment described above, the received packet is invalidated when data is successfully transferred to the processing unit 304. Similarly, in this embodiment, if the module 3 succeeds in receiving the packet and invalidates the packet, the module 4 cannot receive the packet.

そこで本実施形態の各モジュールは、処理部304へのデータの受け渡しに成功した場合に、パケットの無効化を許可するか否かを指定可能なパケット無効処理指示レジスタを更に有することを特徴とする。   Therefore, each module according to the present embodiment further includes a packet invalidation processing instruction register that can specify whether or not to invalidate a packet when data is successfully transferred to the processing unit 304. .

図7は、実施形態2に対応するモジュールの構成例を示す図である。図7のモジュール構成図は基本的には図3と同様である。但し、受信部311内にパケット無効処理指示レジスタ701を更に有する点が異なる。本実施形態では、このレジスタ設定値が1であれば、処理部304の受信成功時にデータ有効フラグ401の値を設定して受信パケットを無効化することが許可される。一方、設定値が0であれば、処理部304の受信成功時にデータ有効フラグ401の値を設定して受信パケットを無効化することが許可されない。但し、パケット無効処理指示レジスタの設定仕様は上記のものに限定されるものではない。   FIG. 7 is a diagram illustrating a configuration example of a module corresponding to the second embodiment. The module configuration diagram of FIG. 7 is basically the same as FIG. However, the difference is that the receiving unit 311 further includes a packet invalidation processing instruction register 701. In this embodiment, if this register setting value is 1, it is permitted to invalidate the received packet by setting the value of the data valid flag 401 when reception of the processing unit 304 is successful. On the other hand, if the set value is 0, it is not permitted to invalidate the received packet by setting the value of the data valid flag 401 when the processing unit 304 succeeds in reception. However, the setting specification of the packet invalidation processing instruction register is not limited to the above.

パケット無効処理指示レジスタ701の設定は以下のようにして行う。まず、データパスが分岐しないことが想定される場合、全てのモジュールのパケット無効処理指示レジスタは1に設定される。この場合、受信成功時はパケットが無効化される。   The packet invalidation instruction register 701 is set as follows. First, when it is assumed that the data path does not branch, the packet invalidation processing instruction registers of all modules are set to 1. In this case, the packet is invalidated when reception is successful.

一方、あるモジュールからの出力パケットを複数のモジュールが待ち受けているような場合、まず該複数のモジュールが待ち受けるパケットを送出する送信元モジュールを特定し、同様に該パケットを待ち受ける複数の受信元モジュールを特定する。   On the other hand, when a plurality of modules are waiting for an output packet from a certain module, first, a transmission source module that transmits the packet that the plurality of modules wait for is specified, and a plurality of reception source modules that wait for the packet are similarly specified. Identify.

複数の受信元モジュールのうち、リングバスに沿って最も送信元モジュールから遠い位置に配置されているモジュールを特定し、このモジュールのパケット無効処理指示レジスタ701を1に設定する。また、当該モジュール以外のモジュールについて、パケット無効処理指示レジスタ701を0に設定する。   Among the plurality of reception source modules, the module located farthest from the transmission source module along the ring bus is specified, and the packet invalidation processing instruction register 701 of this module is set to 1. Also, the packet invalidation processing instruction register 701 is set to 0 for modules other than the module.

例えば、図2においてモジュール2から出力パケットをモジュール3及びモジュール4が待ち受けているようなデータパスの分岐が1箇所で発生する場合、送信元モジュールであるモジュール2から順方向にリングバスを辿っていく。パケットを待ち受けるモジュール3とモジュール4のうち、モジュール4の方がモジュール2から最も遠い位置に配置されている。そこで、モジュール3のパケット無効処理指示レジスタ701を0に設定し、モジュール4のパケット無効処理指示レジスタ701を1に設定する。   For example, in FIG. 2, when a branch of a data path in which module 3 and module 4 are waiting for an output packet from module 2 occurs in one place, the ring bus is traced forward from module 2 as the transmission source module. Go. Of the modules 3 and 4 that wait for a packet, the module 4 is arranged at a position farthest from the module 2. Therefore, the packet invalid processing instruction register 701 of module 3 is set to 0, and the packet invalid processing instruction register 701 of module 4 is set to 1.

次に、図8を参照して、実施形態2における処理データ送信部303及び受信部311における処理を説明する。図8において、ステップS801では前段に位置するモジュールから、パケット識別部301がパケットを取得する。ステップS802では、パケット識別部301がパケットのデータ有効フラグ401が1か否かを判断する。もし、1であれば(ステップS802において「YES」)、ステップS803に移行する。一方、1でなければ(ステップS802において「NO」)、本処理を終了する。   Next, processing in the processing data transmission unit 303 and the reception unit 311 in the second embodiment will be described with reference to FIG. In FIG. 8, in step S <b> 801, the packet identification unit 301 acquires a packet from the module located in the previous stage. In step S802, the packet identification unit 301 determines whether or not the packet data valid flag 401 is 1. If it is 1 (“YES” in step S802), the process proceeds to step S803. On the other hand, if it is not 1 (“NO” in step S802), this process ends.

ステップS803では、パケット識別部301がパケットの送信元ID402と設定された待ち受けパケットIDが等しいか否かを判断する。もし、等しいと判断した場合(ステップS803において「YES」)、ステップS804に移行する。一方、等しいと判断しなかった場合(ステップS803において「NO」)、本処理を終了する。   In step S803, the packet identification unit 301 determines whether the packet transmission source ID 402 is equal to the set standby packet ID. If it is determined that they are equal (“YES” in step S803), the process proceeds to step S804. On the other hand, if it is not determined that they are equal (“NO” in step S803), this process ends.

ステップS804では、処理データ送信部303が、処理部304がデータ受け渡し可能な状態であるかを判断する。もし、データ受け渡し可能な状態であると判断した場合(ステップS804において「YES」)、ステップS805に移行する。一方、データ受け渡し可能な状態でないと判断した場合(ステップS804において「NO」)、ステップS806に移行する。   In step S804, the processing data transmission unit 303 determines whether or not the processing unit 304 is ready to pass data. If it is determined that the data can be delivered ("YES" in step S804), the process proceeds to step S805. On the other hand, when it is determined that the data cannot be delivered ("NO" in step S804), the process proceeds to step S806.

ステップS805では、パケット受信部302がパケットから処理データを抽出して処理データ送信部303に送信し、処理データ送信部303からデータが処理部304に渡され、ステップS807に移行する。また、ステップS806では、パケット受信部302がパケットの保留フラグ404を1に設定するようにパケット変更部308に指示する。   In step S805, the packet reception unit 302 extracts the processing data from the packet and transmits it to the processing data transmission unit 303. The data is transferred from the processing data transmission unit 303 to the processing unit 304, and the process proceeds to step S807. In step S806, the packet receiving unit 302 instructs the packet changing unit 308 to set the packet hold flag 404 to 1.

一方、ステップS807では、パケット受信部302がパケット無効処理指示レジスタ701の設定値が1であるか否かを判断する。もし1であると判断した場合(ステップS807において「YES」)、ステップS808に移行する。一方、1でないと判断した場合(ステップS807において「NO」)、本処理を終了する。ステップS808では、パケット受信部302がパケットのデータ有効フラグ401を0に設定するようにパケット変更部308に指示する。   On the other hand, in step S807, the packet reception unit 302 determines whether or not the setting value of the packet invalidation processing instruction register 701 is 1. If it is determined that the number is 1 (“YES” in step S807), the process proceeds to step S808. On the other hand, if it is determined that the number is not 1 (“NO” in step S807), the process ends. In step S808, the packet receiving unit 302 instructs the packet changing unit 308 to set the data valid flag 401 of the packet to 0.

以上説明したように、データパスが分岐する場合でもモジュールにパケット無効処理指示レジスタ701を設け適宜設定することで、複数の待ち受けモジュール全てにパケットを送信することができる。   As described above, even when the data path branches, a packet can be transmitted to all of the plurality of standby modules by providing the packet invalidation processing instruction register 701 in the module and appropriately setting it.

<その他の実施形態>
前述の各実施形態において、各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(コンピュータプログラム)をコンピュータ等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。
<Other embodiments>
In each of the above-described embodiments, each step can also be realized by executing software (computer program) acquired via a network or various storage media by a processing device (CPU, processor) such as a computer.

101 CPU,102 RAM,103 ROM,104 データ処理部,201〜204 モジュール,205 リングバス,206 入出力バッファ,301 パケット識別部,302 パケット受信部,303 処理データ送信部,304 処理部,305 処理データ受信部,306 パケット生成部,307 パケット送信部,308 パケット変更部,309 セレクタ,310 バッファ,311 受信部,312 送信部,313 通信部   101 CPU, 102 RAM, 103 ROM, 104 data processing unit, 201-204 module, 205 ring bus, 206 input / output buffer, 301 packet identification unit, 302 packet receiving unit, 303 processing data transmission unit, 304 processing unit, 305 processing Data reception unit, 306 packet generation unit, 307 packet transmission unit, 308 packet modification unit, 309 selector, 310 buffer, 311 reception unit, 312 transmission unit, 313 communication unit

Claims (11)

リングバスを介して接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後に隣接する他方のモジュールへ送信するように構成された情報処理装置であって、
各モジュールは、
他のモジュールから受信したパケットを識別して、自モジュールにおいて処理すべきパケットであるか否かを判定するパケット識別手段と、
前記パケット識別手段が自モジュールにおいて処理すべきパケットであると判定した場合に、当該パケットから処理対象のデータを抽出するパケット受信手段と、
抽出された前記データを処理する処理手段と、
前記処理手段が前記データを処理する場合に、前記受信したパケットにおけるデータの有効性を表す第1のフラグを、該データが無効であることを示す値に設定するパケット変更手段と、
パケットを前記他方のモジュールに送信する送信手段と
を備えることを特徴とする情報処理装置。
A plurality of modules connected via a ring bus, each of the plurality of modules receiving a packet storing data from one adjacent module, performing a predetermined process, and then to the other adjacent module An information processing device configured to transmit,
Each module is
A packet identifying means for identifying a packet received from another module and determining whether the packet is to be processed in its own module;
A packet receiving means for extracting data to be processed from the packet when the packet identifying means determines that the packet is to be processed in the module;
Processing means for processing the extracted data;
A packet changing means for setting a first flag indicating the validity of the data in the received packet to a value indicating that the data is invalid when the processing means processes the data;
An information processing apparatus comprising: transmission means for transmitting a packet to the other module.
前記パケット変更手段は、前記処理手段が前記データを処理できない場合に、前記受信したパケットにおける第2のフラグを初期値から変更することを特徴とする請求項1に記載の情報処理装置。   2. The information processing apparatus according to claim 1, wherein the packet changing unit changes a second flag in the received packet from an initial value when the processing unit cannot process the data. 前記各モジュールは、
前記第1のフラグの設定を行うことが自モジュールにおいて許可されるか否かを示す設定値を有するレジスタをさらに備え、
前記パケット変更手段は、前記処理手段が前記データを処理する場合であって、かつ、前記レジスタの設定値が前記第1のフラグの設定を許可する値を有する場合に、前記第1のフラグをパケットのデータが無効であることを示す値に設定することを特徴とする請求項1または2に記載の情報処理装置。
Each module is
A register having a setting value indicating whether or not the setting of the first flag is permitted in the own module;
The packet changing means sets the first flag when the processing means processes the data and the set value of the register has a value that allows the setting of the first flag. The information processing apparatus according to claim 1, wherein the information is set to a value indicating that the packet data is invalid.
前記パケット識別手段は、前記受信したパケットについて前記第1のフラグ及び前記第2のフラグの値と、該パケットの送信元が自モジュールであるか否かとを更に判定し、
前記パケット識別手段が、前記第1のフラグが前記受信したパケットのデータが有効であることを示す値に設定され、かつ、前記第2のフラグに前記初期値が設定されており、かつ、前記受信したパケットの送信元が自モジュールである、と判定した場合に、
前記パケット変更手段は、前記受信したパケットにおける前記第1のフラグを、該パケットのデータが無効であることを示す値に設定し、
前記送信手段は、前記パケット変更手段が前記受信したパケットにおける前記第1のフラグを該パケットのデータが無効であることを示す値に設定したパケットを前記他方のモジュールへ送信する
ことを特徴とする請求項2に記載の情報処理装置。
The packet identification means further determines the values of the first flag and the second flag for the received packet and whether or not the transmission source of the packet is its own module;
The packet identification means is configured such that the first flag is set to a value indicating that the data of the received packet is valid, and the initial value is set to the second flag; and When it is determined that the source of the received packet is its own module,
The packet changing means sets the first flag in the received packet to a value indicating that the data of the packet is invalid;
The transmission means transmits the packet in which the packet changing means sets the first flag in the received packet to a value indicating that the data of the packet is invalid to the other module. The information processing apparatus according to claim 2.
前記各モジュールは、
前記処理手段において処理されたデータを含むパケットを生成するパケット生成手段をさらに備え、
前記パケット識別手段は、前記受信したパケットについて前記第1のフラグの値を更に判定し、
前記パケット識別手段が、前記第1のフラグが前記受信したパケットのデータが無効であることを示す値に設定されていると判定した場合に、前記パケット生成手段は、
前記受信したパケットのデータ格納領域に前記処理手段において処理されたデータを格納し、
前記第1のフラグをパケットのデータが有効であることを示す値に設定し、
前記第2のフラグを前記初期値に設定し、
生成するパケットの送信元に自モジュールを特定するための識別子を設定して
パケットを生成し、
前記送信手段は、前記パケット生成手段が生成したパケットを前記他方のモジュールへ送信することを特徴とする請求項2または4に記載の情報処理装置。
Each module is
Packet generating means for generating a packet including data processed in the processing means;
The packet identification means further determines the value of the first flag for the received packet;
When the packet identification unit determines that the first flag is set to a value indicating that the received packet data is invalid, the packet generation unit includes:
Storing the data processed in the processing means in the data storage area of the received packet;
Setting the first flag to a value indicating that the packet data is valid;
Setting the second flag to the initial value;
Generate a packet by setting an identifier to identify the module in the source of the packet to be generated,
5. The information processing apparatus according to claim 2, wherein the transmission unit transmits the packet generated by the packet generation unit to the other module.
リングバスを介して接続された複数のモジュールを有し、該複数のモジュールのそれぞれはデータを格納するパケットを隣接する一方のモジュールから受信し、所定の処理を行った後に隣接する他方のモジュールへ送信するように構成された情報処理装置の制御方法であって、
各モジュールにおいて、
他のモジュールから受信したパケットを識別して、自モジュールにおいて処理すべきパケットであるか否かを判定するパケット識別工程と、
前記パケット識別工程において自モジュールにおいて処理すべきパケットであると判定された場合に、当該パケットから処理対象のデータを抽出するパケット受信工程と、
抽出された前記データを処理手段が処理する処理工程と、
前記処理手段が前記データが処理する場合に、前記受信したパケットにおけるデータの有効性を表す第1のフラグを、該データが無効であることを示す値に設定するパケット変更工程と、
パケットを前記他方のモジュールに送信する送信工程と
を備えることを特徴とする情報処理装置の制御方法。
A plurality of modules connected via a ring bus, each of the plurality of modules receiving a packet storing data from one adjacent module, performing a predetermined process, and then to the other adjacent module A method of controlling an information processing apparatus configured to transmit,
In each module
A packet identification step of identifying a packet received from another module and determining whether the packet is to be processed in the module;
A packet receiving step of extracting data to be processed from the packet when it is determined in the packet identification step that the packet is to be processed in the module;
A processing step in which processing means processes the extracted data;
A packet changing step for setting, when the processing means processes the data, a first flag indicating the validity of the data in the received packet to a value indicating that the data is invalid;
And a transmission step of transmitting the packet to the other module.
前記処理手段が前記データを処理できない場合に、前記受信したパケットにおける第2のフラグを初期値から変更する工程をさらに備えることを特徴とする請求項6に記載の情報処理装置の制御方法。   The method according to claim 6, further comprising a step of changing a second flag in the received packet from an initial value when the processing unit cannot process the data. 前記各モジュールは、
前記第1のフラグの設定を行うことが自モジュールにおいて許可されるか否かを示す設定値を有するレジスタをさらに備え、
前記制御方法は、前記各モジュールにおいて
前記パケット変更工程では、前記処理手段が前記データを処理する場合であって、かつ、前記レジスタの設定値が前記第1のフラグの設定を許可する値を有する場合に、前記第1のフラグがパケットのデータが無効であることを示す値に設定されることを特徴とする請求項6または7に記載の情報処理装置の制御方法。
Each module is
A register having a setting value indicating whether or not the setting of the first flag is permitted in the own module;
In the control method, in each of the modules, in the packet changing step, the processing unit processes the data, and the setting value of the register has a value that permits the setting of the first flag. In this case, the control method of the information processing apparatus according to claim 6 or 7, wherein the first flag is set to a value indicating that the packet data is invalid.
前記パケット識別工程では、前記受信したパケットについて前記第1のフラグ及び前記第2のフラグの値と、該パケットの送信元が自モジュールであるか否かとが更に判定され、
前記パケット識別工程において、前記第1のフラグが前記受信したパケットのデータが有効であることを示す値に設定され、かつ、前記第2のフラグに前記初期値が設定されており、かつ、前記受信したパケットの送信元が自モジュールである、と判定された場合に、
前記パケット変更工程では、前記受信したパケットにおける前記第1のフラグが、該パケットのデータが無効であることを示す値に設定され、
前記送信工程では、前記パケット変更工程において前記受信したパケットにおける前記第1のフラグが該パケットのデータが無効であることを示す値に設定されたパケットが前記他方のモジュールへ送信される
ことを特徴とする請求項7に記載の情報処理装置の制御方法。
In the packet identification step, for the received packet, it is further determined whether the value of the first flag and the second flag and whether the transmission source of the packet is the own module,
In the packet identification step, the first flag is set to a value indicating that the data of the received packet is valid, and the initial value is set to the second flag, and When it is determined that the source of the received packet is its own module,
In the packet modification step, the first flag in the received packet is set to a value indicating that the data of the packet is invalid,
In the transmitting step, the packet in which the first flag in the received packet in the packet changing step is set to a value indicating that the data of the packet is invalid is transmitted to the other module. The control method of the information processing apparatus according to claim 7.
前記各モジュールにおいて、
前記処理手段において処理されたデータを含むパケットを生成するパケット生成工程をさらに備え、
前記パケット識別工程では、前記受信したパケットについて前記第1のフラグの値が更に判定され、
前記パケット識別工程において、前記第1のフラグが前記受信したパケットのデータが無効であることを示す値に設定されていると判定された場合に、前記パケット生成工程では、
前記受信したパケットのデータ格納領域に前記処理手段において処理されたデータを格納し、
前記第1のフラグをパケットのデータが有効であることを示す値に設定し、
前記第2のフラグを前記初期値に設定し、
生成するパケットの送信元に自モジュールを特定するための識別子を設定して
パケットを生成し、
前記送信工程では、前記パケット生成工程において生成されたパケットを前記他方のモジュールへ送信することを特徴とする請求項7または9に記載の情報処理装置の制御方法。
In each module,
A packet generation step of generating a packet including data processed in the processing means;
In the packet identification step, a value of the first flag is further determined for the received packet,
In the packet identification step, when it is determined that the first flag is set to a value indicating that the received packet data is invalid, in the packet generation step,
Storing the data processed in the processing means in the data storage area of the received packet;
Setting the first flag to a value indicating that the packet data is valid;
Setting the second flag to the initial value;
Generate a packet by setting an identifier to identify the module in the source of the packet to be generated,
10. The information processing apparatus control method according to claim 7, wherein, in the transmission step, the packet generated in the packet generation step is transmitted to the other module.
コンピュータを請求項1乃至5のいずれか1項に記載の情報処理装置として機能させるためのコンピュータプログラム。   A computer program for causing a computer to function as the information processing apparatus according to any one of claims 1 to 5.
JP2009043148A 2009-02-25 2009-02-25 Information processing apparatus, control method therefor, and computer program Active JP5014362B2 (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP2009043148A JP5014362B2 (en) 2009-02-25 2009-02-25 Information processing apparatus, control method therefor, and computer program
KR1020117021448A KR101262751B1 (en) 2009-02-25 2010-02-17 Information processing apparatus and operation method thereof, and storage medium
PCT/JP2010/052805 WO2010098330A1 (en) 2009-02-25 2010-02-17 Information processing apparatus and operation method thereof, computer program, and storage medium
CN201310409255.9A CN103441915B (en) 2009-02-25 2010-02-17 Information processor and its operational approach
EP10709293.4A EP2401682B1 (en) 2009-02-25 2010-02-17 Information processing apparatus and operation method thereof, computer program, and storage medium
US13/141,382 US8761013B2 (en) 2009-02-25 2010-02-17 Information processing apparatus and operation method thereof, computer program, and storage medium
EP16150623.3A EP3037978A3 (en) 2009-02-25 2010-02-17 Information processing apparatus and operation method thereof, computer program, and storage medium
CN201080008604.0A CN102326158B (en) 2009-02-25 2010-02-17 Information processing apparatus and operation method thereof
US14/269,301 US9237097B2 (en) 2009-02-25 2014-05-05 Information processing apparatus and operation method thereof, computer program, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009043148A JP5014362B2 (en) 2009-02-25 2009-02-25 Information processing apparatus, control method therefor, and computer program

Publications (3)

Publication Number Publication Date
JP2010200034A true JP2010200034A (en) 2010-09-09
JP2010200034A5 JP2010200034A5 (en) 2010-11-11
JP5014362B2 JP5014362B2 (en) 2012-08-29

Family

ID=42232761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009043148A Active JP5014362B2 (en) 2009-02-25 2009-02-25 Information processing apparatus, control method therefor, and computer program

Country Status (6)

Country Link
US (2) US8761013B2 (en)
EP (2) EP2401682B1 (en)
JP (1) JP5014362B2 (en)
KR (1) KR101262751B1 (en)
CN (2) CN103441915B (en)
WO (1) WO2010098330A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244512A (en) * 2009-03-17 2010-10-28 Canon Inc Data processing device, and data processing method or program
JP2012008976A (en) * 2010-06-28 2012-01-12 Canon Inc Data processor, data processing method, and program

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5014362B2 (en) * 2009-02-25 2012-08-29 キヤノン株式会社 Information processing apparatus, control method therefor, and computer program
US8706936B2 (en) 2011-11-14 2014-04-22 Arm Limited Integrated circuit having a bus network, and method for the integrated circuit
FR3040992B1 (en) * 2015-09-11 2017-10-06 Saint Gobain LUMINOUS GLAZING OF VEHICLE AND ITS MANUFACTURE.
JP6465843B2 (en) * 2016-09-13 2019-02-06 キヤノン株式会社 Ring bus system
DE102021119467A1 (en) 2021-07-27 2023-02-02 Lenze Se Method for the simultaneous monitoring of a transmission and processing of user data and a drive system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61187445A (en) * 1985-02-15 1986-08-21 Fujitsu Ltd Packet transmission control system
JPH04192942A (en) * 1990-11-27 1992-07-13 Fujitsu Ltd Loop type network communication system

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4779087A (en) * 1985-02-13 1988-10-18 Fujitsu Limited Loop transmission system with frame synchronization control
CA1269438A (en) * 1986-06-27 1990-05-22 Tomohiko Awazu Packet data communication system with ring type transmission line
US5155858A (en) * 1988-10-27 1992-10-13 At&T Bell Laboratories Twin-threshold load-sharing system with each processor in a multiprocessor ring adjusting its own assigned task list based on workload threshold
JP2001511971A (en) * 1997-02-17 2001-08-14 コミュニケイション アンド コントロール エレクトロニクス リミテッド Local communication system
US7480706B1 (en) * 1999-12-30 2009-01-20 Intel Corporation Multi-threaded round-robin receive for fast network port
US7292597B2 (en) * 2000-09-28 2007-11-06 Teridian Semiconductor Corp. Method and apparatus for transparent implementation of link-suspend capabilities in network devices
US20020191601A1 (en) * 2001-06-15 2002-12-19 Alcatel, Societe Anonyme On-chip communication architecture and method
GB2378610B (en) * 2001-08-09 2004-06-02 Cambridge Broadband Ltd Communications network
US7641131B2 (en) 2002-10-02 2010-01-05 Sbr Investments Company Llc Vehicle windshield cleaning system
US7433307B2 (en) * 2002-11-05 2008-10-07 Intel Corporation Flow control in a network environment
US7043579B2 (en) * 2002-12-05 2006-05-09 International Business Machines Corporation Ring-topology based multiprocessor data access bus
US7239645B2 (en) * 2003-01-21 2007-07-03 Applied Micro Circuits Corporation Method and apparatus for managing payload buffer segments in a networking device
US7505470B2 (en) * 2003-11-19 2009-03-17 Honeywell International Inc. Clique aggregation in TDMA networks
US6996647B2 (en) 2003-12-17 2006-02-07 International Business Machines Corporation Token swapping for hot spot management
US7414984B2 (en) * 2004-08-27 2008-08-19 General Instrument Corporation System and method for efficient addition of network resources
US7631131B2 (en) * 2005-10-27 2009-12-08 International Business Machines Corporation Priority control in resource allocation for low request rate, latency-sensitive units
US8438239B2 (en) * 2006-05-11 2013-05-07 Vocollect, Inc. Apparatus and method for sharing data among multiple terminal devices
US7710904B2 (en) * 2006-12-27 2010-05-04 Intel Corporation Ring network with variable token activation
US8004966B2 (en) * 2008-04-25 2011-08-23 Calix, Inc. Efficient management of ring networks
WO2010059150A1 (en) * 2008-11-19 2010-05-27 Lsi Corporation Interconnects using self-timed time-division multiplexed bus
US8300535B2 (en) * 2009-02-24 2012-10-30 Canon Kabushiki Kaisha Information processing apparatus, method thereof, and storage medium
JP5014362B2 (en) * 2009-02-25 2012-08-29 キヤノン株式会社 Information processing apparatus, control method therefor, and computer program
JP4869369B2 (en) * 2009-03-13 2012-02-08 キヤノン株式会社 Information processing apparatus, information processing method, and program
JP5538798B2 (en) * 2009-03-17 2014-07-02 キヤノン株式会社 Data processing apparatus and data processing method or program
JP5528001B2 (en) * 2009-04-08 2014-06-25 キヤノン株式会社 Information processing apparatus and information processing method
JP5432587B2 (en) 2009-05-14 2014-03-05 キヤノン株式会社 Data processing apparatus, control method thereof, and program
JP5361567B2 (en) * 2009-06-25 2013-12-04 キヤノン株式会社 Data processing apparatus, data processing method and program
JP5414506B2 (en) 2009-12-18 2014-02-12 キヤノン株式会社 Data processing apparatus, data processing method, and program
JP5600492B2 (en) 2010-06-28 2014-10-01 キヤノン株式会社 Data processing apparatus, data processing method, control apparatus, control method, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61187445A (en) * 1985-02-15 1986-08-21 Fujitsu Ltd Packet transmission control system
JPH04192942A (en) * 1990-11-27 1992-07-13 Fujitsu Ltd Loop type network communication system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244512A (en) * 2009-03-17 2010-10-28 Canon Inc Data processing device, and data processing method or program
JP2012008976A (en) * 2010-06-28 2012-01-12 Canon Inc Data processor, data processing method, and program

Also Published As

Publication number Publication date
US9237097B2 (en) 2016-01-12
CN102326158B (en) 2014-11-19
CN103441915A (en) 2013-12-11
CN102326158A (en) 2012-01-18
US20110255547A1 (en) 2011-10-20
JP5014362B2 (en) 2012-08-29
KR101262751B1 (en) 2013-05-09
EP2401682A1 (en) 2012-01-04
EP3037978A2 (en) 2016-06-29
US20140241350A1 (en) 2014-08-28
US8761013B2 (en) 2014-06-24
KR20110127689A (en) 2011-11-25
EP2401682B1 (en) 2017-05-03
EP3037978A3 (en) 2016-07-20
WO2010098330A1 (en) 2010-09-02
CN103441915B (en) 2017-03-01

Similar Documents

Publication Publication Date Title
JP5014362B2 (en) Information processing apparatus, control method therefor, and computer program
US8774234B2 (en) Data processing apparatus, data processing method, and computer-readable storage medium
JP2013065101A (en) Information processing device, communication method and program
JP5419493B2 (en) Data processing apparatus, data processing apparatus control method, and program
JP5538798B2 (en) Data processing apparatus and data processing method or program
JP5406558B2 (en) Data processing apparatus, data processing method and program
JP4869369B2 (en) Information processing apparatus, information processing method, and program
JP5341623B2 (en) Data processing apparatus, data processing method and program
JP6853479B2 (en) Information processing system, information processing device, and control method of information processing system
JP5460088B2 (en) Information processing apparatus, information processing method, and program
JP5432587B2 (en) Data processing apparatus, control method thereof, and program
JP2011128989A (en) Data processing apparatus, data processing method, and program
JP6290761B2 (en) Data transfer control system, data transfer control method, and data transfer control program
JP2013196509A (en) Information processor and control method of the same
US6880035B1 (en) Electronic bus control device with a parallel databus and a method for the operation of the bus control device
JP2008015617A (en) Method and apparatus for broadcast communication using distributed shared memory
JP5534711B2 (en) Information processing apparatus, information processing method, and program
JP5396864B2 (en) Data transfer method between terminal devices
JP2010245953A (en) Information processing apparatus, and information processing method
JP2007034893A (en) Data processing module and its message transmission preparation method
WO2017195357A1 (en) Communication apparatus, communication method, and communication program
JP2010187243A (en) Input/output data transfer system
JP2011170560A (en) Apparatus and method for processing data
JP2008158938A (en) Data transfer system
JP2005236872A (en) Uninterruptible reconfiguration method and system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110909

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111108

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120302

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120411

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120605

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 5014362

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3