(57)【特許請求の範囲】
【請求項１】
所定のシーケンスを維持しながら、最終ステージの出力端が最初のステージの入力端に接続されているｎ個の記憶ステージを備えた循環ＦＩＦＯ記憶装置により、前記所定のシーケンスでサンプリングされたＮ個のチャンネルからプロセッサへデータを転送するための方法であって、
ａ）ＦＩＦＯ記憶装置へのデータの書き込み操作ごとに、最後に書き込みされた記憶ステージを指定する値に書き込みポインタ（ＳＺ）をセットする工程と、
ｂ）ＦＩＦＯ記憶装置（３０）からのデータの読み出し操作ごとに、その後読み出すべき記憶ステージを指定する値に読み出しポインタ（ＬＺ）をセットし、読み出しプロセスが常にｉ×Ｎ個（ここでｉは整数であり、ｉ×Ｎ＜ｎである）の記憶ステージからのデータの読み出しを含む工程と、
ｃ）トリガーポインタ（ＴＺ）を値ｊ×Ｎ（ｊは整数であり、ｊ×Ｎ＜ｎかつｉ≦ｊである）にセットする工程と、
ｄ）書き込みプロセス後、書き込みポインタ（ＳＺ）の値がトリガーポインタ（ＴＺ）の値以上であれば、読み出し操作を認める工程と、
ｅ）各読み出し操作後、トリガーポインタ（ＴＺ）の値をｉ×Ｎの１つのトリガーステップ（ＴＳ）だけ増加する工程と、
ｆ）書き込みポインタ（ＳＺ）の値が読み出しポインタ（ＬＺ）の値に達すると、読み出しポインタ（ＬＺ）の値およびトリガーポインタ（ＴＺ）の値をＮだけ増加する工程とを実施する、データを転送するための方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、所定のシーケンスを維持しながら、最終ステージの出力端が最初のステージの入力端に接続されているｎ個の記憶ステージを備えた循環ＦＩＦＯ記憶装置により、前記所定のシーケンスでサンプリングされたＮ個のチャンネルからプロセッサへデータを転送するための方法に関する。
【０００２】
【従来の技術】
データを転送するための中間記憶デバイスとして、ＦＩＦＯリング記憶装置としても知られる循環ＦＩＦＯメモリを使用できることは知られている。Ｕ．ティーチェおよびＣｈ．シェンクによって著された刊行物「半導体回路技術」第９版、２８６ページに、かかるＦＩＦＯリング記憶装置の一例が記載されている。このＦＩＦＯリング記憶装置の書き込みおよび読み出しプロセスは書き込みポインタ（入力ポインタ）および読み出しポインタ（出力ポインタ）によってそれぞれ制御され、これらポインタはケースごとにデータをどの記憶ステージに書き込みできるか、およびデータをどの記憶ステージから読み出しできるかを、示すようになっている。一旦、このＦＩＦＯ記憶装置が満杯状態となると、更にデータを入力してはならず、入力した場合、データはまだ読み出されていないデータにオーバーライトされることになる。オーバーライトが支障を生じさせるような状況を想像できるが、既知のリング記憶装置はかかる無害のオーバーライトを可能にするような対策は講じていない。記憶内容のオーバーライトは認められないので、データを更に処理しなければならないようなプロセッサと関連して検討すると、それほど大きくないフレキシビリティしか存在しない。既知のＦＩＦＯリング記憶装置のケースではブロックが現在のデータを含むことの保証がないのと同じように、所定の数の連続する記憶ステージからのブロックからプロセッサが常時読み出しを行い、かつブロックの第１ステージで読み出しプロセスが開始し、ブロックの最終ステージで終了することを保証するような対策は講じられていない。
【０００３】
【発明が解決しようとする課題】
接続されたデータ値のブロックを読み出すことは、ＭＡＸＩＭ社からのタイプＭＡＸ１２５またはＭＡＸ１２６データ収集回路で既に行われている。この回路は４つの入力チャンネルを提供しており、これらチャンネルによって入力信号をサンプリングできる。４つのステージを備えた中間記憶装置にはサンプリング値が記憶され、中間記憶装置は連続するサンプリングの順にサンプリング値を収集するようになっている。ここで、４つのサンプリング値は１つのブロックを形成し、このブロックはその後、プロセッサによって読み出しできる。４つのサンプリング値しか記憶できないので、記憶装置が満杯状態となった場合にはいつも、プロセッサは読み出しプロセスを実行しなければならない。このことは、より長いインターバルで、すなわち４つの入力チャンネルにおける２つの連続する信号サンプリング操作の間の時間差よりも長いインターバルで読み出し操作を実行することが好ましいので、プロセッサは処理サイクルに関する時間が限定されていることを意味する。このような公知のデータ転送プロセスを用いても、プロセッサが必要とするデータの読み出し操作に関するプロセッサのフレキシビリティは限られている。
【０００４】
本発明は、データの保全性を失うことなく、プロセッサによる読み出しプロセスの時間制御に関するフレキシビリティを高めることができる、データの転送用の方法を提供するための条件を定めることにある。
【０００５】
【課題を解決するための手段】
この条件は、
所定のシーケンスを維持しながら、最終ステージの出力端が最初のステージの入力端に接続されているｎ個の記憶ステージを備えた循環ＦＩＦＯ記憶装置により、前記所定のシーケンスでサンプリングされたＮ個のチャンネルからプロセッサへデータを転送するための方法であって、
ａ）ＦＩＦＯ記憶装置へのデータの書き込み操作ごとに、最後に書き込みされた記憶ステージを指定する値に、書き込みポインタをセットする工程と、
ｂ）ＦＩＦＯ記憶装置からのデータの読み出し操作ごとに、その後読み出すべき記憶ステージを指定する値に読み出しポインタをセットし、読み出しプロセスが常にｉ×Ｎ個（ここでｉは整数であり、ｉ×Ｎ＜ｎである）の記憶ステージからのデータの読み出しを常に行う工程と、
ｃ）トリガーポインタを値ｊ×Ｎ（ｊは整数であり、ｊ×Ｎ＜ｎかつｉ≦ｊである）にセットする工程と、
ｄ）書き込みプロセス後、書き込みポインタの値がトリガーポインタの値以上であれば、読み出し操作を認める工程と、
ｅ）各読み出し操作後、トリガーポインタの値をｉ×Ｎの１つのトリガーステップだけ増加する工程と、
ｆ）書き込みポインタの値が読み出しポインタの値に達すると、読み出しポインタの値およびトリガーポインタの値をＮだけ増加する工程とを実施する、データを転送するための方法によって満足される。
【０００６】
本発明に係わる方法を使用することにより、一旦読み出しプロセスが認められれば、プロセッサは記憶装置の連続ステージ内に含まれる１つ以上の、データブロックを読み出し、更に処理することができる。新しく到着したデータが既に記憶されているデータにオーバーライトされたとしても、ＦＩＦＯ記憶装置の循環構造により更に２つの読み出し操作の間の比較的長い時間分離によって、トリガーポインタの使用および読み出しポインタの順方向のステップ操作は次の読み出し操作をするために、プロセッサがデータブロックの最初のデータ値を含む記憶ステージで常にスタートすることを保証し、更にこのようにサンプリングされたチャンネルから生じた信号とプロセッサによって読み出された信号とが連続してコヒーレントであることを保証する。従って、読み出し操作の時間制御に関し、プロセッサの側でかなりのフレキシビリティが保証される。
【０００７】
本明細書の末尾の実施態様項には本発明のさらなる効果的な改良例が示されている。
次に、添付図面を参照して本発明について説明する。
【０００８】
図１に示された回路装置１０はアナログ入力チャンネル１２を備えたアナログ−デジタルコンバータであり、このコンバータはこれらチャンネルへ送られたアナログ信号をデジタル信号に変換できる。これら信号はデータ出力端１４から読み出すことができ、図には示されていないプロセッサによって更に処理できるようになっている。
【０００９】
図示されたアナログ−デジタルコンバータの正確な構造は説明する発明に関する限り重要ではないので、その本質的な部品しか簡単に説明せず、かつ本発明に関連して説明するだけである。理解できるように、４つの入力チャンネル１２へ送られる信号をサンプリングするために、瞬間値記憶装置１６〜２２が設けられている。これら記憶装置１６〜２２はサンプル・ホールド回路として知られているので、Ｓ／Ｈと表示する。これらサンプル・ホールド回路によって出力されるサンプリング変数は、マルチプレクサ２４を介し、適当なコンバータ回路２６へ送られる。コンバータ回路２６には基準電圧源２８からの基準電圧を提供できる。次に、出力信号はＦＩＦＯ記憶装置３０およびバッファ記憶装置３２を介し、データ出力端１４へ到着する。ＦＩＦＯ記憶装置３０は循環ＦＩＦＯ記憶装置、すなわちリング記憶装置であり、後にこれら記憶装置を参照する。
【００１０】
アナログ−デジタルコンバータ内の機能シーケンスは、制御ロジック３４および制御レジスタ３６によって制御される。この制御ロジック３４は制御信号入力端３８を有し、これら入力端によって制御信号を制御ロジックへ送ることができ、次にこの制御信号は制御ロジック３４における特定のプロセスを開始させる。
【００１１】
図２は、ＦＩＦＯ記憶装置３０の略図であり、この記憶装置では記憶ステージは循環構造となっていることが図から理解できる。循環構造となっていることは、最終ステージの出力端が最初のステージの入力端に接続されていることを意味する。公知のように、最も簡単な形態のＦＩＦＯ記憶装置は最初のステージの入力端にデータを送り、最終ステージの出力端からデータを出力するよう、ｎ個のステージを含むシフトレジスタとなっている。
【００１２】
新しいデータ値が入力されるごとに、第１ステージから最終ステージへ１つのデータ値が他方のデータ値の後に続くように、データ値をシフトするシフトプロセスが開始される。このようなやり方によって最初に入力されたデータは最初に出力される。従って、出力端に生じるデータのシーケンスは入力端へ送られたシーケンスに正しく対応する。図２のＦＩＦＯ記憶装置３０の特別な特徴はステージが循環構造となっていること、すなわち最終ステージの出力端が最初のステージの入力端に接続されるようなリング形状となっていることである。図２では、下記の記載のために、１６個の記憶ステージが設けられているものとするが、このステージの数は一般にｎ個と表示でき、ここではｎ＝１６となっている。ＦＩＦＯリング記憶装置は読み出しおよび書き込み操作をそれぞれ制御するために読み出しポインタまたは書き込みポインタを利用することが知られている。これらポインタは、記載した実施例では総計１６のカウンタ位置を取り得るカウンタによって最も簡単な形態に実現できる。各ケースにおけるカウンタ位置は記憶デバイスのステージのうちの１つをポイントする。よって、書き込みポインタは最終書き込み操作で書き込みを行ったステージを示し、他方、読み出しポインタは次の読み出し操作中に読み出すことのできるステージを示す。
【００１３】
４つの入力チャンネル１２の連続するサンプリングによって既に生じたデータ値の全データブロックを、各読み出し操作中に読み出さなければならない旨のリクエストがプロセッサからなされた時、データをブロックごとに読み出しできるようにするために、１つの読み出しポインタと１つの書き込みポインタを設けるだけでは十分ではない。結局、ＦＩＦＯ記憶装置３０内で４つのデータ値の全ブロックを利用できるようになる前に、プロセッサがあらかじめデータを読み出す必要性が生じることもあり得る。
【００１４】
このような理由から、入力チャンネル１２の数の偶数の倍数である記憶ステージをポイントするような別のポインタ、いわゆるトリガーポインタが設けられる。図示した実施例では、このトリガーポインタは８番目の記憶ステージをポイントする。異なるポインタを設定し、モニタする制御ロジック３４により、ＦＩＦＯ記憶装置３０への書き込み操作を開始した後に、８番目の記憶ステージにいつ書き込みがなされたかを判断すること、すなわちトリガーポインタの値が書き込みポインタの値に等しくなったことを確認できる。このような条件が満たされた時に限り、すなわち書き込みポインタがトリガーポインタ以上となった時に限り、読み出し操作がイネーブルされる。これによってプロセッサは４つのデータ値の２つの完全データブロックの各々がＦＩＦＯ記憶装置３０内に既に存在した場合に限り、読み出し操作を実行できるようになる。従って、プロセッサはこのような状態が好ましければ、これら２つのデータブロックを読み出す状態となる。このような状態の発生および読み出し操作の対応するイネーブル操作は一定のインターバルでプロセッサが問い合わせている、出力端４０に生じる出力信号によって表示される。
【００１５】
当然ながらこれらトリガーポインタは、出力端４０に対応する信号を加えることにより、４番目の記憶ステージの書き込みを行った後に、または１２番目の記憶ステージに書き込みを行った後に限り、読み出し操作を行うことができるよう、当然、４番目の記憶ステージまたは１２番目の記憶ステージにセットしてもよい。
【００１６】
８つの連続する記憶ステージに記憶されたデータ値からデータブロックを読み出した後に、読み出しポインタは９を示す。すなわち１〜９をセットし、よって９番目の記憶ステージで次の読み出し操作を開始する。各読み出し操作後、１回のトリガーステップによりトリガーポインタの値は増加される。このトリガーポインタの値は入力チャンネルの数の偶数倍に対応するが、利用できる記憶ステージの数よりも大であってはならず、かつ先に読み出された記憶ステージの数よりも小さくてはならない。上記実施例では、トリガーステップは値８を有するので、読み出し操作が完了した時にトリガーポインタは１６番目の記憶ステージをポイントする。従って、想定するケースでは、書き込みポイントは１６番目の記憶ステージまで進んでいないので、プロセッサによって更に読み出し操作を実行することはできない。読み出しがイネーブルされていないからである。書き込みポインタの値が新しく設定されたトリガーポインタの値に一致する場合に限り、次のデータブロックを読み出すことができる。
【００１７】
ポインタが相互作用し合うことにより４つの入力チャンネル１２の連続サンプリングによって発生した４つのデータ値の完全データブロックを読み出しのために利用できるように常時保証できる。一般的にはこれらポインタのこのような相互作用は次のように定義できる。
【００１８】
ｎ個の記憶ステージのＦＩＦＯ記憶装置により読み出し操作ごとにｉ×Ｎ個の記憶ステージを読み出すと仮定する。ここで、Ｎは入力チャンネルの数であり、他方、ｉは整数であって、ｉ×Ｎ＜ｎである。
【００１９】
処理の開始時における初期化プロセス中、トリガーポインタＴＺはｊ×Ｎの値にセットされる。
ここで、ｊは整数であり、
ｊ×Ｎ＜ｎであり、
ｉ≦ｊである。
【００２０】
各読み出し操作後、トリガーポインタＴＺはｉ×Ｎの１つのトリガーステップＴＳだけ進められる。
このように書き込みよおび読み出し操作を制御するために、３つのポインタを使用することによっても、記憶されたデータブロックと入力チャンネルでサンプリングされたデータとの間の相関性を失うことなく、記憶装置内でデータをオーバーライトすることが可能となっている。このようなデータのオーバーライトは次のような場合に起こり得る。すなわち長時間プロセッサがＦＩＦＯ記憶装置３０からのデータを必要とせず、よって記憶装置内に連続的な書き込みを行った場合、１６番目の記憶ステージから最初の記憶ステージまでもう１回書き込みポインタがセットされる場合にデータのオーバーライトが生じ得る。当然ながらオーバーライトされたデータが失われ、現在のデータに置き換えられるが、プロセッサが各ケースで現在のデータしか必要としないか、または一部の古いデータのオーバーライトが更なる処理を阻害しないよう、データが冗長であるようなアプリケーションもある。
【００２１】
記憶されたデータと入力チャンネルによってサンプリングされたデータとの間の相関性が失われないように保証するために、オーバーライトの開始を設定するチェックプロセスをまず開始する。このチェックプロセスでは読み出しポインタと書き込みポインタとを比較する。書き込みポインタの値が読み出しポインタの値と等しくなれば、このことはまだ読み出されていない記憶ステージへの書き込みが行われることを示す。この場合、現在のデータによる記憶ステージのオーバーライトが開始する。このような状態が検出されるとすぐに、読み出しポインタの値は入力チャンネルの数だけ増加される。すなわち次の例では４だけ増加され、よって読み出しポインタは第５番目の記憶ステージをポイントする。このことは、次の可能な読み出し操作の場合に第５番目の記憶ステージ内のデータにより、すなわち記憶ステージ５〜８内に記憶されているデータブロックの第１データ値により読み出しが開始することを意味する。同時に、トリガーポインタの値も入力チャンネルの数だけ増加され、記憶装置内で読み出しのための全データブロックが利用できるようになった場合に、次の読み出し操作しかイネーブルされないことが保証される。
【００２２】
図３のフローチャートを参照し、ＦＩＦＯ記憶装置３０を使ったデータ伝送プロセスを説明する。
スタート後、ステップ１において、書き込みポインタＳＺの値がトリガーポインタＴＺの値以上であるかどうかを判断するためにチェックを行う。条件が満たされるまでこのチェックプロセスを続ける。ステップ２において、条件が満たされると、出力端４０における信号ＤＡＴＡ＿ＡＶがアクティーブ状態とされ、この読み出しが許可された旨の表示をプロセッサに行う。
【００２３】
ステップ３では、呼び出しポインタによって表示された記憶ブロックとトリガーポインタによって表示された記憶ブロックとの間のデータブロックが既に読み出されたかどうかを確認するためのチェックが行われる。このチェックは記憶ステージを読み出すごとに１だけ進められる読み出しポインタの値とトリガーポインタの値とを比較することによってこのチェックを実現できる。これら記憶ブロックが読み出されていれば、ステップ４で信号ＤＡＴＡ＿ＡＶが非アクティブ状態とされ、トリガーポインタは先の値とトリガーのステップＴＳとの合計から得られる新しい値にセットされる。ステップ１へリターンした後に再び書き込みポインタの値がトリガーポインタの値以上となったかどうかをチェックする。実施可能であれば、ステップ２、３および４をもう１回実行する。
【００２４】
ステップ３で読み出し操作が行われていないと確認された場合、桁上げが既に行われたかどうか、すなわち書き込みポインタＳＺの値が読み出しポインタＬＺの値に等しくなった状態に達したかどうかのチェックをステップ５で行う。桁上げが行われていなければ、機能シーケンスはステップ３へリターンし、再び読み出し操作が行われたかどうかのチェックを行う。しかしながら、桁上げが行われていれば、すなわちまだ読み出されていない記憶ステージにデータのオーバーライトが行われていれば、読み出しポインタの値だけでなく、トリガーポインタの値も入力チャンネルの数だけ増加する。
【００２５】
循環ＦＩＦＯ記憶デバイスにおける読み出しポインタと書き込みポインタとトリガーポインタとの相互作用により、入力チャンネルから出力チャンネルへデータを転送する極めてフレキシブルな方法が得られ、これによりデータの保全性を無傷に維持しながら、プロセッサはデータを非同期状態で読み出すことができる。
【００２６】
以上の説明に鑑み、更に以下の項を開示する。
（１）所定のシーケンスを維持しながら、最終ステージの出力端が最初のステージの入力端に接続されているｎ個の記憶ステージを備えた循環ＦＩＦＯ記憶装置により、前記所定のシーケンスでサンプリングされたＮ個のチャンネルからプロセッサへデータを転送するための方法であって、
ａ）ＦＩＦＯ記憶装置へのデータの書き込み操作ごとに、最後に書き込みされた記憶ステージを指定する値に書き込みポインタ（ＳＺ）をセットする工程と、
ｂ）ＦＩＦＯ記憶装置（３０）からのデータの読み出し操作ごとに、その後読み出すべき記憶ステージを指定する値に読み出しポインタ（ＬＺ）をセットし、読み出しプロセスが常にｉ×Ｎ個（ここでｉは整数であり、ｉ×Ｎ＜ｎである）の記憶ステージからのデータの読み出しを常に行う工程と、
ｃ）トリガーポインタ（ＴＺ）を値ｊ×Ｎ（ｊは整数であり、ｊ×Ｎ＜ｎかつｉ≦ｊである）にセットする工程と、
ｄ）書き込みプロセス後、書き込みポインタ（ＳＺ）の値がトリガーポインタ（ＴＺ）の値以上であれば、読み出し操作を認める工程と、
ｅ）各読み出し操作後、トリガーポインタ（ＴＺ）の値をｉ×Ｎの１つのトリガーステップ（ＴＳ）だけ増加する工程と、
ｆ）書き込みポインタ（ＳＺ）の値が読み出しポインタ（ＬＺ）の値に達すると、読み出しポインタ（ＬＺ）の値およびトリガーポインタ（ＴＺ）の値をＮだけ増加する工程とを実施する、データを転送するための方法。
【００２７】
（２）転送すべきデータがアナログデータであり、アナログデータを４つのチャンネルでサンプリングし、アナログ−デジタルコンバータ内でデジタルデータに変換し、よってＦＩＦＯ記憶デバイス（３０）内でサンプリングされるチャンネルのシーケンスにこの変換されたデジタルデータを記憶し、これにより４つの変換されたデジタルデータの４つのブロックの各々を、１つが他方のブロックに続くよう記憶できるようになる、第１項記載の方法。
【００２８】
（３）トリガーポインタ（ＴＺ）をまず値８にセットし、よって８番目の記憶ステージにデータを書き込む最初の時に、ＦＩＦＯ記憶デバイス（３０）からの読み出し操作をイネーブルし、各読み出し操作後、トリガーポインタ（ＴＺ）の値を少なくとも４だけ増加し、よってその後の読み出し操作において、少なくとも４つの連続する記憶ステージからのデータを読み出すことができる、第２項記載の方法。
【図面の簡単な説明】
【図１】本発明に係わるデータ転送方法を実施できる回路装置の一例を示すブロック図である。
【図２】循環ＦＩＦＯ記憶デバイスの略図である。
【図３】図２の記憶デバイスで行われる書き込みプロセスおよび読み出しプロセスを示すフローチャートである。
【符号の説明】
３０    循環ＦＩＦＯ記憶装置
ＳＺ    書き込みポインタ
ＬＺ    読み出しポインタ
ＴＺ    トリガーポインタ
【図１】
0004307665.tif 000002
【図２】
0004307665.tif 000003
【図３】
0004307665.tif 000004