(57)【特許請求の範囲】
【請求項１】
デジタル信号処理システムにおいて、
命令を格納した共用プログラムメモリと、
ホスト処理装置により、エミュレーションモードに設定されると、ホスト処理装置から入力される命令とＴＢＳＵＳＰＥＮＤ信号とを出力するエミュレーション論理と、
前記共用プログラムメモリ及びエミュレーション論理に接続された複数の処理装置、とから構成され、
各処理装置は、
実行モジュールと、
前記ＴＢＳＵＳＰＥＮＤ信号により、前記実行モジュールから共用メモリモジュールに対する書込みを許可するバスインタフェースと、
エミュレーションモードに設定されると、エミュレーションバスを介して前記エミュレーション論理から出力される命令を入力し、エミュレーションモードに設定されていない時は、前記バスインタフェース及び前記命令フェッチモジュールを介して前記共用プログラムメモリに格納された命令を入力し、入力した命令を復号して前記実行モジュールに出力する復号器モジュールと、
前記復号器モジュールに前記バスインタフェースを介して前記共用プログラムメモリからフェッチした命令を出力する前記命令フェッチモジュールと、を有し、
各処理装置は、エミュレーションモードが設定されている時にホスト処理装置から前記エミュレーション論理及び前記復号器モジュールを介して入力され、前記共用プログラムメモリに所定の命令を書き込む命令を、前記実行モジュールにより実行することにより、前記共用プログラムメモリに前記所定の命令を前記バスインタフェースを介して書き込み、エミュレーションモードに設定されていない時は、前記実行モジュールの実行による前記共用プログラムメモリの書込みが前記バスインタフェースにより禁止されること、
を特徴とするデジタル信号処理システム。
【発明の詳細な説明】
【０００１】
【発明の背景】
本発明は概してデジタル信号処理システムに関する。より詳細には、本発明は多数の処理装置コアにより共用されるプログラムメモリに関する。更により詳細には、本発明は通常の動作の間のプログラムコードの改変を防ぐように条件付きで書込を防止された共用プログラムメモリに関する。
【０００２】
マイクロプロセッサは通常単一の半導体チップに作られた各種の論理回路を含む。そのような論理回路は通常処理装置コア，メモリ及び多数の他の支持要素を含む。テキサス・インスツルメントにより提供されるデジタル信号処理装置（ＤＳＰ）のようなマイクロロセッサは多数の処理装置副システムを含み、各副システムがそれ自体の処理装置コアをもつ。また各副システムは該関連する処理装置コアのためのメモリ及び他の支持要素を含む。
【０００３】
通常、ＤＳＰのようなマイクロプロセッサにとってはコンパクトで、電力消費が非常に少なく、出来るだけ熱の発生が小さいことが望まれる。これは特に、セルラ電話、ページャ等のような電池で電力を供給する小型装置に設けられるＤＳＰにとって望まれる。ＤＳＰのサイズ及び電力消費を小さくする１つの方法はある支持要素を多数のコアにより共用できるようにすることで、多数−コアＤＳＰの冗長性のあるものを取り除くことである。
【０００４】
共用のプログラムメモリをもった多数−コアＤＳＰについては発明者ケネス，シー，ケリー（Kenneth C. Kelly) 他による“多数−コアＤＳＰ装置に使用される共用プログラムメモリ（Shared Program Memory for use in Multicore DSP Devices）" と題する係属中の特許出願番号第 号（代理人  書類番号  # 1962-00100) に記載されている。ここにその内容を参照として組入れる。共用プログラムメモリは必要によりソフトウエアが変更できるように書き込みのできる揮発性記憶装置である。しかし共用プログラムメモリは書き込み可能であるので、無拘束状態において処理装置コアは恐らくソフトウエアを改変して、その結果他の処理装置コアの動作に抵触することになる。
【０００５】
従って共用プログラムメモリの書き込み防止を設けることが望ましい。しかしその反面、共用プログラムメモリの書き込み防止はソフトウエアのロードまたは変更を阻止することになる。更に、書き込み防止は処理装置自体が試験ソフトウエアをプログラムメモリに書込む望ましい照合技術と抵触するであろう。従って、多数−コア処理装置はこれらの後で述べたような問題の無い、書き込み防止されたプログラムメモリが要求される。
【０００６】
【発明の要旨】
従って、本発明は条件付き書き込防止のある共用プログラムメモリをもった多数−コアデジタル信号処理装置を意図するものである。１つの実施例において、デジタル信号処理装置は、共用プログラムメモリ、エミュレーション論理モジュール及びそれぞれ共用プログラムメモリに対応する命令バスにより結合された多数処理コアを含む。エミュレーション論理モジュールは好ましくは処理装置の各々の動作モード、例えば処理装置が通常のモードで作動するのか、エミュレーションモードで作動するのか、というような動作モードを決める。エミュレーションモードでは、エミュレーション論理は各種処理装置のハードウエアの状態や、各種レジスタとメモリの内容を変更できる。命令バスは各々読出し／書込信号を含み、対応する処置装置コアが通常モードにあるとき読出し状態に保持される。他方、処理コアがエミュレーションモードにあるときは、処理装置コアが命令バスの読出し／書込信号の状態を決めることができる。各命令バスの読出し／書込信号は好ましくは論理ゲートにより発生され、論理ゲートは通常モードにおいては処理装置コアが読出し／書込信号に影響しないようにするが、エミュレーションモードにおいては処理装置コアが読出し／書込信号の値を決めることができるようにする。このようにして、論理ゲートは、エミュレーション論理がエミュレーションモードを示す信号を宣言しない（de-assert)ときは、共用プログラムメモリへの書込動作を防止するが、エミュレーション論理がエミュレーションモードを示す信号を宣言（assert) するときは共用プログラムメモリへの書込み動作を許容する。論理ゲートは好ましくは各処理コアのバスインタフェースモジユールに含まれる。
【０００７】
【記号法及び専門用語】
或る用語は明細書および請求項を通して特定のシステム要素を示すのに使用される。当業者には周知のように、半導体の会社により１つの要素を異なる用語で示すことがある。この明細書は名称が異なるが機能は同一の要素の間を区別する意図は無い。以下の説明及び請求項の記載において、用語「含む」「備える」は非限定に使用されるものであり、「含むがそれに限定されない」と解するべきである。また用語「結合」「結合する」は間接または直接の電気的接続を意味することを意図する。従って、もし第１の装置が第２の装置に結合されるとすると、その接続は直接の電気的接続であっても、他の装置または接続物を介した間接の電気的接続であってもよい。
【０００８】
【好ましい実施例の詳細な説明】
本発明の好ましい実施例を以下に多数−コア、固定小数点、デジタル信号処理装置（ＤＳＰ）チップの関連において説明する。しかし、この実施例はこの開示の範囲をこの関連に限定することを意図するものでなく、この好ましい実施例は共用プログラムメモリの条件付き書込防止が有利である任意の多数コアＤＳＰ装置に適用できるものである。
【０００９】
図面を参照すると、図１においてＤＳＰチップ１００は多数の副システム１１０、１２０、共用プログラムメモリ（ＰＲＡＭ）１３２、メモリバスインタフェース１３４、外部Ｉ／Ｏポート（ＸＰＯＲＴ）判定器（arbiter)１３６、ＸＰＯＲＴ多重化装置（multiplexer)１３８及びホストポートインタフェース（ＨＰＩ）多重化装置１３９を含む。各ＤＳＰ副システム１１０、１２０（一般に図１で破線で分離される）は好ましくはＤＳＰコア１１、２１、読取専用メモリ（ＲＯＭ）１２、２２、二重アクセス・ランダムアクセスメモリ（ＤＡＲＡＭ）１３、２３、単一アクセス・ランダムアクセスメモリ（ＳＡＲＡＭ）１４、２４、１つまたは複数の周辺装置（ＰＥＲＩ）１５、２５、Ｍ−バス多重化装置１６、２６、Ｍ−バス判定器（Ｍ  ＡＲＢ）１７、２７、ＤＭＡ制御器（ＤＭＡ）１８、２８、ホストポートインタフェース（ＨＰＩ）１９、２９及び他の各種支持回路を含む。副システム１１０、１２０は各々更に命令バスＰ１，Ｐ２，データバスＤ１，Ｄ２，メモリバスＭ１，Ｍ２，処理装置コア外部Ｉ／ＯバスＸＣ１，ＸＣ２及びＤＭＡ制御器外部Ｉ／ＯバスＸＤ１，ＸＤ２を含む。
【００１０】
共用プログラムメモリ（ＰＲＡＭ）１３２は好ましくはプログラム命令に割り当て（reserved) られ、２重アクセスＲＡＭの１６のブロックを含む。各ブロックは１６キロバイトの格納容量をもつ。但し、ブロックの大きさ、ブロックの数は必要に応じて変更可能である。各ＤＳＰ副システム１１０、１２０は各クロックサイクルの間にＰＲＡＭ１３２の任意の位置から命令を取り込むことができる。処理装置コア１１、２１はＰＲＡＭ１３２に格納されている１つのプログラムから特定（distinct) の命令を同時に取り込み実行する。ＤＳＰコアは同じソフトウエアプログラムを実行するかもしれないが、それらは必ずしも同じ命令を同時に実行するとは限らず、プログラムの流れの同じ分岐を辿るとは限らない。好ましい実施例によれば、ホスト処理装置（図示されず）はＸＰＯＲＴ，ＨＰＩ１９，２９及びメモリバスＭ１，Ｍ２を介してＰＲＡＭ１３２にソフトウエアを与える。
【００１１】
メモリバスインタフェース１３４はＰＲＡＭ１３２とメモリバスＭ１，Ｍ２に結合されている。メモリバスインタフェース１３４はメモリバスＭ１，Ｍ２が書込、読出しのできる１組の先入れ、先だし（ＦＩＦＯ）バッファを構成する。各ＦＩＦＯバッファは１方向、すなわち１つのメモリバスにより書き込まれ、他のメモリバスにより読出される。これにより１つの副システム内通信（inter-subsystem communication)の方法を構成する。メモリバスインタフェース１３４はまた両メモリバスＭ１，Ｍ２をＰＲＡＭ１３２に結合する。ＰＲＡＭ１３２の最初のプログラム及びその更新は通常メモリバスを介して実行される。
【００１２】
ＸＰＯＲＴ判定器１３６とＸＰＯＲＴ多重装置１３８は各副システムにおける処理装置コア１１、１２とＤＭＡ制御装置１８、２８にそれぞれ外部Ｉ／ＯバスＸＣ１，ＸＣ２，ＸＤ１，ＸＤ２を介して結合される。処理装置コア及びＤＭＡ制御装置は外部アクセスについて判定（arbitrate)し、判定器１３６は多重化装置１３８をその判定の結果に応じて設定する。ＤＳＰ１００はチップの外部接続を構成する多数のピン（“リード”）をもった半導体パッケージに設けられる。ＸＰＯＲＴにより外部アクセスに使用されるパッケージのリードは好ましくはホストポートインタフェースユニット１９、２９で共用される。従って、ＸＰＯＲＴ多重化装置１３８からの出力はＨＰＩユニット１９、２９と同様にＨＰＩ多重化装置１３９に結合される。ホスト処理装置がＭＯＤＥ信号（ＨＰＩ多重化装置１３９の制御信号である）を宣言(assert)すると、ＸＰＯＲＴピンがＨＰＩユニット１９、２９に結合され、ホスト処理装置はメモリにマップ（memory-mapped)された装置としてＤＳＰ装置１００にアクセスする。ホスト処理装置がＭＯＤＥ信号を宣言しない（de-assert)ときは、ＸＰＯＲＴリードはＸＰＯＲＴ多重化装置１３８に結合され、如何なる外部アクセスもコア１１、２１またはＤＭＡ制御装置１８、２８により開始される。
【００１３】
処理コア１１、２１は好ましくは対応する命令バスＰ１，Ｐ２を介して検出されるソフトウエア命令を実行して対応するデータバスＤ１，Ｄ２を介して検出されるデータを処理する。その結果は処理コアからデータバスに戻される。処理コアは代表的に最適演算ユニット（ＡＬＵ）と制御ユニットを含む。制御ユニットはデータ及び命令を検出してその命令を復号し、ＡＬＵはその命令により特定されるようにデータを処理する。
【００１４】
ＲＯＭ１２、２２は対応する命令バスＰ１，Ｐ２に結合された非揮発性メモリである。ＲＯＭは好ましくは副システムを初期化する立ち上げ（boot-up)ソフトウエアを格納する。ＤＡＲＡＭ１３、２３は好ましくは４つのメモリブロックを含み、各ブロックは１クロックサイクル当たり２つのメモリのアクセスを支持（support)する。ＤＡＲＡＭ１３、２３は基本的にデータ格納を意図するが、プログラム命令を同様に格納する。従って、それらは対応する命令バスＰ１，Ｐ２と対応するデータバスＤ１，Ｄ２の両者に結合される。ＤＳＰコア１１、２１のレジスタ（図示せず）はＤＡＲＡＭ１３、２３がプログラムメモリ領域またはデータメモリ領域にマップされているか否かを決定する。ＳＡＲＡＭ１４、２４もまた好ましくは４つのメモリブロックを含み、各ブロックはクロックサイクル当たり１つのメモリのアクセスを支持する。各ＳＡＲＡＭは好ましくはデータ格納に割り当てられ、従って対応するデータバスＤ１，Ｄ２に結合される。
【００１５】
更に図１を参照すると、命令バスＰ１，Ｐ２は対応する処理装置コア１１、２１、局部ＤＡＲＡＭ１３、２３、局部ＲＯＭ１２，２２，及び共用ＰＲＡＭ１３２を一緒に結合する。データバスＤ１，Ｄ２は対応する処理装置コア１１、２１、局部ＤＡＲＡＭ１３，２３，及び局部ＳＡＲＡＭ１４，２４を一緒に結合する。メモリバスＭ１，Ｍ２はメモリバス多重化装置１６、２６を対応する副システムの揮発性メモリ装置１３、１４、２３、２４、１３２の各々に結合する。メモリバスはまた周辺装置１５、２５に結合される。
【００１６】
周辺装置１５、２５は好ましくはそれぞれ１つまたは複数の多チャネル直列インタフェースを含む。多チャネル直列インタフェースは高速、全２重（full-duplex), ２重バッファ（double-buffered)直列通信を提供する。これらのポートの構成は好ましくは現存の直列プロトコールに直接接続できるように関連する処理装置コアによりプログラム可能である。各直列インタフェース１５、２５は１２８チャネルまでの多チャネル送信と受信を支持する。多チャネル直列ポートは多チャネルが可能なとき時分割多重化、多重化分解（de-multiplexing)を実行する。送信されるまたは受信される各データフレームは時分割多重化（ＴＤＭ）データの流れを表し、１つのチャネルの内容が他のチャネルの内容に交互に挿入される。
【００１７】
メモリバス多重化装置１６、２６とメモリバス判定器１７、２７は各々ＤＭＡデータ制御装置１８，２８，ＨＰＩユニット１９、２９の全てに結合される。自局ＤＭＡ制御装置１８、自局ＨＰＩユニット１９、遠隔ＤＭＡ制御装置２８、及び遠隔ＨＰＩユニット２９は各々メモリバス多重化装置１６を介してメモリバスＭ１を制御して周辺装置１５、ＳＡＲＡＭ１４，ＤＡＲＡＭ１３、及びＰＲＡＭ１３２を制御することができる。同様に、それらの各々はメモリバス多重化装置２６を介してメモリバスＭ２を制御して周辺装置２５、ＳＡＲＡＭ２４，ＤＡＲＡＭ２３，及びＰＲＡＭ１３２にアクセスできる。従って、ＤＭＡ制御装置の各々はＨＰＩユニットの各々がそうであるように全体的アクセスをもつ。メモリバスＭ１に対するアクセスについての自局ＤＭＡ制御装置、自局ＨＰＩユニット、及び遠隔副システムの間の判定は判定器１７により行い、ついで判定器は判定の結果に応じてメモリバス多重化装置１６をセットする。多重化装置２６と判定器２７はメモリバスＭ２を介したアクセスについて同様に作動する。
【００１８】
各ＤＭＡ制御装置１８、２８はデータと命令を対応するメモリバスＭ１，Ｍ２を介して自局周辺装置及びデータ格納装置にまたはそれから、また共用ＰＲＡＭ１３２に移動する。各ＤＭＡ制御装置１８、２８はまた遠隔メモリバスを介してデータを遠隔周辺装置及びデータ格納装置にまたはそれから移動する。最後に、各ＤＭＡ制御装置はデータを外部Ｉ／ＯバスＸＤ１，ＸＤ２，及びＸＰＯＲＴを介して外部資源（sources)から移動できる。この転送は処理装置コアによる開始を含み異なる方法で開始できるが、転送はその後“裏側において”すなわち処理装置コアによる積極的監視及び制御無しに実行される。各ＤＭＡ制御装置は好ましくは多数のブロックの転送を独立かつ同時に処理するため多数の“チャネル”を設ける。ＤＭＡの転送は、最初データをＤＭＡ制御装置の内部メモリに読込み、ついでそのデータをＤＭＡ制御装置のメモリから望ましい目的物に書込むことにより完成する。処理装置コアメモリのアクセスがＤＭＡ制御装置のアクセスと抵触するときは、好ましくはＤＭＡ制御装置のアクセスに高い優先度が与えられる。
【００１９】
ＨＰＩユニット１９、２９は外部ホスト処理装置がメモリバスＭ１，Ｍ２を介して全ての内部メモリにアクセスすることを許容する。全体のシステム設計を簡単にするため、ホスト処理装置インタフェース１９、２９はメモリインタフェースと同様に設計される。すなわち、ホスト処理装置はＤＳＰ装置１００や多くの処理装置コアレジスタの内部のメモリ位置の内容を、希望する位置のアドレスをＨＰＩユニット１９、２９に送ることによって、知ることが出来る。そこで、ＨＰＩユニット１９、２９の１つは希望する情報を検索して、その情報を、メモリ装置におけると同じ方法でデータとして与える。ＨＰＩユニット１９、２９は同様にデータを希望の位置に格納できる。処理装置により実行されるべきソフトウエアはこのようにしてホスト処理装置により与えられる。すなわち、ホスト処理装置はソフトウエアをＨＰＩユニット１９、２９を介して共用ＰＲＡＭ１３２に書き込む。ＨＰＩユニット１９、２９は好ましくはホスト処理装置に対して補助ユニット（slave unit) として動作するが、もしメモリバスＭ１，Ｍ２が他の仕事を実行しておれば、そのアクセスの間ホスト処理装置を停止させる信号をホスト処理装置に発生する。
【００２０】
次に図２を参照すると、処理装置コア１１、２１は各々同一のモジュールを含む。好ましい実施例において、処理装置コア１１はバスインタフェースモジュール３１、命令フェッチモジュール３２、分岐アドレス発生器モジュール３３、命令復号器モジュール３４、実行モジュール３５、メモリ転送モジュール３６、レジスタ書込モジュール３７、レジスタモジュール３８、及びキャッシュモジュール３９を含む。バスインタフェースモジュール３１は命令とデータを命令バスＰ１とデータバスＤ１を介してメモリ装置１２、１３、１４、１３２へ転送、またはそれからの転送を実行する。バスインタフェースモジュール３１は命令を与えるため命令フェッチモジュール３２に、データを与えるためメモリ転送モジュール３６に、また一時格納のためキャッシュ３９に結合される。
【００２１】
モジュール３２−３８は各段階が命令実行処理の１部分を形成するパイプライン構造を形成する。命令フェッチモジュール３２は命令の“事前取り込み”を実行して、命令バス上の命令の検索による遅延を最小にする。すなわち、パイプラインの他の段階が現在の命令を実行している間に命令フェッチモジュール３２はパイプラインで実行される次の命令を取り込む。
【００２２】
分岐アドレス発生器モジュール３３はモジュール３２により取り込まれる次の命令のアドレスを発生する。標準の命令ポインタレジスタ増分回路（instruction pointer register increment circuit) に加えて、分岐アドレス発生器モジュール３３は好ましくは分岐命令検出回路と分岐予想回路を含む。分岐命令検出回路は命令フェッチモジュール３２により取り込まれる命令を監視して、取り込まれた命令が分岐命令であるとき検出する。分岐予想回路は条件付き分岐命令が分岐をトリガするか否かを予想する。もし分岐アドレス発生器モジュール３３が無条件分岐を検出するか条件付き分岐が起こることを予想するときに、分岐アドレス発生器は命令フェッチモジュール３２が目標命令に飛び越すようにさせる。さもなくば、分岐アドレス発生器モジュール３３は命令フェッチモジュール３２が単に次の命令を取り込むようにする。
【００２３】
命令復号器モジュール３４は命令“オプコード（opcode) ”を実行モジュール３５の特定部分を起動するハードウエア信号に変換して、その特定部分にオペランド値を与える。オペランド値は命令により検索されるリテラル値、あるいはレジスタ３８の１つに格納されるレジスタ値である。
【００２４】
実行モジュール３５は復号器モジュール３４から受け取った信号及びオペランドに従って数的及び論理的演算を行うハードウエアを含む。そのような演算には例えば加算、減算、乗算、反転、論理ＡＮＤ，論理ＯＲ，論理ＸＯＲ，及び論理ＮＯＴを含む。好ましくは、実行モジュールは固定小数点と浮動小数点の両者の演算が可能なハードウエアを含むことが望ましい。
【００２５】
実行モジュール３５からの結果はメモリ転送モジュール３６が受け取る。メモリ転送モジュール３６はメモリに格納のためその結果をバスインタフェースモジュール３１に送ることもでき、またはレジスタ３８に格納のためレジスタ書込モジュール３７に与えることもできる。加えて、メモリ転送モジュール３６はその結果をメモリからデータを検索するためのアドレスとして用いることもできる。その場合、メモリ転送モジュール３６はバスインタフェース３１を介してメモリの読取演算を行い、読取データをレジスタ書込モジュール３７に与える。
【００２６】
レジスタ書込モジュール３７はレジスタ３８に情報を格納するように作動する。前述のようにモジュール３２により取り込まれた命令は分岐予想に基づいて検索されるが、必然的にそれらのある予想は誤りかもしれない。従って、そのように実行された命令に基づいてレジスタ３８を更新するのは適当でない。従って、レジスタ書込モジュール３７は書込動作を実行する前にレジスタ３８を更新すべきかを決定する。復号器３４と実行ユニット３５が順序外の命令の実行を支持するときは、もしレジスタの更新の正しい順序を確保することが必要であれば書込モジュール３７は書込動作の順序替え（re-ordering)を行う。レジスタモジュール３８は単に中間演算値を格納するのに使用される１組の処理装置レジスタである。
【００２７】
キャッシュ３９はバスインタフェース３１と協同して命令フェッチモジュール３２からの命令の要求及び好ましくはメモリ転送モジュール３６からのデータの要求に応じる。キャッシュの誤りが発生したときは、バスインタフェース３１は隣接のメモリ位置から好ましい情報を検索する。追加の情報は、それがその後で必要になるという大きな確率が存在するので、一時的にキャッシュ３９に格納される。もし追加の情報がそのとき必要であれば（キャッシュヒット）そのときは、さもなくば必要であろう時間より少ない時間でその要求に応じることができる。
【００２８】
上述の処理装置の構造は説明の目的でなされたもので、決して限定するものでない。ＤＳＰ装置１００の機能的照合や装置で実行されるソフトウエアのデバッグは試験ポート１３１やエミュレーション論理１４１の導入により容易に実行できる。試験ポート１３１は好ましくはジョイント・テスト・アクセス・グループ（Joint Test Access Group)(JTAG)仕様に従っており、従って好ましくは装置の回りや特に関係のあるモジュールを通して分布される多数の走査チェーンへの直列アクセス（seial access to multiple scan chains) を設ける。走査チェーンは関係の情報を掴まえてその情報を直列にチップ外に転送されるようにする。走査チェーンはまたチップ外から新しい値を直列に受け取ることにより関係の情報を変更するのに使用される。
【００２９】
エミュレーション論理１４１の各種実施例とその試験ポート１３１との接続は米国特許第５，５３５，３３１号及びその関連特許に記載されている。これら特許の内容を参照として本明細書に組み入れる。エミュレーション論理１４１は処理装置によるソフトウエアの実行を監視するため処理装置に結合される。図２において、エミュレーション論理は実行モジュール３５に与えられる命令やオペランド値を監視するため復号器モジュール３４に結合されるように示される。しかし、エミュレーション論理はそれに加えて、またはそれに代えて分岐アドレス発生器モジュール３３に結合して何れのプログラム分岐が取られるかを監視したり、レジスタモジュール３８に結合してレジスタ値を監視してもよい。
【００３０】
監視は論理１４１の環状バッファに検出されたアクティビティ（activity)を格納して実行される。環状バッファはそこで走査チェーンによりアクセスされる。監視はまた必要のとき処理装置を停止して、関係のモジュールから走査チェーン値を検索して実行することもできる。何れの場合も、エミュレーション論理１４１は信号ＴＢＳＵＳＰＥＮＤを宣言して（assert) その情報が検索されている間処理装置を停止する。図２において、ＴＢＳＵＳＰＥＮＤの信号はバスインタフェースに直接結合されるように示されているが、クロック分布樹（clock distribution tree)（特別に図示はしない）に結合して処理装置クロックを停止するようにしてもよい。ＴＢＳＵＳＰＥＮＤ信号の宣言を検出すると、バスインタフェース３１は好ましくは直ちに停止せず、むしろそのとき係属中の書込処理を完了して停止するのが望ましい。
【００３１】
監視に加えて、エミュレーション論理１４１は積極的に機能試験を行う。エミュレーション論理１４１は基本的に命令を直接復号器モジュール３４に書込む。命令は直接処理装置パイプラインを試験するのに使用できる。しかし、全“速度”試験を可能にするには、この直接書込はそれ自体適当でない。しかし、それを間接的に使用して共用プログラムメモリ１３２に１組の命令を書込むように復号器をプログラムし、処理装置に１組の命令に加えて無条件分岐命令を与えることができる。そのとき、ＴＢＳＵＳＰＥＮＤ信号は宣言されず処理装置は全速度で試験命令を実行する。
【００３２】
その結果、処理装置が共用プログラムメモリ１３２に書込むのを許容するのが好ましい状態が存在する。しかし通常の状態においては、そのような書込は出来ないのが望ましい。従って、命令バスＰ１，Ｐ２の書込／読取信号は、処理装置がエミュレーションモードのとき、すなわちＴＢＳＵＳＰＥＮＤ信号が確認されないときのみ、書込信号の転送が許される。
【００３３】
この目的のため、好ましくは図３の論理ゲート５１がバスインタフェース３１に含まれる。論理ゲートは要求される読出／書込作動信号及びＴＢＳＵＳＰＥＮＤ信号に応答して命令バスに読出／書込信号を生じる。論理ゲート５１の好ましい実施例は論理ＯＲゲートであるが、他の論理ゲートもそれに代えて用いられる。ＴＢＳＵＳＰＥＮＤ信号が宣言されないとき、すなわち処理装置が通常状態で作動しているとき、論理ゲート５１の出力は高レベルに保持される。従って、この状態において読出／書込信号は読出状態に保持される。ＴＢＳＵＳＰＥＮＤ信号が宣言されるとき、命令バスの読出／書込信号は要求される読出／書込動作信号を反映するであろう。
【００３４】
上記記載は本発明の原理及び各種実施例を説明するものである。上記開示を充分に理解されるなら、多数の変形、修正が当業者には明らかであろう。添付の請求項はそのような変形と修正を全て含むことを意図する。
【００３５】
以上の説明に関して更に以下の項を開示する。
（１）共用プログラムメモリ、
前記共用プログラムメモリに結合されて、前記共用プログラムメモリに格納されている命令に同時にアクセスする複数の処理装置副システム、
を含み、前記共用プログラムメモリが少なくとも前記処理装置副システムの１つから条件的に書込を防止される、デジタル信号処理システム。
（２）前記プログラムメモリと前記複数の処理装置副システムが単一のチップに作られている、（１）記載のデジタル信号処理システム。
（３）前記処理装置副システムが通常の動作モードにある間、該処理装置副システムが前記共用プログラムメモリへの如何なる書込も防止される、（１）記載のデジタル信号処理システム。
（４）前記処理装置副システムがエミュレーションモードにある間、該処理装置副システムが前記共用プログラムメモリへの情報の書込を許容される、（１）記載のデジタル信号処理システム。
（５）前記複数の処理装置副システムの各々が
処理装置コア、及び
前記処理装置コアを前記共用プログラムメモリに結合する命令バス、
を含む、（１）記載のデジタル信号処理システム。
（６）前記処理装置コアの各々が、前記共用プログラムメモリに格納されている命令にアクセスするため関連する命令バスに結合されるバスインタフェースモジュールを含む、（５）記載のデジタル信号処理システム。
（７）前記処理装置コアがエミュレーションモードで作動しているときのみ該処理装置コアが前記共用プログラムメモリに書込動作を実行するのを許容するように、前記バスインタフェースモジュールが構成されている、（６）記載のデジタル信号処理システム。
（８）前記処理装置コアが通常の動作モードにある間は該処理装置コアが前記共用プログラムメモリへの如何なる書込からも防止されるように、前記バスインタフェースモジュールが構成されている、（６）記載のデジタル信号処理システム。
（９）前記処理装置がエミュレーションモードにある間は前記処理装置コアが前記共用プログラムメモリへ情報を書込むのを許容するように、前記バスインタフェースモジュールが更に構成されている、（９）記載のデジタル信号処理システム。
（１０）前記バスインタフェースは、前記処理装置コアがエミュレーションモードにあることを示す信号を、それが宣言されたとき受け取るようになった（９）記載のデジタル信号処理システム。
（１１）前記信号の非宣言は、前記バスインタフェースモジュールが前記命令バスの書込／読出信号を読出状態に保持するようにし、前記信号の宣言は前記バスインタフェースモジュールが前記命令バスの書込／読出信号を、前記処理装置コアにより要求される共用プログラムメモリアクセス動作に従って保持するようにした、（１０）記載のデジタル信号処理システム。
（１２）前記処理装置副システムの各々が更に、
前記処理装置コアに前記命令バスとは区別されるデータバスを介して結合されるデータメモリを含み、前記処理装置コアが前記命令バスを介して受け取るプログラム命令に従って前記データメモリからのデータに作動するように構成されている、（５）記載のデジタル信号処理システム。
（１３）前記処理装置副システムが各々、
直接メモリアクセス（ＤＭＡ）制御器、及び
前記ＤＭＡ制御器を前記データメモリ及び前記共用プログラムメモリに結合するメモリバス、
を含み、前記メモリバスが前記命令バス及び前記データバスから区別される、（１２）記載のデジタル信号処理システム。
（１４）前記プログラムメモリが各クロックサイクルにおいて前記命令バスを介して受け取る多数の命令要求に応じるように構成さる、（５）記載のデジタル信号処理システム。
（１５）前記処理装置コアが、前記共用プログラムメモリに格納されている単一のプログラムからの異なる命令を同時に実行するように構成され、プログラム命令が前記プログラムコアにより実行される順序は前記処理装置コアが作動するデータに依存する、（１４）記載のデジタル信号処理システム。
【００３６】
（１６）条件付きで書込の防止される共用プログラムメモリ（１３２）をもった多数コアデジタル信号処理装置が開示される。１実施例において、デジタル信号処理装置は共用プログラムメモリ（１３２）、エミュレーション論理モジュール（１４１）、及び多数の処理装置コア（１１，２１）を含み、前記多数の処理装置コアの各々は対応する命令バス（Ｐ１，Ｐ２）により前記共用プログラムメモリ（１３２）に結合されている。前記エミュレーション論理モジュール（１４１）は好ましくは前記処理装置の各々の作動モード、例えばそれらが通常モードにあるか、エミュレーションモードにあるかを決める。前記エミュレーションモードにおいては、前記エミュレーション論理は各種処理装置のハードウエアの状態と各種レジスタとメモリの内容を変更できる。命令バス（Ｐ１，Ｐ２）の各々は書込／読出信号を含み、対応する処理装置コア（１１、２１）が通常モードにあるとき前記信号は読出し状態に保持される。一方、前記処理装置コア（１１、２１）がエミュレーションモードにあるときは、前記処理装置コア（１１、２１）は前記命令バスの書込／読出信号の状態を決めることが許容される。各命令バスの書込／読出信号は好ましくは論理ゲートにより発生され、前記論理ゲートは通常状態においては前記処理装置コアが前記書込／読出信号に影響することを防止するが、エミュレーションモードにおいては、前記処理装置コアが前記書込／読出信号を決めることを許容する。このようにして、前記論理ゲートは前記エミュレーション論理（１４１）がエミュレーションモードを示す信号を宣言しないときは共用プログラムメモリ（１３２）への書込動作を防止し、エミュレーション論理（１４１）がエミュレーションモードを示す信号を宣言するときは前記共用プログラムメモリへの書込動作を許す。前記論理ゲートは好ましくは各処理装置コア（１１、２１）のインタフェースモジュール（３１）に含まれる。
【図面の簡単な説明】
【図１】共用プログラムメモリをもったＤＳＰ装置を示す図面。
【図２】多数処理装置コアを共用プログラムメモリ及びエミュレーション論理に結合する好ましい構造を示す図面。
【図３】条件付き書込防止論理の実施例を示す図面。
【符号の説明】
１００  ＤＳＰチップ
１３２  共用プログラムメモリ
１１０、１２０  副スステム
Ｐ１，Ｐ２  命令バス
Ｄ１，Ｄ２  データバス
Ｍ１，Ｍ２  メモリバス
ＸＣ１，ＸＣ２  処理装置コア外部Ｉ／Ｏバス
ＸＤ１，ＸＤ２  ＤＭＡ外部Ｉ／Ｏバス
１１、２１  処理装置コア
【図１】
0003936175.tif 000002
【図２】
0003936175.tif 000003
【図３】
0003936175.tif 000004