KR970002407B1 - 개선된 처리능력을 가지고 메모리로부터/로 데이타를 비동기적으로 판독/기록하는 직접 기억장소 액세스 제어기 및 방법 - Google Patents
개선된 처리능력을 가지고 메모리로부터/로 데이타를 비동기적으로 판독/기록하는 직접 기억장소 액세스 제어기 및 방법 Download PDFInfo
- Publication number
- KR970002407B1 KR970002407B1 KR1019920019113A KR920019113A KR970002407B1 KR 970002407 B1 KR970002407 B1 KR 970002407B1 KR 1019920019113 A KR1019920019113 A KR 1019920019113A KR 920019113 A KR920019113 A KR 920019113A KR 970002407 B1 KR970002407 B1 KR 970002407B1
- Authority
- KR
- South Korea
- Prior art keywords
- write
- read
- data
- data bytes
- input
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
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도는 본 발명의 직접 기억장소 액세스(DMA) 제어기의 시스템을 설명하는 블럭 다이어그램을 도시한다.
제2도는 본 발명의 DMA 제어기의 바람직한 실시예의 구성도를 설명하는 블럭 다이어그램을 도시한다.
제3도는 본 발명의 바람직한 실시예중의 버퍼의 부구성도를 설명하는 블럭 다이어그램을 도시한다.
제4a-4i도는 본 발명의 바람직한 실시예중의 버퍼제어회로의 부구성도, 동작순서, 및 동작상태를 설명하는 다양한 다이어그램을 도시한다.
제5a-5d도는 본 발명의 DMA 제어기와 입/출력장치 사이, 및 DMA 제어기와 시스템 버스 사이의 임의의 신호타이밍의 구성도를 설명하는 다양한 타이밍 다이어그램을 도시한다.
제6도는 제1 및 제2입-출력장치에 적용된 본 발명의 DMA 제어기의 바람직한 실시예의 구성도를 설명하는 블럭 다이어그램을 도시한다.
[발명의 배경]
1. 발명의 분야
본 발명은 컴퓨터 시스템 분야에 관계되어 있다. 더 자세히는 본 발명은 개선된 처리능력을 가지고 메모리로부터/로 데이타를 비동기적으로 판독/기록하는 직접 기억장소 액세스 제어기 및 방법이다.
2. 기술적 배경
전통적으로, 컴퓨터 시스템의 입출력(I/O)장치와 메모리 사이의 데이타 전송은 세가지 방법중 하나로 행해진다.
1. 프로그램된 입/출력, 이 경우에서, 입/출력장치와 메모리 사이의 모든 데이타 전송은 중앙처리장치(CPU), 더 자세히는 CPU에 의해 실행된 프로그램에 의하여 전적으로 제어된다.
2. 인터럽트 입/출력, 이 경우에는 입/출력장치와 메모리 사이의 모든 데이타 전송은 입/출력장치에 의해 인터럽트를 통하여 개시된다.
이에 응답하여, CPU는 현재 수행중인 작업을 중지하고 입/출력장치의 요구에 응한다.
3. 직접 기억장소 액세스(DMA), 이 경우에, 입/출력장치와 메모리 사이의 모든 데이타 전송은 CPU를 포함하지 않고서 행해진다.
DMA 기술은 입/출력장치와 메모리 사이의 훨씬 빠른 데이타 이동방법을 제공한다. 전형적으로, 직접 기억장소 액세스 제어기가 채택된다.
DMA 제어기, CPU, 메모리 및 입/출력장치들은 모두 시스템 버스에 연결되어 있다.
입/출력장치의 요구와 동시에, DMA 제어기는 CPU를 억제하고, 시스템 버스의 제어를 획득하여 입/출력 장치와 메모리 사이에서 데이타가 전송되게 한다.
DMA 제어기는 데이타의 실제 전송에 연루되지는 않는다.
DMA 제어기의 내부로직을 중복시킴으로써, DMA 제어기는 다수의 입/출력장치를 지원할 수 있다.
택일적으로, 입/출력장치는 시스템 버스 대신 DMA 제어기에 연결될 수 있다.
그 경우에는, 시스템 버스의 제어를 획득한 후에, DMA 제어기는 데이타가 메모리(입/출력장치)로부터 그 자신에게 전송되게 하고 그후에 데이타를 입/출력장치(메모리)로 재전송된다. 실제 데이타 전송에 DMA 제어기를 포함시킴으로써, DMA 제어기는 전송되는 데이타를 해석하거나 처리하는 능력을 얻게된다.
그러나, 추가된 능력때문에 DMA 제어기의 성능이 감소된다.
전형적으로, 데이타는 선입선출(FIFO)방식으로 전송된다.
메모리(입/출력장치)는 DMA 제어기로부터 입/출력장치(메모리)로 데이타가 재전송되는 동안 대기한다. DMA 제어기가 메모리(입/출력장치)로부터의 다음 데이타 전송을 입/출력장치(메모리)로의 이전 데이타의 재전송과 병형시키는 한은, 다음 데이타는 이전 데이타에 순차적이 된다.
이후에 논의되듯이, 본 발명은 종래 기술의 단점을 극복하여 개선된 처리능력을 가지고 메모리에서/로 데이타를 비동기적으로 판독/기록하는 DMA 제어기와 방법을 제공한다. DMA 제어기와 방법은 시스템 소프트웨어에 완전히 투명한 방식으로 처리능력을 개선한다.
[발명의 요약]
개선된 처리능력을 가지고 메모리로부터/로 데이타를 비동기적으로 판독/기록하는 직접 기억장소 액세스(DMA) 제어기 및 방법이 공개된다.
본 발명의 DMA 제어기와 방법은 시스템 소프트웨어에 완전히 투명한 방식으로 처리능력을 개선한다. 방법은 비동기적으로 수행되는 다수의 데이타 기록단계와 다수의 데이타 판독단계로 구성된다.
DMA 제어기는 서로 협력하여 비동기적인 데이타 판독/기록단계를 수행하는 다수의 요소로 구성되어 있다.
본 발명의 방법중의 데이타 판독단계는 메모리로부터 검색되고 입/출력장치로 복귀되는 n1 데이타 바이트를 식별하고 있는 입/출력장치로부터 제1판독 연산을 수신하는 단계로 구성되어 있다.
제1판독 연산의 수신과 동시에, n1 데이타 바이트로 구성된 제1m1 데이타 바이트는 메모리로부터 검색되고, 제1판독 버퍼라인에 기억되어 유효한 것으로 표시된다. 유효하게 기억된 n1 데이타 바이트는 입/출력장치로 복귀하고, 무효한 것으로 표시된다. 유효하게 기억된 n1 데이타 바이트의 복귀와 동시에, 제2m1 데이타 바이트가 메모리로부터 사전에 인출되는지 여부가 결정된다.
그 결정은 소정의 방식으로 이루어진다.
결정이 사전-인출이면, 제2m1 데이타 바이트는 사전-인출되고 제2판독 버퍼라인내로 기억되어 유효한 것으로 표시된다.
데이타 판독단계는 또한 메모리로부터 검색되고 입/출력장치로 복귀하는 n2 데이타 바이트를 식별하고 있는 입/출력장치로부터 제2판독 연산을 수신하는 단계로 구성되어 있다. 제2판독 연산의 수신과 동시에, 제1과 제2판독 버퍼라인은 n2 데이타 바이트가 두개의 판독 버퍼라인중 하나에 유효하게 기억되는지 여부를 결정하기 위해 검사된다.
결정은 제2판독 연산이 제1판독 연산에 순차적인지 여부에 관계없이 내려진다.
n2 데이타 바이트가 두개의 버퍼중 하나에 유효하게 기억되지 않았다면, n2 데이타 바이트로 구성되는 제3m1 데이타 바이트는 메모리로부터 검색되고 제3판독 버퍼라인내로 기억되고, 유효한 것으로 표시된다.
유사하게, 유효하게 기억된 n2 데이타 바이트는 입/출력장치로 복귀하고 무효한 것으로 표시된다.
단지 두개의 판독 버퍼라인만이 존재한다면, 제3판독 버퍼라인은 제1과 제2판독 버퍼라인중의 가장 먼저 판독된 것이다.
본 발명의 방법중의 데이타 기록단계는 n3 데이타 바이트가 메모리내로 기록되는 장소를 식별하고 있는 입/출력장치로부터 제1기록 연산을 수신하는 단계로 구성되어 있다. n3 데이타 바이트의 순차적인 수신과 동시에 그것들은 제1기록 버퍼라인내로 기억되고 더티(dirty)한 것으로 표시된다.
제1기록 버퍼라인내의 더티 바이트는 다수의 배수(drain) 조건중의 최소한 하나가 제1기록 버퍼라인에 충족될 때까지 메모리내로 배수되지 않는다.
배수와 동시에, 배수된 데이타 바이트는 더티하지 않은 것으로 표시된다.
데이타 기록단계는 또한 n4 데이타 바이트가 메모리내로 기록되는 장소를 식별하고 있는 입/출력장치로부터 제2기록 연산을 수신하는 단계로 구성된다.
n4 데이타 바이트의 그후의 수신과 동시에, 그것들은 제1기록 버퍼라인내로 몰입되거나 제2기록 버퍼라인내로 기억될 수 있다.
양쪽의 경우에서, 기억된 n4 데이타 바이트는 더티한 것으로서 표시된다.
유사하게, 제2기록 버퍼라인내의 더티 바이트는 다수의 배수조건중 최소한 하나가 제2기록 버퍼라인에 충족될 때까지 메모리내로 배수되지 않는다.
배수와 동시에, 배수된 데이타 바이트는 더티하지 않은 것으로 표시된다.
데이타 기록단계는 또한 n5 데이타가 메모리내로 기록되는 장소를 식별하고 있는 입/출력장치로부터 제3기록 연산을 수신하는 단계를 포함한다.
n5 데이타 바이트의 그후의 수신과 동시에, 그것들은 제1 또는 제2기록 버퍼라인내로 몰입되거나, 제3기록 버퍼라인내에 기억된다.
상기의 어떤 경우에서도, 기억된 n5 데이타 바이트는 더티한 것으로 표시된다.
단지 두개의 기록 버퍼라인만이 존재한다면, 제3기록 버퍼라인은 제1과 제2기록 버퍼라인중 가장 먼저 사용된 것이다.
제1과 제2기록 버퍼라인중 가장 먼저 사용된 라인내의 더티 바이트는 n5 데이타 바이트가 기억되기 전에 배수된다.
본 발명의 DMA 제어기의 바람직한 실시예는 버퍼제어회로, 제1과 제2버퍼라인, 제1과 제2버퍼태그, 제1과 제2버퍼 레지스터, 입/출력장치 인터페이스 및 시스템 버스 인터페이스로 구성된다. 입/출력장치 인터페이스는 입/출력장치로부터 비동기적으로 판독 및 기록연산을 수신한다.
시스템 버스 인터페이스는 비동기적으로 데이타 바이트를 메모리로부터/로 검색하고 기록한다. 제1과 제2버퍼는 사전 인출된 데이타를 포함하는 검색된 데이타를 기억하고, 판독연산 동안 판독되는 데이타를 입/출력장치로 보낸다.
추가적으로, 제1과 제2버퍼는 기록연산중 메모리내로 기록되는 데이타를 기억한다. 제1과 제2버퍼태그는 제1과 제2버퍼라인내로 기억된 데이타 바이트에 관련된 메모리 번지를 포함한다.
제1과 제2버퍼 레지스터는 제1과 제2버퍼에 기억된 데이타 바이트가 판독/기록 연산중에 유효/더티한지 여부를 식별하는 다수의 유효/더티 비트를 포함한다.
버퍼제어회로는 데이타 판독 및 데이타 기록연산을 비동기적으로 제어한다.
버퍼제어회로는 판독중인 데이타 바이트가 버퍼라인중의 하나에 유효하게 기억되는지 또는 메모리로부터 검색될 필요가 있는지 여부를 결정한다.
버퍼제어회로는 데이타 바이트의 사전-인출 여부 및 검색/사전-인출된 데이타 바이트가 기억되는 장소도 또한 결정한다.
추가적으로, 버퍼제어회로는 기록되는 중인 데이타 바이트가 기억되는 장소, 및 더티 데이타 바이트가 메모리내로 배수되는 시기를 결정한다.
[발명의 상세한 설명]
개선된 처리능력을 가지고 메모리로부터/로 데이타를 비동기적으로 판독/기록하는 직접 기억장소 액세스(DMA) 제어기 및 방법이 공개된다.
하기의 설명중에, 본 발명의 철저한 이해를 돕기 위하여, 특정한 숫자, 요소 및 구성이 밝혀진다.
그러나, 당해 분야의 전문가는 특정 세부 사항이 없이도 본 발명의 실현시킬 수 있다는 것을 명백하다. 다른 경우에는, 필요없이 본 발명을 모호하게 하지 않기 위하여 종래 시스템이 다이어그램 또는 블럭 다이어그램 형태로 도시된다.
이제 제1도를 참조하면, 본 발명의 DMA 제어기의 시스템을 설명하는 블럭 다이어그램이 도시된 데이타나, 본 발명의 DMA 제어기(20)는 컴퓨터 시스템(10)의 시스템 버스(16), 및 하나 이상의 입/출력장치(18)에 연결되어 있다.
컴퓨터 시스템(10)(DMA 제어기(20), 시스템 버스(16),및 입/출력장치(18)에 추가하여)은 또한 시스템 버스(16)에 연결된 CPU(12)와 시스템 버스(16)에 연결된 메모리(14)로 구성된다. DMA 제어기(20)는 한번에 하나의 입/출력장치(18)를 다루고, 동시에 일어나는 요구들을 중재한다.
각각의 입/출력장치(18)는 DMA 제어기(20)를 통하여 비동기적으로 메모리로부터/로 데이타를 판독/기록한다.
판독연산 동안, 데이타는 메모리(14)로부터 DMA 제어기(20)로 전송되어 입/출력장치(18)로 재전송된다. 데이타를 메모리(14)로부터 DMA 제어기(20)로 전송하기 위하여, DMA 제어기는 CPU(12)를 억제하고 시스템 버스(16)의 제어를 획득한다.
추가적으로, 본 발명의 DMA 제어기(20)는 데이타가 DMA 제어기(20)로부터 입/출력장치(18)로 재전송되는 동안 입/출력장치(18)에 의해 추가적인 데이타가 그후에 판독될 것을 예상하여 메모리(14)로부터 추가적인 데이타를 조건부를 사전-인출한다.
입/출력장치(18)는 요구신호와 함께 판독 연산을 개시하고, DMA 제어기(20)는 입력수리(acknowledgement)신호를 가지고 확인한다.
기록연산 동안, 데이타는 입/출력장치(18)로부터 DMA 제어기(20)로 전송되어 메모리(14)로 재-전송된다. DMA 제어기(20)로부터 메모리(14)로 데이타를 전송하기 위하여, DMA 제어기(20)는 CPU(12)를 억제하고 시스템 버스(16)의 제어를 획득한다. 그러나, 본 발명의 DMA 제어기(20)는 입/출력장치(18)로부터 데이타를 수신한 후 메모리(14)로의 재전송을 다수의 배수조건중 최소한 하나가 충족될 때까지 연기한다. 더욱이, 본 발명의 DMA 제어기(20)는 DMA 제어기(20)로부터 메모리(14)로 데이타가 재전송되는 동안 자체의 데이타 수용 용량을 채울때까지 입/출력장치(18)로부터 다음 기록을 위한 데이타를 계속적으로 받아들인다.
입/출력장치(18)는 요구신호와 함께 기록연산을 개시하고 DMA 제어기(20)는 입력수리신호를 가지고 확인한다.
하나의 입/출력장치에 적용된 본 발명의 DMA 제어기(20)의 이것들 및 다른 특징들이 제일 먼저 기술된다. 그후, 제1과 제2입/출력장치에 적용된 본 발명의 DMA 제어기(20)가 기술된다.
이제 제2도를 참조하면, 본 발명의 DMA 제어기의 바람직한 실시예의 구성도를 설명하는 블럭 다이어그램이 도시된다.
본 발명의 DMA 제어기(20)의 바람직한 실시예는 입/출력장치 인터페이스(22), 다수의 버퍼(24), 버퍼제어회로(26) 및 시스템 버스 인터페이스(28)로 구성되어 있다.
입/출력장치 인터페이스(22)와 버퍼(24)는 입/출력장치(도시안됨)에 연결되어 있다.
시스템 버스 인터페이스(28)는 메모리(도시안됨)에 차례로 연결되는 시스템 버스(도시안됨) 및 버퍼(24)에 연결되어 있다.
버퍼제어회로(26)는 입/출력장치 인터페이스(22), 버퍼(2A) 및 시스템 버스 인터페이스(26)에 연결되어 있다.
이러한 구성요소들은 서로 협력하여 본 발명의 방법의 비동기적인 데이타 판독/기록단계를 수행한다.
계속해서 제2도를 참조하면, 본 발명과 바람직한 실시예에서, 입/출력장치 인터페이스(22)는 메모리로부터/로 비동기적인 판독/기록을 수행하는 입/출력장치와 접속된다. 판독 및 기록연산 동안, 입/출력장치 인터페이스(22)는 입/출력장치로부터/로 판독 및 기록제어신호와 메모리번지(CTRL ADDR)를 수신하고 전송한다.
임의대로, 입/출력장치 인터페이스(22)는 판독 및 기록제어신호와 메모리번지(CTRL,ADDR)를 위한 프로토콜 변환을 제공한다.
판독연산 동안, 입/출력장치 인터페이스(22)는 입/출력장치로부터 다수의 판독제어 및 메모리 번지입력(CTRL ADDR)을 수신한다.
다수의 판독제어 및 번지입력(CTRL ADDR)은 판독신호, 판독사이즈 및 판독번지로 구성되어 있다. 수신된 판독사이즈 및 판독번지쌍은 메모리내에서 다수의 데이타 바이트가 특정 판독연산 동안 검색되고 입/출력장치로 복귀하는 장소를 식별한다. 이에 응답하여, 입/출력장치 인터페이스(22)는 수신된 판독신호, 판독사이즈 및 판독번지를 버퍼제어회로(26)로 전송한다.
특정 판독연산용의 데이타 바이트가 입/출력장치로의 복귀를 준비할 때, 입/출력장치 인터페이스(22)는 버퍼제어회로(26)로부터 판독데이타 준비신호를 수신한다.
이에 응답하여, 입/출력장치 인터페이스(22)는 입/출력장치로 판독데이타 준비신호를 전송한다.
유사하게, 기록연산 동안, 입/출력장치 인터페이스(22)는 입/출력장치로부터 다수의 기록제어신호와 메모리 번지입력(CTRL ADDR)를 수신한다.
다수의 기록제어와 메모리 번지입력은 기록신호, 기록사이즈 및 기록번지로 구성된다. 수신된 기록사이즈와 기록번지쌍은 메모리내에서 입/출력장치에 의해 그후에 제공되는 다수의 데이타 바이트가 기록되는 장소를 식별한다.
이에 응답하여, 입/출력장치 인터페이스(22)는 수신된 기록신호, 기록사이즈 및 기록번지를 버퍼제어회로(26)로 전송한다.
버퍼가 특정 기록연산을 위한 데이타 바이트를 수신하려고 준비할 때, 입/출력장치 인터페이스(22)는 버퍼제어회로(26)로부터 기록버퍼 준비신호를 수신한다.
이에 응답하여 입/출력장치 인터페이스(22)는 기록버퍼 준비신호를 입/출력장치로 전송한다.
계속해서 제2도를 참조하면, 본 발명의 바람직한 실시예에서, 시스템 버스 인터페이스(28)는 비동기적으로 메모리로부터 데이타를 판독하고 메모리내로 데이타를 기록하는 시스템 버스와 접속되어 있다.
판독 및 기록연산 동안, 시스템 버스 인터페이스(28)는 시스템 버스의 제어를 얻어서, 판독 및 기록제어신호와 메모리번지(CTRL ADDR) 그리고 데이타 바이트(DATA)를 시스템 버스로부터/로 수신하고 전송한다.
임의대로, 시스템 버스 인터페이스(28)는 판독 및 기록제어신호와 메모리번지(CTRL,ADDR)를 위한 프로토콜 변환을 제공한다.
판독연산 동안, 시스템 버스 인터페이스(28)는 다수의 판독제어와 메모리 번지입력(CTRL ADDR)을 버퍼제어회로(26)로부터 조건부로 수신한다.
다수의 판독제어 및 번지입력(CTRL ADDR)은 판독신호, 판독사이즈 및 판독번지로 구성되어 있다. 판독사이즈와 판독번지는 메모리내에서 고정된 숫자의 데이타 바이트가 검색되는 장소를 식별한다.
고정된 숫자의 데이타 바이트는 입/출력장치에 의해 개시된 현재의 판독연산 동안 검색되거나 입/출력장치에 의해 개시되는 그후의 판독연산을 예상하여 사전-인출된다. 이에 응답하여, 시스템 버스 인터페이스(28)는 시스템 버스의 제어를 획득하고 수신된 판독신호, 판독사이즈 및 판독번지를 시스템 버스로 전송하고, 시스템 버스는 차례로 그것들을 메모리로 전송한다.
검색/사전-인출된 데이타 바이트의 복귀와 동시에, 시스템 버스 인터페이스(28)는 검색/사전-인출된 데이타 바이트로 버퍼제어회로(26)에 의해 선택된 버퍼(24)중의 하나에 기억한다. 고정된 숫자의 데이타 바이트는 단일 버스트(burst)로 메모리로부터 검색/사전-인출된다.
추가적으로, 고정된 숫자의 데이타 바이트가 현재의 판독연산 동안 검색되면, 다수의 판독제어 및 번지입력(CTRL ADDR)은 버퍼제어회로(26)에 의해 시스템 버스 인터페이스(28)로 제공되어, 시스템 버스 인터페이스(28)가 그것들을 시스템 버스 및 메모리로 차례로 전송할 때, 현재의 판독연산에 의해 판독되고 있는 데이타 바이트가 첫번째로(즉, 인출 규칙에 어긋나게) 복귀된다.
유사하게, 기록연산 동안 시스템 버스 인터페이스(28)는 다수의 기록제어신호와 메모리 번지입력(CTRL ADDR)을 버퍼제어회로(26)로부터 조건부로 수신한다.
다수의 기록제어 및 메모리 번지입력(CTRL ADDR)은 기록신호, 기록사이즈 및 기록번지로 구성되어 있다.
수신된 기록사이즈 및 기록번지쌍은 메모리내에서 버퍼(24)중 하나로부터 배수되는 다수의 데이타 바이트가 기록되는 장소를 식별한다.
데이타 바이트는 배수버퍼로부터 배수되는 전체 데이타 바이트이거나 그중 일부이다. 데이타 바이트는 현재의 또는 이전의 기록연산 동안 배수하는 버퍼로부터 배수되어 메모리내로 기록된다.
이에 응답하여, 시스템 버스 인터페이스(28)는 시스템 버스의 제어를 획득하고, 버퍼제어회로(26)에 의해 선택된 배수 버퍼로부터 데이타 바이트를 배수하고, 기록신호, 기록사이즈, 기록번지 및 배수되는 데이타 바이트를 시스템 버스로 전송하여, 시스템 버스는 차례로 그것들을 메모리로 전송한다.
시스템 버스 인터페이스(28)는 현재의 판독연산 동안 검색되거나 그후의 판독연산을 예상하여 사전-인출된 고정된 숫자의 데이타 바이트가 입/출력장치에 의한 다수의 연속적인 판독연산을 지원할 만큼 충분히 크도록 구현된다.
시스템 버스 인터페이스는 또한 다른 버스트 사이즈를 가진 다른 시스템 버스에 연결될 수 있도록 구현된다. 시스템의 버스트 사이즈는 내부 레지스터(도시안됨)내의 다수의 버스트 사이즈 비트에 의하여 명기된다.
버스트 사이즈 비트 세팅은 16 데이타 바이트가 각 버스트 당 메모리(memory each burst)로부터 검색/사전-인출되는 것을 의미하는 0의 세팅과 32 데이타 바이트가 각 버스트 당 메모리로부터 검색/사전-인출되는 것을 의미하는 1의 세팅으로 구성되어 있다.
추가적으로, 시스템 버스 인터페이스(28)는 버스트 사이즈가 버퍼(24)로부터 데이타 바이트를 배수하고 버퍼제어회로(26)에 의해 최적화된 메모리내로 그것들을 기록하도록 구현된다. 데이타 바이트를 배수하는 버스트 사이즈는 상기에 논의된 버스트 사이즈 비트 세팅에 따라 최적화된다.
0의 세팅은 버퍼가 1바이트, 2바이트, 4바이트 또는 16바이트의 버스트 사이즈로 배수된다는 것을 의미하고, 1의 세팅은 버퍼가 1바이트, 2바이트, 4바이트, 16바이트 또는 32바이트의 버스트 사이즈로 배수된다는 것을 의미한다.
예를 들어, 16바이트의 버스트 사이즈를 가진 시스템 버스 및 2바이트 데이타의 8개의 연속적인 쌍 또는 2바이트 장치 디스크립터를 판독/기록하는 바람직한 네트웍 제어기에서, 내부 레지스터내의 다수의 버스트 사이즈 비트는 0으로 세트되어, 시스템 버스 인터페이스(28)는 각 버스트 당 메모리로부터 16바이트를 검색/사전-인출하고, 버퍼제어회로(26)는 시스템 버스 인터페이스(28)를 최적화하여 2바이트 또는 16바이트의 버스트 사이즈로 버퍼를 배수한다.
그러므로, 한번의 검색/사전-인출은 메모리로의 더이상의 액세스 없이 모두 8번의 연속적인 판독을 지원할 것이고 모두 8번의 연속적인 기록은 하나의 버스트로 메모리내에 기록될 것이다.
이제 제3도를 참조하면, 본 발명의 DMA 제어기의 바람직한 실시예중의 버퍼의 부구성도를 설명하는 블럭 다이어그램이 도시된다.
다수의 버퍼(24)는 둘이상의 버퍼라인(30), 둘이상의 해당 버퍼태그(32) 및 둘이상의 해당 버퍼 레지스터(34)로 구성되어 있다.
버퍼라인(30)은 버퍼제어회로, 시스템 버스 인터페이스 및 입/출력장치에 연결되어 있다. 해당 버퍼태그(32)와 버퍼 레지스터(34)는 버퍼제어회로에 연결되어 있다.
버퍼라인(30)은 판독연산 동안 시스템 버스 인터페이스로부터 검색/사전-인출되는 데이타를 수신하고, 기억하고, 입/출력장치로 전송한다.
유사하게, 버퍼라인(30)은 기록연산 동안 입/출력장치로부터 기록되는 데이타를 수신하고, 기억하고, 시스템 버스 인터페이스로 전송한다.
각 버퍼라인(30)은 시스템 버스 인터페이스에 의해 지원되는 가장 큰 버스트 사이즈를 지원하기에 충분한 용량을 가진다.
본 바람직한 형태에서, 각 버퍼라인(30)은 32바이트의 용량을 가진다.
버퍼태그(32)는 해당 버퍼라인(30)내에 현재 기억되고 있는 데이타와 관련된 메모리 번지를 식별하는 메모리 번지 태그를 기억한다.
메모리 번지는 기억된 데이타 바이트가 판독연산 동안 판독되는 메모리 위치 및 기억된 데이타 바이트가 기록연산 동안 기록되는 메모리 위치를 식별한다.
버퍼 레지스터(34)는 해당 버퍼라인(30)에 기억된 데이타 바이트에 대응하여 기록연산 동안 더티 비트를 그리고 판독연산 동안 유효비트를 기억한다.
유효비트는 해당 데이타 바이트가 유효한지, 즉 입/출력장치에 의한 판독에 적합한지 여부를 식별하고, 더티 비트는 해당 데이타 바이트가 더티한지, 즉 메모리로 기록 대기중인지 여부를 식별한다.
이제 제4a-4j도를 참조하면, 본 발명의 DMA 제어기의 버퍼제어회로의 부구성도, 동작순서, 및 동작상태를 설명하는 다양한 다이어그램이 도시된다.
제4a도에 도시된 바와 같이, 버퍼제어회로(26)는 상태기구 A와 B(38,40)로 구성되어 있다. 상태기구 A와 B(38,40)는 판독/기록연산 동안 버퍼라인의 선택과 버퍼라인의 입/출력 데이타의 전송을 제어한다.
제4b도는 판독연산 동안 상태기구(A)의 동작순서를 설명한다.
상태기구(A)는 판독연산 동안 입력으로서 입/출력장치 인터페이스로부터 판독신호, 판독사이즈 및 판독번지를 수신한다(블럭 42).
이에 응답하여, 상태기구(A)는 판독사이즈 및 판독번지에 의해 식별된 데이타 바이트가 버퍼라인중의 하나에 유효하게 기억되는지 여부를 결정한다(블럭 44).
데이타 바이트가 버퍼라인중 하나가 유효하게 기억되지 않았다면(분기 44b), 상태기구(A)는 이전의 사전-인출이 아직 진행중인지를 결정한다(블럭 46).
이전의 사전-인출이 아직 진행중이라면, 상태기구(A)는 이전의 사전-인출이 완료되기를 기다린다(분기 46a).
이전의 사전-인출의 완료와 동시에(분기 46b), 상태기구(A)는 데이타 바이트가 이제 버퍼라인중 하나에 유효하게 다시 기억됐는지(블럭 48), 즉, 데이타 바이트가 방금 완료된 이전의 사전-인출에 의해 인출됐는지 여부를 결정한다.
데이타 바이트가 아직도 버퍼라인중 하나에 유효하게 기억되지 않았으면(분기 48b), 상태기구(A)는 버퍼 라인부재(miss)가 발생했음을 상태기구(B)에서 신호한다(블럭 50). 상태기구(A)는 그후 메모리로부터 버퍼 라인중 하나로 전송되는 데이타 바이트를 대기한다(블럭 52).
상태기구(B)에게 버퍼부재가 발생했음을 신호하기전에(블럭 50), 상태기구(A)는 소정의 방법으로 메모리로부터 검색되는 고정된 사이즈의 데이타 블럭을 수신하는 버퍼라인을 선택하고, 검색되는 고정된 사이즈의 데이타 블럭에 대한 메모리 번지 태그를 선택된 버퍼라인에 대응하는 버퍼 태그에 기억한다.
본 바람직한 형태에서, 가장 먼저 사용된 버퍼라인이 선택된다.
검색되는 고정된 사이즈의 데이타 블럭을 수신하는 버퍼라인은 둘이상의 버퍼라인을 구비한 본 발명의 실시예에서의 다양한 방법(가장 먼저 사용된 것을 선택하는 기법을 포함하나 그것에 제한되지는 않고)으로 선택될 수 있음을 인식할 수 있다.
데이타 바이트가 버퍼라인중 하나에 유효하게 기억되었다는 결정(분기 44a 또는 48a) 또는 데이타 바이트가 메모리로부터 버퍼라인중 하나내로 방금 전송되었음을 검지함과 동시에(분기 52a), 상태기구(A)는 입/출력장치로의 출력을 위하여 데이타 바이트를 포함하는 버퍼라인을 선택하고(블럭 54), 입/출력장치 인터페이스로 데이타 준비신호를 출력한다(블럭 56).
그후에 상태기구(A)는 다른 고정된 사이즈의 데이타 블럭이 사전-인출되어야 하는지 여부를 결정한다(블럭 58).
사전-인출 결정이 내려지면(분기 58a), 상태기구(A)는 사전-인출 번지를 계산하고(블럭 60), 상태기구(B)에서 고정된 사이즈의 데이타 블럭을 사전-인출하라고 신호한다(블럭 62).
비사전-인출 결정이 내려지면(분기 58b), 또는 상태기구(B)에서 사전-인출하라고 신호한 후에, 상태기구(A)는 입/출력장치로의 데이타 바이트의 전송을 모니터한다(블럭 64). 전송의 완료와 동시에(분기 64a), 상태기구(A)는 전송된 데이타 바이트를 무효한 것으로 표시한다(블럭 66).
유사하게, 상태기구(B)에게 사전-인출하라고 신호하기 전에(블럭 62), 상태기구(A)는 소정의 방법으로 메모리로부터 사전-인출되는 고정된 사이즈의 데이타 블럭을 수신하는 버퍼라인을 선택하고, 선택된 버퍼라인에 대응되는 버퍼 태그에 사전-인출되는 고정된 사이즈의 데이타 블럭에 대한 메모리 번지 태그를 기억한다.
본 바람직한 형태에서, 가장 먼저 사용된 버퍼라인이 선택된다.
사전-인출되는 고정된 사이즈의 데이타 블럭을 수신하는 버퍼라인은 둘이상의 버퍼라인을 구비한 본 발명의 실시예에서의 다양한 방법(가장 먼저 사용된 것을 선택하는 기법을 포함하나 그것에 제한되지는 않고)으로 선택될 수 있음을 또한 인식할 수 있다.
다른 판독신호, 판독사이즈 및 판독번지의 세트가 입/출력장치 인터페이스로부터 수신된다면(분기 67a), 상태기구(A)는 상기에 설명된 바와 같이 새로운 요구를 만족시키기 위한 절차를 진행한다.
다음의 판독번지가 이전의 판독번지에 순차적인지 여부는 중요하지 않다.
또한 새로운 판독신호, 판독사이즈 및 판독번지의 세트가 수신될 때, 사전-인출되는 고정된 사이즈의 데이타 블럭이 완료되었는지 여부도 중요하지 않다는 것을 인식할 수 있다. 상기에 기술된 바와 같이, 새로운 판독사이즈 및 판독번지쌍의 버퍼라인중의 하나에 유효하게 기억되지 않은 데이타 바이트를 식별하고 이전의 사전-인출이 진행중이라면, 상태기구(A)는 새로운 판독을 만족시키기 위해 앞으로 진행하기 전에 이전의 사전-인출이 완료될 때까지 기다린다.
본 바람직한 형태에서, 상태기구(A)는 입/출력장치의 판독/기록 특성에 맞추어진 소정 조건에 기초하여 사전-인출 결정을 내린다.
소정 조건은 불필요한 사전-인출을 피하기 위해 입/출력장치의 판독 특성에 맞추어진다. 특히, 상대기구(A)는 고정된 사이즈의 데이타 블럭내로 전송되는 데이타 바이트의 오프셋에 기초한 사전-인출을 개시할지 여부를 결정한다.
자세히는 상태기구(A)는 상기의 바람직한 네트웍 제어기를 지원할 수 있게 맞추어진다. 전송되는 데이타 바이트가 고정된 사이즈의 데이타 블럭의 6번째와 7번째 데이타 바이트이면 사전-인출을 개시한다.
그렇게 함으로써, 입/출력장치가 고정된 사이즈의 데이타 블럭내의 데이타 바이트의 나머지를 순차적으로 판독완료하기 전에 사전-인출을 완료할 시간이 충분해지고, 입/출력장치가 단지 2바이트 장치 디스크립터를 판독중일 때 불필요한 사전-인출을 피할 수 있다.
유사하게, 본 바람직한 형태에서, 상태기구(A)에서는 또한 사전-인출 번지의 계산이 입/출력장치의 판독 특성에 맞추어진다.
특히, 상태기구(A)는 순차적으로 판독하려고 하는 입/출력장치에 맞추어진다.
고정된 사이즈의 데이타 블럭의 길이를 판독번지에 가산함으로써 사전-인출 번지를 계산한다. 추가적으로, 상태기구(A)는 또한 메모리의 단일 페이지내에서 판독하려 하는 입/출력장치에 맞추어진다.
상태기구(A)는 계산된 사전-인출 번지가 현재의 메모리 페이지밖에 있다면 사전-인출을 포기한다. 상세히는 상태기구(A)는 4K 페이지 경계내에서 판독하려 하는 입/출력장치에 맞추어져 있다.
사전-인출 번지가 현재의 4K 메모리 페이지밖에 있다면 사전인출 결정을 포기한다. 그렇게 함으로써, 불필요한 메모리 액세스 에러를 피할 수 있다.
추가적으로, 수신된 판독신호, 판독사이즈 및 판독번지의 각 세트에 대하여, 상태기구(A)는 메모리 번지의 사전-판독여부와 메모리 번지에 의해 참조된 데이타 바이트를 포함하는 버퍼라인이 데이타 바이트의 마지막 판독 후 재생(refresh)되었는지 여부를 결정한다. 메모리 번지가 사전에 판독되었고 데이타 바이트를 포함하는 버퍼라인이 데이타 바이트의 마지막 판독 후 재생되지 않았다면, 상태기구(A)는 진행하기 전에, 모든 버퍼라인의 내용을 무효로 한다; 그렇지 않으면, 상태기구(A)는 어떤 예비동작없이 진행한다.
이러한 예비연산들은 입/출력장치에 의한 폴링(polling)을 지원하기 위해 수행된다. 그것들은 스킵될 수도 있다.
더욱이, 입/출력장치로 전송된 마지막 데이타 바이트가 또한 입/출력장치로 전송되는 데이타 바이트로 구성되는 고정된 사이즈의 데이타 블럭의 마지막 데이타 바이트라면, 상태기구(A)는 전송되는 데이타 바이트를 포함하는 버퍼라인을 가장 먼저 사용된 버퍼라인으로 표시하고 그렇지 않으면, 다른 버퍼라인이 가장 먼저 사용된 버퍼라인으로 표시된다. 이러한 표시연산은 메모리로부터 사전-인출/검색되는 고정된 사이즈의 데이타 블럭을 수신하기 위한 그후의 버퍼라인 선택을 지원하는데 맞추어진 수행동작이다.
둘이상의 버퍼라인을 구비한 본 발명의 다른 실시예에 대하여, 다른 동등한 수행동작이 버퍼라인 선택을 촉진하기 위하여 취해질 수 있다.
제4c도는 판독연산 동안 상태기구(B)의 동작순서를 설명한다.
상태기구(B)는 상태기구(A)로부터 버퍼라인부재가 발생하였거나 고정된 사이즈의 데이타 블럭을 사전-인출하라는 결정이 내려졌다는 신호를 받는다(블럭 72).
어느 한쪽 신호의 수신과 동시에, 상태기구(B)는 상태기구(A)에 의해 선택된 버퍼라인을 선택하여 메모리로부터 사전-인출/검색되는 고정된 사이즈의 데이타 블럭을 수신한다(블럭 74).
상태기구(A)에 의해 선택된 버퍼를 선택하여 사전-인출/검색되는 고정된 사이즈의 데이타 블럭을 수신할 때, 상태기구(B)는 시스템 버스 인터페이스로 판독신호 및 사전-인출/검색 번지를 출력한다(블럭 76).
사전-인출/검색 번지는 선택된 버퍼라인에 대응되는 버퍼 태그로부터 검색된다. 그후에, 상태기구(B)는 사전-인출/검색되는 데이타 블럭이 기억버퍼라인내로 전송되는 것을 모니터한다(블럭 78).
데이타 바이트의 수신과 동시에, 상태기구(B)는 데이타 바이트를 유효한 것으로 표시한다(블럭 80).
제4d도는 판독연산 동안 상태기구(A)의 동작상태를 설명한다.
초기에, 상태기구(A)는 유효상태(92)에 있다. 상태기구(A)는 유효상태(92)에 남아있거나, 입/출력장치로 데이타 전송이 완료되는 것을 대기하는 상태(94), 메모리로부터 버퍼라인중의 하나로 데이타 전송이 완료되는 것을 대기하는 상태(96), 또는 이전의 사전-인출이 완료되는 것을 대기하는 상태(98)로 들어간다.
상기에 기술한 바와 같이, 판독되는 데이타 바이트가 버퍼라인중의 하나에 유효하게 기억된다면, 상태기구(A)는 입/출력장치 인터페이스로 데이타 준비신호를 전송하고 입/출력장치로 데이타 전송이 완료되는 것을 대기하는 상태(94)로 들어간다.
판독되는 데이타 바이트가 버퍼라인중의 하나에 유효하게 기억되지 않고, 이전의 사전-인출이 진행중이 아니라면, 버퍼라인을 선택하고, 판독번지 메모리 번지 태그를 해당 버퍼 태그내로 기억하고, 상태기구(B)에게 판독되는 데이타 바이트로 구성되는 고정된 데이타 바이트 블럭을 검색하라고 신호하고, 메모리로부터 버퍼라인중 하나로 데이타 전송이 완료되는 것을 대기하는 상태(96)로 들어간다.
그렇지 않으면, 상태기구(A)는 이전의 사전-인출이 완료되는 것을 기다리는 상태(98)로 들어간다.
이전의 사전-인출이 완료되는 것을 대기하는 상태(98)로부터, 상태기구(A)는 그 상태(98)를 유지하거나, 이전의 사전-인출이 완료됨과 동시에, 상태기구(B)에게 판독되는 데이타 바이트를 검색하라고 신호하고, 메모리로부터 버퍼라인중의 하나로 데이타 전송이 완료되는 것을 대기하는 상태(96)로 들어간다.
데이타 바이트가 메모리로부터 버퍼라인중 하나로 전송되는 것을 대기하는 상태로부터, 상태기구(A)는 상태(96)에 남아있거나, 전송의 완료와 동시에, 입/출력장치 인터페이스로 신호하고 버퍼라인중 하나로부터 입/출력장치로 데이타 바이트 전송이 완료되는 것을 대기하는 상태(94)로 들어간다.
버퍼라인중의 하나로부터 입/출력장치로 데이타 바이트 전송이 완료되는 것을 대기하는 상태(94)로부터, 그 상태(94)를 유지하거나, 입/출력장치로 데이타 바이트 전송이 완료됨과 동시에, 유효상태(92)로 복귀한다.
제4e도는 판독연산 동안 상태기구(B)의 동작상태를 설명한다.
처음에, 상태기구(B)는 유휴상태(102)에 있다. 유휴상태(102)로부터, 상태기구(B)는 그 상태(102)를 유지하거나, 또는 데이타 바이트의 고정된 블럭을 사전-인출하거나 검색하라는 상태기구(A)에서의 신호를 받음과 동시에, 상태기구(B)는 상태기구(A)에 의해 선택된 버퍼라인을 선택하고, 사전-인출/검색 번지를 해당 버퍼 태그로부터 검색하고, 판독신호 및 사전-인출/검색 번지를 시스템 버스로 출력하고, 그리고 메모리로부터 버퍼라인중 하나로 데이타 바이트 전송이 완료되는 것을 대기하는 상태(104)로 들어간다.
메모리로부터 버퍼라인중 하나로 데이타 바이트 전송이 완료되는 것을 대기하는 상태(104)로부터, 상태기구(B)는 그 상태(104)를 유지하거나 메모리로부터 버퍼라인중 하나로 데이타-바이트 전송이 완료됨과 동시에, 유휴상태(102)로 복귀한다.
제4f도는 기록연산 동안 상태기구(A)의 동작순서의 부구성도를 설명한다.
상태기구(A)는 입/출력장치 인터페이스로부터 기록신호, 기록사이즈 및 기록번지를 수신한다(블럭 112).
이에 응답하여, 상태기구(A)는 기록사이즈와 기록번지의 쌍에 의해 식별된 메모리 위치내로 기록되는 데이타 바이트를 버퍼라인이 수신할 수 있는지 결정한다(블럭 114). 버퍼라인이 데이타 바이트를 수신할 수 없다면(분기 114b), 상태기구(A)는 버퍼라인이 사용가능해질 때까지 기다린다.
기록사이즈 및 기록번지의 쌍이 버퍼 태그중의 하나에 의하여 식별된 메모리 번지의 부분인 메모리 번지를 식별한다면 버퍼라인은 데이타 바이트를 수신할 수 있게 된다. 또한 기록사이즈 및 기록번지의 쌍이 임의의 버퍼 태그에 의해 식별된 메모리 번지의 부분이 아닌 메모리 번지를 식별하고, 최소한 하나의 버퍼 레지스터가 더티 비트를 포함하지 않는다면, 버퍼라인은 데이타 바이트를 수신할 수 있게 된다.
버퍼라인이 데이타 바이트를 수신할 수 있게 되면(분기 114a), 상태기구(A)는 데이타 바이트를 수신하는 버퍼라인을 선택한다(블럭 116).
버퍼라인이 전자의 경우에서 사용될 수 있으면, 상태기구(A)는 데이타 바이트를 수신하는 해당 버퍼라인을 선택한다.
버퍼라인이 후자의 경우에서 사용될 수 있으면, 본 바람직한 형태에서는 상태기구(A)는 메모리내로 기록되는 데이타 바이트를 수신하기 위해 어떤 더티 비트도 포함하지 않는 버퍼라인중 가장 먼저 사용된 버퍼라인을 선택한다.
버퍼라인이 다른 다양한 방법, 특히 둘이상의 버퍼라인을 구비한 본 발명의 실시예의 방법으로 선택될 수 있다는 것을 또한 인식할 수 있다.
데이타 바이트를 수신하는 버퍼라인을 선택함과 동시에, 상태기구(A)는 입/출력장치 인터페이스로 판독 준비신호를 제공한다(블럭 118).
그후 상태기구(A)는 입/출력장치로부터 선택된 버퍼라인으로 데이타가 전송되는 것을 모니터한다(블럭 120). 전송이 완료됨과 동시에, 상태기구(A)는 전송된 데이타 바이트를 더티한 것으로 표시한다(블럭 122).
데이타 바이트는 메모리로 즉시 재전송되지는 않는다.
대신에, 상태기구(A)는 상기에 서술된 바와 같이, 다음 기록이 존재한다면, 그것을 수행하는 절차를 진행한다(블럭 124).
하기에 기술되는 바와 같이 상태기구(13)는 데이타 바이트를 메모리내로 기록하는 최종적인 책임이 있다. 그후의 기록생산은 상태기구(B)가 이전의 데이타 바이트를 메모리로 기록중인지 여부와 관계없이 상태기구(B)에 의해 수행된다.
제4g도는 기록연산 동안 상태기구(B)의 동작순서를 설명한다. 임의의 버퍼라인내의 더티 바이트의 존재를 검지함과 동시에, 상태기구(B)는 최소한 하나의 배수조건이 더티 바이트를 가진 버퍼라인중 최소한 한라인에 충족되는지를 모니터한다(블럭 126). 최소한 하나의 더티 바이트를 가진 버퍼라인중 최소한 한 라인이 배수되어야 한다면, 상태기구는 배수 절차를 진행한다(블럭 128-138).
본 바람직한 형태에서, 버퍼라인은 데이타 바이트가 입/출력장치로부터 버퍼라인의 마지막 버퍼위치로 전송된다면 배수된다.
최소한 하나의 더티 데이타 바이트를 가진 버퍼라인중의 가장 먼저 사용된 버퍼라인은 기록연산으로부터 데이타 바이트를 수신할 버퍼라인이 존재하지 않다면 또한 배수된다. 추가적으로, 최소한 하나의 더티 바이트를 가진 모든 버퍼라인은 판독신호가 일련의 기록연산 뒤에 수신된다면 배수된다.
최소한 하나의 배수조건이 최소한 하나의 더티 바이트를 가진 버퍼라인중의 하나에 충족된다면(분기 126a), 상태기구(B)는 배수되는 버퍼라인중 하나를 선택한다(블럭 128). 본 바람직한 형태에서는 배수되는 버퍼라인중의 가장 먼저 사용된 버퍼라인이 선택된다. 그후 상태기구(B)는 배수되는 더티 바이트의 수에 기초하여 가장 최적의 배수 사이즈를 결정한다(블럭 130).
배수 사이즈를 선택한 후에, 상태기구(B)는 시스템 버스 인터페이스에게 기록신호, 기록 사이즈 및 기록 번지를 제공한다(블럭 132).
그후 상태기구(B)는 메모리로의 전송을 모니터한다(블럭 134).
전송이 완료됨과 동시에, 상태기구(B)는 배수 버퍼라인내의 전송된 데이타 바이트를 더티하지 않는 것으로 표시한다. 상태기구(B)는 배수되는 버퍼라인으로부터 모든 더티 바이트가 배수될 때까지 상기 단계를 반복한다(블럭 138).
그후 상태기구(B)는 배수되는 모든 버퍼라인이 배수완료 될때까지 배수되는 다음의 버퍼라인에 대하여 상기 단계를 반복한다(블럭 140).
제4h도는 기록연산 동안 상태기구(A)의 동작상태를 설명한다. 처음에, 상태기구(A)는 유휴상태(142)에 있다. 유휴상태(142)로부터, 상태기구(A)는 입/출력장치로부터 버퍼라인중 하나로 데이타 전송이 완료되는 것을 대기하는 상태(144)로 들어가거나, 기록되는 데이타 바이트를 수신하는 자유 버퍼라인을 대기하는 상태(146)로 들어간다.
기록되는 데이타 바이트를 수신하는 하나 이상의 자유 버퍼라인이 존재하면, 상기에 기술된 바와 같이, 상태기구(A)는 기록준비신호를 입/출력장치 인터페이스로 전송하고 전자의 상태(144)로 들어간다; 그렇지 않으면, 후자의 상태(146)로 들어간다.
기록되는 데이타 바이트는 수신하는 자유 버퍼라인을 대기하는 상태(146)로부터, 상태기구(A)는 그 상태(146)를 유지하거나, 버퍼라인을 사용할 수 있게 됨과 동시에, 입/출력장치로부터 버퍼라인중의 하나로 데이타 바이트의 전송이 완료되는 것을 대기하는 상태(144)로 들어간다.
입/출력장치로부터 버퍼라인중 하나로 데이타의 전송이 완료되는 것을 대기하는 상태(144)로부터, 상태기구는 그 상태(144)를 유지하거나, 입/출력장치로부터 버퍼라인중 하나로 데이타의 전송이 완료됨과 동시에, 유휴상태(142)로 복귀한다.
제4i도는 기록연산동안 상태기구(B)의 동작상태를 설명한다.
처음에, 상태기구(B)는 유휴상태(146)에 있다. 유휴상태(146)로부터, 상태기구(B)는 그 상태(146)를 유지하거나, 최소한 하나의 버퍼라인내에 최소한 하나의 더티 바이트가 존재함을 검지함과 동시에, 최소한 하나의 버퍼라인에 대하여 최소한 하나의 배수조건이 충족되는 것을 대기하는 상태(152)로 들어간다.
이 상태(152)로부터, 상태기구(B)는 이상태(152)를 유지하거나, 최소한 하나의 더티 바이트를 가진 최소한 하나의 버퍼라인에 최소한 하나의 배수조건이 충족되는 것을 검지함과 동시에, 배수를 위하여 배수되는 버퍼라인중 하나를 선택하고, 시스템 버스 인터페이스로 적절한 정보를 전송하고, 메모리로의 데이타 전송이 완료되는 것을 대기하는 상태(150)로 들어간다.
메모리로의 데이타 전송이 완료되는 것은 대기하는 상태(150)로부터, 상태기구(B)는 그상태(150)를 유지하거나, 최소한 하나의 더티 바이트를 가진 최소한 하나의 버퍼라인에 대하여 최소한 하나의 배수조건이 충족되는 것을 대기하는 상태(152) 또는 유휴상태(148)로 복귀한다.
최소한 하나의 더티 바이트를 가진 최소한 또하나의 버퍼라인이 존재하면, 상태기구(B)는 최소한 하나의 더티 바이트를 가진 최소한 하나의 버퍼라인에 대하여 최소한 하나의 배수조건이 충족되는 것을 대기하는 상태(152)로 복귀한다.
그렇지 않으면, 유휴상태(148)로 복귀한다.
이제 제5a-5d도를 참조하면, 본 발명의 DMA제어기와 입/출력장치 사이, 그리고 DMA제어기와 시스템 버스 사이의 신호타이밍의 구성도를 설명하는 다양한 타이밍 다이어그램이 도시된다. 제5a도는 판독연산동안 입/출력장치와 DMA제어기 사이의 신호 타이밍을 설명한다. 요구신호(162)는 입/출력장치에 의해 시간(t0)에서 제일 먼저 발(發)해진다.
입력수리신호(164)는 시간(t1)에서 입/출력장치 인터페이스에 의해 그후에 발해진다. 판독번지(166)는 시간(t2)에서 입/출력장치에 의해 발해지고 시간(t3)에 완료된다. 데이타(168)는 시간(t4)에서 입/출력장치에 의해 판독되고 시간(t5)에 완료된다. 판독신호(170)는 전체 주기동안 입/출력장치에 의해 유지된다.
판독되는 데이타 바이트는, 필요하다면, 시간(t3)과 시간(t4) 사이에서 메모리로부터 검색된다.
제5b도는 판독연산동안 DMA제어기와 시스템 버스 사이의 신호 타이밍을 설명한다. 고정된 데이타 블럭을 메모리로부터 사전-인출/검색하기 위하여, 요구신호(172)가 시간(t0)에서 시스템 버스 인터페이스에 의해 제일 먼저 발해진다.
그후에 입력수리신호(174)가 시간(t1)에서 시스템 버스에 의해 발해진다.
판독번지(176)는 시간(t2)에서 시스템 버스 인터페이스에 의해 발해지고 시간(t3)에 완료된다. 사전-인출/검색된 데이타(178)는 그후에 시스템 버스에 의해 복귀된다. 데이타 전송신호(180)는 데이타 전송동안 시스템 버스에 의해 유지된다. 판독신호(182)는 전체 주기동안 시스템 버스 인터페이스에 의해 유지된다.
제5c도는 기록연산동안 DMA제어기와 입/출력장치 사이의 신호 타이밍을 설명한다. 유사하게, 요구신호(184)는 시간(t0)에서 입/출력장치에 의해 제일 먼저 발해진다. 그후에 입력수리신호(186)가 시간(t1)에서 입/출력장치 인터페이스에 의해 발해진다. 기록 번지(190)는 시간(t2)에서 입/출력장치에 의해 발해지고 시간(t3)에 완료된다.
기록데이타(192)는 시간(t4)에서 입/출력장치에 의해 발해지고 시간(t5)에 완료된다. 기록신호(188)는 전체 주기를 통하여 입/출력장치에 의해 유지된다. 버퍼라인은, 필요하다면, 시간(t3)과 시간(t4)사이에서 배수된다.
제5d도는 기록연산동안 DMA제어기와 시스템 버스 사이의 신호 타이밍을 설명한다. 유사하게, 요구신호(194)는 시간(t0)에서 시스템 버스 인터페이스에 의해 제일 먼저 발해진다.
입력수리신호(196)는 그후에 시간(t1)에서 시스템 버스에 의해 발해진다.
기록 번지(198)는 시간(t2)에서 시스템 버스 인터페이스에 의해 발해지고 시간(t3)에 완료된다. 기록데이타(200)는 그후에 시스템 버스 인터페이스에 의해 발해진다. 데이타 전송신호(202)는 데이타 전송 동안 시스템 버스 인터페이스에 의해 유지된다. 기록신호(204)는 전체 주기를 통하여 시스템 버스 인터페이스에 의해 유지된다.
설명을 간단히 하고 쉽게 이해될 수 있게 하기 위하여, 본 발명의 메모리로부터/로 비동기적으로 데이타를 판독/기록하는 DMA제어기와 방법은 단일 입/출력장치에 관련되어 기술되었다.
다중 입/출력장치에 적용되는 본 발명의 메모리로부터/로 비동기적으로 데이타를 판독/기록하는 DMA제어기와 방법은 이제 기술될 것이다.
이제 제6도를 참조하면, 제1과 제2입/출력장치에 의하여 메모리로부터/로 데이타를 비동기적으로 판독/기록하는 DMA제어기의 구성도를 설명하는 블럭 다이어그램이 도시된다. DMA제어기(300)는 제1과 제2입/출력장치(도시안됨)에 각각 연결된 제1과 제2버퍼군(群)(280,282), 및 제1과 제2버퍼군(280,282)에 연결된 제1과 제2해당 버퍼제어히로(288,290)로 구성되어 있다.
또한 DMA제어기(300)는 제1과 제2버퍼제어회로(288,290) 및 제1과 제2입/출력장치에 각각 연결된 제1과 제2입/출력장치 인터페이스(284,286)으로 구성되어 있다. 더욱이 DMA제어기(300)는 시스템 버스(도시안됨)에 연결된 시스템 버스 인터페이스(296), 시스템 버스 인터페이스(296)에 연결된 아비터(arbiter)(292), 제1과 제2버퍼제어회로(288,290), 및 제1과 제2버퍼군(280,282)으로 구성되어 있다.
각 버퍼군(280 또는 282), 각 입/출력장치 인터페이스(284 또는 286), 각 버퍼제어회로(288,290) 및 시스템 버스 인터페이스는 상기에 기술된 것과 같은 기능을 한다. 아비터(292)는 어떤 버퍼제어회로(288 또는 290)가 시스템 버스 인터페이스(296)와 함께 동작할지 결정한다.
아비터(292)는 또한 어떤 버퍼군(280,282)이 시스템 버스 인터페이스(296)와 함께 동작할지 결정한다. 중재(arbitration)가 내려지면, DMA제어기(300)는 상기에 기술된 바와 같이 메모리로부터/로 데이타를 비동기적으로 판독/기록한다.
본 발명이 바람직한 실시예에 관하여 기술되었지만, 당해분야의 전문가는 기술된 실시예에 발명이 제한되지 않는다는 것을 인식할 것이다.
본 발명의 메모리로부터/로 데이타를 비동기적으로 판독/기록하는 DMA제어기와 방법은 다양하고 폭넓은 입/출력장치와 메모리를 다룰 수 있도록 첨부된 특허청구 범위의 사상과 범위내에서 변경과 수정되어서 실행될 수 있다.
Claims (20)
- 개선된 처리용량을 가지고, 비동기적으로 데이타를 메모리로부터 판독하고, 상기 메모리내로 데이타를 기록하는 방법에 있어서, 상기 방법은 : 제1입력출력장치로부터 제1판독신호, 제1판독 사이즈 및 제1판독번지를 수신하는 단계; 상기 메모리로부터 n1 데이타 바이트로 구성되는 제1m1 데이타 바이트를 검색하고, 상기 검색된 제1m1데이타 바이트를 제1판독 버퍼내로 기억하고, 그리고 상기 기억된 제1m1 데이타 바이트를 유효한 것으로 표시하는 단계; 상기 유효하게 기억된 m1 데이타 바이트를 상기 제1판독 버퍼로부터 상기 제1입력-출력장치로 전송하고 상기 유효하게 기억된 m1 데이타 바이트를 무효한 것으로 표시하는 단계; 상기 메모리로부터 제2m1 데이타 바이트가 사전-인출되는지 여부를 결정하고, 상기 제2m1 데이타 바이트가 사전-인출된다면, 상기 제2m1 데이타 바이트를 사전-인출하여, 제2판독 버퍼내로 기억하고, 그리고 상기 기억된 제2nl 데이타 바이트를 유효한 것으로 표시하는 단계; 상기 제1입력-출력장치로부터 제2판독신호, 제2판독 사이즈 및 제2판독번지를 수신하는 단계; n2 데이타 바이트가 상기 제1과 제2판독 버퍼중 하나에 유효하게 기억되는지를 결정하고, 상기 n2 데이타 바이트가 상기 제1과 제2판독 버퍼중 하나에 유효하게 기억되지 않는다면, 상기 메모리로부터 상기 m2 데이타 바이트로 구성되는 제3m1 데이타 바이트를 검색하고, 상기 검색된 제3m1 데이타 바이트를 제3판독 버퍼내로 기억하고, 그리고 상기 기억된 제3m1 데이타 바이트를 유효한 것으로 표시하는 단계; 및 상기 유효하게 기억된 n2 데이타 바이트를 상기 제1, 제2 및 제3판독 버퍼로부터 상기 제1입력-출력장치로 전송하고 상기 유효하게 기억된 n2 데이타 바이트를 무효한 것으로 표시하는 단계로 이루어진 데이타 판독단계로 구성되며, 상기 제1판독신호는 검색되어 상기 제1입력-출력장치로 복귀되는 n1 데이타 바이트를 상기 제1판독 사이즈 및 상기 제1판독번지와 함께 식별하고, n1은 최소한 하나와 같고, m1은 n1과 같거나 크고, 상기 사전-인출결정은 소정의 방법으로 이루어지고, 상기 제2m1 데이타 바이트의 상기 사전-인출결정, 사전-인출, 기억, 및 표시단계는 상기 유효하게 기억된 n1 데이타 바이트가 상기 제1판독 버퍼로부터 검색되고 상기 제1입력-출력장치로 복귀되는 동안 수행되고, 상기 제2판독신호는 검색되어 상기 제1입력-출력장치로 복귀되는 n2 데이타 바이트를 상기 제2판독 사이즈 및 상기 제2판독번지로 함께 식별하고, n2는 최소한 하나와 같고, m1은 n2와 같거나 크고, 상기 유효기억결정은 상기 제2판독번지가 상기 제1판독번지에 순차적인지 여부와 무관하게 내려지는 것을 특징으로 하는 방법.
- 제1항에 있어서, 상기 방법은 또한 : 상기 제1입력-출력장치로부터 제1기록신호, 제1기록 사이즈 및 제1기록 번지를 수신하는 단계; n3 데이타 바이트를 상기 제1입력-출력장치로부터 수신하고 상기 n3 데이타 바이트를 제1기록 버퍼내로 기억하고 상기 n3 데이타 바이트를 더티한 것으로 표시하는 단계; 다수의 배수조건중 최소한 하나가 상기 제1기록 버퍼에 충족되는지 여부를 결정하고, 상기 배수조건중 최소한 하나가 충족된다면, 상기 제1기록 버퍼로부터 상기 메모리내로 많아야 제1m2 더티 데이타 바이트를 배수하고 그리고 배수된 상기 제1m2 더티 데이타 바이트를 더티하지 않는 것으로 표시하는 단계; 상기 제1입력-출력장치로부터 제2기록신호, 제2기록 사이즈 및 제2기록 번지를 수신하는 단계; n4 데이타 바이트를 제2기록 버퍼내로 기억하고 그리고 상기 n4 데이타 바이트를 더티한 것으로 표시하는 단계; 상기 다수의 배수조건중 최소한 하나가 상기 제2기록 버퍼에 충족되는지 여부를 결정하고, 상기 배수조건중 최소한 하나가 충족된다면, 상기 제2기록 버퍼로부터 상기 메모리내로 많아야 제2m2 더티 데이타 바이트를 배수하고 그리고 배수된 상기 제2m2 더티 데이타 바이트를 더티하지 않은 것으로 표시하는 단계; 상기 제1입력-출력장치로부터 제3기록신호, 제3기록 사이즈 및 제3기록 번지를 수신하는 단계; 상기 제1입력-출력장치로부터 n5 데이타 바이트를 수신하고, 상기 n5 데이타 바이트를 제3기록 버퍼내로 기억하고 그리고 상기 n5 데이타 바이트를 더티한 것으로 표시하는 단계; 및 상기 다수의 배수조건중 하나가 상기 제3기록 버퍼에 충족되는지를 결정하고, 상기 배수조건중 하나가 충족되면, 상기 제3기록 버퍼로부터 상기 메모리내로 많아야 제3m2 더티 데이타 바이트를 배수하고 그리고 상기 제3m2 더티 데이타 바이트를 더티하지 않은 것으로 표시하는 단계로 이루어지는 데이타 기록단계로 구성되며, 상기 제1기록신호는 상기 메모리내에서 n3 데이타 바이트가 기억되는 장소를 상기 제1기록 사이즈 및 상기 제1기록 번지와 함께 식별하고, n3은 최소한 하나와 같고, m2는 n3과 같거나 크고, 상기 제1m2 더티 데이타 바이트는 상기 n3 더티 데이타 바이트로 구성되고, 상기 제2기록신호는 상기 메모리내에서 n4 데이타 바이트가 기억되는 장소를 상기 제2기록 사이즈 및 상기 제2기록 번지와 함께 식별하고, n4는 최소한 하나와 같고, 상기 제2기록신호, 제2기록 사이즈, 및 제2기록번지는 상기 제1기록 버퍼의 배수 여부와는 무관하게 수신되고, 상기 n4 데이타 바이트는 상기 제1기록버퍼의 배수 여부와는 무관하게 수신되고, 기억되고, 더티한 것으로 표시되고, m2는 n4와 같거나 크고, 상기 제2m2 더티 데이타 바이트는 상기 n4더티 데이타 바이트로 구성되고, 상기 제3기록신호는 상기 메모리내에서 n5 데이타 바이트가 기억되는 장소를 상기 제3기록 사이즈 및 상기 제3기록 번지와 함께 식별하고, n5는 최소한 하나와 동등하고, 상기 제3기록신호, 제3기록 사이즈 및 제3기록 번지는 상기 제1과 제2기록 버퍼의 배수여부와는 무관하게 수신되고, 상기 n5 데이타 바이트는 상기 제1과 제2기록 버퍼중 하나의 배수여부와는 무관하게 기억되고 더티한 것으로 표시되고, m2는 n5와 같거나 크고, 그리고 상기 제3m2 더티 데이타 바이트는 상기 n5 더티 데이타 바이트로 구성되는 것을 특징으로 하는 방법.
- 제2항에 있어서, m2는 m1과 같고; 상기 제1, 제2 및 제3판독 버퍼와 상기 제1, 제2 및 제3기록 버퍼는 각각 동일한 제1, 제2 및 제3버퍼이고; 그리고 상기 데이타 판독단계 및 상기 데이타 기록단계는 상기 제1입력출력장치에 대하여 비동기적으로 수행되는 것을 특징으로 하는 방법.
- 제3항에 있어서, 상기 제3판독 버퍼는 상기 제1 및 제2버퍼중 가장 먼저 사용된 버퍼인 것을 특징으로 하는 방법.
- 제3항에 있어서, 데이타를 판독하는 상기 단계 및 데이타를 기록하는 상기 단계는 단일 집적회로상에 배치된 직접 기억장소 액세스 제어기에 의하여 구현되는 것을 특징으로 하는 방법.
- 제3항에 있어서, 상기 방법은 또한; 제2입력-출력장치로부터 제5판독신호 제5판독 사이즈 및 제5판독번지를 수신하는 단계; 상기 n6 데이타 바이트로 구성되는 제1m3 데이타 바이트를 상기 메모리로부터 검색하고, 상기 검색된 제1m3 데이타 바이트를 제4판독 버퍼내로 기억하고, 그리고 상기 기억된 제1m3 데이타 바이트를 유효한 것으로 표시하는 단계; 상기 유효하게 기억된 n6 데이타 바이트를 상기 제4판독 버퍼로부터 상기 제2입력-출력장치로 전송하고 상기 유효하게 기억된 n6 데이타 바이트를 무효한 것으로 표시하는 단계; 상기 메모리로부터 제2m3 데이타 바이트가 사전-인출되는지 여부를 결정하고, 상기 제2m3 데이타 바이트가 사전-인출된다면, 상기 제2m3 데이타 바이트를 사전-인출하고 제5판독 버퍼내로 기억하고, 그리고 상기 기억된 제2n3 데이타 바이트를 유효한 것으로 표시하는 단계; 상기 제2입력-출력장치로부터 제6판독신호, 제6판독 사이즈 및 제6판독번지를 수신하는 단계; 상기 n7 데이타 바이트가 상기 제4 및 제5판독 버퍼중 하나에 유효하게 기억되는지 여부를 결정하고, 상기 n7 데이타 바이트가 상기 제1과 제2판독 버퍼중 하나에 유효하게 기억되지 않는다면, 상기 n7 데이타 바이트로 구성되는 제3m3 데이타 바이트를 상기 메모리로부터 검색하고, 상기 검색된 제3m3 데이타 바이트를 제6판독 버퍼내로 기억하고, 그리고 상기 기억된 제3 m3 데이타 바이트를 유효한 것으로 표시하는 단계; 및 상기 유효하게 기억된 n7 데이타 바이트를 상기 제4, 제5 및 제6판독 버퍼중 하나로부터 상기 제2입력-출력장치로 전송하기 상기 유효하게 기억된 n7 데이타 바이트를 무효한 것으로 표시한 단계로 이루어진 데이타 판독단계로 구성되며, n6은 최소한 하나와 같고, 상기 제5판독신호는 검색되어 상기 제2입력-출력장치로 복귀되는 n6 데이타 바이트를 상기 제5판독 사이즈 및 상기 제5판독 번지와 함께 식별하고, m3은 n6과 같거나 크고, 상기 사전-인출결정은 소정의 방법으로 내려지고, 상기 제2m3 데이타 바이트의 상기 사전-인출결정, 사전-인출, 기억, 및 표시단계는 상기 유효하게 기억된 n6 데이타 바이트가 상기 제4판독 버퍼로부터 검색되고 상기 제2입력-출력장치로 복귀되는 동안 수행되고, 상기 제6판독신호는 검색되어 상기 제2입력-출력장치로 복귀되는 n7 데이타 바이트를 상기 제6판독 사이즈 및 상기 제6판독번지와 함께 식별하고, n7은 최소한 하나와 같고, m3는 n2와 같거나 크고, 그리고 상기 유효기억결정은 상기 제6판독번지가 상기 제5판독번지에 순차적인지 여부와 무관하게 내려지는 것을 특징으로 하는 방법.
- 제6항에 있어서, 상기 방법은 또한; 상기 제2입력-출력장치로부터 제4기록신호, 제4기록 사이즈 및 제4기록 번지를 수신하는 단계; n8 데이타 바이트를 상기 제2입력-출력장치로부터 수신하고, 상기 n8 데이타 바이트를 제4기록 버퍼내로 기억하고, 그리고 상기 n8 데이타 바이트를 더티한 것으로 표시하는 단계; 다수의 배수조건중 하나가 상기 제4기록 버퍼에 충족되는지를 결정하고, 상기 배수조건중 하나가 충족되면, 상기 제4기록 버퍼로부터 상기 메모리내로 많아야 제1m4 더티 데이타 바이트를 배수하고, 상기 제1m4 더티 데이타 바이트를 더티하지 않는 것으로 표시하는 단계; 상기 제2입력-출력 장치로부터 제5기록신호 제5기록 사이즈 및 제5기록 번지를 수신하는 단계; n9 데이타 바이트를 상기 제2입력-출력 장치로부터 수신하고, 상기 n9 데이타 바이트를 제5기록 버퍼내로 기억하고, 그리고 상기 n9데이타 바이트를 더티한 것으로 표시하는 단계; 상기 다수의 배수조건중 하나가 상기 제5기록 버퍼에 충족되는지를 결정하고, 상기 배수조건중 하나가 충족되면, 상기 제5기록 버퍼로부터 상기 메모리내로 많아야 제2m4 더티 데이타 바이트를 배수하고, 그리고 상기 제2m4 더티 데이타 바이트를 더티하지 않은 것으로 표시하는 단계; 상기 제2입력-출력장치로부터 제6기록신호, 제6기록 사이즈 및 제6기록 번지를 수신하는 단계; 상기 제2입력-출력장치로부터 상기 n10 데이타 바이트를 수신하고, 상기 n10 데이타 바이트를 제6기록 버퍼내로 기억하고, 그리고 상기 n10 데이타 바이트를 더티한 것으로 표시하는 단계; 상기 다수의 배수조건중 하나가 상기 제6기록 버퍼에 충족되는지를 결정하고, 상기 배수조건중 하나가 충족되면, 상기 제6기록 버퍼로부터 상기 메모리로 많아야 제3m4 더티 데이타 바이트를 배수하고, 그리고 상기 제3m4 더티 데이타 바이트를 더티하지 않은 것으로 표시하는 단계로 이루어진 데이타 기록단계로 구성되며, n8은 최소한 하나와 같고, 상기 제4기록신호는 상기 메모리내에서 n8 데이타 바이트가 기억되는 장소를 상기 제4기록 사이즈 및 상기 제4기록 번지와 함께 식별하고, m4는 n8과 같거나 크고, 상기 제1m4 더티 데이타 바이트는 상기 n8 더티 데이타 바이트로 구성되고, n9는 최소한 하나와 같고, 상기 제5기록신호는 상기 메모리내에서 n9 데이타 바이트가 기억되는 장소를 상기 제5기록 사이즈 및 상기 제5기록 번지와 함께 식별하고, 상기 제5기록신호, 제5기록 사이즈 및 제5기록 번지는 상기 제4기록 버퍼의 배수여부와는 무관하게 수신되고, 상기 n9 데이타 바이트는 상기 제4기록 버퍼의 배수여부와는 무관하게 기억되고 더티한 것으로 표시되고, m4는 n9과 같거나 크고, 상기 제2m4 더티 데이타 바이트는 상기 n9더티 데이타 바이트가 구성되고, 상기 제6기록신호는 상기 메모리내에서 n10 데이타 바이트가 기억되는 장소를 상기 제6기록 사이즈 및 상기 제6기록 번지와 함께 식별하고, n10은 최소한 하나와 같고, 상기 제6기록신호, 제6기록 사이즈 및 제6기록 번지는 상기 제3과 제4기록 버퍼중 하나가 배수되고 있는지 여부와는 무관하게 수신되고, 상기 n10 데이타 바이트는 상기 제3과 제4기록 버퍼중 하나가 배수되고 있는지 여부와는 무관하게 기억되고 더티한 것으로 표시되고, m4는 n10과 같거나 크고, 상기 제3m4 더티 데이타 바이트는 상기 n10 더티 데이타 바이트로 구성되는 것을 특징으로 하는 방법.
- 제7항에 있어서, m4는 m3과 동일하고; 상기 제4, 제5 및 제6판독 버퍼와 상기 제4, 제5 및 제6기록 버퍼는 각각 동일한 제4, 제5 및 제6버퍼이고; 그리고 상기 데이타 판독단계 및 상기 데이타 기록단계는 상기 제2입력-출력장치에 대하여 비동기적으로 수행되는 것을 특징으로 하는 방법.
- 제8항에 있어서, 상기 방법은 또한 상기 제1입력-출력장치에 대해 비동기적으로 수행되는 상기 데이타 판독단계와 상기 데이타 기록단계 사이, 그리고 상기 제2입력/출력장치에 대하여 비동기적으로 수행되는 상기 추가적인 데이타 판독단계와 상기 추가적인 데이타 기록단계 사이의 임의의 충돌을 중재하는 단계로 구성되는 것을 특징으로 하는 방법.
- 제9항에 있어서, 상기 제1과 제2입력-출력장치에 대하여 데이타를 판독하고 기록하는 상기 중재된 비동기적인 단계는 단일 집적회로상에 배치된 직접 기억장소 액세스 제어기에 의해 구현되는 것을 특징으로 하는 방법.
- 개선된 처리능력을 가지고, 비동기적으로 메모리로부터 데이타를 판독하고, 상기 메모리내로 데이타를 기록하는 직접 기억장소 액세스 제어기에 있어서, 상기 직접 기억장소 액세스 제어기는 : 제1입력-출력장치에 연결되어 제1과 제2판독신호, 제1과 제2판독 사이즈 및 제1과 제2판독번지를 상기 제1입력-출력장치로부터 수신하는 제1입력-출력장치 판독 인터페이스 수단; 상기 제1입력-출력장치에 연결되어 제1m1데이타 바이트를 기억하는 제1판독 버퍼군(群)으로 구성되고, 제2와 제3m1 데이타 바이트를 조건부로 기억하고, 그리고 상기 n1과 n2 데이타 바이트를 상기 제1입력-출력장치로 전송하는 제1판독 버퍼수단; 상기 제1판독 버퍼군과 상기 메모리에 연결되어 상기 제1m1 데이타 바이트를 검색하고, 상기 제2와 제3m1 데이타 바이트를 상기 메모리로부터 조건부로 검색하고, 그리고 상기 검색된 제1, 제2 및 제3m1데이타 바이트를 상기 제1판독 버퍼군 중의 제1, 제2 및 제3판독 버퍼로 각각 기억하는 제1시스템 버스 판독 인터페이스수단; 및 상기 제1입력-출력장치 판독 인터페이스수단, 상기 제1시스템 버스 판독 인터페이스수단 및 상기 제1판독 버퍼수단에 연결되어 상기 제2m1 데이타 바이트가 상기 메모리로부터 사전-인출되는지를 결정하고, 상기 n2 데이타 바이트가 상기 제1과 제2판독 버퍼중 하나에 유효하게 기억되는지 그리고 상기 제3m1 데이타 바이트가 상기 메모리로부터 검색되는지 여부를 결정하고, 상기 기억된 제1, 제2 및 제3m1 데이타 바이트를 유효한 것으로 표시하고, 상기 유효하게 기억된 n1과 n2데이타 바이트가 상기 제1판독 버퍼와 상기 제1, 제2 및 제3판독 버퍼중 하나로부터 상기 제1입력-출력장치로 각각 전송되게 지시하고, 그리고 상기 유효하게 기억된 n1과 n2 데이타 바이트를 무효한 것으로 표시하는 제1판독 버퍼 제어수단으로 구성되며, n1과 n2는 최소한 하나와 같고, 상기 제1과 제2판독신호는 상기 제1과 제2판독 사이즈 및 상기 제1과 제2판독번지와 함께 검색되어 상기 제1입력-출력장치로 복귀되는 n1과 n2 데이타 바이트를 각각 식별하고, m1은 n1과 n2와 같거나 크고, 상기 제1m1 데이타 바이트는 상기 n1 데이타 바이트로 구성되고, 상기 제2와 제3m1 데이타 바이트중 하나는 상기 n2 데이타 바이트로 구성되고, 상기 사전-인출 결정은 소정의 방법으로 내려지고, 상기 유효기억결정은 상기 제2판독번지가 상기 제1판독번지에 순차적인지 여부와는 무관하게 내려지고, 상기 제2m1 데이타 바이트의 상기 사전-인출결정, 사전-인출, 기억 및 표시단계는 상기 유효하게 기억된 n1데이타 바이트가 상기 제1판독 버퍼로부터 상기 제1입력-출력장치로 전송되는 동안 수행되고, 상기 유효표시단계는 상기 n1과 n2 데이타 바이트가 상기 제1판독 버퍼군내로 기억될 때 수행되고, 상기 무효표시단계는 상기 유효하게 기억된 n1과 n2 데이타 바이트가 상기 제1입력/출력장치로 전송될때 수행되는 것을 특징으로 하는 직접 기억장소 액세스 제어기.
- 제11항에 있어서, 상기 직접 기억장소 액세스 제어기는 또한; 상기 제1입력/출력장치에 연결되어 제1, 제2 및 제3기록신호, 제1, 제2 및 제3기록 사이즈, 제1, 제2 및 제3기록 번지를 상기 제1입력/출력장치로부터 수신하는 제1입력-출력장치 기록 인터페이스수단; n3, n4 및 n5 데이타 바이트를 상기 제1입력-출력장치로부터 수신하고, 상기 n3, n4 및 n5 데이타 바이트를 제1기록 버퍼, 상기 제1과 제2기록 버퍼중 하나, 그리고 제1기록 버퍼군의 상기 제1, 상기 제2 및 제3기록 버퍼중 하나내로 각각 기억시키는 상기 제1기록 버퍼군으로 구성되며 상기 제1입력-출력장치에 연결된 제1기록 버퍼수단; 상기 제1입력-출력기록 인터페이스 수단과 상기 제1기록 버퍼수단에 연결되어 상기 제1기록 버퍼, 상기 제1과 제2기록 버퍼중 하나, 그리고 상기 제1기록 버퍼군의 상기 제1, 제2 및 제3기록 버퍼중 하나에게 상기 n3, n4 및 n5 데이타 바이트를 각각 기억하라고 명령을 내리고, 상기 n3, n4 및 n5 데이타 바이트를 각각 기억하라고 명령을 내리고, 상기 n3, n4 및 n5 데이타 바이트를 각각 기억하라고 명령을 내리고, 상기 n3, n4 및 n5 데이타 바이트를 더티한 것으로 표시하고, 다수의 배수조건중 최소한 하나가 상기 제1, 제2 및 제3기록 버퍼중 최소한 하나에 충족되는지를 결정하고, 상기 배수조건중 최소한 하나가 상기 제1, 제2 및 제3기록 버퍼중 최소한 하나에 충족된다면, 많아야 제1, 제2 및 제3m3 더티 데이타 바이트를 상기 제1, 제2 및 제3m2 더티 데이타 바이트를 더티하지 않은 것으로 표시하는 제1기록 버퍼제어수단; 및 상기 제1기록 버퍼수단, 상기 제1기록 버퍼제어수단 및 상기 메모리에 연결되어 상기 제1, 제2 및 제3m2 더티 데이타 바이트를 상기 메모리내로 조건부로 배수하는 제1시스템 버스 기록 인터페이스수단으로 구성되며, n3, n4 및 n5는 최소한 하나와 같고, 상기 제1, 제2 및 제3기록신호는 상기 제1, 제2, 제3기록 사이즈 및 상기 제1, 제2 및 제3기록 번지와 함께 n3, n4 및 n5 데이타 바이트가 각각 기억되는 상기 메모리내의 장소를 식별하고, m2는 n3, n4 및 n5와 같거나 크고, 상기 제1, 제2 및 제3m2 더티 데이타 바이트는 상기 n3, n4 및 n5 더티 데이타 바이트로 구성되고, 상기 제2 및 제3기록신호, 제2 및 제3기록 사이즈, 그리고 제2 및 제3기록 번지는 상기 제1기록 버퍼, 및 상기 제1과 제2기록 버퍼가 각각 배수되고 있는지 여부와 무관하게 수신되고, 상기 n4과 n5 데이타 바이트는 상기 제1기록 버퍼, 및 상기 제1과 제2기록 버퍼중 하나가 각각 배수되고 있는지 여부와 무관하게 수신되고 기억되며 상기 n3, n4 및 n5 데이타 바이트는 기억될 때 더티한 것으로 표시되는 것을 특징으로 하는 직접 기억장소 액세스 제어기.
- 제12항에 있어서, m2는 m1과 같고; 상기 제1입력-출력장치 판독 인터페이스수단과 상기 제1입력/출력장치 기록 인터페이스수단은 동일한 제1입력-출력장치 인터페이스수단이고; 상기 제1판독 버퍼군과 상기 제1기록 버퍼군은 동일한 제1버퍼군이고; 상기 제1판독 버퍼제어수단과 상기 제1기록 버퍼제어수단은 동일한 제1버퍼 제어수단이고; 상기 제1시스템 버스 판독 인터페이스수단과 상기 제1시스템 버스기록 인터페이스수단은 동일한 제1시스템 버스 인터페이스수단이고; 그리고 상기 데이타 판독과 상기 데이타 기록은 상기 제1입력/출력장치에 대하여 비동기적으로 수행되는 것을 특징으로 하는 직접 기억장소 액세스 제어기.
- 제13항에 있어서, 상기 제3버퍼는 상기 제1과 제2버퍼중 가장 먼저 사용된 버퍼인 것을 특징으로 하는 직접 기억장소 액세스 제어기.
- 제13항에 있어서, 상기 직접 기억장소 액세스 제어기는 단일 집적회로상에 배치되는 것을 특징으로 하는 직접 기억장소 액세스 제어기.
- 제13항에 있어서, 상기 직접 기억장소 액세스 제어기는 또한; 제2입력-출력장치에 연결되어 제5와 제6판독신호, 제5와 제6판독 사이즈 및 제5와 제6판독번지를 상기 제2입력-출력장치로부터 수신하는 제2입력-출력장치 판독 인터페이스 수단; 상기 제2입력-출력장치에 연결된 제2판독 버퍼군으로 구성되어 제1m3 데이타 바이트를 기억하고, 제2와 제3m3 데이타 바이트를 조건부로 기억하고, 그리고 상기 n6과 n7 데이타 바이트를 상기 제2입력-출력장치로 전송하는 제2판독 버퍼수단; 상기 판독 버퍼군 및 상기 메모리와 연결되어 상기 제1m3 데이타 바이트를 검색하고, 상기 제2와 제3m3데이타 바이트를 상기 메모리로부터 조건부로 검색하고, 그리고 상기 검색된 제1, 제2 및 제3m3 데이타 바이트를 상기 제2판독 버퍼군의 제4, 제5 및 제6판독 버퍼내로 각각 기억시키는 제2시스템 버스 판독 인터페이스수단; 및 상기 제2입력-출력장치 판독 인터페이스 수단, 상기 제2시스템 버스 판독 인터페이스수단 및 상기 제2판독 버퍼군에 연결되어 상기 제2m3 데이타 바이트가 상기 메모리로부터 사전-인출되는지를 결정하고, 상기 n6 데이타 바이트가 상기 제4와 제5판독 버퍼중 하나에 유효하게 기억되는지 그리고 상기 제3m3 데이타 바이트가 상기 메모리로부터 검색되는지 여부를 결정하고, 상기 기억된 제1, 제2 및 제3m3 데이타 바이트를 유효한 것으로 표시하고, 상기 유효하게 기억된 n6과 n7 데이타 바이트가 상기 제4판독 버퍼와 상기 제4, 제5 및 제6판독 버퍼중 하나로부터 상기 제2입력-출력장치로 각각 전송되게 명령을 내리고, 그리고 상기 유효하게 기억된 n6과 n7 데이타 바이트를 무효한 것으로 표시하는 제2판독 버퍼제어수단으로 구성되며; n6과 n7은 최소한 하나와 같고, 상기 제5와 제6판독신호는 상기 제5와 제6판독 사이즈 및 상기 제5와 제6판독번지와 함께 검색되어 상기 제2입력-출력장치로 복귀되는 n6과 n7 데이타 바이트를 각각 식별하고, m3는 n6 및 n7과 같거나 크고, 상기 제1m3데이타 바이트는 상기 n6 데이타 바이트로 구성되고, 상기 제2와 제3m3데이타 바이트중 하나는 상기 n7데이타 바이트로 구성되고, 상기 사전-인출결정은 소정의 방법으로 내려지고, 상기 유효기억결정은 상기 제6판독번지가 상기 제5판독번지에 순차적인지 여부와는 무관하게 내려지고; 상기 제2m3 데이타 바이트는 상기 사전-인출결정, 사전-인출, 기억, 및 표시단계는 상기 유효하게 기억된 n6 데이타 바이트가 상기 제4판독 버퍼로부터 상기 제2입력-출력장치로 전송하는 동안 수행되고 ; 상기 유효표시단계는 상기 n6과 n7 데이타 바이트가 상기 제2판독 버퍼군내로 기억될 때 수행되고, 그리고 상기 무효표시단계는 상기 유효하게 기억된 n6과 n7 데이타 바이트가 상기 제2입력-출력장치로 전송될 때 수행되는 것을 특징으로 하는 직접 기억장소 액세스 제어기.
- 제16항에 있어서, 상기 직접 기억장소 액세스 제어기는 또한; 상기 제2입력-출력장치에 연결되어 제4, 제5 및 제6기록신호, 제4, 제5 및 제6기록 사이즈, 제4, 제5 및 제6기록 번지를 상기 제2입력-출력장치로부터 수신하는 제2입력-출력장치로부터 수신하는 제2입력-출력장치 기록 인터페이스수단; 상기 제2입력-출력장치에 연결된 제2기록 버퍼군으로 구성되어 n8, n9 및 n10 데이타 바이트를 상기 제2입력-출력장치로부터 수신하고, 상기 n8, n9 및 n10 데이타 바이트를 제4기록 버퍼, 제4와 제5기록 버퍼중 하나, 그리고 상기 제2기록 버퍼군의 제4, 제5 및 제6기록 버퍼중의 하나내로 각각 기억하는 제2기록 버퍼수단; 상기 제2입력-출력기록 인터페이스수단과 상기 제2기록 버퍼수단에 연결되어 상기 제4기록 버퍼, 상기 제4와 제5기록 버퍼중 하나, 그리고 상기 제2기록 버퍼군의 상기 제4, 제5 및 제6기록 버퍼중 하나에게 각각 상기 n8, n9 및 n10 데이타 바이트를 기억하도록 명령을 내리고, 상기 n8, n9 및 n10 데이타 바이트를 더티한 것으로 표시하고, 다수의 배수조건중 최소한 하나가 상기 제4, 제5 및 제6기록 버퍼에 충족되는지를 결정하고, 상기 배수조건 중 최소한 하나가 제4, 제5와 제6기록 버퍼중 최소한 하나에 충족된다면 상기 제4, 제5 및 제6기록 버퍼중 최소한 하나로부터 상기 메모리로 많아야 제1, 제2 및 제3m4더티 데이타 바이트를 각각 배수하다고 명령을 내리고, 그리고 상기 제1, 제2 및 제3m4 더티 데이타 바이트중 최소한 하나를 더티하지 않은 것으로 표시하는 제2기록 버퍼제어수단; 및 상기 제2기록 버퍼제어수단 및 상기 메모리에 연결되어 상기 제1, 제2 및 제3m4를 상기 메모리내로 조건부로 배수하는 제2시스템 버스기록 인터페이스수단으로 구성되며; n8, n9 및 n10은 최소한 하나와 같고 상기 제4, 제5 및 제6기록신호는 상기 제4, 제5 및 제6기록 사이즈와 상기 제4, 제5 및 제6기록 번지와 함께 상기 메모리내에서 n8, n9 및 n10 데이타 바이트가 각각 기억되는 장소를 식별하고, m4는 n8, n9 및 n10과 같거나 크고, 상기 제1, 제2 및 제3m4 더티 데이타 바이트는 상기 n8, n9 및 n10 더티 데이타 바이트로 구성되고; 상기 제5와 제6기록신호, 제5와 제6기록 사이즈 및 제5와 제6기록 번지는 상기 제4기록 버퍼, 및 제4와 제5기록 버퍼가 배수되고 있는지 여부와는 무관하게 수신되고; 상기 n9, 및 n10데이타 바이트는 상기 제4기록 버퍼, 및 상기 제4와 제5기록 버퍼중 하나가 각각 배수되고 있는지 여부와는 무관하게 수신되고; 상기 n8, n9 및 n10 데이타 바이트는 그것들이 기억될 때 더티한 것으로 표시되는 것을 특징으로 하는 직접 기억장소 액세스 제어기.
- 제17항에 있어서, m4는 m3과 같고; 상기 제2입력-출력장치 판독 인터페이스수단과 상기 제2입력-출력장치 기록 인터페이스수단은 동일한 제2입력-출력장치 인터페이스수단이고; 상기 제2판독 버퍼군, 및 상기 제2기록 버퍼군은 동일한 제2버퍼군이고; 상기 제2판독 버퍼제어수단과 상기 제2기록 버퍼제어수단은 동일한 제2버퍼제어수단이고; 상기 제2시스템 버스 판독 인터페이스수단과 상기 제2시스템 버스 기록 인터페이스수단은 동일한 제2시스템 버스 인터페이스수단이고; 그리고 상기 데이타 판독단계와 상기 데이타 기록단계는 상기 제2입력-출력장치에 대하여 비동기적으로 수행되는 것을 특징으로 하는 직접 기억장소 액세스 제어기.
- 제18항에 있어서, 상기 제1과 제2시스템 버스 인터페이스수단은 동일한 시스템 버스 인터페이스수단이고; 상기 동일한 시스템 버스 인터페이스수단은 상기 제1과 제2판독기/기록 버퍼제어수단 및 상기 제1과 제2판독/기록 버퍼군에 연결된 중재수단으로 구성되어, 상기 제1과 제2입력-출력장치에 대하여 비동기적으로 수행되는 상기 데이타 판독 및 상기 데이타 기록단계 사이의 임의의 충돌을 중재하는 것을 특징으로 하는 직접 기억장소 액세스 제어기.
- 제19항에 있어서, 상기 직접 기억장소 액세스 제어기는 단일 직접회로상에 배치되는 것을 특징으로 하는 직접 기억장소 액세스 제어기.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US778,507 | 1991-10-17 | ||
US07/778,507 US5283883A (en) | 1991-10-17 | 1991-10-17 | Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput |
Publications (2)
Publication Number | Publication Date |
---|---|
KR930008637A KR930008637A (ko) | 1993-05-21 |
KR970002407B1 true KR970002407B1 (ko) | 1997-03-05 |
Family
ID=25113580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019920019113A KR970002407B1 (ko) | 1991-10-17 | 1992-10-17 | 개선된 처리능력을 가지고 메모리로부터/로 데이타를 비동기적으로 판독/기록하는 직접 기억장소 액세스 제어기 및 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5283883A (ko) |
EP (1) | EP0542417B1 (ko) |
JP (1) | JP3273367B2 (ko) |
KR (1) | KR970002407B1 (ko) |
DE (1) | DE69226928T2 (ko) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2080210C (en) * | 1992-01-02 | 1998-10-27 | Nader Amini | Bidirectional data storage facility for bus interface unit |
TW276312B (ko) * | 1992-10-20 | 1996-05-21 | Cirrlis Logic Inc | |
US5638530A (en) * | 1993-04-20 | 1997-06-10 | Texas Instruments Incorporated | Direct memory access scheme using memory with an integrated processor having communication with external devices |
JP3305042B2 (ja) * | 1993-04-23 | 2002-07-22 | キヤノン株式会社 | 印刷制御装置 |
US5522050A (en) * | 1993-05-28 | 1996-05-28 | International Business Machines Corporation | Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus |
US5771397A (en) * | 1993-12-09 | 1998-06-23 | Quantum Corporation | SCSI disk drive disconnection/reconnection timing method for reducing bus utilization |
US5761725A (en) * | 1994-01-31 | 1998-06-02 | Dell Usa, L.P. | Cache-based computer system employing a peripheral bus interface unit with cache write-back suppression and processor-peripheral communication suppression for data coherency |
US5598576A (en) * | 1994-03-30 | 1997-01-28 | Sigma Designs, Incorporated | Audio output device having digital signal processor for responding to commands issued by processor by emulating designated functions according to common command interface |
US5613153A (en) * | 1994-10-03 | 1997-03-18 | International Business Machines Corporation | Coherency and synchronization mechanisms for I/O channel controllers in a data processing system |
US5671443A (en) * | 1995-02-21 | 1997-09-23 | International Business Machines Corporation | Direct memory access acceleration device for use in a data processing system |
JPH08314794A (ja) * | 1995-02-28 | 1996-11-29 | Matsushita Electric Ind Co Ltd | 安定記憶装置へのアクセス待ち時間を短縮するための方法およびシステム |
US5613155A (en) * | 1995-06-07 | 1997-03-18 | International Business Machines Corporation | Bundling client write requests in a server |
US5752076A (en) * | 1995-08-31 | 1998-05-12 | Intel Corporation | Dynamic programming of bus master channels by intelligent peripheral devices using communication packets |
US6317803B1 (en) | 1996-03-29 | 2001-11-13 | Intel Corporation | High-throughput interconnect having pipelined and non-pipelined bus transaction modes |
US5911051A (en) * | 1996-03-29 | 1999-06-08 | Intel Corporation | High-throughput interconnect allowing bus transactions based on partial access requests |
JP3429948B2 (ja) * | 1996-04-10 | 2003-07-28 | 株式会社日立製作所 | 組込み型cpu用制御装置 |
JP2867965B2 (ja) * | 1996-06-28 | 1999-03-10 | 日本電気株式会社 | データ処理装置及びデータ処理方法 |
US6029226A (en) * | 1996-09-30 | 2000-02-22 | Lsi Logic Corporation | Method and apparatus having automated write data transfer with optional skip by processing two write commands as a single write command |
US6425021B1 (en) | 1998-11-16 | 2002-07-23 | Lsi Logic Corporation | System for transferring data packets of different context utilizing single interface and concurrently processing data packets of different contexts |
US6202107B1 (en) * | 1998-11-19 | 2001-03-13 | Sun Microsystems, Inc. | Host controller interface descriptor fetching unit |
US6972770B1 (en) | 1999-08-19 | 2005-12-06 | International Business Machines Corporation | Method and apparatus for performing raster operations in a data processing system |
US6557055B1 (en) * | 1999-10-06 | 2003-04-29 | Apple Computer, Inc. | Adaptive throughput optimization |
US6668287B1 (en) * | 1999-12-15 | 2003-12-23 | Transmeta Corporation | Software direct memory access |
US6738836B1 (en) * | 2000-08-31 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | Scalable efficient I/O port protocol |
US7725748B1 (en) | 2000-12-29 | 2010-05-25 | Intel Corporation | Low power subsystem for portable computers |
US20030208550A1 (en) * | 2001-06-28 | 2003-11-06 | Hamilton Tony G. | Method to provide direct system storage access within a notebook computer via a wireless interconnect and a low power high-speed data management bus while the main CPU is idle |
US20040136241A1 (en) * | 2002-10-31 | 2004-07-15 | Lockheed Martin Corporation | Pipeline accelerator for improved computing architecture and related system and method |
WO2004042574A2 (en) * | 2002-10-31 | 2004-05-21 | Lockheed Martin Corporation | Computing machine having improved computing architecture and related system and method |
US8738159B2 (en) * | 2004-03-15 | 2014-05-27 | Siemens Industry, Inc. | System and method for accessing PLC data on demand |
US20060085781A1 (en) * | 2004-10-01 | 2006-04-20 | Lockheed Martin Corporation | Library for computer-based tool and related system and method |
US7398335B2 (en) | 2004-11-22 | 2008-07-08 | Qlogic, Corporation | Method and system for DMA optimization in host bus adapters |
US10534899B2 (en) * | 2017-08-24 | 2020-01-14 | Blackberry Limited | Utilizing inputs for accessing devices |
US10511455B1 (en) * | 2017-09-18 | 2019-12-17 | Xilinx, Inc. | Time sensitive networking control circuitry |
DE102019211856A1 (de) * | 2019-08-07 | 2021-02-11 | Continental Automotive Gmbh | Datenstruktur, Steuerungssystem zum Einlesen einer solchen Datenstruktur und Verfahren |
US11055176B1 (en) | 2020-04-24 | 2021-07-06 | Western Digital Technologies, Inc. | Storage devices hiding parity swapping behavior |
US11194494B2 (en) | 2020-04-24 | 2021-12-07 | Western Digital Technologies, Inc. | Storage devices hiding parity swapping behavior |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2530829B2 (ja) * | 1987-01-16 | 1996-09-04 | 株式会社日立製作所 | 直接メモリアクセス制御装置とマルチマイクロコンピュ―タシステム内におけるデ―タ転送方法 |
US4910656A (en) * | 1987-09-21 | 1990-03-20 | Motorola, Inc. | Bus master having selective burst initiation |
US5179663A (en) * | 1988-02-19 | 1993-01-12 | Hitachi, Ltd. | Data transfer controller |
JP2745521B2 (ja) * | 1988-02-23 | 1998-04-28 | 株式会社日立製作所 | フレーム送信方法 |
US5182800A (en) * | 1990-11-16 | 1993-01-26 | International Business Machines Corporation | Direct memory access controller with adaptive pipelining and bus control features |
-
1991
- 1991-10-17 US US07/778,507 patent/US5283883A/en not_active Expired - Lifetime
-
1992
- 1992-09-28 EP EP92308835A patent/EP0542417B1/en not_active Expired - Lifetime
- 1992-09-28 DE DE69226928T patent/DE69226928T2/de not_active Expired - Fee Related
- 1992-10-17 KR KR1019920019113A patent/KR970002407B1/ko not_active IP Right Cessation
- 1992-10-19 JP JP30448892A patent/JP3273367B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
KR930008637A (ko) | 1993-05-21 |
JPH06236343A (ja) | 1994-08-23 |
JP3273367B2 (ja) | 2002-04-08 |
EP0542417B1 (en) | 1998-09-09 |
DE69226928T2 (de) | 1999-06-17 |
DE69226928D1 (de) | 1998-10-15 |
EP0542417A1 (en) | 1993-05-19 |
US5283883A (en) | 1994-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR970002407B1 (ko) | 개선된 처리능력을 가지고 메모리로부터/로 데이타를 비동기적으로 판독/기록하는 직접 기억장소 액세스 제어기 및 방법 | |
KR100278035B1 (ko) | 다중처리기 컴퓨터시스템에서 캐시태그 메모리의 단일 카피를 사용하는 캐시일관성 개량장치 및 방법 | |
KR100225744B1 (ko) | 동적연쇄화조작동안레이스상태를막는방법및장치 | |
US5251310A (en) | Method and apparatus for exchanging blocks of information between a cache memory and a main memory | |
US7814257B2 (en) | Data transfer apparatus and data transfer method | |
JPH0532775B2 (ko) | ||
JPH06309230A (ja) | バススヌ−プ方法 | |
EP0473059B1 (en) | Communication control system | |
US4737908A (en) | Buffer memory control system | |
JPH0516061B2 (ko) | ||
US5926840A (en) | Out-of-order fetching | |
JPH0210450A (ja) | キヤツシユメモリの先行フエツチ制御方式 | |
JP2001229074A (ja) | メモリ制御装置と情報処理装置及びメモリ制御チップ | |
US6718400B1 (en) | Data accessing system with an access request pipeline and access method thereof | |
JPH06301600A (ja) | 記憶装置 | |
JPH0690681B2 (ja) | キャッシュメモリ制御方式 | |
JPS63311548A (ja) | キャッシュメモリ制御回路 | |
JP2589205B2 (ja) | 通信制御システム | |
JP2803616B2 (ja) | 入出力バスインタフェース制御方式 | |
JP3251198B2 (ja) | データ転送装置 | |
JPH086853A (ja) | 記憶制御方法 | |
JPH0526216B2 (ko) | ||
JP2004240520A (ja) | ノンキャッシュ領域内高速メモリアクセス方法 | |
JPH04353949A (ja) | キャッシュメモリ制御方式 | |
JPS62224846A (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: 20020909 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |