(57)【要約】【課題】プログラムの命令コードを格納する記憶装置のアドレス空間の拡張において既存ソフトウエアの流用を容易にし、ハードウエアの回路規模を削減する。【解決手段】メモリバンク切り替えにより、命令コードの最大アドレス空間を超えてプログラムを格納する記憶装置のアドレス空間を拡張し、各メモリバンク１２、１３、１４に配置されるプログラムの共通処理プログラムを格納する共通領域１１に記憶装置の同一物理アドレスを割り付けることにより、１つの物理的記憶領域を共有してメモリ量を削減する。【選択図】　図２
2004127016.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを格納する記憶装置のアドレス空間をメモリバンク切り替えにより命令コードの最大アドレス空間を超えて拡張する命令メモリ拡張装置であって、
各メモリバンクのアドレス空間に配置されるプログラムに共通する処理プログラムを格納する共通命令コード領域が、前記記憶装置の同一物理アドレスに割り付けられることを特徴とする命令メモリ拡張装置。
【請求項２】
前記共通命令コード領域は命令コードの最大アドレス空間の半分の大きさであり、前記共通命令コード領域と各メモリバンクのアドレス空間における非共通命令コード領域とが記憶装置において連続した物理アドレスに割り付けられることを特徴とする請求項１記載の命令メモリ拡張装置。
【請求項３】
前記拡張されたアドレス空間が割り付けられる記憶装置は、ＲＯＭと前記アドレス空間の一部領域において前記ＲＯＭを置換するＲＡＭとで構成され、前記ＲＡＭにより置換されるＲＯＭの領域に非通常動作時に評価用等に使用される情報を備えることを特徴とする請求項１または２記載の命令メモリ拡張装置。
【請求項４】
複数のメモリバンクそれぞれにおいて前記ＲＡＭにより置換されるＲＯＭの領域は２のべき乗の同一アドレス長を有し、複数の前記ＲＡＭの領域はＲＡＭの連続した物理アドレスに割り付けられることを特徴とする請求項３記載の命令メモリ拡張装置。
【請求項５】
前記拡張されたアドレス空間を実現する記憶装置は、メモリバンク指定情報を付加した命令修正用レジスタを備えることを特徴とする請求項１から４のいずれか一項記載の命令メモリ拡張装置。
【請求項６】
前記各メモリバンクの非共通命令コード領域から共通命令コード領域に制御が移り、再び前記各メモリバンクの非共通命令コード領域に戻る場合に、共通命令コード領域に制御が移る前と同一のメモリバンクに戻ることを特徴とする請求項１から５のいずれか一項記載の命令メモリ拡張装置。
【請求項７】
マッピングされるアドレス空間に応じてメモリバンク設定命令と無条件ＪＡＭＰ命令を追加するコンパイラを備えることを特徴とする請求項１から６のいずれか一項記載の命令メモリ拡張装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムの命令コードを格納する記憶装置のアドレス空間を拡張する命令メモリ拡張装置に関する。
【０００２】
【従来の技術】
近年、デジタル信号処理技術の進歩により、携帯端末でも動画像を通信しテレビ電話を実現している。このような装置では、画像データの圧縮と伸張、動画像データの加工、音声やオーディオデータの処理等、１つのハードウエアで様々なアプリケーションを実行しなければならず、プログラムのステップ数が増加し、既存のプロセッサのアーキテクチャでは命令コードを格納する記憶装置のアドレス空間が不足するため、アドレス空間を拡張するメモリ拡張装置が必要になる（特許文献１等）。
【０００３】
【特許文献１】
特開平１１−２３２１７０号公報
【０００４】
図６は、アドレス空間を拡張するための従来のメモリ拡張装置の構成例を示すブロック図である。図６において、１０１は命令セットのアーキテクチャによる最大アドレス空間を持つ命令メモリ、１０２は拡張した領域の命令メモリ、１０３は命令メモリから読み出されたデータを解析する命令デコード回路、１０４は命令デコード回路１０３の結果により制御されるメモリ拡張制御回路である。
【０００５】
拡張領域の命令メモリ１０２は一般に複数であり、メモリ拡張制御回路１０４により命令メモリ１０１あるいは拡張領域の命令メモリ１０２の１つが選択される。それぞれの命令メモリには様々なアプリケーションの命令コードが格納され、命令メモリを選択することにより、それぞれのアプリケーションが実行される。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来のメモリ拡張装置では、命令メモリのアドレス空間を拡張する場合に、プロセッサのデコード回路１０３および命令マッピングの変更が必要となり、既存ソフトウエアを流用するための工数やハードウエアの開発工数が増大する。
【０００７】
また、アプリケーション毎に割込み処理やシステム制御などの共通命令コードがある場合でも、ソフトウエア開発を簡易にするために、命令メモリ１０１や拡張領域の命令メモリ１０２のそれぞれに共通部分が含まれるようにプログラムを構成する結果、命令メモリの回路規模が増加してしまうという問題があった。
【０００８】
本発明は上記従来の問題点を解決するもので、プログラムの命令コードを格納する記憶装置のアドレス空間の拡張において、既存ソフトウエアの流用を容易にし、ハードウエアの回路規模の削減を可能にする命令メモリ拡張装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
この課題を解決するために、本発明の請求項１に係る命令メモリ拡張装置は、プログラムを格納する記憶装置のアドレス空間をメモリバンク切り替えにより命令コードの最大アドレス空間を超えて拡張する命令メモリ拡張装置であって、各メモリバンクのアドレス空間に配置されるプログラムに共通する処理プログラムを格納する共通命令コード領域が、前記記憶装置の同一物理アドレスに割り付けられるのである。
【００１０】
上記構成によれば、複数のメモリバンクからなるアドレス空間に配置される共通命令コード領域を記憶装置の同一物理アドレスを割り付けることにより、記憶装置の１つの領域が複数のメモリバンクのアドレス空間で共有されるため、拡張したメモリバンク分の共通命令コード領域だけ記憶装置の実容量を削減することができる。
【００１１】
本発明の請求項２に係る命令メモリ拡張装置は、請求項１記載の命令メモリ拡張装置において、前記共通命令コード領域は命令コードの最大アドレス空間の半分の大きさであり、前記共通命令コード領域と各メモリバンクのアドレス空間における非共通命令コード領域とが記憶装置において連続した物理アドレスに割り付けられるものである。
【００１２】
上記構成によれば、命令コードの最大アドレス空間の半分の空間を共通命令コード領域とし、残りの非共通命令コード領域用のアドレス空間でメモリ空間を拡張し、これらの領域を連続した物理アドレスに割り付けることで、簡易なアドレス生成回路を備えるだけで全体を物理的に１つのメモリとすることができ、物理的なレイアウト面積を削減することができる。
【００１３】
本発明の請求項３に係る命令メモリ拡張装置は、請求項１または２記載の命令メモリ拡張装置において、前記拡張されたアドレス空間が割り付けられる記憶装置は、ＲＯＭと前記アドレス空間の一部領域において前記ＲＯＭを置換するＲＡＭとで構成され、前記ＲＡＭにより置換されるＲＯＭの領域に非通常動作時に評価用等に使用される情報を備えるものである。
【００１４】
上記構成によれば、ＲＯＭのアドレス空間の一部領域を置換するＲＡＭを用いることにより、ソフトウエアバグ回避の融通性が得られるとともに、ＲＡＭで置換され通常動作では使用されないＲＯＭ領域を、評価用のテストプログラム等を埋め込む領域として使用することにより、テストコストを削減することができる。
【００１５】
本発明の請求項４に係る命令メモリ拡張装置は、請求項３記載の命令メモリ拡張装置において、複数のメモリバンクそれぞれにおける前記ＲＡＭにより置換されるＲＯＭの領域は２のべき乗の同一アドレス長を有し、複数の前記ＲＡＭの領域はＲＡＭの連続した物理アドレスに割り付けられるものである。
【００１６】
上記構成によれば、複数のメモリバンクそれぞれのＲＡＭ領域がＲＡＭの連続した物理アドレスに割り付けられるため、簡易なアドレス生成回路を備えるだけで、ＲＡＭ領域全体を物理的に１つのメモリとすることができ、物理的なレイアウト面積を削減することができる。
【００１７】
本発明の請求項５に係る命令メモリ拡張装置は、請求項１から４のいずれか一項記載の命令メモリ拡張装置において、拡張されたアドレス空間を実現する記憶装置はメモリバンク指定情報を付加した命令修正用レジスタを備えるものである。
【００１８】
上記構成によれば、命令修正用レジスタにメモリバンク指定情報を備えることにより、複数のメモリバンクに対して共用の修正用レジスタとすることができるため、従来と同じ数の修正用レジスタであっても、プログラムバグ修正の融通性向上を図ることができる。
【００１９】
本発明の請求項６に係る命令メモリ拡張装置は、請求項１から５のいずれか一項記載の命令メモリ拡張装置において、前記各メモリバンクの非共通命令コード領域から共通命令コード領域に制御が移り、再び前記各メモリバンクの非共通命令コード領域に戻る場合に、共通命令コード領域に制御が移る前と同一のメモリバンクに戻るものである。
【００２０】
上記構成によれば、非共通命令コード領域から共通命令コード領域に入った後に再び非共通命令コード領域に戻る際に元のメモリバンクに戻ることにより、メモリバンク管理が自動的に行われるため、複数のアプリケーションをメモリバンク毎に作成することができ、ソフトウエア開発を容易にすることができる。
【００２１】
本発明の請求項７に係る命令メモリ拡張装置は、請求項１から６のいずれか一項記載の命令メモリ拡張装置において、マッピングされるアドレス空間に応じてメモリバンク設定命令と無条件ＪＡＭＰ命令を追加するコンパイラを備えるものである。
【００２２】
上記構成によれば、プログラムコードを機械語にコンパイルする際に、マッピングされるアドレス空間に従ってコンパイラがメモリバンク設定命令と無条件ＪＡＭＰ命令を追加するため、メモリバンクの概念無しにソフトウエアの開発を行うことができ、また、コンパイラで対応するため、従来のハードウエア構成であっても物理的に１つのメモリに収容することができ、ソフトウエア、ハードウエアの開発工数を削減することができる。
【００２３】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。
図１は本発明の一実施の形態における命令メモリ拡張装置のブロック図である。図１において、１は実行プログラムを格納している命令メモリ、２は実行プログラムを解読するための命令デコード回路、３は命令デコード回路２の結果により処理を行う演算ユニット、４は命令デコード回路２や演算ユニット３により命令メモリのアドレスを生成するアドレス生成回路、５は命令コードのアーキテクチャによる最大アドレス空間を超えて命令メモリ１を拡張するためのメモリバンク切り替えレジスタ、６は拡張したアドレス空間を有する命令メモリ１の各領域を物理メモリ上に割り付けるためのメモリ拡張制御回路である。
【００２４】
図２は、複数の実行プログラムにおいて共通プログラムを有する命令メモリ１のアドレス空間の構成例である。図２において、１１は共通プログラムを格納するための共通領域、１２は命令コードの最大アドレス空間より共通領域の大きさだけ少ない容量のメモリバンク１の命令メモリ、１３は命令メモリ１２と同じ大きさの拡張されたメモリバンク２の命令メモリ、１４は命令メモリ１２と同じ大きさの拡張された空間のメモリバンク３の命令メモリである。
【００２５】
以上のように構成された本実施の形態の命令メモリ拡張装置について、その動作を以下に説明する。命令メモリ１２では画像圧縮のアルゴリズム、拡張された空間の命令メモリ１３では画像伸張のアルゴリズム、拡張された空間の命令メモリ１４では画像編集のアルゴリズム等の実行プログラムを動作させる場合、それぞれのアルゴリズムでは内部の割り込み要因による処理や外部ＣＰＵとのやり取りを行う共通のプログラムが必要である。
【００２６】
共通領域１１のアドレス空間をそれぞれのアルゴリズムに共通の空間とし、アルゴリズムの差異のあるプログラムを共通領域の後半の領域にマッピングする。命令メモリ１２の画像圧縮アルゴリズムから他のアルゴリズムに移行する際は、メモリバンク切り替えレジスタ５に移行先のメモリバンクを設定し、例えば、命令メモリ空間１３等に移行する。命令メモリ空間１３の画像伸張アルゴリズムを実行中にＣＰＵからの制御や内部の割り込み要因による処理が発生した場合は、共通領域１１を実行するようにメモリ拡張制御６によりアドレスを制御する。これにより、拡張したメモリバンク分だけ共通メモリ領域のメモリ量が削減される。
【００２７】
図３は、命令メモリのメモリバンク切り替え動作を説明するタイミングチャートである。図３において、１６は命令メモリ１のアドレス値、１７は命令メモリ１から読み出された命令コード、１８は演算ユニット３により実行される命令コード、１９は命令メモリ１のメモリバンクを示すアドレス値である。
【００２８】
メモリバンクを切り替えたい場合は、アドレス値１６のａにメモリバンクレジスタへの書き込み命令を置くと、次のサイクルで命令が実行されるため、２サイクル後に命令メモリ１でメモリバンクを指すアドレス値が切り替わる。次に、アドレス値１６のａ＋１に無条件ＪＡＭＰ命令を置くと、無条件ＪＡＭＰ命令の次のサイクルに自動的にｎｏｐ命令のようなＷＡＩＴ数の決まった命令が入るため、レジスタ書き込みと無条件ＪＡＭＰ命令を組み合わせて使うことにより、容易にメモリバンクを切り替えることができる。
【００２９】
図４は、図２に示すように共通領域１１のアドレス空間が命令コードの最大アドレス空間の半分である場合で、命令メモリ１２、命令メモリ１３、命令メモリ１４が同じ大きさのアドレス空間である場合のアドレス生成回路４の動作を説明するための図である。図４において、２１はアドレス空間の最上位ビットを示す最上位アドレス、２２、２３は実行したいメモリバンクを示す２ビットのメモリバンクレジスタ（ａ，ｂ）、２４は実際のメモリ空間物理アドレス、２５はマッピングされた物理的なメモリ空間である。
【００３０】
最上位アドレス２１が”０”のときは、メモリバンクレジスタ（ａ，ｂ）の値にかかわらず、メモリ空間物理アドレスは”００”を示す。最上アドレス２１が”１”のときは、メモリバンクレジスタ（ａ，ｂ）の値”０１”、”１０”、”１１”に対応して、メモリ空間２５のメモリバンク０、メモリバンク１、メモリバンク２にアクセスする。これによりメモリ空間２５を１つの物理空間にすることが可能となり、物理的に１つのチップにすることによりレイアウト面積を削減することができる。
【００３１】
図４において、レイアウト面積削減のためにメモリ空間２５をＲＯＭ化する場合、ソフトウエアバグ回避の融通性のために、一部のメモリをＲＡＭとして残すことができる。図５は、このようにメモリ空間をＲＯＭ化する際に一部をＲＡＭとして残したアドレス空間の構成例を示す図である。
【００３２】
図５において、３１はメモリバンクの共通ＲＯＭ領域、３２はメモリバンク０の非共通ＲＯＭ領域、３３はメモリバンク１の非共通ＲＯＭ領域、３４はメモリバンク２の非共通ＲＯＭ領域、３５はソフトウエアバグ回避の融通性のためのＲＡＭ領域、３６は物理的に１つのＲＯＭ、３７はＲＡＭ領域３５のアドレス空間で置換されたＲＯＭ領域、３８はＲＡＭ領域３５を集めて収容した１つの物理的マクロＲＡＭである。
【００３３】
アドレス空間の中にソフトウエアバグ回避のためのＲＡＭ領域３５がある場合でも、この領域が全体に占める割合は小さなものであるため、ＲＯＭ３６としては１つの物理ＲＯＭで構成し、ＲＡＭ領域３５のアドレス空間については、ＲＡＭ３８によりデータの読み出しを行う。したがって、ＲＡＭ領域３５のアドレス空間で置換されたＲＯＭ領域３７は通常動作では使用されないため、評価用のテストプログラム等を埋め込む領域として使用し、テストコストの削減を図る。
【００３４】
図５において、ＲＡＭ領域３５のアドレス空間が２のべき乗の大きさである場合は、図４の回路と同様に、上位アドレスによりＲＡＭ３８の物理アドレスの割り付けを決定することにより、ソフトウエアバグ回避用のＲＡＭ領域３５を、連続した物理アドレスを持つ１つの物理マクロＲＡＭ３８としてマッピングすることが可能となり、レイアウト面積を最も削減することができる。
【００３５】
図１において、命令メモリ１内に命令修正用レジスタがある場合には、命令修正用レジスタのアドレスにメモリバンク指定情報を付加することができる。アドレスの最上位ビットが０の場合は共通領域１１を示すために、追加したメモリバンク指定情報にかかわらず共通領域１１からの命令コードで動作するようにする。アドレスの最上位ビットが１の場合は、追加したメモリバンク指定情報に応じて命令メモリ１２、命令メモリ１３、命令メモリ１４を使用して動作する。
【００３６】
メモリバンク指定情報を付加することにより、命令修正用レジスタをすべてのメモリバンクに対して共通の修正用レジスタとすることができるため、メモリバンク毎にレジスタを設ける必要が無くなり、従来と同じ数の修正用レジスタであっても、これらをどの命令メモリに対する修正にも使用することができるため、プログラムバグの修正時にソフト開発者の融通性を向上させることができる。
【００３７】
図２において、共通領域以外の命令メモリ１２、命令メモリ１３、命令メモリ１４における命令実行中に、サブルーチン命令等を実行し共通領域１１に移行した場合、そのメモリバンク情報を保持することにより、再度それぞれの命令メモリに戻る際に元の命令メモリに戻ることができる。このようにして、共通部分から戻る場合のメモリバンク管理を行うことにより、複数のアプリケーションをそれぞれのメモリバンクの命令メモリと共通領域１１とで実行できるため、ソフトウエア開発者の開発工数を削減することができる。
【００３８】
また、共通領域１１から命令メモリ１２、命令メモリ１３、命令メモリ１４へのサブルーチン命令がある場合にはソフトのメモリバンク管理が煩雑になるため、プログラムコードを機械語に変換する際にこれらを抽出することにより、ソフトウエアの信頼性向上を図ることができる。
【００３９】
図２のタイミングチャートで示したように、レジスタ設定命令と無条件ＪＡＭＰ命令を組み合すことによりメモリバンクを切り替えるため、プログラムコードを機械語に変換する際に、まず、アドレス０番地から条件分岐命令までの命令コードを抽出する。次に、サブルーチンコール等でよばれる先の命令コードを抽出し、その部分を優先的に共通領域１１にアドレス空間をマッピングする。
【００４０】
残りの命令コードに対して、コンパイラでメモリバンク設定命令と無条件ＪＡＭＰ命令を追加することにより自動的に空間を拡張させることができるため、メモリバンクの概念無しにソフトウエアの開発を行うことが可能となる。また、この処理をコンパイラで行うため、ハードウエアが従来の構成であってもプログラムを物理的に１つの命令メモリに収容することができ、ソフトウエア、ハードウエアの開発工数を削減することができる。
【００４１】
【発明の効果】
以上説明したように、本発明によれば、拡張したメモリバンク分だけ共通メモリ領域のメモリ量を削減することができ、複数の記憶領域を物理的に１つのマクロメモリに集約することにより物理的なレイアウト面積を削減することができる。また、通常動作時に使用されないＲＯＭ領域に評価用の命令コードを埋め込むことによりテストコストを削減することができる。さらに、メモリバンク情報を保持することにより、プログラムバグ修正の融通性向上やソフトウエア開発の容易化を実現することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係る命令メモリ拡張装置のブロック図。
【図２】本発明に係る命令メモリ拡張装置によるアドレス空間の構成例を示す図。
【図３】本発明に係る命令メモリ拡張装置のメモリバンク切り替え動作を説明するタイミングチャート。
【図４】本発明に係る命令メモリ拡張装置のアドレス生成回路の動作を説明するための図。
【図５】ＲＯＭ化において一部をＲＡＭとするアドレス空間の構成例を示す図。
【図６】従来のメモリ拡張装置の構成例を示すブロック図。
【符号の説明】
１　命令メモリ
２　命令デコード回路
３　演算ユニット
４　アドレス生成回路
５　メモリバンク切り替えレジスタ
６　メモリ拡張制御回路
１１、１２、１３、１４　メモリバンクの領域
１６　メモリアドレス
１７　解読される命令コード
１８　実行される命令コード
１９　メモリバンクアドレス
２１　最上位アドレス
２２、２３　メモリバンクレジスタ
２４　メモリ物理アドレス
２５　物理的メモリ空間
３１　メモリバンクの共通ＲＯＭ領域
３２、３３、３４　メモリバンクの非共通ＲＯＭ領域
３５　メモリバンクのＲＡＭ領域
３６　ＲＯＭ
３７　テストプログラム用のＲＯＭ領域
３８　ＲＡＭ
１０１、１０２　命令メモリ
１０３　命令デコード回路
１０４　メモリ拡張制御回路
【図１】
2004127016.tif 000003
【図２】
2004127016.tif 000004
【図３】
2004127016.tif 000005
【図４】
2004127016.tif 000006
【図５】
2004127016.tif 000007
【図６】
2004127016.tif 000008