JP2002073325A - データ処理装置及び方法 - Google Patents

データ処理装置及び方法

Info

Publication number
JP2002073325A
JP2002073325A JP2000255697A JP2000255697A JP2002073325A JP 2002073325 A JP2002073325 A JP 2002073325A JP 2000255697 A JP2000255697 A JP 2000255697A JP 2000255697 A JP2000255697 A JP 2000255697A JP 2002073325 A JP2002073325 A JP 2002073325A
Authority
JP
Japan
Prior art keywords
immediate
bit string
data
constant
instruction
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
JP2000255697A
Other languages
English (en)
Inventor
Kazuaki Okamoto
一晃 岡本
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 JP2000255697A priority Critical patent/JP2002073325A/ja
Publication of JP2002073325A publication Critical patent/JP2002073325A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 即値データフィールドに格納される限られた
ビット列から、データ語長の定数を生成する。 【解決手段】 命令フォーマットとして、オペコードO
P1、デスティネーションレジスタrd、シフト量sf
t、即値データimmを与える。即値データimmをシ
フト量sftで規定される量だけ左にシフトさせ、デス
ティネーションレジスタrdに格納することで、1つの
命令でデータ語長分の定数を生成できる。データ語長分
の定数を生成する命令を内包し、生成された定数を用い
て演算実行を行う命令を実行することもできる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はCPU及びマイクロ
プロセッサなど、実行可能なデータ形式に変換されたプ
ログラムを実行してデータを処理するデータ処理装置及
び方法に関し、特に即値データを含むプログラムを実行
する装置及び方法に関する。
【0002】
【従来の技術】近年の電子製品の高機能化に伴い、マイ
クロプロセッサに代表されるデータ処理装置の適用分野
が急速に拡大し、プログラムサイズも増大の一途をたど
っている。メモリの使用効率を向上しハードウェアコス
トを削減するためには、プログラムサイズの縮小は必須
であり、そのためには命令語長を小さく、すなわち短い
ビット数に抑えることが有効である。
【0003】また、VLIW(Very Long Instruction W
ord)方式のデータ処理装置においては、並列に実行可
能な各処理ユニットへの命令を連結して長命令形式をと
るため、各処理ユニットへの命令の語長が全体のハード
ウェアコストに大きく影響することになる。
【0004】一方、このような命令語長の縮小化を図る
とともに、高機能なデータ処理に対応するためには、デ
ータ語長は大きい方が望ましいため、命令語長とデータ
語長が等しいデータ処置装置においては、全体の長さを
縮小するために命令語長とデータ語長のいずれかを犠牲
にする必要がある。例えば、日本電気株式会社製のV8
50においては、データ語長に比べて命令語長を小さく
している。
【0005】しかし、データ語長よりも小さい語長の命
令フォーマットを採用した場合、データ語長に匹敵する
即値データを必要とする場合に命令内の即値フィールド
のビット数だけでは即値データを生成することができな
い問題が生じる。従来においては、この問題に対応すべ
く、以下の2つの方法が採用されていた。
【0006】(1)複数の命令を組み合わせて定数を生
成する (2)命令フォーマットを可変長とし、複数の命令語長
にわたって即値データを格納する。
【0007】
【発明が解決しようとする課題】しかしながら、固定長
フォーマットで実現できる(1)の方法では、定数を生
成するために複数の命令を実行する必要があり、実行効
率が低下するとともに、命令を格納するためにメモリ使
用効率も低下してしまう。また、可変長フォーマットで
実現する(2)の方法では、即値データを格納するため
にメモリ使用効率が低下するとともに、可変長フォーマ
ットを採用することによる命令デコード時の処理が複雑
化する問題が生じる。
【0008】なお、特開平11−96000号公報に
は、固定長命令フォーマットで即値データを処理する技
術が記載されているが、定数を予めメモリ内に格納し、
その格納アドレスへの変位を即値フィールドにもつもの
であり、メモリ使用効率の面からは(2)の方法と大差
ない。
【0009】また、特開平11−7388号公報には、
定数格納のための定数レジスタを別に設け、定数格納時
の既に格納されている前のデータを自動的にシフトさせ
て新たな定数を隣接して格納する技術が記載されている
が、VLIW方式との組み合わせにおいてプログラムの
NOPコードに置き換えて埋め込めるようにスケジュー
リングが可能な場合に限って有効であり、そうでない場
合には(1)の方法と実質的に等価となってしまい、さ
らに専用の定数レジスタなどの新たなハードウェア追加
に伴うコスト増大を招くことになる。
【0010】本発明は、上記従来技術の有する課題に鑑
みなされたものであり、その目的は、命令内の即値デー
タフォールドのビット数がデータ語長より小さい場合
に、実行効率及びメモリ使用効率を低下させることなく
データ語長分の定数を生成することができる装置及び方
法を提供することにある。
【0011】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、即値データフィールドに格納された即値
ビット列から、そのビット列よりも長いデータ語長分の
定数を生成するデータ処理装置であって、即値ビット列
を所定量だけシフトさせるためのビット列が含まれた命
令をデコードするデコード手段と、前記デコード手段か
らのデコード値に基づき、前記即値ビット列を前記所定
量だけシフトさせて前記定数を生成する演算手段とを有
する。即値ビット列(即値データ)をシフトさせるビッ
ト列を命令に含ませ、これをデコードして即値ビット列
をシフトさせることでデータ語長分の定数を容易に生成
することができる。なお、即値ビット列をシフトさせる
とは、具体的にはレジスタに格納する際に所定量だけ即
値ビット列を左(上位方向)にシフトさせ、レジスタの
残りのビットには任意の(例えば0)ビットを格納する
ことを意味する。本発明によれば、1つの命令で即値ビ
ット列をシフトさせて定数を生成することができるの
で、従来のように複数の命令を要することなく(固定長
命令フォーマットの場合)、データ語長分のメモリを占
有する必要もない(可変長命令フォーマットの場合)。
【0012】ここで、前記即値ビット列を所定量だけシ
フトさせるためのビット列は、前記命令のフォーマット
において前記即値データフィールドと異なる領域あるい
は即値データフィールド内に格納されていることが好適
である。
【0013】また、前記即値ビット列を所定量だけシフ
トさせるためのビット列は、それ自体がシフト量を表し
てもよく、あるいはシフト量を格納するレジスタの番号
を表してもよい。
【0014】また、本発明は、即値データフィールドに
格納された即値ビット列から、そのビット列よりも長い
データ語長分の定数を生成するデータ処理装置であっ
て、前記即値ビット列を所定のパターンで繰り返すため
のビット列が含まれた命令をデコードするデコード手段
と、前記デコード手段からのデコード値に基づき、前記
即値ビット列を前記パターンにしたがって繰り返すこと
で前記定数を生成する演算手段とを有する。即値ビット
列を所定のパターンで繰り返すことで容易にデータ語長
分の定数を生成することができ、繰り返しのパターンを
1つの命令で指定することで、複数の命令を要すること
なく定数を生成できる。
【0015】前記即値ビット列を所定のパターンで繰り
返すためのビット列は、前記命令のフォーマットにおい
て前記即値データフィールドと異なる領域あるいは前記
即値データフィールド内に格納されていることが好適で
ある。
【0016】また、前記即値ビット列を所定のパターン
で繰り返すためのビット列は、繰り返しのパターンそれ
自体でもよく、パターンを格納するレジスタの番号を表
すこともできる。繰り返しのパターンそれ自体とは、例
えば即値ビット列をひとまとまりのデータとし、このデ
ータをどのように繰り返すかを規定するビット列であ
り、1を即値ビット列のまとまりとして1010(この
場合、即値ビット列のまとまり/0/即値ビット列のま
とまり/0という定数となる)等と表すことができる。
【0017】前記即値ビット列は即値データそのものを
表してもよいが、任意のルールに従って符号化されてい
てもよく、この場合には符号化(コード化)即値ビット
列を復号化して演算手段に出力し、定数を生成すればよ
い。
【0018】また、本発明のデータ処理装置は、上記に
より生成された定数を用いてさらに演算を行う手段を備
えることを特徴とする。1つの命令で即値ビットからデ
ータ語長分の定数が生成され、さらに同一の命令におい
てこの定数を用いて演算を実行することで、実行効率が
著しく増大する。
【0019】本発明のデータ処理装置は、CPUあるい
はマイクロプロセッサとして具現化することができる。
【0020】また、本発明は、即値データフィールドに
格納された即値ビット列から、そのビット列よりも長い
データ語長分の定数を生成する方法を提供する。この方
法は、命令として、即値ビット列を所定量だけシフトさ
せるためのビット列を含む命令を与え、前記即値ビット
列を所定量だけシフトさせるためのビット列にしたがっ
て前記即値ビット列を左にシフトさせ前記定数を生成す
ることを特徴とする。
【0021】前記即値ビット列を所定量だけシフトさせ
るためのビット列は、前記シフト量自体を表してもよ
く、前記シフト量を格納するレジスタの番号を表しても
よい。また、前記即値ビット列を所定量だけシフトさせ
るためのビット列は、前記命令のフォーマットにおいて
前記即値データフィールドと異なる領域あるいは即値デ
ータフィールド内に格納されていることが好適である。
【0022】また、本発明のデータ処理方法は、命令と
して、即値ビット列を所定のパターンで繰り返すための
ビット列を含む命令を与え、前記即値ビット列を所定の
パターンで繰り返すためのビット列にしたがって前記即
値ビット列を繰り返すことで前記定数を生成することを
特徴とする。
【0023】前記即値ビット列を所定のパターンで繰り
返すためのビット列は、繰り返しパターン自体を表して
もよく、繰り返しパターンを格納するレジスタの番号を
表してもよい。
【0024】また、前記即値ビット列を所定のパターン
で繰り返すためのビット列は、前記命令のフォーマット
において前記即値データフィールドと異なる領域あるい
は即値データフィールド内に格納されていることが好適
である。
【0025】本方法において、前記即値ビット列として
符号化されたビット列を与え、符号化された即値ビット
列を復号化して前記定数を生成することもできる。
【0026】また、本発明は、即値データフィールドに
格納された即値ビット列から、そのビット列よりも長い
データ語長分の定数を生成し、生成された定数を用いて
演算を実行する方法を提供する。この方法は、命令とし
て、即値ビット列を所定量だけシフトさせるためのビッ
ト列及びオペランド並びにオペコードを含む命令を与
え、前記即値ビット列を所定量だけシフトさせるための
ビット列にしたがって前記即値ビット列を左にシフトさ
せて前記定数を生成し、生成された前記定数と前記オペ
ランド並びに前記オペコードを用いて演算を実行するこ
とを特徴とする。これにより、1つの命令で即値データ
フィールドに格納された限られたビット列から、データ
語長分の定数を生成でき、かつ、この定数を用いて演算
を実行することができるので、従来方法に比べて演算の
実行効率を向上させることができる。
【0027】また、本発明は、即値データフィールドに
格納された即値ビット列から、そのビット列よりも長い
データ語長分の定数を生成し、生成された定数を用いて
演算を実行する方法であって、命令として、即値ビット
列を所定のパターンで繰り返すためのビット列及びオペ
ランド並びにオペコードを含む命令を与え、前記即値ビ
ット列を所定のパターンで繰り返すためのビット列にし
たがって前記即値ビット列を繰り返して前記定数を生成
し、生成された前記定数と前記オペランド並びに前記オ
ペコードを用いて演算を実行することを特徴とする。こ
の方法によっても、1つの命令でデータ語長分の定数を
生成できるとともに、この定数を用いて演算を行うこと
ができるので、実行効率を向上させることができる。
【0028】本発明のデータ処理方法は、CPUあるい
はマイクロプロセッサでのデータ処理として具現化でき
る。
【0029】
【発明の実施の形態】以下、図面に基づき本発明の実施
形態について説明する。
【0030】図1には、本実施形態の命令フォーマット
及びこの命令を実行した場合に生成される定数の様子が
示されている。(a)は基本的な命令フォーマットであ
り、演算子OP、デスティネーションレジスタrd、ソ
ースレジスタrs、即値データimmから構成される。
この命令フォーマットにおいては、ソースレジスタrs
の値と即値データimmを用いてオペコードOPで指定
される演算が実行され、その演算結果がデスティネーシ
ョンレジスタrdに格納される。すなわち、rd=rs
<OP>immである。
【0031】本実施形態では、このような命令フォーマ
ットにおいて、(b)に示すように、ソースレジスタr
sの領域にシフト量sftを格納する。また、オペコー
ドOP1は、即値データimmをsftで決定される量
だけ左にシフトしてデスティネーションレジスタrdに
格納することを表す。(c)には、(b)の命令フォー
マットを実行した場合にデスティネーションレジスタr
dに格納される即値データ、すなわち定数が示されてい
る。即値データimmはsftで規定されるビット数だ
け左にシフトされてレジスタに格納される。即値データ
imm以外の領域は例えば0が格納される。これによ
り、(b)に示された1つの命令のみで、(c)に示さ
れるように即値フィールドのビット数よりも大きいデー
タ語長分の定数を簡易に生成することが可能となる。ま
ず1つの命令で即値データをデスティネーションレジス
タに格納し、その後に別の命令で格納したデータを左に
シフトさせることでデータ語長分の定数を生成する従来
の方法に比べ、本実施形態の有効性は明らかであろう。
【0032】図2には、他の実施形態の命令フォーマッ
トが示されている。(a)は基本命令フォーマットであ
り、オペコードOP、デスティネーションレジスタrd
及び即値データimmから構成される。この命令フォー
マットにおいては、デスティネーションレジスタrdの
値と即値データimmを用いてOPで指定される演算が
実行され、その結果がデスティネーションレジスタrd
に格納される。(b)には本実施形態における命令フォ
ーマットであり、即値フィールドに格納されている即値
データimmの一部(データとして有効でない部分)を
sftに置き換え、シフト量を規定している。この命令
を実行すると、即値フィールドの特定領域に格納されて
いる即値データimmが、即値フィールドの他の特定領
域に記憶されているsftで規定される量だけ左にシフ
トされてデスティネーションレジスタrdに格納され
る。(c)はデスティネーションレジスタに格納された
即値データ、すなわち定数の様子であり、図1(c)と
同様である。本実施形態によっても、1つの命令で即値
フィールドに格納された限られたビット列から、データ
語長分の定数を容易に生成することができる。
【0033】図3には、他の実施形態に係る命令フォー
マットが示されている。図1と異なる点は、ソースレジ
スタrsの領域にシフト量それ自体を格納するのではな
く、ソースレジスタrsにシフト量データを格納してお
く点である。すなわち、この命令フォーマットにおいて
は、ソースレジスタrsに格納されているシフト量デー
タを読み出し、そのシフト量だけ即値データimmを左
にシフトさせてデスティネーションレジスタrdに書き
込む。図1の場合と比べてソースレジスタrsの値を読
み込む処理が付加されるが、単一の命令でデータ語長分
の定数を簡易に生成することができる。
【0034】図4には、他の実施形態に係る命令フォー
マットが示されている。図2では即値データフィールド
にsftと即値データimmが格納されているが、本実
施形態では即値データフィールドにソースレジスタアド
レスと即値データimmが格納されている。すなわち、
図3の場合と同様に、本実施形態ではソースレジスタr
sにシフト量sftが格納されており、そのデータを読
み出して即値データimmを該当量だけ左にシフトさせ
てデスティネーションレジスタrdに書き込む。本実施
形態によっても、命令内の即値データフィールド内のビ
ット数がデータ語長より小さい場合に、簡易にデータ語
長分の定数を生成することができる。
【0035】図5には、他の実施形態に係る命令フォー
マットが示されている。(a)が命令フォーマットであ
り、図1と異なる点は、ソースレジスタrsの領域にパ
ターンデータptnが格納される点である。この命令フ
ォーマットでは、即値データimmがptnで規定され
るパターンにしたがって拡大され、デスティネーション
レジスタrdに格納される。(b)は命令を実行した結
果の一例であり、即値データimmが繰り返しデスティ
ネーションレジスタrdに格納され、データ語長分の定
数が生成されている。パターンptnは任意に規定する
ことができ、例えば即値データとして8ビット、データ
語長として32ビットとし、ptn=(1111)とし
た場合、1で即値データimmの繰り返し、0で即値デ
ータimmの非繰り返しとすると、図5(b)の定数を
生成することができる。図6には、ptn=(101
1)とした場合の例が示されており、即値データim
m、0、imm、immが順次デスティネーションレジ
スタrdに格納され、データ語長分の定数が得られる。
ptnを命令フォーマットのソースレジスタ領域に格納
するのではなく、ソースレジスタに格納されたデータと
してパターンを与え、このソースレジスタの値を読み出
して即値データから定数を生成してもよい。
【0036】図7には、他の実施形態の命令フォーマッ
トが示されている。図5と異なりptnはソースレジス
タrsの領域に格納されるのではなく、図2の場合と同
様に即値データフィールドに格納される。命令を実行す
る際には、即値データフィールドの特定の領域に格納さ
れたptnにしたがって即値データフィールドの他の特
定領域に格納された即値データimmを繰り返し、デス
ティネーションレジスタrdに格納する。(b)はその
結果であり、即値データimmをptnで規定されるパ
ターンにしたがって繰り返すことで、データ語長分の定
数が得られている。
【0037】図8には、他の実施形態の命令フォーマッ
トが示されている。本実施形態では、(a)に示される
ように、図1と同様にsftデータを格納して即値デー
タimmをシフトデータだけ左にシフトさせてデスティ
ネーションレジスタrdに格納するが、即値データim
mはコード化されてさらに小さいビット数で格納されて
いる点が異なる。命令を実行する際には、即値データフ
ィールドに格納されたコード化された即値データcim
はその部分だけ抽出され(b)、復号部にて復号されて
即値データimmとされ(c)、図1と同様にsftで
規定されるシフト量だけ左にシフトされてデスティネー
ションレジスタrdに格納される(d)。なお、即値デ
ータimmのコード化は、任意の方法を用いることがで
きる。例えば、32ビットのマスクデータを8ビットに
符号化する場合、8ビットのコード化即値フィールドを
m(1ビット)aa(2ビット)ss(2ビット)f
(1ビット)ii(2ビット)とし、これらの値に応じ
て32ビットのマスクデータを8ビットのコード化され
た即値データに1対1に割り当てればよい。詳細は、例
えば特開平09−6609号公報を参照されたい。具体
的には、maassfiiが00111010の場合に
は00111010=000000000000000
00000000110000000、maassfi
iが00101100の場合には00101100=0
0000000000000000011111000
000000、maassfiiが1001001の場
合には1001001=00000000000000
111111111111111111の如くである。
【0038】図9には、コード化された即値データを用
いた命令フォーマットの他の例が示されている。(a)
に示されるように、図2と同様に即値データフィールド
の中にシフト量sftが即値データとともに格納されて
おり、即値データimmがコード化されて格納されてい
る。この命令を実行する際には、即値データフィールド
の特定領域に格納されたコード化即値データcimを抽
出し(b)、復号化部で復号して即値データimmとし
(c)、sftで規定される量だけ左にシフトさせてデ
スティネーションレジスタに格納する(d)。
【0039】図10には、他の実施形態の命令フォーマ
ット及びその処理の様子が示されている。(a)に示さ
れるように、即値データフィールドにはコード化された
即値データcimが格納されているが、本実施形態で
は、シフト量sftも即値データimmとともに併せて
コード化されて即値データフィールドに格納されてい
る。この命令を実行する際には、即値データフィールド
の特定領域に格納されているコード化された即値データ
部分cim1とコード化されたsft部分cim2を抽
出し(b)、復号化部でそれぞれをデコードして即値デ
ータimmとシフト量sftを得(c)、即値データi
mmをsftで規定される量だけ左にシフトさせてデス
ティネーションレジスタrdに格納する(d)。即値デ
ータだけでなく、sftもコード化することで全体のサ
イズをより縮小することができる。
【0040】図11には、図1〜図10に示された命令
フォーマットの命令を実行するデータ処理装置の構成が
示されている。命令フェッチ部10で命令を順次取り出
し、命令デコード部12に供給する。命令デコード部1
2は、命令フォーマットの命令を解釈し、デスティネー
ションレジスタ番号及びソースレジスタ番号をレジスタ
ファイル14に供給するとともに、即値データ(あるい
はコード化された即値データ)を即値複号化部16に供
給する。即値データがコード化されていない場合には、
即値データはそのまま即値復号化部16からセレクタ1
8に供給される。また、即値データがコード化されてい
る場合にはデコードした即値データがセレクタ18に供
給される。即値データフィールドにシフト量sftが含
まれている場合には、即値複号化部16はシフト量sf
tをセレクタ20に供給する。sftがコード化されて
いる場合には、デコードした後にセレクタ20に供給す
る。一方、レジスタファイル14からはオペランドソー
ス1がセレクタ18に供給され、オペランドソース2が
セレクタ20に供給され、命令デコード部12からのオ
ペランドソース選択信号に基づいてセレクタ18、20
のいずれかが選択され、演算実行部22に供給される。
例えば図1の命令フォーマットの場合、セレクタ18か
ら即値データimmが演算実行部22に供給され、シフ
ト量sftがセレクタ20から演算実行部22に供給さ
れる、演算実行部22では、即値データimmをシフト
量sftだけシフトさせる演算を行い、レジスタファイ
ル14のデスティネーションレジスタに演算結果、すな
わち生成された定数を書き込む。また、図3の命令フォ
ーマットの場合、レジスタファイル14からソースレジ
スタrsのデータがオペランドソース2としてセレクタ
20に与えられ、セレクタ18から即値データimmが
演算実行部22に供給されるとともに、セレクタ20か
らシフト量sftが演算実行部22に供給される。
【0041】このように、上述した各実施形態では、即
値データフィールドに格納された限られたビット列か
ら、1つの命令語でデータ語長分の定数を生成すること
ができるが、さらにこのような定数生成命令を内包し、
生成された定数を用いて演算実行を行う命令フォーマッ
トで演算を行うことも可能である。
【0042】図12には、このような命令フォーマット
がマスク演算を例にとり示されている。(a)に示され
るように、この命令フォーマットは、オペコードOP
(マスク演算の場合にはand)、デスティネーション
レジスタrd、シフト量sft、第2オペコードO
P’、即値データimmから構成される。即値データか
ら定数を生成し、マスク演算を行う命令フォーマットは
(b)に示されている。OP’は即値データのシフトを
示すオペコードsiであり、これにより即値データをs
ftで規定されるシフト量だけシフトさせ、デスティネ
ーションレジスタrdの値とandを演算してその結果
をデスティネーションレジスタに書き込む処理となる。
(c)には即値データimmをsftで与えられるシフ
ト量だけ左にシフトさせて得られるマスク定数が示され
ており、この定数と(d)に示されたソースデータ、す
なわちデスティネーションレジスタに格納されたデータ
とのand演算を行うと、即値データimmが存在する
部分のみが有意のデータdata’となり、残りは0と
なる演算結果を得ることができる。(e)の演算結果
は、(b)に示された1つの命令語のみで得られること
に注意されたい。
【0043】図13には、さらに他の命令フォーマット
が示されている。この例では、シフト量sftが即値デ
ータフィールドに格納されており、図2に対応する例で
ある。オペコードsiで即値データフィールドの特定領
域に格納された即値データimmを即値データフィール
ドの他の特定領域に格納されたシフト量sftだけ左に
シフトさせ、その後、得られた定数とデスティネーショ
ンレジスタrdの値とのand演算を行ってその結果を
デスティネーションレジスタrdに書込む命令である。
(b)、(c)、(d)はそれぞれ図12の(c)、
(d)、(e)と同一であるため説明は省略する。
【0044】なお、図12、図13において、即値デー
タはコード化されていてもよく、また、シフト量sft
はソースレジスタに格納され、ソースレジスタから読み
出して用いることも可能である。
【0045】図14には、即値データから定数を生成す
る命令(副命令)を内包し、生成された定数を用いて演
算を行うための命令フォーマットを実行するデータ処理
装置の構成が示されている。命令フェッチ部10で順次
命令を取り出し、命令デコード部12に供給する、命令
デコード部12では命令を解釈し、デスティネーション
レジスタ番号及びソースレジスタ番号をレジスタファイ
ル14に供給する。レジスタファイル14は、指定され
た番号のデータをオペランドソースとして演算実行部2
2に与える。一方、即値データ及びシフト量sftは命
令デコード部12から定数生成部17に供給される。定
数生成部17は、即値データ(あるいはsft)がコー
ド化されている場合には複合化部でデコードし、デコー
ドされた即値データimmとシフト量sftをシフタに
供給する。シフタでは、即値データimmを与えられた
シフト量だけ左にシフトさせて定数を生成し、演算実行
部22に供給する。
【0046】例えば、上述のマスク演算においては、演
算実行部22では、レジスタファイル14からのデステ
ィネーションレジスタの値と定数生成部17からの定数
を用いてand演算を実行する。and演算を実行する
際には、メモリアクセス部24を介してデータメモリ2
6に適宜演算データを格納して行う。そして、演算結果
は、デスティネーションレジスタrdに書き込む。
【0047】
【発明の効果】以上説明したように、本発明によれば、
複数の命令語を用いることなく、即値データフィールド
に格納される限られたビット列から、それ以上の長さを
有する定数を生成することができる。また、このように
して作成された定数を用いて演算を実行することができ
る。
【図面の簡単な説明】
【図1】 実施形態の命令フォーマット説明図である。
【図2】 他の実施形態の命令フォーマット説明図であ
る。
【図3】 他の実施形態の命令フォーマット説明図であ
る。
【図4】 他の実施形態の命令フォーマット説明図であ
る。
【図5】 他の実施形態の命令フォーマット説明図であ
る。
【図6】 図5におけるptn=1011の場合の生成
定数説明図である。
【図7】 他の実施形態の命令フォーマット説明図であ
る。
【図8】 コード化された即値データを用いた他の実施
形態の命令フォーマット説明図である。
【図9】 コード化された即値データを用いた他の実施
形態の命令フォーマット説明図である。
【図10】 コード化された即値データを用いた他の実
施形態の命令フォーマット説明図である。
【図11】 実施形態のデータ処理装置構成図である。
【図12】 定数生成命令を内包する命令フォーマット
説明図である。
【図13】 定数生成命令を内包する他の命令フォーマ
ット説明図である。
【図14】 他の実施形態のデータ処理装置構成図であ
る。
【符号の説明】
10 命令フェッチ部、12 命令デコード部、22
演算実行部。

Claims (23)

    【特許請求の範囲】
  1. 【請求項1】 即値データフィールドに格納された即値
    ビット列から、そのビット列よりも長いデータ語長分の
    定数を生成するデータ処理装置であって、 即値ビット列を所定量だけシフトさせるためのビット列
    が含まれた命令をデコードするデコード手段と、 前記デコード手段からのデコード値に基づき、前記即値
    ビット列を前記所定量だけシフトさせて前記定数を生成
    する演算手段と、 を有することを特徴とするデータ処理装置。
  2. 【請求項2】 請求項1記載の装置において、 前記即値ビット列を所定量だけシフトさせるためのビッ
    ト列は、前記命令のフォーマットにおいて前記即値デー
    タフィールドと異なる領域に格納されていることを特徴
    とするデータ処理装置。
  3. 【請求項3】 請求項1記載の装置において、 前記即値ビット列を所定量だけシフトさせるためのビッ
    ト列は、前記命令のフォーマットにおいて前記即値デー
    タフィールド内に格納されていることを特徴とするデー
    タ処理装置。
  4. 【請求項4】 請求項1記載の装置において、 前記即値ビット列を所定量だけシフトさせるためのビッ
    ト列は、シフト量を格納するレジスタの番号を表すこと
    を特徴とするデータ処理装置。
  5. 【請求項5】 即値データフィールドに格納された即値
    ビット列から、そのビット列よりも長いデータ語長分の
    定数を生成するデータ処理装置であって、 前記即値ビット列を所定のパターンで繰り返すためのビ
    ット列が含まれた命令をデコードするデコード手段と、 前記デコード手段からのデコード値に基づき、前記即値
    ビット列を前記パターンにしたがって繰り返すことで前
    記定数を生成する演算手段と、 を有することを特徴とするデータ処理装置。
  6. 【請求項6】 請求項5記載の装置において、 前記即値ビット列を所定のパターンで繰り返すためのビ
    ット列は、前記命令のフォーマットにおいて前記即値デ
    ータフィールドと異なる領域に格納されていることを特
    徴とするデータ処理装置。
  7. 【請求項7】 請求項5記載の装置において、 前記即値ビット列を所定のパターンで繰り返すためのビ
    ット列は、前記命令のフォーマットにおいて前記即値デ
    ータフィールド内に格納されていることを特徴とするデ
    ータ処理装置。
  8. 【請求項8】 請求項5記載の装置において、 前記即値ビット列を所定のパターンで繰り返すためのビ
    ット列は、パターンを格納するレジスタの番号を表すこ
    とを特徴とするデータ処理装置。
  9. 【請求項9】 請求項1〜8のいずれかに記載の装置に
    おいて、さらに、 前記即値ビット列が符号化されている場合に復号化して
    前記演算手段に出力する手段と、 を有することを特徴とするデータ処理装置。
  10. 【請求項10】 請求項1〜9のいずれかに記載の装置
    により生成された定数を用いて演算を行う手段を備える
    データ処理装置。
  11. 【請求項11】 即値データフィールドに格納された即
    値ビット列から、そのビット列よりも長いデータ語長分
    の定数を生成する方法であって、 命令として、即値ビット列を所定量だけシフトさせるた
    めのビット列を含む命令を与え、 前記即値ビット列を所定量だけシフトさせるためのビッ
    ト列にしたがって前記即値ビット列を左にシフトさせ前
    記定数を生成することを特徴とするデータ処理方法。
  12. 【請求項12】 請求項11記載の方法において、 前記即値ビット列を所定量だけシフトさせるためのビッ
    ト列は、前記シフト量自体を表すことを特徴とするデー
    タ処理方法。
  13. 【請求項13】 請求項11記載の方法において、 前記即値ビット列を所定量だけシフトさせるためのビッ
    ト列は、前記シフト量を格納するレジスタの番号を表す
    ことを特徴とするデータ処理方法。
  14. 【請求項14】 請求項11記載の方法において、 前記即値ビット列を所定量だけシフトさせるためのビッ
    ト列は、前記命令のフォーマットにおいて前記即値デー
    タフィールドと異なる領域に格納されていることを特徴
    とするデータ処理方法。
  15. 【請求項15】 請求項11記載の方法において、 前記即値ビット列を所定量だけシフトさせるためのビッ
    ト列は、前記命令のフォーマットにおいて前記即値デー
    タフィールド内に格納されていることを特徴とするデー
    タ処理方法。
  16. 【請求項16】 即値データフィールドに格納された即
    値ビット列から、そのビット列よりも長いデータ語長分
    の定数を生成する方法であって、 命令として、即値ビット列を所定のパターンで繰り返す
    ためのビット列を含む命令を与え、 前記即値ビット列を所定のパターンで繰り返すためのビ
    ット列にしたがって前記即値ビット列を繰り返すことで
    前記定数を生成することを特徴とするデータ処理方法。
  17. 【請求項17】 請求項16記載の方法において、 前記即値ビット列を所定のパターンで繰り返すためのビ
    ット列は、繰り返しパターン自体を表すことを特徴とす
    るデータ処理方法。
  18. 【請求項18】 請求項16記載の方法において、 前記即値ビット列を所定のパターンで繰り返すためのビ
    ット列は、繰り返しパターンを格納するレジスタの番号
    を表すことを特徴とするデータ処理方法。
  19. 【請求項19】 請求項16記載の方法において、 前記即値ビット列を所定のパターンで繰り返すためのビ
    ット列は、前記命令のフォーマットにおいて前記即値デ
    ータフィールドと異なる領域に格納されていることを特
    徴とするデータ処理方法。
  20. 【請求項20】 請求項16記載の方法において、 前記即値ビット列を所定のパターンで繰り返すためのビ
    ット列は、前記命令のフォーマットにおいて前記即値デ
    ータフィールド内に格納されていることを特徴とするデ
    ータ処理方法。
  21. 【請求項21】 請求項11〜19のいずれかに記載の
    方法において、 前記即値ビット列として符号化されたビット列を与え、 符号化された即値ビット列を復号化して前記定数を生成
    することを特徴とするデータ処理方法。
  22. 【請求項22】 即値データフィールドに格納された即
    値ビット列から、そのビット列よりも長いデータ語長分
    の定数を生成し、生成された定数を用いて演算を実行す
    る方法であって、 命令として、即値ビット列を所定量だけシフトさせるた
    めのビット列及びオペランド並びにオペコードを含む命
    令を与え、 前記即値ビット列を所定量だけシフトさせるためのビッ
    ト列にしたがって前記即値ビット列を左にシフトさせて
    前記定数を生成し、 生成された前記定数と前記オペランド並びに前記オペコ
    ードを用いて演算を実行することを特徴とするデータ処
    理方法。
  23. 【請求項23】 即値データフィールドに格納された即
    値ビット列から、そのビット列よりも長いデータ語長分
    の定数を生成し、生成された定数を用いて演算を実行す
    る方法であって、 命令として、即値ビット列を所定のパターンで繰り返す
    ためのビット列及びオペランド並びにオペコードを含む
    命令を与え、 前記即値ビット列を所定のパターンで繰り返すためのビ
    ット列にしたがって前記即値ビット列を繰り返して前記
    定数を生成し、 生成された前記定数と前記オペランド並びに前記オペコ
    ードを用いて演算を実行することを特徴とするデータ処
    理方法。
JP2000255697A 2000-08-25 2000-08-25 データ処理装置及び方法 Pending JP2002073325A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000255697A JP2002073325A (ja) 2000-08-25 2000-08-25 データ処理装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000255697A JP2002073325A (ja) 2000-08-25 2000-08-25 データ処理装置及び方法

Publications (1)

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

Family

ID=18744431

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000255697A Pending JP2002073325A (ja) 2000-08-25 2000-08-25 データ処理装置及び方法

Country Status (1)

Country Link
JP (1) JP2002073325A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005174299A (ja) * 2003-12-09 2005-06-30 Arm Ltd Simd処理における定数の生成
JP2006311901A (ja) * 2005-05-06 2006-11-16 Newgin Corp 遊技機の電飾装置
JP2007048317A (ja) * 2002-06-28 2007-02-22 Renesas Technology Corp データ処理装置
JP2007514227A (ja) * 2003-12-09 2007-05-31 アーム・リミテッド レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法
JP2007535020A (ja) * 2003-12-09 2007-11-29 アーム・リミテッド レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法
JP2008513880A (ja) * 2004-09-17 2008-05-01 フリースケール セミコンダクター インコーポレイテッド 命令における即値を指定するための方法
JP2019530093A (ja) * 2016-09-30 2019-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 10進ロード即値命令

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007048317A (ja) * 2002-06-28 2007-02-22 Renesas Technology Corp データ処理装置
JP4498338B2 (ja) * 2002-06-28 2010-07-07 株式会社ルネサステクノロジ データ処理装置
US7689811B2 (en) 2003-12-09 2010-03-30 Arm Limited Method and apparatus for constant generation in SIMD processing
JP2007514227A (ja) * 2003-12-09 2007-05-31 アーム・リミテッド レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法
JP2007535020A (ja) * 2003-12-09 2007-11-29 アーム・リミテッド レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法
JP2005174299A (ja) * 2003-12-09 2005-06-30 Arm Ltd Simd処理における定数の生成
JP2011048860A (ja) * 2003-12-09 2011-03-10 Arm Ltd Simd処理における定数の生成
JP4689622B2 (ja) * 2003-12-09 2011-05-25 アーム・リミテッド レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法
JP4689621B2 (ja) * 2003-12-09 2011-05-25 アーム・リミテッド レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法
JP4708761B2 (ja) * 2003-12-09 2011-06-22 アーム・リミテッド Simd処理における定数の生成
JP2008513880A (ja) * 2004-09-17 2008-05-01 フリースケール セミコンダクター インコーポレイテッド 命令における即値を指定するための方法
JP2006311901A (ja) * 2005-05-06 2006-11-16 Newgin Corp 遊技機の電飾装置
JP4688562B2 (ja) * 2005-05-06 2011-05-25 株式会社ニューギン 遊技機の電飾装置
JP2019530093A (ja) * 2016-09-30 2019-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 10進ロード即値命令
US10990390B2 (en) 2016-09-30 2021-04-27 International Business Machines Corporation Decimal load immediate instruction

