KR100866204B1 - 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을위한 이동 단말의 데이터 흐름 제어 장치 및 방법 - Google Patents

고속 통신 기기로부터 무선 네트워크로의 역방향 통신을위한 이동 단말의 데이터 흐름 제어 장치 및 방법 Download PDF

Info

Publication number
KR100866204B1
KR100866204B1 KR1020070041333A KR20070041333A KR100866204B1 KR 100866204 B1 KR100866204 B1 KR 100866204B1 KR 1020070041333 A KR1020070041333 A KR 1020070041333A KR 20070041333 A KR20070041333 A KR 20070041333A KR 100866204 B1 KR100866204 B1 KR 100866204B1
Authority
KR
South Korea
Prior art keywords
data
packet buffer
buffer queue
packet
interface unit
Prior art date
Application number
KR1020070041333A
Other languages
English (en)
Other versions
KR20070106446A (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 삼성전자주식회사
Publication of KR20070106446A publication Critical patent/KR20070106446A/ko
Application granted granted Critical
Publication of KR100866204B1 publication Critical patent/KR100866204B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • H04W28/14Flow control between communication endpoints using intermediate storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 무선 네트워크의 단말을 통해 고속 통신 기기의 데이터를 무선 네트워크로 전송하기 위한 단말의 데이터 흐름 제어 장치 및 방법에 관한 것이다.
상기 본 발명에 따른 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을 수행하는 이동 단말의 데이터 흐름 제어 장치는, 상기 고속 통신 기기로부터 데이터를 수신하여 바이트 스트림 형태로 버퍼링하는 Rm 인터페이스부와, 상기 Rm 인터페이스부로부터의 인터럽트에 의해 호출되어, 상기 Rm 인터페이스부에 버퍼링된 데이터를 읽어내어 저장하기 위한 제1 패킷 버퍼 큐를 구비하고, 상기 제1 패킷 버퍼 큐에 저장된 데이터를 관리하기 위한 제1 링크된 리스트를 관리하는 운영체제 장치 드라이버와, 상기 제1 패킷 버퍼 큐와 동일한 버퍼 구조를 갖는 제2 패킷 버퍼 큐를 구비하고, 상기 제2 패킷 버퍼 큐에 저장된 데이터를 관리하기 위한 제2 링크된 리스트를 관리하며, 상기 제2 패킷 버퍼 큐에 저장된 데이터를 프레임 형태로 변환하여 무선 네트워크로 송신하기 위한 Um 인터페이스부와, 상기 제1 패킷 버퍼 큐에 저장된 데이터의 주소를 상기 제1 링크된 리스트에서 링크-제거하고, 상기 제2 링크된 리스트에 상기 링크-제거된 데이터의 주소를 링크시킴으로써, 상기 데이터를 상기 제1 패킷 버퍼 큐로부터 상기 제2 패킷 버퍼 큐로 전달하는 패킷 처리부와, 상기 제1 패킷 버퍼 큐의 데이터 흐름을 제어하는 제어부를 포함한다.
따라서 본 발명에 의하면, 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을 수행하는 이동 단말에서 버퍼 구조를 일원화하여 데이터 흐름을 안정적으로 제어할 수 있다.
흐름 제어, 버퍼 용량, 역방향, 패킷 처리, CTS, Rm 인터페이스, Um 인터페이스, 고속 데이터 통신

Description

고속 통신 기기로부터 무선 네트워크로의 역방향 통신을 위한 이동 단말의 데이터 흐름 제어 장치 및 방법{DATA FLOW CONTROL APPARATUS AND METHOD OF MOBILE TERMINAL FOR REVERSE COMMUNICATION FROM HIGH SPEED COMMUNICATION DEVICE TO WIRELESS NETWORK}
도 1은 종래 이동 단말에서 데이터 흐름제어 장치의 구성을 나타낸 블록도,
도 2는 도 1에 도시된 데이터 흐름 제어 장치(100)에서 데이터 전송 과정을 나타낸 블록도,
도 3은 본 발명의 실시 예에 따른 이동 단말에서 데이터 흐름제어 장치의 구성을 나타낸 블록도,
도 4는 도 3에 도시된 데이터 흐름 제어 장치에서 데이터 전송 과정을 나타낸 도면,
도 5a는 도 4의 운영체제 장치 드라이버에서 패킷 버퍼 풀의 초기 상태를 나타낸 도면,
도 5b는 도 4의 운영체제 장치 드라이버에서 패킷 버퍼 큐의 구성을 나타낸 도면,
도 5c는 도4의 패킷 처리부에서 링크 이동을 수행하는 방식을 나타낸 도면,
도 6은 도 4에 도시된 데이터 흐름 제어 장치에서의 동작을 나타낸 순서도,
도 7은 본 발명의 실시 예에 따른 버퍼 용량 산출 방법을 나타낸 도면.
본 발명은 무선 네트워크의 이동 단말에서 데이터 흐름을 제어하기 위한 장치 및 방법에 관한 것으로, 특히 컴퓨터 장치 등의 고속 통신 기기의 데이터를 무선 네트워크로 전송하기 위한 이동 단말의 데이터 흐름 제어 장치 및 방법에 관한 것이다.
무선 네트워크는 전달하고자 하는 데이터를 소정의 주파수를 통해 무선(AIR) 상으로 전송하는 시스템이다. 이러한 무선 네트워크는 멀티미디어 기술의 발전에 따라 고속 패킷 데이터를 전송하는 시스템으로 발전하고 있다. 또한 사용자의 다양한 서비스 요구를 충족시키기 위해 무선 네트워크의 단말은 범용 컴퓨터 장치와 유무선으로 연결되어 데이터 교환을 수행하거나 노트북 컴퓨터 등을 통해 무선 인터넷에 접속하기 위한 무선 모뎀의 기능을 수행하는 등 복합 통신 기기로 진화되고 있다.
컴퓨터 장치(Personal Computer : PC)와 같은 고속 통신 기기(Terminal Equipment : 이하 "TE"라 칭함)로부터 출력된 데이터를 무선 네트워크로 전송하기 위해 이동 단말(Mobile Terminal : 이하 "MT"라 칭함)을 무선 모뎀으로 이용하는 경우, 상기 MT는 상기 TE와 유선 또는 무선으로 접속되어 상기 TE로부터 출력된 데이터를 역방향 링크를 통해무선 네트워크의 기지국(Base Station : 이하 "BS"라 칭 함)으로 전송한다.
상기 TE로부터 BS로의 데이터 전송이 이루어지기 위해서는 상기 TE와 MT 그리고 상기 MT와 BS를 각각 유/무선으로 연결해주는 통신 인터페이스가 필요하다. 무선 이동통신 규격에서 상기 TE와 MT 간의 통신을 위한 인터페이스는 Rm 인터페이스라 정의하고, 상기 MT와 BS 간의 통신을 위한 인터페이스는 Um 인터페이스라 정의한다.
무선통신 기술에서 상기 Rm 인터페이스는 예를 들어, 범용 시리얼 버스(Universal Serial Bus : 이하 "USB"라 칭함.) 버전 2.0, 고속 이더넷(Fast Ethernet) 등다양한 통신 표준에 따라 수백 Mbps 전송 속도를 지원한다. 상기 Um 인터페이스는 예를 들어 동기식 단말의 경우 EV-DO(Evolution - Data Only)에서 최대 1.8Mbps의 전송 속도를 지원하고, 비동기식 단말의 경우 고속 상향 패킷 접속(High Speed Uplink Packet Access : HSUPA)에서 최대 5.8Mbps 속도를 지원한다. 즉 상기 Um 인터페이스는 상기 Rm 인터페이스에 비해 상대적으로 저속의 통신 속도를 지원함을 알 수 있다.
따라서 상기 TE로부터 처리된 데이터를 상기 MT를 통해 무선 네트워크로 전송하는 경우, 상기 Rm 인터페이스와 Um 인터페이스 간의 전송 속도 차이로 인해 데이터 전송 오류가 발생될 수 있다. 이러한 데이터 전송 오류가 발생되는 원인은 고속인 Rm 인터페이스를 통해 버스트(Burst)하게 수신되는 데이터가 상대적으로 저속인 Um 인터페이스에서 데이터 병목현상을 겪음으로써 순간적으로 버퍼 오버플로우(Overflow) 혹은 버퍼 언더런(Underrun)이 발생되기 때문이다. 따라서 Rm 인터페 이스와 Um 인터페이스 간의 전송 속도 차이로 인한 데이터 전송 오류 발생을 최소화하기 위해 Rm 인터페이스와 Um 인터페이스 간의 데이터 흐름을 안정적으로 제어할 수 있는 데이터 흐름 제어 방안이 필요하다.
이하에서는 Rm 인터페이스와 Um 인터페이스를 이용하는 종래 이동 단말의 데이터 흐름 제어 장치에 대해 설명하기로 한다.
도 1은 종래 이동 단말에서 데이터 흐름제어 장치의 구성을 나타낸 블록도이다.
도 1을 참조하면, MT에 구비되는 데이터 흐름제어 장치(100)는 TE(101)로부터 BS(102)로의 역방향 전송을 수행하기 위해 TE(101)과 MT간의 통신 인터페이스로 Rm 인터페이스부(110)를 구비하고, MT와 BS(102)간의 통신 인터페이스로 Um 인터페이스부(170)를 구비한다.
역방향 통신에 있어서 Rm 인터페이스부(110)는 TE(101)로부터 데이터를 수신하기 위한 인터페이스이다. 상기 Rm 인터페이스부(110)는 TE(101)로부터 수신되는 데이터를 일시 저장하기 위한 버퍼를 내부에 구비하고, 워터마크(Watermark)에 기반한 기본적인 흐름제어를 수행한다. 운영체제(Operating System : OS) 장치 드라이버(130)는 Rm 인터페이스부(110)로부터 전달된 데이터를 읽어서 MT내 버퍼에 저장한다. 운영체제 장치 드라이버(130)는 운영체제 응용 프로그램 인터페이스(Application Program Interface : 이하 "API"라 칭함)를 통해 상위계층 모듈로의 접근이 가능하다. 패킷처리부(150)는 운영체제 장치 드라이버(130)에서 바이트 스트림 형태로 복사한 데이터를 패킷 형태로 변환하는 처리를 수행한다. Um 인터페 이스부(170)는 패킷 처리부(150)로부터 수신한 패킷 형태의 데이터를 BS(102)로 송신하기 위한 인터페이스이다. 제어부(190)는 데이터 흐름 제어 장치(100)에서 이루어지는 통신 및 부가기능의 전반적인 동작의 제어를 수행하며, 특히 Rm 인터페이스부(110)로부터 운영체제 장치드라이버(130), 패킷처리부(150), 그리고 Um 송신 인터페이스부(170)를 경유하여 전송되는 데이터의 흐름을 제어한다.
도 2는 도 1에 도시된 데이터 흐름 제어 장치(100)에서 데이터 전송 과정을 나타낸 도면으로서, 도 2에서 도 1에 도시된 구성과 동일한 구성에 대해서는 동일한 참조번호를 사용하기로 한다.
도 2에서 Rm 인터페이스부(110)는 FIFO(First In First Out) 버퍼(111)를 구비하고, TE(101)로부터 수신되는 데이터를 FIFO 버퍼(111)에 버퍼링하여 바이트 스트림으로 일시 저장한다. 그리고 Rm 인터페이스부(110)는 상기 FIFO 버퍼(111)에 일정량 이상의 데이터가 저장되면 운영체제 장치 드라이버(130)로 인터럽트를 전송한다.
상기 인터럽트를 통해 호출된 운영체제 장치 드라이버(130)는 FIFO 버퍼(111)로부터 데이터를 읽어와 바이트 스트림 버퍼(131)에 바이트 스트림 형태로 저장한다. 여기서 상기 바이트 스트림 버퍼(131)는 TE(101)로부터 수신되는 패킷 손실을 방지하기 위해 예상되는 최대 패킷 양 만큼의 버퍼 용량을 가져야 한다. 또한 운영체제 장치 드라이버(130)는 바이트 스트림 버퍼(131)에 데이터를 저장한 후, 상위 계층인 패킷 처리부(150)로 이를 알리는 이벤트(event) 신호를 보낸다. 이 과정에서 운영체제 장치 드라이버(130)는 바이트 스트림 버퍼(131)에 데이터 저 장량이 일정량 이상이 된 경우 데이터 손실을 방지하도록 TE(101)로부터의 데이터 송신을 제한하는 CTS(Clear To Send) 제어를 수행한다.
패킷처리부(150)는 운영체제 API를 이용하여 바이트 스트림 버퍼(131)에서 필요한 만큼의 데이터를 복사한다. 복사된 바이트 스트림 형태의 데이터는 패킷 형태로 변환되어 패킷 버퍼 풀(Packet Buffer Pool)(151)에서 할당된 패킷 버퍼 큐(153) 내의 패킷 버퍼 영역에 추가된다. 즉 패킷처리부(150)는 복사한 데이터가 패킷 형태로 변환될 때마다 효과적인 패킷 처리를 위해 해당 패킷을 자체 패킷 버퍼 큐(153)에 저장한다.
Um 인터페이스부(170)는 바이트 스트림 버퍼(171)를 구비하고, 패킷처리부(150)로부터 복사한 데이터를 바이트 스트림 버퍼(171)에 저장한 후, 무선망 전송규격에 적합한 프레임형태로 변환하여 BS(102)로 전송한다.
상기한 도 2의 데이터 흐름제어 장치(100)에서는 패킷 형태의 데이터와 바이트 스트림 형태의 데이터를 각각 버퍼링하도록, 운영체제 장치드라이버(130)와 Um 송신 인터페이스부(170)는 바이트 스트림 버퍼(131,171)를 구비하고, 패킷처리부(150)는 패킷 버퍼 풀(151)과 패킷 버퍼 큐(153)를 구비한다. 따라서 종래 데이터 흐름제어 장치(100)에서 버퍼구조는 Rm 인터페이스부(110)에서 Um 인터페이스부(170)까지 역방향 전송 경로에 관여하는 각 모듈들이 각기 다른 버퍼 구조를 사용함으로 인해 일관되고 정확한 흐름제어가 어려운 문제점이 발생된다.
또한 종래 데이터 흐름제어 장치(100)에서 제어부(190)는 각기 다른 버퍼 구조를 사용하는 각 모듈들을 개별적으로 제어할 수 있는 인터페이스가 있어야 한다. 즉, Um 인터페이스부(170)에 버퍼 풀(Full) 상태가 발생된 경우에 TE(101)측으로 데이터 전송의 일시 중지를 요청하며, 이러한 일시 중지 요청은 단계적으로 Rm 인터페이스부(110)까지 전달되어 CTS 제어에 따라 데이터 전송 중지가 수행된다.
그러나 상기한 제어부(190)에서 수행되는 데이터 흐름 제어 과정은 데이터 흐름제어 장치(100)의 각 모듈들간에 태스크 스케줄링(Task Scheduling)을 거쳐 수행되므로 Um 인터페이스부(170)의 버퍼 풀 상태가 Rm 인터페이스부(110)에 반영되는데 시간차가 발생하여 데이터 흐름 제어가 원하는 시점에 실시간으로 이루어지지 않는다. 따라서 종래 데이터 흐름제어 장치(100)는 불필요하게 많은 양의 데이터를 각 프로토콜 스택에 누적시켜 상위 계층에서의 재전송을 일으키게 되어 성능의 감소를 유발시킨다.
또한 상기한 종래 흐름 제어 과정에서 발생되는 시간차는 Rm 인터페이스부(110)의 FIFO 버퍼(111)가 비워진 경우에도 Rm 인터페이스부(110)에서의 데이터 수신 가능 상태를 지연시켜 BS(102)로의 데이터 전송이 일시적으로 중단되는 버퍼 언더런(Buffer Underrun)을 발생시킨다.
상기 설명한 바와 같이, 종래 데이터 흐름 제어 장치에서는 상위 계층에 패킷이 얼마나 적체되어 있는지를 모르는 상태에서 흐름 제어가 수행되므로 Um 인터페이스부에서 버퍼 오버플로우 및 언더런의 가능성이 존재하며, 이에 대한 예측이 어려워 필요 이상의 버퍼 용량을 확보해야 하는 부담이 있다. 그러나 단말의 메모리 증가는 직접적으로 단말의 가격 경쟁력을 떨어뜨리는 요인이 될 수 있으며, 오버플로우 및 언더런은 패킷 전송에서의 성능 저하를 일으킨다. 또한 각기 다른 모 듈들이 다른 구조를 갖는 버퍼들을 관리하는 종래 기술의 경우, 타 모듈의 버퍼 정보를 공유하기 위해서는 각 모듈의 S/W 독립성을 침범해야 하므로 전체 역방향 링크에 누적되어 있는 버퍼량을 실시간으로 측정하고 데이터 흐름을 제어하는 것은 어려운 일이다. 그리고 피드백 메시지를 통해 모듈간 흐름 제어를 수행할 수 도 있으나 이 경우 버퍼 제어에 있어서 실시간으로 동기를 맞추어야 하는 어려움이 존재한다.
즉 종래 데이터 흐름제어 장치에서는 각 모듈에서 흐름 제어가 분산되어 있고, 적절한 시점에 흐름 제어가 이루어지지 않아 데이터 전송속도 저하 및 전송 변이가 발생할 가능성이 있다. 따라서 이러한 문제를 해결하기 위해 복잡한 프로세싱이 요구된다. 또한 Rm 인터페이스부에 저장된 패킷을 상위 계층으로 전달하는 과정에서 수행되는 버퍼 복사(즉, Data Copy)로 인해 제어부의 프로세싱이 가중되고, 향후 업그레이드될 고속 데이터 통신에 있어 성능 문제를 일으킬 소지가 있어 이에 대한 해결책이 요망된다.
본 발명은 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을 수행하는 이동 단말에서 데이터 흐름을 안정적으로 제어하는 장치 및 방법을 제공한다.
또한 본 발명은 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을 수행하는 이동 단말에서 최적의 데이터 흐름 제어를 위한 방법 및 장치를 제공한다.
또한 본 발명은 고속 패킷 데이터 통신에서 안정적인 성능을 제공하는 데이터 흐름 제어 장치 및 방법을 제공한다.
상기 본 발명에 따른 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을 수행하는 이동 단말의 데이터 흐름 제어 장치는, 상기 고속 통신 기기로부터 데이터를 수신하여 바이트 스트림 형태로 버퍼링하는 Rm 인터페이스부와, 상기 Rm 인터페이스부로부터의 인터럽트에 의해 호출되어, 상기 Rm 인터페이스부에 버퍼링된 데이터를 읽어내어 저장하기 위한 제1 패킷 버퍼 큐를 구비하고, 상기 제1 패킷 버퍼 큐에 저장된 데이터를 관리하기 위한 제1 링크된 리스트를 관리하는 운영체제 장치 드라이버와, 상기 제1 패킷 버퍼 큐와 동일한 버퍼 구조를 갖는 제2 패킷 버퍼 큐를 구비하고, 상기 제2 패킷 버퍼 큐에 저장된 데이터를 관리하기 위한 제2 링크된 리스트를 관리하며, 상기 제2 패킷 버퍼 큐에 저장된 데이터를 프레임 형태로 변환하여 무선 네트워크로 송신하기 위한 Um 인터페이스부와, 상기 제1 패킷 버퍼 큐에 저장된 데이터의 주소를 상기 제1 링크된 리스트에서 링크-제거하고, 상기 제2 링크된 리스트에 상기 링크-제거된 데이터의 주소를 링크시킴으로써, 상기 데이터를 상기 제1 패킷 버퍼 큐로부터 상기 제2 패킷 버퍼 큐로 전달하는 패킷 처리부와, 상기 제1 패킷 버퍼 큐의 데이터 흐름을 제어하는 제어부를 포함한다.
또한 상기 본 발명에 따른 고속 통신 기기로부터 이동통신 시스템으로의 역방향 통신을 수행하도록 상기 고속 통신 기기와 통신하기 위한 Rm 인터페이스부와 상기 이동통신 시스템과 통신하기 위한 Um 인터페이스부를 구비하는 이동 단말의 데이터 흐름 제어 방법은, 상기 고속 통신 기기로부터 데이터를 수신하여 상기 Rm 인터페이스부에 바이트 스트림 형태로 버퍼링하는 과정과, 상기 Rm 인터페이스부로부터의 인터럽트에 의해 운영체제 장치 드라이버를 호출하여, 상기 Rm 인터페이스 부에 버퍼링된 데이터를 읽어내어 상기 운영체제 장치 드라이버 내의 제1 패킷 버퍼 큐에 저장하는 과정과, 상기 제1 패킷 버퍼 큐에 저장된 데이터의 주소를 상기 제1 패킷 버퍼 큐를 관리하기 위한 제1 링크된 리스트에서 링크-제거하고, 상기 Um 인터페이스부에 구비되는 제2 패킷 버퍼 큐를 관리하기 위한 제2 링크된 리스트에 상기 링크-제거된 데이터의 주소를 링크시킴으로써, 상기 데이터를 상기 제1 패킷 버퍼 큐로부터 상기 제2 패킷 버퍼 큐로 전달하는 과정과, 상기 Um 인터페이스부에서 상기 제2 패킷 버퍼 큐에 저장된 데이터를 프레임 형태로 변환하여 무선 네트워크로 송신하는 과정을 포함한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다. 또한 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 한다.
먼저 본 발명의 기본 개념을 설명하면, 본 발명은 USB 단자 등을 통해 고속으로 데이터 통신을 수행하는 고속 통신 기기와 접속되어 무선 네트워크로의 역방향 통신을 수행하는 이동 단말에서 전송 데이터의 흐름 제어를 최적화하도록 데이터 흐름 제어 장치내의 Rm 인터페이스부로부터 Um 인터페이스부에 이르는 전송 경로상에 구비되는 버퍼들의 구조를 일원화한다. 이로써 종래 서로 다른 버퍼들 사용 으로 인해 빈번하게 발생되던 오버플로우 및/또는 언더런의 문제를 해결함과 아울러 인접 모듈들간의 버퍼 복사 동작을 생략하고, 제어부의 부담을 경감시킴을 특징으로 한다.
또한 본 발명에서는 TE로부터 Um 인터페이스부로 패킷이 전달되는 최대 지연 시간을 반영하여, 데이터 흐름 제어 장치의 Um 인터페이스부에서 발생되는 언더런 현상을 방지할 수 있는 최적의 버퍼 용량을 산출한다.
이하 도면을 참조하여 본 발명의 데이터 흐름제어 장치 및 방법을 설명하기로 한다.
도 3은 본 발명의 실시 예에 따른 이동 단말에서 데이터 흐름제어 장치의 구성을 나타낸 블록도이다.
도 3에서 Rm 인터페이스부(310)는 TE(101)로부터 데이터를 수신하기 위한, 일 예로서 USB와 같은 인터페이스이다. 운영체제 장치 드라이버(330)는 Rm 인터페이스부(310)로부터 데이터를 읽어서 후술할 패킷 버퍼 큐(도시하지 않음)에 저장한 후, 저장된 데이터를 패킷 처리부(350)로 전달한다. 이때 본 발명의 운영체제 장치 드라이버(330)는 도 1에서 설명한 종래 운영체제 장치 드라이버(130)에서와 같은 패킷에서 바이트 스트림 형태로의 데이터 변환 동작이 요구되지 않는다. 상기 패킷 처리부(350)는 링크 이동을 통해 상기 패킷 버퍼 큐에 저장된 데이터를 Um 인터페이스부(370)로 패킷 형태로 전달한다.
상기 Um 인터페이스부(370)는 TE(101)로부터 수신한 데이터를 상기 패킷 처리부(350)로부터 패킷 형태로 전달받아 BS(102)로 송신하기 위한, 일 예로서 무선 링크 프로토콜(Radio Link Protocol: 이하 "RLP"라 칭함) 및 매체 액세스 제어(Media Access Control)과 같은 인터페이스이다.
그리고 제어부(390)는 통신 및 부가기능의 전반적인 동작의 제어를 수행하며, 운영체제 장치 드라이버(330)의 데이터 흐름을 제어한다.
도 4는 도 3에 도시된 데이터 흐름 제어 장치(300)에서 데이터 전송 과정을 나타낸 도면으로서, 도 4에서 도 3에 도시된 구성과 동일한 구성에 대해서는 동일한 참조번호를 사용하기로 한다.
도 4에서 Rm 인터페이스부(310)는 FIFO 버퍼(311)를 구비하고, TE(101)로부터 수신되는 데이터를 FIFO 버퍼(311)에 버퍼링하여 바이트 스트림 형태로 일시 저장한다. 그리고 Rm 인터페이스부(310)는 상기 FIFO 버퍼(311)에 일정량 이상의 데이터가 저장되면 운영체제 장치 드라이버(330)로 인터럽트를 전송한다.
상기 인터럽트를 통해 호출된 운영체제 장치 드라이버(330)는 FIFO 버퍼(311)로부터 데이터를 읽어와 패킷 버퍼 풀(Pool)(331)에서 할당된 패킷 버퍼에 데이터를 저장한 후, 패킷 버퍼를 패킷 버퍼 큐(335)에 넣는다. 이 과정에서 운영체제 장치 드라이버(330)는 제어부(390)의 제어하에 패킷 버퍼 큐(335)에 데이터 저장량이 일정량 이상이 된 경우 데이터 손실을 방지하도록 TE(101)로부터의 데이터 송신을 제한하는 본 발명에 따른 CTS(Clear To Send) 제어를 수행한다. 본 발명에 따른 CTS 제어는 Um 인터페이스부(370)의 데이터 전송 특성을 고려하여 패킷 버퍼 큐(335)가 비워지는 시간을 예측하고, Um 인터페이스부(370)내 패킷 버퍼 큐(335)의 저장량이 일정량 이상이 된 경우 데이터 손실을 방지하도록 최적의 CTS 대기시간을 결정한다. 본 발명에 따른 CTS 제어 방식은 하기 도 6에서 상세하게 설명하기로 한다. 아울러 상기 운영체제 장치 드라이버(330)는 제어부(390)와 함께 하나의 블록(혹은 모듈)으로 구성되는 것도 가능할 것이다.
패킷처리부(350)는 운영체제 장치 드라이버(330)의 데이터에 대해 링크 이동만을 통해 상위 계층으로의 전송을 수행한다. 이때 패킷 처리부(350)는 필요한 경우 패킷 버퍼 큐(335)의 데이터에 대해 패킷 형태로의 변환을 수행할 수 있다.
Um 인터페이스부(370)는 운영체제 장치 드라이버(330)에 구비된 패킷 버퍼 큐(335)와 동일한 형태의 패킷 버퍼 큐(371)를 구비하고, 패킷 처리부(350)의 링크 이동을 통해 전달받은 패킷을 무선망 전송규격에 적합한 프레임형태로 변환하여 BS(102)로 전송한다.
상기한 도 4의 데이터 흐름 제어 장치(300)는 전송 데이터를 패킷 형태로 처리하도록 운영체체 장치드라이버(330)와 Um 인터페이스부(370)에 일원화된 패킷 버퍼 큐(335,371)를 채용하였다.
그리고 상기 운영체제 장치 드라이버(330)에서 패킷 버퍼 큐(335)는 운영체제 장치 드라이버(330)에 의해 참조되기 위한 제1 포인터들에 의해 관리되며, 상기 Um 인터페이스부(370)에서 관리되는 패킷 버퍼 큐(371)는 Um 인터페이스부(370)에 의해 참조되기 위한 제2 포인터들에 의해 관리된다. 따라서 운영체제 장치 드라이버(330)로부터 Um 인터페이스부(370)로의 패킷 전송은 패킷 처리부(350)에서 상기 포인터들의 재설정에 의해 수행되며, 이를 링크 이동이라 칭한다. 따라서 본 발명은 전반적으로 일원화된 패킷 버퍼 큐 구조를 적용하여 일관된 버퍼 제어가 가능 하다.
즉, Rm 인터페이스(310)로부터 수신된 데이터는 동일한 데이터 형태를 유지하면서 패킷 버퍼 큐(335)의 포인터(Pointer)들의 재설정에 의해 Um 인터페이스부(370)로 최종 전달된다. 상기 패킷 버퍼 큐(335, 371)를 이용하여, Rm 인터페이스부(310)에서 수신된 데이터를 Um 인터페이스부(370)로 전송하는 링크 이동 방식은 아래 도 5a 내지 도 5c에서 상세히 설명하기로 한다. 또한 운영체제 장치 드라이버(330)내의 패킷 버퍼 풀(331)로부터 할당되어 사용되고 있는 패킷버퍼 양은 전체 데이터 스택에 누적된 데이터량과 일치하므로 흐름제어를 정확히 수행할 수 있으며, 각 모듈간에는 종래와 같은 데이터 복사 동작이 요구되지 않아 고속 데이터 통신에 유리하다.
이하, 도 5a 내지 도 5c에서 패킷 버퍼 큐(335, 371)를 이용하여 Rm 인터페이스(310)에서 수신된 데이터를 Um 인터페이스부(370)로부터의 데이터를 Um 인터페이스부(370)로 전송하는 방식을 설명하기로 한다.
도 5a는 도 4의 운영체제 장치 드라이버에서 패킷 버퍼 풀의 초기 상태를 나타낸 도면이다.
도 5a에서 패킷 버퍼 풀(331)은 패킷 버퍼 큐에 포함된 모든 패킷 버퍼 영역들에 대한 개별 정보를 관리하는 개체이다. 각 패킷 버퍼 영역은 256 바이트(Byte)의 단위버퍼로 구성된다. 이에 따라 상기 패킷 버퍼 풀(331)은 패킷 버퍼 큐에 포함된 모든 단위버퍼들에 대하여 개별적인 주소 정보와 사용상태를 관리한다.
또한 패킷 버퍼 풀(331)의 레코드(Record)는 패킷 버퍼 영역들의 주소를 가 리킨다. 그리고 패킷 버퍼 풀(331)에서 사용되지 않은 패킷 버퍼 영역 및 반환된 패킷 버퍼 영역의 사용상태는 [플래그(Flag)=0]으로 설정되고, 사용된 패킷 버퍼 영역의 사용상태는 [플래그=1]로 설정된다. 초기 상태에서 패킷 버퍼 풀(331)의 모든 레코드에 대한 플래그는 0, 즉 '사용되지 않음'으로 설정되어 있다.
도 5b는 도 4의 운영체제 장치 드라이버에서 패킷 버퍼 큐의 구성을 나타낸 도면이다.
도 5b를 참조하면, 운영체제 장치 드라이버(330)는 FIFO 버퍼(311)로부터 수신된 데이터량만큼 패킷 버퍼 풀(331)에서 패킷 버퍼 영역들을 할당받는다. 이때 패킷 버퍼 풀(331)에서 할당된 패킷 버퍼 영역들의 레코드들에 대한 각 사용상태는 [플래그(Flag)=1]로 설정되어 '사용되고 있음'을 표시한다. 즉, 패킷 버퍼 풀(331)에서 버퍼 영역의 할당 및 반환이 발생할 때마다 현재 사용되고 있는 패킷 버퍼 영역들의 수 즉, 사용상태가 관리된다.
상기한 패킷 버퍼 풀(331)에서 사용상태 관리 방식은 예를 들어, 도 5b와 같이 나타낼 수 있다. 도 5b에서 패킷 버퍼 풀(331)은 현재 3개의 패킷 버퍼 영역 인 '0x10000000', '0x10000100' 및 '0x10000200'가 할당된 사용상태들을 관리함을 나타낸다.
운영체제 장치 드라이버(330)는 상기 할당된 패킷 버퍼 영역들에 데이터를 저장한 후, 패킷 버퍼 큐(335)의 제1 헤드 포인터와 제1 테일 포인터에 패킷 버퍼 영역들을 도 5b와 같이 링크시킨다. 다시 말해서 패킷 버퍼 큐(335)의 제1 헤드 포인터는 운영체제 장치 드라이버(330)에서 사용 중인 첫번째 패킷 버퍼 영역의 주소 인 '0x10000000'을 저장하고 있는 멤버(Element #1)를 가리키며, 제1 테일 포인터는 운영체제 장치 드라이버(330)에서 사용중인 마지막 패킷 버퍼 영역의 주소인 '0x10000200'을 저장하고 있는 멤버(Element #3)를 가리킨다. 상기 패킷 버퍼 큐(335)는 링크된 리스트(linked list) 형태로 구성되며, 리스트의 각 멤버(Elements)는 개별 패킷 버퍼 영역에 대한 정보 즉, 개별 패킷 버퍼 영역의 주소와 개별 패킷 버퍼 영역에 저장된 데이터 크기 및 다음 패킷 버퍼 영역을 관리하는 멤버(Element)를 지시하는 다음 포인터를 저장하고 있다.
도 5c는 도 4의 패킷 처리부에서 링크 이동을 수행하는 방식을 나타낸 도면이다.
도 5c를 참조하면, 필요한 경우 패킷 처리부(350)는 패킷 버퍼 큐(335)에 링크된 패킷 버퍼 영역들의 데이터를 패킷 형태로 변환 및 처리한다. 패킷 처리부(350)에서 패킷 변환 처리가 완료되면 해당 패킷 버퍼 영역의 데이터는 Um 인터페이스부(370)로 전달되어 네트워크로 전송되는데, 이를 위해 상기 패킷 버퍼 영역의 데이터는 메모리 복사를 거치지 않고, Um 인터페이스부(370)에서 관리되는 포인터들에 재링크된다. 즉, 도 5c에서 운영체제 장치 드라이버(330)에서 관리되는 링크된 리스트의 첫번째 멤버(Element#1)는 상기 운영체제 장치 드라이버(330)의 링크된 리스트에서 링크-제거(de-link)되고, Um 인터페이스부(370)에서 관리되는 링크된 리스트에 링크된다. 다시 말해서 운영체제 장치 드라이버(330)의 제1 헤드 포인터는 첫번째 멤버(Element #1)에서 두번째 멤버(Element#2)를 가리키도록 재설정되며, Um 인터페이스부(370)의 제2 헤드 포인터가 상기 첫번째 멤버(Element #1)를 가리키도록 재설정된다. Um 인터페이스부(370)에서 관리하는 패킷 버퍼 영역이 단지 하나뿐인 경우, 패킷 버퍼 큐(371)의 제2 테일 포인터는 제2 헤드 포인터와 동일한 위치를 지시한다.
이에 따라 운영체제 장치 드라이버(330)에서 패킷 버퍼 큐(371)로 데이터가 이동되는 과정에서도 패킷 버퍼 큐(335)의 데이터는 변경 없이 그대로 유지된다.도 6은 도 4에 도시된 데이터 흐름 제어 장치에서의 동작을 나타낸 순서도이다.
먼저 본 명세서에서 CTS 제어는 TE(101)로부터 데이터를 수신할 수 있는 상황인지 아닌지 확인하여 TE(101)의 전송 동작을 제어하는 것을 의미한다. CTS 온(On)상태 일 경우 데이터 흐름 제어 장치(100)는 TE(101)로부터 데이터를 수신하고, CTS 오프(Off)상태 일 경우 TE(101)로부터 데이터 송신이 제한된다.
그리고 도 6의 CTS_ON_WAIT 타이머는 CTS Off후로부터 Um 인터페이스부(370)까지 데이터가 전달되어 최종적으로 무선으로 송신되기까지 걸리는 시간(이하, "CTS 대기 시간"이라 칭함)을 카운트한다. 상기 CTS 대기 시간의 최적치는 Um 인터페이스(370)의 데이터 전송특성을 고려하여 패킷 버퍼 큐가 적절한 만큼의 비워지는 시간을 예측하여 결정된다. 즉 상기 CTS 대기 시간은 CTS 오프 상태에서 CTS 온 상태로 다시 복귀하는 최적의 시간을 카운트하기 위한 것이다.
도 6의 동작을 살펴보면, 601 단계에서 제어부(390)는 현재 CTS 온 상태인지 오프 상태인지 확인하여 CTS 오프 상태인 경우 603 단계로 진행한다. 상기 603 단계에서 제어부(390)는 CTS 대기 타이머(CTS_ON_WAIT 타이머)를 통해 설정된 CTS 대기 시간이 경과되었는지 확인한다. 상기 확인 결과 CTS 대기 시간이 경과된 경우 제어부(390)는 605 단계로 진행하여 CTS 온 상태로 전환하여 TE(101)로부터의 데이터 수신을 재개하고, CTS 대기 시간이 경과되지 않은 경우 CTS 대기 시간 동안 CTS 오프 상태를 유지한다.
상기 601 단계에서 CTS 오프 상태가 아닌 경우 607 단계로 진행한다. 607 단계에서 Rm 인터페이스부(310)는 TE(101)로부터 전송된 데이터를 수신한다. 상기 수신된 데이터는 FIFO(311) 버퍼에 저장된다. 그리고 Rm 인터페이스부(310)는 상기 FIFO 버퍼(311)에 일정량 이상의 데이터가 저장되면 운영체제 장치 드라이버(330)로 인터럽트를 전송한다. 상기 인터럽트를 통해 호출된 운영체제 장치 드라이버(330)는 609 단계 내지 613 단계에서 패킷 버퍼 풀(331)에서 패킷 버퍼 영역들을 할당하고, FIFO 버퍼(311)로부터 읽어온 데이터를 할당된 패킷 버퍼 영역들에 저장한 후 패킷 버퍼 큐(335)에 넣는다.
615 단계에서 제어부(390)는 패킷 버퍼 풀(331)에서 할당 받아 사용한 버퍼 영역 개수를 카운트 하면서 패킷 버퍼 풀(331)로부터 할당된 버퍼 영역 개수가 일정 사용량(nTHRESHOLD)을 초과하는지 검사한다. 검사결과 일정 사용량을 초과하는 경우 617 단계에서 제어부(390)는 CTS 오프상태로 전환하여 Rm 인터페이스부(310)가 TE(101)로부터 더 이상 데이터를 수신하지 못하도록 하고, 619 단계에서 CTS 오프 상태가 유지되는 CTS 대기 시간을 카운트하는 타이머를 구동 시킨다. 그리고 상기 615 단계의 검사결과 패킷 버퍼 풀(331)로부터 할당된 버퍼 영역 개수가 상기 사용량을 초과하지 않는 경우 CTS 온 상태를 그대로 유지한다.
상기한 도 6의 데이터 흐름 제어 과정에서 데이터 흐름 제어 장치의 각 모듈들(기능 블록 혹은 Task)에 구비되는 버퍼들은 데이터 스택에 얼마나 많은 데이터가 누적되어 있는지를 정확히 측정할 수 있도록 도 4의 구성 예와 같이 일원화된 버퍼 구조를 갖는다. 따라서 상기한 본 발명에 의하면, 패킷 버퍼 풀(331)로부터 할당되어 사용되고 있는 패킷버퍼 양만을 확인하여도 전역적인 흐름 제어가 가능하므로 제어부(390)의 부담이 경감된다.
도 7은 본 발명의 실시 예에 따른 버퍼 용량 결정 방법을 나타낸 도면이다.
먼저 본 발명의 버퍼 용량 결정 방법에서는 CTS 대기 시간(TCTS_ON_WAIT), 전송 지연 시간(TTRANSFER_DELAY), 그리고 플러쉬 시간(TRLP_FLUSH_TIME)을 다음과 같이 정의하여 사용한다.
1. CTS 대기 시간(TCTS _ON_WAIT)(701) 은 도 6에서와 같이 CTS 오프(Off) 후 Um 인터페이스부(370)에서 일정량의 데이터가 무선 네트워크로 송신되고 일정량의 가용 버퍼 용량이 확보될 것을 예측하여 CTS 온(On) 상태로 복귀하기 위한 대기 시간이다.
2. 전송 지연 시간(TTRANSFER _DELAY)(703)은 운영 체제 장치 드라이버(330)에서 데이터를 수신한 순간부터 패킷 버퍼 풀(331)에서 패킷 버퍼들을 할당받아 데이터를 저장한 후 패킷 버퍼 큐(335)에 넣은 다음 Um 인터페이스부(370)를 통해 데이터가 최종적으로 무선 네트워크로 송신되는 데까지 걸리는 시간이다. 상기 전송 지연 시간(TTRANSFER_DELAY)(703)은 단말의 운영 체제(OS)에서 발생되는 태스크 스케줄링 지연(Task Scheduling Delay) 시간을 포함할 수 있다.
3. 플러쉬 시간(TRLP _FLUSH_TIME)(705)은 Um 인터페이스부(370)에서 송신한 데이터를 패킷 버퍼 큐에서 비우는 시점을 판단하기 위해 대기하는 시간이다.
이하 상기 정의한 세 개의 시간을 사용하여 데이터 스택에서 사용하는 최적의 버퍼 용량 산출 방법을 상세히 설명한다.
버퍼 용량은 Um 인터페이스부(370)의 RLP(Radio Link Protocol) 데이터 전송 블록에서 더 이상 보낼 데이터가 없게 되는 상태(버퍼 언더런 상태)를 방지하는 수준에서 결정된다. 버퍼 언더런을 발생시키는 최악의 시나리오는 RLP에서 맨 처음 송신된 프레임이 유실되고, 나머지 모든 프레임이 잘 전송된 경우에 플러쉬 시간(TRLP_FLUSH_TIME)(705)의 만료로 인해 RLP 전송 큐(패킷 버퍼 큐)가 일시에 비워지고 뒤늦게 CTS On(TCTS_ON_WAIT)이 된 후 수신한 데이터가 Um 인터페이스부(370)까지 전달되는데 걸리는 전송 지연 시간(TTRANSFER_DELAY)(703)이 가중되는 경우이다. 이동통신 MAC 계층에서의 Um 인터페이스부는 매 프레임마다 시퀀스를 붙여서 전송하며 재전송을 위해 버퍼링이 요구된다. 그러나 모든 프레임을 버퍼링을 할 수는 없으므로 peer측에서 정상적으로 수신했다는 응답이 오거나, 플러쉬 시간(TRLP_FLUSH_TIME)(705)이 만료되는 경우에 재전송버퍼의 내용을 비운다.
즉 RLP 계층에서는 SDU(Service Data Unit)를 작은 크기의 프레임으로 분할 하고, 매 프레임마다 일련번호를 넣어 전송하며 수신측에서 ACK(Acknowledgment) 신호가 오면 버퍼링하고 있던 데이터를 삭제하며, ACK신호가 전송되지 않으면 재전송을 위해 일정시간동안 버퍼링을 수행한다. 중간에 프레임을 잃어버리면, 그 이후에 전송된 프레임도 잃어버린 프레임의 재전송이 완료될 때까지 같이 버퍼링된다. 이때 잃어버린 프레임의 재전송이 완료되면, 버퍼링 되어있던 모든 프레임이 일시에 삭제된다.
Um 무선링크 송신부(370)에서의 언더런을 방지하려면 플러쉬 시간(TRLP_FLUSH_TIME)(705)동안 데이터가 최대로 버퍼링되어 있다가 일시에 삭제되는 경우에도 계속해서 다음 데이터를 전송할 수 있도록 해야 하며, 플러쉬 시간(TRLP_FLUSH_TIME)(705)동안 전송될 최대 데이터를 확보해야 한다. 따라서 운영체제 장치 드라이버(330)의 최대 버퍼 용량은 (TRLP_FLUSH_TIME + TCTS_ON_WAIT + TTRANSFER_DELAY)동안 물리계층에서 최대 전송 속도로 송신할 수 있는 데이터의 양을 이용하여 산출할 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상 설명한 바와 같이 본 발명에 의하면, 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을 수행하는 이동 단말에서 버퍼 구조를 일원화하여 데이터 흐름을 안정적으로 제어할 수 있다.
또한 본 발명에 의하면, 고속 데이터 처리가 요구되는 무선 환경에서 Rm 인터페이스와 Um 인터페이스를 사용하는 이동 단말의 최적 버퍼 용량 산출에 있어 안정적인 기준을 제시하며, 버퍼 사용량을 줄일 수 있다.
또한 본 발명에 의하면, 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을 수행하는 이동 단말의 데이터 흐름 제어 장치에서 각 모듈간에 발생되던 버퍼 복사(Buffer Copy) 과정을 제거하여 제어 부담을 줄일 수 있다.
또한 본 발명에 의하면, 데이터 흐름 제어 장치의 Rm 인터페이스에 Um 인터페이스의 전송 프로토콜 특성을 반영하면서 운영 체제 장치 드라이버의 고유 성격을 유지할 수 있다.
또한 본 발명에 의하면, 데이터 흐름 제어 장치에서 상위 계층에 종속적이지 않은 흐름 제어 방법을 사용함에 따라 소프트웨어 요소로서의 재사용성에 완벽히 부합한다.

Claims (11)

  1. 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을 수행하는 이동 단말의 데이터 흐름 제어 장치에 있어서,
    상기 고속 통신 기기로부터 데이터를 수신하여 바이트 스트림 형태로 버퍼링하는 Rm 인터페이스부와,
    상기 Rm 인터페이스부로부터의 인터럽트에 의해 호출되어, 상기 Rm 인터페이스부에 버퍼링된 데이터를 읽어내어 저장하기 위한 제1 패킷 버퍼 큐를 구비하고, 상기 제1 패킷 버퍼 큐에 저장된 데이터를 관리하기 위한 제1 링크된 리스트를 관리하는 운영체제 장치 드라이버와,
    상기 제1 패킷 버퍼 큐와 동일한 버퍼 구조를 갖는 제2 패킷 버퍼 큐를 구비하고, 상기 제2 패킷 버퍼 큐에 저장된 데이터를 관리하기 위한 제2 링크된 리스트를 관리하며, 상기 제2 패킷 버퍼 큐에 저장된 데이터를 프레임 형태로 변환하여 상기 무선 네트워크로 송신하기 위한 Um 인터페이스부와,
    상기 제1 패킷 버퍼 큐에 저장된 데이터의 주소를 상기 제1 링크된 리스트에서 링크-제거하고, 상기 제2 링크된 리스트에 상기 링크-제거된 데이터의 주소를 링크시킴으로써, 상기 데이터를 상기 제1 패킷 버퍼 큐로부터 상기 제2 패킷 버퍼 큐로 전달하는 패킷 처리부와,
    상기 제1 패킷 버퍼 큐의 데이터 흐름을 제어하는 제어부를 포함하는 이동 단말의 데이터 흐름 제어 장치.
  2. 제 1 항에 있어서,
    상기 제1 및 제2 패킷 버퍼 큐들에 저장된 데이터의 주소들은
    상기 제1 및 제2 링크된 리스트들의 시작 주소 및 끝 주소를 각각 나타내는 헤드 포인터들 및 테일 포인터들로 관리되는 이동 단말의 데이터 흐름 제어 장치.
  3. 제 1 항에 있어서,
    상기 패킷 처리부는,
    상기 제1 패킷 버퍼 큐에 저장된 데이터를 상기 Um 인터페이스부를 통해 전송 가능한 패킷 형태로 변환 처리하는 이동 단말의 데이터 흐름 제어 장치.
  4. 제 1 항에 있어서,
    상기 제어부는,
    상기 제1 패킷 버퍼 큐에 저장된 데이터의 버퍼량이 일정 임계 값을 초과할 때 CTS(Clear To Send) 대기 타이머에 의해 계수된 소정 대기 시간 동안 상기 고속 통신 기기로부터의 수신을 중단하도록 제어하는 이동 단말의 데이터 흐름 제어 장치.
  5. 제 4 항에 있어서,
    상기 제1 패킷 버퍼 큐의 용량은,
    상기 대기시간과, 상기 운영체제 장치 드라이버로부터 상기 Um 인터페이스부로 상기 패킷이 전달되기까지 걸리는 지연시간과, 상기 Um 인터페이스부의 버퍼 언더런을 방지하기 위해 설정된 버퍼링 시간이 합산된 시간 동안 물리 계층에서 최대 전송속도로 전송할 수 있는 데이터 량으로 결정되는 이동 단말의 데이터 흐름 제어 장치.
  6. 제 1 항에 있어서,
    상기 운영체제 장치 드라이버는,
    상기 제1 패킷 버퍼 큐에 상기 Rm 인터페이스부로부터의 데이터를 저장할 패킷 버퍼 영역의 주소들 및 상기 주소들의 사용 상태를 관리하기 위한 패킷 버퍼 풀을 구비하는 이동 단말의 데이터 흐름 제어 장치.
  7. 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을 수행하도록 상기 고속 통신 기기와 통신하기 위한 Rm 인터페이스부와 상기 무선 네트워크와 통신하기 위한 Um 인터페이스부를 구비하는 이동 단말의 데이터 흐름 제어 방법에 있어서,
    상기 고속 통신 기기로부터 데이터를 수신하여 상기 Rm 인터페이스부에 바이트 스트림 형태로 버퍼링하는 과정과,
    상기 Rm 인터페이스부로부터의 인터럽트에 의해 운영체제 장치 드라이버를 호출하여, 상기 Rm 인터페이스부에 버퍼링된 데이터를 읽어내어 상기 운영체제 장치 드라이버 내의 제1 패킷 버퍼 큐에 저장하는 과정과,
    상기 제1 패킷 버퍼 큐에 저장된 데이터의 주소를 상기 제1 패킷 버퍼 큐를 관리하기 위한 제1 링크된 리스트에서 링크-제거하고, 상기 Um 인터페이스부에 구비되는 제2 패킷 버퍼 큐를 관리하기 위한 제2 링크된 리스트에 상기 링크-제거된 데이터의 주소를 링크시킴으로써, 상기 데이터를 상기 제1 패킷 버퍼 큐로부터 상기 제2 패킷 버퍼 큐로 전달하는 과정과,
    상기 Um 인터페이스부에서 상기 제2 패킷 버퍼 큐에 저장된 데이터를 프레임 형태로 변환하여 상기 무선 네트워크로 송신하는 과정을 포함하는 이동 단말의 데이터 흐름 제어 방법.
  8. 제 7 항에 있어서,
    상기 제1 및 제2 패킷 버퍼 큐들에 저장된 데이터의 주소들은,
    상기 제1 및 제2 링크된 리스트들의 시작 주소 및 끝 주소를 각각 나타내는 헤드 포인터들 및 테일 포인터들로 관리되는 이동 단말의 데이터 흐름 제어 방법.
  9. 제 7 항에 있어서,
    상기 제1 패킷 버퍼 큐에 저장된 데이터를 상기 제2 패킷 버퍼 큐로 전달하기 이전에, 상기 Um 인터페이스부를 통해 전송 가능한 패킷 형태로 변환 처리하는 과정을 더 포함하는 이동 단말의 데이터 흐름 제어 방법.
  10. 제 7 항에 있어서,
    상기 제1 패킷 버퍼 큐에 저장된 데이터의 버퍼량이 일정 임계 값을 초과할 경우 CTS(Clear To Send) 대기 타이머에 의해 계수 된 소정 대기 시간 동안 상기 고속 통신 기기로부터의 수신을 중단하는 과정을 더 포함하는 이동 단말의 데이터 흐름 제어 방법.
  11. 제 10 항에 있어서,
    상기 제1 패킷 버퍼 큐의 용량은,
    상기 대기시간과, 상기 운영체제 장치 드라이버로부터 상기 Um 인터페이스부로 상기 패킷이 전달되기까지 걸리는 지연시간과, 상기 Um 인터페이스부의 버퍼 언더런을 방지하기 위해 설정된 버퍼링 시간이 합산된 시간 동안 물리 계층에서 최대 전송속도로 전송할 수 있는 데이터 량으로 결정되는 이동 단말의 데이터 흐름 제어 방법.
KR1020070041333A 2006-04-28 2007-04-27 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을위한 이동 단말의 데이터 흐름 제어 장치 및 방법 KR100866204B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20060039046 2006-04-28
KR1020060039046 2006-04-28

Publications (2)

Publication Number Publication Date
KR20070106446A KR20070106446A (ko) 2007-11-01
KR100866204B1 true KR100866204B1 (ko) 2008-10-30

Family

ID=38661069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070041333A KR100866204B1 (ko) 2006-04-28 2007-04-27 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을위한 이동 단말의 데이터 흐름 제어 장치 및 방법

Country Status (2)

Country Link
US (1) US7616566B2 (ko)
KR (1) KR100866204B1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2925190B1 (fr) * 2007-12-18 2009-11-20 Alcatel Lucent Procede et dispositif de communication entre plusieurs interfaces de connexion
KR20090077647A (ko) * 2008-01-11 2009-07-15 삼성전자주식회사 이동통신 시스템에서 단말의 가용 전력 정보를 전송하는방법 및 장치
WO2011107953A2 (en) * 2010-03-02 2011-09-09 Udayan Kanade Media transmission over a data network
US20130215745A1 (en) * 2012-02-16 2013-08-22 Broadcom Corporation Dynamic buffer management in high-throughput wireless systems
US10075381B2 (en) * 2014-01-28 2018-09-11 Mediatek Inc. Buffer status report and logical channel prioritization for dual connectivity
CN107102576A (zh) * 2016-02-23 2017-08-29 西门子公司 一种控制器、分布式控制***和方法
CN109254936B (zh) * 2017-07-12 2020-06-02 龙芯中科技术有限公司 ***数据传输队列结构体的方法和装置
CN112600764B (zh) * 2020-12-07 2022-04-15 苏州盛科通信股份有限公司 直通转发模式的调度方法、设备及存储介质
CN114710453B (zh) * 2022-03-16 2023-10-10 深圳市风云实业有限公司 一种高宽带低延时存储转发控制装置及其控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0787159A (ja) * 1993-09-16 1995-03-31 Sharp Corp プロトコル検証装置
JP2001292410A (ja) 2000-04-10 2001-10-19 Sony Corp データ送信装置、データ受信装置及びデータ送受信システム
KR20060088790A (ko) * 2005-02-02 2006-08-07 주식회사 넥스모빌 웹하드 및 모바일 하드를 이용한 시간인증 방법과 시스템
KR20060092823A (ko) * 2004-07-06 2006-08-23 모토로라 인코포레이티드 무선 네트워크에서 패킷 데이터 손실을 관리하는 방법 및장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6483822B1 (en) * 1999-06-07 2002-11-19 Marcello Lioy Establishing a packet network call between a mobile terminal device and an interworking function
US6463034B1 (en) * 1999-07-14 2002-10-08 Qualcomm Incorporated Method and apparatus for avoiding data loss during a PPP renegotiation on a Um interface
US6625164B1 (en) * 1999-07-14 2003-09-23 Qualcomm, Incorporated Selectively framing and unframing PPP packets depending on negotiated options on the Um and Rm interfaces
US6760804B1 (en) * 2001-09-11 2004-07-06 3Com Corporation Apparatus and method for providing an interface between legacy applications and a wireless communication network
KR100459439B1 (ko) * 2002-10-18 2004-12-03 엘지전자 주식회사 통합 웹 브라우징 서비스 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0787159A (ja) * 1993-09-16 1995-03-31 Sharp Corp プロトコル検証装置
JP2001292410A (ja) 2000-04-10 2001-10-19 Sony Corp データ送信装置、データ受信装置及びデータ送受信システム
KR20060092823A (ko) * 2004-07-06 2006-08-23 모토로라 인코포레이티드 무선 네트워크에서 패킷 데이터 손실을 관리하는 방법 및장치
KR20060088790A (ko) * 2005-02-02 2006-08-07 주식회사 넥스모빌 웹하드 및 모바일 하드를 이용한 시간인증 방법과 시스템

Also Published As

Publication number Publication date
US7616566B2 (en) 2009-11-10
US20070258362A1 (en) 2007-11-08
KR20070106446A (ko) 2007-11-01

Similar Documents

Publication Publication Date Title
KR100866204B1 (ko) 고속 통신 기기로부터 무선 네트워크로의 역방향 통신을위한 이동 단말의 데이터 흐름 제어 장치 및 방법
US10015104B2 (en) Processing received data
JP4214682B2 (ja) 計算機およびその入出力手段
US6085215A (en) Scheduling mechanism using predetermined limited execution time processing threads in a communication network
JP4521398B2 (ja) 前途のリソースの読み取りパスを用いた、読み取り/書き込みコマンドバッファプールリソースの管理
US6747949B1 (en) Register based remote data flow control
CN110545152B (zh) 一种以太网中具有实时传输功能的上位机及以太网***
KR100817676B1 (ko) 동적 클래스-기반 패킷 스케쥴링 방법 및 장치
CN108763121B (zh) TTE端***适配卡PCIe控制器的中断操作方法
US20040213243A1 (en) Transmission components for processing VLAN tag and priority packets supported by using single chip's buffer structure
US7788437B2 (en) Computer system with network interface retransmit
US20070271401A1 (en) Techniques to moderate interrupt transfer
KR100944892B1 (ko) 버스 시스템 및 버스 인터페이스
WO2004019165A2 (en) Method and system for tcp/ip using generic buffers for non-posting tcp applications
EP3694164A1 (en) Data transmission method and device, and computer storage medium
US6279052B1 (en) Dynamic sizing of FIFOs and packets in high speed serial bus applications
US20040198223A1 (en) Flow control in a bluetooth wireless communication system
CN110830388A (zh) 一种数据调度方法、装置、网络设备及计算机存储介质
US10057807B2 (en) Just in time packet body provision for wireless transmission
WO2021254475A1 (zh) 一种用于调度队列的方法及装置
JP2001203705A (ja) フロー制御回路及びフロー制御方法並びにフロー制御プログラムを記録した記憶媒体
EP1744495B1 (en) Round trip time estimation
CN116192772B (zh) 一种基于空间缓存的cpu收发包调度装置及方法
KR100629867B1 (ko) 이동 통신 단말기의 태스크 버퍼 제어 장치 및 방법
JP2004355041A (ja) Dma転送中継装置,dma転送方法,及びdma転送システム

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: 20120927

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130927

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150925

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180921

Year of fee payment: 11