KR20010024259A - 핀-총수가 적은 버스 상에서의 메모리 트랜잭션 - Google Patents

핀-총수가 적은 버스 상에서의 메모리 트랜잭션 Download PDF

Info

Publication number
KR20010024259A
KR20010024259A KR1020007003137A KR20007003137A KR20010024259A KR 20010024259 A KR20010024259 A KR 20010024259A KR 1020007003137 A KR1020007003137 A KR 1020007003137A KR 20007003137 A KR20007003137 A KR 20007003137A KR 20010024259 A KR20010024259 A KR 20010024259A
Authority
KR
South Korea
Prior art keywords
bus
memory device
host
memory
control information
Prior art date
Application number
KR1020007003137A
Other languages
English (en)
Other versions
KR100388735B1 (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 KR20010024259A publication Critical patent/KR20010024259A/ko
Application granted granted Critical
Publication of KR100388735B1 publication Critical patent/KR100388735B1/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
    • 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)

Abstract

본 발명은 호스트(102)에 연결된 버스(124)와 메모리 장치(108)를 포함하는 시스템에 관한 것으로서, 상기 버스(124)는 시다중화된 어드레스, 데이터 및 제어 정보를 전달하기 위한 다수의 범용 신호 라인을 포함할 수 있다. 상기 메모리 장치(108)는 시스템 스타트-업 정보를 저장하고, 이 정보를 상기 버스(124)를 통해 상기 호스트와 통신할 수 있다.

Description

핀-총수가 적은 버스 상에서의 메모리 트랜잭션{MEMORY TRANSACTIONS ON A LOW PIN COUNT BUS}
종래의 레가시-기반(legacy-based) 컴퓨터 시스템은 ISA(Industry Standard Architecture) 버스 또는 확장 버스(X-bus)를 통해 시스템의 칩-셋트 또는 프로세서와 통신하는 다양한 주변장치 및 메모리 장치를 포함한다. 시스템 칩-셋트 또는 프로세서는 그 칩-셋트 또는 프로세서를 레가시-기반 주변장치들과 인터페이스하기 위해 사용되는 ISA 버스 또는 X-버스 신호들을 지원하기 위해 매우 많은 양의 핀(예를 들어, 약 50-70개의 핀) 및 관련 회로를 포함해야 하며, 이러한 주변장치로는, 병렬 포트 제어기, 직렬 포트 제어기, 수퍼 I/O 제어기, 플로피디스크 제어기, 키보드 제어기와 같은 입출력(I/O) 제어기 장치와 예를 들어, 기본 입출력 서비스(BIOS) 정보를 저장하는 비-휘발성 메모리 장치와 같은 메모리 장치가 있다.
ISA 버스 및 X-버스 표준을 지원하는데 요구되는 매우 많은 핀들에 의해, 일반적으로 전제 시스템 비용이 증가된다. 예를 들어, 칩-셋트 또는 프로세서를 위해 더욱 큰 패키지가 요구된다. 일반적으로, 핀-총수가 많은 패키지는 핀-총수가 적은 패키지 보다 비용이 많이 들고, 패키지 조립 및 시스템 집적 공정 동안에 제조 품질 및 신뢰성 문제에 더욱 민감하다. 또한, 핀-총수가 많은 패키지는 컴퓨터 시스템이 구현될 수 있는 인쇄 회로 기판(PCB) 상의 더 큰 표면 영역을 필요로 한다. 그러므로, 컴퓨터 시스템내의 ISA 버스 또는 X-버스를 상대적으로 적은 수의 핀 또는 신호 라인을 이용하면서 동일한 주변장치 형태들을 지원하게 되는 버스로 대체하는 것이 바람직할 수 있다.
ISA 버스 및 X-버스 표준은 또한, 메모리 또는 I/O 어드레스 공간의 양을 24 비트 또는 약 16 MBytes로 제한한다. 몇몇 프로세서 및 칩-셋트는 어드레스 공간의 32 비트 또는 64 비트를 지원할 수 있기 때문에, 프로세서 어드레스 공간을 ISA 어드레스 공간으로 변환하기 위해 에일리어싱(aliasing)이 요구되었다. 이러한 에일리어싱은 컴퓨터 시스템의 성능이 부정적으로 영향을 받을 수 있는 상당한 오버헤드를 발생시킬 수 있다. 그러므로, ISA 버스 및 X-버스 표준을 프로세서 또는 칩-셋트 어드레스 공간과 호환성 있고 잠재적으로는 제한이 없는 어드레스 공간을 지원할 수 있는 버스로 대체하는 것이 바람직하다.
ISA 버스 및 X-버스 표준은 비동기라는 단점을 갖고 있다. 이것은 일반적으로 ISA 버스 및 X-버스 신호를 생성하고 그 신호에 응답하는데 요구되는 구성요소들에 대한 설계의 복잡성을 증가시킨다. 그러므로, 버스 인터페이스 회로의 복잡성을 감소시키기 위해 ISA 버스 및 X-버스 표준을 구성요소들 사이의 동기 통신을 지원할 수 있는 버스로 대체하는 것이 바람직하다.
본 발명은 컴퓨터 시스템에 관한 것이다. 특히, 본 발명은 컴퓨터 시스템내의 핀-총수가 적은 버스(low pin count bus) 상에서 상이한 형태의 장치들 사이에서의 통신에 관한 것이다.
이제, 첨부도면과 실시예를 이용하여 본 발명의 특징 및 장점에 관해 설명한다. 도면에서 유사한 참조번호는 유사한 구성요소를 나타낸다.
도1은 핀-총수가 적은(LPC:low pin count) 버스를 구비한 컴퓨터 시스템의 일실시예를 도시한 도면.
도2는 LPC 인터페이스의 일실시예를 도시한 도면.
도3은 메모리 및 I/O 트랜잭션을 구현하기 위한 상태 머신 도표의 일실시예를 도시한 도면.
도4는 LPC 메모리 판독 트랜잭션의 일실시예를 도시한 도면.
도5는 LPC 메모리 기록 트랜잭션의 일실시예를 도시한 도면.
도6은 메모리 및 I/O 트랜잭션을 구현하기 위한 상태 머신 도표의 일실시예를 도시한 도면.
도7은 LPC 메모리 판독 트랜잭션의 다른 실시예를 도시한 도면.
도8은 LPC 메모리 기록 트랜잭션의 다른 실시예를 도시한 도면.
도9는 메모리 장치 선택 방식의 일실시예를 도시한 도면.
도10은 메모리 장치를 위한 LPC 인터페이스의 일실시예를 도시한 도면.
도11은 저전력 동작 모드의 타이밍도의 일실시예를 도시한 도면.
발명의 요약
여기서는 호스트 및 메모리 장치에 연결된 버스를 구비한 시스템에 관해 설명한다. 이 버스는 시다중화된(time-multiplexed) 어드레스, 데이터 및 제어 정보를 전달하기 위해 다수의 범용 신호 라인을 포함할 수 있다. 메모리 장치는 시스템 스타트-업 정보를 저장하고 그 정보를 버스를 통해 호스트와 통신할 수 있다.
본 발명의 다른 특징 및 장점은 첨부도면 및 다음의 상세한 설명으로부터 명백해질 것이다.
이제, LPC 버스를 구비한 컴퓨터 시스템에 관해 설명한다. LPC 버스는 프로세서 또는 칩-셋트와 같은 호스트와 I/O 장치 또는 I/O 제어기 장치 및 메모리 장치와 같은 주변장치 사이의 통신 메카니즘을 제공하면서, 컴퓨터 시스템내의 ISA 버스 또는 X-버스를 대체할 수 있다. 일실시예에 있어서, LPC 버스는 호스트와 주변장치들 사이에서 메모리, I/O, 직접 메모리 억세스(DMA) 및 버스 마스터 트랜잭션을 구현하기 위해 거의 모든 시다중화 어드레스, 데이터 및 제어 정보를 전달하는 범용 신호 라인들을 포함할 수 있다.
LPC 버스의 의도된 장점은 그것이 ISA 버스 및 X-버스 표준의 약 50-70개의 신호 라인에 의해 이전에 수행되었던 모든 기능들을 수행하는데 있어 상당히 적은 수의 신호 라인(예, 약 6-8개의 신호 라인)을 필요로 할 수 있다는 것이다. LPC 버스에 있어서 신호 라인들의 수가 ISA 버스 및 X-버스 표준 보다 크게 감소될 수 있기 때문에, LPC 버스를 지원하기 위해 컴퓨터 시스템의 칩-셋트 또는 프로세서 상에 필요한 핀들의 수도 상당히 감소될 수 있다. 마찬가지로, 각각의 주변장치내에 포함된 LPC 인터페이스도 역시 LPC 버스를 통해 칩-셋트 또는 프로세서와 인터페이스하기 위해 그와 동일하게 적은 수의 핀들을 이용할 수 있다. 이로 인해, 부품 제조자에 있어서는 패키징 비용이 낮아지고, 컴퓨터 시스템 제조자에 있어서는 시스템 비용이 낮아질 수 있다. 또한, 보다 높은 품질 및 보다 신뢰성 있는 패키징 및 시스템 집적화를 초래할 수 있다. LPC 버스는 또한, 버스에 연결된 패키지 상의 핀-총수를 감소시키기 위해 다른 시스템 버스를 대체하기 위해 이용될 수 있다.
LPC 버스의 다른 의도된 장점은 메모리 및/또는 I/O 어드레스 공간이 통신 버스의 어드레스 라인들의 특정 수에 제한되지 않으며, 오히려 LPC 버스는 어드레스 공간을 어드레싱하는데 요구되는 만큼의 어드레스 신호들을 직렬로 전달할 수 있다. 그러므로, 메모리 또는 I/O 어드레스 공간의 종래의 에일리어싱을 피할 수 있다.
LPC 버스의 다른 의도된 장점은 칩-셋트 또는 프로세서를 주변장치와 인터페이스하기 위해 사용될 수 있는 LPC 인터페이스 로직 및/또는 소프트웨어가 ISA 버스 또는 X-버스 표준을 사용하는 기존의 컴퓨터 시스템과 호환성 있는 소프트웨어가 될 수 있다는 것이다. 즉, ISA 버스 또는 X-버스 시스템에 대비하여 LPC 버스 시스템 상에서 실행할 운영체제 소프트웨어 또는 애플리케이션 프로그램에 의해 특수한 드라이버 또는 구성이 요구되지 않는다.
LPC 버스의 또다른 의도된 장점은 그것이 호스트 및 주변장치의 LPC 인터페이스 회로가 일반적으로 비동기 버스 인터페이스 설계 보다 덜 복잡한 회로를 필요로할 수 있도록 하는 동기 버스가 될 수 있다는 것이다.
LPC 버스 및 관련 지원 회로는 프린터, 디지털 카메라 및 통신 시스템(예, 모뎀, 셀룰러폰 시스템, 페이저 및 디지털 응답 시스템)을 포함하여 다른 시스템에 포함될 수도 있다.
도1은 LPC 버스(124)를 통해 I/O 장치(104) 또는 I/O 제어기 장치(106) 및 메모리 장치(108)를 포함하여 주변장치에 연결된 호스트(102)를 포함하는 컴퓨터 시스템(100)의 일실시예를 도시하고 있다. 호스트(102)는 LPC 버스(124)와의 인터페이스를 위한 지능을 포함하는 칩-셋트, 프로세서 또는 다른 제어 로직이 될 수 있다. 또한, 호스트(102)는 선택사양인 ISA 버스(126) 및 선택사양인 PCI 또는 호스트 버스(128)와 인터페이스하기 위해 필요한 로직을 포함할 수 있다. 호스트(102)는 로컬 버스 또는 다른 메모리 버스가 될 수 있는 버스(130)를 통해 어드레스, 데이터 및 제어 정보를 메모리(110)와 통신한다. 메모리(110)는 예를 들어, 운영체제 소프트웨어, 애플리케이션 코드 또는 프로그램 데이터를 저장할 수 있는 DRAM, SRAM 또는 다른 형태의 휘발성 또는 비휘발성 메모리와 같은 시스템(100)을 위한 주메모리가 될 수 있다.
I/O 장치(104,106)는 I/O 어드레스 공간에 어드레싱가능하고 플로피 디스크 드라이브, 키보드 등과 같은 주변 부품에 대한 억세스를 제어하는 I/O 제어기 장치가 될 수 있다. I/O 장치(104,106)는 각각 예를 들어, 플로피 디스크 제어기, 직렬 포트 제어기, 병렬 포트 제어기, 적외선(IR) 제어기, 키보드 제어기, 오디오 제어기 장치 또는 비디오 제어기 장치가 될 수 있다. I/O 장치(104)는 예를 들어, 플로피 디스크 제어기, 직렬 포트 제어기, 병렬 포트 제어기, 적외선(IR) 제어기, 키보드 제어기, 오디오 제어기 장치 또는 비디오 제어기 장치가 될 수 있는 I/O 제어기(120,122)를 포함하는 수퍼 I/O 장치가 될 수 있다.
메모리 장치(108)는 메모리 공간에 어드레싱가능한 주변장치이다. 예를 들어, 메모리 장치(108)는 DRAM, SRAM, 플래시 메모리, EPROM, EEPROM, 자기 저장 매체 또는 광학 저장 매체와 같은 어떠한 형태의 휘발성 또는 비휘발성 메모리도 포함할 수 있다. 이 메모리 장치(108)는 시스템 스타트-업 코드, 관리 코드(manageability code), 운영체제 데이터, 애플리케이션 코드, 프로그램 데이터 등을 저장할 수 있으며, 또는 호스트(102)나 I/O 장치(104,106)를 위한 스크래치 패드(scratch pad)로서 작용할 수 있다. 시스템 스타트-업 코드는 시스템(100) 내의 부품들을 구성 또는 부팅하기 위해 필요한 소프트웨어를 포함할 수 있으며, BIOS 정보를 포함할 수 있다.
호스트(102)와 주변장치(104,106,108)는 각각 LPC 신호를 생성하고 LPC 버스(124) 상의 LPC 신호에 응답하기 위한 LPC 인터페이스(118,112,114,116)를 각각 포함할 수 있다. 이들 LPC 인터페이스는 시스템(100)으로 하여금 LPC 버스(124)를 통해 메모리, I/O, DMA 및 버스 마스터 트랜잭션을 구현하도록 할 수 있다. 각각의 LPC 인터페이스는 신호 LAD[3:0], LCLK 및 LFRAME#을 수신/송신하기 위한 입력/출력을 갖고 있다. 신호명 다음에 오는 파운드 기호 "#"는 그 신호가 액티브 로우 신호(active low signal)라는 것을 나타낸다. 대안의 실시예에서, 액티브 로우 신호는 액티브 하이 신호로 변경될 수 있다.
LAD[3:0] 신호 라인은 LPC 버스(124)를 통해 그리고 호스트(102)와 주변장치(104,106,108) 사이에서 시다중화된 어드레스, 데이터 및 제어 정보를 전달하는 범용 신호 라인이다. LAD[3:0]가 소정의 시간에 어드레스, 데이터 또는 제어 정보를 전달하는지 여부는 상세하게 후술되는 바와 같이 시스템(100)의 동작 관계에 의해 결정될 수 있다. 비록 LAD[3:0]가 4-비트 버스로 예시되어 있지만, 이것은 시다중화된 어드레스, 데이터 및 제어 정보를 전달하기 위한 의도된 목적을 수행하기 위해 어떠한 수의 신호 라인도 포함할 수 있다. 각각의 LPC 인터페이스(112-118)에 요구되는 핀의 수를 감소시키고, 호스트(102)와 주변장치(104,106,108)의 패키징 크기 및 핀의 수를 감소시키기 위해 4-비트 니블-크기(nibble-sized)의 버스가 유익할 수 있다.
LCLK는 LPC 인터페이스(118) 또는 호스트(102) 내의 다른 회로(도시 안됨)에 의해 발생될 수 있는 클록 신호이다. 대안으로, LCLK는 수정(crystal)을 포함하는 시스템 클록(도시 안됨)이나 또는 다른 타이밍 회로에 의해 발생될 수도 있다. 일실시예에 있어서, LCLK는 PCI 버스(128)로부터의 PCI 클록이 될 수 있다.
LFRAME#은 LPC 트랜잭션 또는 사이클의 개시 및/또는 종료를 나타내기 위해 호스트(102)의 LPC 인터페이스(118)에 의해 발생된다. 각각의 LPC 인터페이스(112,114,116)는 LPC 트랜잭션이 언제 시작 또는 종료될 수 있는지 판단하기 위해 LFRAME#을 모니터하거나 샘플링할 수 있다. 예를 들어, 호스트(102)에 의해 LFRAME#이 표명되면(asserted)(예, 로우), 주변장치(104,106,108)의 LPC 인터페이스(112,114,116)는 각각 그 트랜잭션 또는 사이클이 그들을 위한 것인지 여부를 판단하기 위해 LAD[3:0]을 모니터한다. 유익하게도, 트랜잭션이 특정 주변장치를 위해 의도된 것이 아니면, 그 주변장치는 저전력 모드로 들어갈 수 있으며, 그 상태 머신을 버스로부터 분리시키거나 그 클록을 게이팅할 수 있다. 만일 LFRAME#이 하나 이상의 LCLK 사이클 동안 표명되면, LPC 인터페이스(112,114,116)는 단지 LFRAME#이 액티브 상태에 있는 마지막 LCLK 사이클 동안에 LAD[3:0] 상의 개시 제어 정보에 반응할 수 있다. 표1은 LFRAME#이 표명되고 있는 동안에 LAD[3:0] 상의 개시 제어 정보의 예시적인 정의를 요약한 것이다.
LFRAME#은 LPC 트랜잭션을 중단(abort) 또는 종료(end)시키기 위해 이용될 수 있다. 예를 들어, 주변장치(104,106,108)의 LPC 인터페이스(112,114,116)는 각각 LPC 트랜잭션 동안에 LFRAME#을 계속해서 모니터한다. 만일 LPC 트랜잭션 동안에 LFRAME#이 표명되면, 주변장치(104,106,108)는 LAD[3:0]의 구동을 정지(stop)시키고 그 LPC 트랜잭션을 중단시키게 된다. 일실시예에서, 호스트(102)는 중단 표시가 모든 주변장치에 의해 인식되도록 보장하기 위해 다수의 LCLK 사이클(예, 4개의 클록 사이클) 동안 LFRAME#을 표명한다. 이들 LCLK 사이클 중 하나 또는 그 이상의 사이클 동안에, 호스트(102)는 주변장치(104-108)가 LAD[3:0] 구동을 정지시킨 이후에 LAD[3:0] 상에 소정의 데이터를 구동시킬 수 있다. 일실시예에서, 호스트(102)는 중단 시퀀스를 나타내기 위해 LFRAME#이 표명되는 동안 LAD[3:0] 상에 1111을 구동시킨다. 중단 시퀀스의 종료점에서, LFRAME#은 새로운 LPC 트랜잭션이 시작되기 전에 표명해제(deasserted)될 수 있다.
대안의 실시예에서, LFRAME#은 메모리, I/O, 버스 마스터 또는 DMA 트랜잭션과 같은 트랜잭션의 개시 또는 중단을 전달하기 위해 (버스로부터) 독립된 제어 라인 상의 독립된 제어 신호로서 소정의 시스템 내의 2개의 장치(예, 호스트와 주변장치) 사이에서 사용될 수 있다.
LPC 버스(124)는 또한, LPC 인터페이스를 기지의 상태(예, 유휴 상태)로 리셋하는, 각각의 LPC 인터페이스(112,114,116,118)로의 리셋 신호 LFRAME# 입력을 포함할 수 있다. 일실시예에서, LFRAME#은 PCI 버스(128) 상의 PCI 리셋 신호와 동일한 리셋 신호가 될 수 있다.
또한, I/O 장치(104,106)는 독립된 제어 라인 상에서 호스트(102)의 LPC 인터페이스(118)로 제공되는 DMA 요구 신호 LDRQ0# 및 LDRQ1#를 각각 포함할 수 있다. LDRQ0# 및 LDRQ1#은 DMA 또는 버스 마스터 트랜잭션을 수행하기 전에 인코딩된 DMA 채널 요구를 호스트(102)로 전송하기 위해 이용될 수 있다. 각각의 I/O 장치는 주변장치 I/O 제어기(120,122)들이 LDRQ0# 상의 하나의 DMA 채널 요구를 공유하도록 하나의 유일한 LDRQ# 신호를 가질 수도 있다.
또한, LPC 버스(124)는 독립된 제어 라인 상에서 호스트(102)에 의해 각각의 주변장치(104-108)로 출력될 수 있는 저전력 또는 대기(standby) 신호 LPCPD#를 포함할 수 있다. 도11에 도시된 바와 같이, 호스트(102)는 주변장치(104-108)가 저전력 모드로 들어가도록 하기 위해 시간 t0에서 비동기로 LPCPD#를 표명(예, 로우)할 수 있다. 호스트(102)에 의해 표명된 LPCPD#를 인식하면, 주변장치(104-108)는 LPC 트랜잭션을 중지하고, LDRQO# 신호를 3상태로 구동시키거나 비활성 상태로 구동시킨다. 또한, 주변장치(104-108) 및/또는 호스트(102)는 LAD[3:0]를 기지의 상태로 구동시킬 수 있다. 호스트(102)는 LPCPD#를 표명한 이후에 LFRAME#을 기지의 상태(하이 또는 로우)로 구동시킬 수 있다. 저전력 모드에서, LCLK는 시간 t1에서 차단(shut off)될 수 있으며, 주변장치(104-108)는 그들의 상태 머신 및/또는 다른 로직을 차단시킬 수 있다. 일실시예에서, t0와 t1 사이의 시간차는 적어도 30 마이크로초이다. 저전력 모드에서 빠져나오면, LCLK는 시간 t2에서 비동기로 재개시될 수 있으며, LPCPD#가 시간 t3에서 표명해제(deasserted)되기 전의 시간 주기 동안 실행될 수 있다. 일실시예에서, t2와 t3 사이의 시간차는 적어도 100 마이크로초이다. 다음에, 시간 t3에서 t4까지 주변장치(104-108)를 리셋하기 위해 LRESET#이 사용될 수 있다. 일실시예에서, t3와 t4 사이의 시간차는 적어도 60 마이크로초이다.
또한, 호스트(102)와 주변장치(104-108)는 보다 상세하게 후술되는 바와 같이, 인터럽트 신호(예, SERIRO, SMI#), 추가적인 클록 신호(예, CLKRUN#), 및 전력 관리 신호를 포함하여, ISA 또는 PCI 버스에 이용되는 추가적인 사이드밴드(sideband) 입력 및/또는 출력 신호를 포함할 수 있다.
일실시예에서 약 6-9개의 신호 라인을 이용함으로써, LPC 버스(124)는 종래의 ISA 버스 또는 X-버스 시스템에 비해 상당한 신호 및 핀-총수 절약을 제공할 수 있다. 예를 들어, 플러그-n-플레이 장치(plug-n-play devices)에서 통상적으로 볼 수 있는 다음의 ISA 버스 또는 X-버스 신호들, 즉, D[7:0], SA[15:0], DREQ[3:0], DACK#[3:0], TC, IOR#, IOW#, IOCHRDY, IOCS16# 및 MEMCS16# 신호들은 더 이상 필요로 되지 않을 수 있다. 이로 인해, 버스, 호스트 및/또는 주변장치에서 약 30-40개의 신호들이 절약될 수 있다. 일실시예에서, ISA 또는 X-버스와 호환성 있는 상황에서 160 핀 패키지를 필요로 할 수 있는 전기능 수퍼 I/O 주변장치 제어기 장치가 도1에 도시된 LPC 인터페이스를 이용하는 경우에 88 핀(또는 그 이하) 패키지를 필요로 할 수 있다.
LPC 버스는 메모리 판독, 메모리 기록, I/O 판독, I/O 기록, DMA 판독, DMA 기록, 버스 마스터 메모리 판독, 버스 마스터 메모리 기록, 버스 마스터 I/O 판독 및 버스 마스터 I/O 기록을 포함하여, 메모리, I/O, DMA 및 버스 마스터 트랜잭션또는 사이클을 수행하기 위해 LPC 인터페이스(112-118)에 의해 이용될 수 있다. 트랜잭션의 형태는 호스트(102) 또는 주변장치(104,106,108)에 의해 LAD[3:0] 상에 구동되는 사이클 형태 및 방향 제어 정보 필드에 표시될 수 있다. 표2에는 LAD[3:1] 상에서 인코딩된 사이클 형태 및 제어 정보의 일례가 도시되어 있다. 동일하거나 또는 다른 신호라인에 대해 다른 인코딩이 사용될 수도 있다.
도2는 호스트(102)의 LPC 인터페이스(118)의 일실시예인 LPC 인터페이스(200)를 도시하고 있다. LPC 인터페이스(200)는 표2의 트랜잭션을 구현하기 위해 LPC 버스(124) 상의 어드레스, 데이터 및 제어 정보를 발생하고 해석한다. LPC 인터페이스(200)는 주변장치(104-108) 중 하나와 호스트(102) 사이에서 메모리 판독, 메모리 기록, I/O 판독, I/O 기록 LPC 트랜잭션들을 제어할 수 있는 메모리 및 I/O LPC 제어 로직(202)을 포함한다. 이 메모리 및 I/O LPC 제어 로직(202)은 특정 LPC 트랜잭션에 요구되는 상태들 사이에서 시퀀싱하고 LAD[3:0], LFRAME# 및/또는 LCLK 상에 어드레스, 데이터 또는 제어 정보를 발생하기 위한 상태 머신 또는 시퀀서(sequencer)를 포함할 수 있다. LAD[3:0], LFRAME# 및/또는 LCLK 상에 제공되는 정보는 로직(208)에 의해 LPC 버스(124)로 출력하기 위해 버스(214)로 제공될 수 있다.
일실시예에서, 메모리 및 I/O LPC 제어 로직(202)은 하나 또는 그 이상의 신호(216)를 통해 LPC 디코드 로직(210)과 통신하여 LPC 메모리 또는 I/O 트랜잭션이 수행될 필요가 있는지 판단한다. LPC 디코드 로직(210)은 호스트(102), ISA 버스(126), 또는 PCI 또는 호스트 버스(128)로부터 메모리 또는 I/O 판독 또는 기록 요구 및 관련 어드레스를 수신할 수 있다. LPC 디코드 로직은 메모리 또는 I/O LPC 트랜잭션을 시작하기 위해 어드레스를 디코드하고 메모리 및 I/O LPC 제어 로직(202)에 신호할 수 있다. 대안으로, LPC 디코드 로직(210)이 호스트(102) 내의 LPC 인터페이스(200) 외부에 위치될 수도 있다. 주변장치(104-108)에 대한 디코드된 어드레스 범위는 LPC 트랜잭션 소프트웨어를 운영체제 소프트웨어 및 애플리케이션 소프트웨어에 투명하게 만드는데 도움을 주기 위해 이전의 ISA 버스 및 X-버스 레가시 기반 주변장치와 호환가능하게 되도록 정의될 수 있다. 대안의 실시예에서, 메모리 및 I/O LPC 트랜잭션의 제어가 상이한 제어 회로 내로 분리될 수 있다.
또한, LPC 인터페이스(200)는 I/O 장치(104,106) 중 하나와 호스트(102) 사이에서 DMA 판독 및 기록 LPC 트랜잭션을 제어하는 DMA LPC 제어 로직(204)을 포함한다. DMA LPC 제어 로직(204)은 DMA LPC 트랜잭션에 요구되는 상태들 사이에서 시퀀싱하고 LAD[3:0], LFRAME# 및/또는 LCLK 상에 어드레스, 데이터 또는 제어 정보를 발생하고, DMA 요구 신호 LDRQ0# 및 LDRQ1#을 수신하기 위한 상태 머신 또는 시퀀서(sequencer)를 포함할 수 있다. LAD[3:0], LFRAME#, LDRQ0# 및 LDRQ1# 및/또는 LCLK 상에 제공되는 정보는 로직(208) 및 버스(214)를 통해 LPC 버스(124)로/로부터 제공될 수 있다.
DMA LPC 제어 로직(204)은 호스트(102)에 내재될 있는 DMA 제어기(212)를 통해 호스트(102) 및 메모리(110)와 인터페이스할 수 있다. 이 DMA LPC 제어 로직(204)은 하나 또는 그 이상의 신호(218)를 통해 DMA 제어기(212)와 통신할 수 있다. 일실시예에서, DMA 제어기(212)는 하나 또는 그 이상의 8237 또는 8237-호환가능 DMA 제어기를 포함할 수 있다. DMA 제어기(212)는 DMA 채널을 이용하는 I/O 장치가 호스트(102)를 통해 주메모리(110)와 통신할 수 있도록 DMA 채널을 대신하여 호스트(102)내의 중재(arbitration)를 수행할 수 있다.
LPC 인터페이스(200)는 호스트(102)와 주변장치(104-108) 사이의 버스 마스터 I/O 판독 및 기록 LPC 트랜잭션과 버스 마스터 판독 및 기록 LPC 트랜잭션을 제어하는 버스 마스터 LPC 제어 로직(206)을 포함할 수 있다. 버스 마스터 LPC 제어 로직(206)은 버스 마스터 LPC 트랜잭션에 요구되는 상태들 사이에서 시퀀싱하고 LAD[3:0], LFRAME# 및/또는 LCLK 상에 어드레스, 데이터 또는 제어 정보를 발생하고, DMA 요구 신호 LDRQ0# 및 LDRQ1#을 수신하기 위한 상태 머신 또는 시퀀서(sequencer)를 포함할 수 있다. LAD[3:0], LFRAME#, LDRQ0# 및 LDRQ1# 및/또는 LCLK 상에 제공되는 정보는 로직(208) 및 버스(214)를 통해 LPC 버스(124)로/로부터 제공될 수 있다.
로직(208)은 LPC 버스(124)를 LPC 버스(214)와 인터페이스하기 위한 하나 또는 그 이상의 버퍼 또는 트랜시버를 포함할 수 있다. 대안으로, LPC 인터페이스(200)가 버스(214)를 포함하지 않고, 오히려 로직(208)이 메모리 및 I/O LPC 제어 로직(202), DMA LPC 제어 로직(204) 및 버스 마스터 LPC 제어 로직(206)의 입력 및 출력 신호에 직접 개별적으로 접속될 수 있다. 이러한 대안의 실시예에서, 이 로직(208)은 호스트(102)의 제어 하에서 LPC 버스(124) 및 제어 로직(202,204,206)으로부터/으로 적절한 LPC 신호를 입출력하는 선택기 또는 멀티플렉서 회로가 될 수 있다.
도3은 호스트(102)와 주변장치(104-108) 사이에서 메모리 및/또는 I/O 기록 또는 판독 LPC 트랜잭션을 수행하기 위해 하나 또는 그 이상의 LPC 인터페이스에 의해 구현될 수 있는 상태도의 일실시예를 도시하고 있다. 예를 들어, 도3의 상태도는 도2의 메모리 및 I/O LPC 제어 로직(202)의 상태 머신 또는 시퀀서에 의해 이용될 수 있다. 이 상태 머신은 메모리 판독, 메모리 기록, I/O 판독 및 I/O 기록 LPC 트랜잭션을 구현한다. 다른 실시예에 있어서는, 독립된 상태 머신이 메모리 트랜잭션 및 I/O 트랜잭션을 구현할 수도 있다. 메모리 판독 및 기록 LPC 트랜잭션에 대해서는 도4 및 도5의 예시적인 타이밍도를 참조하여 설명될 것이다.
먼저, 도3 및 도4를 참조하여 메모리 장치(108) 내의 한 메모리 위치로부터 호스트(102)에 의한 예시적인 메모리 판독 LPC 트랜잭션에 대해 설명한다. 이 메모리 판독 LPC 트랜잭션은 예를 들어, 메모리 장치(108)로부터 시스템 스타트-업 정보를 판독하기 위해 호스트(102)에 의해 구현될 수 있다. 단계(302)에서, LPC 인터페이스(118)는 LFRAME#이 표명되지 않을 때(예, 하이) LPC 트랜잭션을 수행하지 않는 유휴 상태(idle state)에 있게 된다. 다음에, 프로세스는 호스트(102)가 LPC 버스(124) 상에 LFRAME#을 표명(예, 로우)함으로써 LPC 트랜잭션을 개시하는 경우에(예, 제어 로직(202)이 LPC 디코드 로직(210) 및 호스트(102)로부터 메모리 판독 LPC 트랜잭션이 발생할 것이라는 것을 나타내는 디코드된 신호를 수신하는 경우) 상태(304)로 전이한다. 호스트(102)는 사이클 T0 동안에 LAD[3:0] 상에 LPC 트랜잭션의 개시를 나타내는 개시 제어 정보를 구동시킬 수 있다. 예를 들어, 이러한 개시 제어 정보는 표1에 도시된 바와 같이 LAD[3:0] 상의 0000이 될 수 있다.
다음에, 프로세스는 상태(306)로 전이하고, 호스트(102)는 사이클 T1 동안에 LAD[3:0] 상에 사이클 형태 및 방향 제어 정보를 구동시킨다. 이러한 사이클 형태 및 방향 제어 정보는 LPC 트랜잭션이 메모리 판독 트랜잭션이라는 것을 주변장치(104-108)에 표시해준다. 예를 들어, 사이클 형태 및 방향 제어 정보는 표2에 도시된 바와 같이 LAD[3:1] 상의 010이 될 수 있다.
다음에, 프로세스는 상태(308)로 전이하고, 호스트(102)는 클록 사이클 T2 동안에 LAD[3:0] 상에 선택된 메모리 장치(108)의 메모리 위치의 어드레스를 구동시킨다. 어드레스는 도1의 시스템(100)과 같은 시스템에 의해 지원되는 어떠한 비트 길이도 될 수 있으며, 다수의 n 클록 사이클 T2에 걸쳐 전송된다. 일실시예에서, 메모리 어드레스 공간은 32 비트의 메모리 어드레스를 필요로 하는 4G 바이트가 될 수 있다. 이 실시예에서는, 호스트(102)로부터 메모리 장치(108)로 8 니블(32 비트)의 어드레스 정보를 전송하기 위해 8 클록 사이클의 어드레스 정보가 제어 로직에 의해 LPC 버스(124)로 제공된다. 어드레스 정보는 최상위 니블이 먼저 제공되거나, 최하위 비트가 먼저 제공되거나, 또는 메모리 장치(108)가 예상하고 있는 어떤 다른 순서로 제공될 수 있다.
대안의 실시예에서, 호스트(102)는 후속 사이클 동안에 LAD[3:0] 상에 크기 제어 정보를 선택적으로 구동시킬 수 있다. 일실시예에서, 크기 제어 정보는 상태(308)에서 제공되는 어드레스에서 시작하여 메모리 장치(108)로부터 판독될 메모리 데이터의 바이트 수를 나타낸다. 표3은 LAD[3:0]를 통해 후속으로 전송될 LAD[1:0] 상의 바이트 수를 인코딩하는 일실시예를 제공한다. 동일한 또는 다른 LAD 라인에 다른 인코딩이 사용될 수도 있다.
다른 실시예에서, 크기 제어 정보는 상태(206)에서 제공되는 어드레스에서 시작하여 메모리 장치(108)로부터 2size바이트 수의 메모리 데이터가 판독될 것이라는 것을 나타낼 수 있다.
다음에, 프로세스는 n 클록 사이클 T4 동안에 LPC 버스(124)의 제어를 호스트(102)로부터 메모리 장치(108)로 전환하기 위해 반환(turn around:TAR) 상태(312)로 전이한다. 일실시예에서, 이 상태(312)는 2 클록 넓이이다. 제1 클록 사이클에서 호스트(102)는 소정의 제어 정보(예, 1111)를 이용하여 LAD[3:0] 라인을 구동시킬 수 있다. 제2 클록 사이클에서 호스트(102)는 LAD[3:0] 라인을 3-상태로 구동시킬 수 있다. 이들 라인은 그 라인에 부착된 위크 풀업(weak pull-ups)을 포함할 수 있으며, 따라서 이들 라인은 논리 하이 상태에서 유지될 수 있다. 다른 실시예에서, n은 LAD[3:0]를 반환하기 위해 하나의 클록 사이클이 될 수 있으며 또는 2개 클록 사이클 보다 클 수도 있다.
다음에, 프로세스는 상태(314)로 전이되며, 여기서 호스트(102)는 메모리 장치(108)가 LAD[3:0] 상에 인밴드(inband) 동기 제어 정보를 구동시키는 동안 n 클록 사이클 T5를 대기한다. 동기 제어 정보는 메모리 데이터가 메모리 장치(108)에 의해 출력될 준비가 될 때까지 대기 상태를 부가하기 위해 사용될 수 있다. 이러한 방식으로, 상이한 속도 또는 억세스 시간을 가진 메모리 장치들이 동일한 LPC 버스에 접속될 수 있다. 종래에는, 데이터가 준비되는 때를 나타내기 위해 전용 제어 라인 상의 전용 제어 신호가 사용되었다(예, ISA 버스 또는 X-버스에서 IOCHRDY). 이와 달리, 메모리 장치(108)는 추가적인 전용 핀 또는 신호 라인의 이용을 필요로 하지 않고 대기 상태를 삽입하기 위해 LAD[3:0] 상의 인밴드 시그널링(inband signaling)을 이용할 수 있다.
일실시예에서, 동기 제어 정보 필드는 2개의 페이즈(phases)를 갖는다. 제1 페이즈는 요구된 데이터에 억세스하는 동안에 LAD[3:0] 상에 제1 제어 정보(예, 0101 또는 0110)를 구동시킨다. 제2 페이즈는 데이터가 LPC 버스(124)로 출력될 준비가 되어 있다는 것을 나타내는 제2 제어 정보(예, 0000)를 LAD[3:0] 상에 구동시킨다. 호스트(102)는 동기 제어 정보를 모니터하고 제2 정보가 전송되는 때를 판단할 수 있다. 다음에, 호스트(102)는 후속 클록 사이클 T6에서 메모리 장치(108)에 의해 출력된 데이터가 그 호스트(102)에 의해 요구된 데이터라는 것을 알 수 있다. 일실시예에서, 제1 제어 정보는 메모리 장치(108)가 LAD[3:0] 상에 비교적 많은 수의 대기 상태(예, 약 20+ 대기 상태)를 구동시킬 수 있다는 것을 나타내는 인코딩(예, LAD[3:0] 상의 0110)을 갖고 있다. 또한, 제1 제어 정보는 메모리 장치(108)가 LAD[3:0] 상에 비교적 적은 수의 대기 상태(예, 약 1-20 대기 상태)를 구동시킬 수 있다는 것을 나타내는 인코딩(예, LAD[3:0] 상의 0101)을 가질 수도 있다. 일 실시예(다음의 표4 참조)에서, 메모리 장치(108)는 약 1-20 클록 사이클 동안 각각 LAD[3:0] 상에 0101의 동기 데이터를 구동시키고, 다음에, 요구된 데이터가 준비되어 다음 클록 사이클에서 출력될 것이라는 것을 나타내기 위해 한 사이클 동안 LAD[3:0] 상에 0000을 구동시킬 수 있다.
만일 대기 상태의 수가 크면, 호스트(102)는 상태(320)로 들어가서 트랜잭션을 중단할 것을 결정할 수 있다. 전술한 바와 같이, 호스트(102)는 하나 또는 그 이상의 클록 사이클 동안 LFRAME#을 표명하고 LAD[3:0] 상에 소정의 중단 제어 정보(예, 표1의 1111)를 구동시킴으로써 트랜잭션을 중단시킬 수 있다.
또한, 제어 정보의 동기 필드는 호스트(102)의 LPC 인터페이스(118)로 LAD[3:0] 상의 인밴드 에러 메시지를 전송하기 위해 메모리 장치(108)에 의해 사용될 수 있다. 에러 메시지는 동기 시퀀스 동안 어느 때라도 전송될 수 있다. 예를 들어, 에러 메시지는 제1 및 제2 동기 제어 정보를 가진 실시예에서 제2 제어 정보로서 전송될 수 있다. 에러 메시지는 예를 들어, 요구된 데이터가 파괴되었거나, 주변장치가 요구를 이해하지 못하거나, 무효 요구이거나, 또는 주변장치가 파워 다운 모드나 또는 데이터를 출력할 수 없는 다른 모드에 있는 동안에 요구가 발생했다는 것을 나타낼 수 있다. 일실시예에서, 만일 에러 메시지가 메모리 판독 트랜잭션 동안에 전송되면, 데이터는 독출되어 무시된다.
표4는 전술한 동기 제어 정보를 위한 LAD[3:0] 상의 인코딩의 일실시예를 제공한다. 다른 인코딩도 사용될 수 있다.
대안의 실시예에서, 인밴드 동기 제어 정보는 도4에 요약되고 이전에 설명된 대기 상태, 에러 또는 다른 정보를 통신하기 위해 시스템 내의 범용 시다중화 버스를 통해 2개의 장치(예, 호스트와 주변장치) 사이에서 이용될 수 있다.
메모리 장치(108)가 그 데이터를 LPC 버스(124)로 출력할 준비가 되면, LAD[3:0] 상에 적절한 동기 제어 정보(예, 0000)를 제공한 이후에, 프로세스는 n 클록 사이클 T6에서 상태(316)로 전이한다. 상태(316)에서, 호스트(102)는 LAD[3:0] 상에 메모리 장치(108)에 의해 제공되는 데이터를 판독한다. 메모리 장치(108)는 2개의 클럭 사이클에 걸쳐 바이트 증분으로 LAD[3:0] 상에 데이터를 구동시킬 수 있다. 2 바이트 전송의 일실시예에서, 제1 바이트는 첫 번째 2개의 클록 사이클에서 출력될 수 있고, 제2 바이트는 다음의 2개의 클록 사이클에서 출력될 수 있다. 각각의 바이트에 대해, 데이터는 하위 니블이 먼저 출력되거나, 상위 니블이 먼저 출력되거나, 또는 어떤 다른 포맷으로 메모리 장치(108)에 의해 출력될 수 있다. 마찬가지로, 메모리 장치(108)에 의해 출력되는 각각의 바이트 그룹도 하위 바이트가 먼저 출력되거나, 상위 바이트가 먼저 출력되거나, 또는 어떤 다른 포맷으로 출력될 수 있다.
일실시예에서, 동기 제어 정보의 필드가 바이트들 사이에 삽입되도록 상태(316)와 상태(314) 사이에서 순환함으로써 다중 바이트 판독(multiple byte reads)이 구현될 수 있다. 대안의 실시예에서는, 프로세스가 상태(316)에 있는 동안에 복수 바이트의 버스트 판독이 구현될 수 있다. 대안의 실시예에서, 메모리 장치(108)는 데이터 바이트들 사이에서 더 이상 동기 제어 정보가 전송되지 않을 것이라는 것을 나타내기 위해 상태(314)에서 LAD[3:0] 상에 1100을 구동시킬 수 있다. 또다른 실시예에서는, 다중 또는 버스트 데이터 판독을 나타내기 위해 특정 동기 제어 정보가 필요로 되지 않을 수도 있다.
호스트(102)에 의해 모든 데이터가 판독된 이후에, 프로세스는 반환(TAR) 상태(318)로 전이되어, n 클록 사이클 T7 동안에 LAD[3:0]의 제어가 호스트(102)로 반환될 수 있다. 상태(312)에서와 같이, 상태(318)도 2개의 클록 넓이를 가질 수 있다. 제1 클록 사이클에서, 메모리 장치(108)는 소정의 제어 정보(예, 1111)를 이용하여 LAD[3:0] 라인을 구동시킬 수 있다. 제2 클록 사이클에서, 메모리 장치(108)는 LAD[3:0] 라인을 3-상태로 구동시킬 수 있다. 다른 실시예에서, LAD[3:0]를 반환하기 위해 n이 하나의 클록 사이클이 되거나 또는 2 클록 사이클 보다 클 수도 있다.
이제, 도3 및 도5를 참조하여 호스트(102)에 의한 메모리 장치(108) 내의 한 메모리 위치로의 예시적인 메모리 기록 LPC 트랜잭션에 대해 설명한다. 이러한 메모리 기록 LPC 트랜잭션은 예를 들어, 메모리 장치(108)로 시스템 스타트-업 정보를 기록하기 위해 호스트(102)에 의해 구현될 수 있다. 상태(302)에서, 호스트(102)는 LPC 트랜잭션을 수행하지 않는 유휴 상태에 있게 된다. 이 프로세스는 호스트(102)가 LPC 버스(124) 상에 LFRAME#을 표명할 때 LPC 트랜잭션을 개시한다(예, 제어 로직(202)이 LPC 디코드 로직(210) 및 호스트(102)로부터 메모리 판독 LPC 트랜잭션이 발생할 것이라는 것을 나타내는 디코드된 신호를 수신하는 경우). 다음에, 프로세스는 개시 상태(304)로 전이하고, 호스트(102)는 LPC 트랜잭션의 개시를 나타내는 개시 제어 정보를 LAD[3:0] 상에 구동시킨다. 예를 들어, 개시 제어 정보는 표1에 도시된 바와 같이 0000이 될 수 있다. 다음에, 프로세스는 상태(306)로 전이되어, LPC 트랜잭션이 메모리 기록 트랜잭션이라는 것을 주변장치(104-108)에 표시해주는 사이클 형태 및 방향 제어 정보를 사이클 T1 동안에 LAD[3:0] 상에 구동시킨다. 예를 들어, 사이클 형태 및 방향 제어 정보는 표2에 도시된 바와 같이 LAD[3:1] 상의 011이 될 수 있다.
다음에, 프로세스는 상태(308)로 전이하고, 호스트(102)는 n 클록 사이클 T2 동안에 LAD[3:0] 상에 선택된 메모리 장치(108)의 메모리 위치의 어드레스를 구동시킨다. 전술한 바와 같이, 어드레스는 도1의 시스템(100)과 같은 시스템에 의해 지원되는 어떠한 비트 길이로도 이루어질 수 있으며, 다수의 n 클록 사이클 T2에 걸쳐 전송될 수 있다. 이러한 어드레스 정보는 최상위 니블이 먼저 제공되거나, 최하위 니블이 먼저 제공되거나, 또는 메모리 장치(108)가 예상하고 있는 어떤 다른 순서로 제공될 수 있다.
대안의 실시예에서, 호스트(102)는 사이클 T3 동안에 LAD[3:0] 상에 크기 제어 정보를 구동시킬 수 있다. 이러한 크기 제어 정보는 상태(308)에서 제공되는 어드레스에서 시작하여 메모리 장치(108)에 기록될 메모리 데이터의 바이트 수를 나타낼 수 있다.
다음에, 프로세스는 상태(310)로 전이하고, 호스트(102)는 n 클록 사이클 T4에서 적절한 데이터 바이트를 LAD[3:0]를 통해 메모리 장치(108)로 기록한다. 호스트(102)는 2개의 클록 사이클에 걸쳐 바이트 증분으로 LAD[3:0] 상에 데이터를 구동시킬 수 있다. 예를 들어, 만일 16 비트 또는 2 바이트 전송이면, 제1 바이트는 첫 번째 2개의 클록 사이클에서 출력되고, 제2 바이트는 다음의 2개의 클록 사이클에서 출력될 수 있다. 각각의 바이트에 대해, 하위 니블이 먼저 출력 되거나, 상위 니블이 먼저 출력되거나, 또는 어떤 다른 포맷으로 호스트(102)에 의해 데이터가 출력될 수 있다. 마찬가지로, 호스트(102)에 의해 출력되는 각각의 바이트 그룹도 하위 바이트가 먼저 출력되거나, 상위 바이트가 먼저 출력되거나, 또는 어떤 다른 포맷으로 출력될 수 있다. 호스트(102)는 상태(310)에서 데이터의 하나 또는 그 이상의 (버스트) 바이트를 기록할 수 있다.
다음에, 프로세스는 n 클록 사이클 T5 동안에 LPC 버스(124)의 제어를 메모리 장치(108)로 전환하기 위해 반환(TAR) 상태(312)로 전이한다. 다음에, 프로세스는 상태(314)로 전이하고, 호스트(102)는 메모리 장치(108)가 클록 사이클 T6 동안에 LAD[3:0] 상에 인밴드 동기 제어 정보를 구동시키는 동안 n 클록 사이클을 대기한다. 일실시예에서, 동기 제어 정보는 하나 또는 그 이상의 클록 사이클이 될 수 있으며, 메모리 장치(108)로 기록되는 데이터의 수신을 확인응답하기 위해 이용될 수 있다(예, LAD[3:0] 상의 0000). 또한, 동기 제어 정보는 데이터가 메모리 장치(108)에 의해 기록되어 저장될 때까지 대기 상태를 부가하기 위해 이용될 수 있다. 이러한 대기 상태 동안에, 메모리 장치(108)는 표4에 도시된 바와 같이, 짧은 대기 상태 동기 제어 정보 또는 긴 대기 상태 동기 제어 정보를 LAD[3:0] 상에 구동시킬 수 있다. 메모리 장치(108)가 어드레스된 위치로 데이터를 기록완료 하였으면, 메모리 장치(108)는 LAD[3:0] 상에 준비 상태(예, 0000)를 구동시킬 수 있다.
메모리 판독 LPC 트랜잭션에서와 같이, 메모리 장치(108)는 역시 제어 정보의 동기 필드를 이용하여 LAD[3:0]를 통해 호스트(102)로 인밴드 에러 메시지(예, 1010)를 전송할 수 있다. 에러 메시지는 예를 들어, 기록 트랜잭션이 올바르게 발생하지 못했거나 다른 에러가 발생했다는 것을 나타낼 수 있다.
다음에, 호스트(102)는 반환(TAR) 상태(318)로 전이하고, n 클록 사이클 T7 동안에 LAD[3:0]의 제어가 호스트(102)로 복귀될 수 있다.
도6은 호스트(102)와 주변장치(104-108) 사이에서 메모리 및/또는 I/O 기록 또는 판독 트랜잭션을 수행하기 위해 하나 또는 그 이상의 LPC 인터페이스(112-118)에 의해 구현될 수 있는 상태도의 일실시예이다. 예를 들어, 도6의 상태도는 도2의 메모리 및 I/O LPC 제어 로직(202)의 상태 머신 또는 시퀀서에 의해 이용될 수 있다. 이 상태도는 메모리 판독 및 기록 LPC 트랜잭션을 구현한다. 메모리 판독 및 기록 LPC 트랜잭션에 대해서는 도7 및 도8의 예시적인 타이밍도를 참조하여 설명한다.
이제, 도6 및 도7을 참조하여 메모리 장치(108) 내의 한 메모리 위치로부터의 호스트(102)에 의한 예시적인 메모리 판독 LPC 트랜잭션에 관해 설명한다. 이러한 메모리 판독 LPC 트랜잭션은 예를 들어, 메모리 장치(108)로부터 시스템 스타트-업 정보를 판독함으로써 호스트(102)에 의해 구현될 수 있다. 상태(602)에서, LPC 인터페이스(118)는 LFRAME#이 표명해제(예, 하이)되는 경우에 LPC 트랜잭션을 수행하지 않는 유휴 상태에 있게 된다. 다음에, 프로세스는 상태(604)로 전이하고, 호스트(102)는 (예, 제어 로직(202)이 메모리 판독 LPC 트랜잭션이 발생할 것이라는 것을 나타내는 디코드된 신호를 LPC 디코드 로직(210) 및 호스트(102)로부터 수신하는 경우) LPC 버스(124) 상에 LFRAME#을 표명(예, 로우)함으로써 LPC 트랜잭션을 개시한다. 호스트(102)는 사이클 T0 동안에 LAD[3:0] 상에 LPC 메모리 판독 트랜잭션의 개시를 나타내는 개시 제어 정보를 구동시킬 수 있다. 예를 들어, 개시 제어 정보는 표1에 도시된 바와 같이 LAD[3:0] 상의 1101이 될 수 있다.
다음에, 프로세스는 장치 선택(IDSEL) 상태(606)로 전이하고, 호스트(102)는 메모리 판독 트랜잭션을 위한 특정 메모리 장치를 선택하기 위해 LAD[3:0] 상에 장치 선택 제어 정보를 구동시킨다. 일실시예에서, LPC 버스(124)에 접속된 메모리 장치는 외부 고정배선(hard-wired) 또는 내부 레지스터-기반 식별자(identifications)를 포함할 수 있다. 도9는 고정배선 메모리 장치 식별자의 일실시예를 도시하고 있다. 메모리 장치(900)는 입력 I0, I1, I2 및I3 상에 각각 0000의 식별자를 갖고 있다. 메모리 장치(901)는 입력 I0, I1, I2 및I3 상에 각각 0001의 식별자를 갖고 있다. 메모리 장치(915)는 입력 I0, I1, I2 및I3 상에 각각 1111의 식별자를 갖고 있다. 2진 포맷 또는 어떤 다른 포맷을 이용하여 다수의 메모리 장치를 식별 또는 선택하기 위해 다수의 고정배선 입력이 사용될 수 있다. LPC 버스(124)에 접속된 각각의 메모리 장치는 LPC 메모리 판독(또는 기록) 트랜잭션이 그들을 위한 것인지 판단하기 위해 장치 선택 제어 정보를 그 고정배선 식별자와 비교한다. 만일 메모리 트랜잭션이 그들을 위한 것이 아니면, 그 메모리 장치는 파워다운 모드(예, 유휴 상태 602)로 들어갈 수 있다.
다음에, 프로세스는 상태(608)로 전이하고, 호스트(102)는 n 클록 사이클 T2 동안에 LAD[3:0] 상에 선택된 메모리 장치(108)의 메모리 위치의 어드레스를 구동시킨다. 어드레스는 도1의 시스템(100)과 같은 시스템에 의해 지원되는 어떠한 비트 길이로도 이루어질 수 있으며, 다수의 n 클록 사이클 T2에 걸쳐 전송된다. 일실시예에서, 메모리 어드레스 공간은 28 비트의 메모리 어드레스를 요하는 256K 바이트가 될 수 있다. 일실시예에서는, 호스트(102)로부터 메모리 장치(108)로 7 니블(28 비트)의 어드레스 정보를 전송하기 위해 7 클록 사이클의 어드레스 정보가 제어 로직에 의해 LPC 버스(124)로 제공된다. 어드레스 정보는 최상위 니블이 먼저 제공되거나, 최하위 니블이 먼저 제공되거나, 또는 메모리 장치(108)에 의해 예상되는 어떤 다른 순서로 제공될 수 있다.
다음에, 프로세스는 상태(610)로 전이하고, 호스트(102)는 클록 사이클 T3 동안에 LAD[3:0] 상에 크기 제어 정보를 구동시킨다. 일실시예에서, 크기 제어 정보는 상태(606)에서 제공되는 어드레스에서 시작하여 메모리 장치(108)로부터 판독될 메모리 데이터의 바이트 수를 나타낸다. 표3은 바이트 수의 인코딩의 일실시예를 도시하고 있다. 다른 실시예에서, 크기 제어 정보는 상태(608)에서 제공되는 어드레스에서 시작하여 메모리 장치(108)로부터 판독될 메모리 데이터의 2size의 바이트 수를 나타낼 수 있다.
일실시예에서, 데이터 전송은 호스트(102)에 의해 2size의 경계(boundary)로 정렬될 수 있다. 예를 들어, 만일 크기 필드가 LAD[3:0] 상의 0100과 동일하면, 연산은 16 바이트 경계로 정렬되고, 메모리 장치(108)는 16 바이트 정렬된 어드레스로부터 시작하여 16 바이트의 데이터를 수신 또는 전송해야 한다. 다른 실시예에 있어서, 데이터 전송은 표3에 도시된 바와 같은 크기 경계로 정렬될 수 있다. 예를 들어, 만일 크기가 LAD[3:0] 상의 0010과 동일하면, 연산은 16 비트 또는 워드 경계로 정렬되고, 메모리 장치(108)는 16 비트 또는 워드 정렬된 어드레스로부터 시작하여 16 비트의 데이터를 수신 또는 전송해야 한다.
다음에, 프로세스는 n 클록 사이클 T4 동안에 LPC 버스(124)의 제어를 호스트(102)로부터 메모리 장치(108)로 복귀시키기 위해 반환(TAR) 상태(614)로 전이한다. 다음에 프로세스는 상태(616)로 전이하고, 여기서 호스트(102)는 메모리 장치(108)가 LAD[3:0] 상에 인밴드 동기 제어 정보를 구동시키는 동안 n 클록 사이클 T5을 대기한다. 도3의 상태(314)를 참조하여 전술한 바와 같이, 동기 제어 정보는 메모리 트랜잭션에 대기 상태를 부가하기 위해 이용될 수 있다. 만일 대기 상태의 수가 크면, 호스트(102)는 상태(622)로 들어가서 트랜잭션을 중단하도록 결정할 수 있다. 전술한 바와 같이, 호스트(102)는 하나 또는 그 이상의 클록 사이클 동안 LFRAME#을 표명하고 LAD[3:0] 상에 소정의 중단 제어 정보(예, 표1에서와 같은 1111)를 구동시킴으로써 트랜잭션을 중단시킬 수 있다.
도3의 상태(314)를 참조하여 전술한 바와 같이, 제어 정보의 동기 필드는 또한, LAD[3:0] 상의 인밴드 에러 메시지를 호스트(102)의 LPC 인터페이스(118)로 전송하기 위해 메모리 장치(108)에 의해 이용될 수 있다. 표4는 전술한 동기 제어 정보를 위한 LAD[3:0] 상의 인코딩의 일실시예를 제공한다.
대안의 실시예에서, 인밴드 동기 제어 정보는 표4에 요약되거나 또는 전술한 대기 상태, 에러 또는 어떤 다른 정보를 통신하기 위해 시스템 내의 범용 시다중화 버스를 통해 2개의 장치들(예, 호스트와 주변장치) 사이에서 이용될 수 있다.
메모리 장치(108)가 그 데이터를 LPC 버스(124)로 출력할 준비가 되어 있으면, LAD[3:0] 상에 적절한 동기 제어 정보(예, 0000)를 제공한 이후에, 프로세스는 n 클록 사이클 T6 동안 상태(618)로 전이한다. 상태(618)에서, 호스트(102)는 메모리 장치(108)에 의해 LAD[3:0] 상으로 제공되는 데이터를 판독한다. 메모리 장치(108)는 2개의 클록 사이클에 걸쳐 바이트 증분으로 LAD[3:0] 상에 데이터를 구동시킬 수 있다. 각각의 바이트에 대해, 하위 니블이 먼저 출력되거나, 고위 니블이 먼저 출력되거나, 또는 어떤 다른 포맷으로 메모리 장치(108)에 의해 데이터가 출력될 수 있다. 이와 마찬가지로, 메모리 장치(108)에 의해 출력되는 각각의 바이트 그룹도 역시 하위 바이트가 먼저 출력되거나, 고위 바이트가 먼저 출력되거나, 또는 호스트(102)가 예상하고 있는 어떤 다른 포맷으로 출력될 수 있다.
일실시예에서는, 동기 제어 정보 필드가 바이트들 사이에 삽입되도록 상태(618)와 상태(616) 사이를 순환함으로써 다중 바이트 판독이 구현될 수 있다. 대안의 실시예에서는, 호스트(102)가 상태(618)에 있는 동안 복수 바이트의 버스트 판독이 이루어질 수 있다. 또한, 대안의 실시예에서, 메모리 장치(108)는 데이터 바이트들 사이에서 전송될 더 이상의 동기 제어 정보가 없다는 것을 나타내기 위해 상태(616)에서 LAD[3:0] 상에 1100을 구동시킬 수 있다. 또다른 실시예에서, 다중 데이터 판독 또는 버스트 데이터 판독을 나타내기 위해 특정 동기 제어 정보가 필요로 되지 않을 수도 있다.
모든 데이터가 호스트(102)에 의해 판독된 이후에, 프로세스는 반환(TAR) 상태(620)로 전이하고, n 클록 사이클 T7 동안에 LAD[3:0]의 제어가 호스트(102)로 복귀될 수 있다. 상태(614)에서와 같이, 상태(620)도 2 클록의 넓이를 가질 수 있다. 제1 클록 사이클에서, 메모리 장치(108)는 소정의 제어 정보(예, 1111)를 이용하여 LAD[3:0] 라인을 구동시킬 수 있다. 제2 클록 사이클에서, 메모리 장치(108)는 LAD[3:0] 라인을 3상태로 구동시킬 수 있다. 다른 실시예에서, LAD[3:0]를 반환하기 위해 n은 1 클록 사이클이 되거나 또는 2 클록 사이클 보다 클 수 있다.
이제, 도6 및 도8을 참조하여 메모리 장치(108) 내의 한 메모리 위치로의 호스트(102)에 의한 예시적인 메모리 기록 LPC 트랜잭션에 대해 설명한다. 이러한 메모리 기록 LPC 트랜잭션은 예를 들어, 메모리 장치(108)로 시스템 스타트-업 정보를 기록하기 위해 호스트(102)에 의해 구현될 수 있다. 상태(602)에서, 호스트(102)는 LPC 트랜잭션을 수행하지 않는 유휴 상태에 있게 된다. 이 프로세스는 호스트(102)가 LPC 버스(124) 상에 LFRAME#을 표명할 때 LPC 트랜잭션을 개시한다(예, 제어 로직(202)이 LPC 디코드 로직(210) 및 호스트(102)로부터 메모리 판독 LPC 트랜잭션이 발생할 것이라는 것을 나타내는 디코드된 신호를 수신하는 경우). 다음에, 프로세스는 개시 상태(304)로 전이하고, 호스트(102)는 클록 사이클 T0 동안에 개시 제어 정보를 LAD[3:0] 상에 구동시킨다. 이 개시 제어 정보는 메모리 기록 LPC 트랜잭션의 개시를 나타낸다. 예를 들어, 호스트는 표1에 도시된 바와 같이 1110의 개시 제어 정보를 LAD[3:0] 상에 구동시킬 수 있다. 다음에, 프로세스는 메모리 기록 트랜잭션을 위한 특정 메모리 장치를 식별 또는 선택하기 위해 장치 선택(IDSEL) 상태(606)로 전이한다.
다음에, 프로세스는 상태(608)로 전이하고, 호스트(102)는 n 클록 사이클 T2 동안에 LAD[3:0] 상에 선택된 메모리 장치(108)의 메모리 위치의 어드레스를 구동시킨다. 전술한 바와 같이, 어드레스는 도1의 시스템(100)과 같은 시스템에 의해 지원되는 어떠한 비트 길이로도 이루어질 수 있으며, 다수의 n 클록 사이클 T2에 걸쳐 전송될 수 있다. 이러한 어드레스 정보는 최상위 니블이 먼저 제공되거나, 최하위 니블이 먼저 제공되거나, 또는 메모리 장치(108)가 예상하고 있는 어떤 다른 순서로 제공될 수 있다.
다음에, 프로세스는 상태(610)로 전이하고, 호스트(102)는 클록 사이클 T3 동안에 LAD[3:0] 상에 크기 제어 정보를 구동시킨다. 다음에, 프로세스는 상태(612)로 전이하고, 호스트(102)는 n 클록 사이클 T4에서 적절한 데이터 바이트를 LAD[3:0]를 통해 메모리 장치(108)로 기록한다. 호스트(102)는 2개의 클록 사이클에 걸쳐 바이트 증분으로 LAD[3:0] 상에 데이터를 구동시킬 수 있다. 예를 들어, 만일 16 비트 또는 2 바이트 전송이면, 제1 바이트는 첫 번째 2개의 클록 사이클에서 출력되고, 제2 바이트는 다음의 2개의 클록 사이클에서 출력될 수 있다. 각각의 바이트에 대해, 하위 니블이 먼저 출력 되거나, 상위 니블이 먼저 출력되거나, 또는 어떤 다른 포맷으로 호스트(102)에 의해 데이터가 출력될 수 있다. 마찬가지로, 호스트(102)에 의해 출력되는 각각의 바이트 그룹도 하위 바이트가 먼저 출력되거나, 상위 바이트가 먼저 출력되거나, 또는 어떤 다른 포맷으로 출력될 수 있다. 호스트(102)는 상태(612)에서 데이터의 하나 또는 그 이상의 (버스트) 바이트를 기록할 수 있다.
다음에, 프로세스는 n 클록 사이클 T5 동안에 LPC 버스(124)의 제어를 메모리 장치(108)로 전환하기 위해 반환(TAR) 상태(614)로 전이한다. 다음에, 프로세스는 상태(616)로 전이하고, 호스트(102)는 메모리 장치(108)가 클록 사이클 T6 동안에 LAD[3:0] 상에 인밴드 동기 제어 정보를 구동시키는 동안 n 클록 사이클을 대기한다. 일실시예에서, 동기 제어 정보는 하나 또는 그 이상의 클록 사이클이 될 수 있으며, 메모리 장치(108)로 기록되는 데이터의 수신을 확인응답하기 위해 이용될 수 있다(예, LAD[3:0] 상의 0000). 또한, 동기 제어 정보는 데이터가 메모리 장치(108)에 의해 기록되어 저장될 때까지 대기 상태를 부가하기 위해 이용될 수 있다. 메모리 판독 LPC 트랜잭션에서와 같이, 메모리 장치(108)는 역시 제어 정보의 동기 필드를 이용하여 LAD[3:0]를 통해 호스트(102)로 인밴드 에러 메시지(예, 1010)를 전송할 수 있다. 에러 메시지는 예를 들어, 기록 트랜잭션이 올바르게 발생하지 못했거나 다른 에러가 발생했다는 것을 나타낼 수 있다. 표4에는 동기 제어 정보 인코딩의 일실시예가 도시되어 있다.
다음에, 호스트(102)는 반환(TAR) 상태(618)로 전이하고, n 클록 사이클 T7 동안에 LAD[3:0]의 제어가 호스트(102)로 복귀될 수 있다.
도10은 메모리 장치(108)의 일실시예인 메모리 장치(1000)를 도시하고 있다. 이 메모리 장치(1000)는 SRAM, DRAM, EPROM, EEPROM, ROM 등과 같은 휘발성 및 비휘발성 메모리 장치를 포함하여 어떠한 형태의 메모리 장치도 될 수 있는 메모리(1010)를 포함한다. 이 메모리 장치(1000)는 또한, 휘발성 또는 비휘발성 메모리 장치를 구현하는데 필요한 제어 회로 및 메모리 소자를 포함한다. 일실시예에서, 메모리(1000)는 플래시 메모리 셀 어레이에 접속되어 그 어레이의 프로그래밍, 판독 및 소거를 제어하는 제어 엔진을 구비한 비휘발성(예, 플래시) 메모리 장치이다.
또한, 메모리 장치(1000)는 제어 로직(1004), 상태 머신(1006), 메모리 제어 로직(1008) 및 I/O 래치(1002)를 포함하는 LPC 인터페이스(116)의 일실시예를 포함한다. 제어 로직(1004)은 LPC 입력 신호 LFRAME#, LCLK 및/또는 LRESET#을 수신하고, 이들 신호의 표시(indication)를 라인(1012) 상의 제어 신호를 통해 상태 머신 또는 시퀀서(1006)로 제공한다. 일실시예에서, I/O 래치(1002)는 LAD[3:0]로부터/로 어드레스, 제어 및 데이터 정보를 수신하고 출력한다. I/O 래치(1002)는 LAD[3:0]로부터 수신되는 어드레스, 데이터 및 제어 정보를 버스(1014)를 통해 상태 머신(1006) 및 메모리 제어 로직(1008)으로 전달한다. I/O 래치(1002)는 LAD[3:0]로부터 수신되는 데이터의 여러 니블들을 연쇄시킬 수 있다.
버스(1014) 및 라인(1012)로부터 수신되는 어드레스, 데이터 및 제어 정보를 이용하여, 상태 머신(1006)은 메모리 장치(1000)가 LPC 버스(124)를 통해 호스트와 통신하거나 또는 버스 마스터 LPC 트랜잭션에서 I/O 장치(104,1010)와 통신할 수 있도록 메모리 장치(1000)의 LPC 인터페이스를 제어한다. 상태 머신(1006)의 일실시예는 도3에 도시되어 있다. 상태 머신(1006)의 다른 실시예는 도6에 도시되어 있다.
이 상태 머신(1006)은 필요한 제어, 어드레스 및 데이터 정보를 메모리(1010)로 제공하기 위해 메모리 제어 로직(1008)과 함께 동작할 수 있다. 메모리 제어 로직(1008)은 메모리(1010)가 기록 또는 판독 트랜잭션을 수행하도록 하기 위해 라인(1018) 상에 필요한 제어 신호와, 라인(1020) 상에 어드레스 신호와 라인(1022) 상에 데이터 신호를 발생한다. 라인(1018) 상의 제어 신호는 어드레스 스트로브(address strobes)(예, RAS 및/또는 CAS), 칩 인에이블 또는 칩 선택 신호(예, CE 및/또는 CS), 기록 또는 판독 인에이블 신호, 리셋 신호, 파워다운 신호 등을 포함할 수 있다.
상태 머신(1006)이 메모리 기록 트랜잭션이 발생할 것으로 판단하면, 상태 머신(1006)은 메모리 제어 로직이 라인(1018) 상의 적절한 제어 신호와 함께 라인(1020)을 통해 메모리(1010)로 제공하도록 하기 위해 버스(1014) 상에 어드레스 정보가 제공되는 때를 라인(1016)을 통해 표시할 수 있다. 계속해서, 상태 머신(1006)은 메모리 제어 로직이 라인(1018) 상의 적절한 제어 신호와 함께 라인(1022)을 통해 메모리(1010)로 제공하도록 하기 위해 버스(1014) 상에 데이터 정보가 제공되는 때를 라인(1016)을 통해 표시할 수 있다. 이와 마찬가지로, 상태 머신(1006)이 메모리 판독 트랜잭션이 발생할 것으로 판단하면, 상태 머신(1006)은 메모리 제어 로직이 라인(1018) 상의 적절한 제어 신호와 함께 라인(1020)을 통해 메모리(1010)로 제공하도록 하기 위해 버스(1014) 상에 어드레스 정보가 제공되는 때를 라인(1016)을 통해 표시할 수 있다. 계속해서, 상태 머신(1006)은 요구된 데이터가 메모리(1010)로부터 라인(1026)을 통해 I/O 래치(1002) 및 LAD[3:0]로 출력되어야 하는 때를 라인(1016)을 통해 표시할 수 있다. 메모리 제어 로직(1008)은 I/O 래치(1002)의 양방향 상태를 제어하기 위해 라인(1024) 상에 하나 또는 그 이상의 I/O 제어 신호를 발생할 수 있다. 예를 들어, 메모리 제어 로직(1008)은 데이터가 메모리(1010)로부터 판독될 때 라인(1024)을 통해 출력 인에이블 신호를 표명할 수 있다.
전술한 설명에서, 본 발명은 그 특정 실시예를 참조하여 설명되었다. 그러나, 첨부된 청구범위에 기재된 본 발명의 넓은 사상 및 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수도 있다는 것은 명백할 것이다. 따라서, 명세서 및 도면은 제한적 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (27)

  1. 호스트;
    상기 호스트에 연결되며, 시다중화된(time-multiplexed) 어드레스, 데이터 및 제어 정보를 전달하기 위한 다수의 범용 신호 라인을 포함하는 버스; 및
    상기 버스에 연결되며, 시스템 스타트-업 정보를 저장하는 메모리 장치
    를 포함하고,
    여기서, 메모리 장치는 상기 시스템 스타트-업 정보를 상기 버스를 통해 상기 호스트와 통신하는
    시스템.
  2. 시다중화된 어드레스, 데이터 및 제어 정보를 전달하기 위한 다수의 범용 신호 라인을 포함하는 버스;
    상기 버스에 연결되며, 시스템 스타트-업 정보를 저장하는 메모리 장치; 및
    상기 버스에 연결되며, 메모리 트랜잭션을 나타내기 위해 상기 버스를 통해 상기 메모리 장치로 제1 제어 정보를 기록하는 호스트
    를 포함하고,
    상기 시스템 스타트-업 정보의 일부는 상기 호스트와 상기 메모리 장치 사이에서 통신되는
    시스템.
  3. 제 2 항에 있어서,
    상기 버스는 메모리 트랜잭션의 개시를 나타내는 제어 신호를 전달하기 위한 독립적인 제어 신호 라인을 더 포함하는
    시스템.
  4. 제 3 항에 있어서,
    상기 독립적인 제어 신호 라인 상의 제어 신호는 메모리 트랜잭션의 중단을 나타내는
    시스템.
  5. 제 2 항에 있어서,
    상기 버스는 클록 신호를 전달하기 위한 독립적인 클록 신호 라인을 더 포함하고, 상기 메모리 장치는 상기 클록 신호에 대해 상기 시스템 스타트-업 정보를 상기 호스트와 동기적으로 통신하는
    시스템.
  6. 제 2 항에 있어서,
    상기 호스트는 상기 메모리 장치 내의 메모리 어드레스를 나타내기 위해 상기 버스를 통해 상기 메모리 장치로 제2 제어 정보를 기록하는
    시스템.
  7. 제 6 항에 있어서,
    상기 호스트는 상기 메모리 트랜잭션에서 전송될 바이트 수를 나타내기 위해 상기 버스를 통해 상기 메모리 장치로 제2 제어 정보를 기록하는
    시스템.
  8. 제 7 항에 있어서,
    상기 호스트는 상기 버스의 제어를 상기 메모리 장치로 전환하기 위해 상기 버스를 통해 상기 메모리 장치로 제4 제어 정보를 기록하는
    시스템.
  9. 제 8 항에 있어서,
    상기 메모리 장치는 상기 메모리 장치의 동작을 상기 호스트와 동기시키기 위해 상기 버스에 제5 제어 정보를 제공하는
    시스템.
  10. 제 9 항에 있어서,
    상기 메모리 장치는 데이터가 상기 메모리 장치에 의해 상기 버스로 출력될 준비가 될 때까지 상기 버스에 상기 제5 제어 정보를 제공하는
    시스템.
  11. 제 9 항에 있어서,
    상기 제5 제어 정보는 메모리 트랜잭션에서의 에러의 표시를 포함하는
    시스템.
  12. 제 2 항에 있어서,
    상기 호스트는 프로세서를 포함하는
    시스템.
  13. 제 2 항에 있어서,
    상기 호스트는 칩 셋트를 포함하는
    시스템.
  14. 제 2 항에 있어서,
    상기 다수의 범용 신호 라인은 4개의 범용 신호 라인을 포함하는
    시스템.
  15. 제 2 항에 있어서,
    상기 시스템은 통신 시스템을 포함하는
    시스템.
  16. 제 2 항에 있어서,
    상기 버스는 상기 메모리 장치에 대한 저전력 모드를 나타내는 제어 신호를 전달하기 위한 독립적인 제어 신호 라인을 더 포함하는
    시스템.
  17. 다수의 범용 신호 라인 및 하나의 독립적인 제어 라인을 포함하는 버스를 통해 호스트와 메모리 장치 - 상기 메모리 장치는 시스템 스타트-업 정보를 저장함 - 사이에서 메모리 트랜잭션을 수행하는 방법에 있어서,
    상기 메모리 트랜잭션의 개시를 나타내기 위해 상기 제어 라인 상에 제어 신호를 표명(assert)하는 단계;
    상기 메모리 트랜잭션이 상기 호스트가 일단의(unit) 데이터를 상기 메모리 장치로 기록하는 것을 포함한다는 것을 나타내기 위해 상기 다수의 범용 신호 라인 상에서 상기 호스트로부터 상기 메모리 장치로 제1 제어 정보를 기록하는 단계;
    상기 일단의 데이터가 기록될 상기 메모리 장치 내의 어드레스를 나타내기 위해 상기 다수의 범용 신호 라인 상에서 상기 호스트로부터 상기 메모리 장치로 제2 제어 정보를 기록하는 단계;
    전송될 상기 일단의 데이터 내의 바이트의 수를 나타내기 위해 상기 다수의 범용 신호 라인 상에서 상기 호스트로부터 상기 메모리 장치로 제3 제어 정보를 기록하는 단계; 및
    상기 범용 신호 라인을 통해 상기 메모리 장치로 상기 일단의 데이터를 기록하는 단계
    를 포함하는 메모리 트랜잭션 수행 방법.
  18. 제 17 항에 있어서,
    상기 버스의 제어를 상기 메모리 장치로 전환하는 단계;
    상기 메모리 장치가 상기 버스의 제어를 상기 호스트로 전환하기 전의 시간 길이를 나타내기 위해 상기 메모리 장치로부터 상기 버스로 제4 제어 정보를 제공하는 단계; 및
    상기 버스의 제어를 상기 호스트로 전환하는 단계
    를 더 포함하는 메모리 트랜잭션 수행 방법.
  19. 제 17 항에 있어서,
    상기 메모리 트랜잭션에서의 에러를 나타내기 위해 상기 다수의 범용 신호 라인 상에서 상기 메모리 장치로부터 상기 호스트로 제3 제어 정보를 기록하는 단계
    를 더 포함하는 메모리 트랜잭션 수행 방법.
  20. 다수의 범용 신호 라인 및 하나의 독립적인 제어 라인을 포함하는 버스를 통해 호스트와 메모리 장치 - 상기 메모리 장치는 시스템 스타트-업 정보를 저장함 - 사이에서 메모리 트랜잭션을 수행하는 방법에 있어서,
    상기 메모리 트랜잭션의 개시를 나타내기 위해 상기 제어 라인 상에 제어 신호를 표명(assert)하는 단계;
    상기 메모리 트랜잭션이 상기 호스트가 상기 메모리 장치로부터 일단의(unit) 데이터를 판독하는 것을 포함한다는 것을 나타내기 위해 상기 다수의 범용 신호 라인 상에서 상기 호스트로부터 상기 메모리 장치로 제1 제어 정보를 기록하는 단계;
    상기 일단의 데이터가 판독될 상기 메모리 장치 내의 어드레스를 나타내기 위해 상기 다수의 범용 신호 라인 상에서 상기 호스트로부터 상기 메모리 장치로 제2 제어 정보를 기록하는 단계;
    판독될 상기 일단의 데이터 내의 바이트의 수를 나타내기 위해 상기 다수의 범용 신호 라인 상에서 상기 호스트로부터 상기 메모리 장치로 제3 제어 정보를 기록하는 단계; 및
    상기 버스의 제어를 상기 메모리 장치로 전환하는 단계;
    상기 일단의 데이터가 상기 메모리 장치로부터 판독될 준비가 될 때까지 상기 다수의 범용 신호 라인 상에서 상기 메모리 장치로부터 상기 호스트로 제4 제어 정보를 기록하는 단계; 및
    상기 범용 신호 라인을 통해 상기 메모리 장치로부터 상기 일단의 데이터를 판독하는 단계
    를 포함하는 메모리 트랜잭션 수행 방법.
  21. 제 20 항에 있어서,
    상기 제4 제어 정보는 상기 메모리 트랜잭션에서의 에러의 표시를 포함하는
    메모리 트랜잭션 수행 방법.
  22. 버스;
    상기 버스에 연결된 주변장치;
    상기 버스에 연결된 호스트; 및
    상기 호스트와 상기 주변장치 사이에서의 트랜잭션의 개시를 나타내는 제어 신호를 전달하기 위한 독립적인 제어 신호 라인
    을 포함하는 시스템.
  23. 제 22 항에 있어서,
    상기 독립적인 제어 신호 라인 상의 제어 신호는 상기 트랜잭션의 중단을 나타내는
    시스템.
  24. 제 22 항에 있어서,
    상기 버스는 상기 호스트와 상기 주변장치 사이에서 시다중화된 어드레스, 데이터 및 제어 정보를 전달하기 위해 다수의 범용 신호 라인을 포함하는
    시스템.
  25. 제 22 항에 있어서,
    상기 주변장치는 메모리 장치를 포함하는
    시스템.
  26. 시다중화된 어드레스, 데이터 및 제어 정보를 전달하기 위한 다수의 범용 신호 라인을 포함하는 버스;
    상기 버스에 연결된 주변장치; 및
    상기 버스에 연결된 호스트
    를 포함하고,
    상기 주변장치는 상기 버스를 통해 상기 호스트로 대기 상태 정보를 통신하는
    시스템.
  27. 제 26 항에 있어서,
    상기 주변장치는 상기 버스를 통해 상기 호스트로 에러 메시지를 통신하는
    시스템.
KR10-2000-7003137A 1997-09-24 1998-07-07 핀-총수가 적은 버스 상에서의 메모리 트랜잭션 KR100388735B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/936,848 1997-09-24
US08/936,848 US5991841A (en) 1997-09-24 1997-09-24 Memory transactions on a low pin count bus

Publications (2)

Publication Number Publication Date
KR20010024259A true KR20010024259A (ko) 2001-03-26
KR100388735B1 KR100388735B1 (ko) 2003-06-25

Family

ID=25469156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7003137A KR100388735B1 (ko) 1997-09-24 1998-07-07 핀-총수가 적은 버스 상에서의 메모리 트랜잭션

Country Status (10)

Country Link
US (1) US5991841A (ko)
JP (1) JP4279451B2 (ko)
KR (1) KR100388735B1 (ko)
CN (1) CN100378690C (ko)
AU (1) AU8475798A (ko)
DE (1) DE19882696B4 (ko)
GB (1) GB2345170B (ko)
HK (1) HK1026489A1 (ko)
TW (1) TW469373B (ko)
WO (1) WO1999015971A1 (ko)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6761657B2 (en) * 1996-12-19 2004-07-13 Cloyes Gear And Products, Inc. Roller chain sprocket with added chordal pitch reduction
US6157970A (en) * 1997-09-24 2000-12-05 Intel Corporation Direct memory access system using time-multiplexing for transferring address, data, and control and a separate control line for serially transmitting encoded DMA channel number
US6044412A (en) * 1997-10-21 2000-03-28 Vlsi Technology, Inc. Integrated circuit pin sharing method and apparatus for diverse memory devices by multiplexing subsets of pins in accordance with operation modes
TW409204B (en) * 1998-08-15 2000-10-21 Winbond Electronics Corp Expansion interface conversion device and conversion method therefor
US6654349B1 (en) * 1999-08-17 2003-11-25 Advanced Micro Devices, Inc. Real time automated checking mechanism for a bus protocol on an integrated bus system
TW446881B (en) * 1999-11-10 2001-07-21 Sunplus Technology Co Ltd Expandable time sharing bus structure
US7284064B1 (en) 2000-03-21 2007-10-16 Intel Corporation Method and apparatus to determine broadcast content and scheduling in a broadcast system
US7167895B1 (en) 2000-03-22 2007-01-23 Intel Corporation Signaling method and apparatus to provide content on demand in a broadcast system
US7275254B1 (en) 2000-11-21 2007-09-25 Intel Corporation Method and apparatus for determining and displaying the service level of a digital television broadcast signal
US20020144037A1 (en) * 2001-03-29 2002-10-03 Bennett Joseph A. Data fetching mechanism and method for fetching data
US6792494B2 (en) * 2001-03-30 2004-09-14 Intel Corporation Apparatus and method for parallel and serial PCI hot plug signals
US7185352B2 (en) * 2001-05-11 2007-02-27 Intel Corporation Method and apparatus for combining broadcast schedules and content on a digital broadcast-enabled client platform
JP2002366506A (ja) * 2001-06-08 2002-12-20 Hitachi Ltd データ処理システム、半導体集積回路装置及び信号授受方法
US7055165B2 (en) * 2001-06-15 2006-05-30 Intel Corporation Method and apparatus for periodically delivering an optimal batch broadcast schedule based on distributed client feedback
US20020194585A1 (en) * 2001-06-15 2002-12-19 Connelly Jay H. Methods and apparatus for providing ranking feedback for content in a broadcast system
US7020893B2 (en) * 2001-06-15 2006-03-28 Intel Corporation Method and apparatus for continuously and opportunistically driving an optimal broadcast schedule based on most recent client demand feedback from a distributed set of broadcast clients
US20020193066A1 (en) * 2001-06-15 2002-12-19 Connelly Jay H. Methods and apparatus for providing rating feedback for content in a broadcast system
US7328455B2 (en) 2001-06-28 2008-02-05 Intel Corporation Apparatus and method for enabling secure content decryption within a set-top box
US7363569B2 (en) 2001-06-29 2008-04-22 Intel Corporation Correcting for data losses with feedback and response
US20030046683A1 (en) * 2001-08-28 2003-03-06 Jutzi Curtis E. Server-side preference prediction based on customer billing information to generate a broadcast schedule
US7047456B2 (en) * 2001-08-28 2006-05-16 Intel Corporation Error correction for regional and dynamic factors in communications
US7231653B2 (en) 2001-09-24 2007-06-12 Intel Corporation Method for delivering transport stream data
US8943540B2 (en) 2001-09-28 2015-01-27 Intel Corporation Method and apparatus to provide a personalized channel
TW552495B (en) * 2001-10-24 2003-09-11 Via Tech Inc LPC interface chip set to adjust the data-access timing automatically
EP1324346B1 (en) * 2001-12-20 2008-02-27 STMicroelectronics S.r.l. Memory device
US20030135553A1 (en) * 2002-01-11 2003-07-17 Ramesh Pendakur Content-based caching and routing of content using subscription information from downstream nodes
US6925510B2 (en) * 2002-02-22 2005-08-02 Winbond Electronics, Corp. Peripheral or memory device having a combined ISA bus and LPC bus
TW589534B (en) * 2002-07-05 2004-06-01 Via Tech Inc Method and device to reduce the LDRQ input pin count of LPC control host
US7103701B2 (en) * 2002-09-23 2006-09-05 Hewlett-Packard Development Company, L.P. Memory bus interface
TW588282B (en) * 2002-10-22 2004-05-21 Via Tech Inc System capable of managing peripheral input/output control device
ITVA20030022A1 (it) * 2003-07-07 2005-01-08 St Microelectronics Srl Metodo di generazione di un segnale di abilitazione in una memoria multi-protocollo e relativo dispositivo di memoria.
US20050044297A1 (en) * 2003-08-18 2005-02-24 Eugene Feng Memory device operable with a plurality of protocols
US7249213B2 (en) * 2003-08-18 2007-07-24 Silicon Storage Technology, Inc. Memory device operable with a plurality of protocols with configuration data stored in non-volatile storage elements
JP2005078493A (ja) * 2003-09-02 2005-03-24 Renesas Technology Corp マイクロコンピュータ
US6944064B2 (en) * 2003-12-22 2005-09-13 Silicon Storage Technology, Inc. Memory unit having programmable device ID
US7209998B2 (en) * 2004-02-04 2007-04-24 Qualcomm Incorporated Scalable bus structure
US7069371B2 (en) * 2004-03-10 2006-06-27 Silicon Storage Technology, Inc. Motherboard having a non-volatile memory which is reprogrammable through a video display port and a non-volatile memory switchable between two communication protocols
US7546402B2 (en) * 2005-03-24 2009-06-09 Sunplus Technology Co., Ltd. Optical storage system comprising interface for transferring data
US8239603B2 (en) * 2006-05-03 2012-08-07 Standard Microsystems Corporation Serialized secondary bus architecture
US7660177B2 (en) * 2007-12-21 2010-02-09 Silicon Storage Technology, Inc. Non-volatile memory device having high speed serial interface
US8607028B2 (en) 2008-12-30 2013-12-10 Micron Technology, Inc. Enhanced addressability for serial non-volatile memory
CN101477499A (zh) * 2008-12-31 2009-07-08 北京中星微电子有限公司 总线、通过总线进行存储器访问的方法、接口模块、芯片
CN101533381B (zh) * 2009-03-27 2015-11-25 北京中星微电子有限公司 一种类ahb总线及其实现方法
US8255725B2 (en) * 2009-04-28 2012-08-28 Kabushiki Kaisha Toshiba Information processing apparatus and power-saving control method
WO2011106049A1 (en) * 2010-02-23 2011-09-01 Rambus Inc. Time multiplexing at different rates to access different memory types
JP4846862B2 (ja) * 2010-05-12 2011-12-28 株式会社東芝 情報処理装置および省電力制御方法
US10380060B2 (en) * 2016-06-17 2019-08-13 Etron Technology, Inc. Low-pincount high-bandwidth memory and memory bus
CN107844449B (zh) * 2016-09-20 2021-02-09 深圳中电长城信息安全系统有限公司 飞腾平台处理通信协议的方法和系统
CN107844450B (zh) * 2016-09-21 2020-12-11 深圳中电长城信息安全系统有限公司 Lpc接口通讯协议的转换方法和系统
US10713199B2 (en) * 2017-06-27 2020-07-14 Qualcomm Incorporated High bandwidth soundwire master with multiple primary data lanes
CN107608927B (zh) * 2017-09-22 2020-06-26 苏州浪潮智能科技有限公司 一种支持全功能的lpc总线主机端口的设计方法

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2044650B1 (ko) * 1969-05-16 1974-06-14 Ibm France
US3924241A (en) * 1971-03-15 1975-12-02 Burroughs Corp Memory cycle initiation in response to the presence of the memory address
US3821715A (en) * 1973-01-22 1974-06-28 Intel Corp Memory system for a multi chip digital computer
DE2364408C3 (de) * 1973-12-22 1979-06-07 Olympia Werke Ag, 2940 Wilhelmshaven Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers
US3882470A (en) * 1974-02-04 1975-05-06 Honeywell Inf Systems Multiple register variably addressable semiconductor mass memory
US4263650B1 (en) * 1974-10-30 1994-11-29 Motorola Inc Digital data processing system with interface adaptor having programmable monitorable control register therein
US4007452A (en) * 1975-07-28 1977-02-08 Intel Corporation Wafer scale integration system
US4099231A (en) * 1975-10-01 1978-07-04 Digital Equipment Corporation Memory control system for transferring selected words in a multiple memory word exchange during one memory cycle
US4333142A (en) * 1977-07-22 1982-06-01 Chesley Gilman D Self-configurable computer and memory system
US4191996A (en) * 1977-07-22 1980-03-04 Chesley Gilman D Self-configurable computer and memory system
US4375665A (en) * 1978-04-24 1983-03-01 Texas Instruments Incorporated Eight bit standard connector bus for sixteen bit microcomputer using mirrored memory boards
US4315308A (en) * 1978-12-21 1982-02-09 Intel Corporation Interface between a microprocessor chip and peripheral subsystems
US4286321A (en) * 1979-06-18 1981-08-25 International Business Machines Corporation Common bus communication system in which the width of the address field is greater than the number of lines on the bus
US4315310A (en) * 1979-09-28 1982-02-09 Intel Corporation Input/output data processing system
US4443864A (en) * 1979-10-09 1984-04-17 Texas Instruments Incorporated Memory system for microprocessor with multiplexed address/data bus
US4306298A (en) * 1979-10-09 1981-12-15 Texas Instruments Incorporated Memory system for microprocessor with multiplexed address/data bus
US4373183A (en) * 1980-08-20 1983-02-08 Ibm Corporation Bus interface units sharing a common bus using distributed control for allocation of the bus
US4630193A (en) * 1981-04-27 1986-12-16 Textron, Inc. Time multiplexed processor bus
US4811202A (en) * 1981-10-01 1989-03-07 Texas Instruments Incorporated Quadruply extended time multiplexed information bus for reducing the `pin out` configuration of a semiconductor chip package
US4481625A (en) * 1981-10-21 1984-11-06 Elxsi High speed data bus system
US4480307A (en) * 1982-01-04 1984-10-30 Intel Corporation Interface for use between a memory and components of a module switching apparatus
US4488218A (en) * 1982-01-07 1984-12-11 At&T Bell Laboratories Dynamic priority queue occupancy scheme for access to a demand-shared bus
US4470114A (en) * 1982-03-01 1984-09-04 Burroughs Corporation High speed interconnection network for a cluster of processors
US4449207A (en) * 1982-04-29 1984-05-15 Intel Corporation Byte-wide dynamic RAM with multiplexed internal buses
US4513370A (en) * 1982-07-19 1985-04-23 Amdahl Corporation Data transfer control system and method for a plurality of linked stations
US4660141A (en) * 1983-12-06 1987-04-21 Tri Sigma Corporation Self configuring computer network with automatic bus exchange of module identification numbers and processor assigned module numbers
US4766536A (en) * 1984-04-19 1988-08-23 Rational Computer bus apparatus with distributed arbitration
US4675813A (en) * 1985-01-03 1987-06-23 Northern Telecom Limited Program assignable I/O addresses for a computer
US5038320A (en) * 1987-03-13 1991-08-06 International Business Machines Corp. Computer system with automatic initialization of pluggable option cards
US4920486A (en) * 1987-11-23 1990-04-24 Digital Equipment Corporation Distributed arbitration apparatus and method for shared bus
US5159679A (en) * 1988-09-09 1992-10-27 Compaq Computer Corporation Computer system with high speed data transfer capabilities
US5129069A (en) * 1989-01-24 1992-07-07 Zenith Data Systems Corporation Method and apparatus for automatic memory configuration by a computer
GB9012949D0 (en) * 1989-08-25 1990-08-01 Ibm An apparatus and method for loading bios from a diskette in a personal computer system
DE69031936T2 (de) * 1989-11-17 1998-06-10 Digital Equipment Corp System und Verfahren zur Speicherung von Firmware in einem adressunabhängigen Format
US5175831A (en) * 1989-12-05 1992-12-29 Zilog, Inc. System register initialization technique employing a non-volatile/read only memory
JPH03210649A (ja) * 1990-01-12 1991-09-13 Fujitsu Ltd マイクロコンピュータおよびそのバスサイクル制御方法
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5367639A (en) * 1991-12-30 1994-11-22 Sun Microsystems, Inc. Method and apparatus for dynamic chaining of DMA operations without incurring race conditions
US5471674A (en) * 1992-02-07 1995-11-28 Dell Usa, L.P. Computer system with plug-in override of system ROM
US5579530A (en) * 1992-06-11 1996-11-26 Intel Corporation Method and apparatus for dynamically allocating access time to a resource shared between a peripheral bus and a host bus by dynamically controlling the size of burst data transfers on the peripheral bus
US5434997A (en) * 1992-10-02 1995-07-18 Compaq Computer Corp. Method and apparatus for testing and debugging a tightly coupled mirrored processing system
US5793990A (en) * 1993-06-11 1998-08-11 Vlsi Technology, Inc. Multiplex address/data bus with multiplex system controller and method therefor
US5561821A (en) * 1993-10-29 1996-10-01 Advanced Micro Devices System for performing I/O access and memory access by driving address of DMA configuration registers and memory address stored therein respectively on local bus
US5475854A (en) * 1994-01-28 1995-12-12 Vlsi Technology, Inc. Serial bus I/O system and method for serializing interrupt requests and DMA requests in a computer system
US5596756A (en) * 1994-07-13 1997-01-21 Advanced Micro Devices, Inc. Sub-bus activity detection technique for power management within a computer system
US5619728A (en) * 1994-10-20 1997-04-08 Dell Usa, L.P. Decoupled DMA transfer list storage technique for a peripheral resource controller
US5664197A (en) * 1995-04-21 1997-09-02 Intel Corporation Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller
US5768622A (en) * 1995-08-18 1998-06-16 Dell U.S.A., L.P. System for preemptive bus master termination by determining termination data for each target device and periodically terminating burst transfer to device according to termination data
US6393492B1 (en) * 1995-11-03 2002-05-21 Texas Instruments Incorporated Method and arrangement for operating a mass memory storage peripheral computer device connected to a host computer
US5774680A (en) * 1995-12-11 1998-06-30 Compaq Computer Corporation Interfacing direct memory access devices to a non-ISA bus

Also Published As

Publication number Publication date
JP4279451B2 (ja) 2009-06-17
WO1999015971A1 (en) 1999-04-01
CN1279787A (zh) 2001-01-10
AU8475798A (en) 1999-04-12
US5991841A (en) 1999-11-23
CN100378690C (zh) 2008-04-02
HK1026489A1 (en) 2000-12-15
TW469373B (en) 2001-12-21
GB0007301D0 (en) 2000-05-17
KR100388735B1 (ko) 2003-06-25
DE19882696B4 (de) 2007-05-24
DE19882696T1 (de) 2000-10-26
GB2345170B (en) 2002-12-18
JP2001517834A (ja) 2001-10-09
GB2345170A (en) 2000-06-28

Similar Documents

Publication Publication Date Title
KR100388735B1 (ko) 핀-총수가 적은 버스 상에서의 메모리 트랜잭션
US6131127A (en) I/O transactions on a low pin count bus
US6119189A (en) Bus master transactions on a low pin count bus
KR100352224B1 (ko) 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션
US6493803B1 (en) Direct memory access controller with channel width configurability support
US6393576B1 (en) Apparatus and method for communication between integrated circuit connected to each other by a single line
JP2573566B2 (ja) バスコンバータ
US5592682A (en) Interface circuit for transferring data between host device and mass storage device in response to designated address in host memory space assigned as data port
US6845409B1 (en) Data exchange methods for a switch which selectively forms a communication channel between a processing unit and multiple devices
US4300193A (en) Data processing system having data multiplex control apparatus
US5748945A (en) Method for slave DMA emulation on a computer system bus
US6070204A (en) Method and apparatus for using universal serial bus keyboard to control DOS operations
US4293908A (en) Data processing system having direct memory access bus cycle
JPH04363746A (ja) Dma機能を有するマイクロコンピュータシステム
US3961312A (en) Cycle interleaving during burst mode operation
EP0088618B1 (en) Byte-oriented line adapter system
CN112559402B (zh) 一种基于fpga的pci从接口控制电路及fpga
US5941976A (en) Interrupt request deassertion interlock mechanism
US4383295A (en) Data processing system having data entry backspace character apparatus
US6301631B1 (en) Memory mapping method for eliminating dual address cycles in a peripheral component interconnect environment
US5537664A (en) Methods and apparatus for generating I/O recovery delays in a computer system
EP0382342B1 (en) Computer system DMA transfer
US7107373B2 (en) Method of hot switching data transfer rate on bus
JPH0222748A (ja) 不揮発生メモリ制御回路
KR910008420B1 (ko) 중앙처리장치와 주변입출력장치와의 인터페이스 회로

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20130603

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140603

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20150529

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 16

EXPY Expiration of term