JP2002073326A - プログラム実行装置及びプログラム実行方法 - Google Patents

プログラム実行装置及びプログラム実行方法

Info

Publication number
JP2002073326A
JP2002073326A JP2000268145A JP2000268145A JP2002073326A JP 2002073326 A JP2002073326 A JP 2002073326A JP 2000268145 A JP2000268145 A JP 2000268145A JP 2000268145 A JP2000268145 A JP 2000268145A JP 2002073326 A JP2002073326 A JP 2002073326A
Authority
JP
Japan
Prior art keywords
data
attribute
instruction
register
executed
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.)
Pending
Application number
JP2000268145A
Other languages
English (en)
Inventor
Hideo Hirono
英雄 廣野
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.)
Sanyo Electric Co Ltd
Original Assignee
Sanyo Electric 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 Sanyo Electric Co Ltd filed Critical Sanyo Electric Co Ltd
Priority to JP2000268145A priority Critical patent/JP2002073326A/ja
Publication of JP2002073326A publication Critical patent/JP2002073326A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 SIMD方式において、命令数の削減を図
る。 【解決手段】 レジスタ16にデータ値格納領域16b
のみならずそのデータの種類を示す属性格納領域16a
を設け、属性生成部14によりデータの属性を生成し、
属性格納領域16aに格納する。演算部18で命令を実
行する場合、命令実行制御部12からの命令に加え、レ
ジスタ16の属性格納領域16aに格納された属性に基
づきデータの種類に応じた命令を決定し、演算を実行す
る。これにより、データの種類ごとの命令が不要とな
り、演算種類分の命令だけで演算を実行できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はプログラム実行装
置、特に命令数の削減技術に関する。
【0002】
【従来の技術】近年、マルチメディア処理の必要性など
から、単独命令で複数のデータに対して処理を行うSI
MD(Single Instruction stream Multiple Data stre
am)方式を採用したプロセッサが増えてきている。例え
ば、インテル社製のMMXpentium(登録商標)
がこれに相当し、64bit、32bit×2、16b
it×4、8bit×8等の複数のデータに対して1つ
の命令で演算を実行することが可能である。
【0003】図3には、SIMD方式による命令実行の
様子が模式的に示されている。(a)は64bitのデ
ータに対して加算(ADD)命令を実行する場合であ
り、64bitデータ同士を加算して1つの64bit
データを生成する。(b)は32bit×2、すなわち
32bitデータ2個に対して加算命令を実行する場合
であり、1つの命令で32bitデータの加算を2回行
って32bitデータを2個生成する。(c)は16b
it×4、すなわち16bitデータ4個に対し加算命
令を実行する場合であり、1つの命令で16bitデー
タの加算を4回行って16bitデータを4個生成す
る。(d)は8bit×8、すなわち8bitデータ8
個に対して加算命令を実行する場合であり、1つの命令
で8bitデータの加算を8回行って8bitのデータ
を8個生成する。
【0004】従来のSIMD方式においては、このよう
に1つの命令で複数のデータを扱うことが可能である
が、扱うデータサイズや数によって異なる複数種類の命
令を用意して演算を実行している。例えば、加算(AD
D)命令を実行する場合、(a)に対してはADD1と
いう命令を用い、(b)に対してはADD2という命令
を用い、(c)に対してはADD3という命令を用い、
(d)に対してはADD4という命令を用いる等であ
る。ここで、ADD4は、8ビットのデータに対する加
算命令であり、8ビットのデータを8個同時に加算する
ことを意味する。また、データサイズの他に符号ビット
の有無に応じて異なる命令を使い分けて対応しており、
さらに桁あふれについても飽和処理や例外処理など数種
類存在し、これらについても異なる種類の命令をそれぞ
れ割り当てることで対応している。
【0005】
【発明が解決しようとする課題】このように、従来のS
IMD方式においては、同じ演算に対してもデータ種類
毎に複数の命令が存在するため、命令数が増大してしま
う問題があった。そして、命令数の増大は、各命令を互
いに区別するためのビット数の増大を招き、1つ1つの
命令長が長くなって必要な命令メモリのサイズも増大し
てしまう問題があった。一般に、命令は命令の種類を示
すオペコードと処理対象を示すオペランドの2つから構
成され、命令を演算種類分だけ用意するのであればオペ
コードの部分は演算種類を区別するだけのビット数で足
りることになる。しかしながら、命令を演算種類分だけ
でなくデータ種類ごとにも用意する必要があると、オペ
コードの部分が(演算種類+データ種類)となり、単純
な演算種類分だけの場合に比べて命令長がデータ種類の
分だけ増大することになる。
【0006】さらに、プログラムにはアルゴリズムに関
する記述(演算の順序などを規定する)と実装に関する
記述(データのサイズや符号ビットの有無、桁あふれ処
理方法などを規定する)があり、アルゴリズムに関する
部分は汎用的であるため他の問題に対するプログラムに
もそのまま適用することができ、実装に関する部分のみ
を書き換えればよいはずであるが、従来の方式ではデー
タサイズなどの実装方法が異なる場合には演算に関する
命令も書き換える必要が生じるため(データサイズが変
化すると、そのデータサイズに応じた命令が必要とな
る)、効率的なプログラミングが困難である問題もあっ
た。
【0007】本発明は、上記従来技術の有する課題に鑑
みなされたものであり、その目的は、命令数の増加を抑
制し、これにより必要な命令メモリのサイズを縮小でき
るとともに、効率的にプログラムを作成することができ
るプログラム実行装置を提供することにある。
【0008】
【課題を解決するための手段】上記目的を達成するため
に、本発明のプログラム実行装置は、命令をデコードす
るデコード手段と、データ及びそのデータの属性を記憶
する記憶手段と、前記デコード手段でデコードされた、
データの属性に依存しない命令と前記記憶手段に記憶さ
れた前記データの属性から前記データに対する命令を決
定して実行する演算手段とを有する。データ種類などの
データ属性毎に異なる命令を用意するのではなく、デー
タ属性に依存しない命令、すなわち演算種類分だけの命
令を用意し、この命令と別途記憶されたデータ属性とを
合わせて最終的な命令を決定することで、データ属性に
応じた演算を可能とするとともに、命令数の増大を抑え
ることができる。本発明では、(演算種類+データ種
類)のオペコードは必要ではなく、演算種類分のみのオ
ペコードで足りることになる。また、データ属性に依存
しない命令を用いることができるため、アルゴリズムと
実装部分を分けることができ、実装部分を変えるだけで
他の問題にも対応できる。データの属性とは、具体的に
はデータサイズやデータの符号、桁あふれの有無等であ
る。記憶手段は、データを記憶する部分と属性を記憶す
る部分が別体で構成されていてもよく、単一のメモリの
異なる領域にデータと属性がそれぞれ記憶されていても
よい。
【0009】本発明において、前記デコード手段でデコ
ードされた命令に基づいて、前記データの属性を生成し
て前記記憶手段に格納する属性生成手段をさらに有する
ことができる。例えば、命令の引数でデータの種類が指
定されている場合、属性生成手段はこのデータの種類を
データの属性として記憶手段に書き込む。属性生成手段
は、データが新たに記憶手段に書き込まれる際に、この
書き込みに付随してそのデータの属性を記憶手段に書き
込むことが好適である。データの属性に変更がない場合
には、元の属性をコピーして再び書き込むことができ
る。もちろん、データの属性に変更がない場合に属性の
書き換えを行わずそのまま保持してもよい。
【0010】前記演算手段は、SIMD方式で演算を実
行することが好適である。これにより、SIMD方式で
ありながら命令数を削減でき、かつ、単一の命令で複数
のデータをまとめて処理することができる。本発明によ
れば、64bitのデータを1つ入力した場合には単一
の演算命令に基づいて64bitのデータが1つ出力さ
れ、16bitのデータを4つ入力した場合には単一か
つ64bitの場合と同一の演算命令に基づいて16b
itのデータが4つ出力される。本発明のプログラム実
行装置は、マイクロプロセッサに適用することができ
る。
【0011】また、本発明はプログラム実行方法を提供
する。この方法は、演算の種類毎に規定された演算命令
を読み出すステップと、演算すべきデータの属性を読み
出すステップと、前記演算命令を前記データの属性に応
じて変化させて演算を実行するステップとを有する。
【0012】本発明の1つの実施形態では前記データの
属性は前記データのサイズであり、前記演算命令を前記
データのサイズに応じて変化させて演算を実行する。
【0013】
【発明の実施の形態】以下、図面に基づき本発明の実施
形態について説明する。
【0014】図1には本実施形態に係るプログラム実行
装置の構成ブロック図が示されている。プログラム実行
装置は、命令メモリ10、命令実行制御部12、属性生
成部14、レジスタ16、演算部(ALU)18、メモ
リ制御部20及びデータメモリ22を有して構成され
る。なお、命令は命令バス、データはデータバスを介し
てそれぞれ送受される。
【0015】命令メモリ10は、命令を格納するもの
で、命令実行制御部12に対して順次格納した命令を供
給する。命令実行制御部12は、命令フェッチ機能及び
命令デコード機能を備え、命令メモリ10から読み出
し、デコードした命令を属性生成部14や演算部18、
メモリ制御部20に供給する。演算部18は、命令実行
制御部12から与えられた命令に基づきレジスタ16か
らデータを読み出して演算を実行し、再びレジスタ16
にその結果を書き込む。メモリ制御部20は、命令実行
制御部12からのデコードされた命令に基づき、データ
メモリ22にアクセスし、データのメモリ22への書き
込み及びメモリ22からの読み出しを実行する。レジス
タ16は、データを一時格納するものであるが、本実施
形態では従来のようにデータ値のみを格納するのではな
く、そのデータの属性をも格納する。すなわち、本実施
形態におけるレジスタ16は、属性格納領域16aとデ
ータ値格納領域16bの2つの領域から構成されてお
り、データ値格納領域16bには、従来と同様に演算部
18で演算して得られた結果が格納されるが、属性格納
領域16aには属性生成部14で生成されたそのデータ
の属性が格納される。データの属性とは、具体的にはそ
のデータの種類であり、属性生成部14は、命令の引数
等で指定されるデータの種類を判定して属性格納領域1
6aに格納する。そして、属性格納領域16aに格納さ
れたデータの属性は、命令実行制御部12でデコードさ
れた演算命令とともに演算部18に供給される。演算部
18では、命令実行制御部12から供給された演算命令
とともに、データ種類を表すこの属性データに基づき演
算を一義的に特定し、データ種類に応じた演算を実行す
る。言い換えれば、演算部18で実行される演算は、演
算命令とデータ属性に基づいて決定され、同一演算命令
であっても、データ属性が異なれば異なる演算が実行さ
れることになる。
【0016】図2には、図1におけるレジスタ16の構
成例が示されている。データ値格納領域16bには64
bitのデータdatが格納される。また、属性格納領
域16aには8bitの属性attrが格納される。こ
の属性格納領域16aに、データ値格納領域16bに格
納されているデータが64bitのデータであるか、3
2bitのデータ2個であるか、あるいは16bitの
データ4個であるかなどが格納される。もちろん、属性
格納領域16aのビット数は任意に決定することができ
る。データ値格納領域16bに格納されたデータが読み
出されて演算部18に供給される際、属性格納領域16
aに格納されたそのデータの属性も同時に読み出され、
演算部18に供給される。演算部18は、(デコードさ
れた命令+データ属性)により演算の種類を決定し、レ
ジスタ16から読み出したデータに対して演算を実行す
る。
【0017】また、例えばメモリリードや即値格納時な
ど、新たにレジスタ16にデータを格納する命令を実行
する際には、レジスタ16のデータ値格納領域16bに
データを書き込むだけでなく、属性生成部14によりそ
のデータの属性を決定し、レジスタ16の属性格納領域
16aにその属性を書き込む。例えば、8bit×8の
SIMDの場合には<8bitSIMD>なる属性を書
き込む。そして、レジスタ16に格納されたこのデータ
をソースとするADD命令を実行する際には、レジスタ
16からデータ値を読み出すとともに、属性格納領域1
6aから<8bitSIMD>なる属性を読み出し、こ
の属性に応じた演算、すなわち8bitデータ同士の加
算を8個行う演算(図3(d)参照)を実行する。した
がって、本実施形態では、同一ADD命令であっても、
データ属性が異なれば異なる演算が実行されることにな
り、データサイズが32bit×2であればADD命令
により図3(b)に示される演算が実行され、データサ
イズが16bit×4であれば同一ADD命令でも図3
(d)に示される演算が実行される。このことは、命令
から見れば、命令実行制御部12でデコードされた命令
がデータ属性により変換されると言うこともできる。
【0018】なお、転送命令や演算命令の実行結果をレ
ジスタ16に書き込む場合には、レジスタ16のデータ
値格納領域16bに当該データを格納するとともに属性
格納領域16aにソースレジスタの属性をコピーして格
納する。属性のコピーは属性生成部14にて実行する。
具体的には、命令実行制御12から送られた命令が転送
命令や演算命令である場合、レジスタ16の属性格納領
域16aに格納されている当該データの属性を読み出
し、これをコピーして再度属性格納領域16aに書き込
む。
【0019】データの合成(PACK)や分割(UNPACK)を
行う命令の場合には、データの属性が変更されるため、
属性生成部14では属性格納領域16aにデータの合成
あるいは分割後の該当する属性を属性格納領域に書き込
む。<32bitSIMD>から<16bitSIMD
>と書き換える等である。
【0020】このように、本実施形態においてはデータ
の種類によらず演算命令を演算種類分だけ用意し、この
演算とレジスタ16の属性格納領域16aに格納された
データ種類を表す属性に基づいた演算を実行することで
データの種類に応じた演算を実現するため、従来のよう
に(演算種類分+データ種類分)の命令を用意する必要
がなくなり、命令数を削減できるとともに命令の区別の
ためのビット数を減らすことができる。
【0021】また、本実施形態においてはデータの種類
による演算の選択を命令のオペコード部分で行うのでは
なく、レジスタ16に格納された属性を用いて行うた
め、プログラムを実装ごとに作り直す必要もなくなり
(データの種類が変化しても、同一の命令を用いること
ができる)、効率的なプログラムが可能となる。
【0022】
【発明の効果】以上説明したように、本発明によれば命
令メモリの増大を抑制でき、また、プログラムを効率的
に作成、実行することが可能となる。
【図面の簡単な説明】
【図1】 実施形態の構成ブロック図である。
【図2】 図1におけるレジスタの構成図である。
【図3】 SIMD方式による演算処理を示す説明図で
ある。
【符号の説明】
10 命令メモリ、12 命令実行制御部、14 属性
生成部、16 レジスタ、18 演算部、20 メモリ
制御部、22 データメモリ。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 命令をデコードするデコード手段と、 データ及びそのデータの属性を記憶する記憶手段と、 前記デコード手段でデコードされた、データの属性に依
    存しない命令と前記記憶手段に記憶された前記データの
    属性から前記データに対する命令を決定して実行する演
    算手段と、 を有することを特徴とするプログラム実行装置。
  2. 【請求項2】 請求項1記載の装置において、さらに、 前記デコード手段でデコードされた命令に基づいて、前
    記データの属性を生成して前記記憶手段に格納する属性
    生成手段と、 を有することを特徴とするプログラム実行装置。
  3. 【請求項3】 請求項1、2のいずれかに記載の装置に
    おいて、 前記演算手段は、SIMD方式で演算を実行することを
    特徴とするプログラム実行装置。
  4. 【請求項4】 プログラム実行方法であって、 演算の種類毎に規定された演算命令を読み出すステップ
    と、 演算すべきデータの属性を読み出すステップと、 前記演算命令を前記データの属性に応じて変化させて演
    算を実行するステップと、 を有することを特徴とするプログラム実行方法。
  5. 【請求項5】 請求項4記載の方法において、 前記データの属性は前記データのサイズであり、 前記演算命令を前記データのサイズに応じて変化させて
    演算を実行することを特徴とするプログラム実行方法。
JP2000268145A 2000-09-05 2000-09-05 プログラム実行装置及びプログラム実行方法 Pending JP2002073326A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000268145A JP2002073326A (ja) 2000-09-05 2000-09-05 プログラム実行装置及びプログラム実行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000268145A JP2002073326A (ja) 2000-09-05 2000-09-05 プログラム実行装置及びプログラム実行方法

Publications (1)

Publication Number Publication Date
JP2002073326A true JP2002073326A (ja) 2002-03-12

Family

ID=18754954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000268145A Pending JP2002073326A (ja) 2000-09-05 2000-09-05 プログラム実行装置及びプログラム実行方法

Country Status (1)

Country Link
JP (1) JP2002073326A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7183937B2 (en) 2003-12-22 2007-02-27 Samsung Electronics Co., Ltd. Self-powered sensing module and tire pressure monitoring system using the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7183937B2 (en) 2003-12-22 2007-02-27 Samsung Electronics Co., Ltd. Self-powered sensing module and tire pressure monitoring system using the same

Similar Documents

Publication Publication Date Title
US5907842A (en) Method of sorting numbers to obtain maxima/minima values with ordering
US20020188830A1 (en) Bit replacement and extraction instructions
JPH07120278B2 (ja) データ処理装置
US8549266B2 (en) System and method of instruction modification
JPH05150979A (ja) 即値オペランド拡張方式
US6542989B2 (en) Single instruction having op code and stack control field
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
US10437598B2 (en) Method and apparatus for selecting among a plurality of instruction sets to a microprocessor
US20180196673A1 (en) Vector length querying instruction
JP2001075804A (ja) 拡張命令を処理する並列プロセッサ
JP2538053B2 (ja) 制御装置
JP2002073326A (ja) プログラム実行装置及びプログラム実行方法
JP3841820B2 (ja) マイクロコンピュータ
JP2848727B2 (ja) 並列演算処理装置
JP4645369B2 (ja) Cpu
JPH0876996A (ja) プログラマブルコントローラ
JP5263497B2 (ja) 信号処理プロセッサ及び半導体装置
US7003543B2 (en) Sticky z bit
JP5263498B2 (ja) 信号処理プロセッサ及び半導体装置
JP5311008B2 (ja) 信号処理プロセッサ及び半導体装置
JPH0512009A (ja) デイジタル信号処理装置
JP2011170758A (ja) プロセッサ
JPH11119995A (ja) データ処理装置および方法
JPH07191845A (ja) 即値データ転送装置
JPH03164945A (ja) データ処理装置