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
Links
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
-
- 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
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/324—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- 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
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
-
- 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
-
- 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
- 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/3816—Instruction alignment, e.g. cache line crossing
Abstract
마이크로제어기 또는 프로세서 아키텍처는 워드 정렬 다중 바이트 페치를 실행하고 바이트 정렬 구조를 허용한다. 점프 타겟 어드레스를 워드 정렬되어, 명령어로의 점프의 워드 정렬 페치가 된다. 어셈블러 또는 컴파일러는 브랜치 명령 타겟 어드레스가 워드 경계부상에 정렬된 명령어 메모리에 코드를 적재한다. 인터럽트로부터의 복귀는 바이트 정렬된 완전 복귀 어드레스로 프로그램 카운터에 적재되다.
Description
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명에 따른 하나의 마이크로 제어기 또는 프로세서의 부품을 도시한 도면이고, 제2도 및 제3도는 메모리 배향 구조를 도시한 도면이며, 제4도는 스택을 도시한 도면이다.
Claims (8)
- 처리 시스템에 있어서, 메모리; 메로리로부터 명령어 정보인 워드를 동시에 페치시키기 위한 페칭 수단, -명령어 정보로부터 얻어진 워드 길이의 배수들 사이의 길이 중간을 가지는 최소한 소정의 명령어를 실행하기 위한 실행 수단, 및 -명령어 정보를 메모리 내에 발생시키고, 명령어가 흐름 변화 명령어의 흐름 변화 타겟 인지의 여부에 대한 각각의 명령어를 검출하며, 특정한 명령어가 흐름 변화 타겟인 경우 외에는 이 경우에 명령어 발생 수단이 특정한 명령어를 워드 경계부에 발생시키는 메모리 내에 코드 밀도를 최대화시키기 위한 각각의 특정한 명령어를 발생시키는 명령어 발생 수단을 포함하는 프로세서를 포함하는 것을 특징으로 하는 처리 시스템.
- 제1항에 있어서, 비계획된 프로그램 흐름 변화에서 워드 경계부에 배치되지 않은 명령어로 복귀시키기 위한 전송 수단을 더 포함하는 것을 특징으로 하는 처리 시스템.
- 제1항에 있어서, 상기 명령어 발생 수단이 워드 경계부 상에 흐름 변화 타겟이 있는 명령어를 발생시키기 위한 컴파일러 수행 명령어 확장 및 코드 조작을 포함하는 것을 특징으로 하는 처리 시스템.
- 제1항에 있어서, 상기 실행 수단이; 바이트 정렬 명령어를 수신하는 명령어 큐 및 상기 큐에 정렬되고, 실행용 명령어를 정렬하는 정렬 멀티플렉서를 포함하는 것을 특징으로 하는 처리 시스템.
- 제1항에 있어서, 상기 실행 수단이; 페치된 명령어의 어드레스를 지정하는 프로그램 카운터 레지스터, 및 상이한 워드들 사이를 구별하는 기준에 관한 최소 유효 비트인 흐름 변화 타겟에 대한 기준을 포함하는 흐름 변화 명령어의 제어 하에 프로그램 카운터 레지스터의 내용을 변형시키기 위해 상기 프로그램 카운터 레지스터에 결합된 명령어 어드레스 변형 장치를 포함하는 것을 특징으로 하는 처리 시스템.
- 처리 시스템에 있어서, 워드 경계부 상에 전송 타겟 명령어를 정렬하기 위해 명령어 확장 및 코드 조작을 실행하는 컴파일러; 바이트 정렬 명령어를 수신하는 명령어 큐, 상기 큐에 정렬되고, 실행용 명령어를 정렬하는 정렬 멀티플렉서, 페치된 명령어의 어드레스를 지정하는 프로그램 카운터 레지스터, 상기 프로그램 카운터 레지스터에 결합되고, 프로그램 카운터 레지스터의 내용을 변형시키기 위한 명령어 어드레스 변형 장치, 비계획된 흐름 변화에서 워드 경계부에 배치되지 않은 명령어로 복귀시키기 위한 전송 수단, 및 페치된 명령어를 실행하기 위한 실행 수단을 포함하는 프로게서를 포함하는 것을 특징으로 하는 처리 시스템.
- 컴퓨터 명령을 실행하기 위한 방법에 있어서, a. 워드 경계부 상에 흐름 변화 명령어를 정렬하는 단계; b. 바이트 경계부 상에 순차 실행가능 명령어를 정렬하는 단계; c. 워드 경계부에 정렬된 다중 바이트 페칭을 이용하는 명령어를 페치 및 실행하는 단계를 포함하는 것을 특징으로 하는 방법.
- 제7항에 있어서, 바이트 정렬 프로그램 전송 어드레스를 이용하는 비계획된 복귀를 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
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)
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)
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 | 命令フェッチ回路 |
-
1994
- 1994-09-16 US US08/308,337 patent/US5590358A/en not_active Expired - Lifetime
-
1995
- 1995-08-21 JP JP8510021A patent/JPH09505427A/ja active Pending
- 1995-08-21 EP EP95927064A patent/EP0729605B1/en not_active Expired - Lifetime
- 1995-08-21 DE DE69524379T patent/DE69524379T2/de not_active Expired - Fee Related
- 1995-08-21 KR KR1019960702537A patent/KR100385495B1/ko not_active IP Right Cessation
- 1995-08-21 WO PCT/IB1995/000667 patent/WO1996008762A2/en active IP Right Grant
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 |