KR960038602A - 파이프라인 처리기 - Google Patents
파이프라인 처리기 Download PDFInfo
- Publication number
- KR960038602A KR960038602A KR1019960010897A KR19960010897A KR960038602A KR 960038602 A KR960038602 A KR 960038602A KR 1019960010897 A KR1019960010897 A KR 1019960010897A KR 19960010897 A KR19960010897 A KR 19960010897A KR 960038602 A KR960038602 A KR 960038602A
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- counter
- address
- branch instruction
- command
- Prior art date
Links
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 238000000034 method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
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
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
본 발명에 따라, 파이프라인 처리기는 제어 흐름이 변화되기 전에 예측 브랜치 명령어 주어진 후 계속해서 실행되는 다수의 적어도 하나의 명령을 한정하는 예측 브랜치 명령을 실행하기 위해 제공된다. 상기 파이프라인 처리기는 이동될 명령의 어드레스를 유지하는 프로그램 카운터와, 상기 프로그램 카운터에 의해 유지된 어드레스에 대응하는 명령을 출력하는 명령 메모리와, 상기 명령 메모리로 부터 출력된 명령을 이동하고 유지하는 명령 래지스터와, 상기 명령 래지스터에 의해 유지된 명령을 디코딩하는 명령 디코딩부를 구비하며, 그에 따라 상기 프로그램 카운터 증가에 동기하여 증가되는 카운터값을 유지하고 소정 임계값과 비교하는 카운터부와, 상기 프로그램 카운터에 의해 유지된 어드레스를 증가시키고 순차 명령 어드레스로서 증가된 어드레스를 제공하는 가산기와, 상기 예측 브랜치 명령의 브랜치 타겟 어드레스를 제공하는 브랜치 타겟 어드레스 래지스터와, 순차 명령 어드레스와 상기 카운터부에 의해 얻어진 비교 결과에 따라 상기 예측 브랜치 명령의 브랜치 타겟 어드레스중 하나를 선택하는 선택기를 구비한다.
Description
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명에 따른 파이프라인 처리기(100)용 구성을 도시하는 블럭 다이어그램, 제2도는 파이프라인 처리기(100)에 사용된 브랜치 명령용 포맷을 도시하는 포맷도, 제3도는 카운터부(4)용 구성을 도시하는 블럭 다이어그램, 제4A도는 제어 신호 발생부(38)용 구성을 도시하는 블럭 다이어그램, 제4B도는 제어 신호 발생부(38)에서 신호 파형을 도시하는 파형도.
Claims (8)
- 제어 흐름이 변화되기전 예측 브랜치 명령이 주어진 후 계속해서 실행될 다수의 적어도 하나의 명령을 한정하는 예측 브랜치 명령을 실행하는 파이프라인 처리기에 있어서, 이동될 명령의 어드레스를 유지하는 프로그램 카운터와, 상기 프로그램 카운터에 의해 유지된 어드레스에 대응하는 명령을 출력하는 명령 메모리와, 상기 명령 메모리로 부터 출력되는 명령을 이동하여 유지하는 명령 래지스터와, 상기 명령 래지스터에 의해 유지된 명령을 디코딩하는 명령 디코딩을 구비하며, 그에 따라 상기 명령이 예측 브랜치 명령인지 아닌지를 판단하며, 상기 예측 브랜치 명령에 의해 한정된 번호로 초기화되고 상기 프로그램 카운터의 증가와 동기하여 감소된 카운터 값을 유지하여 소정의 임계값과 비교하는 카운터부와, 상기 프로그램 카운터에 의해 유지된 어드레스를 증가시켜 순차 명령 어드레스로서 증가된 어드레스를 제공하는 가산기와, 상기 예측 브랜치 명령의 브랜치 타겟 어드레스를 제공하는 브랜치 타겟 어드레스와, 순차 명령 어드레스와 상기 카운터 부에 의해 얻어진 비교 결과에 따른 예측 브랜치 명령의 브랜치 타겟 어드레스 중 하나를 선택하는 선택기를 구비하는 것을 특징으로 하는 파이프라인 처리기.
- 제1항에 있어서, 상기 예측 브랜치 명령은 명령 종류를 식별하는 오피코드를 기억하는 영역과, 브랜치 타겟 어드레스를 지정하는 영역과, 제어 흐름이 변화되기 전에 예측 브랜치 명령이 주어진 후 계속해서 실행될 적어도 하나의 명령 번호를 기억하는 영역을 구비하는 것을 특징으로 하는 파이프라인 처리기.
- 제1항에 있어서, 상기 소정의 임계값은 하나의 명령을 이동하는데 요구된 다수의 싸이클과 동일한 것을 특징으로 하는 파이프라인 처리기.
- 제1항에 있어서, 카운터 값이 소정 임계값과 동일한 경우, 상기 카운터 상기 예측 브랜치 명령의 브랜치 타겟 어드레스를 선택하는 선택신호를 선택기에 출력하는 것을 특징으로 하는 파이프라인 처리기.
- 제1항에 있어서, 상기 예측 브랜치 명령에 의해 한정된 번호가 소정의 임계값 보다 작은 경우에, 카운터 부는 예측 브랜치 명령의 브랜치 타겟 어드레스를 선택하는 선택 신호를 선택기에 출력하는 것을 특징으로 하는 파이프라인 처리기.
- 제1항에 있어서, 상기 예측 브랜치 명령에 의해 한정된 번호가 소정 임계값 보다 작은 경우, 상기 카운터 부는 명령 래지스터에 유지된 명령 삭제하는 삭제 신호를 명령 래지스터에 출력하는 것을 특징으로 하는 파이프라인 처리기.
- 제1항에 있어서, 상기 제어 흐름이 예측 브랜치 명령으로 변화되는지 아닌지를 판단하는 상태 판단부를 더 구비하며, 상기 카운터 값이 소정 값에 도달할때, 상기 카운터부는 제어 흐름이 예측 브랜치 명령으로 변화되는지 아닌지를 판단하는 타이밍에서 한정하는 신호를 상태 판단부에 출력하는 것을 특징으로 하는 파이프라인 처리기.
- 제7항에 있어서, 제어 흐름이 예측 브랜치 명령으로 변화되는지 아닌지를 판단하는 상태 판단부의 경우에, 상기 상태 판단부는 명령 래지스터에 의해 유지된 명령을 삭제하는 신호를 명령 래지스터에 출력하며 명령 디코딩부에 의해 디코드될 명령을 삭제하는 신호를 명령 디코딩 부에 출력하는 것을 특징으로 하는 파이프라인 처리기.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP95-86844 | 1995-04-12 | ||
JP8684495 | 1995-04-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960038602A true KR960038602A (ko) | 1996-11-21 |
KR100233220B1 KR100233220B1 (ko) | 1999-12-01 |
Family
ID=13898127
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960010897A KR100233220B1 (ko) | 1995-04-12 | 1996-04-12 | 파이프라인 처리기 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5724563A (ko) |
KR (1) | KR100233220B1 (ko) |
TW (1) | TW360852B (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170053B1 (en) * | 1996-06-27 | 2001-01-02 | Texas Instruments Incorporated | Microprocessor with circuits, systems and methods for responding to branch instructions based on history of prediction accuracy |
JPH1185515A (ja) * | 1997-09-10 | 1999-03-30 | Ricoh Co Ltd | マイクロプロセッサ |
US6016555A (en) * | 1997-11-19 | 2000-01-18 | Texas Instruments Incorporated | Non-intrusive software breakpoints in a processor instruction execution pipeline |
US6334184B1 (en) * | 1998-03-24 | 2001-12-25 | International Business Machines Corporation | Processor and method of fetching an instruction that select one of a plurality of decoded fetch addresses generated in parallel to form a memory request |
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US7178138B2 (en) * | 2001-01-24 | 2007-02-13 | Texas Instruments Incorporated | Method and tool for verification of algorithms ported from one instruction set architecture to another |
ATE432499T1 (de) * | 2001-06-29 | 2009-06-15 | Texas Instruments Inc | Verfahren zur verbesserung der sichtbarkeit von berechnung der effektiven adressen in pipelinearchitektur |
US7487505B2 (en) * | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
US6868476B2 (en) | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
US7216204B2 (en) | 2001-08-27 | 2007-05-08 | Intel Corporation | Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment |
US7225281B2 (en) * | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
US7610451B2 (en) * | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
US7337275B2 (en) * | 2002-08-13 | 2008-02-26 | Intel Corporation | Free list and ring data structure management |
US7634640B2 (en) * | 2002-08-30 | 2009-12-15 | Infineon Technologies Ag | Data processing apparatus having program counter sensor |
JP2004206389A (ja) * | 2002-12-25 | 2004-07-22 | Denso Corp | Risc型cpu,コンパイラ,マイクロコンピュータ及び補助演算装置 |
US6941438B2 (en) | 2003-01-10 | 2005-09-06 | Intel Corporation | Memory interleaving |
US7454585B2 (en) * | 2005-12-22 | 2008-11-18 | International Business Machines Corporation | Efficient and flexible memory copy operation |
US8966228B2 (en) * | 2009-03-20 | 2015-02-24 | Arm Limited | Instruction fetching following changes in program flow |
JP2011209905A (ja) * | 2010-03-29 | 2011-10-20 | Sony Corp | 命令フェッチ装置、プロセッサ、および、プログラムカウンタ加算制御方法 |
US9535701B2 (en) * | 2014-01-29 | 2017-01-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient use of branch delay slots and branch prediction in pipelined computer architectures |
US9430245B2 (en) | 2014-03-28 | 2016-08-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient branch predictor history recovery in pipelined computer architectures employing branch prediction and branch delay slots of variable size |
GB2548604B (en) * | 2016-03-23 | 2018-03-21 | Advanced Risc Mach Ltd | Branch instruction |
US10936318B2 (en) * | 2018-11-14 | 2021-03-02 | International Business Machines Corporation | Tagged indirect branch predictor (TIP) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05108345A (ja) * | 1991-10-16 | 1993-04-30 | Nec Corp | 分岐命令処理装置 |
-
1996
- 1996-04-06 TW TW085104015A patent/TW360852B/zh active
- 1996-04-08 US US08/629,216 patent/US5724563A/en not_active Expired - Lifetime
- 1996-04-12 KR KR1019960010897A patent/KR100233220B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW360852B (en) | 1999-06-11 |
US5724563A (en) | 1998-03-03 |
KR100233220B1 (ko) | 1999-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960038602A (ko) | 파이프라인 처리기 | |
KR920001319A (ko) | 처리기 및 처리기의 처리방법 | |
KR870004366A (ko) | 데이터 처리 시스템 | |
KR870000643A (ko) | 쌍방향성 분기 예상 및 최적화방법 및 장치 | |
KR920003153A (ko) | 2개의 명령을 병렬디코드할 수 있는 마이크로프로세서 | |
KR900010553A (ko) | 분기명령 및 비교명령의 한편 또는 양편의 실행클록수를 영으로 하는 데이터처리장치 | |
KR930018368A (ko) | 롬(rom) 용량을 저감한 데이타 프로세서 | |
KR950003974A (ko) | 정보 처리 장치 | |
KR930002935A (ko) | 정보 처리 장치 | |
KR910018872A (ko) | 프로세스 제어방식 및 제어용 콘틀롤러 | |
KR970076274A (ko) | 마이크로컴퓨터 | |
US6308263B1 (en) | Pipeline processing apparatus for reducing delays in the performance of processing operations | |
US6182211B1 (en) | Conditional branch control method | |
KR900010552A (ko) | 명령을 페치(fetch)하기 위한 제어 시스템 | |
KR970012141A (ko) | 파이프라인 처리를 수행하는 데이터 처리 장치 | |
KR940000960A (ko) | 마이크로프로세서 | |
KR950025532A (ko) | 연산 처리 장치 | |
KR950033818A (ko) | 분기 목표 어드레스 캐쉬를 구비한 데이타 프로세서 및 그 동작 방법 | |
KR100287891B1 (ko) | 테스트 서브루틴 처리장치 및 처리방법 | |
KR100654477B1 (ko) | 프로세서 동작 방법 | |
KR950007937B1 (ko) | 피엘씨 게이트 어레이의 내부 레지스터 운용회로 | |
US5524221A (en) | Next instruction pointer calculation system for a microcomputer | |
KR930004861A (ko) | 정보처리 시스템 | |
KR900002602B1 (ko) | 마이크로 프로그램 제어장치 | |
KR960029969A (ko) | 파이프라인 처리기능을 갖는 데이타프로세서 |
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: 20040823 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |