(57)【要約】      （修正有）【課題】マイクロコンピュータにおいて、命令コード実行時の消費電力を抑える。【解決手段】マイクロコンピュータ１００において、プログラムメモリ４０を、小規模な複数のＳＲＡＭ４１ａ〜４１ｊと、複数のＳＲＡＭの出力データの各々を入力し、入力した複数のＳＲＡＭの出力データの何れか一つを選択して出力するセレクタ４３と、マイクロプロセッサ１０から送られるアドレスデータを入力し、該アドレスデータに基づき複数のＳＲＡＭの何れか一つを選択すると共に、複数のＳＲＡＭのうちの選択されたＳＲＡＭの出力データをセレクタから出力するようにセレクタを制御するアドレスデコーダ４２とで構成し、命令コード実行時の消費電力を抑える。【選択図】図５
2014211673.tif 000002
【特許請求の範囲】
【請求項１】
命令コードを格納したプログラム記憶装置と、該プログラム記憶装置から前記命令コードを読み出して実行するマイクロプロセッサとを備えたマイクロコンピュータであって、
前記プログラム記憶装置は、前記命令コードを記憶する複数の記憶手段と、
前記複数の記憶手段の出力データの各々を入力し、入力した前記複数の記憶手段の出力データの何れか一つを選択して出力するセレクタと、
前記マイクロプロセッサから送られるアドレスデータを入力し、該アドレスデータに基づき前記複数の記憶手段の何れか一つを選択すると共に、前記複数の記憶手段のうちの選択された記憶手段の出力データを前記セレクタから出力するように前記セレクタを制御するアドレスデコーダと、を備えたことを特徴とするマイクロコンピュータ。
【請求項２】
前記複数の記憶手段は、それぞれ同一容量の記憶手段であることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項３】
前記複数の記憶手段は、複数の異なる容量の記憶手段で構成されていることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項４】
前記複数の記憶手段は、少なくとも一つの第１の記憶容量の記憶手段と、少なくとも一つの前記第１の記憶容量より大きい第２の記憶容量の記憶手段で構成されていることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項５】
前記第１の記憶容量の記憶手段には良く使用される命令コードを格納し、前記第２の記憶容量の記憶手段には使用頻度の少ない命令コードを格納することを特徴とする請求項４記載のマイクロコンピュータ。
【請求項６】
前記複数の記憶手段はＳＲＡＭであることを特徴とする請求項１乃至５に記載のマイクロコンピュータ。
【請求項７】
前記プログラム記憶装置と前記マイクロプロセッサを、一つの半導体に集積したことを特徴とする請求項１記載のマイクロコンピュータ。
【請求項８】
データを記憶する複数の記憶手段と、
前記複数の記憶手段の出力データの各々を入力し、入力した前記複数の記憶手段の出力データの何れか一つを選択して出力するセレクタと、
アドレスデータを入力し、該アドレスデータに基づき前記複数の記憶手段の何れか一つを選択すると共に、前記複数の記憶手段のうちの選択された記憶手段の出力データを前記セレクタから出力するように前記セレクタを制御するアドレスデコーダと、
を備えたことを特徴とする記憶装置。
【請求項９】
前記複数の記憶手段はＳＲＡＭであることを特徴とする請求項８に記載の記憶装置。
【請求項１０】
前記複数の記憶手段と前記セレクタと前記アドレスデコーダを、一つの半導体に集積したことを特徴とする請求項８記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータおよび記憶装置に関するものである。
【背景技術】
【０００２】
一般的なマイクロコンピュータは、マイクロプロセッサがプログラムと呼ばれる命令コードを格納したプログラムメモリから該命令コードを読み出して実行する（例えば、特許文献１）。
【０００３】
図１は、一般的なマイクロコンピュータ１００の機能回路構成を示すブロック図である。同図において、処理を実行するマイクロプロセッサ１０が、命令コードを記憶したプログラムメモリ２０、及びデータメモリ３０と接続される。
【０００４】
マイクロコンピュータ１００には、システムクロックＣＬＫとリセット信号ＲＥＳＥＴとが外部から与えられる。またマイクロプロセッサ１０は、プログラムメモリ２０にチップセレクト信号ＰＭＣＳを出力すると共に、ＰＭアドレスバスを介してプログラムメモリ２０のアドレスを指定することで、当該アドレスに格納されている命令コードをＰＭデータバスを介して読み出す。
【０００５】
さらにマイクロプロセッサ１０は、データメモリ３０に対してチップセレクト信号ＤＭＣＳ、読み出し信号ＤＭＯＥ、書き込み信号ＤＭＷＥを出力すると共に、ＤＭアドレスバスを介してアドレスを指定し、当該アドレスへのデータの書き込みと読み出しとをＤＭデータバスを介して行なう。
【０００６】
図２は、マイクロプロセッサ１０が命令コードを実行する際のタイミングチャートである。同図において、図２（Ａ）はマイクロプロセッサ１０のシステムクロックＣＬＫであり、図２（Ｂ）に示すように１命令コードを、命令フェッチステージ「ＩＦ」、命令デコードステージ「ＩＤ」、命令実行ステージ「ＥＸ」、メモリアクセスステージ「ＭＥＭ」、及びレジスタライトバックステージ「ＷＢ」の計５ステージ、５サイクルで実行している場合を例示する。
【０００７】
図３は、マイクロプロセッサ１０内で命令コードを実行するためのブロック構成を示す図である。同図において、ＰＭ制御部１３は、上記プログラムメモリ２０にチップセレクト信号ＰＭＣＳとＰＭアドレスとを出力する。プログラムメモリ２０からＰＭデータバスを介して読み出されてきた命令コードは、命令レジスタ（ＩＲ）部１１に入力されて保持される（命令フェッチステージ「ＩＦ」）。
【０００８】
命令レジスタ（ＩＲ）部１１の保持する命令コードは、命令デコーダ（ＩＤ）部１２が読み出してデコードし、デコード結果をＰＭ制御部１３へ出力する共に（命令デコードステージ「ＩＤ」）、デコード結果に応じて適宜ＤＭ制御部１４、ロードメモリデータレジスタ（ＬＭＤＲ）部１５、レジスタファイル（ＲＦ）部１６、算術演算ユニット（ＡＬＵ）部１７をそれぞれ制御する（命令実行ステージ「ＥＸ」）。
【０００９】
ＤＭ制御部１４は、ＤＭアドレスバスを介して上記データメモリ３０のアドレス指定を行なうと共に、データメモリ３０に対して上記チップセレクト信号ＤＭＣＳ、読み出し信号ＤＭＯＥ、書き込み信号ＤＭＷＥを出力する。
ロードメモリデータレジスタ（ＬＭＤＲ）部１５及びレジスタファイル（ＲＦ）部１６は、ＤＭデータバスを介して上記データメモリ３０と接続され、保持しているデータをデータメモリ３０へ出力し、またデータメモリ３０から出力されてきたデータを保持する（メモリアクセスステージ「ＭＥＭ」）。
【００１０】
算術演算ユニット（ＡＬＵ）部１７は、命令デコーダ（ＩＤ）部１２からの制御に基づいてレジスタファイル（ＲＦ）部１６とデータを送受しながら、通常の四則演算及び論理演算等、指定された演算を実行し、演算結果をレジスタファイル（ＲＦ）部１６へ出力する（レジスタライトバックステージ「ＷＢ」）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開平５−２６５７５４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
近年のマイクロコンピュータは、該マイクロコンピュータを搭載する機器の高機能化、高性能化に伴い、プログラムの命令コード量が増え、命令コードを格納するプログラムメモリの容量が増大している。そのため、実行すべき命令コードを、プログラムメモリから毎回読み出す命令フェッチ動作の電力消費が大きくなってしまうという課題があった。
【００１３】
本発明は上記のような実情に鑑みてなされたもので、その目的とするところは、命令コード実行時の消費電力を抑えることが可能なマイクロコンピュータおよび記憶装置を提供することにある。
【課題を解決するための手段】
【００１４】
上記課題を解決するため、本発明のマイクロコンピュータは、命令コードを格納したプログラム記憶装置と、該プログラム記憶装置から前記命令コードを読み出して実行するマイクロプロセッサとを備えたマイクロコンピュータであって、前記プログラム記憶装置は、前記命令コードを記憶する複数の記憶手段と、前記複数の記憶手段の出力データの各々を入力し、入力した前記複数の記憶手段の出力データの何れか一つを選択して出力するセレクタと、前記マイクロプロセッサから送られるアドレスデータを入力し、該アドレスデータに基づき前記複数の記憶手段の何れか一つを選択すると共に、前記複数の記憶手段のうちの選択された記憶手段の出力データを前記セレクタから出力するように前記セレクタを制御するアドレスデコーダと、を備えたことを特徴とする。
【００１５】
上記課題を解決するため、本発明の記憶装置は、データを記憶する複数の記憶手段と、前記複数の記憶手段の出力データの各々を入力し、入力した前記複数の記憶手段の出力データの何れか一つを選択して出力するセレクタと、アドレスデータを入力し、該アドレスデータに基づき前記複数の記憶手段の何れか一つを選択すると共に、前記複数の記憶手段のうちの選択された記憶手段の出力データを前記セレクタから出力するように前記セレクタを制御するアドレスデコーダと、を備えたことを特徴とする。
【発明の効果】
【００１６】
本発明のマイクロコンピュータおよび記憶装置は、命令コード実行時の消費電力を抑えることが可能となる。
【図面の簡単な説明】
【００１７】
【図１】一般的なマイクロコンピュータの機能回路構成を示すブロック図である。
【図２】一般的なマイクロプロセッサが命令コードを実行する際のタイミングチャートである。
【図３】図１のマイクロプロセッサ内で命令コードを実行するためのブロック構成を示す図である。
【図４】１個の大規模なＳＲＡＭでプログラムメモリを構成した一般的なマイクロコンピュータの機能回路構成を示すブロック図である。
【図５】本発明の第１実施形態に係る１０個の小規模なＳＲＡＭでプログラムメモリを構成したマイクロコンピュータの機能回路構成を示すブロック図である。
【図６】同実施形態に係るアドレスデコーダの入出力信号を示すブロック図である。
【図７】同実施形態に係るＳＲＡＭの入出力信号を示すブロック図である。
【図８】同実施形態に係るセレクタの入出力信号を示すブロック図である。
【図９】同実施形態に係るマイクロコンピュータの各信号のタイミングチャートである。
【図１０】ＳＲＡＭ構成の違いによる消費電力の差異を示すグラフである。
【図１１】本発明の第２実施形態に係る６個の小規模なＳＲＡＭと１個の中規模なＳＲＡＭでプログラムメモリを構成したマイクロコンピュータの機能回路構成を示すブロック図である。
【図１２】ＳＲＡＭ構成の違いによる回路面積と消費電力の差異を示すグラフである。
【発明を実施するための形態】
【００１８】
（第１実施形態）
以下、本発明の第１実施形態に係るマイクロプロセッサについて図面を参照して説明する。なお、以下の説明および図４〜図９において、本発明の動作に関係しない信号、並びにデータメモリについては、説明を省略し図示しない。
【００１９】
図４は、１個の大規模なＳＲＡＭでプログラムメモリを構成した一般的なマイクロコンピュータ１００の機能回路構成を示すブロック図である。同図において、プログラムメモリ２０は、１６ｂｉｔ×１２８０ワードの命令コードを格納する１個のＳＲＡＭ（ＰＭ００）２１で構成されている。本構成においては、マイクロプロセッサ１０は上記説明したように、アドレスバスを介してアドレスを指定することで、ＳＲＡＭ（ＰＭ００）２１の当該アドレスに格納されている命令コードをデータバスを介して読み出す。
【００２０】
図５は、本発明の第１実施形態におけるマイクロコンピュータ１００のブロック図である。同図において、プログラムメモリ４０の容量は、図４のプログラムメモリ２０と全体容量は同じ１６ｂｉｔ×１２８０ワードであるが、１０個の小規模なＳＲＡＭに分割し、１６ｂｉｔ×１２８ワードの小規模ＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊで構成されている。
【００２１】
図５において、アドレスデコーダ４２は、マイクロプロセッサ１０が指定するアドレスｒｄ＿ａｄｄｒ［１０：０］（Ｂ）がアドレスバスを介して入力され、入力されたアドレスｒｄ＿ａｄｄｒ［１０：０］（Ｂ）の上位４ｂｉｔをデコードして１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊの、どのＳＲＡＭにアクセスするかを決定する。
また、セレクタ４３は、アクセスするＳＲＡＭの出力データを選択し、データバスを介してマイクロプロセッサ１０へ、アクセスしたＳＲＡＭに格納されている命令コードｒｄ＿ｄａｔａ［１５：０］（Ｙ）を出力する。
【００２２】
図６は、アドレスデコーダ４２の入出力信号を示すブロック図である。同図において、ｒｄ＿ａｄｄｒ［１０：０］（Ｂ）は、マイクロプロセッサ１０が指定する１１ｂｉｔのアドレスである。ｃｅｂ０〜ｃｅｂ９（Ｄ、Ｆ、Ｈ、Ｊ、Ｌ、Ｎ、Ｐ、Ｒ、Ｔ、Ｖ）は、１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊの、どのＳＲＡＭをイネーブルにするかを決めるチップイネーブル信号である。ｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）は、入力された１１ｂｉｔのアドレスｒｄ＿ａｄｄｒ［１０：０］（Ｂ）の下位７ｂｉｔで、１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊのそれぞれに出力される。ｓｅｌ［３：０］（Ｘ）は、イネーブルになっているＳＲＡＭの出力信号をセレクタ４３が選択するように指定する選択信号である。
【００２３】
図７は、１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊそれぞれの入出力信号を示すブロック図である。同図において、ｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）は、アドレスデコーダ４２において、マイクロプロセッサ１０が指定する１１ｂｉｔのアドレスｒｄ＿ａｄｄｒ［１０：０］（Ｂ）の下位７ｂｉｔを取り出したものである。ｃｅｂｘ（Ｄ、Ｆ、Ｈ、Ｊ、Ｌ、Ｎ、Ｐ、Ｒ、Ｔ、Ｖ）は、チップイネーブル信号で、Ｌｏｗレベルの信号で当該ＳＲＡＭがイネーブルとなる。ｒｄ＿ｄａｔａｘ［１５：０］（Ｅ、Ｇ、Ｉ、Ｋ、Ｍ、Ｏ、Ｑ、Ｓ、Ｕ、Ｗ）は、ｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）で指定したアドレスに格納されている命令コードである。
【００２４】
図８は、セレクタ４３の入出力信号を示すブロック図である。同図において、ｒｄ＿ｄａｔａ０［１５：０］〜ｒｄ＿ｄａｔａ９［１５：０］（Ｅ、Ｇ、Ｉ、Ｋ、Ｍ、Ｏ、Ｑ、Ｓ、Ｕ、Ｗ）は、１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊそれぞれから出力された命令コードである。ｓｅｌ［３：０］（Ｘ）は、選択されたＳＲＡＭの出力信号を選択する選択信号である。ｒｄ＿ｄａｔａ［１５：０］（Ｙ）は、１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊの内の何れかが出力した命令コードであり、ｒｄ＿ｄａｔａ０［１５：０］〜ｒｄ＿ｄａｔａ９［１５：０］（Ｅ、Ｇ、Ｉ、Ｋ、Ｍ、Ｏ、Ｑ、Ｓ、Ｕ、Ｗ）の内、ｓｅｌ［３：０］（Ｘ）で選択した命令コードである。
【００２５】
以下、プログラムメモリ４０の動作について詳しく説明する。
今、マイクロプロセッサ１０からアドレスバスを介して１１ｂｉｔのアドレスｒｄ＿ａｄｄｒ［１０：０］（Ｂ）がアドレスデコーダ４２に入力されると、アドレスデコーダ４２は１１ｂｉｔのアドレスを上位４ｂｉｔと下位７ｂｉｔに分割する。上位４ｂｉｔは１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊの、どのＳＲＡＭにアクセスするかを決めるｂｉｔで、０の場合はＳＲＡＭ（ＰＭ０）４１ａがイネーブル状態になるようにチップイネーブル信号ｃｅｂ０（Ｄ）をＬｏｗレベルにすると同時に、ｃｅｂ０（Ｄ）以外をＨｉｇｈレベルとしてＳＲＡＭ（ＰＭ０）４１ａ以外をディセーブル状態にする。また、セレクタ４３がＳＲＡＭ（ＰＭ０）４１ａからの出力信号を選択するように、ｓｅｌ［３：０］（Ｘ）を０とする。
【００２６】
以下、上位４ｂｉｔが１の場合はチップイネーブル信号ｃｅｂ１（Ｆ）をＬｏｗレベル、ｓｅｌ［３：０］（Ｘ）を１、上位４ｂｉｔが２の場合はチップイネーブル信号ｃｅｂ２（Ｈ）をＬｏｗレベル、ｓｅｌ［３：０］（Ｘ）を２、・・・、上位４ｂｉｔが９の場合はチップイネーブル信号ｃｅｂ９（Ｖ）をＬｏｗレベル、ｓｅｌ［３：０］（Ｘ）を９とする。
【００２７】
またアドレスデコーダ４２は、１１ｂｉｔのアドレスｒｄ＿ａｄｄｒ［１０：０］（Ｂ）の下位７ｂｉｔを抜き出し、１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊそれぞれのアドレスを指定するアドレスデータｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として、１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊそれぞれに出力する。
【００２８】
１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊの内、チップイネーブル信号ｃｅｂｘ（Ｄ、Ｆ、Ｈ、Ｊ、Ｌ、Ｎ、Ｐ、Ｒ、Ｔ、Ｖ）がＬｏｗレベルのＳＲＡＭがイネーブル状態になっており、アドレスデータｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）が指し示すアドレスに格納されている命令コードｒｄ＿ｄａｔａｘ［１５：０］（Ｅ、Ｇ、Ｉ、Ｋ、Ｍ、Ｏ、Ｑ、Ｓ、Ｕ、Ｗ）をセレクタ４３に出力する。
【００２９】
セレクタ４３には、１０個のＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊそれぞれの出力ｒｄ＿ｄａｔａｘ［１５：０］（Ｅ、Ｇ、Ｉ、Ｋ、Ｍ、Ｏ、Ｑ、Ｓ、Ｕ、Ｗ）が入力されており、選択信号ｓｅｌ［３：０］（Ｘ）の値に基づいて、ｒｄ＿ｄａｔａｘ［１５：０］（Ｅ、Ｇ、Ｉ、Ｋ、Ｍ、Ｏ、Ｑ、Ｓ、Ｕ、Ｗ）の何れか一つを選択して、命令コードｒｄ＿ｄａｔａ［１５：０］（Ｙ）をデータバスに出力する。
【００３０】
今、例えば、ｓｅｌ［３：０］（Ｘ）が０であれば、セレクタ４３はｒｄ＿ｄａｔａ０［１５：０］（Ｅ）を命令コードｒｄ＿ｄａｔａ［１５：０］（Ｙ）として出力する。
【００３１】
以下、ｓｅｌ［３：０］（Ｘ）が１の場合はｒｄ＿ｄａｔａ１［１５：０］（Ｅ）を、ｓｅｌ［３：０］（Ｘ）が２の場合はｒｄ＿ｄａｔａ２［１５：０］（Ｅ）を、・・・、ｓｅｌ［３：０］（Ｘ）が９の場合はｒｄ＿ｄａｔａ９［１５：０］（Ｅ）を、命令コードｒｄ＿ｄａｔａ［１５：０］（Ｙ）として出力する。
【００３２】
図９は、マイクロコンピュータ１００の各信号のタイミングチャートである。
システムクロックＣＬＫ（Ａ）に同期してマイクロプロセッサ１０からアドレスバスを介して１１ｂｉｔのアドレスｒｄ＿ａｄｄｒ［１０：０］（Ｂ）が、０ｘ０００、０ｘ３７Ｆ、０ｘ４Ａ８、０ｘ０８６、０ｘ３ＤＥ、０ｘ２６５、０ｘ１３Ｂ、０ｘ４５３、０ｘ２Ｆ７、０ｘ１９２の順にアドレスデコーダ４２に入力される。
【００３３】
アドレスデコーダ４２は、０ｘ０００が入力されると、上位４ｂｉｔが０であるのでｃｅｂ０（Ｄ）をＬｏｗレベルにすると同時に、ｃｅｂ０（Ｄ）以外をＨｉｇｈレベルとし、ｓｅｌ［３：０］（Ｘ）を０とする。また、下位７ｂｉｔをｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として０ｘ００を出力する。
【００３４】
以下、０ｘ３７Ｆが入力されると、上位４ｂｉｔが６であるのでｃｅｂ６（Ｐ）をＬｏｗレベルにすると同時に、ｃｅｂ６（Ｐ）以外をＨｉｇｈレベルとし、ｓｅｌ［３：０］（Ｘ）を６とする。また、下位７ｂｉｔをｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として０ｘ７Ｆを出力する。
【００３５】
０ｘ４Ａ８が入力されると、上位４ｂｉｔが９であるのでｃｅｂ９（Ｖ）をＬｏｗレベルにすると同時に、ｃｅｂ９（Ｖ）以外をＨｉｇｈレベルとし、ｓｅｌ［３：０］（Ｘ）を９とする。また、下位７ｂｉｔをｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として０ｘ２８を出力する。
【００３６】
０ｘ０８６が入力されると、上位４ｂｉｔが１であるのでｃｅｂ１（Ｆ）をＬｏｗレベルにすると同時に、ｃｅｂ１（Ｆ）以外をＨｉｇｈレベルとし、ｓｅｌ［３：０］（Ｘ）を１とする。また、下位７ｂｉｔをｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として０ｘ０６を出力する。
【００３７】
０ｘ３ＤＥが入力されると、上位４ｂｉｔが７であるのでｃｅｂ７（Ｒ）をＬｏｗレベルにすると同時に、ｃｅｂ７（Ｒ）以外をＨｉｇｈレベルとし、ｓｅｌ［３：０］（Ｘ）を７とする。また、下位７ｂｉｔをｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として０ｘ５Ｅを出力する。
【００３８】
０ｘ２６５が入力されると、上位４ｂｉｔが４であるのでｃｅｂ４（Ｌ）をＬｏｗレベルにすると同時に、ｃｅｂ４（Ｌ）以外をＨｉｇｈレベルとし、ｓｅｌ［３：０］（Ｘ）を４とする。また、下位７ｂｉｔをｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として０ｘ６５を出力する。
【００３９】
０ｘ１３Ｂが入力されると、上位４ｂｉｔが２であるのでｃｅｂ２（Ｈ）をＬｏｗレベルにすると同時に、ｃｅｂ２（Ｈ）以外をＨｉｇｈレベルとし、ｓｅｌ［３：０］（Ｘ）を２とする。また、下位７ｂｉｔをｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として０ｘ３Ｂを出力する。
【００４０】
０ｘ４５３が入力されると、上位４ｂｉｔが８であるのでｃｅｂ８（Ｔ）をＬｏｗレベルにすると同時に、ｃｅｂ８（Ｔ）以外をＨｉｇｈレベルとし、ｓｅｌ［３：０］（Ｘ）を８とする。また、下位７ｂｉｔをｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として０ｘ５３を出力する。
【００４１】
０ｘ２Ｆ７が入力されると、上位４ｂｉｔが５であるのでｃｅｂ５（Ｎ）をＬｏｗレベルにすると同時に、ｃｅｂ５（Ｎ）以外をＨｉｇｈレベルとし、ｓｅｌ［３：０］（Ｘ）を５とする。また、下位７ｂｉｔをｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として０ｘ７７を出力する。
【００４２】
０ｘ１９２が入力されると、上位４ｂｉｔが３であるのでｃｅｂ３（Ｊ）をＬｏｗレベルにすると同時に、ｃｅｂ３（Ｊ）以外をＨｉｇｈレベルとし、ｓｅｌ［３：０］（Ｘ）を３とする。また、下位７ｂｉｔをｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）として０ｘ１２を出力する。
【００４３】
上記の様にアドレスデコーダ４２が動作すると、ＳＲＡＭ（ＰＭ０〜ＰＭ９）４１ａ〜４１ｊは、ＳＲＡＭ０（ＰＭ０）４１ａ、ＳＲＡＭ６（ＰＭ６）４１ｇ、ＳＲＡＭ９（ＰＭ９）４１ｊ、ＳＲＡＭ１（ＰＭ１）４１ｂ、ＳＲＡＭ７（ＰＭ７）４１ｈ、ＳＲＡＭ４（ＰＭ４）４１ｅ、ＳＲＡＭ２（ＰＭ２）４１ｃ、ＳＲＡＭ８（ＰＭ８）４１ｉ、ＳＲＡＭ５（ＰＭ５）４１ｆ、ＳＲＡＭ３（ＰＭ３）４１ｄの順にイネーブルとなり、アドレスｄｅｃ＿ａｄｄｒ［６：０］（Ｃ）は、０ｘ００、０ｘ７Ｆ、０ｘ２８、０ｘ０６、０ｘ５Ｅ、０ｘ６５、０ｘ３Ｂ、０ｘ５３、０ｘ７７、０ｘ１２と変化し、各ＳＲＡＭは当該アドレスに記憶されている命令コードｒｄ＿ｄａｔａｘ［１５：０］（Ｅ、Ｇ、Ｉ、Ｋ、Ｍ、Ｏ、Ｑ、Ｓ、Ｕ、Ｗ）をセレクタ４３に出力する。
【００４４】
セレクタ４３は、選択信号ｃｅｌ［３：０］（Ｘ）が、０、６、９、１、７、４、２、８、５、３と変化するので、順番にｒｄ＿ｄａｔａ０［１５：０］（Ｅ）の値０、ｒｄ＿ｄａｔａ６［１５：０］（Ｑ）の値１、ｒｄ＿ｄａｔａ９［１５：０］（Ｗ）の値２、ｒｄ＿ｄａｔａ１［１５：０］（Ｇ）の値３、ｒｄ＿ｄａｔａ７［１５：０］（Ｓ）の値４、ｒｄ＿ｄａｔａ４［１５：０］（Ｍ）の値５、ｒｄ＿ｄａｔａ２［１５：０］（Ｉ）の値６、ｒｄ＿ｄａｔａ８［１５：０］（Ｕ）の値７、ｒｄ＿ｄａｔａ５［１５：０］（Ｏ）の値８、ｒｄ＿ｄａｔａ３［１５：０］（Ｋ）の値９を、命令コードｒｄ＿ｄａｔａ［１５：０］（Ｙ）としてデータバスに出力する。
【００４５】
図１０は、ＳＲＡＭ構成の違いによる消費電力の差異を示すグラフである。
図１０は、３つの異なる処理をマイクロコンピュータ１００で実行した場合の消費電力の比率を表したもので、従来構成である大規模な１個のＳＲＡＭで構成した場合を１とした時、本実施例による小規模なＳＲＡＭ１０個に分割した場合の消費電力がどのようになるかを示している。
図１０で示すように、従来構成では、大規模なＳＲＡＭからリード動作を行うため、消費電力が大きくなってしまうが、本実施例の分割方式のＳＲＡＭ構成では、１０個に分割した内の１個の小規模なＳＲＡＭからのリード動作になるため、消費電力が約４割〜５割減に抑えられているのがわかる。
【００４６】
（第２実施形態）
図１１は、本発明の第２実施形態におけるマイクロコンピュータ１００のブロック図である。同図において、プログラムメモリ５０の容量は、図４のプログラムメモリ２０と全体容量は同じ１６ｂｉｔ×１２８０ワードであるが、６個の小規模なＳＲＡＭと１個の中規模なＳＲＡＭに分割し、１６ｂｉｔ×１２８ワードの小規模ＳＲＡＭ（ＰＭ０〜ＰＭ５）５１ａ〜５１ｆと、１６ｂｉｔ×５１２ワードの中規模ＳＲＡＭ（ＰＭ６）５１ｇで構成されている。
なお、プログラムメモリ５０のアドレスデコーダ５２、セレクタ５３、並びに、各ＳＲＡＭ（ＰＭ０〜ＰＭ６）５１ａ〜５１ｇの動作は、プログラムメモリ４０と同様であるため、説明は省略する。
【００４７】
プログラムメモリ５０では、プログラムをコンパイルした際に、使用されている命令（サブルーチン）の回数を解析して、多く使用されている命令（サブルーチン）を小規模ＳＲＡＭ（ＰＭ０〜ＰＭ５）５１ａ〜５１ｆに格納し、使用頻度の少ない命令（サブルーチン）を中規模ＳＲＡＭ（ＰＭ６）５１ｇに格納している。
【００４８】
第２実施形態の構成では、第１実施形態の１０個の小規模なＳＲＡＭの構成と同等な消費電力を実現すると同時に、第１実施形態の構成よりもプログラムメモリの回路面積を小さく出来る。
【００４９】
図１２は、ＳＲＡＭ構成の違いによる回路面積と消費電力の差異を示すグラフである。
図１２で示すように、第２実施形態の構成では、第１実施形態の１０個の小規模なＳＲＡＭの構成と同等な消費電力を実現すると同時に、第１実施形態の構成よりもプログラムメモリの回路面積が小さく抑えられているのがわかる。
【００５０】
以上、本発明によるプログラムメモリを複数の小規模なＳＲＡＭに分割したマイクロプロセッサは、従来の大規模なＳＲＡＭ１個の構成によるプログラムメモリに比べて、命令コード実行時の消費電力を抑えることが可能となる。
【００５１】
なお、各回路の構成は、前記実施形態に例示したものは一例であり、これに限られるものではなく、これらは本発明の作用効果が得られる範囲内であれば適宜変更が可能であり、変更後の実施形態も特許請求の範囲に記載された発明、及びその発明と均等の発明の範囲に含まれる。
【００５２】
以下に、本出願の特許請求の範囲に記載された発明を付記する。
［請求項１］
命令コードを格納したプログラム記憶装置と、該プログラム記憶装置から前記命令コードを読み出して実行するマイクロプロセッサとを備えたマイクロコンピュータであって、
前記プログラム記憶装置は、前記命令コードを記憶する複数の記憶手段と、
前記複数の記憶手段の出力データの各々を入力し、入力した前記複数の記憶手段の出力データの何れか一つを選択して出力するセレクタと、
前記マイクロプロセッサから送られるアドレスデータを入力し、該アドレスデータに基づき前記複数の記憶手段の何れか一つを選択すると共に、前記複数の記憶手段のうちの選択された記憶手段の出力データを前記セレクタから出力するように前記セレクタを制御するアドレスデコーダと、を備えたことを特徴とするマイクロコンピュータ。
［請求項２］
前記複数の記憶手段は、それぞれ同一容量の記憶手段であることを特徴とする請求項１記載のマイクロコンピュータ。
［請求項３］ 
前記複数の記憶手段は、複数の異なる容量の記憶手段で構成されていることを特徴とする請求項１記載のマイクロコンピュータ。
［請求項４］ 
前記複数の記憶手段は、少なくとも一つの第１の記憶容量の記憶手段と、少なくとも一つの前記第１の記憶容量より大きい第２の記憶容量の記憶手段で構成されていることを特徴とする請求項１記載のマイクロコンピュータ。
［請求項５］
前記第１の記憶容量の記憶手段には良く使用される命令コードを格納し、前記第２の記憶容量の記憶手段には使用頻度の少ない命令コードを格納することを特徴とする請求項４記載のマイクロコンピュータ。
［請求項６］
前記複数の記憶手段はＳＲＡＭであることを特徴とする請求項１乃至５に記載のマイクロコンピュータ。
［請求項７］
前記プログラム記憶装置と前記マイクロプロセッサを、一つの半導体に集積したことを特徴とする請求項１記載のマイクロコンピュータ。
［請求項８］
データを記憶する複数の記憶手段と、
前記複数の記憶手段の出力データの各々を入力し、入力した前記複数の記憶手段の出力データの何れか一つを選択して出力するセレクタと、
アドレスデータを入力し、該アドレスデータに基づき前記複数の記憶手段の何れか一つを選択すると共に、前記複数の記憶手段のうちの選択された記憶手段の出力データを前記セレクタから出力するように前記セレクタを制御するアドレスデコーダと、
を備えたことを特徴とする記憶装置。
［請求項９］
前記複数の記憶手段はＳＲＡＭであることを特徴とする請求項８に記載の記憶装置。
［請求項１０］
前記複数の記憶手段と前記セレクタと前記アドレスデコーダを、一つの半導体に集積したことを特徴とする請求項８記載の記憶装置。
【符号の説明】
【００５３】
１０      マイクロプロセッサ
１１      命令レジスタ（ＩＲ）部
１２      命令でコーダ（ＩＤ）部
１３      ＰＭ制御部
１４      ＤＭ制御部
１５      ロードメモリデータレジスタ（ＬＭＤＲ）部
１６      レジスタファイル（ＲＦ）部
１７      算術演算ユニット（ＡＬＵ）部
２０      プログラムメモリ
２１      ＳＲＡＭ（ＰＭ００）
３０      データメモリ
４０      プログラムメモリ
４１ａ    ＳＲＡＭ（ＰＭ０）
４１ｂ    ＳＲＡＭ（ＰＭ１）
４１ｃ    ＳＲＡＭ（ＰＭ２）
４１ｄ    ＳＲＡＭ（ＰＭ３）
４１ｅ    ＳＲＡＭ（ＰＭ４）
４１ｆ    ＳＲＡＭ（ＰＭ５）
４１ｇ    ＳＲＡＭ（ＰＭ６）
４１ｈ    ＳＲＡＭ（ＰＭ７）
４１ｉ    ＳＲＡＭ（ＰＭ８）
４１ｊ    ＳＲＡＭ（ＰＭ９）
４２      アドレスデコーダ
４３      セレクタ
５０      プログラムメモリ
５１ａ    ＳＲＡＭ（ＰＭ０）
５１ｂ    ＳＲＡＭ（ＰＭ１）
５１ｃ    ＳＲＡＭ（ＰＭ２）
５１ｄ    ＳＲＡＭ（ＰＭ３）
５１ｅ    ＳＲＡＭ（ＰＭ４）
５１ｆ    ＳＲＡＭ（ＰＭ５）
５１ｇ    ＳＲＡＭ（ＰＭ６）
５２      アドレスデコーダ
５３      セレクタ
【図１】
2014211673.tif 000003
【図２】
2014211673.tif 000004
【図３】
2014211673.tif 000005
【図４】
2014211673.tif 000006
【図５】
2014211673.tif 000007
【図６】
2014211673.tif 000008
【図７】
2014211673.tif 000009
【図８】
2014211673.tif 000010
【図９】
2014211673.tif 000011
【図１０】
2014211673.tif 000012
【図１１】
2014211673.tif 000013
【図１２】
2014211673.tif 000014