JP5125885B2 - データ入出力装置 - Google Patents

データ入出力装置 Download PDF

Info

Publication number
JP5125885B2
JP5125885B2 JP2008216664A JP2008216664A JP5125885B2 JP 5125885 B2 JP5125885 B2 JP 5125885B2 JP 2008216664 A JP2008216664 A JP 2008216664A JP 2008216664 A JP2008216664 A JP 2008216664A JP 5125885 B2 JP5125885 B2 JP 5125885B2
Authority
JP
Japan
Prior art keywords
output
data
response
input
fifo module
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.)
Active
Application number
JP2008216664A
Other languages
English (en)
Other versions
JP2010055170A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2008216664A priority Critical patent/JP5125885B2/ja
Publication of JP2010055170A publication Critical patent/JP2010055170A/ja
Application granted granted Critical
Publication of JP5125885B2 publication Critical patent/JP5125885B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、データ入出力装置に関する。
プロセッサシステムにおいて、デバイス間でデータのやり取りを行うにあたり、デバイス毎のデータの入出力タイミングや処理速度の違いを吸収するため、データを一時的に格納する複数のバッファを備え、各デバイスはバッファを介してデータのやり取りをする構成が知られている。しかし、この構成では、複数のバッファのいずれもがデバイス間でやりとりされる最大データ長以上の格納領域を有している必要があり、バッファの利用効率が低下するという問題がある。そこで、複数のバッファの代わりに、入力したデータを入力した順に出力するFIFO(First in First out)方式でデータを格納するFIFOモジュールを用いることが知られている(例えば、特許文献1参照)。
特開2008−36884号公報(図6)
ところで、プロセッサがメモリを制御するメモリコントローラなどのデバイスに対して複数のリクエストを出力して、デバイスからリクエストに対するレスポンスを受け取る場合に、プロセッサがリクエストを出力した順序でしかレスポンスを受け付けない場合がある。しかし、プロセッサが複数のデバイスにリクエストを出力した場合には、リクエストに対するレスポンスが返るまでの時間であるレイテンシがデバイス毎に異なることで、リクエストを出力した順序でレスポンスが返らないことがある。また、マルチバンクアクセス方式のメモリでは、処理速度を向上させるためにリクエストの順序を入れ替えて処理することがあるため、この場合もリクエストを出力した順序でレスポンスが返らないことがある。このような場合にレスポンスをFIFOモジュールが格納すると、プロセッサがリクエストを出力した順序でレスポンスを返すことができなくなってしまう。
本発明は、上述した課題に鑑みなされたものであり、FIFOモジュールがデータを格納する順序とデータを出力すべき順序とが異なる場合に、出力すべき順序でデータを出力することを主目的とする。
本発明は、上述の主目的を達成するために以下の手段を採った。
本発明のデータ入出力装置は、
出力する順序に関する順序情報を有するデータを入力側デバイスから入力して保持し、出力側デバイスへ出力するデータ入出力装置であって、
FIFOモジュールと、
前記FIFOモジュールから該FIFOモジュールに最先に格納されたデータである先頭データを出力するときの出力先を前記出力側デバイスと該FIFOモジュール自身とのいずれかに設定する設定手段と、
前記入力側デバイスから新たなデータを入力したときには、該新たなデータを前記FIFOモジュールに格納する格納処理を実行する入力制御手段と、
前記FIFOモジュールの前記先頭データが有する順序情報に基づいて、該先頭データが次に前記出力側デバイスへ出力すべきデータか否かを判定する判定処理を実行し、前記判定処理で肯定的な判定をしたときには前記出力先を前記出力側デバイスに設定するよう前記設定手段を制御して前記先頭データを前記出力側デバイスへ出力する出力処理を実行し、前記判定処理で否定的な判定をしたときには前記出力先を前記FIFOモジュールに設定するよう前記設定手段を制御して前記先頭データを前記FIFOモジュールに新たなデータとして再度格納する再格納処理を実行する出力制御手段と、
を備えたものである。
本発明のデータ入出力装置では、出力する順序に関する順序情報を有するデータを入力側デバイスから入力して保持し出力側デバイスへ出力するにあたり、入力側デバイスから新たなデータを入力したときには、新たなデータをFIFOモジュールに格納する格納処理を実行する。また、FIFOモジュールの先頭データが有する順序情報に基づいて、先頭データが次に出力側デバイスへ出力すべきデータか否かを判定する判定処理を実行し、判定処理で肯定的な判定をしたときには出力先を出力側デバイスに設定して先頭データを出力側デバイスへ出力する出力処理を実行し、判定処理で否定的な判定をしたときには出力先をFIFOモジュールに設定して先頭データをFIFOモジュールに新たなデータとして再度格納する再格納処理を実行する。こうすることにより、FIFOモジュールの先頭データが次に出力すべきデータでないときにはFIFOモジュールが先頭データを新たなデータとして再格納し、先頭データが次に出力すべきデータとなるまでは出力処理が実行されず再格納処理が繰り返される。したがって、FIFOモジュールがデータを格納する順序が出力側デバイスへ出力すべき順序とは異なる場合でも、出力すべき順序で出力側デバイスへデータを出力できる。
本発明のデータ入出力装置において、前記入力制御手段は、前記出力制御手段によって実行される前記再格納処理よりも優先して前記格納処理を行う手段としてもよい。こうすることにより、新たなデータを出力しようとしている入力側デバイスを待たせることがなくなり、入力側デバイスの処理速度の低下を防止できる。
本発明のデータ入出力装置において、前記FIFOモジュールを複数備え、前記設定手段は、前記複数のFIFOモジュールから該複数のFIFOモジュールの各先頭データを出力するときの各先頭データの出力先をそれぞれ前記出力側デバイスと該先頭データを格納しているFIFOモジュール自身とのいずれかに設定する手段とし、前記入力制御手段は、前記入力側デバイスから新たなデータを入力したときには、該新たなデータを前記複数のFIFOモジュールのいずれか1つに格納する格納処理を実行する手段とし、前記出力制御手段は、前記複数のFIFOモジュールの各先頭データが有する順序情報に基づいて、各先頭データのいずれかが次に前記出力側デバイスへ出力すべきデータか否かを判定する判定処理を実行し、前記判定処理で肯定的な判定をしたときには前記次に出力すべきデータと判定された先頭データを格納するFIFOモジュールの出力先を前記出力側デバイスに設定するよう前記設定手段を制御して前記次に出力すべきデータと判定された先頭データを前記出力側デバイスへ出力する出力処理を実行し、前記判定処理で否定的な判定をしたときには前記複数のFIFOモジュールの各出力先をそれぞれ該FIFOモジュール自身に設定するよう前記設定手段を制御して前記複数のFIFOモジュールの各先頭データを該FIFOモジュール自身に新たなデータとして再度格納する再格納処理を実行する手段としてもよい。こうすることにより、同時に複数の先頭データに対して判定処理や再格納処理を実行することができるため、出力すべき順序で出力側デバイスへデータをより早く出力することができる。
上述したFIFOモジュールを複数備える構成のデータ入出力装置において、前記出力制御手段が前記出力処理を行っている間に、該出力処理を行っていないFIFOモジュールの各先頭データが有する順序情報に基づいて、各先頭データのいずれかが該出力処理で出力している先頭データの次に出力すべきデータか否かを判定する予備判定処理を実行し、前記予備判定処理で否定的な判定をしたときには、該出力処理を行っていないFIFOモジュールの各出力先をそれぞれ該FIFOモジュール自身に設定するよう前記設定手段を制御して該出力処理を行っていないFIFOモジュールの各先頭データを該FIFOモジュール自身に新たなデータとして再度格納する予備再格納処理を実行する予備出力制御手段を備えるものとしてもよい。こうすることにより、出力処理を行っている間に、出力処理で出力しているFIFOモジュールの先頭データの次に出力すべきデータが他のFIFOモジュールの先頭データになる可能性が高くなり、出力処理が終了した後の次の判定処理で肯定的な判定がなされる可能性を高くすることができる。
次に、本発明の実施の形態を図面に基づいて説明する。図1は本発明の実施形態であるプロセッサシステム10の構成の概略を示す構成図である。
プロセッサシステム10は、図1に示すように、プロセッサ20がバス70を介してバスコントローラユニット30と接続されている。また、バスコントローラユニット30はバス80を介してメモリ61のデータの入出力を制御するメモリコントローラ60と接続されている。
プロセッサ20は、メモリ61に記憶された画像データの印刷に関する処理を行うプロセッサである。具体的には、メモリ61から読み出した印刷対象の画像データを印刷イメージデータに変換してメモリ61に記憶するデータ変換処理や、メモリ61から読み出した印刷イメージデータに基づいて図示しない印刷装置が印刷する場合に必要なインク量をカウントするインク量カウント処理や、カウントしたインク量に基づいて決定した1走査分の印刷イメージデータをメモリ61から読み出して印刷イメージデータに基づく画像を印刷するよう図示しない印刷装置を制御する印刷処理を行う。プロセッサ20は、これらの処理を行うにあたり、メモリコントローラ60に対するデータの入出力要求であるリクエストをバス70に出力する。このリクエストは、データの読み出し又は書き込みのいずれかを指定するコントロール情報と、データの読み出し又は書き込みを行うメモリ61のアドレスを指定するアドレス情報とを有しており、リクエストが書き込みを要求する場合には書き込むデータも有している。また、リクエストはプロセッサが定めた順序“1”〜“8”までの順序情報を有している。この順序情報はプロセッサがリクエストを出力した順に順序“1”から順番に値1ずつ大きい値となり、順序“8”の次は再び順序“1”になる。また、メモリコントローラ60がリクエストに対応してバス80に出力するレスポンスも同じ順序情報を有しており、プロセッサ20は、リクエストを出力した順序でレスポンスを入力することを前提として動作している。なお、レスポンスが返ってきていないリクエストが9個以上存在すると同じ順序情報を有するレスポンスが複数返ってくることになってしまうため、レスポンスが返ってきていないリクエストが8個存在するときには、それ以上リクエストを行わない。
バスコントローラユニット30は、バス70,80におけるデータの入出力を調停する装置であり、バスコントローラユニット30の全体の制御を司るコントローラ31と、バス70から入力したリクエストを保持するリクエスト保持部40と、バス80から入力したレスポンスを保持するレスポンス保持部50と、を備えている。
コントローラ31は、リクエスト保持部40及びレスポンス保持部50を制御して、バス70を介してプロセッサ20が出力したリクエストを順番にリクエスト保持部40に入力するリクエスト入力処理や、バス80を介してリクエスト保持部40が保持するリクエストを順番にメモリコントローラ60に出力するリクエスト出力処理や、バス80を介してメモリコントローラ60が出力したレスポンスを順番にレスポンス保持部50に入力するレスポンス入力処理や、バス70を介してレスポンス保持部50が保持するレスポンスを順序情報で定められた順序通りにプロセッサ20に出力するための後述する判定処理,レスポンス出力処理,レスポンス再格納処理などを行う。
リクエスト保持部40は、リクエストを先入れ先出し(FIFO)の形式で格納する第1FIFOモジュール41を備えており、コントローラ31がリクエスト入力処理を行うとバス70からリクエストを入力して第1FIFOモジュール41に格納し、コントローラ31がリクエスト出力処理を行うと格納したリクエストをバス80に出力する。
レスポンス保持部50は、レスポンスを格納する第2FIFOモジュール51と、出力先を選択する出力先セレクタ52と、入力元を選択する入力元セレクタ53とを備えている。出力先セレクタ52は、コントローラ31がレスポンス出力処理及びレスポンス再格納処理を行うときに出力する制御信号によって、第2FIFOモジュール51から出力されるレスポンスの出力先を入力元セレクタ53とバス70とのいずれかに設定するものである。入力元セレクタ53は、コントローラ31がレスポンス入力処理及びレスポンス再格納処理を行うときに出力する制御信号によって、第2FIFOモジュール51に入力するレスポンスの入力元を出力先セレクタ52とバス80とのいずれかに設定するものである。
第2FIFOモジュール51は、レスポンスを格納するメモリ領域51aと、メモリ領域51aの読み出しポインタ及び書き込みポインタを設定するポインタ設定部51bと、メモリ領域51aに格納しているレスポンスの数を記憶するレスポンス数記憶部51cと、を備えている。メモリ領域51aは、読み出しポインタ及び書き込みポインタによって領域内の位置を指定できるようになっており、コントローラ31がレスポンスを出力するよう制御すると、読み出しポインタで指定された位置からレスポンスが読み出され、コントローラ31がレスポンスを格納するよう制御すると、書き込みポインタで指定された位置からレスポンスが書き込まれる。なお、レスポンスの読み出しと書き込みとを同時に行うことも可能である。ポインタ設定部51bは、メモリ領域51aに最先に格納されたレスポンスすなわち先頭レスポンスの位置を読み出しポインタが指定し、メモリ領域51aに最後に格納されたレスポンスすなわち後尾レスポンスの次の位置を書き込みポインタが指定するように、読み出しポインタ及び書き込みポインタを設定する。レスポンス数記憶部51cは、レスポンスを入出力する毎に記憶しているレスポンス数を増減させて、現在メモリ領域51aが格納しているレスポンスの数を記憶する。なお、第1FIFOモジュール41も、レスポンスの代わりにリクエストを格納する点以外は第2FIFOモジュール51と同様である。ここで、コントローラ31は、第1,第2FIFOモジュール41,51のそれぞれの読み出しポインタ,書き込みポインタ,レスポンス数に基づいて、メモリ領域51aの空き状態を把握している。
メモリコントローラ60は、複数のバンクで構成されたマルチバンクメモリであるメモリ61へのデータの入出力を制御する装置である。このメモリコントローラ60は、バス80からリクエストを入力すると、入力したリクエストのアドレス情報,コントロール情報に基づいてデータの入出力を行うようメモリ61を制御し、リクエストに対応する順序情報と書き込み完了通知又は読み出したデータとを有するレスポンスをバス80に出力する。なお、メモリコントローラ60は、データの読み出しや書き込みの処理時間をなるべく短くするため、入力したリクエストを処理する順序を入れ替えることがある。そのため、メモリコントローラ60から出力されるレスポンスの順序は、レスポンスが有する順序情報の順番通りにならない場合がある。例えば、順序“2”のレスポンスが順序“1”のレスポンスよりも早くメモリコントローラ60から出力される場合がある。
次に、こうして構成された実施形態のプロセッサシステム10の動作、特に、メモリコントローラ60から入力したレスポンスを順序情報で定められた順序通りにプロセッサ20に出力するときのバスコントローラユニット30の動作について説明する。
図2は、バスコントローラユニット30のコントローラ31が実行するレスポンス出力ルーチンの一例を示すフローチャートである。このレスポンス出力ルーチンは、例えばプロセッサ20がリクエストを出力しておらずバス70が使用可能な状態にあるときなどの、レスポンス出力タイミングで実行される。
このレスポンス出力ルーチンが実行されると、コントローラ31は、まず、第2FIFOモジュール51が格納している先頭レスポンスの順序情報が順序ガイド値と一致するか否かを判定する判定処理を行う(ステップS100)。ここで、コントローラ31は、プロセッサ20に次に出力すべきレスポンスの順序情報を順序ガイド値として記憶している。この順序ガイド値は初期値が“1”であり、レスポンスがプロセッサ20に出力される毎に1インクリメントされる。プロセッサ20はリクエストを順序“1”から順に出力するため、レスポンスも順序“1”から順にプロセッサ20に出力する必要があるが、この順序ガイド値と先頭レスポンスの順序情報とが一致するか否かを判定することで、先頭レスポンスが次に出力すべきレスポンスであるか否かを判定することができる。
そして、ステップS100で肯定的な判定をしたときには、順序ガイド値を1インクリメントして(ステップS110)、第2FIFOモジュール51の先頭レスポンスが出力先セレクタ52を経由してバス70に出力されるよう第2FIFOモジュール51及び出力先セレクタ52を制御するレスポンス出力処理を行い(ステップS120)、本ルーチンを終了する。
一方、ステップS100で否定的な判定をしたときには、レスポンス入力処理を実行中であればレスポンス入力処理が終了するまで待ってから(ステップS130)、第2FIFOモジュール51の先頭レスポンスが出力先セレクタ52及び入力元セレクタ53を経由して第2FIFOモジュール52に再度格納されるよう第2FIFOモジュール51,出力先セレクタ52,入力元セレクタ53を制御するレスポンス再格納処理を行い(ステップS140)、本ルーチンを終了する。このレスポンス再格納処理によって、第2FIFOモジュール51の先頭レスポンスが再度入力されて第2FIFOモジュール51の後尾レスポンスとなり、第2FIFOモジュール51の先頭レスポンスの次に格納されていたレスポンスが新たな先頭レスポンスとなる。そして、次のレスポンス出力タイミングで再びレスポンス出力ルーチンが実行されると、新たな先頭レスポンスについてステップS100の判定を行うのである。このようにレスポンス出力ルーチンをレスポンス出力タイミングの度に実行することで、次に出力すべき順序のレスポンスのみがバス80に出力されるため、プロセッサ20は順序情報で定められた順序通りにレスポンスを入力することができる。
次に、レスポンス入力処理について説明する。レスポンス入力処理は、レスポンス出力ルーチンとは独立して実行可能であり、例えばメモリコントローラ60が出力したバス80の使用要求を図示しない信号線を介して入力したときなどの、レスポンス入力タイミングで実行される。このレスポンス入力処理は、コントローラ31が、第2FIFOモジュール51にバス80からのレスポンスを入力元セレクタ53を経由して格納するよう、第2FIFOモジュール51及び入力元セレクタ53を制御する処理である。なお、上述したステップS130でレスポンス入力処理が終了するのを待つのは、レスポンス入力処理とステップS140のレスポンス再格納処理とを同時には実行できないためである。そのため、このステップS130により、レスポンス入力処理がレスポンス再格納処理よりも優先して実行されるようにしているのである。
上述したレスポンス出力ルーチンによって第2FIFOモジュール51が格納しているレスポンスをバス70に出力するときの様子を図3を用いて説明する。図3(a)は、レスポンス入力処理によって、メモリコントローラ60が出力した順序“3”のレスポンスA,順序“1”のレスポンスBをこの順に第2FIFOモジュール51が格納した状態を示している。この図3(a)の状態で初めてレスポンス出力タイミングになったとすると、コントローラ31は、上述したレスポンス出力ルーチンを実行する。そして、第2FIFOモジュール51の先頭レスポンスであるレスポンスAは順序ガイド値の初期値“1”とは異なる順序情報を有しているためステップS100で否定的な判定をして、ステップS130の処理を実行する。ここで、ステップS130の処理を実行したときに、メモリコントローラ60がバス80の使用要求を出力して順序“2”のレスポンスCを出力しようとしていたとすると、レスポンス入力タイミングとなってコントローラ31はレスポンス出力ルーチンと独立してレスポンス入力処理を実行するため、ステップS130で否定的な判定が繰り返され、図3(b)に示すように第2FIFOモジュール51がレスポンスCを格納した後に、ステップS140の処理を実行してレスポンス出力ルーチンを終了する。このステップS140の処理により、図3(c)に示すように、第2FIFOモジュール51の先頭レスポンスであるレスポンスAが再格納されて後尾レスポンスとなり、代わりにレスポンスAの次に格納したレスポンスBが先頭レスポンスとなる。
そして、図3(c)の状態で2回目のレスポンス出力タイミングになったとすると、2回目のレスポンス出力ルーチンが実行され、ステップS100で肯定的な判定がなされる。そして、ステップS110で順序ガイド値が1インクリメントされて“2”となり、図3(d)に示すようにステップS120で順序“1”のレスポンスBを出力するレスポンス出力処理を行い、図3(e)に示すようにレスポンスCが先頭レスポンスとなる。さらに、この状態で3回目のレスポンス出力タイミングとなったとすると、3回目のレスポンス出力ルーチンのステップS100で肯定的な判定がなされて、ステップS120で順序“2”のレスポンスCが出力される。このように、レスポンス出力ルーチンを実行することで、順序情報で定められた順序通りにレスポンスを出力することができる。
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。実施形態の第2FIFOモジュール51が本発明のFIFOモジュールに相当し、出力先セレクタ52と入力元セレクタ53とが設定手段に相当し、コントローラ31が入力制御手段及び出力制御手段に相当する。
以上詳述した本実施形態では、レスポンス出力ルーチンを繰り返し実行することで、第2FIFOモジュール51に格納されたレスポンスが出力すべき順序と異なる順序で格納されていても、出力すべき順序通りにレスポンスを出力することができる。また、レスポンス入力処理をレスポンス再格納処理よりも優先して実行するため、バス80にレスポンスを出力しようとしているメモリコントローラ60を待たせることがなくなり、メモリコントローラ60の処理速度の低下を防止できる。
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
例えば、上述した実施形態では、レスポンスは第2FIFOモジュール51にのみ格納されるが、バスコントローラユニット30がレスポンス保持部50と同様の構成のレスポンス保持部を複数備えており、複数のFIFOモジュールにレスポンスが格納されるものとしてもよい。この場合、上述した図2のレスポンス出力ルーチンのS100,S140を複数のFIFOモジュールに対して行うこととしてもよい。例えば、バスコントローラユニット30がレスポンス保持部50と同様の構成である第2レスポンス保持部55を備えており、この第2レスポンス保持部55が第3FIFOモジュール56を備えている場合に、レスポンスをバス70に出力するときの様子を図4を用いて説明する。図4(a)は、レスポンス入力処理によって、メモリコントローラ60が出力した順序“3”のレスポンスD,順序“1”のレスポンスFをこの順に第2FIFOモジュール51が格納し、順序“4”のレスポンスE,順序“5”のレスポンスG,順序“2”のレスポンスHをこの順に第3FIFOモジュール56が格納した状態を示している。なお、レスポンス入力処理によって第2,第3FIFOモジュール51,56のいずれにレスポンスを入力するかはどのように決定してもよく、例えば空き領域の大きい方に入力するものとしてもよいし、格納するデータ数の少ない方に入力するものとしてもよい。この状態で初めてレスポンス出力ルーチンを実行すると、ステップS100では、第2,第3FIFOモジュール51,56のいずれの先頭レスポンスの順序情報も順序ガイド値“1”とは一致しないため否定的な判定をする。そして、ステップS130でレスポンス入力処理中でなければ、ステップS140で、第2,第3FIFOモジュール51,56の両方に対して上述したレスポンス再格納処理を行い、レスポンス出力ルーチンを終了する。これにより、図4(b)に示すようにレスポンスF,Gがそれぞれ第2,第3FIFOモジュール51,56の先頭レスポンスとなる。そして、2回目のレスポンス出力ルーチンでは、第2FIFOモジュール51の先頭レスポンスFが順序“1”であるためステップS100で肯定的な判定をして、ステップS110で順序ガイド値を1インクリメントし、図4(c)に示すようにステップS120でレスポンスFがバス70に出力される。このように、複数のFIFOモジュールに対してレスポンス出力ルーチンを実行することで、同時に複数の先頭レスポンスに対して判定処理や再格納処理を実行することができるため、出力すべき順序通りにレスポンスをより早く出力することができる。
また、上述した複数のFIFOモジュールにレスポンスを格納する構成において、レスポンス出力ルーチンのステップS120を実行している間に、図5に示すレスポンス出力予備ルーチンを実行するものとしてもよい。なお、レスポンス出力予備ルーチンのステップS200,S220,S230では、ステップS120のレスポンス出力処理を行っていないFIFOモジュールに対してのみ行う点以外は、レスポンス出力ルーチンのステップS100,S130,S140と同様である。このレスポンス出力予備ルーチンを実行する様子を図6を用いて説明する。図6(a),(b)は前出の図4(a),(b)と同じであるため、図6(b)に至るまでの説明は省略する。図6(b)の状態で上述した2回目のレスポンス出力ルーチンが実行されると、コントローラ31は、ステップS120でレスポンスFを出力するレスポンス出力処理を実行するとともに、これと平行してレスポンス出力予備ルーチンを実行する。このルーチンが実行されると、まず、ステップS120でレスポンス出力処理を行っていないFIFOモジュールに対してステップS100と同様の処理である予備判定処理を行う(ステップS200)。したがって、図6(b)では第2FIFOモジュール51はレスポンス出力処理を行っているので、ステップS200では、第3FIFOモジュール56の先頭レスポンスすなわちレスポンスGの順序情報が順序ガイド値“2”と一致するか否かを判定する。そして、レスポンスGは順序情報が“5”であるため否定的な判定をすると、ステップS120のレスポンス出力処理が終了したか否かを判定し(ステップS210)、終了していなければレスポンス入力処理中であるか否かを判定する(ステップS220)。そして、レスポンス入力処理中でなければステップS120でレスポンス出力処理を行っていないFIFOモジュールに対してステップS140と同様の処理であるレスポンス予備再格納処理を行う(ステップS230)。なお、ステップS220でレスポンス入力処理中と判定したときには、レスポンス入力処理を優先するためステップS210に戻る。まだステップS120のレスポンス出力処理中でありレスポンス入力処理は行っていないとすると、ステップS230が実行されて、図6(c)に示すように、第3FIFOモジュール56の先頭レスポンスであるレスポンスGが再格納されてレスポンスHが新たな先頭レスポンスとなる。そして、ステップS230の処理を実行するとステップS200に戻り、以降はステップS200又はステップS210で肯定的な判定をするまでステップS200〜S230の処理を繰り返す。したがって、図6(c)の場合であれば、ステップS230の後のステップS200で肯定的な判定をするため、そこでレスポンス出力予備ルーチンを終了する。このようにすることで、レスポンス出力処理を行っているレスポンスの次に出力すべきレスポンスが先頭レスポンスになるか又はレスポンス出力処理が終了するまで他のFIFOモジュールについてレスポンス予備再格納処理が繰り返される。したがって、次のレスポンス出力ルーチンの実行時に、次に出力すべきレスポンスがすでに先頭レスポンスになっている可能性が高くなり、出力すべき順序通りにレスポンスをより早く出力することができる可能性が高くなる。
上述した実施形態では、レスポンスを出力すべき順序で出力しているが、出力する順序に関する順序情報を有するデータであれば、どのようなデータを出力すべき順序で出力するものとしてもよい。例えばリクエストであってもよい。
上述した実施形態では、バスコントローラユニット30にリクエストを出力するのはプロセッサ20のみであり、バスコントローラユニット30にレスポンスを出力するのはメモリコントローラ60のみであるが、複数の他のデバイスがバス70及びバス80に接続されているものとしてもよい。この場合は、レスポンスの出力先毎に順序ガイド値を記憶しておけばよい。
上述した実施形態では、出力先セレクタ52及び入力元セレクタ53が第2FIFOモジュール51のレスポンスの出力先及び入力元を設定するものとしたが、他の構成で出力先及び入力元を設定するものとしてもよい。例えば、入力元セレクタ53を備えていない構成として、レスポンス入力処理を行うときにはレスポンス出力処理やレスポンス再格納処理を行わないこととし、レスポンス再格納処理を行うときにはリクエスト出力処理を行わずバス80にメモリコントローラ60がレスポンスを出力することを禁止するものとしてもよい。また、コントローラ31がバス80及び第2FIFOモジュールからレスポンスを入力して保持したりバス70及び第2FIFOモジュールにレスポンスを出力したりできる構成としておいて、コントローラ31がレスポンスの出力先及び入力元を設定するものとしてもよい。
実施形態であるプロセッサシステム10の構成の概略を示す構成図。 レスポンス出力ルーチンの一例を示すフローチャート。 レスポンス出力ルーチンによる処理の様子を説明する説明図。 FIFOモジュールが複数の場合の処理の様子を説明する説明図。 レスポンス出力予備ルーチンの一例を示すフローチャート。 FIFOモジュールが複数の場合の処理の様子を説明する説明図。
符号の説明
10 プロセッサシステム、20 プロセッサ、30 バスコントローラユニット、31 コントローラ、40 リクエスト保持部、41 第1FIFOモジュール、50 レスポンス保持部、51 第2FIFOモジュール、52 出力先セレクタ、53 入力元セレクタ、55 第2レスポンス保持部、56 第3FIFOモジュール、60 メモリコントローラ、61 メモリ、70,80 バス。

Claims (4)

  1. 出力する順序に関する順序情報を有するデータを入力側デバイスから入力して保持し、出力側デバイスへ出力するデータ入出力装置であって、
    FIFOモジュールと、
    前記FIFOモジュールから該FIFOモジュールに最先に格納されたデータである先頭データを出力するときの出力先を前記出力側デバイスと該FIFOモジュール自身とのいずれかに設定する設定手段と、
    前記入力側デバイスから新たなデータを入力したときには、該新たなデータを前記FIFOモジュールに格納する格納処理を実行する入力制御手段と、
    前記FIFOモジュールの前記先頭データが有する順序情報に基づいて、該先頭データが次に前記出力側デバイスへ出力すべきデータか否かを判定する判定処理を実行し、前記判定処理で肯定的な判定をしたときには前記出力先を前記出力側デバイスに設定するよう前記設定手段を制御して前記先頭データを前記出力側デバイスへ出力する出力処理を実行し、前記判定処理で否定的な判定をしたときには前記出力先を前記FIFOモジュールに設定するよう前記設定手段を制御して前記先頭データを前記FIFOモジュールに新たなデータとして再度格納する再格納処理を実行する出力制御手段と、
    を備えたデータ入出力装置。
  2. 前記入力制御手段は、前記出力制御手段によって実行される前記再格納処理よりも優先して前記格納処理を行う手段である、
    請求項1に記載のデータ入出力装置。
  3. 請求項1又は2に記載のデータ入出力装置であって、
    前記FIFOモジュールを複数備え、
    前記設定手段は、前記複数のFIFOモジュールから該複数のFIFOモジュールの各先頭データを出力するときの各先頭データの出力先をそれぞれ前記出力側デバイスと該先頭データを格納しているFIFOモジュール自身とのいずれかに設定する手段であり、
    前記入力制御手段は、前記入力側デバイスから新たなデータを入力したときには、該新たなデータを前記複数のFIFOモジュールのいずれか1つに格納する格納処理を実行する手段であり、
    前記出力制御手段は、前記複数のFIFOモジュールの各先頭データが有する順序情報に基づいて、各先頭データのいずれかが次に前記出力側デバイスへ出力すべきデータか否かを判定する判定処理を実行し、前記判定処理で肯定的な判定をしたときには前記次に出力すべきデータと判定された先頭データを格納するFIFOモジュールの出力先を前記出力側デバイスに設定するよう前記設定手段を制御して前記次に出力すべきデータと判定された先頭データを前記出力側デバイスへ出力する出力処理を実行し、前記判定処理で否定的な判定をしたときには前記複数のFIFOモジュールの各出力先をそれぞれ該FIFOモジュール自身に設定するよう前記設定手段を制御して前記複数のFIFOモジュールの各先頭データを該FIFOモジュール自身に新たなデータとして再度格納する再格納処理を実行する手段である、
    データ入出力装置。
  4. 請求項3に記載のデータ入出力装置であって、
    前記出力制御手段が前記出力処理を行っている間に、該出力処理を行っていないFIFOモジュールの各先頭データが有する順序情報に基づいて、各先頭データのいずれかが該出力処理で出力している先頭データの次に出力すべきデータか否かを判定する予備判定処理を実行し、前記予備判定処理で否定的な判定をしたときには、該出力処理を行っていないFIFOモジュールの各出力先をそれぞれ該FIFOモジュール自身に設定するよう前記設定手段を制御して該出力処理を行っていないFIFOモジュールの各先頭データを該FIFOモジュール自身に新たなデータとして再度格納する予備再格納処理を実行する予備出力制御手段、
    を備えたデータ入出力装置。
JP2008216664A 2008-08-26 2008-08-26 データ入出力装置 Active JP5125885B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008216664A JP5125885B2 (ja) 2008-08-26 2008-08-26 データ入出力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008216664A JP5125885B2 (ja) 2008-08-26 2008-08-26 データ入出力装置

Publications (2)

Publication Number Publication Date
JP2010055170A JP2010055170A (ja) 2010-03-11
JP5125885B2 true JP5125885B2 (ja) 2013-01-23

Family

ID=42071054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008216664A Active JP5125885B2 (ja) 2008-08-26 2008-08-26 データ入出力装置

Country Status (1)

Country Link
JP (1) JP5125885B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02125151A (ja) * 1988-11-02 1990-05-14 Yashima Eng Kk ねじ送り装置
CN100524264C (zh) * 2001-10-15 2009-08-05 先进微装置公司 计算机系统输入/输出节点的外围接口电路

Also Published As

Publication number Publication date
JP2010055170A (ja) 2010-03-11

Similar Documents

Publication Publication Date Title
USRE49875E1 (en) Memory system having high data transfer efficiency and host controller
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
US7299324B2 (en) Reactive placement controller for interfacing with banked memory storage
JP2006293927A (ja) ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi
JP5217786B2 (ja) リクエスト調停装置及びリクエスト調停方法
JP4829408B2 (ja) 画像処理方法及び画像処理装置
JP5125885B2 (ja) データ入出力装置
JP5414209B2 (ja) メモリコントローラおよびその制御方法
JP7024621B2 (ja) 制御装置、画像形成装置、制御方法及び制御プログラム
JP4779010B2 (ja) バッファリング装置およびバッファリング方法
JP2010061620A (ja) Dma装置及びdma転送方法
JP2010079536A (ja) メモリアクセス制御回路、メモリアクセス制御方法
US20140207980A1 (en) Interface control apparatus, data storage apparatus and method for interface control
JP5428653B2 (ja) メモリアクセス処理装置及び方法
US9197782B2 (en) Image processing device and image processing method
JP5652866B2 (ja) バス調停回路及びバス調停方法
WO2013094031A1 (ja) 情報処理装置、その装置を用いた記録装置
JP2006004340A (ja) Dma転送制御装置
JP2007072910A (ja) 画像入力装置
JP2002132702A (ja) メモリ制御方式
JPH0833869B2 (ja) データ処理装置
JP5040307B2 (ja) 印刷装置
JP2017151711A (ja) 画像処理装置
JP2012252599A (ja) 情報処理装置、その装置を用いた記録装置、及び、情報処理方法
JP2009169501A (ja) データ転送装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110818

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121015

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5125885

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151109

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350