KR100337056B1 - 상이한 주파수로 동작하는 버스사이에 전송되는 데이터를버퍼링하는 디바이스 및 방법 - Google Patents

상이한 주파수로 동작하는 버스사이에 전송되는 데이터를버퍼링하는 디바이스 및 방법 Download PDF

Info

Publication number
KR100337056B1
KR100337056B1 KR1020007004461A KR20007004461A KR100337056B1 KR 100337056 B1 KR100337056 B1 KR 100337056B1 KR 1020007004461 A KR1020007004461 A KR 1020007004461A KR 20007004461 A KR20007004461 A KR 20007004461A KR 100337056 B1 KR100337056 B1 KR 100337056B1
Authority
KR
South Korea
Prior art keywords
data
controller
bank
memory
read
Prior art date
Application number
KR1020007004461A
Other languages
English (en)
Other versions
KR20010031430A (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 KR20010031430A publication Critical patent/KR20010031430A/ko
Application granted granted Critical
Publication of KR100337056B1 publication Critical patent/KR100337056B1/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/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • 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

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)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

상이한 속도로 데이터를 전송하는 트랜잭트 버스(12, 18)사이의 데이터를 버퍼링하는데 이용되는 '가상 FIFO' 시스템은 메모리 디바이스(31)와 그 메모리 디바이스를 다수의 영역(32-1, 32-2, 32-N)으로 분할하는 컨트롤러(35)를 포함하며, 각각의 영역은 별개의 데이터 버퍼로 동작하도록 구성된다.

Description

상이한 주파수로 동작하는 버스 사이에 전송되는 데이터를 버퍼링하는 디바이스 및 방법 {BUFFERING DATA THAT FLOWS BETWEEN BUSES OPERATING AT DIFFERENT FREQUENCIES}
통상적인 컴퓨터 시스템은 시스템의 다양한 구성요소간의 데이터 전송을 용이하게 하는 다수의 데이터 버스를 포함한다. 일반적으로, 데이터 버스는 산업 표준 구조(ISA), 확장된 산업 표준 구조(EISA), 주변 장치 인터페이스(PCI) 및 소형 컴퓨터 시스템 인터페이스(SCSI) 표준과 같이 서로 다른 기능의 표준에 따라 동작하는 상이한 형태이다. 데이터 버스의 상이한 형태를 구별하는 특징에는 동작 주파수나, 혹은 버스에 상주하는 구성요소 사이에서 데이터를 전송하는 버스의 속도가 있다. 통상적인 컴퓨터 시스템에서, 데이터는 상이한 주파수로 동작하는 상이한 버스에 위치한 디바이스 사이에서 전송된다. 예컨대, 50MHz로 동작하는 호스트(host) 버스에 위치한 마이크로프로세서는 종종 8MHz로 동작하는 PCI 버스에 위치한 디바이스에 데이터를 전달해야 한다. 동작 주파수간에 이러한 불균형을 보상하기 위해, 컴퓨터 시스템은 데이터 버스 사이에 버퍼링 시스템을 포함해야 한다.
종래의 버퍼링 시스템은 FIFO(first-in, first-out) 버퍼와 같은 표준 메모리 디바이스를 사용한다. 전형적인 FIFO 버퍼는 대개 2개의 포트를 갖는데, 제1 포트가 제1 데이터 속도(rate)로 제1 버스로부터 데이터를 수신하는 동안, 제2 포트는 제2 데이터 속도로 제2 버스에 데이터를 전달한다. FIFO 버퍼링 방식은 데이터가 FIFO 버퍼에서 오버플로우 및 언더플로우되는 것을 방지하기 위해 판독 컨트롤러 및 기록 컨트롤러의 세심한 동기화를 필요로 한다. 소정의 FIFO 버퍼링 방식은 잘 알려진 '이중 버퍼링' 기술과 같이 다수의 FIFO 버퍼를 형성하기 위해 다수의 메모리 디바이스를 이용하며, 한 쌍의 구별적인 주소 지정 버퍼(addessable buffer)에서 제1 버퍼는 제2 버퍼가 판독되는 동안 제1 버퍼에 기록된 데이터를 갖고 있다. 구별된 버퍼의 역할은 주기적으로 전환된다.
버퍼 동기화 문제와 관련된 작업에 다양한 기술이 이용되고 있다. 어떤 기술은 단독 버퍼의 기록 쪽과 판독 쪽을 상호 배타적인 방법으로 동작하게 한다. 기록 컨트롤 로직(write control logic)은 버퍼가 완전히 찰 때까지 버퍼안에 데이터를 채우고, 이어서 판독 컨트롤 로직(read control logic)에게 신호를 보내 그 내용을 판독 개시하도록 한다. 판독을 완료하면, 판독 컨트롤 로직은 기록 컨트롤 로직에게 시그널링하여 버퍼를 다시 채우도록 한다. 이 과정은 모든 데이터가 전송될 때까지 계속된다. 이 방법은 데이터의 무결성(integrity)을 보장하는 데에는 간단 명료하지만, 적어도 버퍼의 한 면이 주어진 시간에 동작하지 않으므로, 긴 대기 시간을 결점으로 가지고 있다.
FIFO의 가득 차고(full)/비어 있는(empty) 상태를 결정하는 다른 방법은FIFO의 기록 및 판독 포인터를 비교하는 것이다. 만약 두 포인터가 정렬되어 있고, 최종 작업이 기록 명령이라면, FIFO는 가득 차 있는 것이다. 두 포인터가 정렬되어 있을 때 만약 최종 작업이 판독 명령이면 FIFO는 비어 있는 것이다. 이 방법은 판독 및 기록 컨트롤 로직이 같은 클록 속도로 함께 동작할 때 잘 작동한다. 그 양 면이 상이한 클록 속도로 동작할 때 에러가 있거나 비확정적인 비어 있고/가득한 상태를 발생시킬 가능성이 있으므로, 데이터 훼손의 위험이 있을 수 있다.
따라서, 본 발명자는 상이한 주파수로 동작하는 버스사이에 전송되는 데이터를 버퍼링하는 기술이 더 나은 접근 방법이라고 결론지었다. 본 발명은 이 목적을 이루기 위한 방법과 시스템을 제공한다.
본 발명은 데이터 버퍼링에 관한 것으로서, 좀 더 구체적으로는 상이한 주파수로 동작하는 버스 사이에 전송되는 데이터를 버퍼링하는 것에 관한 것이다.
도 1은 컴퓨터 시스템의 다양한 구성요소들의 블록도.
도 2는 상이한 주파수로 동작하는 데이터 버스 사이를 흐르는 데이터를 버퍼링하는 시스템의 블록도.
도 3은 본 발명의 일실시예에 대한 타이밍도.
본 발명은 상이한 속도로 데이터를 전송하는 트랜잭트 버스(transacting bus)사이에서 데이터를 버퍼링하는 데 이용하는 '가상 FIFO' 시스템을 특징으로 한다. 이 시스템은 다수의 뱅크로 분할되는 메모리 디바이스를 포함하며, 각 뱅크들은 별개의 데이터 버퍼로 동작하기 위해 구성된다. 이러한 분할 작업은 '온 더 플라이(on the fly)'를 기본으로 동적으로 행해진다. 본 발명은 판독과 기록 동작이 동시에 이루어지는 것을 허용함으로 FIFO의 효율성을 유지하면서 FIFO의 앰비규어티(ambiguity) 상태의 가능성을 제거한다. 개선된 실시예에서, 메모리 디바이스는 FIFO로 형성된 포트가 2개인(판독측, 기록측) 랜덤 액세스(RAM) 디바이스이다. 포트가 2개인 램은 FIFO의 판독 및 기록 양측에서부터 램의 소정의 위치까지 독립적이고 임의적인 접근을 허용한다. 기록 컨트롤러는 램에게 기록 스트로브(strobe)를발생시키고 기록 주소 생성을 제어한다. 판독 컨트롤러는 판독 주소 생성을 제어하는 책임이 있다.
만약 램 FIFO가 소정의 특별한 뱅크에 대해 판독 및 기록 접근을 동시에 허용한다 하더라도, 두 동작중 단지 하나만 허용되는데, 기록 컨트롤러 및 판독 컨트롤러는 절대 같은 논리적 뱅크(logical bank)에 동시에 접근하지 않기 때문이다. 그러므로 모든 오버플로우 및 언더플로우 상태가 방지된다.
일실시예에서, 시스템은 각 데이터 버퍼와 관련된 상태 플래그를 포함하며, 데이터가 데이터 버퍼에 기록될 수 있는지를 지시하는 플래그와 데이터가 데이터 버퍼에서 판독될 수 있는지를 지시하는 다른 플래그를 포함한다. 상태 플래그는 그자신의 메모리 디바이스나 다른 메모리 구조에 저장될 수 있다. 다른 실시예에서, 단일 이진 상태 플래그는 데이터 버퍼의 판독/기록 상태를 지시하는데 사용된다.
다른 실시예에서, 컨트롤러는 메모리 디바이스를 다수의 데이터 버퍼 뱅크로 분할하고, 또한 데이터 버퍼의 외부와 내부로의 데이터 전송을 처리한다. 컨트롤러는 분리된 기록 및 판독 컨트롤러를 포함할 수 있으며, 그래서 데이터 버퍼로부터 언제 데이터를 판독하고 언제 기록할지를 결정하기 위해 이상에서 기술한 상태 플래그를 이용할 수 있다.
본 발명의 장점은 다음의 것들을 한개 이상 포함한다.
·다수의 데이터 버퍼를 형성하기 위해 단독의 메모리 디바이스를 사용함으로 종전 시스템보다 비용이 저렴한 효율적이고 효과적인 데이터 버퍼링 시스템을 제공한다.
·한개 이상의 데이터 트랜잭션으로부터 데이터는 동시적인 방법으로 인터리빙(interleaved)된 버퍼링 시스템에서 판독 및 기록될 수 있다.
·단독의 메모리 디바이스는 버스들의 동작하는 주파수에 상당한 불균형이 있음에도 불구하고, 언더플로우나 오버플로우없이 상이한 주파수로 동작하는 두개의 버스사이의 데이터를 버퍼하는데 사용된다.
본 발명의 하나 이상 실시예들이 도면과 이하의 명세서를 참고하여 설명될 것이다. 다른 특징과 목적 및 본 발명의 장점은 명세서와 도면 및 청구항으로 명백해 질 것이다.
도 1을 참조하면, 컴퓨터 시스템(10)은 컴퓨터 시스템의 구성요소간의 데이터 전송을 용이하게 하는 데이터 버스를 적어도 2개 이상 가지고 있다. 이러한 데이터 버스중 하나인 일차 버스(12)는 컴퓨터의 중앙 처리 장치(CPU,14)와 주 메모리(16)에 관여된 데이터 트랜잭션을 수행하기 위해 전용된 '호스트(host)' 버스이다. 호스트 버스(12)는 제1 주파수(예, 50MHz)로 동작하고, 이차 버스(18)는 컴퓨터 시스템(10)에서 다른 디바이스(20, 22)를 수반하는 트랜잭션 및 CPU(14)와 하나이상의 디바이스(20, 22)간의 트랜잭션 뿐만 아니라 그 자신들의 디바이스(20, 22)간의 트랜잭션도 포함하여 수행한다. 데이터 버스(예,ISA, EISA, PCI,SCSI)의 소정의 형태가 될 수 있는 이차 버스는 제2 주파수(예, 8MHz)로 동작한다. 이차 버스(18)에 상주하는 디바이스(20, 22)는 키보드나 프린터 같은 입/출력(I/O) 디바이스 및 비디오 카드나 네트워크 인터페이스 카드(NIC)와 같은 주변 디바이스를 포함한 디바이스들의 소정의 형태가 될 수 있다.
일차 버스(12) 및 이차 버스(18)는 두개의 버스 사이의 데이터 트랜잭션을 처리하는 브릿지(bridge) 디바이스(24)에 의해 연결된다. 브릿지 디바이스(24)는 두 가지 역할을 할 수 있는데, 전달을 위해 한 버스에서 다른 버스로 발생하는 명령들을 해석하기 위한 번역기로써의 역할과 상기 명령에 부합한 데이터 전송을 위한 버퍼링 시스템으로써의 역할이다. 브릿지 디바이스(24)를 장착한 버퍼링 방식은 아래에서 설명한다. 일차 버스 컨트롤러(26)는 잘 알려진 대로, 일차 버스(12)에 접근하기 위한 CPU(14)와 브릿지 디바이스(24)로부터의 경합되는 요구들을 처리한다.
마찬가지로, 이차 버스 컨트롤러(28)는 이차 버스(18)에 접근하는 이차 디바이스(20, 22)와 브릿지 디바이스(24)로부터의 경합되는 요청들을 처리한다.
도 2를 참조하여, 브릿지 디바이스(24)는 단독의 FIFO 메모리 디바이스(31)가 컨트롤러(35)에 의해 N개의 별개 메모리 영역('뱅크')(32-1, 32-2,…, 32-N)으로 분할된다는 점에서 가상 'FIFO' 버퍼링 방식을 운용한다. 가급적, 각 뱅크는 메모리 주소의 연속된 블록을 포함한다. 컨트롤러(35)는 뱅크(32-1, 32-2,…, 32-N)를 별개의 FIFO 버퍼로 취급하고, 각각의 뱅크는 독립적으로 혹은 다른 뱅크와 연합하여 데이터를 저장할 수 있다. 예컨대, 뱅크(32-1, 32-2,…, 32-N)는 다수의 별개 트랜잭션에 부합한 데이터를 버퍼링하기 위해 개별적으로 사용되거나, 더 적은 수이지만 더 큰(fewer but larger) 트랜잭션과 부합한 데이터를 버퍼하기 위해 함께 사용될 수도 있다. 하나의 뱅크 크기(size)의 범위는 데이터의 1 워드(예, 2바이트)에서 메모리 디바이스(31)의 전체 저장 용량에까지 이른다. 그러므로, 메모리 디바이스(31)는 한개의 뱅크만큼 적은 수로도 구성될 수 있고, 혹은 메모리 디바이스가 저장할 수 있는 데이터 워드(data words)처럼 많은 수의 뱅크로도 구성될 수 있다. 판독 및 기록 컨트롤러가 트랙(track)하는데 필요한 상태 플래그의 수와 컨트롤러의 복잡성 및 FIFO의 효율성사이에는 트레이드 오프(trade off)가 있다. 즉, N이 증가할수록 FIFO의 효율성은 향상하지만, 상태 플래그의 수와 컨트롤러의 복잡성 역시 증대한다. 기술된 실시예에서, 컨트롤러(35)에 의해 발생되고 유지되는 메모리 맵(40)은 형성된 뱅크가 아무리 많더라도, 뱅크(32-1, 32-2,…, 32-N)의 경계를 정의하는 메모리 주소를 식별한다.
기록 컨트롤러(42)는 뱅크(32-1, 32-2,…, 32-N) 내부로 데이터의 흐름을 처리하고, 판독 컨트롤러(44)는 뱅크(32-1, 32-2,…, 32-N) 외부로 데이터의 흐름을 처리한다. 기록 및 판독 컨트롤러(42, 44)는 예를 들어, 상태 머신(state machines)으로 대체될 수 있다. 기록 및 판독 컨트롤러(42, 44)는 메모리 디바이스(31)에서 데이터가 동시에 제1 뱅크에 기록되고 제2 뱅크로부터 판독되는 것을 허용한다. 컨트롤러(42, 44)는 버퍼에서 데이터의 무결성을 보호하는데, 뱅크가 비었을 때는 디바이스가 단지 뱅크에 데이터를 기록하기 시작하는 것을 허용하고, 뱅크가 찼을 때는 단지 뱅크로부터 데이터를 판독하기 시작하는 것을 허용하기 때문이다.
각각의 뱅크(32-1, 32-2,…, 32-N)는 최소한 두개의 연관된 상태 플래그(status flag)를 갖는다. '던(done)' 플래그(34-1, 34-2,…, 34-N)는 해당하는 뱅크(32-1, 32-2,…, 32-N)가 비었으므로 상기 뱅크는 기록 디바이스(a writing device)로부터 데이터를 받을 수 있다는 것을 기록 컨트롤러(42)에게 지시하고, '스타트(start)' 플래그(36-1, 36-2,…, 36-N)는 해당하는 뱅크가 찼으므로 상기 뱅크는 판독 디바이스(a reading denice)에게 데이터를 제공할 수 있다는 것을 판독 컨트롤러(44)에게 지시한다. 기록 컨트롤러(42)는 기록 디바이스가 뱅크에 데이터를 배치하기 시작할 때 그 뱅크에 대한 '던' 플래그를 제거한다. 기록 컨트롤러(42)는 뱅크가 찼거나 혹은 기록 디바이스가 뱅크가 차기 전에 그것의 데이터 전송을 마무리하면 이어서 그 뱅크에 '스타트' 플래그를 세트한다. 마찬가지로, 판독 컨트롤러(44)는 판독 디바이스가 뱅크에서 데이터를 취하기 사작할 때 '스타트' 플래그를 제거하고 이어서 뱅크가 비게되면 '던' 플래그를 세트한다. 더 좋아진 실시예에서, '스타트' 및 '던' 플래그는 데이터 전송이 시작될 때 및 ' 전력이 공급될 때' 동시에 제거된다. 최대한의 데이터 무결성을 위해, 한 뱅크의 '스타트' 플래그는 또한 같은 뱅크의 '던' 플래그를 제거하는데 이용되고, '던' 플래그는 그 뱅크의 '스타트' 플래그를 제거하는데 이용된다. 이러한 인터록 핸드 쉐이크(interlock hand-shake) 메커니즘은 FIFO의 양면으로부터의 클록 속도가 서로 완전히 독립적이게 하며, 그 동작 범위에는 한계가 없다.
'스타트' 및 '던' 플래그는 다음에서 나열하는 것과 같은 다양한 기억 디바이스에 저장될 수 있다. ; 뱅크(32-1, 32-2,…, 32-N)내, 뱅크(32-1, 32-2,…, 32-N)의 외부이면서 메모리 디바이스(31)내 혹은 레지스터(만약 '스타트' 및 '던' 플래그가 메모리 디바이스(31)에 저장된다면 레지스터(38)는 존재하지 않을 것이다)와 같은 다른 메모리 구조(38)이다. 대안적으로, 기록 및 판독 컨트롤러(42, 44)는 내부에 '스타트' 및 '던' 플래그를 유지하고, 각 컨트롤러(42, 44)는 버퍼가 찼는지 혹은 비었는지에 따라 다른 컨트롤러(44, 42)에게 직접적으로 메세지를 보낼 수 있다.
또 다른 실시예에서, 단일 이진 상태 플래그는 '스타트' 및 '던'을 지시하기 위해 사용된다. 이 경우, 기록 컨트롤러(42)는 뱅크에 대한 플래그가 '던'으로 세트(set) 때까지 뱅크에 기록할 수 없다. 기록 컨트롤러(42)는 이어서 그 뱅크에 기록하고, 그리고, 기록하기가 완료될 때, 해당하는 플래그를 '스타트'로 리셋(reset)한다. 비슷한 동작으로, 판독 컨트롤러(44)는 해당하는 플래그가 '스타트'로 리셋될 때까지 뱅크로부터 판독할 수 없다. 뱅크를 모두 판독한 후, 판독 컨트롤러(44)는 해당하는 플래그를 '던'으로 리셋한다. 그러나, 이 실시예에서는, '레이스(race)' 상태를 방지하는 주의가 필요한데, 이 상태란 제1 컨트롤러가 플래그를 바꾸는 동안 제2 컨트롤러가 상기 플래그의 상태를 판독하여 그것에 따른 동작을 하는 것이다.
기록 컨트롤러(42)는 '가상 FIFO' 버퍼링 방식이 데이터 버스(12, 14)의 데이터 전송 속도와 관계없이 적절하게 작동하도록 기록 컨트롤러의 '스타트' 플래그의 셋트의 동기를 판독 컨트롤러의 내부 클록(도시되지 않음)에 맞춘다. '스타트' 및 '던' 플래그는 판독 및 기록 컨트롤러(42, 44)가 같은 논리적 뱅크에 절대 동시에 접근하지 않게 보호하는 메커니즘을 제공한다. 이것은 모든 오버플로우 및 언더플로우를 방지한다. '가상 FIFO' 버퍼링 방식은 데이터 버스의 동작 주파수 간의 큰 차이에도 불구하고 충분한 버퍼링을 제공한다.
게다가 다수의 데이터 버퍼 뱅크를 갖는 적어도 하나의 메모리 디바이스(31)와 브릿지 디바이스(24)는 한개 이상의 메모리 디바이스(46)를 추가할 수 있고, 그각각은 또한 이상에서 기술한 대로 분할될 수 있다. 이 상황에서, 메모리 컨트롤러(35)는 브릿지 디바이스(24)내 모든 메모리 디바이스를 처리하기 위해 사용되고, 또한 분리된 메모리 컨트롤러는 브릿지내 각각의 메모리 디바이스에게 제공될 수 있다. 각각의 메모리 디바이스(31, 46)는 단독의 램으로 실시될 수 있다. 대안적으로, 메모리 디바이스(31, 46)는 단일의 주소 지정이 가능한 디바이스(a single addressable device)로 기능하고 집적 회로를 포함하는 단일 메모리 모듈(예, SIMM 혹은 DIMM)로 구현될 수 있다. 다른 경우, 메모리 디바이스(31, 46)는 휘발성 혹은 비휘발성 메모리를 포함할 수 있고, 소정의 램(예, DRAM, SRAM, EDO-RAM 등) 형태가 될 수도 있지만, 가급적 정적 램이 좋다. 메모리 디바이스(31, 46)은 같은 크기의 뱅크로 분할될 수 있으며, 또한 그 뱅크들은 다른 크기가 될 수 있는데, 그것의 사용예를 들어, 비대칭적 데이터 전송을 이용한 적용에서 유용하다. 각각의 메모리 디바이스는 영구히 한번에 분할될 수 있으며, 혹은 그 뱅크들은 필요한 대로 다이나믹하게 정의될 수 있다. 이상에서 기술한 '스타트' 및 '던' 플래그는 전형적으로 그 길이가 단일 비트가 될 것이지만, 다른 크기(예, 니블, 바이트, 워드 등등)의 플래그도 또한 사용될 수 있다. 대안적으로, 이상에서 주목한대로, 단일 비트는 각각의 '스타트' 및 ' 완료' 플래그 쌍에 대해 사용될 수 있다(예를 들어, 고 및 저 논리 레벨 사이의 토글링은 '스타트' 및 '던' 상태를 지시하는데 사용될 수 있다).
선택적으로, 각각의 뱅크는 연관된 '최종(last)' 플래그를 가질 수 있는데, 이 플래그는 뱅크가 현재의 데이터 전송 동작에 대한 최종 뱅크인지를 지시한다. 이런 구성에서, 데이터는 연속적 형태로 FIFO에 기록된다(예, 뱅크 32-1은 찰 때까지 기록되고, 이어서 뱅크 32-2,…,32-N, 그리고 다시 뱅크 32-1까지). 데이터는 비슷한 연속된 형태로 판독된다.
뱅크가 찬 후에, 기록 컨트롤러(42)는 그 뱅크에 해당하는 '스타트' 플래그를 셋트한다. 뱅크의 최종 기억 장소(location)에서 기록 동작이 이루어지면, 기록 컨트롤러(42)는 다음 뱅크의 '스타트' 플래그를 체크한다. 만약 그 '스타트' 플래그가 제거된다면(그 뱅크는 비어 있다), 기록 컨트롤러(42)는 그 기록 동작을 계속할 것이고, 만약 그 '스타트' 플래그가 제거되지 않는다면(그 뱅크는 비어있지 않다), 기록 동작은 멈출 것이다.
그러나, 기록 컨트롤러(42)는 그 다음 뱅크의 '스타트' 플래그를 계속적으로 확인한다. '스타트' 플래그가 제거되기 시작하면, 기록 동작은 다시 시작된다. 데이터 전송의 최종 워드가 뱅크에 기록될 때, 기록 컨트롤러(42)는 뱅크의 '스타트'플래그를 셋트하고(비록 그 뱅크가 차거나 차지 않더라도), 또한 그 뱅크의 '최종' 플래그도 셋트한다.
판독 컨트롤러(44)는 '스타트' 플래그가 셋트된 뱅크를 판독한다. 뱅크가 판독된 후, 판독 컨트롤러(44)는 그 뱅크가 기록 가능한지를 지시하는 그 뱅크의 '던' 플래그를 셋트한다. 뱅크의 최종 기억 장소가 판독되면, 판독 컨트롤러(44)는 그 다음 뱅크의 '스타트' 플래그를 체크한다. 만약 '스타트' 플래그가 셋트되면(그 뱅크는 준비중이다), 판독 컨트롤러(44)는 판독 동작을 계속한다. 만약 '스타트' 플래그가 셋트되지 않는다면(그 뱅크는 준비중이 아니다), 판독 동작은 멈출 것이다. 그러나, 판독 컨트롤러(44)는 다음 뱅크의 '스타트' 플래그를 계속적으로 확인한다. '스타트' 플래그가 셋트되기 시작할 때, 판독 동작은 다시 시작된다. 만약 현재의 뱅크가 '스타트' 및 '라스트(last)' 상태 플래그 셋트를 모두 갖고 있다면, 판독 컨트롤러(44)는 이 뱅크가 현재의 데이터 전송 동작에 대한 최종 뱅크라고 인지한다. 따라서, 판독 컨트롤러(44)는 판독 포인터가 기록 포인터와 한줄로 정렬될 때까지 그 뱅크로부터 데이터를 판독하고, 이어서 그 뱅크에 대한 '던' 플래그를 셋트한다.
다른 실시예에서, 각각의 기록 동작에서 바이트나 워드의 수는 직접 판독 컨트롤러(44)에게 전달된다. 이런 구성에서, '최종' 플래그는 필요없다.
도 3은 본 발명의 일실시예에 대한 타이밍도이다. 이 타이밍도는 FIFO 메모리 디바이스(31)의 폭(width)이 48 행(row)의 깊이(depth)를 가진 32 워드의 데이터 전송 구성을 사용하여 96 워드를 도시하며, 그 디바이스는 3개의 뱅크로 분할된다. 또한 '스타트' 비트와 '던' 비트 사이의 응답확인 방식도 도시되었다. 이 예에서, 기록 클록은 판독 클록보다 2배만큼 빠르다. 다음의 해설은 사건의 순서대로 기술되었다.
(W1) 뱅크 1의 최종 기억 장소에 기록한 후, 스타트 1 플래그가 셋트된다.
(W2) 뱅크 2의 최종 기억 장소에 기록한 후, 스타트 2 플래그가 셋트된다.
(W3) 뱅크 3의 최종 기억 장소에 기록한 후, 스타트 3 플래그가 셋트된다.
(W4) 스타트 1의 셋트은 판독 컨트롤러가 판독을 시작하게 한다.
(W5) 제 2 시간에 대해 뱅크 1이 찬 후, 던 1 플래그가 리셋(reset)된다.
(W6) 제 2 시간에 대해 뱅크 2가 찬 후, 던 2 플래그가 리셋된다.
(W7) 제 2 시간에 대해 뱅크 3이 찬 후, 던 3 플래그가 리셋된다.
(W8) 각 뱅크를 판독한 후, 판독 컨트롤러는 그 다음 뱅크의 시작 비트에 대해 체크한다. 이경우, 그상태가 셋트되어 판독이 계속된다.
(W9) 뱅크 3을 완료한 후이므로 기록 가능 상태(WREN)는 효력이 없고(FIFO에 기록하는 것을 중지한다), 기록 컨트롤러는 스타트 1이 여전히 셋트되어 있음을 인지한다(뱅크 1은 비어있지 않다). 기록 동작은 스타트 1이 제거된 후 계속된다.
(R1) 뱅크 1에 최종 기억 장소를 판독한 후, 던 1은 스타트 1을 리셋시키는 셋트가 된다.
(R2) 뱅크 2에 최종 기억 장소를 판독한 후, 던 2는 스타트 2를 리셋시키는 셋트가 된다.
(R3) 뱅크 3에 최종 기억 장소를 판독한 후, 던 3은 스타트 3을 리셋시키는셋트가 된다.
(R4) 뱅크 3에 최종 기억 장소를 판독한 후, 판독 컨트롤러는 다음 뱅크(뱅크 1)의 시작 비트가 셋트되지 않음을 인지하고, 판독 동작을 중지한다.
본 발명의 다수의 실시예가 기술되었다. 그럼에도 불구하고, 다양한 개선점이 발명의 성질과 범위에서 분리되지 않고 성취될 수 있음이 이해될 것이다. 예를 들어, 본 발명은 호스트 버스를 수반하는 데이터 트랜잭션에 대해서 설명하지만, 본 발명은 PCI 대 PCI(PCI-to-PCI) 버스 트랜잭션이나 PCI 대 입/출력(PCI-to-I/O) 버스 트랜잭션처럼 다양한 버스형태 사이에서의 데이터 트랜잭션에 대해 이용될 수 있다. 따라서, 다른 실시예는 다음의 청구항의 범위내에 있다.

Claims (18)

  1. 상이한 속도로 각각 동작하는 소스 버스(a souce bus)와 목적지 버스(a destination bus) 사이의 데이터 전송을 처리하는 FIFO(first-in, first-out) 브릿지 디바이스(bridge device)에서,
    변수 N개의 별개 메모리 뱅크- 여기서 각 메모리 뱅크는 데이터 전송 동작 동안에 소스 버스에서 목적지 버스로 전송되는 데이터를 저장함 -로 동적으로( dynamically) 분할가능한 메모리 디바이스와,
    상기 메모리 디바이스를 분할하는데 동작할 수 있으며, 메모리 뱅크에 앞서 저장된 소정의 데이터가 판독될 때까지 상기 메모리 뱅크에 기록되는 것을 금지하는 방식에서 상태 플래그(status flags)를 셋트(set)하는데 함께 동작할 수 있는 기록 컨트롤러(a write controller) 및 판독 컨트롤러(a read controller)를 포함하는 컨트롤러를 포함하는 브릿지(bridge) 디바이스.
  2. 제1항에 있어서, 상기 브릿지 디바이스는 단일 집적 회로인것을 특징으로 하는 브릿지 디바이스.
  3. 제2항에 있어서, 메모리 디바이스는 소스 버스에서 목적지 버스로 데이터 전송 속도를 최대화하기 위해 컨트롤러에 의해 동적으로 분할되는 것을 특징으로 하는 브릿지 디바이스.
  4. 제3항에 있어서, 상기 컨트롤러는 외부적인 입력 파라미터(externally input parameters)의 셋트에 반응하여 상기 메모리 디바이스를 동적으로 분할하는 것을 특징으로 하는 브릿지 디바이스.
  5. 제4항에 있어서, 상기 브릿지 디바이스는 단일 집적 회로이고, 상기 외부적인 입력 파라미터는 상기 집적 회로에 프로그램된 입력(programmed input)인 것을 특징으로 하는 브릿지 디바이스.
  6. 제5항에 있어서, 상기 외부적인 입력 파라미터는 각각의 데이터 전송의 길이에 관한 정보를 포함하는 것을 특징으로 하는 브릿지 디바이스.
  7. 제5항에 있어서, 상기 외부적인 입력 파라미터는 메모리 디바이스가 분할된 별개 메모리 뱅크의 변수 N개의 값을 포함하는 것을 특징으로 하는 브릿지 디바이스.
  8. 제5항에 있어서, 상기 외부적인 입력 파라미터는 N개의 별개 메모리 뱅크의 각각의 원하는 크기에 관한 정보를 포함하는 것을 특징으로 하는 브릿지 디바이스.
  9. 컨트롤러와 메모리 디바이스를 포함하는 FIFO 브릿지 디바이스에,
    상이한 속도로 각각 동작하는 소스 버스와 목적지 버스사이에서 데이터 전송을 처리하는 방법에 있어서 상기 컨트롤러는
    메모리 디바이스를 외부적인 입력 파라미터의 셋트에 반응하여 변수인 N개의 별개 메모리 뱅크- 여기서 각 메모리 뱅크는 데이터 전송 동작 동안 전송되는 데이터를 저장함 -로 동적으로 분할하는 단계와,
    N개의 별개 메모리 뱅크중 제1 메모리 뱅크에 데이터를 기록하는 단계와,
    상기 제1 메모리 뱅크가 찰 때 플래그를 셋트하는 단계와,
    N개의 별개 메모리 뱅크중 제2 메모리 뱅크에 데이터를 기록하는 단계와,
    메모리 뱅크가 찼는지 안 찼는지 결정하기 위해 상기 제1 메모리 뱅크의 플래그를 체크하는 단계와,
    상기 플래그가 찼다는 셋트일 때 상기 제1 메모리 뱅크에 저장된 정보를 판독하기 시작하는 단계를 수행하는 방법.
  10. 제9항에 있어서, 상기 브릿지 디바이스는 단일 집적 회로이며, 상기 외부적인 입력 파라미터는 상기 집적 회로에 프로그램된 입력이라는 것을 특징으로 하는 방법.
  11. 제9항에 있어서, 상기 외부적인 입력 파라미터는 각 데이터 전송 길이에 관한 정보를 포함하는 것을 특징으로 하는 방법.
  12. 제9항에 있어서, 상기 외부적인 입력 파라미터는 메모리 디바이스가 분할된 별개 메모리 뱅크의 N(변수)개의 값을 포함하는 것을 특징으로 하는 방법.
  13. 제9항에 있어서, 상기 외부적인 입력 파라미터는 상기 N개의 별개 메모리 뱅크의 원하는 바라는 크기에 대한 정보를 포함하는 것을 특징으로 하는 방법.
  14. 제9항에 있어서, 상기 메모리 디바이스는 소스 버스에서 목적지 버스로의 데이터 전송 속도를 최대화하기 위해 동적으로 분할되는 것을 특징으로 하는 방법.
  15. 제9항에 있어서, 판독을 시작하는 단계는 제2 메모리 뱅크가 차기 시작하기 전에 수행되는 것을 특징으로 하는 방법.
  16. 제15항에 있어서, 판독 시작 단계는 제2 메모리 뱅크에 데이터를 기록하는 단계와 동시에 수행되는 것을 특징으로 하는 방법.
  17. 제16항에 있어서, 제1 메모리 뱅크에서 데이터를 판독하는 단계와 그 곳에 기록된 데이터를 판독하는 것을 완료할 때 던 플래그를 셋트하는 것을 추가로 포함하는 하는 방법.
  18. 제16항에 있어서,
    상기 컨트롤러는 판독 컨트롤러와 기록 컨트롤러를 포함하며,
    상기 방법은 상기 기록 컨트롤러에 의해 최종 워드가 제2 메모리 뱅크에 기록된 후 최종 상태 플래그를 세트하는 단계와,
    상기 판독 컨트롤러에 의해 제1 메모리 뱅크가 판독된 후 제2 메모리 뱅크에서 데이터를 판독하고 및 최종 상태 플래그를 검출하는 단계를 추가로 포함하는 방법.
KR1020007004461A 1997-10-27 1998-10-27 상이한 주파수로 동작하는 버스사이에 전송되는 데이터를버퍼링하는 디바이스 및 방법 KR100337056B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US8/957,856 1997-10-27
US08/957,856 1997-10-27
US08/957,856 US6047339A (en) 1997-10-27 1997-10-27 Buffering data that flows between buses operating at different frequencies
PCT/US1998/022807 WO1999022302A1 (en) 1997-10-27 1998-10-27 Buffering data that flows between buses operating at different frequencies

Publications (2)

Publication Number Publication Date
KR20010031430A KR20010031430A (ko) 2001-04-16
KR100337056B1 true KR100337056B1 (ko) 2002-05-16

Family

ID=25500244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007004461A KR100337056B1 (ko) 1997-10-27 1998-10-27 상이한 주파수로 동작하는 버스사이에 전송되는 데이터를버퍼링하는 디바이스 및 방법

Country Status (7)

Country Link
US (1) US6047339A (ko)
EP (1) EP1032882B1 (ko)
JP (1) JP3598321B2 (ko)
KR (1) KR100337056B1 (ko)
CA (1) CA2307816C (ko)
DE (1) DE69834739T2 (ko)
WO (1) WO1999022302A1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363076B1 (en) * 1998-01-27 2002-03-26 International Business Machines Corporation Phantom buffer for interfacing between buses of differing speeds
KR100261149B1 (ko) * 1998-02-06 2000-07-01 김영환 피씨아이(pci) 이더넷(ethernet) 제어장치 및 제어방법
US6154796A (en) * 1998-09-03 2000-11-28 Advanced Micro Devices, Inc. Apparatus and method in a network interface device for storing receiving frame status in a holding register
US6260098B1 (en) * 1998-12-17 2001-07-10 International Business Machines Corporation Shared peripheral controller
US6460108B1 (en) 1999-03-31 2002-10-01 Intel Corporation Low cost data streaming mechanism
US6230228B1 (en) * 1999-04-01 2001-05-08 Intel Corporation Efficient bridge architecture for handling multiple write transactions simultaneously
EP1069512A3 (en) * 1999-07-12 2004-12-15 Matsushita Electric Industrial Co., Ltd. Data processing apparatus with buffering between buses
US6925506B1 (en) * 2000-09-29 2005-08-02 Cypress Semiconductor Corp. Architecture for implementing virtual multiqueue fifos
US6799281B1 (en) * 2001-01-19 2004-09-28 Winbond Electronics Corp. DSP system for capturing data at a fixed rate
US6604175B2 (en) 2001-03-01 2003-08-05 Sony Corporation Data cache and method of storing data by assigning each independently cached area in the cache to store data associated with one item type
US6694389B2 (en) * 2001-03-19 2004-02-17 Sun Microsystems, Inc. Method and apparatus for data flow analysis
US7035948B1 (en) * 2001-03-19 2006-04-25 Transdimension, Inc. System and method for USB controllers
US6904481B1 (en) * 2001-04-12 2005-06-07 Lsi Logic Corporation Bus sequence operation with automatic linking from current I/O information to subsequent I/O information
JP2002342164A (ja) * 2001-05-22 2002-11-29 Hitachi Ltd 記憶装置及びデータ処理装置並びに記憶部制御方法
US7080169B2 (en) * 2001-12-11 2006-07-18 Emulex Design & Manufacturing Corporation Receiving data from interleaved multiple concurrent transactions in a FIFO memory having programmable buffer zones
US7246202B2 (en) * 2002-11-11 2007-07-17 Matsushita Electric Industrial Co., Ltd. Cache controller, cache control method, and computer system
US6889267B2 (en) * 2002-11-26 2005-05-03 Intel Corporation Asynchronous communication protocol using efficient data transfer formats
US7738496B1 (en) 2002-12-31 2010-06-15 Cypress Semiconductor Corporation Device that provides the functionality of dual-ported memory using single-ported memory for multiple clock domains
US7103064B2 (en) * 2003-01-21 2006-09-05 Nextio Inc. Method and apparatus for shared I/O in a load/store fabric
US8102843B2 (en) * 2003-01-21 2012-01-24 Emulex Design And Manufacturing Corporation Switching apparatus and method for providing shared I/O within a load-store fabric
US8346884B2 (en) 2003-01-21 2013-01-01 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7917658B2 (en) * 2003-01-21 2011-03-29 Emulex Design And Manufacturing Corporation Switching apparatus and method for link initialization in a shared I/O environment
US7953074B2 (en) * 2003-01-21 2011-05-31 Emulex Design And Manufacturing Corporation Apparatus and method for port polarity initialization in a shared I/O device
US7836211B2 (en) * 2003-01-21 2010-11-16 Emulex Design And Manufacturing Corporation Shared input/output load-store architecture
US8032659B2 (en) * 2003-01-21 2011-10-04 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7461131B2 (en) * 2003-03-07 2008-12-02 International Business Machines Corporation Use of virtual targets for preparing and servicing requests for server-free data transfer operations
US20040255070A1 (en) * 2003-06-12 2004-12-16 Larson Thane M. Inter-integrated circuit router for supporting independent transmission rates
US7934057B1 (en) 2003-12-24 2011-04-26 Cypress Semiconductor Corporation Logic for implementing a dual clock domain read access with predictable timing for bi-directional inputs/outputs
DE102004012516A1 (de) * 2004-03-15 2005-10-13 Infineon Technologies Ag Computersystem zur elektronischen Datenverarbeitung
US7082075B2 (en) * 2004-03-18 2006-07-25 Micron Technology, Inc. Memory device and method having banks of different sizes
US20050223118A1 (en) * 2004-04-05 2005-10-06 Ammasso, Inc. System and method for placement of sharing physical buffer lists in RDMA communication
US20050220128A1 (en) * 2004-04-05 2005-10-06 Ammasso, Inc. System and method for work request queuing for intelligent adapter
US20060067346A1 (en) * 2004-04-05 2006-03-30 Ammasso, Inc. System and method for placement of RDMA payload into application memory of a processor system
JP4556484B2 (ja) * 2004-05-18 2010-10-06 ソニー株式会社 データ転送装置
US7579683B1 (en) * 2004-06-29 2009-08-25 National Semiconductor Corporation Memory interface optimized for stacked configurations
US7493619B1 (en) * 2004-08-09 2009-02-17 The Mathworks, Inc. Methods for transmitting data between tasks of differing priority in a graphical modeling environment
US7620756B2 (en) * 2006-08-21 2009-11-17 International Business Machines Corporation Method and apparatus for updating wide storage array over a narrow bus
JP5079342B2 (ja) * 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
US8145809B1 (en) 2007-03-09 2012-03-27 Cypress Semiconductor Corporation Busy detection logic for asynchronous communication port
US20090086750A1 (en) * 2007-09-27 2009-04-02 Integrated Device Technology, Inc. Non-Random Access Rapid I/O Endpoint In A Multi-Processor System
US7805551B2 (en) * 2007-09-27 2010-09-28 Integrated Device Technology, Inc. Multi-function queue to support data offload, protocol translation and pass-through FIFO
US7945716B2 (en) * 2007-09-27 2011-05-17 Integrated Device Technology, Inc. Serial buffer supporting virtual queue to physical memory mapping
US7818470B2 (en) * 2007-09-27 2010-10-19 Integrated Device Technology, Inc. Adaptive interrupt on serial rapid input/output (SRIO) endpoint
WO2009069094A1 (en) * 2007-11-30 2009-06-04 Nxp B.V. Method and device for routing data between components
US8239866B2 (en) * 2009-04-24 2012-08-07 Microsoft Corporation Reduction of memory latencies using fine grained parallelism and FIFO data structures
US8230196B1 (en) 2009-05-28 2012-07-24 Micron Technology, Inc. Configurable partitions for non-volatile memory
US8659973B2 (en) * 2010-06-18 2014-02-25 Fujitsu Limited Sequential-write, random-read memory
US8386682B2 (en) * 2010-06-30 2013-02-26 Intel Corporation Method, apparatus and system for maintaining transaction coherecy in a multiple data bus platform
US9201829B2 (en) * 2012-09-06 2015-12-01 Apple Inc. Low power, area-efficient tracking buffer

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4463443A (en) * 1979-07-24 1984-07-31 The United States Of America As Represented By The Secretary Of The Air Force Data buffer apparatus between subsystems which operate at differing or varying data rates
EP0206743A3 (en) * 1985-06-20 1990-04-25 Texas Instruments Incorporated Zero fall-through time asynchronous fifo buffer with nonambiguous empty/full resolution
US5261059A (en) * 1990-06-29 1993-11-09 Digital Equipment Corporation Crossbar interface for data communication network
JP2899986B2 (ja) * 1990-08-08 1999-06-02 株式会社日立製作所 データ格納方法,ベクトルデータバッファ装置およびベクトルデータ処理装置
EP0492025B1 (en) * 1990-12-20 1997-08-06 International Business Machines Corporation High-speed multi-port FIFO buffer circuit
US5426639A (en) * 1991-11-29 1995-06-20 At&T Corp. Multiple virtual FIFO arrangement
US5444853A (en) * 1992-03-31 1995-08-22 Seiko Epson Corporation System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's
EP0574598A1 (de) * 1992-06-13 1993-12-22 International Business Machines Corporation Datenpufferspeicher
US5363485A (en) * 1992-10-01 1994-11-08 Xerox Corporation Bus interface having single and multiple channel FIFO devices using pending channel information stored in a circular queue for transfer of information therein
US5592629A (en) * 1992-12-28 1997-01-07 At&T Global Information Solutions Company Apparatus and method for matching data rates to transfer data between two asynchronous devices
US5664122A (en) * 1993-11-12 1997-09-02 Intel Corporation Method and apparatus for sequencing buffers for fast transfer of data between buses
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
US5812774A (en) * 1994-03-01 1998-09-22 Cabletron Systems, Inc. System for transmitting data packet from buffer by reading buffer descriptor from descriptor memory of network adapter without accessing buffer descriptor in shared memory
KR0123239B1 (ko) * 1994-07-06 1997-11-26 김주용 선입선출방식(fifo) 메모리
US5546347A (en) * 1994-07-22 1996-08-13 Integrated Device Technology, Inc. Interleaving architecture and method for a high density FIFO
US5859988A (en) * 1995-09-29 1999-01-12 Intel Corporation Triple-port bus bridge
US5758166A (en) * 1996-05-20 1998-05-26 Intel Corporation Method and apparatus for selectively receiving write data within a write buffer of a host bridge
US5815677A (en) * 1996-12-31 1998-09-29 Compaq Computer Corporation Buffer reservation method for a bus bridge system

Also Published As

Publication number Publication date
DE69834739T2 (de) 2007-05-16
JP3598321B2 (ja) 2004-12-08
DE69834739D1 (de) 2006-07-06
US6047339A (en) 2000-04-04
CA2307816C (en) 2002-02-12
JP2001521246A (ja) 2001-11-06
CA2307816A1 (en) 1999-05-06
WO1999022302A1 (en) 1999-05-06
EP1032882A1 (en) 2000-09-06
EP1032882B1 (en) 2006-05-31
EP1032882A4 (en) 2004-03-03
KR20010031430A (ko) 2001-04-16
WO1999022302B1 (en) 1999-07-01

Similar Documents

Publication Publication Date Title
KR100337056B1 (ko) 상이한 주파수로 동작하는 버스사이에 전송되는 데이터를버퍼링하는 디바이스 및 방법
US7171526B2 (en) Memory controller useable in a data processing system
EP1754229B1 (en) System and method for improving performance in computer memory systems supporting multiple memory access latencies
US6012106A (en) Prefetch management for DMA read transactions depending upon past history of actual transfer lengths
KR100288453B1 (ko) 다수의관련데이타를참조하는데단일포인터를사용하는메모리버퍼시스템
US6370611B1 (en) Raid XOR operations to synchronous DRAM using a read buffer and pipelining of synchronous DRAM burst read data
US5664122A (en) Method and apparatus for sequencing buffers for fast transfer of data between buses
US20020184453A1 (en) Data bus system including posted reads and writes
JPH0584532B2 (ko)
US6889266B1 (en) Method for delivering packet boundary or other metadata to and from a device using direct memory controller
US7165126B2 (en) Direct memory access device
EP0464848B1 (en) Structure for enabling direct memory-to-memory transfer
KR100288177B1 (ko) 메모리 액세스 제어 회로
US20060277326A1 (en) Data transfer system and method
US6938118B1 (en) Controlling access to a primary memory
US7111103B2 (en) Method and apparatus for system management applications using a local controller
US20020188771A1 (en) Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof
US7395399B2 (en) Control circuit to enable high data rate access to a DRAM with a plurality of areas
EP1607869B1 (en) Data cache system
US7167942B1 (en) Dynamic random access memory controller
KR20050004157A (ko) 다중 코히런시 단위들을 지원하는 데이터 전송 유닛
JPH0574106B2 (ko)
JP2000215154A (ja) Dmaコントロ―ラ
JPH05233440A (ja) バッファ機能を備えたデータ転送方式
JPH03100751A (ja) 入出力処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee