JP2012119009A5 - 選択演算を実行するプロセッサ - Google Patents
選択演算を実行するプロセッサ Download PDFInfo
- Publication number
- JP2012119009A5 JP2012119009A5 JP2012015834A JP2012015834A JP2012119009A5 JP 2012119009 A5 JP2012119009 A5 JP 2012119009A5 JP 2012015834 A JP2012015834 A JP 2012015834A JP 2012015834 A JP2012015834 A JP 2012015834A JP 2012119009 A5 JP2012119009 A5 JP 2012119009A5
- Authority
- JP
- Japan
- Prior art keywords
- item
- data
- packed
- operand
- register
- 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
Description
上述した説明は、本発明の好適な実施形態を説明することを目的とする。また、上述の説明から、成長が速く、更なる発展を容易に予測することができないこのような技術分野において、本発明は、請求項の範囲内の本発明の原理から逸脱することなく当業者によって構成および細部が変更されうることは明らかであるべきである。
上述した説明によれば、以下の各項目に示す発明もまた開示される。
(項目1)
一の第1の複数ビットオペランドを示す一の第1のフィールドと、一の第2の複数ビットオペランドを示す一の第2のフィールドとを含む一の命令形式である一の命令コードを受信する工程と、
前記第1のオペランドに関連付けられる一の符号ビットが前記第1のオペランドにおける1つ以上のデータ要素に対して非ゼロである場合に、前記符号ビットに応答して前記第2のオペランドを変更する工程と、
を含む方法。
(項目2)
前記符号ビットがゼロである場合に、前記第2のオペランドのデータ要素を変更しない工程をさらに含む項目1に記載の方法。
(項目3)
前記第1のオペランドはさらに、それぞれNビットの長さを有する、データ要素として少なくともA1およびA2を含む第1の複数のデータ要素を含み、
前記第2のオペランドはさらに、それぞれNビットの長さを有する少なくともB1およびB2を含む第2の複数データ要素を含む、項目2に記載の方法。
(項目4)
前記符号ビットは、前記第1のオペランドの前記データ要素の即値フィールドに格納される一の即値ビットである項目3に記載の方法。
(項目5)
前記符号ビットは、前記第1のオペランドに関連付けられる一の第3のオペランドにおける最上位ビットである項目3に記載の方法。
(項目6)
前記第3のオペランドは、一の暗黙のレジスタである項目5に記載の方法。
(項目7)
前記符号ビットは、前記第1のオペランドと前記第2のオペランド間のデータの流れを制御する項目1に記載の方法。
(項目8)
前記符号ビットが非ゼロである場合に、前記第1のオペランドからの第1のデータ要素を前記第2のオペランドに格納する工程をさらに含む項目2に記載の方法。
(項目9)
前記第1のオペランドおよび前記第2のオペランドはそれぞれ128ビットを含む項目1に記載の方法。
(項目10)
前記Nは、64である項目3に記載の方法。
(項目11)
前記1つ以上のデータ要素は、パックドバイトとして処理される項目1に記載の方法。
(項目12)
前記1つ以上のデータ要素は、パックドワードとして処理される項目1に記載の方法。
(項目13)
前記1つ以上のデータ要素は、ダブルワードとして処理される項目1に記載の方法。
(項目14)
前記1つ以上のデータ要素は、クワドワードとして処理される項目1に記載の方法。
(項目15)
一の実行ユニットと、
データを含む一のマシンアクセス可能媒体と、
を含み、
前記データは、前記実行ユニットによりアクセスされると、前記実行ユニットに項目1に記載の方法を実行させる、項目1に記載の方法を実行する装置。
(項目16)
一の第1のデータを受信する一の第1の入力と、
前記第1のデータと同じビット数を含む一の第2のデータを受信する一の第2の入力と、
一の第1のプロセッサ命令に応答して、一の制御ビットに基づいて一の第1のオペランドから一の第1のデータ要素を選択する一の回路と、
を含み、
前記制御ビットは、前記制御ビットが非ゼロである場合に、前記第1のデータ要素を選択する、装置。
(項目17)
前記選択された第1のデータ要素は、一の第2のオペランドにコピーされる項目16に記載の装置。
(項目18)
前記制御ビットは、一の符号ビットである項目16に記載の装置。
(項目19)
前記制御ビットは、前記第1のオペランドの前記第1のデータ要素の即値フィールドに格納される一の即値ビットである項目17に記載の装置。
(項目20)
前記符号ビットは、前記第1のオペランドに関連付けられる一の第3のオペランドにおける最上位ビットである項目17に記載の装置。
(項目21)
前記第3のオペランドは、一の暗黙のレジスタである項目20に記載の装置。
(項目22)
前記第1のデータおよび前記第2のデータはそれぞれ少なくとも128ビットのデータを含む項目16に記載の装置。
(項目23)
前記第1のデータはさらに、少なくとも2つのデータ要素を含む項目16に記載の装置。
(項目24)
前記データ要素はそれぞれ64ビットを含む項目23に記載の装置。
(項目25)
前記第1のデータはさらに、少なくとも4つのデータ要素を含む項目16に記載の装置。
(項目26)
前記データ要素はそれぞれ32ビットを含む項目25に記載の装置。
(項目27)
前記第1のデータはさらに、少なくとも8つのデータ要素を含む項目16に記載の装置。
(項目28)
前記データ要素はそれぞれ16ビットを含む項目27に記載の装置。
(項目29)
前記第1のデータはさらに、少なくとも16のデータ要素を含む項目16に記載の装置。
(項目30)
前記データ要素はそれぞれ8ビットを含む項目29に記載の装置。
(項目31)
データを格納するようアドレス指定可能な一のメモリと、
一の制御ビットを格納するよう構造的に可視である一のストレージ領域を含む一のプロセッサと、
一のNビットソースオペランドを指定する一の第1のフィールドと、一のNビットデスティネーションオペランドを指定する一の第2のフィールドとを有する一の命令を復号化する一のデコーダと、
前記デコーダによる前記命令の復号化に応答して、一の制御ビットに基づいて前記ソースオペランドから一の第1のデータ要素を選択する一の実行ユニットと、
を含み、
前記制御ビットは、前記制御ビットが非ゼロである場合に、前記第1のデータ要素を選択する、コンピュータシステム。
(項目32)
前記Nは、128である項目31に記載のコンピュータシステム。
(項目33)
前記プロセッサは、前記デスティネーションオペランドに前記第1のデータ要素を格納する項目31に記載のコンピュータシステム。
(項目34)
前記制御ビットは、前記第1のデータ要素における一の即値ビットである項目31に記載のコンピュータシステム。
(項目35)
前記制御ビットは、一の第3のオペランドにおける最上位ビットである項目31に記載のコンピュータシステム。
(項目36)
前記第3のオペランドは、一の暗黙のレジスタである項目35に記載のコンピュータシステム。
上述した説明によれば、以下の各項目に示す発明もまた開示される。
(項目1)
一の第1の複数ビットオペランドを示す一の第1のフィールドと、一の第2の複数ビットオペランドを示す一の第2のフィールドとを含む一の命令形式である一の命令コードを受信する工程と、
前記第1のオペランドに関連付けられる一の符号ビットが前記第1のオペランドにおける1つ以上のデータ要素に対して非ゼロである場合に、前記符号ビットに応答して前記第2のオペランドを変更する工程と、
を含む方法。
(項目2)
前記符号ビットがゼロである場合に、前記第2のオペランドのデータ要素を変更しない工程をさらに含む項目1に記載の方法。
(項目3)
前記第1のオペランドはさらに、それぞれNビットの長さを有する、データ要素として少なくともA1およびA2を含む第1の複数のデータ要素を含み、
前記第2のオペランドはさらに、それぞれNビットの長さを有する少なくともB1およびB2を含む第2の複数データ要素を含む、項目2に記載の方法。
(項目4)
前記符号ビットは、前記第1のオペランドの前記データ要素の即値フィールドに格納される一の即値ビットである項目3に記載の方法。
(項目5)
前記符号ビットは、前記第1のオペランドに関連付けられる一の第3のオペランドにおける最上位ビットである項目3に記載の方法。
(項目6)
前記第3のオペランドは、一の暗黙のレジスタである項目5に記載の方法。
(項目7)
前記符号ビットは、前記第1のオペランドと前記第2のオペランド間のデータの流れを制御する項目1に記載の方法。
(項目8)
前記符号ビットが非ゼロである場合に、前記第1のオペランドからの第1のデータ要素を前記第2のオペランドに格納する工程をさらに含む項目2に記載の方法。
(項目9)
前記第1のオペランドおよび前記第2のオペランドはそれぞれ128ビットを含む項目1に記載の方法。
(項目10)
前記Nは、64である項目3に記載の方法。
(項目11)
前記1つ以上のデータ要素は、パックドバイトとして処理される項目1に記載の方法。
(項目12)
前記1つ以上のデータ要素は、パックドワードとして処理される項目1に記載の方法。
(項目13)
前記1つ以上のデータ要素は、ダブルワードとして処理される項目1に記載の方法。
(項目14)
前記1つ以上のデータ要素は、クワドワードとして処理される項目1に記載の方法。
(項目15)
一の実行ユニットと、
データを含む一のマシンアクセス可能媒体と、
を含み、
前記データは、前記実行ユニットによりアクセスされると、前記実行ユニットに項目1に記載の方法を実行させる、項目1に記載の方法を実行する装置。
(項目16)
一の第1のデータを受信する一の第1の入力と、
前記第1のデータと同じビット数を含む一の第2のデータを受信する一の第2の入力と、
一の第1のプロセッサ命令に応答して、一の制御ビットに基づいて一の第1のオペランドから一の第1のデータ要素を選択する一の回路と、
を含み、
前記制御ビットは、前記制御ビットが非ゼロである場合に、前記第1のデータ要素を選択する、装置。
(項目17)
前記選択された第1のデータ要素は、一の第2のオペランドにコピーされる項目16に記載の装置。
(項目18)
前記制御ビットは、一の符号ビットである項目16に記載の装置。
(項目19)
前記制御ビットは、前記第1のオペランドの前記第1のデータ要素の即値フィールドに格納される一の即値ビットである項目17に記載の装置。
(項目20)
前記符号ビットは、前記第1のオペランドに関連付けられる一の第3のオペランドにおける最上位ビットである項目17に記載の装置。
(項目21)
前記第3のオペランドは、一の暗黙のレジスタである項目20に記載の装置。
(項目22)
前記第1のデータおよび前記第2のデータはそれぞれ少なくとも128ビットのデータを含む項目16に記載の装置。
(項目23)
前記第1のデータはさらに、少なくとも2つのデータ要素を含む項目16に記載の装置。
(項目24)
前記データ要素はそれぞれ64ビットを含む項目23に記載の装置。
(項目25)
前記第1のデータはさらに、少なくとも4つのデータ要素を含む項目16に記載の装置。
(項目26)
前記データ要素はそれぞれ32ビットを含む項目25に記載の装置。
(項目27)
前記第1のデータはさらに、少なくとも8つのデータ要素を含む項目16に記載の装置。
(項目28)
前記データ要素はそれぞれ16ビットを含む項目27に記載の装置。
(項目29)
前記第1のデータはさらに、少なくとも16のデータ要素を含む項目16に記載の装置。
(項目30)
前記データ要素はそれぞれ8ビットを含む項目29に記載の装置。
(項目31)
データを格納するようアドレス指定可能な一のメモリと、
一の制御ビットを格納するよう構造的に可視である一のストレージ領域を含む一のプロセッサと、
一のNビットソースオペランドを指定する一の第1のフィールドと、一のNビットデスティネーションオペランドを指定する一の第2のフィールドとを有する一の命令を復号化する一のデコーダと、
前記デコーダによる前記命令の復号化に応答して、一の制御ビットに基づいて前記ソースオペランドから一の第1のデータ要素を選択する一の実行ユニットと、
を含み、
前記制御ビットは、前記制御ビットが非ゼロである場合に、前記第1のデータ要素を選択する、コンピュータシステム。
(項目32)
前記Nは、128である項目31に記載のコンピュータシステム。
(項目33)
前記プロセッサは、前記デスティネーションオペランドに前記第1のデータ要素を格納する項目31に記載のコンピュータシステム。
(項目34)
前記制御ビットは、前記第1のデータ要素における一の即値ビットである項目31に記載のコンピュータシステム。
(項目35)
前記制御ビットは、一の第3のオペランドにおける最上位ビットである項目31に記載のコンピュータシステム。
(項目36)
前記第3のオペランドは、一の暗黙のレジスタである項目35に記載のコンピュータシステム。
Claims (3)
- データを格納するキャッシュと、
ランダムアクセスメモリをアクセスするためのメモリコントローラと、
命令をデコードする命令デコーダと、
128ビットのパックドデータレジスタの組を有し、各レジスタが複数のパックド単精度浮動小数点データ要素を格納するレジスタファイルと、
ソースのパックドデータレジスタを指定する少なくとも1つのソースオペランド、およびデスティネーションのパックドデータレジスタを指定する少なくとも1つのデスティネーションオペランドを含む第1命令を実行して、ソースのパックドデータレジスタからデスティネーションのパックドデータレジスタへと第1データ値を格納する実行ユニットと、
を備えるプロセッサ。 - 前記レジスタファイルは、パックド整数データ要素を格納する請求項1に記載のプロセッサ。
- 前記パックド整数データ要素は、パックドバイト、パックドハーフワード、およびパックドワードを含む複数種類のパックドデータフォーマットにより格納される請求項2に記載のプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/526,065 | 2006-09-22 | ||
US11/526,065 US20080077772A1 (en) | 2006-09-22 | 2006-09-22 | Method and apparatus for performing select operations |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007245615A Division JP5383021B2 (ja) | 2006-09-22 | 2007-09-21 | 選択演算を実行する方法および装置 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012119009A JP2012119009A (ja) | 2012-06-21 |
JP2012119009A5 true JP2012119009A5 (ja) | 2013-08-22 |
JP5709775B2 JP5709775B2 (ja) | 2015-04-30 |
Family
ID=39226408
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007245615A Expired - Fee Related JP5383021B2 (ja) | 2006-09-22 | 2007-09-21 | 選択演算を実行する方法および装置 |
JP2012015834A Active JP5709775B2 (ja) | 2006-09-22 | 2012-01-27 | 選択演算を実行するプロセッサ |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007245615A Expired - Fee Related JP5383021B2 (ja) | 2006-09-22 | 2007-09-21 | 選択演算を実行する方法および装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20080077772A1 (ja) |
JP (2) | JP5383021B2 (ja) |
KR (1) | KR20090042333A (ja) |
CN (4) | CN102915226A (ja) |
BR (1) | BRPI0718446A2 (ja) |
DE (2) | DE112007003786A5 (ja) |
WO (1) | WO2008039354A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9747105B2 (en) | 2009-12-17 | 2017-08-29 | Intel Corporation | Method and apparatus for performing a shift and exclusive or operation in a single instruction |
US20120254588A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | Systems, apparatuses, and methods for blending two source operands into a single destination using a writemask |
US10209986B2 (en) | 2011-12-22 | 2019-02-19 | Intel Corporation | Floating point rounding processors, methods, systems, and instructions |
US10037205B2 (en) | 2011-12-23 | 2018-07-31 | Intel Corporation | Instruction and logic to provide vector blend and permute functionality |
US9395988B2 (en) | 2013-03-08 | 2016-07-19 | Samsung Electronics Co., Ltd. | Micro-ops including packed source and destination fields |
US9411600B2 (en) * | 2013-12-08 | 2016-08-09 | Intel Corporation | Instructions and logic to provide memory access key protection functionality |
US20170177350A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instructions and Logic for Set-Multiple-Vector-Elements Operations |
US10120680B2 (en) * | 2016-12-30 | 2018-11-06 | Intel Corporation | Systems, apparatuses, and methods for arithmetic recurrence |
CN111078291B (zh) * | 2018-10-19 | 2021-02-09 | 中科寒武纪科技股份有限公司 | 运算方法、系统及相关产品 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275834B1 (en) * | 1994-12-01 | 2001-08-14 | Intel Corporation | Apparatus for performing packed shift operations |
US5996066A (en) * | 1996-10-10 | 1999-11-30 | Sun Microsystems, Inc. | Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions |
US6173393B1 (en) * | 1998-03-31 | 2001-01-09 | Intel Corporation | System for writing select non-contiguous bytes of data with single instruction having operand identifying byte mask corresponding to respective blocks of packed data |
US6484255B1 (en) * | 1999-09-20 | 2002-11-19 | Intel Corporation | Selective writing of data elements from packed data based upon a mask using predication |
JP2001142694A (ja) * | 1999-10-01 | 2001-05-25 | Hitachi Ltd | データフィールドのエンコード方法、情報フィールドの拡張方法、及び、コンピュータシステム |
US7155601B2 (en) * | 2001-02-14 | 2006-12-26 | Intel Corporation | Multi-element operand sub-portion shuffle instruction execution |
US20040054877A1 (en) * | 2001-10-29 | 2004-03-18 | Macy William W. | Method and apparatus for shuffling data |
US7853778B2 (en) * | 2001-12-20 | 2010-12-14 | Intel Corporation | Load/move and duplicate instructions for a processor |
US7441104B2 (en) * | 2002-03-30 | 2008-10-21 | Hewlett-Packard Development Company, L.P. | Parallel subword instructions with distributed results |
GB2409063B (en) * | 2003-12-09 | 2006-07-12 | Advanced Risc Mach Ltd | Vector by scalar operations |
GB2414308B (en) * | 2004-05-17 | 2007-08-15 | Advanced Risc Mach Ltd | Program instruction compression |
-
2006
- 2006-09-22 US US11/526,065 patent/US20080077772A1/en not_active Abandoned
-
2007
- 2007-09-20 WO PCT/US2007/020416 patent/WO2008039354A1/en active Application Filing
- 2007-09-20 DE DE112007003786T patent/DE112007003786A5/de not_active Withdrawn
- 2007-09-20 BR BRPI0718446-8A2A patent/BRPI0718446A2/pt not_active IP Right Cessation
- 2007-09-20 DE DE112007002146T patent/DE112007002146T5/de not_active Withdrawn
- 2007-09-20 KR KR1020097005807A patent/KR20090042333A/ko active Search and Examination
- 2007-09-21 CN CN2012103265645A patent/CN102915226A/zh active Pending
- 2007-09-21 CN CN201010535590XA patent/CN101980148A/zh active Pending
- 2007-09-21 JP JP2007245615A patent/JP5383021B2/ja not_active Expired - Fee Related
- 2007-09-21 CN CNA2007101701530A patent/CN101154154A/zh active Pending
- 2007-09-21 CN CN201610615381.3A patent/CN106155631A/zh active Pending
-
2012
- 2012-01-27 JP JP2012015834A patent/JP5709775B2/ja active Active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012119009A5 (ja) | 選択演算を実行するプロセッサ | |
CN109471659B (zh) | 使用写掩码将两个源操作数混合进单个目的地的系统、装置和方法 | |
TWI476684B (zh) | 於電腦處理器中執行聚集跨步指令及分散跨步指令之方法及設備 | |
KR102539893B1 (ko) | 다차원 어레이로부터 요소들의 다차원 블록을 프리페치하는 하드웨어 장치들 및 방법들 | |
KR101597774B1 (ko) | 마스킹된 전체 레지스터 액세스들을 이용한 부분적 레지스터 액세스들을 구현하기 위한 프로세서들, 방법들 및 시스템들 | |
JP2015164061A5 (ja) | ||
TWI463332B (zh) | 在單一指令多資料之資料處理器中提供擴充尋址模式 | |
JP6466388B2 (ja) | 方法及び装置 | |
CN103562854B (zh) | 用于对齐寄存器的系统、装置和方法 | |
JP5789319B2 (ja) | 複数データ要素対複数データ要素比較プロセッサ、方法、システム、および命令 | |
KR20170097008A (ko) | 벡터 요소 세트에 대해 축소 연산을 수행하기 위한 방법 및 장치 | |
JP2010504594A5 (ja) | ||
US9772849B2 (en) | Four-dimensional morton coordinate conversion processors, methods, systems, and instructions | |
US20120254593A1 (en) | Systems, apparatuses, and methods for jumps using a mask register | |
JP2017509064A (ja) | マスクド結果要素に伝搬する対応アンマスクド結果要素にソース要素を記憶するプロセッサ、方法、システム、及び命令 | |
US20170242697A1 (en) | System and Method for Executing an Instruction to Permute a Mask | |
WO2016077019A1 (en) | Three-dimensional morton coordinate conversion processors, methods, systems, and instructions | |
JP2021051727A (ja) | グラフアプリケーション内の圧縮されたリストに効率的にアクセスするための間接参照のロード及びストアへのisaサポートのシステム及び方法 | |
CN108292228B (zh) | 用于基于通道的步进收集的系统、设备和方法 | |
CN103336681B (zh) | 针对采用变长指令集的流水线结构处理器的取指方法 | |
JP6773378B2 (ja) | 3d座標から3dのz曲線インデックスを計算するための機械レベル命令 | |
CN107851022B (zh) | 向量长度查询指令 | |
CN107851015B (zh) | 向量操作数位大小控制 | |
US20120260062A1 (en) | System and method for providing dynamic addressability of data elements in a register file with subword parallelism | |
US10496411B2 (en) | Functional unit for instruction execution pipeline capable of shifting different chunks of a packed data operand by different amounts |