(57)【要約】  【課題】  処理速度を低下させることなく、共有されるメモリの使用効率の向上を実現する半導体装置を提供することを目的とする。  【解決手段】  複数のタスクを切換えて行う半導体装置１０であって、行われるタスクに応じて夫々に所定の演算処理を行う複数のＣＰＵ１、２と、ＣＰＵ１、２の間で共有される１つのメモリ空間を全体として有するメモリＭＥＭ１、２、３、４とを備えている。割当制御回路３は、タスク毎にＣＰＵ１、２が必要とするメモリサイズを記憶しており、行われるタスクに応じてセレクタＳＥＬ１、２、３、４及びマルチプレクサＭＵＸ１、２を制御することにより、ＣＰＵ１、２の夫々に必要なメモリサイズ分のメモリを割り当てる。【選択図】      図１
2006031263.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを切換えて実行する半導体装置であって、
当該装置が行うタスクに応じて、所定の演算処理を行う複数の演算手段と、
該複数の演算手段の夫々との間でデータの読出し又は書込みが可能であり、前記複数の演算手段の間で共有される１つのメモリ空間を有する記憶手段と、
当該装置が行うタスクに応じて、各演算手段に前記メモリ空間を分割して割り当てる割り当て処理を行う調停手段と、を備え、
夫々の演算手段が自身に割り当てられたメモリ空間を同時に使用可能な構成とした
ことを特徴とする半導体装置。
【請求項２】
前記記憶手段は、複数のメモリから成り、
前記割り当て処理は、各演算手段に前記メモリ空間をメモリ単位で分割して割り当てることにより行われる
ことを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記調停手段は、メモリ毎に１つの演算手段を選択し、選択された演算手段とメモリとの間でデータの読出し又は書込みが可能となるように、その選択された演算手段とメモリとを接続する選択回路と、
夫々の演算手段が自身に割り当てられたメモリ空間に対してのみ、データの読出し又は書込みが可能となるように前記選択回路を制御する制御部と、を備えた
ことを特徴とする請求項２に記載の半導体装置。
【請求項４】
前記割り当て処理により、何れの演算手段にも割り当てられなかったメモリへの電源供給を遮断する電源遮断部を更に備えた
ことを特徴とする請求項２または請求項３に記載の半導体装置。
【請求項５】
前記調停手段は、夫々のタスク実行時に夫々の演算手段が確保すべきメモリ空間の大きさに関する情報に基づいて前記割り当て処理を行う
ことを特徴とする請求項１〜請求項４の何れかに記載の半導体装置。
【請求項６】
請求項１〜５の何れかに記載の半導体装置を備えたことを特徴とする電気機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路（ＩＣ）等の半導体装置に関し、特に１つのメモリ空間を複数のＣＰＵ（Central Processing Unit；中央処理装置）の間で共有する構成とした半導体装置に関する。
【背景技術】
【０００２】
図８に、複数のＣＰＵを持つ半導体装置（半導体集積回路）の従来例（以下、「従来例１」という）を示す。従来例１の半導体装置は、２つのＣＰＵ１０１とＣＰＵ１０２を有しており、ＣＰＵ１０１はメモリ１０３に対して、ＣＰＵ１０２はメモリ１０４に対してデータの読出しや書込みを行う。この半導体装置は、様々なタスクを切換えて行い、ＣＰＵ１０１やＣＰＵ１０２が必要とするメモリサイズ（メモリ空間の大きさ）は、実行されるタスクに応じて個別に変化する。
【０００３】
通常、全てのタスクにおいてメモリが不足しないように、メモリ１０３は、ＣＰＵ１０１が最大負荷（最も大きなサイズのメモリ領域を使用する状態）になった時のメモリサイズを有する必要があり、メモリ１０４は、ＣＰＵ１０２が最大負荷になった時のメモリサイズを有する必要がある。
【０００４】
従って、図９に示す如く、「タスク１実行時にはＣＰＵ１０１が最大負荷となって４８ｋｂｙｔｅ（キロバイト）を使用するが、ＣＰＵ１０２は１６ｋｂｙｔｅしか使用せず、タスク２実行時にはＣＰＵ１０２が最大負荷となって４８ｋｂｙｔｅを使用するが、ＣＰＵ１０１は１６ｋｂｙｔｅしか使用しない」といった場合は、メモリ１０３、１０４は、夫々４８ｋｂｙｔｅ以上のメモリサイズを備えておく必要がある。
【０００５】
図１０は、複数のＣＰＵを持つ他の従来の半導体装置を示したものである（以下、「従来例２」という。例えば、下記特許文献１を参照）。図１０において、１１０、１１１はＣＰＵ、１１２は調停回路、１１３は共有メモリ、１１４はシステムバス、１１５はデータバス、１１６はアドレスバス、１１７、１１８はアクセス要求、１１９、１２０はウエイト要求である。
【０００６】
以上のような構成において、ＣＰＵ１１０とＣＰＵ１１１は、１つの共有メモリ１１３を共有して使用する。ＣＰＵ１１０、１１１が共有メモリ１１３へのアクセス（データの読出し及び／又は書込み）を希望する場合は、それぞれアクセス要求１１７、１１８を調停回路１１２に送出する。
【０００７】
調停回路１１２は、アクセス要求１１７、１１８が競合しない時には、アクセス要求を発したＣＰＵ（ＣＰＵ１１０又は１１１）にシステムバス１１４の専有権を与える。システムバス１１４の専有権を獲得したＣＰＵ１１０又は１１１は、共有メモリ１１３にアクセスを行い、所望のアクセスが終了後にアクセス要求１１７、１１８を解除する。
【０００８】
しかし、アクセス要求１１７、１１８が競合した時には、調停回路１１２は予め定められた優先順位に従ってＣＰＵ１１０又は１１１にシステムバス１１４の専有権を与える。専有権を得たＣＰＵ１１０又は１１１は、アクセス要求が競合しない時と同様の動作を行うが、専有権を獲得できなかったＣＰＵ１１０又は１１１は、ウエイト要求１１９、１２０によってウエイト状態となり、専有権を獲得できるまでデータ転送のプログラムの実行は中断される。
【０００９】
【特許文献１】特公平０６−０２８０５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述した従来例１においては、タスク１実行時にはメモリ１０４に不使用（空き）のメモリ空間が生じ、タスク２実行時にはメモリ１０３に不使用（空き）のメモリ空間が生じる。つまり、メモリの使用効率が悪いと言え、メモリ（半導体メモリ）のチップサイズが必要以上に大きくなってしまう。このことは、チップコストの増大及び歩留まりの低下を招く。
【００１１】
また、従来例２においては、共有メモリ１１３のメモリサイズを適切に設定すれば、メモリの使用効率を上げることもできるが、アクセス要求の競合が起こった場合、何れかのＣＰＵのプログラムの実行が中断されてしまうため、処理速度が低下してしまう。
【００１２】
本発明は、上記の点に鑑み、処理速度を低下させることなく、共有されるメモリの使用効率の向上を実現する半導体装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明に係る半導体装置は、複数のタスクを切換えて実行する半導体装置であって、当該装置が行うタスクに応じて、所定の演算処理を行う複数の演算手段と、該複数の演算手段の夫々との間でデータの読出し又は書込みが可能であり、前記複数の演算手段の間で共有される１つのメモリ空間を有する記憶手段と、当該装置が行うタスクに応じて、各演算手段に前記メモリ空間を分割して割り当てる割り当て処理を行う調停手段と、を備え、夫々の演算手段が自身に割り当てられたメモリ空間を同時に使用可能な構成としたことを特徴とする。
【００１４】
上記のように構成し、行うタスクに応じて夫々の演算手段が必要な分のメモリ領域を、夫々の演算手段に割り当てるようにする。そうすると、前記メモリ空間の大きさを、「夫々の演算手段の最大負荷時において必要なメモリ空間の大きさを足し合わせたもの」より小さく設定することが可能となる。この結果、記憶手段の使用効率が向上するため、例えば、記憶手段が半導体メモリである場合はチップコストの削減及び歩留まりの改善が実現できる。
【００１５】
また、夫々の演算手段が自身に割り当てられたメモリ空間を同時に使用可能とする構成としているので、従来例２のように、処理が低速化するといったこともない。
【００１６】
また、例えば、前記記憶手段は、複数のメモリから成り、前記割り当て処理は、各演算手段に前記メモリ空間をメモリ単位で分割して割り当てることにより行われる。
【００１７】
また、例えば、前記調停手段は、メモリ毎に１つの演算手段を選択し、選択された演算手段とメモリとの間でデータの読出し又は書込みが可能となるように、その選択された演算手段とメモリとを接続する選択回路と、夫々の演算手段が自身に割り当てられたメモリ空間に対してのみ、データの読出し又は書込みが可能となるように前記選択回路を制御する制御部と、を備えている。
【００１８】
また、例えば、前記割り当て処理により、何れの演算手段にも割り当てられなかったメモリへの電源供給を遮断する電源遮断部を更に備えるようにするとよい。
【００１９】
これにより、半導体装置の低消費電力化が図れる。
【００２０】
また、例えば、前記調停手段は、夫々のタスク実行時に夫々の演算手段が確保すべきメモリ空間の大きさに関する情報に基づいて前記割り当て処理を行うようにすればよい。
【００２１】
そして、前記記憶手段の有する前記メモリ空間の大きさも、前記情報に基づいて定めるようにすればよい。前記情報によって、前記記憶手段が最低限有すべき前記メモリ空間が定まるからである。
【発明の効果】
【００２２】
上述した通り、本発明に係る半導体装置によれば、処理速度を低下させることなく、共有されるメモリの使用効率の向上を実現できる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明に係る半導体装置の実施の形態につき、図面を参照して説明する。図１は、本発明の実施の形態に係る半導体装置１０の回路構成図である。
【００２４】
（図１：構成と接続関係）
半導体装置１０は、ＣＰＵ１及びＣＰＵ２（演算手段）と、夫々が半導体メモリから成り、夫々が１６ｋｂｙｔｅの記憶容量を持つ４つのメモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３及びＭＥＭ４と、ＣＰＵ１及びＣＰＵ２の夫々とメモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３及びＭＥＭ４の夫々とを接続するためのバスの間に介在するセレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３及びＳＥＬ４、並びにマルチプレクサＭＵＸ１及びＭＵＸ１と、それらのセレクタＳＥＬ１等及びマルチプレクサＭＵＸ１等を制御する割当制御回路３と、を有している。また、セレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３及びＳＥＬ４からマルチプレクサＭＵＸ３は構成されている。
【００２５】
ＣＰＵ１は、メモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３、ＭＥＭ４（以下、「メモリＭＥＭ１等」と略すことがある）の夫々に対してアドレスを指定するためのアドレス情報及び各メモリＭＥＭ１等を制御するための制御情報（リード／ライト等）を、アドレスバス１１に送出する。そのアドレス情報は、６４ｋｂｙｔｅ分のアドレスに相当する１６ビットの情報（ＡＤＤ［０：１５］）である。アドレスバス１１（但し、アドレス情報の上位側２ビットＡＤＤ［１４：１５］を除く）は、セレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４（以下、「各メモリＳＥＬ１等」と略すことがある）の夫々の第１入力端子群に接続されている。
【００２６】
ＣＰＵ２は、メモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３、ＭＥＭ４の夫々に対してアドレスを指定するためのアドレス情報及び各メモリＭＥＭ１等を制御するための制御情報（リード／ライト等）を、アドレスバス１２に送出する。そのアドレス情報は、６４ｋｂｙｔｅ分のアドレスに相当する１６ビットの情報（ＡＤＤ［０：１５］）である。アドレスバス１２（但し、アドレス情報の上位側２ビットＡＤＤ［１４：１５］を除く）は、セレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４の夫々の第２入力端子群に接続されている。
【００２７】
割当制御回路３は、セレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４の夫々に１ビットの選択信号（ハイレベルまたはローレベル）を供給しており、セレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４の夫々は、自身に供給された選択信号がハイレベルの場合は自身の第１入力端子群と出力端子群とを接続し、自身に供給された選択信号がローレベルの場合は自身の第２入力端子群と出力端子群とを接続する。
【００２８】
セレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４の夫々の出力端子群は、夫々アドレスバス３１、３２、３３、３４に接続されており、アドレスバス３１、３２、３３、３４は、それぞれメモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３、ＭＥＭ４のアドレス入力端子群に接続されている。
【００２９】
メモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３、ＭＥＭ４の夫々のデータ入出力端子群は、８ビットの情報（ＤＡＴＡ［０：７］）を入出力するものであって、それぞれデータバス４１、４２、４３、４４に接続されている。データバス４１、４２、４３、４４は、夫々４入力のマルチプレクサＭＵＸ１の第１入力端子群、第２入力端子群、第３入力端子群、第４入力端子群に接続されていると共に、夫々４入力のマルチプレクサＭＵＸ２の第１入力端子群、第２入力端子群、第３入力端子群、第４入力端子群に接続されている。
【００３０】
割当制御回路３は、マルチプレクサＭＵＸ１、ＭＵＸ２の夫々に２ビットの選択信号を供給しており、マルチプレクサＭＵＸ１、ＭＵＸ２の夫々は、自身に供給された選択信号に応じて、自身の４つの入力端子群（第１〜第４入力端子群）の何れか１つの入力端子群を、自身の出力端子群に接続する。マルチプレクサＭＵＸ１、ＭＵＸ２の夫々の出力端子群は、夫々データバス２１、２２に接続されており、データバス２１、２２は、夫々ＣＰＵ１、ＣＰＵ２のデータ入出力端子群に接続されている。
【００３１】
また、アドレスバス１１及び１２にて伝送されるアドレス情報や制御情報、並びにデータバス２１及び２２にて伝送されるデータは、割当制御回路３にも供給されている。
【００３２】
上記の構成において、割当制御回路３からセレクタＳＥＬ１及びマルチプレクサＭＵＸ１の夫々に選択信号を適切に送出することにより、ＣＰＵ１は、アドレスバス１１及びセレクタＳＥＬ１を介して、メモリＭＥＭ１にアドレス情報及び制御情報を与え、データバス４１、マルチプレクサＭＵＸ１及びデータバス２１を介して、メモリＭＥＭ１からデータを読出したりメモリＭＥＭ１にデータを書込んだりすることが可能となる。ＣＰＵ１と他のメモリＭＥＭ２、ＭＥＭ３、ＭＥＭ４とのアクセス手法も同様である。
【００３３】
また、割当制御回路３からセレクタＳＥＬ１及びマルチプレクサＭＵＸ２の夫々に選択信号を適切に送出することにより、ＣＰＵ２は、アドレスバス１２及びセレクタＳＥＬ１を介して、メモリＭＥＭ１にアドレス情報及び制御情報を与え、データバス４１、マルチプレクサＭＵＸ２及びデータバス２２を介して、メモリＭＥＭ１からデータを読出したりメモリＭＥＭ１にデータを書込んだりすることが可能となる。ＣＰＵ２と他のメモリＭＥＭ２、ＭＥＭ３、ＭＥＭ４とのアクセス手法も同様である。
【００３４】
このように、メモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３、ＭＥＭ４の夫々は、ＣＰＵ１及びＣＰＵ２の夫々との間でデータの読出し（リード）又は書込み（ライト）が可能となっており、２つのＣＰＵ（ＣＰＵ１及びＣＰＵ２）で共有（共用）される。そして４つのメモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３及びＭＥＭ４は、全体として１つのメモリ空間を有する１つの記憶装置４（記憶手段）を構成する。
【００３５】
また、セレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３及びＳＥＬ４は、供給される選択信号に応じて、４つのメモリＭＥＭ１等のメモリ毎に、ＣＰＵ１又はＣＰＵ２の何れか１つを選択し、その選択されたＣＰＵ１又は２とメモリ（ＭＥＭ１〜ＭＥＭ４）との間でデータの読出し又は書込みが可能となるように、その選択されたＣＰＵ１又はＣＰＵ２とメモリ（ＭＥＭ１〜ＭＥＭ４）とを接続する。勿論、この機能の実現にはマルチプレクサＭＵＸ１及びＭＵＸ２も必要であり、この機能を実現するセレクタＳＥＬ１、ＳＥＬ２、ＳＥＬ３及びＳＥＬ４、並びにマルチプレクサＭＵＸ１及びＭＵＸ２は、選択回路として機能する。
【００３６】
（図２〜４：メモリ割当ての手法）
図１の半導体装置１０は、タスク１、２、３及び４の４つのタスクを実行可能であって、入力キー（不図示）の操作や一定の時間の経過等によって、実行するタスクが切換えられる。ＣＰＵ１及びＣＰＵ２は、半導体装置１０が行うタスクに応じて、夫々に所定の演算処理（プログラムの実行、データ転送等）を行う演算手段として機能し、行われるタスクが変化することによって、必要とするメモリサイズ（メモリ空間の大きさ）が、図２に示す如く、個別に変動する。
【００３７】
具体的に例示すれば、ＣＰＵ１は、タスク１、２、３、４実行時に、夫々４８ｋｂｙｔｅ、１６ｋｂｙｔｅ、３２ｋｂｙｔｅ、３２ｋｂｙｔｅのメモリサイズが必要となる。一方、ＣＰＵ２は、タスク１、２、３、４実行時に、夫々１６ｋｂｙｔｅ、４８ｋｂｙｔｅ、３２ｋｂｙｔｅ、１６ｋｂｙｔｅのメモリサイズが必要となる。
【００３８】
今、４つのメモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３及びＭＥＭ４を１つのメモリ空間を有する１つの記憶装置４として考えた場合、夫々のメモリの記憶容量は１６ｋｂｙｔｅであるから、記憶装置４の全体の記憶容量は６４ｋｂｙｔｅとなる。そして、各タスク実行時における夫々のＣＰＵのメモリ使用率を百分率で表現すると、ＣＰＵ１のメモリ使用率は、タスク１、２、３、４実行時に、夫々７５％、２５％、５０％、５０％となり、ＣＰＵ２のメモリ使用率は、タスク１、２、３、４実行時に、夫々２５％、７５％、５０％、２５％となる。
【００３９】
従って、図３及び図４に示す如く、タスク１実行時においては、ＣＰＵ１がメモリＭＥＭ１、ＭＥＭ２及びＭＥＭ３に対してアクセス（データの読出し及び／又は書込み）可能となるように、割当制御回路３はセレクタＳＥＬ１、ＳＥＬ２及びＳＥＬ３の夫々にハイレベル（Ｈ）の選択信号を与え、ＣＰＵ２がメモリＭＥＭ４に対してアクセス可能となるように、割当制御回路３はセレクタＳＥＬ４にローレベル（Ｌ）の選択信号を与える。
【００４０】
同様に、タスク２実行時においては、ＣＰＵ１がメモリＭＥＭ１に対してアクセス可能となるように、割当制御回路３はセレクタＳＥＬ１にハイレベルの選択信号を与え、ＣＰＵ２がメモリＭＥＭ２、ＭＥＭ３及びＭＥＭ４に対してアクセス可能となるように、割当制御回路３はセレクタＳＥＬ２、ＳＥＬ３及びＳＥＬ４にの夫々にローレベルの選択信号を与える。
【００４１】
同様に、タスク３実行時においては、ＣＰＵ１がメモリＭＥＭ１及びＭＥＭ２に対してアクセス可能となるように、割当制御回路３はセレクタＳＥＬ１及びＳＥＬ２の夫々にハイレベルの選択信号を与え、ＣＰＵ２がメモリＭＥＭ３及びＭＥＭ４に対してアクセス可能となるように、割当制御回路３はセレクタＳＥＬ３及びＳＥＬ４の夫々にローレベルの選択信号を与える。
【００４２】
同様に、タスク４実行時においては、ＣＰＵ１がメモリＭＥＭ１及びＭＥＭ２に対してアクセス可能となるように、割当制御回路３はセレクタＳＥＬ１及びＳＥＬ２の夫々にハイレベルの選択信号を与え、ＣＰＵ２がＭＥＭ４に対してアクセス可能となるように、割当制御回路３はセレクタＳＥＬ４にハイレベルの選択信号を与える。
【００４３】
タスク４実行時には、メモリＭＥＭ３はＣＰＵ１にもＣＰＵ２にも使用されない（空き）。従って、セレクタＳＥＬ３には任意の選択信号を供給すればよい。セレクタＳＥＬ３の出力端子群をハイインピーダンスにすることができるのであれば、そのようにしてもよい。この空きとなったメモリＭＥＭ３の取り扱いの詳細については後述する。
【００４４】
このように、割当制御回路３及び割当制御回路３により制御されるセレクタＳＥＬ１等により、実行されるタスクに応じて記憶装置４の有するメモリ空間がメモリ単位（個々のメモリの記憶容量の単位）で分割されてＣＰＵ１及びＣＰＵ２に適切に割り当てられる。このような割り当て処理を行う割当制御回路３及び割当制御回路３により制御されるセレクタＳＥＬ１等は、調停手段として機能する。そして、ＣＰＵ１及びＣＰＵ２の夫々は、その割り当て処理によって割り当てられたメモリ空間（例えば、タスク１実行時のＣＰＵ１にとっては、メモリＭＥＭ１、ＭＥＭ２及びＭＥＭ３の３つのメモリから成るメモリ空間）に対してのみ、アクセス可能となる。
【００４５】
また、割当制御回路３は、半導体装置１０が現在どのタスクを実行しているかを判断する回路を備えている。ＣＰＵ１又はＣＰＵ２が特定のアドレスに特定のデータを書込むという処理を行うことによって、割当制御回路３に実行しているタスクまたは次に実行するタスクを知らせるといった手法を採用しても良い。
【００４６】
そして、割当制御回路３は、各タスク実行時にＣＰＵ１及びＣＰＵ２の夫々が確保すべきメモリサイズ（図２の４８ｋｂｙｔｅ等）、又は各タスク実行時におけるＣＰＵ１及びＣＰＵ２の夫々のメモリ使用率（図２の７５％等）を、自身の有するメモリ（不図示）に記憶しており、その記憶内容に基づいて、図３に示す選択信号をセレクタＳＥＬ１等に送出するようになっている。
【００４７】
これら図２に示される情報は、夫々のタスク実行時にＣＰＵ１及びＣＰＵ２の夫々が確保すべきメモリサイズに関する情報であり、図３に示される情報は、図２の情報に基づいて定まる情報である。従って、割当制御回路３は、夫々のタスク実行時にＣＰＵ１及びＣＰＵ２の夫々が確保すべき（使用する）メモリサイズ（メモリ空間の大きさ）に関する情報に基づいて上記割り当て処理を行うことになる。
【００４８】
また、割当制御回路３は、図２に示すメモリサイズ（４８ｋｂｙｔｅ等）やメモリ使用率（７５％等）のマトリクス情報を記憶することなく、図３に示すセレクタＳＥＬ１等への選択信号に関するマトリクス情報だけを記憶するようにしていてもいい。割当制御回路３が、図３に示すマトリクス情報を認知可能なら、実行されるタスクに応じた上記割り当て処理は実現されるからである。
【００４９】
次に、ＣＰＵ１またはＣＰＵ２が、各タスク実行時において、割り当てられたメモリにアクセスする動作について説明する。具体的な一例として、タスク１実行時においてＣＰＵ１が行うデータの読出し動作につき説明する。タスク１実行時において、ＣＰＵ１は４８ｋｂｙｔｅのメモリサイズを必要とし、実際にメモリＭＥＭ１、ＭＥＭ２及びＭＥＭ３が全体として有する、サイズが４８ｋｂｙｔｅのメモリ空間が割り当てられる（図５参照）。
【００５０】
そして、ＣＰＵ１は、ＣＰＵ１に割り当てられたメモリ空間の内の、上位側１６ｋｂｙｔｅの領域にアクセスする場合、アドレスバス１１のアドレス情報の上位２ビットであるＡＤＤ［１４：１５］を（１、０）とした上で、他のアドレス情報（ＡＤＤ［０：１３］）及び制御情報（リード）をアドレスバス１１に送出する。この時、アドレスバス１１を介して、ＡＤＤ［１４：１５］＝（１、０）を入力した割当制御回路３は、データバス４１とデータバス２１が接続されるように、マルチプレクサＭＵＸ１に選択信号を与える。これにより、メモリＭＥＭ１がデータバス４１に送出するデータが、マルチプレクサＭＵＸ１及びデータバス２１を介してＣＰＵ１に与えられることになる。
【００５１】
同様に、ＣＰＵ１は、ＣＰＵ１に割り当てられたメモリ空間の内の、下位側１６ｋｂｙｔｅの領域にアクセスする場合、アドレスバス１１のアドレス情報の上位２ビットであるＡＤＤ［１４：１５］を（０、０）とした上で、他のアドレス情報（ＡＤＤ［０：１３］）及び制御情報（リード）をアドレスバス１１に送出する。この時、アドレスバス１１を介して、ＡＤＤ［１４：１５］＝（０、０）を入力した割当制御回路３は、データバス４３とデータバス２１が接続されるように、マルチプレクサＭＵＸ１に選択信号を与える。これにより、メモリＭＥＭ３がデータバス４３に送出するデータが、マルチプレクサＭＵＸ１及びデータバス２１を介してＣＰＵ１に与えられることになる。
【００５２】
同様に、ＣＰＵ１は、ＣＰＵ１に割り当てられたメモリ空間の内の、上位側１６ｋｂｙｔｅと下位側１６ｋｂｙｔｅの間の領域（１６ｋｂｙｔｅ）にアクセスする場合、アドレスバス１１のアドレス情報の上位２ビットであるＡＤＤ［１４：１５］を（０、１）とした上で、他のアドレス情報（ＡＤＤ［０：１３］）及び制御情報（リード）をアドレスバス１１に送出する。この時、アドレスバス１１を介して、ＡＤＤ［１４：１５］＝（０、１）を入力した割当制御回路３は、データバス４２とデータバス２１が接続されるように、マルチプレクサＭＵＸ１に選択信号を与える。これにより、メモリＭＥＭ２がデータバス４２に送出するデータが、マルチプレクサＭＵＸ１及びデータバス２１を介してＣＰＵ１に与えられることになる。
【００５３】
ＣＰＵ２についても同様に、割当制御回路３は、ＣＰＵ２がアドレスバス１２に送出したアドレス情報の上位２ビットＡＤＤ［１４：１５］を参照することにより、マルチプレクサＭＵＸ２に選択信号を適切に与える。これにより、ＣＰＵ２は割り当てられたメモリにアクセスが可能となる。タスク１以外のタスク実行時も、割当制御回路３は、ＣＰＵ１、２が夫々アドレスバス１１、１２に送出したアドレス情報の上位２ビットＡＤＤ［１４：１５］の夫々を参照することにより、マルチプレクサＭＵＸ１、ＭＵＸ２の夫々に選択信号を適切に与える。
【００５４】
上記の説明から理解されるように、ＣＰＵ１及びＣＰＵ２は、自身がアクセスしようとするメモリが具体的にどのメモリであるかを認識する必要も、管理する必要もなく、メモリがＣＰＵ１とＣＰＵ２との間で共有されることによる制約を受けない。例えばタスク１実行時なら、メモリサイズが４８ｋｂｙｔｅの１つのメモリがＣＰＵ１のみにバスを介して接続されているのと同じように、ＣＰＵ１はメモリを利用可能となる。
【００５５】
ここで、従来例１との比較において、メモリの使用効率を考察する。従来例１の構成においては、タスク１実行時にＣＰＵ１０１が最大負荷となって４８ｋｂｙｔｅのメモリサイズを必要とし、タスク２実行時にＣＰＵ１０２が最大負荷となって４８ｋｂｙｔｅのメモリサイズを必要とするならば、タスク１実行時におけるＣＰＵ１０２の必要メモリサイズ（例えば、１６ｋｂｙｔｅ）やタスク２実行時におけるＣＰＵ１０１の必要メモリサイズ（例えば、１６ｋｂｙｔｅ）に関係なく、４８ｋｂｙｔｅのメモリサイズを有するメモリを２つ用意する必要があった。つまり、図２や図９にも例示するように、全てのＣＰＵが同時に最大負荷となることは通常ないのであるが、従来例１の構成においては、夫々のＣＰＵが最大負荷時に必要なメモリサイズの足し合わせ分（４８ｋｂｙｔｅ＋４８ｋｂｙｔｅ＝９６ｋｂｙｔｅ）のメモリを用意する必要があったのである。
【００５６】
一方、本実施形態においては、従来例１と同様に、タスク１実行時にＣＰＵ１が最大負荷となって４８ｋｂｙｔｅのメモリサイズを必要とし、タスク２実行時にＣＰＵ２が最大負荷となって４８ｋｂｙｔｅのメモリサイズを必要とするが、上記メモリの割り当て処理の効果により、合計６４ｋｂｙｔｅのメモリを用意すれば足りる。このように、本実施形態ではメモリの使用効率が向上しており、用意するメモリのメモリサイズの縮小が実現されている。また、上述の動作から理解されるように、ＣＰＵ１及びＣＰＵ２の夫々は、自身に割り当てられたメモリ空間を同時に独立して使用可能であるため、従来例２のように、メモリの共有によって処理速度が低下するといったこともない。尚、ＣＰＵ１とＣＰＵ２が同時に最大負荷となる場合は、割当制御回路３が、従来例２のように、ＣＰＵ１又はＣＰＵ２にウエイトをかけるようにすればよい。
【００５７】
（図６、図７；不使用のメモリの電源遮断）
次に、メモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３及びＭＥＭ４への電源供給の手法について説明する。図６に示す如く、メモリＭＥＭ１、ＭＥＭ２、ＭＥＭ３、ＭＥＭ４の電源電圧Ｖｃｃは、夫々、スイッチＳＷ１、ＳＷ２、ＳＷ３、ＳＷ４を介して供給されている。スイッチＳＷ１〜ＳＷ４は、例えばＭＯＳトランジスタ（絶縁ゲート型の電界効果トランジスタ）から成る。そして、割当制御回路３は、スイッチＳＷ１、ＳＷ２、ＳＷ３、ＳＷ４の夫々のオン／オフを制御するための制御信号を、スイッチＳＷ１、ＳＷ２、ＳＷ３、ＳＷ４の夫々に独立して与えている。
【００５８】
そして、割当制御回路３は、タスク１、２及び３実行時には、スイッチＳＷ１〜ＳＷ４の全てをオンとしてメモリＭＥＭ１〜ＭＥＭ４の全てに電源電圧を供給する。ところが、タスク４実行時には、スイッチＳＷ１、ＳＷ２及びＳＷ４をオンとしてＣＰＵ１、２の何れかに割り当てられるメモリ（ＭＥＭ１、２及び４）には電源電圧を供給する一方、スイッチＳＷ３をオフとしてＣＰＵ１、２の何れにも割り当てられないメモリＭＥＭ３への電源電圧の供給を遮断する（図２及び図３参照）。タスク４実行時には、ＣＰＵ１、２の何れもがメモリＭＥＭ３を使用しないため、メモリＭＥＭ３への電源供給を遮断するのである。これにより、記憶装置４の低消費電力化が図れる。
【００５９】
図６の構成においては、ＣＰＵ１、２の何れにも割り当てられないメモリ（上記例では、メモリＭＥＭ３）への電源電圧の供給を遮断する電源遮断部は、割当制御回路３とスイッチＳＷ１〜ＳＷ４と、から構成されるが、これに代えて、図７のような構成を採用してもよい。
【００６０】
即ち、スイッチＳＷ１、ＳＷ２、ＳＷ３、ＳＷ４の夫々に制御信号を与えるオア回路ＯＲ１、ＯＲ２、ＯＲ３、ＯＲ４を設ける。例えば、スイッチＳＷ１〜ＳＷ４の夫々は、ハイレベル（Ｈ）の制御信号を入力した時にオン、ローレベル（Ｌ）の制御信号を入力した時にオフとなるようにする。そして、ＣＰＵ１、ＣＰＵ２の夫々は、図３に示すマトリクス情報を記憶、或は取得可能となっており、そのマトリクス情報に基づいて、オア回路ＯＲ１〜ＯＲ４の夫々にスイッチＳＷ１〜ＳＷ４をオン／オフするための信号を出力する。
【００６１】
つまり、ＣＰＵ１は、自身（ＣＰＵ１）に割り当てられるメモリに対応するオア回路にはハイレベルの信号を与えると共に、自身（ＣＰＵ１）に割り当てられないメモリに対応するオア回路にはローレベルの信号を与える。同様に、ＣＰＵ２は、自身（ＣＰＵ２）に割り当てられるメモリに対応するオア回路にはハイレベルの信号を与えると共に、自身（ＣＰＵ２）に割り当てられないメモリに対応するオア回路にはローレベルの信号を与える。
【００６２】
例えばタスク１実行時において、ＣＰＵ１は、オア回路ＯＲ１、ＯＲ２、ＯＲ３、ＯＲ４の夫々に、（Ｈ、Ｈ、Ｈ、Ｌ）の信号を与え、ＣＰＵ２は、オア回路ＯＲ１、ＯＲ２、ＯＲ３、ＯＲ４の夫々に、（Ｌ、Ｌ、Ｌ、Ｈ）の信号を与える。これにより、スイッチＳＷ１〜ＳＷ４は全てオンとなり、全てのメモリＭＥＭ１〜ＭＥＭ４に電源電圧が供給される。
【００６３】
また、タスク４実行時においては、ＣＰＵ１は、オア回路ＯＲ１、ＯＲ２、ＯＲ３、ＯＲ４の夫々に、（Ｈ、Ｈ、Ｌ、Ｌ）の信号を与え、ＣＰＵ２は、オア回路ＯＲ１、ＯＲ２、ＯＲ３、ＯＲ４の夫々に、（Ｌ、Ｌ、Ｌ、Ｈ）の信号を与える。これにより、スイッチＳＷ１、２及び４がオンとなってメモリＭＥＭ１、２及び４の夫々には電源電圧が供給される一方、スイッチＳＷ３がオフとなってメモリＭＥＭ３への電源電圧の供給は遮断される。
【００６４】
図７の構成においては、上記電源遮断部は、割当制御回路３とオア回路ＯＲ１〜ＯＲ４とＣＰＵ１、ＣＰＵ２と、から構成されることになる。
【００６５】
＜＜その他、変形等＞＞
上述の実施形態においては、説明の簡略化上、ＣＰＵが２つ（ＣＰＵ１及びＣＰＵ２）の構成を例示したが、本発明は勿論、３つ以上のＣＰＵでメモリを共有する構成にも適用可能である。また、メモリサイズの例として特定のサイズ（１６ｋｂｙｔｅ等）の場合のみを示したが、本発明が、このような特定のサイズに限定されるものでないことは言うまでもない。
【００６６】
また、符号１、２で示されるＣＰＵは、ＭＰＵ（Micro Processing Unit）やＤＳＰ（Digital Signal Processor）等に置換されてもよく、半導体装置１０が行うタスクに応じて、夫々に所定の演算処理（プログラムの実行、データ転送等）を行う演算手段であれば何でもよい。
【産業上の利用可能性】
【００６７】
本発明を適用すれば、メモリを有効利用することでメモリサイズを縮小することができるため、ＳＯＣ（System On a Chip）等の半導体装置に本発明は好適である。また、本発明を適用すれば、小型化及び低消費電力化が実現されるので、携帯電話機及びＰＨＳ（Personal Handyphone System）等の小型化や低消費電力化が望まれる移動体通信機、並びにパーソナルコンピュータに代表される情報処理機器等、様々な電気機器に本発明に係る半導体装置は好適である。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施形態に係る半導体装置の回路構成図である。
【図２】図１の割当制御回路が利用するマトリクス情報である。
【図３】図１の割当制御回路が利用するマトリクス情報である。
【図４】図１のメモリの使用状況を表した図である。
【図５】図１のＣＰＵが使用するメモリの状態を表わす図である。
【図６】図１のメモリへの電源供給手法を表わす図である。
【図７】図１のメモリへの電源供給手法を表わす図である。
【図８】従来の半導体装置の構成を示す図である。
【図９】図８のメモリの使用状況を表した図である。
【図１０】従来の他の半導体装置の構成を示す図である。
【符号の説明】
【００６９】
１、２    ＣＰＵ
３    割当制御回路（制御部）
４    記憶装置（記憶手段）
１１、１２、３１、３２、３３、３４    アドレスバス
２１、２２、４１、４２、４３、４４    データバス
ＳＥＬ１、ＳＥＬ２、ＳＥＬ３、ＳＥＬ４    セレクタ（選択回路）
ＭＵＸ１、ＭＵＸ２、ＭＵＸ３    マルチプレクサ（選択回路）
ＭＥＭ１、ＭＥＭ２、ＭＥＭ３、ＭＥＭ４    メモリ
ＳＷ１、ＳＷ２、ＳＷ３、ＳＷ４    スイッチ
ＯＲ１、ＯＲ２、ＯＲ３、ＯＲ４    オア回路
【図１】
2006031263.tif 000003
【図２】
2006031263.tif 000004
【図３】
2006031263.tif 000005
【図４】
2006031263.tif 000006
【図５】
2006031263.tif 000007
【図６】
2006031263.tif 000008
【図７】
2006031263.tif 000009
【図８】
2006031263.tif 000010
【図９】
2006031263.tif 000011
【図１０】
2006031263.tif 000012