(57)【特許請求の範囲】
【請求項１】
メモリ及び少なくとも１つの周辺装置の間に、通信経路を介して、複数の所定のデータ集合を送信するためのトリガ制御インタフェースを備えるコンピュータ・システムであって、当該メモリが、複数の当該所定のデータ集合中の連続的ないくつかの複数のエントリを記憶するものであり、当該複数のエントリが、それぞれの、制御フィールド及びデータ・フィールドを含み、前記インタフェースが：
前記インターフェースによって送信されるための前記メモリの所定のデータ集合の連続的な複数のエントリに対する可動ポインタを有するポインタ・レジスタ；および
前記複数の所定のデータ集合のうちの選択されたいくつかを識別する複数のトリガ信号を連続的に受信および累積し、当該複数のトリガ信号の蓄積の後に、開始信号を前記ポインタ・レジスタに送ることにより、第１トリガ信号が到着すると、前記メモリから前記周辺装置への、又は、前記メモリから前記メモリ内の他の部分への、いずれかに、前記通信経路を介して、前記複数の所定のデータ集合のうちの、対応する選択された１つが送信されるようにするコントローラであって、該コントローラは前記所定のデータ集合が送信される間にさらに複数のトリガ信号を受信し、当該更なる複数のトリガ信号をバッファリングし、毎回、所定のデータ集合の送信が終了すると、更なる所定のデータ集合の送信に対して、更なる開始信号を送るコントローラ；
を備えることを特徴とするコンピュータ・システム。
【請求項２】
前記インターフェースがポートを備え、前記通信経路が、前記メモリを前記ポートに結合するための、第１の双方向データ経路を備え、
前記インターフェースが、前記ポートを前記周辺装置に結合するための、第２の双方向データ経路を備える、
請求項１記載のコンピュータ・システム。
【請求項３】
前記第１の双方向データ経路が、データを並列に搬送し、
前記第２の双方向データ経路が、データを直列に搬送する
請求項２記載のコンピュータ・システム。
【請求項４】
前記コントローラが、
各所定のデータ集合に関してトリガ信号を選択的に受信し、且つ各所定のデータ集合に関してレディ信号を提供するトリガ信号アキュムレータと、
前記レディ信号を受信し、且つ各所定のデータ集合に関して開始信号を提供する優先順位論理とを備える、請求項１ないし３のいずれかに記載のコンピュータ・システム。
【請求項５】
前記コントローラが、先入れ先出しレジスタを備える、請求項１ないし４のいずれかに記載のコンピュータ・システム。
【請求項６】
前記コントローラが、前記第１の所定のデータ集合の前記送信中に前記開始信号を出させないようにする転送ゲートを備える、請求項１ないし５のいずれかに記載のコンピュータ・システム。
【請求項７】
前記インターフェースが、第１及び第２のトリガ信号を受信し、且つ所定のデータ集合の送信を開始するトリガ信号バッファを備え、
前記トリガ信号バッファが、着信する第１及び第２のトリガ信号を第１方向において計数し、且つ所定のデータ集合転送の完了を第１の方向と反対の第２の方向で計数し、
前記第１方向での計数が、入来トリガ信号による増分の計数に対応し、逆方向での計数が、所定のデータ集合の転送の完了による、減分の計数に対応することを特徴とする、請求項１ないし６のいずれかに記載のコンピュータ・システム。
【請求項８】
前記トリガ信号バッファが、前記所定のデータ集合の送信のための実行時間よりも短い時間的間隔で第１及び第２のトリガ信号を受信し、
前記トリガ信号バッファが、第１の所定のデータ集合転送終了後に前記更なる所定のデータ集合の送信を開始する
請求項７記載のコンピュータ・システム。
【請求項９】
前記トリガ信号バッファが、異なる優先順位を有するデータ所定のデータ集合に関してトリガ信号を選択的に計数する複数のアキュムレータを備える請求項７又は８に記載のコンピュータ・システム。
【請求項１０】
前記インターフェースが更に、前記第１及び第２のトリガ信号を第１及び第２の所定のデータ集合転送の優先順位に従ってチャネル化する優先順位論理を備える請求項７ないし９のいずれかに記載のコンピュータ・システム。
【請求項１１】
前記インターフェースが汎用性プロセッサにより実現される請求項７ないし１０のいずれかに記載のコンピュータ・システム。
【請求項１２】
前記インターフェースがプログラミング可能である請求項７ないし１１のいずれかに記載のコンピュータ・システム。
【請求項１３】
前記トリガ信号バッファが、トリガ信号を格納するためのプログラミング可能な容量を有する請求項７ないし１２のいずれか記載のコンピュータ・システム。
【請求項１４】
メモリ及び少なくとも１つの周辺装置の間に、通信経路を介して、複数の所定のデータ集合を送信する、制御装置によって実行される方法であって、当該メモリが、複数の当該所定のデータ集合中の連続的ないくつかの複数のエントリを記憶するものであり、当該複数のエントリが、それぞれの、制御フィールド及びデータ・フィールドを含み、当該方法が、
（ａ）前記制御装置が、前記複数の所定のデータ集合のうちの、規定された最初の１つを送信するために、前記複数の所定のデータ集合のうちの選択されたいくつかを識別する、複数のトリガ信号を、バッファにおいて、連続的に受信および累積し、前記最初の所定のデータ集合の送信を開始するステップと、
（ｂ）前記複数のトリガ信号の蓄積の後に、前記制御装置が、前記バッファに、開始信号を、ポインタ・レジスタに送ることによって、連続的なエントリへの可動ポインタが、前記複数の所定のデータ集合のうちの、対応する選択された１つの送信を惹起するように指示し、
前記制御装置が、更なる複数の所定のデータ集合の送信のために、更なる複数のトリガ信号を受信し、当該更なる複数のトリガ信号をバッファに格納するステップと、
（ｃ）前記最初の、選択された、所定のデータ集合の送信が完了したときに、前記バッファから前記更なるトリガ信号の１つを開放し、前記更なる複数の所定のデータ集合の１つの送信を開始するステップと、
（ｄ）前記更なる所定のデータ集合の送信が完了するときに、前記バッファから前記複数の更なるトリガ信号の他方を開放し、前記更なる複数の所定のデータ集合の他方の送信を開始するステップとを備える方法。
【請求項１５】
前記ステップ（ｃ）において、前記所定のデータ集合の少なくとも１つが、前記所定のデータ集合の他方と同じデータを、少なくとも部分的にカバーする請求項１４記載の方法。
【請求項１６】
前記ステップ（ａ）及び（ｂ）において、前記第１及び更なるトリガ信号が、前記第１及び更なる所定のデータ集合が異なるデータをカバーするとき異なる場所に選択的に格納される請求項１４又は１５に記載の方法。
【請求項１７】
ステップ（ａ）及び（ｂ）の後に実行される、所定の複数のデータ集合が、異なった優先度を有するように、優先順位付けするステップを更に含む、
請求項１４ないし１６のいずれかに記載の方法。
【請求項１８】
前記ステップ（ｄ）において、前記第１及び更なるトリガ信号は、補助変数により第１の方向に計数され、
前記補助変数が、所定のデータ集合の送信が終了する度に第１の方向と反対の第２の方向に計数される請求項１４ないし１７のいずれかに記載の方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、一般にコンピュータ・システムに関し、さらに詳しくは、このようなシステムにおいて用いられるデータ通信用インタフェースに関する。本発明は、このシステムの動作方法にも関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
コンピュータ・システム（たとえば統合マイクロコンピュータ）は、プロセッサ（たとえば中央処理装置：CPU），メモリ・ユニット（たとえばランダム・アクセス・メモリ：RAM），バスおよび他の構成部品によって構成される。インタフェースは、これらの構成部品と周辺装置（たとえばディスプレイ，プリンタ，ブザー）との間にデータおよび制御情報を交換する。たとえば、プロセッサがメモリにデータを書き込み、インタフェースがこのデータを周辺装置に送るか、あるいはその逆が行われる。プロセッサ資源を節約するためには、インタフェースをプロセッサから部分的に、あるいは完全に独立させて制御すると便利である。たとえば、インタフェースは、たとえばタイマから制御信号（いわゆる「トリガ」）を受信することができる。
【０００３】
第１トリガが到着すると、インタフェースは、所定のデータ集合、いわゆる「待行列（キュー）」を転送する。しかし、インタフェースの使用中に第２トリガが到着すると、トリガ衝突が起こることがある。衝突を避けるためには、連続するトリガは一定の遅延をもって到着すべきである。タイマ内の適切なソフトウェアは、この条件を満たすことができる。しかし、このような方法はコストがかかり、エラーを招きやすい。
【０００４】
インタフェースは、レジスタ内に、各待行列Q(i)に関するトリガ衝突ビット（TCB: trigger collision bit）を格納することができる。このTCBは、着信トリガ信号T(i)によりアサートされ、待行列転送が終了するとネゲートすることができる。インタフェースは、TCBがアサートされる限り、新規に到着するトリガ信号を受信しない。しかし、トリガ信号が待行列転送を起動せずに失われることがあるので、この方法も望ましくない。
【０００５】
待行列シリアル周辺インタフェース・ユニット（QSPI: queued serial peripheral interface unit）が、設計される多くのマイクロコンピュータおよび周辺装置に組み込まれる。以下の参考文献が有用である：いずれもHill他による米国特許第４，８１６，９９６号［１］および第４，９５８，２７７号［２］；およびモトローラ社による「Queued Serial Module (QSM) Reference Manual」（１９９１年発行、発注番号QSMRM/AD）。
【０００６】
本発明は、従来技術のこれらやその他の欠点と制約とを軽減する、あるいは回避する改善されたインタフェースを備えるコンピュータ・システムを提供することを目標とする。
【０００７】
【実施例】
「アサート」，「アサーション」，「ネゲート」および「ネゲーション」という用語は、混乱を避けるためにバイナリ信号を扱う場合に用いられる。「アサート」および「アサーション」は、バイナリ信号が能動である、すなわち論理的に真（たとえば論理「１」）とされることを示すために用いられる。「ネゲート」および「ネゲーション」は、信号が非能動すなわち論理的に偽（たとえば論理「０」）とされることを示すために用いられる。場合によっては、標準的な使用法に合わせるために、「セット」または「セッティング」が「アサート」および「アサーション」の代わりに用いられ、「クリア」および「クリアリング」が「ネゲート」および「ネゲーション」の代わりに用いられる。
【０００８】
本発明は、QSPIに関して説明されるが、これに限定されない。当業者は、本明細書の説明に基づき、本発明の範囲から逸脱することなく本発明を他のインタフェースに適用することができる。便宜のために、用語の解説を請求項の前に記載する。
【０００９】
図１は、本発明によるコンピュータ・システム１００（以下システム１００とする）の簡略なブロック図である。システム１００は、プロセッサ１１０，メモリ１３０，データ・インタフェース１０１（以下インタフェース１０１とする）および１つ以上の周辺装置（PD: peripheral device）１２０，１２０’、１２０”など（集合的に周辺装置１２０とする）によって構成される。プロセッサ１１０は、双方向データ経路１０２を介してメモリ１３０に結合される；メモリ１３０は、双方向データ経路１０４と制御経路１０８とを介してインタフェース１０１に結合される；そしてインタフェース１０１は、経路１０６を介して周辺装置１２０，１２０’１２０”に結合される。経路１０２，１０４，１０８，１０６の矢印は、好適な信号の流れを示す。インタフェース１０１のポインタ１６５（「ポインタｐ」）はメモリ１３０に行く。線１０３により示されるように、インタフェース１０１は、トリガ信号T(i)（以下「トリガ」とも呼ぶ）を受信する。たとえば、プロセッサ１１０によって、タイマによって、あるいはトリガ発生器によってトリガ信号T(i)を提供する方法は当技術においては周知である。インタフェース１０１は、メモリ１３０からデータを受信し、データを周辺装置１２０，１２０’，１２０”に送る。またその逆に、インタフェース１０１は周辺装置１２０からデータを受信して、メモリ１３０に書き込む。「送信」，「転送」および「交換」という用語は、本明細書においては、同義語として用いられ、「受信」，「送信」および「書込」を含むものとする。
【００１０】
本発明により、インタフェース１０１は、トリガ信号T(i)をバッファ（一時的に記憶）し、任意でデータ転送の優先順位を決定する。これは、従来技術と比較して、本発明の重要な利点である。従来技術によるインタフェースは、到着するトリガ信号の正確なタイミングを必要とする。本発明のシステム１００は、トリガ信号T(i)が着信すれば受信して、より効率的に動作する。
【００１１】
図１ないし図３および図５ないし図６では、簡潔にするために、実際のシステムにおいては必要とされる詳細部分を含んでいない。これは当業者には理解頂けよう。たとえば、CPUなどの制御装置がシステム１００の動作を制御する制御経路が図示されない。これらは、下記の更なる説明から明らかになろう。一般に、システム１００の論理的機能をハードウェアに実現するには多くの方法が可能であり、図面は単に説明のためのものに過ぎない。当業者は、本明細書の説明に基づきシステム１００の構築方法を理解されよう。
【００１２】
図２は、システム１００（図１）の一部であるメモリ１３０の簡略なブロック図である。メモリ１３０は、Ｋ個の制御フィールド１３２−ｋ（ｋ＝０〜（K-1））とＫ個のデータ・フィールド１３４−ｋ（ｋ＝０〜（K-1））（集合的に「メモリ・フィールド」と呼ぶ）を有する。ポインタ１６５（図１参照、以下ポインタｐとする）は、ｋ＝ｐである制御フィールド１３２−ｋおよびデータ・フィールド１３４−ｋを指す。図２の例では、ポインタｐ＝２はメモリ・フィールド１３２−２と１３４−２とを指す。説明を簡単にするために、指標ｋを制御フィールド１３２−ｋとデータ・フィールド１３４−ｋのアドレスと考える。制御フィールド１３２−ｋは制御ワードC(k)を格納し、データ・フィールド１３４−ｋはデータ・ワードD(k)を格納する。制御ワードC(k)とデータ・ワードD(k)は、集合的にエントリE(k)と呼ばれる。たとえばエントリE(1)は破線のフレーム１３５により示される。
【００１３】
メモリ１３０内の連続するエントリE(k')〜E(k")がデータ待行列（以下待行列Q(i)）を形成する。好ましくは、シングル・プライムの指標ｋ’は待行列Q(i)の始点を示し、ダブル・プライムの指標ｋ”は待行列Q(i)の終点を示す。指標i,jは、異なるエントリをもつ待行列Q(i)とQ(j)とを区別する。待行列同士は重複してエントリを共有することができるが、これは本質的なことではない。制約する意図はないが図２の例では、メモリ１３０はそれぞれＫ＝１０のメモリ・フィールド１３２−ｋおよび１３４−ｋを有し、エントリE(0)〜E(9)を格納する。待行列Q(1)（参照番号１３７）はエントリE(2),E(3),E(4)（k’＝２，k”＝４）で構成され、待行列Q(2)（参照番号１３８）はエントリE(6),E(7),E(8)（k’＝６，k”＝８）で構成され、待行列Q(3)（参照番号１３９）はエントリE(4),E(5),E(6)で構成される。複数の待行列Q(i)，Q(i')には待行列の総数I（たとえばＩ＝３）が付される。本発明の利点として、システム１００は、異なる優先順位をもつ待行列Q(i)に任意で対応することができる。優先順位の高い待行列のトリガ信号T(i)と優先順位の低い待行列の信号T(i')（ｉ≠ｉ’）が実質的に同時に到着すると、優先順位の高い行列Q(i)は優先順位の低い待行列Q(i')よりも先に対応される。優先順位は指標ｉにより表される。たとえば、ｉ＝１，２，３として、待行列Q(1)が高い優先順位をもち、待行列Q(2)が中間の優先順位をもち、待行列Q(3)が低い優先順位をそれぞれもつ。
【００１４】
好ましくは、双方向データ経路１０２が制御ワードC(k)とデータ・ワードD(k)とを、プロセッサ１１０とメモリ１３０（図１参照）との間に運び、双方向データ経路１０４がデータ・ワードD(k)をインタフェース１０１とメモリ１３０（図１参照）との間に運び、制御経路１０８が制御ワードC(k)をメモリ１３０からインタフェース１０１に運ぶ。
【００１５】
図３は、システム１００（図１）の一部であるインタフェース１０１の簡略なブロック図である。インタフェース１０１は、ポインタ・レジスタ（PR：pointer register）１６０，制御レジスタ（CR: control register）１４０，コントローラ（CONT: controller）１７０およびポート１５０によって構成される。コントローラ１７０は、図４に関して説明されるトリガ・バッファ１７５（以下バッファ１７５）によって構成される。あるいは、トリガ・バッファ１７５’（以下バッファ１７５’とする、図５参照）も用いることができる。
【００１６】
ポート１５０は、双方向経路１０４を介してメモリ１３０とデータ・ワードD(k)を交換し、双方向データ通信経路１０６（以下経路１０６）を介して周辺装置１２０（図１参照）とデータ・ワードD(k)を交換する。データ・ワードD(k)およびd(k)の情報は実質的に同じであり、形態は変化することがある。たとえば、ポート１５０をデータ・シリアライザとして構築することができる。データ・シリアライザは参考文献［１］，［２］の図３に関して詳細に説明される。このような場合は、データ・ワードD(k)はパラレル・ビットであり、データ・ワードd(k)はシリアル・ビット・シーケンスであるが、これは本発明にとっては重要ではない。ポート１５０は、ライン１５５を介してコントローラ１７０から制御信号を受信するが、これらの信号は本発明にとっては本質的なことではない。
【００１７】
制御レジスタ１４０は、各待行列Q(i)の開始指標k'(Q(i))と終了指標k"(Q(i))を便宜に格納する。当業者には、待行列は他の手段により識別することもできることが理解頂けよう。たとえば、開始指標k'とQ(i)のエントリE(k)の数を用いることもできる。制御レジスタ１４０は、ライン１４４を介してポインタ・レジスタ１６０に結合され、k'(Q(i))およびk"(Q(i))を通信する。ポインタ・レジスタ１６０は、k'とk"との間を進むポインタｐ（１６５）を生成する。ポインタｐは、待行列Q(i)のエントリE(k')からE(k")までを連続的に指す可動ポインタである。当技術においては、このようなポインタｐの生成は周知である。たとえば、参考文献［１］，［２］を参照されたい。従って、図３に示される制御レジスタ１４０とポインタ・レジスタ１６０の組み合わせは、一例に過ぎない。
【００１８】
本発明により、コントローラ１７０のバッファ１７５は、ライン１７４を介して制御レジスタ１４０に開始信号S(i)を与え、バス１６２を介してポインタ・レジスタ１６０から終了信号QX(i)を受信する。S(i)は符号《１》（たとえば、待行列Q(1)のS(1)），《２》（たとえば、待行列Q(2)のS(2)）および《３》（たとえば、待行列Q(3)のS(3)）により示す。S(i)を受信後、ポインタ・レジスタ１６０はポインタｐを移動させ、ポート１５０がメモリ１３０と周辺装置１２０との間に待行列Q(i)のデータ・ワードD(k)を転送する。次にポインタ・レジスタ１６０は、バス１６２上でQX(i)を通じてバッファ１７５に対して、待行列Q(i)が終了したことを伝える。好ましくは、ポインタ・レジスタ１６０は待行列が送信される間は、新しいS(i)を受け付けない。
【００１９】
任意で、コントローラ１７０が経路１０８を介してメモリ１３０から制御ワードC(k)を受信する。制御ワードC(k)は、経路１０６のパラメータの定義と、その他の目的のために用いられる。バッファ１７５は、ライン１７２においてトリガ信号T(i)を受信する。ライン１７２は、たとえば各待行列Q(i)に関してＩ個の部分線をもつバスであっても、あるはトリガ信号T(i)が単独のラインを介して提供されてもよい。以下の文章と図面においては、トリガ信号T(i)は、符号<１>（Q(1)のトリガ信号T(1)），<２>（Q(2)のトリガ信号T(2)），<３>（Q(3)のトリガ信号T(3)）などにより示される。トリガ信号T(i)をトークンと見なすことができる。図３の例においては、トリガ信号T(i)は、<１> <２> <１> <１> <２> <３>の順に到着する。好ましくは、コントローラ１７０のバッファ１７５は、優先順位メカニズムによって構成されるので、バッファ１７５は優先順位の順番（たとえば、《１》《１》《１》《２》《２》《３》）に開始信号S(i)を提供する。
【００２０】
トリガ信号T(i)（たとえば<１>），開始信号S(i)（たとえば《１》）および終了信号QX(i)は、好ましくは、短時間だけアサートされて行動を起こし、自動的にリセットされるバイナリ信号である。
【００２１】
図４は、本発明によるインタフェース１０１（図３）のトリガ・バッファ１７５の簡略なブロック図である。便宜上、バッファ１７５は、たとえばｉ＝１〜ｉ＝Ｉ＝３について図示される。バッファ１７５は、トリガ・アキュムレータ２１０−ｉ（たとえば２１０−１，２１０−２，２１０−３；以下アキュムレータとする），オプションの優先順位論理２５０，ＯＲゲート２８０および転送ゲート２９０によって構成される。バッファ１７５において、トリガ入力ライン１７２（図３参照）は、アキュムレータ２１０−ｉの選択的入力２１２−ｉに結合される。バス１６２（図３参照）は、アキュムレータ２１０−ｉの選択的入力２１４−ｉに結合される。「選択的入力」という用語は、説明のための便宜的なものである。たとえば、アキュムレータ２１０−１は <１>とQX(1)を受信するが、<２>，<３>，QX(2)またはQX(3)は受信しない。当業者は、各待行列に関して別々に配線することにより、ライン１７２，バス１６２および選択的入力２１２−ｉ，２１４−ｉを実現することができる。しかし、これは本質的なことではない。アキュムレータ２１０−ｉは中間信号（「レディ信号」）QA(i)を提供する出力２１６−ｉを有する。
オプションの優先順位論理２５０は、QA(i)を受信する入力２５２−ｉと、開始信号S(i)を提供するライン１７４とを有する。
【００２２】
好ましくは、アキュムレータ２１０−ｉは、入力２１２−ｉにトリガ信号T(i)が到着するたびに内部変数N(i)または「カウンタ変数」を増分する。アキュムレータ２１０−ｉは、入力２１４−ｉに終了信号QX(i)が到着するたびにN(i)を減分する。「増分」および「減分」という用語は、整数変数の数値が、「１」ずつそれぞれ加算または減算により変化することを表すために、コンピュータ技術で広く用いられる。本明細書においては、これらの用語はより広い意味で用いられ、たとえばN(i)などの変数の大きさが第１方向またはそれと逆の第２方向に変化する（計数される）ことを表すために用いられる。アキュムレータ２１０−ｉは、バイナリ・レディ信号QA(i)を提供する。トリガ信号T(i)が累積（アキュムレート）されると、アキュムレータ２１０−ｉはQA(i)をアサートし、そうでない場合はアキュムレータ２１０−ｉはQA(i)をネゲートする：
【００２３】
【数１】
N(i)＞０のとき  QA(i) ＝  「１」
【００２４】
【数２】
N(i)＝０のとき  QA(i) ＝  「０」
優先順位論理２５０は、優先順位のもっとも高い待行列に関して中間信号QA(i)＝「１」をS(i)に送り、優先順位の低い待行列に関してはQA(i)＝「１」を通さない。
【００２５】
優先順位論理２５０は、転送ゲート２９０の入力２９１に結合される出力２５４を有する。転送ゲート２９０は、ライン１７４に出力２９２を有する。転送ゲート２９０は、入力２９３においてＯＲゲート２８０によりイネーブルになる。ＯＲゲート２８０は、バス１６２またはバス１６３から、すべてのｉ＝１〜ＩについてQX(i)を受信する。ＯＲゲート２８０は、終了信号QX(i)を監視し、転送ゲート２９０は古い待行列が完全に送信されたときに限り、開始信号S(i)を転送する。転送ゲート２９０は、待行列送信の間は開始信号S(i)を便宜に阻止する。
【００２６】
任意で、アキュムレータ２１０−ｉは、N(i)が最大値Nmaxに到達するとトリガ・オーバーフロー信号TOVF(i)を提供する出力２１５−ｉを有する。信号TOVR(i)は、たとえば、プロセッサ１１０に通信されて、割込を生成することができる。この特徴も本発明を従来技術と区別する。従来の技術においては、上記のTCB信号は単独のトリガが到着するとアサートされる。本発明では、アキュムレータ２１０−ｉは所定数Nmaxのトリガ信号T(i)を受信した後でTOVF(i)をアサートする。Nmaxは、トリガ信号を収容するバッファ１７５の容量を表す。本発明には、Nmaxをプログラミングして、インタフェース１０１の動作中に変更することができる点も含まれる。Nmaxは、各アキュムレータ２１０−ｉ（たとえばNmax(1)≠Nmax(2)）について異なることがある。簡単にするために、図４は、たとえばプロセッサ１１０からNmax'を取り出すことのできる信号線を図示しない。この特徴により、システム１００はシステム１００の融通性に貢献する。
【００２７】
図５は、バッファ１７５（図４）の代わりに用いることのできるバッファ１７５’の簡略なブロック図である。図４および図５の参照番号１６２，１７２，１７４，１７５／１７５’，２８０／２８０’，２９０／２９０’，２９１／２９１’，２９２／２９２’，２９３／２９３’は類似の要素を示すが、その機能は異なる場合がある。バッファ１７５’は、アキュムレータ２２０，転送ゲート２９０’およびＯＲゲート２８０’によって構成される。アキュムレータ２２０は、好ましくは先入れ先出し（FIFO: first-in-first-out）レジスタである。アキュムレータ２２０は、ライン１７２の入力２２１と、転送ゲート２９０’の入力２９１’に結合される出力２２２とを有する。転送ゲート２９０’はライン１７４に出力２９２’を有する。転送ゲート２９０’は、入力２９３’においてＯＲゲート２８０’によりイネーブルになる。ＯＲゲート２８０’は、バス１６２からすべてのｉ＝１〜Ｉに関してQX(i)を受信する。転送ゲート２８０’は終了信号QX(i)を監視し、転送ゲート２９０’は、待行列が完全に送信されると単独のトリガ信号T(i)を単独の開始信号S(i)に転送する。
【００２８】
この実行例においては、待行列には優先順位は付けられない。トリガ信号T(i)の入力シーケンス（たとえば<１><２><１><１><２><３>）は、開始信号S(i)の出力シーケンス（たとえば、《１》《２》《１》《１》《２》《３》）と等しい。トリガ信号を収容するバッファ１７５’の容量は、アキュムレータ２２０のサイズによって表される。
【００２９】
図６は、トリガ・バッファ１７５（図４）の一部である優先順位論理２５０の簡略なブロック図である。優先順位回路は当技術では周知である。図６の優先順位論理２５０はＩ＝３の例とするが、これに限定しない。当業者は、他の方法で優先順位論理２５０を構築することができる。Ｉ＝３の上記の例では、優先順位の高い待行列（たとえばQ(1)），優先順位が中間の待行列（たとえばQ(2)）および優先順位の低い待行列（たとえばQ(3)）の開始信号S(i)は、以下の式により信号QA(i)から導かれる：
【００３０】
【数３】
S(1) = QA(1)（高）
【００３１】
【数４】
S(2) = QA(2)ａｎｄQA(1)     （中）
【００３２】
【数５】
S(3) = QA(3)ａｎｄQA(2)およびQA(1)（低）
ただし「および」は、論理的な合接演算を示し、下線部は論理的反転を示す。
【００３３】
このような関係を実現するためには、優先順位論理２５０は、たとえばＡＮＤゲート２５５，２５６によって構成される。優先順位論理２５０は、図４の２５２−ｉに対応する入力２５２−１，２５２−２，２５２−３と、出力２５２−１’，２５５−３，２５６−４周囲の破線フレームにより示される出力２５４（図４）とを有する。ＡＮＤゲート２５５は、反転入力２５５−１（円形符号）と、非反転入力２５５−２および出力２５５−３とを有する。ＡＮＤゲート２５６は、反転入力２５６−１，２５６−２と非反転入力２５６−３と出力２５６−４とを有する。入力２５２−１は出力２５２−１’と、ＡＮＤゲート２５５の入力２５５−１と、ＡＮＤゲート２５６の入力２５６−１とに結合される。入力２５２−２は、ＡＮＤゲート２５５の入力２５５−２と、ＡＮＤゲート２５６の入力２５６−２とに結合される。入力２５２−３は、ＡＮＤゲート２５６の入力２５６−３に結合される。優先順位論理２５０は、待行列転送の優先順位に従ってトリガ信号T(i)を運ぶ。
【００３４】
図７は、従来技術による方法３００の簡略なフローチャートである。（たとえば参照文献［１］，［２］を参照されたい）。方法３００は、トリガを受信する段階３１０，TCBをアサートする段階３２０，待行列を転送する段階３３０およびQXを待機してTCBをネゲートする段階３４０によって構成される。好ましくは、段階３１０〜３４０は、反復して連続的に実行される（段階３４０から段階３１０へのライン３５０）。トリガ信号T(i)が到着するとインタフェースがTCBをアサートし（段階３１０，３２０）、待行列転送が完了した後でTCBをネゲートする（段階３３０，３４０）。TCBがアサートされる限り、インタフェースは新規に到着するトリガ信号を受信しない。これが従来技術の大きな欠点である。
【００３５】
図８は、本発明による方法４００の簡略なフローチャートである。方法４００は、好ましくは本発明のシステム１００に適応されるが、他のシステムでも用いることができる。図８において、方法段階はブロックにより示され、好適な方法の流れは矢印を伴う線で示される。方法４００は、トリガ信号T(i)を受信する段階４１０−ｉと、N(i)を増分する段階４１５−ｉと、終了信号QX(i)を受信する段階４２０−ｉと、N(i)を減分する段階４２５−ｉと、レディ信号QA(i)を提供する段階４３０−ｉと、任意で優先順位を付ける段階４５０と、待行列Q(i)を開始する段階４６０とによって構成される。段階４１０−ｉ，４１５−ｉ，４２０−ｉ，４２５−ｉ，４３０−ｉ（総称して「ｉ段階」とする）は、実質的にいつでもアキュムレータ２１０−ｉにおいて実行される。簡単にするために、図８はｉ＝１〜Ｉ＝２に関してｉ段階を図示する。好ましくは、各アキュムレータ２１０−ｉは、連続して、しかし他のアキュムレータ２１０−ｉからは独立してｉ段階を実行する。たとえば、アキュムレータ２１０−２がレディ信号QA(2)を提供する（段階４３０−２）間に、アキュムレータ２１０−１はトリガ信号T(1)を受信する（段階４１０−１）ことができる。トリガ信号を受信する段階４１０−ｉとN(i)を増分する段階４１５−ｉとは、トリガ信号T(i)が到着したとき（T(i)＝「イエス」）しか実行されない。また、終了信号QX(i)を受信する段階４２０−ｉとN(i)を減分する段階４２５−ｉは、QX(i)が到着したとき（QX(i)＝「イエス」）しか実行されない。
【００３６】
アキュムレータ２１０−ｉは、ｉ段階を繰り返す（反復線４４０−ｉ）。優先順位論理２５０は、好ましくはｉ段階と同時に優先順位決定段階４５０を実行する。優先順位決定段階４５０の間、優先順位論理２５０は、たとえば、式（３）ないし（５）に説明されるように、開始信号S(i)をアサートする。前回の待行列転送が完了すると（たとえば、すべてのQX(i)＝「１」）、ＯＲゲート２８０が転送ゲート２９０をイネーブルにして開始信号S(i)を送る。ＯＲゲート２８０と転送ゲート２９０の動作は、照会段階４５５によって示される。次に、制御レジスタ１４０とポインタ・レジスタ１６０が待行列Q(i)開始段階４６０を実行する。
【００３７】
反復線４７０は、待行列Q(i)開始段階４６０の後に、システム１００がｉ段階に帰ることを示す。照会段階４５５は、段階３４０（従来技術）と同様の機能を持つ。
【００３８】
本発明の利点を説明するためには、従来技術による方法３００（図７参照）と本発明の方法４００のトリガ受信段階（３１０，４１０−ｉ）と待機段階（３４０，４５５）を比較すると有益である。本発明の方法４００により、トリガ信号T(i)受信段階４１０−ｉと照会段階４５５（待機）とは、同時に実行することができる独立した段階である。従来技術による方法３００においては、トリガ受信段階３１０と段階３４０は、連続して実行されるが、同時には実行されない。
【００３９】
図９は、例として方法４００（図８）を示す簡略なタイミング図である。簡潔にするために、１つの待行列Q(i)（ｉ＝Ｉ＝１）のみが対応されるものとする。従って、順位決定段階４５０は除外され、S(i)はS(i)＝QA(i)＝S(1)とする（《１》符号）。４つの連続するトリガ信号T(i)（<１><１><１><１>）が、待行列Q(i)の実行時間より短い時間的間隔をおいて到着する。従来技術においては、これがトリガの衝突を招く。方法４００では、トリガ信号T(i)は衝突を起こさずに対応される。以下ではT(i)は「Ｔ」と、N(i)は「Ｎ」と、QA(i)は「ＱＡ」と、QX(i)は「ＱＸ」と省略される。信号Ｔ（「０」または「１」），ＱＡ（「０」または「１」）およびＱＸ（「０」または「１」）と変数Ｎ（たとえばＮ＝０〜Ｎ＝４）が縦軸に置かれる。「送信」と「サイレント」という言葉は、待行列のポート１５０による送信が進行中であるか、進行中でないかを示す。時間ｔが横軸に与えられる。便宜上、信号軌跡は、方法４００の段階に対応するプライム付き参照番号を有する。図８に用いられる参照番号の「−ｉ」拡張子は簡潔にするために除外される。軌跡指標上の下付きの指標は、段階の反復を示す。
【００４０】
図９の例において、段階は、好ましくは以下の順番で実行される：
●段階４１０で第１トリガ信号Ｔを受信する（軌跡４１０’1）
●段階４１５で最初のＮ＝０からＮ＝１までＮを増分する（軌跡４１５’1）
●段階４３０でＱＡ＝「１」をアサートする（軌跡４３０’1）
●段階４６０で待行列Q(1)を開始する（「送信」）（軌跡４６０’1）
●段階４１０で第２トリガ信号Ｔを受信する（軌跡４１０’2）
●段階４１５でＮ＝２までＮを増分する（軌跡４１５’2）
●段階４１０で第３トリガ信号Ｔを受信する（軌跡４１０’3）
●段階４１５でＮ＝３までＮを増分する（軌跡４１５’3）
●段階４１０で第４トリガ信号Ｔを受信する（軌跡４１０’4）
●段階４１５でＮ＝４までＮを増分する（軌跡４１５’4）
●段階４２０でＱＸをアサートする（軌跡４２０’1）
（ポインタｐがk”に到達するので待行列Q(１)が「サイレント」になる）
●段階４２５でＮ＝３までＮを減分する（軌跡４２５’1）
●段階４６０で再び待行列Q(1)を開始する（「送信」）（軌跡４６０’2）
●段階４２０でアサート済みのＱＸを受信する（待行列が再び「サイレント」になる）（軌跡４２０’2）
●段階４２５でＮ＝２までＮを減分する（軌跡４２５’2）
●段階４６０で再び待行列Q(1)を開始する（「送信」）（軌跡４６０’3）
●段階４２０でアサート済みのＱＸを受信する（待行列が再び「サイレント」になる）（軌跡４２０’3）
●段階４２５でＮ＝１までＮを減分する（軌跡４２５’3）
●段階４６０で再び待行列Q(1)を開始する（「送信」）（軌跡４６０’4）
●段階４２０でアサート済みのＱＸを受信する（待行列が再び「サイレント」になる）（軌跡４２０’4）
●段階４２５でＮ＝０までＮを減分する（軌跡４２５’4）
●段階４３０でＱＡ＝「０」をネゲートする（軌跡４３０’2）
これで、Q(1)は４回送信された。
【００４１】
言い換えると、方法４００は、メモリ（たとえばメモリ１３０）から通信経路（たとえば経路１０６）に、あるいは逆方向に（双方向）待行列を送信する方法であって、以下の段階を含む：（ａ）第１待行列（たとえば待行列Q(1)）の第１トリガ（たとえば<１>）を受信して第１待行列を（たとえば《１》により）開始する段階；（ｂ）第２待行列（たとえば待行列Q(2)または再びQ(1)）の第２トリガ（たとえば<２>または再び<１>）を受信および格納する段階；（ｃ）第１待行列が終了すると（たとえばｐ＝ｋ”でQX(1)がアサートされるとき）第２待行列を開始する段階；および（ｄ）更なる待行列について段階（ａ）〜（ｃ）を反復する段階。
【００４２】
第２待行列（段階（ｃ））は第１待行列と同じデータ・ワードD(k')〜D(k")を網羅することができる。第１および第２トリガは、異なる場所において選択的に格納または計数することができる。たとえば、トリガ<１>は、アキュムレータ２１０−１に行き、トリガ<２>はアキュムレータ２１０−２に行く。このような場合は、第１および第２待行列は、便宜に異なるデータ（たとえばE(2)〜E(4)をもつQ(1)と、E(6)〜E(8)をもつQ(2)）を網羅することができる。オプションの優先順位決定段階（たとえば段階４５０）は、好ましくは、異なる優先順位（たとえば優先順位の高いQ(1)と中間的優先順位のQ(2)）を有する待行列に関して段階（ａ）および（ｂ）の後で実行される。
【００４３】
上記の反復段階（ｄ）の間、トリガは補助変数（たとえばN(i)）により第１方向（たとえば段階４１５−ｉのN(i)増分）に計数される。あるいは、補助変数は、待行列が終了するたびに第２の反対方向（たとえば段階４２５−ｉのN(i)減分）に計数される。
【００４４】
待行列のトリガについて説明してきたので、ここではコンピュータ・システム（１００）がさらに、「古い」待行列の転送を中止して新しい「待行列」の転送を開始することができるようにする方法を例として説明する。これは本発明を制限するものではない。
【００４５】
図１０は、待行列終点（EOQ）信号を用いる構造におけるメモリ１３０’の簡略なブロック図である。図２および図１０において、同様の参照番号（図１０ではプライム符号付き）は同様の要素を表す。メモリ１３０’を用いると、システム１００のインタフェース１０１は：
●メモリ１３０’内のエントリ（Ｃ，Ｄ）を指す可動ポインタ１６５’，（制御ワードＣおよびデータ・ワードＤ），各々が第１エントリ（たとえば待行列１３７のC(2)/D(2)）と最終エントリ（たとえば待行列１３８のC(4)/D(4)）を有する待行列（Ｑ、たとえば１３７，１３８）を形成する複数のエントリを伴うポインタ・レジスタ１６０；
●メモリ１３０’と通信経路１０６との間に結合され、メモリ１３０’から通信経路１０６に、あるいはその逆に待行列Ｑによりデータ・ワードＤを連続して送信するポート１５０；および
●制御ワードＣを連続して受信し、メモリ１３０’から受信された制御ワードＣに応じてポート１５０をイネーブルにする、あるいはディスエーブルにするコントローラ１７０；
によって構成される。ただし(i)たとえば、古い待行列１３７の最終エントリの制御ワードC(4)は待行列終点信号（EOQ）によって構成され；(ii)ポインタ・レジスタ１６０は、メモリ１３０’に結合されて前記データ・ワードのいくつかから、たとえば古い待行列１３７のD(4)=k'（ｎｅｗ）から新しい待行列１３８に関する新しいポインタ１４４を受信する。
【００４６】
図３ないし図６に関するインタフェース１０１の説明と図８ないし図１０に関するその動作とは、例として説明されたもので、制限するものではない。当業者は、本発明の範囲から逸脱せずにインタフェース１０１を修正することができる。たとえば、インタフェース１０１は、汎用性プロセッサによって実現することができ、方法４００の段階はプログラム命令とすることができる。インタフェース１０１はプログラミング可能である。
【００４７】
本発明は特定の構造，装置および方法に関して説明されたが、本明細書の説明に基づき、当業者には本発明がこれらの例に限定されないこと、また本発明の全範囲は添付の請求項により適切に判定されることを理解頂けよう。
用語集
略語と書き方の法則を以下にアルファベット順にリストアップする。この用語集は便宜を図るためのみに提供される。
C(k)  制御フィールドに格納される制御ワード
CPU   中央処理装置
D(k)  データ・フィールドに格納されるデータ・ワード
E(k)  C(k)およびD(k)に関する集合的用語としてのエントリ
EOQ   待行列終点
FIFO  「先入れ先出し」
i,j   待行列の指標
I     待行列の総数
k     メモリ・フィールドの指標
k'    待行列の開始指標（開始アドレス）
k"    待行列の終了指標（終了アドレス）
K     メモリ・フィールド数
N(i)  トリガ信号T(i)のカウンタ指標
Nmax  N(i)の最大値
p     ポインタ
QSPI  待行列シリアル周辺インタフェース・ユニット
Q(i)  待行列
QA(i) アキュムレータからのバイナリ信号（「レディ信号」）
QX(i) ポインタ・レジスタからのバイナリ信号（「終了信号」）
RAM   ランダム・アクセス・メモリ
S(i)  開始信号
t     時間
T(i)  待行列Q(i)のトリガ信号
TCB   トリガ衝突ビット
TOVF(i)     トリガ・オーバーフロー信号
【図面の簡単な説明】
【図１】本発明によるコンピュータ・システムの簡略なブロック図である。
【図２】図１のシステムの一部であるメモリの簡略なブロック図である。
【図３】図１のシステムの一部であるインタフェースの簡略なブロック図である。
【図４】本発明による図３のインタフェースの第１トリガ・バッファの簡略なブロック図である。
【図５】図４の第１トリガ・バッファの代わりに用いることのできる第２トリガ・バッファの簡略なブロック図である。
【図６】図４のトリガ・バッファの一部である優先順位論理の簡略なブロック図である。
【図７】従来技術による方法の簡略なフローチャートである。
【図８】本発明による方法の簡略なフローチャートである。
【図９】図８の方法を一例に示す簡略なタイミング図である。
【図１０】待行列終点（EOQ: end-of-queue）信号を用いる構造における図２のメモリの簡略なブロック図である。
【符号の説明】
１００  コンピュータ・システム
１０１  インタフェース
１０２，１０４，１０６，１０８  経路
１０３  線
１１０  プロセッサ
１２０，１２０’，１２０”  周辺装置
１３０  メモリ
１６５  可動ポインタ
【図１】
0004489859.tif 000002
【図２】
0004489859.tif 000003
【図３】
0004489859.tif 000004
【図４】
0004489859.tif 000005
【図５】
0004489859.tif 000006
【図６】
0004489859.tif 000007
【図７】
0004489859.tif 000008
【図８】
0004489859.tif 000009
【図９】
0004489859.tif 000010
【図１０】
0004489859.tif 000011