KR20010104721A - 프로그램 가능한 대기 상태를 갖는 마이크로프로세싱 장치 - Google Patents

프로그램 가능한 대기 상태를 갖는 마이크로프로세싱 장치 Download PDF

Info

Publication number
KR20010104721A
KR20010104721A KR1020017011334A KR20017011334A KR20010104721A KR 20010104721 A KR20010104721 A KR 20010104721A KR 1020017011334 A KR1020017011334 A KR 1020017011334A KR 20017011334 A KR20017011334 A KR 20017011334A KR 20010104721 A KR20010104721 A KR 20010104721A
Authority
KR
South Korea
Prior art keywords
memory
signal
standby state
memories
external
Prior art date
Application number
KR1020017011334A
Other languages
English (en)
Other versions
KR100660448B1 (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 KR20010104721A publication Critical patent/KR20010104721A/ko
Application granted granted Critical
Publication of KR100660448B1 publication Critical patent/KR100660448B1/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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 메모리 출력 드라이버가 출력 동작 후에 데이터 버스를 전자적으로 해제시키기 위한 한정된 시간을 요구한다는 사실을 고려하여, 마이크로컨트롤러(110)에 의한 데이터 버스(120)의 제어를 다룬다. 각 메모리(130, 132)는 판독 동작 후 다른 I/O 동작 전에 마이크로컨트롤러(110)를 가변 길이의 대기 상태에 선택적으로 두기 위한 관련 대기 상태 번호를 갖는다.

Description

프로그램 가능한 대기 상태를 갖는 마이크로프로세싱 장치{MICROPROCESSING DEVICE HAVING PROGRAMMABLE WAIT STATES}
일반적으로, 시스템에서 마이크로프로세싱 장치 및 메모리 장치와 같은 2개의 장치 사이에서 데이터를 교환할 때마다, 시스템은 그 2개의 장치 사이의 인터랙션이 동기화되도록 보증해야만 한다. 예컨대, 현재의 마이크로프로세서 및 마이크로컨트롤러는 고속 동작을 가능하게 하는 기술을 이용하여 제조된다. 300 MHz 및 그 이상의 클록 속도는 이제 평범한 일이 되어 버렸다. 그러나 주변 장치, 특히 FLASH, SRAM 및 EEPROM과 같은 메모리 장치는 통상적으로 그러한 고속의 클록 속도를 갖지 못한다.
더 낮은 클록 속도를 갖는 장치와 동기화시키기 위한 공통의 방법은 대기 상태를 이용하여, 때때로 "버스 스트레칭"이라 칭하는 방법으로서, 각 장치에 대한 액세스를 위한 마이크로프로세싱 장치의 버스 사이클 지속 시간을 변화시키는 것이다. 시스템의 어드레스 디코더는 어드레스를 디코딩하여, 어떤 메모리가 선택되는지를 결정한다. 다음에 시스템의 제어 논리 회로는 그 메모리가 대기 상태를 요구하는 메모리인지를 결정하며, 만일 요구하는 경우에는 WAIT 신호선을 어서트(assert)한다. 마이크로프로세싱 장치는 클록 사이클 동안 WAIT 신호선을 샘플링하며, WAIT 신호선이 어서트된 경우에는 1 클록 사이클 동안의 대기 상태[본질적으로 무동작(do-nothing) 상태]로 된다. 마이크로프로세싱 장치는 다음 클록에서 WAIT 신호선을 샘플링하며, WAIT 신호선이 니게이트(negate)(디어서트)된 경우에는 동작을 다시 시작한다. 이것은 더 낮은 클록 속도를 갖는 메모리 장치로 하여금 내부적으로 어드레스를 디코딩하고 그 메모리 장치에 액세스하여 그의 출력 버퍼에 있는 데이터를 안정화시킬 수 있는 충분한 시간을 갖도록 한다.
대기 상태를 이용하는 한 종래 기술은 메모리 장치 그 자체에 대기 상태 번호를 저장하는 것을 포함한다. 컴퓨터 장치는 버스 사이클을 연장하는데 필요한 시간량을 결정하는 대기 상태 번호에 액세스하기 위한 논리 회로를 포함한다. 이러한 방법은 대기 상태 번호를 저장하여 컴퓨터 장치에 제공하기 위한 논리 회로를 포함하는 특수 장치를 요구한다.
대기 상태를 이용하는 다른 방법은 인터럽트 구동식(interrupt-driven) I/O 장치에서 이용된다. 프로그램 디코더의 논리 회로는 어떤 일정한 I/O 명령어의 발생을 검출하여, 그 명령어에 따라 한 주기의 시간 동안 마이크로프로세서의 동작을 일시 중지시키기 위해 WAIT 신호를 어서트한다. 이러한 방법은 더 낮은 클록 속도를 갖는 I/O 장치에 액세스하는데 유용하며, 여기서 마이크로프로세서는 인터럽트로부터의 복귀 명령어 동안 일시 중지됨으로써, 그 I/O 장치에게 그의 액션을 수행할 수 있는 시간을 제공한다.
상기에 의해 어드레스 지정되지 않는 문제점은 다수의 메모리 장치에 액세스함에 있으며, 여기서 제1 장치에의 판독 액세스는 다른 장치에의 액세스가 시작되기 전에 완료될 수 있는 충분한 시간을 갖지 못하며, 그 결과 버스 충돌이 일어나게 된다. 이러한 문제점은 제1 장치의 출력 드라이버가 다른 장치에의 액세스가 시작될 때 양쪽의 장치 모두에 공통인 데이터 버스를 여전히 구동하고 있다는 사실로부터 발생된다. 다른 장치가 액세스를 수행하기 전에 충분한 경과 시간이 허용되지 않는다면, 양쪽의 장치는 모두 그 버스를 구동하려 시도할 것이다. 그 결과 양쪽의 드라이버 회로에 의한 동시 액세스로 인해, 데이터가 오전(誤傳)되고 전력 소비가 증가된다. 그러나, 이러한 문제점은 항상 존재하는 것은 아니다. 예컨대, 동일한 장치로부터의 연속적인 판독 동작은 구동 회로에 문제를 발생시키지 않는다. 마찬가지로, 기록 동작 다음의 판독 동작은 구동 회로에 문제를 발생시키지 않는다.
다수의 메모리에의 액세스를 검출하여 수행되는 I/O 동작의 유형에 따라 대기 상태를 삽입하는 마이크로프로세싱 구조에는 제어 회로가 요구된다. 어떤 메모리가 액세스되고 있는지를 검출하여 그에 따라 대기 상태를 삽입할 수 있는 회로를 구비하는 것이 바람직하다. 또한, 수행되는 일련의 I/O 동작에 따라 대기 상태를 삽입할 수 있는 회로를 구비하는 것이 바람직하다.
본 발명은 마이크로프로세싱 장치에 관한 것으로서, 특히 외부 장치에 대한 I/O를 위한 프로그램 가능한 대기 상태 체계에 관한 것이다.
도 1은 본 발명에 따른 데이터 처리 시스템의 블록도.
도 2는 도 1에 나타낸 외부 버스 인식 논리 회로의 블록도.
도 3 내지 도 6은 본 발명의 메모리 액세스 체계에 따라 상기 데이터 처리 시스템의 다양한 동작 구성을 나타낸 타이밍도.
도 7은 상기 데이터 처리 시스템에 대한 다른 실시예의 블록도.
제1 및 제2 외부 메모리를 구비한 컴퓨터 장치에서의 메모리 액세스 방법은 제1 대기 상태값을 상기 제1 메모리에, 제2 대기 상태값을 상기 제2 메모리에 관련시키는 단계와, 상기 제1 및 제2 메모리 중 선택된 메모리와 관련된 대기 상태값을선택하는 단계와, 상기 메모리를 판독하는 단계를 포함한다. 판독 단계 후 다음 I/O 동작 전에, 상기 CPU는 상기 선택된 대기 상태값에 비례하는 시간 주기, 즉 대기 상태 x 클록 주기 동안의 대기 상태에 놓인다.
그러나, 다음 I/O 동작이 상기 CPU의 내부 메모리일 경우에는, 상기 CPU는 상기 I/O 동작에 앞서 대기 상태에 진입하지 않고, 오히려 바로 상기 I/O 동작을 시작한다. 상기 내부 I/O 동작 다음의 판독 동작이 상기 최초 선택된 외부 메모리에 대해 이루어질 경우, 대기 상태에 진입하지 않고, 바로 액세스를 시작한다. 상기 내부 I/O 동작 다음의 판독 동작이 다른 외부 메모리에 대해 이루어질 경우에는, 상기 판독 동작의 완료로부터 시간이 정해진, 상기 최초 선택된 외부 메모리와 관련된 대기 상태에 비례하는 시간 주기 동안의 대기 상태에 진입한다.
본 발명에 따라, 마이크로프로세싱 장치는 복수의 외부 메모리, 핵심 논리 회로 및 메모리 컨트롤러에 연결된 시스템 버스를 포함한다. 대기 상태 회로는 상기 핵심 논리 회로를 대기 상태에 두는 대기 신호를 발생시킨다. 상기 대기 상태 회로에 연결되는 외부 버스 회로는 상기 시스템 버스에서 발생하는 일련의 메모리 액세스를 검출하고 그에 따라서 상기 핵심 논리 회로를 대기 상태에 두는 상기 대기 상태 회로를 활성화시킨다. 상기 외부 버스 회로에 연결되는 데이터 수단은 각 메모리 장치에 대한 데이터 부동 대기 상태값을 저장한다.
상기 데이터 수단은 선택된 메모리 장치에 응답하여 상기 외부 버스 회로에 데이터 부동 대기 상태값을 출력한다. 상기 외부 버스 회로는 다른 외부 메모리에의 액세스에 앞선 외부 판독 동작의 발생을 검출하고, 상기 액세스된 메모리에 대응하는 대기 상태값에 비례하는 시간 주기, 즉 대기 상태 x 클록 주기 동안의 데이터 부동 대기 상태를 발생시킨다. 그러나, 상기 외부 버스 회로가 기록 동작 다음의 판독 동작을 검출하는 경우에는, 비록 전형적인 대기 상태가 여전히 발생할 수도 있지만, 데이터 부동 대기 상태는 발생하지 않는다. 유사하게, 외부 판독 동작 다음에 내부 액세스가 일어나는 경우에도, 데이터 부동 대기 상태는 발생하지 않는다.
도 1을 참조하면, 본 발명에 따른 데이터 처리 시스템(100)은 시스템 버스(120) 주위에 조직적으로 형성된 각종 서브시스템을 포함한다. 마이크로컨트롤러 등의 마이크로프로세싱 장치(110)는 핵심 논리 회로(112)와 내부 메모리(114)를 포함한다. 외부 클록(156)은 마이크로프로세싱 장치(110)를 구동시키는 클록 신호 S130을 제공한다. 핵심 논리 회로(112)와 내부 메모리(114)간의 데이터 전송은 내부 버스(116)를 통해 이루어진다. 내부 버스(116)는 시스템 버스(120)에 연결됨으로써, 마이크로프로세싱 장치(110) 외부로 데이터를 전송시킨다. 내부 버스(116)로부터 인출된 메모리 어드레스선 S140은 메모리 컨트롤러(152)에 연결된다. 핵심 논리 회로(112)는 데이터 전송(판독 또는 기록) 요구를 나타내는 데이터 선택 신호 S142를 제공한다. 특히, HI의 신호 S142는 데이터 전송 사이클임을 나타내며, LO의 신호 S142는 어드레스 사이클임을 나타낸다. 상기 데이터 선택 신호는 메모리 컨트롤러(152)와 대기 상태 발생기(160) 내에 제공된다.
또한, 시스템 버스(120)는 외부 메모리(130, 132)에 연결된다. 통상의 외부 메모리에는 EEPROM, FLASH 및 SRAM이 있다. 외부 메모리(130, 132)는 외부 메모리(130)용 칩 선택 신호 S100, 출력 인에이블 신호 S104 및 기록 인에이블 신호 S106와, 외부 메모리(132)용 칩 선택 신호 S102, 출력 인에이블 신호 S104 및 기록 인에이블 신호 S106와 같은 통상의 제어 신호에 의해 제어된다. 이러한 신호들은 I/O 동작과 어드레스선 S140에 표시된 어드레스에 따라 메모리 컨트롤러(152)에서 발생된다. 메모리 컨트롤러는 또한 마이크로프로세싱 장치(110) 외부에 있는 메모리에 대한 판독 사이클을 나타내는 외부 판독 신호 S108를 발생시킨다. 메모리 컨트롤러는 또한 이전에 액세스된 메모리와 동일한 메모리로부터의 판독 동작의 발생을 나타내는 연속 판독 신호 S110을 발생시킨다.
대기 상태 발생기(160)는 핵심 논리 회로(112) 내에 제공되는 대기 신호 S150(액티브 HI)을 발생시킨다. 어서트 신호 S150은 핵심 논리 회로를 대기 상태에 진입시키며, 디어서트 신호 S150은 핵심 논리 회로를 계속시킨다. 대기 상태 발생기(160)는 전형적인 대기 상태 레지스터(150)로부터 대기 상태 번호를 수신한다. 대기 상태 발생기(160)는 또한 데이터 전송이 곧 발생됨을 나타내는 데이터 선택신호 S142를 수신한다. 종래의 동작에 따라, 대기 신호 S150은 외부 메모리가 액세스되기에 충분한 시간 주기 동안의 대기 상태에 마이크로프로세싱 장치(110)를 두기 위해서 외부 메모리가 액세스되는 때에 발생된다. 이러한 시간 주기는 전형적인 대기 상태 레지스터(150)에 의해 발생된 값을 기초로 한다.
본 발명에 따라, 데이터 처리 시스템(100)은 상이한 메모리 유형에 대한 대기 상태 번호를 저장하는 역할을 하는 외부 메모리 선택 논리 회로(140)를 포함한다. 통상적으로, 각각의 메모리 유형은 어드레스 범위와 관련된다. 따라서, 주어진 데이터에 대한 어드레스는 그 데이터가 저장되는 메모리의 유형을 나타낸다. 그러므로, 어드레스선 S140은 외부 선택 논리 회로(140)에 연결되며, 여기서 외부 선택 논리 회로(140)는 그 어드레스선에 표시된 어드레스에 대응하는 메모리 장치의 대기 상태 번호를 출력한다. 알 수 있는 바와 같이, 각 메모리는 2개의 관련 대기 상태 번호, 즉 전형적인 대기 상태 번호와 데이터 부동 대기 상태 번호를 갖는다. 전형적인 대기 상태 번호는 어드레스 지정된 데이터를 인출하여 시스템 버스(120)에 제공하기에 충분한 시간 주기 동안의 대기 상태에 상기 CPU를 두는데 사용되는 종래의 대기 상태 번호이다. 주어진 어드레스에 대응하는 전형적인 대기 상태 번호는 레지스터(150)에 저장되어, 그곳으로부터 대기 상태 발생기(160)에 제공된다.
외부 선택 논리 회로(140)는 또한 데이터 부동 레지스터(142)에 저장되는 데이터 부동 대기 상태 번호를 제공한다. 데이터 부동 레지스터로부터 3개의 데이터 부동 비트 S160이 외부 버스 논리 회로(170)에 제공된다. 또한, 외부 버스 논리 회로는 외부 판독 신호 S108, 연속 판독 신호 S110, 데이터 선택 신호 S142, 및 대기상태 발생기(160)로부터의 대기 신호 S150을 수신한다. 이러한 입력 신호에 기초하여, 외부 버스 논리 회로(170)는 ACK 신호 S152(액티브 HI)를 발생시켜, ACK 신호 S152가 LO일 때 대기 신호 S150를 어서트하는 대기 상태 발생기에 제공한다.
어드레스 범위 및 대기 상태 번호는 사용자 제공 프로그램 코드(180) 방식으로 제공된다. 일실시예에 있어서, 외부 메모리 선택 논리 회로(140)는 메모리 맵 체계를 통해 액세스될 수 있는 복수의 레지스터를 포함하며, 상기 레지스터는 프로그램 제어 하에서 액세스 가능한 관련 어드레스를 갖는다. 사용자는 어드레스 범위 및 대응하는 전형적인 및 데이터 부동 대기 상태 번호 모두를 이용하여 상기 레지스터를 프로그램할 수 있다.
도 1에 대한 설명의 마지막으로서, 리셋 신호 S120 및 그의 상보 신호 S122를 제공하는 파워 온 리셋 회로(154)가 있다. 또한, 클록 신호 S130 및 그의 상보 신호 S132를 제공하는 클록 회로(156)가 있다.
도 2를 참조하면, 외부 버스 논리 회로(170)를 포함하는 회로가 도시되어 있다. 클록 신호 S130에 의해 클록되는 플립플롭(202, 204, 206)으로 구성된 카운터 논리 회로가 있다. 카운터 논리 회로의 출력은 개개의 플립플롭의 반전 출력으로 이루어진다. 이러한 출력은 NAND 게이트에 연결된 3개의 XOR 게이트를 포함하는 비교 회로(220)에 제공된다. 각 XOR 게이트의 입력은 플립플롭(202-206)의 반전 출력에 연결되며, 플립플롭(204)의 출력은 버퍼(254)에 의해 구동된 후 비교 회로(220)에 제공된다. 비교 회로에의 다른 입력은 데이터 부동 비트 S160으로부터 나온다. 비교 회로(220)의 출력은 NAND 게이트(260)의 입력에 제공된다.
데이터 부동 비트들 S160은 논리 회로(222)에 의해 함께 OR 연산된다. OR 연산의 결과는 다른 NAND 게이트(260)의 입력에 제공된다.
대기 신호 S150 및 외부 판독 신호 S108은 인버터 267 및 268에 각각 제공되며, 그 출력은 NAND 게이트(266)를 통해 연결된다. 상기 인버터와 상기 NAND 게이트는 함께 OR 게이트로서 동작한다. NAND 게이트(266)의 출력은 AND 게이트(264)의 입력에 제공된다. 데이터 선택 신호 S142는 AND 게이트(264)의 다른 입력에 연결된다. AND 게이트(264)의 출력은 NAND 게이트(262)의 입력에 연결된다. NAND 게이트(262)에의 다른 입력은 플립플롭(208)의 출력에 연결된다.
데이터 선택 신호 S142는 또한 인버터(265)를 통해 반전된 후, 연속 판독 신호 S110과 함께 OR 게이트(263)를 통해 OR 연산된다. OR 게이트(263)의 출력과 NAND 게이트(262)의 출력은 AND 게이트(261)를 통해 연결되며, 그 출력은 NAND 게이트(260)의 제3 입력에 제공된다. 다음에 NAND 게이트(260)는 ACK 신호 S152를 발생시키는 플립플롭(208)에 제공된다.
카운터 논리 회로로 되돌아가서, 플립플롭(202)은 인버터(251)를 통해 NAND 게이트(250)에 의해 구동된다. NAND 게이트는 플립플롭(202)의 반전 출력과 플립플롭(208)의 반전 출력을 수신한다. 더 나아가, NOR 게이트(253)는 플립플롭(202)의 반전 출력과 플립플롭(208)의 비반전 출력을 수신한다. NOR 게이트(253)의 출력은 멀티플렉서(210)의 입력 1에 제공된다. 멀티플렉서(210)에의 다른 입력은 클록 신호 S130에 연결된다. 멀티플렉서의 출력은 플립플롭(204)에 제공된다.
플립플롭(204)의 반전 출력은 NAND 게이트(255) 및 인버터(256)에[버퍼(254)를 통해] 제공되며, 멀티플렉서(210)용 셀렉터 제어이다. NAND 게이트(255)는 또한 플립플롭(208)의 반전 출력을 수신한다. NAND 게이트(250, 255)의 출력은 NAND 게이트(258)에 연결된다. 인버터(256)는 AND 게이트(259)에 연결되며, AND 게이트(259)는 또한 인버터(257)를 통해 플립플롭(202)의 반전 출력으로부터의 입력과, 플립플롭(208)의 반전 출력으로부터의 입력을 수신한다. 게이트 258 및 259의 출력은 각각 멀티플렉서(212)의 입력 0 및 1에 제공된다. 멀티플렉서(212)의 출력은 플립플롭(206)에 입력되며, 그 반전 출력은 멀티플렉서(212)의 선택 입력으로서의 역할을 한다.
이하, 외부 버스 논리 회로(170)의 동작에 대하여 설명할 것이다. 일반적으로, 외부 메모리 액세스에 있어서, 액세스된 메모리에 대응하는 데이터 부동값은 외부 선택 논리 회로(140)로부터 데이터 부동 레지스터(142) 내에 로드된다. 판독 사이클 후, 카운터 논리 회로[플립플롭(202, 204, 206)]는 데이터 부동값(신호 S160)까지 증분된다. 카운트 동안에, ACK 신호 S152는 디어서트되는데(LO), 이는 시스템 버스(120)가 여전히 판독된 메모리의 출력 버퍼에 의해 구동되고 있음을 나타낸다. 이에 응답하여, 대기 상태 발생기(160)는 마이크로컨트롤러(110)를 대기 상태에 두기 위해 대기 신호 S150을 어서트한다. 카운터가 데이터 부동값 S160에 도달하면, 카운터는 리셋되고, ACK 신호 S152는 시스템 버스가 프리(free) 상태임을 나타내는 HI로 된다.
도 3 내지 도 6은 외부 버스 논리 회로(170)의 다양한 동작 구성을 설명하기 위한 타이밍도이다. 상기 타이밍도는 도 2에 도시된 외부 버스 논리 회로(170)를시뮬레이션한 결과이다. 그러한 시뮬레이션은 카덴스(Cadence)에 의해 제조된 VeriLog XL 시뮬레이터를 이용한다.
도 1, 2 및 3을 참조하여, 메모리(130)(MEM0)를 최상의 비트가 "0x010"과 같은 어드레스를 갖는 8 비트 메모리로 가정하자. 외부 선택 논리 회로(140)는 0x010로 시작하는 어드레스에 대해 데이터 부동 대기 상태 번호 5를 관련시키도록 프로그램된다. 도 3의 타이밍도는 메모리 MEM0에 대한 기록 동작 다음의 2개의 연속 판독 동작에 대한 시스널링을 나타낸다. 또한, 상기 기록 및 판독 동작은 16 비트의 워드를 필요로 하며, 따라서 각 I/O 동작은 2개의 8 비트 메모리 액세스(로우 바이트, 하이 바이트)로 구성된다.
도 3에서 타이밍도의 상부는 메모리 어드레스 신호 S140 및 클록 신호 S130을 보여준다. 칩 선택 신호 S100(CS0, 액티브 LO)은 MEM0이 선택됨을 나타낸다. 액세스된 제1 어드레스는 0x01000500이다. 어드레스 버스 S140 상의 어드레스를 어서트하자마자, 외부 선택 논리 회로(140)는 데이터 부동 레지스터 내에 5를 출력한다. 결과적으로, 데이터 부동 비트 S160은 5를 어서트한다.
시간 주기 t1 동안, 기록 인에이블 신호 S106은 두 번, 즉 로우 및 하이 바이트가 메모리 위치 0x01000500 내에 기록될 때 어서트된다(액티브 LO). 상기 동작은 기록(WRITE)이기 때문에, 데이터 전송 신호 S142는 어서트되고 외부 판독 신호 S108은 디어서트된다(액티스 LO). 따라서 본 발명에 따라 논리 회로(170)로 구현된 바와 같이, ACK 신호 S152는 어서트된 상태를 유지하고 카운터 출력[플립플롭(202,204 및 206)의 출력]은 도 3의 이벤트 A3으로 표시된 기록(WRITE) 사이클의 종점에서 로우 상태를 유지하며, 이는 시스템 버스(120)가 프리 상태임을 나타낸다. 시간 주기 t1 동안, 대기 신호 S150은 그럼에도 불구하고 대기 상태 발생기(160)에 의해 어서트됨을 알 수 있다. 이는 기록 동작에 응답하여 발생된 전형적인 대기 상태의 결과이다.
연속 판독 신호 S110은 이벤트 A3에서 메모리 컨트롤러(152)에 의해 어서트되는데, 이는 동일한 메모리 MEM0에의 액세스, 즉 판독 동작이 수행되고 있기 때문이라는 것을 주의해야 한다. 그 판독 동작은 출력 인에이블 신호 S104가 액세스된 워드의 제1 바이트를 출력하도록 이벤트 B3에서 LO로 구동되는 시간 주기 t2 동안 발생된다. 또한 이벤트 B3에서, 외부 판독 신호 S108은 LO로 되며, 이는 외부 판독 액세스의 발생을 나타낸다. 제2 바이트는 이벤트 C3에서 판독된다. 또한, 전형적인 대기 상태가 시간 주기 t2 동안 발생되어, 판독 동작이 완료되기에 충분한 시간을 제공한다.
이벤트 D3에서, 새로운 어드레스, 즉 0x01000500이 어서트된다. 또한, 동일한 메모리 MEM0가 액세스되기 때문에, 연속 판독 신호 S110이 어서트된다. 결과적으로, 본 발명에 따라, 카운터는 카운트를 시작하지 않고 플립플롭(208)은 계속해서 HI를 출력하며 따라서 ACK 신호 S152를 어서트하는데, 이는 시스템 버스(120)가 프리 상태임을 나타낸다.
도 3에 대한 마지막 설명으로서, 이벤트 E3및 F3에서 시간 주기 t3 동안 2 번의 판독(READ) 액세스가 발생되어, 메모리 위치 0x01000500에 저장된 워드를 구성하는 2 바이트를 판독한다. 그 동작은 어서트되는 대기 신호 S150에 의해 지시되는 동일한 주기 동안 전형적인 대기 상태에 의해 성취된다.
도 3의 전술된 바로부터, 외부 버스 논리 회로(170)는 기록(WRITE) 사이클이 완료되자마자 대기 상태를 일으키지 않는데, 이는 버스 충돌이 일어나지 않기 때문이다. 또한, 상기 외부 버스 논리 회로는 동일한 메모리로부터의 연속 판독을 위한 대기 상태를 일으키지 않는다.
도 1, 2 및 4를 참조하여, 메모리(130)(MEM0)를 최상의 비트가 "0x010"과 같은 어드레스를 갖는 8 비트 메모리로 가정하자. 또한 외부 선택 논리 회로(140)는 0x010로 시작하는 어드레스에 대해 데이터 부동 대기 상태 번호 5를 관련시키도록 프로그램된다고 가정하자. 도 4의 타이밍도는 MEM0으로부터의 판독 동작, MEM0에의 기록 동작, MEM0으로부터의 판독 동작 순서로 이어지는 동작에 대한 타이밍을 나타낸다. 도 3에 도시된 바와 같이, 상기 기록 및 판독 동작은 16 비트의 워드를 필요로 하며, 따라서 각 I/O 동작은 2개의 8 비트 메모리 액세스(로우 바이트, 하이 바이트)로 구성된다.
도 4에서 알 수 있는 바와 같이, 판독 동작은 시간 주기 t1 동안 일어나며, 대응하는 전형적인 대기 상태를 동반한다. 이벤트 A4에서 판독 동작이 완료되자마자, 출력 인에이블 신호 S104는 디어서트되고 외부 판독 신호 S108은 마찬가지로디어서트된다. ACK 신호 S152가 디어서트됨으로써, 카운터[플립플롭(202, 204, 206)]는 카운트를 시작하게 되고 대기 상태 발생기(160)는 대기 상태 신호 S150을 어서트하게 되는데, 이는 시스템 버스(120)가 비지(busy) 상태임을 나타낸다. 결과적으로, CPU(110)는 대기 상태로 된다.
종래 기술에서는, 다음의 I/O 동작은 이벤트 B4에서 시작되며, 그 결과 MEM0의 출력 버퍼가 그의 판독 동작으로부터 시스템 버스(120) 상에 여전히 유지하고 있는 때와 동일한 시간에 CPU가 그의 출력 데이터를 시스템 버스(120) 상에 전송하려 시도할 때 그 버스에 대한 경쟁을 유발하게 된다. 그러나, 본 발명에 의하면, 그 대신에 이벤트 B4에서 대기 상태로 진입함으로써, MEM0의 출력 드라이버는 시스템 버스를 해제시키기에 충분한 시간(5 클록)을 갖게 되어, 기록 동작이 시작되는 경우 시스템 버스는 프리 상태가 되고 마이크로컨트롤러와 MEM0 사이의 시스템 버스 경쟁으로 인한 데이터 오전 위험이 없어지게 된다.
따라서, 이벤트 C4에서 카운터가 5까지 카운트하고 비교 회로(220)가 데이터 부동값 S160과 동일하다고 검출하면, 플립플롭(208)은 ACK 신호 S152를 리어서트하기 위해 HI를 출력한다. 이에 응답하여, 대기 상태 발생기(160)는 점선으로 도시된 바와 같이 대기 신호 S150을 디어서트해야 한다. 그러나, 전형적인 대기 상태는 후속 기록 동작 중에 시간 주기 t2 동안 삽입된다. 기록 사이클의 종점(이벤트 D4)에서, 카운터는 ACK 신호 S152가 HI 상태를 유지하기 때문에 초기화되지 않는데, 이는 외부 선택 신호가 어서트되기 때문이며, 따라서 다음의 I/O 동작 이전에 대기상태는 발생되지 않는다. 외부 버스 논리 회로(170)가 기록 동작의 종점에서 카운터를 초기화하지 않는다는 것을 상기하자. 그러나, 전형적인 대기 상태는 여전히 메모리 위치 0x010001f8로부터의 판독 중에 시간 주기 t3 동안 발생된다는 것을 알 수 있다.
요약하면, 도 4의 타이밍도는 본 발명은 방금 완료된 동작에 따라 대기 상태를 선택적으로 어서트한다는 것을 보여준다. 외부 판독의 경우에 그리고 데이터 부동 레지스터가 0 이 아닌 값을 포함하는 경우에는, 대기 상태가 발생되어 출력 드라이버는 시스템 버스를 해제시킨다. 기록 동작의 경우에는, 대기 상태가 발생되지 않는다.
도 1, 2 및 5를 참조하여, 메모리(130)(MEM0)를 최상의 비트가 "0x010"과 같은 어드레스를 갖는 8 비트 메모리로 가정하자. 또한, 내부 메모리(114)는 최상의 비트가 "0x000"과 같은 어드레스를 갖는다고 가정하자. 외부 선택 논리 회로(140)는 0x010로 시작하는 어드레스에 대해 데이터 부동 대기 상태 번호 5를 관련시키도록 프로그램된다. 도 5의 타이밍도는 MEM0으로부터의 판독 동작, 내부 메모리(114)로부터의 3개의 연속 판독 동작, MEM0로부터의 다른 판독 동작 순서로 이어지는 동작에 대한 스널링을 나타낸다. 또한, MEM0 판독 동작은 16 비트의 워드를 필요로 하며, 따라서 각 I/O 동작은 2개의 8 비트 메모리 액세스(로우 바이트, 하이 바이트)로 구성된다.
도 5에서 타이밍도의 상부는 메모리 어드레스 신호 S140 및 클록 신호 S130을 보여준다. 제1 판독 액세스는 시간 주기 t1 동안 외부 메모리 MEM0의 위치0x010001e8로부터이다. 대기 신호 150은 전형적인 대기 상태 처리 마다, 동일한 주기 동안 어서트된다는 것을 주의해야 한다.
이벤트 A5에서의 판독 동작의 결과, ACK 신호 S152는 LO로 되고, 따라서 카운터는 카운트를 시작하게 된다. ACK LO는 시스템 버스(120)가 프리 상태가 아님을 나타낸다는 것을 상기하자. 그러나, 대기 신호 S150은 디어서트 상태를 유지한다는 것을 알 수 있으며, 이는 후속 판독 동작이 MEM0의 출력 드라이버에 의해 해제되는 시스템 버스(120)에 의존하지 않는 내부 메모리(114)에 대하여 이루어지기 때문이다.
도 1로 되돌아가서, 외부 메모리 선택 회로(140)는 내부 메모리 어드레스가 검출될 때 전형적인 대기 상태 레지스터(150) 내에 0을 로드한다. 이것은 대기 상태 발생기(160)에 제공되고, 대기 상태 발생기는 전형적인 대기 상태값 0을 확인하자마자, ACK 신호 S152의 논리 상태와 상관없이, 대기 신호 s150을 디어서트된 상태로 유지함으로써 응답한다. 핵심 논리 회로(112)가 단일 클록에서 내부 메모리에 액세스할 수 있기 때문에, 대기 상태는 발생될 필요가 없다.
그러나, 어드레스 0x00000ec8, 0x00000ecc 및 0x00000ed0으로부터의 3개의 내부 판독 동작 기간 중에, 카운터는 계속해서 카운트한다. 이러한 동작이 지속되는 이유는 MEM0의 출력 드라이버가 여전히 시스템 버스를 전기적으로 해제시키기기 위한 시간을 필요로 하고, 마이크로프로세싱 장치(110)가 외부 메모리에의 액세스를 원하는 경우, 카운터가 완료될 때까지, 즉 데이터 부동값 S160과 같은 값에 도달할 때까지 대기 상태에 진입해야 하기 때문이다. 그렇지 않은 경우에는, 버스 경쟁이 발생될 것이다.
한편, 동일한 외부 메모리가 액세스될 경우에는, 대기 상태에 진입할 필요가 없다. 이것은 도 5에 도시된 상황과 정확하다. 이벤트 B5에서 연속 판독 신호 S110은 MEM0가 다시 액세스되고 있음을 나타내는 LO로 된다. 이것은 ACK 신호 S152를 Hi로 되게 함으로써, 카운터[플립플롭(202, 204, 206)]를 0으로 바로 리셋하게 한다. MEM0의 어드레스 0x010001ea 및 0x01000258로부터의 2개의 판독 동작은 대응하는 전형적인 대기 상태와 함께 시간 주기 t2 및 t3에서 수반된다.
도 5를 요약하면, 내부 메모리 액세스가 외부 메모리로부터의 판독 동작 다음에 발생되는 경우, 카운터는 여전히 활성화되어 있으나, CPU는 대기 상태에 진입하지 않는다. 이것은 후속 외부 메모리 액세스의 경우에, CPU가 시스템 버스가 해제될 수 있도록 카운트 완료를 위해 대기되도록 강요받을 수 있는 가능성을 허용한다. 그러나, 외부 액세스가 동일한 외부 메모리에 대하여 발생되는 경우에는, 즉시 대기 상태없이 외부 메모리에의 액세스가 발생되도록 카운트가 중지된다.
도 1, 2 및 6을 참조하여, 메모리(130)(MEM0)를 최상의 비트가 "0x010"과 같은 어드레스를 갖는 8 비트 메모리로 가정하고, 메모리(132)(MEM1)를 최상의 비트가 "0x011"과 같은 어드레스를 갖는 또 다른 8 비트 메모리로 가정하자. 또한 외부 선택 논리 회로(140)는 MEM0에 대해 데이터 부동 대기 상태 번호 1을, MEM1에 대해 데이터 부동 대기 상태 번호 5를 관련시키도록 프로그램된다고 가정하자. 도 6의타이밍도는 MEM1에의 기록 동작, MEM0으로부터의 판독 동작, MEM1로부터의 판독 동작, MEM0으로부터의 4개의 판독 동작 순서로 이어지는 동작에 대한 타이밍을 나타낸다. MEM0에 대한 판독 동작은 16 비트의 데이터를 필요로 하며, 따라서 각 I/O 동작은 단일 액세스를 요구한다. MEM1에 대한 기록 및 판독 동작은 32 비트의 워드를 필요로 하며, 따라서 각 I/O 동작은 4개의 8 비트 메모리 액세스로 구성된다.
시간 주기 t1 동안, MEM1이 선택되고, 칩 선택 신호 S102가 어서트됨으로써 지시된다. 4개의 기록 액세스는 위치 0x01100040에서 이루어진다. 선택된 데이터 부동값 S160은 5임을 알 수 있다. 또한, 시간 주기 t1' 동안의 대기 상태는 전형적인 대기 상태 발생에 기인한다는 것을 주의해야 한다.
이벤트 A6에서 기록 사이클이 완료되자마자, MEM0는 어드레스 0x01000270에서 선택됨과 동시에, 이에 대응하여 데이터 부동값 S160이 1로 변경된다. 판독 동작은 이벤트 B6에서 시작되어 이벤트 C6에서 완료되며, 이 때 MEM1은 어드레스 0x01100040에 대하여 재선택된다. 카운터가 카운트를 시작하면, 플립플롭(208)은 LO로 되어, 대기 상태를 발생시킨다. 데이터 부동값이 1이기 때문에, 카운터가 1을 카운트하면 플립플롭(208)은 이벤트 D6에서 HI로 된다. 이러한 이벤트 C6과 D6사이의 대기 상태는 MEM0 출력 드라이버로 하여금 시스템 버스(120)를 해제시키게 하여, 이벤트 D6에서 MEM1의 후속 판독 동작이 버스 충돌 위험없이 진행될 수 있도록 해준다. 따라서, 시간 주기 t2 동안의 대기 상태는 MEM0 판독으로부터의 데이터 부동값과, MEM1의 판독 동안의 전형적인 대기 상태 발생에 기인한다.
MEM1이 이벤트 H6에서 선택되는 경우, 데이터 부동 비트 S160은 데이터 부동값 5로 다시 설정된다는 것을 알 수 있다. 이벤트 E6에서 판독 동작이 완료되자마자, 카운터는 카운트를 시작하고, 이번에는 5까지 카운트한다. ACK 신호 S152는 대응하는 시간 주기 동안 LO로 되며, 이는 MEM1이 시스템 버스를 해제시키고 있음을 나타낸다. 5까지 카운트하자마자, ACK 신호 S152는 HI로 되며, 계속된 판독 동작이 위치 0x0100274(이벤트 F6)에서 MEM0에 대해 이루어진다. 또한, 시간 주기 t3 동안의 대기 상태는 데이터 부동 대기 상태와 전형적인 대기 상태로 구성된다. 이벤트 G6동안의 후속 판독 동작은 동일한 메모리 MEM0에 대해 이루어지고, 따라서 각각의 판독 동작 후에 데이터 부동 대기 상태를 요구하지 않는다. 그러나, 전형적인 대기 상태는 여전히 발생된다.
도 6의 전술된 바로부터, 데이터 부동값 S160은 액세스되는 메모리에 따라 변경된다는 것을 알 수 있다. 데이터 부동값은 메모리 장치 마다 사용자에 의해 선택될 수 있다. 이것은 단일하게, 즉 가장 느린 메모리에 대해서 가장 긴 지연을 지정해야 하는 것이 아니라, 속도가 느린 메모리에 대해서는 긴 지연 시간을, 속도가 빠른 메모리에 대해서는 짧은 지연 시간을 적용 가능케 한다. 이러한 방법은 상이 한 메모리 장치 사이의 버스 충돌을 방지함과 동시에, 상이한 메모리를 수반하는 연속하는 I/O 동작 사이의 지연을 최소화시킨다.
본 발명의 데이터 부동 대기 상태 방법은 각종 내부 메모리를 구비한 구조에 적용될 수 있으며, 여기서 각각의 내부 메모리는 내부 버스(116)에 액세스하기 위한 잠재적인 경쟁과, 판독 사이클 완료 시 데이터 버스를 해제시키기 위한 상이한 타이밍 요구 조건을 갖는다. 예컨대, 도 7은 2개의 내부 메모리(114A, 114B)를 구비하는 마이크로프로세싱 장치(110')를 포함하는 도 1의 변형예를 보여준다. 알 수 있는 바와 같이, 외부 버스(120)에 대해 존재하는 것과 동일한 버스 충돌 가능성이 도 7의 구조의 내부 버스(116)에 대해서도 존재한다. 당업자는 도 3 내지 6에 대한 전술된 원리를 도 7에 도시된 바와 같은 다중 내부 메모리 구조에 용이하게 적용할 수 있다.

Claims (16)

  1. 공통 데이터 버스에 연결된 제1 및 제2 메모리를 구비한 컴퓨터 장치에서, 상기 제1 및 제2 메모리에 액세스하는 방법은,
    제1 대기 상태값을 상기 제1 메모리에 관련시키는 단계와,
    제2 대기 상태값을 상기 제2 메모리에 관련시키는 단계와,
    상기 제1 및 제2 메모리 중 선택된 메모리로부터 데이터를 판독하는 단계와,
    판독 단계 완료시 상기 컴퓨터 장치를 상기 선택된 메모리와 관련된 대기 상태값에 비례하는 시간 주기 동안의 대기 상태에 두는 단계와,
    상기 시간 주기 초과시 상기 제1 및 제2 메모리와 다른 메모리에 대한 다음 I/O 동작을 수행하는 단계
    를 포함하는 메모리 액세스 방법.
  2. 제1항에 있어서, 상기 제1 및 제2 메모리 중 선택된 메모리를 판독하는 단계는 상기 제1 및 제2 메모리 중 상기 선택된 메모리에 기록하는 단계가 먼저 수행된 직후에, 추가적인 대기 상태없이 판독 단계가 수행되는 것인 메모리 액세스 방법.
  3. 제1항에 있어서, 상기 제1 및 제2 메모리 중 선택된 메모리로부터 데이터를 판독하는 단계는 상기 선택된 메모리로부터 복수의 데이터를 연속적으로 판독하는 단계를 포함하며, 상기 연속적인 데이터 판독 사이에는 추가적인 대기 상태가 없는것인 메모리 액세스 방법.
  4. 제1항에 있어서, 상기 컴퓨터 장치를 대기 상태에 두는 단계는 상기 선택된 메모리와 관련된 대기 상태값을 선택하여 그 대기 상태값과 같은 번호까지 카운트하는 단계를 포함하는 것인 메모리 액세스 방법.
  5. 제1항에 있어서, 상기 제1 및 제2 메모리는 외부 메모리인 것인 메모리 액세스 방법.
  6. 제1항에 있어서, 상기 제1 및 제2 메모리는 내부 메모리인 것인 메모리 액세스 방법.
  7. 제1항에 있어서, 상기 제1 및 제2 대기 상태값은 상기 제1 및 제2 메모리의 각 출력 회로의 특성에 기초하는 것인 메모리 액세스 방법.
  8. 제7항에 있어서, 상기 제1 및 제2 대기 상태값은 추가로 상기 컴퓨터 장치에서 사용된 클록 주파수에 기초하는 것인 메모리 액세스 방법.
  9. 제7항에 있어서, 상기 특성은 상기 출력 회로가 판독 동작 후 고임피던스 상태를 달성하는 데 요구되는 시간인 것인 메모리 액세스 방법.
  10. 제1항에 있어서, 상기 제1 및 제2 메모리는 외부 메모리이고 상기 컴퓨터 장치는 제3 내부 메모리를 더 구비하며,
    상기 메모리 액세스 방법은
    상기 제1 및 제2 메모리 중 상기 선택된 메모리를 판독하는 단계를 완료한 직후에, 추가적인 대기 상태없이 상기 제3 메모리에 대한 다음 내부 I/O 동작을 속행하는 단계를 포함하는 상기 제3 메모리에 액세스하는 단계를 포함하는 것인 메모리 액세스 방법.
  11. 제10항에 있어서, 상기 내부 I/O 동작 다음에 외부 판독 동작이 상기 제1 및 제2 메모리 중 상기 선택된 메모리에 대해 수행되는 경우에는, 상기 내부 I/O 동작 직후에, 추가적인 대기 상태없이 상기 제1 및 제2 메모리 중 상기 선택된 메모리에 대한 상기 외부 판독 동작을 속행하는 것인 메모리 액세스 방법.
  12. 제10항에 있어서, 상기 내부 I/O 동작 다음에 외부 판독 동작이 상기 제1 및 제2 메모리 중 상기 선택된 메모리와 다른 메모리에 대해 수행되는 경우에는, 상기 내부 I/O 동작 완료시, 상기 컴퓨터 장치를 상기 선택된 메모리와 관련된 대기 상태값에 비례하는 시간 주기 동안의 대기 상태에 두는 것인 메모리 액세스 방법.
  13. 시스템 버스(120)와;
    상기 시스템 버스에 연결되고, 적어도 제1 내부 메모리(114a) 및 제1 출력의 제1 신호(S108) - 상기 제1 신호는 외부 메모리에 대한 판독 동작 동안에는 제1 논리 상태를 갖고 그렇지 않은 경우에는 제2 논리 상태를 갖음 - 를 갖는 논리 회로(110, 152)와;
    상기 시스템 버스에 연결되는 적어도 하나의 제1 외부 메모리(130)와;
    상기 논리 회로(110, 152)에 연결되는 제2 출력의 제2 신호(S150)를 갖는 대기 상태 회로(160)와;
    카운트 회로(202, 204, 206), 비교 회로(220), 및 상기 대기 상태 회로(160)에 연결되는 제 3 출력의 제3 신호(S152)를 갖는 외부 버스 제어 회로(170)와;
    복수의 대기 상태값 - 상기 복수의 대기 상태값 중 하나는 상기 제1 외부 메모리(130)에 대응함 - 을 저장하는 데이터 수단(140, 142)
    을 포함하며,
    상기 논리 회로(110, 152)는 어서트되는 상기 제2 신호(S150)에 응답하여 대기 상태에 진입하고,
    상기 대기 상태 회로(160)는 어서트 및 디어서트되는 상기 제3 신호(S152)에 응답하여 상기 제2 신호(S150)를 어서트 및 디어서트하고,
    상기 외부 버스 제어 회로(170)는 상기 제1 신호(S108)의 상태의 기능에 따라 상기 제3 신호(S152)를 어서트하고,
    상기 카운트 회로(202, 204, 206)는 상기 제1 논리 상태에서 상기 제2 논리 상태로 변하는 상기 제1 신호에 응답하여 카운트 순서를 시작하고,
    상기 비교 회로(220)는 상기 복수의 대기 상태값 중 선택된 대기 상태값을 수신하기 위해 상기 데이터 수단(140, 142)에 연결되는 제1 입력과, 상기 카운트 회로로부터 카운트 출력을 수신하도록 연결되는 제2 입력을 가지며, 상기 제1 입력과 제2 입력이 같을 때 상기 제3 신호를 디어서트하는 것인 마이크로프로세싱 장치.
  14. 제13항에 있어서, 상기 논리 회로(110, 152)는 메모리 어드레스(S140)를 발생시키며, 상기 데이터 수단(140, 142)은 발생된 메모리 어드레스에 응답하여 상기 복수의 대기 상태값 중 하나를 산출하기 위한 선택 회로(140)를 포함하는 것인 마이크로프로세싱 장치.
  15. 제13항에 있어서, 상기 논리 회로(110, 152)는 상기 외부 버스 제어 회로(170)에 연결되고 동일한 메모리에 대한 연속 판독 동작을 나타내는 제4 출력의 제4 신호(S110)를 포함하며, 상기 외부 버스 제어 회로는 상기 제4 신호의 상태의 기능에 따라 상기 제3 신호를 더 어서트하는 것인 마이크로프로세싱 장치.
  16. 제13항에 있어서, 대기 상태 번호를 상기 데이터 수단(140, 142) 내에 선택적으로 로드하기 위한 프로그래밍 수단(180)을 더 포함하는 마이크로프로세싱 장치.
KR1020017011334A 1999-03-10 1999-12-09 프로그램 가능한 대기 상태를 갖는 마이크로프로세싱 장치 KR100660448B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/266,045 US6356987B1 (en) 1999-03-10 1999-03-10 Microprocessing device having programmable wait states
US09/266,045 1999-03-10

Publications (2)

Publication Number Publication Date
KR20010104721A true KR20010104721A (ko) 2001-11-26
KR100660448B1 KR100660448B1 (ko) 2006-12-22

Family

ID=23012935

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017011334A KR100660448B1 (ko) 1999-03-10 1999-12-09 프로그램 가능한 대기 상태를 갖는 마이크로프로세싱 장치

Country Status (12)

Country Link
US (1) US6356987B1 (ko)
EP (1) EP1163598B1 (ko)
JP (1) JP2002539527A (ko)
KR (1) KR100660448B1 (ko)
CN (1) CN1120430C (ko)
CA (1) CA2363085A1 (ko)
DE (1) DE69906156T2 (ko)
HK (1) HK1041073B (ko)
MY (1) MY133914A (ko)
NO (1) NO321931B1 (ko)
TW (1) TW518501B (ko)
WO (1) WO2000054165A1 (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6407949B1 (en) * 1999-12-17 2002-06-18 Qualcomm, Incorporated Mobile communication device having integrated embedded flash and SRAM memory
JP2002091905A (ja) * 2000-09-20 2002-03-29 Mitsubishi Electric Corp 半導体装置およびアクセスウェイト数変更プログラムを記録したコンピュータ読み取り可能な記録媒体
US6662285B1 (en) * 2001-01-09 2003-12-09 Xilinx, Inc. User configurable memory system having local and global memory blocks
ITTO20010333A1 (it) * 2001-04-06 2002-10-06 St Microelectronics Srl Dispositivo e metodo di gestione dei cicli di attesa durante la lettura di una memoria non volatile.
US6605962B2 (en) 2001-05-06 2003-08-12 Altera Corporation PLD architecture for flexible placement of IP function blocks
US7076595B1 (en) * 2001-05-18 2006-07-11 Xilinx, Inc. Programmable logic device including programmable interface core and central processing unit
US7420392B2 (en) * 2001-09-28 2008-09-02 Xilinx, Inc. Programmable gate array and embedded circuitry initialization and processing
US6781407B2 (en) 2002-01-09 2004-08-24 Xilinx, Inc. FPGA and embedded circuitry initialization and processing
US6798239B2 (en) * 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
US6996758B1 (en) 2001-11-16 2006-02-07 Xilinx, Inc. Apparatus for testing an interconnecting logic fabric
US6983405B1 (en) 2001-11-16 2006-01-03 Xilinx, Inc., Method and apparatus for testing circuitry embedded within a field programmable gate array
US6886092B1 (en) 2001-11-19 2005-04-26 Xilinx, Inc. Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion
JP3510618B2 (ja) * 2002-02-05 2004-03-29 沖電気工業株式会社 バスブリッジ回路及びそのアクセス制御方法
US6820248B1 (en) 2002-02-14 2004-11-16 Xilinx, Inc. Method and apparatus for routing interconnects to devices with dissimilar pitches
US6976160B1 (en) 2002-02-22 2005-12-13 Xilinx, Inc. Method and system for controlling default values of flip-flops in PGA/ASIC-based designs
US6754882B1 (en) 2002-02-22 2004-06-22 Xilinx, Inc. Method and system for creating a customized support package for an FPGA-based system-on-chip (SoC)
US6934922B1 (en) 2002-02-27 2005-08-23 Xilinx, Inc. Timing performance analysis
US7007121B1 (en) 2002-02-27 2006-02-28 Xilinx, Inc. Method and apparatus for synchronized buses
US6839874B1 (en) 2002-02-28 2005-01-04 Xilinx, Inc. Method and apparatus for testing an embedded device
US7111217B1 (en) 2002-02-28 2006-09-19 Xilinx, Inc. Method and system for flexibly nesting JTAG TAP controllers for FPGA-based system-on-chip (SoC)
US7088767B1 (en) 2002-03-01 2006-08-08 Xilinx, Inc. Method and apparatus for operating a transceiver in different data rates
US7187709B1 (en) 2002-03-01 2007-03-06 Xilinx, Inc. High speed configurable transceiver architecture
US7111220B1 (en) 2002-03-01 2006-09-19 Xilinx, Inc. Network physical layer with embedded multi-standard CRC generator
US6961919B1 (en) 2002-03-04 2005-11-01 Xilinx, Inc. Method of designing integrated circuit having both configurable and fixed logic circuitry
US6973405B1 (en) 2002-05-22 2005-12-06 Xilinx, Inc. Programmable interactive verification agent
US6772405B1 (en) 2002-06-13 2004-08-03 Xilinx, Inc. Insertable block tile for interconnecting to a device embedded in an integrated circuit
US7085973B1 (en) 2002-07-09 2006-08-01 Xilinx, Inc. Testing address lines of a memory controller
US7099426B1 (en) 2002-09-03 2006-08-29 Xilinx, Inc. Flexible channel bonding and clock correction operations on a multi-block data path
US7092865B1 (en) 2002-09-10 2006-08-15 Xilinx, Inc. Method and apparatus for timing modeling
US7421014B2 (en) * 2003-09-11 2008-09-02 Xilinx, Inc. Channel bonding of a plurality of multi-gigabit transceivers
EP1866777A4 (en) * 2005-03-30 2008-03-26 Atmel Corp METHOD AND APPARATUS FOR REDUCING INACTIVITY OF A SYSTEM DURING FLOTTING DATA DELAY AND EXTERNAL MEMORY WRITING
US7269704B2 (en) * 2005-03-30 2007-09-11 Atmel Corporation Method and apparatus for reducing system inactivity during time data float delay and external memory write
US7405949B2 (en) * 2005-12-09 2008-07-29 Samsung Electronics Co., Ltd. Memory system having point-to-point (PTP) and point-to-two-point (PTTP) links between devices
KR101131919B1 (ko) * 2005-12-09 2012-04-03 삼성전자주식회사 메모리 시스템 및 이 시스템의 신호 송수신 방법
US9405720B2 (en) * 2013-03-15 2016-08-02 Atmel Corporation Managing wait states for memory access
JP6326671B2 (ja) * 2013-10-03 2018-05-23 株式会社エルイーテック プロセッサへのwait挿入
JP2021047967A (ja) * 2019-09-20 2021-03-25 キオクシア株式会社 半導体デバイス
FR3111439B1 (fr) 2020-06-12 2023-06-30 St Microelectronics Rousset Procédé de gestion des requêtes d’accès à une mémoire vive et système correspondant

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02235156A (ja) 1989-03-08 1990-09-18 Canon Inc 情報処理装置
JPH03210649A (ja) 1990-01-12 1991-09-13 Fujitsu Ltd マイクロコンピュータおよびそのバスサイクル制御方法
US5313621A (en) 1990-05-18 1994-05-17 Zilog, Inc. Programmable wait states generator for a microprocessor and computer system utilizing it
DE69432455T2 (de) * 1993-12-16 2003-11-20 Fujitsu Ltd., Kawasaki Ausgangpuffer mit variabler Latenz und Synchronisiereinrichtung für synchronen Speicher
US5732250A (en) 1994-09-15 1998-03-24 Intel Corporation Multi-function microprocessor wait state mechanism using external control line
JPH08147161A (ja) 1994-11-21 1996-06-07 Nec Corp データ処理装置
US6023776A (en) * 1996-03-22 2000-02-08 Matsushita Electric Industrial Co., Ltd. Central processing unit having a register which store values to vary wait cycles
US5854944A (en) * 1996-05-09 1998-12-29 Motorola, Inc. Method and apparatus for determining wait states on a per cycle basis in a data processing system

Also Published As

Publication number Publication date
DE69906156D1 (de) 2003-04-24
NO321931B1 (no) 2006-07-24
WO2000054165A1 (en) 2000-09-14
HK1041073B (zh) 2004-05-14
KR100660448B1 (ko) 2006-12-22
CA2363085A1 (en) 2000-09-14
NO20014246L (no) 2001-08-31
JP2002539527A (ja) 2002-11-19
HK1041073A1 (en) 2002-06-28
EP1163598A1 (en) 2001-12-19
DE69906156T2 (de) 2003-11-27
CN1338076A (zh) 2002-02-27
US6356987B1 (en) 2002-03-12
CN1120430C (zh) 2003-09-03
EP1163598B1 (en) 2003-03-19
TW518501B (en) 2003-01-21
MY133914A (en) 2007-11-30
NO20014246D0 (no) 2001-08-31

Similar Documents

Publication Publication Date Title
KR100660448B1 (ko) 프로그램 가능한 대기 상태를 갖는 마이크로프로세싱 장치
US5522064A (en) Data processing apparatus for dynamically setting timings in a dynamic memory system
US6175893B1 (en) High bandwidth code/data access using slow memory
US4692859A (en) Multiple byte serial data transfer protocol
US4712190A (en) Self-timed random access memory chip
EP0806729B1 (en) Method and apparatus for determining wait states on a per cycle basis in a data processing system
JPH02113492A (ja) 条件書き込み手段を有するランダム・アクセス・メモリ回路
US6519689B2 (en) Method and system for processing pipelined memory commands
TWI533135B (zh) 記憶體存取方法、記憶體存取控制方法、記憶體裝置與記憶體控制器
JP2762138B2 (ja) メモリコントロールユニット
US5485428A (en) Memory device with page select capability
EP0398189B1 (en) Noncacheable address random access memory
EP1058269B1 (en) Synchronous multilevel non-volatile memory and related reading method
US4908796A (en) Registered outputs for a memory device
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
US5003286A (en) Binary magnitude comparator with asynchronous compare operation and method therefor
CN1613115B (zh) 通过不将地址和控制信号返回空闲来减少交流电功率的存储器控制器
EP0660330A2 (en) Data processing system having a memory with a low power operating mode and method therefor
US6961280B1 (en) Techniques for implementing address recycling in memory circuits
EP0687984A1 (en) Data processing system having an address/data bus directly coupled to peripheral device
JP2697564B2 (ja) 2段パイプライン方式のキャッシュメモリ
JP3245903B2 (ja) 半導体周辺デバイス
JP3822687B2 (ja) データ処理システム
JPH07230413A (ja) レディ信号制御回路
JPH0822449A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20111128

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee