JP5422614B2 - 低ポート数メモリーを用いたマルチポートメモリーのシミュレート - Google Patents
低ポート数メモリーを用いたマルチポートメモリーのシミュレート Download PDFInfo
- Publication number
- JP5422614B2 JP5422614B2 JP2011154233A JP2011154233A JP5422614B2 JP 5422614 B2 JP5422614 B2 JP 5422614B2 JP 2011154233 A JP2011154233 A JP 2011154233A JP 2011154233 A JP2011154233 A JP 2011154233A JP 5422614 B2 JP5422614 B2 JP 5422614B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- memory
- unit
- bank
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims description 125
- 238000000034 method Methods 0.000 claims description 55
- 230000008569 process Effects 0.000 claims description 33
- 230000006870 function Effects 0.000 claims description 8
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000012545 processing Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 8
- 239000012634 fragment Substances 0.000 description 5
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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
-
- 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/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/3824—Operand accessing
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Memory System (AREA)
Description
Claims (16)
- 1つのマルチポートメモリーとして機能するように複数のシングルポートメモリーを構成すると共に、複数のメモリーバンクの中にレジスタを割り付ける方法であって、
前記複数のシングルポートメモリーは、複数のスレッドのうちの少なくとも1つによって実行されるオペランドを記憶するためのレジスタを提供し、
前記複数のメモリーバンクのそれぞれは、前記複数のスレッドのうちの少なくとも1つに関連しており、
前記複数のスレッドのうちの第1のスレッドに割り付けられるレジスタの数を決定するステップと、
一組のメモリーバンク内に存在する少なくとも1つのメモリーバンク内のロケーションにおいて前記第1のスレッドに前記数のレジスタを割り付けるステップであって、前記一組のメモリーバンクは、前記複数のシングルポートメモリーからなり、前記複数のシングルポートメモリーは、前記1つのマルチポートメモリーとして機能するように構成された、ステップと、
前記複数のスレッドのうちの前記第2のスレッドに割り付けられるレジスタの数を決定するステップと、
一組のメモリーバンク内に存在する少なくとも1つのメモリーバンク内のロケーションにおいて前記第2のスレッドに前記数のレジスタを割り付けるステップであって、前記一組のメモリーバンクは、前記複数のシングルポートメモリーからなり、前記複数のシングルポートメモリーは、前記1つのマルチポートメモリーとして機能するように構成された、ステップと、
前記一組のメモリーバンク内に存在するレジスタから、第1の収集ユニットへ、前記第2のスレッド内に存在する命令によって指定される第1のオペランドを読み込むステップと、
前記一組のメモリーバンク内に存在するレジスタから、第2の収集ユニットへ、前記第1のスレッド内に存在する前記命令によって指定される第2のオペランドを読み込むステップと、
前記命令、前記第1のオペランド、及び、前記第2のオペランドを、前記第1の収集ユニット及び前記第2の収集ユニットのそれぞれから前記第1のスレッド及び前記第2のスレッドへ実行のためにディスパッチするステップと、
を備え、
前記数のレジスタの割り付けが、割り付け方式に基づくものであり、当該割り付け方式は、厚い割り付け方式、又は、薄い割り付け方式であり、
前記第1のスレッド及び前記第2のスレッドに割り付けられるレジスタの前記数に基づいて前記割り付け方式を決定するステップをさらに備える、方法。 - 前記第1のスレッド及び前記第2のスレッドに割り付けられる前記数のレジスタが、いくつかの部分に分割され、それらの部分が、前記一組のメモリーバンク内に存在する2以上のメモリーバンク内に割り付けられる、請求項1に記載の方法。
- 前記第1のスレッド及び前記第2のスレッドに割り付けられる前記数のレジスタが、前記一組のメモリーバンク内に存在するただ1つのメモリーバンク内に配置される、請求項1に記載の方法。
- 前記割り付け方式をドライバから受け取るステップをさらに備える、請求項1に記載の方法。
- 前記第1のスレッド及び前記第2のスレッドが同じ命令を処理するとき、前記第1のスレッド及び前記第2のスレッドが前記一組のメモリーバンクのうちの同一のメモリーバンクからオペランドを読み込まないように、前記第1のスレッド及び前記第2のスレッドのために割り付けられた一組のレジスタ内に存在するレジスタを、それぞれのレジスタを割り当てるための前記第1のスレッド及び前記第2のスレッドに関連する位相値を用いて、少なくとも1つのメモリーバンクに割り当てるステップをさらに備える、請求項1に記載の方法。
- グラフィックスプログラム命令のためのオペランドを複数のシングルポートメモリーへ記憶するための、及び、複数のシングルポートメモリーから出力するためのレジスタファイルユニットであって、
複数のシングルポートメモリーからなる第1のメモリーバンクであって、前記複数のシングルポートメモリーは、1つのマルチポートメモリーとして機能し、第1のスレッドのためのオペランドを記憶するように構成された、第1のメモリーバンクと、
複数のシングルポートメモリーからなる第2のメモリーバンクであって、前記複数のシングルポートメモリーは、1つのマルチポートメモリーとして機能し、第2のスレッドのためのオペランドを記憶するように構成された、第2のメモリーバンクと、
前記第1のスレッドのための前記オペランドを前記第1のメモリーバンクから受け取り、前記第1のスレッドのプログラム命令と前記第1のスレッドの前記プログラム命令によって指定された任意のオペランドとを出力するように構成された第1の収集ユニットと、
前記第2のスレッドのための前記オペランドを前記第2のメモリーバンクから受け取り、前記第2のスレッドのプログラム命令と前記第2のスレッドの前記プログラム命令によって指定された任意のオペランドとを実行のために前記第1のスレッド及び前記第2のスレッドに出力するように構成された第2の収集ユニットと、
を備え、
スレッドを処理するために必要なレジスタの数を決定すると共に、厚い割り付けが使用されるべきか、薄い割り付けが使用されるべきかを決定するためのレジスタアドレスユニットを備え、
前記レジスタアドレスユニットは、前記第1のメモリーバンク及び前記第2のメモリーバンク内において割り付け可能な最初のロケーションを指示するベースポインタを更新するようにさらに構成されている、レジスタファイルユニット。 - 前記第1の収集ユニット及び前記第2の収集ユニットのいずれか一方が、スレッドのためのオペランドを前記第1のメモリーバンク及び前記第2のメモリーバンクのいずれか一方から受け取るために、前記第1のメモリーバンク及び前記第2のメモリーバンクを前記第1の収集ユニット及び前記第2の収集ユニットに結合するクロスバユニットをさらに備える、請求項6に記載のレジスタファイルユニット。
- オペランド読み出し要求を前記第1のメモリーバンクに出力するように構成された第1のバンク要求調停ユニットと、
オペランド読み出し要求を前記第2のメモリーバンクに出力するように構成された第2のバンク要求調停ユニットと、
をさらに備える、請求項6に記載のレジスタファイルユニット。 - 前記第2の収集ユニットに結合され、かつ、前記第1の収集ユニット及び前記第2の収集ユニットと前記第1のスレッド及び前記第2のスレッドとを調停し、前記第1のスレッドの前記プログラム命令および前記第1のスレッドの前記プログラム命令によって指定された任意のオペランドまたは前記第2のスレッドの前記プログラム命令および前記第2のスレッドの前記プログラム命令によって指定された任意のオペランドを出力するように構成されたディスパッチャーユニットをさらに備える、請求項6に記載のレジスタファイルユニット。
- 前記ディスパッチャーユニットによって出力された任意のプログラム命令を実行するように構成された実行ユニットをさらに備え、前記ディスパッチャーユニットは、当該ディスパッチャーユニットによって前記第1の収集ユニットと前記第2の収集ユニットとの間に確立された優先順位に基づいて、前記実行ユニットにオペランドを出力する、請求項9に記載のレジスタファイルユニット。
- 前記第1の収集ユニットによって出力された任意のプログラム命令を実行するように構成された実行ユニットをさらに備える、請求項9に記載のレジスタファイルユニット。
- 複数の追加のメモリーバンク及び複数の追加の収集ユニットを備え、当該複数の追加のメモリーバンクの数と当該複数の追加の収集ユニットの数は異なり、前記クロスバユニットは、いずれかのメモリーバンクから出力されるオペランドを、前記第1の収集ユニット及び前記第2の収集ユニットのうちのいずれかの入力へルーティングできるように構成されている請求項7に記載のレジスタファイルユニット。
- 前記第1のスレッド及び前記第2のスレッドのそれぞれに割り付けられる前記数のレジスタが、いくつかの部分に分割され、それらの部分が、前記一組のメモリーバンク内に存在する1つのメモリーバンク内に全て割り付けられる、又は、前記一組のメモリーバンク内に存在する全てのメモリーバンクの間で等しく割り付けられ、
前記一組のメモリーバンク内に存在する前記1つのメモリーバンクは、割り付けのために次に利用可能なレジスタを指示するレジスタベースアドレス、割り付け方式、及び、割り付けられる次のレジスタにおけるレジスタベースアドレスを記憶する請求項1に記載の方法。 - 1つ以上のスレッドに割り付けられる前記数のレジスタが、いくつかの部分に分割され、前記レジスタは、厚い割り付け又は薄い割り付けに基づいて割り付けられ、メモリーバンクにおける前記厚い割り付けは、当該メモリーバンクのアドレスの一端から開始され、当該メモリーバンクにおける前記薄い割り付けは、当該メモリーバンクのアドレスの他端から開始される請求項1に記載の方法。
- 前記レジスタアドレスユニットは、次に続くスレッドに割り付けられるオペランドに割り当てられるレジスタが、既に割り付けられたレジスタに対してスキューされるように、必要なレジスタの数を決定した後に位相値を更新するようにさらに構成されている請求項6に記載のレジスタファイルユニット。
- 前記第1の収集ユニット及び前記第2の収集ユニットのそれぞれが、前記第1のスレッド及び前記第2のスレッドのうちの任意のスレッド内の実行すべきプログラム命令のためのオペランドを前記複数のメモリーバンクのうちの2以上のメモリーバンクから収集するように、前記第1のメモリーバンク及び前記第2のメモリーバンクのうちの任意のメモリーバンク内にある前記第1のオペランド及び前記第2のオペランドのうちの任意のオペランドは、クロスバユニットを通して、前記第1の収集ユニット及び前記第2の収集ユニットのうちの任意の収集ユニットに送られることができる請求項1に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/889,730 | 2004-07-13 | ||
US10/889,730 US7339592B2 (en) | 2004-07-13 | 2004-07-13 | Simulating multiported memories using lower port count memories |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007521508A Division JP2008507034A (ja) | 2004-07-13 | 2005-07-07 | 下位ポートカウントメモリーを用いたマルチポートメモリーのシミュレート |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011238271A JP2011238271A (ja) | 2011-11-24 |
JP5422614B2 true JP5422614B2 (ja) | 2014-02-19 |
Family
ID=34973122
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007521508A Pending JP2008507034A (ja) | 2004-07-13 | 2005-07-07 | 下位ポートカウントメモリーを用いたマルチポートメモリーのシミュレート |
JP2011154233A Active JP5422614B2 (ja) | 2004-07-13 | 2011-07-12 | 低ポート数メモリーを用いたマルチポートメモリーのシミュレート |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007521508A Pending JP2008507034A (ja) | 2004-07-13 | 2005-07-07 | 下位ポートカウントメモリーを用いたマルチポートメモリーのシミュレート |
Country Status (6)
Country | Link |
---|---|
US (2) | US7339592B2 (ja) |
JP (2) | JP2008507034A (ja) |
KR (1) | KR100862124B1 (ja) |
CN (1) | CN101014933B (ja) |
TW (1) | TWI441021B (ja) |
WO (1) | WO2006017135A2 (ja) |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7634621B1 (en) * | 2004-07-13 | 2009-12-15 | Nvidia Corporation | Register file allocation |
US7339592B2 (en) | 2004-07-13 | 2008-03-04 | Nvidia Corporation | Simulating multiported memories using lower port count memories |
US7360035B2 (en) | 2004-09-01 | 2008-04-15 | International Business Machines Corporation | Atomic read/write support in a multi-module memory configuration |
US8560795B2 (en) * | 2005-06-30 | 2013-10-15 | Imec | Memory arrangement for multi-processor systems including a memory queue |
US8327115B2 (en) | 2006-04-12 | 2012-12-04 | Soft Machines, Inc. | Plural matrices of execution units for processing matrices of row dependent instructions in single clock cycle in super or separate mode |
US8766995B2 (en) * | 2006-04-26 | 2014-07-01 | Qualcomm Incorporated | Graphics system with configurable caches |
US20070268289A1 (en) * | 2006-05-16 | 2007-11-22 | Chun Yu | Graphics system with dynamic reposition of depth engine |
US8884972B2 (en) * | 2006-05-25 | 2014-11-11 | Qualcomm Incorporated | Graphics processor with arithmetic and elementary function units |
US8869147B2 (en) * | 2006-05-31 | 2014-10-21 | Qualcomm Incorporated | Multi-threaded processor with deferred thread output control |
US8644643B2 (en) | 2006-06-14 | 2014-02-04 | Qualcomm Incorporated | Convolution filtering in a graphics processor |
US8766996B2 (en) * | 2006-06-21 | 2014-07-01 | Qualcomm Incorporated | Unified virtual addressed register file |
EP2523101B1 (en) | 2006-11-14 | 2014-06-04 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
US8725991B2 (en) | 2007-09-12 | 2014-05-13 | Qualcomm Incorporated | Register file system and method for pipelined processing |
US7945764B2 (en) * | 2008-01-11 | 2011-05-17 | International Business Machines Corporation | Processing unit incorporating multirate execution unit |
US20090189896A1 (en) * | 2008-01-25 | 2009-07-30 | Via Technologies, Inc. | Graphics Processor having Unified Shader Unit |
KR101102930B1 (ko) * | 2008-10-31 | 2012-01-10 | 한국전자통신연구원 | 로봇용 소프트웨어 컴포넌트 장치 및 이를 이용한 쓰레드 처리 방법 |
US8689217B2 (en) | 2008-10-31 | 2014-04-01 | Electronics And Telecommunications Research Institute | System and method for thread processing robot software components responsive to periodic, dedicated, and passive modes |
US8370557B2 (en) * | 2008-12-19 | 2013-02-05 | Intel Corporation | Pseudo dual-port SRAM and a shared memory switch using multiple memory banks and a sideband memory |
US8386808B2 (en) * | 2008-12-22 | 2013-02-26 | Intel Corporation | Adaptive power budget allocation between multiple components in a computing system |
US8458446B2 (en) * | 2009-09-30 | 2013-06-04 | Oracle America, Inc. | Accessing a multibank register file using a thread identifier |
KR20110103256A (ko) * | 2010-03-12 | 2011-09-20 | 삼성전자주식회사 | 다중 입출력 오퍼레이션 지원 프로세서 및 그 방법 |
US8832671B1 (en) * | 2010-07-07 | 2014-09-09 | Nvidia Corporation | Conflict-free register allocation |
US8555035B1 (en) | 2010-07-07 | 2013-10-08 | Nvidia Corporation | Conflict-free register allocation using a multi-bank register file with input operand alignment |
US20120066471A1 (en) * | 2010-09-14 | 2012-03-15 | Advanced Micro Devices, Inc. | Allocation of memory buffers based on preferred memory performance |
US20120066444A1 (en) * | 2010-09-14 | 2012-03-15 | Advanced Micro Devices, Inc. | Resolution Enhancement of Video Stream Based on Spatial and Temporal Correlation |
KR101685247B1 (ko) | 2010-09-17 | 2016-12-09 | 소프트 머신즈, 인크. | 조기 원거리 분기 예측을 위한 섀도우 캐시를 포함하는 단일 사이클 다중 분기 예측 |
US8787368B2 (en) * | 2010-12-07 | 2014-07-22 | Advanced Micro Devices, Inc. | Crossbar switch with primary and secondary pickers |
CN108376097B (zh) | 2011-03-25 | 2022-04-15 | 英特尔公司 | 用于通过使用由可分割引擎实例化的虚拟核来支持代码块执行的寄存器文件段 |
EP2689327B1 (en) | 2011-03-25 | 2021-07-28 | Intel Corporation | Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines |
KR101966712B1 (ko) | 2011-03-25 | 2019-04-09 | 인텔 코포레이션 | 분할가능한 엔진에 의해 인스턴스화된 가상 코어를 이용한 코드 블록의 실행을 지원하는 메모리 프래그먼트 |
US20120254589A1 (en) * | 2011-04-01 | 2012-10-04 | Jesus Corbal San Adrian | System, apparatus, and method for aligning registers |
KR101639853B1 (ko) | 2011-05-20 | 2016-07-14 | 소프트 머신즈, 인크. | 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당 |
CN103649931B (zh) * | 2011-05-20 | 2016-10-12 | 索夫特机械公司 | 用于支持由多个引擎执行指令序列的互连结构 |
US8819379B2 (en) | 2011-11-15 | 2014-08-26 | Memory Technologies Llc | Allocating memory based on performance ranking |
KR101703401B1 (ko) | 2011-11-22 | 2017-02-06 | 소프트 머신즈, 인크. | 다중 엔진 마이크로프로세서용 가속 코드 최적화기 |
WO2013077876A1 (en) | 2011-11-22 | 2013-05-30 | Soft Machines, Inc. | A microprocessor accelerated code optimizer |
US8639882B2 (en) * | 2011-12-14 | 2014-01-28 | Nvidia Corporation | Methods and apparatus for source operand collector caching |
US9626191B2 (en) * | 2011-12-22 | 2017-04-18 | Nvidia Corporation | Shaped register file reads |
US9606808B2 (en) * | 2012-01-11 | 2017-03-28 | Nvidia Corporation | Method and system for resolving thread divergences |
US9158683B2 (en) | 2012-08-09 | 2015-10-13 | Texas Instruments Incorporated | Multiport memory emulation using single-port memory devices |
US9489316B2 (en) * | 2013-03-15 | 2016-11-08 | Freescale Semiconductor, Inc. | Method and device implementing execute-only memory protection |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
WO2014151043A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
WO2014151018A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for executing multithreaded instructions grouped onto blocks |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9508112B2 (en) * | 2013-07-31 | 2016-11-29 | Apple Inc. | Multi-threaded GPU pipeline |
US9377968B2 (en) | 2013-11-13 | 2016-06-28 | Sandisk Technologies Llc | Method and system for using templates to communicate with non-volatile memory |
US9430411B2 (en) | 2013-11-13 | 2016-08-30 | Sandisk Technologies Llc | Method and system for communicating with non-volatile memory |
US9390033B2 (en) | 2013-11-13 | 2016-07-12 | Sandisk Technologies Llc | Method and system for communicating with non-volatile memory via multiple data paths |
KR20150056373A (ko) * | 2013-11-15 | 2015-05-26 | 삼성전자주식회사 | 순차적 수행 방식의 멀티스레드 프로세싱 장치 및 방법 |
US9201636B2 (en) | 2013-11-21 | 2015-12-01 | National Tsing Hua University | Method for divergence analysis of pointer-based program |
US9141291B2 (en) | 2013-11-26 | 2015-09-22 | Sandisk Technologies Inc. | Adaptive context disbursement for improved performance in non-volatile memory systems |
US9437172B2 (en) * | 2014-08-19 | 2016-09-06 | Apple Inc. | High-speed low-power access to register files |
KR102357863B1 (ko) * | 2014-12-15 | 2022-02-04 | 삼성전자주식회사 | 메모리 접근 방법 및 장치 |
GB2540971B (en) | 2015-07-31 | 2018-03-14 | Advanced Risc Mach Ltd | Graphics processing systems |
US10089115B2 (en) * | 2016-07-07 | 2018-10-02 | Intel Corporation | Apparatus to optimize GPU thread shared local memory access |
US9747106B1 (en) | 2016-09-30 | 2017-08-29 | International Business Machines Corporation | Allocating multiple operand data areas of a computer instruction within a program buffer |
CN110326021A (zh) * | 2017-04-01 | 2019-10-11 | 英特尔公司 | 用于图形处理器上的加速计算的执行单元共享混合技术 |
US10521880B2 (en) * | 2017-04-17 | 2019-12-31 | Intel Corporation | Adaptive compute size per workload |
US10417734B2 (en) | 2017-04-24 | 2019-09-17 | Intel Corporation | Compute optimization mechanism for deep neural networks |
US10417731B2 (en) | 2017-04-24 | 2019-09-17 | Intel Corporation | Compute optimization mechanism for deep neural networks |
US10467724B1 (en) * | 2018-02-14 | 2019-11-05 | Apple Inc. | Fast determination of workgroup batches from multi-dimensional kernels |
US11068305B2 (en) * | 2018-05-07 | 2021-07-20 | Micron Technology, Inc. | System call management in a user-mode, multi-threaded, self-scheduling processor |
CN111459543B (zh) * | 2019-01-21 | 2022-09-13 | 上海登临科技有限公司 | 一种管理寄存器文件单元的方法 |
KR102201352B1 (ko) * | 2019-04-03 | 2021-01-08 | 연세대학교 산학협력단 | 스핀 전달 토크 랜덤 액세스 메모리 기반의 계층적 레지스터 파일 장치 |
US12020075B2 (en) | 2020-09-11 | 2024-06-25 | Apple Inc. | Compute kernel parsing with limits in one or more dimensions with iterating through workgroups in the one or more dimensions for execution |
US12020064B2 (en) * | 2020-10-20 | 2024-06-25 | Micron Technology, Inc. | Rescheduling a failed memory request in a processor |
US20220197649A1 (en) * | 2020-12-22 | 2022-06-23 | Advanced Micro Devices, Inc. | General purpose register hierarchy system and method |
CN115129369A (zh) * | 2021-03-26 | 2022-09-30 | 上海阵量智能科技有限公司 | 命令分发方法、命令分发器、芯片以及电子设备 |
CN115934102B (zh) * | 2022-12-29 | 2023-12-12 | 格兰菲智能科技有限公司 | 通用寄存器动态分配方法、装置、计算机设备和存储介质 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US41228A (en) * | 1864-01-12 | Improved refrigerating dish-cover | ||
US80512A (en) * | 1868-07-28 | John shellabergeb | ||
US163699A (en) * | 1875-05-25 | Improvement in ruffling attachments for sewing-machines | ||
US12603A (en) * | 1855-03-27 | Improvement in seed-planters | ||
US103990A (en) * | 1870-06-07 | Improvement in liquid-meters | ||
US4532589A (en) * | 1981-12-02 | 1985-07-30 | Hitachi, Ltd. | Digital data processor with two operation units |
JPS61269773A (ja) * | 1985-05-24 | 1986-11-29 | Fujitsu Ltd | ベクトル命令実行制御方式 |
JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
US4964042A (en) * | 1988-08-12 | 1990-10-16 | Harris Corporation | Static dataflow computer with a plurality of control structures simultaneously and continuously monitoring first and second communication channels |
JPH0331937A (ja) * | 1989-06-29 | 1991-02-12 | Mitsubishi Electric Corp | マイクロプロセッサ |
US6091430A (en) * | 1993-03-31 | 2000-07-18 | International Business Machines Corporation | Simultaneous high resolution display within multiple virtual DOS applications in a data processing system |
JPH06332721A (ja) * | 1993-05-24 | 1994-12-02 | Hitachi Ltd | レジスタの使用方法 |
SG75756A1 (en) * | 1994-02-28 | 2000-10-24 | Intel Corp | Method and apparatus for avoiding writeback conflicts between execution units sharing a common writeback path |
US6154826A (en) * | 1994-11-16 | 2000-11-28 | University Of Virginia Patent Foundation | Method and device for maximizing memory system bandwidth by accessing data in a dynamically determined order |
US5701426A (en) * | 1995-03-31 | 1997-12-23 | Bull Information Systems Inc. | Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio |
US5644780A (en) * | 1995-06-02 | 1997-07-01 | International Business Machines Corporation | Multiple port high speed register file with interleaved write ports for use with very long instruction word (vlin) and n-way superscaler processors |
US6167486A (en) * | 1996-11-18 | 2000-12-26 | Nec Electronics, Inc. | Parallel access virtual channel memory system with cacheable channels |
JP3087696B2 (ja) * | 1997-07-25 | 2000-09-11 | 日本電気株式会社 | 分散メモリ型マルチプロセッサ・システム制御方法およびコンピュータ読み取り可能な記録媒体 |
US5913049A (en) * | 1997-07-31 | 1999-06-15 | Texas Instruments Incorporated | Multi-stream complex instruction set microprocessor |
JPH11184674A (ja) * | 1997-12-24 | 1999-07-09 | Fujitsu Ltd | レジスタファイル |
US6092175A (en) * | 1998-04-02 | 2000-07-18 | University Of Washington | Shared register storage mechanisms for multithreaded computer systems with out-of-order execution |
US6317820B1 (en) | 1998-06-05 | 2001-11-13 | Texas Instruments Incorporated | Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism |
JP3880739B2 (ja) * | 1999-02-25 | 2007-02-14 | 三菱電機株式会社 | オペレーティングシステムの処理方式及びオペレーティングシステムの処理方法 |
US6438557B1 (en) * | 1999-06-23 | 2002-08-20 | Ericsson Inc. | System and method for performing context switching and rescheduling of a processor |
JP2001167084A (ja) * | 1999-12-08 | 2001-06-22 | Nec Kofu Ltd | ベクトル演算処理装置及びベクトルデータ移送方法 |
US7120783B2 (en) * | 1999-12-22 | 2006-10-10 | Ubicom, Inc. | System and method for reading and writing a thread state in a multithreaded central processing unit |
US6615340B1 (en) * | 2000-03-22 | 2003-09-02 | Wilmot, Ii Richard Byron | Extended operand management indicator structure and method |
US20020103990A1 (en) * | 2001-02-01 | 2002-08-01 | Hanan Potash | Programmed load precession machine |
US7487505B2 (en) * | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
US6795889B2 (en) * | 2002-01-09 | 2004-09-21 | International Business Machines Corporation | Method and apparatus for multi-path data storage and retrieval |
JP3727887B2 (ja) * | 2002-02-19 | 2005-12-21 | 富士通株式会社 | マルチスレッドプロセッサにおける共有レジスタファイル制御方式 |
US6833831B2 (en) * | 2002-02-26 | 2004-12-21 | Sun Microsystems, Inc. | Synchronizing data streams in a graphics processor |
US7398374B2 (en) * | 2002-02-27 | 2008-07-08 | Hewlett-Packard Development Company, L.P. | Multi-cluster processor for processing instructions of one or more instruction threads |
CN1647030A (zh) * | 2002-04-10 | 2005-07-27 | 皇家飞利浦电子股份有限公司 | 数据处理系统 |
US7336283B2 (en) * | 2002-10-24 | 2008-02-26 | Hewlett-Packard Development Company, L.P. | Efficient hardware A-buffer using three-dimensional allocation of fragment memory |
JP2004178427A (ja) * | 2002-11-28 | 2004-06-24 | Toshiba Microelectronics Corp | 中央処理装置 |
US7376954B2 (en) * | 2003-08-28 | 2008-05-20 | Mips Technologies, Inc. | Mechanisms for assuring quality of service for programs executing on a multithreaded processor |
US7339592B2 (en) | 2004-07-13 | 2008-03-04 | Nvidia Corporation | Simulating multiported memories using lower port count memories |
-
2004
- 2004-07-13 US US10/889,730 patent/US7339592B2/en active Active
-
2005
- 2005-07-07 JP JP2007521508A patent/JP2008507034A/ja active Pending
- 2005-07-07 KR KR1020077003498A patent/KR100862124B1/ko active IP Right Grant
- 2005-07-07 CN CN2005800298490A patent/CN101014933B/zh not_active Expired - Fee Related
- 2005-07-07 WO PCT/US2005/024164 patent/WO2006017135A2/en active Application Filing
- 2005-07-12 TW TW094123642A patent/TWI441021B/zh active
-
2006
- 2006-11-01 US US11/555,649 patent/US7834881B2/en active Active
-
2011
- 2011-07-12 JP JP2011154233A patent/JP5422614B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2011238271A (ja) | 2011-11-24 |
US7834881B2 (en) | 2010-11-16 |
US20060012603A1 (en) | 2006-01-19 |
JP2008507034A (ja) | 2008-03-06 |
US20080109611A1 (en) | 2008-05-08 |
KR100862124B1 (ko) | 2008-10-09 |
KR20070030327A (ko) | 2007-03-15 |
WO2006017135A2 (en) | 2006-02-16 |
WO2006017135A3 (en) | 2006-10-05 |
TW200613980A (en) | 2006-05-01 |
CN101014933B (zh) | 2011-07-27 |
CN101014933A (zh) | 2007-08-08 |
TWI441021B (zh) | 2014-06-11 |
US7339592B2 (en) | 2008-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5422614B2 (ja) | 低ポート数メモリーを用いたマルチポートメモリーのシミュレート | |
US7634621B1 (en) | Register file allocation | |
US7533237B1 (en) | Off-chip memory allocation for a unified shader | |
US7852346B1 (en) | Programmable graphics processor for generalized texturing | |
US7038685B1 (en) | Programmable graphics processor for multithreaded execution of programs | |
TWI423162B (zh) | 在繪圖處理單元中處理資料的無死結管線化方法與處理器群組 | |
US10217184B2 (en) | Programmable graphics processor for multithreaded execution of programs | |
US10255228B2 (en) | System and method for performing shaped memory access operations | |
US8407443B1 (en) | Off-chip out of order memory allocation for a unified shader | |
US9069609B2 (en) | Scheduling and execution of compute tasks | |
BRPI0807951B1 (pt) | Processador de multimídia multi-encadeado sob demanda | |
US9304775B1 (en) | Dispatching of instructions for execution by heterogeneous processing engines | |
US8441495B1 (en) | Compression tag state interlock | |
US8578387B1 (en) | Dynamic load balancing of instructions for execution by heterogeneous processing engines | |
US9715413B2 (en) | Execution state analysis for assigning tasks to streaming multiprocessors | |
US8405665B2 (en) | Programmable graphics processor for multithreaded execution of programs | |
US8860737B2 (en) | Programmable graphics processor for multithreaded execution of programs | |
US20110066813A1 (en) | Method And System For Local Data Sharing | |
CN112559403A (zh) | 一种处理器及其中的中断控制器 | |
US20240272791A1 (en) | Automatic Data Layout for Operation Chains | |
CN117891607A (zh) | 一种跨层级资源共享方法、装置、设备和存储介质 | |
CN117667210A (zh) | 指令控制装置、方法、处理器、芯片和板卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110818 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130319 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130619 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130624 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130704 |
|
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: 20131029 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131125 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5422614 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 |