KR101214068B1 - Method and apparatus for controlling a bus in direct memory access controller - Google Patents

Method and apparatus for controlling a bus in direct memory access controller Download PDF

Info

Publication number
KR101214068B1
KR101214068B1 KR1020060010574A KR20060010574A KR101214068B1 KR 101214068 B1 KR101214068 B1 KR 101214068B1 KR 1020060010574 A KR1020060010574 A KR 1020060010574A KR 20060010574 A KR20060010574 A KR 20060010574A KR 101214068 B1 KR101214068 B1 KR 101214068B1
Authority
KR
South Korea
Prior art keywords
bus
occupancy
channels
channel
holdgrant0
Prior art date
Application number
KR1020060010574A
Other languages
Korean (ko)
Other versions
KR20070079718A (en
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 KR1020060010574A priority Critical patent/KR101214068B1/en
Publication of KR20070079718A publication Critical patent/KR20070079718A/en
Application granted granted Critical
Publication of KR101214068B1 publication Critical patent/KR101214068B1/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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention

Abstract

본 발명은 버스에 의한 채널들을 통해 데이터 전송이 이루어지는 컴퓨터 시스템에서 채널 별로의 버스 점유 특성을 결정하는 직접 메모리 액세스 제어장치 및 채널 별로의 버스 점유 특성을 결정하는 방법에 관한 것이다.

이를 위해 채널 로직부들이 채널들 각각에 대응한 점유 요청 신호들을 발생하고, 제어 로직부가 채널들의 수만큼의 유지 승인 신호들을 발생한다. AHB (Advanced High-performance Bus) 마스터는 상기 채널 로직부들에 의해 발생된 점유 요청 신호들과 상기 제어 로직부에 의해 발생된 유지 승인 신호들을 기반으로 버스 점유 특성을 점유형과 비점유형 중 하나의 유형으로 결정하는 버스 점유 특성 결정 신호를 발생한다.

Figure R1020060010574

DMA, AHB, 버스

The present invention relates to a direct memory access control device for determining bus occupancy characteristics for each channel and a method for determining bus occupancy characteristics for each channel in a computer system in which data is transmitted through channels by a bus.

To this end, the channel logic units generate occupancy request signals corresponding to each of the channels, and the control logic unit generates maintenance grant signals as many as the number of channels. AHB (Advanced High-performance Bus) master uses the occupancy request signals generated by the channel logic units and the hold acknowledgment signals generated by the control logic unit to assign bus occupancy characteristics to one of the types of occupied and non-occupied. The bus occupancy characteristic determination signal is determined.

Figure R1020060010574

DMA, AHB, Bus

Description

직접 메모리 액세스 제어부에서 버스 제어 방법 및 장치{METHOD AND APPARATUS FOR CONTROLLING A BUS IN DIRECT MEMORY ACCESS CONTROLLER}METHOD AND APPARATUS FOR CONTROLLING A BUS IN DIRECT MEMORY ACCESS CONTROLLER}

도 1은 일반적인 직접 메모리 액세스(Direct Memory Access: DMA) 제어부를 나타낸 블록도1 is a block diagram illustrating a general direct memory access (DMA) control unit.

도 2는 일반적인 DMA 제어부에서 AHB(Advanced High-performance Bus) 마스터를 나타낸 블록도2 is a block diagram showing an advanced high-performance bus (AHB) master in a general DMA controller;

도 3은 종래 기술에 따른 AHB 제어부가 버스 점유형 동작을 할 때의 DMA 관련 AHB 신호의 타이밍도3 is a timing diagram of a DMA-related AHB signal when the AHB control unit according to the related art performs bus occupancy type operation.

도 4는 본 발명의 바람직할 실시 예에 따른 DMA 제어부를 나타낸 블록도4 is a block diagram illustrating a DMA controller according to an exemplary embodiment of the present invention.

도 5는 본 발명의 DMA 제어부에서 AHB 마스터를 나타낸 블록도5 is a block diagram showing an AHB master in a DMA controller of the present invention.

도 6은 본 발명의 DMA 제어부에서 동작을 나타내는 타이밍도6 is a timing diagram showing an operation in a DMA controller of the present invention.

본 발명은 중앙처리장치와 주변장치들로 이루어지는 컴퓨터시스템에 관한 것으로, 특히 컴퓨터 시스템에서의 직접 메모리 액세스(Direct Memory Access: DMA) 제어부에서 버스 제어 방법 및 장치에 관한 것이다.The present invention relates to a computer system comprising a central processing unit and peripherals, and more particularly, to a bus control method and apparatus in a direct memory access (DMA) control unit in a computer system.

컴퓨터 시스템에서 중앙 처리 장치(Central Processing Unit: CPU) CPU는 시스템의 주변장치들(Peripheral devices)과 접속되어 데이터의 입력 기능, 데이터의 출력 기능, 논리 연산 기능 등을 수행하는 시스템의 필수적인 구성요소이다. 컴퓨터 시스템에서 주변 장치간의 데이터 전송 제어를 위해 버스 구조를 사용한다. 이러한 버스 구조에서 데이터의 이동은 항상 CPU의 제어를 받게 된다. 따라서 대량의 데이터가 이동할 때는 CPU에 상당히 부하가 많이 걸리게 된다. 이에 따라 CPU의 부하를 줄이기 위해 직접 메모리 액세스(DMA) 방법을 사용한다. 상기 DMA 방법은 데이터 이동 시 CPU를 거치지 않고 버스를 통해 직접 데이터를 전송하는 방법이다.Central Processing Unit (CPU) In a computer system, the CPU is an essential component of the system that is connected to the peripheral devices of the system to perform data input, data output, and logic operations. . In computer systems, bus structures are used to control data transfer between peripherals. The movement of data in this bus structure is always under CPU control. As a result, when a large amount of data is moved, the CPU is very heavily loaded. Therefore, direct memory access (DMA) method is used to reduce CPU load. The DMA method is a method of directly transferring data through a bus without passing through a CPU when moving data.

그러면 버스 구조 중 AHB(Advanced High-performance Bus)를 사용하는 DMA 제어부에서의 동작 방법을 설명하겠다.Next, an operation method of a DMA controller using an advanced high-performance bus (AHB) in the bus structure will be described.

도 1은 일반적인 DMA 제어부(Controller)(100)를 나타낸 블록도이다.1 is a block diagram illustrating a general DMA controller 100.

도 1을 참조하면, DMA 제어부(100)는 AHB 슬레이브 인터페이스(AHB slave interface)(101), DMA 요청 응답 인터페이스(DMA request and response interface)(103), 인터럽트 요청부(interrupt request)(105), 제어 로직부(Control logic and register bank)(107), 각 채널(Channel) 별 채널 로직부(channel logic and channel register bank)(109, 111), AHB 마스터(AHB master)(120) 로 구성된다. 상기 기능블록을 이미 공지된 사항으로 여기서는 생략하기로 한다. AHB 마스터(120)는 내부에서 처리된 DMA 동작을 AHB 마스터 신호로 바꾸어 버스에 연결하는 부분으로, AHB 마스터(120)의 동작이 직접적으로 버스 점유 특성에 영향을 주게 된다. 이 AHB 마스터(120)의 동작을 제어하는 부분이 제어 로직부 (107)이다.Referring to FIG. 1, the DMA controller 100 includes an AHB slave interface 101, a DMA request and response interface 103, an interrupt request 105, The control logic unit includes a control logic and register bank 107, channel logic and channel register banks 109 and 111 for each channel, and an AHB master 120. The functional block is already known and will be omitted herein. The AHB master 120 converts an internally processed DMA operation into an AHB master signal and connects the bus to the bus. The operation of the AHB master 120 directly affects bus occupancy characteristics. The control logic unit 107 is a part for controlling the operation of the AHB master 120.

상기 AHB 마스터(120)는 AHB 버스를 이용하여 전송하기 위해 허락을 받기 위 한 동작을 수행한다.The AHB master 120 performs an operation for obtaining permission to transmit using the AHB bus.

AHB(Advanced High-performance Bus)의 경우, 하나의 마스터가 버스를 점유하면 다른 마스터는 버스를 사용하지 못하는 특성을 가진다. 종래 기술의 경우 AHB 마스터(120)의 버스 점유 특성을 결정하는 것은 AHB 마스터(120)내의 ‘IArbPriority’라는 중재 우선 신호(Arbitration Priority Signal)이다. 상기 IArbPriority가 '1'이면 버스를 독점적으로 점유한 채 DMA 동작이 이루어지며, '0'이면 비 점유형으로 동작한다.In the case of Advanced High-performance Bus (AHB), when one master occupies the bus, the other master cannot use the bus. In the prior art, determining the bus occupancy characteristic of the AHB master 120 is an Arbitration Priority Signal called 'IArbPriority' in the AHB master 120. If the IArbPriority is '1', the DMA operation is performed while occupying the bus exclusively.

여기서 상기 점유형은 DMA 동작 시 다른 마스터들이 사용하지 못하는 경우이고, 상기 비점유형은 DMA 동작 시에도 다른 마스터들이 인터럽트를 보내는 경우 사용할 수 있는 경우를 나타낸다.Here, the occupancy type is a case where other masters cannot use the DMA operation, and the non-occupation type indicates a case where other masters can use the interrupt even during the DMA operation.

예컨대 PrimeCell PL081과 같은 기존 DMA 제어부(100)의 경우에는 채널(Channel) 별로 버스 점유의 특성이 달라서 용도에 따라 그에 맞는 특성을 지닌 채널을 선택하여 사용하게 되어있다.For example, in the case of the existing DMA controller 100 such as PrimeCell PL081, the characteristics of bus occupancy are different for each channel, so that a channel having a characteristic suitable for the purpose is selected and used.

channel0 의 경우, DMA 제어부(100)가 데이터를 옮기고 있는 동안에는 CPU와 같은 다른 마스터(Master)가 버스를 사용할 수 없어 점유형으로 동작한다. channel1 의 경우에는 DMA 제어부(100)가 데이터를 옮기는 동안에도 CPU와 같은 다른 마스터가 버스를 사용하는 것이 가능하다.In the case of channel0, while the DMA control unit 100 is transferring data, another master such as a CPU cannot use the bus and operates in an occupied type. In the case of channel1, it is possible for another master such as a CPU to use the bus while the DMA control unit 100 transfers data.

상기 Channel0, Channel1은 각각 Ch0ReqM, Ch1ReqM이라는 신호(Signal) '1'로 출력함으로써, AHB 마스터(100)에 DMA 동작을 요청하게 된다. 이에 대해 상기 AHB 마스터(120)의 구현 동작을 다음의 도 2를 이용하여 설명하기로 한다. 도 2는 도 1의 AHB 마스터(120)를 나타낸 블록도로서, 일례를 나타내었다.Channel0 and Channel1 output the signals '1' such as Ch0ReqM and Ch1ReqM, respectively, to request the DMA operation to the AHB master 100. The implementation operation of the AHB master 120 will be described with reference to FIG. 2. FIG. 2 is a block diagram illustrating the AHB master 120 of FIG. 1, showing an example.

도 2를 참조하면, AHB 마스터(120)는 두 개의 인터버(121, 125)와 하나의 앤드 게이트(123)로 구성된다. 이 과정에서 channel0 와 channel1 이 함께 동작을 요청하는 경우 channel0의 우선순위가 높으므로 channel0의 요청이 전달되는데, 이것이 CombCh1Gnt가 '1'로 표시된다.Referring to FIG. 2, the AHB master 120 is composed of two interleavers 121 and 125 and one end gate 123. In this process, when channel0 and channel1 request the operation together, channel0 has a high priority, so the request of channel0 is transmitted, which indicates that CombCh1Gnt is '1'.

버스의 점유 특성을 결정짓는 과정을 설명하면, Ch0ReqM이 '1'인 경우, 앤드 게이트(123)는 첫 번째 인버터(121)로 인해 무조건 '0'이 입력되므로 Ch1ReqM의 값과는 상관없이 CombCh1Gnt는 '0'의 값을 가지며, 이에 따라 IArbPriority는 두 번째 인버터(125)로 인해 '1'이 되어 독점적으로 버스를 점유한 채 DMA 동작이 이루어진다.Referring to the process of determining the occupancy characteristics of the bus, when Ch0ReqM is '1', the AND gate 123 is inputted '0' unconditionally by the first inverter 121, so that CombCh1Gnt is independent of the value of Ch1ReqM. It has a value of '0', and thus IArbPriority becomes '1' due to the second inverter 125, so that the DMA operation is performed while occupying the bus exclusively.

다음으로 Ch0ReqM이 '0'이고 Ch1ReqM이 '1'인 경우, 상기 앤드 게이트(123)에 의해 CombCh1Gnt는 '1'의 값을 가진다. 이에 따라 IArbPriority는 상기 두 번째 인버터(125)에 의해 '0'의 값을 가지게 되어 AHB 마스터(120)는 버스 비 점유형으로 동작하게 된다.Next, when Ch0ReqM is '0' and Ch1ReqM is '1', CombCh1Gnt has a value of '1' by the AND gate 123. Accordingly, IArbPriority has a value of '0' by the second inverter 125 so that the AHB master 120 operates in a bus non-occupancy type.

도 3은 종래 기술에 따른 AHB 제어부(100)가 버스 점유형 동작을 할 때의 DMA 관련 AHB 신호의 타이밍도이다.3 is a timing diagram of a DMA-related AHB signal when the AHB control unit 100 according to the related art performs a bus occupancy type operation.

도 3을 설명하기 앞서 각 신호를 설명하면, HCLK는 DMA 마스터 포트가 연결된 AHB의 버스 동기 클럭이고, HBUSREQ는 AHB 마스터로 동작하기 위해 버스 사용 권한을 요청하는 신호이고, HGRANT는 버스 Arbiter로부터 버스 사용 권한을 허가 받는 신호이다. 또한 HTRANS는 AHB transaction 특성을 나타내는 제어 신호이며, HADDR는 AHB 주소를 나타내는 신호이다.Referring to FIG. 3, each signal will be described. HCLK is a bus synchronization clock of an AHB connected to a DMA master port, HBUSREQ is a signal requesting permission to use a bus to operate as an AHB master, and HGRANT is a bus used from a bus Arbiter. Signal to be granted. In addition, HTRANS is a control signal indicating the AHB transaction characteristics, HADDR is a signal indicating the AHB address.

도 3을 살펴보면, DMA 제어부(100)가 AHB 마스터(120)로 동작함에 있어 HBUSREQ를 계속 1로 유지함으로써 HGRANT를 계속 1로 받고 있으며, 따라서 다른 마스터는 버스를 사용할 수 없음을 알 수 있다.Referring to FIG. 3, it can be seen that the DMA controller 100 receives HGRANT 1 by continuously maintaining HBUSREQ 1 while operating as the AHB master 120, so that other masters cannot use the bus.

도 3의 타이밍도에서 알 수 있듯이 종래의 DMA 제어부(100)는 버스 점유 특성이 채널 별로 고정되어 있기 때문에 상황에 맞게 채널의 특성을 바꾸어 사용하는 것이 불가능한 문제점이 있다. 예를 들어 두 개의 채널을 모두 버스 점유형으로 사용하거나 버스 비 점유형으로 사용하는 것이 불가능하다.As can be seen from the timing diagram of FIG. 3, the conventional DMA controller 100 has a problem in that it is impossible to change the characteristics of the channel according to the situation because the bus occupancy characteristics are fixed for each channel. For example, it is not possible to use both channels as bus occupied or non-bus occupied.

따라서 본 발명의 목적은 DMA 제어부에서 버스 자원을 유동적으로 제어하는 방법 및 장치를 제공함에 있다.Accordingly, an object of the present invention is to provide a method and apparatus for fluidly controlling bus resources in a DMA controller.

본 발명의 다른 목적은 DMA 제어부에서 소프트웨어적으로 버스 자원을 제어하는 방법 및 장치를 제공함에 있다.Another object of the present invention is to provide a method and apparatus for controlling bus resources in software in a DMA controller.

상술한 바를 달성하기 위한 본 발명에 따른 버스에 의한 채널들을 통해 데이터 전송이 이루어지는 컴퓨터 시스템에서 상기 채널 별로의 버스 점유 특성을 결정하는 직접 메모리 액세스 제어장치는, 상기 채널들 각각에 대응한 점유 요청 신호들 (Ch0ReqM, Ch1ReqM)을 발생하는 채널 로직부들과, 상기 채널들의 수만큼의 유지 승인 신호들 (HoldGrant0, HoldGrant1)을 발생하는 제어 로직부와, 상기 채널 로직부들에 의해 발생된 점유 요청 신호들 (Ch0ReqM, Ch1ReqM)과 상기 제어 로직부에 의해 발생된 유지 승인 신호들 (HoldGrant0, HoldGrant1)을 기반으로 버스 점유 특성을 점유형과 비점유형 중 하나의 유형으로 결정하는 버스 점유 특성 결정 신호 (IArbPriority)를 발생하는 AHB (Advanced High-performance Bus) 마스터를 포함한다.A direct memory access control apparatus for determining bus occupancy characteristics for each channel in a computer system in which data transmission is performed through channels by a bus according to the present invention for achieving the above-mentioned, includes an occupancy request signal corresponding to each of the channels. Channel logic units for generating (Ch0ReqM, Ch1ReqM), control logic unit for generating hold grant signals (HoldGrant0, HoldGrant1) as many as the number of channels, and occupancy request signals generated by the channel logic units ( A bus occupancy characteristic determination signal (IArbPriority) for determining a bus occupancy characteristic as one of the occupied type and the non-occupied type based on Ch0ReqM and Ch1ReqM) and the holding grant signals HoldGrant0 and HoldGrant1 generated by the control logic unit. Includes an advanced high-performance bus (AHB) master that occurs.

상술한 바를 달성하기 위한 본 발명에 따른 버스에 의한 채널들을 통해 데이터 전송이 이루어지는 컴퓨터 시스템에서 직접 메모리 액세스 제어장치가 상기 채널 별로의 버스 점유 특성을 결정하는 방법은, 상기 채널들 각각에 대응한 점유 요청 신호들 (Ch0ReqM, Ch1ReqM)을 발생하는 과정과, 상기 채널들의 수만큼의 유지 승인 신호들 (HoldGrant0, HoldGrant1)을 발생하는 과정과, 상기 발생된 점유 요청 신호들 (Ch0ReqM, Ch1ReqM)과 상기 발생된 유지 승인 신호들 (HoldGrant0, HoldGrant1)을 기반으로 버스 점유 특성을 점유형과 비점유형 중 하나의 유형으로 결정하는 버스 점유 특성 결정 신호 (IArbPriority)를 발생하는 과정을 포함한다.In a computer system in which data is transmitted through channels by a bus according to the present invention for determining the above, a method of directly determining a bus occupancy characteristic of each channel by a memory access control apparatus includes: corresponding to each of the channels. Generating request signals Ch0ReqM and Ch1ReqM, generating hold grant signals HoldGrant0 and HoldGrant1 as many as the number of channels, and generating the occupancy request signals Ch0ReqM and Ch1ReqM. And generating a bus occupancy characteristic determination signal (IArbPriority) that determines the bus occupancy characteristic as one of an occupied type and an unoccupied type based on the retained acknowledgment signals HoldGrant0 and HoldGrant1.

삭제delete

이하 본 발명의 바람직한 실시 예들의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 동일한 구성들은 가능한 한 어느 곳에서든지 동일한 부호들을 나타내고 있음을 유의하여야 한다. 하기 설명에서 구체적인 특정사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해 제공된 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체 적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a detailed description of preferred embodiments of the present invention will be given with reference to the accompanying drawings. It should be noted that the same configurations of the drawings denote the same reference numerals as possible whenever possible. Specific details are set forth in the following description, which is provided to aid a more general understanding of the invention. And in describing the present invention, if it is determined that the detailed description of the related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

본 발명은 기존의 DMA 제어부에서 버스 점유형인 경우에도 다른 외부 마스터들이 사용할 수 있도록 버스의 점유 특성을 유동적으로 제어할 수 있음을 특징으로 한다. 그러면 본 발명에 따른 DMA 제어부에 대해 설명한 후 그에 따른 제어 방법을 도면을 이용하여 설명하기로 한다.The present invention is characterized in that the occupancy characteristics of the bus can be flexibly controlled to be used by other external masters even when the bus is occupied by the existing DMA controller. Next, a description will be given of the DMA control unit according to the present invention and a control method according to the present invention with reference to the accompanying drawings.

도 4는 본 발명의 바람직할 실시 예에 따른 DMA 제어부(400)를 나타낸 블록도이다.4 is a block diagram illustrating a DMA controller 400 according to an exemplary embodiment of the present invention.

도 4를 참조하면, DMA 제어부(400)는 제어 로직부(407)가 다양한 점유 형태를 제어할 수 있도록 제어 신호를 소프트웨어적으로 생성함을 특징으로 한다. 이하 설명에서 상기 제어 로직부(407)에서 생성되는 제어 신호는 HoldGrant0과 HoldGrant1로 칭할 것이다. 또한 각 기능블록에 대한 설명은 본 발명의 요지가 아니므로 상세한 설명은 생략하기로 한다.Referring to FIG. 4, the DMA controller 400 generates a control signal in software so that the control logic unit 407 can control various types of occupation. In the following description, the control signals generated by the control logic unit 407 will be referred to as HoldGrant0 and HoldGrant1. In addition, the description of each functional block is not the gist of the present invention, detailed description thereof will be omitted.

하기 <표 1>은 본 발명의 DMA 제어부(400)에서 제어 신호에 의해 점유 특성을 제어하는 일 예를 보이고 있다.Table 1 below shows an example of controlling the occupancy characteristics by the control signal in the DMA controller 400 of the present invention.

삭제delete

Figure 112006008254234-pat00001
Figure 112006008254234-pat00001

상기 <표 1>를 살펴보면, 제어 신호 HoldGrant0과 HoldGrant1을 추가함으로써, 채널 별로 버스 점유 특성을 다양하게 구성할 수 있다.Referring to Table 1, by adding the control signals HoldGrant0 and HoldGrant1, the bus occupancy characteristics can be variously configured for each channel.

삭제delete

도 5는 본 발명의 DMA 제어부(400)를 구성하는 AHB 마스터(420)의 상세 구성에 대한 일 예를 보이고 있다. 한편 하기에서 AHB 마스터(420)의 구체적인 동작은 상기 <표 1>에 예시한 채널 별 버스 점유 특성에 의해 설명하도록 한다.5 shows an example of a detailed configuration of the AHB master 420 constituting the DMA control unit 400 of the present invention. On the other hand, the specific operation of the AHB master 420 will be described by the bus occupancy characteristics for each channel illustrated in Table 1.

도 5를 참조하면, AHB 마스터(420)는 세 개의 인버터(421, 425, 429)와 세 개의 앤드 게이트(423, 427, 431)와 하나의 노아 게이트(433)에 의해 구성된다. 상기 AHB 마스터(420)를 구성하는 논리 회로는 일 예로써 제안되는 것일 뿐, 그 외의 구성에 의해 다양하게 구현이 가능함을 자명할 것이다.Referring to FIG. 5, the AHB master 420 is composed of three inverters 421, 425, and 429, three AND gates 423, 427, and 431, and one Noah gate 433. The logic circuit constituting the AHB master 420 is merely proposed as an example, and it will be apparent that various implementations may be made by other configurations.

삭제delete

본 발명에서 점유 특성을 최종적으로 결정하기 위해 상기 AHB 마스터(420)로부터 출력되는 신호는 IArbPriority이다. 이를 위해 제어 로직부(407)는 소프트웨어로 설정 가능한 레지스터를 포함하고 있다. 여기서 상기 제어 로직부(407)에 포함된 레지스터는 HoldGrant0, HoldGrant1의 신호를 생성한다. 상기 제어 로직부(407)에 포함된 레지스터에 의해 생성된 HoldGrant0, HoldGrant1 신호는 상기 AHB 마스터(420)에 의해 Ch0ReqM, Ch1ReqM 신호와 논리 연산되어 IArbPriority를 출력한다. 따라서 사용자가 상기 제어 로직부(407)에 의해 생성될 HoldGrant0, HoldGrant1 신호를 조정함으로써, 상기 AHB 마스터(420)에 의해 출력될 IArbPriority를 임의로 조정할 수 있는 구조를 가진다.In the present invention, the signal output from the AHB master 420 to finally determine the occupancy characteristic is IArbPriority. For this purpose, the control logic unit 407 includes a register that can be set by software. The register included in the control logic unit 407 generates signals of HoldGrant0 and HoldGrant1. The HoldGrant0 and HoldGrant1 signals generated by the registers included in the control logic unit 407 are logically operated by the AHB master 420 with the Ch0ReqM and Ch1ReqM signals to output IArbPriority. Therefore, the user can arbitrarily adjust the IArbPriority to be output by the AHB master 420 by adjusting the HoldGrant0 and HoldGrant1 signals to be generated by the control logic unit 407.

예컨대 첫 번째로 HoldGrant0의 값이 '1'이고, Hold Grant1의 값이 '1'인 경우, Ch0ReqM의 값이 '1'이면 제 1인버터(421)의 출력 값이 항상 '0'이 되므로 Ch1ReqM의 값에 상관없이 CombCh0Gnt의 값은 항상 '0'이 된다. 이에 따라 제 2앤드 게이트(427)에 입력되는 값은 모두 '1'이 된다. 왜냐하면 상기 CombCh0Gnt의 출력 값이 제 2인버터(425)를 거치기 때문이다. 상기 제 2앤드 게이트(427)의 출력 값은 항상 '1'이 되므로 노아 게이트(433)의 출력 값인 IArbPriority의 값은 항상 '1'이 되어 버스 점유 특성이 점유형으로 결정된다. 상기 조건에서 Ch0ReqM의 값이 '0'이고 Ch1ReqM 의 값이 '1'이면 CombCh1Gnt의 값은 제 1앤드 게이트(423)의 출력 신호이므로 '1'이 된다. 이에 따라 상기 제 2앤드 게이트(427)의 출력 신호는 '0'이 된다. 그러나 상기 CombCh1Gnt의 값이 '0'으로 제 3앤드 게이트의 입력 신호 둘 다 '1'이므로 출력 신호가 '1'이 된다. 따라서 상기 노아 게이트(433)의 출력 신호인 IArbPriority 값은 '1'을 출력하여서 버스 점유 특성이 점유형으로 결정된다.For example, first, if the value of HoldGrant0 is '1' and the value of Hold Grant1 is '1', if the value of Ch0ReqM is '1', the output value of the first inverter 421 will always be '0' so that Ch1ReqM Regardless of the value, the value of CombCh0Gnt is always '0'. Accordingly, the values input to the second and gate 427 are all '1'. This is because the output value of the CombCh0Gnt passes through the second inverter 425. Since the output value of the second end gate 427 is always '1', the value of IArbPriority, which is the output value of the Noah gate 433, is always '1', so that the bus occupancy characteristic is determined to be occupied. Under the above conditions, if the value of Ch0ReqM is '0' and the value of Ch1ReqM is '1', the value of CombCh1Gnt is '1' because it is an output signal of the first and gate 423. Accordingly, the output signal of the second end gate 427 becomes '0'. However, since the value of CombCh1Gnt is '0' and both input signals of the third and gate are '1', the output signal is '1'. Therefore, the IArbPriority value, which is the output signal of the NOR gate 433, outputs '1', so that the bus occupancy characteristic is determined to be the occupation type.

예컨대 두 번째로 HoldGrant0값이 '0', Hold Grant1값이 '1'인 경우, 제 2앤드 게이트(427)의 출력 값은 HoldGrant0 값이 '0'이므로 항상 '0'이 된다. 여기서 Ch0ReqM 값이 '1'이면 제 3앤드 게이트(431)의 입력 값이 제 3인버터(429)에 의해 '0'이 된다. 따라서 상기 노아 게이트(433)의 출력 값인 IArbPriority 값은 CombCh1Gnt 값과 관계없이 '0'이 되어 버스 점유 특성이 비점유형으로 결정된다. 상기 조건에서 Ch0ReqM 값이 '0'이고 Ch1ReqM 값이 '1'이면, CombCh0Gnt의 값이 '0'이 되어 제 3인버터(429)의 출력 값이 '1' 이 된다. 그러면 상기 제 3앤드 게이트(431)의 입력 값 모두 '1'이 되므로 상기 노아 게이트(433)의 출력 값인 IArbPriority 값이 1이 되어 버스 점유 특성이 점유형으로 결정된다.For example, secondly, when the HoldGrant0 value is '0' and the Hold Grant1 value is '1', the output value of the second end gate 427 is always '0' because the HoldGrant0 value is '0'. Here, if the value of Ch0ReqM is '1', the input value of the third and gate 431 is '0' by the third inverter 429. Accordingly, the IArbPriority value, which is the output value of the NOR gate 433, becomes '0' regardless of the CombCh1Gnt value, so that the bus occupancy characteristic is determined as the non-occupying type. If the Ch0ReqM value is '0' and the Ch1ReqM value is '1' under the above conditions, the value of CombCh0Gnt becomes '0' and the output value of the third inverter 429 becomes '1'. Then, since the input values of the third and gates 431 are all '1', the IArbPriority value, which is the output value of the Noah gate 433, becomes 1, so that the bus occupancy characteristic is determined as the occupation type.

예컨대 세 번째로 HoldGrant0 값이 '1'이고 HoldGrant1의 값이 '0'인 경우, Ch0ReqM의 값이 '1'이면 상기 제 1인버터(421)에 의해 상기 제 1앤드 게이트(423)의 출력 값인 CombCh1Gnt값이 '0'이 된다. 상기 CombCh1Gnt 값이 제 2인버터(425)를 거쳐 제 2앤드 게이트(427)으로 입력된다. 그리고 HoldGrant0 값이 '1'이므로 상기 제 2앤드 게이트(427)의 출력 값이 '1'이 된다. 따라서 노아 게이트(433)의 출력 값인 IArbPriority 값은 '1'이 되어 버스 점유 특성이 점유형으로 결정된다. 상기 조건에서 Ch0ReqM의 값이 '0'이고 Ch1ReqM 값이 '1'이면, 제 1앤드 게이트(423)의 입력 값이 모두 '1'이 되어 CombCh0Gnt의 값이 '1'이 된다. 상기 CombCh0Gnt 값은 제 2인버터(425)에 의해 '0'이 되어 상기 제 2앤드 게이트(427)의 출력 값은 '0'이 된다. 또한 상기 제 3앤드 게이트(431)는 HoldGrant1 값을 입력으로 하므로 항상 '0'값을 출력한다. 따라서 상기 노아 게이트(433)의 출력신호인 IArbPriority의 값이 '0'이 되어 버스 점유 특성이 비점유형으로 결정된다.For example, when HoldGrant0 is '1' and HoldGrant1 is '0', if the value of Ch0ReqM is '1', CombCh1Gnt is an output value of the first and gate 423 by the first inverter 421. The value is '0'. The CombCh1Gnt value is input to the second end gate 427 via the second inverter 425. Since the value of HoldGrant0 is '1', the output value of the second and gate 427 becomes '1'. Therefore, the IArbPriority value, which is the output value of the NOR gate 433, becomes '1', so that the bus occupancy characteristic is determined as the occupation type. If the value of Ch0ReqM is '0' and the value of Ch1ReqM is '1' under the above conditions, the input values of the first and gates 423 are all '1' and the value of CombCh0Gnt is '1'. The CombCh0Gnt value is '0' by the second inverter 425 and the output value of the second and gate 427 is '0'. In addition, since the third end gate 431 receives a HoldGrant1 value, the third end gate 431 always outputs a '0' value. Accordingly, the value of IArbPriority, which is the output signal of the NOR gate 433, becomes '0', so that the bus occupancy characteristic is determined as the non-occupied type.

예컨대 네 번째로 HoldGrant0의 값이 '0', HoldGrant1의 값이 '0'인 경우, Ch0ReqM, Ch1ReqM의 값에 상관없이 노아 게이트(433)의 출력신호인 IArbPriority의 값이 항상 '0'이 되어 버스 점유 특성은 비점유형으로 결정된다. 이것은 상기 HoldGrant0의 값이 '0', HoldGrant1의 값이 '0'이면 각각 제 2 및 제 3앤드 게이트(427, 431)의 출력신호가 항상 '0'이기 때문이다.For example, if the value of HoldGrant0 is '0' and HoldGrant1 is '0', the value of IArbPriority, which is the output signal of Noah gate 433, is always 0, regardless of the values of Ch0ReqM and Ch1ReqM. Occupancy characteristics are determined by non-occupation type. This is because when the value of HoldGrant0 is '0' and the value of HoldGrant1 is '0', output signals of the second and third end gates 427 and 431 are always '0', respectively.

상술한 바와 같이 버스의 점유 특성은 HoldGrant0, HoldGrant1의 값에 따라 채널 별로 설정할 수 있게 되어 채널0 과 채널1에 대해 각각 점유형으로도 비점유형으로도 동작시킬 수 있다.As described above, the occupancy characteristic of the bus can be set for each channel according to the values of HoldGrant0 and HoldGrant1, so that the occupancy and non-occupancy types can be operated for the channel 0 and the channel 1, respectively.

도 6은 본 발명의 DMA 제어부(400)에서 동작하는 일례를 나타낸 타이밍도로서, 비점유형으로 설정하여 동작시킨 경우이다.Fig. 6 is a timing diagram showing an example of operation in the DMA control section 400 of the present invention, which is set to non-occupied type and operated.

도 6을 참조하면, DMA가 데이터를 읽고 기록하는 동작을 할 때마다 HBUSREQ를 '0'으로 한번씩 바꾸어 줌으로서 HGRANT가 0으로 바뀌는 부분이 생긴다. 이 순간 DMA는 버스의 사용권을 반납한다. 만약 이 순간에 다른 마스터가 버스의 사용을 요청한다면, 버스의 사용권은 다른 마스터로 넘어갈 수 있다. 하지만 버스 사용권을 요청하는 다른 마스터가 없다면, 도 6에서와 같이 DMA가 다시 버스 사용권을 획득하여 남은 DMA 과정을 계속 진행하게 된다.Referring to FIG. 6, whenever the DMA reads and writes data, the HGRANT is changed to 0 by changing HBUSREQ to '0' once. At this moment DMA returns the bus's right to use. If another master requests the use of the bus at this moment, the bus can be transferred to another master. However, if there is no other master requesting the bus license, as shown in FIG. 6, the DMA acquires the bus license again and continues the remaining DMA process.

한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐 아니라 이 특허청구의 범위와 균등한 것들에 의해서 정해져야 한다.While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments, but is capable of various modifications within the scope of the invention. Therefore, the scope of the present invention should not be limited by the described embodiments, but should be determined by the scope of the appended claims and equivalents thereof.

상술한 바와 같이 본 발명은 DMA 제어부가 버스의 점유 형태를 다양하게 지원할 수 있게 됨에 따라 이 발명이 적용된 시스템의 경우 버스 자원을 더욱 효율적으로 사용할 수 있게 된다.As described above, according to the present invention, the DMA controller can support various types of bus occupancy so that the bus resource can be more efficiently used in the system to which the present invention is applied.

Claims (6)

버스에 의한 채널들을 통해 데이터 전송이 이루어지는 컴퓨터 시스템에서 상기 채널 별로의 버스 점유 특성을 결정하는 직접 메모리 액세스 제어장치에 있어서,A direct memory access control apparatus for determining bus occupancy characteristics for each channel in a computer system in which data is transmitted through channels by a bus, 상기 채널들 각각에 대응한 점유 요청 신호들 (Ch0ReqM, Ch1ReqM)을 발생하는 채널 로직부들과,Channel logic units generating occupancy request signals Ch0ReqM and Ch1ReqM corresponding to each of the channels; 상기 채널들의 수만큼의 유지 승인 신호들 (HoldGrant0, HoldGrant1)을 발생하는 제어 로직부와,A control logic section for generating hold grant signals HoldGrant0 and HoldGrant1 as many as the number of channels; 상기 채널 로직부들에 의해 발생된 점유 요청 신호들 (Ch0ReqM, Ch1ReqM)과 상기 제어 로직부에 의해 발생된 유지 승인 신호들 (HoldGrant0, HoldGrant1)을 기반으로 버스 점유 특성을 점유형과 비점유형 중 하나의 유형으로 결정하는 버스 점유 특성 결정 신호 (IArbPriority)를 발생하는 AHB (Advanced High-performance Bus) 마스터를 포함하는 직접 메모리 액세스 제어장치.Based on the occupancy request signals (Ch0ReqM, Ch1ReqM) generated by the channel logic units and the hold grant signals (HoldGrant0, HoldGrant1) generated by the control logic unit, the bus occupancy characteristic may be one of the occupation type and the non-occupancy type. A direct memory access control device that includes an Advanced High-performance Bus (AHB) master that generates a bus occupancy characteristic determination signal (IArbPriority) that is determined by type. 제 1항에 있어서, 상기 AHB 마스터는,The method of claim 1, wherein the AHB master, 상기 채널 로직부들에 의해 발생된 점유 요청 신호들 (Ch0ReqM, Ch1ReqM)과 상기 제어 로직부에 의해 발생된 유지 승인 신호들 (HoldGrant0, HoldGrant1)에 의해 논리 연산을 수행하여 상기 버스 점유 특성 결정 신호 (IArbPriority)를 발생하는 논리 게이트들의 조합에 의해 구성됨을 특징으로 하는 직접 메모리 액세스 제어장치.The bus occupancy characteristic determination signal IARrbPriority is performed by performing logic operation on the occupancy request signals Ch0ReqM and Ch1ReqM generated by the channel logic units and the hold grant signals HoldGrant0 and HoldGrant1 generated by the control logic unit. And a combination of logic gates for generating a direct memory access control device. 제 2항에 있어서,3. The method of claim 2, 상기 논리 게이트들의 조합은 하기 표 2에 의해 상기 버스 점유 특성 결정 신호 (IArbPriority)를 발생하도록 구성됨을 특징으로 하는 직접 메모리 액세스 제어장치.And the combination of logic gates is configured to generate the bus occupancy characteristic determination signal (IArbPriority) according to Table 2 below. <표 2><Table 2>
Figure 112012012896452-pat00008
Figure 112012012896452-pat00008
버스에 의한 채널들을 통해 데이터 전송이 이루어지는 컴퓨터 시스템에서 직접 메모리 액세스 제어장치가 상기 채널 별로의 버스 점유 특성을 결정하는 방법에 있어서,A method of determining a bus occupancy characteristic of each channel by a direct memory access control device in a computer system in which data is transmitted through channels by a bus, 상기 채널들 각각에 대응한 점유 요청 신호들 (Ch0ReqM, Ch1ReqM)을 발생하는 과정과,Generating occupancy request signals Ch0ReqM and Ch1ReqM corresponding to each of the channels; 상기 채널들의 수만큼의 유지 승인 신호들 (HoldGrant0, HoldGrant1)을 발생하는 과정과,Generating as many hold grant signals HoldGrant0 and HoldGrant1 as the number of channels; 상기 발생된 점유 요청 신호들 (Ch0ReqM, Ch1ReqM)과 상기 발생된 유지 승인 신호들 (HoldGrant0, HoldGrant1)을 기반으로 버스 점유 특성을 점유형과 비점유형 중 하나의 유형으로 결정하는 버스 점유 특성 결정 신호 (IArbPriority)를 발생하는 과정을 포함하는 버스 점유 특성 결정방법.A bus occupancy characteristic determination signal for determining a bus occupancy characteristic as one of an occupied type and an unoccupied type based on the occupied request signals Ch0ReqM and Ch1ReqM and the generated hold grant signals HoldGrant0 and HoldGrant1. A method of determining bus occupancy characteristics including generating IArbPriority. 제 4항에 있어서,5. The method of claim 4, 상기 버스 점유 특성 결정 신호 (IArbPriority)는 상기 발생된 점유 요청 신호들 (Ch0ReqM, Ch1ReqM)과 상기 제어 로직부에 의해 발생된 유지 승인 신호들 (HoldGrant0, HoldGrant1)을 입력으로 하는 논리 연산에 의해 발생함을 특징으로 하는 버스 점유 특성 결정방법.The bus occupancy characteristic determination signal IArbPriority is generated by a logic operation inputting the occupancy request signals Ch0ReqM and Ch1ReqM generated and the hold grant signals HoldGrant0 and HoldGrant1 generated by the control logic unit. Bus occupancy characteristics determination method characterized in that. 제 5항에 있어서,6. The method of claim 5, 상기 상기 버스 점유 특성 결정 신호 (IArbPriority)를 발생하기 위한 논리 연산은 하기 표 3에 의해 수행됨을 특징으로 하는 버스 점유 특성 결정방법.And a logical operation for generating the bus occupancy characteristic determination signal (IArbPriority) is performed by Table 3 below. <표 3><Table 3>
Figure 112012012896452-pat00009
Figure 112012012896452-pat00009
KR1020060010574A 2006-02-03 2006-02-03 Method and apparatus for controlling a bus in direct memory access controller KR101214068B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060010574A KR101214068B1 (en) 2006-02-03 2006-02-03 Method and apparatus for controlling a bus in direct memory access controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060010574A KR101214068B1 (en) 2006-02-03 2006-02-03 Method and apparatus for controlling a bus in direct memory access controller

Publications (2)

Publication Number Publication Date
KR20070079718A KR20070079718A (en) 2007-08-08
KR101214068B1 true KR101214068B1 (en) 2012-12-20

Family

ID=38600272

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060010574A KR101214068B1 (en) 2006-02-03 2006-02-03 Method and apparatus for controlling a bus in direct memory access controller

Country Status (1)

Country Link
KR (1) KR101214068B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000298638A (en) 1999-04-14 2000-10-24 Oki Data Corp Dma transfer device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000298638A (en) 1999-04-14 2000-10-24 Oki Data Corp Dma transfer device

Also Published As

Publication number Publication date
KR20070079718A (en) 2007-08-08

Similar Documents

Publication Publication Date Title
JP5237351B2 (en) Switch matrix system with multiple bus arbitrations per cycle via higher frequency arbiters
JP3231596B2 (en) Bus system with latency and shadow timer
US6151651A (en) Communication link with isochronous and asynchronous priority modes coupling bridge circuits in a computer system
US6016528A (en) Priority arbitration system providing low latency and guaranteed access for devices
US20060282588A1 (en) Processor system that allows for simultaneous access by multiple requestors to a target with multiple ports
US6272580B1 (en) Apparatus and method for dynamically elevating a lower level bus master to an upper level bus master within a multi-level arbitration system
US20070067527A1 (en) Data transfer bus system connecting a plurality of bus masters
JP4198376B2 (en) Bus system and information processing system including bus system
US8356128B2 (en) Method and system of reducing latencies associated with resource allocation by using multiple arbiters
KR20050001799A (en) Dynamic bus arbitration method and bus aribotor
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
JP2004133942A (en) Data bus system and inter-bus crossing accessing method
KR101214068B1 (en) Method and apparatus for controlling a bus in direct memory access controller
KR20040100631A (en) Bus system and method for arbitrating high-performance bandwidth system bus with multi-master
Aljumah et al. Amba based advanced dma controller for soc
US6370593B1 (en) Apparatus for multiplexing bus interfaces on a computer expansion
US5933648A (en) Configurable arbitration device for controlling the access of components to an arbiter or the like based on a control input
KR100475438B1 (en) Data bus system and method for performing cross-access between buses
JPH09153009A (en) Arbitration method for hierarchical constitution bus
KR100441996B1 (en) Direct Memory Access(DMA) Controller and control method
US20100153610A1 (en) Bus arbiter and bus system
KR100605867B1 (en) Bus arbitration method and bus arbitration having a dynamic priority order arbitration function
JP4249741B2 (en) Bus system and information processing system including bus system
JP2007108858A (en) Pin sharing device and pin sharing method
KR20060118875A (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
LAPS Lapse due to unpaid annual fee