KR970000842B1 - 정보 처리 시스템 및 컴퓨터 시스템 - Google Patents

정보 처리 시스템 및 컴퓨터 시스템 Download PDF

Info

Publication number
KR970000842B1
KR970000842B1 KR1019940011537A KR19940011537A KR970000842B1 KR 970000842 B1 KR970000842 B1 KR 970000842B1 KR 1019940011537 A KR1019940011537 A KR 1019940011537A KR 19940011537 A KR19940011537 A KR 19940011537A KR 970000842 B1 KR970000842 B1 KR 970000842B1
Authority
KR
South Korea
Prior art keywords
bus
dma
standard
pci
cpu
Prior art date
Application number
KR1019940011537A
Other languages
English (en)
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 인터내셔날 비지네스 머신즈 코포레이션
Application granted granted Critical
Publication of KR970000842B1 publication Critical patent/KR970000842B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • 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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system

Landscapes

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

Abstract

내용 없음.

Description

정보 처리 시스템 및 컴퓨터 시스템
제1a 내지 1c도는 본 발명에 따라 구성된 정보 처리 시스템의 블록도.
제2a 내지 2c도는 제1도의 정보 처리 시스템에 도시된 시스템 중재 제어점의 일 실시예를 도시한 블록도.
제3a 내지 3d도는 제1도의 정보 처리 시스템에 도시된 시스템 중재 제어점의 다른 실시예를 도시한 블록도.
제4a도는 제2도 및 제3도에 도시된 실시예에 대응하는 중재 모드동안 시스템 중재 제어점으로의 다른 입력의 정의를 나타내는 테이블.
제4b도는 제2도 및 제3도에 도시된 실시예에 대응하는 승인(grant) 모드동안 시스템 중재 제어점으로의 다른 입력의 정의를 나타내는 테이블.
제5도는 멀티플렉스 중재 측대역 신호를 나타내는 테이블.
* 도면의 주요부분에 대한 부호의 설명
12 : 프로세서, 캐시 및 메모리 복합체 14 : S-버스 장치들
18 : 주 PCI 장치 20 : PCI 호스트 브리지
22 : 주 PCI 버스 24 : CPU
28 : 이중 버스 메모리 제어기 32 : 기본 시스템 메모리
44 : I/O 제어기 56 : 주변 I/O 장치
78 : 2차 PCI 중재 제어점 90 : 표준 I/O 장치
92 : 표준 I/O 버스 94 : 2차 PCI 장치
96 : 2차 PCI 버스 100 : 뱅크 중재 제어점
102 : PCI 중재 제어점 104 : 직접-접속 중재 제어점
106 : 직접-접속 MC-A 장치 지원부 110 : 중앙 중재 제어점
본 발명은 컴퓨터 시스템에서 발생하는 메모리 동작(memory operations)에 관한 것으로, 특히, 버스 브리지(bus bridge)에 의해 연결된 다수의 버스를 구비하는 컴퓨터 시스템에서 직접 메모리 액세스(direct memory access : DMA) 동작을 위한 지원 논리(logic support)에 관한 것이다.
컴퓨터 시스템은 전형적으로 하나 이상의 버스를 포함하며, 시스템내의 각 버스에는 버스에 접속되어 그 버스를 통해 상호 국부적으로 통신하는 장치(devices)가 접속된다. 그러나, 한 버스에 접속된 장치가 다른 버스에 접속된 장치로부터 정보를 판독하거나 그 장치에 기록할 필요가 있는 경우, 상이한 버스를 통한 범시스템적인 통신(system-wide communication)이 필요하다. 상이한 버스를 통한 장치 사이의 범시스템적인 통신을 허용하려면 한 버스와 다른 버스의 통신 프로토콜(communications protocol)을 매칭시키기 위한 버스-버스 브리지(bus-to-bus bridge)[인터페이스(interfaces)]가 제공되어야 한다.
이미 알려진 버스-버스 브리지로는 IBM사에 양도된 다음의 계류중인 특허 출원에 개시되어 있는 것들이 있으며, 이들 계류중인 특허 출원은 모두 1992년 1월 2일 출원되었다. : 이중 버스 구조를 가진 컴퓨터 시스템의 버스 제어 논리(BUS CONTROL LOGIC FOR COMPUTER SYSTEM HAVING DUAL BUS ARCHITECTURE)라는 명칭의 미합중국 특허 출원번호 제07/815,992호 ; 패리티 에러 검출과 복구(PARITY ERROR DETECTION AND RECOVERY)라는 명칭의 미합중국 특허 출원번호 제07/816,184호 ; 캐시 스누핑과 데이터 무효화 기법(CACHE SNOOPING AND DATA INVALIDATION TECHNIQUE)이라는 명칭의 미합중국 특허 출원번호 제07/816,204호 ; 이중 버스 구조를 가진 컴퓨터 시스템의 버스 인터페이스 논리(BUS INTERFACE LOGIC FOR COMPUTER SYSTEM HAVING DUAL BUS ARCHITECTURE)라는 명칭의 미합중국 특허 출원번호 제07/816,203호 ; 버스 인터페이스 장치의 양방향성 데이터 저장 장치(BIDIRECTIONAL DATA STORAGE FACILITY FOR BUS INTERFACE UNIT)라는 명칭의 미합중국 특허 출원번호 제07/816,691호 ; 버스 동작 속도를 제어하기 위한 버스 인터페이스(BUS INTERFACE FOR CONTROLLING SPEED OF BUS OPERATION)라는 명칭의 미합중국 특허 출원번호 제07/816,693호 ; 이중 버스 구조를 가진 컴퓨터 시스템의 중재 제어 논리(ARBITRATION CONTROL LOGIC FOR COMPUTER SYSTEM HAVING DUAL BUS ARCHITECTURE)라는 명칭의 미합중국 특허 출원번호 제07/816,116호 : 버스-버스 인터페이스에서 어드레스 위치를 결정하기 위한 방법 및 장치(METHOD AND APPARATUS FOR DETERMINING ADDRESS LOCATION AT BUS TO BUS INTERFACE)라는 명칭의 미합중국 특허 출원번호 제07/816,698호. 이들 출원은 시스템의 상이한 버스에 접속된 장치의 범시스템적인 통신을 가능하게 하는 장치를 개시한다.
다중-버스 컴퓨터 시스템에서 각 버스-버스 브리지는 시스템의 2개의 버스를 접속하는데 사용된다. 소정의 컴퓨터 시스템을 구성함에 있어서는 다양한 형태의 버스를 이용할 수 있다. 표준 I/O 버스는 기존의 주변 I/O 장치를 보다 집중화된 고성능 버스 구변에 구축된 시스템에 접속하는데 종종 사용되는 예를 들어 ISA 또는 MICRO CHANNELR(MC-A) 버스등을 포함한다.
점차 널리 채택하고 있는 고성능 버스의 하나는 상대적으로 짧은 기간내에 상당량의 데이터(초당 120메가바이트의 데이터)를 전송할 수 있는 PCI(Peripheral Component Interconnect) 버스이다. PCI 버스는, 부분적으로는, CPU가 접속될 수 있는 시스템 버스와 같은 다른 고속의 버스에 직접 연결될 수 있고, 따라서 시스템 버스에 접속된 장치와 PCI 버스에 접속된 장치사이에 신속한 데이터 전송을 제공할 수 있기 때문에, 이러한 고도의 성능을 발휘한다. 사실상, 그래픽 패키지 제어기(graphics package controllers)와 같은 다수의 고집적 장치(high integration devices)의 동작에는 PCI 버스와 같은 고성능 버스를 통해 시스템 버스까지 직접 접속하는 것이 필요하다. 더우기, PCI 버스 구조는 이 버스 구조에 접속된 주변 장치를 동작시킴에 있어 어떠한 글루 논리(glue logic)도 필요로 하지 않는다. 다른 버스에 적용되는 글루 논리는 전형적으로 주변 장치와 버스의 중간에 설치된 디코더(decoders), 버퍼(buffers) 또는 래치(latches)와 같은 보조 하드웨어 구성 요소로 이루어진다.
주(primary) PCI 버스는 33MHz의 동기 클록 신호상에서 동작하고, PCI 버스를 통해 전송되는 데이타 스트링(strings of data)은 32-비트 길이이다. PCI 버스상의 32-비트 데이타 스트링은 2중 단어(double word, DWORD)라 불리며 각각 8비트 데이타로 구성된 4바이트로 나누어진다. PCI 버스를 통해 전송되는 어드레스와 데이타 정보는 하나의 신호로 멀티플렉스(multiplex)된다. 이러한 멀티플렉싱(multiplexing)으로 인하여, 다른 버스 구조와는 달리, 어드레스 라인과 데이타 라인을 분리시킬 필요가 없으며, 따라서 PCI 버스 환경에서 필요한 신호양이 감소된다. PCI 버스 구조에서 필요한 신호의 수는 45 내지 47 사이인 반면에 비멀티플렉스형 버스들(non-multiplexed buses)은 전형적으로 이 보다 2배 정도의 신호를 필요로 한다. 따라서, 신호의 수가 감소함에 따라 장치를 PCI 버스와 연결시키기 위해 필요한 연결핀(connection pin)의 수가 또한 상응한 수치만큼 감소된다. 따라서, PCI 구조는 특히 고집적 데스크탑(desktop) 컴퓨터 시스템에 적합하다.
PCI 버스의 구조 및 동작의 보다 상세한 설명은, PCI 스페셜 인터레스트 그룹(PCI Special Interest Group)이, 1993년 4월 30일 발행한 주변 구성장치 상호접속(PCI) 개정판 2.0사양(Peripheral Component Interconnect(PCI) Revision 2.0 Specification)과 ; 1992년 11월 1일 발행한 예비 PCI 시스템 디자인 가이드(Preliminary PCI System Design Guide) 개정판 0.6과 ; 1992년 11월 6일 발행한 주변 구성장치 상호접속(PCI) 애드-인 보드/커넥터 어덴덤(Peripheral Component Interconnect(PCI) Add-in Board/Connector Addendum) (안)에서 제공되어 있으며, 이들 참조문헌의 내용은, 이들이 본 명세서에서 충분히 개시된 것으로 하여 참조로 인용된다.
그러나, 컴퓨터 시스템에서 PCI 버스와 표준 I/O 버스를 인터페이스함에 있어 PCI 버스와 표준 I/O 버스간의 프로토콜이 다르다면 문제가 발생한다. 예를 들면, 직접 메모리 액세스(direct memory access : DMA) 사이클은 표준 I/O 버스에 접속된 I/O 장치와 대조적으로 PCI 버스에 접속된 PCI 장치에 의해 상이하게 처리될 수도 있다. DMA 사이클은 CPU의 개재없이 DMA 제어기에 의해 시스템 메모리와 입력/출력 유니트 사이에서 데이타를 전달하는 동작이다. PCI 버스에 직접 연결된 대부분의 장치는 일반적으로 그 자체내에 DMA 제어 논리가 내장된 고성능 32비트 버스 마스터 장치(bus master device)이다. 이러한 버스 마스터 장치는 시스템에 제공된 DMA제어기에 의존할 필요는 없으며, 따라서 이러한 버스 마스터 장치는 시스템 DMA 제어기에 의존하여 데이타 전송을 개시하는 대신에 자체적으로 DMA 전송을 개시한다. DMA 슬레이브 장치(slave device)는 전형적으로 저성능으로 저가이며, DMA 전송을 실행하는데는 시스템 DMA 제어기의 도움을 필요로 한다.
전형적인 DMA 슬레이브 장치의 예는 직렬 포트, 병렬 포트 및 플로피 디스크 장치이다. 하드웨어 및 소프트웨어를 ISA 또는 MC-A 버스와 같은 표준 I/O 버스를 가지는 어떠한 시스템과 호환성을 유지하기 위해서는, 표준 시스템 DMA 제어기뿐 아니라 표준 I/O 장치가 시스템내에 존재하여야 한다. DMA 제어기는 ISA 또는 PS2 구조로 구성될 수도 있다. ISA와 PS2 DMA 제어기가 약간의 차이점이 있을 지라도, 이들은 모두 중재 및 데이타 전송을 제어하기 위하여 특수한 신호 집합을 필요로 한다. DMA 제어기는 기존의 하드웨어(I/O 장치)와 호환성을 유지하는데 필요하며, ISA/PS2 구조는 기존의 소프트웨어와 호환성을 유지하는데 필요하다.
DMA 제어기는 중재, 버스 사이징(bus sizing), DMA 사이클[예로, 전송 타이밍과 단자 수(terminal count) 및 여러 동작 모드(예로, 싱글(single)/버스트(burst)/디맨드(demand)/캐스케이드(cascade)]을 요하는 특수 기능을 수행한다. DMA제어기는 표준 I/O 버스상에 배치되는 것이 전형적이며, 이것은 시스템이 표준 I/O 버스 없이 구축되지 못하게 하는 것이다. PCI 버스는 신호를 제공하지 못하거나 또는 PCI 버스상에 배치된 DMA 제어기를 가지는 시스템을 지원하지 못한다.
표준 I/O 버스상의 I/O 장치는 성능면에 있어서 아마도 PCI 버스에 접속된 장치보다 떨어지게 되며 DMA 사이클을 실행하는데 있어서 DMA 제어기의 도움을 필요로 할 것이다(예로, DMA 제어기가 내장되지 않은 8, 16 또는 32비트 I/O 장치). DMA 제어기는 상이한 유형의 슬레이브 장치에 대해 DMA 사이클을 관리할때 동적 버스 사이징(dynamic bus sizing)을 필요로 한다. 즉, DMA 제어기는 특정 슬레이브 장치를 대신하여 DMA 사이클을 관리할때 그 특정한 슬레이브 장치의 사이즈(8비트, 16비트 등)를 아는데 필요하다. 이러한 동적 버스 사이징은 전형적으로 AT, ISA 또는 MICROCHANNEL버스와 같은 표준 I/O 버스상에 지원된다.
그러나, PCI 버스는 그러한 동적 버스 사이징 능력을 갖추도록 구성되어 있지 않기 때문에, PCI 버스는 DMA 슬레이브 장치에 관련된 DMA 사이클 동작을 지원할 수 없다. DMA 슬레이브 장치는 표준 I/O 브리지에 접속되고, 이어서 그 표준 I/O 브리지는 PCI 버스에 접속되므로 상기 DMA 슬레이브 장치는 그것을 대신하여 DMA 제어기에 의해 PCI 버스를 통하여 DMA 동작을 실행시킬 수 없다. 그러나, 멀티 버스 시스템 구조는, 표준 I/O 버스에 접속된 DMA 슬레이브 장치가 PCI 버스를 통하여 시스템 메모리를 액세스하도록 요구되는 경우에, 상술한 DMA 동작이 필요하다.
따라서, 본 발명의 목적은, 표준 버스 브리지에 의해(PCI 버스와 같은) 고성능 버스에 접속된 표준 I/O 버스상의 DMA 슬레이브 장치에 대한 DMA 사이클을 지원하는 메카니즘을 제공하여, DMA 제어기가 상기 슬레이브 장치를 대신하여 PCI 버스를 통하여 시스템 메모미로의 DMA 사이클을 실행하도록 하는 것이다. 상기 메카니즘은 시스템 DMA 제어기를 항시 PCI 버스상에 존재하게 해주는 표준 I/O 브리지로 측대역 인터페이스를 규정함으로써 제공된다. 측대역 인터페이스를 이용함으로써, 선택적인 확장 버스(expansion bus)상에서 DMA 슬레이브 장치를 지원할 수 있다. 더우기, DMA 특수 측대역 신호는 기존의 측대역 신호와 함께 멀티플렉스될 수도 있다.
본 발명은 슬레이브 I/O 장치를 대신하여 PCI 버스를 통하여 DMA 사이클을 지원하는 문제를 해결한다. 본 발명은 DMA 제어기와 표준 DMA-호환(compatible)확장 버스 사이에서 필요한 접속을 제공하는 측대역 신호를 포함하는 PCI 버스까지로의 연장을 규정한다. 측대역 신호의 몇개는 중재신호와 함께 멀티플렉스됨으로써 PCI 버스상에서 DMA 사이클을 지원하는데 필요한 핀수(pin count)가 줄어든다.
I/O 장치를 대신하여 PCI 버스를 통한 I/O 사이클을 관리하기 위하여, DMA 제어기는 I/O 사이클을 관리하기 위한 I/O 장치의 버스 사이즈를(즉, I/O 장치가 8, 16 또는 32비트 장치인지를) 판단하여야 한다. 이러한 정보는 멀티플렉스된 측대역 신호에 의해 제공된다. 이 측대역 신호는 DMA 호환 확장 버스를 지원하는 I/O 브리지와 DMA 제어기를 서로 직접 연결시켜준다.
이제 제1도를 살펴보면, (i) S-버스(시스템 버스)(16)를 통해 S-버스 장치(14)에 접속된 프로세서, 캐시 및 메모리 복합체(processor, cache and memory complex)(12)와, (ii) 주 PCI 버스(22)를 통해 S-버스 장치중 하나, 즉, 주 PCI 호스트 브리지(20)에 접속된 주 PCI 장치(18)를 구비한 다중-버스 정보 처리 시스템(multi-bus information handling system)(10)이 도시되어 있다. 제1도에 도시된 프로세서, 캐시 및 메모리 복합체(12), S-버스 장치(14), 주 PCI 장치(18)와 다른 구성장치들에 대한 보다 상세한 설명은 이하에서 제공될 것이다.
프로세서, 캐시 및 메모리 복합체(12)는 중앙 처리 장치(CPU, 24), 자기-진단 회로(self-test circuit)(26), 이중 버스 메모리 제어기(28), CPU 캐시(30), 그리고 기본 시스템 메모리(32)를 포함한다. 비록 상기 시스템(10)이 다른 형태의 CPU, 특히 다른 x86-형 마이크로프로세서를 사용해 구현될 수도 있지만, 바람직한 실시예의 CPU(24)는 인텔사로부터 상표명 i486TM하에 구입가능한 32-비트 마이크로프로세서이다. 자기 진단 회로(26)는 전원이 켜졌을때 CPU(24)에 대한 내장형 자기 진단(built-in-self-test, BIST) 특징(feature)을 제공한다. 또한, 자기 진단 회로는 각각의 S-버스 장치(14)에 통합될 수 있는 어떠한 자기-진단 특징도 제어한다.
CPU(24)는 CPU 로컬 버스(local bus)(34)에 의해 자기 진단 회로(26)와 메모리 제어기(28)에 접속된다. 메모리 제어기(28)는 기본 시스템 메모리 버스(36)에 의해 기본 시스템 메모리(32)에 접속된다. 메모리 제어기(28)는 기본 시스템 메모리 버스(36)를 통해 기본 시스템 메모리(32)에 대한 판독 및 기록 동작을 제어하는데, 이러한 동작은 CPU 로컬 버스(34)와 연결된 CPU(24)나 S-버스(16)와 연결된 S-버스 장치(14)에 의해 개시된다. 메모리 제어기는 2개의 버스상의 동작을 처리할 수 있으므로, 기본 시스템 메모리 버스(36)와 CPU 로컬 버스(34)를 통한 동작은 동시에 관리될 수 있다. CPU 로컬 버스(34), 기본 시스템 메모리 버스(36), 그리고 S-버스는 32-비트 버스이며, 각 버스는, 이러한 버스에 있어 전형적이듯이, 데이타 정보경로, 어드레스 정보경로 및 제어 정보경로(제1도의 D,A와 C)를 포함한다.
기본 시스템 메모리(32)는 범시스템적 저장 능력을 제공하며 또한 인터리브(interleave) 방식의 혹은 비인터리브(non-interleaved)방식의 메모리 카드를 구비할 수 있다. CPU 캐시(30)는 기본 시스템 메모리(32) 또는 시스템(10)내의 다른곳에 위치한 확장 메모리(expansion memory)내에 담겨진 정보를 단 기간 저장할 수 있다. 이러한 확장 메모리는, 예를 들어, 시스템내의 주변 접속 I/O 장치(peripherally attached I/O devices)에 위치할 수 있다. CPU 캐시(30)는 CPU(24)가 자주 액세스하는 기본 시스템 메모리(32)의 어드레스 위치(address locations)를 일시적으로 저장하기 위해 사용되는 랜덤 액세스 메모리(RAM, 도시되지 않음)를 포함한다. CPU(24)는 CPU 캐시(30)에 저장된 정보를 직접 액세스하는 반면에, 기본 시스템 메모리(32)에 저장된 정보의 액세스는 메모리 제어기(28)에 의해 처리된다.
기본 시스템 메모리(32)에 대한 모든 액세스는 기본 시스템 메모리 버스(36)를 통해 메모리 제어기(28)에 의해 제어된다. 메모리 제어기는 기본 시스템 메모리에 대한 시스템 메모리 사이클(system memory cycles)을 개시하며, 이 사이클 동안 CPU(24) 또는 S-버스 장치(14)중 어느 하나가 메모리 제어기(28)를 통해 기본 시스템 메모리를 액세스한다. 메모리 사이클 동안에 메모리 제어기는 S-버스상에 정보를 전달하지 않는다. 그러나, 만약 메모리 제어기가 처리중인 CPU 동작이 I/O 사이클이라고 판단하면, 메모리 제어기는 S-버스(16)에 그 정보를 전달하여 S-버스 장치(14)에 의해 S-버스를 액세스한다. 만약 I/O 사이클이 S-버스 장치에 대한 것이라면, 적절한 S-버스 장치가 디코드 커맨드(decode command)를 이용하여 메모리 제어기에 응답한다.
만약 I/O 동작이 주 PCI 장치(18)에 대한 것이라면, PCI 호스트 브리지(20)는 디코드 커맨드를 이용하여 메모리 제어기에 응답하며 적절한 주 PCI 장치에 그 I/O 사이클을 전달한다.
시스템 클록 모듈(system clock module)(38)은 S-버스 장치(14)에 단일 클록 신호를 제공하고 CPU(24)에 한쌍의 클록 신호를 제공한다. 바람직한 실시예에서, S-버스에 제공된 클록 신호는 33MHz로 동작한다. CPU(24)에 제공된 2개의 신호는 각각 33MHz와 66MHz로 동작한다. CPU(24)는 내부적으로는 66MHz로 동작하지만 CPU 로컬 버스(34)상에서는 33MHz로 통신하기 때문에 2개의 클록신호가 필요하다.
프로세서, 캐시 및 메모리 복합체(12)와 S-버스 장치간의 통신은 32-비트 S-버스(16)를 통해 메모리 제어기(28)에 의해 관리된다. 또한, 제1도의 바람직한 실시예에 도시된 바와 같이, 직접 메모리 액세스(DMA) 제어기(40), 시스템 중재 제어점(SACP)(42), I/O 제어기(44), PCMCIA 제어기(46), 그리고 전력 관리 제어기(48)가 S-버스에 접속된다. 보다 정교한(sophisticated) 전력 관리 제어를 원한다면 선택 사양적 전력 관리 제어기(optional power management controller)(50)를 전력 관리 제어기(48)에 접속할 수 있다. S-버스(16)상에서 DMA 제어기(40)와 I/O 제어기(44)의 중간에 버퍼(52)가 제공된다. 그러나, 제1도에 도시된 것 이외의 다른 S-버스장치(14)가 S-버스(16)에 접속될 수 있음을 알아야 할 것이다.
PCMCIA 제어기(46)는 PCMCIA 카드 슬롯(54)에 직접 접속될 수 있다. 주변 I/O 장치(56)는 버퍼(58)를 사용하여 PCMCIA 카드 슬롯(54)에 연결될 수 있다. I/O 제어기(44)는 주변 I/O 장치(56)를 제어한다. 실시간 클록(time-fo-day clock)(60)과 RAM 모듈(62)은 I/O 제어기에 접속된다. I/O 제어기(44)는 마우스 포트(mouse port)(64), 직렬 포트(66), 병렬 포트(68)와 키보드 포트(70)를 포함한 다양한 포트를 지원한다.
시스템(10)은 S-버스(16)상에서 S-버스 장치(14)를 지원하는 것외에도 바람직한 실시예에서 주 PCI 버스(22)인, 제2고속, 광 대역(high bandwidth) 버스를 지원한다. 시스템(10)내의 주 PCI 장치(18)는 주 PCI 버스(22)를 통해 상호 통신한다. 주 PCI 장치는 그 자체가 S-버스상에 존재하는 S-버스 장치인 PCI 호스트 브리지(20)를 사용하여 CPU, 캐시 및 메모리 복합체(12)와 통신하며 또한 S-버스(16)상에 존재하는 다른 S-버스 장치(14)와 통신한다. PCI 호스트 브리지(20)는 S-버스(16)와 주 PCI 버스(22)간의 인터페이스 역할을 수행하며, 두 버스사이에서, 또한 이러한 버스에 접속될 수 있는 주변 장치사이에서 효과적인 통신수단을 제공한다.
PCI 호스트 브리지(20)는 저 지연 상호접속 메카니즘(low latency interconnect mechanism)을 제공하며, CPU(24) 또는 다른 S-버스 장치(14)는 이러한 메카니즘을 통해 주 PCI 장치(18) 또는 주 PCI 장치에 접속된 장치를 직접 액세스할 수 있다. 또한, PCI 호스트 브리지(20)는 고성능 경로를 제공하여 주 PCI 장치와 주 PCI 장치에 접속되는 장치가 기본 시스템 메모리(32)를 신속하게 직접적으로 액세스할 수 있도록 한다. 또한, 호스트 브리지(20)는 S-버스(16)와 주 PCI 버스(22)간의 인터페이스를 제공하는데 필요한 모든 하드웨어를 제공하므로써 이들 버스 사이에서 데이타가 전송될 수 있다.
주 PCI 버스(22)는 PCI와 호환성이 있는 다양한 장치를 지원할 수 있다. 제1도에 도시된 바와 같이, 이들 장치는 그래픽 제어기(72), 직렬 스카시(small computer system interface : SCSI) 제어기(74), 미래(future) PCMCIA 제어기(76), 표준 I/O 버스(예를 들면, ISA 또는 MICRO CHANNEL(MC-A)) 브리지(78)(또한 본 명세서에서 확장 브리지로 언급됨) 및 PCI 2차 브리지(80)를 포함할 수 있다. 그러나, 주 PCI 버스에 접속된 제1도의 장치는 PCI 버스 구조를 구현하는 시스템의 단지 한 예일뿐이며, 따라서, 개시된 예시적인 구성은 본 발명을 제한하고자 의도된 것은 아니다.
그래픽 제어기(72)에는 그래픽 제어기가 그내에서 비디오 프레임(video frames)을 버퍼링(buffering)할 수 있게 하는 VRAM(82) 형태의 메모리 능력이 전형적으로 제공되며, PCI 버스 구조에 의해 지원될 수 있는 모든 알려진 그래픽 패키지를 제어할 수 있다. SCSI 제어기(74)는 SCSI 버스(86)에 접속된 SCSI 장치(84)와 주 PCI 버스(22)간의 인터페이스 역할을 수행하며, PCI 버스 구조에 의해 지원될 수 있는 모든 SCSI 장치를 제어할 수 있다. 미래 PCMCIA 제어기(76)는 카드 슬롯(card slot, 88)에 접속되어 이 카드 슬롯을 제어한다.
표준 버스 브리지(78)는 표준(예를 들어, MC-A 또는 ISA) 버스(92)에 접속된 I/O 장치(90)와 주 PCI 버스(22)간의 인터페이스 역할을 수행한다. 2차 PCI 장치(94)는 2차 PCI 버스(96)를 통해 PCI 2차 브리지(80)에 접속된다. 2차 PCI 버스(96)에는 임의의 수의 명시되지 않은 2차 PCI 장치(94)가 접속될 수 있다. PCI 2차 브리지(80)는 2차 PCI 버스(96)에 접속된 2차 PCI 장치(94)와 주 PCI 버스(22)간의 인터페이스 역할을 수행한다.
DMA 제어기(40), PCI 호스트 브리지(20), 그리고 I/O 제어기(44)는 기본 시스템 메모리(32)와 주변 I/O 장치(56) 또는 표준 I/O 장치(90)상의 확장 메모리간의 정보 교환을 제어한다. 또한, DMA 제어기(40)는, CPU, 캐시 및 메모리 복합체(12)를 대신하여 3가지 기능을 제공한다. 첫번째로, DMA 제어기(40)는 소형 컴퓨터 서브 시스템 제어블록(small computer subsystem control block, SCB) 구조를 이용하여 DMA 채널을 형성하므로, DMA 채널을 구성(configure)하기 위해 프로그램 I/O(programmed I/O)를 이용할 필요가 없다. 두번째로, DMA 제어기는 저속 메모리 확장 장치와 전형적으로 빠른 기본 시스템 메모리(32)간의 전송을 최적화하기 위한 버퍼링 기능을 제공한다. 세번째로, DMA 제어기는 8채널, 32-비트, 직접 기본 시스템 메모리 액세스 기능을 제공한다. DMA 제어기(40)가 직접 기본 시스템 메모리 액세스 기능을 제공하는 경우, 2모드중의 하나로 동작할 수 있다. 제1동작모드에서, DMA 제어기는 CPU(24)에 종속적으로 동작하는 프로그램 I/O 모드(programmed I/O mode)로 동작한다. 제2동작모드에서, DMA 제어기는 그 자체로 S-버스상의 마스터(master)로 동작한다.
DMA 제어기(40)는 항상 제3자 버스 마스터(third party bus master)로서 동작한다. DMA 제어기는 데이타의 소오스(source)나 목적지(destination)가 아니라 소오스 엔티티(entity)와 목적지 엔티티간의 데이타전송을 위한 수단을 제공한다. 비록 제1도에는 DMA 제어기가 S-버스상에 상주하는 것으로 도시되어 있지만 반드시 그럴 필요는 없다. DMA 제어기는 전형적으로 메모리에서 I/O 장치로, I/O 장치에서 메모리로의 데이타 트랜잭션(transactions)을 관리한다. 이 경우, 메모리는 기본 시스템 메모리(32)일 수 있으며 또는 주변 I/O 장치(56) 또는 표준 I/O 장치(90)상의 주변 메모리일 수 있다.
표준(예를 들어, ISA 또는 MC-A) 버스(92)상에 상주하는 표준 I/O 장치(90)는 8-비트형, 16-비트형, 또는 32-비트형 장치일 수 있다. 본 발명에 따른 PCI 호스트 브리지(20)와 시스템 중재 제어점(SACP)(42)의 설계는 (i) CPU(24), (ii) 주 PCI 버스(22)상에 상주하는 주 PCI 장치(18), (iii)표준 I/O 버스(92)상에 상주하는 표준 I/O 장치(90), 및 (ⅳ) I/O 제어기(44)에 의해 제어되는 주변 I/O 장치(56)의 동시적 중재를 범시스템 베이스(on a system-wide basis)로 가능하게 한다. SACP(42)는 표준 I/O 장치(90), CPU(24), 주 PCI 장치(18), 그리고 주변 I/O 장치(56)에 대한 주 중재기(arbiter)로서 동작한다.
제2도 및 3도에는 SACP(42)의 구현 블록도가 도시되어 있다. 제2도는, 제1도에 도시된 시스템이 주 PCI 버스(22)에 접속된 표준 버스 브리지(78)를 포함하지 않을때 사용되는, 시스템 중재 제어점의 제1실시예에 대한 블록도이다. 제3도는, 제1도에 도시된 시스템이 주 PCI 버스(22)에 접속된 표준 버스 브리지(78)를 포함할때 사용되는, 시스템 중재 제어점의 제2실시예에 대한 블록도이다.
제2도를 먼저 참조하면, 표준 버스 브리지(78)가 없을때 사용되는 SACP(42)는 뱅크 중재 제어점(BACP)(100), PCI 중재 제어점(PACP)(102), 그리고 직접-접속 중재 제어점(DACP)(104)을 포함하는 것으로 구현된다. BACP(100)는 주 PCI 버스(22)의 제어를 획득하기 위해 PACP(102) 및 DACP(100)가 제공한 요청(requests) 사이를 중재한다.
PACP(102)는 CPU(24) 및 주 PCI 장치(18)에 의해 제공된 주 PCI 버스 액세스 요청(총칭하여 BANK0 요청이라함)을 관리한다. DACP(104)는 I/O 제어기(44)가 제어하는 주변 I/O 장치(56)를 대신하여 I/O 제어기(44)가 제공한 주 PCI 버스 요청을 관리한다. 제3도를 참조하여 후술되는 바와 같이, 주 PCI 버스(22)에 접속된 표준 버스 브리지(78)를 포함하는 시스템에 있어서, DACP(104)는 또한 표준 버스 브리지(78)에 접속된 표준 I/O 장치(90)을 대신하여 표준 버스 브리지(78)가 제공한 주 PCI 버스 액세스 요청을 관리한다.
표준 버스 브리지(78)와 I/O 제어기(44)에 의해 제공된 주 PCI 버스 요청은 본 명세서에서 총칭하여 BANK1 요청으로 참조된다. BACP(100)는 PACP(102)와 DACP(104)에 의해 제공된 주 PCI 버스 액세스 요청을 관리하는 것외에도, PCI 2차 브리지(80)에 접속된 2차 PCI 장치를 대신하여 PCI 2차 브리지(80)가 제공한 주 PCI 버스 요청(총칭하여 BANK2 요청이라 함)을 처리하게 된다. 본 발명에 의하면, 제2도 내지 제3도에 도시된 것[PACP(102), DACP(104)와 PCI 2차 브리지(80)]이외에도 뱅크 중재를 포함하도록 더 확장할 수 있다. 만약 시스템이 PCI 버스(22)에 다중층(multi-tier) 구조로 접속된 다른 2차 PCI 브리지를 포함한다면, 이러한 다른 2차 PCI 브리지는 접속된 장치간의 중재를 수행하고 BACP(100)에 BANKN요청을 제공할 것이다.
전술한 계층적 구조는 시스템(10)에 (i) CPU와 주 PCI 장치간의 중재가 (ii) I/O 제어기에 의해 제어되는 주변 I/O 장치와(존재하는 경우) 표준 버스 브리지(78)에 접속된 표준 I/O 장치간의 중재와는 독립적으로 관리되는 중재 방안(arbitration schme)을 제공한다. PACP(102)는 최대 5개까지의 PCI 장치(18)와 CPU(24)로부터 직접 PCI 버스(22)를 액세스하기 위한 요청을 수신한다. 5개의 PCI 장치는 그들의 요청 REQ0# 내지 REQ4#을 PACP상의 10개의 요청/승인선(request/grant lines)에 제공한다[본 명세서에서 인용된 부호 #은 부정의 값을 가질때 활성인 신호(negative active signals)를 표시한다]. PCI 장치는 승인선 GNT0# 내지 GNT4#를 경유하여 주 PCI 버스(22)에 대한 액세스를 승인받는다. 요청선과 승인선은 주 PCI 장치(18)와 PACP(102) 사이에서 직접 접속된다.
비록 CPU(24)는 메모리 제어기(28)를 통해 기본 시스템 메모리를 액세스하지만, 만약 CPU가 주 PCI 버스(22)를 액세스하길 요구한다면 주 PCI 장치(18)에 의해 제공된 동일한 요청들과 경쟁하여야 한다. 일단 CPU(24)가 S-버스(16) 제어를 획득하면, 주 호스트 브리지는 주 PCI 버스와 S-버스간의 버스 마스터 인터페이스를 제공할 것이며, CPU(24)를 PCI 마스터로서 제공할 것이다. 비록 PCI 호스트 브리지가 중재를 수행하지는 않지만, 이것은 S-버스와 PCI 버스간의 프로토콜 변환, 버퍼링, 그리고 속도 매칭을 수행한다.
CPU(24)에 대한 주 PCI 버스 액세스 요청은 PACP에 대한(전형적으로 i486-형 프로세서의) 선점 신호(preempt signal)로서 사용되는 요청선 BREQ상에서 PACP(102)에 직접 제공된다. CPU(24)는 CPU(24)와 PACP(102) 사이의 전용선 HOLD와 HLDA를 통하여 보류/보류 긍정응답(hold/hold acknowledge) 프로토콜을 사용한다. CPU가 i486 구조가 아닌시스템의 실시예인 경우, PACP-CPU 인터페이스는 인지되지 않으므로, PACP는 i486의 BREQ/HOLD/HLDA 뿐만아니라 PCI 요청/승인 핸드세이크(handshake)(CPUREQ# CPUGNT#)를 지원해야 한다. 따라서, CPU(24)와 PCI 장치의 각각은 PACP(102)로/로부터 중재 요청과 승인 신호를 직접 접속할 수 있다.
PACP(102)는 주 PCI 장치(18)와 CPU(24)간의 대기중인(pending) 요청을 2가지 다른 방식으로 처리할 수 있다. 제1방법은 PACP가 라운드 로빈(round robin) 절차에 의해 순차적인 순서로 대기중인(pending)요청을 제공하는 것이다. 제2방법은 고정 우선순위(fixed priority)대로 요청을 처리하는 것이다. 이러한 제2방법은 중재 우선순위가 각각의 주 PCI 장치(18)와 CPU(24)에 할당되어 있는 경우에 가능하다. 특히, CPU 요청선 BREQ/CPUREQ#과 주 PCI 장치 요청선 REQ#0 내지 REQ#4는 프로그램 가능한 우선순위 레벨을 가진다. 우선순위 레벨은 관계된 PCI의 대역폭을 근거로 결정될 수 있다. 예를 들면, 큰 대역폭과 낮은 버퍼링 능력을 가지는 PCI 장치는 작은 대력폭 및/또는 더 높은 버퍼링 능력을 가지는 장치보다 높은 중재 우선순위를 할당받아야 한다.
어떠한 방법을 택하든지, PACP(102)는 BANK0 요청사이를 중재하고, PCI 장치 또는 CPU중 어트 것이 높은 우선순위를 갖는지 결정하며, 다른 뱅크 중재기(BANK1_REQ#, BANK2_REQ#, 등등)에 의해 제공된 요청과 더불어 선택된 장치를 BANK0_REQ#선을 통해 BACP에 제공한다. BACP(104)에는 뱅크 중재기에 의해 선택된 장치가 주 PCI 버스(22)의 액세스를 승인받는 선택된 시간 간격을 각각의 뱅크 중재기에 제공하도록 프로그램되어 있다. 주 PCI 버스(22)의 액세스는 BACP에 의해 출력 승인선(BANK0_GNT#, BANK1_GNT#, BANK2_GNT#, 등등)을 통해 선택된 장치에 승인(grant)된다.
상술한 바와 같이, BACP(100)는 SACP(42)내에서 상위레벨의 중재기이다. 이 BACP는 주 PCI 버스 액세스 요청을 범시스템적인 베이스로 관리하는 개별 뱅크 중재기에 의해 이 BACP메 제공된 중재 요청을 처리한다. 제1뱅크 중재기, PACP(102)(BANK0)의 동작이 상술되었다. 이제 제2뱅트 중재기, DACP(104)(BANK1)의 동작을 설명하겠다.
DACP(104)는(표준 버스 브리지가 사용되지 않은 시스템의 실시예에서) I/O 제어기(44)에 의해 제어되는 주변 I/O 장치(56)간의 중재를 맡게 되며, 또는 표준 버스 브리지(78)가 있는 시스템인 경우에 주변 I/O 장치(56)와 표준 버스 브리지에 접속된 표준 I/O 장치(90)간의 중재를 맡는다. 주변 I/O 장치(56)와 표준 I/O 장치(90)는 MICROCHANNEL(MC-A) 또는 ISA 구조와 호환성이 있다. 제2도 및 3도에 도시된 바와 같이, 비록 DACP를 ISA-형 제어 신호에 응답하도록 구현할 수 있다 하더라도, DACP(104)가 응답하는 제어 신호는 MC-A 구조와 대응한다.
(표준 버스 브리지(78)가 없는) 제2도를 계속하여 참조하면, DACP(104)는 직접-접속 MC-A 장치 지원부(106)로 표시된 DACP의 일부에서 주변 I/O 장치(56)를 대신하여 I/O 제어기(44)로부터의 주 PCI 버스 액세스 요청을 수신한다. 이러한 요청은 DPREEMPTINT#선을 통해 수신될 수 있다. DACP(104)의 직접-접속 MC-A 장치 지원부(106)는 주 PCI 버스(22)를 액세스하기 위해 경쟁하는 주변 I/O 장치(56)간의 중재를 수행함에 있어 중재사이클과 승인 사이클을 번갈아 실행(alternate)한다. DARBGN#선의 상태는 직접-접속 MC-A 장치 지원부(106)가 중재사이클중인지 또는 승인사이클중인지를 나타낸다. 버스 액세스 요청은 DPREEMPTOUT#선을 통해 관리된다. DPREEMPTOUT# 출력과 DPREEMPTIN# 입력은 MC-A 프로토콜을 따른다. 직접-접속 MC-A 장치 지원부(106)로 입력되고 출력되는 다른 신호선은 제3도와 관련하여 설명될 것이다. 제2도에서, 표준 버스 브리지(78)가 없으므로 DACP(104)로 입력되고 출력되는 BRIDGE_RE#, BRIDGE_GNT#, 그리고 BRIDGE_SIDEBAND 신호선는 디스에이블(disable)된다.
그러나, 제3도에서 시스템(10)은 주 PCI 버스(22)에 연결된 표준 버스(확장) 브리지(78)를 포함한다. 이 실시예에서, DACP(104)는 I/O 제어기(44)에 의해 제어되는 주변 I/O 장치(56)와 표준 버스 브리지(78)에 의해 지원되는 표준 I/O 버스(92)에 접속된 표준 I/O 장치(90) 사이를 중재하며, 각각의 장치는 주 PCI 버스(22)를 액세스하기 위해 경쟁한다. 전술한 바와 같이, 주변 I/O 장치(56)와 표준 I/O 장치(90)는 MC-A 또는 ISA와 호환성이 있다.
PCI 장치(18)는 PCI 버스(22)에 대한 액세스를 요청하고 승인받기 위하여 역시 5개의 요청/승인쌍 REQ0#/GNT0# 내지 REQ4#/GNT4#를 사용한다. 그러나, 이러한 요청/승인선은 PACP(102)가 아니라 2차 PCI 중재 제어점, PACP2(108)에 접속된다. PACP2(108)는 물리적으로 표준 버스 브리지(78)내에 위치하고 PACP(102)에 직렬 접속(cascade)된다. PACP2(108)는 접속된 주 PCI 장치(18)간을 중재하여 단일 버스 액세스 요청 PACP2_REQ#를 주 PACP(102)에 제공한다. 중재 우선순위는 이들이 PACP(102)에서 관리했던 방식과 유사한 방식으로 처리된다. 다음에 PACP는 CPU(24)(BREQ/CPUREQ#선에 제공된 버스 액세스 요청)와 가장 높은 우선순위 PCI 장치(PACP2_REQ#선에 제공된 버스 액세스 요청)간을 중재한다. 주 PCI 장치는 PCI 버스 액세스에 대한 요청을 PACP2_GNT#선을 통해 승인받는다.
제3도의 실시예에서, PCI 장치간의 중재가 SACP(42)의 외부에서 처리되므로, SACP로 입력되고 출력되는 요청/승인선의 기능은 제3도의 시스템에 대해 재정의(redefine)된다. 제4도에는 제2도 및 3도에 도시된 실시예에 대응하는 SACP(42)의 핀접속의 다른(alternate) 정의를 나타내는 테이블이 도시되어 있다. 주 PCI 버스(제2도)에 접속된 표준 버스 브리지(78)를 가지지 않은 시스템에서, 주 PCI 장치가 PCI 버스(22)에 대한 액세스를 요청하고 승인받기 위해 사용하는 5쌍의 요청/승인선 REQ0#와 GNT0# 내지 REQ4# 및 GNT4#는 시스템이 표준 버스 브리지(78)를 포함함에 따라(제3도) 재정의된다. PACP2(108)는 SACP(42)의 외부에서 주 PCI 장치 버스 액세스 요청을 처리하고 PACP(102)에 단일 요청을 제공하므로, REQ4#는 단일 요청 PACP2_REQ#로 재정의된다. 유사하게, GNT4#는 PACP로부터 PACP2로의 단일 승인선 PACP2_GNT#로 재정의된다. PACP(102)로 입력 및 출력되는 REQ0#/GNT0# 내지 REQ3#/GNT3#는 디스에이블된다.
제3도의 시스템에서 8개의 입력/출력선(REQ0#/GNT0# 내지 REQ3#/GNT3#)이 디스에이블되므로, PACP2의 추가에 의해 자유로워진 8개의 새로운 핀 접속이 SACP로의 입력으로 사용될 수 있다. 이들 입력/출력선은 제3도의 시스템에 있어 주변 I/O 장치와 표준 I/O 장치(90)를 동시에 중재하는데 필요하다. 제3도에 도시한 바와 같이, 물리적으로 MC-A 브리지(78)에 위치한 중앙 중재 제어점(CACP)(110)은 MC-A 장치(90)의 중재를 관리한다(ISA 장치의 경우, ISA 프로토콜이 ISA 호환 중재 장치에 접속된 장치로/로부터 직접 요청 및 긍정응답을 지원하기 때문에, ISA 장치의 중재는 ISA 호환 중재장치에 의해 ISA_DREQ#와 ISA_DACK#선을 통해 처리될 것이다).
MC-A 장치는 PREEMPT# 신호를 활성화시켜 CACP(110)로 전달하여 중재를 요청한다. CACP는 ARBGNT#선의 상태에 의해 표시되는 중재와 승인 사이클 사이를 번갈아 실행한다. PREEMPT# 신호가 활성화될때, CACP는 중재 상태로 진입하며, 그 중재 상태 동안 MC-A 장치는 그들의 중재 식별 출력(arbitration identification outputs)(ARBID(0-3))을 구동한다. 300나노초 경과 후, 최고 우선순위 MC-A 장치의 중재 식별이 ARBID(0-3)선상에 남는다. 이러한 단일 요청이 BRIDGE_REQ# 신호선을 통해 DACP(104)에 전달된다. DACP는, CACP에 의해 제공된 요청의 우선순위가 주변 I/O 장치(56)를 대신하여 I/O 제어기(44)로부터 제공된 요청의 우선순위보다 높다고 판단하면, BRIDGE_GNT# 신호선을 활성화시킬 것이다. (제4도에 도시된 바와 같이, REQ3#/GNT3#선은 DACP(104)로 입력 및 출력되는, 제2도와 대응하는 시스템에서 디스에이블된 BRIDGE_REQ#와 BRIDGE_GNT# 신호선으로 재정의된다.) 시스템이 확장 브리지(78)를 포함한다면, BRIDGE_REQ# 신호는 중재 사이클중에는 확장 버스 마스터 또는 DMA 슬레이브를 대신한 요구로서 사용되고, DMA 승인 사이클중에는 BURST# 신호로서 사용되며, 그리고 직렬 접속/버스 마스터 동작중에는 전송 종료의 표시로서 사용된다. BRIDGE_GNT# 신호는 DACP(104)가 PCI 버스(22)에 대한 액세스를 승인한 때를 MC-A 장치(90)에 알려준다. ARBGNT#선은 승인 상태로 진입하고, 최고 우선순위 MC-A 장치는 이 장치가 선택되었는지와 이 장치의 버스 액세스 요청이 승인되었는지를 판단한다. CACP(110)의 동작은 중재 보류를 사용한 제어 버스 할당(Controlling Bus Allocation Using Arbitration Hold)이란 명칭으로 1991년 10월 15일 출원되어 계류중인 미합중국 특허 출원번호 제07/777,777호 및 이중 버스 구조를 가지는 컴퓨터 시스템의 중재 제어 논리(Arbitration Control Logic for Computer System having Dual Bus Architecture)란 명칭으로 1992년 1월 2일 출원되어 계류중인 미합중국 특허 출원번호 제07/816,116호에 상세히 기술되어 있으며, 이들의 텍스트(text)는 본 명세서에서 참조로서 인용된다.
SACP(42)로의 6개의 잔류 입력, REQ0#/GNT0# 내지 REQ2#/GNT2#는(제2도와 대응하는 시스템에서 디스에이블된) 6개의 BRIDGE_SIDEBAND 신호로서 재정의된다. BRIDGE_SIDEBAND 신호는 PCI 구조 사양에서는 정의되지 않았으나, 표준 버스 브리지(78)에 접속된 표준 I/O 장치(90)와 같은 PCI 버스상의 DMA 주변 장치뿐만 아니라 중재를 지원하여, 효과적인 PCI-ISA 또는 PCI-MC-A 인터페이스를 제공하기 위해 필요하다. BRIDGE_SIDEBAND선은 표준 버스 브리지(78)를 SACP(42)에 직접 접속한다. 제4도를 참조하면, 이러한 BRIDGE_SIDEBAND 신호는 표준 버스 브리지(78)가 MC-A 또는 ISA 호환인가에 따라 상이한 정의를 가진다. 브리지가 승인되지 않았을 경우, 6개의 측대역은 PCI 버스 액세스 요청을 제공하는 I/O 장치를 식별하는 식별정보[MC-A내의 ARBID(0) 내지 ARBID(3) ; ISA내의 ISA_DACK(0) 내지 ISA_DACK(2)]를 포함한다.
ARBID(0) 내지 ARBID(3)을 사용하는 본 발명의 MC-A 구현을 참조하면, BRIDGE_SIDEBAND 신호선은 PCI 버스(22)에 대한 액세스를 요청하는 MC-A 장치(90) 및 주 PCI 장치(18)와 관련하여 SACP(42)에 식별 정보를 전송하는데 사용된다. 이들 4개의 선의 상태는 어느 주 PCI 장치(18)가 PACP(108)에 의해 관리되는 초기 중재 프로세스(process)를 획득하였는지를 PACP(102)에 알려주며, 또한 어느 MC-A 장치(90)가 CACP(110)에 의해 관리되는 초기 중재 프로세스를 획득하였는지를 DACP(104)에 알려준다. 버스 액세스 요청을 제공하는 주 PCI 장치를 식별하는 정보를 PACP2에 제공하고 또한 버스 액세스 요청을 제공하는 MC-A 장치를 식별하는 정보를 CACP(110)에 제공하므로써, PACP와 DACP는 (i) 주 PCI 장치와 CPU간의 중재, (ii) 확장 브리지에 의해 지원되는 I/O 장치와 직접-접속된 주변 I/O 장치간의 중재를 보다 공정하게 할 수 있다.
I/O 제어기(44)를 통해 PCI 버스 액세스 요청을 제공하는 주변 I/O 장치(56)에 관계되는 식별 정보는 직접-접속 MC-A 장치 지원부(106)로의 DARBIN(0-3) 입력 및 그로부터의 DARBOUT(0-3) 출력에 의해 전달된다. CACP(110)와는 달리, 직접-접속 MC-A 장치 지원부(106)에는 개방 콜렉터 양방향성 중재 식별선(open collector bidirectional arbitration identification lines)이 제공되지 않으므로, 분리된 DARBIN과 DARBOUT선이 필요하다. 그렇지 않으면, 직접-접속 MC-A 장치 지원부(106)가 수행하는 중재는 CACP(110)의 경우처럼 관리된다. 이러한 방식으로, DACP(104)는 CACP(110)가 제공한 요청이 I/O 제어기(44)가 제공한 요청보다 높은 우선순위를 가지는지를 판단하며, BACP에 BANK1_REQ#를 제공한다.
모든 주변 I/O 장치(56)와 표준 I/O 장치(90)는 중재 우선순위를 할당받는다. DACP(104)에는 이러한 우선순위를 비교하는 비교기(comparator)가 제공되어 PCI 버스(22)에 대한 액세스를 승인받아야 할 장치를 결정한다. 유사하게, PACP(102)는 PACP2(108)의 요청이 CPU(24)의 요청보다 우선하는지를 판단하여 BANK0_REQ#를 BACP(100)에 제공한다. BACP는 각각의 뱅크 중재기에 사전설정된 시간을 제공하도록 프로그램되어 있으며, 이 사전설정된 시간중에 그 뱅크 중재기가 중재를 담당하는 장치를 대신하여 PCI 버스(22)의 제어를 행한다. 개개의 뱅크 중재기는 이들에게 할당된 시간을 세분하여 연관된 뱅크 장치로 나누어 준다. 만일 뱅크 요청이 활성화되지 않았다면, BACP는 CPU(24)가 상주하는 PACP(102)상에 머무른다. 중재 정보가 CACP(110)와 PACP1(108)의 양자 모두로부터 필요하다. 이 정보는 중재 측대역 신호를 통해 주 중재기에 제공된다. 제5도는 이러한 신호가 멀티플렉스될 수 있는 한가지 방식을 표현하는 테이블이 도시되어 있다.
각각의 뱅크 중재기는 연관된 유휴(idle) 신호와 타임아웃(timeout) 신호를 가지며, 이들 신호는 BACP(100)로 출력된다. 유휴신호[PACP(102)의 PACP_IDLE, DACP(104)의 DACP_IDLE, 그리고 PCI 2차 브리지(80)의 PSB_IDLE]에 대하여, 각각의 뱅크 중재기는 프로그램 가능 승인 타이머와 유휴 타이머를 가진다. 승인 타이머는 다른 뱅크가 PCI 버스의 액세스를 요청할때 뱅크에 제공될 최대 시간을 규정하며 BANK0_GNT# 내지 BANKN_GNT# 신호가 얼마나 오래동안 활성화 상태로 있을지를 규정한다. 유휴 타이머는 한 장치가 버스의 액세스를 상실하기 전에 PCI 버스상에서 비활성화 상태로 남아 있을 수 있는 최대 시간을 규정한다. 예를들어, 만일 한 장치가 주 PCI 버스에 대한 액세스를 승인받았으며 버스를 통한 데이타 전송을 그의 버스상에서 시간이 종료하기 전에 완료했다면, 유휴 타이머는 PCI 버스의 활동을 모니터할 것이며, 사전설정된 수의 클럭 사이클 동안 어떤 활동도 검출되지 않았다면, PCI 버스에 대한 액세스는 철회되어 다른 요청중인 장치로 넘어 간다. 타임아웃 신호[PACP(102)의 PACP_TOUT, DACP(104)의 DACP-TOUT, PCI 2차 브리지(80)의 PSB_TOUT]는 주 PCI 버스에 대한 액세스를 철회시킨 장치가 사전설정된 시간내에 버스를 포기하지 않을때 활성화된다.
CACP(110)로의 BURST# 입력은, 이미 표준 I/O 버스를 제어하고 있으며 버스를 통해 정보를 버스팅(bursting)할 수 있는 MC-A가 버스트 동작(표준 I/O 버스를 통해 하나 이상의 데이타 전송)을 수행할 준비가 되었음을 알리기 위한 수단을 제공한다. CACP(110)는, 모든 데이타 다중 전송이 표준 I/O 버스를 통해 완료될때까지, 버스팅 I/O 장치에 대하여 표준 I/O 버스의 제어를 승인 모드(mode)로 유지하므로써 이러한 요청에 응답한다. 표준I/O 버스를 통한 버스트 전송이 완료되었을때, I/O 장치는 BURST# 요청선을 비활성화시키며, CACP는 I/O 장치가 버스 액세스를 종료하였다고 결정하고 다음 중개 사이클을 시작한다. 비-버스트(non-burst) 전송 환경에서, S0/S1#, BURST#와 CMD# 입력을 통해 CACP로 전송 종료가 표시될때, CACP(110)는 I/O 장치가 버스 액세스를 종료하였다고 결정한다(직접-접속 MC-A 장치 지원부(106)는 주변 I/O 장치가 DCHNLACT 입력을 통해 데이타 전송을 완료하였음을 판단한다).
BRIDGE_SIDEBAND 신호는 상술한 계층적 중재 시스템을 허용하는 것 이외에도, DMA 제어기에 의해 모니터되기도 하며, PCI 버스(22)를 통해 표준 I/O 장치(90) 및 시스템 메모리(32)로 그리고 그들로부터 DMA 사이클을 지원하는데 사용된다. DMA 사이클을 PCI 버스(22)를 통해 지원하기 위해서는 세가지 부류의 신호 즉, 버스 사이클 제어신호, 중재 제어신호, 그리고 DMA 제어신호가 필요하다. 버스 사이클 제어신호는 PCI 개정판 2.0 사양에 규정되어 있다. 중재 제어신호는 상기 기술된 제4a도에 요약되어 있다. DMA 제어신호는 제4b도에 요약되어 있으며 이후 설명된다. 이러한 DMA 지원을 제공하기 위하여, BRIDGE_SIDEBAND 신호의 몇개는 SACP 중재 및 승인 동작 모드동안 상이한 기능을 갖도록 멀티플렉스된다. DMA 제어신호를 중재 제어신호와 함께 멀티플렉스하면 PCI 버스(22)상에서 DMA 사이클 지원을 구현하는데 필요한 핀수를 줄일 수 있다.
DACP(104)가 BRIDGE_GNT#선을 통하여 I/O 장치(90)가 PCI 버스의 액세스를 승인받았음을 나타내면, I/O 브리지(78)상의 CACP(100)는(그의 ARBGNT#선의 상태를 변경시킴으로써) 이러한 승인 상태의 식별을 I/O 장치(90)에 전달한다. 다음에 I/O 장치는 I/O 판독 또는 기록 사이클을 시작할 수 있다. 만일 I/O 장치가 표준 I/O 버스(90)상에서 버스 마스터로서 작용할 수 있다면, DMA 제어기(40)는 상기 판독 또는 기록 동작을 용이하게 해주지 않아도 된다. 그러나, I/O 장치가 I/O 버스(92)상에서 버스 슬레이브로서 작용한다면, DMA 제어기(40)는 I/O 장치를 대신하여 I/O 사이클을 관리해준다.
I/O 장치를 대신하여 I/O 사이클을 관리하기 위해서, DMA 제어기(40)는 이것이 I/O 사이클을 관리하는 I/O 장치의 버스 사이즈(즉, I/O 장치가 8, 16 또는 32비트 장치인지)를 판단하여야 한다. 이러한 동적인 버스 사이징은 DMA 제어기(40)를 대신하여 데이타가 I/O 장치(90)와 DMA 제어기 사이의 I/O 브리지(78)에서 손실되는 것을 방지하는데 필요하다. 예를들어, DMA 제어기가 8비트 DMA 슬레이브에 대하여 32비트 기록 동작을 개시한다면, 32비트 기록 동작은 네번의 8비트 기록 사이클로 변환되어져야 한다. 만일 I/O 브리지(78)가 32비트의 정보를 버퍼링하여 변환 사이클을 실행하고, 그리고 I/O 장치가 더 이상의 데이타를 수신할 수 없다고 나타낸다면, I/O 장치에 대하여 기록 동작을 지속할 수 없거나 데이타를 DMA 제어기 또는 시스템 메모리로 복귀시키지 못한다. 이러한 상황에서 DMA 제어기는 데이타가 I/O 장치에 기록되었는지를 알 수 있는 방법이 없다. 그래서, 데이타가 I/O 브리지(78)에서 손실되는 것을 방지하기 위해서, DMA 제어기(40)는 I/O 장치에 대한 기록 동작을 허용하고 I/O 브리지(78)가 변환 사이클을 실행하지 못하도록 버스 사이즈를 동적으로 검출할 필요가 있다. DMA 제어기(40)는 I/O 사이클을 실행하는 I/O 장치의 버스 사이즈를 검출함으로써, I/O 장치가 수용할 수 없는 데이타를 버퍼링할 수 있으며 필요하다면 또다른 기록 사이클을 I/O 장치에 대하여 실행시킬 수 있다.
그러나, PCI 버스(22)는 I/O 브리지(78)와 DMA 제어기(40)간의 이러한 버스 사이징 정보를 직접 제공할 수 없다. 그 대신에 이러한 정보는 멀티플렉스된 BRIDGE_SIDEBAND 신호로 제공된다. 제4b도에 도시된 바와 같이, BRIDGE_SIDEBAND 신호중 여러개가 멀티플렉스된다(이들 신호의 모두가 멀티플렉스되는 것은 아니다)(MC-A 환경에 있어서, 중재모드에서의 GNT0#와 GNT1#은 승인모드에서 TC#와 DMAACT#로 각기 재정의된다). TC# 신호는, 특정 I/O 장치의 최종 데이타 바이트(byte)가 브리지로 또는 그 브리지로부터 전달된 이후, DMA 제어기에 의해 활성화되고 I/O 브리지(78)에 의해 판독된다. DMAACT#는 DMA 제어기가 활성 상태인지 아닌지를 나타내며, 또한 DMA 슬레이브 또는 버스 마스터가 승인되었는지를 브리지에 의해 판단하는데 사용된다.
DMAACT#가 비활성 상태이면, I/O 버스(92)상의 버스 마스터 장치에 대하여 승인이 이루어졌어야 하므로, CACP(110)는, 상술한 바와 같이, 전송 완료가 CACP로의 S0/S1#, BURST#와 CMD# 입력상에 표시되었을때 버스 마스터 장치가 버스 액세스를 종료하였음을 결정한다. 그러나, 활성 상태의 DMAACT#는 DMA 제어기(40)가 I/O 장치(90)를 대신하여 메모리로 또는 메모리로부터 전송을 수행중이며(메모리 사이클이 아닌 I/O 사이클), 따라서, I/O 브리지는 어떠한 변환 사이클도 실행할 필요가 없음을 I/O 브리지(78)에 알려준다. 이러한 경우, DMA 제어기는, 이하 설명하는 바와 같이, 대신하여 변환 사이클을 실행하는 I/O 장치의 형태(즉, 8,16 또는 32비트)를 멀티플렉스된 BRIDGE_SIDEBAND 신호로부터 판단한 이후 변환 사이클을 실행한다.
DMAACT#는 판독과 기록 동작이 모두 완료될때까지 로우(low)로 유지된다. I/O 장치는 BURST#를 구동하여 전송길이(the length of the transfer)를 알려주며, 이 전송길이는 BRIDGE_REQ 신호를 사용하여 DMA에 다시 반영된다. (비록 I/O 브리지가 최종 I/O 판독/기록을 발생할때 중재 상태를 다시 시작할 수 있을지라도, SACP(42)는 DMA가 PCI 버스를 통해 데이타 전송을 완료하였음을 DMAACT#선의 비활성 상태가 나타낼때까지 승인상태로 유지되어야 한다.
중재모드에서 ARBID(1)와 ARBID(2)는 승인 모드에서 BS16#과 BS8#로서 각기 재정의된다. 이들 신호의 각각은 DMA 제어기(40)에 의해 판독된다. BS8#을 활성화시킴으로써, CACP(110)는 PCI 버스의 소유권(ownership)을 승인받은 I/O 장치가 8비트 장치임을 DMA 제어기에 알려준다. 마찬가지로, BS16#을 활성화시킴으로써, CACP(110)는 PCI 버스의 소유권을 승인받은 I/O 장치가 16비트 장치임을 DMA 제어기에 알려준다. BS16#과 BS8#이 모두 비활성일때는 32비트 장치가 표시된다. 중재모드에서 ARBID(3)는 승인 모드에서 BSV#로서 재정의된다. BSV#는 I/O 브리지(78)에 의해 활성상태로 구동되어 DMA 제어기에 BS16#과 BS8# 신호가 유효한 시간을 알려준다. 이러한 세개의 신호, 즉, BS16#, BS8# 그리고 BSV#는 DMA 제어기가 대신하여 I/O 사이클을 8,16 또는 32비트 장치로서 실행하는 I/O 장치를 식별하기 위해 필요하며, 또한 이들 신호는 TC#가 브리지 사이클과 관련하여 정확한 타이밍에 따라 활성 상태로 구동될 것을 보장하는데 사용된다.
표준 I/O 브리지(78)와 I/O 버스(92)의 ISA 구현에 대하여, 중재모드에서 GNT0#와 GNT1#는 승인모드에서 각각 TC#와 DMAACT#로 재정의된다. 그러나, 버스 사이징 신호 BSV#, BS8#과 BS16#에 대해서는 ISA 버스가 이 버스에 접속된 I/O 장치에 대한 전용 대역폭 (dedicated bandwidths)을 제공해 주기 때문에 재정의할 필요는 없다. ISA 버스가 지원하는 여덟 채널중의 네 채널은 8비트 장치용이고 세 채널은 16비트 장치용으로 유보되어 있다. 그러므로, DMA 제어기(40)는 각각의 채널상의 장치의 형태를 알고 있으며 이들 선에 대응하는 BRIDGE_SIDEBAND 신호는 ISA 환경에서 사용되지 않는다.
따라서, PCI 버스와 같은 고성능 버스를 포함한 다중 버스 컴퓨터 시스템의 DMA 사이클 논리의 바람직한 실시예가 기술되었다. 그러나, 전술한 설명은 단지 예시적인 것에 불과한 것이며, 본 발명이 본 명세서에서 설명한 특정 실시예로 제약되어서는 안되며, 다음의 청구범위에 기재된 본 발명의 사상을 벗어나는 일없이 다양한 재배치, 변경 및 대체가 가능하다는 것을 이해하여야 할 것이다.

Claims (11)

  1. 중앙 처리 장치(CPU)와 ; 상기 CPU가 시스템 메모리로부터 데이타를 판독하고 상기 시스템 메모리로 데이타를 기록할 수 있도록, 상기 CPU를 상기 시스템 메모리에 접속시키는 제1시스템 버스와; 상기 CPU에 접속된 제2시스템 버스와; 상기 제2시스템 버스를 주변 버스(peripheral bus)에 접속시키는 호스트 브리지(host bridge)와; 상기 주변 버스를 표준 I/O 버스(standard I/O bus)에 연결된 다수의 표준 I/O 장치를 갖는 표준 I/O 버스에 접속시키는 입력/출력 브리지(I/O bridge)와; 상기 표준 I/O 버스를 액세스(access)하기 위해 경쟁하는 상기 다수의 표준 I/O 장치간을 중재(arbitrate)하는 중재모드(arbitration mode)와, 선택된 표준 I/O 장치가 상기 표준 I/O 버스에 대한 액세스를 승인받는 승인 모드(grant mode)에서 동작하는 중재 논리(arbitration logic)와; 상기 CPU의 개입없이 데이타를 상기 시스템 메모리와 상기 선택된 I/O 장치 사이에서 전송하는 DMA 사이클을 상기 선택된 표준 I/O 장치를 대신하여 실행하는 직접 메모리 액세스(DMA) 제어기와; 상기 DMA 사이클을 상기 주변 버스를 통해 실행시켜 주는 직접 메모리 액세스(DMA) 지원논리(support logic)를 포함하는 정보 처리 시스템.
  2. 제1항에 있어서, 상기 DMA 지원논리는 상기 DMA 제어기를 상기 I/O 브리지에 직접 접속시키는 측대역(sideband) 신호를 포함하며, 상기 측대역 신호는 상기 DMA 제어기가 상기 DMA 사이클을 실행하는 상기 선택된 I/O 장치의 버스 사이즈(bus size)를 식별하는 정보를 포함하는 정보 처리 시스템.
  3. (i) 제1시스템 버스에 의해 메모리에 접속된 중앙 처리 장치(CPU)와; (ii) 상기 CPU에 접속된 제2시스템 버스와; (iii) 상기 제2시스템 버스를 주변 버스에 접속시키는 호스트 브리지와; (iv) 상기 주변 버스를 표준 I/O 버스에 연결된 다수의 표준 I/O 장치를 갖는 표준 I/O 버스에 접속시키는 입력/출력(I/O) 브리지와; (v) 상기 표준 I/O 버스를 액세스하기 위해 경쟁하는 상기 다수의 표준 I/O 장치간의 중재를 위한 중재모드와, 선택된 표준 I/O 장치가 상기 표중 I/O 버스에 대한 액세스를 승인받는 승인모드에서 동작하는 중재 논리를 구비한 컴퓨터 시스템에 사용하기 위한 직접 메모리 액세스(DMA) 지원 메카니즘(support mechanism)에 있어서, 상기 DMA 지원 메카니즘이: 상기 CPU의 개입없이 데이타를 상기 시스템 메모리와 상기 선택된 I/O 장치 사이에서 전송하는 DMA 사이클을 상기 선택된 표준 I/O 장치를 대신하여 실행하는 직접 메모리 액세스(DMA) 제어기와; 상기 DMA 사이클을 상기 주변 버스를 통해 실행시켜 주는 직접 메모리 액세스(DMA) 지원 논리를 포함하며, 상기 DMA 지원 논리는 상기 DMA 제어기를 상기 I/O 브리지에 직접 접속시키는 측대역 신호를 구비하고, 상기 측대역 신호는 상기 DMA 제어기가 상기 DMA 사이클을 실행하는 상기 선택된 I/O 장치의 버스 사이즈를 식별하는 정보를 가지는, 컴퓨터 시스템.
  4. 제1항 또는 제3항에 있어서, 상기 주변 버스는 주변 구성 장치 상호접속(Peripheral Component Interconnect, PCI)구조에 따르는 컴퓨터 시스템.
  5. 제1항 또는 제3항에 있어서, 상기 DMA 제어기는 상기 주변 버스상에 상주하는 컴퓨터 시스템.
  6. 제1항 또는 제3항에 있어서, 상기 DMA 제어기는 상기 제2시스템 버스상에 상주하는 컴퓨터 시스템.
  7. 제1항 또는 제3항에 있어서, 상기 주변 버스와 상기 제2시스템 버스는 적어도 32비트의 데이타 폭을 가지는 컴퓨터 시스템.
  8. 제1항 또는 제3항에 있어서, 상기 표준 I/O 버스는MICROCHANNEL구조에 따르는 컴퓨터 시스템.
  9. 제1항 또는 제3항에 있어서, 상기 표준 I/O 버스는 ISA 구조에 따르는 컴퓨터 시스템.
  10. 제1항 또는 제3항에 있어서, 상기 컴퓨터 시스템은, (i) 상기 제2시스템 버스상에 상주하고 상기 제2시스템 버스를 주변 I/O 버스에 접속시키는 I/O 제어기와; (ii) 상기 주변 I/O 버스에 접속된 다수의 I/O 장치를 더 포함하며; 상기 DMA 제어기는 상기 CPU의 개입없이 데이타를 상기 시스템 메모리와 상기 주변 I/O 장치 사이에서 전송하는 DMA 사이클을 상기 주변 I/O 장치를 대신하여 실행하는 컴퓨터 시스템.
  11. 제1항 또는 제3항에 있어서, 상기 측대역 신호는 상기 중재 논리가 상기 중재모드에 있을때 제1기능을 규정하고 상기 중재 논리가 상기 승인 모드에 있을때 제2기능을 실행하도록 멀티플렉스되는 컴퓨터 시스템.
KR1019940011537A 1993-05-28 1994-05-26 정보 처리 시스템 및 컴퓨터 시스템 KR970000842B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/068,477 US5450551A (en) 1993-05-28 1993-05-28 System direct memory access (DMA) support logic for PCI based computer system
US068,477 1993-05-28

Publications (1)

Publication Number Publication Date
KR970000842B1 true KR970000842B1 (ko) 1997-01-20

Family

ID=22082827

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940011537A KR970000842B1 (ko) 1993-05-28 1994-05-26 정보 처리 시스템 및 컴퓨터 시스템

Country Status (10)

Country Link
US (1) US5450551A (ko)
EP (1) EP0628914B1 (ko)
JP (1) JP2505114B2 (ko)
KR (1) KR970000842B1 (ko)
CN (1) CN1069426C (ko)
AT (1) ATE186412T1 (ko)
BR (1) BR9402105A (ko)
CA (1) CA2124031C (ko)
DE (1) DE69421453T2 (ko)
TW (1) TW260769B (ko)

Families Citing this family (109)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW276312B (ko) * 1992-10-20 1996-05-21 Cirrlis Logic Inc
US5805927A (en) * 1994-01-28 1998-09-08 Apple Computer, Inc. Direct memory access channel architecture and method for reception of network information
US5655151A (en) * 1994-01-28 1997-08-05 Apple Computer, Inc. DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
US5828856A (en) * 1994-01-28 1998-10-27 Apple Computer, Inc. Dual bus concurrent multi-channel direct memory access controller and method
US5761450A (en) * 1994-02-24 1998-06-02 Intel Corporation Bus bridge circuit flushing buffer to a bus during one acquire/relinquish cycle by providing empty address indications
US5805834A (en) * 1994-03-30 1998-09-08 Zilog, Inc. Hot reconfigurable parallel bus bridging circuit
US5696917A (en) * 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
BR9507958A (pt) * 1994-06-08 1998-05-26 Intel Corp Interface de conector de unidade de disco para uso em barramento de pci
WO1996008773A2 (en) * 1994-09-16 1996-03-21 Cirrus Logic, Inc. Pcmcia dma data bus mastering
US5546590A (en) * 1994-09-19 1996-08-13 Intel Corporation Power down state machine for PCMCIA PC card applications
US5619726A (en) * 1994-10-11 1997-04-08 Intel Corporation Apparatus and method for performing arbitration and data transfer over multiple buses
US5619728A (en) * 1994-10-20 1997-04-08 Dell Usa, L.P. Decoupled DMA transfer list storage technique for a peripheral resource controller
US5555383A (en) * 1994-11-07 1996-09-10 International Business Machines Corporation Peripheral component interconnect bus system having latency and shadow timers
US5561820A (en) * 1994-11-30 1996-10-01 International Business Machines Corporation Bridge for interfacing buses in computer system with a direct memory access controller having dynamically configurable direct memory access channels
US5623697A (en) * 1994-11-30 1997-04-22 International Business Machines Corporation Bridge between two buses of a computer system with a direct memory access controller having a high address extension and a high count extension
US5621902A (en) * 1994-11-30 1997-04-15 International Business Machines Corporation Computer system having a bridge between two buses with a direct memory access controller and an alternative memory access controller
US5678064A (en) * 1994-12-01 1997-10-14 International Business Machines Corporation Local bus-ISA bridge for supporting PIO and third party DMA data transfers to IDE drives
US5642489A (en) * 1994-12-19 1997-06-24 International Business Machines Corporation Bridge between two buses of a computer system with a direct memory access controller with accessible registers to support power management
US5867717A (en) * 1994-12-22 1999-02-02 Texas Instruments Incorporated Dynamic system clocking and address decode circuits, methods and systems
US5835733A (en) * 1994-12-22 1998-11-10 Texas Instruments Incorporated Method and apparatus for implementing a single DMA controller to perform DMA operations for devices on multiple buses in docking stations, notebook and desktop computer system
US5568619A (en) * 1995-01-05 1996-10-22 International Business Machines Corporation Method and apparatus for configuring a bus-to-bus bridge
US6212589B1 (en) * 1995-01-27 2001-04-03 Intel Corporation System resource arbitration mechanism for a host bridge
US5596729A (en) * 1995-03-03 1997-01-21 Compaq Computer Corporation First arbiter coupled to a first bus receiving requests from devices coupled to a second bus and controlled by a second arbiter on said second bus
US5729762A (en) * 1995-04-21 1998-03-17 Intel Corporation Input output controller having interface logic coupled to DMA controller and plurality of address lines for carrying control information to DMA agent
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
US5978860A (en) * 1995-06-07 1999-11-02 Dell Usa, L.P. System and method for disabling and re-enabling at least one peripheral device in a computer system by masking a device-configuration-space-access-signal with a disable or re-enable signal
US5692219A (en) * 1995-06-07 1997-11-25 Dell Usa, Lp System and method for disabling or re-enabling PCI-compliant devices in a computer system by masking the idsel signal with a disable or re-enable signal
US6219754B1 (en) 1995-06-07 2001-04-17 Advanced Micro Devices Inc. Processor with decompressed video bus
US5761443A (en) * 1995-06-07 1998-06-02 Advanced Micro Systems, Inc. Computer system employing a bus conversion bridge for interfacing a master device residing on a multiplexed peripheral bus to a slave device residing on a split-address, split-data multiplexed peripheral bus
US5590377A (en) * 1995-06-07 1996-12-31 Ast Research, Inc. Automatic control of distributed DMAs in a PCI bus system supporting dual ISA buses
US5752081A (en) * 1995-06-08 1998-05-12 Vlsi Technology, Inc. Signalling system and method for allowing a direct memory access (DMA) input/output (I/O) device on the peripheral component interconnect (PCI) bus to perform DMA transfers
JP3576647B2 (ja) * 1995-08-11 2004-10-13 株式会社東芝 コンピュータシステム
US5790897A (en) * 1995-08-21 1998-08-04 New Media Corp. Plug-in computer card with internal audio speaker element
US5644734A (en) * 1995-08-24 1997-07-01 Ncr Corporation Method and apparatus for multiplexing bus connector signals with sideband signals
US5752076A (en) * 1995-08-31 1998-05-12 Intel Corporation Dynamic programming of bus master channels by intelligent peripheral devices using communication packets
US5784592A (en) * 1995-09-11 1998-07-21 Advanced Micro Devices, Inc. Computer system which includes a local expansion bus and a dedicated real-time bus for increased multimedia performance
US5812800A (en) * 1995-09-11 1998-09-22 Advanced Micro Devices, Inc. Computer system which includes a local expansion bus and a dedicated real-time bus and including a multimedia memory for increased multi-media performance
US5692211A (en) * 1995-09-11 1997-11-25 Advanced Micro Devices, Inc. Computer system and method having a dedicated multimedia engine and including separate command and data paths
US5784650A (en) * 1995-09-11 1998-07-21 Avanced Micro Devices, Inc. System for increasing multimedia performance and other real time applications by including a local expansion bus and a multimedia bus on the computer system motherboard
US5805842A (en) * 1995-09-26 1998-09-08 Intel Corporation Apparatus, system and method for supporting DMA transfers on a multiplexed bus
US5754807A (en) * 1995-11-20 1998-05-19 Advanced Micro Devices, Inc. Computer system including a multimedia bus which utilizes a separate local expansion bus for addressing and control cycles
US5754801A (en) * 1995-11-20 1998-05-19 Advanced Micro Devices, Inc. Computer system having a multimedia bus and comprising a centralized I/O processor which performs intelligent data transfers
US5905879A (en) * 1995-11-20 1999-05-18 Advanced Micro Devices, Inc. System and method for transferring periodic data streams on a multimedia bus
US5682484A (en) * 1995-11-20 1997-10-28 Advanced Micro Devices, Inc. System and method for transferring data streams simultaneously on multiple buses in a computer system
US5797018A (en) * 1995-12-07 1998-08-18 Compaq Computer Corporation Apparatus and method of preventing a deadlock condition in a computer system
US5748921A (en) * 1995-12-11 1998-05-05 Advanced Micro Devices, Inc. Computer system including a plurality of multimedia devices each having a high-speed memory data channel for accessing system memory
JP3403284B2 (ja) 1995-12-14 2003-05-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理システム及びその制御方法
US5764929A (en) * 1995-12-18 1998-06-09 International Business Machines Corporation Method and apparatus for improving bus bandwidth by reducing redundant access attempts
US6148356A (en) * 1995-12-27 2000-11-14 Intel Corporation Scalable computer system
US6134622A (en) * 1995-12-27 2000-10-17 Intel Corporation Dual mode bus bridge for computer system
US5828865A (en) * 1995-12-27 1998-10-27 Intel Corporation Dual mode bus bridge for interfacing a host bus and a personal computer interface bus
US5963721A (en) * 1995-12-29 1999-10-05 Texas Instruments Incorporated Microprocessor system with capability for asynchronous bus transactions
US5859990A (en) * 1995-12-29 1999-01-12 Intel Corporation System for transferring data segments from a first storage device to a second storage device using an alignment stage including even and odd temporary devices
US5790814A (en) * 1996-01-23 1998-08-04 Dell U.S.A., L.P. Technique for supporting semi-compliant PCI devices behind a PCI-to-PCI bridge
KR0167726B1 (ko) * 1996-01-30 1999-01-15 김광호 버스의 우선권 선택장치
US5911051A (en) * 1996-03-29 1999-06-08 Intel Corporation High-throughput interconnect allowing bus transactions based on partial access requests
US6317803B1 (en) 1996-03-29 2001-11-13 Intel Corporation High-throughput interconnect having pipelined and non-pipelined bus transaction modes
US5774744A (en) * 1996-04-08 1998-06-30 Vlsi Technology, Inc. System using DMA and descriptor for implementing peripheral device bus mastering via a universal serial bus controller or an infrared data association controller
US5845151A (en) * 1996-04-08 1998-12-01 Vlsi Technology, Inc. System using descriptor and having hardware state machine coupled to DMA for implementing peripheral device bus mastering via USB controller or IrDA controller
US5778194A (en) * 1996-04-08 1998-07-07 Symbios, Inc. Method and apparatus for measuring performance of a computer bus
SG77135A1 (en) * 1996-04-26 2000-12-19 Texas Instruments Inc Method and system for assigning a channel number to a received data packet
US5898892A (en) * 1996-05-17 1999-04-27 Advanced Micro Devices, Inc. Computer system with a data cache for providing real-time multimedia data to a multimedia engine
US5754884A (en) * 1996-05-20 1998-05-19 Advanced Micro Devices Method for improving the real-time functionality of a personal computer which employs an interrupt servicing DMA controller
US5748945A (en) * 1996-05-31 1998-05-05 International Business Machiens Corporation Method for slave DMA emulation on a computer system bus
US5748944A (en) * 1996-05-31 1998-05-05 International Business Machines Corporation Apparatus for slave DMA emulation on a computer system bus
US5802269A (en) * 1996-06-28 1998-09-01 Intel Corporation Method and apparatus for power management of distributed direct memory access (DDMA) devices
US6000043A (en) * 1996-06-28 1999-12-07 Intel Corporation Method and apparatus for management of peripheral devices coupled to a bus
US5748640A (en) * 1996-09-12 1998-05-05 Advanced Micro Devices Technique for incorporating a built-in self-test (BIST) of a DRAM block with existing functional test vectors for a microprocessor
US5867645A (en) * 1996-09-30 1999-02-02 Compaq Computer Corp. Extended-bus functionality in conjunction with non-extended-bus functionality in the same bus system
US5805836A (en) * 1996-12-10 1998-09-08 International Business Machines Corporation Method and apparatus for equalizing grants of a data bus to primary and secondary devices
US5907689A (en) * 1996-12-31 1999-05-25 Compaq Computer Corporation Master-target based arbitration priority
US5974496A (en) * 1997-01-02 1999-10-26 Ncr Corporation System for transferring diverse data objects between a mass storage device and a network via an internal bus on a network card
US5978866A (en) * 1997-03-10 1999-11-02 Integrated Technology Express, Inc. Distributed pre-fetch buffer for multiple DMA channel device
US6016525A (en) * 1997-03-17 2000-01-18 Lsi Logic Corporation Inter-bus bridge circuit with integrated loopback capability and method for use of same
US5909559A (en) * 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US6195593B1 (en) 1997-09-03 2001-02-27 Seiko Epson Corporation Reusable modules for complex integrated circuit devices
US6442632B1 (en) 1997-09-05 2002-08-27 Intel Corporation System resource arbitration mechanism for a host bridge
US6393508B2 (en) 1997-09-30 2002-05-21 Texas Instruments Incorporated Method and apparatus for multiple tier intelligent bus arbitration on a PCI to PCI bridge
US6049845A (en) * 1997-11-05 2000-04-11 Unisys Corporation System and method for providing speculative arbitration for transferring data
US6230219B1 (en) 1997-11-10 2001-05-08 International Business Machines Corporation High performance multichannel DMA controller for a PCI host bridge with a built-in cache
US6098133A (en) * 1997-11-28 2000-08-01 Motorola, Inc. Secure bus arbiter interconnect arrangement
US6233639B1 (en) 1999-01-04 2001-05-15 International Business Machines Corporation Memory card utilizing two wire bus
US6615291B1 (en) * 1999-03-08 2003-09-02 Minolta Co., Ltd. DMA controller with dynamically variable access priority
US6560740B1 (en) 1999-08-03 2003-05-06 Advanced Micro Devices, Inc. Apparatus and method for programmable built-in self-test and self-repair of embedded memory
US6463483B1 (en) * 2000-01-19 2002-10-08 Bae Systems Controls, Inc. Low latency input-output interface
US6636929B1 (en) 2000-04-06 2003-10-21 Hewlett-Packard Development Company, L.P. USB virtual devices
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6732234B1 (en) 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6848024B1 (en) 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6950893B2 (en) * 2001-03-22 2005-09-27 I-Bus Corporation Hybrid switching architecture
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US6715042B1 (en) * 2001-10-04 2004-03-30 Cirrus Logic, Inc. Systems and methods for multiport memory access in a multimaster environment
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
TW576977B (en) * 2002-09-11 2004-02-21 Sunplus Technology Co Ltd Structure and method for planning control commands and data access
US20040059862A1 (en) * 2002-09-24 2004-03-25 I-Bus Corporation Method and apparatus for providing redundant bus control
US7493429B2 (en) * 2003-07-08 2009-02-17 Microsoft Corporation Communication of information via a side-band channel, and use of same to verify positional relationship
JP2005078161A (ja) * 2003-08-28 2005-03-24 Canon Inc 記録装置
DE602005027003D1 (de) * 2005-06-30 2011-04-28 Freescale Semiconductor Inc Einrichtung und verfahren zur steuerung einer ausführung einer dma-task
DE602005017948D1 (de) 2005-06-30 2010-01-07 Freescale Semiconductor Inc Einrichtung und verfahren zum arbitrieren zwischen direktspeicherzugriffs-task-anforderungen
DE602005023542D1 (de) * 2005-06-30 2010-10-21 Freescale Semiconductor Inc Einrichtung und verfahren zum ausführen einer dma-task
DE602005015632D1 (de) * 2005-06-30 2009-09-03 Freescale Semiconductor Inc Einrichtung und verfahren zur steuerung mehrerer dma-tasks
US7525957B2 (en) * 2005-09-01 2009-04-28 Emulex Design & Manufacturing Corporation Input/output router for storage networks
WO2007083197A1 (en) 2006-01-18 2007-07-26 Freescale Semiconductor Inc. Device having data sharing capabilities and a method for sharing data
US7949815B2 (en) * 2006-09-27 2011-05-24 Intel Corporation Virtual heterogeneous channel for message passing
KR100868766B1 (ko) * 2007-01-31 2008-11-17 삼성전자주식회사 복수의 dma 요청 블록들을 가지는 직접 메모리 액세스장치의 우선 순위를 결정하는 방법 및 장치
US7689758B2 (en) * 2007-07-12 2010-03-30 Atmel Corporation Dual bus matrix architecture for micro-controllers
US8255593B2 (en) * 2009-09-29 2012-08-28 Oracle America, Inc. Direct memory access with striding across memory
US9542251B2 (en) * 2013-10-30 2017-01-10 Oracle International Corporation Error detection on a low pin count bus
CN104731744B (zh) * 2015-03-13 2017-07-04 中国航天科技集团公司第九研究院第七七一研究所 一种基于SiP的可重构嵌入式计算机模块

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5101478A (en) * 1985-06-28 1992-03-31 Wang Laboratories, Inc. I/O structure for information processing system
US5003465A (en) * 1988-06-27 1991-03-26 International Business Machines Corp. Method and apparatus for increasing system throughput via an input/output bus and enhancing address capability of a computer system during DMA read/write operations between a common memory and an input/output device
US5276845A (en) * 1988-08-25 1994-01-04 Yamaha Corporation Apparatus with multiple buses for permitting concurrent access to a first memory by a processor while a DMA transfer is occurring between a second memory and a communications buffer
US5083259A (en) * 1988-12-07 1992-01-21 Xycom, Inc. Computer bus interconnection device
JP2986176B2 (ja) * 1990-05-11 1999-12-06 株式会社日立製作所 バス権制御方式およびバスシステム
EP0472274A1 (en) * 1990-08-24 1992-02-26 International Business Machines Corporation Data processing apparatus having connectors to receive system components
CA2051029C (en) * 1990-11-30 1996-11-05 Pradeep S. Sindhu Arbitration of packet switched busses, including busses for shared memory multiprocessors
US5301282A (en) * 1991-10-15 1994-04-05 International Business Machines Corp. Controlling bus allocation using arbitration hold
US5265211A (en) * 1992-01-02 1993-11-23 International Business Machines Corporation Arbitration control logic for computer system having dual bus architecture
US5280623A (en) * 1992-03-04 1994-01-18 Sun Microsystems, Inc. Versatile peripheral bus

Also Published As

Publication number Publication date
CA2124031A1 (en) 1994-11-29
CN1098527A (zh) 1995-02-08
JPH06337840A (ja) 1994-12-06
EP0628914B1 (en) 1999-11-03
TW260769B (ko) 1995-10-21
DE69421453T2 (de) 2000-05-18
DE69421453D1 (de) 1999-12-09
EP0628914A1 (en) 1994-12-14
CN1069426C (zh) 2001-08-08
JP2505114B2 (ja) 1996-06-05
CA2124031C (en) 1999-08-24
BR9402105A (pt) 1994-12-27
ATE186412T1 (de) 1999-11-15
US5450551A (en) 1995-09-12

Similar Documents

Publication Publication Date Title
KR970000842B1 (ko) 정보 처리 시스템 및 컴퓨터 시스템
US5396602A (en) Arbitration logic for multiple bus computer system
AU651747B2 (en) Arbitration control logic for computer system having dual bus architecture
US6493776B1 (en) Scalable on-chip system bus
US4991085A (en) Personal computer bus interface chip with multi-function address relocation pins
US4937734A (en) High speed bus with virtual memory data transfer and rerun cycle capability
US5729762A (en) Input output controller having interface logic coupled to DMA controller and plurality of address lines for carrying control information to DMA agent
US5121487A (en) High speed bus with virtual memory data transfer capability using virtual address/data lines
US6636927B1 (en) Bridge device for transferring data using master-specific prefetch sizes
US5255376A (en) Method and apparatus for supporting a dual bit length protocol for data transfers
JPH08297632A (ja) 分割トランザクション・バス・プロトコルを可能にするバスに対するアービトレーション方法及び装置
KR19990022950A (ko) Pci-pci 브리지를 집적화한 i/o 프로세서의 구조
US6425037B1 (en) Information processing system, bus arbiter, and bus controlling method
WO1995020192A1 (en) Bus deadlock avoidance during master split-transactions
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
US7096290B2 (en) On-chip high speed data interface
US5933616A (en) Multiple bus system bus arbitration according to type of transaction requested and the availability status of the data buffer between the buses
US5793997A (en) Interface architecture for connection to a peripheral component interconnect bus
US5933613A (en) Computer system and inter-bus control circuit
US5809260A (en) Burst mode data transmission retry of previously aborted block transfer of data
US5097483A (en) Tri-statable bus with apparatus to drive bus line to first level and then second level for predetermined time before turning off
US5983025A (en) Computer system buffers for providing concurrency and avoid deadlock conditions between CPU accesses, local bus accesses, and memory accesses
US6026455A (en) Architecture and method for providing guaranteed access for a retrying bus master to a data transfer bridge connecting two buses in a computer system
US5850529A (en) Method and apparatus for detecting a resource lock on a PCI bus
US6327636B1 (en) Ordering for pipelined read transfers

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101210

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee