(57)【要約】【課題】  データの書き込みから読み出しまでに遅延を生じるＦＩＦＯメモリであっても、確実に書き込んだデータを読み出すことができるデータ入出力装置を提供する。【解決手段】  読み出し許可フラグ生成回路２５は、１ポートＲＡＭ３に所定数（ＲＳＩＺＥ）のデータが書き込まれていると判定すると、所定時間経過後に１ポートＲＡＭ３からのデータ読み出しを許可する。所定時間を経過してからデータの書き込みを許可するので、データの書き込みから読み出しまでに遅延を生じるメモリであっても、確実に書き込んだデータを読み出すことができる。【選択図】        図１
2005321933.tif 000002
【特許請求の範囲】
【請求項１】
入力データをＦＩＦＯメモリに一時的に蓄積して出力するデータ入出力装置であって、
前記ＦＩＦＯメモリに所定数以上のデータが書き込まれているか否かを判定し、前記所定数以上のデータが書き込まれていないと判定すると、前記ＦＩＦＯメモリからのデータの読み出しを禁止し、前記所定数以上のデータが書き込まれていると判定すると、所定時間経過後に前記ＦＩＦＯメモリからのデータ読み出しを許可する読み出しタイミング制御手段を有することを特徴とするデータ入出力装置。
【請求項２】
前記ＦＩＦＯメモリに所定数以上のデータを書き込める余地があるか否かを判定し、前記所定数以上のデータを書き込む余地がないと判定すると、前記ＦＩＦＯメモリへのデータの書き込みを禁止し、前記所定数以上のデータを書き込む余地があると判定すると、所定時間経過後に前記ＦＩＦＯメモリへのデータ書き込みを許可する書き込みタイミング制御手段を有することを特徴とする請求項１記載のデータ入出力装置。
【請求項３】
前記読み出しタイミング制御手段は、書き込まれるデータが終了したことを示すデータエンド信号を検出すると、所定時間経過後に強制的にデータ読み出しを実行させることを特徴とする請求項１記載のデータ入出力装置。
【請求項４】
前記ＦＩＦＯメモリは、シングルポートＲＡＭからなることを特徴とする請求項１から３の何れか一項記載のデータ入出力装置。
【請求項５】
前記ＦＩＦＯメモリは、複数のＦＩＦＯメモリを多段接続していることを特徴とする請求項１から３の何れか一項記載のデータ入出力装置。
【請求項６】
前記ＦＩＦＯメモリは、シングルポートＲＡＭと、複数のＦＩＦＯメモリを多段接続したＦＩＦＯメモリとからなることを特徴とする請求項１から３の何れか一項記載のデータ入出力装置。
【請求項７】
前記書き込みタイミング制御手段は、前記所定時間を計時する計時手段を有し、
前記計時手段は、外部入力された前記所定時間に従って時間を計時することを特徴とする請求項２記載のデータ入出力装置。
【請求項８】
前記読み出しタイミング制御手段は、前記所定時間を計時する計時手段を有し、
前記計時手段は、外部入力された前記所定時間に従って時間を計時することを特徴とする請求項１記載のデータ入出力装置。
【請求項９】
前記所定時間は、前記ＦＩＦＯメモリ内でのデータ遅延時間を基に設定することを特徴とする請求項７または８記載のデータ入出力装置。
【請求項１０】
前記所定時間は、多段接続した前記ＦＩＦＯメモリの段数を基に設定することを特徴とする請求項７または８記載のデータ入出力装置。
【請求項１１】
前記所定時間は、前記ＦＩＦＯメモリにデータを書き込む書き込みクロックと、前記ＦＩＦＯメモリからデータを読み出す読み出しクロックとの周波数に基づいて設定することを特徴とする請求項７または８記載のデータ入出力装置。
【請求項１２】
前記所定時間は、多段接続した前記ＦＩＦＯメモリの段数と、前記ＦＩＦＯメモリにデータを書き込む書き込みクロックと前記ＦＩＦＯメモリからデータを読み出す読み出しクロックとの周波数に基づいて設定することを特徴とする請求項７または８記載のデータ入出力装置。
【請求項１３】
前記読み出しタイミング制御手段は、前記ＦＩＦＯメモリに書き込まれるデータ数をカウントする書き込みカウント手段と、前記ＦＩＦＯメモリから読み出されるデータ数をカウントする読み出しカウント手段とを有し、
前記書き込みカウント手段のカウント数と前記読み出しカウント手段のカウント数とに基づいて、外部から設定された前記所定数以上のデータが前記ＦＩＦＯメモリに書き込まれているか否かを判定することを特徴とする請求項１記載のデータ入出力装置。
【請求項１４】
前記書き込みタイミング制御手段は、前記ＦＩＦＯメモリに書き込まれるデータ数をカウントする書き込みカウント手段と、前記ＦＩＦＯメモリから読み出されるデータ数をカウントする読み出しカウント手段とを有し、
前記書き込みカウント手段のカウント数と前記読み出しカウント手段のカウント数とに基づいて、外部から設定された前記所定数以上のデータを書き込み可能な余地が前記ＦＩＦＯメモリにあるか否かを判定することを特徴とする請求項２記載のデータ入出力装置。
【請求項１５】
前記ＦＩＦＯメモリは、同期型のＦＩＦＯメモリであることを特徴とする請求項１または２記載のデータ入出力装置。
【請求項１６】
前記ＦＩＦＯメモリは、非同期型のＦＩＦＯメモリであることを特徴とする請求項１または２記載のデータ入出力装置。
【請求項１７】
入力データをＦＩＦＯメモリに一時的に蓄積して出力するデータ入出力方法であって、
前記ＦＩＦＯメモリに所定数以上のデータが書き込まれているか否かを判定するステップと、
前記所定数以上のデータが書き込まれていないと判定すると、前記ＦＩＦＯメモリからのデータの読み出しを禁止し、前記所定数以上のデータが書き込まれていると判定すると、所定時間経過後に前記ＦＩＦＯメモリからのデータ読み出しを許可するステップとを有することを特徴とするデータ入出力方法。
【請求項１８】
入力データをＦＩＦＯメモリに一時的に蓄積して出力するデータ入出力方法であって、
前記ＦＩＦＯメモリに所定数以上のデータを書き込める余地があるか否かを判定するステップと、
前記所定数以上のデータを書き込む余地がないと判定すると、前記ＦＩＦＯメモリへのデータの書き込みを禁止し、前記所定数以上のデータを書き込む余地があると判定すると、所定時間経過後に前記ＦＩＦＯメモリへのデータ書き込みを許可するステップとを有することを特徴とするデータ入出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＩＦＯ（First In First Out）メモリを備え、入力したデータを一時的にＦＩＦＯメモリに蓄積してから出力するデータ入出力装置およびこのデータ入出力装置におけるデータ入出力方法に関する。
【背景技術】
【０００２】
ＦＩＦＯメモリは、例えば転送速度の異なる２つのバスシステムの間でのデータ転送を実現するために用いられる。すなわち、２つのバスの転送速度の差を吸収するためにＦＩＦＯメモリに一時的にデータを書き込んで、書き込んだデータをＦＩＦＯメモリから読み出して出力側のバスにデータを出力している。
【０００３】
特許文献１では、ＦＩＦＯメモリを利用したデータ入出力装置において、データの転送効率とデータバスの使用効率を高めるために、ＦＩＦＯメモリに所定数以上のデータが書き込まれているか否かを書き込みアドレスポインタと読み出しアドレスポインタとの比較により判定して、ＦＩＦＯメモリに書き込まれた所定数以上のデータが空となるまでデータ転送要求を発生させている。またＦＩＦＯメモリに所定数以上のデータを書き込む余地があるか否かを判定して、ＦＩＦＯメモリが満杯になるまでデータ書き込み要求を発生させている。
【０００４】
また特許文献２では、データの書き込みと読み出しとを同じポートで行うシングルポートメモリを用いたデータ入出力装置であっても、データの連続書き込みが行える技術を開示している。
【０００５】
【特許文献１】特開平６−１８７１２３号公報
【特許文献２】特開２００３−２７１３７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、シングルポートメモリやＦＩＦＯメモリを多段接続したメモリにデータを書き込んで読み出すと、メモリ内部で生じる遅延によりデータを出力できないことがある。すなわち、シングルポートメモリやＦＩＦＯメモリを多段接続したメモリにデータを書き込むと、多段構成のためデータを出力するまでに時間がかかる。このためデータを書き込んですぐに読み出し要求信号が出されても、このデータを読み出すことができない。
【０００７】
例えば、５つのＦＩＦＯメモリを多段接続したＦＩＦＯメモリに２１ワードのデータを書き込み、書き込んだ所でデータ読み出し要求が発生すると、データは接続した多段分遅延して読み出し可能となるため、データを読み出せないことがある。
【０００８】
本発明は上記事情に鑑みてなされたものであり、データの書き込みから読み出しまでに遅延を生じるＦＩＦＯメモリであっても、確実にデータを読み出すことができるデータ入出力装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
かかる目的を達成するために請求項１記載のデータ入出力装置は、入力データをＦＩＦＯメモリに一時的に蓄積して出力するデータ入出力装置であって、前記ＦＩＦＯメモリに所定数以上のデータが書き込まれているか否かを判定し、前記所定数以上のデータが書き込まれていないと判定すると、前記ＦＩＦＯメモリからのデータの読み出しを禁止し、前記所定数以上のデータが書き込まれていると判定すると、所定時間経過後に前記ＦＩＦＯメモリからのデータ読み出しを許可する読み出しタイミング制御手段を有することを特徴としている。
【００１０】
請求項１記載の発明は、ＦＩＦＯメモリに所定数以上のデータが書き込まれていないと判定すると、ＦＩＦＯメモリからのデータの読み出しを禁止し、所定数以上のデータが書き込まれていると判定すると、所定時間経過後にＦＩＦＯメモリからのデータ読み出しを許可している。所定時間を経過してからデータの読み出しを許可するので、データの書き込みから読み出しまでに遅延を生じるＦＩＦＯメモリであっても、確実にデータを読み出すことができる。
【００１１】
請求項２記載のデータ入出力装置は、請求項１記載のデータ入出力装置において、前記ＦＩＦＯメモリに所定数以上のデータを書き込める余地があるか否かを判定し、前記所定数以上のデータを書き込む余地がないと判定すると、前記ＦＩＦＯメモリへのデータの書き込みを禁止し、前記所定数以上のデータを書き込む余地があると判定すると、所定時間経過後に前記ＦＩＦＯメモリへのデータ書き込みを許可する書き込みタイミング制御手段を有するとよい。
【００１２】
請求項２記載の発明もＦＩＦＯメモリに所定数以上のデータを書き込む余地がないと判定すると、ＦＩＦＯメモリへのデータの書き込みを禁止し、所定数以上のデータを書き込む余地があると判定すると、所定時間経過後に前記ＦＩＦＯメモリへのデータ書き込みを許可している。所定時間を経過してからデータの書き込みを許可するので、データの書き込みから読み出しまでに遅延を生じるＦＩＦＯメモリであっても、確実にデータを書き込むことができる。
【００１３】
請求項３記載のデータ入出力装置は、請求項１記載のデータ入出力装置において、前記読み出しタイミング制御手段は、書き込まれるデータが終了したことを示すデータエンド信号を検出すると、所定時間経過後に強制的にデータ読み出しを実行させるとよい。
【００１４】
請求項３記載の発明は、ＦＩＦＯメモリに書き込まれるデータが終了したことを示すデータエンド信号を検出すると、所定時間経過後に強制的にデータ読み出しを実行するため、データが所定数に満たない端数であったとしても、所定時間経過後にデータをＦＩＦＯメモリから読み出すことが可能となる。
【００１５】
請求項４記載のデータ入出力装置は、請求項１から３の何れか一項記載のデータ入出力装置において、前記ＦＩＦＯメモリは、シングルポートＲＡＭからなるとよい。
【００１６】
請求項４記載の発明のように、ＦＩＦＯメモリをシングルポートＲＡＭから構成するとデータを出力するまでに遅延を生じるが、このようなＦＩＦＯメモリであっても請求項１から４の何れか一項に記載のデータ入出力装置により確実にデータを読み出して、データの書き込みを行うことができる。
【００１７】
請求項５記載のデータ入出力装置は、請求項１から３の何れか一項記載のデータ入出力装置において、前記ＦＩＦＯメモリは、複数のＦＩＦＯメモリを多段接続しているとよい。
【００１８】
請求項５記載の発明のように、ＦＩＦＯメモリを複数のＦＩＦＯメモリを多段接続して構成すると、多段構成のためデータ出力に遅延を生じるが、このようなＦＩＦＯメモリであっても、請求項１から４の何れか一項に記載のデータ入出力装置により確実にデータを読み出して、データの書き込みを行うことができる。
【００１９】
請求項６記載のデータ入出力装置は、請求項１から３の何れか一項記載のデータ入出力装置において、前記ＦＩＦＯメモリは、シングルポートＲＡＭと、複数のＦＩＦＯメモリを多段接続したＦＩＦＯメモリとからなるとよい。
【００２０】
請求項６記載の発明のように、ＦＩＦＯメモリを、シングルポートＲＡＭと、複数のＦＩＦＯメモリを多段接続したＦＩＦＯメモリとから構成すると、データ出力に遅延を生じるが、このようなＦＩＦＯメモリであっても、請求項１から４の何れか一項に記載のデータ入出力装置により確実にデータを読み出して、データの書き込みを行うことができる。
【００２１】
請求項７記載のデータ入出力装置は、請求項２記載のデータ入出力装置において、前記書き込みタイミング制御手段は、前記所定時間を計時する計時手段を有し、前記計時手段は、外部入力された前記所定時間に従って時間を計時するとよい。
【００２２】
書き込みタイミング制御手段の有する計時手段の計時する所定時間を外部から設定変更できるようにしたため、ＦＩＦＯメモリに生じるデータ出力の遅延時間に合わせて時間を設定することができる。
【００２３】
請求項８記載のデータ入出力装置は、請求項１記載のデータ入出力装置において、前記読み出しタイミング制御手段は、前記所定時間を計時する計時手段を有し、前記計時手段は、外部入力された前記所定時間に従って時間を計時するとよい。
【００２４】
読み出しタイミング制御手段の有する計時手段の計時する所定時間を外部から設定変更できるようにしたため、ＦＩＦＯメモリに生じるデータ出力の遅延時間に合わせて所定時間を設定することができる。
【００２５】
請求項９記載のデータ入出力装置は、請求項７または８記載のデータ入出力装置において、前記所定時間は、前記ＦＩＦＯメモリ内でのデータ遅延時間を基に設定するとよい。
【００２６】
ＦＩＦＯメモリ内でのデータ遅延時間を基に所定時間を設定することで、ＦＩＦＯメモリに書き込んだデータを確実に読み出すことができる。
【００２７】
請求項１０記載のデータ入出力装置は、請求項７または８記載のデータ入出力装置において、前記所定時間は、多段接続した前記ＦＩＦＯメモリの段数を基に設定するとよい。
【００２８】
多段接続したＦＩＦＯメモリの段数を基に所定時間を設定することで、ＦＩＦＯメモリに書き込んだデータを確実に読み出すことができる。
【００２９】
請求項１１記載のデータ入出力装置は、請求項７または８記載のデータ入出力装置において、前記所定時間は、前記ＦＩＦＯメモリにデータを書き込む書き込みクロックと、前記ＦＩＦＯメモリからデータを読み出す読み出しクロックとの周波数に基づいて設定するとよい。
【００３０】
ＦＩＦＯメモリにデータを書き込む書き込みクロックと、ＦＩＦＯメモリからデータを読み出す読み出しクロックとの周波数に基づいて所定時間を設定することで、ＦＩＦＯメモリへのデータの連続書き込みと、ＦＩＦＯメモリからのデータの連続読み出しを確実に行うことができる。
【００３１】
請求項１２記載のデータ入出力装置は、請求項７または８記載のデータ入出力装置において、前記所定時間は、多段接続した前記ＦＩＦＯメモリの段数と、前記ＦＩＦＯメモリにデータを書き込む書き込みクロックと前記ＦＩＦＯメモリからデータを読み出す読み出しクロックとの周波数に基づいて設定するとよい。
【００３２】
多段接続した前記ＦＩＦＯメモリの段数と、ＦＩＦＯメモリにデータを書き込む書き込みクロックとＦＩＦＯメモリからデータを読み出す読み出しクロックとの周波数に基づいて所定時間を設定することで、ＦＩＦＯメモリへのデータの連続書き込みと、ＦＩＦＯメモリからのデータの連続読み出しを確実に行うことができる。
【００３３】
請求項１４記載のデータ入出力装置は、請求項１記載のデータ入出力装置において、前記読み出しタイミング制御手段は、前記ＦＩＦＯメモリに書き込まれるデータ数をカウントする書き込みカウント手段と、前記ＦＩＦＯメモリから読み出されるデータ数をカウントする読み出しカウント手段とを有し、前記書き込みカウント手段のカウント数と前記読み出しカウント手段のカウント数とに基づいて、外部から設定された前記所定数以上のデータが前記ＦＩＦＯメモリに書き込まれているか否かを判定するとよい。
【００３４】
書き込みカウント手段と読み出しカウント手段とを設けることで、外部から設定された所定数のデータがＦＩＦＯメモリに書き込まれているか否かを検出することができる。
【００３５】
請求項１５記載のデータ入出力装置は、請求項２記載のデータ入出力装置において、前記書き込みタイミング制御手段は、前記ＦＩＦＯメモリに書き込まれるデータ数をカウントする書き込みカウント手段と、前記ＦＩＦＯメモリから読み出されるデータ数をカウントする読み出しカウント手段とを有し、前記書き込みカウント手段のカウント数と前記読み出しカウント手段のカウント数とに基づいて、外部から設定された前記所定数以上のデータを書き込み可能な余地が前記ＦＩＦＯメモリにあるか否かを判定するとよい。
【００３６】
書き込みカウント手段と読み出しカウント手段とを設けることで、外部から設定された所定数のデータを書き込み可能な余地がＦＩＦＯメモリにあるか否かを検出することができる。
【００３７】
請求項１６記載の発明では、請求項１または２記載の前記ＦＩＦＯメモリを、同期型のＦＩＦＯメモリで構成し、請求項１７記載の発明では、請求項１または２記載の前記ＦＩＦＯメモリを、非同期型のＦＩＦＯメモリで構成している。
【００３８】
請求項１８記載のデータ入出力方法は、入力データをＦＩＦＯメモリに一時的に蓄積して出力するデータ入出力方法であって、前記ＦＩＦＯメモリに所定数以上のデータが書き込まれているか否かを判定するステップと、前記所定数以上のデータが書き込まれていないと判定すると、前記ＦＩＦＯメモリからのデータの読み出しを禁止し、前記所定数以上のデータが書き込まれていると判定すると、該所定時間経過後に前記ＦＩＦＯメモリからのデータ読み出しを許可するステップとを有することを特徴としている。
【００３９】
請求項１８記載の発明は、ＦＩＦＯメモリに所定数以上のデータが書き込まれていないと判定すると、ＦＩＦＯメモリからのデータの読み出しを禁止し、所定数以上のデータが書き込まれていると判定すると、所定時間経過後にＦＩＦＯメモリからのデータ読み出しを許可している。所定時間を経過してからデータの読み出しを許可するので、データの書き込みから読み出しまでに遅延を生じるＦＩＦＯメモリであっても、確実にデータを読み出すことができる。
【００４０】
請求項１９記載のデータ入出力方法は、入力データをＦＩＦＯメモリに一時的に蓄積して出力するデータ入出力方法であって、前記ＦＩＦＯメモリに所定数以上のデータを書き込める余地があるか否かを判定するステップと、前記所定数以上のデータを書き込む余地がないと判定すると、前記ＦＩＦＯメモリへのデータの書き込みを禁止し、前記所定数以上のデータを書き込む余地があると判定すると、所定時間経過後に前記ＦＩＦＯメモリへのデータ書き込みを許可するステップとを有することを特徴としている。
【００４１】
請求項１９記載の発明は、ＦＩＦＯメモリに所定数以上のデータを書き込める余地がないと判定すると、ＦＩＦＯメモリへのデータの書き込みを禁止し、所定数以上のデータを書き込む余地があると判定すると、所定時間経過後にＦＩＦＯメモリへのデータ書き込みを許可している。所定時間を経過してからデータの書き込みを許可するので、データの書き込みから読み出しまでに遅延を生じるＦＩＦＯメモリであっても、確実にデータを書き込むことができる。
【発明の効果】
【００４２】
本発明は、データの書き込みから読み出しまでに遅延を生じるＦＩＦＯメモリであっても、確実に書き込んだデータを読み出すことができる。
【発明を実施するための最良の形態】
【００４３】
次に、添付図面を参照しながら本発明の最良の実施例を説明する。
【実施例１】
【００４４】
まず、図１を参照しながらデータ入出力装置１の読み出し側の構成を説明する。図１に示すようにデータ入出力装置１の読み出し側には、ＲＡＭコントローラ２と、１ポートＲＡＭ３と、読み出しタイミンング制御部２０とが設けられている。
【００４５】
図１に示すようにＲＡＭコントローラ２には、書き込み信号（以下、ＷＥとも表記する）に合わせてデータ（Ｄａｔａとも表記する）が入力される。またＲＡＭコントローラ２からは、読み出し信号（以下、ＲＥとも表記する）に合わせて１ポートＲＡＭ３からデータが出力される。また１ポートＲＡＭ３が満杯状態で新たなデータの書き込みができなくなると、１ポートＲＡＭ３が満杯状態であることを示すフルフラグ（以下、ＦＵＬＬとも表記する）がＲＡＭコントローラ２から出力される。さらに、１ポートＲＡＭ３が空状態でデータの読み出しができなくなると、１ポートＲＡＭ３が空状態であることを示すエンプティフラグ（以下、ＥＭＰとも表記する）が出力される。
【００４６】
読み出しタイミング制御部２０は、１ポートＲＡＭ３に所定個以上のデータが書き込まれているか否かを判定して、所定数以上のデータが書き込まれていると所定時間経過後に読み出しを許可する読み出し許可フラグを設定する。
【００４７】
次に、図２を参照しながら読み出しタイミング制御部２０の構成について説明する。図２に示すように読み出しタイミング制御部２０は、ライトカウンタ２１と、比較回路２２と、リードカウンタ２３と、ディレイカウンタ２４と、読み出し許可フラグ生成回路２５とを有している。
【００４８】
ライトカウンタ２１は、書き込み信号（ＷＥ）とＲＡＭコントローラ２からのフルフラグにより１ポートＲＡＭ３に書き込まれているデータ数（以下、書き込みデータ数という）をカウントする。同様にリードカウンタ２３は、読み出し信号（ＲＥ）とＲＡＭコントローラ２からのエンプティフラグにより１ポートＲＡＭ３から読み出されたデータ数（以下、読み出しデータ数という）をカウントする。
【００４９】
比較回路２２は、ライトカウンタ２１の書き込みデータ数からリードカウンタ２３の読み出しデータ数を減算し、減算結果のデータカウント値を読み出し許可フラグ生成回路２５に出力する。
【００５０】
読み出し許可フラグ生成回路２５には、上述した書き込み信号（ＷＥ）、フルフラグ（ＦＵＬＬ）、読み出し信号（ＲＥ）、エンプティフラグ（ＥＭＰ）の他に、１ポートＲＡＭ３から連続的に読み出すワード数を示す読み出しワード数（以下、ＲＳＩＺＥとも表記する）と、ディレイカウンタ２４にカウントさせる読み出し遅延カウント数（以下、ＲＤＥＬＡＹとも表記する）とが入力される。
【００５１】
読み出し許可フラグ生成回路２５は、ライトカウンタ２１の書き込みデータ数からリードカウンタ２３の読み出しデータ数を減算した減算結果と、読み出しワード数（ＲＳＩＺＥ）とを比較する。読み出しワード数（ＲＳＩＺＥ）は、１ポートＲＡＭ３から所定数以上のデータを読み出すことができるかを判定する判定値となる。ライトカウンタ２１の書き込みデータ数からリードカウンタ２３の読み出しデータ数を減算した減算結果が、読み出しワード数（ＲＳＩＺＥ）よりも大きくなると、１ポートＲＡＭ３から読み出しワード数（ＲＳＩＺＥ）以上のデータを読み出すことができると判定する。読み出し許可フラグ生成回路２５は、所定数（ＲＳＩＳＥ）以上のデータを読み出せると判定すると、ディレイカウンタ２４で所定のカウント数をカウントしてから、１ポートＲＡＭ３からの読み出しを許可する読み出し許可フラグを１に設定する。
【００５２】
ディレイカウンタ２４は、読み出し許可フラグ生成回路２５からのカウント開始指示信号によって、ディレイカウントを開始する。ディレイカウンタ２４のカウントする読み出し遅延カウント数（ＲＤＥＬＡＹ）は、予め読み出し許可フラグ生成回路２５から指示されている。ディレイカウンタ２４は、カウント値を読み出し許可フラグ生成回路２５に出力する。
【００５３】
次に、図３に示す信号出力タイミングチャートを参照しながら読み出し許可フラグ生成回路２５のデータの書き込みと読み出しのタイミング制御について説明する。基準クロック（ＷＣＬＫ）に同期して生成された書き込み信号（ＷＥ）に合わせて、データをＲＡＭコントーラ２に入力する。ＲＡＭコントローラ２は、１ポートＲＡＭ３のアドレス（図３に示すＷａｄｄｒ）にデータ（Ｄａｔａ）を順次に書き込む。
【００５４】
読み出しタイミング制御部２０は、ライトカウンタ２１とリードカウンタ２３とを用いて１ポートＲＡＭ３への書き込みデータ数と読み出しデータ数とをカウントし、１ポートＲＡＭ３内に所定数以上のデータが書き込まれているか否かを検出する。比較回路２２で、ライトカウンタ２１のカウント数からリードカウンタ２３のカウント数を減算し、減算結果を読み出し許可フラグ生成回路２５に出力する。
【００５５】
読み出し許可フラグ生成回路２５は、ライトカウンタ２１の書き込みデータ数からリードカウンタ２３の読み出しデータ数を減算したデータカウント値と、読み出しワード数（ＲＳＩＺＥ）とを比較する。データカウント値が読み出しワード数（ＲＳＩＺＥ）よりも小さい場合には、所定数（ＲＳＩＺＥ）のデータを１ポートＲＡＭ３から読み出すことができないとして、読み出し許可フラグをローレベル（０）のままにする。また減算結果が、読み出しワード数（ＲＳＩＺＥ）よりも大きい場合には、所定数（ＲＳＩＺＥ）以上のデータが１ポートＲＡＭ３に書き込まれたと判定し、ディレイカウンタ２４にディレイカウント開始を指示するカウント開示指示信号を出力する。
【００５６】
ディレイカウンタ２４は、読み出し許可フラグ生成回路２５からのカウント開始指示信号によって、ディレイカウントを開始する。ディレイカウンタ２４のカウントする読み出し遅延カウント数（ＲＤＥＬＡＹ）は、予め読み出し許可フラグ生成回路２５から指示される。
【００５７】
読み出し許可フラグ生成回路２５は、ディレイカウンタ２４によって読み出し遅延カウント数（ＲＤＥＬＡＹ）（図３に示すカウント数Ｃ）をカウントすると、読み出し許可フラグをハイレベル（１）に設定して、１ポートＲＡＭ３からのデータの読み出しを許可する。
【００５８】
読み出し許可フラグがハイレベルに遷移することで、基準クロック（ＷＣＬＫ）に同期して生成された読み出し信号（ＲＥ）の入力に合わせてデータ（Ｄａｔａ）を１ポートＲＡＭ３からＲＡＭコントローラ２に出力する。ＲＡＭコントローラ２は、入力したデータ（Ｄａｔａ）を順次出力する。
【００５９】
例えば、１ポートＲＡＭ３に１ワード書き込んだ所でこの１ワードのデータの読み出し要求を出した場合、書き込まれたデータは、すぐには出力されない。このため１ワード分の読み出しを行っても１ワードのデータを読み出すことができない。本実施例では、１ポートＲＡＭ３に所定数以上のデータが書き込まれていると判定すると、ディレイカウンタ２４で所定時間をカウントしてからデータの読み出しを行う。このため１ポートＲＡＭ３に書き込んだデータを確実に読み出すことができる。
【００６０】
なお、本実施例は図４に示すようなＦＩＦＯ（First In First Out）メモリ４、５、６を複数多段接続した構成のデータ入出力装置に適用することができる。また図示しないが、シングルポートＲＡＭ３と、多段構成のＦＩＦＯとから構成されるメモリ部であっても本発明を適用することができる。また、このＦＩＦＯメモリは、データの入力と出力とを同期して行う同期式のものであってもよいし、データの入力と出力とを非同期で行う非同期式のものであってもよい。
【００６１】
なお、ディレイカウンタ２４の読み出し遅延カウント数（ＲＤＥＬＡＹ）は、図１に示す１ポートＲＡＭ３を用いた構成では、この１ポートＲＡＭ３で生じるデータの読み出しまでにかかる遅延時間を考慮して設定される。また、図４に示すＦＩＦＯメモリ４、５、６を多段接続した構成のメモリ部の場合には、多段接続したＦＩＦＯメモリの段数に応じて設定することができる。もちろん、１ポートＲＡＭ３と多段構成のＦＩＦＯメモリ４、５、６とからなるメモリ部であった場合には、１ポートＲＡＭ３で生じるデータ読み出しまでにかかる遅延時間と、多段接続したＦＩＦＯメモリの段数に応じて設定することができる。
【００６２】
また、本実施例では、ディレイカウンタ２４の読み出し遅延カウント数（ＲＤＥＬＡＹ）と、１ポートＲＡＭ３から連続して読み出し可能なデータ数（ＲＳＩＺＥ）とは、外部より任意に設定可能である。ソフトウェアにより読み出し遅延カウント数（ＲＤＥＬＡＹ）とデータ数（ＲＳＩＺＥ）とを図示しないレジスタに書き込み、レジスタの値を上位装置で読み出しタイミング制御部２０に通知する。
【実施例２】
【００６３】
次に、図５を参照しながら第２実施例の構成を説明する。図５には、本実施例のデータ入出力装置１の書き込み側の構成が示されている。図５に示すデータ入出力装置１は、１ポートＲＡＭ３へのデータの書き込みと読み出しを制御するＲＡＭコントローラ２と、データの書き込みと読み出しとを同じ１つのポートで行う１ポートＲＡＭ３と、１ポートＲＡＭ３に所定数以上のデータを書き込む余地があるか否かを判定して、所定数以上のデータを書き込む余地があると所定時間経過後に書き込みを許可する書き込み許可フラグを設定する書き込みタイミング制御部１０とを有している。
【００６４】
次に、図６を参照しながら書き込みタイミング制御部１０の構成について説明する。図６に示すように書き込みタイミング制御部１０は、ライトカウンタ１１と、比較回路１２と、リードカウンタ１３と、ディレイカウンタ１４と、書き込み許可フラグ生成回路１５とを有している。
【００６５】
ライトカウンタ１１は、書き込み信号（ＷＥ）とＲＡＭコントローラ２からのフルフラグにより１ポートＲＡＭ３に書き込まれているデータ数（以下、書き込みデータ数という）をカウントする。同様にリードカウンタ１３は、読み出し信号（ＲＥ）とＲＡＭコントローラ２からのエンプティフラグにより１ポートＲＡＭ３から読み出されたデータ数（以下、読み出しデータ数という）をカウントする。
【００６６】
比較回路１２は、ライトカウンタ１１の書き込みデータ数からリードカウンタ１３の読み出しデータ数を減算し、減算結果のデータカウント値を書き込み許可フラグ生成回路１５に出力する。
【００６７】
書き込み許可フラグ生成回路１５には、上述した書き込み信号（ＷＥ）、フルフラグ（ＦＵＬＬ）、読み出し信号（ＲＥ）、エンプティフラグ（ＥＭＰ）の他に、１ポートＲＡＭ３に連続的に書き込むワード数を示す書き込みワード数（以下、ＷＳＩＺＥとも表記する）と、ディレイカウンタ１４にカウントさせる書き込み遅延カウント数（以下、ＷＤＥＬＡＹとも表記する）とが入力される。
【００６８】
書き込み許可フラグ生成回路１５は、１ポートＲＡＭのメモリサイズ（以下、ＴＳＩＺＥと表記する）から比較回路１２のデータカウント値を減算し、減算結果を書き込みワード数（ＷＳＩＺＥ）と比較する。書き込みワード数（ＷＳＩＺＥ）は、１ポートＲＡＭ３に書き込むデータ数を示すものであり、ここでは、１ポートＲＡＭ３に所定数以上のデータを書き込む余地があるかを判定する判定値となる。ＴＳＩＺＥからデータカウント値を減算した値が、書き込みワード数（ＷＳＩＺＥ）よりも大きくなると、１ポートＲＡＭ３に書き込みワード数（ＷＳＩＺＥ）以上のデータを書き込む余地があると判定できる。書き込み許可フラグ生成回路１５は、所定数（ＷＳＩＺＥ）のデータを書き込む余地があると判定すると、ディレイカウンタ１４で所定のカウント数をカウントしてから、１ポートＲＡＭ３への書き込みを許可する書き込み許可フラグを１に設定する。
【００６９】
ディレイカウンタ１４は、書き込み許可フラグ生成回路１５からのカウント開始指示信号によって、ディレイカウントを開始する。ディレイカウンタ１４のカウントする書き込み遅延カウント数（ＷＤＥＬＡＹ）は、予め書き込み許可フラグ生成回路１５から指示されている。ディレイカウンタ１４は、カウント値を書き込み許可フラグ生成回路１５に出力する。
【００７０】
次に、図７に示す信号出力タイミングチャートを参照しながら書き込みタイミング制御部１０のデータの書き込みと読み出しのタイミング制御について説明する。基準クロック（以下ＷＣＬＫとも表記する）に同期して生成された読み出し信号（ＲＥ）に合わせて、入力したアドレス（図７に示すＲａｄｄｒ）のデータ（Ｄａｔａ）を１ポートＲＡＭ３からＲＡＭコントローラ２に出力する。ＲＡＭコントローラ２は、入力したデータ（Ｄａｔａ）を順次出力する（図７に示すＤＯ）。
【００７１】
書き込みタイミング制御部１０は、ライトカウンタ１１とリードカウンタ１３とを用いて１ポートＲＡＭ３への書き込みデータ数と読み出しデータ数とをカウントし、１ポートＲＡＭ３内に所定数以上のデータを書き込む余地があるか否かを検出する。比較回路１２で、ライトカウンタ１１のカウント数からリードカウンタ１３のカウント数を減算し、減算結果のデータカウント値を書き込み許可フラグ生成回路１５に出力する。
【００７２】
書き込み許可フラグ生成回路１５は、１ポートＲＡＭ３のメモリサイズＴＳＩＺＥから比較回路１２のデータカウント値を減算する。次に、減算結果と書き込みワード数（ＷＳＩＺＥ）とを比較する。減算結果が、書き込みワード数（ＷＳＩＺＥ）よりも小さい場合には、所定数（ＷＳＩＺＥ）以上のデータを書き込む余地が１ポートＲＡＭ３にはないとして、書き込み許可フラグをローレベル（０）のままにする。また減算結果が、書き込みワード数（ＷＳＩＺＥ）よりも大きい場合には、所定数（ＷＳＩＺＥ）以上のデータを書き込む余地が１ポートＲＡＭ３にできたと判定し、ディレイカウンタ１４にディレイカウント開始を指示するカウント開始指示信号を出力する。
【００７３】
ディレイカウンタ１４は、書き込み許可フラグ生成回路１５からのカウント開始指示信号によって、ディレイカウントを開始する。ディレイカウンタ１４のカウントする書き込み遅延カウント数（ＷＤＥＬＡＹ）は、予め書き込み許可フラグ生成回路１５から指示されている。
【００７４】
書き込み許可フラグ生成回路１５は、ディレイカウンタ１４によって書き込み遅延カウント数（ＷＤＥＬＡＹ）（図７に示すカウント数Ｃ）をカウントすると、書き込み許可フラグをハイレベルに設定して、１ポートＲＡＭ３へのデータの書き込みを許可する。
【００７５】
書き込み許可フラグがハイレベルに遷移することで、基準クロック（ＷＣＬＫ）に同期して生成された書き込み信号（ＷＥ）の入力に合わせてデータ（Ｄａｔａ）をＲＡＭコントローラ２に入力する。ＲＡＭコントローラ２は、入力したデータ（Ｄａｔａ）を順次１ポートＲＡＭ３に書き込む。
【００７６】
このように本実施例は、１ポートＲＡＭ３に所定数（ＷＳＩＺＥ）以上のデータを書き込める余地があると判定すると、所定時間（ＷＤＥＬＡＹ）経過後に１ポートＲＡＭ３へのデータ書き込みを許可している。所定時間を経過してからデータの書き込みを許可するので、確実に所定数のデータを書き込むことができる。
【００７７】
なお、本実施例も変形例として図８に示すようなＦＩＦＯ（First In First Out）メモリ４、５、６を複数多段接続した構成のデータ入出力装置にも適用することができる。また図示しないが、シングルポートＲＡＭ３と、多段構成のＦＩＦＯとから構成されるメモリ部であっても本発明を適用することができる。また、この１ポートＲＡＭ３やＦＩＦＯメモリ４、５、６は、データの入力と出力とを同期して行う同期式のものであってもよいし、データの入力と出力とを非同期で行う非同期式のものであってもよい。
【００７８】
またディレイカウンタ１４の書き込み遅延カウント数（ＷＤＥＬＡＹ）は、図１に示す１ポートＲＡＭ３を用いた構成では、この１ポートＲＡＭ３で生じるデータの読み出しまでにかかる遅延時間を考慮して設定される。また、図８に示すＦＩＦＯメモリ４、５、６を多段接続した構成のメモリ部の場合には、多段接続したＦＩＦＯメモリの段数に応じて設定することができる。もちろん、１ポートＲＡＭ３と多段構成のＦＩＦＯメモリ４、５、６とからなるメモリ部であった場合には、１ポートＲＡＭ３で生じるデータ読み出しまでにかかる遅延時間と、多段接続したＦＩＦＯメモリの段数に応じて設定することができる。
【００７９】
また、本実施例では、ディレイカウンタ１４の書き込み遅延カウント数（ＷＤＥＬＡＹ）と、１ポートＲＡＭ３に連続して書き込まれるデータ数（ＷＳＩＺＥ）とは、外部より任意に設定可能である。ソフトウェアにより書き込み遅延カウント数（ＷＤＥＬＡＹ）とデータ数（ＷＳＩＺＥ）とを図示しないレジスタに書き込み、レジスタの値を上位装置で書き込みタイミング制御部１０に通知する。
【実施例３】
【００８０】
本実施例は、最後の書き込みデータが所定数に満たない端数データであっても、１ポートＲＡＭ３から確実に読み出すことができる構成を提供する。本実施例は、図９及び図１０に示すように書き込み側からの最後の書き込みデータであることを示すエンド信号（ＷＥＮＤ）を読み出しタイミング制御部２０の読み出し許可フラグ生成回路２５に入力する。図１１のタイミングチャートに示すように読み出し許可フラグ生成回路２５は、エンド信号（ＷＥＮＤ）が入力されると、例え１ポートＲＡＭ３に書き込まれているデータ数が所定数に満たなくても強制的にカウント開始指示信号をディレイカウンタ２４に出力する。ディレイカウンタ２４で読み出し遅延カウント数（ＲＤＥＬＡＹ）をカウントすると、読み出しタイミング制御部２０は読み出し許可フラグをハイレベルに設定する。
【００８１】
読み出し許可フラグがハイレベルに遷移することで、読み出し信号（ＲＥ）の入力に合わせてデータ（Ｄａｔａ）が１ポートＲＡＭ３からＲＡＭコントローラ２に出力される。
【００８２】
このようにして本実施例では、データが所定数に満たない端数データであっても、１ポートＲＡＭ３から確実に読み出すことができる。
【実施例４】
【００８３】
本実施例も、上述した実施例３のように最後の書き込みデータが所定数に満たない端数データであっても、１ポートＲＡＭ３から確実に読み出すことができる構成を提供する。本実施例では、図１２に示すように、書き込み側から最後の書き込みデータであることを示すエンド信号（ＷＥＮＤ）が入力されると、読み出しタイミング制御部２０は、このエンド信号を所定時間遅延させて出力側に出力する。ここでは、エンド信号を所定時間遅延させた信号を第２エンド信号（ＷＥＮＤ２とも表記する）と表記する。
【００８４】
図１３に本実施例の構成を示す。本実施例は、図１３に示すように書き込み側からのエンド信号（ＷＥＮＤ）を入力する書き込みエンドフラグ生成部２６と、遅延時間をカウントする第２ディレイカウンタ２７とを新たに設けている。書き込みエンドフラグ生成部２６には、図１３に示すように読み出し遅延カウント数（ＲＤＥＬＡＹ）と、エンド信号（ＷＥＮＤ）とが入力される。書き込みエンドフラグ生成部２６は、エンド信号（ＷＥＮＤ）の信号レベルが遷移（ハイレベルに遷移する）すると、この第２ディレイカウンタ２７にカウント動作を開始させる。第２ディレイカウンタ２７により読み出し遅延カウント数（ＲＤＥＬＡＹ）をカウントすると、書き込みエンドフラグ生成部２６は、第２エンド信号（ＷＥＮＤ２）を出力側に出力する。第２エンド信号（ＷＥＮＤ２）が出力された時点で、強制的に読み出し動作を実行する。
【００８５】
このようにして本実施例でも、データが所定数に満たない端数データであっても、１ポートＲＡＭ３から確実に読み出すことができる。
【００８６】
上述した実施例１から実施例４のデータ入出力装置は、例えば、図１４に示すように画像形成装置の画像入力ユニット３０のラインバッファ３１や、画像出力ユニット３３のＦＩＦＯメモリ３４へのデータの入出力制御に用いられる。例えば、メモリ３５に記録した画像データを画像伸張処理部３２で伸張処理し、処理後の信号をバスを介して画像出力ユニット３３のデータ入出力装置に入力して、ＦＩＦＯメモリ３４へのデータの書き込みと読み出しとを行う。
【００８７】
なお、上述した実施例は本発明の好適な実施例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。例えば、上述した実施例では、書き込み信号（ＷＥ）と読み出し信号（ＲＥ）とを同一の基準クロック（ＷＣＬＫ）から生成しているため、同じ周波数の信号となっているが、書き込み信号（ＷＥ）と読み出し信号（ＲＥ）とを異なる周波数の信号としてもよい。この場合、書き込み信号（ＷＥ）と読み出し信号（ＲＥ）との信号周波数に基づいて、書き込み遅延カウント数（ＷＤＥＬＡＹ）と読み出し遅延カウント数（ＲＤＥＬＡＹ）とを決定する。
【図面の簡単な説明】
【００８８】
【図１】実施例１のデータ入出力装置のリード側の構成を示すブロック図である。
【図２】実施例１の読み出しタイミング制御部２０の構成を示すブロック図である。
【図３】実施例１のデータ読み出しのタイミングを示す信号出力タイミング図である。
【図４】データ入出力装置のリード側の他の構成を示すブロック図である。
【図５】実施例２のデータ入出力装置のライト側の構成を示すブロック図である。
【図６】実施例２の書き込みタイミング制御部１０の構成を示すブロック図である。
【図７】実施例２のデータ書き込みのタイミングを示す信号出力タイミング図である。
【図８】データ入出力装置のライト側の他の構成を示すブロック図である。
【図９】実施例３のデータ入出力装置のリード側の構成を示すブロック図である。
【図１０】実施例３の読み出しタイミング制御部２０の構成を示すブロック図である。
【図１１】実施例３のデータ読み出しのタイミングを示す信号出力タイミング図である。
【図１２】実施例４のデータ入出力装置のリード側の他の構成を示すブロック図である。
【図１３】実施例４の読み出しタイミング制御部２０の他の構成を示すブロック図である。
【図１４】データ入出力装置を搭載した画像形成装置を示す図である。
【符号の説明】
【００８９】
１  データ入出力装置                ２  ＲＡＭコントローラ
３  １ポートＲＡＭ                  ４、５、６  ＦＩＦＯ
１０  書き込みタイミング制御部      １１、２１  ライトカウンタ
１２、２２  比較回路                １３、２３  リードカウンタ
１４、２４  ディレイカウンタ        １５  書き込み許可フラグ生成回路
２０  読み出しタイミング制御部  
２５  読み出し許可フラグ生成回路
２６  書き込みエンドフラグ生成部    ２７  第２ディレイカウンタ
【図１】
2005321933.tif 000003
【図２】
2005321933.tif 000004
【図３】
2005321933.tif 000005
【図４】
2005321933.tif 000006
【図５】
2005321933.tif 000007
【図６】
2005321933.tif 000008
【図７】
2005321933.tif 000009
【図８】
2005321933.tif 000010
【図９】
2005321933.tif 000011
【図１０】
2005321933.tif 000012
【図１１】
2005321933.tif 000013
【図１２】
2005321933.tif 000014
【図１３】
2005321933.tif 000015
【図１４】
2005321933.tif 000016