JP4478592B2 - メモリ回路 - Google Patents

メモリ回路 Download PDF

Info

Publication number
JP4478592B2
JP4478592B2 JP2005034477A JP2005034477A JP4478592B2 JP 4478592 B2 JP4478592 B2 JP 4478592B2 JP 2005034477 A JP2005034477 A JP 2005034477A JP 2005034477 A JP2005034477 A JP 2005034477A JP 4478592 B2 JP4478592 B2 JP 4478592B2
Authority
JP
Japan
Prior art keywords
signal
switching
data
circuit
memory
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
JP2005034477A
Other languages
English (en)
Other versions
JP2006221435A (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.)
Lapis Semiconductor Co Ltd
Original Assignee
Oki Semiconductor 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 Oki Semiconductor Co Ltd filed Critical Oki Semiconductor Co Ltd
Priority to JP2005034477A priority Critical patent/JP4478592B2/ja
Publication of JP2006221435A publication Critical patent/JP2006221435A/ja
Application granted granted Critical
Publication of JP4478592B2 publication Critical patent/JP4478592B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、シリアルポート等で使用され、データを一時保管するFIFO(First In First Out、先入れ先出し)メモリ等を有し、連続して送られてくるデータをFIFOメモリ等の容量以上に受信し続けることを可能にしたメモリ回路に関するものである。
従来、例えば、シリアルポートに使用されているメモリ回路には、連続して送信されるデータを保管するため、ある容量(即ち、メモリ回路に蓄積されたデータ数の読み出し基準値であるトリガレベル)に達すると、中央処理装置(以下「CPU」という。)にデータのロード(読み出し)を要求する機能が設けられている。この構成例を図12に示す。
図12は、従来のメモリ回路の一例を示す概略の構成図である。
このメモリ回路は、連続したシリアルデータ(直列データ)SDを受信してパラレルデータ(並列データ)PDに変換する受信シフトレジスタ1、パラレルデータPDを一時保管する上書き可能な複数のメモリセル2aを有するFIFOメモリ(以下単に「FIFO」という。)2、割込回路3、及びパラレルデータPDのロード等を制御するCPU4を備えている。
このメモリ回路では、連続したシリアルデータSDが送信されてくると、これが受信シフトレジスタ1によりパラレルデータPDに変換された後、受信用のFIFO2においてそのパラレルデータPDがメモリセル2aに書き込まれて一時保管される。FIFO2内に書き込まれたデータ量が、ある一定の読み出し基準値であるトリガレベルTGに達すると、FIFO2は割込回路3に対して、FIFO割込要求信号S2を発生させる。割込回路3は、この割り込みをCPU4に対して、割込要求信号S3として伝える。割込要求信号S3を受けたCPU4は、FIFO2に対して割込処理を実行し、FIFO2に蓄積されていたデータPDを該CPU4にロードLDする。この機能により、FIFO2に蓄積されたデータPDを退避させ、FIFO2の容量以上にデータPDを書き込み続けることを可能としている。
ところが、図12のメモリ回路では、FIFO2に蓄積されたデータPDをCPU4が退避している間に、外部からデータSDが送信された場合の処理が難しい。一般的には、外部から送信されるデータSDの間隔は、CPU4がデータPDをロードLDする時間より十分長いため問題になることは少ないが、逆にいえば、高速データの受信には不向きである。
又、仮に前記の場合のように送信データSDの間隔が短い場合であっても、データPDが蓄積されていないFIFO2のメモリセル2aにデータPDを書き込むことは可能であるが、この場合、FIFO2としてはデータPDの書き込みと読み出しを同時に行うことになるため、FIFO2の制御が複雑になるという欠点がある。
そこで、このような欠点を解決するために、下記の特許文献1の技術を適用することが考えられる。
特開平8−98036号公報(図1)
この特許文献1の図1には、シリアルポートを持つマルチポートDRAM(ダイナミック・ランダム・アクセス・メモリ)からなるフレームメモリを2面有する画像再生装置の技術が記載されている。この装置において、受信されて伸長復元された画像信号が一方のフレームメモリに書き込まれている時には、他方のフレームメモリが画像表示用に使用され、蓄積された画像信号が読み出されて表示される。
この技術を利用して、図12のFIFO2を2面設け、この2面のFIFOを書き込み用と読み出し用に交互に切り替える構成にして、前記の欠点を解決することが考えられる。
しかしながら、図12のメモリ回路において、FIFO2を2面設けて書き込み用と読み出し用に交互に切り替える構成にする場合、比較的簡単な回路構成と制御により高速データを的確に受信できるメモリ回路を実現することが困難であった。
前記課題を解決するために、請求項1に係る発明のメモリ回路では、フラグ制御信号に基づき切替信号を生成する切替フラグと、連続して送られてくるデータの書き込み経路を、前記切替信号により第1又は第2の経路に切り替える第1のセレクタと、前記第1の経路から入力される前記データを順に書き込んで順に読み出すための第1のメモリと、前記第2の経路から入力される前記データを順に書き込んで順に読み出すための第2のメモリと、前記第1又は第2のメモリからの読み出しデータの読み出し経路を、前記切替信号により切り替える第2のセレクタと、前記切替フラグに与える前記フラグ制御信号を生成する切替制御回路とを備えている。
前記切替制御回路は、書き込み側の前記第1又は第2のメモリに蓄積されたデータ数の読み出し基準値であるトリガレベルを任意に設定可能なトリガレベル設定手段と、前記第1、第2のメモリに蓄積されたデータ数をそれぞれ計数して前記第1のメモリの第1の計数値及び前記第2のメモリの第2の計数値を出力する計数手段と、前記トリガレベルと前記第1の計数値とを比較して第1の比較結果を出力し、前記トリガレベルと前記第2の計数値とを比較して第2の比較結果を出力し、データ数0と前記第1の計数値とを比較して第3の比較結果を出力し、更に、データ数0と前記第2の計数値とを比較して第4の比較結果を出力する比較手段と、前記第1の比較結果と前記切替信号を反転させた反転切替信号との第1の論理積を求めると共に、前記第2の比較結果と前記切替信号との第2の論理積を求め、前記第1及び第2の論理積の第1の論理和を求める第1の論理回路と、前記第2の比較結果、前記第3の比較結果の反転結果、及び前記切替信号の論理積を求めて第1のセット信号を生成し、第1のオーバランエラーフラグ信号、前記第3の比較結果、及び前記切替信号の論理積を求めて第1のリセット信号を生成する第2の論理回路とを有している。
更に、前記切替制御回路では、前記第1の比較結果、前記第4の比較結果の反転結果、及び前記反転切替信号の論理積を求めて第2のセット信号を生成し、第2のオーバランエラーフラグ信号、前記第4の比較結果、及び前記反転切替信号の論理積を求めて第2のリセット信号を生成する第3の論理回路と、クロック信号に基づき前記第1のセット信号をラッチして前記第1のオーバランエラーフラグ信号を出力し、前記クロック信号に基づき前記第1のリセット信号をラッチするとリセットされる第1のオーバランエラーフラグと、前記クロック信号に基づき前記第2のセット信号をラッチして前記第2のオーバランエラーフラグ信号を出力し、前記クロック信号に基づき前記第2のリセット信号をラッチするとリセットされる第2のオーバランエラーフラグと、前記第1及び第2のオーバランエラーフラグ信号の第2の論理和を求める第4の論理回路と、前記第1の論理和、前記第2の論理和の反転信号、及び前記クロック信号の論理積を求めて前記フラグ制御信号を生成する第5の論理回路とを有している。
請求項2に係る発明のメモリ回路における前記切替制御回路では、書き込み側の前記第1又は第2のメモリに蓄積されたデータ数の読み出し基準値であるトリガレベルを任意に設定可能なトリガレベル設定手段と、前記第1、第2のメモリに蓄積されたデータ数をそれぞれ計数して前記第1のメモリの第1の計数値及び前記第2のメモリの第2の計数値を出力する計数手段と、前記トリガレベルと前記第1の計数値とを比較して第1の比較結果を出力し、前記トリガレベルと前記第2の計数値とを比較して第2の比較結果を出力し、データ数0と前記第1の計数値とを比較して第3の比較結果を出力し、更に、データ数0と前記第2の計数値とを比較して第4の比較結果を出力する比較手段と、前記第1、第4の比較結果と前記切替信号を反転させた反転切替信号との第1の論理積を求めると共に、前記第2、第3の比較結果と前記切替信号との第2の論理積を求め、前記第1及び第2の論理積の論理和を求める第1の論理回路と、前記論理和、クロック信号、及びオーバランエラー信号の論理積を求めて前記フラグ制御信号を生成する第2の論理回路とを有している。
請求項1に係る発明によれば、受信用の2面の第1、第2のメモリを有し、受信データの蓄積を交互に行うため、高速なデータに対しても連続した受信が可能である。しかも、トリガレベル設定手段により、第1、第2のメモリに対してトリガレベルを自由に設定でき、これにより、受信データに対して柔軟な設定が可能である。
更に、オーバランエラー信号を発生させるための第2、第3、第4の論理回路、及び第1、第2のオーバランエラーフラグ等を設けたので、2面の第1、第2のメモリフル状態でオーバランエラー発生時は、切替フラグの動作を停止させ、切替信号の反転暴走動作を抑制できる。この際、最新の受信データは読み出すことが可能であり、更に、消費電力の削減も実現できる。
請求項に係る発明によれば、オーバランエラーが発生してオーバランエラー信号が入力されると、切替フラグが停止して切替信号が発生しないので、第1及び第2のメモリに蓄積されたデータを読み出すことができる。
本発明の最良の実施形態では、受信用のメモリ回路において、内部に任意の容量のFIFOを2面持ち、外部からのデータを書き込むFIFOと蓄積されたデータを外部に読み出すFIFOとを分離し、且つ、書き込み側のFIFOに蓄積されたデータがあるトリガレベル以上に達したら、書き込みに使用していたFIFOを読み出し用に、同様に読み出し用に使用していたFIFOは書き込み用に接続を切替え、連続して送られてくる外部からのデータを途切れることなく受信しつづけることができる。
又、前記の受信用のメモリ回路において、切替フラグを制御するための切替制御回路は、書き込み側のFIFOに蓄積されたデータの数がCPUへ読み出しを要求するレベルを規定する、トリガレベルを自由に設定できるためのトリガレジスタを持ち、2面あるFIFOのどちらか一方がこのトリガレベルに達するとフラグを立たせるように、それぞれFIFOとトリガレジスタとを比較する比較器を持ち、この片方の比較器の出力と切替信号の論理積を取り、他方の比較器の出力と反転切替信号の論理積を取り、これら2つのAND回路の出力をOR回路で論理和を生成し、このOR回路の出力とクロック信号の論理積を取り、この出力を、切替信号を生成するための切替フラグに入力し、この切替フラグの出力を切替信号とし、この切替信号の反転切替信号を同じ切替フラグに入力している。
このように、本実施形態のメモリ回路では、FIFOを2面持ち、受信データで片側のFIFO内の蓄積データが容量に達すると、もう片方のFIFOに切り替り、データの受信を続けられるようにしたため、高速データの受信に対応できる。又、それぞれのFIFOは、必ず書き込みか又は読み出しのどちらか一方の用途に使用するため、FIFO自体の制御が簡潔になる。
(図1〜図3の構成)
図1は、本発明の実施例1を示すメモリ回路の概略の構成図である。
このメモリ回路は、パラレルデータPDを一時記憶するための上書き可能な複数のメモリセル10aをそれぞれ有する2面の第1、第2のメモリ(例えば、FIFO)10−0,10−1と、切替信号SGによりFIFO10−0,10−1の入力側を切り替える第1のセレクタ11−0と、切替信号SGによりFIFO10−0,10−1の出力側を切り替える第2のセレクタ11−1と、切替信号SGを生成する切替フラグ(例えば、フリップフロップ回路(以下「FF」という。)からなる切替レジスタ)12と、この切替レジスタ12を制御すると共にFIFO割込要求信号S13等を出力する切替制御回路13とを備えている。更に、FIFO割込要求信号S13を受け付けて割込要求信号S14を出力する割込回路14と、割込要求信号S14を入力すると、FIFO10−0,10−1に蓄積されたパラレルデータPDをロードLDするCPU15とが設けられている。
このメモリ回路では、連続したシリアルデータSDが送られてくると、これが図示しない受信シフトレジスタによりパラレルデータPDに変換される。この連続したパラレルデータPDを受信すると、最初の状態では、そのパラレルデータPDをセレクタ11−0を介してFIFO10−0に蓄積する。FIFO10−0のデータ数がトリガレベルTGに達すると、切替レジスタ12が切替信号SGを出力してセレクタ11−0,11−1の書き込み方向と読み出し方向の接続を切り換える。これにより、FIFO10−1で受信したパラレルデータPDを継続して蓄積できるため、高速な連続データに対応が可能である。
又、通常の動作の場合は、切替制御回路13がFIFO割込要求信号S13を割込回路14に出し、これを受けた割込回路14がCPU15に割込要求信号S14を出す。割込要求を受けたCPU15は、FIFO10−0内の蓄積データをロードLDして退避させるため、FIFO10−0が空となり、FIFO10−1がトリガレベルTGに達した時に、継続してパラレルデータPDを受信するための準備が可能である。
図2は、図1のFIFO10−0,10−1付近を示す構成図である。
送られてくる連続したシリアルデータSDをパラレルデータPDに変換する受信シフトレジスタ9の出力側には、セレクタ11−0を介して2面のFIFO10−0,10−1が接続されている。このFIFO10−0,10−1の出力側は、セレクタ11−1を介してデータバス16に接続されている。
このメモリ回路では、一方のFIFO10−0又は10−1がセレクタ11−0を介して外部からの送信データSDの書き込み側に接続されている場合、他方のFIFO10−1又は10−0は、CPU15によりデータを退避させられるようにセレクタ11−1を介してデータバス16側に接続されている。FIFO10−0,10−1の接続方向は、切替レジスタ12の切替信号SGにより制御されていて、例えば、切替信号SGの値が“0”の場合、FIFO10−0はセレクタ11−0を介して外部データPDを受信する側に接続され、FIFO10−1はCPU15からデータを退避されるためセレクタ11−1を介してデータバス16側に接続される。これとは逆に、切替信号SGの値が“1”の場合には、FIFO10−0がセレクタ11−1を介してデータバス16側に接続され、FIFO10−1がセレクタ11−0を介して外部データPDを受信する側に接続される。
図3は、図1の切替レジスタ12及び切替制御回路13を示す構成図である。
切替制御回路13は、FIFO10−0,10−1のトリガレベルTGを任意に設定可能なトリガレベル設定手段(例えば、トリガレジスタ)20と、各FIFO10−0,10−1にそれぞれ蓄積されているデータPDの数を示す計数手段(例えば、レジスタからなるカウンタ)21−0,21−1と、このカウンタ21−0,21−1の出力側に接続された比較手段(例えば、比較器)22−0,22−1、第1の論理回路(例えば、AND回路23−0,23−1及びOR回路24)と、このOR回路24の出力側に接続された第2の論理回路(例えば、AND回路)25と、FFからなる切替レジスタ12の切替信号SGを反転して反転切替信号SGBを生成する反転回路26とにより構成されている。
2個のカウンタ21−0,21−1は、以下のような論理記述で示されるように、書き込み時にカウント値を+1インクリメント(加算)し、読み出し時−1デクリメント(減算)する。
always @(clock)
begin
if ( reset )
count <= 0;
else if ( write & !read )
count <= ( count + 1);
else if( !write & read )
count <= ( count - 1);
end
この論理では、リセットでカウント値が0に設定され、書き込みだったら(カウント値+1)となり、読み出しだったら、(カウント値−1)となる。
カウンタ21−0,21−1は、2個のFIFO10−0,10−1がそれぞれ有し、FIFO10−0側のカウンタをカウンタ21−0、FIFO10−1側のカウンタをカウンタ21−1とする。カウンタ21−0,21−1とは別に、FIFO10−0,10−1内の蓄積されたデータPDをCPU15へ退避させるための準値(トリガレベルTG)を格納するトリガレジスタ20が設けられている。このトリガレジスタ20の値(トリガレベルTG)は、プログラムで可変可能である。
比較器22−0で、カウンタ21−0の値とトリガレベルTGを比較し、比較器22−1でカウンタ21−1の値とトリガレベルTGを比較している。カウンタ21−0,21−1の値がトリガレベルTGに達すると、比較器22−0,22−1により、“1”が出力される。比較器22−0の出力はAND回路23−0で、切替信号SGの反転切替信号SGBとの論理積を取り、比較器22−1の出力はAND回路23−1で、切替信号SGとの論理積をとる。このそれぞれのAND回路23−0,23−1からの出力をOR回路24に入力する。このため、書き込み方向に接続されていた側のFIFO10−0又は10−1がトリガレベルTGに達すると、このOR回路24の出力が“1”になる。そして、このOR回路24の出力とクロックCKとの論理積をAND回路25で取り、切替レジスタ12を構成するFFのクロック入力端子に入力する。切替レジスタ12は、いずれかのFIFO10−0又は10−1がトリガレベルTGに達すると、次のマシンサイクルで、現在の切替信号SGを反転回路26で反転した反転切替信号SGBをラッチする。このため、例えばカウンタ21−0がトリガレベルTGに達していた場合、次のマシンサイクルでは、反転切替信号SGBは“1”から“0”に切り替わるため、切替レジスタ12のクロック入力端子には連続してクロックCKが入力されることはない。
(図3の動作)
図4は、図3の切替制御回路13の動作を示すタイミングチャートである。
例えば、トリガレベルTGは16に設定されているとし、最初の状態では切替信号SGは“0”であるとする。
カウンタ21−0の値がクロック信号(以下単に「クロック」という。)CKの立ち上がりエッジで16に達すると、トリガレベルTGに達するため、比較器22−0は“0”から“1”へと変化する。この出力と反転切替信号SGBとの論理積をAND回路23−0で取るが、初期状態では反転切替信号SGBは“1”のため、同じくAND回路23−1も“0”から“1”に切り替わる。次段のOR回路24もカウンタ21−1側の方が“0”のため、同時刻で同様に“0”から“1”に切り替わる。このため、AND回路25でクロックCKとの論理積が取られ、1マシンサイクルのクロックCKが切替レジスタ12のクロック入力端子に入力される。
切替レジスタ12は、この1クロックCK分のパルスの立ち上がりエッジで、データ入力端子から入力される反転切替信号SGBをラッチし、次のマシンサイクルで出力端子から出力される切替信号SGを“0”から“1”に切り替える。この切替信号SGに対する反転回路26の反転により、比較器22−0の出力は“1”のままでも、AND回路23−0の出力は“1”から“0”に変化し、これがOR回路24を介してAND回路25まで伝播するため、切替レジスタ12のクロック入力端子にはパルスが入力されなくなり、切替信号SGが反転されたままその切替レジスタ12により保持される。
(図5、図6の構成)
図5は、図1のメモリ回路におけるオーバランエラー状態を示す概略の構成図である。
オーバランエラー状態とは、データPDを受信している側のFIFO(例えば、10−1)の容量がトリガレベルTGに達しながら、反対の読み出し側のFIFO10−0の容量が0レベルでない状態を指す。これは、CPU15へのデータ退避を忘れた場合に生じる。このように、受信側のFIFO10−1の容量がトリガレベルTGに達すると、読み出し側のFIFO10−0が受信側に切り替わってしまうので、残存データの上書き等といった問題が生じる。これを防止するために、図1の切替制御回路13に代えて、図5においてオーバランエラー防止機能を有する切替制御回路13Aを設けることが望ましい。
この切替制御回路13Aでは、オーバランエラー状態が生じると、オーバランエラー信号を生成して切替レジスタ12の動作を停止させる。これにより、受信側のFIFO10−1が無駄な動作をしないように固定し、誤動作の防止(FIFO10−0へのデータの上書き防止)、及び無駄な動作を抑制することによる低消費電力化を実現することができる。又、この状態でもCPU15により、読み出し側のFIFO10−0内のデータを退避させることは可能である。
図6は、図5の切替レジスタ12及び切替制御回路13Aを示す構成図であり、図3中の要素と共通の要素には共通の符号が付されている。
図6の切替制御回路13Aでは、図3の切替制御回路13に対して、比較手段(例えば、カウンタ21−0の出力と“0”を比較する比較器22−2、及び、カウンタ21−1の出力と“0”を比較する比較器22−3)が追加され、図3のAND回路23−0,23−1,25に代えて、第2、第3の論理回路(例えば、AND回路27−0〜27−3、OR回路28−0,28−1)、第1、第2のオーバランエラーフラグ(例えば、FFからなるオーバランエラーレジスタ)29−0,29−1、第4の論理回路(例えば、OR回路)30、及び、第5の論理回路(例えば、AND回路)25Aが設けられている点が異なる。
AND回路27−0は、比較器22−2の出力(第3の比較結果)の反転信号、オーバランエラーレジスタ29−0の出力(第1のオーバランエラーフラグ信号)、及び切替信号SGの論理積を求めて、オーバランエラーレジスタ29−0に対する第1のリセット信号を出力する回路である。AND回路27−1は、比較器22−2の出力(第3の比較結果)の反転信号、比較器22−1の出力(第2の比較結果)、及び切替信号SGの論理積を求めて、オーバランエラーレジスタ29−0に対する第1のセット信号を出力する回路である。AND回路27−2は、比較器22−3の出力(第4の比較結果)、オーバランエラーレジスタ29−1の出力(第2のオーバランエラーフラグ信号)、及び反転切替信号SGBの論理積を求めて、オーバランエラーレジスタ29−1に対する第2のリセット信号を出力する回路である。AND回路27−3は、比較器22−3の出力(第4の比較結果)の反転信号、比較器22−0の出力(第1の比較結果)、及び切替信号SGの反転信号である反転切替信号SGBの論理積を求めて、オーバランエラーレジスタ29−1に対する第2のリセット信号を出力する回路である。これらのAND回路27−0〜27−3の出力側には、OR回路28−0,28−1が接続されている。
OR回路28−0は、AND回路27−0の出力とAND回路27−1の出力の反転信号との論理を求める回路、OR回路28−1は、AND回路27−2の出力とAND回路27−3の出力の反転信号との論理を求める回路であり、これらの出力側にオーバランエラーレジスタ29−0,29−1がそれぞれ接続されている。オーバランエラーレジスタ29−0は、クロック入力端子から入力されるクロックCKに基づき、OR回路28−0の出力をデータ入力端子から入力するレジスタ、オーバランエラーレジスタ29−1は、クロック入力端子から入力されるクロックCKに基づき、OR回路28−1の出力をデータ入力端子から入力するレジスタであり、これらの出力側に、OR回路30が接続されている。
OR回路30から出力されるオーバランエラー信号ERは、反転されてAND回路25Aに入力される。AND回路25Aは、オーバランエラー信号ERの反転信号と、図3のOR回路24の出力と、クロックCKとの論理積を求めてフラグ制御信号を生成し、これを、切替レジスタ12のクロック入力端子に与える回路である。
(図6の動作)
図6の切替制御回路13Aの動作を説明する。
トリガレジスタ20、カウンタ21−0,21−1、及び比較器22−0,22−1の動作は、図3の回路と同様であり、比較器22−0はカウンタ21−0がトリガレベルTGに達した時、比較器22−1はカウンタ21−1がトリガレベルTGに達した時に“1”が出力される。これと同様に、比較器22−2では、カウンタ21−0の値が“0”の時、比較器22−3はカウンタ21−1の値が“0”の時に“1”が出力される。
AND回路27−0では、切替信号SGと比較器22−2の出力の反転信号とFIFO10−0側のオーバランエラーレジスタ29−0の出力との論理積を求める。これは、0側にオーバランエラーが発生している時に、FIFO10−0の蓄積データがCPU15に退避され、カウンタ21−0の値が“0”になった時、オーバランエラーレジスタ29−0をリセット(“1”→“0”)することを意味している。AND回路27−1は、切替信号SGと比較器22−2の出力の反転信号と比較器22−1の出力との論理積を求めている。これは、1側の書き込み時であり、且つFIFO10−1がトリガレベルTGに達した時にFIFO10−0側のカウンタ21−0が“0”でない時、オーバランエラー0をセット(“0”→“1”)することを意味する。
OR回路28−0は、セットの場合はオーバランエラーレジスタ29−0のデータ“1”が入力され、リセットの場合は“0”が入力されるようになっている。従って、セットされると、オーバランエラーレジスタ29−0の出力端子からは“1”が出力され、リセットされると、オーバランエラーレジスタ29−0の出力端子からは“0”が出力されることになる。
AND回路27−2では、切替信号SGの反転信号SGBと比較器22−3の出力とFIFO10−1側のオーバランエラーレジスタ29−1の出力との論理積を求めている。これは、1側にオーバランエラーが発生している時に、FIFO10−1の蓄積データがCPU15に退避され、カウンタ21−1が“0”になった時、オーバランエラーレジスタ29−1をリセット(“1”→“0”)することを意味している。AND回路27−3は、切替信号SGの反転信号SGBと比較器22−3の出力の反転信号と比較器22−0の出力との論理積を求めている。これは、0側の書き込み時であり、且つFIFO10−0がトリガレベルTGに達した時にFIFO10−1側のカウンタ21−0が“0”でない時、オーバランエラーレジスタ29−1をセット(“0”→“1”)することを意味する。
OR回路28−1は、セットの場合はオーバランエラーレジスタ29−1のデータ“1”が入力され、リセットの場合は“0”が入力されるようになっている。従って、セットされると、オーバランエラーレジスタ29−1の出力端子からは“1”が出力、リセットされるとオーバランエラーレジスタ29−1の出力端子からは“0”が出力されることになる。OR回路30は、オーバランエラーレジスタ29−0の出力とオーバランエラーレジスタ29−1の出力との論理和を求め、この出力信号を全体のオーバランエラー信号ERとしている。
そして、このオーバランエラー信号ERの反転信号を、切替レジスタ12のクロック入力前のAND回路25Aに入力し、論理積を求めている。これは、オーバランエラーが発生した段階では、カウンタ21−0,21−1共にトリガレベルTGに達していることが想定でき、この状態では、図3の回路のままであると、OR回路24の出力が“1”に固定されてしまい、AND回路25が常にクロック(フラグ制御信号)を生成するため、切替レジスタ12は常にデータを反転しつづける暴走動作が発生する。これを抑制するため、オーバランエラーが発生しているときは、オーバランエラー信号ERの反転信号をAND回路25Aに入力することにより、切替レジスタ12にクロック入力させないようにして、切替信号SGの反転暴走動作を抑制している。
図7は、図6の切替制御回路13Aの動作を示すタイミングチャートである。
この図7では、例えば、トリガレベルTGを2とする。
図6の切替制御回路13Aの動作として、カウンタ21−0の値がトリガレベルTGの2に達すると、図3で説明したように、切替信号SGは“0”から“1”に切り替わる。この状態のままで受信を継続すると、カウンタ21−1もトリガレベルTGに達する。すると、同様に切替信号SGは“1”から“0”に切り替わる。
又、カウンタ21−1がトリガレベルTGに達すると、AND回路27−1は、切替信号SGが“1”、比較器22−1の出力が“1”、比較器22−2の出力が“0”であるため、“0”から“1”へ切り替わる。この信号が伝播し、OR回路28−0の出力が“0”から“1”になり、この信号をオーバランエラーレジスタ29−0がラッチする。すると、OR回路30からオーバランエラー信号ERの“1”が出力され(オーバランエラーが確定し)、AND回路25Aで、切替レジスタ12のクロック入力が抑制される。
(実施例1の効果)
本実施例1では、次の(1)〜(3)のような効果がある。
(1) 図1及び図3に示すように、2面の受信FIFO10−0,10−1を有し、受信データPDの蓄積を交互に行うため、高速なデータPDに対しても連続した受信が可能である。
(2) 図3の構成において、トリガレジスタ20により、FIFO10−0,10−1に対してトリガレベルTGを自由に設定でき、これにより、受信データPDに対して柔軟な設定が可能である。
(3) 図5及び図6に示すように、2面のFIFO10−0,10−1フル状態でオーバランエラー発生時は、切替レジスタ12の動作を停止させ、これにより、最新の受信データは読み出すことが可能であり、更に、消費電力の削減も実現できる。
(図8の構成)
図8は、本発明の実施例2を示す切替レジスタ12及び切替制御回路13Bの概略の構成図であり、実施例1を示す図3、図5及び図6中の要素と共通の要素には共通の符号が付されている。
図8の切替制御回路13Bは、図5の切替制御回路13Aに代えて設けられる回路である。この切替制御回路13Bを図3の切替制御回路13と比較すると、トリガレベルTGとカウンタ21−0,21−1の値をそれぞれ比較する比較手段である比較器22−0,22−1の他に、0レベルと比較する比較手段である比較器22−2,22−3が追加されている。更に、図3の2入力AND回路23−0,23−1に代えて、第1の論理回路(例えば、3入力AND回路)23−0B、23−1Bが設けられ、図3の2入力AND回路25に代えて、オーバランエラー信号ERを入力する第2の論理回路(例えば、3入力AND回路)25Bが設けられている点のみが異なる。
AND回路23−0Bでは、切替信号SGの反転信号SGBと比較器22−0,22−3の出力(第1、第4の比較結果)との論理積を求めている。これにより、FIFO10−0側が書き込み時、このFIFO10−0がトリガレベルTGに達し、且つ反対側のFIFO10−1が0レベルでない場合に、“1”となる。又、AND回路23−1Bでは、切替信号SGと比較器22−1,22−2の出力(第2、第3の比較結果)との論理積を求めている。これにより、FIFO10−1側が書き込み時、このFIFO10−1がトリガレベルTGに達し、且つ反対側のFIFO10−0が0レベルでない場合に、“1”となる。
このAND23−0Bの出力とAND23−1Bの出力とを、OR回路24で論理和を求める。そして、AND回路25Bで、OR回路24の出力とオーバランエラー信号ERとクロックCKとの論理積を求めてフラグ制御信号を生成し、これを切替レジスタ12のクロック入力端子に入力する。切替レジスタ12は、AND回路25Bで生成されるクロックパルス(フラグ制御信号)が印加されると、反転回路26で生成される反転切替信号SGBをラッチし、“0”から“1”、又は“1”から“0”に切替信号SGが反転する。
(図8の動作)
実施例1の図6と本実施例2の図8との動作上の相違点は、オーバランエラーが発生していない状態では、同じである。異なる点は、実施例1の図6では、オーバランエラーが発生した時に、切替信号SGが反転してからオーバランエラーが発生し、それ以降の動作を停止するのに対し、本実施例2の図8では、オーバランエラーが発生した時に、切替信号SGを反転させずにオーバランエラーを発生させ、それ以降の動作を停止させる。要するに、オーバランエラー発生時、切替信号SGを反転させる(実施例1)か、反転させない(実施例2)かの違いである。
図9は、図8の切替制御回路13Bの動作を示すタイミングチャートである。
この図9では、例えば、トリガレベルTGを2とする。
例えば、カウンタ21−0がトリガレベルTGに達したとき、反対側のカウンタ21−1は0レベルなので、AND回路23−0Bの出力は“1”になる。このため、OR回路24を介してAND回路25Bから1クロックパルスが出力されるため、切替レジスタ12は反転切替信号SGBをラッチし、次のマシンサイクルで切替信号SGが反転する。次に、カウンタ21−0は状態を保持したまま、カウンタ21−1の値がインクリメント(+1増分)し、トリガレベルTGに達すると、オーバランエラーが発生する。本実施例2では、ここでは切替レジスタ12にクロックパルスが入力されないため、切替信号SGが反転しない。要するに、オーバランエラー時、切替信号SGが反転しない。その後、カウンタ21−0の値がデクリメント(FIFO10−0から蓄積データがCPU15へ退避されてカウント値が減分)される場合、カウンタ21−0が0レベルに達すると、オーバランエラーが解消されると同時に、AND回路23−1Bの出力が“1”になり、これによりOR回路24及びAND回路25Bを介して、切替レジスタ12のクロック入力端子にクロックパルスが印加され、切替信号SGが切り替わる。
(実施例2の効果)
オーバランエラーが発生した場合、実施例1では、片側のFIFO10−0又は10−1に蓄積されたデータしかCPU15に読み出すことはできなかつたが、本実施例2では、両側のFIFO10−0,10−1に蓄積されたデータをCPU15に読み出すことができる。
構成概要図としては実施例1の図5と同じなので、この図5を用いて説明する。
オーバランエラーが発生すると、切替レジスタ12が停止することは同じであるが、実施例1の場合、図5の例では、切り替わってから停止するので、FIFO10−0が読み出し側に接続され、CPU15からデータが読み出されるのは、FIFO10−1のみである。ところが、FIFO10−1からデータを読み出して空になっても、FIFO10−0の蓄積されているデータがトリガレベルTGに達していない場合は、切替信号SGが発生しないため、FIFO10−0のデータは読み出すことができなかった。
これに対して本実施例2では、オーバランエラー発生時に切替信号SGが発生しないため、FIFO10−0が読み出し側に接続されたままになっている。ここで、FIFO10−0からデータを読み出していき、FIFO10−0が空になると、FIFO10−1がトリガレベルTGにあるため、自動的に接続方向が切り替わり、FIFO10−1が読み出し側に接続される。この後FIFO10−1を読み出してゆけば、全てのFIFO10−0,10−1内のデータを退避させることが可能である。
(図10、図11の構成)
図10は、本発明の実施例3を示すメモリ回路の概略の構成図であり、実施例1を示す図5中の要素と共通の要素には共通の符号が付されている。
本実施例3のメモリ回路では、図5の切替制御回路13Aに代えて、外部からの反転制御信号CBを入力する切替制御回路13Cが設けられ、更に、図5の割込回路14に代えて、タイマ16からの受信完了割込信号S16を入力する割込回路14Cが設けられている点が異なる。
図11は、図10の切替レジスタ12及び切替制御回路13Cを示す構成図であり、実施例1を示す図3中の要素と共通の要素には共通の符号が付されている。
本実施例3の切替制御回路13Cでは、図3の2入力OR回路24に代えて、反転制御信号CBの論理和を求める第1の論理回路(例えば、3入力OR回路)24Cを設けている点のみが異なる。このOR回路24Cで反転制御信号CBの論理和を取ることにより、FIFO10−0,10−1側のカウンタ21−0,21−1の状態に関わらず、切替信号SGを反転させることができる。
(実施例3の動作・効果)
実施例1の図5の場合、オーバランエラーが発生すると、切替信号SGによりFIFO10−0,10−1の接続方向が切り替わった後に動作を停止するため、CPU15がデータを退避できるFIFO10−0,10−1は、最新の受信データを蓄積している片側のFIFO10−0又は10−1に限定されていた。ところが、本実施例3のように、外部の反転制御信号CBにより切替信号SGを反転できるようにすると、オーバランエラーが発生した場合、最新のデータが蓄積されているFIFO10−0又は10−1のデータを退避した後、外部からの反転制御信号CBによりFIFO10−0又は10−1の読み出しFIFOを切り替え、古いデータが蓄積されているFIFOからデータを退避させることが可能である。
又、前記の使用方法とは別に、この反転制御信号CBには、次のような使用方法もある。
図10において、例えば、FIFO10−0に受信データが蓄積されているとする。仮にこの蓄積されたデータが、トリガレベルTGに達しない状態で受信データPDが完了した場合、タイマ16から受信完了割込信号S16が、割込回路14Cに発行される。すると、割込要求信号S14CがCPU15に伝えられ、このCPU15が割込処理に入る。割込処理では、先ず、受信FIFO10−0又は10−1に対し、反転制御信号CBを出力し、切替レジスタ12の値を[0→1]に切替える。このため、FIFO10−0は受信方向から読み出し方向へと接続が切り替わる。次に、割込処理は、FIFO10−0に蓄積されていたデータをCPU15にロードし、データの退避を終了する。
従って、切替制御回路13Cに反転制御信号CBを加えることにより、受信FIFO10−0又は10−1の蓄積データがトルガレベルTGに達していない状態でも、そのデータをCPU15にロードすることが可能となる。
本発明は、上記実施例1〜3に限定されず、種々の変形例が可能である。この変形例である実施例4としては、例えば、FIFO10−1,10−2に代えて、他のメモリを用いたり、或いは、切替制御回路13、13A、13B、13Cを、図3、図6、図8、図11以外の回路構成に変更しても良い。
本発明の実施例1を示すメモリ回路の概略の構成図である。 図1のFIFO10−0,10−1付近を示す構成図である。 図1の切替レジスタ12及び切替制御回路13を示す構成図である。 図3の切替制御回路13の動作を示すタイミングチャートである。 図1のメモリ回路におけるオーバランエラー状態を示す概略の構成図である。 図5の切替レジスタ12及び切替制御回路13Aを示す構成図である。 図6の切替制御回路13Aの動作を示すタイミングチャートである。 本発明の実施例2を示す切替レジスタ12及び切替制御回路13Bの概略の構成図である。 図8の切替制御回路13Bの動作を示すタイミングチャートである。 本発明の実施例3を示すメモリ回路の概略の構成図である。 図10の切替レジスタ12及び切替制御回路13Cを示す構成図である。 従来のメモリ回路の一例を示す概略の構成図である。
符号の説明
9 受信シフトレジスタ
10−1,10−2 FIFO
11−0,11−1 セレクタ
12 切替レジスタ
13,13A〜13C 切替制御回路
14 割込回路
15 CPU
20 トリガレジスタ
21−0,21−1 カウンタ
22−0〜22−3 比較器
23−0,23−1,23−0B、23−1B,25,25A, 25B,27−0〜27−3 AND回路
24,24C,28−0,28−1,30 OR回路
26 反転回路
29−0,29−1 オーバランエラーレジスタ

Claims (2)

  1. フラグ制御信号に基づき切替信号を生成する切替フラグと、
    連続して送られてくるデータの書き込み経路を、前記切替信号により第1又は第2の経路に切り替える第1のセレクタと、
    前記第1の経路から入力される前記データを順に書き込んで順に読み出すための第1のメモリと、
    前記第2の経路から入力される前記データを順に書き込んで順に読み出すための第2のメモリと、
    前記第1又は第2のメモリからの読み出しデータの読み出し経路を、前記切替信号により切り替える第2のセレクタと、
    前記切替フラグに与える前記フラグ制御信号を生成する切替制御回路とを備え、
    前記切替制御回路は、
    書き込み側の前記第1又は第2のメモリに蓄積されたデータ数の読み出し基準値であるトリガレベルを任意に設定可能なトリガレベル設定手段と、
    前記第1、第2のメモリに蓄積されたデータ数をそれぞれ計数して前記第1のメモリの第1の計数値及び前記第2のメモリの第2の計数値を出力する計数手段と、
    前記トリガレベルと前記第1の計数値とを比較して第1の比較結果を出力し、前記トリガレベルと前記第2の計数値とを比較して第2の比較結果を出力し、データ数0と前記第1の計数値とを比較して第3の比較結果を出力し、更に、データ数0と前記第2の計数値とを比較して第4の比較結果を出力する比較手段と、
    前記第1の比較結果と前記切替信号を反転させた反転切替信号との第1の論理積を求めると共に、前記第2の比較結果と前記切替信号との第2の論理積を求め、前記第1及び第2の論理積の第1の論理和を求める第1の論理回路と、
    前記第2の比較結果、前記第3の比較結果の反転結果、及び前記切替信号の論理積を求めて第1のセット信号を生成し、第1のオーバランエラーフラグ信号、前記第3の比較結果、及び前記切替信号の論理積を求めて第1のリセット信号を生成する第2の論理回路と、
    前記第1の比較結果、前記第4の比較結果の反転結果、及び前記反転切替信号の論理積を求めて第2のセット信号を生成し、第2のオーバランエラーフラグ信号、前記第4の比較結果、及び前記反転切替信号の論理積を求めて第2のリセット信号を生成する第3の論理回路と、
    クロック信号に基づき前記第1のセット信号をラッチして前記第1のオーバランエラーフラグ信号を出力し、前記クロック信号に基づき前記第1のリセット信号をラッチするとリセットされる第1のオーバランエラーフラグと、
    前記クロック信号に基づき前記第2のセット信号をラッチして前記第2のオーバランエラーフラグ信号を出力し、前記クロック信号に基づき前記第2のリセット信号をラッチするとリセットされる第2のオーバランエラーフラグと、
    前記第1及び第2のオーバランエラーフラグ信号の第2の論理和を求める第4の論理回路と、
    前記第1の論理和、前記第2の論理和の反転信号、及び前記クロック信号の論理積を求めて前記フラグ制御信号を生成する第5の論理回路とを有することを特徴とするメモリ回路。
  2. フラグ制御信号に基づき切替信号を生成する切替フラグと、
    連続して送られてくるデータの書き込み経路を、前記切替信号により第1又は第2の経路に切り替える第1のセレクタと、
    前記第1の経路から入力される前記データを順に書き込んで順に読み出すための第1のメモリと、
    前記第2の経路から入力される前記データを順に書き込んで順に読み出すための第2のメモリと、
    前記第1又は第2のメモリからの読み出しデータの読み出し経路を、前記切替信号により切り替える第2のセレクタと、
    前記切替フラグに与える前記フラグ制御信号を生成する切替制御回路とを備え、
    前記切替制御回路は、
    書き込み側の前記第1又は第2のメモリに蓄積されたデータ数の読み出し基準値であるトリガレベルを任意に設定可能なトリガレベル設定手段と、
    前記第1、第2のメモリに蓄積されたデータ数をそれぞれ計数して前記第1のメモリの第1の計数値及び前記第2のメモリの第2の計数値を出力する計数手段と、
    前記トリガレベルと前記第1の計数値とを比較して第1の比較結果を出力し、前記トリガレベルと前記第2の計数値とを比較して第2の比較結果を出力し、データ数0と前記第1の計数値とを比較して第3の比較結果を出力し、更に、データ数0と前記第2の計数値とを比較して第4の比較結果を出力する比較手段と、
    前記第1、第4の比較結果と前記切替信号を反転させた反転切替信号との第1の論理積を求めると共に、前記第2、第3の比較結果と前記切替信号との第2の論理積を求め、前記第1及び第2の論理積の論理和を求める第1の論理回路と、
    前記論理和、クロック信号、及びオーバランエラー信号の論理積を求めて前記フラグ制御信号を生成する第2の論理回路とを有することを特徴とするメモリ回路。
JP2005034477A 2005-02-10 2005-02-10 メモリ回路 Expired - Fee Related JP4478592B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005034477A JP4478592B2 (ja) 2005-02-10 2005-02-10 メモリ回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005034477A JP4478592B2 (ja) 2005-02-10 2005-02-10 メモリ回路

Publications (2)

Publication Number Publication Date
JP2006221435A JP2006221435A (ja) 2006-08-24
JP4478592B2 true JP4478592B2 (ja) 2010-06-09

Family

ID=36983731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005034477A Expired - Fee Related JP4478592B2 (ja) 2005-02-10 2005-02-10 メモリ回路

Country Status (1)

Country Link
JP (1) JP4478592B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117498856B (zh) * 2024-01-03 2024-03-26 苏州萨沙迈半导体有限公司 异构双模冗余定时器、芯片以及车辆

Also Published As

Publication number Publication date
JP2006221435A (ja) 2006-08-24

Similar Documents

Publication Publication Date Title
JP2007525766A (ja) マルチポートメモリシステムにおける衝突検出
US7586337B2 (en) Circuit for switching between two clock signals independently of the frequency of the clock signals
CN109388370B (zh) 一种实现先入先出队列的方法及装置
US9026746B2 (en) Signal control device and signal control method
US20070038795A1 (en) Asynchronous bus interface and processing method thereof
US20110126070A1 (en) Resending Control Circuit, Sending Device, Resending Control Method and Resending Control Program
US7177966B2 (en) Microcomputer minimizing influence of bus contention
JP4478592B2 (ja) メモリ回路
US6691182B2 (en) DMA controller in which bus access ratio can be set
US9191002B2 (en) Data processing apparatus and method in PLC system
JP4286295B2 (ja) 調停回路
JP4696003B2 (ja) データ転送回路
KR940009099B1 (ko) 마이크로 프로세서
JP4569163B2 (ja) データ入出力装置およびデータ入出力方法
JPH10340596A (ja) データ記憶装置および半導体記憶装置
KR100557561B1 (ko) Fifo 저장 장치
JP5907558B2 (ja) マルチインターバルタイマ並びにその制御装置、制御方法及び制御プログラム
JP4549073B2 (ja) メモリ制御回路
JP3935152B2 (ja) バッファメモリ装置
JPH09274599A (ja) バッファメモリ装置
JP2005148904A (ja) リングバッファ制御装置およびリングバッファ制御方法
JPH05265701A (ja) Fifoメモリ
JPH07253920A (ja) Fifo ram コントローラ
JP2005174090A (ja) データ転送回路
KR100544871B1 (ko) 듀얼 라이트 백 버퍼_

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070808

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081203

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090401

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090908

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091030

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

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

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees