KR100228948B1 - 버스 인터페이스 논리회로 시스템 및 데이타 동기화방법 - Google Patents

버스 인터페이스 논리회로 시스템 및 데이타 동기화방법 Download PDF

Info

Publication number
KR100228948B1
KR100228948B1 KR1019960041953A KR19960041953A KR100228948B1 KR 100228948 B1 KR100228948 B1 KR 100228948B1 KR 1019960041953 A KR1019960041953 A KR 1019960041953A KR 19960041953 A KR19960041953 A KR 19960041953A KR 100228948 B1 KR100228948 B1 KR 100228948B1
Authority
KR
South Korea
Prior art keywords
data
bus
processor
signal
network
Prior art date
Application number
KR1019960041953A
Other languages
English (en)
Other versions
KR970029127A (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 KR970029127A publication Critical patent/KR970029127A/ko
Application granted granted Critical
Publication of KR100228948B1 publication Critical patent/KR100228948B1/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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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/4027Coupling between buses using bus bridges

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)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 동시에 발생하는 어드레스 및 데이타 버스 트랜잭션을 어드레스 버스 트랜잭션과 그 이후에 발생하는 데이타 버스 트랜잭션으로 분리하는 제어 논리회로 및 데이타 저장용 버퍼를 제공함으로써, 상이한 버스 트랜잭션을 갖는 두 개의 프로세서간의 데이타 전송을 동기화(synchronizing)하는 방법 및 시스템을 제공한다. 판독 오퍼레이션 동안, 요구중인 장치는, 데이타 버스 트랜잭션에 진입하기 전에 데이타가 사용가능할 때까지 대기하게 된다. 기입 동작 동안, 데이타 트랜잭션으로부터 어드레스 트랜잭션을 효과적으로 분리하기 위해 저장 메카니즘을 사용하기 때문에 데이타 버스 트랜잭션이 지연된다. 본 발명은 또한 입력/출력 장치와 메모리 장치 사이에 직접 메모리 액세스 플라이-바이 오퍼레이션(direct memory access fly-by operation)을 제공한다. 이들 오퍼레이션은 시스템 버스로부터 2차 버스를 격리시키고 목적지 장치로 하여금 요구된 데이타가 시스템 버스 상에서 사용가능하게 되자마자 이 데이타를 포획하게 하므로써 달성된다.

Description

버스 인터페이스 논리회로 시스템 및 데이타 동기화 방법
본 발명은 전반적으로 상이한 버스 사이클 및 데이타 액세스를 갖는 두 개의 장치 사이의 데이타 전송에 관한 것이다. 더욱 상세히 설명하면, 본 발명은 이러한 데이타 전송을 조정하는 버스 인터페이스 논리회로 시스템(bus interface logic systerm)에 관한 것이다.
대개, 컴퓨터 시스템은 1 또는 2 이상의 프로세서 및/또는 1 또는 2 이상의 주변 기기에 접속되는 적어도 하나의 프로세서로 이루어진다. 그러나, 상이한 프로세서 및 주변 기기가 상이한 설계 요구, 기법 또는 체계로 인하여 다른 데이타 전송 버스를 갖는 일이 종종 있다. (데이타 전송 버스 보유기간은 장치가 버스상의 데이타를 수신하거나 송신하는데 걸리는 시간 길이이다.) 이러한 경우, 특정 장치가 데이타를 수신/송신할 준비가 된 때에만 데이타가 송신/수신되도록 상이한 프로세서 및 주변 기기가 동기화되어 있지 않으면, 데이타 전송이 일어나지 않게 된다.
이러한 문제점 중의 하나가 IBM 축소된 인스트럭션-세트 컴퓨터(IBM Reduced Instruction-Set Computer; IBM RISC) 파워시리즈 60X 프로세서 및 RISC powerPC 400 시리즈 프로세서에서 발생한다. IBM 파워시리즈 60X는 범용프로세서인 반면 powerPC 400 시리즈 프로세서는 특정 업무용 프로세서 또는 내장형 제어장치이다. 즉, powerPC 400 시리즈 프로세서는 사무 자동화, 소비자 전자장치(consumer electronics), 세트-탑 박스(set-top boxes)와 같은 제한된 응용에 사용되거나, 작업을 단순화하고 자동화하는데 전자회로의 소형화(compactness) 및 처리능력(power)이 필요한 경우 사용된다. powerPC 400 시리즈 프로세서는 비접착성 인터페이스(glueless interface)를 포함하는 독특한 기능을 랜덤 액세스 메모리(random access memories; RAMs)와 판독 전용메모리(read-only-memories; ROMs)에 제공한다. powerPC 400 시리즈 프로세서는 또한 직접 메모리 액세스(DMA) 채널, 직렬포트, 인터럽트 제어기 등과 같은 특징을 제공한다.
따라서, 파워시리즈 60X 프로세스와 함께 powerPC 400 시리즈 프로세서를 사용하는 것이 바람직하다. 그러나, 불행히도, powerPC 400 시리즈는 어드레스 및 버스 트랜잭션에 동시에 진입하여 데이타를 전송 및 수신하고 파워시리즈 60X 프로세서는 먼저 어드레스 버스 트랜잭션에 진입한 후 데이타 버스 트랜잭션에 진입하므로써 데이타를 전송 및 수신한다. 이로인해, 이들 두 프로세서는 서로 데이타를 전송할 수 없다.
그러므로, 파워시리즈 60X 프로세서와 powerPC 400 시리즈 프로세서간이나 다른 데이타 전송 버스 보유기간을 갖는 임의의 둘 또는 셋 이상의 프로세서 및/또는 그들의 주변 기기간의 데이타 전송을 동기화시키는 버스 인터페이스 논리회로 시스템을 제공해야 할 필요성이 당 기술분야에서 요구된다.
당 기술분야에서의 이러한 필요성이 본 발명에서 중점적으로 다루어진다. 본 발명은 전송 데이타를 저장하기 위한 버퍼 및 동시에 발생하는 어드레스 및 데이타 버스 트랜잭션을 어드레스 버스 트랜잭션과 그 이후에 발생하는 데이타 버스 트랜잭션으로 분리하는 제어 논리회로를 제공함으로써 두개의 프로세서간의 데이타 전송을 동기화시키는 방법 및 시스템을 제공한다. 제어 논리회로는 또한 데이타 흐름(data flow)을 버퍼로 향하게 한다. 판독 오퍼레이션 동안, 요구중인 장치는 데이타 버스 트랜잭션에 진입하기 전에 이 데이타가 이용가능하게 될 때까지 대기해야만 한다. 기입 오퍼레이션 동안, 데이타 버스 트래잭션으로부터 어드레스 버스 트랜잭션을 효과적으로 분리하는 버퍼 메카니즘을 사용하여 데이타 버스 트랜잭션이 지연된다.
또한 본 발명은 입력/출력 장치와 메모리 장치 사이에 직접 메모리 액세스 플라이-바이 오퍼레이션(DMA fly-by operation)을 제공한다. 이들 오퍼레이션은 시스템 버스로부터 2차(secondary) 버스를 격리시키고 목적지 장치(destination device)로 하여금 데이타가 시스템 버스상에서 사용가능하게 되자마자 이 데이타를 포획하게 함으로써 달성된다.
제1도는 본 발명을 구현하는 대표적인 데이타 처리 시스템을 도시한 도면,
제2도는 본 발명에 대한 상세한 블럭도,
제3도는 직접 메모리 액세스(direct memory access; DMA) 플라이-바이 오퍼레이션을 수행할 때의 본 발명에 대한 상세한 블럭도,
제4도는 판독 오퍼레이션중의 여러 신호 및 그 상태를 묘사한 도면,
제5도는 기입 오퍼레이션중의 여러 신호 및 그 상태를 묘사한 도면,
제6도는 DMA 플라이-바이 오퍼레이션중의 여러 신호와 그 상태를 묘사한 도면.
* 도면의 주요부분에 대한 부호의 설명
12, 17 : 버스 26 : 마우스
24 : 키보드 28 : 스피커
32 : 트랙 볼 38 : 디스플레이 모니터
30, 40 : 데이타 처리 시스템
도 1을 설명하면, 본 발명과 함께 사용될 수 있는, 일반적으로 참조부호(30)로 표시된 대표적인 데이타 처리 시스템이 도시된다. 데이타 처리 시스템(30)은 RISC 파워시리즈 60X 프로세서중 하나와 같은 중앙 처리 유닛(central processing unit: CPU)(10)을 포함하며, 이 CPU는 시스템 버스(12)에 의해 여러가지 다른 구성요소에 상호접속된다. 특정 RISC 파워시리즈 60X 프로세서는 버스(12)로 인터페이스하기 위해 호스트 브리지(host bridge)(도시되지 않음)를 필요로 할 수도 있다. 판독 전용 메모리(read only memory; ROM)가 버스(12)를 통해 CPU(10)에 접속되어 기본적인 컴퓨터 기능을 제어하는 기본 입력/출력 시스템(the basic input/output system; BIOS)을 포함한다. 키보드(24), 트랙 볼(32), 마우스(26), 스피커(28)와 같은 입력/출력(I/P) 장치가 모두 사용자 인터페이스 어댑터(22)를 통해 버스(12)에 상호 접속된다. 디스플레이 모니터(38)가 디스플레이 어댑터(36)를 통해 시스템 버스(12)에 접속되고 프린터(13)가 프린터 어댑터(11)를 통해 버스(12)에 접속된다. 이러한 방식으로, 사용자는 키보드(24)나 트랙 볼(32) 또는 마우스(26)를 통해 시스템에 입력하고 스피커(28)와 디스플레이(38) 및 프린터(13)를 통해 시스템으로부터 출력하는 것이 가능하다. 또한 랜덤 액세스 메모리(RAM)(14)와 I/O 어댑터(18)가 시스템 버스(12)에 상호접속된다. I/O 어댑터(18)는 디스크 저장 장치(20)로 통신하는 SCSI(소형 컴퓨터 시스템 인터페이스, Small Computer System Interface) 어댑터일 수도 있다.
데이타 처리 시스템(30)은 버스 인터페이스 논리회로 시스템(34)을 통해 데이타 처리 시스템(40)에 접속된다. 데이타 처리 시스템(40)은 CPU(15)와 버스(17)를 포함한다. CPU(15)는 버스(17)에 접속되며, 버스(17)는 버스 인터페이스 논리회로 시스템(34)에 더 접속된다.
CPU(15)는 RISC powerPC 400 시리즈 프로세서중 하나일 수도 있다. 데이타 처리 시스템(40)이 CPU와 버스를 갖는 것으로 도시되었지만, 데이타 처리 시스템(30)에서와 같이, 얼마든지 상호접속된 장치를 구비할 수도 있다는 것을 이해해야 할 것이다.
도 1에서 도시된 구성에서, CPU(10, 15)는 데이타를 처리하며 메모리 장치(16, 14), I/O 장치(13, 20, 24, 26, 28, 32) 및 CPU 서로간에 데이타를 전송한다. 데이타 처리 시스템(30)상의 데이타는 버스(12)를 통해 획득된다. 유사하게, CPU(15)가 주고받는 데이타는 버스(17)를 통해 획득된다. 그러나, 두 시스템의 버스 보유기간(tenure)의 불일치로 인해, 버스(12)상의 데이타는 버스 인터페이스 논리회로 시스템(34)의 도움없이는 버스(17)상에 쉽게 전송될 수 없다. 예를 들면, CPU(10)는 어드레스 버스 트랜잭션에 먼저 진입한 후에 데이타 버스 트랜잭션에 진입하여 데이타를 송신 및 수신한다. 어드레스 버스 트랜잭션 동안, 어드레스는 CPU가 통신하고자 하는 특정 장치로 보내지거나 요구중인 장치로부터 CPU(10)로 보내진다. 데이타 버스 트랜잭션 동안, CPU(10)에 의해 데이타가 수신 또는 전송된다. 반면에, CPU(15)는 어드레스 및 데이타 버스 트랜잭션에 동시에 진입하여 데이타를 송신 및 수신한다. 따라서, 버스 인터페이스 논리회로 시스템(34)이 사용되어 적절한 트랜잭션을 제공함으로써 데이타 처리 시스템(30, 40)간에 데이타가 전송되게 한다. 이러한 구성에 있어서, 트랜잭션 요구는 대개 CPU(15)에 의해 개시된다.
CPU(15)는 또한 저장 장치 메카니즘과 채널을 포함하는 온-칩 DMA 서브시스템(on-chip DMA subsystem)을 구비함으로써, I/O 장치와 메모리 장치간에 DMA 오퍼레이션을 제공한다. 이들 DMA 오퍼레이션은 버스 마스터링 방식(bus mastering fashion)과 플라이-바이 방식(fly-by fashion)이라는 두 가지 방식으로 처리될 수 있다. DMA 버스 마스터링 오퍼레이션 동안, DMA 서브시스템은 I/O 장치로부터 판독한 후 메모리에 기입 오퍼레이션을 발생시킨다. 또는, DMA 서브시스템이 메모리로부터 판독하여, 판독된 데이타를 저장 메카니즘중에 버퍼링시키고, 데이타를 I/O 장치에 기입하는 사이클을 생성한다.
메모리-기입(write-to-memory) 및 메모리-판독(read-from-memory) 오퍼레이션인 DMA 플라이-바이 오퍼레이션이 아래에 기술된 바와 같이 달성된다. DMA 메모리-기입 플라이-바이 오퍼레이션 동안, DMA 서브시스템은 I/O 장치로부터 데이타를 판독하는 사이클을 발생시킨다. 판독된 데이타가 버스상에 있는 동안, DMA 서브시스템은 메모리 장치에 기입 사이클이 개시되었으며, 버스로부터 데이타를 가져오도록 지시한다. DMA 메모리-판독 플라이-바이 오퍼레이션 동안, DMA 서브시스템은 메모리 장치가 데이타를 버스상에 두는 메모리 판독 사이클을 발생시킨다. 데이타가 버스상에 있는 동안, DMA 서브시스템은 I/O 기입 사이클을 생성하여 I/O 장치에 버스로부터 데이타를 전유해야 함을 지시한다. DMA 플라이-바이 오퍼레이션 중에 데이타가 절대로 DMA 서브시스템의 저장 메카니즘에 진입하지 않는다는 것을 주지해야 한다.
도 1에서 도시된 바와 같이, I/O 장치와 메모리 장치가 파워 시리즈 60X 환경 하에 있는 반면, CPU(15)의 일부인 DMA 서브시스템은 powerPC 400 시리즈 환경 하에서 동작한다. 그러므로, 상기 일반 오퍼레이션중에, 버스 인터페이스 논리회로 시스템(34)이 두 시스템의 동기화를 제공하는데 사용된다.
도 2는 버스 인터페이스 논리회로 시스템(34)에 대한 상세한 블록도를 예시한다. 버스 인터페이스 논리회로 시스템(34)은 제어 논리회로(44)와 버퍼(42)를 포함한다. 제어 논리회로(44)는 버스(12, 17)간의 데이타 전송을 인터페이스하고 동기화하는데 필요한 신호를 제공한다.
버퍼(42)는 양방향 데이타 전송을 제공한다. 버퍼(42)는 버스 트랜시버 회로와, 논리 "0", 논리 "1", 하이 임피던스 출력의 3-상태 출력을 갖는 레지스터를 포함한다. 하이 임피던스 출력은 CPU(15)가 DMA 플라이-바이 오퍼레이션에서 동작중일 때 버스(17)로부터 버스(12)를 격리하는데 사용된다. 레지스터는 D-타입 플립 플롭으로 이루어진다. 버퍼(42)는 입력 버스로부터 직접 데이타를 얻거나 내부 레지스터로부터 데이타를 얻는 것을 다중화하기 위해 배열된 제어 회로를 갖는다. 버퍼(42)는 또한 버스(12, 17)의 양 측면상에 투명 래치(transparent latch)를 제공한다. (투명 래치는 제어 신호가 한 상태에 있는 때 출력 데이타를 넘겨주고 제어 신호가 반대 상태에 있는 때 입력 데이타와 상관없이 출력 데이타를 유지하는 래치이다.) BDATA는 데이타 처리 시스템(40)으로부터의 데이타(즉, 버스(17)상의 데이타)이며 ADATA는 데이타 처리 시스템(30)으로부터의 데이타(즉, 버스(12)상의 데이타)이다. ADATA와 BDATA는 둘 다 32-비트 데이타이다. 클럭(46)은 시스템 클럭 신호를 제공하는데 사용된다.
CPU(15)가 CPU(10)로부터의 판독 오퍼레이션을 요구하는 경우, 먼저 칩 선택(chip select; CSn) 신호를 제어 논리회로(44)에 보냄으로써 버스 판독 보유기간을 개시한다. 여기서, CSn(이때, n = 0 부터 7)은 CPU(15)내의 뱅크 레지스터 n에 대해 구성된 외부 I/O 장치나 RAM/ROM 장치를 선택하는데 사용된다. CPU(15)는 또한 R/W 라인을 통해 데이타가 판독되는 장치의 어드레스(이 경우 CPU(10)의 어드레스)뿐 아니라 판독 요구를 보낸다. 이 판독 요구는 또한 버퍼(42)에 보내져 데이타가 버스(12)로부터 버스(17)로 전송되도록 보장한다. 또한, CPU(15)는 기입 바이트 인에이블(write byte enable; WBE<3..0>) 신호를 제어 논리회로(44)로 보낸다. WBE<3..0>신호는 4-바이트 데이타로 유효 바이트 수를 보여 줌으로써 요구된 데이타 전송의 타입(즉, 1 바이트나 1/2 워드 또는 1 워드)을 표시한다.
다음으로, "로(low)"인 준비신호(READY)를 CPU(15)에 제공하는 동안 제어 논리회로(44)가 전송 개시(transfer start; TS) 신호를 CPU(10)에 제공한다. TS 신호는 CPU(10)에게 버스 트랜잭션의 시작을 알리며 READY "로" 신호는 데이타가 아직 전송될 준비가 되지 않았음을 표시한다. 제어 논리회로(44)는 또한 전송 크기(transfer size; TSIZE<2..0>) 신호를 CPU(10)에 보낸다. TSIZE<2..0>신호는 CPU에 의해 논리회로 장치(44)에 보내진 WBE<3..0>신호가 변환된 것이다.
ADATA가 사용가능하게 되면, CPU(10)는 이것을 버스(12)상에 위치시켜 버퍼(42)와 제어 논리회로(44) 양쪽에 전송 승인(transfer acknowledge) 신호가 제공되도록 한다. TA 신호는 버퍼에 의해 버스(12)로부터 버퍼(42)의 내부 래치로 송신된 데이타를 래치하는데 사용된다. TA 신호가 제어 논리회로(44)에 의해 검출되자마자, READY 신호가 논리 "1"로 구동되어 데이타가 다음 클럭 사이클에 준비될 것임을 표시한다. 이 제어 논리회로(44)는 또한 선택 A-대-B(select A-to-B; SAB) 신호를 논리 "1"에 유지하여 저장된 데이타를 버스(17)상으로 전송한다.
따라서, 판독 오퍼레이션 동안, 버스 인터페이스 논리회로 시스템(34)은 CPU(15)로부터의 판독 버스 트랜잭션을 두 개의 버스 트랜잭션(즉, 어드레스 버스 트랜잭션과 데이타 버스 트랜잭션)으로 효과적으로 분리한다. 시스템은 어드레스 신호가 CPU(10)에 보내지자마자 어드레스 버스 트랜잭션으로 진입한다. 데이타 버스 트랜잭션은 READY 신호의 인가와 함께 진입된다. 따라서, CPU(15)는 데이타 버스 트랜잭션에 진입하기 전에 데이타가 CPU(10)로부터 사용가능해 질 때까지 대기하여야 한다. 결과적으로, CPU(15)의 판독 보유기간이 연장되어 CPU(10)로부터 데이타가 사용가능하게 되는데 있어서의 지연을 보상한다.
기입 오퍼레이션 동안, CPU(15)가 CSn 신호를 제어 논리회로(44)에 보내어 버스 기입 트랜잭션의 시작을 마크(mark)하므로써 개시한다. 프로세서는 또한 ADDR 신호를 CPU(10)에 보내고 기입 요구를 CPU(10)와 버퍼(42), 양쪽으로 보낸다. 이 경우, 버퍼(42)에 대한 기입 요구는 데이타가 버스(17)로부터 버스(12)로 전송되어야 함을 표시한다. 이어서, 제어 논리회로(44)가 TS 신호를 CPU(10)에 제공하여 버스 트랜잭션의 시작을 표시한다.
기입 오퍼레이션을 요구할 경우, CPU(15)는 데이타를 버스(17)상에 위치시킨다. 제어 논리회로(44)는 SAB와 출력 인에이블(output enable; OE) 신호를 논리 "0"로 구동하여 버스(17)로부터 버스(12)로 실시간 데이타 전송이 이루어지게 한다. 제어 논리회로는 또한 READY 신호를 논리 "0"로 구동하여 CPU(10)가 데이타를 수신할 준비가 아직 안되어 있음을 표시한다. 준비가 되면, CPU(10)는 TA를 인가함으로써 데이타를 샘플링한다.
따라서, 판독 버스 보유기간 동안과 같이, 기입 버스 보유기간이 어드레스 및 데이타 버스 트랜잭션으로 분리된다. 이 경우, 어드레스 버스 보유기간은 어드레스가 CPU(10)로 전송되자 마자 발생한다. 그러나, 이 때, FIFO 버퍼는 CPU(15)로부터 CPU(10)까지의 데이타의 사용가능성을 지연시켜 데이타 버스 트랜잭션을 어드레스 버스 트랜잭션으로부터 효과적으로 분리하는데 사용된다.
도 3에서 도시된 바와 같이, 다수의 상이한 신호가 DMA 플라이-바이 오퍼레이션내에 포함된다. 예를 들면, 디스플레이 모니터(38)를 대신해서 디스플레이 어댑터(36)가 RAM(14)으로부터 DMA 플라이-바이 메모리-판독 오퍼레이션을 요구하는 경우, 직접 메모리 액세스 요구(DMAR<3..0>) 신호를 CPU(15)에 전송함으로써 시작한다. 직접 메모리 액세스가 발생하는 채널이 DMAR<3..0>신호내에 지정된다. CPU(15)는 유효 행 어드레스(row adress; RAS<0..3>) 신호와 열 어드레스(column adress; CAS<0..3>신호를 어드레스 버스상에 위치시킴으로써 요구를 수락한다. CPU(15)는 또한 DMA 승인(DMA acknowledge; DMAA<3..0>) 신호를 제어 논리회로(44)와 디스플레이 어댑터(36)에 제공한다. 이 신호를 수신하는 순간, 제어 논리회로(44)는 OE 신호를 논리 "1"로 구동하므로써 버스(17)를 3-상태로 전이시킨다. 이것을 통해 RAM(14)와 디스플레이 어댑터(36) 사이에 DMA 플라이-바이 판독 프랜잭션이 발생하는 버스(12)로부터 버스(17)을 격리시킨다. 일단 요구된 데이타가 버스(12)상에서 사용가능하면, 디스플레이 어댑터(36)가 버스로부터 이것을 포획하여 모니터(38)에 제공한다. DMA 메모리-기입 플라이-바이 오퍼레이션에서도 동일한 신호 시퀀스가 발생하며, 데이타가 디스플레이 어댑터(36)에 의해 버스(12)상에 위치되어 이용가능해지면 곧 RAM(14)에 의해 수집되는 점만이 다르다.
도 4는 CPU(15)가 판독 오퍼레이션을 요구하는 경우의 여러 신호와 그 상태를 묘사한다. 신호 sysclk는 시스템 클럭 신호이며 간격은 클럭 사이클이다. 클럭 사이클 1에서는 판독 요구가 개시되지 않아 시스템이 유휴 상태(즉 최종 오퍼레이션이 수행된 후인 상태)이다. 클럭 사이클 2의 초기에 신호 CSn이 논리 "1"로부터 논리 "0"으로 전이된다. R/W와 ADDR 신호가 적절히 전이된다. 즉, 최종 오퍼레이션이 기입 오퍼레이션이라면, 클럭 사이클 1 동안 신호 R/W는 "로"가 될 것이다. 그러므로, 신호 R/W는 판독 오퍼레이션이라는 것을 표시하기 위해 클럭 사이클 2의 초기에 논리 "1"로 구동되어야 한다(이 경우, 논리 "1" 또는 "하이" 신호는 판독 오퍼레이션을 표시하고 논리 "0" 또는 "로"가 기입 오퍼레이션을 표시한다). 반면에, 최종 오퍼레이션이 판독 오퍼레이션이면, R/W신호는 이미 클럭 사이클 1동안 논리 "1"의 상태에 있으므로 더이상 행해져야할 것이 없다.
ADDR 신호는 어느 장치가 어드레싱되는지에 따라 논리 "1" 또는 논리 "0" 중의 하나로 구동된다. 단순히 하기 위해, ADDR 신호는 논리 "1" 또는 논리 "0" 중 하나로 전이되는 일 신호로서 도시된다. 그러나, 이것은 다수의 신호일 수도 있으며 이로인해 각각의 신호가 논리 "1" 또는 논리 "0"로 되어 선택된 장치의 특정 어드레스를 형성할 수도 있음을 주지하여야 한다. TS 신호는 "로"로 구동된다. BDATA가 활성화되더라도 이 데이타는 유효하지 않음을 주지해야 한다.
클럭 사이클 3의 초기에, TS와 SAB 신호가 둘 다 논리 "1"로 구동된다. 클럭 사이클 4는 대기 사이클이다. 즉, 시스템이 ADATA가 사용가능하게 되는 것을 기다리는 동안은 클럭 사이클 4 중에 아무일도 일어나지 않는다. 대기 사이클이 1 클럭 사이클로서 묘사되었지만, 타겟 장치의 준비 여하에 따라, 1 사이클보다 더 길수도 있음을 이해해야 한다.
클럭 사이클 5 동안, 신호 TA가 "로"로 되어 ADATA가 현재 사용가능함을 표시한다. 이어서 ADATA가 클럭 사이클 6에서 버퍼(42)로 송신되기 시작하고, READY 신호가 "하이"로 되어 요구된 데이타가 사용가능함을 CPU에 알린다. TA와 ADATA가 원래 상태로 복귀하고 유효 BDATA가 전송되기 시작한다. 클럭 사이클 7 동안, CSn과 READY가 원래 상태로 회복되고 클럭 사이클 8 동안 ADDR, R/W, SAB가 자신의 원래 상태로 회복된다. CSn이 버스 트랜잭션의 시작 및 종료를 표시하기 때문에, CSn 트랜잭션이 논리 "1"로 돌아오면 BDATA가 유효상태를 중단한다. 사이클 9에서, 시스템이 유휴 상태로 복귀한다.
도 5에서 도시된 바와 같이, 여러 신호가 기입 오퍼레이션 동안 유사한 전이를 경험한다. 예를 들면, 클럭 사이클 2 동안, 선택된 장치의 어드레스에 따라 ADDR이 논리 "1"이나 논리 "0"중 하나로 구동된다. R/W는 그 이전 상태에 따라 "로"로 되거나 "로"에 머무르게 된다. CS와 TS는 "로"로 된다. 기입 오퍼레이션의 실시간 데이타 전송으로 인해, ADATA와 BDATA가 둘 다 유효하게 된다. 클럭 사이클 3에서, TS가 원래상태로 복귀한다. 판독 사이클에서와 마찬가지로, 클럭 사이클 4는 대기 사이클이다. 클럭 사이클 5 동안, TA는 논리 "0"로 전이된다. TA와 READY는 모두 클럭 사이클 6 동안, TA는 논리 "0"로 전이된다. TA와 READY는 모두 클럭 사이클 6 동안 자신의 상태를 변화시키고 클럭 사이클 7에서, CS, READY, R/W, ADDR이 원래 상태로 복귀한다. ADATA와 BDATA가 유효상태를 중단한다.
도 6은 DMA 플라이-바이 오퍼레이션중의 여러 신호와 그 상태를 묘사한다. 클럭 사이클 1에서, DMA 요구가 수신된다(DMAR<3..0>이 "로"로 된다). 클럭 사이클 2 동안에는, 아무일도 일어나지 않는다. 클럭 사이클 3에서, 행 및 열 어드레스가 RAS<0..3>와 CAS<3..0>를 인가함으로써 선택된다. 다수의 사건이 클럭 사이클 4 동안 일어난다. DMAA<3..0>는 요구를 승인하기 위해 논리 "0"으로 전이된다. R/W는 판독 요구인지 또는 기입 요구인지에 따라 논리 "0"에 머무르거나 논리 "1"로 전이하게 되며, DMAR<3..0>은 논리 "1"로 구동된다. 행 어드레스는 어드레스 라인을 통해 전해지고 OE가 "하이"로 되어 CPU(15)를 격리시킨다. 이어서, RAS<3..0>신호가 논리 "0"로 전이된다.
클럭 사이클 5 동안, 열 어드레스가 어드레스 라인을 통해 전해져, ADATA가 유효하게 되고 CAS<0..3>가 논리 "0"로 구동된다. 클럭 사이클 6에서 DMAA<3..0>가 논리 "1"로 복귀하여 승인을 종료한다. 클럭 사이클 7 동안, RAS<0..3>와 CAS<0..3>신호가 논리 "1"로 복귀하고 ADATA는 유효상태를 중단한다. 클럭 사이클 8에서, R/W 신호는 원래 상태로 복귀하고 OE, RAS<0..3>및 CAS<0..3>신호는 논리 "0"로 되돌아 간다. 시스템은 클럭 사이클(9)동안 자신의 유휴 상태로 복귀한다.
본 발명이 바람직한 실시예에 관하여 상세히 도시되고 기술되었으나, 본 기술분야의 당업자라면 본 발명의 사상 및 범주를 벗어나지않고 형태 및 세부사항에 있어서의 변화가 이루어질 수 있음을 이해할 것이다.
본 발명은 전송중인 데이타 저장용 버퍼 및 동시에 발생하는 어드레스 및 데이타 버스 트랜잭션을 어드레스 버스 트랜잭션과 그 이후에 발생하는 데이타 버스 트랜잭션으로 분리하는 제어 논리회로를 제공함으로써 두개의 프로세서간의 데이타 전송을 동기화시키는 방법 및 시스템을 제공하며, 또한 입력/출력 장치와 메모리 장치 사이에 직접 메모리 액세스 플라이-바이 오퍼레이션(DMA fly-by operation)을 제공한다.

Claims (17)

  1. 상이한 어드레스/데이타 보유기간(tenure)을 갖는 제 1 장치 및 제 2 장치 간의 데이타 전송을 동기화하는 버스 인터페이스 논리회로 시스템에 있어서,
    ① 상기 제 1 장치로부터 상기 제 2 장치로 전송되는 데이타를 저장하는 저장 수단 - 상기 데이타는 상기 제 2 장치 시간이 상기 데이타를 수신할 준비를 할 수 있도록 저장됨 - 과,
    ② 상기 제 2 장치가 상기 데이타를 전송할 때 까지 상기 제 1 장치로 하여금 데이타 버스 보유기간 내에 대기하게 하는 제어 논리회로 수단
    을 포함하는 버스 인터페이스 논리회로 시스템.
  2. 제 1 항에 있어서,
    상기 제어 논리회로 수단은 제 1 버스로부터 제 2 버스로 상기 데이타를 전송하기 위한 제 1 제어 신호를 생성하는 버스 인터페이스 논리회로 시스템.
  3. 제 2 항에 있어서,
    상기 제어 논리회로 수단은 버스 요구 트랜잭션을 개시하는 제 1 신호를 수신하는 입력 수단을 더 포함하는 버스 인터페이스 논리회로 시스템.
  4. 제 3 항에 있어서,
    4 비트 데이타 크기 요구를 3 비트 데이타 크기 요구로 변환하는 수단을 갖는 버스 인터페이스 논리회로 시스템.
  5. 제 4 항에 있어서,
    상기 제어 논리회로는 직접 메모리 액세스 플라이-바이 오퍼레이션을 허용하는 제 2 제어 신호를 생성하는 버스 인터페이스 논리회로 시스템.
  6. 제 5 항에 있어서,
    상기 제 2 제어 신호는 상기 제 2 버스로부터 상기 제 1 버스를 격리시키는 버스 인터페이스 논리회로 시스템.
  7. 제 6 항에 있어서,
    상기 저장 수단은 상기 데이타를 수신 및 전송하는 양방향 입력/출력 수단을 포함하는 버스 인터페이스 논리회로 시스템.
  8. 상이한 버스 사이클을 갖는 제 1 네트워크 및 제 2 네트워크간의 데이타 전송을 동기화하는 인터페이스 논리회로 시스템에 있어서,
    ① 상기 제 1 네트워크와 상기 제 2 네트워크 사이에 전송되는 데이타를 임시로 저장하는 저장 수단 - 상기 저장 수단은 상기 데이타를 수신 및 전송하는 입력/출력 수단과, 제어 신호를 수신하는 입력 신호 수단을 포함함 - 과
    ② 상기 제 1 네트워크로부터 상기 제 2 네트워크로 데이타를 전송하기 위해 동기화 신호를 제공하고 상기 제어 신호를 상기 저장 수단에 제공하는 제어 논리회로 수단 - 상기 동기화 신호는 상기 제 2 네트워크가 상기 데이타를 전송할 때 까지 상기 제 1 네트워크로 하여금 데이타 버스 보유기간내에 대기하게 하는 제 1 제어 신호를 포함하고, 상기 제 1 네트워크는 상기 제 2 네트워크 시간이 데이타를 수신할 준비를 할 수 있도록 상기 데이타를 상기 저장 수단에 전송함 -
    을 포함하는 인터페이스 논리회로 시스템.
  9. 제 8 항에 있어서,
    상기 제어 신호는 제 2 버스로부터 제 1 버스를 격리시키는 신호와, 상기 저장 수단내의 데이타 흐름을 지시하는 제 2 신호를 포함하는 인터페이스 논리회로 시스템.
  10. 제 9 항에 있어서,
    상기 제어 논리회로 수단은 상기 제 1 네트워크로부터의 신호를 상기 제 2 네트워크의 신호로 변환시키는 인터페이스 논리회로 시스템.
  11. 제 10 항에 있어서,
    상기 제어 논리회로 수단은 입력/출력 장치와 상기 제 2 네트워크에 부착된 메모리 수단 사이에 직접 메모리 액세스 플라이-바이 오퍼레이션을 허용하는 인터페이스 논리회로 시스템.
  12. 상이한 버스 사이클을 갖는 제 1 프로세서 및 제 2 프로세서 사이에서 전송되는 데이타를 동기화하는 방법에 있어서,
    동시에 발생하는 어드레스 및 데이타 버스 트랜잭션을 어드레스 버스 트랜잭션과 그 후에 발생하는 데이타 버스 트랜잭션으로 분리하는 단계를 포함하고,
    상기 분리 단계는 상기 제 2 프로세서가 상기 데이타를 전송할 때 까지 상기 제 1 프로세서로 하여금 데이타 버스 보유기간내에 대기하게 하는 단계와, 상기 제 1 프로세서가 전송하는 데이타를 저장 수단에 저장하여 상기 제 2 프로세서 시간이 상기 데이타를 수신할 준비를 할 수 있게 하는 단계를 포함하는
    데이타 동기화 방법.
  13. 제 12 항에 있어서,
    상기 동시에 발생하는 어드레스 및 데이타 버스 트랜잭션을 분리하는 단계는 상기 데이타 버스 트랜잭션을 지연시키기 위한 제 1 제어 신호를 생성하는 단계를 포함하는 데이타 동기화 방법.
  14. 제 13 항에 있어서,
    제 1 버스로부터 제 2 버스로 데이타를 전송하기 위한 제 2 제어 신호를 생성하는 단계를 더 포함하는 데이타 동기화 방법.
  15. 제 14 항에 있어서,
    4 비트 데이타 크기 요구를 3 비트 데이타 크기 요구로 변환하는 단계를 더 포함하는 데이타 동기화 방법.
  16. 제 15 항에 있어서,
    직접 메모리 액세스 플라이-바이 오퍼레이션을 허용하는 제 3 제어 신호를 생성하는 단계를 더 포함하는 데이타 동기화 방법.
  17. 적어도 제 1 버스 보유기간을 갖는 제 1 프로세서와 제 2 버스 보유기간을 갖는 제 2 프로세서를 구비한 컴퓨터 시스템에 있어서,
    적어도 제 1 버스와 제 2 버스 - 상기 제 1 프로세서 및 제 2 프로세서는 각기 상기 제 1 버스 및 상기 제 2 버스에 접속됨 - 와,
    상기 제 1 버스 및 상기 제 2 버스에 접속되어, 상기 제 1 프로세서와 상기 제 2 프로세서 간의 데이타 전송을 용이하게 하는(facilitating) 버스 인터페이스 논리회로를 포함하며,
    상기 버스 인터페이스 논리회로는
    상기 제 1 프로세서와 상기 제 2 프로세서 사이에서 처리되는 데이타를 저장하는 저장 수단과,
    상기 저장 수단과 상기 제 1 버스 및 제 2 버스에 접속되어, 상기 제 2 프로세서가 상기 데이타를 전송할 때 까지 상기 제 1 프로세서로 하여금 데이타 버스 보유기간내에 대기하게 하는 제어 논리회로 수단 - 상기 제 1 프로세서는 데이타를 상기 저장 수단으로 전송하여 상기 제 2 프로세서 시간이 상기 데이타를 수신할 준비를 할 수 있도록 함 - 을 포함하는
    컴퓨터 시스템.
KR1019960041953A 1995-11-21 1996-09-24 버스 인터페이스 논리회로 시스템 및 데이타 동기화방법 KR100228948B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/560,758 US5768550A (en) 1995-11-21 1995-11-21 Bus interface logic system
US8/560,758 1995-11-21
US08/560,758 1995-11-21

Publications (2)

Publication Number Publication Date
KR970029127A KR970029127A (ko) 1997-06-26
KR100228948B1 true KR100228948B1 (ko) 1999-11-01

Family

ID=24239246

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960041953A KR100228948B1 (ko) 1995-11-21 1996-09-24 버스 인터페이스 논리회로 시스템 및 데이타 동기화방법

Country Status (5)

Country Link
US (1) US5768550A (ko)
EP (1) EP0775960A3 (ko)
JP (1) JPH09160866A (ko)
KR (1) KR100228948B1 (ko)
TW (1) TW294801B (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493407B1 (en) * 1997-05-27 2002-12-10 Fusion Micromedia Corporation Synchronous latching bus arrangement for interfacing discrete and/or integrated modules in a digital system and associated method
US5983303A (en) * 1997-05-27 1999-11-09 Fusion Micromedia Corporation Bus arrangements for interconnection of discrete and/or integrated modules in a digital system and associated method
US7107371B1 (en) 1997-09-22 2006-09-12 Intel Corporation Method and apparatus for providing and embedding control information in a bus system
US6088370A (en) * 1997-09-22 2000-07-11 Intel Corporation Fast 16 bit, split transaction I/O bus
US5944806A (en) * 1997-09-26 1999-08-31 Hewlett-Packard Company Microprocessor with versatile addressing
US6055584A (en) * 1997-11-20 2000-04-25 International Business Machines Corporation Processor local bus posted DMA FlyBy burst transfers
US6049887A (en) * 1997-12-04 2000-04-11 Intel Corporation Method and apparatus for propagating a signal between synchronous clock domains operating at a non-integer frequency ratio
US6163818A (en) * 1998-08-27 2000-12-19 Xerox Corporation Streaming memory controller for a PCI bus
US9235955B2 (en) 2000-12-22 2016-01-12 Bally Gaming, Inc. Universal game monitoring unit and system
US20020019891A1 (en) * 1999-12-30 2002-02-14 James Morrow Generic device controller unit and method
US6658502B1 (en) 2000-06-13 2003-12-02 Koninklijke Philips Electronics N.V. Multi-channel and multi-modal direct memory access controller for optimizing performance of host bus
US6938112B1 (en) * 2000-12-21 2005-08-30 Sprint Communications Company L.P. Use of bus hold to prevent bus contention between high speed processor and slow peripheral
US8955104B2 (en) * 2004-07-07 2015-02-10 University Of Maryland College Park Method and system for monitoring system memory integrity
KR100731969B1 (ko) * 2005-06-28 2007-06-25 엠텍비젼 주식회사 복수 경로를 통한 메모리 공유 방법 및 장치
US7882379B2 (en) * 2006-09-22 2011-02-01 Sony Computer Entertainment Inc. Power consumption reduction in a multiprocessor system
JP5125205B2 (ja) * 2007-04-26 2013-01-23 セイコーエプソン株式会社 データ信号処理装置、画像処理装置、画像出力装置、および、データ信号処理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4660170A (en) * 1985-04-29 1987-04-21 General Dynamics, Pomona Division System for providing reprogramming data to an embedded processor
US4760525A (en) * 1986-06-10 1988-07-26 The United States Of America As Represented By The Secretary Of The Air Force Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction
US4935894A (en) * 1987-08-31 1990-06-19 Motorola, Inc. Multi-processor, multi-bus system with bus interface comprising FIFO register stocks for receiving and transmitting data and control information
CA2007737C (en) * 1989-02-24 1998-04-28 Paul Samuel Gallo Data transfer operations between two asynchronous buses
US5214584A (en) * 1989-12-26 1993-05-25 Hughes Aircraft Company Bidirectional data interface for a processor embedded in a self-propelled vehicle
US5249281A (en) * 1990-10-12 1993-09-28 Lsi Logic Corporation Testable ram architecture in a microprocessor having embedded cache memory
US5250940A (en) * 1991-01-18 1993-10-05 National Semiconductor Corporation Multi-mode home terminal system that utilizes a single embedded general purpose/DSP processor and a single random access memory
US5228134A (en) * 1991-06-04 1993-07-13 Intel Corporation Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus
US5293603A (en) * 1991-06-04 1994-03-08 Intel Corporation Cache subsystem for microprocessor based computer system with synchronous and asynchronous data path
EP0518488A1 (en) * 1991-06-12 1992-12-16 Advanced Micro Devices, Inc. Bus interface and processing system
US5276642A (en) * 1991-07-15 1994-01-04 Micron Technology, Inc. Method for performing a split read/write operation in a dynamic random access memory
US5307314A (en) * 1991-07-15 1994-04-26 Micron Technology, Inc. Split read/write dynamic random access memory
US5465343A (en) * 1993-04-30 1995-11-07 Quantum Corporation Shared memory array for data block and control program storage in disk drive
KR950008661B1 (ko) * 1993-05-20 1995-08-04 현대전자산업주식회사 버스 다중화 회로
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
US5581558A (en) * 1995-03-29 1996-12-03 Lucent Technologies Inc. Apparatus for bridging non-compatible network architectures

Also Published As

Publication number Publication date
KR970029127A (ko) 1997-06-26
US5768550A (en) 1998-06-16
EP0775960A2 (en) 1997-05-28
JPH09160866A (ja) 1997-06-20
TW294801B (en) 1997-01-01
EP0775960A3 (en) 2001-10-24

Similar Documents

Publication Publication Date Title
KR100228948B1 (ko) 버스 인터페이스 논리회로 시스템 및 데이타 동기화방법
US5870567A (en) Delayed transaction protocol for computer system bus
US6353867B1 (en) Virtual component on-chip interface
US6085274A (en) Computer system with bridges having posted memory write buffers
US6381664B1 (en) System for multisized bus coupling in a packet-switched computer system
US5867675A (en) Apparatus and method for combining data streams with programmable wait states
US5826048A (en) PCI bus with reduced number of signals
US5430847A (en) Method and system for extending system buses to external devices
EP1032880B1 (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple agent processing system
US6098134A (en) Lock protocol for PCI bus using an additional &#34;superlock&#34; signal on the system bus
US6636927B1 (en) Bridge device for transferring data using master-specific prefetch sizes
US7016994B2 (en) Retry mechanism for blocking interfaces
US6189062B1 (en) Apparatus and method for address translation in bus bridge devices
IL134870A (en) Data transfer system for use in an information processing system
WO1995020192A1 (en) Bus deadlock avoidance during master split-transactions
US5542056A (en) High speed bridge circuit with deadlock free time-shared bus for internal instructions and port-to-port data
US5838995A (en) System and method for high frequency operation of I/O bus
US20040221075A1 (en) Method and interface for improved efficiency in performing bus-to-bus read data transfers
US6047349A (en) System for communicating through a computer system bus bridge
US7096290B2 (en) On-chip high speed data interface
KR100218265B1 (ko) 우선 순위 요구 및 바이패스 버스
US6052754A (en) Centrally controlled interface scheme for promoting design reusable circuit blocks
US6425071B1 (en) Subsystem bridge of AMBA&#39;s ASB bus to peripheral component interconnect (PCI) bus
US20020078282A1 (en) Target directed completion for bus transactions
US6088761A (en) Reduced pin system interface

Legal Events

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

Payment date: 20060725

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee