(57)【要約】マルチプロセッサシステムの各プロセッサのためのソフトウェア仕様を格納する方法及び装置が開示される。この開示された格納技術は、各プロセッサの設定情報を格納するのに必要なトータルメモリスペースを低減し、プロセッサの個数を増加するとき、メモリサイズの線形スケーリングを必要としない。各一意的ソフトウェア仕様はメモリに格納され、各プロセッサに対し、当該プロセッサの設定情報のメモリにおける対応する位置を特定するポインタが格納される。各プロセッサのポインタを格納するメモリエリアのサイズは、依然としてプロセッサの個数と線形な関係を有する。一意的ソフトウェア仕様を格納するメモリエリアのサイズは、プロセッサの個数から独立とされる。【特許請求の範囲】
【請求項１】
マルチプロセッサシステムの複数のプロセッサのための少なくとも１つのソフトウェア仕様を格納する方法であって、
各一意的ソフトウェア仕様をメモリに格納するステップと、
前記複数のプロセッサの各々に対するポインタを格納するステップと、
を有し、
前記ポインタの各々は、前記プロセッサに関連するソフトウェア仕様を格納する前記メモリの位置を特定することを特徴とする方法。
【請求項２】
請求項１記載の方法であって、さらに、
与えられたプロセッサのための対応するプログラムソフトウェア仕様へのポインタを抽出するステップを有することを特徴とする方法。
【請求項３】
請求項２記載の方法であって、さらに、
前記ポインタにより特定される前記ソフトウェア仕様を抽出するステップを有することを特徴とする方法。
【請求項４】
請求項３記載の方法であって、さらに、
前記抽出されたソフトウェア仕様を前記与えられたプロセッサにロードするステップを有することを特徴とする方法。
【請求項５】
請求項１記載の方法であって、
各一意的ソフトウェア仕様は、一様な長さを有することを特徴とする方法。
【請求項６】
請求項１記載の方法であって、
前記ポインタの１以上は、ランレングス符号化技術を用いて符号化されることを特徴とする方法。
【請求項７】
請求項１記載の方法であって、
前記一意的ソフトウェア仕様の少なくとも１つは、関連するオペコードが繰り返されるべきであることを示すキーワードを用いて圧縮形式により格納されることを特徴とする方法。
【請求項８】
複数のプロセッサと、
前記複数のプロセッサに結合されるメモリと、
を有するマルチプロセッサシステムであって、
前記メモリは、１以上の一意的ソフトウェア仕様を格納する第１領域と、前記複数のプロセッサの各々のためのポインタを格納する第２領域とを有し、前記ポインタの各々は、前記プロセッサに関連するソフトウェア仕様を格納する前記メモリの位置を特定することを特徴とするシステム。
【請求項９】
請求項８記載のマルチプロセッサシステムであって、
前記複数のプロセッサの少なくとも１つは、与えられたプロセッサのための対応するプログラムソフトウェア仕様へのポインタを抽出するよう構成されることを特徴とするシステム。
【請求項１０】
請求項９記載のマルチプロセッサシステムであって、
前記複数のプロセッサの少なくとも１つは、前記ポインタにより特定されたソフトウェア仕様を抽出するよう構成されることを特徴とするシステム。
【請求項１１】
請求項１０記載のマルチプロセッサシステムであって、
前記複数のプロセッサの少なくとも１つは、前記抽出されたソフトウェア仕様を前記与えられたプロセッサにロードするよう構成されることを特徴とするシステム。
【請求項１２】
請求項８記載のマルチプロセッサシステムであって、
各一意的ソフトウェア仕様は、一様な長さを有することを特徴とするシステム。
【請求項１３】
請求項８記載のマルチプロセッサシステムであって、
前記ポインタの１以上は、ランレングス符号化技術を用いて符号化されることを特徴とするシステム。
【請求項１４】
請求項８記載のマルチプロセッサシステムであって、
前記複数のプロセッサの少なくとも１つは、前記ソフトウェア仕様の１つにおける関連するオペコードが繰り返されるべきであることを示すキーワードを認識することを特徴とするシステム。
【請求項１５】
マルチプロセッサシステムにおいてソフトウェア仕様をプロセッサにロードする方法であって、
前記プロセッサに関連するメモリの対応するソフトウェア仕様を特定するポインタを抽出するステップと、
前記ポインタにより特定される前記対応するソフトウェア仕様を抽出するステップと、
前記抽出されたソフトウェア仕様を前記プロセッサにロードするステップと、
を有することを特徴とする方法。
【請求項１６】
請求項１５記載の方法であって、
前記ソフトウェア仕様は、所定の長さを有することを特徴とする方法。
【請求項１７】
請求項１５記載の方法であって、
前記ポインタは、ランレングス符号化技術を用いて符号化されることを特徴とする方法。
【請求項１８】
請求項１５記載の方法であって、
前記ソフトウェア仕様は、関連するオペコードが繰り返されるべきであることを示すキーワードを用いて圧縮形式により格納されることを特徴とする方法。
【請求項１９】
請求項１８記載の方法であって、さらに、
前記オペコードを指定された倍数に拡張するステップを有することを特徴とする方法。
【請求項２０】
請求項１８記載の方法であって、
前記ソフトウェア仕様は、前記メモリに一度だけ格納されることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能なマルチプロセッサシステムに関し、より詳細には、マルチプロセッサシステムの各プロセッサの機能を定義するプログラムコードを効率的に格納する技術に関する。
【背景技術】
【０００２】
多くの用途において、単一のデジタル信号プロセッサは、必要な処理帯域幅を提供することができないかもしれない。従って、プロセッサ構成はしばしば、マルチプロセッサシステムを提供するためパラレルに動作する複数のプロセッサに分解される。典型的には、各プロセッサは、メモリに格納され、システム起動時に対応するプロセッサにロードされるソフトウェアプログラムにより個別に定義されている。従って、マルチプロセッサシステムのメモリサイズは、一般にプロセッサの個数に対し線形に増加する。
【０００３】
例えば、マルチプロセッサシステムが１０個のプロセッサにより構成され、各プロセッサが２５６バイトからなる仕様を必要とする場合、システム設定を格納するのに要するトータルメモリは、２，５６０バイトとなる。設定されたコンポーネントプロセッサ、クロックレート及び信号処理機能を維持しながら、入力ストリームのデータレートが以降において規模のオーダで増加する場合、プロセッサの総数もまた規模のオーダでスケールアップされるべきである。従って、この構成は、必要とされる１００個のプロセッサに対するソフトウェアを指定するため、２５，６００バイトを必要とするであろう。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従って、マルチプロセッサシステムの各プロセッサの機能を定義する設定情報を格納する方法及び装置が必要とされる。さらに、プロセッサの個数を増加するとき、メモリサイズの線形なスケーリングを必要としない設定情報を格納するための効率的な方法が必要とされる。
【０００５】
一般に、マルチプロセッサシステムの各プロセッサに対し、ソフトウェア仕様を格納する方法及び装置が開示される。この開示される格納技術は、各プロセッサの設定情報を格納するのに必要とされるトータルのメモリスペースを低減し、プロセッサの個数を増加させるとき、メモリサイズの線形なスケーリングを必要としない。
【課題を解決するための手段】
【０００６】
本発明は、一意的な各ソフトウェア仕様をメモリに格納し、その後、プロセッサの設定情報のメモリにおける対応する位置を特定する各プロセッサに対するポインタを格納する。各ポインタは、例えば、単一のプロセッサに対するソフトウェアプログラムのスタートのメモリにおけるアドレスなどを参照し、これにより、冗長なコードの格納を回避することができる。このようにして、本発明は、プロセッサの個数に対するメモリサイズの線形スケーリングを回避し、メモリサイズをプロセッサの個数と独立なものとする。
【０００７】
各プロセッサのポインタを格納するメモリエリアのサイズは、依然としてプロセッサの個数と線形な関係を有する。しかしながら、本発明によると、一意的なソフトウェア仕様を格納するメモリエリアのサイズは、プロセッサの個数とは独立なものとなる。同一のソフトウェアプログラムにより指定された複数のプロセッサが、設定メモリにおいて同一のプログラム仕様を共有することとなり、これにより、設定メモリのトータルサイズを低減させることができる。
【０００８】
本発明のより完全なる理解と共に本発明のさらなる特徴及び効果は、以下の詳細な説明及び図面を参照することにより得られるであろう。
【発明を実施するための最良の形態】
【０００９】
本発明は、後述されるように、トータルのメモリサイズを低減し、プロセッサの個数を増加させたとき、メモリサイズの線形なスケーリングを必要としないマルチプロセッサシステムの各プロセッサに対する設定情報を格納する効率的な方法を提供する。本発明は、デジタル通信アプリケーションなどの多くのアプリケーションが、「ＳＰＭＤ（Ｓｉｎｇｌｅ  Ｐｒｏｇｒａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）」としばしば呼ばれる性質を有するアルゴリズムを利用し、これにより、同一のプログラムが対応するデータをパラレルに処理するため、マルチプロセッサシステムの多数のプロセッサにロードされる。
【００１０】
本発明の一特徴によると、各プロセッサの個別の設定情報を格納するのではなく、各プロセッサの対応する設定情報へのポインタリストがメモリに維持される。各ポインタは、単一のプロセッサに対するソフトウェアプログラムのメモリにおけるスタートアドレスなどを参照し、これにより、冗長なコードの格納を回避することができる。このようにして、本発明は、プロセッサの個数に対するメモリサイズの線形なスケーリングを回避し、厳密なＳＰＭＤのケースでは、メモリサイズをプロセッサの個数から独立なものとすることができる。
【００１１】
図１は、一例となる従来のマルチプロセッサシステム１００の概略的なブロック図である。図１に示されるように、マルチプロセッサシステム１００は、以降においてプロセッサ１１０としてまとめて呼ばれるＭ行Ｎ列のプロセッサ１１０−１−１〜１１０−Ｍ−Ｎのアレイ１５０を有する。設定メモリ１４０は、各信号プロセッサ１１０のソフトウェア記述を格納する。このソフトウェア記述は、設定プロセッサ１３０により各信号プロセッサと、必要に応じて、プロセッサアレイ１５０のアドレス指定を制御する１以上のインタフェースプロセッサ１２０既知の方法によりにダウンロードされる。
【００１２】
図２は、マルチプロセッサシステム１００の各プロセッサ１１０のための設定情報を格納する典型的な従来技術を示す。図２に示されるように、従来の設定メモリ１４０は、対応する各プロセッサ１１０−１−１〜１１０−Ｍ−Ｎのためのソフトウェア記述２１０−１−１〜２１０−Ｍ−Ｎの個々の画像を格納している。前述のように、図２に示されるメモリ格納技術は、アレイ１５０のプロセッサ１１０の個数を増加させると、設定メモリ１４０のサイズの線形なスケーリングを招く。
【００１３】
図３は、本発明による各プロセッサ１１０のための設定情報を格納する技術を示す。図３に示されるように、設定メモリ１４０は、対応する各プロセッサ１１０−１−１〜１１０−Ｍ−Ｎに対するポインタ３１０―１−１〜３１０−Ｍ−Ｎ（以降では、まとめてポインタ３１０と呼ばれる）を含む第１領域３０５を有する。さらに、設定メモリ１４０は、各一意的プログラム１〜Ｌに対するソフトウェア仕様３２０−１〜３２０−Ｌを含む第２領域３１５を有する。従って、与えられたプロセッサ１１０のポインタ３１０は、プロセッサ１１０により実現されるソフトウェア仕様３２０を含む領域３２０の適当なエリアを指示している。
【００１４】
第１領域３０５は、プロセッサの個数と線形な関係を有するサイズを有する。しかしながら、プロセッサの最大数を予め規定することが可能であるため、固定されたメモリサイズが第１領域３０５に対し割当てられてもよい。本発明によると、実際のソフトウェアプログラムが格納されている第２領域３１５は、プロセッサの個数とは独立なサイズを有する。同一のソフトウェアプログラムにより指定されるいくつかのプロセッサ１１０は、設定メモリ１４０において同一のプログラム仕様３２０を共有し、これにより、設定メモリ１４０のトータルサイズを減少させることができる。このようにして、本発明は、設定メモリ１４０からソフトウェアプログラムの冗長な仕様を削除することができる。
【００１５】
図４は、プロセッサの個数と各一意的プログラムの各ソフトウェア仕様３２０のサイズが予め規定された一例となるプロセッサ設定プロセス４００を説明するフローチャートである。プロセッサ設定プロセス４００は、典型的には、設定プロセッサ１３０により実現される。図４に示されるように、プロセッサ設定プロセス４００は、まずステップ４１０においてプロセッサの総数とプログラムの長さを取得する。
【００１６】
以降のステップ４２０において、各プロセッサに対し、プロセッサ設定プロセス４００は、設定メモリ１４０の対応するプログラム３２０への適当なポインタ３１０を抽出する。最後に、各プロセッサに対し、各プロセッサ１１０の抽出されたポインタ３１０は、ステップ４３０において当該ポインタ３１０により特定されるプログラム３２０を抽出し、特定されたプログラム３２０を適切なプロセッサ１１０にロードするのに用いられる。その後、プログラム制御は終了される。メモリ１４０’のプロセッサ設定に対するファイルフォーマットは、以下のように表すことができる。
【００１７】
【表１】
2006510080.tif 000002
このとき、プロセッサ設定プロセス４００の擬似コードは、以下のように表すことができる。
【００１８】
【表２】
2006510080.tif 000003
図５は、プロセッサ数は既知であるが、各一意的プログラムの各ソフトウェア仕様３２０のサイズが可変である一例となるプロセッサ設定プロセス５００を説明するフローチャートである。従って、各一意的プログラムが可変長とすることができるとき、プログラムの長さは、ポインタと共に符号化される。プロセッサ設定プロセス５００は、典型的には、設定プロセッサ１３０により実現される。図５に示されるように、ステップ５１０において、プロセッサ設定プロセス５００はまずプロセッサの総数を取得する。
【００１９】
その後ステップ５２０において、各プロセッサに対し、プロセッサ設定プロセス５００は、設定メモリ１４０の対応するプログラムへの適切なポインタ３１０と共に、プログラムの長さを抽出する。最後に、各プロセッサに対し、各プロセッサ１１０の抽出されたポインタ３１０は、ステップ５３０において当該ポインタ３１０により特定されたプログラム３２０を抽出し、特定されたプログラム３２０を適切なプロセッサ１１０にロードするのに用いられる。その後、プログラム制御は終了される。メモリ１４０’のプロセッサ設定のファイルフォーマットは、以下のように表すことができる。
【００２０】
【表３】
2006510080.tif 000004
このとき、プロセッサ設定プロセス５００の擬似コードは、以下のように表すことができる。
【００２１】
【表４】
2006510080.tif 000005
本発明は、参照することによりここに含まれる、Ｇ．Ｂｕｒｎｓらによる「Ａｒｒａｙ  Ｐｒｏｃｅｓｓｉｎｇ  ｆｏｒ  Ｃｈａｎｎｅｌ  Ｅｑｕａｌｉｚａｔｉｏｎ」（ＩＥＥＥ  Ｉｎｔ’ｌ  Ｃｏｎｆ．ｏｎ  Ａｃｏｕｓｔｉｃｓ，Ｓｐｅｅｃｈ  ａｎｄ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ，ＩＣＡＳＳＰ  ２００２（２００２年５月１３日）に記載されるＭＳＣＤ再構成可能プロセッサアレイに適用可能である。有限インパルスレスポンスフィルタタップ計算が各プロセッサ上で５サイクルかかり、１２８フィルタタップが存在し、各プロセッサに１つのタップが設けられる場合、少なくとも６４０（５＊１２８）ワードが、設定メモリにおいて必要とされる。本発明は、すべてのプロセッサが同一の信号処理機能を実現し、一意的プログラムの個数が１であると認識する。このとき、設定メモリは、ポインタを格納するのに１２８ワードを、１つの一意的プログラムを格納するのに５ワードを、合計１３３（１２８＋５）ワードを必要とする。従って、本発明は、約８０％の節約を行うことができる。
【００２２】
さらに、ポインタ３１０を含む設定メモリ１４０の領域３０５のメモリサイズのさらなる減少は、複数のプロセッサが使用されていない場合、ランレングス符号化技術を実現することにより達成することができる。実際のソフトウェア仕様３２０を含む設定メモリ１４０の領域３１５のメモリサイズのさらなる減少は、同一のオペコードが連続的に繰り返されるとき、ＲＥＰＥＡＴキーワードを用いることにより達成することができる。例えば、設定メモリ１４０は、以下のように符号化することができる。
【００２３】
【表５】
2006510080.tif 000006
各プロセッサまたは設定プロセッサ１３０は、以下のように、上記符号化の拡張をトリガーするため、ＲＥＰＥＡＴキーワードを認識することができる。
【００２４】
【表６】
2006510080.tif 000007
このようにして、このようなオペコードの拡張が各プロセッサハードウェアにおいてサポートされている場合、アレイセルローカルオペコード格納は、実質的により効率的なものとなりうる。すべての既知のタイプのバイナリ圧縮アルゴリズムが、トータルメモリサイズのさらなる減少のため、本発明と共に利用されてもよい。
【００２５】
ここで図示及び説明された実施例と変形は、本発明の原理を単に例示したものであり、本発明の範囲及び趣旨から逸脱することなく、当業者により様々な変更が実現されるかもしれないということは理解されるべきである。
【図面の簡単な説明】
【００２６】
【図１】図１は、一例による従来のマルチプロセッサシステムの概略的なブロック図である。
【図２】図２は、図１のマルチプロセッサシステムの各プロセッサのための設定情報を格納するための従来技術を示す。
【図３】図３は、本発明による図１の各プロセッサのための設定情報を格納する技術を示す。
【図４】図４は、プロセッサの個数と各一意的プログラムの各ソフトウェア仕様３２０のサイズが予め規定される一例となるプロセッサ設定プロセスを説明するフローチャートである。
【図５】図５は、プロセッサの個数は既知であるが、各一意的プログラムの各ソフトウェア仕様３２０のサイズは可変とされる他のプロセッサ設定プロセスを説明するフローチャートである。
【図１】
2006510080.tif 000008
【図２】
2006510080.tif 000009
【図３】
2006510080.tif 000010
【図４】
2006510080.tif 000011
【図５】
2006510080.tif 000012
【国際調査報告】
2006510080.tif 000013
2006510080.tif 000014
2006510080.tif 000015