KR950014183B1 - 컴퓨터 시스템 및 시스템 메모리 액세스 제어 방법 - Google Patents

컴퓨터 시스템 및 시스템 메모리 액세스 제어 방법 Download PDF

Info

Publication number
KR950014183B1
KR950014183B1 KR1019920024698A KR920024698A KR950014183B1 KR 950014183 B1 KR950014183 B1 KR 950014183B1 KR 1019920024698 A KR1019920024698 A KR 1019920024698A KR 920024698 A KR920024698 A KR 920024698A KR 950014183 B1 KR950014183 B1 KR 950014183B1
Authority
KR
South Korea
Prior art keywords
bus
memory
system memory
input
data
Prior art date
Application number
KR1019920024698A
Other languages
English (en)
Other versions
KR930016873A (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 KR930016873A publication Critical patent/KR930016873A/ko
Application granted granted Critical
Publication of KR950014183B1 publication Critical patent/KR950014183B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

내용 없음.

Description

컴퓨터 시스템 및 시스템 메모리 액세스 제어 방법
제1도는 본 발명의 원리에 따라 구성한 버스 인터페이스 유니트를 갖춘 컴퓨터 시스템의 개략 블럭도.
제2도는 제1도에 도시한 컴퓨터 시스템의 버스 인터페이스 유니트의 개략 블럭도.
제3도는 제2도에 도시한 버스 인터페이스 유니트의 FIFO 버퍼에 대한 개략 블럭도.
제4도는 제3도에 도시한 버스-버스 페이싱 논리 회로의 한 실시 태양을 구현하는데 사용되는 제어 논리 회로의 회로도.
제5도는 제3도에 도시한 버스-버스 페이싱 논리 회로의 또다른 실시 태양을 구현하는데 사용되는 제어논리 회로의 회로도.
* 도면의 주요부분에 대한 부호의 설명
10 : 컴퓨터 시스템 12 : 시스템 보드
14 : 프로세서 복합체 16 : 프로세서부
18 : 베이스부 20 : 로컬 버스
22 : 로컬 버스 접속기 24,26 : 시스템 메모리
28 : 입/출력(I/O) 장치 30 : 메모리 버스
32 : 입/출력(I/O)버스 34 : 프로세서 복합체 접속기
38 : 중앙 처리 장치(CPU) 40 : 정적 랜덤 액세스 메모리(SRAM)
42 : 캐시 제어 모듈 44 : 주파수 제어 모듈
46 : 어드레스 버퍼 48 : 데이타 버퍼
50,78 : 데이타 정보 통로 52,80 : 어드레스 정보 통로
54,82 : 제어 정보 통로 56 : 랜덤 액세스 메모리(RAM)
58 : 메모리 제어기 60 : DMA 제어기
62 : 중앙 중재 제어기(CACP) 64 : 버스 인터페이스 유니트
66 : 버퍼/에러 정정 코드(ECC) 68 : 구동 회로
70 : 리드 온리 메모리(ROM) 72 : 셀프 테스트 회로
74 : 버퍼 회로 76 : 시스템 버스
102,104 : 구동기/수신기
106 : 시스템 버스-I/O 버스 변환 논리 회로
108 : I/O 버스-시스템 버스 변환 논리회로
110 : 메모리 어드레스 비교 논리 회로 112 : 에러 복구지원 논리 회로
114 : 캐시 스누핑 회로 116 : 프로그램된 I/O 회로
118 : 시스템 버스 어드레스 발생 회로
120 : I/O 버스 예상 어드레스 발생 회로
122 : 시스템 버스 제어기 인터페이스 123 : FIFO 제어 회로
124 : FIFO 버퍼 125A,125B,125C,125D : 버퍼
126 : I/O 버스 슬레이브 인터페이스
128 : 버스-버스 페이싱 제어 논리 회로.
본 발명은 이중 버스 구조를 갖는 컴퓨터 시스템의 버스-버스 인터페이스(bus to bus interface)에 관한것으로서, 특히, 시스템 메모리를 액세스하기 위하여 서로 다툼을 멀이는 중앙 처리 장치와 입/출력 장치를중재하기 위한 버스-버스 인터페이스 장치 및 방법에 관한 것이다.
일빈적으로 컴퓨터 시스템, 특히 퍼스널 컴퓨터 시스템에 있어서는, 중앙 처리 장치(CPU), 메모리 장치,직접 메모리 액세스(DMA) 제어기와 같은 각종 시스템 장치들간에서 데이타가 전송된다. 또한, 입/출력(I/O) 장치와 같은 확장 장치(expansionelement)들 사이에서도 데이타가 전송되며, I/O 장치와 각종 시스템장치간에서도 데이타가 전송된다. I/O 장치들과 시스템 장치들은 컴퓨터 버스를 통해 상호 통신하는데, 컴퓨터 버스는 수개의 발신지 중의 어떤 발신지로부터 수개의 수신지중의 어떤 수신지로 정보를 전송하는 일련의 도체들로 구성된다. 대다수의 시스템 장치와 I/O 장치는 버스 제어기(buscontrollers)(즉, 컴퓨터 시스템을 제어할 수 있는 장치)와 버스 슬레이브(bus slaves)(즉, 버스 제어기에 의해 제어되는 장치)로서의역활을 행할 수 있다.
버스를 둘 이상 갖는 퍼스널 컴퓨터 시스템은 이미 알리져 있는데, 이러한 시스템은, 통상적으로, CPU와캐시 메모리나 메모리 제어기 간의 통신이 이루어지는 로컬(local) 버스를 갖추고 있으며, 또한 DMA 제어기나 I/O 장치와 같은 시스템 버스 장치와 시스템 메모리 간의 통신이 메모리 제어기를 동해 이루어지는시스템 I/O 버스를 갖추고 있다. 상기한 시스템 I/O버스는 버스 인터페이스 유니트에 의해 상호 접속되는시스템 버스와 I/O버스를 포함한다. I/O 장치들은I/O버스를 통해 상호 통신한다. 이들I/O장치는 또한 시스템 메모리와 같은 시스템 버스 장치와도 통신할 수 있어야만 하는 것이 통상적이다. 이러한 통상은I/O 버스와 시스템 버스 및 이들 간의 버스 인터폐이스 유니트를 통해 이루어쳐야만 한다.
이중버스 구조 컴퓨터 시스템 내의 CPU와 같은 로컬버스 장치와 시스템 I/O장치는 시스템 메모리를 액세스하기 위해 메모리 제어기를 통해 서로 다투게 된다. 시스템 버스 장치와 I/O장치는 시스템 버스를 통해 메모리 제어기를 액세스하고, CPU는 로컬버스를 통해 메모리 제어기를 액세스한다. 메모리 버스를 통한시스템 메모리의 액세스에 앞서, 이들 경쟁하는 장치는 먼저 메모리 제어기의 제어를 획득해야만 한다. 종종, 고속 데이타 전달에 있어서는, 시스템 I/O 버스 장치와 로컬버스 장치가 동시에 메모리 버스 제어기의제어를 원할 수 있다. 이때, 고속 I/O장치와 마이크로 프로세서는 시스템 메모리에 강렬한 요구(highdemand)를 하므로, 서로간에 다툼(contention)이 발생하여 시스템 성능이 저하된다. 따라서, 컴퓨터 시스템은 로컬버스 장치 또는 시스템 I/O버스 장치중 어떤 것이 시스템 메모리를 액세스를 해야단 하는지의판정을 위한 중재를 제공해야 한다.
통상의 중재안(arbitration scheme)은 요청 순서에 입각하여(on a first come, first senred basis) 시스템버스의 제어를 승인하는 제어를 포함한다. 따라서, I/O 버스 장치 및 로컬버스 장치 모두가 시스템 메모리의 액세스를 요망하는 경우, 제어 요청을 면저 발송한 장치에 메모리 제어기의 제어가 승인된다. 메모리버스 제어기로서 작용하는 특정 장치가 메모리 버스를 통해 시스템 메모리에 대한 데이타 시퀀스(sequence)를 판독 또는 기록한 후, 대기하고 있는 장치에 메모리 제어기의 제어가 승인된다. 이같은 프로세서(proces)는 CPU와 같은 로컬버스 장치와 시스템 I/O 장치가 메모리 제어기의 제어를 계속 요청하는한 무한히 계속된다.
각종 I/O장치 버스 제어기들은 다른 속도로 시스템 메모리에 대한 판독 및 기록을 처리한다. 어떤 고속 I/O 장치들은, 버스 인터페이스 유니트(bus interface unit)가 데이타를 시스템 버스를 통해 재전송하는 만큼 빠르게 I/O버스를 통해 버스 인터페이스 유니트에 전송할 수 있다. 종종, 이들 고속 장치는 데이타를일련의 데이타 시퀀스 즉, 패킷으로 전송한다. 패킷은 시스템 메모리 내에서 서로 인접하는 어드레스들을갖는다. 상기한 통상적인 중재한 하에서, 로컬버스 장치가 이들 다중 패킷 전송중의 하나 도중에서 시스템의 제어를 요청하면, 중재기는 제1패킷이 I/O장치에 의해 전송되자마자 로컬 장치에 메모리의 제어를 승인할 것이다. 로컬버스 장치가 동작을 끝마친 후, 메모리 버스의 제어는 I/O장치에 다시 한번 승인된다.
이같은 형대의 시스템 동작은, 통상적으로 CPU와 같은 로컬버스 장치와 I/O장치가 시스템 메모리의 서로 다른 영역에서 작업을 행하기 때문에 효율적이지 못하다. 그런 까닭에, 통상적으로, 각각의 연속적인 동작에 대하여, 메모리 버스의 제어를 CPU와 I/O장치간에 주고 받는 식으로 승인하는데 있어서는, 메모리어드레스들이 메모리의 서로 다른 폐이지(page)에 부여되므로, 메모리 액세스 시간이 더 길여져야만 한다.상기한 바와 같이, I/O 장치가 시스템 메모리 내에서 인접하는 어드레스들을 갖는 커다란 데이타 블럭을 시스템 메모리에 대한 판독하거나 기록하는 경우에는, CPU에 메모리 버스 제어를 양도하기 전에 I/O장치가다중의 데이타 패킷 전달을 완료할 수 있게 허용하는 것이 유익하다.
이같은 식으로, 메모리 제어기는 메모리 액세스가 CPU에 승인되기 전에 다중 데이타 전달을 시스템 메모리의 인접 위치들에 대해(즉, 동일한 정보 ''페이지(page)''에) 판독 또는 기록할 수 있다. 시스템 메모리와 I/O 장치간의 제2 및 이에 후속하는 데이타 전단에 있어 요구되는 시간은, 메모리 액세스들이 시스템 메모리의 동일 페이지에 어드레스 되는 때 최적화 되므로 최소화 된다. 시스템 메모리와 I/O 장치간의 최종 데이타 전달이 완료되는 경우, 판독 또는 기록 동작의 완료를 위해 CPU에 메모리 버스의 제어가 승인될 수있다. 전빈적으로, 이러한 시스템 동작으로 인해 데이타 전달 시간이 절감된다.
본 발명의 목적은 I/O 버스상의 I/O장치와 로컬 버스상의 로컬 장치간의 메모리 버스 제어를 최적화하는데 필요한 중재 논리 회로를 제공하는 이중버스 구조 컴퓨터 시스템 내의 버스 인터페이스를 제공하는데 있다.
본 발명에 따르면, 이중버스 구조를 가진 컴퓨터에 버스-버스 제어 논리(bus to bus control logic) 시스템 및 방법이 제공된다. 이같은 제어 논리는 컴퓨터내 I/O버스와 시스템 버스 사이에 있는 버스 인터페이스 유니트에 구축되는 알고리즘으로 구현된다. 이 제어 논리는 중앙 처리 장치와 I/O장치를 중재하여 이들 중 어떤 것에 시스템 메모리에 대한 우선 순위 액세스가 부여되야 하는가를 결정한다. 이 제어 논리는정상의 메모리 제어기 중재안에 대해 오버라이드(override)로서 작용하는 제어 신호를 출력하여 시스템 메모리에 대한 I/O장치의 액세스를 우선 순위화 한다.
이같은 제어 논리는 시스템 메모리에 대한 I/O장치의 액세스를 동적으로 제어함에 의해 시스템 안과 밖으로 데이타를 이동시키는 I/O버스의 능력을 향상시키는데 사용된다. 시스템 성능은 I/O버스를 제어하고있는 I/O장치의 시스템 메모리에 대한 액세스를 어떤 사전 설정된 조건들 하에서 고정시키므로써 향상된다. 따라서, 버스 제어 논리는 시스템 메모리의 데이타 전달 능력에 I/O제어기의 속도를 최적하게 정합시킨다. 시스템 버스는 데이타가 16바이트 정보 패킷으로 전송되는 버스트 프로토콜을 지원한다. I/O 버스는1,2 또는 4바이트 대역폭으로 데이타를 전송하는데, 이것은 I/O 버스를 제어하고 있는 I/O 장치의 종류(type)에 따른다.
I/O장치에 시스템 메모리에 대한 우선 순위 액세스를 승인하는 사전 설정된 조건들은 다음과 같다. 즉,(1) I/O 버스를 제어하는 I/O 장치에 의한 판독 요청이 시스템 메모리내의 사전 규정된 16바이트 어드레스경계와 정면되지 않는다. (2) I/O 버스(32)를 제어하는 I/O 장치가 기록 사이클 즉시 판독 사이클을 뒤있는다. (3) I/O 버스를 제어하는 I/O 장치가 데이타 전달을 완료한다. (4) I/O 버스를 제어하는 I/O 장치가 스트리밍 모드(streamingmode)로 데이타를 판독 또는 기록한다. (5) 버퍼 인터페이스 유니트 내의 버퍼 공간의 절반 이상이 시스템 메모리에 기록될 데이타로 이미 채워지거나, 상기 버퍼 공간의 절반 이하가시스템 메모리로부터 판독될 프리페치된 데이타로 아직 채워지지 않는다.
본 발명의 바람직한 실시 태양에 있어서, 버스-버스 제어 논리는 세가지 모드로 동작한다. 이들 모드중제1모드는 디폴트 모드(defaulf mode)로서, 상기한 사전 설정된 조건들중 (1),(2) 및 (3) 조전에 대해 버스 제어의 페이싱을 결정한다. 이들 모드중 제2모드(옵션 1)는 상기한 (4)조건에 대해 페이싱을 결정하고,제3모드(옵션 2)는 상기한 (5)조건에 대해 페이싱을 결정한다. 시스템 사용자는 시스템이 자동적으로 제공하는 디폴트 페이싱 모드 외에 나머지 페이싱 모드들중 하나(옵션 1 또는 옵션 2)를 선택할 수도 있다. 이같은 선택은 버스 인터페이스 유니트 내의 프로그래머블 레지스터의 내용을 프로그램하는 것에 의해 행해진다.
상기한 (1)의 디폴트 조건하에서, I/O 장치는 특정의 16-바이트 패킷 경계와 정열되지 않은 시스템 메모리의 판독을 요청한다. 이같은 오정렬의 보상을 위해, 시스템 메모리에 대한 I/O 장치(28)의 액세스를 고정(lock)하되, 충분한 데이타가 자동적으로 프리페치되어 16-바이트 경계에 도달될 때까지 고정한다. 이때,이러한 16-바이트 미만의 판독 데이타는 I/O 버스의 타이밍에 동기되고 I/O 장치 제어기는 데이타 판독을제시한다. 버스 인터페이스 유니트는, 그때, 다음의 인접하는 16-바이트 패킷을 프리페치할 것이다. 이16-바이트 패킷은 사전 규정된 경계에서 시작하기 때문에,16바이트 버스트 전달이 가능하다.
상기한 (2) 조전하에서, I/O 장치가 기록 전송으로부터 판독 요청으로 변할 때 잔류하는 버퍼된 기록 데이타(residual buffered write data)가 버스 인터페이스 유니트 버퍼 공간내에 존재할 수도 있다. 일단 I/O장치 버스 제어기가 기록에서 판독으로 변하면, 페이싱 제어 논리 회로는 사이클 종점에 이르렀으며, 버퍼공간에 저장될 기록 데이타가 더 이상 없고, 이제 시스템 메모리 또는 메모리로부터 판독 데이타가 요청되고 있다고 결정한다. 인접하는 기록 데이타가 더이상 즉각적으로 출현하지 않음을 알 수 있으므로, 하나의기본 동작(atomic operation)으로 상기 버퍼된 데이타가 시스템 메모리에 기록되고 상기 판독 데이타는 시스템 메모리로부터 프리페치된다.
상기한 (3) 조전하에서, 제어기 장치가 데이타 전송 사이클후 I/O 버스의 제어를 포기(relinguish)할 때잔류하는 버퍼된 데이타가 I/O버스 인터페이스 유니트 버퍼 공간내에 또한 존재할 수도 있다. 이같은 경우, 그러한 잔류 데이타는 시스템 메모리에 자동 기록되어야만 한다. 버퍼 공간의 절반 이상이 그리한 잔류데이타를 포함하는 경우, I/O 장치 제어기가 I/O버스의 제어를 포기하자마자, 버스 제어 논리는 소정의 신호를 메모리 제어기에 발생하여, 단일 전송 길이를 초과하는(즉,16바이트 보다 큰) 버퍼내의 데이타가 시스템 메모리에 기록될 필요가 있음을 나타낼 것이다. 따라서, 버퍼된 데이타는 시스템 버스를 통해 시스템 메모리 액세스에 제공될 것이다.
(상기한 (4) 조건에 관련하는) 옵션 1을 구현하기 위한 버스 제어 논리 회로는 고정 신호를 메모리 제어기에 제공하는 클럭형(clocked) S-R 래치를 포함한다. 고정 신호는 I/O 장치가 스트리밍 모드로 시스템메모리에 대해 데이타 기록 또는 판독을 행하는 때, I/O 버스를 통제하고 있는 I/O장치에 시스템 메모리에 대한 연속적인 액세스를 제공한다 스트리밍 데이타 기록 동작을 검출하고, 버스 인터페이스 유니트 버퍼들 중의 하나가 버퍼된 기록 데이타로 채워졌을 때, 고정된 버스트 기록 시퀀스(sequence)는 시스템 버스를 통해 시스템 메모리에 대해 개시되어, I/O 장치(28)가 스트리밍 시퀀스를 종료할 때까지 또는 버퍼 공간에 어떠한 데이타도 남아 있지 않을 때까지 활성 상태로 유지될 것이다. 유사하게, 스트리밍 데이타 판독동작의 검출시, 고정된 버스토 판독 시퀀스는 시스템 메모리에 대해 개시되어 버퍼 공간내에 빈 공간이 있는 한 또는 I/O 장치가 스트리밍 시퀀스를 종료할 때까지 활성 상태를 유지할 것이다.
(상기한 (5) 조건에 관련하는) 옵션 2를 구현하는 버스 제어 논리는 메모리 제어기에 고정 신호를 출력하는 래치와 각기 연관된 개별 논리 회로를 포함한다. 고정 신호는, 버스 인터페이스 유니트 버퍼 공간의 절반 이상이 시스템 메모리에 기록될 데이타로 이미 채워졌거나 버퍼 공간의 절반 이하가 시스템 메모리로부터 판독될 프리페치된 데이타로 아직 채워지지 않은 경우, I/O 버스를 제어하고 있는 I/O장치에 시스템메모리에 대한 연속적인 액세스를 제공한다.
제1에 도시된 바와 같이, 컴퓨터 시스템(10)은 시스템 보드(12)와 프로세서 복합체(processor complex)(14)로 이루어진다. 프로세서 복합체(14)는 로컬 버스 접속기(1ocal bus connector)(22)를 통해 프로세서로컬 버스(20)에 접속되는 프로세서부(16)와 베이스부(18)로 이루어진다. 프로세서부(16)는 50MHz에서 동작되며, 베이스부(18) 는 40MHz에서 동작된다.
시스템 보드(12)는 인터리브된 시스템 메모리(interleaved system memories)(24),(26)와 입/출력(I/O)장치(28)를 포함한다. 시스템 메모리(24),(26)와 프로세서 복합체(14)간의 통신은 메모리 버스(30)에 의해행해지며, I/O 장치(28)와 프로세서 복합체(14)간의 통신은 I/O 버스(32)에 의해 행해진다. I/O 장치(28)와 시스템 메모리(24),(26) 간의 통신은 I/O 버스(32), 시스템 버스(76)와 메모리 버스(30)에 의해 행해진다. I/O 버스(32)는 마이크로 채널(MICRO CHANNELR) 컴퓨터 구조에 따를 수도 있다. 메모리 버스(30)와 I/O 버스(32)는 프로세서 복합체 접속기(processor complex connector)(34)에 의해 프로세서 복합체 베이스부(18) 접속된다. 메모리 확장 장치와 같은 I/O 장치는 I/O 버스(32)를 통해 상기 컴퓨터 시스템(10)에 접속될 수도 있다. 시스템 보드(12)는 정규 동작중 상기 컴퓨터 시스템(10)에 의해 사용되는 통상적인비디오 회로, 타이밍 회로, 키보드 제어 회로와 인터럽트 회로(도시되지 않음)를 포함할 수도 있다.
프로세서 복합체(14)의 프로세서부(16)는 중앙 처리 장치(CPU)(38)를 포함하는데, 이 CPU는 본 바람직한 실시예의 경우,1486으로 불리우며 인텔(Intel)사로부터 구입 가능한 32-비트 마이크로 프로세서를 사용하고 있다. 프로세서부(16)는 정적 랜덤 액세스 메모리(SRAM)(40), 캐시 제어 모듈(42), 주파수 제어 모듈(44), 어드레스 버퍼(46) 및 데이타 버퍼(48)를 포함한다. 로컬 버스(20)는 데이타 정보 통로(50), 어드레스 정보 통로(52)와 제어 정보 통로(54)로 구성된다. 데이타 정보 통로(50)는 CPU(38), SRAM(40)과 데이타 버퍼(48)간에 제공된다. 어드레스 정보 통로(52)는 CPU(38), 캐시 제어 모듈(42)과 어드래스 버퍼(46)간에 제공되며, 제어 정보 통로(54)는 CPU(38), 캐시 제어 모듈(42)과 주파수 제어 모듈(44)간에 제공된다. 또한, 캐시 제어 모듈(42)과 SRAM(40)간에 어드레스와 제어 정보 통로가 제공된다.
SRAM(40)은 시스템 메모리(24) 또는 (26)으로부터 또는 I/O 장치(28)상에 위치한 확장 메모리로부터의메모리 정보를 단기간 저정하는 캐시 기능을 제공한다. 캐시 제어 모듈(42)은 상기 시스템 메모리(24),(26)의 어드레스 위치들을 저장하는 랜덤 액세스 메모리(RAM)(56)를 포함하고 있다. CPU(38)는 로컬 버스(20)를 통해 SRAM(40)에 저장된 정보를 직접 액세스 할 수 있다. 주파수 제어 모듈(44)은 50MHz 프로세서부(l6)의 동작을 40MHz 베이스부(18)와 동기시키며, 또한, 버퍼(46),(48)의 동작을 제어한다. 따라서, 주파수 제어 모듈(44)은 버퍼(46),(48)에 정보가 저장되는 시간과 이러한 버퍼에 저장되는 정보가 오버라이트(overwrite)되는 시간을 결정한다. 버퍼(46),(48)는 시스템 메모리(24),(26)로부터의 두개의 기록(twowrites)이 동시에 저장될 수 있게 구성된다. 버퍼(46),(48)는 양방향성 버퍼로서, 이들 버퍼는 CPU(38)에의해 제공되는 정보와 CPU(38)로 제공되는 정보를 래치(latch)할 수 있다. 이들 버퍼(46),(48)는 양방향성이기 때문에, 프로세서 복합체(14)는 포준 베이스부(18)는 그대로 둔채로 대제 또는 개량될 수도 있다.
베이스부(18)는 메모리 제어기(58), DMA 제어기(60), 중앙 중재 제어기(central arbitration controlpolnt)(CACP) 회로(62), 버스 인터페이스 유니트(64)와 버퍼/에러 정정 코드(buffer/error correction code)(ECC) 회로(66)를 포함한다. 또한, 베이스부(18)는 구동 회로(68), 리드온리 메모리(ROM)(70), 셀프테스트 회로(72)와 버퍼(74)를 포함한다. 시스템 버스(76)는 데이타 정보 통로(78), 어드레스 정보 통로(80)와 제어 정보 통로(82)를 구비한다. 데이타 정보 통로(78)는 버퍼(74)를 버스 인터페이스 유니트(64)와접속하며, 버스 인터페이스 유니트(64)를 DMA 제어기(60) 및 버퍼/ECC 회로(66)와 접속하고 버퍼/ECC회로(66)를 시스템 메모리(24),(26)와 접속한다. 어드레스 정보 통로와 제어 정보 통로 각각은 메모리 제어기(58)를 DMA 제어기(60) 및 버스 인터페이스 유니트(64)와 접속하고, 버스 인터페이스 유니트(64)를 버퍼(74)와 접속한다.
메모리 제어기(58)는 CPU 로컬 버스(20)와 시스템 버스(76) 상에 위치하며, CPU(38), DMA 제어기(60)또는 (I/O 장치(28) 대신) 버스 인터페이스 유니트(64)에 메모리 버스(30)를 통해 시스템 메모리(24),(26)를 액세스하도록 해준다. 메모리 제어기(58)는 메모리 버스(30)를 통해 시스템 메모리(24),(26)에 대한 시스템 메모리 사이클을 개시한다. 시스템 메모리 사이클 동안, CPU(38), DMA 제어기(60) 또는 (I/O 장치(28) 대신) 버스 인터페이스 유니트(64)는 메모리 제어기(58)를 통해 시스템 메모리(24),(26)를 액세스한다.상기 DMA 제어기(60) 또는 (I/O 장치(28) 대신) 버스 인터페이스 유니트(64)는 시스템 버스(76), 메모리제어기(58) 및 메모리 버스(30)를 통해 시스템 메모리를 액세스하는 한편, CPU(38)는 로컬 버스(20), 메모리 제어기(58)와 메모리 버스(30)를 통해 시스템 메모리와 통신한다.
CPU(38)-I/O 버스(32) 판독 또는 기록 사이클에 있어서, 어드레스 정보는 시스템 메모리 어드레스 경계에 대해 체크된다. 이때, 어드레스 정보가 I/O 확장 메모리 어드레스 또는 I/O 포트(port) 어드레스와 일치하면, 메모리 제어기(58)는 (버스 인터페이스 유니트(64)를 거쳐) I/O 버스(32)를 통해 I/O 장치(28)에대한 I/O메모리 사이클 또는I/O장치 포트 사이클을 개시한다. CPU-I/O 메모리 사이클 또는 I/O포트사이클을 개시한다. CPU-I/O 메모리 사이클 또는 I/O 포트 사이클 동안, 메모리 제어기(58)에 공급되는어드레스는 시스템 버스(76)와 I/O 버스(32) 사이에 존재하는 버스 인터페이스 유니트(64)를 동해 상기 시스템 버스(76)로부터 상기 I/O버스(32)로 전송된다. 상기 어드레스에 상응하는 확장 메모리를 포함하는 I/O 장치(28)는 I/O 버스(32)로부터 상기 메모리 어드레스를 수신한다. DMA 제어기(60)와 버스 인터페이스 유니트(64)는 시스템 메모리(24),(26)와 I/O 장치(28)내의 확장 메모리 간의 정보 교환을 제어한다.DMA 제어기(60)는 또한 프로세서 복합체(14)를 대신하여 3가지 기능을 제공하는데, 첫째로, DMA 제어기(60)는 DMA 채널을 구성(configure)하기 위해 소규모 컴퓨터 서브 시스템 제어 블록(small computer sub system control block)(SCB) 구조를 이용하므로 상기 DMA 채널을 구성하기 위해 프로그램된 I/O를사용할 필요가 없다. 둘째로, DMA 제어기(60)는 저속도로 동작하는 메모리 확장 장치와 통상적으로 빠른속도로 동작하는 시스템 메모리 간의 데이타 전송이 최적화 되도록 버퍼링 기능을 제공한다. 세째로, DMA제어기(60)는 8채널의 32비트 직접 시스템 메모리 액세스 기능을 제공한다. 직접 시스템 메모리 액세스 기능을 제공할때, DMA 제어기(60)는 다음의 두 모드로 작동될 것이다. 첫째 모드에 있어서는, DMA 제어기(60)가 CPU(38)에 대해 기능적으로 슬레이브(slave)인 프로그램된 I/O 모드로 작동한다. 둘째 모드에 있어서는, DMA 제어기(60)는 시스템 버스 마스터(master)로서 동작하여, I/O버스(32)를 중재하고 제어한다.이러한 둘째 모드 동안, DMA 제어기(60)는 퍼스토-인 퍼스트-아웃(first in, first out)(FIFO) 레지스터회로를 사용한다.
중앙 중재 제어기(CACP) 회로(62)는 DMA 제어기, I/O 장치 버스 제어기와 CPU(I/O 장치를 액세스하는 경우)에 대해 제어로서 작용한다. CACP 회로(62)는 I/O 장치(28) 뿐단 아니라, DMA 제어기(60)와메모리 제어기(58)로부터 중재 제어 신호를 수신하여 어떤 장치가 I/O 버스(32)를 제어할 것인가를 판단하고, 그 장치가 I/O버스의 제어를 유지할 시간을 결정한다.
구동 회로(68)는 메모리 제어기(58)로부터 시스템 메모리(24),(26)로 제어 정보와 어드레스 정보를 제공한다. 또한, 구동 회로(68)는 시스템 메모리(24),(26)를 구성하는대 사용되는 싱글 인-라인 메모리 모듈들(single in-line memonry modules)(SIMMS)의 수에 입각하여 이러한 정보를 구동한다. 따라서, 구동 회로(68)는 시스템 메모리(24),(26)의 크기에 따라 시스템 메모리(24)와 (26)에 제공되는 제어 및 어드레스 정보의 신호 강도를 가변한다.
버퍼 회로(74)는 프로세서 복합체의 베이스부(18)와 시스템 보드(l2) 사이에서 증폭 작용 및 본리(isolation) 작용을 제공한다. 또한, 버퍼 회로(74)는 I/O 버스(32)와 버스 인터페이스 유니트(64)간의 경계정보(boundary information)를 실시간으로 저장할 수 있는 버퍼를 사용한다. 따라서, 컴퓨터 시스템(10)이고장나면, 버퍼 회로(74)는 컴퓨터 수리 기사에 의해 액세스 되어 수도 시스템 고장시에 프로세서 복합체접속기(34)에 제공된 정보를 판단할 수도 있게 한다.
ROM(70)은 전원 투입시 확장 메모리로부터의 데이타를 시스템 메모리에 놓이게 함으로써 컴퓨터 시스템(10)을 구성한다. 셀프 테스트 회로(self test circuit)(72)는 베이스부(18)내의 다수 위치에 연결되며, 다수의 셀프 테스트 특징(features)을 제공한다. 셀프 테스트 회로(72)는 고장이 발생했는지를 판단하기 위해버퍼 회로(74)를 액세스하며, 프한 시스템의 전원 투입시에 시스템이 작동 준비 상태인가를 판단하기 위해베이스부(18)의 나머지 다른 주요 부분(성분)도 테스트 한다.
제2도는 제1도에 도시한 시스템의 버스 인터페이스 유니트(64)에 대한 개략 블럭도이다. 버스 인터페이스 유니트(64)는 시스템 버스(76)와 I/O 버스(32) 간에 양방향성 고속 인터페이스를 제공함으로써 본 발명의 구현을 위한 근원(base)을 제공한다.
버스 인터페이스 유니트(64)는 시스템 버스 구동기/수신기 회로(system bus driver/receiver circuit)(102)와, I/O 버스 구동기/수신기 회로(104) 및, 이들간에 전기적으로 접속된 제어 논리 회로1를 포함한다.구동기/수신기 회로(102)는 시스템 버스(76)로부터 신호를 수신하여 적절한 버스 인터페이스 유니트 제어논리 회로로 보내며, 버스 인터페이스 유니트 제어 논리 회로로부터 신호를 수신하여 시스템 버스에 보내는조향(steerin9) 논리 회로를 갖는다. I/O 버스 구동기/수신기 회로(104)는 I/O 버스(32)로부터 신호를 수신하여 적절한 버스 인터페이스 유니트 제어 논리 회로로 보내며, 버스 인터페이스 유니트 제어 논리 회로로부터 신호를 수신하여 I/O 버스(32)에 보내는 조향 논리 회로를 포함한다.
버스 인터페이스 유니트의 제어 논리 회로는 시스템 버스-I/O 버스 변환 논리(system bus to I/O bus translation logic) 회로(106), I/O 버스-시스템 버스 변환 논리(I/O bus to system bus translation logic)회로(108), 메모리 인터페이스 비교 논리 회로(110), 에러 복구 지원 논리(error recovery support logic) 회로(112), 그리고 캐시 스누핑(snooping) 논리 회로(114)를 포함한다. 프로그램된 I/O 회로(programmed I/O circuit)(116)는 시스템 구동기/수신기 회로(102)와 전기적으로 결합된다.
시스템 버스-I/O 버스 변환 논리 회로(106)는 DMA 제어기(60) 또는 (CPU(38)을 대신해서)메모리 제어기(58)가 시스템 버스 제어기로서 동작하여 I/O 버스(32)를 액세스하며 이에 따라 I/O 버스상의 슬레이브 장치로서 작용하는 I/O 장치(28)와 통신하는데 필요한 수단을 제공한다. 변환 논리 회로(106)는 시스템버스(76)의 제어, 어드레스와 데이타 라인을 I/O 버스(32)의 제어, 어드레스와 데이타 라인으로 변환한다.대다수의 제어 신호와 모든 어드레스 신호는 시스템 버스(76)로부터 I/O 버스(32)로 전송되며, 데이타 정보는 양방향으로 전송된다. 시스템 버스 슬레이브로서 동작하는 상기 논리 회로는 상기 시스템 버스(76)를 감시하며 상기 I/O 버스(32)에 대한 사이클을 검출한다. 이러한 사이클의 검출시, 시스템 버스 슬레이브는 시스템 버스 상의 신호의 타이밍을 I/O버스 타이밍으로 변환하고, I/O 버스(32)에 대하여 상기 사이클을 재시하고, 사이클이 완료되기까지 대기하며, 시스템 버스(76) 상의 상기 사이클을 종료한다.
I/O 버스-시스템 버스 변환 논리 회로(108)는 시스템 버스 어드레스 발생 회로(118), I/O 버스 예상(expected) 어드레스 발생 회로(120), 시스템 버스 제어기 인터페이스(122), FIFO 버퍼(124), I/O 버스 슬레이브 인터페이스(126)와 버스-버스 페이싱(bus to bus pacing) 제어 논리 회로(128)로 구성된다. 시스템버스 제어기 인터페이스(122)는 40MHz에서 동작하는 고성능 32bit(4byte) i486 버스트 프로토콜을 지원한다. 버스토 모드에서는 4,8 및 16바이트의 데이타 전송이 또한 비버스트 모드(no-burst mode)에서는 1-4바이트의 데이타 전송이 제공된다. I/O 버스 슬래이브 인터페이스(126)는 상기 시스템 버스(76)상의 슬레이브 장치에 대한 동작에 대하여 I/O 버스(32)를 감시하며, I/O 버스(32)에 대한 동작들은 무시한다. I/O버스 슬레이브 인터페이스(126)에 의해 픽업된(picked-up) 모든 사이클은 FlFO 버퍼(124)와 시스템 버스제어기 인터페이스(122)로 전송된다.
I/O버스-시스템 버스 변환 논리 회로(108)는 I/O 장치(28)가 I/O 버스 제어기로서 작용하여 시스템 버스(76)를 액세스 하며, 따라서 시스템 메모리(24),(26)에 대한 판독 또는 기록하는데 필요한 수단을 제공한다. 이들 양 동작에 있어서, I/O 장치는I/O버스를 제어한다. I/O 장치의 속도로 동작하는 비동기식 I/O버스 인터페이스(126)는 버스 인터페이스 유니트(64)가 I/O 버스(32)상의 I/O 장치 제어기에 대한 슬레이브로서 작용하여 메모리 어드레스를 디코드해서 판독 또는 기록 사이클이 시스템 메모리(24)또는 (26)에대한 것임을 판단할 수 있게 한다. 이와 동시에, 상기 시스템 버스 제어기 인터페이스(122)는 버스 인터페이스 유니트(64)가 시스템 버스(74)에 대한 제어기로서 작용할 수 있게 한다. 메모리 제어기(58)(제1도)는버스 인터페이스 유니트(64)에 대한 슬레이브로 작동하여 버스 인터페이스 유니트(64)에 시스템 메모리로부터 판독된 데이타를 제공하거나 시스템 메모리에 데이타를 기록한다. 시스템 메모리에 대한 판독과 기록은FIFO 버퍼(124)를 통해 이루어진다. 버퍼(124)의 블럭도는 제3도에 도시한다.
제3도에 도시한 바와 같이, FIFO 버퍼(124)는 시스템 버스(76)와 I/O 버스(32)간의 데이타 정보를 일시적으로 저장하는 이중 포토의 비동기식 양방향 저장 유니트이다. FIFO 버퍼(124)는 4개의 16바이트 버퍼(125A-125D) 및 FIFO 제어 회로(123)를 포함한다. 4개의 버퍼(125A-125D)는 I/O 버스 제어기와 시스템 버스 슬레이브들에 대한 데이타를 버퍼링함으로써 I/O버스(32) 및 시스템 버스(76)가 동시에 동작할수 있도록 한다. FIFO 버퍼(124)는 물리적으로 2개의 32바이트 버퍼(125A/125B 및 125C/125D)로 구성된다. 시스템 버스 제어기 인터페이스(122) 및 I/O 버스 슬레이브 인터페이스(126)의 각각은 하나의 32바이트 버퍼를 제어하는데, 이때 나머지 하나의 32바이트 버퍼는 그들에게 있여 명백하게 동작한다. 2채워 32바이트 버퍼는 모두 기록 및 판독 동작에 사용한다.
각각의 FIFO(125A),(125B),(125C),(125D)는 어드레스 레지스터 섹션(address register section)을 갖는데, 이 레지스터 섹션은 각 FIFO와 물리적으로 또는 논리적으로 연관된다. 어드레스들이 서로 인접하는 경우, I/O 버스(32)로부터 FIFO(125A)로 데이타가 전송됨에 따라, 그 데이타는 16바이트 버퍼가 16바이트의데이타로 채워질 때까지 누적될 것이다. 비인접 어드레스(non-contiguous address)가 어드레스 섹션에 의해 검출될 경우, FIFO(125A)는 저장된 데이타를 FIFO(125C)로 전송하고, 이와 동시에 FIFO(125B)는 새로운 비인접 어드레스로부터의 데이타를 수신하기 시작한다. FIFO(125B)는 FIFO(125A)의 경우와 같이,16바이트의 데이타로 채워지거나, 또 다른 비인접 어드레스가 검출될 때까지 데이타를 계속 수신한다. FIFO(125B)는, 그 다음, 저장된 데이타를 FIFO(125D)로 전송하며, FIFO(125A)는 데이타를 다시 저장하기 시작한다. 따라서,16바이트 비인접 어드레스 데이타 블럭을 4개까지 저장할 수 있다.
이외에도, 두개의 32바이트 버퍼를 병렬로 하여 데이타의 판독 및 기록이 두 버퍼사이에서 토글(togg1e)될 수 있고 따라서, 본질적으로 연속적인 판독 및 기록 기능을 수행할 수 있다.
또한, 32바이트 버퍼를 다른 I/O 버스(32) 또는 시스템 버스(76)에 연결되는 16바이트 섹션물로 분할함으로써, 저장 데이타를 래지스터의 안으로 또는 밖으로 클록킹하는 신호의 용량성 로딩(capacitive loading)과 관련되는 FIFO의 성능에 대한 영향을 최소로 하면서, 저장 버퍼의 수를 증가시킬 수 있다. 이것은 2개의버퍼가(병렬로) 부가될 때마다 각 버스상의 클록 신호의 로딩에 상기 용량성 로딩의 절반만이 부가되기 때문이다.
더우기, 2개의 16바이트 버퍼를 매 경로상에 직결로 둠으로써, 판독 동작에서와 같이, 일단 2개의 16바이트 버퍼중 하나가 데이타로 채워지면 직렬로 연결된 다른 16바이트 버퍼로 그 데이타가 전송되는 한편 다른병렬 경로에서는 데이타의 누적을 지속할 수 있다. 따라서, 데이타를 누적하거나 하나의 버스로부터 나머지다른 버스로 데이타를 전송함에 있어 시간적 손실이 없다.
FIFO 제어 회로(123)는 FIFO(124)의 동작을 제어하는 논리를 제공한다.
개개의 I/O 디바이스(28)는 1,2 또는 4바이트(즉 8,16 또는 32비트)의 대역폭으로 I/O 버스를 통하여 시스템 메모리(24) 또는 (26)에 대한 기록을 행할 수도 있다. I/O 디바이스(28)가 시스템 메모리에 기록함에있어, 제1전송 기록 데이타는 처음에 FIFO 버퍼(125A) 또는 (125B)에 저장된다. I/O 버스 예상 어드레스발생 회로(120)는 다음의 예상 어드레스 또는 인접 어드레스(contiguous address)를 계산한다. 상기 다음의인접 어드레스를 이후의(subsequent) I/O어드레스와 대조함으로써 이후의 전송이 인접한지의 여부를 확인할 수 있다. 인접하는 경우, 기록 데이타의 제2바이트 또는 바이트들이 동일한 FIFO 버퍼(125A) 또는(125B)로 전송된다. FIFO는 I/O 버스(32)로부터 최고 매초 40메가바이트의 비동기 속도(asynchronousspeed)로 데이타를 수신할 수 있다.
이러한 과정은 버퍼(125A) 또는 버퍼(125B)가 16바이트 정보 패킷으로 채워지거나 또는 비인접 어드레스가 검출될 때까지 계속된다. 다음의 클록 사이클에서, 버퍼(125A)가 체워졌다고 가정하면, 버퍼(125A)의데이타는 버퍼(125C)로 전송된다. 이와 마찬가지로, 버퍼(125B)가 채워질 경우, 그것에 저장된 모든 내용은단일 클록 사이클로 버퍼(125D)에 전송된다. 버퍼(125C) 및 (125D)에 저장된 데이타는, 그 후, 시스템 버스 동작 속도의 i486 버스트 전송을 통해 시스템 메모리에 기록된다. 따라서, I/O 장치가 시스템 메모리에기록하는 동안 버퍼(124)의 작동은 연속적이며, 버퍼(125A) 와 (125B) 사이를 교번하여, 이들 버퍼의 각각은 근접한 버퍼(125C) 또는 버퍼(125D)로 데이타를 보내어 비워지고 다른 버퍼는 시스템 메모리에 기록될데이타를 보내어 비워지고 다른 버퍼는 시스템 메모리에 기록될 데이타를 수신하게 된다. 이때, FIFO 버퍼(124)는 (i) 메모리에 기록할 다음 데이타 바이트의 어드레스를 예상하고,(ii) 시스템 버스(76)를 통하여FIlFO 버퍼로부터 시스템 메모리로 기록할 데이타의 최대 속도를 수용함으로써 시스템 메모리로의 데이타기록 속도를 최적화 한다.
시스템 메모리로부터 I/O 장치(28)로의 데이타 판독 동안, FIFO 버퍼(124)는 전술한 경우와 상이하게 동작한다. 시스템 버스 어드레스 발생 회로(118)는 초기 판독 어드레스를 사용하여 이후의 판독 데이타의 판독 어드레스를 발생시키고 버퍼(125C) 또는 (125D)에 데이타를 누적한다. 시스템 버스가 16바이트 대역폭의 전송을 지원하기 때문에, 시스템 버스 제어기 인터페이스 회로(122)는 I/O 버스(32)가 실제 연속 어드레스를 제공하지 않아도 16바이트 패킷의 인접 데이타를 프리페치(prefetch)하여 그것을 버퍼(125C) 또는(125D)에 저장할 수 있어, 전송에서의 지연(latency)이 줄어든다. 버퍼(125C)가 프리페치된 데이타로 채워질 경우, 한 클록 사이클에 그 데이타를 버퍼(125A)로 전송한다. 마찬가지로, 버퍼(125D)가 프리페치된 데이타로 채워지면, 그 데이타를 버퍼(125B)로 이동시킨다. 그 후, 버퍼(l25A) 및 (125B)에 저장된 데이타는개개의 I/O 장치 제어기에 의해 1,2 또는 4바이트의 대역폭으로 판독될 수도 있다. 이와 같이 시스템 버스어드레스 발생 회로(118)는 데이타의 프리페치를 중단하도록 I/O 제어기 장치에 의해 지시 받을 때까지 증분 계수기로서 기능한다.
버스-버스 페이싱 제어 논리 회로(128)는 고속 I/O장치가 시스템 메모리를 좀더 빠르게 액세스하도록해준다. 버스-버스 페이싱 제어 논리 회로(128)는 시스템(10)의 통상적인 메모리 제어기 중재 계획(normal memory controller arbitration scheme) 에 우선(ouerride) 한다. 즉, I/O 장치와 CPU간의 메모리제어기(58)에 대한 교번적 액세스보다는 다중 사이클(multiplecycles)을 요구하는 고속 장치에 의한 데이타 전송 동안 I/O 버스(32)를 통제하고 있는 I/O 장치에 시스템 메모리로의 중단되지 않는 액세스가 허용된다. 따라서, I/O 장치에 의한 다중 사이클 전송 동안 CPU와 같은 로컬 장치가 메모리 버스의 제어를 요청한다고 하더라도 버스-버스 페이싱 제어 논리 회로(128)는 I/O 장치에게 연속적인 메모리 버스 제어를부여할 것이다.
프로그램된 I/O 회로(116)는 버스 인터페이스 유니트(64)내의 프로그래머블 레지스터 모두를 포함하는,버스 인터페이스 유니트(64)의 일부분이다. 이들 레지스터는 특정 레지스터가 활성인지 또는 비활성인지를결정하기 위하여 그들과 연관된 비트들을 가진다. 이들 레지스터는, 무엇보다도, 버스 인터페이스 유니트(64)가 응답할 시스템 메모리 및 확장 메모리 어드레스 범위, 캐시어블(cacheable) 또는 비캐시어블(non-cacheable) 확장 메모리 어드레스, 시스템 메모리 또는 캐시 어드레스 범위, 및 페리티(parity) 또는 에러검사가 버스 인터페이스 유니트에 의해 지원을 받는지 여부를 규정한다. 따라서, 프로그램된 I/O 회로(116)는 버스 인터페이스 유니트(64)에 대해서 상주 환경과 구성 옵션(configuration options)을 식별한다. I/O버스(32)를 통하여 직접적으로 프로그램된 I/O 회로(116)내의 레지스터를 프로그램할 수는 없다. 따라서,시스템(10)을 프로그램하려면, 사용자는 시스템 버스를 통하여 프로그램된 I/O 회로(116)와 CPU 수준으로통신할 수 있는I/O장치를 액세스 해야 한다.
메모리 어드레스 비교 논리 회로(110)는 메모리 어드레스가 시스템 메모리에 상응하는지 또는 I/O버스(32)에 결합된 I/O 장치(28)상의 확장 메모리에 상응하는지를 결정한다. 확장 메모리 뿐만아니라 시스템메모리 비인접 어드레스 블록일 수도 있기 때문에, 메모리 어드레스 비교 논리 회로(110)는 어떤 경계가 어떤 메모리에 상응하는가를 나타내기 의해 프로그램된 I/O 회로(116)내의 레지스터로부터의 경계 정보를 적재한 다수의 비교기를 포함한다. 특정한 메모리 어드레스가 메모리 어드레스 비교 논리 회로에 의해 경계정보와 비교된 후, 메모리 인터페이스 유니트는 그에 상응하게 응답하도록 마련된다. 예를들면, I/O 버스(32)를 통제하고 있는 I/O 디바이스가 확장 메모리에 대해 판독 또는 기록을 행할 경우, 버스 인터페이스회로는 메모리 제어기(58)로 그 어드레스를 전송할 필요가 없으며, 따라서 시간 및 메모리 대역폭을 절약할수 있다.
에러 복구 지원 논리 회로(122)는 데이타 패리트 에러(data parity error)가 검출될지라도 시스템(10)이동작을 계속하도록 허용한다. I/O 장치(28)의 시스템 메모리(24) 또는 (26)에 대한 모든 기록 또는 판독에있어, 데이타의 패리트가 검사된다. 에러 복구 지원 논리 회로(112)는 프로그램된 I/O 회로(116)내의 레지스터와 상호작용하여 검출된 패리티 에러의 어드레스 및 시간을 획득한다. 그후, 이 레지스터의 내용은 소정의 시스템 소프트웨어에 의해서 적용될 수도 있다. 예를들면, 패리티 에러가 검출될 때마다, 상기 어드레스를 상기 레지스터에서 인출하는 상위 수준 인터럽트로 CPU(38)가 프로그램 될 수도 있다. 그후, CPU는,시스템 소프토웨어 명령에 의거하여, 시스템을 계속 동작 시키든지 아니면 확인된 패리티 에러원의 동작을단순히 종료할 것인지를 결정할 것이다.
캐시 스누핑 논리(cache snooping logic) 회로(114)는 버스 인터페이스 유니트(64)가 I/O 버스(32)를 통하여 발생하는 확장 메모리에 대한 I/O 장치의 모든 기록 동작에 대하여 I/O버스(32)를 감시할 수 있게한다. 먼저 스누핑 논리 회로는 확장 메모리로의 기록이 SRAM(40)내에 캐시 가능한 확장 메모리에서 발생했는 지를 결정한다. 캐시 기능 확장 메모리가 아니면 캐시된 데이타가 손상될 염려가 없다. 그렇지만, 캐시 가능 확장 메모리에서 기록 동작이 발생했다는 것을 나타내는 양성 비교(positivecompare), 캐스 무효화(invalidation) 사이클이 시스템 버스(76)을 통하여 개시된다. 따라서, CPU는 이같은 명령을 받아SRAM(46)의 상응 어드레스를 무효화 한다. 캐시 스누핑 논리 회로(114)는 양성 비교의 어드레스를 기억하는 수단을 제공하여 I/O버스의 스누핑이 제1양성 비교 검출후에 즉시 연속되도록 함으로써, I/O 버스(32)의 연속적인 감시가 가능하다.
본 발명은 일반적으로 상술한 버스 인터페이스 유니트(64)에 관한 것으로서, 특히, 버스 인터페이스 유니트의 버스-버스 페이싱 제어 논리 회로(128)에 관한 것이다. 페이싱 제어 논리 회로(128)는 시스템 메모리에 대한 I/O 장치의 액세스를 동적으로 제어함으로써 시스템 메모리(24),(26)의 안과 밖으로 데이타를 이동시키는 I/O 버스(32)의 능력을 향상시킨다. 시스템 성능은 I/O 버스(32)를 제어하고 있는 I/O 장치(28)의 시스템 메모리에 대한 액세스를 어떤 사전 설정된 조건들 하에서 고정시킴으로써 향상된다.
버스-버스 페이싱 제어 논리 회로(128)는, FIFO 버퍼(124)와 관련하여, I/O 버스 제어기의 데이타 전송속도를 시스템 메모리의 데이타 전송능력에 최적하게 정합시키는대 사용된다. 예로서, 시스템 메모리가 기록 데이타를 받아들이는 것보다 더 빠르게 고속 I/O제어기가 시스템 메모리에 대한 기록을 행하는 경우에는, 버퍼된 기록 데이타는 FIFO 버퍼(125A-125B)를 완전히 채운 후에 시스템 메모리에 기록될 수 있게될 것이다. 또한, 시스템 메모리가 판독 데이타를 제공할 수 있는 것보다 더 빠르게 고속 I/O제어기가 시스템 메모리로부터 데이타를 판독할 수 있는 경우에는, FIFO 버퍼(125C),(125D)에서는 프리페치된(prefetched) 데이타를 얻을 수 없을 것이다. 따라서, 이들 양 경우에 있어서, I/O 버스(32)측에서 본 데이타 전송에 있어서의 지연 증대, 따라서, 성능저하의 결과가 나타난다.
통상적으로, I/O 장치 제어기는 판독 또는 기록 동작에 착수하여 메모리 어드레스를 I/O버스(32)를 통해 버스 인터페이스 유니트(64)에 제공할 것이다. 버스 인터페이스 유니트내의 회로(110)는 이 어드레스를회로(116)내의 프로그램된 어드레스 범위와 비교하여, 상기한 판독 또는 기록 동작이 확장메모리에 대한 것인지 또는 시스템 메모리에 대한 것인지를 판정한다. 이때, 그 동작이 확장 메모리에 대한 것이라고 판정되면, 이러한 조건하에서는 시스템 메모리에 대한 액세스를 우선화할 필요가 없으므로, 버스-버스 페이싱 제어 논리 회로(128)는 아무 작용도 하지 않는다. 그러나, 판독 또는 기록 동작이 시스템 메모리(24) 또는(26)에 대한 것이라고 판정되고 사진 설정된 조건들이 충족되는 경우, 페이싱 제어 회로(128)는 I/O 버스(32)를 통제하고 있는 I/O장치(28)에 시스템 메모리에 대한 연속적인 우선 순위 액세스를 승인하는 신호를 발생하는데, 이 신호는 정규 중재 과정 동안의 메모리 제어기(58)에 의한 중재 승인 신호 출력을 오버라이드(override) 한다.
I/O장치에 시스템 메모리에 대한 우선 순위 액세스를 승인하는 사전 설정된 조건들은 다음과 같다. 즉,(1) I/O 버스(32)를 제어하는 I/O 장치에 의한 판독 요청이 시스템 메모리내의 사전 규정된 16바이트 어드레스 경계와 정렬되지 않는다. (2) I/O 버스(32)를 제어하는 I/O 장치가 기록 사이클 즉시 판독 사이클을뒤이은다. (3) I/O 버스(32)를 제어하는 I/O 장치가 데이타 전송을 완료한다. (4) I/O 버스(32)를 제어하는 I/O 장치가 스트리밍 모드(streaming mode)로 데이타를 판독 또는 기록한다(매초 40메가바이트). (5)FlFO 버퍼(124)내에 있는 네개의 16-바이트 버퍼들중 셋 이상이 시스템 메모리에 기록될 데이타로 이미채워지거나, 상기 네개의 16-바이트 버퍼들중 하나가 시스템 메모리로부터 판독될 프리페치된 데이타로 아직 채워지지 않는다.
본 발명의 바람직한 실시 태양에 있어서, 버스-버스 페이싱 제어 논리(128)는 세가지 모드로 동작한다.이들 모드중 제1모드는 더폴트 모드(defaul tmode)로서, 상기한 사전 설정된 조건들중 (1),(2) 및 (3) 조건에 대해 버스제어의 페이싱을 결정한다. 이들 모드중 제2모드(옵션 1)는 상기한 (4) 조건에 대해 페이싱을 결정하고, 제3모드(옵션 2)는 상기한 (5) 조건에 대해 페이싱을 결정한다. 시스템 사용자는 시스템이자동적으로 제공하는 디폴트 페이싱 모드외에나머지 페이싱 모드들중 하나(옵션 1 또는 옵션 2)를 선택할수 있다. 이같은 선택은 프로그램된 I/O 회로(116)내의 3-비트 레지스터(도시안함)의 내용을 프로그램하는 것에 의해 행해진다. 디폴트 페이싱 모드는 레지스터 내용 0-0-0에 의해 규정되고 ; 옵션 1은 레지스터 내용 0-0-1에 의해 규정되며 ; 옵션 2는 레지스터 내용 1-0-0에 의해 규정된다.
상술한 바와 같이, 디폴트 페이싱 논리 회로는 상기한 (1),(2) 및 (3) 조전에 대한 페이싱을 다룬다. (1)조건하에서, I/O 장치(28)는 특정의 16-바이트 패킷 경계와 정렬되지 않은, 시스템 메모리(24) 또는 (26)의 판독을 요청하는데, 이것은 판독 요청이 16-바이트 패킷의 경계내의 어딘가에서 시작되는 데이타 어드레스들에 대한 것임을 의미한다. 판독 데이타가 특정한 16-바이트 패킷의 정계와 정렬되었다면, 시스템 버스 어드레스 발생 회로(1]8)는 단순히 버퍼(125C) 또는 (125D) 내로 상기 데이타의 포준 16-바이트 버스트 전송을 행할 것이다. 그리나, 판독 데이타가 패킷 정렬되지 않으면,1,2,3 및 4바이트 사이클을 사용하여 데이타를 프리페치해야만 한다. 이같은 데이타를 가장 효율적인 방법으로 확실히 프리페치하기 위해서는시스템 메모리에 대한 I/O 장치(28)의 액세스를 고정(1ock)하여, 이 동안 충분한 데이타가 자동적으로 프리페치되어 16-바이트 경계에 도달되게 한다. 이때, 이러한 16-바이트 미만의 판독데이타는 I/O 버스(32)의타이밍에 동기되고 /O 장치 제어기와 병행하여, 시스템 버스 어드레스 발생 회로(118)는 시스템 메모리에대한 고정신호의 해제전에 다음의 인접하는 16-바이트 패킷을 프리페치할 것이다. 이 16-바이트 패킷은사전 규정된 경계에서 시작하기 때문에, 버스트 전송이 가능하다. 따라서, 두개의 데이타 전송이 중단(interruption)없이 수행된다. 이같은 조건에서 제4도의 고정신호(140)를 사용하면, I/O 버스(32)상의 장치가 데이타를 요청할 때와 버스 인터페이스 유니트(64)가 데이타를 사진 실장(predde)할 때까지의 지연이최소로 되며, 페이지 방식 시스템 메모리(page made system memory)의 사용 효율이 최대로 된다.
상기한 (2) 조건하에서, I/O 장치(28)가 기록 전송으로부터 판독 요청으로 변할 때 잔류하는 버퍼된 기록데이타(residual buffered write data)가 FIFO 버퍼(125A-125D)내에 존재할 수도 있다. 일단 I/O 장치버스 제어기가 기록에서 판독으로 변하면, 페이싱 제어 논리 회로(128)는 사이클 종점에 이르렀으며, FIFO버퍼(124)에 저장될 기록 데이타가 더이상 없고, 이제 시스템 메모리(24) 또는 (26)로부터 판독 데이타가요청되고 있다고 결정한다. 인접하는 기록 데이타가 더이상 즉각적으로 출현하지 않음을 알 수 있으므로,하나의 기본동작(atomic operation)으로 버퍼(125A-125D)내의 버퍼된 데이타가 시스템 메모리에 기록되고 상기 판독요청은 시스템 메모리로부터 프리페치된다.
상기한 (3) 조건하에서, I/O 제어기 장치가 I/O 버스(32)의 제어를 포기(relinguish)할 때 잔류하는 비퍼된 데이타가 FIFO 버퍼(125A-125D)내에 또한 존재할 수도 있다. 이같은 경우, 그러힌 잔류 데이타는 시스템 버스(76)의 해제전에 시스템 메모리에 기록되어야만 한다. FIFO 버퍼(125A-1가D)중 둘 이상이 이러한 잔류데이타를 포함하는 경우, I/O 장치 제어기가 I/O 버스(32)의 제어를 포기하자마자, 페이싱 논리회로(128)는 소정의 신호를 메모리 제어기에 발생하여, FIFO 버퍼(124)내의 데이타가 단일 전송 길이를 초과하며(즉, 16바이트보다 크며) ; 시스템 메모리(24) 또는 (26)에 기록될 필요가 있음을 나타낼 것이다. 이러한 상황에서 고정신호(140)를 사용하면, I/O 제어기가 I/O 버스(32)의 제어를 해제하는 것과 버스 인터페이스 유니트(64)가 시스템 버스(76)의 제어를 해제하는 것 사이의 지연이 최소로 된다.
상기한 (1),(2) 및 (3) 조건에 응답하는 디폴트 논리 회로는 버스 인터페이스 유니트(64)의 하드웨어로구축되는 알고리즘에 의해 실현된다. 통상적으로, 당업계에 알려진 바와같이, 상태 기계(state machines)이상기 요구되는 논리 회로를 구현하는데 사용될 수 있다. 상기한 (4) 및 (5) 조건에 응답하는 페이싱 논리회로도 버스 인터페이스 유니트 하드웨어로 구축되는 알고리즘에 의해 실현된다. 제4 및 5도는 각각 옵션 1및 옵션 2에 대한 버스-버스 페이싱 제어 논리 회로(l28)의 특정 실시 대양을 구현하는데 사용되는 회로를도시한 것이다.
제4도를 참조하면,(상기한 (4) 조건에 관련하는) 옵션 1을 구현하기 위한 버스-버스 페이싱 제어 논리회로는 클럭형(clocked) S-R 레치(132), AND 게이트(134),(136) 및 OR 게이트를 포함한다. 래치(132)가 세트되는 때(S-입력이 활성)는 언제나, 그 래치는 고정신호(140)를 출력한다. 상기 고정신호(140)는 I/O 장치(28)가 스트리밍 모드로 시스템 메모리(24),(26)에 대해 데이타 기록 또는 판독을 행하는 때, I/O버스(32)를 통제하고 있는 I/O 장치(28)에 시스템 메모리에 대한 연속적인 엑세스를 제공한다. 스트리밍이란 여러 다른 어드레스들에 대한 데이타 전송보다 빠르게 수행될 수 있는, 동일 어드레스에 대한 데이타 전송을 말한다.
제4도의 논리 회로에 의해 스트리밍 데이타 기록 동작을 검출하고, FIFO 버퍼(125C) 또는 (125D)가16-바이트 패킷의 버퍼된 기록 데이타로 채워졌을 때, 고정신호는 활성화되고, 버스트 기록 시퀀스(sequence)는 시스템 버스(76)를 통해 시스템 메모리에 대해 개시되어, I/O 장치(28)가 스트리밍 시퀸스를종료할 때까지 또는 FIFO 버퍼에 어떠한 데이타도 남아 있지 않을 때까지 활성상태로 유지될 것이다. 유사하게, 스트리밍 데이타 판독동작의 검출시, 고정신호는 활성화되고, 버스트 판독 시퀀스는 시스템 메모리에대해 개시되어 FIFO 내에 빈 공간이 있는 한 또는 I/O 장치(28)가 스트리밍 시퀸스를 종료할 때까지 활성상태를 유지할 것이다. 스트리밍 판독 또는 기록에 응답하는 버스 제어 논리 회로(128)는 3-비트 레지스터내에 레지스터 내용 0-0-1을 프로그램하는 것에 의해 규정된다. 따라서,3-비트 레지스터가 0-0-1로프로그램되면, AND 게이트(134)는 레지스터의 내용을 디코드하여 옵션 1 인에이블(enable) 라인(142)에하이(HIGH)를 제공할 것이다. 라인(144)도 I/O 버스(32)를 제어하는 특정 I/O 장치(28)가 스트리밍 모드로 데이타를 기록 또는 판독하는 것을 버스 인터페이스 유니트(64)가 검출하는 한 하이로 될 것이다. 라인(142) 및 (144)이 이 기간동안 하이이기 때문에, AND 게이트(136)는 OR 게이트(138)의 출력(146)이 하이일 때 래치(132)를 세트시켜 고정신호(140)가 출력되게 한다.
OR 게이트(l38)의 출력(146)은 (i) I/O 버스(32)를 제어하는 I/O 장치(28)가 스트리밍 데이타 판독요청을 발생하거나(판독동작들) (ii) FIFO(124) 내의 16-바이트 버퍼(125C) 또는 (125D)가 채워질 때(기록동작들) 하이로 된다. 이들 양 경우에 있어서, 또한 라인(142),(144)이 상기한 바와 같이 하이일 때, 래치(132)는 메모리 제어기에 고정신호(140)를 제공하여 메모리 제어기(58)의 중재를 오버라이드할 것이다. I/O 쟝치(28)가 스트리밍 모드로 판독 또는 기록 데이타를 더이상 전송하지 않음을 나타낼 때마다, 라인(148)은 하이로 되고, 이에 따라 래치(l32)가 리세트되며 제4도의 논리 회로가 효과적으로 디스에이블(disable)된다.
제5도를 참조하면,(상기한 (5) 조건에 관련하는) 옵션 2를 구현하기 위한 버스-버스 제어 논리 회로는클럭형 S-R 래치(150), (152)를 포함하며, 이들 각각은 판독 및 기록 사이클에 대한 별개의 논리 통로에의해 독립적으로 제어된다. 이들 클럭형 래치(150),(152)중 어느 하나가 세트될 때마다, 고정신호(140)가인에이블되어 메모리 제어기(58)로 출력된다. 이들 레치는 R-입력의 활성화에 의해 리세트되고, 따라서,래치는 디스에이블되어 고정신호를 출력하지 않게 된다.
상기한 (5) 조건하에서는,(i) 데이타가 시스템 버스(76)를 통해 시스템 메모리에 기록될 수 있는 것보다 더 빠르게 I/O제어기(28)에 의해서 I/O버스(32)를 통해 버스 인터페이스 유니트(64)에 기록되거나 (ii) 버스 인터페이스 유니트가 시스템 메모리로부터 데이타를 프리페치할 수 있는 것보다 더 빠르게 I/O제어기(28)에 의해서 버스 인터페이스 유니트(64)로부터 데이타가 판독된다. 데이타가 I/O 제어기에 의해너무 빠르게 기록되면, 잔류 데이타는 FIFO 버퍼(125A-125D)에 쌓이기 시작한다. FIFO 버퍼 공간의 절반 이상이 그러한 잔류 데이타를 포함하는 경우에는, 고정신호(140)가 래치(152)에 의해 캐시되어 시스템메모리에 대한 기본 전송(atomic transfers)이 허용된다. 데이타가 I/O 제어기(28)에 의해 I/O 버스(32)를통해 버스 인터페이스 유니트(64)로부터 너무 빠르게 판독되면, FIFO 버퍼(125A) 또는 (125B)가 비워지게되는데, 이것은 버퍼(125C),(125D)내에 유용한 프리페치된 인접하는 데이타가 없음을 뜻한다. 따라서, 고정신호(140)가 래치(150)에 의해 출력되어 버스 인터페이스 유니트는 데이타를 버퍼(125C),(125D)내로 프리페치할 수도 있게 된다. 따라서, FIFO 버퍼(124)의 적어도 절반은 프리페치된 데이타에 의해 채워진 상태로 유지된다.
상술한 (5) 조건에 응답하는 버스 제어 논리 회로는 3-비트 레지스터내에 레지스터 내용 1-0-0을 프로그램하는 것에 의해 규정된다. 따라서,3-비트 레지스터가 1-0-0으로 프로그램되면, NOR 게이트(154)는레지스터의 내용을 디코드해서 옵션 2인에이블 라인(156)에 하이를 제공한다. 옵션 2 인에이블 라인(156)은 데이타 판독 동작(제5도에 도시한 논리 회로의 상측절반) 및 데이타 기록 동작(제5도에 도시한 논리회로의 하측절반)에 응답하는 제어 논리 회로를 인에이블시키는데 사용된다.
기록 동작 동안, OR 게이트(158)의 출력(156)도 버퍼(125A-125D)중 적어도 두개가 채워지는 한 하이로될 것이다. 통상적으로, 이것은 버터(125A)이든 또는 (125B)이든 어느 하나가 채워졌고 각기 버터(l25C)혹은 버퍼(125D)로 전송했으며, 나머지 하나가 채워지고 있음을 뜻한다. 이 경우, 데이타는 버터(125C) 또는 (125D) 중 어느 하나 또는 모두에 있고 시스템 메모리에 즉시 기록될 수 있다. 라인(156),(158)이 하이이면, AND 게이트(162)는 래치(152)를 세트시켜 고정신호(140)가 메모리 제어기(58)로 출력되게 할 것이다. 고정신호(140)는 래치(152)의 R-입력이 AND 게이트(164)의 출력에 의해 하이로 구동될 때까지 활성상태를 유지할 것이다. AND 게이트(164)는 버터(125C),(125D)가 빈 경우에 하이로 되어, 이들 버퍼로부터 시스템 메모리에 대한 즉각적인 데이타 기록이 필요치 않음을 나타낸다.
판독 동작 동안, 래치(150)는 AND 게이트(166)의 하이 출력에 의해 세트될 때 고정신호를 메모리 제어기(58)에 출력할 것이다. AND 게이트(166)의 출력은 (i) 옵션 2가 활성상태임으로 인해 라인(156)이 하이,(ii) 버스 인터페이스 유니트가 시스템 메모리로부터의 판독을 검출함에 따라 라인(168)이 하이, 또한 (iii) 버퍼(125A)이든 또는 (125B)이든 어느 하나가 비워져 있는 때마다 NAND 게이트(172)에 의해 라인(170)이 로우(LOW)로 구동될 때, 하이로 구동된다. 이 경우 고정신호가 개시되는데, 그 이유는 버퍼(125A) 또는 (125B)중 어느 한쪽이 비워져 있는 경우 버퍼(125C) 또는 (125D)중 어느 한쪽의 내용들은 비워져, 버퍼(125C) 또는 (125D)내에 시스템 메모리로부터 프리페치된 인접하는 데이타에 대한 빈 공간을 남기기 때문이다.
판독동작에 있어서의 고정신호는 래치(150)의 R-입력이 OR 게이트(174)에 의해 활성화될 때까지 활성상태를 유지한다. OR 게이트(174)는, (i) 버스 인터페이스 유니트(64)가 시스템 메모리로부터 판독이 없음을 검출할 때 또는 (ii) 버터(125C) 혹은 (125D)중 어느 하나가 채워지고 버퍼(125A),(125B)중의 그어느 것도 비워져 있지 않을때, 하이로 구동된다. 이들 두 경우의 그 어느 것에 있어서도, 고정신호는 필요치 않으므로, 이에 따라 래치(150)는 리세트 된다. 이때, 시스템 메모리(24),(26)에 대한 액세스는 메모리제어기(58)에 의해 구현되는 정규의 중재 계획에 따라 제어된다.
본 명세서에서는 이중 버스 구조를 가진 컴퓨터에 대한 버스 제어 논리 시스템의 바람직한 실시 태양을설명하였으나, 전술한 설명을 염두에 두고볼 때, 그 같은 설명은 하나의 예에 불과한 것으로서, 본 발명이본 명세서 내에 설명한 특정 실시 태양에 국한되지 않으며, 특허청구범위에 의해 규정되는 본 발명의 진정한 사상을 벗어나지 않는 범위내에서 각종 재구성, 변형 및 대체가 가능함을 알아야 할 것이다.

