(57)【特許請求の範囲】
【請求項１】
プログラムメモリー（８）にファイルされた命令を実行するための演算処理ユニット（１）を備え、
上記演算処理ユニット（１）が、プログラムメモリー（８）から命令を読み出すための命令読み出し手段（２）、上記命令を復号するための命令復号手段（３）、および、上記命令を実行するための命令実行手段（４−７）を含む演算処理システムであって、
上記命令実行手段（４−７）は、異なる命令を平行して実行するために、同時に操作可能な複数の実行ユニット（５・７）を含んでおり、
命令読み取り手段および命令復号手段（３）が、全実行ユニット（５・７）に共通して備えられている演算処理システムであって、
上記命令実行手段（４−７）の第１実行ユニット（５）が第１データバス（１０）と接続し、第２実行ユニット（７）が第２データバス（９）と接続しており、第１データバス（１０）の伝達速度が、第２データバス（９）の伝達速度よりも遅いことを特徴とする演算処理システム。
【請求項２】
上記各実行ユニット（５・７）に、それぞれの実行ユニット（５・７）によって実行される命令を実行するために必要な情報を保存するため一時保存手段（４・６）が関連付けされていることを特徴とする、請求項１に記載の演算処理システム。
【請求項３】
命令実行手段（４−７）の第１実行ユニット（５）は、上記演算処理システムの命令集合のあらゆる可能な命令を実行するように設計され、
上記命令実行手段（４−７）の第２実行ユニット（７）は、上記命令集合のいくつかの特殊命令のみを実行するように設計されていることを特徴とする、請求項１または２に記載の演算処理システム。
【請求項４】
上記第２実行ユニット（７）は、上記演算処理システムの命令集合の特殊命令のみを実行するように設計されていることを特徴とする、請求項３に記載の演算処理システム。
【請求項５】
上記第２実行ユニット（７）は、データブロックの移動命令のみを実行するように設計されていることを特徴とする、請求項３または４に記載の演算処理システム。
【請求項６】
上記第２実行ユニット（７）に関連付けされている一時保存手段（６）に保存された情報が、保存または呼び出されるデータブロックの保存アドレスまたは呼び出しアドレス、移動されるデータブロックのデータ要素量、データブロックが保存されるかまたは読まれる値であるオフセット値、および／または、実行される命令が保存または読み命令に関連するかどうかを特定する制御データを、含んでいることを特徴とする、請求項２または５に記載の演算処理システム。
【請求項７】
上記演算処理ユニット（１）は、上記第１実行ユニット（５）によって命令がしばらく実行されない場合、上記第１実行ユニット（５）に呼び出すパスが命令復号手段（３）を介して命令読み出し手段（２）によって一時的に非活動化されるように設計されていることを特徴とする、請求項３〜６のいずれか１項に記載の演算処理システム。
【請求項８】
上記演算処理システムは、遠距離通信プロトコルを処理するように意図され、
第１データバス（１０）は、上記遠距離通信プロトコルのヘッダデータを処理するように意図されている一方で、第２データバス（９）はペイロードデータを速く転送するように意図されていることを特徴とする、請求項１〜７のいずれか１項に記載の演算処理システム。
【請求項９】
上記第１データバス（１０）に、演算処理システムのデータメモリー（１３）が接続されており、
上記第２データバス（９）に、少なくとも１つの入力および／または出力ポート（１１）、および／または、少なくとも１つのレジスターまたはバッファ（１２）が接続されていることを特徴とする、請求項１〜８のいずれか１項に記載の演算処理システム。
【請求項１０】
上記第２データバス（９）に接続された入力および／または出力ポートが、通信送信器の送信ユニットおよび／または受信ユニット（１４）と接続されており、
上記第２データバス（９）に接続されたレジスターまたはバッファ（１２）が、通信送信器から送信または受信されるビット流を一時的に保存するため、備えられていることを特徴とする、請求項８または９に記載の演算処理システム。
【請求項１１】
上記第１データバス（１０）に接続されている命令実行手段（４−７）の実行ユニットが、第１実行ユニット（５）に相当し、および、第２データバス（９）に接続されている実行ユニットが、第２実行ユニット（７）に相当することを特徴とする、請求項３〜７のいずれか１項に記載の演算処理システム。
【請求項１２】
第１実行ユニット（５）が、上記第２データバス（９）にもアクセスできるように、第２データバス（９）とも接続されている一方で、第２実行ユニット（７）が第２データバス（９）とのみ接続されていることを特徴とする、請求項１１に記載の演算処理システム。
【発明の詳細な説明】
通信制御装置は、通信送信器、ルーター、または、ゲートウェイ（これらは便宜上、以下でホストシステムと称される）に用いられる。通例、この通信制御装置を用いて、通信情報が送受信され、またはこの送受信が制御される。情報を送信するために、デジタルデータの形態の通信情報がバッファから集められ、続いて送信バッファに書き込まれる。このとき、また別の情報ビットと共にまとめられて書き込まれることもある。続いて、送信バッファの内容（Inhalt）が、変調装置またはトランシーバーに達する。この変調装置またはトランシーバーは、デジタル送信データを搬送信号に変調し、デジタルからアナログに切り替え、通信チャネルを介して受信器に送信する。
【０００１】
この通信情報は、それぞれ「レイヤー（layer）」と呼ばれる層の形態に構成されたいわゆる通信プロトコルにしたがって処理される。送信方向については、それぞれのレイヤーの入力データは、いわゆるプロトコルヘッダと共に各レイヤーでまとめられて、下のレイヤーへとさらに伝達される必要がある。それに対して、受信方向については、プロトコルヘッダが各入力データから読み取られ、そのデータがそれぞれ上のレイヤーにさらに伝達される必要がある。したがって、通信制御装置の主な目的は、例えばホストコンピュータまたはマイクロ制御装置を介して外部から与えられる制御命令を判断し、実行することに加えて、受信されたビット流からヘッダ情報を抽出することであり、受信可能なビット流にヘッダ情報を加えることであり、各データを他のレイヤーへとさらに伝達すること（すなわち、データ転送）である。
【０００２】
通信制御装置の構造に着目した様々な提案が、知られている。この提案は、それぞれの場合において使用される中央演算処理装置（ＣＰＵ）、メモリー構造、バス構造、または、命令集合によって本質的に特徴づけられ得る。通信制御装置構造の１つの典型例が、例えば、「ＩＢＭトークンリングローカルエリアネットワークのためのＡ１６Ｍｂ／ｓアダプターチップ（A 16Mb/s Adapter Chip for the IBM Token-Ring Local Area Network）」（J.D. Blair等、IEEE Journal of Solid-State Circuits、第24巻、1989年12月）に掲載されている。これによると、上述のデータ転送によって、しばしば通信制御装置に障害が起こる。上述の周知の構造では、プログラムシーケンスから他のプログラムシーケンスへの切り替え（「タスクスイッチ」と呼ばれる）にも、結果として比較的時間がかかってしまうのである。
【０００３】
このようなわけで、異なる命令または異なるプログラムシーケンスを平行して同時に処理する（Abarbeitung）ことができるような構造を有する通信制御装置が、提案された。例えばアメリカ特許第５，４３４，９７６号では、互いに独立した２つの中央演算処理装置（ＣＰＵ）を備えている通信制御装置が提案されている。ここでは、それぞれの演算処理装置は、実行される命令を集めて読み出すための、および、読み出された命令を復号して実行するための、特有の通路（Pfad）を備えている。そして、一方の演算処理装置が、いわゆるＭＡＣレイヤー（「媒体アクセス制御」）としてほぼ機能している間、もう一方の演算処理装置は、ホスト命令を実行し、データの送受信に関わるバッファメモリーとして機能するのである。
【０００４】
このような周知の構造を用いて通信情報を効果的に処理でき、とりわけ、比較的速くデータ転送できるにもかかわらず、この通信制御装置には独立した２つの演算処理装置があるために、チップの所要面積および電力消費量が増えるという構造上の欠点がある。
【０００５】
したがって、本発明の目的は、一方ではチップの所要面積および電力消費量を減少させる演算処理システム、もう一方では、通信情報の処理に必要な機能を効果的に速く実行させることを可能にする演算処理システムを、提案することにある。
【０００６】
この目的は、請求項１の特徴を有した本発明による演算処理システムによって解決される。従属請求項には、本発明の有利で好都合な実施形態が示されている。
【０００７】
とりわけ通信制御装置の形態に構成された本発明による演算処理システムは、プログラムメモリーに保管された命令を実行するための中央演算処理装置（ＣＰＵ）を含んでいる。この演算処理装置は、プログラムメモリーから命令を読み出すための、および、読み出された命令を復号するための通路を１つだけ含んでいる。さらに、異なる命令またはプログラムシーケンスを平行して同時に実行するために、平行して同時に制御可能な実行通路（Ausfuehrungspfade）を複数備えている。これらの実行通路は、命令の読み出しと復号に共通して用いられる通路に、それぞれ接続されている。
【０００８】
このようにして、異なるプログラムシーケンスを平行して同時に処理することが、原則的には可能になる。このとき、命令の読み出しおよび復号に共通して用いられる通路によって、チップの所要面積および電力消費量が最低限に抑えられるのである。
【０００９】
実行通路の１つが、ＣＰＵの通常の計算およびアドレス機能のみを行う一方で、他の実行通路が、ある特別の機能のみを行うという利点がある。その結果、後者の実行通路をより簡単に導入でき、実現の費用（Realisierungsaufwand）をさらに削減できる。とりわけ、後者の実行通路が、必要な機能を頻繁に発揮できる利点がある。この機能は（dies）、通信プロトコルを処理する際に、例えばデータブロックを移動できるものである（すなわち、データ転送）。
【００１０】
データブロックを移動（すなわち、呼び出しまたは保存）するために、適切な「ブロック移動」命令と同時に、プログラミング可能なオフセット値が与えられるように、演算処理システムの命令集合を拡張できることが有利である。このオフセット値で、例えば、データブロックは出力ポートに書き込まれるか、または、入力ポートから読み出される。このとき、１つのビットオフセットが、オフセット値として特に用いられうる。
【００１１】
さらに、異なる伝達率を有するデータバスを用いることによって、低い方の伝達速度を有するデータバスは、必要な機能をあまり発揮できないかまたはよりゆっくりと機能し、一方で、例えば特にデータ転送のように高い方の伝達速度を有するデータバスは、必要な機能をより頻繁に発揮できるかまたは早く機能できる。したがって、本発明による実施形態は、１つの演算処理装置に対して１つのデータバスを用いること、あるいは、独立した(separat)２つの演算処理装置に対して、独立した２つのデータバスを用いることを提案する周知の解決とは、異なるものである。
【００１２】
このように、通信制御装置では、いわゆるペイロードデータが、十分なバンド幅を備えて高い方の伝達速度を有するデータバスに、速く転送される。一方で、プロトコルヘッダデータは、速度の遅い方のデータバスを介して処理される。
【００１３】
上述した本発明の演算処理システム構造にみられる本発明の他の利点は、とりわけ、各データバスに異なるビット幅を用いること、および、ポート、レジスターおよび演算処理システムのＲＡＭデータメモリーに異なるメモリー階層性（Speicherhierarchie）を用いること、同様に、各実行通路および各データバスに異なる節電機能モードを導入できることである。
【００１４】
次に、本発明を、有利な実施形態に基づく付属図を参照しながら詳述する。
【００１５】
図１は、本発明の実施形態による中央演算処理装置または中央装置（ＣＰＵ）の簡単なブロック図である。
【００１６】
図２は、図１に示された演算処理装置を、本発明による演算処理システムに結合させた図である。
【００１７】
図３Ａ−３Ｃは、図２に示された入力／出力ポートおよびレジスターの拡大図である。
【００１８】
図１に示されているように、例えば通信送信器用の通信制御装置として用いられる演算処理装置１（ＣＰＵ）は、演算処理システムのプログラムメモリー８から命令を読み出して（図１の機能ブロック２）、復号する（図１の機能ブロック３）ための通路を含んでいる。
【００１９】
通信データを処理する際に実施されるデータ転送およびプロトコル処理を最大限に用いるために、命令が平行して同時に実行される。その際、機能ブロック２・３を通過後に初めて、この平行線が続き、これは、平行して同時に操作可能な複数の実行ユニット５・７によって構成されている。特に、図１に示された実施形態には、異なる命令または異なるプログラムシーケンスを単独で処理するために、このような平行して同時に使用される２つの実行ユニット５・７が備えられている。さらに、復号段階３の後に、バッファメモリーまたはレジスター４か６が、各実行ユニットと関連付けられている。これらのバッファメモリー４・６のそれぞれは情報を保存し、これらの後に続く命令を実行するための実行ユニット５または７を必要とする。
【００２０】
したがって、図１に示された構造により、通路２・３のみが、命令を集めるかまたは読み出し、そして復号するために用いられる。この通路は、平行して同時に操作可能な全実行ユニット５・７に共通して用いられる。それによって、命令の実施およびプログラミングが簡略化される。
【００２１】
この実行ユニット５・７の構造または設計は、異なっていることが好ましい。この実行ユニットの１つは、実現の経費を削減するためにできるだけ簡単に構成されている。これにより、制限された機能数または命令数だけを実行することができる。その一方で、少なくとも１つの他の実行ユニットは所望の全般性を保ち、特にあらゆる可能な機能または命令を実行できるものである。このような実施形態の場合、実行ユニット７は、ある命令を実行するときにのみ、好ましくはデータブロックを移動するための命令を実行するときにのみ用いられているほどに、はるかに簡略化されている。その一方で、実行ユニット５は、演算処理システムの命令集合を全て実行できる。このように、バッファ６および実行ユニット７の構造は、バッファ４および実行装置５の構造よりも簡略化されている。
【００２２】
すでに言及したように、バッファ４・６は、情報をそのつど一時的に保存するために用いられている。このバッファは、それぞれの実行通路で実行される命令を実施するために必要なものである。複数の過程（Zyklen）（例えば、データブロックの移動命令のように）が続くような命令を実行するとき、それぞれに必要な情報は、バッファ４または６に保存される。それは、他の命令を平行して同時に実施するために、機能ブロック２・３を有する通路を空けておくためである。実行ユニット７がデータブロックの移動命令を実行するためだけに用いられると、呼び出し命令と保存命令との差によってできる１ビット、データ送受信装置のアドレス、移動するデータ要素（例えば、バイト）の数、および、場合によっては次に詳述するオフセット情報（例えば、ビットオフセット情報）が、実行ユニット７に関連するバッファ６に保存される。
【００２３】
実行ユニット７のデータ転送が活発な場合、実行ユニット５の実行通路はまた別のプログラムシーケンス（「タスク」）とともに平行して同時にアクセスされ得る。各プログラムシーケンスには、その独自の状態変数が割りあてられており、この状態変数は、「コンテクスト（Kontext）」と呼ばれる各プログラムシーケンスの状況域（Zustandsraum）をも形成している。活発な各プログラムシーケンスに対して、それぞれの状態変数（ゼロビット、キャリービット、アドレスポインター等）を保存するための、例えばプログラムカウンタおよびレジスターのような独自のハードウェアーが備えられるべきである。これにより、あるプログラムシーケンスから他のプログラムシーケンスへ切り替えられるとき、関連する状態変数とともにそれぞれのハードウェアーが切り替えられ、そして循環消耗（Zyklenverlust）のないコンテクスト切り替えが可能である。
【００２４】
いわゆるマルチタスク操作または並列操作を行うためには、命令集合が必要であり、この集合命令は、プログラムシーケンスを始めたり止めたりし、プログラムシーケンスに特有の、優先順位を設定し、または、中にはプログラムシーケンスに同期する信号を待つという命令を含むものである。実行ユニット５がさらなる命令を有していない場合、機能ブロック２から機能ブロック５までの全通路のスイッチ、および、この状態変数に対して関連するレジスターのスイッチを、切ることができる。同様に、こういったことは、クロックのスイッチを切るという明確な命令から生じうることである。
【００２５】
２つの実行ユニット５・７のそれぞれは異なるプログラムシーケンスに関連付けられているので、ＡＬＵ（「論理演算装置」「Algorithmic Logical Unit」）、レジスター、ＲＡＭメモリー、および、演算処理システムのデータバス等間の通信は、簡略化される。データ移動命令が割り込まれる場合は、実行ユニット７におけるプログラムシーケンスのデータが、実行ユニット５で処理される他のプログラムシーケンスに、平行して同時に転送されるので、ＤＭＡを土台とする演算処理システム（「ダイレクトメモリアクセス」）と比べて、ソフトウェア内でのより優れた制御も達成できる。さらに、ＤＭＡ制御装置を制御する必要はなく、プログラムコードおよび所要電力の削減に寄与する。さらにまた、レジスターまたはバッファ４・６を何度も使用でき、ＤＭＡ制御装置に付加的なレジスターを必要としないので、ハードウェアーの費用はより低下する。
【００２６】
すでに言及したように、実行ユニット７は、データブロックの移動命令を実施するときにのみ、用いられることが望ましい。その一方で、実行ユニット５は、あらゆる可能な機能または命令を実行できるように、できるだけ全般的に用いられている。したがって、通信データを処理するとき、実行ユニット７はデータを転送するために用いられ、一方で、実行ユニット５は、平行して同時に、加えて、残りのプロトコル処理を受け継ぐ。データがプロトコル処理と比べて比較的早く転送される必要があるので、実行ユニット７を比較的高い伝達速度を有するデータバスに接続することが望ましい。次に、このことを図２に基づいて詳述する。
【００２７】
この中央演算処理装置１は、演算処理システム内で２つのデータバス９・１０と接続している。このとき、データバス９は、データバス１０より高い伝達速度を有している。この演算処理装置１は、データバス９でのみその実行ユニット７とアクセスしている。その一方で、全般性を有して形成された実行ユニット５は、２つのデータバス５・７を使用できる。速くデータを転送するために、とりわけ、本来の通信情報を有する通信プロトコルのいわゆるペイロードデータを移動させるために、入力／出力ポート１１ならびにバッファ／レジスター１２は、速い方のデータバス９に接続している。ポート１１は、複合的な（aufwendig）特殊レジスターとして設計されており、データを送受信するのに適した通信送信器のトランシーバー１４（変調装置とも呼ばれる）のインターフェースとして用いられている。割り込み制御装置（Interrupt Controller）１６は、ポート１１から発生した割り込み信号を判断し、あらかじめ設定された割り込み処理にしたがって中央演算処理装置１を割り込み信号によって制御する。バッファ１２は、送受信されるビット流をバッファ１２に書き込むまたは読み出すホストシステム１５のそれぞれ（すなわち、通信送信器、ルーターまたはゲートウェイ）のためのインターフェースを形成している。例えばＲＡＭメモリーとして設計された（realisiert）バッファ１２は、演算処理装置１によって構成されうるＤＭＡ制御装置を介して制御されうる。これにより、バッファ１２とホストシステム１５との間のデータ転送が、演算処理装置１にとって大きな負担にはならなくなる。それに対して、遅い方のデータバス１０は、演算処理システムの本来のデータメモリー１３と結合している。このデータメモリー１３は、ＲＡＭマスメモリーの形態をしており、主として制御情報と通信プロトコルのヘッダ情報との一時的保存に用いられる。
【００２８】
このようにして、いわゆるペイロードデータを転送する際、通信プロトコルを処理するときに必要なこの構成要素１１・１２は、プロトコルヘッダデータを処理するために必要な部分から分離しており、ペイロードデータを速く転送するために、実行ユニット７および速い方のデータバス９が用いられうる。その一方で、遅い方のデータバス１０（および実行ユニット５）を介して、それぞれの通信プロトコルのヘッダデータが、加えて、平行して同時に処理されうる。
【００２９】
図３Ａには、シリアルデータ入力部およびパラレルデータ出力部を有するポート１１に与えられる信号が、示されている。このポート１１は、クロック信号ＣＬＫにしたがってポート１１に書き込まれるシリアル入力データＤ＿ＩＮを受信する。さらに、ポート１１は、書き込まれたデータのビット位置を示す３ビット制御情報ＢＰを受信し、同様に、書き込まれたビット領域（Bitfeld）の幅または長さを示すまた別の３ビット制御情報ＢＷを受信する。このようにして、ポート１１では、ポート１１の第１ビット位置に関する長さＢＰのビットオフセットで、長さＢＷのデータブロックが書き込まれる。また別の制御信号として、リセット信号ＲＥＳＥＴがポート１１に供給される。出力部では、ｎビットを有するデータが、また別の制御信号Ｄ＿ＲＥＡＤを介して、平行して同時に読み出される。さらに、ポート１１にデータが保存される際には、割り込みを生成する割り込み信号Ｄ＿ＲＥＡＤＹが必要である。
【００３０】
図３Ｂでは、パラレルデータ入力およびシリアルデータ出力を有するポート１１に供給される信号が、示されている。このとき、ｎビットが入力側で平行して同時に読み込まれ、出力データがシリアル出力されるという点においてのみ、このポートは図３Ａで示されるポートとは違う。
【００３１】
最後に、図３Ｃでは、バッファ／レジスター１２に供給される信号も、示されている。このとき、データ要素がバイトの形式で、バッファ１２に書き込み・読み出しされることが望ましい。さらに、バッファ１２で情報を呼び出すための（zugegriffen werden soll）アドレスをそれぞれ示すアドレス信号ＡＤＲが、供給される。
【図面の簡単な説明】
【図１】  本発明の実施形態による中央演算処理装置または中央装置（ＣＰＵ）の簡単なブロック図である。
【図２】  図１に示された演算処理装置を、本発明による演算処理システムに結合させた図である。
【図３Ａ】  図２に示された入力／出力ポートおよびレジスターの拡大図である。
【図３Ｂ】  図２に示された入力／出力ポートおよびレジスターの拡大図である。
【図３Ｃ】  図２に示された入力／出力ポートおよびレジスターの拡大図である。
【図１】
0003651672.tif 000002
【図２】
0003651672.tif 000003
【図３Ａ】
0003651672.tif 000004
【図３Ｂ】
0003651672.tif 000005
【図３Ｃ】
0003651672.tif 000006