KR100352224B1 - 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션 - Google Patents

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

Info

Publication number
KR100352224B1
KR100352224B1 KR1020007003138A KR20007003138A KR100352224B1 KR 100352224 B1 KR100352224 B1 KR 100352224B1 KR 1020007003138 A KR1020007003138 A KR 1020007003138A KR 20007003138 A KR20007003138 A KR 20007003138A KR 100352224 B1 KR100352224 B1 KR 100352224B1
Authority
KR
South Korea
Prior art keywords
dma
host
bus
transaction
peripheral controller
Prior art date
Application number
KR1020007003138A
Other languages
English (en)
Other versions
KR20010024260A (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 KR20010024260A publication Critical patent/KR20010024260A/ko
Application granted granted Critical
Publication of KR100352224B1 publication Critical patent/KR100352224B1/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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Abstract

본 발명은 메모리 장치(108) 및 주변장치 제어기 장치(120)에 연결된 호스트(102)를 구비한 시스템에 관한 것으로서, 호스트(102)는 시다중화된(time-multiplexed) 어드레스, 데이터 및 제어 정보를 전달하기 위해 다수의 범용 신호 라인을 포함하는 버스를 통해 주변장치 제어기 장치(120)에 연결된다. 이 주변장치 제어기 장치(120)는 호스트(102) 및 버스(124)를 통해 메모리 장치와 직접 메모리 억세스(DMA) 트랜잭션을 수행한다.

Description

핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션{DIRECT MEMORY ACCESS(DMA) 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은 직접 메모리 억세스(DMA) 요구를 구현하기 위한 상태 머신 도표의 일실시예를 도시한 도면.
도4는 DMA 요구 트랜잭션의 일실시예를 도시한 도면.
도5는 DMA 판독 및 기록 트랜잭션을 구현하기 위한 상태 머신의 일실시예를 도시한 도면.
도6은 DMA 기록 트랜잭션의 일실시예를 도시한 도면.
도7은 DMA 판독 트랜잭션의 일실시예를 도시한 도면.
도8은 저전력 동작 모드의 타이밍도의 일실시예를 도시한 도면.
발명의 요약
여기서는 메모리 장치 및 주변장치 제어기 장치에 연결된 호스트를 구비한 시스템에 관해 설명한다. 이 호스트는 시다중화된(time-multiplexed) 어드레스, 데이터 및 제어 정보를 전달하기 위해 다수의 범용 신호 라인을 포함하는 버스를 통해 주변장치 제어기 장치에 연결된다. 이 주변장치 제어기 장치는 호스트 및 버스를 통해 메모리 장치와 직접 메모리 억세스(DMA) 트랜잭션을 수행한다.
본 발명의 다른 특징 및 장점은 첨부도면 및 다음의 상세한 설명으로부터 명백해질 것이다.
이제, 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 버스의 다른 의도된 장점은 메모리 및/또는 I/O 어드레스 공간이 통신 버스의 어드레스 라인들의 특정 수에 제한되지 않으며, 오히려 LPC 버스는 어드레스 공간을 어드레싱하는데 요구되는 만큼의 어드레스 신호들을 직렬로 전달할 수 있다. 그러므로, 메모리 또는 I/O 어드레스 공간의 종래의 에일리어싱을 피할 수 있다.
LPC 버스의 다른 의도된 장점은 칩-셋트 또는 프로세서를 주변장치와 인터페이스하기 위해 사용될 수 있는 LPC 인터페이스 로직 및/또는 소프트웨어가 ISA 버스 또는 X-버스 표준을 사용하는 기존의 컴퓨터 시스템과 호환성 있는 소프트웨어가 될 수 있다는 것이다. 즉, ISA 버스 또는 X-버스 시스템에 대비하여 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)는 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#를 포함할 수 있다. 도8에 도시된 바와 같이, 호스트(102)는 주변장치(104-108)가 저전력 모드로 들어가도록 하기 위해 시간 t0에서 비동기로 LPCPD#를 표명(예, 로우)할수 있다. 호스트(102)에 의해 표명된 LPCPD#를 인식하면, 주변장치(104-108)는 LPC 트랜잭션을 중지하고, LDRQ# 신호를 3상태로 구동시키거나 비활성 상태로 구동시킨다. 또한, 주변장치(104-108) 및/또는 호스트(102)는 LAD[3:0]를 3상태로 구동시키거나 기지의 상태로 구동시킬 수 있다. 호스트(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은 하나 또는 그 이상의 DMA 요구 제어 라인 LDRQ0# 또는 LDRQ1# 상의 DMA 요구를 수행하기 위한 상태도의 일실시예를 도시하고 있다. 도3의 상태도는 호스트(102)의 LPC 인터페이스(118) 내의 상태 머신 또는 제어 로직(예, 도2의 DMA LPC 제어 로직 204)이나 또는 I/O 장치(104,106)의 LPC 인터페이스(112,114) 내의 상태 머신 또는 제어 로직에 의해 구현될 수 있다. 대안의 실시예에서, 상태도는 범용 버스와 무관한 제어 라인을 통해 DMA 채널을 요구하는 I/O 장치와 호스트 장치를 구비한 시스템 내의 상태 머신 또는 제어 로직에 의해 구현될 수 있다.
전술한 바와 같이, I/O 장치(104,106)는 독립된 제어 라인 상에서 각각 DMA 요구 신호 LDRQ0# 및 LDRQ1#를 호스트(102)의 LPC 인터페이스(118)로 제공할 수 있다. LDRQ0# 및 LDRQ1#은 인코드된 DMA 또는 버스 마스터 채널 요구를 호스트(102)로 전송하기 위해 이용될 수 있다. 각각의 I/O 장치는 주변장치 I/O 제어기(120,122)가 하나의 DMA 또는 버스 마스터 요구 라인 LDRQ0#을 공유할 수 있도록 하나의 유일한 전용 LDRQ# 신호를 가질 수 있다.
도3의 동작은 도4의 예시적인 타이밍도를 참조하여 설명한다. 상태(302)에서, LPC 인터페이스(118)는 LDRQ0# 및 LDRQ1#이 표명되지 않을 때(예, 하이) 유휴 DMA 상태(idle DMA state)에 있게 된다. 예를 들어, I/O 장치(104)가 호스트(102)와의 DMA 트랜잭션을 요구하기 위해 LDRQ0#을 표명(예, 로우)하면, 프로세스는 사이클 T0 동안에 개시 상태(304)로 전이한다. 호스트(102)는 LDRQ0#가 표명되었다는 것을 인식하고, I/O 장치(104)로부터 요구된 DMA 채널 넘버를 수신할 준비를 한다.
다음에, 프로세스는 상태(306)로 전이하고, 요구된 채널 넘버는 클록 사이클 T1, T2 및 T3 동안에 LDRQ0# 상에서 I/O 장치(104)로부터 호스트(102)로 직렬로 동기적으로 전송될 수 있다. 2진 포맷을 이용하여 최대 8개의 상이한 DMA 채널을 인코드하기 위해 3개의 클록 사이클이 이용될 수 있다. 대안의 실시예에서, 다수의 DMA 채널을 인코드하기 위해 상이한 수의 직렬 비트가 전송될 수 있다. 또다른 실시예에서는, 2진 인코딩 방식 이외의 인코딩 방식이 사용될 수도 있다. 채널 넘버는 또한, 최상위 비트가 먼저 전송되거나, 최하위 비트가 먼저 전송되거나, 또는 호스트(102)가 예상하고 있는 어떤 다른 순서로 직렬로 전송될 수 있다.
채널 넘버가 전송된 이후에, 프로세스는 상태(308)로 전이하고, I/O 장치(104)는 클록 사이클 T4 동안에 LDRQ0# 상에서 호스트(102)로 액티브 비트(ACT) 또는 신호를 전송할 수 있다. ACT 비트는 현재의 DMA 요구가 활성 요구인지 또는 비활성 요구인지 표시할 수 있다. 예를 들어, 만일 ACT 비트가 활성 상태이면(예, 하이), 호스트(102)의 DMA 제어기는 메모리(110)에 대한 억세스를 중재하기 위해 시도할 수 있다. 활성 상태의 ACT 비트가 호스트(102)에 의해 수신된 이후에, I/O 장치(104)는 종료 상태(310)에서 하나 또는 그 이상의 클록 사이클 T5 동안에 LDRQ0#을 소정의 상태(예, 하이 또는 로우)로 구동시킬 수 있다. 다음에, 사이클 T6 또는 그후 소정의 시간에 시작되는 DMA 트랜잭션이 발생할 수 있다. 그러나, 만일 ACT 비트가 비활성 상태(예, 로우)이면, 호스트(102)는 이 DMA 요구를 클록 사이클 T1-T3에서 표시된 채널 넘버에 대한 이전의 DMA 요구의 포기(abandon)를 시도하는 것으로 해석할 수 있다. 즉, ACT가 비활성 상태이면, I/O 장치(104)는호스트(102)가 이전의 DMA 요구를 포기하도록 요구할 수 있다. 다음에, 프로세스는 다시 유휴 상태(302)로 전이할 수 있다.
LPC 인터페이스(112,114,116,118)는 또한, 복수의 파이프라인 방식의 직렬 DMA 요구를 지원할 수 있다. 예를 들어, I/O 장치(104)의 I/O 제어기(120)를 위한 LDRQ0# 상의 제1 채널에 대해 제1 DMA 요구가 처리될 수 있다. 계속해서, 제1 채널을 통한 실제적인 DMA 트랜잭션 이전, 이후 또는 그 동안에, I/O 제어기(122)를 위한 LDRQ0# 상의 제2 채널에 대해 제2 DMA 요구가 만들어져 처리될 수 있다. 일실시예에서, 호스트(102)는 제1 DMA 트랜잭션 직후에 제2 DMA 트랜잭션을 수행한다. 파이프라이닝이 없으면, 호스트(102)가 LDRQ0# 또는 LDRQ1# 상의 제2 DMA 요구를 처리하는 동안 DMA 트랜잭션들 사이에 지연이 존재할 수 있다.
DMA 요구가 이루어진 이후에, 호스트(102)는 호스트(102)를 통해 I/O 장치(104-106)와 메모리(110) 사이에서 데이터 파일, 드라이버 정보, 애플리케이션 코드 등이 통신될 수 있도록 메모리(110)에 대한 억세스를 얻기 위해 중재할 수 있다. 일단 호스트(102)(또는 도2의 DMA 제어기 212)에 의해 메모리(110)에 대한 억세스가 이루어지면, LPC 버스(124)를 통해 DMA 기록 또는 DMA 판독 트랜잭션이 발생할 수 있다. 도5는 LPC 버스(124)를 통해 발생할 수 있는 DMA 기록 및 판독 트랜잭션의 상태도이다. 도5의 상태도는 각각의 LPC 인터페이스(112,114,116,118)에서 구현될 수 있다. 예를 들어, 도5의 상태도는 도2의 DMA LPC 제어 로직(204)에서 구현될 수 있다.
이제, I/O 장치(104)의 LPC 인터페이스(112), 호스트(102)의 LPC인터페이스(118) 및 메모리(110) 사이의 DMA 기록 트랜잭션에 관해 도6의 예시적인 타이밍도를 참조하여 설명한다. 이러한 DMA 기록 트랜잭션은 LPC 인터페이스(118)가 I/O 장치(104)로부터 데이터를 판독하고, 이 데이터를 메모리(110)로 기록하는 것을 포함할 수 있다.
프로세스는 상태(502)에서 시작되며, LPC 인터페이스(118,112)는 LFRAME#이 표명되지 않을 때(예, 하이) 유휴 상태에 있게 된다. 호스트(102)가 I/O 장치(104)에 의해 이전에 요구되었던 채널에 대해 메모리(110)에 대한 억세스를 획득하면, 사이클 T0 동안에 호스트(102)에 의해 LFRAME#이 표명될 때(예, 로우) 상태(504)에서 DMA 트랜잭션이 시작된다. 호스트(102)는 사이클 T0 동안에 LAD[3:0] 상에 LPC 트랜잭션의 개시를 나타내는 개시 제어 정보를 구동시킨다. 예를 들어, 이러한 개시 제어 정보는 표1에 도시된 바와 같이 0000이 될 수 있다.
다음에, 프로세스는 상태(506)로 전이하고, 호스트(102)는 사이클 T1 동안에 LAD[3:0] 상에 사이클 형태 및 방향 제어 정보를 구동시킨다. 이러한 사이클 형태 및 방향 제어 정보는 LPC 트랜잭션이 DMA 기록 트랜잭션이라는 것을 주변장치(104)에 표시해준다. 예를 들어, 사이클 형태 및 방향 제어 정보는 표2에 도시된 바와 같이 LAD[3:1] 상의 101이 될 수 있다.
다음에, 프로세스는 상태(508)로 전이하고, 호스트(102)는 클록 사이클 T2 동안에 LAD[3:0] 상에 채널 넘버 제어 정보를 구동시킨다. 채널 넘버는 이 프로세스 동안에 호스트(102)에 의해 허가되는 DMA 채널 넘버를 나타낸다. 채널 넘버는 LDRQ0#을 통해 I/O 장치(104)에 의한 이전의 DMA 요구에 포함된 채널 넘버와 부합될 수 있다. 채널 넘버는 2진 포맷 또는 다른 포맷으로 인코딩될 수 있다. 다음의 표3에는 2진 인코딩의 일실시예가 도시되어 있다.
또한, 채널 넘버가 LAD[2:0] 상에 구동되는 동일한 클록 사이클 T2 동안에 LAD[3] 상에 호스트(102)에 단말 총수 제어 정보(terminal count control information)가 전송될 수 있다. 단말 총수(TC) 제어 비트는 DMA 트랜잭션의 크기(후술됨)에 근거하여 마지막 전송 바이트를 나타낼 수 있다. 예를 들어, 만일 DMA 트랜잭션의 크기가 8 비트이고 TC 비트가 셋트되어(예, 하이) 있으면, 이것은 DMA 기록 트랜잭션에 대한 마지막 데이터 바이트가 될 수 있다. 마찬가지로, 만일 TC 비트가 16 비트 DMA 기록 트랜잭션에 대해 셋트되어 있으면, TC 비트 다음에 오는 제2 비트가 DMA 트랜잭션에 대한 마지막 바이트가 될 수 있다.
다음에, 프로세스는 상태(510)로 전이하고, 호스트(102)는 클록 사이클 T3 동안에 LAD[1:0] 상에 크기 제어 정보를 구동시킨다. 크기 제어 정보는호스트(102)를 통해 I/O 장치(108)로부터 판독되고 메모리 장치(110)로 기록될 I/O 데이터의 바이트 수를 나타낸다. 표4는 LAD[3:0]를 통해 후속으로 전송될 LAD[1:0] 상의 바이트 수를 인코딩하는 일실시예를 제공한다. 동일한 또는 다른 LAD 신호 라인에 다른 인코딩이 사용될 수도 있다.
다른 실시예에서, 크기 제어 정보는 호스트(102)를 통해 I/O 장치(108)로부터 판독되고 메모리 장치(110)로 기록될 I/O 데이터의 2size의 바이트 수를 나타낼 수 있다.
DMA 채널은 가각 전용 크기를 가질 수 있다. 일실시예에서, 채널 0-3은 각각 8 비트 채널이고, 채널 5-7은 각각 16 비트 채널이 될 수 있다. 만일 전용 채널 크기가 사용되면, LPC 인터페이스(118)는 DMA 기록 트랜잭션에 허가된 채널에 대한 채널 크기에 부합되는 크기 제어 정보를 전송할 수 있다. 대안의 실시예에서, 보다 큰 크기의 데이터가 보다 작은 크기의 채널을 통해 전송될 수도 있고, 보다 작은 크기의 데이터가 보다 큰 크기의 채널을 통해 전송될 수도 있다.
다음에, 프로세스는 n 클록 사이클 T4 동안에 LPC 버스(124)의 제어를 I/O 장치(104)로 전환하기 위해 반환(turn around:TAR) 상태(514)로 전이한다. LPC 버스(124)의 제어는 I/O 장치(104)로 전환되어, 그것이 LAD[3:0] 상에 그 DMA 기록 데이터를 출력하도록 할 수 있다. 일실시예에서, 이 상태(514)는 2 클록 넓이이다. 제1 클록 사이클에서 호스트(102)는 소정의 제어 정보(예, 1111)를 이용하여 LAD[3:0] 라인을 구동시킨다. 제2 클록 사이클에서 호스트(102)는 LAD[3:0] 라인을 3-상태로 구동시킬 수 있다. 이들 라인은 그 라인에 부착된 위크 풀업(weak pull-ups)을 포함할 수 있으며, 따라서 이들 라인은 논리 하이 상태에서 유지될 수 있다. 다른 실시예에서, n은 LAD[3:0]를 반환하기 위해 하나의 클록 사이클이 될 수 있으며 또는 2개 클록 사이클 보다 클 수도 있다.
다음에, 프로세스는 상태(516)로 전이되며, 여기서 호스트(102)는 I/O 장치(104)가 n 클록 사이클 T5 동안 LAD[3:0] 상에 인밴드(inband) 동기 제어 정보를 구동시키는 동안 n 클록 사이클을 대기한다. 동기 제어 정보는 데이터가 I/O 장치(104)에 의해 출력될 준비가 될 때까지 대기 상태를 부가하기 위해 사용될 수 있다. 이러한 방식으로, 상이한 속도 또는 억세스 시간을 가진 I/O 장치들이 동일한 LPC 버스에 접속될 수 있다. 종래에는, 데이터가 준비되는 때를 나타내기 위해 전용 제어 라인 상의 전용 제어 신호가 사용되었다(예, ISA 버스 또는 X-버스에서 IOCHRDY). 이와 달리, I/O 장치(104)는 추가적인 전용 핀 또는 신호 라인의 이용을 필요로 하지 않고 대기 상태를 삽입하기 위해 LAD[3:0] 상의 인밴드 시그널링(inband signaling)을 이용할 수 있다.
일실시예에서, 동기 제어 정보 필드는 2개의 페이즈(phases)를 가질 수 있다. 제1 페이즈는 DMA 기록 데이터에 억세스하는 동안에 LAD[3:0] 상에 제1 제어정보(예, 0101 또는 0110)를 구동시킨다. 제2 페이즈는 데이터가 LPC 버스(124)로 출력될 준비가 되어 있다는 것을 나타내는 제2 제어 정보(예, 0000)를 LAD[3:0] 상에 구동시킨다. 호스트(102)는 DMA 트랜잭션을 위한 DMA 기록 데이터가 후속 클록 사이클 T6에서 I/O 장치(104)에 의해 LAD[3:0] 상에 출력되는 때를 판단하기 위해 동기 제어 정보를 모니터한다. 일실시예에서, 제1 제어 정보는 I/O 장치(104)가 LAD[3:0] 상에 비교적 많은 수의 대기 상태(예, 약 20+ 대기 상태)를 구동시킬 수 있다는 것을 나타내는 인코딩(예, LAD[3:0] 상의 0110)을 가질 수 있다. 또한, 제1 제어 정보는 I/O 장치(104)가 LAD[3:0] 상에 비교적 적은 수의 대기 상태(예, 약 1-20 대기 상태)를 구동시킬 수 있다는 것을 나타내는 인코딩(예, LAD[3:0] 상의 0101)을 가질 수 있다. 일실시예(다음의 표5 참조)에서, I/O 장치(104)는 약 1-20 클록 사이클 동안 각각 LAD[3:0] 상에 0101의 동기 데이터를 구동시키고, 다음에, 요구된 데이터가 준비되어 다음 클록 사이클에서 출력될 것이라는 것을 나타내기 위해 한 사이클 동안 LAD[3:0] 상에 0000을 구동시킬 수 있다.
만일 대기 상태의 수가 크면, 호스트(102)는 상태(518)로 들어가서 트랜잭션을 중단할 것을 결정할 수 있다. 전술한 바와 같이, 호스트(102)는 하나 또는 그 이상의 클록 사이클 동안 LFRAME#을 표명하고 LAD[3:0] 상에 소정의 중단 제어 정보(예, 표1의 1111)를 구동시킴으로써 트랜잭션을 중단시킬 수 있다.
또한, 동기 제어 정보 필드는 호스트(102)로 LAD[3:0] 상의 인밴드 에러 메시지를 전송하기 위해 I/O 장치(104)에 의해 사용될 수 있다. 에러 메시지는 동기 시퀀스 동안 어느 때라도 전송될 수 있다. 예를 들어, 에러 메시지는 제1 및 제2동기 제어 정보를 가진 실시예에서 제2 제어 정보로서 전송될 수 있다. 에러 메시지는 예를 들어, 데이터가 파괴되었거나, 주변장치가 요구를 이해하지 못하거나, 무효 요구이거나, 또는 주변장치가 파워 다운 모드나 또는 데이터를 출력할 준비가 되어 있지 않거나 출력할 수 없는 다른 모드에 있는 동안에 요구가 발생했다는 것을 나타낼 수 있다. 일실시예에서, 만일 에러 메시지는 플로피 디스크 제어기가 그 FIFO를 오버런했다는 것을 나타낼 수도 있다. 이러한 에러 메시지는 DMA 기록 트랜잭션의 중단을 유발할 수 있다.
다른 실시예에서, I/O 장치(104)는 16 바이트 또는 32 바이트 전송의 홀수(odd) 바이트에 관해 LAD[3:0] 상에 0000 또는 1010의 동기 제어 정보를 구동시킴으로써 에러 상태를 표시할 수 있다.
표5는 전술한 동기 제어 정보를 위한 LAD[3:0] 상의 인코딩의 일실시예를 제공한다. 다른 인코딩도 역시 사용될 수 있다.
대안의 실시예에서, 인밴드 동기 제어 정보는 도5에 요약되고 이전에 설명된대기 상태, 에러 또는 다른 정보를 통신하기 위해 시스템 내의 범용 시다중화 버스를 통해 2개의 장치(예, 호스트 102와 I/O 장치 104) 사이에서 이용될 수 있다.
I/O 장치(104)는 LAD[3:0]를 통해 호스트(102)로 전송되는 각각의 데이터 바이트에 대해 그것이 마지막 전송 바이트인지 또는 더 이상의 바이트가 전송될 필요가 있는지 여부를 호스트(102)에 표시해주기 위해 동기 제어 정보를 이용할 수 있다. 일실시예에서, 에러가 없는 준비상태(예, 0000) 또는 에러가 있는 준비상태(예, 1010)는 사이클 T6에서 다음에 오는 데이터 바이트가 DMA 기록 트랜잭션에 대한 마지막 데이터 바이트라는 것을 호스트(102)에 표시해줄 수 있다. I/O 장치(104)는 사이클 T6 이전에 LAD[3:0] 상에 DMA Ready More 제어 정보를 구동시킴으로써 DMA 요구를 액티브 상태로 유지시킬 수 있다. 이것은 현재의 바이트 이후에도 더 이상의 데이터 바이트가 전송 요구되었다는 것을 호스트(102)에 표시해줄 수 있다. 호스트(102)는 나중에 추가적인 데이터에 억세스하기 위해 상태(502)로부터 다시 DMA 기록 트랜잭션을 시작할 수 있다.
I/O 장치(104)가 그 데이터를 LPC 버스(124)로 출력할 준비가 되면, LAD[3:0] 상에 적절한 동기 제어 정보(예, 0000)를 제공한 이후에, 프로세스는 n 클록 사이클 T6 동안 상태(520)로 전이한다. I/O 장치(104)는 2개의 클럭 사이클에 걸쳐 바이트 증분으로 LAD[3:0] 상에 데이터를 구동시킬 수 있다. 각각의 바이트에 대해, 하위 니블이 먼저 출력되거나, 상위 니블이 먼저 출력되거나, 또는 어떤 다른 포맷으로 I/O 장치(104)에 의해 데이터가 출력될 수 있다. 만일 DMA 기록 트랜잭션이 16 비트 또는 32 비트(또는 그 이상) 전송이면, 프로세스는 필요한 데이터바이트를 호스트(102)로 전송하기 위해 요구되는 만큼 상태(516,520)를 반복할 수 있다. 마찬가지로, I/O 장치(104)에 의해 출력되는 각각의 바이트 그룹도 하위 바이트가 먼저 출력되거나, 상위 바이트가 먼저 출력되거나, 또는 어떤 다른 포맷으로 출력될 수 있다. 다음에는, I/O 장치(104)로부터 판독된 데이터가 호스트(102)에 의해 메모리(110)로 기록될 수 있다. 호스트(102)는 또한, I/O 장치(104)로부터 판독된 데이터를 메모리(110)로 기록하는 추가적인 단계 없이 도5의 프로세스가 실행되는 검증 모드(verify mode)를 지원할 수 있다.
I/O 장치(104)의 LPC 인터페이스(112)에 의해 모든 데이터가 출력된 이후에, 프로세스는 반환(TAR) 상태(522)로 전이되어, n 클록 사이클 T7 동안에 LAD[3:0]의 제어가 호스트(102)로 복귀될 수 있다. 상태(514)에서와 같이, 상태(522)도 2 클록의 넓이를 가질 수 있다. 제1 클록 사이클에서, I/O 장치(104)는 소정의 제어 정보(예, 1111)를 이용하여 LAD[3:0] 라인을 구동시킨다. 제2 클록 사이클에서, I/O 장치(104)는 LAD[3:0] 라인을 3-상태로 구동시킬 수 있다. 다른 실시예에서, LAD[3:0]를 반환하기 위해 n이 하나의 클록 사이클이 되거나 또는 2 클록 사이클 보다 클 수도 있다.
이제, 도7의 예시적인 타이밍도를 참조하여 I/O 장치(104)의 LPC 인터페이스(112), 호스트(102)의 LPC 인터페이스(118) 및 메모리(110) 사이의 DMA 판독 트랜잭션에 관해 설명한다.
프로세스는 상태(502)에서 시작되며, LPC 인터페이스(118,112)는 LFRAME#이 표명되지 않을 때(예, 하이) 유휴 상태에 있게 된다. 호스트(102)가 메모리(110)에대한 억세스를 획득하고 메모리(110)로부터 메모리 데이터를 판독하면, 사이클 T0 동안에 호스트(102)에 의해 LFRAME#이 표명된다(예, 로우). 호스트(102)는 사이클 T0 동안에 LAD[3:0] 상에 LPC 트랜잭션의 개시를 나타내는 개시 제어 정보를 구동시킨다. 예를 들어, 이러한 개시 제어 정보는 표1에 도시된 바와 같이 0000이 될 수 있다. 다음에, 프로세스는 상태(506)로 전이하고, 호스트(102)는 사이클 T1 동안에 LAD[3:0] 상에 사이클 형태 및 방향 제어 정보를 구동시킨다. 이러한 사이클 형태 및 방향 제어 정보는 LPC 트랜잭션이 DMA 판독 트랜잭션이라는 것을 주변장치(104)에 표시해준다. 예를 들어, 사이클 형태 및 방향 제어 정보는 표2에 도시된 바와 같이 LAD[3:1] 상의 100이 될 수 있다.
다음에, 프로세스는 상태(508)로 전이하고, 호스트(102)는 클록 사이클 T2 동안에 LAD[3:0] 상에 채널 넘버 제어 정보를 구동시킨다. 채널 넘버는 이 프로세스 동안에 호스트(102)에 의해 허가되는 DMA 채널 넘버를 나타낸다. 또한, 채널 넘버가 LAD[2:0] 상에 구동되는 동일한 클록 사이클 T2 동안에 LAD[3] 상에 호스트(102)에 단말 총수 제어 정보(terminal count control information)가 전송될 수 있다. 단말 총수(TC) 제어 비트는 DMA 트랜잭션의 크기에 근거하여 마지막 전송 바이트를 나타낼 수 있다. 다음에, 프로세스는 상태(510)로 전이하고, 호스트(102)는 클록 사이클 T3 동안에 LAD[1:0] 상에 크기 제어 정보를 구동시킨다.
다음에, 프로세스는 상태(512)로 전이하고, 호스트(102)는 LAD[3:0]를 통해 n 클록 사이클 T4 동안에 메모리 데이터의 하나 또는 그 이상의 바이트를 I/O장치(104)에 기록한다. 호스트(102)는 2개의 클록 사이클에 걸쳐 바이트 증분으로 LAD[3:0] 상에 데이터를 구동시킬 수 있다. 각각의 바이트에 대해, 하위 니블이 먼저 출력되거나, 상위 니블이 먼저 출력되거나, 또는 어떤 다른 포맷으로 호스트(102)에 의해 데이터가 출력될 수 있다. 마찬가지로, LPC 인터페이스(118)에 의해 출력되는 각각의 바이트 그룹도 역시 하위 바이트가 먼저 출력되거나, 상위 바이트가 먼저 출력되거나, 또는 어떤 다른 포맷으로 출력될 수 있다.
기록을 완료하면, 프로세스는 n 클록 사이클 T4 동안에 LPC 버스(124)의 제어를 I/O 장치(104)로 전환하기 위해 반환(TAR) 상태(514)로 전이한다. 다음에, 프로세스는 상태(516)로 전이하고, I/O 장치(104)가 n 클록 사이클 T5 동안 LAD[3:0] 상에 인밴드(inband) 동기 제어 정보를 구동시키는 동안 n 클록 사이클을 대기한다. 일실시예에서, 동기 제어 정보는 하나 또는 그 이상의 클록 사이클이 될 수 있으며, (1) I/O 장치(104)로의 메모리 판독 데이터의 수신을 나타내거나(예, LAD[3:0] 상의 0000), (2) 에러 상태가 발생했다는 것을 나타내거나(예, LAD[3:0] 상의 1010), (3) 사이클 T4에서 수신된 바이트가 메모리 데이터의 마지막 바이트가 될 수 있다는 것을 나타내거나(예, LAD[3:0] 의 0000), 또는 (4) I/O 장치(104)가 추가적인 DMA 전송을 위해 DMA 요구를 액티브 상태로 유지할 수 있다는 것을 나타내기(예, LAD[3:0] 상의 1001) 위해 이용될 수 있다.
만일 DMA 판독 트랜잭션이 16 비트 또는 32 비트(또는 그 이상) 전송이면, 프로세스는 I/O 장치(104)로 메모리 판독 데이터의 충분한 바이트를 전송하는데 요구되는 만큼 상태(512,514,516)들을 반복할 수 있다. 다음에, 프로세스는반환(TAR) 상태(522)로 전이하고, 여기서, LAD[3:0]의 제어는 n 클록 사이클 T7 동안에 LPC 인터페이스(118)와 호스트(102)로 복귀된다.
전술한 설명에서, 본 발명은 그 특정 실시예를 참조하여 설명되었다. 그러나, 첨부된 청구범위에 기재된 본 발명의 넓은 사상 및 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수도 있다는 것은 명백할 것이다. 따라서, 명세서 및 도면은 제한적 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (34)

  1. 시다중화된 어드레스, 데이터 및 제어 정보를 전달하기 위한 다수의 범용 신호 라인을 포함하는 버스;
    상기 버스에 연결된 호스트;
    상기 호스트에 연결된 메모리;
    상기 버스에 연결되며, 상기 호스트 및 상기 버스를 통해 상기 메모리와 직접 메모리 억세스(DMA) 트랜잭션을 수행하는 주변장치 제어기; 및
    상기 버스로부터 독립되어 상기 호스트와 상기 주변장치 제어기에 연결되며, 상기 주변장치 제어기로부터 상기 호스트로 인코딩된 직접 메모리 억세스(DMA) 채널 넘버를 직렬로 전송하기 위한 제1 제어 라인
    을 포함하는 시스템.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 버스는 상기 호스트로부터 상기 주변장치 제어기로 제어 신호를 전달하기 위한 제2 제어 라인을 포함하고, 상기 제어 신호는 DMA 트랜잭션의 개시를 나타내기 위해 상기 호스트로부터의 제1 제어 정보와 함께 이용되는
    시스템.
  4. 제 3 항에 있어서,
    상기 호스트는 상기 DMA 트랜잭션이 판독 또는 기록 DMA 트랜잭션이라는 것을 나타내기 위해 상기 버스를 통해 상기 주변장치 제어기로 제2 제어 정보를 기록하는
    시스템.
  5. 제 3 항에 있어서,
    상기 호스트는 상기 DMA 트랜잭션의 DMA 채널 넘버를 나타내기 위해 상기 버스를 통해 상기 주변장치 제어기로 제2 제어 정보를 기록하는
    시스템.
  6. 제 3 항에 있어서,
    상기 호스트는 상기 DMA 트랜잭션에서의 바이트 수를 나타내기 위해 상기 버스를 통해 상기 주변장치 제어기로 제2 제어 정보를 기록하는
    시스템.
  7. 제 3 항에 있어서,
    상기 호스트는 상기 DMA 트랜잭션에서 데이터의 마지막 바이트를 나타내는 제2 제어 정보를 상기 주변장치 제어기로 기록하는
    시스템.
  8. 제 3 항에 있어서,
    상기 호스트는 상기 버스의 제어를 상기 주변장치 제어기로 전환하기 위해 상기 제2 제어 정보를 상기 버스로 제공하는
    시스템.
  9. 제 3 항에 있어서,
    상기 주변장치 제어기는 상기 버스 상에 동기 제어 정보를 구동시키는
    시스템.
  10. 제 9 항에 있어서,
    상기 동기 제어 정보는 DMA 기록 트랜잭션에서 상기 주변장치 제어기로부터 데이터가 판독될 준비가 되어 있지 않다는 것을 나타내는
    시스템.
  11. 제 9 항에 있어서,
    상기 동기 제어 정보는 상기 DMA 판독 트랜잭션에서 상기 주변장치 제어기에 의해 데이터가 수신되었다는 것을 나타내는
    시스템.
  12. 제 9 항에 있어서,
    상기 동기 제어 정보는 상기 DMA 트랜잭션에 에러가 있다는 것을 나타내는
    시스템.
  13. 제 9 항에 있어서,
    상기 동기 제어 정보는 상기 DMA 트랜잭션을 위한 추가적인 데이터 전송이상기 주변장치 제어기 장치에 의해 요구되었다는 것을 나타내는
    시스템.
  14. 제 1 항에 있어서,
    상기 호스트는 프로세서를 포함하는
    시스템.
  15. 제 1 항에 있어서,
    상기 호스트는 칩-셋트를 포함하는
    시스템.
  16. 버스에 연결된 호스트 및 주변장치 제어기를 포함하는 시스템에서, 호스트로부터 직접 메모리 억세스(DMA) 트랜잭션을 요구하는 방법에 있어서,
    상기 요구의 개시를 나타내기 위해 상기 버스로부터 독립된 제1 제어 라인 상에 제1 신호를 표명하는 단계; 및
    상기 제1 제어 라인을 통해 인코딩된 DMA 채널 넘버를 직렬로 전송하는 단계
    를 포함하는 DMA 트랜잭션 요구 방법.
  17. 제 16 항에 있어서,
    상기 요구가 유효 요구라는 것을 나타내기 위해 상기 제1 제어 라인 상에 제2 신호를 표명하는 단계
    를 더 포함하는 DMA 트랜잭션 요구 방법.
  18. 제 17 항에 있어서,
    상기 요구의 종료를 나타내기 위해 상기 제1 제어 라인 상에 제3 신호를 전송하는 단계
    를 더 포함하는 DMA 트랜잭션 요구 방법.
  19. 제 16 항에 있어서,
    상기 DMA 채널 넘버에 대한 요구를 중단시키기 위해 상기 제1 제어 라인 상에 제2 신호를 전송하는 단계
    를 더 포함하는 DMA 트랜잭션 요구 방법.
  20. 제 16 항에 있어서,
    상기 표명 및 전송하는 단계들은 상기 DMA 트랜잭션에 대한 요구가 수행되기 전에 다른 요구에 대해 반복되는
    DMA 트랜잭션 요구 방법.
  21. 호스트를 통해 주변장치 제어기 - 상기 호스트와 상기 주변장치 제어기는 다수의 범용 신호 라인을 포함하는 버스에 연결됨 - 로부터 메모리로 직접 메모리 억세스(DMA) 기록 트랜잭션을 수행하는 방법에 있어서,
    상기 버스로부터 독립된 제1 제어 라인을 통해 DMA 채널 넘버를 지정하기 위해 다수의 신호를 직렬로 전송함으로써 상기 호스트로부터 DMA 채널 넘버를 요구하는 단계;
    상기 버스를 통해 제1 제어 정보를 전송함으로써 상기 주변장치 제어기로 DMA 기록 트랜잭션을 허가하는 단계;
    상기 주변장치 제어기로부터 상기 버스를 통해 상기 호스트로 데이터를 전송하는 단계; 및
    상기 메모리로 데이터를 기록하는 단계
    를 포함하는 DMA 기록 트랜잭션 수행 방법.
  22. 제 21 항에 있어서,
    제2 제어 라인 상에 상기 DMA 기록 트랜잭션의 개시에 관한 표시를 표명하는 단계
    를 더 포함하는 DMA 기록 트랜잭션 수행 방법.
  23. 제 21 항에 있어서,
    상기 호스트로부터 상기 버스를 통해 상기 주변장치 제어기로 상기 DMA 기록 트랜잭션에서의 바이트 수를 나타내는 제2 제어 정보를 전송하는 단계
    를 더 포함하는 DMA 기록 트랜잭션 수행 방법.
  24. 제 21 항에 있어서,
    상기 DMA 기록 트랜잭션에서 데이터의 마지막 바이트에 관한 표시를 전송하는 단계
    를 더 포함하는 DMA 기록 트랜잭션 수행 방법.
  25. 제 21 항에 있어서,
    상기 주변장치 제어기가 데이터를 출력할 준비가 될 때까지 상기 버스로 동기 제어 정보를 제공하는 단계
    를 더 포함하는 DMA 기록 트랜잭션 수행 방법.
  26. 제 21 항에 있어서,
    상기 버스를 통해 상기 주변장치 제어기로부터 상기 호스트로 에러 메시지를 전송하는 단계
    를 더 포함하는 DMA 기록 트랜잭션 수행 방법.
  27. 호스트를 통해 메모리로부터 주변장치 제어기 - 상기 주변장치 제어기와 상기 호스트는 다수의 범용 신호 라인을 포함하는 버스에 연결됨 - 로 직접 메모리 억세스(DMA) 판독 트랜잭션을 수행하는 방법에 있어서,
    상기 버스로부터 독립된 제1 제어 라인을 통해 DMA 채널 넘버를 지정하기 위해 다수의 신호를 직렬로 전송함으로써 상기 호스트로부터 DMA 채널 넘버를 요구하는 단계;
    상기 버스를 통해 제1 제어 정보를 전송함으로써 상기 주변장치 제어기로 DMA 판독 트랜잭션을 허가하는 단계;
    상기 메모리로부터 상기 호스트로 데이터를 전송하는 단계; 및
    상기 버스를 통해 상기 주변장치 제어기로 데이터를 기록하는 단계
    를 포함하는 DMA 판독 트랜잭션 수행 방법.
  28. 제 27 항에 있어서,
    제2 제어 라인 상에 상기 DMA 판독 트랜잭션의 개시에 관한 표시를 표명하는 단계
    를 더 포함하는 DMA 판독 트랜잭션 수행 방법.
  29. 제 27 항에 있어서,
    상기 호스트로부터 상기 버스를 통해 상기 주변장치 제어기로 상기 DMA 판독 트랜잭션에서의 바이트 수를 나타내는 제2 제어 정보를 전송하는 단계
    를 더 포함하는 DMA 판독 트랜잭션 수행 방법.
  30. 제 27 항에 있어서,
    상기 DMA 판독 트랜잭션에서 데이터의 마지막 바이트에 관한 표시를 전송하는 단계
    를 더 포함하는 DMA 판독 트랜잭션 수행 방법.
  31. 제 27 항에 있어서,
    상기 버스를 통해 상기 주변장치 제어기로부터 상기 호스트로 에러 메시지를 전송하는 단계
    를 더 포함하는 DMA 판독 트랜잭션 수행 방법.
  32. 호스트; 및
    주변장치 제어기
    를 포함하고,
    상기 호스트와 상기 주변장치 제어기는 다수의 범용 신호 라인을 포함하는 버스에 연결되고, 상기 주변장치 제어기는 상기 호스트로부터 직접 메모리 억세스(DMA) 채널 넘버를 요구하기 위해 상기 버스로부터 독립된 제1 제어 라인을 이용하는
    시스템.
  33. 제 32 항에 있어서,
    상기 호스트는 상기 버스를 통해 상기 주변장치 제어기로 DMA 트랜잭션의 허가를 전달하는
    시스템.
  34. 삭제
KR1020007003138A 1997-09-24 1998-06-26 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션 KR100352224B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/936,318 1997-09-24
US08/936,318 US6157970A (en) 1997-09-24 1997-09-24 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
PCT/US1998/013402 WO1999015949A1 (en) 1997-09-24 1998-06-26 Direct memory access (dma) transactions on a low pin count bus

Publications (2)

Publication Number Publication Date
KR20010024260A KR20010024260A (ko) 2001-03-26
KR100352224B1 true KR100352224B1 (ko) 2002-09-12

Family

ID=25468468

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007003138A KR100352224B1 (ko) 1997-09-24 1998-06-26 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션

Country Status (8)

Country Link
US (1) US6157970A (ko)
EP (1) EP1021756B1 (ko)
KR (1) KR100352224B1 (ko)
CN (1) CN1126015C (ko)
AU (1) AU8377098A (ko)
DE (1) DE69828074T2 (ko)
HK (1) HK1028459A1 (ko)
WO (1) WO1999015949A1 (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US8065504B2 (en) 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US6549959B1 (en) * 1999-08-30 2003-04-15 Ati International Srl Detecting modification to computer memory by a DMA device
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US20020144037A1 (en) * 2001-03-29 2002-10-03 Bennett Joseph A. Data fetching mechanism and method for fetching data
TWI221556B (en) * 2001-11-16 2004-10-01 Via Tech Inc Circuit system and transmission method enabling mutual transmission between LPC devices
ITVA20020012A1 (it) * 2002-02-08 2003-08-08 St Microelectronics Srl Dispositivo di memoria e metodo di lettura sequenziale di gruppi di bit da un dispositivo di memoria
ITVA20020016A1 (it) * 2002-02-21 2003-08-21 St Microelectronics Srl Metodo di scrittura di un insieme di bytes di dati in una memoria standard e relativo dispositivo di memoria
TWI226545B (en) * 2002-06-18 2005-01-11 Via Tech Inc Method and device for reducing LDRQ input pin counts of LPC host
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
US6799227B2 (en) * 2003-01-06 2004-09-28 Lsi Logic Corporation Dynamic configuration of a time division multiplexing port and associated direct memory access controller
US7370125B2 (en) * 2003-11-25 2008-05-06 Intel Corporation Stream under-run/over-run recovery
US7346716B2 (en) 2003-11-25 2008-03-18 Intel Corporation Tracking progress of data streamer
US20050143843A1 (en) * 2003-11-25 2005-06-30 Zohar Bogin Command pacing
JP2005221731A (ja) * 2004-02-05 2005-08-18 Konica Minolta Photo Imaging Inc 撮像装置
US8239603B2 (en) * 2006-05-03 2012-08-07 Standard Microsystems Corporation Serialized secondary bus architecture
US7899303B2 (en) * 2006-08-02 2011-03-01 Lsi Corporation DVD recorder and PVR instant on architecture
KR101009280B1 (ko) * 2010-07-07 2011-01-19 지엔이텍(주) 인쇄회로기판의 갭 서포터 및 그 제조방법
US9047264B2 (en) * 2011-04-11 2015-06-02 Ineda Systems Pvt. Ltd. Low pin count controller
CN202177894U (zh) * 2011-07-14 2012-03-28 鸿富锦精密工业(深圳)有限公司 主板故障诊断卡
CN107608927B (zh) * 2017-09-22 2020-06-26 苏州浪潮智能科技有限公司 一种支持全功能的lpc总线主机端口的设计方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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

Family Cites Families (54)

* 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
US4191996A (en) * 1977-07-22 1980-03-04 Chesley Gilman D Self-configurable computer and memory system
US4333142A (en) * 1977-07-22 1982-06-01 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
US4306298A (en) * 1979-10-09 1981-12-15 Texas Instruments Incorporated Memory system for microprocessor with multiplexed address/data bus
US4443864A (en) * 1979-10-09 1984-04-17 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
EP0077328A4 (en) * 1981-04-27 1985-06-26 Textron Inc BUS FOR SEVERAL MAIN PROCESSORS.
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
US5214767A (en) * 1989-02-07 1993-05-25 Compaq Computer Corp. Full address and odd boundary direct memory access controller which determines address size by counting the input address bytes
GB2232514B (en) * 1989-04-24 1993-09-01 Yokogawa Electric Corp Programmable controller
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 マイクロコンピュータおよびそのバスサイクル制御方法
US5150313A (en) * 1990-04-12 1992-09-22 Regents Of The University Of California Parallel pulse processing and data acquisition for high speed, low error flow cytometry
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
US5448701A (en) * 1992-12-22 1995-09-05 International Business Machines Corporation Flow controller for shared bus used by plural resources
US5392033A (en) * 1993-01-05 1995-02-21 International Business Machines Corporation Priority generator for providing controllable guaranteed fairness in accessing a shared bus
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
US5561819A (en) * 1993-10-29 1996-10-01 Advanced Micro Devices Computer system selecting byte lane for a peripheral device during I/O addressing technique of disabling non-participating peripherals by driving an address within a range on the local bus in a DMA controller
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
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
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
US5774680A (en) * 1995-12-11 1998-06-30 Compaq Computer Corporation Interfacing direct memory access devices to a non-ISA bus
US5991841A (en) * 1997-09-24 1999-11-23 Intel Corporation Memory transactions on a low pin count bus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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

Also Published As

Publication number Publication date
CN1126015C (zh) 2003-10-29
DE69828074T2 (de) 2005-12-22
DE69828074D1 (de) 2005-01-13
CN1301361A (zh) 2001-06-27
EP1021756A1 (en) 2000-07-26
EP1021756A4 (en) 2000-12-20
HK1028459A1 (en) 2001-02-16
US6157970A (en) 2000-12-05
WO1999015949A1 (en) 1999-04-01
EP1021756B1 (en) 2004-12-08
AU8377098A (en) 1999-04-12
KR20010024260A (ko) 2001-03-26

Similar Documents

Publication Publication Date Title
KR100352224B1 (ko) 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션
KR100388735B1 (ko) 핀-총수가 적은 버스 상에서의 메모리 트랜잭션
US6131127A (en) I/O transactions on a low pin count bus
US6119189A (en) Bus master transactions on a low pin count bus
JP2573566B2 (ja) バスコンバータ
US6701405B1 (en) DMA handshake protocol
US5774680A (en) Interfacing direct memory access devices to a non-ISA bus
US5941965A (en) Universal docking station
US5301279A (en) Apparatus for conditioning priority arbitration
US5649128A (en) Multiple bus interface adapter for connection to a plurality of computer bus architectures
US6012111A (en) PC chipset with integrated clock synthesizer
US6493803B1 (en) Direct memory access controller with channel width configurability support
US6415348B1 (en) Flexible microcontroller architecture
US5561806A (en) Serial channel adapter
US5655142A (en) High performance derived local bus and computer system employing the same
US5748945A (en) Method for slave DMA emulation on a computer system bus
WO1996000940A1 (en) Pci to isa interrupt protocol converter and selection mechanism
US6070204A (en) Method and apparatus for using universal serial bus keyboard to control DOS operations
US5519872A (en) Fast address latch with automatic address incrementing
US6266723B1 (en) Method and system for optimizing of peripheral component interconnect PCI bus transfers
US5717875A (en) Computing device having semi-dedicated high speed bus
KR100579203B1 (ko) 능률화된 ata 장치 초기화 방법 및 장치
US5933613A (en) Computer system and inter-bus control circuit
US20010042150A1 (en) Universal docking station
US5392441A (en) Pump bus to avoid indeterminacy in reading variable bit field

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: 20121102

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20130801

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee