(57)【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサ（２０）を有する回路であって、
通信プロトコルに従いピンを介してデータを前記回路に入力又は前記回路から出力するために前記プロセッサに出入りする前記データを処理するマイクロプログラム制御されたマシン（２１）を有し、
各ピンは１ビットの情報を入力又は出力することができ、前記マイクロプログラム制御されたマシンが、該マイクロプログラム制御されたマシンのクロックサイクルの各々で１つの命令の実行により、
−  どのピンが入力モードで、どのピンが出力モードか、
−  各ピンにどの値を割り当てるのか、
−  前記プロセッサにどの値を伝送するのか、
−  データの送信又は受信を続ける前にどの信号を待機するのか、
を判別することを特徴とする回路。
【請求項２】
前記マイクロプログラム制御されたマシンからの命令は、
−  どのピンが入力モードでどのピンが出力モードかを判別できるフィールド、
−  出力モードの各ピンにどの値を割り当てるのか判別できる少なくとも１つのフィールド、
−  前記プロセッサにどの値を伝送するのか判別できるフィールド、
−  データの送信又は受信を続ける前にどの信号を待機するのか判別できるフィールドを有し、
これにより、各ピンの前記入出力モード、各ピンに割り当てる前記値、前記プロセッサに伝送する前記値、及び待ち受ける前記信号を１つのクロックサイクルで判別できることを特徴とする、請求項１に記載の回路。
【請求項３】
前記マイクロプログラム制御されたマシンは、命令レジスタ（７４）と、マイクロプログラムを形成する命令を含むマイクロプログラムメモリ（２３）とを有し、前記レジスタには前記マイクロプログラムからの命令がロードされ、前記命令は、前記通信プロトコルに従い前記データを前記回路に入力又は前記回路から出力するために前記プロセッサ（２０）を出入りする前記データを処理することができ、前記回路が任意の通信プロトコルに適合できるように前記マイクロプログラム内で前記命令が修正可能であることを特徴とする、請求項１に記載の回路。
【請求項４】
各命令が、前記マイクロプログラムメモリ（２３）で次に実行される命令のアドレスを推測できるフィールドを少なくとも１つ有することを特徴とする、請求項３に記載の回路。
【請求項５】
前記マイクロプログラム制御されたマシン（２１）と前記プロセッサ（２０）で使用される通信ネットワーク（２７）との間にネットワークインターフェイスモジュール（２８）を有することを特徴とする、請求項１に記載の回路。
【請求項６】
前記プロセッサ（２０）と前記マイクロプログラム制御されたマシン（２１）は、前記データをメモリ（２６）に書き込んでその後前記メモリから読み取ることで前記データを交換し、前記メモリには前記データが一時的にのみ格納されることを特徴とする請求項１に記載の回路。
【請求項７】
通信プロトコルに従って、前記プロセッサ（２０）へ送られる前記データを前記回路に入力するため、又は前記プロセッサから送られる前記データを前記回路から出力するために、前記マイクロプログラム制御されたマシン（２１）が使用できる入出力ポートが、隣接するピン（２５）の所与の集合によって形成されることを特徴とする請求項１に記載の回路。
【請求項８】
前記マイクロプログラム制御されたマシンは、命令レジスタ（７４）と、マイクロプログラムを形成する命令を含むマイクロプログラムメモリ（２３）とを有し、前記レジスタには前記マイクロプログラムからの命令がロードされ、前記命令は、前記通信プロトコルに従い前記データを前記回路に入力又は前記回路から出力するために前記プロセッサ（２０）を出入りする前記データを処理することができ、前記回路が任意の通信プロトコルに適合できるように前記マイクロプログラム内で前記命令が修正可能であり、
前記プロセッサ（２０）と前記マイクロプログラム制御されたマシン（２１）は、前記データをメモリ（２６）に書き込んでその後前記メモリから読み取ることで前記データを交換し、前記メモリには前記データが一時的にのみ格納され、
各ピンを増幅器に接続することにより前記ピンで信号を送受信することができる回路であって、前記メモリ（２６）と前記増幅器との間にピンインターフェイスモジュール（３１）を有し、前記マイクロプログラムを形成する前記命令が前記ピンインターフェイスモジュール（３１）を経由して前記メモリ（２６）と前記増幅器との間のデータの転送を制御することを特徴とする請求項１に記載の回路。
【請求項９】
前記メモリ（２６）のフォーマットのワードを、前記通信プロトコルに従い前記回路との間で前記データを入力又は出力するために使用可能なピン（２５）の数に適したフォーマットのワードに変換できるモジュール（４２、４３）を有することを特徴とする請求項６に記載の回路。
【請求項１０】
前記マイクロプログラム制御されたマシンは、命令レジスタ（７４）と、マイクロプログラムを形成する命令を含むマイクロプログラムメモリ（２３）とを有し、前記レジスタには前記マイクロプログラムからの命令がロードされ、前記命令は、前記通信プロトコルに従い前記データを前記回路に入力又は前記回路から出力するために前記プロセッサ（２０）を出入りする前記データを処理することができ、前記回路が任意の通信プロトコルに適合できるように前記マイクロプログラム内で前記命令が修正可能であり、
前記プロセッサ（２０）と前記マイクロプログラム制御されたマシン（２１）は、前記データをメモリ（２６）に書き込んでその後前記メモリから読み取ることで前記データを交換し、前記メモリには前記データが一時的にのみ格納され、
前記メモリ（２６）のフォーマットのワードを、前記通信プロトコルに従い前記回路との間で前記データを入力又は出力するために使用可能なピン（２５）の数に適したフォーマットのワードに変換できるモジュール（４２、４３）を有し、
前記回路との間で前記データを入力又は出力するために使用可能なピン（２５）の数に適した前記フォーマットが前記マイクロプログラムを形成する命令によって決定されることを特徴とする請求項１に記載の回路。
【請求項１１】
３２ビットのパラレルデータが１６、８、４、又は２ビットのパラレルデータに、その逆に１６、８、４、又は２ビットのパラレルデータが３２ビットのパラレルデータに変換されることを特徴とする請求項９に記載の回路。
【請求項１２】
３２ビットのパラレルデータがシリアルデータに、その逆にシリアルデータが３２ビットのパラレルデータに変換されることを特徴とする請求項９に記載の回路。
【請求項１３】
通信プロトコルに従いデータを前記回路に入力又は前記回路から出力するために、プロセッサ（２０）に出入りする前記データを処理する少なくとも２つのマイクロプログラム制御されたマシンを有することを特徴とする請求項１に記載の回路。
【請求項１４】
隣接するピンの２つの集まりをそれぞれ２つのマシンが使用できることから、第１のマシンが固有のピンの集まり（２５）を使用できることに加えて、第２のマシンの隣接するピンの集まり（５７）の中のピンも使用できるようにするためのシフトモジュール（４５、４６）を有することを特徴とする請求項７に記載の回路。
【請求項１５】
前記マイクロプログラム制御されたマシンは、命令レジスタ（７４）と、マイクロプログラムを形成する命令を含むマイクロプログラムメモリ（２３）とを有し、前記レジスタには前記マイクロプログラムからの命令がロードされ、前記命令は、前記通信プロトコルに従い前記データを前記回路に入力又は前記回路から出力するために前記プロセッサ（２０）を出入りする前記データを処理することができ、前記回路が任意の通信プロトコルに適合できるように前記マイクロプログラム内で前記命令が修正可能であり、
通信プロトコルに従って、前記プロセッサ（２０）へ送られる前記データを前記回路に入力するため、又は前記プロセッサから送られる前記データを前記回路から出力するために、前記マイクロプログラム制御されたマシン（２１）が使用できる入出力ポートが、隣接するピン（２５）の所与の集合によって形成され、
隣接するピンの２つの集まりをそれぞれ２つのマシンが使用できることから、第１のマシンが固有のピンの集まり（２５）を使用できることに加えて、第２のマシンの隣接するピンの集まり（５７）の中のピンも使用できるようにするためのシフトモジュール（４５、４６）を有し、
前記マイクロプログラムを形成する前記命令により、前記シフトモジュール（４５、４６）を制御できることを特徴とする請求項１に記載の回路。
【請求項１６】
前記第２のマシンが、第３のマイクロプログラム制御されたマシンの隣接するピンの集まりの中のピンを使用できるようにするためのシフトモジュール（５５、５６）を有することを特徴とする請求項１４に記載の回路。
【請求項１７】
前記プロセッサ（２０）と前記マイクロプログラム制御されたマシン（２１）は、前記データをメモリ（２６）に書き込んでその後前記メモリから読み取ることで前記データを交換し、前記メモリには前記データが一時的にのみ格納され、
通信プロトコルに従いデータを前記回路に入力又は前記回路から出力するために、プロセッサ（２０）に出入りする前記データを処理する少なくとも２つのマイクロプログラム制御されたマシンを有し、
前記メモリ（２６）内の２つの領域は隣接するポートを使用する２つのマシンでそれぞれ使用でき、前記２つの領域は複数のメモリバッファに分割されるため、第１のマシンが、独自のメモリバッファ（６０、６１、６２、６３）に加え、処理するデータ量に応じて、第２のマシンのメモリバッファも使用することを特徴とする請求項１に記載の回路。
【請求項１８】
同様に、前記第２のマシンが、処理するデータの量に応じて、隣接するポートを使用する第３のマイクロプログラム制御されたマシンのメモリバッファを使用することを特徴とする請求項１７に記載の回路。
【請求項１９】
前記マイクロプログラム制御されたマシン（２１）が処理サイクルをクロッキングするためのクロック（７０）を有する回路であって、前記クロック（７０）が外部周辺装置から動作周波数を提供できることを特徴とする請求項１に記載の回路。
【請求項２０】
前記マイクロプログラム制御されたマシン（２１）が処理サイクルをクロッキングするためのクロック（７０）を有する回路であって、前記クロック（７０）が前記プロセッサ（２０）の動作周波数を乗算又は除算することで得られる動作周波数を提供する請求項１に記載の回路。
【請求項２１】
前記マイクロプログラムを形成する前記命令により、
−  外部周辺装置によって提供される動作周波数、又は
−  前記プロセッサ（２０）の前記動作周波数を調整可能な係数で乗算ないし除算することによって得られる動作周波数を選択できることを特徴とする請求項３に記載の回路。
【請求項２２】
前記通信プロトコルの制御データを認識するためのモジュール（４４）を有し、認識される制御データが前記マイクロプログラム制御されたマシン（２１）によって提供されることを特徴とする請求項１に記載の回路。
【請求項２３】
前記マイクロプログラム制御されたマシン（２１）がループカウントモジュール（７５）を有することを特徴とする請求項１に記載の回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも１つのプロセッサを有する回路に関する。この回路は、通信プロトコルに従いデータを入力及び出力するためにプロセッサに出入りするデータを処理するマイクロプログラム制御されたマシンを有する。この回路は、マイクロプロセッサ回路又はマルチプロセッサ回路を使用するあらゆる分野で使用できる。
【背景技術】
【０００２】
監視テレビ等の専門分野だけでなく、携帯電話等の民生用分野でも、１つ又は複数のマイクロプロセッサを有する集積回路を採用している。しばしば、こうした回路は、非常に特定のものではあるものの、数多くの入出力インターフェイスを使用できるアプリケーションを対象としている。
【０００３】
一方で、こうした回路はしばしば、その１つ又は複数のプロセッサのものでない様々なフォーマットのデータを送受信しなければならない。各プロセッサが個々に入出力を管理する場合、その計算能力を全て消費してしまう。アプリケーションソフトウェアの処理を行うだけの時間はもはや残されていない。実際、各クロックサイクルで出力の論理状態を制御する必要があるため、入出力を管理するために必要な計算能力さえプロセッサにはない。このため、プロセッサを解放できるよう入出力を管理するための専用の周辺装置を回路が有することが望ましいように思える。
【０００４】
その一方で、こうした回路は、設計段階で特定用途でなく汎用的な使用が定義されている場合、使用していく中で、回路の製造時点では判明していなかった入出力プロトコルに従いデータを送受信する必要が生じるのは疑う余地がない。このため、入出力を管理するための周辺装置の提供が課題である。
【０００５】
汎用的なマイクロプロセッサ又はマルチプロセッサ回路で現在実現されている解決策では、様々な入出力プロトコルを対象とした入出力を管理するための専用の周辺装置を数多く実現する必要がある。このため、使用される可能性がある入出力インターフェイスの範囲に対して、質的及び量的に、できる限り広範な対象範囲を提供する。従来技術に係るこのような回路の一例を、２００７年２月のＩＳＳＣＣ会議に第１５．２号として提出された、Ｂ．Ｋｈａｉｌａｎｙらによる記事に見つけることができる。この記事のタイトルは「Ａ  Ｐｒｏｇｒａｍｍａｂｌｅ  ５１２ＧＯＰＳ  Ｓｔｒｅａｍ  Ｐｒｏｃｅｓｓｏｒ  ｆｏｒ  Ｓｉｇｎａｌ，Ｉｍａｇｅ  ａｎｄ  Ｖｉｄｅｏ  Ｐｒｏｃｅｓｓｉｎｇ」である。この回路は、恒久的に接続された入出力を管理するための多くの周辺装置を有する。したがって、この回路は、製造時に専用の周辺装置が接続されていない新しいインターフェイスを使用するアプリケーションには恒久的に適さない。更に、そのタイプのインターフェイスに専用の周辺装置がある場合と比べ、アプリケーションがある一定のタイプのインターフェイスを使用するのに何倍もの時間が必要となり得る。したがって、この回路はこのようなアプリケーションには恒久的に適さない。更に、こうした回路の入出力を管理するためのほとんどの周辺装置が実際には未使用のままであることを忘れてはならない。これは、ある一定のアプリケーションが、回路の製造時点で判明している全てのタイプのインターフェイスの中で、ごく限られた数のインターフェイスしか使用しないためである。このため、回路の表面の大部分が未使用の周辺装置によって占有され、やたらに回路が大きくかさばることが多い。
【０００６】
こうした問題点を補おうと、現在のプロセッサは「ＧＰＩＯ」（「Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｉｎｐｕｔｓ／Ｏｕｔｐｕｔｓ（汎用入出力）」の頭字語）という標準的なレジスタを使用している。入力であるのか、出力であるのか、それともハイインピーダンスであるのかという使用方法が、プロセッサによってロードできるレジスタにより制御される。出力の値は、同様にプロセッサによってロードされるもう１つ別のレジスタによってプログラムされる。入力の値はプロセッサによって読み取ることができる。したがって、ＧＰＩＯレジスタによる入出力がプロセッサ自体により管理される。このため、この解決策は、プロセッサがアプリケーションソフトウェアのタスクのための時間を十分に保持しながら、制御できるだけの遅いインターフェイスにしか適用できない。
【０００７】
もう１つ現在の解決策が米国特許第６，９３１，４６６号明細書に開示されている。一部のピンはＧＰＩＯとしてプログラム可能であり、処理プロセッサによって直接制御できるため、プロトコルの下位部分は処理プロセッサによって管理される。プロトコルの中間部分は専用のＤＭＡ（「Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ（ダイレクトメモリアクセス）」）マシンによって管理され、このＤＭＡマシンは入出力周辺装置の外に置かれる。プロトコルの下位部分は、「Ｐｉｎ  Ｓｔａｔｅ  Ｍａｃｈｉｎｅ」タイプのステートマシンによって管理され、ステートマシン自体はステートレジスタとＰＬＡ（「Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ（プログラマブル論理アレイ）」）とから構成される。この解決策の大きな問題は、マスキングによってＰＬＡがプログラムされることである。したがって、全体ではなく、たった１つの製造マスクを変更するだけでプロトコルを変更できる場合であっても、回路を一度製造してしまうと、もはやプログラムを変更できなくなることに注意すべきである。このため、この解決策は柔軟性を欠き、かなり単純なプロトコルだけにしか対処できない。いずれにせよ、処理プロセッサを完全に解放することはできない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の重要な目的は、入出力周辺装置を収容する回路が全ての新しい入出力プロトコルに適合できるような、プログラム可能な入出力周辺装置を提供することである。したがって、回路の１つ又は複数のプロセッサは、入出力の管理から恒久的に解放され、独自のアプリケーションソフトウェアのタスクに専念できる。そのために、入出力はこの１つ又は複数のプロセッサのプログラムによってメモリとみなされる。プロセッサは目的の周辺装置に対応するメモリ領域に出力データを書き込み、一定の量のデータが使用可能になったことをメッセージによりその周辺装置に通知する。本発明に係る周辺装置は、専用にプログラムされているプロトコルに従い、このメモリ領域から回路のピンにデータを伝送する。逆に、本発明に係る周辺装置は、周辺装置がプログラムされているプロトコルに従い、ピンに受信されたデータをサンプリングする。メモリ領域にデータを配置し、一定の量のデータが到着したことをメッセージ又は割り込みによってプロセッサに通知する。プロセッサはまず最初に、随時、対応するメモリ領域からこれらのデータを読み取る。そのために、本発明は、少なくとも１つのプロセッサと、通信プロトコルに従いピンを経由してデータを回路に入力又は回路から出力するためにプロセッサを出入りするデータを処理するマイクロプログラム制御されたマシンとを有する回路に関する。各ピンでは、１ビットの情報の入力又は出力が可能である。マイクロプログラム制御されたマシンは、各クロックサイクルで、１つの命令内で、どのピンが入力モードで、どのピンが出力モードであるのか、各ピンにどの値を割り当てるのか、プロセッサにどの値を伝送するのか、或いはデータの送信又は受信を続ける前にどの信号を待機するのかを判別する。
【課題を解決するための手段】
【０００９】
一好適な実施形態では、マイクロプログラム制御されたマシンからの命令は、どのピンが入力モードでどのピンが出力モードかを判別できるフィールド、出力モードの各ピンにどの値を割り当てるのか判別できる少なくとも１つのフィールド、プロセッサにどの値を伝送するのか判別できるフィールド、或いはデータの送信又は受信を続ける前にどの信号を待機するのか判別できるフィールドを有してもよい。したがって、各ピンの入出力モード、各ピンに割り当てる値、プロセッサに伝送する値、及び待ち受ける信号を１つのクロックサイクルで判別できる。
【００１０】
一好適な実施形態では、マイクロプログラム制御されたマシンは命令レジスタとマイクロプログラムを形成する命令を含むマイクロプログラムメモリとを有してよく、ここで、レジスタにはマイクロプログラムからの命令をロードでき、更に命令により、通信プロトコルに従いデータを回路に入力又は回路から出力するためにプロセッサを出入りするデータを処理することができる。この命令は、回路がいかなる通信プロトコルにも適合できるように、マイクロプグラムメモリで修正できることが好ましい。
【００１１】
一例として、各命令は、マイクロプログラムメモリで次に実行される命令のアドレスを推測できるフィールドを少なくとも１つ有してもよい。
【００１２】
一実施形態では、この回路はマイクロプログラム制御されたマシンとプロセッサで使用される通信ネットワークとの間にネットワークインターフェイスモジュールを有してもよい。プロセッサとマイクロプログラム制御されたマシンは、メモリとの間でデータを書き込み、その後読み取ることで、データを交換できる。ここで、メモリにはデータが一時的にのみ格納される。
【００１３】
したがって、一例として、隣接するピンの所与の集まりは、通信プロトコルに従い、プロセッサに送られるデータを回路に入力するため、又はプロセッサから送られるデータを回路から出力するために、マイクロプログラム制御されたマシンが使用できる入出力ポートを形成してよい。
【００１４】
一実施形態では、各ピンを増幅器に接続して、ピンで信号を送受信することができる。したがって、回路はメモリと増幅器との間にピンインターフェイスモジュールを有してもよく、マイクロプログラムを形成する命令がピンインターフェイスモジュールを経由したメモリと増幅器との間のデータの転送を制御する。
【００１５】
一好適な実施形態では、回路はメモリのフォーマットのワードを通信プロトコルに従い回路との間でデータを入力又は出力するために使用可能なピンの数に適したフォーマットのワードに変換できるモジュールを有してよい。３２ビットのパラレルデータを１６、８、４、又は２ビットのパラレルデータに、その逆に１６、８、４、又は２ビットのパラレルデータを３２ビットのパラレルデータに変換できる。３２ビットのパラレルデータをシリアルデータに、その逆にシリアルデータを３２ビットのパラレルデータに変換できる。
【００１６】
有利には、この回路は、通信プロトコルに従い回路にデータを入力又は回路からデータを出力するためにプロセッサに出入りするデータを処理する少なくとも２つのマイクロプログラム制御されたマシンを有してよい。隣接するピンの２つの集まりをそれぞれ２つのマシンで使用できるため、この回路は、第１のマシンが独自のピンの集まりに加え、第２のマシンの隣接するピンの集まりの中のピンを使用できるようにするためのシフトモジュールを有してよく、ここで、マイクロプログラムを形成する命令により、シフトモジュールを制御できる。又、この回路は、第２のマシンが、第３のマイクロプログラム制御されたマシンの隣接するピンの集まりの中のピンを使用できるようにするためのシフトモジュールを有してもよい。メモリ内の２つの領域は隣接するポートを使用する２つのマシンでそれぞれ使用でき、この２つの領域は複数のメモリバッファに分割されるため、第１のマシンは、独自のメモリバッファに加え、処理するデータ量に応じて、第２のマシンのメモリバッファも使用できる。同様に、第２のマシンは、処理するデータの量に応じて、隣接するポートを使用する第３のマイクロプログラム制御されたマシンのメモリバッファを使用できる。
【００１７】
マイクロプログラム制御されたマシンは処理サイクルをクロッキングするためのクロックを有するため、このクロックは外部周辺装置から動作周波数を提供できる。同様に、クロックは、プロセッサの動作周波数を乗算又は除算することで得られる動作周波数を提供できる。マイクロプログラムを形成する命令により、外部周辺装置によって提供される動作周波数、又はプロセッサの動作周波数を調整可能な係数で乗算ないし除算することによって得られる動作周波数のいずれかを選択できる。
【００１８】
回路は通信プロトコルの制御データを認識するためのモジュールを有してもよく、この場合、認識される制御データはマイクロプログラム制御されたマシンによって提供される。
【００１９】
マイクロプログラム制御されたマシンはループカウントモジュールを有してもよい。
【００２０】
本発明は更に、メモリの使用及び回路のピンリソースを最適化できるという主要な利点を有する。これは、本発明に係る周辺装置が相互にメモリリソース及びピンリソースを共有できるためである。他の複数の回路と同時に通信するために複数の入出力周辺装置を必要とする場合、メモリ空間に対するニーズとピンの数に対するニーズが異なる可能性がある。したがって、これらリソースを最適な条件で周辺装置に分散させて、回路のピンの合計数及びメモリのサイズを制限できるようにすることが有益である。
【００２１】
本発明のその他の特徴及び利点は、添付の図面を参照しながら以下の説明を読むことにより、明らかになる。
【図面の簡単な説明】
【００２２】
【図１】従来技術に係るマルチプロセッサ回路を図示した総括ダイアグラムである。
【図２】本発明に係る回路の簡単なアーキテクチャ例を図示した総括ダイアグラムである。
【図３】本発明に係るピンインターフェイスモジュールの実現例を図示した総括ダイアグラムである。
【図４】同一回路上で本発明に係る２つの入出力周辺装置を相互接続する例を図示した総括ダイアグラムである。
【図５】本発明に係るメモリの実現例を図示した総括ダイアグラムである。
【図６】本発明に係るメモリの実現例を図示した総括ダイアグラムである。
【図７】本発明に係るコントローラの実現例を図示した総括ダイアグラムである。
【図８】本発明に係るメモリインターフェイスモジュールの実現を可能にするアーキテクチャ例を図示した総括ダイアグラムである。
【発明を実施するための形態】
【００２３】
図１は総括ダイアグラムを使用して、従来技術によるマルチプロセッサ回路を図示したものである。これは、上記に引用したＩＳＳＣ２００７会議の論文第１５．２号に記載されている回路である。図１の回路は、特に、３つのプロセッサ１、２、１５とデータバス３を有する。同様に、入出力を管理するための接続された１１の周辺装置、即ち周辺装置４、５、６、７、８、９、１０、１１、１２、１３、１４を有する。周辺装置４は２つの「ＤＤＲ  ＳＤＲＡＭ」インターフェイスを同時に管理できる。周辺装置５は「イーサネット」インターフェイスを管理できる。周辺装置６は「ＰＣＩ」インターフェイスを管理できる。周辺装置７は「Ｆｌａｓｈ／ＰＩＯ」インターフェイスを管理できる。周辺装置８は「Ｖｉｄｅｏ」インターフェイスを管理できる。周辺装置９は３つの「Ｉ２Ｓ」インターフェイスを同時に管理できる。周辺装置１０は４つの「Ｉ２Ｃ」インターフェイスを同時に管理できる。周辺装置１１は２つの「ＵＡＲＴ」インターフェイスを同時に管理できる。周辺装置１２は４つの「ＳＰＩ」インターフェイスを同時に管理できる。周辺装置１３は「ＧＰＩＯ」インターフェイスを管理できる。周辺装置１４は４つの「Ｔｉｍｅｒ」インターフェイスを同時に管理できる。図１の回路は、使用する可能性があるインターフェイスの範囲に対してできる限り広範な対象範囲を提供するために、入出力を管理するための専用の周辺装置を数多く実現する、従来技術に係る回路の問題点を示す適例である。これは、周辺装置４〜１４が恒久的に接続されているため、周辺装置が接続されていない新しいインターフェイスを使用するアプリケーションに図１の回路が恒久的に適さないためである。例えば、図１の回路はＵＳＢインターフェイスを使用するアプリケーションには適さない。同様に、図１の回路は、３つの「ＤＤＲ  ＳＤＲＡＭ」インターフェイスを同時に使用する必要があるアプリケーションには適さない。最後に、図１の回路は４〜１４の１１の周辺装置のために大きくかさばる割に、これら周辺装置のほとんどは回路の大多数のアプリケーションで未使用のままである。これは、アプリケーションが同時に２４の入出力インターフェイスを使用する可能性が極めて低いためである。
【００２４】
図２は総括ダイアグラムを使用して、本発明に係る回路の簡単なアーキテクチャ例を図示したものである。この例では、単一のプロセッサ２０がデータの入出力に単一のインターフェイスを使用する。本発明に係るマイクロプグラム制御されたマシン２１により、この入出力インターフェイスを管理できる。例えば、マイクロプログラム制御されたマシン２１は、マイクロプログラムメモリ２３とマイクロプログラム制御されたポートコントローラ２４とを有してもよい。入出力インターフェイスに対応する通信プロトコルの管理を実現するのは、メモリ２３に含まれるマイクロプログラムである。したがって、本発明の唯一の制約は質的なもののように思われる。これは、使用されるマイクロプログラム制御可能なマシンの数に由来する。これは、本発明を実現する回路が、マシン２１等のマイクロプログラム制御されたマシンを有するよりも多くの入出力インターフェイスを同時に使用できないためである。実際には、この制約は、マシン２１等のマイクロプログラム制御可能なマシンを挿入するために回路上で使用できるスペースに由来するが、ピン２５を挿入するために使用できるスペースにも由来する。ピン２５は、データを配信する信号の物理的な送受信を可能にする。各ピンは一度に１ビットの情報を伝達できる。対照的に、本発明には数量面での制約はない。いかなるタイプのインターフェイスであっても、たとえ新しいものであっても、及び／又はカードの製造時点で判明していないものであっても、マシン２１をマイクロプログラム制御することにより実現できる。
【００２５】
有利には、本発明では一例として、プロセッサ２０とマシン２１との間でのやり取りを提供するために、メモリ２６の使用を提案する。出力側では、プロセッサ２０は、例えば、データバス又はデータ分散ネットワーク（「Ｎｅｔｗｏｒｋ  ｏｎ  Ｃｈｉｐ」つまりＮｏＣ）と、このバス又はこのＮｏＣとのインターフェイス２８とにより、メモリ２６に対してデータを一時的に書き込むことができる。マシン２１はメモリ２６から回路の出力ピン２５にデータを転送する。入力側では、マシン２１が回路の入力ピン２５で受信したデータをメモリ２６に一時的に転送し、プロセッサ２０がデータバス２７とインターフェイス２８によってメモリ２６からデータを読み取る。したがって、純粋に論理的な観点から、プロセッサ２０は入出力をメモリ空間とみなし、この空間との間で固有のフォーマット及び固有のクロックレートにて読み書きを行う。並行して、マシン２１はこのメモリ空間との間でデータを転送する。但し、マシン２１だけがデータのフォーマット変換タスクを担当する。入力側では、マシン２１は制御データを取り出すことで、例えば有用なデータだけをメモリ２６に転送し、プロセッサ２０の効率が低下しないようにする。このため、プロセッサ２０は制御データをどのように処理するかは認識していない。出力側では、メモリ２６から転送される有用なデータに、例えば制御データが追加される。マシン２１によって行われるこのようなメモリ２６での読み書き操作は全て、プロセッサ２０の動作クロックレートとは独立して、入出力インターフェイスのクロックレートで行われる。
【００２６】
図２の簡略化された実施形態では、プロセッサ２０はマシン２１だけと通信する。但し、本発明は、プロセッサ２０が、例えばバス又はＮｏＣ  ２７を経由して、同時に他のプロセッサ又は他のマイクロプログラム制御されたマシンと通信している場合でも機能できる。同様に、マシン２１は、バス又はＮｏＣ  ２７により複数のプロセッサの間で時間と共に共有できる。図２による機能の面では、プロセッサ２０とマシン２１との間でデータの交換を可能にするメモリ２６はデュアルポートメモリであり、プロセッサ２０によって制御されるポート２９とマシン２１によって制御されるポート３０とを有する。有利には、メモリ２６は物理的にデュアルポートメモリであってもよい。但し、メモリ２６は同様にシングルポートメモリであってもよく、この場合プロセッサ２０とマシン２１との間でポートが時間と共に共有される。又、メモリ２６はピンポンモードで動作する２つのメモリから構成してもよい。出力モード（又は入力モード）では、プロセッサ２０が第１のメモリに書き込む（又は第１のメモリから読み取る）一方で、マシン２１が第２のメモリから読み取る（又は第２のメモリに書き込む）。次に、プロセッサ２０が第２のメモリに書き込む（又は第２のメモリから読み取る）一方で、マシン２１が第１のメモリから読み取る（又は第１のメモリに書き込む）。但し、後者の可能性においてメモリ２６で占有される表面積がたとえ抑えられても、マシン２１とプロセッサ２０との間のインターフェイスが複雑になる。これは、入出力インターフェイスに対応する入出力のビットレートに対応する周波数のクロックによってマシン２１が動作するためである。このクロックレートは、プロセッサ２０のものとは独立している。プロセッサ２０のクロックドメインとマシン２１のクロックドメインとの間のインターフェイスは、２つの独立したポートを使用してメモリ２６にアクセスすることにより、大幅に簡易化される。
【００２７】
図２に図示するように、インターフェイス２８はポート２９を制御する。ポート３０からのデータ信号は、例えばピンインターフェイスモジュール３１にリンクされ得る。モジュール３１により、ピン２５にデータを出力することも、又は逆にピン２５にあるデータをメモリ２６に転送することができる。ポート３０は本発明に係るマイクロプグラム制御されたコントローラ２４によって制御される。コントローラ２４の役割は、入出力インターフェイスに対応する通信プロトコルに従ってデータ交換が確実に行われるようにすることである。マシン２１によって実現される通信プロトコルを決定するのは、マイクロプログラムメモリ２３に含まれるコントローラ２４のマイクロプログラムである。システムの初期設定時に、このマイクロプログラムをインターフェイス２８からロードできる。更に、マイクロプログラム制御されたコントローラ２４は、ピンインターフェイスモジュール３１のコンフィギュレーション及び動作を制御する。インターフェイスに対応する通信プロトコルが複雑な場合、マシン２１は、２つの方向でのデータの伝送、同期化、更に場合によってはエラー訂正等、プロトコルの下位のレイヤーだけを管理する。セッションのセットアップやデータの解釈といった上位のレイヤーは、プロセッサ２０によって引き受けられる。
【００２８】
図２に示す回路は、本発明に係る入出力インターフェイスを管理するためのプロセッサ２０及びバス２７を除き、入出力周辺装置である。これ以降、この装備一式を単に「入出力周辺装置」と呼ぶ。
【００２９】
更に、全ての入出力周辺装置が同数のピンを必要とするわけではない。シリアルインターフェイスによって、３つのピンだけしか使用しないものもあれば、６０前後のピンを必要とするものもある。図２に図示するように、本発明は、最大数のピンを有するように各ポートを設計するのではなく、物理的に隣接するポートの全てのピン又は一部のピンを使用するように入出力ポートを構成できることを提案する。したがって、図２に示す本発明に係る入出力周辺装置は、ポートＮを形成するピンを使用する場合であっても、ポートＮ−１又はポートＮ＋１からのピンも使用できる。このポートＮ−１及びＮ＋１は本発明に係る他の入出力周辺装置によって使用されるものである。但し、このメカニズムについて、下記で詳述する。
【００３０】
図３は、メモリ２６とピン２５との間のデータ転送がポート３０によって可能にされるピンインターフェイスモジュール３１の実現例を図示したものである。ピン２５は、出力レジスタ４０及び入力レジスタ４１によって制御される。一例として、入出力周辺装置のクロックエッジで、３２ビットを有する出力レジスタ４０に出力データが記録される。データのある部分はデータメモリ２６からもたらされ、別の部分はコントローラ２４からもたらされ得る。後者はバイトごとにプログラムし得る。データがコントローラ２４から着信した場合は、バイトごとにロードされる。メモリ２６から着信した場合は、複数のフォーマットが可能である。入出力周辺装置によって実現される通信プロトコルに応じて、交換されるワード内のビット数は非常にまちまちであり得る。プロセッサ２０からのワードのフォーマットと異なる可能性がかなり高い。但し、最も一般的なフォーマットは、シリアル入出力では１ビット、パラレル入出力では８ビット、１６ビット、３２ビット、又は６４ビットである。本例では、バス２７は３２ビットワードを使用する。このため、メモリ２６はインターフェイス２８で直接送受信できる３２ビットワードを格納する。したがって、メモリ２６とレジスタ４０との間でフォーマット変換を行うことが望ましい。本実現例では、出力データのフォーマットが３２ビットよりも小さい場合、単一のクロックサイクルでレジスタ４０をロードできる。出力データフォーマットが３２ビットと６４ビットとの間である場合、レジスタ４０に等しいレジスタと隣接する周辺装置のピンが使用される。したがって、メモリ２６からのデータを転送するのに、２つのクロックサイクルが必要となる。有利には、出力データのフォーマットを変換するためのモジュール４２は複数のマルチプレクサから構成できる。第１の３２ビット→１ビットのマルチプレクサはシリアル出力に使用できる。前記マルチプレクサにより、メモリ２６からの単一ワードの全てのビットを同じピンに連続して振り向けることができる。フォーマット変換モジュール４２をそれほど複雑にしないよう、入出力ポートによって制御されるピンの１つがこのようなシリアルデータを受信できることに留意しなければならない。第２の３２ビット→８ビットのマルチプレクサは８ビットのパラレル出力に使用できる。前述したように、各ポートの先頭の８つのピンだけが入出力をバイト単位で受信できる。第３の３２ビット→１６ビットのマルチプレクサ及び第４の３２ビット→３２ビットのマルチプレクサは、全く同じように、それぞれ１６ビットと３２ビットの出力に使用できる。後述されるように、３２ビットよりも大きいフォーマットに関しては、隣接する入出力ポートのピンが使用される。当然ながら、このようなフォーマットでは、メモリ２６での各読み書き操作に２つのクロックサイクルを必要とする。これは、メモリ２６からの２つの連続したワードの場合も同様である。提供されている２つのフォーマットの中間となるフォーマットは、すぐ上のフォーマットを使用する。一例として、１０ビットデータの場合、１６ビットフォーマットが使用され、６つのピンが未使用のままである。下記で詳述されるように、使用されるフォーマットは、コントローラ２４にロードされるコンフィギュレーションレジスタによって決定される。
【００３１】
入力側でも、入力レジスタ４１及び入力データのフォーマットを変換するためのモジュール４３により、全く同じようにデータを処理できる。コントローラ２４にロードされるコンフィギュレーションレジスタの状態に応じて、モジュール４３は、一例として、シリアル入力、２ビット入力、４ビット入力、バイト入力、又は１６ビットワード入力を３２ビットワードに変換でき得るか、或いは３２ビットワード入力でさえ直接処理でき得る。したがって、３２ビットワードに変換されたデータは、３２ビットワードに構成されるメモリ２６に格納される。選択したフォーマットが３２ビットよりも大きい場合は、２サイクルでロードが行われる。任意選択的に、モジュール４３は、伝送エラーを訂正する目的で、プログラム可能なエラー訂正ユニットを包含してもよい。これは、ＵＳＢ規格等の一定数の通信プロトコルによってサポートされる。
【００３２】
ピン２５の間の各ピンは、例えば増幅器又は「ドライバ」を接続してもよい。このドライバは双方向である。一部のマイクロプロセッサのＧＰＩＯの場合と同様、後述するように、このドライバはコントローラ２４によるレジスタを経由する制御信号によって制御される。出力に関しては、レジスタ４０は、ピンごとに、そのピンに出力される値０又は１を示す１ビットを含む。コントローラ２４にあるもう１つのレジスタが、出力ドライバがハイインピーダンスであるかどうかを示す。ドライバの制御を容易にするために、ここでは、８ビットのグループで出力を制御することが提案される。ある一定の数の８ビットのグループは入力側で構成され、それ以外は出力側で構成される。但し、任意選択的に、多少の柔軟性を保持するために、グループの１つを入力側又は出力側でビットごとに独立して構成できる。この機能を実現するために、ハイインピーダンス出力を示すレジスタは２つの部分で構成される。１つの部分には、バイトごとに１ビットのハイインピーダンスビットが含まれる。もう１つの部分には、８ビットについてビットごとに１ビットのハイインピーダンスビットが含まれる。コンフィギュレーションレジスタでは、どのバイトがビットごとに制御されるのかを示す。入力側にあるデータは、第３のレジスタであるレジスタ４１によってサンプリングされる。或いは、適切な多重化により、先頭レジスタのビットをこの目的のために再利用できる。
【００３３】
一部の通信規格では、ある制御データ構造又は「パターン」を認識することが必要な場合がある。これらは、例えば、データブロックの先頭又は終わりを示したり、及び／又は送信機と受信機を同期化したりするための特定のデータブロックである。有利には、パターン検出モジュール４４は、フォーマット変換の出力とコントローラ２４によって提供される１つ又は複数のパターンとを比較することができ、更に値が比較に考慮できないビット又はバイトを示すことができる。したがって、この比較結果がコントローラ２４に戻される。
【００３４】
最後に、シフトモジュール４５及び４６によって、有利に、図２に示す本発明に係る入出力周辺装置を、隣接する入出力周辺装置と相互接続し得る。前述したように、これによって、隣接するポートＮ＋１のピンの全て又は一部を使用するようにポートＮを構成できる。このメカニズムの詳細を図４に図示する。
【００３５】
図４は、本発明に係る２つの入出力周辺装置を、モジュール４５及び４６等のシフトモジュールによって同一の回路上で相互接続する例を図示したものである。この理由は、全ての入出力周辺装置が同じ数のピンを必要とするわけではないからである。シリアルインターフェイスによっては、入力データ用に１つ、出力データ用に１つ、クロック用に１つ、合わせて３つのピンしか使用しない。その一方で、およそ６０ものピンを必要とするインターフェイスもあり得る。各ポートは、想定されるインターフェイスに対して最大数のピンを有するように設計できる。但し、これによって回路の周辺部におけるピンの数が非常に多くなる割に、その多くが使用されない。１つのピンがシリコンのかなり大きな表面積を占有する。このため、ピンの合計数を最適化するのが望ましい。本発明で提案する解決策は、入出力ポートＮがそのポート固有のピンの全て又は一部に加えて、そのすぐ右側のポートＮ＋１或いはそのすぐ左側のポートＮ−１のピンの全て又は一部を使用するよう構成できることである。
【００３６】
図４の例では、例えば、ポートＮがそのすぐ右側のポートＮ＋１からのピンを使用するよう構成し得る。垂直の直線Ｃが図４を２等分する。直線Ｃの左側では、図３と同じ要素、即ちピン２５によって形成されるポートＮを制御するピンインターフェイスモジュール３１の実現例が示されている。直線Ｃの右側には、もう１つのピンインターフェイスモジュールが図示されている。これは、ポートＮを形成するピン２５の右側にピン５７が物理的に配置されている、もう１つの入出力周辺装置のものである。ピン５７はポートＮ＋１を形成する。全く同じように、このような他のピンインターフェイスモジュールも、出力レジスタ５０と入力レジスタ５１、出力データのフォーマットを変換するためのモジュール５２、入力データのフォーマットを変換するためのモジュール５３、パターン検出モジュール５４、及びシフトモジュール５５と５６とを有してもよい。
【００３７】
一例として、シフトモジュール５５は入力側で６４ビットバスを受信する。この入力バスは、下位側に対して独自のポートＮ＋１からのモジュール５２のフォーマット変換から送られる３２ビットのデータバスと、上位側に対して左側のポートＮから送られる３２ビットのデータバスとの連結によって形成される。モジュール５５は、例えば０、８、１６、２４、３２、４０、又は５６ビット等、プログラム可能なビット数だけシフトされた出力を６４ビットの出力バスに提供する。この出力バスは、３２の最上位ビットを対象とした固有のポートＮ＋１のピン５７を制御するためのレジスタ５０に接続されると共に、３２の最下位ビットを対象としたその右側に配置されたポートＮ＋２のピンを制御するためのレジスタに接続される。ポートＮ＋２は図４に図示しない。これはポートＮ及びＮ＋１と同じアーキテクチャを有する。データフォーマットが３２ビットよりも大きい場合は、２回に分けてデータ転送が行われる。最下位ビットを転送する場合は、最上位ビットを転送するときよりも更に３２ビットシフトするよう、シフトモジュール５５がプログラムされる。シフトするビット数は、コントローラ２４にロードされるコンフィギュレーションレジスタによってプログラムされる。本実施形態では、シフトモジュール５５を単純にするために、０、８、１６、３２、４８、又は５６ビットのシフトに限定するよう提案される。これは、これによって、複雑さが、６４の６４→１マルチプレクサではなく、６４の８→１マルチプレクサに、より正確にはそれぞれが６４の８→１マルチプレクサから構成される２つのシフトモジュール５５と５６に限定されるためである。生じる制約条件としては、第１に、入力の数と出力の数が８の倍数でなければならないこと、第２に、出力に使用されるフォーマット変換モジュール５２の３２→１マルチプレクサと入力に使用されるフォーマット変換モジュール５３の１→３２デマルチプレクサが先頭バイトの同一ビットに接続していないことである。一例として、先頭ビットを出力に使用し、最終ビットを入力に使用できる。したがって、シリアルインターフェイスは、ハイインピーダンス状態をビットごとにプログラムできる、レジスタによって制御される８つのピンだけを固定化でき、先頭のビットはシリアル出力、最後のビットはシリアル入力に使用できる。それ以外のビットは何らかの確認信号に使用できる。
【００３８】
当然ながら、数多くの入出力インターフェイスを同時に使用できるよう、本発明に係る２つの相互接続された周辺装置よりもさらに多くの周辺装置を１つの回路が有してもよい。
【００３９】
図５及び図６は、メモリ２６の有利な実現例を図示したものである。このようにする理由は、全ての入出力ポートが同じメモリ容量を必要としないためである。通常、シリアルポートは３２ビットポートに比べビットレートが３２分の１であるため、必要とされるメモリ容量も３２分の１で済む。ピンの共有化と同じように、メモリ内でのリソースの使用、ひいてはシリコンの表面積を最適化するために、入出力ポート間でメモリ２６を共有するのが有益であるかもしれない。１つの解決策は、有利には、例えばポートＮのメモリ２６を４つのバッファ６０、６１、６２、及び６３に分割する等、各ポートのメモリを複数のバッファに分割することであってもよい。こうすることで、１〜７の可変個のバッファをポートＮに割り当てることができ、ポートＮはそのすぐ右側のポートＮ＋１からのバッファの全て又は一部を使用できる。同様に、ポートＮ−１はそのすぐ右側のポートＮからのバッファの全て又は一部を使用できる。図５は、トライステートバスを使用して、メモリ２６を４つのバッファ６０、６１、６２、６３に分割した例を図示したものである。図６も、メモリ２６を４つのバッファ６０、６１、６２、６３に分割したもう１つの例であるが、今回は出力の多重化を使用している。
【００４０】
図７に、コントローラ２４の実現例を図示する。これは、ある意味では、入出力周辺装置の心臓部である。各クロックサイクルで、コントローラ２４は１つの命令内でピン２５の中でどのピンが入力モードで、どのピンが出力モードであるのか判別しなければならない。これは、ドライバがハイインピーダンス状態であるかどうか表することによって行われる。又、各クロックサイクルで、コントローラ２４は１つの命令内でピン２５の中で出力モードのどのピンにどの値を割り当てる必要があるのかも判別しなければならない。これは、データメモリ２６、即ちプロセッサ２０からの値であってもよい。同様に、例えばデータに対する確認信号等、コントローラ２４自体によって決定される値であってもよい。又、各クロックサイクルでは、コントローラ２４は、１つの命令において、入力モード時にピン２５でサンプリングされる値のうちどれをメモリ２６経由でプロセッサ２０に伝送する必要があるのかも判別しなければならない。各クロックサイクルで、コントローラ２４は最後に、１つの命令内で、ピン２５を経由してデータの送信又は受信を続ける前にどの信号を待機するのかを判別しなければならない。
【００４１】
有利に、バス２７の周波数で動作する必要があるインターフェイス２８を除いて、入出力周辺装置の全ての要素で単一のクロック７０を使用できる。コントローラ２４のプログラムに応じて、クロック７０によって提供されるクロッキングは、考えられる２つの起源を有してもよい。その起源は外部的なものでもよく、この場合ピン７１から直接クロッキングをもたらすことができる。又は、その起源は内部的なものでもよく、この場合入力７２を経由してクロック７０がシステムクロックを受信することができる。後者のケースでは、分周器７３により、システムクロックよりも遅いインターフェイスに対処でき得る。或いは、逓倍器７３の値は有利にコントローラ２４によってプログラムできる。但し、システムクロックよりも高速なインターフェイスに対処するために、分周器７３は、例えば「位相ロックループ」タイプのメカニズムを使用する周波数逓倍器に置き換えることもできる。クロック７０は出力７６のクロッキングを提供する。或いは、クロック７０が動作するモード、即ち内部クロッキング又は外部クロッキングは、同様に、有利には、コンフィギュレーションレジスタのプログラミングにより、コントローラ２４によって選択できる。クロック７０が内部クロッキングモードで動作している場合、同様に出力ピン（図７に図示せず）にもクロッキングを適用できる。
【００４２】
コントローラ２４はマイクロプログラムメモリ２３からの命令を実行し、例えば命令レジスタ７４にロードできる。命令は複数の固有のフィールドから構成され、その中の１つのフィールドにより、次の命令のアドレスを決定できる。システムの初期設定時に、インターフェイス２８を介してマイクロプログラムメモリ２３にプログラムがロードされる。但し、同様に、有利には、例えば新しいインターフェイスを使用する外部周辺装置が接続された場合等、動作の途中でプログラムを再ロードするよう想定し得る。したがって、回路の使用中であっても、マシン２１によって実行されるマイクロプログラムを動的に修正できる。命令ワードの構造及び命令セットを正確に定義するための数多くの可能性が存在する。命令レジスタ７４は、命令ワードの構造例を示す。フィールドの長さは情報提供のためにのみ示す。図７の実施形態において、６ビットの「Ｔｅｓｔ」フィールドは、例えば、プログラムが引き続き次のアドレスに進むのか、それとも次のアドレスのその次のアドレスにジャンプするのか、それとも分岐アドレスを示す後述される「Ｂｒａｎｃｈ＠」フィールドに指定されているアドレスにジャンプするのかを示す。同様に、「Ｔｅｓｔ」フィールドは、ジャンプが必要となる条件を示す。例えば、これは無条件であっても、又は下記に説明するループカウンタがオーバーフローしたときであっても、インターフェイス２８からのメッセージを受信したときであっても、或いはモジュール４４によってパターンが検出されたときであってもよい。したがって、８ビットの「Ｂｒａｎｃｈ＠」フィールドは、分岐アドレスを示し、その８ビットにより最大２５６の命令をプログラムメモリ２３でアドレス指定できる。８ビットの「Ｚ  Ｂｙｔｅ／Ｂ」フィールドは、ハイインピーダンスバイトを示す。８ビットの「Ｚ  ｂｉｔ／ｂｉｔ」フィールドは、ビットごとに状態が管理されるバイトに対して、ハイインピーダンスビットを示す。モジュール７８により、「Ｚ  Ｂｙｔｅ／Ｂ」フィールド及び「Ｚ  ｂｉｔ／ｂｉｔ」フィールドを復号できる。８ビットの「Ｒｅｇ．Ａｄ．」フィールドは、ロードするレジスタを示すと共に、ロードする値が後述されるように「Ｄａｔａ」フィールドからのものであるのか、それともデータメモリ２６からのものであるのかを示す。値がメモリ２６からのものである場合、「Ｒｅｇ．Ａｄ．」フィールドはどのバイトからのものであるかも示す。これによって、一定の値又は構成可能な値をプロセッサ２０からロードできる。モジュール７９により、「Ｒｅｇ．Ａｄ．」フィールドを復号できる。したがって、８ビットの「Ｄａｔａ」フィールドは、「Ｒｅｇ．Ａｄ．」フィールドによって示されるレジスタにロードする値を示す。例えば、これはピン２５の中の出力ピンの値、又はモジュール４４で検出されるパターン、或いはループカウンタの初期値又はモジュロであってよい。２ビットの「Ｃｄｅ  Ｍｅｍ」フィールドは、データメモリ２６へのアクセスの必要性があるのかどうかを示すと共に、必要性がある場合は、それが読み取りアクセスなのか書き込みアクセスなのかを示す。したがって、本例では、各命令は合計４８ビットになる。
【００４３】
コントローラ２４は、アドレスレジスタ９３及び９４と、レジスタ９３及び９４でそれぞれ動作するインクリメンタ９５及び９６と、復号モジュール９７とによって、マイクロプログラムアドレスを処理できる。
【００４４】
一例として、命令セットにより、確認信号又は同期化コードの場合に、ドライバのハイインピーダンス状態、及びピン２５の中の出力ピンのうち８つの状態を直接制御できる。又、命令セットにより、ピン２５を共有するため、メモリバッファ６０、６１、６２、及び６３を共有するため、或いはクロック周波数７０を調整するために、コンフィギュレーションレジスタをロードできる。又、モジュール４４によって比較されるパターンのロード、データメモリ２６との間でのワードの読み取り又は書き込みの制御、受信したデータの確認のためにインターフェイス２８への同期化信号の送信、及び読み取り準備の整ったデータの通知も可能である。更に、モジュール７７によって、データメモリ２６とバス又はシステムＮｏＣに対するインターフェイス２８との間の交換を管理できる。更に、命令セットにより、様々なプログラムの分岐条件を管理できる。こうした操作のほとんどは、命令のフィールドと操作を関係付けることで、同時に行うことができ、データの伝送を遅らせないようにできる。或いは、判明している解決策としては入出力動作を実行するために複数のクロックサイクルが必要となるため、これは本発明の大きな利点である。
【００４５】
図７の実施形態では、一例として、制御装置２４は、２つのループカウンタの管理を可能とするモジュール７５を有する。コントローラ２４は、システムレジスタをカウンタにロードするのと同じように、このようなカウンタ及びそのモジュロの値を初期設定できる。このようなカウンタの値は各サイクルでインクリメントされ、０又は最大値になると信号が提供される。これらの信号及びパターン検出モジュール４４によって提供される信号により、次の命令のアドレスを決定できる。
【００４６】
前述したように、コントローラ２４は、同様に、レジスタ９０及び９１等、コンフィギュレーションレジスタを有する。モジュール９２により、コンフィギュレーションレジスタの内容を復号できる。
【００４７】
図８は、モジュール７７の実現を可能にするアーキテクチャ例を示す。インターフェイス２８は、データブロックの開始アドレスをＦＩＦＯ（先入れ先出し）構造体８０に書き込むことにより、伝送するデータブロックの到着の通知を提供する。インターフェイス２８は、命令セットによりコントローラ２４でテストできる信号も送信する。コントローラ２４は、データメモリ２６の２つのアドレス、即ち読み出し操作用のレジスタ８２のアドレス「Ｒ」と書き込み操作用のレジスタ８３のアドレス「Ｗ」を管理できる。コントローラ２４は、読み取りのため又は書き込みのためにメモリ２６にアクセスする場合、初期アドレス（例えば「０」）、又はＦＩＦＯ  ８０内で最初に使用可能なアドレス、或いは同じ方向（読み取り又は書き込み）の前回のアクセスに使用したアドレスの次のアドレスでこのアクセスを行うことができる。インクリメンタ８４及び８５はレジスタ８２及び８３で動作し、コントローラ２４にロードされたコンフィギュレーションレジスタのフィールドによりモジュロが制御される。一例として、メモリ２６へのデータブロックの書き込みが終了すると、コントローラ２４は、アドホックレジスタ８１にデータを書き込む前にロードしたメッセージの先頭アドレスと確認信号とをインターフェイス２８に送信できる。
【００４８】
前述した発明は、とりわけ、それを実現する回路が非常に多くの数の入出力プロトコルに適合できるという利点を提供する。更に、様々な外部周辺装置に接続するピンに対する箇所の選択において、例えば、内部周辺装置と処理プロセッサとの間の回路内部の通信に対する配線制約条件、又は更には回路とその外部周辺装置との間のプリント回路上の配線制約条件に応じて、高いレベルの柔軟性を提供できる。これは、本発明に係る内部周辺装置が全て同じであるために、いかなるプロトコルに対しても目的の箇所に配置されたピンを管理する周辺装置をプログラムできるためである。
【図１】
0005608934.tif 000002
【図２】
0005608934.tif 000003
【図３】
0005608934.tif 000004
【図４】
0005608934.tif 000005
【図５】
0005608934.tif 000006
【図６】
0005608934.tif 000007
【図７】
0005608934.tif 000008
【図８】
0005608934.tif 000009