KR960706124A - 워드 정렬 브랜치 타겟을 가지는 처리 시스템(Processing system with word aligned branch target) - Google Patents

워드 정렬 브랜치 타겟을 가지는 처리 시스템(Processing system with word aligned branch target)

Info

Publication number
KR960706124A
KR960706124A KR1019960702537A KR19960702537A KR960706124A KR 960706124 A KR960706124 A KR 960706124A KR 1019960702537 A KR1019960702537 A KR 1019960702537A KR 19960702537 A KR19960702537 A KR 19960702537A KR 960706124 A KR960706124 A KR 960706124A
Authority
KR
South Korea
Prior art keywords
instruction
instructions
flow change
word
aligned
Prior art date
Application number
KR1019960702537A
Other languages
English (en)
Other versions
KR100385495B1 (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 KR960706124A publication Critical patent/KR960706124A/ko
Application granted granted Critical
Publication of KR100385495B1 publication Critical patent/KR100385495B1/ko

Links

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/324Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • 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
    • 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
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing

Abstract

마이크로제어기 또는 프로세서 아키텍처는 워드 정렬 다중 바이트 페치를 실행하고 바이트 정렬 구조를 허용한다. 점프 타겟 어드레스를 워드 정렬되어, 명령어로의 점프의 워드 정렬 페치가 된다. 어셈블러 또는 컴파일러는 브랜치 명령 타겟 어드레스가 워드 경계부상에 정렬된 명령어 메모리에 코드를 적재한다. 인터럽트로부터의 복귀는 바이트 정렬된 완전 복귀 어드레스로 프로그램 카운터에 적재되다.

Description

워드 정렬 브랜치 타겟을 가지는 처리 시스템(Processing system with word aligned branch target)
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명에 따른 하나의 마이크로 제어기 또는 프로세서의 부품을 도시한 도면이고, 제2도 및 제3도는 메모리 배향 구조를 도시한 도면이며, 제4도는 스택을 도시한 도면이다.

Claims (8)

  1. 처리 시스템에 있어서, 메모리; 메로리로부터 명령어 정보인 워드를 동시에 페치시키기 위한 페칭 수단, -명령어 정보로부터 얻어진 워드 길이의 배수들 사이의 길이 중간을 가지는 최소한 소정의 명령어를 실행하기 위한 실행 수단, 및 -명령어 정보를 메모리 내에 발생시키고, 명령어가 흐름 변화 명령어의 흐름 변화 타겟 인지의 여부에 대한 각각의 명령어를 검출하며, 특정한 명령어가 흐름 변화 타겟인 경우 외에는 이 경우에 명령어 발생 수단이 특정한 명령어를 워드 경계부에 발생시키는 메모리 내에 코드 밀도를 최대화시키기 위한 각각의 특정한 명령어를 발생시키는 명령어 발생 수단을 포함하는 프로세서를 포함하는 것을 특징으로 하는 처리 시스템.
  2. 제1항에 있어서, 비계획된 프로그램 흐름 변화에서 워드 경계부에 배치되지 않은 명령어로 복귀시키기 위한 전송 수단을 더 포함하는 것을 특징으로 하는 처리 시스템.
  3. 제1항에 있어서, 상기 명령어 발생 수단이 워드 경계부 상에 흐름 변화 타겟이 있는 명령어를 발생시키기 위한 컴파일러 수행 명령어 확장 및 코드 조작을 포함하는 것을 특징으로 하는 처리 시스템.
  4. 제1항에 있어서, 상기 실행 수단이; 바이트 정렬 명령어를 수신하는 명령어 큐 및 상기 큐에 정렬되고, 실행용 명령어를 정렬하는 정렬 멀티플렉서를 포함하는 것을 특징으로 하는 처리 시스템.
  5. 제1항에 있어서, 상기 실행 수단이; 페치된 명령어의 어드레스를 지정하는 프로그램 카운터 레지스터, 및 상이한 워드들 사이를 구별하는 기준에 관한 최소 유효 비트인 흐름 변화 타겟에 대한 기준을 포함하는 흐름 변화 명령어의 제어 하에 프로그램 카운터 레지스터의 내용을 변형시키기 위해 상기 프로그램 카운터 레지스터에 결합된 명령어 어드레스 변형 장치를 포함하는 것을 특징으로 하는 처리 시스템.
  6. 처리 시스템에 있어서, 워드 경계부 상에 전송 타겟 명령어를 정렬하기 위해 명령어 확장 및 코드 조작을 실행하는 컴파일러; 바이트 정렬 명령어를 수신하는 명령어 큐, 상기 큐에 정렬되고, 실행용 명령어를 정렬하는 정렬 멀티플렉서, 페치된 명령어의 어드레스를 지정하는 프로그램 카운터 레지스터, 상기 프로그램 카운터 레지스터에 결합되고, 프로그램 카운터 레지스터의 내용을 변형시키기 위한 명령어 어드레스 변형 장치, 비계획된 흐름 변화에서 워드 경계부에 배치되지 않은 명령어로 복귀시키기 위한 전송 수단, 및 페치된 명령어를 실행하기 위한 실행 수단을 포함하는 프로게서를 포함하는 것을 특징으로 하는 처리 시스템.
  7. 컴퓨터 명령을 실행하기 위한 방법에 있어서, a. 워드 경계부 상에 흐름 변화 명령어를 정렬하는 단계; b. 바이트 경계부 상에 순차 실행가능 명령어를 정렬하는 단계; c. 워드 경계부에 정렬된 다중 바이트 페칭을 이용하는 명령어를 페치 및 실행하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제7항에 있어서, 바이트 정렬 프로그램 전송 어드레스를 이용하는 비계획된 복귀를 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.
    ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
KR1019960702537A 1994-09-16 1995-08-21 워드정렬브랜치타겟을가지는처리시스템 KR100385495B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US308,337 1989-02-09
US08/308,337 US5590358A (en) 1994-09-16 1994-09-16 Processor with word-aligned branch target in a byte-oriented instruction set

Publications (2)

Publication Number Publication Date
KR960706124A true KR960706124A (ko) 1996-11-08
KR100385495B1 KR100385495B1 (ko) 2003-08-14

Family

ID=23193583

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960702537A KR100385495B1 (ko) 1994-09-16 1995-08-21 워드정렬브랜치타겟을가지는처리시스템

Country Status (6)

Country Link
US (1) US5590358A (ko)
EP (1) EP0729605B1 (ko)
JP (1) JPH09505427A (ko)
KR (1) KR100385495B1 (ko)
DE (1) DE69524379T2 (ko)
WO (1) WO1996008762A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5706483A (en) * 1994-12-13 1998-01-06 Microsoft Corporation Run-time code compiler for data block transfer
US5966514A (en) 1995-05-31 1999-10-12 Matsushita Electric Industrial Co., Ltd. Microprocessor for supporting reduction of program codes in size
US5687339A (en) * 1995-09-14 1997-11-11 Elan Microelectronics Corp. Pre-reading and pre-decoding of instructions of a microprocessor within single cycle
US6338106B1 (en) 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
US5889997A (en) * 1997-05-30 1999-03-30 Hewlett-Packard Company Assembler system and method for a geometry accelerator
CA2211515C (en) * 1997-07-25 2001-12-11 Kevin Alexander Stoodley System and method of local data alignment for stack memory
EP0953898A3 (en) * 1998-04-28 2003-03-26 Matsushita Electric Industrial Co., Ltd. A processor for executing Instructions from memory according to a program counter, and a compiler, an assembler, a linker and a debugger for such a processor
EP0992894A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. Apparatus and method for loop execution
US6721875B1 (en) * 2000-02-22 2004-04-13 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing a single-syllable IP-relative branch instruction and a long IP-relative branch instruction in a processor which fetches instructions in bundle form
JP2004519027A (ja) * 2001-01-30 2004-06-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 主プロセッサと命令経路コプロセッサとの同期化
US6993619B2 (en) * 2003-03-28 2006-01-31 International Business Machines Corporation Single request data transfer regardless of size and alignment
US8006071B2 (en) * 2004-03-31 2011-08-23 Altera Corporation Processors operable to allow flexible instruction alignment
US20060277396A1 (en) * 2005-06-06 2006-12-07 Renno Erik K Memory operations in microprocessors with multiple execution modes and register files
US20080162879A1 (en) * 2006-12-29 2008-07-03 Hong Jiang Methods and apparatuses for aligning and/or executing instructions
US20080162522A1 (en) * 2006-12-29 2008-07-03 Guei-Yuan Lueh Methods and apparatuses for compaction and/or decompaction
US8966228B2 (en) * 2009-03-20 2015-02-24 Arm Limited Instruction fetching following changes in program flow
JP4862100B1 (ja) * 2011-03-25 2012-01-25 好一 北岸 中央演算処理装置及びマイクロコンピュータ

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4338663A (en) * 1978-10-25 1982-07-06 Digital Equipment Corporation Calling instructions for a data processing system
WO1985000453A1 (en) * 1983-07-11 1985-01-31 Prime Computer, Inc. Data processing system
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system
US5187782A (en) * 1986-02-26 1993-02-16 Hitachi, Ltd. Data processing system
US5051885A (en) * 1988-10-07 1991-09-24 Hewlett-Packard Company Data processing system for concurrent dispatch of instructions to multiple functional units
WO1990008355A1 (en) * 1989-01-17 1990-07-26 Fujitsu Limited Microprocessor
JP2682217B2 (ja) * 1989-08-28 1997-11-26 日本電気株式会社 マイクロプロセッサ
JP2560889B2 (ja) * 1990-05-22 1996-12-04 日本電気株式会社 マイクロプロセッサ
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
US5335332A (en) * 1991-12-24 1994-08-02 International Business Machines Corporation Method and system for stack memory alignment utilizing recursion
JP2928680B2 (ja) * 1992-03-30 1999-08-03 株式会社東芝 複合条件処理方式
JPH0667877A (ja) * 1992-08-19 1994-03-11 Kofu Nippon Denki Kk 命令フェッチ回路

Also Published As

Publication number Publication date
WO1996008762A3 (en) 1996-05-30
DE69524379T2 (de) 2002-10-17
KR100385495B1 (ko) 2003-08-14
US5590358A (en) 1996-12-31
DE69524379D1 (de) 2002-01-17
EP0729605A1 (en) 1996-09-04
EP0729605B1 (en) 2001-12-05
JPH09505427A (ja) 1997-05-27
WO1996008762A2 (en) 1996-03-21

Similar Documents

Publication Publication Date Title
KR960706124A (ko) 워드 정렬 브랜치 타겟을 가지는 처리 시스템(Processing system with word aligned branch target)
US4991078A (en) Apparatus and method for a pipelined central processing unit in a data processing system
FI90804B (fi) Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu
US5006980A (en) Pipelined digital CPU with deadlock resolution
EP0950216B1 (en) A processing device for executing virtual machine instructions
KR100323191B1 (ko) 다중명령세트를이용한데이터프로세싱장치
US5826074A (en) Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
US20010010072A1 (en) Instruction translator translating non-native instructions for a processor into native instructions therefor, instruction memory with such translator, and data processing apparatus using them
EP0219203A2 (en) Computer control providing single-cycle branching
US5023828A (en) Microinstruction addressing in high-speed CPU
US4833640A (en) Register bank change including register to register transfer in a data processing system
WO2001067234A3 (en) Vliw computer processing architecture having a scalable number of register files
EP1131698B1 (en) Improved instruction decoding using a parallel decode algorithm
KR920001321A (ko) 고속 프로세서에서의 브랜치 처리 방법 및 장치
JPH03218523A (ja) データプロセッサ
JPH11272464A (ja) 投機的境界不整列ロ―ド操作方法及び装置
US6292845B1 (en) Processing unit having independent execution units for parallel execution of instructions of different category with instructions having specific bits indicating instruction size and category respectively
EP1754142B1 (en) Microprocessor and method of instruction alignment
KR890008685A (ko) 브랜칭 방법
EP0354585A2 (en) Instruction pipeline microprocessor
KR950009454A (ko) 다중 실행 장치 처리 시스템 상태의 선택적 저장방법 및 시스템
KR100322277B1 (ko) 확장 명령어를 가진 중앙처리장치
US5175827A (en) Branch history table write control system to prevent looping branch instructions from writing more than once into a branch history table
US5590293A (en) Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
JP2538053B2 (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
LAPS Lapse due to unpaid annual fee