(57)【要約】 【課題】  回路規模の増大や処理の複雑化を招くことなく、データの送信側のシステムが、登録数を確認したデータのうちの所望の順番のデータを確認することのできるＦＩＦＯメモリ装置を提供する。【解決手段】  データの送信側のシステム１００から供給されるデータを順次シフトするｎ段（ｎは２以上の整数）のシフトレジスタ２と、シフトレジスタ２の１段からｎ段までの出力がそれぞれ入力される第１の選択手段５と、送信側のシステム１００からライトイネーブル信号が供給される毎にカウントアップを行い、データの受信側のシステム２００からリードイネーブル信号が供給される毎にカウントダウンを行う計数手段３と、シフトレジスタ２の１段からｎ段までの出力がそれぞれ入力されるとともに、計数手段３のカウント出力が、シフトレジスタ２の対応する段の出力を選択させる制御信号として供給される第２の選択手段４とを備える。【選択図】  図１ 
2006012246.tif 000002
【特許請求の範囲】
【請求項１】
データの送信側のシステムから供給されるデータを順次シフトするｎ段（ｎは２以上の整数）のシフトレジスタと、
前記シフトレジスタの１段からｎ段までの出力がそれぞれ入力される第１の選択手段と、
前記送信側のシステムからライトイネーブル信号が供給される毎にカウントアップを行い、データの受信側のシステムからリードイネーブル信号が供給される毎にカウントダウンを行う計数手段と、
前記シフトレジスタの１段からｎ段までの出力がそれぞれ入力されるとともに、前記計数手段のカウント出力が、前記シフトレジスタの対応する段の出力を選択させる制御信号として供給される第２の選択手段と
を備えたことを特徴とするＦＩＦＯメモリ装置。
【請求項２】
請求項１に記載のＦＩＦＯメモリ装置において、
前記送信側のシステムの出力を、前記受信側のシステムの動作クロックに同期させるクロック乗換え手段と、
前記第２の選択手段の選択出力及び前記計数手段のカウント出力を、前記送信側のシステムの動作クロックに同期させるクロック乗換え手段と
をさらに備えたことを特徴とするＦＩＦＯメモリ装置。
【請求項３】
請求項１に記載のＦＩＦＯメモリ装置において、
前記計数手段は、前記送信側のシステムからライトイネーブル信号が供給されるのと同時に前記受信側のシステムからリードイネーブル信号が供給された場合には、カウント値を変化させないことを特徴とするＦＩＦＯメモリ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＩＦＯ（ファーストイン・ファーストアウト）メモリ装置に関し、特に、回路規模の削減等を図ったものに関する。
【背景技術】
【０００２】
互いに非同期に動作する２つのシステムの間でデータを転送する場合に、それらのシステムの間にＦＩＦＯメモリを設け、データの送信側のシステムが適宜のタイミングでそのＦＩＦＯメモリにデータを書き込み、受信側のシステムが適宜のタイミングでそのＦＩＦＯメモリからデータを読み出すということが一般的に行われている。
【０００３】
このＦＩＦＯメモリとしては、送信側のシステムが、ライトアドレス信号を順次インクリメントしてＲＡＭにデータを書き込んでいき、受信側のシステムが、リードアドレス信号を順次インクリメントしてこのＲＡＭからデータを読み出すようにしたものが従来から存在している（例えば、特許文献１参照。）。
【０００４】
図５は、そうした従来のＦＩＦＯメモリの構成例を示すブロック図である。なお、ここでは、送信側のシステムを、コマンドを送信する制御装置１００とするとともに、受信側のシステムを、そのコマンドを実行する実行装置２００としている。
【０００５】
このＦＩＦＯメモリ５１は、ＲＡＭ５２，ライトカウンタ５３，リードカウンタ５４及びＦＩＦＯステータス回路５５で構成されている。ＲＡＭ５２は、アドレス０番地〜（ｎ−１）番地にそれぞれ所定ビット単位のデータを１つずつ格納可能になっている。
【０００６】
制御装置１００は、制御装置１００の動作クロックを書込みクロックとして、データ（ここではコマンド）をＲＡＭ５２のデータ入力端子ＤＩに供給するとともに、ライトイネーブル信号をＲＡＭ５２のライトイネーブル端子ＷＥ及びライトカウンタ５３に供給する。
【０００７】
ライトカウンタ５３は、初期値を０として、ライトイネーブル信号が供給されている間、書込みクロックのタイミングでカウントアップを行う。そして、カウント値が（ｎ−１）に達すると、その後初期値０に戻って同じカウント動作を繰り返す。ライトカウンタ５３のカウント出力Ｃｗは、ライトアドレス信号としてＲＡＭ５２のライトアドレス端子ＷＡに供給される。
【０００８】
これにより、制御装置１００から、ＲＡＭ５２のアドレス０番地，１番地，２番地…に順にデータが書き込まれていく。図６（ａ）は、この書込み動作の一例を示すタイミングチャートである。この例では、データ「Ａ」，「Ｂ」，「Ｃ」，「Ｄ」，「Ｃ」，「Ｄ」が、ライトアドレス信号「０」，「１」，「２」，「３」によってＲＡＭ５２内のアドレス０番地，１番地，２番地，３番地にそれぞれ書き込まれる。
【０００９】
実行装置２００は、実行装置２００の動作クロックを読出しクロックとして、リードイネーブル信号をＲＡＭ５２のリードイネーブル端子ＲＥ及びリードカウンタ５４に供給する。リードカウンタ５４は、初期値を０として、リードイネーブル信号が供給されている間、読出しクロックのタイミングでカウントアップを行う。そして、カウント値が（ｎ−１）に達すると、その後初期値０に戻って同じカウント動作を繰り返す。リードカウンタ５４のカウント出力Ｃｒは、リードアドレス信号としてＲＡＭ５２のリードアドレス端子ＲＡに供給される。
【００１０】
これにより、実行装置２００によってＲＡＭ５２のアドレス０番地，１番地，２番地…から順にデータが読み出されていく。図６（ｂ）は、この読出し動作の一例を、図６（ａ）の書込み動作と関連付けて示すタイミングチャートである。
【００１１】
ライトカウンタ５３，リードカウンタ５４のカウント出力Ｃｗ，Ｃｒは、ＦＩＦＯステータス回路５５にも供給される。ＦＩＦＯステータス回路５５では、書込みクロック（制御装置１００の動作クロック）に同期しているライトカウンタ５３のカウント出力Ｃｗが、クロック乗換え回路５６で読出しクロック（実行装置２００の動作クロック）に乗り換えられた後、比較器５７でリードカウンタ５４のカウント出力Ｃｒと同じであるか否かが比較される。
【００１２】
この比較器５７の比較結果は、データの登録状況（ＲＡＭ５２に書き込まれたデータのうちまだ実行装置２００が読み出していないデータがあるか否か）を示す情報として、実行装置２００に送られる。実行装置２００は、この比較結果がＣｗ＝Ｃｒである場合には、リードイネーブル信号の供給を行わない。
【００１３】
また、ＦＩＦＯステータス回路５５では、読出しクロックに同期しているリードカウンタ５４のカウント出力Ｃｒが、クロック乗換え回路５８で書込みクロックに乗り換えられた後、減算器５９でライトカウンタ５３のカウント出力Ｃｗから減算される。
【００１４】
この減算器５９の減算出力は、データの登録数（ＲＡＭ５２に書き込んだデータのうちまだ実行装置２００によって読み出されていないデータの数、すなわち実行待ちのキューのデータ数）を示す情報として、制御装置１００に送られる。制御装置１００は、この減算出力がｎ（ＲＡＭ５２のアドレス番地の数と同じ数）である場合には、新たなデータやライトイネーブル信号の供給を行わない。
【特許文献１】特開２００１−３０７４７６号公報（段落番号０００２〜００１０、図５）。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
ところで、この制御装置１００の側では、減算器５９の減算出力によってデータの登録数を確認した後、それらのデータのうちの何番目のデータがどんなデータであるか（実行待ちのキューのうちの何番目のデータがどんなデータであるか）を確認したい場合がある。
【００１６】
ＦＩＦＯメモリ５１では、実行装置２００が最後にデータを読み出したときのリードアドレス信号がリードカウンタ５４のカウント出力Ｃｒで表されるので、このリードカウンタ５４のカウント値を基準として、登録数を確認したデータのうちの所望の順番のデータをＲＡＭ５２から読み出して確認することが可能である。しかし、現在のリードカウンタ５４のカウント出力そのものを基準としたのでは、本来確認したかった順番のデータを確認できなくなることがある。そのことを、図７を用いて説明する（図７及び後出の図８では、簡略化のためのＲＡＭ５２のアドレスを０番地〜７番地として描いている）。
【００１７】
制御装置１００がデータの登録数を確認した時点で、図７（ａ）に示すように、リードカウンタ５４のカウント値が２であったとする。この時点では、例えばリードカウンタ５４のカウント出力に３を加算した値５のリードアドレス信号は、データ「Ｄ」に対応している。
【００１８】
しかし、制御装置１００がデータの登録数を確認した後、それらのデータのうちの何番目のデータを確認したいかを決定するまでの間に、図７（ｂ）に示すように、実行装置２００がデータを読み出すことによってリードカウンタ５４のカウント値が３にカウントアップされてしまうことがある。そのため、例えば登録数を確認したデータのうちの３番目のデータ（前述のように本来はデータ「Ｄ」）を確認したいと決定して、現在のリードカウンタ５４のカウント出力に３を加算した値のリードアドレス信号をＲＡＭ５２のリードアドレス端子ＲＡに供給すると、データ「Ｄ」ではなくデータ「Ｅ」がＲＡＭ５２から読み出されてしまうので、本来確認したかった順番のデータを確認できなくなる。
【００１９】
そのため、制御装置１００は、登録数を確認したデータのうちの所望の順番のデータを確認するために、次の（１），（２）のいずれかの方法をとる必要があった。
【００２０】
（１）図８に示すように、ＲＡＭ５２と同じ容量のＲＡＭ１０１を制御装置１００内に用意しておき、データの登録数を確認した時点で、リードカウンタ５４のカウント出力Ｃｒを基準として、ＲＡＭ５２内のデータ「Ａ」，「Ｂ」，「Ｃ」…をこのＲＡＭ１０１にコピーする。そして、登録数を確認したデータのうちの何番目のデータを確認したいかを決定した後、ＲＡＭ１０１の対応するアドレス番地（例えば３番目のデータを確認したいときはアドレス番地３）からデータを読み出す。
【００２１】
（２）図９に示すように、リードカウンタ５４のカウント出力Ｃｒを記憶するためのレジスタ６０をＦＩＦＯメモリ５１内に設けておき、データの登録数を確認した時点で、リードカウンタ５４のカウント出力Ｃｒをこのメモリ６０に書き込む。そして、登録数を確認したデータのうちの何番目のデータを確認したいかを決定した後、メモリ６０から読み出したカウント出力Ｃｒを基準として生成したリードアドレス信号（例えば３番目のデータを確認したいときはメモリ６０から読み出したカウント出力Ｃｒに３を加算したリードアドレス信号）をＲＡＭ５２のリードアドレス端子ＲＡに供給して、ＲＡＭ５２からそのデータを読み出す。
【００２２】
しかし、この（１）や（２）の方法では、データを登録するための本来の記憶装置であるＲＡＭ５２以外に、登録数を確認したデータのうちの所望の順番のデータを確認するための専用の記憶装置（ＲＡＭ１０１やレジスタ６０）を制御装置１００内やＦＩＦＯメモリ５１内に設けてその記憶装置を制御しなければならないので、回路規模の増大や処理の複雑化を招いてしまう。
【００２３】
本発明は、上述の点に鑑み、回路規模の増大や処理の複雑化を招くことなく、この制御装置１００のようなデータの送信側のシステムが、登録数を確認したデータのうちの所望の順番のデータを確認することのできるＦＩＦＯメモリ装置を提供することを課題としてなされたものである。
【課題を解決するための手段】
【００２４】
この課題を解決するために、本発明に係るＦＩＦＯメモリ装置は、データの送信側のシステムから供給されるデータを順次シフトするｎ段（ｎは２以上の整数）のシフトレジスタと、このシフトレジスタの１段からｎ段までの出力がそれぞれ入力される第１の選択手段と、この送信側のシステムからライトイネーブル信号が供給される毎にカウントアップを行い、データの受信側のシステムからリードイネーブル信号が供給される毎にカウントダウンを行う計数手段と、このシフトレジスタの１段からｎ段までの出力がそれぞれ入力されるとともに、この計数手段のカウント出力が、このシフトレジスタの対応する段の出力を選択させる制御信号として供給される第２の選択手段とを備えたことを特徴とする。
【００２５】
このＦＩＦＯメモリ装置では、データの送信側のシステムから供給されるデータが、ｎ段のシフトレジスタに順次シフトされることによって書き込まれる。そして、このシフトレジスタの１段からｎ段までの出力が、第１の選択手段及び第２の選択手段に入力される。
【００２６】
また、送信側のシステムからライトイネーブル信号が供給される毎に計数手段でカウントアップが行われ、データの受信側のシステムからリードイネーブル信号が供給される毎にこの計数手段でカウントダウンが行われる。そして、この計数手段のカウント出力が、シフトレジスタの対応する段の出力を選択させる制御信号として第２の選択手段に供給されることにより、先に書き込まれたデータの順に第２の選択手段で選択される。
【００２７】
したがって、受信側のシステムは、第２の選択手段の選択出力を入力することによってデータを読み出すことができる。また、受信側のシステムは、計数手段のカウント出力そのものによってデータの登録状況（シフトレジスタに書き込まれたデータのうちまだ受信側のシステムが読み出していないデータがあるか否か）を確認することができる。
【００２８】
また、送信側のシステムも、計数手段のカウント出力そのものによってデータの登録数（シフトレジスタに書き込んだデータのうちまだ受信側のシステムによって読み出されていないデータの数、すなわち実行待ちのキューのデータ数）を確認することができる。
【００２９】
また、送信側のシステムは、データの登録数を確認した後、それらのデータのうちの何番目のデータがどんなデータであるかを確認したい場合には、その順番に対応するシフトレジスタの段の出力を選択させる制御信号を第１の選択手段に供給すれば、その順番のデータが第１の選択手段で選択される。したがって、送信側のシステムは、第１の選択手段の選択出力を入力することによって、登録数を確認したデータのうちの所望の順番のデータを確認することができる。
【００３０】
このように、このＦＩＦＯメモリ装置によれば、送信側のシステムは、データを登録するための本来の記憶装置であるシフトレジスタそのものから、登録数を確認したデータのうちの所望の順番のデータを確認することができる。すなわち、データを登録するための本来の記憶装置以外に、登録数を確認したデータのうちの所望の順番のデータを確認する専用の記憶装置（例えば図８のＲＡＭ１０１や図９のレジスタ６０）を設ける必要がない。これにより、回路規模の増大や処理の複雑化を招くことなく、送信側のシステムが、登録数を確認したデータのうちの所望の順番のデータを確認することができる。
【００３１】
また、受信側のシステム，送信側のシステムは、計数手段のカウント出力そのものによってデータの登録状況，データの登録数を確認することができるので、データの登録状況を示す情報やデータの登録数を示す情報を作成するための専用の回路（例えば図５では比較器５７や減算器５９）を設ける必要がない。したがって、その点でも回路規模を削減することができる。
【００３２】
そして、送信側のシステムは、従来と同様にデータ及びライトイネーブル信号を供給すればこのＦＩＦＯメモリ装置にデータを書き込むことができるとともに、計数手段のカウント出力から従来と同様にしてデータの登録数を確認することができる。また、受信側のシステムも、計数手段のカウント出力から従来と同様にしてデータの登録状況を確認することができるとともに、従来と同様にリードイネーブル信号を供給すればこのＦＩＦＯメモリ装置からデータを読み出すことができる。すなわち、送信側のシステム，受信側のシステムにとって、ＦＩＦＯメモリ装置とのインタフェースは従来のものと同じで足りる。したがって、従来のＦＩＦＯメモリ装置との置き換えを容易に行うことができる。
【００３３】
なお、このＦＩＦＯメモリ装置において、一例として、送信側のシステムの出力を受信側のシステムの動作クロックに同期させるクロック乗換え手段と、第２の選択手段の選択出力及び計数手段のカウント出力を送信側のシステムの動作クロックに同期させるクロック乗換え手段とをさらに備えることが好適である。
【００３４】
それにより、送信側のシステムの動作クロックと受信側のシステムの動作クロックとが互いに非同期であっても、このＦＩＦＯメモリ装置を介して送信側のシステムから受信側のシステムにデータを転送することができるとともに、送信側のシステムが、登録数を確認したり、登録数を確認したデータのうちの所望の順番のデータを確認することができるようになる。
【００３５】
また、このＦＩＦＯメモリ装置において、一例として、計数手段は、送信側のシステムからライトイネーブル信号が供給されるのと同時に受信側のシステムからリードイネーブル信号が供給された場合には、カウント値を変化させないことが好適である。
【００３６】
それにより、送信側のシステムによるデータの書き込みと受信側のシステムによるデータの読み出しとが同時に行われる場合にも、受信側のシステムがデータの登録状況を正確に確認することができるとともに、送信側のシステムがデータの登録数を正確に確認することができるようになる。
【発明の効果】
【００３７】
本発明に係るＦＩＦＯメモリ装置によれば、データを登録するための本来の記憶装置であるシフトレジスタ以外に専用の記憶装置を設けることなく、データの送信側のシステムが、登録数を確認したデータのうちの所望の順番のデータを確認することができる。これにより、回路規模の増大や処理の複雑化を招くことなく、データの送信側のシステムが、登録数を確認したデータのうちの所望の順番のデータを確認できるという効果が得られる。
【００３８】
また、受信側のシステム，送信側のシステムは、計数手段のカウント出力そのものによってデータの登録状況，データの登録数を確認することができるので、データの登録状況を示す情報やデータの登録数を示す情報を作成するための専用の回路を設ける必要がない。したがって、その点でも回路規模を削減できるという効果が得られる。
【００３９】
また、送信側のシステム，受信側のシステムにとって、ＦＩＦＯメモリ装置とのインタフェースは従来のものと同じで足りるので、従来のＦＩＦＯメモリ装置との置き換えを容易に行えるという効果が得られる。
【００４０】
また、データの送信側のシステムの動作クロックとデータの受信側のシステムの動作クロックとが互いに非同期であっても、データの送信側のシステムが、登録数を確認したり、登録数を確認したデータのうちの所望の順番のデータを確認できるという効果が得られる。
【００４１】
また、データの送信側のシステムによるデータの書き込みとデータの受信側のシステムによるデータの読み出しとが同時に行われる場合にも、データの受信側のシステムがデータの登録状況を正確に確認できるとともに、データの送信側のシステムがデータの登録数を正確に確認できるという効果が得られる。
【発明を実施するための最良の形態】
【００４２】
以下、本発明を図面を用いて具体的に説明する。図１は、本発明に係るＦＩＦＯメモリ装置の構成例を示すブロック図である。なお、ここでも、図５と同じく、データ送信側のシステムを、コマンドを送信する制御装置１００とするとともに、データ受信側のシステムを、そのコマンドを実行する実行装置２００としている。この制御装置１００，実行装置２００の具体例としては、カメラ一体型ＶＴＲやデジタルカメラ内で画像メモリから画像データを読み出させるコマンドを送信するプロセッサ，そのコマンドを実行して画像メモリから画像データを読み出すプロセッサが挙げられる。
【００４３】
このＦＩＦＯメモリ１は、シフトレジスタ２，アップダウンカウンタ３，セレクタ４，セレクタ５及びクロック乗換え回路６〜１０で構成されている。シフトレジスタ２は、ｎ段（ｎは２以上の整数）のシフトレジスタであり、並列データ数ｍ（例えば３２）のＤ型フリップフロップＦＦ０，ＦＦ１，…ＦＦ（ｎ−１）のデータ入力端子Ｄとデータ出力端子Ｑとを直列接続して構成されている。
【００４４】
制御装置１００は、制御装置１００の動作クロックを書込みクロックとして、データ（ここでは３２ビットのパラレル形式のコマンド），ライトイネーブル信号，リードアドレス信号をそれぞれクロック乗換え回路６，７，８に供給する。
【００４５】
クロック乗換え回路６〜８は、制御装置１００の出力を、実行装置２００の動作クロックである読出しクロックに同期させる（乗り換えさせる）ための回路である。
【００４６】
図２は、クロック乗換え回路６〜８の構成例を示すブロック図である。クロック乗換え回路６〜８は、Ｄ型フリップフロップ１１のデータ入力端子ＤとＤ型フリップフロップ１２のデータ出力端子Ｑとを接続したものであり、制御装置１００の出力（クロック乗換え回路６ではデータ、クロック乗換え回路７ではライトイネーブル信号、クロック乗換え回路８ではリードアドレス信号）がフリップフロップ１１のデータ入力端子Ｄに供給されるとともに、フリップフロップ１１のクロック端子ＣＫに書込みクロックが供給される。Ｄフリップフロップ１２のクロック端子ＣＫには読出しクロックが供給される。クロック乗換え回路６については、フリップフロップ１１，１２は、シフトレジスタ２のフリップフロップＦＦ０〜ＦＦ（ｎ−１）と同じ並列データ数になっている。
【００４７】
図３（ａ），（ｂ）は、それぞれクロック乗換え回路６，７について、制御装置１００からのデータ，ライトイネーブル信号を読出しクロックに乗り換えさせる動作例を示すタイミングチャートである。
【００４８】
図１のクロック乗換え回路９，１０も、クロック乗換え回路６〜８と同一の構成である。ただし、クロック乗換え回路９，１０は、クロック乗換え回路６〜８とは逆に、書込みクロックに乗り換えさせるための回路であり、図２のフリップフロップ１１のクロック端子ＣＫのほうに読出しクロックが供給され、Ｄフリップフロップ１２のクロック端子ＣＫのほうに書込みクロックが供給される。
【００４９】
なお、図２に示した構成はあくまで一例であり、これとは異なる構成のクロック乗換え回路（例えば、本出願人が特開平８−２７４５８５公報で開示しているような回路）をクロック乗換え回路６〜１０として用いてもよい。
【００５０】
図１に示すように、クロック乗換え回路６で読出しクロックに乗り換えたデータは、シフトレジスタ２の１段目のフリップフロップＦＦ０のデータ入力端子Ｄに供給される。クロック乗換え回路７で読出しクロックに乗り換えたライトイネーブル信号は、シフトレジスタ２の各段のフリップフロップＦＦ０〜ＦＦｎのクロック端子ＣＫに供給されるとともに、アップダウンカウンタ３に供給される。シフトレジスタ２の各段のフリップフロップＦＦ０〜ＦＦｎの出力は、セレクタ４，セレクタ５のｎ個の選択入力端子にそれぞれ供給される。
【００５１】
実行装置２００は、実行装置２００の動作クロックを読出しクロックとして、リードイネーブル信号をアップダウンカウンタ３に供給する。アップダウンカウンタ３は、初期値を０として、ライトイネーブル信号が供給される毎にカウントアップを行い、リードイネーブル信号が供給される毎にカウントダウンを行う。また、アップダウンカウンタ３は、ライトイネーブル信号とリードイネーブル信号とが同時に供給された場合には、カウントアップもカウントダウンも行わず、したがってカウント値を変化させない。
【００５２】
アップダウンカウンタ３のカウント出力は、セレクタ４に、シフトレジスタ２の対応する段の出力を選択させる（例えばカウント出力が３であればシフトレジスタ２の３段目のフリップフロップＦＦ２の出力を選択させる）制御信号として供給される。セレクタ４の選択出力は、実行装置２００に送られる。実行装置２００は、リードイネーブル信号を供給したタイミングで、このセレクタ４の選択出力を内部に取り込む。
【００５３】
また、アップダウンカウンタ３のカウント出力は、データの登録状況（シフトレジスタ２に書き込まれたデータのうちまだ実行装置２００が読み出していないデータがあるか否か）を示す情報として、実行装置２００に送られる。実行装置２００は、このカウント出力が０である場合には、リードイネーブル信号の供給を行わない。
【００５４】
また、また、アップダウンカウンタ３のカウント出力は、データの登録数（シフトレジスタ２に書き込んだデータのうちまだ実行装置２００によって読み出されていないデータの数、すなわち実行待ちのキューのデータ数）を示す情報として、クロック乗換え回路９で書込みクロックに乗り換えた後、制御装置１００に送られる。制御装置１００は、このカウント出力がｎ（シフトレジスタ２の段数と同じ数）である場合には、新たなデータやライトイネーブル信号の供給を行わない。
【００５５】
クロック乗換え回路８で読出しクロックに乗り換えたリードアドレス信号は、セレクタ５に選択制御信号として供給される。セレクタ５の選択出力は、クロック乗換え回路１０で書込みクロックに乗り換えた後、制御装置１００に送られる。
【００５６】
図４は、このＦＩＦＯメモリ１の動作例を示すタイミングチャートである。制御装置１００から１つ目のデータ「Ａ」がライトイネーブル信号とともに供給されると、このデータ「Ａ」，ライトイネーブル信号がそれぞれクロック乗換え回路６，７で読出しクロック（図４（ａ））に乗り換えられて（図４（ｂ），（ｃ））、シフトレジスタ２の１段目のフリップフロップＦＦ０のデータ入力端子Ｄ，シフトレジスタ２の各段のフリップフロップＦＦ０〜ＦＦｎのクロック端子ＣＫに供給される。
【００５７】
これにより、データ「Ａ」がシフトレジスタ２の１段目のフリップフロップＦＦ０に取り込まれる。したがって、フリップフロップＦＦ０からはデータ「Ａ」がセレクタ４，５の選択入力端子に供給される。
【００５８】
また、このライトイネーブル信号がアップダウンカウンタ３に供給されて、アップダウンカウンタ３が１にカウントアップされる（図４（ｄ））。これにより、シフトレジスタ２の１段目のフリップフロップＦＦ０の出力を選択させる制御信号がセレクタ４に供給されるので、セレクタ４でデータ「Ａ」が選択される（図４（ｈ））。
【００５９】
続いて、制御装置１００から２つ目の「Ｂ」がライトイネーブル信号とともに供給されると（図４（ｂ）〜（ｃ））、データ「Ｂ」がシフトレジスタ２の１段目のフリップフロップＦＦ０に取り込まれ、データ「Ａ」がシフトレジスタ２の２段目のフリップフロップＦＦ１にシフトされる。したがって、フリップフロップＦＦ０，ＦＦ１からそれぞれデータ「Ｂ」，「Ａ」がセレクタ４，５の選択入力端子に供給される。
【００６０】
また、アップダウンカウンタ３が２にカウントアップされる（図４（ｄ））。これにより、シフトレジスタ２の２段目のフリップフロップＦＦ１の出力を選択させる制御信号がセレクタ４に供給されるので、セレクタ４でデータ「Ａ」が選択される（図４（ｉ））。
【００６１】
続いて、制御装置１００から３つ目の「Ｃ」がライトイネーブル信号とともに供給されると（図４（ｂ）〜（ｃ））、データ「Ｃ」がシフトレジスタ２の１段目のフリップフロップＦＦ０に取り込まれ、データ「Ｂ」がシフトレジスタ２の２段目のフリップフロップＦＦ１にシフトされ、データ「Ａ」がシフトレジスタ２の３段目のフリップフロップＦＦ２にシフトされる。したがって、フリップフロップＦＦ０，ＦＦ１，ＦＦ２からそれぞれデータ「Ｃ」，「Ｂ」，「Ａ」がセレクタ４，５の選択入力端子に供給される。
【００６２】
また、アップダウンカウンタ３が３にカウントアップされる（図４（ｄ））。これにより、シフトレジスタ２の３段目のフリップフロップＦＦ２の出力を選択させる制御信号がセレクタ４に供給されるので、セレクタ４でデータ「Ａ」が選択される（図４（ｊ））。
【００６３】
その後、実行装置２００からリードイネーブル信号が供給される（図４（ｅ））と、セレクタ４の選択出力であるデータ「Ａ」が実行装置２００に取り込まれる（図４（ｆ））。そして、アップダウンカウンタ３が２にカウントダウンされる（図４（ｄ））。これにより、シフトレジスタ２の２段目のフリップフロップＦＦ１の出力を選択させる制御信号がセレクタ４に供給されるので、セレクタ４でデータ「Ｂ」が選択される（図４（ｉ））。
【００６４】
続いて、制御装置１００から４つ目の「Ｄ」がライトイネーブル信号とともに供給され（図４（ｂ）〜（ｃ））、同時に、実行装置２００からリードイネーブル信号が供給された（図４（ｅ））とする。
【００６５】
このとき、アップダウンカウンタ３はカウント値を変化させないので、アップダウンカウンタ３のカウント値は２のままである（図４（ｄ））。これにより、セレクタ４の選択出力であるデータ「Ｂ」が実行装置２００に取り込まれる（図４（ｆ））。
【００６６】
そして、データ「Ｄ」がシフトレジスタ２の１段目のフリップフロップＦＦ０に取り込まれ、データ「Ｃ」がシフトレジスタ２の２段目のフリップフロップＦＦ１にシフトされ、データ「Ｂ」がシフトレジスタ２の３段目のフリップフロップＦＦ２にシフトされ、データ「Ａ」がシフトレジスタ２の４段目のフリップフロップＦＦ３にシフトされる。したがって、フリップフロップＦＦ０，ＦＦ１，ＦＦ２，ＦＦ３からそれぞれデータ「Ｄ」，「Ｃ」，「Ｂ」，「Ａ」がセレクタ４，５の選択入力端子に供給される。セレクタ４にはシフトレジスタ２の２段目のフリップフロップＦＦ１の出力を選択させる制御信号が供給されたままなので、これによってセレクタ４でデータ「Ｃ」が選択される（図４（ｉ））。
【００６７】
続いて、実行装置２００からリードイネーブル信号が供給される（図４（ｅ））と、セレクタ４の選択出力であるデータ「Ｃ」が実行装置２００に取り込まれる（図４（ｆ））。そして、アップダウンカウンタ３が１にカウントダウンされる（図４（ｄ））。これにより、シフトレジスタ２の１段目のフリップフロップＦＦ０の出力を選択させる制御信号がセレクタ４に供給されるので、セレクタ４でデータ「Ｄ」が選択される（図４（ｈ））。
【００６８】
このように、このＦＩＦＯメモリ１では、制御装置１００から供給されるデータが、ｎ段のシフトレジスタ２に順次シフトされることによって書き込まれる。そして、このシフトレジスタ２の１段からｎ段までの出力が、セレクタ４及び５に入力される。
【００６９】
また、制御装置１００からライトイネーブル信号が供給される毎にアップダウンカウンタ３でカウントアップが行われ、実行装置２００からリードイネーブル信号が供給される毎にアップダウンカウンタ３でカウントダウンが行われる。そして、このアップダウンカウンタ３のカウント出力が、シフトレジスタ２の対応する段の出力を選択させる制御信号としてセレクタ４に供給されることにより、先に書き込まれたデータの順にセレクタ４で選択される。
【００７０】
したがって、実行装置２００は、セレクタ４の選択出力を入力することによってデータを読み出すことができる。また、実行装置２００は、アップダウンカウンタ３のカウント出力そのものによってデータの登録状況を確認することができる。
【００７１】
また、制御装置１００も、アップダウンカウンタ３のカウント出力そのものによってデータの登録数を確認することができる。
【００７２】
そして、制御装置１００は、このアップダウンカウンタ３のカウント出力によってデータの登録数を確認した後、それらのデータのうちの何番目のデータがどんなデータであるか（実行待ちのキューのうちの何番目のデータがどんなデータであるか）を確認したい場合には、その順番に対応するシフトレジスタ２の段の出力を選択させるリードアドレス信号をクロック乗換え回路８を介してセレクタ５に供給すれば、その順番のデータがセレクタ５で選択されてクロック乗換え回路１０を介して制御装置１００に入力されるので、そのデータを確認することができる。図４（ｇ）には、シフトレジスタ２の１段目の出力を選択させる（実行待ちのキューのうちの１番目のデータを確認するための）リードアドレス信号が制御装置１００から供給された例を示している。
【００７３】
このように、このＦＩＦＯメモリ装置１によれば、制御装置１００は、データを登録するための本来の記憶装置であるシフトレジスタ２そのものから、登録数を確認したデータのうちの所望の順番のデータを確認することができる。すなわち、データを登録するための本来の記憶装置以外に、登録数を確認したデータのうちの所望の順番のデータを確認する専用の記憶装置（例えば図８のＲＡＭ１０１や図９のレジスタ６０）を設ける必要がない。これにより、回路規模の増大や処理の複雑化を招くことなく、制御装置１００が、登録数を確認したデータのうちの所望の順番のデータを確認することができる。
【００７４】
また、実行装置２００，制御装置１００は、アップダウンカウンタ３のカウント出力そのものによってデータの登録状況，データの登録数を確認することができるので、データの登録状況を示す情報やデータの登録数を示す情報を作成するための専用の回路（例えば図５では比較器５７や減算器５９）を設ける必要がない。したがって、その点でも回路規模を削減することができる。
【００７５】
そして、制御装置１００は、従来と同様にデータ及びライトイネーブル信号を供給すればこのＦＩＦＯメモリ装置１にデータを書き込むことができるとともに、アップダウンカウンタ３のカウント出力から従来と同様にしてデータの登録数を確認することができる。また、実行装置２００も、アップダウンカウンタ３のカウント出力から従来と同様にしてデータの登録状況を確認することができるとともに、従来と同様にリードイネーブル信号を供給すればこのＦＩＦＯメモリ装置１からデータを読み出すことができる。すなわち、制御装置１００，実行装置２００にとって、ＦＩＦＯメモリ装置１とのインタフェースは従来のものと同じで足りる。したがって、従来のＦＩＦＯメモリ装置を容易にこのＦＩＦＯメモリ装置１に置き換えることができる。
【００７６】
また、制御装置１００の動作クロックと実行装置２００の動作クロックとが互いに非同期であっても、このＦＩＦＯメモリ装置１を介して制御装置１００から実行装置２００にデータを転送することができるとともに、制御装置１００が、登録数を確認したり、登録数を確認したデータのうちの所望の順番のデータを確認することができる。
【００７７】
また、アップダウンカウンタ３はライトイネーブル信号が供給されるのと同時にリードイネーブル信号が供給された場合にはカウント値を変化させないので、制御装置１００によるデータの書き込みと実行装置２００によるデータの読み出しとが同時に行われる場合にも、実行装置２００がデータの登録状況を正確に確認することができるとともに、制御装置１００がデータの登録数を正確に確認することができる。
【００７８】
なお、以上の例では、Ｄ型フリップフロップで構成したシフトレジスタ２を設けているが、それ以外の適宜の構成のｎ段のシフトレジスタを設けるようにしてもよい。
【００７９】
また、以上の例では、ＦＩＦＯメモリ装置１でコマンドを転送しているが、本発明に係るＦＩＦＯメモリ装置は、コマンドに限らずあらゆるデータを転送するために用いることができる。
【図面の簡単な説明】
【００８０】
【図１】本発明に係るＦＩＦＯメモリ装置の構成例を示すブロック図である。
【図２】図１のクロック乗換え回路の構成例を示すブロック図である。
【図３】図２のクロック乗換え回路の動作例を示すタイミングチャートである。
【図４】図１のＦＩＦＯメモリの動作例を示すタイミングチャートである。
【図５】従来のＦＩＦＯメモリの構成例を示すブロック図である。
【図６】図５のＦＩＦＯメモリの動作例を示すタイミングチャートである。
【図７】図５のＦＩＦＯメモリで、登録数を確認した後、リードカウンタ５４のカウント出力が変化する様子を例示する図である。
【図８】図５のＦＩＦＯメモリで、登録数を確認したデータのうちの所望の順番のデータを確認するための方法を示す図である。
【図９】図５のＦＩＦＯメモリで、登録数を確認したデータのうちの所望の順番のデータを確認するための方法を示す図である。
【符号の説明】
【００８１】
１  ＦＩＦＯメモリ、  ２  シフトレジスタ、  ３  アップダウンカウンタ、  ４，５  セレクタ、  ６〜１０  クロック乗換え回路、  １００  制御装置、  ２００  実行装置
【図１】
2006012246.tif 000003
【図２】
2006012246.tif 000004
【図３】
2006012246.tif 000005
【図４】
2006012246.tif 000006
【図５】
2006012246.tif 000007
【図６】
2006012246.tif 000008
【図７】
2006012246.tif 000009
【図８】
2006012246.tif 000010
【図９】
2006012246.tif 000011