JP3563724B2 - マイクロプロセッサ、エミュレータおよび命令セット解釈方法 - Google Patents
マイクロプロセッサ、エミュレータおよび命令セット解釈方法 Download PDFInfo
- Publication number
- JP3563724B2 JP3563724B2 JP2002056311A JP2002056311A JP3563724B2 JP 3563724 B2 JP3563724 B2 JP 3563724B2 JP 2002056311 A JP2002056311 A JP 2002056311A JP 2002056311 A JP2002056311 A JP 2002056311A JP 3563724 B2 JP3563724 B2 JP 3563724B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- value
- microprocessor
- access
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Microcomputers (AREA)
Description
【発明の属する技術分野】
この発明は、レジスタをオペランドとして指定可能な命令セットを実行するマイクロプロセッサ、第1の実行モードをサポートするマイクロプロセッサで第2の実行モード用に記述されたプログラムを動作させるためのエミュレータおよび同マイクロプロセッサのオペランド解釈方法に係り、特に、RISC(Reduced Instruction Set ComPuter)アーキテクチャのもつ高速な処理という利点を維持しつつ、コンテキストスイッチの高速化とコードサイズのコンパクト化とを実現したマイクロプロセッサ、エミュレータおよび同マイクロプロセッサのオペランド解釈方法に関する。
【0002】
【従来の技術】
マイクロプロセッサの命令セットアーキテクチャは、命令長(ビット幅)、オペランドとして指定可能なレジスタの個数、アドレッシングモードなどによって特徴づけられる。RISCアーキテクチャは、多数のレジスタ、ロード/ストア命令によるメモリアクセス、固定長命令、シンプルな命令フォーマットを特徴とするアーキテクチャであり、比較的命令デコードが容易であり、回路規模を小さく押えることができるため、少ない消費電力で高い動作周波数のマイクロプロセッサを実現することが可能である。一方で、多数のレジスタを使用するために、コンテキストスイッチに時間が掛かることや、ロード/ストア命令の頻度が高いために、多数のレジスタを必要としないプログラムであってもコードサイズが大きくなってしまうという欠点がある。
【0003】
【発明が解決しようとする課題】
前述したように、RISCアーキテクチャでは、高速な処理という利点をもつ反面、コンテキストスイッチに時間が掛かり、また、プログラムのコードサイズが大きくなるという欠点をもっていた。
【0004】
この発明は、このような事情を考慮してなされたものであり、RISCアーキテクチャのもつ高速な処理という利点を維持しつつ、コンテキストスイッチの高速化とコードサイズのコンパクト化とを実現したマイクロプロセッサ、エミュレータおよび同マイクロプロセッサのオペランド解釈方法を提供することを目的とする。
【0005】
【課題を解決するための手段】
前述した目的を達成するために、この発明は、レジスタをオペランドとして指定可能な命令セットを実行するマイクロプロセッサにおいて、前記レジスタオペランド内の上位nビットからなる上位フィールドの値が予め定められた値であったときに、前記上位フィールドを除く下位フィールドの値で指し示されるレジスタにアクセスするレジスタアクセス手段と、前記上位フィールドの値が予め定められた値でなかったときに、その上位フィールドの値で指し示されるレジスタの格納値をベースアドレス、前記下位フィールドの値をオフセットとしてメモリにアクセスするメモリアクセス手段とを具備することを特徴とする。
【0006】
また、このマイクロプロセッサは、前記レジスタオペランド内のすべてをレジスタ番号の格納フィールドとする通常のレジスタアクセスとして命令セットを解釈する第1の実行モードと、前記レジスタオペランド内を前記上位フィールドおよび前記下位フィールドの2つのフィールドに分割し、前記レジスタアクセス手段または前記メモリアクセス手段によるレジスタアクセスまたはメモリアクセスとして命令セットを解釈する第2の実行モードとを切り換えるモード切換手段をさらに具備することを特徴とする。
【0007】
この発明のマイクロプロセッサにおいては、たとえば多数のレジスタを使うメディア処理では第1の実行モード、コンパクトなリアルタイム処理では第2の実行モードで動作する等、性格の異なるプログラムそれぞれを1つの命令セットアーキテクチャで効率的に処理することを実現する。
【0008】
また、この発明は、命令セットに含まれるレジスタオペランド内のすべてをレジスタ番号の格納フィールドとしてレジスタアクセスを実行する第1の実行モードのみをサポートするマイクロプロセッサ上で、前記レジスタオペランド内の上位nビットからなる上位フィールドの値で指し示されるレジスタの格納値をベースアドレス、前記上位フィールドを除く下位フィールドの値をオフセットとしてメモリアクセスを実行する第2の実行モード用に記述されたプログラムを動作させるためのエミュレータであって、前記メモリアクセスに相当するロード/ストア命令を前記プログラムに挿入する手段を具備することを特徴とする。
【0009】
この発明のエミュレータにおいては、レジスタオペランド内のすべてをレジスタ番号の格納フィールドとする通常のレジスタアクセスとして命令セットを解釈する第1の実行モードしかサポートしないマイクロプロセッサであっても、その実行前に、メモリアクセスに相当するロード/ストア命令をプログラムに挿入することによって、レジスタオペランド内を上位フィールドおよび下位フィールドの2つのフィールドに分割し、レジスタアクセスまたはメモリアクセスとして命令セットを解釈する第2の実行モード用に記述されたプログラムを動作させることを可能とする。
【0010】
【発明の実施の形態】
以下、図面を参照してこの発明の実施形態を説明する。
(第1実施形態)
まず、この発明の第1実施形態について説明する。
図1は、この第1実施形態に係るマイクロプロセッサにおける命令セット解釈の基本原理を説明するための概念図である。
【0011】
この実施形態のマイクロプロセッサは、レジスタをオペランドとして指定可能なRISC命令セットを実行するマイクロプロセッサであり、実行モードによってレジスタオペランドの解釈を変える仕組みを備えている。ここでは、このマイクロプロセッサが次の2つの実行モードをサポートするものと想定する。
【0012】
(1)ベースモード
レジスタオペランドを通常のレジスタアクセスとして解釈するモード。
【0013】
(2)拡張モード
レジスタオペランドを2つのフィールドに分割し、上位フィールドの値が所定の値(たとえば0)である場合には、通常のレジスタアクセスとして解釈し、それ以外の値の場合には、上位フィールドの値が指し示すレジスタの内容をベースアドレス、下位フィールドの値をオフセットとするメモリアクセスとして解釈するモード。
【0014】
そして、このマイクロプロセッサは、(2)の拡張モードを備えた点をその特徴としており、以下では、この拡張モードでの動作原理を詳述する。なお、このマイクロプロセッサは、複数のプログラムを時分割で並列に実行するが、あるプログラムから別のプログラムに切り換える、いわゆるコンテキストスイッチを行った際に、所定のレジスタを参照することにより、新たにディスパッチされたプログラムがベースモードおよび拡張モードのいずれの実行モードで動作するものであるのかを知得し、前述した2つの実行モード間の切り換えを実行する。
【0015】
拡張モード時、マイクロプロセッサは、命令セット10の各レジスタオペランド12について、まず、上位フィールド121の値を参照する。ここでは、上位フィールト121を先頭から2ビットとし、3ビット目以降を下位フィールド122とする例を示す。
【0016】
この上位フィールド121の値が0、つまり“00”であったとき、マイクロプロセッサは、通常のレジスタアクセスと同じ様に、下位フィールド122の値で指し示されるレジスタ1にアクセスする。一方、この上位フィールド121の値が0以外、つまり“01”、“10”、“11”のいずれかであったとき、マイクロプロセッサは、この3つの値にそれぞれ割り当てられた所定のレジスタ1を参照し、そのレジスタ1の値をベースアドレス、レジスタオペランド12の下位フィールド122の値をオフセットとしてメモリ2にアクセスする。
【0017】
つまり、この拡張モードでは、たとえばメディア処理などのためにベースモードをサポートすべく多数(n個)のレジスタが搭載された場合であっても、利用するレジスタ数は1/4n個で済むため、コンテキストスイッチ時のレジスタの入れ替え量を大幅に削減し、その高速化を実現する。なお、図1ではやや分かりづらいが、上位フィールド121の値が所定の値以外であった場合に参照するレジスタの数は、1/4n個のレジスタの中の僅かに過ぎないものである。
【0018】
また、たとえば図2に示すようなコードを処理する場合を考えると、通常のRISCでは、このようなコードは図3に示すようなマシン語になるのに対し、この拡張モードを利用すれば、図4に示すようなマシン語で良い。つまり、この拡張モードは、コードサイズの2〜3割を占めるといわれるロード/ストアを大幅に削減することにより、コードサイズのコンパクト化も実現する。
【0019】
さらに、この拡張モードでは、レジスタアクセスに加えて、最大3箇所までのメモリアクセスを1つの命令で扱えるため、レジスタ−メモリ間、メモリ−レジスタ間、メモリ−メモリ間の演算を効率良く行うことが可能となる。
【0020】
なお、ここでは、上位フィールドを先頭から2ビットとし、3ビット目以降を下位フィールドとする例を示したが、このマイクロプロセッサにおける命令セット解釈の手法は、これに限られるものではない。たとえば、上位フィールドを先頭から1ビットとし、2ビット目以降を下位フィールドとすれば、レジスタオペランドの解釈を1/2n個のレジスタを対象としたレジスタアクセスと、1箇所のメモリアクセスとの2種類を考慮しながら行えることになる。また、この上位フィールドのビット幅を可変とすることによって、拡張モードにバリエーションを持たせることも可能である。さらに、たとえばレジスタオペランドを3つに分割して、レジスタ+レジスタ+オフセットというアドレッシングをサポートすることも可能である。
【0021】
(第2実施形態)
次に、この発明の第2実施形態について説明する。
図5は、この発明の第2実施形態に係るマイクロプロセッサにおける命令セット解釈の基本原理を説明するための概念図である。
【0022】
この実施形態のマイクロプロセッサと前述した第1実施形態のマイクロプロセッサとの違いは、前述した第1実施形態のマイクロプロセッサが、ベースモード時に必要となる多数(n個)のレジスタを実装するのに対し、この実施形態のマイクロプロセッサでは、拡張モードで必要となる数(たとえば1/4n個)のみを実装する点にある。そして、この実施形態のマイクロプロセッサは、この拡張モードで必要となる数のレジスタのみで、ベースモード用に記述されたプログラムを動作させることを可能とした点をその特徴とする。以下、この点について詳述する。
【0023】
前述したレジスタ数でベースモード用に記述されたプログラムを動作させるためには、不足分のレジスタを何らかの形で補わなければならない。そこで、このマイクロプロセッサは、図5に示すように、この不足分のレジスタをメモリ上にマップし、そのマップ先のメモリ上のアドレスを所定のレジスタに格納する。
【0024】
いま、このマイクロプロセッサが、第1実施形態で説明した拡張モードをサポートしているものと想定する。この場合、このマイクロプロセッサは、ベースモード時に、3/4n個のレジスタをメモリ上にマップする。その後、マイクロプロセッサは、拡張モードと同じように動作する。
【0025】
具体的には、マイクロプロセッサは、ベースモードの命令セット10の各レジスタオペランド12について、まず、先頭から2ビットの上位フィールド121の値を参照し、この上位フィールド121の値が0、つまり“00”であったとき、通常のレジスタアクセスと同じ様に、上位フィールド121以外の下位フィールド122の値で指し示されるレジスタ1にアクセスする。一方、この上位フィールド121の値が0以外、つまり“01”、“10”、“11”のいずれかであったとき、マイクロプロセッサは、たとえばこの3つの値にそれぞれ割り当てるべく別途設けられたレジスタ1bを参照し、そのレジスタ1bの値をベースアドレス、レジスタオペランド12の下位フィールド122の値をオフセットとしてメモリ2にアクセスする。
【0026】
このように、このマイクロプロセッサは、少数のレジスタ構成であるにも関わらず、多数のレジスタを使うメディア処理用などのプログラムを動作させることを可能とする。
【0027】
(第3実施形態)
次に、この発明の第3実施形態について説明する。
図6は、この発明の第3実施形態に係るマイクロプロセッサにおける命令セット解釈の基本原理を説明するための概念図である。
【0028】
この実施形態のマイクロプロセッサと前述した第1実施形態のマイクロプロセッサとの違いは、この実施形態のマイクロプロセッサでは、拡張モード時に、レジスタアクセスで利用する1/4n個以外のレジスタをメモリアクセス用のキャッシュエリアとして活用する点にある。
【0029】
いま、上位フィールドの値をa、下位フィールドの値をb、この2つのフィールドを含むレジスタオペランドの値を(a,b)と表すものとする。そして、この(a,b)によってアクセスするメモリをワードサイズに限定すると、上位フィールド121の各値ごとに確保されたキャッシュエリアたるレジスタ群内でのレジスタ番号とメモリアドレスとの間に対応関係ができるので、このマイクロプロセッサは、そのコンシステンシを保つことによって、高速なメモリアクセスを実現する。
【0030】
より具体的には、レジスタaの内容を(a)、ワードサイズをw、下位フィールドのビット幅をnとすると、
・メモリアドレス: (a)+(b×w)
・レジスタ番号 : ((a)/w+b)mod2n
を上位フィールド121の各値ごとに確保されたキャッシュエリアたるレジスタ群内でのレジスタ番号とメモリアドレスとの間の対応関係として定義する。そして、マイクロプロセッサは、この対応関係を保ちながら、メモリ2の値をレジスタ1にキャッシングする(図6参照)。
【0031】
こうすると、たとえばレジスタaの値がワードサイズだけインクリメントまたはデクリメントされた場合、このレジスタaをベースとする2n個のレジスタのうち、値がダーティとなるレジスタを1つのみとすることができる。
【0032】
このように、このマイクロプロセッサは、拡張モード時、レジスタアクセスで用いられるレジスタ以外のレジスタ群をメモリのキャッシュエリアとして活用することにより、メモリアクセスを高速に処理することを可能とする。
【0033】
ところで、前述の第1乃至第3実施形態では、レジスタオペランドを2つのフィールドに分割し、上位フィールドの値が所定の値である場合には、通常のレジスタアクセスとして解釈し、それ以外の値の場合には、上位フィールドの値が指し示すレジスタの内容をベースアドレス、下位フィールドの値をオフセットとするメモリアクセスとして解釈する拡張モードをサポートするマイクロプロセッサについて説明してきた。そこで、次に、この拡張モード用に記述されたプログラムを通常のベースモードのみをサポートするマイクロプロセッサで動作させることについて触れておく。
【0034】
そのために、ここでは、プログラムの実行前に、メモリアクセスに相当するロード/ストア命令をプログラムに埋め込むためのエミュレータを用意することを考える。この場合、ロード/ストアを行う時に一時的に使用するレジスタが必要になるが、これには、たとえばレジスタ番号が(a,b)、つまり(a<<n)+bのレジスタを使用すれば良い。
【0035】
なお、本願発明は、前記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、前記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。たとえば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0036】
【発明の効果】
以上のように、この発明によれば、レジスタオペランドを通常のレジスタアクセスとして解釈する第1の実行モードと、レジスタオペランドを2つのフィールドに分割し、上位フィールドの値が所定の値である場合には、通常のレジスタアクセスとして解釈し、それ以外の値の場合には、上位フィールドの値が指し示すレジスタの内容をベースアドレス、下位フィールドの値をオフセットとするメモリアクセスとして解釈する第2の実行モードとをもつことにより、RISCアーキテクチャのもつ高速な処理という利点を維持しつつ、コンテキストスイッチの高速化とコードサイズのコンパクト化とを実現する。
【図面の簡単な説明】
【図1】この発明の第1実施形態に係るマイクロプロセッサにおける命令セット解釈の基本原理を説明するための概念図。
【図2】同第1実施形態のマイクロプロセッサで処理されるコードを例示する図。
【図3】図2に示したコードを通常のベースモード用としてマシン語にした場合の例を示す図。
【図4】図2に示したコードを同第1実施形態のマイクロプロセッサがサポートする拡張モード用としてマシン語にした場合の例を示す図。
【図5】同第2実施形態に係るマイクロプロセッサにおける命令セット解釈の基本原理を説明するための概念図。
【図6】同第3実施形態に係るマイクロプロセッサにおける命令セット解釈の基本原理を説明するための概念図。
【符号の説明】
1…レジスタ
2…メモリ
10…命令セット
11…オペレーションコード部
12…オペランド部
121…上位フィールド
122…下位フィールド
Claims (7)
- レジスタをオペランドとして指定可能な命令セットを実行するマイクロプロセッサにおいて、
前記レジスタオペランド内の上位nビットからなる上位フィールドの値が予め定められた値であったときに、前記上位フィールドを除く下位フィールドの値で指し示されるレジスタにアクセスするレジスタアクセス手段と、
前記上位フィールドの値が予め定められた値でなかったときに、その上位フィールドの値で指し示されるレジスタの格納値をベースアドレス、前記下位フィールドの値をオフセットとしてメモリにアクセスするメモリアクセス手段と
を具備することを特徴とするマイクロプロセッサ。 - 前記レジスタオペランド内のすべてをレジスタ番号の格納フィールドとする通常のレジスタアクセスとして命令セットを解釈する第1の実行モードと、前記レジスタオペランド内を前記上位フィールドおよび前記下位フィールドの2つのフィールドに分割し、前記レジスタアクセス手段または前記メモリアクセス手段によるレジスタアクセスまたはメモリアクセスとして命令セットを解釈する第2の実行モードとを切り換えるモード切換手段をさらに具備することを特徴とする請求項1記載のマイクロプロセッサ。
- 前記第2の実行モード時に必要となる最小限数のレジスタのみを備えた請求項2記載のマイクロプロセッサ。
- 前記モード切換手段により前記第1の実行モードに切り換えるときに、不足分のレジスタをメモリ上にマップするマッピング手段をさらに具備することを特徴とする請求項3記載のマイクロプロセッサ。
- 前記第1の実行モード時に必要となる数のレジスタを備えたプロセッサであって、
前記モード切換手段により前記第2の実行モードに切り換えられるときに、前記レジスタアクセス手段が用いる以外のレジスタに、当該レジスタと前記メモリとの対応関係の一貫性を保持しつつ前記メモリの値をキャッシュするキャッシュ手段をさらに具備し、
前記メモリアクセス手段は、前記レジスタにキャッシュされた値にアクセスすることによってメモリアクセスを代替的に処理することを特徴とする請求項2記載のマイクロプロセッサ。 - 命令セットに含まれるレジスタオペランド内のすべてをレジスタ番号の格納フィールドとしてレジスタアクセスを実行する第1の実行モードのみをサポートするマイクロプロセッサ上で、前記レジスタオペランド内の上位nビットからなる上位フィールドの値で指し示されるレジスタの格納値をベースアドレス、前記上位フィールドを除く下位フィールドの値をオフセットとしてメモリアクセスを実行する第2の実行モード用に記述されたプログラムを動作させるためのエミュレータであって、
前記メモリアクセスに相当するロード/ストア命令を前記プログラムに挿入する手段を具備することを特徴とするエミュレータ。 - レジスタをオペランドとして指定可能な命令セットを実行するマイクロプロセッサのオペランド解釈方法であって、
前記レジスタオペランド内の上位nビットからなる上位フィールドの値が予め定められた値であったときに、前記上位フィールドを除く下位フィールドの値で指し示されるレジスタにアクセスし、前記上位フィールドの値が予め定められた値でなかったときに、その上位フィールドの値で指し示されるレジスタの格納値をベースアドレス、前記下位フィールドの値をオフセットとしてメモリにアクセスするように命令セットを解釈することを特徴とするマイクロプロセッサの命令セット解釈方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002056311A JP3563724B2 (ja) | 2002-03-01 | 2002-03-01 | マイクロプロセッサ、エミュレータおよび命令セット解釈方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002056311A JP3563724B2 (ja) | 2002-03-01 | 2002-03-01 | マイクロプロセッサ、エミュレータおよび命令セット解釈方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003256195A JP2003256195A (ja) | 2003-09-10 |
JP3563724B2 true JP3563724B2 (ja) | 2004-09-08 |
Family
ID=28666917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002056311A Expired - Fee Related JP3563724B2 (ja) | 2002-03-01 | 2002-03-01 | マイクロプロセッサ、エミュレータおよび命令セット解釈方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3563724B2 (ja) |
-
2002
- 2002-03-01 JP JP2002056311A patent/JP3563724B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003256195A (ja) | 2003-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5654056B2 (ja) | 階層的な変換テーブル制御 | |
US6651160B1 (en) | Register set extension for compressed instruction set | |
CN102033734B (zh) | 数据处理引擎 | |
JPS61148551A (ja) | アドレス変換方式 | |
JP2010002986A (ja) | 再構成可能電子回路装置 | |
JP3563724B2 (ja) | マイクロプロセッサ、エミュレータおよび命令セット解釈方法 | |
CN101196808A (zh) | 一种8位微控制器 | |
JPH04104350A (ja) | マイクロプロセッサ | |
JP3644614B2 (ja) | 動的中間コード処理装置 | |
JP3644892B2 (ja) | 複数組の命令組を実行するためのデータ処理装置 | |
US6243798B1 (en) | Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction | |
JP2004206214A (ja) | マイクロプロセッサ | |
US20020073295A1 (en) | Enhanced memory addressing capability | |
KR100337138B1 (ko) | 고속 화상 처리에 이용하는 캐시 메모리 장치 및 캐시메모리 장치를 탑재한 프로세서 | |
JP2008003867A (ja) | マイクロコンピュータ | |
JPH04255995A (ja) | 命令キャッシュ | |
JP2000163264A (ja) | Cpu用のプログラム記憶装置 | |
JPH06337791A (ja) | プログラム変換装置およびプロセッサ | |
JPH11296431A (ja) | 情報処理装置及びキャッシュメモリのマッピング方法 | |
JP2000276588A (ja) | キャッシュメモリ装置及びプロセッサ | |
JPH05197622A (ja) | キャッシュサブシステム | |
JPH07129459A (ja) | プロセッサ専用外部ストレージのアドレス変換方式 | |
JP2003233497A (ja) | アドレス変換装置 | |
JPH117411A (ja) | アドレス変換装置 | |
JPH03280132A (ja) | 中央処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040309 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040510 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040601 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040603 |
|
LAPS | Cancellation because of no payment of annual fees |