<第1の実施例>
図1Aは、本発明の第1の実施例のデータ処理装置の構成を示すブロック図である。このデータ処理装置は、外部の装置(図示せず)からの読み出し要求に応じてこのデータ処理装置の前段等に設置された外部の記録装置40から読み出したデータを記録する第1の記録装置10と、第1の記録装置10に記録されたデータが空き領域に移動して記録され、外部の装置からの出力要求に応じて該記録したデータを外部に出力する第2の記録装置20と、第1および第2の記録装置10,20、並びに外部の記録装置40を制御する制御装置30Aとを有する。
第1の記録装置10にデータを書き込む際のアクセスタイムは、第2の記録装置20にデータを書き込む際のアクセスタイムよりも小さい。第2の記録装置20は、N(N:2以上の整数)個のデータを記録することが可能であり、制御装置30Aの出力に従って、データの書き込み/読み出しを行う。Nは、第2の記録装置20のアドレス数に相当するものと位置付けることが可能であるが、完全に等価ではない。第2の記録装置20の空き領域と空き領域以外を区分できる構成であることが必要条件であり、アドレス以外で区分できる場合はそのような構成でも良い。
制御装置30Aは、外部の装置からの読み出し要求に従って外部の記録装置40からデータを読み出して第1の記録装置10にそのデータを書き込む手段と、第1の記録装置10に記録されたデータを第2の記録装置20の空き領域に移動させる手段と、外部の装置からの出力要求に従って第2の記録装置20に記録されたデータを出力する手段と、読み出し要求に基づく進捗状況(終了通知等)を出力する手段と、出力要求時に所望のデータが出力されたか否かを示す出力結果判定の信号が入力されると、その結果に基づいて、第2の記録装置20の空き領域の情報の更新の是非(空き領域を追加するか否か)を判断する手段を有する。
また、外部の記録装置40からデータを読み出す際に使用する信号線(バス)と、データ出力を行う際に使用する信号線(バス)は異なる信号線であり、さらに、第1の記録装置10に記録されたデータを第2の記録装置20の空き領域に移動させる際に使用する信号線(バス)も、上記2系統の信号線のいずれとも異なる信号線からなる。
制御装置30Aは、下記のように動作する。外部の装置からの読み出し要求に応じて、外部の記録装置40からデータを読み出して、そのデータを第1の記録装置10に書き込む。1回の読み出し要求の入力に対して、複数回のデータ読み出しと複数回の書き込みを行う場合もある。
一般的に、外部の記録装置40の読み出し時には、制御装置30Aからアドレス情報とそのアドレス情報が有効か否かを示す情報(Read Enable)を出力し、外部の記録装置40から、指定したアドレスのデータを出力させることにより、読み出しを行う。ただし、これらの情報の出力は必ず必要というわけではなく、例えば外部の記録装置40が一般的にFIFO(First In First Out)と呼ばれているものであれば、アドレス情報の出力は必要なく、また、外部の記録装置40の仕様によっては、アドレス情報が有効か否かを示す情報(Read Enable)を出力しなくても良い場合もある(具体例は図2A,2Bで後述する)。
第1の記録装置10へのデータの書き込みは、一般的に、制御装置30Aからアドレス情報とそのアドレスが有効か否かを示す情報(Write Enable)を出力することにより行う。ただし、これらの情報の出力は必ず必要というわけではなく、例えば第1の記録装置10がFIFOと呼ばれているものであれば、アドレス情報の出力は必要なく、また、第1の記録装置10の仕様によってはWrite Enableを出力しなくても良い場合もある。
なお、第1の記録装置10への書き込み時にアドレス情報を出力する場合、その出力は外部の記録装置40からのデータの読み出しに使用するアドレス情報とは異なる信号線で出力する。また、第1の記録装置10への書き込みが可能か否かの判断は、制御装置30A自体が行う(具体例は後述する)。また、制御装置30Aは外部の記録装置40からデータを読み出すときは、前記した読み出し要求に基づく進捗状況(終了通知等)を出力する(具体例は図2A,2Bで後述する)。
その後、制御装置30Aは第1の記録装置10に書き込まれたデータを読み出して、第2の記録装置20の空き領域に書き込む。この空き領域は、第2の記録装置20が初期化されてから一度もデータを書き込まれていないアドレス領域と、データが書き込まれたアドレス領域のうち、書き換え(Over Write)が可能となったアドレス領域である。
第1の記録装置10からのデータの読み出しは、外部の記録装置40からの読み出しと同様に実現できるが、アドレス情報とそのアドレス情報が有効か否かを示す情報(Read Enable)等は、それぞれ異なる信号線で出力する。また、この読み出し時にアドレス情報を出力する場合、第1の記録装置10への書き込みに使用するアドレス情報とは異なる信号線で出力する。
第2の記録装置20へのデータの書き込みは、第1の記録装置10への書き込みと同様に実現できるが、両書き込み時のアドレス情報とそのアドレスが有効か否かを示すWrite Enable等は、それぞれ異なる信号線で出力する。また、この書き込み時にアドレス情報を出力する場合、外部の記録装置40からの読み出しに使用するアドレス情報、および、第1の記録装置10からの読み出しに使用するアドレス情報とは異なる信号線で出力する。空き領域の管理、更新等は制御装置30A自体が行う(具体例は図7で後述する)。
一方、制御装置30Aは、外部の装置からの出力要求に応じて、第2の記録装置20からデータを読み出して、そのデータを当該外部に対して出力する。この実施例においては、制御装置30Aは第2の記録装置20の空き領域以外のアドレス領域の任意のデータを出力する(一回の出力要求に対して複数のデータを同時に出力する場合もある)。
その後、制御装置30Aには、外部の装置より所望のデータが出力されたか否かを示す出力結果判定の信号が入力され、その信号が所望のデータが出力されたことを示している場合は、その直前に出力したデータが記録されていたアドレス領域を空き領域に加える。所望のデータが出力されたことを示していない場合は空き領域を更新しない(具体例は図4A,4Bで後述する)。
なお、1回の出力要求に対して複数のデータを同時に出力する場合、複数のデータのそれぞれに対して、外部の装置より所望のデータが出力されたか否かを示す出力結果判定の信号が入力されることにより、所望のデータが出力されたことを指示されたデータが記録されていたアドレス領域を空き領域に加える。所望のデータが出力されたか否かを示す出力結果判定の信号がまったく入力されなかった場合は空き領域を更新しない(具体例は図5で後述する)。
本発明のデータ処理装置は、すべて外部の装置の指示の通りに動作する受動デバイスであることを前提としている。また、第2の記録装置20からのデータの出力順が予め決まっていない場合にも動作できることが目的の一つである。データの出力順が決まっていない場合、出力は任意のデータを出力するしかなく、その場合にその出力したデータを再出力のために保持し続ける必要があるか否かを外部の装置に判断してもらい、その結果を所望のデータが出力されたか否かを示す出力結果判定の信号として入力してもらうことにより空き領域への追加(=出力したデータの削除と同義)を行うか否かを判断するものである。外部の装置がどのように所望のデータか否かを判断するかは、このデータ処理装置の構成には関係しない。あくまで例であるが、例えば、出力されたデータの一部が特定の値になつているか否かで外部の装置が所望のデータか否かを判断するようなデータ処理は有り得る。
図1Bは図1Aで説明した制御装置30Aの内部構成を詳細に表したデータ処理装置の構成例を示す。制御装置30Aは、第1の制御装置31、第2の制御装置32、第3の制御装置33A、第4の制御装置34、および第3の記録装置35を備える。
第1の制御装置31は、外部の装置からの読み出し要求に従って、外部の記録装置40からデータを読み出して、第1の記録装置10にそのデータを書き込む手段と、読み出し要求に基づく進捗状況(終了通知等)を出力する手段を有する。
第2の制御装置32は、第3の記録装置35から空き領域アドレスを取得する手段と、第1の記録装置10に記録されたデータを第2の記録装置20の空き領域アドレスに移動させる手段と、第3の記録装置35の空き領域アドレスを削除する手段を有する。
第3の制御装置33Aは、外部の装置からの出力要求に従って第3の記録装置35から空き領域以外のアドレスを取得する手段と、そのアドレスに従って第2の記録装置20に記録されたデータを出力する手段と、出力要求に対して所望のデータが出力されたか否かを示す出力結果判定の信号が入力されると、その信号に基づいて、第3の記録装置35の空き領域アドレスを追加するか否かを判断し、所望のデータが出力されたことが示された場合に空き領域アドレスを追加する手段を有する。第4の制御装置34は、第1〜第3の制御装置31〜33を制御するものである。
図2Aは外部からの読み出し要求による外部の記録装置40からのデータ読み出しと第1の記録装置10へのそのデータ書き込みの動作例を示すタイミングチャート(その1)、図2Bはこのときの制御装置30A内の第1の制御装置31の動作のフローチャートの例である。この例は1回の読み出し要求でM+1回の読み出し(および書き込み)を行う場合である。このMの値は、予め決めておくか、もしくは読み出し要求と同時に外部の装置からその情報を入力することにより、決定することができる。
さて、制御装置30Aに外部から読み出し要求が入力(=1)されると、制御装置30Aの第1の制御装置31は、上記のM値の情報と、外部の装置から入力される外部の記録装置40のアドレス情報の出力に基づいて、外部の記録装置40に対して、Read Enable=1とアドレス情報を出力することにより、読み出しを行う。
読み出し開始後、規定の時間が経過すると、指定したアドレスのデータが外部の記録装置40から出力されるので、そのデータを第1の記録装置10に対して出力するとともに、Write Enable=1とアドレス情報を第1の記録装置10に対して出力することにより、書き込むを行う。Write Enable=0とした後、次のアドレスの読み出しと書き込みを行う。この読み出しと書き込み時は、Read Enable=1のときはWrite Enable=0、Read Enable=0のときはWrite Enable=1である。
M+1回目の書き込みが終了(Write Enable=0)した後、外部に対して読み出し要求に基づく進捗状況としての読み出し完了通知=1を一時的に出力し、読み出し要求に対する処理を終了する。
この一連の処理に要する時間は、図2A中に示すように、
t0+(t1×M)+t2
である。ただし、
t0:「読み出し要求=1の入力から最初のRead Enabel=1を出力するまでの時間」
+「Read Enabel=1の出力からWrite Enable=1を出力するまでの待ち時間」
t1:「Write Enable=1に必要な時間(アクセスタイム)」
+「次のRead Enabel=1の出力から次のWrite Enable=1を出力するまでの待ち
時間」
t2:「Write Enable=1に必要な時間(アクセスタイム)」
+「読み出し完了通知=1の時間」
となる。
ここで、読み出し要求が入力(=1)された時点で、第1の記録装置10が書き込み可能な状態になつているか否かにより、t0の時間が変わってくることになるが、その件については、後述する。
また、t0およびt1のRead Enabel=1の出力からWrite Enable=1を出力するまでの待ち時間については、外部の記録装置40の仕様により決まり、t1およびt2のWrite Enable=1に必要な時間(アクセスタイム)については第1の記録装置10の仕様に依存する。
図3Aは外部からの読み出し要求による外部の記録装置40からのデータ読み出しと第1の記録装置10へのデータ書き込みの別の動作例を示すタイミングチャート(その2)、図3Bはこのときの制御装置30Aの第1の制御装置31の動作のフローチャートの例である。この例も1回の読み出し要求でM+1回の読み出し(および書き込み)を行う場合であるが、外部の記録装置40へのアドレス情報の出力と、第1の記録装置10へのアドレス情報の出力が不要なケースである。また、読み出し要求および読み出し要求に基づく進捗状況としての読み出し完了通知の仕様も異なっているケースである。
このケースは、外部の記録装置40がFIFOの場合であり、その具体的な動作の一例として、その出力開始のタイミングが、「読み出し要求が入力される前に外部の記録装置40がすでに最初のデータの出力を開始」するような場合を想定している場合の説明をしている。出力開始のタイミングが読み出し要求の入力の前だろうが、後だろうが、出力されるデータの内容は変らない(タイミングが変るだけ)。本データ処理装置の出力が所望のデータとなり得る理由については前述した(段落0025)の通りである。
さて、外部から読み出し要求が入力(=1)されると、制御装置30Aの第1の制御装置31は外部の記録装置40が出力しているデータを第1の記録装置10に対して出力するとともに、Write Enable=1を出力して書き込みを行う。そして、Write Enable=0とした後、1回分のデータ読み出しが終了したことを通知するための信号である読み出し要求に基づく進捗状況としての読み出し完了通知=1を出力する。
この出力を受信した外部の装置が、M+1回分の読み出しが終了したか否かを判断し、終了している場合は、読み出し要求=0とすることにより読み出し要求の処理を終了させる。一方、終了していない場合は、読み出し要求=0とせずに、外部の記録装置40から次のデータを出力させる。
読み出し完了通知の出力後、予め定められた一定時間を経過した時に、制御装置30Aの第1の制御装置31は読み出し要求=0とされているか否かを確認し、0であれば読み出し処理を終了させる。一方、0でない場合は、外部の記録装置40が出力しているデータを(次のデータとして)読み込み、同様に第1の記録装置10に書き込んだ後、読み出し完了通知=1を出力する。
なお、この例では、書き込み時に第1の記録装置10に対してアドレス情報の出力をしていないが、例えば、第1の記録装置10としてFIFOを使用すればこのような動作が可能である。
この一連の処理に要する時間は、図中に示すように、
to+(t1×M)+t2
である。ただし、
t0:「読み出し要求=1から最初のWrite Enable=1を出力するまでの時間」
t1:「Write Enable=1に必要な時間(アクセスタイム)」
+「読み出し完了通知=1からWrite Enable=1を出力するまでの待ち時間」
t2:「Write Enable=1に必要な時間(アクセスタイム)」
+「読み出し完了通知=1から読み出し要求=0までの時間」となる。
なお、t2はt1より小さい値(すなわち短時間)である必要がある。また、読み出し要求が入力された時点で、第1の記録装置10が書き込み可能な状態になっているか否かにより、t0の時間が変わってくることになるが、その件については、後述する。
t1の読み出し完了通知=1からWrite Enable=1までの待ち時間については、外部の記録装置40の仕様により決まり、t1およびt2のWrite Enable=1に必要な時間(アクセスタイム)については第1の記録装置10の仕様に依存する。
図4Aは出力要求による第2の記録装置20等からのデータ読み出しと外部へのデータ出力の動作例を示すタイミングチャート(その1)、図4Bはこのときの制御装置30Aの第3の制御装置33Aの動作のフローチャートの例である。この例は1回の出力要求で1個(1セット)のデータの読み出しと出力を行う場合である。
外部から出力要求が入力(=1)されると、制御装置30Aの第3の制御装置33Aは、空き領域以外のアドレス情報に基づいて、第2の記録装置20等に対して、Read Enabe=1とアドレス情報を出力することにより、読み出しを行う。
読み出し開始後、規定の時間が経過すると、指定したアドレスのデータが第2の記録装置20から出力されるので、その値を取り込んで外部に対して出力した後、Read Enabel=0とする。
出力要求を出力した外部の装置は、出力要求=1の出力後、予め定められた規定の時間が経過した時点で出力されているデータを読み取り、所望のデータが出力されたか否か判断し、その結果を出力結果判定として出力する。
所望のデータが出力されたか否かの判断の方法は、外部の装置の仕様により決定するものであり、本データ処理装置の構成には関係しない。あくまで例であるが、例えば、出力されたデータの一部が特定の値になっているか否かで外部の装置が所望のデータか否かを判断するようなデータ処理は有り得る。
制御装置30Aの第3の制御装置33Aは、Read Enabel=0とした後、外部の装置からの出力結果判定を受信した時点で、その結果が所望のデータが出力されていたことを示している場合(図4A中のOKの場合)は、直後に出力したデータの読み出しに使用したアドレス情報を空き領域に追加し、外部の装置からの出力結果判定が所望のデータが出力されていなかったことを示している場合(図4A中のNGの場合)は、空き領域の追加を行わない。
なお、空き領域の削除は、第2の記録装置20への書き込み時に行う。つまり、第2の記録装置20への書き込みを行う際、空き領域に登録されているアドレスに対して書き込みを行い、そのアドレス情報を空き領域から削除する。従って、空き領域に登録されているアドレスがなくなった場合、第2の記録装置20への書き込みはできないことになる。
逆に第2の記録装置20の全アドレスが空き領域に登録されている状態では読み出しができないので、そのような状態であるか否かを外部に対して出力する手段を別途設けることにより、外部の装置の誤動作等を防止することができる。
図5は外部からの出力要求による第2の記録装置20等からのデータ読み出しと外部へのデータ出力の動作例を示すタイミングチャート(その2)である。この例は第2の記録装置20がN個(もしくはNセット)(N:2以上の整数)のデータの読み出しを1回の読み出しで同時に行うことが可能な構成となっており、N個(もしくはNセット)のデータの読み出しと出力を、それぞれ同時に行う場合である。
さて、出力要求が入力(=1)されると、制御装置30Aの第3の制御装置33Aは、空き領域以外のアドレス情報に基づいて、第2の記録装置20等に対して、Read Enabel=1とN個のアドレス情報を出力することにより、読み出しを行う。
読み出し開始後、規定の時間が経過すると、第2の記録装置20から指定したN個のアドレスのデータが(合計N個)出力されるので、その値を取り込んで外部に対して出力(合計N個)した後、Read Enabel=0とする。
出力要求を出力した外部の装置は、出力要求=0の後、予め定められた規定の時間が経過した時点で出力されているN個のデータを読み取り、所望のデータが出力されたか否か判断し、その結果としての出力結果判定を各出力データ毎に(合計N個)出力する。
制御装置30Aの第3の制御装置33Aは、Read Enabel=0とした後、外部の装置からのN個の出力結果判定を受信した時点で、所望のデータが出力されていたことを示している信号が入力された場合(図5中のOK有りの場合)には、該当の出力データの読み出しに使用したアドレス情報を空き領域に(最大でN個)追加し、所望のデータが出力されていたことを示している信号が一つも入力されなかった場合(図5中の全てNGの場合)は、空き領域の追加を行わない。
なお、空き領域の削除は、図4A,4Bのケースと同様に第2の記録装置20への書き込み時に行う。つまり、第2の記録装置20への書き込みを行う際、空き領域に登録されているアドレスに対して書き込みを行い、そのアドレスの情報を空き領域から削除する。従って、空き領域に登録されているアドレスがなくなった場合、第2の記録装置20への書き込みはできないことになる。
逆に第2の記録装置20の全アドレスが空き領域に登録されている状態では読み出しができないので、そのような状態であるか否かを外部に対して出力する手投を別途設けることにより、外部の装置の誤動作等を防止することができる。
また、空き領域以外に登録されているアドレスが1個以上N個未満の時に出力要求が入力された場合には、N個のデータを読み出すことはできない(N個未満のデータしか読み出せない)。そのようなケースで外部の装置の誤動作等を防止するためには、N個のデータ出力の中に無効な出力が存在するか否か、存在する場合にはどのデータが無効かを外部に対して出力する手段を別途設ければ良い。
図6Aはデータ処理装置全体の動作例を示すタイミングチャート、図6Bはこのときの制御装置30Aの第4の制御装置34の動作のフローチャートの例、図6Cはこのときの制御装置30Aの第2の制御装置32の動作のフローチャートの例である。この例は図3A,3Bと同様に1回の読み出し要求でM+1回の読み出し(および書き込み)を行い、図4A,4Bと同様に1回の出力要求で1個(1セット)のデータの読み出しと出力を行い、かつ、第1の記録装置10がFIFOの場合の例である。
図6Bにおいて、第4の制御装置34は、第1の制御装置31から第1の記録装置10に対して出力するWrite Enable=1の数をカウントするカウンタ1と、第2の制御装置32から第2の記録装置20に対して出力するWrite Enable=1の数をカウントするカウンタ2とを備える。そして、読み出し要求が入力(=1)されると、カウンタ1で第1の制御装置31のWrite Enable=1の数のカウントを開始し、そのカウント値が1以上で、且つカウンタ2のカウント値より大きいときに、第2の制御回路32に第1の記録装置10からのデータの読み出しと第2の記録装置20へのそのデータの書き込みの動作開始を指示する。そして、カウンタ2で第2の制御装置32のWrite Enable=1の数のカウントが開始され、読み出し要求=0となり、カウント値がカウンタ1=カウンタ2となったとき、第2の制御装置32に動作停止を指示するとともに、カウンタ1,カウンタ2をクリアする。
図6Cにおいて、第2の制御装置32は、第4の制御装置34からの動作開始指示=1となると、第1の記録装置10に対してRead Enable=1を出力してそこからデータを読み出し、規定の待ち時間の後、第1の記録装置10に対してRead Enable=0とし、第2の記録装置20に対して任意の空きアドレス情報を出力するとともにWrite Enable=1を出力し、第1の記録装置10の出力データを第2の記録装置20に出力する。第2の記録装置20のアクセスタイムの経過後、Write Enable=0とし、規定の待ち時間の後、第4の制御装置34からの動作停止指示=1なら待ち状態にもどり、動作停止指示=0なら再度第1の記録装置10の出力データを第2の記録装置20に出力して書き込む動作を繰り返す。
さて、図6Aにおいて、外部の装置からの最初の読み出し要求が入力(=1)された時点で、第1の記録装置10、第2の記録装置20ともに初期状態(すなわち何もデータが記録されていない状態)であると仮定すると、制御装置30Aはただちに外部の記録装置40の出力データを第1に記録装置10に対して出力して、第1の記録装置10への書き込みを開始する。
その後、外部の記録装置40へのRead Enabel=1の出力と第1の記録装置10への書き込みを繰り返しながら、第2の記録装置20の空き領域の確認、第1の記録装置10からのデータの読み出し、第2の記録装置20の空き領域への書き込みを、並行して実施する。
なお、初期状態では第2の記録装置20のすべてのアドレスが空き領域に登録されているが、第2の記録装置20への書き込みを行う毎に、その書き込みに使用したアドレスの情報を空き領域から削除する。従って、その結果、図6A中のA1からA(M+1)までのアドレスはすべて異なるアドレスとなる。なお、この図6Aでは第1の記録装置10へのデータ書き込みのサイクル(周期)と第2の記録装置20へのデータ書き込みのサイクル(周期)が同じ時間となっているが、第2の記録装置20へのデータ書き込みのサイクルが第1の記録装置10へのデータ書き込みのサイクルより大きくても良い。ただし、第1の記録装置10からのデータ読み出しのサイクルは、第2の記録装置20へのデータ書き込みのサイクルと同じ値となる。図6Aの例ではM+1回目の第1の記録装置10への書き込みを行った時に、初めて外部の装置から出力要求が入力された場合を示している。
出力要求が入力(=1)されると、空き領域以外として登録されているアドレス情報を第2の記録装置20に対して出力して、データの読み出しとそのデータの外部の装置への出力を行う。この例では、最初の出力要求の時点における読み出し用のアドレスA(j)はA1〜A(M−1)の中のどれかとなる。
外部の装置に対してデータを出力した後、外部の装置から出力結果判定の信号が入力され、所望のデータが出力されたことが示された場合には、直前の読み出しに使用したアドレスを空き領域に追加する。外部の装置からの出力結果判定の信号が、所望のデータが出力されなかったことが示された場合には空き領域の追加は行わない。
なお、出力結果判定による空き領域へのアドレスの追加と第2の記録装置20への書き込みによる空き領域からの(追加するアドレスとは異なるアドレスの)アドレスの削除が同時に発生する可能性もある。このように空き領域を管理する方法としては、例えば、第2の記録装置20の全アドレスに対応する第3の記録装置35(レジスタ等)を別途用意して、以下のように動作させれば良い。
第3の記録装置35は、初期状態ではすべてのアドレスが空き領域であることを出力し、第2の記録装置20への書き込みを行った時に指定されたアドレスに対応する第3の記録装置35のみが空き領域ではないことを出力するように状態遷移し、出力結果判定により指定されたアドレスに対応する第3の記録装置35のみが空き領域ではない状態から空き領域であることを出力するように状態遷移すれば良い(図7の状態遷移図参照)。
図6Aの例では、第2の記録装置20からすべてのデータを出力する前に、外部の装置からの2回目の読み出し要求が入力されるケースを示している。
2回目の読み出し要求に対する第2の記録装置20への書き込みに使用するアドレスは、その時点で空き領域に登録されているアドレスであり、図6A中のA(k)は、図6A中のA1〜A(M+1)と異なるアドレスか、もしくはA1〜A(M+1)の中で出力結果判定により空き領域に追加されたアドレスとなる。
なお、もし、読み出し要求が入力された時点で、空き領域に登録されているアドレスがなかった場合は、第2の記録装置20への書き込みはできない場合がある。しかし、その場合でも、第1の記録装置10への書き込みは可能な場合がある。
第1の記録装置10への書き込みが不可能となるのは、文字通り、書き込みが不可能となった時であるが、具体的には、第1の記録装置10がFIFOの場合は、FIFOがフル(Full)になった場合だけである。第1の記録装置10がFIFO以外の通常のメモリの場合は、制御装置30Aの仕様により異なる。第1の記録装置10への書き込みが不可能な状態とならないようにするためには、第1の記録装置10の容量が十分に大きければ良いということになるが、容量が大きくなるとアクセスタイムが大きくなる、もしくは、消費電力が大きくなる、等の問題が生じる。従って、第1の記録装置10の容量は小さい方が望ましい。
一方、第2の記録装置20の容量については、外部の装置からの出力要求の仕様によっては、非常に大きな容量が必要となる場合がある。第2の記録装置20の容量が大きくなると第2の記録装置20へのアクセスタイムが大きくなるが、第1の記録装置10への書き込みが不可能な状態にならない限り、第1の記録装置10への書き込みを阻害する要因にはならない。
第2の記録装置20への書き込み時のアクセスタイムが大きくなると、第1の記録装置10からのデータ読み出しのサイクルが大きくなるが、例えば、外部の装置からの読み出し要求の仕様が以下の条件の場合には下記のような装置構成にすることにより、第1の記録装置10への書き込みが阻害されないようにすることができる。
<外部の装置からの読み出し要求の仕様(例)>
1回の読み出し要求でM+1回の読み出しを行う。
1回の読み出し要求の最大許容時間はT_wait秒である(M+1回の読み出しをT_wait秒以下の時間で終了させる必要があるということ)。
読み出し終了後、次の読み出し要求までの最小間隔はT_calc秒である。
<上記の仕様に対応した装置の構成(例)>
(1)第1の記録装置10がM+1個以上のデータの書き込みが可能であること(メモリの場合はM+1以上のアドレス領域を持っているということ)。
(2)[t0+t1×(M+1)+t2]<T_waitであること(第1の記録装置10への書き込み時のサイクル時間等がこの条件を満たすこと)。
(3)第2の記録装置20への書き込み時のサイクル時間(および、第1の記録装置10からの読み出し時のサイクル時間)が(T_wait+T_calc−t0−t2)/(M+1)より小さいこと。
つまり、この例では、次の読み出し要求までにT_calc分の時間的な余裕があるので、その期間内に第2の記録装置20への書き込みが終了できれば良いということである。
ここで、従来技術との比較として、第1の記録装置10を用いず、第2の記録装置20に直接書き込む構成(従来構成)との比較を行う。
第2の記録装置20としてメモリを用いる場合、アクセスタイムや書き込み時のサイクルタイムはメモリの容量(アドレス領域の大きさ)に依存し、メモリ容量が大きくなるほどアクセスタイムやサイクルタイムも大きくなる。第2の記録装置20に必要なメモリ容量は装置の仕様により決定され、その容量は第1の記録装置10を用いない従来構成でも同じである。従って、従来構成におけるメモリヘの書き込み時のサイクルタイムは、本実施例の第2の記録装置20への書き込み時のサイクルタイムと同じ値(T_cyc)となる。
従来構成では、第1の記録装置10を用いず、直接上記のメモリ(第2の記録装置20)に書き込みを行うため、T_cycがT_wait/(M+1)より小さくなければならない。一方、本実施例では、T_cycが(T_wait+T_calc−t0−t2)/(M+1)より小さいことが正常動作の条件である。逆に言えば、T_cycのメモりを使用した場合に対応可能なM+1の値は、第1の記録装置10を用いない従来構成の場合、T_wait/T_cyc未満の値であり、本実施例では、(T_wait+T_calc−t0−t2)/T_cyc未満の値となる。通常(T_calcが非常に小さい場合を除けば)、(T_calc−t0−t2)>0となるので、従来構成より本実施例の方がより大きなM+1に対応できるということである。
次に、読み出し要求に対する処理時間の比較を行う。第1の記録装置10を用いない従来構成の場合、M+1回の書き込みにT_cyc×(M+1)の時間が必要である。一方、本実施例では、t0+t1×(M+1)+t2で第1の記録装置10への書き込みまで終了する。従って、t1がT_cycより小さければ、従来構成より早く読み出し処理を終了させることができる。第1の記録装置10に必要な容量は第2の記録装置20の容量より小さくすることができるので、第1の記録装置10への書き込み時のサイクルタイム(t1)を第2の記録装置20への書き込み時のサイクルタイム(T_cyc)より小さくすることは容易である。つまり、第1の記録装置10として、書き込み時のサイクルタイム(および、アクセスタイム等)が第2の記録装置20より小さいものを使用することによって、第1の記録装置10を用いない従来構成より、より早く読み出し処理を終了させることができる。
このように、読み出し処理に要する時間を短縮すると、読み出し要求を出力する前段の外部の装置の待ち時間を短縮することになり、その結果、システム全体の性能向上や処理時間の短縮等が実現可能となる。
なお、第1の記録装置10としてRAMを使用する場合、以下のような構成とすることにより、簡単な構成で第1の記録装置10に対する書き込み/読み出しを行うことができる。
<第1の記録装置10の構成例>
読み出し要求に対して第1の記録装置10への書き込みを行う際、最初のアドレスを予め決めておき、2回目以降の書き込みはその次のアドレスに書くようにする。最初のアドレスヘの書き込みが終了した時点で、第1の記録装置10からの読み出しが可能となるので、すみやかに第1の記録装置10からの読み出しと第2の記録装置20への書き込みを開始する。その際の読み出しの最初のアドレスは、予め決められているアドレス(上記の第1の記録装置10への書き込み時の最初のアドレス)とし、2回目以後の読み出しはその次のアドレスから読み出す。
また、読み出し要求に応じて読み出しを行う外部の記録装置40が複数のデータを同時に出力可能な構成となっている場合、第1の記録装置10において複数のデータを同時に書き込めるようにすることも可能であり、複数のデータを連続的に第1の記録装置10に書き込むようにすることも可能である。
<第2の実施例>
図8Aは、本発明の第2の実施例のデータ処理装置の構成を示すブロック図である。 このデータ処理装置は、外部の装置(図示せず)からの読み出し要求に応じてこのデータ処理装置の前段等に設置された外部の記録装置40から読み出したデータを記録する第1の記録装置10と、第1の記録装置10に記録されたデータが空き領域に移動して記録され、外部の装置からの出力要求に応じて該記録したデータを外部に出力する第2の記録装置20と、第1および第2の記録装置10,20、並びに外部の記録装置40を制御する制御装置30Bとを有する。
第2の実施例のデータ処理装置が第1の実施例のデータ処理装置と異なる点は、制御装置30Bが、外部からの出力要求時に入力されたアドレス指定が第2の記録装置20の空き領域以外であった場合に、当該アドレス指定のアドレス情報を第2の記録装置20の空き領域に追加すること、および第2の記録装置20においてデータが記録されているアドレス情報(1つ、若しくは複数)を出力することである。
図8Bは図8Aで説明した制御装置30Bの内部構成を詳細に表したデータ処理装置の構成例を示す。制御装置30Bは、第1の制御装置31、第2の制御装置32、第3の制御装置33B、第4の制御装置34、および第3の記録装置35を備える。ここでは、第3の制御装置33Bが図1Bの第3の制御装置33Aと異なる。すなわち、第3の制御装置33Bは、外部の装置からの出力要求とアドレス指定に従って第3の記録装置35から空き領域以外のアドレスを取得する手段と、取得した空き領域以外のアドレスをアドレス情報として出力する手段と、出力要求とアドレス指定が入力されて、入力されたアドレスが空き領域以外のアドレスであった場合に、そのアドレスに従って第2の記録装置20に記録されたデータを出力するとともに、そのアドレスを空き領域に追加する手段を有する。
図9Aは出力要求による第2の記録装置20等からのデータ読み出しと外部へのデータ出力の動作例を示すタイミングチャート(その3)、図9Bはこのときの制御装置30Aの第3の制御装置33Bの動作のフローチャートの例である。この例は1回の出力要求で1個(1セット)のデータの読み出しと出力を行う場合である。
制御装置30Bの第2の制御装置32は、第1の記録装置10からの読み出しを行う際に、第3の記録装置35で第2の記録装置20の空き領域のアドレスを検索してそのアドレスに対して書き込みを行う。その時点でそのアドレスの情報を空き領域の情報から削除する。また、外部に対して空き領域以外のアドレス情報(1つ、もしくは、複数)をアドレス情報として出力する。なお、空き領域以外のアドレス情報が無い時には、アドレス情報として予め定められた特定の値を出力することにより(もしくは、別の出力により)、空き領域以外のアドレス情報が無いことを外部の装置に通知する。
さて、出力要求を行う外部の装置から出力要求=1とともにアドレス指定が入力されると、制御装置30Bの第3の制御装置33Bは、入力されたアドレスが空き領域以外のアドレスであることを確認した場合、入力されたアドレス指定に基づいて、第2の記録装置20に対して、Read Enable=1とアドレス情報を出力することにより読み出しを行う。
読み出し開始後、規定の時間が経過すると、指定したアドレスのデータが第2の記録装置20から出力されるので、その値を取り込んで外部に対して出力した後、Read Enable=0とする。その時点で、読み出しを行ったアドレス情報を空き領域の情報に追加する。
入力されたアドレスが空き領域のアドレス情報に含まれている場合は、データ出力として予め定められた特定のデータを出力することにより(もしくは、別の出力により)、入力されたアドレスが無効であることを外部の装置に通知する。この際、空き領域の情報の追加は行わない。
なお、第2の記録装置20が同時に複数のデータを出力できる構成の場合は、外部へのアドレス情報出力を複数個とする。出力要求とともに外部の装置からアドレス指定を複数個入力すると、当該のアドレス指定のうち、空き領域以外のアドレスに対するデータをデータ出力として出力し、空き領域のアドレス入力に対応する出力として、入力されたアドレスが無効であることを示す特定のデータを出力する(もしくは別出力で各アドレス入力が無効か否かを出力する)とともに、アドレス指定の中で空き領域以外のアドレス情報を空き領域の情報に追加する。
この実施例の構成は、第1の実施例と同様の効果がある。なお、空き領域以外のアドレス情報の数が、同時に出力するアドレス情報の数より小さい時には、アドレス情報として予め定められた特定の値を出力することにより(もしくは、別の出力により)、そのアドレス情報が無効であることを外部の装置に通知する(もしくは同じアドレス情報を同時に複数個出力するようにしても良い)。
<第3の実施例>
図10Aは、本発明の第3の実施例のデータ処理装置の構成を示すブロック図である。このデータ処理装置は、外部の装置(図示せず)からの読み出し要求に応じてこのデータ処理装置の前段等に設置された外部の記録装置40から読み出したデータを記録する第1の記録装置10と、第1の記録装置10に記録されたデータが空き領域に移動して記録され、外部の装置からの出力要求に応じて該記録したデータを外部に出力する第2の記録装置20と、第1および第2の記録装置10,20、並びに外部の記録装置40を制御する制御装置30Cとを有する。
第3の実施例のデータ処理装置が第1の実施例のデータ処理装置と異なる点は、制御装置30Cが、外部の装置からの出力要求時に入力されたアドレス指定入力が第2の記録装置20の空き領域以外であった場合に、当該アドレス指定入力のアドレス情報を第2の記録装置20の空き領域に追加すること、および第2の記録装置20においてデータの一部のデータ情報とそのデータ情報が記録されているアドレス情報(1つ、若しくは複数)を出力することである。
図10Bは図10Aで説明した制御装置30Cの内部構成を詳細に表したデータ処理装置の構成例を示す。制御装置30Cは、第1の制御装置31、第2の制御装置32、第3の制御装置33C、第4の制御装置34、および第3の記録装置35を備える。ここでは、第3の制御装置33Cが図1Bの第3の制御装置33Aと異なる。すなわち、第3の制御装置33Cは、外部の装置からの出力要求とアドレス指定の入力に従って第3の記録装置35から空き領域以外のアドレスを取得する手段と、取得した空き領域以外のアドレスをアドレス情報として出力する手段と、第2の記録装置20のそのアドレスに格納されているデータの一部をデータ情報として出力する手段と、出力要求とアドレス指定が入力され、入力されたアドレスが空き領域以外のアドレスであった場合に、そのアドレスに従って第2の記録装置20に記録されたデータを出力するとともに、そのアドレスを空き領域アドレスに追加する手段を有する。
この実施例の構成は、第1の実施例と同様の効果がある。また、この実施例では、第2の記録装置20に記録されている複数のデータの一部のデータ情報と該当のデータが記録されている複数のアドレス情報を出力する構成の場合、出力要求を出力する外部の装置が事前にデータの一部を確認して、必要と思われるデータを選択して(データの一部を用いてそのデータの必要性、もしくは優先順位等を判断し、該当するアドレスを指定することによりデータを選択して)、出力要求を行うことができる。
<その他の実施例>
なお、以上に説明した各実施例のデータ処理装置の制御装置30A,30B,30Cに演算機能を追加することに与り、データの記録/出力だけではなく演算処理も行うことができるようになる。