(57)【特許請求の範囲】
【請求項１】
複数の命令が格納されるメモリから命令を読み出して実行するマイクロプロセッサにおいて、
前記メモリの、実行しようとする命令が格納されているアドレスが所定の領域内のアドレスであるか否かを判定する判定回路と、
前記判定回路の判定結果に応じて、命令の種類によっては、表記上同一の命令を相互に異なる命令として実行する命令実行部とを備え、
前記命令実行部が、前記メモリのアクセスを指示する所定の命令に関し、前記判定回路により、該命令が格納されているアドレスが前記所定領域内のアドレスであると判定されたか否かに応じて、それぞれ、任意に選択されたアドレスを前記所定領域内のアドレスに変換して該変換後のアドレスへのアクセスを行い、あるいは、任意に選択されたアドレスへのアクセスを行うものであることを特徴とするマイクロプロセッサ。
【請求項２】
複数の命令が格納されるメモリから命令を読み出して実行するマイクロプロセッサにおいて、
前記メモリの、実行しようとする命令が格納されているアドレスが所定の領域内のアドレスであるか否かを判定する判定回路と、
前記判定回路の判定結果に応じて、命令の種類によっては、表記上同一の命令を相互に異なる命令として実行する命令実行部と、
演算結果が格納されるレジスタとを備え、
前記命令実行部が、演算を実行して演算結果を前記レジスタに格納する所定の命令に関し、前記判定回路により、該命令が格納されていたアドレスが前記所定領域内のアドレスであると判定されたか否かに応じて、それぞれ、前記レジスタの所定の上位部分についてはそれまでに格納されているデータを保有するとともに、該レジスタの該上位部分を除く下位部分にのみ前記演算結果の下位部分を格納し、あるいは、前記レジスタ全域に前記演算結果全体を格納するものであることを特徴とするマイクロプロセッサ。
【請求項３】
複数の命令が格納されるメモリから命令を読み出して実行するマイクロプロセッサにおいて、
前記メモリの、実行しようとする命令が格納されているアドレスが所定の領域内のアドレスであるか否かを判定する判定回路と、
前記判定回路の判定結果に応じて、命令の種類によっては、表記上同一の命令を相互に異なる命令として実行する命令実行部と、
前記メモリのページをあらわすデータが格納される、それぞれが各所定の命令に対応して備えられた複数のページレジスタを有し、該メモリの、アクセス可能なページを指定するページ指定部とを備え、
前記命令実行部が、前記ページレジスタに対応付けられた所定の命令に関し、前記判定回路により、該命令が格納されているアドレスが前記所定領域内のアドレスであると判定されたか否かに応じて、それぞれ、該命令を、該命令の実行の前後で内部状態を保存する形態の無意味命令として実行し、あるいは、前記ページ指定部を、該命令に対応したページレジスタに格納されたデータにより前記メモリのアクセス可能なページが指定されるように切り換えるものであることを特徴とするマイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、命令が格納されているメモリから命令を読み出して実行するマイクロプロセッサに関する。
【０００２】
【従来の技術】
近年のＬＳＩ技術の発達によって、メモリの大容量化が進んでおり、それに伴って、広いアドレス空間を取り扱うことができる新型のマイクロプロセッサが開発されている。この開発の際には、狭いアドレス空間を取り扱うことしかできない旧型のマイクロプロセッサをベースに用い、広いアドレス空間を表すアドレスデータの上位桁用のレジスタを新たに設けて、狭いアドレス空間を拡張することが一般的である。
【０００３】
図１は、旧型のマイクロプロセッサに備えられているレジスタセット（Ａ）、および新型マイクロプロセッサに備えられているレジスタセット（Ｂ）の一例を示す図である。
旧型のマイクロプロセッサには、プログラムカウンタ１１、汎用ＤＥレジスタ１２、汎用ＨＬレジスタ１３およびスタックポインタ１４といったレジスタが備えられている。これらのレジスタそれぞれは１６ビットのビット幅を有しており、この旧型のマイクロプロセッサが取り扱うことができるアドレスは１６進数表示で００００ｈ番地からＦＦＦＦｈ番地までのアドレスである。以下、最後に「ｈ」が付された数字は１６進数表示であるものとする。
【０００４】
新型のマイクロプロセッサにも、それぞれ１６ビットのビット幅を有するプログラムカウンタ１５、汎用ＤＥレジスタ１６、汎用ＨＬレジスタ１７およびスタックポインタ１８が備えられており、更に、それぞれ８ビットのビット幅を有するＰＰＣレジスタ１９およびＺＰレジスタ２０が備えられている。ＰＰＣレジスタ１９およびプログラムカウンタ１５が、両者が組み合わされた１つのレジスタとして用いられ、ＺＰレジスタ２０が、汎用ＤＥレジスタ１６、汎用ＨＬレジスタ１７およびスタックポインタ１８それぞれと組み合わされて用いられることによって、新型のマイクロプロセッサが取り扱うことができるアドレスは、００００００ｈ番地からＦＦＦＦＦＦｈ番地までのアドレスとなり、旧型のマイクロプロセッサが取り扱うことができるアドレス空間を１ページと考えると、新型のマイクロプロセッサが取り扱うことができるアドレス空間は、２５６ページ分のアドレス空間となっている。以下では、アドレス空間およびメモリがそのようなページを有するものとして説明する。ＺＰレジスタ２０等は、アドレス空間およびメモリが有するページを示すデータが格納されるページレジスタとして用いられる。
【０００５】
【発明が解決しようとする課題】
ところで、旧型のマイクロプロセッサ用に作成されたソフトウェアの蓄積は大きく、このため、これらのソフトウェアが、アドレス空間が拡張された新型のマイクロプロセッサにおいてそのまま利用できるいわゆる互換性を有することが望ましい。新型のマイクロプロセッサがこのような互換性を有するためには、アセンブラ言語の文字列や機械語の命令コードといった、旧型のマイクロプロセッサ上で使用されている命令表記が、新型のマイクロプロセッサ上でそのまま使用されるとともに、新型のマイクロプロセッサ上でそれらの命令表記に応じて実行される命令内容が、旧型のマイクロプロセッサ上でそれらの命令表記に応じて実行されている命令内容と矛盾しないことが必要である。
【０００６】
従来より、このような互換性を有する新型のマイクロプロセッサとして、旧型のマイクロプロセッサ上で使用されている命令表記をそのまま使用し、それらの命令表記に応じた命令内容が実行される際には、ページレジスタが、汎用ＨＬレジスタ等に常に従属されて用いられる第１のマイクロプロセッサが知られている。このマイクロプロセッサでは、例えば、旧型のマイクロプロセッサにおいて用いられている、アセンブラ言語の「ＬＤ    Ａ，（ＨＬ）」という文字列、および機械語の、この文字列に対応する命令コードがそのまま用いられ、その命令表記が「メモリの、ＺＰレジスタおよび汎用ＨＬレジスタに格納されている２４ビットのデータが示すアドレスに格納されているデータを読み込んでアキュムレータに格納する」という命令内容を表すものとして実行される。
【０００７】
ただし、旧型のマイクロプロセッサ上で使用されている命令表記は、１６ビットのアドレス空間を前提としている命令表記であるため、ＺＰレジスタに格納される、ページを示すデータを直接的に指定する命令を表すのに適当な命令表記が存在しない。そこで、この第１のマイクロプロセッサでは、ＺＰレジスタには、メモリ上の、実行される命令が格納されているアドレスのページを示すデータがハードウェアによって自動的に格納される。
【０００８】
しかし、この第１のマイクロプロセッサでは、アドレス空間のページをソフトウェアで直接指定することができないので、アドレス空間全域を、ページを越えて使用することが困難となり、このため、アドレス空間が拡張されたことによるメリットが著しく損なわれるという問題がある。
この問題点に対応するために、この第１のマイクロプロセッサが改良されて、ＺＰレジスタに格納されるデータを直接的に指定するための新たな命令表記が用意された第２のマイクロプロセッサが知られている。この第２のマイクロプロセッサでは、例えば、「ＬＤ    ＺＰ，００ｈ」という新たな命令表記によって、「ＺＰレジスタに００ｈを格納する」という命令内容が表され、ソフトウェアでページを直接指定することができる。
【０００９】
しかし、この第２のマイクロプロセッサ上で、旧型のマイクロプロセッサ用に作られたソフトウェアをサブルーチンとして使用し、ＺＰレジスタに格納されているデータが、このサブルーチンが格納されているページとは異なるページを示していると、このサブルーチンの作成時には、当然ながら、ページを越えてアドレス空間を利用することは考慮されていないにもかかわらず、ページを越えたデータ参照等が行われて動作異常となるという問題がある。
【００１０】
また、互換性を有する新型のマイクロプロセッサとして、旧型のマイクロプロセッサ上で使用されている命令表記および命令内容をそのまま使用するとともに、ＺＰレジスタと汎用ＨＬレジスタが組み合わされたレジスタ等を使用するための命令表記および命令内容が新たに用意された第３のマイクロプロセッサも知られている。このマイクロプロセッサでは、新たな命令表記として、例えば、「ＬＤ    Ａ，（ＺＨＬ）」という文字列およびその文字列に対応する命令コードが用意され、その命令表記が、上述した命令内容を表すものとして実行される。
【００１１】
しかし、このような新たな命令表記として用意される機械語の命令コードは、短いバイトを有する命令コードが、旧型のマイクロプロセッサ用の命令表記としてほとんど使用済みであるために、長いバイト長を有する命令コードとなる。その結果、機械語のプログラムの大きさが大きくなりがちで、実効速度が低下しがちであるという問題がある。また、用意されるべき新たな命令コードの数が多く、命令コードをデコードするための回路が大きくなるという問題もある。
【００１２】
上述した問題は、狭いアドレス空間を取り扱うことしかできない旧型のマイクロプロセッサをベースに用い、広いアドレス空間を表すアドレスデータの上位桁用のレジスタを新たに設けて、狭いアドレス空間を拡張した新型のマイクロプロセッサを開発する場合に一般的に生じる問題である。
本発明は、上記事情に鑑み、旧型のマイクロプロセッサのアドレス空間が拡張された広いアドレス空間を有し、その広いアドレス空間を自由に利用でき、旧型のマイクロプロセッサ用のソフトウェアがそのまま利用できるマイクロプロセッサを提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記目的を達成する本発明のマイクロプロセッサは、複数の命令が格納されるメモリから命令を読み出して実行するマイクロプロセッサにおいて、
上記メモリの、実行しようとする命令が格納されているアドレスが所定の領域内のアドレスであるか否かを判定する判定回路と、
判定回路の判定結果に応じて、命令の種類によっては、表記上同一の命令を相互に異なる命令として実行する命令実行部とを備えたことを特徴とする。
【００１４】
本発明のマイクロプロセッサは、上記命令実行部が、上記メモリのアクセスを指示する所定の命令に関し、上記判定回路により、その命令が格納されているアドレスが上記所定領域内のアドレスであると判定されたか否かに応じて、それぞれ、任意に選択されたアドレスをその所定領域内のアドレスに変換してその変換後のアドレスへのアクセスを行い、あるいは、任意に選択されたアドレスへのアクセスを行うものであっても良く、
演算結果が格納されるレジスタを備え、
上記命令実行部が、演算を実行して演算結果を上記レジスタに格納する所定の命令に関し、上記判定回路により、その命令が格納されているアドレスが上記所定領域内のアドレスであると判定されたか否かに応じて、それぞれ、上記レジスタの所定の上位部分についてはそれまでに格納されていたデータを保有するとともに、そのレジスタの上位部分を除く下位部分にのみ演算結果の下位部分を格納し、あるいは、上記レジスタ全域に演算結果全体を格納するものであっても良く、
上記メモリのページをあらわすデータが格納される、それぞれが各所定の命令に対応して備えられた複数のページレジスタを有し、そのメモリの、アクセス可能なページを指定するページ指定部を備え、
上記命令実行部が、ページレジスタに対応付けられた所定の命令に関し、上記判定回路により、その命令が格納されているアドレスが上記所定領域内のアドレスであると判定されたか否かに応じて、それぞれ、その命令を、その命令の実行の前後で内部状態を保存する形態の無意味命令として実行し、あるいは、ページ指定部を、その命令に対応したページレジスタに格納されたデータにより上記メモリのアクセス可能なページが指定されるように切り換えるものであっても良い。
【００１５】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
図２は、本発明のマイクロプロセッサの概要を示す図である。
このマイクロプロセッサ１００は、命令が格納されるメモリ１１０に、外部バス１１２を介して接続されており、このメモリ１１０は、旧型のマイクロプロセッサ用に作成されたプログラムが格納される、００００００ｈ番地から００ＦＦＦＦｈ番地までの２の１６乗ビットの互換領域１１１を含む、２の２４乗ビットのアドレス空間を有する。
【００１６】
このマイクロプロセッサ１００には、それぞれ１６ビットのビット幅を有するプログラムカウンタ１２１、汎用ＤＥレジスタ１２２、汎用ＨＬレジスタ１２３およびスタックポインタ１２４が備えられており、これらのレジスタのデータがバス１３０を介して格納され取出される。また、このマイクロプロセッサ１００には、それぞれ８ビットのビット幅を有するアキュムレータ１２５、ＰＰＣレジスタ１２６、ＺＰレジスタ１２７およびＸＰレジスタ１２８が備えられており、これらのレジスタのデータも、バス１３０を介して格納され取出される。ＰＰＣレジスタ１２６は、プログラムカウンタ１２１とともに用いられるレジスタであり、メモリ１１０の、実行しようとする命令が格納されているページを示すデータが格納される。ＺＰレジスタ１２７は汎用ＤＥレジスタ１２２、汎用ＨＬレジスタ１２３およびスタックポインタ１２４それぞれとともに用いられるページレジスタであり、メモリ１１０のページを示すデータが格納される。ＸＰレジスタ１２８は、ＺＰレジスタ１２７と同様のページレジスタであり、ＸＰレジスタ１２８およびＺＰレジスタ１２７のいずれか一方のページレジスタが、図示が省略されている切換回路によって切換自在に用いられる。
【００１７】
また、このマイクロプロセッサ１００には、命令フェッチ・解読回路１４０と、判定回路１５０と、命令実行回路１６０とアクセス回路１８０が備えられており、命令フェッチ・解読回路１４０によって、メモリ１１０の、ＰＰＣレジスタ１２６およびプログラムカウンタ１２１に格納されているデータが示すアドレスに格納されている命令が、アクセス回路１８０を介してフェッチされ解読されて命令実行回路１６０に送られる。この命令フェッチ・解読回路１４０において解読することができる命令表記は、上述した従来技術の第２のマイクロプロセッサと同様である。判定回路１５０によって、後述するように、命令フェッチ・解読回路１４０によってフェッチされた命令が格納されていたアドレスが互換領域１１１内のアドレスであるか否かが、ＰＰＣレジスタ１２６に格納されているデータに基づいて判定され、その判定結果が命令実行回路１６０に送られる。また、命令実行回路１６０によって、判定回路１５０による判定結果に応じて、命令フェッチ・解読回路１４０から送られてきた命令が実行されて、アクセス回路１８０を介したメモリ１１０のアクセスや、バス１３０を介した各種データの格納・取出・演算が行われる。
【００１８】
図３は、第１の実施形態の特徴部分を示す図である。
本実施形態では、図２に示す判定回路１５０は比較器１５１で構成されており、この比較器１５１では、図２に示すＰＰＣレジスタ１２６に格納されている８ビットデータの値と、値「００ｈ」が比較され、これによって、実行しようとする命令が格納されているアドレスが、図２に示す互換領域１１１内のアドレスであるか否かが判定される。これらの値が互いに一致していると、比較器１５１から値「００ｈ」が出力され、これらの値が一致していないと値「ＦＦｈ」が出力される。
【００１９】
また、本実施形態では、図２に示す命令実行回路１６０には、図２に示すメモリ１１０のアクセスを指示する命令に対応するために８ビットの論理回路１６１が設けられており、この論理回路１６１によって、比較器１５１から出力された値と、図２に示すＺＰレジスタ１２７に格納されている８ビットデータの値との論理積が行われる。この論理積の結果は、実行しようとする命令が格納されているアドレスが、図２に示す互換領域１１１内のアドレスであると値「００ｈ」となり、互換領域１１１外のアドレスであると、ＺＰレジスタ１２７に格納されている８ビットデータの値そのままになる。この論理積の結果が、図２に示すメモリ１１０のアドレス線の上位８ビット分に出力される。
【００２０】
図４は、第１の実施形態において命令が実行される様子を示す図である。
図４には、図２に示すメモリ１１０が有するアドレス空間が示されており、上述したように、００００００ｈ番地から００ＦＦＦＦｈ番地までが互換領域１１１である。この互換領域１１１内には、旧型のマイクロプロセッサ用に作成されたサブルーチンプログラム「＿ＳＵＢ」が格納されており、互換領域１１１を除くアドレス空間には、新たに作成され、サブルーチンプログラム「＿ＳＵＢ」を利用するプログラムが格納されている。
【００２１】
「ＬＤ    ＺＰ，Ａ０ｈ」なる表記で表される命令２０１から実行が開始されてＺＰレジスタに値「Ａ０ｈ」が格納され、「ＬＤ    ＨＬ，８０００ｈ」なる表記で表される命令２０２が実行されて汎用ＨＬレジスタに値「８０００ｈ」が格納される。次に、「ＬＤ    Ａ，（ＨＬ）」なる表記で表される命令２０３が実行され、汎用ＨＬレジスタが示すアドレスに格納されているデータがアキュムレータに読み込まれるが、命令２０３が互換領域１１１外に格納されているので、図２に示すメモリ１１０のアドレス線の上位８ビット分には、ＺＰレジスタに格納されている値「Ａ０ｈ」が出力されており、結局Ａ０８０００ｈ番地に格納されている、文字列「Ｑ」を示すデータ２０４が読み込まれる。
【００２２】
その後、「ＣＡＬＬ    ＿ＳＵＢ」なる表記で表される命令２０５が実行されて、プログラムの流れが、互換領域１１１内に格納されているサブルーチンプログラム「＿ＳＵＢ」に移り、「ＬＤ    ＨＬ，８０００ｈ」なる表記で表される命令２０６が実行されて汎用ＨＬレジスタに値「８０００ｈ」が格納される。次に、命令２０３の命令表記と同一の「ＬＤ    Ａ，（ＨＬ）」なる表記で表される命令２０７が実行されるが、この場合には、命令２０７は互換領域１１１内に格納されているので、図２に示すメモリ１１０のアドレス線には値「００ｈ」が出力されている。すると、ＺＰレジスタに格納されている値「Ａ０ｈ」は、いわば無視されて、実質上、互換領域１１１内のアドレスへの変換が行われる。その結果、互換領域１１１内の００８０００ｈ番地に格納されている、文字列「Ｐ」を示すデータ２０８が読み込まれる。
【００２３】
このように、本実施形態では、互換領域１１１内に格納された命令が実行される際には、互換領域内に限定されたアドレス空間が指定されることとなるので、互換領域１１１内に格納された旧型のマイクロプロセッサ用のプログラムをそのまま利用することができる。一方、互換領域１１１を除くアドレス空間上に格納されている命令が実行される際には、ＺＰレジスタに格納される値が管理されることによってアドレス空間全域を自由に利用することができる。従って、新たにプログラムを作成した場合には、そのプログラムを、互換領域１１１を除くアドレス空間上に格納することによってアドレス空間全域を自由に利用することができる。
【００２４】
以下、本発明の第２の実施形態について説明するが、第２の実施形態の概要は、図２に示す第１の実施形態の概要と同様であるので重複説明は省略する。
図５は、本発明の第２の実施形態の特徴部分を示す図である。
本実施形態では、図２に示す判定回路１５０は比較器１５２で構成されており、図３に示す比較器１５１同様に、図５に示す比較器１５２では、図２に示すＰＰＣレジスタ１２６に格納されている８ビットデータの値と、値「００ｈ」が比較され、これによって、実行しようとする命令が格納されているアドレスが、図２に示す互換領域１１１内のアドレスであるか否かが判定される。これらの値が互いに一致していると、比較器１５２から値「０」が出力され、これらの値が一致していないと値「１」が出力される。
【００２５】
また、本実施形態では、図２に示す命令実行回路１６０には、演算を実行して、その演算結果をページレジスタおよび汎用レジスタに格納する命令に対応するために論理素子１６２が設けられている。この論理素子１６２には、比較器１５２から出力された値と、図２に示すＺＰレジスタ１２７へのデータ格納の可不可を制御する１ビットの制御信号が入力され、これらの論理積が行われる。この論理積の結果は、実行しようとする命令が格納されているアドレスが、図２に示す互換領域１１１内のアドレスであると、ＺＰレジスタへのデータ格納を禁止する値「０」となり、互換領域１１１外のアドレスであると、１ビットの制御信号そのままになる。この論理積の結果が、図２に示すＺＰレジスタ１２７へのデータ格納の可不可を制御するためのイネーブル端子へ出力される。
【００２６】
図６は、第２の実施形態において命令が実行される様子を示す図である。
図４同様に図６には、図２に示すメモリ１１０が有するアドレス空間が示されており、上述したように、００００００ｈ番地から００ＦＦＦＦｈ番地までが互換領域１１１である。この互換領域１１１内には、旧型のマイクロプロセッサ用に作成されたサブルーチンプログラム「＿ＳＵＢ」が格納されており、互換領域１１１を除くアドレス空間には、新たに作成され、サブルーチンプログラム「＿ＳＵＢ」を利用するプログラムが格納されている。
【００２７】
「ＬＤ    ＺＰ，０１ｈ」なる表記で表される命令３０１から実行が開始されてＺＰレジスタに値「０１ｈ」が格納され、「ＣＡＬＬ    ＿ＳＵＢ」なる表記で表される命令３０２が実行されて、プログラムの流れが、互換領域１１１内に格納されているサブルーチンプログラム「＿ＳＵＢ」に移る。次に、「ＬＤ    ＨＬ，８０００ｈ」なる表記で表される命令３０３が実行されて汎用ＨＬレジスタに値「８０００ｈ」が格納され、「ＬＤ    ＤＥ，Ｆ０００ｈ」なる表記で表される命令３０４が実行されて汎用ＤＥレジスタに値「Ｆ０００ｈ」が格納される。次に、「ＡＤＤ    ＨＬ，ＤＥ」なる表記で表される命令３０５が実行される。本実施形態では、この命令表記は、「ＺＰレジスタおよび汎用ＨＬレジスタに格納されている２４ビットの値に、汎用ＤＥレジスタに格納されている１６ビットの値を足して、ＺＰレジスタおよび汎用ＨＬレジスタに格納する」という命令として解釈されるが、命令３０５は、互換領域１１１内に格納されているので、ＺＰレジスタへの計算結果の格納は禁止され、ＺＰレジスタに格納されている値が保持される。従って命令３０５が実行された後、汎用ＨＬレジスタに格納されている値は「７０００ｈ」であり、ＺＰレジスタに格納されている値は「０１ｈ」のままであって、足し算による桁上がりがいわば無視されたこととなる。
【００２８】
その後、「ＲＥＴ」なる表記で表される命令３０６が実行されてプログラムの流れがリターンし、「ＬＤ    ＨＬ，８０００ｈ」なる表記で表される命令３０７が実行されて汎用ＨＬレジスタに値「８０００ｈ」が格納され、「ＬＤ    ＤＥ，Ｆ０００ｈ」なる表記で表される命令３０８が実行されて汎用ＤＥレジスタに値「Ｆ０００ｈ」が格納される。次に、命令３０５の命令表記と同一の「ＡＤＤ    ＨＬ，ＤＥ」なる表記で表される命令３０９が実行されて、ＺＰレジスタおよび汎用ＨＬレジスタに格納されている２４ビットの値に、汎用ＤＥレジスタに格納されている１６ビットの値が足されて、ＺＰレジスタおよび汎用ＨＬレジスタに格納される。命令３０９は互換領域１１１外に格納されているので、値「８０００ｈ」と値「Ｆ０００ｈ」との足し算によって生じた桁上がりがＺＰレジスタに反映される。命令３０９が実行される前のＺＰレジスタには、命令３０１で格納された値「０１ｈ」が、サブルーチンの実行を経た後も保持されているので、桁上がりが反映されるとＺＰレジスタには値「０２ｈ」が格納される。この結果、「ＪＰ（ＨＬ）」なる表記で表される命令３１０が実行されると、０２７０００ｈ番地へとジャンプする。この実行結果は、命令３０２を取り除いたプログラムを想定した場合でも全く同様である。
【００２９】
このように、本実施形態では、旧型のマイクロプロセッサ用のプログラムをサブルーチンとして用いても、ＺＰレジスタに格納されている値がサブルーチン内で変更されないので、旧型のマイクロプロセッサ用のプログラムをそのまま有効に利用することができる。
以下、本発明の第３の実施形態について説明するが、第３の実施形態の概要も、図２に示す第１の実施形態の概要と同様であるので重複説明は省略する。
【００３０】
図７は、本発明の第３の実施形態の特徴部分を示す図である。
本実施形態では、図２に示す判定回路１５０は比較器１５３で構成されており、図３に示す比較器１５１同様に、図５に示す比較器１５３では、図２に示すＰＰＣレジスタ１２６に格納されている８ビットデータの値と、値「００ｈ」が比較され、これによって、実行しようとする命令が格納されているアドレスが、図２に示す互換領域１１１内のアドレスであるか否かが判定される。これらの値が互いに一致していない場合にのみ比較器１５３からパルス信号が出力される。
【００３１】
また、本実施形態では、図２において図示が省略されている切換回路１７０が、本発明にいうページ指定部として用いられ、ＺＰレジスタ１２７は、「ＬＤ    Ｄ，Ｄ」なる表記で表される命令に対応付けられ、ＸＰレジスタ１２８は、「ＬＤ    Ａ，Ａ」なる表記で表される命令に対応付けられている。「ＬＤ    Ａ，Ａ」および「ＬＤ    Ｄ，Ｄ」なる表記で表される命令が実行されると、図２に示す命令実行回路１６０は、これらの命令に対応付けられたページレジスタへの切換えを指定する切換制御信号を生成する。
【００３２】
さらに、命令実行回路１６０には、フリップフロップ１６３が設けられており、このフリップフロップ１６３には切換制御信号が入力され、このフリップフロップ１６３のゲートには、比較器１５３からの出力が入力される。この結果、実行しようとする命令が格納されているアドレスが、図２に示す互換領域１１１内のアドレスであると、フリップフロップ１６３の出力が保持されて切換回路１７０の状態も保持される。このとき、「ＬＤ    Ａ，Ａ」および「ＬＤ    Ｄ，Ｄ」なる表記で表される命令は、これらの命令の実行の前後で内部状態が保存される無意味命令として実行される。実行しようとする命令が格納されているアドレスが互換領域１１１外のアドレスであると、フリップフロップ１６３に切換制御信号が取り込まれ、上述した、命令とページレジスタとの対応関係に応じて、切換回路１７０によるページレジスタの切換えが行われる。
【００３３】
図８は、第３の実施形態において命令が実行される様子を示す図である。
図４同様に図８には、図２に示すメモリ１１０が有するアドレス空間が示されており、上述したように、００００００ｈ番地から００ＦＦＦＦｈ番地までが互換領域１１１である。この互換領域１１１内には、旧型のマイクロプロセッサ用に作成されたサブルーチンプログラム「＿ＳＵＢ」が格納されており、互換領域１１１を除くアドレス空間には、新たに作成され、サブルーチンプログラム「＿ＳＵＢ」を利用するプログラムが格納されている。
【００３４】
「ＬＤ    ＺＰ，０１ｈ」なる表記で表される命令４０１から実行が開始されてＺＰレジスタに値「０１ｈ」が格納され、「ＬＤ    ＸＰ，０２ｈ」なる表記で表される命令４０２が実行されてＸＰレジスタに値「０２ｈ」が格納され、「ＬＤＨＬ，８０００ｈ」なる表記で表される命令４０３が実行されて汎用ＨＬレジスタに値「８０００ｈ」が格納される。その後、「ＣＡＬＬ    ＿ＳＵＢ」なる表記で表される命令４０４が実行されて、プログラムの流れが、互換領域１１１内に格納されているサブルーチンプログラム「＿ＳＵＢ」に移り、「ＬＤ    Ａ，Ａ」なる表記で表される命令４０５が実行される。この命令４０５は、互換領域１１１内に格納されているので、無意味命令として実行され内部状態は保存される。その後「ＲＥＴ」表記で表される命令４０６が実行されてプログラムの流れがリターンし、「ＪＰ（ＨＬ）」なる表記で表される命令４０７が実行される。ここで、サブルーチン内ではレジスタの切換えが行われていないので、プログラムの流れは、ＺＰレジスタおよび汎用ＨＬレジスタに格納されている２４ビットの値が示す０１８０００ｈ番地にジャンプする。その後、命令４０５の命令表記と同一の「ＬＤ    Ａ，Ａ」なる表記で表される命令４０８が実行される。この命令４０８は、互換領域１１１外に格納されているので、ＺＰレジスタからこの命令に対応付けられているＸＰレジスタへの切換えが行われる。そこで、次に、「ＪＰ（ＨＬ）」なる表記で表される命令４０９が実行されると、プログラムの流れが、ＸＰレジスタおよび汎用ＨＬレジスタに格納されている２４ビットの値が示す０２８０００ｈ番地にジャンプする。
【００３５】
このように、本実施形態では、旧型のマイクロプロセッサ用のプログラムをサブルーチンとして用いても、ページレジスタがサブルーチン内で切換えられないので、旧型のマイクロプロセッサ用のプログラムをそのまま有効に利用することができる。
【００３６】
【発明の効果】
以上説明したように、本発明のマイクロプロセッサによれば、旧型のマイクロプロセッサのアドレス空間が拡張された広いアドレス空間を有し、その広いアドレス空間を自由に利用でき、旧型のマイクロプロセッサ用のソフトウェアがそのまま利用できる。
【図面の簡単な説明】
【図１】旧型のマイクロプロセッサに備えられているレジスタセット（Ａ）、および新型マイクロプロセッサに備えられているレジスタセット（Ｂ）の一例を示す図である。
【図２】本発明のマイクロプロセッサの概要を示す図である。
【図３】第１の実施形態の特徴部分を示す図である。
【図４】第１の実施形態において命令が実行される様子を示す図である。
【図５】本発明の第２の実施形態の特徴部分を示す図である。
【図６】第２の実施形態において命令が実行される様子を示す図である。
【図７】本発明の第３の実施形態の特徴部分を示す図である。
【図８】第３の実施形態において命令が実行される様子を示す図である。
【符号の説明】
１００        マイクロプロセッサ
１１０        メモリ
１１１        互換領域
１２１        プログラムカウンタ
１２２        汎用ＤＥレジスタ
１２３        汎用ＨＬレジスタ
１２４        スタックポインタ
１２５        アキュムレータ
１２６        ＰＰＣレジスタ
１２７        ＺＰレジスタ
１２８        ＸＰレジスタ
１３０        バス
１４０        命令フェッチ・解読回路
１５０        判定回路
１５１，１５２，１５３        比較器
１６０        命令実行回路
１６１        論理回路
１６２        論理素子
１６３        フリップフロップ
１７０        切換回路
【図１】
0003583918.tif 000002
【図２】
0003583918.tif 000003
【図３】
0003583918.tif 000004
【図４】
0003583918.tif 000005
【図５】
0003583918.tif 000006
【図６】
0003583918.tif 000007
【図７】
0003583918.tif 000008
【図８】
0003583918.tif 000009