KR100248575B1 - 에이티엠 호스트 어댑터 분해 및 재조립장치 - Google Patents

에이티엠 호스트 어댑터 분해 및 재조립장치 Download PDF

Info

Publication number
KR100248575B1
KR100248575B1 KR1019970071633A KR19970071633A KR100248575B1 KR 100248575 B1 KR100248575 B1 KR 100248575B1 KR 1019970071633 A KR1019970071633 A KR 1019970071633A KR 19970071633 A KR19970071633 A KR 19970071633A KR 100248575 B1 KR100248575 B1 KR 100248575B1
Authority
KR
South Korea
Prior art keywords
reassembly
cell
decomposition
atm
host
Prior art date
Application number
KR1019970071633A
Other languages
English (en)
Other versions
KR19990052184A (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 KR1019970071633A priority Critical patent/KR100248575B1/ko
Publication of KR19990052184A publication Critical patent/KR19990052184A/ko
Application granted granted Critical
Publication of KR100248575B1 publication Critical patent/KR100248575B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • 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/45Arrangements for providing or supporting expansion
    • H04L49/455Provisions for supporting expansion in ATM switches
    • 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/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly

Landscapes

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

Abstract

본 발명은 데스크-탑 영역의 ATM 호스트가 ATM 망을 통하여 상호 통신을 하고자 할 경우 ATM 호스트 어댑터에서 제공되어야 할 분해 기능 및 재조립 기능에 대한 장치 개시한다. 본 발명은 ATM 호스트 어댑터내 시스템 버스와 접속되는 시스템 버스 접속 블럭, DMA마스터, DMA 슬레이브, 분해 프로세싱 블럭, 재조립 프로세싱 블럭, 디바이스 레지스터, UTOPIA Tx/Rx 블럭, 로컬 버스 중재기, 물리적 디바이스로 구성되어, 처리되어야 할 ATM 접속의 수에 따라서 로컬 메모리용량을 조절함으로서 분해 및 재조립 기능을 확장할 수 있는 구조를 가지고 있다.

Description

에이티엠 호스트 어댑터 분해 및 재조립장치
본 발명은 통신 시스템 기술분야에서, 소규모의 ATM 호스트가 ATM 망을 통하여 상호 통신을 하고자 할 경우 ATM 호스트 어댑터에서 제공되어야 할 분해 기능 및 재조립장치에 관한 것으로서, 특히 처리되어야 할 ATM 접속의 수에 따라서 로컬 메모리 용량을 조절 함으로써 분해와 재조립 기능을 확장할 수 있는 장치에 관한 것이다.
ATM 호스트 어댑터(adapter)는, 호스트 메모리를 분해하기 위한 패킷버퍼를 호스트 메모리 영역에 두고 있다. 호스트 메모리내에 분해 대기중인 패킷이 있을 경우 ATM 호스트 어댑터는 패킷을 분해한 후 ATM 호스트 어댑터내의 분해 버퍼에 임시 저장한 후 물리 계층 장치를 통하여 물리매체로 전달된다. 물리 매체로부터 전달된 셀은 해싱(hashing) 기능을 사용하여 1차적으로 폐기(Discard) 셀과 전달(Drop) 셀 그룹으로 분류되며, 폐기 셀은 별도의 처리없이 버려진다. 전달 셀은 로컬 메모리내에 로컬 셀 메모리에 임시 저장된다. 로컬 셀 메모리의 셀은 셀 헤더 검증 기능을 성공적으로 마친 후, 호스트 메모리를 사용하여 재조립된다.
기존의 ATM 어댑터의 구조를 분류해 보면 다음과 같다.
패킷 분해 동작의 경우, 송신 패킷 데이터를 호스트 메모리 내에 저장하는 방식(제 1 방법)과, 어댑터의 로컬 메모리내에 저장하여 분해 하는 방식이 있다(제 2방법). 호스트 메모리 사용 방식의 경우 호스트 메모리 내의 패킷 데이터를 셀 단위로 분해 한 후, 로컬 메모리에 저장(제 3 방법)하거나 어댑터내의 버퍼에 저장 (제 4 방법)한 후 물리적 링크(physical link)로 전달하는 방식이 있다.
상기와 제 1 방법의 경우 어댑터의 로컬 메모리 크기를 줄일 수 있는 장점이 있으나, 셀 단위로 시스템 버스에 액세스함으로써 시스템 버스의 효율성을 떨어뜨리는 단점이 있다. 제 2 방법의 경우 패킷 단위로 시스템 버스에 액세스 함으로써 시스템 버스의 효율성을 높일 수는 있으나, 로컬 메모리의 크기를 크게 해야 하는 단점이 있다. 시스템 버스상의 트래픽이 많지 않을 경우 제 1 방법이 효율적이다.
제 3 방법의 경우 셀 단위로 로컬 버스에 액세스함으로써 로컬 버스의 접속을 증대시키는 단점이 있다. 제 4 방법의 경우 시스템 버스 상의 데이터 액세스 지연이 보장될 수 있을 경우에 효율적인 방법이다.
패킷 재조립 동작의 경우, 물리적 링크로 부터 수신된 셀을 로컬 메모리 내에 저장하는 방식(제 5 방법)과 어댑터내의 버퍼에 저장하는 방식(제 6 방법)이 있다. 일반적으로 물리적 링크로부터 전달되는 셀의 경우 버스트(burstiness)가 다양하므로 상당히 큰 버퍼링 기능이 필요하며, 이 경우 상기 제 5 방법이 우수한 방법이다.
기존의 ATM 호스트 어댑터 구조를 살펴보면 다양한 형태의 패킷 분해 방식과 재조립 방식을 나타내고 있음을 알 수 있다. ATM 호스트에서 발생되는 트래픽의 특성에 따라서 그 구조의 장단점이 있으므로, 이를 고려한 패킷 분해 및 재조립 방식을 선택할 필요가 있다. 최근 시스템 버스의 전체 처리율은 1Gb/s이상의 고속 버스들이 많이 상용화 되고 있다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해, 데스크-탑 영역의 ATM 호스트가 ATM 망을 통하여 상호 통신을 하고자 할 경우 ATM 호스트 어댑터에서 제공되어야 할 분해 및 재조립장치를 제시한 것으로서, 처리되어야 할 ATM 접속의 수에 따라서 로컬 메모리 용량을 조절함으로써 분해와 재조립 기능을 확장할 수 있는 구조를 가질 수 있도록 설계하는데 그 목적이 있다.
도 1은 호스트 프로세서, 호스트 메모리와 ATM 호스트 어댑터로 구성되는 ATM 호스트의 블럭 다이어그램,
도 2는 ATM 망 접속 제어기의 내부 블럭 다이어그램,
도 3a 내지 도 3e는 분해 프로세싱 블럭이 사용하는 로컬 메모리 영역의 구성도,
도 4는 분해 버퍼 설명자를 연결하는 일련의 동작 과정,
도 5는 호스트 메모리내의 패킷 데이터를 분해하는 일련의 동작 과정,
도 6은 UBR(Unspecified Bit Rate) 트래픽 연결의 연결 리스트 및 동작 과정,
도 7a 내지 도 7e는 재조립 프로세싱 블럭이 사용하는 로컬 메모리 영역의 구성도,
도 8은 재조립 셀 메모리의 세부 블럭 다이어그램,
도 9는 호스트 메모리내로 패킷 데이터를 재조립하는 일련의 동작 과정,
도 10은 해시 인덱스를 계산하는 로직의 구성,
도 11은 재조립 상태 큐를 통한 재조립 패킷 버퍼 보고 방법을 설명하기 위한 도면,
도 12는 재조립 패킷 버퍼의 연결 리스트 구조.
〈도면의 주요 부분에 대한 부호의 설명〉
103 : ATM 망 접속 제어기 105 : 시스템 버스
106 : 로컬 버스 120 : 시스템 버스 접속 블럭
121 : DMA 마스터 122 : DMA 슬레이브
123 : 분해 프로세싱 블록 124 : 재조립 프로세싱 블럭
126 : UTOPIA 송신 블록 127 : UTOPIA 수신 블럭
128 : PHY 디바이스 129 : 로컬 버스 중재기
이하, 본 발명을 첨부된 도면에 의거하여 상세히 설명하면 다음과 같다.
도 1은 ATM 호스트(100)의 내부 구성을 나타낸 것이다.
ATM 호스트(100)는, 호스트 프로세서(101), 호스트 메모리(102), 시스템 버스(105), ATM 호스트 어댑터(108)로 구성된다. ATM 호스트 어댑터(108)는 ATM 망 접속 제어기(103), 로컬 메모리(104), 그리고 로컬 버스(106)로 구성되며 물리 매체 접속부(107)를 통하여 ATM 망(109)에 접속된다. ATM 호스트(100)는 ATM 호스트 어댑터(108)가 동작하기 위한 초기화 및 분해할 패킷을 호스트 메모리(102)에 준비하는 기능과 호스트 메모리(102)에 재조립된 패킷 정보를 상위 애플리케이션으로 전달하는 기능을 제공한다.
도 2는 ATM 망 접속 제어기(103)의 기능 블럭을 나타낸 것이다.
ATM 망 접속 제어기(103)는, 시스템 버스(105)에 접속하는 기능을 담당하는 시스템 버스 접속 블럭(120)과 시스템 버스를 통한 송수신 ATM 셀의 DMA 기능을 담당하는 DMA 마스터(121)기능, 내부의 디바이스 레지스터(130)와 로컬 메모리내의 파라메터를 DMA 액세스하는 기능을 담당하는 DMA 슬레이브(122)기능, 호스트 메모리내에 저장되어 있는 패킷 정보를 분해하는 기능을 담당하는 분해 프로세싱 블럭(123), 로컬 메모리내에 저장되어 있는 수신 셀을 호스트 메모리를 사용하여 재조립하는 기능을 담당하는 재조립 프로세싱 블럭(124), 분해 프로세싱 블럭(123)으로부터 전달된 셀을 UTOPIA 접속을 통하여 물리적 디바이스로 전달하는 기능을 담당하는 UTOPIA-송신(Tx) 블럭(126), 물리적 디바이스로부터 전달된 셀을 UTOPIA 접속을 통하여 재조립 프로세싱 블럭(124)으로 전달하는 기능을 담당하는 UTOPIA -수신(Rx) 블럭(127), ATM 셀을 물리 매체 전송 프레임에 맞추어 송/수신하는 기능을 담당하는 물리적 디바이스(128) 기능, ATM 망 접속 제어기의 각 기능 블럭이 로컬 메모리를 액세스 하고자 할 경우, 이의 중재(Arbitration)기능과 로컬 메모리의 특성에 맞추어 로컬 버스에 인터페이스하는 기능을 담당하는 로컬 버스 중재(129)기능, ATM 망 접속 제어기(103)의 제어 및 상태 파라미터를 저장하는 기능을 담당하는 디바이스 레지스터(130) 기능블럭으로 구성된다.
시스템 버스 접속 블럭(120)은 시스템 버스 버스 마스터 및 슬레이브 기능을 제공한다. 시스템 버스 접속 블럭(120)의 마스터 기능으로는 DMA 마스터(121)가 호스트 메모리(102)로 버스트(burst)하게 셀을 읽고, 쓰고자 할 경우, 시스템 버스(105)의 주도권을 잡고 시스템 버스를 통한 셀의 전달을 위한 트랜잭션(transaction)을 담당한다. 셀을 버스트하게 읽고 쓸 때 발생되는 시스템 버스 클럭과 ATM 어댑터 카드의 동작 클럭과의 차이를 보상하기 위하여 한 쌍의 비동기식 FIFO를 내장한다. 시스템 버스 접속 블럭(120)의 슬레이브 기능으로는, 호스트 프로세서(101)가 시스템 버스(105)를 통하여 디바이스 레지스터(130) 또는 로컬 메모리(104)에 액세스 요구할 경우 이에 대한 시스템 버스(105) 접속(interface) 기능을 제공한다. 호스트 프로세서(101)가 버스트하게 데이타를 읽고 쓸 때에 발생되는 시스템 버스 클럭과 ATM 어댑터 카드의 동작 클럭과의 차이를 보상하기 위하여 한 쌍의 비동기식 FIFO를 내장한다.
DMA 마스터(121) 기능은, 시스템 버스를 통해 셀 데이터 송/수신하기 위하여 시스템 버스 접속 블럭(120)의 마스터 기능, 분해 프로세싱 블럭(123) 그리고 재조립 프로세싱 블럭(124)의 인터페이스 기능을 제공한다. 분해 프로세싱 블럭(123)이 호스트 메모리(102)로부터 패킷 읽기 요구를 할 경우 시스템 버스 접속 블럭(120)에게 호스트 메모리 읽기 DMA 요구를 하게 되며, 시스템 버스 접속 블럭(120)이 성공적으로 셀을 읽었을 경우, 이를 분해 프로세싱 블럭(123)으로 전달하는 기능을 제공한다. 재조립 프로세싱 블럭(124)이 호스트 메모리(102)로 셀 쓰기 요구를 할 경우, 로컬 메모리(104)로 부터 셀 정보를 읽은 후 시스템 버스 접속 블럭(120)에게 호스트 메모리 쓰기 DMA 요구를 하는 기능을 제공한다. 이와 같은 분해 및 재조립 과정에서 수반되는 AAL5 CPCS-PDU에 대한 CRC-32 생성 및 검사 AAL3/4, OAM/RM 셀에 대한 CRC-10 생성 및 검사 및 AAL5 CPCS-PDU에 대한 자동 패딩(padding) 생성 및 검사 기능을 하드웨어적으로 제공한다.
DMA 슬레이브(122) 기능은 호스트 프로세서(101)가 시스템 버스(105)를 통해 디바이스 레지스터(130)나 로컬 메모리(104) 정보를 읽고/쓰기 위한 DMA 기능을 수행한다. 호스트 프로세서(101)가 버스트한 데이타를 쓰기 명령을 할 경우 시스템 버스 접속 블럭(120)으로부터 전달되는 데이타를 임시 버퍼에 저장 한 후 디바이스 레지스터(130)나 로컬 메모리(104)에 버스트하게 DMA 전달한다. 호스트 프로세서(101)가 버스트한 데이타를 읽기 명령을 할 경우 디바이스 레지스터(130)나 로컬 메모리(104)로부터 관련 정보를 시스템 버스 접속 블럭(120) 기능블럭으로 전달하는 기능을 제공한다.
도 3a는 분해 프로세싱 블럭(123)에서 관리하는 로컬 메모리(104)의 구성을 나타낸 것으로서, 분해 상태 큐(Segmentation Status Queue; 200), 분해 전송 링(Segmentation Transmit Ring; 210), 분해 설명자 테이블(Segmentation Descriptor Table; 220), 분해 VC 테이블(230), 분해율(Segmentation Rate) 테이블(240)로 구성된다. 분해 상태 큐(200)는 로컬 메모리(104)내에 존재한다. 분해 프로세싱 블럭(123)은 호스트 메모리(102)내의 패킷에 대한 분해 작업이 완료된 경우 분해 결과 정보를 분해 상태 큐(200)에 저장한 후 디바이스 레지스터(130)의 인터럽트 레지스터를 통하여 호스트 프로세서(101)에 전달한다.
상술한 분해 상태 큐 엔트리(Segmentation Status Queue Entry Format) 포맷은 도 3b에 도시된 바와 같이, 6비트의 'STATUS', 10비트의 'Rsvd', 16비트의 'VCC_INDEX', 32비트의 'BUFF_ADDR'를 포함하고 있다. 이 분해 상태 큐 엔트리 포맷을 구체적으로 설명하면 다음과 같다.
먼저, 6 비트의 'STATUS 영역'은, 상태 큐 엔트리의 소유권이 호스트에게 있음(= 'OWN')을 알리는 영역인 STATUS[5]와, CPCS_PDU의 패딩 사이즈 오류(Padding Size Error)임(= 'PAD_ERR')을 전달하는 STATUS[4]와, 보류(Reserved)임을 나타내는 STATUS[3] 및 STATUS[2]와, 패킷 버퍼의 분해 완료(='BUF_DONE')임을 전달하는 STATUS[1]와, AAL5에 적용, 전체 CPCS_PDU의 분해 완료(='PDU_DONE')임을 전달하는 STATUS[0]로 구성된다. 그리고, 16 비트의 'VCC_INDEX 영역'은, 호스트와 ASAH-NIC 사이의 VCC(Virtual Channel Connection) 연결 구별자이다. 또한, 32 비트의 'BUFF_ADDR 영역'은, 분해 완료된 버퍼의 시작 위치이고, 10비트의 'RSVD 영역'은 보류임을 나타낸다.
분해 프로세싱 블럭(123)은 상태 큐 엔트리에 상태 정보를 저장하기 전에 상기 'OWN' 비트를 검사한 후 해당 비트가 '0'이면 쓰기 작업을 완료한 후 'OWN'비트를 '1'로 설정한 후, 인터럽트를 생성시켜 호스트 프로세서(101)에게 통보한다.
분해 전송 링(Segmentation Transmit Ring)(210)은 호스트 프로세서(101)가 호스트 메모리(102)내에 분산(scattering)되어 있는 분해 패킷 버퍼 별로 버퍼 위치, 크기와 분해 VC 테이블(240) 엔트리 인덱스 정보 등을 순차적으로 분해 프로세싱 블럭(123)으로 전달할 때 사용된다. 분해 프로세싱 블럭(123)은 분해 전송 링(210)의 엔트리 내용을 순차적으로 읽은 후, 분해 VC 테이블(240) 엔트리 인덱스 별로 분해 설명자 테이블(220)을 사용하여 ATM 접속별로 링크 리스트를 구성한다.
상기한 분해 전송 링(210)의 엔트리 포맷은 도 3c에 도시된 바와 같이, 8 비트의 'SEG_MODE 영역', 8비트의 'RSVD 영역', 16비트의 'VCC_INDEX 영역', 32비트의 'BUFF_ADDR 영역', 16비트의 'SIZE 영역', 그리고 16비트의 'PAD 영역', 32비트의 'PDU_TRLR 영역'으로 구성된다. 각 영역(필드)에 대한 설명을 하면 다음과 같다.
먼저, 'BD_MODE 영역'은, AAL5만 적용, 해당 패킷 버퍼가 CPCS-PDU의 끝부분을 포함하고 있음(='EOP')을 표시하는 BD_MODE[7]와, AAL5만 적용, 해당 버퍼 설명자가 처리된 후 상태 큐를 통하여 호스트에 관련 상황을 통보(='REPORT' (AAL3/4, AAL0의 경우 디폴트로 적용)하는 BD_MODE[6]와, 현재 처리 중인 패킷에 대한 분해 동작을 중지(='ABORT')하는 BD_MODE[5](AAL5의 경우 CRC-32 영역은 모두 '1'로 초기화됨)와, BD_MODE[4] 및 BD_MODE[3]는 보류, 해당 패킷 버퍼로부터 셀을 생성할 경우 전달되는 셀 헤더의 PTI 비트 1으로 사용되는 값(='CNG')을 나타내는 BD_MODE[2], 해당 패킷 버퍼로부터 셀을 생성할 경우 전달되는 셀 헤더의 PTI 비트 0로 사용되는 값(='AUU'), AAL5의 경우 이 버퍼가 CPCS-PDU의 끝부분을 포함하고 있을 경우 이를 알리기 위해 생성되는 마지막 셀의 PTI 비트 0 는 자동으로 '1'로 설정되는 BD_MODE[1]와, 해당 패킷 버퍼로부터 셀을 생성할 경우 전달되는 셀 헤더의 CLP로 사용되는 값(='CLP')을 나타내는 BD_MODE[0]로 구성된다.
'VCC_INDEX 영역'은, VCC 구별자로서 분해 VCC 테이블 내의 각 엔트리를 구별하는데 사용된다. 분해 처리 블럭은 전송 링을 통하여 전달되는 버퍼 설명자내의 VCC_INDEX를 사용하여 특정 VCC상으로 버퍼 설명자를 링크 리스트 형태로 구성한다. 최하위 비트(LSB) 2 비트의 값은 0 인 것으로 간주(word aligned)한다.
'BUFF_ADDR 영역'은, 호스트 메모리 내의 분해 버퍼의 시작 위치를 표시하고, 최하위 비트(LSB) 2비트의 값은 0 인 것으로 간주(word aligned)한다.
'SIZE 영역'은, 분해해야 할 패킷 버퍼 내의 바이트 단위 데이터 수를 나타낸다. 'PAD 영역'은, EOP(BD_MODE[7] 영역 참조)가 '1'일 경우 패킷의 끝에 추가해야 할 패딩 바이트 수를 표시한다. 'PDU_TRLR 영역'은, CPCS-SDU에 추가되는 CPCS-PDU의 32 비트 트레일러 값을 나타낸다.
한편, 분해 설명자 테이블(220)은, 크게 분해 전송 링(210)을 통하여 전달되어온 정보를 순차적으로 분해 VC 테이블(240) 엔트리 별로 링크 리스트를 구성하여 저장하는 부분과 프리(free) 분해 설명자 테이블(220) 엔트리들을 링크 리스트한 부분으로 구성된다. 분해 프로세싱 블럭(123)은 분해 전송 링(210)으로부터 전달되는 패킷 버퍼 설명 내용을 프리 분해 설명자 테이블(220) 엔트리를 사용하여 ATM 접속 별로 링킹하며, 분해가 완료된 분해 설명자 테이블(220)의 엔트리는 재사용하기 위해 프리 분해 설명자 테이블(220) 엔트리에 링킹한다.
분해 설명자 테이블(220)의 엔트리 포맷은 도 3d에 도시된 바와 같이, 8비트의 'BD_MODE 영역', 24비트의 'NEXT_PTR 영역', 32비트의 'BUFF_ADDR 영역', 16비트의 'SIZE 영역', 16비트의 'PAD 영역', 그리고 32비트의 'PDU_TRLR 영역'으로 구성된다. 이 포맷을 자세히 살펴보면, 'NEXT_PTR 영역'을 제외한 다른 부분은 분해 전송 링(210)의 엔트리 포맷과 동일함을 알 수 있다.
분해 설명자 테이블(220)의 엔트리 포맷중 'NEXT_PTR 영역'만을 설명하면 다음과 같다. 'NEXT_PTR 영역'은, 특정 VCC상에서 링크 리스트(linked-list)된 분해 버퍼 설명자의 위치를 표시, LSB 2 비트의 값은 0인 것으로 간주(word aligned)한다.
분해 VC 테이블(230)의 각 엔트리는, 접속 셋업된 ATM 접속에 대한 분해 정보, 즉 ATM 셀 헤더, AAL 타입, 현재 분해하고 있는 분해 설명자 테이블(220) 링크 리스트의 헤드 및 테일 위치 정보 및 AAL5 접속의 경우 임시적인 CRC-32의 값을 저장하는 기능을 제공한다. 호스트 프로세서(101)가 분해 VC 테이블(230)의 초기화를 제공한다. 분해 프로세싱 블럭(123)은 초기화가 이루어진 분해 VC 테이블(230)을 사용하여 분해가 이루어진 셀 페이로드에 셀 헤더를 추가하여 셀을 구성한다. 분해가 완료된 AAL5 접속에 대해서는 CRC-32값을 추가하여 전달하며, CRC-32값을 모두 '1'로 초기화 한다.
분해 VC 테이블(230)의 엔트리 포맷은 도 3e에 도시된 바와 같고, 그 세부 영역을 설명하면 다음과 같다.
8비트의 'SEG_Mode 영역'은, 분해 할 VCC의 AAL 타입(=AAL_TYPE)을 구별하여 표시(예; '00' : AAL0, '01' : 미가공 셀(OAM 또는 RM 셀), '10' : AAL3/4,
'11' : AAL5)하는 'SEG_Mode[7:6] 영역'과, 이 영역의 값이 '1' 일 경우, 호스트 메모리로부터 48 Bytes의 셀 페이로드 정보가 아니라 13 word (52 byte) 셀 전체 정보가 전달되어야 함을 의미(=FCT; Full Cell Transmit), 이 비트 영역은 Constant Bit Rate 이나 OAM/RM 셀 전달의 경우 사용되는 'SEG_Mode[5] 영역'과, AAL0 셀 이외의 셀에 대해서 '0'일 일 경우 CRC 생성(=CRC_GEN)을 수행하며, '1'일 경우 CRC 생성을 디스에이블하는 'SEG_Mode[4] 영역'과, UBR(Unspecified Bit Rate) 트래픽일 경우 '1'로 세팅되는 'SEG_Mode[3] 영역'과, 그리고 보류를 나타내는 'SEG_Mode[2:0] 영역'으로 구성된다.
'Curr_DESCR 영역'은, VCC에 대한 현재 분해 버퍼 설명자의 위치를 표시하고, LSB 2bit 의 값은 0 인 것으로 간주(word aligned)한다. 'LAST_DESCR 영역'은, VCC에 대한 마지막 분해 버퍼 설명자의 위치를 표시하고, LSB 2bit 의 값은 0 인 것으로 간주(word aligned)한다. '버스트_사이즈 영역'은, VBR(Variable Bit Rate) VCC의 경우 버스트_Size[7:0]는 버스트 하게 동시에 전달 가능한 셀의 수를 표시한다. 'Cell_Count 영역'은 VCC 상으로 전달된 전체 셀의 수를 표시하고, 'BUFF_RD_SIZE 영역'은, 현재 분해하고 있는 패킷 버퍼에서 읽어 들인 바이트 단위의 수를 표시하는 영역으로서, 분해 작업이 완료된 후 갱신(Update)된다. 참고적으로, 버퍼 설명자의 사이즈 정보와 'BUFF_RD_SIZE'를 비교함으로서 분해해야 할 바이트 단위의 수를 파악 가능하다. 'VCC_INDEX 영역'은, 호스트가 지정한 VCC 구별자로서, 분해 VCC 테이블내의 각 엔트리를 호스트와의 통신에서 구별하는데 사용된다. 분해 처리 블럭은 전송 링 상으로 전달되는 VCC_INDEX를 사용하여 VCC 상의 버퍼 설명자를 링크 리스트 형태로 구성한다. 'CRC_32 영역'은, 호스트는 CRC_32의 초기 값을 모두 '1'로 초기화 해야 한다. CPCS-PDU 분해 중에는 AAL5 VCC에 대한 남은 CRC-32 값을 저장하며, CPCS-PDU에 대한 분해 완료 후 이 영역은 자동적으로 모두 '1' 값을 저장한다. 'UBR_TMR_STEP 영역'은, UBR 서비스만을 위하여 사용되며, UBR VCC 상으로 전달되는 셀 간 최소 간격을 마이크로초 단위로 규정한다. 이 값은 UBR 서비스의 트래픽 파라메터 중 PCR(Peak Cell Rate)에 해당된다. 'UBR_TMR_CNT 영역'은, UBR_TMR_CNT_H와 UBR_TMR_CNT_L로서 구성되며, UBR 서비스만을 위하여 사용되며, UBR VCC 상으로 셀이 전달될 경우 마이크로초 단위로 동작하는 24 Bit 내부 온-칩 타이머의 값에 UBR_TMR_STEP 값을 더한 값의 하위 16 비트 정보가 UBR_TMR_CNT_L에 저장되며, 상위 8 비트 정보가 UBR_TMR_CNT_LH에 저장된다. UBR VCC에 해당되는 UBR_TMR_CNT 의 값이 온 칩 타이머의 값보다 적을 경우만 셀 전달이 가능하므로, UBR VCC 상의 연속적인 셀 전달은 UBR_TMR_STEP 만큼의 시간이 지난 후에만 가능하다. 'ATM_HEADER 영역'은, VCC에 대한 셀의 헤더 값을 표시하고, 버퍼 설명자에 있는 CNG , AUU, CLP 값을 제외한 나머지 셀 헤더의 값은 변화 없이 그대로 매핑된다. 그리고 AAL5의 경우 패킷의 끝 정보를 포함한 버퍼 설명자의 경우 PTI의 MSB는 자동적으로 '1'로 세팅된다. 'UBR _NEXT_PNTR 영역'은, UBR 접속의 링크 리스트를 구성하는데 사용되며, UBR 링크 리스트 상에서 링크하고 있는 분해 VCC 테이블 엔트리의 로컬 버스 어드레스이다. 이를 사용하여 분해 VCC 테이블내의 UBR 엔트리를 순환 링크 리스트로 연결한다. 호스트 드라이버에서는 마지막 UBR 가상 회로 엔트리의 UBR _NEXT_PNTR 값을 UBR 가상 회로의 처음 엔트리 어드레스 값으로 설정한다. 분해 처리 블럭 내의 트래픽 스케쥴러는 UBR 순환 링크 리스트를 순차적으로 검색하면서 해당되는 VCC상으로 셀 전달 가능할 경우 분해한 셀을 전달하며, 전달할 셀이 없을 경우 널(Null)셀을 하나 전달 한 후 SEG_UBR_PNTR 값을 UBR 링크 리스트 상의 다음 포인터 값으로 갱신(update)한다. LSB 2bit 의 값은 0 인 것으로 간주(word aligned)한다.
한편, 분해 프로세싱 블럭(123)은 분해율(Segmentation Rate) 테이블(240)을 사용하여 CBR,VBR, UBR 트래픽에 대한 트래픽 형성(Shaping) 기능을 제공한다. 분해 프로세싱 블럭(123)은 분해 율(rate) 테이블(240) 엔트리를 순차적으로 검색하면서 분해할 ATM 접속의 순서를 결정한다. 상기 분해율 테이블(240)은 CBR(Constant Bit Rate)과 VBR 서비스만을 위하여 사용된다. 분해율 테이블(240)의 각 엔트리 검색을 통하여 서로 다른 ATM 접속에 해당되는 셀을 유연하게 다중화한다. 하나의 ATM 접속에 대해서 다수의 분해율 테이블(240) 엔트리를 적절하게 할당 함으로서 접속별 할당된 최대 대역폭 이내에서 셀을 전달하게 된다. 분해 프로세싱 블럭(123)은 CBR, VBR 접속 상으로 전달할 셀 데이터가 없을 경우 UBR 접속에 해당되는 셀을 별도의 UBR 링크 리스트를 사용하여 전송한다. UBR 링크 리스트는 분해 VC 테이블(230) 엔트리를 사용하여 구성한다. UBR 접속에 해당되는 분해 VC 테이블(230) 엔트리는 서로 링킹되어 UBR 링크 리스트를 구성한다.
도 4 는 분해 프로세싱 블럭(123)이 로컬 메모리(104)내의 분해 전송 링(210), 분해 VC 테이블(230), 분해 설명자 테이블(220)을 사용하여 분해 VC 테이블(230)별로 전달되는 버퍼 설명자를 링킹하는 일련의 과정을 도시한 것이다.
호스트 프로세서(101)는 분해 전송 링(210)을 통하여 호스트 메모리(102)내에 분산되어 있는 분해 패킷 버퍼 별로 버퍼 위치와 VC 테이블(240) 엔트리 인덱스 정보인 VCC_INDEX 등을 순차적으로 분해 프로세싱 블럭(123)으로 전달한다. 분해 프로세싱 블럭(123)은 분해 전송 링(210)의 엔트리 내용을 순차적으로 읽은 후 분해 VC 테이블(240) 엔트리 인덱스 별로 분해 설명자 테이블(220)을 사용하여 ATM 접속별로 링크 리스트를 구성한다. ATM 접속별 링크 리스트는 버퍼 설명자 엔트리영역 중 NEXT_PTR를 사용하여 구성되며 이 포인터의 생성 및 관리는 분해 프로세싱 블럭(123)이 담당한다.
도 5는 분해 프로세싱 블럭(123)이 로컬 메모리(104)내의 분해 율 테이블(240), 분해 VC 테이블(230), 분해 설명자 테이블(220)을 사용하여 호스트 메모리(102)내의 패킷 버퍼 (250), (251), (252), (253)을 분해하는 일련의 과정을 도시한 것이다.
분해 프로세싱 블럭(123)은 분해 율 테이블(240) 엔트리를 사용하여 해당되는 분해 VC 테이블(230) 엔트리 정보를 읽는다. 분해 프로세싱 블럭(123)은 분해 VC 테이블(230) 엔트리 정보 중 CURR_DESCR 포인터를 사용하여 분해 설명자 테이블(220) 엔트리를 읽는다. 분해 설명자 테이블(220) 엔트리는 호스트 메모리(102)내의 분해 패킷 버퍼 위치 정보를 간직하고 있으므로 이를 사용하여 패킷을 분해한다. 도 5 에서 CURR_DESCR와 LAST_DESCR는 ATM 접속 별로 분해 설명자 테이블(220)내에 구성된 링크 리스트의 헤드 포인터와 테일 포인터를 각각 나타낸다.
도 6은 분해 VC 테이블(230)을 사용하여 UBR 트래픽 접속을 linked-list 형태로 구성하는 방식을 설명한 것이다.
분해 VC 테이블(230) 엔트리 의 내용 중 UBR_NEXT_PNTR(232)값은 UBR 트래픽 접속의 링크 리스트에 연결된 다음 분해 VC 테이블(230) 엔트리의 포인터이다. 분해 프로세싱 블럭(123)은 CBR, VBR 접속 상으로 전달할 셀 데이터가 없을 경우 UBR 접속에 해당되는 셀을 별도의 UBR 링크 리스트를 사용하여 전송한다. 이 때, UBR 링크 리스트 엔트리 중 하나의 엔트리만이 그 대상이 대며, 그 엔트리를 구별하여 주는 것이 SEG_UBR_PNTR(234)이다. SEG_UBR_PNTR(234)에 해당되는 분해 VC 테이블(230) 엔트리의 영역 중 UBR_TMR_CNT(231)값은 UBR 접속의 PCR를 조절하기 위한 것은 UBR_TMR_CNT(231)값이 ATM 망 접속 제어기(103)내의 로컬 타이머의 값 보다 작을 경우만 UBR 접속의 셀은 전달 가능하며, 그렇지 않을 경우, 분해 프로세싱 블럭(123)은 UBR 셀 대신 할당되지 않은 셀을 생성하여 전달한 후, SEG_UBR_PNTR(234)의 값을 UBR 링크 리스트 상의 다음 엔트리의 어드레스로 갱신한다. 이와 같은 일련의 과정을 반복하면 SEG_UBR_PNTR(234)의 값을 UBR 링크 리스트를 계속해서 검색하면서 PCR를 만족하는 범위 내에서 UBR 트래픽 셀을 전달 가능하다.
도 7은 재조립 프로세싱 블럭(124)에서 관리하는 로컬 메모리(104)의 구성을 나타낸 것으로서, 재조립 상태 큐(300), 재조립 셀 메모리(310), 재조립 프리 버퍼 설명자 테이블(320), 재조립 VC 테이블(330), 재조립 해시 테이블(340)로 구성된다.재조립 상태 큐(300)는 로컬 메모리(104)내에 존재한다. 재조립 프로세싱 블럭(124)은 수신 셀을 호스트 메모리(102)를 사용하여 패킷 재조립 작업 완료한 경우 결과 정보를 재조립 상태 큐(300)에 저장한 후 디바이스 레지스터(130)의 인터럽트 레지스터를 통하여 호스트 프로세서(101)에 전달한다.
재조립 상태 큐(300) 엔트리의 포맷은 도 7b에 도시된 바와 같이, 1비트의 'OWN 영역', 15 비트의 'Rsvd(보류)영역', 16비트의 'VCC_INDEX영역', 32비트의 'BUFF_ADDR영역', 8비트의 'CRC_ECNT영역' 8비트의 'RSM_STAT영역', 16비트의 'TOT_CELL_CNT영역', 16비트의 'PDU_CNT영역', 16비트의 'CPCS_LENGTH영역'으로 구성된다. 이러한 재조립 상태 큐(300) 엔트리 세부 영역의 설명은 다음과 같다.
'OWN 영역'은, 상태 큐의 상태를 알리는 것으로, 호스트가 상태 큐에서 읽어갈 때 클리어 되며, ASAH-NIC이 상태 큐에 상태 정보 저장 후 세트되고, 초기값은 모두 '0' 이다. 'VCC_INDEX 영역'은, 호스트와 ASAH-NIC 사이의 VCC 연결 구별자이다. 'BUFF_ADDR 영역'은, AAL5의 경우이면서 스트리밍 모드(Streaming Mode)의 경우 재조립이 완료된 패킷 버퍼중 헤더 버퍼의 주소를 표시하며, 그 이외의 경우 현재 전달하는 패킷 버퍼의 시작 주소를 나타내고, LSB 2bit 의 값은 0 인 것으로 간주(word aligned)한다. 'CRC_ECNT 영역'은, AAL5의 경우 CRC-32 오류의 누적 값, AAL3/4 또는 미가공 셀(OAM 또는 RM 셀)의 경우 CRC-10 오류의 누적 값이며 AAL0의 경우 사용되지 않는다. 'RSM_STAT 영역'은, 재조립 VC 테이블의 RSM_STAT[7:0]이다. 'TOT_CELL_CNT 영역'은, 특정 VCC에 대해서 수신한 전체 셀의 수를 나타낸다. 'PDU_CNT 영역'은, AAL5에만 적용, 성공적으로 수신한 CPCS-PDU의 수를 나타내고, 'CPCS_LENGTH 영역'은, AAL5에만 적용, CPCS-PDU 의 마지막이 들어올 경우 전달하고, 그 이외에는 0으로 전달한다.
한편, 재조립 셀 메모리(310)는 도 8과 같이 PHY 디바이스(128)로부터 전달되는 셀을 임시 저장하는 기능을 제공한다. 재조립 셀 메모리(310)는 프리 셀 버퍼와 사용(Used) 셀 버퍼로 구성된다. 사용 셀 버퍼의 영역은 디바이스 레지스터(130)내의 RSM_CBASE 레지스터(314)와 헤드 포인터(316) 및 테일 포인터(315)정보를 사용하여 알 수 있다. RSM_CBASE 레지스터(314)는 로컬 메모리(104)에서 재조립 셀 메모리(310)의 시작 어드레스이며, 헤드 포인터(316) 및 테일 포인터(315) 각각 사용 셀 버퍼의 시작 및 마지막 위치 정보이다. 사용 셀 버퍼는 재조립 프로세싱 블럭(125)이 수신된 셀의 해싱(440) 기능으로부터 구한 해시 버킷 체인 포인터(hash bucket chain pointer; 311)와 수신된 셀중 HEC 영역을 제외한 수신 셀 헤더(312), 수신 셀 페이로드(312) 영역으로 구성된다.
재조립 프리 버퍼 설명자 테이블(Reassembly Free Buffer Descriptor Table; 320)은 도 9와 같이 수신된 셀을 재조립 할 수 있는 호스트 메모리(102)내의 엠프티(empty) 패킷 버퍼(350), (351), (353), (354)의 주소 및 크기 정보를 간직하고 있다. 재조립 프로세싱 블럭(124)은 특정 접속에 속하는 첫 셀을 수신하면 재조립 프리 버퍼 설명자 테이블(320)로 부터 관련 정보를 페치(fetch)하며, 이를 사용하여 호스트 메모리(102)에 수신된 셀을 재조립하는 기능을 제공한다. 재조립 프리 버퍼 설명자 테이블(320)의 초기화 및 관리는 호스트 프로세서(101)에서 담당한다. 재조립하는 패킷 버퍼가 모두 사용될 경우 재조립 프로세싱 블럭(124)은 순차적으로 재조립 프리 버퍼 설명자 테이블(320) 엔트리를 페치 한 후 셀의 재조립 작업을 한다. 사용 완료된 재조립하는 패킷 버퍼의 위치정보는 재조립 상태 큐(300)를 통하여 호스트 프로세서(101)로 전달되며 호스트 프로세서(101)는 이를 처리한 후 재조립 프리 버퍼 설명자 테이블(320)에 순차적으로 전달하여 재 사용되게 하는 기능을 제공한다.
재조립 프리 버퍼 설명자 테이블(320) 엔트리의 포맷은, 도 7c에 도시된 바와 같다. 1비트의 'OWM 영역', 15비트의 'RSVD(보류) 영역', 16비트의 'SIZE 영역', 32비트의 'BUFF_ADDR 영역'으로 구성된다. 재조립 프리 버퍼 설명자테이블(320) 엔트리의 세부 영역의 설명은 다음과 같다.
'OWN 영역'은, 프리 버퍼의 상태를 알리는 것으로, 호스트가 프리 버퍼 큐에 저장할 때 클리어 되며, ASAH-NIC이 프리 버퍼를 페치할 때 세트되고, 초기값은 모두 '0' 이다. 'SIZE 영역'은, 버퍼 내에 있는 데이터의 바이트 단위 수, 4 byte단위의 정수배 값만을 가지는 것으로 가정한다. 'BUFF_ADDR 영역'은, 호스트 메모리 내의 분해 버퍼의 시작 위치를 표시, LSB 2bit 의 값은 0 인 것으로 간주(word aligned)한다.
재조립 VC 테이블(330)의 각 엔트리는, 설정된 ATM 접속에 대한 재조립 정보, 즉 ATM 셀 헤더, AAL 타입, 현재 재조립 하고 있는 패킷 버퍼의 주소 및 크기 정보 및 AAL5 접속의 경우 임시적인 CRC-32의 값을 저장하는 기능을 제공한다. 재조립 VC 테이블(330)의 각 엔트리 내용은 호스트 프로세서(101)에 의하여 초기화가 이루어진다. 재조립 VC 테이블(330)의 특정 엔트리들은 도 9에서와 같이 하나의 해시 버킷 체인을 구성하여 수신된 셀 헤더의 비준(validation)에 사용된다. 수신 셀로부터 패킷 재조립이 완료된 AAL5 접속에 대해서 CRC-32값을 모두 '1'로 초기화 된다.
재조립 VC 테이블(330)의 엔트리 포맷은, 도 7d에 도시된 바와 같이, 32비트의 'HEADER 영역', 32비트의 'MASK 영역', 8비트의 'RSVD(보류) 영역', 24비트의 'NEXT_PNTR 영역', 8비트의 'RSM_MODE 영역', 8비트의 'RSM_STAT 영역', 16비트의 'SIZE 영역', 8비트의 'CRC_ECNT 영역', 8비트의 'RSVD(보류) 영역', 16비트의 'VCC_INDEX 영역', 16비트의 'PDU_CNT 영역', 16비트의 'TOT_CELL_CNT 영역', 32비트의 'HBUFF_ADDR 영역', 32비트의 'CBUFF_ ADDR 영역', 32비트의 'CRC32_REM 영역'으로 구성된다. 재조립 VC 테이블(330)의 엔트리의 세부 영역 설명은 다음과 같다.
'HEADER 영역'은, 셀 헤더 마스크 HD_MASK와 함께 수신된 셀의 VPI/VCI 매치 비교 검사에 사용되는 셀 헤더 값이고, 'HD_MASK 영역'은, 셀 헤더 값 HEADER 와 함께 수신된 셀의 VPI/VCI 매치 비교 검사에 사용되는 셀 헤더 마스크 값이며, 'NEXT_PNTR 영역'은, HEADER와 HD_MASK를 사용한 VPI/VCI 매치 비교 검사 실패 시에 해당 해시 버킷에서 다음 재조립 VC 엔트리에 대한 포인터 값을 나타낸다.
'RSM_MODE 영역'은, 재조립 할 AAL의 형태를 표시(예; '00' : AAL0, '01' : 미가공 셀(OAM 또는 RM 셀), '10' : AAL3/4, '11' : AAL5)하는 RSM_MODE[7:6]와, 이 영역의 값이 '1' 일 경우, 호스트 메모리에 48 Bytes의 셀 페이로드 정보가 아니라 13 word (52 byte) 셀 전체 정보를 전달되어야 함을 의미(FCT;Full Cell Transmit )하고, 이 비트 영역은 AAL0, RAW 셀일 경우만 적용 가능(이때, 이 기능의 주된 응용은 CBR 이나 OAM/RM 셀 전달의 경우임)한 RSM_MODE[5]와, 해당 패킷 버퍼의 쓰기가 완료된 후 상태 큐를 통하여 호스트에 관련 상황을 통보하는 RSM_MODE[4]와, AAL0셀 이외의 수신 셀에 대해서 '0'일 경우 CRC 검사 (CRC_CHK)를 수행하며 '1'일 경우 CRC 검사를 디스에이블 하는 RSM_MODE[3]와, 프리 버퍼 큐로부터 새로운 버퍼 설명자를 페치하지 않음(NOALLOC)을 나타내는 RSM_MODE[2]와, 보류를 나타내는 RSM_MODE[1:0] 영역으로 구성된다.
'RSM_STAT 영역'은 다음과 같다. 'RSM_STAT[7:4]'은 보류를 나타낸다. 'RSM_STAT[3]'은, AAL5의 경우 0 이면 CPCS-PDU내에서 수신한 모든 셀의 GFC 값이 0 이고, 1 이면 최소 1 이상이 셀이 GFC 값이 0이 아닌 셀이 수신되었음(NZ-GFC ; Non-Zero GFC)을 전달한다. AAL3/4, AAL0의 경우 패킷 버퍼 당 적용되며, RAW 셀의 경우 셀 바이 셀(cell by cell)로 적용된다. 'RSM_STAT[2]'는, AAL5의 경우 0 이면 CPCS-PDU내에서 수신한 모든 셀의 CI 값이 0 이고, 1 이면 최소 1 이상이 셀이 CI 값이 0이 아닌 셀이 수신되었음(CI; Congestion Indication)을 전달한다. AAL3/4, AAL0의 경우 패킷 버퍼 당 적용되며, RAW 셀의 경우 셀 바이 셀로 적용된다. 'RSM_STAT[1]'은, AAL5의 경우 0 이면 CPCS-PDU내에서 수신한 모든 셀의 LP 값이 0 이고, 1 이면 최소 1 이상이 셀이 LP 값이 0이 아닌 셀이 수신되었음(LP ;Loss Priority)을 전달한다. AAL3/4, AAL0의 경우 패킷 버퍼 당 적용되며, RAW 셀의 경우 셀 바이 셀로 적용된다. 'RSM_STAT[0]'은, CRC_ERR(CRC 오류) AAL5의 경우 CPCS-PDU 전체를 수신한 후 CRC-32 오류가 발생하였을 경우 '1' 로 세팅된다. AAL3/4 셀의 경우 패킷 버퍼 당 CRC-10 오류가 발생하였을 경우 '1' 로 세팅된다. 참고적으로, CRC-10 오류가 발생한 셀의 CRC-10영역은 모두 '1'으로 마스킹되며 오류가 없는 셀의 CRC-10 영역은 모두 '0'으로 마스킹 되어 호스트 메모리의 패킷 버퍼로 전달된다. 'SIZE 영역'은, 재조립중인 패킷 버퍼 중 저장 가능한 바이트 단위 수로서, 프리 버퍼를 페치할 때마다 해당되는 사이즈 값으로 초기화 되며, 매 셀 단위로 재조립 수행 후 그 값은 갱신된다.
참고적으로, LSB 2bit 의 값은 항상 0 이다(패킷 버퍼가 워드 정렬되어 있으며, 셀 기록시에도 워드 단위로 저장). 'CRC_ECNT 영역'은, AAL5의 경우 CRC-32 오류의 누적 값, AAL3/4 또는 미가공 셀(OAM 또는 RM 셀)의 경우 CRC-10 오류의 누적 값이며 AAL0의 경우 사용되지 않는다. 'VCC_INDEX 영역'은, 호스트와 ASAH-NIC 사이의 VCC 연결 구별자이다. 'PDU_CNT 영역'은, AAL5에만 적용, 성공적으로 수신한 CPCS-PDU의 수를 나타낸다. 'TOT_CELL_CNT 영역'은, 특정 VCC에 대해서 수신한 전체 셀의 수를 나타내고, 'HBUFF_ADDR 영역'은, AAL5의 경우 재조립 시작한 패킷 버퍼의 시작 주소를 표시하며 그 이외의 경우 사용되지 않고, LSB 2bit 의 값은 0 인 것으로 간주(word aligned)한다. 'CBUFF_ADDR 영역은 현재 재조립 하고 있는 패킷 버퍼의 시작 주소를 나타내고, 'CRC_REM 영역'은 AAL5에만 적용되며 호스트는 초기 값을 모두 '1'로 세팅해야 한다. 'CRC-REM영역'은 CPCS-PDU 재조립 중에는 CRC-32 리메인더(remainder)를 임시 저장하며, CPCS-PDU 수신 완료시 모두 '1'로 자동적으로 세팅된다.
재조립 해시 테이블(340)의 구조는 도 7e에 도시된 바와 같다.
재조립 해시 테이블(340) 엔트리의 특정 엔트리의 선별은 도 10의 해싱 기능으로부터 구해지는 해시 인덱스(445) 값과 디바이스 레지스터(130)내에 있는 해시 테이블의 기본 어드레스인 RSM_HBASE 레지스트 값을 합하여 수행할 수 있다. 재조립 해시 테이블의 Mode 2 bit 는 해시 버킷별로 수신된 셀이 전달(Drop) 셀인지 릴레이(Relay) 셀인지를 구별하는 데 사용된다. 재조립 해시 테이블의 해시 버킷 체인 포인터는 도 9에 도시된 바와 같이, 재조립 VC 테이블(330)내의 특정 해시 버킷 체인 시작 위치를 나타낸다.
도 9는 재조립 프로세싱 블럭(124)이 로컬 메모리(104)내의 재조립 셀 메모리(310), 재조립 VC 테이블(330), 프리 버퍼 설명자 테이블(320)을 사용하여 호스트 메모리(102)내의 패킷 버퍼 (350), (351), (352), (353), (354)에 수신 셀을 재조립 하는 일련의 과정을 도시한 것이다.
재조립 프로세싱 블럭(124)은 재조립 셀 메모리(310)의 사용 셀 버퍼를 순차적으로 검색하면서 해시 버킷 체인 포인터(311)와 수신 셀 헤더(312)를 읽는다. 해시 버킷 체인 포인터(311)에 해당하는 재조립 VC 테이블(330) 엔트리로부터 셀 헤더 값과 다음 재조립 VC 테이블(330) 엔트리 포인터를 페치한 후 수신 셀 헤더(312) 값이 재조립 VC 테이블(330) 엔트리의 셀 헤더 값과 매칭되는지를 검사한다. 만약 틀릴 경우 페치된 다음 포인터를 사용하여 동일한 과정을 반복한다. 이와 같이 다음 엔트리 포인터로 연결되는 재조립 VC 테이블(330) 엔트리는 하나의 해시 버킷 체인을 구성하게 된다. 해시 버킷 체인을 사용하여 성공적으로 헤더 매치 검사가 이루어지면, 해당되는 재조립 VC 테이블(330) 엔트리로부터 재조립할 패킷 버퍼(352)의 주소 정보를 페치한 후 DMA 마스터(121) 기능 블럭에게 수신 셀의 DMA 요구를 한다. 만약 재조립할 패킷 버퍼(352)가 없을 경우 프리 버퍼 설명자 테이블(320)로부터 새로운 재조립 패킷 버퍼를 할당받아 수신 셀의 DMA 요구를 한다.
도 10은 상기 도 2의 재조립 프로세싱 블럭(124)에서 수행하는 해싱 기능의 블럭 다이아그램이다.
수신된 셀 헤더는 VPI[7:0] VCI[15:8](441)영역과 VCI[15:0](443)으로 나뉘어지며, 각각 디바이스 레지스터(130)내의 16 비트 해시 레지스터인 HMASK1(442), HMASK2(444)로 마스킹한 후 배타적 논리합을 통하여 해시 인덱스(445)가 구해진다. 이러한 과정을 거침으로서 24 bit의 셀 헤더로부터 최대 16 bit 미만의 해시 인덱스(445)를 구할 수 있다. 해시 인덱스(445)의 최대값으로서 해시 버킷의 최대 수가 결정된다.
도 11은 상태 큐(300)를 통하여 재조립된 패킷 버퍼(360, 361,362,363)를 호스트 프로세서(101)에게 전달하는 일련의 과정을 나타낸 것이다.
호스트 프로세서(101)는 호스트 메모리(102)내의 패킷 버퍼(360,361,362,363)를 준비한 후 재조립 프리 버퍼 설명자 테이블(320)의 엔트리(368,369,370,371)를 사용하여 재조립 프로세싱 블럭(124)에 전달한다. 재조립 프로세싱 블럭(124)은 특정 ATM 접속 상으로 수신된 셀을 호스트 메모리(102)의 패킷 버퍼(360,361)를 사용하여 재조립한 후 재조립 상태 큐(300) 엔트리(368)를 통하여 호스트 프로세서(101)에게 통보 한다. 재조립 상태 큐(300) 엔트리(368)는 재조립된 링크된 패킷 버퍼(360, 361) 중 시작 패킷 버퍼(360)의 어드레스를 가지고 있다. 동일한 방법으로 재조립 프로세싱 블럭(124)은 특정 ATM 접속 상으로 수신된 셀을 호스트 메모리(102)의 패킷 버퍼 (362,363)를 사용하여 재조립한 후 재조립 상태 큐(300) 엔트리(369)를 통하여 호스트 프로세서(101)에게 통보한다. 재조립 상태 큐(300) 엔트리(369)는 재조립된 링크된 패킷 버퍼(362, 363)중 시작 패킷 버퍼(362)의 어드레스를 가지고 있다. 패킷 버퍼(360, 361)는 패킷 버퍼(360)의 NEXT_PNTR(364)로서 링크되며 패킷 버퍼(361) 의 NEXT_PNTR(365)의 값이 널(Null)일 경우 링크 리스트의 마지막 패킷 버퍼(361)임을 표시하는 것이다. 동일한 방법으로 패킷 버퍼(362, 363)는 패킷 버퍼 (362)의 NEXT_PNTR(366)로서 링크되며 패킷 버퍼(363)의 NEXT_PNTR(367)의 값이 널일 경우 링크 리스트의 마지막 패킷 버퍼(363)임을 표시하는 것이다.
도 12는 재조립 패킷 버퍼(380, 383, 386)가 링크되는 과정을 자세히 나타낸 것이다.
재조립 프로세싱 블럭(131)은 특정 VCC상으로 재조립된 정보를 패킷 버퍼 (380, 383, 386)에 저장한 후 패킷 버퍼(380,383, 386)의 마지막 워드 위치에 NEXT_PNTR(382, 385, 388)를 저장한다. NEXT_PNTR(382, 385)는 재조립되는 다음 패킷 버퍼(383, 386)의 두 번째 워드의 위치를 나타낸다. 각 패킷 버퍼 (380,383, 386)의 첫 워드는 현재 패킷 버퍼의 크기를 나타낸다. 호스트 프로세서(101)는 패킷 버퍼(380,383, 386)를 구성할 때 패킷 버퍼의 크기를 미리 표기하며, 재조립 프리 버퍼 설명자 테이블(320)구성시에 패킷 버퍼별로 적절한 사이즈를 파악하여 그 값을 전달한다. 호스트 프로세서(101)측에서 동일한 크기의 패킷 버퍼를 사용할 경우 별도의 사이즈 표시를 위한 영역을 표시하지 않고 동작할 수도 있다. 재조립 프로세싱 블럭(131)은 AAL5 ATM 접속이면서 스트리밍 모드의 경우 도 12에 도시된 바와 같이, CPCS-PDU를 저장하는 마지막 패킷 버퍼(386)의 NEXT_PNTR(388)의 값은 널 값으로 채운다. 호스트 프로세서(101)는 CPCS-PDU전체를 수신한 후 CPCS-PDU를 처음 저장하기 시작한 헤더 패킷 버퍼(380)의 위치와 CPCS-PDU의 길이를 재조립 상태 큐(300)를 통하여 전달 받는다. 호스트 프로세서(101)는 CPCS-PDU 시작 패킷 버퍼(360)의 위치 어드레스와 각 패킷 버퍼 (380,383, 386)에서 NEXT_PNTR(364,365,366)의 값 그리고 재조립 상태 큐(300)를 통하여 전달받는 CPCS-PDU 길이 정보를 사용하여 CPCS-PDU를 재조립하게 된다. 재조립 프로세싱 블럭(131)은 AAL5 ATM 접속이면서 메시지 모드인 경우와 AAL3/4, AAL0, 미가공(Raw) 셀 접속의 경우 재조립 패킷 버퍼가 차면 패킷 버퍼의 위치 어드레스를 재조립 상태 큐(300)를 통하여 전달한다. 이 때 패킷 버퍼의 NEXT_PNTR의 값은 널 값으로 채워진다. 호스트 프로세서(101)는 재조립 상태 큐(300)를 통하여 전달되는 패킷 버퍼 위치 어드레스와 사이즈 정보를 사용하여 재조립 기능을 수행한다.
이상에서 설명한 바와 같이 본 발명에 의하면 다음과 같은 효과가 있다.
첫째, ATM 호스트에서 설정되는 ATM 접속의 수에 따라서 분해 및 재조립 관련 로컬 메모리 용량을 조절함으로써, 확장성(Scaleable) 있게 적응 가능한 구조를 제공한다.
둘째, 수신 셀을 해시 버킷 그룹별로 분류하여 ATM 셀의 일차적인 분류 작업을 수행함으로써, ATM 접속 별로 셀 헤더 검증 기간을 짧은 기간 내에 수행할 수 있는 효과가 있다.
세째, ATM 호스트에서 고속 시스템 버스를 가지고 있을 경우 호스트 메모리를 사용하여 분해 및 재조립 기능을 수행함으로써, ATM 호스트 어댑터의 로컬 메모리의 사용을 최소화함으로서 ATM 호스트 어댑터의 경비 절감 효과가 있다.
네째, 물리 매체로부터 전달되는 셀을 그 크기가 유연하게 가변 될 수 있는 재조립 셀 메모리를 사용하여 일차적으로 저장한 후 호스트 프로세서에게 전달함으로서 시스템 버스에서의 지연시간의 변화가 큰 경우에도 적응할 수 있는 효과가 있다.

Claims (17)

  1. 로컬 메모리가 로컬버스에 접속되고 이 로컬버스에 ATM 망 접속 제어기가 접속된 호스트 어댑터와, 호스트 프로세서와, 호스트 메모리와, 그리고 시스템 버스로 구성되고, 상기 ATM 호스트 어댑터가 동작하기 위한 초기화 및 분해할 패킷을 호스트 메모리에 준비하고 상기 호스트 메모리에 재조립된 패킷 정보를 상위 애플리케이션으로 전달하는 ATM 호스트에서의 ATM 망 접속 제어기에 있어서,
    시스템 버스에 접속하는 기능을 담당하는 시스템 버스 접속 블럭과;
    시스템 버스를 통한 송수신 ATM 셀의 DMA 기능을 담당하는 DMA 마스터와;
    내부의 디바이스 레지스터와 로컬 메모리내의 파라메터를 DMA 액세스하는 기능을 담당하는 DMA 슬레이브와;
    상기 호스트 메모리내에 저장되어 있는 패킷 정보를 분해하는 분해 프로세싱 블럭과;
    상기 로컬 메모리내에 저장되어 있는 수신 셀을 호스트 메모리를 사용하여 재조립하는 재조립 프로세싱 블럭과;
    상기 분해 프로세싱 블럭으로부터 전달된 셀을 UTOPIA 접속을 통하여 물리적 디바이스로 전달하는 UTOPIA-송신블럭과;
    상기 물리적 디바이스로부터 전달된 셀을 UTOPIA 접속을 통하여 재조립 프로세싱 블럭으로 전달하는 UTOPIA-수신블럭과;
    ATM 셀을 물리 매체 전송 프레임에 맞추어 송/수신하는 물리적 디바이스와;
    ATM 망 접속 제어기의 각 기능 블럭이 로컬 메모리를 액세스하고자 할 경우 이의 중재와 로컬 메모리의 특성에 맞추어 로컬 버스에 인터페이싱 하는 로컬 버스 중재기와;
    ATM 망 접속 제어기의 제어 및 상태 파라미터를 저장하는 디바이스 레지스터로 구성된 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  2. 제 1 항에 있어서,
    상기 DMA 마스터는,
    시스템 버스를 통해 셀 데이터 송/수신하기 위하여 시스템 버스 접속 블럭 마스터 기능, 분해 프로세싱 블럭 그리고 재조립 프로세싱 블럭과의 인터페이스 기능을 제공하고, 분해 프로세싱 블럭이 호스트 메모리로부터 패킷 읽기 요구를 할 경우 시스템 버스 접속 블럭에게 호스트 메모리 읽기 DMA 요구하게 되며, 시스템 버스 접속 블럭이 성공적으로 셀을 읽었을 경우, 이를 분해 프로세싱 블럭으로 전달하는 기능을 제공하고, 재조립 프로세싱 블럭이 호스트 메모리로 셀 쓰기 요구를 할 경우 로컬 메모리로부터 셀 정보를 읽은 후 시스템 버스 접속 블럭에게 호스트 메모리 쓰기 DMA 요구를 하고, 이 과정에서 수반되는 AAL5 CPCS-PDU에 대한 CRC-32 생성 및 검사 AAL3/4, OAM/RM 셀에 대한 CRC-10생성 및 검사 및 AAL5 CPCS-PDU에 대한 패딩 기능을 하드웨어적으로 제공하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  3. 제 1 항에 있어서,
    상기 DMA 슬레이브는,
    호스트 프로세서가 시스템 버스를 통해 디바이스 레지스터나 로컬 메모리 정보를 읽고/쓰기 위한 DMA 기능을 수행시에 호스트 프로세서가 버스트한 데이타를 쓰기 명령을 할 경우 시스템 버스 접속 블럭으로부터 전달되는 데이타를 임시 버퍼에 저장한 후 디바이스 레지스터나 로컬 메모리에 버스트하게 DMA 전달을 하며, 호스트 프로세서가 버스트한 데이타를 읽기 명령을 할 경우 디바이스 레지스터나 로컬 메모리로부터 관련 정보를 읽어서 시스템 버스 접속 블럭기능 블럭으로 전달하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  4. 제 1 항에 있어서,
    상기 분해 프로세싱 블럭은,
    로컬 메모리내의 분해 상태 큐, 분해 전송 링, 분해 설명자 테이블, 분해 VC 테이블, 분해율 테이블을 사용하여 CBR, VBR, UBR 트래픽 특성을 가지는 패킷을 호스트 메모리를 사용하여 분해하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  5. 제 4 항에 있어서,
    상기 분해 상태 큐는,
    로컬 메모리 내에 존재하며 분해 프로세싱 블럭은 호스트 메모리내의 패킷에 대한 분해 작업이 완료된 경우 분해 결과 정보를 분해 상태 큐에 저장한 후 디바이스 레지스터의 인터럽트 레지스터를 통하여 호스트 프로세서에 전달하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  6. 제 4 항에 있어서,
    상기 분해 전송 링은,
    호스트 프로세서가 호스트 메모리내에 분산되어 있는 분해 패킷 버퍼 별로 버퍼 위치, 크기와 분해 VC 테이블 엔트리 인덱스 정보 등을 순차적으로 분해 프로세싱 블럭으로 전달할 때 사용하며, 분해 프로세싱 블럭은 분해 전송 링의 엔트리 내용을 순차적으로 읽은 후 분해 VC 테이블 엔트리 인덱스 별로 분해 설명자 테이블을 사용하여 ATM 접속별로 링크 리스트를 구성하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  7. 제 4 항에 있어서,
    상기 분해 설명자 테이블은,
    분해 전송 링을 통하여 전달되어온 정보를 순차적으로 분해 VC 테이블 엔트리 별로 링크 리스트를 구성하여 저장하는 부분과 프리(free)한 분해 설명자 테이블 엔트리들을 링크 리스트 부분으로 구성되며, 분해 프로세싱 블럭은 분해 전송 링으로부터 전달되는 패킷 버퍼 설명 내용을 프리 분해 설명자 테이블 엔트리를 사용하여 ATM 접속 별로 링킹하며, 분해이 완료된 분해 설명자 테이블의 엔트리는 프리 분해 설명자 테이블 엔트리에 링킹하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  8. 제 4 항에 있어서,
    상기 분해 VC 테이블의 각 엔트리는 접속 셋업된 ATM 접속에 대한 분해 정보 즉 ATM 셀 헤더, AAL 타입, 현재 분해하고 있는 분해 설명자 테이블 링크 리스트의 헤드 및 테일 위치 정보 및 AAL5 접속의 경우 임시적인 CRC-32의 값을 저장하는 기능을 제공하며, 호스트 프로세서가 분해 VC 테이블의 초기화를 담당하고, 분해 프로세싱 블럭은 초기화가 이루어진 분해 VC 테이블을 사용하여 분해가 이루어진 셀 페이로드에 셀 헤더를 추가하여 셀을 구성하고, 분해가 완료된 AAL5 접속에 대해서는 CRC-32값을 추가하여 전달한 후 CRC-32 영역의 값을 모두 '1'로 초기화 하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  9. 제 4 항에 있어서,
    상기 분해 프로세싱 블럭은, 분해 율 테이블을 사용하여 CBR,VBR, UBR 트래픽에 대한 트래픽 형성 기능을 제공시에 분해 프로세싱 블럭은 그 분해율 테이블 엔트리를 순차적으로 검색하면서 분해할 ATM 접속의 순서를 결정하며, 그 분해율 테이블은 CBR과 VBR 서비스만을 위하여 사용되고, 그 분해율 테이블의 각 엔트리 검색을 통하여 서로 다른 ATM 접속에 해당되는 셀을 유연하게 다중화하고, 하나의 ATM 접속에 대해서 다수의 분해율 테이블 엔트리를 적절하게 할당함으로서 접속별 할당된 최대 대역폭이내에서 셀을 전달하게 될 때, 분해 프로세싱 블럭은 CBR, VBR 접속 상으로 전달할 셀 데이터가 없을 경우 UBR 접속에 해당되는 셀을 별도의 UBR 링크 리스트를 사용하여 전송시에 UBR 링크 리스트는 분해 VC 테이블 엔트리를 사용하여 구성할 때, UBR 접속에 해당되는 분해 VC 테이블 엔트리는 서로 링킹되어 UBR 링크 리스트를 구성하는 것을 특징을 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  10. 제 1 항에 있어서,
    상기 재조립 프로세싱 블럭이,
    로컬 메모리 내에 재조립 상태 큐, 재조립 셀 버퍼, 재조립 프리 버퍼 설명자 테이블, 재조립 VC 테이블, 재조립 해시 테이블 을 사용하여 물리매체를 통하여 수신된 셀을 호스트 메모리를 사용하여 재조립하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  11. 제 10 항에 있어서,
    상기 재조립 상태 큐는,
    로컬 메모리내에 존재하며 재조립 프로세싱 블럭은 수신 셀을 호스트 메모리을 사용하여 패킷 재조립 작업 완료한 경우 결과 정보를 재조립 상태 큐에 저장한 후 디바이스 레지스터의 인터럽트 레지스터를 통하여 호스트 프로세서에 전달하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  12. 제 10 항에 있어서,
    상기 재조립 셀 메모리가 물리적 디비이스로부터 전달되는 셀을 임시 저장하고, 재조립 셀 메모리는 프리 셀 버퍼와 사용 셀 버퍼들의 링크 리스트로 구성되고, 사용 셀 버퍼는 MAC 블럭에서 수신된 셀의 해싱 기능으로부터 구해지는 해시 버킷 체인 포인터와 수신된 셀 중 HEC 영역을 제외한 수신 셀 헤더, 수신 셀 페이로드 영역으로 구성되는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  13. 제 10 항에 있어서,
    상기 재조립 프리 버퍼 설명자 테이블은,
    수신된 셀을 재조립 할 수 있는 호스트 메모리내의 엠프티 패킷 버퍼의 주소 및 크기 정보를 간직하고, 재조립 프로세싱 블럭은 특정 접속에 속하는 첫 셀을 수신하면 재조립 프리 버퍼 설명자 테이블로부터 관련 정보를 페치하며, 이를 사용하여 호스트 메모리에 수신된 셀을 재조립시에 재조립 프리 버퍼 설명자 테이블의 초기화 및 관리는 호스트 프로세서에서 담당하며 재조립하는 특정 패킷 버퍼가 모두 사용 완료 되었을 경우 재조립 프로세싱 블럭은 재조립 프리 버퍼 설명자 테이블을 사용하여 새로운 패킷 버퍼를 페치한 후 셀의 재조립 작업을 재개하여, 사용 완료된 재조립 패킷 버퍼의 위치정보는 재조립 상태 큐를 통하여 호스트 프로세서로 전달되고 호스트 프로세서는 이를 처리한 후 재조립 프리 버퍼 설명자 테이블에 다시 채워넣는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  14. 제 10 항에 있어서,
    상기 재조립 VC 테이블의 각 엔트리는 설정된 ATM 접속에 대한 재조립 정보를 저장할 때, 재조립 VC 테이블의 각 엔트리 내용은 호스트 프로세서에 의하여 초기화가 이루어질 때 재조립 VC 테이블의 특정 엔트리들은 하나의 해시 버킷 체인을 구성하여 수신된 셀 헤더의 비준에 사용되고 수신 셀로부터 패킷 재조립이 완료된 AAL5 접속에 대해서는 CRC-32값을 모두 '1'로 초기화하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  15. 제 10 항에 있어서,
    상기 재조립 해시 테이블이,
    해시 테이블 인덱스 영역, 해시 버킷 셀 프로세싱 모드 영역, 해시 버킷 체인 포인터 영역으로 구성되며, 모드 2 비트는 해시 버킷별로 수신된 셀이 전달 셀인지 폐기 셀인지를 구별하는 데 사용되고, 재조립 해시 테이블의 해시 버킷 체인 포인터는 재조립 VC 테이블내의 특정 해시 버킷 체인 시작 위치를 나타내는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  16. 제 10 항에 있어서,
    상기 재조립 프로세싱 블럭이,
    재조립 셀 버퍼의 사용 셀 버퍼를 순차적으로 검색하면서 해시 버킷 체인 포인터와 수신 셀 헤더를 읽은 후, 해시 버킷 체인 포인터에 해당하는 재조립 VC 테이블 엔트리로부터 셀 헤더 값과 다음 재조립 VC 테이블 엔트리 포인터를 페치한 후 수신 셀 헤더 값이 재조립 VC 테이블 엔트리의 셀 헤더 값과 매칭 되는지를 재조립 VC 테이블 내의 해시 버킷 체인을 사용하여 검사하는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
  17. 제 10 항에 있어서,
    상기 재조립 프로세싱 블럭은,
    특정 VCC상으로 재조립 된 정보를 패킷 버퍼에 저장한 후 패킷 버퍼의 마지막 워드 위치에 패킷 버퍼 링크 포인터를 저장하며, 이 값은 재조립되는 다음 패킷 버퍼를 링크하는 데 사용되고, 각 패킷 버퍼 의 첫 워드는 해당 패킷 버퍼의 크기를 나타낼 때, 호스트 프로세서는 패킷 버퍼를 구성할 때 패킷 버퍼의 크기를 미리 표기하며, 재조립 프리 버퍼 설명자 테이블 구성 시에 패킷 버퍼별로 적절한 사이즈를 파악하여 그 값을 표시하는데 호스트 프로세서 측에서 동일한 크기의 패킷 버퍼를 사용할 경우 별도의 사이즈 표시를 위한 영역을 표시 하지 않을 수도 있는 것을 특징으로 하는 ATM 호스트 어댑터 분해 및 재조립장치.
KR1019970071633A 1997-12-22 1997-12-22 에이티엠 호스트 어댑터 분해 및 재조립장치 KR100248575B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970071633A KR100248575B1 (ko) 1997-12-22 1997-12-22 에이티엠 호스트 어댑터 분해 및 재조립장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970071633A KR100248575B1 (ko) 1997-12-22 1997-12-22 에이티엠 호스트 어댑터 분해 및 재조립장치

Publications (2)

Publication Number Publication Date
KR19990052184A KR19990052184A (ko) 1999-07-05
KR100248575B1 true KR100248575B1 (ko) 2000-03-15

Family

ID=19528089

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970071633A KR100248575B1 (ko) 1997-12-22 1997-12-22 에이티엠 호스트 어댑터 분해 및 재조립장치

Country Status (1)

Country Link
KR (1) KR100248575B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100428863B1 (ko) * 2001-06-14 2004-04-28 주식회사 현대시스콤 고속 비동기 전송 모드 물리계층 처리장치의 프로세서정합 장치

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3673951B2 (ja) デスクトップ用非同期転送モードアダプター
US5796735A (en) System and method for transmission rate control in a segmentation and reassembly (SAR) circuit under ATM protocol
JP3819484B2 (ja) Mpegパケットをパケット化およびセグメント化する装置および方法
JP2990345B2 (ja) ネットワークインターフェース
US5867480A (en) Method and apparatus for controlling congestion in a network node
US6466997B1 (en) Method and apparatus for performing TX raw cell status report frequency and interrupt frequency mitigation in a network node
US5970229A (en) Apparatus and method for performing look-ahead scheduling of DMA transfers of data from a host memory to a transmit buffer memory
US5941952A (en) Apparatus and method for transferring data from a transmit buffer memory at a particular rate
US5822612A (en) Apparatus and method for managing schedule table pointers
US6067563A (en) Method and apparatus for avoiding control reads in a network node
US6804243B1 (en) Hardware acceleration for segmentation of message packets in a universal serial bus peripheral device
US5999980A (en) Apparatus and method for setting a congestion indicate bit in an backwards RM cell on an ATM network
KR100256677B1 (ko) 공유 매체 액세스가 가능한 비동기 전달 모드 호스트 어뎁팅 장치
US5960215A (en) Transmit data FIFO for flow controlled data
US20020067695A1 (en) Method for interfacing an atm network to a pc by implementing the atm segmentation and reassembly functions in pc system software
US20010014100A1 (en) Packet buffer equipment
US7215670B1 (en) Hardware acceleration for reassembly of message packets in a universal serial bus peripheral device
US5862206A (en) Method and apparatus for performing raw cell status report frequency mitigation on transmit in a network node
KR100236035B1 (ko) Atm 망접속기에서 서브 테이블을 이용하여 가상채널의 대역을 할당하는 방법
US20040028053A1 (en) Direct memory access circuit with ATM support
KR100248575B1 (ko) 에이티엠 호스트 어댑터 분해 및 재조립장치
KR100379379B1 (ko) 이동 통신 시스템에서 aal-2/aal-5 처리 장치
KR100525542B1 (ko) Atm 셀을 이용한 데이터 송수신 장치
US5995995A (en) Apparatus and method for scheduling virtual circuit data for DMA from a host memory to a transmit buffer memory
US6212567B1 (en) Method and apparatus for performing raw cell status report frequency mitigation on receive in a network node

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

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee