KR930008615A - 분기 명령 버퍼를 갖는 데이타 프로세서 - Google Patents

분기 명령 버퍼를 갖는 데이타 프로세서 Download PDF

Info

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
Application number
KR1019920018637A
Other languages
English (en)
Other versions
KR100259306B1 (ko
Inventor
스스무 나리따
후미오 아라까와
꾸니오 우찌야마
히로까즈 아오끼
Original Assignee
가나이 쯔또무
가부시끼가이샤 히다찌세이사꾸쇼
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 가나이 쯔또무, 가부시끼가이샤 히다찌세이사꾸쇼 filed Critical 가나이 쯔또무
Publication of KR930008615A publication Critical patent/KR930008615A/ko
Application granted granted Critical
Publication of KR100259306B1 publication Critical patent/KR100259306B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation 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. 명령을 프리페치하는 프리페치 큐, 상기 프리페치 큐에서의 명령을 디코드하는 명령 디코더, 상기 명령 디코더에서의 출력에 의해 제어되는 산술 논리 유니트, 분기 명령의 어드레스, 분기 목표 어드레스 및 그의 종류를 나타내는 정보를 저장하는 제1의 버퍼, 서브루틴에서의 리턴을 위한 리턴 어드레스를 저장하는 제2의 버퍼와 프리페치 어드레스에 따라 제1의 버퍼에서 리드된 분기 명령의 어드레스와 프리페치 어드레스를 비교하는 비교기를 포함하며, 상기 비교기에 의해 어드레스사이에서 일치가 검출될 때, 일치를 검출하기 위한 명령이 서브루틴에서의 리턴을 위한 리턴 명령 이외의 분기 명령인 것을, 상기 프리페치 어드레스에 따라 상기 제1의 버퍼에서 리드되 정보가 나타내면, 분기 목표 어드레스는 상기 제1의 버퍼에서 리드되고, 상기 비교기에 의해 어드레스사이에서 일치가 검출될 때, 일치를 검출하기 위한 명령이 서브루틴에서의 리턴을 위한 리턴 명령인 것을, 상기 프리페치어드레스에 따라 상기 제1의 버퍼에서 리드된 정보가 나타내면, 상기 리턴 어드레스는 상기 제2의 버퍼에서 리드되는 데이타 프로세서.
  2. 특허청구의 범위 제1항에 있어서, 상기 프리페치 큐, 상기 명령 디코더, 상기 산술 논리 유니트, 상기 비교기, 상기 제1의 버퍼 및 상기 제2의 버퍼는 마이크로프로세서의 반도체 칩상에 형성되는 데이타 프로세서.
  3. 특허청구의 범위 제2항에 있어서, 상기 프리페치 큐, 상기 명령 디코더 및 상기 산출논리 유니트는 파이프라인 동작을 실행하는 데이타 프로세서.
  4. 특허청구의 범위 제3항에 있어서, 상기 제2의 버퍼는 라스트 인 퍼스트 아웃 버퍼인 데이타 프로세서.
  5. ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
KR1019920018637A 1991-10-28 1992-10-10 분기 명령 버퍼를 갖는 데이타 프로세서 KR100259306B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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