Nothing Special   »   [go: up one dir, main page]

JPH10293730A - データ書き込み方法、データ読み出し方法、及び、データ格納メモリ回路 - Google Patents

データ書き込み方法、データ読み出し方法、及び、データ格納メモリ回路

Info

Publication number
JPH10293730A
JPH10293730A JP9100161A JP10016197A JPH10293730A JP H10293730 A JPH10293730 A JP H10293730A JP 9100161 A JP9100161 A JP 9100161A JP 10016197 A JP10016197 A JP 10016197A JP H10293730 A JPH10293730 A JP H10293730A
Authority
JP
Japan
Prior art keywords
read
write
data
address
pointer
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.)
Granted
Application number
JP9100161A
Other languages
English (en)
Other versions
JP3887059B2 (ja
Inventor
Hiroyuki Tsujimoto
廣幸 辻本
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.)
Fujitsu VLSI Ltd
Fujitsu Ltd
Original Assignee
Fujitsu VLSI Ltd
Fujitsu 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 Fujitsu VLSI Ltd, Fujitsu Ltd filed Critical Fujitsu VLSI Ltd
Priority to JP10016197A priority Critical patent/JP3887059B2/ja
Publication of JPH10293730A publication Critical patent/JPH10293730A/ja
Application granted granted Critical
Publication of JP3887059B2 publication Critical patent/JP3887059B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【課題】FIFO形式のメモリ回路に対してデータ長が
決まったデータの書き込み及び読み出しが異常かどうか
検出できるようにする。 【解決手段】データ長が決まった各データ29はループ
設定回路34によりカウントアップ値が設定されたライ
ト及びリードポインタ32,33のアドレスに従ってバ
ッファメモリ31にそれぞれ書き込み/読み出される。
正常に書き込まれた時には、複数個存在する特定のアド
レスのいずれかでその書き込みが完了する。第1の検出
回路37はライトポインタ32のアドレスが特定アドレ
スでなかったときには書き込み異常と判断する。又、正
常に読み出された時には、複数個の特定のアドレスのい
ずれかで読み出しが完了する。第1の検出回路37はリ
ードポインタ33のアドレスが特定アドレスでなかった
ときには読み出し異常と判断する。異常と判断されたと
き、アドレス変更回路41はライト又はリードポインタ
のアドレスを特定アドレスに書き替える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、FIFO(First
In First Out)形式のデータ格納メモリ回路に関するも
のである。
【0002】近年、マルチメディアに対応して例えばパ
ソコンに対してオーディオ・ビデオ機器、デジタルカメ
ラ等の多数の周辺装置が接続できることが求められてい
る。パソコンと各周辺装置との間、又は、各周辺装置間
とでデータ転送において精度の高い転送データが望まれ
ている。そして、連続したデータ自体の誤り訂正機能は
符号(CRC)を挿入するなどの対策によって対応が可
能になる。そのため、符号を生成する前段階での連続し
たデータの受信処理は、その処理回路に正しくデータが
転送される必要がある。
【0003】
【従来の技術】従来、デジタルデータの転送の1つとし
て、例えばIEEE1394という規格がある。このI
EEE1394には、一定間隔の時間で予め定められた
データ量(バイト長)の転送データ(パケット)を連続
して転送するアイソクロナス転送がある。
【0004】このアイソクロナス転送方式において、一
定の間隔で予め定められたデータ量の転送データ(パケ
ット)を装置間で送受信を行う。この時、転送データを
入力する装置、又は、転送データを出力する装置は、そ
の入出力インタフェースに合わせて転送データを転送す
るわではなく、装置内に設けたMPUがIEEE139
4のバスプロトコルに従って実行処理する。従って、そ
の実行処理に要する時間、転送データ(パケット)を一
時的に保持しておく必要があることから、装置内にはそ
のためのデータ格納メモリ回路が備えられている。
【0005】このデータ格納メモリ回路は、FIFO
(First In First Out)形式のデータバッファメモリ回
路である。このFIFO形式のメモリ回路は、ライトポ
インタ及びリードポインタを備えている。そして、ライ
トポインタは、その値がバッファメモリの書き込みアド
レスに使用される。リードポインタは、その値がバッフ
ァメモリの読み出しアドレスに使用される。又、両ポイ
ンタの値は、バッファメモリがデータを保持している状
態(FULL/EMPTY)を判断する場合に使用され
ている。
【0006】そして、このFIFO形式のメモリ回路
は、例えば、他装置からアイソクロナス転送された転送
データがプロトコルコントローラを介して書き込まれ
る。メモリ回路に入力される転送データ(パケット)
は、ヘッダ部分が除かれたデータ(アイソクロナス・デ
ータ)であって、該アイソクロナス・データのデータ長
は常に一定である。例えば、アイソクロナス・データの
データ長が250バイトであると、該250バイト長の
データが1バイトごとライト用イネーブル信号に応答し
て書き込まれる。従って、250個のライト用イネーブ
ル信号が出力されると、250バイト長のアイソクロナ
ス・データがメモリ回路に書き込まれることになる。詳
述すると、ライト用ネーブル信号が出力される毎にライ
トポインタが「1」づつインクリメントされるととも
に、そのインクリメントされたライトポインタが示す値
のアドレスに1バイトのデータが書き込まれる。250
バイト長のアイソクロナス・データが書き込まれると、
ライトポインタは次のパケットのアイソクロナス・デー
タの書き込みを待つ。
【0007】メモリ回路からの1つのパケットのアイソ
クロナス・データを読み出す場合も同様に行われる。2
50バイト長のデータが1バイトごとリード用ネーブル
信号に応答して読み出される。従って、250個のリー
ド用ネーブル信号が出力されると、250バイト長のア
イソクロナス・データがメモリ回路が読み出されること
になる。詳述すると、リード用ネーブル信号が出力され
る毎にリードポインタが「1」づつインクリメントされ
るとともに、そのインクリメントされたリードポインタ
が示す値のアドレスから1バイトのデータが読み出され
る。250バイト長のアイソクロナス・データが読み出
されると、リードポインタは次のパケットのアイソクロ
ナス・データの読み出しを待つ。
【0008】
【発明が解決しようとする課題】ところで、250バイ
ト長のパケットのアイソクロナス・ データを書き込んで
いる最中に、ライト用ネーブル信号にノイズが発生する
場合がある。このノイズにより、ライトポインタがイン
クリメントされて、同じ内容の1バイトのデータがバッ
ファメモリに書き込まれる。その結果、250バイト長
のアイソクロナス・データが書き込まれるはずが、25
0バイト長を超える余分なデータを含むアイソクロナス
・データが書き込まれる。そして、該アイソクロナス・
データが1バイトづつ順に読み出されると、250バイ
ト長を超えるデータは、後続のパケットのアイソクロナ
ス・データとして処理され以後のパケットのアイソクロ
ナス・データとして読み出されるといった異常データ転
送が生じる。
【0009】反対に、何らかの原因でノイズが発生して
ライト用ネーブル信号が消失した場合には、250バイ
ト長のアイソクロナス・データが書き込まれるはずが、
250バイト未満のバイト長、即ちデータが不足したア
イソクロナス・データが書き込まれる。そして、該アイ
ソクロナス・データが1バイトづつ順に読み出されると
き、該アイソクロナス・データが250バイト未満の不
足したデータであることから、後続のパケットのアイソ
クロナス・データの一部が先のパケットのアイソクロナ
ス・データの一部として読み出されてしまうといった異
常データ転送が生じる。
【0010】同様に、アイソクロナス・データを読み出
している最中に、リード用ネーブル信号にノイズがの
り、このノイズによりリードポインタがインクリメント
されて新たなアドレスから1バイトのデータがバッファ
メモリから読み出される。その結果、250バイト長の
アイソクロナス・データが読み出されるはずが、250
バイト長を超えるバイト長のアイソクロナス・データが
読み出されるといった問題が生じる。即ち、後続のパケ
ットのアイソクロナス・データの一部が先のパケットの
アイソクロナス・データの一部として読み出されてしま
うといった異常データ転送が生じる。
【0011】反対に、何らの原因でノイズが発生してリ
ード用ネーブル信号が消失した場合には、250バイト
長のアイソクロナス・データが読み出されるはずが、2
50バイト未満のバイト長の不足したアイソクロナス・
データが読み出されとともに、該アイソクロナス・デー
タの一部が読み出されないといった問題が生ずる。そし
て、読み出されなかった該パケットのアイソクロナス・
データの一部は後続のパケットのアイソクロナス・デー
タとして処理され後続のパケットのアイソクロナス・デ
ータの一部として読み出されるといった異常データ転送
が生じる。
【0012】本発明の第1の目的は、データ長が決まっ
た転送データが複数回に分けて順にメモリに書き込んだ
とき、その転送データが正常に書き込まれなかった場
合、その後に書き込まれる転送データを正しい位置に書
き込むことができるデータ書き込み方法及びデータ格納
メモリ回路を提供することにある。
【0013】本発明の第2の目的は、データ長が決まっ
た転送データが複数回に分けて順にメモリから読み出し
たとき、その転送データが正常に読み出されなかった場
合、後続の転送データを正しい位置から読み出すことが
できるデータ読み出し方法及びデータ格納メモリ回路を
提供することにある。
【0014】本発明の第3の目的は、データ長が決まっ
た転送データを複数回に分けて順にメモリに書き込んだ
とき、その転送データが正常に書き込まれたかどうかを
検出することができるデータ格納メモリ回路を提供する
ことにある。
【0015】本発明の第4の目的は、データ長が決まっ
た転送データが複数回に分けて順にメモリから読み出し
たとき、その転送データが正常に読み出されたかどうか
を検出することができるデータ格納メモリ回路を提供す
ることにある。
【0016】本発明の第5の目的は、データ長が決まっ
た転送データが複数回に分けて順に書き込み及び読み出
しが行われるデータ格納メモリ回路において、その転送
データの書き込み及び読み出しが正常に行われたかどう
か検出し、正常に行われなかった時には後に書き込まれ
る転送データを正しい位置に書き込むことができ又は次
に読み出される転送データを正しい位置から読み出すこ
とができるデータ格納メモリ回路を提供することにあ
る。
【0017】
【課題を解決するための手段】請求項1に記載の発明
は、データ長が決まったデータをライト用イネーブル信
号に応答して予め定められた複数回の書き込み回数に分
けてそのライト用イネーブル信号に応答してシフトされ
るライトポインタが指定するバッファメモリの書き込み
アドレスに書き込むようにしたデータ書き込み方法にお
いて、前記ライトポインタのカウントアップ値を前記デ
ータ長の整数倍であって前記バッファメモリの記憶容量
を超さない複数個の中の最大の値をカウントアップ値と
してそのライトポインタをリセット動作させ、前記書き
込み回数に分けて順に書き込まれる前記データ長が決ま
ったデータの最後の書き込みが完了した時、その時の前
記ライトポインタの書き込みアドレスが前記カウントア
ップ値とデータ長とに基づいて求められた複数個の特定
アドレスのいずれにも該当しない時には、前記ライトポ
インタの書き込みアドレスを前記複数個の特定アドレス
の中からその時の示している書き込みアドレスに最も近
い特定アドレスに書き替えるようにした。
【0018】請求項2に記載の発明は、データ長が決ま
ったデータをライト用イネーブル信号に応答して予め定
められた複数回の書き込み回数に分けてそのライト用イ
ネーブル信号に応答してシフトされるライトポインタが
指定するバッファメモリの書き込みアドレスに書き込む
ようにしたデータ書き込み方法において、前記ライトポ
インタのカウントアップ値を前記データ長の整数倍であ
って前記バッファメモリの記憶容量を超さない複数個の
中の最大の値をカウントアップ値としてライトポインタ
をリセット動作させるとともに、前記ライト用イネーブ
ル信号をカウントするライト用カウンタにて前記書き込
み回数をカウントさせ、前記書き込み回数に分けて順に
書き込まれる前記データ長が決まったデータの最後の書
き込みが完了した時、前記ライト用カウンタが前記書き
込み回数を示していない時には、前記ライトポインタの
書き込みアドレスを、前記カウントアップ値とデータ長
とに基づいて求められた複数個の特定アドレスの中から
その時の示している書き込みアドレスに最も近い特定ア
ドレスに書き替えるようにした。
【0019】請求項3に記載の発明は、データ長が決ま
ったデータをリード用イネーブル信号に応答して予め定
められた複数回の読み出し回数に分けてそのリード用イ
ネーブル信号に応答してシフトされるリードポインタが
指定するバッファメモリの読み出しアドレスから読み出
すようにしたデータ読み出し方法において、前記リード
ポインタのカウントアップ値を前記データ長の整数倍で
あって前記バッファメモリの記憶容量を超さない複数個
の中の最大の値をカウントアップ値としてそのリードポ
インタをリセット動作させ、前記読み出し回数に分けて
順に読み出される前記データ長が決まったデータの最後
の読み出しみが完了した時、その時の前記リードポイン
タの読み出しアドレスが前記カウントアップ値とデータ
長とに基づいて求められた複数個の特定アドレスのいず
れにも該当しない時には、前記リードポインタの読み出
しアドレスを前記複数個の特定アドレスの中からその時
の示している読み出しアドレスに最も近い特定アドレス
に書き替えるようにした。
【0020】請求項4に記載の発明は、データ長が決ま
ったデータをリード用イネーブル信号に応答して予め定
められた複数回の読み出し回数に分けてそのリード用イ
ネーブル信号に応答してシフトされるリードポインタが
指定するバッファメモリの読み出しアドレスから読み出
すようにしたデータ読み出し方法において、前記リード
ポインタのカウントアップ値を前記データ長の整数倍で
あって前記バッファメモリの記憶容量を超さない複数個
の中の最大の値をカウントアップ値としてそのリードポ
インタをリセット動作させるとともに、前記リード用イ
ネーブル信号をカウントするリード用カウンタにて前記
読み出し回数をカウントさせ、前記読み出し回数に分け
て順に読み出される前記データ長が決まったデータの最
後の読み出しが完了した時、前記リード用カウンタが前
記読み出し回数を示していない時には、前記リードポイ
ンタの読み出しアドレスを、前記カウントアップ値とデ
ータ長とに基づいて求めた複数個の特定アドレスの中か
らその時の示している読み出しアドレスに最も近い特定
アドレスに書き替えるようにした。
【0021】請求項5に記載の発明は、データ長が決ま
ったデータが予め定められた複数回の書き込み回数に分
けて順に書き込まれるとともに予め定められた複数回の
読み出し回数に分けて順に読み出されるバッファメモリ
と、ライト用イネーブル信号に応答してバッファメモリ
の書き込みアドレスをシフトしながら指定するライトポ
インタと、リード用イネーブル信号に応答してバッファ
メモリの読み出しアドレスをシフトしながら指定するリ
ードポインタとからなるデータ格納メモリ回路におい
て、前記ライトポインタのカウントアップ値を前記デー
タ長の整数倍であって前記バッファメモリの記憶容量を
超さない複数個の値の中の最大の値をカウントアップ値
として指定するポインタループ設定回路と、前記書き込
み回数に分けて順に書き込まれる前記データ長が決まっ
たデータの最後の書き込みが完了した時、その時のライ
トポインタの書き込みアドレスが前記カウントアップ値
とデータ長とに基づいて求められた複数個の特定アドレ
スのいずれにも該当しない時、書き込み異常と判断する
ライト用検出回路を備えた。
【0022】請求項6に記載の発明は、データ長が決ま
ったデータが予め定められた複数回の書き込み回数に分
けて順に書き込まれるとともに予め定められた複数回の
読み出し回数に分けて順に読み出されるバッファメモリ
と、ライト用イネーブル信号に応答してバッファメモリ
の書き込みアドレスをシフトしながら指定するライトポ
インタと、リード用イネーブル信号に応答してバッファ
メモリの読み出しアドレスをシフトしながら指定するリ
ードポインタとからなるデータ格納メモリ回路におい
て、前記リードポインタのカウントアップ値を前記デー
タ長の整数倍であって前記バッファメモリの記憶容量を
超さない複数個の値の中の最大の値をカウントアップ値
として指定するポインタループ設定回路と、前記読み出
し回数に分けて順に読み出される前記データ長が決まっ
たデータの最後の読み出しが完了した時、その時のリー
ドポインタの読み出しアドレスが前記カウントアップ値
とデータ長とに基づいて求められた複数個の特定アドレ
スのいずれにも該当しない時、読み出し異常と判断する
リード用検出回路とを備えた。
【0023】請求項7に記載の発明は、データ長が決ま
ったデータが予め定められた複数回の書き込み回数に分
けて順に書き込まれるとともに予め定められた複数回の
読み出し回数に分けて順に読み出されるバッファメモリ
と、ライト用イネーブル信号に応答してバッファメモリ
の書き込みアドレスをシフトしながら指定するライトポ
インタと、リード用イネーブル信号に応答してバッファ
メモリの読み出しアドレスをシフトしながら指定するリ
ードポインタとからなるデータ格納メモリ回路におい
て、前記ライトポインタ及びリードポインタのカウント
アップ値を前記データ長の整数倍であって前記バッファ
メモリの記憶容量を超さない複数個の値の中の最大の値
をカウントアップ値として指定するポインタループ設定
回路と、前記複数回に分けて順に書き込まれる前記デー
タ長が決まったデータの最後の書き込みが完了した時、
その時のライトポインタの書き込みアドレスが前記カウ
ントアップ値とデータ長とに基づいて求められた複数個
の特定アドレスのいずれにも該当しない時、書き込み異
常と判断するライト用検出回路と、前記読み出し回数に
分けて順に読み出される前記データ長が決まったデータ
の最後の読み出しが完了した時、その時のリードポイン
タの読み出しアドレスが前記カウントアップ値とデータ
長とに基づいて求められた複数個の特定アドレスのいず
れにも該当しない時、読み出し異常と判断するリード用
検出回路と、前記ライト用検出回路が書き込み異常と判
断した時、前記ライトポインタの書き込みアドレスを前
記複数個の特定アドレスの中からその時の示している書
き込みアドレスに最も近い特定アドレスに書き替えるラ
イト用アドレス変更回路と、前記リード用検出回路が読
み出し異常と判断した時、前記リードポインタの読み出
しアドレスを前記複数個の特定アドレスの中からその時
の示している書き込みアドレスに最も近い特定アドレス
に書き替えるリード用アドレス変更回路とを備えた。
【0024】請求項8に記載の発明は、請求項5に記載
のデータ格納メモリ回路において、前記ライト用検出回
路が書き込み異常と判断した時、前記ライトポインタの
書き込みアドレスを前記複数個の特定アドレスの中から
その時の示している書き込みアドレスに最も近い特定ア
ドレスに書き替えるライト用アドレス変更回路を備え
た。
【0025】請求項9に記載の発明は、請求項6に記載
のデータ格納メモリ回路において、前記リード用検出回
路が読み出し異常と判断した時、前記リードポインタの
読み出しアドレスを前記複数個の特定アドレスの中から
その時の示している読み出しアドレスに最も近い特定ア
ドレスに書き替えるリード用アドレス変更回路を備え
た。
【0026】請求項10に記載の発明は、データ長が決
まったデータが予め定められた複数回の書き込み回数に
分けて順に書き込まれるとともに予め定められた複数回
の読み出し回数に分けて順に読み出されるバッファメモ
リと、ライト用イネーブル信号に応答してバッファメモ
リの書き込みアドレスをシフトしながら指定するライト
ポインタと、リード用イネーブル信号に応答してバッフ
ァメモリの読み出しアドレスをシフトしながら指定する
リードポインタとからなるデータ格納メモリ回路におい
て、前記ライト用イネーブル信号に応答して前記書き込
み回数をカウントするライト用カウンタと、前記書き込
み回数に分けて順に書き込まれる前記データ長が決まっ
たデータの最後の書き込みが完了した時、前記ライト用
カウンタが前記書き込み回数を示していない時、前記デ
ータの書き込み異常と判断する第2のライト用検出回路
とを備えた。
【0027】請求項11に記載の発明は、データ長が決
まったデータが予め定められた複数回の書き込み回数に
分けて順に書き込まれるとともに予め定められた複数回
の読み出し回数に分けて順に読み出されるバッファメモ
リと、ライト用イネーブル信号に応答してバッファメモ
リの書き込みアドレスをシフトしながら指定するライト
ポインタと、リード用イネーブル信号に応答してバッフ
ァメモリの読み出しアドレスをシフトしながら指定する
リードポインタとからなるデータ格納メモリ回路におい
て、前記リード用イネーブル信号に応答して前記読み出
し回数をカウントするリード用カウンタと、前記読み出
し回数に分けて順に読み出される前記データ長が決まっ
たデータの最後の読み出しが完了した時、前記リード用
カウンタが前記読み出し回数を示していない時、前記デ
ータの読み出し異常と判断する第2のリード用検出回路
とを備えた。
【0028】請求項12に記載の発明は、データ長が決
まったデータが予め定められた複数回の書き込み回数に
分けて順に書き込まれるとともに予め定められた複数回
の読み出し回数に分けて順に読み出されるバッファメモ
リと、ライト用イネーブル信号に応答してバッファメモ
リの書き込みアドレスをシフトしながら指定するライト
ポインタと、リード用イネーブル信号に応答してバッフ
ァメモリの読み出しアドレスをシフトしながら指定する
リードポインタとからなるデータ格納メモリ回路におい
て、前記ライトポインタ及びリードポインタのカウント
アップ値を前記データ長の整数倍であって前記バッファ
メモリの記憶容量を超さない複数個の値の中の最大の値
をカウントアップ値として指定するポインタループ設定
回路と、前記ライト用イネーブル信号に応答して前記書
き込み回数をカウントするライト用カウンタと、前記リ
ード用イネーブル信号に応答して前記読み出し回数をカ
ウントするリード用カウンタと、前記書き込み回数に分
けて順に書き込まれる前記データ長が決まったデータの
最後の書き込みが完了した時、前記書き込み回数をカウ
ントするライト用カウンタが前記書き込み回数を示して
いない時、前記データの書き込み異常と判断する第2の
ライト用検出回路と、前記読み出し回数に分けて順に読
み出される前記データ長が決まったデータの最後の読み
出しが完了した時、前記読み出し回数をカウントするリ
ード用カウンタが前記読み出し回数を示していない時、
前記データの読み出し異常と判断する第2のリード用検
出回路と、前記第2のライト用検出回路が書き込み異常
と判断した時、前記ライトポインタの書き込みアドレス
を前記カウントアップ値とデータ長とに基づいて求めら
れた複数個の特定アドレスの中からその時の示している
書き込みアドレスに最も近い特定アドレスに書き替える
ライト用アドレス変更回路と、前記第2のリード用検出
回路が読み出し異常と判断した時、前記リードポインタ
の読み出しアドレスを前記カウントアップ値とデータ長
とに基づいて求められた複数個の特定アドレスの中から
その時の示している読み出しアドレスに最も近い特定ア
ドレスに書き替えるリード用アドレス変更回路とを備え
た。請求項13に記載の発明は、請求項10に記載のデ
ータ格納メモリ回路において、前記第2のライト用検出
回路が書き込み異常と判断した時、前記ライトポインタ
の書き込みアドレスを前記カウントアップ値とデータ長
とに基づいて求められた複数個の特定アドレスの中から
その時の示している書き込みアドレスに最も近い特定ア
ドレスに書き替えるライト用アドレス変更回路を備え
た。
【0029】請求項14に記載の発明は、請求項11に
記載のデータ格納メモリ回路において、前記第2のリー
ド用検出回路が読み出し異常と判断した時、前記リード
ポインタの読み出しアドレスを前記カウントアップ値と
データ長とに基づいて求められた複数個の特定アドレス
の中からその時の示している読み出しアドレスに最も近
い特定アドレスに書き替えるリード用アドレス変更回路
を備えた。
【0030】請求項15に記載の発明は、データ長が決
まったデータが予め定められた複数回の書き込み回数に
分けて順に書き込まれるとともに予め定められた複数回
の読み出し回数に分けて順に読み出されるバッファメモ
リと、ライト用イネーブル信号に応答してバッファメモ
リの書き込みアドレスをシフトしながら指定するライト
ポインタと、リード用イネーブル信号に応答してバッフ
ァメモリの読み出しアドレスをシフトしながら指定する
リードポインタとからなるデータ格納メモリ回路におい
て、前記ライトポインタ及びリードポインタのカウント
アップ値を前記データ長の整数倍であって前記バッファ
メモリの記憶容量を超さない複数個の値の中の最大の値
をカウントアップ値として指定するポインタループ設定
回路と、前記複数回に分けて順に書き込まれる前記デー
タ長が決まったデータの最後の書き込みが完了した時、
その時のライトポインタの書き込みアドレスが前記カウ
ントアップ値とデータ長とに基づいて求められた複数個
の特定アドレスのいずれにも該当しない時、書き込み異
常と判断するライト用検出回路と、前記読み出し回数に
分けて順に読み出される前記データ長が決まったデータ
の最後の読み出しが完了した時、その時のリードポイン
タの読み出しアドレスが前記カウントアップ値とデータ
長とに基づいて求められた複数個の特定アドレスのいず
れにも該当しない時、読み出し異常と判断するリード用
検出回路と、前記ライト用イネーブル信号に応答して前
記書き込み回数をカウントするライト用カウンタと、前
記リード用イネーブル信号に応答して前記読み出し回数
をカウントするリード用カウンタと、前記書き込み回数
に分けて順に読み出される前記データ長が決まったデー
タの最後の書き込みが完了した時、前記ライト用カウン
タが前記書き込み回数を示していない時、前記データの
書き込み異常と判断する第2のライト用検出回路と、前
記読み出し回数に分けて順に読み出される前記データ長
が決まったデータの最後の読み出しが完了した時、前記
読み出し回数をカウントするリード用カウンタが前記読
み出し回数を示していない時、前記データの読み出し異
常と判断する第2のリード用検出回路と、前記ライト用
検出回路又は第2のライト用検出回路が読み出し異常と
判断した時、前記ライトポインタの書き込みアドレスを
前記カウントアップ値とデータ長とに基づいて求められ
た複数個の特定アドレスの中からその時の示している読
み出しアドレスに最も近い特定アドレスに書き替えるラ
イト用アドレス変更回路と、前記リード用検出回路又は
第2のリード用検出回路が読み出し異常と判断した時、
前記リードポインタの読み出しアドレスを前記カウント
アップ値とデータ長とに基づいて求められた複数個の特
定アドレスの中からその時の示している読み出しアドレ
スに最も近い特定アドレスに書き替えるリード用アドレ
ス変更回路とを備えた。
【0031】(作用)請求項1の発明によれば、バッフ
ァメモリはカウントアップ値によってその記憶容量が決
まる。この時、そのライトポインタのカウントアップ値
を、データ長の整数倍であってバッファメモリの記憶容
量を超さない複数個の中の最大の値をカウントアップ値
としたことから、データ長が決まった各データは、ライ
トポインタの書き込みアドレスに従ってバッファメモリ
に書き込まれる場合、正常に書き込まれた時には、デー
タ長の整数倍でかつ前記カウントアップ値以下の複数個
存在する特定のアドレスのいずれかでその書き込みが完
了する。その結果、書き込みが異常の場合には、該特定
のアドレスから外れたアドレスで書き込みが完了する。
そして、書き込み異常が生じたとき、ライトポインタの
書き込みアドレスを複数個の特定アドレスの中からその
時の示している書き込みアドレスに最も近い特定アドレ
スに書き替えるようにしたので、次に書き込まれる後続
のデータが正常な位置から書き込まれ、該後続のデータ
は特定の書き込みアドレスでその書き込みが完了する。
【0032】請求項2の発明によれば、データ長が決ま
ったデータは正常に書き込まれる際にはライト用イネー
ブル信号に応答して予め定められた書き込み回数で書き
込みを完了する。従って、データ長が決まったデータの
最後の書き込みが完了した時、ライト用カウンタがその
書き込み回数を示していない時には、異常書き込みとな
る。そして、書き込み異常が生じたとき、ライトポイン
タの書き込みアドレスを複数個の特定アドレスの中から
その時の示している書き込みアドレスに最も近い特定ア
ドレスに書き替えるようにしたので、次に書き込まれる
後続のデータが正常な位置から書き込まれ、該後続のデ
ータは特定の書き込みアドレスでその書き込みが完了す
る。
【0033】請求項3の発明によれば、リードポインタ
のカウントアップ値を、データ長の整数倍であってバッ
ファメモリの記憶容量を超さない複数個の中の最大の値
をカウントアップ値としたことから、データ長が決まっ
た各データは、リードポインタの読み出しアドレスに従
ってバッファメモリから読み出される場合、正常に読み
出された時には、データ長の整数倍でかつ前記カウント
アップ値以下の複数個存在する特定のアドレスのいずれ
かでその読み出しが完了する。その結果、読み出しが異
常の場合には、該特定のアドレスから外れたアドレスで
読み出しが完了することになる。そして、読み出し異常
が生じたとき、リードポインタの読み出しアドレスを複
数個の特定アドレスの中からその時の示している読み出
しアドレスに最も近い特定アドレスに書き替えるように
したので、次に読み出される後続のデータが正常な位置
から読み出され、該後続のデータは特定の読み出しアド
レスでその読み出しが完了する。
【0034】請求項4の発明によれば、データ長が決ま
ったデータは正常に読み出される際にはリード用イネー
ブル信号に応答して予め定められた読み出し回数で読み
出しを完了する。従って、データ長が決まったデータの
最後の読み出しが完了した時、リード用カウンタがその
読み出し回数を示していない時には、異常読み出しとな
る。そして、読み出し異常が生じたとき、リードポイン
タの読み出しアドレスを複数個の特定アドレスの中から
その時の示している読み出しアドレスに最も近い特定ア
ドレスに書き替えるようにしたので、次に読み出される
後続のデータが正常な位置から読み出され、該後続のデ
ータは特定の読み出しアドレスでその書き込みが完了す
る。
【0035】請求項5の発明によれば、ポインタループ
設定回路によりライトポインタのカウントアップ値を、
データ長の整数倍であってバッファメモリの記憶容量を
超さない複数個の中の最大の値をカウントアップ値とし
たことから、データ長が決まった各データはライトポイ
ンタの書き込みアドレスに従ってバッファメモリに書き
込まれる場合、正常に書き込まれた時には、データ長の
整数倍でかつ前記カウントアップ値以下の複数個存在す
る特定のアドレスのいずれかでその書き込みが完了する
ことになる。従って、ライト用検出回路は、データの書
き込みが完了した時にライトポインタのその時の書き込
みアドレスをみて、特定アドレスを示さなかったときに
は書き込み異常と判断することができる。
【0036】請求項6の発明によれば、ポインタループ
設定回路によりリードポインタのカウントアップ値を、
データ長の整数倍であってバッファメモリの記憶容量を
超さない複数個の中の最大の値をカウントアップ値とし
たことから、データ長が決まった各データはリードポイ
ンタの読み出しアドレスに従ってバッファメモリから読
み出される場合、正常に読み出された時には、データ長
の整数倍でかつ前記カウントアップ値以下の複数個存在
する特定のアドレスのいずれかでその読み出しが完了す
ることになる。従って、リード用検出回路は、データの
読み出しが完了した時にリードポインタのその時の読み
出しアドレスをみて、特定アドレスを示さなかったとき
には読み出し異常と判断することができる。
【0037】請求項7の発明によれば、請求項5及び6
に記載した発明の作用に加えて、ライト用検出回路が書
き込み異常と判断したとき、ライト用アドレス変更回路
はライトポインタの書き込みアドレスを複数個の特定ア
ドレスの中からその時の示している書き込みアドレスに
最も近い特定アドレスに書き替えるようにした。その結
果、次に書き込まれる後続のデータが正常な位置から書
き込まれ該後続のデータは特定の書き込みアドレスでそ
の書き込みが完了することになる。又、リード用検出回
路が読み出し異常と判断したとき、リード用アドレス変
更回路はリードポインタの読み出しアドレスを複数個の
特定アドレスの中からその時の示している読み出しアド
レスに最も近い特定アドレスに書き替えるようにした。
その結果、次に読み出される後続のデータが正常な位置
から読み出され、該後続のデータは特定の読み出しアド
レスでその書き込みが完了することになる。
【0038】請求項8の発明によれば、請求項5に記載
した発明の作用に加えて、ライト用検出回路が書き込み
異常と判断したとき、ライト用アドレス変更回路はライ
トポインタの書き込みアドレスを複数個の特定アドレス
の中からその時の示している書き込みアドレスに最も近
い特定アドレスに書き替えるようにした。その結果、次
に書き込まれる後続のデータが正常な位置から書き込ま
れ、該後続のデータは特定の書き込みアドレスでその書
き込みが完了することになる。
【0039】請求項9の発明によれば、請求項6に記載
した発明の作用に加えて、リード用検出回路が読み出し
異常と判断したとき、リード用アドレス変更回路はリー
ドポインタの読み出しアドレスを複数個の特定アドレス
の中からその時の示している読み出しアドレスに最も近
い特定アドレスに書き替えるようにした。その結果、次
に読み出される後続のデータが正常な位置から読み出さ
れ、該後続のデータは特定の読み出しアドレスでその書
き込みが完了することになる。
【0040】請求項10の発明によれば、データ長が決
まったデータの最後の書き込みが完了した時、正常に書
き込みが行われた時にはライト用カウンタはその書き込
み回数を示す。第2のライト用検出回路は、データ長が
決まったデータの最後の書き込みが完了した時、前記ラ
イト用カウンタが前記書き込み回数を示していない時、
書き込み異常が生じたと判断することができる。
【0041】請求項11の発明によれば、データ長が決
まったデータの最後の読み出しが完了した時、正常に読
み出しが行われた時にはリード用カウンタはその読み出
し回数を示す。第2のリード用検出回路は、データ長が
決まったデータの最後の読み出しが完了した時、前記リ
ード用カウンタが前記読み出し回数を示していない時、
読み出し異常が生じたと判断することができる。
【0042】請求項12の発明によれば、請求項10及
び11に記載の発明の作用に加えて、第2のライト用検
出回路が書き込み異常と判断したとき、ライト用アドレ
ス変更回路はライトポインタの書き込みアドレスを複数
個の特定アドレスの中からその時の示している書き込み
アドレスに最も近い特定アドレスに書き替えるようにし
た。その結果、次に書き込まれる後続のデータが正常な
位置から書き込まれ、該後続のデータは特定の書き込み
アドレスでその書き込みが完了することになる。又、第
2のリード用検出回路が読み出し異常と判断したとき、
リード用アドレス変更回路はリードポインタの読み出し
アドレスを複数個の特定アドレスの中からその時の示し
ている読み出しアドレスに最も近い特定アドレスに書き
替えるようにした。その結果、次に読み出される後続の
データが正常な位置から読み出され、該後続のデータは
特定の読み出しアドレスでその書き込みが完了すること
になる。
【0043】請求項13の発明によれば、請求項10に
記載の発明の作用に加えて、第2のライト用検出回路が
書き込み異常と判断したとき、ライト用アドレス変更回
路はライトポインタの書き込みアドレスを複数個の特定
アドレスの中からその時の示している書き込みアドレス
に最も近い特定アドレスに書き替えるようにした。その
結果、次に書き込まれる後続のデータが正常な位置から
書き込まれ、該後続のデータは特定の書き込みアドレス
でその書き込みが完了することになる。
【0044】請求項14の発明によれば、請求項11に
記載の発明の作用に加えて、第2のリード用検出回路が
読み出し異常と判断したとき、リード用アドレス変更回
路はリードポインタの読み出しアドレスを複数個の特定
アドレスの中からその時の示している読み出しアドレス
に最も近い特定アドレスに書き替えるようにした。その
結果、次に読み出される後続のデータが正常な位置から
読み出され、該後続のデータは特定の読み出しアドレス
でその書き込みが完了することになる。
【0045】請求項15の発明によれば、請求項5,
6,10及び11に記載した発明の作用に加えて、ライ
ト用検出回路又は第2のライト用検出回路が書き込み異
常と判断したとき、ライト用アドレス変更回路はライト
ポインタの書き込みアドレスを複数個の特定アドレスの
中からその時の示している書き込みアドレスに最も近い
特定アドレスに書き替えるようにした。その結果、次に
書き込まれる後続のデータが正常な位置から書き込ま
れ、該後続のデータは特定の書き込みアドレスでその書
き込みが完了することになる。
【0046】又、リード用検出回路又は第2のリード用
検出回路が読み出し異常と判断したとき、リード用アド
レス変更回路はリードポインタの読み出しアドレスを複
数個の特定アドレスの中からその時の示している読み出
しアドレスに最も近い特定アドレスに書き替えるように
した。その結果、次に読み出される後続のデータが正常
な位置から読み出され、該後続のデータは特定の読み出
しアドレスでその書き込みが完了することになる。
【0047】
【発明の実施の形態】図3は、IEEE1394に準拠
したシステム構成を示す。パーソナルコンピュータ(以
下、パソコンという)1、周辺装置としてのデジタルV
TR2及び同じく周辺装置としてのカラーページプリン
タ3は、IEEE1394に準拠したバス4を介して互
いに接続されている。
【0048】図2は、パソコン1に設けたIEEE13
94に準拠したシステム構成を説明するためのブロック
回路を示す。パソコン1は、IEEE1394用プロト
コルコントローラ(以下、IPCという)11、マイク
ロプロセッサユニット(以下、MPUという)12及び
DMA(Direct Memory Access)コントローラ(以下、
DMACという)13を備えている。IPC11、MP
U12及びDMAC13は、それぞれ1チップの半導体
集積回路装置(LSI)にて形成されている。
【0049】IPC11は、MPU12及びDMAC1
3との間でデータの授受を行う。IPC11は、バス4
を介して前記デジタルVTR2及びカラーページプリン
タ3に備えられたIEEE1394用プロトコルコント
ローラ(IPC)と接続されている。
【0050】IPC11は、プロトコル制御回路部2
1、送信用パケットデータ格納メモリ回路22、受信用
パケットデータ格納メモリ回路23、第1の入出力イン
タフェース24、及び、第2の入出力インタフェース2
5を備えている。
【0051】第1の入出力インタフェース24は、バス
4を介してデジタルVTR2に接続され、プロトコル制
御回路部21とデジタルVTR2のIPCとの間でアイ
ソクロナス転送におけるパケット27のやり取りを行
う。第2の入出力インタフェース25は、バス4を介し
てカラーページプリンタ3に接続され、プロトコル制御
回路部21とページプリンタ3のIPCとの間でアイソ
クロナス転送におけるパケット27のやり取りを行う。
パケット27は、図4に示すようにヘッダ28とアイソ
クロナス・データ29とで構成されている。
【0052】送信用パケットデータ格納メモリ回路22
は、前記DMAC13に接続されている。送信用パケッ
トデータ格納メモリ回路22はそのDMAC13から出
力される送信のための転送データ(パケット27)を入
力し一時保持する。送信用パケットデータ格納メモリ回
路22はプロトコル制御回路部21に接続されている。
そして、送信用パケットデータ格納メモリ回路22は、
一時保持している転送データ(パケット27)をプロト
コル制御回路部21に出力する。
【0053】受信用パケットデータ格納メモリ回路23
は、前記プロトコル制御回路部21に接続されている。
受信用パケットデータ格納メモリ回路23はその制御回
路部21から出力される受信のための転送データ(パケ
ット27)を入力し一時保持する。受信用パケット格納
メモリ回路23はDMAC13に接続されている。そし
て、受信用パケットデータ格納メモリ回路23は、一時
保持している転送データ(パケット27)をDMAC1
3に出力する。
【0054】プロトコル制御回路部21は、第1及び第
2の入出力インタフェース24,25と接続されてい
る。プロトコル制御回路部21は、第1の入出力インタ
フェース24及びバス4を介して前記デジタルVTR2
のプロトコル制御回路部との間でアイソクロナス転送に
おける転送データ(パケット27)のやり取りを行うと
ともに、その入力した転送データを第2の入出力インタ
フェース25を介してカラーページプリンタ3に出力す
る。又、プロトコル制御回路部21は、第2の入出力イ
ンタフェース25及びバス4を介して前記カラーページ
プリンタ3のプロトコル制御回路部との間でアイソクロ
ナス転送における転送データ(パケット27)のやり取
りを行うとともに、その入力した転送データを第1の入
出力インタフェース24を介してデジタルVTR2に出
力する。
【0055】プロトコル制御回路部21は、MPU12
との間で制御データの授受を行い、インタフェース2
4,25から入力した転送データが自装置(パソコン
1)のために転送された転送データかどうかを解析す
る。そして、自装置のための転送データであると解析す
ると、プロトコル制御回路部21はMPU12からの制
御データに基づいて受信用パケットデータ格納メモリ回
路23を介してDMAC13に転送させるようになって
いる。
【0056】又、プロトコル制御回路部21は、MPU
12からの制御データに基づいて送信信用パケットデー
タ格納メモリ回路22に記憶されているDMAC13か
ら出力される送信のための転送データ(パケット27)
を入力する。そして、プロトコル制御回路部21は、ヘ
ッダを付加して第1及び第2入出力インタフェース2
4,25に出力するようになっている。
【0057】次に、送信用パケットデータ格納メモリ回
路22について説明する。説明の便宜上、転送データ
(パケット27)の内、ヘッダ28の付かないアイソク
ロナス・データ29を一時保持する部分の回路構成につ
いて説明する。そして、本実施形態では、説明の便宜
上、該アイソクロナス・データ29は決まった250バ
イトのバイト長とする。
【0058】図1は、そのブロック回路を示す。図1に
おいて、送信用パケットデータ格納メモリ回路22は、
バッファメモリ31、ライトポインタ32、リードポイ
ンタ33、ポインタループ設定回路34、ライト用カウ
ンタ35、リード用カウンタ36、ライト用及びリード
用検出回路としての第1の検出回路37、第2のライト
用及びリード用検出回路としての第2の検出回路38、
切れ目カウンタ39、割込み信号生成回路40、ライト
用及びリード用アドレス変更回路としてのアドレス変更
回路41、及び、制御用レジスタ42を備えている。
【0059】バッファメモリ31は、2ポートの読み出
し及び書き替え可能なメモリ(RAM)よりなり、本実
施形態では説明の便宜上1024バイトのメモリ容量と
している。該バッファメモリ31は前記DMAC13か
ら順次出力される予め決まった250バイト長のアイソ
クロナス・データ29が1バイトの単位で書き込まれ、
その書き込まれた250バイト長のアイソクロナス・デ
ータ29が1バイトの単位で読み出される。従って、読
み出し及び書き込みアドレスは、それぞれ「0」〜「1
023」までの合計1024アドレスを有している。
又、250バイト長のアイソクロナス・データ29の全
てを書き込むための書き込み回数は250回となる。同
様に、250バイト長のアイソクロナス・データ29の
全てを読み出すための読み出し回数は250回となる。
【0060】ライトポインタ32は書き込みのためのア
ドレスカウンタであって、そのポインタ32が示す値が
書き込みアドレスとなる。ライトポインタ32は「0」
から「1023」の値がカウントできるポインタであ
る。ライトポインタ32は、1バイトのデータを書き込
みするたび毎に前記MPU12から出力されるライト用
イネーブル信号WEの数を加算する。従って、ライトポ
インタ32は、ライト用イネーブル信号WEが入力され
る毎に値(書き込みアドレス)が「1」づつインクリメ
ントされ、バッファメモリ31のアドレスが1づつ上位
アドレスにシフトされる。そして、このMPU12から
のライト用イネーブル信号WEが出力される毎にDMA
C13から250バイト長のアイソクロナス・データ2
9の内の1バイト分のアイソクロナス・データ29がバ
ッファメモリ31に出力され、この1バイト分のアイソ
クロナス・データ29は、インクリメントされたライト
ポインタ32の示すアドレスに書き込まれる。
【0061】又、ライトポインタ32の値がカウントア
ップ値、即ちこの場合は「1023」の時、次の新たな
ライト用イネーブル信号WEが入力されると、ライトポ
インタ32は、「0」の値にリセットされる。このライ
トポインタ32は、「0」にリセットされる前の値、即
ちカウントアップ値を適宜変更することができるように
なっている。
【0062】リードポインタ33は読み出しのためのア
ドレスカウンタであって、そのポインタ33が示す値が
読み出しアドレスとなる。リードポインタ33は「0」
から「1023」の値がカウントできるカウンタであ
る。リードポインタ33は、1バイトのデータを読み出
すたび毎にプロトコル制御回路部21から出力されるリ
ード用イネーブル信号REの数を加算する。従って、リ
ードポインタ33は、リード用イネーブル信号REが入
力される毎に値(読み出しアドレス)が「1」づつイン
クリメントされ、バッファメモリ31のアドレスが1づ
つ上位アドレスにシフトされる。そして、リードポイン
タ33の値が示すバッファメモリ31のアドレスから1
バイト分のアイソクロナス・データ29が前記プロトコ
ル制御回路部21に出力される。
【0063】又、リードポインタ33の値がカウントア
ップ値、即ちこの場合は「1023」の時、次の新たな
リード用イネーブル信号REが入力されると、リードポ
インタ33は、「0」の値にリセットされる。このリー
ドポインタ33は、「0」にリセットされる前の値、即
ちカウントアップ値を適宜変更することができるように
なっている。
【0064】又、ライトポインタ32及びリードポイン
タ33の内容は、前記MPU12に出力されるようにな
っていて、MPU12はバッファメモリ31のフル状態
/エンプティ状態を把握してバッファメモリ31へのア
イソクロナス・データ29の書き込み及び読み出しを前
記プロトコル制御回路部21を介して制御するようにな
っている。
【0065】このように、ライトポインタ32及びリー
ドポインタ33の値に基づいてその書き込みアドレス及
び読み出しアドレスが1アドレスづつシフトされること
により、該バッファメモリ31はFIFO(First In F
irst Out)形式のデータバッファメモリとなる。
【0066】ポインタループ設定回路34は、ライトポ
インタ32とリードポインタ33に接続されている。ポ
インタループ設定回路34は、ライトポインタ32及び
リードポインタ33の前記カウントアップ値を変更する
データを出力する。このカウントアップ値は、アイソク
ロナス・データ29のバイト長の整数倍であって、前記
バッファメモリ31のメモリ容量を超えない最大値に設
定している。このカウントアップ値の設定は、制御用レ
ジスタ42に設定されたデータ長変更データに基づいて
行われる。
【0067】本実施形態では、前記1つのパケット27
におけるアイソクロナス・データ29を説明の便宜上2
50バイト長とした。又、1バイトの単位で書き込み及
び読み出しが行われるバッファメモリ31のメモリ容量
を1024バイトとしている。そして、250バイト長
の整数場合であって、1024バイトを超えない値をカ
ウントアップ値とすることから、カウントアップ値は
「1000(=250×4<1024)」となる。
【0068】詳述すると、ライトポインタ32及びリー
ドポインタ33は、「0」を含むため、「0」から「9
99」までのカウンタとなり、カウントアップ値は「9
99」となる。従って、ライトポインタ32は、値が
「999」の時、新たなライト用イネーブル信号WEが
出力されると、「0」にリセットされる。同様に、リー
ドポインタ33は、値が「999」の時、新たなリード
用イネーブル信号REが出力されると、「0」にリセッ
トされる。そして、再び「0」からカウント動作を行
う。
【0069】従って、バッファメモリ31には、最大4
個のパケット27のアイソクロナス・データ29が書き
込みが可能となる。そして、アドレスが「0」が最初の
書き込まれるアドレスとすると、常に1つのパケット2
7の250バイト長のアイソクロナス・データ29が書
き込みを完了するアドレス(特定アドレス)は、「24
9」、「499」、「749」又は「999」のいずれ
かのアドレスとなる。従って、これ以外のアドレスで1
つのパケット27における250バイト長のアイソクロ
ナス・データ29の書き込みが完了した時には、何らか
の原因で正常に書き込みが行われなかったことになる。
【0070】又、常に1つのパケット27の250バイ
ト長のアイソクロナス・データ29が最後に読み出しを
完了する特定アドレスは、「249」、「499」、
「749」又は「999」のいずれかのアドレスとな
る。従って、これ以外のアドレスで1つのパケット27
における250バイト長のアイソクロナス・データ29
の読み出しが完了した時には、何らかの原因で正常に読
み出しが行われなかったことになる。
【0071】第1の検出回路37は、ライトポインタ3
2とリードポインタ33と接続され、各ポインタ32,
33のその時々の値(アドレス)を入力する。第1の検
出回路37は、前記MPU12からの入力データ切れ目
信号EN1及び出力データ切れ目信号EN2を入力す
る。入力データ切れ目信号EN1は、1つのパケット2
7における250バイトのアイソクロナス・データ29
のバッファメモリ31への出力が完了したことをMPU
12が判断し出力する信号である。又、出力データ切れ
目信号EN2は、1つのパケット27における250バ
イトのアイソクロナス・データ29の読み出しが完了し
たことMPU12が判断し出力する信号である。
【0072】第1の検出回路37は、入力データ切れ目
信号EN1に応答してその時のライトポインタ32の値
(アドレス)が「249」、「499」、「749」又
は「999」のいずれかの特定アドレスとなるかどうか
判断する。そして、一致するアドレスがある場合には、
その書き込みが完了したパケット27における250バ
イト長のアイソクロナス・データ29は正常に書き込ま
れたと判定する。
【0073】反対に、一致しない場合には、その書き込
みが完了したパケット27における250バイト長のア
イソクロナス・データ29は正常に書き込まれなかっ
た、即ち異常書き込みがなされたと判断する。異常書き
込みと判断した時には、第1の検出回路37は第1書き
込み異常信号S1を出力する。
【0074】又、第1の検出回路37は、出力データ切
れ目信号EN2に応答してその時のリードポインタ33
の値(アドレス)が「249」、「499」、「74
9」又は「999」のいずれかの特定アドレスとなるか
どうか判断する。そして、一致する特定アドレスがある
場合には、その読み出しが完了したパケット27におけ
る250バイト長のアイソクロナス・データ29は正常
に読み出されたと判定する。
【0075】反対に、一致しない場合には、その読み出
しが完了したパケット27における250バイトのアイ
ソクロナス・データ29は正常に読み出されなかった、
即ち異常読み出しがなされたと判断する。異常読み出し
と判断した時には、第1の検出回路37は第1読み出し
異常信号S2を出力する。
【0076】前記入力データ切れ目信号EN1及び出力
データ切れ目信号EN2は、切れ目カウンタ39に出力
される。切れ目カウンタ39は、制御用レジスタ42の
分割ブロックデータに基づいてカウントアップ値が設定
される。そして、例えば分割ブロックデータが「1」の
時、カウントアップ値は「1」となり、切れ目カウンタ
39は入力データ切れ目信号EN1が1つ出力される毎
に第1検出信号N1を出力する。同様に、切れ目カウン
タ39は、出力データ切れ目信号EN2が1つ出力され
る毎に第2検出信号N2を出力する。
【0077】ライト用カウンタ35は、前記ライト用イ
ネーブル信号WEを入力し前記書き込み回数をカウント
する。本実施形態では、1つのパケット27におけるア
イソクロナス・データ29の250バイト長に対応して
250個目のライト用イネーブル信号WEを入力する
と、第1ピリオド信号P1を出力するとともにリセット
し再び最初から250個のライト用イネーブル信号WE
をカウントする。従って、ライト用カウンタ35は、ア
イソクロナス・データ29が正常にバッファメモリ31
に書き込まれている状態では、1パケット27における
250バイト長のアイソクロナス・データ29の全てが
書き込まれる毎に第1ピリオド信号P1が出力されるこ
とになる。
【0078】リード用カウンタ36は、前記リード用イ
ネーブル信号REを入力し前記読み出し回数をカウント
する。本実施形態では、1つのパケット27におけるア
イソクロナス・データ29の250バイト長に対応して
250個目のリード用イネーブル信号REを入力する
と、第2ピリオド信号P2を出力するとともにリセット
し再び最初から250個のリード用イネーブル信号RE
をカウントする。従って、リード用カウンタ36は、ア
イソクロナス・データ29が正常にバッファメモリ31
から読み出されている状態では、1つのパケット27に
おける250バイト長のアイソクロナス・データ29の
全てが読み出される毎に第2ピリオド信号P2が出力さ
れることになる。
【0079】第2の検出回路38は前記ライト用及びリ
ード用カウンタ35,36に接続され、各カウンタ3
5,36からの第1及び第2ピリオド信号P1,P2を
入力する。又、第2の検出回路38は切れ目カウンタ3
9に接続され、前記第1及び第2検出信号N1,N2を
入力する。
【0080】第2の検出回路38は、第1ピリオド信号
P1が出力されると同時に、前記切れ目カウンタ39の
第1検出信号N1が出力されたかどうか判断する。そし
て、同時である時、その書き込みが完了したパケット2
7における250バイト長のアイソクロナス・データ2
9は正常に書き込まれたと判定する。反対に、同時でな
い場合には、その書き込みが完了したパケット27にお
ける250バイト長のアイソクロナス・データ29は正
常に書き込まれなかった、即ち異常書き込みがなされた
と判断する。異常書き込みと判断した時には、第2の検
出回路38は第2書き込み異常信号S3を出力する。
【0081】第2の検出回路38は、第2ピリオド信号
P2が出力されると同時に、前記切れ目カウンタ39の
第2検出信号N2が出力されたかどうか判断する。そし
て、同時である時、その読み出しが完了したパケット2
7における250バイトのアイソクロナス・データ29
は正常に読み出されたと判定する。反対に、同時でない
場合には、その書き込みが完了したパケット27におけ
る250バイトのアイソクロナス・データ29は正常に
読み出されなかった、即ち異常読み出しがなされたと判
断する。異常読み出しと判断した時には、第2の検出回
路38は第2読み出し異常信号S4を出力する。
【0082】割込み信号生成回路40は、第1の検出回
路37と接続し、該第1の検出回路37からの第1書き
込み異常信号S1及び第1読み出し異常信号S2を入力
する。割込み信号生成回路40は、第1書き込み異常信
号S1に応答して第1割込み信号T1を出力するととも
に、第1読み出し異常信号S2に応答して第2割込み信
号T2をアドレス変更回路41及びMPU12に出力す
るようになっている。
【0083】又、割込み信号生成回路40は、第2の検
出回路38と接続し、該第2の検出回路38からの第2
書き込み異常信号S3及び第2読み出し異常信号S4を
入力する。割込み信号生成回路40は、第2書き込み異
常信号S3に応答して第1割込み信号T1を、又、第2
読み出し異常信号S4に応答して第2割込み信号T2を
アドレス変更回路41及びMPU12に出力するように
なっている。
【0084】アドレス変更回路41は、第1割込み信号
T1に応答して、その書き込みが完了したパケット27
における250バイトのアイソクロナス・データ29は
正常に書き込まれなかった状態がバッファメモリ31に
発生したとして、その時のライトポインタ32の値を読
み出す。そして、アドレス変更回路41は、ライトポイ
ンタ32の値を強制的に変更する処理を実行する。変更
する値(アドレス)は、「249」、「499」、「7
49」又は「999」のいずれかの特定アドレスにす
る。詳述すると、この4つの特定アドレスの中からその
時のライトポインタ32の値(アドレス)に最も近い特
定アドレスが選択され、その選択された特定アドレスに
ライトポインタ32の値を変更する。
【0085】例えば、ライトポインタ32の値(アドレ
ス)が「512」のとき、何らかの原因で例えばライト
用イネーブル信号WEにノイズが入り、1つのパケット
27におけるアイソクロナス・データ29が250バイ
ト長以上のデータが余分にバッファメモリ31のアドレ
ス「250」〜「512」までに書き込まれたと判断す
る。即ち、「500」〜「512」までのアドレスに余
分な13バイトのデータが書き込まれていると判断す
る。従って、後続のパケット27の250バイト長のア
イソクロナス・データ29は「513」のアドレスから
書き込まれることになる。
【0086】そこで、これを防止し、「500」〜「7
49」のアドレスに後続のパケット27の250バイト
長のアイソクロナス・データ29を書き込むことができ
るように、アドレス変更回路41はライトポインタ32
の値を「499」と変更するようにしている。
【0087】又、アドレス変更回路41は、第2割込み
信号T2に応答して、その読み出しが完了したパケット
27における250バイト長のアイソクロナス・データ
29は正常に読み出されなかった状態がバッファメモリ
31に発生したとして、その時のリードポインタ33を
読み出す。そして、アドレス変更回路41は、リードポ
インタ33の値を強制的に変更する処理を実行する。変
更する値(アドレス)は、「249」、「499」、
「749」又は「999」のいずれかの特定アドレスに
する。詳述すると、この4つの特定アドレスの中からそ
の時のリードポインタ33の値(アドレス)に最も近い
特定アドレスが選択され、その選択された特定アドレス
にリードポインタ33の値を変更する。
【0088】例えば、リードポインタ33の値(アドレ
ス)が「730」のとき、何らかの原因で例えばリード
用イネーブル信号REにノイズが入り、1つのパケット
27におけるアイソクロナス・データ29が250バイ
ト未満のデータであってバッファメモリ31のアドレス
「500」〜「730」までのデータしか読み出されな
かったと判断する。即ち、「731」〜「749」まで
のアドレスにある19バイトのデータが読み出されなか
ったと判断する。従って、後続のパケット27の250
バイト長のアイソクロナス・データ29は「731」の
アドレスから始まるとしてその「731」のアドレスか
ら読み出されることになる。
【0089】そこで、これを防止し、「750」〜「9
99」のアドレスにある後続のパケット27の250バ
イト長のアイソクロナス・データ29が読み出すことが
できるように、アドレス変更回路41はリードポインタ
32の値を「749」と変更するようにしている。
【0090】制御用レジスタ42は各種のモード設定用
のデータがMPU12により記録されるレジスタであ
る。モード設定のデータには、第1の有効データ、第2
の有効データ、バイト長変更データ、分割データ等があ
る。
【0091】第1の有効データは、第1の検出回路37
を使用するかどうかを設定するデータであって、使用す
る内容が設定されている時には、該第1の検出回路37
がその内容に基づいて比較動作可能な状態になる。第2
の有効データは、第2の検出回路38を使用するかどう
かを設定するデータであって、使用する内容が設定され
ている時には該第2の検出回路38がその内容に基づい
て比較動作可能な状態になる。
【0092】バイト長変更データは、1つのパケット2
7のアイソクロナス・データ29のバイト長を例えば2
50バイト長から100バイト長にと種々変更するため
データある。そして、ポインタループ設定回路34はラ
イトポインタ32及びリードポインタ33のカウントア
ップ値を、そのバイト長変更データのバイト長の整数倍
であって、前記バッファメモリ31のメモリ容量を超え
ない値に設定している。
【0093】従って、例えば、バイト長変更データが
「150バイト長」であるとすると、カウントアップ値
は1バイトの単位で書き込み及び読み出しが行われる1
024バイトのメモリ容量のバッファメモリ31に対し
て「900(=150×6<1024)」となる。即
ち、ライトポインタ32及びリードポインタ33は、
「0」から「899」のカウントアップ値までのカウン
タとなる。
【0094】従って、バッファメモリ31には、最大4
個の150バイト長のパケット27のアイソクロナス・
データ29が書き込みが可能となる。そして、アドレス
が「0」が最初の書き込まれるアドレスとするとき、常
に1つのパケット27の150バイト長のアイソクロナ
ス・データ29が書き込みを完了する特定アドレスは、
「149」、「299」、「449」、「599」、
「749」又は「899」のいずれかのアドレスとな
る。従って、これ以外のアドレスで1つのパケット27
における150バイト長のアイソクロナス・データ29
の書き込みが完了した時には、何らかの原因で正常に書
き込みが行われなかったことになる。又、常に1つのパ
ケット27の250バイトのアイソクロナス・データ2
9が最後に読み出しを完了する特定アドレスは、「14
9」、「299」、「449」、「599」、「74
9」又は「899」のいずれかのアドレスとなる。従っ
て、これ以外のアドレスで1つのパケット27における
150バイト長のアイソクロナス・データ29の読み出
しが完了した時には、何らかの原因で正常に読み出しが
行われなかったことになる。
【0095】さらにこの場合には、ライト用及びリード
用カウンタ35,36は、それぞれ150個のライト用
及びリード用イネーブル信号WE,REをそれぞれ入力
すると第1及び第2ピリオド信号P1,P2を出力する
ようになっている。
【0096】分割データは、複数のデータ・ブロックを
まとめて1つのアイソクロナス転送のためのパケット2
7を作る場合に使用される。尚、この場合、バイト長変
更データも合わせて変更される。
【0097】例えば、50バイト長のデータ・ブロック
が5個まとめて1つのパケット27の250バイト長の
アイソクロナス・データ29する場合、及び、1つのパ
ケット27の250バイト長のアイソクロナス・データ
29を5個の50バイト長のデータ・ブロックに分割し
て読み出す場合、分割データは「5」となる。この分割
データは前記切れ目カウンタ39のカウントアップ値
「5」としてセットされる。そして、MPU12は、各
データ・ブロックの最後の1バイトのデータが書き込み
が完了する毎に入力データ切れ目信号EN1を出力する
ようになっている。従って、入力データ切れ目信号EN
1を5個数える毎に、切れ目カウンタ39は、第1検出
信号値N1を出力することになる。
【0098】そして、ライト用カウンタ35は、250
個目のライト用イネーブル信号WEが入力されると、即
ち5個のデータ・ブロックの書き込み(50×5バイト
長のデータの書き込み)が完了すると、第1ピリオド信
号P1を第2の検出回路38に出力する。又、切れ目カ
ウンタ39は5個目の入力データ切れ目信号EN1を入
力すると、第1検出信号N1を第2の検出回路38に出
力する。第2の検出回路38は、この第1ピリオド信号
P1と第1検出信号N1が同時に入力された時、1つの
パケット27の250バイト長のアイソクロナス・デー
タ29をつくるための5個のデータ・ブロックが正常に
書き込まれたと判定する。反対に、同時でない場合に
は、第2の検出回路38は、5個のデータ・ブロックが
正常に書き込まれなかった、即ち異常書き込みがなされ
たと判断する。異常書き込みと判断した時には、第2の
検出回路38は第2書き込み異常信号S3を出力する。
【0099】又、1つのパケット27の250バイト長
のアイソクロナス・データ29を5個の50バイト長の
データ・ブロックに分割して読み出す場合も同様であ
る。MPU12は各データ・ブロックの最後の1バイト
のデータが読み出しが完了する毎に出力データ切れ目信
号EN2を出力する。そして、その切れ目信号EN2を
5個数える毎に、切れ目カウンタ39は第2検出信号値
N2を出力することになる。
【0100】そして、リード用カウンタ36は、250
個目のリード用イネーブル信号REを入力すると、即ち
5個のデータ・ブロックの読み出し(50×5バイト長
のデータの書き込み)が完了すると、第2ピリオド信号
P2を第2の検出回路38に出力する。又、切れ目カウ
ンタ39は5個目の出力データ切れ目信号EN2を入力
すると、第2検出信号N2を第2の検出回路38に出力
する。第2の検出回路38は、この第2ピリオド信号P
2と第2検出信号N2が同時に入力された時、5個のデ
ータ・ブロックが正常に読み出されたと判定する。反対
に、同時でない場合には、第2の検出回路38は、5個
のデータ・ブロックが正常に読み出されなかった、即ち
異常読み出しが生じたと判断する。異常読み出しと判断
した時には、第2の検出回路38は第2読み出し異常信
号S4を出力する。
【0101】尚、受信用パケットデータ格納メモリ回路
23も上記した送信用パケットデータ格納メモリ回路2
2と同様な回路構成であり容易に理解されるため、その
説明は省略する。
【0102】次に、上記のように構成された送信用パケ
ットデータ格納メモリ回路22の作用について説明す
る。 (A)250バイト長のアイソクロナス・データ29の
書き込み。
【0103】制御用レジスタ42の第1及び第2の有効
データは第1の検出回路37及び第2の検出回路38が
共に動作する内容に設定されている。又、制御用レジス
タ42のバイト長変更データは250バイト長に設定さ
れている。さらに、制御用レジスタ42の分割データは
「1」になっている。尚、説明の便宜上、ライトポイン
タ32の値(アドレス)は「249」を示している。
【0104】250バイト長のアイソクロナス・データ
29における最初の1バイトのデータがDMAC13か
ら出力されるとともに、MPU12から最初のライト用
イネーブル信号WEが出力されると、ライトポインタ3
2は最初のライト用イネーブル信号WEに応答して「2
49」から「250」となる。最初の1バイトのデータ
はバッファメモリ31のアドレス「250」に書き込ま
れる。以後、MPU12から新たなライト用イネーブル
信号WEが入力される毎にライトポインタ32の値がイ
ンクリメントされ、アドレスが1アドレスに上位にシフ
トしそのシフトしたの新たなアドレスにアイソクロナス
・データ29が1バイトづつ書き込まれていく。この書
き込みとともに、ライト用カウンタ35は、ライト用イ
ネーブル信号WEをカウントしている。
【0105】やがて、最初のライト用イネーブル信号W
Eから数えて250個目のライト用イネーブル信号WE
が出力されると、ライトポインタ32の値が「499」
となり、250バイト長のアイソクロナス・データ29
における最後の1バイトのデータがバッファメモリ31
のアドレス「499」に書き込まれる。
【0106】250個目のライト用イネーブル信号WE
が出力されると、MPU12から入力データ切れ目信号
EN1が第1の検出回路37に出力される。第1の検出
回路37は、その切れ目信号EN1に応答してその時の
ライトポインタ32の値が「249」、「499」、
「749」又は「999」のいずれの特定アドレスに該
当するかどうか判断する。そして、正常なライト用イネ
ーブル信号WEに基づいて250バイト長のアイソクロ
ナス・データ29が正常に書き込まれたときは、ライト
ポインタ32の値は「499」となり4個の特定アドレ
スのうちの1つと一致するため、第1の検出回路37は
正常に書き込まれたと判定する。
【0107】反対に、一致しない場合には、第1の検出
回路37は異常書き込みがなされたと判断して、第1書
き込み異常信号S1を割込み信号生成回路40に出力す
る。割込み信号生成回路40は第1書き込み異常信号S
1に応答して第1割込み信号T1をアドレス変更回路4
1及びMPU12に出力するようになっている。アドレ
ス変更回路41は、第1割込み信号T1に応答して25
0バイト長のアイソクロナス・データ29が正常に書き
込まれなかった状態がバッファメモリ31に発生したと
して、その時のライトポインタ32の値を読み出す。こ
のとき、何らかの原因で例えばライト用イネーブル信号
WEにノイズが入り、ライトポインタ32の値が例えば
「512」であって、「500」〜「512」までのア
ドレスに余分な13バイトのデータが書き込まれている
とすると、アドレス変更回路41はライトポインタ32
の値を「499」と変更する。
【0108】従って、後続のパケット27の250バイ
ト長のアイソクロナス・データ29は、バッファメモリ
31の「500」アドレスから順に書き込むことができ
る。その結果、バッファメモリ31の「500」アドレ
スから書き込まれたアイソクロナス・データ29は、読
み出されるときには先頭から順に読み出される。
【0109】又、250個目のライト用イネーブル信号
WEが出力されると、ライト用カウンタ35から第2の
検出回路38に第1ピリオド信号P1が出力される。
又、前記MPU12から最初の入力データ切れ目信号E
N1に応答して切れ目カウンタ39から第1検出信号N
1が第2の検出回路38に出力される。この時、第2の
検出回路38は第1ピリオド信号P1と第1検出信号N
1が同時に出力されたとき正常に書き込まれたと判定す
る。
【0110】反対に、ライト用イネーブル信号WEに書
き込みに影響を及ぼすノイズが発生してライト用カウン
タ35のカウント動作が誤動作することにより、同時で
ない場合には、第2の検出回路38は、異常書き込みが
なされたと判断する。異常書き込みと判断した時には、
第2の検出回路38は第2書き込み異常信号S3を割込
み信号生成回路40に出力する。割込み信号生成回路4
0は第2書き込み異常信号S3に応答して第1割込み信
号T1をアドレス変更回路41及びMPU12に出力す
る。
【0111】アドレス変更回路41は第1割込み信号T
1に応答して上記と同様な動作を実行して後続のパケッ
ト27の250バイトのアイソクロナス・データ29が
予め定められた先頭アドレスから順に書き込まれるとと
もに読み出されるようにライトポインタ32の値を変更
する。尚、この場合、第1の検出回路37と第2の検出
回路38とを使って異常書き込みを検出するようにした
が、いずれか一方を使用して実施してもよい。
【0112】(B)250バイト長のアイソクロナス・
データ29の読み出し。 制御用レジスタ42の各内容は上記と同じ内容に設定さ
れている。又、説明の便宜上、リードポインタ33の値
(アドレス)は「749」を示している。
【0113】プロトコル制御回路部21から最初のリー
ド用イネーブル信号REが出力されると、リードポイン
タ33は最初のリード用イネーブル信号REに応答して
「749」から「750」となる。最初の1バイトのデ
ータはバッファメモリ31のアドレス「750」から読
み出される。以後、プロトコル制御回路部21から新た
なリード用イネーブル信号REが入力される毎にリード
ポインタ33の値がインクリメントされ、アドレスが上
位の1アドレス毎にシフトしバッファメモリ31の新た
なアドレスにあるアイソクロナス・データ29が1バイ
トづつ読み出されていく。この読み出しとともに、リー
ド用カウンタ36は、リード用イネーブル信号REをカ
ウントしている。
【0114】やがて、最初のリード用イネーブル信号R
Eから数えて250個目のリード用イネーブル信号RE
が出力されると、リードポインタ33の値が「999」
となり、250バイト長のアイソクロナス・データ29
における最後の1バイトのデータがバッファメモリ31
のアドレス「999」から読み出される。
【0115】250個目のリード用イネーブル信号RE
が出力されると、MPU12から出力データ切れ目信号
EN2が第1の検出回路37に出力される。第1の検出
回路37はその切れ目信号EN2に応答してその時のリ
ードポインタ33の値が「249」、「499」、「7
49」又は「999」のいずれの特定アドレスに該当す
るかどうか判断する。そして、正常なリード用イネーブ
ル信号REに基づいて250バイト長のアイソクロナス
・データ29が正常に読み出されたときは、リードポイ
ンタ33の値は「999」となり4個のうちの1つの比
較対象のアドレスと一致するため、第1の検出回路37
は正常に読み出されたと判定する。
【0116】反対に、一致しない場合には、第1の検出
回路37は異常読み出しがなされたと判断して、第1読
み出し異常信号S2を割込み信号生成回路40に出力す
る。割込み信号生成回路40は第1読み出し異常信号S
2に応答して第2割込み信号T2をアドレス変更回路4
1及びMPU12に出力するようになっている。アドレ
ス変更回路41は、第2割込み信号T2に応答して25
0バイト長のアイソクロナス・データ29が正常に読み
出されなかった状態がバッファメモリ31に発生したと
して、その時のリードポインタ33の値を読み出す。こ
のとき、何らかの原因で例えばリード用イネーブル信号
REにノイズが入り、リードポインタ33の値が「1
0」であって、「0」から「10」までのアドレスに書
き込まれている後続のパケット27のアイソクロナス・
データ29が読み出されたとすると、アドレス変更回路
41はリードポインタ33の値を「999」と変更す
る。
【0117】従って、後続のパケット27の250バイ
ト長のアイソクロナス・データ29は、バッファメモリ
31の「0」アドレスから順に読み出される。その結
果、バッファメモリ31の「0」アドレスから書き込ま
れたアイソクロナス・データ29は、先頭から順に読み
出される。
【0118】又、250個目のリード用イネーブル信号
REが出力されると、リード用カウンタ36から第2の
検出回路38に第2ピリオド信号P2が出力される。
又、前記MPU12から最初の出力データ切れ目信号E
N2に応答して切れ目カウンタ39から第2検出信号N
2が第2の検出回路38に出力される。第2の検出回路
38は第2ピリオド信号P2と第2検出信号N2が同時
に出力されたとき正常に読み出されたと判定する。
【0119】反対に、リード用イネーブル信号REに読
み出しに影響を及ぼすノイズが発生してリード用カウン
タ36のカウント動作が誤動作することにより、同時で
ない場合には、第2の検出回路38は、異常読み出しが
なされたと判断する。異常読み出しと判断した時には、
第2の検出回路38は第2読み出し異常信号S4を割込
み信号生成回路40に出力する。割込み信号生成回路4
0は第2読み出し異常信号S4に応答して第2割込み信
号T2をアドレス変更回路41及びMPU12に出力す
る。
【0120】アドレス変更回路41は第2割込み信号T
2に応答して上記と同様な動作を実行して次の新たなパ
ケット27の250バイト長のアイソクロナス・データ
29は予め定められた先頭アドレスから順に読み出され
るようにリードポインタ33の値を変更する。尚、この
場合、第1の検出回路37と第2の検出回路38とを使
って異常書き込みを検出するようにしたが、いずれか一
方を使用して実施してもよい。
【0121】(C)データ・ブロックの書き込み。 制御用レジスタ42の第1及び第2の有効データは第1
の検出回路37及び第2の検出回路38が共に動作する
内容に設定されている。又、制御用レジスタ42のバイ
ト長変更データは50バイト長に設定されている。さら
に、制御用レジスタ42の分割データは「5」になって
いる。即ち、50バイト長のデータ・ブロックが5個ま
とめて1つのパケット27の250バイト長のアイソク
ロナス・データ29として書き込む場合である。
【0122】従って、ポインタループ設定回路34はラ
イトポインタ32及びリードポインタ33のカウントア
ップ値を、「1000(=50×20<1024)」と
する。即ち、ライトポインタ32及びリードポインタ3
3は、「0」から「999」のカウントアップ値までの
カウンタとなる。そして、複数個の50バイト長のデー
タブロックがそれぞれ書き込みを完了するバッファメモ
リ31の特定アドレスは、「49」、「99」、「14
9」、「199」、「149」、「199」……「89
9」、「949」又は「999」の20種類のいずれか
のアドレスとなる。尚、説明の便宜上、ライトポインタ
32の値(アドレス)は「249」を示している。
【0123】1個目の50バイト長のデータブロックに
おける最初の1バイトのデータがDMAC13から出力
されるとともに、MPU12から最初のライト用イネー
ブル信号WEが出力されると、上記と同様に最初の1バ
イトのデータはバッファメモリ31のアドレス「25
0」に書き込まれる。以後、MPU12から新たなライ
ト用イネーブル信号WEが入力される毎にライトポイン
タ32の値がインクリメントされ、アドレスが1アドレ
ス上位にシフトしそのシフトした新たなアドレスにデー
タブロックが1バイトづつ書き込まれていく。この書き
込みとともに、ライト用カウンタ35は、ライト用イネ
ーブル信号WEをカウントしている。
【0124】最初のライト用イネーブル信号WEから数
えて50個目のライト用イネーブル信号WEが出力され
ると、上記と同様に、1個目の50バイト長のデータブ
ロックにおける最後の1バイトのデータがバッファメモ
リ31のアドレス「299」に書き込まれる。
【0125】50個目のライト用イネーブル信号WEが
出力されると、MPU12から入力データ切れ目信号E
N1が出力され、第1の検出回路37はその切れ目信号
EN1に応答してその時のライトポインタ32の値が前
記20種類のアドレスのいずれかにアドレスに該当する
かどうか判断する。そして、正常なライト用イネーブル
信号WEに基づいて50バイト長のデータブロックが正
常に書き込まれたときは、ライトポインタ32の値は
「299」となり20種類の特定アドレスのうちの1つ
と一致するため、第1の検出回路37は正常に書き込ま
れたと判定する。
【0126】反対に、一致しない場合には、第1の検出
回路37は異常書き込みがなされたと判断して、前記と
同様に、第1書き込み異常信号S1が割込み信号生成回
路40に出力される。割込み信号生成回路40は第1書
き込み異常信号S1に応答して第1割込み信号T1をア
ドレス変更回路41及びMPU12に出力する。アドレ
ス変更回路41は、第1割込み信号T1に応答して50
バイト長のデータブロックが正常に書き込まれなかった
状態がバッファメモリ31に発生したとして、その時の
ライトポインタ32を読み出す。このとき、何らかの原
因で例えばライト用イネーブル信号WEにノイズが入
り、ライトポインタ32の値が「312」であって、
「300」から「312」までのアドレスに余分な13
バイトのデータが書き込まれているとすると、アドレス
変更回路41はライトポインタ32の値を「299」と
変更する。
【0127】従って、次の2個目の50バイト長のデー
タブロックは、バッファメモリ31の「300」アドレ
スから順に書き込むことができる。その結果、バッファ
メモリ31の「300」アドレスから書き込まれた2個
目のデータブロックは、読み出されるときには先頭から
順に読み出される。
【0128】以後、2個目〜5個目のデータブロックに
ついも同様に判定が行われ異常書き込みが行われれば同
様にライトポインタ32の値を変更する。又、250個
目のライト用イネーブル信号WEが出力されると、即
ち、5個目のデータブロックの最後の1バイトを書き込
むためのライト用イネーブル信号WEが出力されると、
ライト用カウンタ35から第2の検出回路38に第1ピ
リオド信号P1が出力される。又、前記MPU12から
5個目の入力データ切れ目信号EN1に応答して切れ目
カウンタ39から第1検出信号N1が第2の検出回路3
8に出力される。第2の検出回路38は第1ピリオド信
号P1と第1検出信号N1が同時に出力されたとき正常
に書き込まれたと判定する。
【0129】反対に、ライト用イネーブル信号WEに書
き込みに影響を及ぼすノイズが発生してライト用カウン
タ35のカウント動作が誤動作することにより、同時で
ない場合には、第2の検出回路38は、異常書き込みが
なされたと判断する。異常書き込みと判断した時には、
第2の検出回路38は第2書き込み異常信号S3を割込
み信号生成回路40に出力する。割込み信号生成回路4
0は第2書き込み異常信号S3に応答して第1割込み信
号T1をアドレス変更回路41及びMPU12に出力す
る。
【0130】アドレス変更回路41は第1割込み信号T
1に応答して上記と同様な動作を実行して次の新たな組
の1個目のデータブロックのデータが読み出されるとき
に予め定められた先頭アドレスから順に読み出されるよ
うにライトポインタ32の値を変更する。尚、この場
合、第1の検出回路37と第2の検出回路38とを使っ
て異常書き込みを検出するようにしたが、いずれか一方
を使用して実施してもよい。
【0131】(D)データ・ブロックの読み出し。 制御用レジスタ42の各内容は上記データブロックと同
じとする。尚、説明の便宜上、リードポインタ33の値
(アドレス)は「499」を示している。
【0132】プロトコル制御回路部21から最初のリー
ド用イネーブル信号REが出力されると、リードポイン
タ33は最初のリード用イネーブル信号REに応答して
「499」から「500」となる。最初の1バイトのデ
ータはバッファメモリ31のアドレス「500」から読
み出される。以後、プロトコル制御回路部21から新た
なリード用イネーブル信号REが入力される毎に前記と
同様にバッファメモリ31の新たなアドレスにあるデー
タブロックとなるデータが1バイトづつ読み出されてい
く。この読み出しとともに、リード用カウンタ36は、
リード用イネーブル信号REをカウントしている。
【0133】やがて、最初のリード用イネーブル信号R
Eから数えて50個目のリード用イネーブル信号REが
出力されると、リードポインタ33の値が「549」と
なり、50バイト長のデータブロックとなる最後の1バ
イトのデータがバッファメモリ31のアドレス「54
9」から読み出される。
【0134】50個目のリード用イネーブル信号REが
出力されると、MPU12から出力データ切れ目信号E
N2を第1の検出回路37に出力する。第1の検出回路
37はその切れ目信号EN2に応答してその時のリード
ポインタ33の値が前記20種類の特定アドレスの中で
該当するアドレスとなるかどうか判断する。そして、正
常なリード用イネーブル信号REに基づいて50バイト
長のデータブロックとなるデータが正常に読み出された
ときは、リードポインタ33の値は「549」となり2
0種類の特定アドレスうちの1つと一致するため、第1
の検出回路37は正常に読み出されたと判定する。
【0135】反対に、一致しない場合には、第1の検出
回路37は異常読み出しがなされたと判断して、前記と
同様に、第1読み出し異常信号S2を出力する。割込み
信号生成回路40は第1読み出し異常信号S2に応答し
て第2割込み信号T2をアドレス変更回路41及びMP
U12に出力する。アドレス変更回路41は、第2割込
み信号T2に応答して50バイト長のデータブロックと
なるデータが正常に読み出されなかった状態がバッファ
メモリ31に発生したとして、その時のリードポインタ
33を読み出す。このとき、何らかの原因で例えばリー
ド用イネーブル信号REにノイズが入り、リードポイン
タ33の値が「510」であって、「500」から「5
10」までのアドレスに書き込まれている後続のデータ
ブロックのためのデータが読み出されたとすると、アド
レス変更回路41はリードポインタ33の値を「51
0」から「499」と変更する。
【0136】従って、後続の50バイト長のデータブロ
ックのためのデータは、バッファメモリ31の「50
0」アドレスから順に読み出される。その結果、バッフ
ァメモリ31の「500」アドレスから書き込まれた2
個目のデータブロックのためのデータは、先頭から順に
読み出される。
【0137】以後、2個目〜5個目のデータブロックの
ためのデータの読み出しについも同様に判定が行われ異
常読み出しが行われれば同様にリードポインタ33の値
を変更する。
【0138】そして、250個目のリード用イネーブル
信号REが出力されると、即ち、5個目のデータブロッ
クにおける最後の1バイトのデータの読み出しのための
リード用イネーブル信号REが出力されると、リード用
カウンタ36から第2の検出回路38に第2ピリオド信
号P2が出力される。又、前記MPU12から5個目の
出力データ切れ目信号EN2に応答して切れ目カウンタ
39から第2検出信号N2が第2の検出回路38に出力
される。第2の検出回路38は第2ピリオド信号P2と
第2検出信号N2が同時に出力されたとき正常に書き込
まれたと判定する。
【0139】反対に、リード用イネーブル信号REに読
み出しに影響を及ぼすノイズが発生してリード用カウン
タ36のカウント動作が誤動作することにより、同時で
ない場合には、第2の検出回路38は、異常書き込みが
なされたと判断する。異常書き込みと判断した時には、
第2の検出回路38は第2読み出し異常信号S4を割込
み信号生成回路40に出力する。割込み信号生成回路4
0は第2読み出し異常信号S4に応答して第2割込み信
号T2をアドレス変更回路41及びMPU12に出力す
る。
【0140】アドレス変更回路41は第2割込み信号T
2に応答して上記と同様な動作を実行して次の新たな組
の1個目のデータブロックのデータが読み出されるとき
に予め定められた先頭アドレスから順に読み出されるよ
うにリードポインタ33の値を変更する。尚、この場
合、第1の検出回路37と第2の検出回路38とを使っ
て異常書き込みを検出するようにしたが、いずれか一方
を使用して実施してもよい。
【0141】次に、上記のように構成した、実施形態の
特徴を以下に説明する。 (1)上記実施形態によれば、ポインタループ設定回路
34によりライトポインタ32のカウントアップ値を、
250バイトのデータ長の整数倍であってバッファメモ
リ31の1024バイトの記憶容量を超さない複数個の
中の最大の値をカウントアップ値とし、この250バイ
トとデータ長が決まった各アイソクロナス・データ29
をライトポインタ32の書き込みアドレスに従ってバッ
ファメモリ31に書き込む場合、正常に書き込まれた時
には、複数個存在する特定のアドレスのいずれかでその
書き込みが完了するようにした。そして、アイソクロナ
ス・データ29の書き込みが完了した時にライトポイン
タ32のその時の書き込みアドレスが特定アドレスある
かどうかを第1の検出回路37にて判断させるようにし
たので、書き込み異常かどうか判断することができる。
【0142】(2)上記実施形態によれば、ライト用カ
ウンタ35にて250バイトのアイソクロナス・データ
29の書き込み回数をカウントさせるとともに、予め定
まった正常の書き込み回数の書き込みが行われた時に第
1ピリオド信号P1を出力させるようにした。そして、
第2の検出回路38にて、250バイトのアイソクロナ
ス・データ29の最後の書き込みの完了を示す切れ目信
号EN1に応答して前記ライト用カウンタ35から第1
ピリオドP1の有無を判断させるようにしたので、上記
(1)と同様に書き込み異常が生じたかどうか判断する
ことができる。そして、第1の検出回路37と第2の検
出回路38を同時に使用することにより、より精度の高
い書き込み異常の検出ができる。
【0143】(3)上記実施形態によれば、ポインタル
ープ設定回路34によりリードポインタ33のカウント
アップ値を、250バイトのデータ長の整数倍であって
バッファメモリ31の1024バイトの記憶容量を超さ
ない複数個の中の最大の値をカウントアップ値とし、こ
の250バイトとデータ長が決まった各アイソクロナス
・データ29をリードポインタ33の読み出しアドレス
に従ってバッファメモリ31から読み出す場合、正常に
読み出されたた時には、複数個存在する特定のアドレス
のいずれかでその読み出しが完了するようにした。そし
て、アイソクロナス・データ29の読み出しが完了した
時にリードポインタ33のその時の読み出しアドレスが
特定アドレスあるかどうかを第1の検出回路37にて判
断させるようにしたので、読み出し異常かどうか判断す
ることができる。
【0144】(4)上記実施形態によれば、リード用カ
ウンタ36にて250バイトのアイソクロナス・データ
29の読み出し回数をカウントさせるとともに、予め定
まった正常の読み出し回数の読み出しが行われた時に第
2ピリオド信号P2を出力させるようにした。そして、
第2の検出回路38にて、250バイトのアイソクロナ
ス・データ29の最後の読み出しの完了を示す切れ目信
号EN2に応答して前記リード用カウンタ36から第2
ピリオドP2の有無を判断させるようにしたので、上記
(3)と同様に読み出し異常が生じたか否かを判断する
ことができる。そして、第1の検出回路37と第2の検
出回路38を同時に使用することにより、より精度の高
い読み出し異常の検出ができる。
【0145】(5)上記実施形態では、書き込み異常と
判断されたとき、アドレス変更回路41にてライトポイ
ンタ32の書き込みアドレスを複数個の特定アドレスの
中からその時の示している書き込みアドレスに最も近い
特定アドレスに書き替えるようにした。従って、次に書
き込まれる後続のアイソクロナス・データ29を正常な
アドレスから書き込み、特定の書き込みアドレスでその
書き込みを完了させることができる。その結果、該後続
のデータ29は正確に読み出されることになる。
【0146】(6)上記実施形態では、読み出し異常と
判断されたとき、アドレス変更回路41にてリードポイ
ンタ33の読み出しアドレスを複数個の特定アドレスの
中からその時の示している読み出しアドレスに最も近い
特定アドレスに書き替えるようにした。従って、次に読
み出される後続のアイソクロナス・データ29を正常な
アドレスから読み出され、特定の読み出しアドレスでそ
の読み出しを完了させることができる。
【0147】(7)上記実施例では、切れ目カウンタ3
9を設けて、切れ目信号EN1,EN2をカウントし分
割データに基づいて第1及び第2検出信号N1,N2を
出力させるようにしたので、第2の検出回路38は、複
数のデータ・ブロックをまとめて1つのパケット27を
作る場合の書き込み及び読み出しにも対応することがで
きる。
【0148】(8)上記実施形態では、アドレス変更回
路41は制御用レジスタ42のバイト長変更データに基
づいて適宜変更できるようにしたため、250バイト長
以外の予めバイト長が決まったアイソクロナス・データ
29等の転送データにも対応することがてきる。又、複
数のデータ・ブロックをまとめて1つのパケット27を
作る場合の書き込み及び読み出しにも対応することがで
きる。この場合、上記(7)と相違して第1の検出回路
37は各データ・ブロックの単位で書き込み及び読み出
しの異常の有無を判断することができ、しかも、異常の
ときには特定アドレスに変更することができる。
【0149】尚、発明の実施の形態は上記実施形態に限
定されるものではなく以下のように実施してもよい。 ○上記実施形態では、第1の検出回路37はMPU12
からの切れ目信号EN1,EN2を入力したが、切れ目
カウンタ39からの第1及び第2検出信号N1,N2を
入力するようにして実施してもよい。この場合、第1の
検出回路37は各データ・ブロックの単位で書き込み及
び読み出しの異常の有無を判断ができなくなる。
【0150】○上記実施形態では、パケットデータ格納
メモリ回路22は、第1の検出回路37と第2の検出回
路38の2つの検出回路を備えたものであったが、いず
れか一方しか備えていないパケットデータ格納メモリ回
路に具体化してもよい。この場合、回路規模をその分小
さくすることができる。
【0151】○上記実施形態では、異常書き込みと異常
読み出しの2つの異常を検出するようにしたが、いずれ
か一方だけの異常検出を行うようにして実施してもよ
い。この場合、回路規模をその分小さくすることができ
る。
【0152】○上記実施形態では、制御用レジスタ42
を備えパケットデータ格納メモリ回路22に種々の機能
をもたせたが、制御用レジスタ42を備えていないパケ
ットデータ格納メモリ回路に具体化してもよい。この場
合、1つの固定した条件の異常検出しかできないが、回
路構成をその分簡単にすることができる。
【0153】○上記実施形態では、IEEE1394に
準拠したシステムにおけるプロトコルコントローラ11
に内蔵されたパケットデータ格納メモリ回路22,23
に具体化したが、FIFO形式のバッファメモリ回路で
あればどんなメモリ回路に応用してもよい。この場合、
FIFO形式のバッファメモリ回路のみを1チップの半
導体集積回路装置にして実施してもよい。勿論、FIF
O形式のバッファメモリ回路を複数個含むものを1チッ
プの半導体集積回路装置にして実施してもよい。
【0154】
【発明の効果】請求項1及び2の発明によれば、書き込
み異常が生じたとき、次に書き込まれる後続のデータを
正常な位置から書き込み該後続のデータを特定の書き込
みアドレスでその書き込みを完了させることができる。
【0155】請求項3及び4の発明によれば、読み出し
異常が生じたとき、次に読み出される後続のデータを正
常な位置から読み出し該後続のデータを特定の読み出し
アドレスでその読み出しを完了させることができる。
【0156】請求項5の発明によれば、データの書き込
みが正常に書き込まれたか検出することができる。請求
項6の発明によれば、データの読み出しが正常に読み出
されたか検出することができる。
【0157】請求項7の発明によれば、請求項5及び6
に記載した発明の効果に加えて、書き込み異常が生じた
とき、次に書き込まれる後続のデータを正常な位置から
書き込み該後続のデータを特定の書き込みアドレスでそ
の書き込みを完了させることができるとともに、読み出
し異常が生じたとき、次に読み出される後続のデータを
正常な位置から読み出し該後続のデータを特定の読み出
しアドレスでその読み出しを完了させることができる。
【0158】請求項8の発明によれば、請求項5に記載
した発明の効果に加えて、書き込み異常が生じたとき、
次に書き込まれる後続のデータを正常な位置から書き込
み該後続のデータを特定の書き込みアドレスでその書き
込みを完了させることができる。
【0159】請求項9の発明によれば、請求項6に記載
した発明の効果に加えて、読み出し異常が生じたとき、
次に読み出される後続のデータを正常な位置から読み出
し該後続のデータを特定の読み出しアドレスでその読み
出しを完了させることができる。
【0160】請求項10の発明によれば、データの書き
込みが正常に書き込まれたか検出することができる。請
求項11の発明によれば、データの読み出しが正常に読
み出されたか検出することができる。
【0161】請求項12の発明によれば、請求項10及
び11に記載の発明の効果に加えて、書き込み異常が生
じたとき、次に書き込まれる後続のデータを正常な位置
から書き込み該後続のデータを特定の書き込みアドレス
でその書き込みを完了させることができるとともに、読
み出し異常が生じたとき、次に読み出される後続のデー
タを正常な位置から読み出し該後続のデータを特定の読
み出しアドレスでその読み出しを完了させることができ
る。
【0162】請求項13の発明によれば、請求項10に
記載の発明の効果に加えて、書き込み異常が生じたと
き、次に書き込まれる後続のデータを正常な位置から書
き込み該後続のデータを特定の書き込みアドレスでその
書き込みを完了させることができる。
【0163】請求項14の発明によれば、請求項11に
記載の発明の効果に加えて、読み出し異常が生じたと
き、次に読み出される後続のデータを正常な位置から読
み出し該後続のデータを特定の読み出しアドレスでその
読み出しを完了させることができる。
【0164】請求項15の発明によれば、請求項5,
6,10及び11に記載した発明の効果に加えて、書き
込み異常が生じたとき、次に書き込まれる後続のデータ
を正常な位置から書き込み該後続のデータを特定の書き
込みアドレスでその書き込みを完了させることができる
とともに、読み出し異常が生じたとき、次に読み出され
る後続のデータを正常な位置から読み出し該後続のデー
タを特定の読み出しアドレスでその読み出しを完了させ
ることができる。
【図面の簡単な説明】
【図1】 送信用パケットデータ格納メモリ回路を示す
ブロック図。
【図2】 パソコン内の構成を説明するためのブロック
図。
【図3】 IEEE1394に準拠したバスを用いたシ
ステム構成図。
【図4】 パケットを説明するための説明図。
【符号の説明】
22 送信用パケットデータ格納メモリ回路 31 バッファメモリ 32 ライトポインタ 33 リードポインタ 34 ポインタループ設定回路 35 ライト用カウンタ 36 リード用カウンタ 37 第1の検出回路 38 第2の検出回路 39 切れ目カウンタ 40 割込み信号生成回路 41 アドレス変更回路

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 データ長が決まったデータをライト用イ
    ネーブル信号に応答して予め定められた複数回の書き込
    み回数に分けてそのライト用イネーブル信号に応答して
    シフトされるライトポインタが指定するバッファメモリ
    の書き込みアドレスに書き込むようにしたデータ書き込
    み方法において、 前記ライトポインタのカウントアップ値を前記データ長
    の整数倍であって前記バッファメモリの記憶容量を超さ
    ない複数個の中の最大の値をカウントアップ値としてそ
    のライトポインタをリセット動作させ、 前記書き込み回数に分けて順に書き込まれる前記データ
    長が決まったデータの最後の書き込みが完了した時、そ
    の時の前記ライトポインタの書き込みアドレスが前記カ
    ウントアップ値とデータ長とに基づいて求められた複数
    個の特定アドレスのいずれにも該当しない時には、前記
    ライトポインタの書き込みアドレスを前記複数個の特定
    アドレスの中からその時の示している書き込みアドレス
    に最も近い特定アドレスに書き替えるようにしたデータ
    書き込み方法。
  2. 【請求項2】 データ長が決まったデータをライト用イ
    ネーブル信号に応答して予め定められた複数回の書き込
    み回数に分けてそのライト用イネーブル信号に応答して
    シフトされるライトポインタが指定するバッファメモリ
    の書き込みアドレスに書き込むようにしたデータ書き込
    み方法において、 前記ライトポインタのカウントアップ値を前記データ長
    の整数倍であって前記バッファメモリの記憶容量を超さ
    ない複数個の中の最大の値をカウントアップ値としてそ
    のライトポインタをリセット動作させるとともに、前記
    ライト用イネーブル信号をカウントするライト用カウン
    タにて前記書き込み回数をカウントさせ、 前記書き込み回数に分けて順に書き込まれる前記データ
    長が決まったデータの最後の書き込みが完了した時、前
    記ライト用カウンタが前記書き込み回数を示していない
    時には、前記ライトポインタの書き込みアドレスを、前
    記カウントアップ値とデータ長とに基づいて求められた
    複数個の特定アドレスの中からその時の示している書き
    込みアドレスに最も近い特定アドレスに書き替えるよう
    にしたデータ書き込み方法。
  3. 【請求項3】 データ長が決まったデータをリード用イ
    ネーブル信号に応答して予め定められた複数回の読み出
    し回数に分けてそのリード用イネーブル信号に応答して
    シフトされるリードポインタが指定するバッファメモリ
    の読み出しアドレスから読み出すようにしたデータ読み
    出し方法において、 前記リードポインタのカウントアップ値を前記データ長
    の整数倍であって前記バッファメモリの記憶容量を超さ
    ない複数個の中の最大の値をカウントアップ値としてそ
    のリードポインタをリセット動作させ、 前記読み出し回数に分けて順に読み出される前記データ
    長が決まったデータの最後の読み出しみが完了した時、
    その時の前記リードポインタの読み出しアドレスが前記
    カウントアップ値とデータ長とに基づいて求められた複
    数個の特定アドレスのいずれにも該当しない時には、前
    記リードポインタの読み出しアドレスを前記複数個の特
    定アドレスの中からその時の示している読み出しアドレ
    スに最も近い特定アドレスに書き替えるようにしたデー
    タ読み出し方法。
  4. 【請求項4】 データ長が決まったデータをリード用イ
    ネーブル信号に応答して予め定められた複数回の読み出
    し回数に分けてそのリード用イネーブル信号に応答して
    シフトされるリードポインタが指定するバッファメモリ
    の読み出しアドレスから読み出すようにしたデータ読み
    出し方法において、 前記リードポインタのカウントアップ値を前記データ長
    の整数倍であって前記バッファメモリの記憶容量を超さ
    ない複数個の中の最大の値をカウントアップ値としてそ
    のリードポインタをリセット動作させるとともに、前記
    リード用イネーブル信号をカウントするリード用カウン
    タにて前記読み出し回数をカウントさせ、 前記読み出し回数に分けて順に読み出される前記データ
    長が決まったデータの最後の読み出しが完了した時、前
    記リード用カウンタが前記読み出し回数を示していない
    時には、前記リードポインタの読み出しアドレスを、前
    記カウントアップ値とデータ長とに基づいて求めた複数
    個の特定アドレスの中からその時の示している読み出し
    アドレスに最も近い特定アドレスに書き替えるようにし
    たデータ読み出し方法。
  5. 【請求項5】 データ長が決まったデータが予め定めら
    れた複数回の書き込み回数に分けて順に書き込まれると
    ともに予め定められた複数回の読み出し回数に分けて順
    に読み出されるバッファメモリと、 ライト用イネーブル信号に応答してバッファメモリの書
    き込みアドレスをシフトしながら指定するライトポイン
    タと、 リード用イネーブル信号に応答してバッファメモリの読
    み出しアドレスをシフトしながら指定するリードポイン
    タとからなるデータ格納メモリ回路において、 前記ライトポインタのカウントアップ値を前記データ長
    の整数倍であって前記バッファメモリの記憶容量を超さ
    ない複数個の値の中の最大の値をカウントアップ値とし
    て指定するポインタループ設定回路と、 前記書き込み回数に分けて順に書き込まれる前記データ
    長が決まったデータの最後の書き込みが完了した時、そ
    の時のライトポインタの書き込みアドレスが前記カウン
    トアップ値とデータ長とに基づいて求められた複数個の
    特定アドレスのいずれにも該当しない時、書き込み異常
    と判断するライト用検出回路とを備えたデータ格納メモ
    リ回路。
  6. 【請求項6】 データ長が決まったデータが予め定めら
    れた複数回の書き込み回数に分けて順に書き込まれると
    ともに予め定められた複数回の読み出し回数に分けて順
    に読み出されるバッファメモリと、 ライト用イネーブル信号に応答してバッファメモリの書
    き込みアドレスをシフトしながら指定するライトポイン
    タと、 リード用イネーブル信号に応答してバッファメモリの読
    み出しアドレスをシフトしながら指定するリードポイン
    タとからなるデータ格納メモリ回路において、 前記リードポインタのカウントアップ値を前記データ長
    の整数倍であって前記バッファメモリの記憶容量を超さ
    ない複数個の値の中の最大の値をカウントアップ値とし
    て指定するポインタループ設定回路と、 前記読み出し回数に分けて順に読み出される前記データ
    長が決まったデータの最後の読み出しが完了した時、そ
    の時のリードポインタの読み出しアドレスが前記カウン
    トアップ値とデータ長とに基づいて求められた複数個の
    特定アドレスのいずれにも該当しない時、読み出し異常
    と判断するリード用検出回路とを備えたデータ格納メモ
    リ回路。
  7. 【請求項7】 データ長が決まったデータが予め定めら
    れた複数回の書き込み回数に分けて順に書き込まれると
    ともに予め定められた複数回の読み出し回数に分けて順
    に読み出されるバッファメモリと、 ライト用イネーブル信号に応答してバッファメモリの書
    き込みアドレスをシフトしながら指定するライトポイン
    タと、 リード用イネーブル信号に応答してバッファメモリの読
    み出しアドレスをシフトしながら指定するリードポイン
    タとからなるデータ格納メモリ回路において、 前記ライトポインタ及びリードポインタのカウントアッ
    プ値を前記データ長の整数倍であって前記バッファメモ
    リの記憶容量を超さない複数個の値の中の最大の値をカ
    ウントアップ値として指定するポインタループ設定回路
    と、 前記複数回に分けて順に書き込まれる前記データ長が決
    まったデータの最後の書き込みが完了した時、その時の
    ライトポインタの書き込みアドレスが前記カウントアッ
    プ値とデータ長とに基づいて求められた複数個の特定ア
    ドレスのいずれにも該当しない時、書き込み異常と判断
    するライト用検出回路と、 前記読み出し回数に分けて順に読み出される前記データ
    長が決まったデータの最後の読み出しが完了した時、そ
    の時のリードポインタの読み出しアドレスが前記カウン
    トアップ値とデータ長とに基づいて求められた複数個の
    特定アドレスのいずれにも該当しない時、読み出し異常
    と判断するリード用検出回路と、 前記ライト用検出回路が書き込み異常と判断した時、前
    記ライトポインタの書き込みアドレスを前記複数個の特
    定アドレスの中からその時の示している書き込みアドレ
    スに最も近い特定アドレスに書き替えるライト用アドレ
    ス変更回路と、 前記リード用検出回路が読み出し異常と判断した時、前
    記リードポインタの読み出しアドレスを前記複数個の特
    定アドレスの中からその時の示している読み出しアドレ
    スに最も近い特定アドレスに書き替えるリード用アドレ
    ス変更回路とを備えたデータ格納メモリ回路。
  8. 【請求項8】 請求項5に記載のデータ格納メモリ回路
    において、 前記ライト用検出回路が書き込み異常と判断した時、前
    記ライトポインタの書き込みアドレスを前記複数個の特
    定アドレスの中からその時の示している書き込みアドレ
    スに最も近い特定アドレスに書き替えるライト用アドレ
    ス変更回路を備えたデータ格納メモリ回路。
  9. 【請求項9】 請求項6に記載のデータ格納メモリ回路
    において、 前記リード用検出回路が読み出し異常と判断した時、前
    記リードポインタの読み出しアドレスを前記複数個の特
    定アドレスの中からその時の示している読み出しアドレ
    スに最も近い特定アドレスに書き替えるリード用アドレ
    ス変更回路を備えたデータ格納メモリ回路。
  10. 【請求項10】 データ長が決まったデータが予め定め
    られた複数回の書き込み回数に分けて順に書き込まれる
    とともに予め定められた複数回の読み出し回数に分けて
    順に読み出されるバッファメモリと、 ライト用イネーブル信号に応答してバッファメモリの書
    き込みアドレスをシフトしながら指定するライトポイン
    タと、 リード用イネーブル信号に応答してバッファメモリの読
    み出しアドレスをシフトしながら指定するリードポイン
    タとからなるデータ格納メモリ回路において、 前記ライト用イネーブル信号に応答して前記書き込み回
    数をカウントするライト用カウンタと、 前記書き込み回数に分けて順に書き込まれる前記データ
    長が決まったデータの最後の書き込みが完了した時、前
    記ライト用カウンタが前記書き込み回数を示していない
    時、前記データの書き込み異常と判断する第2のライト
    用検出回路とを備えたデータ格納メモリ回路。
  11. 【請求項11】 データ長が決まったデータが予め定め
    られた複数回の書き込み回数に分けて順に書き込まれる
    とともに予め定められた複数回の読み出し回数に分けて
    順に読み出されるバッファメモリと、 ライト用イネーブル信号に応答してバッファメモリの書
    き込みアドレスをシフトしながら指定するライトポイン
    タと、 リード用イネーブル信号に応答してバッファメモリの読
    み出しアドレスをシフトしながら指定するリードポイン
    タとからなるデータ格納メモリ回路において、 前記リード用イネーブル信号に応答して前記読み出し回
    数をカウントするリード用カウンタと、 前記読み出し回数に分けて順に読み出される前記データ
    長が決まったデータの最後の読み出しが完了した時、前
    記リード用カウンタが前記読み出し回数を示していない
    時、前記データの読み出し異常と判断する第2のリード
    用検出回路とを備えたデータ格納メモリ回路。
  12. 【請求項12】 データ長が決まったデータが予め定め
    られた複数回の書き込み回数に分けて順に書き込まれる
    とともに予め定めた複数回の読み出し回数に分けて順に
    読み出されるバッファメモリと、 ライト用イネーブル信号に応答してバッファメモリの書
    き込みアドレスをシフトしながら指定するライトポイン
    タと、 リード用イネーブル信号に応答してバッファメモリの読
    み出しアドレスをシフトしながら指定するリードポイン
    タとからなるデータ格納メモリ回路において、 前記ライトポインタ及びリードポインタのカウントアッ
    プ値を前記データ長の整数倍であって前記バッファメモ
    リの記憶容量を超さない複数個の値の中の最大の値をカ
    ウントアップ値として指定するポインタループ設定回路
    と、 前記ライト用イネーブル信号に応答して前記書き込み回
    数をカウントするライト用カウンタと、 前記リード用イネーブル信号に応答して前記読み出し回
    数をカウントするリード用カウンタと、 前記書き込み回数に分けて順に書き込まれる前記データ
    長が決まったデータの最後の書き込みが完了した時、前
    記書き込み回数をカウントするライト用カウンタが前記
    書き込み回数を示していない時、前記データの書き込み
    異常と判断する第2のライト用検出回路と、 前記読み出し回数に分けて順に読み出される前記データ
    長が決まったデータの最後の読み出しが完了した時、前
    記読み出し回数をカウントするリード用カウンタが前記
    読み出し回数を示していない時、前記データの読み出し
    異常と判断する第2のリード用検出回路と、 前記第2のライト用検出回路が書き込み異常と判断した
    時、前記ライトポインタの書き込みアドレスを前記カウ
    ントアップ値とデータ長とに基づいて求められた複数個
    の特定アドレスの中からその時の示している書き込みア
    ドレスに最も近い特定アドレスに書き替えるライト用ア
    ドレス変更回路と、 前記第2のリード用検出回路が読み出し異常と判断した
    時、前記リードポインタの読み出しアドレスを前記カウ
    ントアップ値とデータ長とに基づいて求められた複数個
    の特定アドレスの中からその時の示している読み出しア
    ドレスに最も近い特定アドレスに書き替えるリード用ア
    ドレス変更回路とを備えたデータ格納メモリ回路。
  13. 【請求項13】 請求項10に記載のデータ格納メモリ
    回路において、 前記第2のライト用検出回路が書き込み異常と判断した
    時、前記ライトポインタの書き込みアドレスを前記カウ
    ントアップ値とデータ長とに基づいて求められた複数個
    の特定アドレスの中からその時の示している書き込みア
    ドレスに最も近い特定アドレスに書き替えるライト用ア
    ドレス変更回路を備えたデータ格納メモリ回路。
  14. 【請求項14】 請求項11に記載のデータ格納メモリ
    回路において、 前記第2のリード用検出回路が読み出し異常と判断した
    時、前記リードポインタの読み出しアドレスを前記カウ
    ントアップ値とデータ長とに基づいて求められた複数個
    の特定アドレスの中からその時の示している読み出しア
    ドレスに最も近い特定アドレスに書き替えるリード用ア
    ドレス変更回路を備えたデータ格納メモリ回路。
  15. 【請求項15】 データ長が決まったデータが予め定め
    られた複数回の書き込み回数に分けて順に書き込まれる
    とともに予め定めた複数回の読み出し回数に分けて順に
    読み出されるバッファメモリと、 ライト用イネーブル信号に応答してバッファメモリの書
    き込みアドレスをシフトしながら指定するライトポイン
    タと、 リード用イネーブル信号に応答してバッファメモリの読
    み出しアドレスをシフトしながら指定するリードポイン
    タとからなるデータ格納メモリ回路において、 前記ライトポインタ及びリードポインタのカウントアッ
    プ値を前記データ長の整数倍であって前記バッファメモ
    リの記憶容量を超さない複数個の値の中の最大の値をカ
    ウントアップ値として指定するポインタループ設定回路
    と、 前記複数回に分けて順に書き込まれる前記データ長が決
    まったデータの最後の書き込みが完了した時、その時の
    ライトポインタの書き込みアドレスが前記カウントアッ
    プ値とデータ長とに基づいて求められた複数個の特定ア
    ドレスのいずれにも該当しない時、書き込み異常と判断
    するライト用検出回路と、 前記読み出し回数に分けて順に読み出される前記データ
    長が決まったデータの最後の読み出しが完了した時、そ
    の時のリードポインタの読み出しアドレスが前記カウン
    トアップ値とデータ長とに基づいて求められた複数個の
    特定アドレスのいずれにも該当しない時、読み出し異常
    と判断するリード用検出回路と、 前記ライト用イネーブル信号に応答して前記書き込み回
    数をカウントするライト用カウンタと、 前記リード用イネーブル信号に応答して前記読み出し回
    数をカウントするリード用カウンタと、 前記書き込み回数に分けて順に読み出される前記データ
    長が決まったデータの最後の書き込みが完了した時、前
    記ライト用カウンタが前記書き込み回数を示していない
    時、前記データの書き込み異常と判断する第2のライト
    用検出回路と、 前記読み出し回数に分けて順に読み出される前記データ
    長が決まったデータの最後の読み出しが完了した時、前
    記読み出し回数をカウントするリード用カウンタが前記
    読み出し回数を示していない時、前記データの読み出し
    異常と判断する第2のリード用検出回路と、 前記ライト用検出回路又は第2のライト用検出回路が読
    み出し異常と判断した時、前記ライトポインタの書き込
    みアドレスを前記複数個の特定アドレスの中からその時
    の示している読み出しアドレスに最も近い特定アドレス
    に書き替えるライト用アドレス変更回路と、 前記リード用検出回路又は第2のリード用検出回路が読
    み出し異常と判断した時、前記リードポインタの読み出
    しアドレスを前記複数個の特定アドレスの中からその時
    の示している読み出しアドレスに最も近い特定アドレス
    に書き替えるリード用アドレス変更回路とを備えたデー
    タ格納メモリ回路。
JP10016197A 1997-04-17 1997-04-17 データ書き込み方法、データ読み出し方法、及びメモリ回路 Expired - Fee Related JP3887059B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10016197A JP3887059B2 (ja) 1997-04-17 1997-04-17 データ書き込み方法、データ読み出し方法、及びメモリ回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10016197A JP3887059B2 (ja) 1997-04-17 1997-04-17 データ書き込み方法、データ読み出し方法、及びメモリ回路

Publications (2)

Publication Number Publication Date
JPH10293730A true JPH10293730A (ja) 1998-11-04
JP3887059B2 JP3887059B2 (ja) 2007-02-28

Family

ID=14266601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10016197A Expired - Fee Related JP3887059B2 (ja) 1997-04-17 1997-04-17 データ書き込み方法、データ読み出し方法、及びメモリ回路

Country Status (1)

Country Link
JP (1) JP3887059B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113404A (ja) * 2009-11-27 2011-06-09 Fujitsu Ltd バッファメモリ装置、及び、バッファリング方法
CN114047712A (zh) * 2021-10-12 2022-02-15 中国电子科技集团公司第二十九研究所 一种基于反射内存网的半实物仿真系统的数据通信方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011113404A (ja) * 2009-11-27 2011-06-09 Fujitsu Ltd バッファメモリ装置、及び、バッファリング方法
CN114047712A (zh) * 2021-10-12 2022-02-15 中国电子科技集团公司第二十九研究所 一种基于反射内存网的半实物仿真系统的数据通信方法

Also Published As

Publication number Publication date
JP3887059B2 (ja) 2007-02-28

Similar Documents

Publication Publication Date Title
US20100313080A1 (en) Can system
EP0631239B1 (en) Serial data transfer method and system
US8291138B2 (en) Skip based control logic for first in first out buffer
JP2002135257A (ja) シリアル通信用データ処理装置
US6385671B1 (en) Method/apparatus for flushing DMA transmit packet in FIFO when self-ID code generated by counter after bus reset is different than FIFO message self-ID field
US6643716B2 (en) Method and apparatus for processing serial data using a single receive fifo
JP2009502072A (ja) FlexRay通信モジュール及びFlexRay通信制御装置、並びにFlexRay通信接続とFlexRay加入者装置との間でメッセージを伝送する方法
US6580711B1 (en) Serial interface circuit and signal processing method of the same
US10575161B2 (en) Communication system and semiconductor device
JPH07192452A (ja) 先入れ先出しバッファ装置
JPH10293730A (ja) データ書き込み方法、データ読み出し方法、及び、データ格納メモリ回路
JPH10304014A (ja) データ取り込み方法、データ取り込み回路、及び、ieee1394用プロトコルコントローラ
JP3731283B2 (ja) 信号処理回路およびその方法
JP2000134231A (ja) データ転送制御装置及び電子機器
US7203205B2 (en) Polling device and communication apparatus
KR100539018B1 (ko) 데이터 채널을 통해 수신되었거나 송신될 데이터 패킷을처리하기 위한 방법 및 장치
US20100106865A1 (en) Dma transfer device and method
JPH10285223A (ja) 信号処理回路
JP4148290B2 (ja) 信号処理回路
JP3217042B2 (ja) 疑似パリティエラー信号発生機能を備えた半導体装置
KR100712566B1 (ko) 데이터 버스를 통해 수신된 데이터의 관리 방법 및 이방법을 실행하는 장치
JPH1023101A (ja) データ転送インタフェース回路及びデータ転送方法
JP4148292B2 (ja) 信号処理回路
JP4148291B2 (ja) 信号処理回路
JP4192988B2 (ja) 信号処理回路

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040415

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040415

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060919

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060921

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061124

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

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

Free format text: PAYMENT UNTIL: 20091201

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20091201

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101201

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111201

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20111201

Year of fee payment: 5

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

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

Free format text: PAYMENT UNTIL: 20111201

Year of fee payment: 5

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20111201

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121201

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20121201

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20131201

Year of fee payment: 7

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees