[go: up one dir, main page]

KR100399674B1 - 데이터처리기및액세스방법 - Google Patents

데이터처리기및액세스방법 Download PDF

Info

Publication number
KR100399674B1
KR100399674B1 KR1019960041819A KR19960041819A KR100399674B1 KR 100399674 B1 KR100399674 B1 KR 100399674B1 KR 1019960041819 A KR1019960041819 A KR 1019960041819A KR 19960041819 A KR19960041819 A KR 19960041819A KR 100399674 B1 KR100399674 B1 KR 100399674B1
Authority
KR
South Korea
Prior art keywords
value
control
signal
memory
data
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
KR1019960041819A
Other languages
English (en)
Other versions
KR970016898A (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 KR970016898A publication Critical patent/KR970016898A/ko
Application granted granted Critical
Publication of KR100399674B1 publication Critical patent/KR100399674B1/ko
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

데이터 처리 시스템(10)은 다양한 메모리 장치들 및 외부 주변 장치들과 유연하게 인터페이스한다. 제어 레지스터(94)는 시스템에 의해 실행되는 판독 및 기록 액세스들에 대한 타이밍 관계를 동적으로 제어하기 위하여 제공된다. 제어 레지스터의 비트들의 제 1 세트(PA)는 외부 장치로부터 제 1 데이터 값을 판독하기 위해 필요한 초기 시간들에 대한 타이밍을 제어한다. 제어 레지스터의 비트들의 제 2 세트들(SA)의 외부 장치로부터 그 연속적인 데이터 값을 판독하기 위해 필요한 각각의 연속적인 시간 양에 대한 타이밍을 제공한다.

Description

데이터 처리기 및 액세스 방법
발명의 분야
본 발명은 일반적으로 데이터 처리 시스템에 관한 것이며, 특히, 데이터 처리 시스템의 외부 장치를 액세스하기 위한 방법 및 장치에 관한 것이다.
발명의 배경
집적 회로 마이크로프로세서들은 많은 경우에 있어서, 어떤 기능들을 제공하기 위하여 다른 집적 회로 장치들과 연결되어야 한다. 외부 장치들의 예들은 메모리, 직렬 인터페이스 어댑터, 아날로그-디지털 변환기들과 다른 많은 장치들을 포함한다. 대부분의 경우, 각각의 이러한 외부 장치는 마이크로프로세서에 의해 액세스될 때 장치가 적절히 활성화되도록 외부 제어 신호를 요구할 것이다. 예를 들면, 정적 랜덤 액세스 메모리(SRAM, static random access memory) 집적 회로는 판독과 기록 액세스들을 제어하기 위하여 칩 인에이블, 출력 인에이블, 및 기록 인에이블제어 신호들을 요구한다. 이들 신호들의 타이밍 요구는 상업적으로 이용 가능한 장치들 사이에 다소 차이점이 있다. 예를 들면, 몇몇 SRAM들은 출력 인에이블 신호에 대하여 비동기적으로 출력 데이터를 제공하지만, 다른 SRAM들은 출력 인에이블을 샘플링하고 클락 신호와 함께 동기적으로 출력 데이터를 제공한다.
통상적으로, 마이크로프로세서와 다른 집적 회로들을 사용하는 시스템의 설계자는 마이크로프로세서 자체에 의해 생성된 어드레스 신호와 버스 제어 신호들로 부터 요구된 칩 선택 신호들을 생성시키기 위하여 "글루 논리(glue logic)"를 이용할 것이다. 특별한 논리는 설계되는 시스템의 비용을 상당히 높이고 성능을 저하시킬 수 있어 상당히 바람직하지 못하다.
캘리포니아주 산타클라라의 인텔사 제품인 80186(iAPX라고도 함)은 칩 선택 신호들을 생성시키기 위한 내부 논리를 가진 집적 회로 마이크로프로세서이다. 칩 선택 논리(chip select logic)는 7개의 가능한 칩 선택들 각각이 활성인 어드레스 범위를 프로그램하기 위해 성능을 제한하였고 대기 상태를 각 칩 선택이 활성인 버스 사이클에 프로그램 가능하게 삽입할 수 있다. 또한, 몇몇 칩 선택은 단지 메모리에서만 또는 마이크로프로세서의 I/O 어드레스 공간들에서 가동되도록 활성되도록 프로그램 될 수 있다.
온-보드(on-board) 칩 선택 논리를 가진 집적 회로 마이크로프로세서의 다른 예는 1992년 9월 29일 발행된 죤(John A. Langan)과 제임스(James M. Sibigtroth)의 미합중국 특허 제 5,151,986 호에 개시되어 있다. 개시된 칩 선택 논리는 제어 레지스터를 포함하고, 레지스터에 의해 타이밍, 대기 상태들의 수와 극성이 각각의몇몇 칩 선택 출력들 각각에 대하여 개별적으로 프로그램될 수 있다.
마이크로 집적 회로 상으로의 칩 선택 논리의 집적화와 관련된 주된 문제는 사용자에게 충분한 유연성을 제공하는 것을 포함한다. 글루 논리를 이용하면 시스템 설계자는 마이크로프로세서의 메모리 맵과 타이밍 및 칩 선택 신호들 자체의 다른 특징을 가진 각각의 외부 장치를 배치하는데 넓은 범위를 가지기 때문에 아주 유연해진다. 가능한 시스템 설계의 다양성과 특정 주변 장치에 대한 칩 선택 요구가 크기 때문에 이런 유연성은 아주 유용하다. 적절한 범위 내에서 장치의 크기와 복잡성을 억제하면서 집적화된 칩 선택 장치에서 충분한 유연성을 제공하는 것은 상당히 어렵다.
동시에, 집적 회로의 비용을 최소화하는 것은 중요하다. 몇몇 요인들은 칩 선택 논리를 집적화하는 비용에 영향을 미친다. 한 요인은 칩 선택 논리에 의해 요구된 회로 면적으로, 칩의 크기가 더 크면 웨이퍼당 이용가능한 다이(die)의 수가 감소되기 때문이다. 다른 요인은 장치 핀의 수로, 핀 카운트 패키지들(pin-count packages)이 더 크면 일반적으로 값이 더 비싸기 때문이다. 세 번째 요인은 칩을 설계하는데 필요한 기술적인 노력의 양이며, 더 적은 시간을 요구하는 칩이 양호하다. 따라서, 집적 회로 마이크로프로세서들에 대하여 유연하지만 비용이 적게 드는 칩 선택 논리 회로가 필요하다.
본 발명은 다양한 메모리 장치들 및 데이터 처리 시스템과 인터페이스하는 외부 주변장치 양자를 선택하는데 있어서 사용자에게 큰 유연성을 허용하는 데이터처리 시스템 및 데이터 처리 시스템을 작동시키는 방법을 제공한다. 데이터 처리 시스템에서, 제어 레지스터는 데이터 처리 시스템에 의해 실행된 판독 및 기록 액세스 사이의 타이밍 관계를 동적으로 제어하기 위하여 제공된다.
예를 들면, 제어 레지스터에 저장된 비트들의 제 1 세트는 기록 인에이블 신호가 데이터 값을 외부 장치들에 기록하는데 소요된 시간의 길이를 나타내기 위하여 어서트(assert)되는 시간을 결정한다. 기록 인에이블 신호의 어서트를 제어하기 위하여 제어 레지스터의 비트들의 제 1 세트를 이용하면 외부 주변 장치와 데이터 처리 시스템 내에 포함된 외부 메모리는 판독 및 기록 액세스들에 대하여 상이한 타이밍 요구를 가진다는 것을 알 수 있다. 심지어 동일한 외부 주변 장치 또는 메모리는 일반적으로 실행하는데 판독 사이클보다 더 많거나 적은 시간을 요구하는 기록 사이클을 가질 수 있다. 기록 동작은 실행에 있어서 일반적으로 판독 동작보다 더 많은 시간을 소요하지만, 몇몇 장치들에서는 기록 동작이 실제로 판독 동작 보다 더 적은 시간을 소요할 수 있음을 주지한다. 상이한 외부 주변 장치들 및 메모리들 사이에서 판독과 기록 동작에 대한 타이밍 요구의 차이, 및 동일한 외부 장치의 판독 및 기록 동작에 대한 타이밍 요구의 차이를 인지하여, 제어 레지스터의 비트들의 제 1 세트는 사용자가 데이터 처리 시스템의 효과를 증가시키기 위하여 이용할 수 있는 최선의 타이밍 계획을 이용할 수 있도록 한다.
또한, 본 발명은 타이밍 싸이클 기준에 의해 타이밍 사이클에서 선택적으로 액세스된 칩 선택 레지스터의 비트들의 제 1 세트를 포함한다. 데이터 처리 시스템이 외부 장치를 액세스 할 때, 대응 칩 선택 레지스터는 또한 외부 장치에 적절한타이밍과 제어 정보를 제공하기 위하여 액세스된다. 따라서, 각각의 타이밍 사이클에서, 상이한 칩 선택 레지스터와 상이한 타이밍 및 제어 정보가 액세스될 수 있다. 본 발명의 본 실시예에서, 현재 액세스되는 메모리 위치에 응답하여 동적으로 기록 동작의 길이를 제어하는 값을 선택하는 능력은 사용자에게 판독 및 기록 타이밍 제어를 외부 장치에 제공하기 위해 필요한 다수의 외부 집적 회로 핀을 증가시키지 않고 아주 큰 기능적인 유연성을 제공한다.
또한, 본 발명은 외부 장치로부터의 제 1 데이터 값을 판독하기 위해 필요한 초기 시간 동안 타이밍을 제어하는 제어 레지스터의 비트들의 제 2 세트를 제공한다. 본 발명은 또한 외부 장치로부터의 연속적인 데이터 값을 판독하기 위해 소요된 각 연속되는 시간 동안 타이밍 제어를 제공하는 제어 레지스터의 비트들의 제 3 세트를 제공한다.
제어 레지스터 내의 비트들의 제 2 및 제 3 세트들을 사용하는 것은 캐시 메모리가 데이터 처리 시스템에 포함될 때 특히 중요하다. 데이터 처리 시스템이 미리 선택된 메모리 위치로부터의 제 1 데이터 값을 액세스할 때, 캐시 메모리는 제 1 데이터 값이 캐시 메모리에 저장되는지를 결정하기 위하여 먼저 액세스된다. 만약 데이터가 캐시 메모리에 저장되지 않으면, 제 1 데이터 값은 외부 장치로부터 검색되고 캐시와 데이터 처리 시스템의 나머지 부분에 제공된다. 제 1 데이터 값의 검색 외에 복수의 다음의 데이터 값들도 외부 장치로부터 검색되고 캐시 메모리에 저장된다. 외부 장치로부터의 정보에 대한 단일 요구에 응답하여 복수의 데이터 값들을 검색하는 과정을 버스트 동작이라 한다.
본 발명에서, 제어 레지스터 내의 비트들의 제 2 세트는 버스트 동작의 초기 액세스 동안 외부 장치를 액세스하기 위한 데이터 처리 시스템에 필요한 시간의 양을 동적으로 결정한다. 유사하게, 제어 레지스터 내의 비트들의 제 3 세트는 버스트 동작의 2차 액세스 동안 외부 장치를 액세스하기 위하여 데이터 처리 시스템에 요구되는 시간을 동적으로 결정한다. 버스트 동작의 초기 액세스는 2차 액세스보다 더 긴 시간을 요구한다는 것을 인지하여, 초기 및 2차 액세스 시간이 최적화되어 데이터 처리 시스템은 더욱 효과적으로 메모리 판독을 수행할 수 있다. 또한, 동적으로 현재 액세스된 메모리 위치에 응답하여 판독 동작의 길이를 제어하는 값을 선택하는 능력은 외부 장치에 판독 및 기록 타이밍을 제공하기 위해 소요된 다수의 외부 집적 회로 핀들을 증가시키지 않고 사용자에게 더욱 큰 기능적인 유연성을 제공한다.
또한, 판독 및 기록 동작들과 대응하는 타이밍 주기들을 최적화하는 부가적인 기능은 소프트웨어의 실행을 요구하지 않고 제공된다. 본 발명에서, 각각의 판독 및 기록 동작들의 타이밍 주기의 길이는 전술한 제어 레지스터에 저장된 대응하는 비트들의 세트에 의해 각각의 버스 사이클 동안 결정된다. 소정의 칩 선택 신호가 어서트될 때, 각각의 비트들의 대응하는 비트들의 세트들은 내부 메모리로부터 검색되어 제어 레지스터에 저장된다. 따라서, 각각의 판독 및 기록 동작의 타이밍 주기(period)를 결정하기 위하여 어떤 소프트웨어 프로그래밍도 요구되지 않는다. 필요한 개입이 거의 없이 유연성을 제공함으로써, 본 발명은 모든 집적 회로 마이크로프로세서들와 함께 사용하기 위한 저가격의 칩 선택 논리 회로를 제공한다.
이하의 검토에서, 본 발명을 실시하는 데이터 처리 시스템의 일 실시예의 연결성과 동작이 아주 상세히 제공될 것이다.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 블록도.
도 2는 도 1의 데이터 처리 시스템에 대한 캐시 메모리 장치의 블록도.
도 3은 도 1의 데이터 처리 시스템의 시스템 집적화 장치의 블록도.
도 4는 본 발명의 일 실시예에 따른 복수의 제어 레지스터를 표로 만들어 도시한 도면.
도 5는 본 발명의 일 실시예에 따라 실행된 버스트 기록 동작의 한 예를 타이밍도로 도시한 도면.
도 6은 본 발명의 일 실시예에 따라 실행된 판독 동작의 한 예를 타이밍도로 도시한 도면.
도 7은 본 발명의 일 실시예를 따라 실행된 버스트가 아닌 기록 동작의 한 예를 타이밍도로 도시한 도면.
도 8은 본 발명의 일 실시예에 따라 실행된 기록 동작을 타이밍도로 도시한 도면.
도 9는 본 발명의 일 실시예에 따라 실행된 버스트 기록 동작의 한 예를 타이밍도로 도시한 도면.
도 10은 본 발명의 일 실시예에 따라 실행된 버스트 판독 동작의 한 예를 타이밍도로 도시한 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
10 : 데이터 처리기 12 : 중앙 처리 장치(CPU)
15 : 데이터 처리 시스템 44 : 캐시 메모리 장치
55 : 메모리 뱅크 56, 58 : 메모리
70 : 다중 어드레스 신호/데이터 집적회로
본 발명의 연결성(Connectivity of the Present Invention)
본 발명의 연결성의 이하의 설명에서, "버스(bus)"는 데이터, 어드레스, 제어 또는 상태(status)와 같은 하나 이상의 다양한 유형의 정보를 전송하기 위해 사용될 수 있는 복수의 신호들 또는 도선들인 것으로 사용된다. "어서트(assert)"와 "니게이트(negate)"는 신호, 상태 비트, 또는 유사한 장치를 각각 논리적으로 참인 상태 또는 논리적으로 거짓인 상태로 만들 때 사용된다. 만약 논리적으로 참인 상태가 논리 레벨 1이면, 논리적으로 거짓인 상태는 논리 레벨 0이 될 것이다. 그리고 만약 논리적으로 참인 상태가 논리 레벨 0이면, 논리적으로 거짓인 상태는 논리 레벨 1이 될 것이다.
또한, 각괄호([])는 버스선 또는 값의 비트 위치를 나타내는데 사용된다. 예를 들면, "버스 60 [0-7]" 또는 "버스 60의 도선들[0-7]"은 버스 60의 8개의 하위 명령 도선을 나타내고, "어드레스 비트들[0-7]" 또는 "어드레스 들[0-7]"은 어드레스 값의 8개의 하위 명령 비트를 나타낸다. 숫자 앞의 기호 "$"는 숫자가 16 진법으로 표시된다는 것을 나타낸다. 숫자 앞의 기호 "%"는 숫자가 이진법으로 표시된다는 것을 나타낸다.
도 1에 대하여 언급하면, 도 1은 데이터 처리기(10), 메모리 뱅크(55), 및 집적 회로(70)를 가지는 데이터 처리 시스템(15)을 도시한다. 데이터 처리기(10)는중앙 처리 장치(CPU)(12), 시스템 집적 회로(22), 및 캐시 메모리 장치(44)를 포함한다. 메모리 뱅크(55)는 메모리(56)와 메모리(58)를 포함한다. 본 발명의 일 실시예에서, 데이터 처리기(10)와 각각의 메모리들(56, 58)은 독립된 집적 회로로 구현된다. 본 발명의 다른 실시예에서, 모든 데이터 처리 시스템(15)은 단일 집적 회로 상에서 실시될 수 있다.
도 1에서, 메모리 뱅크(55)의 메모리(56)는 데이터 비트들[0-15]을 수신하기 위하여 버스(60)의 도선들[0-15]에 연결되는 데이터 포트를 가진다. 메모리(56)는 또한 버스(62)의 도선들[0-31]에 연결되는 어드레스 포트를 가진다. 또한, 메모리(56)는 제 2 칩 선택 신호를 수신하기 위한 칩 선택1(Chip Select1) 도선(65)에 연결되는 칩 선택 입력(chip select input :)을 가진다. 메모리(56)는 또한 출력 인에이블 신호에 연결되는 출력 인에이블 입력(out enable input:)과 기록 인에이블 신호에 연결되는 판독/입력을 가진다. 메모리(56)는 또한 인에이블 바이트 신호(208)에 연결되는 상위 바이트(upper byte:) 입력과 인에이블 바이트 신호(210)에 연결되는 하위 바이트(lower byte:) 입력을 가진다.
메모리 뱅크(55)의 메모리(58)는 데이터 비트들[16-32]을 수신하기 위하여 버스(60)의 도선들[16-31]에 연결되는 데이터 포트를 가진다. 메모리(58)는 또한 버스(62)의 도선들[0-31]에 연결되는 어드레스 포트를 가진다. 또한, 메모리(58)는 제 2 칩 선택 신호를 수신하기 위한 칩 선택1 도선(65)에 연결되는 칩 선택입력()을 가진다. 메모리(58)는 또한 출력 인에이블 신호에 연결되는 출력 인에이블 입력()과 기록 인에이블 신호에 연결되는 판독/을 가진다. 메모리(58)는 또한 인에이블 바이트 신호(204)에 연결되는 상위 바이트() 입력과 인에이블 바이트 신호(206)에 연결되는 하위 바이트() 입력을 가진다.
데이터 처리기(10)는 버스들(60, 62)과 칩 선택 도선(65)에 의해 메모리 뱅크(55)에 연결된다. 데이터 처리기(10)는 버스(60)와 칩 선택2(Chip Select2) 도선(66)에 의해 집적 회로에 연결된다. 집적 회로(70)의 다중(muxed) 어드레스/데이터 포트는 어드레스 및 데이터 값을 버스(60)와 연결된다. 집적 회로(70)는 연결되지 않고 버스(62)로부터 어떠한 어드레스 또는 데이터 값도 수신하지 않는다.
본 발명의 몇몇 실시예들에서 데이터 처리기(10)는 단일 집적 회로 상에 형성됨을 유의하자. 몇몇 실시예들에서, 데이터 처리기(10)는 단일 칩 마이크로 제어기이다. 다른 실시예들에서, 데이터 처리기(10)는 임의의 형태의 전기 회로를 이용하여 구현될 수 있다. 메모리들(56, 58)은 임의의 유형의 메모리일 수도 있다. 데이터 처리 시스템(15)의 대안의 실시예들은 더 많거나 또는 더 적은, 또는 상이한 주변 장치(70)를 포함할 수 있다. 또한, 버스들(60, 62)이 32 비트 버스로 도시되었지만, 본 발명의 다른 실시예는 버스들(60, 62)에서 임의의 수의 비트들을 사용할 수도 있다.
도 2는 캐시 메모리 장치(44)의 부분을 도시한다. 캐시 메모리 장치(44)는 태그 메모리(156), 상태 배열(status array: 158), 및 데이터 캐시(160)를 포함한다. 상태 배열(158)은 태그 메모리(156)와 데이터 캐시(160) 사이에 연결된다.
도 3은 본 발명의 일 실시예에 따른 도 1의 시스템 집적 회로(22)의 일부를 도시한다. 시스템 집적 회로(22)는 제어 레지스터(94), 버스 연결 회로(100), 비교 회로(101), 제어 회로(102), 칩 선택 생성 회로(104), 해독 논리(105), 터미널들(123), 터미널들(124), 터미널들(126)과 터미널들(128)을 포함한다. 버스(24)는 양방향으로 어드레스, 데이터 및 제어 정보를 각각의 제어 레지스터들(94), 제어 회로(102) 및 버스 연결 회로(100)로 전송한다. 어드레스 버스(110)는 어드레스 비트들[0-31]을 버스 연결 회로(100)에 제공하는 버스(24)의 일부이다. 데이터 버스(112)는 데이터 비트들[0-31]을 버스 연결 회로(100)에 제공하는 버스(24)의 일부이다. 제어 버스(116)는 버스 연결 회로로부터의 제어 정보를 제어 회로(102)로 제공하는 버스(24)의 일부이다. 본 발명의 몇몇 실시예들에서, 제어 회로(102)는 외부 버스 사이클 제어 신호(예를 들면, 어드레스 스트로브(address strobe), 데이터 스트로브, 기록 인에이블, 열(column) 어드레스 스트로브, 행(row) 어드레스 스트로브, 판독/기록 등)를 하나 이상의 터미널(도시되지 않음)을 통하여 데이터 처리기에 제공할 수 있음을 유의하자. 버스(24)는 CPU(12)가 제어 레지스터들(94)에 판독 및 기록 액세스를 수행할 수 있도록 제어 레지스터들(94)에 연결되어 있다. 버스(24)는 제어 정보를 제공하고 수신하기 위하여 제어 회로(102)에 연결된다. 버스(24)는 어드레스 비트들[0-31]과 데이터 비트들[0-31]을 전달하기 위하여 어드레스 버스(110)와 데이터 버스(112)를 통하여 버스 연결 회로(100)에 연결된다. 그리고, 버스(24)는 적어도 일부의 어드레스 비트들[0-31]을 제공하는 신호(111)를 통하여 비교 회로(101)에 연결된다.
레지스터들(94)은 복수의 주변 제어 레지스터들(94)(도 3 참조)과 칩 선택 제어 레지스터(도시되지 않음)를 포함한다. 칩 선택 제어 레지스터는 버스 로딩 제어 비트, 어드레스 범위 비트들과, 다른 칩 선택 제어 비트들을 포함한다. 버스 로딩 제어 비트들(bus loading control bits)은 도선들(114)에 의해 버스 연결 회로(100)에 제공된다. 비교 회로(101)는 어드레스 범위 비트들과, 가능하게는 하나 이상의 칩 선택 제어 비트들을 수신하기 위하여 칩 선택 제어 레지스터에 연결된다. 비교 회로(101)는 복수의 도선들(121)을 통하여 비교 결과 신호를 제어 회로(102)에 제공한다. 제어 회로(102)는 복수의 도선들(116)을 통하여 제어 신호를 버스 연결 회로(100)에 제공하고, 제어 회로(102)는 복수의 도선들(118)을 통하여 제어 신호를 칩 선택 생성 회로(104)에 제공한다. 제어 회로(102)는 제어 레지스터들(94)에 양방향으로 연결된다. 본 발명의 일 실시예에서, 제어 회로(102)는 제어 레지스터(94)에 저장된 칩 선택 제어 비트로부터 제어 비트를 수신하고 다시 다른 칩 선택 제어 비트에 상태 정보를 제공한다. 본 발명의 다른 실시예에서, 제어 회로(102)와 버스 연결 회로(100)의 기능은 1개의 회로로 결합될 수 있음을 유의하자.
버스 연결 회로(100)는 버스(60)를 통하여 터미널들(124)에 양방향으로 연결된다. 버스 연결 회로(100)는 버스(62)를 통하여 터미널들(126)에 양방향으로 연결된다. 칩 선택 생성 회로(104)는 복수의 칩 선택 도선들(64 내지 67)을 통하여 터미널들(128)에 양방향으로 연결된다. 복수의 터미널들(124)은 외부에서 버스(60)를데이터 처리기(10)에 제공하는데 사용된다. 복수의 터미널들(126)은 외부에서 버스(62)를 데이터 처리기(10)에 제공하는데 사용된다. 그리고, 복수의 터미널들(128)은 외부에서 칩 선택 신호들(64 내지 67)을 데이터 처리기(10)에 제공하는데 사용된다.
집적 회로 터미널들(124, 126 및 128)은 전기 신호들이 데이터 처리기(10)에 전달되도록 하는 어떠한 유형의 장치일 수도 있다. 예를 들면, 집적 회로 터미널들(124, 126, 및 128)은 집적 회로 핀들, 솔더 범프들(solder bumps), 또는 도선들일 수 있다.
이하, 도 4를 참조하면, 도 4는 본 발명의 일 실시예에 따른 도 3의 제어 레지스터들(94)의 부분을 도시한다. 본 발명의 일 실시예에서, 제어 레지스터들(94)의 부분은 복수의 레지스터들(300 내지 400)을 포함하고 복수의 레지스터들 중 소정의 1개의 레지스터는 복수의 칩 선택 신호 중 소정의 1개의 신호에 대응한다. 예를 들면, 제 1 칩 선택 신호는 제어 레지스터(300)에 대응하고 마지막 칩 선택 신호는 제어 레지스터(400)에 대응한다. 각각의 복수의 레지스터들은 판독 또는 기록 동작 동안 액세스되는 메모리의 기준 어드레스를 정의하는 복수의 어드레스 비트들 A[31:20]을 포함한다. 예를 들면, 메모리 뱅크(55)는 제 1 기준 어드레스에 의해 액세스될 수 있고 제 2 메모리 회로(도시되지 않음)는 제 2 기준 어드레스에 의해 액세스될 수 있다.
각각의 복수의 제어 레지스터들(300과 400)은 또한 각각의 복수의 제어 레지스터들(300과 400)에 저장된 기준 어드레스의 대응하는 복수의 어드레스 비트들에저장된 기준 어드레스의 일부를 마스크할 수 있는 어드레스 마스크 값을 저장하는 마스크(Mask) 값을 포함한다. 본 명세서에서 상술된 본 발명의 실시예에서, 마스크 값은 어드레스 비트들 11 내지 5를 마스크하기 위해 사용된다.
각각의 복수의 제어 레지스터들(300과 400)은 또한 1차 액세스(PA, Primary Access) 값을 포함한다. PA 값은 데이터 처리기(10)가 외부 메모리로부터 제 1 데이터 값을 액세스할 수 있는 시간의 길이를 총괄하여 나타내는 3개의 제어 비트들을 포함한다. 본 명세서에 설명된 본 발명의 실시예에서, 외부 메모리는 메모리 뱅크(55)의 메모리(56) 및 메모리(58) 중 하나일 수 있다.
PA 값이 %000 값을 가질 때, 데이터 처리기(10)는 외부 메모리에 어떠한 타이밍도 제공하지 않는다. 오히려, 데이터 처리기(10)는 외부 메모리가 외부적으로 메모리 액세스 동작을 종료시키도록 한다. PA 값이 %001 값을 가질 때, 데이터 처리기(10)는 4개의 반클락(half clock) 사이클들 후에 외부 메모리에 대한 제 1 액세스를 종료한다. PA값이 %010 값을 가질 때, 데이터 처리기(10)는 5개의 반클락 사이클들 후에 외부 메모리에 대한 제 1 액세스를 종료한다. PA 값이 %011 값을 가질 때, 데이터 처리기(10)는 6개의 반클락 사이클들 후에 외부 메모리에 대한 제 1 액세스를 종료한다. PA 값이 %100 값을 가질 때, 데이터 처리기(10)는 7개의 반클락 사이클들 후에 외부 메모리에 대한 제 1 액세스를 종료한다. PA 값이 %101 값을 가질 때, 데이터 처리기(10)는 9개의 반클락 사이클들 후에 외부 메모리에 대한 제 1 액세스를 종료한다. PA 값이 %110 값을 가질 때, 데이터 처리기(10)는 12개의 반클락 사이클들 후에 외부 메모리에 대한 제 1 액세스를 종료한다. PA 값이 %111 값을 가질 때, 데이터 처리기(10)는 15개의 반클락 사이클 후에 외부 메모리에 대한 제 1 액세스를 종료한다.
PA 값과 대응하는 타이밍 결과의 관계는 다음의 표 1에 제시된다.
[표 1]
복수의 제어 레지스터들(300과 400) 각각은 또한 2차 액세스(SA, Secondary Access) 값을 포함한다. SA 값은 데이터 처리기가 버스트 액세스(bust access) 동작을 수행할 수 있는 시간의 길이를 총괄하여 나타내는 3개의 제어 비트들을 포함한다. 전술한 바와 같이, 버스트 액세스 동작 동안, 데이터 처리기(10)는 외부 메모리로부터 제 1 데이터 값을 액세스한 후에 소정의 수의 데이터 값을 액세스한다. 또한, 외부 메모리는 메모리 뱅크(55)의 메모리(56) 및 메모리(58) 중 하나일 수 있다.
SA 값이 %000 값을 가질 때, 데이터 처리기(10)는 외부 메모리의 버스트 액세스를 지원하지 않고 외부 타이밍을 제공하지 않는다. SA 값이 %001 값을 가질때, 데이터 처리기(10)는 1개의 반클락 사이클 후에 외부 메모리에 대한 다음의 액세스를 종료한다. SA 값이 %010 값을 가질 때, 데이터 처리기(10)는 2개의 반클락 사이클 후에 외부 메모리에 대한 다음의 액세스를 종료한다. SA 값이 %011 값을 가질 때, 데이터 처리기(10)는 3개의 반클락 사이클 후에 외부 메모리에 대한 다음의 액세스를 종료한다. SA 값이 %100 값을 가질 때, 데이터 처리기(10)는 4개의 반클락들 사이클 후에 외부 메모리에 대한 다음의 액세스를 종료한다. SA 값이 %101 값을 가질 때, 데이터 처리기(10)는 5개의 반클락 사이클들 후에 외부 메모리에 대한 다음의 액세스를 종료한다. SA 값이 %110 값을 가질 때, 데이터 처리기(10)는 6개의 반클락 사이클들 후에 외부 메모리에 대한 다음의 액세스를 종료한다. SA 값이 %111 값을 가질 때, 데이터 처리기(10)는 7개의 반클락 사이클들 후에 외부 메모리에 대한 다음의 액세스를 종료한다.
SA 값과 대응하는 타이밍 결과의 관계는 다음의 표 2에 제시된다.
[표 2]
복수의 레지스터들(300 내지 400)은 또한 WP(기록 펄스(Write Pulse)) 값을 포함한다. WP 값은 기록 인에이블 신호가 메모리 액세스 동작동안 활성 시간을 나타낸다.
본 발명의 제 1 실시예에서, WP 값은 기록 인에이블 신호가 어서트되는 시간의 길이를 나타낸다. 예를 들면, WP 값이 %000 값을 가질 때, 기록 인에이블 신호는 1개의 클락 사이클 동안 어서트된다. WP 값이 %001 값을 가질 때, 기록 인에이블 신호는 2개의 클락 사이클들 동안 어서트된다. WP 값이 %010 값을 가질 때, 기록 인에이블 신호는 3개의 클락 사이클들 동안 어서트된다. WP 값이 %011 값을 가질 때, 기록 인에이블 신호는 4개의 클락 사이클들 동안 어서트된다. WP 값이 %100 값을 가질 때, 기록 인에이블 신호는 5개의 클락 사이클들 동안 어서트된다. WP 값이 %101 값을 가질 때, 기록 인에이블 신호는 6개의 클락 사이클들 동안 어서트된다. WP 값이 %110 값을 가질 때, 기록 인에이블 신호는 7개의 클락 사이클들 동안 어서트된다. WP 값이 %111 값을 가질 때, 기록 인에이블 신호는 8개의 클락 사이클들 동안 어서트된다.
본 발명의 제 2 실시예에서, WP 값은 기록 인에이블 신호가 일정한 동작 시간 동안 어서트되기 전에 끝나야하는 지연 시간을 나타낸다. 본 발명의 제 2 실시예에서, WP 값이 %000 값을 가질 때, 기록 인에이블 신호는 1개의 클락 사이클 후에 어서트된다. WP 값이 %001 값을 가질 때, 기록 인에이블 신호는 2개의 클락 사이클들 후에 어서트된다. WP 값이 %010 값을 가질 때, 기록 인에이블 신호는 3개의 클락 사이클들 후에 어서트된다. WP 값이 %011 값을 가질 때, 기록 인에이블 신호는 4개의 클락 사이클 후에 어서트된다. WP 값이 %100 값을 가질 때, 기록 인에이블 신호는 5개의 클락 사이클들 후에 어서트된다. WP 값이 %101 값을 가질 때, 기록 인에이블 신호는 6개의 클락 사이클들 후에 어서트된다. WP 값이 %110 값을 가질 때, 기록 인에이블 신호는 7개의 클락 사이클들 후에 어서트된다. WP 값이 %111 값을 가질 때, 기록 인에이블 신호는 8개의 클락 사이클들 후에 어서트된다.
WP 값과 대응하는 타이밍 결과의 관계는 이하의 표 3에 제시된다.
[표 3]
제어 레지스터들(300과 400) 각각은 WP 외에 버스(60)를 메모리 뱅크(55) 또는 집적 회로(70)와 같은 외부 장치로 연결(relinquish)하기 위하여 데이터 처리기(10)에 의해 필요한 시간을 나타내는 전송 오프 타임(TOFF, transfer off time) 값을 포함한다. TOFF 값이 %00일 때, 데이터 처리기(10)는 버스(60)를 연결하기 위하여 1개의 클락 사이클을 요구한다. TOFF 값이 %01일 때, 데이터 처리기(10)는 버스(60)를 연결하기 위하여 2개의 클락 사이클들을 요구한다. TOFF값이 %10일 때, 데이터 처리기(10)는 버스(60)를 연결하기 위하여 3개의 클락 사이클들을 요구한다. TOFF 값이 %11일 때, 데이터 처리기(10)는 버스(60)를 연결하기 위하여 4개의 클락 사이클들을 요구한다.
제어 레지스터들(300과 400) 각각은 또한 MX 비트를 포함한다. MX 비트는 시스템 집적화 장치(22)의 일부가 다중 송신 방식 또는 비다중 송신 방식으로 정보를 제공하는지를 나타낸다.
본 발명의 다른 실시예들은 더 많은, 또는 더 적은, 또는 상이한 레지스터 비트 필드들을 사용할 수 있고, 각각의 레지스터 비트 필드는 제어, 상태, 또는 제어와 상태 모두에 사용될 수도 있음을 주지한다. 또한, 본 발명의 다른 실시예는 하나 또는 그 이상의 독립 레지스터들 내의 EBC 비트들과 같은 비트 필드를 위치시킬 수 있다. 또한, 본 발명의 다른 실시예들은 도 4에 도시된 각각의 레지스터 비트 필드들에 대하여 어떠한 수의 비트들도 포함할 수 있다. 또한, 본 발명의 몇몇 실시예들에서, 하나 또는 그 이상의 레지스터 비트 필드들의 제어 기능은 더 적은 레지스터 비트 필드들로 연결되어 코드화될 수 있다.
또한 WP 비트의 기능은 기록 인에이블 신호의 폭 또는 시간의 길이를 제공하는 것에 대하여 제한되지 않고 고정된 폭의 기록 인에이블 신호는 외부 장치로 제공되기 전에 지연된다는 것을 주지한다. 본 발명의 다른 실시예에서, WP 비트의 기능은 복수의 제어 레지스터들(300과 400) 내의 소정의 다른 비트일 수도 있다. 그러므로, 어떤 유형의 외부 메모리 또는 장치에 대하여, WP 비트는 기록 인에이블 신호의 폭을 나타낼 수 있지만, 반면에 장치의 제 2 유형의 외부 메모리에 대하여,WP 비트는 시간의 길이를 나타낼 수 있고 고정된 폭의 기록 인에이블 신호는 외부 장치에 제공되기 전에 지연된다.
본 발명의 동작
이제 본 발명의 동작이 아주 상세히 검토될 것이다. 도 1에 도시된 데이터 처리 시스템(15)의 동작 동안 데이터 처리기(10)는 메모리 뱅크(55) 또는 집적 회로(70)에 저장된 데이터를 액세스할 수 있다. 각각의 외부 장치는 상이한 인터페이스를 요구할 수 있다. 예를 들면, 도 1에 도시된 실시예에서, 메모리 뱅크(55)의 각각의 메모리들(56과 58)의 데이터 버스 비트 폭은 16비트이다. 또한, 메모리들(56과 58)은 단지 하위 바이트만 대응 메모리로부터 검색되는지 또는 상위 및 하위 바이트 모두 검색되는지를 명확하게 하기 위하여 데이터 처리기(10)를 요구한다. 또한, 집적 회로(70)는 데이터 처리기(10)와의 다중 송신 데이터 버스 인터페이스를 요구한다. 심지어 메모리 뱅크(55)의 메모리 인터페이스와 집적 회로(70)에서의 큰 차이점이 주어진다 해도, 데이터 처리기(10)에서 실시된 본 발명은 추가된 논리 회로 또는 소프트웨어 간섭없이 각각의 외부 장치에 적절한 제어 및 데이터 값을 제공한다.
본 발명을 더욱 상세히 설명하기 전에, 데이터 처리 시스템(15)의 동작이 일반적으로 설명될 것이다. 데이터 처리 시스템(15)에서, 각각의 외부 장치들은 데이터 처리기(10)의 메모리 맵의 어드레스 범위를 할당받는다. 데이터 처리기(10)가 메모리 뱅크(55)에 대응하는 제 1 어드레스 범위내의 어드레스를 액세스할 때, 칩 선택1 신호(65)는 인에이블 메모리(56과 58)로 어서트된다. 마찬가지로, 데이터 처리기(10)가 접적 회로(70)에 대응하는 제 2 어드레스 범위내의 어드레스를 액세스할 때, 칩 선택2 신호는 어서트된다.
복수의 칩 선택 신호들이 어서트될 때, 다른 제어 정보도 또한 대응하는 외부 장치와 정확히 인터페이스하도록 제공되어야 한다. 예를 들면, 칩 선택1 신호는 데이터 처리기(10)가 메모리 뱅크(55)와 관련된 어드레스 위치를 액세스했음을 나타내기 위하여 액세스된다. 다시, 칩 선택1 신호가 어서트될 때, 다른 제어 정보도 또한 대응하는 외부 장치와 정확히 인터페이스하도록 제공되어야 한다. 예를 들면, 칩 선택1 신호가 어서트된다 하더라도, 출력 인에이블 신호와 기록 인에이블 신호는 또한 어서트되어야 한다. 또한, 메모리들(56과 58)은 각각 상위 바이트(UB) 인에이블 입력과 하위 바이트(LB) 인에이블 입력을 요구하기 때문에, 각각의 메모리에 대응하는 2개의 인에이블 바이트 신호 중 적어도 1개의 신호는 어서트되어야 한다. 도 1에 도시된 실시예에서, 메모리들(56과 58)은 16비트를 가지는 데이터를 제공한다. 데이터는 16비트를 가지기 때문에, 메모리들(56과 58)은 또한 데이터 값의 상위 및 하위 바이트 중 한 바이트가 데이터 처리기(10)로 전달되는지 또는 두 바이트 모두 전달되는지 정하기 위하여 데이터 처리기(10)에 요청한다. 따라서, 본 실시예에서, 복수의 바이트 인에이블 신호들은 메모리(56) 또는 메모리(58) 중 한 메모리가 선택적으로 데이터의 상위 및 하위 바이트 중 한 바이트 또는 두 바이트 모두를 전달하도록 해야한다. 데이터가 판독되는지 또는 기록되는지는 각각의 메모리들(56과 58)의 R/입력에 제공된 기록 인에이블 신호의 값에 의해 결정된다.
기록 인에이블 신호는 데이터가 하나 또는 2개의 메모리들(56과 58)에 판독되거나 기록됨을 단순히 나타내는 것 외에, 메모리 액세스들을 수행할 때 외부 장치에 타이밍 정보를 제공한다. 전술한 바와 같이, 많은 타이밍 정보는 액세스되는 외부 장치에 의존된다. 예를 들면, 메모리 뱅크(55)의 메모리들(56과 58)의 몇몇 외부 장치들은 데이터 처리기(10)에 의해 기록된 데이터 값을 저장하기 위하여 더 많거나 적은 시간을 요구할 수 있다. 본 발명은 기록 인에이블 신호가 액세스되는 일종의 외부 장치에 따라 어서트되는 시간을 최적화하기 위한 메카니즘을 제공한다.
또한, 전술한 바와 같이, 버스트 액세스 동작들과 같은 몇몇 종류의 메모리 액세스 동작에서, 제 1 메모리 판독 액세스 동작은 다음의 판독 액세스 동작들보다 더 많은 시간을 요구할 것이다. 이런 종류의 동작에 응답하여, 본 발명은 현재의 메모리 판독 동작의 순서 명령에 따라 출력 인에이블 신호의 길이를 최적화한다. 출력 인에이블 신호와 기록 인에이블 신호를 포함하는 각각의 동작들은 계속해서 더 상세히 설명될 것이다.
본 발명의 기능을 구현하기 위하여, 복수의 제어 레지스터들(94)(도 4에 도시됨)은 외부 메모리 액세스 동작 동안 기록 인에이블 신호의 기능을 제어한다. 복수의 제어 레지스터들(94)과 기록 인에이블 신호의 동적 제어 가능성은 계속해서 더 상세히 검토될 것이다.
데이터 처리기가 동작하는 동안, 복수의 제어 레지스터들(94)은 메모리 액세스를 수행하는 데이터 처리 동작이 실행되기 전에 제어 정보로 기록된다. 또한, 데이터 처리기가 동작하는 동안, CPU(12)는 외부 버스 사이클을 시작할 수 있다. 외부 버스 사이클은 버스들(60과 62)을 통하여 데이터 처리기(10)의 외부로 구동된 버스 사이클이다. CPU(12)는 어드레스 값, 대응 데이터 값, 및 적절한 제어 신호를 버스(24)로 보냄으로써 외부 버스 사이클을 시작한다.
비교 회로(101)는 버스(24)로부터 어드레스 값을 수신하고, 제어 레지스터들(94)의 복수의 제어 레지스터들(300과 400) 중 하나의 레지스터의 비트들 [0:10]으로부터의 복수의 어드레스 범위 비트들을 수신한다. 비교 회로(101)는 그 다음에 수신된 어드레스 값과 관련된 어드레스 범위를 결정한다. 본 발명의 일실시예에서, 비교 회로(101)는 버스(24)로부터 어드레스 값의 적어도 일부를 복수의 제어 레지스터들(94)에 의해 제공된 각각의 어드레스 범위 비트들의 세트와 비교한다. 본 발명에서, 어드레스 비트들 [31:20]은 각각의 복수의 제어 레지스터들(94)에 의해 제공된다. 그러나, 본 발명의 다른 실시예에서, 복수의 어드레스 범위 비트들은 어드레스 범위를 명확하게 하기 위하여 어떤 방법도 사용할 수 있고 어떤 수의 비트 필드들도 사용할 수 있다.
비교 회로(101)는 그 다음에 제어 신호들(121)을 제어 회로(102)로 전송한다. 제어 신호들(121)은 제어 정보를 제어 회로(102)에 제공하는데 사용될 어드레스 범위이며, 따라서, 칩 선택 신호와 (도 4에 도시된 복수의 제어 레지스터들(94)의)복수의 레지스터들(300 내지 400) 중 하나의 레지스터를 나타낸다. 제어 회로(102)는 그 다음에 복수의 칩 선택 신호들 중 어서트되는 신호를 선택하기 위하여 제어 신호들(118)을 칩 선택 생성 회로(104)에 제공한다. 제어 회로(102)는 또한 복수의 레지스터들(300 내지 400) 중 선택될 레지스터를 선택하기 위하여 제어 신호를 도선들(122)을 통하여 복수의 제어 레지스터들(94)로 전송한다.
예를 들면, 수신된 어드레스 값이 제 1 복수의 어드레스 범위 비트들에 의해 열거된 제 1 어드레스 범위에 있다면, 제어 회로(102)는 복수의 제어 레지스터들(94)의 제 1 제어 레지스터를 선택할 것이다. 제 1 제어 레지스터가 선택될 때, 제 1 제어 레지스터는 해독 논리 회로(decode logic circuit)(105)에 저장된 EBC 비트(도시되지 않음)의 값에 기초하여 논리 값을 EB제어(EBControl) 신호에 제공할 것이다. 또한, 제 1 제어 레지스터는 제 1 WP 값, 제 1 PA 값, 및 제 1 WQ 값을 제어 회로(102)에 제공할 것이다. 마찬가지로, 만약 제 2 수신된 어드레스 값이 제 2 복수의 어드레스 범위 비트들에 의해 열거된 제 2 어드레스 범위에 있다면, 제어 회로(102)는 복수의 제어 레지스터들(94)의 제 2 제어 레지스터를 선택할 것이다. 제 2 제어 레지스터가 선택될 때, 제 2 제어 레지스터는 해독 논리 회로(105)에 저장된 EBC 비트(도시되지 않음)의 값에 기초하여 논리 값을 EB제어(EBControl) 신호에 제공할 것이다. 또한, 제 2 제어 레지스터는 제 2 WP 값, 제 2 PA 값, 및 제 2 WQ 값을 제어 회로(102)에 제공할 것이다. WP 값, PA 값, 및 소정의 칩 선택 신호와 관련된 복수의 제어 레지스터들(300과 400) 중 하나의 레지스터에 저장된 값에 응답하여 SA 값을 동적으로 제공함으로써, 기록 인에이블 및 출력 인에이블 신호는 어떠한 유형의 외부 소프트웨어 또는 하드웨어의 간섭없이 데이터 처리기(10)에 의해 각각의 메모리 액세스에 대해 동적으로 수정될 수 있다. 마찬가지로, 소정의 칩 선택 신호와 관련된 제어 레지스터에 저장된 값에 응답하여 EB제어 신호의 값을 결정함으로써, EB제어 신호는 또한 어떠한 유형의 소프트웨어 간섭없이 각각의 바이트 액세스에 대해 데이터 처리기(10)에 의해 동적으로 수정될 수 있다.
전술한 바와 같이, 복수의 제어 레지스터들(94)은 칩 선택 제어 비트를 도선들(122)을 통하여 제어 회로(102)에 제공하고 선택 신호들(114)을 버스 연결 회로(100)에 제공할 것이다. 선택 신호들(114)에 의해 제공된 값들에 기초하여, 버스 연결 회로(100)는 버스(60)와 버스(62) 정보 중 어떤 정보가 전달되는지 결정할 것이다. 제어 회로(102)는 타이밍 또는 다른 제어 정보를 복수의 도선들(116)을 통하여 버스 연결 회로(100)에 제공할 수 있다. 또한, 복수의 제어 레지스터들(94)이 칩 선택 제어 비트를 도선들(122)을 통하여 제어 회로(102)에 제공할 때, 제어 회로(102)는 또한 이것에 응답하여 기록 인에이블, 출력 인에이블 및, 적절한 칩 선택 신호들을 생성한다.
도 3에서, 복수의 터미널들(124)은 버스(60)를 외부에서 데이터 처리기(10)에 제공한다. 복수의 터미널들(126)은 버스(62)를 외부에서 데이터 처리기(10)에 제공하고 복수의 터미널(128)은 칩 선택 신호들(64 내지 67)을 외부에서 데이터 처리기(10)에 제공한다.
복수의 터미널들(128)에 의해 제공된 인에이블 바이트를 생성하기 위하여, 해독 논리 회로(105)는 어드레스 도선(110)에 의해 전달된 어드레스 값의 일부, EB 제어 신호, 크기 신호와 R/신호를 논리적으로 연결한다. 또한, 본 발명의 실시예에서, 어드레스 값은 액세스된 어드레스의 어드레스 비트들 0(A0)과 1(A1)에 대응한다. EB제어 신호는 복수의 제어 레지스터들(94)(도시되지 않음) 중 하나의 레지스터의 EBC 비트 값에 응답하여 선택적으로 어서트된다. 크기 정보는 또한 데이터 처리기(10)에 의해 액세스의 크기를 결정하기 위해 해독 논리(105)에 의해 요청된다.
예를 들면, 데이터 처리기(10)에 의해 액세스된 제 1 어드레스가 메모리 뱅크(55)에 저장된 메모리에 대응한다고 가정한다. 그러면, 칩 선택1 신호는 어서트될 것이다. 또한, 데이터 처리 시스템(15)의 사용자가 복수의 제어 레지스터(94)를 적절히 프로그램했다고 가정한다. 그러면, 메모리 뱅크(55)가 액세스되었다는 것을 제어 회로(102)가 나타낼 때, 복수의 제어 레지스터들(94) 중 대응하는 1개의 레지스터도 액세스된다. 복수의 제어 레지스터들(94) 중 대응하는 1개의 레지스터(94)는 EB제어 신호를 해독 논리(105)에 제공한다. 메모리 뱅크(55)는 단지 8 비트들보다 더 큰 폭의 데이터를 가지는 메모리만 포함하기 때문에, 해독 논리(105)는 액세스된 메모리 위치에 대응하는 인에이블 바이트 신호만 어서트한다.
제 1 예에서, 제 1 인에이블 바이트 신호는 UB 입력에 필요하고 제 2 인에이블 바이트 신호는 액세스된 메모리의 LB 입력에 필요하다. 또한, 제 1 예에서, 해독 논리(105)는 EB제어 신호, 크기 신호, 및 어드레스 신호에 응답하여 인에이블 바이트 신호를 어서트한다. 따라서, 4 바이트가 액세스되었다는 것을 크기 신호가 나타낼 때, 각각의 인에이블 바이트 신호(204 내지 210)는 데이터 처리기(10)가 메모리(56)와 메모리(58)에 저장된 데이터의 상위 및 하위 바이트에 액세스 가능하도록 어서트된다.
만약 단일 바이트만 액세스되어야 한다면, 사이클 신호는 요청을 해독논리(105)에 나타낸다. 어드레스 신호는 그 다음에 상위 바이트가 액세스되는지 또는 하위 바이트가 액세스되는지를 결정하는데 이용된다. 상기 예에서, 만약 데이터 처리기(10)가 메모리(56)에 저장된 어드레스 값의 상위 바이트에만 값을 기록하면, 인에이블 바이트(208) 신호는 어서트될 것이다. 또한, 칩 선택 신호와 기록 인에이블 신호도 어서트될 것이다.
마찬가지로, 만약 두 바이트가 액세스되면, 크기 신호는 요구를 해독 논리(105)에 나타낸다. 어드레스 신호는 그 다음에 상위 바이트와 하위 바이트 모두 액세스되는지를 결정하는데 사용된다. 상기 예에서, 만약 데이터 처리기(10)가 메모리(56)에 저장된 어드레스 값에 16비트 값을 기록하면, 인에이블 바이트(208) 신호와 인에이블 바이트(210) 신호 모두 어서트될 것이다. 또한, 칩 선택 신호와 기록 인에이블 신호도 어서트될 것이다.
상기 각각의 이러한 상황들에서, 제어 회로(102)는 데이터 처리기(10)와 복수의 제어 레지스터들(300과 400)에 저장된 제어 값에 의해 실행된 메모리 액세스 동작에 응답하여 기록 인에이블 신호를 어서트한다. 따라서, 데이터 처리기(10)가 데이터 값을 메모리 뱅크(55)의 메모리 위치에 기록할 때, 칩 선택1 신호는 어서트된다. 복수의 제어 레지스터들(300과 400) 중 칩 선택1 신호에 대응하는 1개의 레지스터는 내부에 저장된 WP 값, PA 값, 및 SA 값을 제어 회로(102)에 제공한다. 제어 회로(102)는 계속해서 외부 사용자에 의해 결정된 방식으로 동적으로 메모리 뱅크(55)를 액세스하기 위하여 WP, PA, 및 SA 값들을 이용한다. 제어 회로(102)에 제공된 WP, PA, 및 SA 값들은 외부 메모리 또는 장치를 액세스하기 위하여 어서트된칩 선택 신호에 의해 동적으로 결정됨을 주지한다. 따라서, 칩 선택1 신호가 메모리 뱅크(55)를 액세스하기 위하여 어서트될 때, 제 1 세트의 WP, PA, 및 SA 값들은 데이터 처리기(10)의 동작을 제어하기 위하여 사용된다. 마찬가지로, 집적 회로(70)가 칩 선택2 신호에 의해 액세스될 때, 제 2 세트의 WP, PA, 및 SA 값들은 데이터 처리기(10)의 동작을 제어하기 위하여 사용된다.
데이터 처리 시스템(15)에서의 WP, PA, 및 SA 값들을 이용하는 예는 계속해서 더욱 상세히 제공될 것이다.
메모리 액세스 동작 및 기록 펄스(WP) 값
데이터 처리기(10)가 기록 동작을 실행할 때, 제어 회로(102)는 프로그램된 WP 값과 일치하는 방식으로 기록 인에이블 신호를 어서트한다.
전술한 바와 같이, WP 값은 외부 사용자에 의해 프로그램되고 타이밍 사이클 기준에 의해 타이밍 사이클에 선택적으로 액세스된다. 데이터 처리기(10)는 외부 장치를 액세스하기 때문에, 대응하는 제어 레지스터도 적절한 타이밍과 제어 정보를 외부 장치에 제공하기 위하여 액세스된다. 따라서, 각각의 타이밍 사이클에서, 상이한 칩 선택 레지스터와 상이한 타이밍과 제어 정보는 액세스될 수 있다. 본 발명의 이 실시예에서, WP 값은 현재 액세스된 메모리 위치에 응답하여 동적으로 기록 동작의 길이를 제어한다. 기능은 판독 및 기록 타이밍 제어를 외부 장치에 제공하기 위하여 필요한 다수의 외부 집적 회로 핀들을 증가시키지 않고 사용자에게 더 큰 기능의 유연성을 제공한다. 또한, WP 값을 이용하여 사용자는 외부 장치를 위한 타이밍을 최적화할 수 있고, 따라서 외부 장치에 대한 판독 및 기록 액세스를 수행하기 위해 필요한 타이밍은 장치의 명세에 따라 최적화된다.
도 6은 판독 동작 동안 메모리 뱅크(55)에 제공된 기록 인에이블(Write Enable signal:) 신호에 WP 값의 효과를 나타내는 타이밍도를 도시한다. 도 6에서, 어드레스 신호가 버스(24)를 통하여 시스템 집적화 장치(22)에 제공된다고 가정한다. 어드레스 신호는 칩 선택1 신호와 적절한 인에이블 바이트 신호들(도시되지 않음)을 생성하기 위해 사용된다. 도 6에서, 칩 선택1 신호는신호로 표시된다. 칩 선택1 신호가 어서트될 때, 제어 회로(102)는 출력 인에이블 신호를 메모리 뱅크(55)의 메모리들(56과 58)에 제공한다. 도 6에서, 출력 인에이블 신호는신호로 표시된다.
또한, 이것은 판독 동작이지 기록 동작은 아니기 때문에, 제어 회로(102)는 메모리 뱅크(55)의 각각의 메모리(56과 58)에 제공된 기록 인에이블 신호를 니게이트한다. 기록 인에이블 신호는 도 6에서신호로 표시된다. (판독 데이터 신호로 나타낸)기록 동작 동안 액세스된 데이터는 메모리 뱅크(55)의 메모리들(56과 58) 중 1개의 메모리 또는 2개의 메모리 모두에 의해 계속해서 제공된다.
상기 예에서, 기록 동작은 실행되지 않기 때문에, WP 값은 판독 동작의 타이밍에 영향을 미치지 않는다는 것을 유의하자. 상기 동작에서, 복수의 제어 레지스터들(300과 400) 중 대응하는 1개의 레지스터의 PA 값으로 저장된 첫 번째 액세스 값은 제어 회로(102)가 메모리 뱅크(55) 내의 메모리들(56과 58) 중 1개의 메모리 또는 2개의 메모리 모두에 출력 인에이블() 신호를 어서트하는 시간을 결정한다. 도 6에 도시된 예에서, 액세스된 메모리 위치에 대응하는 복수의 제어 레지스터들(300과 400) 중 한 레지스터의 PA 값은 출력 인에이블() 신호를 어서트하고 외부 장치로부터 유효 데이터를 수신하는 가운데 패스된 6개의 반클락 사이클과 같은 %011의 값이었다. PA 값은 다음에 더 상세히 검토될 것이다.
도 7은 제 2 타이밍 예를 제공하며, 여기서 WP 값은 데이터 처리기(10)의 기록 동작의 타이밍에 영향을 미친다. 도 7에서, 어드레스 신호는 버스(24)를 통하여 시스템 집적화 장치(22)에 제공된다고 가정한다. 어드레스 신호는 칩 선택1 신호와 적절한 인에이블 바이트 신호(도시되지 않음)를 생성하기 위하여 사용된다. 도 7에서, 칩 선택1 신호는신호로 표시된다는 것에 유의하자. 이것은 기록 동작이지 판독 동작은 아니기 때문에, 제어 회로(102)는 메모리 뱅크(55)의 메모리(56과 58) 각각에 제공된 출력 인에이블 신호를 버린다. 출력 인에이블 신호는 도 7의신호로 표시된다.
또한, 칩 선택1 신호가 어서트될 때, 제어 회로(102)는 기록 인에이블 신호를 메모리 뱅크(55)의 메모리들(56과 58)에 제공한다. 도 7에서, 기록 인에이블 신호는신호로 표시된다. 기록 동작(기록 데이터 신호로 나타낸) 동안 데이터는 그 다음에 메모리 뱅크(55) 내의 메모리들(56과 58) 모두 또는 하나의 메모리에 제공된다.
상기 예에서, 데이터 처리기(10) 동작의 두 방식이 도시된다. 동작의 제 1 방식인 폭 모드에서, WP 값은 기록 인에이블 신호가 어서트되는 시간을 나타낸다.이 경우에, WP 값은 %01과 같고, 따라서, 제어 회로(102)는 2 클락 사이클(표 3 참조) 동안 기록 인에이블 신호를 어서트한다. 기록 인에이블 신호가 두 클락 사이클동안 메모리 뱅크(55)의 메모리들(56과 58) 중 한 메모리에 어서트될 때, 적절한 인에이블 바이트 신호에 의해 인에이블된 장치(들)는 버스(60)로부터 데이터를 검색하고 기록 인에이블 신호가 어서트되는 두 클락 사이클 동안 버스(62)로부터 어드레스 정보를 검색한다.
동작 동안, 데이터 처리 시스템(15)의 사용자는 데이터 값을 외부 장치에 기록하기 위하여 필요한 시간을 최적화하는 방식으로 각각의 복수의 제어 레지스터들(300과 400)을 프로그램한다. 따라서, 도 7에 도시된 제 1 예에서, 외부 장치는 데이터 값을 저장하기 위하여 적어도 두 클락 사이클들 동안 어서트되는 기록 인에이블 신호를 요구한다.
동작의 제 2 모드인 지연 모드에서, WP 값은 기록 인에이블 신호가 일정한 시간 동안 어서트되기 전에 경과해야하는 시간의 길이를 나타낸다. 이 경우, WP 값은 %10과 같고, 따라서, 제어 회로(102)는 3 클락 사이클이 경과한 후에 기록 인에이블 신호를 어서트한다(표 3 참조). 3 클락 사이클 후, 기록 인에이블 신호는 단일 클락 사이클 동안 메모리 뱅크(55)의 메모리들(56과 58) 중 한 메모리에 어서트되고, 적절한 인에이블 바이트 신호에 의해 인에이블된 장치는 인에이블 신호가 어스트된 단일 클락 사이클 동안 버스(60)로부터 데이터를 검색하고 버스(62)로부터 어드레스 정보를 검색한다.
동작 동안, 데이터 처리 시스템(15)의 사용자는 데이터 값을 외부 장치에 기록하기 위해 펄요한 시간을 최적화하는 방식으로 각각의 복수의 제어 레지스터들들(300과 400)을 프로그램한다. 따라서, 도 7에 도시된 제 2 예에서, 외부 장치는 데이터 값을 저장하기 위하여 3 클락 사이클 후에 어서트되는 기록 인에이블 신호를 요구한다.
요약하면, 각각의 복수의 제어 레지스터들(300과 400) 내의 WP 값은 대응하는 외부 장치의 기록 타이밍 요구를 나타낸다. WP 값은 액세스 기준에 의한 액세스에 대하여 액세스된 외부 장치에 최적화된 기록 타이밍 주기를 제공하도록 프로그램될 수 있다. 또한, PA 값은 액세스 기준에 의한 액세스에 대하여 액세스된 외부 장치에 최적화된 판독 타이밍 주기를 제공하기 위하여 사용될 수 있다. PA 값은 다음에 더욱 상세히 상술될 것이다. PA 값에 의해 제공된 판독 타이밍 주기와는 독립적으로 기록 타이밍 주기를 프로그램하기 위하여 WP 값을 제공함으로써, 데이터 처리기(10)는 독립적으로 다양한 외부 장치의 판독 및 기록 동작에 대하여 가장 제한적인 명세에 적합할 수 있다. 따라서, 기록 동작과 관련된 패널티들(penalties)이 기록 불가 타이밍 사이클에 대하여 회피될 수 있다. 다른 방법으로 설명하면, 판독 동작들은 가능한 한 빨리 실행될 수 있고 기록 동작들과 같은 시간을 소비할 필요가 없다. 기록 동작은 판독 동작보다 더 길 수도 있고 더 짧을 수도 있기 때문에, 타이밍 사이클은 동작과 액세스되는 일종의 외부 장치를 위하여 최적화될 수 있다.
PA와 SA 값을 이용하는 메모리 액세스
각각의 복수의 제어 레지스터들(300과 400)은 외부 장치로부터 제 1 데이터 값을 판독하기 위해 요구되는 초기 시간 동안 타이밍 제어를 제공하는 PA(제 1 액세스) 값을 포함한다. 각각의 복수의 제어 레지스터들(300과 400)은 외부 장치로 부터 잇따른 데이터 값을 판독하기 위해 요구되는 각각의 연속하는 시간 동안 타이밍 제어를 제공하는 SA(2차 액세스) 값을 포함한다.
각각의 복수의 제어 레지스터들(300과 400) 내의 PA 및 SA 값의 이용은 데이터 캐시(44)와 같은 캐시 메모리가 데이터 처리 시스템(15)에 포함될 때 특히 중요하다. 예를 들면, 데이터 처리기(10)가 미리 선택된 메모리 위치로부터 제 1 데이터에 액세스할 때, 태그 메모리(156)는 제 1 데이터 값이 데이터 캐시(160)에 저장되는지를 결정하는데 사용된다. 만약 태그 메모리(156)가 제 1 데이터 값이 데이터 캐시(160)에 저장된다는 것을 나타내고 상태 배열(158)에서 대응하는 위치가 데이터 캐시(160)에 저장된 제 1 데이터 값이 유효하다는 것을 나타내면, 제 1 데이터 값은 데이터 캐시(160)로부터 액세스되고 버스(24)를 통하여 CPU(12)에 제공된다. 데이터 캐시들, 태그 메모리들, 및 상태 배열들의 이용은 데이터 처리 기술에 잘 공지되어 있기 때문에 하기에 더 이상 상세히 설명되지 않을 것이다.
그러나, 만약 태그 메모리(156)가 제 1 데이터 값이 데이터 캐시(160)에 저장되지 않았다는 것을 나타내면, CPU(12)는 제 1 데이터 값에 대응하는 어드레스를 시스템 집적화 장치(22)의 일부로 제공한다. 시스템 집적화 장치(22)는 제 1 데이터 값이 액세스될 수 있는 외부 장치를 나타내는 칩 선택 신호를 생성하기 위하여 어드레스를 이용한다. 칩 선택 신호가 외부 장치를 선택하기 위해 어서트될 때, 복수의 제어 레지스터들(300과 400) 중 대응하는 한 레지스터는 PA, SA 및 WP 값들을 포함하는 복수의 제어 값들을 제공한다. 그 다음에, 외부 장치가 액세스될 때, 제1 데이터 값이 검색되어 데이터 처리기(10)의 데이터 캐시(160)에 저장된다. 또한, 만약 데이터 처리기(10)가 동작의 버스트 모드에서 동작하고 있으면, 미리 선택된 수의 부가적인 데이터 값들 또한 검색되어 미래의 데이터 처리 동작 동안 사용하기 위하여 데이터 캐시(160)에 저장된다. 검색된 각각의 다음의 데이터 값들은 제 1 데이터 값보다 액세스시 더 적은 시간이 걸린다.
본 발명에 의해 수행된 PA 및 SA 값들을 이용하여 외부 사용자는 제 1 데이터 값의 제 1 액세스와 복수의 다음의 데이터 값들의 복수의 2차 액세스 타이밍을 모두 최적화할 수 있다. PA 값은 버스트 동작 동안 데이터 처리기(10)가 제 1 데이터의 제 1 액세스 동안 외부 장치에 액세스하기 위해 필요한 시간을 동적으로 결정한다. 마찬가지로, SA 값은 버스트 동작의 각각의 2차 액세스 동안 데이터 처리기(10)가 외부 장치에 액세스하기 위해 필요한 시간의 양을 동적으로 결정한다.
PA 및 SA 값들이 메모리 액세스 동작동안 복수의 제어 레지스터들(300과 400) 중 한 레지스터로부터 검색될 때, PA 및 SA 값들은 제어 회로(102)로 제공된다. 제어 회로(102)는 선택된 주기 동안 출력 인에이블 신호를 제공하기 위하여 PA 및 SA 값을 해독한다. 출력 인에이블 신호는 외부 장치로부터 제 1 데이터 값을 판독하기 위하여 PA 값으로 나타낸 시간의 제 1 주기 동안 어서트될 것이다. 마찬가지로, 출력 인에이블 신호는 외부 장치로부터 미리 선택된 수의 데이터 값들을 판독하기 위하여 SA 값으로 나타낸 시간의 제 2 주기 동안 어서트될 것이다. PA 값 및 SA 값은 어서트된 칩 선택 신호에 응답하여 동적으로 결정된다. 따라서, 칩 선택 신호가 어서트될 때, 복수의 제어 레지스터들(300과 400) 중 대응하는 한 레지스터에 저장된 PA및 SA 값들은 제어 회로(102)에 제공된다.
도 10은 버스트 판독 동작이 외부 장치에 액세스하기 위하여 어서트된 칩 선택 신호에 대응하는 PA 및 SA 값들에 응답하여 실행되는 제 1 예를 도시한다. 도 10에서, 어드레스 신호는 버스(24)를 통하여 시스템 집적화 장치(22)에 제공된다고 가정한다. 어드레스 신호는 칩 선택1 신호와 적절한 인에이블 바이트 신호(도시되지 않음)를 생성하기 위하여 사용된다. 도 10에서, 칩 선택1 신호는신호로 표시됨을 주지한다. 칩 선택1 신호가 어서트될 때, 제어 회로(102)는 출력 인에이블 신호를 메모리 뱅크(55)의 메모리들(56과 58)에 제공한다. 도 10에서, 출력 인에이블 신호는신호로 표시된다.
도 10에서, PA 값은 %011과 같아서 6개의 반클락 사이클들은 데이터 처리기(10)가 메모리 뱅크(55)의 메모리들(56과 58)로부터 유효 데이터를 액세스하기 전에 경과해야 한다. 또한, SA 값은 %001과 같아서 데이터 처리기(10)가 메모리 뱅크(55)의 메모리들(56과 58)에 의해 제공된 데이터 값을 액세스하기 전에 단지 1개의 반클락 사이클이 경과해야 한다. 또한, 이것은 판독 동작이지 기록 동작은 아니기 때문에 제어 회로(102)는 메모리 뱅크(55)의 각각의 메모리들(56과 58)에 제공된 기록 인에이블 신호를 니게이트한다. 기록 인에이블 신호는 도 11에서신호로 표시된다. 상기 예에서, 기록 동작이 실행되지 않기 때문에, WP 값은 판독 동작의 타이밍에 영향을 미치지 않는다는 것을 주지한다.
사용자가 동작의 버스트 모드 동안 외부 메모리의 제 1 액세스와 2차 액세스에 대한 최적의 타이밍을 반영하도록 각각의 복수의 제어 레지스터들(300과 400)을 프로그램하면, 본 발명의 PA 및 SA 값들은 효과적으로 버스트 메모리 판독 동작을 수행한다.
도 5는 버스트 기록 동작이 외부 장치를 액세스하기 위하여 어서트된 칩 선택 신호에 대응하는 PA 및 SA 값들에 응답하여 실행되는 제 2 예를 도시한다. 도 5에서, 어드레스 신호는 버스(24)를 통하여 시스템 집적화 장치(22)에 제공된다고 가정한다. 어드레스 신호는 칩 선택1 신호와 적절한 인에이블 바이트 신호(도시되지 않음)를 생성하기 위하여 사용된다. 도 5에서 칩 선택1 신호는신호로 표시됨을 주지한다. 칩 선택1 신호가 어서트될 때, 제어 회로(102)는 출력 인에이블 신호와 기록 인에이블 신호를 메모리 뱅크(55)의 메모리(56과 58)에 제공한다. 도 5에서, 출력 인에이블 신호는신호로 표시되고 기록 인에이블 신호는신호로 표시된다.
도 5에서, PA 값은 %101과 같아서 데이터 처리기(10)가 메모리 뱅크(55)의 메모리들(56과 58)에 유효 데이터를 기록하기 전에 9개의 반클락 사이클들이 경과해야 한다. 또한, SA 값은 %100과 같아서 데이터 처리기(10)가 다음의 데이터를 메모리 뱅크(55)의 메모리들(56과 58)에 기록하기 전에 단지 4개의 반클락 사이클들이 경과해야 한다. 또한, 이것은 기록 동작이지 판독 동작은 아니기 때문에, 제어 회로(102)는 출력 인에이블 신호를 메모리 뱅크(55)의 각각의 메모리들(56과 58)에니게이트한다. 외부 인에이블 신호는 도 5에신호로 표시된다.
또한, 사용자가 동작의 버스트 모드 동안 외부 메모리의 제 1 및 2차 액세스에 대한 최적의 타이밍을 반영하도록 각각의 복수의 제어 레지스터들(300과 400)을 프로그램하면, 본 발명의 PA 및 SA 값들은 버스트 메모리 기록 동작을 효과적으로 수행한다.
각각의 PA, SA 및 WP 비트에 응답하여 수행된 동작
도 8은 버스트 기록 동작이 각각의 PA 및 WP 비트들에 의해 달성된 기록 제어 타이밍 때문에 최선의 기록 버스트 사이클 시간과 함께 실행되는 타이밍 예를 도시한다. 전술한 예에서, 어드레스 신호는 버스(24)를 통하여 시스템 집적화 장치(22)에 제공된다고 가정한다. 어드레스 신호는 칩 선택1 신호와 적절한 인에이블 바이트 신호(도시되지 않음)를 생성하기 위하여 사용된다. 도 8에서, 칩 선택1 신호는신호로 표시됨을 주지한다. 칩 선택1 신호가 어서트될 때, 제어 회로(102)는 출력 인에이블 신호와 기록 인에이블 신호를 메모리 뱅크(55)의 메모리들(56과 58)에 제공한다. 도 8에서, 출력 인에이블 신호는신호로 표시되고 기록 인에이블 신호는신호로 표시된다.
도 8에서, 제 1 데이터 값이 어드레스 신호에 의해 명시된 어드레스에 기록되는 제 1 액세스는 끝나고 각각의 2차 액세스들은 계속해서 타이밍 사이클 P+1로 부터 실행된다. 상기 예에서, WP 값의 이용은 SA 값이 WP 값에 의해 주어지는 제한을 초월하는 타이밍 표준을 확립하기 때문에 SA 값은 기록 버스트 동작을 수행하기위해 필요한 시간을 결정하는데 있어서 영향을 미치지 못한다는 것을 유념해야 한다. 예를 들면, WP 값은 모든 기록 동작이 2개의 반타이밍 사이클 내에서 수행되기를 요청하지만, SA 값은 제 2 기록 동작이 4개의 반타이밍 사이클 내에서 수행될 수 있음을 나타낸다. WP 값은 더욱 제한적인 타이밍 요구를 SA 값에 강요하기 때문에, SA 값은 버스트 기록 동작의 타이밍 구조에 영향을 미치지 않는다.
또한, 상기 예에서와 같이, 데이터 치리기(10)의 동작의 두 모드가 도 8에 도시된다. 동작의 제 1 모드인 폭 모드에서, WP 값은 기록 인에이블 신호가 어서트되는 시간의 길이를 나타낸다. 상기 경우에, WP 값은 %01과 같고, 따라서, 제어 회로(102)는 2클락 사이클 동안 기록 인에이블 신호를 어서트한다(표 3 참조). 기록 인에이블 신호가 2 클락 사이클 동안 메모리 뱅크(55)의 메모리들(56과 58) 중 한 메모리로 어서트될 때, 적절한 인에이블 바이트 신호에 의해 인에이블된 장치는 기록 인에이블 신호가 어서트되는 2 클락 사이클 동안 버스(60)로부터 데이터를 검색하고 버스(62)로부터 어드레스 정보를 검색한다.
동작 동안, 데이터 처리 시스템(15)의 사용자는 데이터 값을 외부 장치에 기록하기 위해 필요한 시간을 최적화하는 방식으로 각각의 복수의 제어 레지스터들(300과 400)을 프로그램한다. 상기 제 1 예에서, 기록 동작을 수행하기 위해 필요한 사이클은 [(WP+1)× (n-1)]의 버스트 타이밍 값과 합계한 제 1 액세스(PA 값에 의해 결정됨)를 수행하기 위해 필요한 타이밍 사이클의 수와 같고, 여기서 n은 버스트 동작 동안 기록된 메모리 위치의 수와 같다. 따라서, 도 8에 도시된 제 1 예에서, 외부 장치는 데이터 값을 저장하기 위하여 적어도 2개의 클락사이클에 어서트되는 기록 인에이블 신호를 요구한다.
동작의 제 2 모드인 지연 모드에서, WP 값은 기록 인에이블 신호가 일정한 시간 동안 어서트되기 전에 경과해야 하는 시간을 나타낸다. 이런 경우, WP 값은 %00와 같고, 따라서, 제어 회로(102)는 한 클락 사이클이 경과한 후에 기록 인에이블 신호를 어서트한다(표 3 참조). 한 클락 사이클 후, 기록 인에이블 신호는 단일 클락 사이클 동안 메모리 뱅크(55)의 메모리들(56과 58) 중 한 메모리에 어서트되고, 적절한 인에이블 바이트 신호에 의해 인에이블된 장치(들)는 기록 인에이블 신호가 어서트된 단일 클락 사이클 동안 버스(60)로부터 데이터를 검색하고 버스(62)로부터 어드레스 정보를 검색한다.
동작 동안, 데이터 처리 시스템(15)의 사용자는 기록 버스트 동작 동안 데이터 값을 외부 장치에 기록하기 위해 필요한 시간을 최적화하는 방식으로 각각의 복수의 제어 레지스터들(300과 400)을 프로그램한다. 상기 제 2 예에서, 기록 동작을 수행하기 위해 필요한 사이클은 [(WP+2)× (n-1)]의 버스트 타이밍 값과 합계한 제 1 액세스(PA 값에 의해 결정됨)를 수행하기 위해 필요한 타이밍 사이클의 수와 같고, 여기서 n은 버스트 동작 동안 기록된 메모리 위치의 수와 같다. 따라서, 도 8에 도시된 제 2 예에서, 외부 장치는 데이터 값을 저장하기 위하여 어서트하기 전에 적어도 한 클락 사이클 지연되는 기록 인에이블 신호를 요구한다.
반면에, 도 9는 각각의 PA 및 SA 비트들에 의해 유효하게 된 기록 제어 타이밍 때문에 최선의 기록 버스트 사이클과 함께 버스트 기록 동작이 실행되는 타이밍 예를 도시한다. 상기 예에서와 같이, 어드레스 신호는 버스(24)를 통하여 시스템집적화 장치(22)에 제공된다고 가정한다. 어드레스 신호는 칩 선택1 신호와 적절한 인에이블 바이트 신호(도시되지 않음)를 생성하기 위하여 사용된다. 도 9에서, 칩 선택1 신호는신호로 표시된다는 것을 유념해야 한다. 칩 선택1 신호가 어서트될 때, 제어 회로(102)는 출력 인에이블 신호와 기록 인에이블 신호를 메모리 뱅크(55)의 메모리(56과 58)에 제공한다. 도 9에서, 출력 인에이블 신호는신호로 표시되고 기록 인에이블 신호는신호로 표시된다.
도 9에서, 어드레스 신호에 의해 열거된 어드레스에 기록된 제 1 액세스는 끝나고 각각의 2차 액세스가 계속해서 타이밍 사이클 P+1로부터 실행된다. 상기 예에서, WP 값을 이용하면 SA 값은 WP 값에 의해 주어진 제한을 넘는 타이밍 표준을 확립하기 때문에 기록 버스트 동작을 수행하기 위해 필요한 시간을 결정하는데 영향을 미치지 않는다는 것을 유념해야 한다. 예를 들면, WP 값은 제 2 기록 동작이 2개의 반타이밍 사이클에서 수행될 수 있음을 명시할 수 있지만, SA 값은 모든 기록 동작이 4개의 반타이밍 사이클에서 수행되기를 요구한다. WP 값은 SA 값에 더욱 제한적인 타이밍 요구를 강요하기 때문에, SA 값은 버스트 기록 동작의 타이밍 구조에 영향을 미치지 않는다.
또한, 상기 예에서와 같이, 데이터 처리기의 동작의 두 모드가 도 9에 도시된다. 동작의 제 1 모드인 폭 모드에서, WP 값은 기록 인에이블 신호가 어서트되는 시간의 길이를 나타낸다. 이 경우, WP 값은 %01과 같고, 따라서, 제어 회로(102)는 두 클락 사이클 동안 기록 인에이블 신호를 어서트한다(표 3 참조). 기록 인에이블신호가 2개의 클락 사이클들 동안 메모리 뱅크(55)의 메모리들(56과 58) 중 한 메모리에 어서트될 때, 적절한 언에이블 바이트 신호에 의해 인에이블된 장치(들)는 기록 인에이블 신호가 어서트된 2개의 클락 사이클들 동안 버스(60)로부터 데이터를 검색하고 버스(62)로부터 어드레스 정보를 검색한다.
동작 동안, 데이터 처리 시스템(15)의 사용자는 데이터 값을 외부 장치에 기록하기 위해 필요한 시간을 최적화하는 방식으로 각각의 복수의 제어 레지스터들(300과 400)을 프로그램한다. 상기 제 1 예에서, 기록 동작을 수행하기 위해 필요한 사이클은 [SA(n-1)]의 버스트 타이밍 값과 합계한 제 1 액세스(PA 값에 의해 결정됨)를 수행하기 위해 필요한 타이밍 사이클의 수와 같고, 여기서 n은 버스트 동작 동안 기록된 메모리 위치의 수와 같다.
동작의 제 2 모드인 지연 모드에서, WP 값은 기록 인에이블 신호가 일정한 시간 동안 어서트되기 전에 경과해야 하는 시간을 나타낸다. 이런 경우, WP 값은 %00와 같고, 따라서, 제어 회로(102)는 한 클락 사이클이 경과한 후에 기록 인에이블 신호를 어서트한다(표 3 참조). 한 클락 사이클 후, 기록 인에이블 신호는 단일 클락 사이클 동안 메모리 뱅크(55)의 메모리들(56과 58) 중 한 메모리에 어서트되고, 적절한 인에이블 바이트 신호에 의해 인에이블된 장치(들)는 기록 인에이블 신호가 어서트된 단일 클락 사이클 동안 버스(60)로부터 데이터를 검색하고 버스(62)로부터 어드레스 정보를 검색한다.
동작 동안, 데이터 처리 시스템(15)의 사용자는 기록 버스트 동작 동안 데이터 값을 외부 장치에 기록하기 위해 필요한 시간을 최적화하는 방식으로 각각의 복수의 제어 레지스터들(300과 400)을 프로그램한다. 상기 예에서와 같이 제 2 예에서, 기록 동작을 수행하기 위해 필요한 사이클은 [SA(n-1)]의 버스트 타이밍 값과 합계한 제 1 액세스(PA 값에 의해 결정됨)를 수행하기 위해 필요한 타이밍 사이클의 수와 같고, 여기서 n은 버스트 동작 동안 기록된 메모리 위치의 수와 같다.
기록 동작 또는 버스트 액세스 동작 동안 외부 장치와 인터페이스하도록 요구되는 시간의 길이를 선택적으로 프로그램하는 능력은 폭넓게 변화하는 인터페이스 요구를 가지는 증가된 수의 주변 장치들과 통신해야하는 데이터 처리기에 유연한 해법을 제공한다. 본 발명은 제어 레지스터내의 제어 비트가 선택된 외부 장치에 대한 현재의 액세스에 기초하여 기록 인에이블과 출력 인에이블 신호의 타이밍들을 결정하도록 한다. 따라서, 기록 인에이블과 출력 인에이블 신호들의 타이밍은 소프트웨어 간섭없이 한 유형의 메모리의 액세스로부터 다른 유형의 메모리 액세스로 동적으로 변할 수 있다. 소프트웨어 간섭이 거의 없는 상기와 같은 유연성을 제공함으로써, 본 발명은 모든 집적 회로 마이크로프로세서들과 함께 사용하기 위한 저가의 인터페이스 회로를 제공한다.
본 명세서에 설명된 본 발명의 구현은 단지 실시예를 통하여 제시되고 많은 다른 구현들이 본 명세서에 설명된 기능을 실행하기 위하여 존재할 수 있다. 예를 들면, 각각의 복수의 제어 레지스터들(94) 내의 PQ, SA 및 WP 값들은 더 많은 비트를 포함하기 위하여 확장될 수 있고, 따라서 더 큰 기능을 제공할 수 있다.
본 발명이 특정 실시예들과 관련하여 설명되고 예시되었지만, 다른 변형들 및 개량들이 이 기술 분야에 숙련된 사람에게 발생할 것이다. 따라서, 본 발명은예시된 특정 유형에 제한되지 않고 첨부된 청구 범위가 본 발명의 범주로부터 벗어나지 않는 모든 개량들을 커버한다는 것을 유념해야 한다.

Claims (2)

  1. 데이터 처리기(10)에 있어서,
    복수의 어드레스 값들, 복수의 데이터 값들, 및 복수의 제어 값들을 통신하기 위한 중앙 처리 장치(12),
    상기 중앙 처리 장치에 연결된 제어 회로(102), 및
    상기 제어 회로에 결합되는 제어 레지스터들(94)의 세트로서, 상기 제어 레지스터들의 세트는 판독 및 기록 액세스들을 포함하는, 액세스들의 버스트(a burst of accesses)에서 제 1 및 다음 액세스들에 대해 프로그램 가능한 타이밍 데이터를 상기 중앙 처리 장치에 연결된 메모리에 저장하고, 상기 제 1 액세스는 상기 다음 액세스들보다 긴 액세스 시간을 가지며, 상기 제어 레지스터들(94)의 세트는 상기 제어 레지스터들(94)의 세트로부터의 상기 프로그램 가능한 타이밍 데이터가 다른 메모리 액세스 유형들에 대해 다른 메모리 액세스 시간들을 결정하는 방식으로 어드레스할 수 있으며, 상기 다른 메모리 액세스 유형들은 1차 액세스 유형 및 2차 액세스 유형을 포함하고, 다른 메모리 액세스 유형들에 대한 상기 프로그램 가능한 타이밍 데이터는 다른 어드레스 범위들에 대해 서로 독립적으로 선택될 수 있어, 어드레스 범위와 액세스 유형들의 임의의 조합에 대해 다른 가능한 메모리 액세스 시간들을 야기시키는, 상기 제어 레지스터들(94)의 세트를 포함하는, 데이터 처리기.
  2. 데이터 처리기(15)에서 복수의 외부 장치들 중 적어도 하나를 액세스하기 위한 방법에 있어서,
    복수의 어드레스(address) 값들, 복수의 데이터 값들, 및 복수의 제어 값들을 중앙 처리 장치(12)로 통신하는 단계,
    상기 복수의 어드레스 값들을 수신하기 위해 상기 중앙 처리 장치에 비교 회로(101)를 연결하는 단계,
    상기 비교 회로가 상기 복수의 어드레스 값들 중 제 1 어드레스 값을 포함하는 어드레스 범위를 나타내는 제 1 비교 신호(121)를 제공할 수 있도록 하는 단계,
    상기 복수의 제어 값들을 수신하기 위해 상기 중앙 처리 장치에 제어 회로(102)를 연결하는 단계,
    상기 비교 신호를 수신하기 위해 상기 비교 회로에 상기 제어 회로를 연결하는 단계,
    상기 제어 회로가 상기 제 1 비교 신호에 응답하여 제 1 외부 장치에 대응하는 제 1 제어 값(116)을 제공할 수 있도록 하는 단계로서, 상기 제어 회로는 복수의 내부 제어 신호들을 제공하는, 상기 제 1 제어 값(116)을 제공할 수 있도록 하는 단계와,
    상기 제 1 제어 값을 수신하기 위해 상기 제어 회로에 제어 레지스터(94)를 연결하는 단계,
    상기 제어 레지스터가 상기 제 1 제어 값에 응답하여 상기 제어 회로에 제 1 메모리 액세스 값을 선택적으로 제공할 수 있도록 하는 단계,
    상기 제어 레지스터가 상기 제 1 제어 값에 응답하여 상기 제어 회로에 제 2 메모리 액세스 값을 선택적으로 제공할 수 있도록 하는 단계,
    상기 제어 회로가 상기 데이터 프로세서로 하여금 상기 제 1 메모리 액세스 값에 의해 결정되는 제 1 메모리 액세스 동작을 수행할 수 있게 하는 메모리 인에이블 신호(memory enable signal)를 제공하기 위해 제 1 타이밍 제한을 갖는 외부 액세스 인에이블 신호를 제공할 수 있도록 하는 단계, 및
    상기 제어 회로가 상기 데이터 프로세서로 하여금 상기 제 2 메모리 액세스 값에 의해 결정되는 제 1 메모리 액세스 동작을 수행할 수 있게 하는 메모리 인에이블 신호를 제공하기 위해 제 2 타이밍 제한을 갖는 상기 외부 액세스 인에이블 신호를 제공할 수 있도록 하는 단계를 포함하는, 액세스 방법.
KR1019960041819A 1995-09-27 1996-09-24 데이터처리기및액세스방법 Expired - Lifetime KR100399674B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US534,763 1995-09-27
US08/534,763 US5752267A (en) 1995-09-27 1995-09-27 Data processing system for accessing an external device during a burst mode of operation and method therefor

Publications (2)

Publication Number Publication Date
KR970016898A KR970016898A (ko) 1997-04-28
KR100399674B1 true KR100399674B1 (ko) 2003-12-24

Family

ID=24131436

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960041819A Expired - Lifetime KR100399674B1 (ko) 1995-09-27 1996-09-24 데이터처리기및액세스방법

Country Status (5)

Country Link
US (1) US5752267A (ko)
EP (1) EP0766181B1 (ko)
JP (1) JP3959137B2 (ko)
KR (1) KR100399674B1 (ko)
DE (1) DE69615489T2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714993B1 (en) * 2000-05-22 2004-03-30 Legerity, Inc. Programmable memory based control for generating optimal timing to access serial flash devices
US20100043008A1 (en) * 2008-08-18 2010-02-18 Benoit Marchand Scalable Work Load Management on Multi-Core Computer Systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR900003747A (ko) * 1988-08-01 1990-03-27 로버트 더블유.리이드 마이크로프로세서 버스 인터페이스 장치
KR910001517A (ko) * 1989-06-19 1991-01-31 하워드 지. 피거로아 데이타 처리 시스템
KR930020250A (ko) * 1992-03-20 1993-10-19 김영수 클럭 변환장치
US5509138A (en) * 1993-03-22 1996-04-16 Compaq Computer Corporation Method for determining speeds of memory modules
US5623638A (en) * 1994-11-22 1997-04-22 Advanced Micro Devices, Inc. Memory control unit with programmable edge generator to minimize delay periods for critical DRAM timing parameters

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159679A (en) * 1988-09-09 1992-10-27 Compaq Computer Corporation Computer system with high speed data transfer capabilities
US5193193A (en) * 1988-09-14 1993-03-09 Silicon Graphics, Inc. Bus control system for arbitrating requests with predetermined on/off time limitations
JPH07109703B2 (ja) * 1989-11-15 1995-11-22 株式会社東芝 半導体メモリ装置
EP0440456B1 (en) * 1990-01-31 1997-01-08 Hewlett-Packard Company Microprocessor burst mode with external system memory
JPH03282648A (ja) * 1990-03-29 1991-12-12 Sharp Corp メモリ制御装置
US5235697A (en) * 1990-06-29 1993-08-10 Digital Equipment Set prediction cache memory system using bits of the main memory address
US5335334A (en) * 1990-08-31 1994-08-02 Hitachi, Ltd. Data processing apparatus having a real memory region with a corresponding fixed memory protection key value and method for allocating memories therefor
US5280587A (en) * 1992-03-31 1994-01-18 Vlsi Technology, Inc. Computer system in which a bus controller varies data transfer rate over a bus based on a value of a subset of address bits and on a stored value
EP0700002B1 (en) * 1994-08-31 1999-05-19 Motorola, Inc. Modular chip select control circuit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR900003747A (ko) * 1988-08-01 1990-03-27 로버트 더블유.리이드 마이크로프로세서 버스 인터페이스 장치
KR910001517A (ko) * 1989-06-19 1991-01-31 하워드 지. 피거로아 데이타 처리 시스템
KR930020250A (ko) * 1992-03-20 1993-10-19 김영수 클럭 변환장치
US5509138A (en) * 1993-03-22 1996-04-16 Compaq Computer Corporation Method for determining speeds of memory modules
US5623638A (en) * 1994-11-22 1997-04-22 Advanced Micro Devices, Inc. Memory control unit with programmable edge generator to minimize delay periods for critical DRAM timing parameters

Also Published As

Publication number Publication date
JP3959137B2 (ja) 2007-08-15
EP0766181A2 (en) 1997-04-02
DE69615489T2 (de) 2002-05-29
KR970016898A (ko) 1997-04-28
US5752267A (en) 1998-05-12
DE69615489D1 (de) 2001-10-31
EP0766181A3 (ko) 1997-04-09
JPH09167148A (ja) 1997-06-24
EP0766181B1 (en) 2001-09-26

Similar Documents

Publication Publication Date Title
US5701417A (en) Method and apparatus for providing initial instructions through a communications interface in a multiple computer system
US5826093A (en) Dual function disk drive integrated circuit for master mode and slave mode operations
EP0806729B1 (en) Method and apparatus for determining wait states on a per cycle basis in a data processing system
US6216191B1 (en) Field programmable gate array having a dedicated processor interface
KR100679370B1 (ko) 메모리 소자에서의 워드 순서지정 방법
US20070055813A1 (en) Accessing external memory from an integrated circuit
US5386579A (en) Minimum pin-count multiplexed address/data bus with byte enable and burst address counter support microprocessor transmitting byte enable signals on multiplexed address/data bus having burst address counter for supporting signal datum and burst transfer
GB2034944A (en) High-speed digital computer system
JPS6297036A (ja) 計算機システム
EP0757316B1 (en) External device selection unit for data processor
US8024533B2 (en) Host memory interface for a parallel processor
US5317750A (en) Microcontroller peripheral expansion bus for access to internal special function registers
KR100399674B1 (ko) 데이터처리기및액세스방법
US5860129A (en) Data processing system for writing an external device and method therefor
US5740382A (en) Method and apparatus for accessing a chip-selectable device in a data processing system
US7139893B2 (en) Transparent SDRAM in an embedded environment
US5253355A (en) Apparatus and method for developing wait states during addressing operation by using unused address bits
US5893932A (en) Address path architecture
US5890196A (en) Method and apparatus for performing page mode accesses
IE893882L (en) Microcontroller peripheral expansion bus
HK1003518A (en) Method and apparatus for accessing a chip-selectable device in a data processing system

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19960924

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20001220

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 19960924

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20021129

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20030619

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20030917

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20030918

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20060714

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20070718

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20080711

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20090716

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20100827

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20110830

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20120905

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20121231

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20121231

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20140804

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20140804

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20150819

Start annual number: 13

End annual number: 13

FPAY Annual fee payment

Payment date: 20160818

Year of fee payment: 14

PR1001 Payment of annual fee

Payment date: 20160818

Start annual number: 14

End annual number: 14

EXPY Expiration of term
PC1801 Expiration of term