JP2009093513A - 命令ビット長削減方法 - Google Patents

命令ビット長削減方法 Download PDF

Info

Publication number
JP2009093513A
JP2009093513A JP2007265151A JP2007265151A JP2009093513A JP 2009093513 A JP2009093513 A JP 2009093513A JP 2007265151 A JP2007265151 A JP 2007265151A JP 2007265151 A JP2007265151 A JP 2007265151A JP 2009093513 A JP2009093513 A JP 2009093513A
Authority
JP
Japan
Prior art keywords
instruction
bits
bit
code
program
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.)
Granted
Application number
JP2007265151A
Other languages
English (en)
Other versions
JP4921310B2 (ja
Inventor
Shingo Kazuma
晋吾 数馬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lapis Semiconductor Co Ltd
Original Assignee
Oki Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oki Semiconductor Co Ltd filed Critical Oki Semiconductor Co Ltd
Priority to JP2007265151A priority Critical patent/JP4921310B2/ja
Publication of JP2009093513A publication Critical patent/JP2009093513A/ja
Application granted granted Critical
Publication of JP4921310B2 publication Critical patent/JP4921310B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】プログラム格納用のメモリサイズを小さくする。
【解決手段】ソースプログラムをオブジェクトプログラムに変換する際に、同一のレジスタを続けて使用する命令コードが複数ある場合に、これらの命令コードが連続するように変換する。また、変換したmビットの命令コードの内で有効ビット数がnビット以下の命令コードに対しては、下位のビット位置に無効ビットを配置すると共にレジスタを指定するオペランドを上位の一定のビット位置に配置する。一方、命令コードの有効ビット数がnビットを越える命令コードに対しては、レジスタを指定するオペランドを削除する。この結果、オブジェクトプログラムを構成する各命令コードの有効ビット数はnビット以下になる。従って、上位nビットをプログラム格納用のメモリに書き込むことで、プログラム格納用のメモリサイズを小さくすることができるという効果がある。
【選択図】図1

Description

本発明は、メモリに格納する中央装置装置(以下、「CPU」という)の命令コードのビット長を削減する方法に関するものである。
携帯機器に使用される大規模集積回路(以下、「LSI」という)では、コストや消費電力を低減するために、命令セットを単純化して内部構造を簡素化することができる縮小命令セットCPU(以下、「RISC」という)が使用されることが多い。また、最近のシステムではソフトウエアの規模が増大しており、LSIにおいてソフトウエアを格納するためのメモリの面積が、CPU自体の面積よりも大きい場合が多い。このような状況下では、ソフトウエアを格納するメモリのサイズを小さくすることがコスト削減のための重要課題となる。
図2は従来のRISCにおける縮小命令セットの一例を示す説明図であり、図3は図2中の命令・オペランドの説明図である。
この縮小命令セットは、命令ビット長とデータビット長を何れも32ビットとし、スタックポインタやプログラムカウンタを含めて16個のレジスタを有するRISCに対応するものである。
図4は、図2の縮小命令セットに対する命令コードの割付例を示す図であり、図中の空白部分は未使用ビットである。この図に示すように、縮小命令セットの内の基本命令セットでは、命令ビット長が32ビット未満である。しかし、携帯機器でも音声や動画の再生を扱うことが多くなってきており、単純な基本命令セットでは所望の性能が出せないため、アプリケーションプログラムに応じて比較と分岐を同時に実行する比較分岐命令のような、拡張命令を実装することが多い。このような拡張命令は、使用するオペランドが多かったり、分岐先を示す即値の相対アドレスや演算に使用する即値のビット長が大きくなったりするため、命令ビット長が最大の32ビットとなっている。
RISCでは、1命令1ワード(例えば、32ビット)を原則としているため、命令コードの中に未使用のビットが多数含まれていても、1ワードのサイズを最大のビット数を有する命令コードに合わせる必要があり、プログラムを格納するメモリのサイズが大きくなる。このため、縮小命令セットによるCPUの簡素化と、プログラムの大規模化によるメモリサイズの増加という、相反する状況が生じてきている。
プログラム格納用のメモリサイズを削減する方法としては、下記特許文献1に記載されるように命令コード変換装置を用いてプログラムコードを圧縮する手法や、可変長命令を用いる手法が従来から提案されている。
例えば、可変長命令を用いる手法では、命令セットとして、使用するオペランドが少なくてビット長が短い命令と、使用するオペランドが大きいか大きな即値を扱うビット長の長い命令を混在させる。図2の縮小命令セットを例にした場合、レジスタ比較命令やレジスタ分岐命令を16ビット命令、その他の命令を32ビット命令として定義する。これにより、プログラムコードにおける未使用のビットが削減され、プログラム格納用のメモリサイズを小さくすることが出来る。
特開2001−222426号公報
しかしながら、可変長命令を用いる手法では、命令コードを任意のビット長で定義しようとすると、アドレス計算のビット長が増加することに加えて、分岐時などの命令の頭出しの仕組みが複雑になるため、命令の境界をバイト(8ビット)単位に区切ることが普通である。このため、例えば17ビットで表現できる命令であっても24ビットで構成しなければならず、命令コードの割付によっては最適化が難しいという課題があった。
本発明は、命令間の依存関係を利用することにより、命令コード変換装置等のリソースの追加を必要とせず、かつ、命令コードのビット長をバイト単位に区切る必要もなく、プログラム格納用のメモリサイズを小さくすることを目的としている。
本発明は、mビットの命令コードをnビット(但し、m、nは、m>nの関係を有する整数)に変換してメモリに書き込むことによってプログラム格納用のメモリの容量を削減する命令ビット長削減方法において、ソースプログラムをmビットの命令コードで構成されるオブジェクトプログラムに変換する際に、同一のレジスタを続けて使用する命令コードが複数ある場合に、これらの命令コードが連続するように変換する処理と、前記mビットの命令コードの内で有効ビット数がnビット以下の命令コードに対して、下位のビット位置に無効ビットを配置すると共に、前記レジスタを指定するオペランドを上位nビット中の一定のビット位置に配置する処理と、前記mビットの命令コードの内で有効ビット数がnビットを越える命令コードに対して、前記レジスタを指定するオペランドを削除する処理と、前記オブジェクトプログラムを構成する各命令コードの下位のm−nビットを削除し、上位nビットを前記プログラム格納用のメモリに書き込む処理を、順次行うことを特徴としている。
本発明では、ソースプログラムをオブジェクトプログラムに変換する際に、同一のレジスタを続けて使用する命令コードが複数ある場合に、これらの命令コードが連続するように変換する。また、変換したmビットの命令コードの内で有効ビット数がnビット以下の命令コードに対しては、下位のビット位置に無効ビットを配置すると共にレジスタを指定するオペランドを上位の一定のビット位置に配置する。一方、命令コードの有効ビット数がnビットを越える命令コードに対しては、レジスタを指定するオペランドを削除する。この結果、オブジェクトプログラムを構成する各命令コードの有効ビット数はnビット以下になる。従って、上位nビットをプログラム格納用のメモリに書き込むことで、プログラム格納用のメモリサイズを小さくすることができるという効果がある。
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
図1は、本発明の実施例1を示す命令ビット長の削減方法の説明図である。以下、この図1と、関連する図5〜図6を随時参照しつつ、命令ビット長の削減方法の具体例を説明する。
(ステップ1) 命令コード割付処理
この命令ビット長の削減方法では、先ず、高級言語等で記述されたソースプログラムを、コンパイラ等を使用して、RISCで実行可能なオブジェクトコードに変換する。このオブジェクトコードは、1コード当たり32ビットの圧縮されていない命令コードである。
図5は、本発明の実施例1の命令セットの説明図であり、図6は、図5の命令セットに対する命令コードの割付例を示す図である。
図5に示すように、この命令セットはRISCで実行可能な1コード当たり32ビットの命令コードで、図2の縮小命令セットと同一の命令を備えているが、コード内に格納できる即値(imm14,imm16等)のビット数が若干制限されている。即ち、命令コードの有効ビット数が28ビットで収まるように、即値のビット数が最大2ビット程度削減されている。
また、命令コードの割付は、図6に示すように、図4とは異なっている。即ち、この命令コードの割付では、32ビットの命令コードの内の下位のビット0〜3が未使用状態になるように、有効な命令コードを上位ビット側に詰めた状態で配置する。また、有効な命令コードの内で一定のビット位置(例えば、ビット16〜19)には、条件分岐等の拡張命令で利用可能なディスティネーションレジスタが位置するように配置する。
更に、ldih命令で未使用になっている2ビットには、次のori命令の即値の上位2ビットを書き込む。
一方、比較分岐命令のような拡張命令で、32ビットの命令コードをすべて有効ビットとして使用しているものは、ディスティネーションレジスタを指定するためのソースレジスタ番号(src1)を下位ビット(即ちビット0〜3)に配置する。
(ステップ2) 命令コード格納処理
ステップ1で生成された1コード当たり32ビットの圧縮されていない命令コードを、1ワード当たり28ビットで構成されるプログラムメモリに格納する。このとき、32ビットの命令コードの内、下位の4ビット(ビット0〜3)を無視し、上位の28ビット(ビット4〜31)だけをプログラムメモリに格納する。
(ステップ3) 命令コードの読み出し処理
プログラムメモリに格納された命令コード(28ビット)は、CPUから与えられるアドレスADRに従って読み出され、第1の命令読出用レジスタREG1に格納される。このとき、命令読出用レジスタREG1に格納されていた1つ前の命令コードは、第2の命令読出用レジスタREG2に移送される。なお、命令読出用レジスタREG1,REG2は、何れも28ビット構成となっている。
命令読出用レジスタREG1に格納された28ビットは、CPUに対する命令コードのビット4〜31の命令ビットとして与えられ、命令読出用レジスタREG2に格納された28ビットの内のビット18〜21とビット16〜19は、それぞれセレクタSELの第1入力と第2入力に与えられる。
更に、命令読出用レジスタREG1に格納された28ビットの内の演算コード部分(ビット26〜31)はデコーダDECに与えられ、この命令コードがldih命令であるか否かが判定される。もしもldih命令であれば、デコーダDECからセレクタSELに第1入力を選択させる制御信号が出力され、ldih命令でなければ第2入力を選択させる制御信号が出力される。セレクタSELで選択された命令読出用レジスタREG2のビット18〜21またはビット16〜19は、CPUに対する命令コードのビット0〜3の命令ビットとして与えられる。
CPUは、命令読出用レジスタREG1から与えられる28ビットとセレクタSELから与えられる4ビット、合計32ビットの命令コードを解読して処理を行う。
図7は、図5の命令コードを使用したプログラム例を示す図であり、図8は、図7のプログラムの動作説明図である。これらの図7及び図8を参照して、具体的な動作例を説明する。
先ず、最初の2つの命令で、初期化対象となるメモリの32ビットの開始アドレスをCPU内のレジスタR1にセットする。ここで、1番目のldih命令では、上位16ビットをセットするが、使用していない2ビットが次のori命令のために、命令読出用レジスタREG2に保持される。2番目のori命令では、14ビットの即値の上位に、1番目のldih命令で命令読出用レジスタREG2に保持された2ビットが追加され、レジスタR1に書き込まれる。このori命令のディスティネーションレジスタの番号は、命令読出用レジスタREG2に保持される。
3番目のldil命令では、CPU内のレジスタR2に初期化するメモリのサイズをセットする。この命令は、1つ前の算術演算命令との依存関係がないので、命令読出用レジスタREG2に保持していたレジスタ番号は使用されない。
4番目のadd命令では、レジスタR1,R2の内容を加算した結果をCPU内のレジスタR3にセットし、初期化終了アドレスとする。このori命令のディスティネーションレジスタの番号は、命令読出用レジスタREG2に保持される。
5番目のldil命令では、CPU内のレジスタR4に初期化する値である0x00000000をセットする。この命令は、1つ前の算術演算命令との依存関係がないので、命令読出用レジスタREG2に保持していたレジスタ番号は使用されない。
6番目のsubi命令では、レジスタR3の内容から4を引いて、初期化するメモリのアドレスの1つを選択する。このsubi命令のディスティネーションレジスタの番号は、命令読出用レジスタREG2に保持される。
7番目のcmpbigt命令では、1つ前の6番目の命令実行時に保持していたレジスタ番号で選択されるレジスタR3の内容とレジスタR1の内容を比較して、レジスタR3の値が大きければ、プログラムカウンタの値に−4を加算して分岐する。これにより、プログラムカウンタの値は6番目の命令を指定することになり、6番目と7番目の命令が、繰り返えして実行される。そして、レジスタR3の内容がレジスタR1の内容以下になった時点で、8番目の命令に進む。
8番目のswi命令では、レジスタR3の値で指定されるメモリのアドレスに、レジスタR4の内容を書き込む。
以上のように、この実施例1の命令ビット長の削減方法では、命令間の依存関係を利用して、前に使用したレジスタ番号を命令読出用レジスタREG2に保持しておき、次の命令で同じレジスタを参照するときに、保持していたレジスタ番号を使用するようにしている。これにより、命令コードが32ビットの命令セットであっても、1コード当たりの実質のビット数を例えば28ビットに削減することが可能になり、プログラム格納用のメモリサイズを小さくすることができるという利点がある。
実施例2の命令ビット長の削減方法は、実際のプログラムで使用される命令コードのビット数の平均値が32ビットよりもかなり少ないことに鑑み、未使用ビットにそれ以降で実行される命令コードの一部を割り当てることによって、プログラムメモリに格納する命令コードのビット数を削減するものである。
図9は、本発明の実施例2を示す命令ビット長の削減方法の説明図であり、図10は、この実施例2の命令コードの割付例を示す図である。
本実施例では、従来と同様の図2の縮小命令セットを使用するが、命令コードの割付は、図10に示すように、中間の未使用ビットをなくすように左詰めしている。これにより、32ビットの命令コードの内の右側に未使用領域がまとめられた構成となっている。
本実施例では、命令コードとして実際に使用される有効ビット数の平均値を想定して閾値とし、プログラムメモリに格納する1命令コード当たりのビット数をこの閾値とする。そして、有効ビット数が閾値を越える命令コードの超過ビットを、それ以前に実行される命令コードの未使用領域に格納しておき、実行時には、未使用領域に格納されている命令コードの一部をバッファに保持しておき、後続の命令コードに追加して使用する。
次に、図9に従って、本実施例の命令ビット長の削減処理を説明する。
処理に先立ち、各命令コードにおける有効なビット数を格納した命令別コード長テーブルCODと、プログラム中の分岐命令による分岐先を登録するための分岐先アドレス表BADと、命令コードの不足ビットを一時的に保存するためのバッファBUFを準備する。なお、バッファBUFの大きさは、圧縮しようとする命令コードのサイズ(閾値)から、nop命令の有効ビット数を差し引いたものであれば良い。nop命令の有効ビットは5ビットであるので、閾値を例えば23ビットとすると、バッファBUFの最小サイズは18ビットとなる。
処理の開始で、先ず、コンパイラ等を使用して、ソースプログラムをRISCで実行可能なオブジェクトコードに変換する(ステップS11)。このオブジェクトコードは、図10に示す左詰めされた圧縮されていない32ビットの命令コードで構成されている。
次に、オブジェクトコードを上から下に、即ち実行時の読み出し順にサーチして分岐命令を捜し、各分岐命令の分岐先のアドレスを分岐先アドレス表BADに登録する(ステップS12)。
分岐命令のサーチが完了すると、命令コードの調査を行う。このときは、オブジェクトコードを下から上に、即ち実行時とは逆の順番に読み出す(ステップS13)。この処理は、すべての命令コードの調査が完了するまで繰り返して行われ、すべての命令コードの調査が完了した時点でステップS23へ進むことになる(ステップS14)。
読み出した命令コードのアドレスが分岐先アドレス表BADに登録されているか否かをチェックし(ステップS15)、登録されたアドレスであれば、バッファBUFにデータが存在するか否かを調査し、もしもバッファBUFにデータが存在すれば、nop命令を追加して、バッファBUF内のデータをその追加したnop命令の未使用領域に移す(ステップS16)。
読み出した命令コードのアドレスが分岐先アドレス表BADに登録されていない場合、命令別コード長テーブルCODを参照して、その命令コードのコード長が閾値よりも長いか否かを判定する(ステップS17)。命令コードのコード長が閾値よりも長い場合は、命令コードの超過ビットをバッファBUFへ右シフトして移す(ステップS18)。このとき、バッファBUFが満杯であれば、nop命令を追加して、バッファ内のデータをその追加したnop命令の未使用領域に移す(ステップS20)。
一方、命令コードのコード長が閾値よりも短い場合は(ステップS21)、バッファBUFから左シフトしてデータを取り出し、その命令コードの未使用領域に移す(ステップS22)。なお、命令コードのコード長が閾値と同じであれば、ステップS16,S18,S20,S22等のバッファ処理は行わず、ステップS13に戻って次の命令コードの読み出しを行う。
オブジェクトコードのすべての命令コードの調査が完了した時点で、ステップS23に進み、分岐命令の分岐先アドレスの変更を行う。これは、ステップS16,S20でnop命令を追加したことで、分岐先のアドレスが変化したことに対応するための処理である。
図11は、図10の命令コードを使用したプログラム例を示す図である。また、図12(a),(b)は、実施例2の命令ビット長の圧縮と復元の説明図である。
図11は、図9のステップS11で生成されたオブジェクトコードの一例で、図12(a)は、この図11のプログラムの命令ビット長の圧縮例を示している。以下、これらの図11及び図12(a)に従って、命令ビット長の圧縮処理の具体例を説明する。
先ず、図12(a)の最後のsw命令に着目し、このsw命令のコード長が閾値より長いか短いかを判定する。この場合、閾値が23ビットに設定されており、コード長は24ビットであるので、1ビットだけ長い。従って、超過ビット(図中にaと記したビット)を、バッファBUFへ右シフトして移す。
次に、sw命令の1つ上のcmpb命令に着目する。このcmpb命令のコード長は32ビットであるので、超過ビットは9ビットである。従って、この超過ビット(図中にbと記したビット)を、バッファBUFへ右シフトして移す。これにより、バッファBUFには、cmpbigt命令とsw命令の超過ビット(b,a)が左詰めに格納される。
更に、cmpbigt命令の1つ上のsubi命令に着目する。このsubi命令のコード長は30ビットであるので、超過ビットは7ビットである。従って、この超過ビット(図中にcと記したビット)を、バッファBUFへ右シフトして移す。これにより、バッファBUFには、subi命令と、cmpbigt命令と、sw命令の超過ビット(c,b,a)が左詰めに格納される。
更に、subi命令の1つ上のldil命令に着目する。このldil命令のコード長は26ビットであるので、超過ビットは3ビットである。一方、バッファBUFには既に17ビットが格納されており、3ビットを追加して格納する余地はない。このため、subi命令の1つ上にnop命令を追加し、このnop命令の未使用領域にバッファBUF内のデータをすべて移す。これにより、バッファBUFは空になる。その後、ldil命令に対する処理を行う。
このような処理を、図11のオブジェクトコードの最後の命令(sw命令)から順に最初の命令(ldi命令)まで行うことにより、図12(a)に示すように、要所要所にnop命令が追加されると共に、その未使用領域に後の命令コードの一部が格納されたプログラムが生成される。
その後、nop命令の追加によって分岐先が変更される分岐命令の分岐先アドレスを変更する。そして、32ビットの命令コードの内の下位のビット0〜8を削除し、上位のビット9〜31をプログラムメモリに格納する。これにより、プログラムメモリの1ワード当たりのビット数を23ビットに圧縮することができる。
このように圧縮されたプログラムが格納されたプログラムメモリを読み出して実行する場合は、圧縮時と同様の命令別コード長テーブルCODとバッファBUFを使用し、圧縮時とは逆の処理によって元の32ビットの命令コードを復元することができる。即ち、閾値よりもビット長の短い命令コードで未使用ビットがある場合は、その未使用ビットを右シフトしてバッファBUFへ書き込み、閾値よりもビット長の長い命令コードの場合は、バッファBUFを左シフトして読み出すことにより、不足ビットを取り出すようにする。
図12(b)は、図12(a)のように圧縮された命令ビット長を復元する様子を示したものである。
先ず、最初のnop命令をプログラムメモリから読み出し、未使用ビット(18ビット)を右シフトしてバッファBUFに書き込む。これにより、バッファBUFには、の超過ビット(図中にhと記したビット)、3番目のor命令の超過ビット(図中にgと記したビット)、4番目のldi命令の超過ビット(図中にfと記したビット)、5番目のadd命令の超過ビット(図中にeと記したビット)、及び6番目のldi命令の超過ビット(図中にdと記したビット)が、左詰めで格納される。
次に、2番目のldi命令をプログラムメモリから読み出し、不足する3ビットをバッファBUFを左シフトして読み出して追加する。これにより、ldi命令の有効ビット数26ビットが得られる。
更に、3番目のor命令、4番目のldi命令、5番目のadd命令でも同様の処理が行われ、それぞれ元の命令コードが復元されてCPUに与えられる。
以上のように、この実施例2の命令ビット長の削減方法では、命令コードの内の未使用ビットに後の命令コードの一部を格納することにより、命令ビット長を平均化して全体としてビット長を短くしている。従って、プログラム格納用のメモリサイズを小さくすることができるという利点がある。
なお、本発明は、上記実施例に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
(a) 命令セットは、図2や図5に例示したものに限定されない。
(b) 命令コードの長さや割付は、図6や図10に例示したものに限定されない。即ち、削減前の命令コードは、32ビットに限らず任意のmビットで良い。また、削減後の命令コードは、28ビットや23ビットに限らず任意のnビットで良い。
(c) 実施例2におけるプログラムメモリに格納するビット数(閾値)や、バッファのサイズは、例示したものに限定されない。
本発明の実施例1を示す命令ビット長の削減方法の説明図である。 従来のRISCにおける縮小命令セットの一例を示す説明図である。 図2中の命令・オペランドの説明図である。 図2の縮小命令セットに対する命令コードの割付例を示す図である。 本発明の実施例1の命令セットの説明図である。 図5の命令セットに対する命令コードの割付例を示す図である。 図5の命令コードを使用したプログラム例を示す図である。 図7のプログラムの動作説明図である。 本発明の実施例2を示す命令ビット長の削減方法の説明図である。 実施例2の命令コードの割付例を示す図である。 図10の命令コードを使用したプログラム例を示す図である。 実施例2の命令ビット長の圧縮と復元の説明図である。
符号の説明
BAD 分岐先アドレス表
BUF バッファ
COD 命令別コード長テーブル
DEC デコーダ
MEM プログラムメモリ
REG1,REG2 命令読出用レジスタ
SEL セレクタ

Claims (2)

  1. mビットの命令コードをnビット(但し、m、nは、m>nの関係を有する整数)に変換してメモリに書き込むことによってプログラム格納用のメモリの容量を削減する命令ビット長削減方法であって、
    ソースプログラムをmビットの命令コードで構成されるオブジェクトプログラムに変換する際に、同一のレジスタを続けて使用する命令コードが複数ある場合に、これらの命令コードが連続するように変換する処理と、
    前記mビットの命令コードの内で有効ビット数がnビット以下の命令コードに対して、下位のビット位置に無効ビットを配置すると共に、前記レジスタを指定するオペランドを上位nビット中の一定のビット位置に配置する処理と、
    前記mビットの命令コードの内で有効ビット数がnビットを越える命令コードに対して、前記レジスタを指定するオペランドを削除する処理と、
    前記オブジェクトプログラムを構成する各命令コードの下位のm−nビットを削除し、上位nビットを前記プログラム格納用のメモリに書き込む処理とを、
    順次行うことを特徴とする命令ビット長削減方法。
  2. mビットの命令コードをnビット(但し、m、nは、m>nの関係を有する整数)に変換してメモリに書き込むことによってプログラム格納用のメモリの容量を削減する命令ビット長削減方法であって、
    ソースプログラムをmビットの命令コードで構成されるオブジェクトプログラムに変換する際に、該mビットの命令コードの内の有効ビットを上位のビット位置に配置し、無効ビットを下位のビット位置に配置する処理と、
    前記オブジェクトプログラムを構成する各命令コードの有効ビット数を調べ、その有効ビット数がnビットを越えているときには、その超過した有効ビットをその命令コードの前に実行される命令コードの上位nビットの内で未使用のビット位置に書き込む処理と、
    前記オブジェクトプログラムを構成する各命令コードの下位のm−nビットを削除し、上位nビットを前記プログラム格納用のメモリに書き込む処理とを、
    順次行うことを特徴とする命令ビット長削減方法。
JP2007265151A 2007-10-11 2007-10-11 命令ビット長削減方法 Expired - Fee Related JP4921310B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007265151A JP4921310B2 (ja) 2007-10-11 2007-10-11 命令ビット長削減方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007265151A JP4921310B2 (ja) 2007-10-11 2007-10-11 命令ビット長削減方法

Publications (2)

Publication Number Publication Date
JP2009093513A true JP2009093513A (ja) 2009-04-30
JP4921310B2 JP4921310B2 (ja) 2012-04-25

Family

ID=40665423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007265151A Expired - Fee Related JP4921310B2 (ja) 2007-10-11 2007-10-11 命令ビット長削減方法

Country Status (1)

Country Link
JP (1) JP4921310B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013196061A (ja) * 2012-03-15 2013-09-30 Fujitsu Ltd データ作成装置、データ作成方法、およびデータ作成プログラム
JP2014036899A (ja) * 2013-11-27 2014-02-27 Daito Giken:Kk 遊技台
JP2014195639A (ja) * 2014-02-17 2014-10-16 株式会社大都技研 遊技台
JP2015128695A (ja) * 2015-04-14 2015-07-16 株式会社大都技研 遊技台
JP2016147083A (ja) * 2016-03-25 2016-08-18 株式会社大都技研 遊技台
CN110515632A (zh) * 2019-08-29 2019-11-29 合肥惠科金扬科技有限公司 产品序列码烧录的方法、装置及终端设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112754A (ja) * 1998-10-06 2000-04-21 Mitsubishi Electric Corp データ処理装置
JP2000207205A (ja) * 1999-01-14 2000-07-28 Sony Corp 演算装置
JP2001043082A (ja) * 1999-07-30 2001-02-16 Nec Corp 情報処理装置並びに命令コーディング方法及び命令デコーディング方法
JP2003015866A (ja) * 2001-07-02 2003-01-17 Toshiba Corp プロセッサ
JP2004355477A (ja) * 2003-05-30 2004-12-16 Renesas Technology Corp マイクロプロセッサ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000112754A (ja) * 1998-10-06 2000-04-21 Mitsubishi Electric Corp データ処理装置
JP2000207205A (ja) * 1999-01-14 2000-07-28 Sony Corp 演算装置
JP2001043082A (ja) * 1999-07-30 2001-02-16 Nec Corp 情報処理装置並びに命令コーディング方法及び命令デコーディング方法
JP2003015866A (ja) * 2001-07-02 2003-01-17 Toshiba Corp プロセッサ
JP2004355477A (ja) * 2003-05-30 2004-12-16 Renesas Technology Corp マイクロプロセッサ

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013196061A (ja) * 2012-03-15 2013-09-30 Fujitsu Ltd データ作成装置、データ作成方法、およびデータ作成プログラム
JP2014036899A (ja) * 2013-11-27 2014-02-27 Daito Giken:Kk 遊技台
JP2014195639A (ja) * 2014-02-17 2014-10-16 株式会社大都技研 遊技台
JP2015128695A (ja) * 2015-04-14 2015-07-16 株式会社大都技研 遊技台
JP2016147083A (ja) * 2016-03-25 2016-08-18 株式会社大都技研 遊技台
CN110515632A (zh) * 2019-08-29 2019-11-29 合肥惠科金扬科技有限公司 产品序列码烧录的方法、装置及终端设备
CN110515632B (zh) * 2019-08-29 2023-03-07 重庆惠科金扬科技有限公司 产品序列码烧录的方法、装置及终端设备

Also Published As

Publication number Publication date
JP4921310B2 (ja) 2012-04-25

Similar Documents

Publication Publication Date Title
KR102471606B1 (ko) 내장형 라운딩 규칙을 갖는 부동 소수점 명령어 포맷
US7473293B2 (en) Processor for executing instructions containing either single operation or packed plurality of operations dependent upon instruction status indicator
TWI617978B (zh) 用於向量索引載入和儲存之方法和設備
JP6761565B2 (ja) アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置
JP4921310B2 (ja) 命令ビット長削減方法
JP6498226B2 (ja) プロセッサおよび方法
CN115421686A (zh) 用于深度学习和其它算法的fp16-s7e8混合精度
CN117724766A (zh) 用于执行将矩阵变换为行交错格式的指令的系统和方法
JP6835436B2 (ja) マスクをマスク値のベクトルに拡張するための方法および装置
TWI482086B (zh) 用以於緊縮資料元件上執行差分編碼之系統、裝置及方法
US20120017067A1 (en) On-demand predicate registers
JP2018507453A (ja) 命令フローを最適化するチェックを実行するための装置および方法
JPH1049369A (ja) データ処理装置
JP2013214832A (ja) 圧縮及び伸長システム、圧縮装置、伸長装置、圧縮及び伸長方法、圧縮プログラム及び伸長プログラム
CN116097212A (zh) 用于16比特浮点矩阵点积指令的装置、方法和系统
CN110688153B (zh) 一种指令分支执行控制方法及相关设备、指令结构
TWI497411B (zh) 用於決定一值是否在一範圍內之指令的裝置及方法
JP2005244928A (ja) 可変長復号化装置および可変長復号化方法ならびに再生システム
WO2019046716A1 (en) CONTROLLED INSTRUMENT PROCESSING BY POINTER SIZE
KR101635856B1 (ko) 데이터 요소에 있는 비트들의 제로화를 위한 시스템, 장치, 및 방법
JP5610551B2 (ja) データプロセッサ
JP4479370B2 (ja) プロセッサ
JP3792633B2 (ja) マイクロコントローラ、及びマイクロコントローラ装置
US20060015704A1 (en) Operation apparatus and instruction code executing method
JP2006092158A (ja) デジタル信号処理回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090316

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111212

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: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120202

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150210

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees