JP3886870B2 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

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
Application number
JP2002261881A
Other languages
English (en)
Other versions
JP2004102532A (ja
Inventor
寿賀子 大谷
弘郁 近藤
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology 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
Priority to JP2002261881A priority Critical patent/JP3886870B2/ja
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to TW092123691A priority patent/TWI231915B/zh
Priority to KR1020030061966A priority patent/KR100579334B1/ko
Priority to DE10341065A priority patent/DE10341065A1/de
Priority to CNB031554628A priority patent/CN100409176C/zh
Priority to US10/654,927 priority patent/US7337302B2/en
Publication of JP2004102532A publication Critical patent/JP2004102532A/ja
Application granted granted Critical
Publication of JP3886870B2 publication Critical patent/JP3886870B2/ja
Priority to US11/878,737 priority patent/US7555635B2/en
Priority to US12/472,193 priority patent/US7971037B2/en
Priority to US13/113,511 priority patent/US8627046B2/en
Priority to US14/144,822 priority patent/US9280341B2/en
Priority to US15/015,565 priority patent/US10001991B2/en
Priority to US15/987,507 priority patent/US10552149B2/en
Priority to US16/748,189 priority patent/US11231925B2/en
Priority to US17/565,018 priority patent/US11714639B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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
    • 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address 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

【0001】
【発明の属する技術分野】
この発明は除算命令や剰余命令などの各種演算命令を実行するデータ処理装置に係り、特に演算命令の実行時に被演算データから検出した有効データ幅に応じて命令実行サイクル数を設定し、当該命令実行サイクル数で演算処理を実行するデータ処理装置に関するものである。
【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. 演算命令の命令コード中に被演算データの有効データ幅を検出するための制御情報が設定されており、
    前記演算命令の命令コードをデコードする命令デコード部を更に備え、
    制御部は、命令デコード部がデコード結果として抽出した上記制御情報に基づいて被演算データの有効データ幅を検出することを特徴とする請求項1記載のデータ処理装置。
  3. 演算命令の命令コード中に、制御情報として被演算データの符号の有無を指定するデータタイプ情報が設定されており、
    制御部は、命令デコード部がデコード結果として抽出した上記データタイプ情報で特定される被演算データの符号の有無に応じて被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項2記載のデータ処理装置。
  4. 演算命令の命令コード中に、制御情報として被演算データの有効データ幅を検出する際のサーチ範囲の上限値を指定するサイズ上限値情報が設定されており、
    制御部は、上記被演算データのうち命令デコード部がデコード結果として抽出した上記サイズ上限値情報で指定された上限値に基づくデータ範囲をサーチして被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項2記載のデータ処理装置。
  5. 前記制御情報が有効であるか無効であるかを決定するための情報を格納する記憶部を更に有し、
    制御部は、記憶部に格納された情報に応じて被演算データの有効データ幅を検出することを特徴とする請求項2〜4の何れか一つに記載のデータ処理装置。
  6. 被演算データの有効データ幅を検出するため制御情報を格納する記憶部を備え、
    制御部は、上記記憶部から読み出した上記制御情報に基づいて、被演算データの有効データ幅を検出することを特徴とする請求項1記載のデータ処理装置。
  7. 記憶部は、制御情報として被演算データの符号の有無を指定するデータタイプ情報を格納し、
    制御部は、上記記憶部から読み出した上記データタイプ情報で特定される被演算データの符号の有無に応じて被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項記載のデータ処理装置。
  8. 記憶部は、制御情報として被演算データの有効データ幅を検出する際のサーチ範囲の上限値を指定するサイズ上限値情報を格納し、
    制御部は、上記被演算データのうち上記記憶部から読み出したサイズ上限値情報で指定された上限値に基づくデータ範囲をサーチして被演算データの有効データ幅を検出すると共に、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項記載のデータ処理装置。
  9. 記憶部は、制御部が被演算データの有効データ幅を検出すべきか否かを指定する処理設定情報を格納し、
    制御部は、上記記憶部から読み出した処理設定情報に、上記有効データ幅の検出を実行しない旨が指定されていると、予め定めたデータ幅を有効データ幅として設定し、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項6〜8の何れか一つに記載のデータ処理装置。
  10. 前記予め定めたデータ幅は、プロセッサのデータ長または被演算デ ータのサイズ上限値である請求項9記載のデータ処理装置。
  11. 処理設定情報に制御情報が有効か無効かが指定されており、
    制御部は、上記処理設定情報に有効データ幅の検出を実行しない旨及び制御情報が無効である旨が指定されていると、予め定めたデータ幅を被演算データの有効データ幅として設定し、当該有効データ幅に応じた命令実行サイクル数を決定することを特徴とする請求項9または10に記載のデータ処理装置。
JP2002261881A 2002-09-06 2002-09-06 データ処理装置 Expired - Lifetime JP3886870B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 西川ゴム工業株式会社 グラスラン及びグラスランのドアガラス組付方法

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