JP5490711B2 - テーブル内のエレメントのアドレスを決定するシステムおよび方法 - Google Patents

テーブル内のエレメントのアドレスを決定するシステムおよび方法 Download PDF

Info

Publication number
JP5490711B2
JP5490711B2 JP2010535062A JP2010535062A JP5490711B2 JP 5490711 B2 JP5490711 B2 JP 5490711B2 JP 2010535062 A JP2010535062 A JP 2010535062A JP 2010535062 A JP2010535062 A JP 2010535062A JP 5490711 B2 JP5490711 B2 JP 5490711B2
Authority
JP
Japan
Prior art keywords
register
address
data
bit field
processor
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
JP2010535062A
Other languages
English (en)
Other versions
JP2011503758A (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 JP2011503758A publication Critical patent/JP2011503758A/ja
Application granted granted Critical
Publication of JP5490711B2 publication Critical patent/JP5490711B2/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
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3555Indexed addressing using scaling, e.g. multiplication of index
    • 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/30018Bit or string 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/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
    • 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
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory

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

本開示は一般にテーブル内のエレメントのアドレスを決定するシステムおよび方法に関する。
ディジタル信号プロセッサ(DSPs)は、無線電話機、パーソナルコンピュータ、パーソナルディジタルアシスタント(PDAs)、オーディオプレイヤ、他の電子装置、またはこれらの任意の組合せのような、携帯型パーソナルコンピューティング装置内でしばしば使用される。そのようなDSPsはビデオおよびオーディオ機能を提供するために、受信データを処理するために、または他の機能を実行するために使用されることができる。そのようなDSPsはマルチスレッドのアーキテクチャを使用することができ、それは複数のプログラム命令スレッドを処理することができ、そして並列実行ユニットを含むことができる。
DSPのようなプロセッサは、典型的に、メインメモリからデータを検索するための、またはDSPによって生成されたデータを記憶するためのメモリアドレスを発生するメモリアドレス発生器を含む。ある事例では、メモリアドレスは検索された値に基づいて計算されることができる。この値が検索された後に、算術および論理ユニット(ALU)はその値に対するビットシフト演算を実行し、そしてこのシフトされた値はレジスタ内に記憶される。次の命令サイクルでは、このシフトされた値はレジスタから読み出されることができ、そして数値演算はメモリアドレスを生成するためにこのシフトされた値に対して実行されることができる。プロセッサは、他の結果を書き込むかまたはデータを検索するかのどちらかのために、メモリ内の位置にアクセスするためにこのメモリアドレスを使用することができる。
現プロセッサ(current processors)では、ある構成におけるいくつかのビット数に基づいてテーブル内のデータをルックアップ(look up)するのが一般的である。しかしながら、テーブル内へのアドレスを計算することは2またはそれ以上の実行サイクルを必要とすることがありうる。よって、アドレス計算の機能を高める必要性がある。
特定の実施形態では、メモリに記憶されたテーブル内の位置を識別するために単一の命令を実行することを含む方法が開示される。単一の命令は第1のレジスタからビットフィールドデータを抽出すること、およびこのビットフィールドデータを第2のレジスタのインデックス部内に挿入することをプロセッサによって実行可能である。第2のレジスタはテーブルアドレス部およびインデックス部を含む。テーブルアドレス部はテーブルに関連するメモリ位置を識別するテーブルアドレスを含む。テーブルアドレスおよびビットフィールドデータは結合してテーブル内のエレメントへのインデックスされたアドレスを形成する。
別の特定の実施形態では、ビットフィールドを含んでいる第1のレジスタおよびテーブルアドレス部とインデックス部とを含んでいる第2のレジスタを含むプロセッサが開示される。テーブルアドレス部はメモリ内のテーブルの位置を識別するテーブルアドレスを含む。プロセッサはまた第1のレジスタのビットフィールドからビットフィールドデータを抽出するため、および第2のレジスタのインデックス部内にこの抽出されたビットフィールドデータを挿入しテーブル内のエレメントへのアドレスを生成するために単一の命令を処理することによってアドレスを生成するように適合された実行ユニットも含む。
さらに別の特定の実施形態では、テーブル内へのアドレスを決定する方法が開示される。この方法は第1のレジスタからビットフィールドデータを抽出することおよびこの抽出されたビットフィールドデータをテーブルアドレス部およびインデックス部を含む第2のレジスタのインデックス部内に挿入することを含む。第2のレジスタはテーブルに関連するメモリ位置を識別するテーブルアドレス部内に記憶されたテーブルアドレスデータを含む。テーブルアドレスデータおよび抽出されたビットフィールドデータはメモリ位置およびテーブル内のエレメントへのテーブルインデックスを供給する。
ここに開示されたシステムおよび方法の実施形態によって提供される1つの特定の利点は、シフト演算および算術演算の組合せを含む演算が単一の実行サイクルにおいて実行されうることである。
この方法の実施形態によって提供される別の特定の利点は、アドレスが迅速に計算されうること、およびルックアップテーブルを使用する演算が改善されうることにおいて提供される。例えば、この特定の方法および関連する命令をサポートするDSPは削減された数の命令サイクルにおいてインデックスおよびベースアドレスを使用してテーブル内のアドレスを生成することができる。
さらに別の特定の利点は、巡回冗長検査および他の一般的なDSP動作において使用されることができる、シフト演算およびマスキング演算が、レジスタ読出し/書込み動作のためのバスアクセスを減少させて、単一の命令においておよび単一の実行サイクルにおいて実行されることができることにおいて提供される。そのうえ、特定の動作を実行するために使用される命令数は減少される。
また、さらに別の利点はアドレス計算が簡略化されることにおいて提供される。別の特定の利点はアドレスを決定するための実行サイクル数を減少させることがプロセッサ性能効率を高めることにおいて提供される。
本開示の他の観点、利点および特徴は、以下のセクション:図面の簡単な説明、詳細な説明、および特許請求の範囲を含む、出願全体を検討した後に明白になるであろう。
テーブル内のエレメントのアドレスを決定するために命令を実行するように適合された処理システムの特定の例示的な実施形態のブロック図。 テーブル内のエレメントのアドレスを決定するために命令を実行するように適合された処理システムの第2の例示的な実施形態の図。 テーブル内のエレメントへのアドレスを形成するために使用される第1および第2のレジスタの特定の例示的な実施形態の図。 テーブル内のエレメントのアドレスを決定する方法の特定の例示的な実施形態のフローチャート。 テーブル内のエレメントのアドレスを決定する方法の第2の特定の例示的な実施形態のフローチャート。 テーブル内のエレメントのアドレスを決定するためのプロセッサを含む典型的な無線通信装置を示すブロック図。
詳細な説明
図1は(図2に図示されたテーブル206内のエレメント207のような)テーブル103内のエレメントのアドレスを決定するために抽出シフト付加命令(extract-shift-add instruction)116を実行するように適合された処理システム100の特定の例示的な実施形態のブロック図である。処理システム100はテーブル103を含むメモリ102を含む。メモリ102はバスインターフェイス108を介して命令キャッシュ110に結合される。処理システム100はまたバスインターフェイス108を介してメモリ102に結合されるデータキャッシュ112も含む。命令キャッシュ110はバス111を介してシーケンサ114に結合される。特定の実例では、シーケンサ114はまた、割込みレジスタ(図示せず)から検索されうる汎用割込み(general interrupts)も受信することができる。特定の実施形態では、命令キャッシュ110は複数の現命令レジスタ(current instruction registers)を介してシーケンサ114に結合されてもよく、それらはバス111に結合され、処理システム100の特定のスレッドに関連付けられてもよい。特定の実施形態では、処理システム100は6個のスレッドを含むインターリーブされたマルチスレッドプロセッサである。
特定の実施形態では、バス111は64ビットバスであり、そしてシーケンサ114は各々32ビットの長さを有する複数の命令を含む命令パケットによりメモリ102から命令を検索するように構成される。シーケンサ114は第1の命令実行ユニット118、第2の命令実行ユニット120、第3の命令実行ユニット122、および第4の命令実行ユニット124に結合されている。各命令実行ユニット118,120,122,124は第2のバス128を介して汎用レジスタファイル126に結合されることができる。汎用レジスタファイル126はまた第3のバス130を介してシーケンサ114、データキャッシュ112、およびメモリ102にも結合されることができる。特定の例示的な実施形態では、汎用レジスタファイル126はテーブル内のエレメントに関するデータを記憶するために第1のレジスタ132および第2のレジスタ133を含んでもよい。
処理システム100はまた、命令の実行を制御するため、および割込みを受け入れるかどうかを決定するためにシーケンサ114内の制御論理によってアクセスされることができるビットを記憶するためのスーパバイザ制御レジスタ134およびグローバル制御レジスタ136を含んでもよい。
特定の例示的な実施形態では、実行ユニット118はシーケンサ114を介して命令キャッシュ110から抽出シフト付加命令116を受信することができる。実行ユニット118は第1のレジスタ132からビットフィールドデータを検索(抽出)し、検索されたビットフィールドデータを所定数のビットだけシフトし、そして第2のレジスタ133内のデータにこのシフトされたビットフィールドデータを加える(即ち、検索されたビットフィールドデータを挿入する)ことができる。特定の例では、実行ユニット118はビットフィールドデータを第1のレジスタ132から検索し、第2のレジスタ133内の挿入点を決定して、第2のレジスタ133内の挿入点にこの検索されたビットフィールドデータを挿入する。特定の例では、ビットオフセットはテーブルがバイト、ハーフワード、ワードまたはダブルワードを記憶しているかどうかを表すことができる。挿入点はテーブル内に記憶されたデータに基づいて決定されることができ、そして検索されたビットフィールドデータは第2のレジスタ133内の挿入点に挿入されることができる。第2のレジスタ133はアドレス部内にテーブルと関連するメモリ位置を記憶することができ、そして第2のレジスタ133のインデックス部内に検索されたビットフィールドデータを受信できる。検索されたビットフィールドデータが挿入された後で第2のレジスタ133内に記憶されたデータはテーブル内のエレメントのアドレスを表す。テーブル内のエレメントのアドレスはその後第2のレジスタ133内のデータによって指定されたアドレスでメモリ102内のエレメントにアクセスするために使用されることができる。特定の実施形態では、アドレスは単一の命令または実行サイクルにおいて決定されることができる。特定の実施形態では、命令サイクルは一般に1つまたはそれ以上の命令フェッチステージ、復号ステージ、読出しレジスタファイルステージ、1つまたはそれ以上の実行ステージ、および書戻しステージを含む、複数のステージを含む。一般に、命令サイクルが特定のスレッドでの特定の命令のための命令実行サイクルを表すことは理解されるべきである。
特定の実施形態では、実行ユニット118,120,122および124の少なくとも1つは第1のレジスタ132から抽出された抽出ビットフィールドデータを所定数のビットだけシフトするように適合されたシフタを含むことができる。シフトされたビットフィールドデータはその後付加演算を使用して第2のレジスタのインデックス部内に挿入されることができる。シフタはビットを左右にシフトするように適合された双方向シフタであってもよい。
図2はテーブル内のエレメントのアドレスを決定するために命令を実行するように適合されたプロセッサを含むシステム200の第2の特定の実施形態のブロック図である。システム200は2キロバイトメモリ空間(memory space)を定義する、メモリ境界(memory boundaries)204のような、1つまたはそれ以上の論理メモリ境界を含むメモリ202を含む。メモリ202はメモリ境界204に整列されるテーブル206を記憶するように適合されている。テーブル206はバイト、ハーフワード、ワード、ダブルワード、またはそれらの任意の組合せのエントリを保持するように適合されている。テーブル206はテーブルインデックス情報を含むメモリ位置でアクセスできるエレメント(E)207を含んでもよい。
特定の例では、テーブル206は、メモリ202内の境界204のような、論理境界に整列されることができる。一般に、境界204はテーブル206のサイズより大きいか等しい2の累乗(即ち、2N)の境界に相当する位置を有する論理境界である。例えば、もしテーブル206が2キロバイトテーブルであれば、テーブル206はメモリ空間の2kb隣接(contiguous)ブロックを含むゼロメモリ境界、メモリ空間の少なくとも2kb隣接ブロックを有する2kbメモリ境界、4kbメモリ境界、等でメモリ境界204に整列されることができる。例えば、もしテーブル206が4キロバイトテーブルであれば、テーブル206は、メモリ空間の隣接4キロバイトブロックを含むゼロメモリ境界(即ち、メモリアドレスゼロおよびシーケンス)、4kb境界、8kb境界、等のような、4kb論理境界に整列されることができる。メモリ境界はテーブル206のサイズより大きい使用可能な空間を有してもよい。特定の例では、テーブル206をメモリ202内で2の累乗の論理境界204に整列することによって、テーブル206のメモリアドレスはレジスタの最上位ビットから決定されることができ、そして最下位ビットはテーブル206内への対応するインデックスとして使用されることができ、例えば、テーブル206内のエレメント(E)207にアドレスするためにアドレス計算を使用することができる。
メモリ202は汎用レジスタ220に結合されたバス232を介して、そして命令キャッシュ210に結合されたバス209を介してプロセッサと通信するように適合されている。一般に疑似ライン208によって示された、プロセッサは抽出シフト付加命令216を記憶することができる、命令キャッシュ210を含む。命令キャッシュ210はバス212を介してシーケンサ214と通信する。シーケンサ214は1つまたはそれ以上の実行ユニット218に命令を供給する。1つまたはそれ以上の実行ユニット218はデータを検索して記憶するために汎用レジスタ220と通信する。汎用レジスタ220は第1のレジスタ222および第2のレジスタ224を含む。第1のレジスタ222はビットフィールド226を含む。第2のレジスタ224はテーブルアドレス部228およびインデックス部230を含む。
特定の例示的な実施形態では、データは計算され、ロードされ、あるいは、そうではなければ第1および第2のレジスタ222および224内において検索され、そして記憶される。シーケンサ214は命令キャッシュ210から抽出シフト付加命令216を検索し、そしてこの抽出シフト付加命令216を1つまたはそれ以上の実行ユニット218の少なくとも1つに供給するように適合されている。1つまたはそれ以上の実行ユニット218は第1のレジスタ222からビットフィールド226に関連するデータを抽出し、メモリ202のテーブル206内のエレメント207にアクセスするためのアドレスを形成するために第2のレジスタ224のインデックス部230内にこの抽出されたデータを挿入するように適合されている。第2のレジスタのアドレス部228はテーブルアドレスを含む。特定の例では、1つまたはそれ以上の実行ユニット218は単一の実行サイクルにおいてテーブル206内のテーブルエレメント207のアドレスを計算することができる。
特定の例では、1つまたはそれ以上の実行ユニット218は第1のレジスタ222のビットフィールド226から抽出されたデータを第2のレジスタ224のインデックス部230内に挿入するように適合されている。第2のレジスタ224のインデックス部230は第2のレジスタ224の最下位ビットを示すことができる。第2のレジスタ224のテーブルアドレス部228は第2のレジスタ224の最上位ビットを示すことができる。特定の例示的な例では、1つまたはそれ以上の実行ユニット218は第2のレジスタ224のインデックス部230内の挿入位置に第1のレジスタ222のビットフィールド226から抽出されたデータを選択的に挿入するように適合されている。
例えば、特定の例示的な実施形態では、1つまたはそれ以上の実行ユニット218はテーブル206内に記憶されたデータのタイプに基づいてインデックス部230内の挿入点を選択するように適合されることができる。例えば、もしテーブル206がバイトのデータを記憶すれば、挿入点は第2のレジスタ224のインデックス部230内のビット0でありうる。テーブルがハーフワードを記憶する時は、挿入点は第2のレジスタ224のインデックス部230のビット1でありうる。テーブル206がワードのデータを記憶する時は、インデックス部230内の挿入点は第2のレジスタ224のインデックス部230内のビット2でありうる。テーブル206がダブルワードのデータを記憶する時は、挿入点は第2のレジスタ224のインデックス部230内のビット3でありうる。挿入点は抽出されるべきフィールドに関連するオフセット値を示すために使用されることができる。特定の例示的な実施形態では、第1のレジスタ222は幅およびオフセット情報の両者を有することができるビットフィールド226を含んでもよい。オフセット情報はどの挿入位置を使用すべきかを決定するために使用されることができる。
一般に、抽出シフト付加命令216は単に、単一の命令サイクルにおいてテーブル206内のエレメント207へのインデックスおよびテーブル206のアドレスを計算するために使用されることができる特定の命令パケットを記述するために使用されるラベルであることは理解されるべきである。しかしながら、命令は異なるラベルを使用して記述されることができる。そのうえ、抽出シフト付加命令216のような、テーブルアドレス/インデックス計算命令を含む命令のパケットはまた他の命令、マイクロ命令(microinstructions)、オペレーション、またはそれらの任意の組合せを含みうることも理解されるべきである。さらに、そのような命令のパケットは追加のオペレーション、マイクロ命令、命令、またはそれらの任意の組合せの実行を発生することができる。
図3はテーブル内のエレメントへのアドレスを形成するために使用される第1および第2のレジスタの特定の例示的な実施形態の図である。この図はバイトのテーブルにアクセスするために第1および第2のレジスタ302および304の第1のセット300を含む。この図はまたハーフワードのテーブルにアクセスするために第1および第2のレジスタ312および314の第2のセット310も含む。そのうえ、この図はワードのテーブルにアクセスするために第1および第2のレジスタ322および324の第3のセット320を含む。さらに、この図はダブルワードのテーブルにアクセスするために第1および第2のレジスタ332および334の第4のセット330を含む。
第1のセット300は第1のレジスタ302を含み、それはビットフィールドデータ306を含んでいるビットフィールドを含む。第1のレジスタ302はまたオフセットビット307も含むことができる。第2のレジスタ304はテーブルアドレス情報部308およびインデックス部309を含む。抽出シフト付加命令(即ち、図2に図示された抽出シフト付加命令216)を使用して、第1のレジスタ302からのビットフィールドデータ306はバイトのデータを記憶するテーブル内のエレメントへのアドレスを形成するために第2のレジスタ304のインデックス部309に書き込まれる。この例では、挿入点303は第2のレジスタ304のビット0にある。
第2のセット310は第1のレジスタ312を含み、それはビットフィールドデータ316を含んでいるビットフィールドを含む。第1のレジスタ312はまたオフセットビット317も含むことができる。第2のレジスタ314はテーブルアドレス情報部318およびインデックス部319を含む。抽出シフト付加命令(即ち、図2に図示された抽出シフト付加命令216)を使用して、第1のレジスタ312からのビットフィールドデータ316はハーフワードのデータを記憶するテーブル内のエレメントへのアドレスを形成するために第2のレジスタ314のインデックス部319に書き込まれる。この例では、挿入点313は第2のレジスタ314のビット1にある。
第3のセット320は第1のレジスタ322を含み、それはビットフィールドデータ326を含んでいるビットフィールドを含む。第1のレジスタ322はまたオフセットビット327も含むことができる。第2のレジスタ324はテーブルアドレス情報部328およびインデックス部329を含む。抽出シフト付加命令(即ち、図2に図示された抽出シフト付加命令216)を使用して、第1のレジスタ322からのビットフィールドデータ326はワードのデータを記憶するテーブル内のエレメントへのアドレスを形成するために第2のレジスタ324のインデックス部329に書き込まれる。この例では、挿入点323は第2のレジスタ324のビット2にある。
第4のセット330は第1のレジスタ332を含み、それはビットフィールドデータ336を含んでいるビットフィールドを含む。第1のレジスタ332はまたオフセットビット337も含むことができる。第2のレジスタ334はテーブルアドレス情報部338およびインデックス部339を含む。抽出シフト付加命令(即ち、図2に図示された抽出シフト付加命令216)を使用して、第1のレジスタ332からのビットフィールドデータ336はダブルワードのデータを記憶するテーブル内のエレメントへのアドレスを形成するために第2のレジスタ334のインデックス部339に書き込まれる。この例では、挿入点333は第2のレジスタ334のビット3にある。
アセンブリレベル(assembly level)のプログラミングシンタックス(programming syntax)では、オフセット情報はオフセットによってビットインデックス値を調整するためにアセンブラによって使用される抽出情報を含むことができる。特定の例では、バイトを記憶するテーブルについては、調整は必要がなく、ビットゼロでの挿入位置303が使用されることができる。ハーフワードを記憶するテーブルについては、アセンブラは、第2のレジスタファイル314のインデックス部319内の1ビットオフセットとしてオフセットデータを符号化することができ、インデックス部319内のビット1に挿入位置313を提供する。ワードを記憶するテーブルについては、アセンブラは、第2のレジスタファイル324の無符号(unsigned)の即値フィールド(immediate field) 内の2ビットオフセットとしてオフセットデータ327を符号化することができ、インデックス部329内のビット2に挿入位置323を提供する。ダブルワードを記憶するテーブルについては、アセンブラは、第2のレジスタ334の無符号の即値フィールド内の3ビットオフセット内でオフセット情報337を符号化することができ、インデックス部339内のビット3に挿入位置333を提供する。
一般に、(それぞれの第1のレジスタファイル302,312,322,および332のそれぞれのビットフィールドデータ306,316,326,および336の挿入後に)第2のレジスタファイル304,314,324および334はテーブル部308,318,328および338内にテーブルへのアドレスおよび、インデックス部309,319,329および339内にテーブル内のエレメントへのインデックスを含む。挿入位置303,313,323,および333はテーブル内のデータエレメントのサイズに翻訳される(translates to)ビットオフセットを提供する。テーブルをテーブルサイズと等しいかそれより大きい2の累乗のサイズであるメモリ内の論理境界に整列することによって、このテーブル内のエレメントは図3に図示された抽出シフト挿入テクニックを使用してアクセスされることができる。
特定の実施形態では、第2のレジスタに記憶されたデータは、図2に図示されたメモリ202のテーブル206内に記憶されたエレメント207のような、メモリの中のテーブル内のエレメントへの無符号の即値アドレスとして使用されることができる。このアドレスはテーブル内のエレメントに書き込むためかまたはこのエレメントからデータを読み出すために使用されることができる。
図4はテーブル内のエレメントのアドレスを決定する方法の特定の例示的な実施形態のフローチャートである。402で、この方法はメモリに記憶されたテーブル内の位置を識別するために単一の命令を実行することを含む。単一の命令は第1のレジスタからビットフィールドデータを抽出すること、およびこのビットフィールドデータを第2のレジスタのインデックス部内に挿入することをプロセッサによって実行可能であり、ここで第2のレジスタはテーブルアドレス部およびインデックス部を含む。テーブルアドレス部はテーブルと関連するメモリ位置を識別するテーブルアドレスを含み、ここでテーブルアドレスおよびビットフィールドデータは結合してテーブル内のエレメントへのインデックスアドレスを形成する。404に進んで、この方法はこのインデックスされたアドレスでメモリにアクセスするために第2の命令を実行することを含む。第2の命令はこのテーブル内のインデックスされたアドレスからデータを読み出すことまたはこのアドレスへデータを書き込むことをプロセッサによって実行可能である。この方法は406で終る。
特定の例示的な実施形態では、この方法はまたテーブルアドレスおよびテーブルインデックスに基づいてテーブル内のエレメントにアクセスすることも含むことができる。別の特定の実施形態では、単一の実行サイクルにおいて、ビットフィールドデータが抽出され、第2のレジスタ内に挿入される。第1および第2のレジスタは図1に図示された汎用レジスタファイル126の汎用レジスタのような、汎用レジスタファイル内のレジスタであってもよい。別の特定の実施形態では、抽出されたビットフィールドデータはテーブル内に記憶されたデータ構造に関連する挿入点に挿入される。例えば、図3に図示されたオフセット情報307,317,327,および337のような、オフセット情報は抽出されたビットフィールドデータの挿入のための(図3に図示された挿入位置303,313,323,および333のような)挿入位置を決定するために1つまたはそれ以上の実行ユニットによって使用されることができる。特に、オフセット情報はそのテーブルがバイト、ハーフワード、ワード、またはダブルワードを記憶するかどうかに応じて変化する挿入点を定義することができる。特に、オフセット情報は特定のテーブル内に記憶されたデータのタイプを定義することができる。実行ユニットは、テーブル内のエレメントへのアドレスを計算するために、そしてこのテーブルから適当なサイズのデータ構造を検索するために、論理境界に関連するメモリ内のテーブルの位置を使用し、そしてオフセット情報を使用することができる。
図5はテーブル内のエレメントのアドレスを決定する方法の第2の特定の例示的な実施形態のフローチャートである。502で、この方法はビットフィールドデータを第1のレジスタから抽出することを含む。504に進んでこの方法はテーブルアドレス部およびインデックス部を含む第2のレジスタのインデックス部内にこの抽出されたビットフィールドデータを挿入することを含む。第2のレジスタはテーブルと関連するメモリ位置を識別するテーブルアドレス部内に記憶されたテーブルアドレスデータを含む。テーブルアドレスデータおよび抽出されたビットフィールドデータはメモリ位置およびテーブル内のエレメントへのテーブルインデックスを定義する。506に進んで、この方法はまたテーブルアドレスおよびテーブルインデックスに基づいてテーブル内のエレメントにアクセスすることも含む。この方法は508で終る。
特定の実例では、図1〜5に関して記述された抽出シフト付加命令はテーブル内への非常に高速なルックアップを供給する。別の特定の実施形態では、抽出シフト付加命令はテーブル内の特定のエレメントへのアクセスを供給するためにシングルシフトおよびマスキングを使用することができる。
図6はテーブル内のエレメントのアドレスを決定するためのプロセッサを含む典型的な無線通信装置600のブロック図である。携帯型通信装置600はビットフィールドデータを備える第1のレジスタ662、テーブルアドレス部およびインデックス部を備える第2のレジスタ664、および図1〜5に関して記述されたような抽出シフト付加演算を実行することをDSP610内の実行ユニットによって実行可能である抽出シフト付加命令668を含むディジタル信号プロセッサ(DSP)610を含むことができる。携帯型通信装置600はまたテーブルエレメント661を含んでいるテーブル660を含むメモリ632も含む。特定の実施形態では、DSP610の実行ユニットは第1のレジスタ662からビットフィールドを抽出するため、および第2のレジスタ664のインデックス部内にこのビットフィールドを挿入しテーブル660内のエレメント661と関連するアドレスを決定するために抽出シフト付加命令668を実行することができる。エレメント661に記憶されたデータは図1〜5に関して記述されたように、決定されたアドレスを使用して検索されることができる。
図6はまたディジタル信号プロセッサ610に、およびディスプレイ628に結合されたディスプレイコントローラ626も示す。さらに、入力装置630はディジタル信号プロセッサ610に結合されている。そのうえ、メモリ632はディジタル信号プロセッサ610に結合されている。コーダ/デコーダ(CODEC)634もまたディジタル信号プロセッサ610に結合されることができる。スピーカ636およびマイクロホン638はCODEC634に結合されることができる。
図6はまた無線コントローラ640がディジタル信号プロセッサ610にそして無線アンテナ642に結合されうることも示す。特定の実施形態では、電源644はオンチップシステム622に結合されている。さらに、特定の実施形態では、図6に図示されたように、ディスプレイ628、入力装置630、スピーカ636、マイクロホン638、無線アンテナ642、および電源644はオンチップシステム622の外部にある。しかしながら、各々はオンチップシステム622のコンポーネントに結合されている。
ビットフィールドを含んでいる第1のレジスタ662およびテーブルアドレス部とインデックス部とを含んでいる第2のレジスタ664がディジタル信号プロセッサ610の別々のコンポーネントとして描写されているが、両エレメント662および664が、そうではなく図1に図示された汎用レジスタファイル126のような、汎用レジスタに統合されうることは理解されるべきである。そのうえ、ビットフィールドを含んでいる第1のレジスタ662およびテーブルアドレス部とインデックス部とを含んでいる第2のレジスタ664がDSP610内に描写されているが、他の処理エレメントはまた、テーブル660内のエレメント661へのテーブルアドレスおよびインデックスを生成するために2つの異なるレジスタからのレジスタデータとともに抽出シフト付加命令668を使用することができることも理解されるべきである。例えば、(プロセッサを含むことができる)ディスプレイコントローラ626、(プロセッサを含むことができる)無線コントローラ640、他のプロセッサ回路、またはそれらの任意の組合せを含んでいる、例えば、他のコンポーネントは単一クロックサイクル内において抽出シフト付加命令を実行するように適合されているプロセッサを含んでもよい。
当業者は本書中に開示された実施形態に関連して記述された様々な例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムステップは電子ハードウェア、コンピュータソフトウェア、または両者の組合せとして実施されうることをさらに認識するであろう。ハードウェアおよびソフトウェアのこの互換性を明確に説明するために、様々な例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップは、一般にそれらの機能に関して上述されている。そのような機能がハードウェアまたはソフトウェアとして実施されるかどうかは特定のアプリケーションとシステム全体に課された設計の制約とによる。当業者は特定のアプリケーション毎に様々な方法で記述された機能を実施できるが、しかしそのような実施の決定が本開示の範囲からの逸脱を引き起こすものとして解釈されてはならない。
本書中に開示された実施形態に関連して記述されたアルゴリズムまたは方法のステップはハードウェアで、プロセッサにより実施されるソフトウェアモジュールで、またはこの2つの組合せで直接具現化されることができる。ソフトウェアモジュールはRAMメモリ、フラッシュメモリ、ROMメモリ、PROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、着脱可能型ディスク、CD−ROM、あるいはこの技術分野において知られている任意の他の形式の記憶媒体の中に存在してもよい。典型的な記憶媒体はプロセッサが記憶媒体から情報を読み取ることができ、そして記憶媒体へ情報を書き込むことができるようにプロセッサに結合される。代替例では、記憶媒体はプロセッサに一体化されることができる。プロセッサおよび記憶媒体はASIC内に存在してもよい。ASICは計算装置またはユーザ端末内に存在してもよい。代替例では、プロセッサおよび記憶媒体はディスクリートコンポーネントとして計算装置またはユーザ端末内に存在してもよい。
開示された実施形態の以上の説明は、当業者が開示された実施形態を製作または使用することを可能とするために提供される。これらの実施形態への様々な変更は当業者にはたやすく明白であるだろうし、そしてこの中に定義された一般的な原理はこの開示の精神または範囲から逸脱すること無しに他の実施形態に適用されてもよい。したがって、本開示は本書中に示された実施形態に限定されることは意図されておらず、特許請求の範囲によって規定されたような原理および新規な特徴と整合する可能な限り最も広い範囲が許容されるべきである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
下記を具備する方法:
メモリに記憶されたテーブル内の位置を識別するために単一の命令を実行すること、該単一の命令はプロセッサによって下記を実行可能である:
第1のレジスタからビットフィールドデータを抽出すること;および
該ビットフィールドデータを第2のレジスタのインデックス部内に挿入すること、該第2のレジスタはテーブルアドレス部およびインデックス部を含む、該テーブルアドレス部はテーブルに関連するメモリ位置を識別するテーブルアドレスを含む;
ここにおいて該テーブルアドレスおよび該ビットフィールドデータは結合して該テーブル内のエレメントへのインデックスされたアドレスを形成する。
[C2]
該インデックスされたアドレスで該メモリにアクセスするために第2の命令を実行することをさらに具備し、該第2の命令は該テーブル内の該インデックスされたアドレスからデータを読み出すことまたは該アドレスにデータを書き込むことを該プロセッサによって実行可能である、C1記載の方法。
[C3]
該テーブルは該テーブルのサイズより大きいかまたは等しい2の累乗のサイズであるメモリ位置に整列される、C1記載の方法。
[C4]
該テーブルは4キロバイトテーブルを具備するおよび該テーブルは該メモリの4キロバイト境界に整列される、C3記載の方法。
[C5]
該抽出されたビットフィールドデータは該テーブル内に記憶されたテーブルエントリのタイプに基づいた挿入点で挿入される、C1記載の方法。
[C6]
該テーブルがバイトのデータを記憶する時には該挿入点はビット0である、C5記載の方法。
[C7]
該テーブルがハーフワードを記憶する時には該挿入点はビット1である、C5記載の方法。
[C8]
該テーブルがワードを記憶する時には該挿入点はビット2である、C5記載の方法。
[C9]
該テーブルがダブルワードを記憶する時には該挿入点はビット3である、C5記載の方法。
[C10]
下記を具備するプロセッサ:
ビットフィールドを含んでいる第1のレジスタ;
テーブルアドレス部およびインデックス部を含んでいる第2のレジスタ、該テーブルアドレス部はメモリ内のテーブルの位置を識別するテーブルアドレスを含んでいる;およ び、
該第1のレジスタの該ビットフィールドからビットフィールドデータを抽出するために、および、該第2のレジスタの該インデックス部内に該抽出されたビットフィールドデータを挿入して該テーブル内のエレメントへのアドレスを生成するために、単一の命令を処理することによってアドレスを生成するように適合された実行ユニット。
[C11]
該実行ユニットはビットをシフトするためにシフタを含む、C10記載のプロセッサ。
[C12]
該シフタは該抽出されたビットフィールドデータを所定数のビットだけシフトするように適合され、およびシフトされたビットフィールドデータは付加演算を使用して該インデックス部に挿入される、C11記載のプロセッサ。
[C13]
該シフタは双方向シフタを具備する、C11記載のプロセッサ。
[C14]
該テーブルは該テーブルのサイズより大きいかまたは等しい2の累乗であるメモリ境界に整列される、C10記載のプロセッサ。
[C15]
該テーブルアドレス部は該第2のレジスタの最上位ビット部を具備する、C10記載のプロセッサ。
[C16]
該抽出されたビットフィールドデータは該第2のレジスタの最下位ビット部内に挿入される、C10記載のプロセッサ。
[C17]
該抽出されたビットフィールドデータは該テーブル内に記憶されたデータのタイプを示す該最下位ビット部内の挿入点で挿入される、C16記載のプロセッサ。
[C18]
該挿入点はコンパイルタイムでアセンブラによって符号化される、C17記載のプロセッサ。
[C19]
テーブル内へのアドレスを決定する方法、該方法は下記を具備する:
第1のレジスタからビットフィールドデータを抽出すること;および
テーブルアドレス部およびインデックス部を含む第2のレジスタの該インデックス部内に該抽出されたビットフィールドデータを挿入すること、該第2のレジスタはテーブルに関連するメモリ位置を識別する該テーブルアドレス部内に記憶されたテーブルアドレスデータを含み、該テーブルアドレスデータおよび該抽出されたビットフィールドデータは該メモリ位置および該テーブル内のエレメントへのテーブルインデックスを供給する。
[C20]
該テーブルアドレスおよび該テーブルインデックスに基づいて該テーブル内の該エレメントにアクセスすることをさらに具備する、C19記載の方法。
[C21]
該ビットフィールドデータを抽出することおよび該抽出されたビットフィールドデータを挿入することは単一の命令のプロセッサによる実行に応じて実行される、C19記載の方法。
[C22]
該ビットフィールドデータを抽出することおよび該抽出されたビットフィールドデータを挿入することは単一の実行サイクル内で実行される、C19記載の方法。
[C23]
該第1のレジスタおよび該第2のレジスタは汎用レジスタファイル内のレジスタである、C19記載の方法。
[C24]
該抽出されたビットフィールドデータは該テーブル内に記憶されたデータ構造によって決定される挿入点で挿入される、C19記載の方法。
[C25]
該挿入点は該データ構造がバイト、ハーフワード、ワード、またはダブルワードかどうかによって異なる、C24記載の方法。

Claims (22)

  1. メモリに記憶されたテーブル内のエレメントの位置を識別するために単一の命令をプロセッサが実行することにより、第1のレジスタからビットフィールドデータを抽出することであって、該第1のレジスタは、オフセット情報を含むことと、
    該単一の命令をプロセッサが実行することにより、該ビットフィールドデータを、テーブルアドレスを含む第2のレジスタのインデックス部内に挿入することと、
    該単一の命令をプロセッサが実行することにより、該オフセット情報によって定義される、該テーブルに記憶された該エレメントのデータのタイプに基づいて該インデックス部内の挿入点を選択することと、を具備する方法であって、
    該テーブルアドレスおよび該ビットフィールドデータは結合して該テーブル内の該エレメントへのインデックスされたアドレスを形成するものである、方法。
  2. 該インデックスされたアドレスで該メモリにアクセスするために第2の命令を実行することをさらに具備し、該第2の命令に基づいて、該テーブル内の該インデックスされたアドレスからデータを読み出すことまたは該アドレスにデータを書き込むことを該プロセッサが実行可能である、請求項1記載の方法。
  3. 該テーブルは該テーブルのサイズより大きいかまたは等しい2の累乗のサイズであるメモリ境界に整列される、請求項1記載の方法。
  4. 該テーブルは4キロバイトテーブルを具備するおよび該テーブルは該メモリの4キロバイト境界に整列される、請求項3記載の方法。
  5. ビットフィールドを含んでいる第1のレジスタであって、該第1のレジスタは、オフセット情報を含む第1のレジスタと、
    テーブルアドレス部およびインデックス部を含んでいる第2のレジスタと、
    実行ユニットとを具備するプロセッサであって、
    該テーブルアドレス部はメモリに記憶されたテーブルのテーブルアドレスを含んでいるものであり、
    該実行ユニットは、該オフセット情報によって定義される、該テーブル内のエレメントのデータのタイプに基づいて該インデックス部内の挿入点を選択するように適合されており、
    該挿入点は、各データのタイプに対して異なっており、
    該実行ユニットは、単一の命令を処理する際に、該第1のレジスタの該ビットフィールドからビットフィールドデータを抽出し、該第2のレジスタの該インデックス部内の該挿入点に該抽出されたビットフィールドデータを挿入することによって、該テーブル内の該エレメントへのインデックスされたアドレスを生成するように適合されている、プロセッサ。
  6. 該実行ユニットはビットをシフトするためにシフタを含む、請求項5記載のプロセッサ。
  7. 該シフタは該抽出されたビットフィールドデータを所定数のビットだけシフトするように適合され、およびシフトされたビットフィールドデータは付加演算を使用して該インデックス部に挿入される、請求項6記載のプロセッサ。
  8. 該シフタは双方向シフタを具備する、請求項6記載のプロセッサ。
  9. 該テーブルは該テーブルのサイズより大きいかまたは等しい2の累乗であるメモリ境界に整列される、請求項5記載のプロセッサ。
  10. 該テーブルアドレス部は該第2のレジスタの最上位ビット部を具備する、請求項5記載のプロセッサ。
  11. 該抽出されたビットフィールドデータは該第2のレジスタの最下位ビット部内に挿入される、請求項5記載のプロセッサ。
  12. 該抽出されたビットフィールドデータは該テーブル内に記憶された該データのタイプを示す該最下位ビット部内の挿入点で挿入される、請求項11記載のプロセッサ。
  13. 該挿入点はコンパイルタイムでアセンブラによって符号化される、請求項12記載のプロセッサ。
  14. テーブル内のエレメントのアドレスを決定する方法であって、
    第1のレジスタからビットフィールドデータを抽出することであって、該第1のレジスタは、オフセット情報を含むことと、
    第2のレジスタのインデックス部内のビットオフセットを決定することと、
    該ビットオフセットに基づいて該第2のレジスタの該インデックス部内に該抽出されたビットフィールドデータを挿入することとを具備し、
    該ビットオフセットは、該オフセット情報によって定義される、該テーブル内の該エレメントのデータのタイプに基づいており、
    該ビットオフセットは各タイプに対して異なっており、
    該第2のレジスタはテーブルアドレスデータを含むものであり、
    該テーブルアドレスデータおよび該抽出されたビットフィールドデータは該テーブル内の該エレメントへのインデックスされたアドレスを供給するものである、方法。
  15. 該インデックスされたアドレスに基づいて該テーブル内の該エレメントにアクセスすることをさらに具備する、請求項14記載の方法。
  16. 該ビットフィールドデータを抽出することおよび該抽出されたビットフィールドデータを挿入することは単一の命令のプロセッサによる実行に応じて実行される、請求項14記載の方法。
  17. 該ビットフィールドデータを抽出することおよび該抽出されたビットフィールドデータを挿入することは単一の実行サイクル内で実行される、請求項14記載の方法。
  18. 該第1のレジスタおよび該第2のレジスタは汎用レジスタファイル内のレジスタである、請求項14記載の方法。
  19. データのタイプは、バイト、ハーフワード、ワード、およびダブルワードである、請求項14記載の方法。
  20. 該テーブルに記憶された該エレメントの該データのタイプは、バイト、ハーフワード、ワード、またはダブルワードである、請求項1記載の方法。
  21. 該テーブルに記憶された該エレメントの第1のデータのタイプに対応する第1のビットオフセットを決定することと、
    該第1のビットオフセットに基づいて該抽出されたビットフィールドデータをシフトすることとを、更に具備する請求項1記載の方法。
  22. 該挿入点は該第1のビットオフセットに基づいている、請求項21記載の方法。
JP2010535062A 2007-11-20 2008-11-20 テーブル内のエレメントのアドレスを決定するシステムおよび方法 Active JP5490711B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/943,265 2007-11-20
US11/943,265 US7877571B2 (en) 2007-11-20 2007-11-20 System and method of determining an address of an element within a table
PCT/US2008/084189 WO2009067598A1 (en) 2007-11-20 2008-11-20 System and method of determining an address of an element within a table

Publications (2)

Publication Number Publication Date
JP2011503758A JP2011503758A (ja) 2011-01-27
JP5490711B2 true JP5490711B2 (ja) 2014-05-14

Family

ID=40279010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010535062A Active JP5490711B2 (ja) 2007-11-20 2008-11-20 テーブル内のエレメントのアドレスを決定するシステムおよび方法

Country Status (8)

Country Link
US (1) US7877571B2 (ja)
EP (1) EP2223204B1 (ja)
JP (1) JP5490711B2 (ja)
KR (1) KR101283423B1 (ja)
CN (1) CN101911011B (ja)
ES (1) ES2725800T3 (ja)
HU (1) HUE043204T2 (ja)
WO (1) WO2009067598A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8812516B2 (en) * 2011-10-18 2014-08-19 Qualcomm Incorporated Determining top N or bottom N data values and positions
KR20130087936A (ko) * 2012-01-30 2013-08-07 삼성전자주식회사 메모리 장치, 메모리 시스템 및 이의 프로그램 방법
CN104243085A (zh) * 2013-06-08 2014-12-24 阿尔卡特朗讯 用于编码重组位数据的方法、装置和基站控制器
US20170185402A1 (en) * 2015-12-23 2017-06-29 Intel Corporation Instructions and logic for bit field address and insertion
US20190272175A1 (en) * 2018-03-01 2019-09-05 Qualcomm Incorporated Single pack & unpack network and method for variable bit width data formats for computational machines
KR102663496B1 (ko) * 2022-08-02 2024-05-08 이화여자대학교 산학협력단 프로세서의 레지스터 캐시 인덱스 결정 방법 및 이를 수행하는 전자 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5679352A (en) * 1979-12-03 1981-06-29 Nec Corp Address generator
JPS56164447A (en) * 1980-05-20 1981-12-17 Canon Inc Data processing device
JPS61165148A (ja) * 1984-12-14 1986-07-25 Fujitsu Ltd テ−ブルアクセス命令方式
JP3203401B2 (ja) * 1993-05-21 2001-08-27 三菱電機株式会社 データ処理装置
US5924128A (en) * 1996-06-20 1999-07-13 International Business Machines Corporation Pseudo zero cycle address generator and fast memory access
US6263420B1 (en) 1997-09-17 2001-07-17 Sony Corporation Digital signal processor particularly suited for decoding digital audio
GB2352065B (en) * 1999-07-14 2004-03-03 Element 14 Ltd A memory access system
EP1369774A1 (fr) * 2002-06-06 2003-12-10 CSEM Centre Suisse d'Electronique et de Microtechnique SA Recherche et Développement Dispositif d'élaboration d'adresses pour un processeur de signaux numériques
JP4545777B2 (ja) 2002-06-28 2010-09-15 ルネサスエレクトロニクス株式会社 データ処理装置
US7243210B2 (en) 2005-05-31 2007-07-10 Atmel Corporation Extracted-index addressing of byte-addressable memories
US8285972B2 (en) * 2005-10-26 2012-10-09 Analog Devices, Inc. Lookup table addressing system and method

Also Published As

Publication number Publication date
WO2009067598A1 (en) 2009-05-28
HUE043204T2 (hu) 2019-08-28
CN101911011B (zh) 2016-04-27
EP2223204A1 (en) 2010-09-01
US7877571B2 (en) 2011-01-25
ES2725800T3 (es) 2019-09-27
JP2011503758A (ja) 2011-01-27
KR20100075697A (ko) 2010-07-02
KR101283423B1 (ko) 2013-07-08
EP2223204B1 (en) 2019-02-13
CN101911011A (zh) 2010-12-08
US20090132783A1 (en) 2009-05-21

Similar Documents

Publication Publication Date Title
US20210026634A1 (en) Apparatus with reduced hardware register set using register-emulating memory location to emulate architectural register
JP5357181B2 (ja) コンピュータ・システム、その動作方法、及び、コンピュータ・プログラム
JP4817185B2 (ja) 埋め込み符号を持ったコンピュータ命令値フィールド
US8131934B2 (en) Extract cache attribute facility and instruction therefore
US20100332803A1 (en) Processor and control method for processor
JP5490711B2 (ja) テーブル内のエレメントのアドレスを決定するシステムおよび方法
US20090182983A1 (en) Compare and Branch Facility and Instruction Therefore
JP5341163B2 (ja) 可変長命令の固定数を持つ命令キャッシュ
US20090182988A1 (en) Compare Relative Long Facility and Instructions Therefore
JP2011517493A (ja) 実行された命令の結果を選択的にコミットするためのシステムおよび方法
KR20110055629A (ko) 단일 명령 다중 데이터(simd)데이터 처리기에서 확장된 어드레싱 모드들의 제공
US20080091921A1 (en) Data prefetching in a microprocessing environment
US9280480B2 (en) Extract target cache attribute facility and instruction therefor
JP3837289B2 (ja) 同じ論理的空間を占有する複数のレジスタファイルを含むマイクロプロセッサ
JP5107892B2 (ja) 間接レジスタ読み取り及び書込み動作
JP2009536774A (ja) マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
US8095775B1 (en) Instruction pointers in very long instruction words
CN115640047A (zh) 指令操作方法及装置、电子装置及存储介质
US20090182992A1 (en) Load Relative and Store Relative Facility and Instructions Therefore
WO2023142524A1 (zh) 指令处理方法、装置、芯片、电子设备以及存储介质
CN116339832A (zh) 数据处理装置、方法及处理器
EP2542963B1 (en) System and method of processing hierarchical very long instruction packets
CN111814093A (zh) 一种乘累加指令的处理方法和处理装置
GB2402759A (en) Transferring data files between a register file and a memory
US7698539B1 (en) System and method of instruction modification

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121127

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130917

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131022

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140114

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140226

R150 Certificate of patent or registration of utility model

Ref document number: 5490711

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250