(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024061528
(43)【公開日】2024-05-07
(54)【発明の名称】間接アドレス指定方式の条件ジャンプ命令を実行するプロセッサ、プログラム及び方法
(51)【国際特許分類】
G06F 9/32 20180101AFI20240425BHJP
【FI】
G06F9/32 320C
【審査請求】有
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022169525
(22)【出願日】2022-10-21
(11)【特許番号】
(45)【特許公報発行日】2024-01-25
(71)【出願人】
【識別番号】514303444
【氏名又は名称】たけおかラボ株式会社
(71)【出願人】
【識別番号】000219967
【氏名又は名称】東京エレクトロン株式会社
(74)【代理人】
【識別番号】100135068
【弁理士】
【氏名又は名称】早原 茂樹
(72)【発明者】
【氏名】竹岡 尚三
(72)【発明者】
【氏名】木下 喜夫
【テーマコード(参考)】
5B033
【Fターム(参考)】
5B033CA05
5B033CA09
5B033DA11
5B033DA15
(57)【要約】
【課題】間接アドレス方式の条件ジャンプのサブルーチンにおけるアセンブリコードを削減するプロセッサ、プログラム及び方法を提供する。
【解決手段】プロセッサは、プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサは、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における異なるジャンプ先実効アドレスを格納した後、指標レジスタを引用する1命令の条件ジャンプ命令をフェッチし且つデコードした時に、(S1)指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得し、(S2)プログラムカウンタとなるレジスタに、ジャンプ先実効アドレスを設定するように論理構成されている。
【選択図】
図4
【特許請求の範囲】
【請求項1】
プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサにおいて、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における異なるジャンプ先実効アドレスを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令をフェッチし且つデコードした時に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていることを特徴とするプロセッサ。
【請求項2】
プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサにおいて、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令をフェッチし且つデコードした時に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、プログラムカウンタから当該アドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていること特徴とするプロセッサ。
【請求項3】
プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサにおいて、
ベースレジスタに、メモリ空間におけるベースアドレスを格納し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、ベースアドレスからジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタ及びベースレジスタを引用する1命令の条件ジャンプ命令をフェッチし且つデコードした時に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ベースレジスタのベースアドレスからアドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていることを特徴とするプロセッサ。
【請求項4】
論路回路は、ハードウェア記述言語のソースコード又は布線論理によって記述されている
ことを特徴とする請求項1から3のいずれか1項に記載のプロセッサ。
【請求項5】
プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路として機能させるプログラムにおいて、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における異なるジャンプ先実効アドレスを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ジャンプ先実効アドレスを設定する第2のステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項6】
プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路として機能させるプログラムにおいて、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、プログラムカウンタから当該アドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項7】
プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路として機能させるプログラムにおいて、
ベースレジスタに、メモリ空間におけるベースアドレスを格納し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、ベースアドレスからジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタ及びベースレジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ベースレジスタのベースアドレスからアドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項8】
プログラムカウンタを含む複数のレジスタを用いた論理回路におけるアセンブリコードの間接アドレス方式の条件ジャンプ命令実行方法において、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における異なるジャンプ先実効アドレスを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ジャンプ先実効アドレスを設定する第2のステップと
を実行することを特徴とする条件ジャンプ命令実行方法。
【請求項9】
プログラムカウンタを含む複数のレジスタを用いた論理回路におけるアセンブリコードの間接アドレス方式の条件ジャンプ命令実行方法において、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、プログラムカウンタから当該アドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
を実行することを特徴とする条件ジャンプ命令実行方法。
【請求項10】
プログラムカウンタを含む複数のレジスタを用いた論理回路におけるアセンブリコードの間接アドレス方式の条件ジャンプ命令実行方法において、
ベースレジスタに、メモリ空間におけるベースアドレスを格納し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、ベースアドレスからジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタ及びベースレジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ベースレジスタのベースアドレスからアドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
を実行することを特徴とする条件ジャンプ命令実行方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、条件ジャンプ命令を実行するプロセッサの技術に関する。特に、RISC(Reduced Instruction Set Computer)アーキテクチャに基づくものに適する。
【背景技術】
【0002】
RISCは、縮小命令セットアーキテクチャとして設計されたものである。これは、命令における総数や種類、フォーマットを少なくし、それぞれの命令の処理やオペランドのアドレッシングを単純化したものである。
【0003】
【0004】
図1によれば、プロセッサ1とメインメモリ2とから構成される。
[プロセッサ1]
プロセッサ1は、PLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)、LSI(Large Scale Integration)であって、半導体チップの回路設計に基づくハードウェア記述言語によって記述されたものであってもよい。ハードウェア記述言語は、プログラミング言語に似た構文や表記法で、回路に含まれる素子の構成やそれぞれの動作条件、素子間の配線などを記述することができる。回路図を、PLDやFPGA、LSIに書き込むことによって、プロセッサチップを製造することができる。
【0005】
プロセッサ1は、組み合わせ論理回路としての「論理回路」と、順序論理回路としての「レジスタ」とから構成される。プロセッサ1は、論理回路及びレジスタによって有限状態機械を構成する。例えばRISC-Vの場合、論路回路は、ハードウェア記述言語のソースコード又は布線論理によって記述される。また、レジスタは、x0~x31の32本を有する。
【0006】
[メインメモリ2]
メインメモリ2は、例えばDRAM(Dynamic Random-Access Memory)のようにトランジスとキャパシタとを組み合わせた揮発性メモリである。プロセッサ1の近くにメインメモリ2を配置することによって、アクセス速度をできる限り高速に実現する。
【0007】
従来、CISC(Complex Instruction Set Computer)型プロセッサのデータ構造及びコードを、RISC型プロセッサに適用する技術がある(例えば特許文献1参照)。この技術によれば、メモリ内の一連のアドレスから機械語命令をフェッチし、その機械語命令をデコードする。次に、このとき、フェッチされた機械語命令の中でジャンプ命令を検出した際に、ジャンプ先のターゲットアドレスを含むレジスタのアドレスを抽出する。そして、ジャンプ命令を実行する前に、一連のアドレスでからはなく、レジスタが指すターゲットアドレスから機械語命令をフェッチする。
【0008】
図2は、従来技術における条件ジャンプ命令を含むアセンブリコードの例である。
【0009】
図2のアセンブリコードは、間接アドレス方式におけるディスパッチテーブルを用いた一般的な条件ジャンプのサブルーチンである。ここでは、分岐の引数fpを入力する。
この条件ジャンプのサブルーチンは、レジスタx10~x13を、複数のジャンプ先アドレスを含むディスパッチテーブルとして用いている。ディスパッチテーブルを、プロセッサ1内部のレジスタに記憶することによって、高速なアクセスを実現する。
【0010】
(S01)4つのジャンプ先があるとする。最初に、サブルーチンの引数fpをx15に格納し、x15の下位2ビット(00,01,10,11のいずれか)をx16へ格納する。x16によって、4つの分岐先を選択することができる。
【0011】
(S02)auipcによって、現在のプログラムカウンタ(x0)の値(=0x400000)をx10に書き込む。そして、addiによって、x10にジャンプ先のルーチン1の先頭アドレス0x0032を加算(=0x400032)して、x10に書き込む。
次に、auipcによって、現在のプログラムカウンタ(x0)の値(=0x400008)をx11に書き込む。そして、addiによって、x11にジャンプ先のルーチン2の先頭アドレス0x0036を加算(=0x40003E)して、x11に書き込む。
次に、auipcによって、現在のプログラムカウンタ(x0)の値をx12(=0x4000010)に書き込む。そして、addiによって、x12にジャンプ先のルーチン3の先頭アドレス0x0084を加算(=0x400094)して、x12に書き込む。
次に、auipcによって、現在のプログラムカウンタ(x0)の値をx13(=0x400018)に書き込む。そして、addiによって、x13にジャンプ先のルーチン4の先頭アドレス0x0088を加算(=0x4000A0)して、x13に書き込む。
【0012】
(S03)そして、jal(Jump And Link)によって、飛び先ルーチン<Pl_Switch_On_Term_Var_Atm_Lst>をサブルーチン・コールする。
【0013】
(S04)飛び先ルーチン<Pl_Switch_On_Term_Var_Atm_Lst>では、最初に、liによって、x6に3を格納する。そして、bneによって、x16とx6とを比較し、異なればL1へ分岐する。x16とx6とが同じであれば、x13に格納されたアドレスを、リターン値となるx10に格納して戻る。
次に、liによって、x6に2を格納する。そして、bneによって、x16とx6とを比較し、異なればL2へ分岐する。x16とx6とが同じであれば、x12に格納されたアドレスを、リターン値となるx10に格納して戻る。
次に、liによって、x6に1を格納する。そして、bneによって、x16とx6とを比較し、異なればL3へ分岐する。x16とx6とが同じであれば、x11に格納されたアドレスを、リターン値となるx10に格納して戻る。
最後に、L3では、x10に格納されたアドレスを、リターン値となるx10に格納して戻る。
【0014】
(S05)飛び先ルーチン<Pl_Switch_On_Term_Var_Atm_Lst>から戻った後、jr(Jump Register)によって、x10に格納されたアドレスへジャンプする。
【先行技術文献】
【特許文献】
【0015】
【発明の概要】
【発明が解決しようとする課題】
【0016】
一般的なアセンブリコード全体の中で、条件ジャンプのサブルーチンの呼び出し回数は非常に多い。条件ジャンプの同じサブルーチンが何度も呼び出される。
図2によれば、わずか4つのジャンプ先への分岐にも拘わらず、レジスタを用いたアセンブリコードは、20以上のステップ数に及ぶ。プロセッサ1の論理回路は、各ステップについて、命令フェッチ(Instruction Fetch)、デコード(Instruction Decode)、実行(Execute)、書き込み(Memory Access & Writeback)を繰り返す。即ち、プロセッサ1の処理の高速化のためにも、アセンブリコードのステップ数を削減することが好ましい。
【0017】
そこで、本開示は、間接アドレス方式の条件ジャンプのサブルーチンにおけるアセンブリコードを削減することができるプロセッサ、プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0018】
本開示によれば、プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサにおいて、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における異なるジャンプ先実効アドレスを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令をフェッチし且つデコードした時に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていることを特徴とする。
【0019】
本開示によれば、プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサにおいて、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令をフェッチし且つデコードした時に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、プログラムカウンタから当該アドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていること特徴とする。
【0020】
本開示によれば、プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサにおいて、
ベースレジスタに、メモリ空間におけるベースアドレスを格納し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、ベースアドレスからジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタ及びベースレジスタを引用する1命令の条件ジャンプ命令をフェッチし且つデコードした時に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ベースレジスタのベースアドレスからアドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていることを特徴とする。
【0021】
本開示のプロセッサにおける他の実施形態によれば、論路回路は、ハードウェア記述言語のソースコード又は布線論理によって記述されていることも好ましい。
【0022】
本開示によれば、プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路として機能させるプログラムにおいて、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における異なるジャンプ先実効アドレスを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ジャンプ先実効アドレスを設定する第2のステップと
をコンピュータに実行させることを特徴とする。
【0023】
本開示によれば、プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路として機能させるプログラムにおいて、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、プログラムカウンタから当該アドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
をコンピュータに実行させることを特徴とする。
【0024】
本開示によれば、プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式について、アセンブリコードの条件ジャンプ命令を実行する論理回路として機能させるプログラムにおいて、
ベースレジスタに、メモリ空間におけるベースアドレスを格納し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、ベースアドレスからジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタ及びベースレジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ベースレジスタのベースアドレスからアドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
をコンピュータに実行させることを特徴とする。
【0025】
本開示によれば、プログラムカウンタを含む複数のレジスタを用いた論理回路におけるアセンブリコードの間接アドレス方式の条件ジャンプ命令実行方法において、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における異なるジャンプ先実効アドレスを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ジャンプ先実効アドレスを設定する第2のステップと
を実行することを特徴とする。
【0026】
本開示によれば、プログラムカウンタを含む複数のレジスタを用いた論理回路におけるアセンブリコードの間接アドレス方式の条件ジャンプ命令実行方法において、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、プログラムカウンタから当該アドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
を実行することを特徴とする。
【0027】
本開示によれば、プログラムカウンタを含む複数のレジスタを用いた論理回路におけるアセンブリコードの間接アドレス方式の条件ジャンプ命令実行方法において、
ベースレジスタに、メモリ空間におけるベースアドレスを格納し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、ベースアドレスからジャンプ先実効アドレスまでのアドレスオフセットを格納した後、
指標レジスタ及びベースレジスタを引用する1命令の条件ジャンプ命令を実行することによって、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに、ベースレジスタのベースアドレスからアドレスオフセットを加算したジャンプ先実効アドレスを設定する第2のステップと
を実行することを特徴とする。
【発明の効果】
【0028】
本開示のプロセッサ、プログラム及び方法によれば、指標レジスタを引用する1命令の条件ジャンプ命令の実行機能をプロセッサに搭載することによって、間接アドレス方式の条件ジャンプのサブルーチンにおけるアセンブリコードを削減することができる。
【図面の簡単な説明】
【0029】
【
図2】従来技術における条件ジャンプ命令を含むアセンブリコードの例である。
【
図3】本開示における条件ジャンプ命令を含むアセンブリコードの例である。
【
図4】第1の実施形態における論理回路のフローチャートである。
【
図5】第1の実施形態におけるレジスタ及びメモリの内容を表す説明図である。
【
図6】第2の実施形態における論理回路のフローチャートである。
【
図7】第2の実施形態におけるレジスタ及びメモリの内容を表す説明図である。
【
図8】第3の実施形態における論理回路のフローチャートである。
【
図9】第3の実施形態におけるレジスタ及びメモリの内容を表す説明図である。
【発明を実施するための形態】
【0030】
以下、本開示の実施の形態について、図面を用いて詳細に説明する。
【0031】
図3は、本開示における条件ジャンプ命令を含むアセンブリコードの例である。
【0032】
(S01)
図3によれば、
図2のS01と同様に、4つのジャンプ先があるとする。最初に、サブルーチンの引数fpをx15に格納し、x15の下位2ビット(00,01,10,11のいずれか)をx16へ格納する。x16によって、4つの分岐先を選択することができる。
ここで、本開示によれば、x16を指標レジスタする。指標レジスタとは、その内容によって分岐ジャンプ先を選択するものとする。指標レジスタx16に+10することよって、10~13を表現することができる。これは、参照レジスタx10~x13を特定することとなる。
【0033】
(S02)
図3によれば、
図2のS02と同様に、auipcによって、現在のプログラムカウンタ(x0)の値(=0x400000)をx10に書き込む。そして、addiによって、x10にジャンプ先のルーチン1の先頭アドレス0x0032を加算(=0x400032)して、x10に書き込む。
次に、auipcによって、現在のプログラムカウンタ(x0)の値(=0x400008)をx11に書き込む。そして、addiによって、x11にジャンプ先のルーチン2の先頭アドレス0x0036を加算(=0x40003E)して、x11に書き込む。
次に、auipcによって、現在のプログラムカウンタ(x0)の値(=0x400010)をx12に書き込む。そして、addiによって、x12にジャンプ先のルーチン3の先頭アドレス0x0084を加算(=0x400094)して、x12に書き込む。
次に、auipcによって、現在のプログラムカウンタ(x0)の値(=0x400018)をx13に書き込む。そして、addiによって、x13にジャンプ先のルーチン4の先頭アドレス0x0088を加算(=0x4000A0)して、x13に書き込む。
【0034】
(S1、S2)そして、指標レジスタを引用する1命令の条件ジャンプ命令を実行する。
branch_reg_indirect x16 #指標レジスタx16の内容のアドレスへジャンプ
branch_reg_indirectは、本開示として新たに構成され命令セット(機械語命令)である。本開示におけるプロセッサ1の論理回路は、新たに構成した条件ジャンプ命令をフェッチした後、その機械語命令を制御情報にデコードする。そして、その制御情報として、後述するようにS1及びS2が実行される。
【0035】
本開示について、以下のように3つの実施形態がある。
<第1の実施形態>:参照レジスタに、ジャンプ先実効アドレスを格納する
<第2の実施形態>:参照レジスタに、プログラムカウンタからジャンプ先実効アドレスまでのアドレスオフセットを格納する。
<第3の実施形態>:参照レジスタに、ベースアドレスからジャンプ先実効アドレスまのでアドレスオフセットを格納する。
【0036】
<第1の実施形態>
図4は、第1の実施形態における論理回路のフローチャートである。
図5は、第1の実施形態におけるレジスタ及びメモリの内容を表す説明図である。
【0037】
(S01)指標レジスタx16に、ジャンプ先実効アドレスへの指標となる指標レジスタ番号10を格納する。
(S02)次に、参照レジスタx10~x13それぞれに、メモリ空間における異なるジャンプ先実効アドレスを格納する。
参照レジスタx10 <- 0x400032
参照レジスタx11 <- 0x40003E
参照レジスタx12 <- 0x400094
参照レジスタx13 <- 0x4000A0
S01及びS02は、前述した
図3のアセンブリコードと同じである。
【0038】
そして、プロセッサ1の論理回路は、指標レジスタを引用する1命令の条件ジャンプ命令branch_reg_indirect x16を、フェッチし且つデコードし、実行する。
(S1)指標レジスタx16の内容の指標レジスタ番号10に対応する参照レジスタx10から、ジャンプ先実効アドレス0x400032を取得する。
(S2)そして、プログラムカウンタとなるレジスタx0に、ジャンプ先実効アドレス0x400032を設定する。
これによって、前述した
図3のような短いアセンブラコードのサブルーチンによって、条件ジャンプを実現することができる。
【0039】
<第2の実施形態>
図6は、第2の実施形態における論理回路のフローチャートである。
図7は、第2の実施形態におけるレジスタ及びメモリの内容を表す説明図である。
【0040】
(S01)指標レジスタx16に、ジャンプ先実効アドレスへの指標となる指標レジスタ番号11を格納する。
(S02)次に、参照レジスタx10~x13それぞれに、プログラムカウンタから、メモリ空間における異なるジャンプ先実効アドレスまでのアドレスオフセットを格納する。
参照レジスタx10 <- 0x0032
参照レジスタx11 <- 0x0036
参照レジスタx12 <- 0x0084
参照レジスタx13 <- 0x0088
【0041】
そして、プロセッサ1の論理回路は、指標レジスタを引用する1命令の条件ジャンプ命令branch_reg_indirect x16を、フェッチし且つデコードし、実行する。
(S1)指標レジスタx16の内容の指標レジスタ番号11に対応する参照レジスタx11から、アドレスオフセット0x0036を取得する。
(S2)プログラムカウンタとなるレジスタx0に、プログラムカウンタ0x400008から当該アドレスオフセット0x0036を加算したジャンプ先実効アドレス0x40003Eを設定する。
これによって、短いアセンブラコードのサブルーチンによって、条件ジャンプを実現することができる。
【0042】
<第3の実施形態>
図8は、第3の実施形態における論理回路のフローチャートである。
図9は、第3の実施形態におけるレジスタ及びメモリの内容を表す説明図である。
【0043】
(S00)任意のベースレジスタx20に、メモリ空間におけるベースアドレス0x400000を格納する。
(S01)次に、指標レジスタx16に、ジャンプ先実効アドレスへの指標となる指標レジスタ番号12を格納する。
(S02)そして、参照レジスタx10~x13それぞれに、ベースアドレス0x400000からジャンプ先実効アドレスまでのアドレスオフセットを格納する。
参照レジスタx10 <- 0x0032
参照レジスタx11 <- 0x003E
参照レジスタx12 <- 0x0094
参照レジスタx13 <- 0x00A0
【0044】
そして、プロセッサ1の論理回路は、指標レジスタx16及びベースレジスタx20を引用する1命令の条件ジャンプ命令branch_reg_indirect x16を、フェッチし且つデコードし、実行する。
(S1)指標レジスタx16の内容の指標レジスタ番号12に対応する参照レジスタx12から、アドレスオフセット0x0094を取得する。
(S2)プログラムカウンタとなるレジスタx0に、ベースレジスタx20のベースアドレス0x400000からアドレスオフセット0x0094を加算したジャンプ先実効アドレス0x400094を設定する。
これによって、短いアセンブラコードのサブルーチンによって、条件ジャンプを実現することができる。
【0045】
尚、本開示のプロセッサ1の論理回路は、ハードウェア記述言語のソースコードによって記述されている。そのソースコードをコンパイルした後、複数のライブラリと「リンク」することによって、実行形式に変換される。勿論、ハードウェア記述言語で記述されることに限られず、布線論理によって実現することもできる。
【0046】
本開示によれば、特にJava(登録商標)仮想マシン(VM:Virtual Machine)のインタプリタやLispマシン、Prologのコンパイル済み機械語コードなどの高速化に適する。即ち、Java仮想マシンの制御情報から、対応する処理ルーチンを高速にディスパッチすることができる。
インタプリタ方式では、機械語命令を逐次処理するために、負荷が大きく、高速処理が困難となる。Java仮想マシン・インタープリタやLispは、データ・オブジェクトに付加されたタグ情報を参照して、機械語ルーチンをディスパッチすることがほとんどである。そのタグ・ディスパッチ部分の機械語命令を、例えばRISCプロセッサの制御情報として直接生成することができる。このような制御情報を、テーブルとなる参照レジスタ群に直接的に記述しておくことによって、条件ジャンプ(又はサブルーチン)の際に記述される分岐コード部分を、1つの条件ジャンプ命令で実現することによって、高速化を図ることができる。
【0047】
以上、詳細に説明したように、本開示のプロセッサ、プログラム及び方法によれば、指標レジスタを引用する1命令の条件ジャンプ命令の実行機能をプロセッサに搭載することによって、条件ジャンプ命令におけるアセンブリコードを削減することができる。
【0048】
前述した本開示の種々の実施形態について、本開示の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本開示は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【0049】
1 プロセッサ
2 メインメモリ
【手続補正書】
【提出日】2023-11-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式の下で、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサであって、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレス、又は所定の基準から互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、指標レジスタを引用する1命令である条件ジャンプ命令をフェッチし、デコードした際に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレス又はアドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、取得されたジャンプ先実効アドレス、又は取得されたアドレスオフセットから算出されたジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていることを特徴とするプロセッサ。
【請求項2】
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレスを格納した後、指標レジスタを引用する1命令である条件ジャンプ命令をフェッチし、デコードした際に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、当該ジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていることを特徴とする請求項1に記載のプロセッサ。
【請求項3】
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、指標レジスタを引用する1命令である条件ジャンプ命令をフェッチし、デコードした際に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、プログラムカウンタに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていること特徴とする請求項1に記載のプロセッサ。
【請求項4】
ベースレジスタに、メモリ空間におけるベースアドレスを格納し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、ベースアドレスから、互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、指標レジスタ及びベースレジスタを引用する1命令である条件ジャンプ命令をフェッチし、デコードした際に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、ベースレジスタのベースアドレスに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていることを特徴とする請求項1に記載のプロセッサ。
【請求項5】
論路回路は、ハードウェア記述言語のソースコード又は布線論理によって構成されていることを特徴とする請求項1から4のいずれか1項に記載のプロセッサ。
【請求項6】
プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式の下で、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサを機能させるプログラムであって、
当該プログラムは、
プロセッサに対し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納させると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレス、又は所定の基準から互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納させた後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、取得されたジャンプ先実効アドレス、又は取得されたアドレスオフセットから算出されたジャンプ先実効アドレスを設定する第2のステップと
をプロセッサに実行させることを特徴とするプログラム。
【請求項7】
当該プログラムは、
プロセッサに対し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納させると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレスを格納させた後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、当該ジャンプ先実効アドレスを設定する第2のステップと
をプロセッサに実行させることを特徴とする請求項6に記載のプログラム。
【請求項8】
当該プログラムは、
プロセッサに対し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納させると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納させた後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、プログラムカウンタに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
をプロセッサに実行させることを特徴とする請求項6に記載のプログラム。
【請求項9】
当該プログラムは、
プロセッサに対し、ベースレジスタに、メモリ空間におけるベースアドレスを格納させ、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納させると共に、参照レジスタそれぞれに、ベースアドレスから、互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納させた後に、指標レジスタ及びベースレジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、ベースレジスタのベースアドレスに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
をプロセッサに実行させることを特徴とする請求項6に記載のプログラム。
【請求項10】
プログラムカウンタを含む複数のレジスタを用いた論理回路を含むプロセッサによって実施される、間接アドレス方式の下でのアセンブリコードの条件ジャンプ命令の実行方法であって、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレス、又は所定の基準から互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、取得されたジャンプ先実効アドレス、又は取得されたアドレスオフセットから算出されたジャンプ先実効アドレスを設定する第2のステップと
を実行することを含む、条件ジャンプ命令実行方法。
【請求項11】
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレスを格納した後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、当該ジャンプ先実効アドレスを設定する第2のステップと
を実行することを含む、請求項10に記載の条件ジャンプ命令実行方法。
【請求項12】
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、プログラムカウンタに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
を実行することを含む、請求項10に記載の条件ジャンプ命令実行方法。
【請求項13】
ベースレジスタに、メモリ空間におけるベースアドレスを格納し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、ベースアドレスから、互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後に、指標レジスタ及びベースレジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、ベースレジスタのベースアドレスに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
を実行することを含む、請求項10に記載の条件ジャンプ命令実行方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0018
【補正方法】変更
【補正の内容】
【0018】
本開示によれば、プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式の下で、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサであって、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレス、又は所定の基準から互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、指標レジスタを引用する1命令である条件ジャンプ命令をフェッチし、デコードした際に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレス又はアドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、取得されたジャンプ先実効アドレス、又は取得されたアドレスオフセットから算出されたジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されているプロセッサが提供される。
この本開示によるプロセッサの一実施形態として、本プロセッサは、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレスを格納した後、指標レジスタを引用する1命令である条件ジャンプ命令をフェッチし、デコードした際に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、当該ジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていることも好ましい。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0019
【補正方法】変更
【補正の内容】
【0019】
また、本開示によるプロセッサの他の実施形態として、本プロセッサは、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、指標レジスタを引用する1命令である条件ジャンプ命令をフェッチし、デコードした際に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、プログラムカウンタに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていることも好ましい。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正の内容】
【0020】
さらに、本開示によるプロセッサの他の実施形態として、本プロセッサは、
ベースレジスタに、メモリ空間におけるベースアドレスを格納し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、ベースアドレスから、互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後、指標レジスタ及びベースレジスタを引用する1命令である条件ジャンプ命令をフェッチし、デコードした際に、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、ベースレジスタのベースアドレスに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
を実行するように論理構成されていることも好ましい。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0021
【補正方法】変更
【補正の内容】
【0021】
また、本開示によるプロセッサの他の実施形態として、論路回路は、ハードウェア記述言語のソースコード又は布線論理によって構成されていることも好ましい。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0022
【補正方法】変更
【補正の内容】
【0022】
本開示によれば、プログラムカウンタを含む複数のレジスタをテーブルとした間接アドレス方式の下で、アセンブリコードの条件ジャンプ命令を実行する論理回路を含むプロセッサを機能させるプログラムであって、
当該プログラムは、
プロセッサに対し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納させると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレス、又は所定の基準から互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納させた後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、取得されたジャンプ先実効アドレス、又は取得されたアドレスオフセットから算出されたジャンプ先実効アドレスを設定する第2のステップと
をプロセッサに実行させることを特徴とする記録媒体が提供される。
この本開示による記録媒体の一実施形態として、当該プログラムは、
プロセッサに対し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納させると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレスを格納させた後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、当該ジャンプ先実効アドレスを設定する第2のステップと
をプロセッサに実行させることも好ましい。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0023
【補正方法】変更
【補正の内容】
【0023】
また、本開示による記録媒体の他の実施形態として、当該プログラムは、
プロセッサに対し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納させると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納させた後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、プログラムカウンタに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
をプロセッサに実行させることも好ましい。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0024
【補正方法】変更
【補正の内容】
【0024】
さらに、本開示による記録媒体の他の実施形態として、当該プログラムは、
プロセッサに対し、ベースレジスタに、メモリ空間におけるベースアドレスを格納させ、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納させると共に、参照レジスタそれぞれに、ベースアドレスから、互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納させた後に、指標レジスタ及びベースレジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、ベースレジスタのベースアドレスに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
をプロセッサに実行させることも好ましい。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0025
【補正方法】変更
【補正の内容】
【0025】
本開示によれば、プログラムカウンタを含む複数のレジスタを用いた論理回路を含むプロセッサによって実施される、間接アドレス方式の下でのアセンブリコードの条件ジャンプ命令の実行方法であって、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレス、又は所定の基準から互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、取得されたジャンプ先実効アドレス、又は取得されたアドレスオフセットから算出されたジャンプ先実効アドレスを設定する第2のステップと
を実行することを含む、条件ジャンプ命令実行方法が提供される。
この本開示による条件ジャンプ命令実行方法の一実施形態として、本条件ジャンプ命令実行方法は、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、メモリ空間における互いに異なるジャンプ先実効アドレスを格納した後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、ジャンプ先実効アドレスを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、当該ジャンプ先実効アドレスを設定する第2のステップと
を実行することを含むことも好ましい。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正の内容】
【0026】
また、本開示による条件ジャンプ命令実行方法の他の実施形態として、本条件ジャンプ命令実行方法は、
指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、プログラムカウンタから、メモリ空間における互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後に、指標レジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、プログラムカウンタに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
を実行することを含むことも好ましい。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0027
【補正方法】変更
【補正の内容】
【0027】
さらに、本開示による条件ジャンプ命令実行方法の他の実施形態として、本条件ジャンプ命令実行方法は、
ベースレジスタに、メモリ空間におけるベースアドレスを格納し、指標レジスタに、ジャンプ先実効アドレスへの指標となる指標レジスタ番号を格納すると共に、参照レジスタそれぞれに、ベースアドレスから、互いに異なるジャンプ先実効アドレスまでのアドレスオフセットを格納した後に、指標レジスタ及びベースレジスタを引用する1命令である条件ジャンプ命令の実行として、
指標レジスタの内容の指標レジスタ番号に対応する参照レジスタから、アドレスオフセットを取得する第1のステップと、
プログラムカウンタとなるレジスタに対し、ベースレジスタのベースアドレスに当該アドレスオフセットを加算した結果であるジャンプ先実効アドレスを設定する第2のステップと
を実行することを含むことも好ましい。