KR20080008683A - 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 - Google Patents
멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 Download PDFInfo
- Publication number
- KR20080008683A KR20080008683A KR1020060068216A KR20060068216A KR20080008683A KR 20080008683 A KR20080008683 A KR 20080008683A KR 1020060068216 A KR1020060068216 A KR 1020060068216A KR 20060068216 A KR20060068216 A KR 20060068216A KR 20080008683 A KR20080008683 A KR 20080008683A
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- thread
- source operand
- value
- threads
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000003672 processing method Methods 0.000 claims description 9
- 239000000872 buffer Substances 0.000 abstract description 38
- 238000010586 diagram Methods 0.000 description 12
- 230000001419 dependent effect Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 2
- 101000850683 Rattus norvegicus Taste receptor type 2 member 123 Proteins 0.000 description 1
- 102100024845 Taste receptor type 2 member 1 Human genes 0.000 description 1
- 101710129400 Taste receptor type 2 member 1 Proteins 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
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
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- 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
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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
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)
- Advance Control (AREA)
Abstract
Description
Claims (15)
- (a) 적어도 하나 이상의 명령어를 해독하고, 상기 해독 결과에 기초하여 상기 명령어의 스레드를 독출하는 단계; 및(b) 상기 해독 결과에 기초하여 복수의 파이프라인 스테이지들 각각에서 상기 독출된 스레드를 포함하는 복수의 스레드들 각각에 대한 소정 연산을 비순차적(out-of-order)으로 실행하는 단계를 포함하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 제 1 항에 있어서,상기 복수의 스레드들은 상기 명령어의 스레드 및 상기 명령어가 아닌 다른 명령어의 스레드를 포함하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 제 1 항에 있어서,상기 (b) 단계는 상기 복수의 스레드들 중 상기 파이프라인 스테이지들 중 어느 하나에서 아직 처리되지 않은 다른 스레드에 의존(dependent)하지 않는 스레드에 대한 상기 소정 연산을 우선적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 제 3 항에 있어서,상기 (b) 단계는 상기 스레드에 해당하는 소스 오퍼랜드(source operand)가 상기 명령어가 아닌 다른 명령어의 대상 오퍼랜드(destination operand)에 의해 변경되지 않음을 나타내는 경우에 상기 소스 오퍼랜드에 대한 상기 소정 연산을 실행함으로써 상기 다른 스레드에 의존하지 않는 스레드에 대한 상기 소정 연상을 우선적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 제 1 항에 있어서,상기 (a) 단계는 어느 하나의 예약 스테이션에 상기 독출된 스레드에 해당하는 소스 오퍼랜드와 상기 소스 오퍼랜드가 상기 소정 연상의 실행에 대한 준비가 완료되었는지를 나타내는 값을 저장하고,상기 (b) 단계는 상기 예약 스테이션을 포함하는 적어도 하나 이상의 예약 스테이션을 순회하면서 상기 값을 검사하고, 상기 검사 결과에 기초하여 상기 복수의 스레드들 각각에 대한 소정 연산을 비순차적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 제 5 항에 있어서,상기 적어도 하나 이상의 예약 스테이션이 복수 개인 경우에 상기 예약 스테이션 이외에 상기 소스 오퍼랜드가 포함되는 스레드가 아닌 다른 스레드에 해당하는 소스 오퍼랜드가 저장된 예약 스테이션을 포함하는 것을 특징으로 하는 멀티스 레딩/비순차 병합 처리 방법.
- 제 5 항에 있어서,상기 값은 상기 예약 스테이션에 저장된 소스 오퍼랜드의 값이 상기 명령어가 아닌 다른 명령어의 대상 오퍼랜드의 값에 의해 변경되는지를 나타내는 값인 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 제 1 항 내지 제 7 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
- 적어도 하나 이상의 명령어를 해독하고, 상기 해독 결과에 기초하여 상기 명령어의 스레드를 독출하는 해독부; 및상기 해독 결과에 기초하여 복수의 파이프라인 스테이지들 각각에서 상기 독출된 스레드를 포함하는 복수의 스레드들 각각에 대한 소정 연산을 비순차적으로 실행하는 연산부를 포함하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 장치.
- 제 9 항에 있어서,상기 복수의 스레드들은 상기 명령어의 스레드 및 상기 명령어가 아닌 다른 명령어의 스레드를 포함하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 장 치.
- 제 1 항에 있어서,상기 연산부는 상기 복수의 스레드들 중 상기 파이프라인 스테이지들 중 어느 하나에서 아직 처리되지 않은 다른 스레드에 의존하지 않는 스레드에 대한 상기 소정 연산을 우선적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 장치.
- 제 11 항에 있어서,상기 연산부는 상기 스레드에 해당하는 소스 오퍼랜드가 상기 명령어가 아닌 다른 명령어의 대상 오퍼랜드에 의해 변경되지 않음을 나타내는 경우에 상기 소스 오퍼랜드에 대한 상기 소정 연산을 실행함으로써 상기 다른 스레드에 의존하지 않는 스레드에 대한 상기 소정 연상을 우선적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 장치.
- 제 9 항에 있어서,상기 해독부는 어느 하나의 예약 스테이션에 상기 독출된 스레드에 해당하는 소스 오퍼랜드와 상기 소스 오퍼랜드가 상기 소정 연상의 실행에 대한 준비가 완료되었는지를 나타내는 값을 저장하고,상기 연산부는 상기 예약 스테이션을 포함하는 적어도 하나 이상의 예약 스 테이션을 순회하면서 상기 값을 검사하고, 상기 검사 결과에 기초하여 상기 복수의 스레드들 각각에 대한 소정 연산을 비순차적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 장치.
- 제 13 항에 있어서,상기 적어도 하나 이상의 예약 스테이션이 복수 개인 경우에 상기 예약 스테이션 이외에 상기 소스 오퍼랜드가 포함되는 스레드가 아닌 다른 스레드에 해당하는 소스 오퍼랜드가 저장된 예약 스테이션을 포함하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 장치.
- 제 13 항에 있어서,상기 값은 상기 예약 스테이션에 저장된 소스 오퍼랜드의 값이 상기 명령어가 아닌 다른 명령어의 대상 오퍼랜드의 값에 의해 변경되는지를 나타내는 값인 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060068216A KR100837400B1 (ko) | 2006-07-20 | 2006-07-20 | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 |
US11/806,981 US20080022072A1 (en) | 2006-07-20 | 2007-06-05 | System, method and medium processing data according to merged multi-threading and out-of-order scheme |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060068216A KR100837400B1 (ko) | 2006-07-20 | 2006-07-20 | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080008683A true KR20080008683A (ko) | 2008-01-24 |
KR100837400B1 KR100837400B1 (ko) | 2008-06-12 |
Family
ID=38972729
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060068216A KR100837400B1 (ko) | 2006-07-20 | 2006-07-20 | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080022072A1 (ko) |
KR (1) | KR100837400B1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010120420A1 (en) * | 2009-04-15 | 2010-10-21 | Northwestern University | Delivery of oligonucleotide-functionalized nanoparticles |
KR101572879B1 (ko) | 2009-04-29 | 2015-12-01 | 삼성전자주식회사 | 병렬 응용 프로그램을 동적으로 병렬처리 하는 시스템 및 방법 |
US10353708B2 (en) | 2016-09-23 | 2019-07-16 | Advanced Micro Devices, Inc. | Strided loading of non-sequential memory locations by skipping memory locations between consecutive loads |
CN109032668B (zh) * | 2017-06-09 | 2023-09-19 | 超威半导体公司 | 具有高带宽和低功率向量寄存器堆的流处理器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623608A (en) | 1994-11-14 | 1997-04-22 | International Business Machines Corporation | Method and apparatus for adaptive circular predictive buffer management |
US6073159A (en) * | 1996-12-31 | 2000-06-06 | Compaq Computer Corporation | Thread properties attribute vector based thread selection in multithreading processor |
US6314511B2 (en) * | 1997-04-03 | 2001-11-06 | University Of Washington | Mechanism for freeing registers on processors that perform dynamic out-of-order execution of instructions using renaming registers |
KR20030042289A (ko) * | 2001-11-22 | 2003-05-28 | 이용석 | 레지스터 리네이밍 방법을 사용하는 비순차적 명령어 이슈컴퓨터 시스템 |
JP2004234123A (ja) * | 2003-01-28 | 2004-08-19 | Fujitsu Ltd | マルチスレッドコンピュータ |
US7000233B2 (en) | 2003-04-21 | 2006-02-14 | International Business Machines Corporation | Simultaneous multithread processor with result data delay path to adjust pipeline length for input to respective thread |
JP2006529043A (ja) | 2003-05-09 | 2006-12-28 | サンドブリッジ テクノロジーズ インコーポレーテッド | 飽和あり、または飽和なしで、オペランドの積和を実行するプロセッサ簡約ユニット |
US7239322B2 (en) * | 2003-09-29 | 2007-07-03 | Ati Technologies Inc | Multi-thread graphic processing system |
US7948490B2 (en) * | 2003-10-22 | 2011-05-24 | Microsoft Corporation | Hardware-accelerated computation of radiance transfer coefficients in computer graphics |
US7310722B2 (en) * | 2003-12-18 | 2007-12-18 | Nvidia Corporation | Across-thread out of order instruction dispatch in a multithreaded graphics processor |
US7237094B2 (en) * | 2004-10-14 | 2007-06-26 | International Business Machines Corporation | Instruction group formation and mechanism for SMT dispatch |
US7434032B1 (en) * | 2005-12-13 | 2008-10-07 | Nvidia Corporation | Tracking register usage during multithreaded processing using a scoreboard having separate memory regions and storing sequential register size indicators |
-
2006
- 2006-07-20 KR KR1020060068216A patent/KR100837400B1/ko active IP Right Grant
-
2007
- 2007-06-05 US US11/806,981 patent/US20080022072A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20080022072A1 (en) | 2008-01-24 |
KR100837400B1 (ko) | 2008-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027769B (zh) | 使用寄存器访问指令发起指令块执行 | |
US9946548B2 (en) | Age-based management of instruction blocks in a processor instruction window | |
TWI514267B (zh) | 用於多股亂序處理器中之指令排程的方法及裝置與系統 | |
US9811340B2 (en) | Method and apparatus for reconstructing real program order of instructions in multi-strand out-of-order processor | |
US20170083320A1 (en) | Predicated read instructions | |
EP3314406B1 (en) | Allocation of instruction blocks to a processor instruction window | |
US9952867B2 (en) | Mapping instruction blocks based on block size | |
JP2018519602A (ja) | 連続ブロックの並列実行を有するブロックベースアーキテクチャ | |
US10268519B2 (en) | Scheduling method and processing device for thread groups execution in a computing system | |
KR102256188B1 (ko) | 데이터 처리장치 및 벡터 오퍼랜드를 처리하는 방법 | |
JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
CN110825437B (zh) | 用于处理数据的方法和装置 | |
JP2016536665A (ja) | 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法 | |
US20150143083A1 (en) | Techniques for Increasing Vector Processing Utilization and Efficiency Through Vector Lane Predication Prediction | |
US11392386B2 (en) | Program counter (PC)-relative load and store addressing for fused instructions | |
JP7410186B2 (ja) | Gpuにおける明示的な個別マスクレジスタのマスク操作方法 | |
KR100837400B1 (ko) | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 | |
JP2004529405A (ja) | 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ | |
CN108027736B (zh) | 使用通过对物理寄存器预分配的乱序重命名的运行时代码并行化 | |
US11093246B2 (en) | Banked slice-target register file for wide dataflow execution in a microprocessor | |
US20190361705A1 (en) | Apparatus and method for storing source operands for operations | |
US20220075624A1 (en) | Alternate path for branch prediction redirect | |
JP2003223318A (ja) | キュープロセッサにおける投機実行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130522 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20140522 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20150522 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20160520 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20170518 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20180517 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20190520 Year of fee payment: 12 |