Claims (22)

  1. 시스템 메모리와 ; 상기 시스템 메모리에 메모리 버스에 의해서 접속되고, 상기 시스템 메모리에 대한 액세스를 제어하기 위한 메모리 제어기(memory controller)와 ; 상기 메모리 제어기와 전기적으로 접속되며, 상기 메모리 버스를 통해 상기 시스템 메모리에 대한 데이타 판독 및 기록을 행할 수 있는 중앙처리장치(CPU)와 ; 시스템 버스에 의해 상기 메모리 제어기에 전기적으로 접속되는 버스 인터페이스 유니트(bus interface unit)와 ; 입/출력 버스에 의해 상기 버스 인터페이스 유니트에 전기적으로 접속되는 입/출력장치를 포함하고 ; 상기 메모리 제어기는 상기 중앙처리 장치와 상기 입/출력 장치간의 중재를 하여 상기중앙처리 장치와 상기 입/출력 장치중 어떤 것에 상기 메모리 버스를 통해 상기 시스템 메모리에 대한 액세스를 승인해야 하는 가를 판단하는 논리를 가지며 ; 상기 버스 인터페이스 유니트는 상기 메모리 제어기 중재 논리를 오버라이드(override)하는 버스 인터페이스 논리를 가지며, 상기 버스 인터페이스 논리는 일련의사전 설정된 동작 조건에 응답하여 상기 메모리 제어기 중제 논리를 오버라이드하여 상기 시스템 메모리에대한 배타적 액세스(exclusive access)를 상기 입/출력 장치에 승인하는 것인 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 버스 인터페이스 논리는 상기 버스 인터페이스 유니트내의 하드웨어로 구축되는 알고리즘에 의해 구현되는 컴퓨터 시스템.
  3. 제2항에 있어서, 상기 일련의 사전 설정된 동작 조건들에 응답하는 상기 인터페이스 유니트는 시스템 사용자에 의해 프로그램 가능한 것인 컴퓨터 시스템.
  4. 제2항에 있어서, 상기 버스 인터페이스 유니트는 판독 또는 기록 동작(read or write operation)에상응하는 어드레스가 시스템 메모리내의 위치에 대응하는지 또는 상기 입/출력 버스 상의 입/출력 장치내에제공된 확장 메모리(expansion memory)내의 위치에 대응하는지를 판단하는 컴퓨터 시스템.
  5. 제2항에 있어서, 상기 시스템 버스는16바이트까지의 대역폭으로 상기 버스 인터페이스 유니트와 상기 시스템 메모리간의 판독 또는 기록 데이타의 버스트 전송(burst transfer)을 지원하며, 상기 입/출력 버스는 1,2 또는 4바이트 대역폭으로 상기 입/출력 장치와 상기 버스 인터페이스 유니트간의 판독 또는 기록데이타의 전송을 지원하는 컴퓨터 시스템.
  6. 제4항에 있어서, 상기 버스 인터페이스 유니트는 상기 시스템 버스와 상기 입/출력 버스간의 데이타정보를 일시적으로 저장하는 이중포토의 비동기 양방향성 저장 유니트(dual ported, asynchronous, bi-directional storage unit)를 구비한 컴퓨터 시스템.
  7. 제6항에 있어서, 상기 이중포트의 비동기 양방향성 저장 유니트는 판독 및 기록 동작에 모두 사용되는 적어도 두쌍의 16바이트 버퍼를 포함하는 컴퓨터 시스템.
  8. 제1항에 있어서, 상기 사전 설정된 일련의 동작 조건들중의 하나는 상기 시스템 메모리에 대한 상기입/출력 장치의 판독 요청이 상기 시스템 메모리내의 사전 규정된 16바이트 어드레스 경계와 정렬(align)되지 않는 때에 발생하는 컴퓨터 시스템.
  9. 제1항에 있어서, 상기 사전 설정된 일련의 동작 조건들중의 하나는 상기 입/출력 장치가 상기 시스템 메모리에 대한 판독 동작 후에 상기 시스템 메모리에 대한 기록 동작을 수행하는 때에 발생하는 컴퓨터 시스템.
  10. 제1항에 있어서, 상기 사전 설정된 일련의 동작 조건들 중의 하나는 상기 입/출력 장치가 데이타 전달 동작을 완료한 때에 발생하는 컴퓨터 시스템.
  11. 제1항에 있어서, 상기 사전 설정된 일련의 동작 조건들 중의 하나는 상기 입/출력 장치가 스토리밍모드(streaming mode)로 상기 시스템 메모리에 대한 판독 또는 기록을 행하는 때에 발생하는 컴퓨터 시스템.
  12. 제7항에 있어서, 상기 사진 설정된 일련의 동작 조건들 중의 하나는 상기 이중포토의 비동기 양방향성 저장 유니트내 버퍼 공간의 절반 이상이 상기 시스템 메모리에 기록될 데이타로 채워지거나 상기 시스템메모리로부터의 판독 동안 상기 이중포토의 비동기 양방향성 저장 유니트내 버퍼 공간의 절반 이상이 비워지는 때에 발생하는 컴퓨터 시스템.
  13. 컴퓨터 시스템에서 시스템 메모리에 대한 액세스를 제어하는 방법으로서, 중앙처리 장치와 입/출력장처간의 중재를 하여 상기 중앙처리 장치와 상기 입/출력 장치중 어떤 것에 상기 시스템 메모리에 대한 액세스를 승인해야 하는가를 판단하여 상기 시스템 메모리에 대한 판독 및 기록 동작이 수행되도록 하는 메모리 제어기를 제공하는 단계와 ; 상기 메모리 제어기에 전기적으로 접속되며 상기 메모리 제어기를 오버라이드하는 버스 인터페이스 논리를 갖는 버스 인터페이스 유니트로서, 일련의 사전 설정된 동작조건들에 응답하여 상기 메모리 제어기 논리를 오버라이드하고 상기 시스템 메모리에 대한 배타적 액세스를 상기 입력/출력 장치에 승인하는 버스 인터페이스 유니트를 제공하는 단계를 포함하는 시스템 메모리 액세스 제어방법.
  14. 제13항에 있어서, 상기 버스 인터페이스 유니트는 판독 또는 기록 동작에 상응하는 어드레스가 시스템 메모리내의 위치에 대응하는지 또는 상기 입/출력 버스상의 입/출력 장치내에 게공된 확장 메모리 내의위치에 대응하는지를 판단하는 것인 시스템 메모리 액세스 제어방법.
  15. 제14항에 있어서, 상기 시스템 버스는 16바이트까지의 대역폭으로 상기 버스 인터페이스 유니트와 상기 시스템 메모리간의 판독 또는 기록 데이타를 전송하며, 상기 입/출력 버스는 1,2 또는 4바이트 대역폭으로 상기 입/출력 장치와 상기 버스 인터페이스 유니트간의 판독 또는 기록 데이타를 전송하는 시스템 메모리 액세스 제어방법.
  16. 제13항에 있어서, 상기 버스 인터페이스 유니트는 상기 시스템 버스와 상기 입/출력 버스간에 전송되는 데이타 정보를 일시적으로 저장하는 이중포토의 비동기 양방향성 전자 유니트를 구비한 시스템 메모리액세스 제어방법.
  17. 제16항에 있어서, 상기 이중포트의 비동기 양방향성 저장 유니트는 판독 및 기록 동작에 모두 사용되는 적어도 두쌍의 16바이트 버퍼를 포함하는 시스템 메모리 액세스 제어방법.
  18. 제13항에 있어서, 상기 사전 설정된 일련의 동작 조건들 중의 하나는 상기 시스템 메모리에 대한 상기 입/출력 장치의 판독 요청이 상기 시스템 메모리내의 사전 규정된 16바이트 어드레스 경계와 정렬되지않는 때에 발생하는 시스템 메모리 액세스 제어방법.
  19. 제13항에 있어서, 상기 사전 설정된 일련의 동작 조건들 중의 하나는 상기 입/출력 장치가 상기 시스템 메모리에 대한 판독 동작 후에 상기 시스템 메모리에 대한 기록 동작을 수행하는 때에 발생하는 시스템메모리 액세스 제어방법.
  20. 제13항에 있어서, 상기 사전 실정된 일련의 동작 조건들 중의 하나는 상기 입/출력 장치가 데이타 전달 동작을 완료한 때에 발생하는 시스템 메모리 액세스 제어방법.
  21. 제13항에 있어서, 상기 사전 설정된 일련의 동작 조건들 중의 하나는 상기 입/출력 장치가 스트리밍모드로 상기 시스템 메모리에 대한 판독 또는 기록을 행하는 때에 발생하는 시스템 메모리 액세스 제어방법.
  22. 제17항에 있어서, 상기 사전 설정된 일련의 동작 조건들 중의 하나는 상기 이중포트의 비동기 양방향성 저장 유니트 내 버퍼 공간의 절반 이상이 상기 시스템 메모리에 기록될 데이타로 채워지거나 또는 상기시스템 메모리로부터의 판독동안 상기 이중포트의 비동기 양방향성 저장 유니트내 버퍼 공간의 절반 이상이비워지는 때에 발생하는 시스템 메모리 액세스 제어방법.
KR1019920024698A 1992-01-02 1992-12-17 컴퓨터 시스템 및 시스템 메모리 액세스 제어 방법 KR950014183B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US81599292A 1992-01-02 1992-01-02
US815,992 1992-01-02

Publications (2)

Publication Number Publication Date
KR930016873A KR930016873A (ko) 1993-08-30
KR950014183B1 true KR950014183B1 (ko) 1995-11-22

Family

ID=25219387

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920024698A KR950014183B1 (ko) 1992-01-02 1992-12-17 컴퓨터 시스템 및 시스템 메모리 액세스 제어 방법

Country Status (10)

Country Link
US (1) US5544346A (ko)
EP (1) EP0550224A1 (ko)
JP (1) JPH05242014A (ko)
KR (1) KR950014183B1 (ko)
CN (1) CN1029168C (ko)
AU (1) AU663536B2 (ko)
CA (1) CA2080608A1 (ko)
NZ (1) NZ245344A (ko)
SG (1) SG44430A1 (ko)
TW (1) TW318224B (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5708794A (en) * 1993-08-10 1998-01-13 Dell Usa, L.P. Multi-purpose usage of transaction backoff and bus architecture supporting same
DE4332609A1 (de) * 1993-09-24 1995-03-30 Esselte Meto Int Gmbh Schaltungsanordnung zur Dateneingabe und Datenausgabe für einen Drucker
KR0154840B1 (ko) * 1995-12-05 1998-11-16 김광호 피씨아이-피씨아이 브리지의 버퍼 플러쉬 제어 장치
US5815675A (en) * 1996-06-13 1998-09-29 Vlsi Technology, Inc. Method and apparatus for direct access to main memory by an I/O bus
US5881248A (en) * 1997-03-06 1999-03-09 Advanced Micro Devices, Inc. System and method for optimizing system bus bandwidth in an embedded communication system
US5974497A (en) * 1997-05-22 1999-10-26 Dell Computer Corporation Computer with cache-line buffers for storing prefetched data for a misaligned memory access
JP2000010910A (ja) * 1998-06-22 2000-01-14 Nec Corp データ転送制御装置およびデータ転送制御方法ならびに記録媒体
US6530000B1 (en) 1999-03-24 2003-03-04 Qlogic Corporation Methods and systems for arbitrating access to a disk controller buffer memory by allocating various amounts of times to different accessing units
CA2299550A1 (en) * 1999-03-31 2000-09-30 International Business Machines Corporation Dynamic i/o allocation in a partitioned computer system
US7546305B2 (en) 2001-04-13 2009-06-09 Oracle International Corporation File archival
US7111228B1 (en) 2002-05-07 2006-09-19 Marvell International Ltd. System and method for performing parity checks in disk storage system
US7007114B1 (en) 2003-01-31 2006-02-28 Qlogic Corporation System and method for padding data blocks and/or removing padding from data blocks in storage controllers
US7287102B1 (en) 2003-01-31 2007-10-23 Marvell International Ltd. System and method for concatenating data
US7064915B1 (en) 2003-03-10 2006-06-20 Marvell International Ltd. Method and system for collecting servo field data from programmable devices in embedded disk controllers
US7080188B2 (en) 2003-03-10 2006-07-18 Marvell International Ltd. Method and system for embedded disk controllers
US7039771B1 (en) 2003-03-10 2006-05-02 Marvell International Ltd. Method and system for supporting multiple external serial port devices using a serial port controller in embedded disk controllers
US7492545B1 (en) 2003-03-10 2009-02-17 Marvell International Ltd. Method and system for automatic time base adjustment for disk drive servo controllers
US7870346B2 (en) 2003-03-10 2011-01-11 Marvell International Ltd. Servo controller interface module for embedded disk controllers
US7444668B2 (en) * 2003-05-29 2008-10-28 Freescale Semiconductor, Inc. Method and apparatus for determining access permission
EP1482412B1 (en) * 2003-05-30 2006-08-23 Agilent Technologies Inc Shared storage arbitration
US7526691B1 (en) 2003-10-15 2009-04-28 Marvell International Ltd. System and method for using TAP controllers
US7139150B2 (en) 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US7120084B2 (en) 2004-06-14 2006-10-10 Marvell International Ltd. Integrated memory controller
US8166217B2 (en) 2004-06-28 2012-04-24 Marvell International Ltd. System and method for reading and writing data using storage controllers
US7757009B2 (en) 2004-07-19 2010-07-13 Marvell International Ltd. Storage controllers with dynamic WWN storage modules and methods for managing data and connections between a host and a storage device
US9201599B2 (en) 2004-07-19 2015-12-01 Marvell International Ltd. System and method for transmitting data in storage controllers
US8032674B2 (en) 2004-07-19 2011-10-04 Marvell International Ltd. System and method for controlling buffer memory overflow and underflow conditions in storage controllers
US7386661B2 (en) 2004-10-13 2008-06-10 Marvell International Ltd. Power save module for storage controllers
US7240267B2 (en) 2004-11-08 2007-07-03 Marvell International Ltd. System and method for conducting BIST operations
US7802026B2 (en) 2004-11-15 2010-09-21 Marvell International Ltd. Method and system for processing frames in storage controllers
US7609468B2 (en) 2005-04-06 2009-10-27 Marvell International Ltd. Method and system for read gate timing control for storage controllers
US9838784B2 (en) 2009-12-02 2017-12-05 Knowles Electronics, Llc Directional audio capture
US8798290B1 (en) 2010-04-21 2014-08-05 Audience, Inc. Systems and methods for adaptive signal equalization
US20140082307A1 (en) * 2012-09-17 2014-03-20 Mobileye Technologies Limited System and method to arbitrate access to memory
US9536540B2 (en) 2013-07-19 2017-01-03 Knowles Electronics, Llc Speech signal separation and synthesis based on auditory scene analysis and speech modeling
US9170942B1 (en) * 2013-12-31 2015-10-27 Emc Corporation System, apparatus, and method of automatic data padding
DE112015004185T5 (de) 2014-09-12 2017-06-01 Knowles Electronics, Llc Systeme und Verfahren zur Wiederherstellung von Sprachkomponenten
WO2016049566A1 (en) * 2014-09-25 2016-03-31 Audience, Inc. Latency reduction
US9668048B2 (en) 2015-01-30 2017-05-30 Knowles Electronics, Llc Contextual switching of microphones
US9820042B1 (en) 2016-05-02 2017-11-14 Knowles Electronics, Llc Stereo separation and directional suppression with omni-directional microphones
US10871921B2 (en) * 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4442502A (en) * 1981-03-30 1984-04-10 Datapoint Corporation Digital information switching system
IT1206331B (it) * 1983-10-25 1989-04-14 Honeywell Inf Systems Architettura di sistema di elaborazione dati.
US4967344A (en) * 1985-03-26 1990-10-30 Codex Corporation Interconnection network for multiple processors
US4788640A (en) * 1986-01-17 1988-11-29 Intel Corporation Priority logic system
US4821177A (en) * 1986-09-02 1989-04-11 Honeywell Bull Inc. Apparatus for controlling system accesses having multiple command level conditional rotational multiple port servicing priority hierarchy
US4785394A (en) * 1986-09-19 1988-11-15 Datapoint Corporation Fair arbitration technique for a split transaction bus in a multiprocessor computer system
EP0288649B1 (en) * 1987-04-22 1992-10-21 International Business Machines Corporation Memory control subsystem
US4947368A (en) * 1987-05-01 1990-08-07 Digital Equipment Corporation Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfers
US4980854A (en) * 1987-05-01 1990-12-25 Digital Equipment Corporation Lookahead bus arbitration system with override of conditional access grants by bus cycle extensions for multicycle data transfers
US4982321A (en) * 1987-10-23 1991-01-01 Honeywell Inc. Dual bus system
US5003463A (en) * 1988-06-30 1991-03-26 Wang Laboratories, Inc. Interface controller with first and second buffer storage area for receiving and transmitting data between I/O bus and high speed system bus
JP2545936B2 (ja) * 1988-07-18 1996-10-23 日本電気株式会社 バスインターフェースユニット
US5239631A (en) * 1991-10-15 1993-08-24 International Business Machines Corporation Cpu bus allocation control

Also Published As

Publication number Publication date
TW318224B (ko) 1997-10-21
NZ245344A (en) 1995-09-26
JPH05242014A (ja) 1993-09-21
AU2979292A (en) 1993-07-08
US5544346A (en) 1996-08-06
SG44430A1 (en) 1997-12-19
CN1029168C (zh) 1995-06-28
CA2080608A1 (en) 1993-07-03
CN1074050A (zh) 1993-07-07
AU663536B2 (en) 1995-10-12
KR930016873A (ko) 1993-08-30
EP0550224A1 (en) 1993-07-07

Similar Documents

Publication Publication Date Title
KR950014183B1 (ko) 컴퓨터 시스템 및 시스템 메모리 액세스 제어 방법
KR960012660B1 (ko) 컴퓨터 시스템 및 입력/출력 장치와 중앙 처리 장치간의 중재방법
US5644729A (en) Bidirectional data buffer for a bus-to-bus interface unit in a computer system
KR960012356B1 (ko) 컴퓨터 시스템 및 데이타 전송 방법
US5659696A (en) Method and apparatus for determining address location and taking one of two actions depending on the type of read/write data transfer required
US5313627A (en) Parity error detection and recovery
US5761533A (en) Computer system with varied data transfer speeds between system components and memory
JPH0724045B2 (ja) メモリ制御サブシステム
US5966728A (en) Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
US5673414A (en) Snooping of I/O bus and invalidation of processor cache for memory data transfers between one I/O device and cacheable memory in another I/O device
JPH0322068A (ja) データ処理システム
JPS621057A (ja) 転送制御装置
US20030196004A1 (en) Buffering and presenting chunks
US5809534A (en) Performing a write cycle to memory in a multi-processor system
KR100240923B1 (ko) 정보 처리 시스템 내의 버스상에 결합된 내부 장치들간의 통신을 위한 방법 및 그 정보 처리 시스템
JP2803616B2 (ja) 入出力バスインタフェース制御方式
JP2000047930A (ja) データ処理装置
JPH06105447B2 (ja) データ処理システム装置及びそれを制御する方法

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

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee