(57)【要約】【課題】ソフトウェア開発時に自由度の高いプログラマブルな集積回路を提供する。【解決手段】プロセッサ１１と命令メモリ１２とを接続する命令バス１８と、プロセッサ１１とデータメモリ１３とを接続するデータバス１９と、命令メモリ１２またはデータメモリ１３としてマッピング可能な共用メモリバンク１４−０〜１４−３と、選択信号ＳＥＬ０〜ＳＥＬ３に応じて共用メモリと命令バスまたはデータバスとを選択的に接続するマルチプレクサ１５−０〜１７−３と、共用メモリバンクが現在、命令メモリまたはデータメモリのどちらにマッピングされているか否かのステータス情報を保持する共用メモリ設定レジスタ２０１を有し、設定されたステータス情報に基づいて選択信号ＳＥＬ０〜ＳＥＬ３をマルチプレクサ１５−０〜１７−３に出力するバス制御回路２０とを設ける。【選択図】      図１
2004171232.tif 000002
【特許請求の範囲】
【請求項１】
ハーバードアーキテクチャを有するプロセッサと、命令メモリとデータメモリを搭載する集積回路であって、
上記プロセッサと上記命令メモリとを接続する命令バスと、
上記プロセッサと上記データメモリとを接続するデータバスと、
命令メモリまたはデータメモリとしてマッピング可能な共用メモリと、
選択信号に応じて上記共用メモリと上記命令バスまたは上記データバスとを選択的に接続する接続切替手段と、
少なくとも上記共用メモリが現在、上記命令メモリまたは上記データメモリのどちらにマッピングされているか否かのステータス情報を保持する共用メモリステータス保持手段と、
上記プロセッサから共用メモリへのアクセス指示を受けると、上記共用メモリステータス保持手段のステータス情報に基づいて上記選択信号を上記接続切替手段に出力するバス制御手段と
を有する集積回路。
【請求項２】
上記共用メモリの特定番地をアクセスするタイミングで、あらかじめ保持していたアドレスと比較を行い、一致している場合に割り込み制御信号を上記プロセッサに出力する一致検出回路
をさらに有する請求項１記載の集積回路。
【請求項３】
ハーバードアーキテクチャを有するプロセッサと、命令メモリとデータメモリを搭載する集積回路であって、
上記プロセッサと上記命令メモリとを接続する命令バスと、
上記プロセッサと上記データメモリとを接続するデータバスと、
命令メモリまたはデータメモリとしてマッピング可能な複数の共用メモリバンクと、
選択信号に応じて所望の上記共用メモリバンクと上記命令バスまたは上記データバスとを選択的に接続する接続切替手段と、
少なくとも上記共用メモリバンクが現在、上記命令メモリまたは上記データメモリのどちらにマッピングされているか否かのステータス情報を保持する共用メモリ設定レジスタと、
上記プロセッサから共用メモリへのアクセス指示を受けると、上記共用メモリ設定レジスタのステータス情報に基づいて上記選択信号を上記接続切替手段に出力するバス制御手段と
を有する集積回路。
【請求項４】
上記共用メモリバンクの特定番地をアクセスするタイミングで、あらかじめ保持していたアドレスと比較を行い、一致している場合に割り込み制御信号を上記プロセッサに出力する一致検出回路
をさらに有する請求項３記載の集積回路。
【請求項５】
上記一致検出回路は、命令メモリまたはデータメモリの特定番地の値を各バンクに書き込んでおく共用メモリ割り込みアドレスレジスタと、命令アドレスまたはデータアドレスとの一致を検出し、一致した場合に割り込み制御信号を上記プロセッサに出力する一致検出レジスタと
を含む請求項４記載の集積回路。
【請求項６】
上記共用メモリ設定レジスタは、各共用メモリバンクに対ししてそれぞれ存在し、少なくとも、常時命令メモリとしてマッピング、常時データメモリとしてマッピング、命令メモリとしてマッピングしているがデータメモリとしても使用可能、およびデータメモリとしてマッピングしているが命令メモリとしても使用可能であるというステータス情報を設定、変更可能である
請求項３記載の集積回路。
【請求項７】
上記共用メモリ設定レジスタは、さらに、１バンク当たりを所定のページとみなし、上記共用メモリを１バンク当たり、命令メモリかデータメモリか、かつ、いずれのページにマッピングするかの情報を設定、変更可能である、
請求項６記載の集積回路。
【請求項８】
上記バス制御回路は、上記プロセッサから出力される命令アドレス、データアドレスをデコードするアドレスデコーダを含み、当該アドレスデコーダでデコードされたアドレスに基づいて、該当するメモリバンクへのアクセスを許可する
請求項１記載の集積回路。
【請求項９】
上記アドレスデコーダは、上記共用メモリバンクを使用しない際には、非動作状態に保持される
請求項８記載の集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハーバードアーキテクチャを有するプロセッサと、命令メモリとデータメモリを１チップに搭載する集積回路に関するものである。
【０００２】
【従来の技術】
マイクロプロセッサを搭載するシステムＬＳＩでは、その処理の高速化のため、チップ上にメモリを搭載する。
より多くのプログラムやデータを一時に処理するために、メモリの搭載量は可能な限り多いことが望まれる。
【０００３】
しかし、プロセスの微細化が進んでいるとはいえ、メモリ、特に高速処理を実現するためのプロセッサ用のＳＲＡＭはまだ面積的に大きく、消費電力も大きい。
このため、チップコストの増加につながるためメモリサイズは必要最小限をＬＳＩ上に搭載するのが一般的である。
【０００４】
【発明が解決しようとする課題】
しかしながら、そのソフトウェアの開発はＬＳＩが作製されてからの場合が多く、ＬＳＩの仕様検討時に見積もったメモリ量では不十分であったりすると、コード量の削減のためソフトウェア開発に多くの手間がかかり、逆にメモリ量の見積もりが多すぎた場合はチップコストの増加につながりやすい。
【０００５】
特に、ハーバードアーキテクチャでは、命令メモリとデータメモリは独立したバスに接続されるため、コード量の見積もりと、使用するデータ量の双方の見積もりを精度良く行わないと、ＬＳＩ化した後で命令メモリをデータメモリ、データメモリを命令メモリとして融通するわけにはいかないので問題となりがちである。
【０００６】
強いて言うなら、一般的なハーバードアーキテクチャのプロセッサには、命令メモリにデータをリード・ライトする命令を備えているが、命令パイプラインからデータパイプラインへの切り替えに複数命令サイクルを必要とするため、通常のデータメモリにアクセスする場合に比べ大幅なスループットの低下が起こる。
【０００７】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、ハーバードアーキテクチャのマイクロプロセッサと内蔵メモリを搭載したＬＳＩを設計する際に、ソフトウェアで使用する命令メモリ量、およびデータメモリ量がそれほど正確に見積もられていなくても、ソフトウェア開発時に自由度の高いプログラマブルな集積回路を提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点は、ハーバードアーキテクチャを有するプロセッサと、命令メモリとデータメモリを搭載する集積回路であって、上記プロセッサと上記命令メモリとを接続する命令バスと、上記プロセッサと上記データメモリとを接続するデータバスと、命令メモリまたはデータメモリとしてマッピング可能な共用メモリと、選択信号に応じて上記共用メモリと上記命令バスまたは上記データバスとを選択的に接続する接続切替手段と、少なくとも上記共用メモリが現在、上記命令メモリまたは上記データメモリのどちらにマッピングされているか否かのステータス情報を保持する共用メモリステータス保持手段と、上記プロセッサから共用メモリへのアクセス指示を受けると、上記共用メモリステータス保持手段のステータス情報に基づいて上記選択信号を上記接続切替手段に出力するバス制御手段とを有する。
【０００９】
本発明の第２の観点は、ハーバードアーキテクチャを有するプロセッサと、命令メモリとデータメモリを搭載する集積回路であって、上記プロセッサと上記命令メモリとを接続する命令バスと、上記プロセッサと上記データメモリとを接続するデータバスと、命令メモリまたはデータメモリとしてマッピング可能な複数の共用メモリバンクと、選択信号に応じて所望の上記共用メモリバンクと上記命令バスまたは上記データバスとを選択的に接続する接続切替手段と、少なくとも上記共用メモリバンクが現在、上記命令メモリまたは上記データメモリのどちらにマッピングされているか否かのステータス情報を保持する共用メモリ設定レジスタと、上記プロセッサから共用メモリへのアクセス指示を受けると、上記共用メモリ設定レジスタのステータス情報に基づいて上記選択信号を上記接続切替手段に出力するバス制御手段とを有する。
【００１０】
好適には、上記共用メモリバンクの特定番地をアクセスするタイミングで、あらかじめ保持していたアドレスと比較を行い、一致している場合に割り込み制御信号を上記プロセッサに出力する一致検出回路をさらに有する。
【００１１】
また、上記一致検出回路は、命令メモリまたはデータメモリの特定番地の値を各バンクに書き込んでおく共用メモリ割り込みアドレスレジスタと、命令アドレスまたはデータアドレスとの一致を検出し、一致した場合に割り込み制御信号を上記プロセッサに出力する一致検出レジスタとを含む。
【００１２】
好適には、上記共用メモリ設定レジスタは、各共用メモリバンクに対ししてそれぞれ存在し、少なくとも、常時命令メモリとしてマッピング、常時データメモリとしてマッピング、命令メモリとしてマッピングしているがデータメモリとしても使用可能、およびデータメモリとしてマッピングしているが命令メモリとしても使用可能であるというステータス情報を設定、変更可能である。
【００１３】
また、上記共用メモリ設定レジスタは、さらに、１バンク当たりを所定のページとみなし、上記共用メモリを１バンク当たり、命令メモリかデータメモリか、かつ、いずれのページにマッピングするかの情報を設定、変更可能である。
【００１４】
また、上記バス制御回路は、上記プロセッサから出力される命令アドレス、データアドレスをデコードするアドレスデコーダを含み、当該アドレスデコーダでデコードされたアドレスに基づいて、該当するメモリバンクへのアクセスを許可する。
【００１５】
好適には、上記アドレスデコーダは、上記共用メモリバンクを使用しない際には、非動作状態に保持される。
【００１６】
本発明によれば、たとえばプロセッサから出力される命令アドレス、データアドレスが、バス制御手段のアドレスデコーダによりデコードされ、該当するメモリバンクへのアクセスを許可される。
バス制御手段において、共用メモリバンクの管理情報、すなわち共用メモリ設定レジスタに設定されているステータス情報に基づいて、各バンクが命令メモリにマッピングされているのか、データメモリにマッピングされているのか、およびそれぞれどのページにマッピングされているかを判断する。
バス制御手段は、判断結果に従って必要な選択信号をアクティブにし、必要なバス−メモリの間のアクセスを許可する。
【００１７】
【発明の実施の形態】
以下、本発明の好適な実施形態を添付図面に関連付けて説明する。
【００１８】
図１は、本発明に係るハーバードアーキテクチャを有するプロセッサと、命令メモリとデータメモリを１チップに搭載する集積回路の一実施形態を示す回路図である。
【００１９】
本集積回路１０は、図１に示すように、ハーバードアーキテクチャのプロセッサ（ＣＰＵ）１１、命令メモリ（ＩＭＥＭ）１２、データメモリ（ＤＭＥＭ）１３、命令メモリまたはデータメモリとしてマッピング可能な４つの共用メモリバンク１４−０〜１４−３（ＳＭＥＭ、ＢＮＫ０〜ＢＮＫ３）、マルチプレクサ１５−０〜１５−３、マルチプレクサ１６−０〜１６−３、マルチプレクサ１７−０〜１７−３、命令アドレスバス１８−Ａ、命令ライトバス１８−Ｗ、命令リードバス１８−Ｒ、データアドレスバス１９−Ａ、データライトバス１９−Ｗ、データリードバス１９−Ｒ、およびバス制御回路（ＢＳＣＴＬ）２０を有している。
これらの構成要素のうち、マルチプレクサ１５−０〜１５−３、マルチプレクサ１６−０〜１６−３、およびマルチプレクサ１７−０〜１７−３により接続切替手段が構成されている。
【００２０】
本集積回路１０においては、プロセッサ１１と命令メモリ１２とが、命令アドレスバス１８−Ａ、命令ライトバス１８−Ｗ、および命令リードバス１８−Ｒを介して接続されている。
また、プロセッサ１１とデータメモリ１３とが、データアドレスバス１９−Ａ、データライトバス１９−Ｗ、およびデータリードバス１９−Ｒを介して接続されている。
また、プロセッサ１１とバス制御回路２０とが、命令アドレスバス１８−Ａ、命令ライトバス１８−Ｗ、および命令リードバス１８−Ｒ、並びに、データアドレスバス１９−Ａ、データライトバス１９−Ｗ、およびデータリードバス１９−Ｒにより接続されている。
【００２１】
本実施形態に係る命令メモリ１１、データメモリ１２、および共用メモリバンク１４−０〜１４−３は、ＳＲＡＭにより構成される。
【００２２】
図２は、本実施形態に係るシステムのメモリ構成を説明するための図である。図２において、ＡＤＲはアドレス、ＷＤはライトデータ、ＣＴＬは制御信号、ＲＤはリードデータをそれぞれ示している。
また、図３（Ａ）〜（Ｃ）は、本実施形態に係る命令メモリ、データメモリ、共用メモリのメモリマップの例を示す図である。
【００２３】
本実施形態において、１バンクのメモリは、図２に示すように、ｎ本のアドレス線とｍ本のライトデータ信号、およびｍ本のリードデータ信号、制御信号のインターフェースを持ち、１バンクあたりの総ビット数はｍｘ２ｎ乗となる。
この例では１バンクあたり４Ｋｂのサイズを想定してあるが、ビット幅は任意で、命令・データ共に同じとしている。
また、図３に示すように、命令メモリ１２は４バンク（ＢＮＫ０〜３）で合計１６Ｋｂ、０ｘ００００−０ｘ３ＦＦＦの空間にマッピングし、データメモリ１３も４バンク合計１６Ｋｂ、０ｘ００００−０ｘ３ＦＦＦの空間にマッピングしている。
それ以外の空間は空き領域になっている。
１バンクあたりの容量は１Ｋｂとなり、そのアドレスは０ｘ０−０ｘ０ＦＦＦとなる。
【００２４】
マルチプレクサ１５−０は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ０の指示に従って、共用メモリバンク１４−０と命令アドレスバス１８−Ａまたはデータアドレスバス１９−Ａとを接続する。
マルチプレクサ１５−１は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ１の指示に従って、共用メモリバンク１４−１と命令アドレスバス１８−Ａまたはデータアドレスバス１９−Ａとを接続する。
マルチプレクサ１５−２は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ２の指示に従って、共用メモリバンク１４−２と命令アドレスバス１８−Ａまたはデータアドレスバス１９−Ａとを接続する。
マルチプレクサ１５−３は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ３の指示に従って、共用メモリバンク１４−３と命令アドレスバス１８−Ａまたはデータアドレスバス１９−Ａとを接続する。
【００２５】
マルチプレクサ１６−０は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ０の指示に従って、共用メモリバンク１４−０と命令ライトバス１８−Ｗまたはデータライトバス１９−Ｗとを接続する。
マルチプレクサ１６−１は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ１の指示に従って、共用メモリバンク１４−１と命令ライトバス１８−Ｗまたはデータライトバス１９−Ｗとを接続する。
マルチプレクサ１６−２は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ２の指示に従って、共用メモリバンク１４−２と命令ライトバス１８−Ｗまたはデータライトバス１９−Ｗとを接続する。
マルチプレクサ１６−３は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ３の指示に従って、共用メモリバンク１４−３と命令ライトバス１８−Ｗまたはデータライトバス１９−Ｗとを接続する。
【００２６】
マルチプレクサ１７−０は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ０の指示に従って、共用メモリバンク１４−０と命令リードバス１８−Ｒまたはデータリードバス１９−Ｒとを接続する。
マルチプレクサ１７−１は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ１の指示に従って、共用メモリバンク１４−１と命令リードバス１８−Ｒまたはデータリードバス１９−Ｒとを接続する。
マルチプレクサ１７−２は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ２の指示に従って、共用メモリバンク１４−２と命令リードバス１８−Ｒまたはデータリードバス１９−Ｒとを接続する。
マルチプレクサ１７−３は、バス制御回路２０によるメモリバンク選択信号ＳＥＬ３の指示に従って、共用メモリバンク１４−３と命令リードバス１８−Ｒまたはデータリードバス１９−Ｒとを接続する。
【００２７】
バス制御回路２０は、共用メモリステータス保持手段としての共用メモリ設定レジスタ（ＳＭＥＭＳＲＥＧ）２０１、アドレスデコーダ（ＡＤＲＤＥＣ）２０２、および一致検出回路（ＤＴＣ）２０３を有する。
【００２８】
共用メモリ設定レジスタ（ＳＭＥＭＳＲＥＧ）２０１は、共用メモリ１４−０〜１４−３が現在、命令メモリ１２またはデータメモリ１３のどちらにマッピングされているか否かのステータス情報を保持する。
アドレスデコーダ（ＡＤＲＤＥＣ）２０２は、命令アドレスバス１８−Ａまたはデータアドレスバス１９−Ａを通してプロセッサ１１から命令アドレスＩＡ、データアドレスＤＡをデコードして該当する共用メモリバンクへのアクセスを許可する。
一致検出回路（ＤＴＣ）２０３は、共用メモリ１４−０〜１４−３の特定番地をアクセスするタイミングで、保持していたアドレスと比較を行い、一致している場合に割り込み制御信号ＩＮＴＲＰＴをプロセッサ１１に出力する。
【００２９】
バス制御回路２０は、アドレスデコーダ２０２で共用メモリ１４−０〜１４−３へのアクセス指示を受けると、共用メモリ設定レジスタ（ＳＭＥＭＳＲＥＧ）２０１に設定されたステータス情報に基づいてメモリバンク選択信号ＳＥＬ０をマルチプレクサ１５−０，１６−０，１７−０に、メモリバンク選択信号ＳＥＬ１をマルチプレクサ１５−１，１６−１，１７−１に、メモリバンク選択信号ＳＥＬ２をマルチプレクサ１５−２，１６−２，１７−２に、メモリバンク選択信号ＳＥＬ３をマルチプレクサ１５−３，１６−３，１７−３に選択的に供給する。
【００３０】
共用メモリは使用しない際は、アドレスデコーダ２０２が動作しないように制御し、リードデータも不定値が読み出されないよう、マルチプレクサ１７−０〜１７−３の入力にＧＮＤを接続しておくなどの処理をしておくことが必要がある。
【００３１】
図４は、本実施形態に係る共用メモリ設定レジスタについて説明するための図である。
【００３２】
共用メモリ設定レジスタ２０１は、図４に示すように、各共用メモリバンク１４−０〜１４−３に対して１つ存在し、０−３のバンク番号に対して、ＢＫｎｓｔ（ｎ＝バンク番号）という名前が付されている。
それぞれの設定レジスタの内容は、Ｐ＝常時プログラムメモリとしてマッピング、Ｄ＝常時データメモリとしてマッピング、ＰＳ＝プログラムメモリとしてマッピングしているがデータメモリとしても使用可能、ＤＳ＝データメモリとしてマップしているがプログラムメモリとしても使用可能、等のステータス情報を保持できる。
さらに、１バンクあたり４Ｋｗを１ページとみなし、共用メモリを１バンクあたり、プログラムメモリかデータメモリか、かつ、どのページにマッピングするかの情報も保持している。
【００３３】
図５（Ａ），（Ｂ）は、本実施形態に係る共用メモリ設定レジスタに値を設定・変更する場合の例を示す図である。
【００３４】
図５（Ａ），（Ｂ）の例は、バンクステータス情報ＢＫ２ＳＴがプログラム用のバンク６として設定されていた共用メモリを、データ用のバンク５として使用するようにレジスタ設定を書き換えた場合を示している。
【００３５】
図６（Ａ），（Ｂ）は、共用メモリ設定レジスタの設定を変更する前の命令メモリマップおよびデータメモリマップを示す図であり、図７（Ａ），（Ｂ）は、共用メモリ設定レジスタの設定を変更した後の命令メモリマップおよびデータメモリマップを示す図である。
【００３６】
図に示すように、設定変更前は０ｘ６０００−０ｘ６ＦＦＦ番地、プログラムメモリのバンク６に割り当てられているメモリが、設定変更後はデータメモリのバンク５となっている。
【００３７】
デフォルトの状態では、命令メモリ１６Ｋｂ、データメモリ１６Ｋｂだが、図４に示すように、レジスタを設定することで、共用メモリの各バンクを、どのページ（アドレス領域）にマッピングするか、プログラム領域にマッピングするのか、データ領域にマッピングするのかを設定することができる。
【００３８】
図５（Ａ），（Ｂ）は実際に共用メモリのマッピングを行った例を示す。
上から順に、それぞれバンク０〜３のステータスＢＫ０ＳＴ〜ＢＫ３ＳＴを表している。
図５（Ａ）のステータスは、バンク０はプログラムメモリのバンク４固定、バンク１はプログラムメモリのバンク５固定、バンク２はプログラムメモリのバンク６で、割り当てを変更することを許可しており、バンク３はデータメモリのバンク４固定である。
【００３９】
各バンクのバンク割り当てをソフトウェアで管理する場合は、このレジスタのステータスを判定し、必要なプログラムまたはデータ用メモリの割り当てを変更することができる。
図５（Ｂ）のステータスは、共用メモリバンク２の割り当て許可を判定し、データメモリバンク５へ割り当て変更を行った状態を表す。
この変更により、図６（Ａ），（Ｂ）および図７（Ａ），（Ｂ）に示すように、プログラム（命令）メモリのバンク６が、データメモリの空き領域だった０ｘ５０００−０ｘ５ＦＦＦのバンク５にマッピングされるイメージを表している。
【００４０】
この管理情報は、デバッガなどのソフトウェア開発ツールにも知らせる必要があるが、共用メモリ設定レジスタ２０１の値は、一般的にはプロセッサ１１のデータ空間にマッピングするので、デバッグモニタプログラムなどで共用メモリ設定レジスタの値を随時リードすることが可能でデバッガでもメモリ領域の変化を動的に知ることができる。
データメモリアクセス中に、領域が足りなくなった場合に、空いている共用メモリがある場合には、本機構を使用して動作中にデータメモリの追加を行うことが可能になる。
【００４１】
図８は、本実施形態に係る一致検出回路の構成例を示すブロック図である。
【００４２】
一致検出回路２０３は、図８に示すように、命令メモリ１１またはデータメモリ１２の特定番地の値を各バンクに書き込んでおく共用メモリ割り込みアドレスレジスタとしてのバンク０割り込みアドレスレジスタ（ＩＮＴＡＲＥＧ０）２０３１、バンク１割り込みアドレスレジスタ（ＩＮＴＡＲＥＧ１）２０３２、バンク２割り込みアドレスレジスタ（ＩＮＴＡＲＥＧ２）２０３３、およびプログラムアドレスＩＡ、またはデータアドレスＤＡとの一致を検出し、それを割り込み制御信号として出力するバンク３割り込みアドレスレジスタ（ＩＮＴＡＲＥＧ３）２０３４と、一致検出０レジスタ（ＤＴＲＥＧ０）２０３５、一致検出１レジスタ（ＤＴＲＥＧ１）２０３６、一致検出２レジスタ（ＤＴＲＥＧ２）２０３７、および一致検出３レジスタ（ＤＴＲＥＧ３）２０３８と、プログラムアドレスレジスタ（ＩＡＲＥＧ）２０３９、データアドレスレジスタ（ＤＩＲＥＧ）２０４０、およびマルチプレクサ２０４１を有している。
【００４３】
たとえば図８において、データアドレスレジスタ２０３９に固定データメモリの最終番地を設定しておく。
さらに、データまたはプログラムのどちらのバンクを一致検出の対象にするかを決めるためのメモリバンク選択信号ＳＥＬ４をデータアドレス側に設定する。バンク３割り込みアドレスレジスタ２０３４に、バンク３の最終番地を設定し、一致検出３レジスタを許可状態にしておく。
【００４４】
そして、プログラム実行中に、上記の一致検出が働き、つまりデータメモリの最終番地がアクセスされ、割り込み制御信号ＩＮＴＲＰＴ３がアクティブになる。これにより、プロセッサ１１は割り込み処理状態になり、ユーザープログラムの実行は停止する。
割り込み処理では、該当割り込みは利用可能な共用メモリをデータメモリのバンクに切り替える処理を行うようプログラムする。
これにより、割り込み処理から復帰後のユーザープログラムは追加されたバンクのデータメモリを連続的に使用可能になる。
【００４５】
また、ハードウェアの実装により、ある領域のアクセスで自動的に共用メモリ設定レジスタ２０１を変化させることも可能である。その場合も、制御レジスタで情報を管理しているので、デバッグモニタによるプログラム領域の管理は可能になっている。
【００４６】
次に、図１の構成における共用メモリバンクへのアクセス動作について説明する。
【００４７】
プロセッサ１１から出力される命令アドレスＩＡ、データアドレスＤＡが、バス制御回路２０のアドレスデコーダ２０２によりデコードされ、該当するメモリバンクへのアクセスを許可される。
【００４８】
ここで、ＰＷＤ＝命令バスライトデータ、ＤＷＤ＝データバスライトデータ、ＰＲＤ＝命令リードデータ、ＤＲＤ＝データリードデータとなっているが、バス制御回路２０において、共用メモリバンク１４−０〜１４−３の管理情報、すなわち共用メモリ設定レジスタ２０１に設定されているステータス情報に基づいて、各バンク１４−０〜１４−３が命令メモリ１２にマッピングされているのか、データメモリ１３にマッピングされているのか、およびそれぞれどのページにマッピングされているかを判断する。
バス制御回路２０は、判断結果に従って必要なメモリバンク選択信号ＳＥＬ０〜３をアクティブにし、必要なバス−メモリの間のアクセスを許可する。
また、リード・ライト信号はアクセスに付随し、必要なメモリの制御信号として供給される。
【００４９】
また、一致検出回路２０３による割り込み信号ＩＮＴＲＰＴがプロセッサ１１に入力されることにより、特定アドレスのアクセスによりソフトで自動的にバンクの切り替えを効率よく行うことが可能となっている。
【００５０】
管理情報により、ステータスＰＳ（プログラムメモリとしてマッピングしているがデータメモリとしても使用可能）のバンクが存在する場合は、該当バンクのステータスをＤ（常時データメモリとしてマッピング）かＤＳ（データメモリとしてマッピングしているがプログラムメモリとしても使用可能）へ書き換える。ステータス情報の書き換えは、通常１ＣＰＵＣＬＫで完了するが、連続でアクセスする命令により、切り替えが間に合わない場合は、制御信号をビジー（ＢＵＳＹ）信号として扱い、プロセッサを１サイクル停止させることなどにも応用可能である。
【００５１】
以上説明したように、本実施形態によれば、ハーバードアーキテクチャを有するプロセッサ１１と、命令メモリ１２とデータメモリ１３を搭載する集積回路１０において、プロセッサ１１と命令メモリ１２とを接続する命令バス１８と、プロセッサ１１とデータメモリ１３とを接続するデータバス１９と、命令メモリ１２またはデータメモリ１３としてマッピング可能な共用メモリバンク１４−０〜１４−３と、選択信号ＳＥＬ０〜ＳＥＬ３に応じて共用メモリと命令バスまたはデータバスとを選択的に接続するマルチプレクサ１５−０〜１５−３，１６−０〜１６−３，１７−０〜１７−３と、共用メモリバンクが現在、命令メモリまたはデータメモリのどちらにマッピングされているか否かのステータス情報を保持する共用メモリ設定レジスタ２０１を有し、設定されたステータス情報に基づいて選択信号ＳＥＬ０〜ＳＥＬ３をマルチプレクサ１５−０〜１５−３，１６−０〜１６−３，１７−０〜１７−３に出力するバス制御回路２０を設けたので、以下の効果を得ることができる。
【００５２】
ハーバードアーキテクチャのマイクロプロセッサと内蔵メモリを搭載したＬＳＩを設計する際に、ソフトウェアで使用する命令メモリ量、およびデータメモリ量がそれほど正確に見積もられていなくても、ソフトウェア開発時に自由度の高いプログラマブルな集積回路を実現できる。
その結果、ソフトウェア開発ＴＡＴの短縮化を図れ、メモリ不足等の理由によるＬＳＩの試作回数の削減を図れることが可能となる。
【００５３】
【発明の効果】
以上説明したように、本発明によれば、ハーバードアーキテクチャのマイクロプロセッサと内蔵メモリを搭載したＬＳＩを設計する際に、ソフトウェアで使用する命令メモリ量、およびデータメモリ量がそれほど正確に見積もられていなくても、ソフトウェア開発時に自由度の高いプログラマブルな集積回路を実現できる利点がある。
【図面の簡単な説明】
【図１】本発明に係るハーバードアーキテクチャを有するプロセッサと、命令メモリとデータメモリを１チップに搭載する集積回路の一実施形態を示す回路図である。
【図２】本実施形態に係るシステムのメモリ構成を説明するための図である。
【図３】（Ａ）〜（Ｃ）は、本実施形態に係る命令メモリ、データメモリ、共用メモリのメモリマップの例を示す図である。
【図４】本実施形態に係る共用メモリ設定レジスタについて説明するための図である。
【図５】（Ａ），（Ｂ）は、本実施形態に係る共用メモリ設定レジスタに値を設定・変更する場合の例を示す図である。
【図６】（Ａ），（Ｂ）は、共用メモリ設定レジスタの設定を変更する前の命令メモリマップおよびデータメモリマップを示す図である。
【図７】（Ａ），（Ｂ）は、共用メモリ設定レジスタの設定を変更した後の命令メモリマップおよびデータメモリマップを示す図である。
【図８】本実施形態に係る一致検出回路の構成例を示すブロック図である。
【符号の説明】
１０…集積回路、１１…プロセッサ（ＣＰＵ）、１２…命令メモリ（ＩＭＥＭ）、１３…データメモリ（ＤＭＥＭ）、１４−０〜１４−３…共用メモリバンク（ＳＭＥＭ、ＢＮＫ０〜ＢＮＫ３）、１５−０〜１５−３，１６−０〜１６−３，１７−０〜１７−３…マルチプレクサ、１８−Ａ…命令アドレスバス、１８−Ｗ…命令ライトバス、１８−Ｒ…命令リードバス、１９−Ａ…データアドレスバス、１９−Ｗ…データライトバス、１９−Ｒ…データリードバス、２０…バス制御回路（ＢＳＣＴＬ）、２０１…共用メモリ設定レジスタ（ＳＭＥＭＳＲＥＧ）、２０２…アドレスデコーダ（ＡＤＲＤＥＣ）、２０３…一致検出回路（ＤＴＣ）、２０３１…バンク０割り込みアドレスレジスタ（ＩＮＴＡＲＥＧ０）、２０３２…バンク１割り込みアドレスレジスタ（ＩＮＴＡＲＥＧ１）、２０３３…バンク２割り込みアドレスレジスタ（ＩＮＴＡＲＥＧ２）、２０３４…バンク３割り込みアドレスレジスタ（ＩＮＴＡＲＥＧ３）、２０３５…一致検出０レジスタ（ＤＴＲＥＧ０）、２０３６…一致検出１レジスタ（ＤＴＲＥＧ１）、２０３７…一致検出２レジスタ（ＤＴＲＥＧ２）、２０３８…一致検出３レジスタ（ＤＴＲＥＧ３）、２０３９…プログラムアドレスレジスタ（ＩＡＲＥＧ）、２０４０…データアドレスレジスタ（ＤＩＲＥＧ）、２０４１…マルチプレクサ。
【図１】
2004171232.tif 000003
【図２】
2004171232.tif 000004
【図３】
2004171232.tif 000005
【図４】
2004171232.tif 000006
【図５】
2004171232.tif 000007
【図６】
2004171232.tif 000008
【図７】
2004171232.tif 000009
【図８】
2004171232.tif 000010