KR20010062770A - 데이터 전송 장치 - Google Patents

데이터 전송 장치 Download PDF

Info

Publication number
KR20010062770A
KR20010062770A KR1020000082791A KR20000082791A KR20010062770A KR 20010062770 A KR20010062770 A KR 20010062770A KR 1020000082791 A KR1020000082791 A KR 1020000082791A KR 20000082791 A KR20000082791 A KR 20000082791A KR 20010062770 A KR20010062770 A KR 20010062770A
Authority
KR
South Korea
Prior art keywords
dma
data
transfer
local
bus
Prior art date
Application number
KR1020000082791A
Other languages
English (en)
Other versions
KR100395383B1 (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 KR20010062770A publication Critical patent/KR20010062770A/ko
Application granted granted Critical
Publication of KR100395383B1 publication Critical patent/KR100395383B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

메인 버스에 결합된 메인 메모리로 부터 로컬 버스에 결합된 로컬 메모리에 데이터를 전송하기 위한 데이터 전송 장치가 제공된다. 데이터 전송 장치는, 메인 버스에 결합된 CPU에 의해 엑세스되는 1 또는 그이상의 워드들의 CPU 접근 데이터를, 및 메인 버스에 결합되는 DMA 제어기에 의해 엑세스되는 다수의 워드들의 DMA 엑세스 데이터를 저장하기 위한 데이터 영역을 가지는 퍼스트-인-퍼스트-아웃 버퍼와; 퍼스트-인-퍼스트-아웃 버퍼를 제어하기 위한 제어기를 포함한다. 로컬 버스가 이용가능할 때, 제어기는 데이터 영역내에 저장된 1 또는 그이상의 워드들의 CPU 엑세스 데이터를 로컬 메모리에 연속적으로 전송하고, 데이터 영역내에 저장된 다수의 워드들의 DMA 엑세스 데이터를 로컬 메모리에 버스트 전송하도록 퍼스트-인-퍼스트-아웃 버퍼를 제어한다.

Description

데이터 전송 장치{Data transfer apparatus}
본 발명은 메인 버스에 결합된 메인 메모리로부터 로컬 버스에 결합된 로컬 메모리에 데이터를 전송하는 데이터 전송 장치에 관한 것이다.
도 6은 종래의 데이터 전송 장치(100)의 구조를 도시한다
데이터 전송 장치(100)은 메인 메모리(113)로부터 로컬 메모리(156)에 데이터를 전송한다.
데이터 전송 장치(100)는 메인 버스 인터페이스(127), 로컬 버스 인터페이스(134), DMA 상위 어드레스 레지스터(120), DMA 전송되는 워드들의 수를 저장하는 DMA 전송 워드 수 레지스터(121), 가산기(104), 감산기(103), 및 제어기(122)를 포함한다.
메인 버스 인터페이스(127) 및, 로컬 버스 인터페이스(134)는 내부 데이터 라인(151)과 내부 어드레스 라인(152)를 통해 상호 연결된다.
메인 버스 인터페이스(127)은 메인 데이터 버스(113) 및 메인 어드레스 버스(150)에 결합된다. 메인 데이터 버스(113)와 메인 어드레스 버스(150)은 모두 데이터 전송 장치(100)를 위한 주변 장치들, 가령 CPU(110), DMA 제어기(111), 및 메인 메모리(112)에 결합된다.
로컬 버스 인터페이스(134)는 로컬 데이터 버스(128) 및 로컬 어드레스 버스(135)에 결합된다. 로컬 데이터 버스(128) 및 로컬 어드레스 버스(135)는 모두 버스 인터페이스(155)를 통해, 데이터 전송 장치(100)를 위한 주변 장치들, 가령 로컬 메모리(156)에 결합된다.
내부 데이터 처리기(161)는 또한 로컬 데이터 버스(128) 및 로컬 어드레스 버스(135)에 또한 결합된다. 데이터 전송 장치(100) 및 내부 데이터 처리기(161)은 로컬 메모리(156)을 공유하는 통합(unified) 메모리 구조이다. 내부 데이터 처리기(161)는, 예컨대 비디오 출력 처리기 회로일 수 있다.
여기서, CPU(110) 및 DMA 제어기(111)로 부터 한번에 1개의 워드를 로컬 메모리(156)에 전송할 때, 내부 버스 전송 사이클(즉, "로컬 버스 전송 사이클")은 외부 버스 전송 사이클(즉, " 메인 버스 전송 사이클")의 1/2일 수 있는 것으로 여겨진다.
그러나, 실제로 외부 버스 전송 사이클 및 내부 버스 전송 사이클은 각각 10MHz 와 100MHz 일 수 있다. 이러한 이유중 하나는 칩의 내부 버스의 클럭은 칩의 외부 버스의 클럭보다 빠른 동작을 하도록 설계되었기 때문이다.
본 상세한 설명에서, CPU(110)에 의한 메인 메모리(112)로부터 로컬 메모리(156)로의 임의 데이터 전송은 "CPU 전송"으로서 참조될 것이다. DMA 제어기(111)에 의한 메인 메모리(112)로부터 로컬 메로리(156)로의 임의 데이터 전송은 "DMA 전송"으로 참조될 것이다.
CPU(110), DMA 제어기(111), 및 데이터 전송 장치(100)의 동작은 이하에서 요약될 것이다.
메인 메모리(112) 및 로컬 메모리(156)은 CPU(110) 및 DMA 제어기(111)에 메모리 대응(memory-mapped)된다.
선택적으로 또는 연속적으로 메인 데이터 버스(113)을 사용한 권리를 획득하는 DMA 제어기(111) 및 CPU(110)는 데이터 전송 장치(100)을 통해 데이터를 전송한다.
(CPU 전송)
메인 데이터 버스(113)을 사용할 권리를 획득하면, CPU(110)은 메인 데이터 버스(113) 및 메인 어드레스 버스(150)을 통해 메인 메모리(112)("전송 소스"인)로부터 데이터를 판독한다. CPU(110)은 데이터 전송 장치(110)에 출력된 CPU 엑세스 제어 신호(123)를 어설트(assert)하고, 메인 데이터 버스(113) 및 메인 어드레스 버스(150)을 통해 메인 메모리(112)로 부터 판독된 데이터를 데이터 전송 장치(100)(" 전송 목적지(destination")에 출력한다.
(DMA 전송)
DMA 전송의 경우에는, 데이터 전송 장치(100) 및 DMA 제어기(111)내의 DMA 전송을 위해 초기 설정을 성립시키기 위해 CPU(110)을 이용하는 것이 필요하다.
먼저, 전송되는 워드들의 수와 (전송 소스인)메인 메모리(112)의 상위 어드레스는 DMA 제어기(111)의 내부 레지스터(도시되지 않음)에 설정되고, DMA 전송을 시작하도록 요구된다.
다음에, CPU 엑세스를 통하여, CPU(110)는 DMA 전송을 위해 (전송 목적지인)로컬 메모리(156)의 상위 어드레스를 설정하고, 상위 어드레스는 데이터 전송 장치(100)내의 DMA 상위 어드레스 레지스터(120)에 설정된다.
다음에, CPU 엑세스를 통하여, CPU(110)은 데이터 전송 장치(100)내의 DMA 전송 워드 수 레지스터(121)에 만들어지는 DMA 전송의 수를 설정한다.
DMA 전송을 위한 초기 설정이 완료되고 데이터 전송 장치(100)가 로컬 메모리(156)에 데이터를 전송할 준비가 되면, 데이터 전송 장치(100)는 DMA 요구 신호(126)을 어설트한다.
DMA 요구 신호(126)의 어설션(assertion)을 검출하고 메인 데이터 버스(113)을 사용할 권리를 획득하면, DMA 제어기(111)은 메인 어드레스 버스(150) 및 메인 데이터 버스(113)을 통해 ("전송 소스"인) 메인 메모리(112)로 부터 데이터를 판독한다. DMA 제어기(111)은 데이터 전송 장치(100)에 출력되는 DMA 엑세스 제어 신호(125)를 어설트하고, 메인 메모리(112)로 부터 판독된 데이터를 메인 데이터 버스(113)을 통해 ("전송 목적지"인)데이터 전송 장치(100)에 출력한다.
DMA 전송동안, 로컬 메모리(156)를 위한 어드레스는 전송 목적지인 데이터 전송 장치(100)에 출력되지 않는다.
다음, 데이터 전송 장치(100) 및 버스 제어기(133)의 동작들은 이하 요약된다.
CPU 전송 또는 DMA 전송을 수행할 때, 데이터 전송 장치(100)은 로컬 버스 요구 신호(130)를 (데이터 전송 목적지인)로컬 메모리(156)에 결합되는 로컬 어드레스 버스(135) 및 로컬 데이터 버스(128)를 사용하는 권리를 요구하는 버스 제어기(128)에 출력한다. 여기서, 로컬 데이터 버스(128) 및 로컬 어드레스 버스(135)는 다수의 처리 블록들에 의해 공유되는 것으로 가정한다. 로컬 버스 요구 신호(160)가 내부 데이터 처리기(161)로부터 발생되지 않는 경우에, 버스 제어기(133)은 로컬 버스 인가(grant) 신호(129)를 데이터 전송 장치(100)에 출력한다.
다음, 데이터 전송 장치(100)의 내부 동작이 기술될 것이다.
(CPU 전송)
CPU 엑세스 제어 신호(123)과 함께 CPU(110)으로부터 출력된 로컬 메모리 어드레스 및 데이터는 메인 버스 인터페이스(127)에 일시적으로 저장된다.
CPU(110)으로부터 CPU 엑세스 제어 신호(123)을 수신하면, 제어기(122)는 CPU(110)에 출력된 대기(wait) 제어 신호(124)를 어설트하고, 로컬 버스 요구 신호(130)을 버스 제어기(133)에 출력한다.
버스 제어기(133)으로부터 로컬 버스 인가 신호(129)를 수신하면, 제어기(122)는 로컬 버스 제어기 신호(162)를 로컬 버스 인터페이스(134)에 출력한다. 로컬 버스 제어기 신호(162)에 따라서, 로컬 버스 인터페이스(134)는 내부 데이터 라인(151)을 통해 데이터를 로컬 데이터 버스(128)에 출력하고, 내부 어드레스 라인(152)을 통해 어드레스를 로컬 어드레스 버스(135)에 출력한다.
로컬 버스 제어기 신호(162)는 내부 어드레스 라인(152)을 통과하는 어드레스 또는 DMA 어드레스 라인(153)을 통과하는 어드레스가 로컬 어드레스상 버스(135)에 출력되는 지를 나타내는 어드레스 선택 필드(field)와 로컬 데이터 버스(128)상의 데이터를 출력하는 타이밍을 나타내는 필드를 포함한다. CPU 전송의 경우에, 로컬 버스 제어 신호(162)의 어드레스 선택 필드는 내부 어드레스 라인(152)상의 어드레스가 로컬 어드레스 버스(135)에 출력되도록 지시된다.
버스 인터페이스(155)는 로컬 어드레스 버스(135)상의 어드레스를 디코드(decode)하고, 로컬 데이터 버스(128)상의 데이터를 디코드된 어드레스에 따라서 로컬 메모리(156)에 출력한다.
(DMA 전송)
제어기(122)는 로컬 버스 요구 신호(130)을 버스 제어기(133)에 출력한다.
내부 데이터 처리기(161)로 부터 로컬 버스 요구 신호(160)가 어설트되지 않으면, 버스 제어기(133)은 로컬 버스 인가 신호(129)를 제어기(122)에 출력한다.
로컬 버스 인가 신호(129)의 어설션을 검출하면, 제어기(122)는 DMA 요구 신호(126)를 DMA 제어기(111)에 출력한다. DMA 제어기(111)로 부터 어설트된 DMA 엑세스 제어 신호(125)를 수신하면, 제어기(122)는 DMA 요구 신호(126)을 부정하고, 로컬 버스 제어 신호(162)를 로컬 버스 인터페이스(134)에 출력한다. DMA 전송의 경우에는, 로컬 버스 제어 신호(162)의 어드레스 선택 필드는 DMA 어드레스 라인(153)의 어드레스가 로컬 어드레스 버스(135)에 출력되도록 지시된다.
DMA 전송의 경우에는, 로컬 메모리(156)의 상위 어드레스는 DMA 상위 어드레스 레지스터(120)에 미리 설정되어있고, DMA 전송되는 워드들의 수는 DMA 전송 워드 수 레지스터(121)에 미리 설정되어 있다. DMA 엑세스가 시작하면 입력되는 DMA 엑세스 제어 신호(125)와 동기화하여,제어기(122)는 DMA 시작 요구 신호(158)를 어설트한다.
DMA 시작 요구 신호(158)의 어설션을 검출하면, 가산기(104)는 초기치(즉,DMA 상위 어드레스 레지스터(120)에 저장된 값)로 부터 시작하여, 1 워드씩 이전 DMA 어드레스를 증가시키고, 그 증가된 DMA 어드레스를 DMA 어드레스 라인(153)에 출력하고, DMA 어드레스 발생 종료 신호(154)를 어설트한다.
DMA 시작 요구 신호(158)의 어설션을 검출하면, 감산기(103)는 초기치(즉, DMA 전송 워드 수 레지스터(121)에 저장된 값)로 부터, 1 워트씩 DMA 전송되는 잔여 워드들의 이전의 수를 감소시킨다. DMA 전송되는 잔여 워드들의 수가 1이라면, 감산기(103)는 DMA 전송되는 플래그(157)에 대하여 잔여 워드들의 수를 어설트한다.
로컬 데이터 버스(128)에 대한 데이터 전송이 완료되었을 때 CPU(110)에 의한 엑세스가 이루어지지 않는다면, 제어기(122)는 DMA 전송되는 플래그(157)에대하여 잔여 워드들의 수의 부존재(negation)를 검출할 때 까지 DMA 제어기(111)에 출력된 DMA 요구 신호(126)을 계속 어설트하게 한다.
도 7은 CPU 전송들 및 DMA 전송들이 수행되는 경우에 데이터 전송 장치(100)의 동작 시퀀스를 도시한다.
도 7에서, 각 신호의 L(low) 레벨은 그 신호의 어설트된 상태에 대응하고, 각 신호의 H(high) 레벨은 그 신호의 부정된 상태에 대응하는 것으로 여겨진다.
도 7에서 도시된 실시예에서, 1 워드 CPU 전송은 5 번 수행되고, 10 워드 DMA 전송은 1 번 수행된다.
DMA 전송을 위한 상기 초기치들은 사이클 T1 이전에 설정되는 것으로 여겨진다. 데이터 전송 장치(100)은 DMA 요구 신호(126)을 어설트한다. DMA 요구신호(126)의 어설션을 검출하면, DMA 제어기(111)은 DMA 전송 어설션 요구 신호(197)를 어설트한다.
이제, 검출된 DMA 전송 요구 신호(197)의 어설션을 가짐에도 불구하고, CPU(110)는 CPU 전송이 다음 사이클들에 만들어지도록 결정할 것이다. 결과적으로, CPU(110)과 데이터 전송 장치(100) 사이의 외부 버스 전송(CPU_M1)은 (CPU 기본 엑세스 시간을 정의하는 사이클들인) 사이클 T1 과 T2동안에 발생한다. CPU(110)은 사이클 T1에서 CPU 엑세스 제어 신호(123)을 어설트하는 것을 시작한다.
CPU 엑세스 제어 신호(123)의 어설션이 검출되면, 데이터 전송 장치(100)은 대기 제어 신호(124)를 어설트한다. 대기 제어 신호(124)가 어설트되는 동안, CPU(110)은 CPU 전송이나 DMA 전송이 다음 및 그이후의 사이클들에서 이루어지지 않도록 제어된다.
사이클 T3에서, 내부 버스 전송(CPU_L1)은 데이터 전송 장치(100)과 로컬 메모리(156)사이에서 발생한다.
내부 버스 전송(CPU_L1)이 완료되면, 데이터 전송 장치(100)은 대기 제어 신호(124)를 부정한다.
대기 제어 신호(124)의 부존재(negation)을 검출하면, CPU(110)은 CPU 엑세스 제어 신호(123)을 부정하고, 다음 사이클에서 CPU 전송 또는 DMA 전송을 수행하기 위한 준비를 시작한다. 여기서, CPU(110)는 DMA 전송 요구 신호(197)의 어설션을 검출하고, DMA 전송이 다음 사이클에서 이루어지는 지를 결정하는 것으로 여겨진다. 이 경우에, CPU(110)은 DMA 제어기(111)에 출력되는 DMA 전송허가(permission) 신호(196)를 어설트한다.
DMA 전송 허가 신호(196)의 어설션을 검출하면, DMA 제어기(111)는 DMA 기본 엑세스 시간을 정의하는 사이클 T1 및 T2 로 DMA 제어기(111)과 데이터 전송 장치(100)사이에서의 외부 버스 전송(DMA_M1)를 수행하고, DMA 엑세스 제어 신호(125)를 어설트한다. DMA 엑세스 제어 신호(125)는 DMA 기본 엑세스 시간동안에만 어설트된다.
DMA 엑세스 제어 신호(125)의 어설션을 검출하면, 데이터 전송 장치(100)은 DMA 요구 신호(126)을 부정한다.
사이클 T6에서, 내부 버스 전송(DMA_L1)은 데이터 전송 장치(100)와 로컬 메모리(156)사이에서 발생한다.
내부 버스 전송(DMA_L1)이 완료되면, 데이터 전송 장치(100)은 DMA 전송되는 잔여 워드들의 수를 검출하고, DMA 요구 신호(126)을 어설트하기 시작한다.
DMA 요구 신호(126)의 어설션을 검출하면, DMA 제어기(111)은 DMA 전송 요구 신호(197)을 어설트하기 시작한다.
그 후에, CPU(110)는 선택적 또는 연속적인 방식으로 CPU 전송 또는 DMA 전송을 수행한다. 그러나, 데이터 전송 장치(100)과 로컬 메모리(156)사이의 내부 버스 전송은 임의 내부 버스 전송(예컨대, INT_1)이 내부 데이터 처리기(161)과 로컬 메모리(156)사이에서 발생한다면, 그러한 내부 버스 전송이 완료될 때 까지 대기해야 한다. 결과적으로, CPU(110)과 데이터 전송 장치(100)사이에서의 데이터 전송을 수행하기 위해서는 더 많은 사이클이 요구된다.
사이클 T7에서, CPU(110)은 CPU 엑세스 제어 신호(123)을 어설트하고, 이에 의하여 데이터 전송을 시작하도록 데이터 전송 장치(100)에 지시한다. CPU 엑세스 제어 신호(123)의 어설션을 검출하면, 데이터 전송 장치(100)은 로컬 버스 요구 신호(130)을 버스 제어기(133)에 출력하고, 이에 의하여 버스 제어기(133)으로부터 로컬 버스를 사용하는 권리를 요구한다. 그러나, 도 7에서 도시된 예에서, 버스 제어기(133)는 내부 데이터 처리기(161)가 로컬 버스를 사용하는 권리를 유사하게 요구하기 때문에, 데이터 전송 장치(100)보다는 내부 데이터 처리기(161)에게 로컬 버스를 사용하는 권리를 준다.
사이클 T8에서, 내부 데이터 처리기(161)과 로컬 메모리 사이에서 내부 버스 전송(INT_1)은 시작한다. 내부 버스 전송(INT_1)은 사이클 T12의 종료시까지 계속된다.
사이클 T12의 종료시에, 버스 제어기(133)은 데이터 전송 장치(100)에게 로컬 버스를 사용하는 권리를 준다.
사이클 T13에서, 데이터 전송 장치(100)과 로컬 메모리(156) 사이의 내부 버스 전송(CPU_L2)이 발생한다. 내부 버스 전송(CPU_L2)이 완료되면, 데이터 전송 장치(100)은 대기 제어 신호(124)를 부정한다. 대기 제어 신호(124)의 부존재(negation)를 검출하면, CPU(110)은 CPU 엑세스 제어 신호(123)을 부정한다.
그 후에, CPU(110)과 DMA 제어기(111)은 데이터를 데이터 전송 장치(100)에 전송하도록 메인 버스들을 사용하는 권리를 위해 서로 경합하다.
사이클 T47에서, DMA 엑세스 제어 신호(125)는 10 번째에 검출된다. 이 시점에서, DMA 전송되는 잔여 워드들의 수는 0 에 도달하고, 따라서 데이터 전송 장치(100)으로 부터의 DMA 요구 신호(126)는 부정된다. 이후에, 임의 DMA 전송은 상기 DMA 전송에 대한 초기치들이 미리 CPU(110)에 의해 다시 설정된 후에만 재개될 것이다.
상술한 바와 같이, 종래의 데이터 전송 장치(100)과 로컬 메모리(156)사이의 내부 버스 전송은 내부 데이터 처리기(161)와 로컬 메모리(156)사이에서 발생하는 임의의 내부 버스 전송이 완료될 때까지 대기해야 한다.
따라서, 종래의 데이터 전송 장치(100)는 로컬 버스가 이용가능 할 때가지, CPU 전송을 지연시키거나, DMA 전송 요구를 DMA 제어기(111)에 출력하지 않도록 제어된다. 결과적으로, 데이터 전송 장치(100) 및 그와 관련된 임의 주변 장치들을 포함하는 전 시스템의 전체 데이터 전송 속도를 개선하는 것은 어렵다.
도 1은 본 발명의 실시예 1에 따른 데이터 전송 장치(1)의 구조를 도시하는 블록도.
도 2는 도 1에 도시된 FIFO(2)의 전형적 구조를 도시하는 다이어그램.
도 3은 본 발명의 실시예 2에 따른 데이터 전송 장치(1a)의 구조를 도시한 다이어그램.
도 4는 도 3에서 도시된 FIFO(2a)의 전형적 구조를 도시한 다이어그램.
도 5는 CPU 전송들과 DMA 전송들이 수행되는 본 발명에 따른 데이터 전송 장치(1)의 동작 시퀀스를 도시한 사이클 타이밍 다이어그램.
도 6은 종래의 데이터 전송 장치(100)의 구조를 도시한 블록도.
도 7은 CPU 전송들과 DMA 전송들이 수행되는 종래의 데이터 전송 장치(100)의 동작 시퀀스를 도시하는 사이클 타이밍 다이어그램.
본 발명에 따라서, 메인 버스에 결합된 메인 메모리로부터 데이터를 로컬 버스에 결합된 로컬 메모리에 전송하는 데이터 전송 장치가 제공되고, 상기 데이터 전송 장치는, 메인 버스에 결합된 CPU에 의해 엑세스되는 CPU 엑세스 데이터의 1 또는 그이상의 워드들과 메인 버스에 결합된 DMA 제어기에 의해 엑세스되는 DMA 엑세스 데이터의 다수의 워드들을 저장하는 데이터 영역을 가지는 퍼스트-인-퍼스트-아웃(first-in-first-out) 버퍼와, 퍼스트-인-퍼스트-아웃 버퍼를 제어하기 위한 제어기를 포함하고, 여기서, 로컬 버스가 이용가능할 때, 제어기는 데이터 영역에 저장된 1 또는 그 이상의 CPU 엑세스 데이터의 워드들을 로컬 메모리에 연속적으로전송하도록, 그리고 데이터 영역내에 저장된 DMA 엑세스 데이터의 다수의 워드들을 로컬 메모리에 버스트 (burst) 전송하도록 퍼스트-인-퍼스트-아웃 버퍼를 제어한다.
본 발명의 일 실시예에서, 제어기는 로컬 DMA 전송들을 단위들마다 실행하며, 각 단위는 데이터 영역내에 저장된 DMA 엑세스 데이터의 다수의 워드들을 포함하고, 로컬 DMA 전송의 단위마다 로컬 버스를 사용하는 요구를 한다.
본 발명의 다른 실시예에서, 제어기는 로컬 DMA 전송의 형태로 데이터 영역내에 저장된 1 또는 그 이상의 CPU 엑세스 데이터의 워드들의 전송과, 로컬 DMA 전송의 형태로 데이터 영역내에 저장된 DMA 엑세스 데이터의 다수의 워드들의 전송을 실행한다.
본 발명의 다른 실시예에서, 퍼스트-인-퍼스트-아웃 버퍼는 데이터 영역내에 저장된 데이터가 CPU 엑세스 데이터인지 DMA 엑세스 데이터인지 결정하는 정보를 저장하는 영역을 더 포함한다.
따라서, 본 명세서에서 기술된 본 발명은 데이터 전송 장치 그 자체와 그와 관련된 임의 주변 장치들을 포함하는 전 시스템의 전체 데이터 전송 속도를 개선할 수 있는 데이터 전송 장치를 제공하는 장점을 가질 수 있다.
본 발명의 이러한 또는 다른 장접들은 첨부 도면을 참조하여 후술되는 상세한 설명을 읽고 이해함으로서 당업자에게 명백해 질 것이다.
이후에 본 발명은 첨부 도면을 참조하여 기술될 것이다.
(실시예1)
도 1은 본 발명의 실시예 1 에 따른 데이터 전송 장치(1)의 구조를 도시한 블록도이다.
데이터 전송 장치(1)은 메인 데이터 버스(13) 및 메인 어드레스 버스(50)에 결합된다. 메인 데이터 버스(13) 및 메인 어드레스 버스(50)은 데이터 전송 장치(1)을 위한 주변 장치들, 가령 CPU(10), DMA 제어기(11), 및 메인 메모리(12)에 결합된다. 본 상세한 설명에서, 메인 데이터 버스(13) 및 메인 어드레스 버스(50)은 함께 "메인 버스들"로서 참조될 것이다.
데이터 전송 장치(1)은 또한 로컬 데이터 버스(28)에 결합되어 있다. 로컬 데이터 버스(28)은 버스 인터페이스(55)를 통하여 데이터 전송 장치(1)을 위한 주변 장치들, 즉 로컬 메모리(56)에 결합되어 있다. 본 발명의 상세한 설명에서, 로컬 데이터 버스(28)은 또한 "로컬 버스"로서 참조될 것이다.
내부 데이터 처리기(61)은 또한 로컬 데이터 버스(28)에 결합되어 있다. 데이터 전송 장치(1) 및 내부 데이터 처리기(61)은 로컬 메모리(56)을 공유하는 통합 메모리 구조를 가진다.
여기에서, 내부 데이터 처리기(61)은 비디오 출력 처리 회로이다. 비디오 출력 처리 회로는 외부 동기화 신호(도시되지 않음)에 따라서, 외부 출력 장치(도시되지 않음), 가령 모니터로 로컬 메모리(56)에 저장된 프레임 데이터를 출력하기위해 소정의 타이밍 설계로 동작한다. 이 경우에 버스 제어기(33)는 비디오 출력 처리 회로가 CPU(10) 및 데이터 전송장치(1)사이의 데이터 전송에 주어진 것보다 더 높은 우선권을 가지고 로컬 데이터 버스(28)을 사용할 권리를 획득할 수 있도록,데이터 전송 장치(1) 및 내부 데이터 처리기(61)를 제어한다.
데이터 전송 장치(1)은 메인 메모리(12)로부터 로컬 메모리(56)에 데이터를 전송한다. 전송된 데이터는 CPU(10)에 의해 엑세스되는 데이터(이후로는 "CPU 엑세스 데이터"로서 참조됨) 또는 DMA 제어기(11)에 의해 엑세스되는 데이터(이후로 "DMA 엑세스 데이터"로서 참조됨") 중 어느 하나이다.
CPU 전송의 경우에는, CPU(10)은 메인 메모리(12)로부터 데이터를 판독하고, 그 판독된 데이터를 CPU 엑세스 데이터로서 데이터 전송 장치(1)에 출력한다. DMA 전송의 경우에는, DMA 제어기(11)은 메인 메모리(12)로 부터 데이터를 판독하고, 그 판독된 데이터를 DMA 엑세스 데이터로서 데이터 전송 장치(10)에 출력한다.
데이터 전송 장치(1)은 메인 버스 인터페이스(27), 로컬 버스 인터페이스(34), 퍼스트-인-퍼스트-아웃(FIFO) 버퍼(2), 및 제어기(22)를 포함한다.
FIFO(2)는 데이터 라인(67) 및 어드레스 라인(68)을 통하여 메인 버스 인터페이스(27)에 결합된다. FIFO(2)는 또한 데이터 라인(65)를 통해 로컬 버스 인터페이스에 결합되어 있다. FIFO(2)는 또한 어드레스 라인(66)을 통해 레지스터(89)에 결합되어 있다.
기록 포인터 발생기(15), 판독 포인터 발생기(17), 및 DMA 포인터 발생기(82)는 FIFO(2)에 엑세스하기 위한 포인터들을 발생시키기 위해 사용된다.
기록 포인터 발생기(15)는 CPU 엑세스 제어 신호(23)에 응답하여 1 워드씩 이전 기록 포인터를 증가시켜서 기록 포인터(69)를 발생시킨다. 발생된 기록 포인터(69)는 FIFO(2)에 출력된다.
DMA 포인터 발생기(82)는 DMA 엑세스 제어 신호(25)에 응답하여 1 워드씩 이전 내부 포인터를 증가시켜 기록 포인터(80)을 발생시킨다. 발생된 기록 포인터(80)은 FIFO(2)에 출력된다.
DMA 포인터 발생기(82)는 DMA 엑세스 제어 신호(25)가 입력된 횟수들의 수를 카운트하고, 그 수가 FIFO(2)(도 2)에서 DMA 전송을 위한 데이터 소영역(subregion)(230)내의 워드들의 수와 일치할 때, DMA 포인터 발생기(82)는 내부 포인터를 초기화하고, 로컬 DMA 종료 신호(84)를 제어기(22)에 출력한다.
DMA 포인터 발생기(82)는 DMA 전송 제어 신호(83)에 응답하여 1 워드 씩 이전 내부 포인터를 증가시켜 판독 포인터(81)을 발생시킨다. 발생된 판독 포인터(81)은 FIFO(2)에 출력된다.
DMA 포인터 발생기(82)는 DMA 전송 제어기 신호(83)이 입력된 횟수의 수를 카운트하고, FIFO(2)(도 2)에서 DMA 전송을 위한 데이터 소영역(230)내의 워드들의 수와 일치할 때, DMA 포인터 발생기(82)는 내부 포인터를 초기화하고, 로컬 DMA 종료 신호(84)를 제어기(22)에 출력한다.
포인터 비교기(74)는 기록 포인터(69)와 판독 포인터(70)을 비교하고, FIFO 플래그(73)를 FIFO 플래그(73)가 그 비교 결과에 따른 값을 가지는 제어기(22)에 출0력한다. FIFO 플래그(73)의 값은 FIFO(2)에 저장된 CPU 엑세스 데이터가 없을 때에는 "0"이고; FIFO 플래그(73)의 값은 FIFO(2)에 저장된 CPU 엑세스 데이터가 있을 때에는 "1"이고; FIFO 플래그(73)의 값은 FIFO(2)에 저장된 CPU 엑세스 데이터의 수가 FIFO(2)에 저장될 수 있는 CPU 엑세스 데이터의 수의 상한과 일치하면 "2"이다.
가산기(4)는 DMA 엑세스 제어 신호(25)가 입력될 때마다 제어기(22)로 부터 출력되는 DMA 시작 요구 신호(58)에 응답하여, DMA 상위 어드레스 레지스터(20)에 이미 설정된 초기치로부터 1 워드씩 DMA 어드레스를 증가시킨다. 결과적으로, 가산기(4)는 업데이트된 DMA 어드레스를 어드레스 라인(53)에 출력한다.
감산기(3)은 DMA 엑세스 제어 신호(25)가 입력될 때마다 제어기(22)로부터 출력되는 DMA 시작 요구 신호(58)에 응답하여, DMA 전송되는 워드들의 수를 저장하는 DMA 전송 워드 수 레지스터(21)에 미리 설정된 초기치로부터 1워드씩 DMA 전송되는 워드들의 수를 감소시킨다. 결과적으로, 감산기(3)은 업데이트된 DMA 전송되는 워드들의 수를 전송 워드 수 라인(54)에 출력한다.
본 발명의 실시예에서, 임의의 CPU 전송은 1 워드의 로컬 DMA 전송으로서 소유되고, 임의의 DMA 전송은 다수의 워드들의 로컬 DMA 전송으로서 소유된다. 따라서, CPU 전송들과 DMA 전송들은 로컬 DMA 전송들과 같이 통합 방식으로 소유된다.
DMA 제어기(11)과 데이터 전송 장치(1) 사이의 DMA 전송은 다수의 분할(split) 단위들에서 발생하고, 각각의 분할 단위는 FIFO(2)에 저장가능한 DMA 엑세스 데이터의 상한과 일치하도록 지정된 로컬 DMA 전송의 "기본 수"에 기초함을 유념해야 한다.
먼저, CPU 전송의 경우에 FIFO(2)를 제어하기위한 프로토콜과 1 워드의 로컬 DMA 전송으로서 각 CPU 전송을 처리하기위해 필요한 로컬 DMA 전송의 매개변수들의전형적인 설정(setting)들이 기술될 것이다.
FIFO(2)는 CPU 엑세스 제어 신호(23)에 응답하여 업데이트된 기록 포인터(69)에 의해 지정된 위치에서, 메인 버스 인터페이스(27)을 통하여 입력된 CPU 엑세스 데이터를 다음에 저장한다.
포인터 비교기(74)는 기록 포인터(69)와 판독 포인터(70)을 비교하고, FIFO 플래그(73)을 FIFO 플래그(73)이 그 비교 결과에 따른 값을 갖는, 제어기(22)에 출력한다. FIFO 플래그(73)의 값은 FIFO(2)에 저장된 CPU 엑세스 데이터가 없을 때에는 "0"이고; FIFO 플래그(73)의 값은 FIFO(2)에 저장된 CPU 엑세스 데이터가 있을 때에는 "1"이고; FIFO 플래그(73)의 값은 FIFO(2)에 저장된 CPU 엑세스 데이터의 수가 FIFO(2)에 저장될 수 있는 CPU 엑세스 데이터의 수의 상한과 일치하면 "2"이다.
FIFO 플래그(73)의 값이 "1" 또는 "2" 이라면, 제어기(22)는 로컬 버스 요구 신호(30)을 버스 제어기(33)에 출력한다, 버스 제어기(33)으로 부터의 로컬 버스 인가 신호(29)를 수신하면, 제어기(22)는 판독 포인터 발생 요구 신호(71)를 판독 포인터 발생기(17)에 출력한다. 판독 포인터 발생기(17)은 판독 포인터 발생 요구 신호(71)에 응답하여 판독 포인터(70)을 발생시키고, 그 발생된 판독 포인터(70)을 FIFO(2)에 출력한다.
FIFO(2)는 판독 포인터(70)에 의해 지정된 CPU 엑세스 데이터를 데이터 라인(65)에 출력하고, 판독 포인터(70)에 의해 지정된 CPU 엑세스 어드레스를 어드레스 라인(66)에 출력한다.
레지스터(89)는 CPU 전송을 위한 로컬 DMA 상위 어드레스를 지정하기위해 사용된다. 로컬 DMA 상위 어드레스 레지스터(89)는 내부 동기화 신호(도시되지 않음)에 응답하여 어드레스 라인(66)를 통해 어드레스를 저장한다.
레지스터(88)은 CPU 전송을 위해 로컬 DMA 전송되는 다수의 워드들을 지정하기위해 사용된다. 레지스터(88)은 1 워드를 나타내는 고정 레지스터이다.
CPU 전송을 수행할 때, 레지스터(89)의 출력 및 레지스터(88)의 출력은 로컬 버스 인터페이스(34)에 출력된다.
다음에, DMA 전송의 경우에 FIFO(2)를 제어하기 위한 프로토콜과 다수의 워드들의 로컬 DMA 전송으로서 각각의 DMA 전송을 처리하기 위해 필요한 로컬 DMA 전송 매개변수들의 전형적인 설정들이 기술될 것이다.
FIFO(2)는 DMA 엑세스 제어 신호(25)에 응답하여 업데이트되는 DMA 기로 포인터(80)에 의해 지정된 위치에서, 메인 버스 인터페이스(27)를 통하여 입력되는 DMA 엑세스 데이터를 그 다음에 저장한다. FIFO(2)에 저장된 DMA 엑세스 데이터의 수가 상한치에 도달하면, FIFO(2)는 로컬 DMA 종료 신호(84)를 제어기(22)에 출력한다.
로컬 DMA 종료 신호(84)를 수신하면, 제어기(22)는 로컬 버스 요구 신호(30)을 버스 제어기(33)에 출력한다. 따라서, 제어기(22)는 로컬 DMA 전송들을 단위들마다 실행하며, 각각의 단위는 FIFO(2)에 저장된 DMA 엑세스 데이터의 다수의 워드들을 포함하고, 로컬 DMA 전송의 단위마다 로컬 버스를 사용하기위한 요구를 만든다. 결과적으로, 로컬 버스에 사용하기 위해 만들어진 요구들의 수를 감소시키는것이 가능하다.
버스 제어기(33)으로부터 로컬 버스 인가 신호(29)를 수신하면, 제어기(22)는 DMA 시작 요구 신호(58), DMA 전송 제어 신호(83), 및 로컬 DMA 전송 시작 신호(92)를 출력한다. 로컬 DMA 전송 종료 신호(91)를 수신하면, 제어기(22)는 로컬 버스 요구 신호(30)을 버스 제어기(33)에 다시 출력하고, 유사한 처리를 반복한다. DMA 전송되는 플래그(57)에 대한 잔여 워드들의 수가 어설트되면, 제어기(22)는 DMA 전송 처리를 종결한다.
레지스터(87)은 DMA 전송을 위해 로컬 DMA 상위 어드레스를 지정하기위해 사용된다. 제어기(22)로 부터 출력되는 로컬 DMA 전송 시작 신호(92)에 응답하여, 레지스터(87)은 DMA 어드레스 라인(53)을 통해 DMA 어드레스를 로컬 DMA 상위 어드레스로서 로컬 버스 인터페이스(34)에 출력한다.
레지스터(86)은 DMA 전송을 위한 로컬 DMA 전송되는 다수의 워드들을 지정하기 위해 사용된다. 레지스터(86)은 비교기(90)의 출력을 저장한다. 레지스터(86)은 비교기(90)의 출력을 로컬 DMA 전송되는 워드들의 수로서 로컬 버스 인터페이스(34)에 출력한다.
비교기(90)은 전술한 로컬 DMA 전송 기본 수와 전송 워드 수 라인(54)에 존재하는 DMA 전송되는 워드들의 수를 비교하고, 로컬 DMA 전송되는 워드들의 수로서 레지스터(86)에 상기 2개의 값중 적은것을 설정한다. 또한, 비교기(90)은 로컬 DMA 전송되는 워드들의 수와 로컬 DMA 전송 카운터(85)의 출력치를 비교하고, 2개의 값이 동일하면 로컬 DMA 전송 종료 신호(91)을 제어기(22)에 출력한다.
로컬 DMA 전송 카운터(85)는 제어기(22)로 부터 출력되는 로컬 DMA 전송 시작 신호(92)에 응답하여 카운트 수를 초기화하고, 내부 동기화 신호(도시되지 않음)의 펄스들을 카운트한다.
제어기(22)는 소정의 우선 레벨들에 따라서 DMA 전송을 위한 로컬 DMA 전송 매개변수들 또는 CPU 전송을 위한 로컬 DMA 전송 매개변수들 중 어느 하나를 선택하기 위해 엑세스 제어 신호(95)를 로컬 버스 인터페이스(34)에 출력한다.
DMA 전송보다는 CPU 전송에 높은 우선권이 주어지는 경우에, 로컬 버스 인터페이스(34)는 로컬 DMA 전송 매개변수들로서 버스 인터페이스(55)내에 레지스터(88)의 출력과 레지스터(89)의 출력을 설정한다. 그러한 설정은 DMA 제어 라인(93)을 통하여 이루어질 수 있다.
CPU 전송보다 DMA 전송에게 높은 우선권이 주어지는 경우에는 로컬 DMA 전송 매개변수들로서 버스 인터페이스(55)에 레지스터(86)의 출력과 레지스터(87)의 출력을 설정한다. 그러한 설정은 DMA 제어 라인(93)을 통하여 이루어질 수 있다.
DMA 전송을 위한 로컬 DMA 전송 매개변수들을 발생시키기 위해, DMA 전송 제어 신호(83)은 데어터 전송에 앞서 DMA 포인터 발생기(82)에 출력한다. FIFO(2)는 판독 포인터(81)에 의해 지정되는 위치에 있는 DMA 엑세스 데이터를 판독하고, DMA 엑세스 데이터를 데이터 라인(65)에 출력한다. 로컬 버스 인터페이스(34)는 데이터 라인(65)를 통해 DMA 엑세스 데이터를 저장한다.
로컬 DMA 전송이 가능하자 마자, 버스 인터페이스(55)는 로컬 DMA 요구 신호(94)를 제어기(22)에 출력한다.
로컬 버스 인가 신호(29)를 수신하면, 제어기(22)는 DMA 제어 라인(93)을 통해 버스 인터페이스(55)에게 로컬 DMA 전송을 시작하도록 지시하고, DMA 전송의 경우에는 로컬 DMA 전송 시작 신호(92)와 DMA 전송 제어 신호(83)을 출력한다. FIFO(2)는 판독 포인터(81)에 의해 지정된 위치에 있는 DMA 엑세스 데이터를 판독하고, 그렇게 판독된 DMA 엑세스 데이터를 데이터 라인(65)에 출력한다. 로컬 버스 인터페이스(34)는 데이터 라인(65)를 통해 DMA 엑세스 데이터를 로컬 데이터 버스(28)에 출력한다.
CPU 전송의 경우에는, 로컬 버스 인터페이스(34)는 로컬 DMA 전송 매개변수들을 발생시키는 시간에서 저장되는 CPU 엑세스 데이터를 로컬 데이터 버스(28)에 전송한다.
도 2는 FIFO(2)의 전형적인 구조를 도시한다.
FIFO(2)는 CPU 엑세스 데이터의 1 또는 그이상의 워드들와 DMA 엑세스 데이터의 다수의 워드들을 저장하기 위한 데이터 영역을 포함한다. 도 2에 도시된 전형적인 구조에서, 데이터 영역은 CPU 엑세스 데이터의 1 또는 그이상의 워드들을 저장하는 CPU 전송을 위한 데이터 소영역(210)과 DMA 엑세스 데이터의 다수의 워드들을 저장하는 DMA 전송을 위한 데이터 소영역(230)으로 분할된다. 그러나, 데이터 영역은 이러한 방식으로 분할될 필요는 없다. FIFO(2)의 데이터 영역은 CPU 엑세스 데이터의 1 또는 그이상의 워드들과 DMA 엑세스 데이터의 다수의 워드들을 저장할 수 있는 임의의 포맷으로 구성될 수 있다.
CPU 전송을 위해 제공되는 데이터 소영역(210)은 CPU 엑세스 데이터의 1 또는 그이상의 필드들(210a)과 CPU 엑세스 어드레스의 1 또는 그 이상의 필드들(210b)를 포함한다. CPU 엑세스 데이터의 1 또는 그이상의 필드들(210a) 각각은 1워드의 CPU 엑세스 데이터를 저장한다. CPU 엑세스 어드레스의 1 또는 그 이상의 필드들(210b) 각각은 대응하는 CPU 엑세스 데이터 필트(210a)에 CPU 엑세스 데이터의 어드레스를 저장한다.
DMA 전송을 위한 데이터 소영역(230)은 DMA 엑세스 데이터의 다수의 필드들(230a)를 포함한다. DMA 엑세스 데이터의 다수의 필드들(230a) 각각은 1 워드의 DMA 엑세스 데이터를 저장한다.
도 2에서 도시된 전형적인 구조에서, 8개의 CPU 엑세스 데이터 필드들(210a)와 8개의 CPU 엑세스 어드레스 필드들(210b)가 CPU 전송을 위한 데이터 소영역(210)내에 포한되어있고, 반면에 8 개의 DMA 엑세스 데이터 필드들(230a)는 DMA 전송을 위한 데이터 소영역(230)내에 포함된다. 그러나, 데이터 소영역들(210 및 230)에 포함되는 필드들의 수는 8개로 제한되지는 않는다. 오히려, 데이터 소영역들(210 및 230)는 임의의 수의 필드들을 포함할 수 있다. 데이터 소영역(210)내의 필드들의 수와 데이터 소영역(230)내의 필드들의 수는 다를 수 있다.
먼저, FIFO(2)에 대한 데이터 기록 동작이 기술될 것이다.
CPU 엑세스 데이터가 FIFO(2)에 입력되는 경우에, CPU 엑세스 데이터를 위한 기록 위치에 대응하는 다수의 기록 제어 라인들(220a)중 하나가 기록 포인터(69)에 따라서 어설트되어 있다. 그러한 선택적 어설션은 회로(210c)에 의하여 이루어진다. 결과적으로, 데이터 라인(67)를 통과하는 데이터는 어설트된 기록 제어라인(220a)에 결합되는 CPU 엑세스 데이터 필드(210a)에 기록되고, 어드레스 라인(68)을 통과하는 어드레스는 어설트된 기록 제어 라인(220a)에 결합되는 CPU 엑세스 어드레스 필드(210a)에 기록된다.
DMA 엑세스 데이터가 FIFO(2)에 입력되는 경우에,DMA 엑세스 데이터를 위한 기록 위치에 대응하는 다수의 기록 제어 라인들(240a)중 하나는 기록 포인터(80)에 따라서 어설트된다. 그러한 선택적 어설션은 회로(230b)에 의하여 이루어진다. 결과적으로, 데이터 라인(67)을 통과하는 데이터는 어설트된 기록 제어 라인(240a)에 결합되는 DMA 엑세스 데이터 필드(230a)에 기록된다.
다음에, FIFO(2)로 부터의 데이터 판독 동작이 기술될 것이다.
판독 포인터(70)에 따라서, 선택기(210d)는 CPU 엑세스 데이터 필드들(210a)와 관련된 각 출력들(220b)중 하나를 선택하고, 그 선택된 출력(220b)를 데이터 라인(65)에 출력한다.
또한 판독 포인터(70)에 따라서, 선택기(210e)는 CPU 엑세스 데이터 필드들(210b)와 관련된 각 출력들(220c)중 하나를 선택하고, 그 선택된 출력(220b)를 어드레스 라인(66)에 출력한다.
판독 포인터(81)에 따라서, 선택기(230c)는 DMA 엑세스 데이터의 다수의 필드들(230a)와 관련된 각 출력들(230c)중 하나를 선택하고, 그 선택된 출력(230c)를 데이터 라인(65)에 출력한다.
판독 포인터(70)가 부정되면, 데이터 선택기(210d)와 어드레스 선택기(210e)의 출력들은 높은 임피던스 상태가 된다. 판독 포인터(81)가 부정되면, 데이터 선택기(230c)의 출력은 높은 임피던스 상태가 된다. 따라서, 데이터 충돌(conflict)는 피할 수 있다.
도 5는 CPU 전송들과 DMA 전송들이 모두 수행되는 경우에 데이터 전송 장치(1)의 동작 시퀀스를 도시하는 사이클 타이밍 다이어그램이다.
도 5에서 각 신호의 L 레벨은 그 신호의 어설트된 상태에 대응하고, 각 신호의 H 레벨은 그 신호의 부정 상태에 대응되는 것으로 여겨진다.
도 5에 도시된 실시예에서, 1 워드 CPU 전송은 5 번 수행되고, 10 워드 전송은 1 번 수행된다.
DMA 전송을 위한 전술한 초기치들은 사이클 T1 이전에 설정되는 것으로 여겨진다. 데이터 전송 장치(1)은 DMA 요구 신호(26)을 어설트한다. DMA 요구 신호(26)의 어설션을 검출하여, DMA 제어기(11)은 DMA 전송 요구 신호(97)을 어설트한다.
이제, DMA 전송 요구 신호(97)의 어설션을 검출했음에도 불구하고, CPU(10)은 CPU 전송이 다음 그리고 그이후의 사이클에서 이루어지는 지를 결정할 것이다. 결과적으로, CPU(10)과 데이터 전송 장치(1)사이의 외부 버스 전송(CPU_M1)은 (CPU 기본 엑세스 시간을 정의하는 사이클들인)사이클 T1과 T2동안에 발생한다. CPU(10)은 사이클 T1에서 CPU 엑세스 제어 신호(23)에 어설트하기 시작한다.
CPU 엑세스 제어 신호(23)의 어설션을 검출하면, 데이터 전송 장치(1)은 대기 제어 신호(24)를 어설트한다. 대기 제어 신호(24)가 어설트되는 동안, CPU(10)은 CPU 전송 또는 DMA 전송중 어느 하나도 다음 그리고 그이후의 사이클들에서 이루어지지 않도록 제어된다.
사이클 T2의 종결시에, 데이터 전송 장치(1)은 메인 데이터 버스(13)으로부터 FIFO(2)로 입력된 데이터를 저장하고, 대기 제어 신호(24)를 부정한다.
대기 제어 신호(24)의 부존재(negation)를 검출하면, CPU(10)은 CPU 엑세스 제어 신호(23)을 부정하고, 다음 사이클에서 CPU 전송 또는 DMA 전송을 수행하기 위한 준비를 시작한다. 여기서, CPU(10)은 DMA 전송 요구 신호(97)의 어설션을 검출하고, DMA 전송이 다음 사이클에서 이루어져야 하는 지를 결정한다. 이 경우에, CPU(10)은 DMA 제어기(11)에 출력되는 DMA 전송 허가 신호(96)을 어설트한다.
DMA 전송 허가 신호(96)의 어설션을 검출하면, DMA 제어기(11)은 (DMA 기본 엑세스 시간을 정의하는 사이클들인)T3 과 T4 동안 DMA 제어기(11)과 데이터 전송 장치(1)사이의 외부 버스 전송(DMA_1)을 수행하고, DMA 엑세스 제어 신호(25)를 어설트한다. DMA 엑세스 제어 신호(25)는 DMA 기본 엑세스 시간동안에만 어설트된다.
DMA 엑세스 제어 신호(25)의 어설션을 검출하면, 데어터 전송 장치(1)은 DMA 요구 신호(26)을 부정한다.
사이클 T3에서, 내부 버스 전송(CPU_1)은 데이터 전송 장치(1)과 로컬 메모리(56)사이에서 발생한다. 내부 버스 전송(CPU_1)동안, FIFO(2)에 저장되는 CPU 엑세스 데이터는 로컬 메모리(56)에 출력된다.
사이클 T4에서 DMA 엑세스 제어 신호(25)의 부정을 검출하면, 데이터 전송 장치(1)은 DMA 요구 신호(26)을 어설트한다.
사이클 T7내지 T20에서, DMA 제어기(11)과 데이터 전송 장치(1) 사이의 외부버스 전송은 계속적으로 수행된다.(즉, DMA_M2 내지 DMA_M8)
사이클 T7내지 T20 동안, 데이터 전송 장치(1)에 입력되는 임의의 DMA 엑세스 데이터는 FIFO(2)에서 DMA 전송을 위해 제공되는 데이터 소영역(230)에 저장될 것이다. 이 주기동안, DMA 제어기(11)로 부터의 임의의 DMA 전송은 사이클 주기가 DMA 기본 엑세스 시간과 일치하는 주기적인 방식으로 수행될 것이다. 이 주기 동안, 로컬 버스는 내부 데이터 처리기(61)에 의해 일시적으로 점유될 것이고, 내부 버수 전송 INT_1, INT_2, 및 INT_3은 수행될 것이다.
사이클 T20에서는, FIFO(2)에서 DMA 전송을 위한 데이터 소영역(230)이 가득 차면, DMA 요구 신호(26)은 사이클 T31에서 다시 어설트될 때까지 부정된다. 따라서, CPU(10)만이 사이클 T1과 임의의 이후의 사이클들에서 CPU 전송들을 수행한다.
사이클 T24에서, FIFO(2)에서 DMA 전송을 위해 데이터 소영역(230)에 저장된 DMA 엑세스 데이터의 다수의 워드들의 버스트(burst) 출력이 시작한다. 내부 버스 전송들(DMA_L1 내지 DMA_L8)은 사이클 T20내지 T23동안 내부 버스 전송(INT_3)에 기하여 연기되는 것을 볼 수 있다.
일단 시작되면, DMA 엑세스 데이터의 다수의 워드들에 대응하는 내부 버스 전송들(DMA_L1 내지 DMA_L8)는 계속적으로 발생한다.
사이클 T3에서, FIFO(2)에서 DMA 전송을 위한 데이터 소영역(230)은 비어있게 된다. 따라서, 제어기(22)는 다시 DMA 요구 신호(26)을 어설트한다.
사이클 T32 내지 T33에서, 내부 버스 전송(INT_4)는 내부 버스 전송들(CPU_L3, CPU_L4, CPU_L5)에 수반하여 발생한다. FIFO(2)에서 DMA 전송을 위한 데이터 소영역(230)에서, DMA 제어기(11)와 데이터 전송 장치(1)사이에서의 외부 버스 전송들(DMA_M9, DMA_M10)을 통해 전송되는 DMA 엑세스 데이터는 다시 저장된다.
사이클 T37 및 T38에서, 데이터 전송 장치(1)과 로컬 메모리(56)사이의 내부 버스 전송들(DMA_L9, DMA_L10)이 발생한다.
그후에, 임의의 DMA 전송은 전술한 DMA 전송을 위한 초기 치들이 미리 CPU(10)에 의하여 다시 설정된 후에만 다시 시작될 것이다.
따라서, 본 발명의 실시예에 따라서, FIFO(2)는 FIFO(2)에 저장된 DMA 엑세스 데이터의 다수의 워드들이 로컬 메모리(56)에 버스트 전송되고, FIFO(2)에 저장된 CPU 엑세스 데이터의 1 또는 그이상의 워드들이 로컬 메모리(56)에 연속적으로 전송되는 방식으로 제어된다. 이러한 방식으로 FIFO(2)를 제어하여, 대기 제어 신호(24)가 어설트되는 주기를 감소시킬 수 있다. 결과적으로, 대기 제어 신호(24)의 어설션에 기하여 (메인 버스들을 사용하는 권리를 조정하는) CPU(10)의 동작 대기 시간은 감소될 수 있다. 따라서, 데이터 전송 장치(1)과 그와 관련된 임의의 주변 장치들을 포함하는 전 시스템의 전체 데이터 전송 속도는 개선될 수 있다.
데이터가 로컬 메모리(56)으로부터 CPU(10)에 전송되는 경우에, 그 전송은 데이터가 로컬 데이터 버스(28)로 부터 메인 데이터 버스(13)으로 직접 출력되도록 제어되어야 한다. 로컬 메모리(56)으로부터 DMA 제어기(11)로 데이터를 전송할 때, 그 전송은 로컬 데이터 버스(28)을 통과하는 데이터가 버스트 전송을 통해 FIFO(2)에 일시적으로 저장되고, 그다음에 FIFO(2)에 저장된 데이터가 DMA 요구 신호(26)을 사용하여 워드-바이-워드(word-by-word)방식으로 DMA 제어기(11)에 전송되는 방식으로 제어되어야 한다.
(실시예2)
도 3은 본 발명의 실시예 2에 따른 데이터 전송 장치(1a)의 구조를 도시한 블록도이다.
도 3에서, 도 1에서 또한 나타나는 구성 요소들은 여기에 사용된 구성 요소들과 동일한 참조 번호에 의하여 표시되고, 따라서 그에 대한 설명은 생략된다.
도 4는 데이터 전송 장치(1a)에 포함된 FIFO(2)의 전형적인 구조를 도시한 다이어그램이다.
FIFO(2a)는 다수의 데이터 필드들(410a), 다수의 어드레스 필드들(410b), 다수의 엑세스 결정 필드들(410c)를 포함한다. 다수의 데이터 필드들(410a) 각각은 1 워드의 CPU 엑세스 데이터 또는 1 워드의 DMA 엑세스 데이터를 저장한다. 다수의 어드레스 필드들(410b) 각각은 대응하는 데이터 필들(410a)에 저장된 데이터의 어드레스를 저장한다. 다수의 엑세스 결정 필드들(410c)의 각각은 대응하는 데이터 필드(410a)에 저장된 데이터의 종류를 표현하는 정보를 저장한다.
소정의 데이터 필드(410a)에 저장된 데이터가 CPU 엑세스 데이터라면, "0"이 그 데이터 필드(410a)에 대응하는 엑세스 결정 필드(410c)에 저장된다. 소정의 데이터 필드(410a)에 저장된 데이터가 DMA 엑세스 데이터라면, "1"이 그 데이터 필드(410a)에 대응하는 엑세스 결정 필드(410c)에 저장된다.
소정의 데이터 필드(410a)에 저장된 데이터가 DMA 엑세스 데이터라면, 어드레스가 인벨리드(invalid)함을 나타내는 임의 값이 그 데이터 필드(410a)에 대응하는 어드레스 필드(410b)에 저장된다.
도 4에서 도시되는 FIFO(2a)의 전형적인 구조에서, 8개의 데이터 필드들(410a), 8개의 어드레스 필드들(410b), 및 8개의 엑세스 결정 필드들(410c)는 FIFO(2a)에 포함되어 있다. 그러나, FIFO(2a)에 포함되어 있는 필드들의 수는 8개로 제한되는 것은 아니다. 오히려, FIFO(2a)는 임의의 필드들의 수를 포함할 수 있다.
먼저, FIFO(2a)에 대한 데이터 기록 동작이 기술될 것이다.
기록 위치에 대응하는 다수의 기록 제어 라인들(420a)중 하나가 기록 포인터(69)에 따라서 어설트된다. 그러한 선택 어설션은 회로(410d)에 의하여 이루어진다. 결과적으로, 데이터 라인(67)을 통과하는 데이터는 어설트된 기록 제어 라인(420a)에 결합되는 데이터 필드(410a)에 기록되고; 어드레스 라인(68)을 통과하는 어드레스는 어설트된 기록 제어 라인(420a)에 결합되는 어드레스 필드(410b)에 기록되고; 신호 라인(63)을 통과하는 엑세스 결정 신호는 어설트된 기록 제어 라인(420a)에 결합되는 엑세스 결정 필드(410c)에 기록된다.
다음에 FIFO(2a)로 부터의 데이터 판독 동작이 기술될 것이다.
판독 포인터(70)에 따라서, 선택기(410e)는 다수의 데이터 필드들(410a)와 관련된 각 출력들(420b)중 하나를 선택하고, 그 선택된 출력(420b)를 데이터 라인(65)에 출력한다.
또한, 판독 포인터(70)에 따라서, 선택기(410f)는 다수의 어드레스 데이터 필드들(410b)와 관련된 각 출력들(420c)중 하나를 선택하고, 그 선택된 출력(420c)를 어드레스 라인(66)에 출력한다.
또한, 판독 포인터(70)에 따라서, 선택기(410g)는 다수의 엑세스 결정 필드들(410c)와 관련된 각 출력들(420d)중 하나를 선택하고, 그 선택된 출력(420d)를 신호 라인(75)에 출력한다.
데이터 전송 장치(1a)의 내부 동작들이 도 3 및 도 4를 참조하여 기술될 것이다.
CPU 엑세스 제어 신호(23)와 함께 CPU(10)으로부터 출력되는 로컬 메모리 어드레스 및 데이터는 메인 버스 인터페이스(27)에 일시적으로 저장된다.
엑세스 결정기(64)는 DMA 엑세스 제어 신호(25)와 CPU 엑세스 제어 신호(23)에 기초한 엑세스 결정 신호(63)을 발생한다. 엑세스 결정기(64)가 어설트되는 CPU 엑세스 제어 신호(23)과 부정되는 DMA 엑세스 제어 신호(25)를 검출하면, 엑세스 결정기(64)는 "0"인 값으로 엑세스 결정 신호(63)을 발생한다. 엑세스 결정기(64)가 부정되는 CPU 엑세스 제어 신호(23)과 어설트되는 DMA 엑세스 제어 신호(25)을 검출한다면, 엑세스 결정기(64)는 "1"인 값으로 엑세스 결정 신호(63)을 발생한다. 엑세스 결정 신호(63)은 FIFO(2a)에 출력된다.
엑세스 결정기(64)는 기록 포인터 발생 요구 신호(72)를 기록 포인터 발생기(15)에 출력한다.
기록 포인터 발생기(15)는 기록 포인터 발생 요구 신호(72)에 응답하여 1 워드씩 이전 기록 포인터를 증가시켜 기록 포인터(69)를 발생한다. 발생된 기록 포인터(69)는 FIFO(2a)에 출력된다.
엑세스 결정 신호(63)는 기록 포인터(69)에 의해 지정되는 위치에 있는 엑세스 결정 필드(410c)에 기록된다. 데이터 라인(67)을 통과하는 CPU 엑세스 데이터는 기록 포인터(69)에 의해 지정되는 위치에 있는 데이터 필드(410a) 기록된다. 어드레스 라인(68)을 통과하는 CPU 엑세스 어드레스는 기록 포인터(69)에 의해 지정되는 위치에 있는 어드레스 필드(410b)에 기록된다.
따라서, CPU 엑세스 데이터 및 DMA 엑세스 데이터 양쪽 모두는 FIFO(2a)에 구분없이 저장된다.
DMA 전송을 위한 초기치들은 실시예 1과 같은 방식으로 설정될 수 있다.
포인터 비교기(74)는 기록 포인터(69)와 판독 포인터(70)을 비교하고, FIFO 플래그(73)을 제어기(22)에 출력하며, 여기서 FIFO 플래그(73)은 비교 결과에 따른 값을 갖는다. FIFO(2a)에 저장된 엑세스 데이터가 없으면, FIFO 플래그(73)의 값은 "0"이고; FIFO(2a)에 저장된 엑세스 데이터가 있으면, FIFO 플래그(73)의 값은 "1"이고; FIFO(2a)에 저장된 엑세스 데이터의 수가 FIFO(2a)에 저장가능한 데이터의 수의 상한치와 일치할 때, FIFO 플래그(73)의 값은 "2"이다.
제어기(22)는 로컬 버스 요구 신호(30)을 버스 제어기(33)에 출력한다. 로컬 버스 인가 신호(29)의 어설션이 검출되면, 제어기(22)는 판독 포인터 발생 요구 신호(71)을 판독 포인터 발생기(17)에 출력한다.
판독 포인터 발생기(17)은 1 워드씩 이전 판독 포인터를 증가시켜 판독 포인터(70)을 발생한다. 발생된 판독 포인터(70)은 FIFO(2a)에 출력된다.
FIFO(2a)는 판독 포인터(70)에 의해 지정된 위치에 있는 데이터 필드(410a)에 저장된 데이터를 데이터 라인(65)에 출력한다. FIFO(2a)는 판독 포인터(70)에 의해 지정된 위치에 있는 어드레스 필드(410b)에 저장된 어드레스를 어드레스 라인(66)에 출력한다. FIFO(2a)는 판독 포인터(70)에 의해 지정된 위치에 있는 엑세스 결정 필드(410c)에 저장된 신호를 신호 라인(75) 에 출력한다.
신호 라인(75)을 통과하는 엑세스 결정 신호가 "0"이면, 제어기(22)는 FIFO(2a)로 부터 출력되는 데이터가 CPU 엑세스 데이터인지 결정한다. 제어기(22)는 로컬 버스 제어 신호(62)를 로컬 버스 인터페이스(34)에 출력하고, 로컬 버스 인터페이스(34)는 그다음에 데이터 라인(65)를 통해 데이터를 로컬 데이터 버스(28)에 출력하고, 어드레스 라인(66)을 통해 어드레스를 로컬 어드레스 버스(35)에 출력한다.
신호 라인(75)를 통과하는 엑세스 결정 신호가 "1"이면, 제어기(22)는 FIFO(2a)로부터 출력되는 데이터가 DMA 엑세스 데이터인지 결정한다. 제어기(22)는 DMA 어드레스 발생 요구 신호(58)을 가산기(4) 및 감산기(3)에 출력한다. 가산기(4)는 1 워드씩 이전 DMA 어드레스를 증가시키고, 그 결과를 DMA 어드레스 라인(53)에 출력한다. 감산기(3)은 1 워드씩 DMA 전송되는 잔여 워드들의 이전의 수를 감소시키고, DMA 어드레스 발생 종료 신호(54)를 제어기(22)에 출력시킨다. DMA 전송되는 잔여 워드들의 수가 1이 되면, 감산기(103)은 DMA 전송되는 플래그(57)에 대한 잔여 워드들의 수를 어설트한다.
제어기(22)는 로컬 버스 제어 신호(62)를 로컬 버스 인터페이스(34)에 출력하고, 로컬 버스 인터페이스(34)는 그다음 로컬 버스 제어 신호(62)의 어드레스 선택 필드를 나타낸다.
버스 제어기(33)는 데이터 전송 장치(1a)에 대해 로컬 버스를 사용하는 권리를 인가하고, 제어기(22)는 FIFO(2a)에 DMA 엑세스 데이터가 있음을 나타내는 DMA 전송되는 플래그(57)의 잔여 워드들의 수가 어설트될 때까지 판독 포인터 발생 요구 신호(71)를 출력한다.
전술한 실시예들에서, DMA 전송동안, 데이터는 DMA 제어기로부터 FIFO로 워드-바이-워드 방식으로 전송되고, FIFO로부터 로컬 메모리로 FIFO의 커패시티(capacity)와 동일한 단위들에 버스트(burst) 전송된다. FIFO의 최적의 커패시티는 외부 버스 전송 사이클과 내부 버스 전송 사이클의 속도, 전송율, 및/또는 FIFO가 칩에서 차지하는 영역에 의존하여 변화한다. 이러한 양상은 버스 사용 비율의 관점에서 논의될 것이다.
CPU 에 의한 각 DMA 전송 또는 DMA 제어기가 10%의 내부 버스 점유율를 초래한다고 가정하면; 내부 버스를 사용하는 권리의 소유자로서의 각 변화는 5%의 내부 버스 점유율을 초래하고; 내부 데이터 처리기는 80%의 내부 버스 점유율을 초래하고, 외부 버스 전송은 1 워드의 외부 버스 전송의 기본 사이클을 위해 요구되는 시간의 양이 1 워드의 내부 버스 전송의 기본 사이클를 위해 요구되는 시간의 양의 10 배가 된다는 가정하에서 계속적으로 수행될 수 있다.
그러나, 실제, FIFO의 커패시티는 내부 데이터 처리기가 내부 버스를 계속적으로 점유하는 경우에 가능한 크게 만들어져야 한다. 그러나, 칩내의 FIFO의 영역의 임의의 증가는 칩가격을 상승시키기 때문에, 수십개의 워드들의 커패시티를 갖는 FIFO를 설계하는 것은 어려울 것이다. 이러한 이유들로, FIFO의 최적의 커패시티는 약 20 워드인 것으로 생각된다.
본 발명에 따라서, 퍼스트-인-퍼스트-아웃 버퍼는 메인 버스와 로컬 버스사이에 제공된다. 퍼스트-인-퍼스트-아웃 버퍼는 CPU 엑세스 데이터의 1 또는 그이상의 워드들 및 DMA 엑세스 데이터의 다수의 워드들을 저장하기 위한 데이터 영역을 가진다. 결과적으로, 로컬 버스가 데이터 전송 장치이외의 처리 블록에 의하여 사용되는 동안에서도,메인 버스와 퍼스트-인-퍼스트-아웃 버퍼사이에서 데이터 전송을 수행하는 것이 가능하다. 따라서, 데이터 전송 속도는 개선될 수 있다.
본 발명에 따라서, 제어기는 로컬 DMA 전송을 단위들마다 실행하며,각각의 단위는 퍼스트-인-퍼스트-아웃 버퍼의 데이터 영역에 저장된 DMA 엑세스 데이터의 다수의 워드들을 포함하고, 로컬 DMA 전송의 단위마다 로컬 버스를 사용하는 요구를 한다. 결과적으로, 로컬 버스를 사용도록 하는 요구들의 수를 감소하는 것이 가능하다. 따라서, 로컬 버스를 사용하는 권리를 획득하는 데 필요한 사이클들의 수는 감소될 수 있고, 이에 의하여 로컬 버스의 유용성을 개선할 수 있다.
본 발명에 따라서, 양쪽 모두 로컬 DMA 전송들의 형태인, 퍼스트-인-퍼스트-아웃 버퍼의 데이터 영역에 저장되는 CPU 엑세스 데이터의 1 또는 그이상의 워드들의 전송들과 FIFO의 데이터 영역에 저장되는 DMA 엑세스 데이터의 다수의 워드들의 전송들을 실행할 수 있다.
본 발명에 따라서, 퍼스트-인-퍼스트-아웃 버퍼는 퍼스트-인-퍼스트-아웃 버퍼의 데이터 영역에 저장되는 데이터가 CPU 엑세스 데이터인지 DMA 엑세스 데이터인지를 결정하는 정보를 저장하기 위한 영역을 포함한다. 결과적으로, CPU 엑세스 데이터와 DMA 엑세스 데이터 양쪽 모두는 상대적으로 작은 커패시티를 가지는 퍼스트-인-퍼스트-아웃 버퍼에 구분없이 저장될 수 있다.
다른 다수의 변형들은 본 발명의 사상과 범위를 벗어나지 않고 당업자에게 명백하고, 쉽게 만들어질 수 있다. 따라서, 첨부된 특허청구범위의 범위는 여기에서 기술된 설명에 제한되는 것은 아니고, 그보다는 특허청구범위는 넓게 해석되어야 한다.
메인 버스에 결합되는 메인 메모리로부터 로컬 버스에 결합되는 로컬 메모리로 데이터를 전송하기 위한 데이터 전송 장치가 제공된다. 데이터 전송 장치는, 메인 버스에 결합되는 CPU에 의해 엑세스되는 CPU 엑세스 데이터의 1 또는 그이상의 워드들, 및 메인 버스에 결합되는 DMA 제어기에 의해 엑세스되는 DMA 엑세스 데이터의 다수의 워드들을 저장하기 위한 데이터 영역을 가지는 퍼스트-인-퍼스트-아웃 버퍼와; 퍼스트-인-퍼스트-아웃 버퍼를 제어하기 위한 제어기를 포함한다. 로컬 버스가 이용가능할 때, 제어기는 데이터 영역내에 저장되는 CPU 엑세스 데이터의 1 또는 그이상의 워드들을 로컬 메모리에 전송하고, 데이터 영역내에 저장되는 DMA 엑세스 데이터의 다수의 워드들을 로컬 메모리에 버스트 전송하도록 퍼스트-인-퍼스트-아웃 버퍼를 제어한다.

Claims (4)

  1. 메인 버스에 결합된 메인 메모리로 부터 로컬 버스에 결합된 로컬 메모리에 데이터를 전송하기 위한 데이터 전송 장치에 있어서,
    상기 데이터 전송 장치는
    상기 메인 버스에 결합된 CPU에 의해 엑세스된 CPU 엑세스 데이터의 1 또는 그이상의 워드들 및 상기 메인 버스에 결합된 DMA 제어기에 의해 엑세스되는 DMA 엑세스 데이터의 다수의 워드들을 저장하기위한 데이터 영역을 가지는 퍼스트-인-퍼스트-아웃 버퍼와;
    퍼스트-인-퍼스트-아웃 버퍼를 제어하기 위한 제어기를 포함하며,
    상기 로컬 버스가 이용가능할 때, 상기 제어기는 상기 데이터 영역에 저장된 CPU 엑세스 데이터의 1 또는 그 이상의 워드들을 상기 로컬 메모리에 연속적으로 전송하고, 상기 데이터 영역내에 저장된 DMA 엑세스 데이터의 다수의 워드들을 로컬 메모리에 버스트(burst) 전송하도록 상기 퍼스트-인-퍼스트-아웃 버퍼를 제어하는, 데이터 전송 장치.
  2. 제 1 항에 있어서, 상기 제어기는 로컬 DMA 전송들을 단위들마다 실행하며, 각 단위는 상기 데이터 영역내에 저장된 상기 DMA 엑세스 데이터의 다수의 워드들을 포함하고, 로컬 DMA 전송의 단위 마다 상기 로컬 버스를 사용하는 요구를 하는, 데이터 전송 장치.
  3. 제 1 항에 있어서, 상기 제어기는 로컬 DMA 전송의 형태로 상기 데이터 영역에 저장된 CPU 엑세스 데이터의 1 또는 그이상의 워드들의 전송, 및 로컬 DMA 전송의 형태로 상기 데이터 영역내에 저장된 상기 DMA 엑세스 데이터의 다수의 워드들의 전송을 실행시키는, 데이터 전송 장치.
  4. 제 1 항에 있어서, 상기 퍼스트-인-퍼스트-아웃 버퍼는 상기 데이터 영역내에 저장된 데이터가 CPU 엑세스 데이터 또는 DMA 엑세스 데이터인지를 결정하는 정보를 저장하기 위한 영역을 더 포함하는, 데이터 전송 장치.
KR10-2000-0082791A 1999-12-27 2000-12-27 데이터 전송 장치 KR100395383B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP99/371918 1999-12-27
JP37191899A JP2001188748A (ja) 1999-12-27 1999-12-27 データ転送装置

Publications (2)

Publication Number Publication Date
KR20010062770A true KR20010062770A (ko) 2001-07-07
KR100395383B1 KR100395383B1 (ko) 2003-08-21

Family

ID=18499534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0082791A KR100395383B1 (ko) 1999-12-27 2000-12-27 데이터 전송 장치

Country Status (3)

Country Link
US (1) US6782433B2 (ko)
JP (1) JP2001188748A (ko)
KR (1) KR100395383B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002219274A (ja) 2000-11-21 2002-08-06 Sony Computer Entertainment Inc 端末装置、遊技方法のコンピュータプログラム、遊技方法のコンピュータプログラムが記録された記録媒体、及びネットゲームシステム
US6877049B1 (en) * 2002-05-30 2005-04-05 Finisar Corporation Integrated FIFO memory management control system using a credit value
US6792481B2 (en) * 2002-05-30 2004-09-14 Freescale Semiconductor, Inc. DMA controller
WO2004092963A1 (ja) * 2003-04-11 2004-10-28 Fujitsu Limited 情報提供方法、情報提供プログラム、情報表示プログラム、情報提供装置および情報表示装置
JP2004355049A (ja) * 2003-05-26 2004-12-16 Sony Corp プロセッサシステム
US20050086040A1 (en) * 2003-10-02 2005-04-21 Curtis Davis System incorporating physics processing unit
US7895411B2 (en) * 2003-10-02 2011-02-22 Nvidia Corporation Physics processing unit
US7739479B2 (en) * 2003-10-02 2010-06-15 Nvidia Corporation Method for providing physics simulation data
US20050188125A1 (en) * 2004-02-20 2005-08-25 Lim Ricardo T. Method and apparatus for burst mode data transfers between a CPU and a FIFO
US20050251644A1 (en) * 2004-05-06 2005-11-10 Monier Maher Physics processing unit instruction set architecture
US20080320178A1 (en) * 2007-06-21 2008-12-25 Motoyasu Shirasaki DMA transfer apparatus
US8589603B2 (en) * 2010-08-30 2013-11-19 International Business Machines Corporation Delaying acknowledgment of an operation until operation completion confirmed by local adapter read operation
US10019397B2 (en) 2014-03-28 2018-07-10 Texas Instruments Incorporated Real-time data acquisition using chained direct memory access (DMA) channels
JP6517549B2 (ja) * 2015-03-13 2019-05-22 東芝メモリ株式会社 メモリコントローラ、記憶装置、データ転送システム、データ転送方法、及びデータ転送プログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61224063A (ja) 1985-03-29 1986-10-04 Yokogawa Electric Corp デ−タ転送制御装置
JPS6214541U (ko) * 1985-07-09 1987-01-28
US4722051A (en) * 1985-07-26 1988-01-26 Ncr Corporation Combined read/write cycle for a direct memory access controller
JPS6298444A (ja) 1985-10-25 1987-05-07 Hitachi Ltd デ−タ通信方式
JP2559394B2 (ja) * 1987-02-16 1996-12-04 株式会社日立製作所 通信制御装置
JPH01293431A (ja) * 1988-05-23 1989-11-27 Toshiba Corp メモリアクセス方式
JPH0465777A (ja) * 1990-07-06 1992-03-02 Hitachi Ltd 画像データ転送方式
JPH04192055A (ja) * 1990-11-27 1992-07-10 Fuji Electric Co Ltd Dma転送制御装置
CA2060820C (en) 1991-04-11 1998-09-15 Mick R. Jacobs Direct memory access for data transfer within an i/o device
JPH0644179A (ja) * 1992-07-27 1994-02-18 Hitachi Ltd データ転送制御装置
US5511152A (en) * 1993-09-20 1996-04-23 Digital Equipment Corporation Memory subsystem for bitmap printer data controller
US5663942A (en) 1994-05-02 1997-09-02 Matsushita Electric Industrial Co., Ltd. Jitter measurement apparatus detecting amplitude of phase errors between information signal and synchronized clock signal
JP2713204B2 (ja) 1995-02-15 1998-02-16 日本電気株式会社 情報処理システム
US5799169A (en) * 1995-10-02 1998-08-25 Chromatic Research, Inc. Emulated registers
JP3429948B2 (ja) * 1996-04-10 2003-07-28 株式会社日立製作所 組込み型cpu用制御装置
US5922057A (en) * 1997-01-10 1999-07-13 Lsi Logic Corporation Method for multiprocessor system of controlling a dynamically expandable shared queue in which ownership of a queue entry by a processor is indicated by a semaphore
US6223266B1 (en) * 1997-08-20 2001-04-24 Cypress Semiconductor Corp. System and method for interfacing an input/output system memory to a host computer system memory
US6388989B1 (en) * 1998-06-29 2002-05-14 Cisco Technology Method and apparatus for preventing memory overrun in a data transmission system
JP3803196B2 (ja) * 1998-07-03 2006-08-02 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、情報処理方法および記録媒体
US6161153A (en) * 1998-07-30 2000-12-12 Micron Technology, Inc. Method for sharing data buffers from a buffer pool
US6345327B1 (en) * 1999-02-19 2002-02-05 International Business Machines Corporation Queuing method and apparatus for providing direct data processing access using a queued direct input-output device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113590520A (zh) * 2021-06-15 2021-11-02 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统
CN113590520B (zh) * 2021-06-15 2024-05-03 珠海一微半导体股份有限公司 Spi系统自动写入数据的控制方法及spi系统

Also Published As

Publication number Publication date
JP2001188748A (ja) 2001-07-10
US6782433B2 (en) 2004-08-24
KR100395383B1 (ko) 2003-08-21
US20010016883A1 (en) 2001-08-23

Similar Documents

Publication Publication Date Title
KR100395383B1 (ko) 데이터 전송 장치
US6289406B1 (en) Optimizing the performance of asynchronous bus bridges with dynamic transactions
KR100231897B1 (ko) 디엠에이 채널의 사이즈 데이터를 수신하는 디엠에이 제어회로
US6356963B1 (en) Long latency interrupt handling and input/output write posting
WO1996000940A1 (en) Pci to isa interrupt protocol converter and selection mechanism
JP2822986B2 (ja) Dma内蔵シングルチップマイクロコンピュータ
US20020184453A1 (en) Data bus system including posted reads and writes
KR930002787B1 (ko) 주변 제어기와 어댑터 인터페이스
JPH09160866A (ja) バス・インタフェース論理システム及び同期方法
US7006521B2 (en) External bus arbitration technique for multicore DSP device
US7007124B2 (en) Image processing system, and semiconductor device and digital still camera apparatus using image processing system
US7069363B1 (en) On-chip bus
JP3698324B2 (ja) 直接メモリアクセス制御器およびデータチャンネルへのインターフェース装置を備えたワークステーション
US7673091B2 (en) Method to hide or reduce access latency of a slow peripheral in a pipelined direct memory access system
JP3766377B2 (ja) バス制御装置及び情報処理システム
JPH1040215A (ja) Pciバス・システム
US6105082A (en) Data processor used in a data transfer system which includes a detection circuit for detecting whether processor uses bus in a forthcoming cycle
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JP3240863B2 (ja) 調停回路
JPH04323755A (ja) Dma装置
WO2002093392A1 (fr) Processeur de donnees
JP2004094970A (ja) データ転送装置
JP2010140440A (ja) バス調停装置
CA2282166C (en) Method and apparatus for bridging a digital signal processor to a pci bus
JP2806405B2 (ja) マイクロプロセッサ

Legal Events

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

Payment date: 20100729

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee