JP5680709B2 - マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム - Google Patents

マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム Download PDF

Info

Publication number
JP5680709B2
JP5680709B2 JP2013125449A JP2013125449A JP5680709B2 JP 5680709 B2 JP5680709 B2 JP 5680709B2 JP 2013125449 A JP2013125449 A JP 2013125449A JP 2013125449 A JP2013125449 A JP 2013125449A JP 5680709 B2 JP5680709 B2 JP 5680709B2
Authority
JP
Japan
Prior art keywords
register
data
unit
register unit
resulting
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.)
Active
Application number
JP2013125449A
Other languages
English (en)
Other versions
JP2013242879A (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2013242879A publication Critical patent/JP2013242879A/ja
Application granted granted Critical
Publication of JP5680709B2 publication Critical patent/JP5680709B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、一般に、マイクロプロセッサに関し、より具体的には、例えば、ディジタル信号プロセッサなどのマイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステムに関する。
通常、コンピュータシステムは、コンピュータシステムのメモリ内に格納された値に対して操作を実行し、コンピュータシステムの全体的な動作を管理するように構成された1つまたは複数のマイクロプロセッサ部を含む。また、これらのコンピュータシステムは、例えば、サウンドカードおよび/またはビデオカードなどの、様々なマルチメディア部を含み、各マルチメディア部は、それぞれのマルチメディア部内で複雑な数学計算を実行する、例えば、DSP(ディジタル信号プロセッサ)などの1つまたは複数のプロセッサをさらに含む。
DSP(ディジタル信号プロセッサ)は、例えば、1つまたは複数のALU(算術論理演算部)、1つまたは複数のMAC(multiply-and-accumulate unit)、ならびにDSP内の命令セットによって指定された動作を実行するように構成された他の機能部などの、そのような数学計算を実行するように特に構成されたハードウェア実行部を通常、含む。そのような動作には、例えば、関連する命令セットによってそれぞれが定義された、算術演算、論理演算、およびその他のデータ処理演算が含まれることが可能である。
一般に、DSP内の実行部は、メモリおよび実行部に結合されたレジスタファイルからデータおよびオペランドを読み取り、命令動作を実行し、結果をレジスタファイルの中に格納する。レジスタファイルは、単一のレジスタとして、または隣接する2つのレジスタ部の整列されたペアとしてそれぞれがアクセス可能である、複数のレジスタ部を含む。しかし、例えば、データを足す動作または引く動作などの、いくつかの特定の動作は、レジスタファイル内の別々のレジスタ部からのデータが、命令の実行のために適切に整列されることを要求する。このため、必要とされているのは、そのようなレジスタ部内に格納されたデータの適切な整列を可能にするために、単一の命令の実行中に、DSP内の隣接していない複数のレジスタ部を組み合わせる方法およびシステムである。
例えば、ディジタル信号プロセッサなどのマイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステムが、説明される。一実施形態では、第1のレジスタ部、および第2のレジスタ部が、処理部内のレジスタファイル構造から取り出され、第1のレジスタ部と、第2のレジスタ部とは、レジスタファイル構造内で隣接せずに配置されている。第1のレジスタ部と、第2のレジスタ部とは、単一の命令の実行中にさらに組み合わされて、結果としてレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。
代替の実施形態において、第1のレジスタ部、および第2のレジスタ部の取り出しに続いて、第1のレジスタ部から、第1のハーフワード(half word)部が取り出され、第2のレジスタ部から、第2のハーフワード部(half word unit)が、取り出される。第1のハーフワード部、および第2のハーフワード部は、単一の命令の実行中に、結果としてのレジスタ部の、対応する高い部分および低い部分にさらに入力されて、結果としてのレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。
命令セットが内部で実行されることが可能なディジタル信号処理システムを示すブロック図。 ディジタル信号処理システム内の汎用レジスタ構造の一実施形態を示すブロック図。 VLIW(超長命令語)ディジタル信号処理システムアーキテクチャの一実施形態を示すブロック図。 ディジタル信号処理システム内のレジスタ部を組み合わせる方法の一実施形態を示す流れ図。 図4に関連して説明されるレジスタ部を組み合わせる方法を示すブロック図。 ディジタル信号処理システム内のレジスタ部を組み合わせる方法の代替の実施形態を示す流れ図。 図6に関連して説明されるレジスタ部を組み合わせる方法を示すブロック図。
例えば、ディジタル信号プロセッサなどのマイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステムが、説明される。以下に説明されるシステムは、DSP(ディジタル信号プロセッサ)が、レジスタ部を組み合わせることを可能にするものの、本システムは、マイクロプロセッサ部、あるいは単一の命令の実行中に、複数のレジスタ部を組み合わせて、結果としてより大きいレジスタ部(resulting larger resister)にすることができる他の任意の処理部を使用して、実施されてもよいことを理解されたい。
一般に、DSP内の実行部は、レジスタファイルからデータおよびオペランドを読み取り、命令動作を実行し、結果をレジスタファイルの中に格納する。レジスタファイルは、単一のレジスタとして、または隣接する2つのレジスタ部の整列されたペアとしてそれぞれがアクセス可能である、複数のレジスタ部を含む。しかし、例えば、データを足す動作または引く動作などの、いくつかの特定の動作は、レジスタファイル内の別々のレジスタ部からのデータが、命令の実行のために適切に整列されることを要求する。後段で詳細に説明される実施形態は、その後のベクトル演算に備えて、そのようなレジスタ部内に格納されたデータの適切な整列を可能にするために、単一の命令の実行中にDSP内の隣接していない複数のレジスタ部の組み合わせ/連結を円滑にする。
一実施形態では、第1のレジスタ部、および第2のレジスタ部が、処理部内のレジスタファイル構造から取り出され、第1のレジスタ部と、第2のレジスタ部とは、レジスタファイル構造内で隣接せずに配置されている。第1のレジスタ部と、第2のレジスタ部とは、単一の命令の実行中にさらに組み合わされて、結果としてより大きいレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。
代替の実施形態において、第1のレジスタ部、および第2のレジスタ部の取り出しに続いて、第1のレジスタ部からの第1のハーフワード部、および第2のレジスタ部からの第2のハーフワード部が、取り出される。第1のハーフワード部、および第2のハーフワード部は、単一の命令の実行中に、結果としてのレジスタ部の、対応する高い部分および低い部分にさらに入力されて、結果としてレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。
図1は、命令セットが内部で実行されることが可能なディジタル信号処理システムのブロック図である。図1に示されるとおり、ディジタル信号処理システム100は、処理部110と、メモリ150と、処理部110をメモリ150に結合する1つまたは複数のバス160とを含む。
メモリ150は、例えば、VLIW(超長命令語)コンパイラによって生成されるVLIWパケットの形態などで、データおよび命令を格納し、各VLIWパケットは、1つまたは複数の命令を備える。パケットの各命令は、通常、所定の幅であり、メモリ150内に或る特定のアドレスを有し、したがって、パケットの中の第1の命令は、通常、このパケットの最後の命令と比べて、より低いメモリアドレスを有する。メモリに関するアドレス指定スキームは、当技術分野でよく知られており、本明細書で詳細に説明することはしない。メモリ150の中の命令は、バス160を介して処理部110に読み込まれる。
処理部110は、1つまたは複数のパイプライン140を介して1つまたは複数のレジスタファイル構造120に結合された中央処理装置コア130をさらに備える。処理部110は、1つまたは複数のマイクロプロセッサ、ディジタル信号プロセッサなどをさらに備える。
レジスタファイル120は、汎用の演算をサポートし、図2に関連して、後段でさらに詳細に説明される汎用レジスタ部のセットと、例えば、ハードウェアループ、述語、およびその他の特殊なオペランドなどの専用機能をサポートする制御レジスタ部のセットとをさらに備える。
図2は、ディジタル信号処理システム内の汎用レジスタ構造の一実施形態を示すブロック図である。図2に示されるとおり、一実施形態では、レジスタファイル120内の汎用レジスタファイル構造200は、例えば、32個の32ビット幅のレジスタ部210などの、複数のレジスタ部を含み、各レジスタ部は、単一のレジスタとして、または隣接する2つのレジスタ部210の整列されたペア220としてそれぞれがアクセス可能である。
汎用レジスタ部210は、適切な命令に基づいて、複数の名前で参照されることが可能である。例えば、レジスタ部210は、R、R、...、R30、およびR31として個々に参照されることが可能である。さらに、レジスタ部Rと、レジスタ部Rとが、R1:0として参照される64ビットのレジスタペア220を形成することが可能である。同様に、レジスタ部Rと、レジスタ部Rとが、R3:2として参照される64ビットのレジスタペア220を形成することが可能であり、レジスタ部R28と、レジスタ部R29とが、R29:28として参照される64ビットのレジスタペア220を形成することが可能であり、さらに、レジスタ部R30と、レジスタ部R31とが、R31:30として参照される64ビットのレジスタペア220を形成することが可能である。
一実施形態では、汎用レジスタ部210が、例えば、アドレス生成、スカラー算術、およびベクトル算術などの、汎用計算目的で使用され、読み込み/格納命令のためのアドレス、数値命令のためのデータオペランド、およびベクトル命令のためのベクトルオペランドを含め、命令のためのすべてのオペランドを提供する。
図3は、VLIW(超長命令語)ディジタル信号処理システムアーキテクチャの一実施形態を示すブロック図である。VLIWシステムアーキテクチャ300は、命令読み込みバス320、データ読み込みバス322、およびデータ読み込み/格納バス324を介してDSP(ディジタル信号プロセッサ)330に結合されたメモリ310を含む。
一実施形態では、メモリ310は、例えば、1つないし4つの命令を有するVLIWパケットの形態で、データおよび命令を格納する。メモリ310内に格納された命令は、命令読み込みバス320を介してDSP330に読み込まれる。一実施形態では、各命令は、4ワード幅を有する128ビット命令読み込みバス320を介してDSP330に読み込まれる、32ビットワード幅を有する。一実施形態では、メモリ310は、命令とデータの両方を格納する32ビットアドレス空間を有し、リトルエンディアンモードで動作する、統合されたバイトアドレス指定可能なメモリである。
一実施形態では、DSP330は、シーケンサ335と、4つの処理部または実行部345のための4つのパイプライン340と、例えば、図2に関連して詳細に説明される汎用レジスタファイル構造200などの汎用レジスタファイル構造350(複数の汎用レジスタ部を備える)と、制御レジスタファイル構造360とを備える。シーケンサ335は、メモリ310から命令のパケットを受信し、この命令内に含まれる情報を使用して、受信された各パケットの各命令に関して、適切なパイプライン340、およびそれぞれの実行部345を決定する。パケットの各命令に関して、この決定を行った後、シーケンサ335は、これらの命令を、適切な実行部345による処理のために、適切なパイプライン340に入力する。
一実施形態では、実行部345は、ベクトルシフト部、ベクトルMAC部、読み込み部、および読み込み/格納部をさらに備える。ベクトルシフト部345は、例えば、シフトおよび追加/サブ動作、シフトおよび論理動作、並べ替え動作、述語動作、ビット操作、およびベクトルハーフワード/ワードシフトなどのS型(シフト部)命令、64ビット算術および論理動作などの64型(64ビット算術)命令、32ビット論理動作、並べ替え動作、32ビット算術動作などの32型(32ビット算術)命令、ジャンプ/呼び出しPC関係動作などのJ型(ジャンプ)命令、制御レジスタ転送などのCR型(制御レジスタ)命令、ハードウェアループセットアップを実行する。ベクトルMAC部345は、例えば、単精度命令、倍精度命令、複素命令、およびベクトルバイト/ハーフワード命令などのM型(乗算部)命令、64型命令、32型命令、J型命令、ならびにジャンプ/呼び出しレジスタ動作などのJR型(ジャンプレジスタ)命令を実行する。読み込み部345は、メモリ310から汎用レジスタファイル構造350にデータを読み込み、例えば、読み込み型命令および32型命令を実行する。読み込み/格納部345は、汎用レジスタファイル構造350からメモリ310にデータを再び読み込み、格納し、例えば、読み込み型命令、格納型命令、および32型命令を実行する。
命令を受け取った各実行部345は、4つの実行部345によって共有される汎用レジスタファイル構造350を使用して命令を実行する。命令によって必要とされるデータは、64ビットデータ読み込みバス322を介して汎用レジスタファイル構造350に読み込まれる。パケットの命令が、実行部345によって実行された後、結果としてのデータが、汎用レジスタファイル構造350に格納され、その後、64ビットデータ読み込み/格納バス324を介してメモリ310に読み込まれ、格納される。通常、パケットの1つないし4つの命令が、1クロックサイクル中に4つの実行部345によって並行に実行されて、1つの命令の最大値が、各クロックサイクルに関するパイプライン340によって受け取られて、処理される。
一実施形態では、実行部345が、制御レジスタファイル構造360を使用して、対応する命令を実行することも可能である。制御レジスタファイル構造360は、例えば、修飾レジスタ部、ステータスレジスタ部、および述語レジスタ部などの専用レジスタ部のセットを備える。
図4は、ディジタル信号処理システム100内のレジスタ部を組み合わせる方法の一実施形態を示す流れ図である。図4の実施形態に示されるとおり、処理ブロック410で、ディジタル信号処理システム300内のレジスタ部を組み合わせる/連結する命令が、受信される。一実施形態では、DSP330内の実行部345が、後段で説明されるとおり、この命令を受信し、この命令を実行して、汎用レジスタファイル構造350の中に格納された所定のレジスタ部を組み合わせる。一実施形態では、これらの所定のレジスタ部は、汎用レジスタファイル構造内で隣接せずに配置される。
処理ブロック420で、例えば、第1の32ビット幅レジスタ部および第2の32ビット幅レジスタ部などの、所定のレジスタ部が、識別される。一実施形態では、実行部345が、汎用レジスタファイル構造350と通信し、組み合わされることが要求されるレジスタ部を識別する。一実施形態では、次に、メモリ310が、命令によって必要とされるデータを、64ビットデータ読み込みバス322を介して汎用レジスタファイル構造350に読み込む。代替として、データは、識別された第1のレジスタ部および第2のレジスタ部の中に既に格納されていてもよい。
処理ブロック430で、識別されたレジスタ部、および関連するデータが、取り出される。一実施形態では、実行部345が、汎用レジスタファイル構造350から、識別されたレジスタ部、および関連するデータを取り出す。
処理ブロック440で、取り出されたレジスタ部が、結果として、より大きいレジスタペアの範囲内で組み合わされる/連結される。一実施形態では、実行部345が、第1の32ビット幅レジスタ部および第2の32ビット幅レジスタ部などの、取り出されたレジスタ部、および関連するデータを組み合わせて、結果としての64ビット幅レジスタペア部にして、第1のレジスタ部、および関連するデータが、結果としてのレジスタ部の高い部分に入力され、第2のレジスタ部、および関連するデータが、結果としてのレジスタ部の低い部分に入力されるようにする。
最後に、処理ブロック450で、結果としてのレジスタペアが、さらなる処理のために格納される。一実施形態では、実行部345が、結果としてのレジスタ部を汎用レジスタファイル構造350に出力し、結果としてのレジスタ部を、さらなる命令のさらなる処理のために格納する。
図5は、図4に関連して説明されるレジスタ部を組み合わせる方法を示すブロック図である。図5に示されるとおり、ソースレジスタ部R510およびR520が、識別され、汎用レジスタファイル構造350からさらに取り出される。
一実施形態では、ソースレジスタ部R510とソースレジスタ部R520とを組み合わせて/連結して、結果として、より大きい宛先レジスタ部R530にする命令は、以下のとおりである。すなわち、
=combine(R,R
命令の実行時に、レジスタ部R510とレジスタ部R520とが組み合わされ/連結されて、結果として、より大きい宛先レジスタ部R530となり、レジスタ部R510の中に存在するデータが、レジスタ部R530の高い部分に入力されるようになり、レジスタ部R520の中に存在するデータが、レジスタ部R530の低い部分に入力されるようになる。例えば、R510とR520がともに、32ビット幅レジスタ部である場合、結果としての宛先レジスタ部R530は、64ビット幅レジスタである。
図6は、ディジタル信号処理システム300内のレジスタ部を組み合わせる方法の代替の実施形態を示す流れ図である。図6の実施形態に示されるとおり、処理ブロック610で、ディジタル信号処理システム300内のレジスタ部を組み合わせる/連結する命令が、受信される。一実施形態では、DSP330内の実行部345が、この命令を受信し、この命令を実行して、汎用レジスタファイル構造350の中に格納された所定のレジスタ部を組み合わせる。一実施形態では、これらの所定のレジスタ部は、汎用レジスタファイル構造内で隣接せずに配置される。
処理ブロック620で、例えば、第1の32ビット幅レジスタ部、および第2の32ビット幅レジスタ部などの所定のレジスタ部が、識別される。一実施形態では、実行部345が、汎用レジスタファイル構造350と通信し、組み合わされることが要求されるレジスタ部を識別する。一実施形態では、次に、メモリ310が、命令によって必要とされるデータを、64ビットデータ読み込みバス322を介して汎用レジスタファイル構造350に読み込む。代替として、データは、識別された第1のレジスタ部および第2のレジスタ部の中に既に格納されていてもよい。
処理ブロック630で、識別されたレジスタ部、および関連するデータが、取り出される。一実施形態では、実行部345が、汎用レジスタファイル構造350から、識別されたレジスタ部、および関連するデータを取り出す。
処理ブロック640で、第1のハーフワード部が、第1のレジスタ部から取り出され、結果としてのレジスタ部に入力される。一実施形態では、実行部345は、第1のレジスタ部から、一実施形態では、第1のレジスタ部の高いハーフワード部であることが可能であり、あるいは、代替として、第1のレジスタ部の低いハーフワード部であることが可能である、第1の16ビット幅ハーフワード部をさらに取り出し、第1のハーフワード部を、結果としての宛先レジスタ部の高い部分に入力する。
処理ブロック650で、第2のハーフワード部が、第2のレジスタ部から取り出され、結果としてのレジスタ部に入力される。一実施形態では、実行部345は、第2のレジスタ部から、一実施形態では、第2のレジスタ部の高いハーフワード部であることが可能であり、あるいは、代替として、第2のレジスタ部の低いハーフワード部であることが可能である、第2の16ビット幅ハーフワード部をさらに取り出し、第2のハーフワード部を、結果としてのレジスタ部の低い部分に入力して、32ビット幅の、結果としてのレジスタ部を獲得する。
最後に、処理ブロック660で、結果としてのレジスタ部が、さらなる処理のために格納される。一実施形態では、実行部345が、結果としてのレジスタ部を汎用レジスタファイル構造350に出力し、結果としてのレジスタ部を、さらなる命令のさらなる処理のために格納する。
図7は、図6に関連して説明されるレジスタ部を組み合わせる方法を示すブロック図である。図7に示されるとおり、ソースレジスタ部R540およびR550が、識別され、汎用レジスタファイル構造200から取り出される。
一実施形態では、ソースレジスタ部R540とソースレジスタ部R550とを組み合わせて/連結して、結果としての宛先レジスタ部R560にする命令は、以下のとおりである。すなわち、
=combine(R[HL],R[HL])
ただし、R[HL]は、高いハーフワードHと、低いハーフワードLとを有するソースレジスタ部Rであり、Rは、高いハーフワードHと、低いハーフワードLとを有するソースレジスタ部Rである。
図7に示されるとおり、命令が実行されると、ソースレジスタ部R550の高いハーフワードRT1、または、代替として、ソースレジスタ部R550の低いハーフワードRT2が、多重化装置555を介してレジスタ部R560の高い部分に入力され、さらに、ソースレジスタ部R540の高いハーフワードRS1、または、代替として、ソースレジスタ部R540の低いハーフワードRS2が、多重化装置545を介してレジスタ部R560の低い部分に入力される。例えば、R540とR550がともに、32ビット幅レジスタ部である場合、一実施形態では、ソースレジスタ部R550の高いハーフワードRT1は、16ビット幅であり、ソースレジスタ部R540の低いハーフワードRS2もやはり、16ビット幅であり、このため、結果としての宛先レジスタ部R560は、32ビット幅レジスタである。
情報および信号は、様々な異なる技術および技法のいずれを使用して表現されることも可能であることが、当業者には理解されよう。例えば、以上の説明の全体で言及されることが可能なデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁気粒子、光の場または粒子、あるいは以上の任意の組み合わせによって表現されることが可能である。
本明細書で開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェアとして実施されても、コンピュータソフトウェアとして実施されても、あるいはその両方の組み合わせとして実施されてもよいことが、当業者にはさらに理解されよう。ハードウェアとソフトウェアの、この互換性を明確に示すのに、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、概ね機能の点で以上に説明されてきた。そのような機能が、ハードウェアとして実施されるか、ソフトウェアとして実施されるかは、全体的なシステムに課される特定の応用上の制約、および設計上の制約に依存する。当業者は、説明される機能を、それぞれの特定の応用例に関して、様々な仕方で実施することができるが、そのような実施上の決定が、本発明の範囲からの逸脱を生じさせるものと解釈されてはならない。
本明細書で開示される実施形態に関連して説明される様々な例示的な論理ブロック図、モジュール、および回路は、汎用プロセッサ、DSP(ディジタル信号プロセッサ)、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレー)もしくは他のプログラミング可能なロジックデバイス、ディスクリートのゲートもしくはトランジスタロジック、ディスクリートのハードウェアコンポーネント、あるいは本明細書で説明される機能を実行するように設計された以上の任意の組み合わせを使用して、実施される、または実行されることが可能である。汎用プロセッサは、マイクロプロセッサであることが可能であるが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシンであってもよい。また、プロセッサは、コンピューティングデバイスの組み合わせとして、例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または他の任意のそのような構成として実施されることも可能である。
本明細書で開示される実施形態に関連して説明される方法またはアルゴリズムのステップは、ハードウェアにおいて直接に、プロセッサによって実行されるソフトウェアにおいて、またはこの2つの組み合わせで実施されることが可能である。これらの実施形態は、何らかの形態のプロセッサ上、もしくはプロセッサコア(コンピュータのCPUなどの)上で実行される、またはそれ以外で、マシン可読媒体上、もしくはコンピュータ可読媒体上、またはマシン可読媒体内部、もしくはコンピュータ可読媒体内部で実施される、または実現されるソフトウェアプログラムとして、またはそのようなソフトウェアプログラムをサポートするように使用されることが可能であることを理解されたい。マシン可読媒体には、マシン(例えば、コンピュータ)によって読み取られることが可能な形態で情報を格納する、または伝送するための任意の機構が含まれる。例えば、マシン可読媒体には、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルなディスク、CD−ROM、または当技術分野で知られている他の任意の記憶媒体が含まれる。例示的な記憶媒体は、プロセッサが、その記憶媒体から情報を読み取ること、およびその記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体化していてもよい。プロセッサと記憶媒体は、ASICの中に存在することが可能である。このASICは、端末装置内に存在することが可能である。代替として、プロセッサと記憶媒体は、端末装置内のディスクリートのコンポーネントとして存在してもよい。
開示される実施形態の以上の説明は、任意の当業者が、本発明を作成する、または使用することができるようにするように提供される。これらの実施形態に対する様々な変形が、当業者には直ちに明白となり、本明細書において規定される一般的な原理は、本発明の趣旨または範囲を逸脱することなく、他の実施形態に適用されることが可能である。このため、本発明は、本明細書において示される実施形態に限定されることを意図しておらず、本明細書において開示される原理および新奇な特徴と合致する最も広い範囲を与えられるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
コンピュータ可読媒体であって、
処理システムにおいて実行されると、前記処理システムに、結果としてレジスタ部を形成するように、レジスタファイル構造から第1のレジスタ部および第2のレジスタ部を選択的に組み合わせるようにし、前記第1のレジスタ部と前記第2のレジスタ部は、前記レジスタファイル構造内で隣接せずに配置されている、前記媒体に含まれる複数の実行可能命令に関する命令を含む、コンピュータ可読媒体。
[C2]
前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータは前記結果としてのレジスタ部の対応する部分の中に格納される、C1に記載のコンピュータ可読媒体。
[C3]
前記第1のレジスタ部および前記第2のレジスタ部は32ビット幅レジスタ部であり、前記結果としてのレジスタ部は64ビット幅レジスタ部である、C2に記載のコンピュータ可読媒体。
[C4]
前記第1のレジスタ部の第1のハーフワード部および前記第2のレジスタ部の第2のハーフワード部は前記結果としてのレジスタ部の対応する部分の中に格納される、C1に記載のコンピュータ可読媒体。
[C5]
前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である、C4に記載のコンピュータ可読媒体。
[C6]
方法であって、
実行可能命令を受信し、および
結果としてレジスタ部を形成するためレジスタファイル構造から第1のレジスタ部と第2のレジスタ部とを選択的に組み合わせるために前記命令を実行することを含み、前記第1のレジスタ部と前記第2のレジスタ部は前記レジスタファイル構造内で隣接せずに配置されている方法。
[C7]
前記実行することは、前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、C6に記載の方法。
[C8]
前記第1のレジスタ部および前記第2のレジスタ部は32ビット幅レジスタ部であり、前記結果としてのレジスタ部は64ビット幅レジスタ部である、C7に記載の方法。
[C9]
前記実行することは、前記第1のレジスタ部の第1のハーフワード部、および前記第2のレジスタ部の第2のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、C6に記載の方法。
[C10]
前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部であるC9に記載の方法。
[C11]
前記実行することは、
前記第1のレジスタ部および前記第2のレジスタ部に関連するデータをメモリから取り出すこと、
前記データを、前記第1のレジスタ部内および前記第2のレジスタ部内にそれぞれ格納すること、および
前記結果としてのレジスタ部に前記データを選択的に組み合わせることをさらに含む、C6に記載の方法。
[C12]
方法であって、
処理部内のレジスタファイル構造から第1のレジスタ部および第2のレジスタ部を取り出し、前記第1のレジスタ部および前記第2のレジスタ部は前記レジスタファイル構造内で隣接せずに配置されており、
結果としてのレジスタ部を形成するために、単一の命令の実行中に前記第1のレジスタ部と前記第2のレジスタ部とを選択的に組み合わせ、および
さらなる処理のために、前記結果としてのレジスタ部を前記レジスタファイル構造内に格納することを含む方法。
[C13]
前記組み合わせることは、
前記第1のレジスタ部と前記第2のレジスタ部とを組み合わせる前記命令を受信すること、および
前記処理部内で前記命令を実行することをさらに含む、C12に記載の方法。
[C14]
前記組み合わせることは、前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、C12に記載の方法。
[C15]
前記第1のレジスタ部および前記第2のレジスタ部は、32ビット幅レジスタ部であり、前記結果としてのレジスタ部は64ビット幅レジスタ部である、C14に記載の方法。
[C16]
前記組み合わせることは、前記第1のレジスタ部の第1のハーフワード部および前記第2のレジスタ部の第2のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、C12に記載の方法。
[C17]
前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である、C16に記載の方法。
[C18]
前記第1のレジスタ部および前記第2のレジスタ部に関連するデータをメモリから取り出すこと、
前記データを前記第1のレジスタ部内および前記第2のレジスタ部内にそれぞれ格納すること、および
前記結果としてのレジスタ部に前記データを選択的に組み合わせることをさらに含む、C12に記載の方法。
[C19]
実行可能命令を含むコンピュータ可読媒体であって、
処理システムにおいて実行されると、前記処理システムに、
処理部内のレジスタファイル構造から第1のレジスタ部および第2のレジスタ部を取り出し、前記第1のレジスタ部および前記第2のレジスタ部は前記レジスタファイル構造内で隣接せずに配置されおり、
単一の命令の実行中に結果としてのレジスタ部を形成するため、前記第1のレジスタ部と前記第2のレジスタ部とを選択的に組み合わせ、および
前記結果としてのレジスタ部をさらなる処理のために前記レジスタファイル構造内に格納する
ことを含む方法を実行させるようにするコンピュータ可読媒体。
[C20]
前記組み合わせることは、
前記第1のレジスタ部と前記第2のレジスタ部とを組み合わせる前記命令を受信すること、および
前記処理部内で前記命令を実行することをさらに含む、
C19に記載のコンピュータ可読媒体。
[C21]
前記組み合わせることは、
前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、C19に記載のコンピュータ可読媒体。
[C22]
前記第1のレジスタ部および前記第2のレジスタ部は32ビット幅レジスタ部であり、前記結果としてのレジスタ部は64ビット幅レジスタ部である、C21に記載のコンピュータ可読媒体。
[C23]
前記組み合わせることは、前記第1のレジスタ部の第1のハーフワード部および前記第2のレジスタ部の第2のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、C19に記載のコンピュータ可読媒体。
[C24]
前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である、C23に記載のコンピュータ可読媒体。
[C25]
前記方法は、
前記第1のレジスタ部および前記第2のレジスタ部に関連するデータをメモリから取り出すこと、
前記データを前記第1のレジスタ部内および前記第2のレジスタ部内にそれぞれ格納すること、および
前記結果としてのレジスタ部に前記データを選択的に組み合わせる、
ことをさらに含む、C19に記載のコンピュータ可読媒体。
[C26]
集積回路であって、
1つまたは複数の命令を含むパケットを格納するメモリと、および
前記メモリに結合されたプロセッサとを含み、前記プロセッサは処理部および前記処理部に結合されたレジスタファイル構造とをさらに含み、
前記処理部は、第1のレジスタ部と第2のレジスタ部とを前記レジスタファイル構造から取り出し、第1のレジスタ部と第2のレジスタ部は、前記第1のレジスタ部と前記第2のレジスタ部とを選択的に組み合わせ、単一の命令の実行中に結果としてのレジスタ部を形成し、そして前記結果としてのレジスタ部をさらなる処理のために前記レジスタファイル構造内に格納するため、前記レジスタファイル構造内で隣接せずに配置されている、集積回路。
[C27]
前記処理部は前記第1のレジスタ部と前記第2のレジスタ部とを組み合わせる前記命令を前記メモリからさらに受信しそして前記命令を実行する、C26に記載の回路。
[C28]
前記処理部は、前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中にさらに格納する、C26に記載の回路。
[C29]
前記第1のレジスタ部および前記第2のレジスタ部は32ビット幅レジスタ部であり、前記結果としてのレジスタ部は64ビット幅レジスタ部である、C28に記載の回路。
[C30]
前記処理部は、前記第1のレジスタ部の第1のハーフワード部および前記第2のレジスタ部の第2のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中にさらに格納する、C26に記載の回路。
[C31]
前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である、C30に記載の回路。
[C32]
前記メモリは前記第1のレジスタ部および前記第2のレジスタ部に関連するデータをさらに格納し、前記レジスタファイル構造は前記データをさらに取り出し前記データを前記第1のレジスタ部内および前記第2のレジスタ部内にそれぞれ格納し、前記処理部は前記データを前記結果としてのレジスタ部内に選択的にさらに組み合わせる、C26に記載の回路。
[C33]
装置であって、
処理部内のレジスタファイル構造から、前記レジスタファイル構造内で隣接せずに配置されている第1のレジスタ部と第2のレジスタ部とを取り出するための手段と、
単一の命令の実行中に、結果としてレジスタ部を形成するために、前記第1のレジスタ部と前記第2のレジスタ部とを選択的に組み合わせる手段と、および
前記結果としてのレジスタ部をさらなる処理のために前記レジスタファイル構造内に格納するための手段と
を含む装置。
[C34]
前記第1のレジスタ部と前記第2のレジスタ部とを組み合わせる前記命令を受信するための手段と、
前記処理部内で前記命令を実行するための手段と
をさらに含む、C33に記載の装置。
[C35]
前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納するための手段をさらに含む、C33に記載の装置。
[C36]
前記第1のレジスタ部および前記第2のレジスタ部は32ビット幅レジスタ部であり、前記結果としてのレジスタ部は、4ビット幅レジスタ部である、C35に記載の装置。
[C37]
前記第1のレジスタ部の第1のハーフワード部、および前記第2のレジスタ部の第2のハーフワード部を、前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納するための手段をさらに含む、C33に記載の装置。
[C38]
前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である、C37に記載の装置。
[C39]
前記第1のレジスタ部および前記第2のレジスタ部に関連するデータをメモリから取り出するための手段と、
前記データを、前記第1のレジスタ部内、および前記第2のレジスタ部内にそれぞれ格納するための手段と、
前記結果としてのレジスタ部内に前記データを選択的に組み合わせるための手段とをさらに含む、C33に記載の装置。

Claims (35)

  1. 命令を記憶する非一時的なコンピュータ可読有形媒体であって、
    前記命令は、プロセッサによって実行されると、前記プロセッサに、
    レジスタファイル構造の第1のレジスタ部と、前記レジスタファイル構造の第2のレジスタ部とを識別すことであって、前記第1のレジスタ部と前記第2のレジスタ部は、前記レジスタファイル構造の列内で隣接して格納されていないことと、
    メモリからの第1のデータを前記識別された第1のレジスタ部に読み込み、前記メモリからの第2のデータを前記識別された第2のレジスタ部に読み込むことと、
    結果としてのレジスタ部に、組み合わされたデータを格納するために、前記読み込まれた第1のレジスタ部のすべてのデータビットを備える前記第1のデータと前記読み込まれた第2のレジスタ部のすべてのデータビットを備える前記第2のデータとを組み合わせることであって、なお、前記結果としてのレジスタ部は、前記第1のレジスタ部よりも大きく、また、前記第2のレジスタ部よりも大きいことと
    を実行させる、非一時的なコンピュータ可読有形媒体。
  2. 前記第1のデータは、前記結果としてのレジスタ部の第1の連続する部分において格納され、前記第2のデータは、前記結果としてのレジスタ部の第2の連続する部分において格納される、請求項1に記載の非一時的コンピュータ可読有体。
  3. 前記第1のレジスタ部は、第1の32ビット幅レジスタ部を含み、前記第2のレジスタ部は、第2の32ビット幅レジスタ部を含み、前記結果としてのレジスタ部は、64ビット幅レジスタ部を含む、請求項2に記載の非一時的なコンピュータ可読有形媒体。
  4. 前記プロセッサは、前記第1のデータおよび前記第2のデータを連結することによって前記第1および第2のデータを組み合わせるためのものである請求項1に記載の非一時的なコンピュータ可読有形媒体。
  5. 前記第1のデータおよび前記第2のデータを組み合わせるために、前記レジスタファイル構造から、前記読み込まれた第1のレジスタ部と、前記読み込まれた第2のレジスタ部とを取り出すように前記プロセッサによって実行可能な命令をさらに備える請求項1に記載の非一時的なコンピュータ可読有形媒体。
  6. 前記レジスタファイル構造において、前記結果としてのレジスタ部を格納するように前記プロセッサによって実行可能な命令をさらに備える請求項1に記載の非一時的なコンピュータ可読有形媒体。
  7. レジスタファイル構造の第1のレジスタ部および前記レジスタファイル構造の第2のレジスタ部からのデータを組み合わせるための命令を受信することと、
    前記命令を処理部において実行することと
    を備え、前記命令を実行することは、
    前記第1のレジスタ部と、前記第2のレジスタ部とを識別することであって、なお、前記第1のレジスタ部と前記第2のレジスタ部は、前記レジスタファイル構造の列内で隣接して格納されていないことと、
    メモリからの第1のデータを前記識別された第1のレジスタ部に読み込み、前記メモリからの第2のデータを前記識別された第2のレジスタ部に読み込むことと、
    結果としてのレジスタ部に格納される組み合わされたデータを形成するために、前記読み込まれた第1のレジスタ部に含まれたすべてのデータビットを備える前記第1のデータと、前記読み込まれた第2のレジスタ部に含まれたすべてのデータビットを備える前記第2のデータとを組み合わせることであって、なお、前記結果としてのレジスタ部は、前記第1のレジスタ部よりも大きいか、または、前記第2のレジスタ部よりも大きいこととを備える方法。
  8. 前記第1のデータおよび前記第2のデータを組み合わせることはさらに、前記結果としてのレジスタ部の第1の連続する部分に前記第1のデータを含めることと、前記結果としてのレジスタ部の第2の連続する部分に前記第2のデータを含めることとを備える、請求項7に記載の方法。
  9. 前記第1のレジスタ部は、第1の32ビット幅レジスタ部を含み、前記第2のレジスタ部は、第2の32ビット幅レジスタ部を含み、前記結果としてのレジスタ部は、64ビット幅レジスタ部を含む、請求項8に記載の方法。
  10. 前記第1のデータおよび前記第2のデータを組み合わせることはさらに、前記レジスタファイル構造から、前記読み込まれた第1のレジスタ部と、前記読み込まれた第2のレジスタ部とを取り出すことを備える請求項7に記載の方法。
  11. 前記第1のデータおよび前記第2のデータを組み合わせることは、前記第1および第2のデータを連結することを備える請求項7に記載の方法。
  12. 前記結果としてのレジスタ部は、単一の命令の実行中に形成される請求項7に記載の方法。
  13. 前記レジスタファイル構造において前記結果としてのレジスタ部を格納することをさらに備える請求項7に記載の方法。
  14. 前記第1のレジスタ部および前記第2のレジスタ部を識別することは、識別通信を実行部から前記レジスタファイル構造に送ることを備える請求項7に記載の方法。
  15. 前記第1のデータおよび前記第2のデータは、64ビットデータバスを介して前記識別された第1のレジスタ部および前記識別された第2のレジスタ部に同時に読み込まれる請求項9に記載の方法。
  16. 各々が1または複数の命令を備えるパケットを格納するメモリと、
    前記メモリに結合されたプロセッサと
    を備えた集積回路であって、
    前記プロセッサはさらに処理部と、前記処理部に結合されたレジスタファイル構造とを備え、前記処理部は、前記レジスタファイル構造の第1のレジスタ部および前記レジスタファイル構造の第2のレジスタ部からのデータを組み合わせるための命令を実行するように動作可能であり、前記命令の実行は、前記処理部に、
    前記第1のレジスタ部と、前記第2のレジスタ部とを識別させ、なお、前記第1のレジスタ部と前記第2のレジスタ部は、前記レジスタファイル構造の列内で隣接して格納されていない、
    メモリからの第1のデータを前記識別された第1のレジスタ部に読み込ませ、前記メモリからの第2のデータを前記識別された第2のレジスタ部に読み込ませ、
    結果としてのレジスタ部に格納される組み合わされたデータを形成するために、前記読み込まれた第1のレジスタ部に格納されたすべてのデータビットを備える前記第1のデータと、前記読み込まれた第2のレジスタ部に格納されたすべてのデータビットを備える前記第2のデータとを組み合わさせ、なお、前記結果としてのレジスタ部は、前記第1のレジスタ部よりも大きいか、または、前記第2のレジスタ部よりも大きい
    ように動作可能な集積回路。
  17. 前記処理部はさらに、前記第1のレジスタ部および第2のレジスタ部を識別する前に、前記第1および第2のレジスタ部を組み合わせるための命令を受信し、前記命令を実行するように動作可能な請求項16に記載の集積回路。
  18. 前記処理部はさらに、前記結果としてのレジスタ部の第1の連続する部分に前記第1のデータを含め、前記結果としてのレジスタ部の第2の連続する部分に前記第2のデータを含めるように動作可能な請求項16に記載の集積回路。
  19. 前記第1のレジスタ部は、第1の32ビット幅レジスタ部を含み、前記第2のレジスタ部は、第2の32ビット幅レジスタ部を含み、前記結果としてのレジスタ部は、64ビット幅レジスタ部を含む、請求項18に記載の集積回路。
  20. 前記処理部はさらに、前記第1のデータおよび前記第2のデータを組み合わせるために、前記レジスタファイル構造から、前記読み込まれた第1のレジスタ部と、前記読み込まれた第2のレジスタ部とを取り出すように動作可能な請求項16に記載の集積回路。
  21. 前記処理部は、前記第1のデータおよび前記第2のデータを連結することによって前記第1のデータおよび第2のデータを組み合わせるように動作可能な請求項16に記載の集積回路。
  22. 前記処理部はさらに、前記レジスタファイル構造において前記結果としてのレジスタ部を格納するように動作可能な請求項16に記載の集積回路。
  23. レジスタファイル構造の第1のレジスタ部および前記レジスタファイル構造の第2のレジスタ部からのデータを組み合わせるための命令を実行するための手段と、
    前記命令を実行することに応答して組み合わされる前記第1のレジスタ部と、前記第2のレジスタ部とを識別する手段であって、前記第1のレジスタ部と前記第2のレジスタ部は、前記レジスタファイル構造の列内で隣接して格納されていない手段と、
    前記命令を実行することに応答して、メモリからの第1のデータを前記識別された第1のレジスタ部に読み込むことと、前記メモリからの第2のデータを前記識別された第2のレジスタ部に読み込むこととを実行する手段と、
    前記命令を実行することに応答して、結果としてのレジスタ部に、格納される組み合わされたデータを形成するために、前記読み込まれた第1のレジスタ部に含まれたすべてのデータビットを備える前記第1のデータと前記読み込まれた第2のレジスタ部に含まれたすべてのデータビットを備える前記第2のデータとを組み合わせる手段であって、前記結果としてのレジスタ部は、前記第1のレジスタ部よりも大きいか、または、前記第2のレジスタ部よりも大きい手段と
    を備える装置。
  24. 前記第1のレジスタ部および第2のレジスタ部を識別する前に、前記第1および第2のレジスタ部を組み合わせるための命令を受信する手段
    をさら備える請求項23に記載の装置。
  25. 前記結果としてのレジスタ部の第1の連続する部分に前記第1のデータを含めることと、前記結果としてのレジスタ部の第2の連続する部分における前記第2のデータを含めることとを実行する手段をさらに備える、請求項23に記載の装置。
  26. 前記第1のレジスタ部は、第1の32ビット幅レジスタ部を含み、前記第2のレジスタ部は、第2の32ビット幅レジスタ部を含み、前記結果としてのレジスタ部は、64ビット幅レジスタ部を含む、請求項25に記載の装置。
  27. 前記第1のデータおよび前記第2のデータを組み合わせる手段はさらに、前記レジスタファイル構造から、前記読み込まれた第1のレジスタ部と、前記読み込まれた第2のレジスタ部とを取り出す手段を備える請求項23に記載の装置。
  28. 前記第1のデータおよび前記第2のデータを組み合わせる手段は、前記第1のデータおよび第2のデータを連結する手段を備える請求項23に記載の装置。
  29. 前記レジスタファイル構造において前記結果としてのレジスタ部を格納する手段をさらに備える請求項23に記載の装置。
  30. 実行部における命令の実行に応答して、汎用レジスタファイル構造の第1のレジスタと、前記汎用レジスタファイル構造の第2のレジスタとを識別する前記実行部からの通信を受信することであって、前記第1のレジスタおよび前記第2のレジスタは、前記汎用レジスタファイル構造内で隣接せずに配置されることと、
    前記命令の実行に応答して、前記識別された第1のレジスタのための第1のデータと、前記識別された第2のレジスタのための第2のデータとをメモリから取り出すことと、
    前記命令の実行に応答して、前記取り出された第1のデータと前記取り出された第2のデータとを、結果としてのレジスタペアへの挿入のために、前記実行部に提供することであって、前記結果としてのレジスタペアは、前記第1のレジスタまたは前記第2のレジスタよりも大きいことと、
    前記命令の実行に応答して、前記汎用レジスタファイル構造において前記結果としてのレジスタペアを格納することと
    を備える方法。
  31. 前記第1のデータは前記結果としてのレジスタペアの第1の連続する部分内にあり、前記第2のデータは前記結果としてのレジスタペアの第2の連続する部分内にある請求項30に記載の方法。
  32. 前記第1のレジスタは第1の32ビット幅レジスタを備え、前記第2のレジスタは第2の32ビット幅レジスタを備え、前記結果としてのレジスタペアは64ビット幅レジスタを備える請求項31に記載の方法。
  33. レジスタファイル構造の第1のレジスタ部および前記レジスタファイル構造の第2のレジスタ部からのデータを組み合わせるための命令を受信することと、
    前記命令を処理部において実行することと
    を備え、前記命令を実行することは、
    前記第1のレジスタ部と、前記第2のレジスタ部とを識別することであって、なお、前記第1のレジスタ部と前記第2のレジスタ部は、前記レジスタファイル構造の列内で隣接して格納されていないことと、
    メモリからの第1のデータを前記識別された第1のレジスタ部に読み込み、前記メモリからの第2のデータを前記識別された第2のレジスタ部に読み込むことと、
    結果としてのレジスタ部に格納される組み合わされたデータを形成するために、前記読み込まれた第1のレジスタ部に含まれたデータビットの第1の部分を備える前記第1のデータと、前記読み込まれた第2のレジスタ部に含まれたデータビットの第2の部分を備える前記第2のデータとを組み合わせることと
    を備える方法。
  34. 前記第1の部分は、前記読み込まれた第1のレジスタ部に含まれた前記データビットの第1の半分であり、前記第2の部分は、前記読み込まれた第2のレジスタ部に含まれた前記データビットの第2の半分である請求項33に記載の方法。
  35. 前記結果としてのレジスタ部と、前記第1のレジスタ部と、前記第2のレジスタ部は、同じサイズである請求項33に記載の方法。
JP2013125449A 2006-08-02 2013-06-14 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム Active JP5680709B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/498,627 2006-08-02
US11/498,627 US8417922B2 (en) 2006-08-02 2006-08-02 Method and system to combine multiple register units within a microprocessor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013103471A Division JP2013218709A (ja) 2006-08-02 2013-05-15 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム

Publications (2)

Publication Number Publication Date
JP2013242879A JP2013242879A (ja) 2013-12-05
JP5680709B2 true JP5680709B2 (ja) 2015-03-04

Family

ID=38745271

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2009523009A Withdrawn JP2009545823A (ja) 2006-08-02 2007-07-31 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
JP2013103471A Withdrawn JP2013218709A (ja) 2006-08-02 2013-05-15 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
JP2013125449A Active JP5680709B2 (ja) 2006-08-02 2013-06-14 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
JP2015107759A Withdrawn JP2015201216A (ja) 2006-08-02 2015-05-27 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
JP2017038550A Pending JP2017138993A (ja) 2006-08-02 2017-03-01 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2009523009A Withdrawn JP2009545823A (ja) 2006-08-02 2007-07-31 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
JP2013103471A Withdrawn JP2013218709A (ja) 2006-08-02 2013-05-15 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2015107759A Withdrawn JP2015201216A (ja) 2006-08-02 2015-05-27 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
JP2017038550A Pending JP2017138993A (ja) 2006-08-02 2017-03-01 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム

Country Status (7)

Country Link
US (1) US8417922B2 (ja)
EP (1) EP2069913A1 (ja)
JP (5) JP2009545823A (ja)
KR (1) KR101048234B1 (ja)
CN (1) CN101495959B (ja)
TW (1) TW200825906A (ja)
WO (1) WO2008016902A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898436B2 (en) * 2009-04-20 2014-11-25 Oracle America, Inc. Method and structure for solving the evil-twin problem
CN102457268B (zh) * 2010-10-15 2014-10-22 北京德威特继保自动化科技股份有限公司 32位捕获寄存器的实现方法
KR101801920B1 (ko) 2010-12-17 2017-12-28 삼성전자주식회사 동적 클러스터링이 가능한 레지스터 파일 및 동적 클러스터링이 가능한 레지스터 파일을 이용한 재구성 가능 컴퓨팅 장치
US9483810B2 (en) * 2011-12-28 2016-11-01 Intel Corporation Reducing the number of IO requests to memory when executing a program that iteratively processes contiguous data
US9323532B2 (en) 2012-07-18 2016-04-26 International Business Machines Corporation Predicting register pairs
US9323529B2 (en) 2012-07-18 2016-04-26 International Business Machines Corporation Reducing register read ports for register pairs
US9298459B2 (en) * 2012-07-18 2016-03-29 International Business Machines Corporation Managing register pairing
US9026791B2 (en) * 2013-03-11 2015-05-05 Qualcomm Incorporated Linear feedback shift register (LFSR)
US10228941B2 (en) * 2013-06-28 2019-03-12 Intel Corporation Processors, methods, and systems to access a set of registers as either a plurality of smaller registers or a combined larger register
US9582419B2 (en) * 2013-10-25 2017-02-28 Arm Limited Data processing device and method for interleaved storage of data elements
US9886276B2 (en) * 2014-10-10 2018-02-06 Arm Limited System register access
US9952865B2 (en) * 2015-04-04 2018-04-24 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word and non-orthogonal register data file
US10162634B2 (en) * 2016-05-20 2018-12-25 International Business Machines Corporation Extendable conditional permute SIMD instructions
CN107621949A (zh) * 2016-07-15 2018-01-23 龙芯中科技术有限公司 内存拷贝方法及装置
US10747531B1 (en) * 2018-04-03 2020-08-18 Xilinx, Inc. Core for a data processing engine in an integrated circuit

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69408769T2 (de) * 1993-10-18 1998-07-09 Cyrix Corp Fliessbandsteuerung und Registerübersetzung in Mikroprozessor
US5564056A (en) 1994-03-01 1996-10-08 Intel Corporation Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming
JPH07262010A (ja) * 1994-03-25 1995-10-13 Hitachi Ltd 演算処理装置および演算処理方法
DE69524862T2 (de) 1995-05-16 2002-11-07 Oce Tech Bv Druckersystem, das ein Kommunikationssteuerungsgerät beinhaltet
GB9509987D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
JP3526976B2 (ja) * 1995-08-03 2004-05-17 株式会社日立製作所 プロセッサおよびデータ処理装置
AU6905496A (en) 1995-09-01 1997-03-27 Philips Electronics North America Corporation Method and apparatus for custom operations of a processor
US5854939A (en) * 1996-11-07 1998-12-29 Atmel Corporation Eight-bit microcontroller having a risc architecture
US6052522A (en) * 1997-10-30 2000-04-18 Infineon Technologies North America Corporation Method and apparatus for extracting data stored in concatenated registers
US6041404A (en) * 1998-03-31 2000-03-21 Intel Corporation Dual function system and method for shuffling packed data elements
US6247112B1 (en) * 1998-12-30 2001-06-12 Sony Corporation Bit manipulation instructions
US6463525B1 (en) * 1999-08-16 2002-10-08 Sun Microsystems, Inc. Merging single precision floating point operands
US6631460B1 (en) 2000-04-27 2003-10-07 Institute For The Development Of Emerging Architectures, L.L.C. Advanced load address table entry invalidation based on register address wraparound
WO2001086431A1 (en) 2000-05-05 2001-11-15 Lee Ruby B A method and system for performing subword permutation instructions for use in two-dimensional multimedia processing
US7120781B1 (en) * 2000-06-30 2006-10-10 Intel Corporation General purpose register file architecture for aligned simd
JP2002132499A (ja) * 2000-10-27 2002-05-10 Hitachi Ltd データ処理装置及び記録媒体
JP3779540B2 (ja) * 2000-11-08 2006-05-31 株式会社ルネサステクノロジ 複数レジスタ指定が可能なsimd演算方式
US7228403B2 (en) * 2000-12-23 2007-06-05 International Business Machines Corporation Method for handling 32 bit results for an out-of-order processor with a 64 bit architecture
JP3776732B2 (ja) * 2001-02-02 2006-05-17 株式会社東芝 プロセッサ装置
JP2005535966A (ja) 2002-08-09 2005-11-24 インテル・コーポレーション アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム
US7103756B2 (en) 2002-09-30 2006-09-05 Hewlett-Packard Development Company, L.P. Data processor with individually writable register subword locations
GB2409064B (en) 2003-12-09 2006-09-13 Advanced Risc Mach Ltd A data processing apparatus and method for performing in parallel a data processing operation on data elements
GB2409066B (en) 2003-12-09 2006-09-27 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
GB2411976B (en) * 2003-12-09 2006-07-19 Advanced Risc Mach Ltd A data processing apparatus and method for moving data between registers and memory
JP4202244B2 (ja) 2003-12-22 2008-12-24 Necエレクトロニクス株式会社 Vliw型dsp,及びその動作方法
US7177876B2 (en) * 2004-03-04 2007-02-13 Texas Instruments Incorporated Speculative load of look up table entries based upon coarse index calculation in parallel with fine index calculation
US7376813B2 (en) * 2004-03-04 2008-05-20 Texas Instruments Incorporated Register move instruction for section select of source operand
US7237096B1 (en) * 2004-04-05 2007-06-26 Sun Microsystems, Inc. Storing results of producer instructions to facilitate consumer instruction dependency tracking
US8621444B2 (en) 2004-06-01 2013-12-31 The Regents Of The University Of California Retargetable instruction set simulators
US8127117B2 (en) 2006-05-10 2012-02-28 Qualcomm Incorporated Method and system to combine corresponding half word units from multiple register units within a microprocessor
US8445994B2 (en) 2009-05-07 2013-05-21 Qualcomm Incorporated Discontinuous thin semiconductor wafer surface features
US20100314725A1 (en) 2009-06-12 2010-12-16 Qualcomm Incorporated Stress Balance Layer on Semiconductor Wafer Backside
US8076762B2 (en) 2009-08-13 2011-12-13 Qualcomm Incorporated Variable feature interface that induces a balanced stress to prevent thin die warpage

Also Published As

Publication number Publication date
EP2069913A1 (en) 2009-06-17
JP2013218709A (ja) 2013-10-24
CN101495959A (zh) 2009-07-29
JP2013242879A (ja) 2013-12-05
CN101495959B (zh) 2012-04-25
TW200825906A (en) 2008-06-16
JP2017138993A (ja) 2017-08-10
JP2015201216A (ja) 2015-11-12
JP2009545823A (ja) 2009-12-24
US8417922B2 (en) 2013-04-09
KR20090042294A (ko) 2009-04-29
KR101048234B1 (ko) 2011-07-08
WO2008016902A1 (en) 2008-02-07
US20080184007A1 (en) 2008-07-31

Similar Documents

Publication Publication Date Title
JP5680709B2 (ja) マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
JP6242615B2 (ja) マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
US7558942B1 (en) Memory mapped register file and method for accessing the same
TWI489382B (zh) 改良的萃取指令背景之設備及方法
TWI489383B (zh) 遮蔽排列指令的裝置及方法
KR20060040611A (ko) 데이터 셔플링을 위한 방법 및 장치
CN108319559B (zh) 用于控制矢量内存存取的数据处理装置及方法
JPH10232779A (ja) 命令並列処理方法及び装置
JP2620511B2 (ja) データ・プロセッサ
US6055628A (en) Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks
JPH10143365A (ja) 並列処理装置及びその命令発行方式
JPH1165840A (ja) 演算処理装置およびその方法
US7779231B2 (en) Pipelined processing using option bits encoded in an instruction
US6922760B2 (en) Distributed result system for high-performance wide-issue superscalar processor
EP1050800A1 (en) A pipelined execution unit
JP2001005640A (ja) 浮動小数点ユニットにおいてロードバイパスを実行する方法及び装置
US20040073776A1 (en) Instruction encoding
JP2002073329A (ja) プロセッサ
JP2004152049A (ja) データ処理装置
JP2001243066A (ja) パイプライン処理方法並びにその方法を利用するパイプライン処理装置
JP2002123389A (ja) データ処理装置
JPH1165923A (ja) 演算処理装置およびメモリアクセス方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140722

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141022

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20141027

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141118

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: 20141209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150107

R150 Certificate of patent or registration of utility model

Ref document number: 5680709

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250