JPH1063503A - 演算処理装置及び演算処理方法 - Google Patents

演算処理装置及び演算処理方法

Info

Publication number
JPH1063503A
JPH1063503A JP8234741A JP23474196A JPH1063503A JP H1063503 A JPH1063503 A JP H1063503A JP 8234741 A JP8234741 A JP 8234741A JP 23474196 A JP23474196 A JP 23474196A JP H1063503 A JPH1063503 A JP H1063503A
Authority
JP
Japan
Prior art keywords
data
bit width
result
data storage
storage means
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
JP8234741A
Other languages
English (en)
Other versions
JP2885197B2 (ja
Inventor
Hideo Mochizuki
英生 望月
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP8234741A priority Critical patent/JP2885197B2/ja
Priority to US08/910,027 priority patent/US5854919A/en
Publication of JPH1063503A publication Critical patent/JPH1063503A/ja
Application granted granted Critical
Publication of JP2885197B2 publication Critical patent/JP2885197B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions

Abstract

(57)【要約】 【課題】 記憶装置のビット幅より大きいビット幅を持
つ演算結果を生成する演算を専用一時記憶装置を使用す
る特殊な処理を行うことなく実行し、制御回路の複雑化
を抑えた高速動作可能な演算処理装置及び演算処理方法
を提供する。 【解決手段】 演算に必要なデータ及び演算結果を格納
する記憶装置101、演算データを用いて演算処理を行
う演算装置104、演算結果が記憶装置のビット幅より
大きいビット幅の場合に、演算結果のうち記憶装置のビ
ット幅以下のデータ部分を選択して記憶装置に格納する
選択装置105を備え、演算結果が記憶装置のビット幅
より大きいビット幅の場合に、同じ演算データによる同
じ演算処理を繰り返して演算結果と同じ演算結果を生成
し、複数の演算結果のうち互いに異なるデータ部分であ
って記憶装置のビット幅以下のデータ部分を、複数の演
算結果からそれぞれ選択して格納する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、演算処理装置およ
びその演算処理方法に関し、特にデータ記憶装置のビッ
ト幅(バス幅)を越えるビット幅の演算結果を生成する
演算処理を複雑で特殊な処理を行うことなく可能とする
演算処理装置およびその演算処理方法に関する。
【0002】
【従来の技術】従来、演算処理装置における記憶装置の
ビット幅より大きいビット幅の演算結果を生成する演算
処理を行い、その演算結果を記憶装置に記憶する方法と
しては、演算装置の出力を一時的に専用の一時記憶装置
に記録し、その後順次記憶装置に転送する方法が広く知
られている。
【0003】図8は上述した方法を適用した従来の演算
処理装置の構成を示すブロック図である。図9は図8に
示す演算処理装置のパイプライン動作図である。図示の
ように、この演算処理装置は、演算データを記憶する記
憶装置801、記憶装置801から読み出した演算に必
要なデータを保持する一時記憶装置802,803、一
時記憶装置802,803に保持されたデータを用いて
演算処理を行う演算装置804、セレクタ805、記憶
装置801のビット幅(すなわち、バス幅)を越える分
の演算結果を保持する一時記憶装置806を備えて構成
される。
【0004】上記演算処理装置において、以下に示すよ
うな演算処理を行う場合について説明する。
【0005】 : op1 rl, r2, r3 op2 r3, r4, r5, r6 op3 r7, r8 : ここで、”opl”及び”op3”は記憶装置のビット
幅以下のビット幅を持つ演算結果を生成する演算命
令、”op2”は記憶装置のビット幅より大きいビット
幅を持つ演算結果を生成する演算命令を示している。
【0006】図9のパイプライン動作において、サイク
ル(1)で、演算処理装置は、まず演算命令”opl”
に必要なデータを記憶装置801より読み出し、一時記
憶装置802、803に保持する。次のサイクル(2)
で、一時記憶装置802、803に保持されているデー
タを用いて演算命令”opl”による演算を行い、演算
結果を記憶装置801に書き込む。同時に、演算命令”
op2”に必要なデータを記憶装置801より読み出
し、一時記憶装置802、803に保持する。
【0007】サイクル(3)で、一時記憶装置802、
803に保持されているデータを用いて演算命令”op
2”による演算を行う。ここで、演算命令”op2”は
記憶装置801の幅以上の演算結果を生成するため、演
算結果の一部を記憶装置801に書き込み、演算結果の
残りを一時記憶装置806に書き込み、同時に、演算命
令op3に必要なデータを記憶装置801より読み出
し、一時記憶装置802、803に保持する。
【0008】サイクル(4)で、一時記憶装置806に
保持されている演算命令”op2”の演算結果の残りを
記憶装置801に書き込む。演算命令”op3”による
演算を行っても記憶装置801への書き込みが行えない
ため、演算命令”op3”は保留される。サイクル
(5)で、一時記憶装置802、803に保持されてい
るデータを用いて演算命令”op3”による演算を行
い、演算結果を記憶装置801に書き込む。
【0009】
【発明が解決しようとする課題】上述した従来の演算処
理装置及び演算処理方法には、以下のような問題点があ
った。
【0010】第1に、記憶装置のビット幅より大きいビ
ット幅を持つ演算結果を記憶装置に書き込む際、記憶装
置のビット幅を越える分の演算結果の保持のためだけに
使用する専用の一時記憶装置が必要であり、回路の小規
模化を損なうという問題があった。その理由は、従来の
演算処理装置においては処理のビット幅が固定されてお
り、一度に記憶装置に書き込むデータのビット幅もそれ
によって制限されるためである。
【0011】第2に、専用の一時記憶装置に保持された
前サイクルの演算結果を記憶装置に書き込むために、次
の演算実行を保留する必要があるため、規則的な演算処
理動作の中に不規則な制御が必要な動作が現れるため、
制御が複雑になるという問題があった。
【0012】本発明の目的は、記憶装置のビット幅より
大きいビット幅を持つ演算結果を生成する演算を専用の
一時記憶装置を使用することなく処理することができ、
これにより回路規模を抑えることのできる演算処理装置
及び演算処理方法を提供することにある。
【0013】また、本発明の他の目的は、記憶装置のビ
ット幅より大きいビット幅を持つ演算を特殊な処理を行
うことなく実行することにより、制御回路の複雑化を抑
えた高速動作可能な演算処理装置及び演算処理方法を提
供することにある。
【0014】
【課題を解決するための手段】上記目的を達成する本発
明の演算処理装置は、演算に必要なデータ及び演算結果
を格納する演算データ記憶手段と、前記演算データ記憶
手段から読み出した演算データを用いて演算処理を行う
演算実行手段と、前記演算実行手段による演算結果が前
記演算データ記憶手段のビット幅より大きいビット幅の
場合に、前記演算結果のうち前記演算データ記憶手段の
ビット幅以下のデータ部分であって後の演算に必要なデ
ータ部分を選択して前記演算データ記憶手段に格納する
選択手段とを備えたことを特徴とする。
【0015】請求項2の本発明の演算処理装置では、演
算実行手段によって実行され、前記演算データ記憶手段
のビット幅より大きいビット幅の演算結果を生成し、か
つ演算結果のうち前記演算データ記憶手段に格納すべき
データとして前記演算データ記憶手段のビット幅以下の
データ部分であって後の演算に必要なデータ部分を指定
する演算命令群を有し、選択手段は、前記演算結果のう
ち前記演算命令群で指定されるデータ部分を選択するこ
とを特徴とする。
【0016】請求項3の本発明の演算処理装置では、演
算に必要なデータ及び演算結果を格納する演算データ記
憶手段と、前記演算データ記憶手段から読み出した演算
データを用いて演算処理を行う演算実行手段と、前記演
算実行手段による演算結果が前記演算データ記憶手段の
ビット幅より大きいビット幅の場合に、前記演算結果の
うち前記演算データ記憶手段のビット幅以下のデータ部
分を選択して前記演算データ記憶手段に格納する選択手
段とを備え、前記演算実行手段では、演算結果が前記演
算データ記憶手段のビット幅より大きいビット幅の場合
に、同じ演算データによる同じ演算処理を繰り返して前
記演算結果と同じ演算結果を生成し、前記選択手段で
は、複数の前記演算結果のうち互いに異なるデータ部分
であって前記前記演算データ記憶手段のビット幅以下の
データ部分を、複数の前記演算結果からそれぞれ選択し
て前記演算データ記憶手段に格納することを特徴とす
る。
【0017】請求項4の本発明の演算処理装置では、前
記演算実行手段によって実行され、前記演算データ記憶
手段のビット幅より大きいビット幅の演算結果を生成
し、かつ演算結果のうち前記演算データ記憶手段に格納
すべきデータとして前記演算データ記憶手段のビット幅
以下のデータ部分を指定する第1の演算命令と前記第1
の演算命令と同じ演算データによる同じ演算処理を繰り
返して前記演算結果と同じ演算結果を生成し、かつ演算
結果のうち前記第1の演算命令によって指定されないデ
ータ部分を前記演算データ記憶手段に格納すべきデータ
として指定する第2の演算命令を含む演算命令群を有
し、前記選択手段は、前記演算結果のうち前記第1の演
算命令と前記第2の演算命令によって指定されるデータ
部分を選択してそれぞれ前記演算データ記憶手段に格納
することを特徴とする。
【0018】請求項5の本発明は、演算データ記憶手段
に格納された演算データの演算を行うと共に、該演算に
よる演算結果を前記演算データ記憶手段に格納する演算
処理方法において、前記演算結果が前記演算データ記憶
手段のビット幅より大きいビット幅の場合に、前記演算
結果のうち前記演算データ記憶手段のビット幅以下のデ
ータ部分であって後の演算に必要とするデータ部分を選
択して前記演算データ記憶手段に格納することを特徴と
する。
【0019】請求項6の本発明は、演算データ記憶手段
に格納された演算データの演算を行うと共に、該演算に
よる演算結果を演算データ記憶手段に格納する演算処理
方法において、演算結果が前記演算データ記憶手段のビ
ット幅より大きいビット幅の場合に、同じ演算データに
よる同じ演算処理を繰り返して前記演算結果と同じ演算
結果を生成し、複数の前記演算結果のうち互いに異なる
データ部分であって前記前記演算データ記憶手段のビッ
ト幅以下のデータ部分を、複数の前記演算結果からそれ
ぞれ選択して前記演算データ記憶手段に格納することを
特徴とする。
【0020】請求項7の本発明の演算処理方法は、前記
演算データ記憶手段のビット幅より大きいビット幅の演
算結果を生成し、かつ演算結果のうち前記演算データ記
憶手段に格納すべきデータとして前記演算データ記憶手
段のビット幅以下のデータ部分を指定する第1の演算ス
テップと、前記第1の演算ステップと同じ演算データに
よる同じ演算処理を繰り返して前記演算結果と同じ演算
結果を生成し、かつ演算結果のうち前記第1の演算ステ
ップによって指定されないデータ部分を前記演算データ
記憶手段に格納すべきデータとして指定する第2の演算
ステップと、前記演算結果のうち前記第1の演算命令と
前記第2の演算命令によって指定されるデータ部分を選
択してそれぞれ前記演算データ記憶手段に格納するステ
ップとを備える。
【0021】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。図1は本発明の実施
の形態による演算処理装置の構成を示すブロック図であ
る。図1において、この演算処理装置は、演算に必要な
データ及び演算結果を格納する記憶装置101、記憶装
置101から読み出した演算に必要なデータを保持する
一時記憶装置102、103、一時記憶装置102,1
03に保持されたデータを用いて演算処理を行う演算装
置104、演算結果が記憶装置101のビット幅(バス
幅)より大きいビット幅の場合にその演算結果のうち演
算命令によって指定されるデータを選択する選択装置1
05を備えて構成され、かつ演算結果が記憶装置101
のビット幅より大きいビット幅を持つ時演算結果のうち
記憶すべきデータを指定する演算命令群を有している。
【0022】上記のように構成される演算処理装置にお
いて、以下に示すように、記憶装置101のビット幅よ
り大きいビット幅を持つ演算結果を生成する演算を行
い、その演算結果の一部のみを後の演算で使用する第1
の演算処理を実行する場合について説明する。
【0023】 : op1 r1, r2, r3 op2a r3, r4, r5 op3 r7, r8 : ここで、”op2a”は本発明による命令群に属する演
算命令であり、記憶装置101のビット幅より大きいビ
ット幅を持つ演算結果を生成し、その一部を記憶装置1
01に書き込む演算命令、”opl”及び”op3”は
記憶装置101の幅以下のビット幅を持つ演算結果を生
成する演算命令である。例えば、記憶装置101のビッ
ト幅が32ビットで、演算命令”op2a”による演算
で生成される演算結果が64ビットである場合、演算命
令”op2a”は演算結果の一部である上位又は下位の
32ビットを記憶装置101に書き込む。
【0024】上述の演算処理では、演算命令”op2
a”によって記憶装置101のビット幅より大きいビッ
ト幅を持つ演算結果を生成する演算を行い、その演算結
果の一部(記憶装置101のビット幅以下のデータ)の
みを記憶装置101に記憶して後の演算で使用する演算
例を示している。
【0025】図3に演算処理装置によって上記演算処理
を実行する場合のパイプライン動作図を示す。図3に示
すように、本発明の演算処理装置は、まず最初のサイク
ル(1)で、演算命令”opl”に必要なデータを記憶
装置101より読み出し、一時記憶装置102、103
に保持する。
【0026】次のサイクル(2)で、一時記憶装置10
2、103に保持されているデータを用いて演算装置1
04により演算命令”opl”による演算を実行し、そ
の演算結果を記憶装置101に書き込む。そして、現サ
イクルにおいて、同時に、演算命令”op2a”に必要
なデータを記憶装置101より読み出し、一時記憶装置
102、103に保持する。
【0027】さらに次のサイクル(3)で、一時記憶装
置102、103に保持されているデータを用いて演算
命令”op2a”による演算を行い、演算により得られ
た記憶装置101のビット幅より大きいビット幅の演算
結果の一部のデータ(例えば、上位の所定ビット)を選
択装置105によって選択し記憶装置101に書き込
む。同時に、演算命令”op3”に必要なデータを記憶
装置101より読み出し、一時記憶装置102、103
に保持する。
【0028】サイクル(4)で、一時記憶装置102、
103に保持されているデータを用いて演算命令”op
3”による演算を実行し、その演算結果を記憶装置10
1に書き込む。
【0029】このように、記憶装置101のビット幅よ
り大きいビット幅を持つ演算結果を生成する演算を行
い、その演算結果の一部のみを後の演算で使用する演算
においては、本発明の命令群に属する記憶装置101の
幅より大きいビット幅を持つ演算結果を生成し、その演
算結果の一部を記憶装置102,103に書き込む演算
命令”op2a”を用いることで、記憶装置のビット幅
を越える分のデータのために記憶装置への書き込みのた
めの特殊な処理が不要となり、次の演算を遅滞なく処理
することができる。また、上記のような演算命令を使用
することで、記憶装置101のビット幅を越える分の演
算結果の保持のためだけに使用する専用の一時記憶装置
を不要としている。
【0030】次に、上記のように構成される演算処理装
置において、以下に示すように、記憶装置101のビッ
ト幅より大きいビット幅を持つ演算結果を生成する演算
を行うと共に、その演算結果の全部を後の演算に使用す
る第2の演算処理の例について説明する。
【0031】 : opl r1, r2, r3 op2a r3, r4, r5 op2b r3, r4, r6 op3 r7, r8 : ここで、”op2b”は本発明の命令群に属する演算命
令であり、記憶装置101のビット幅より大きいビット
幅を持つ演算結果を生成し、その一部を記憶装置に書き
込む演算命令である。この演算命令”op2b”は、演
算命令”op2a”と同一の演算(同一の演算データ)
を行うと共に、演算命令”op2a”において記憶装置
101に書き込まない演算結果の一部を記憶装置101
に書き込む。
【0032】例えば、上述したように、記憶装置101
のビット幅が32ビットで、演算命令”op2a”によ
る演算で生成される演算結果が64ビットである場合、
演算命令”op2a”がその演算結果の一部である上位
の32ビットを記憶装置101に書き込む演算命令であ
れば、演算命令”op2b”は同じデータによる演算に
より64ビットの演算結果を生成し、その演算結果の一
部である下位の32ビットを記憶装置101に書き込む
演算命令となる。
【0033】図4に演算処理装置によって上記演算処理
を実行する場合のパイプライン動作図を示す。図4に示
すように、本発明の演算処理装置は、まず最初のサイク
ル(1)で、演算命令”opl”に必要なデータを記憶
装置101より読み出し、一時記憶装置102、103
に保持する。
【0034】次のサイクル(2)で、一時記憶装置10
2、103に保持されているデータを用いて演算命令”
opl”による演算を行い、演算結果を記憶装置101
に書き込む。同時に、演算命令”op2a”に必要なデ
ータを記憶装置101より読み出し、一時記憶装置10
2、103に保持する。
【0035】次のサイクル(3)で、一時記憶装置10
2、103に保持されているデータを用いて演算命令”
op2a”による演算を行い、演算により得られた記憶
装置101のビット幅より大きいビット幅の演算結果の
一部(例えば、上位の所定ビット)を記憶装置101に
書き込む。そして、同時に、演算命令”op2b”に必
要なデータを記憶装置101より読み出し、一時記憶装
置102、103に保持する。
【0036】次のサイクル(4)で、一時記憶装置10
2、103に保持されているデータを用いて演算命令”
op2b”による演算を行い、演算により得られた記憶
装置101のビット幅より大きいビット幅の演算結果の
一部(例えば、下位の所定ビット)を記憶装置101に
書き込む。同時に、演算命令”op3”に必要なデータ
を記憶装置101より読み出し、一時記憶装置102、
103に保持する。
【0037】次のサイクル(5)で、一時記憶装置10
2、103に保持されているデータを用いて演算命令”
op3”による演算を実行し、その演算結果を記憶装置
101に書き込む。
【0038】このように、記憶装置101のビット幅よ
り大きいビット幅を持つ演算結果を生成する演算を行
い、その演算結果の全部を後の演算に使用する演算にお
いては、本発明の命令群に属する記憶装置101のビッ
ト幅より大きいビット幅を持つ演算結果を生成しその一
部を記憶装置に書き込む演算命令”op2a”と、演算
命令”op2a”と同じ演算を行うと共に、演算命令”
op2a”によって記憶装置101に書き込まれない部
分を記憶装置101に書き込む演算命令”op2b”を
用いることで、一時記憶装置に保持された記憶装置のビ
ット幅を越える分のデータのために記憶装置への書き込
みのための特殊な処理が不要となり、次の演算を遅滞な
く処理することができる。
【0039】また、上記のような演算命令を使用するこ
とで、記憶装置101のビット幅を越える分の演算結果
の保持のためだけに使用する専用の一時記憶装置を不要
としている。
【0040】次に、本発明の実施例について図2及び図
5〜図7を用いて説明する。図2は本発明を適用した実
施例による5段パイプライン構造のRISC型のマイク
ロプロセッサの演算実行ユニットの構成ブロック図であ
る。ここで、201は32ビット×32本の記憶装置で
ある演算に必要なデータ及び演算結果を格納するレジス
タ・ファイル、202及び203はテンポラリ・レジス
タ、204は算術論理演算器、205は算術論理演算器
204のテンポラリ・レジスタ、206は積和演算器、
207は積和演算器206の中間レジスタ、208はデ
ータ・セレクタ、209はテンポラリ・レジスタであ
る。
【0041】第7図に上記マイクロプロセッサの命令セ
ットの一覧を示す。図7に示す機械語命令セットのう
ち、演算命令“mult3”、演算命令“mact3”
が本発明の実施例による命令セットである。
【0042】演算命令“mult3”を用いた演算“m
ult3 r3,r4,r5”においては、”r3”
と”r4”の32ビット・データを乗算し、その乗算結
果である64ビット・データのうち、上位32ビット
を”r5”に書き込むといった演算処理を行う。
【0043】また、演算命令“mact3”を用いた演
算“mact3 r3,r4,r5”においては、”r
3”と”r4”の32ビット・データを乗算し、その乗
算結果である64ビット・データのうち、上位32ビッ
トと”r5”の内容を加算し加算結果を”r5”に書き
込むといった演算処理を行う。
【0044】この演算命令“mult3”、演算命令
“mact3”は、上述した演算命令”op2a”の種
類に含まれる具体的な演算命令である。
【0045】本実施例の動作について上記演算命令“m
ult3”を使用した以下に示す命令列の実行を例に説
明する。この命令列での演算処理は、実施の形態で説明
した記憶装置101のビット幅より大きいビット幅を持
つ演算結果を生成する演算を行い、その演算結果の一部
のみを後の演算で使用する第1の演算処理に対応してい
る。
【0046】 : xor rl, r2 mult3 r3, r4, r5 add r7,r8 : 図5は、上記のような命令列を本実施例のマイクロプロ
セッサによって実行する場合のパイプライン動作図であ
る。
【0047】マイクロプロセッサは、最初のステップ
(1)でまず機械語命令xorを読み込む。次のサイク
ル(2)で、機械語命令mult3を読み込むと同時
に、演算命令xorに必要なデータをレジスタ・ファイ
ル201より読み出し、テンポラリ・レジスタ202、
203に保持する。
【0048】次のサイクル(3)で、機械語命令add
を読み込む。同時にテンポラリ・レジスタ202、20
3に保持されているデータを用いて算術論理演算器20
4で演算命令xorの演算を行い、その演算結果をテン
ポラリ・レジスタ205に保持する。同時に、演算命令
mult3に必要なデータをレジスタ・ファイル201
より読み出し、テンポラリ・レジスタ202、203に
保持する。
【0049】次のサイクル(4)で、テンポラリ・レジ
スタ205に保持されている演算命令xorの演算結果
をテンポラリ・レジスタ209に書き込む。同時にテン
ポラリ・レジスタ202、203に保持されているデー
タを用いて積和演算器204で演算命令mult3の演
算を開始し、その演算の途中結果を中間レジスタ207
に保持する。同時に、演算命令addに必要なデータを
レジスタ・ファイル201より読み出し、かつテンポラ
リ・レジスタ202、203に保持する。
【0050】次のサイクル(5)で、テンポラリ・レジ
スタ209に保持されている演算命令xorの演算結果
をレジスタ・ファイル201に書き込む。同時に中間レ
ジスタ207に保持されているデータを用いて積和演算
器206で演算命令mult3による後半の演算を行
い、その演算結果の上位32ビットをテンポラリ・レジ
スタ309に保持する。同時に、テンポラリ・レジスタ
202、203に保持されているデータを用いて算術論
理演算器204で演算命令addによる演算を行い、そ
の演算結果をテンポラリ・レジスタ205に保持する。
【0051】次のサイクル(6)で、テンポラリ・レジ
スタ209に保持されている演算命令mult3による
演算結果をレジスタ・ファイル201に書き込む。同時
にテンポラリ・レジスタ206に保持されている演算命
令addの演算結果をテンポラリ・レジスタ209に書
き込む。次のサイクル(7)で、テンポラリ・レジスタ
209に保持されている演算命令addによる演算結果
をレジスタ・ファイル201に書き込む。
【0052】このように、本実施例のマイクロプロセッ
サは、パイプライン動作を乱す複雑な制御を行うことな
く、32ビット・データどうしの乗算を行い、必要な上
位32ビットの演算結果を得ることが可能である。
【0053】また、マイクロプロセッサは、その命令セ
ットに機械語命令である演算命令“mult13”を持
つ。この演算命令“mult13”を用いた演算”mu
lt13 r3,r4,r5”は、”r3”と”r4”
の32ビット・データを乗算し、その乗算結果の64ビ
ット・データのうち、下位32ビットを”r5”に書き
込むといった演算処理を行う。この演算命令“mult
13”は、上述した演算命令”op2b”の種類に含ま
れる具体的な演算命令である。すなわち、この演算命令
“mult13”では、演算命令“mult3”と同じ
演算を行い、かつ演算命令“mult3”が記憶装置に
書き込まない演算結果の一部を記憶装置に書き込む。
【0054】次いで、本実施例のマイクロプロセッサの
動作について上記演算命令“mult3”と演算命令
“mult13”を使用した以下に示す命令列の実行を
例に説明する。この命令列での演算処理は、実施の形態
で説明した記憶装置のビット幅より大きいビット幅を持
つ演算結果を生成する演算を行い、その演算結果の全部
を後の演算で使用する第2の演算処理に対応している。
【0055】 : xor r1, r2 mult3 r3, r4, r5 mult13 r3, r4, r6 add r7, r8 : 図6は、上述した命令列のパイプライン動作図である。
マイクロプロセッサは、まずサイクル(1)で演算命
令”xor”を読み込む。
【0056】次のサイクル(2)で、演算命令”mul
t3”を読み込む。同時に演算命令xorに必要なデー
タをレジスタ・ファイル201より読み出し、テンポラ
リ・レジスタ202、203に保持する。
【0057】次のサイクル(3)で、演算命令”mul
t13”を読み込む。同時にテンポラリ・レジスタ20
2、203に保持されているデータを用いて算術論理演
算器204で演算命令”xor”による演算を行い、演
算結果をテンポラリ・レジスタ205に保持する。同時
に、演算命令”mult3”に必要なデータをレジスタ
・ファイル201より読み出し、テンポラリ・レジスタ
202、203に保持する。
【0058】次のサイクル(4)で、演算命令”ad
d”を読み込む。同時にテンポラリ・レジスタ205に
保持されている演算命令”xor”の演算結果をテンポ
ラリ・レジスタ209に書き込む。同時にテンポラリ・
レジスタ202、203に保持されているデータを用い
て積和演算器206で演算命令”mult3”による演
算を開始し、演算の途中結果を中間レジスタ207に保
持する。同時に、演算命令”mult13”に必要なデ
ータをレジスタ・ファイル201より読み出し、テンポ
ラリ・レジスタ202、203に保持する。
【0059】次のサイクル(5)で、テンポラリ・レジ
スタ209に保持されている演算命令”xor”の演算
結果をレジスタ・ファイル201に書き込む。同時に中
間レジスタ207に保持されているデータを用いて積和
演算器206で演算命令”mult3”の後半の演算を
行い、その演算結果の上位32ビットをテンポラリ・レ
ジスタ209に保持する。同時に、テンポラリ・レジス
タ202、203に保持されているデータを用いて積和
演算器206で演算命令”mult13”による演算を
開始し、演算の途中結果を中間レジスタ207に保持す
る。同時に、演算命令”add”に必要なデータをレジ
スタ・ファイル201より読み出し、テンポラリ・レジ
スタ202、203に保持する。
【0060】次のサイクル(6)で、テンポラリ・レジ
スタ209に保持されている演算命令”mult3”の
演算結果をレジスタ・ファイル201に書き込む。同時
に中間レジスタ207に保持されているデータを用いて
積和演算器206で演算命令”mult13”による後
半の演算を行い、演算結果の上位32ビットをテンポラ
リ・レジスタ209に保持する。同時に、テンポラリ・
レジスタ202、203に保持されているデータを用い
て算術論理演算器204で演算命令”add”の演算を
行い、かつその演算結果をテンポラリ・レジスタ206
に保持する。
【0061】次のサイクル(7)で、テンポラリ・レジ
スタ209に保持されている演算命令”mult13”
の演算結果をレジスタ・ファイル201に書き込む。同
時にテンポラリ・レジスタ205に保持されている演算
命令”add”の演算結果をテンポラリ・レジスタ20
9に書き込む。
【0062】次のサイクル(8)で、テンポラリ・レジ
スタ209に保持されている演算命令”add”の演算
結果をレジスタ・ファイル201に書き込む。
【0063】このように第2実施例のマイクロプロセッ
サでは、パイプライン動作を乱す複雑な制御を行うこと
なく、32ビット・データどうしの乗算を行うことによ
り、記憶装置であるレジスタ・ファイル201のビット
幅より大きい64ビットの演算結果を得ることができ
る。
【0064】以上好ましい実施例をあげて本発明を説明
したが、本発明は必ずしも上記実施例の内容に限定され
るものではない。
【0065】
【発明の効果】以上説明したように本発明の演算処理装
置及びその演算処理方法によれば、以下に示すような効
果が得られる。
【0066】第1に、記憶装置のビット幅より大きいビ
ット幅を持つ演算結果を生成する演算を行う際、演算結
果の必要な部分のみを記憶装置に選択的に書き込む構成
としたので、記憶装置のビット幅より大きいビット幅を
持つ演算結果を生成する演算で記憶装置のビット幅を越
える分の演算結果を保持するための専用の一時記憶装置
を設ける必要性がなくなる。
【0067】第2に、記憶装置のビット幅より大きいビ
ット幅を持つ演算結果を生成する演算を行う際、必要な
部分の演算結果を記憶装置に選択的に書き込むことによ
り、特殊な処理によってパイプライン動作による演算処
理を乱す事なく必要な演算結果が得られるため、記憶装
置のビット幅より大きいビット幅を持つ演算結果を生成
する演算を行う際でも規則的なパイプライン動作による
処理を維持でき、制御を簡略化することができる。
【0068】第3に、記憶装置のビット幅より大きいビ
ット幅を持つ演算結果の全てを必要とする場合、同じ演
算データによる同じ演算処理を繰り返して同じ演算結果
を生成し、複数の演算結果のうち互いに異なるデータ部
分であって記憶装置のビット幅以下のデータ部分を、複
数の演算結果からそれぞれ選択して記憶装置に格納する
ことにより、記憶装置のビット幅を越える分の演算結果
を保持するためだけに使用する専用の一時記憶装置を設
ける必要がないと共に、特殊な処理によってパイプライ
ン動作による演算処理を乱すことなく記憶装置のビット
幅より大きいビット幅の演算結果を得ることが可能とな
る。
【図面の簡単な説明】
【図1】 本発明の実施の形態による演算処理装置の構
成を示すブロック図である。
【図2】 本発明を適用した実施例によるマイクロプロ
セッサの構成を示すブロック図である。
【図3】 本発明の実施の形態の第1の演算処理のパイ
プライン動作図である。
【図4】 本発明の実施の形態の第2の演算処理のパイ
プライン動作図である。
【図5】 本発明の実施例の第1のパイプライン動作図
である。
【図6】 本発明の実施例の第2のパイプライン動作図
である。
【図7】 本発明の実施例が備える命令コードの一覧を
示す図である。
【図8】 従来の演算処理装置の構成を示すブロック図
である。
【図9】 従来例におけるパイプライン動作図である。
【符号の説明】
101 記憶装置 102 ー時記憶装置 103 ー時記憶装置 104 演算装置 105 選択装置 201 レジスタ・ファイル 202 テンポラリ・レジスタ 203 テンポラリ・レジスタ 204 算術論理演算器 205 テンポラリ・レジスタ 206 積和演算器 207 中間レジスタ 208 データ・セレクタ 209 テンポラリ・レジスタ

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 演算に必要なデータ及び演算結果を格納
    する演算データ記憶手段と、 前記演算データ記憶手段から読み出した演算データを用
    いて演算処理を行う演算実行手段と、 前記演算実行手段による演算結果が前記演算データ記憶
    手段のビット幅より大きいビット幅の場合に、前記演算
    結果のうち前記演算データ記憶手段のビット幅以下のデ
    ータ部分であって後の演算に必要なデータ部分を選択し
    て前記演算データ記憶手段に格納する選択手段とを備え
    たことを特徴とする演算処理装置。
  2. 【請求項2】 前記演算実行手段によって実行され、前
    記演算データ記憶手段のビット幅より大きいビット幅の
    演算結果を生成し、かつ演算結果のうち前記演算データ
    記憶手段に格納すべきデータとして前記演算データ記憶
    手段のビット幅以下のデータ部分であって後の演算に必
    要なデータ部分を指定する演算命令群を有し、 前記選択手段は、前記演算結果のうち前記演算命令群で
    指定されるデータ部分を選択することを特徴とする請求
    項1に記載の演算処理装置。
  3. 【請求項3】 演算に必要なデータ及び演算結果を格納
    する演算データ記憶手段と、 前記演算データ記憶手段から読み出した演算データを用
    いて演算処理を行う演算実行手段と、 前記演算実行手段による演算結果が前記演算データ記憶
    手段のビット幅より大きいビット幅の場合に、前記演算
    結果のうち前記演算データ記憶手段のビット幅以下のデ
    ータ部分を選択して前記演算データ記憶手段に格納する
    選択手段とを備え、 前記演算実行手段では、演算結果が前記演算データ記憶
    手段のビット幅より大きいビット幅の場合に、同じ演算
    データによる同じ演算処理を繰り返して前記演算結果と
    同じ演算結果を生成し、 前記選択手段では、複数の前記演算結果のうち互いに異
    なるデータ部分であって前記前記演算データ記憶手段の
    ビット幅以下のデータ部分を、複数の前記演算結果から
    それぞれ選択して前記演算データ記憶手段に格納するこ
    とを特徴とする演算処理装置。
  4. 【請求項4】 前記演算実行手段によって実行され、前
    記演算データ記憶手段のビット幅より大きいビット幅の
    演算結果を生成し、かつ演算結果のうち前記演算データ
    記憶手段に格納すべきデータとして前記演算データ記憶
    手段のビット幅以下のデータ部分を指定する第1の演算
    命令と前記第1の演算命令と同じ演算データによる同じ
    演算処理を繰り返して前記演算結果と同じ演算結果を生
    成し、かつ演算結果のうち前記第1の演算命令によって
    指定されないデータ部分を前記演算データ記憶手段に格
    納すべきデータとして指定する第2の演算命令を含む演
    算命令群を有し、 前記選択手段は、前記演算結果のうち前記第1の演算命
    令と前記第2の演算命令によって指定されるデータ部分
    を選択してそれぞれ前記演算データ記憶手段に格納する
    ことを特徴とする請求項3に記載の演算処理装置。
  5. 【請求項5】 演算データ記憶手段に格納された演算デ
    ータの演算を行うと共に、該演算による演算結果を前記
    演算データ記憶手段に格納する演算処理方法において、 前記演算結果が前記演算データ記憶手段のビット幅より
    大きいビット幅の場合に、前記演算結果のうち前記演算
    データ記憶手段のビット幅以下のデータ部分であって後
    の演算に必要とするデータ部分を選択して前記演算デー
    タ記憶手段に格納することを特徴とする演算処理方法。
  6. 【請求項6】 演算データ記憶手段に格納された演算デ
    ータの演算を行うと共に、該演算による演算結果を前記
    演算データ記憶手段に格納する演算処理方法において、 演算結果が前記演算データ記憶手段のビット幅より大き
    いビット幅の場合に、同じ演算データによる同じ演算処
    理を繰り返して前記演算結果と同じ演算結果を生成し、 複数の前記演算結果のうち互いに異なるデータ部分であ
    って前記前記演算データ記憶手段のビット幅以下のデー
    タ部分を、複数の前記演算結果からそれぞれ選択して前
    記演算データ記憶手段に格納することを特徴とする演算
    処理方法。
  7. 【請求項7】 前記演算データ記憶手段のビット幅より
    大きいビット幅の演算結果を生成し、かつ演算結果のう
    ち前記演算データ記憶手段に格納すべきデータとして前
    記演算データ記憶手段のビット幅以下のデータ部分を指
    定する第1の演算ステップと、 前記第1の演算ステップと同じ演算データによる同じ演
    算処理を繰り返して前記演算結果と同じ演算結果を生成
    し、かつ演算結果のうち前記第1の演算ステップによっ
    て指定されないデータ部分を前記演算データ記憶手段に
    格納すべきデータとして指定する第2の演算ステップ
    と、 前記演算結果のうち前記第1の演算命令と前記第2の演
    算命令によって指定されるデータ部分を選択してそれぞ
    れ前記演算データ記憶手段に格納するステップとを備え
    ることを特徴とする請求項6に記載の演算処理方法。
JP8234741A 1996-08-16 1996-08-16 演算処理装置及び演算処理方法 Expired - Fee Related JP2885197B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8234741A JP2885197B2 (ja) 1996-08-16 1996-08-16 演算処理装置及び演算処理方法
US08/910,027 US5854919A (en) 1996-08-16 1997-08-12 Processor and its operation processing method for processing operation having bit width exceeding data width of bit storage unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8234741A JP2885197B2 (ja) 1996-08-16 1996-08-16 演算処理装置及び演算処理方法

Publications (2)

Publication Number Publication Date
JPH1063503A true JPH1063503A (ja) 1998-03-06
JP2885197B2 JP2885197B2 (ja) 1999-04-19

Family

ID=16975640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8234741A Expired - Fee Related JP2885197B2 (ja) 1996-08-16 1996-08-16 演算処理装置及び演算処理方法

Country Status (2)

Country Link
US (1) US5854919A (ja)
JP (1) JP2885197B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060230198A1 (en) * 2005-03-30 2006-10-12 Kabushiki Kaisha Toshiba Data processing circuit, data processing method and image forming apparatus
US20100199067A1 (en) * 2009-02-02 2010-08-05 International Business Machines Corporation Split Vector Loads and Stores with Stride Separated Words

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55138156A (en) * 1979-04-16 1980-10-28 Hitachi Ltd Information processor
US5168571A (en) * 1990-01-24 1992-12-01 International Business Machines Corporation System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data
JPH04172533A (ja) * 1990-11-07 1992-06-19 Toshiba Corp 電子計算機
US5680632A (en) * 1992-12-24 1997-10-21 Motorola, Inc. Method for providing an extensible register in the first and second data processing systems
US5615402A (en) * 1993-10-18 1997-03-25 Cyrix Corporation Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
US5590352A (en) * 1994-04-26 1996-12-31 Advanced Micro Devices, Inc. Dependency checking and forwarding of variable width operands

Also Published As

Publication number Publication date
JP2885197B2 (ja) 1999-04-19
US5854919A (en) 1998-12-29

Similar Documents

Publication Publication Date Title
US8595280B2 (en) Apparatus and method for performing multiply-accumulate operations
JPS6077265A (ja) ベクトル処理装置
JPH02226420A (ja) 浮動小数点演算実行装置
JPS61107431A (ja) 演算装置
JP3237858B2 (ja) 演算装置
JPH03286332A (ja) デジタルデータ処理装置
JP2885197B2 (ja) 演算処理装置及び演算処理方法
JPH0650512B2 (ja) デ−タ処理装置
US6981130B2 (en) Forwarding the results of operations to dependent instructions more quickly via multiplexers working in parallel
JP2020502669A (ja) ベクトル生成命令
JPH0528431B2 (ja)
JP2812610B2 (ja) パイプライン制御方式
KR100246465B1 (ko) 마이크로프로세서 스택 명령어의 수행사이클을 줄이기 위한 장치 및 그 방법
JP2009059187A (ja) マイクロプロセッサおよびデータ処理方法
JPS60204029A (ja) 信号処理装置
JP2819733B2 (ja) 情報処理装置
JP3825709B2 (ja) パイプライン処理方法及びプロセッサ装置
JP3523407B2 (ja) 情報処理装置
JP3088956B2 (ja) 演算装置
JP3693873B2 (ja) マスクビット数演算装置、ベクトル処理装置、情報処理装置
JPS6162174A (ja) 情報婦理装置
JPS60144874A (ja) ベクトルデ−タ処理装置
JPH0218732B2 (ja)
JP2004303058A (ja) ベクトルプロセッサおよびそのデータ処理方法
JPH0222417B2 (ja)

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080212

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090212

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100212

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20100212

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110212

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110212

Year of fee payment: 12

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110212

Year of fee payment: 12

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20110212

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120212

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20140212

Year of fee payment: 15

LAPS Cancellation because of no payment of annual fees