JP2004046896A - 複合演算処理装置 - Google Patents

複合演算処理装置 Download PDF

Info

Publication number
JP2004046896A
JP2004046896A JP2003320945A JP2003320945A JP2004046896A JP 2004046896 A JP2004046896 A JP 2004046896A JP 2003320945 A JP2003320945 A JP 2003320945A JP 2003320945 A JP2003320945 A JP 2003320945A JP 2004046896 A JP2004046896 A JP 2004046896A
Authority
JP
Japan
Prior art keywords
arithmetic processing
shared
access
unit
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003320945A
Other languages
English (en)
Other versions
JP3710798B2 (ja
Inventor
Kazutoshi Funahashi
舟橋 和年
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003320945A priority Critical patent/JP3710798B2/ja
Publication of JP2004046896A publication Critical patent/JP2004046896A/ja
Application granted granted Critical
Publication of JP3710798B2 publication Critical patent/JP3710798B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

【課題】 従来まで複数の演算処理部が必要であった複雑な処理を必要とする演算処理を、効率よく、安価なシステムで実現する。
【解決手段】 演算処理の特徴が異なる第1および第2の独立した演算処理部110,111に、共有データメモリ102、共有汎用レジスタ109および共有外部入出力部113〜115を接続し、第1および第2のアクセス手段を設けて共有データメモリ102、共有汎用レジスタ109および共有外部入出力部113〜115を第1および第2の演算処理部110,111からアクセスする。また、第1の演算処理部110に第2の演算処理部111に対して割り込みを発生する割り込み手段を設け、第2の演算処理部111に割り込みによる演算処理の終了を第1の演算処理部110に知らせるための演算処理終了設定手段を設ける。
【選択図】    図1

Description

 この発明は、例えば演算処理の特徴が異なる(同じ場合もある)複数の独立した演算装置を備えた複合演算処理装置に関するもので、複合演算処理装置に対する命令が可変のプログラムによって導き出され、順番に実行される複合演算処理装置に応用される。
 従来の複合演算処理装置では、複数の独立した演算処理装置に対し、各演算処理装置に対応した複数のメモリおよび複数の汎用レジスタを有し、第1の演算処理装置から第2の演算処理装置に対して演算処理の依頼をする場合、
 (1)複数の独立した演算処理装置の外部にある共有メモリを介する方法、
 (2)シリアル/パラレル等のデータの入出力部を使用する方法
により、処理依頼の内容および処理依頼するデータを転送していた。これらの従来技術では、全体の処理速度、演算処理のリアルタイム性が失われてしまう。
 また、ある全体の処理を複数の演算処理装置に分割する場合、この分割の優劣が、全体性能を大きく左右してしまう。しかも、この処理全体の分割を行う作業は、極めて特殊な知識、技術を必要とする。
特開昭63−3350号公報
 従来の技術での、演算処理性能を高めるために複数の独立した演算処理装置を利用する方法では、
 (1)主演算処理装置および従演算処理装置があり、従演算処理装置は主演算処理装置からの命令依頼を受けて動作する方法、
 (2)演算処理を複数のブロックに分割し、各々の演算処理装置に各々のブロックを分担し、同時に別々の処理ブロックを実行する方法の2種類がある。
 (1)の場合では、従演算処理装置が実動作しない時間が長く、効率が悪かった(課題1)。
 (2)の場合では、命令の同時実行が行われ、効率は良いが、処理の内容によっては、上記したような分割が極めて困難な場合もあり、分割された各ブロックが相互に密に依存している場合もある。このような処理を(2)で実行すると、各々の演算処理装置の間で、データの送受信が頻度高く発生する。このような各演算処理装置の間でのデータの送受信は、頻度が高くなればなるほど、またデータ量が多くなればなるほど、全体の処理速度は低下する(課題2)。
 従来の複数の独立した演算処理装置の内部は、各々単体でも演算処理可能となるよう設計されており、複数の独立した演算処理装置全体のシステムでみた場合、不用な部分、冗長な部分が存在し、システム全体のコストを上げていた(課題3)。
 この発明の目的は、上記の問題を解決し、演算処理を効率よく安価に実行することができる複合演算処理装置を提供することである。
 上記課題を解決するために、本発明の複合演算処理装置は、演算処理の特徴が異なる第1および第2の独立した演算処理部と、二つのポートを有し第1および第2の演算処理部に接続された共有メモリと、二つのポートを有し第1および第2の演算処理部に接続された共有汎用レジスタと、共有メモリおよび共有汎用レジスタを第1および第2の演算処理部からアクセスするための第1および第2のアクセス手段と、第1の演算処理部に設けられて第2の演算処理部に対して割り込みを発生する割り込み手段と、第2の演算処理部に設けられて割り込みによる演算処理の終了を第1の演算処理部に知らせるための演算処理終了設定手段とを備えている。
 第1の演算処理部は、演算処理の過程で第2の演算処理部での処理の方が適している演算が発生した時、割り込み手段により第2の演算処理部に対して演算処理の依頼を割り込みとして発生し、演算処理に必要なデータを引き数として共有汎用レジスタおよび共有メモリに格納するようにしている。
 第2の演算処理部は、依頼された演算処理を引き数を用いて実行し、演算結果のデータを帰り数として共有汎用レジスタおよび共有メモリに格納し、演算処理終了設定手段により第1の演算処理部に演算処理終了情報を設定するようにしている。
 上記構成においては、共有メモリが書き換え可能な領域を有し、第1および第2の演算処理部からのアクセスの許可/禁止情報を共有メモリおよび共有汎用レジスタの一定範囲毎にそれぞれ設定するアクセス許可/禁止情報設定手段を設け、第1および第2の演算処理部からのアクセス状況を共有メモリの一定範囲毎に第2および第1の演算処理部へ伝達するためのアクセス状況設定手段を設けてもよい。
 この際、複数のアクセス手段は、アクセス許可/禁止情報設定手段の設定内容を参照しながらアクセスが許可されている範囲についてのみ共有メモリおよび共有汎用レジスタのアクセスを行うとともに、アクセス状況設定手段の設定内容を参照しながら共有メモリの書き換え可能な領域のアクセスを行うようにしている。
 また、第1の演算処理部は、第2の演算処理部に対し演算の依頼をした場合に、引き数を共有汎用レジスタおよび共有メモリに設定した時に引き数の設定を完了したことをアクセス状況設定手段により設定するとともに、共有汎用レジスタおよび共有メモリのうち引き数を保持した領域の許可/禁止情報をアクセス許可/禁止情報設定手段により逆転させるようにしている。
 さらに、第2の演算処理部は、依頼された演算処理を完了した場合に帰り数を共有汎用レジスタおよび共有メモリに設定した時に帰り数の設定を完了したことをアクセス状況設定手段により設定するとともに、共有汎用レジスタおよび共有メモリのうち帰り数を保持した領域の許可/禁止情報をアクセス許可/禁止情報設定手段により逆転させるようにしている。
 この構成によれば、第1の演算処理部におけるある処理ブロック内の過程で、第2の演算処理部に適した処理が発生した時、他の演算処理部に対する割り込みという形で演算の依頼を行い、依頼した演算が第2の演算処理部で終了するまで、他の処理を実行することができる。依頼した演算処理の演算結果は、共有メモリおよび共有汎用レジスタ内に保持され、演算処理終了情報が設定されるので、第1の演算処理部は、必要な時に、演算処理終了情報を確認し、演算結果を読みとれば良い。第2の演算処理部も、依頼された処理は割り込み内で処理され、依頼された演算処理の終了時、演算結果と演算処理終了情報を設定して主演算処理に戻れば良い。この時、この依頼された演算処理は、割り込み内で処理されるので、割り込み演算処理の初期部に、主演算処理部で使用する共用メモリおよび共用汎用レジスタを待避させる処理を組み込めば、主演算処理に影響を与えることなく、独立して依頼された演算処理を実行できる。
 本発明の複合演算処理装置によれば、複数の独立した演算処理部で分割された各処理ブロックを同時に処理し、かつ、きわめて依存度の高い複数の各処理ブロックを処理する複数の独立した演算処理部の間の送受信を、共有したメモリおよび共有汎用レジスタを使用することにより、実際のデータの転送を実行することなく行うことができるので、従来まで複数の演算処理部が必要であった複雑な処理を必要とする演算処理を、効率よく、安価なシステムで実現できる。つまり、効率の良いハードウエアで効率の良いソフトウエアを作成することができる。
 また、この複合演算処理装置によれば、第1の演算処理部におけるある処理ブロック内の過程で、第2の演算処理部に適した処理が発生した時、他の演算処理部に対する割り込みという形で演算の依頼を行い、依頼した演算が第2の演算処理部で終了するまで、他の処理を実行することができ、依頼した演算処理の演算結果は、共有メモリおよび共有汎用レジスタ内に保持され、演算処理終了情報が設定される。そのため、第1の演算処理部は、必要な時に、演算処理終了情報を確認し、演算結果を読みとれば良く、第2の演算処理部も、依頼された処理は割り込み内で処理され、依頼された演算処理の終了時、演算結果と演算処理終了情報を設定して主演算処理に戻れば良いので、従来まで複数の演算処理部が必要であった複雑な処理を必要とする演算処理を、効率よく、安価なシステムで実現できる。つまり、効率の良いハードウエアで効率の良いソフトウエアを作成することができる。
 以下、本発明の実施の形態を、図面を参照しながら説明する。
 この発明の複合演算処理装置の一実施例として、独立した16ビットの演算処理装置(以下、マイクロコントローラとする)と積和演算に特徴をもつ16ビットのデータ幅/32ビットの命令コード幅を持つ演算処理装置(以下、デジタルシグナルプロセッサとする)とからなる複合演算処理装置について説明する。
 図1は、この発明の実施例である共有メモリ(共有命令メモリおよび共有データメモリ)および共有汎用レジスタをもつ16ビットマイクロコントローラと16ビットのデータ幅/32ビットの命令コード幅を持つデジタルシグナルプロセッサとからなる複合演算処理装置のブロック図である。
 図1において、101はデジタルシグナルプロセッサおよびマイクロコントローラの共有命令メモリであり、複数のポートを有している。
 102はデジタルシグナルプロセッサおよびマイクロコントローラの共有データメモリであり、複数のポートを有している。
 103はデジタルシグナルプロセッサだけにアクセスが許されるローカルデータメモリである。
 104はマイクロコントローラ用の共有命令メモリポインタである。
 105はデジタルシグナルプロセッサ用の共有命令メモリポインタである。
 106はマイクロコントローラ用の共有データメモリポインタである。
 107はデジタルシグナルプロセッサ用の共有データメモリポインタである。
 108はデジタルシグナルプロセッサ用のローカルデータメモリポインタである。
 109はデジタルシグナルプロセッサおよびマイクロコントローラの共有汎用レジスタであり、複数のポートを有している。
 110はマイクロコントローラ用の演算処理部である。
 111はデジタルシグナルプロセッサ用の演算処理部である。
 112はデジタルシグナルプロセッサ用の乗算部である。
 113,114および115はマイクロコントローラおよびデジタルシグナルプロセッサの共有外部入出力部(共有周辺入出力部)である。
 116はマイクロコントローラ用の命令コードアドレスバス(共有命令メモリアドレスバス)である。
 117はデジタルシグナルプロセッサ用の命令コードアドレスバス(共有命令メモリアドレスバス)である。
 118はマイクロコントローラ用の命令コードデータバス(共有命令メモリデータバス)である。
 119はデジタルシグナルプロセッサ用の命令コードデータバス(共有命令メモリデータバス)である。
 120はマイクロコントローラ用の共有データメモリデータバスである。
 121はデジタルシグナルプロセッサ用の共有データメモリデータバスである。
 122はデジタルシグナルプロセッサ用のローカルデータメモリデータバスである。
 123はマイクロコントローラ用の命令解読部である。
 124はデジタルシグナルプロセッサ用の命令解読部である。
 図2に共有命令メモリ101の構造を示す。図2において、201および202は命令メモリ領域で、16ビット×Nの2面構造であり、複数のポートを有している。
 203はマイクロコントローラ用の命令メモリ管理部(特許請求の範囲におけるアクセス手段を構成する)である。
 204はデジタルシグナルプロセッサ用の命令メモリ管理部(特許請求の範囲におけるアクセス手段を構成する)である。
 205はマイクロコントローラ用の命令メモリ最大アドレス値設定レジスタである。
 206はデジタルシグナルプロセッサ用の命令メモリ最小アドレス値設定レジスタである。
 207はマイクロコントローラ用の現在のアドレス値と命令メモリ最大アドレス値設定レジスタ205の設定値とを比較する比較部である。
 208はデジタルシグナルプロセッサ用の現在のアドレス値と命令メモリ最小アドレス値設定レジスタ206の設定値とを比較する比較部である。
 209はマイクロコントローラ用の命令コードアドレスバスである。
 210はデジタルシグナルプロセッサ用の命令コードアドレスバスである。
 211はマイクロコントローラ用の命令コードデータバスである。
 212はデジタルシグナルプロセッサ用の命令コードデータバスである。
 図3に書き換え可能な共有データメモリ102の構造を示す。図3において、301,302,303,304は書き換え可能なデータメモリ領域で、各々16ビット×N(Nは2のべき数が望ましい)ワードのセグメント単位の領域で、多面構造であり、複数のポートを有している。
 305はマイクロコントローラ用のデータメモリ管理部(特許請求の範囲におけるアクセス手段を構成する)である。
 306はデジタルシグナルプロセッサ用のデータメモリ管理部(特許請求の範囲におけるアクセス手段を構成する)である。
 307は共有データメモリセグメント単位選択値設定レジスタである。
 308はマイクロコントローラ用の現在のアドレス値と共有データメモリセグメント単位選択値設定レジスタ307のセグメント選択値とを比較する比較部である。
 309はデジタルシグナルプロセッサ用の現在のアドレス値と共有データメモリセグメント単位選択値設定レジスタ307のセグメント選択値とを比較する比較部である。
 310は共有データメモリアクセス状況フラグレジスタ(特許請求の範囲におけるアクセス状況通知手段を構成する)である。
 311はマイクロコントローラ用の共有データメモリデータバスである。
 312はデジタルシグナルプロセッサ用の共有データメモリデータバスである。
 313はマイクロコントローラ用の共有データメモリアドレスバスである。
 314はデジタルシグナルプロセッサ用の共有データメモリアドレスバスである。
 315はマイクロコントローラ用の共有データメモリ書き込み信号である。
 316はマイクロコントローラ用の共有データメモリ読み出し信号である。
 317はデジタルシグナルプロセッサ用の共有データメモリ書き込み信号である。
 318はデジタルシグナルプロセッサ用の共有データメモリ読み出し信号である。
 図4に共有汎用レジスタ109の構造を示す。図4において、401,402,403〜40Nは汎用レジスタで、16ビット×N(Nは2のべき数が望ましい)ワードの構成であり、複数のポートを有している。
 410はマイクロコントローラ用のレジスタ選択部である。
 411はデジタルシグナルプロセッサ用のレジスタ選択部である。
 412は共有汎用レジスタ109のアクセス許可/禁止情報設定レジスタ(特許請求の範囲におけるアクセス許可/禁止設定手段を構成する)で、各々の汎用レジスタ401,402,403〜40Nがマイクロコントローラもしくはデジタルシグナルプロセッサからアクセス可能かどうかを設定するレジスタである。
 413はマイクロコントローラ用の共有データメモリデータバスである。
 414はデジタルシグナルプロセッサ用の共有データメモリデータバスである。
 415はマイクロコントローラ用の共有データメモリアドレスバスである。
 418はデジタルシグナルプロセッサ用の共有データメモリアドレスバスである。
 416はマイクロコントローラ用の共有データメモリ書き込み信号である。
 417はマイクロコントローラ用の共有データメモリ読み出し信号である。
 419はデジタルシグナルプロセッサ用の共有データメモリ書き込み信号である。
 420はデジタルシグナルプロセッサ用の共有データメモリ読み出し信号である。
 421は対応する汎用レジスタ401,402,403〜40Nがアクセスされたかどうかを示すフラグレジスタである。図5に共有外部入出力部113〜115の構成を示す。
 図5において、501は出力データバッファである。
 502は入力データバッファである。
 503は外部入出力制御部(特許請求の範囲におけるアクセス手段を構成する)である。
 504は共有外部入出力部113〜115の状態を示す状態保持部である。
 505は共有外部入出力部113〜115のマイクロコントローラおよびデジタルシグナルプロセッサからのアクセス許可/禁止情報を設定するアクセス許可/禁止情報設定レジスタ(特許請求の範囲におけるアクセス許可/禁止設定手段を構成する)である。
 506は共有外部入出力部113〜115の状態により演算処理装置に対し割り込みを発生させる割り込み信号発生部(特許請求の範囲における割り込み信号発生部を構成する)である。
 507は外部入出力端子である。
 510はマイクロコントローラの共有データメモリデータバスである。
 511はデジタルシグナルプロセッサの共有データメモリデータバスである。
 512はマイクロコントローラに対する共有外部入出力部割り込み信号である。
 513はデジタルシグナルプロセッサに対する共有外部入出力部割り込み信号である。
 514は出力データバッファ501から外部入出力端子507への出力データバスである。
 515は外部入出力端子507から入力データバッファ502への入力データバスである。
 516はマイクロコントローラからの共有外部入出力部選択信号である。
 517はデジタルシグナルプロセッサからの共有外部入出力選択信号である。
 518は外部入出力信号である。
 以下に、マイクロコントローラおよびデジタルシグナルプロセッサの動作について詳しく説明する。
 マイクロコントローラ:
 まず、マイクロコントローラの命令は、そのアドレスが、図1の共有命令メモリポインタ104から、命令コードアドレスバス116、図2の命令コードアドレスバス209を通り、図2の命令メモリ管理部203に入る。命令メモリ管理部203では、命令コードアドレスバス209から入力されたアドレスが、命令メモリ最大アドレス値設定レジスタ205に保持されている命令メモリ最大アドレス設定値と比較し、設定値以内であれば、そのままのアドレスを共有命令メモタ101の命令メモリ領域201,202のアドレスとして出力する。設定値を超えるアドレスと判断した場合、それは、デジタルシグナルプロセッサに割り当てられた命令メモリ領域であり、プログラムの異常と判断し、異常終了処理を実行するアドレスに変換される。命令メモリ領域201,202では、アドレスに対応する命令コードを命令コードデータバス211に命令コードデータとして出力し、図1の命令コードデータバス118を通り、命令解読部123に入る。命令解読部123では、命令を解読し、命令に対応した処理を実行するように、対応する部位に命令を出力する。
 マイクロコントローラ側からみた場合、命令メモリ領域201,202は、命令メモリ領域201に偶数ワード、命令メモリ領域202に奇数ワードの構造になっており、命令コードアドレスバス209の最下位ビットが、命令メモリ領域201/202の選択ビットとなる。命令コードアドレスバス209に出力されるアドレスが、偶数の場合、命令メモリ領域201から対応する命令コードデータが、命令コードデータバス211に出力され、命令メモリ領域202の命令コードデータバス211側の出力は、高インピーダンス状態となる。一方、命令コードアドレスバス209に出力されるアドレスが、奇数の場合、命令メモリ領域201の命令コードデータバス211側の出力は、高インピーダンス状態となり、命令メモリ領域202から対応する命令コードデータが、命令コードデータバス211に出力される。
 つぎに、マイクロコントローラの共有データメモリ102へのアクセスは、そのアドレスが、図1の共有データメモリポインタ106、図3の共有データメモリアドレスバス313を通り、図3のデータメモリ管理部305に入る。データメモリ管理部305では、共有データメモリアドレスバス313から入力されたアドレスと、共有データメモリセグメント単位選択値設定レジスタ307に保持されている設定値とを比較部308で比較し、マイクロコントローラのアクセスが許可されたアドレスであれば、そのまま共有データメモリ102のデータメモリ領域301〜304のアドレスとして出力し、許可されていないアドレスであれば、共有データメモリ102のデータメモリ領域301〜304へのアドレスの出力を停止する。また、この時に禁止セグメントのアドレスをアクセスしようとしたことをフラグ等で知らせることも可能とする。共有データメモリ102のデータメモリ領域301〜304中の許可セグメントのアドレスを書き込みアクセスした際、当該セグメントの内容が変更されたことを通知するために、共有データメモリアクセス状況フラグレジスタ310のそのセグメントに対応するフラグをセットする。このフラグをデジタルシグナルプロセッサからも読み出すことを可能にすることにより、共有データメモリ102上の共有のデータ、およびデータの処理を制御できる。
 つまり、アクセス状況フラグをデジタルシグナルプロセッサからも読み出すことを可能にすることにより、共有データメモリ上の書き換えが実行されたセグメントを知ることができる。また、マイクロコントローラは、アクセスが許可された共有データメモリのセグメントをデジタルシグナルプロセッサに許可するようセグメント単位選択値設定レジスタの値を変更できる。これらの動作により共有データメモリ上の共有のデータおよびデータの処理を制御できる(データの受け渡しアクセスの許可禁止のシーケンスは図6参照)。
 アクセスが許可されたアドレスのデータは、データメモリ書き込み信号315およびデータメモリ読み出し信号316に従って書き込み処理、読み出し処理の各々の処理が適宜実行される。
 マイクロコントローラの共有汎用レジスタ109へのアクセスは、共有データメモリ102と同様であり、図4の共有データメモリアドレスバス415を通してレジスタ指定信号がレジスタ選択部410に入力される。レジスタ選択部410では、共有データメモリアドレスバス415を通ったレジスタ指定信号で指定される汎用レジスタ401〜40Nが、マイクロコントローラからのアクセスを許可しているかどうかを、アクセス許可/禁止情報設定レジスタ412の内容とで比較し、アクセス可能であれば指定する汎用レジスタ401〜40Nへのアクセス信号を出力する。許可されていない汎用レジスタ401〜40Nであれば、指定する汎用レジスタ401〜40Nへのアクセス信号の出力を停止する。また、この時に禁止汎用レジスタへアクセスしようとしたことをフラグ等で知らせることも可能とする。アクセス許可された汎用レジスタ401〜40Nは、データメモリ書き込み信号416およびデータメモリ読み出し信号417に従って書き込み処理、読み出し処理の各々の処理が適宜実行される。
 デジタルシグナルプロセッサ:
 まず、デジタルシグナルプロセッサの命令は、そのアドレスが、図1の共有命令メモリポインタ105から、命令コードアドレスバス117、図2の命令コードアドレスバス210を通り、図2の命令メモリ管理部204に入る。命令メモリ管理部204では、命令コードアドレスバス210から入力されたアドレスが、命令メモリ最小アドレス値設定レジスタ206に保持されている命令メモリ最小アドレス設定値と比較し、設定値以上であれば、そのままのアドレスを共有命令メモリ101の命令メモリ領域201,202のアドレスとして出力する。設定値以下のアドレスと判断した場合、それは、マイクロコントローラに割り当てられた命令領域であり、プログラムの異常と判断し、異常終了処理を実行するアドレスに変換される。命令メモリ201,202では、アドレスに対応する命令コードを命令コードデータバス212に命令コードデータとして出力し、図1の命令コードデータバス119を通り、命令解読部124に入る。命令解読部124では、命令を解読し、命令に対応した処理を実行するように、対応する部位に命令を出力する。
 デジタルシグナルプロセッサ側からみた場合、命令メモリ領域201,202は、命令メモリ領域201に下位ワード、命令メモリ領域202に上位ワードの構造になっており、命令コードアドレスバス209のアドレスデータの値に対応した命令コードデータが、命令メモリ領域201から16ビット、命令メモリ領域202から16ビットの合わせて32ビットの命令コードデータが命令コードデータバス212に出力される。
 つぎに、デジタルシグナルプロセッサの共有データメモリ102へのアクセスも、マイクロコントローラと同様に、そのアドレスが、図1の共有データメモリポインタ107、図3の共有データメモリアドレスバス314を通り、図3のデータメモリ管理部306に入る。データメモリ管理部306では、共有データメモリアドレスバス314から入力されたアドレスと、共有データメモリセグメント単位選択値設定レジスタ307に保持されている設定値とを比較部309で比較し、デジタルシグナルプロセッサのアクセスが許可されたアドレスであれば、そのままデータメモリ102のデータメモリ領域301〜304のアドレスとして出力し、許可されていないアドレスであれば、共有データメモリ102へのアドレスの出力を停止する。また、この時に禁止セグメントのアドレスをアクセスしようとしたことをフラグ等で知らせることも可能とする。共有データメモリ102のデータメモリ領域301〜304中の許可セグメントのアドレスを書き込みアクセスした際、当該セグメントの内容が変更されたことを通知するために、共有データメモリアクセス状況フラグレジスタ310のそのセグメントに対応するフラグをセットする。このフラグをマイクロコントローラ4からも読み出すことを可能にすることにより、共有データメモリ102上の共有のデータ、およびデータの処理を制御できる。
 つまり、アクセス状況フラグをデジタルシグナルプロセッサからも読み出すことを可能にすることにより、共有データメモリ上の書き換えが実行されたセグメントを知ることができる。また、マイクロコントローラは、アクセスが許可された共有データメモリのセグメントをデジタルシグナルプロセッサに許可するようセグメント単位選択値設定レジスタの値を変更できる。これらの動作により共有データメモリ上の共有のデータおよびデータの処理を制御できる(データの受け渡しアクセスの許可禁止のシーケンスは図6参照)。
 アクセス許可されたアドレスのデータは、データメモリ書き込み信号317およびデータメモリ読み出し信号318に従って書き込み処理、読み出し処理の各々の処理が実行される。
 デジタルシグナルプロセッサの共有汎用レジスタ109へのアクセスは、共有データメモリ102と同様に、図4の共有データメモリアドレスバス418を通してレジスタ指定信号がレジスタ選択部411に入力される。レジスタ選択部411では、共有データメモリアドレスバス418を通ったレジスタ指定信号418で指定されるレジスタが、デジタルシグナルプロセッサからのアクセスを許可しているかどうかを、アクセス許可/禁止情報設定レジスタ412の内容とで比較し、アクセス可能であれば指定する汎用レジスタ401〜40Nへのアクセス信号を出力する。許可されていない汎用レジスタ401〜40Nであれば、指定する汎用レジスタ401〜40Nへのアクセス信号の出力を停止する。また、この時に禁止汎用レジスタへアクセスしようとしたことをフラグ等で知らせることも可能とする。アクセスが許可された汎用レジスタ401〜40Nは、データメモリ書き込み信号418およびデータメモリ読み出し信号419に従って、書き込み処理、読み出し処理の各々の処理が適宜実行される。
 共有外部入出力部113〜115へのアクセス:
 共有外部入出力部113〜115へのアクセスも共有データメモリ102、共有汎用レジスタ109と同様なアクセスとなる。
 マイクロコントローラが共有外部入出力部113〜115をアクセスする場合、マイクロコントローラから図5の共有外部入出力部選択信号516が共有外部入出力部制御部503に入力される。共有外部入出力部制御部503では共有外部入出力部113〜115内のアクセス許可/禁止情報設定レジスタ505の内容を確認し、マイクロコントローラのアクセスが許可されている場合には、マイクロコントローラの共有データメモリデータバス510と出力データバッファ501、入力データバッファ502間のアクセスを実行させる。また、同時にその結果により共有外部入出力部113〜115の状態を保持する状態保持部504を変更する。共有外部入出力部113〜115の状態変化が割り込み要因となる場合、割り込み信号発生部506でマイクロコントローラに対する共有外部入出力部割り込み信号512を発生させる。マイクロコントローラのアクセスが禁止されている場合には、実際の共有外部入出力部113〜115へのアクセスは実行されない。しかし、禁止されたアクセスが実行されたことを通知するフラグの設定を行う。
 デジタルシグナルプロセッサが共有外部入出力部113〜115をアクセスする場合、デジタルシグナルプロセッサから図5の共有外部入出力部選択信号517が共有外部入出力部制御部503に入力される。共有外部入出力部制御部503では共有外部入出力部113〜115内のアクセス許可/禁止情報設定レジスタ505の内容を確認し、デジタルシグナルプロセッサのアクセスが許可されている場合には、デジタルシグナルプロセッサの共有データメモリデータバス511と出力データバッファ501、入力データバッファ502へ間のアクセスを実行させる。また、同時にその結果により共有外部入出力部113〜115の状態を保持する状態保持部504を変更する。共有外部入出力部113〜115の状態変化が割り込み要因となる場合、割り込み信号発生部506でデジタルシグナルプロセッサに対する共有外部入出力部割り込み信号513を発生させる。デジタルシグナルプロセッサのアクセスが禁止されている場合には、実際の共有外部入出力部113〜115へのアクセスは実行されない。しかし、禁止されたアクセスが実行されたことを通知するフラグの設定を行う。
 演算処理依頼割り込み:
 マイクロコントローラからデジタルシグナルプロセッサに対し演算処理の依頼割り込みを実行する場合のシーケンスを図6に示す。
 601;演算処理依頼側、本例の場合マイクロコントローラは依頼する処理内容および処理データを共有汎用レジスタ109および共有データメモリ102に設定する。
 本例では、図1の共有汎用レジスタ109において、処理依頼する演算処理番号"k"を図4の汎用レジスタ401に、演算処理を実行してほしいデータメモリ領域先頭番地"M"を図4の汎用レジスタ402に、データ数"N"を図4の汎用レジスタ403に設定し、図1の共有データメモリ102において"M"番地以降、例えば図3の書き換え可能なデータメモリ領域302に"N"個のデータを設定する。
 602;これらのデータの設定終了後、設定した共有汎用レジスタ109(図4の汎用レジスタ401〜403)、共有データメモリ102(図3の書き換え可能なデータメモリ領域302)を演算処理被依頼側がアクセス可能となるように、図3の共有データメモリセグメント単位選択値設定レジスタ307および図4のアクセス許可/禁止情報設定レジスタ412の内容を変更する。
 603;演算処理依頼側(マイクロコントローラ)は演算処理被依頼側(デジタルシグナルプロセッサ)に対し割り込みを発生させる(特許請求の範囲における割り込み手段に相当する)。
 604;その後、演算処理依頼側(マイクロコントローラ)は、別処理を実行させる。
 605;演算処理被依頼側(デジタルシグナルプロセッサ)は、主処理を実行中、演算処理依頼の割り込みを受理する。
 606;割り込みを実行する。割り込み処理の先頭で、共有汎用レジスタ109の汎用レジスタ401,402,403の内容を確認し、共有データメモリ102の書き換え可能なデータメモリ領域302のデータを使用し、依頼された演算処理を実行する。
 本例では、図4の汎用レジスタ401の演算処理番号"k"の処理を図3の書き換え可能なデータメモリ領域302のアドレス"M"から"N"個のデータを用いて実行し、結果を図3の書き換え可能なデータメモリ領域302のアドレス"M"以降に書き込む。
 607;演算終了を知らせるコードを図4の汎用レジスタ401に設定する。
 608;使用した共有汎用レジスタ109(図4の汎用レジスタ401〜403)、共有データメモリ102(図3のデータメモリ領域302)を演算依頼側がアクセス可能となるように、図3の共有データメモリセグメント単位選択値設定レジスタ307および図4のアクセス許可/禁止情報設定レジスタ412の内容を変更する。
 609;割り込みを終了する。
 610;演算処理被依頼側はもとの主処理を実行する。
 611;演算処理依頼側は、図4の汎用レジスタ401の処理終了コードをポーリングする(特許請求の範囲における演算処理終了情報設定手段に相当する)。
 612;依頼した演算処理が終了したことを確認後、次の処理へ移る。なお、デジタルシグナルプロセッサからマイクロコントローラに対して演算処理の依頼、割り込みをするのも同様に可能である。
 なお、上記では、最も好ましい実施例の一つについて説明したが、これに限らず、メモリ、汎用レジスタ、外部入出力部の何れかが共有ではなく、個別に設けられているものも、実施例としてあげることができる。
 本発明にかかる複合演算処理装置は、従来まで複数の演算処理部が必要であった複雑な処理を必要とする演算処理を、効率よく、安価なシステムで実現できる。つまり、効率の良いハードウエアで効率の良いソフトウエアを作成することができるという効果を有し、複合演算処理装置に対する命令が可変のプログラムによって導き出され、順番に実行される複合演算処理装置等として有用である。
この発明の一実施例の複合演算処理装置の構成を示すブロック図である。 図1における共有命令メモリの具体構成を示すブロック図である。 図1における共有データメモリの具体構成を示すブロック図である。 図1における共有汎用レジスタの具体構成を示すブロック図である。 図1における共有外部入出力部の具体構成を示すブロック図である。 図1の複合演算処理装置における演算処理依頼割り込みシーケンスを示す概略図である。
符号の説明
101 共有命令メモリ
102 共有データメモリ
103 ローカルデータメモリ
104 共有命令メモリポインタ
105 共有命令メモリポインタ
106 共有データメモリポインタ
107 共有データメモリポインタ
108 ローカルデータメモリポインタ
109 共有汎用レジスタ
110 演算処理部
111 演算処理部
112 乗算部
113 共有外部入出力部
114 共有外部入出力部
115 共有外部入出力部
116 命令コードアドレスバス
117 命令コードアドレスバス
118 命令コードデータバス
119 命令コードデータバス
120 共有データメモリデータバス
121 共有データメモリデータバス
122 ローカルデータメモリデータバス
123 命令解読部
124 命令解読部
201 命令メモリ領域
202 命令メモリ領域
203 命令メモリ管理部
204 命令メモリ管理部
205 命令メモリ最大アドレス値設定レジスタ
206 命令メモリ最小アドレス値設定レジスタ
207 比較部
208 比較部
209 命令コードアドレスバス
210 命令コードアドレスバス
211 命令コードデータバス
212 命令コードデータバス
301 データメモリ領域
302 データメモリ領域
303 データメモリ領域
304 データメモリ領域
305 データメモリ管理部
306 データメモリ管理部
307 共有データメモリセグメント単位選択値設定レジスタ
308 比較部
309 比較部
310 共有データメモリアクセス状況フラグレジスタ
311 共有データメモリデータバス
312 共有データメモリデータバス
313 共有データメモリアドレスバス
314 共有データメモリアドレスバス
315 共有データメモリ書き込み信号
316 共有データメモリ読み出し信号
317 共有データメモリ書き込み信号
318 共有データメモリ読み出し信号
401 汎用レジスタ
402 汎用レジスタ
403 汎用レジスタ
40N 汎用レジスタ
410 レジスタ選択部
411 レジスタ選択部
412 アクセス許可/禁止情報設定レジスタ
413 共有データメモリデータバス
414 共有データメモリデータバス
415 共有データメモリアドレスバス
416 共有データメモリ書き込み信号
417 共有データメモリ読み出し信号
418 共有データメモリアドレスバス
419 共有データメモリ書き込み信号
420 共有データメモリ読み出し信号
421 フラグレジスタ
501 出力データバッファ
502 入力データバッファ
503 外部入出力制御部
504 状態保持部
505 アクセス許可/禁止情報設定レジスタ
506 割り込み信号発生部
507 外部入出力端子
510 共有データメモリデータバス
511 共有データメモリデータバス
512 共有外部入出力部割り込み信号
513 共有外部入出力部割り込み信号
514 出力データバス
515 入力データバス
516 共有外部入出力部選択信号
517 共有外部入出力部選択信号
518 外部入出力信号

Claims (2)

  1. 演算処理の特徴が異なる第1および第2の独立した演算処理部と、二つのポートを有し前記第1および第2の演算処理部に接続された共有メモリと、二つのポートを有し前記第1および第2の演算処理部に接続された共有汎用レジスタと、前記共有メモリおよび前記共有汎用レジスタを前記第1および第2の演算処理部からアクセスするための第1および第2のアクセス手段と、前記第1の演算処理部に設けられて前記第2の演算処理部に対して割り込みを発生する割り込み手段と、前記第2の演算処理部に設けられて前記割り込みによる演算処理の終了を前記第1の演算処理部に知らせるための演算処理終了設定手段とを備え、
     前記第1の演算処理部は、演算処理の過程で前記第2の演算処理部での処理の方が適している演算が発生した時、前記割り込み手段により前記第2の演算処理部に対して演算処理の依頼を割り込みとして発生し、前記演算処理に必要なデータを引き数として共有汎用レジスタおよび共有メモリに格納し、
     前記第2の演算処理部は、依頼された演算処理を前記引き数を用いて実行し、演算結果のデータを帰り数として前記共有汎用レジスタおよび前記共有メモリに格納し、前記演算処理終了設定手段により演算処理終了情報を設定するようにしたことを特徴とする複合演算処理装置。
  2. 共有メモリが書き換え可能な領域を有し、第1および第2の演算処理部からのアクセスの許可/禁止情報を共有メモリおよび共有汎用レジスタの一定範囲毎にそれぞれ設定するアクセス許可/禁止情報設定手段を設け、前記第1および第2の演算処理部からのアクセス状況を前記共有メモリの一定範囲毎に前記第2および第1の演算処理部へ伝達するためのアクセス状況設定手段を設け、
     複数のアクセス手段は、前記アクセス許可/禁止情報設定手段の設定内容を参照しながらアクセスが許可されている範囲についてのみ前記共有メモリおよび前記共有汎用レジスタのアクセスを行うとともに、前記アクセス状況設定手段の設定内容を参照しながら前記共有メモリの書き換え可能な領域のアクセスを行うようにし、
     前記第1の演算処理部は、前記第2の演算処理部に対し演算の依頼をした場合に、引き数を前記共有汎用レジスタおよび前記共有メモリに設定した時に前記引き数の設定を完了したことを前記アクセス状況設定手段により設定するとともに、前記共有汎用レジスタおよび前記共有メモリのうち前記引き数を保持した領域の許可/禁止情報を前記アクセス許可/禁止情報設定手段により逆転させ、
     前記第2の演算処理部は、依頼された演算処理を完了した場合に前記帰り数を前記共有汎用レジスタおよび前記共有メモリに設定した時に前記帰り数の設定を完了したことを前記アクセス状況設定手段により設定するとともに、前記共有汎用レジスタおよび前記共有メモリのうち前記帰り数を保持した領域の許可/禁止情報を前記アクセス許可/禁止情報設定手段により逆転させるようにしたことを特徴とする請求項1記載の複合演算処理装置。
JP2003320945A 2003-09-12 2003-09-12 複合演算処理装置 Expired - Fee Related JP3710798B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003320945A JP3710798B2 (ja) 2003-09-12 2003-09-12 複合演算処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003320945A JP3710798B2 (ja) 2003-09-12 2003-09-12 複合演算処理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP21840194A Division JP3511529B2 (ja) 1994-09-13 1994-09-13 複合演算処理装置

Publications (2)

Publication Number Publication Date
JP2004046896A true JP2004046896A (ja) 2004-02-12
JP3710798B2 JP3710798B2 (ja) 2005-10-26

Family

ID=31712706

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003320945A Expired - Fee Related JP3710798B2 (ja) 2003-09-12 2003-09-12 複合演算処理装置

Country Status (1)

Country Link
JP (1) JP3710798B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011197774A (ja) * 2010-03-17 2011-10-06 Renesas Electronics Corp プロセッサシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011197774A (ja) * 2010-03-17 2011-10-06 Renesas Electronics Corp プロセッサシステム

Also Published As

Publication number Publication date
JP3710798B2 (ja) 2005-10-26

Similar Documents

Publication Publication Date Title
CN112099852A (zh) 可变格式、可变稀疏矩阵乘法指令
CN107003846B (zh) 用于向量索引加载和存储的方法和装置
CN113553209A (zh) 用于存储器损坏检测的硬件装置和方法
CN107220029B (zh) 掩码置换指令的装置和方法
CN107003852B (zh) 用于执行向量位混洗的方法和装置
CN108369553B (zh) 用于范围保护的系统、方法和装置
CN107003845B (zh) 用于在掩码寄存器和向量寄存器之间可变地扩展的方法和装置
KR970011207B1 (ko) 원자 억세스를 제공하는 레지스터가 소프트웨어 인터록 없이 공유된 레지스터의 개별 비트를 세트하고 클리어하기 위한 방법 및 장치
US11537520B2 (en) Remote atomic operations in multi-socket systems
WO2017112182A1 (en) Apparatus and method for accelerating graph analytics
CN108292268B (zh) 用于分布式一致性存储器的系统、方法和设备
JPH076122A (ja) データ要求方法とその装置
JP4522817B2 (ja) システム制御装置、情報処理装置及び情報処理装置の制御方法。
CN109416635B (zh) 针对使用多个架构寄存器的指令的架构寄存器替换
JP3710798B2 (ja) 複合演算処理装置
CN115859315A (zh) 用于对安全存储装置的直接外围访问的系统、装置和方法
JP3511529B2 (ja) 複合演算処理装置
US20080209085A1 (en) Semiconductor device and dma transfer method
JPH0447349A (ja) データ記憶装置
US5590302A (en) Device for generating structured addresses
JPH0323940B2 (ja)
WO2017172304A1 (en) Apparatus and method for lazy tlb coherence
US20030163499A1 (en) Limiting the valve of a 64-bit number to a maximum value, a minimum value, or both in a 32-bit environment
KR200208207Y1 (ko) 디에스피(dsp)어드레싱 모드에서의 간접 어드레싱장치
CN111512309A (zh) 用于抵抗交叉特权线性探查的系统、方法和装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050613

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050810

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080819

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090819

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090819

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100819

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110819

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees