JP4346506B2 - 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置 - Google Patents

先入れ先出しメモリ及びそれを用いた記憶媒体制御装置 Download PDF

Info

Publication number
JP4346506B2
JP4346506B2 JP2004168685A JP2004168685A JP4346506B2 JP 4346506 B2 JP4346506 B2 JP 4346506B2 JP 2004168685 A JP2004168685 A JP 2004168685A JP 2004168685 A JP2004168685 A JP 2004168685A JP 4346506 B2 JP4346506 B2 JP 4346506B2
Authority
JP
Japan
Prior art keywords
data
signal
port memory
output
single port
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.)
Expired - Fee Related
Application number
JP2004168685A
Other languages
English (en)
Other versions
JP2005346637A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2004168685A priority Critical patent/JP4346506B2/ja
Publication of JP2005346637A publication Critical patent/JP2005346637A/ja
Application granted granted Critical
Publication of JP4346506B2 publication Critical patent/JP4346506B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、先入れ先出し(FIFO)メモリ、及び先入れ先出しメモリを用いたSDメモリカード等の記憶媒体を制御する記憶媒体制御装置に関する。
入力したデータを入力した順に読み出す先入れ先出し(以下、「FIFO(First In First Out)」という。)メモリは、種々の電子回路で用いられている。FIFOメモリは、通常、非同期2ポート(デュアルポート)メモリを備え、データの書き込み及び読み出しを同時に行うことができる。図8は、従来のFIFOメモリの構成を示すブロック図である。図8に示されるように、FIFOメモリ100は、非同期2ポートメモリ102、入力制御部104、及び出力制御部106を備える。FIFOメモリ100に外部から書き込み要求信号が入力されると、入力制御部104は、その書き込み要求信号を受け取り、非同期2ポートメモリ102に、書き込みを要求するWR信号と、データを書き込む非同期2ポートメモリ102のアドレスを示すアドレスデータを出力する。そして、このアドレスデータが示す非同期2ポートメモリ102のアドレスに、入力データが書き込まれる。一方、FIFOメモリ100に外部から読み出し要求信号が入力されると、出力制御部106は、その読み出し要求信号を受け取り、非同期2ポートメモリ102に、データを読み出す非同期2ポートメモリ102のアドレスを示すアドレスデータを出力する。そして、このアドレスデータが示す非同期2ポートメモリ102のアドレスから、データが読み出される。
従来のFIFOメモリ100は、書き込み動作及び読み出し動作の動作周波数が異なり、非同期にアクセスできるという特徴がある。よって、従来のFIFOメモリは、入出力インタフェースにおいて、データの処理速度が異なる2つの処理装置間の緩衝手段として動作する。例えば、メモリカード等の記憶媒体とシステム装置との間に接続されて、システム装置から入力される制御信号に従って、メモリカードへのデータの書き込み及びメモリカードからのデータの読み出しを制御する記憶媒体制御装置は、緩衝手段としてFIFOメモリを備える。図9は、従来のFIFOメモリ100を用いた記憶媒体制御装置のブロック図である。図9に示されるように、記憶媒体制御装置200は、カード側制御部202と、システム装置側制御部204と、2つのFIFOメモリ100とを備える。2つのFIFOメモリ100は、カード側制御部202とシステム装置側制御部204との間のデータの送信用及び受信用にそれぞれ用いられる。ここで、制御される記憶媒体を、例えば、SDメモリカードとすると、各々のFIFOメモリ100は、動作周波数が25MHzであるSDメモリカードと、動作周波数が30MHzであるシステム装置との間のデータの処理速度の差を補償する。システム装置は、中央演算処理装置(以下、「CPU」という。)、及びランダムアクセスメモリ(以下、「RAM」という。)等を含む。記憶媒体制御装置200は、CPUを介して、又はダイレクトメモリアクセス(DMA)の転送方式により直接、RAMとデータのやりとりを行う。
例えば、従来のFIFOメモリには、シングルポートメモリを用いるものがある(例えば、特許文献1及び特許文献2)。
特開平08−137741号公報 特開平10−173723号公報
上述したように、従来のFIFOメモリは、一般に、非同期2ポートメモリを備える。しかし、2ポートメモリは、同じ容量のシングルポートメモリに比べて、メモリのサイズが大きく、かつ高価である。よって、従来のFIFOメモリは、回路規模が大きく、高価になるという問題があった。また、従来のFIFOメモリを用いた記憶媒体制御装置は、その大規模集積回路(以下、「LSI」という。)のチップ面積が非常に大きく、チップサイズが大きいという問題があった。
さらに、現在の記憶媒体制御装置は、複数の記憶媒体、例えば、フラッシュメモリを用いた記憶媒体(以下、「フラッシュメディア」という。)を制御することが要求されるため、多数のFIFOメモリを含まなければならない。図9に示されるような記憶媒体制御装置の構成に従うと、例えば、4種類のフラッシュメディアを制御する記憶媒体制御装置は、8個のFIFOメモリを含まなければならない。この場合、記憶媒体制御装置のLSIのチップ面積におけるFIFOメモリの占める割合が増大し、LSIのチップサイズが大きくなってしまうという問題があった。
一方、非同期FIFOメモリには、シングルポートメモリを用いる場合があるが、シングルポートメモリの動作周波数がFIFOメモリのリード/ライトアクセスより2倍以上高速でなければいけないという欠点があり、そのために高価な高速メモリが必要になるという問題があった。
本発明は、上記のような問題を解決するためになされるものであり、回路規模が小さく、かつ安価なFIFOメモリ、及びそのFIFOメモリを用いた記憶媒体制御装置を提供することを目的とする。
本発明に係る先入れ先出しメモリは、
データの書き込みと読み出しが行われるシングルポートメモリと、
外部から入力される複数の制御信号に応じて、前記シングルポートメモリへのデータの書き込み、又は前記シングルポートメモリからのデータの読み出しを制御する入出力制御部と
を備え、
前記入出力制御部は、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しに対する優先度が指示された場合に、前記優先度に従って、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのいずれか一方を行い、
更に、前記入出力制御部は、外部から入力された単一のクロック信号に同期して動作し、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記クロック信号に応じて交互に行う、先入れ先出しメモリである。そのような先入れ先出しメモリにおいて、
前記入出力制御部は、
前記クロック信号に基づいて所定のカウント動作を行い、そのカウント値を示す信号を生成して出力する入力用カウンタと、
前記クロック信号に基づいて所定のカウント動作を行い、そのカウント値を示す信号を生成して出力する出力用カウンタと、
前記入力用カウンタと前記出力用カウンタのいずれか一方の出力信号を排他的に選択して出力する選択回路部と、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度が指示された場合に、その優先度に応じて、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのどちらを優先するかを指示する優先信号を生成して出力する優先回路部と、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求された場合に、前記優先信号に応じて、前記入力用カウンタ、前記出力用カウンタ、及び前記選択回路部を制御する制御回路部と
を備え、
前記制御回路部は、
前記優先信号が、前記シングルポートメモリへのデータの書き込みを優先することを示している場合、前記入力用カウンタにカウント動作を行わせると共に、前記選択回路部に前記入力用カウンタの出力信号を排他的に選択して出力させ、
前記優先信号が、前記シングルポートメモリへのデータの読み出しを優先することを示している場合、前記出力用カウンタにカウント動作を行わせると共に、前記選択回路部に前記出力用カウンタの出力信号を排他的に選択して出力させ、
更に、前記優先回路部は、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みをデータの読み出しよりも優先するように指示された場合に、前記シングルポートメモリへのデータの書き込みを優先するように指示する優先信号を出力し、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの読み出しをデータの書き込みよりも優先するように指示された場合に、前記シングルポートメモリからのデータの読み出しを優先するように指示する優先信号を出力し、
前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合に、前記シングルポートメモリへのデータの書き込みを優先するように指示する優先信号と、前記シングルポートメモリからのデータの読み出しを優先するように指示する優先信号とを、前記クロック信号に応じて交互に出力し、
更に、前記優先回路部は、
前記シングルポートメモリに対するデータの書き込みを要求する信号とデータの読み出しを要求する信号とを入力するNORゲートの出力信号をイネーブル信号入力端として、該イネーブル信号がアクティブであるとき入力される前記クロック信号が立ち上がる毎にHレベルとLレベルを交互に出力するDフリップフロップを有することにより、前記制御信号によって前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共にそのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記入出力制御部が前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記クロック信号に応じて交互に行うことを実現する
ことを特徴とする。
好ましくは、前記入出力制御部は、前記シングルポートメモリへのデータの書き込みを行うとき、前記シングルポートメモリからのデータの読み出しを待つように指示する第1のウェイト信号を外部に出力し、前記シングルポートメモリからのデータの読み出しを行うとき、前記シングルポートメモリへのデータの書き込みを待つように指示する第2のウェイト信号を外部に出力する。
好ましくは、前記入出力制御部は、前記入力用カウンタの出力信号、及び前記出力用カウンタの出力信号を用いて、前記シングルポートメモリ内のデータ量を検知し、前記シングルポートメモリにデータを記憶するための空き容量がない場合に書き込み禁止信号を出力し、前記シングルポートメモリにデータが存在しない場合に読み出し禁止信号を出力する状態判断回路部を備え、
前記制御回路部は、前記書き込み禁止信号及び前記読み出し禁止信号並びに前記優先信号に応じて、前記入力用カウンタ及び前記出力用カウンタをそれぞれ制御する。
本発明に係る記憶媒体制御装置は、システム装置から入力される少なくとも1つの制御信号に従って複数の記憶媒体を制御する記憶媒体制御装置であって、
単一の先入れ先出しメモリと、
前記制御信号に応じて、対応する前記記憶媒体をそれぞれ制御する各制御部と、
前記制御信号に応じて、前記各制御部のうち1つを選択し、その選択された制御部を前記先入れ先出しメモリに接続する選択回路部と
を備え、
前記先入れ先出しメモリは、
データの書き込みと読み出しが行われるシングルポートメモリと、
前記制御信号に応じて、前記シングルポートメモリへのデータの書き込み、又は前記シングルポートメモリからのデータの読み出しを制御する入出力制御部と
を備え、
前記入出力制御部は、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しに対する優先度が指示された場合に、前記優先度に従って、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのいずれか一方を行い、
更に、前記入出力制御部は、外部から入力された単一のクロック信号に同期して動作し、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記クロック信号に応じて交互に行う、記憶媒体制御装置である。そのような記憶媒体制御装置において、
前記入出力制御部は、更に、
前記シングルポートメモリに対するデータの書き込みを要求する信号とデータの読み出しを要求する信号とを入力するNORゲートの出力信号をイネーブル信号入力端として、該イネーブル信号がアクティブであるとき入力される前記クロック信号が立ち上がる毎にHレベルとLレベルを交互に出力するDフリップフロップを有することにより、前記制御信号によって前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共にそのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記入出力制御部が前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記クロック信号に応じて交互に行うことを実現する。
好ましくは、前記入出力制御部は、前記シングルポートメモリへのデータの書き込みを行うとき、前記シングルポートメモリからのデータの読み出しを待つように指示する第1のウェイト信号を外部に出力し、前記シングルポートメモリからのデータの読み出しを行うとき、前記シングルポートメモリへのデータの書き込みを待つように指示する第2のウェイト信号を外部に出力する。
本発明によるFIFOメモリによれば、回路規模が小さく、かつ安価なFIFOメモリを実現することができる。また、本発明による記憶媒体制御装置によれば、FIFOメモリを1つだけ使用する回路規模の小さい記憶媒体制御装置を実現することができる。
図1は、本発明によるFIFOメモリの構成を示すブロック図である。図1に示されるように、FIFOメモリ10は、入出力制御部12と、シングルポートメモリ14とを備える。入出力制御部12には、FIFOメモリ10の外部から、FIFOメモリ10への書き込み(ライト)を要求するWR#信号、FIFOメモリ10からの読み出し(リード)を要求するRD#信号、ライト要求の優先を指示するPRIWR信号、及びリード要求の優先を指示するPRIRD信号がそれぞれ入力される。一方、入出力制御部12からは、ライト要求に対して書き込みを待つように指示するウェイト信号(WAITWR信号)、及びリード要求に対して読み出しを待つように指示するウェイト要求を示すウェイト信号(WAITRD信号)が、FIFOメモリ10の外部に、それぞれ出力される。入出力制御部12からシングルポートメモリ14に対しては、シングルポートメモリ14へのデータライト要求信号であるWE#信号が出力される。WE#信号は、WR#信号がL(Low)レベル(アクティブ)であり、かつWAIRWRがLレベル(非アクティブ)である場合にのみ、Lレベル(アクティブ)となる。さらに、入出力制御部12、及びシングルポートメモリには、クロック信号として、CLK信号が入力される。FIFOメモリ10では、書き込み動作と読み出し動作の動作周波数は同じである。
シングルポートメモリ14には、ライト用のデータバスであるライトデータバスDATAIN、及びリード用のデータバスであるリードデータバスDATAOUTが接続される。FIFOメモリ10に書き込まれるデータは、ライトデータバスDATAINを介して、シングルポートメモリ14に送られる。一方、FIFOメモリ10から読み出されるデータは、リードデータバスDATAOUTを介して、シングルポートメモリ14から出力される。また、入出力制御部12とシングルポートメモリ14の間には、アドレスバスADDが存在する。このアドレスバスADDを介して、入出力制御部12からシングルポートメモリ14へアドレスデータが送られる。このアドレスデータは、データを書き込むシングルポートメモリ14のアドレス、及びデータを読み出すシングルポートメモリ14のアドレスを示す。
図2は、入出力制御部12の構成を示す回路図である。図2に示されるように、入出力制御部12は、入力用カウンタ22、出力用カウンタ24、マルチプレクサ(MUX)26、優先回路28、状態判断回路30、ORゲート32,34,36、NORゲート38,40,42、及びANDゲート44,46,48,50を備える。入力用カウンタ22、出力用カウンタ24、及び優先回路28には、クロック信号として、CLK信号が入力される。入力用カウンタ22、及び出力用カウンタ24は、共に、イネーブル信号入力端(EN)を有し、そのイネーブル信号入力端にアクティブなイネーブル信号が入力される毎に、1ずつカウントアップされる。入力用カウンタ22は、WR#信号及びWAITWR信号が共にLレベルにあるとき、イネーブルされてカウントアップされ、出力用カウンタ24は、RD#信号及びWAITRD信号が共にLレベルであるとき、イネーブルされてカウントアップされる。入力用カウンタ22及び出力用カウンタ24は、対応するアドレスバスIADD及びアドレスバスOADDを介して、MUX26にそれぞれ接続される。入力用カウンタ22及び出力用カウンタ24は、カウント値を示すデータを、対応するアドレスバスIADD及びアドレスバスOADDにそれぞれ出力する。MUX26は、入力用カウンタ22及び出力用カウンタ24から出力されたデータを、対応するアドレスバスIADD及びアドレスバスOADDを介して、それぞれ受け取る。MUX26は、WR#信号及びWAITWR信号が共にLレベルであるとき、すなわち、WE#信号がLレベルであるとき、アドレスバスIADDにおけるデータを選択して、それをアドレスバスADDに出力する。また、MUX26は、WE#信号がH(High)レベルであるとき、アドレスバスOADDにおけるデータを選択して、それをアドレスバスADDに出力する。
以下に、図2に示された入出力制御部12について詳細に説明する。NORゲート38には、WR#信号及びRD#信号が入力される。NORゲート38の出力信号は、ANDゲート44の非反転入力端、ANDゲート46の一方の入力端、及び優先回路28に入力される。ANDゲート44の反転入力端には、優先回路28の出力信号RDWTが入力され、ANDゲート46の他方の入力端には、優先回路28の出力信号RDWTが入力される。ANDゲート44の出力信号は、ORゲート34の一方の入力端に入力される。一方、ANDゲート46の出力信号は、ORゲート36の一方の入力端に入力される。ORゲート34の他方の入力端、及びORゲート36の他方の入力端には、状態判断回路30の各出力信号が対応して入力される。具体的には、ORゲート34の入力端には、シングルポートメモリ14がこれ以上データを記憶するための空き領域がないフル状態であるかどうかを示すFULL信号が入力され、ORゲート36の入力端には、シングルポートメモリ14がデータが存在しないエンプティ状態であるかどうかを示すEMPTY信号が入力される。FULL信号は、Hレベルであるとき、シングルポートメモリ14がフル状態であることを示し、書き込み禁止信号として作用する。また、EMPTY信号は、Hレベルであるとき、シングルポートメモリ14がEMPTY状態であることを示し、読み出し禁止信号として作用する。
状態判断回路30は、アドレスバスIADD及びアドレスバスOADDを流れるデータを検知して、FIFOメモリ(シングルポートメモリ14)がフル状態であるかどうかを示すFULL信号及びエンプティ状態であるかどうかを示すEMPTY信号をそれぞれ出力する。状態判断回路30は、下記の式(1)で示される関係が成り立つときHレベルのFULL信号を、下記の式(2)で示される関係が成り立つときHレベルのEMPTY信号を出力する。

FULL=((IADD+1)==OADD) (1)
EMPTY=(IADD==OADD) (2)

式(1)に示されるように、状態判断回路30は、アドレスバスIADDに出力されたデータ(入力用カウンタ22におけるカウント値)に1を加えた数が、アドレスバスOADDに出力されたデータ(出力用カウンタ24におけるカウント値)に等しいとき、HレベルのFULL信号を出力する。例えば、シングルポートメモリ14が0から255のアドレスを有する場合に、アドレスバスIADDに出力されたアドレスデータが255を示し、アドレスバスOADDに出力されたアドレスデータが0を示す場合等が考えられる。また、式(2)に示されるように、状態判断回路30は、アドレスバスIADDに出力されたデータが、アドレスバスOADDに出力されたデータに等しいとき、HレベルのEMPTY信号を出力する。ORゲート34の出力信号及びORゲート36の出力信号は、ANDゲート48の非反転入力端及びANDゲート50の非反転入力端にそれぞれ入力される。ANDゲート48の反転入力端及びANDゲート50の反転入力端には、上記EMPTY信号及び上記FULL信号が、それぞれ入力される。ANDゲート48の出力信号はWAITWR信号として、ANDゲート50の出力信号はWAITRD信号として、それぞれ入出力制御部12から出力される。また、上記WAITWR信号及びWAITRD信号は、NORゲート40の一方の入力端及びNORゲート42の一方の入力端に、それぞれ入力される。NORゲート40の他方の入力端には、WR#信号が入力され、NORゲート42の他方の入力端には、RD#信号が入力される。NORゲート40の出力信号は、イネーブル信号として、入力用カウンタ22に入力される。また、NORゲート42の出力信号は、イネーブル信号として、出力用カウンタ24に入力される。入力用カウンタ22は、NORゲート40の出力信号がHレベルであるとき、すなわち、WR#信号及びWAITWR信号が共にLレベルにあるとき、イネーブルされてカウントアップされる。出力用カウンタ24は、NORゲート42の出力信号がHレベルであるとき、すなわち、RD#信号及びWAITRD信号が共にLレベルであるとき、イネーブルされてカウントアップされる。一方、MUX26には、ORゲート32の出力信号が、制御信号として入力される。この制御信号は、MUX26のセレクト信号入力端(S)に入力されるセレクト信号である。ORゲート32には、WR#信号及びWAITWR信号が入力される。MUX26は、セレクト信号がLレベルであるとき、すなわち、WR#信号及びWAITWR信号が共にLレベルであるとき、アドレスバスADDに、入力用カウンタ22の出力データを出力し、セレクト信号がHレベルであるとき、アドレスバスADDに、出力用カウンタ24の出力データを出力する。
次に、優先回路28について説明する。図3は、優先回路28の構成を示す回路図である。図3に示されるように、優先回路28は、Dフリップフロップ60、Exclusive OR(以下、「Ex.OR」という。)ゲート62、及びMUX64を含む。Dフリップフロップ60には、イネーブル信号として、図2に示されたNORゲート38の出力信号であるCHG信号が入力される。CHG信号がHレベル(アクティブ)であるとき、Dフリップフロップ60は、以下の動作を行う。Dフリップフロップ60のD入力端に入力される信号は、QB出力端から出力される信号(Q出力端から出力される信号の反転信号)である。Dフリップフロップ60は、入力されるクロック信号の立ち上がりと同時に、直前にD入力端に入力された信号と同じ状態の信号を、Q出力端から出力する。Dフリップフロップ60は、イネーブル信号入力端にアクティブのイネーブル信号(CHG信号)が入力される間、入力されるクロック信号が立ち上がる度に、Q出力端から、Hレベル信号とLレベル信号を交互に出力する。Ex.ORゲート62には、PRIWR信号及びPRIRD信号が入力される。Ex.ORゲート62の出力信号は、MUX64のセレクト信号入力端(S)に、セレクト信号として入力される。MUX64は、セレクト信号がLレベルのとき、出力信号RDWTとして、フリップフロップ60の出力信号を選択して出力し、セレクト信号がHレベルのとき、出力信号RDWTとして、PRIWR信号を選択して出力する。Hレベルの出力信号RDWTは、書き込み要求の優先度が読み出し要求の優先度よりも高いことを示す。
以下に、上述のFIFOメモリ10の動作を説明する。図4は、PRIWR信号及びPRIRD信号が共にHレベル又はLレベルである場合、つまり、ライト側とリード側が同じ優先度である場合の、FIFOメモリ10の動作を示すタイミングチャートである。このとき、PRIWR信号及びPRIRD信号は、同じ信号レベルであるので、図3に示された優先回路28におけるEx.ORゲート62は、常にLレベル信号を出力し、その結果、優先回路28の出力信号RDWTは、Dフリップフロップ60のQ出力端からの出力信号に等しくなる。以下では、図4を参照して、タイミングT1から順に、FIFOメモリ10の動作を説明する。以下の説明で注目すべき動作は、タイミングT12からT16の間にWR#及びRD#信号が共にLレベルとなる場合の動作である。
まず、タイミングT1からT3の間、WR#及びRD#は共にHレベルである。つまり、FIFOメモリ10に対してリード要求もライト要求もなされていない。このとき、CHG信号は、Lレベルであり、Dフリップフロップ60のQ出力端からの出力信号、すなわち、RDWT信号は、Lレベルである。また、入力用カウンタ22、及び出力用カウンタ24は、共にカウントアップされていないので、対応するアドレスバスIADD、及びアドレスバスOADDに、それぞれデータ「00h」を出力する。状態判断回路30は、アドレスバスIADD、及びアドレスバスOADDに出力されたデータが、データ「00h」で一致するので、LレベルのFULL信号、及びHレベルのEMPTY信号を出力する。これにより、WAITWR信号がLレベルになり、WAITRD信号はHレベルとなる。さらに、WR#信号がHレベルであり、WAITWR信号がLレベルであるので、WE#信号は、Hレベルとなる。また、入力用カウンタ22、及び出力用カウンタ24は、入力されるイネーブル信号がLレベルであるので、カウントアップされない。
次に、タイミングT4において、WR#信号がLレベル(アクティブ)となり、データバスDATAINを介して、シングルポートメモリ14にデータD0が送られる。このとき、WR#信号がLレベルであるので、WE#信号がLレベル(アクティブ)になり、MUX26に入力されるセレクト信号がLレベルになる。MUX26は、セレクト信号がLレベルであるので、アドレスバスADDに、アドレスバスIADDを介して送られてきたデータを出力する。ここで、アドレスバスADDに出力されるデータは、「00h」である。すなわち、シングルポートメモリ14のアドレス「00h」に、データD0が書き込まれる。また、WR#信号がLレベルになったことにより、入力用カウンタ22に入力されるイネーブル信号がHレベルとなり、入力用カウンタ22がカウントアップされる。
さらに、タイミングT5において、WR#信号はLレベルのままであり、データバスDATAINを介して、シングルポートメモリ14にデータD1が送られる。また、タイミングT4において、入力用カウンタ22がカウントアップされているので、入力用カウンタ22から、アドレスバスIADDに、データ「01h」が出力される。WE#信号がLレベルのままであるので、MUX26は、アドレスバスADDに、アドレスバスIADDを介して送られてきたデータを出力する。すなわち、アドレスバスADDを介して、シングルポートメモリ14にアドレスデータ「01h」を出力する。これにより、シングルポートメモリ14のアドレス「01h」に、データD1が書き込まれる。また、状態判断回路30は、アドレスバスIADDを流れるデータ「01h」と、アドレスバスOADDを流れるデータ「00h」が一致しなくなったことから、シングルポートメモリ14内にデータが書き込まれたことを検知し、LレベルのEMPTY信号を出力する。これにより、ORゲート36の出力信号、及びANDゲート50の出力信号がLレベルになるので、WAITRD信号は、Lレベルとなる。また、入力用カウンタ22に入力されるイネーブル信号がHレベルであるので、入力用カウンタ22がカウントアップされる。
次に、タイミングT6において、WR#信号は再びHレベルになり、これにより、WE#信号がHレベルになる。MUX26は、セレクト信号がHレベルであるので、アドレスバスADDに、出力用カウンタ24の出力データを出力する。ここで、出力用カウンタ24はカウントアップされていないので、MUX26が、アドレスバスADDに出力するデータは、「00h」である。しかし、RD#信号がHレベル(非アクティブ)であるため、シングルポートメモリ14からデータが読み出されることはない。一方、タイミングT5で入力用カウンタ22がカウントアップされているので、入力用カウンタ22から、アドレスバスIADDに、データ「02h」が出力される。
次に、タイミングT7において、WR#信号がLレベル(アクティブ)となる。このとき、WE#信号がLレベル(アクティブ)になり、MUX26に入力されるセレクト信号がLレベルとなる。MUX26に入力されるセレクト信号がLレベルであるので、MUX26から、アドレスバスADDに、入力用カウンタ22からの出力データ、すなわち、アドレスデータ「02h」が出力される。これにより、シングルポートメモリ14のアドレス「02h」に、データD2が書き込まれる。そして、新たに入力用カウンタ22がカウントアップされる。タイミングT8において、WR#信号は再びHレベルになり、セレクト信号がHレベルになる。MUX26は、セレクト信号がHレベルであるので、アドレスバスADDに、出力用カウンタ24からの出力データを出力する。ここで、出力用カウンタ24はカウントアップされていないので、アドレスバスADDに出力されるデータは、「00h」である。一方、入力用カウンタ22から、アドレスバスIADDへは、データ「03h」が出力される。
次に、タイミングT9において、WR#信号がHレベルのままで、RD#信号がLレベル(アクティブ)になる。MUX26に入力されるセレクト信号は、Hレベルのままであるので、MUX26は、アドレスバスADDに、出力用カウンタ24の出力データを出力する。ここで、出力用カウンタ24はカウントアップされていないので、アドレスバスADDに出力されるデータは、「00h」である。このとき、シングルポートメモリ14のアドレス「00h」に記憶されたデータD0が、データバスDATAOUTに出力される。つまり、シングルポートメモリ14からデータD0が読み出される。一方、RD#信号がLレベルになると、NORゲート42の出力信号がHレベルになるので、出力用カウンタ24にアクティブなイネーブル信号が入力され、出力用カウンタ24が、カウントアップされる。
次に、タイミングT10において、RD#信号が再びHレベルになり、WR#信号がLレベルになる。このとき、MUX26に入力されるセレクト信号はLレベルになり、MUX26は、アドレスバスADDを介して、アドレスバスIADDからのデータ「03h」を出力する。これにより、シングルポートメモリ14のアドレス「03h」に、データD3が書き込まれる。また、T9において出力用カウンタ24がカウントアップされているので、出力用カウンタ22から、アドレスバスOADDに、データ「01h」が出力される。
次に、タイミングT11において、RD#信号がLレベルになり、WR#信号がHレベルになる。MUX26に入力されるセレクト信号は、Hレベルであるので、MUX26は、アドレスバスADDに、出力用カウンタ24からのデータ「01h」を出力する。よって、シングルポートメモリ14のアドレス「01h」に記憶されていたデータD1が、データバスDATAOUTに出力される。一方、RD#信号がLレベルになると、NORゲート42の出力信号がHレベルになるので、出力用カウンタ24がカウントアップされる。一方、タイミングT10において入力用カウンタ22がカウントアップされているので、入力用カウンタ22から、アドレスバスIADDに、データ「04h」が出力される。
次に、タイミングT12からT16の間のFIFOメモリ10の動作について説明する。タイミングT12からT16の間、WR#及びRD#信号は、共にLレベルである。このとき、初めてCHG信号がHレベルになり、図3に示された優先回路28のDフリップフロップ60がイネーブルされる。PRIWR信号及びPRIRD信号の信号レベルが同じであるため、MUX64に入力されるセレクト信号は常にLレベルとなる。よって、MUX64は、RDWT信号として、Dフリップフロップ60の出力信号を選択して出力する。タイミングT12では、WR#及びRD#信号が共にLレベルとなる。タイミングT12では、WR#信号がLレベルであるので、データバスDATAINを介して、シングルポートメモリ14にデータD4が送られる。しかし、CHG信号がHレベルになった瞬間、RDWT信号はLレベルに設定され、かつFULL信号及びEMPTY信号が共にLレベルであるため、WAITWR信号がHレベルとなり、ライト側が停止される。具体的には、WAITWR信号がHレベルになったことにより、MUX26に入力されるセレクト信号がHレベルになり、MUX26は、アドレスバスADDに、出力用カウンタ24からのデータを出力する。ここで、出力用カウンタ24がタイミングT11でカウントアップされているので、アドレスバスADDに、データ「02h」が出力される。これにより、シングルポートメモリ14のアドレス「02h」に記憶されたデータD2が、データバスDATAOUTに出力される。一方、RD#信号がLレベルになると、NORゲート42の出力信号がHレベルになるので、出力用カウンタ24がイネーブルされてカウントアップされる。
タイミングT13ではRDWT信号がHレベルに変化するため、WAITRD信号がHレベル(アクティブ)となり、WAITWR信号がLレベル(非アクティブ)になる。すなわち、ライト側が選択され、リード側が停止される。具体的には、WAITWR信号がLレベルになったことにより、WE#信号がLレベル(アクティブ)になり、MUX26に入力されるセレクト信号がLレベルになる。よって、MUX26は、アドレスバスADDを介して、シングルポートメモリ14に、アドレスバスIADDにおけるデータ「04h」を出力する。これにより、シングルポートメモリ14のアドレス「04h」に、データD4が書き込まれる。そして、WAITWR信号がLレベルになったことにより、入力用カウンタ22に入力されるイネーブル信号がHレベルとなり、入力用カウンタ22がカウントアップされる。同様に、タイミングT14及びT16ではライト側、タイミングT15ではリード側が停止される。ライト側が停止された場合の動作、及びリード側が停止された場合の動作の各々は、上述した動作と同様である。
タイミングT17では、RD#信号が再びHレベルになり、データの書き込みが行われる。また、タイミングT18及びT19では、RD#信号がLレベル、WR#信号がHレベルになり、データの読み出しが行われる。これらの場合のFIFOメモリの動作は上述の動作と同一である。タイミングT20以降は、RD#信号、及びWR#信号が、共にHレベル(非アクティブ)で維持される。なお、タイミングT19においてシングルポートメモリ14から書き込まれたデータが全て読み出されると、T20において、出力用カウンタ24からアドレスバスOADDに出力されたデータが「07h」となり、アドレスバスIADDにおけるデータとアドレスバスOADDにおけるデータが共に「07h」で一致するので、タイミングT20において、EMPTY信号がHレベルに変化する。
図5は、PRIWR信号がHレベルであり、かつPRIRD信号がLレベルである場合、つまり、リード側よりもライト側の優先度が高い場合の、FIFOメモリの動作を示すタイミングチャートである。このとき、PRIWR信号及びPRIRD信号の信号レベルが異なるため、図3のEx.ORゲート62は、常にHレベル信号を出力し、その結果、MUX64に入力されるセレクト信号は常にHレベルとなる。このとき、MUX64は、PRIWR信号(Hレベル)を選択して、それをRDWT信号として出力する。以下の説明において注目すべきFIFOメモリの動作は、タイミングT12からT14の間にWR#及びRD#信号が共にLレベルとなる場合の動作である。
以下に、図5を参照して、FIFOメモリ10の動作を説明する。なお、タイミングT1からT11までは、図4のタイミングチャートと同じであるので、説明を省略する。タイミングT12からT14の間、WR#及びRD#信号は共にLレベルになるので、WAITRD信号はHレベルになり、WAITRWR信号はLレベルになる。よって、タイミングT12からT14の間は、ライト側が優先され、リード側が停止される。図5に示されるように、タイミングT12からT14の間、シングルポートメモリ14のアドレス「04h」、「05h」、及び「06h」に、データD4、D5、及びD6がそれぞれ順に書き込まれる。さらに、タイミングT15からT19の間に、シングルポートメモリ14のアドレス「02h」、「03h」、「04h」、「05h」、及び「06h」から、データD2、D3、D4、D5、及びD6がそれぞれ順に読み出される。
図6は、PRIWR信号がLレベルであり、かつPRIRD信号がHレベルである場合、つまり、ライト側よりもリード側の優先度が高い場合の、FIFOメモリの動作を示すタイミングチャートである。このとき、PRIWR信号及びPRIRD信号の信号レベルが異なるため、図3のMUX64に入力されるセレクト信号は常にHレベルとなる。よって、MUX64は、PRIWR信号(Lレベル)を選択して、それをRDWT信号として出力する。以下の説明において注目すべきFIFOメモリの動作は、タイミングT12からT18の間にWR#及びRD#信号が共にLレベルとなる場合の動作である。
以下に、図6を参照して、FIFOメモリ10の動作を説明する。なお、タイミングT1からT11までは、図4のタイミングチャートと同じであるので、説明を省略する。まず、タイミングT12からT14の間にWR#及びRD#信号が共にLレベルとなる場合、RDWT信号は常にLレベルであるので、WAITRWR信号はHレベルになり、WAITRD信号はLレベルになる。このとき、MUX26に入力されるセレクト信号がHレベルになり、MUX26は、アドレスバスADDに、アドレスバスOADDからのデータを出力する。ここで、タイミングT11で出力用カウンタ24がカウントアップされているので、出力用カウンタ24から出力されるデータは、「02h」である。これにより、シングルポートメモリ14から、アドレス「02h」に記憶されたデータD2が、データバスDATAOUTに出力される。一方、RD#信号、及びWAITRD信号がLレベルであるので、出力用カウンタ24に入力されるイネーブル信号がHレベルとなり、出力用カウンタ24がカウントアップされる。同様に、タイミングT13においても、シングルポートメモリ14から、アドレス「03h」に記憶されたデータD3が、データバスDATAOUTに出力される。
以上のように、タイミングT12及びT13ではライト側が停止される。しかし、タイミングT14では、状態判断回路30が、アドレスバスIADD、及びアドレスバスOADDに出力されたデータが、データ「04h」で一致するので、シングルポートメモリ14内にリードできるデータが存在しなくなったことを検知し、EMPTY信号をHレベルにする。これによって、リード側が優先されていてもWAITRD信号がHレベルとなり、リード側が停止される。また、EMPTY信号がHレベルになったことにより、WAITWR信号がLレベルに変化し、ライト動作が実施される。具体的に、シングルポートメモリ14のアドレス「04h」に、データD4が書き込まれる。
タイミングT15では、タイミングT14でシングルポートメモリ14内にリードできるデータD4が記憶されたため、アドレスバスIADD、及びアドレスバスOADDに出力されたデータが一致しなくなり、状態判断回路30がEMPTY信号をLレベルにする。これにより、リード動作が再び実施される。以降は、ライト動作とリード動作が交互に繰り返され、最終的に、タイミングT19において、シングルポートメモリ14から、アドレス「06h」に記憶されたデータD6が、データバスDATAOUTに出力される。これ以降、WR#及びRD#信号は、共にHレベルで維持され、FIFOメモリ10の動作は変化しない。
本発明によるFIFOメモリは、書き込みと読み出しが同時に要求されても、エラーを生じることなく、ウェイト信号を出力することによって書き込み及び読み出しのいずれか一方を中止させ、他の一方を実施する。よって、書き込みと読み出しを同時に行うことができないシングルポートメモリを用いても、FIFOメモリとして動作することができる。また、本発明によるFIFOメモリには、PRIRD信号及びPRIWR信号を入力でき、それらの信号の状態を変化させることによって、リード側及びライト側の優先度を変更することができる。これにより、本発明によるFIFOメモリは、メディアの状態等によって、書き込みと読み込みの優先度を変更することができる。
本発明によるFIFOメモリは、回路規模の小さいシングルポートメモリを用いるため、FIFOメモリ全体の回路規模を小さくできる。また、本発明によるFIFOメモリは、デュアルポートメモリよりも安価なシングルポートメモリを用いるため、従来のFIFOメモリよりも安価になる。
図7は、本発明によるFIFOメモリを用いた記憶媒体制御装置の構成を示すブロック図である。図7に示されるように、記憶媒体制御装置70は、CPUやRAM等を含むシステム装置72から入力される制御信号に従って、4つのフラッシュメディア、すなわち、SDメモリカード74、メモリースティックカード76、xD−pictureTMカード78、及びコンパクトフラッシュTMカード80を制御する。ここで、SDメモリカード74、メモリースティックカード76、xD−pictureカード78、及びコンパクトフラッシュカード80の動作周波数は、それぞれ、25MHz、20MHz、15MHz、及び30MHzである。記憶媒体制御装置70は、本発明によるFIFOメモリ10、SDメモリカード74に対応するSD制御部82、メモリースティックカード76に対応するMS制御部84、xD−Pictureカード78に対応するxD制御部86、コンパクトフラッシュカード80に対応するCF制御部88、及びMUX90を備える。システム装置72と各制御部82,84,86,88は、単一のデータバス92で接続される。各制御部82,84,86,88は、その内部に、対応するフラッシュメディアの動作周波数と、システム装置72の動作周波数(30MHz)との差を補償するフリップフロップ等を用いた簡単な緩衝回路(図示せず)を有する。なお、FIFOメモリ10は、システム装置72の動作周波数で動作する。
以下に、上述の記憶媒体制御装置70の動作を説明する。システム装置72から、例えば、SDメモリカード74にデータが書き込まれるとき、システム装置72は、記憶媒体制御装置70に、書き込みを要求する制御信号、SDメモリカード74のアドレスを指定するアドレスデータ、及びSDメモリカード74に書き込むデータを出力する。また、システム装置72は、MUX90に、FIFOメモリ10に接続する制御部として、SD制御部82を選択するように指示するセレクト信号を出力する。このセレクト信号は、システム装置72から、信号線(図示せず)を通って、MUX90に直接入力される。上記制御信号、アドレスデータ、及びSDメモリカード74に書き込まれるデータは、対応する信号線(図示せず)、アドレスバス(図示せず)、及びデータバス92を通って、それぞれ全ての制御部82,84,86,88に送られる。各制御部82,84,86,88は、送られてきたアドレスデータをデコードする。対応する記憶媒体のアドレスを指定していることを検知した制御部、すなわちSD制御部82は、データバス92を通って送られてきたデータを受け取る。SD制御部82は、システム装置72によって、SDメモリカード74へのデータの書き込みが要求されると、SDメモリカード74に、書き込みを要求する制御コマンド、及びSDメモリカードのアドレスを示すアドレスデータを出力し、その一方で、システム装置72からデータバス92を通って次々と送られてくるデータを、MUX90に出力する。上述したように、MUX90には、システム装置72からSD制御部82を選択するように指示するセレクト信号が入力されているので、MUX90は、SD制御部82から入力されるデータを、FIFOメモリ10に出力する。ここで、システム装置72からSD制御部82へのデータの入力、SD制御部82からMUX26へのデータの出力、及びMUX90からFIFOメモリ10へのデータの入力は、30MHzの動作周波数で実施される。SD制御部82は、SDメモリカード74から書き込みの要求を承諾することを示す信号が入力されると、FIFOメモリ10からデータを順次読み出して、そのデータをSDメモリカード74に転送する。このとき、SD制御部82は、緩衝回路を用いることにより、30MHzの動作周波数でFIFOメモリ10からデータを読み出し、そのデータを25MHzの動作周波数でSDメモリカード74に出力する。
さらに、システム装置70からSD制御部82には、制御信号と共に、FIFOメモリ10に対してライト要求の優先を指示する信号、及びリード要求の優先を指示する信号が入力される。SD制御部82は、それらを、適切なPRIWR信号及びPRIRD信号に変換して、FIFOメモリ10に出力する。また、FIFOメモリ10から出力されるWAITWR信号、及びWAITRD信号は、SD制御部82に入力される。SD制御部82は、WAITWR信号、又はWAITRD信号が入力されると、書き込みを待つように指示するウェイト信号、又は読み出しを待つように指示するウェイト信号を、SDメモリカード74及びシステム装置72に出力する。
なお、システム装置72から記憶媒体制御装置70への制御信号及びデータの入力方法は、上述したものに限られない。例えば、システム装置70は、各制御部82,84,86,88にイネーブル信号を出力し、アドレスデータの代わりにそのイネーブル信号によって、排他的に動作する制御部を指定してもよい。また、PRIWR信号、PRIRD信号は、システム装置70からFIFOメモリ10に直接入力されてもよい。
記憶媒体制御装置70は複数の記憶媒体を制御するが、システム装置72と記憶媒体御装置70との間には1つのデータバスしか存在しないため、一定のデータ量のデータ転送が終了するまでは、システム装置に対して1つの選択された記憶媒体しか動作できない。よって、図7に示すように、各々のフラッシュメディアに対応する制御部82,84,86,88とFIFOメモリ10との間にMUX90を設けて、そのMUX90により、複数の制御部82,84,86,88のうち1つを選択して、その選択された制御部とFIFOメモリとを接続する。
従来の構成に従うと、例えば、4種類のフラッシュメディアを制御する記憶媒体制御装置は、8個のFIFOメモリを含み、そのLSIのチップサイズが非常に大きかった。しかし、図7で示されるような構成に従えば、1つのFIFOメモリを用いて複数のメディアを制御できるので、記憶媒体制御装置の回路規模を飛躍的に減少でき、そのLSIのチップサイズも低減できる。
なお、上述の記憶媒体制御装置は、フラッシュメディアインタフェースLSIとして、パーソナルコンピュータ(以下、「PC」という。)と、PCに設けられたカードスロットに挿入されるフラッシュメディアカードとの間のデータのやりとりに利用されるように、PC内部の制御デバイスに組み込まれてもよい。また、上述の記憶媒体制御装置は、PC周辺機器に組み込まれてもよい。
本発明によるFIFOメモリの構成を示すブロック図である。 入出力制御部の構成を示す回路図である。 優先回路の構成を示す回路図である。 ライト側とリード側が同じ優先度である場合の、FIFOメモリの動作を示すタイミングチャートである。 リード側よりもライト側の優先度が高い場合の、FIFOメモリの動作を示すタイミングチャートである。 ライト側よりもリード側の優先度が高い場合の、FIFOメモリの動作を示すタイミングチャートである。 本発明によるFIFOメモリを用いた記憶媒体制御装置の構成を示すブロック図である。 従来のFIFOメモリの構成を示すブロック図である。 従来のFIFOメモリを用いた記憶媒体制御装置のブロック図である。
符号の説明
10 FIFOメモリ
12 入出力制御部
14 シングルポートメモリ
22 入力用カウンタ
24 出力用カウンタ
26 マルチプレクサ(MUX)
28 優先回路
30 状態判断回路

Claims (5)

  1. データの書き込みと読み出しが行われるシングルポートメモリと、
    外部から入力される複数の制御信号に応じて、前記シングルポートメモリへのデータの書き込み、又は前記シングルポートメモリからのデータの読み出しを制御する入出力制御部と
    を備え、
    前記入出力制御部は、
    前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しに対する優先度が指示された場合に、前記優先度に従って、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのいずれか一方を行い、
    更に、前記入出力制御部は、外部から入力された単一のクロック信号に同期して動作し、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記クロック信号に応じて交互に行う、先入れ先出しメモリにおいて、
    前記入出力制御部は、
    前記クロック信号に基づいて所定のカウント動作を行い、そのカウント値を示す信号を生成して出力する入力用カウンタと、
    前記クロック信号に基づいて所定のカウント動作を行い、そのカウント値を示す信号を生成して出力する出力用カウンタと、
    前記入力用カウンタと前記出力用カウンタのいずれか一方の出力信号を排他的に選択して出力する選択回路部と、
    前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度が指示された場合に、その優先度に応じて、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのどちらを優先するかを指示する優先信号を生成して出力する優先回路部と、
    前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求された場合に、前記優先信号に応じて、前記入力用カウンタ、前記出力用カウンタ、及び前記選択回路部を制御する制御回路部と
    を備え、
    前記制御回路部は、
    前記優先信号が、前記シングルポートメモリへのデータの書き込みを優先することを示している場合、前記入力用カウンタにカウント動作を行わせると共に、前記選択回路部に前記入力用カウンタの出力信号を排他的に選択して出力させ、
    前記優先信号が、前記シングルポートメモリへのデータの読み出しを優先することを示している場合、前記出力用カウンタにカウント動作を行わせると共に、前記選択回路部に前記出力用カウンタの出力信号を排他的に選択して出力させ、
    更に、前記優先回路部は、
    前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みをデータの読み出しよりも優先するように指示された場合に、前記シングルポートメモリへのデータの書き込みを優先するように指示する優先信号を出力し、
    前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの読み出しをデータの書き込みよりも優先するように指示された場合に、前記シングルポートメモリからのデータの読み出しを優先するように指示する優先信号を出力し、
    前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合に、前記シングルポートメモリへのデータの書き込みを優先するように指示する優先信号と、前記シングルポートメモリからのデータの読み出しを優先するように指示する優先信号とを、前記クロック信号に応じて交互に出力し、
    更に、前記優先回路部は、
    前記シングルポートメモリに対するデータの書き込みを要求する信号とデータの読み出しを要求する信号とを入力するNORゲートの出力信号をイネーブル信号入力端として、該イネーブル信号がアクティブであるとき入力される前記クロック信号が立ち上がる毎にHレベルとLレベルを交互に出力するDフリップフロップを有することにより、前記制御信号によって前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共にそのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記入出力制御部が前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記クロック信号に応じて交互に行うことを実現する
    ことを特徴とする先入れ先出しメモリ。
  2. 前記入出力制御部は、前記シングルポートメモリへのデータの書き込みを行うとき、前記シングルポートメモリからのデータの読み出しを待つように指示する第1のウェイト信号を外部に出力し、前記シングルポートメモリからのデータの読み出しを行うとき、前記シングルポートメモリへのデータの書き込みを待つように指示する第2のウェイト信号を外部に出力することを特徴とする請求項1に記載の先入れ先出しメモリ。
  3. 前記入出力制御部は、前記入力用カウンタの出力信号、及び前記出力用カウンタの出力信号を用いて、前記シングルポートメモリ内のデータ量を検知し、前記シングルポートメモリにデータを記憶するための空き容量がない場合に書き込み禁止信号を出力し、前記シングルポートメモリにデータが存在しない場合に読み出し禁止信号を出力する状態判断回路部を備え、
    前記制御回路部は、前記書き込み禁止信号及び前記読み出し禁止信号並びに前記優先信号に応じて、前記入力用カウンタ及び前記出力用カウンタをそれぞれ制御することを特徴とする請求項2に記載の先入れ先出しメモリ。
  4. システム装置から入力される複数の制御信号に従って複数の記憶媒体を制御する記憶媒体制御装置であって、
    単一の先入れ先出しメモリと、
    前記制御信号に応じて、対応する前記記憶媒体をそれぞれ制御する各制御部と、
    前記制御信号に応じて、前記各制御部のうち1つを選択し、その選択された制御部を前記先入れ先出しメモリに接続する選択回路部と
    を備え、
    前記先入れ先出しメモリは、
    データの書き込みと読み出しが行われるシングルポートメモリと、
    前記制御信号に応じて、前記シングルポートメモリへのデータの書き込み、又は前記シングルポートメモリからのデータの読み出しを制御する入出力制御部と
    を備え、
    前記入出力制御部は、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しに対する優先度が指示された場合に、前記優先度に従って、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しのいずれか一方を行い、
    更に、前記入出力制御部は、外部から入力された単一のクロック信号に同期して動作し、前記制御信号によって、前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共に、そのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記クロック信号に応じて交互に行う、記憶媒体制御装置において、
    前記入出力制御部は、更に、
    前記シングルポートメモリに対するデータの書き込みを要求する信号とデータの読み出しを要求する信号とを入力するNORゲートの出力信号をイネーブル信号入力端として、該イネーブル信号がアクティブであるとき入力される前記クロック信号が立ち上がる毎にHレベルとLレベルを交互に出力するDフリップフロップを有することにより、前記制御信号によって前記シングルポートメモリに対するデータの書き込みと読み出しが同時に要求されると共にそのデータの書き込みと読み出しの優先度を同じにするように指示された場合、前記入出力制御部が前記シングルポートメモリへのデータの書き込みと前記シングルポートメモリからのデータの読み出しを、前記クロック信号に応じて交互に行うことを実現する
    記憶媒体制御装置。
  5. 前記入出力制御部は、前記シングルポートメモリへのデータの書き込みを行うとき、前記シングルポートメモリからのデータの読み出しを待つように指示する第1のウェイト信号を外部に出力し、前記シングルポートメモリからのデータの読み出しを行うとき、前記シングルポートメモリへのデータの書き込みを待つように指示する第2のウェイト信号を外部に出力することを特徴とする請求項4に記載の記憶媒体制御装置。
JP2004168685A 2004-06-07 2004-06-07 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置 Expired - Fee Related JP4346506B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004168685A JP4346506B2 (ja) 2004-06-07 2004-06-07 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004168685A JP4346506B2 (ja) 2004-06-07 2004-06-07 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置

Publications (2)

Publication Number Publication Date
JP2005346637A JP2005346637A (ja) 2005-12-15
JP4346506B2 true JP4346506B2 (ja) 2009-10-21

Family

ID=35498923

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004168685A Expired - Fee Related JP4346506B2 (ja) 2004-06-07 2004-06-07 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置

Country Status (1)

Country Link
JP (1) JP4346506B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101438242B (zh) * 2006-03-30 2013-09-18 晶像股份有限公司 共享非易失性存储器体系结构
JP4835935B2 (ja) * 2007-01-05 2011-12-14 横河電機株式会社 データ転送回路および半導体試験装置
JPWO2008087779A1 (ja) * 2007-01-19 2010-05-06 日本電気株式会社 アレイ型プロセッサおよびデータ処理システム
US8156264B2 (en) * 2009-04-03 2012-04-10 Analog Devices, Inc. Digital output sensor FIFO buffer with single port memory
KR20130102393A (ko) 2012-03-07 2013-09-17 삼성전자주식회사 Fifo 메모리 장치 및 이를 포함하는 전자 장치

Also Published As

Publication number Publication date
JP2005346637A (ja) 2005-12-15

Similar Documents

Publication Publication Date Title
US5673396A (en) Adjustable depth/width FIFO buffer for variable width data transfers
US6134638A (en) Memory controller supporting DRAM circuits with different operating speeds
JP4805351B2 (ja) Dramの並列処理を向上するシステム及び方法
WO2009067522A2 (en) A memory buffering system that improves read/write performance and provides low latency for mobile systems
US20020184453A1 (en) Data bus system including posted reads and writes
CN101398793A (zh) 存储器控制设备和半导体处理装置
WO2005073864A1 (en) A method and apparatus to manage memory access requests
JP2002132701A (ja) メモリ制御装置
US6782433B2 (en) Data transfer apparatus
JP4346506B2 (ja) 先入れ先出しメモリ及びそれを用いた記憶媒体制御装置
JP4693843B2 (ja) メモリ制御装置及びメモリ制御方法
US8244929B2 (en) Data processing apparatus
JP5829106B2 (ja) 信号転送回路
US20100002099A1 (en) Method and apparatus for sharing memory
JP4192171B2 (ja) メモリアクセス方法及びメモリアクセス装置
JP3618249B2 (ja) データ転送装置
JP3599692B2 (ja) データ伝送装置
JP2009037639A (ja) ストリーミングidメソッドによるdmac発行メカニズム
CN111556994B (zh) 命令控制系统、车辆、命令控制方法及非瞬态计算机可读介质
KR950000125B1 (ko) 듀얼 포트램을 이용한 at-버스와 입출력 콘트롤러 프로세서의 인터페이스 회로
US6651114B1 (en) DMA controller which optimizes transfer rate of data and method therefor
JP2000215154A (ja) Dmaコントロ―ラ
JP4549073B2 (ja) メモリ制御回路
EP1067555B1 (en) Memory controller and an information processing apparatus having such a memory controller
CN115525586A (zh) 一种ddr扩展装置及控制方法、装置、介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060825

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080131

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080826

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090119

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090714

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees