KR960006503B1 - 다중-채널 직접메모리 억세스(dma)동작을 인터리브하기 위한 장치 및 그 방법 - Google Patents

다중-채널 직접메모리 억세스(dma)동작을 인터리브하기 위한 장치 및 그 방법 Download PDF

Info

Publication number
KR960006503B1
KR960006503B1 KR1019920026619A KR920026619A KR960006503B1 KR 960006503 B1 KR960006503 B1 KR 960006503B1 KR 1019920026619 A KR1019920026619 A KR 1019920026619A KR 920026619 A KR920026619 A KR 920026619A KR 960006503 B1 KR960006503 B1 KR 960006503B1
Authority
KR
South Korea
Prior art keywords
channel
data
dma
transmission resource
transmission
Prior art date
Application number
KR1019920026619A
Other languages
English (en)
Other versions
KR930014074A (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 KR930014074A publication Critical patent/KR930014074A/ko
Application granted granted Critical
Publication of KR960006503B1 publication Critical patent/KR960006503B1/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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Abstract

내용 없음.

Description

다중-채널 직접메모리 억세스(DMA)동작을 인터리브하기 위한 장치 및 그 방법
본 발명의 컴퓨터 시스템에서 데이타의 전송 동작에 관한 것이며, 좀더 자세히는 컴퓨터 시스템에서 직접메모리 억세스 동작에 관한 것이다.
(배경기술)
다중 데이타 처리장치를 갖는 컴퓨터 시스템에서는, 장치와 장치 사이에서 데이타 전송이 일어날 뿐아니라 시스템의 능률을 얻기 위해 시간-다중화 형태로 하나의 장치와 다수의 다른 장치 사이에서도 데이타 전송이 있게 된다. 예를 들어, 중앙처리장치(CPU)는 데이타를 네트워크 장치에 전송하면서, 한편 이 CPU를 완전히 이용하기 위해 다른 장치와 데이타 전송동작을 시간 다중화한다. 데이타 전송속도는 장치마다 다르므로, 버퍼는 다중 장치의 데이타 전송속도를 최적으로 하기 위해 각 장치와 CPU간에 중간자로 역할한다.버퍼를 이용해서 데이타는 전송 자원이 이용가능하거나 전송 종착지가 프리할때 일시적으로 기억될 수 있다. 더욱 정교한 시스템이 요구될때, 즉 더 많은 장치가 CPU와 상호동작할때 각 장치에 대해 버퍼를 실행하는 것은 집적회로에 있어 문제를 발생시킨다. 직집회로에서 다이 크기의 제한으로 인해 더 많은 버퍼와 그와 관련된 디코드 로직이 증가할 수 없다.
이 문제는 컴퓨터 시스템에서 다중 채널에서의 데이타를 전송하는 직접 메모리 억세스 동작에 의해 설명될 수 있다. 직접 메모리 억세스(DMA) 동작은 많은 양의 데이타가 이동할때 컴퓨터 입/출력(I/O)동작에 있어 이용되는 기술이다. DMA는 통상 시스템 버스상에 모듈의 추가를 포함한다. 제 1 도에 도시되는 DMA(100)는 CPU(도시안됨)을 에뮬레이트할 수 있으며 CPU로부터 시스템 버스를 제어할 수 있다. DMA동작은 다음과 같이 수행된다 : CPU가 데이타 블록을 판독하거나 기록하기를 원하면, DMA 모듈(l00)에 대해 명령을 발한다. 이 명령은 판독(101) 혹은 기록(102)이 요구되는가에 관한 정보, 관련된 I/O 장치의 번지(103), 판독 혹은 기록을 개시할 메모리 내 위치, 및 판독 혹은 기록될 단어수(105)를 포함한다. 그후 CPU는 DMA 모듈에 대해 I/O 동작을 위임하며 이 모듈은 작업을 책임지기 때문에 다른 작업을 계속한다. 따라서 DMA는 CPU를 통하지 않고 전체 데이타 블록을 한번에 1단어씩 메모리를 왕래하며 전송한다. 전송이 끝나면, DMA 모듈은 인터럽트 신호(110)를 CPU로 보낸다. 그렇게 함으로써 CPU는 단지 전송의 시작과 끝에서만 관여하게 된다.
DMA 모듈은 데이타를 메모리로(부터) 전송하기 위해 버스를 제어해야 한다. 그러기 위해서는 DMA 모듈가 버스를 이용하지 않을때 그 버스를 이용해야 한다. 즉 DMA 모듈은 CPU를 일시적으로 그 동작을 중지시켜야 한다. 이 DMA 모듈이 행하는 기능은 오직 데이타 전송뿐이므로, 전송순서가 모듈회로에 고정배선될 수 있다. 명령을 더 높은 준위로 인출시킴으로서 대역-폭의 이용을 줄일 수 있다. DMA 모듈은 버스에 의해 요구되는 번지 및 제어신호를 발생시킬 수 있는 능력을 가지므로 완전 기억 속도로 I/0 동작을 수행할 수 있다.
오늘날의 우수한 컴퓨터 시스템에서는 DMA 동작은 여러장치와의 다중-채널 데이타 전송 능력을 갖추어야만 한다. 데이타 전송을 이용하게 하기 위해, 버퍼가 DMA채널에 대해서 독립적으로 할당되어야 한다. 그러나 DMA 채널수가 더욱 정교한 동작에 대해서는 증가함에 마라, "채널당 1버퍼"의 접근이 어렵다. 더우기 선입선출(FIFO)버퍼같은 단일버퍼는 다중-채널 DMA 동작에 대해서 중간자로 역할을 할 수있지만, 이 FIFO는 계속해서 모든 데이타를 즉시 필요로 하는 1채널이 다른 채널의 데이타에 의해 방해될때 병목 현상이라는 문제에 직면한다. 또한 데이타가 FIFO로 전송됨에 따라 FIFO는 꽉차게 되며 따라서 FIFO내 데이타가 판독될때 까지 그 전송이 중지된다. 이러한 이유로 인해, 종래의 FIFO의 다중채널은 높은 대역-폭과 연속적인 동작을 얻을 수 없었다.
후술하는 바와 같이, 본 발명은 높은 대역-폭과 효과적인 자원의 이용을 구하기 위해 상이할 채널로부터 전송 순서를 인터리브함으로써 다중 DMA를 통해 데이타를 전송하는 장치 및 그 방법을 개시한다. 또한 배드-폭과 시스템의 효능을 극대화시키기 위해 다중-채널 DMA 전송을 지원하는 것과 관련해서 매우 효과적으로 이용되는 회로 구성이 개시된다. 그러므로, 본 발명의 제 1 목적은 다중-채널 DMA 동작을 지원하는 것이다. 본 발명의 제 2 목적은 연속되는 동작에서 다중-채널 DMA 전송을 지원하는 것이다. 본 발명의 제 3 목적은 채널을 인터리브함으로서 높은 대역-폭의 다중-채널 DMA 전송을 획득하는 것이다. 본 발명의 제 4 목적은 다수의 DMA 채널을 인터리브하는 것과 관련해서 매우 효과적으로 이용되는 회로구성을 제공하는 것이다. 본 발명의 제 5 목적은 각 채널에 대해 독럽적으로 판독 및 기록을 갖는 다수의 DMA채널을 제공하는 회로 구성을 제공하는 것이다. 본 발명의 제 6 목적은 DMA 채널을 인터리브함에 있어 효과적으로 버스를 이용하기 위한 회로 구성을 제공하는 것이다.
후술되는 바와 같이, 본 발명은 각 채널에 대한 데이타 전송을 일련의 데이타 슬라이드로 분리하고, 그 슬라이드된 것에 기초해서 전송을 인터리브함으로써 다중-채널 DMA 동작을 지원하는 장치 및 그 방법을 개시한다. 전송 자원의 제어는 DMA 채널 사이에서 시프트될 수 있기만 각 채널에 대한 데이타 슬라이스의 순서는 보존된다. 본 발명은 또한 다중 인터리빙 DMA 채널과 함께 매우 효과적으로 이용되는 회로구성을 개시한다. 이 회로구성은 이중 포트 기억장치, 채널 순서기, 및 채널 인터리브 제어기로 구성된다. 이중 포트 기억장치는 채널을 통해 전송필 데이타 슬라이드를 기억한다. 채널 순서기는 이중 포트 기억장치에서 데이타 슬라이스의 채널 순서를 보존시킨다. 채널 인터리브 제어장치는 채널 인터리브 크기와 채널당 현행 데이타 전송 계수 및 충 전송계수를 모니터링함으로써 채널이 그들 데이타의 전송을 인터리브하도록 허용한다. 제 2 채널은 제 1 채널이 그의 채널 인터리브 크기에 도달하거나 그의 요구된 총 전송계수를 전송할때와 동일한 매체를 통해 데이타를 전송함으로써 버스를 효과적으로 이용하게 된다. 언급될 상세한 설명중 몇몇 부분에서의 컴퓨터 메모리내의 데이타비트에 관한 동작을 알고리즘 및 기호표현 형식으로 나타내고 있다. 이들 알고리즘 표현 및 설명은 데이타 처리 기술본야에 숙련된 사람에 의해 사용되어 그들의 작업 요지를 본 기술 분야에 숙련된 다른 사람들에게도 효율적을로 전달하기 위한 수단이 된다.
여기에서, 알고리즘은 일반적으로 소정의 결과로 유도하는 모순없는 단계의 간주된다. 단계에서는 물리적인 양의 물리적인 처리가 요구된다. 보통 반드시 그러한 것은 아니지만, 이들 양은 기억, 전달, 결합 및 비교되고, 그렇지 않은 경우 조작될 수 있는 전기 또는 자기신호의 형태를 취한다. 이들 신호는 때때로 일반적으로 사용되기 때문에 비트, 소자, 기흐, 문자, 항, 숫자 또는 이와 유사한 표현으로 언급되는 것이 편리하다. 그러나, 상기 표현형식 모두는 적절한 물리적인 양에 관련되며, 편리하게 이들 물리적인 양에 적용시킨 단순한 라벨이라는 점을 명시해야할 것이다.
또한, 수행되는 조작은 가산 또는 비교와 같은 용어로 언급되는데, 이는 보통 인간 오퍼레이터에 의해서 수행된 지능적인 동작에 관련된다. 그와 같은 인간 오퍼레이터의 능력은 본 발명의 일부를 형성하는 여기에서 언급된 임의의 동작 모든 경우에 반드시 필요하거나 바람직한 것은 아니다. 왜냐하면 동작자체가 기계에 의해 행해지는 동작일 수 있기 때문이다. 본 발명을 수행하기 위한 유용한 기계는 범용 디지탈 컴퓨터나 다른 유사한 장치를 포함한다. 모든 경우에, 컴퓨터를 동작하는데 있어서의 동작방법과 컴퓨터 자체의 방법사이의 차이점을 명심해야 한다. 본 발명은 전기적 또는 다른 (즉 기계적, 화학적) 물리적 신호를 다른 소정의 뭍리적 신호로 발생시키도록 컴퓨터를 동작시키는 장치 및 방법에 관한 것이다.
본 발명은 또한 이들 동작을 수행하는 장치에 관한 것이다. 이 장치는 요구되는 목적에 따라 특별히 구성될 수도 있으며, 컴퓨터 내에 기억된 컴퓨터 프로그램에 의해 선택적으로 동작하거나 인식되는 범용 컴퓨터에 포함할수 있다. 여기에 제시되는 알고리즘은 특정 컴퓨터나 그의 특정 장치에는 실제 관련이 없다. 특히, 본 가르침에 따라 기록된 프로그램에 관해 여러 범용 기계가 이용될 수 있으며, 혹은 좀더 특수한 장치를 제작해서 요구되는 방법 과정을 수행하는 것이 편리함을 증명할 수 있다. 이러한 여러 기계에 요구되는 구조는 앞으로의 설명에서 나타나게 된다.
여기에 개시된 여러 절차는 수행하는데 있어 어느 특정 프로그래밍 언어가 지정되지 않는다. 그 이유는 여기서 언급되는 모든 언어가 보편적으로 이용가능하지는 않다는 사실에 부분적으로 기인한다. 특정 컴퓨터를 이용하는 사람은 그에게 가장 적합한 언어가 무엇인가를 알것이다. 실제 본 발명을 기계 실행 가능한 목적 코드를 제공하는 어셈블리어에서 구현하는 것이 실용적임이 증명되어 있다. 본 발명을 실시하는데 이용되는 컴퓨터 및 모니터 시스템은 다양한 구성요소로 구성되기 때문에 자세한 프로그램 리스팅이 제공되지 않는다. 첨부된 도면과 관련하여 여기에 설명된 동작 및 절차는 당업자가 본 발명을 실시하는데 있어서는 충분할 것으로 생각된다.
당업자라면 앞으로 잘 알 수 있는 바와 같이, 본 발명의 채널 인터리빙 장치 및 그 방법은 데이타 전달 순서를 슬라이스로 분리시키고 상이한 채널로부터 그 슬라이스를 인터리브함으로써 다중 채널 전송이 효과적이고 일정하게 진행되도록 허용한다 본 발명은 또한 슬라이스된 데이타가 각각의 채널을 통해 전송되도록 채널의 인터리빙을 지원하는 회로구성을 개시한다. 따라서 채널 인터리빙 장치 및 그 방법은 전송 자원이 1채널에 의해 이용되지 않을때 다른 채널을 인터리빙하므로써 버스를 더 잘 이용하며 더 높은 대역-폭을 얻을 수 있다. 설명하기 위한 목적의 아래의 설명에서, 상세한 기억장치, 구성 및 아키텍쳐 등이 본 발명의 완벽한 이해를 돕고자 제시된다. 그러나 당업자에게는 이러한 상세없이도 본 발명을 실시할 수 있음은 명백하다. 또한, 공지의 회로는 본 발명을 불필요하게 모호하게 하지 않기 위해 블록 다이어그램의 형태로 나타낸다. 더우기, 앞으로의 설명에서 명백하겠지만, 본 발명의 인터리빙 채널 장치 및 방법은 여기에 설명되는 특정 회로 구성이외 다른 버퍼링 시스템을 이용할 수 있다. 마찬가지로, 이 특정회로 구성은 개시된 본 발명의 인터리빙 장치 및 방법에 부가해서 다른 다중-장치 전달에 관련해서 이용될 수 있다
제 2 도는 DMA 제어기를 갖는 컴퓨터 시스템이 블록 다이어그램 형태로 도시된다. DMA 제어기 모듈(220)은 CPU(210)가 시스템버스(200)를 이용하지 않을때, 시스템 버스(200)의 제어를 획득함으로서 메모리(240) 및 여러주변장치(250)중의 데이타 전송을 용이하게 한다. DMA 제어기 모듈(220)에 접속된 버퍼(230)는 데이타 전송에 있어 데이타 버퍼링을 제공한다. 당업자라며 알 수 있듯이, 다중 DMA 채널을 지원할 수 있는 아키텍쳐는 메모리(240) 및 여러주변장치(250)중에서 DMA 동작의 성능을 극히 향상시킨다.
참고적으로 제 7 도에는 DMA 채널 인터리빙 방법의 순서도가 도시된다. 먼저 DMA는 채널 M을 통한 데이타의 총 전송계수(TTC)의 전송을 요구한다. TTC는 채널 M으로부터 슬라이스가 동일 전송 자원의 이용을 희망하는 또다른 채널 N으로 부터 슬라이스와 인터리브되도록 전송 순서가 2 혹은 그 이상의 분리 슬라이스로 분할될지를 결정하기 위해 채널 M의 소정의 채널 인터리브 크기(CIS)와 비교된다. 만약 채널 M으로부터 TTC가 그의 CIS보다 같거나 작으면 그 전송은 1슬라이스로 완결된다. DMA 채널의 CIS는 또다른 DMA 채널이 제1DMA 채널과 동일한 전송 자원을 이용해서 인터리브하기 전에 전송할 필요가 있는 데이타 양을 상세한다. 따라서 채널 M의 TTC가 CIS내에 있을때 그 데이타는 1슬라이스로 손쉽게 전송된다.
만약 채널 M의 CIS가 그의 요구된 TTC보다 작으면, TTC의 전송은 CIS 크기 데이타의 다중 슬라이스로 시간 분할되며, 각 슬라이스는 전송 자원을 통해 전송될 수 있다. 채널 M에 대한 각 슬라이스의 전송후에 인터리브하는 또다른 채널로부터의 또다른 데이타의 슬라이스에 대해 전송 자원의 제어가 이용 가능하다. 전송자원의 제어는 회전 혹은 고정 기초에 있을 수 있는 채널의 우선 아비트레이션 계획에 의해 더 높은 우선을 가지고 또다른 채널로 통과 할 수 있다. 만약 또다른 채널 N이 채널 M의 슬라이스를 뒤따라 전송 자원의 제어를 획득한다면 채널 N으로부터의 데이타 슬라이스를 전송자원을 이용해서 전송될 수 있다. 전송 자원의 제어는 만약 존재한다면 각 슬라이스에 뒤따라 더 높은 우선을 가지고 채널 N으로부터 다른 채널로 통과한다. 당업자라면 각 채널의 CTC를 계속 추적하기 위해서 계수 메카니즘이 필요하다는 것을 알 수 있다. 그러므로, 동일 전송 자원을 통해 다중 DMA 채널에 대해 데이타 전송이 있으면, 각 DMA채널을 통해 데이타 전송 순서는 그의 TTC 및 CIS에 따라 다중 슬라이스트 시분할되며, 다른 채널과 인터리브된다. 그결과, DMA 데이타 전송은 모든 순서가 완결될때까지 불규칙한 순서로 그들의 슬라이스에서 채널 -인터리브된다.
본 발명의 채널 인터리빙을 지원할 수 있는 여러가지 버퍼링 실시예가 당업자에 의해 구성될 수 있지만, 제 3 도를 참조로 채널 인터리빙을 지원하는 회로구성을 실시예로서 후술한다. 제어구조(300)는 이중 포트 기억장치(320)와 채널 순서기로 구성된다. 이중-포트 기억장치(320)는 DMA 데이타 전송에 있어 데이타를 기록 및 판독하며, 판독 포인터(32l) 및 기록 포인터(325)를 이용해서 순환형태로 동작한다. 기록 포인터(325)는 이중-포트 기억장치(320)에서 다음에 기록될 데이타 위치를 지정한다. 데이타가 이중-포토 기억장치(320)에 기록되면 기록포인터(320)는 이중-포트 기억장치(320) 내의 다음 위치로 이동한다. 판독 포인터(321)은 이중-포트 기억장치에서 다음에 판독될 데이타 위치를 지정한다. 따라서 데이타는 판독 포인터(321)에 의해 지적된 위치에서 이중-포트 기억장치로부터(320)로부터 판독된다. 기록 포인터(325)가 선행 포인터이므로 두개의 포인터가 함께 발생하면, 즉 서로에 대해 "충돌"할때 이중-포트 기억장치(320)는 비게된다. 그리고 기록 포인터(325)가 판독 포인터(321) 바로 뒤에 위치할때 이중-포트 기억장치(320)는 차게된다. 통상 제어 구조(300)는 빈 상태에서 그 동작을 개시한다. 또한 당업자라면 이해할 수 있는 바와같이, 타망 데이타는 이중-포트 기억장치(320)로부터 판독되기 전에는 중복기재되지 않도록 판독 포인터(321)를 통과해서는 않된다.
제 3 도에서 채널 순서기(330)는 이중-포트 기억장치(320)는 통해 각 DMA 데이타 전송과 관련된 DMA채널 넘버를 레고딩함으로써 이중-포트 기억장치(320)에 버퍼된 데이타에 대응해서 순서 매김하는 채널은 다중 채널이 이중-포트 기억장치(320)를 이용해서 DMA 전송을 연습할때 유지된다. 채널 순서기(330)은 소오스 포인터(331) 및 증착 포인터(335)와 순환형태로 동작한다. 소오스 포인터(331)은 데이터가 기록되는 채널을 표시하는 채널 순서기(330)내 하나의 위치에 채널 넘버를 기억시킨다. 소오스 포인터(331)은 기록된 다음 채널 넘버에 대해 준비되는 채널 순서기(330)내 다음 위치까지 증가한다. 종착 포인터(335)는 채널 순서기(330)내 위치를 지적함으로써 이중-포트 기억장치(320)로부터 데이타 전송을 개시하며 따라서 데이타가 이중-포트 기억장치(320)로부터 채널 순서기(320)내 종착 포인터(335)에 의해 지적된 채널로 판독된다. 따라서 데이타는 동일 채널에서 이중-포트 기억장치(320)로 기억되며 판독된다. 당업자라면 소오스 포인터(331)와 종작 포인터(335)는 데이타 전송의 오지적을 방지하기 위해 서로 크로스되지는 않는다는 사실을 알것이다.
또한 계속해서 제 3 도를 살펴보면, 버스같은 자원이 데이타 전송을 용이하게 하는데 용이하지 않을때, 소오스 포인터(331)은 스칩해서 채널 순서기(330)내 태그(332)에 위치를 태그시킨다. 따라서, 종착 포인터(335)가 태그된 위치로 이동할때, 종착 포인터(335)는 데이타 전송이 채널 순서기(330)의 태그된 위치에 관련해서 소오스 포인터(331)에 의해 수행되는지를 알기 위해 태그(332)를 판독한다. 그 결과, 종착 포인터(335)는 태그된 위치에 따라 데이타가 전송되도록 하지는 않으며, 태크(332)를 무효시키거나 리세트 시키며, 다음 위치에 채널을 전송하기 위해 스킵한다. 이것은 본 발명의 회로구성이 동일 채널에 대해 전달하는 이상의 데이타를 전송하지 않도록 보정하는 것이다. 이중-포트 기억장치(327)에서 데이타를 기록할 여유가 충분치 않을 경우 혹은 버스를 전송에 이용할 수 없을 경우 그냥 지나침이 발생할 수 있다.
특이한 회로구성이 채널 인터리빙을 지원하기 의해 이용될 때, 채널 인터리브 제어(310)은 기록 및 판독방향으로 각 채널에 대해서 채널 인터리브 크기, 총 전송크기 및 전류 전송크기를 모니터링함으로써 채널이 그들의 전송을 인터리브하도록 허용한다. 각 채널의 채널 인터리브 크기는 또다른 채널이 제1채널과 동일한 지원을 이용해서 그의 전송을 인터리브할 수 있기 전에 제1채널이 전송해야 하는 바이트 수를 정의한다. 총 전송 크기는 정의된 채널이 이중-포트 메모리(320)를 통해 전송하기 위해 요구되는 총 바이트 수를 정의한다. 현행 전송계수는 이중-포트 기억장치(320)에 버퍼된 데이타 바이트에 관련해서 각 채널에 대해 진행중인 현행 기록 및 현행 판독계수 모두를 레코드한다. 채널을 통해 총 전송크기의 데이타에 대한 요구에 응답해서, 채널 인터리브 제어 (310)는 채널의 채널 인터러브 크기 및 총 전송 크기를 판독함으로써 현행 전송이 분할될 수 있는 데이타 슬라이스 수를 결정한다. 만약 데이타 전송이 1데이타 슬라이스 이상으로 분할된다면, 그후 채널 인터리브 제어(310)는 제1채널이 그의 채널 인터러브 크기까지 전송된 후 제 2 채널이 그의 전송을 실행하도록 허용한다. 채널 인터리브 제어도 역시 기록 및 판독방향으로 각 채널의 현행 전송 계수를 모니터함으로서 본 발명의 회로구성은 얼마나 많은 데이타 바이트를 각 채널에 대해 전송했는가 그리고 또 채널 인터리브가 발생할 때 얼마나 많은 데이타가 전송되는지를 추적한다. 이와 같이, 이 회로구성은 데이타 슬라이스와 관련된 채널 순서 매김이 채널 순서기(330) 및 채널 인터리브 제어(310)에 의해 유지되기 때문에 여러가지 DMA 전송 시퀸서가 완성될때까지는 뷸규칙한 순서로 상이한 채널로부터 데네이타 슬라이스 전송을 실행함으로서 전송이 진행될 수 있다.
채널 인터리빙은 여러 전송크기를 포함하기 때문에 채널 순서기(330)의 하나의 위치에서 완결되기 전에 또다른 위치에서 완결되는 현상이 생긴다. 이 현상으로 인해 비록 채널 순서기(330)가 먼저 그의 소오스 포인터를 통해 차례대로 채널을 로딩하지만 채널 순서기(330)는 뷸규칙하게 분산된 캡을 갖게 된다. 채널 순서기(330)내에 불규칙하게 분산된 위치로 뒤따르는 채널을 할당하여 전송자원을 표시하기 위해, 뒤따르는 채널은 소오스와 종착 포인터 사이에 있는(즉 소오스 포인터 뒤와 종착 포인터 앞에 있는) 위치에 할당되지 않음을 당업자라면 알것이다. 따라서, 새로운 채널은 종착 포인터(335)에 의해 먼저 히트되는 위치에는 있지 않으며 위치의 순서는 채널 순서기(330)에서 유지된다.
또한 채널 인터리브 제어(310)는 채널 인터리브 크기와 총 전송크기 및 현행 전송 계수간의 차이를 비교함으로써 남아 있는 전송부분(나머지)과 같은 채널의 채널 인터리브 크기보다 더 작은 데이타가 전송되었는지를 결정한다. 만약 채널 인터리브 크기보다 작은 데이타가 채널을 통해 전송된다면, 채널 인터리브제어(310)는 버스를 더욱 잘 이용하기 위해 제1채널의 전송이 완결되자 마자 다른 채널이 그 전송을 실행하도록 허용한다. 또한 제1채널이 전송을 완결한 후 데이타 전송을 요구하는 또다른 채널이 없을 경우 채널 인터리브 제어(310)는 그 경우가 어떠하든 제1채널로 하여금 전송을 계속하고 또다른 요구에 응답하도록 허용한다. 채널 인터리브 제어(310)는 이론상 각 채널에 대해 채널 인터리브 크기, 현행 전송계수 및 충 전송크기에 관한 정보를 처리하는 처리기가 될 수 있다.
제 4 도를 참조하면, 채널 인터리빙에 관한 독특한 회로구성의 동작을 예시적인 전송동작을 통해 설명한다. 먼저, DMA 전송은 채널 1을 통해 100바이트의 데이타를 요구하며, 이것은 프로그램되어 32-바이트 버스트까지 지원하는 호스트상에 500바이트의 채널 인터리브 크기를 갖는다. 채널 인터리브 채널은 다른 데이타가 동일 버스를 통해 전송되는 것을 허용되기 전에 전송되는 데이타를 언급하는 것에 주목해야 한다. 전송은 먼저 기억장치(400)로부터 A버스(460)를 통해 이중-포트 기억장치(420)로 그리고 이중-포트 메모리(420)로부터 B버스(470)를 통해 요구되는 주변장치(450)로 진행한다. 채널 인터리브 제어(410)는 채널 1에 관련해서 현재 500바이트인 채널 인터리브 크기 현재 100바이트인 충 전송계수, 및 현재 32바이트인 버스트 크기를 판독함으로써 어떻게 전송을 슬라이스 할 것인가를 결정한다.
따라서, 15분리 32-바이트 버스트 내 500-바이트 슬라이스 더하기 하나의 16-바이트 버스트 및 하나의 4-바이트 전송이 이중-포트 메모리(420)로 기록되며, 한편 채널 순서기(430)은 이 슬라이스 데이타에 해당하는 소오스 채널로써 "채널 1"을 기록한다.
채널 1이 그의 500바이트의 채널 인터러브 크기를 위반하는 것 없이 가능한 데이타의 가장 큰 슬라이스를 기록한 후, 다른 채널이 A버스를 이용해서 데이타를 전송하도록 허용한다. 예를 들어, 만약 채널 7를 통한 DMA 전송이 A버스(460)를 이용해서 허용된다면, 채널 7을 통한 전송이 이 지정에서 인터리브될 수 있다. 컴퓨터 시스템은 DMA 전송을 높이기 위해 다중 버퍼링 아키텍쳐(제 4 도에 도시 안됨)를 가짐으로서 또다른 DMA 채널은 상이한 버퍼링 아키텍쳐를 이용해서 전송하도록 요구할 수 있다. 그러나, 본 발명의 동작을 특별히 설명하기 위한 목적에서 모든 채널이 DMA 젼송을 얻기 위해 동일 회로 아키텍쳐를 이용한다고 가정한다. A버스(460)가 채널 7에 주어진 후, A버스(460)에 대한 채널 1의 요구가 이 지점에 주어진다고 가정하면 채널 1에 대한 전송은 채널 7이 개별 채널 인터리브 크기에 도달할때까지 중지된다. 채널 1에 대한 전송이 중지된 후, 채널 인터리브 제어(410)는 채널 1의 전송 매개 변수, 즉 채널 인터리브 크기, 총 전송크기 및 현행 전송 계수를 유지하는 것을 계속함으로써 채널 1은 채널 7의 인터리빙에 의해 영향받지 않는 그의 전송을 다시 차례대로 시작할 수 있다.
채널 7을 통한 데이타 전송도 상이한 채널 인터리브 크기, 총 전송크기 및 버스트 크기를 갖도록 프로그램되어 채널 7에 대한 데이타 "슬라이스"의 크기가 채널 1과 상이한 점을 제외하고 채널 1과 마찬가지로 진행한다. 채널 7의 슬라이스가 기억장치(400)로부터 이중-포트 기억장치(420)트 기록될때 채널 순서기(430)은 이중-포트 기억장치(420)로 기억되는 데이타의 슬라이스에 해당하는 소오스 채널로서 "채널 7"을 기록한다. 만약 전송의 다음 슬라이스가 채널 7로부터 비롯되면, 그후 채널 7은 채널 순서기(430)내 소오스 채널로써 다시 기록된다.
채널 7이 기억장치(400)으로부터 이중-포트 기억장치(420)으로 그 전송을 완결하거나, 채널 인터리브 크기에서 허용도는 데이타 전송을 적어도 부분적으로 완결한 후, A버스(460)는 어떤 채널이 주어진 요구를 취하든지 관계없이 프리한다. 채널 1이 그의 주어진 요구를 취한다고 가정하면 채널 1은 메모리(400)로부터 이중-포트 메모리(420)으로 데이타 전송을 시작할 수 있다. 데이타의 또다른 슬라이스는 이중-포트 기억장치(420)로 기억되며, 한편 채널 순서기(430)는 소오스 채널로서 "채널 1"을 기록한다. 제 6 도는 이중-포트 메모리(620) 및 채널 순서기(621)의 현재 상태를 도시한다. 개시가 되면서 기록 포인터(625) 및 판독 포인터(621)은 먼저 이중-포트 기억장치(620)에의 제1위치에서 정열되며, 소오스 채널 포인터(631) 및 종착 채널 포인터(635)도 역시 채널 순서기(630)의 제1위치에서 정열된다.
제 6 도에서 채널 1은 위치(689)와 시작하는 이중-포트 기억장치(620)의 위치로 500바이트의 제 2 슬라이스를 기록함으로써 그의 요구된 총 전송계수를 계속하며, 만약 또다른 채널이 채널 1의 인터리브 크기에 도달한 후 버스를 이용하는 것이 허락되면 그의 전송을 중지한다. 만약 아무런 인터리브가 발생하지 않으면, 채널 1은 남아 있는 데이타를 계속해서 이중-포트 기억장치(620)로 기억시키며, 한편, 채널 순서기(630)은 각 슬라이스에 동시에 자원 채널으로서 "채널 1"을 레코딩한다.
제 6 도에서 판독 포인터(621)는 이중-포트 메모리(620)에 접속된 것이 표시된다. 판독 포인터(621) 및 기록 포인터(625)는 서로 각각 독립적으로 동작하므로 이중-포트 기억장치(620)는 그의 이중 기록 및 판독 포인터 메카니즘을 통해 동시에 기록되고 판독될 수 있다. 이중-포트 기억장치(620)내의 데이타가 판독될때는 판독 포인터(621)가 이중-포트 기억장치(620)을 따라 이동함에 따라 데이타는 판독된다. 데이타의 종착치는 채널 순서기(630)에 접속된 종착 채널 포인터(635)에 의해 시작된다. 따라서, 데이타는 채널에 대한 채널 인터리브 크기가 위반되기 전에 그의 종착 채널을 통해 이중-포트 기억장치(620)로부터 판독된다. 종착 채널 포인터(635)는 채널 순서기(630)의 다음 위치로 증가되며, 이것은 판독 포인터(621)로부터 이중-포트 메모리(620)으로부터 판독될 데이타의 종착 채널을 가르킨다. 이중-포트 기억장치(620)으로부터 판독될 데이타의 종착 채널을 가리킨다. 이중-포트 기억장치(620)의 기록연산에서 설명된 바와 같이 이중-포트 기억창치(620)의 판독 동작도 역시 다중 채널을 지원하기 위해 인터리브될 수 있다. 또한, 일단 총 전송계수가 이중-포트 메모리(620)을 벗어나 판독 데이타에서 이루어지면, 비록 남아있는 전송이 그의 인터리브 크기보다 작더라도 또 다른 채널이 이중-포트 기억장치(620)로부터 판독되는 것이 허용된다. 따라서, 남아있는 데이타가 전송된 후 전송될 데이타가 더 이상 없을때 나머지 채널을 대기시킴없이 효과적으로 버스를 이용할 수 있다. 현재 이중-포트 기억장치(620)은 제 5 도에 도시되는 바와 같이 두개의 이중-포트-억세스 기억장치에 의해 구현된다.
지금까지 채널-인터리빙 DMA 동작을 지원하는 바람직한 실시예로서 본 회로구성을 설명했지만, 당업자라면 이러한 회로구성이 다른 다중-디바이스 전송 동작에 손쉽게 적용될 수 있음을 알 것이다. 예를 들어, 공통 전송자원을 통한 CPU와 다수의 장치간의 데이타 전송에 대해서 본 회로 구성은 각 디바이스의 전송 순서를 계속 유지하면서 독립적인 판독 및 기록 연산을 제공할 수 있다. 이러한 회로 구성을 이용해서 전원 자원은 효과적으로 이용될 수 있다. 동작중에 각 디바이스에 대한 정보는 이중-포트 기억장치에 기억되며, 한편 디바이스의 식별은 순서기에 등록된다. 채널 인터리브 메카니즘과 마찬가지로, 데이타 전송 계수는 각 디바이스에 대해 데이타 흐름의 상태를 모니터하도록 유지될 수 있다 "디바이스 당 하나의 버퍼"접근과 비교해서, 본 회로구성은 모든 개별 버퍼에 의해 요구되는 실리콘 영역을 소비하는 것없이 더 높은대역-폭 및 동작의 연속을 얻을 수 있다.
제 1 도는 DMA 제어기를 도시하며,
제 2 도는 DMA 제어모듈을 갖는 컴퓨터 시스템의 블록 다이어그램을 표시하며,
제 3 도는 본 발명의 가르침을 채용한 다중 인터리빙 DMA 채널을 지원하는 회로구성을 도시하며,
제 4 도는 본 발명의 가르침을 채용한 회로구성을 도시하며,
제 5 도는 바람직한 실시예의 회로구성을 도시하며,
제 6 도는 예시적인 기록연산에서 회로구성을 도시하며,
제 7 도는 채널 인터리빙 과정의 순서를 도시한다.

Claims (11)

  1. 소정의 채널 인터리브 크기를 각각 갖추고, 전송 자원을 이용하는 복수의 DMA 채널에서 데이타를 전송하는 방법에 있어서, 상기 전송 자원을 이용하므로서 데이타의 제 1 넘버를 전송하도록 제1DMA 채널을 제공하는 단계 ; 상기 제 1 넘버를 상기 제1DMA 채널의 제 1 소정의 채널 인터리브 크기와 비교하는 단계 ; 상기 제 1 넘버가상기 제 1 소정의 채널 인터리브 크기 이하이면 상기 전송 자원을 이용하여 상기 제 1 채널을 통해서 데이타의 상기 제 1 넘버를 전송하는 단계 ; 데이타의 상기 제 1 넘버를 상기 제 1 소정의 채널 인터리브 크기보다 크지 않은 복수의 슬라이스로 분할하는 단계 ; 상기 전송자원을 이용하여 상기 제1DMA 채널에 데이타의 각각의 슬라이스를 전송하는 단계 ; 제2DMA 채널이 상기 전송자원을 제어하는지의 여부를 결정하도록 상기 제1DMA 채널에서 데이타의 각각의 슬라이스 이후에 질의하는 단계 ; 상기 제2DMA 채널이 제어를 하지 않으면 상기 전송 자원을 이용하여 상기 제1DMA 채널에서 데이타의 슬라이스를 계속 전송하는 단계 ; 및 상기 전송 자원의 제어를 상기 제2DMA 채널에 전송하고, 이에 따라 상기 제2DMA 채널은 데이타를 상기 전송자원을 통해 전송하고 각각의 슬라이스 후에 질의하는 단계로 구성된것을 특징으로 하는 데이타 전송방법.
  2. 제 1 항에 있어서, 상기 전송 자원을 통해서 상기 제1DMA 채널에 전송된 데이타의 제 2 넘버를 계수하는 단계 ; 상기 제 2 넘버를 상기 제1넘버와 비교함으로서 상기 제1DMA 채널이 데이타의 상기 제1넘버를 완결했는지의 여부를 결정하는 단계 ; 및 상기 제 2 넘버가 상기 제 1넘버와 동일하면, 채널 인터리브 크기가 상기 제1DMA 채널에 도달할때까지 대기하지 않고 상기 전송자원의 제어를 상기 제2DMA 채널에 전송하여 제어가 다음 DMA 채널에 용이하게 전송되는 단계를 추가로 포함하는 것을 특징으로 하는 데이타 전송방법.
  3. 제 2 항에 있어서, 질의하는 단계는, 상기 전송자원을 이용하기 위하여 복수의 DMA 채널로부터 요구를 수신하는 단계: 소정의 우선 계획에 따라 상기 요구들 사이에서 아비트레이트하는 단계: 및 상기 제1DMA 채널에서 데이타의 상기 슬라이스가 전송된후 가장 높은 우선을 갖는 요구에 대하여 상기 전송자원의 제어를 부여하는 단계로 구성된 것을 특징으로 하는 데이타 전송방법.
  4. 제 2 항에 있어서, 상기 제1DMA 채널에서 전송의 각각의 슬라이스 후에 상기 질의하는 단계를 억제하는 단계 ; 그리고 상기 전송자원의 제어를 상기 제2DMA 채널에 전송하지 않고 상기 제1DMA 채널에 남아있는 슬라이스를 계속 전송하는 단계를 추가로 포함하는 것을 특징으로 하는 데이타 전송방법.
  5. 제 2 항에 있어서, 상기 제1DMA 채널이 상기 전송자원의 제어를 갖추고 있지 않고, 그 전송을 완결할 수 없으면, 상기 제어를 다음 DMA 채널에 전송하는 단계를 추가로 포함하는 것을 특징으로 하는 데이타 전송방법
  6. 전송자원을 통해서 각각이 소정의 채널 인터리브 크기를 갖춘 복수의 DMA 채널 채널에서 전송데이타를 인터리브하는 장치에 있어서, 제1채널에 대해서 전송되는 데이타의 총 넘버인 총 전송계수를 상기 제1채널로부터 수신하기 위해 상기 전송 자원에 접속된 수신수단 ; 상기 총 전송계수가 제 1 채널의 상기 소정의 채널 인터리브 크기보다 큰지의 여부를 결정하기 위해 상기 수신수단에 접속된 제어수단 ; 상기 제1 채널로부터, 상기 총 전송계수가 상기 소정의 채널 인터리브 크기보다 크면 상기 제 1 채널에 대해서 상기소정의 채널 인터리브 크기 이하인 복수의 슬라이스 내로 상기 데이타를 슬라이스하기 위해 상기 제어수단에 접속되는 데이타 슬라이스 수단 ; 상기 제 1 채널에서 상기 복수의 슬라이스를 전송하는 전송수단 ; 상기 전송자원을 통해서 각각의 상기 DMA 채널에 대해서 이미 전송된 데이타 넘버인 현행 전송계수를 각각의 상기 DMA 채널에 대해서 유지하기 위해 상기 전송수단에 접속된 제 1 계수 수단 ; 상기 제 1 채널로 부터 슬라이스가 전송된후 상기 제 2 채널이 상기 전송자원을 제어하는지를 결정하고, 만약 그렇다면 상기 전송수단을 상기 제 2 채널에 접속시키기 위해 상기 제 1 계수수단에 접속된 질의 수단 ; 및 상기 제 1 채널에 대해 상기 총 전송계수가 상기 제1채널에 대한 상기 현행전송계수와 동일한지의 여부를 결정하고, 만일 동일하다면 상기 전송자원을 상기 제 2 채널에 접속함으로써 모든 데이타가 이미 전송되었을때 상기 제 2 채널은 상기 제 1 채널이 그의 채널인터리브 크기를 종료하도록 대기할 필요가 없는 상기 전송수단에 접속된 제 2 계수수단으로 구성된 것을 특징으로 하는 전송 데이타를 인터리브하는 장치.
  7. 제6항에 있어서, 소정의 우선 계획에 따라 상기 DMA 채널들중의 어느 하나가 상기 전송자원의 제어를 획득하는 것을 결정하는 아비트레이트 수단 ; 및 상기 아비트레이션 수단이 동일한 DMA 채널이 상기 전송자원을 계속제어하도록 허용 하는 것을 억제 하는 아비트레이트 억제수단을 추가로 포함하는 것을 특징으로 하는 데이타를 인터리브하는 장치.
  8. 제7항에 있어서, 만약 상기 전송자원을 제어하는 제1DMA 채널이 소정 주기 시간이 지난 후 그 동작을 완결할 수 없을 경우 상기 전송 자원의 제어를 제2DMA 채널에 전송하는 수단을 추가로 포함하는 것을 특징으로 하는 데이타를 인터리브하는 장치.
  9. 제1DMA 채널이 전송자원을 통해 데이타의 제 1 넘버를 전송하는 것을 대기하고, 각각이 소정의 채널 인터리브 크기를 갖춘 다수의 DMA 채널에서 전송자원을 이용하여 데이타를 전송하는 장치에 있어서, 상기 제 1 넘버가 상기 소정의 제 1 채널 인터리브 크기보다 작거나 같은가를 결정하며, 만약 그렇다면 상기 전송자원을 이용해서 상기 제 1 채널을 통해 데이타의 상기 제 1 넘버를 전송하기 위해 상기 제1DMA 채널의 소정의 제 1 채널 인터리브 크기를 상기 제 1 넘버와 비교하는 비교수단 ; 각각이 소정의 상기 제 1 채널 인터러브 크기보다 더 크지 않은 다수의 슬라이스로 데이타의 상기 제 1 넘버를 분할하는 데이타 분할 수단 ; 상기 전송자원을 이용해서 상기 제1lDMA 채널의 데이타의 각 슬라이스를 전송하는 데이타 전송수단, 제2DMA 채널이 상기 전송자원을 제어하는가를 결정하며, 만약 그렇다면 상기 전송자원을 이용해서 상기 제1DMA 채널에서 데이타의 슬라이스를 전송하기 위해 상기 제1DMA 채널에서 데이타의 각 슬라이스 후에 질의하는 질의 수단 ; 및 상기 제2DMA 채널로의 상기 전송자원의 제어를 해제함으로써 상기 제2DMA 채널이 상기 전송자원을 통해 그의 데이타를 전송해서 각 슬라이스 후에 질의하는 제어수단으로 구성되는 것을 특징으로 하는 데이타 전송장치.
  10. 제 9 항에 있어서, 상기 전송자원을 통동해 상기 제1DMA 채널에서 전송숭되는 데이타의 제 2넘버를 계수하는 계수수단 ; 상기 제1DMA 채널이 상기 제 2 넘버를 제1 넘버와 비교함으로써 데이타의 상기 제 1 넘버를 완결하는지를 결정하는 수단 ; 제어가 손쉽게 다음 요구 DMA 채널로 전송되도록 만약 상기 제 2 넘버가 제 1 넘버가 동일하다면 상기 제1DMA 채널에 채널 인터리브 크기에 도달할때까지 대기없이 상기 전송저원의 제어를 해제하는 수단을 추가로 포함하는 것을 특징으로 하는 데이타 전송장치.
  11. 제 10 항에 있어서, 상기 DMA채널중 어떤것이 소정의 우선 계획에 기초한 상기 전송자원의 제어를 획득하는가를 결정하는 아비트래이트 수단을 포함하는 것을 특징으로 하는 데이타 전송장치.
KR1019920026619A 1991-12-30 1992-12-30 다중-채널 직접메모리 억세스(dma)동작을 인터리브하기 위한 장치 및 그 방법 KR960006503B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US814,766 1991-12-30
US07/814,766 US5388237A (en) 1991-12-30 1991-12-30 Method of and apparatus for interleaving multiple-channel DMA operations

Publications (2)

Publication Number Publication Date
KR930014074A KR930014074A (ko) 1993-07-22
KR960006503B1 true KR960006503B1 (ko) 1996-05-16

Family

ID=25215954

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920026619A KR960006503B1 (ko) 1991-12-30 1992-12-30 다중-채널 직접메모리 억세스(dma)동작을 인터리브하기 위한 장치 및 그 방법

Country Status (5)

Country Link
US (1) US5388237A (ko)
EP (1) EP0550164B1 (ko)
JP (1) JP3271125B2 (ko)
KR (1) KR960006503B1 (ko)
DE (1) DE69225463T2 (ko)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845329A (en) * 1993-01-29 1998-12-01 Sanyo Electric Co., Ltd. Parallel computer
US5808487A (en) * 1994-11-30 1998-09-15 Hitachi Micro Systems, Inc. Multi-directional small signal transceiver/repeater
JPH08278916A (ja) * 1994-11-30 1996-10-22 Hitachi Ltd マルチチャネルメモリシステム、転送情報同期化方法及び信号転送回路
US5630059A (en) * 1995-02-06 1997-05-13 International Business Machines Corporation Expedited message transfer in a multi-nodal data processing system
US5864712A (en) * 1995-03-17 1999-01-26 Lsi Logic Corporation Method and apparatus for controlling (N+I) I/O channels with (N) data managers in a homogenous software programmable environment
DE69614291T2 (de) * 1995-03-17 2001-12-06 Lsi Logic Corp (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
US5631853A (en) * 1995-11-13 1997-05-20 Motorola Inc. Flexible configuration of timebases in a timer system
US5870631A (en) * 1995-12-15 1999-02-09 International Business Machines Corporation System for operating system software providing input buffer for receiving variable-length bit stream with a header containing synchronization data recognized by universal serial controller
US5870627A (en) * 1995-12-20 1999-02-09 Cirrus Logic, Inc. System for managing direct memory access transfer in a multi-channel system using circular descriptor queue, descriptor FIFO, and receive status queue
US5828901A (en) * 1995-12-21 1998-10-27 Cirrus Logic, Inc. Method and apparatus for placing multiple frames of data in a buffer in a direct memory access transfer
US6041345A (en) * 1996-03-08 2000-03-21 Microsoft Corporation Active stream format for holding multiple media streams
US5812877A (en) * 1996-03-15 1998-09-22 Adaptec, Inc. I/O command block chain structure in a memory
US5758187A (en) * 1996-03-15 1998-05-26 Adaptec, Inc. Method for enhancing performance of a RAID 1 read operation using a pair of I/O command blocks in a chain structure
US5768621A (en) * 1996-03-15 1998-06-16 Adaptec, Inc. Chain manager for use in executing a chain of I/O command blocks
US5797034A (en) * 1996-03-15 1998-08-18 Adaptec, Inc. Method for specifying execution of only one of a pair of I/O command blocks in a chain structure
US5778194A (en) * 1996-04-08 1998-07-07 Symbios, Inc. Method and apparatus for measuring performance of a computer bus
JPH1040211A (ja) * 1996-04-30 1998-02-13 Texas Instr Inc <Ti> パケット化されたデータ通信インタフェース機器内での直接メモリアクセス優先順位を割り当てるための方法ならびにdmaチャンネル回路
US5852608A (en) * 1996-06-06 1998-12-22 Sun Microsystems, Inc. Structure and method for bi-directional data transfer between asynchronous clock domains
JP3206458B2 (ja) * 1996-10-18 2001-09-10 日本電気株式会社 Dma転送方式
US6167486A (en) * 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US6145027A (en) * 1997-07-09 2000-11-07 Texas Instruments Incorporated DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements
US6032204A (en) * 1998-03-09 2000-02-29 Advanced Micro Devices, Inc. Microcontroller with a synchronous serial interface and a two-channel DMA unit configured together for providing DMA requests to the first and second DMA channel
US6199121B1 (en) * 1998-08-07 2001-03-06 Oak Technology, Inc. High speed dynamic chaining of DMA operations without suspending a DMA controller or incurring race conditions
US6275877B1 (en) * 1998-10-27 2001-08-14 James Duda Memory access controller
US20060034275A1 (en) 2000-05-03 2006-02-16 At&T Laboratories-Cambridge Ltd. Data transfer, synchronising applications, and low latency networks
US6708254B2 (en) 1999-11-10 2004-03-16 Nec Electronics America, Inc. Parallel access virtual channel memory system
US6816923B1 (en) * 2000-07-31 2004-11-09 Webtv Networks, Inc. Arbitrating and servicing polychronous data requests in direct memory access
US6795875B2 (en) * 2000-07-31 2004-09-21 Microsoft Corporation Arbitrating and servicing polychronous data requests in direct memory access
US6785284B1 (en) 2000-08-10 2004-08-31 Infineon Technologies North America Corp. Interleavement for transport of frames and cells
US7054986B2 (en) * 2001-03-30 2006-05-30 Nokia Corporation Programmable CPU/interface buffer structure using dual port RAM
US20020184381A1 (en) * 2001-05-30 2002-12-05 Celox Networks, Inc. Method and apparatus for dynamically controlling data flow on a bi-directional data bus
US20050038946A1 (en) * 2003-08-12 2005-02-17 Tadpole Computer, Inc. System and method using a high speed interface in a system having co-processors
JP4401788B2 (ja) * 2004-01-06 2010-01-20 株式会社日立製作所 ストレージ制御装置
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
US7577772B2 (en) * 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
US7185123B2 (en) * 2004-09-15 2007-02-27 Qualcomm Incorporated Method and apparatus for allocating bandwidth on a transmit channel of a bus
US20060064531A1 (en) * 2004-09-23 2006-03-23 Alston Jerald K Method and system for optimizing data transfer in networks
US7392437B2 (en) * 2005-01-20 2008-06-24 Qlogic, Corporation Method and system for testing host bus adapters
US7281077B2 (en) * 2005-04-06 2007-10-09 Qlogic, Corporation Elastic buffer module for PCI express devices
US7916728B1 (en) 2007-09-28 2011-03-29 F5 Networks, Inc. Lockless atomic table update
TWI343525B (en) * 2007-10-04 2011-06-11 Novatek Microelectronics Corp Method for data storage and access of memory and memory using the same
JP4516999B2 (ja) * 2008-03-28 2010-08-04 富士通株式会社 データ通信制御装置、データ通信制御方法およびそのためのプログラム
JP4706720B2 (ja) * 2008-05-15 2011-06-22 富士ゼロックス株式会社 Dma制御システム、印刷装置、および転送指示プログラム
US8880696B1 (en) * 2009-01-16 2014-11-04 F5 Networks, Inc. Methods for sharing bandwidth across a packetized bus and systems thereof
US8880632B1 (en) 2009-01-16 2014-11-04 F5 Networks, Inc. Method and apparatus for performing multiple DMA channel based network quality of service
US8103809B1 (en) 2009-01-16 2012-01-24 F5 Networks, Inc. Network devices with multiple direct memory access channels and methods thereof
US8112491B1 (en) 2009-01-16 2012-02-07 F5 Networks, Inc. Methods and systems for providing direct DMA
US9152483B2 (en) 2009-01-16 2015-10-06 F5 Networks, Inc. Network devices with multiple fully isolated and independently resettable direct memory access channels and methods thereof
US9313047B2 (en) 2009-11-06 2016-04-12 F5 Networks, Inc. Handling high throughput and low latency network data packets in a traffic management device
US10135831B2 (en) 2011-01-28 2018-11-20 F5 Networks, Inc. System and method for combining an access control system with a traffic management system
US9767058B2 (en) * 2011-11-17 2017-09-19 Futurewei Technologies, Inc. Method and apparatus for scalable low latency solid state drive interface
US9036822B1 (en) 2012-02-15 2015-05-19 F5 Networks, Inc. Methods for managing user information and devices thereof
US10033837B1 (en) 2012-09-29 2018-07-24 F5 Networks, Inc. System and method for utilizing a data reducing module for dictionary compression of encoded data
US9270602B1 (en) 2012-12-31 2016-02-23 F5 Networks, Inc. Transmit rate pacing of large network traffic bursts to reduce jitter, buffer overrun, wasted bandwidth, and retransmissions
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9864606B2 (en) 2013-09-05 2018-01-09 F5 Networks, Inc. Methods for configurable hardware logic device reloading and devices thereof
US9635024B2 (en) 2013-12-16 2017-04-25 F5 Networks, Inc. Methods for facilitating improved user authentication using persistent data and devices thereof
US10015143B1 (en) 2014-06-05 2018-07-03 F5 Networks, Inc. Methods for securing one or more license entitlement grants and devices thereof
JP2016051231A (ja) * 2014-08-29 2016-04-11 キヤノン株式会社 電子機器
KR20170024714A (ko) 2015-08-26 2017-03-08 에스케이하이닉스 주식회사 반도체 시스템 및 그의 동작 방법
US10445267B2 (en) 2016-06-29 2019-10-15 Nxp Usa, Inc. Direct memory access (DMA) unit with address alignment
US10972453B1 (en) 2017-05-03 2021-04-06 F5 Networks, Inc. Methods for token refreshment based on single sign-on (SSO) for federated identity environments and devices thereof
US11855898B1 (en) 2018-03-14 2023-12-26 F5, Inc. Methods for traffic dependent direct memory access optimization and devices thereof
US11537716B1 (en) 2018-11-13 2022-12-27 F5, Inc. Methods for detecting changes to a firmware and devices thereof
CN113360423A (zh) 2020-03-03 2021-09-07 瑞昱半导体股份有限公司 数据储存系统及操作数据储存系统的方法
CN113360432B (zh) 2020-03-03 2024-03-12 瑞昱半导体股份有限公司 数据传输系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4403282A (en) * 1978-01-23 1983-09-06 Data General Corporation Data processing system using a high speed data channel for providing direct memory access for block data transfers
US4371932A (en) * 1979-07-30 1983-02-01 International Business Machines Corp. I/O Controller for transferring data between a host processor and multiple I/O units
US4423480A (en) * 1981-03-06 1983-12-27 International Business Machines Corporation Buffered peripheral system with priority queue and preparation for signal transfer in overlapped operations
US4571671A (en) * 1983-05-13 1986-02-18 International Business Machines Corporation Data processor having multiple-buffer adapter between a system channel and an input/output bus
US4688166A (en) * 1984-08-03 1987-08-18 Motorola Computer Systems, Inc. Direct memory access controller supporting multiple input/output controllers and memory units
US4922416A (en) * 1984-12-14 1990-05-01 Alcatel Usa, Corp. Interface device end message storing with register and interrupt service registers for directing segmented message transfer between intelligent switch and microcomputer
US4744078A (en) * 1985-05-13 1988-05-10 Gould Inc. Multiple path multiplexed host to network data communication system
GB2196762B (en) * 1986-10-27 1990-12-19 Burr Brown Ltd Interleaved access to global memory by high priority source
US4831523A (en) * 1986-10-31 1989-05-16 Bull Hn Information Systems Inc. Multiple DMA controller chip sequencer
US4831520A (en) * 1987-02-24 1989-05-16 Digital Equipment Corporation Bus interface circuit for digital data processor
AU2022188A (en) * 1987-07-30 1989-02-02 Alliant Computer Systems Corporation Parallel processing computer in which memory access priorities are varied
US5016167A (en) * 1987-12-21 1991-05-14 Amdahl Corporation Resource contention deadlock detection and prevention
US4878173A (en) * 1988-05-16 1989-10-31 Data General Corporation Controller burst multiplexor channel interface
US5155854A (en) * 1989-02-03 1992-10-13 Digital Equipment Corporation System for arbitrating communication requests using multi-pass control unit based on availability of system resources
US5261064A (en) * 1989-10-03 1993-11-09 Advanced Micro Devices, Inc. Burst access memory
US5157775A (en) * 1989-12-15 1992-10-20 Eastman Kodak Company Dual port, dual speed image memory access arrangement
US5175825A (en) * 1990-02-02 1992-12-29 Auspex Systems, Inc. High speed, flexible source/destination data burst direct memory access controller

Also Published As

Publication number Publication date
EP0550164A1 (en) 1993-07-07
US5388237A (en) 1995-02-07
EP0550164B1 (en) 1998-05-13
DE69225463D1 (de) 1998-06-18
DE69225463T2 (de) 1998-12-24
JPH06266650A (ja) 1994-09-22
JP3271125B2 (ja) 2002-04-02
KR930014074A (ko) 1993-07-22

Similar Documents

Publication Publication Date Title
KR960006503B1 (ko) 다중-채널 직접메모리 억세스(dma)동작을 인터리브하기 위한 장치 및 그 방법
KR0142175B1 (ko) 다중 채널 디엠에이 동작을 지원하기 위한 회로 아키텍처
US5448702A (en) Adapters with descriptor queue management capability
US5315708A (en) Method and apparatus for transferring data through a staging memory
JP3335172B2 (ja) データ処理システム及びそれに使用するための入出力プロセッサ
US4860244A (en) Buffer system for input/output portion of digital data processing system
US5201053A (en) Dynamic polling of devices for nonsynchronous channel connection
SK31194A3 (en) Multi-media signal processor computer system
EP0524936A1 (en) Data transfer within a data storage subsystem
JPH04233055A (ja) 端末装置サーバアーキテクチャ
US5339449A (en) System and method for reducing storage channels in disk systems
US5901291A (en) Method and apparatus for maintaining message order in multi-user FIFO stacks
US5339442A (en) Improved system of resolving conflicting data processing memory access requests
US5555390A (en) Data storage method and subsystem including a device controller for respecifying an amended start address
US5809333A (en) System for implementing peripheral device bus mastering in desktop PC via hardware state machine for programming DMA controller, generating command signals and receiving completion status
US4878197A (en) Data communication apparatus
US6233628B1 (en) System and method for transferring data using separate pipes for command and data
JP2963696B2 (ja) データ転送制御システム
EP0524945A1 (en) Data storage subsystem
JPH02310649A (ja) 受信フレーム転送方式および通信制御装置
WO1992015054A1 (en) Data transfer between a data storage subsystem and host system
WO1991013397A1 (en) A method and apparatus for transferring data through a staging memory
AU635097B2 (en) System and method for reducing storage channels in disk systems
JPS61264829A (ja) ネツトワ−ク制御装置の割込み制御方式
JPS622349B2 (ko)

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

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee