KR970705076A - 메모리에 저장된 오정렬 데이타용 어드레스를 효율적으로 결정하는 장치 및 방법(Apparatus and Method for Efficiently Determining Addresses for Misaligned Data Stored in Memory) - Google Patents

메모리에 저장된 오정렬 데이타용 어드레스를 효율적으로 결정하는 장치 및 방법(Apparatus and Method for Efficiently Determining Addresses for Misaligned Data Stored in Memory) Download PDF

Info

Publication number
KR970705076A
KR970705076A KR1019970700553A KR19970700553A KR970705076A KR 970705076 A KR970705076 A KR 970705076A KR 1019970700553 A KR1019970700553 A KR 1019970700553A KR 19970700553 A KR19970700553 A KR 19970700553A KR 970705076 A KR970705076 A KR 970705076A
Authority
KR
South Korea
Prior art keywords
address
memory
data
misaligned
offset value
Prior art date
Application number
KR1019970700553A
Other languages
English (en)
Inventor
마리오 네미로프스키
로버트 제임즈 디비비어
나렌드라 산카
Original Assignee
존 엠. 클락3세
내쇼날 세미컨덕터 코포레이션
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 존 엠. 클락3세, 내쇼날 세미컨덕터 코포레이션 filed Critical 존 엠. 클락3세
Publication of KR970705076A publication Critical patent/KR970705076A/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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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 or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3816Instruction alignment, e.g. cache line crossing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Details Of Connecting Devices For Male And Female Coupling (AREA)
  • Connector Housings Or Holding Contact Members (AREA)

Abstract

범용 마이크로프로세서의 메모리에 저장된 오정렬 또는 2중 워드 길이의 데이타를 액세스하는데 필요한 연속적인 어드레스를 효율적으로 발생시키는 장치 및 방법이 개시되어 있다. 상기 장치는 버스 유니트에 포함되어 있는 것이 전형적인 소형 3비트 가산기. 및 실행 유니트 사이에 어드레스 발생동작을 공유한다. 제어 논리는 데이타 오정렬 상황이 데이타의 개시 어드레스 및 검색될 데이타의 길이를 기초로 존재하는 지를 결정하는데 사용된다. 오정렬이 나타나는 경우. 제어 유니트는 현재 어드레스가 새로운 어드레스를 얻도록 얼마만큼 증분되어야 하는지에 따라 3비트 가신기 또는 실행 유니트에 어드레스 계산을 할당하는 작용을 한다.

Description

메모리에 저장된 오정렬 데이타용 어드레스를 효율적으로 결정하는 장치 및 방법(Apparatus and Method for Efficiently Determining Addresses for Misaligned Data Stored in Memory)
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명의 방법에 따라 오정렬 데이타를 액세스하는 어드레스를 효율적으로 발생시키는 장치를 포함하는 마이크로프로세서의 아키텍쳐에 대한 블록 다이어그램이다.

Claims (9)

  1. 메모리에 저장된 오정렬 데이타를 액세스하기 위한 메모리 어드레스를 발생시키는 장치에 있어서, 어드레스에 대한 오프셋값을 발생시키는 수단으로서, 상기 오프셋 값이 메모리 장소가 베이스 어드레스로 부터 오프셋되는 양에 해당하는 수단; 상기 베이스 어드레스를 발생시키는 수단; 완전 메모리 어드레스를 발생시키도록 상기 오프셋 값 및 상기 베이스 어드레스를 가산하는 수단: 상기 완전 메모리 어드레스로 저장된 데이타 일부가 오정렬되어 있는지를 결정하는 제어수단; 상기 완전 메모리 어드레스를 한 세트의 최상위 비트 및 한 세트의 최하위 비트로 분할하는 수단; 상기 제어 수단이 데이타가 오정렬되어 있다고 결정할 경우 한 세트의 최하위 비트의 값을 증분시키는 수단; 및 데이타가 오정렬되어 있다고 상기 제어 수단이 결정할 겨우 메모리에 대한 새로운 어드레스를 형성하도록 상기 한 세트의 최상위 비트 및 증분된 한세트의 최하위 비트를 결합하는 수단을 포함하는, 메모리 어드레스를 발생시키는 장치.
  2. 제1항에 있어서, 상기 완전 메모리 어드레스를 발생시키도록 오프셋값과 베이스 어드레스를 가산하는 수단은 산술 논리 유니트인, 메모리 어드레스를 발생시키는 장치.
  3. 제1항에 있어서, 상기 제어 수단은 데이타의 일부가 상기 완전 메모리 어드레스 및 데이타의 길이를 기초로 오정렬되어 있는지를 결정하는, 메모리 어드레스를 발생시키는 장치.
  4. 제1항에 있어서, 상기 한세트의 최하위 비트의 값을 증분시키는 수단은 3비트 가산기인, 메모리 어드레스를 발생시키는 장치.
  5. 제4항에 있어서, 상기 3비트인 가산기는 버스 유니트에 포함되어 있는 메모리 어드레스를 발생시키는 장치.
  6. 제1항에 있어서, 상기 어드레스에 대한 오프셋 값을 발생시키는 수단은 이전 어드레스로 부터 오프셋 값을 증분시킴으로써 오프셋을 발생시키는, 메모리 어드레스를 발생시키는 장치.
  7. 메모리에 저장된 오정렬 제이타를 액세스하기 위한 메모리 어드레스를 발생시키는 방법에 있어서, 어드레스에 대한 오프셋 값을 발생시키는 단계로서, 상기 오프셋값이 메모리 장소가 베이스 어드레스로 부터 오프셋되는 양에 해당하는 단계: 상기 베이스어드레스를 발생시키는 단계: 완전 메모리 어드레스를 발생시키도록 상기 오프셋값 및 상기 베이스 어드레스를 가산하는 단계: 상기 완전 메모리 어드레스로 저장된 데이타의 일부가 오정렬 되어 있는지를 결정하는 단계: 상기 완전 메모리 어드레스를 한세트의 최상위 비트 및 한세트의 최하위 비트로 분할하는 단계:데이타가 오정렬되어 있다고 결정되는 경우 상기 한세트의 최하위 비트의 값을 증분시키는 단계; 및 데이타가 오정렬되어 있따고 결정되는 메모리에 대한 새로운 어드레스를 형성하도록 상기 한세트의 최상위 비트 및 증분된 한 세트의 최하위 비트를 결합하는 단계를 포함하는, 메모리 어드레스를 발생시키는 방법.
  8. 제7항에 있어서, 상기 오프셋 값은 이전 어드레스의 오프셋값을 증분시킴으로써 발생되는, 메모리 어드레스를 발생시키는 방법.
  9. 제7항에 있어서, 상기 완전 메모리 어드레스로 저장된 데이타의 일부가 오정렬되어 있는지의 결정은 상기 완전 메모리 어드레스 및 데이타의 길이를 기초로 하는, 메모리 어드레이스를 발생시키는 방법.
    ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
KR1019970700553A 1995-05-26 1996-05-24 메모리에 저장된 오정렬 데이타용 어드레스를 효율적으로 결정하는 장치 및 방법(Apparatus and Method for Efficiently Determining Addresses for Misaligned Data Stored in Memory) KR970705076A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US45015495A 1995-05-26 1995-05-26
US08/450,154 1995-05-26
PCT/US1996/008101 WO1996038782A2 (en) 1995-05-26 1996-05-24 Apparatus and method for efficiently determining addresses for misaligned data stored in memory

Publications (1)

Publication Number Publication Date
KR970705076A true KR970705076A (ko) 1997-09-06

Family

ID=23786990

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970700553A KR970705076A (ko) 1995-05-26 1996-05-24 메모리에 저장된 오정렬 데이타용 어드레스를 효율적으로 결정하는 장치 및 방법(Apparatus and Method for Efficiently Determining Addresses for Misaligned Data Stored in Memory)

Country Status (5)

Country Link
US (1) US5752273A (ko)
EP (1) EP0772819B1 (ko)
KR (1) KR970705076A (ko)
DE (2) DE69616718D1 (ko)
WO (1) WO1996038782A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003936A (en) * 1997-07-31 1999-12-21 Fleet Air Industries, Inc. Sport-utility vehicle top
US6289428B1 (en) * 1999-08-03 2001-09-11 International Business Machines Corporation Superscaler processor and method for efficiently recovering from misaligned data addresses
US6539467B1 (en) * 1999-11-15 2003-03-25 Texas Instruments Incorporated Microprocessor with non-aligned memory access
US6453405B1 (en) * 2000-02-18 2002-09-17 Texas Instruments Incorporated Microprocessor with non-aligned circular addressing
US6775758B2 (en) * 2000-12-21 2004-08-10 Hewlett-Packard Development Company, L.P. Buffer page roll implementation for PCI-X block read transactions
WO2002059779A1 (en) * 2001-01-25 2002-08-01 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for optimised indexing records of static data with different lenghts
KR100497671B1 (ko) * 2002-07-08 2005-07-25 주식회사 인터와이즈 메모리 접근 위반 처리 방법 및 이를 위한 컴퓨터 시스템
US6973551B1 (en) * 2002-12-30 2005-12-06 Emc Corporation Data storage system having atomic memory operation
US20070106883A1 (en) * 2005-11-07 2007-05-10 Choquette Jack H Efficient Streaming of Un-Aligned Load/Store Instructions that Save Unused Non-Aligned Data in a Scratch Register for the Next Instruction
US9104399B2 (en) * 2009-12-23 2015-08-11 International Business Machines Corporation Dual issuing of complex instruction set instructions
US8082467B2 (en) * 2009-12-23 2011-12-20 International Business Machines Corporation Triggering workaround capabilities based on events active in a processor pipeline
US9135005B2 (en) * 2010-01-28 2015-09-15 International Business Machines Corporation History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties
US8495341B2 (en) * 2010-02-17 2013-07-23 International Business Machines Corporation Instruction length based cracking for instruction of variable length storage operands
US8938605B2 (en) * 2010-03-05 2015-01-20 International Business Machines Corporation Instruction cracking based on machine state
US8464030B2 (en) 2010-04-09 2013-06-11 International Business Machines Corporation Instruction cracking and issue shortening based on instruction base fields, index fields, operand fields, and various other instruction text bits
US8645669B2 (en) 2010-05-05 2014-02-04 International Business Machines Corporation Cracking destructively overlapping operands in variable length instructions
US11048626B1 (en) * 2020-02-21 2021-06-29 Intel Corporation Technology to ensure sufficient memory type range registers to fully cache complex memory configurations
US11755324B2 (en) * 2021-08-31 2023-09-12 International Business Machines Corporation Gather buffer management for unaligned and gather load operations

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR880013064A (ko) * 1987-04-28 1988-11-29 이우에 사또시 어드레스 발생회로
US4814976A (en) * 1986-12-23 1989-03-21 Mips Computer Systems, Inc. RISC computer with unaligned reference handling and method for the same
JPH02127751A (ja) * 1988-11-07 1990-05-16 Yokogawa Electric Corp ミスアラインメント処理回路
JPH02234227A (ja) * 1989-03-08 1990-09-17 Nec Corp ミスアライメント処理方式
US5201043A (en) * 1989-04-05 1993-04-06 Intel Corporation System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3916388A (en) * 1974-05-30 1975-10-28 Ibm Shifting apparatus for automatic data alignment
US4654781A (en) * 1981-10-02 1987-03-31 Raytheon Company Byte addressable memory for variable length instructions and data
US4507731A (en) * 1982-11-01 1985-03-26 Raytheon Company Bidirectional data byte aligner
US5321823A (en) * 1988-07-20 1994-06-14 Digital Equipment Corporation Digital processor with bit mask for counting registers for fast register saves
US5051894A (en) * 1989-01-05 1991-09-24 Bull Hn Information Systems Inc. Apparatus and method for address translation of non-aligned double word virtual addresses
CA1325288C (en) * 1989-02-03 1993-12-14 Ricky C. Hetherington Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system
US5204953A (en) * 1989-08-04 1993-04-20 Intel Corporation One clock address pipelining in segmentation unit
US5259006A (en) * 1990-04-18 1993-11-02 Quickturn Systems, Incorporated Method for substantially eliminating hold time violations in implementing high speed logic circuits or the like
US5189319A (en) * 1991-10-10 1993-02-23 Intel Corporation Power reducing buffer/latch circuit
US5254888A (en) * 1992-03-27 1993-10-19 Picopower Technology Inc. Switchable clock circuit for microprocessors to thereby save power
US5471598A (en) * 1993-10-18 1995-11-28 Cyrix Corporation Data dependency detection and handling in a microprocessor with write buffer
US5404473A (en) * 1994-03-01 1995-04-04 Intel Corporation Apparatus and method for handling string operations in a pipelined processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4814976A (en) * 1986-12-23 1989-03-21 Mips Computer Systems, Inc. RISC computer with unaligned reference handling and method for the same
US4814976C1 (en) * 1986-12-23 2002-06-04 Mips Tech Inc Risc computer with unaligned reference handling and method for the same
KR880013064A (ko) * 1987-04-28 1988-11-29 이우에 사또시 어드레스 발생회로
JPH02127751A (ja) * 1988-11-07 1990-05-16 Yokogawa Electric Corp ミスアラインメント処理回路
JPH02234227A (ja) * 1989-03-08 1990-09-17 Nec Corp ミスアライメント処理方式
US5201043A (en) * 1989-04-05 1993-04-06 Intel Corporation System using both a supervisor level control bit and a user level control bit to enable/disable memory reference alignment checking

Also Published As

Publication number Publication date
WO1996038782A2 (en) 1996-12-05
EP0772819B1 (en) 2001-11-07
US5752273A (en) 1998-05-12
EP0772819A2 (en) 1997-05-14
DE69616718T2 (de) 2002-08-22
DE69616718D1 (de) 2001-12-13
DE69616718T4 (de) 2003-02-20

Similar Documents

Publication Publication Date Title
KR970705076A (ko) 메모리에 저장된 오정렬 데이타용 어드레스를 효율적으로 결정하는 장치 및 방법(Apparatus and Method for Efficiently Determining Addresses for Misaligned Data Stored in Memory)
KR970012167A (ko) 데이터 프리페치 방법, 캐시 라인 프리페치 방법 및 시스템
KR890007162A (ko) 데이타 처리장치
KR890005740A (ko) 선택적 개시 버스트를 구비한 버스 마스터
KR870011524A (ko) 마이크로프로세서칩의 스택프레임캐시
KR910006856A (ko) 어드레스 레지스터를 이용하여 동적으로 버스제어를 실행하는 마이크로컴퓨터
KR840006526A (ko) 데이타 처리장치에 있어서 오퍼레이팅 시스템 슈퍼바이저 방법 및 장치
KR920003163A (ko) 캐시 액세스와 병렬로 메모리 액세스를 수행하는 프로세서 및 그것에 의해 이용되는 방법
KR980700612A (ko) 프로세서가 전용 버스 또는 공유 버스를 통해 외부 구성요소를 액세스할 수 있도록 해 주는 방법 및 장치(a method and anapparatus for enabling a processor to access an external component through a private bus or a shared bus)
KR890017604A (ko) 마이크로 컴퓨터 시스템
KR920022117A (ko) 메모리 억세스 장치
KR920003181A (ko) Dma 기능을 갖춘 정보처리 장치
KR900006853A (ko) 마이크로 프로세서
KR960015238A (ko) 명령프리페취회로 및 캐쉬장치
KR900015003A (ko) 데이타 프로세서
KR930010742A (ko) 메모리 억세스 장치
KR920020322A (ko) 명령처리장치
KR940024599A (ko) 데이타 요구방법 및 데이타 처리 시스템
KR960011713A (ko) 컴퓨터 시스템 및 캐시 히트/미스 판단 방법
KR970066889A (ko) 다중레벨 분기 예측 방법 및 장치
KR950012226A (ko) 정보 처리 시스템 및 그 동작 방법
EP0387888A3 (en) Microprocessor system having an extended address space
KR970705086A (ko) 같은 클락 사이클 동안에 캐쉬 메모리와 외부 메모리 제어기로 메모리 요청을 하는 파이프라인 마이크로프로세서(A Pipelined Microprocessor that Makes Memory Requests to a Cache Memory and an external Memory Controller During the Same Clock Cycle)
KR860003550A (ko) 비트연산처리방법 및 장치
KR960018881A (ko) 비트 필드 주변 장치 및 그것을 갖는 비트 필드 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application