JP3308912B2 - Fifoメモリ装置とその制御方法 - Google Patents

Fifoメモリ装置とその制御方法

Info

Publication number
JP3308912B2
JP3308912B2 JP25340998A JP25340998A JP3308912B2 JP 3308912 B2 JP3308912 B2 JP 3308912B2 JP 25340998 A JP25340998 A JP 25340998A JP 25340998 A JP25340998 A JP 25340998A JP 3308912 B2 JP3308912 B2 JP 3308912B2
Authority
JP
Japan
Prior art keywords
data
value
output
memory device
read
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
JP25340998A
Other languages
English (en)
Other versions
JP2000089932A (ja
Inventor
周治 松尾
公一 北村
勝春 千葉
Original Assignee
エヌイーシーマイクロシステム株式会社
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 エヌイーシーマイクロシステム株式会社 filed Critical エヌイーシーマイクロシステム株式会社
Priority to JP25340998A priority Critical patent/JP3308912B2/ja
Priority to US09/387,450 priority patent/US6681314B1/en
Priority to TW088115441A priority patent/TW440867B/zh
Priority to KR1019990037688A priority patent/KR100339258B1/ko
Priority to EP99117422A priority patent/EP0986005A1/en
Publication of JP2000089932A publication Critical patent/JP2000089932A/ja
Application granted granted Critical
Publication of JP3308912B2 publication Critical patent/JP3308912B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Communication Control (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、FIFOメモリ装
置とその制御方法に係わり、特に、異なるデータバス幅
を有するデータ処理装置間のデータ転送に好適なFIF
Oメモリ装置とその制御方法に関する。
【0002】
【従来の技術】異なるデータバス幅を有するデータ処理
装置間のデータ転送に用いられるFIFOメモリ装置と
しては、例えば、特開平4−64988号公報に示され
ているようなFIFOメモリが知られている。図16に
そのブロック図を示したが、この図には、kビット書き
込み、(N×k)ビットを読み出すことを可能にした装
置が示されている。
【0003】しかし、上記したものは、入力ポートと出
力ポートから同時にメモリをアクセスされないように調
停機能を有している。この為、データの高速処理に不向
きであるという欠点があった。
【0004】
【発明が解決しようとする課題】本発明の目的は、上記
した従来技術の欠点を改良し、特に、バス・アービトレ
ーションを行うことなく、同時に書込み、読出しを可能
にすると共に、データのスキップ書込み、二重読出し等
を防止して、高速なデータ転送に好適なFIFOメモリ
装置とその制御方法を提供するものである。
【0005】
【課題を解決するための手段】本発明は上記した目的を
達成するため、基本的には、以下に記載されたような技
術構成を採用するものである。即ち、本発明に関わるF
IFOメモリ装置の第1態様は、異なるデータバス幅を
有するデータ処理装置間のデータ転送に用いられるFI
FOメモリ装置において、データバス幅がkビット(k
は2以上の整数)のデータ入力線と、前記FIFOメモ
リ装置内のメモリの読出しデータを出力するデータバス
幅がN×kビット(Nは2以上の整数)のデータ出力線
と、前記メモリへのデータの書込みアドレスを示すライ
トポインタと、前記メモリからのデータの読出しアドレ
スを示すリードポインタと、常に前記データ出力線に出
力される前記リードポインタで示されるアドレスのデー
タが有効であるか否かを、前記リードポインタの内容
と、前記ライトポインタの内容と、書き込み要求信号
と、読み出し要求信号とに基づいてkビット単位で判定
し、kビット単位で前記FIFOメモリ装置外部に通知
する有効・無効判定回路とを含むことを特徴とするもの
であり、又、第2態様は、前記メモリを満杯に書き込ん
だ状態を検出するFull検出回路を設け、前記Ful
l検出回路が前記メモリ回路に満杯に書き込んだ状態を
検出した時は、前記メモリへの書き込みを禁止するよう
に構成したことを特徴とするものであり、又、第3態様
は、前記リードポインタの値は、前記有効・無効表示回
路の出力するフラグ信号の全てのビットが有効であるこ
とを示す時のみ、インクリメントされるように構成され
ることを特徴とするものである。
【0006】又、本発明に関わるFIFOメモリ装置の
制御方法の第1態様は、データの書込みアドレスを示す
ライトポインタと、データの読出しアドレスを示すリー
ドポインタと、kビット(kは2以上の整数)の入力デ
ータバス幅を有するデータ入力線と、N×kビット(N
は2以上の整数)の出力データバス幅を有するデータ出
力線とを含む、異なるデータバス幅を有するデータ処理
装置間のデータ転送に用いられるFIFOメモリ装置の
制御方法において、前記リードポインタで示されるアド
レスのデータが、常に、前記データ出力線から出力され
ると共に、前記データ出力線から出力されるデータが有
効であるか否かを、前記リードポインタの内容と、前記
ライトポインタの内容と、書き込み要求信号と、読み出
し要求信号とに基づいてkビット単位で判定し、kビッ
ト単位で前記FIFOメモリ装置外部に通知することを
特徴とするものである。
【0007】
【発明の実施の形態】本発明に係わるFIFOメモリ装
置は、データの書込みアドレスを示すライトポインタ
と、データの読出しアドレスを示すリードポインタとを
備え、異なるデータバス幅を有するデータ処理装置間の
データ転送に用いられるFIFOメモリ装置において、
前記リードポインタで示されるアドレスのデータが、常
に、出力回路に出力されることを特徴とするものである
から、データバス幅が異なるデータの転送でも、高速な
データ転送を可能にした。
【0008】しかも、従来のように、バス・アービトレ
ーションを行うことなく、簡単な回路構成で、データの
スキップ書込み、二重読出し等を防止した。
【0009】
【実施例】以下に、本発明に係わるFIFOメモリ装置
とその制御方法の具体例を図面を参照しながら詳細に説
明する。 (第1の具体例)図1(a)は、本発明に係わるFIF
Oメモリ装置の具体例の構造を示す図であって、図1
(a)には、異なるデータバス幅を有するデータ処理装
置間のデータ転送に用いられるFIFOメモリ装置にお
いて、前記FIFOメモリ装置のデータバス幅がkビッ
トの入力回路11と、前記FIFOメモリ内の読出しデ
ータを出力するデータバス幅がN×kビット(N>1以
上の整数)の出力回路12と、前記FIFOメモリ1の
データの書込みアドレスを示すライトポインタ2と、前
記FIFOメモリ1のデータの読出しアドレスを示すリ
ードポインタ4と、前記出力回路12に出力されたデー
タが有効であるか否かを示す有効・無効表示回路6とで
構成したFIFOメモリ装置が示され、又、前記リード
ポインタ4で示されるアドレスのデータが、常に、前記
出力回路3に出力されるFIFOメモリ装置が示され、
更に、前記出力回路3にデータを出力する毎に、前記有
効・無効表示回路6は、読み出したデータが有効である
か否かを示すフラグ信号を出力し、且つ、kビット毎に
一つのフラグ信号14を出力するFIFOメモリ装置が
示されている。
【0010】なお、図10に、説明を解りやすくするた
め、メモリの数を22 ×22 とした場合のライトポイン
タが示すメモリ上の位置と、リードポインタが示す位置
を図示した。ライトポインタ2は、書込要求信号に基づ
きインクリメントされ、図の左下(WP=0の位置)か
ら順に図の右上(WP=15の位置)にデータが書込ま
れる。従って、ライトポインタは、書込み可能なメモリ
のアドレスを示している。一方、リードポインタ4は、
読出しの都度インクリメントされ、読出しされるとポイ
ンタ4値がインクリメントされ、次の読出し点を示して
いる。なお、この図の場合、左から右迄の1列の4ブロ
ックが一度に読み出されるようになっている。
【0011】以下に、本発明を更に詳細に説明する。図
1のFIFOメモリ装置は、2m 行×2n 列から構成さ
れる(2m ×2n ×k)ビットのメモリ容量を有するR
AMセル1と、このRAMセル1のアドレスにkビット
のデータを書き込むデータ入力線DATAIN11と、
上記RAMセル1への書き込みアドレスを1づつ増加さ
せる(m+n)ビットのライトポインタ(以下、WPと
称す)2と、(N(N=2m )×k)ビットのデータ出
力線DATAOUT12と、上記RAMセル1のアドレ
スを選択し、(N×k)ビットのデータを上記データ出
力線DATAOUT12に出力するデータ出力回路3
と、このデータ出力回路3の切り替えを1づつ増加させ
る(n)ビットのリードポインタ(以下、RPと称す)
と、上記RAMセル1を満杯に書込んだ状態を検出する
Full検出回路5と、このFull検出回路5から供
給される1ビットの出力線(以下、Fullフラグと称
す)と、上記出力線DATAOUT12に出力されてい
るデータが有効か無効かを判断するValid判定回路
(有効・無効表示回路)6と、このValid判定回路
6から出力されるN(N=2m )ビットの出力(以下、
Validフラグと称す)14とを有する。
【0012】このFIFOメモリ装置のRESET信号
(以下、RESETと称す)は上記WP2、RP4、F
ull検出回路5及びValid判定回路(有効・無効
表示回路)6に供給され、それぞれの回路をイニシャラ
イズする。さらに、このFIFOメモリ装置の書込み
は、クロック信号(以下、CLKと称す)と書込要求信
号(以下、WRBと称す)により、上記WP2に保持さ
れている値の示す上記RAMアドレスに上記データ入力
線DATAIN11のデータを書き込み、その後、WP
の値を1つ増加させる。
【0013】読出しは、上記RP4に保持されている値
に基づき(N×k)ビットデータが選択され、上記出力
データ線DATAOUT12に(N×k)ビットのデー
タが出力され、上記CLKと読出要求信号(以下、RD
Bと称す)により、RPの値を1つ増加させ、次の(N
×k)ビットデータに切り替える。Full検出回路5
は、1ビットの出力を持ちFullフラグに供給され、
WP2とRP4との関係で以下の条件が成り立つ時にセ
ットされ、又、RAMセル1の満杯を検出する。
【0014】RPが0の時、WP=2m+n −1 RPが0以外の時、WP=RP×2m −1 更に、本発明に従って設けられたValid判定回路6
は、N(N=2m )ビットの出力を持ちValidフラ
グに供給され、WP2とRP4との関係で以下の条件が
成り立つ時にセット又はリセットされ、上記データ出力
線DATAOUT12に出力されているデータが有効か
無効か判断する。
【0015】Validフラグは複数ビットで、それぞ
れ1ビットは(2m −b(bは1から2m −1まで))
ビットで全Nビットを表すことができる。 (2m −b)のセット条件、WP≧(RP×2m )+
(2m −b) (2m −b)のリセット条件、RPが(2n −1)の
時、WP≦(2m −b) RPが(2n −1)以外の時、WP≦((RP+1)×
m )+(2m −b) 次に、前述した書き込み動作の流れを図2に示す。RE
SETされるとWP2は0となり(ステップS1)、書
込要求がある時、Fullフラグが‘0’ならば書込可
能であるから(ステップS2,S3)、RAMセル1に
入力データを書き込み、WP2の値を1増加させる(ス
テップS4)。
【0016】図1のWP2は、アップカウンタであり、
図3に詳細な構成を示す。RESET=‘1’の時アッ
プカウンタはイニシャライズされ、WP2の出力には0
が出力される。WRB=‘0’,Fullフラグ=
‘0’の時、CLKの立ち上がりエッジによってアップ
カウンタはインクリメントされ、WP2の出力は1にな
る。
【0017】また、WP=2m+n −1が選択されている
時(図10でWP=15の時)、WRB=‘0’,Fu
llフラグ=‘0’ならば、CLKの立ち上がりエッジ
でインクリメントされ、WP2の出力は0に戻る。これ
以外はインクリメントされない。かくして、前述した処
理を実行する。次に、前述した読み出し動作の流れを図
4に示す。RESETされるとRP4は0となり(ステ
ップS5)、読み出し要求がある時、Validフラグ
の最上位ビットが‘1’ならば(ステップS6,S
7)、RP4の値を1増加し、データ出力線12に読み
出したデータを出力する。
【0018】図1のRP4は、アップカウンタであり、
図5に詳細な構成を示す。RESET=‘1’の時アッ
プカウンタはイニシャライズされ、RP4の出力は0に
なる。RDB=‘0’,Validフラグの最上位のビ
ットの値=‘1’の時CLKの立ち上がりエッジによっ
てアップカウンタはインクリメントされ、RP4の出力
は、1になる。
【0019】また、RP=(2n −1)が選択されてい
る時(図10でRP=3の時)、RDB=‘0’,Va
lidフラグの最上位のビットの値=‘1’ならばCL
Kの立ち上がりエッジでインクリメントされ、RPの出
力は0に戻る。これ以外はインクリメントされない。か
くして、前述した処理を実行する。次にFull検出回
路5とFullフラグの動作の流れを図6に示す。
【0020】RESETされるとFullフラグは0と
なり、又、読み出し要求があると、Fullフラグはリ
セットされ、0になる(ステップS31,S32)。ま
た、RP4の値が0で書込要求がある時(ステップS3
3,S34)、WPの値が(2m+n −1)ならばFul
lフラグはセットされ、1となる(ステップS35,S
36)。
【0021】RP4の値が0以外で書込要求があると
き、WPの値が(RP×2m −1)ならばFullフラ
グはセット(1となる)される(ステップS34,S3
7)。図1のFull検出回路5は、図7のように構成
されている。RESET=‘1’の時Fullフラグは
‘0’となり、前述した条件が成り立つ時、WRB=
‘0’で、CLKの立ち上がりエッジによってFull
フラグは‘1’となる。RDB=‘0’で、CLKの立
ち上がりエッジによってFullフラグは‘0’とな
る。かくして、前述した処理を実行する。
【0022】前述したValid判定回路6とVali
dフラグの動作の流れを図8に示す。図8を説明するに
あたり、図10(b)のRAMセルとWP,RPを例
に、又、Validフラグは4ビットとして説明する。
RESETされるとValidフラグは0000とな
り、書き込み要求があり、WPの値を2m (2m =4)
=4で割った値からRPの値を引いた差が0の時、WP
の値を2m (2m =4)=4で割った余りによってVa
lidフラグはセット(それぞれのビットが1となる)
される(ステップS11〜S17)。
【0023】また、読み出し要求があると、WPの値を
m (2m =4)=4で割った値からRPの値を引いた
差が1か−3の時、WPの値を2m (2m =4)=4で
割った余りによってValidフラグはリセット(それ
ぞれのビットが0となる)される(ステップS21〜S
27)。Valid判定回路6は、図9のように構成さ
れている。
【0024】同図において、RESET=‘1’の時、
Validフラグは‘0’となり、前述したセット条件
が成り立つ時WRB=‘0’で、CLKの立ち上がりエ
ッジによってValidフラグは‘1’となる。また前
述したリセット条件が成り立つ時、RDB=‘0’で、
CLKの立ち上がりエッジによってValidフラグは
‘0’となる。かくして、前述した処理を実行する。
【0025】データ出力回路3はRAMセル1のN(N
=2m )個アドレスを選択し、選択されたkビットのデ
ータをN(N=2m )個縦列接続し、(N×k)ビット
のデータとしてデータ出力線12に出力する。RAMセ
ル1は、当業者にとってよく知られており、また本発明
とは直接関係しないので、その詳細な構成は省略する。
【0026】以下、本具体例として、入力データが8ビ
ット、出力データが32ビット、4ビット行×4ビット
列の16ワードからなるRAMセル1を有するFIFO
メモリ装置の動作について説明する。まず、図10に示
すFIFOメモリ装置の構成を具体的に説明する。1は
RAMセルで、2m 行×2n 列から形成される(4×4
×8(k=8))ビットのメモリ容量を有している。
【0027】7は書込要求信号WRB、8は読出要求信
号RDB、9はクロック信号(CLK)、10はリセッ
ト信号RESET、11はデータ入力線で、k(この例
では、k=8)ビットデータDATA0〜DATA7の
データ入力を取り扱い、12はデータ出力線で、この例
では(N×k)=4×8=32ビットのデータDOUT
0〜DOUT31を出力するものである。13はFul
lフラグで、1ビットの信号を備えている。
【0028】14は上記データ出力線12の32ビット
のデータが有効であるか否かを示す(N=4)ビットの
Validフラグで、この例ではDOUT0〜DOUT
7に対応するValid0フラグ、DOUT8〜DOU
T15に対応するValid1フラグ、DOUT16〜
DOUT23に対応するValid2フラグ、DOUT
24〜DOUT31に対応するValid3フラグ(最
上位ビットのフラグ)を備えている。
【0029】2は(m+n)=2+2=4ビットのアッ
プカウンタとしてのライトポインタ即ち、16進アップ
カウンタで、上記RAMセル1への書込みアドレスを1
ずつ増加させるものである。3は上記RAMセル1のア
ドレスを1列(1列=2m (2m =4))個選択し、選
択した下位アドレスからの8ビットデータを4個縦列接
続するデータ出力回路で、データ出力回路3はRAMセ
ル1の n 列(2n (2n =4))個あり、選択したデ
ータを上記データ出力線12に出力する。
【0030】4はn(=2)ビットのアップカウンタと
してのリードポインタ、即ち、4進アップカウンタで、
上記データ出力回路3の選択データの切り替えを行うも
のである。5はRAMセル1の書込みアドレスの満杯を
検出するFull検出回路で、この例では、上記RP4
の値が0で上記WP2の値が15の場合か、又は、上記
WP2の値から上記RP4の値×2m (2m =4)を引
いた差が−1の場合、上記WRB7が‘0’の時、上記
CLK9の立ち上がりエッジで上記Fullフラグ13
に‘1’を出力するものである。
【0031】そして、RDB8が‘0’の時、上記CL
K9の立ち上がりエッジにより上記Fullフラグ13
の値を‘0’にする。6はデータ出力線12の32ビッ
トのデータが有効であるか否かを判断するValid判
定回路で、この例では、WP2の値を2m (2m =4)
=4で割った値から上記RP4の値を引いた差が0で、
且つ、その余りが0ならば、WRB7が‘0’の時、C
LK9の立ち上がりエッジでValidフラグ14に
“0001”を出力し、余りが1ならばValidフラ
グ14に“0011”を、余りが2ならばValidフ
ラグ14に“0111”を、余りが3ならばValid
フラグ14に“1111”を、WRB7が‘0’の時、
CLK9の立ち上がりエッジによりこれらを出力する。
【0032】またWP2の値を2m (2m =4)=4で
割った値からRP4の値を引いた差が1か−3で、且
つ、その余りが0ならばRDB8が‘0’の時、CLK
9の立ち上がりエッジでValidフラグ14に“00
00”を出力し、余りが1ならばValidフラグ14
に“0001”を、余りが2ならばValidフラグ1
4に“0011”を、余りが3ならばValidフラグ
14に“0111”を、RDB8が‘0’の時、CLK
9の立ち上がりエッジによりこれらを出力する。
【0033】書込み動作、読出し動作、Validフラ
グ14の動作は、図11のタイミング図に従って実行さ
れる。次に、図11について詳しく説明する。書込み
は、t2からt20まで行っている。t2で“a”デー
タを書き込む。この時、上記WP2の値0を2m (2m
=4)=4で割った値0から上記RP4の値0を引いた
差が0であり、上記WP2の値0を2m =4で割った余
りが0なので、Validフラグ14は“0001”と
なる。WP2が1となり、データ出力線12には“a”
が出力される。
【0034】t3で“b”データを書き込む。この時、
WP2の値1を2m =4で割った値0からRP4の値0
を引いた差が0であり、WP2の値1を2m =4で割っ
た余りが1なので上記Validフラグ14は“001
1”となる。WP2が2となり、上記データ出力線12
には“ab”が出力されている。t4で“c”データを
書き込む。この時、WP2の値2を2m =4で割った値
0から上記RP4の値0を引いた差が0であり、WP2
の値2を2m =4で割った余りが2なので、Valid
フラグ14は“0111”となる。WP2が3となり、
上記データ出力線12には“abc”が出力されてい
る。
【0035】t5で“d”データを書き込む。この時、
WP2の値3を2m =4で割った値0からRP4の値0
を引いた差が0であり、WP2の値3を2m =4で割っ
た余りが3なので、Validフラグ14は“111
1”となる。WP2が4となり、データ出力線12には
“abcd”が出力されている。出力32ビットのデー
タが全て揃い、上記Validフラグ14が“111
1”なので、この出力データ32ビットは有効であると
判断される。ここで初めて読み出しが可能な状態とな
る。
【0036】t6で“e”データを書き込み、WP2が
5となる。上記データ出力線12には“abcd”が出
力されている。t7で“f”データを書き込み、WP2
が6となる。データ出力線12には“abcd”が出力
されている。t8で読出要求信号RDBが0となり、読
み出しが行われる。この時、RP4の値が1となり、上
記データ出力回路3のデータが切り替わり、データ出力
線12には“efg”が出力される。同時に“g”デー
タを書き込む。この時、WP2の値6を2m =4で割っ
た値1からRP4の値1を引いた差が0であり、WP2
の値6を2m =4で割った余りが2なので、Valid
フラグ14は“0111”となる。そして、WP2の値
が7となる。
【0037】t9で“h”データを書き込む。この時、
WP2の値7を2m =4で割った値1からRP4の値1
を引いた差が0であり、WP2の値7を2m =4で割っ
た余りが3なので、Validフラグ14は“111
1”となり、出力された32ビットデータ“efgh”
が有効になる。そして、WP2の値が8となる。t10
で読み出しが行われ、RP4の値が2となり、同時に
“i”データを書き込む。この時、WP2の値8を2m
=4で割った値2から上記RP4の値2を引いた差が0
であり、WP2の値8を2m =4で割った余りが0なの
で、Validフラグ14は“0001”となる。デー
タ出力線12には“i”が出力されている。そして、W
P2の値が9となる。
【0038】t11で“j”データを書き込む。この
時、WP2の値9を2m =4で割った値2から上記RP
4の値2を引いた差が0であり、WP2の値9を2m
4で割った余りが1なのでValidフラグ14は“0
011”となる。そして、WP2が10となり、データ
出力線12には“ij”が出力されている。t12で
“k”データを書き込む。この時WP2の値10を2m
=4で割った値2からRP4の値2を引いた差が0であ
り、WP2の値10を2m =4で割った余りが2なの
で、Validフラグ14は“0111”となる。そし
て、WP2が11となり、データ出力線12には“ij
k”が出力されている。
【0039】t13で“l”データを書き込む。この
時、WP2の値11を2m =4で割った値2からRP4
の値2を引いた差が0で、WP2の値11を2m =4で
割った余りが3なので、Validフラグ14は“11
11”となる。WP2が12となり、データ出力線12
には“ijkl”が出力されている。t14で読み出し
が行われ、RP4の値が3となり、同時に“m”データ
を書き込む。この時、WP2の値12を2m =4で割っ
た値3から上記RP4の値3を引いた差が0であり、W
P2の値12を2m =4で割った余りが0なので、Va
lidフラグ14は“0001”となる。データ出力線
12には“m”が出力されている。又、WP2が13と
なる。
【0040】t15で“n”データを書き込む。この
時、WP2の値13を2m =4で割った値3からRP4
の値3を引いた差が0であり、WP2の値13を2m
4で割った余りが1なので、Validフラグ14は
“0011”となる。WP2が14となる。又、データ
出力線12には“mn”が出力されている。t16で
“o”データを書き込む。この時、WP2の値14を2
m =4で割った値3からRP4の値3を引いた差が0で
あり、WP2の値14を2m =4で割った余りが2なの
で、Validフラグ14は“0111”となる。WP
2が15となり、データ出力線12には“mno”が出
力されている。
【0041】t17で“p”データを書き込む。この
時、WP2の値15を2m =4で割った値3からRP4
の値3を引いた差が0であり、WP2の値15を2m
4で割った余りが3なので、Validフラグ14は
“1111”となる。この状態ではWP2の値が0とな
り、データ出力線12には“mnop”が出力されてい
る。
【0042】t18で“q”データを書込み上記WP2
が1となり、上記データ出力線12には“mnop”が
出力されている。次に、Fullフラグ13の動作につ
いては図12のタイミング図に基づき説明する。この例
では、RESET後、読み出しは一度も行われず、a〜
nまで書き込まれ、引き続き、書き込み動作が行われて
いる。即ち、t1で“m”データが、t2で“n”デー
タが、t3で“o”データがそれぞれ書き込まれ、WP
2が15となり、読み出しは行われていないので上記デ
ータ出力線12には“abcd”が出力されている。
【0043】t4で“p”データが書き込まれる。この
時、WP2の値とRP4の値との差が15であるので、
Full検出回路5はデータが満杯に書き込まれている
状態を検出し、Fullフラグ13は‘1’となり、読
み出しがあるまで書き込み動作を行っても、書き込めな
い。WP2は0に戻る。t5、t6でそれぞれ“q”、
“r”データの書き込みを行っているが、Fullフラ
グ13が‘1’なので、WP2はインクリメントされ
ず、入力データ“q”、“r”はRAMセル1には書き
込まれない。t7で“efgh”データを読み出し、t
9で“ijkl”データを読み出し、t11で“mno
p”データを読み出し、t13でさらに読み出す時、W
P2の値0を2m =4で割った値0からRP4の値3を
引いた差が−3であり、WP2の値0を4で割った余り
の値が0であるので上記Validフラグ14は“00
00”となる。
【0044】RP4が0に戻り、データ出力回路3のデ
ータが切り替わり、データ出力線12には“abcd”
データが出力されるが、Validフラグ14は“00
00”なのでデータ出力線12に出力されている“ab
cd”データは無効と判断され表示される。t15で読
み出しを行っているが上記Validフラグ14は“0
000”なのでRP4はインクリメントされない。
【0045】(第2の具体例)次に、入力ポートのビッ
ト数が出力ポートのビット数より大きい場合のFIFO
メモリ装置について説明する。図13のFIFOメモリ
装置は、2m 行×2n 列から構成される(2m ×2n×
k)ビットのメモリ容量を有するRAMセルと、(N×
k)ビットのデータ入力線DATAINと、このデータ
入力線から入力された(N×k)ビットのデータを上記
RAMセルのN(N=2m )個アドレスにkビット単位
に分割して順に書き込むデータ入力回路と、上記RAM
セルへの書き込みアドレスをN(N=2 m )個選択し1
ずつ増加させる(n)ビットのWPと、kビットのデー
タ出力線DATAOUTと、上記RAMセルのアドレス
を選択し、kビットのデータを上記データ出力線DAT
AOUTに出力するデータ出力回路と、このデータ出力
回路の切り替えを行うための(m+n)ビットのRP
と、上記RAMセルの満杯を検出するFull検出回路
と、このFull検出回路から供給される1ビットのF
ullフラグと、上記出力線DATAOUTに出力され
ているデータが有効か無効か判断するValid判定回
路と、このValid判定回路から供給される1ビット
のValidフラグとで構成したものである。
【0046】以下、この具体例の1例として、入力デー
タが32ビット、出力データが8ビット、4ビット行×
4ビット列の16ワードからなるRAMのFIFOメモ
リ装置の動作について説明する。はじめに、図14に示
すFIFOメモリ装置の構成について説明する。第13
図において、1はRAMセルで、2m 行×2n 列から形
成される(4×4×8(k=8))ビットのメモリ容量
を有している。7は書込制御信号WRB、8は読出制御
信号RDB、9はクロック信号(CLK)、10はリセ
ット信号(RESET)、31はデータ入力線DATA
0〜DATA31で、この例では(N×k)=4×8=
32ビットのデータ入力を取り扱い、27は上記データ
入力線31を8(k=8)ビットデータDATA0〜D
ATA7、DATA8〜DATA15、DATA16〜
DATA23、DATA24〜DATA31に分割し、
上記RAMセル1の所定のアドレスにデータを入力する
データ入力回路である。
【0047】32はデータ出力線DOUT0〜DOUT
7で、この例では8(k=8)ビットのデータをデータ
出力回路23から出力する。13はFullフラグで、
1ビットの信号を備えている。34は上記データ出力線
32の8(k=8)ビットのデータが有効であるか否か
を判定し表示する1ビットのフラグである。22はn
(=2)ビットのアップカウンタで構成したライトポイ
ンタ、即ち、4進アップカウンタで、RAMセル1への
書込アドレス1列(1列=2m (2m =4))個選択
し、上記データ入力回路27のデータを所定のアドレス
に書き込み、その値を1ずつ増加させるものである。
【0048】23はRAMセル1のアドレスを1個選択
し、データ出力線32に出力する回路である。24は
(m+n=2+2=4)ビットのアップカウンタで構成
したリードポインタ、即ち、16進アップカウンタで、
データ出力回路23の選択データの切り替えを1ずつ増
加させるものである。25はRAMセル1の書込アドレ
スの満杯を検出するFull検出回路で、WP22の値
からRP24の値を2m (2m =4)=4で割って引い
た差が3か−1の場合、WRB7が‘0’の時、CLK
9の立ち上がりエッジで、Fullフラグ13に‘1’
を出力する。
【0049】また、WP22の値からRP24の値を2
m (2m =4)=4で割って引いた差が−3か1でRP
24を2m (2m =4)=4で割った余りが3の場合、
RDB8が‘0’の時、CLK9の立ち上がりエッジで
Fullフラグ13に‘0’を出力する。26は上記デ
ータ出力線32の8ビットのデータが有効であるか否か
を判断するValid判定回路で、この例では、WP2
2の値からRP24の値を2m (2m =4)=4で割っ
て引いた差が0の場合、WRB7が‘0’の時、CLK
信号9の立ち上がりエッジでValidフラグ34に
‘1’を出力する。WP22の値からRP24の値を2
m (2m =4)=4で割って引いた差が−3か1で、R
P24から2m (2m =4)=4で割った余りが3なら
ば、RDB8が‘0’の時、CLK9の立ち上がりエッ
ジで、Validフラグ34に‘0’を出力する。 書
き込み動作、読み出し動作、Fullフラグ13の動
作、Validフラグ34の動作を、図15のタイミン
グに基づき説明する。書き込みは、t2からt5まで行
っている。
【0050】t2で“abcd”データを書き込む。こ
の時、WP22の値0から上記RP24の値0を2m
4で割った値0を引いた差が0なので、上記Valid
フラグ34が‘1’となり、読み出しが可能となる。W
P22が1となり、データ出力線32には“a”データ
が出力されている。t3で“efgh”データを書き込
む。この時、WP22が2となる。
【0051】t4で“ijkl”データを書き込み、W
P2が3となる。t5で“mnop”データを書き込
む。この時、上記WP22の値からRP24の値0を2
m =4で割った値0を引いた差が3であるので、上記F
ull検出回路25は満杯を検出し、Fullフラグは
13は‘1’となり、読み出しがあるまで書き込み動作
を行っても、書き込めない。この時、WP22が0に戻
る。
【0052】t6で読み出しが行われ、RP24が1と
なり、データ出力回路23の選択データが切り替わり、
データ出力線32には“b”が出力される。t7で読み
出しが行われ、RP24が2となり、データ出力回路2
3の選択データが切り替わり、データ出力線32には
“c”が出力される。更に、t8で読み出しが行われ、
RP24が3となり、データ出力回路23の選択データ
が切り替わり、上記データ出力線32には“d”が出力
される。
【0053】t9で読み出しが行われる。この時、WP
22の値0から上記RP24の値3を2m =4で割った
値0を引いた差が−3で、RP24の値3を2m =4で
割った余りが3であるから、Fullフラグは13は
‘0’となり、書き込みが可能となる。RP24が4と
なり、データ出力回路23の選択データが切り替わり、
データ出力線32には“e”が出力される。
【0054】t21で読み出しが行われた時、WP22
の値0からRP24の値15を2m=4で割った値3を
引いた差が−3で、RP24の値15を2m =4で割っ
た余りが3であるから、Validフラグ34が‘0’
となり、この時、上記データ出力線32に出力されてい
る“a”データは無効を示している。
【0055】
【発明の効果】本発明に係わるFIFOメモリ装置とそ
の制御方法は、上述のように構成したので、バス・アー
ビトレーションを行うことなく、同時に書込み、読出し
を可能にすると共に、データのスキップ書込み、二重読
出し等を防止して、高速なデータ転送を可能にした。
【図面の簡単な説明】
【図1】本発明に係わるFIFOメモリ装置のブロック
図である。
【図2】ライトポインタの動作を説明する流れ図であ
る。
【図3】ライトポインタのブロック説明図である。
【図4】リードポインタの動作を説明する流れ図であ
る。
【図5】リードポインタのブロック図である。
【図6】Fullフラグの状態を説明する流れ図であ
る。
【図7】Full検出回路のブロック図である。
【図8】Validフラグの状態を説明する流れ図であ
る。
【図9】Valid判定回路のブロック図である。
【図10】本発明の第1の具体例を説明するブロック図
である。
【図11】図10のデータの書込み、読出しを説明する
タイミングチャートである。
【図12】図10のデータの書込み、読出しを説明する
タイミングチャートである。
【図13】本発明の他の具体例のブロック図である。
【図14】図13を具体的に説明するブロック図であ
る。
【図15】図13のデータの書込み、読出しを説明する
タイミングチャートである。
【図16】従来技術のブロック図である。
【符号の説明】
1 RAMセル 2 ライトポインタ(WP) 3 データ出力回路 4 リードポインタ(RP) 5 Full検出回路 6 Valid判定回路(有効・無効表示回路) 7 書込要求信号(WRB) 8 読出要求信号(RDB) 9 クロック信号(CLK) 10 リセット信号(RESET) 11 データ入力線(入力回路) 12 データ出力線(出力回路) 13 Fullフラグ 14 Validフラグ WRB 書込要求信号 RDB 読出要求信号
───────────────────────────────────────────────────── フロントページの続き (72)発明者 北村 公一 神奈川県川崎市中原区小杉町一丁目403 番53 日本電気アイシーマイコンシステ ム株式会社内 (72)発明者 千葉 勝春 神奈川県川崎市中原区小杉町一丁目403 番53 日本電気アイシーマイコンシステ ム株式会社内 (56)参考文献 特開 平10−105488(JP,A) 特開 平6−309145(JP,A) 特開 平4−64988(JP,A) 特開 平4−79422(JP,A) 特開 平3−69244(JP,A) 特開 平2−105748(JP,A) 特開 平3−254548(JP,A) 特開 平1−311317(JP,A)

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 異なるデータバス幅を有するデータ処理
    装置間のデータ転送に用いられるFIFOメモリ装置に
    おいて、 データバス幅がkビット(kは2以上の整数)のデータ
    入力線と、 前記FIFOメモリ装置内のメモリの読出しデータを出
    力するデータバス幅がN×kビット(Nは2以上の整
    数)のデータ出力線と、 前記メモリへのデータの書込みアドレスを示すライトポ
    インタと、 前記メモリからのデータの読出しアドレスを示すリード
    ポインタと、 常に前記データ出力線に出力される前記リードポインタ
    で示されるアドレスのデータが有効であるか否かを、前
    記リードポインタの内容と、前記ライトポインタの内容
    と、書き込み要求信号と、読み出し要求信号とに基づい
    てkビット単位で判定し、kビット単位で前記FIFO
    メモリ装置外部に通知する有効・無効判定回路とを含む
    ことを特徴とするFIFOメモリ装置。
  2. 【請求項2】 前記メモリを満杯に書き込んだ状態を検
    出するFull検出回路を設け、前記Full検出回路
    が前記メモリ回路に満杯に書き込んだ状態を検出した時
    は、前記メモリへの書き込みを禁止するように構成した
    ことを特徴とする請求項1記載のFIFOメモリ装置。
  3. 【請求項3】 前記リードポインタの値は、前記有効・
    無効表示回路の出力するフラグ信号の全てのビットが有
    効であることを示す時のみ、インクリメントされるよう
    に構成されることを特徴とする請求項1乃至2の何れか
    に記載のFIFOメモリ装置。
  4. 【請求項4】 データの書込みアドレスを示すライトポ
    インタと、データの読出しアドレスを示すリードポイン
    タと、kビット(kは2以上の整数)の入力データバス
    幅を有するデータ入力線と、N×kビット(Nは2以上
    の整数)の出力データバス幅を有するデータ出力線とを
    含む、異なるデータバス幅を有するデータ処理装置間の
    データ転送に用いられるFIFOメモリ装置の制御方法
    において、 前記リードポインタで示されるアドレスのデータが、常
    に、前記データ出力線から出力されると共に、前記デー
    タ出力線から出力されるデータが有効であるか否かを
    前記リードポインタの内容と、前記ライトポインタの内
    容と、書き込み要求信号と、読み出し要求信号とに基づ
    いてkビット単位で判定し、kビット単位で前記FIF
    Oメモリ装置外部に通知することを特徴とするFIFO
    メモリ装置の制御方法。
JP25340998A 1998-09-08 1998-09-08 Fifoメモリ装置とその制御方法 Expired - Fee Related JP3308912B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP25340998A JP3308912B2 (ja) 1998-09-08 1998-09-08 Fifoメモリ装置とその制御方法
US09/387,450 US6681314B1 (en) 1998-09-08 1999-09-01 FIFO memory device suitable for data transfer apparatuses with different data bus widths and method for controlling the same
TW088115441A TW440867B (en) 1998-09-08 1999-09-06 FIFO memory device and method for controlling same
KR1019990037688A KR100339258B1 (ko) 1998-09-08 1999-09-06 Fifo메모리장치 및 그 제어방법
EP99117422A EP0986005A1 (en) 1998-09-08 1999-09-07 FIFO memory device and method for controlling same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25340998A JP3308912B2 (ja) 1998-09-08 1998-09-08 Fifoメモリ装置とその制御方法

Publications (2)

Publication Number Publication Date
JP2000089932A JP2000089932A (ja) 2000-03-31
JP3308912B2 true JP3308912B2 (ja) 2002-07-29

Family

ID=17250992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25340998A Expired - Fee Related JP3308912B2 (ja) 1998-09-08 1998-09-08 Fifoメモリ装置とその制御方法

Country Status (5)

Country Link
US (1) US6681314B1 (ja)
EP (1) EP0986005A1 (ja)
JP (1) JP3308912B2 (ja)
KR (1) KR100339258B1 (ja)
TW (1) TW440867B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711494B2 (en) * 2001-07-30 2004-03-23 Emulex Corporation Data formatter for shifting data to correct data lanes
US7756085B2 (en) * 2001-11-20 2010-07-13 Qualcomm Incorporated Steps one and three W-CDMA and multi-mode searching
JP2003208399A (ja) * 2002-01-15 2003-07-25 Hitachi Ltd データ処理装置
US20100115172A1 (en) * 2008-11-04 2010-05-06 Mosaid Technologies Incorporated Bridge device having a virtual page buffer
US8549209B2 (en) 2008-11-04 2013-10-01 Mosaid Technologies Incorporated Bridging device having a configurable virtual page size
CN102375720B (zh) * 2010-08-20 2014-03-12 瑞萨集成电路设计(北京)有限公司 异步先入先出存储器fifo的读写控制处理方法、电路及系统
US9122424B1 (en) 2013-07-18 2015-09-01 Western Digital Technologies, Inc. FIFO buffer clean-up
US9164939B2 (en) * 2013-10-21 2015-10-20 Altera Corporation Circuitry and techniques for updating configuration data in an integrated circuit
JP2016177478A (ja) * 2015-03-19 2016-10-06 株式会社リコー 信号転送装置、情報処理装置、及び信号転送方法
TWI835417B (zh) * 2022-11-23 2024-03-11 瑞昱半導體股份有限公司 電子裝置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6017552A (ja) 1983-07-11 1985-01-29 Nec Corp デ−タ転送制御回路
EP0290172A3 (en) 1987-04-30 1991-01-16 Advanced Micro Devices, Inc. Bidirectional fifo with variable byte boundary and data path width change
JPH03100851A (ja) 1989-09-14 1991-04-25 Matsushita Electric Ind Co Ltd 先入れ先出し記憶装置
JPH0464988A (ja) 1990-07-04 1992-02-28 Brother Ind Ltd Fifoメモリ
JPH04205873A (ja) 1990-11-29 1992-07-28 Matsushita Electric Ind Co Ltd Fifoメモリ装置
JP3218659B2 (ja) 1992-01-24 2001-10-15 松下電器産業株式会社 Fifoバッファ回路
JPH05224880A (ja) 1992-02-12 1993-09-03 Matsushita Electric Ind Co Ltd 先入れ先出しバッファ回路
US5293381A (en) 1992-03-27 1994-03-08 Advanced Micro Devices Byte tracking system and method
JPH0683581A (ja) 1992-09-03 1994-03-25 Matsushita Electric Ind Co Ltd 先入れ先出しバッファ回路
US5745791A (en) * 1992-09-16 1998-04-28 Intel Corporation System for interfacing first and second components having different data path width by generating first and second component address to read data into buffer
GB2291230B (en) * 1992-10-15 1996-10-16 Fujitsu Ltd Fifo memory devices
JPH06309145A (ja) 1993-04-27 1994-11-04 Oki Electric Ind Co Ltd Fifo回路
JP3100851B2 (ja) 1994-12-01 2000-10-23 ダイワ精工株式会社 魚釣用スピニングリ−ル
KR0157924B1 (ko) * 1995-12-23 1998-12-15 문정환 데이타 전송 시스템 및 그 방법
US5804986A (en) * 1995-12-29 1998-09-08 Cypress Semiconductor Corp. Memory in a programmable logic device
US5867672A (en) * 1996-05-21 1999-02-02 Integrated Device Technology, Inc. Triple-bus FIFO buffers that can be chained together to increase buffer depth
JPH10105488A (ja) 1996-10-01 1998-04-24 Nec Corp 通信用コントローラ
KR0183932B1 (ko) 1996-10-04 1999-04-15 삼성전자주식회사 에프아이에프오 제어회로
US6172927B1 (en) * 1997-04-01 2001-01-09 Ramtron International Corporation First-in, first-out integrated circuit memory device incorporating a retransmit function
JP3931384B2 (ja) 1997-07-03 2007-06-13 富士通株式会社 Fifoメモリ制御装置
JPH11110310A (ja) * 1997-09-29 1999-04-23 Nissan Motor Co Ltd データバスモニタ装置
US6308257B1 (en) * 1999-04-20 2001-10-23 Intel Corporation Method and apparatus for generating boundary markers for an instruction stream including variable-length instructions

Also Published As

Publication number Publication date
US6681314B1 (en) 2004-01-20
KR100339258B1 (ko) 2002-05-31
TW440867B (en) 2001-06-16
KR20000022936A (ko) 2000-04-25
JP2000089932A (ja) 2000-03-31
EP0986005A1 (en) 2000-03-15

Similar Documents

Publication Publication Date Title
US7302545B2 (en) Method and system for fast data access using a memory array
JP5222099B2 (ja) トランスペアレントeccメモリシステム
EP0225059A2 (en) Semiconductor memory
JP3308912B2 (ja) Fifoメモリ装置とその制御方法
JPH0760594B2 (ja) 半導体記憶装置
US7272775B2 (en) Memory circuit comprising an error correcting code
JP2659436B2 (ja) 半導体記憶装置
EP0327115B1 (en) Serial access memory system provided with improved cascade buffer circuit
US7020792B2 (en) Method and apparatus for time domain equalization
JPH09190378A (ja) メモリアドレス制御回路
JPS61255451A (ja) デ−タ処理装置
JP2889479B2 (ja) ヒストグラム構築回路
KR920005121B1 (ko) 반도체 기억장치
JPS6244352B2 (ja)
JP2002050172A (ja) Fifo制御回路
US5890194A (en) Method for efficient use of DRAM data and parity areas
JPH02116941A (ja) 半導体記憶装置
JPH09305486A (ja) マイクロコンピュ−タ・システムのメモリ・インタ−フェ−ス装置
JP2003058494A (ja) 半導体集積回路
JPH06103162A (ja) Ramアドレス制御装置
JPH0464988A (ja) Fifoメモリ
JPH05151076A (ja) メモリアドレス拡張制御方式
JPH06103780A (ja) 論理和演算回路
JPH04237351A (ja) メモリ再書込み方式
JPH04351788A (ja) 半導体メモリ

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees