JP5883462B2 - 範囲検出を行うための命令及びロジック - Google Patents

範囲検出を行うための命令及びロジック Download PDF

Info

Publication number
JP5883462B2
JP5883462B2 JP2014006991A JP2014006991A JP5883462B2 JP 5883462 B2 JP5883462 B2 JP 5883462B2 JP 2014006991 A JP2014006991 A JP 2014006991A JP 2014006991 A JP2014006991 A JP 2014006991A JP 5883462 B2 JP5883462 B2 JP 5883462B2
Authority
JP
Japan
Prior art keywords
vector
range
input
logic
elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014006991A
Other languages
English (en)
Other versions
JP2014096174A (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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2014096174A publication Critical patent/JP2014096174A/ja
Application granted granted Critical
Publication of JP5883462B2 publication Critical patent/JP5883462B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Length Measuring Devices With Unspecified Measuring Means (AREA)
  • Executing Machine-Instructions (AREA)

Description

本発明は、概して、情報処理の分野に関し、特に、コンピュータシステム及びマイクロプロセッサにおける範囲検出を実行する分野に関する。
例えば、マイクロプロセッサのような、コンピュータハードウェアにおける数学的関数の性能は、キャッシュ又はメインメモリ等のロケーションに格納されたルックアップテーブル(LUT)の使用に依存する。ハードウェアにおいて数学的関数が実行されるときには、単一命令複数データ(SIMD)命令は、複数のメモリオペレーションを実行して、LUTにアクセスする場合がある。例えば、複数の入力オペランドに基づく関数を実行するSIMD命令は、SIMD関数に出力される結果を取得するために、入力オペランド各々について、LUTにアクセスをする。一部のプロセッサアーキテクチャでは、複数のLUTに対する並列アクセス機能が提供されず、1以上のLUTにアクセスするのに、同じメモリアクセスロジックが使用されているため、これら複数のLUTアクセスは、並列的にではなく、順次的に発生し、その結果、SIMD演算の実行性能が制限されてしまっていた。
あるアルゴリズムでは、数学的関数を、スプライン又はその他の多項式による手法を使用して評価してもよい。従来技術の幾つかの例では、数学的関数を評価するのに使用するスプライン関数は、範囲検出、係数照合及び多項式計算のような処理を実行する複数のソフトウェアオペレーションを必要とする。したがって、数学的関数を評価するのにスプラインを使用すると、計算量が非常に多くなり性能が相対的に低くなってしまうことから、コンピュータプログラムにおけるスプライン計算の実用性は限定されてしまっていた。
本発明の実施形態は例示を目的として記載されており、限定することを意図しておらず、添付の図面において使用されている同様な参照番号は、同様な要素を示している。
本発明の実施形態の少なくとも一つが使用されてもよいマイクロプロセッサのブロック図である。 本発明の実施形態の少なくとも一つが使用されてもよい共有バスコンピュータシステムのブロック図である。 本発明の実施形態の少なくとも一つが使用されてもよいポイント・ツー・ポイント相互接続コンピュータシステムのブロック図である。 一実施形態に係る、複数の領域に分割されたスプラインを示した図である。 一実施形態に係る、領域検出命令に応答してスプライン内での領域検出を加速させるのに使用してもよいロジックを示した図である。 一実施形態に係る、領域検出命令に応答してスプライン内での領域検出を加速させるのに使用してもよいロジックを示した図である。 本発明の実施形態の少なくとも1つを実行するのに使用されてもよいオペレーションのフロー図である。
本発明の実施形態は、マイクロプロセッサ及びコンピュータにおける数学的計算性能を改善するのに使用されてもよい。幾つかの実施形態では、スプライン計算は、従来のスプライン計算よりも、高い性能レベルでの様々な数学的オペレーションを実行するのに使用される。少なくとも1つの実施形態において、スプライン計算を実行するのに伴う、複数の最も時間を消費する及び最もリソースを消費するオペレーションのうちの少なくとも1つの速度を高めることにより、スプライン計算性能の改善を図る。また、一実施形態において、スプライン計算で使用される様々な多項式に対応するスプライン内の範囲検出を加速させるために、範囲検出命令及び対応するハードウェアロジックが提供される。
図1は、本発明の実施形態の少なくとも一つが使用されてもよいマイクロプロセッサのブロック図である。具体的には、図1には、1以上のプロセッサコア105、110を有するマイクロプロセッサ100が示され、プロセッサコアはそれぞれ、ローカルキャッシュ107、113と関連付けられている。また、図1には、各ローカルキャッシュ107、113に格納されている少なくとも一部の情報のバージョンが記憶されていてもよい共有キャッシュメモリ115が示されている。幾つかの実施形態では、マイクロプロセッサ100は、図1に示されていないその他のロジックを含んでもよく、コンピュータシステム内でI/O制御のようなその他の機能を実行するロジックと共に、例えば、集積メモリコントローラ、集積グラフィックスコントローラを含んでもよい。一実施形態において、マルチプロセッサシステムにおける各マイクロプロセッサ、又はマルチコアプロセッサにおける各プロセッサコアは、一実施形態に係る命令に応答して範囲検出を実行するべく、ロジック119を含む又はロジック119と関連付けられていてもよい。
図2は、本発明の実施形態の少なくとも一つが使用されてもよい、例えば、フロントサイドバス(FSB)コンピュータシステムを示している。プロセッサ201、205、210又は215のいずれも、プロセッサコア223、227、233、237、243、247、253、257のうちの1つ内に存在する、又は関連付けられたローカルレベル1(L1)キャッシュメモリ220、225、230、235、240、245、250、255のうちのいずれかから、情報にアクセスすることができる。また、プロセッサ201、205、210又は215のいずれも、チップセット265を介して、共有レベル2(L2)キャッシュ203、207、213、217のうちのいずれか1つ、又はシステムメモリ260から、情報にアクセスすることができる。図2に示されている1以上のプロセッサは、一実施形態に係る範囲検出命令を実行するべく、ロジック219を含む、又はロジック219と関連付けられていてもよい。
図2に示したFSBコンピュータシステムに加えて、本発明の様々な実施形態と併せてその他のシステム構成を使用してもよく、例えば、ポイント・ツー・ポイント(P2P)相互接続システム及び環状相互接続システムを使用してもよい。例えば、図示した例の図3のP2Pシステムは、プロセッサ370、380の2つしか含んでいないが、これより多い数のプロセッサが含まれていてもよい。プロセッサ370、380はそれぞれ、メモリ32、34と接続するためのローカルメモリ制御ハブ(MCH)372、382を含んでもよい。プロセッサ370、380は、ポイント・ツー・ポイント(PtP)インターフェース回路378、388を使用したPtPインターフェース350を介して、データを交換してもよい。プロセッサ370、380はそれぞれ、ポイント・ツー・ポイント回路376、394、386、398を使用したPtPインターフェース352、354を介して、チップセット390内のデータを交換してもよい。また、チップセット390は、高性能グラフィックスインターフェース339を介して高性能グラフィックス回路338とデータを交換してもよい。本発明の実施形態は、1以上のプロセッサコアを有するあらゆるプロセッサ内、又は図3の各PtPバスエージェント内に位置してもよい。一実施形態において、いずれのプロセッサコアも、(図示しない)ローカルキャッシュメモリを含む、又はローカルキャッシュメモリと関連付けられていてもよい。共有キャッシュ(図示せず)は、プロセッサのうちのどちらか1つに含まれていてもよいし、2つのプロセッサの外側に設けられていてもよく、また、プロセッサが低電力モードに入った場合に、プロセッサのいずれか又は両方のローカルキャッシュ情報が共有キャッシュメモリに格納されるように、p2p相互接続を介して共有キャッシュはプロセッサと接続される。図3の複数のプロセッサ又はコアのうちの1以上が、一実施形態に係る範囲検出命令を実行するべく、ロジック319を含む、又はロジック319と関連付けられていてもよい。
スプライン計算における、ルックアップテーブル(LUT)の使用、及び関連するコストのかかるメモリアクセスの使用の必要性を除外することができる。図4は、例えば、1次スプライン関数を示している。図4において、"X"は、データが含まれている8個の要素からなる入力ベクトルであり、"Xin"は、それぞれが32ビットで表され、ベクトルXにおいて全部で256ビットになるようになっている。ベクトルYの要素"Yout"は、所与の入力"Xin"に対するスプライン関数のベクトルYno要素であり、W=Y(X)となる。範囲検出、係数照合及び多項式計算を含むスプライン計算オペレーションを使用して、ベクトルWの要素の値を求めてもよい。少なくとも1つの実施形態は、スプライン関数の計算において範囲検出を実行する命令及びロジックを含む。幾つかの実施形態では、ベクトルXの要素の大きさは8ビットであるが、別の実施形態では、16ビット、32ビット、64ビット、128ビット等であってもよい。また、幾つかの実施形態では、Xの要素は、整数、浮動小数点、1倍又は2倍精度浮動小数点等であってもよい。
一実施形態では、範囲検出ロジックは、範囲検出命令を実行するデコードロジック及び実行ロジックを含み、範囲検出命令は、式、"範囲ベクトル(R)=範囲_検出(入力ベクトル(X)、範囲限定ベクトル(RL))"を実行するための命令フォーマット及び制御フィールドを有する。ここで、Rは図5に記載されるロジックにより生成される範囲ベクトル、Xは入力ベクトル、RLは、スプライン関数各々の最初のXinを含むベクトルである。例えば、一実施形態において、ベクトルRLは、図4の各範囲の最初のXin(0、10、30、50、70、80、255)を含む。
一実施形態において、範囲検出は、入力ベクトルX内に提供される各入力点に従って、図4に示されているスプライン関数の特定の範囲を照合し、結果をSIMDレジスタに格納する。次に記載する例では、入力ベクトルX、及び図4に示したスプラインに対応する範囲検出ベクトルが示されている。以下の例では、16ビットの固定小数点入力に対してのオペレーションが記載されているが、同様の手法が、8ビット及び32ビット固定小数点及び浮動小数点にも適用することができ、現在の及び将来のベクトル拡張で使用される様々な種類のデータにも適用可能である。
図4のx軸に沿ったXinの値をそれぞれ含む要素からなる入力ベクトルXが、次のような入力ベクトルであるとする。
Figure 0005883462
上記の入力ベクトルX、及び図4に示されたスプラインに基づく範囲検出ベクトルは、次のようになる。
Figure 0005883462
一実施形態において、図4のスプラインに従って入力ベクトルを演算することにより、上記の範囲検出ベクトルを生成すべく、命令が実行される。一実施形態において、命令は、入力ベクトル要素を、範囲限界の各要素と比較する(図4においては、0、10、30、50、70、80)。一実施形態において、範囲限界の各々は、SIMDレジスタに伝達され、入力ベクトルXとの比較を行ってもよい。一実施形態において、比較オペレーションの結果が0又は−1となった場合には、比較結果、すなわち、比較結果の引き算及び足し算によって、入力ベクトルXにおける各入力点が含まれたスプラインの範囲が生成されることを表している。比較オペレーションを実行するロジックが図5に示されており、xは、入力ベクトルX内の入力点を表し、tiは、図4のスプラインの範囲限界を表し、rは、入力点xに対する範囲検出ベクトルR内の結果の範囲を表す。他の実施形態において、比較オペレーションを別の値(例えば、1及び0)を用いて結果を表してもよく、比較、加算又は減算、及び比較された値の蓄積を使用して比較オペレーションが実行され、範囲検出レジスタRが生成される。
図5Aは、一実施形態に係る範囲検出命令を実行するのに応答して、範囲検出ベクトルRを生成するのに使用されてもよいロジックを示している。一実施形態において、ロジック500aは、比較ロジック505aによって範囲限界ベクトル510aと比較される入力ベクトルX501aを含み、範囲限界ベクトル510aは各要素に、入力ベクトルXのi番目の要素に対応するスプライン範囲の範囲限界値を含む。一実施形態において、入力ベクトル501aの要素は、比較ロジック505aによって、範囲限界レジスタ510aの対応する要素と比較される。一実施形態において、ゼロベクトル515aの要素は、入力ベクトル501aと範囲限界ベクトル510aとの比較結果の負の値に加算(517a)され、比較結果の加算結果の要素のそれぞれにおいて、0又は−1が生成される。次に、入力ベクトル501aは、範囲限界ベクトル520aの対応する要素と比較されて、比較結果の負の値が、1つ前の比較結果に加算される。このようなプロセスを、範囲限界ベクトル510aの各要素について行い、最終的に範囲検出ベクトル525aを得る。
一実施形態において、図5Aのロジックを、少なくとも1つの命令セットアーキテクチャを使用したプログラムと共に利用してもよく、命令セットアーキテクチャは、以下のような疑似コードで例示できる。
Figure 0005883462
別の実施形態では、範囲検出ベクトルRを決定する他の手法を使用してもよく、例えば、範囲限界ベクトル要素に対して、二分探索を実行するロジックを含んでもよい。図5Bは、範囲検出ベクトルRを生成するのに使用してもよい、一実施形態に係る二分探索木を示した図である。図5Bの二分探索木500bでは、入力ベクトルX501bの各要素は、範囲限界ベクトルの各要素510bと比較され、真ん中のベクトル要素(T4、入力及び範囲限界ベクトルが8つの要素で構成されている場合)から開始して、ベクトルの前半部分及び後半部分(T5‐T8及びT3‐1)へと続く。一実施形態において、次に示すような疑似コードにより、1つの命令セットアーキテクチャからの命令を使用して、図5Bの二分探索木の機能を例示できる。
Figure 0005883462
上記の疑似コードにおいて、Tは、範囲限界ベクトルを表し、Iは、入力ベクトルX及び範囲限界ベクトルTのi番目の要素を表す。
一実施形態において、命令及び対応するロジックが、範囲検出ベクトルRを生成するのに使用される。範囲検出ベクトルRが決定されると、問題となっている特定の数学的オペレーションに関連付けられたスプライン関数の値をもとめる計算に関連する、係数照合及び多項式計算オペレーションを含む別のオペレーションを実行できるようになる。
一実施形態において、図4のスプラインの範囲それぞれに対応する多項式の各々は、対応する係数を有する。係数照合では、係数ベクトル要素と、本発明の一実施形態で生成された範囲検出ベクトル要素とを照合する。図4に示した例では、6つの範囲が存在し、次のような多項式で表されてもよい。
Figure 0005883462
係数照合は、範囲検出段階の結果に基づく。得られた係数ベクトルの数は、最も高次の多項式の次数+1と等しい。上述の例に戻り、図4で記載された入力ベクトルXに対して得られた係数ベクトルC及びCは、次のように例示される。
Figure 0005883462
上記の例の全ての多項式の次数は、1であり、得られる係数ベクトルの数は2になる。一実施形態において、C及びCベクトルは、シャッフル命令を使用して計算され、図5A及び図5Bに示された範囲検出段階の出力に基づいて、2つの係数ベクトルC及びCの対応する要素に、適切な係数を格納する。
入力ベクトルXに対応する多項式の係数を計算した後、入力ベクトルXにおける各入力値に対して、多項式評価計算を実行してもよい。一実施形態において、多項式計算は、2つの主要なオペレーションに分割できる。第1のオペレーションは、スプラインの範囲の開始点からの各入力値のオフセットを求めることを含む。一実施形態において、例えば、シャッフル命令を使用して、各範囲の開始点と、各入力点とを照合することにより、オフセットを見つける段階を実現してもよい。図4のスプラインの各範囲の開始点からのオフセットは、対応する入力ベクトル要素から、各範囲の開始点の値を引き算することによって計算される。例えば、図4のスプラインにおける点77は、範囲5に割り当てられる。範囲5の開始点は、70であるから、割り当てられた範囲の開始点からのオフセットは7となる。第2のオペレーションは、各入力ベクトル要素に対して、出力ベクトル要素を計算することを含む。最終的な出力ベクトルを計算するために、範囲の開始点でのオフセットを見つけ、これを、関係する多項式の入力要素として設定する。例えば、範囲5の多項式は、y=2*x−20で表される。入力ベクトル要素77に対しては、オフセット7を得ることから、点77に対する最終的な値は、Y=2*(オフセット)−20=2*(7)−20=−6となる。入力ベクトル要素に対応する残りの多項式を計算した後、計算結果が、結果ベクトルに格納される。開始範囲値がB、オフセットベクトル値がO、及び出力ベクトル値がYであるベクトル値を、以下に例示する。
Figure 0005883462
出力ベクトルYは、一実施形態によれば、式によって表すことができ、この例の場合には、出力ベクトルYは、Y=O*C1+C2で計算される。
図6は、本発明の実施形態の少なくとも1つに関連して使用されてもよいオペレーションのフロー図である。一実施形態において、オペレーション601では、範囲検出ベクトルが生成される。一実施形態において、二分探索及び本明細書に例示されたその他のロジックのようなプロセスに従って、入力ベクトル要素の各々に対して、範囲検出ベクトルが生成される。オペレーション605では、係数照合が行われ、入力ベクトル要素に応じた、スプラインの各範囲に対応する多項式の係数が生成される。オペレーション610において、多項式計算は、入力ベクトルの要素それぞれに対して行われ、計算結果が結果ベクトルに格納される。
少なくとも1つの実施形態の1以上の側面を、プロセッサ内の様々なロジックを表現する機械可読媒体に格納された代表的なデータによって実装してもよく、機械によって読み込まれると機械に、本明細書に記載した手法を実行するロジックを作成させる。このような代表的なものとして知られる"IPコア"を、有形の機械可読媒体(テープ)に格納し、様々な顧客又は製造設備に供給し、ロジック又はプロセッサを実際に作成する作成機械に取り込んでもよい。
マイクロアーキテクチャメモリ領域アクセスに関する方法及び装置について説明した。上記の説明は、例示することを目的としており、制限することを意図していない。上述の説明を読み理解することにより、多くの別の実施形態が当業者に明らかとなる。したがって、添付の特許請求の範囲、及び特許請求の範囲に記載される均等物の全てを参照することにより、本発明の範囲が決定されるべきである。
上記実施形態によれば、以下の構成もまた開示される。
(項目1)
複数の入力ベクトル要素に対応するスプライン多項式のそれぞれに対して、範囲値を決定する範囲検出命令を実行するロジックを備える装置。
(項目2)
前記ロジックは、入力ベクトルの要素それぞれと、対応する限界範囲ベクトル要素とを比較する比較ロジックを含む項目1に記載の装置。
(項目3)
前記ロジックは、入力ベクトルの要素それぞれと、対応する限界範囲ベクトル要素とを比較する二分探索ロジックを含む項目1に記載の装置。
(項目4)
前記ロジックは、前記範囲値を含む範囲値ベクトルを格納する範囲ベクトルストレージを含む項目1に記載の装置。
(項目5)
前記ロジックは、前記複数の入力ベクトル要素を格納する入力ベクトルストレージを含む項目4に記載の装置。
(項目6)
前記ロジックは、前記複数の入力ベクトル要素に対応する複数の係数ベクトル要素を格納する、少なくとも1つの係数ベクトルストレージを含む項目5に記載の装置。
(項目7)
前記ロジックは、前記複数の入力ベクトル要素に対応する複数のオフセットベクトル要素を格納する、少なくとも1つのオフセットベクトルストレージを含む項目6に記載の装置。
(項目8)
前記ロジックは、前記複数の入力ベクトル要素に対応する複数の出力ベクトル要素を格納する、少なくとも1つの出力ベクトルストレージを含む項目7に記載の装置。
(項目9)
スプライン関数の複数の入力値に対応する複数の範囲値を生成する範囲検出命令を実行する段階と、
前記スプライン関数の前記複数の入力値に対応した複数の多項式に対応する複数の係数を生成する係数照合オペレーションを実行する段階と、
前記複数の入力値に対応する複数の出力値を生成する多項式の値を求める計算を実行する段階と
を備える方法。
(項目10)
前記範囲検出命令は、範囲検出ロジックに、前記複数の範囲値を含む範囲ベクトルを生成させる項目9に記載の方法。
(項目11)
前記範囲検出ロジックは、前記複数の入力値のそれぞれと、対応する限界範囲ベクトル要素とを比較する比較ロジックを含む項目10に記載の方法。
(項目12)
前記ロジックは、前記複数の入力値のそれぞれと、対応する限界範囲ベクトル要素とを比較する二分探索ロジックを含む項目10に記載の方法。
(項目13)
範囲検出命令を格納するストレージと、
前記範囲検出命令の実行に応答して、複数の入力ベクトル要素に対応するスプライン多項式のそれぞれに対する範囲値を決定するプロセッサと
を備えるシステム。
(項目14)
前記プロセッサは、入力ベクトルの要素それぞれと、対応する限界範囲ベクトル要素とを比較する比較ロジックを含む項目13に記載のシステム。
(項目15)
前記プロセッサは、入力ベクトルの要素それぞれと、対応する限界範囲ベクトル要素とを比較する二分探索ロジックを含む項目13に記載のシステム。
(項目16)
前記プロセッサは、前記範囲値を含む範囲値ベクトルを格納する範囲ベクトルストレージを含む項目13に記載のシステム。
(項目17)
前記プロセッサは、前記複数の入力ベクトル要素を格納する入力ベクトルストレージを含む項目16に記載のシステム。
(項目18)
前記プロセッサは、前記複数の入力ベクトル要素に対応する複数の係数ベクトル要素を格納する、少なくとも1つの係数ベクトルストレージを含む項目17に記載のシステム。
(項目19)
前記プロセッサは、前記複数の入力ベクトル要素に対応する複数のオフセットベクトル要素を格納する、少なくとも1つのオフセットベクトルストレージを含む項目18に記載のシステム。
(項目20)
スプライン関数の複数の入力値に対応する複数の範囲値を生成する範囲検出命令を実行する第1ロジックと、
前記スプライン関数の前記複数の入力値に対応した複数の多項式に対応する複数の係数を生成する係数照合オペレーションを実行する第2ロジックと、
前記複数の入力値に対応する複数の出力値を生成する多項式の値を求める計算を実行する第3ロジックと
を備えるプロセッサ。
(項目21)
前記範囲検出命令は、前記第1ロジックに、前記複数の範囲値を含む範囲ベクトルを生成させる項目20に記載のプロセッサ。
(項目22)
前記第1ロジックは、前記複数の入力値のそれぞれと、対応する限界範囲ベクトル要素とを比較する比較ロジックを含む項目21に記載のプロセッサ。
(項目23)
前記第1ロジックは、前記複数の入力値のそれぞれと、対応する限界範囲ベクトル要素とを比較する二分探索ロジックを含む項目21に記載のプロセッサ。


Claims (19)

  1. 範囲検出ロジックを備え、
    前記範囲検出ロジックは、
    入力ベクトルおよび範囲限界ベクトルに対して単一命令複数データ(SIMD)の範囲検出を実行する範囲検出命令をデコードするデコードロジックと、
    前記範囲検出命令に応じて、前記入力ベクトルの各入力点要素と前記範囲限界ベクトルの各範囲限界とを比較することでスプライン関数の各範囲を前記入力ベクトルの各入力点要素と比較して入力点要素毎の比較結果を累積して、隣接する範囲境界の間のいずれに対応する入力点要素が含まれるかを示す数を求めることにより、前記入力ベクトルの対応する入力点要素が含まれる前記スプライン関数の範囲値を含む、対応する範囲ベクトルを生成し、前記範囲ベクトルをSIMDレジスタにストアする実行ロジックと、
    を有するプロセッサ。
  2. 前記実行ロジックは、入力ベクトルの要素それぞれと、対応する範囲限界ベクトル要素とを比較する比較ロジックを含む請求項1に記載のプロセッサ。
  3. 前記実行ロジックは、入力ベクトルの要素それぞれと、対応する範囲限界ベクトル要素とを比較する二分探索ロジックを含む請求項1に記載のプロセッサ。
  4. 前記範囲検出ロジックは、前記範囲値を含む前記範囲ベクトルを格納する範囲ベクトルストレージを含む請求項1から3のいずれか一項に記載のプロセッサ。
  5. 前記範囲検出ロジックは、前記入力ベクトルを格納する入力ベクトルストレージを含む請求項1から4のいずれか一項に記載のプロセッサ。
  6. 前記範囲検出ロジックは、前記入力ベクトルの複数の要素に対応する複数の係数ベクトル要素を格納する、少なくとも1つの係数ベクトルストレージを含む請求項1から5のいずれか一項に記載のプロセッサ。
  7. 前記範囲検出ロジックは、前記入力ベクトルの複数の要素に対応する複数のオフセットベクトル要素を格納する、少なくとも1つのオフセットベクトルストレージを含む請求項1から6のいずれか一項に記載のプロセッサ。
  8. 前記範囲検出ロジックは、前記入力ベクトルの複数の要素に対応する複数の出力ベクトル要素を格納する、少なくとも1つの出力ベクトルストレージを含む請求項1から7のいずれか一項に記載のプロセッサ。
  9. 命令を格納するストレージと、
    複数の入力ベクトル要素に対応するスプライン多項式の範囲値を決定するプロセッサと
    を備え、
    前記プロセッサは、
    入力ベクトルおよび範囲限界ベクトルに対して単一命令複数データ(SIMD)の範囲検出を実行する範囲検出命令を含む前記命令をデコードするデコードロジックと、
    前記範囲検出命令に応じて、前記入力ベクトルの各入力点要素と前記範囲限界ベクトルの各範囲限界とを比較することでスプライン多項式の各範囲を前記入力ベクトルの各入力ベクトル要素と比較して入力点要素毎の比較結果を累積して、隣接する範囲境界の間のいずれに対応する入力点要素が含まれるかを示す数を求めることにより、前記入力ベクトルの対応する入力ベクトル要素が含まれる前記スプライン多項式の範囲値を含む、対応する範囲ベクトルを生成する実行ロジックと、
    を有するシステム。
  10. 前記プロセッサは、入力ベクトルの要素それぞれと、対応する範囲限界ベクトル要素とを比較する比較ロジックを含む請求項9に記載のシステム。
  11. 前記プロセッサは、入力ベクトルの要素それぞれと、対応する範囲限界ベクトル要素とを比較する二分探索ロジックを含む請求項9に記載のシステム。
  12. 前記プロセッサは、前記範囲値を含む範囲値ベクトルを格納する範囲ベクトルストレージを含む請求項9から11のいずれか一項に記載のシステム。
  13. 前記プロセッサは、前記複数の入力ベクトル要素を格納する入力ベクトルストレージを含む請求項9から12のいずれか一項に記載のシステム。
  14. 前記プロセッサは、前記複数の入力ベクトル要素に対応する複数の係数ベクトル要素を格納する、少なくとも1つの係数ベクトルストレージを含む請求項9から13のいずれか一項に記載のシステム。
  15. 前記プロセッサは、前記複数の入力ベクトル要素に対応する複数のオフセットベクトル要素を格納する、少なくとも1つのオフセットベクトルストレージを含む請求項9から14のいずれか一項に記載のシステム。
  16. スプライン関数の複数の入力値に対応する複数の範囲値を生成する範囲検出を実行する第1ロジックと、
    前記スプライン関数の前記複数の入力値に対応した複数の多項式に対応する複数の係数を生成する係数照合オペレーションを実行する第2ロジックと、
    前記複数の入力値に対応する複数の出力値を生成する多項式の値を求める計算を実行する第3ロジックと
    を備え、
    前記第1ロジックは、
    入力ベクトルおよび範囲限界ベクトルに対して単一命令複数データ(SIMD)の範囲検出を実行する範囲検出命令をデコードするデコードロジックと、
    前記範囲検出命令に応じて、前記入力ベクトルの各入力点要素と前記範囲限界ベクトルの各範囲限界とを比較することでスプライン関数の各範囲を前記入力ベクトルの各入力要素と比較して入力点要素毎の比較結果を累積して、隣接する範囲境界の間のいずれに対応する入力点要素が含まれるかを示す数を求めることにより、前記入力ベクトルの対応する入力要素が含まれる前記スプライン関数の範囲値を含む、対応する範囲ベクトルを生成する実行ロジックと、
    を有する装置。
  17. 前記範囲検出命令は、前記第1ロジックに、前記複数の範囲値を含む範囲ベクトルを生成させ、前記範囲ベクトルを前記範囲検出命令の結果としてSIMDレジスタに格納する請求項16に記載の装置。
  18. 前記第1ロジックは、前記複数の入力値のそれぞれと、対応する範囲限界ベクトル要素とを比較する比較ロジックを含む請求項16または17に記載の装置。
  19. 前記第1ロジックは、前記複数の入力値のそれぞれと、対応する範囲限界ベクトル要素とを比較する二分探索ロジックを含む請求項16または17に記載の装置。
JP2014006991A 2008-10-31 2014-01-17 範囲検出を行うための命令及びロジック Expired - Fee Related JP5883462B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/290,565 US8386547B2 (en) 2008-10-31 2008-10-31 Instruction and logic for performing range detection
US12/290,565 2008-10-31

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011534699A Division JP5518087B2 (ja) 2008-10-31 2009-10-28 範囲検出を行うための命令及びロジック

Publications (2)

Publication Number Publication Date
JP2014096174A JP2014096174A (ja) 2014-05-22
JP5883462B2 true JP5883462B2 (ja) 2016-03-15

Family

ID=42063259

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011534699A Active JP5518087B2 (ja) 2008-10-31 2009-10-28 範囲検出を行うための命令及びロジック
JP2014006991A Expired - Fee Related JP5883462B2 (ja) 2008-10-31 2014-01-17 範囲検出を行うための命令及びロジック

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2011534699A Active JP5518087B2 (ja) 2008-10-31 2009-10-28 範囲検出を行うための命令及びロジック

Country Status (7)

Country Link
US (1) US8386547B2 (ja)
JP (2) JP5518087B2 (ja)
KR (1) KR101105474B1 (ja)
CN (1) CN101907987B (ja)
DE (1) DE102009051288A1 (ja)
TW (1) TWI470545B (ja)
WO (1) WO2010051298A2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9715383B2 (en) 2012-03-15 2017-07-25 International Business Machines Corporation Vector find element equal instruction
US9710266B2 (en) 2012-03-15 2017-07-18 International Business Machines Corporation Instruction to compute the distance to a specified memory boundary
US9280347B2 (en) 2012-03-15 2016-03-08 International Business Machines Corporation Transforming non-contiguous instruction specifiers to contiguous instruction specifiers
US9268566B2 (en) 2012-03-15 2016-02-23 International Business Machines Corporation Character data match determination by loading registers at most up to memory block boundary and comparing
US9588762B2 (en) 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
US9459864B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Vector string range compare
US9459868B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a dynamically determined memory boundary
US9454366B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Copying character data having a termination character from one memory location to another
US9459867B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a specified memory boundary indicated by the instruction
US9454367B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Finding the length of a set of character data having a termination character
US9495155B2 (en) 2013-08-06 2016-11-15 Intel Corporation Methods, apparatus, instructions and logic to provide population count functionality for genome sequencing and alignment
US9513907B2 (en) * 2013-08-06 2016-12-06 Intel Corporation Methods, apparatus, instructions and logic to provide vector population count functionality
US20190250917A1 (en) * 2018-02-14 2019-08-15 Apple Inc. Range Mapping of Input Operands for Transcendental Functions

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918618A (en) * 1988-04-11 1990-04-17 Analog Intelligence Corporation Discrete weight neural network
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
JP3303835B2 (ja) * 1999-04-30 2002-07-22 日本電気株式会社 音声の規則合成のためのピッチパタン生成装置及び方法
JP3688533B2 (ja) * 1999-11-12 2005-08-31 本田技研工業株式会社 排ガス浄化用触媒装置の劣化状態評価方法
WO2003019356A1 (en) 2001-08-22 2003-03-06 Adelante Technologies B.V. Pipelined processor and instruction loop execution method
JP4144378B2 (ja) * 2003-02-28 2008-09-03 ソニー株式会社 画像処理装置および方法、記録媒体、並びにプログラム
US7668894B2 (en) 2003-08-22 2010-02-23 Apple Inc. Computation of power functions using polynomial approximations
WO2007049150A2 (en) 2005-09-28 2007-05-03 Arc International (Uk) Limited Architecture for microprocessor-based systems including simd processing unit and associated systems and methods

Also Published As

Publication number Publication date
JP5518087B2 (ja) 2014-06-11
CN101907987A (zh) 2010-12-08
TW201030607A (en) 2010-08-16
JP2012507796A (ja) 2012-03-29
US8386547B2 (en) 2013-02-26
JP2014096174A (ja) 2014-05-22
KR101105474B1 (ko) 2012-01-13
WO2010051298A3 (en) 2010-07-08
US20100115014A1 (en) 2010-05-06
KR20100048928A (ko) 2010-05-11
WO2010051298A2 (en) 2010-05-06
DE102009051288A1 (de) 2010-05-06
TWI470545B (zh) 2015-01-21
CN101907987B (zh) 2015-05-20

Similar Documents

Publication Publication Date Title
JP5883462B2 (ja) 範囲検出を行うための命令及びロジック
CN109643228B (zh) 用于浮点乘加运算的低能耗尾数乘法
KR101515311B1 (ko) 승산-승산-누산 명령 수행
CN112099852A (zh) 可变格式、可变稀疏矩阵乘法指令
TWI471801B (zh) 降低於一處理器之積和熔加運算(fma)單元中之功率消耗的技術
US9710279B2 (en) Method and apparatus for speculative vectorization
JP2009140491A (ja) 融合型積和演算機能ユニット
GB2553783A (en) Vector multiply-add instruction
TWI435266B (zh) 萬用邏輯運算之方法及裝置
US8615541B2 (en) Extended-precision integer arithmetic and logical instructions
US20090172355A1 (en) Instructions with floating point control override
JP6807073B2 (ja) 高速ベクトルによる動的なメモリ競合検出
TWI455019B (zh) 執行倒數指令的設備、方法及系統
CN110750300A (zh) 一种基于忆阻器存储器内处理的混合计算装置
US10289386B2 (en) Iterative division with reduced latency
US20180046459A1 (en) Data processing
WO2019005132A1 (en) APPARATUS AND METHOD FOR MULTIPLICATION AND CUMULATION OF COMPLEX VALUES
WO2021060135A1 (ja) 少命令セット組み込みプロセッサ
WO2019005130A1 (en) APPARATUS AND METHOD FOR MULTIPLICATION AND ACCUMULATION OF COMPLEX VALUES
Arakawa An embedded processor: is it ready for high-performance computing?
JP2003114795A (ja) 加算に続く予測比較器システム及び方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150331

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150630

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150731

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150925

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20160106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160205

R150 Certificate of patent or registration of utility model

Ref document number: 5883462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees