KR100231897B1 - 디엠에이 채널의 사이즈 데이터를 수신하는 디엠에이 제어회로 - Google Patents
디엠에이 채널의 사이즈 데이터를 수신하는 디엠에이 제어회로 Download PDFInfo
- Publication number
- KR100231897B1 KR100231897B1 KR1019970034996A KR19970034996A KR100231897B1 KR 100231897 B1 KR100231897 B1 KR 100231897B1 KR 1019970034996 A KR1019970034996 A KR 1019970034996A KR 19970034996 A KR19970034996 A KR 19970034996A KR 100231897 B1 KR100231897 B1 KR 100231897B1
- Authority
- KR
- South Korea
- Prior art keywords
- dma
- data
- bus
- size
- request
- Prior art date
Links
Images
Classifications
-
- 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
본 발명의 DMA 제어회로는 DMA 요구에 따라 사이즈 데이터를 수신하게 된다. 제1사이즈 데이터가 수신되면 제1양의 데이터(예컨대 1-워드)가 DMA 요구에 대한 DMA 제어기를 통해 전송된다. 반면에, 제2사이즈 데이터가 수신되면 제2양의 데이터(예컨대 2-워드)가 상기 DMA 요구에 대해 DMA 제어기를 통해 전송된다. 그 수신의 경우 DMA 요구가 서비스될 수 없으면 DMA 요구는 차후의 서비스를 위해 DMA 제어부에 저장된다. DMA 요구에 대한 사이즈 데이터가 저장됨에 따라 데이터의 전송사이즈는 상기 저장된 DMA 요구가 서비스되는 경우에 알 수 있게 된다. 그 사이즈 데이터의 사용에 의해 단일의 DMA 채널이 다양한 사이즈의 데이터전송을 지원할 수 있게 된다. 소정 실시예의 경우에 사이즈 데이터는 사이즈 데이터에 관련된 데이터가 DMA 제어기를 통해 전송된 후의 적정한 양으로 DMA 현행 어드레스 레지스터를 증가시키기 위해 사용된다.
Description
본 발명은 DMA(Direct Memory Access) 제어회로에 관한 것이다.
제1도는 하나의 가능한 멀티미디어 시스템을 나타낸다. 비디오 데이터는 카메라(1)로부터 비디오 디코더/인터페이스(2)와 DMA 제어기(3)를 통해 메모리 블럭(5)으로 전달된다. 오디오 데이터는 마이크로폰(6)으로부터 오디오 디코더/인터페이스(7)와 2-채널 DMA 제어기(3) 및 버스(4)를 통해 메모리 블럭(5)으로 전달된다. 프로세서(8)는 예컨대 메모리 블럭(5)에 저장된 데이터를 처리하게 된다. 상기 카메라(1)와 비디오 디코더/인터페이스는 공동으로 I/O 장치(1A)를 구성하게 된다. 그와 유사하게, 상기 마이크로폰(6)과 오디오 디코더/인터페이스(7)는 I/O 장치(6A)를 구성하게 된다.
오디오 데이터가 오디오 디코더/인터페이스(7)로부터 DMA 제어기(3)로 전달되는 예를 고려한다. 상기 오디오 디코더/인터페이스(7)는 DMA 요구라인(9)을 경유하여 상기 DMA 제어기(3)로 DM 요구신호를 발생하게 된다. 상기 DMA 제어기(3)가 상기 오디오 디코더/인터페이스(7)로부터 데이터의 수신이 가능한 경우 상기 DMA 제어기(3)는 DMA 인식라인(10)상에 DMA 인식신호를 회송하게 된다. 그 때, 상기 오디오 디코더/인터페이스(7)는 데이터 라인(11)상에 데이터를 전송하게 된다. 상기 DMA 제어기가 데이터 라인(11)으로부터 8개의 연속적인 워드 데이터를 수신하여 래치하는 경우를 가정한다. 그 데이터 전송 양은 오디오 데이터에 사용되는 이 채널에 대해 적절하게 될 것이다.
1-프레임의 비디오 데이터가 비디오 디코더/인터페이스(2)로부터 DMA 제어기(3)로 전달되는 예를 더 고려한다. 상기 비디오 디코더/인터페이스(2)는 DMA 요구라인(12)을 경유하여 DMA 제어기(3)로 DMA 요구신호를 발생하게 된다. 상기 DMA 제어기(3)가 비디오 디코더/인터페이스(2)로부터 데이터의 수신이 가능한 경우 상기 DMA 제어기(3)는 DMA 인식라인(13)상에 DMA 인식신호를 회송하게 된다. 그 때, 상기 비디오 디코더/인터페이스(2)가 데이터 라인(14)을 통해 DMA 제어기(3)로 8개의 일련의 워드 데이터를 전송하게 된다.
그러나, 비디오 데이터 경로는 오디오 데이터 경로에 비해 보다 높은 대역폭조건을 갖게 된다. 비디오 디코더/인터페이스(2)가 DMA 제어기(3)로 전달할 추가적인 데이터를 여전히 갖고 있다면 상기 비디오 디코더/인터페이스(2)는 다른 DMA 요구를 발생하고서 DMA 제어기(3)에 대해 다른 DMA 인식의 회신을 대기하고 나서 DMA 제어기(3)로 추가적인 데이터를 전송해야 된다. 따라서, 소망하는 데이터 양을 전송하기 위해서는 장시간이 소모될 뿐만 아니라 DMA 요구/ DMA 인식 시권스들이 필요하게 된다. DMA 제어기는 DMA 채널이 I/O 장치에 대해 또는 그 I/O 장치로부터 대량의 데이터나 소량의 데이터를 전송할 수 있어야 함이 요구되지만, 어느 경우에도 다중의 DMA 요구/ DMA 인식 시권스를 포함하는 전송의 형식은 아니다.
본 발명의 DMA 제어기는 DMA 요구에 대응하는 사이즈 데이터를 수신하게 된다. 제1의 사이즈 데이터가 수신되면 그 DMA 요구에 대해 DMA 제어기를 통해 제1양의 데이터(예컨대 1-워드)가 전송된다. 그에 대해, 제2의 사이즈 데이터가 수신되면, 그 요구에 대해 DMA 제어기를 통해 제2양의 데이터(예컨대, 2-워드)가 전송된다. DMA 요구가 수신된 경우에 실행될 수 없으면 그 DMA 요구는 차후의 실행을 위해 DMA 제어기내에 저장된다. 그 DMA 요구의 사이즈 데이터가 저장되어 상기 저장된 DMA 요구가 실행되는 경우 데이터의 전송 사이즈가 알려지게 된다. 이러한 사이즈 데이터의 사용에 의해 단일의 DMA 채널이 다양한 사이즈의 데이터 전송을 지원할 수 있게 된다. 소정의 실시예에서 사이즈 데이터는 데이터(사이즈 데이터에 의해 나타내어지는 데이터의 양)가 DMA 제어기를 통해 전송된 후 적정한 양으로 DMA 현재 어드레스 레지스터를 증가시키기 위해 사용된다.
본 발명의 일실시예에 따른 DMA 제어기는 8개의 64-비트 DMA 채널까지 지원하면서 고속(대략 100MHz)의 64-비트 스플리트 트랜잭션(Split Transaction)버스로 인터페이스하게 된다. I/O 장치 어드레스버스는 DMA 제어기를 통해 I/O 장치의 구성 레지스터(Configuration Registers)에 대한 억세스를 지원하기 위해 제공된다. 상기 DMA 제어기는 프로세서가 그 DMA 제어기의 현행 어드레스 레지스터를 재초기화하기 위해 그 DMA 제어기에 의해 인터럽트되는 회수를 저감시키는 채널을 지원할 수 있게 된다. 또, 소정의 실시예에서 DMA 제어기는 각 DMA 채널에 대해 독립적인 개시 어드레스 레지스터를 갖지 않는 현행 어드레스 레지스터와 정지 어드레스 레지스터를 갖게 된다.
이하, 첨부한 도면을 참조로 하여 본 발명의 바람직한 실시예를 상술하며, 도면 전체를 통하여 동일한 부분에는 동일한 도면 부호를 사용하기로 한다.
제1도는 고대역폭 I/0 장치(1A)와 저대역폭 I/0 장치(6A)를 버스(4)에 결합하는 DMA 제어기를 나타내는 도면.
제2도는 본 발명의 일실시예에 따른 시스템의 개략적인 블록도.
제3도는 본 발명의 특정 실시예에 따른 DMA 제어기의 개략적인 블록도.
제4도는 DMA 제어기의 특정 실시예의 코덱정보 FIFO 와 FIFO_OUT FIFO의 작용을 설명하는 도면.
제5(a)도는 DMA 요구에 응답하여 DMA 제어기로부터 I/O 장치로의 데이터전송을 설명하는 파형도.
제5(b)도는 DMA 요구에 응답하여 DMA 제어기로부터 I/O 장치로의 데이터전송을 설명하는 파형도.
제5(c)도는 DMA 제어기를 통한 I/O 장치의 구성 레지스터(Configuration Register)내로의 데이터 기록을 설명하는 파형도.
제5(d)도는 DMA 제어기를 통한 I/O 장치의 구성 레지스터로부터 데이터 독취를 설명하는 파형도.
제6(a)도는 FBUS의 장치로부터 DMA 제어기로의 데이터 전송을 설명하는 파형도.
제6(b)도는 DMA 제어기로부터 FBUS의 장치로 데이터 전송을 설명하는 파형도.
제7(a)도 내지 제7(g)도는 제3도에 도시된 DMA 제어기의 다수의 블록의 작용을 설명하는 상태도로서, 개시의 목적을 위해 동작설명이 상태도의 설명을 명확하게 하기 위해 개략화된 도면.
제8도는 제3도에 도시된 DMA 제어기의 코덱중재기 상태 머신블럭의 실시예의 작용을 설명하는 DMA 테이블도.
제9도는 제3도에 도시된 DMA 제어기의 요구 레지스터를 나타내는 도면.
제10도는 제3도에 도시된 DMA 제어기의 멀티플렉서/비교기에 대한 하나의 가능한 구현예를 개략적으로 나타낸 도면.
* 도면의 주요부분에 대한 부호의 설명
101,102 : 제1및 제2I/O 장치 103 : DMA 제어기
105 : 메모리블럭 106 : 프로세서
113 : 데이터 라인 114 : DMA 요구 라인
116 : 사이즈 라인 200 : DMA 제어기
217 : 어드레스발생 블럭 218 : 요구 레지스터
300 : 비교기
제2도는 본 발명의 일실시예에 따른 시스템(100)의 개략도이다. 그 시스템(100)은 제1의 I/O 장치(101)와, 제2의 I/O 장치(102), DMA 제어기(103), 병렬버스(104), 메모리 블럭(105) 및 프로세서(106)를 포함하게 된다. 그 일실시예에서 제1 I/O 장치(101)는 비디오 카메라(107)와 비디오 디코더/인터페이스(108)를 갖추어 구성된다. 그와 유사하게, 그 일실시예에서 제2 I/O 장치(102)는 마이크로폰(109)과 오디오 디코더/인터페이스(110)를 갖추어 구성된다. 비록 상기 실시예에서 각 I/O 장치는 입력전용장치이지만, 각 I/O 장치는 입력전용장치, 출력전용장치 또는 입력 및 출력장치로 될 수 있다. KSO119가 적절한 비디오 엔코더이고, K0122가 적절한 비디오 디코더이며, AD1843이 적절한 오디오 코덱(엔코더/디코더)이다. 소정의 실시예에서 블럭(108,110)의 인터페이스 부분은 DMA 제어기(103)와 동일한 집적회로상에 집적된다. 상기 메모리 블럭(105)은 MCU(메모리제어 유니트)와 SDRAM(Synchronous dynamic rancom access memory)를 포함할 수 있다.
I/O 장치(101)로부터의 데이터가 DMA 제어기(103)를 경유해서 메모리 블럭(105)으로 전송되는 예를 가정한다. I/O 장치(101)는 DMA 요구라인(109)을 DMA 제어기(103)에 DMA 요구를 발생하게 된다. 또한, I/O 장치(101)는 데이터 라인(111)을 경유하여 DMA 제어기에 전송되어지는 데이터 양을 나타내기 위해 사이즈 라인(110)을 경유하여 DMA 제어기에 사이즈 데이터를 인가하게 된다. 도시된 실시예에서는 64-데이터 라인(111)과 8-사이즈 라인(110)이 제공된다. 예컨대 I/O 장치(101)는 데이터 라인(111)을 경유하여 DMA 제어기(103)에 4개의 64-비트 워드 데이터를 전송하여야 하는 경우 사이즈 비트는 4-워드 데이터가 전송되어야 함을 나타내는 디지탈 값(20h)을 전송하게 된다.
DMA 제어기(103)가 I/O 장치(101)로부터 데이터를 수신하도록 준비된 경우 DMA 제어기(103)는 DMA 인식 라인(112)을 경유하여 I/O 장치(101)로 DMA 인식신호를 회송하게 된다. I/O 장치(101)는 DMA 인식신호를 수신하는 경우 DMA 제어기에 4개의 연속적인 64-비트 워드 데이터를 인가하게 된다. 선행적으로 수신한 사이즈 데이터에 의존하여 상기 DMA 제어기(103)는 버스클럭신호의 4개의 연속적인 클럭에서 4-워드 데이터를 포획해야 함을 인식하게 된다.
예컨대 DMA 제어기(103)에 4-워드를 전송함에 비해 I/O 장치(101)가 DMA 제어기(103)에 단지 2개의 64-비트 워드 데이터를 전송해야 하는 경우 I/O 장치(101)는 그 워드 데이터가 전송되어야 함을 나타내는 사이즈 라인상에 디지탈 값(10h)을 인가하게 된다. 따라서, DMA 요구는 제1데이터 양(예컨대 4-워드)의 전송 또는 제2데이터 양(예컨대 2-워드)의 전송을 내포하게 된다. 데이터의 전송 양은 사이즈라 인상의 사이즈 데이터에 의해 지시된다(08h는 1-워드를 나타내고, 10h는 2-워드를 나타내며, 18h는 3-워드를 나타내고, 20h는 4-워드를 나타냄). 라인(109,110,111,112)는 모두 제1버스로서 참조된다. 제1의 DMA 채널은 I/O 장치(101)와 DMA 제어기(103)의 사이에 존재하게 된다.
이어, DMA 제어기(103)는 제2버스(104)를 경유하여 메모리 블럭(105)으로 데이터를 전송하게 된다. 소정 실시예에서 제2버스(104)는 특히 32-어드레스 라인, 64-데이터 라인, 8-사이즈 라인, 10-트랜잭션(Tranjaction)ID 라인(4-요구자 ID 라인과 6-트랜잭션 요구ID 라인), 버스(104)상의 각 장치에 대한 3개의 전용 행선지 ID라인, 버스(104)상의 각 장치에 대한 2개의 전용 허가카운트 라인, 버스(104)상의 각 장치에 대한 하나의 전용 버스요구 라인, 버스(104)상의 각 장치에 대한 하나의 전용 버스허가 라인, 버스(104)상의 각 장치에 대한 하나의 전용 데이터 FIFO 풀(Full), 버스(104)상의 각 장치에 대한 하나의 전용 어드레스 FIFO 풀 및 하나의 클럭라인을 갖추게 된다. 행선지 ID의 하나의 비트는 독출 또는 기록동작에 관련된다.
본 발명의 일실시예에서, DMA 제어기(103)는 버스(104)를 중재함과 더불어 통신을 소망하는 장치(이 경우에는 메모리 블럭(105)를 나타내는 버스(103)에 3-비트행선지 ID를 발생하게 된다. 버스(104)에 대한 버스중재기(도시 생략)는 데이터를 수신하는 메모리 블럭(105)의 능력을 모니터링하기 위해 행선지 ID를 사용하게 된다. 예컨대, 버스중재기는 메모리 블럭(105)내의 데이터 FIFO(First-in-First-out) 버퍼의 상태를 모니터링할 수 있다. 메모리 블럭(105)이 데이터의 수신이 가능한 경우 그 버스중재기는 DMA 제어기에 대한 전용 버스허가 라인을 경유하여 DMA제어기(103)에 버스허가신호를 출력함에 이어 전용의 칩선택라인을 경유하여 메모리 블럭(105)에 칩선택신호를 출력함으로써 DMA 제어기(103)에 대한 버스(104)의 제어를 허가하게 된다.
그 경우, I/O 장치(101)로부터의 데이터는 4개의 연속적인 64-비트 워드로 메모리 블럭(105)에 전송되게 된다. 그러므로, DMA 제어기(103)는 버스중재기가 버스허가신호를 나타내도록 함을 요구하기 위한 다수의 버스사이클을 나타내는 버스중재기에 허가 카운트값을 출력하게 된다. 이 예에서 DMA 제어기(103)는 전용의 버스허가카운트 라인상에 디지탈“11”을 출력하게 된다.
적절한 수의 버스사이클 중에 메모리 블럭(105)이 선택됨과 더불어 DMA 제어기(103)에 대해 버스(104)가 허가되면 DMA 제어기(103)는 버스(104)상에 제1의 64-비트 워드 데이터에 대한 어드레스를 출력하는 한편 버스(104)의 데이터 라인상에 제1의 64-비트 워드 데이터를 출력하게 된다. 10-비트 트랜잭션 ID는 버스(104)의 10-트랜잭션 ID 라인상에 출력되지만, 그 트랜잭션 ID는 그 경우의 전송이 스플리트(Split) 트랜잭션이 아니기 때문에 필요하지 않게 된다. 후속의 연속적인 3개의 버스클럭 사이클에서 후속의 3개의 63-비트 워드 데이터가 버스(104)상으로 출력되어 메모리 블럭(105)으로 로드(Load)된다. 상기 DMA 제어기는 상기 후속적인 3개의 워드에 대한 어드레스를 출력하지는 않게 된다. 메모리 블럭(105)은 인가되는 어드레스에 대응하는 메모리 블럭내의 메모리 위치에 상기한 후속적인 워드 데이터의 로드를 처리하게 된다.
상기 DMA 제어기(103)에 의한 버스(104)상의 어드레스 출력은 제1의 DMA 채널에 대해 DMA 제어기(103)에 위치된 현행 어드레스 레지스터를 사용함에 의해 판정된다. 그 레지스터는 프로세서(106)에 의해 기록 가능하게 된다. 상기 버스(104) 상에 어드레스가 출력되고 4-워드 데이터가 메모리 블럭(105)에 인가된 후 상기 제1의 DMA 채널에 대한 현행 어드레스 레지스터는 트랜잭션의 사이즈에 따라 32만큼 증가됨에 의해 메모리 블럭(105)의 적절한 현행 어드레스 위치에 기록되게 된다.
데이터가 I/O 장치(101)로부터 제1의 DMA 채널을 경유하여 전송 가능하게 됨에 대해 I/O 장치(102)로부터의 데이터는 제2의 DMA 채널을 경유하여 전송 가능하게 된다. 데이터 라인(113), DMA 요구라인(114), DMA 인식라인(115) 및 사이즈 라인(116)은 DMA 제어기(103)를 제2 I/O 장치(102)에 결합하는 제3데이터 버스(제2DMA 채널)의 부분이다.
상기 메모리 블럭(105)으로부터의 데이터는 제1 I/O 장치(101)에도 전송 가능하게 된다(이 경우 데이터 라인(111)은 데이터를 I/O 장치(101)내의 비디오 엔코더에 전송하게 되고 I/O 장치(101)는 카메라보다는 비디오 디스플레이장치를 포함하게 된다). 상기 I/O 장치(101)는 수신을 기대하는 데이터 양을 지시하는 사이즈 라인(101)상의 사이즈 데이터와 더불어 라인(109)상에 DMA 요구를 발생하게 된다. 그에 따라 상기 DMA 제어기(103)는 버스(104)상에서 'posted read'를 실행하게 된다. 상기 DMA 제어기(103)는 우선 버스(104)에 대해 그 요구 라인, 허가카운트 라인 및 행선지 ID 라인을 사용하여 중재하게 되고, 그 DMA 제어기(103)는 버스(104)의 제어가 허가됨과 더불어 메모리 블럭(105)이 소망하는 데이터를 회송 불가능하게 되어도 상기 메모리 블럭(105)은 선택된다. 상기 DMA 제어기(103)는 제1DMA 채널에 대한 현행 어드레스 레지스터를 사용하여 메모리 블럭(105)에 독출요구와 트랜잭션 요구ID를 발생함에 이어 버스(104)의 제어를 철회하게 된다. 상기 DMA 제어기(103)는 데이터가 요구된 DMA 채널에 관련하여 트랜잭션 요구ID를 저장하게 된다.
상기 메모리 블럭(105)은 버스(104)사의 사이즈 데이터와 어드레스를 사용하여 DMA 제어기에 의해 어떠한 데이터가 요구되는지를 판단하게 된다. 상기 메모리 블럭(105)은 상기 DMA 제어기(103)에 요구된 데이터를 회송할 준비가 이루어지는 경우 그 메모리 블럭(105)은 버스를 중재하게 된다. 행선지 ID는 DMA 제어기에 의해 사용되는 요구자 ID이다(독출요구의 부분으로서 DMA 제어기에 의해 메모리 블럭으로 전송되는 트랜잭션 ID의 부분). 상기 메모리 블럭(105)의 버스의 제어를 획득함과 더불어 버스중재기가 행선지로서 DMA 제어기(103)를 선택하는 경우 데이터는 적절한 수의 연속적인 버스클럭 사이클에서 메모리 블럭(105)으로부터 DMA 제어기(103)에 전송된다. 상기 메모리 블럭(105)은 어드레스 라인을 구동하지 않고 독출요구시 DMA 제어기에 의해 그 메모리 블럭으로 전송되는 트랜잭션 요구ID를 회송하게 된다. 상기 DMA 제어기(103)는 상기 회송된 트랜잭션 요구ID를 사용하여 대응하는 데이터가 인가되어질 DMA 채널을 판단하게 된다. 이 예에서 상기 회송된 트랜잭션 요구ID는 데이터가 I/O 장치(101)에 인가됨을 나타낸다. 따라서, DMA 제어기(101)는 코덱 요구라인(Codec_Req;도시안됨)을 경유하여 I/O 장치(101)에 코덱 요구신호를 발생하고서 I/O 장치가 데이터를 수신할 준비가 이루어짐을 나타낼 때까지 대기하게 된다. 상기 I/O 장치가 DMA 제어기에서부터 데이터를 수신할 준비가 이루어진 경우 그 I/O 장치는 코덱 인식라인(Codec_Ack;도시안됨)을 경유하여 DMA 제어기에 코덱 인식신호를 전송하게 된다. 상기 DMA 제어기(103)가 코덱 인식신호를 수신하는 경우 그 DMA 제어기(103)는 사이즈 데이터에 의해 판정된 워드의 수로 I/O 장치(101)에 데이터를 전송하게 된다.
상기한 예에서 특정한 버스중재구조를 갖춘 특정한 형태의 버스(104)에 대해 설명하였지만, 상기 버스(104)에 대해서는 다른 형태의 버스 및 다른 중재구조가 적용될 수 있다. 상기 버스(104)는 'posted read' 동작을 지원할 필요는 없고, 트랜잭션 요구ID를 전송할 필요도 없으며, 사이즈 라인을 포함할 필요도 없고, 허가카운트 버스라인을 포함할 필요도 없다. 상기 버스(104)는 DMA 채널의 버스가 갖는 데이터 라인의 수와는 다른 수의 데이터 라인을 구비할 수도 있다.
제3도는 본 발명이 특정 실시예에 따른 DMA 제어기(200)의 개략적인 블럭도이다. 상기 DMA 제어기(200)는 FBUS 상태머신(201)과, FBUS 슬레이브 상태머신(202), 8:1의 64-비트 멀티플렉서(203), 64-비트의 와이드(wide) ×4-워드 디프(deep)의 기록버퍼(204), 기록버퍼 제어회로(205), 2:1의 64-비트 멀티플렉서(206), 64-비트의 와이드 × 4-워드 디프의 독출버퍼(207), 8:1이 64-비트 멀티플렉서(엔코더)(208), 독출버퍼 제어회로(209), 64-비트 와이드의 3-상태버퍼(210), 8:1의 8-비트 멀티플렉서(211), 14-비트 와이드 ×4-워드 디프의 코덱정보 FIFO(212), 코덱정보 FIFO 제어회로(213), 디코더중재기 상태머신(214), 코덱 슬레이브 상태머신(215), ID 레지스터/ID 비교블럭(216), 어드레스 발생블럭(217), 54-비트 요구 레지스터(218), 52-비트 3상태 버퍼(219), 52-비트 와이드 ×2-워드 디프의 응답 FIFO(220), DMA 어드레스 구성블럭(221), 8개의 32-비트 현행 어드레스 레지스터(222), 8개의 32-비트정지 어드레스 레지스터(223), 32-비트 폭의 멀티플렉서/비교기블럭(224)을 포함하여 구성된다.
상기 DMA 제어기(200)는 8개의 DMA 채널까지 지원하게 된다. 예컨대, 제1버스는 상기 DMA 제어기는 제1 I/O 장치에 결합될 수 있다. 그 I/O 장치는 코덱과 그 코덱을 상기 제1버스에 결합하는 코덱 인터페이스블럭을 포함하여 구성될 수 있다. 상기 제1버스는 64-비트 코덱 데이터버스(CO_Datal[63:0]), 코덱 구성 레지스터를 억세스하기 위한 32-비트 코덱 어드레스버스(Codec_Addr[31:0]), 8-비트 사이즈버스(Co_Size[7:0]), DMA 요구라인(DMA_Req0), DMA 인식라인(DMA_Ack0), 코덱 요구라인(Codec_Req0), 코덱 인식라인(Codec_Ack0) 및 코덱 구성 레지스터를 억세스하기 위한 코덱독출/기록라인(C_rd_wd_1)을 포함하게 된다. 보다 상세한 구성은 김호형을 출원인으로 하여 1986. 10. 18자로 출원된“Full Duplex Serial Codec Interface with DMA Access”및“Video Interface And Overlay System And Process”라는 발명의 명칭을 갖는 미합중국 특허출원 명세서를 참조할 수 있으며, 상기 미합중국 출원 명세서들의 내용은 본 발명에서 참조로 인용된다.
DMA 제어기(200)는 소위 FBUS로 칭해지는 제2버스에 결합하기 위한 인터페이스를 갖추게 된다. 이 실시예에서 상기 제2버스는 버스클럭라인(Ckl 1), 버스 리세트라인(F_reset_1), 어드레스 FIFO 풀신호라인(Fxxx_afull), 데이터 FIFO 풀신호라인(Fxxx_dfull), 2개의 허가 카운트라인(Fxxx_grCNT[1:0]), 3개의 행선지 ID 라인(Fxxx_did[2:0]), 버스요구 라인(Fxxx_req_1), 버스허가 라인(Fxxx_grant_1), 데이터의 소오스에 의해 요구되는 데이터 준비신호라인(Fdrdy_1), 칩선택신호(Fxxx_cs_1), 64-데이터 라인(Fdata[63:0]), 32 어드레스 라인(Faddr[31:0]), 10-트랜잭션 ID 라인(Freq_ID[9:0])(비트[9:6]은 요구자 ID를 전송하는 반면 비트[5:0]은 트랜잭션 요구ID를 전송), 8개의 사이즈 라인(Freq_size[7:0]), 부분독출 인디케이터라인(Frp_wr_1) 및 독출/기록라인(Frd_wr_1)을 포함하는 비-어드레스/데이터 다중화버스(non-address/data multiplexed bus)로 구성된다. 여기서, 상기 'xxx'는 신호라인이 DMA 제어기에 대한 전용라인임을 나타냄과 더불어 그 전용라인 이외의 라인은 FBUS상의 다른 장치에 대해 존재함을 나타낸다. 예를 들어, Fmem_cs_1는 버스중재기로부터 FBUS상의 메모리 블럭으로 연설되는 전용의 칩선택라인이다.
상기 제2버스(FBUS)가 동작중(busy)이고 DMA 제어기(200)가 트랜잭션을 완료하기 위해 FBUS를 억세스할 수 있게 되면 상기 제어기(200)는 그 경우에도 부가적인 DMA 요구를 수신하여 인식할 수 있게 된다. 코덱정보 FIFO(212)는 4개의 DMA 요구까지의 정보를 저장하게 된다. DMA 요구가 수신 및 인식되는 경우 3-비트코덱 ID가 발생되어 DMA 요구신호가 수신된 특정한 DMA 요구라인을 지시하게 된다. 그 3-비트코덱 ID는 (1) 그 DMA 요구라인과 관련되는 코덱 사이즈 라인으로부터 8-비트사이즈 데이터, (2) DMA 채널이 독출채널 또는 기록채널인지를 나타내는 2개의 독출/기록비트, (3) 코덱정보 FIFO가 유효한지를 나타내는 유효비트(즉, 유효비트는 DMA 요구가 수신되고나서 코덱정보 FIFO로부터의 정보가 DMA 요구에 대한 FBUS 어드레스를 발생하도록 어드레스 발생블럭(217)에 전송된 후“0”으로 리세트되는 경우에“1”로 세트)와 함께 코덱정보 FIFO 내에 저장된다.
상기 코덱정보 FIFO(212) 내의 엔트리(Entry)에 대한 어드레스가 발생되어지는 경우, 상기 엔트리내의 3-비트 코덱 ID는 DMA 요구를 발생한 DMA 채널에 대한 32-비트 현행 어드레스 레지스터(222)를 선택하기 위해 사용된다. 상기 코덱정보 FIFO 내에 저장된 32-비트 어드레스/사이즈 데이터가 어드레스 발생블럭(217) 및 요구 레지스터(218)를 경유하여 FBUS에 인가된다. 사용시마다 상기 현행 어드레스 레지스터는 DMA 요구의 사이즈 데이터에 의거하여 다수로 증가된다.
또한, 6-비트 트랜잭션 요구ID가 그 트랜잭션을 위한 ID 레지스터/ID 비교블럭(216)에서 발생된다(트랜잭션 요구ID는 예컨대 각각의 연속적인 독출버스 트랜잭션에 대해 증가되는 카운터의 출력으로 될 수 있다). 6-비트 트랜잭션 요구ID는 어드레스 발생블럭(217)과 요구 레지스터(218)를 경유하여 FBUS에 인가되고 3-비트코덱 ID와 더불어 FIFO_OUT FIFO(25)에도 저장된다.
상기 요구된 FBUS 트랜잭션이 'posted read'인 경우의 예를 가정한다. 데이터를 가지는 FBUS 상의 행선지장치는 상기 요구된 데이터와 함께 6-비트 트랜잭션 요구ID를 회송하게 된다. 상기 6-비트 트랜잭션 요구ID는 데이터와 함께 응답 FIFO(220)내에 수신되어 ID 레지스터/ID 비교블럭(216)중의 FIFO_OUT FIFO(225)내의 6-비트 트랜잭션 요구ID 엔트리와 비교된다. 이어, 상기 요구된 DMA 채널에 대해 데이터가 이용 가능함을 나타내도록 상기 대응하는 6-비트 트랜잭션 요구ID와 함께 저장된 3-비트 코덱 ID가 코덱 슬레이브 상태머신(215)에 의해 사용되어 Codec_Req0 라인상의 코덱 요구신호를 발생하도록 하게 된다. 상기 DMA 채널에 대한 I/O 장치가 데이터를 수신하도록 준비된 경우에는 그 Codec_Ack0 라인상의 인식으로 응답하게 된다. 이어, 코덱 슬레이브 상태머신(215)은 데이터가 정확한 DMA 채널에 인가되도록 디멀티플렉서(종종 엔코더로 칭해짐)(208)를 제어하기 위해 3-비트 코덱 ID를 사용하게 된다.
제4도는 본 발명의 일실시예에서 코덱정보 FIFO(212)와 FIFO_OUT FIFO(225)가 어떻게 증가되는지의 예를 설명하는 개략도이다. 초기(①)에 코덱정보 FIFO의 독출/기록포인터는 모두 제1워드를 지시하고 각 워드의 유효 비트는 코덱정보 FIFO내에 엔트리가 없음을 나타내는 리세트상태“0”이다. 후속(②)적으로 제1DMA 요구가 수신된다. 독출/기록비트, 코덱 ID 비트 및 코덱사이즈 비트가 기록포인터에 의해 지시되는 제1워드내로 로드되고, 유효 비트는 유효 엔트리가 존재함을 나타내도록 세트되며, 기록포인터가 증가된다. 그 기간중에 'posted read'가 이루어지지 않게 되고, 그에 따라 FIFO_OUT FIFO의 각 워드의 내용이 클리어상태(모두 0)로 된다. 후속(③)적으로 독출포인터에 의해 지시되는 코덱정보 FIFO내의 워드가 FBUS 상에 어드레스를 발생하도록 사용된다. 워드가 사용된 후 독출포인터가 증가되고, 상기 사용된 워드에 대한 유효 비트가 클리어된다. 트랜잭션 요구ID가 발생되고 FIFO_OUT FIFO내에 로드(코덱 ID와 함께)되며 FBUS에 인가되고, FIFO_OUT FIFO의 기록포인터가 도시된 바와 같이 이동된다. 후속(④)적으로 제2DMA 요구가 수신되고, 독출/기록비트와 코덱 ID 비트 및 코덱 사이즈비트가 기록포인터에 의해 지시된 제2워드내에 로드되며, 유효 비트가 세트되고, 기록포인터는 증가된다. 후속(⑤)적으로 기록포인터에 의해 지시된 코덱정보 FIFO내의 워드가 FBUS 상에 어드레스를 발생하도록 사용된다. 상기 워드가 사용된 후 상기 독출포인터가 증가되고 그 사용된 워드에 대한 유효 비트가 클리어된다. 제2트랜잭션 요구ID가 발생되고, 상기 FIFO_OUT FIFO내에서 기록포인터에 의해 지시된 위치에 로드되며, FBUS에 인가되고, FIFO_OUT FIFO의 기록포인터가 도시된 바와 같이 이동된다. 제1DMA 요구에 대한 데이터가 FBUS로부터 수신되는 경우(⑥), 그 데이터에 대한 트랜잭션 요구ID가 FIFO_OUT FIFO내의 엔트리와 정합된다. 따라서, 그 엔트리내에 저장된 코덱 ID는 정확한 DMA 채널에 상기 수신된 데이터를 인가하기 위해 사용된다. 일단 사용되고나면 FIFO_OUT 엔트리의 워드는 클리어된다.
제5(a)도는 I/O 장치로부터 DMA 제어기내로의 데이터 전송을 위한 DMA 요구의 수신을 설명하는 파형도이다. Cx_size[7:0] 라인상의 사이즈 데이터는 4-워드 데이터를 나타낸다. 하나의 DMA 요구/ DMA 인식시권스에 응답하여 4-워드 데이터는 도시된 바와 같이 4개의 연속적인 버스클럭 사이클에서 각 사이클마다 1워드씩 I/O 장치로부터 DMA 제어기에 전송된다.
제5(b)도는 FBUS상의 장치로부터 DMA 제어기를 통해 I/O 장치로 데이터 전송을 위한 DMA 요구의 수신을 나타내는 파형도이다. 이 경우, DMA 요구와 관련된 사이즈 데이터는 3-워드 데이터를 나타낸다. DMA 제어기가 FBUS로부터 데이터를 수신하는 경우 그 DMA 제어기는 I/O 장치에 대한 코덱 요구를 발생하게 된다. 상기 I/O 장치가 코덱 인식신호를 회송함으로써 데이터 수신의 준비가 이루어진 상태를 나타낸 후 상기 데이터는 도시된 바와 같이 3개의 연속적인 버스클럭 사이클에서 각 사이클에 1워드씩 I/O 장치로 인가된다.
제6(a)도는 FBUS상의 장치(즉, 메모리 블럭)로부터 DMA 제어기(200)로 데이터의 전송을 나타내는 파형도이다. 이 예에서, 전송되는 데이터 양은 하나의 64-비트 워드이다.
제6(b)도는 DMA 제어기(200)로부터 FBUS상의 장치(즉, 메모리 블럭)로 데이터의 전송을 나타내는 파형도이다. 이 예에서, 전송되는 데이터 양은 4개의 64-비트 워드이다.
제7(a)도는 제3도의 코덱중재기 상태머신(214)의 동작을 설명하는 상태도이다. 고성능 비디오 코덱 KSO119를 지원하기 위해 채널 0이 고정된 우선 순위(최우선순위)로 할당되고 다른 DMA 채널은 라운드로빈(Round Robin)구조를 사용하여 중재된다. 다른 상태머신(도시안됨)은 채널 0의 지원을 처리하게 된다. 본 발명의 특정한 실시에에서 FBUS상의 메모리제어 유니트와 DMA 제어기 사이의 직접적인 데이터 경로는 FBUS 를 통해 DMA 채널 0에 대한 데이터의 전송이 일어나는 일을 방지하기 위해 제공된다. 보다 추가적인 설명은 Amjad. Z. Qureshi를 출원인으로 하여 1996. 10.18자로 출원된“A Priority Bypass Bus”라는 발명의 명칭을 갖는 미합중국 출원 명세서를 참조할 수 있고, 상기 미합중국 특허출원 명세서의 내용은 본 발명에서 참조로 인용된다.
제7(a)도에서 트랜잭션 T0는 DMA 요구가 수신되지 않은 경우 또는 채널 0에 대한 상태머신이 동작중인 경우에 발생된다. 아이들(IDLE)상태에서는 DMA 요구가 서비스되지 않게 된다. 트랜잭션 T1은 DMA 요구가 채널 0 이외의 채널에서 수신된 경우에 발생된다. 상태 ST0에서는 3-비트 DMA 포인터가 DMA 테이블에서 증가된다.
제8도는 하나의 가능한 DMA 테이블을 나타낸다. 상기 테이블의 최좌측 컬럼의“1”은 우측에 3비트로 나타낸 채널에 대해 DMA 요구가 미정된 상태임을 나타낸다. DMA 포인터는 이 예에서 단지 상향적으로 이동된다. 트랜잭션 T2는 현행 요구비트가“0”인 경우에 발생하게 된다. 트랜잭션 T3은 현행 요구비트가 1인 경우에 발생하게 된다. 상태 ST1,ST2,ST3,ST4의 각각에서 64-비트 워드 데이터는 DMA 포인터에 의해 지시된 DMA 테이블의 엔트리에서 3비트값으로 나타낸 DMA 채널의 코덱 데이터 라인을 경유하여 DMA 제어기에 전송되거나 그 DMA 제어기에서부터 전송된다. DMA 인식신호는 상태 ST0에서 요구되어 상태 ST1,ST2,ST3,ST4에서 그 요구가 유지된다. 트랜잭션 T6은 전송이 1-워드 이상의 전송인 경우에 발생되고, 트랜잭션 T9는 전송이 2-워드 이상의 전송인 경우에 발생되며, 트랜잭션 T12는 전송이 3-워드 이상의 전송인 경우에 발생된다. 트랜잭션 T5,T8,T11,T14는 테이블 중의 모든 DMA 요구비트가“0”인 경우에 발생되고, 트랜잭션 T4,T7,T10,T13은 테이블 중의 어느 DMA 요구비트가“1”인 경우에 발생된다.
제7(b)도는 제3도의 코덱 슬레이브 상태머신(215)의 동작을 설명하는 상태도이다. 예컨대 내부적인 요구신호(Ireq)(226;제3도참조)가 상기 수신된 트랜잭션 ID의 정합을 나타내는 ID 레지스터/ID 비교블럭(216)에 의해 요구되지 않으면 트랜잭션 T0가 발생된다. 하지만, 상기 Ireq 신호가 요구되면 트랜잭션 T1이 발생된다. 상태 REQ에서 코덱 요구는 ID 레지스터/ID 비교블럭(216)에 의해 라인(227)상에 인가된 코덱 ID에 의해 지시된 DMA 채널로 전송된다. 상기 코덱 ID에 의해 지시된 DMA 채널로부터 인식신호가 수신되지 않은 경우 트랜잭션 T2가 발생된다. 상기 코덱 인식신호가 코덱 ID에 의해 지시된 DMA 채널로부터 수신되는 경우 트랜잭션 T1이 발생된다. 상태 WGRANT1에서 제1워드 데이터가 그 Cx 데이터[63:0]라인을 경유하여 상기 지시된 DMA 채널로 전송된다. 상기 전송이 1-워드 전송인 경우 트랜잭션 T6이 발생되고, 상기 전송이 1-워드 전송 이상인 경우 트랜잭션 T7이 발생된다. 상태 WGRANT2에서 제2워드 데이터가 상기 지시된 DMA 채널에 전송된다. 상기 전송이 2-워드 전송인 경우 트랜잭션 T8이 발생되고, 상기 전송이 2-워드 전송 이상인 경우 트랜잭션 T9가 발생된다. 상태 WGRANT3에서 제3워드 데이터가 상기 지시된 DMA 채널로 전송된다. 상기 전송이 3-워드 전송 이상인 경우 트랜잭션 T11이 발생된다. 상태 WGRANT3에서 제4워드 데이터가 상기 지정된 DMA 채널로 전송되고, 트랜잭션 T12는 상태머신을 IDLE 상태로 복귀시키게 된다.
예컨대, FBUS 상의 프로세서가 코덱 인터페이스(예컨대, 코덱 인터페이스의 구성 레지스터)로부터 독출하는 것이 요구되면 트랜잭션 T3가 상태 REQ로부터 발생된다. 상태 RGRANT1에서 FBUS로부터 수신된 어드레스가 응답 FIFO(220), Reply_Out 버스(228) 및 ID 레지스터/ID 비교블럭(216)의 레지스터(도시안됨)를 경유하여 상기 지정된 DMA 채널에 전송된다. 또, 코덱 요구가 라인(Codec_Reqx)상의 코덱 인터 페이스블럭으로 전송되는 시점에서 상기 어드레스가 라인(Codec_Addr[31:0])상에서 코덱 인터페이스블럭에 전송된다. 상기 DMA 제어기는 라인(C_rd_wr_1)을 제어하여 독출을 지시하게 된다. 상기 어드레스 지정된 코덱 인터페이스는 그 64-비트 코덱 데이터버스를 경유하여 DMA 제어기 기록버퍼(204)에 데이터를 회송하게 된다.
반면에, FBUS 상의 프로세서가 코덱 인터페이스(예컨대, 구성 레지스터)에 대한 기록이면 상태 REQ와 상태 WGRANT1가 천이된다. 상기 기록대상의 데이터는 그 데이터가 독출버퍼내에 위치하고서 상태 WGRANT1에서 코덱 인터페이스에 전송될 수 있도록 상기 상태 WGRANT1의 이전에 FBUS 마스터 상태머신(202)에 의해 독출버퍼(207)내에 전송된다. 상기 FBUS로부터의 어드레스는 상태 REQ에서 Codec_Addr[31:0]에 인가되고, C_rd_wr_1이 기록을 지시하도록 제어된다.
제5(c)도는 Codec_Addr[31:0]버스를 사용하여 I/O 장치의 코덱 인터페이스블럭의 구성 레지스터에 기록하는 FBUS상의 프로세서를 설명하는 파형도이다. 제5(d)도는 Codec_Addr[31:0]를 사용하여 I/O 장치의 코덱 인터페이스블럭의 구성 레지스터로부터 독출하는 FBUS 상의 프로세서를 설명하는 파형도이다.
제7(c)도는 제3도의 어드레스 발생블럭 상태머신(217)의 동작을 설명하는 상태도이다. 코덱정보 FIFO(212)의 모든 유효 비트가 DMA 요구의 미정이 아님을 나타내고“0”인 경우 트랜잭션 T0가 발생된다. 또, 코덱정보 FIFO(212)의 어느 유효 비트가“1”이면 트랜잭션 T1이 발생된다. LD-FIFO 상태에서“1”의 유효 비트를 가지는 코덱정보 FIFO(212)의 엔트리로부터의 14-비트 데이터가 데이터 라인(231)과 독출 인에이블라인(213a)을 경유하여 어드레스 발생블럭(217)의 14-비트레지스터(230)로 독출된다. 요구 레지스터(218) 또는 FIFO_OUT FIFO(225)가 라인(240,233)상의 풀(full)신호에 의해 지시되어 풀(Full)상태이면 트랜잭션 T2/T15가 발생된다. 또, 코덱정보 FIFO 엔트리의 독출/기록 비트가 기록을 지시하면 트랜잭션 T3가 발생되고, 코덱정보 FIFO 엔트리의 기록/독출 비트가 기록을 지시하면 트랜잭션 T4가 발생된다. 상태 WR-REQ에서는 FBUS 기록데이터 요구가 발생(적절한 현행 어드레스 레지스터가 3개의 선택라인(237)을 사용하여 선택)되어 로드신호(235A)를 경유하여 라인(234,235)을 통해 요구 레지스터(218)내에 로드된다. 그와 유사하게, FBUS 독출데이터 요구가 상태 RD-REQ에서 발생된다. 트랜잭션 T6과 T5는 하나의 클럭사이클 후에 발생된다. AD-INC8 상태에서 상기 선택된 현행 어드레스 레지스터의 어드레스는 증가 인에이블라인(236)의 제어하에 8만큼 증가된다(FBUS 어드레스 64_비트 FBUS 워드 데이터의 제1바이트의 어드레스). 만일 상기 전송이 코덱정보 FIFO로부터의 사이즈 데이터에 의해 지시되는 1-워드 전송인 경우 트랜잭션 T7은 IDLE 상태로의 복귀로 발생된다. 반면에, 상기 전송이 1-워드 이상인 경우이면 트랜잭션 T8이 발생된다. AD_INC16 상태에서 상기 선택된 현행 어드레스 레지스터는 재차 8만큼 증가된다. 예컨대, 상기 전송이 2-워드 전송인 경우에는 트랜잭션 T9이 발생되고, 그렇지 않으면 트랜잭션 T10이 발생된다. 상태 AD_INC24에서 상기 선택된 현행 어드레스 레지스터가 또 다른 8비트만큼 재증가 된다. 예컨대, 상기 전송이 3-워드 전송이면 트랜잭션 T11이 발생되고, 그렇지 않으면 트랜잭션 T12가 발생된다. 상태 AD_INC32에서 상기 선택된 현행 어드레스 레지스터가 재차 8만큼 증가된다. 트랜잭션 T13은 1클럭 사이클 후에 발생된다.
제7(d)도는 제3도의 ID 레지스터/ID 비교블럭(216)의 등장을 설명하는 상태도이다. 응답 FIFO(220)로부터의 어드레스는 동작이 구성 레지스터 독출 동작인지를 나타내는 신호를 발생하기 위해 ID 레지스터/ID 비교블럭(216)에서 디코드된다. 기록버퍼(204)가 I/O 장치 구성 레지스터 독출 동작에 대해 풀(Full)인 경우에 상기 응답 FIFO(220)가 공백(empty)이면, 트랜잭션 T0이 발생된다. 예컨대, 응답 FIFO(220)가 비공백 상태이고 상기 동작이 I/O 구성 레지스터 독출이 아니거나 기록버퍼(204)가 I/O 장치 구성 레지스터 독출시 풀상태가 아닌 경우 트랜잭션 T1이 발생된다. 상태 REQ에서 코덱 슬레이브 상태머신(215)이 트랜잭션의 취급을 기동하게 되도록 상기 ID 레지스터/ID 비교블럭(216)이 신호 Ireq(226)를 요구하게 된다. 동작이 I/O 장치 구성 레지스터 독출이 아닌 경우 Codec_Acdkx 라인중 하나로부터 응답인식이 있게 되면 트랜잭션 T3가 발생된다. 또, 동작이 I/O 장치 구성 레지스터 독출인 경우 Codec_Ackx 라인중 하나로부터 응답인식이 있게 되면 트랜잭션 T4가 발생된다. 상태 CFG-TF에서 I/O 장치의 구성 레지스터로부터의 데이터는 라인 Cx-Data[63:0]을 경유하여 DMA 제어기내로 로드된다. 상기 트랜잭션이 발생된 후 트랜잭션 T5가 발생되고 클리어신호가 상태 WT-ST에서 클리어라인(238)을 경유하여 응답 FIFO(220)로 재전송된다. 하나의 클럭 사이클 후에 트랜잭션 T6이 발생되어 IDLE 상태로 복귀된다.
제7(e)도는 제3도의 FBUS 마스터 슬레이브머신(202)의 동작을 설명하는 상태도이다. FBUS 데이터 준비신호 Fdrdy-1은 FBUS 에 데이터를 인가하는 FBUS이 장치에 의해 요구된다. 상기 신호 Fdrdy-1는 FBUS 상에서 수취 가능한 데이터가 래치되어지는 다수의 버스사이클 동안 로우레벨(요구에 의해)이다. Fdrey-1이 요구되지 않으면 트랜잭션 T0이 발생되고, Fdrdy-1이 요구되면 트랜잭션 T1이 발생된다. 상태 RECEIVE1에서 FBUS 마스터 상태머신(202)은 라인(239)상에 Load-Fdata 신호를 출력하여 FBUS 데이터 라인 Fdata[63:0]으로부터의 하나의 64-비트 워드 데이터가 독출버퍼(207)로 독출되도록 하게 된다. 따라서, 독출버퍼 제어회로(209)는 상기 독출버퍼(207)의 기록포인터를 증가시키게 된다. FBUS 중재기가 여전히 DMA 제어기에 대한 칩선택 Fxxx-cs-I를 요구하는 경우 Fdrey-1신호가 더 이상 요구되지 않으면 트랜잭션 T2가 발생된다. FBUS 상에서 그 이상 데이터 준비가 있게 되면 상기 Fdrdy-1 신호는 여전히 요구되고 트랜잭션 T3가 발생된다. 상태 RECEIVE2에서 FBUS 마스터 상태머신(202)는 라인(239)상에 다른 load-fdata 신호를 출력하여 FBUS 데이터 라인 Fdata[63:0]으로부터 64-비트 워드 데이터가 독출버퍼(207)로 독출되도록 하게 된다. 따라서, 상기 독출버퍼 제어회로(209)는 상기 독출버퍼(207)의 기록포인터를 증가시키게 된다. 예컨대, 여전히 요구되는 신호 Fdrdy-1이 나타내는 그 이상의 데이터 준비가 수신되면 트랜잭션 T5가 발생되고, 그렇지 않으면 트랜잭션 T4가 발생되어 IDLE 상태로 복귀하게 된다. 상태 RECEIVE3와 상태 RECEIVE4도 다른 워드 데이터가 라인(239)상의 신호 load-fdata에 의한 제어에 따라 각 상태에서 독출버퍼(207)에 로드되는 경우에 상기한 상태 RECEIVE2와 유사하게 된다.
제7(f)도는 제3도의 FBUS 슬레이브 상태머신(201)의 동작을 설명하는 TDKXO도이다. 상기 어드레스 발생블럭(217)이 요구 레지스터(218)에 어드레스를 로드할 경우 그 레지스터의 제1비트(유효 비트 : 비트[53])가 세트된다. FBUS 슬레이브 상태머신(201)은 라인(240)을 경유하여 그 유효 비트를 모니터링하게 된다. 상기 비트가 세트되지 않으면 트랜잭션 T0이 발생되고, 상기 비트가 세트되면 트랜잭션 T1이 발생된다. 상태 REQ에서 DMA 제어기(200)는 버스의 중재를 위해 FBUS 중재기(도시안됨)에 버스요구를 발생하게 된다. 상기 FBUS 중재기가 FBUS 라인 Fxxx-grant-1을 경유하여 상기 DMA 제어기에 FBUS를 허가하지 않으면 트랜잭션 T2가 발생된다. 상기 FBUS 중재기가 DMA 제어기에 대해 제어를 허가하지 않으면(Fxxx-grant-1이 요구), 동작이 독출 또는 기록인지에 의거하여 2개의 트랜잭션 T3와 T5가 발생되게 된다. 상기 어드레스 발생블럭(217)은 요구 레지스터(218)에 비트[52]를 독출하게 되고, FBUS 슬레이브 상태머신(201)은 동작이 독출 또는 기록인지를 판단하기 위해 상기 비트를 발생하게 된다. 상기 동작이 독출인 경우이면 트랜잭션 T3가 발생되고, 그렇지 않으면 트랜잭션 T5가 발생된다. 상태 RGRANT에서 상기 FBUS 슬레이브 상태머신(201)은 독출요구가 요구 레지스터(218)로부터 제어라인(241)을 경유하여 상기 FBUS 상에 출력되도록 하게 된다. 그 때, FBUS 슬레이브 상태머신(201)은 요구 레지스터(218)의 유효 비트(비트[53])를 클리어 시킴으로써 상기 요구 레지스터가 허용 가능(즉, 공백)함을 나타낸다.
반면에, 상태 WGRANT1에서 동작이 요구 레지스터(218)의 비트[52]값에 의해 지시됨에 따라 기록으로 되고, 그에 따라 FBUS 상에서 어드레스 데이터가 구동된다. 라인(242,243,244)상의 제어신호하에 하나의 64-비트 워드 데이터가 기록버퍼(204)로부터 FBUS의 데이터 라인 Fdata[63:0]으로 전송된다. 상기 기록동작의 어드레스는 라인(241)상의 인에이블신호에 의해 FBUS 어드레스 라인 Faddr[31:0]상에 인에이블되고, 상기 요구 레지스터(218)의 유효 비트는 클리어된다. 그때, 상기 기록버퍼(204)의 독출포인터가 기록버퍼 제어회로(205)에 의해 증가된다.
상기 FBUS 슬레이브 상태머신(201)이“00”으로 되는 라인 Fxxx-grCNT[1:0]에 의해 지시된 단지 하나의 워드 데이터의 전송을 위해 상기 FBUS 슬레이브 상태머신(201)이 FBUS를 허가한 경우이면 트랜잭션 T6이 발생되어 IDLE 상태로 복귀하게 된다. 하지만, Fxxx-grCNT[1:0] 라인이 하나의 워드 전송작용에 이상을 나타내는 경우 트랜잭션(T7)이 발생된다. 상태 WGRANT2에서 상기 FBUS 슬레이브 상태머신(201)은 라인(242,243,244)상의 신호의 제어하에 다른 64-비트 워드 데이터가 FBUS 로 전송되도록 하게 된다. 상태 WGRNAT3와 WGRANT4는 각 상태에서 64-비트 워드 데이터가 전송되는 경우에서 상기한 상태 WGRANT2와 유사하다. 양 상태 WGRANT3와 WGRANT4는“11”로 되는 Fxxx-grCNT[1:0]에 의해 지시되는 4-워드 전송에 적용되고 단지 상태 WGRANT3만이“10”으로 되는 Fxxx-grCNT[1:0]에 의해 지시되는 3-워드 전송에 적용된다.
제3도의 DMA 어드레스 구성블럭(221)은 3개의 3-비트 레지스터; 상태 레지스터(245), 마스크 레지스터(246), 제어 레지스터(247)로 구성된다. 상기 상태 레지스터는 독출이 가능한 반면 FBUS로부터의 기록은 불가능한 레지스터이다. 제1의 8비트의 각 비트는 대응하는 DMA 채널에 대한 현행 어드레스 레지스터가 그 정지 어드레스에 도달되는지를 확인하게 된다. 상기 DMA 채널의 현행 어드레스 레지스터가 FBUS로부터 로드되는 경우 상기 상태 레지스터의 대응하는 비트는 리세트된다.
상기 제어 레지스터는 독출과 FBUS로부터의 기록이 가능한 정보 레지스터이다. 비트[7:0]은 DMA 채널의 동작 인에이블을 특정하게 된다. 그 정지 어드레스에 도달된 DMA 채널에 대응하는 비트는 DMA 제어기에 의해 리세트된다. FBUS상의 프로세서는 DMA 채널의 동작이 재기동 되도록 그 비트를 세트시킬 수 있다. 어느 채널에 대한 인에이블 비트가“0”인 경우 DMA 제어기는 DMA 채널에 대한 DMA 인식신호를 출력하지는 않게 된다. 비트[19:16]은 DMA 채널의 4쌍이 2중버퍼로서 함께 연관됨을 특정하게 된다. 예컨대, DMA 채널 0과 DMA 채널 1이 제어 레지스터(247)의 비트 16을 생성함으로써 2중-버퍼로서 함께 연관되면 상기 DMA 제어기는 DMA 채널의 현행 어드레스가 그 정지 어드레스에서 정지되는 경우 자동으로 DMA 채널 1로 절환되는 반면 DMA 채널 1의 현행 어드레스가 그 정지 어드레스에 도달되는 경우 자동적으로 DMA 채널 0으로 절환하게 된다. 비트[28:21]는 각 채널이 독출모드 또는 기록모드인지에 관한 정보를 포함하게 된다. 예컨대, FBUS상의 프로세서가 그 비트중 하나를“1”로 세트하게 되면 대응하는 DMA 채널은 독출동작에 적용되고, 또 DMA 채널은 기록동작에 적용되게 된다. 비트[31]는 DMA 제어기가 터미널 EOP(248)로부터 EOP(end-of-process)신호를 출력하도록 인에이블 되는지를 특정하게 된다. 예컨대, EOP터미널(248)은 DMA 제어기의 현행 어드레스 레지스터를 재초기화하는 FBUS상의 프로세서를 인터럽트하기 위해 인터럽트 제어기에 결합된다. 비트[31]이“0”이면 DMA 제어기는 DMA 채널이 그 정지 어드레스에 도달되어도 터미널 248상에 EOP 신호를 출력하게 된다.
상기 제어 레지스터(247)의 각 비트는 마스크 레지스터(246)에서 대응하는 비트를 갖게 된다. 마스크 비트가“0”이면 상기 제어 레지스터(247)내의 대응하는 비트에 대한 변경은 불가능하게 된다. 초기적으로 마스크 레지스터(246)의 각 비트는“1”로 세트(즉, 마스크되지 않음)된다.
제7(g)도는 제3도의 DMA 어드레스 구성블럭(221)의 상태머신의 동작을 설명하는 상태도이다. 이 상태머신은 상태 레지스터(245)와 마스크 레지스터(246), 제어 레지스터(247), 현행 어드레스 레지스터(222) 및 정지 어드레스 레지스터(223)의 수월한 억세스를 제공하게 된다. 예컨대 FBUS 상의 프로세서가 DMA 제어기(200)의 현행 어드레스 레지스터를 독출하는 경우이면, DMA 제어기에 대한 FBUS 칩선택신호라인 Fxxx-CS-1이 FBUS 버스중재기에 의해 요구되고, 현행 어드레스 레지스터의 어드레스는 프로세서에 의해 FBUS 어드레스 라인 Fcddr[31:0]상에 제공된다. 그 어드레스는 라인(249)를 통해 DMA 어드레스 구성블럭(221)에 대해 유효하게 된다. 예컨대, 그 어드레스가 검출되지 않으면 트랜잭션 T0가 발생되고, 상기 어드레스가 검출되면 트랜잭션 T1이 발생된다.
상태 ST1에서 예컨대 동작이 기록이면 데이터는 FBUS 데이터 라인 Fdata[63:0]으로부터 DMA 어드레스 구성블럭(221)에 인가된다. 만일, 그 데이터가 현행 어드레스 레지스터 또는 정지 어드레스 레지스터내로 기억되어져야 하는 경우 그 데이터는 32-비트 데이터 라인(250)을 경유하여 적절한 레지스터로 전송된다. 그 데이터를 수신하는 레지스터는 라인(249), 5-비트 선택버스(251) 및 독출/기록라인(252)를 통해 인가되는 어드레스에 의해 결정된다. 만일 동작이 기록동작이면 상기 데이터는 선택된 레지스터에 로드되고 트랜잭션 T2가 발생되어 IDLE 상태로 복귀하게 된다. 만일, 동작이 독출 동작이면 상기 데이터는 요구에 의해 수신된 트랜잭션 요구ID에 의해 FBUS로 회송되어야만 된다. 만일 요구 레지스터(218)가 풀이면 상기 트랜잭션 요구ID는 그 요구 레지스터를 통과할 수 없게 되고, 그에 따라 그 요구 레지스터(218)는 모니터링된다. 상기 요구 레지스터(218)가 풀이면 그 요구 레지스터(218)가 풀상태로 되지 않을 때(비트[53]가 클리어)까지 트랜잭션 T5가 발생된다. 상기 요구 레지스터가 더 이상 풀상태로 되지 않으면 트랜잭션 T3이 발생된다.
상태 ST2에서 상기 요구된 데이터는 FBUS로 회송되고, 현행 어드레스 레지스터와 정지 어드레스 레지스터의 내용은 예컨대 라인(253)을 통해 DMA 어드레스 구성블럭(221)에 전송되고 라인(254)과 멀티플렉서(206) 및 3-상태버퍼(210)를 통해 FBUS 데이터 라인 Fdata[63:0]으로 전송된다. 상기 요구 레지스터(218)가 요구 레지스터 비트[53]으로부터의 라인(240)상의 풀신호에 의한 지시에 의해 그 이상 풀상태가 아닌 경우에는 상기 독출동작의 트랜잭션 ID가 상기 요구 레지스터(218)를 매개하여 FBUS 상에 출력되고, 그에 다라 트랜잭션 T4가 발생되어 IDLE 상태로 복귀된다.
제9도는 제3도의 요구 레지스터(218)를 나타낸 도면이다. 어드레스와 그 어드레스에 관련되는 트랜잭션 ID를 발생하기 위해서는 다중 사이클이 필요하게 된다. 독립적인 요구 레지스터(218)를 갖춤으로써 다른 어드레스와 트랜잭션 요구ID가 준비되어지는 동안 미리 준비된 어드레스와 트랜잭션 요구ID가 요구 레지스터(218)내에 저장될 수 있게 된다. 비트[53]은 상기 요구 레지스터(218)가 유효 어드레스를 포함하게 되고 그에 따라“풀”상태로 되어 이용불가를 나타내는“유효 비트”이다. 그 유효 비트는 상기 요구 레지스터(218)가 로드되고 그 내용이 FBUS로 출력된 후의 FBUS 슬레이브 상태머신(201)에 의해 클리어되는 경우 어드레스 발생블럭(217)에 의해 세트된다.
비트[52]는 상기 요구 레지스터(218)가 로드되는 경우 어드레스 발생블럭(27)에 의해 세트되는 비트이고, 그 비트는 독출되어지는 데이터가 멀티플렉서(206)를 통해 FBUS 상에 인가됨을 나타낸다. 상기 FBUS 슬레이브 상태머신(201)은 그 비트가 상태 ST3에 대한 천이 또는 상태 T5에 대한 천이인지를 판단하기 위해 상기 비트를 모니터링하게 된다. 그 비트는 상기 어드레스 발생블럭(217)이 상기 요구 레지스터(218)에 후속 어드레스를 로드하는 경우에 중첩기록된다.
비트[51]는 FBUS 라인 Fpr_wr_1과 대응하게 되는 바, 로우가 요구되는 경우 상기 비트는 동작이 부분적인 기록동작임을 특정하게 된다. 상기 비트는 DMA 제어기(200)가 부분적인 기록동작을 지원하지는 않기 때문에 상기한 구성에서 항시 하이로 된다. 비트[50]은 상기 요구 레지스터(218)에서의 요구에 대한 독출/기록비트를 저장하게 됨과 더불어 FBUS 라인 Fpr_wr_1과 대응하게 된다. 비트[49:40]는 트랜잭션 요구에 의해 FBUS 라인 Freq_ID[9:0] 상에 출력될 10-비트 트랜잭션 ID를 저장하게 된다. 비트[39:32]는 트랜잭션 요구에 대한 8-비트 사이즈 데이터를 저장하게 된다. 비트[31:0]는 트랜잭션 요구에 대한 32-비트 어드레스를 저장하고 FBUS 어드레스 Faddr[31:0]와 대응하게 된다.
제10도는 제3도의 멀티플렉서/비교기블럭(224)의 하나의 가능한 구성을 개략적으로 나타낸 도면이다. 선택버스(237)상의 3-비트값을 현행 어드레스와 정지 어드레스가 비교되어지는 DMA 채널을 판정하게 된다. 8:1 32-비트 멀티플렉서(300)는 상기 선택된 DMA 채널의 현행 어드레스 레지스터(301-308)를 선택하게 되고, 8:1 32-비트 멀티플렉서는 상기 선택된 DMA 채널의 정지 어드레스 레지스터(310-317)를 선택하게 된다. 비교기(300)는 상기 선택된 현행 어드레스 레지스터의 내용을 상기 선택된 정지 어드레스 레지스터의 내용과 비교하게 된다. 선택버스(237)의 3-비트값은 상기 선택된 DMA 채널에 대응하는 레지스터(319)의 비트가 인에이블 되도록 1:8 디멀티플렉서(318)를 제어하게 된다. 만일 비교기(300)의 출력이“1”로 되어 상기 선택된 현행 어드레스 레지스터의 내용이 상기 선택된 정지 어드레스 레지스터의 내용과 정합됨을 나타내면, 인에이블된 레지스터(319)의 대응하는 비트는 공동 출력신호(321)가 레지스터(319)의 모든 비트를 클럭킹하는 경우“1”로 로드되게 되고, 그렇지 않은 경우 상기 비트는 0으로 로드되게 된다. 본 발명의 일실시예에서는 직전에 증가된 특정한 현행 어드레스 레지스터에 대응하는 레지스터(319)의 비트만이 세트 또는 리세트된다. 다른 비트들의 내용은 대응하는 현행 어드레스 레지스터들이 증가될 때까지 적정하게 유지된다. 비교기(300)의 출력은 레지스터(319)의 모든 비트의 데이터 입력에 인가된다. 8-입력 OR 게이트(320)는 레지스터(319)의 어느 비트가 세트되면 출력터미널 EOP 상에 디지탈 하이신호를 출력하게 된다. 이 실시예에서 신호 EOP는 DMA 어드레스 구성블럭(221)보다는 멀티플렉서/비교기블럭(224)에 의해 출력된다.
다음의 부록은 특정한 실시예에 따른 이하의 블럭, 즉 기록버퍼 입력 멀티플렉서, 기록버퍼, 기록버퍼 제어회로, 기록버퍼출력 멀티플렉서 및 대응하는 버퍼, 독출버퍼, 독출버퍼 제어회로, 코덱정보 FIFO 및 대응하는 입력 멀티플렉서, 어드레스 발생블럭, ID 레지스터 및 ID 비교블럭에 대한 하드웨어기술(주지의 하드웨어기술언어“Verilog”)을 포함하게 된다.
본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 본 발명이 그에 한정되는 것은 아니다. 제3도의 실시예의 특징을 채용하지 않는 DMA 제어기는 통상적인 하드웨어 설계기법 또는“Verilog”와 같은 하드웨어 설명언어를 사용하여 실현될 수 있다. DMA 제어기에 의해 사용되는 사이즈 데이터는 어느 실시예의 FBUS로부터 DMA 제어기에 의해 수신될 수 있다. 또한, 사이즈 데이터는 특정한 사이즈 라인이 아닌 DMA 채널의 데이터 버스에 의해 수신될 수도 있다. 따라서, 이하의 특허청구범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 개조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다.
Claims (19)
- 제1버스와 관련된 단일의 DMA 요구에 응답하여 그 제1버스에 관련된 2-어드레스 형태로 수신되지 않는 사이즈 데이터에 의거하여 상기 제1버스로부터 다중 군의 데이터 또는 단일 군의 데이터를 수신하는 수단과; 상기 DMA 요구에 응답하여 상기 제1버스로부터 수신된 데이터를 저장하는 버퍼; 상기 버퍼로부터 데이터를 제2버스에 전송하기 위해 상기 제2버스에 어드레스를 발생하는 어드레스 발생기를 포함하여 구성된 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제1항에 있어서, 상기 데이터 군은 워드 데이터인 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제1항에 있어서, 상기 제1버스는 다수의 데이터 라인과, DMA 요구라인, 사이즈 라인을 구비하여 구성되고, 상기 제1버스에 대응하는 상기 사이즈 데이터는 상기 제1버스의 상기 사이즈 라인 상에서 상기 DMA 제어기에 인가되는 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제3항에 있어서, 상기 수단은 제3버스에 관련된 단일의 DMA 요구에 응답하여 그 수단에 의해 수신된 상기 제3버스에 관련된 사이즈 데이터에 의거하여 상기 제3버스로부터 다중 군의 데이터 또는 단일 군의 데이터를 수신하는 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제4항에 있어서, 상기 제3버스는 다수의 데이터 라인과 DMA 요구라인 및 다수의 사이즈 라인을 포함하게 되고, 상기 제3버스에 관련된 사이즈 데이터는 그 제3버스의 상기 사이즈 라인상에서 상기 DMA 제어기에 인가되는 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제5항에 있어서, 상기 수신수단은 상기 제1버스의 DMA 요구라인과 상기 제3버스의 DMA 요구라인 및 상기 버퍼에 결합된 중재기로 이루어진 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제5항에 있어서, 상기 수신수단은 제1DMA 요구에 따라 수신된 제1사이즈 데이터와 제2DMA 요구에 따라 수신된 제2사이즈 데이터를 동시적으로 저장하는 수단으로 이루어진 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제7항에 있어서, 상기 저장수단은 각각의 저장된 사이즈 데이터에 대한 유효 비트도 저장하게 되고, 상기 유효 비트는 상기 사이즈 데이터가 상기 제1버스 또는 제2버스에 관련되는지를 나타내는 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제1항에 있어서, 상기 어드레스 발생기는 각 군의 데이터가 상기 버퍼로부터 상기 제2버스에 전송되도록 상기 제2버스 상에 하나의 어드레스를 발생하는 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제5항에 있어서, 상기 수신수단은 제1의 다수 입력단과 제2의 다수 입력단, 최소한 하나의 선택 입력단 및 다수 출력단을 갖는 다채널 멀티플렉서로 구성되고, 상기 제1의 다수 입력단은 상기 제1버스의 다수 데이터 입력단에 결합되며, 상기 제2의 다수 입력단은 상기 제3버스의 다수 데이터 입력단에 결합되고, 상기 다수 출력단은 상기 버퍼에 결합되는 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제5항에 있어서, 현행 어드레스 레지스터와 정지 어드레스 레지스터, 상기 제1버스에 무관한 개시 어드레스 레지스터와; 현행 어드레스 레지스터와 정지 어드레스 레지스터, 상기 제3버스에 무관한 개시 어드레스 레지스터가 더 포함되는 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제11항에 있어서, 프로세스 출력의 종단과 상기 제2버스로부터 기록 가능한 제어 레지스터가 더 포함되고, 상기 DMA 제어기는 채널링크모드를 지원해서 상기 어드레스 발생기가 상기 제1버스에 관련된 정지 어드레스 레지스터에 저장된 정지 어드레스와 동일한 어드레스를 발생하는 경우 프로세스신호의 종료가 상기 프로세스의 출력단의 종단상에 발생되지 않도록 하게 되고, 프로세스 신호의 종료가 발생되지 않고 어드레스 발생기에 의해 발생된 어드레스가 상기 제3버스에 관련된 상기 현행 어드레스 레지스터에 저장된 어드레스로 되도록 하는 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제1항에 있어서, 상기 제1버스에 관련된 상기 사이즈 데이터는 DMA 제어기내의 레지스터에 저장되고, 상기 레지스터는 상기 제2버스를 경유하여 로드되는 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제1항에 있어서, 상기 제1버스에 관련된 상기 사이즈 데이터는 상기 제1버스의 데이터 라인을 경유하여 수신되는 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- 제1항에 있어서, 상기 데이터 군은 최소한 64비트의 워드이고, 상기 버퍼로부터의 데이터는 상기 제2버스에 군으로 전송되며, 상기 제2버스는 최소한 64 데이터 라인을 구비한 것을 특징으로 하는 DMA 채널의 사이즈 데이터를 수신하는 DMA 제어회로.
- DMA 제어기내에 그 DMA 제어기를 통해 DMA 채널과 연계되는 제1사이즈 데이터와 제1DMA 요구신호를 수신하는 단계; 상기 DMA 요구신호에 응답하여 상기 DMA 채널을 통해 제1사이즈 데이터에 의해 지시된 제1양의 데이터를 전송하는 단계; 상기 DMA 제어기내에 상기 DMA 채널에 연계되는 제2사이즈 데이터와 제2DMA 요구신호를 수신하는 단계; 상기 제2DMA 요구신호에 응답하여 상기 DMA 채널을 통한 제2사이즈 데이터에 의해 지시된 제2양의 데이터를 전송하는 단계로 구성된 것을 특징으로 하는 방법.
- 제16항에 있어서, 상기 제1양의 데이터는 제1수의 워드 데이터이고, 상기 제2양의 데이터는 제2수의 워드 데이터인 것을 특징으로 하는 방법.
- DMA 제어기내에 그 DMA 제어기를 통해 제1DMA 채널과 연계되는 제1사이즈 데이터와 제1DMA 요구신호를 수신하는 단계; 상기 DMA 요구신호에 응답하여 상기 제1DMA 채널을 통해 제1사이즈 데이터에 의해 지시된 제1양의 데이터를 전송하는 단계; 상기 DMA 제어기내에 제2DMA 채널에 연계되는 제2사이즈 데이터와 제2DMA 요구신호를 수신하는 단계; 및 상기 제2DMA 요구신호에 응답하여 상기 제2DMA 채널을 통한 제2사이즈 데이터에 의해 지시된 제2양의 데이터를 전송하는 단계로 구성된 것을 특징으로 하는 방법.
- 제18항에 있어서, 상기 제1양의 데이터는 제1수의 워드 데이터이고, 상기 제2양의 데이터는 제2수의 워드 데이터인 것을 특징으로 하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8/733,411 | 1996-10-18 | ||
US08/733,411 US5974480A (en) | 1996-10-18 | 1996-10-18 | DMA controller which receives size data for each DMA channel |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980032244A KR19980032244A (ko) | 1998-07-25 |
KR100231897B1 true KR100231897B1 (ko) | 1999-12-01 |
Family
ID=24947487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970034996A KR100231897B1 (ko) | 1996-10-18 | 1997-07-25 | 디엠에이 채널의 사이즈 데이터를 수신하는 디엠에이 제어회로 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5974480A (ko) |
JP (1) | JPH10149332A (ko) |
KR (1) | KR100231897B1 (ko) |
TW (1) | TW405076B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000065450A (ko) * | 1999-04-03 | 2000-11-15 | 구자홍 | 버스 인터페이스 시스템과 이를 이용한 버스 인터페이스 방법 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260098B1 (en) * | 1998-12-17 | 2001-07-10 | International Business Machines Corporation | Shared peripheral controller |
US6813251B1 (en) | 1999-07-27 | 2004-11-02 | Intel Corporation | Split Transaction protocol for a bus system |
US6782465B1 (en) | 1999-10-20 | 2004-08-24 | Infineon Technologies North America Corporation | Linked list DMA descriptor architecture |
US6434633B1 (en) * | 1999-11-02 | 2002-08-13 | Conexant Systems, Inc. | Method and apparatus for facilitating AC-link communications between a controller and a slow peripheral of a codec |
JP2001154976A (ja) * | 1999-11-25 | 2001-06-08 | Canon Inc | Dmaコントローラ及びその制御方法 |
GB2359703B (en) * | 2000-02-24 | 2004-04-07 | Advanced Risc Mach Ltd | A controller and method for controlling interfacing to a data link |
US7075565B1 (en) * | 2000-06-14 | 2006-07-11 | Landrex Technologies Co., Ltd. | Optical inspection system |
US6795875B2 (en) * | 2000-07-31 | 2004-09-21 | Microsoft Corporation | Arbitrating and servicing polychronous data requests in direct memory access |
KR20020021739A (ko) * | 2000-09-16 | 2002-03-22 | 박종섭 | 디엠에이 제어기 |
US7032082B1 (en) * | 2001-08-31 | 2006-04-18 | Juniper Networks, Inc. | Centralized memory allocation with write pointer drift correction |
US20040268082A1 (en) * | 2003-06-27 | 2004-12-30 | Michael Yatziv | Method and system for parcel-based data mapping |
US7114014B2 (en) * | 2003-06-27 | 2006-09-26 | Sun Microsystems, Inc. | Method and system for data movement in data storage systems employing parcel-based data mapping |
US7136943B2 (en) * | 2004-03-18 | 2006-11-14 | International Business Machines Corporation | Method and apparatus for managing context switches using a context switch history table |
US20050223131A1 (en) * | 2004-04-02 | 2005-10-06 | Goekjian Kenneth S | Context-based direct memory access engine for use with a memory system shared by devices associated with multiple input and output ports |
EP1591906A1 (en) * | 2004-04-27 | 2005-11-02 | Texas Instruments Incorporated | Efficient data transfer from an ASIC to a host using DMA |
US8006001B2 (en) * | 2004-09-22 | 2011-08-23 | Lsi Corporation | Method and apparatus for manipulating direct memory access transfers |
US7447810B2 (en) * | 2004-10-28 | 2008-11-04 | Intel Corporation | Implementing bufferless Direct Memory Access (DMA) controllers using split transactions |
JP2007183692A (ja) * | 2005-12-29 | 2007-07-19 | Fujitsu Ltd | データ処理装置 |
US7721018B2 (en) * | 2006-08-24 | 2010-05-18 | Microchip Technology Incorporated | Direct memory access controller with flow control |
JPWO2012039143A1 (ja) * | 2010-09-21 | 2014-02-03 | 三菱電機株式会社 | Dmaコントローラ及びデータ読出装置 |
US8943238B2 (en) * | 2012-05-18 | 2015-01-27 | Atmel Corporation | Operations using direct memory access |
US12047275B2 (en) * | 2022-03-25 | 2024-07-23 | Xilinx, Inc. | Efficiency and quality of service improvements for systems with higher bandwidth clients mixed with lower bandwidth clients |
TWI844326B (zh) * | 2023-03-31 | 2024-06-01 | 大陸商星宸科技股份有限公司 | 直接記憶體存取電路及其操作方法 |
CN117931705B (zh) * | 2024-03-21 | 2024-06-18 | 上海朔集半导体科技有限公司 | Dma控制器及其控制方法、车规级芯片、存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04363745A (ja) * | 1991-05-17 | 1992-12-16 | Toshiba Corp | Dmaコントローラ |
US5440752A (en) * | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
JPH0561951A (ja) * | 1991-08-30 | 1993-03-12 | Fujitsu Ltd | イメージ処理装置 |
JP2599539B2 (ja) * | 1991-10-15 | 1997-04-09 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 直接メモリ・アクセス装置及びルック・アヘッド装置 |
US5651138A (en) * | 1994-08-31 | 1997-07-22 | Motorola, Inc. | Data processor with controlled burst memory accesses and method therefor |
US5619727A (en) * | 1995-03-08 | 1997-04-08 | United Microelectronics Corp. | Apparatus for a multiple channel direct memory access utilizing a virtual array technique |
US5812800A (en) * | 1995-09-11 | 1998-09-22 | Advanced Micro Devices, Inc. | Computer system which includes a local expansion bus and a dedicated real-time bus and including a multimedia memory for increased multi-media performance |
US5809333A (en) * | 1996-04-08 | 1998-09-15 | Vlsi Technology, Inc. | 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 |
-
1996
- 1996-10-18 US US08/733,411 patent/US5974480A/en not_active Expired - Lifetime
-
1997
- 1997-07-25 KR KR1019970034996A patent/KR100231897B1/ko not_active IP Right Cessation
- 1997-09-19 TW TW086113592A patent/TW405076B/zh not_active IP Right Cessation
- 1997-10-20 JP JP9287218A patent/JPH10149332A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000065450A (ko) * | 1999-04-03 | 2000-11-15 | 구자홍 | 버스 인터페이스 시스템과 이를 이용한 버스 인터페이스 방법 |
Also Published As
Publication number | Publication date |
---|---|
JPH10149332A (ja) | 1998-06-02 |
KR19980032244A (ko) | 1998-07-25 |
TW405076B (en) | 2000-09-11 |
US5974480A (en) | 1999-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100231897B1 (ko) | 디엠에이 채널의 사이즈 데이터를 수신하는 디엠에이 제어회로 | |
US5881255A (en) | Bus control system incorporating the coupling of two split-transaction busses of different hierarchy | |
US4860244A (en) | Buffer system for input/output portion of digital data processing system | |
KR100245817B1 (ko) | 직접메모리억세스(dma)를구비한전이중직렬코텍인터페이스 | |
US5752076A (en) | Dynamic programming of bus master channels by intelligent peripheral devices using communication packets | |
US7072996B2 (en) | System and method of transferring data between a processing engine and a plurality of bus types using an arbiter | |
EP1012734B1 (en) | Address translation in computer bus bridge devices | |
US5461723A (en) | Dual channel data block transfer bus | |
KR20060122934A (ko) | 복수의 어드레스 2 채널 버스 구조 | |
JPH0577103B2 (ko) | ||
JPH09160866A (ja) | バス・インタフェース論理システム及び同期方法 | |
KR20010062770A (ko) | 데이터 전송 장치 | |
US5850571A (en) | System and method for converting read cycles into write cycles for improved system performance | |
US5754802A (en) | Increasing data transfer efficiency for a read operation in a non-split transaction bus environment by substituting a write operation for the read operation | |
JP3602435B2 (ja) | 制御チップセット間におけるデータトランザクション方法 | |
JP4928683B2 (ja) | データ処理装置 | |
EP3819778A1 (en) | Bus system and method for operating a bus system | |
JPH10334039A (ja) | バースト転送装置 | |
JP2724797B2 (ja) | ダイレクト・メモリ・アクセス・システム | |
KR0170742B1 (ko) | 엠버스를 이용한 데이터 전송 방법 | |
JPH09259071A (ja) | 通信制御装置 | |
KR100328630B1 (ko) | 선버스와 브이엠버스의 데이타 전송방법 및 전송채널장치 | |
KR20020051545A (ko) | 실시간 고속의 데이터 처리용 디엠에이 제어기 및 제어방법 | |
KR20000013078A (ko) | 다중 프로세서 시스템의 프로세서간 통신 장치 및 방법 | |
GB2260836A (en) | Bus Interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120831 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20130902 Year of fee payment: 15 |
|
FPAY | Annual fee payment |
Payment date: 20140901 Year of fee payment: 16 |
|
FPAY | Annual fee payment |
Payment date: 20150831 Year of fee payment: 17 |
|
EXPY | Expiration of term |