JP3886870B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP3886870B2 JP3886870B2 JP2002261881A JP2002261881A JP3886870B2 JP 3886870 B2 JP3886870 B2 JP 3886870B2 JP 2002261881 A JP2002261881 A JP 2002261881A JP 2002261881 A JP2002261881 A JP 2002261881A JP 3886870 B2 JP3886870 B2 JP 3886870B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- instruction
- width
- effective
- information
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 32
- 238000001514 detection method Methods 0.000 description 83
- 238000010586 diagram Methods 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 5
- 230000001343 mnemonic effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
【発明の属する技術分野】
この発明は除算命令や剰余命令などの各種演算命令を実行するデータ処理装置に係り、特に演算命令の実行時に被演算データから検出した有効データ幅に応じて命令実行サイクル数を設定し、当該命令実行サイクル数で演算処理を実行するデータ処理装置に関するものである。
【0002】
【従来の技術】
従来のデータ処理装置においては、データサイズ情報を格納するためのサイズフィールドを持つ命令コードを取り扱い、当該命令コードのサイズフィールドSに格納されている被除数データサイズ情報を基に、除算命令および剰余命令の演算処理ループ回数などの命令実行サイクル数を決定し設定する(例えば、特許文献1参照)。
【0003】
【特許文献1】
特開2001−034472
【0004】
【発明が解決しようとする課題】
上記特許文献1に示すように、従来のデータ処理装置では、ソースコードがコンパイルされて当該命令コードによる演算命令が配置される前に、被演算データのデータサイズ(有効データ幅)を、命令コード内に設けた被演算データのサイズ情報フィールドに設定しておく必要があるという課題があった。つまり、被演算データの有効データ幅から導かれる最適な命令実行サイクル数を選択しようとする場合、被演算データごとの有効データ幅を予め決定しておかなければならない。
【0005】
この発明は上記のような課題を解決するためになされたもので、演算命令の実行時に被演算データからその有効データ幅を検出する手段を設けることで、被演算データごとの有効データ幅を予め命令コードに設定しておくことなく、演算命令の実行時に被演算データごとの有効データ幅から導かれる最適な命令実行サイクル数を適宜選択することができるデータ処理装置を得ることを目的とする。
【0006】
【課題を解決するための手段】
この発明に係るデータ処理装置は、演算命令の実行時に、該演算命令で処理すべき被演算データに基づき被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定する制御部と、上記制御部が決定した命令実行サイクル数で上記演算命令を実行する演算部とを備えるものである。
【0007】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態1.
図1はこの発明の実施の形態1によるデータ処理装置の構成を示すブロック図であり、例えば除算処理を実行するハードウェアを示している。図において、命令デコード部1は、処理すべき命令コードを受け取ってデコードし、当該デコード結果を制御ロジック部3に送出する。ここで、命令コードをデコードした結果として得られる情報としては、演算の種類(除算命令、剰余命令など)を特定する情報の他に、被演算データの符号有無を特定するデータタイプ(データタイプ情報)や後述するサイズ上限値Lなどのように命令実行サイクル数を決定する上で使用する、いわゆる命令実行サイクル数を制御する情報(命令コード情報)が挙げられる。また、汎用レジスタファイル2は、複数のレジスタを有するレジスタ群から構成され、演算処理にて取り扱う被演算データが格納される。制御ロジック部(制御部)3は、サイズ情報検出回路6やループ処理終了検出部7を含んで構成され、除算命令及び剰余命令の動作を制御する。
【0008】
ALU(Arithmetic and Logical Unit)部(演算部)4は、2つの被演算データとどの演算を実行すべきかを特定する情報とを取り込んで演算処理を実行するALU9、及び拡張レジスタ11を含む剰余レジスタ10から構成される。シフタ部5は、制御ロジック部3からの制御信号に応じて被除数データのシフトを実行する。なお、図示の例では、制御ロジック部3からシフタ部5に入力される制御信号SF1や制御信号CTSに記号*を付しているが、これは制御ロジック部3とシフタ部5の接続関係を示している。例えば、記号**は制御ロジック部3からシフタ部5に制御信号SF1が直接入力されることを表している。
【0009】
また、サイズ情報検出回路(制御部)6は、除算命令及び剰余命令の実行時に被除数データのサイズ情報(有効データ幅)nを検出し、有効データ幅としてループ処理終了検出部7に出力する。このサイズ情報検出回路6は、例えばプライオリティエンコーダにより構成する。制御ロジック部3内のループ処理終了検出部7は、サイズ情報検出回路6からの被除数データの有効データ幅n及びカウンタ8のカウント値に基づいて除算処理のループの終了時点を検出する。ここで、カウンタ8は、除算処理のループが終了するごとにインクリメントされる。さらに、64ビットの剰余レジスタ10は、ALU9による除算処理の際に生じる演算データを逐次格納し、シフタ部5がシフトさせた被除数データを格納する拡張レジスタ11を有する。
【0010】
図2は図1中のデータ処理装置で扱われる命令フォーマットを示す図であり、例えば除算命令及び剰余命令の命令コードを示している。図において、第1オペコード部OP1及び第2オペコード部OP2は、実行すべき演算命令の種類(例えば、除算命令、剰余命令など)を指定する情報が設定される。また、オペコード部OP1,OP2には、デスティネーションレジスタ指定部R1やソースレジスタ指定部R2で指定したレジスタに格納されるデータのデータタイプ(データタイプ情報)を命令の一部として定義しておく。ここで、データタイプとは、演算対象となるオペランドを符号付き(signed)あるいは符号なし(unsigned)のいずれで取り扱うかを指定する情報である。
【0011】
なお、当該データタイプを指定する情報は、命令コード内のオペコード部以外のビット位置に配置するようにしてもよい。デスティネーションレジスタ指定部R1には、汎用レジスタファイル2内のレジスタ群のうち被除数を格納したレジスタを指定する情報が設定される。また、ソースレジスタ指定部R2には、汎用レジスタファイル2内のレジスタ群のうち除数データを格納したレジスタを指定する情報が設定される。さらに、命令コード中の定数部Cには、従来の技術と異なり除算命令及び剰余命令における被除数データのサイズ情報は設定されない。
【0012】
図3は図1中のデータ処理装置で扱われるデータフォーマットを示す図であり、32ビットのデータフォーマットで上段が符号ビットを有さない場合を示し、下段に符号ビットを有する場合を示している。図において、上段の符号ビットがないデータフォーマットでは、最上位の第0番目のビットからサーチして最初に論理値1が検出されたビット位置を第k番目と定義する。一方、下段図のsgnは符号ビットを示している。この符号ビットsgnを有するデータフォーマットでは、符号ビットsgnを除いた第1番目のビットからサーチして最初に符号ビットの反転が検出されたビット位置を第k番目と定義する。下段の図は、32ビットデータフォーマットの第k番目のビットから第31番目のビットまでに有効なデータを配置した場合を示している。
【0013】
次に動作について説明する。
図4は実施の形態1のデータ処理装置による命令実行サイクル数の設定動作を示すフロー図であり、後述する引き放し法による除算の前処理に相当する。この図に沿って除算命令及び剰余命令における被除数データのサイズ情報(有効データ幅)nの検出処理を説明する。例えば、データ長が32ビットであるデータ処理装置では、nが0<n≦32を満たす整数となる。以下、説明の簡単のために、当該データ処理装置で扱うデータのデータ長を32ビットとする。
【0014】
先ず、命令デコード部1は、ソースコードをコンパイルして生成された命令コードを受け取ると、当該命令コードをデコードする。これにより、ソースコードに記述された命令が当該演算ハードウェアに配置されることとなる。このとき、当該命令コードの第1オペコード部OP1及び第2オペコード部OP2に設定された、命令の種類(例えば、除算命令及び剰余命令など)や、演算対象となるオペランドのデータタイプなどが命令コード情報として取り出される。
【0015】
この命令コード情報であるデコード結果は、命令デコード部1から制御ロジック部3に転送される。制御ロジック部3では、内部のサイズ情報検出回路6に当該デコード結果を入力する。これにより、本実施の形態1のデータ処理装置による除算命令の実行が開始される。
【0016】
次に、制御ロジック部3は、デコード結果内のデスティネーションレジスタ指定部R1に設定された情報に基づいて汎用レジスタファイル2内のレジスタから被除数データを読み出してバスS1に転送すると共に、サイズ情報検出回路6にも転送する。ここまでの処理がステップST1に相当する。
【0017】
サイズ情報検出回路6では、デコード結果の命令コード情報から取り出した被除数データのデータタイプに基づいて被除数データの符号の有無を判定する(ステップST2)。このとき、当該被除数データが符号なしであれば、サイズ情報検出回路6は、図3に示すように、最上位の第0番目のビットからサーチして最初に論理値1が出現するビット位置k(第k番目のビット)を検出する(ステップST3)。ここで、論理値1を有するビットが検出されなかった場合、サイズ情報検出回路6は、当該被除数データの値が0であると判断する。
【0018】
一方、被除数データが符号有りであると、サイズ情報検出回路6は、符号が正か負かいずれの属性であるかを判定する(ステップST4)。ここで、符号が正の場合、つまり、被除数データの第0番目の位置する符号ビットが論理値0であると、サイズ情報検出回路6は、当該符号ビットの反転値(即ち、論理値1)が最初に出現するビット位置kを検出する(ステップST5)。また、符号が負の場合、つまり、被除数データの第0番目の位置する符号ビットが論理値1であると、サイズ情報検出回路6は、当該符号ビットの反転値(即ち、論理値0)が最初に出現するビット位置kを検出する(ステップST6)。
【0019】
上述のようにしてビット位置kが検出されると、サイズ情報検出回路6は、当該除算処理の命令実行サイクル数を決定する被除数データのデータサイズ情報nとして、本実施の形態1によるデータ処理装置が扱うデータ長32ビットのデータからビット位置kまでのデータを差し引いた(32−k)を算出する。この演算結果である被除数データのデータサイズ情報nは、有効データ幅としてサイズ情報検出回路6からループ処理終了検出部7に転送される。また、サイズ情報検出回路6は、第0番目のビット(符号ビットを含む)から第(k−1)番目のビットまでは演算対象でなく、有効なデータではないことから被除数データのシフト幅をkとし、当該シフト幅kを指定する制御信号SF1を生成してバスS2に出力する。ここまでの処理がステップST7に相当する。
【0020】
次に引き放し法による除算処理について説明する。
図5はデータ処理装置による除算命令の処理動作を示すフロー図であり、この図に沿って引き放し法によって除算命令を実行する場合のアルゴリズムを説明する。
先ず、シフタ部5は、パスSF1,SF2を経由して、制御ロジック部3からの制御信号SF1により指定されるシフト幅kと、制御ロジック部3による制御にて被除数データを取得する。さらに、シフタ部5は、制御ロジック部3から出力される制御信号CTSによってシフト方向が「左」と指示される。続いて、シフタ部5は、被除数データをシフト幅kで左にシフトする。図3に示すように、第0番目のビット(符号ビットを含む)から第(k−1)番目のビットまでは演算対象でなく、有効なデータではない。即ち、シフト幅kで被除数データを左にシフトすることで、当該被除数データ中の不要なデータが除かれることとなる。
【0021】
上述したシフタ部5でのシフト結果は、パスSF3を経由して剰余レジスタ10内の拡張レジスタ11に格納される。そして、剰余レジスタ10の左半分(32ビット)には0がセットされる。このシフタ部5が制御ロジック部3からのシフト幅と被除数データを取得してから剰余レジスタ10の左半分(32ビット)に0がセットされるまでの動作がステップST1aに相当する。
【0022】
次に、制御ロジック部3は、制御信号CT1と制御信号CT2を剰余レジスタ10に出力し、剰余レジスタ10に格納しているデータを1ビット左へシフトさせる(ステップST2a)。ここで、制御信号CT1は、従来の技術で説明したものと同様に、剰余レジスタ10のシフト方向を制御する信号である。また、制御信号CT2は、剰余レジスタのLSB(Least Significant
Bit)に格納するデータを指示する信号である。
【0023】
続いて、ループ処理終了検出部7がカウンタ8に初期値0をセットすることで、引き放し法による除算の繰り返し処理を開始する。
先ず、ALU部4は、ソースレジスタ指定部R2に設定された情報に基づく制御ロジック部3からの制御により、汎用レジスタファイル2に格納されている除数データを内部バスS2に読み出し、パスAU2を経由してALU9に転送する。さらに、ALU9では、パスAU1を介して剰余レジスタ10の左半分(32ビット)のデータを取得する。次に、ALU9は、制御ロジック部3で生成され出力される制御信号CTAを受けると、パスAU1のデータからパスAU2の除数データを引く減算処理を実行する。当該減算結果は、ALU9から剰余レジスタ10の左半分(32ビット)に格納される。ここまでがステップST3aに相当する。
【0024】
上述した減算処理が実行されると、制御ロジック部3は、剰余がゼロ以上であるか否かを判定する(ステップST4a)。具体的に説明すると、従来の技術で説明したものと同様に、制御ロジック部3は、ALU9での演算結果のMSB(Most Significant Bit)を制御信号DVSGNとして取り出す。このとき、制御信号DVSGNが0であれば、剰余≧0であるので、制御ロジック部3は、制御信号CT1を「左へ1ビットシフト」としてALU部4に出力し、剰余レジスタ10内のデータを左に1ビットシフトさせる。そして、制御信号CT2=1として、剰余レジスタ10のLSB(Least Significant Bit)を1にセットする(ステップST5a)。即ち、剰余レジスタ10内のデータが左に1ビットシフトされると、剰余レジスタ10内の右端の新しいビットは、1に設定される。
【0025】
一方、制御信号DVSGNが1であれば、剰余<0であるので、制御ロジック部3は、パスAU2を経由して、内部バスS2からALU9に除数データを転送する。さらに、パスAU1には、剰余レジスタ10内の左半分の値がセットされる。このあと、ALU9は、パスAU1のデータとパスAU2のデータを加算し、演算結果を剰余レジスタ10の左半分(32ビット)内に格納する。つまり、剰余レジスタ10の左半分に汎用レジスタファイル2内の除数データの値を加えることにより、剰余レジスタ10は、上述した減算処理の実行前の値に戻ることとなる。
【0026】
次に、制御ロジック部3は、制御信号CT1を「左へ1ビットシフト」としてALU部4に出力し、剰余レジスタ10内のデータを左に1ビットシフトさせる。続いて、制御信号CT2=0として、剰余レジスタ10のLSB(LeastSignificant Bit)を0にセットする。即ち、剰余レジスタ10を左にシフトし、剰余レジスタ10内の右端の新しいビットに0を設定する。ここまでがステップST6aに相当する。
【0027】
このあと、制御ロジック部3は、繰り返し回数の判定を行う(ステップST7a)。具体的には、ループ処理終了検出部7が、上述した引き放し法による除算の繰り返し処理を1回実行する度に、カウンタ8を1だけインクリメントする。このあと、ループ処理終了検出部7は、引き放し法における繰り返し処理の終了回数として保持しておいた被除数データのサイズ情報nと当該カウンタ8のカウント値を比較する。このとき、カウンタ8のカウント値がn未満、つまり、n回未満の繰り返し回数であったら、上述した繰り返し処理を再び実行する。
【0028】
一方、カウンタ8のカウント値がn回で繰り返し処理が終了していたら、制御ロジック部3は、制御信号CT1を「右へ1ビットシフト」としてALU部4に出力し、剰余レジスタ10内のデータを右へ1ビットシフトさせる(ステップST8a)。そして、除算命令を実行した場合には、拡張レジスタ11内に格納されているデータ(商)をパスOUT1を経由して、内部バスD1に出力させる。また、剰余命令を実行した場合には、剰余レジスタ10の上位32ビットに格納されているデータ(剰余)をパスOUT2を経由して内部バスD1に出力させる。最終的に、当該データ処理装置による演算結果は、内部バスD1を経由して汎用レジスタファイル2内のレジスタ(命令コードのデスティネーションレジスタ指定部で指定されたレジスタ)に転送され、格納される。
【0029】
以上のように、この実施の形態1によれば、除算命令の実行時に被除数データのサイズ情報を当該被除数データから直接検出するサイズ情報検出回路6を備えたので、除算命令の実行時に、被除数データごとの有効データ幅に最適な命令実行サイクル数を選択することができる。
【0030】
実施の形態2.
図6はこの発明の実施の形態2によるデータ処理装置の構成を示すブロック図であり、例えば除算処理を実行するハードウェアを示している。図において、サイズ情報検出回路(制御部)6aは、被除数データのサイズ上限値Lを含む命令コードのデコード結果に基づいて、除算命令及び剰余命令の実行時に被除数データのサイズ情報(有効データ幅)nを検出し、有効データ幅としてループ処理終了検出部7に出力する。このサイズ情報検出回路6aは、例えばサイズ上限値LによりLビット幅だけをサーチ対象としたプライオリティエンコーダから構成する。なお、図1と同一構成要素には同一符号を付して重複する説明を省略する。
【0031】
図7は図6中のデータ処理装置で扱われる命令フォーマットを示す図であり、例えば除算命令及び剰余命令の命令コードを示している。図において、第1オペコード部OP1及び第2オペコード部OP2は、実行すべき命令の種類(例えば、除算命令、剰余命令など)を指定する情報が設定される。また、オペコード部OP1,OP2には、デスティネーションレジスタ指定部R1やソースレジスタ指定部R2で指定したレジスタに格納されるデータのデータタイプ(データタイプ情報)を命令の一部として定義しておく。ここで、データタイプとは、上記実施の形態1と同様に、演算対象となるオペランドを符号付き(signed)あるいは符号なし(unsigned)のいずれで取り扱うかを指定する情報である。なお、データタイプを指定する情報は、命令コード内のオペコード部以外のビット位置に配置するようにしてもよい。
【0032】
また、デスティネーションレジスタ指定部R1には、汎用レジスタファイル2内のレジスタ群のうち被除数を格納したレジスタを指定する情報が設定される。さらに、ソースレジスタ指定部R2には、汎用レジスタファイル2内のレジスタ群のうち除数を格納したレジスタを指定する情報が設定される。命令コード中の定数部Cの一部に設けたサイズフィールドUL(サイズ上限値情報)は、被除数データのサイズ上限値Lを指定する情報が設定される。例えば、データ長が32ビットであるデータ処理装置では、Lが0<L≦32を満たす整数となる。
【0033】
図8は図6中のデータ処理装置で扱われるデータフォーマットを示す図であり、サイズ上限値Lが16ビットに指定された32ビットのデータフォーマットで上段が符号ビットを有さない場合を示し、下段に符号ビットを有する場合を示している。図において、DIVUH,DIVHは除算命令のニーモニックであって、それぞれ符号なしの除算命令及び符号有りの除算命令を示している。また、被除数データのサイズ上限値Lが16ビットに指定されているので、ニーモニックDIVUH,DIVHに対応するデータフォーマットでは、最上位の第0番目のビットから第15番目のビットまでの値が無効なデータとして取り扱われる。
【0034】
次に動作について説明する。
図9は実施の形態2のデータ処理装置による命令実行サイクル数の設定動作を示すフロー図であり、後述する引き放し法による除算の前処理に相当する。この図に沿って除算命令及び剰余命令を実行する際における被除数データのサイズ情報nの検出処理を説明する。例えば、データ長が32ビットであるデータ処理装置では、nが0<n≦32を満たす整数となる。以下、説明の簡単のために、当該データ処理装置で扱うデータのデータ長を32ビットとする。
【0035】
先ず、命令デコード部1は、ソースコードをコンパイルして生成された命令コードを受け取ると、当該命令コードをデコードする。これにより、ソースコードに記述された命令が当該演算ハードウェアに配置されることとなる。このとき、当該命令コードの第1オペコード部OP1及び第2オペコード部OP2に設定された、命令の種類(例えば、除算命令及び剰余命令など)、演算対象となるオペランドのデータタイプや、サイズフィールドULに設定された被除数データのサイズ上限値L(=16ビット)などが命令コード情報として取り出される。
【0036】
この命令コード情報であるデコード結果は、命令デコード部1から制御ロジック部3に転送される。制御ロジック部3では、内部のサイズ情報検出回路6aに当該デコード結果を入力する。これにより、本実施の形態2のデータ処理装置による除算命令の実行が開始される。
【0037】
次に、制御ロジック部3は、デコード結果内のデスティネーションレジスタ指定部R1に設定された情報に基づいて汎用レジスタファイル2内のレジスタから被除数データを読み出してバスS1に転送すると共に、サイズ情報検出回路6aにも転送する。ここまでの処理がステップST1に相当する。
【0038】
サイズ情報検出回路6aでは、デコード結果の命令コード情報から取り出した被除数データのデータイプに基づいて被除数データの符号の有無を判定する(ステップST2)。このとき、当該被除数データが符号なしであれば、サイズ情報検出回路6aは、被除数データのサイズ上限値Lに基づいて、図8に示すように、最上位の第0番目のビットから第(31−L)番目までを無効なデータとして取り扱い、第(32−L)番目のビットから第31番目のビットまでサーチして最初に論理値1が出現するビット位置k(第k番目のビット)を検出する(ステップST3b)。ここで、論理値1を有するビットが検出されなかった場合、サイズ情報検出回路6aは、当該被除数データの値が0であると判断する。
【0039】
一方、被除数データが符号有りであると、サイズ情報検出回路6aは、符号が正か負かいずれの属性であるかを判定する(ステップST4)。ここで、被除数データのサイズ上限値がLで、符号が正の場合、つまり、被除数データの第(32−L)番目に位置する符号ビットが論理値0であると、サイズ情報検出回路6aは、第(32−L+1)番目のビットから第31番目のビットをサーチして当該符号ビットの反転値(即ち、論理値1)が最初に出現するビット位置kを検出する(ステップST5b)。
【0040】
また、符号が負の場合、つまり、被除数データの第(32−L)番目の位置する符号ビットが論理値1であると、サイズ情報検出回路6aは、第(32−L+1)番目のビットから第31番目のビットをサーチして当該符号ビットの反転値(即ち、論理値0)が最初に出現するビット位置kを検出する(ステップST6b)。図8の下段に示す例では、第16番目の符号ビット(論理値S)から第23番目のビットまでが符号ビットと同一値Sを示しており、第24番目から第31番目までが有効なデータとなっている。
【0041】
上述のようにしてビット位置kが検出されると、サイズ情報検出回路6aは、被除数データのデータサイズ情報n及び繰り返し処理回数として、本実施の形態2によるデータ処理装置が扱うデータ長32ビットのデータからビット位置kまでのデータを差し引いた(32−k)を算出する。この演算結果である被除数データのデータサイズ情報(有効データ幅)nは、有効データ幅としてサイズ情報検出回路6aからループ処理終了検出部7に転送される。
【0042】
また、サイズ情報検出回路6aは、第0番目のビット(符号ビットを含む)から第(k−1)番目のビットまでは演算対象でなく、有効なデータではないことから被除数データのシフト幅をkとし、当該シフト幅kを指定する制御信号SF1を生成してバスS2に出力する。ここまでの処理がステップST7に相当する。
以降の引き放し法による除算処理については、上記実施の形態1と同様であるので重複する説明を省略する。
【0043】
以上のように、この実施の形態2によれば、被除数データのサイズ情報を検出する際のサーチ範囲を規定するサイズ上限値Lを命令コードに設定したので、被除数データのサイズ情報の検出処理を高速化することができる。また、サイズ上限値Lで指定された範囲以外のビット位置にあるデータは全て無効になることから、データ格納時に32ビットデータに補正する必要がない。
【0044】
実施の形態3.
図10はこの発明の実施の形態3によるデータ処理装置の構成を示すブロック図であり、例えば除算処理を実行するハードウェアを示している。図において、モードレジスタ(記憶部)12は、被除数データのデータタイプ(データタイプ情報)を指定する情報及びそのサイズ上限値L(サイズ上限値情報)を格納する。なお、図1及び図6と同一構成要素には同一符号を付して重複する説明を省略する。
【0045】
先ず、本実施の形態3によるデータ処理装置で扱われる命令フォーマットは、上記実施の形態1と同様であり、命令コード中の定数部Cに除算命令及び剰余命令における被除数データのサイズ情報が設定されない。また、データフォーマットは、上記実施の形態2と同様であり、サイズ上限値Lで指定された範囲以外のビット位置にあるデータは全て無効になる。
【0046】
次に動作について説明する。
ここでは、除算命令及び剰余命令を実行する際における被除数データのサイズ情報nの検出処理を説明する。例えば、データ長が32ビットであるデータ処理装置では、nが0<n≦32を満たす整数となる。以下、説明の簡単のために、当該データ処理装置で扱うデータのデータ長を32ビットとする。
【0047】
先ず、命令デコード部1は、ソースコードをコンパイルして生成された命令コードを受け取ると、当該命令コードをデコードする。これにより、ソースコードに記述された命令が当該演算ハードウェアに配置されることとなる。このとき、当該命令コードの第1オペコード部OP1及び第2オペコード部OP2に設定された、命令の種類(例えば、除算命令及び剰余命令など)や、演算対象となるオペランドのデータタイプなどが命令コード情報として取り出される。
【0048】
この命令コード情報であるデコード結果は、命令デコード部1から制御ロジック部3に転送される。制御ロジック部3では、内部のサイズ情報検出回路6aに当該デコード結果を入力する。
【0049】
次に、制御ロジック部3は、汎用レジスタファイル2内のレジスタから被除数データを読み出してバスS1に転送すると共に、サイズ情報検出回路6aにも転送する。さらに、制御ロジック部3は、モードレジスタ12から上記被除数データに対応するデータタイプ及びサイズ上限値Lを読み込み、サイズ情報検出回路6aに転送する。これにより、本実施の形態3のデータ処理装置による除算命令の実行が開始される。
【0050】
サイズ情報検出回路6aでは、モードレジスタ12からのデータイプに基づいて被除数データの符号の有無を判定する。このとき、当該被除数データが符号なしであれば、サイズ情報検出回路6aは、モードレジスタ12からのサイズ上限値Lに基づいて、最上位の第0番目のビットから第(31−L)番目までを無効なデータとして取り扱い、第(32−L)番目のビットから第31番目のビットまでサーチして最初に論理値1が出現するビット位置k(第k番目のビット)を検出する。
【0051】
一方、被除数データが符号有りであると、サイズ情報検出回路6aは、符号が正か負かいずれの属性であるかを判定する。ここで、被除数データのサイズ上限値がLで、符号が正の場合、つまり、被除数データの第(32−L)番目に位置する符号ビットが論理値0であると、サイズ情報検出回路6aは、第(32−L+1)番目のビットから第31番目のビットをサーチして当該符号ビットの反転値(即ち、論理値1)が最初に出現するビット位置kを検出する。
【0052】
また、符号が負の場合、つまり、被除数データの第(32−L)番目の位置する符号ビットが論理値1であると、サイズ情報検出回路6aは、第(32−L+1)番目のビットから第31番目のビットをサーチして当該符号ビットの反転値(即ち、論理値0)が最初に出現するビット位置kを検出する。
【0053】
上述のようにしてビット位置kが検出されると、サイズ情報検出回路6aは、被除数データのデータサイズ情報n及び繰り返し処理回数として、本実施の形態3によるデータ処理装置が扱うデータ長32ビットのデータからビット位置kまでのデータを差し引いた(32−k)を算出する。この演算結果である被除数データのデータサイズ情報(有効データ幅)nは、有効データ幅としてサイズ情報検出回路6aからループ処理終了検出部7に転送される。
【0054】
また、サイズ情報検出回路6aは、第0番目のビット(符号ビットを含む)から第(k−1)番目のビットまでは演算対象でなく、有効なデータではないことから被除数データのシフト幅をkとし、当該シフト幅kを指定する制御信号SF1を生成してバスS2に出力する。ここまでの処理がステップST7に相当する。
以降の引き放し法による除算処理については、上記実施の形態1と同様であるので重複する説明を省略する。
【0055】
以上のように、この実施の形態3によれば、被除数データのデータタイプやそのサイズ上限値Lを設定するモードレジスタ12を備えたので、命令フォーマットにサイズ情報フィールドを設けることなく、上記実施の形態2と同様の効果を得ることができる。
【0056】
なお、上記実施の形態1から上記実施の形態3まででは、除算処理に関するハードウェアや演算方法について説明したが、本発明はこれに限定されるものではない。つまり、本発明の適用対象は、被演算データの有効データ幅によって命令実行サイクル数が規定される演算処理を行うものであればよい。例えば、命令コード情報として、被演算データのサイズ上限値の他にその下限値を設定することで、命令実行サイクル数の下限を制御したり、演算結果の下限値を制御することができる。
【0057】
実施の形態4.
図11はこの発明の実施の形態4によるデータ処理装置の構成を示すブロック図であり、例えば除算処理を実行するハードウェアを示している。図において、モードレジスタ(記憶部)12aは、サイズ情報検出回路6bによる被除数データの有効データ幅の検出処理を実行すべきか否かを指定する処理設定情報を格納する。なお、図1及び図6と同一構成要素には同一符号を付して重複する説明を省略する。
【0058】
本実施の形態4によるデータ処理装置は、上記実施の形態1で示した命令実行サイクル数の決定・設定処理の他に、モードレジスタ12aに格納した処理設定情報によって、上記実施の形態2や上記実施の形態3で示した処理を選択したり、予め定めておいたデータ幅から命令実行サイクル数を決定するようにしたものである。
【0059】
次に動作について説明する。
ここでは、除算命令及び剰余命令を実行する際における被除数データのサイズ情報nの検出処理を説明する。例えば、データ長が32ビットであるデータ処理装置では、nが0<n≦32を満たす整数となる。以下、説明の簡単のために、当該データ処理装置で扱うデータのデータ長を32ビットとする。
【0060】
先ず、命令デコード部1は、ソースコードをコンパイルして生成された命令コードを受け取ると、当該命令コードをデコードする。これにより、ソースコードに記述された命令が当該演算ハードウェアに配置されることとなる。このとき、当該命令コードの第1オペコード部OP1及び第2オペコード部OP2に設定された、命令の種類(例えば、除算命令及び剰余命令など)や、演算対象となるオペランドのデータタイプなどが命令コード情報として取り出される。
【0061】
この命令コード情報であるデコード結果は、命令デコード部1から制御ロジック部3に転送される。制御ロジック部3では、内部のサイズ情報検出回路6bに当該デコード結果を入力する。次に、制御ロジック部3は、デコード結果内のデスティネーションレジスタ指定部R1に設定された情報に基づいて汎用レジスタファイル2内のレジスタから被除数データを読み出してバスS1に転送すると共に、サイズ情報検出回路6bにも転送する。
【0062】
このとき、サイズ情報検出回路6bは、モードレジスタ12aから処理設定情報を入力し、当該情報に基づいて被除数データの有効データ幅の検出処理を実行すべきか否かを判断する。具体的には、処理設定情報としてサイズ情報検出回路6bによる被除数データの有効データ幅の検出機能を有効又は無効にするディジタル値を設定しておく。サイズ情報検出回路6bは、処理設定情報の値を基にして自己の上記機能の有効又は無効を判断する。
【0063】
ここで、被除数データの有効データ幅の検出機能が有効である場合、サイズ情報検出回路6bは、デコード結果の演算種類やデータタイプを用いて、上記実施の形態1と同様に処理を行い、当該除算処理の命令実行サイクル数に相当する被除数データの有効データ幅nを算出する。有効データ幅nをループ処理終了検出部7に設定した以降の処理は、上記実施の形態1と同様である。
【0064】
一方、被除数データの有効データ幅の検出機能が無効である旨が処理設定情報に指定されている場合、サイズ情報検出回路6bは、被除数データの有効データ幅nを検出せずに、プロセッサのデータ長32ビットを予め定めた有効データ幅nとしてループ処理終了検出部7に設定する。以降の処理は、上記実施の形態1と同様である。
この構成が本実施の形態4を上記実施の形態1に適用した場合に相当する。
【0065】
図12は図11中の制御ロジック部及びその周辺構成部を示すブロック図であり、この図を用いて本実施の形態4を上記実施の形態1から3までのいずれかの構成に適用した場合について説明する。図に示すように、本実施の形態4の構成を上記実施の形態2や3に適用した場合、サイズ情報検出回路6bは、命令コードのデコード結果又はモードレジスタ12から被除数データのサイズ上限値Lを入力する。なお、被除数データのサイズ上限値Lは、処理設定情報と共にモードレジスタ12aに格納しておいても良い。
【0066】
ここで、被除数データの有効データ幅の検出機能が有効である旨が処理設定情報に指定されている場合、サイズ情報検出回路6bは、上記実施の形態2又は3と同様な処理を行い、当該除算処理の命令実行サイクル数に相当する被除数データの有効データ幅nを算出する。有効データ幅nをループ処理終了検出部7に設定した以降の処理は、上記実施の形態2又は3と同様である。
【0067】
一方、被除数データの有効データ幅の検出機能が無効である旨が処理設定情報に指定されている場合、サイズ情報検出回路6bは、被除数データの有効データ幅nを検出せずに、被除数データのサイズ上限値Lを予め定めた有効データ幅nとして設定する。有効データ幅nをループ処理終了検出部7に設定した以降の処理は、上記実施の形態2又は3と同様である。
【0068】
なお、モードレジスタ12aに格納する処理設定情報としては、サイズ情報検出回路6bによる被除数データの有効データ幅の検出処理を実行すべきか否かを指定する情報の他に、被除数データのサイズ上限値Lなどの命令コード情報を使用すべきか否かを指定する情報を設定するようにしてもよい。
【0069】
具体的に説明すると、図12に示すように、サイズ情報検出回路6bは、被除数データのサイズ上限値L及びプロセッサのデータ長を保持しておく。このとき、処理設定情報において、被除数データの有効データ幅の検出機能が無効である旨が指定されており、且つ被除数データのサイズ上限値Lなどの命令コード情報の使用を無効とする旨が指定されている場合、サイズ情報検出回路6bは、被除数データのサイズ上限値Lを有効データ幅nとせずに、プロセッサのデータ長32ビットを予め定めた有効データ幅nとしてループ処理終了検出部7に設定する。
【0070】
また、被除数データの有効データ幅の検出機能が無効である旨が処理設定情報に指定されており、且つ被除数データのサイズ上限値Lなどの命令コード情報の使用を有効とする旨が指定されている場合、サイズ情報検出回路6bは、被除数データのサイズ上限値Lを有効データ幅nを予め定めた有効データ幅nとしてループ処理終了検出部7に設定する。
【0071】
以上のように、この実施の形態4によれば、モードレジスタ12aに格納した処理設定情報によって、上記実施の形態1から上記実施の形態3までで示した被除数データの有効データ幅から命令実行サイクル数を決定する処理と、予め定めておいたデータ幅から命令実行サイクル数を決定する処理とを選択するように構成したので、命令フォーマットにサイズ情報フィールドを設けることなく、上記実施の形態2と同様の効果を得ることができる。また、命令実行サイクル数の決定方法を適宜選択でき、演算命令の種類などに応じて柔軟に適切な命令実行サイクル数を決定することができる。
【0072】
【発明の効果】
以上のように、この発明によれば、被演算データから演算命令で処理すべき被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定する制御部と、制御部が決定した命令実行サイクル数で演算命令を実行する演算部とを備えるので、被演算データごとの有効データ幅を予め命令コードに設定しておく必要がなく、演算命令の実行時に被演算データごとの有効データ幅から導かれる最適な演算処理の命令実行サイクル数を適宜選択することができるという効果がある。
【0073】
この発明によれば、装置内の記憶部に、演算命令の命令実行サイクル数を制御する命令コード情報を設定しておき、当該命令コード情報に基づいて、上記演算命令で処理すべき被演算データの有効データ幅に応じた命令実行サイクル数を決定するので、モードレジスタなどの記憶部に命令実行サイクル数を制御する命令コード情報を保持し、当該内容を用いて演算処理の制御を行うので、命令コードに対する制約をなくすことができるという効果がある。
【図面の簡単な説明】
【図1】 この発明の実施の形態1によるデータ処理装置の構成を示すブロック図である。
【図2】 図1中のデータ処理装置で扱われる命令フォーマットを示す図である。
【図3】 図1中のデータ処理装置で扱われるデータフォーマットを示す図である。
【図4】 実施の形態1のデータ処理装置による命令実行サイクル数の設定動作を示すフロー図である。
【図5】 データ処理装置による除算命令の処理動作を示すフロー図である。
【図6】 この発明の実施の形態2によるデータ処理装置の構成を示すブロック図である。
【図7】 図6中のデータ処理装置で扱われる命令フォーマットを示す図である。
【図8】 図6中のデータ処理装置で扱われるデータフォーマットを示す図である。
【図9】 実施の形態2のデータ処理装置による命令実行サイクル数の設定動作を示すフロー図である。
【図10】 この発明の実施の形態3によるデータ処理装置の構成を示すブロック図である。
【図11】 この発明の実施の形態4によるデータ処理装置の構成を示すブロック図である。
【図12】 図11中の制御ロジック部及びその周辺構成部を示すブロック図である。
【符号の説明】
1 命令デコード部、2 汎用レジスタファイル、3 制御ロジック部(制御部)、4 ALU部(演算部)、5 シフタ部、6,6a,6b サイズ情報検出回路(制御部)、7 ループ処理終了検出部、8 カウンタ、9 ALU、10 剰余レジスタ、11 拡張レジスタ、12,12a モードレジスタ(記憶部)。
Claims (11)
- 演算命令の実行時に、該演算命令で処理すべき被演算データに基づき被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定する制御部と、
上記制御部が決定した命令実行サイクル数で上記演算命令を実行する演算部と
を備えたデータ処理装置。 - 演算命令の命令コード中に被演算データの有効データ幅を検出するための制御情報が設定されており、
前記演算命令の命令コードをデコードする命令デコード部を更に備え、
制御部は、命令デコード部がデコード結果として抽出した上記制御情報に基づいて被演算データの有効データ幅を検出することを特徴とする請求項1記載のデータ処理装置。 - 演算命令の命令コード中に、制御情報として被演算データの符号の有無を指定するデータタイプ情報が設定されており、
制御部は、命令デコード部がデコード結果として抽出した上記データタイプ情報で特定される被演算データの符号の有無に応じて被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項2記載のデータ処理装置。 - 演算命令の命令コード中に、制御情報として被演算データの有効データ幅を検出する際のサーチ範囲の上限値を指定するサイズ上限値情報が設定されており、
制御部は、上記被演算データのうち命令デコード部がデコード結果として抽出した上記サイズ上限値情報で指定された上限値に基づくデータ範囲をサーチして被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項2記載のデータ処理装置。 - 前記制御情報が有効であるか無効であるかを決定するための情報を格納する記憶部を更に有し、
制御部は、記憶部に格納された情報に応じて被演算データの有効データ幅を検出することを特徴とする請求項2〜4の何れか一つに記載のデータ処理装置。 - 被演算データの有効データ幅を検出するため制御情報を格納する記憶部を備え、
制御部は、上記記憶部から読み出した上記制御情報に基づいて、被演算データの有効データ幅を検出することを特徴とする請求項1記載のデータ処理装置。 - 記憶部は、制御情報として被演算データの符号の有無を指定するデータタイプ情報を格納し、
制御部は、上記記憶部から読み出した上記データタイプ情報で特定される被演算データの符号の有無に応じて被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項6記載のデータ処理装置。 - 記憶部は、制御情報として被演算データの有効データ幅を検出する際のサーチ範囲の上限値を指定するサイズ上限値情報を格納し、
制御部は、上記被演算データのうち上記記憶部から読み出したサイズ上限値情報で指定された上限値に基づくデータ範囲をサーチして被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項6記載のデータ処理装置。 - 記憶部は、制御部が被演算データの有効データ幅を検出すべきか否かを指定する処理設定情報を格納し、
制御部は、上記記憶部から読み出した処理設定情報に、上記有効データ幅の検出を実行しない旨が指定されていると、予め定めたデータ幅を有効データ幅として設定し、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項6〜8の何れか一つに記載のデータ処理装置。 - 前記予め定めたデータ幅は、プロセッサのデータ長または被演算デ ータのサイズ上限値である請求項9記載のデータ処理装置。
- 処理設定情報に制御情報が有効か無効かが指定されており、
制御部は、上記処理設定情報に有効データ幅の検出を実行しない旨及び制御情報が無効である旨が指定されていると、予め定めたデータ幅を被演算データの有効データ幅として設定し、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項9または10に記載のデータ処理装置。
Priority Applications (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002261881A JP3886870B2 (ja) | 2002-09-06 | 2002-09-06 | データ処理装置 |
TW092123691A TWI231915B (en) | 2002-09-06 | 2003-08-28 | Data processing device |
KR1020030061966A KR100579334B1 (ko) | 2002-09-06 | 2003-09-05 | 데이터 처리 장치 |
DE10341065A DE10341065A1 (de) | 2002-09-06 | 2003-09-05 | Datenverarbeitungsvorrichtung |
CNB031554628A CN100409176C (zh) | 2002-09-06 | 2003-09-05 | 数据处理装置 |
US10/654,927 US7337302B2 (en) | 2002-09-06 | 2003-09-05 | Data processing device |
US11/878,737 US7555635B2 (en) | 2002-09-06 | 2007-07-26 | Data processing device |
US12/472,193 US7971037B2 (en) | 2002-09-06 | 2009-05-26 | Data processing device |
US13/113,511 US8627046B2 (en) | 2002-09-06 | 2011-05-23 | Data processing device |
US14/144,822 US9280341B2 (en) | 2002-09-06 | 2013-12-31 | Data processing device |
US15/015,565 US10001991B2 (en) | 2002-09-06 | 2016-02-04 | Data processing device |
US15/987,507 US10552149B2 (en) | 2002-09-06 | 2018-05-23 | Data processing device |
US16/748,189 US11231925B2 (en) | 2002-09-06 | 2020-01-21 | Data processing device |
US17/565,018 US11714639B2 (en) | 2002-09-06 | 2021-12-29 | Data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002261881A JP3886870B2 (ja) | 2002-09-06 | 2002-09-06 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004102532A JP2004102532A (ja) | 2004-04-02 |
JP3886870B2 true JP3886870B2 (ja) | 2007-02-28 |
Family
ID=31884726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002261881A Expired - Lifetime JP3886870B2 (ja) | 2002-09-06 | 2002-09-06 | データ処理装置 |
Country Status (6)
Country | Link |
---|---|
US (9) | US7337302B2 (ja) |
JP (1) | JP3886870B2 (ja) |
KR (1) | KR100579334B1 (ja) |
CN (1) | CN100409176C (ja) |
DE (1) | DE10341065A1 (ja) |
TW (1) | TWI231915B (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3886870B2 (ja) | 2002-09-06 | 2007-02-28 | 株式会社ルネサステクノロジ | データ処理装置 |
KR100829788B1 (ko) * | 2006-07-07 | 2008-05-16 | 삼성전자주식회사 | 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법 |
CN111857822B (zh) * | 2016-08-05 | 2024-04-05 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
US10175946B2 (en) * | 2016-09-30 | 2019-01-08 | International Business Machines Corporation | Perform sign operation decimal instruction |
US10127015B2 (en) | 2016-09-30 | 2018-11-13 | International Business Machines Corporation | Decimal multiply and shift instruction |
US10241757B2 (en) | 2016-09-30 | 2019-03-26 | International Business Machines Corporation | Decimal shift and divide instruction |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3684879A (en) * | 1970-09-09 | 1972-08-15 | Sperry Rand Corp | Division utilizing multiples of the divisor stored in an addressable memory |
US4065666A (en) * | 1976-10-15 | 1977-12-27 | Rca Corporation | Multiply-divide unit |
US4228518A (en) * | 1978-09-25 | 1980-10-14 | Motorola, Inc. | Microprocessor having multiply/divide circuitry |
US4742480A (en) * | 1985-06-06 | 1988-05-03 | Motorola, Inc. | Cycle counter/shifter for division |
US4817048A (en) * | 1986-08-11 | 1989-03-28 | Amdahl Corporation | Divider with quotient digit prediction |
JP2675779B2 (ja) * | 1987-01-12 | 1997-11-12 | 沖電気工業株式会社 | 命令解読装置 |
US5185870A (en) * | 1987-04-10 | 1993-02-09 | Tandem Computers, Inc, | System to determine if modification of first macroinstruction to execute in fewer clock cycles |
US5097435A (en) * | 1988-12-24 | 1992-03-17 | Kabushiki Kaisha Toshiba | High speed dividing apparatus |
US5220651A (en) * | 1989-10-11 | 1993-06-15 | Micral, Inc. | Cpu-bus controller for accomplishing transfer operations between a controller and devices coupled to an input/output bus |
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 |
JPH03271829A (ja) * | 1990-03-20 | 1991-12-03 | Fujitsu Ltd | 情報処理装置 |
US5272660A (en) * | 1992-06-01 | 1993-12-21 | Motorola, Inc. | Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor |
US5426600A (en) * | 1993-09-27 | 1995-06-20 | Hitachi America, Ltd. | Double precision division circuit and method for digital signal processor |
US6173305B1 (en) * | 1993-11-30 | 2001-01-09 | Texas Instruments Incorporated | Division by iteration employing subtraction and conditional source selection of a prior difference or a left shifted remainder |
US5604499A (en) * | 1993-12-28 | 1997-02-18 | Matsushita Electric Industrial Co., Ltd. | Variable-length decoding apparatus |
US5734856A (en) * | 1994-04-05 | 1998-03-31 | Seiko Epson Corporation | System and method for generating supplemental ready signals to eliminate wasted cycles between operations |
US5576982A (en) * | 1994-10-17 | 1996-11-19 | Unisys Corporation | Fast significant bit calculator and its application to integer multiplication and division |
JP2987311B2 (ja) * | 1995-05-12 | 1999-12-06 | 松下電器産業株式会社 | プロセッサ及び翻訳装置 |
US6119213A (en) * | 1995-06-07 | 2000-09-12 | Discovision Associates | Method for addressing data having variable data width using a fixed number of bits for address and width defining fields |
US5675528A (en) * | 1995-06-16 | 1997-10-07 | Cyrix Corporation | Early detection of overflow and exceptional quotient/remainder pairs for nonrestoring twos complement division |
JP2806359B2 (ja) * | 1996-04-30 | 1998-09-30 | 日本電気株式会社 | 命令処理方法及び命令処理装置 |
US5784307A (en) * | 1996-05-31 | 1998-07-21 | Intel Corporation | Division algorithm for floating point or integer numbers |
GB2317467B (en) * | 1996-09-23 | 2000-11-01 | Advanced Risc Mach Ltd | Input operand control in data processing systems |
US5844827A (en) * | 1996-10-17 | 1998-12-01 | Samsung Electronics Co., Ltd. | Arithmetic shifter that performs multiply/divide by two to the nth power for positive and negative N |
US5938760A (en) * | 1996-12-17 | 1999-08-17 | International Business Machines Corporation | System and method for performance monitoring of instructions in a re-order buffer |
US5923862A (en) * | 1997-01-28 | 1999-07-13 | Samsung Electronics Co., Ltd. | Processor that decodes a multi-cycle instruction into single-cycle micro-instructions and schedules execution of the micro-instructions |
US6154870A (en) * | 1997-06-04 | 2000-11-28 | Seagate Technology Llc | Signal error-correction system and method |
US5790827A (en) * | 1997-06-20 | 1998-08-04 | Sun Microsystems, Inc. | Method for dependency checking using a scoreboard for a pair of register sets having different precisions |
FI972885A0 (fi) | 1997-07-07 | 1997-07-07 | Vlsi Solution Oy | Anordning foer utfoering av en divisionoperation, saerskilt i en tredimensionell grafik |
US6154829A (en) * | 1997-10-20 | 2000-11-28 | Matsushita Electric Industrial Co., Ltd. | Cascaded arithmetic pipeline data processor |
JP2954119B2 (ja) * | 1997-11-26 | 1999-09-27 | 日本電気株式会社 | 命令実行サイクル可変回路 |
US5948096A (en) * | 1997-12-23 | 1999-09-07 | Intel Corporation | Apparatus and method for self-timed marking of variable length instructions having length-affecting prefix bytes |
US6122651A (en) * | 1998-04-08 | 2000-09-19 | Advanced Micro Devices, Inc. | Method and apparatus for performing overshifted rotate through carry instructions by shifting in opposite directions |
JP3721780B2 (ja) * | 1998-04-21 | 2005-11-30 | 富士通株式会社 | 複数のパイプライン処理機構を有するデータ処理装置 |
US6170050B1 (en) * | 1998-04-22 | 2001-01-02 | Sun Microsystems, Inc. | Length decoder for variable length data |
US6061781A (en) * | 1998-07-01 | 2000-05-09 | Ip First Llc | Concurrent execution of divide microinstructions in floating point unit and overflow detection microinstructions in integer unit for integer divide |
JP2000066948A (ja) * | 1998-08-19 | 2000-03-03 | Nec Corp | 圧縮データ入出力機能付メモリlsi |
US6487575B1 (en) * | 1998-08-31 | 2002-11-26 | Advanced Micro Devices, Inc. | Early completion of iterative division |
US6351760B1 (en) * | 1999-01-29 | 2002-02-26 | Sun Microsystems, Inc. | Division unit in a processor using a piece-wise quadratic approximation technique |
US6378022B1 (en) * | 1999-06-17 | 2002-04-23 | Motorola, Inc. | Method and apparatus for processing interruptible, multi-cycle instructions |
WO2000078120A2 (en) * | 1999-06-21 | 2000-12-28 | Bops Incorporated | Methods and apparatus for initiating and resynchronizing multi-cycle simd instructions |
JP2001034472A (ja) | 1999-07-16 | 2001-02-09 | Mitsubishi Electric Corp | データ処理装置および除算、剰余算アルゴリズム |
US6549926B1 (en) * | 1999-10-26 | 2003-04-15 | Sun Microsystems, Inc. | SRT divider having several bits of each partial remainder one-hot encoded to minimize the logic levels needed to estimate quotient bits |
US6854051B2 (en) * | 2000-04-19 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | Cycle count replication in a simultaneous and redundantly threaded processor |
US7472259B2 (en) * | 2000-12-06 | 2008-12-30 | Analog Devices, Inc. | Multi-cycle instructions |
DE60201511T2 (de) * | 2001-02-06 | 2005-10-20 | Adelante Technologies B.V. | Verfahren, system und computerprogrammprodukt zum manipulieren eines anweisungsflusses in einer pipeline eines prozessors |
JP3607209B2 (ja) * | 2001-03-08 | 2005-01-05 | 松下電器産業株式会社 | クロック制御方法及び当該クロック制御方法を用いた情報処理装置 |
JP4712247B2 (ja) * | 2001-08-31 | 2011-06-29 | 富士通セミコンダクター株式会社 | 整数除算または整数剰余算を含むアプリケーションプログラム向けのマイクロプロセッサの開発システム |
FR2837459B1 (fr) | 2002-03-19 | 2004-07-09 | Meritor Light Vehicle Sys Ltd | Procede d'assemblage de portiere |
JP3886870B2 (ja) | 2002-09-06 | 2007-02-28 | 株式会社ルネサステクノロジ | データ処理装置 |
KR100872183B1 (ko) | 2006-11-30 | 2008-12-09 | 볼보 컨스트럭션 이키프먼트 홀딩 스웨덴 에이비 | 중장비용 운전실 |
JP5976411B2 (ja) | 2012-06-20 | 2016-08-23 | 西川ゴム工業株式会社 | グラスラン及びグラスランのドアガラス組付方法 |
-
2002
- 2002-09-06 JP JP2002261881A patent/JP3886870B2/ja not_active Expired - Lifetime
-
2003
- 2003-08-28 TW TW092123691A patent/TWI231915B/zh not_active IP Right Cessation
- 2003-09-05 DE DE10341065A patent/DE10341065A1/de not_active Ceased
- 2003-09-05 KR KR1020030061966A patent/KR100579334B1/ko active IP Right Grant
- 2003-09-05 US US10/654,927 patent/US7337302B2/en active Active
- 2003-09-05 CN CNB031554628A patent/CN100409176C/zh not_active Expired - Lifetime
-
2007
- 2007-07-26 US US11/878,737 patent/US7555635B2/en not_active Expired - Lifetime
-
2009
- 2009-05-26 US US12/472,193 patent/US7971037B2/en not_active Expired - Lifetime
-
2011
- 2011-05-23 US US13/113,511 patent/US8627046B2/en not_active Expired - Lifetime
-
2013
- 2013-12-31 US US14/144,822 patent/US9280341B2/en not_active Expired - Lifetime
-
2016
- 2016-02-04 US US15/015,565 patent/US10001991B2/en not_active Expired - Lifetime
-
2018
- 2018-05-23 US US15/987,507 patent/US10552149B2/en not_active Expired - Lifetime
-
2020
- 2020-01-21 US US16/748,189 patent/US11231925B2/en not_active Expired - Lifetime
-
2021
- 2021-12-29 US US17/565,018 patent/US11714639B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20160154646A1 (en) | 2016-06-02 |
TWI231915B (en) | 2005-05-01 |
US8627046B2 (en) | 2014-01-07 |
TW200405205A (en) | 2004-04-01 |
KR100579334B1 (ko) | 2006-05-12 |
US20140115303A1 (en) | 2014-04-24 |
US7337302B2 (en) | 2008-02-26 |
KR20040022187A (ko) | 2004-03-11 |
US20090235058A1 (en) | 2009-09-17 |
US7555635B2 (en) | 2009-06-30 |
CN100409176C (zh) | 2008-08-06 |
US20220121442A1 (en) | 2022-04-21 |
US20040049659A1 (en) | 2004-03-11 |
DE10341065A1 (de) | 2004-03-18 |
US10552149B2 (en) | 2020-02-04 |
US20180267797A1 (en) | 2018-09-20 |
US11714639B2 (en) | 2023-08-01 |
US20200159528A1 (en) | 2020-05-21 |
JP2004102532A (ja) | 2004-04-02 |
US20110238958A1 (en) | 2011-09-29 |
CN1489038A (zh) | 2004-04-14 |
US10001991B2 (en) | 2018-06-19 |
US9280341B2 (en) | 2016-03-08 |
US7971037B2 (en) | 2011-06-28 |
US11231925B2 (en) | 2022-01-25 |
US20070271443A1 (en) | 2007-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11714639B2 (en) | Data processing device | |
US7236995B2 (en) | Data processing apparatus and method for converting a number between fixed-point and floating-point representations | |
US7917568B2 (en) | X87 fused multiply-add instruction | |
US10394562B2 (en) | Microprocessor that fuses if-then instructions | |
JP2009527035A (ja) | マイクロプロセッサにおけるパックされた加減演算 | |
WO2006132782A2 (en) | Method and apparatus for formatting numbers in microprocessors | |
JPH081602B2 (ja) | データ処理装置 | |
JP2009271598A (ja) | プロセッサ | |
US20060218380A1 (en) | Add-shift-round instruction with dual-use source operand for DSP | |
JP2001034472A (ja) | データ処理装置および除算、剰余算アルゴリズム | |
US20060218377A1 (en) | Instruction with dual-use source providing both an operand value and a control value | |
US5805489A (en) | Digital microprocessor device having variable-delay division hardware | |
US6948054B2 (en) | Simple branch prediction and misprediction recovery method | |
KR100637055B1 (ko) | 연산 처리 장치 | |
US20060218381A1 (en) | Rounding correction for add-shift-round instruction with dual-use source operand for DSP | |
JP2591250B2 (ja) | データ処理装置 | |
JPH04195629A (ja) | 演算フラグ生成装置 | |
JPH04160533A (ja) | マイクロ・プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050613 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060123 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060704 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060711 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060911 |
|
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: 20061121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061122 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3886870 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101201 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101201 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101201 Year of fee payment: 4 |
|
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: 20101201 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111201 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121201 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121201 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131201 Year of fee payment: 7 |
|
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 |
|
EXPY | Cancellation because of completion of term |