JP2003521035A - コンピュータのロードとストア演算を改善する方法および装置 - Google Patents
コンピュータのロードとストア演算を改善する方法および装置Info
- Publication number
- JP2003521035A JP2003521035A JP2001554162A JP2001554162A JP2003521035A JP 2003521035 A JP2003521035 A JP 2003521035A JP 2001554162 A JP2001554162 A JP 2001554162A JP 2001554162 A JP2001554162 A JP 2001554162A JP 2003521035 A JP2003521035 A JP 2003521035A
- Authority
- JP
- Japan
- Prior art keywords
- stream
- memory
- instruction
- register
- data entity
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 239000013598 vector Substances 0.000 claims abstract description 32
- 238000010586 diagram Methods 0.000 description 11
- 230000000873 masking effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Supplying Of Containers To The Packaging Station (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
- Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
- Pens And Brushes (AREA)
Abstract
Description
おいてデータエンティティをロードし、ストアするための方法および装置に関す
る。
る優先権を主張し、また、本発明は、1998年12月16日出願の同時係属出
願第09/216017号、1999年1月27日出願の同時係属出願第09/
240012号、1999年3月22日出願の同時係属出願第09/27381
0号、1999年5月14日出願の同時係属出願第09/312302号に関し
、また一部継続出願である以上に列挙する4件に関し、4件すべてを参照により
本件に組み込む。
。当技術分野で知られるとおり、多くの種類の命令セットアーキテクチャ(IS
A)が存在し、いくつかのアーキテクチャが、多くのコンピュータオペレーショ
ンで好まれるようになっている。これらアーキテクチャの1つが、よく知られて
いるMIPS ISAであり、本明細書では、いくつかの例でMIPS ISA
を使用する。ただし、本発明は、MIPS ISAには限定されない。
メモリまたはキャッシュメモリと、データが即時にアクセス可能であるCPUの
レジスタファイルとの間でデータエンティティを移動することである。複数のデ
ータエンティティをロードまたはストアしてからでなければ、実行を開始または
継続できないとき、従来の命令セットアーキテクチャでは、いくつかの命令が必
要とされる。データにアクセスする必要があるアプリケーションでは、既知のパ
ターンで関連するデータエンティティをロードまたはストアすることが可能な単
一の命令を有することが望ましく、またそのような動作が可能な単一の命令が、
多くのコンピュータ演算の速度および効率を相当に向上させることを本発明者は
発見した。
有するデータエンティティを示すための単一の命令を含み、該単一命令を実行し
た結果として一連のそのようなデータエンティティをロードまたはストアするた
めの方法および装置である。
タエンティティを選択し、データエンティティをレジスタファイルに書き込むた
めの方法が提供され、本方法は、(a)第1のアドレスから開始してN個のエン
ティティを選択して読み取るステップと、(b)メモリのエンティティの順序で
第1のレジスタからのレジスタ・ファイルにエンティティを書き込むステップと
を含む。好ましい実施形態では、ステップは、命令セットアーキテクチャ(IS
A)に従って実施されるストリームロード(Stream Load)命令の結
果起こり、ISAは、MIPSであることが可能である。また、好ましい実施形
態では、ストリームロード命令の引数が、データエンティティの読取りを開始す
るメモリアドレス、データエンティティの書込みを開始するレジスタファイルの
第1のレジスタ、ならびに読取りおよび書込みを行うデータエンティティの数を
示す数値を示す。
ータエンティティを選択し、データエンティティをメモリに書き込むための方法
が提供され、本方法は、(a)第1のレジスタから開始してN個のエンティティ
を選択して読み取るステップと、(b)レジスタファイルのエンティティの順序
で第1のアドレスからメモリにエンティティを書き込むステップとを含む。好ま
しい実施形態では、ステップは、命令セットアーキテクチャ(ISA)に従って
実施されるストリームストア命令の結果起こり、ISAは、MIPSである。ま
た、好ましい実施形態では、ストリームストア命令の引数が、データエンティテ
ィの読取りを開始するレジスタ、データエンティティの書込みを開始するメモリ
のアドレス、ならびに読取りおよび書込みを行うデータエンティティの数を示す
数値を示す。
ィティを選択し、データエンティティをレジスタファイルに書き込むための方法
が提供され、本方法は、(a)第1のアドレスとの関係で、コピーするエンティ
ティの第1のマップを照会するステップと、(b)マップによって示されるエン
ティティを選択して読み取るステップと、(c)第1のレジスタとの関係で、メ
モリからコピーしたエンティティを書き込む位置の第2のマップを照会するステ
ップと、(d)第2のマップに従ってエンティティをレジスタファイルに書き込
むステップとを含む。好ましい実施形態では、ステップは、命令セットアーキテ
クチャ(ISA)に従って実施されるマスクされたロード(Masked Lo
ad)命令の結果起こる。また、好ましい実施形態では、ISAは、MIPSで
ある。また、好ましい実施形態では、マスクされたロード命令の引数が、マスク
の位置決めをするための開始メモリアドレス、使用するマスク番号、およびレジ
スタファイルにデータエンティティの書込みを開始する第1のレジスタを示す。
いくつかの実施形態では、第1のおよび第2のマップは、ビットストリングとし
て実施され、ストリングにおけるビットの位置が、メモリから選択されるべきデ
ータエンティティの位置、およびデータエンティティが書き込まれるべきレジス
タを示す。
択し、データエンティティをメモリに書き込むための方法が提供され、本方法は
、(a)第1のレジスタとの関係で、読み取るエンティティの第1のマップを照
会するステップと、(b)マップによって示されるエンティティを選択して読み
取るステップと、(c)第1のアドレスとの関係で、レジスタファイルから読み
取ったエンティティを書き込む位置の第2のマップを照会するステップと、(d
)第2のマップに従ってエンティティをメモリファイルに書き込むステップとを
含む。好ましい実施形態では、ステップは、命令セットアーキテクチャ(ISA
)に従って実施されるマスクされたストア(Masked Store)命令の
結果起こり、ISAは、MIPSであることが可能である。また、好ましい実施
形態では、マスクされたストア命令の引数が、マスクを位置決めするための開始
レジスタ、番号を使用するマスク、およびメモリへのデータエンティティの書込
みを開始する第1のレジスタを示す。いくつかの実施形態では、第1のおよび第
2のマップは、ビットストリングとして実施され、ストリングにおけるビットの
位置が、読み取られるべきデータエンティティの位置、およびデータエンティテ
ィが書き込まれるべきレジスタを示す。
ストリームロード命令が提供され、本命令は、命令の指示と、データエンティテ
ィの読取りを開始するメモリの第1のアドレスを示す第1の引数と、メモリから
読み取ったデータエンティティの書込みを開始するレジスタファイルの第1のレ
ジスタを示す第2の引数と、読取りおよび書込みを行うデータエンティティの数
を示す第3の引数とを含む。
、データエンティティの読取りを開始するレジスタファイルの第1のアドレスを
示す第1の引数と、レジスタファイルから読み取ったデータエンティティの書込
みを開始するメモリの第1のアドレスを示す第2の引数と、読取りおよび書込み
を行うデータエンティティの数を示す第3の引数とを含む。
指示と、読み取るべきデータエンティティを示すマスクを配置するメモリの第1
のアドレスを示す第1の引数と、メモリから読み取ったデータエンティティの書
込みを開始するレジスタファイルの第1のレジスタを示す第2の引数と、読取り
および書込みを行うデータエンティティを選択するのに使用するマスク番号を示
す第3の引数とを含む。
指示と、読み取るべきデータエンティティを示すマスクを配置するレジスタファ
イルの第1のレジスタを示す第1の引数と、レジスタファイルから読み取ったデ
ータエンティティの書込みを開始するメモリの第1のアドレスを示す第2の引数
と、コピーおよび書込みを行うデータエンティティを選択するのに使用するマス
ク番号を示す第3の引数とを含む。
が提供される。システムは、メモリからレジスタファイルにデータエンティティ
をロードする際、CPUが、所定の数のデータエンティティを読み取り、所定の
第1のレジスタから開始して、メモリと同じ順序でデータエンティティをレジス
タファイルのレジスタに書き込むことを特徴とする。システムの好ましい実施形
態では、メモリからレジスタファイルにデータエンティティを転送することは、
命令セットアーキテクチャ(ISA)に従って実施され、CPUによって実行さ
れるストリームロード命令の結果起こり、ISAは、MIPSであることが可能
である。いくつかの実施形態では、ストリームロード命令の引数が、データエン
ティティの読取りを開始するメモリアドレス、データエンティティの書込みを開
始するレジスタファイルの第1のレジスタ、ならびに読取りおよび書込みを行う
データエンティティの数を示す数値を示す。
ステムが提供される。システムは、レジスタファイルからメモリにデータエンテ
ィティをストアする際、CPUが、レジスタファイルから所定の数のデータエン
ティティを読み取り、所定の第1のアドレスから開始して、レジスタファイルと
同じ順序でデータエンティティをメモリのアドレス指定された場所に書き込むこ
とを特徴とする。好ましい実施形態では、レジスタファイルからメモリにデータ
エンティティをストアすることは、命令セットアーキテクチャ(ISA)に従っ
て実施され、CPUによって実行されるストリームストア命令の結果起こり、I
SAは、MIPSであることが可能である。また、好ましい実施形態では、スト
リームストア命令の引数が、データエンティティを読み取る第1のレジスタファ
イル、データエンティティを書き込むメモリの第1のアドレス、ならびに読取り
および書込みを行うデータエンティティの数を示す数値を示す。
が提供される。このシステムは、レジスタファイルからメモリにデータエンティ
ティをストアする際、CPUが、レジスタファイルから所定の数のデータエンテ
ィティを読み取り、所定の第1のアドレスから開始して、レジスタファイルと同
じ順序でデータエンティティをメモリのアドレス指定された場所に書き込むこと
を特徴とする。好ましい実施形態では、レジスタファイルからメモリにデータエ
ンティティをストアすることは、命令セットアーキテクチャ(ISA)に従って
実施され、CPUによって実行されるストリームストア命令の結果起こり、IS
Aは、MIPSであることが可能である。いくつかの実施形態では、ストリーム
ストア命令の引数が、データエンティティを読み取る第1のレジスタファイル、
データエンティティを書き込むメモリの第1のアドレス、ならびに読取りおよび
書込みを行うデータエンティティの数を示す数値を示す。
が提供される。メモリからレジスタファイルにデータエンティティをロードする
際、CPUは、第1のアドレスに関する所定のパターンに従ってデータエンティ
ティを読み取り、第1のレジスタに関する所定のパターンでデータエンティティ
をレジスタファイルのレジスタに書き込む。好ましい実施形態では、メモリから
レジスタファイルにデータエンティティをロードすることは、命令セットアーキ
テクチャ(ISA)に従って実施され、CPUによって実行されるマスクされた
ロード命令の結果起こり、ISAは、MIPSであることが可能である。いくつ
かの実施形態では、マスクされたロード命令の引数が、データエンティティの読
取りを開始するメモリアドレス、データエンティティの書込みを開始するレジス
タファイルの第1のレジスタ、ならびにデータエンティティの読取りおよび書込
みのためのメモリおよびレジスタファイルの相対位置を示すのに使用するストア
されたマスクを示すマスク番号を示す。さらに、ストアされたマスクは、2ビッ
トストリングベクトルとして実施することが可能であり、第1のアドレスとの関
係でどのデータエンティティを読み取るかを第1のベクトルが示し、第1のレジ
スタとの関係でどのレジスタにデータエンティティを書き込むかを第2のベクト
ルが示す。
ステムが提供される。システムでは、レジスタファイルからメモリにデータエン
ティティをストアする際、CPUが、所定のパターンに従ってレジスタファイル
からデータエンティティを読み取り、第1のアドレスから開始して、やはり所定
のパターンに従ってデータエンティティをメモリのアドレス指定された場所に書
き込む。好ましい実施形態では、レジスタファイルからメモリにデータエンティ
ティをストアすることは、命令セットアーキテクチャ(ISA)に従って実施さ
れ、CPUによって実行されるマスクされたストア命令の結果起こり、ISAは
、MIPSであることが可能である。好ましい実施形態では、マスクされたロー
ド命令の引数が、データエンティティの読取りを開始するメモリアドレス、デー
タエンティティの書込みを開始するレジスタファイルの第1のレジスタ、ならび
にデータエンティティの読取りおよび書込みのためのメモリおよびレジスタファ
イルの相対位置を示すのに使用するストアされたマスクを示すマスク番号を示す
。いくつかの実施形態では、ストアされたマスクは、2ビットストリングベクト
ルとして実施され、第1のレジスタとの関係でどのデータエンティティを読み取
るかを第1のベクトルが示し、第1のアドレスとの関係でどのレジスタにデータ
エンティティを書き込むかを第2のベクトルが示す。
され、本プロセッサは、第1の複数k個の個別ストリームと、第2の複数m個の
マスクまたはマスクセットとを含む。第2の複数m個の個別マスクまたはマスク
セットは、マスクされたロードおよび/またはマスクされたストア演算を行うた
め、第1の複数k個のストリームの個々のストリームを排他的に使用するように
専用に供される。好ましい実施形態では、個々のマスクまたはマスクセットは、
個々のマスクまたはマスクセットを専用とするストリームによってのみ変更可能
である。
ムが提供され、本システムは、複数k個の個別ストリームと、マスクされたロー
ド動作およびマスクされたストア演算を行う際に使用するための1組のマスクま
たはマスクセットを含み、単一の命令を実行した結果として、かつマスク、キャ
ッシュメモリ、およびシステムメモリに従って複数のデータエンティティがロー
ドされるか、またはストアされる。システムは、マスクされたロード動作または
マスクされたストア演算を行う際、システムメモリと1つまたは複数のレジスタ
ファイルの間で直接にデータエンティティを転送することを特徴とする。
単一の命令に従って複数のデータエンティティの読取りおよび書込みを行うこと
ができ、実行時に多くのサイクルを節約し、連続的にまたは事前にストアされた
位置マスクに従って読取りおよび書込みを行うため、データエンティティを選択
できる、コンピュータシステムにおけるロードおよびストア演算のための方法お
よび装置が、初めて提供される。
かの異なる命令セットアーキテクチャ(ISA)が存在する。命令セットアーキ
テクチャは、一般的に言って、CPUが命令として解釈する2進ワードにおける
ビットおよびビットのセットの配列である。よく知られているMIPS ISA
は、好ましい実施形態で本発明を実施する際に本発明者によって使用されたアー
キテクチャであるが、本発明は、もちろん、MIPS ISAに限定されない。
この理由で、MIPSアーキテクチャで知られる命令語の部分の特定の使用は、
本明細書では詳細に説明しない。MIPSアーキテクチャが、新しい命令を実施
するのに使用できる未使用の演算コードを提供することは、よく知られており、
本発明者は、MIPSの好ましい実施形態では、この特徴を利用している。
ように新規で明白でない機能を導入する命令を特定して説明する。
定義する引数である。
ステムメモリなどの任意のメモリであることが可能なメモリ11、およびレジス
タファイル15を示す概略図である。メモリ11は、好ましい実施形態では32
ビットのワード幅を有し、またレジスタファイル15も同様に、レジスタ幅を有
する。ワード幅およびレジスタ幅は、好ましくは同じであるが、本発明の別の実
施形態では異なる可能性がある。
トリームロード命令のための論理構造が存在する。命令構造の中には、命令演算
コード(ストリームロードのための)、および第1の引数@、第2の引数「第1
のレジスタ」、および第3の引数「N」の3つの引数が存在する。図を参照する
と、CPUは、この命令を実行するとき、命令演算コードから、演算の順序がど
のようであるかを知り、メモリ11からワードを取り、ワードをレジスタファイ
ル15に書き込む。引数は、パラメータを提供する。
1のアドレス@から開始して、N個の連続するワードを読み取り、これらN個の
ワードを同じ順序で、レジスタファイルでワード17のブロックを提供するレジ
スタの「第1のレジスタ」から開始してレジスタファイル15に書き込む。
スタの幅と異なる可能性があるため、メモリから選択されたワードは、複数のレ
ジスタに影響を与える、または1つのレジスタを満たさない可能性がある。メモ
リワードが、例えば、レジスタ幅の2倍である場合、1つのメモリワードは、2
つの連続するレジスタを満たすことになり、ある選択された数のメモリワードは
、その2倍の数のレジスタを満たすことになる。他方、メモリワードが、レジス
タ幅の1/2である場合、単一のレジスタを満たすのに2つのメモリワードが必
要とされることになる。
を描いており、CPUが、命令を実行して、レジスタの「第1のレジスタ」から
開始してレジスタファイル15からN個の連続するワード(ワード17)を読み
取り、これらN個のワードを同じ順序で、引数で定義されるアドレス@から開始
してワード13を提供するメモリ11に書き込む。
1つが、ネットワークのパケット経路指定におけるパケットの処理にマルチスト
リーミングプロセッサを適用することにある。ただし、これらの命令には、広い
範囲の適用において実質的にあらゆる種類のプロセッサを使用する、他の多数の
使用法がある。
に運び込まれ、メモリ11などのメモリにストアされると、ある規則に従って処
理されるよう、レジスタファイルにあるヘッダフィールドをロードする必要があ
る。構造は分かっているので、ヘッダを含むバイトをメモリに連続的に記憶する
ことができ、処理のためにパケットに関するすべての必要なデータをレジスタフ
ァイルにロードし、処理の後にレジスタをストアするように新しいストリームロ
ード命令および新しいストリームストア命令の引数を構造化することができる。
もちろん、ストアするのは、ロードで使用するレジスタと同じレジスタであるこ
とも、異なるレジスタであることも可能である。同様に、多数の実例でコンピュ
ータの演算を向上させる、ストリームロードおよびストリームストアに関する他
の多数の可能な適用例が存在する。
続するという制限のない、複数のワードをロードし、ストアする新しいコマンド
を構造化することにより、本発明の機能性を相当に強化することができると本発
明者は判断した。新しいコマンドを、それぞれ、マスクされたロードおよびマス
クされたストアと命名する。
15の概略図である。本例におけるメモリ11は、1バイト幅であり、メモリ1
1で0から7まで任意に番号を付けた8個のメモリワードを示している。各ワー
ドは、当技術分野で知られるとおり、メモリアドレスを有する。本例におけるレ
ジスタファイル15は、4バイト幅であり、左側で0から7まで任意に番号を付
けたレジスタに構成して、示されている。図の下には、3つの引数を有するマス
クされたロード命令の構成例がある。第1の引数は、メモリ11のアドレスであ
り、第2の引数は、レジスタファイルの第1のレジスタであり、また第3の引数
は、この場合、マスク番号である。
リバイト番号を表し、右側の列は、相対レジスタ番号を表している。これは、図
2Aのマスクされたロード例に関するマスクである。メモリバイト番号0、3、
5、7を左側の列にリストし、相対レジスタ番号0、0、2、3を右側の列にリ
ストしていることに留意されたい。マスクは、どのメモリバイトを読み取り、そ
れらのバイトをレジスタファイルのどこに書き込むかをマスクされたロード命令
に知らせる。
る(それぞれ別の仕方で)ことに留意されたい。マスクされたロード命令のアド
レス(@)引数は、メモリのどこにマスクを配置するかをCPUに知らせ、マス
クは、開始アドレスとの関係で読み取るバイトを選択する。レジスタファイルは
、4バイト幅であるので、メモリから4バイトをレジスタファイルの単一のレジ
スタに並べて書き込むことができる。本例では、デフォルトでは、選択されたバ
イトは、各レジスタの最下位バイトから開始してレジスタファイルに書き込まれ
、最下位バイトは、デフォルトでは、本例の右端のバイトである。
ている。これは、命令の第2の引数によって示される第1のレジスタである。し
たがって、メモリバイト0は、レジスタファイルの相対レジスタ0の最下位バイ
トに書き込まれるものとして示している。次にマスクは、相対メモリバイト3も
レジスタファイルの相対レジスタ0に書き込まれることを示している。これは、
相対レジスタ0に行く第2のバイトであり、レジスタファイルの示されたレジス
タの最下位から2番目のバイトに書き込まれる。メモリバイト5は、相対レジス
タ2に書き込まれ、レジスタ2に行く唯一のバイトであるため、最下位の位置に
行く。相対メモリバイト7は、マスクに従って相対レジスタ3に行き、このこと
も図2Aで示している。斜交平行線は、メモリからレジスタファイルへのデータ
の移動を共通に示す。
うになるまで、メモリから選択されたデータエンティティは、最下位バイトから
開始してレジスタに書き込まれる。これは、レジスタにおける選択されたバイト
の配置の一例に過ぎない。その他の任意の配置も、マスクによって示されること
が可能であり、示した簡単なマスクは、レジスタにおけるバイトの配置を示すよ
り多くの列を有することも可能であった。多くのマスク実施およびデフォルトが
、本発明の趣旨および範囲で可能である。
、マスクされたロード演算も、マッチするマスクされたストア命令を有する。ス
トアの場合、命令アーキテクチャにおいて、選択されたビットが、ロード演算で
はなくストアを示し、引数は、マスクされたロードと同じ構造を有する。
ことが可能であり、ロードされるバイトの数および位置を定義する各マスクの長
さも、異なる実施形態で様々でありうることが明白であろう。本発明の一実施形
態では、先に簡単に説明した、経路指定装置においてデータパケットを処理する
状況では有用である。この特定のケースでは、経路指定のためにデータパケット
を処理する際、マスクを実施して、例えば、パケットのあるヘッダなどのメモリ
からのデータエンティティのあるパターンを捕捉することができる。
れたストア命令が、動的マルチストリーミングプロセッサを使用するパケット処
理のために使用されるスレッド(ソフトウェア)で使用される。これらのプロセ
ッサは、複数の物理的ストリームを有し、各ストリームは、別個のスレッドをサ
ポートすることができ、また各ストリームは、通常、専用のレジスタファイルを
有する。この場合、マスクセットを記憶して、個々のストリームに専用とする、
あるいは2つ以上のまたはすべてのストリームによって共用することが可能であ
る。そのような動的マルチストリーミング(DMS)プロセッサを前述の「関連
出願の相互参照」でリストした優先権出願で詳細に説明している。
必要に応じてマスクセットを交換または変更することができる。マスクは、様々
な方法で記憶することができる。マスクは、例えば、システムメモリに記憶して
、システムからアクセス可能にすること、またはプロセッサ上にある、またはな
い隠れたレジスタの中に、またはプログラマブルROM装置の中に記憶してアク
セス可能にすることが可能である。いくつかの実施形態では、マスクをリンクし
て、より大きいマスクを作成し、再プログラミングすることなしにマスクを変更
できるようにする機構が提供される。本発明の一実施形態では、32個のマスク
が提供され、最大で8個のマスクをリンクすることができる。いくつかのケース
では、命令が、マスキングに必要なビットを受け容れるのに十分な幅を持つ場合
、マスクを命令自体の中に記憶することができる。命令の幅が、例えば、64ビ
ットである場合、32ビットだけが命令自体に必要であり、その他の32ビット
をマスクベクトルにすることができる。
そして/または変更することができる。プログラミングは、人間の介入を必要と
するという意味で、手作業で、またはマスクを使用する処理システムの動的処置
によって変更可能である。処理システムの動的処置による場合、DMSプロセッ
サへの適用において、あるソフトウェア負担が存在する可能性がある、というの
は、1つのストリームが、マスクまたは1組のマスクをロードまたはストア演算
で使用している場合、他のストリームが、そのマスクまたはマスクセットを更新
しないことを保証しなければならないからである。したがって、DMSプロセッ
サのケースでは、マスクをストリームの専用にすることが好ましい。k個のスト
リームを有するようなプロセッサシステムでは、k個のストリームのそれぞれに
専用のマスクまたは一組のマスクが存在して、特定のストリームは、自らのマス
クまたは自らのマスクセットだけを使用でき、更新できる。
、メモリ源およびデータエンティティの宛先の特別の区別は行わなかった。ただ
し、当技術分野では、最新技術のプロセッサが、システムメモリだけを使用して
直接に動作するのではなく、通常、キャッシュメモリを使用して動作することが
よく知られている。キャッシュメモリおよびキャッシュ動作は、当技術分野では
よく知られており、本明細書で詳細に説明する必要はない。
びマスクされたストア演算の一実施形態では、マスクされたロード/ストアは、
メモリアクセスがキャッシュ可能な空間に属する場合でさえ、キャッシュをバイ
パスする(すなわち、要求されたデータがキャッシュに存在するかどうかを問い
合わせることなしに、アクセスが、直接メモリに行く)選択をすることが可能で
ある。この場合、データの整合性を保証するのはソフトウェアである。データキ
ャッシュをバイパスする場合、データキャッシュに対する読取り/書込みポート
は、他のストリームによる通常のロード/ストアで行われる他のアクセスのため
に解放される。キャッシュへのポートはコストがかかる。
スクの部分)が、2つのベクトルとして実施され、各ベクトルは、32ビットの
ワードとして書き込まれ、記憶される。図3Aは、ベクトル−マスクを示す図で
あり、図3Bは、図3Aのベクトル−マスクに従ってバイトがメモリ17からフ
ァイル19に転送される、メモリ17およびレジスタファイル(コンテキストレ
ジスタ)19を示す図である。
トルの2つのベクトルが存在する。図3Aに示すようにサブマスクは、完全なマ
スクであることが可能であり、完全なマスクは、最大で8個の(この実施形態で
は)サブマスクから構成される。これを以下により詳細に説明する。
12、13に1が存在する。1は、選択ベクトルのどの位置でも、メモリからレ
ジスタファイルに転送されるべき相対ビットを選択するためのものである。その
他のビットは、ゼロである。もちろん、その逆を真にすることも可能である。
。本例では、用途は、パケット処理であり、操作されるデータエンティティは、
パケットのためのヘッダフィールドからのバイトである。前述のとおり、データ
エンティティを選択するための開始位置が、第1の引数@(アドレスに関しては
、図2Aを参照)としてマスクされたロード命令において与えられている。第3
の引数は、マスタ番号を提供し、マスク番号は、このケースでは、図3Aの2ベ
クトルサブマスクである。メモリ17に記憶され、図3Aのサブマスク0によっ
て転送されるべきものとして示されるパケットヘッダに関係するバイトを、それ
ぞれ異なる斜線を入れて、斜線部分として図3Bのメモリ17に示している。3
2バイトのパケットヘッダからの任意の組合せのバイトまたはすべてのバイトを
レジスタファイルに転送するために選択することができる。
ァイルにおける相対位置を示す。この特定の例では、レジスタベクトルの1つの
位置だけに1が存在する、つまり位置12だけに1が存在することに留意された
い。レジスタベクトルの1の意義は、レジスタファイルにバイトを記憶すべきレ
ジスタにインデックスを付けることである。他の例では、レジスタベクトルに複
数の1が存在することが可能である。
イルにバイトが記憶される。記憶のための第1のレジスタ(ローディング開始レ
ジスタ)は、マスクされたロード命令の第2の引数である。他の適用および他の
実施では、様々な理由で様々なデフォルトが存在することが可能である。本例に
おけるマスクされたロード命令は、メモリ17から第1のレジスタでレジスタフ
ァイル19に選択されたバイトのローディングを開始し、デフォルトは、最下位
の位置から隣接する位置に順に、レジスタベクトルによってレジスタにインデッ
クスが付けられるまでロードすることである。別の実施形態では、別の順序を使
用することも可能である。したがって、バイト0、1、7が右(最下位)から第
1のレジスタにロードされる。図3Aのレジスタベクトルの位置12における1
が、レジスタにインデックスを付けており、したがって、バイト12および13
が、レジスタFR+1の最初の2つの位置にロードされる。メモリ17から選択
されているバイトは他に存在しないので、動作は、これで終了である。
ただし、好ましい実施形態では、最大で8個のサブマスクを組み合せてマスクを
構成することができる。本実施形態における各サブマスクは、図3Bに示すとお
り、マスク終了ビットを有する。マスク終了ビットの1は、サブマスクが、特定
の命令にマスクを形成するように組み合わされる最後のサブマスクであることを
示す。
本発明の趣旨および範囲の中で他の多くのマスキングスキームが可能である。例
えば、第1のアドレスで開始して選択されるように示される第1のデータエンテ
ィティが、第1のレジスタにコピーされ、選択されるデータエンティティ間の1
つまたは複数のゼロが、レジスタファイルに後続のエンティティが配置されるレ
ジスタのインデックスを示すように、選択および配置が、単一のベクトルによっ
て示されることが可能である。多くのこのようなスキームが可能であり、比較的
少数を本明細書で例により示している。
ースで前述したのと同様に、マスクされたストアも、詳細に説明したマスクされ
たロード命令とほぼ同じように実施できることが明白であろう。
ルのバイトが存在することに留意されたい。これらのバイトを残すか、または消
去するかの選択が存在する。好ましい実施形態では、未使用のバイトは消去され
る。
本発明の実施形態において行うのが可能な多くの変形が存在することが明白であ
ろう。例えば、マスクを構造化し、実施することができる多種多様なやり方が存
在し、また、マスクを記憶し、プログラミングし、交換し、変更することができ
る多種多様なやり方が存在する。同様に、使用する命令セットアーキテクチャに
応じて、マスクされたロードおよびマスクストア命令を定義し、実施することが
できる様々なやり方が存在する。同様に、本明細書で例として使用したパケット
処理の適用例を超えて、このような独自の命令に多数の適用例が存在し、新しい
命令は、本発明者が特に関心を持つ動的マルチストリーミング(DMS)プロセ
ッサを含め、多くの種類のプロセッサで役立つ可能性がある。
能を教示する4つのケースに関連し、該4件すべてを前述の「相互参照」のセク
ションでリストしており、該4件すべてが、参照により本件に組み込まれる。以
上に教示するようにストリームおよびマスクされたロード/ストア命令の使用は
、DSMプロセッサにおいて特に興味を引くものである、というのは、機能ユニ
ットの中でマスクされたロード/ストア命令が実行されている間、スレッドで、
新しい命令を実行するストリームは、非活動状態に留まることができるからであ
る。したがって、他のストリームが、プロセッサの残りのリソースを使用するこ
とができる。ただし、新しい命令を実行するストリームは、マスクされたロード
/ストアが完了するまで、アイドル状態にある必要はない。命令が、実行中のマ
スクされたロード/ストア命令によって影響されるレジスタの値に依存しない限
り、ストリームは続行して、さらなる命令を実行することができる。言い換えれ
ば、ストリームは、順序によらず、命令を実行することが可能である。
する。使用した例では、バイトを選択したが、他の実施形態では、細分性は、メ
モリのビットであっても、ワードであっても、またはブロックであってもよい。
ワードを使用するケースでは、レジスタがワード幅と同じ幅である場合、レジス
タベクトルは必要ない。さらに、ストリームロードおよびストア演算は、単に、
マスクされたロードおよびストア演算の特定のケースであることに留意されたい
。
よってのみ制限されるべきである。
ァイルの概略図である。
ァイルの概略図である。
ファイルの概略図である。
示す図である。
イルを示す図である。
Claims (63)
- 【請求項1】 コンピュータの演算において、メモリからデータエンティテ
ィを選択して前記データエンティティをレジスタファイルに書き込むための方法
であって、 (a)第1のアドレスから開始してN個のエンティティを選択して読み取るス
テップと、 (b)前記メモリの前記エンティティの順序で前記エンティティを第1のレジ
スタから前記レジスタファイルに書き込むステップを含む方法。 - 【請求項2】 前記ステップが、命令セットアーキテクチャ(ISA)に従
って実施されたストリームロード(Stream Load)命令の実行の結果
起こる請求項1に記載の方法。 - 【請求項3】 前記ISAが、MIPSである請求項2に記載の方法。
- 【請求項4】 前記ストリームロード命令の引数が、データエンティティの
読取りを開始するメモリアドレス、前記データエンティティの書込みを開始する
前記レジスタファイルの第1のレジスタ、ならびに読取りおよび書込みを行うデ
ータエンティティの数を示す数値を示す請求項3に記載の方法。 - 【請求項5】 前記ストリームロードの前記実行が、第1のスレッドを実行
する第1のストリームによって動的マルチストリーミング(Dynamic M
ulti−streaming)(DMS)プロセッサで行われ、前記ストリー
ムロード命令が実行されている間、前記第1のストリームが非活動状態に留まる
請求項2に記載の方法。 - 【請求項6】 前記ストリームロードの前記実行が、第1のスレッドを実行
する第1のストリームによって動的マルチストリーミング(DMS)プロセッサ
で行われ、前記第1のストリームが、前記ストリームロード命令が実行される間
、前記ストリームロード命令によって影響されるメモリの値に依存しない命令を
実行する請求項2に記載の方法。 - 【請求項7】 コンピュータの演算において、レジスタファイルからデータ
エンティティを選択して前記データエンティティをメモリに書き込むための方法
であって、 (a)第1のレジスタから開始してN個のエンティティを選択して読み取るス
テップと、 (d)前記レジスタファイルの前記エンティティの順序で前記エンティティを
第1のアドレスから前記メモリに書き込むステップとを含む方法。 - 【請求項8】 前記ステップが、命令セットアーキテクチャ(ISA)に従
って実施されたストリームストア(Stream Store)命令の結果起こ
る請求項7に記載の方法。 - 【請求項9】 前記ISAが、MIPSである請求項8に記載の方法。
- 【請求項10】 前記ストリームストア命令の引数が、データエンティティ
の読取りを開始するレジスタ、前記データエンティティの書込みを開始する前記
メモリのアドレス、ならびに読取りおよび書込みを行うデータエンティティの数
を示す数値を示す請求項9に記載の方法。 - 【請求項11】 前記ストリームストアの前記実行が、第1のスレッドを実
行する第1のストリームによって動的マルチストリーミング(DMS)プロセッ
サで行われ、前記ストリームストア命令が実行されている間、前記第1のストリ
ームが非活動状態に留まる請求項8に記載の方法。 - 【請求項12】 前記ストリームストアの前記実行が、第1のスレッドを実
行する第1のストリームによって動的マルチストリーミング(DMS)プロセッ
サで行われ、前記第1のストリームが、前記ストリームストア命令が実行される
間、前記ストリームストア命令によって影響されるメモリの値に依存しない命令
を実行する請求項8に記載の方法。 - 【請求項13】 コンピュータの演算において、メモリからデータエンティ
ティを選択して前記データエンティティをレジスタファイルに書き込むための方
法であって、 (a)第1のアドレスとの関係でコピーするエンティティの第1のマップを照
会するステップと、 (b)前記マップによって示されたエンティティを選択して読み取るステップ
と、 (c)第1のレジスタとの関係で、前記メモリからコピーした前記エンティテ
ィを書き込む位置の第2のマップを照会するステップと、 (d)前記第2のマップに従って前記エンティティを前記レジスタファイルに
書き込むステップとを含む方法。 - 【請求項14】 前記ステップが、命令セットアーキテクチャ(ISA)に
従って実施されたマスクされたロード(Masked Load)命令の結果起
こる請求項13に記載の方法。 - 【請求項15】 前記ISAが、MIPSである請求項14に記載の方法。
- 【請求項16】 前記マスクされたロード命令の引数が、マスクを配置する
ための開始メモリアドレス、使用するマスク番号、ならびに前記レジスタファイ
ルにデータエンティティの書込みを開始する第1のレジスタを示す請求項15に
記載の方法。 - 【請求項17】 前記第1のおよび前記第2のマップがビットストリングと
して実施され、前記ストリングのビット位置が、メモリから選択されるべきデー
タエンティティの位置、およびデータエンティティが書き込まれるべきレジスタ
を示す請求項13に記載の方法。 - 【請求項18】 ビットストリングマップが、サブマスクとして表現され、
サブマスクが、結合されたマスクが得られるように様々な組合せでリンク可能で
ある請求項17に記載の方法。 - 【請求項19】 前記マスクされたロードの前記実行が、第1のスレッドを
実行する第1のストリームによって動的マルチストリーミング(DMS)プロセ
ッサで行われ、前記マスクされたロード命令が実行されている間、前記第1のス
トリームが非活動状態に留まる請求項14に記載の方法。 - 【請求項20】 前記マスクされたロードの前記実行が、第1のスレッドを
実行する第1のストリームによって動的マルチストリーミング(DMS)プロセ
ッサで行われ、前記第1のストリームが、前記マスクされたロード命令が実行さ
れる間、前記マスクされたロード命令によって影響されるメモリの値に依存しな
い命令を実行する請求項14に記載の方法。 - 【請求項21】 コンピュータの演算において、レジスタファイルからデー
タエンティティを選択して前記データエンティティをメモリに書き込むための方
法であって、 (a)第1のレジスタとの関係で読み取るエンティティの第1のマップを照会
するステップと、 (b)前記マップによって示されたエンティティを選択して読み取るステップ
と、 (c)第1のアドレスとの関係で、前記レジスタファイルから読み取った前記
エンティティを書き込む位置の第2のマップを照会するステップと、 (d)前記第2のマップに従って前記エンティティを前記メモリファイルに書
き込むステップとを含む方法。 - 【請求項22】 前記ステップが、命令セットアーキテクチャ(ISA)に
従って実施されたマスクされたストア(Masked Store)命令の結果
起こる請求項21に記載の方法。 - 【請求項23】 前記ISAが、MIPSである請求項22に記載の方法。
- 【請求項24】 前記マスクされたストア命令の引数が、マスクを配置する
ための開始レジスタ、番号を使用するマスク、ならびに前記メモリにデータエン
ティティの書込みを開始する第1のレジスタを示す請求項23に記載の方法。 - 【請求項25】 前記第1のおよび前記第2のマップがビットストリングと
して実施され、前記ストリングのビットの位置が、読み取られるべきデータエン
ティティの位置、およびデータエンティティが書き込まれるべきレジスタを示す
請求項21に記載の方法。 - 【請求項26】 ビットストリングマップが、サブマスクとして表現され、
サブマスクが、結合されたマスクが得られるように様々な組合せでリンク可能で
ある請求項25に記載の方法。 - 【請求項27】 前記マスクされたストアの前記実行が、第1のスレッドを
実行する第1のストリームによって動的マルチストリーミング(DMS)プロセ
ッサで行われ、前記マスクされたストア命令が実行されている間、前記第1のス
トリームが非活動状態に留まる請求項22に記載の方法。 - 【請求項28】 前記マスクされたストアの前記実行が、第1のスレッドを
実行する第1のストリームによって動的マルチストリーミング(DMS)プロセ
ッサで行われ、前記第1のストリームが、前記マスクされたストア命令が実行さ
れる間、前記マスクされたストア命令によって影響されるメモリの値に依存しな
い命令を実行する請求項22に記載の方法。 - 【請求項29】 コンピュータの演算において使用するためのストリームロ
ード命令であって、 前記命令の指示と、 データエンティティの読取りを開始するメモリの第1のアドレスを示す第1の
引数と、 前記メモリから読み取った前記データエンティティの書込みを開始するレジス
タファイルの第1のレジスタを示す第2の引数と、 読取りおよび書込みを行うデータエンティティの数を示す第3の引数とを含む
命令。 - 【請求項30】 コンピュータの演算において使用するためのストリームス
トア命令であって、 前記命令の指示と、 データエンティティの読取りを開始するレジスタファイルの第1のアドレスを
示す第1の引数と、 前記レジスタファイルから読み取った前記データエンティティの書込みを開始
するメモリの第1のアドレスを示す第2の引数と、 読取りおよび書込みを行うデータエンティティの数を示す第3の引数とを含む
命令。 - 【請求項31】 コンピュータの演算において使用するためのマスクされた
ロード命令であって、 前記命令の指示と、 読み取るべきデータエンティティを示すマスクを配置するメモリの第1のアド
レスを示す第1の引数と、 前記メモリから読み取った前記データエンティティの書込みを開始するレジス
タファイルの第1のレジスタを示す第2の引数と、 読取りおよび書込みを行うべき前記データエンティティを選択するのに使用す
るマスク番号を示す第3の引数とを含む命令。 - 【請求項32】 コンピュータの演算において使用するためのマスクされた
ストア命令であって、 前記命令の指示と、 読み取るべきデータエンティティを示すマスクを配置するレジスタファイルの
第1のレジスタを示す第1の引数と、 前記レジスタファイルから読み取った前記データエンティティの書込みを開始
するメモリの第1のアドレスを示す第2の引数と、 コピーおよび書込みを行うべき前記データエンティティを選択するのに使用す
るマスク番号を示す第3の引数とを含む命令。 - 【請求項33】 CPUと、 メモリと、 レジスタファイルとを含む計算システムであって、 前記CPUが、前記メモリから前記レジスタファイルにデータエンティティを
ロードする際、所定の数のデータエンティティを読み取り、所定の第1のレジス
タから開始して、前記メモリと同じ順序で前記データエンティティを前記レジス
タファイルのレジスタに書き込むことを特徴とするシステム。 - 【請求項34】 メモリから前記レジスタファイルにデータエンティティを
転送することが、命令セットアーキテクチャ(ISA)に従って実施され、前記
CPUによって実行されるストリームロード命令の結果起こる請求項33に記載
のシステム。 - 【請求項35】 前記ISAが、MIPSである請求項34に記載のシステ
ム。 - 【請求項36】 前記ストリームロード命令の引数が、データエンティティ
の読取りを開始するメモリアドレス、前記データエンティティの書込みを開始す
る前記レジスタファイルの第1のレジスタ、ならびに読取りおよび書込みを行う
データエンティティの数を示す数値を示す請求項35に記載のシステム。 - 【請求項37】 前記ストリームロードの前記実行が、第1のスレッドを実
行する第1のストリームによって動的マルチストリーミング(DMS)プロセッ
サで行われ、前記ストリームロード命令が実行されている間、前記第1のストリ
ームが非活動状態に留まる請求項34に記載のシステム。 - 【請求項38】 前記ストリームロードの前記実行が、第1のスレッドを実
行する第1のストリームによって動的マルチストリーミング(DMS)プロセッ
サで行われ、前記第1のストリームが、前記ストリームロード命令が実行される
間、前記ストリームロード命令によって影響されるメモリの値に依存しない命令
を実行する請求項34に記載のシステム。 - 【請求項39】 CPUと、 メモリと、 レジスタファイルとを含む計算システムであって、 前記CPUが、前記レジスタファイルから前記メモリにデータエンティティを
ストアする際、所定の数のデータエンティティを前記レジスタファイルから読み
取り、所定の第1のアドレスから開始して、前記レジスタファイルと同じ順序で
前記データエンティティをメモリのアドレス指定された場所に書き込むことを特
徴とするシステム。 - 【請求項40】 前記レジスタファイルからメモリにデータエンティティを
ストアすることが、命令セットアーキテクチャ(ISA)に従って実施され、前
記CPUによって実行されるストリームストア命令の結果起こる請求項39に記
載のシステム。 - 【請求項41】 前記ISAが、MIPSである請求項40に記載のシステ
ム。 - 【請求項42】 前記ストリームストア命令の引数が、データエンティティ
の読取りを開始する第1のレジスタファイル、前記データエンティティを書き込
むメモリの第1のアドレス、ならびに読取りおよび書込みを行うデータエンティ
ティの数を示す数値を示す請求項41に記載のシステム。 - 【請求項43】 前記ストリームストアの実行が、第1のスレッドを実行す
る第1のストリームによって動的マルチストリーミング(DMS)プロセッサで
行われ、前記ストリームストア命令が実行されている間、前記第1のストリーム
が非活動状態に留まる請求項40に記載のシステム。 - 【請求項44】 前記ストリームストアの実行が、第1のスレッドを実行す
る第1のストリームによって動的マルチストリーミング(DMS)プロセッサで
行われ、前記第1のストリームが、前記ストリームストア命令が実行される間、
前記ストリームストア命令によって影響されるメモリの値に依存しない命令を実
行する請求項40に記載のシステム。 - 【請求項45】 CPUと、 メモリと、 レジスタファイルとを含む計算システムであって、 前記CPUが、前記メモリから前記レジスタファイルにデータエンティティを
ロードする際、第1のアドレスで前記メモリに入り、前記第1のアドレスとの関
係で所定のパターンに従ってデータエンティティを読み取り、第1のレジスタと
の関係で所定のパターンで前記データエンティティを前記レジスタファイルのレ
ジスタに書き込むことを特徴とするシステム。 - 【請求項46】 メモリから前記レジスタファイルにデータエンティティを
ロードすることが、命令セットアーキテクチャ(ISA)に従って実施され、前
記CPUによって実行されるマスクされたロード命令の結果起こる請求項45に
記載のシステム。 - 【請求項47】 前記ISAが、MIPSである請求項46に記載のシステ
ム。 - 【請求項48】 前記マスクされたロード命令の引数が、データエンティテ
ィの読取りを開始するメモリアドレス、前記データエンティティの書込みを開始
する前記レジスタファイルの第1のレジスタ、ならびにデータエンティティの読
取りおよび書込みのための前記メモリおよび前記レジスタファイルの相対位置を
示すのに使用するストアされたマスクを示すマスク番号を示す請求項47に記載
のシステム。 - 【請求項49】 前記ストアされたマスクが、2ビットストリングベクトル
として実施され、前記第1のアドレスとの関係でどのデータエンティティを読み
取るかを第1のベクトルが示し、前記第1のレジスタとの関係でどのレジスタに
前記データエンティティを書き込むかを第2のベクトルが示す請求項48に記載
のシステム。 - 【請求項50】 ビットストリングマップが、サブマスクとして表現され、
サブマスクが、結合されたマスクが得られるように様々な組合せでリンク可能で
ある請求項49に記載のシステム。 - 【請求項51】 前記マスクされたロードの前記実行が、第1のスレッドを
実行する第1のストリームによって動的マルチストリーミング(DMS)プロセ
ッサで行われ、前記ストリームロード命令が実行されている間、前記第1のスト
リームが非活動状態に留まる請求項46に記載のシステム。 - 【請求項52】 前記マスクされたロードの前記実行が、第1のスレッドを
実行する第1のストリームによって動的マルチストリーミング(DMS)プロセ
ッサで行われ、前記第1のストリームが、前記マスクされたロード命令が実行さ
れる間、前記マスクされたロード命令によって影響されるメモリの値に依存しな
い命令を実行する請求項46に記載のシステム。 - 【請求項53】 CPUと、 メモリと、 レジスタファイルとを含む計算システムであって、 前記CPUが、前記レジスタファイルから前記メモリにデータエンティティを
ストアする際、第1のレジスタで前記レジスタファイルに入り、所定のパターン
に従って前記レジスタファイルからデータエンティティを読み取り、第1のアド
レスから開始して、やはり所定のパターンに従って前記データエンティティをメ
モリのアドレス指定された場所に書き込むことを特徴とするシステム。 - 【請求項54】 前記レジスタファイルからメモリにデータエンティティを
ストアすることが、命令セットアーキテクチャ(ISA)に従って実施され、前
記CPUによって実行されるマスクされたストア命令の結果起こる請求項53に
記載のシステム。 - 【請求項55】 前記ISAが、MIPSである請求項54に記載のシステ
ム。 - 【請求項56】 前記マスクされたストア命令の引数が、データエンティテ
ィの読取りを開始するメモリアドレス、前記データエンティティの書込みを開始
する前記レジスタファイルの第1のレジスタ、ならびに前記データエンティティ
の読取りおよび書込みのための前記メモリおよび前記レジスタファイルの相対位
置を示すのに使用するストアされたマスクを示すマスク番号を示す請求項55に
記載のシステム。 - 【請求項57】 前記ストアされたマスクが、2ビットストリングベクトル
として実施され、前記第1のレジスタとの関係でどのデータエンティティを読み
取るかを第1のベクトルが示し、前記第1のアドレスとの関係でどのレジスタに
前記データエンティティを書き込むかを第2のベクトルが示す請求項56に記載
のシステム。 - 【請求項58】 ビットストリングマップが、サブマスクとして表現され、
サブマスクが、結合されたマスクが得られるように様々な組合せでリンク可能で
ある請求項57に記載のシステム。 - 【請求項59】 前記マスクされたストアロードの前記実行が、第1のスレ
ッドを実行する第1のストリームによって動的マルチストリーミング(DMS)
プロセッサで行われ、前記ストリームロード命令が実行されている間、前記第1
のストリームが非活動状態に留まる請求項54に記載のシステム。 - 【請求項60】 前記マスクされたストアの前記実行が、第1のスレッドを
実行する第1のストリームによって動的マルチストリーミング(DMS)プロセ
ッサで行われ、前記第1のストリームが、前記マスクされたストア命令が実行さ
れる間、前記マスクされたストア命令によって影響されるメモリの値に依存しな
い命令を実行する請求項54に記載のシステム。 - 【請求項61】 第1の複数k個の個別ストリームと、 第2の複数m個のマスクまたはマスクセットとを含む動的マルチストリーミン
グプロセッサであって、 前記第2の複数m個の個別マスクまたはマスクセットが、マスクされたロード
動作および/またはマスクされたストア演算を行うため、前記第1の複数k個の
ストリームの個々のストリームを排他的に使用するように専用に供されるプロセ
ッサ。 - 【請求項62】 個々のマスクまたはマスクセットが、前記個々のマスクま
たは前記個々のマスクセットを専用とするストリームによってのみ変更可能であ
る請求項61に記載のDMSプロセッサ。 - 【請求項63】 複数k個の個別ストリームと、 マスクされたロードおよびマスクされたストア演算を行う際に使用するための
1組のマスクまたはマスクセットであって、単一の命令を実行した結果として、
かつ前記マスクに従って複数のデータエンティティをロードまたはストアするマ
スクまたはマスクセットと、 キャッシュメモリと、 システムメモリとを含む動的マルチストリーミング(DMS)プロセッサシス
テムであって、 マスクされたロードまたはマスクされたストア演算を行う際、前記システムが
前記システムメモリと1つまたは複数のレジスタファイルの間で直接にデータエ
ンティティを転送することを特徴とするシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17693700P | 2000-01-18 | 2000-01-18 | |
US60/176,937 | 2000-01-18 | ||
US62980500A | 2000-07-31 | 2000-07-31 | |
US09/629,805 | 2000-07-31 | ||
PCT/US2001/000413 WO2001053934A1 (en) | 2000-01-18 | 2001-01-03 | Method and apparatus for improved computer load and store operations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003521035A true JP2003521035A (ja) | 2003-07-08 |
JP3721129B2 JP3721129B2 (ja) | 2005-11-30 |
Family
ID=26872769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001554162A Expired - Fee Related JP3721129B2 (ja) | 2000-01-18 | 2001-01-03 | コンピュータのロードとストア演算を改善する方法および装置 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1257912B1 (ja) |
JP (1) | JP3721129B2 (ja) |
AT (1) | ATE440321T1 (ja) |
AU (1) | AU2001226324A1 (ja) |
CA (1) | CA2406679A1 (ja) |
DE (1) | DE60139606D1 (ja) |
WO (1) | WO2001053934A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007505373A (ja) * | 2003-09-08 | 2007-03-08 | フリースケール セミコンダクター インコーポレイテッド | Simdオペレーションを実行するデータ処理システム及び方法 |
KR20130062150A (ko) * | 2011-12-02 | 2013-06-12 | 삼성전자주식회사 | 프로세서, 명령어 생성 장치 및 방법 |
JP2014513343A (ja) * | 2011-04-07 | 2014-05-29 | ゼットティーイー コーポレイション | レジスタファイル間におけるデータ伝送の実現方法及び実現装置 |
JP2018500660A (ja) * | 2014-12-23 | 2018-01-11 | インテル・コーポレーション | ベクトルインデックスロードおよびストアのための方法および装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6781589B2 (en) * | 2001-09-06 | 2004-08-24 | Intel Corporation | Apparatus and method for extracting and loading data to/from a buffer |
US7921263B2 (en) * | 2006-12-22 | 2011-04-05 | Broadcom Corporation | System and method for performing masked store operations in a processor |
US9501276B2 (en) | 2012-12-31 | 2016-11-22 | Intel Corporation | Instructions and logic to vectorize conditional loops |
CN113132124B (zh) * | 2019-12-30 | 2024-03-19 | 中兴通讯股份有限公司 | 告警信息配置方法、告警扫描方法、装置和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2616182B2 (ja) * | 1990-08-29 | 1997-06-04 | 三菱電機株式会社 | データ処理装置 |
JP2665111B2 (ja) * | 1992-06-18 | 1997-10-22 | 日本電気株式会社 | ベクトル処理装置 |
US5649144A (en) * | 1994-06-13 | 1997-07-15 | Hewlett-Packard Co. | Apparatus, systems and methods for improving data cache hit rates |
JP2889845B2 (ja) * | 1995-09-22 | 1999-05-10 | 松下電器産業株式会社 | 情報処理装置 |
US5913054A (en) * | 1996-12-16 | 1999-06-15 | International Business Machines Corporation | Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle |
US6119203A (en) * | 1998-08-03 | 2000-09-12 | Motorola, Inc. | Mechanism for sharing data cache resources between data prefetch operations and normal load/store operations in a data processing system |
-
2001
- 2001-01-03 CA CA002406679A patent/CA2406679A1/en not_active Abandoned
- 2001-01-03 EP EP01900915A patent/EP1257912B1/en not_active Expired - Lifetime
- 2001-01-03 AU AU2001226324A patent/AU2001226324A1/en not_active Abandoned
- 2001-01-03 AT AT01900915T patent/ATE440321T1/de not_active IP Right Cessation
- 2001-01-03 JP JP2001554162A patent/JP3721129B2/ja not_active Expired - Fee Related
- 2001-01-03 DE DE60139606T patent/DE60139606D1/de not_active Expired - Lifetime
- 2001-01-03 WO PCT/US2001/000413 patent/WO2001053934A1/en active Application Filing
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007505373A (ja) * | 2003-09-08 | 2007-03-08 | フリースケール セミコンダクター インコーポレイテッド | Simdオペレーションを実行するデータ処理システム及び方法 |
JP2014513343A (ja) * | 2011-04-07 | 2014-05-29 | ゼットティーイー コーポレイション | レジスタファイル間におけるデータ伝送の実現方法及び実現装置 |
KR20130062150A (ko) * | 2011-12-02 | 2013-06-12 | 삼성전자주식회사 | 프로세서, 명령어 생성 장치 및 방법 |
KR101949417B1 (ko) | 2011-12-02 | 2019-02-20 | 삼성전자주식회사 | 프로세서, 명령어 생성 장치 및 방법 |
JP2018500660A (ja) * | 2014-12-23 | 2018-01-11 | インテル・コーポレーション | ベクトルインデックスロードおよびストアのための方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2001053934A1 (en) | 2001-07-26 |
ATE440321T1 (de) | 2009-09-15 |
DE60139606D1 (de) | 2009-10-01 |
EP1257912A4 (en) | 2006-12-20 |
JP3721129B2 (ja) | 2005-11-30 |
AU2001226324A1 (en) | 2001-07-31 |
CA2406679A1 (en) | 2001-07-26 |
EP1257912A1 (en) | 2002-11-20 |
EP1257912B1 (en) | 2009-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7529907B2 (en) | Method and apparatus for improved computer load and store operations | |
DE69907955T2 (de) | Globale und locale registersegmentierung in einem vliw prozessor | |
US11269638B2 (en) | Exposing valid byte lanes as vector predicates to CPU | |
JP3747936B2 (ja) | データプロセッサの結果レジスタの選択したサブワード位置に結果を送る並列サブワード命令 | |
US11934833B2 (en) | Stream data unit with multiple head registers | |
JP2011522325A (ja) | ローカル及びグローバルのデータ共有 | |
JPH0764853A (ja) | Simdマルチプロセッサ用の可変正確度間接的アドレス方法およびそれを行う装置 | |
US20230385063A1 (en) | Streaming engine with early exit from loop levels supporting early exit loops and irregular loops | |
US6415338B1 (en) | System for writing a data value at a starting address to a number of consecutive locations equal to a segment length identifier | |
JP2003521035A (ja) | コンピュータのロードとストア演算を改善する方法および装置 | |
KR19990036893A (ko) | 다중 어드레싱 모드를 실행하는 프로세서 구조 및 그 설계방법 | |
US20080077733A1 (en) | Data transfer apparatus | |
US11042502B2 (en) | Vector processing core shared by a plurality of scalar processing cores for scheduling and executing vector instructions | |
JP2003196086A (ja) | レジスタウィンドウ方式によるレジスタファイル及びその制御方法 | |
US20030131205A1 (en) | Atomic transfer of a block of data | |
JP2006527436A (ja) | データ処理装置及びレジスタ・ファイルとメモリとの間でデータ値を転送する方法 | |
JP2916605B2 (ja) | コンピュータ用プロセツサ | |
JP3304928B2 (ja) | バリア同期方法およびバリア同期用プログラムを記録した記録媒体 | |
CN112540793A (zh) | 支持多访存模式的可重构处理单元阵列及控制方法、装置 | |
JPS5856277A (ja) | 情報処理装置ならびに方法 | |
JPS6032220B2 (ja) | 情報処理装置 | |
JPS63251835A (ja) | ベクトル処理装置 | |
JPS58137081A (ja) | ベクトルプロセツサ | |
JPH10111798A (ja) | 情報処理装置 | |
JPH09114733A (ja) | キャッシュ記憶装置における非整列データ転送機構 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050208 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050502 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050512 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050803 |
|
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: 20050830 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050909 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3721129 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090916 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100916 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110916 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120916 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130916 Year of fee payment: 8 |
|
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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |