KR100457478B1 - 메모리액세스방법및데이터처리시스템 - Google Patents

메모리액세스방법및데이터처리시스템 Download PDF

Info

Publication number
KR100457478B1
KR100457478B1 KR1019970023303A KR19970023303A KR100457478B1 KR 100457478 B1 KR100457478 B1 KR 100457478B1 KR 1019970023303 A KR1019970023303 A KR 1019970023303A KR 19970023303 A KR19970023303 A KR 19970023303A KR 100457478 B1 KR100457478 B1 KR 100457478B1
Authority
KR
South Korea
Prior art keywords
access
signal
chip select
burst
response
Prior art date
Application number
KR1019970023303A
Other languages
English (en)
Other versions
KR980004047A (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
Priority claimed from US08/660,702 external-priority patent/US6006288A/en
Priority claimed from US08/660,028 external-priority patent/US5813041A/en
Priority claimed from US08/660,620 external-priority patent/US5875482A/en
Application filed by 프리스케일 세미컨덕터, 인크. filed Critical 프리스케일 세미컨덕터, 인크.
Publication of KR980004047A publication Critical patent/KR980004047A/ko
Application granted granted Critical
Publication of KR100457478B1 publication Critical patent/KR100457478B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0879Burst mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)

Abstract

고성능 칩 선택(HPEC) 신호를 갖는 데이터 처리 시스템(20)은 액세스 듀티 사이클에 근거하는 예정된 수의 버스 사이클 동안 기능적으로 프로그램 가능하여 표명 상태(assertion state)로 유지될 수 있다. 옵션 레지스터(52)는 사용자로 하여금 항상 표명 유지, 표명 부정, 마지막 유효 매칭 이후에 사이클들의 수 동안 표명 유지하도록 HPCE 프로그램이 가능하다. 연속적인 표명은 사용자에게 고속 액세스 및 저전력 소비 사이의 취사 선택을 결정하도록 하는 외부 디바이스로 액세스 시간을 줄인다. 또한, 추론적인 버스트 액세스는 매칭 기준에 관계없이 이루어지고, 데이터 프로세서(22)가 액세스할 다음 디바이스를 결정하는 동안 디바이스에 액세스 준비를 시킨다. 여기서 로드 버스트 어드레스(LBA) 신호는 활성화된 디바이스에 추론적으로 공급되면, 다음 액세스는 다음 디바이스에서 발생하고, 추론적인 액세스가 제거된다.

Description

메모리 액세스 방법 및 데이터 처리 시스템
본 발명은 통상 데이터 처리 시스템에 관한 것으로, 특히 집적 회로 마이크로프로세서들 및 마이크로컴퓨터들을 대한 칩 선택 논리 회로에 대한 것이다.
집적 회로 마이크로프로세서들은 흔히 어떤 기능들을 제공하기 위하여 그 밖의 다른 집적 회로 디바이스들에 접속되어야 한다. 통상적으로, 마이크로프로세서와 그 밖의 다른 집적 회로들을 이용하는 시스템 설계자는 마이크로프로세서 자체에 의해 발생되는 어드레스와 버스 제어 신호들에서 필요로 하는 칩 선택 신호들을 발생시키기 위해서 "글루 논리(glue logic)"을 이용하게 된다. 이러한 가외 논리(extra logic)는 설계될 시스템의 비용을 크게 증가시키고 성능은 저하시키므로 매우 바람직하지는 않다.
캘리포니아, 산타클라라 소재 인텔사의 80186(iAPX 186 라고도 함)은 칩 선택 신호들을 발생시키기 위한 내부 논리를 가진 집적회로 마이크로프로세서이다. 이 칩 선택 논리는 7개의 가능한 칩 선택들 각각이 액티브(active)인 어드레스 범위를 프로그램할 수 있는 제한된 능력을 가지고 각각의 칩 선택이 액티브인 버스 사이클들에 대기 상태들을 프로그램 가능하게 삽입시킬 수 있다.
보드상에 칩 선택 논리가 있는 집적 회로 마이크로프로세서의 또다른 예는 1992. 9. 29 일에 발행된 미국특허 NO. 5,151,986 에 John A. Langan 과 James M. Sibigtroth 에 의해 개시된 것이다. 개시된 칩 선택 논리는 제어 레지스터를 포함하여, 이 레지스터에 의해서 대기 상태들의 타이밍, 극성 및 수는 각각의 몇몇 칩 선택 출력들에 대해 개별적으로 프로그램될 수 있다.
보드상의 칩 선택 논리가 매우 유연한 집적 회로 마이크로프로세서는 1995, 9. 5 일 발행된 미국 특허 NO. 5,448,744 에서 James B. Eifert 등에 의해 알려졌다. Eifert 등에 의해 알려진 칩 선택 논리은, 사이클이 판독 또는 기록 사이클인지와 같은 액세스 사이클 속성이 프로그램 가능한 속성에 매칭하는지에 근거하여 조건부로 칩 선택 신호를 활성화함으로써 상당량의 유연성을 제공한다.
마이크로프로세서 집적 회로 상에 칩 선택 논리를 집적시키는 것과 관련된 주된 문제는 데이터 처리 시스템에서의 저전력 소비 및 고속 주변 액세스 요구 조건들을 견주는 보는 것이다. 통상의 칩 선택 방법들은 속성 또는 옵션 매칭뿐만 아니라 어떤 어드레스 디코딩도 필요로 한다. 전력소비를 최소화하기 위하여, 본원에서 "CE"라고 지칭하는 주변 디바이스 칩 인에이블 또는 칩 선택을 인에이블링하기 전에 완전한 어드레스 및 옵션 매칭이 행해져야 한다.
어드레스를 디코딩하고 옵션 정보를 매칭하기 위한 사이클들 등의 칩 선택에 영향을 주기 위해 요구되는 버스 사이클들은 디바이스 액세스에 이용가능한 사이클들을 감소시킨다. 액세스 속도를 증가시키기 위한 한가지 방법은 전체 액세스 시간에서 어드레스 디코드 및 CE 표명(assertion) 시간을 제거한 디바이스 칩 선택(CE)을 계속적으로 표명하는 것이다. 그러나, CE 의 계속적인 표명은 전력소비를 증가시키고 디바이스형들의 넓은 범위로 확장하지 못하게 된다.
또한, 빈번하게 액세싱된 디바이스들은 어드레스 정보를 매칭하고 CE 를 표명하기 위해 버스 사이클들을 계속 소비한다. 유사하게, 드물게 액세싱되는 디바이스들은 전력을 소비하는 인에이블된 상태이다. 데이터 처리 시스템의 전력소비를 감소시키는 동시에 디바이스 액세스에 이용가능한 사이클들의 수를 증가시키는 것이 바람직하다. 유연한 해결책은 내부 어드레스 발생이 있는 메모리 디바이스들, 파이프라인 버스트 FLASH 메모리 디바이스들 및 비동기 메모리 디바이스들 등의 다양한 디바이스들에 적용할 수 있다.
마이크로프로세서 집적회로 상에 칩 선택 논리를 집적시키는 것과 관련된 또다른 주된 문제는 사용자에게 충분한 유연성을 제공하는 것이다. "글루(glue)" 논리의 이용은 매우 유연한데, 이는 시스템 설계자가 마이크로프로세서의 메모리 맵과 칩 선택 신호들 자체의 타이밍 및 다른 특성들을 가진 각 외부 디바이스의 배치에 있어서 넓은 범위를 가질 수 있기 때문이다. 특정한 주변 디바이스들을 위한 가능한 시스템 설계들 및 칩 선택 요구조건들의 다양함이 두드러지기 때문에, 상기 유연성은 매우 유용하다. 적당한 한계들 내로 유닛의 크기를 제한하면서 집적된 칩 선택 유닛에 충분한 유연성을 제공하는 것은 꽤 어려운 일이다.
주변 디바이스들은 다양한 특성들과 요구조건들을 갖고 있다. 한가지 형태의 주변 디바이스는 칩 인에이블 또는 칩 선택(CE) 신호들과 출력 인에이블(OE) 신호들을 모두 이용하여 마이크로프로세서와 동시에 작동한다. 칩 선택 신호들은 액세스할 특정 디바이스를 표시하는데 이용되고 출력 인에이블 신호들은 이 액세스를 동기화하는데 이용된다. 따라서, 디바이스 액세스는 동기화를 수용하기 위해서 부가적인 버스 사이클들을 필요로 한다. 다른 디바이스들은 느린 버스 인터페이스 논리를 가지며, 동기의 OE 응답과 각 디바이스 형태에 특정한 어떤 기능들의 수를 고려하여 CE 의 부정(negation) 후에 부가적인 시간을 필요로 한다. 광범위한 주변 디바이스들에 대한 충분한 시스템 설계를 가능하게 하려면 데이터 처리 시스템에서 칩 선택 신호 타이밍의 유연성을 증대시키는 것이 바람직하다.
더구나, 다양한 아키텍쳐들은 데이터 처리 시스템에서 조정하기 어려운 모순된 요구조건들을 가지고 있다. 다수의 모듈러 시스템들에서, 다양한 디바이스들과 통신하는 다수의 CPU들이 있다. 부가적인 모듈들과 논리는 단일 데이터 처리 시스템에서 캐시형 아키텍쳐와 프리패치(pre-fetch) 아키텍쳐의 교류들을 수용하기 위해 통상적으로 요구된다. 시스템 설계에 적응시키는데 유연하게 하는 데이터 처리 시스템에서 여유도(redundancy)를 최소화시키고 균일성을 더할 필요가 있다.
본 발명에 따르면, 데이터 처리 시스템은 고속 메모리 액세스 및 저전력 소비 성능의 잇점들의 비교를 다루는 버스트 칩 선택 모듈(burst chip select module)을 가진다. 본 발명의 일 측면에 따르면, 상기 칩 선택 회로는 사용자에게 특별한 응용에 대한 전력/성능비를 결정할 수 있도록 한다.
액세스 듀티 사이클(duty cycle)에 근거하는 마지막 유효 디바이스 액세스 이후에 예정된 버스 사이클들의 수 동안 표명된 상태로 있도록 고성능 칩 인에이블(HPCE) 신호는 기능적으로 프로그램 가능하다. 이 액세스 듀티 사이클은 특정 디바이스에 대한 잠재적인 액세스들의 수를 고려한다. 모든 액세스에 대한 매칭없이 HPCE 를 표명하는 것은 어드레스 디코드 및 칩 선택 표명과 관련된 클럭 사이클들을 제거하여 디바이스에의 액세스 속도를 증가시킨다. 한가지 예를들면, HPCE 는 항상 표명된 상태로 되고 결코 유효 어드레스 매칭 후에 4 사이클 또는 유효 매칭후에 8 사이클로 되지 않는다.
부가적으로, 액세스 속도를 더욱 증가시키기 위해, 추론적인 액세스가 어떠한 매칭 기준에 관계없이 시작된다. 디바이스가 액세스에 대해 활성화되면, 버스트 칩 선택은 액세스 유효를 받아들이기 전에 로드 버스트 어드레스(LBA) 신호를 표명함으로써 메모리 액세스를 개시한다. 추론적인 액세스는 데이터 처리 시스템이 액세스할 디바이스를 결정하는 동안 디바이스가 액세스하도록 준비시킨다. 다음 액세스가 다른 디바이스에 대한 것이면, 추론적인 액세스는 중지된다. 디바이스 준비외에는 어떤 실제적인 액세스가 없었던 것과 같이, 데이터 처리 시스템에 요구되는 백아웃(back out) 단계들은 없다.
본 발명의 또다른 측면은 프로그램 가능한 칩 선택 부정을 고려한 것이다. 일 실시예에서, 칩 선택 신호는 부정될 수 있고, 데이타 수취응답(acknowledge) 신호를 표명하기 전에 한 버스 사이클은 보다 느린 메모리들에 비활성화하기 위한 부가 시간을 준다. 칩 선택 신호의 초기 부정은 동기 출력 인에이블 요구 조건들을 가진 디바이스들과 효율적인 인터페이스 방법을 제공하고, 부가적인 버스 디커플링(decoupling) 시간을 제공한다.
본 발명의 또다른 측면에 따르면, 버스트 어드레스 발생기(BAG) 모듈은 캐시형 아키텍쳐와 프리패치형 아키텍쳐 모두에 적용가능한 프로그램 가능한 전송 모드를 가진다. 이러한 이중 응용 능력은 시스템 설계에 유연성을 한 수준 더해준다. BACT 는 전송 형태에 대응하는 프로그램가능한 종료 조건에서 데이터 수취응답 신호를 가진 버스 사이클을 종료한다. 종료 조건은 예정된 데이터 전송들의 수(예, 2N) 또는 물리적인 경계(예 2(N)-1)가 될 수 있고, 외부 메모리 디바이스의 열(row)중간에서 액세스를 고려한다. 캐시형 전송들에 있어서, 버스트 카운터는 캐시 라인폭 한계가 도달될 때(즉, 캐시라인이 차있을 때)를 판별하고, 응답으로 데이터 수취응답 신호를 표명한다. 프리패치형 아키텍쳐는 행 경계의 교차를 검출하기 위해 어드레스 증분기(incrementor)를 이용하고, 응답으로 데이터 수취응답 신호를 표명한다. 일 실시예에서, 버스트 어드레스는 어드레스 증분 능력에 관계없이 디바이스들에 외부적으로 공급된다.
본 발명은 해결책들과 응용의 범위를 가진 고속 액세스 및 저전력 소비의 모순된 요구조건들에 대해 설명하고 있다. 본 발명은 시스템 설계의 공정을 고려하면서 디바이스 액세스의 속도를 증가시키는데 유연하게 접근하고 있다.
일반적 사항 : 이하의 설명에서, 본 발명의 철저한 이해를 제공하기 위해서 특정 제어 레지스터 비트 길이 등과 같은 다양한 종류의 세부 사항들이 설명된다. 그러나, 당해 기술분야의 사람들에게는 본 발명은 상기 특정 세부 사항없이도 실행할 수 있음은 명백할 것이다. 다른 예로서, 본 발명이 불필요한 세부 사항에서 불명료해지지 않도록 회로는 블럭도로서 나타내었다. 대부분, 타이밍 고려와 같은 것들에 대한 세부적인 것은 본 발명을 완전히 이해하는데 불필요한 사항이거나 관련분야의 통상의 기술자의 수준에 속하는 것인 한 생략되어 있다.
용어 : "버스(bus)"라는 용어는 데이터, 어드레스들, 제어, 상태들 등과 같은 하나 또는 그 이상의 다양한 형태들의 정보를 전달하는데 이용되는 복수의 신호들 및 전도체들을 가리키는데 이용될 것이다. "표명하다(assert)" 및 "부정하다(negate)"라는 용어는 신호, 상태 비트 또는 유사한 장치를 논리적으로 참인 상태 또는 논리적으로 거짓인 상태로 각각 표현하는 것을 언급할 때 이용될 것이다. 논리적으로 참인 상태가 논리 레벨 1 이면, 논리적으로 거짓인 상태는 논리 레벨 0이 될 것이다. 그리고 논리적으로 참인 상태가 논리 레벨 0 이면, 논리적으로 거짓인 상태는 논리 레벨 1 이 될 것이다.
본 발명은 도 1 에서 7 까지 참조하여 더욱 충분히 이해할 수 있다. 도 1은 데이터 처리 시스템(20)을 나타낸다. 데이터 처리 시스템(20)은 외부 버스(24)를 통해 비동기 메모리(26) 및 동기 메모리(28)에 접속된 데이터 프로세서(22)를 일반적으로 포함한다. 또한, 데이터 프로세서(22)는 비동기 메모리(26)에 3 가지 칩 선택 신호들을 제공하고, 이하에서 상세히 기술될 것인 동기 메모리(28)에 4 가지 칩 선택 신호들을 제공하는 칩 선택 회로를 포함한다.
데이터 프로세서(22)는 내부 버스(36)를 통해 데이터 프로세서(22)의 다른 구성요소들에 접속되는 중앙 처리 유닛(CPU)(32)을 일반적으로는 포함하고 있다. 이 다른 구성요소들은 내부 디바이스들(34), 외부 버스 인터페이스(EBI)(38) 및 칩 선택 회로(40)를 포함한다. CPU(32)는 복합 명령 세트 컴퓨터(CISC), 한정 명령 세트 컴퓨터(RISC), 디지탈 신호 프로세서(DSP), 또는 기타 공지된 아키텍쳐 등과 같은 어떤 종래의 CPU 아키텍쳐를 이용할 수도 있다. 내부 디바이스들(34)은 입/출력 주변기들, 인터럽트 제어기들, 타이머 등과 같은 부가적인 기능들을 나타낸다. EBI(38)은 비동기 메모리(26), 동기 메모리(28) 및 외부 버스(24)에 접속될 수 있는 기타 다른 디바이스들로 들어가고 나오는 데이터의 전송을 위해 외부 버스(24)로의 내부 버스(36)상에서 전송되는 어드레스와 데이터 신호들을 결합시키는데 적합해진다.
칩 선태 회로(40)는 실제 물리적 메모리 칩들을 구동시키도록 신호들을 활성화할 수 있는 집적 회로 선택 신호 발생기이다. 예를v들면, 칩 선택 회로(40)는 비동기 메모리(26)에 대한 인터페이싱 "CE1", "OE1" 및 "WE1"으로 지정된 3 가지 신호들을 제공한다. 이 신호들은 각각 종래의 집적 회로 메모리들의 칩 인에이블, 출력 인에이블, 기록 인에이블 입력들을 형성한다. 칩 선택 회로(40)는 또한 동기 메모리 디바이스들에 액세스할 수 있고, 이 디바이스들에 액세스하기 위해 "CE2", "LBA2", "OE2" 및 "WE2"로 표시된 4 가지 신호들을 제공한다. 메모리 집적 회로의 종래의 칩 인에이블, 출력 인에이블 및 기록 인에이블 입력들을 각각 형성하는 것 이외에도, 칩 선택 회로(40)는 또한 동기 사이클 개시 신호로서 기능하는 신호 LBA2 를 제공한다. 어떤 경우에는, 동기 메모리(28)는 버스트 가능한 메모리 디바이스가 될 것이며, 이경우 신호 LBA2 는 버스트 액세스의 개시를 신호로 알리게 될 것이다. 칩 선택 회로(40)는 본 발명의 설명을 쉽게 하기 위해 도 1 에서 생략된 부가적인 칩 선택 신호들을 일반적으로는 제공할 것이다.
도 2 는 도 1 의 칩 선택 회로의 제 1 부분(50)을 설명하는 블럭도이다. 이 부분(50)은 베이스 어드레스 레지스터(51), 옵션 레지스터(52), 베이스 어드레스 비교기(53), 버스트 상태 머신(54) 및 옵션 레지스터(56)를 일반적으로는 포함한다. 베이스 어드레스 레지스터(51)는 베이스 어드레스 및 부분(50)과 관련되는 영역의 크기를 나타내는 비트들을 저장하고, 이들을 베이스 어드레스 비교기(53)에 입력으로서 공급한다. 베이스 어드레스 비교기(53)는 또한 IADDR(23:15)라고 표시된 내부 버스(36)에서 전송되는 어드레스의 임계 비트들을 받아들이기 위한 제 2 입력을 가진다. 베이스 어드레스 비교기(53)는 또한 내부 버스(36)에서 "ICYS"로 표시된 사이클 개시 신호를 받아들이기 위한 제어 입력도 가진다. 신호 ICYS 의 활성화에 응답하여, 베이스 어드레스 비교기(53)는 베이스 어드레스 레지스터(51)에서 나온 베이스 어드레스에 IADDR(23:15)를 비교한다. 베이스 어드레스 비교기(53)는 임계 어드레스 비트 IADDR(12:15)에 의해 표현되는 어드레스가 베이스 어드레스 레지스터(51)에서 한정한 범위내에 있는지를 지시하도록 "MATCH"라고 표시된 출력 신호를 활성화한다.
옵션 레지스터(52)는 영역과 관련된 프로그램가능한 특성을 정의하는 몇개의 비트를 포함하는 16-비트 레지스터이다. 상기 비트의 정의는 아래 표 I 에 설명되어 있다.
표 I
옵션 레지스터(52)의 대부분의 비트는 칩 선택 회로와 관계되는 종래의 기능을 수행한다. 그러나, HPCE 필드는 사용자로 하여금 저전력 소비와 고성능 사이에서 최적의 고려로써 선택하여 시스템을 만들도록 한다. 상기 HPCE 필드는 버스트 상태 머신(54)이 신호 CE를 액티브로 유지하는 다른 영역에 액세스하는 사이클수를 결정한다. HPCE 필드가 00 으로 셋되면, 버스트 상태 머신은 다른 영역으로 4 번의 계속적인 액세스 동안 신호 CE 를 액티브로 유지한다. 다른 영역으로 5 번째의 계속적인 액세스가 시작할 때, 버스트 상태 머신은 신호 CE를 비활성화로 한다. 또한 5 번째의 액세스 개시전에 상기 영역으로 액세스가 발생하면, 버스트 상태 머신(54)은 0 에서 부터 다시 카운트를 시작한다. 01 의 인코딩은 버스트 상태 머신(54)이 8 개의 계속적인 다른 영역으로 액세스하는 동안 신호 CE 를 액티브로 유지하고 다른 영역으로 9 번째의 계속적인 액세스를 시작할 때 신호 CE 를 비활성으로 한다는 것을 제외하면 00 의 인코딩과 유사하다. 10 의 인코딩은 다음 사이클이 상기 영역에 대한 것일지라도 한 사이클의 끝에서 버스트 상태 머신(54)이 항상 신호 CE 를 비활성으로 만든다. 마지막으로 11 의 인코딩은 버스트 상태 머신이 신호 CE 를 상기 영역에 제 1 액세스 후에 칩이 리셋될 때까지 계속적으로 액티브로 유지하게 한다.
00 및 01 인코딩의 유용성으로 사용자는 응용에 최적이 되는 저 전력과 고성능 사이에서 가장 적당한 취사 선택이 되도록 칩 선택 회로(40)를 프로그램이 가능하게 배치할 수 있다. 상기 선택에 영향을 주는 요소는 루프내의 평균 명령수, 상기 영역이 암호 영역인지, 데이터 영역인지 등을 들 수 있다.
버스트 상태 머신(54)은 부분(50)과 관련된 영역에 매칭될 때 칩 선택 출력 신호를 발생하는 액세스 상태 머신이다. 상기 칩 선택 출력 신호는 "HPCE"라고 표시된 칩 인에이블 신호, "BAA"로 표시된 버스트 어드레스 어드밴스 신호, "BWE"라고 표시 버스트 기록 인에이블 신호, "LBA"라고 표시된 로드 버스트 어드레스 신호, "BOE"라고 표시된 출력 인에이블 신호를 포함한다. 또한, BCS 상태 머신(70)은 "BCLK"라고 표시된 버스 클럭 신호를 출력한다. 상기 기능을 수행하기 위해서는 버스트 상태 머신(54)은 내부 버스(36)에 접속되고 그곳에서 어드레스 신호 IADDR(5:1)를 수신한다. 또한 버스트 상태 머신(54)은 "DTACK" 및 "BTACK"로 표시되어 있고 CPU(32)로 액세스 사이클 또는 버스트의 각 워드 전달이 종료됨을 알리는 두가지 신호를 내부 버스(36)로 제공한다.
버스트 상태 머신(54)은 본 발명을 이해하는데 중요한 두가지 상태 머신을 포함한다. 상기 두가지 상태 머신은 HPCE 상태 머신(60) 및 BCS 상태 머신(70)이다. HPCE 상태 머신(60)은 본 발명에 따른 칩 인에이블 메커니즘을 수행하는데 이용되는데 칩 인에이블 신호는 액세스 시간을 줄이기 위해 사이클들 사이에 액티브로 유지되고 사용자는 전력 소비 및 액세스 시간을 선택적으로 고려하여 결정할 수 있다. 또한 BCS 상태 머신(70)은 영역에 대한 액세스가 그 이력에 근거하여 발생하고 있는지에 대한 HPCE 상태 머신(60)의 예측에 응답하여 LBA 신호를 추론적으로 제공하는데 이용된다.
버스트 상태 머신(54)에 부가적으로 포함된 것으로 버스트 어드레스 발생기(BAG)(55)가 있는데, 내부 버스(36)에 DTACK 신호를 제공하고 외부 버스(24)에 제시되는 LOWER ADDRESS(하위 어드레스)를 형성하는 버스트 어드레스값을 발생한다.
제 2 레지스터인 옵션 레지스터(56)는 버스트 칩 선택과 관련된 프로그램가능한 특성을 정의하는 몇개의 비트를 포함하고 있는 16-비트 레지스터이다. 옵션 레지스터(56)는 버스트 상태 머신(54)과 핀 기능 논리에 버스트 칩 선택 정보를 제공한다. 상기 비트의 정의는 아래 표 II 에서 설명하고 있다.
표 II
옵션 레지스터(52)에서 처럼, 옵션 레지스터(56)의 비트 대부분은 칩 선택회로와 관련된 종래의 기능을 수행한다. 그러나, BAG MODE 부분은 사용자가 캐시형 아키텍쳐 및 프리패치형 아키텍쳐에서 선택할 수 있도록 한다. 하나 이상의 CPU 를 가지는 많은 데이터 처리 시스템은 다양한 아키텍쳐 형태를 조합한다. 사용자는 내부 아키텍쳐에 따라 프리패치형 아키텍쳐나 캐시형 아키텍쳐를 선택하기 위하여 BAG MODE 부분을 프로그램한다. 프리패치형을 지시하는 BAG 모드 비트가 소거되면 버스트 어드레스 발생기(BAG)(55)는 메모리 디바이스의 물리적 크기에 의해 결정된 모듈러스 경계에서 신호 DTACK 를 표명함으로써 버스 사이클을 종료한다. 전형적으로는, 모듈러스 경계는 증가된 어드레스의 기능이다. 상기 BAG MODE 비트가 캐시형을 가리키며 셋되면 BAG(55)는 예정된 수의 데이터 전달 후 DTACK 신호를 표명함으로써 버스 사이클을 종료한다. 전형적으로 예정된 수는 메모리 디바이스 크기, 캐시라인의 길이, 외부 및 내부 버스의 성능에 따라 결정된다. 상기 BAG 결정 및 선택은 이하 도 6 을 참고하여 자세히 기술된다.
도 3 은 도 2 의 HPCE 상태 머신(60)의 상태도이다. HPCE 상태 머신(60)은 두가지 상태들(61, 62)중 하나를 취할 수 있다. 상태 천이들(64,65,66,67)은 상태들(61,62)에 관한 것이다. 상태(61)는 "CE_OFF"로 표시되어 있고 영역에 관계된 칩 인에이블이 비활성화되는 상황을 나타낸다. HPCE 상태 머신(60)은 상태 천이(64)가 나타내는 매칭되지 않거나 리셋이 있는 한 상태(61)로 유지한다. 리셋이 비활성화인 동안, 영역에 대한 매칭이 있거나, 또는 옵션 레지스터(1)가 CE 신호는 결코 부정되지 않고 리셋이 비활성화라는 것을 지시한다면 "CE_ON"이라고 표시된 상태(62)로 HPCE 상태 머신(60)이 천이함은 상태 천이(65)에 의해 나타내고 있다. 칩 선택 회로(40)는 HPCE 상태 머신(60)이 상태(62)에 머무르는 한 칩 인에이블 신호를 액티브로 계속하여 유지시킨다. 이러한 상황은 두 가지 조건 중 어느 하나가 참일 때 발생하는 상태 천이(66)로 표현되는데 : 첫째, 옵션 레지스터(52)가 리셋이 비활성화될 때 칩 인에이블 신호는 결코 부정되지 않음(HPCE=1)을 지시할 때; 둘째, 4(HPCE=00) 또는 8(HPCE=01) 버스 사이클중 어느 하나의 옵션 레지스터(52)에 의해서 지시된 주기가 끝나고 리셋이 비활동 상태일 때가 두가지 조건이다. 단지 2 비트만 다른 상황을 인코드하는데 이용가능하므로 본 발명에서는 4 또는 8 주기가 실행되었지만, 다른 실시예에서는 그밖의 선택도 이용할 수 있다.
HPCE 상태 머신(60)은 다음 세 가지 조건중의 어느 하나일 때 CE_OFF 상태(61)로 복귀한다 : 첫째, CE_ON 시간과 관련된 타이머가 종료되었을 때; 둘째, 옵션 레지스터(52)가 CE 는 항상 부정(HPCE=11)됨을 지시할 때; 셋째, 리셋이 발생할 때이다. HPCE 상태 머신(60)은 당해 기술에 알려진 종래의 논리 회로로 수행될 수 있다는 점을 주목하라. 그러나 영역으로 마지막 액세스 이후 지나간 사이클 수를 카운트하는데는 개별적인 하드웨어 타이머가 선호된다는 점을 주목해야 한다. 이 경우, 상태(62)에 있는 동안 HPCE 상태 머신(60)은 매 사이클이 시작할 때마다 타이머를 감소시키고 HPCE 상태 머신(60)과 관련된 영역에 매칭이 있을 때마다 카운터를 다시 로드시킨다.
도 4 는 BCS 상태 머신(70)에 관한 상태도를 나타내는데 상태(71-76) 및 상태 천이(80-85, 90-92)를 포함한다. 상태(71)는 "M0"로 표시되고 BCS 상태 머신(70)의 유휴(idle) 상태를 나타낸다. 상태 M0(71)에서 HPCE 상태 머신(60)이 CE_ON 상태(62)면, BCS 상태 머신(70)은 액세스 사이클이 시작되는 순간 신호 LBA를 활성화한다. BCS 상태 머신(70)은 영역에 어드레스 매칭이 없는 한 M0 상태(71)를 유지한다. BCS 상태 머신(70)은 "EBR"로 표시된 외부 버스 요구를 인식하면 역시 M0 상태(71)를 유지한다. BCS 상태 머신(70)은 어드레스 매칭을 인식하면 M0 상태(71)를 떠난다. 매칭이 검출될 때 BCS 상태 머신(70)이 M0 상태(71)에 있는 동안 HPCE 상태 머신(60)이 CE_ON 상태(62)에 있고 외부 버스 요구가 없을 때라면 BCS 상태 머신(70)은 "M1/M3"로 표시된 상태(72)로 천이(80)를 일으킨다. M1/M3 상태(72)는 신호 HPCE 를 활성화하는데 지연이 없이 메모리 액세스를 시작한다.
HPCE 상태 머신(60)은 CE_OFF 상태(61)이고 BCS 상태 머신(70)은 상태 M0(71)이며, 매칭이 발생하고 어떤 외부 디바이스도 버스를 요구하지 않을 때, BCS 상태 머신(70)은 "M1W"로 표시된 상태(75)로 천이(90)하며, 액세스가 시작되기 전에 신호 HPCE 의 활성으로 초기에 메모리의 전력을 올리기 위해 "M2W"로 표시된 상태(76)로 천이(91)한다. M1W 상태(75)에서, 신호 LBA 는 활성화되고, M1W 상태(75)로 천이(90)하는 것은 HPCE 상태 머신(60)의 천이(65)에 대응한다. M2W 상태(76)로 천이(91)하는 동안 추가로 반클럭 주기가 발생하는데, 이것은 M1/M3 상태(72)로 상태 천이(92)를 통해 천이가 발생한다.
일단 M1/M3 상태(72)에서는 메모리 액세스가 종래의 방식대로 진행된다. 초기 대기 상태가 최소 버스 사이클 시간에서 끝나는 동안 BCS 상태 머신(70)은 M1/M3 상태(72)를 유지한다. BCS 상태 머신(70)은 최소 반클럭 시간 동안 M1/M3 상태(72)로 유지하고 천이(81)로 표시되는 부가 대기 상태에는 M1/M3 상태를 유지할 수도 있다. BCS 상태 머신(70)은 전송의 데이터 위상(data phase)을 시작하기 위해 "M2/MW"로 표시된 상태(73)로 천이(82)한다. M2/MW 상태(73)에서, BCS 상태 머신(70)은 신호 BTACK 및 BAA 를 활성화한다. 신호 BTACK 는 버스트의 한 세그먼트나 "비트"(beat)의 종료를 인식하기 위하여 내부 버스(36)에 제공된다는 점을 주목하라. 옵션 레지스터(52)에서 BURST DATA TIMING 비트(bit)는 버스트 전송의 데이터 위상 동안 대기 상태가 있는지를 결정하고 만일 상기 BURST DATA TIMING 비트가 셋되면, 신호 BTACK 및 BAA 는 다른 모든 클럭 사이클에만 활성화된다.
BCS 상태 머신(70)은 데이터 전송전 예정된 수의 대기 상태가 끝날 때 "M5/M3"로 표시된 상태(74)로 천이(83)가 발생하고, M5/M3 상태(74)에서 데이터는 실제로 전송된다. 버스트에 남아 있는 부가적인 데이터의 비트가 있을 때는 BCS 상태 머신(70)이 상태(73)로 복귀하는 천이(84)가 발생한다. 버스트의 끝에서, BCS 상태 머신(70)은 M0 상태(71)로 되돌아오는 천이(85)를 하고 신호 DATACK 을 내부 버스(36)로 활성화한다.
도 5 는 버스트 상태 머신(54)에 관한 타이밍 다이어그램이다. 도 5 에서 신호 HPCE 및 LBA 를 포함하며, 본 발명을 이해하는데 중요한 몇가지 신호가 나타나 있다. 도 5 에서 설명된 다른 신호들은 버스 클럭 신호 BCLK; "FC"로 표시된 기능 코드 신호; "ADDR"로 표시된 어드레스 신호; "BREQ"로 표시된 버스 요구 신호, 옵션 레지스터(52)의 MSIZE 비트; "R/W"로 표시된 판독/기록 신호; 신호 BAA; "BOE"로 표시된 출력 인에이블 신호; "BWE"로 표시된 기록 인에이블 신호; "DATA"로 표시된 16 데이터 신호 셋트; "IDTACK"로 표시된 초기-래치된 데이터 전송 인식 신호; "IBTACK"로 표시된 초기-래치된 버스트 세그먼트 종료 신호들이다. 상기 대부분의 신호들의 작동은 관례적이고 본 발명에 관한 신호들만 이하 설명될 것이다.
도 5 에서 버스트 클럭 BCLK 상태들은 BCS 상태 머신(70)의 상태들과 대응된다는 점을 주목하라. 도 5 는 2 개의 계속적인 버스트 액세스를 설명한다. 두개의 액세스중 제 1 액세스 동안에는, HPCE 상태 머신(60)은 CE_OFF 상태(61)에 있고, 제 2 액세스 동안에는 HPCE 상태 머신(60)은 CE_ON 상태(62)에 있게 된다. 도 5 는 CE_ON 이 지시되는지 또는 CE_OFF 가 지시되는지의 차이에 따라 상태 머신(60,70)에 미치는 차이점을 설명하고 있다. CE_OFF 에 해당하는 제 1 액세스 동안에는 도 4 의 상태(75, 76)에 해당되는 M1W 동안 신호 LBA 는 활성화된다는 것을 주목해라. 그러나, 제 2 버스트 액세스 동안, 상태(75,76)에 해당되는 상태가 없으므로 신호 LBA 가 M0 상태(71) 동안 활성화된다.
제 2 액세스 동안 신호 LBA 는 추론적으로 활성화되는데 HPCE 상태 머신(60)가 이미 CE_ON 에 대응하는 상태(62)에 있기 때문이다. 가끔, 신호 LBA 가 필요하지 않도록 영역에 대한 액세스가 발생하지 않을 것이다. 그러나 신호 LBA 의 추론적인 활성으로 하나의 완전한 클럭 사이클로 제 2 액세스의 사이클 시간을 개선시키고, 따라서 메모리에 전력을 증가시키는데 이용되는 시스템에서 대기 상태를 제거함으로써 시스템의 성능을 개선시킨다.
설명된 실시예에서, HPCE 상태 머신(60)은 신호 LBA 를 추론적으로 활성화할 것인지를 결정하는 메커니즘으로서 이용되었다. 그러나 다른 실시예에서, 영역에 대한 액세스의 이력에 기초한 다른 메커니즘이 이용될 수도 있다. 예를 들면, 영역에 대한 다음 액세스의 가능성을 예측하는 데에 고성능 마이크로프로세서에서 이용되는 에측을 분기하는 것과 유사한 방법으로 영역에 대한 액세스의 상대 주파수를 다른 메커니즘은 이용할 수도 있다.
도 6 을 참조하면, 버스트 어드레스 발생기(BAG)(55)는 2 개의 모듈로 카운터, 어드레스 증분기(101) 및 버스트 카운터(102)로 구성되어 있고, 내부 버스(36), MUX(103) 및 MUX(104)에 연결되어 있다. 어드레스 증분기(101)는 MATCH 신호 및 내부 버스(36)의 한 부분에 있는 IADDR(5:1)로 표시된 초기 어드레스를 수신한다. 어드레스 증분기(101)는 또한 어드레스 증분기(101)에 저장된 어드레스를 증가시키는데 이용되는 BTACK 신호도 수신한다. 어드레스 증분기(101)가 메모리 경계(예를 들면, 메모리 행의 끝)를 가리키면, BOUNDARY DETECT 신호가 멀티플렉서(MUX)(103)에 제공된다.
BAG(55)는 MUX(104)를 제어하여 외부 버스(24)상에 버스트 어드레스를 출력하기 위한 논리를 가지고 있다. BAG(55)는 한 버스트 사이클 동안 각각의 버스트 어드레스를 발생하고, 구조 아키텍쳐의 요구 조건에 근거한 버스트 사이클을 종료한다. BAG(55)는 어드레스 증분기(101)내 개시 버스트 어드레스를 래치(latch)하고 BTACK 가 표명될 때마다 한 워드 또는 한 증분 IADDR(1) 씩 버스트 어드레스를 증가시킨다. 외부 버스(24)상에 버스트 어드레스(예, 어드레스 또는 IADDR(5:1)의 버스트 부분)를 제공하여, 데이타 전송을 위한 증가된 버스트 어드레스를 필요로 하는 버스트 디바이스는 충족된다.
어드레스 제공을 용이하게 하기 위해, MUX(104)에 IADDR(5;1)에서 버스트 개시 어드레스 및 어드레스 증분기(101)에서 증가된 버스트 어드레스가 공급된다. PIPELINE FLASH 의 옵션 레지스터(52) MEMORY TYPE 선택은 외부 어드레스 버스(24)로 증가된 어드레스 또는 버스트 개시 어드레스를 제공할 것인지를 지시한다. 상기 PIPELINE FLASH 정보는 MUX(104)에 제공되고 외부 버스(24)로 계속적인 버스트 개시 어드레스 또는 증가된 버스트 어드레스의 발생을 선택한다. 시스템 조건인 데이터 프로세서의 신호, 제어 레지스터 상태, 또는 외부 디바이스에서부터의 신호에 기초한 외부 어드레스 제공을 결정하는데 다른 실시예로 이용 가능하다. 다른 실시예는 중요한 버스트 어드레스가 다양한 길이를 가지고 있고 제공되는 데이터 정보량이 예정되거나 프로그램가능함을 주목하라. 어드레스 비트의 상위 부분은 외부 버스(24)에 제공됨을 주목하라.
BAG(55)내의 버스트 사이클의 종료는 어드레스 증분기(101)에 도달한 물리적인 어드레스 또는 버스트 카운터(102)내에서 카운팅된 버스트 전달수에 기초한다. 프리패치 모드 작동(BAG MODE=0)에서 버스트 사이클이 메모리 위치(2N-1)에 액세스하면 버스 사이클은 DTACK 신호의 내부 표명으로써 종료한다. DTACK 신호의 그런 표명은 어드레스 2N 에서 시작하는 다음 버스상에서 버스트 동작을 다시 시작한다는 점을 주목하라. 본 발명의 한 실시예에서 어떤 물리적인 경계제한도 없는 버스트 디바이스에 대해서 이 필드는 DEVICE BOUNDARY 비트에 의해 지시된 데이터 전송수이후에 버스트 사이클이 종료되는, 표 I 에 따른 버스트 길이를 선택하도록 프로그램되어 있다.
캐시 모드 동작(BAG MODE=1)에서 상기 BAG 은 버스트 어드레스에 관계없이 2N 데이터 전송에서 버스트 교류(transaction)를 종료한다. MATCH 신호 및 BTACK 신호는 버스트 카운터(102)에 공급된다. BAG MODE 비트는 수행되는 트랜잭션의 형태, 즉 캐시형인지, 프리패치형인지를 가리킨다. 옵션 레지스터(56)내의 BAG MODE 비트의 표명은 버스트 카운터(102) 및 MUX(103)으로의 캐시 액세스를 가리킨다. MATCH 신호에 응답하여, 버스트 카운터(102)는 초기화하고, 캐시 라인 크기에 의해 정해지는 데이터 전송의 예정된 수까지 카운트한다. 버스트 카운터(102)는 MUX(103)로 LIMIT DETECT 신호를 하여 한 캐시 라인에 대해 데이터 전송이 완성되었음을 지시한다. MUX(103)는 프리패치 모드에 대한 BOUNDARY DETECT 및 캐시 모드에 대한 LIMIT DETECT 모두에 대해서 IDATCK 신호를 발생하고, 여기서 BAG MODE 비트는 트랜잭션 모드를 가리킨다. 캐시 모드 트랜잭션에 대해서는, BAG MODE 비트가 역시 버스트 카운터(102)를 인에이블시킨다.
도 7 은 도 1 의 칩 선택 회로(40)의 제 2 부분(110)의 블럭도이다. 부분(110)은 일반적으로는 베이스 어드레스 레지스터(111), 옵션 레지스터(112), 베이스 어드레스 비교기(113) 및 비동기 상태 머신(114)을 포함한다. 베이스 어드레스 레지스터(111)는 부분(110)에 관한 영역의 크기 및 베이스 어드레스를 포함하는 비트를 저장하고 베이스 어드레스 비교기(113)에 입력으로 이를 제공한다. 베이스 어드레스 비교기(113)는 IADDR(23:15)로 표시된 내부 버스(36)에 의해 전달되는 어드레스의 임계 비트를 수신하기 위해 제 2 의 입력을 가지고 있다. 베이스 어드레스 비교기(113)는 임계 어드레스 비트 IADDR(23:15)에 의해 표현되는 어드레스는 베이스 어드레스 레지스터(111)에서 한정된 범위내에 있음을 지시하는 "MATCH"라고 표시된 출력을 활성화한다.
옵션 레지스터(112)는 영역과 관련된 프로그램 가능한 특성을 정의하는 몇개의 비트를 포함한다. 이러한 비트의 정의는 아래표 III 에 설명되어 있다.
표 III
비동기 상태 머신(114)은 부분(110)과 관련된 영역에 매칭되면 "CSi"라고 표시된 칩 선택 출력 신호를 발생하는 액세스 상태 머신이다. 칩 선택 출력 신호는 옵션 레지스터(112)에서 STRB 및 S/W 비트를 적절히 세트시켜서 CE, WE 또는 OE 중 어느 하나로 프로그램이 될 수 있다. 비동기 상태 머신(114)은 내부 버스(36)로 IDTACK 신호를 제공하여 액세스 사이클을 종료시키는 DTACK 발생기 회로(120)를 포함한다. DTACK 발생기 회로(120)는 MATCH 신호를 수신하고 옵션 레지스터(112)의 DTACK 필드에 대한 프로그램된 사이클 수에 기초하여 신호 IDTACK 를 발생한다.
본 발명의 한 관점에 따라, 비동기 상태 머신(114)은 만약 NEGATE EARLY 비트가 옵션 레지스터(112)에서 설정되면 선택적으로 사이클에서 초기에 신호 CSi 를 부정한다. 이런 측면은 버스 사이클의 타이밍 다이어그램을 나타내는 도 8 을 참조하면 더욱 잘 이해될 것이다. 도 8 에는 여섯 개의 반클럭 주기가 있는데 이것들은 "S0", "S1", "S2", "S3", "S4", "S5", "S6"으로 표시되며, 최소 길이 버스 사이클의 완전한 세 개의 클럭들을 형성한다. 사이클은 CPU(32)가 S0 전에 신호 ICYS 를 한 클럭 활성화할 때 시작된다. 응답으로, 옵션 레지스터(112)내의 STRB 비트가 신호 CSi 는 어드레스 스트로브(strobe) 신호와 동시에 활성화되어야 함을 지시하면 "t1"으로 표시된 시간에서 주기 S1 동안 신호 CSi 는 활성화될 수 있다. "정상(normal)" 동작에는, NEGATE EARLY 는 0 으로 셋되고 "t3"로 표시된 시간에서 신호 CSi 는 상태 S5 에의 버스 사이클의 끝부분에서 비활성화된다. 이러한 "정상" 동작은 대기 상태가 없는 한 사이클 동안 시간 t3(상태 S5)에서, 대기 상태가 있는 다른 사이클 동안에는 시간 t6(상태 S5)에서 신호 CSi 의 비활성화로서 나타난다.
그러나, NEGATE EARLY 비트가 1 로 셋되어 옵션 레지스터(112)에서 그렇게 정의되면, 신호 CSi 는 상태 S3 에서, 초기에 한 클럭 주기 비활성화된다. 대기 상태수가 1 이상이고, 버스 사이클이 정상적으로 종료되면(즉, 사이클은 버스 에러나 부분(110) 앞으로 신호 DTACK 를 되돌리는 다른 블럭없이 종료된다), 신호 CSi는 초기에 비활성화될 뿐임을 유의하라. 따라서 도 8 은 두개의 대기 상태가 있는 제 2 액세스 동안 신호 CSi 의 초기 비활성만을 나타낸다. 상기 액세스에서, 신호 CSi 는 시간 t5(상태 S3)에서 부정된다. 삽입된 대기 상태의 수는 신호 CSi 가 초기에 부정되는 버스 상태(S3)에 영향을 미치지 않고; 신호 CSi 는 대기 주기 동안 표명되어 유지되고, 그런 다음 마지막 클럭 사이클에 앞서 한 클럭 사이클을 부정한다.
상기 발명은 양호한 실시예의 내용으로 설명되었지만, 당해 기술분야의 기술자들에게는 본 발명이 다양하게 수정될 수 있으며 위에 개시하고 기술된 특정한 실시예 이외의 많은 실시예를 가정할 수 있음은 자명한 것이다. 예를 들면, 신호 LBA 를 활성화하고 칩 인에이블 신호를 액티브로 유지하는 것을 추론적으로 결정하기 위해 이용된 메커니즘은 실시예에 따라 변형이 가능하다. 따라서, 본 발명의 진정한 취지 및 범위에 해당하는 모든 변형을 포함하도록 첨부된 청구범위로서 의도하는 바이다.
도 1 은 본 발명에 따른 데이터 처리 시스템을 구성하는 블럭도.
도 2 는 도 1 의 칩 선택 회로의 제 1 부분의 블럭도.
도 3 은 도 2 의 HPCE 상태 머신(state machine)의 상태도.
도 4 는 도 2 의 BCS 상태 머신의 상태도.
도 5 는 도 2 의 칩 선택 회로의 제 1 부분의 작동을 이해하는데 유용한 타이밍도.
도 6 은 도 2 의 버스트 어드레스 발생기를 구성하는 부분 블록도 및 부분 논리도.
도 7 은 도 1 의 칩 선택 회로의 제 2 부분의 블록도.
도 8 은 도 2 의 칩 선택 회로의 제 2 부분의 작동을 이해하는데 유용한 타이밍도.
* 도면의 주요부분에 대한 부호의 설명
20 : 데이터 처리 시스템 22 : 데이터 프로세서
26 : 비동기 메모리 28 : 동기 메모리
32 : 중앙 처리 유닛(CPU) 34 : 내부 디바이스
36 : 내부 버스 38 : 외부 버스 인터페이스
40 : 칩 선택 회로 54 : 버스트 상태 머신
103 : MUX

Claims (10)

  1. 메모리 액세스 방법에 있어서:
    메모리의 제 1 영역에 대한 제 1 액세스를 검출하고, 응답하여 상기 제 1 액세스 동안 칩 선택 신호를 활성화하는 단계;
    상기 제 1 액세스 이후에 예정된 수의 제 2 액세스들 동안 상기 칩 선택 신호를 액티브로 유지하는 단계로서, 상기 예정된 수의 제 2 액세스들 각각은 상기 제 1 영역과 다른 영역에 대한 것인, 상기 칩 선택 신호를 액티브로 유지하는 단계;
    상기 다른 영역에 대한 제 3 액세스에 응답하여 상기 칩 선택 신호를 비활성화하는 단계로서, 상기 제 3 액세스는 상기 예정된 수의 제 2 액세스들 이후에 즉시 발생하는, 상기 칩 선택 신호를 비활성화하는 단계; 및
    상기 예정된 수를 규정한 값을 저장하는 단계를 포함하는, 메모리 액세스 방법.
  2. 메모리 액세스 방법에 있어서:
    옵션 레지스터에서 예정된 수의 제 2 액세스들을 나타내는 값을 저장하는 단계;
    메모리의 제 1 영역에 대한 제 1 액세스를 검출하고, 응답하여 상기 제 1 액세스 동안 칩 선택 신호를 활성화하는 단계;
    상기 제 1 액세스 이후에 예정된 수의 제 2 액세스들 동안 상기 칩 선택 신호를 액티브로 유지하는 단계로서, 상기 예정된 수의 제 2 액세스들 각각은 상기 제 1 영역과 다른 영역에 대한 것인, 상기 칩 선택 신호를 액티브로 유지하는 단계; 및
    상기 다른 영역에 대한 제 3 액세스에 응답하여 상기 칩 선택 신호를 비활성화하는 단계로서, 상기 제 3 액세스는 상기 예정된 수의 제 2 액세스들 이후에 즉시 발생하는, 상기 칩 선택 신호를 비활성화하는 단계를 포함하는, 메모리 액세스 방법.
  3. 메모리 액세스 방법에 있어서:
    메모리 액세스의 개시를 검출하는 단계;
    상기 메모리 액세스가 예정된 영역에 대한 것인지를 예측하는 단계;
    상기 메모리 액세스가 상기 예정된 영역에 대한 것으로 예측되면, 제 1 칩 선택 신호를 활성화하는 단계; 및
    상기 메모리 액세스가 실제로 상기 예정된 영역에 대한 것인지를 판별하기 위하여 상기 메모리 액세스의 어드레스를 검사하는 단계;
    상기 메모리 액세스가 상기 검사하는 단계에 근거하여 상기 예정된 영역에 대한 것이라고 판별되면, 제 2 칩 선택 신호를 활성화함으로써 상기 메모리 액세스를 완성하는 단계; 및
    상기 메모리 액세스가 상기 예정된 영역이 아닌 제 2 영역에 대한 것이라고 판별되면, 상기 제 2 칩 선택 신호를 인액티브로 유지함으로써 상기 예정된 영역에 대한 상기 메모리 액세스를 종료하는 단계를 포함하는, 메모리 액세스 방법.
  4. 메모리 액세스 방법에 있어서:
    0이 아닌 수인 제 1 액세스 사이클들의 수를 선택하는 단계;
    메모리의 제 1 영역에 대한 제 1 액세스를 검출하고, 응답하여 상기 제 1 액세스 동안 칩 선택 신호를 활성화하는 단계;
    상기 제 1 액세스 이후에 상기 제 1 액세스 사이클들의 수 동안 상기 칩 선택 신호를 액티브로 유지하는 단계로서, 상기 제 1 액세스 사이클들의 수 각각은 상기 제 1 영역과 다른 영역에 대한 것인, 상기 칩 선택 신호를 액티브로 유지하는 단계; 및
    상기 다른 영역에 대한 제 3 액세스에 응답하여 상기 칩 선택 신호를 비활성화하는 단계로서, 상기 제 3 액세스는 상기 제 1 액세스 사이클들의 수 이후에 즉시 발생하는, 상기 칩 선택 신호를 비활성화하는 단계를 포함하는, 메모리 액세스 방법.
  5. 메모리 액세스 방법에 있어서:
    메모리 액세스에 대한 요구를 수신하는 단계;
    메모리 액세스에 대한 상기 요구가 제 1 메모리 디바이스에 대한 것인지를 판별하는 단계;
    상기 제 1 메모리 디바이스와 관련된 칩 선택 부정 값을 메모리 저장 유닛에 저장하는 단계;
    메모리 액세스에 대한 상기 요구가 상기 제 1 메모리 디바이스에 대한 것이라는 판별에 응답하여, 제 1 버스 사이클에서 상기 제 1 메모리 디바이스에 대한 칩 선택 신호를 표명하는 단계;
    상기 칩 선택 부정 값이 제 1 값이라면, 제 2 버스 사이클에서 상기 칩 선택 신호를 부정하는 단계;
    상기 칩 선택 부정 값이 제 2 값이라면, 제 3 버스 사이클에서 상기 칩 선택 신호를 부정하는 단계; 및
    상기 제 2 버스 사이클에 후속하는 데이터 수취응답 신호를 생성하는 단계를 포함하며,
    상기 제 2 버스 사이클은 상기 제 3 버스 사이클 이전의 적어도 하나의 클록 사이클인, 메모리 액세스 방법.
  6. 데이터 처리 시스템에 있어서;
    중앙 처리 유닛;
    외부 버스에 결합된 외부 버스 인터페이스;
    상기 중앙 처리 유닛 및 상기 외부 버스 인터페이스에 결합된 내부 버스; 및
    상기 중앙 처리 유닛에 결합된 칩 선택 회로로서,
    칩 선택 신호를 생성하기 위한 제 1 논리 회로;
    상기 제 1 논리 회로에 결합되고, 칩 선택 부정 값과 관련된 적어도 하나의 비트를 갖는 옵션 레지스터;
    데이터 수취응답 신호를 생성하기 위한 제 2 논리 회로; 및
    상기 제 1 논리 회로에 결합되고, 상기 제 2 논리 회로에 결합된 카운터 유닛을 포함하는, 상기 칩 선택 회로를 포함하며,
    상기 옵션 레지스터에서 적어도 하나의 비트가 제 1 값이라면, 상기 제 1 논리 회로는 제 1 버스 사이클 상태에서 상기 칩 선택 신호를 부정하고, 상기 옵션 레지스터에서 적어도 하나의 비트가 제 2 값이라면, 상기 제 2 논리 회로는 제 2 버스 사이클 상태에서 상기 칩 선택 신호를 부정하며,
    상기 제 2 논리 회로는 제 2 버스 사이클 상태에서 상기 데이터 수취응답 신호를 표명하는, 데이터 처리 시스템.
  7. 데이터 처리 시스템에 있어서:
    중앙 처리 유닛;
    외부 버스에 결합된 외부 버스 인터페이스;
    상기 중앙 처리 유닛 및 상기 외부 버스 인터페이스에 결합된 내부 버스; 및
    상기 중앙 처리 유닛에 결합된 칩 선택 회로로서,
    칩 선택 신호를 생성하기 위한 제 1 논리 회로;
    상기 제 1 논리 회로에 대한 적어도 하나의 칩 선택 부정 신호 입력; 및
    데이터 수취응답 신호를 생성하기 위한 제 2 논리 회로를 포함하는, 상기 칩 선택 회로를 포함하며,
    상기 적어도 하나의 칩 선택 부정 신호의 표명에 응답하여, 상기 제 1 논리 회로는 제 1 버스 사이클에서 상기 칩 선택 신호를 부정하고, 상기 제 2 논리 회로는 제 2 버스 사이클에서 상기 데이터 수취응답 신호를 표명하며, 상기 제 2 버스 사이클은 상기 제 1 버스 사이클에 후속하는 적어도 하나의 클록 사이클인, 데이터 처리 시스템.
  8. 메모리 액세스 방법에 있어서:
    메모리 액세스에 대한 요구를 수신하는 단계;
    메모리 액세스에 대한 상기 요구가 제 1 메모리 디바이스에 대한 것인지를 판별하는 단계;
    메모리 액세스에 대한 상기 요구가 상기 제 1 메모리 디바이스에 대한 것이라는 판별에 응답하여, 제 1 버스 사이클에서 상기 제 1 메모리 디바이스에 대한 칩 선택 신호를 표명하는 단계;
    상기 제 1 메모리 디바이스에 관련된 칩 선택 부정 신호를 수신하는 단계;
    상기 칩 선택 부정 신호를 수신하는 것에 응답하여, 상기 칩 선택 부정 신호가 표명되면, 제 2 버스 사이클에서 상기 칩 선택 신호를 부정하고, 상기 칩 선택 부정 신호가 부정되면, 제 3 버스 사이클에서 상기 칩 선택 신호를 부정하는 단계로서, 상기 제 2 버스 사이클은 상기 제 3 버스 사이클 이전의 적어도 하나의 클록 사이클인, 상기 칩 선택 신호를 부정하는 단계; 및
    데이터 수취응답 신호를 표명하는 단계를 포함하는, 메모리 액세스 방법.
  9. 메모리 액세스 방법에 있어서:
    액세스의 개시를 나타내기 위해 사이클 개시 신호를 수신하는 단계;
    상기 액세스의 개시에 응답하여 상기 액세스가 캐시형 액세스인지 또는 프리패치형 액세스인지를 판별하는 단계;
    상기 사이클 개시 신호를 수신하는 것에 응답하여 버스트 전송을 시작하는 단계;
    상기 액세스가 상기 캐시형 액세스이면, 예정된 수의 데이터 전송들을 카운팅하고, 그에 응답하여 데이터 수취응답 신호를 표명하는 단계;
    상기 액세스가 상기 프리패치형 액세스이면, 어드레스 신호를 증분하고, 증분된 어드레스가 예정된 모듈러스 경계를 가로지른 후 상기 데이터 수취응답 신호를 표명하는 단계; 및
    상기 데이터 수취응답 신호에 응답하여 상기 버스트 전송을 종료하는 단계를 포함하는, 메모리 액세스 방법.
  10. 데이터 처리 시스템에 있어서:
    중앙 처리 유닛;
    외부적으로 통신하기 위한 외부 버스 인터페이스;
    상기 중앙 처리 유닛과 결합된 내부 버스 인터페이스; 및
    버스트 증분들을 카운팅하기 위한 버스트 카운터 유닛과, 전송 모드와 관련된 적어도 하나의 비트를 가진 옵션 레지스터를 포함하는 버스트 액세스들을 발생시키기 위한 버스트 어드레스 회로를 포함하며,
    사이클 개시 신호에 응답하여, 상기 전송 모드와 관련된 적어도 하나의 비트가 제 1 값이면, 상기 버스트 어드레스 회로는 상기 버스트 카운터 유닛을 초기화하고, 상기 버스트 카운터 유닛이 예정된 수의 데이터 전송들을 카운팅한 후 버스트 전송에서 제 1 사이클에 대한 끝을 나타내기 위해 데이터 수취응답 신호를 표명하며, 상기 전송 모드와 관련된 적어도 하나의 비트가 제 2 값이면, 상기 버스트 어드레스 회로는 증분된 어드레스의 예정된 모듈러스 경계에서 상기 버스트 전송의 상기 제 1 사이클에 대한 끝을 나타내기 위해 상기 데이터 수취응답 신호를 표명하는, 데이터 처리 시스템.
KR1019970023303A 1996-06-06 1997-06-05 메모리액세스방법및데이터처리시스템 KR100457478B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US08/660,702 US6006288A (en) 1996-06-06 1996-06-06 Method and apparatus for adaptable burst chip select in a data processing system
US08/660,028 US5813041A (en) 1996-06-06 1996-06-06 Method for accessing memory by activating a programmable chip select signal
US660,028 1996-06-06
US660,702 1996-06-06
US08/660,620 US5875482A (en) 1996-06-06 1996-06-06 Method and apparatus for programmable chip select negation in a data processing system
US660,620 1996-06-06

Publications (2)

Publication Number Publication Date
KR980004047A KR980004047A (ko) 1998-03-30
KR100457478B1 true KR100457478B1 (ko) 2005-04-06

Family

ID=27418025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970023303A KR100457478B1 (ko) 1996-06-06 1997-06-05 메모리액세스방법및데이터처리시스템

Country Status (5)

Country Link
EP (2) EP0811921B1 (ko)
JP (1) JPH1083343A (ko)
KR (1) KR100457478B1 (ko)
DE (1) DE69718846T2 (ko)
TW (1) TW363153B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6120621A (en) * 1996-07-08 2000-09-19 Alcan International Limited Cast aluminum alloy for can stock and process for producing the alloy
JP2002288036A (ja) * 2001-03-27 2002-10-04 Nec Corp メモリ読出し回路およびice
US6701422B2 (en) * 2001-03-29 2004-03-02 Koninklijke Philips Electronics N.V. Memory control system with incrementer for generating speculative addresses
DE10361059A1 (de) * 2003-12-22 2005-07-28 Micronas Gmbh Verfahren und Vorrichtung zum Steuern eines Speicherzugriffs
JP4455593B2 (ja) * 2004-06-30 2010-04-21 株式会社ルネサステクノロジ データプロセッサ
JP4692678B2 (ja) * 2007-06-19 2011-06-01 富士通株式会社 情報処理装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108471A (ja) * 1991-10-17 1993-04-30 Matsushita Electric Ind Co Ltd メモリ装置
JPH07105093A (ja) * 1993-10-04 1995-04-21 Mitsubishi Electric Corp データ処理装置
JPH07129458A (ja) * 1993-10-29 1995-05-19 Kyocera Corp メモリ制御装置
KR960008565A (ko) * 1994-08-31 1996-03-22 빈센트 비. 인그라시아 제어된 버스트 메모리 액세스 기능을 갖는 데이타 처리기 및 그 방법
KR0143317B1 (ko) * 1995-04-26 1998-08-17 김광호 양방향 액세스 가능한 대용량 메모리 장치
KR100373221B1 (ko) * 1994-11-25 2003-07-18 가부시끼가이샤 히다치 세이사꾸쇼 동기식메모리장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0731627B2 (ja) * 1985-08-10 1995-04-10 株式会社リコー メモリ−装置
JPH0644393B2 (ja) * 1986-04-08 1994-06-08 日本電気株式会社 半導体メモリ
IT1216087B (it) * 1988-03-15 1990-02-22 Honeywell Bull Spa Sistema di memoria con selezione predittiva di modulo.
EP0501621A3 (en) * 1991-02-26 1994-07-06 Hewlett Packard Co Address prediction and verification for burst cycle data reads
DE69230134T2 (de) * 1991-08-16 2000-06-29 Cypress Semiconductor Corp Dynamisches hochleistungsspeichersystem
US5502835A (en) * 1994-08-31 1996-03-26 Motorola, Inc. Method for synchronously accessing memory

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05108471A (ja) * 1991-10-17 1993-04-30 Matsushita Electric Ind Co Ltd メモリ装置
JPH07105093A (ja) * 1993-10-04 1995-04-21 Mitsubishi Electric Corp データ処理装置
JPH07129458A (ja) * 1993-10-29 1995-05-19 Kyocera Corp メモリ制御装置
KR960008565A (ko) * 1994-08-31 1996-03-22 빈센트 비. 인그라시아 제어된 버스트 메모리 액세스 기능을 갖는 데이타 처리기 및 그 방법
KR100341948B1 (ko) * 1994-08-31 2002-11-30 모토로라 인코포레이티드 제어된버스트메모리액세스기능을갖는데이타처리기및그방법
KR100373221B1 (ko) * 1994-11-25 2003-07-18 가부시끼가이샤 히다치 세이사꾸쇼 동기식메모리장치
KR0143317B1 (ko) * 1995-04-26 1998-08-17 김광호 양방향 액세스 가능한 대용량 메모리 장치

Also Published As

Publication number Publication date
EP0811921A3 (en) 1998-09-23
EP1197867A3 (en) 2005-12-14
TW363153B (en) 1999-07-01
EP0811921B1 (en) 2003-02-05
EP1197867A2 (en) 2002-04-17
JPH1083343A (ja) 1998-03-31
KR980004047A (ko) 1998-03-30
EP0811921A2 (en) 1997-12-10
DE69718846T2 (de) 2003-06-18
DE69718846D1 (de) 2003-03-13

Similar Documents

Publication Publication Date Title
JP3739797B2 (ja) 縮小命令セット・コンピューター・マイクロプロセッサーの構造
KR100341948B1 (ko) 제어된버스트메모리액세스기능을갖는데이타처리기및그방법
US5926053A (en) Selectable clock generation mode
US6279077B1 (en) Bus interface buffer control in a microprocessor
JP2002539527A (ja) プログラム可能な待ち状態を有するマイクロプロセシング装置
US5822758A (en) Method and system for high performance dynamic and user programmable cache arbitration
KR20040091705A (ko) 데이터 처리 시스템을 위한 저 전력 시스템 및 방법
JP3242508B2 (ja) マイクロコンピュータ
JP3638271B2 (ja) 情報処理装置
US6085261A (en) Method and apparatus for burst protocol in a data processing system
US5813041A (en) Method for accessing memory by activating a programmable chip select signal
US5815692A (en) Distributed clock generator
KR100457478B1 (ko) 메모리액세스방법및데이터처리시스템
US5590316A (en) Clock doubler and smooth transfer circuit
US5822762A (en) Information processing device with decision circuits and partitioned address areas
US6003120A (en) Method and apparatus for performing variable length processor write cycles
US6006288A (en) Method and apparatus for adaptable burst chip select in a data processing system
US6769051B2 (en) Memory controller and memory control method for controlling an external memory device to be accessible even in an addressing mode that is not supported thereby
US5557782A (en) Flexible deterministic state machine
US5754825A (en) Lower address line prediction and substitution
US5568631A (en) Multiprocessor system with a shared control store accessed with predicted addresses
EP0380291A2 (en) Pump bus to avoid indeterminacy in reading variable bit field
EP0437712B1 (en) Tandem cache memory
US5916311A (en) Bus controller and information processing device providing reduced idle cycle time during synchronization
US5875482A (en) Method and apparatus for programmable chip select negation in a data processing system

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
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121024

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20131024

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20141027

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee