KR100837400B1 - 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 - Google Patents
멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 Download PDFInfo
- Publication number
- KR100837400B1 KR100837400B1 KR1020060068216A KR20060068216A KR100837400B1 KR 100837400 B1 KR100837400 B1 KR 100837400B1 KR 1020060068216 A KR1020060068216 A KR 1020060068216A KR 20060068216 A KR20060068216 A KR 20060068216A KR 100837400 B1 KR100837400 B1 KR 100837400B1
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- thread
- source operand
- value
- threads
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 70
- 238000003672 processing method Methods 0.000 claims abstract description 9
- 239000000872 buffer Substances 0.000 description 37
- 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, 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, 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/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, 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, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, 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, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
Abstract
Description
Claims (15)
- (a) 적어도 하나 이상의 명령어를 해독하고, 상기 해독 결과에 기초하여 상기 명령어의 스레드를 독출하는 단계; 및(b) 상기 해독 결과에 기초하여 복수의 파이프라인 스테이지들 각각에서 상기 독출된 스레드를 포함하는 복수의 스레드들 각각에 대한 소정 연산을 비순차적(out-of-order)으로 실행하는 단계를 포함하고,상기 (b) 단계는 상기 복수의 스레드들 중 상기 파이프라인 스테이지들 중 어느 하나에서 아직 처리되지 않은 다른 스레드에 의존(dependent)하지 않는 스레드에 대한 상기 소정 연산을 우선적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 제 1 항에 있어서,상기 복수의 스레드들은 상기 명령어의 스레드 및 상기 명령어가 아닌 다른 명령어의 스레드를 포함하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 삭제
- 제 1 항에 있어서,상기 (b) 단계는 상기 스레드에 해당하는 소스 오퍼랜드(source operand)가 상기 명령어가 아닌 다른 명령어의 대상 오퍼랜드(destination operand)에 의해 변경되지 않음을 나타내는 경우에 상기 소스 오퍼랜드에 대한 상기 소정 연산을 실행함으로써 상기 다른 스레드에 의존하지 않는 스레드에 대한 상기 소정 연상을 우선적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 제 1 항에 있어서,상기 (a) 단계는 어느 하나의 예약 스테이션에 상기 독출된 스레드에 해당하는 소스 오퍼랜드와 상기 소스 오퍼랜드가 상기 소정 연상의 실행에 대한 준비가 완료되었는지를 나타내는 값을 저장하고,상기 (b) 단계는 상기 예약 스테이션을 포함하는 적어도 하나 이상의 예약 스테이션을 순회하면서 상기 값을 검사하고, 상기 검사 결과에 기초하여 상기 복수의 스레드들 각각에 대한 소정 연산을 비순차적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 제 5 항에 있어서,상기 적어도 하나 이상의 예약 스테이션이 복수 개인 경우에 상기 예약 스테이션 이외에 상기 소스 오퍼랜드가 포함되는 스레드가 아닌 다른 스레드에 해당하는 소스 오퍼랜드가 저장된 예약 스테이션을 포함하는 것을 특징으로 하는 멀티스 레딩/비순차 병합 처리 방법.
- 제 5 항에 있어서,상기 값은 상기 예약 스테이션에 저장된 소스 오퍼랜드의 값이 상기 명령어가 아닌 다른 명령어의 대상 오퍼랜드의 값에 의해 변경되는지를 나타내는 값인 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 방법.
- 제 1 항, 제 2 항, 또는 제 4 항 내지 제 7 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
- 적어도 하나 이상의 명령어를 해독하고, 상기 해독 결과에 기초하여 상기 명령어의 스레드를 독출하는 해독부; 및상기 해독 결과에 기초하여 복수의 파이프라인 스테이지들 각각에서 상기 독출된 스레드를 포함하는 복수의 스레드들 각각에 대한 소정 연산을 비순차적으로 실행하는 연산부를 포함하고,상기 연산부는 상기 복수의 스레드들 중 상기 파이프라인 스테이지들 중 어느 하나에서 아직 처리되지 않은 다른 스레드에 의존하지 않는 스레드에 대한 상기 소정 연산을 우선적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 장치.
- 제 9 항에 있어서,상기 복수의 스레드들은 상기 명령어의 스레드 및 상기 명령어가 아닌 다른 명령어의 스레드를 포함하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 장 치.
- 삭제
- 제 9 항에 있어서,상기 연산부는 상기 스레드에 해당하는 소스 오퍼랜드가 상기 명령어가 아닌 다른 명령어의 대상 오퍼랜드에 의해 변경되지 않음을 나타내는 경우에 상기 소스 오퍼랜드에 대한 상기 소정 연산을 실행함으로써 상기 다른 스레드에 의존하지 않는 스레드에 대한 상기 소정 연상을 우선적으로 실행하는 것을 특징으로 하는 멀티스레딩/비순차 병합 처리 장치.
- 제 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 KR20080008683A (ko) | 2008-01-24 |
KR100837400B1 true 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 |
---|---|---|---|---|
KR20170072367A (ko) * | 2009-04-15 | 2017-06-26 | 노오쓰웨스턴 유니버시티 | 올리고뉴클레오티드 관능화된 나노입자의 전달 |
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 | 超威半导体公司 | 具有高带宽和低功率向量寄存器堆的流处理器 |
Citations (4)
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 |
KR20030042289A (ko) * | 2001-11-22 | 2003-05-28 | 이용석 | 레지스터 리네이밍 방법을 사용하는 비순차적 명령어 이슈컴퓨터 시스템 |
US20040210742A1 (en) | 2003-04-21 | 2004-10-21 | International Business Machines Corporation | Method and circuit for modifying pipeline length in a simultaneous multithread processor |
WO2004103056A2 (en) | 2003-05-09 | 2004-12-02 | Sandbridge Technologies, Inc. | Processor reduction unit for accumulation of multiple operands with or without saturation |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP2004234123A (ja) * | 2003-01-28 | 2004-08-19 | Fujitsu Ltd | マルチスレッドコンピュータ |
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
Patent Citations (4)
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 |
KR20030042289A (ko) * | 2001-11-22 | 2003-05-28 | 이용석 | 레지스터 리네이밍 방법을 사용하는 비순차적 명령어 이슈컴퓨터 시스템 |
US20040210742A1 (en) | 2003-04-21 | 2004-10-21 | International Business Machines Corporation | Method and circuit for modifying pipeline length in a simultaneous multithread processor |
WO2004103056A2 (en) | 2003-05-09 | 2004-12-02 | Sandbridge Technologies, Inc. | Processor reduction unit for accumulation of multiple operands with or without saturation |
Also Published As
Publication number | Publication date |
---|---|
KR20080008683A (ko) | 2008-01-24 |
US20080022072A1 (en) | 2008-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027769B (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 | |
JP2018519602A (ja) | 連続ブロックの並列実行を有するブロックベースアーキテクチャ | |
KR102256188B1 (ko) | 데이터 처리장치 및 벡터 오퍼랜드를 처리하는 방법 | |
JP2010532063A (ja) | 条件命令を無条件命令および選択命令へと拡張する方法およびシステム | |
JP2009053861A (ja) | プログラム実行制御装置 | |
TW201312460A (zh) | 用於多股亂序處理器中之指令排程的方法及裝置 | |
US10268519B2 (en) | Scheduling method and processing device for thread groups execution in a computing system | |
CA2985495A1 (en) | Mapping instruction blocks into instruction windows based on block size | |
JP2006313422A (ja) | 演算処理装置及びデータ転送処理の実行方法 | |
CN110825437B (zh) | 用于处理数据的方法和装置 | |
WO2020024759A1 (en) | System and method for store instruction fusion in a microprocessor | |
JP2016536665A (ja) | 推論的ベクトル演算の実行を制御するためのデータ処理装置及び方法 | |
JP7410186B2 (ja) | Gpuにおける明示的な個別マスクレジスタのマスク操作方法 | |
KR100837400B1 (ko) | 멀티스레딩/비순차 병합 기법에 따라 처리하는 방법 및장치 | |
US7844799B2 (en) | Method and system for pipeline reduction | |
JP2004529405A (ja) | 依存性を決定するためのコンテンツ・アドレス指定可能メモリを実装したスーパースケーラ・プロセッサ | |
US11392386B2 (en) | Program counter (PC)-relative load and store addressing for fused instructions | |
CN108027736B (zh) | 使用通过对物理寄存器预分配的乱序重命名的运行时代码并行化 | |
US11093246B2 (en) | Banked slice-target register file for wide dataflow execution in a microprocessor | |
US8601244B2 (en) | Apparatus and method for generating VLIW, and processor and method for processing VLIW | |
US10558462B2 (en) | Apparatus and method for storing source operands for operations | |
WO2016201699A1 (zh) | 指令处理方法及设备 | |
JP3915019B2 (ja) | Vliwプロセッサ、プログラム生成装置、および記録媒体 |
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 |