KR100480605B1 - 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기 - Google Patents

네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기 Download PDF

Info

Publication number
KR100480605B1
KR100480605B1 KR10-2002-0043896A KR20020043896A KR100480605B1 KR 100480605 B1 KR100480605 B1 KR 100480605B1 KR 20020043896 A KR20020043896 A KR 20020043896A KR 100480605 B1 KR100480605 B1 KR 100480605B1
Authority
KR
South Korea
Prior art keywords
buffer
transmitter
receiver
amount
occupancy
Prior art date
Application number
KR10-2002-0043896A
Other languages
English (en)
Other versions
KR20040010869A (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 KR10-2002-0043896A priority Critical patent/KR100480605B1/ko
Priority to US10/614,951 priority patent/US7251702B2/en
Publication of KR20040010869A publication Critical patent/KR20040010869A/ko
Application granted granted Critical
Publication of KR100480605B1 publication Critical patent/KR100480605B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks

Abstract

네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를 제어하는 방법 및 네트워크 제어기가 개시된다. 본 발명에 따른 송수신 버퍼를 제어하는 방법은 상기 송신부 버퍼 및/또는 상기 수신부 버퍼로부터 시스템 버스를 사용하고자 하는 요구를 수신하는 단계; 및, 상기 송신부 버퍼 및 상기 수신부 버퍼의 점유상태를 확인하고, 상기 점유상태에 응답하여 상기 송신부 버퍼 및 상기 수신부 버퍼 중 어느 하나의 버퍼에 상기 시스템 버스의 사용을 허가하는 단계를 구비하며, 상기 허가하는 단계는 상기 송신부 버퍼 및 상기 수신부 버퍼 모두로부터 상기 시스템 버스를 사용하고자 하는 요구를 수신하는 경우, 긴급 모드인지 여부를 판단하는 단계; 및, 상기 판단결과에 응답하여 상기 수신부 버퍼의 버퍼 점유량과 상기 송신부 버퍼의 버퍼 공백량을 비교하고, 그 비교결과에 따라 상기 송신부 버퍼 또는 상기 수신부 버퍼 중 어느 하나의 버퍼에 상기 시스템 버스의 사용을 허가하는 단계를 구비하는 것을 특징으로 한다. 본 발명에 따르면, 송수신 경로상의 버퍼들을 통합된 각각의 가상 송수신 버퍼로 간주하여 각 가상버퍼의 상대적인 점유율 및 버퍼 점유율의 증감상태를 고려함으로써, 송수신 버퍼의 넘침과 고갈을 효과적으로 방지하거나 줄일 수 있고, 송수신 버퍼의 메모리 접근을 공평하게 중재할 수 있는 효과가 있다.

Description

네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를 제어하는 방법 및 네트워크 제어기{Method of controlling transmitting buffer and receiving buffer of network controller, and the network controller}
본 발명은 이더넷 네트워크 제어기에 관한 것으로, 특히 네트워크 제어기의 송신 버퍼 및 수신 버퍼를 제어하는 방법 및 네트워크 제어기에 관한 것이다.
네트워크 제어기는 네트워크와의 인터페이스(interface)를 위한 매체제어기(Media Access Control; MAC)와 시스템과의 인터페이스를 위한 직접 메모리 접근(Direct Memory Access; DMA) 제어기로 구성된다. 특히 이더넷(Ethernet)과 같이 전이중모드(full duplex)를 지원하는 네트워크 제어기는 도 1과 같이 설계될 수 있다.
도 1은 일반적인 전이중모드를 지원하는 이더넷 네트워크 제어기(100)를 구비하는 컴퓨터 시스템(1000)을 도시한 도면이다. 도 1에 도시된 컴퓨터 시스템(1000)은 네트워크 제어기(100), 메모리(14), 시스템 버스(18), 다수의 버스 마스터들(16, 17) 및, 시스템 버스 중재기(15)를 구비한다. 메모리(14), 시스템 버스 중재기(15), 다수의 버스 마스터들(16, 17) 및 네트워크 제어기(100)는 시스템 버스에 접속된다.
시스템 버스 중재기(15)는 다수의 버스 마스터들(16, 17)과 네트워크 제어기(100) 사이에서 시스템 버스(18) 사용을 중재하는 기능을 수행한다. 다수의 버스 마스터들(15, 16)은 사운드 카드(sound card)나 USB(universal serial bus)를 구동할 때 데이터를 독출/기입하는 장치 등의 주변기기와 인터페이스될 수 있다.
네트워크 제어기(100)는 데이터의 송신과 수신을 위한 경로가 따로 존재하고, 각 경로상에는 DMA 버퍼(111, 121)와 MAC 버퍼(112, 122)가 별도로 존재한다. 또한 단일 DMA에 의하여 MAC와 시스템이 인터페이스되고 있고, 송수신 각 모듈의 시스템 버스의 접근이 독립적으로 이루어질 수 있기 때문에 이를 중재하는 내부 중재기(internal arbiter; 130)가 필요하다.
내부 중재기(130)는 송신 및/또는 수신 모듈로부터의 버스 접근 요구(Rxreq, Txreq)를 시스템 버스(18)를 통하여 시스템 버스 중재기(15)에 전달하고, 시스템 버스 중재기(15)의 버스 접근 허가(GRANT)를 시스템 버스(18)를 통하여 송신부(110) 또는 수신부(120)에게 전달한다. 송신부(110) 또는 수신부(120)에 버스 접근이 허가되면, 메모리(14)로부터 데이터를 독출(read)하여 물리계층(140)을 통하여 소정의 전기신호를 외부로 출력하거나 또는 물리계층(140)으로부터 수신된 전기신호를 변환하여 메모리(14)로 데이터를 기입(write)할 수 있다.
이러한 과정에서 내부 중재기(130)는 MAC와 DMA의 송수신 경로에 존재하는 여러 버퍼들, 즉 도 1에 도시된 바와 같이 송신부 DMA 버퍼(121), 송신부 MAC 버퍼(122), 수신부 DMA 버퍼(111) 및 수신부 MAC 버퍼(112)의 점유율을 고려하여 송신부 버퍼들(112, 122)의 고갈(underflow)과 수신부 버퍼들(111, 121)의 넘침(overflow)을 방지하거나 줄일 수 있어야 한다.
송신부 DMA 버퍼(121)의 데이터는 송신부 MAC 버퍼(122)로 전달되기 때문에 송신부 MAC 버퍼(122)의 고갈이 송신부의 성능을 저하시키며, 따라서 만일 송신부 MAC 버퍼(122)가 고갈되지 않으면 송신부 DMA 버퍼(121)의 고갈은 송신시에 문제를 일으키지 않는다. 마찬가지로, 수신부 MAC 버퍼(112)의 데이터는 수신부 DMA 버퍼(111)로 전달되기 때문에 데이터의 손실을 유발시키는 버퍼의 넘침은 수신부 DMA 버퍼(111)에서 발생하게 된다.
일반적으로 네트워크 제어기의 응용 및 시스템에 따라서 네트워크 제어기의 내부 버퍼들의 크기를 다르게 설정할 수 있다. 만일 버퍼의 크기가 작게 설정될 때 각 버퍼의 점유율은 다른 마스터들에 의한 버스 점유도나 네트워크 수신율의 일시적인 변동에 따라서 급격하게 변동할 수 있다는 점에서 문제점이 있다.
또한 송수신 경로상의 절대적인 버퍼의 점유율만을 고려한 버퍼 제어는 송수신 경로상의 데이터 접근을 중재할 수 없어서 송수신 버퍼의 넘침이나 고갈을 막을 수 없다는 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는, 송수신 경로상의 버퍼들을 통합된 각각의 가상 송수신 버퍼로 간주하여 각 가상 버퍼의 상대적인 점유율과 버퍼 점유율의 증감상태를 고려한 버퍼의 제어방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 상기 버퍼 제어방법을 실행시키 위한 네트워크 제어기를 제공하는 데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 일면은 네트워크 제어기의 송신부 버퍼 및/또는 수신부 버퍼를 제어하는 방법에 관한 것이다. 본 발명에 따른 네트워크 제어기의 송신부 버퍼 및/또는 수신부 버퍼를 제어하는 방법은 상기 송신부 버퍼 및/또는 상기 수신부 버퍼로부터 시스템 버스를 사용하고자 하는 요구를 수신하는 단계; 및, 상기 송신부 버퍼 및 상기 수신부 버퍼의 점유상태를 확인하고, 상기 점유상태에 응답하여 상기 송신부 버퍼 및 상기 수신부 버퍼 중 어느 하나의 버퍼에 상기 시스템 버스의 사용을 허가하는 단계를 구비한다.
바람직하게는, 상기 허가하는 단계는 상기 송신부 버퍼 및 상기 수신부 버퍼 중 어느 하나의 버퍼로부터 상기 시스템 버스를 사용하고자 하는 요구를 수신하는 경우, 상기 요구를 송신한 송신부 버퍼 및 수신부 버퍼 중 어느 하나의 버퍼에 상기 시스템 버스의 사용을 허가하는 것을 특징으로 한다.
또한 바람직하게는, 상기 허가하는 단계는 상기 송신부 버퍼 및 상기 수신부 버퍼 모두로부터 상기 시스템 버스를 사용하고자 하는 요구를 수신하는 경우, 긴급 모드인지 여부를 판단하는 단계; 및, 상기 판단결과에 응답하여 상기 수신부 버퍼의 버퍼 점유량과 상기 송신부 버퍼의 버퍼 공백량을 비교하고, 그 비교결과에 따라 상기 송신부 버퍼 또는 상기 수신부 버퍼 중 어느 하나의 버퍼에 상기 시스템 버스의 사용을 허가하는 단계를 구비하고, 상기 긴급모드는 상기 수신부 버퍼 및 상기 송신부 버퍼의 버퍼점유상태로부터 동시에 시스템 버스의 사용요구가 있고 상기 수신부 버퍼가 상기 수신부 버퍼의 문턱점유량 이상 점유되어 있으며 상기 송신부 버퍼가 상기 송신부 버퍼의 문턱공백량 이상 비어있는 것을 특징으로 한다. 또한, 상기 긴급모드 여부를 판단한 결과 상기 긴급모드가 아닌 경우, 상기 수신부 버퍼의 버퍼 점유량과 상기 송신부 버퍼의 버퍼 공백량을 비교하고, 그 비교결과에 따라 상기 송신부 버퍼 및 상기 수신부 버퍼 중 어느 하나의 버퍼에 상기 시스템 버스의 사용을 허가하며, 상기 수신부 버퍼의 버퍼 점유량이 상기 송신부 버퍼의 버퍼 공백량보다 큰 경우 상기 수신부 버퍼에 상기 시스템 버스를 허가하고, 상기 송신부 버퍼의 버퍼 공백량이 상기 수신부 버퍼의 버퍼 점유량보다 큰 경우 상기 송신부 버퍼에 상기 시스템 버스의 사용을 허가하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 일면은 네트워크 제어기에 관한 것이다. 본 발명에 따른 네트워크 제어기는 송신부 버퍼 및 수신부 버퍼를 구비하고, 상기 송신부 버퍼 및 상기 수신부 버퍼를 모니터링(monitoring)하고 상기 송신부 버퍼 및 상기 수신부 버퍼로부터의 버스접근 요구에 응답하여 시스템 버스의 접근여부를 중재하는 내부 중재기를 구비하고, 상기 내부 중재기는 수신부 버퍼 점유량 및 송신부 버퍼 공백량을 수신하여 상기 수신부 버퍼 점유량 및 상기 송신부 버퍼 공백량으로부터 긴급 모드인지를 판단하고 상기 판단결과를 출력하는 긴급모드 판단회로; 상기 수신부 버퍼의 점유량의 증가여부를 판단하여 그 결과인 제 1신호를 출력하는 제 1판단회로; 상기 송신부 버퍼의 공백량의 증가여부를 판단하여 그 결과인 제 2신호를 출력하는 제 2판단회로; 상기 송신부 버퍼의 공백량과 상기 수신부 버퍼의 점유량을 비교하여 그 비교결과를 출력하는 비교회로; 및, 상기 판단결과, 상기 제 1신호, 상기 제 2신호 및 상기 비교결과에 응답하여 상기 수신부 버퍼 또는 상기 송신부 버퍼에 상기 시스템 버스의 사용을 허가하는 허가신호를 출력하는 논리회로를 구비하는 것을 특징으로 한다.
바람직하게는, 상기 긴급모드 판단회로는 상기 수신부 버퍼의 점유량과 소정의 수신부 버퍼의 문턱점유량을 비교하여 그 비교결과를 출력하는 제 1비교회로; 상기 송신부 버퍼의 공백량과 소정의 송신부 버퍼의 문턱공백량을 비교하여 그 비교결과를 출력하는 제 2비교회로; 및, 상기 제 1비교회로와 상기 제 2비교회로의 출력신호를 논리곱하여 출력하는 논리곱수단을 구비하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제 1판단회로는 상기 수신부 버퍼의 점유량을 저장하는 제 1레지스터; 및, 상기 제 1레지스터의 출력과 상기 수신부 버퍼의 점유량을 비교하여 그 비교결과를 출력하는 제 3비교회로를 구비하는 것을 특징으로 한다.
또한 바람직하게는, 상기 제 2판단회로는 상기 송신부 버퍼의 공백량을 저장하는 제 2레지스터; 및, 상기 제 2레지스터의 출력과 상기 수신부 버퍼의 점유량을 비교하여 그 비교결과를 출력하는 제 4비교회로를 구비하는 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명에 따른 이더넷 네트워크 제어기(200)를 구비하는 컴퓨터 시스템(2000)을 도시한 도면이다. 도 2에 도시된 바와 같이, 컴퓨터 시스템(2000)은 네트워크 제어기(200), 메모리(14), 시스템 버스(18), 다수의 버스 마스터들(16, 17) 및 시스템 버스 중재기(15)를 구비한다. 메모리(14), 시스템 버스 중재기(15) 및 다수의 버스 마스터들(16, 17)은 도 1의 컴퓨터 시스템(1000)에서와 같이 시스템 버스(18)에 접속된다. 도 2에 도시되지는 않았지만, 컴퓨터의 중앙처리장치(CPU)도 시스템 버스(28)에 접속된다.
도 1에 설명된 것과 중복되는 일부 구성요소에 관한 설명은 생략한다. 도 2에 도시된 네트워크 제어기(200)는 도 1에 도시된 네트워크 제어기(100)와는 달리, 수신부 DMA 버퍼(211) 및 수신부 MAC 버퍼(212)를 하나의 수신부 버퍼(210)로 간주하여 제어하고, 송신부 DMA 버퍼(221) 및 송신부 MAC 버퍼(222)를 하나의 송신부 버퍼(220)로 간주하여 제어하는 것을 특징으로 한다.
내부 중재기(230)는 수신부 버퍼(210) 및/또는 송신부 버퍼(220)로부터 시스템 버스 접근요구(Rxreq, Txreq)를 수신하고 시스템 버스 요구명령(BUS_REQ)을 시스템 버스(18)를 통하여 시스템 버스 중재기(25)에 전달하고, 시스템 버스 중재기(15)의 버스 접근 허가(GRANT)를 시스템 버스를 통하여 수신부 버퍼(210) 또는 송신부 버퍼(220)로 전달한다.
물리계층(240)은 데이터를 수신하는 경우 상기 데이터에 해당하는 아날로그 신호(전기신호)를 수신하여 수신부 버퍼(210)에 전송하고, 데이터를 송신하는 경우 송신부 버퍼(220)로부터 송신하고자 하는 데이터를 수신하고 상기 송신하고자 하는 데이터에 해당하는 아날로그 신호(전기신호)를 외부로 전송한다.
네트워크 제어기(200)로 시스템 버스(18)가 허가되는 경우, 내부 중재기(230)는 시스템 버스(18)를 수신부 버퍼(210)에 허가할지 송신부 버퍼(220)에 허가할지 여부를 중재한다. 내부 중재기(230)는 수신부 버퍼(210)의 버퍼 점유량(Rxbuff) 및 송신부 버퍼의 버퍼 공백량(Txempty)을 수신하고, 이들에 응답하여 수신부 버퍼(210) 또는 송신부 버퍼(220)에 허가할 지의 여부를 중재한다.
내부 중재기(230)는 수신부 버퍼(210) 및 송신부 버퍼(220)를 각각 하나의 통합된 버퍼로 간주하여 중재함으로써, 본 발명에 따르는 네트워크 제어기(200)는 버퍼의 고갈 및 넘침에 따른 데이터의 손실을 최소화할 수 있다.
도 3은 본 발명에 따른 송신부 버퍼 및 수신부 버퍼의 제어방법을 나타낸 순서도(flow chart)이다. 도 2를 참조하면, 본 발명에 따르는 버퍼의 제어방법은 수신부에 존재하는 다수의 버퍼들(211, 212) 및 송신부에 존재하는 다수의 버퍼들(221, 222)을 각각 하나의 가상버퍼, 즉 수신부 버퍼(210) 및 송신부 버퍼(220)로 간주하여 제어함으로써 송신부 버퍼 및 수신부 버퍼를 내부 중재기(230)에 의하여 제어하는 것을 특징으로 한다.
먼저 도 3에 도시된 용어를 간략하게 설명하면 다음과 같다. Txreq는 송신부 버퍼가 고갈된 경우에 시스템 버스를 요구하는 명령이고, Rxreq는 수신부 버퍼의 넘침이 있는 경우 시스템 버스를 요구하는 명령이다. Txreq 및/또는 Rxreq가 1인 경우는 송신부 버퍼 및/또는 수신부 버퍼로부터 시스템 버스를 요구하는 명령이 존재하는 경우이다.
Rxbuff는 데이터가 수신부 버퍼에 점유되어 있는 양을 의미하고 Txempty는 송신부 버퍼의 공백량을 의미한다. Rxgrant는 수신부에 시스템 버스를 허가하는 신호를 의미하고, Txgrant는 송신부에 시스템 버스를 허가하는 신호를 의미한다. Rxgrant 또는 Txgrant가 1인 경우는 내부 중재기(230)가 각각 수신부 버퍼 또는 송신부 버퍼에 시스템 버스(18)의 사용을 허가하는 경우이다.
도 2 및 도 3을 참조하여 본 발명에 따른 버퍼의 제어방법을 상세하게 설명하면 다음과 같다. 먼저, 송신부 버퍼(220)에 고갈의 위험이 있는 경우 및/또는 수신부 버퍼(210)에 넘침의 위험이 있는 경우, 내부 중재기(230)는 각각 송신부 버퍼(220) 및/또는 수신부 버퍼(210)로부터 시스템 버스(18)를 사용하고자 하는 요구를 수신하고 송신부 및 수신부 모두로부터 상기 요구가 있는지를 판단한다(310단계).
310단계의 판단결과, 송신부 및 수신부 모두가 시스템 버스(18)를 사용하는 요구를 하지 않는 경우(Txreq 및 Rxreq가 모두 1은 아닌 경우)에, 송신부 버퍼(220)로부터 시스템 버스(18)를 사용하는 요구가 있는 경우 내부 중재기(230)는 송신부 버퍼(220)에 시스템 버스(18)를 허가하고(357단계), 수신부 버퍼(210)로부터 시스템 버스(18)를 사용하는 요구가 있는 경우 내부 중재기(230)는 수신부 버퍼(210)에 시스템 버스(18)를 허가한다(358단계).
310단계의 판단결과, 송신부 및 수신부 모두가 시스템 버스(18)를 사용하고자 요구하는 경우(Txreq 및 Rxreq가 모두 1인 경우), 내부 중재기(230)는 긴급모드(emergency mode)인지를 판단한 후에(320단계) 320단계의 판단결과에 응답하여 시스템 버스(18)의 접근여부를 결정한다.
여기에서 긴급모드는 수신부 버퍼(210) 및 송신부 버퍼(220)의 버퍼 점유상태로부터 동시에 시스템 버스(18)의 사용요구가 있고, 수신부 버퍼 점유량(Rxbuff)이 수신부 버퍼의 문턱점유량(Rxth) 이상이고, 송신부 버퍼 공백량(Txempty)이 송신부 버퍼의 문턱공백량(Txth) 이상인 경우이다.
만일 긴급모드에 해당하지 않는 경우, 내부 중재기(230)는 수신부 버퍼 점유량(Rxbuff)과 송신부 버퍼 공백량(Txempty)을 비교하고(340단계) 340단계의 판단결과에 응답하여 시스템 버스(18)에의 접근여부를 결정한다. 즉, 긴급모드에 해당하지 않는 경우에, 수신부 버퍼 점유량(Rxbuff)이 송신부 버퍼 공백량(Txempty)보다 큰 경우 내부 중재기(230)는 수신부 버퍼(210)에 시스템 버스(18)를 허가하고(355단계) 그렇지 않은 경우 송신부 버퍼(220)에 시스템 버스(18)를 허가한다(356단계).
그러나, 긴급모드에 해당하는 경우 내부 중재기(230)는 수신부 버퍼 점유량(Rxbuff)과 송신부 버퍼 공백량(Txempty)을 비교한 후(330단계) 수신부 버퍼 점유량(Rxbuff)의 증가여부(331단계) 및 송신부 버퍼 공백량(Txempty)의 증가여부(332단계)도 판단하고, 331단계 및 332단계의 판단결과에 응답하여 시스템 버스(28)에의 접근여부를 결정한다.
즉, 긴급모드인 경우 수신부 버퍼 점유량(Rxbuff)이 송신부 버퍼 공백량(Txempty)보다 큰 경우, 내부 중재기(230)는 수신부 버퍼 점유량(Rxbuff)이 증가하는 지 판단하여(331단계) 증가하는 경우 수신부 버퍼가 시스템 버스에 접근하도록 하며(351단계) 그렇지 않으면 송신부 버퍼가 시스템 버스에 접근하도록 한다(352단계). 또한 송신부 버퍼 공백량(Txempty)이 수신부 버퍼 점유량(Rxbuff)보다 큰 경우, 내부 중재기(230)는 송신부 버퍼 공백량(Txempty)이 증가하는 지 여부를 판단하여(332단계), 증가하는 경우 송신부 버퍼가 시스템 버스에 접근하도록 하며(353단계), 그렇지 않으면 수신부 버퍼가 시스템 버스에 접근하도록 한다(354단계).
본 발명에 따르는 버퍼 제어방법에 있어서 긴급모드인지를 판단하는 단계(320단계)를 두는 이유는, 송/수신부 버퍼의 고갈이나 넘침이 임박한 경우와 그렇지 않은 경우에 대하여 내부 중재기의 중재 우선순위가 달라져야 하기 때문이다. 일반적인 경우는 송/수신부 버퍼의 넘침 또는 고갈까지의 상대적인 시간 비교를 통하여 중재의 우선순위를 정하게 된다. 그러나, 긴급모드에서는 현재 버퍼의 점유율과 동시에 버퍼의 증감상태의 정보를 동시에 고려해야 한다.
예를 들면, 수신부 버퍼 점유량(Rxbuff)이 송신부 버퍼 공백량(Txempty)보다 높다고 해도 수신부 버퍼 점유량(Rxbuff)이 감소하고 송신부 버퍼 공백량(Txempty)도 높아지는 경우에는 송신부에 버스 중재 우선순위를 주는 것이 타당하기 때문이다.
한편, 상술한 본 발명에 따르는 버퍼의 제어방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
도 4는 본 발명의 바람직한 실시예에 따른 내부 중재기(400)의 일부분을 나타낸 도면이다. 도 4에 도시된 내부 중재기(400)는 도 3에서 설명한 바와 같이 송신부 및 수신부 모두가 시스템 버스를 사용하고자 요구하는 경우(Txreq와 Rxreq가 모두 1인 경우)의 내부 중재기를 구현한 회로도이다.
도 4에 도시된 바와 같이, 내부 중재기(400)는 긴급모드(emergency mode) 판단회로(410), 제 1판단회로(420), 제 2판단회로(430), 비교회로(440) 및 논리회로(450)를 구비한다.
긴급모드 판단회로(410)는 수신부 버퍼 점유량(Rxbuff) 및 송신부 버퍼 공백량(Txempty)을 수신하여 긴급모드인지 여부를 판단하고 상기 판단결과를 출력한다. 긴급모드 판단회로(410)는 수신부 버퍼 점유량(Rxbuff)과 소정의 수신부 버퍼의 문턱점유량(Rxth)을 비교하여 그 비교결과를 출력하는 제 1비교회로(411), 송신부 버퍼 공백량(Txempty)과 소정의 송신부 버퍼의 문턱공백량(Txth)을 비교하여 그 비교결과를 출력하는 제 2비교회로(412) 및, 제 1비교회로(411) 및 제 2비교회로(412)의 출력신호를 논리곱하여 출력하는 논리곱수단(413)을 구비한다. 논리곱수단(413)은 앤드게이트(AND gate)로 구현하는 것이 바람직하다.
제 1판단회로(420)는 수신부 버퍼 점유량(Rxbuff)의 증가여부를 판단하여 그 결과를 출력한다. 제 1판단회로(420)는 수신부 버퍼 점유량(Rxbuff)을 저장하는 제 1레지스터(421) 및, 제 1레지스터(421)의 출력과 수신부 버퍼 점유량(Rxbuff)을 비교하여 비교결과인 제 1신호를 출력하는 제 3비교회로(422)를 구비한다.
제 2판단회로(430)는 송신부 버퍼 공백량(Txempty)의 증가여부를 판단하여 그 결과를 출력한다. 제 2판단회로(430)는 송신부 버퍼 공백량(Txempty)을 저장하는 제 2레지스터(431) 및, 제 2레지스터(431)의 출력과 송신부 버퍼 공백량(Txempty)을 비교하여 비교결과인 제 2신호를 출력하는 제 4비교회로(432)를 구비한다.
비교회로(440)는 송신부 버퍼 공백량(Txempty)과 수신부 버퍼 점유량(Rxbuff)을 비교하여 그 비교결과를 출력한다. 논리회로(450)는 제 1신호, 제 2신호 및 비교회로(440)의 출력신호에 응답하여 송신부 버퍼 또는 수신부 버퍼에 시스템 버스를 허가하는 허가신호(Rxgrant, Txgrant)를 출력한다.
이상에서와 같이 도면과 명세서에 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따르는 송수신부 버퍼 제어방법 및 네트워크 제어기는 송수신 경로상의 버퍼들을 통합된 각각의 가상 송수신 버퍼로 간주하여 각 가상버퍼의 상대적인 점유율 및 버퍼 점유율의 증감상태를 고려함으로써, 송수신 버퍼의 넘침과 고갈을 효과적으로 방지하거나 줄일 수 있고, 송수신 버퍼의 메모리 접근을 공평하게 중재할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 일반적인 전이중모드(full duplex) 이더넷 네트워크 제어기를 구비하는 컴퓨터 시스템을 도시한 도면이다.
도 2는 본 발명에 따른 이더넷 네트워크 제어기를 구비하는 컴퓨터 시스템을 도시한 도면이다.
도 3은 본 발명에 따른 송신부 버퍼 및 수신부 버퍼의 제어방법을 나타낸 순서도(flow chart)이다.
도 4는 본 발명의 바람직한 실시예에 따른 내부 중재기의 일부분을 나타낸 회로도이다.

Claims (10)

  1. 송신부 버퍼 또는 수신부 버퍼로부터 시스템 버스를 사용하고자 하는 요구를 수신하는 단계;
    상기 수신부 버퍼의 점유량 및 상기 송신부 버퍼의 공백량을 수신하는 단계;
    상기 수신부 버퍼의 점유량 및 상기 송신부 버퍼의 공백량을 이용하여 긴급 모드인지를 판단하는 단계;
    상기 수신부 버퍼의 점유량의 증가여부를 판단하여 제 1신호를 생성하는 단계;
    상기 송신부 버퍼의 공백량의 증가여부를 판단하여 제 2신호를 생성하는 단계;
    상기 송신부 버퍼의 공백량과 상기 수신부 버퍼의 점유량을 비교하여 그 비교결과를 출력하는 단계; 및
    상기 긴급모드 판단결과, 상기 제 1신호, 상기 제 2신호 및 상기 비교결과에 응답하여 상기 수신부 버퍼 또는 상기 송신부 버퍼에 상기 시스템 버스의 사용을 허가하는 단계를 구비하는 네트워크 제어기의 송수신 버퍼를 제어하는 방법.
  2. 제 1항에 있어서, 상기 허가하는 단계는,
    상기 송신부 버퍼 및 상기 수신부 버퍼 중 어느 하나의 버퍼로부터 상기 시스템 버스를 사용하고자 하는 요구를 수신하는 경우, 상기 요구를 송신한 송신부 버퍼 및 수신부 버퍼 중 어느 하나의 버퍼에 상기 시스템 버스의 사용을 허가하는 것을 특징으로 하는 네트워크 제어기의 송수신 버퍼를 제어하는 방법.
  3. 제 1항에 있어서, 상기 긴급모드는 상기 수신부 버퍼 및 상기 송신부 버퍼의 버퍼점유상태로부터 동시에 시스템 버스의 사용요구가 있고, 상기 수신부 버퍼가 상기 수신부 버퍼의 문턱점유량 이상 점유되어 있으며, 상기 송신부 버퍼가 상기 송신부 버퍼의 문턱공백량 이상 비어있는 경우인 것을 특징으로 하는 네트워크 제어기의 송수신 버퍼를 제어하는 방법.
  4. 제 3항에 있어서,
    상기 긴급모드 여부를 판단한 결과 상기 긴급모드가 아닌 경우, 상기 수신부 버퍼의 버퍼 점유량과 상기 송신부 버퍼의 버퍼 공백량을 비교하고, 그 비교결과에 따라 상기 송신부 버퍼 및 상기 수신부 버퍼 중 어느 하나의 버퍼에 상기 시스템 버스의 사용을 허가하며,
    상기 수신부 버퍼의 버퍼 점유량이 상기 송신부 버퍼의 버퍼 공백량보다 큰 경우 상기 수신부 버퍼에 상기 시스템 버스를 허가하고, 상기 송신부 버퍼의 버퍼 공백량이 상기 수신부 버퍼의 버퍼 점유량보다 큰 경우 상기 송신부 버퍼에 상기 시스템 버스의 사용을 허가하는 것을 특징으로 하는 네트워크 제어기의 송수신 버퍼를 제어하는 방법.
  5. 제 3항에 있어서,
    상기 긴급모드 여부를 판단한 결과 상기 긴급모드인 경우, 상기 수신부 버퍼의 버퍼 점유량과 상기 송신부 버퍼의 버퍼 공백량을 비교하고, 그 비교결과에 따라 상기 송신부 버퍼 및 상기 수신부 버퍼 중 어느 하나의 버퍼에 상기 시스템 버스의 사용을 허가하며,
    상기 수신부 버퍼의 점유량이 상기 송신부 버퍼의 공백량보다 큰 경우 상기 수신부 버퍼의 점유량이 증가상태에 있으면 상기 수신부 버퍼에 상기 시스템 버스의 사용을 허가하고,
    상기 수신부 버퍼의 점유량이 상기 송신부 버퍼의 공백량보다 적은 경우 상기 송신부 버퍼의 점유량이 감소상태에 있으면 상기 송신부 버퍼에 상기 시스템 버스의 사용을 허가하는 것을 특징으로 하는 네트워크 제어기의 송수신 버퍼를 제어하는 방법.
  6. 제 1항 내지 제 5항 중 어느 하나의 항의 방법을 컴퓨터에서 실행시킬 수 있는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  7. 송신부 버퍼 및 수신부 버퍼를 구비하는 네트워크 제어기에 있어서,
    상기 네트워크 제어기는 상기 송신부 버퍼 및 상기 수신부 버퍼를 모니터링(monitoring)하고 상기 송신부 버퍼 및 상기 수신부 버퍼로부터의 버스접근 요구에 응답하여 시스템 버스의 접근여부를 중재하는 내부 중재기를 구비하고,
    상기 내부 중재기는,
    수신부 버퍼 점유량 및 송신부 버퍼 공백량을 수신하여 상기 수신부 버퍼 점유량 및 상기 송신부 버퍼 공백량으로부터 긴급 모드인지를 판단하고 상기 판단결과를 출력하는 긴급모드 판단회로;
    상기 수신부 버퍼의 점유량의 증가여부를 판단하여 그 결과인 제 1신호를 출력하는 제 1판단회로;
    상기 송신부 버퍼의 공백량의 증가여부를 판단하여 그 결과인 제 2신호를 출력하는 제 2판단회로;
    상기 송신부 버퍼의 공백량과 상기 수신부 버퍼의 점유량을 비교하여 그 비교결과를 출력하는 비교회로; 및
    상기 판단결과, 상기 제 1신호, 상기 제 2신호 및 상기 비교결과에 응답하여 상기 수신부 버퍼 또는 상기 송신부 버퍼에 상기 시스템 버스의 사용을 허가하는 허가신호를 출력하는 논리회로를 구비하는 것을 특징으로 하는 네트워크 제어기.
  8. 제 7항에 있어서, 상기 긴급모드 판단회로는
    상기 수신부 버퍼의 점유량과 소정의 수신부 버퍼의 문턱점유량을 비교하여 그 비교결과를 출력하는 제 1비교회로;
    상기 송신부 버퍼의 공백량과 소정의 송신부 버퍼의 문턱공백량을 비교하여 그 비교결과를 출력하는 제 2비교회로; 및
    상기 제 1비교회로와 상기 제 2비교회로의 출력신호를 논리곱하여 상기 판단 결과를 생성하는 논리곱수단을 구비하는 것을 특징으로 하는 네트워크 제어기.
  9. 제 7항에 있어서, 상기 제 1판단회로는
    상기 수신부 버퍼의 점유량을 저장하는 제 1레지스터; 및
    상기 제 1레지스터의 출력과 상기 수신부 버퍼의 점유량을 비교하여 그 비교결과를 상기 제1 신호로서 출력하는 제 3비교회로를 구비하는 것을 특징으로 하는 네트워크 제어기.
  10. 제 7항에 있어서, 상기 제 2판단회로는
    상기 송신부 버퍼의 공백량을 저장하는 제 2레지스터; 및
    상기 제 2레지스터의 출력과 상기 수신부 버퍼의 점유량을 비교하여 그 비교결과를 상기 제2 신호로서 출력하는 제 4비교회로를 구비하는 것을 특징으로 하는 네트워크 제어기.
KR10-2002-0043896A 2002-07-25 2002-07-25 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기 KR100480605B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0043896A KR100480605B1 (ko) 2002-07-25 2002-07-25 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기
US10/614,951 US7251702B2 (en) 2002-07-25 2003-07-08 Network controller and method of controlling transmitting and receiving buffers of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0043896A KR100480605B1 (ko) 2002-07-25 2002-07-25 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기

Publications (2)

Publication Number Publication Date
KR20040010869A KR20040010869A (ko) 2004-02-05
KR100480605B1 true KR100480605B1 (ko) 2005-04-06

Family

ID=31492779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0043896A KR100480605B1 (ko) 2002-07-25 2002-07-25 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기

Country Status (2)

Country Link
US (1) US7251702B2 (ko)
KR (1) KR100480605B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE491291T1 (de) * 2004-01-30 2010-12-15 Ericsson Telefon Ab L M Paketablaufsteuerung zur datenstromübertragung
US7424553B1 (en) * 2004-04-15 2008-09-09 Xilinx, Inc. Method and apparatus for communicating data between a network transceiver and memory circuitry
US7797723B2 (en) * 2004-10-30 2010-09-14 Sharp Laboratories Of America, Inc. Packet scheduling for video transmission with sender queue control
JP3860192B2 (ja) * 2005-02-10 2006-12-20 株式会社ネクストマジック 通信装置
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
JP4750463B2 (ja) * 2005-05-11 2011-08-17 ルネサスエレクトロニクス株式会社 高周波電力増幅器およびそれを用いた送信器および移動体通信端末
US20070198754A1 (en) * 2006-02-07 2007-08-23 International Business Machines Corporation Data transfer buffer control for performance
US20070198730A1 (en) * 2006-02-17 2007-08-23 Via Technologies Inc. Embedded system with a bus and arbitration method for same
US7711373B2 (en) * 2006-05-11 2010-05-04 Nokia Corporation Multiradio control interface
US7657286B2 (en) 2006-05-11 2010-02-02 Nokia Corporation Multiradio control interface element in modem
TWI324305B (en) * 2006-06-14 2010-05-01 Via Tech Inc Embedded system and related buffer size determining method thereof
US7949364B2 (en) * 2006-10-03 2011-05-24 Nokia Corporation System for managing radio modems
US7668565B2 (en) * 2006-11-07 2010-02-23 Nokia Corporation Multiradio priority control based on modem buffer load
US20080291830A1 (en) * 2007-05-25 2008-11-27 Nokia Corporation Multiradio control incorporating quality of service
US7912997B1 (en) * 2008-03-27 2011-03-22 Xilinx, Inc. Direct memory access engine
KR102106541B1 (ko) 2015-03-18 2020-05-04 삼성전자주식회사 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5958936A (ja) * 1982-09-29 1984-04-04 Fujitsu Ltd パケツト交換制御方式
JPH06261052A (ja) * 1992-12-22 1994-09-16 Internatl Business Mach Corp <Ibm> 共用バスのフロー制御装置
KR20000022583A (ko) * 1998-09-18 2000-04-25 서평원 버스 마스터 예약/중재회로 및 방법
KR20000065980A (ko) * 1999-04-12 2000-11-15 김영환 에이티엠 시스템에서 셀 버스 이중화 및 제어장치
KR100280208B1 (ko) * 1997-12-31 2001-02-01 서평원 고속 아이피씨 데이타 버스의 중계용 리피트 회로
KR20030040765A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 필드버스 인터페이스 보드의 제어방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4942553A (en) * 1988-05-12 1990-07-17 Zilog, Inc. System for providing notification of impending FIFO overruns and underruns
US5440691A (en) * 1992-02-27 1995-08-08 Digital Equipment Corporation, Pat. Law Group System for minimizing underflowing transmit buffer and overflowing receive buffer by giving highest priority for storage device access
US5377184A (en) * 1992-03-02 1994-12-27 International Business Machines Corporation Method of controlling TWA link in a communications adapter by monitoring buffer fill levels
US5546543A (en) * 1993-03-26 1996-08-13 Digital Equipment Corporation Method for assigning priority to receive and transmit requests in response to occupancy of receive and transmit buffers when transmission and reception are in progress
GB2277816B (en) * 1993-05-04 1997-09-03 Motorola Inc Data communication system
US6067408A (en) * 1993-05-27 2000-05-23 Advanced Micro Devices, Inc. Full duplex buffer management and apparatus
EP0718773A1 (en) * 1994-12-19 1996-06-26 Advanced Micro Devices, Inc. Bus access arbiter
JPH08221311A (ja) * 1994-12-22 1996-08-30 Sun Microsyst Inc スーパースカラプロセッサにおけるロードバッファ及びストアバッファの優先順位の動的切換え
US5771356A (en) * 1995-01-04 1998-06-23 Cirrus Logic, Inc. Apparatus for controlling FIFO buffer data transfer by monitoring bus status and FIFO buffer thresholds
US5802153A (en) * 1996-02-28 1998-09-01 Motorola, Inc. Apparatus and method for interfacing between a communications channel and a processor for data transmission and reception
US5933413A (en) * 1997-01-13 1999-08-03 Advanced Micro Devices, Inc. Adaptive priority determination for servicing transmit and receive in network controllers
US6907048B1 (en) * 1997-10-14 2005-06-14 Alvarion Israel (2003) Ltd. Method and apparatus for transporting ethernet data packets via radio frames in a wireless metropolitan area network
US6397287B1 (en) * 1999-01-27 2002-05-28 3Com Corporation Method and apparatus for dynamic bus request and burst-length control
US6741603B2 (en) * 2001-07-09 2004-05-25 Overture Networks, Inc. Use of a circular buffer to assure in-order delivery of packets
US6832280B2 (en) * 2001-08-10 2004-12-14 Freescale Semiconductor, Inc. Data processing system having an adaptive priority controller

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5958936A (ja) * 1982-09-29 1984-04-04 Fujitsu Ltd パケツト交換制御方式
JPH06261052A (ja) * 1992-12-22 1994-09-16 Internatl Business Mach Corp <Ibm> 共用バスのフロー制御装置
KR100280208B1 (ko) * 1997-12-31 2001-02-01 서평원 고속 아이피씨 데이타 버스의 중계용 리피트 회로
KR20000022583A (ko) * 1998-09-18 2000-04-25 서평원 버스 마스터 예약/중재회로 및 방법
KR20000065980A (ko) * 1999-04-12 2000-11-15 김영환 에이티엠 시스템에서 셀 버스 이중화 및 제어장치
KR20030040765A (ko) * 2001-11-16 2003-05-23 삼성전자주식회사 필드버스 인터페이스 보드의 제어방법

Also Published As

Publication number Publication date
US20040027990A1 (en) 2004-02-12
KR20040010869A (ko) 2004-02-05
US7251702B2 (en) 2007-07-31

Similar Documents

Publication Publication Date Title
KR100480605B1 (ko) 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기
JP4778199B2 (ja) データ転送装置及びデータ転送方法
US20050102456A1 (en) Command transmission method and command transmission apparatus in pipeline bus system
KR102106541B1 (ko) 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템
US6397279B1 (en) Smart retry system that reduces wasted bus transactions associated with master retries
US7581049B2 (en) Bus controller
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
US5526495A (en) Bus control system in a multi-processor system
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
JPH06161952A (ja) アクセス要求仲裁装置
US6978329B1 (en) Programmable array-based bus arbiter
US5933616A (en) Multiple bus system bus arbitration according to type of transaction requested and the availability status of the data buffer between the buses
JP3766377B2 (ja) バス制御装置及び情報処理システム
US20160098375A1 (en) Initiating multiple data transactions on a system bus
US6701397B1 (en) Pre-arbitration request limiter for an integrated multi-master bus system
JPH1040215A (ja) Pciバス・システム
JP4625549B2 (ja) 調停システム、およびアクセスを調停する方法
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JP4862593B2 (ja) データ転送装置及び画像形成装置
US20060101173A1 (en) Pin sharing system
KR100441996B1 (ko) 직접 메모리 액세스 제어기 및 제어 방법
CN115762596A (zh) 一种mcu的存取记忆体数字电路架构
CN117009266A (zh) 一种握手协议总线仲裁模块及片上系统
JPH05189311A (ja) キャッシュメモリ・システム
JP2860733B2 (ja) バス接続装置

Legal Events

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

Payment date: 20130228

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140228

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170228

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20180228

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190228

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20200228

Year of fee payment: 16