KR100243414B1 - 가상연결단위의 큐잉장치 및 방법 - Google Patents

가상연결단위의 큐잉장치 및 방법 Download PDF

Info

Publication number
KR100243414B1
KR100243414B1 KR1019970069524A KR19970069524A KR100243414B1 KR 100243414 B1 KR100243414 B1 KR 100243414B1 KR 1019970069524 A KR1019970069524 A KR 1019970069524A KR 19970069524 A KR19970069524 A KR 19970069524A KR 100243414 B1 KR100243414 B1 KR 100243414B1
Authority
KR
South Korea
Prior art keywords
cell
block
buffer
read
virtual
Prior art date
Application number
KR1019970069524A
Other languages
English (en)
Other versions
KR19990050405A (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 KR1019970069524A priority Critical patent/KR100243414B1/ko
Publication of KR19990050405A publication Critical patent/KR19990050405A/ko
Application granted granted Critical
Publication of KR100243414B1 publication Critical patent/KR100243414B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9005Buffering arrangements using dynamic buffer space allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

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

Abstract

본 발명은 ATM 교환기의 출력라인 접합부 또는 비연결형 서버와 같이 다수의 가상연결이 존재하며 각 가상연결에 할당된 대역폭에 따라 셀들을 출력해야 하는 경우에 적용될 수 있는 가상연결단위의 셀 큐잉 방법 및 장치에 관한 것이다.
이와같은 본 발명은 셀이 저장되는 버퍼를 복수의 셀을 연속된 영역에 저장할 수 있는 블럭단위로 구분하고 각각의 블럭을 가상연결에 동적으로 할당할 수 있도록 하는 방법을 사용하였다. 따라서, 버퍼를 가상연결마다 고정적으로 할당하는 종래기술에 비하여 버퍼의 크기를 크게 감소시킬 수 있을 뿐만 아니라, 블럭단위로 가상큐를 구성하므로 셀 단위로 가상큐를 구성하는 종래기술에 비하여 연결포인터 및 미사용 영역의 포인터를 저장하기 위한 버퍼의 크기가 감소되며 셀의 입출력 시마다 가상큐를 관리하기 위한 절차가 크게 단순화되는 효과를 가진다.

Description

가상연결단위의 큐잉장치 및 방법
본 발명은 ATM 교환기 또는 비연결형 서버 등에서 가상연결 단위로 셀들을 일시 저장했다가 출력하는 버퍼의 관리 방법 및 장치에 관한 것으로, 특히 ATM망에서 다수의 가상연결이 설정되고 가상연결별로 지정된 대역폭에 따라 셀을 출력시키고자 하는 ATM 교환기 또는 비연결형 서버 등에 적용될 수 있는 버퍼 관리장치 및 방법에 관한 것이다.
도 1은 일반적인 ATM 교환기의 구성도을 도시한 것이다.
도 1 에 도시된 바와같이, ATM 교환기는 입력되는 셀들의 가상연결값에 따라 셀이 출력되는 출력포트번호를 결정하는 입력라인 정합부(1-1~1-N)와, 지정된 출력포트로 전달하는 역할을 수행하는 셀 스위치부(2)와, 지정된 대역폭에 따라 각 채널의 셀들을 송신하는 출력라인 정합부(3-1~3-N)로 구성된다.
이와같이 구성된 일반적인 ATM 교환기의 동작을 설명하면 다음과 같다.
먼저, 셀이 입력되는 입력라인 정합부(1-1~1-N)에서는 입력되는 셀들의 가상연결값에 따라 셀이 출력되는 출력포트 번호를 결정하여 셀 스위치부(2)로 전달한다. 셀 스위치부(2)에서는 지정된 출력포트로 전달하는 역할을 수행하며, 출력라인 정합부(3-1~3-N)에서는 지정된 대역폭에 따라 각 채널의 셀들을 송신하는 역할을 수행한다.
일반적으로, 각 포트에는 다수의 가상연결이 설정되어 있으므로 가상연결별로 미리 지정된 대역폭에 따라 셀을 출력시켜야 한다. 따라서, 도 2에 도시된 바와 같이 각각의 채널별로 셀들을 일시 저장하는 셀버퍼(100)가 필요하며 각각의 버퍼는 셀 스케줄러(103)에 의해 선택된 가상연결의 셀을 출력할 수 있어야 한다.
도 2 는 라인정합부에서 가상연결 단위의 셀 큐잉을 나타내는 구성도를 도시한 것이다.
도 2에 도시된 바와 같이, 가상연결 단위의 셀 큐잉은 다수의 가상연결로부터 입력된 패킷의 목적지 주소값에 따라 지정된 가상연결로 출력하는 비연결형 서버의 출력단에도 적용된다. 즉, 비연결형 서버에서는 짧은 기간 동안 특정 목적지로 송신될 셀들이 집중되는 경우가 있으므로 각각의 가상연결마다 지정된 대역폭에 따라 출력하는 셀 속도를 조절하는 기능을 반드시 갖추어야 한다.
도 3 은 가상연결 단위의 셀 큐잉장치의 구성도를 도시한 것이다.
도 3에 도시된 바와같이, 가상연결 단위의 셀 큐잉장치는 셀이 입력되면 빈 영역을 찾아 셀을 저장하고, 셀 출력 신호를 받으면 셀을 셀버퍼(100)에서 읽어 출력하는 셀 처리부(104)와, 셀이 저장되는 셀버퍼(100)와, 각 채널별로 셀들이 저장된 위치값을 가지고 있는 인덱스버퍼(101)와, 상기 셀버퍼(100)내의 셀이 저장되어 있지 않은 빈 영역의 위치값을 가지고 있는 빈영역큐(102)와, 특정 가상연결의 셀이 출력되는 시점을 결정하는 셀스케줄러(103)로 구성된다.
도 4는 가상연결 단위로 셀을 저장하고 출력하는 종래의 큐잉방법을 설명하기 위한 셀버퍼 및 인덱스버퍼의 구성을 나타낸 도면이다.
종래의 큐잉방법은 셀버퍼 전체를 고정적으로 나누어 셀을 저장하는 큐로 사용하는 방법이다. 따라서, 셀 버퍼(100)는 가상연결의 수만큼의 고정크기의 버퍼영역으로 나누어져 있으며, 인덱스버퍼(101)는 가상연결별 가상큐의 머리 부분의 위치를 나타내는 쓰기포인터(WP0~WPm)와 가상큐의 꼬리 부분의 위치를 나타내는 읽기포인터(RP0~RPm)만을 가지고 있다.
셀이 입력되면 셀의 가상연결번호값과 해당 채널의 쓰기포인터 값에 의해 셀이 저장될 위치가 결정되며, 셀 스케줄러(103)에서 특정 가상연결 셀의 송신을 요구하면 해당 가상연결 인덱스버퍼(101)의 읽기포인터 값이 지정하는 위치에서 셀을 읽어 출력한다. 이때 셀을 셀버퍼(100)에 저장하거나, 셀버퍼(100)에서 읽어 출력할 때마다 각각 인덱스버퍼(101)의 해당 채널의 쓰기포인터와 읽기포인터 값을 1씩 증가시킨다.
도 5는 가상연결 단위 큐입방법의 또 하나의 종래 기술을 나타낸다.
이 방법에서는 셀버퍼(100)를 모든 가상연결이 공유할 수 있도록 버퍼를 K개의 블럭으로 나누고, 각각의 블럭은 하나의 셀을 저장할 수 있는 영역과 저장되는 셀과 동일한 가상연결의 연속된 셀이 저장되는 위치 정보를 나타내는 연결포인터로 구성된다.
이 방법은 셀 버퍼에 저장될 셀들은 각각의 연결포인터를 이용하여 가상연결별로 가상 큐를 구성하며, 인덱스버퍼(101)의 쓰기포인터(WP0~WPm)는 해당 가상연결 가상큐의 머리를 나타내고, 읽기포인터(RP0~RPm)는 가상큐의 꼬리를 나타낸다.
따라서, 셀이 입력될 때마다 빈영역큐(102)에서 사용되지 않은 셀버퍼 블럭을 할당받아 셀을 저장한 후, 셀이 저장된 블럭의 번호를 해당 채널의 쓰기포인터값이 지정하는 블럭의 연결포인터 영역에 저장한 후 쓰기포인터의 값을 셀이 저장된 블럭의 번호로 바꾸어 주어야 한다. 또한, 셀 스케줄러(103)로부터 특정 가상연결의 셀 송신이 요구되면 해당 가상연결의 읽기포인터가 지정하는 블럭에서 셀을 읽어 송신한 후 해당 블럭번호를 빈영역큐(102)에 저장하며, 해당 블럭의 연결포인터의 값을 읽어 인덱스버퍼의 읽기포인터 값을 대체한다.
그러나, 첫 번째 종래의 셀 큐잉방법은 처리 방법이 가장 단순하나 각 채널에 할당된 버퍼의 크기가 고정적으로 할당되어 있으므로 버퍼의 이용 효율이 낮은 단점이 있다. 즉, 순간적으로 특정 채널로 셀이 집중될 경우 타 채널로 전달되는 셀은 적어지므로 동적으로 버퍼를 공유하는 방식과 동일한 셀 손실율을 유지하기 위하여는 아주 큰 버퍼를 갖추어야 하는 문제점이 있었다.
그리고, 두 번째 종래의 셀 큐잉방법은 셀버퍼를 모든 가상연결이 공유하므로 적은 크기의 버퍼로도 구성할 수 있으나, 매 셀마다 가상의 큐를 구성하기 위한 연결포인터를 가지고 있어야 하므로 셀 송수신 시마다 가상큐의 머리와 꼬리를 나타내는 쓰기포인터와 읽기포인터의 값의 처리가 복잡하며, 사용되지 않는 모든 블럭번호를 저장하는 빈영역큐의 크기가 커지는 단점을 가진다.
본 발명은 셀버퍼를 모든 가상연결이 공유할 수 있으면서도 단순하게 가상큐를 구성할 수 있도록 하여 셀을 저장하는 버퍼 메모리를 효율적으로 이용할 수 있으면서도 처리의 단순화하도록 하는 가상연결단위의 셀 큐잉장치 및 방법을 제공함에 있다.
이와같은 본 발명의 목적을 달성하기 위한 제1 수단은 다수의 가상연결이 설정되어 있으며 입력되는 셀들을 일시적으로 저장하였다가 가상연결별로 할당된 대역폭에 따라 셀들을 출력하는 장치에 있어서, 복수의 고정된 수의 셀들을 저장하는 영역과 해당 블럭과 연속된 가상큐를 구성하는 블럭의 번호를 저장하는 연결포인터로 구성된 다수의 블럭으로 구성된 셀버퍼와, 가상연결별로 해당 가상연결의 셀이 저장될 블럭번호와 블럭 내의 위치를 나타내는 나타내는 쓰기블럭과 쓰기포인터, 가상큐에 저장된 셀들 중 가장 먼저 출력할 셀이 저장된 블럭 번호와 블럭 내 위치를 나타내는 읽기블럭과 읽기포인터로 구성된 인덱스버퍼와, 셀버퍼 내의 블럭들 중 가상연결들에게 할당되지 않은 블럭 번호들을 일시적으로 저장하는 빈영역큐와, 각 할당된 대역폭에 따라 특정 가상연결 셀의 출력을 셀처리부로 요청하는 셀스케줄러와, 셀이 입력될때마다 인덱스테이블이 지정하는 위치의 셀버퍼에 저장하고, 특정 가상연결의 셀 출력을 요청하는 신호를 받으면 인덱스테이블의 해당 가상연결 포인터값이 지정하는 위치에서 셀을 읽어와 출력하는 기능을 수행하는 셀처리부를 포함하여 구성된다.
이와같은 본 발명의 목적을 달성하기 위한 제2 수단은 가상연결번호 i인 셀이 입력되면 셀의 가상연결번호가 가리키는 인덱스버퍼의 쓰기블럭과 쓰기포인터값을 읽어와 이 값이 가리키는 셀버퍼내의 영역에 셀을 저장한 후 쓰기포인터값을 1 증가시키며, 그 증가된 쓰기포인터값이 블럭에 저장할 수 있는 셀의 수보다 크지 않은 경우 동작을 종료하며, 그렇지 않은 경우 빈영역큐에서 블럭번호를 가져와 인덱스버퍼의 쓰기블럭이 지정하는 블럭의 연결포인터에 써넣은 후, 이 블럭번호값을 인덱스버퍼의 쓰기블럭 영역에 써넣고 쓰기포인터 값을 1로 바꾸는 셀 저장 단계와; 가상연결번호 i인 셀 출력이 요청되면 먼저 인덱스버퍼의 가상연결 i에 할당된 쓰기블럭값과 읽기블럭값이 같고 동시에 쓰기포인터값과 읽기포인터값이 같으면 동작을 종료하며, 그렇지 않으면 인덱스버퍼의 읽기블럭과 읽기포인터값을 읽어와 이값이 가리키는 셀버퍼내 영역에서 셀을 읽어 출력한 후 인덱스버퍼내의 읽기포인터값을 1 증가시키며, 증가된 읽기포인터값이 블럭에 저장할 수 있는 셀의 수 보다 크지 않은 경우에는 동작을 종료하며, 그렇지 않으면 인덱스버퍼의 읽기블럭(RBi)값을 읽어와 빈영역큐에 저장하며, 읽기블럭값이 가리키는 블럭의 연결포인터값을 읽어와 인덱스버퍼의 읽기블럭(RBi)에 저장하고 읽기포인터(RPi)값을 1로 변경하는 셀 출력 단계로 이루어진다.
도 1은 일반적인 ATM 교환기의 구성도.
도 2는 도 1 에서의 라인정합부에서 가상연결 단위의 셀 큐잉을 나타내는 구성도.
도 3은 가상연결 단위의 셀 큐잉장치의 구성도.
도 4는 가상연결별 고정크기의 버퍼를 가지는 기존의 큐잉 방법을 나타내는 구성도.
도 5는 가상연결별 가변크기의 버퍼를 가지는 기존의 큐잉 방법을 나타내는 구성도.
도 6은 본 발명의 실시예에 의한 블럭단위로 셀을 저장하는 가상연결단위의 셀 큐잉장치의 구성도.
도 7은 본 발명의 실시예에 의한 가상연결별 가상큐의 구성을 나타내는 구성도.
도 8은 본 발명의 실시예에 의한 가상연결단위의 셀 큐잉방법을 설명하기 위한 셀 입력시의 동작 흐름도.
도 9는 본 발명의 실시예에 의한 가상연결단위의 셀 큐잉방법을 설명하기 위한 셀 출력시의 동작 흐름도.
(도면의 주요부분에 대한 부호의 설명)
100 : 셀 버퍼 101 : 인덱스 버퍼
102 : 빈영역큐
도 6 은 본 발명의 실시예에 의한 가상연결단위의 셀 큐잉장치의 구성도를 도시한 것이다.
도 6 에 도시된 바와같이, 가상연결단위의 셀 큐잉장치는 복수의 고정된 수의 셀들을 저장하는 영역과 해당 블럭과 연속된 가상큐를 구성하는 블럭의 번호를 저장하는 연결포인터로 구성된 다수의 블럭으로 구성된 셀버퍼( 100 )와, 가상연결별로 해당 가상연결의 셀이 저장될 블럭번호와 블럭 내의 위치를 나타내는 나타내는 쓰기블럭과 쓰기포인터, 가상큐에 저장된 셀들 중 가장 먼저 출력할 셀이 저장된 블럭 번호와 블럭 내 위치를 나타내는 읽기블럭과 읽기포인터로 구성된 인덱스버퍼( 101 )와, 셀버퍼 내의 블럭들 중 가상연결들에게 할당되지 않은 블럭 번호들을 일시적으로 저장하는 빈영역큐( 102 )와, 각 할당된 대역폭에 따라 특정 가상연결 셀의 출력을 셀처리부로 요청하는 셀스케줄러(도면에 미도시)와, 셀이 입력될때마다 인덱스테이블이 지정하는 위치의 셀버퍼에 저장하고, 특정 가상연결의 셀 출력을 요청하는 신호를 받으면 인덱스테이블의 해당 가상연결 포인터값이 지정하는 위치에서 셀을 읽어와 출력하는 기능을 수행하는 셀처리부(도면에 미도시)로 구성된다.
이와같이 구성된 본 발명의 실시예에 의한 가상연결단위의 셀 큐잉장치의 동작을 설명하면 다음과 같다.
먼저, 셀버퍼( 100 )는 복수개의 셀을 연속적으로 저장할 수 있는 다수의 블럭으로 나누어지며 각각의 블럭은 가상큐를 구성하기 위한 연결포인터를 가지고 있다. 연결포인터에는 해당 블럭과 연속된 가상큐를 구성하는 다음 블럭의 번호를 저장한다. 셀버퍼( 100 )는 가상연결의 수보다 많은 수의 블럭으로 나누어져야 한다.
인덱스버퍼( 101 )는 각 가상연결이 사용하는 가상큐의 셀이 저장될 블럭번호인 쓰기블럭(WB0~WBm), 해당블럭 내의 셀이 저장될 위치인 쓰기포인터(WP0~WPm), 각 가상연결이 셀을 읽어 출력할 블럭번호인 읽기블럭(RB0~RBm), 읽기블럭 내의 실제 출력될 셀이 저장된 위치를 나타내는 읽기포인터(RP0~RPm)를 가지고 있다.
즉, 쓰기블럭(WB0~WBm)과 쓰기포인터(WP0~WPm)는 가상큐의 머리를 가리키고, 읽기블럭과 읽기블럭(RB0~RBm)과 읽기포인터(RP0~RPm)는 가상큐의 꼬리를 가리킨다.
이와같은 가상연결단위의 셀 큐잉장치는 가상큐를 구성할때 매 셀마다 연결포인터를 가지는 대신 블럭마다 연결포인터를 가지고 있으므로 새로운 블럭이 할당될 경우 또는 블럭의 사용이 종료 되었을 경우에만 연결포인터 및 인덱스버퍼의 값을 변경하면 되므로 처리가 단순화 된다. 또한 셀버퍼에서 연결포인터가 차지하는 영역의 비율이 크게 줄어들뿐만 아니라 빈영역큐도 블럭수 만큼의 크기를 가지면 되므로 셀 수 만큼의 크기를 가지는 종래 방법에 비하여 버퍼나 큐의 크기를 줄일 수 있다.
도 7은 본 발명의 가상큐의 구성도를 도시한 것이다.
도 7 에 도시된 바와같이, 블록1 내지 블록12( 101i -1~ 101i -3)의 연결포인터는 가상큐의 연속된 블럭 번호를 나타내며, 인덱스버퍼( 101i )의 쓰기블럭(WBi)과 쓰기포인터(WPi)는 가상큐의 머리를 가리키고, 읽기블럭(RBi)과 읽기포인터(RPi)는 가상큐의 꼬리를 가리킨다.
따라서, 각각의 블럭( 101i -1~ 101i -3)은 모든 가상연결에 동적으로 할당될 수 있으므로 고정 크기의 버퍼를 할당하는 종래기술에 비하여 버퍼의 이용효율이 높다. 또한 인덱스버퍼의 쓰기블럭과 읽기블럭의 값은 가상큐에 새로운 블럭이 추가되거나 블럭이 삭제되는 경우에만 변경되며, 블럭의 변화가 없는 셀의 입출력 시에는 고정크기의 버퍼를 할당한 종래기술처럼 단지 쓰기포인터 또는 읽기포인터 값을 1씩 증가시키면 되므로 처리 절차가 단순하여 고속의 처리장치를 용이하게 구성할 수 있다.
도 8 및 도 9 는 본 발명의 실시예에 의한 가상연결단위의 셀 큐잉방법을 설명하기 위한 흐름도를 도시한 것이다.
도 8 및 도 9 에 도시된 바와같이, 본 발명의 실시예에 의한 가상연결단위의 셀 큐잉방법은 가상연결번호 i인 셀이 입력되면 셀의 가상연결번호가 가리키는 인덱스버퍼의 쓰기블럭(WBi)과 쓰기포인터(WPi)값을 읽어와 이 값이 가리키는 셀버퍼내의 영역에 셀을 저장한 후 쓰기포인터값을 1 증가시키며, 그증가된 쓰기포인터값이 블럭에 저장할 수 있는 셀의 수보다 크지 않은 경우 동작을 종료하며 그렇지 않은 경우 빈영역큐에서 블럭번호를 가져와 인덱스버퍼의 쓰기블럭(WBi)이 지정하는 블럭의 연결포인터에 써넣은 후, 이 블럭번호값을 인덱스버퍼의 쓰기블럭(WBi) 영역에 써넣고 쓰기포인터 값을 1로 바꾸는 셀 저장 단계와, 가상연결번호 i인 셀 출력이 요청되면 먼저 인덱스버퍼의 가상연결 i에 할당된 쓰기블럭값과 읽기블럭값이 같고 동시에 쓰기포인터값과 읽기포인터값이 같으면 동작을 종료하며 그렇지 않으면 인덱스버퍼의 읽기블럭과 읽기포인터값을 읽어와 이값이 가리키는 셀버퍼내 영역에서 셀을 읽어 출력한 후 인덱스버퍼내의 읽기포인터값을 1 증가시키며, 증가된 읽기포인터값이 블럭에 저장할 수 있는 셀의 수 보다 크지 않은 경우에는 동작을 종료하며, 그렇지 않으면 인덱스버퍼의 읽기블럭(RBi)값을 읽어와 빈영역큐에 저장하며, 읽기블럭값이 가리키는 블럭의 연결포인터값을 읽어와 인덱스버퍼의 읽기블럭(RBi)에 저장하고 읽기포인터(RPi)값을 1로 변경하는 셀 출력 단계로 이루어진다.
이와같이 이루어진 본 발명의 실시예에 의한 가상연결단위의 셀 큐잉방법을 설명하면 다음과 같다.
도 8은 가상연결번호 i인 셀이 입력되는 경우 셀이 셀버퍼에 저장되는 과정을 나타낸다. 셀이 입력(S1)되면 셀의 가상연결번호가 가리키는 인덱스버퍼의 쓰기블럭(WBi)과 쓰기포인터(WPi)값을 읽어와 이 값이 가리키는 셀버퍼 내의 영역에 셀을 저장한다(S2). 그리고, 쓰기포인터값(WPi)을 1 증가시키며(S3) 증가된 쓰기포인터값(WPi)이 블럭에 저장할 수 있는 셀의 수보다 크지 않은 경우 동작을 종료한다.
상기 증가된 쓰기포인터값(WPi)이 블럭에 저장할 수 있는 셀의 수(n)보다 큰 경우에는 가상큐에 새로운 블럭을 추가하는 절차를 수행한다. 즉, 빈영역큐에서 타 가상연결에 할당되지 않은 블럭번호를 가져와 인덱스버퍼의 쓰기블럭(WBi)이 지정하는 블럭의 연결포인터에 써넣은 후(S5), 이 블럭번호값을 인덱스버퍼의 쓰기블럭(WBi) 영역에 써넣고 쓰기포인터 값을 1로 바꾸어 가상큐의 포인터를 변경한다(S6).
도 9는 셀스케줄러에서 가상연결번호 i인 셀의 출력을 요청하는 경우의 절차를 나타낸다. 먼저, 셀스케줄러에서 가상연결번호 i 인 셀출력을 요구한 후(S10) 인덱스버퍼의 가상연결 i에 할당된 쓰기블럭값과 읽기블럭값이 같고 동시에 쓰기포인터값과 읽기포인터값이 같은지를 검사(S11)하여 가상큐에 저장된 셀이 남아 있는지를 확인하여 남아있지 않으면 종료한다.
해당 가상연결의 셀이 셀버퍼에 남아 있으면 인덱스버퍼의 읽기블럭과 읽기포인터값을 읽어와 이값이 가리키는 셀버퍼 내 영역에서 셀을 읽어 출력(S12)한 후 인덱스버퍼내의 읽기포인터값(RPi)을 1 증가시킨다(S13).
그 증가된 읽기포인터값(RPi)이 블럭에 저장할 수 있는 셀의 수보다 크지 않은 경우에는 동작을 종료하며, 그 증가된 읽기포인터값(RPi)이 블럭에 저장할 수 있는 셀의 수(n)보다 큰 경우에는 사용이 종료된 블럭을 가상큐에서 제거하는 절차를 수행한다. 즉, 인덱스버퍼의 읽기블럭(RBi)값을 읽어와 빈영역큐에 저장하며 읽기블럭값이 가리키는 블럭의 연결포인터값을 읽어와 인덱스버퍼의 읽기블럭(RBi)에 저장하고(S15) 읽기포인터(RPi)값을 1로 변경한다(S16).
본 발명은 가상연결 단위로 셀을 일시적으로 저장하는 장치에 있어서 셀버퍼를 복수의 셀을 연속된 영역에 저장할 수 있는 블럭 단위로 구분하고 각각의 블럭을 가상연결에 동적으로 할당하도록 하여 버퍼를 효율적으로 이용할 수 있는 장점이 있다.
따라서, 버퍼를 가상연결마다 고정적으로 할당하는 종래기술에 비하여 버퍼의 크기를 크게 감소시킬 수 있을 뿐만 아니라, 블럭 단위로 가상큐를 구성하므로 셀단위로 가상큐를 구성하는 종래기술에 비하여 연결포인터 및 미사용 영역의 포인터를 저장하기 위한 버퍼의 크기가 감소되며 셀의 입출력 시마다 가상큐를 관리하기 위한 절차가 크게 단순화되는 효과를 가진다.
아울러, 메모리를 효율적으로 사용하면서도 처리가 단순하므로 고속의 처리가 필요한 초고속 ATM 교환기의 출력라인 정합부에 적용할 수 있는 효과가 있다.

Claims (3)

  1. 다수의 가상연결이 설정되어 있으며 입력되는 셀들을 일시적으로 저장하였다가 가상연결별로 할당된 대역폭에 따라 셀들을 출력하는 장치에 있어서,
    복수의 고정된 수의 셀들을 저장하는 영역과 해당 블럭과 연속된 가상큐를 구성하는 블럭의 번호를 저장하는 연결포인터로 구성된 다수의 블럭으로 구성된 셀버퍼와;
    가상연결별로 해당 가상연결의 셀이 저장될 블럭번호와 블럭 내의 위치를 나타내는 나타내는 쓰기블럭과 쓰기포인터, 가상큐에 저장된 셀들 중 가장 먼저 출력할 셀이 저장된 블럭 번호와 블럭 내 위치를 나타내는 읽기블럭과 읽기포인터로 구성된 인덱스버퍼와;
    셀버퍼 내의 블럭들 중 가상연결들에게 할당되지 않은 블럭 번호들을 일시적으로 저장하는 빈영역큐와;
    각 할당된 대역폭에 따라 특정 가상연결 셀의 출력을 셀처리부로 요청하는 셀스케줄러와;
    셀이 입력될때마다 인덱스테이블이 지정하는 위치의 셀버퍼에 저장하고, 특정 가상연결의 셀 출력을 요청하는 신호를 받으면 인덱스테이블의 해당 가상연결 포인터값이 지정하는 위치에서 셀을 읽어와 출력하는 기능을 수행하는 셀처리부를 포함하여 구성되는 것을 특징으로 가상연결 단위의 셀 큐잉 장치.
  2. 제 1 항에 있어서,
    상기 셀버퍼 내의 블럭의 수는 장치에서 처리하고자 하는 가상연결의 수보다 많은 것을 특징으로 하는 가상연결단위의 셀 큐잉 장치.
  3. 가상연결번호 i인 셀이 입력되면 셀의 가상연결번호가 가리키는 인덱스버퍼의 쓰기블럭과 쓰기포인터값을 읽어와 이 값이 가리키는 셀버퍼내의 영역에 셀을 저장한 후 쓰기포인터값을 1 증가시키며, 그 증가된 쓰기포인터값이 블럭에 저장할 수 있는 셀의 수보다 크지 않은 경우 동작을 종료하며, 그렇지 않은 경우 빈영역큐에서 블럭번호를 가져와 인덱스버퍼의 쓰기블럭이 지정하는 블럭의 연결포인터에 써넣은 후, 이 블럭번호값을 인덱스버퍼의 쓰기블럭 영역에 써넣고 쓰기포인터 값을 1로 바꾸는 셀 저장 단계와;
    가상연결번호 i인 셀 출력이 요청되면 먼저 인덱스버퍼의 가상연결 i에 할당된 쓰기블럭값과 읽기블럭값이 같고 동시에 쓰기포인터값과 읽기포인터값이 같으면 동작을 종료하며, 그렇지 않으면 인덱스버퍼의 읽기블럭과 읽기포인터값을 읽어와 이값이 가리키는 셀버퍼내 영역에서 셀을 읽어 출력한 후 인덱스버퍼내의 읽기포인터값을 1 증가시키며, 증가된 읽기포인터값이 블럭에 저장할 수 있는 셀의 수 보다 크지 않은 경우에는 동작을 종료하며, 그렇지 않으면 인덱스버퍼의 읽기블럭(RBi)값을 읽어와 빈영역큐에 저장하며, 읽기블럭값이 가리키는 블럭의 연결포인터값을 읽어와 인덱스버퍼의 읽기블럭(RBi)에 저장하고 읽기포인터(RPi)값을 1로 변경하는 셀 출력 단계로 이루어지는 것을 특징으로 하는 가상연결 단위의 셀 큐잉 방법.
KR1019970069524A 1997-12-17 1997-12-17 가상연결단위의 큐잉장치 및 방법 KR100243414B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970069524A KR100243414B1 (ko) 1997-12-17 1997-12-17 가상연결단위의 큐잉장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970069524A KR100243414B1 (ko) 1997-12-17 1997-12-17 가상연결단위의 큐잉장치 및 방법

Publications (2)

Publication Number Publication Date
KR19990050405A KR19990050405A (ko) 1999-07-05
KR100243414B1 true KR100243414B1 (ko) 2000-02-01

Family

ID=19527570

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970069524A KR100243414B1 (ko) 1997-12-17 1997-12-17 가상연결단위의 큐잉장치 및 방법

Country Status (1)

Country Link
KR (1) KR100243414B1 (ko)

Also Published As

Publication number Publication date
KR19990050405A (ko) 1999-07-05

Similar Documents

Publication Publication Date Title
US7315550B2 (en) Method and apparatus for shared buffer packet switching
JP2618327B2 (ja) 広帯域入力バッファatmスイッチ
US6781986B1 (en) Scalable high capacity switch architecture method, apparatus and system
EP0471344A1 (en) Traffic shaping method and circuit
EP1237337A2 (en) Efficient optimization algorithm in memory utilization for network applications
US7352766B2 (en) High-speed memory having a modular structure
US7995472B2 (en) Flexible network processor scheduler and data flow
US6999464B2 (en) Method of scalable non-blocking shared memory output-buffered switching of variable length data packets from pluralities of ports at full line rate, and apparatus therefor
US7126959B2 (en) High-speed packet memory
US6892284B2 (en) Dynamic memory allocation for assigning partitions to a logical port from two groups of un-assigned partitions based on two threshold values
CN115361336B (zh) 具有缓存的路由器、路由交换网络系统、芯片及路由方法
US6310875B1 (en) Method and apparatus for port memory multicast common memory switches
JPH11266272A (ja) 共用バッファ制御装置
KR100243414B1 (ko) 가상연결단위의 큐잉장치 및 방법
JPH09238159A (ja) トラヒックシェーパ装置
CN117499351A (zh) 报文转发装置及方法、通信芯片及网络设备
US6314489B1 (en) Methods and systems for storing cell data using a bank of cell buffers
JPH0927812A (ja) Atmスイッチのアドレス生成回路
JP3044653B2 (ja) ゲートウェイ装置
JPH04100358A (ja) セル転送回路
JP3099325B2 (ja) クロスバスイッチ装置及びその制御方法
CN117354268A (zh) 一种报文的缓存方法、装置、电子设备及存储介质
JP3562897B2 (ja) 通信用情報記憶装置及び通信情報の処理方法
JPH05336153A (ja) セル転送キュー構成方式およびセル転送キュー回路
JPH04363939A (ja) セル出力装置

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee