KR100231707B1 - 통신 장비의 디엠에이 처리 방법 및 그 장치 - Google Patents
통신 장비의 디엠에이 처리 방법 및 그 장치 Download PDFInfo
- Publication number
- KR100231707B1 KR100231707B1 KR1019970037246A KR19970037246A KR100231707B1 KR 100231707 B1 KR100231707 B1 KR 100231707B1 KR 1019970037246 A KR1019970037246 A KR 1019970037246A KR 19970037246 A KR19970037246 A KR 19970037246A KR 100231707 B1 KR100231707 B1 KR 100231707B1
- Authority
- KR
- South Korea
- Prior art keywords
- main memory
- information
- communication device
- address
- communication
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명은 통신장비의 DMA 처리장치 및 그 방법에 관한 것으로서, 임의의 프로세스가 즉시 사용할 수 있도록 할당된 영역과 상기 영역을 전담해서 관리하는 데몬 프로세스를 포함하는 주기억장치와, 통신에 관여하는 프로세스들의 통신 관련 정보를 저장한 큐와 상기 프로세스들을 위해 할당된 주기억장치내의 물리적 주소를 저장하며 상기 주기억장치 내에 할당된 즉시 사용 가능한 영역의 주소를 관리하는 임의 프로세스 레코드를 포함하는 관리 테이블을 포함하는 통신장비를 구비하여, 상기 통신장비가 외부로부터 임의의 목적 프로세스가 관리해야 할 정보를 수신하고, 상기 큐의 정보를 참조하여 상기 관리 테이블을 검색한 결과 상기 목적 프로세스를 위해 할당된 주기억장치내의 물리적 주소 정보가 없는 경우에 통신장비는 상기 관리 테이블내에 포함된 임의 프로세스 레코드를 검색하고, 상기 임의 프로세스 레코드에서 관리하는 주기억장치의 주소로 통신장비가 직접 액세스하여 상기 수신 정보를 저장함으로써, 메시지의 수신 과정에서 발생할 수 있는 TLB 적중실패를 방지하여, 통신 속도 및 성능을 저하 시키는 메시지의 재 전송을 없앨 수 있다.
Description
본 발명은 통신장비의 DMA(Direct Memory Access) 처리장치 및 그 방법에 관한 것으로서, 근거리 통신 망에서 통신장비의 DMA 정보 부재로 인해 발생하는 메시지의 재 전송을 최대한 줄이기 위한 통신장비의 DMA 처리장치 및 그 방법에 관한 것이다.
일반적으로 고속의 사용자 수준 네트워크는 통신장비에서 사용자 공간으로 직접 메시지를 전달하는 방법(DMA:Direct Memory Access)을 사용한다. 이를 위해서 통신장비는 사용자 프로세스의 프로세스 고유번호(ID)와 메시지가 저장될 공간의 가상 주소, 그리고 이 두 정보에 대응하는 주기억장치의 물리적 주소를 테이블 형태로 보관하고 있으며, 이를 통신장비의 TLB(Translation Look-aside Buffer)라고 한다. 이와 같이 구성된 통신장비가 임의의 메시지를 수신하면, 자신의 TLB를 검색해서 주기억장치의 물리 주소를 얻고, 상기 물리 주소가 가리키는 주기억장치로 메시지를 DMA한다.
이하, 첨부된 도면을 참조하여 종래의 통신장비의 DMA 처리방법을 좀 더 상세히 설명한다.
도 1은 통신장비와 주기억장치간 DMA 처리를 위한 구성도이고, 도 2는 종래의 통신장비와 주기억장치간 DMA 처리에 대한 흐름도이다.
도 1을 참조하면, 통신장비(102)와 주기억장치(101)는 시스템 버스를 통해 정보를 송수신하며, 상기 주기억장치(101)는 각 프로세스별로 임의의 프로세스에게 일정 영역(104)을 할당한다.
이 때, 상기 통신장비(102)의 각종 정보를 저장하는 메모리(103)는 통신장비(102)를 통해 전송할 메시지의 크기와 가상 주소를 갖는 전송큐(105)와, 상기 통신장비(102)로 도착되는 메시지가 저장될 공간에 대한 정보를 갖는 수신 버퍼 예약 큐(106)를 포함하며, 각 프로세스별로 임의의 프로세스에게 할당된 주기억장치의 영역(104)은 상기 통신장비(102)를 통해 도착된 메시지가 저장된 공간에 대한 정보를 갖는 수신큐(107)와, 상기 통신장비(102)를 통해 전송할 메시지가 저장된 전송 버퍼(108)와, 상기 통신장비(102)를 통해 도착할 메시지가 저장될 프리 버퍼(109)와, 상기 통신장비(102)를 통해 도착한 메시지가 저장된 수신 버퍼(110)를 포함한다.
이 때, 상기 전송큐(105)와 수신 버퍼 예약 큐(106)에는 프로세스 ID, 버퍼의 시작 주소(가상 주소), 크기가 저장되고, 수신큐(107)에는 시작 주소(가상 주소)와, 크기가 저장된다.
도 2에는 상기와 같은 통신장비(103)의 좀 더 구체적인 내용 및 통신장비(103)와 주기억장치(101)간 DMA 처리에 대한 흐름 과정이 나타나 있다.
도 2를 참조하면, 상기 통신장비(103)는 통신장비 TLB(Translation Look- aside Buffer)(201)와, 외부에서 입력되는 메시지를 처리하고 관리하기 위한 프로세스에 대한 정보를 저장하는 큐(202)로 구성되어 있고, 상기 통신장비(103)와 주기억장치(101)간 DMA 처리를 돕기 위한 커널(205)이 통신장비(103)외부에 설치되어 있다. 상기 통신장비 TLB(201)에는 상기 통신 관련 프로세스들에 대한 프로세스 ID 및 가상 주소(P1.V_addr, P2.V_addr, P1.V_addr, …, P7.V_addr)와 주기억장치에 대한 물리적 주소(phypage frame #)가 저장되어 있다.
이 때, 상기 큐(202)로 임의의 프로세스(P1)를 위한 메시지(203)가 입력되면(S201), 상기 통신장비(103)는 큐(202)에서 상기 프로세스(P1)의 ID와 메시지를 저장하기 위해 할당해 놓은 주기억장치 페이지의 가상 주소를 찾고, 이를 키로해서 상기 통신장비 TLB(201)를 검색한 후 주기억장치 페이지의 물리적 주소를 얻어낸 다음(TLB 히트)(S202), 그 주소의 주기억장치 페이지로 직접 액세스하여(DMA) (S203), 입력된 메시지(203)를 저장한다.
이와 같은 작업은 모두 통신장비의 프로세서에 의해 일어나는 과정이므로 많은 시간을 소비하지 않고 진행될 수 있으며, 도착하는 메시지들을 분실하지 않고 수행할 수 있다.
그러나, 프로세스 Pn에게 가는 메시지(204)가 통신장비로 입력된 경우(S204)는 상기 큐(202)를 거쳐 통신장비의 TLB(201)에서 물리 주소(203)를 찾는 과정에서 상기 프로세스 Pn을 위한 TLB의 내용이 없으므로, TLB 적중실패(TLB미스)(S205)가 발생하게 된다. 이 경우 상기 통신장비(103)는 커널(205)에게 TLB 적중실패 처리를 요구(S206)해야 한다. 그런데, 이와 같이 커널에서 처리 루틴을 수행할 경우에는 적지않은 시간을 소비하게 되고 결과적으로 도착한 메시지(206)를 잃어버리게 된다. 이는 메시지의 재 전송을 필요로 하게 되고, 네트워크 성능을 크게 저하시키는 원인이 된다.
즉, 현재까지의 기술에서는 도착하는 메시지가 최종 도달해야 할 프로세스의 주기억장치 페이지 정보가 항상 통신장비의 TLB에 있다는 보장을 할 수 없다. 그러므로, 상기와 같은 TLB 적중실패가 발생할 수 있고, 이 경우 커널의 도움을 받아 그 프로세스의 주기억장치 페이지 정보를 얻어 와야 하는데, 이 과정은 시간적 부담이 커서 통신량이 많은 경우 메시지가 손실될 수 밖에 없고, 이는 메시지의 재 전송을 초래하게 되어 통신상의 큰 부담이 되며, 이와 같은 통신장비의 주기억장치 페이지 정보 부재를 방지하고 부담을 줄이기 위해서는, TLB 적중실패가 발생할 때 데이터의 수신을 전담하는 프로세스가 필요하다.
따라서, 본 발명에서는 상기와 같은 단점을 보완하고, 통신장비의 DMA 정보 부재로 인한 재 전송을 없앰으로써 통신 성능을 향상시키기 위해, 미리 주기억장치의 페이지를 할당받고 이를 관리하는 데몬 프로세스(RDP : Receive Daemon Processor)와 주기억장치 내에서의 페이지를 교환하는 방식을 제공하고자 한다.
본 발명에서 제공하는 통신장비의 DMA 처리장치는 임의의 프로세스가 즉시 사용할 수 있도록 할당된 영역과 상기 영역을 전담해서 관리하는 데몬 프로세스를 포함하는 주기억장치와, 통신에 관여하는 프로세스들의 통신 관련 정보를 저장한 큐와 상기 프로세스들을 위해 할당된 주기억장치내의 물리적 주소를 저장하며 상기 주기억장치 내에 할당된 즉시 사용 가능한 영역의 주소를 관리하는 임의 프로세스 레코드를 포함하는 관리 테이블을 포함하는 통신장비를 구비하여, 상기 통신장비가 외부로부터 임의의 목적 프로세스가 관리해야할 정보를 수신한 경우 상기 큐에 저장된 목적 프로세스 정보에 의해 상기 관리 테이블을 검색하고, 그 결과 얻어진 주기억장치의 주소로 통신장비가 직접 액세스하여 상기 수신 정보를 저장하는 것을 특징으로 한다.
이 때, 만일 통신장비가 외부로부터 임의의 목적 프로세스가 관리해야 할 정보를 수신하고, 상기 큐의 정보를 참조하여 상기 관리 테이블을 검색한 결과 상기 목적 프로세스를 위해 할당된 주기억장치내의 물리적 주소 정보가 없는 경우 상기 통신장비는 상기 관리 테이블내에 포함된 임의 프로세스 레코드를 검색하고, 상기 임의 프로세스 레코드에서 관리하는 주기억장치의 주소로 통신장비가 직접 액세스하여 상기 수신 정보를 저장한다.
한편, 본 발명에서 제공하는 통신장비의 DMA 처리방법은 상기 통신장비가 외부로부터 임의의 목적 프로세스가 관리해야할 정보를 수신하는 제 1 단계와, 상기 제 1 단계에서 상기 목적 프로세스에 대한 통신 관련 정보를 얻기 위해 큐를 검색하는 제 2 단계와, 상기 제 2 단계에서 검색된 결과를 참조하여 상기 목적 프로세스가 관리하도록 할당된 주기억장치내의 영역에 대한 물리적 주소를 얻기 위해 상기 관리 테이블을 검색하는 제 3 단계와, 상기 제 3 단계의 검색 결과 상기 관리 테이블 내에 상기 목적 프로세스가 관리하도록 할당된 주기억장치내의 영역에 대한 물리적 주소가 저장되어 있지 않은 경우 상기 관리 테이블 내의 임의 프로세스 레코드에 저장된 주기억장치의 주소로 통신장비가 직접 액세스하여 수신 정보를 저장하고, 상기 주기억장치내의 데몬 프로세스에게 이 사실을 알리는 제 4 단계와, 상기 주기억장치내의 데몬 프로세스가 자신이 관리하는 영역에 상기 목적 프로세스가 관리해야할 정보가 있음을 인식하고, 상기 목적 프로세스의 프리버퍼(free buffer)가 주기억장치에 있는지 스와핑 영역에 있는지를 확인하는 제 5 단계와, 상기 제 5 단계의 확인 결과 상기 목적 프로세스의 프리버퍼가 주기억장치에 있는 경우 상기 목적 프로세스가 관리해야할 정보가 저장되어 있는 주기억장치의 주소를 저장한 데몬 프로세스의 페이지 테이블 내용과 목적 프로세스의 페이지 테이블 내용을 교환하고, 상기 목적 프로세스의 프리버퍼가 스와핑 영역에 있는 경우 상기 스와핑 영역을 가리키는 목적 프로세스의 페이지 테이블에 상기 목적 프로세스가 관리해야할 정보가 저장되어 있는 주기억장치의 주소를 저장한 데몬 프로세스의 페이지 테이블 내용을 저장하고, 상기 데몬 프로세스의 페이지 테이블에는 새로운 주기억장치의 주소를 할당하는는 제 6 단계로 구성된다.
즉, 본 발명에서는 메시지가 통신장비에 도착한 후 통신장비의 TLB 적중 실패가 발생하더라도 메시지를 잃어버리지 않으므로 재 전송을 없애는 장치 및 방법을 제공한다.
도 1은 통신장비와 주기억장치간 DMA 처리를 위한 구성도,
도 2는 종래의 통신장비와 주기억장치간 DMA 처리에 대한 흐름도,
도 3은 본 발명의 일 실시예에 따른 통신장비와 주기억장치간 DMA 처리에 대한 흐름도,
도 4는 본 발명의 일 실시예에 따른 데몬 프로세스와 목적 프로세스간의 페이지 교환 과정도,
도 5는 본 발명의 또다른 실시예에 따른 데몬 프로세스와 목적 프로세스간의 페이지 교환 과정도.
〈도면의 주요부분에 대한 부호의 설명〉
101 : 주기억장치에 프로세스 P1에게 할당된 물리적 영역
102 : 통신장비 103 : 통신장비의 메모리
201 : 통신장비의 TLB(Translation Look-aside Buffer)
202 : 통신 관련 프로세스들에 대한 정보를 저장하는 큐
203,204 : 프로세스에게 전달되는 메시지
205 : 커널 301 : 통신장비의 TLB
302 : 통신 관련 프로세스들에 대한 정보를 저장하는 큐
303 : 프로세스에게 전달되는 메시지
304 : RDP(Receive Daemon Processor)
305 : RDP 영역 401 : RDP의 페이지 테이블
402 : 목적 프로세스 Pn의 페이지 테이블
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따른 통신장비와 주기억장치간 DMA 처리에 대한 흐름도이고, 도 4는 본 발명의 일 실시예에 따른 데몬 프로세스와 목적 프로세스간의 페이지 교환 과정도이고, 도 5는 본 발명의 또다른 실시예에 따른 데몬 프로세스와 목적 프로세스간의 페이지 교환 과정도이다.
도 3을 참조하면, 본 발명의 통신장비 및 주기억장치 간의 DMA 처리 흐름을 위한 장치는, 임의의 프로세스가 즉시 사용할 수 있도록 할당된 영역(305)과 상기 영역을 전담해서 관리하는 데몬 프로세스(RDP:Receive Daemon Processor) (304)를 포함하는 주기억장치(101)와, 통신에 관여하는 프로세스들의 통신 관련 정보를 저장한 큐(302)와 상기 프로세스들을 위해 할당된 주기억장치내의 물리적 주소와 상기 주기억장치 내에 할당된 즉시 사용 가능한 영역의 주소를 저장하는 관리 테이블(TLB)(301)을 포함하는 통신장비(103)로 구성된다.
이 때, 상기 통신장비(103)는 외부로부터 임의의 목적 프로세스가 관리해야할 정보를 수신한 경우 상기 큐(302)에 저장된 목적 프로세스 정보에 의해 상기 관리 테이블을 검색하고, 그 결과 얻어진 주기억장치의 주소로 통신장비가 직접 액세스하여 상기 수신 정보를 저장하는 것으로서, 도 3은 특히, 상기 통신장비(103)로 목적 프로세스(Pn)를 위한 메시지(303)가 수신된 경우 상기 큐(302)를 거쳐 통신장비의 TLB(301)를 검색하여 물리 주소를 찾는 과정에서 상기 목적 프로세스(Pn)를 위한 TLB의 내용이 없고, 이에 따라 TLB 적중실패(TLB미스)(S302)가 발생한 경우에 대해 나타나 있다.
도 3을 참조하여 상기 TLB 적중실패(TLB미스)의 경우를 자세히 살펴보면 다음과 같다. 먼저, 프로세스 Pn에게 전달할 메시지(303)가 통신장비(103)에 수신되면(S301), 상기 통신장비(130)는 큐(302)를 통해 상기 프로세스 Pn의 ID 및 주기억장치내의 가상 주소를 찾아내고, 상기 큐(302)를 통해 얻어진 프로세스 Pn의 정보를 키로하여 상기 통신장비 TLB(301)를 검색한다(S302). 이 때, 상기 통신장비 TLB (301)에는 상기 프로세스 Pn을 위한 주기억장치내의 물리적 주소가 저장되어 있지 않으므로, TLB 적중 실패가 발생한다. 이 경우, 상기 통신장비의 TLB(301)에는 TLB 적중실패 되는 메시지를 저장하기 위한 주기억장치 페이지들의 정보(Recv_D. V_addr, phypage frame #)가 미리 확보되어 있고, 이 페이지들의 실제 소유자는 데몬 프로세스(RDP)(304)이다.
이와 같이 TLB 적중실패(S302)가 발생하면, 상기 통신장비(103)는 먼저, 데몬 프로세스(RDP)(304)의 주기억장치 페이지 정보를 보고, 데몬 프로세스(RDP) 소유의 페이지(305)에 상기 프로세스 Pn에게 전달할 메시지를 직접 액세스(DMA) (S303)한다. 이를 위해서 상기 데몬 프로세스(RDP)(304)는 항상 일정한 양의 페이지를 주기억장치에 가지고 있어야 하고, 그 정보를 통신장비의 TLB(301)에 저장해 놓아야 한다. 메시지의 DMA가 끝난 후, 그 메시지를 목적 프로세스에게까지 전달하기 위해서 프로세스 Pn의 수신 버퍼 예약 큐의 해당 내용을 RDP의 수신 큐(303)에 DMA한다. 이 정보는 메시지를 목적 프로세스에게 전달하는 과정에서 필요하다.
이와 같이 통신장비(103)와 주기억장치(101) 사이에 TLB 적중 실패가 발생한 경우, 상기 주기억장치내의 데몬 프로세스(RDP)(304)는 자신이 관리하는 영역에 상기 목적 프로세스가 관리해야할 정보가 있음을 인식하고, 상기 목적 프로세스의 프리버퍼(free buffer)가 주기억장치에 있는지 스와핑 영역에 있는지를 확인한다.
도 4는 상기 확인 결과 목적 프로세스의 프리 버퍼가 메모리에 있을 경우에 대한 데몬 프로세스와 목적 프로세스간의 페이지 교환 과정도로서, 주기억장치와, 주기억장치내에 데몬 프로세스(RDP)를 위한 페이지 테이블(401)과, 프로세스 Pn을 위한 페이지 테이블(402)와, 스와핑 영역(403)을 나타내며, 각 페이지 테이블이 가리키는 주기억장치내의 영역을 화살표로 나타내고 있다.
만일, TLB 적중 실패가 발생하면, 상기 목적 프로세스에게 전해질 메시지는 도 3을 참조하여 설명한 바와 같이 RDP의 영역에 DMA되어 주기억장치 페이지(405)에 저장된다. 그러면, 상기 RDP(304)는 자신의 수신 큐를 보고 프로세스 Pn과 교환해야할 페이지가 있음을 인식하고, 프로세스 Pn의 페이지 테이블(402)에 접근해서 상기 프로세스 Pn의 자신의 페이지 테이블(401) 내용과 해당 페이지(406, 407)의 주소를 교환(S402)한다. 즉, 처음 TLB 적중 실패가 발생하였을 때에 상기 프로세스 Pn의 페이지 테이블(402)은 페이지(407)를 가리키고 있고, 상기 RDP 페이지 테이블(401)은 페이지(406)를 가리키고(S401) 있다가 상기 RDP(304)가 프로세스 Pn과 교환해야할 페이지가 있음을 인식한 후에, 서로 교환(S402)하여 상기 RDP 페이지 테이블(401)은 페이지(407)를 가리키고, 상기 프로세스 Pn의 페이지 테이블(402)은 페이지(406)을 가리킨다(S403).
즉, 상기 목적 프로세스가 관리해야할 정보가 저장되어 있는 주기억장치의 주소를 저장한 데몬 프로세스의 페이지 테이블 내용(406)과 목적 프로세스의 페이지 테이블 내용(407)을 교환한다.
도 5는 목적 프로세스의 프리 버퍼가 스와핑 영역에 있을 경우에 대한 데몬 프로세스와 목적 프로세스간의 페이지 교환 과정도로서, 주기억장치와, 주기억장치내에 데몬 프로세스(RDP)를 위한 페이지 테이블(401)과, 프로세스 Pn을 위한 페이지 테이블(402)와, 스와핑 영역(403)을 나타내며, 각 페이지 테이블이 가리키는 주기억장치내의 영역을 화살표로 나타내고 있다.
만일, TLB 적중 실패가 발생한 경우, 목적 프로세스에 대한 페이지가 주기억장치내에 없는 경우, 주기억장치는 빠른 페이지 교환을 위해서 프로세스 Pn의 스와핑 영역(403)에 있는 페이지를 메모리로 읽어 들이지 않고 직접 자유 공간으로 만든후(S502), 상기 스와핑 영역을 가리키는 목적 프로세스의 페이지 테이블에 상기 목적 프로세스가 관리해야할 정보가 저장되어 있는 주기억장치의 주소를 저장한 데몬 프로세스의 페이지 테이블 내용(501)을 저장(S504)하고, 상기 데몬 프로세스의 페이지 테이블에는 새로운 주기억장치의 주소(510)를 할당(S505)한다.
즉, 처음 TLB 적중 실패가 발생한 시점에서, 상기 데몬 프로세스(RDP)의 페이지 테이블(401)은 페이지(501)를 가리키고(S501), 상기 프로세스 Pn의 페이지 테이블(402)은 스와핑 영역의 페이지(404)를 가리키고 있다가(S503), 상기 RDP(304)가 프로세스 Pn과 교환해야할 페이지가 있음을 인식한 후에, 스와핑 영역(403)에 있는 페이지를 가리키는 상기 프로세스 Pn의 페이지 테이블(402)의 내용을 삭제(S502)하고, 그 영역에 페이지(501)을 가리키도록(S504)하며, 상기 페이지(501)을 가리키던 데몬 프로세스의 페이지 테이블에는 새로운 주기억장치의 주소(510)를 할당(S505)한다.
따라서, 상기와 같은 본 발명은 도착하는 메시지가 저장될 공간이 항상 준비되어 있고, 주기억장치 페이지의 복사과정 없이 메시지를 최종 목적 프로세스에게로 전달할 수 있으므로, 통신 상의 부담을 크게 개선한 메시지의 수신을 할 수 있다. 즉, 메시지의 수신 과정에서 발생할 수 있는 TLB 적중실패를 방지하여, 통신 속도 및 성능을 저하 시키는 메시지의 재 전송을 없앨 수 있으며, 메모리 내에서 RDP와 통신에 참가하고 있는 프로세스 간의 페이지 교환을 하므로, 페이지 폴트에 따른 부담 또한 없앨 수 있다는 장점이 있다.
Claims (4)
- 주기억장치와, 통신에 관여하는 프로세스들의 통신 관련 정보를 저장한 큐와 상기 프로세스들을 위해 할당된 주기억장치내의 물리적 주소를 저장한 관리 테이블을 포함하는 통신장비를 구비하여, 상기 통신장비가 외부로부터 임의의 목적 프로세스가 관리해야할 정보를 수신한 경우 상기 큐에 저장된 목적 프로세스 정보에 의해 상기 관리 테이블을 검색하고, 그 결과 얻어진 주기억장치의 주소로 통신장비가 직접 액세스하여 상기 수신 정보를 저장하는 통신장비의 DMA 처리장치에 있어서,상기 주기억장치는임의의 프로세스가 즉시 사용할 수 있도록 할당된 영역과,상기 영역을 전담해서 관리하는 데몬 프로세스를 포함하며,상기 관리 테이블은상기 주기억장치 내에 할당된 즉시 사용 가능한 영역의 주소를 관리하는 임의 프로세스 레코드를 포함하는 것을 특징으로 하는 통신장비의 DMA 처리장치.
- 제 1 항에 있어서,상기 통신장비의 DMA 처리장치는통신장비가 외부로부터 임의의 목적 프로세스가 관리해야 할 정보를 수신하고, 상기 큐의 정보를 참조하여 상기 관리 테이블을 검색한 결과 상기 목적 프로세스를 위해 할당된 주기억장치내의 물리적 주소 정보가 없는 경우통신장비는 상기 관리 테이블내에 포함된 RDP의 레코드를 검색하고, 상기 RDP의 레코드에서 관리하는 주기억장치의 주소로 통신장비가 직접 액세스하여 상기 수신 정보를 저장하는 것을 특징으로 하는 통신장비의 DMA 처리장치.
- 주기억장치와, 통신에 관여하는 프로세스들의 통신 관련 정보를 저장한 큐와 상기 프로세스들을 위해 할당된 주기억장치내의 물리적 주소를 저장한 관리 테이블을 포함하는 통신장비를 구비하여 통신장비로 수신된 정보가 있을 경우 상기 통신장비가 주기억장치로 직접 액세스하여 수신된 정보를 저장하는 통신장비의 DMA 처리방법에 있어서,상기 주기억장치는 임의의 프로세스가 즉시 사용할 수 있도록 할당된 영역과, 상기 영역을 전담해서 관리하는 데몬 프로세스를 포함하고, 상기 관리 테이블은 상기 주기억장치 내에 즉시 사용 가능하도록 할당된 영역의 주소를 관리하는 임의 프로세스 레코드를 포함하여상기 통신장비가 외부로부터 임의의 목적 프로세스가 관리해야할 정보를 수신하는 제 1 단계와,상기 제 1 단계에서 상기 목적 프로세스에 대한 통신 관련 정보를 얻기 위해 큐를 검색하는 제 2 단계와,상기 제 2 단계에서 검색된 결과를 참조하여 상기 목적 프로세스가 관리하도록 할당된 주기억장치내의 영역에 대한 물리적 주소를 얻기 위해 상기 관리 테이블을 검색하는 제 3 단계와,상기 제 3 단계의 검색 결과 상기 관리 테이블 내에 상기 목적 프로세스가 관리하도록 할당된 주기억장치내의 영역에 대한 물리적 주소가 저장되어 있지 않은 경우 상기 관리 테이블 내의 임의 프로세스 레코드에 저장된 주기억장치의 주소로 통신장비가 직접 액세스하여 수신 정보를 저장하고, 상기 주기억장치내의 데몬 프로세스에게 이 사실을 알리는 제 4 단계와,상기 주기억장치내의 데몬 프로세스가 자신이 관리하는 영역에 상기 목적 프로세스가 관리해야할 정보가 있음을 인식하고, 상기 목적 프로세스의 프리버퍼(free buffer)가 주기억장치에 있는지 스와핑 영역에 있는지를 확인하는 제 5 단계와,상기 제 5 단계의 확인 결과 상기 목적 프로세스의 프리버퍼가 주기억장치에 있는 경우 상기 목적 프로세스가 관리해야할 정보가 저장되어 있는 주기억장치의 주소를 저장한 데몬 프로세스의 페이지 테이블 내용과 목적 프로세스의 페이지 테이블 내용을 교환하는 제 6 단계로 구성된 것을 특징으로 하는 통신장비의 DMA 처리방법.
- 제 3 항에 있어서,상기 제 6 단계는상기 제 5 단계의 확인 결과 상기 목적 프로세스의 프리버퍼가 스와핑 영역에 있는 경우 상기 스와핑 영역을 가리키는 목적 프로세스의 페이지 테이블에 상기 목적 프로세스가 관리해야할 정보가 저장되어 있는 주기억장치의 주소를 저장한 데몬 프로세스의 페이지 테이블 내용을 저장하고, 상기 데몬 프로세스의 페이지 테이블에는 새로운 주기억장치의 주소를 할당하는 것을 특징으로 하는 통신장비의 DMA 처리방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970037246A KR100231707B1 (ko) | 1997-08-04 | 1997-08-04 | 통신 장비의 디엠에이 처리 방법 및 그 장치 |
US09/007,818 US6058437A (en) | 1997-08-04 | 1998-01-15 | D.M.A. device that handles cache misses by managing an address of an area allotted via a daemon processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970037246A KR100231707B1 (ko) | 1997-08-04 | 1997-08-04 | 통신 장비의 디엠에이 처리 방법 및 그 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990015263A KR19990015263A (ko) | 1999-03-05 |
KR100231707B1 true KR100231707B1 (ko) | 2000-01-15 |
Family
ID=19516854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970037246A KR100231707B1 (ko) | 1997-08-04 | 1997-08-04 | 통신 장비의 디엠에이 처리 방법 및 그 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6058437A (ko) |
KR (1) | KR100231707B1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6978297B1 (en) | 1998-11-12 | 2005-12-20 | Ricoh, Co., Ltd. | System and method of managing queues by maintaining metadata files having attributes corresponding to capture of electronic document and using the metadata files to selectively lock the electronic document |
US6256683B1 (en) * | 1998-12-23 | 2001-07-03 | Bops, Inc. | Methods and apparatus for providing direct memory access control |
US6775665B1 (en) * | 1999-09-30 | 2004-08-10 | Ricoh Co., Ltd. | System for treating saved queries as searchable documents in a document management system |
US7239406B1 (en) | 1999-09-30 | 2007-07-03 | Ricoh Co., Ltd | System for capturing facsimile data in an electronic document management system |
EP1102472B1 (en) * | 1999-11-12 | 2002-12-04 | Ricoh Company, Ltd. | Capturing facsimile data in an electronic document management system |
US7089289B1 (en) * | 2000-07-18 | 2006-08-08 | International Business Machines Corporation | Mechanisms for efficient message passing with copy avoidance in a distributed system using advanced network devices |
US9396142B2 (en) * | 2014-06-10 | 2016-07-19 | Oracle International Corporation | Virtualizing input/output interrupts |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0221342A (ja) * | 1987-02-27 | 1990-01-24 | Hitachi Ltd | マルチプロセッサシステム及びマルチプロセッサシステムにおける論理キャッシュメモリのアクセス方法 |
CA1325288C (en) * | 1989-02-03 | 1993-12-14 | Ricky C. Hetherington | Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system |
JP3369580B2 (ja) * | 1990-03-12 | 2003-01-20 | ヒューレット・パッカード・カンパニー | 直接メモリアクセスを行うためのインターフェース装置及び方法 |
US5128878A (en) * | 1990-11-28 | 1992-07-07 | Micron Technology, Inc. | Remote plotting of integrated circuit layout in a network computer-aided design system |
TW219986B (ko) * | 1991-06-17 | 1994-02-01 | Digital Equipment Corp | |
CA2131627A1 (en) * | 1992-03-09 | 1993-09-16 | Yu-Ping Cheng | High-performance non-volatile ram protected write cache accelerator system |
US5696897A (en) * | 1994-01-31 | 1997-12-09 | Sun Microsystems, Inc. | Method and apparatus for a multi-layer system quiescent suspend and resume operation |
US5790130A (en) * | 1995-06-08 | 1998-08-04 | Hewlett-Packard Company | Texel cache interrupt daemon for virtual memory management of texture maps |
US5909546A (en) * | 1996-03-08 | 1999-06-01 | Mitsubishi Electric Information Technology Center America, Inc. (Ita) | Network interface having support for allowing remote operations with reply that bypass host computer interaction |
US5931925A (en) * | 1996-12-02 | 1999-08-03 | International Business Machines Corporation | System and method for efficiently transferring datastreams in a multimedia system |
US5917503A (en) * | 1997-06-02 | 1999-06-29 | Hewlett Packard Company | Converging data pipeline device |
-
1997
- 1997-08-04 KR KR1019970037246A patent/KR100231707B1/ko not_active IP Right Cessation
-
1998
- 1998-01-15 US US09/007,818 patent/US6058437A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US6058437A (en) | 2000-05-02 |
KR19990015263A (ko) | 1999-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6236658B1 (en) | Method and apparatus for message routing, including a content addressable memory | |
US6928529B2 (en) | Data transfer between virtual addresses | |
JP3512910B2 (ja) | 分散計算機システムにおける記憶空間管理方法、計算機及びデータ転送方法 | |
US7234006B2 (en) | Generalized addressing scheme for remote direct memory access enabled devices | |
CN108363641B (zh) | 一种主备机数据传递方法、控制节点以及数据库*** | |
US8601235B2 (en) | System and method for concurrently managing memory access requests | |
US8504794B1 (en) | Override system and method for memory access management | |
US8868883B1 (en) | Virtual memory management for real-time embedded devices | |
JPH0962558A (ja) | データベース管理システム及び方法 | |
CN104899160A (zh) | 一种缓存数据控制方法、节点控制器和*** | |
CN108134855B (zh) | Arp表管理方法、处理器核心、存储介质、电子设备 | |
EP0603994A2 (en) | Method and apparatus for transferring and processing data | |
US8706975B1 (en) | Memory access management block bind system and method | |
KR100231707B1 (ko) | 통신 장비의 디엠에이 처리 방법 및 그 장치 | |
CA2221797C (en) | Linked caches for context data search | |
US6405292B1 (en) | Split pending buffer with concurrent access of requests and responses to fully associative and indexed components | |
EP0519685A1 (en) | Address translation | |
CN113419973A (zh) | 一种报文转发方法及装置 | |
EP1839148A2 (en) | Transferring data between system and storage in a shared buffer | |
EP1314090B1 (en) | Method and system for translation lookaside buffer coherence in multi-processor systems | |
US6961837B2 (en) | Method and apparatus for address translation pre-fetch | |
JPH09167143A (ja) | メッセージ受信制御方式 | |
JP2000330960A (ja) | プロセッサ間通信装置 | |
US11914865B2 (en) | Methods and systems for limiting data traffic while processing computer system operations | |
CN115794667B (zh) | 内存管理方法、***、组件及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120827 Year of fee payment: 14 |
|
FPAY | Annual fee payment |
Payment date: 20130822 Year of fee payment: 15 |
|
LAPS | Lapse due to unpaid annual fee |