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

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

Info

Publication number
JP2013218709A
JP2013218709A JP2013103471A JP2013103471A JP2013218709A JP 2013218709 A JP2013218709 A JP 2013218709A JP 2013103471 A JP2013103471 A JP 2013103471A JP 2013103471 A JP2013103471 A JP 2013103471A JP 2013218709 A JP2013218709 A JP 2013218709A
Authority
JP
Japan
Prior art keywords
register
unit
register unit
resulting
halfword
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.)
Withdrawn
Application number
JP2013103471A
Other languages
English (en)
Inventor
Codrescu Lucian
ルシアン・コドレスキュ
Plondke Erich
エリック・プロンドケ
Zeng Mao
マオ・ジェング
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 JP2013218709A publication Critical patent/JP2013218709A/ja
Withdrawn 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/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)

Abstract

【課題】ディジタル信号プロセッサなどのマイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステムを提供する。
【解決手段】レジスタファイル構造内で隣接せずに配置されている第1のレジスタ部510、および第2のレジスタ部520が、処理部内のレジスタファイル構造から取り出され、単一の命令の実行中に組み合わされて、結果としてのレジスタ部530を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。代替として、第1のレジスタ部から、第1のハーフワード部が取り出され、第2のレジスタ部から、第2のハーフワード部が取り出され、単一の命令の実行中に、結果としてのレジスタ部の、対応する高い部分および低い部分にさらに入力されて、結果としてレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。
【選択図】図5

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 (39)

  1. コンピュータ可読媒体であって、
    処理システムにおいて実行されると、前記処理システムに、結果としてレジスタ部を形成するように、レジスタファイル構造から第1のレジスタ部および第2のレジスタ部を選択的に組み合わせるようにし、前記第1のレジスタ部と前記第2のレジスタ部は、前記レジスタファイル構造内で隣接せずに配置されている、前記媒体に含まれる複数の実行可能命令に関する命令を含む、コンピュータ可読媒体。
  2. 前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータは前記結果としてのレジスタ部の対応する部分の中に格納される、請求項1に記載のコンピュータ可読媒体。
  3. 前記第1のレジスタ部および前記第2のレジスタ部は32ビット幅レジスタ部であり、前記結果としてのレジスタ部は64ビット幅レジスタ部である、請求項2に記載のコンピュータ可読媒体。
  4. 前記第1のレジスタ部の第1のハーフワード部および前記第2のレジスタ部の第2のハーフワード部は前記結果としてのレジスタ部の対応する部分の中に格納される、請求項1に記載のコンピュータ可読媒体。
  5. 前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である、請求項4に記載のコンピュータ可読媒体。
  6. 方法であって、
    実行可能命令を受信し、および
    結果としてレジスタ部を形成するためレジスタファイル構造から第1のレジスタ部と第2のレジスタ部とを選択的に組み合わせるために前記命令を実行することを含み、前記第1のレジスタ部と前記第2のレジスタ部は前記レジスタファイル構造内で隣接せずに配置されている方法。
  7. 前記実行することは、前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項6に記載の方法。
  8. 前記第1のレジスタ部および前記第2のレジスタ部は32ビット幅レジスタ部であり、前記結果としてのレジスタ部は64ビット幅レジスタ部である、請求項7に記載の方法。
  9. 前記実行することは、前記第1のレジスタ部の第1のハーフワード部、および前記第2のレジスタ部の第2のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項6に記載の方法。
  10. 前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である請求項9に記載の方法。
  11. 前記実行することは、
    前記第1のレジスタ部および前記第2のレジスタ部に関連するデータをメモリから取り出すこと、
    前記データを、前記第1のレジスタ部内および前記第2のレジスタ部内にそれぞれ格納すること、および
    前記結果としてのレジスタ部に前記データを選択的に組み合わせることをさらに含む、請求項6に記載の方法。
  12. 方法であって、
    処理部内のレジスタファイル構造から第1のレジスタ部および第2のレジスタ部を取り出し、前記第1のレジスタ部および前記第2のレジスタ部は前記レジスタファイル構造内で隣接せずに配置されており、
    結果としてのレジスタ部を形成するために、単一の命令の実行中に前記第1のレジスタ部と前記第2のレジスタ部とを選択的に組み合わせ、および
    さらなる処理のために、前記結果としてのレジスタ部を前記レジスタファイル構造内に格納することを含む方法。
  13. 前記組み合わせることは、
    前記第1のレジスタ部と前記第2のレジスタ部とを組み合わせる前記命令を受信すること、および
    前記処理部内で前記命令を実行することをさらに含む、請求項12に記載の方法。
  14. 前記組み合わせることは、前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項12に記載の方法。
  15. 前記第1のレジスタ部および前記第2のレジスタ部は、32ビット幅レジスタ部であり、前記結果としてのレジスタ部は64ビット幅レジスタ部である、請求項14に記載の方法。
  16. 前記組み合わせることは、前記第1のレジスタ部の第1のハーフワード部および前記第2のレジスタ部の第2のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項12に記載の方法。
  17. 前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である、請求項16に記載の方法。
  18. 前記第1のレジスタ部および前記第2のレジスタ部に関連するデータをメモリから取り出すこと、
    前記データを前記第1のレジスタ部内および前記第2のレジスタ部内にそれぞれ格納すること、および
    前記結果としてのレジスタ部に前記データを選択的に組み合わせることをさらに含む、請求項12に記載の方法。
  19. 実行可能命令を含むコンピュータ可読媒体であって、
    処理システムにおいて実行されると、前記処理システムに、
    処理部内のレジスタファイル構造から第1のレジスタ部および第2のレジスタ部を取り出し、前記第1のレジスタ部および前記第2のレジスタ部は前記レジスタファイル構造内で隣接せずに配置されおり、
    単一の命令の実行中に結果としてのレジスタ部を形成するため、前記第1のレジスタ部と前記第2のレジスタ部とを選択的に組み合わせ、および
    前記結果としてのレジスタ部をさらなる処理のために前記レジスタファイル構造内に格納する
    ことを含む方法を実行させるようにするコンピュータ可読媒体。
  20. 前記組み合わせることは、
    前記第1のレジスタ部と前記第2のレジスタ部とを組み合わせる前記命令を受信すること、および
    前記処理部内で前記命令を実行することをさらに含む、
    請求項19に記載のコンピュータ可読媒体。
  21. 前記組み合わせることは、
    前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項19に記載のコンピュータ可読媒体。
  22. 前記第1のレジスタ部および前記第2のレジスタ部は32ビット幅レジスタ部であり、前記結果としてのレジスタ部は64ビット幅レジスタ部である、請求項21に記載のコンピュータ可読媒体。
  23. 前記組み合わせることは、前記第1のレジスタ部の第1のハーフワード部および前記第2のレジスタ部の第2のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項19に記載のコンピュータ可読媒体。
  24. 前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である、請求項23に記載のコンピュータ可読媒体。
  25. 前記方法は、
    前記第1のレジスタ部および前記第2のレジスタ部に関連するデータをメモリから取り出すこと、
    前記データを前記第1のレジスタ部内および前記第2のレジスタ部内にそれぞれ格納すること、および
    前記結果としてのレジスタ部に前記データを選択的に組み合わせる、
    ことをさらに含む、請求項19に記載のコンピュータ可読媒体。
  26. 集積回路であって、
    1つまたは複数の命令を含むパケットを格納するメモリと、および
    前記メモリに結合されたプロセッサとを含み、前記プロセッサは処理部および前記処理部に結合されたレジスタファイル構造とをさらに含み、
    前記処理部は、第1のレジスタ部と第2のレジスタ部とを前記レジスタファイル構造から取り出し、第1のレジスタ部と第2のレジスタ部は、前記第1のレジスタ部と前記第2のレジスタ部とを選択的に組み合わせ、単一の命令の実行中に結果としてのレジスタ部を形成し、そして前記結果としてのレジスタ部をさらなる処理のために前記レジスタファイル構造内に格納するため、前記レジスタファイル構造内で隣接せずに配置されている、集積回路。
  27. 前記処理部は前記第1のレジスタ部と前記第2のレジスタ部とを組み合わせる前記命令を前記メモリからさらに受信しそして前記命令を実行する、請求項26に記載の回路。
  28. 前記処理部は、前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中にさらに格納する、請求項26に記載の回路。
  29. 前記第1のレジスタ部および前記第2のレジスタ部は32ビット幅レジスタ部であり、前記結果としてのレジスタ部は64ビット幅レジスタ部である、請求項28に記載の回路。
  30. 前記処理部は、前記第1のレジスタ部の第1のハーフワード部および前記第2のレジスタ部の第2のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中にさらに格納する、請求項26に記載の回路。
  31. 前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である、請求項30に記載の回路。
  32. 前記メモリは前記第1のレジスタ部および前記第2のレジスタ部に関連するデータをさらに格納し、前記レジスタファイル構造は前記データをさらに取り出し前記データを前記第1のレジスタ部内および前記第2のレジスタ部内にそれぞれ格納し、前記処理部は前記データを前記結果としてのレジスタ部内に選択的にさらに組み合わせる、請求項26に記載の回路。
  33. 装置であって、
    処理部内のレジスタファイル構造から、前記レジスタファイル構造内で隣接せずに配置されている第1のレジスタ部と第2のレジスタ部とを取り出するための手段と、
    単一の命令の実行中に、結果としてレジスタ部を形成するために、前記第1のレジスタ部と前記第2のレジスタ部とを選択的に組み合わせる手段と、および
    前記結果としてのレジスタ部をさらなる処理のために前記レジスタファイル構造内に格納するための手段と
    を含む装置。
  34. 前記第1のレジスタ部と前記第2のレジスタ部とを組み合わせる前記命令を受信するための手段と、
    前記処理部内で前記命令を実行するための手段と
    をさらに含む、請求項33に記載の装置。
  35. 前記第1のレジスタ部内に存在するデータおよび前記第2のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納するための手段をさらに含む、請求項33に記載の装置。
  36. 前記第1のレジスタ部および前記第2のレジスタ部は32ビット幅レジスタ部であり、前記結果としてのレジスタ部は、4ビット幅レジスタ部である、請求項35に記載の装置。
  37. 前記第1のレジスタ部の第1のハーフワード部、および前記第2のレジスタ部の第2のハーフワード部を、前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納するための手段をさらに含む、請求項33に記載の装置。
  38. 前記第1のハーフワード部および前記第2のハーフワード部は16ビット幅部であり、前記結果としてのレジスタ部は32ビット幅レジスタ部である、請求項37に記載の装置。
  39. 前記第1のレジスタ部および前記第2のレジスタ部に関連するデータをメモリから取り出するための手段と、
    前記データを、前記第1のレジスタ部内、および前記第2のレジスタ部内にそれぞれ格納するための手段と、
    前記結果としてのレジスタ部内に前記データを選択的に組み合わせるための手段とをさらに含む、請求項33に記載の装置。
JP2013103471A 2006-08-02 2013-05-15 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム Withdrawn JP2013218709A (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
JP2009523009A Division JP2009545823A (ja) 2006-08-02 2007-07-31 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム

Related Child Applications (2)

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

Publications (1)

Publication Number Publication Date
JP2013218709A true JP2013218709A (ja) 2013-10-24

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 (1)

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

Family Applications After (3)

Application Number Title Priority Date Filing Date
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 マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム

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 삼성전자주식회사 동적 클러스터링이 가능한 레지스터 파일 및 동적 클러스터링이 가능한 레지스터 파일을 이용한 재구성 가능 컴퓨팅 장치
CN104025035B (zh) * 2011-12-28 2017-10-17 英特尔公司 当执行迭代处理连续数据的程序时减少对存储器io请求的数量
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

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0743592A1 (en) * 1995-05-17 1996-11-20 STMicroelectronics Limited Manipulation of data
JPH10512988A (ja) * 1995-09-01 1998-12-08 フィリップス エレクトロニクス ノース アメリカ コーポレイション プロセッサのカスタム動作のための方法及び装置
JP2001312405A (ja) * 2000-04-27 2001-11-09 Inst For The Development Of Emerging Architectures Llc コンピュータ・システム
US20020027552A1 (en) * 2000-05-05 2002-03-07 Lee Ruby B. Method and system for performing subword permutation instructions for use in two-dimensional multimedia processing
JP2002229777A (ja) * 2001-02-02 2002-08-16 Toshiba Corp プロセッサ装置
US20020129224A1 (en) * 2000-12-23 2002-09-12 Ibm Method for handling 32 bit results for an out-of-order processor with A 64 bit architecture
US6463525B1 (en) * 1999-08-16 2002-10-08 Sun Microsystems, Inc. Merging single precision floating point operands
US20040064677A1 (en) * 2002-09-30 2004-04-01 Dale Morris Data processor with individually writable register subword locations
JP2005174293A (ja) * 2003-12-09 2005-06-30 Arm Ltd データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法
JP2005182659A (ja) * 2003-12-22 2005-07-07 Nec Electronics Corp Vliw型dsp,及びその動作方法
US20050198054A1 (en) * 2004-03-04 2005-09-08 Jagadeesh Sankaran Speculative load of look up table entries based upon coarse index calculation in parallel with fine index calculation
JP2005535966A (ja) * 2002-08-09 2005-11-24 インテル・コーポレーション アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム
US20070276646A1 (en) * 2004-06-01 2007-11-29 Nikil Dutt Retargetable Instruction Set Simulators
JP2009536774A (ja) * 2006-05-10 2009-10-15 クゥアルコム・インコーポレイテッド マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0649085B1 (en) * 1993-10-18 1998-03-04 Cyrix Corporation Microprocessor pipe control and register translation
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 演算処理装置および演算処理方法
EP0743591B1 (en) 1995-05-16 2002-01-02 Océ-Technologies B.V. Printing system comprising a communication control apparatus
JP3526976B2 (ja) * 1995-08-03 2004-05-17 株式会社日立製作所 プロセッサおよびデータ処理装置
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
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演算方式
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
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
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

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0743592A1 (en) * 1995-05-17 1996-11-20 STMicroelectronics Limited Manipulation of data
JPH10512988A (ja) * 1995-09-01 1998-12-08 フィリップス エレクトロニクス ノース アメリカ コーポレイション プロセッサのカスタム動作のための方法及び装置
JP3739403B2 (ja) * 1995-09-01 2006-01-25 フィリップス エレクトロニクス ノース アメリカ コーポレイション プロセッサのカスタム動作のための方法及び装置
US6463525B1 (en) * 1999-08-16 2002-10-08 Sun Microsystems, Inc. Merging single precision floating point operands
JP2001312405A (ja) * 2000-04-27 2001-11-09 Inst For The Development Of Emerging Architectures Llc コンピュータ・システム
US20020027552A1 (en) * 2000-05-05 2002-03-07 Lee Ruby B. Method and system for performing subword permutation instructions for use in two-dimensional multimedia processing
US20020129224A1 (en) * 2000-12-23 2002-09-12 Ibm Method for handling 32 bit results for an out-of-order processor with A 64 bit architecture
JP2002229777A (ja) * 2001-02-02 2002-08-16 Toshiba Corp プロセッサ装置
JP2005535966A (ja) * 2002-08-09 2005-11-24 インテル・コーポレーション アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム
US20040064677A1 (en) * 2002-09-30 2004-04-01 Dale Morris Data processor with individually writable register subword locations
JP2005174293A (ja) * 2003-12-09 2005-06-30 Arm Ltd データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法
JP2005182659A (ja) * 2003-12-22 2005-07-07 Nec Electronics Corp Vliw型dsp,及びその動作方法
US20050198054A1 (en) * 2004-03-04 2005-09-08 Jagadeesh Sankaran Speculative load of look up table entries based upon coarse index calculation in parallel with fine index calculation
US20070276646A1 (en) * 2004-06-01 2007-11-29 Nikil Dutt Retargetable Instruction Set Simulators
JP2009536774A (ja) * 2006-05-10 2009-10-15 クゥアルコム・インコーポレイテッド マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6014030601; Ruby B. Lee: '"SUBWORD PARALLELISM WITH MAX-2"' IEEE Micro Volume 16, Issue 4, 199608, p.51-59 *
JPN6014030602; Selliah Rathnam, Gert Slavenburg: '"An Architectural Overview of the Programmable Multimedia Processor, TM-1"' Proceedings of COMPCOM'96 'Technologies for the Information Superhighway' Digest of Papers , 199602, p.319-326 *

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5680709B2 (ja) マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム
JP6242615B2 (ja) マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
JP2009527035A (ja) マイクロプロセッサにおけるパックされた加減演算
US10303399B2 (en) Data processing apparatus and method for controlling vector memory accesses
US8671266B2 (en) Staging register file for use with multi-stage execution units
JPH10232779A (ja) 命令並列処理方法及び装置
US20030005261A1 (en) Method and apparatus for attaching accelerator hardware containing internal state to a processing core
JPH10143365A (ja) 並列処理装置及びその命令発行方式
JPH10222367A (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
US11714641B2 (en) Vector generating instruction for generating a vector comprising a sequence of elements that wraps as required
US8583897B2 (en) Register file with circuitry for setting register entries to a predetermined value
JP2003005954A (ja) データ処理装置およびその制御方法
KR101056553B1 (ko) 마이크로프로세서 내에서 시프팅 및 라운딩 연산들을 수행하기 위한 방법 및 시스템
US20040078553A1 (en) Pipelined processing
US20040073776A1 (en) Instruction encoding
US20040111568A1 (en) Distributed result system for high-performance wide-issue superscalar processor
JP2002073329A (ja) プロセッサ
JP2004152049A (ja) データ処理装置
JPS63188230A (ja) 情報処理装置
JP2005134987A (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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141022

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150527

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150603

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20150828

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160701

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20170111