Similar Documents

Publication Publication Date Title
JP5646737B2 (ja) 条件付き比較命令
TWI531970B (zh) 在資料處理裝置中的位址產生
JP2009026106A (ja) 命令コード圧縮方法と命令フェッチ回路
US9965275B2 (en) Element size increasing instruction
JP2005332361A (ja) プログラム命令圧縮装置および方法
JP5607832B2 (ja) 汎用論理演算の方法および装置
TWI553553B (zh) 用於產生迴圈對齊計數或迴圈對齊遮罩的系統、設備與方法
US7814302B2 (en) Address calculation instruction within data processing systems
US20230325189A1 (en) Forming Constant Extensions in the Same Execute Packet in a VLIW Processor
JP4686435B2 (ja) 演算装置
JP2002073325A (ja) データ処理装置及び方法
JP2007122626A (ja) マイクロプロセッサ
CN110914801B (zh) 在数据处理设备中的向量交叉
WO2010067522A1 (ja) 演算ユニット、プロセッサ及び並列演算方法
JP5732139B2 (ja) データ要素の条件付き選択
JP5437878B2 (ja) 情報処理装置
JP2020126303A (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
JP4645369B2 (ja) Cpu
JP2004302647A (ja) ベクトルプロセッサおよびレジスタのアドレス指定方法
JP5025521B2 (ja) 半導体装置
JP2021057009A (ja) 命令長デコーダシステムおよび方法
WO2011086808A1 (ja) 情報処理装置
KR20070022239A (ko) 비대칭 듀얼 경로 프로세싱용 장치 및 방법
JP2001184227A (ja) シミュレーション装置
JPH02140832A (ja) 並列処理装置