JP5432587B2 - データ処理装置、その制御方法およびプログラム - Google Patents

データ処理装置、その制御方法およびプログラム Download PDF

Info

Publication number
JP5432587B2
JP5432587B2 JP2009118043A JP2009118043A JP5432587B2 JP 5432587 B2 JP5432587 B2 JP 5432587B2 JP 2009118043 A JP2009118043 A JP 2009118043A JP 2009118043 A JP2009118043 A JP 2009118043A JP 5432587 B2 JP5432587 B2 JP 5432587B2
Authority
JP
Japan
Prior art keywords
packet
data
data processing
ring bus
special
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.)
Expired - Fee Related
Application number
JP2009118043A
Other languages
English (en)
Other versions
JP2010268241A (ja
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.)
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
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009118043A priority Critical patent/JP5432587B2/ja
Priority to US12/729,633 priority patent/US8457149B2/en
Publication of JP2010268241A publication Critical patent/JP2010268241A/ja
Application granted granted Critical
Publication of JP5432587B2 publication Critical patent/JP5432587B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)

Description

本発明は複数のデータ処理部へのデータフローを制御することで確実なデータ処理を実現する情報処理システムに関する。
従来、プリント画像処理のような一連のデータ処理を高速に効率よく実現するため、全体のデータ処理を所定の機能に分割してハード化し、ハード化されたモジュールを処理の流れ順に接続して一連のデータ処理をパイプライン的に実行する方法が知られている。
一方、画像処理においては、一連の処理の順序を変えることで効率的に処理を実現できる。例えば、所定の画素数の出力装置に画像を出力する場合、画素数あるいは解像度を合わせるため解像度変換が必要となる。入力画像の画素数が出力装置の画素数よりも多い場合は、処理の上流側で解像度変換を行い、画素数を少なくしてから処理を行った方が良い。しかし、入力画像の画素数が出力装置の画素数よりも少ない場合は、解像度変換を行わずに画素数が少ない状態で処理行い、出力の直前(下流側)で解像度変換を行った方が良い。
また例えば、ある空間(例えば、入力デバイス空間)から標準的な空間(例えば、解像度600ppi、CIELAB色空間等)に変換して処理を行い、別の空間(例えば、出力デバイス空間)に変換する場合を考える。このとき、入力側と出力側の空間変換部の処理順(1次元LUT、行列演算、3次元LUT等の処理の順序)は逆になる。つまり、処理の順序を変えることができれば、同じ処理モジュールを入力側と出力側とで共用することもできる。しかしながら、上記データ処理方法においては、処理の順序を変えることができない。従って、例えば同じ機能のモジュールを複数実装することで対応していたため無駄なモジュールがあった。
特許文献1では、上記課題を解決するためには、各処理モジュール間をリング状のネットワークで接続する方法が提案されている。この手法によれば、リング状ネットワークにてデータの接続先を変更することにより、処理順序の変更が可能である。
また、デッドロックとは、処理モジュールに入力することができないためデータパケットによってリング状バスに占有された状態を意味する。特許文献1では、このデッドロック状態で、一時的にデータパケットを保持するためのキューを具備することを提案している。つまり、デッドロック状態後に一時的なリング状バス上に空きをまず作る。そして、バスの占有によって妨害されていた処理モジュールに入力可能なデータパケットの送出を可能にしてリング状バス上での処理を継続できるようにする。
特開平01−023340
しかしながら、従来の方法では、デッドロック状態で一時的に有効とするキューの長さ(量)には上限がある。したがって、想定内の占有状況に対してはデッドロックを回避できるが、一時的なキューの有効化後も継続するような想定を超える占有状況が生じる場合がある。このときは、たとえ一時的なキューを使用したとしても、いずれは処理モジュールに入力することができないデータパケットが生じる可能性がある。その場合、リング状バスを占有して再度デッドロック状態に陥る。また、デッドロック状態を回避するための一時的な一定量のキューを用意する必要があり、データ装置の回路規模を不必要に大きくてしまう。
本発明は上述した課題を解決するものであり、リング状バス上のデッドロック状態を回避するデータ処理システムを提供することを目的とする。
上記の目的を達成する本発明に係るデータ処理装置は、
リング状バスと、
前記リング状バスに接続され、前記リング状バスを周回するパケットを用いて相互にデータの授受を行う複数のデータ処理手段と、
前記リング状バスに前記パケットと区別される特別パケットを投入し、前記リング状バスを周回させる投入手段とを備え、
前記複数のデータ処理手段の各々は、
データの送信に際して前記特別パケットを空の状態で取得した場合には、前記特別パケットを用いて前記データの送信先のデータ処理手段がデータを受け入れ可能か否かを確認する確認手段を備え
前記送信先のデータ処理手段は、受け入れ可能であると判断された場合には、前記特別パケットをそのまま前記リング状バスに送信し、受け入れ不可であると判断された場合には、前記特別パケットを空の状態にして前記リング状バスへ送信する送信手段を備える。
本発明の構成をとることで、リング状バスが通常のデータパケットによってどのような占有状況であったとしても確実にデッドロック状態を回避することができる。また、従来の方法のようなデッドロック状態を回避するための一時的な一定量のキューを用意する必要がないため、データ装置の回路規模を小規模にできる。
データ処理装置の一構成例を示すブロック図。 通信部の一構成例を示すブロック図。 データ受信部の一構成例を示すブロック図。 データ送信部の一構成例を示すブロック図。 リング状バス上を流れるパケットの一構成例を示す図。 リング状バス上を流れるパケットの分類例を示す図。 データ受信部の動作手順を示すフロー図。 データ送信部の動作手順を示すフロー図。 5つのデータ処理部によるデータ処理装置の一構成例を示すブロック図。 データ処理装置を有するシステムの構成例を示すブロック図。 データ処理装置の制御手順を示すフロー図。
以下に本願発明の実施形態を示す。もちろん以下の実施形態は、本願発明の技術分野における当業者による実施を容易にするために開示を提供するものであり、特許請求の範囲によって確定される本願発明の技術的範囲に含まれる一部の実施形態にすぎない。従って、本願明細書に直接的に記載されていない実施形態であっても、技術思想が共通する限り本願発明の技術的範囲に包含されることは当業者にとって自明である。
これより、添付図面に従って実施形態1について詳細に説明する。
<実施形態1>
(構成)
図1は、本発明の実施形態1におけるデータ処理装置の構成例を示すブロック図である。この図で、データ入出力部101は、通信部102−1と接続され、m−1個の通信部102−2〜102−mの各々は、それぞれデータ処理部103−2〜103−mと接続されている。またm個の通信部102−1〜102−mの各々は、リング状バス104により隣接する通信部に接続され、相互にデータの授受を行う。図1では右端の通信部102−mを左端の通信部102−1に接続することでリング状バスを構成している。つまり、上記通信部102−1〜102−mは、リング状バス104を構成すると共に、リング状バスとデータ入出力部またはデータ処理部との間でのデータの送受信を行う。通常パケット105は、リング状バス104を周回することにより、所定の順序で、各データ処理部103−2〜103−mにおいて処理される。また、特別パケット106も少なくとも1つリング状バス104に投入させる。この特別パケットの投入により、後述する、問い合わせパケットおよび特別データ転送パケットを生成することが可能となる。
入力端子151より入力されたデータは、データ入出力部101を介して通信部102−1に入力される。入力されたデータはパケット化され前記リング状バスに流される。通信部102−1〜102−mは、予め設定された情報に従って、必要なパケットを前記リング状バスより取り込む。そして、取り込んだパケットよりデータを抽出し、データ処理部103に入力する。データ処理部103では、所定のデータ処理(例えば色空間変換や解像度変換等)を行い、処理後のデータを通信部102へ出力する。処理後のデータは、通信部102にてパケット化されリング状バスに流される。
このように通信部102−2〜102−mによって、所定の順番でデータがデータ処理部103−2〜103−mへ運搬されて次々に処理されて行く。そして、予め設定されたデータ処理が終了したデータは通信部102−1にてデータ入出力部101に取り込まれ、出力端子152より出力される。なお、データ入出力部101は、外部の機器(またはモジュール)とのインタフェースを行うものであり、通信部102−1にて直接インタフェース可能な場合は省略可能である。なお、図1のリング状バスは、IEEE802.5の規格で規定されたネットワーク(LAN)のトークンリングバスと考えても良い。この場合、各通信部102−1〜102−mは、ノードを有し、このノードは、後述の接続IDに対応する。そして、このトークンリングにおいても、ここで述べる特別パケットを適用できる。
図2は、通信部102の一構成例を示すブロック図である。この通信部は、CPU(不図示)などを用いた制御部を有し、これから述べる各機能部の動作を総合的に制御する。この図において、受信部201はリング状バスにおけるパケットを受信し、バッファ202は受信したデータを一時的に保管し、セレクタ203は送信部204からのデータまたはバッファ202からのデータを選択してリング状バスへ送出し、送信部204はバッファ202または処理部からのデータを送信するための処理を行う。
1つ前の通信部の出力端子259は、この通信部の入力端子257に接続され、その結果、通信部102−1〜102−mによりリング状バスが構成される。また信号線を表わす251、252、253、254、255および256には、データ処理部103(103−2〜103−mの内の1つ)が接続されている。
図5にリング状バスを流れるデータパケット(以下パケット)のフォームの一例を示す。この図において、VALIDフラグ501、ストールフラグ502、カウント503、および接続ID504で示される部分は、パケットのヘッダ部である。VALIDフラグ501はパケットが有効であることを示すフラグであり、セット(1)で有効、クリア(0)で無効を示す。ストールフラグ502はパケットが受信保留か否かを示すフラグであり、セット(1)で保留、クリア(0)で非保留を示す。カウント503はデータの送信順を示すカウント値であり、通常1以上が有効値である。接続ID504はデータの論理的な接続を識別するための接続ノードIDであり、通常1以上が有効値である。データフレーム505は、通信部に入力または出力されるデータである。
パケットの各フラグの初期値はそれぞれVALIDフラグ501が無効(0)、ストールフラグ502が非保留(0)、カウント503が0、接続ID504が0とする。これは通常空きパケット(空の通常パケット)である。
特別空きパケット(空の特別パケット)は初期化時にストールフラグ502をセットして通常空きパケットと区別し、リング状バス上で使用できるようにすることで実現する。なお、処理中のどのパケットを特別パケットにするか、あるいは特別パケットを複数用意するかは重要ではない。また、途中で特別パケットの数を増減させることもできる。例えば、最初に特別なパケットを0個にしておいて必要な時に増やす、あるいは動作中の不必要な時に一時的に0個にする制御方法も考えられる。しかし特別パケットが必要な時に1個以上存在することを保証できるような増減制御が可能でない限りはこのように最初に特別パケットを0個にすることを避け、1個以上の特別パケットをリング状バスに周回させるべきである。
図2において、1つ前に処理を行った通信部より入力端子257を通じて入力されたパケットは、バッファ202にて一旦保持され、次のクロックサイクルでセレクタ203に出力される。同時に受信部201は、入力端子257のパケットを監視する。そしてデータ転送中のVALIDフラグ501が有効な通常パケットが成立するとvalid信号251を有効にし、出力線252よりデータ処理部103へデータを出力する。また、VALIDフラグ501無効、ストールフラグ502保留、カウント503の値0を示すデータ転送中の特別パケットの受信条件が成立した場合も、パケットを取り込み、valid信号251を有効にし、同様にデータ処理部103へデータを出力する。このとき、通信部のCPUは信号線260を介して、バッファ202にデータの取り込みを通知し、バッファ202に格納される該通常パケットのVALIDフラグ501をクリア、あるいは該特別パケットの接続ID504を0にしてパケットを無効化(空きパケット化)する。
一方、データ転送中の通常パケットの受信条件が成立しない場合、通信部のCPUは信号線260を介して、バッファ202にデータの保留を通知し、バッファ202に格納される該パケットのストールフラグ502をセットする。なお、特別なパケットによるデータ転送は、後述の処理において受信可能が確認された後に行われるため、常に受信が保証される。
また、受信部201が特別パケットを使った受信可か否かの問い合わせパケット(VALIDフラグ501が無効、ストールフラグ502が保留、カウント503の値が1以上、接続ID504が1以上)を自身の処理モジュール宛てであると検知した場合を考える。このときは受信条件が成立するならば受信可能であることを通知するためにこの問い合わせパケットをそのままとし(図7のS715)、受信条件が成立しないのであればこれを無効化する(図7のS716参照)。無効化された受信可能性問い合わせパケットは特別パケットの空きパケットになるので、自身の処理モジュールの受信可か否かの問い合わせパケットとして、あるいは、他の処理モジュールで受信可か否かの問い合わせパケットとして再利用される(図8のS815参照)。送信部204は、バッファ202の出力パケットの信号線258を監視する。パケットがデータ転送中ならば、リング状バスにデータを出力できないので、接続されているデータ処理部103からのデータ出力を保留するためにストール信号254をセットする。一方、パケットが空いている状態ならば、接続されているデータ処理部103からのデータの出力条件が成立する場合、ストール信号254リセットする。そしてデータ出力のためのパケット(データ転送パケット)を生成し、セレクタ203を制御して、出力端子259より該生成したデータ転送パケットをリング状バスに流す。
ここで、パケットの送受信がデッドロック状態に陥らないようにするのに特別パケットを使用することを考える。この場合、特別パケットを使用して、リング状バスの送信の相手(次処理モジュール)が確実に次回処理データを受信できるか否かの問い合わせを行うようにする。
このため送信部204では、空きパケットが特別パケットの場合、データ出力のためのパケットの代わりに、次回処理データを受信可か否かの問い合わせる特別問い合わせパケットを生成し、これをリング状バスに流す。そして、送信部204が送信した受信可か否かの問い合わせパケットがリング状バスを周回して自身に戻ってきたことを検知すると、これを受信可の返答と判断して受信が保証されたデータのための特別データ転送パケットを生成しデータ転送を行う。ただし、カウント503を使って、問い合わせたデータを既に別のパケットで送っていない(カウント値が増えていない)ことを確認した上で、特別データ転送パケットの転送を行う必要がある。
特別データ転送パケットでは、同種の特別問い合わせパケットと区別するため、カウント503の値を特別問い合わせパケットでは使用しない0とする。このとき処理番号であるカウント503は、既に問い合わせパケットによって次処理のモジュールが確認しているのでカウント503の値が0であっても問題なく伝送できる。また、データ転送パケットが特別パケットか、あるいは通常パケットかの識別は、VALIDフラグ501と、ストールフラグ502の値の組み合わせにより可能である。したがって、いずれのデータ転送パケットもデータ取り込み後に無効化してそれぞれの種類の空きパケットに戻すことができるので、特別パケットが消滅する(0個になる)ことはない。
図6は、これまでに説明したリング状バスを流れる有効なパケットの種類をまとめたものである。番号601に示すVALIDフラグ501(V)、ストールフラグ502(S)、カウント503(COUNT)、接続ID504(ノードID)の組み合わせにより、通常パケットと特別パケットの識別が行える。これにより通常パケットは3種類、特別パケットが3種類の計6種類のパケットが識別可能であることがわかる。これらのパケットを状況に応じて使い分ける。
(動作フロー)
以下、受信部201の構成と動作フローをそれぞれ図3と図7を使って説明する。また送信部204の構成と動作フローをそれぞれ図4と図8を使って述べる。本実施形態では、通常にデータを処理していた処理モジュールが、リング状バスにおける特別パケット106を受信した場合に対する処理フローに特徴がある。送信元の処理モジュールが処理部において既に処理されたデータを送信先に送ることができる場合、もし特別パケット106の空きパケットを受信していたならばこれを使用して特別問い合わせパケットを生成し、送信先の処理モジュールへリング状バスを介して送信する。また、送信先の処理モジュールが、特別問い合わせパケットを受信し、もしデータを受け入れ可能であるならば、特別問い合わせパケットをそのままリング状バスへ戻す。送信元の処理モジュールは、自身の送った特別問い合わせパケットをリング状バスから受信した場合、送信先の処理モジュールは、データを受信可能と判断する。そして、自身の処理モジュールの送信部が、まだ通常パケットによりデータを送信先の処理モジュールに送信していない場合、この特別問い合わせパケットを特別なデータ転送パケットに再生成し、データをリング状バスへ送信する。一方、特別問い合わせパケットを受信した送信先の処理モジュールでデータが受け入れ不可ならば、受信した特別問い合わせパケットを特別空きパケットに再生成し、リング状バスへ送信する。
以上が、特別パケットに関する処理フローのあらましである。
図3は、受信部201の一構成例を示すブロック図である。この図において、レジスタ301は自身のノードIDを示し、カウンタ302は処理番号を表わす。比較部303は入力されたパケットをレジスタ301とカウンタ302の出力と比較する。判定部304は自身宛ての処理のためのパケットか否かを判定する。
図7は受信部201における処理手順のフロー図である。このフロー図のステップを併用して、処理の流れを説明する。
比較部303は入力端子257より入力されるリング状バス上のパケットのVALIDフラグ501、ストールフラグ502、カウント503、接続ID504を監視する。そしてS701で、受信部201はパケットのVALIDフラグ501が有効であることを検知し、S702で、判定部304が該パケットの接続ID504が自身のレジスタ301に格納されている接続IDと一致していると判定する。
S703で判定部304がパケットのカウント503がカウンタ302の値と一致していることを判定する。なお、S701では受信部201はVALIDフラグ501の有効を検知するとvalid信号251を有効とする。またS702で、通信部102のCPUは接続IDの一致を検知すると接続IDが一致したことを示す入力パケット判定信号を判定部304に入力する。同時に、S703ではカウンタの値の一致を検知するとカウント値一致信号それぞれ比較部303から判定部304に入力する。このとき出力線252には該パケットのデータがデータ処理部103へ出力される。
S701、S702、S703でのそれぞれの検知が成功すると、S704へ移る。S704で、判定部304は入力パケット判定信号、カウント値一致信号、接続されたデータ処理部103からのストール信号253により、データ処理部103がデータを取り込めるかどうかを判定する。データを取り込めるのは、入力パケット判定信号とカウント値一致信号が入力されており、かつ接続されているデータ処理部103からのストール信号253が非保留の場合である。データを取り込めると判定した場合、S706において通信部102のCPUは、信号線260を介してバッファ202にデータ取り込みを通知する。そして、バッファ202に格納される該パケットのvalidフラグとストールフラグをクリアすることでパケットを無効化する。この無効化された通常パケットは、図8の送信部の動作フローにおけるS808のNoの選択の後に通常パケットのデータ送信用として使用される。更にS707で、データ処理部103へデータを取り込む。このとき、前記データ取り込み通知信号はカウンタ302にも入力される。そして、S708で次のクロックサイクルにおいてカウンタ302のカウント値をインクリメント(+1)して処理を終了する。
一方、S704で通信部102のCPUがデータを取り込めないと判定した場合は、S705にてバッファ202に信号線260を介してデータの保留を通知する。そして、バッファ202に格納される該パケットのストールフラグをセットして処理を終了する。S705において、今回取り込めなかったデータはリング状バスを周回することになり、次の受信機会を待つことになる。
ところで、S702では、通信部102のCPUは接続IDの不一致を検知すると該パケットは自身宛てのパケットではないと判定して処理を終了する。また、S703でカウンタの値の不一致を検知すると取り込み対象パケットであるがデータの取り込み順序があっていないと判定する。この場合は、やはりデータを取り込めないので、通信部102のCPUはS705へ処理を進め、今回取り込めなかったデータをリング状バスに周回させる。
さて、比較部303はS701で該パケットのVALIDフラグ501の無効を検知すると、S709にて該パケットのストールフラグ502の保留状態を調べる。ストールフラグ502が非保留であれば、通信部102のCPUは該パケットが無効な通常パケット(空きパケット)であると判定し処理を終了する。ストールフラグ502が保留であれば、該パケットは特別パケットであると判定しS710以降の処理を継続する。
S710では、通信部102のCPUは判定部304により該パケットの接続ID504が0か否かを調べる。接続ID504が0であれば、該パケットは無効な特別パケット(空きパケット)であると判定し処理を終了する。接続ID504が1以上であればS711以降の処理を継続する。
S711では、通信部102のCPUは判定部304により該パケットの接続ID504がレジスタ301に格納されている接続IDと一致しているか調べる。接続IDが一致していなければ、該パケットは自身以外宛のパケットであると判定し処理を終了する。接続IDが一致していれば、該パケットは自身宛のパケットであると判定し、S712以降の処理を行う。なお、S711で接続IDの一致を検知すると接続IDが一致したことを示す入力パケット判定信号が、比較部303から判定部304へ入力される。
S712では、通信部102のCPUは判定部304により該パケットのカウント503が0か否かを調べる。カウント503が0であれば、該パケットは自身宛の特別パケットを使ったデータ転送であると判定し、S713で信号線260を介してバッファ202にデータ取り込みを通知する。また、バッファ202に格納される該パケットの接続ID504を0にすることでパケットを無効化する。更に、S706以降のデータ取り込み処理を行った後に処理を終了する。なお、このときカウント値一致信号は比較部303から判定部304へ入力され、データ処理部103からのストール信号253は非保留状態となる。
一方、S712で該パケットのカウント503が1以上であれば、該パケットは自身宛ての特別問い合わせパケットである。したがって、これ以降は特別問い合わせパケットに対する応答処理になる。この処理では、まず処理順番を確かめるためにS714で通信部102のCPUは判定部304により該パケットのカウント503がカウンタ302の値と一致しているか否かを調べる。カウント値が一致していれば処理順番は正しく、次のS715以降の処理を行う。なお、このときカウント値一致信号も比較部303から判定部304へ入力される。
S715では、通信部102のCPUは判定部304により問い合わせのあった順番のパケットを取り込めるか否かを判定する。判定の方法はS704と同じである。したがって、データ処理部103からのストール信号253が非保留であれば取り込みが可能であり、問い合わせに対しては受信可の意味で該パケットをそのままリング状バスへ戻す。データ処理部103からのストール信号253が保留であれば受信不可である。この場合、S716で信号線260を介してバッファ202に格納される該パケットの接続ID504を0とすることで特別問い合わせパケットを無効化して特別空きパケットを生成し処理を終了する。なお、S714で該パケットのカウント503がカウンタ302の値と一致していない場合も問い合わせに対し受信不可である。従って、S716で特別問い合わせパケットを無効化する。
図4は、送信部204の一構成例を示すブロック図である。図中、レジスタ401は、次処理を行う処理モジュールの接続IDの値を有し、カウンタ402は、次処理の処理モジュールの処理カウント値を示す。比較部403は、バッファ202からの出力をレジスタ401とカウンタ402の値を比較する。パケット生成部404は、データ処理部103で処理されたデータをパケット化し生成する。
図8は送信部204における処理手順のフローチャートである。比較部403は、バッファ202の出力パケット(信号線258)のVALIDフラグ501とストールフラグ502、カウント503、接続ID504を監視する。
そしてS801で、通信部102のCPUは、パケットのVALIDフラグ501が有効であることを検知する。S802で該パケットのストールフラグ502が非保留であることを検知し、S803で接続ID504がレジスタ401に格納されている接続IDと一致していることを検知する。なお、前記S801でVALIDフラグ501の有効が検知された場合は、該パケットが使用中であることを意味し、リング状バスにデータ処理部103のデータを出力できない。従って、接続されているデータ処理部103からのデータ出力を保留するためにストール信号254をセットする。また、S802では接続IDの一致を検知すると接続IDが一致したことを示す入力パケット判定信号を比較部403からパケット生成部404に入力する。
さて通信部102のCPUがS801、802、803でのそれぞれの検知に成功した場合、自身が過去に通常パケットを使って次処理のためにリング状バスへ周回させたデータ転送パケットが受信も保留もされずに戻ってきたことを意味する。すなわちリング状バスにはこのパケットの受信者が何らかの事情で存在しないので、これをS804において除去(空パケット化)する。このために比較部403はパケット生成部404を介してセレクタ203を制御し、VALIDフラグ501をクリアすることでパケットを無効化する。これによりパケット生成部404からのデータ転送が可能となるので、比較部403は接続されているデータ処理部103からのデータ出力の保留を解除するためにストール信号254をクリアする。
そして、次のS805では、無効な(空の)通常パケットを自身の通常のデータ転送に利用するかどうかを判定する。パケット生成部404は、接続されているデータ処理部103のVALID信号256を参照する。パケット生成部404が、データ処理部103からのデータ出力が可能と判定した場合、すなわちVALID信号256が有効の場合を考える。このときS806にてVALIDフラグ501を有効、ストールフラグ502を非保留、カウント503をカウンタ402のカウント値、接続ID504をレジスタ401の接続IDを付加したデータパケットを生成する。そして、通信部102のCPUは、セレクタ203を制御し、出力端子259より生成したパケットをリング状バス上に流す。更に、次のクロックサイクルでS807によってカウンタ402のカウント値をインクリメント(+1)する。
ところで、S802でパケットのストールフラグ502が保留であることを検知した場合は、自身或いは自身以外宛ての通常パケットのデータ転送パケットかつ保留中パケットを意味する。この場合このパケットを使用することはできないので、処理を終了する。また、S803で接続IDの不一致を検知した場合は、自身以外宛ての通常パケットのデータ転送中パケットであるので、やはりこれを使用することはできないので、処理を終了する。またS805において通信部102のCPUが、データ処理部103からの出力すべきデータ出力が無いと判定した場合も、処理することはできない。従って、セレクタ203を制御して、出力端子259より空の通常パケットをリング状バスに流す。
さて、比較部403がS801で該パケットのVALIDフラグ501の無効を検知した場合を考える。このとき、通信部102のCPUは、接続されているデータ処理部103からのデータ出力を可能にするためにストール信号254をクリアし、S808で該パケットのストールフラグ502の保留状態を調べる。ストールフラグ502が非保留であれば、該パケットは無効な通常パケット(空きパケット)であると判定し、S805以降のデータ出力処理を継続する。ストールフラグ502が保留であれば、該パケットは特別パケットであると判定しS809以降の処理を継続する。
S809では、通信部102のCPUは該パケットの接続ID504が0か否かを調べる。接続ID504が0であれば、該パケットは無効な特別空きパケットであると判定し、後述のS814以降の受信可か否かの問い合わせ処理を継続する。接続ID504が1以上であればS810以降の処理を継続する。
S810では、通信部102のCPUは該パケットの接続ID504がレジスタ401に格納されている接続IDと一致しているか否かを調べる。接続IDが一致していなければ、該パケットは自身以外宛のパケットであると判定し処理を終了する。接続IDが一致していれば、該パケットは自身がリング状バスへ流した特別問い合わせパケットが受理されたと判定し、S811以降の処理を継続する。なお、S810で接続IDの一致を検知すると接続IDが一致したことを示す入力パケット判定信号が、比較部403からパケット生成部404へ入力される。
S811では、通信部102のCPUは該パケットのカウント503がカウンタ402の値と一致しているか否かを調べる。一致した場合は、特別問い合わせパケットによって問い合わせたデータをまだ出力していないということなので、このパケットを利用して特別データ転送パケット生成する。生成するには、問い合わせに使用したパケットのカウント503を0とし、次の処理モジュールで処理すべき次回処理データをデータフレーム505に入れれば良い。そして、セレクタ203を制御し、出力端子259より生成した特別データ転送パケットをリング状バス上に流す。その後は次のクロックサイクルでS807を実行する。S811で、該パケットのカウント503がカウンタ402の値と一致しなかった場合は、該パケットによって問い合わせたデータを問い合わせ期間中に別のパケットを使用して出力してしまったということを意味する。従って、比較部403はS813にてパケット生成部404を介してセレクタ203を制御し、接続ID504を0にすることでパケットを無効化する。この無効化された特別パケットは、リング状バスに戻され、また任意の処理モジュールで受信される。
S809で、該パケットの接続ID504が0の場合、該パケットは無効な特別空きパケットである。したがって、以降ではこのパケットを使用して次処理を行う処理モジュールに対して受信可か否かの問い合わせパケットの送信処理を行う。そのためにはまず、通信部102のCPUは、S814においてS805と同様にデータの出力が可能か否かを調べる。その結果、データ出力が可能であれば、S815においてVALIDフラグ501を無効、ストールフラグ502を保留、カウント503をカウンタ402のカウント値、接続ID504をレジスタ401に設定された接続IDを付加した特別問い合わせパケットを生成する。そして、セレクタ203を制御して、出力端子259より生成した問い合わせパケットをリング状バスに流す。ただし、この場合実際に処理データを送るわけではないのでカウンタ402の値は変化させない。一方、S814でデータ出力が無い場合は、特別問い合わせパケットは生成せず、処理を終了する。
図9はデータ処理部が5個で構成されるリング状バスを有するデータ処理システムのブロック図である。図に示すように各データ処理部103−2〜103−6では、各々処理部A〜処理部Eで示される処理が入力データに対し施されるものとする。データ処理部103−2〜103−6の順番は任意に設定されるが、最終の処理の結果は入出力部101の出力端子152へ現れる。最終出力は常にデータを待つ状態にあり、言い換えれば受け取り可能なため、最後のデータ処理部の通信部と入出力部101の通信部102−1間のデータ転送は常に成立することが保証される。いま、図9における処理の順を処理部A、処理部C、処理部E、処理部D、処理部Bとすると処理部Bの通信部102−3からの処理出力は入出力部101の通信部102−1が必ず受信できる。したがって、特別パケット(特別空きパケット)が少なくとも1つ存在すれば、この通信部102−3と102−1間のデータ転送は他の通常パケットの状況にかかわらず保証される。よって、リング状バスに流された処理部Bのすべての処理結果は必ず出力部101を通ってリング状バスの外へ出される。その結果、処理部Bは必ず処理部Dからの次のデータを受信可能な状態となり、このときも特別パケットが少なくとも1つ存在するので、他の通常パケットの状況にかかわらず通信部102−5と102−3間のデータ転送保証される。すなわち、特別問い合わせパケットと特別データ転送パケットにより確実なデータ転送が行われる。つまり、特別パケットが必ず少なくとも1つ存在するリング状バスでは、入力データが届かないために処理が止まっているデータ処理部を見つけ、そこへ順次データを送り届けることができるので、滞りつつある通信部間のデータ転送であっても確実にデータ処理が進められ、デッドロック状態を回避できる。
<実施形態2>
(構成)
実施形態2では、実施形態1で述べたリング状バスを利用したデータ処理装置が、いかにして全体システムに組み込まれ適用されるか、その例を示す。図10は、データ処理装置を含むシステム全体の構成例を示す。
システム制御部1100は、いわゆるコンピュータであり、演算制御用のCPU1101、固定データやプログラムを格納するROM1102、データの一時保存やプログラムのロードに使用されるRAM1103および、外部データを保持する外部記憶装置1104等により構成される。
CPU1101は、処理すべきデータをシステム外部より取り込むデータ入力部である。たとえばイメージスキャナおよびA/D変換器などのデバイスによって構成される画像読み込み装置や、マイクおよびA/D変換などのデバイスによって構成される音声入力装置などであってもよい。
データ処理装置1120は、本実施形態におけるリング状バスによるデータ処理を行う。データ出力部1130は、本システムにおいて処理されたデータを外部に出力する。例えば、データ処理装置1120は、画像データを印字ドットパターンに変換して出力するプリンタデバイスを含む画像出力装置や、音声データをD/A変換器等を通して出力する音声出力装置であってもよい。
データ入力部1110において入力されたデータは、システム制御部1100の送られてCPU1101で処理されてもよいし、そのままRAM1103や外部記憶装置1104に一時記憶されてもよい。従ってデータ処理装置1120は、データ入力部1110からの入力データを直接受け取って処理を行っても、システム制御部1100からの指示ならびにデータ供給によって処理を行ってもよい。また、データ処理装置1120の出力は、再度システム制御部1100に送られても、更に、直接データ出力部1130に送られてもよい。
データ処理装置1120には、システム制御部1100の制御によって、様々なデータに対する処理が設定され、そして様々な処理データが供給され、その設定に応じた処理を実行し、処理データを外部に出力する。
(動作フロー)
図11に、システム制御部1100からのデータを処理するデータ処理装置の制御手順を示す。制御処理が開始されると、S1210において、データ処理システムのリセットが行われる。このとき、リング状バスを構成するバッファ202、接続IDを設定するレジスタ301、レジスタ401、データ処理順を示すカウンタ302、カウンタ402、不図示のカウンタ増分レジスタ、パケット無効化設定レジスタ等が初期化される。なお、本実施形態では、特別パケットを識別するために接続IDやカウンタが0であることを利用しているので、接続IDには1以上の値、各カウンタの初期値には1を使う。
S1220において、通信部102の接続IDを格納するレジスタ301、レジスタ401が設定される。また、必要に応じて、データ処理順を示すカウンタ302、カウンタ402の初期値や増分、パケット無効化設定レジスタ等が設定される。S1230において、データの処理部103に対するパラメータ指定などが行われ、S1240において、データ処理システムの起動指示が行われる。
S1250では、データ処理装置の終了通知を監視する処理が行わる。このステップは、S1260において、処理終了が検知されたことを判断するまで繰り返される。S1260において、データ処理装置の終了通知が確認されると、処理を終了する。
以上説明したように、応用範囲の広いシステムに実施形態1のデータ処理装置を含めると、データ処理におけるデットロックを回避できることがわかる。システムのデータ処理装置には、まず装置内のリング状バスを周回する処理データと少なくとも1つの特別データパケットが用意される。この特別パケットを任意の処理モジュールが受信することで、特別問い合わせパケットが生成され、処理モジュール間で確実にデータパケットが転送できることが確認された後、特別データ転送パケットによりに処理データが確実に転送される。従って、リング状バスが通常のデータパケットによってどのような占有状況であったとしても確実に処理を継続できるため、デッドロック状態に陥らずに処理を継続することが可能となる。
また、前述の各実施例の処理は、複数のハードウェアとソフトウエアの協同によって実現するようにしてもよい。この場合、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)をコンピュータ等の処理装置(CPU、プロセッサ)にて実行することで実現できる。また、本発明は前述した実施例の機能をコンピュータに実現させるプログラムを記憶した記憶媒体を、システム或いは装置に供給することによって実現してもよい。

Claims (7)

  1. リング状バスと、
    前記リング状バスに接続され、前記リング状バスを周回するパケットを用いて相互にデータの授受を行う複数のデータ処理手段と、
    前記リング状バスに前記パケットと区別される特別パケットを投入し、前記リング状バスを周回させる投入手段とを備え、
    前記複数のデータ処理手段の各々は、
    データの送信に際して前記特別パケットを空の状態で取得した場合には、前記特別パケットを用いて前記データの送信先のデータ処理手段がデータを受け入れ可能か否かを確認する確認手段を備え
    前記送信先のデータ処理手段は、受け入れ可能であると判断された場合には、前記特別パケットをそのまま前記リング状バスに送信し、受け入れ不可であると判断された場合には、前記特別パケットを空の状態にして前記リング状バスへ送信する送信手段を備えるデータ処理装置。
  2. 前記確認手段は、
    送信元のデータ処理手段から前記送信先のデータ処理手段に宛てて、前記特別パケットを問い合わせパケットとして送信する手段と、
    前記送信先のデータ手段が前記問い合わせパケットを受信したときデータを受け入れ可能であれば、前記問い合わせパケットをそのまま前記リング状バスへ戻して前記リング状バスへ送信し、受け入れ不可であれば、前記問い合わせデータを空の状態の前記特別パケットに戻して前記リング状バスへ送信する手段と、
    前記送信元のデータ処理手段は、前記送信先のデータ処理手段へ送信した前記問い合わせパケットを前記リング状バスより受信した場合に前記送信先のデータ処理手段が受け入れ可能であると判断する手段とを備えることを特徴とする請求項1に記載のデータ処理装置。
  3. 外部にデータを入出力する入出力部を更に備える請求項1又は2に記載のデータ処理装置。
  4. トークンリングバスと、
    前記トークンリングバスに接続され、前記トークンリングバスを周回するパケットを用いて相互にデータの授受を行う複数のデータ処理装置と、
    前記トークンリングバスに前記パケットと区別される特別パケットを投入し、前記トークンリングバスを周回させる投入手段とを備え、
    前記複数のデータ処理装置の各々は、
    データの送信に際して前記特別パケットを空の状態で取得した場合には、前記特別パケットを用いて前記データの送信先のデータ処理装置がデータを受け入れ可能か否かを確認する確認手段を備え
    前記送信先のデータ処理手段は、受け入れ可能であると判断された場合には、前記特別パケットをそのまま前記リング状バスに送信し、受け入れ不可であると判断された場合には、前記特別パケットを空の状態にして前記リング状バスへ送信する送信手段を備えるデータ処理システム。
  5. リング状バスと、前記リング状バスに接続され、前記リング状バスを周回するパケットを用いて相互にデータの授受を行う複数のデータ処理手段におけるデータ処理の方法であって、
    前記リング状バスに前記パケットと区別される特別パケットを投入し、前記リング状バスを周回させる工程と、
    前記複数のデータ処理手段の各々が、データの送信に際して前記特別パケットを空の状態で取得した場合には、前記特別パケットを用いて前記データの送信先のデータ処理手段がデータを受け入れ可能か否かを確認する工程を備え
    前記送信先のデータ処理手段が、受け入れ可能であると判断された場合には、前記特別パケットをそのまま前記リング状バスに送信し、受け入れ不可であると判断された場合には、前記特別パケットを空の状態にして前記リング状バスへ送信する程を備える方法。
  6. 請求項5に記載のデータ処理の方法の各工程をコンピュータに実行させるためのプログラム。
  7. リング状バスと、
    前記リング状バスに接続され、前記リング状バスを周回するパケットを用いて相互にデータの授受を行う複数のデータ処理手段と、
    前記リング状バスに前記パケットと区別される特別パケットを投入し、前記リング状バスを周回させる投入手段とを備え、
    前記複数のデータ処理手段の各々は、
    データの送信に際して前記特別パケットを空の状態で取得した場合には、前記特別パケットを用いて前記データの送信先のデータ処理手段がデータを受け入れ可能か否かを確認する確認手段と、
    前記確認手段により受け入れ可能であると判断された場合には、前記特別パケットを用いて前記データを前記送信先のデータ処理手段へ送信する送信手段とを備え、
    前記確認手段は、
    送信元のデータ処理手段から前記送信先のデータ処理手段に宛てて、前記特別パケットを問い合わせパケットとして送信する手段と、
    前記送信先のデータ手段が前記問い合わせパケットを受信したときデータを受け入れ可能であれば、前記問い合わせパケットをそのまま前記リング状バスへ戻して前記リング状バスへ送信し、受け入れ不可であれば、前記問い合わせデータを空の状態の前記特別パケットに戻して前記リング状バスへ送信する手段とを備え、
    前記送信元のデータ処理手段は、前記送信先のデータ処理手段へ送信した前記問い合わせパケットを前記リング状バスより受信した場合に前記送信先のデータ処理手段が受け入れ可能であると判断する手段を備えることを特徴とするデータ処理装置。
JP2009118043A 2009-05-14 2009-05-14 データ処理装置、その制御方法およびプログラム Expired - Fee Related JP5432587B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009118043A JP5432587B2 (ja) 2009-05-14 2009-05-14 データ処理装置、その制御方法およびプログラム
US12/729,633 US8457149B2 (en) 2009-05-14 2010-03-23 Data processing apparatus, control method therefor and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009118043A JP5432587B2 (ja) 2009-05-14 2009-05-14 データ処理装置、その制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2010268241A JP2010268241A (ja) 2010-11-25
JP5432587B2 true JP5432587B2 (ja) 2014-03-05

Family

ID=43069418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009118043A Expired - Fee Related JP5432587B2 (ja) 2009-05-14 2009-05-14 データ処理装置、その制御方法およびプログラム

Country Status (2)

Country Link
US (1) US8457149B2 (ja)
JP (1) JP5432587B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5014362B2 (ja) * 2009-02-25 2012-08-29 キヤノン株式会社 情報処理装置及びその制御方法、コンピュータプログラム
JP5414506B2 (ja) * 2009-12-18 2014-02-12 キヤノン株式会社 データ処理装置、データ処理方法、及びプログラム
JP5835942B2 (ja) * 2010-06-25 2015-12-24 キヤノン株式会社 画像処理装置、その制御方法及びプログラム
JP5600492B2 (ja) 2010-06-28 2014-10-01 キヤノン株式会社 データ処理装置、データ処理方法、制御装置、制御方法およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0650870B2 (ja) * 1987-01-14 1994-06-29 富士通株式会社 スロットリングネットワークシステム
JP2522952B2 (ja) 1987-07-20 1996-08-07 三洋電機株式会社 リング状ネットワ−ク装置
EP0802655A3 (en) * 1996-04-17 1999-11-24 Matsushita Electric Industrial Co., Ltd. Communication network
US6526452B1 (en) * 1998-11-17 2003-02-25 Cisco Technology, Inc. Methods and apparatus for providing interfaces for mixed topology data switching system
US7499468B2 (en) * 2001-04-06 2009-03-03 Montgomery Jr Charles Donald Method of adapting an optical network to provide lightpaths to dynamically assigned higher priority traffic
JP2003258820A (ja) * 2002-02-27 2003-09-12 Nippon Telegr & Teleph Corp <Ntt> 予約パケット流用ネットワーク、予約パケット流用方法、予約パケット流用プログラム並びにそのプログラムを記録した記録媒体
JP2006295690A (ja) * 2005-04-13 2006-10-26 Canon Inc 情報処理装置
US9152644B2 (en) * 2008-12-30 2015-10-06 Novell, Inc. Systems and methods for providing collaborative editing

Also Published As

Publication number Publication date
US20100293310A1 (en) 2010-11-18
US8457149B2 (en) 2013-06-04
JP2010268241A (ja) 2010-11-25

Similar Documents

Publication Publication Date Title
JP5922898B2 (ja) 情報処理装置、通信方法およびプログラム
US8995476B2 (en) Data processing apparatus, data processing method, and computer-readable storage medium
JP5014362B2 (ja) 情報処理装置及びその制御方法、コンピュータプログラム
EP2312457B1 (en) Data processing apparatus, data processing method and computer-readable medium
JP5432587B2 (ja) データ処理装置、その制御方法およびプログラム
JP5419493B2 (ja) データ処理装置、データ処理装置の制御方法、およびプログラム
JP5538798B2 (ja) データ処理装置およびデータ処理方法またはプログラム
JP5341623B2 (ja) データ処理装置、データ処理方法およびプログラム
JP5932242B2 (ja) 情報処理装置、通信方法、及びプログラム
JP4869369B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP5414506B2 (ja) データ処理装置、データ処理方法、及びプログラム
JP5460088B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP6139857B2 (ja) データ処理装置、入力制御装置、及び制御方法
JP5600492B2 (ja) データ処理装置、データ処理方法、制御装置、制御方法およびプログラム
JP5534711B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2007214981A (ja) データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法
JP2019168739A (ja) 並列計算システム
JP3799741B2 (ja) バスコントローラ
JP2010245953A (ja) 情報処理装置、情報処理方法
JP2011170560A (ja) データ処理装置及びデータ処理方法
JP2022095198A (ja) 情報処理装置
JP2010287175A (ja) データ処理装置、データ処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130911

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: 20131108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131206

R151 Written notification of patent or utility model registration

Ref document number: 5432587

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees