特許第5883462号(P5883462)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インテル・コーポレーションの特許一覧

<>
  • 特許5883462-範囲検出を行うための命令及びロジック 図000009
  • 特許5883462-範囲検出を行うための命令及びロジック 図000010
  • 特許5883462-範囲検出を行うための命令及びロジック 図000011
  • 特許5883462-範囲検出を行うための命令及びロジック 図000012
  • 特許5883462-範囲検出を行うための命令及びロジック 図000013
  • 特許5883462-範囲検出を行うための命令及びロジック 図000014
  • 特許5883462-範囲検出を行うための命令及びロジック 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5883462
(24)【登録日】2016年2月12日
(45)【発行日】2016年3月15日
(54)【発明の名称】範囲検出を行うための命令及びロジック
(51)【国際特許分類】
   G06F 17/17 20060101AFI20160301BHJP
【FI】
   G06F17/17
【請求項の数】19
【外国語出願】
【全頁数】15
(21)【出願番号】特願2014-6991(P2014-6991)
(22)【出願日】2014年1月17日
(62)【分割の表示】特願2011-534699(P2011-534699)の分割
【原出願日】2009年10月28日
(65)【公開番号】特開2014-96174(P2014-96174A)
(43)【公開日】2014年5月22日
【審査請求日】2014年1月24日
(31)【優先権主張番号】12/290,565
(32)【優先日】2008年10月31日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】ハージル、アサフ
(72)【発明者】
【氏名】フィクスマン、イヴジェニー
(72)【発明者】
【氏名】ミヤコウフスキー、アーティオム
(72)【発明者】
【氏名】オレンスティエン、ドロン
【審査官】 田中 幸雄
(56)【参考文献】
【文献】 特開2000−315092(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/17
(57)【特許請求の範囲】
【請求項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に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、情報処理の分野に関し、特に、コンピュータシステム及びマイクロプロセッサにおける範囲検出を実行する分野に関する。
【背景技術】
【0002】
例えば、マイクロプロセッサのような、コンピュータハードウェアにおける数学的関数の性能は、キャッシュ又はメインメモリ等のロケーションに格納されたルックアップテーブル(LUT)の使用に依存する。ハードウェアにおいて数学的関数が実行されるときには、単一命令複数データ(SIMD)命令は、複数のメモリオペレーションを実行して、LUTにアクセスする場合がある。例えば、複数の入力オペランドに基づく関数を実行するSIMD命令は、SIMD関数に出力される結果を取得するために、入力オペランド各々について、LUTにアクセスをする。一部のプロセッサアーキテクチャでは、複数のLUTに対する並列アクセス機能が提供されず、1以上のLUTにアクセスするのに、同じメモリアクセスロジックが使用されているため、これら複数のLUTアクセスは、並列的にではなく、順次的に発生し、その結果、SIMD演算の実行性能が制限されてしまっていた。
【0003】
あるアルゴリズムでは、数学的関数を、スプライン又はその他の多項式による手法を使用して評価してもよい。従来技術の幾つかの例では、数学的関数を評価するのに使用するスプライン関数は、範囲検出、係数照合及び多項式計算のような処理を実行する複数のソフトウェアオペレーションを必要とする。したがって、数学的関数を評価するのにスプラインを使用すると、計算量が非常に多くなり性能が相対的に低くなってしまうことから、コンピュータプログラムにおけるスプライン計算の実用性は限定されてしまっていた。
【0004】
本発明の実施形態は例示を目的として記載されており、限定することを意図しておらず、添付の図面において使用されている同様な参照番号は、同様な要素を示している。
【図面の簡単な説明】
【0005】
図1】本発明の実施形態の少なくとも一つが使用されてもよいマイクロプロセッサのブロック図である。
図2】本発明の実施形態の少なくとも一つが使用されてもよい共有バスコンピュータシステムのブロック図である。
図3】本発明の実施形態の少なくとも一つが使用されてもよいポイント・ツー・ポイント相互接続コンピュータシステムのブロック図である。
図4】一実施形態に係る、複数の領域に分割されたスプラインを示した図である。
図5A】一実施形態に係る、領域検出命令に応答してスプライン内での領域検出を加速させるのに使用してもよいロジックを示した図である。
図5B】一実施形態に係る、領域検出命令に応答してスプライン内での領域検出を加速させるのに使用してもよいロジックを示した図である。
図6】本発明の実施形態の少なくとも1つを実行するのに使用されてもよいオペレーションのフロー図である。
【発明を実施するための形態】
【0006】
本発明の実施形態は、マイクロプロセッサ及びコンピュータにおける数学的計算性能を改善するのに使用されてもよい。幾つかの実施形態では、スプライン計算は、従来のスプライン計算よりも、高い性能レベルでの様々な数学的オペレーションを実行するのに使用される。少なくとも1つの実施形態において、スプライン計算を実行するのに伴う、複数の最も時間を消費する及び最もリソースを消費するオペレーションのうちの少なくとも1つの速度を高めることにより、スプライン計算性能の改善を図る。また、一実施形態において、スプライン計算で使用される様々な多項式に対応するスプライン内の範囲検出を加速させるために、範囲検出命令及び対応するハードウェアロジックが提供される。
【0007】
図1は、本発明の実施形態の少なくとも一つが使用されてもよいマイクロプロセッサのブロック図である。具体的には、図1には、1以上のプロセッサコア105、110を有するマイクロプロセッサ100が示され、プロセッサコアはそれぞれ、ローカルキャッシュ107、113と関連付けられている。また、図1には、各ローカルキャッシュ107、113に格納されている少なくとも一部の情報のバージョンが記憶されていてもよい共有キャッシュメモリ115が示されている。幾つかの実施形態では、マイクロプロセッサ100は、図1に示されていないその他のロジックを含んでもよく、コンピュータシステム内でI/O制御のようなその他の機能を実行するロジックと共に、例えば、集積メモリコントローラ、集積グラフィックスコントローラを含んでもよい。一実施形態において、マルチプロセッサシステムにおける各マイクロプロセッサ、又はマルチコアプロセッサにおける各プロセッサコアは、一実施形態に係る命令に応答して範囲検出を実行するべく、ロジック119を含む又はロジック119と関連付けられていてもよい。
【0008】
図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と関連付けられていてもよい。
【0009】
図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と関連付けられていてもよい。
【0010】
スプライン計算における、ルックアップテーブル(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倍精度浮動小数点等であってもよい。
【0011】
一実施形態では、範囲検出ロジックは、範囲検出命令を実行するデコードロジック及び実行ロジックを含み、範囲検出命令は、式、"範囲ベクトル(R)=範囲_検出(入力ベクトル(X)、範囲限定ベクトル(RL))"を実行するための命令フォーマット及び制御フィールドを有する。ここで、Rは図5に記載されるロジックにより生成される範囲ベクトル、Xは入力ベクトル、RLは、スプライン関数各々の最初のXinを含むベクトルである。例えば、一実施形態において、ベクトルRLは、図4の各範囲の最初のXin(0、10、30、50、70、80、255)を含む。
【0012】
一実施形態において、範囲検出は、入力ベクトルX内に提供される各入力点に従って、図4に示されているスプライン関数の特定の範囲を照合し、結果をSIMDレジスタに格納する。次に記載する例では、入力ベクトルX、及び図4に示したスプラインに対応する範囲検出ベクトルが示されている。以下の例では、16ビットの固定小数点入力に対してのオペレーションが記載されているが、同様の手法が、8ビット及び32ビット固定小数点及び浮動小数点にも適用することができ、現在の及び将来のベクトル拡張で使用される様々な種類のデータにも適用可能である。
【0013】
図4のx軸に沿ったXinの値をそれぞれ含む要素からなる入力ベクトルXが、次のような入力ベクトルであるとする。
【数1】
【0014】
上記の入力ベクトルX、及び図4に示されたスプラインに基づく範囲検出ベクトルは、次のようになる。
【数2】
【0015】
一実施形態において、図4のスプラインに従って入力ベクトルを演算することにより、上記の範囲検出ベクトルを生成すべく、命令が実行される。一実施形態において、命令は、入力ベクトル要素を、範囲限界の各要素と比較する(図4においては、0、10、30、50、70、80)。一実施形態において、範囲限界の各々は、SIMDレジスタに伝達され、入力ベクトルXとの比較を行ってもよい。一実施形態において、比較オペレーションの結果が0又は−1となった場合には、比較結果、すなわち、比較結果の引き算及び足し算によって、入力ベクトルXにおける各入力点が含まれたスプラインの範囲が生成されることを表している。比較オペレーションを実行するロジックが図5に示されており、xは、入力ベクトルX内の入力点を表し、tiは、図4のスプラインの範囲限界を表し、rは、入力点xに対する範囲検出ベクトルR内の結果の範囲を表す。他の実施形態において、比較オペレーションを別の値(例えば、1及び0)を用いて結果を表してもよく、比較、加算又は減算、及び比較された値の蓄積を使用して比較オペレーションが実行され、範囲検出レジスタRが生成される。
【0016】
図5Aは、一実施形態に係る範囲検出命令を実行するのに応答して、範囲検出ベクトルRを生成するのに使用されてもよいロジックを示している。一実施形態において、ロジック500aは、比較ロジック505aによって範囲限界ベクトル510aと比較される入力ベクトルX501aを含み、範囲限界ベクトル510aは各要素に、入力ベクトルXのi番目の要素に対応するスプライン範囲の範囲限界値を含む。一実施形態において、入力ベクトル501aの要素は、比較ロジック505aによって、範囲限界レジスタ510aの対応する要素と比較される。一実施形態において、ゼロベクトル515aの要素は、入力ベクトル501aと範囲限界ベクトル510aとの比較結果の負の値に加算(517a)され、比較結果の加算結果の要素のそれぞれにおいて、0又は−1が生成される。次に、入力ベクトル501aは、範囲限界ベクトル520aの対応する要素と比較されて、比較結果の負の値が、1つ前の比較結果に加算される。このようなプロセスを、範囲限界ベクトル510aの各要素について行い、最終的に範囲検出ベクトル525aを得る。
【0017】
一実施形態において、図5Aのロジックを、少なくとも1つの命令セットアーキテクチャを使用したプログラムと共に利用してもよく、命令セットアーキテクチャは、以下のような疑似コードで例示できる。
【表1】
【0018】
別の実施形態では、範囲検出ベクトルRを決定する他の手法を使用してもよく、例えば、範囲限界ベクトル要素に対して、二分探索を実行するロジックを含んでもよい。図5Bは、範囲検出ベクトルRを生成するのに使用してもよい、一実施形態に係る二分探索木を示した図である。図5Bの二分探索木500bでは、入力ベクトルX501bの各要素は、範囲限界ベクトルの各要素510bと比較され、真ん中のベクトル要素(T4、入力及び範囲限界ベクトルが8つの要素で構成されている場合)から開始して、ベクトルの前半部分及び後半部分(T5‐T8及びT3‐1)へと続く。一実施形態において、次に示すような疑似コードにより、1つの命令セットアーキテクチャからの命令を使用して、図5Bの二分探索木の機能を例示できる。
【表2】
【0019】
上記の疑似コードにおいて、Tは、範囲限界ベクトルを表し、Iは、入力ベクトルX及び範囲限界ベクトルTのi番目の要素を表す。
【0020】
一実施形態において、命令及び対応するロジックが、範囲検出ベクトルRを生成するのに使用される。範囲検出ベクトルRが決定されると、問題となっている特定の数学的オペレーションに関連付けられたスプライン関数の値をもとめる計算に関連する、係数照合及び多項式計算オペレーションを含む別のオペレーションを実行できるようになる。
【0021】
一実施形態において、図4のスプラインの範囲それぞれに対応する多項式の各々は、対応する係数を有する。係数照合では、係数ベクトル要素と、本発明の一実施形態で生成された範囲検出ベクトル要素とを照合する。図4に示した例では、6つの範囲が存在し、次のような多項式で表されてもよい。
【表3】
【0022】
係数照合は、範囲検出段階の結果に基づく。得られた係数ベクトルの数は、最も高次の多項式の次数+1と等しい。上述の例に戻り、図4で記載された入力ベクトルXに対して得られた係数ベクトルC及びCは、次のように例示される。
【数3】
【0023】
上記の例の全ての多項式の次数は、1であり、得られる係数ベクトルの数は2になる。一実施形態において、C及びCベクトルは、シャッフル命令を使用して計算され、図5A及び図5Bに示された範囲検出段階の出力に基づいて、2つの係数ベクトルC及びCの対応する要素に、適切な係数を格納する。
【0024】
入力ベクトル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であるベクトル値を、以下に例示する。
【数4】
【0025】
出力ベクトルYは、一実施形態によれば、式によって表すことができ、この例の場合には、出力ベクトルYは、Y=O*C1+C2で計算される。
【0026】
図6は、本発明の実施形態の少なくとも1つに関連して使用されてもよいオペレーションのフロー図である。一実施形態において、オペレーション601では、範囲検出ベクトルが生成される。一実施形態において、二分探索及び本明細書に例示されたその他のロジックのようなプロセスに従って、入力ベクトル要素の各々に対して、範囲検出ベクトルが生成される。オペレーション605では、係数照合が行われ、入力ベクトル要素に応じた、スプラインの各範囲に対応する多項式の係数が生成される。オペレーション610において、多項式計算は、入力ベクトルの要素それぞれに対して行われ、計算結果が結果ベクトルに格納される。
【0027】
少なくとも1つの実施形態の1以上の側面を、プロセッサ内の様々なロジックを表現する機械可読媒体に格納された代表的なデータによって実装してもよく、機械によって読み込まれると機械に、本明細書に記載した手法を実行するロジックを作成させる。このような代表的なものとして知られる"IPコア"を、有形の機械可読媒体(テープ)に格納し、様々な顧客又は製造設備に供給し、ロジック又はプロセッサを実際に作成する作成機械に取り込んでもよい。
【0028】
マイクロアーキテクチャメモリ領域アクセスに関する方法及び装置について説明した。上記の説明は、例示することを目的としており、制限することを意図していない。上述の説明を読み理解することにより、多くの別の実施形態が当業者に明らかとなる。したがって、添付の特許請求の範囲、及び特許請求の範囲に記載される均等物の全てを参照することにより、本発明の範囲が決定されるべきである。
上記実施形態によれば、以下の構成もまた開示される。
(項目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に記載のプロセッサ。


図1
図2
図3
図4
図5A
図5B
図6