KR930008615A - 분기 명령 버퍼를 갖는 데이타 프로세서 - Google Patents
분기 명령 버퍼를 갖는 데이타 프로세서 Download PDFInfo
- Publication number
- KR930008615A KR930008615A KR1019920018637A KR920018637A KR930008615A KR 930008615 A KR930008615 A KR 930008615A KR 1019920018637 A KR1019920018637 A KR 1019920018637A KR 920018637 A KR920018637 A KR 920018637A KR 930008615 A KR930008615 A KR 930008615A
- Authority
- KR
- South Korea
- Prior art keywords
- buffer
- return
- address
- branch
- instruction
- Prior art date
Links
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
- 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
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- 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
-
- 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/30054—Unconditional branch instructions
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
Abstract
분기 명령을 실행하는 기능 및 명령을 프리페치하는 기능을 갖고, 명령 프리페치 기능이 분기 이력 정보와 결합되어 고속으로 분기 명령이 실행되는 데이타 프로세서로서, 리턴 어드레스가 서브루틴 콜명령의 어드레스에 의해 결정되어; 여러개의 서브루틴 콜 명령이 프로그램에 있을 때, 관련된 서브루틴에 라이트된 리턴 명령에 대해 리턴 어드레스를 유일하게 결정할 수 없는 것을 해소하기 위해서, (1)데이타 프로세서에 의해 한번 실행된 분기 명령의 어드레스를 나타내는 분기 이력 정보, 그의 분기 목표 어드레스 및 그의 종류를 저장하는 제1의 버퍼와 (2)서브루틴에서의 리턴을 위한 리턴 어드레스를 저장하는 제2의 버퍼를 포함하는 데이타 프로세서를 마련한다.
이러한 데이타 프로세서를 사용하는 것에 의해, 분기 처리, 특히 리턴 명령을 포함하는 무조건 분기 명령이 처리 속도가 증가된다.
Description
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명에 따른 1실시예의 마이크로프로세서의 전체 구조를 도시한 도면,
제2도는 제1도의 마이크로프로세서에 어떠한 분기 동작도 존재하지 않을 때의 파이프라인 처리 흐름을 도시한 도면,
제3도는 제1도의 마이크로프로세서의 분기 명령 버퍼 BW(102)에 미스히트가 발생할 때의 파이프라인 처리 흐름을 도시한 도면,
제4도는 제1의 마이크로 프로세서의 분기 명령 버퍼 BW(102)에 히트가 발생할 때의 파이프라인 처리 흐름을 개략적으로 도시한 도면.
Claims (5)
- 명령을 프리페치하는 프리페치 큐, 상기 프리페치 큐에서의 명령을 디코드하는 명령 디코더, 상기 명령 디코더에서의 출력에 의해 제어되는 산술 논리 유니트, 분기 명령의 어드레스, 분기 목표 어드레스 및 그의 종류를 나타내는 정보를 저장하는 제1의 버퍼, 서브루틴에서의 리턴을 위한 리턴 어드레스를 저장하는 제2의 버퍼와 프리페치 어드레스에 따라 제1의 버퍼에서 리드된 분기 명령의 어드레스와 프리페치 어드레스를 비교하는 비교기를 포함하며, 상기 비교기에 의해 어드레스사이에서 일치가 검출될 때, 일치를 검출하기 위한 명령이 서브루틴에서의 리턴을 위한 리턴 명령 이외의 분기 명령인 것을, 상기 프리페치 어드레스에 따라 상기 제1의 버퍼에서 리드되 정보가 나타내면, 분기 목표 어드레스는 상기 제1의 버퍼에서 리드되고, 상기 비교기에 의해 어드레스사이에서 일치가 검출될 때, 일치를 검출하기 위한 명령이 서브루틴에서의 리턴을 위한 리턴 명령인 것을, 상기 프리페치어드레스에 따라 상기 제1의 버퍼에서 리드된 정보가 나타내면, 상기 리턴 어드레스는 상기 제2의 버퍼에서 리드되는 데이타 프로세서.
- 특허청구의 범위 제1항에 있어서, 상기 프리페치 큐, 상기 명령 디코더, 상기 산술 논리 유니트, 상기 비교기, 상기 제1의 버퍼 및 상기 제2의 버퍼는 마이크로프로세서의 반도체 칩상에 형성되는 데이타 프로세서.
- 특허청구의 범위 제2항에 있어서, 상기 프리페치 큐, 상기 명령 디코더 및 상기 산출논리 유니트는 파이프라인 동작을 실행하는 데이타 프로세서.
- 특허청구의 범위 제3항에 있어서, 상기 제2의 버퍼는 라스트 인 퍼스트 아웃 버퍼인 데이타 프로세서.
- ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28103091A JP3182438B2 (ja) | 1991-10-28 | 1991-10-28 | データプロセッサ |
JP91-281030 | 1991-10-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR930008615A true KR930008615A (ko) | 1993-05-21 |
KR100259306B1 KR100259306B1 (ko) | 2000-06-15 |
Family
ID=17633315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019920018637A KR100259306B1 (ko) | 1991-10-28 | 1992-10-10 | 분기 명령 버퍼를 갖는 데이타 프로세서 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5454087A (ko) |
JP (1) | JP3182438B2 (ko) |
KR (1) | KR100259306B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100465250B1 (ko) * | 2001-05-11 | 2005-01-13 | 미쓰비시덴키 가부시키가이샤 | 마이크로프로세서 |
KR100496271B1 (ko) * | 1997-06-18 | 2005-09-08 | 삼성에스디아이 주식회사 | 보호수지막용조성물및이를이용한음극선관용형광막의제조방법 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623614A (en) * | 1993-09-17 | 1997-04-22 | Advanced Micro Devices, Inc. | Branch prediction cache with multiple entries for returns having multiple callers |
US5896528A (en) * | 1995-03-03 | 1999-04-20 | Fujitsu Limited | Superscalar processor with multiple register windows and speculative return address generation |
US5968169A (en) * | 1995-06-07 | 1999-10-19 | Advanced Micro Devices, Inc. | Superscalar microprocessor stack structure for judging validity of predicted subroutine return addresses |
US5898864A (en) * | 1995-09-25 | 1999-04-27 | International Business Machines Corporation | Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors |
US5881278A (en) * | 1995-10-30 | 1999-03-09 | Advanced Micro Devices, Inc. | Return address prediction system which adjusts the contents of return stack storage to enable continued prediction after a mispredicted branch |
US5864707A (en) * | 1995-12-11 | 1999-01-26 | Advanced Micro Devices, Inc. | Superscalar microprocessor configured to predict return addresses from a return stack storage |
US5835947A (en) * | 1996-05-31 | 1998-11-10 | Sun Microsystems, Inc. | Central processing unit and method for improving instruction cache miss latencies using an instruction buffer which conditionally stores additional addresses |
US20010029582A1 (en) * | 1999-05-17 | 2001-10-11 | Goodman Daniel Isaac | Method and system for copy protection of data content |
JP3513038B2 (ja) | 1998-12-10 | 2004-03-31 | 富士通株式会社 | 命令フェッチ制御装置 |
US6954849B2 (en) * | 2002-02-21 | 2005-10-11 | Intel Corporation | Method and system to use and maintain a return buffer |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
JP2006040173A (ja) | 2004-07-29 | 2006-02-09 | Fujitsu Ltd | 分岐予測装置および分岐予測方法 |
JP2007041837A (ja) * | 2005-08-03 | 2007-02-15 | Nec Electronics Corp | 命令プリフェッチ装置及び命令プリフェッチ方法 |
US7472264B2 (en) * | 2006-06-30 | 2008-12-30 | Sun Microsystems, Inc. | Predicting a jump target based on a program counter and state information for a process |
US8635406B2 (en) * | 2012-03-08 | 2014-01-21 | Arm Limited | Data processing apparatus and method for providing target address information for branch instructions |
US11099849B2 (en) * | 2016-09-01 | 2021-08-24 | Oracle International Corporation | Method for reducing fetch cycles for return-type instructions |
US11481221B2 (en) * | 2018-05-02 | 2022-10-25 | Micron Technology, Inc. | Separate branch target buffers for different levels of calls |
GB2577051B (en) * | 2018-09-11 | 2021-03-03 | Advanced Risc Mach Ltd | Branch prediction using branch target buffer |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3382350D1 (de) * | 1982-11-17 | 1991-08-29 | Nec Corp | Anordnung zum vorabholen von befehlen mit vorhersage einer verzweigungszieladresse. |
US4488227A (en) * | 1982-12-03 | 1984-12-11 | Honeywell Information Systems Inc. | Program counter stacking method and apparatus for nested subroutines and interrupts |
US4884244A (en) * | 1985-01-28 | 1989-11-28 | Data General Corporation | Method of addressing a computer memory |
US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
US4831517A (en) * | 1986-10-10 | 1989-05-16 | International Business Machines Corporation | Branch and return on address instruction and methods and apparatus for implementing same in a digital data processing system |
JPH01240931A (ja) * | 1988-03-23 | 1989-09-26 | Hitachi Ltd | データ処理装置 |
US5101341A (en) * | 1988-08-25 | 1992-03-31 | Edgcore Technology, Inc. | Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO |
JPH0769811B2 (ja) * | 1988-12-21 | 1995-07-31 | 松下電器産業株式会社 | データ処理装置 |
US5276882A (en) * | 1990-07-27 | 1994-01-04 | International Business Machines Corp. | Subroutine return through branch history table |
US5313634A (en) * | 1992-07-28 | 1994-05-17 | International Business Machines Corporation | Computer system branch prediction of subroutine returns |
-
1991
- 1991-10-28 JP JP28103091A patent/JP3182438B2/ja not_active Expired - Lifetime
-
1992
- 1992-10-10 KR KR1019920018637A patent/KR100259306B1/ko not_active IP Right Cessation
- 1992-10-23 US US07/965,441 patent/US5454087A/en not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100496271B1 (ko) * | 1997-06-18 | 2005-09-08 | 삼성에스디아이 주식회사 | 보호수지막용조성물및이를이용한음극선관용형광막의제조방법 |
KR100465250B1 (ko) * | 2001-05-11 | 2005-01-13 | 미쓰비시덴키 가부시키가이샤 | 마이크로프로세서 |
Also Published As
Publication number | Publication date |
---|---|
JPH05120013A (ja) | 1993-05-18 |
KR100259306B1 (ko) | 2000-06-15 |
US5454087A (en) | 1995-09-26 |
JP3182438B2 (ja) | 2001-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR930008615A (ko) | 분기 명령 버퍼를 갖는 데이타 프로세서 | |
JP3805339B2 (ja) | 分岐目標を予測する方法、プロセッサ、及びコンパイラ | |
KR960035259A (ko) | 감소된 판독 및/또는 기록 포트 대역폭을 갖는 레지스터 파일을 포함하는 컴퓨터 프로세서 | |
KR20010014095A (ko) | 어드레스되는 구성요소의 스펙큘레이션의 실패를 검출하기위한 메모리 제어기 | |
JPS6393038A (ja) | 計算機 | |
KR910014804A (ko) | 명령큐 충전 방법 | |
KR910003496A (ko) | 캐시 미스의 강제발생에 의한 다중 레벨 캐시 시스템의 성능 증가방법 | |
KR970005021A (ko) | 2개의 명령을 동시에 실행할 수 있는 데이타프로세서 | |
JP5579694B2 (ja) | 復帰スタックを管理する方法および装置 | |
US20090119486A1 (en) | Method and a System for Accelerating Procedure Return Sequences | |
JPS6356731A (ja) | デ−タ処理装置 | |
US5978905A (en) | Program translating apparatus and a processor which achieve high-speed execution of subroutine branch instructions | |
US6735687B1 (en) | Multithreaded microprocessor with asymmetrical central processing units | |
US6654873B2 (en) | Processor apparatus and integrated circuit employing prefetching and predecoding | |
KR900016865A (ko) | 파이프라인방식의 분기명령제어장치 | |
US6243805B1 (en) | Programming paradigm and microprocessor architecture for exact branch targeting | |
KR900018808A (ko) | 파이프라인방식(pipeline 方式)의 마이크로프로세서 | |
KR910005155A (ko) | 마이크로 프로세서 | |
KR19990003937A (ko) | 프리페치 장치 | |
US5421026A (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
EP0156307A2 (en) | Pipelined processor having dual cache memories | |
KR960011669A (ko) | 중앙처리장치 | |
JPH0342723A (ja) | データ処理装置 | |
JPH0462637A (ja) | マイクロプロセッサ | |
JP3647930B2 (ja) | 動的ハイパースカラ・プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20030310 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |