KR20070060854A - Multi-channel direct memory access controller - Google Patents

Multi-channel direct memory access controller Download PDF

Info

Publication number
KR20070060854A
KR20070060854A KR1020050120963A KR20050120963A KR20070060854A KR 20070060854 A KR20070060854 A KR 20070060854A KR 1020050120963 A KR1020050120963 A KR 1020050120963A KR 20050120963 A KR20050120963 A KR 20050120963A KR 20070060854 A KR20070060854 A KR 20070060854A
Authority
KR
South Korea
Prior art keywords
memory access
channel
direct memory
internal register
operation state
Prior art date
Application number
KR1020050120963A
Other languages
Korean (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 엠텍비젼 주식회사
Priority to KR1020050120963A priority Critical patent/KR20070060854A/en
Publication of KR20070060854A publication Critical patent/KR20070060854A/en

Links

Images

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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • 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

A multi-channel DMAC is provided to realize a multi-channel mode even if a plurality of conventional repeated internal registers are removed, reduce a hardware size, and perform the same multi-channel mode DMA function. The internal register(410) stores channel control information and an operation state according to a DMA operation. A controller(420) controls a data flow by referring to the internal register and compares transmission positions of a source with target address. An interface module(440) controls a bus between a source and a target by receiving control from the controller, and transmits the data. An information obtainer(430) updates the internal register by reading the channel control information and the operation state according to a condition from an external memory(450) storing the control information and the operation state of each channel. The internal register includes a control register storing the control information and an environment setting information storing the operation state.

Description

멀티 채널 직접 메모리 접근 제어기{Multi-channel direct memory access controller}Multi-channel direct memory access controller

도 1은 직접 메모리 접근 제어기를 사용하는 일반적인 시스템의 구성을 나타낸 블록도.1 is a block diagram showing the configuration of a typical system using a direct memory access controller.

도 2는 종래의 직접 메모리 접근 제어기의 구성을 나타낸 블록도.Figure 2 is a block diagram showing the configuration of a conventional direct memory access controller.

도 3은 종래의 멀티 채널 방식의 직접 메모리 접근 제어기의 구성을 나타낸 불록도.3 is a block diagram showing the configuration of a conventional multi-channel direct memory access controller.

도 4는 본 발명의 바람직한 일 실시예에 따른 직접 메모리 접근 제어기의 구성을 나타낸 블록도.Figure 4 is a block diagram showing the configuration of a direct memory access controller according to an embodiment of the present invention.

도 5는 본 발명에 따른 외부 메모리 또는 외부 레지스터의 구조를 나타낸 도면.5 is a diagram showing the structure of an external memory or an external register according to the present invention;

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

400 : 직접 메모리 접근 제어기(Direct Memory Access Controller)400: Direct Memory Access Controller

410 : 내부 레지스터부410: internal register

420 : 제어부420: control unit

430 : 정보 획득부430: information acquisition unit

440 : 인터페이스 모듈440 interface module

450 : 외부 메모리 또는 외부 레지스터450: external memory or external register

본 발명은 직접 메모리 접근 제어기(DMAC; Direct Memory Access Controller)에 관한 것으로, 보다 상세하게는 멀티 채널(multi channel)의 지원이 가능한 직접 메로리 접근 제어기에 관한 것이다. The present invention relates to a direct memory access controller (DMAC), and more particularly, to a direct memory access controller capable of supporting a multi channel.

멀티미디어 제품이 보편화된 현재 많은 양의 데이터를 고속으로 전송하고자 하는 요구가 커지고 있다. 여기서의 데이터는 일반적인 문자열 데이터 이외에도 오디오, 비디오, 동영상 데이터 등을 포함한다. 오디오, 비디오, 동영상 데이터 등은 그 데이터량이 많기 때문에 이를 전송하기 위해 고속의 중앙 처리 장치(CPU) 뿐만 아니라 고속의 전송 메커니즘도 필요하게 된다. BACKGROUND OF THE INVENTION [0002] The demand for high-speed transmission of large amounts of data is increasing. The data here includes audio, video, video data, etc. in addition to the general character string data. Audio, video, and moving image data have a large amount of data, and therefore, a high speed transfer mechanism is required as well as a high speed CPU to transmit the data.

데이터의 고속 전송을 위해서 사용되는 것이 직접 메모리 접근 제어(Direct Memory Access Control) 방법이다. 이 방법은 중앙 처리 장치에 의하지 않고 메모리와 입/출력 장치 간에 데이터 전송이 직접 수행된다. 직접 메모리 접근 제어의 장점은 명령어를 인출(fetch)하고, 디코딩(decoding)한 후 실행(execution)하는 불필요한 시간을 줄일 수 있다는 것이다. Direct memory access control is used for high speed data transfer. In this method, data transfer is directly performed between the memory and the input / output device without the central processing unit. The advantage of direct memory access control is that it saves unnecessary time to fetch, decode, and execute instructions.

직접 메모리 접근 제어 방법을 사용하기 위해서는 시스템 버스 상에 직접 메모리 접근 제어기(DMA controller)와 같은 직접 메모리 제어 모듈이 시스템 버스 상에 추가되어야 한다. In order to use the direct memory access control method, a direct memory control module such as a direct memory access controller (DMA controller) must be added on the system bus.

도 1은 직접 메모리 접근 제어기를 사용하는 일반적인 시스템의 구성을 나타낸 블록도이다. 도 1을 참조하면, 중앙 처리 장치(CPU; 110)는 주소 버스와 데이터 버스(160)를 이용하여 직접 메모리 접근 제어기(DMAC; 120)와 통신하며, 데이터 버스(160)를 통해 직접 메모리 접근 제어기(120)를 초기화한다. 주변 장치(각종 입/출력 장치를 의미하며, 본 예에서는 그래픽 제어기(140)임)가 직접 메모리 제어 요구를 전송하면, 직접 메모리 접근 제어기(120)는 중앙 처리 장치(110)로 하여금 버스(160)를 포기하도록 하고, 주변 장치로 직접 메모리 접근 승낙을 전송하여 주변 장치 사이에 통신이 이루어지도록 한다. 직접 메모리 접근을 요구한 주변 장치와 메모리(130) 사이에 하나의 채널을 열어주도록 직접 메모리 접근 제어기(120)는 세팅된다. 1 is a block diagram showing the configuration of a general system using a direct memory access controller. Referring to FIG. 1, a central processing unit (CPU) 110 communicates with a direct memory access controller (DMAC) 120 using an address bus and a data bus 160, and a direct memory access controller via a data bus 160. Initialize (120). When a peripheral device (meaning various input / output devices, in this example, graphics controller 140) sends a direct memory control request, the direct memory access controller 120 causes the central processing unit 110 to send a bus 160 ) And send a memory access acknowledgment directly to the peripheral to allow communication between the peripherals. The direct memory access controller 120 is set to open one channel between the memory 130 and the peripheral device requiring direct memory access.

도 2는 종래의 직접 메모리 접근 제어기의 구성을 나타낸 블록도이다. 도 2를 참조하면, 직접 메모리 접근 제어기(120)는 내부 레지스터부(122), 제어부(124) 및 인터페이스 모듈(126)를 포함한다. 내부 레지스터부(122)는 각 주변 장치로부터의 직접 메모리 제어 요구 등이 포함된 제어 정보와 직접 메모리 접근 동작에 따른 동작 상태를 저장한다. 제어부(124)는 내부 레지스터부(122)를 참조하여 각 주변 장치 사이에 통신이 가능하도록 데이터 전송 흐름을 제어한다. 인터페이스 모듈(126)은 제어부(124)의 제어에 의해 중앙 처리 장치(110)가 버스(160)를 포기하도 록 제1 버스(128)를 통해 버스 제어를 하고, 제2 버스(127)를 통해 데이터 전송이 가능하도록 한다. 2 is a block diagram showing the configuration of a conventional direct memory access controller. Referring to FIG. 2, the direct memory access controller 120 includes an internal register 122, a controller 124, and an interface module 126. The internal register unit 122 stores control information including a direct memory control request from each peripheral device and an operation state according to the direct memory access operation. The control unit 124 refers to the internal register unit 122 to control the data transmission flow to enable communication between each peripheral device. The interface module 126 controls the bus through the first bus 128 so that the central processing unit 110 gives up the bus 160 under the control of the controller 124, and through the second bus 127. Enable data transfer.

도 2에 도시된 직접 메모리 접근 제어기(120)는 1 채널(channel) 방식으로, 한번에 하나의 역할을 수행한다. 즉, 제1 주변 장치로부터 제2 주변 장치로 데이터가 전송되도록 한다. 하지만, 직접 메모리 접근의 기능이 증가하고 지원되어야 할 채널의 수가 증가함에 따라 멀티 채널(multi channel) 방식의 직접 메모리 접근 제어기가 요구된다. The direct memory access controller 120 shown in FIG. 2 performs one role at a time in a one channel manner. That is, data is transmitted from the first peripheral device to the second peripheral device. However, as the function of direct memory access increases and the number of channels to be supported increases, a multi channel direct memory access controller is required.

도 3은 종래의 멀티 채널 방식의 직접 메모리 접근 제어기의 구성을 나타낸 불록도이다. 도 3을 참조하면, 직접 메모리 접근 제어기(120)는 n개의 내부 레지스터부(즉, 제1 내부 레지스터부(122-1), 제2 내부 레지스터부(122-2), …, 제n 내부 레지스터부(122-n))를 포함한다. 각각의 내부 레지스터부(122-1, 122-2, … 또는 122-n)는 n개의 채널의 동작에 관한 동작 상태 및 각 채널의 제어 정보를 저장한다. 제어부(124)는 순차적으로 또는 미리 지정된 우선순위에 따라 다수의 내부 레지스터부(122-1, 122-2, … 또는 122-n)를 참조하고, 해당 내부 레지스터부에 상응하는 채널의 동작을 수행하게 된다. 3 is a block diagram showing the configuration of a conventional multi-channel direct memory access controller. Referring to FIG. 3, the direct memory access controller 120 includes n internal register parts (that is, the first internal register part 122-1, the second internal register part 122-2, ..., the nth internal register). Section 122-n). Each of the internal registers 122-1, 122-2, ..., or 122-n stores an operation state relating to the operation of n channels and control information of each channel. The control unit 124 refers to the plurality of internal register units 122-1, 122-2, ..., or 122-n sequentially or according to a predetermined priority, and performs an operation of a channel corresponding to the corresponding internal register unit. Done.

도 3에 도시된 직접 메모리 접근 제어기(120)는 내부 레지스터부(122-1, 122-2, …, 122-n)의 수가 증가함에 따라 하드웨어의 크기가 증가하게 되며, 칩 상에 구현함에 있어서 ASIC/FPGA 상의 크기에 대한 제한이 커지는 문제점이 있다. In the direct memory access controller 120 illustrated in FIG. 3, the size of hardware increases as the number of internal registers 122-1, 122-2,..., 122-n increases. There is a problem that the limit on the size on the ASIC / FPGA is increased.

따라서, 본 발명은 종래의 반복적인 다수의 내부 레지스터부를 제거하여도 멀티 채널 방식이 가능한 직접 메모리 접근 제어기를 제공한다. Accordingly, the present invention provides a direct memory access controller capable of a multi-channel method even by removing a plurality of repetitive internal registers.

또한, 본 발명은 하드웨어의 크기를 줄일 수 있고 종래와 동일한 멀티 채널 방식의 직접 메모리 접근 기능 수행이 가능한 직접 메모리 접근 제어기를 제공한다. In addition, the present invention provides a direct memory access controller capable of reducing the size of hardware and performing a direct memory access function of the same multi-channel method.

본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다. Other objects of the present invention will be readily understood through the following description.

상기 목적들을 달성하기 위하여, 본 발명의 일 측면에 따르면, 채널(channel)의 제어 정보 및 직접 메모리 접근(DMA) 동작에 따른 동작 상태를 저장하는 내부 레지스터부; 상기 내부 레지스터부를 참조하여 데이터의 전송 흐름을 제어하고, 소스와 목적지의 어드레스에 대한 전송 위치 비교를 수행하는 제어부; 상기 제어부의 제어를 받아 상기 소스와 목적지 사이의 버스를 제어하고 상기 데이터를 전송하는 인터페이스 모듈; 및 복수의 채널에 대한 제어 정보 및 동작 상태를 저장하는 외부 메모리로부터 소정 조건에 따른 채널의 제어 정보 및 동작 상태를 독출하여 상기 내부 레지스터부를 갱신(update)하는 정보 획득부를 포함하는 직접 메모리 접근 제어기(Direct Memory Access Controller)가 제공될 수 있다.In order to achieve the above object, according to an aspect of the present invention, the internal register unit for storing the control information of the channel (channel) and the operating state of the direct memory access (DMA) operation; A control unit which controls a transmission flow of data by referring to the internal register unit and compares transmission positions with respect to addresses of a source and a destination; An interface module for controlling a bus between the source and the destination and transmitting the data under the control of the controller; And an information obtaining unit which reads the control information and the operating state of the channel according to a predetermined condition from an external memory storing the control information and the operating state of a plurality of channels and updates the internal register unit. Direct Memory Access Controller) may be provided.

바람직하게는, 상기 정보 획득부는 상기 제어부 및 상기 인터페이스 모듈을 통해 상기 외부 메모리와 데이터를 전송할 수 있다.Preferably, the information acquisition unit may transmit data with the external memory through the control unit and the interface module.

또한, 상기 내부 레지스터부는 상기 제어 정보를 저장하는 제어 레지스터; 및 상기 동작 상태를 저장하는 환경설정 레지스터를 포함할 수 있다.The internal register may include a control register for storing the control information; And a configuration register for storing the operation state.

또한, 상기 인터페이스 모듈은 제1 버스를 통해 버스 제어를 하고, 제2 버스를 통해 데이터 전송을 수행할 수 있다.In addition, the interface module may control the bus through the first bus and transmit data through the second bus.

그리고 상기 제어부는 직접 메모리 접근에 따른 데이터 전송이 미완료된 동작 상태를 상기 내부 레지스터부에 기록할 수 있다. 여기서, 상기 정보 획득부는 상기 내부 레지스터부에 저장된 현재 동작 상태를 독출하여 상기 외부 메모리에 기록된 동작 상태를 갱신할 수 있다.The controller may record an operation state in which data transfer according to direct memory access is not completed, in the internal register unit. The information acquisition unit may read a current operation state stored in the internal register unit and update the operation state recorded in the external memory.

또한, 상기 외부 메모리는 하나 이상의 저장 영역을 포함하되, 상기 정보 획득부는 순차적으로 또는 미리 지정된 순서에 따라 상기 하나 이상의 저장 영역 중 어느 하나로부터 상기 채널의 제어 정보 및 동작 상태를 독출할 수 있다. The external memory may include one or more storage areas, and the information acquisition unit may read the control information and the operation state of the channel from any one of the one or more storage areas sequentially or in a predetermined order.

이하, 첨부된 도면을 참조하여 본 발명에 따른 직접 메모리 접근 제어기의 바람직한 실시예를 상세히 설명한다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 동일 또는 유사한 개체를 순차적으로 구분하기 위한 식별기호에 불과하다.Hereinafter, exemplary embodiments of a direct memory access controller according to the present invention will be described in detail with reference to the accompanying drawings. In describing the present invention, when it is determined that the detailed description of the related known technology may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. Numbers (eg, first, second, etc.) used in the description of the present specification are merely identification symbols for sequentially distinguishing identical or similar entities.

도 4는 본 발명의 바람직한 일 실시예에 따른 직접 메모리 접근 제어기의 구성을 나타낸 블록도이고, 도 5는 본 발명에 따른 외부 메모리 또는 외부 레지스터의 구조를 나타낸 도면이다. 4 is a block diagram illustrating a configuration of a direct memory access controller according to an exemplary embodiment of the present invention, and FIG. 5 is a diagram illustrating a structure of an external memory or an external register according to the present invention.

도 4를 참조하면, 직접 메모리 접근 제어기(400)는 내부 레지스터부(410), 제어부(420), 정보 획득부(430) 및 인터페이스 모듈(440)을 포함한다. 여기서, 직접 메모리 접근 제어기(400)는 외부 메모리 또는 외부 레지스터(450)와 연결되어 있다. Referring to FIG. 4, the direct memory access controller 400 includes an internal register unit 410, a controller 420, an information acquirer 430, and an interface module 440. Here, the direct memory access controller 400 is connected to an external memory or an external register 450.

내부 레지스터부(410)는 채널로부터의 제어 정보 및 해당 채널의 직접 메모리 접근 동작에 따른 동작 상태를 저장한다. 여기서, 채널은 직접 메모리 접근에 의한 데이터 전송을 하고자 하는 메모리와 주변 장치 간의 연결을 의미한다. 내부 레지스터부(410)에는 한번에 하나의 채널에 대한 제어 정보 및 동작 상태가 저장될 수 있다. 내부 레지스터부(410)는 하드웨어적으로 갱신(update)이 가능하다. 후술할 정보 획득부(430)에 의해 내부 레지스터부(410)는 이전에 기록되어 있던 채널 대신 현재 동작되고자 하는 채널에 대한 제어 정보 및 동작 상태를 갱신 기록하여 저장한다. 여기서, 제어 정보는 해당 채널을 동작시키기 위해 필요한 세팅 값을 포함하고, 동작 상태는 해당 채널의 직접 메모리 접근에 따른 데이터 전송 현황을 포함한다. The internal register unit 410 stores control information from a channel and an operation state according to a direct memory access operation of the channel. In this case, the channel refers to a connection between a memory and a peripheral device to which data is to be transferred by direct memory access. The internal register unit 410 may store control information and an operation state of one channel at a time. The internal register unit 410 may be updated in hardware. The internal register unit 410 updates and stores the control information and the operation state of the channel to be operated currently instead of the previously recorded channel by the information obtaining unit 430 which will be described later. Here, the control information includes a setting value necessary for operating the corresponding channel, and the operation state includes the data transmission status according to the direct memory access of the corresponding channel.

내부 레지스터부(410)는 제어 정보를 저장하는 제어 레지스터(control register)와, 동작 상태를 저장하는 환경설정 레지스터(configuration register)를 포함하는 것이 바람직하다. 또한, 내부 레지스터부(410)는 직접 메모리 접근 제어기(400) 내부에 하나만 있는 것이 바람직하다. 내부 레지스터부(410)의 하드웨어상 크기도 무시하지 못하기 때문에 수가 적을수록 직접 메모리 접근 제어기(400)의 하드웨어 구현에 있어서 크기를 줄일 수 있다. The internal register unit 410 preferably includes a control register for storing control information and a configuration register for storing an operation state. In addition, it is preferable that there is only one internal register unit 410 inside the direct memory access controller 400. Since the hardware size of the internal register 410 may not be ignored, the smaller the number, the smaller the size may be in the hardware implementation of the direct memory access controller 400.

제어부(420)는 내부 레지스터부(410)를 참조하여 데이터의 전송 흐름을 제어한다. 내부 레지스터부(410)에는 해당 채널의 제어 정보 및 동작 상태가 저장되어 있는 바, 제어 정보로부터 해당 채널을 동작시키기 위해 필요한 세팅 값을 독출하고, 동작 상태로부터 해당 채널의 직접 메모리 접근에 따른 데이터 전송 현황을 독출한다. 그리고 독출한 값을 이용하여 각 주변 장치들 간 또는 외부 메모리(450)와 주변 장치들 간에 데이터 전송 흐름을 제어한다. The controller 420 controls the transmission flow of data with reference to the internal register unit 410. The internal register unit 410 stores control information and an operation state of a corresponding channel. The control unit reads setting values necessary for operating the channel from the control information, and transmits data according to direct memory access of the channel from the operation state. Read the status. The read value is used to control a data transmission flow between each peripheral device or between the external memory 450 and the peripheral devices.

또한, 제어부(420)는 채널을 활성화하여 데이터 전송 흐름을 제어하기 위해 소스(source)와 목적지(destination)의 주소(address)에 대한 전송 위치 비교 등을 수행한다. 소스와 목적지는 채널의 양단에 위치한 메모리, 각 주변 장치들을 의미한다. 중앙 처리 장치(CPU)의 계속적인 관여 없이 데이터가 메모리와 주변 장치 사이에서 전송되도록 하기 위해 제어부(420)는 사이클 도용(Cycle stealing)을 한다. 그리고 데이터의 전송이 끝나면 중앙 처리 장치를 인터럽트한다. In addition, the controller 420 performs a comparison of transmission positions with respect to addresses of a source and a destination in order to activate a channel and control a data transmission flow. Source and destination refer to the memory located at both ends of the channel, each peripheral device. The controller 420 performs cycle stealing to allow data to be transferred between the memory and the peripherals without continued involvement of the central processing unit (CPU). When the data transfer is complete, the central processing unit is interrupted.

인터페이스 모듈(440)은 제어부(420)의 제어를 받아 소스와 목적지 사이의 버스를 제어한다. 직접 메모리 접근 제어를 하기 위해서는 중앙 처리 장치가 버스의 점유를 포기하게 해야 한다. 그리고 외부 메모리(450)에 접근하기 위해 사이클 도용(Cycle stealing)을 한다. 이를 통해 중앙 처리 장치의 계속적인 관여 없이 데이터를 외부 메모리(450)와 주변 장치 사이에 전송할 수 있게 된다. 따라서, 인터페이스 모듈(440)은 중앙 처리 장치 없이도 데이터 전송을 할 수 있도록 하기 위해 버스를 제어한다. 그리고 직접 메모리 접근 제어기(400)의 내부 레지스터부(410)에 기록될 제어 정보 및 동작 상태, 직접 메모리 접근 동작이 수행된 후의 동작 상태 등이 인터페이스 모듈(440)을 통해 직접 메모리 접근 제어기(400) 내외로 전송된다. 데이터의 전송은 제1 버스(443)를 통해 수행되고, 버스 제어는 제2 버스(446)를 통해 수행된다. The interface module 440 controls the bus between the source and the destination under the control of the controller 420. Direct memory access control requires the central processing unit to give up the bus. Cycle stealing is performed to access the external memory 450. This allows data to be transferred between the external memory 450 and the peripheral device without continuous involvement of the central processing unit. Thus, the interface module 440 controls the bus to enable data transfer without a central processing unit. In addition, the control information and the operation state to be recorded in the internal register unit 410 of the direct memory access controller 400, the operation state after the direct memory access operation is performed, and the like through the interface module 440, the direct memory access controller 400. Transmitted in and out. Transmission of data is performed via the first bus 443, and bus control is performed via the second bus 446.

정보 획득부(430)는 외부 메모리 또는 외부 레지스터(450)로부터 각 채널의 제어 정보 및 동작 상태를 독출한다. 여기서, 외부 메모리 또는 외부 레지스터(450)는 채널의 제어 정보 및 동작 상태를 저장하기 위한 영역을 가지고 있으며, 이 영역은 채널의 수에 상응하여 n(자연수) 개의 영역으로 세분된다. 도 5를 참조하면, 외부 메모리 또는 외부 레지스터(450)는 환경설정 영역(configuration area; 453-1, 453-2, …, 453-n)과 제어 영역(control area; 456-1, 456-2, …, 456-n)을 가지고 있으며, 각 영역은 주변 장치의 수 또는 채널의 수에 따라 n개로 분할될 수 있다. 환경설정 영역(453-1, 453-2, …, 453-n)은 동작 상태를, 제어 영역(456-1, 456-2, …, 456-n)은 제어 정보를 저장하고 있다. The information acquirer 430 reads control information and an operation state of each channel from the external memory or the external register 450. Here, the external memory or the external register 450 has an area for storing control information and an operation state of the channel, which is subdivided into n (natural numbers) areas corresponding to the number of channels. Referring to FIG. 5, the external memory or the external register 450 may include a configuration area 453-1, 453-2, ..., 453-n and a control area 456-1, 456-2. , 456-n), and each area may be divided into n parts according to the number of peripheral devices or the number of channels. The environment setting areas 453-1, 453-2, ..., 453-n store the operation state, and the control areas 456-1, 456-2, ..., 456-n store control information.

정보 획득부(430)는 제어부(420) 내부에 있는 데이터 전송을 위한 통로 및 인터페이스 모듈(440)를 통해 외부 메모리 또는 외부 레지스터(450)에 접근하게 된다. 정보 획득부(430)는 현재 활성화되어야 할 채널에 대한 정보를 외부로부터 수신하거나 읽어오게 되고, 해당 채널의 제어 정보 및 동작 상태를 독출하게 된다. The information acquirer 430 accesses the external memory or the external register 450 through a passage for transmitting data in the controller 420 and the interface module 440. The information acquisition unit 430 receives or reads information on a channel to be activated currently from the outside, and reads control information and an operation state of the corresponding channel.

또한, 정보 획득부(430)는 외부 메모리 또는 외부 레지스터(450)로부터 독출한 제어 정보 및 동작 상태를 내부 레지스터부(410)에 기록함으로써 내부 레지스 터부(410)를 갱신한다. In addition, the information acquisition unit 430 updates the internal register unit 410 by writing control information and an operation state read from the external memory or the external register 450 to the internal register unit 410.

또한, 정보 획득부(430)는 해당 채널의 직접 메모리 접근에 따른 데이터 전송 동작이 한번에 완료되지 않는 경우에, 현재 채널의 상태를 외부 메모리 또는 외부 레지스터(450) 내의 해당 저장 영역에 갱신하는 것이 바람직하다. 현재 채널의 상태는 내부 레지스터부(410)에 기록이 되고 있으므로, 내부 레지스터부(410)에 저장된 동작 상태를 독출하여 외부 메모리 또는 외부 레지스터(450)의 해당 채널에 지정된 저장 영역에 저장한다. 이후 다음 차례에 해당 채널이 호출되는 경우에 갱신된 동작 상태 값이 독출되어 직접 메모리 접근에 따른 데이터 전송 동작을 연속적으로 수행할 수 있게 된다. In addition, when the data transfer operation according to the direct memory access of the channel is not completed at one time, the information acquisition unit 430 preferably updates the state of the current channel to the corresponding storage area in the external memory or the external register 450. Do. Since the state of the current channel is recorded in the internal register unit 410, the operation state stored in the internal register unit 410 is read and stored in the storage area designated for the corresponding channel of the external memory or the external register 450. Thereafter, when the corresponding channel is called next time, the updated operation state value is read and thus data transmission operation according to direct memory access can be continuously performed.

본 발명에 따른 직접 메모리 접근 제어기(400)에서 직접 메모리 접근을 수행하는 방법은 다음과 같다. A method of performing a direct memory access in the direct memory access controller 400 according to the present invention is as follows.

외부의 주변 장치로부터 직접 메모리 접근 요청을 수용한 정보 획득부(430)는 외부 메모리 또는 외부 레지스터(450)로부터 해당 주변 장치에 상응하는 채널에 대한 제어 정보 및 동작 상태를 독출한다. 외부 메모리 또는 외부 레지스터(450)는 각 주변 장치에 대하여 또는 각 채널에 대하여 서로 다른 저장 영역에 제어 정보 및 동작 상태를 저장하고 있다. 이때 정보 획득부(430)는 제어부(420) 및 인터페이스 모듈(440)를 통해 외부 메모리 또는 외부 레지스터(450)에 접근하여 데이터를 전송하거나 전송받는다. The information acquisition unit 430 that receives a memory access request directly from an external peripheral device reads control information and an operation state of a channel corresponding to the peripheral device from an external memory or an external register 450. The external memory or the external register 450 stores control information and an operation state in different storage areas for each peripheral device or each channel. At this time, the information acquisition unit 430 transmits or receives data by accessing the external memory or the external register 450 through the control unit 420 and the interface module 440.

정보 획득부(430)는 독출한 제어 정보 및 동작 상태를 내부 레지스터부(410)에 기록함으로써 내부 레지스터부(410)를 갱신한다. 제어부(420)는 갱신된 내 부 레지스터부(410)를 참조하여 해당 채널에 대한 제어 정보 및 동작 상태를 인지한다. 그리고 중앙 처리 장치로부터 버스의 점유를 가져오고, 버스를 통해 외부 메모리(450)와 주변 장치 간에 데이터 전송이 수행되도록 한다. 데이터 전송이 완료되면 제어부(420)는 중앙 처리 장치를 인터럽트한다. The information acquisition unit 430 updates the internal register unit 410 by recording the read control information and the operation state in the internal register unit 410. The controller 420 refers to the updated internal register unit 410 to recognize control information and an operation state of a corresponding channel. The bus occupies the bus from the central processing unit and transfers data between the external memory 450 and the peripheral device through the bus. When the data transmission is completed, the controller 420 interrupts the central processing unit.

하지만, 데이터 전송이 한번에 완료되지 않는 경우에 현재 채널의 동작 상태를 정보 획득부(430)를 이용하여 외부 메모리 또는 외부 레지스터(450)의 해당 영역에 저장함으로써 해당 영역을 갱신한다. 이후 해당 채널에 대하여 다음번 호출이 수행될 때 정보 획득부(430)는 이전에 갱신하였던 동작 상태 값을 독출하여 직접 메모리 접근에 따른 데이터 전송이 연속적으로 수행되도록 할 수 있다. However, when the data transfer is not completed at one time, the current region is updated by storing the operation state of the current channel in the corresponding region of the external memory or the external register 450 using the information acquisition unit 430. Then, the next time the next call is made to the channel, the information acquisition unit 430 may read the previously updated operating state value so that data transmission according to direct memory access is continuously performed.

활성화하고자 하는 직접 메모리 접근 관련 채널에 관한 정보인 제어 정보와 동작 상태를 정보 획득부(430)를 통해 외부 메모리 또는 외부 레지스터(450)로부터 내부 레지스터부(410)에 저장한다. 하나의 내부 레지스터부(410)를 공유, 참조함으로써 제어부(420)는 직접 메모리 접근 동작을 수행하게 된다. The control information and the operation state, which are information on the direct memory access related channel to be activated, are stored in the internal register unit 410 from the external memory or the external register 450 through the information acquisition unit 430. By sharing and referring to one internal register 410, the controller 420 performs a direct memory access operation.

본 발명에 따른 직접 메모리 접근 제어기(400)는 외부 메모리 또는 외부 레지스터(450)에 미리 저장된 채널의 정보를 이용하여 현재의 직접 메모리 접근 동작을 수행하게 된다. 한번의 직접 메모리 접근 동작에 의해 데이터 전송이 완료되지 않은 경우에 정보 획득부(430)는 외부 메모리 또는 외부 레지스터(450)에 다음번 호출시 연속적인 데이터 전송을 위하여 현재의 채널의 정보 즉, 동작 상태를 저장하는 것이 바람직하다. The direct memory access controller 400 according to the present invention performs a current direct memory access operation by using information of a channel previously stored in an external memory or an external register 450. When the data transfer is not completed by one direct memory access operation, the information acquisition unit 430 may provide information on the current channel, that is, operating state, for continuous data transfer on the next call to the external memory or the external register 450. It is desirable to store it.

본 발명에서 직접 메모리 접근 제어기(400)는 직접 메모리 접근을 요구하는 여러 개의 주변 장치들로부터 직접 메모리 접근 요구를 수용하여 다수개의 채널을 제어할 수 있다. 정보 획득부(420)는 직접 메모리 접근을 요구하는 여러 개의 주변 장치들에 대하여 순차적으로 또는 미리 지정된 순서에 따라 우선순위를 부여한다. 그리고 우선순위에 따라 각 주변 장치에 상응하는 외부 메모리 또는 외부 레지스터(450)의 채널 관련 정보 저장 영역(453-1, 453-2, …, 453-n, 456-1, 456-2, … 또는 456-n)으로부터 정보를 독출하여 내부 레지스터부(410)를 차례대로 갱신한다. 제어부(420)는 갱신되는 내부 레지스터부(410)에 저장되는 정보 즉, 채널 관련 정보에 의해 우선순위에 따라 다수개의 채널을 열어주고 데이터 전송을 제어한다. In the present invention, the direct memory access controller 400 may control a plurality of channels by accepting a direct memory access request from a plurality of peripheral devices requiring direct memory access. The information acquirer 420 gives priority to a plurality of peripheral devices requiring direct memory access sequentially or in a predetermined order. And channel-related information storage areas 453-1, 453-2, ..., 453-n, 456-1, 456-2, ... of the external memory or the external register 450 corresponding to each peripheral device according to the priority. Information is read from 456-n, and the internal register unit 410 is sequentially updated. The controller 420 opens a plurality of channels according to the priority and controls data transmission based on the information stored in the updated internal register 410, that is, the channel related information.

상술한 바와 같이, 본 발명에 따른 직접 메모리 접근 제어기는 종래의 반복적인 다수의 내부 레지스터부를 제거하여도 멀티 채널 방식이 가능하도록 한다. As described above, the direct memory access controller according to the present invention enables a multi-channel method even by removing a plurality of conventional repetitive internal registers.

또한, 하드웨어의 크기를 줄일 수 있으며, 하나의 내부 레지스터부를 계속 갱신 사용함으로써 효율성을 높일 수 있다. In addition, the size of the hardware can be reduced, and the efficiency can be increased by continuously updating and using one internal register.

또한, 외부 메모리 또는 외부 레지스터부에 접근하게 됨에 따라 내부 레지스터부를 갱신하기 때문에 시간 지연이 발생하지만, 직접 메모리 접근 제어기 구현시 하나의 내부 레지스터만 필요하게 됨에 따라 직접 메모리 접근 제어기가 구현된 칩(chip)의 크기를 줄일 수 있게 된다. 유비쿼터스화되고 있는 현재 디지털 장치들도 휴대가 가능하도록 소형화되고 있는 추세에서 칩의 크기를 줄이는 것은 필수적이며, 그에 따른 경제적 효과도 있는 바 동작 시간과 칩 크기 간의 트레이드 오프 (trade off)가 필요하다. In addition, since the internal register is updated as the external memory or external register is accessed, a time delay occurs. However, since only one internal register is needed when implementing the direct memory access controller, a chip in which the direct memory access controller is implemented ) Can be reduced in size. In today's ubiquitous digital devices, the size of the chip is essential to be portable, and there is an economical effect, which requires a trade-off between operating time and chip size.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to a preferred embodiment of the present invention, those skilled in the art to which the present invention pertains without departing from the spirit and scope of the present invention as set forth in the claims below It will be appreciated that modifications and variations can be made.

Claims (7)

채널(channel)의 제어 정보 및 직접 메모리 접근(DMA) 동작에 따른 동작 상태를 저장하는 내부 레지스터부;An internal register unit configured to store control information of a channel and an operation state according to a direct memory access (DMA) operation; 상기 내부 레지스터부를 참조하여 데이터의 전송 흐름을 제어하고, 소스와 목적지의 어드레스에 대한 전송 위치 비교를 수행하는 제어부;A control unit which controls a transmission flow of data by referring to the internal register unit and compares transmission positions with respect to addresses of a source and a destination; 상기 제어부의 제어를 받아 상기 소스와 목적지 사이의 버스를 제어하고 상기 데이터를 전송하는 인터페이스 모듈; 및An interface module for controlling a bus between the source and the destination and transmitting the data under the control of the controller; And 복수의 채널에 대한 제어 정보 및 동작 상태를 저장하는 외부 메모리로부터 소정 조건에 따른 채널의 제어 정보 및 동작 상태를 독출하여 상기 내부 레지스터부를 갱신(update)하는 정보 획득부를 포함하는 직접 메모리 접근 제어기(Direct Memory Access Controller).Direct memory access controller including an information acquisition unit for reading the control information and operation state of the channel according to a predetermined condition from the external memory for storing the control information and operation state for a plurality of channels and updating the internal register unit (Direct Memory Access Controller). 제1항에 있어서, The method of claim 1, 상기 정보 획득부는 상기 제어부 및 상기 인터페이스 모듈을 통해 상기 외부 메모리와 데이터를 전송하는 직접 메모리 접근 제어기.The information acquisition unit is a direct memory access controller for transmitting data with the external memory through the control unit and the interface module. 제1항에 있어서, The method of claim 1, 상기 내부 레지스터부는 The internal register part 상기 제어 정보를 저장하는 제어 레지스터; 및A control register for storing the control information; And 상기 동작 상태를 저장하는 환경설정 레지스터를 포함하는 직접 메모리 접근 제어기.And a configuration register to store the operating state. 제1항에 있어서, The method of claim 1, 상기 인터페이스 모듈은 제1 버스를 통해 버스 제어를 하고, 제2 버스를 통해 데이터 전송을 수행하는 직접 메모리 접근 제어기.And the interface module performs bus control over a first bus and performs data transfer over a second bus. 제1항에 있어서, The method of claim 1, 상기 제어부는 직접 메모리 접근에 따른 데이터 전송이 미완료된 동작 상태를 상기 내부 레지스터부에 기록하는 직접 메모리 접근 제어기. And the controller writes an operation state in which data transfer according to direct memory access is not completed, to the internal register unit. 제5항에 있어서, The method of claim 5, 상기 정보 획득부는 상기 내부 레지스터부에 저장된 현재 동작 상태를 독출하여 상기 외부 메모리에 기록된 동작 상태를 갱신하는 직접 메모리 접근 제어기.And the information acquiring unit reads a current operating state stored in the internal register and updates the operating state recorded in the external memory. 제1항에 있어서, The method of claim 1, 상기 외부 메모리는 하나 이상의 저장 영역을 포함하되, The external memory includes one or more storage areas, 상기 정보 획득부는 순차적으로 또는 미리 지정된 순서에 따라 상기 하나 이상의 저장 영역 중 어느 하나로부터 상기 채널의 제어 정보 및 동작 상태를 독출하는 직접 메모리 접근 제어기.And the information acquisition unit reads control information and an operation state of the channel from any one of the one or more storage areas sequentially or in a predetermined order.
KR1020050120963A 2005-12-09 2005-12-09 Multi-channel direct memory access controller KR20070060854A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050120963A KR20070060854A (en) 2005-12-09 2005-12-09 Multi-channel direct memory access controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050120963A KR20070060854A (en) 2005-12-09 2005-12-09 Multi-channel direct memory access controller

Publications (1)

Publication Number Publication Date
KR20070060854A true KR20070060854A (en) 2007-06-13

Family

ID=38356820

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050120963A KR20070060854A (en) 2005-12-09 2005-12-09 Multi-channel direct memory access controller

Country Status (1)

Country Link
KR (1) KR20070060854A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799529B2 (en) 2010-12-15 2014-08-05 Electronics And Telecommunications Research Institute Direct memory access controller and operating method thereof
US8806082B2 (en) 2010-07-29 2014-08-12 Samsung Electronics Co., Ltd. Direct memory access device for multi-core system and operating method of the same
US8898352B2 (en) 2012-02-28 2014-11-25 Samsung Electronics Co. Ltd. Storage device
US9703593B2 (en) 2012-02-06 2017-07-11 Samsung Electronics Co., Ltd. Apparatus and method for memory overlay

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806082B2 (en) 2010-07-29 2014-08-12 Samsung Electronics Co., Ltd. Direct memory access device for multi-core system and operating method of the same
US8799529B2 (en) 2010-12-15 2014-08-05 Electronics And Telecommunications Research Institute Direct memory access controller and operating method thereof
US9703593B2 (en) 2012-02-06 2017-07-11 Samsung Electronics Co., Ltd. Apparatus and method for memory overlay
US8898352B2 (en) 2012-02-28 2014-11-25 Samsung Electronics Co. Ltd. Storage device
US9075531B2 (en) 2012-02-28 2015-07-07 Samsung Electronics Co., Ltd. Storage device

Similar Documents

Publication Publication Date Title
KR0142175B1 (en) Circuit Architecture to Support Multichannel DM Operation
US20030067814A1 (en) Apparatus and architecture for a compact flash memory controller
KR20060113248A (en) An apparatus and method for controlling nand flash memory
KR100721091B1 (en) Flexible general-purpose input/output system
US6728797B2 (en) DMA controller
US20050144338A1 (en) Data transfer apparatus
KR20050043303A (en) High speed data transmission method using direct memory access method in multi-processors condition and apparatus therefor
KR20070060854A (en) Multi-channel direct memory access controller
US8386725B2 (en) USB host controller and controlling method for USB host controller
US6754780B1 (en) Providing data in response to a read command that maintains cache line alignment
US20110283068A1 (en) Memory access apparatus and method
JP5497743B2 (en) Method for controlling access to memory area from a plurality of processes, and communication module including message memory for realizing the method
US8769167B2 (en) Channel device, information processing system and data transfer method
US20090235010A1 (en) Data processing circuit, cache system, and data transfer apparatus
US6401151B1 (en) Method for configuring bus architecture through software control
EP0382342B1 (en) Computer system DMA transfer
US20050223129A1 (en) Arbitration of data transfer requests
KR100950356B1 (en) Data transfer unit with support for multiple coherency granules
JP4723334B2 (en) DMA transfer system
JPH0736806A (en) Dma system
US11537537B2 (en) Semiconductor device and method
KR100728870B1 (en) Dual port ram and method of losslessly transmitting data using the dual port ram
KR20070081981A (en) Interface method and apparatus in cpuless system
JPH05204830A (en) Input/output controller
KR100800704B1 (en) Message preprocessing apparatus and control method for mobile station in wireless communication system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application