(57)【要約】【課題】  回路規模が小さく、かつ安価な先入れ先出し（ＦＩＦＯ）メモリを提供する。【解決手段】  本発明の先入れ先出しメモリは、データの書き込みと読み出しが行われるシングルポートメモリ（１４）と、外部から入力される少なくとも１つの制御信号に応じて、シングルポートメモリ（１４）へのデータの書き込み、又はシングルポートメモリ（１４）からのデータの読み出しを制御する入出力制御部（１２）とを備える。入出力制御部（１２）は、制御信号によって、シングルポートメモリ（１４）に対するデータの書き込みと読み出しが同時に要求された場合に、シングルポートメモリ（１４）へのデータの書き込みとシングルポートメモリ（１４）からのデータの読み出しのいずれか一方を行う。【選択図】図１
2005346637.tif 000002
【特許請求の範囲】
【請求項１】
データの書き込みと読み出しが行われるシングルポートメモリと、
外部から入力される少なくとも１つの制御信号に応じて、前記シングルポートメモリへのデータの書き込み、又は前記シングルポートメモリからのデータの読み出しを制御する入出力制御部と
を備え、
前記入出力制御部は、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求された場合に、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのいずれか一方を行うことを特徴とする先入れ先出しメモリ。
【請求項２】
前記入出力制御部は、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しに対する優先度が指示された場合に、前記優先度に従って、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのいずれか一方を行うことを特徴とする請求項１に記載の先入れ先出しメモリ。
【請求項３】
前記入出力制御部は、外部から入力された単一のクロック信号に同期して動作し、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記クロック信号に応じて交互に行うことを特徴とする請求項２に記載の先入れ先出しメモリ。
【請求項４】
前記入出力制御部は、前記クロック信号によって複数の連続したクロックパルスが入力される間に、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記各クロックパルスが入力される毎に交互に行うことを特徴とする請求項３に記載の先入れ先出しメモリ。
【請求項５】
前記入出力制御部は、前記シングルポートメモリへのデータの書き込みを行うとき、前記シングルポートメモリからのデータの読み出しを待つように指示する第１のウェイト信号を外部に出力し、前記シングルポートメモリからのデータの読み出しを行うとき、前記シングルポートメモリへのデータの書き込みを待つように指示する第２のウェイト信号を外部に出力することを特徴とする請求項１から４のいずれかに記載の先入れ先出しメモリ。
【請求項６】
前記入出力制御部は、
前記クロック信号に基づいて所定のカウント動作を行い、そのカウント値を示す信号を生成して出力する入力用カウンタと、
前記クロック信号に基づいて所定のカウント動作を行い、そのカウント値を示す信号を生成して出力する出力用カウンタと、
前記入力用カウンタと前記出力用カウンタのいずれか一方の出力信号を排他的に選択して出力する選択回路部と、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度が指示された場合に、その優先度に応じて、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのどちらを優先するかを指示する優先信号を生成して出力する優先回路部と、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求された場合に、前記優先信号に応じて、前記入力用カウンタ、前記出力用カウンタ、及び前記選択回路部を制御する制御回路部と
を備え、
前記制御回路部は、
前記優先信号が、前記シングルポートメモリへのデータの書き込みを優先することを示している場合、前記入力用カウンタにカウント動作を行わせると共に、前記選択回路部に前記入力用カウンタの出力信号を排他的に選択して出力させ、
前記優先信号が、前記シングルポートメモリへのデータの読み出しを優先することを示している場合、前記出力用カウンタにカウント動作を行わせると共に、前記選択回路部に前記出力用カウンタの出力信号を排他的に選択して出力させることを特徴とする請求項２から５のいずれかに記載の先入れ先出しメモリ。
【請求項７】
前記優先回路部は、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みをデータの読み出しよりも優先するように指示された場合に、前記シングルポートメモリへのデータの書き込みを優先するように指示する優先信号を出力し、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの読み出しをデータの書き込みよりも優先するように指示された場合に、前記シングルポートメモリからのデータの読み出しを優先するように指示する優先信号を出力し、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合に、前記シングルポートメモリへのデータの書き込みを優先するように指示する優先信号と、前記シングルポートメモリからのデータの読み出しを優先するように指示する優先信号とを、前記クロック信号に応じて交互に出力することを特徴とする請求項６に記載の先入れ先出しメモリ。
【請求項８】
前記入出力制御部は、前記入力用カウンタの出力信号、及び前記出力用カウンタの出力信号を用いて、前記シングルポートメモリ内のデータ量を検知し、前記シングルポートメモリにデータを記憶するための空き容量がない場合に書き込み禁止信号を出力し、前記シングルポートメモリにデータが存在しない場合に読み出し禁止信号を出力する状態判断回路部を備え、
前記制御回路部は、前記書き込み禁止信号と前記読み出し禁止信号に応じて、前記入力用カウンタ及び前記出力用カウンタをそれぞれ制御することを特徴とする請求項７に記載の先入れ先出しメモリ。
【請求項９】
システム装置から入力される少なくとも１つの制御信号に従って複数の記憶媒体を制御する記憶媒体制御装置であって、
単一の先入れ先出しメモリと、
前記制御信号に応じて、対応する前記記憶媒体をそれぞれ制御する各制御部と、
前記制御信号に応じて、前記各制御部のうち１つを選択し、その選択された制御部を前記先入れ先出しメモリに接続する選択回路部と
を備え、
前記先入れ先出しメモリは、
データの書き込みと読み出しが行われるシングルポートメモリと、
前記制御信号に応じて、前記シングルポートメモリへのデータの書き込み、又は前記シングルポートメモリからのデータの読み出しを制御する入出力制御部と
を備え、
前記入出力制御部は、前記制御信号によって、データの書き込みと読み出しを同時に要求された場合に、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのいずれか一方を行うことを特徴とする記憶媒体制御装置。
【請求項１０】
前記入出力制御部は、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しに対する優先度が指示された場合に、前記優先度に従って、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのいずれか一方を行うことを特徴とする請求項９に記載の記憶媒体制御装置。
【請求項１１】
前記入出力制御部は、外部から入力された単一のクロック信号に同期して動作し、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記クロック信号に応じて交互に行うことを特徴とする請求項１０に記載の記憶媒体制御装置。
【請求項１２】
前記入出力制御部は、前記シングルポートメモリへのデータの書き込みを行うとき、前記シングルポートメモリからのデータの読み出しを待つように指示する第１のウェイト信号を外部に出力し、前記シングルポートメモリからのデータの読み出しを行うとき、前記シングルポートメモリへのデータの書き込みを待つように指示する第２のウェイト信号を外部に出力することを特徴とする請求項９から１１のいずれかに記載の記憶媒体制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、先入れ先出し（ＦＩＦＯ）メモリ、及び先入れ先出しメモリを用いたＳＤメモリカード等の記憶媒体を制御する記憶媒体制御装置に関する。
【背景技術】
【０００２】
入力したデータを入力した順に読み出す先入れ先出し（以下、「ＦＩＦＯ（Ｆｉｒｓｔ Ｉｎ Ｆｉｒｓｔ Ｏｕｔ）」という。）メモリは、種々の電子回路で用いられている。ＦＩＦＯメモリは、通常、非同期２ポート（デュアルポート）メモリを備え、データの書き込み及び読み出しを同時に行うことができる。図８は、従来のＦＩＦＯメモリの構成を示すブロック図である。図８に示されるように、ＦＩＦＯメモリ１００は、非同期２ポートメモリ１０２、入力制御部１０４、及び出力制御部１０６を備える。ＦＩＦＯメモリ１００に外部から書き込み要求信号が入力されると、入力制御部１０４は、その書き込み要求信号を受け取り、非同期２ポートメモリ１０２に、書き込みを要求するＷＲ信号と、データを書き込む非同期２ポートメモリ１０２のアドレスを示すアドレスデータを出力する。そして、このアドレスデータが示す非同期２ポートメモリ１０２のアドレスに、入力データが書き込まれる。一方、ＦＩＦＯメモリ１００に外部から読み出し要求信号が入力されると、出力制御部１０６は、その読み出し要求信号を受け取り、非同期２ポートメモリ１０２に、データを読み出す非同期２ポートメモリ１０２のアドレスを示すアドレスデータを出力する。そして、このアドレスデータが示す非同期２ポートメモリ１０２のアドレスから、データが読み出される。
【０００３】
従来のＦＩＦＯメモリ１００は、書き込み動作及び読み出し動作の動作周波数が異なり、非同期にアクセスできるという特徴がある。よって、従来のＦＩＦＯメモリは、入出力インタフェースにおいて、データの処理速度が異なる２つの処理装置間の緩衝手段として動作する。例えば、メモリカード等の記憶媒体とシステム装置との間に接続されて、システム装置から入力される制御信号に従って、メモリカードへのデータの書き込み及びメモリカードからのデータの読み出しを制御する記憶媒体制御装置は、緩衝手段としてＦＩＦＯメモリを備える。図９は、従来のＦＩＦＯメモリ１００を用いた記憶媒体制御装置のブロック図である。図９に示されるように、記憶媒体制御装置２００は、カード側制御部２０２と、システム装置側制御部２０４と、２つのＦＩＦＯメモリ１００とを備える。２つのＦＩＦＯメモリ１００は、カード側制御部２０２とシステム装置側制御部２０４との間のデータの送信用及び受信用にそれぞれ用いられる。ここで、制御される記憶媒体を、例えば、ＳＤメモリカードとすると、各々のＦＩＦＯメモリ１００は、動作周波数が２５ＭＨｚであるＳＤメモリカードと、動作周波数が３０ＭＨｚであるシステム装置との間のデータの処理速度の差を補償する。システム装置は、中央演算処理装置（以下、「ＣＰＵ」という。）、及びランダムアクセスメモリ（以下、「ＲＡＭ」という。）等を含む。記憶媒体制御装置２００は、ＣＰＵを介して、又はダイレクトメモリアクセス（ＤＭＡ）の転送方式により直接、ＲＡＭとデータのやりとりを行う。
【０００４】
例えば、従来のＦＩＦＯメモリには、シングルポートメモリを用いるものがある（例えば、特許文献１及び特許文献２）。
【特許文献１】特開平０８−１３７７４１号公報
【特許文献２】特開平１０−１７３７２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、従来のＦＩＦＯメモリは、一般に、非同期２ポートメモリを備える。しかし、２ポートメモリは、同じ容量のシングルポートメモリに比べて、メモリのサイズが大きく、かつ高価である。よって、従来のＦＩＦＯメモリは、回路規模が大きく、高価になるという問題があった。また、従来のＦＩＦＯメモリを用いた記憶媒体制御装置は、その大規模集積回路（以下、「ＬＳＩ」という。）のチップ面積が非常に大きく、チップサイズが大きいという問題があった。
【０００６】
さらに、現在の記憶媒体制御装置は、複数の記憶媒体、例えば、フラッシュメモリを用いた記憶媒体（以下、「フラッシュメディア」という。）を制御することが要求されるため、多数のＦＩＦＯメモリを含まなければならない。図９に示されるような記憶媒体制御装置の構成に従うと、例えば、４種類のフラッシュメディアを制御する記憶媒体制御装置は、８個のＦＩＦＯメモリを含まなければならない。この場合、記憶媒体制御装置のＬＳＩのチップ面積におけるＦＩＦＯメモリの占める割合が増大し、ＬＳＩのチップサイズが大きくなってしまうという問題があった。
【０００７】
一方、非同期ＦＩＦＯメモリには、シングルポートメモリを用いる場合があるが、シングルポートメモリの動作周波数がＦＩＦＯメモリのリード／ライトアクセスより２倍以上高速でなければいけないという欠点があり、そのために高価な高速メモリが必要になるという問題があった。
【０００８】
本発明は、上記のような問題を解決するためになされるものであり、回路規模が小さく、かつ安価なＦＩＦＯメモリ、及びそのＦＩＦＯメモリを用いた記憶媒体制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る先入れ先出しメモリは、データの書き込みと読み出しが行われるシングルポートメモリと、外部から入力される少なくとも１つの制御信号に応じて、前記のシングルポートメモリへのデータの書き込み、又は前記のシングルポートメモリからのデータの読み出しを制御する入出力制御部とを備える。前記の入出力制御部は、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求された場合に、前記のシングルポートメモリへのデータの書き込みと前記のシングルポートメモリからのデータの読み出しのいずれか一方を行う。
【００１０】
好ましくは、前記の先入れ先出しメモリにおいて、前記の入出力制御部は、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しに対する優先度が指示された場合に、前記の優先度に従って、前記のシングルポートメモリへのデータの書き込みと前記のシングルポートメモリからのデータの読み出しのいずれか一方を行う。
【００１１】
好ましくは、前記の入出力制御部は、外部から入力された単一のクロック信号に同期して動作し、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記のシングルポートメモリへのデータの書き込みと前記のシングルポートメモリからのデータの読み出しを、前記のクロック信号に応じて交互に行う。
【００１２】
好ましくは、前記の入出力制御部は、前記のクロック信号によって複数の連続したクロックパルスが入力される間に、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記のシングルポートメモリへのデータの書き込みと前記のシングルポートメモリからのデータの読み出しを、前記の各クロックパルスが入力される毎に交互に行う。
【００１３】
好ましくは、前記の入出力制御部は、前記のシングルポートメモリへのデータの書き込みを行うとき、前記のシングルポートメモリからのデータの読み出しを待つように指示する第１のウェイト信号を外部に出力し、前記のシングルポートメモリからのデータの読み出しを行うとき、前記のシングルポートメモリへのデータの書き込みを待つように指示する第２のウェイト信号を外部に出力する。
【００１４】
好ましくは、前記の入出力制御部は、前記のクロック信号に基づいて所定のカウント動作を行い、そのカウント値を示す信号を生成して出力する入力用カウンタと、前記のクロック信号に基づいて所定のカウント動作を行い、そのカウント値を示す信号を生成して出力する出力用カウンタと、前記の入力用カウンタと前記の出力用カウンタのいずれか一方の出力信号を排他的に選択して出力する選択回路部と、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度が指示された場合に、その優先度に応じて、前記のシングルポートメモリへのデータの書き込みと前記のシングルポートメモリからのデータの読み出しのどちらを優先するかを指示する優先信号を生成して出力する優先回路部と、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求された場合に、前記の優先信号に応じて、前記の入力用カウンタ、前記の出力用カウンタ、及び前記の選択回路部を制御する制御回路部とを備える。前記の制御回路部は、前記の優先信号が、前記のシングルポートメモリへのデータの書き込みを優先することを示している場合、前記の入力用カウンタにカウント動作を行わせると共に、前記の選択回路部に前記の入力用カウンタの出力信号を排他的に選択して出力させ、前記の優先信号が、前記のシングルポートメモリへのデータの読み出しを優先することを示している場合、前記の出力用カウンタにカウント動作を行わせると共に、前記の選択回路部に前記の出力用カウンタの出力信号を排他的に選択して出力させる。
【００１５】
好ましくは、前記の優先回路部は、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みをデータの読み出しよりも優先するように指示された場合に、前記のシングルポートメモリへのデータの書き込みを優先するように指示する優先信号を出力し、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの読み出しをデータの書き込みよりも優先するように指示された場合に、前記のシングルポートメモリからのデータの読み出しを優先するように指示する優先信号を出力し、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合に、前記のシングルポートメモリへのデータの書き込みを優先するように指示する優先信号と、前記のシングルポートメモリからのデータの読み出しを優先するように指示する優先信号とを、前記のクロック信号に応じて交互に出力する。
【００１６】
好ましくは、前記の入出力制御部は、前記の入力用カウンタの出力信号、及び前記の出力用カウンタの出力信号を用いて、前記のシングルポートメモリ内のデータ量を検知し、前記のシングルポートメモリにデータを記憶するための空き容量がない場合に書き込み禁止信号を出力し、前記のシングルポートメモリにデータが存在しない場合に読み出し禁止信号を出力する状態判断回路部を備える。前記の制御回路部は、前記の書き込み禁止信号と前記の読み出し禁止信号に応じて、前記の入力用カウンタ及び前記の出力用カウンタをそれぞれ制御する。
【００１７】
本発明に係る記憶媒体制御装置は、システム装置から入力される少なくとも１つの制御信号に従って複数の記憶媒体を制御する。この記憶媒体制御装置は、単一の先入れ先出しメモリと、前記の制御信号に応じて、対応する前記の記憶媒体をそれぞれ制御する各制御部と、前記の制御信号に応じて、前記の各制御部のうち１つを選択し、その選択された制御部を前記の先入れ先出しメモリに接続する選択回路部と
を備える。前記の先入れ先出しメモリは、データの書き込みと読み出しが行われるシングルポートメモリと、前記の制御信号に応じて、前記のシングルポートメモリへのデータの書き込み、又は前記のシングルポートメモリからのデータの読み出しを制御する入出力制御部とを備える。前記の入出力制御部は、前記の制御信号によって、データの書き込みと読み出しを同時に要求された場合に、前記のシングルポートメモリへのデータの書き込みと前記のシングルポートメモリからのデータの読み出しのいずれか一方を行う。
【００１８】
好ましくは、前記の記憶媒体制御装置の先入れ先出しメモリにおいて、前記の入出力制御部は、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しに対する優先度が指示された場合に、前記の優先度に従って、前記のシングルポートメモリへのデータの書き込みと前記のシングルポートメモリからのデータの読み出しのいずれか一方を行う。
【００１９】
好ましくは、前記の記憶媒体制御装置の先入れ先出しメモリにおいて、前記の入出力制御部は、外部から入力された単一のクロック信号に同期して動作し、前記の制御信号によって、前記のシングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記のシングルポートメモリへのデータの書き込みと前記のシングルポートメモリからのデータの読み出しを、前記のクロック信号に応じて交互に行う。
【００２０】
好ましくは、前記の記憶媒体制御装置の先入れ先出しメモリにおいて、前記の入出力制御部は、前記のシングルポートメモリへのデータの書き込みを行うとき、前記のシングルポートメモリからのデータの読み出しを待つように指示する第１のウェイト信号を外部に出力し、前記のシングルポートメモリからのデータの読み出しを行うとき、前記のシングルポートメモリへのデータの書き込みを待つように指示する第２のウェイト信号を外部に出力する。
【発明の効果】
【００２１】
本発明によるＦＩＦＯメモリによれば、回路規模が小さく、かつ安価なＦＩＦＯメモリを実現することができる。また、本発明による記憶媒体制御装置によれば、ＦＩＦＯメモリを１つだけ使用する回路規模の小さい記憶媒体制御装置を実現することができる。
【発明を実施するための最良の形態】
【００２２】
図１は、本発明によるＦＩＦＯメモリの構成を示すブロック図である。図１に示されるように、ＦＩＦＯメモリ１０は、入出力制御部１２と、シングルポートメモリ１４とを備える。入出力制御部１２には、ＦＩＦＯメモリ１０の外部から、ＦＩＦＯメモリ１０への書き込み（ライト）を要求するＷＲ＃信号、ＦＩＦＯメモリ１０からの読み出し（リード）を要求するＲＤ＃信号、ライト要求の優先を指示するＰＲＩＷＲ信号、及びリード要求の優先を指示するＰＲＩＲＤ信号がそれぞれ入力される。一方、入出力制御部１２からは、ライト要求に対して書き込みを待つように指示するウェイト信号（ＷＡＩＴＷＲ信号）、及びリード要求に対して読み出しを待つように指示するウェイト要求を示すウェイト信号（ＷＡＩＴＲＤ信号）が、ＦＩＦＯメモリ１０の外部に、それぞれ出力される。入出力制御部１２からシングルポートメモリ１４に対しては、シングルポートメモリ１４へのデータライト要求信号であるＷＥ＃信号が出力される。ＷＥ＃信号は、ＷＲ＃信号がＬ（Ｌｏｗ）レベル（アクティブ）であり、かつＷＡＩＲＷＲがＬレベル（非アクティブ）である場合にのみ、Ｌレベル（アクティブ）となる。さらに、入出力制御部１２、及びシングルポートメモリには、クロック信号として、ＣＬＫ信号が入力される。ＦＩＦＯメモリ１０では、書き込み動作と読み出し動作の動作周波数は同じである。
【００２３】
シングルポートメモリ１４には、ライト用のデータバスであるライトデータバスＤＡＴＡＩＮ、及びリード用のデータバスであるリードデータバスＤＡＴＡＯＵＴが接続される。ＦＩＦＯメモリ１０に書き込まれるデータは、ライトデータバスＤＡＴＡＩＮを介して、シングルポートメモリ１４に送られる。一方、ＦＩＦＯメモリ１０から読み出されるデータは、リードデータバスＤＡＴＡＯＵＴを介して、シングルポートメモリ１４から出力される。また、入出力制御部１２とシングルポートメモリ１４の間には、アドレスバスＡＤＤが存在する。このアドレスバスＡＤＤを介して、入出力制御部１２からシングルポートメモリ１４へアドレスデータが送られる。このアドレスデータは、データを書き込むシングルポートメモリ１４のアドレス、及びデータを読み出すシングルポートメモリ１４のアドレスを示す。
【００２４】
図２は、入出力制御部１２の構成を示す回路図である。図２に示されるように、入出力制御部１２は、入力用カウンタ２２、出力用カウンタ２４、マルチプレクサ（ＭＵＸ）２６、優先回路２８、状態判断回路３０、ＯＲゲート３２，３４，３６、ＮＯＲゲート３８，４０，４２、及びＡＮＤゲート４４，４６，４８，５０を備える。入力用カウンタ２２、出力用カウンタ２４、及び優先回路２８には、クロック信号として、ＣＬＫ信号が入力される。入力用カウンタ２２、及び出力用カウンタ２４は、共に、イネーブル信号入力端（ＥＮ）を有し、そのイネーブル信号入力端にアクティブなイネーブル信号が入力される毎に、１ずつカウントアップされる。入力用カウンタ２２は、ＷＲ＃信号及びＷＡＩＴＷＲ信号が共にＬレベルにあるとき、イネーブルされてカウントアップされ、出力用カウンタ２４は、ＲＤ＃信号及びＷＡＩＴＲＤ信号が共にＬレベルであるとき、イネーブルされてカウントアップされる。入力用カウンタ２２及び出力用カウンタ２４は、対応するアドレスバスＩＡＤＤ及びアドレスバスＯＡＤＤを介して、ＭＵＸ２６にそれぞれ接続される。入力用カウンタ２２及び出力用カウンタ２４は、カウント値を示すデータを、対応するアドレスバスＩＡＤＤ及びアドレスバスＯＡＤＤにそれぞれ出力する。ＭＵＸ２６は、入力用カウンタ２２及び出力用カウンタ２４から出力されたデータを、対応するアドレスバスＩＡＤＤ及びアドレスバスＯＡＤＤを介して、それぞれ受け取る。ＭＵＸ２６は、ＷＲ＃信号及びＷＡＩＴＷＲ信号が共にＬレベルであるとき、すなわち、ＷＥ＃信号がＬレベルであるとき、アドレスバスＩＡＤＤにおけるデータを選択して、それをアドレスバスＡＤＤに出力する。また、ＭＵＸ２６は、ＷＥ＃信号がＨ（Ｈｉｇｈ）レベルであるとき、アドレスバスＯＡＤＤにおけるデータを選択して、それをアドレスバスＡＤＤに出力する。
【００２５】
以下に、図２に示された入出力制御部１２について詳細に説明する。ＮＯＲゲート３８には、ＷＲ＃信号及びＲＤ＃信号が入力される。ＮＯＲゲート３８の出力信号は、ＡＮＤゲート４４の非反転入力端、ＡＮＤゲート４６の一方の入力端、及び優先回路２８に入力される。ＡＮＤゲート４４の反転入力端には、優先回路２８の出力信号ＲＤＷＴが入力され、ＡＮＤゲート４６の他方の入力端には、優先回路２８の出力信号ＲＤＷＴが入力される。ＡＮＤゲート４４の出力信号は、ＯＲゲート３４の一方の入力端に入力される。一方、ＡＮＤゲート４６の出力信号は、ＯＲゲート３６の一方の入力端に入力される。ＯＲゲート３４の他方の入力端、及びＯＲゲート３６の他方の入力端には、状態判断回路３０の各出力信号が対応して入力される。具体的には、ＯＲゲート３４の入力端には、シングルポートメモリ１４がこれ以上データを記憶するための空き領域がないフル状態であるかどうかを示すＦＵＬＬ信号が入力され、ＯＲゲート３６の入力端には、シングルポートメモリ１４がデータが存在しないエンプティ状態であるかどうかを示すＥＭＰＴＹ信号が入力される。ＦＵＬＬ信号は、Ｈレベルであるとき、シングルポートメモリ１４がフル状態であることを示し、書き込み禁止信号として作用する。また、ＥＭＰＴＹ信号は、Ｈレベルであるとき、シングルポートメモリ１４がＥＭＰＴＹ状態であることを示し、読み出し禁止信号として作用する。
【００２６】
状態判断回路３０は、アドレスバスＩＡＤＤ及びアドレスバスＯＡＤＤを流れるデータを検知して、ＦＩＦＯメモリ（シングルポートメモリ１４）がフル状態であるかどうかを示すＦＵＬＬ信号及びエンプティ状態であるかどうかを示すＥＭＰＴＹ信号をそれぞれ出力する。状態判断回路３０は、下記の式（１）で示される関係が成り立つときＨレベルのＦＵＬＬ信号を、下記の式（２）で示される関係が成り立つときＨレベルのＥＭＰＴＹ信号を出力する。
ＦＵＬＬ＝（（ＩＡＤＤ＋１）＝＝ＯＡＤＤ）              （１）
ＥＭＰＴＹ＝（ＩＡＤＤ＝＝ＯＡＤＤ）                    （２）
式（１）に示されるように、状態判断回路３０は、アドレスバスＩＡＤＤに出力されたデータ（入力用カウンタ２２におけるカウント値）に１を加えた数が、アドレスバスＯＡＤＤに出力されたデータ（出力用カウンタ２４におけるカウント値）に等しいとき、ＨレベルのＦＵＬＬ信号を出力する。例えば、シングルポートメモリ１４が０から２５５のアドレスを有する場合に、アドレスバスＩＡＤＤに出力されたアドレスデータが２５５を示し、アドレスバスＯＡＤＤに出力されたアドレスデータが０を示す場合等が考えられる。また、式（２）に示されるように、状態判断回路３０は、アドレスバスＩＡＤＤに出力されたデータが、アドレスバスＯＡＤＤに出力されたデータに等しいとき、ＨレベルのＥＭＰＴＹ信号を出力する。ＯＲゲート３４の出力信号及びＯＲゲート３６の出力信号は、ＡＮＤゲート４８の非反転入力端及びＡＮＤゲート５０の非反転入力端にそれぞれ入力される。ＡＮＤゲート４８の反転入力端及びＡＮＤゲート５０の反転入力端には、上記ＥＭＰＴＹ信号及び上記ＦＵＬＬ信号が、それぞれ入力される。ＡＮＤゲート４８の出力信号はＷＡＩＴＷＲ信号として、ＡＮＤゲート５０の出力信号はＷＡＩＴＲＤ信号として、それぞれ入出力制御部１２から出力される。また、上記ＷＡＩＴＷＲ信号及びＷＡＩＴＲＤ信号は、ＮＯＲゲート４０の一方の入力端及びＮＯＲゲート４２の一方の入力端に、それぞれ入力される。ＮＯＲゲート４０の他方の入力端には、ＷＲ＃信号が入力され、ＮＯＲゲート４２の他方の入力端には、ＲＤ＃信号が入力される。ＮＯＲゲート４０の出力信号は、イネーブル信号として、入力用カウンタ２２に入力される。また、ＮＯＲゲート４２の出力信号は、イネーブル信号として、出力用カウンタ２４に入力される。入力用カウンタ２２は、ＮＯＲゲート４０の出力信号がＨレベルであるとき、すなわち、ＷＲ＃信号及びＷＡＩＴＷＲ信号が共にＬレベルにあるとき、イネーブルされてカウントアップされる。出力用カウンタ２４は、ＮＯＲゲート４２の出力信号がＨレベルであるとき、すなわち、ＲＤ＃信号及びＷＡＩＴＲＤ信号が共にＬレベルであるとき、イネーブルされてカウントアップされる。一方、ＭＵＸ２６には、ＯＲゲート３２の出力信号が、制御信号として入力される。この制御信号は、ＭＵＸ２６のセレクト信号入力端（Ｓ）に入力されるセレクト信号である。ＯＲゲート３２には、ＷＲ＃信号及びＷＡＩＴＷＲ信号が入力される。ＭＵＸ２６は、セレクト信号がＬレベルであるとき、すなわち、ＷＲ＃信号及びＷＡＩＴＷＲ信号が共にＬレベルであるとき、アドレスバスＡＤＤに、入力用カウンタ２２の出力データを出力し、セレクト信号がＨレベルであるとき、アドレスバスＡＤＤに、出力用カウンタ２４の出力データを出力する。
【００２７】
次に、優先回路２８について説明する。図３は、優先回路２８の構成を示す回路図である。図３に示されるように、優先回路２８は、Ｄフリップフロップ６０、Ｅｘｃｌｕｓｉｖｅ ＯＲ（以下、「Ｅｘ．ＯＲ」という。）ゲート６２、及びＭＵＸ６４を含む。Ｄフリップフロップ６０には、イネーブル信号として、図２に示されたＮＯＲゲート３８の出力信号であるＣＨＧ信号が入力される。ＣＨＧ信号がＨレベル（アクティブ）であるとき、Ｄフリップフロップ６０は、以下の動作を行う。Ｄフリップフロップ６０のＤ入力端に入力される信号は、ＱＢ出力端から出力される信号（Ｑ出力端から出力される信号の反転信号）である。Ｄフリップフロップ６０は、入力されるクロック信号の立ち上がりと同時に、直前にＤ入力端に入力された信号と同じ状態の信号を、Ｑ出力端から出力する。Ｄフリップフロップ６０は、イネーブル信号入力端にアクティブのイネーブル信号（ＣＨＧ信号）が入力される間、入力されるクロック信号が立ち上がる度に、Ｑ出力端から、Ｈレベル信号とＬレベル信号を交互に出力する。Ｅｘ．ＯＲゲート６２には、ＰＲＩＷＲ信号及びＰＲＩＲＤ信号が入力される。Ｅｘ．ＯＲゲート６２の出力信号は、ＭＵＸ６４のセレクト信号入力端（Ｓ）に、セレクト信号として入力される。ＭＵＸ６４は、セレクト信号がＬレベルのとき、出力信号ＲＤＷＴとして、フリップフロップ６０の出力信号を選択して出力し、セレクト信号がＨレベルのとき、出力信号ＲＤＷＴとして、ＰＲＩＷＲ信号を選択して出力する。Ｈレベルの出力信号ＲＤＷＴは、書き込み要求の優先度が読み出し要求の優先度よりも高いことを示す。
【００２８】
以下に、上述のＦＩＦＯメモリ１０の動作を説明する。図４は、ＰＲＩＷＲ信号及びＰＲＩＲＤ信号が共にＨレベル又はＬレベルである場合、つまり、ライト側とリード側が同じ優先度である場合の、ＦＩＦＯメモリ１０の動作を示すタイミングチャートである。このとき、ＰＲＩＷＲ信号及びＰＲＩＲＤ信号は、同じ信号レベルであるので、図３に示された優先回路２８におけるＥｘ．ＯＲゲート６２は、常にＬレベル信号を出力し、その結果、優先回路２８の出力信号ＲＤＷＴは、Ｄフリップフロップ６０のＱ出力端からの出力信号に等しくなる。以下では、図４を参照して、タイミングＴ１から順に、ＦＩＦＯメモリ１０の動作を説明する。以下の説明で注目すべき動作は、タイミングＴ１２からＴ１６の間にＷＲ＃及びＲＤ＃信号が共にＬレベルとなる場合の動作である。
【００２９】
まず、タイミングＴ１からＴ３の間、ＷＲ＃及びＲＤ＃は共にＨレベルである。つまり、ＦＩＦＯメモリ１０に対してリード要求もライト要求もなされていない。このとき、ＣＨＧ信号は、Ｌレベルであり、Ｄフリップフロップ６０のＱ出力端からの出力信号、すなわち、ＲＤＷＴ信号は、Ｌレベルである。また、入力用カウンタ２２、及び出力用カウンタ２４は、共にカウントアップされていないので、対応するアドレスバスＩＡＤＤ、及びアドレスバスＯＡＤＤに、それぞれデータ「００ｈ」を出力する。状態判断回路３０は、アドレスバスＩＡＤＤ、及びアドレスバスＯＡＤＤに出力されたデータが、データ「００ｈ」で一致するので、ＬレベルのＦＵＬＬ信号、及びＨレベルのＥＭＰＴＹ信号を出力する。これにより、ＷＡＩＴＷＲ信号がＬレベルになり、ＷＡＩＴＲＤ信号はＨレベルとなる。さらに、ＷＲ＃信号がＨレベルであり、ＷＡＩＴＷＲ信号がＬレベルであるので、ＷＥ＃信号は、Ｈレベルとなる。また、入力用カウンタ２２、及び出力用カウンタ２４は、入力されるイネーブル信号がＬレベルであるので、カウントアップされない。
【００３０】
次に、タイミングＴ４において、ＷＲ＃信号がＬレベル（アクティブ）となり、データバスＤＡＴＡＩＮを介して、シングルポートメモリ１４にデータＤ０が送られる。このとき、ＷＲ＃信号がＬレベルであるので、ＷＥ＃信号がＬレベル（アクティブ）になり、ＭＵＸ２６に入力されるセレクト信号がＬレベルになる。ＭＵＸ２６は、セレクト信号がＬレベルであるので、アドレスバスＡＤＤに、アドレスバスＩＡＤＤを介して送られてきたデータを出力する。ここで、アドレスバスＡＤＤに出力されるデータは、「００ｈ」である。すなわち、シングルポートメモリ１４のアドレス「００ｈ」に、データＤ０が書き込まれる。また、ＷＲ＃信号がＬレベルになったことにより、入力用カウンタ２２に入力されるイネーブル信号がＨレベルとなり、入力用カウンタ２２がカウントアップされる。
【００３１】
さらに、タイミングＴ５において、ＷＲ＃信号はＬレベルのままであり、データバスＤＡＴＡＩＮを介して、シングルポートメモリ１４にデータＤ１が送られる。また、タイミングＴ４において、入力用カウンタ２２がカウントアップされているので、入力用カウンタ２２から、アドレスバスＩＡＤＤに、データ「０１ｈ」が出力される。ＷＥ＃信号がＬレベルのままであるので、ＭＵＸ２６は、アドレスバスＡＤＤに、アドレスバスＩＡＤＤを介して送られてきたデータを出力する。すなわち、アドレスバスＡＤＤを介して、シングルポートメモリ１４にアドレスデータ「０１ｈ」を出力する。これにより、シングルポートメモリ１４のアドレス「０１ｈ」に、データＤ１が書き込まれる。また、状態判断回路３０は、アドレスバスＩＡＤＤを流れるデータ「０１ｈ」と、アドレスバスＯＡＤＤを流れるデータ「００ｈ」が一致しなくなったことから、シングルポートメモリ１４内にデータが書き込まれたことを検知し、ＬレベルのＥＭＰＴＹ信号を出力する。これにより、ＯＲゲート３６の出力信号、及びＡＮＤゲート５０の出力信号がＬレベルになるので、ＷＡＩＴＲＤ信号は、Ｌレベルとなる。また、入力用カウンタ２２に入力されるイネーブル信号がＨレベルであるので、入力用カウンタ２２がカウントアップされる。
【００３２】
次に、タイミングＴ６において、ＷＲ＃信号は再びＨレベルになり、これにより、ＷＥ＃信号がＨレベルになる。ＭＵＸ２６は、セレクト信号がＨレベルであるので、アドレスバスＡＤＤに、出力用カウンタ２４の出力データを出力する。ここで、出力用カウンタ２４はカウントアップされていないので、ＭＵＸ２６が、アドレスバスＡＤＤに出力するデータは、「００ｈ」である。しかし、ＲＤ＃信号がＨレベル（非アクティブ）であるため、シングルポートメモリ１４からデータが読み出されることはない。一方、タイミングＴ５で入力用カウンタ２２がカウントアップされているので、入力用カウンタ２２から、アドレスバスＩＡＤＤに、データ「０２ｈ」が出力される。
【００３３】
次に、タイミングＴ７において、ＷＲ＃信号がＬレベル（アクティブ）となる。このとき、ＷＥ＃信号がＬレベル（アクティブ）になり、ＭＵＸ２６に入力されるセレクト信号がＬレベルとなる。ＭＵＸ２６に入力されるセレクト信号がＬレベルであるので、ＭＵＸ２６から、アドレスバスＡＤＤに、入力用カウンタ２２からの出力データ、すなわち、アドレスデータ「０２ｈ」が出力される。これにより、シングルポートメモリ１４のアドレス「０２ｈ」に、データＤ２が書き込まれる。そして、新たに入力用カウンタ２２がカウントアップされる。タイミングＴ８において、ＷＲ＃信号は再びＨレベルになり、セレクト信号がＨレベルになる。ＭＵＸ２６は、セレクト信号がＨレベルであるので、アドレスバスＡＤＤに、出力用カウンタ２４からの出力データを出力する。ここで、出力用カウンタ２４はカウントアップされていないので、アドレスバスＡＤＤに出力されるデータは、「００ｈ」である。一方、入力用カウンタ２２から、アドレスバスＩＡＤＤへは、データ「０３ｈ」が出力される。
【００３４】
次に、タイミングＴ９において、ＷＲ＃信号がＨレベルのままで、ＲＤ＃信号がＬレベル（アクティブ）になる。ＭＵＸ２６に入力されるセレクト信号は、Ｈレベルのままであるので、ＭＵＸ２６は、アドレスバスＡＤＤに、出力用カウンタ２４の出力データを出力する。ここで、出力用カウンタ２４はカウントアップされていないので、アドレスバスＡＤＤに出力されるデータは、「００ｈ」である。このとき、シングルポートメモリ１４のアドレス「００ｈ」に記憶されたデータＤ０が、データバスＤＡＴＡＯＵＴに出力される。つまり、シングルポートメモリ１４からデータＤ０が読み出される。一方、ＲＤ＃信号がＬレベルになると、ＮＯＲゲート４２の出力信号がＨレベルになるので、出力用カウンタ２４にアクティブなイネーブル信号が入力され、出力用カウンタ２４が、カウントアップされる。
【００３５】
次に、タイミングＴ１０において、ＲＤ＃信号が再びＨレベルになり、ＷＲ＃信号がＬレベルになる。このとき、ＭＵＸ２６に入力されるセレクト信号はＬレベルになり、ＭＵＸ２６は、アドレスバスＡＤＤを介して、アドレスバスＩＡＤＤからのデータ「０３ｈ」を出力する。これにより、シングルポートメモリ１４のアドレス「０３ｈ」に、データＤ３が書き込まれる。また、Ｔ９において出力用カウンタ２４がカウントアップされているので、出力用カウンタ２２から、アドレスバスＯＡＤＤに、データ「０１ｈ」が出力される。
【００３６】
次に、タイミングＴ１１において、ＲＤ＃信号がＬレベルになり、ＷＲ＃信号がＨレベルになる。ＭＵＸ２６に入力されるセレクト信号は、Ｈレベルであるので、ＭＵＸ２６は、アドレスバスＡＤＤに、出力用カウンタ２４からのデータ「０１ｈ」を出力する。よって、シングルポートメモリ１４のアドレス「０１ｈ」に記憶されていたデータＤ１が、データバスＤＡＴＡＯＵＴに出力される。一方、ＲＤ＃信号がＬレベルになると、ＮＯＲゲート４２の出力信号がＨレベルになるので、出力用カウンタ２４がカウントアップされる。一方、タイミングＴ１０において入力用カウンタ２２がカウントアップされているので、入力用カウンタ２２から、アドレスバスＩＡＤＤに、データ「０４ｈ」が出力される。
【００３７】
次に、タイミングＴ１２からＴ１６の間のＦＩＦＯメモリ１０の動作について説明する。タイミングＴ１２からＴ１６の間、ＷＲ＃及びＲＤ＃信号は、共にＬレベルである。このとき、初めてＣＨＧ信号がＨレベルになり、図３に示された優先回路２８のＤフリップフロップ６０がイネーブルされる。ＰＲＩＷＲ信号及びＰＲＩＲＤ信号の信号レベルが同じであるため、ＭＵＸ６４に入力されるセレクト信号は常にＬレベルとなる。よって、ＭＵＸ６４は、ＲＤＷＴ信号として、Ｄフリップフロップ６０の出力信号を選択して出力する。タイミングＴ１２では、ＷＲ＃及びＲＤ＃信号が共にＬレベルとなる。タイミングＴ１２では、ＷＲ＃信号がＬレベルであるので、データバスＤＡＴＡＩＮを介して、シングルポートメモリ１４にデータＤ４が送られる。しかし、ＣＨＧ信号がＨレベルになった瞬間、ＲＤＷＴ信号はＬレベルに設定され、かつＦＵＬＬ信号及びＥＭＰＴＹ信号が共にＬレベルであるため、ＷＡＩＴＷＲ信号がＨレベルとなり、ライト側が停止される。具体的には、ＷＡＩＴＷＲ信号がＨレベルになったことにより、ＭＵＸ２６に入力されるセレクト信号がＨレベルになり、ＭＵＸ２６は、アドレスバスＡＤＤに、出力用カウンタ２４からのデータを出力する。ここで、出力用カウンタ２４がタイミングＴ１１でカウントアップされているので、アドレスバスＡＤＤに、データ「０２ｈ」が出力される。これにより、シングルポートメモリ１４のアドレス「０２ｈ」に記憶されたデータＤ２が、データバスＤＡＴＡＯＵＴに出力される。一方、ＲＤ＃信号がＬレベルになると、ＮＯＲゲート４２の出力信号がＨレベルになるので、出力用カウンタ２４がイネーブルされてカウントアップされる。
【００３８】
タイミングＴ１３ではＲＤＷＴ信号がＨレベルに変化するため、ＷＡＩＴＲＤ信号がＨレベル（アクティブ）となり、ＷＡＩＴＷＲ信号がＬレベル（非アクティブ）になる。すなわち、ライト側が選択され、リード側が停止される。具体的には、ＷＡＩＴＷＲ信号がＬレベルになったことにより、ＷＥ＃信号がＬレベル（アクティブ）になり、ＭＵＸ２６に入力されるセレクト信号がＬレベルになる。よって、ＭＵＸ２６は、アドレスバスＡＤＤを介して、シングルポートメモリ１４に、アドレスバスＩＡＤＤにおけるデータ「０４ｈ」を出力する。これにより、シングルポートメモリ１４のアドレス「０４ｈ」に、データＤ４が書き込まれる。そして、ＷＡＩＴＷＲ信号がＬレベルになったことにより、入力用カウンタ２２に入力されるイネーブル信号がＨレベルとなり、入力用カウンタ２２がカウントアップされる。同様に、タイミングＴ１４及びＴ１６ではライト側、タイミングＴ１５ではリード側が停止される。ライト側が停止された場合の動作、及びリード側が停止された場合の動作の各々は、上述した動作と同様である。
【００３９】
タイミングＴ１７では、ＲＤ＃信号が再びＨレベルになり、データの書き込みが行われる。また、タイミングＴ１８及びＴ１９では、ＲＤ＃信号がＬレベル、ＷＲ＃信号がＨレベルになり、データの読み出しが行われる。これらの場合のＦＩＦＯメモリの動作は上述の動作と同一である。タイミングＴ２０以降は、ＲＤ＃信号、及びＷＲ＃信号が、共にＨレベル（非アクティブ）で維持される。なお、タイミングＴ１９においてシングルポートメモリ１４から書き込まれたデータが全て読み出されると、Ｔ２０において、出力用カウンタ２４からアドレスバスＯＡＤＤに出力されたデータが「０７ｈ」となり、アドレスバスＩＡＤＤにおけるデータとアドレスバスＯＡＤＤにおけるデータが共に「０７ｈ」で一致するので、タイミングＴ２０において、ＥＭＰＴＹ信号がＨレベルに変化する。
【００４０】
図５は、ＰＲＩＷＲ信号がＨレベルであり、かつＰＲＩＲＤ信号がＬレベルである場合、つまり、リード側よりもライト側の優先度が高い場合の、ＦＩＦＯメモリの動作を示すタイミングチャートである。このとき、ＰＲＩＷＲ信号及びＰＲＩＲＤ信号の信号レベルが異なるため、図３のＥｘ．ＯＲゲート６２は、常にＨレベル信号を出力し、その結果、ＭＵＸ６４に入力されるセレクト信号は常にＨレベルとなる。このとき、ＭＵＸ６４は、ＰＲＩＷＲ信号（Ｈレベル）を選択して、それをＲＤＷＴ信号として出力する。以下の説明において注目すべきＦＩＦＯメモリの動作は、タイミングＴ１２からＴ１４の間にＷＲ＃及びＲＤ＃信号が共にＬレベルとなる場合の動作である。
【００４１】
以下に、図５を参照して、ＦＩＦＯメモリ１０の動作を説明する。なお、タイミングＴ１からＴ１１までは、図４のタイミングチャートと同じであるので、説明を省略する。タイミングＴ１２からＴ１４の間、ＷＲ＃及びＲＤ＃信号は共にＬレベルになるので、ＷＡＩＴＲＤ信号はＨレベルになり、ＷＡＩＴＲＷＲ信号はＬレベルになる。よって、タイミングＴ１２からＴ１４の間は、ライト側が優先され、リード側が停止される。図５に示されるように、タイミングＴ１２からＴ１４の間、シングルポートメモリ１４のアドレス「０４ｈ」、「０５ｈ」、及び「０６ｈ」に、データＤ４、Ｄ５、及びＤ６がそれぞれ順に書き込まれる。さらに、タイミングＴ１５からＴ１９の間に、シングルポートメモリ１４のアドレス「０２ｈ」、「０３ｈ」、「０４ｈ」、「０５ｈ」、及び「０６ｈ」から、データＤ２、Ｄ３、Ｄ４、Ｄ５、及びＤ６がそれぞれ順に読み出される。
【００４２】
図６は、ＰＲＩＷＲ信号がＬレベルであり、かつＰＲＩＲＤ信号がＨレベルである場合、つまり、ライト側よりもリード側の優先度が高い場合の、ＦＩＦＯメモリの動作を示すタイミングチャートである。このとき、ＰＲＩＷＲ信号及びＰＲＩＲＤ信号の信号レベルが異なるため、図３のＭＵＸ６４に入力されるセレクト信号は常にＨレベルとなる。よって、ＭＵＸ６４は、ＰＲＩＷＲ信号（Ｌレベル）を選択して、それをＲＤＷＴ信号として出力する。以下の説明において注目すべきＦＩＦＯメモリの動作は、タイミングＴ１２からＴ１８の間にＷＲ＃及びＲＤ＃信号が共にＬレベルとなる場合の動作である。
【００４３】
以下に、図６を参照して、ＦＩＦＯメモリ１０の動作を説明する。なお、タイミングＴ１からＴ１１までは、図４のタイミングチャートと同じであるので、説明を省略する。まず、タイミングＴ１２からＴ１４の間にＷＲ＃及びＲＤ＃信号が共にＬレベルとなる場合、ＲＤＷＴ信号は常にＬレベルであるので、ＷＡＩＴＲＷＲ信号はＨレベルになり、ＷＡＩＴＲＤ信号はＬレベルになる。このとき、ＭＵＸ２６に入力されるセレクト信号がＨレベルになり、ＭＵＸ２６は、アドレスバスＡＤＤに、アドレスバスＯＡＤＤからのデータを出力する。ここで、タイミングＴ１１で出力用カウンタ２４がカウントアップされているので、出力用カウンタ２４から出力されるデータは、「０２ｈ」である。これにより、シングルポートメモリ１４から、アドレス「０２ｈ」に記憶されたデータＤ２が、データバスＤＡＴＡＯＵＴに出力される。一方、ＲＤ＃信号、及びＷＡＩＴＲＤ信号がＬレベルであるので、出力用カウンタ２４に入力されるイネーブル信号がＨレベルとなり、出力用カウンタ２４がカウントアップされる。同様に、タイミングＴ１３においても、シングルポートメモリ１４から、アドレス「０３ｈ」に記憶されたデータＤ３が、データバスＤＡＴＡＯＵＴに出力される。
【００４４】
以上のように、タイミングＴ１２及びＴ１３ではライト側が停止される。しかし、タイミングＴ１４では、状態判断回路３０が、アドレスバスＩＡＤＤ、及びアドレスバスＯＡＤＤに出力されたデータが、データ「０４ｈ」で一致するので、シングルポートメモリ１４内にリードできるデータが存在しなくなったことを検知し、ＥＭＰＴＹ信号をＨレベルにする。これによって、リード側が優先されていてもＷＡＩＴＲＤ信号がＨレベルとなり、リード側が停止される。また、ＥＭＰＴＹ信号がＨレベルになったことにより、ＷＡＩＴＷＲ信号がＬレベルに変化し、ライト動作が実施される。具体的に、シングルポートメモリ１４のアドレス「０４ｈ」に、データＤ４が書き込まれる。
【００４５】
タイミングＴ１５では、タイミングＴ１４でシングルポートメモリ１４内にリードできるデータＤ４が記憶されたため、アドレスバスＩＡＤＤ、及びアドレスバスＯＡＤＤに出力されたデータが一致しなくなり、状態判断回路３０がＥＭＰＴＹ信号をＬレベルにする。これにより、リード動作が再び実施される。以降は、ライト動作とリード動作が交互に繰り返され、最終的に、タイミングＴ１９において、シングルポートメモリ１４から、アドレス「０６ｈ」に記憶されたデータＤ６が、データバスＤＡＴＡＯＵＴに出力される。これ以降、ＷＲ＃及びＲＤ＃信号は、共にＨレベルで維持され、ＦＩＦＯメモリ１０の動作は変化しない。
【００４６】
本発明によるＦＩＦＯメモリは、書き込みと読み出しが同時に要求されても、エラーを生じることなく、ウェイト信号を出力することによって書き込み及び読み出しのいずれか一方を中止させ、他の一方を実施する。よって、書き込みと読み出しを同時に行うことができないシングルポートメモリを用いても、ＦＩＦＯメモリとして動作することができる。また、本発明によるＦＩＦＯメモリには、ＰＲＩＲＤ信号及びＰＲＩＷＲ信号を入力でき、それらの信号の状態を変化させることによって、リード側及びライト側の優先度を変更することができる。これにより、本発明によるＦＩＦＯメモリは、メディアの状態等によって、書き込みと読み込みの優先度を変更することができる。
【００４７】
本発明によるＦＩＦＯメモリは、回路規模の小さいシングルポートメモリを用いるため、ＦＩＦＯメモリ全体の回路規模を小さくできる。また、本発明によるＦＩＦＯメモリは、デュアルポートメモリよりも安価なシングルポートメモリを用いるため、従来のＦＩＦＯメモリよりも安価になる。
【００４８】
図７は、本発明によるＦＩＦＯメモリを用いた記憶媒体制御装置の構成を示すブロック図である。図７に示されるように、記憶媒体制御装置７０は、ＣＰＵやＲＡＭ等を含むシステム装置７２から入力される制御信号に従って、４つのフラッシュメディア、すなわち、ＳＤメモリカード７４、メモリースティックカード７６、ｘＤ−ｐｉｃｔｕｒｅＴＭカード７８、及びコンパクトフラッシュＴＭカード８０を制御する。ここで、ＳＤメモリカード７４、メモリースティックカード７６、ｘＤ−ｐｉｃｔｕｒｅカード７８、及びコンパクトフラッシュカード８０の動作周波数は、それぞれ、２５ＭＨｚ、２０ＭＨｚ、１５ＭＨｚ、及び３０ＭＨｚである。記憶媒体制御装置７０は、本発明によるＦＩＦＯメモリ１０、ＳＤメモリカード７４に対応するＳＤ制御部８２、メモリースティックカード７６に対応するＭＳ制御部８４、ｘＤ−Ｐｉｃｔｕｒｅカード７８に対応するｘＤ制御部８６、コンパクトフラッシュカード８０に対応するＣＦ制御部８８、及びＭＵＸ９０を備える。システム装置７２と各制御部８２，８４，８６，８８は、単一のデータバス９２で接続される。各制御部８２，８４，８６，８８は、その内部に、対応するフラッシュメディアの動作周波数と、システム装置７２の動作周波数（３０ＭＨｚ）との差を補償するフリップフロップ等を用いた簡単な緩衝回路（図示せず）を有する。なお、ＦＩＦＯメモリ１０は、システム装置７２の動作周波数で動作する。
【００４９】
以下に、上述の記憶媒体制御装置７０の動作を説明する。システム装置７２から、例えば、ＳＤメモリカード７４にデータが書き込まれるとき、システム装置７２は、記憶媒体制御装置７０に、書き込みを要求する制御信号、ＳＤメモリカード７４のアドレスを指定するアドレスデータ、及びＳＤメモリカード７４に書き込むデータを出力する。また、システム装置７２は、ＭＵＸ９０に、ＦＩＦＯメモリ１０に接続する制御部として、ＳＤ制御部８２を選択するように指示するセレクト信号を出力する。このセレクト信号は、システム装置７２から、信号線（図示せず）を通って、ＭＵＸ９０に直接入力される。上記制御信号、アドレスデータ、及びＳＤメモリカード７４に書き込まれるデータは、対応する信号線（図示せず）、アドレスバス（図示せず）、及びデータバス９２を通って、それぞれ全ての制御部８２，８４，８６，８８に送られる。各制御部８２，８４，８６，８８は、送られてきたアドレスデータをデコードする。対応する記憶媒体のアドレスを指定していることを検知した制御部、すなわちＳＤ制御部８２は、データバス９２を通って送られてきたデータを受け取る。ＳＤ制御部８２は、システム装置７２によって、ＳＤメモリカード７４へのデータの書き込みが要求されると、ＳＤメモリカード７４に、書き込みを要求する制御コマンド、及びＳＤメモリカードのアドレスを示すアドレスデータを出力し、その一方で、システム装置７２からデータバス９２を通って次々と送られてくるデータを、ＭＵＸ９０に出力する。上述したように、ＭＵＸ９０には、システム装置７２からＳＤ制御部８２を選択するように指示するセレクト信号が入力されているので、ＭＵＸ９０は、ＳＤ制御部８２から入力されるデータを、ＦＩＦＯメモリ１０に出力する。ここで、システム装置７２からＳＤ制御部８２へのデータの入力、ＳＤ制御部８２からＭＵＸ２６へのデータの出力、及びＭＵＸ９０からＦＩＦＯメモリ１０へのデータの入力は、３０ＭＨｚの動作周波数で実施される。ＳＤ制御部８２は、ＳＤメモリカード７４から書き込みの要求を承諾することを示す信号が入力されると、ＦＩＦＯメモリ１０からデータを順次読み出して、そのデータをＳＤメモリカード７４に転送する。このとき、ＳＤ制御部８２は、緩衝回路を用いることにより、３０ＭＨｚの動作周波数でＦＩＦＯメモリ１０からデータを読み出し、そのデータを２５ＭＨｚの動作周波数でＳＤメモリカード７４に出力する。
【００５０】
さらに、システム装置７０からＳＤ制御部８２には、制御信号と共に、ＦＩＦＯメモリ１０に対してライト要求の優先を指示する信号、及びリード要求の優先を指示する信号が入力される。ＳＤ制御部８２は、それらを、適切なＰＲＩＷＲ信号及びＰＲＩＲＤ信号に変換して、ＦＩＦＯメモリ１０に出力する。また、ＦＩＦＯメモリ１０から出力されるＷＡＩＴＷＲ信号、及びＷＡＩＴＲＤ信号は、ＳＤ制御部８２に入力される。ＳＤ制御部８２は、ＷＡＩＴＷＲ信号、又はＷＡＩＴＲＤ信号が入力されると、書き込みを待つように指示するウェイト信号、又は読み出しを待つように指示するウェイト信号を、ＳＤメモリカード７４及びシステム装置７２に出力する。
【００５１】
なお、システム装置７２から記憶媒体制御装置７０への制御信号及びデータの入力方法は、上述したものに限られない。例えば、システム装置７０は、各制御部８２，８４，８６，８８にイネーブル信号を出力し、アドレスデータの代わりにそのイネーブル信号によって、排他的に動作する制御部を指定してもよい。また、ＰＲＩＷＲ信号、ＰＲＩＲＤ信号は、システム装置７０からＦＩＦＯメモリ１０に直接入力されてもよい。
【００５２】
記憶媒体制御装置７０は複数の記憶媒体を制御するが、システム装置７２と記憶媒体御装置７０との間には１つのデータバスしか存在しないため、一定のデータ量のデータ転送が終了するまでは、システム装置に対して１つの選択された記憶媒体しか動作できない。よって、図７に示すように、各々のフラッシュメディアに対応する制御部８２，８４，８６，８８とＦＩＦＯメモリ１０との間にＭＵＸ９０を設けて、そのＭＵＸ９０により、複数の制御部８２，８４，８６，８８のうち１つを選択して、その選択された制御部とＦＩＦＯメモリとを接続する。
【００５３】
従来の構成に従うと、例えば、４種類のフラッシュメディアを制御する記憶媒体制御装置は、８個のＦＩＦＯメモリを含み、そのＬＳＩのチップサイズが非常に大きかった。しかし、図７で示されるような構成に従えば、１つのＦＩＦＯメモリを用いて複数のメディアを制御できるので、記憶媒体制御装置の回路規模を飛躍的に減少でき、そのＬＳＩのチップサイズも低減できる。
【００５４】
なお、上述の記憶媒体制御装置は、フラッシュメディアインタフェースＬＳＩとして、パーソナルコンピュータ（以下、「ＰＣ」という。）と、ＰＣに設けられたカードスロットに挿入されるフラッシュメディアカードとの間のデータのやりとりに利用されるように、ＰＣ内部の制御デバイスに組み込まれてもよい。また、上述の記憶媒体制御装置は、ＰＣ周辺機器に組み込まれてもよい。
【図面の簡単な説明】
【００５５】
【図１】本発明によるＦＩＦＯメモリの構成を示すブロック図である。
【図２】入出力制御部の構成を示す回路図である。
【図３】優先回路の構成を示す回路図である。
【図４】ライト側とリード側が同じ優先度である場合の、ＦＩＦＯメモリの動作を示すタイミングチャートである。
【図５】リード側よりもライト側の優先度が高い場合の、ＦＩＦＯメモリの動作を示すタイミングチャートである。
【図６】ライト側よりもリード側の優先度が高い場合の、ＦＩＦＯメモリの動作を示すタイミングチャートである。
【図７】本発明によるＦＩＦＯメモリを用いた記憶媒体制御装置の構成を示すブロック図である。
【図８】従来のＦＩＦＯメモリの構成を示すブロック図である。
【図９】従来のＦＩＦＯメモリを用いた記憶媒体制御装置のブロック図である。
【符号の説明】
【００５６】
１０  ＦＩＦＯメモリ
１２  入出力制御部
１４  シングルポートメモリ
２２  入力用カウンタ
２４  出力用カウンタ
２６  マルチプレクサ（ＭＵＸ）
２８  優先回路
３０  状態判断回路
【図１】
2005346637.tif 000003
【図２】
2005346637.tif 000004
【図３】
2005346637.tif 000005
【図４】
2005346637.tif 000006
【図５】
2005346637.tif 000007
【図６】
2005346637.tif 000008
【図７】
2005346637.tif 000009
【図８】
2005346637.tif 000010
【図９】
2005346637.tif 000011