KR100451722B1 - 직접 메모리 액세스 제어 장치 - Google Patents
직접 메모리 액세스 제어 장치 Download PDFInfo
- Publication number
- KR100451722B1 KR100451722B1 KR10-2000-0009406A KR20000009406A KR100451722B1 KR 100451722 B1 KR100451722 B1 KR 100451722B1 KR 20000009406 A KR20000009406 A KR 20000009406A KR 100451722 B1 KR100451722 B1 KR 100451722B1
- Authority
- KR
- South Korea
- Prior art keywords
- dma
- priority
- memory
- request
- signal
- Prior art date
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B31—MAKING ARTICLES OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER; WORKING PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
- B31F—MECHANICAL WORKING OR DEFORMATION OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
- B31F1/00—Mechanical deformation without removing material, e.g. in combination with laminating
- B31F1/08—Creasing
-
- A—HUMAN NECESSITIES
- A47—FURNITURE; DOMESTIC ARTICLES OR APPLIANCES; COFFEE MILLS; SPICE MILLS; SUCTION CLEANERS IN GENERAL
- A47G—HOUSEHOLD OR TABLE EQUIPMENT
- A47G19/00—Table service
- A47G19/02—Plates, dishes or the like
- A47G19/03—Plates, dishes or the like for using only once, e.g. made of paper
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B31—MAKING ARTICLES OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER; WORKING PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
- B31B—MAKING CONTAINERS OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
- B31B50/00—Making rigid or semi-rigid containers, e.g. boxes or cartons
- B31B50/14—Cutting, e.g. perforating, punching, slitting or trimming
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B31—MAKING ARTICLES OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER; WORKING PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
- B31B—MAKING CONTAINERS OF PAPER, CARDBOARD OR MATERIAL WORKED IN A MANNER ANALOGOUS TO PAPER
- B31B50/00—Making rigid or semi-rigid containers, e.g. boxes or cartons
- B31B50/60—Uniting opposed surfaces or edges; Taping
- B31B50/64—Uniting opposed surfaces or edges; Taping by applying heat or pressure, e.g. by welding
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Food Science & Technology (AREA)
- Bus Control (AREA)
Abstract
본 발명은 컴퓨터 시스템에 있어서, 특히 메모리를 포함하는 컴퓨터 시스템에서 전송속도 개선을 위해 사용되는 직접 메모리 액세스(Direct Memory Access ; 이하, DMA 라 약칭함) 제어 장치에 관한 것으로, 메모리와 상기 메모리로의 액세스를 요청하는 CPU 및 다수의 DMA 요청 블록을 포함하는 컴퓨터 시스템에서, 상기 DMA 요청 블록들로부터 각각 전달받은 상기 메모리 사용에 대한 긴급 정도와 상기 메모리 사용 요청을 참조하여, 상기 DMA 요청 블록들에 대한 상기 메모리 사용의 우선순위를 결정하는 우선순위 전처리부와, 상기 CPU로부터 전달받은 상기 메모리 사용 요청의 긴급도를 결정하여, 그에 해당되는 긴급 정도 신호와 상기 메모리 사용 요청 신호를 생성하는 호스트 버스 처리부와, 상기 우선순위 전처리부의 우선순위 결정에 따른 긴급 정도 신호 및 메모리 사용 요청 신호와, 상기 호스트 버스 처리부에서 생성된 긴급 정도 신호 및 메모리 사용 요청 신호를 전달받은 후 이 전달된 신호들을 참조하여 상기 메모리 사용의 우선순위를 결정해 주는 우선순위 처리부와, 상기 우선순위 처리부에 의해 결정된 우선순위에 따라 상기 메모리와의 데이터 전송을 처리하는 DMA 주 처리부로 구성되는 DMA 제어 장치에 관한 것이다.
Description
본 발명은 컴퓨터 시스템에 관한 것으로, 특히 메모리를 포함하는 컴퓨터 시스템에서 전송속도 개선을 위해 사용되는 DMA 제어 장치에 관한 것이다.
일반적으로 DMA는 컴퓨터 시스템에서 데이터를 직접 메모리로 전송하는 기법으로, 중앙처리장치(Central Process Unit ; 이하, CPU 라 약칭함)는 DMA 전송을시작시킬 뿐 DMA 전송 동안 메모리 버스(memory bus)를 제어하지 못하고 다른 일을 수행하거나 휴지상태(Idle)에 있게 된다.
특히 DMA 전송동안에는 데이터 경로에서 CPU가 제거되고, DMA 제어기(DMA controller)라는 주변장치가 직접 메모리 버스를 관리한다.
이하 DMA 제어를 위한 장치에 대해 설명한다.
도 1 은 종래 기술에 따른 DMA 제어를 위한 시스템의 일부 구성을 나타낸 블록도이다.
도 1을 참조하면, DMA 제어를 위한 시스템은 CPU(10)와 시스템 버스(system bus)를 통해 인터페이스되는 DMA 처리부(20), 메모리 버스를 통해 DMA 처리부(20)와 인터페이스되는 메모리(30), 그리고 DMA 버스를 통해 DMA 처리부(20)와 인터페이스되는 여러 DMA 요청 블록들(40∼42)로 구성된다.
특히 DMA 처리부(20)는 CPU(10) 및 여러 DMA 요청 블록들(40∼42)에 대해 메모리(30) 사용의 우선순위를 정해주는 우선순위 처리부(21)와, 우선순위 처리부(21)에 의해 우선순위가 정해진 DMA 요청 블록들(40∼42)과 메모리(30)간의 데이터 전송을 처리하는 DMA 주 처리부(22)를 포함한다. 또한 DMA 주 처리부(22)는 여러 레지스터(register)를 내부에 포함한다.
상기한 구성에 따른 동작을 이하 설명한다.
일단 우선순위 처리부(21)는 여러 DMA 요청 블록들(40∼42)들로부터 DMA 요청 신호(DMA_Request_x, x는 1∼n)를 전달받는다. 이 때 우선순위 처리부(21)는 이 신호들을 취합하여 우선순위가 가장 높은 DMA 요청 블록(40 또는 41 또는 42)에게메모리(30) 사용권을 부여한다. 그런데 이 때 시스템 버스를 통해 CPU(10)가 메모리(30) 사용을 요청할 경우에는, 이 CPU(10)의 사용 요청에 더 높은 우선순위를 부여하여 CPU(10)가 더 우선적으로 메모리(30)를 사용할 수 있도록 한다.
상기와 같이 우선순위 처리부(21)에 의해 메모리(30) 사용의 우선순위가 확정되면, 우선순위 처리부(21)는 이 확정된 정보를 DMA 주 처리부(22)에 전달한다. 이 때 DMA 주 처리부(22)로 전달되는 확정 정보는, 현재 확정된 우선순위에 따른 메모리(30) 사용 권한이 하나의 DMA 요청 블록(40 또는 41 또는 42)에 부여됐는지 아니면 CPU(10)에 부여됐는지를 지정해 주는 정보이다. 우선순위 처리부(21)는 이 확정 정보에 따른 메모리(30) 사용 권한을 지정해 주기 위한 관련 신호들(CPU_s, DMA_Request)을 DMA 주 처리부(22)에 전달한다.
여기서, 만약 "CPU_s" 신호에 의해 현재 확정된 메모리(30) 사용 권한의 우선순위가 CPU(10)에 부여된 경우라면, CPU(10)는 메모리(30)의 해당 주소(address)와 데이터 값을 시스템 버스를 통해 얻게 된다.
반면에, "DMA_Request" 신호에 의해 현재 확정된 메모리(30) 사용 권한의 우선순위가 특정 DMA 요청 블록(40 또는 41 또는 42)에 부여된 경우라면, 메모리(30)의 해당 주소는 DMA 주 처리부(22) 내부의 여러 레지스터 중 DMA 시작주소 레지스터(DMA_start_address register)와 DMA 데이터 전송카운트 레지스터(DMA_sent_data_count register)의 값으로부터 만들어진 주소가 사용된다. 이후 데이터는 DMA 버스를 통해 그 특정 DMA 요청 블록(40 또는 41 또는 42)과 메모리(30) 사이에 전송된다.
이 때 메모리(30)와 데이터를 전송하는 DMA 요청 블록(40 또는 41 또는 42)은 DMA 승인 신호(DMA_ack_x, x는 1∼n)에 의해 선택된다.
이와 같은 종래 기술에서는 여러 DMA 요청 블록들에게 메모리 사용에 대한 우선순위를 미리 정해 놓으므로, 급히 DMA를 사용하려는 특정 DMA 요청 블록의 메모리 사용이 제한된다. 다시 말자하면 특정 DMA 요청 블록이 급히 DMA를 사용하고자 할 경우에, 자신보다 우선순위가 높은 DMA 요청 블록들의 메모리 사용이 끝날 때까지 기다려야 한다는 것이다.
이에 따라 DMA 요청 블록들의 메모리 사용을 위한 대기시간이 길어지므로, 시스템은 충분한 버퍼 용량을 가져야 한다.
본 발명의 목적은 상기한 점들을 감안하여 안출한 것으로, DMA 요청에 대해 메모리 사용 권한의 우선순위를 능동적으로 부여하여 메모리의 사용을 보다 효율적으로 제어해 주는 DMA 제어 장치를 제공하는데 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 DMA 제어 장치의 특징은, 메모리와, 상기 메모리로의 액세스를 요청하는 CPU 및 다수의 DMA 요청 블록을 포함하는 컴퓨터 시스템에서, 상기 DMA 요청 블록들로부터 각각 전달받은 상기 메모리 사용에 대한 긴급 정도와 상기 메모리 사용 요청을 참조하여, 상기 DMA 요청 블록들에 대한 상기 메모리 사용의 우선순위를 결정하는 우선순위 전처리부와, 상기 CPU로부터 전달받은 상기 메모리 사용 요청의 긴급도를 결정하여, 그에 해당되는 긴급 정도 신호와 상기 메모리 사용 요청 신호를 생성하는 호스트 버스 처리부와, 상기우선순위 전처리부의 우선순위 결정에 따른 긴급 정도 신호 및 메모리 사용 요청 신호와, 상기 호스트 버스 처리부에서 생성된 긴급 정도 신호 및 메모리 사용 요청 신호를 전달받은 후 이 전달된 신호들을 참조하여 상기 메모리 사용의 우선순위를 결정해 주는 우선순위 처리부와, 상기 우선순위 처리부에 의해 결정된 우선순위에 따라 상기 메모리와의 데이터 전송을 처리하는 DMA 주 처리부로 구성된다.
바람직하게는 상기 우선순위 전처리부가 상기 DMA 요청 블록들로부터 각각 전달받은 긴급 정도 신호들 중에서 그 신호값이 보다 작은 요청 블록에게 최고 우선순위를 부여한다. 여기서 상기 DMA 요청 블록들로부터 상기 우선순위 전처리부에 전달되는 긴급 정도 신호들의 신호값은 상기 각 DMA 요청 블록들이 사용 가능한 버퍼(FIFO)의 데이터 크기를 정규화 한 값이고, 상기 DMA 요청 블록들의 상기 메모리 사용에 대한 우선순위는 상기 버퍼의 상태에 따라 능동적으로 변한다.
또한 상기 호스트 버스 처리부는 상기 메모리 사용 요청에 대한 긴급도를 결정하기 위한 함수로써 상기 메모리의 주소 영역을 이용한다.
도 1 은 종래 기술에 따른 DMA 제어를 위한 시스템의 일부 구성을 나타낸 블록도.
도 2 는 본 발명에 따른 DMA 제어를 위한 장치 구성을 나타낸 블록도.
*도면의 주요부분에 대한 부호의 설명*
100 : CPU 200 : DMA 처리부
210 : 우선순위 처리부 220 : DMA 주 처리부
230 : 호스트 버스 처리부 240 : 우선순위 전처리부
300 : 메모리 400∼420 : DMA 요청 블록
이하, 본 발명에 따른 DMA 제어 장치에 대한 바람직한 일 실시 예를 첨부된 도면을 참조하여 설명한다.
도 2 는 본 발명에 따른 DMA 제어를 위한 장치 구성을 나타낸 블록도이다.
도 2를 참조하면, 본 발명에 따른 DMA 제어를 위한 전체 장치 구성은 크게 CPU(100)와 시스템 버스(system bus)를 통해 인터페이스되는 DMA 처리부(200), 메모리 버스를 통해 DMA 처리부(200)와 인터페이스되는 메모리(300), 그리고 DMA 버스를 통해 DMA 처리부(200)와 인터페이스되는 여러 DMA 요청 블록들(400∼420)로 이루어진다.
특히 본 발명에 따른 DMA 처리부(200)는 기존과 동일하게 여러 DMA 요청 블록들(400∼420)에 대해 메모리(300) 사용의 우선순위를 정해주는 우선순위 처리부(210)와, 우선순위 처리부(210)에 의해 우선순위가 정해진 DMA 요청 블록들(400∼420)과 메모리(300)간의 데이터 전송을 처리하는 DMA 주 처리부(220)를 포함하며, 추가로 DMA 요청 블록들(400∼420)에 대해 능동적 우선순위를 결정하기 위한 우선순위 전처리부(240)와, CPU(100)의 메모리(300) 사용 요청을 우선순위 처리부(210)에 전달하기 위한 호스트 버스 처리부(230)를 더 포함한다. 또한 DMA 주 처리부(220)는 여러 레지스터(register)를 내부에 포함한다.
상기 본 발명의 구성에 따른 동작을 이하 설명한다.
본 발명의 DMA 처리부(200)는 메모리(300) 사용 요청에 대해 능동적인 우선순위를 부여하기 위하여 여러 DMA 요청 블록들(400∼420)로부터 새로운 정보를 받는다. 그 새로운 정보는 DMA 요청 블록들(400∼420)의 데이터 전송에 대한 긴급 정도를 지정된 수로 표현한 것으로, 우선순위 전처리부(240)는 각 DMA 요청 블록들(400∼420)로부터 이 새로운 정보를 전달받아 가장 급하게 데이터 전송을 필요로 하는 하나의 DMA 요청 블록(400 또는 410 또는 420)을 선택한다. 이러한 우선순위 전처리부(240)의 동작은 여러 DMA 요청 블록들(400∼420)들로부터 DMA 요청 신호(DMA_Request_x, x는 1∼n)와 긴급 정도 신호(Urgency_level_x, x는 1∼n)를 전달받음으로써 수행된다.
이 후 우선순위 전처리부(240)에 의해 p(1 ≤p ≤n)번째 DMA 요청 블록이 선택되었다면, 우선순위 전처리부(240)는 p번째 DMA 요청 블록으로부터 전달받은 DMA 요청 신호(DMA_Request_p)와 긴급 정도 신호(Urgency_level_p)를 우선순위 처리부(210)에 전달한다. 그런데 이와 동시에 CPU(100)로부터 메모리(300) 사용을 요청하는 요청 신호(Memory_Request)가 시스템 버스를 통해 전달될 경우에는, 호스트 버스 처리부(230)가 이 전달된 요청 신호(Memory_Request)를 DMA 요청 신호(DMA_Request_c)와 긴급 정도 신호(Urgency_level_c)로 변환하여 우선순위 처리부(210)에 전달한다.
이후 우선순위 처리부(210)는 우선순위 전처리부(240)와 호스트 버스 처리부(230)로부터 전달받은 각각의 DMA 요청 신호들(DMA_Request_p, DMA_Request_c)과 긴급 정도 신호들(Urgency_level_p, Urgency_level_c)을 참조하여 메모리(300) 사용의 우선순위를 결정한다. 그 다음 우선순위 처리부(210)는 결정된 우선순위에 대한 관련 신호들(DMA_Request 또는 CPU_s)을 DMA 주 처리부(220)에 전달한다.
다음 DMA 주 처리부(220)는 전달받은 신호를 참조하여, p번째 DMA 요청 블록과 메모리(300)가 DMA 버스를 통해 데이터를 전송하도록 처리하거나, CPU(100)와 메모리(300)가 시스템 버스를 통해 데이터를 전송하도록 처리한다. 이 때 메모리(300)와 데이터를 전송하는 p번째 DMA 요청 블록은 DMA 승인 신호(DMA_ack_p)에 의해 선택된다.
다음은 상기 본 발명의 구성에 따른 동작을 보다 상세히 설명한다.
이를 위해 먼저 사용되는 신호들에 대해 먼저 간단히 설명하면, "Urgency_level_x" 신호는 여러 DMA 요청 블록(400∼420)에서 생성하는 신호로써, 메모리(300)의 사용을 요청하는 여러 블록들(400∼420)의 데이터 전송에 대한 긴급 정도를 지정된 수로 표시한 신호이다. 이 긴급 정도 신호(Urgency_level_x)의 그 신호 값이 '0'일 때가 가장 긴급한 경우이다.
다음 "DMA_Request_x" 신호는 DMA 요청 블록들(400∼420)이 메모리(300)와의 데이터 전송을 요청할 때 사용하는 요청 신호이고, "DMA_ack_x" 신호는 DMA 주 처리부(220)에서 현재 메모리(300)의 사용 권한을 갖는 블록(400 또는 410 또는 420)을 지정하기 위한 승인 신호이고, "Select_Block" 신호는 우선순위 전처리부(240)에서 생성하는 선택 신호로써 가장 긴급한 DMA 요청 블록(400 또는 410 또는 420)을 지정된 값으로 나타내는 신호이다.
우선 본 발명에서는 DMA 요청 블록들(400∼420)이 새로운 정보를 DMA 처리부(200)에 알려준다. 이 새로운 정보는 긴급 정도 신호(Urgency_level_x)로 변환되어 DMA 처리부(200)에 전달된다.
이 긴급 정도 신호(Urgency_level_x)는 보통 DMA 요청 블록들(400∼420)이 사용 가능한 피포(First-in First-out ; 이하, FIFO 라 약칭함)(미도시)의 데이터 크기를 정규화 한 값을 그 신호값으로 한다. 예로써 메모리(300)에서 특정 DMA 요청 블록(400 또는 410 또는 420)으로 데이터를 전송하기 위한 FIFO인 쓰기 FIFO의 상태(status)가 풀(full)이면, 그 DMA 요청 블록(400 또는 410 또는 420)에서 사용 가능한 데이터 크기가 해당 쓰기 FIFO의 데이터 크기와 같다. 이를 비율로 계산하면 100%가 되며, 이를 4비트 정보로 정규화하여 나타내면 가장 큰 값인 '1111(2)'의 값이 된다.
반면에 쓰기 FIFO의 상태가 엠프티(empty)이면, 그 DMA 요청 블록(400 또는 410 또는 420)에서 사용 가능한 데이터가 없음을 나타낸다. 이를 정규화하여 나타내면 '0000(2)'의 값이 된다. 이 때가 가장 높은 DMA 우선순위를 나타내는 값이 된다.
이와 같은 본 발명의 동작에 따르면, DMA 요청 블록들(400∼420)이 동작하는 동안에 그들의 동작 우선순위는 사용 가능한 FIFO의 상태에 따라 계속 변하게 된다. 이러한 기법은 DMA에서 고정된 우선순위를 사용하는 기존과 다르며, DMA 처리부(200)는 메모리(300) 사용 요청에 대해 능동적인 우선순위를 부여한다.
이에 대해 우선순위 전처리부(240)는 DMA 요청 블록들(400∼420)에서 전달된 DMA 요청 신호(DMA_Request_x)와 긴급 정도 신호(Urgency_level_x)를 참조하여 가장 긴급하게 데이터 전송을 필요로 하는 블록(400 또는 410 또는 420)에게 메모리(300) 사용 권한을 부여한다. 이 때는 전달된 긴급 정도 신호(Urgency_level_x)의 신호값 중 가장 작은 값을 갖는 신호가 선택되어, 이 선택된 신호에 해당되는 블록(400 또는 410 또는 420)에게 메모리(300) 사용 권한을 부여한다.
그런데 만약 가장 작은 신호값을 전달한 블록(400 또는 410 또는 420)이 여러 개일 경우에는, 그 블록들(400∼420) 중 가장 작은 순차 번호(블록 번호로써, 1∼n)의 DMA 요청 블록에게 메모리(300) 사용 권한을 부여한다. 예로써, 제1 DMA 요청 블록(400)과 제n DMA 요청 블록(420)이 가장 작으면서 동일한 신호값의 긴급 정도 신호(Urgency_level_x)를 DMA 처리부(200)에 전달했다면, 이 경우에는 제1 DMA 요청 블록(400)에게 메모리(300) 사용 권한을 부여한다.
다음 시스템 버스를 통한 메모리(300) 사용 요청은 DMA 버스를 통한 메모리(300) 사용 요청과 동일한 방법으로 사용 권한을 부여한다.
이에 대해, 우선 CPU(100)로부터 전달된 메모리(300) 사용 요청 신호(Memory_Request)는 호스트 버스 처리부(230)에 입력된다.
호스트 버스 처리부(230)는 CPU(100)의 메모리(300) 사용 요청의 긴급도를 결정하여, 그에 해당되는 긴급 정도 신호(Urgency_level_c)를 생성한다.
만약 메모리(300)를 시스템 메모리 즉 인터럽트 서비스 실행 영역으로써 사용하고자 하는 요청이라면, 호스트 버스 처리부(230)가 '0000(2)' 신호값을 갖는 긴급 정도 신호(Urgency_level_c)를 생성한다. 또한 메모리(300)를 보통 프로그램 실행 영역으로써 사용하고자 하는 요청이라면, 호스트 버스 처리부(230)가 '0001(2)' 신호값을 갖는 긴급 정도 신호(Urgency_level_c)를 생성한다.
일반적으로 CPU(100)의 인터럽트 서비스 라우팅(Interrupt Service Routing)은 메모리(300)의 최상위 주소나 최하위 주소에 위치하고 있으므로, 이 경우에 본 발명에서는 긴급 정도를 결정하는 함수로써 주소 영역을 이용한다.
상기에서 우선순위 전처리부(240)와 호스트 버스 처리부(230)로부터메모리(300) 사용에 대한 요청 신호와 긴급 정도 신호를 전달받은 우선순위 처리부(210)는 두 개의 요청 신호를 취합하여 우선순위가 가장 높은 요청에게 메모리(300) 사용의 우선권을 부여한다. 그런데 시스템 버스를 통한 요청과 DMA 버스를 통한 요청의 긴급 정도가 동일한 경우에는 시스템 버스를 통한 요청에 더 높은 우선순위를 부여한다.
우선순위 처리부(210)에 의해 메모리(300) 사용의 우선순위가 확정되면, 우선순위 처리부(210)는 이 확정된 정보를 DMA 주 처리부(220)에 전달한다. 이 때 DMA 주 처리부(220)로 전달되는 확정 정보는, 현재 확정된 우선순위에 따른 메모리(300) 사용 권한이 하나의 DMA 요청 블록(400 또는 410 또는 420)에 부여됐는지 아니면 CPU(100)에 부여됐는지를 지정해 주는 정보이다. 우선순위 처리부(210)는 이 확정 정보에 따른 메모리(300) 사용 권한을 지정해 주기 위한 관련 신호들(CPU_s, DMA_Request)을 DMA 주 처리부(220)에 전달한다.
여기서, 만약 "CPU_s" 신호에 의해 현재 확정된 메모리(300) 사용 권한의 우선순위가 CPU(100)에 부여된 경우라면, CPU(100)는 메모리(300)의 해당 주소(address)와 데이터 값을 시스템 버스를 통해 얻게 된다.
반면에, "DMA_Request" 신호에 의해 현재 확정된 메모리(300) 사용 권한의 우선순위가 특정 DMA 요청 블록(400 또는 410 또는 420)에 부여된 경우라면, 메모리(300)의 해당 주소는 DMA 주 처리부(220) 내부의 여러 레지스터 중 DMA 시작주소 레지스터(DMA_start_address register)와 DMA 데이터 전송카운트 레지스터(DMA_sent_data_count register)의 값으로부터 만들어진 주소가 사용된다.이후 데이터는 DMA 버스를 통해 그 특정 DMA 요청 블록(400 또는 410 또는 420)과 메모리(300) 사이에 전송된다.
이 때 메모리(300)와 데이터를 전송하는 DMA 요청 블록(400 또는 410 또는 420)은 DMA 승인 신호(DMA_ack_x, x는 1∼n)에 의해 선택된다.
이상에서 설명한 바와 같이 본 발명의 DMA 제어 장치에 따르면, 여러 DMA 요청 블록들에게 메모리 사용에 대한 우선순위를 능동적으로 부여하기 때문에, 급히 DMA를 사용하려는 특정 DMA 요청 블록의 메모리 사용이 보다 효율적이다.
또한 시스템 버스를 통한 메모리 사용 요청 시에는, 긴급 정도를 결정하는 함수로써 주소 영역을 이용하기 때문에 CPU의 인터럽트 서비스 루틴(Interrupt Service Routine)과 같은 시스템 프로그램을 실행시킴에 있어 가장 높은 우선순위로 메모리를 사용할 수 있다.
마지막으로, 긴급 정도 신호를 더 이용하기 때문에 여러 DMA 요청 블록에서 필요로 하는 FIFO의 크기를 줄일 수 있다. 따라서 시스템이 충분한 버퍼 용량을 가져야 한다는 부담을 줄일 수 있다.
Claims (5)
- 메모리와, 상기 메모리로의 액세스를 요청하는 CPU 및 다수의 DMA 요청 블록을 포함하는 컴퓨터 시스템에서,상기 DMA 요청 블록들로부터 각각 전달받은 상기 메모리 사용에 대한 긴급 정도와 상기 메모리 사용 요청을 참조하여, 상기 DMA 요청 블록들에 대한 상기 메모리 사용의 우선순위를 결정하는 우선순위 전처리부와;상기 CPU로부터 전달받은 상기 메모리 사용 요청의 긴급도를 결정하여, 그에 해당되는 긴급 정도 신호와 상기 메모리 사용 요청 신호를 생성하는 호스트 버스 처리부와;상기 우선순위 전처리부의 우선순위 결정에 따른 긴급 정도 신호 및 메모리 사용 요청 신호와, 상기 호스트 버스 처리부에서 생성된 긴급 정도 신호 및 메모리 사용 요청 신호를 전달받은 후 이 전달된 신호들을 참조하여 상기 메모리 사용의 우선순위를 결정해 주는 우선순위 처리부와;상기 우선순위 처리부에 의해 결정된 우선순위에 따라 상기 메모리와의 데이터 전송을 처리하는 DMA 주 처리부로 구성되는 것을 특징으로 하는 직접 메모리 액세스 제어 장치.
- 제 1 항에 있어서, 상기 우선순위 전처리부는, 상기 DMA 요청 블록들로부터 각각 전달받은 긴급 정도 신호들 중에서 그 신호값이 보다 작은 요청 블록에게 최고 우선순위를 부여하는 것을 특징으로 하는 직접 메모리 액세스 제어 장치.
- 제 2 항에 있어서, 상기 DMA 요청 블록들로부터 상기 우선순위 전처리부에 전달되는 긴급 정도 신호들의 신호값은 상기 각 DMA 요청 블록들이 사용 가능한 버퍼(FIFO)의 데이터 크기를 정규화 한 값임을 특징으로 하는 직접 메모리 액세스 제어 장치.
- 제 3 항에 있어서, 상기 DMA 요청 블록들의 상기 메모리 사용에 대한 우선순위는 상기 버퍼의 상태에 따라 능동적으로 변하는 것을 특징으로 하는 직접 메모리 액세스 제어 장치.
- 제 1 항에 있어서, 상기 호스트 버스 처리부는 상기 메모리 사용 요청에 대한 긴급도를 결정하기 위한 함수로써 상기 메모리의 주소 영역을 이용하는 것을 특징으로 하는 직접 메모리 액세스 제어 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2000-0009406A KR100451722B1 (ko) | 2000-02-25 | 2000-02-25 | 직접 메모리 액세스 제어 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2000-0009406A KR100451722B1 (ko) | 2000-02-25 | 2000-02-25 | 직접 메모리 액세스 제어 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010084392A KR20010084392A (ko) | 2001-09-06 |
KR100451722B1 true KR100451722B1 (ko) | 2004-10-08 |
Family
ID=19650065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2000-0009406A KR100451722B1 (ko) | 2000-02-25 | 2000-02-25 | 직접 메모리 액세스 제어 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100451722B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100843136B1 (ko) * | 2006-11-14 | 2008-07-02 | 삼성전자주식회사 | 비휘발성 메모리에서 연산 처리를 제어하는 장치 및 그방법 |
KR100868766B1 (ko) | 2007-01-31 | 2008-11-17 | 삼성전자주식회사 | 복수의 dma 요청 블록들을 가지는 직접 메모리 액세스장치의 우선 순위를 결정하는 방법 및 장치 |
KR100951126B1 (ko) * | 2008-02-18 | 2010-04-07 | 인하대학교 산학협력단 | 버스 중재 방법 및 장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04276845A (ja) * | 1991-03-04 | 1992-10-01 | Nec Corp | バス調停回路 |
JPH05197566A (ja) * | 1991-08-12 | 1993-08-06 | Stratus Computer Inc | プログラム可能な割込み優先度コード化方法及び装置 |
KR970049652A (ko) * | 1995-12-26 | 1997-07-29 | 정장호 | 직접 메모리 억세스에서의 버스사용 중재회로 |
KR19980016507A (ko) * | 1996-08-28 | 1998-06-05 | 구자홍 | 입출력프로세서의 고성능 디엠에이(dma) 구동 방법 |
KR19980050667A (ko) * | 1996-12-21 | 1998-09-15 | 구자홍 | 간이 교환기의 방송 서비스 장치 및 방법 |
KR20000008112A (ko) * | 1998-07-10 | 2000-02-07 | 윤종용 | 메모리 액세스 중재를 위한 로직회로 |
-
2000
- 2000-02-25 KR KR10-2000-0009406A patent/KR100451722B1/ko not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04276845A (ja) * | 1991-03-04 | 1992-10-01 | Nec Corp | バス調停回路 |
JPH05197566A (ja) * | 1991-08-12 | 1993-08-06 | Stratus Computer Inc | プログラム可能な割込み優先度コード化方法及び装置 |
KR970049652A (ko) * | 1995-12-26 | 1997-07-29 | 정장호 | 직접 메모리 억세스에서의 버스사용 중재회로 |
KR19980016507A (ko) * | 1996-08-28 | 1998-06-05 | 구자홍 | 입출력프로세서의 고성능 디엠에이(dma) 구동 방법 |
KR19980050667A (ko) * | 1996-12-21 | 1998-09-15 | 구자홍 | 간이 교환기의 방송 서비스 장치 및 방법 |
KR20000008112A (ko) * | 1998-07-10 | 2000-02-07 | 윤종용 | 메모리 액세스 중재를 위한 로직회로 |
Also Published As
Publication number | Publication date |
---|---|
KR20010084392A (ko) | 2001-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7689732B2 (en) | Method for improving flexibility of arbitration of direct memory access (DMA) engines requesting access to shared DMA channels | |
US7350004B2 (en) | Resource management device | |
EP0644487B1 (en) | Scalable system interrupt structure for a multiprocessing system | |
JP4034969B2 (ja) | 共通メモリのメモリ管理システム | |
US6006303A (en) | Priority encoding and decoding for memory architecture | |
US6775727B2 (en) | System and method for controlling bus arbitration during cache memory burst cycles | |
US5903283A (en) | Video memory controller with dynamic bus arbitration | |
EP0435092B1 (en) | Data processing system with direct memory access controller and method for varying communication bus masterchip in response to prioritized interrupt requests | |
EP0644489A2 (en) | Method and apparatus for signalling interrupt information in a data processing system | |
KR100708096B1 (ko) | 버스 시스템 및 그 실행 순서 조정방법 | |
KR100480605B1 (ko) | 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기 | |
JP2004199698A (ja) | 複数の割込発生源から生じる割込要求の優先順位決定用割込制御装置ならびに割込制御方法 | |
JP2002366507A (ja) | 複数チャネルdmaコントローラおよびプロセッサシステム | |
KR100451722B1 (ko) | 직접 메모리 액세스 제어 장치 | |
US6889283B2 (en) | Method and system to promote arbitration priority in a buffer queue | |
US20060155893A1 (en) | Methods and apparatus for sharing memory bandwidth | |
KR100973419B1 (ko) | 버스 중재 방법 및 장치 | |
US8135878B1 (en) | Method and apparatus for improving throughput on a common bus | |
JP3261715B2 (ja) | 入出力データ転送処理装置 | |
JP3082297B2 (ja) | タスク制御方式 | |
JPH01305461A (ja) | バス使用権制御方式 | |
JPH0844662A (ja) | 情報処理装置 | |
KR20070061240A (ko) | 절대 우위의 dma 요청을 처리하는 dma 장치 및 그처리 방법 | |
JP3206656B2 (ja) | バス上でのプリフェッチ装置およびプリフェッチ方法 | |
JP2821939B2 (ja) | パケット送受信制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20080618 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |