상기의 기술적 과제를 이루기 위한, 본 발명에 따른 통신 장치의 바람직한 실시예는, 이더넷 기반의 수동형 광통신망(Ethernet-Passive Optical Network ; EPON)을 위한 통신 장치에 있어서, 프레임에 포함된 프리앰블로부터 LLID(Logical Link Identification) 정보를 추출하는 에뮬레이션 부계층; 및 상기 LLID 정보에 응답해서 목적지 MAC(Media Access Control) 주소 및 VLAN ID를 위한 필터링 주소테이블을 생성 및 관리하고, 상기 프레임을 상위 계층으로 포워딩할 것인지 ONU(Optical Network Unit) 측으로 반사할 것인지 여부를 결정하여, 상기 EPON 시스템에 연결된 복수 개의 ONU들간의 점-대-점 통신과 VLAN(Virtual LAN) 멀티캐스트를 제공하는 PON(Passive Optical Network) 브릿지 부계층;을 구비한다.
바람직하게는, 상기 PON 브릿지 부계층은, 상기 상위 계층으로부터 전송된 하향 프레임을 소정의 내부 데이터 포맷으로 바꾸고, 상기 프레임에 대한 FCS 검사 및 프레임 정합 기능을 수행하는 송신입력처리부; 상기 송신입력처리부를 통해 입력된 상기 프레임을 저장하는 송신입력큐; 상기 송신입력큐에 저장된 상기 프레임 데이터에 응답해서 목적지 주소 룩업 및 VLAN ID 룩업 중 어느 하나를 수행하는 송신룩업 및 학습부; 상기 송신룩업 및 학습부로부터 입력되는 상기 프레임 데이터를 우선순위에 따라 저장하여 상기 PON-MAC Control 부계층에게 전달하는 송신출력큐; 상기 PON-MAC Control 부계층으로부터 전송된 상향 프레임을 우선순위에 따라 저장하는 수신입력큐; 상기 수신입력큐에 저장된 상기 프레임에 응답해서 목적지 주소 룩업 및 VLAN ID 룩업 중 어느 하나를 수행하여 해당 목적지 주소 및 상기 LLID 값을 알아내는 수신룩업 및 학습부; 상기 목적지 주소 룩업 결과가 저장되는 필터링 데이터베이스 테이블; 상기 VLAN ID 룩업 결과가 저장되는 VLAN ID 테이블; 상기 송신룩업 및 학습부, 및 상기 수신룩업 및 학습부의 제어에 응답해서 상기 필터링 데이터베이스 테이블 및 상기 VLAN ID 테이블에 대한 데이터 기록 및 관리를 수행하는 테이블 제어부; 상기 수신룩업 및 학습부를 통해 상기 수신입력큐에 저장된 상기 프레임을 받아들여 저장하는 수신출력큐; 및 상기 수신출력큐에 저장된 상기 프레임을 소정의 데이터 포맷으로 바꾸어 상기 상위계층으로 전송하는 수신출력처리부;를 구비한다.
이에 의해, 이더넷 프로토콜을 그대로 사용할 경우 ONU 간의 통신을 지원할 수 없었던 문제와 802.1D와의 호환성 문제를 해결할 수 있다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.
본 발명의 설명에 앞서 도 1 내지 도 5를 참조하여 본 발명이 적용되는 EPON 액세스 네트워크 망의 구조 및 특성을 살펴보면 다음과 같다.
도 1은 본 발명이 적용되는 EPON 액세스 네트워크 망 구조도이다.
향후 모든 서비스는 IP 망으로 통합되는 추세이며, IP 패킷을 가장 효과적으로 전달하는 이더넷 데이터 링크를 PON 가입자 망에 적용하는 것이 EPON 가입자 망이다.
OLT 시스템은 망 측의 국사(예를 들면, 전화국)에 위치하고, ONU는 가입자의 인근 옥외에 설치되어 다수의 가입자가 기존의 전화선, 동축케이블, 단거리 무선등으로 접속하여 FTTC(Fiber To The Curb) 광가입자망을 구성한다. 그리고 ONT는 가입자 댁내에 설치되어 FTTH(Fiber To The Home) 광가입자망을 구성한다.
아래에서 상세히 설명하겠지만, 본 발명에서는 EPON 시스템이 점-대-다점 통신환경에서 마치 여러 개의 점-대-점 링크처럼 보이게 하여 IEEE 802.1D 브릿지와의 호환성을 유지할 수 있도록, 기존의 이더넷 프리앰블을 도 2에 도시된 ONU ID 에 해당하는 LLID(Logical Link IDentification) 값을 포함하는 8 바이트의 EPON 프리앰블로 대치한다.
도 2는 본 발명의 일 실시예에 따른 EPON 프레임의 포맷을 보여주는 도면이고, 도 3은 본 발명의 다른 실시예에 따른 EPON 프레임의 프리앰블에서 LLID를 추출하는 포맷을 도시한 도면이다.
도 2 및 도 3을 참조하면, EPON 프레임은 8 바이트의 EPON 프리앰블 및 64 ~ 1518 바이트의 MAC 프레임으로 구성된다. EPON 프리앰블에 포함된 LLID는 하향에 있어서는 해당 프레임이 향하고 있는 ONU를 나타내고, 상향에 있어서는 해당 프레임을 송신한 ONU를 나타낸다.
LLID의 MSB를 모드비트로 할당하여 PON-tag를 만들게 되는데, 모드비트가 1일 경우는 방송을 표시하고, 0일 경우는 점-대-점 에뮬레이션을 표시한다. 또한, LLID는 16 비트(즉, 2 바이트) 값을 가지며, ONU가 OLT에 등록될 때 OLT에 의해서 해당 ONU에 할당되고, LLID 값이 FFFF가 아니고 최상위 비트가 1일 경우에 anti-LLID를 표시한다. 이 anti-LLID는 하향으로 프레임을 보낼 때 사용하는 것으로서, "특정 LLID를 제외하고 모두" 라는 뜻을 가진다. 방송 LLID는 LLID 값이 FFFF 일때를 말하며, OLT에 연결된 전체 ONU가 받을 수 있다.
본 발명에서 ONU-to-ONU 링크는 상향 LLID와 하향 anti-LLID를 사용하게 된다. 이 같은 LLID를 이용하게 되면 EPON 시스템이 점-대-다점 통신환경에서 마치 여러 개의 점-대-점 링크처럼 인식되어, 상위 브리지와의 호환을 맞추게 된다. 예를 들어, 어떤 ONU가 다른 ONU로 가는 프레임을 올려 보내는 경우, 그 프레임은 해당 목적지 ONU에게만 전달되도록 한다. 이 경우, 받은 상향 LLID와 다른 값을 가지는 하향 LLID 값이 사용된다. 이는 브리지에서 볼 때는 물리적으로 같은 선로에서 받아서 같은 선로로 다시 내보내는 것이지만, 다른 선로로 포워딩(forwarding)한 것과 같이 작동하게 된다. 이러한 LLID를 이용한 EPON에서의 효율적인 데이터 링크가 도 4에 도시되어 있다.
IEEE 802.1D는 복수 개의 엔드 스테이션과 브릿지들이 연결되어 있는 점-대-점 LAN 및 공유 LAN들로 구성된 네트워크를 가정하여 구성된다. 엔드 스테이션들은 데이터 프레임을 발생시키고 수신한다. 브릿지들은 각 데이터 프레임들을 향하고 있는 최소한 그 스테이션까지 프레임을 배달할 수 있도록 LAN에서 LAN으로 프레임을 중계한다. 이 때, 프레임이 향하고 있는 임의의 엔드 스테이션에 도달할 필요가 없다면, 브릿지들은 임의의 LAN 상에 해당 데이터 프레임을 송신하지 않음으로써 대역폭을 보호한다. 그리고, 프레임이 어디를 향하는지 불확실할 때, 브릿지는 대역폭 보호보다는 연결성을 선호하여 프레임을 지나치게 전송하게 된다.
IEEE 802.1 브릿지에 의해 기대된 공유 LAN의 정의를 만족시키기 위해, OLT는 다른 ONU로 향하는 유니캐스트 프레임을 제외하고, ONU로부터 수신된 모든 멀티캐스트 또는 브로드캐스트 프레임을 반사해야 한다. 브릿지나 LAN에서의 연결 실패를 고려하기 위하여 대부분의 bridged LAN 네트워크는 리던던시(redundancy)를 포함한다. 그 결과, 목적지 스테이션과 시작 스테이션 사이에 대부분의 데이터 프레임을 위해 이용 가능한 다수의 물리적 경로가 존재하게 된다. 그러나, 만일 모든 브릿지가 모든 LAN 상에 수신된 모든 데이터 프레임을 단지 flood 시키게 된다면, 이들 리던던트 경로로 인하여 각 데이터 프레임이 끝없이 복제되는 결과를 초래하게 된다. 이와 같은 meltdown을 피하기 위해, IEEE 802.1D 브릿지는 물리적 토폴로지 전체에 스패닝 트리(Spanning Tree)를 만들게 된다.
도 5는 PON Native Mode에서의 802.1D의 비호환성(Incompatible) 예를 보여주는 도면이다.
도 5를 참조하면, 각각의 ONU는 또 다른 경로로 LAN에 연결 되어있고, ONU1(B1)이 루트 브릿지(Root bridge)일 때 STP(Spanning Tree Protocol)를 적용한 결과 발생된 루프(Loop)가 도시되어 있다. 이 경우, 방송 프레임을 보내게 되면 프레임의 복사가 반복되어 flooding 되어, 브릿지의 STP 기능에 대해 비호환성이 발생하게 된다.
도 4 및 도 5를 참조하여 설명한 바와 같이, EPON 망이 가지고 있는 제약 조건들에도 불구하고, EPON 망에서 IEEE802.1D의 표준을 지키면서 EPON 망에서 ONU간의 점-대-점 통신을 제공할 수 있도록 PON 브릿지의 기능을 구현하는 방안을 살펴보면 다음과 같다.
도 6은 본 발명의 바람직한 실시예에 따른 PON 브릿지 기능 구현을 위한 공유 랜 에뮬레이션(Shared LAN Emulation)의 구조를 보여주는 도면이다.
도 6을 참조하면, 공유 랜 에뮬레이션은 PON 브릿지(100), 논리 MAC 계층(Logical MAC Layer)(200), 및 에뮬레이션 계층(Emulation Layer : EL)(400)으로 구성된다. 에뮬레이션 계층(400)은 ONU로부터 올라온 프레임의 LLID를 보고 이를 해당 논리 MAC(200)으로 넘겨준다. 논리 MAC 계층(200)은 수신된 프레임에 대한 MAC 처리 후, 해당 프레임을 상위계층인 PON 브릿지(100)로 넘겨준다.
에뮬레이션 계층(400)은 MPCP(Multi-Point Control protocol)에서 네트워크 장비의 자원 관리를 위한 자원을 자동 생성하는 Auto Discovery 과정을 통해 획득된 LLID를 받아서 Update_LLID 레지스터(410, 420, 또는 430)에 저장한다. 그리고, 프레임을 송신할 때는 논리 MAC 계층(300)으로부터 MAC 프레임을 받아 Update_LLID 레지스터(410, 420, 또는 430)에 저장된 LLID를 이용하여 도 2 또는 도 3에 도시된 바와 같은 8 바이트의 EPON 프리앰블을 생성한다.
도 2에 도시된 프리엠블의 경우, EPON 프리앰블은 1 바이트의 SFD(Start Frame Delimiter) 데이터, 4 바이트의 Reserved 데이터, 2 바이트의 LLID 데이터, 및 1 바이트의 CRC(Cyclic Redundancy Check) 데이터로 구성된다. EPON 프리앰블에 대한 CRC 생성은 CRC-8 을 이용하여 계산한다. 생성된 EPON 프리앰블은 MAC 프레임 앞에 삽입되어 GMII(Gigabit Media Independent Interface)를 통하여 PCS(Physical Coding Sublayer)로 전달된다.
다시 도 6을 참조하면, 프레임의 수신시 에뮬레이션 계층(400)은 LLID가 포함된 EPON 프리앰블이 붙은 프레임을 수신하여 EPON 프리앰블에 대한 CRC 검사를수행하고 EPON 프리앰블에서 LLID 값을 추출한다. 그리고, EPON 프리앰블에 대한 CRC 오류가 없을 경우, 추출된 LLID와 방송 LLID, anti-LLID 및 Update_LLID 레지스터에 저장된 LLID를 비교하여 LLID 필터링을 수행한다.
예를 들어, ONU의 에뮬레이션 계층은 만일 추출된 LLID가 방송 LLID 이고 Update_LLID 레지스터에 저장된 LLID와 같다면, 무조건 성공(success)으로 인식한다. 그리고, 추출된 LLID가 anti-LLID이고 Update_LLID 레지스터에 저장된 LLID의 하위 15 비트가 추출된 anti-LLID의 하위 15 비트와 같다면 해당 프레임을 폐기하고, 다르면 히트(hit) 시킨다. LLID 비교에서 히트(hit)일 경우만 MAC 서브블록에게 MAC 프레임을 전달한다.
그리고, OLT 에뮬레이션 계층은 추출된 LLID가 저장된 전체 ONU의 LLID 테이블에 존재하지 않으면 해당 프레임을 폐기하고, 만일 존재한다면 히트시키고 LLID 값을 상위계층으로 올려 보내는 기능을 수행한다.
도 7은 도 6에 도시된 PON 브릿지(100)의 동작을 설명하기 위한 도면이다.
도 7을 참조하면, PON 브릿지(100)의 기능은, MAC 상위에 논리적 링크를 상호 연결하는 PON 특유의 브릿지 기능으로써, N 개의 LLID(즉, 논리링크)(1011, 1012, ..., 101n), N 개의 anti-LLID(1021, ..., 102n), 방송 포트인 1 개의 ULLID(Universal LLID ; 1001)를 포함하는 2N+1 개의 포트가 PON 측에 구성된다. 여기서, anti-LLID 식별자를 갖는 이더넷 프레임은 해당 LLID에 대응되는 ONU 자신은 수신하지 못하고 다른 ONU들은 모두 수신할 수 있는 링크를 의미한다. 이것은 특정 ONU가 방송 프레임을 발생하였을 때 상향으로 프레임을 보내는 동시에 같은PON의 다른 ONU에도 단 한 개의 방송 프레임을 보냄으로써, 모든 ONU들이 프레임을 수신하도록 한다. ULLID는 상위에서 내려온 프레임을 PON 내의 모든 ONU가 받을 수 있도록 하는 포트이다. 따라서, ULLID를 식별자로 달고 프레임이 하향 전송되면 모든 ONU가 상기 프레임을 수신하게 된다.
도 7에는 모든 가능한 프레임 전달 경로가 도시되어 있다. 화살표로 표시된 프레임 전달 경로는 각 포트(즉, LLID)의 분석에 의해 알 수 있다. 이를 위해 PON 브릿지(100)에서는 IEEE 802.1D 브릿지와 유사한 MAC 주소 및 LLID에 대한 학습 및 룩업 기능이 수행된다. 그리고, VLAN에 의한 멀티캐스트 기능과 보안을 보강하기 위해 VLAN 테이블 관리를 위한 학습 및 룩업 기능이 수행된다.
PON 브릿지(100)는 논리 MAC(300)으로부터 프레임을 받았을 때는 프레임의 VLAN 태그를 보고 802.1Q의 최대 8 개의 우선순위 큐(Priority Queue, 도 9 참조)에 프레임을 저장한 후, VLAN의 우선순위 값에 따라서 순서대로 프레임을 출력시킨다. 그리고, 출력된 프레임의 목적지 주소를 학습하여 필터링 데이터베이스(Filtering DB : FDB)(도 9 및 도 10 참조)에 저장한 후, 이를 GMII 인터페이스를 통해 스위치 또는 NP(Network Processor)로 출력시킨다.
PON 브릿지(100)는 GMII 인터페이스를 통해 스위치로부터 상향 프레임을 받았을 경우 해당 프레임의 목적지 주소(Destination Address ; DA) 값을 보고 해당 주소의 위치를 판단한다. 판단 결과, FDB에 있는 해당 주소가 상향의 스위치 네트워크에 있는 것이라면 그 프레임을 폐기한다. 그리고, FDB에 해당 주소가 없다면 상향 프레임의 VLAN 태그의 우선순위 필드에 따라서 해당 프레임을 최대 8 개의 우선순위 큐에 저장하고, VLAN 태그의 우선순위 필드에 따라서 우선순위 큐 프레임을 MAC 계층으로 전달한다. 이 외에도, PON 브릿지(100)는 스위치 또는 네트워크 프로세서로부터의 시작주소 학습을 통해 FDB를 기록하는 과정도 수행한다. 이에 대한 상세한 내용은 도 9 및 도 10을 참조하여 설명될 것이다.
상술한 바와 같이, 본 발명에 따른 PON 브릿지(100)는 IEEE 802.1D의 브릿지 기능과 호환 기능을 유지하면서 EPON 망에서 ONU간의 점-대-점 통신을 위해 ONU로부터 전달된 프레임의 LLID 및 목적지 주소에 해당되는 LLID를 바꾸어 줌으로써, 상기 프레임을 해당 논리 MAC을 통해 하위 계층으로 내려보내 주는 역할을 수행하게 된다. 이 때, 전송되는 프레임이 방송인 경우에는 해당 프레임을 별도의 방송용 논리 MAC(예를 들면, LM0)을 통해 내려보내게 된다. 이 경우, 방송용 비트를 세팅하게 된다. 이 때, 논리 MAC은 (LLID 의 수 x 2 +1)개 만큼 존재하게 되고, 공유랜 에뮬레이션 기능을 위해 프레임 형태가 이더넷 표준과 다르게 변경된다(도 2 참조). 상위계층에 대한 접속은 GMII 또는 SPI(System Physical Interface)를 통해 NP(Network Processor) 또는 L2/L3 스위치가 가능하다.
앞에서 설명한 바와 같은 PON 브릿지의 기능을 하드웨어적으로 구현하게 되면 다음과 같다.
도 8은 본 발명의 바람직한 실시예에 따른 PON 브릿지(100)가 구비된 EPON 시스템의 OLT와 ONU의 계층구조를 보여주는 도면이다. 도 8을 참조하면, EPON 시스템의 OLT와 ONU는 크게 물리 계층과 데이터 링크 계층으로 각각 구분된다.
물리계층에는 PCS(Physical Coding Sublayer ; 700, 700'), PMA(PhysicalMedia Attachment ; 800, 800') 및 PMD(Physical Media Dependent ; 900, 900') 계층이 포함된다.
PCS(700, 700')는 라인코딩으로 8B10B 알고리즘을 사용하며, 코드그룹 동기화 및 MAC 계층과의 데이터 송수신 기능을 가진다. PMA(800, 800')는 SerDes(Serialize and De-Serialize) 기능, 클록 및 데이터 복원기능, 및 PLL(Phase-Locked Loop) 기능을 가지며 직렬데이터에서 유효한 병렬 10비트의 코드그룹 생성을 위한 콤마 검출 기능을 가진다. PMD(900, 900')는 1.25Gb/s 버스트 모드 광송수신 기능을 가진다. 이는, OLT에서는 버스트모드 광수신 기능과 연속모드 광송신 기능을 가지며, ONU에서는 버스트모드 광송신 기능과 연속 모드 광수신 기능을 가진다.
데이터링크 계층에는 에뮬레이션 부계층(Emulation Layer 또는 Reconciliation Sublayer : RS)(400, 400'), MAC 부계층(300, 300'), PON-MAC Control 부계층(200, 200'), PON 브릿지 부계층(100, 100') 및 Emulated-MAC 부계층(90, 90')이 포함된다. 여기서, 데이터링크 계층과 물리계층간의 데이터 송수신은 GMII(Gigabit Media Independent Interface)를 통하여 이루어진다. GMII의 인터페이스 규격은 1기가 비트 및 그 이하의 속도의 이더넷 프레임을 처리할 수 있는 인터페이스 규격을 따른다.
에뮬레이션 부계층(400, 400')은 물리계층에서 올라온 프레임에 대해 프리앰블에 포함된 정보에 대한 CRC 검사를 수행하고 LLID(Logical Link Identification) 정보를 추출하여, 상위 계층에서 LLID별 MAC 부계층 처리를 수행할 수 있도록 지원한다. 그러나, ONU의 경우에는 해당 LLID인 경우에만 필터링 기능을 수행하여 상위로 올려보내 주는 기능을 수행한다.
상기 에뮬레이션 부계층(400, 400')은 데이터 송신시 PON-MAC Control 부계층(200)으로부터 도 3에 도시된 바와 같은 LLID가 붙은 프레임을 받아들인다. 상기 프레임에서 프리앰블의 6번째와 7번째 바이트에 LLID를 위치시키고, 3번째 바이트에 SFD(Start Frame Delimiter)를 삽입하고, 첫번째, 두번째, 네번째 및 다섯번째 바이트에 Reserved Word를 삽입한다. 상기 프레임의 3번째 SFD에서 7번째 바이트인 LLID까지의 총 5 바이트 프리앰블에 대한 CRC 값을 계산하여 8번째 프리앰블 바이트에 삽입하여 도 2에 도시된 바와 같은 EPON용 프리앰블을 만든 후, 이를 MAC 부계층에서 내려온 프레임 앞에 삽입하여 GMII를 통해 물리계층으로 전달한다.
MAC 부계층(300, 300')은 하향으로는 PON-MAC Control 부계층(200, 200')에서 전달된 이더넷 프레임 중 MPCP(Multi-Point Control Protocol)용 제어 프레임에 대한 FCS(Frame Check Sequence) 생성, IFG(Inter Frame Gap) 삽입, 및 하향 프레임에 대한 MIB(Management Information Base) 카운터 관리 등을 수행하고, 상향으로는 FCS 검사, 어드레스 필터링, 및 상향 프레임에 대한 MIB 카운터 관리 기능을 CPU에 제공하는 기능을 갖는다. 도 8에 도시된 바와 같이, MAC 부계층(300, 300')과 PON-MAC Control 부계층(200, 200')은 LLID별로 별도로 구성된다.
PON-MAC Control 부계층(200, 200')은 OLT의 경우 대역할당, 스케줄링, 및 기타 MAC 제어에 관련된 작업을 수행한다. 현재 IEEE 802.3ah에서는 이더넷 MAC 프레임 전송 규약을 보존하면서 PON 전송을 제어하기 위한 방식으로 MPCP를 권고하고있기 때문에, PON-MAC Control 부계층은 MPCP 기능부로도 명명이 가능하다.
PON 브릿지 부계층(100, 100')은 EPON과 관련하여 기본적인 단순 브릿지 기능과 함께 PON-tag별 목적지 MAC 주소 및 VLAN ID를 위한 필터링 주소테이블의 생성과 관리를 수행하여, EPON 시스템 내에서 ONU 간의 점-대-점 통신과 VLAN 멀티캐스트를 제공한다. 이에 대한 내용은 도 9 및 도 10을 참조하여 아래에서 상세히 설명될 것이다.
그리고, Emulated-MAC 부계층(90, 90')은 MAC 부계층(300, 300')의 기능과 유사하나, 상하향 이더넷 프레임 정합 및 FCS 검사, 포즈(PAUSE) 프레임 처리 등을 주로 수행한다.
도 9는 도 8에 도시된 본 발명의 바람직한 실시예에 따른 EPON OLT 시스템의 PON 브릿지 부계층(100)에 대한 상세 블록도이다. 여기서, 상기 PON 브릿지 부계층(100)의 상위계층으로는 NP(Network Processor) 또는 L2/L3 스위치(10)가 될 수 있다. 그리고, PON 브릿지 부계층(100)에서 상위계층으로의 접속방법으로는 GMII 또는 SPI가 사용될 수 있다.
도 9를 참조하면, 본 발명에 따른 PON 브릿지 부계층(100)은, 상위 계층으로 NP 또는 스위치(NP/Switch)(10)가 송신 MAC 포트와 수신 MAC 포트를 통해 연결되고, 하위 계층으로는 MPCP 기능을 수행하는 PON-MAC 부계층(150)이 연결된다.
PON 브릿지 부계층(100)의 상세 구성을 살펴보면, 먼저 수신출력처리부(101)는 수신출력큐(105)에서 데이터를 읽어 상위 NP 또는 스위치(10)로 데이터를 보내기 위해 32 비트의 데이터를 8 비트의 GMII 규격 신호로 바꾸어 준다. 수신출력처리부(101)는 송신입력큐(106)에 오버플로우(overflow)가 발생하게 되면 송신입력큐(106)로부터 PAUSE_REQ 신호를 전달받아 NP(10) 측으로 포즈(PAUSE) 프레임을 발생한다. 그리고, 송신입력큐(106)에 오버플로우가 발생하지 않는 경우에는 수신출력큐(105)에서 프레임을 읽어 NP(10)로 전달한다. 수신출력처리부(101)는 포즈 프레임 발생시에만 발생된 프레임에 대한 FCS 생성을 수행하고, SPI 인터페이스를 가지는 경우에는 해당 데이터를 SPI 형태로 SPI 처리부(103)로 보낸다.
수신출력큐(105)는 수신룩업 및 학습부(115)로부터 802.1Q 우선순위 필드에 따라서 수신입력큐(125)로부터 읽은 프레임을 일시 저장하는데 사용되고, 수신룩업 및 학습부(115)에 의해 수행된 목적지 주소의 룩업 결과 얻어진 해당 프레임의 주소가 ONU에 위치한 주소가 아니면 수신출력큐(105)에 해당 프레임을 저장하는 데 사용된다.
송신입력처리부(102)는 NP(10)로부터 GMII 또는 SPI 방식으로 프레임을 받아들여, 내부에서 사용하는 32비트 데이터로 바꾸고, 프레임에 대한 FCS 검사 및 프레임 정합 기능을 수행한다. FCS 검사는 기가비트 이더넷의 MAC 계층에서 사용하는 CRC-32방식을 사용한다. 수신된 데이터는 송신입력큐(106)에 기록된다. 송신입력처리부(102)에서의 FCS 검사결과 CRC 오류가 검출된 경우, 송신입력큐(106)에 저장된 프레임은 폐기된다. 이 때 수행되는 프레임의 폐기방법은 송신입력큐(106)의 제어주소를 프레임 기록 전 상태로 만드는 방법을 사용한다.
송신입력큐(106)는 송신을 위해 NP(10) 쪽에서 입력된 데이터 프레임들을 저장하고 있으며, 내부에 하나 이상의 프레임 데이터가 있을 경우에는 프레임 상태를송신룩업 및 주소학습부(116)에게 알려 줌으로써 데이터의 처리가 시작되도록 한다. 또한, 버퍼의 수준이 너무 올라가서 오버플로우가 발생할 상황이 되면 충분한 시간 전에 수신출력처리부(101)에게 PAUSE_REQ 신호를 발생함으로써, 수신출력처리부(101)로 하여금 포즈 프레임을 발생하도록 한다. 그리고, 포즈 프레임에 대한 FCS를 계산하여 이를 포즈 프레임의 끝에 삽입하고, FCS가 삽입된 포즈 프레임을 NP(10)로 전달한다.
EPON에서 LLID는 도 2 및 도 3에 도시된 바와 같이 16비트 값을 가지며, ONU가 등록될 때 OLT에 의해서 ONU에 할당된다. 이 때, 한 ONU는 두 개 이상의 LLID를 가질 수도 있다. LLID는 운용하기에 따라 32개나 64개, 또는 더 많은 LLID 값이 사용될 수 있고, 16비트 LLID의 상위 한 비트를 사용하여 anti-LLID를 표시한다. 이 anti-LLID는 하향으로 프레임을 보낼 때 사용하는 것으로써 특정 LLID를 제외하고 모두라는 뜻을 가진다. 예를 들어 16비트 중에서 위에서 두 번째 비트를 anti로 사용한다고 했을 때 "1000000000000111" 라는 값은 "LLID 7번을 제외하고 모두" 라는 뜻을 가지므로 LLID 7번을 할당받은 ONU만 제외하고 모든 ONU가 해당 프레임을 받을 수 있게 된다.
송신룩업 및 학습부(116)는 송신입력큐(106)에서 프레임 데이터를 읽어들여 목적지 주소를 룩업 함으로써, 해당 MAC 주소가 ONU 측에 존재하는지, 또는 NP(10) 쪽에 존재하는지 여부를 알아낸다. 송신룩업 및 학습부(116)는, 룩업 결과 MAC 주소가 ONU 쪽에 존재하는 경우, 프레임 데이터에 적절한 LLID 값을 붙여 송신출력큐(126)로 보낸다. 이 때, 만일 해당 목적지 주소가 NP(10)에 존재하는 경우, 브릿지 규격에 따라 프레임을 폐기하게 된다. 그리고, 만일 목적지 주소가 어디에 위치하는지 아직 학습되어 있지 않으면 flooding을 수행하고, 프레임 데이터에 방송용 LLID를 붙여 송신출력큐(126)로 전송한다.
이 외에도, 송신룩업 및 학습부(116)는 입력 프레임의 근원지 주소(Source Address : SA)를 추출하고, 이를 테이블 제어부(110)를 통해 FDB(filtering database) 테이블(111)에 기록하는 역할을 수행한다. 즉, 추출된 근원지 주소가 NP(10)에 위치하고 있음을 기록하게 된다. 이렇게 새롭게 학습되거나 이미 학습된 내용이 다시 적힐 때는 데이터가 새로 갱신되었음이 표시되어, CPU에 의해서 수행되는 에이징(aging) 처리에 의해 해당 FDB 엔트리가 지워지지 않도록 한다. 또한 송신룩업 및 학습부(116)는 해당 프레임이 VLAN Tagged 프레임일 경우, 송신입력큐(106)에서 프레임 데이터를 읽어들여 목적지 주소 및 VLAN ID 룩업을 수행한다. 그럼으로써, 상위계층에서 수신한 VLAN ID가 ONU 측의 목적지 주소일 경우, 이를 근거로 하여 VLAN 테이블(112)에 대한 엔트리 관리를 수행하게 된다. 여기서, FDB 테이블(111)을 구성하는 각 엔트리는 일정 시간동안 근원지 주소가 관찰되지 않으면 자동으로 폐기 되게 구성된다. 이것을 에이징(aging)이라 하며, 그 주기는 10초에서 백만 초까지 프로그램이 가능하다.
송신출력큐(126)는 이미 룩업이 끝나서 LLID가 붙은 프레임들이 MPCP(200)로 전달되기 위해 대기하는 장소로서, 복수 개의 우선순위 큐(Priority Que)들로 구성된다.
우선순위 큐 제어부(122)는 802.1Q 프레임에 포함된 3비트의 우선순위 필드를 읽어들이고, MUX(128)를 통해 우선순위 값에 해당되는 송신출력큐(126)의 우선순위 큐에 해당 프레임을 저장한다.
송신출력큐(126)는 MPCP(200)에서 오는 읽기 신호가 송신 MUX(128)를 통해 입력되면 상기 송신출력큐(126)에 저장된 데이터를 출력하여 MPCP(200) 내부의 MUX(미 도시됨)로 전달한다.
우선순위 큐 제어부(122)는 또한 송신출력큐(126)의 각 우선순위 큐에 적어도 하나 이상의 프레임이 존재하는지 여부를 판별하고, 각 우선순위 큐에 적어도 하나 이상의 프레임이 존재할 경우, 각 우선순위 큐의 전체 프레임 수와, 첫 번째 프레임의 크기, 및 첫 번째 프레임의 헤더를 별도의 큐에 보관한 후, 이것이 MPCP(200)에게 제공될 수 있도록 송신출력큐(126)의 동작을 제어한다. 상기 정보는 MPCP(200)가 송신 스케쥴링을 수행할 때 사용되는데, 이 방식이 ONU의 MPCP 슬레이브와 PON 슬레이브에서 사용될 경우, 상기 정보는 주어진 남은 허용(grant) 기간 동안 큐에 대기하고 있는 프레임을 전송할 수 있는지 여부를 판단하는데 중요하게 사용된다.
수신입력큐(125)는 송신출력큐(126)와 마찬가지로 복수 개의 우선순위 큐들로 구성된다.
우선순위 큐 제어부(121)는 MPCP(200)로부터 입력되는 802.1Q 프레임에 포함된 3비트의 우선순위 필드를 읽어들이고, MUX(127)를 통해 우선순위 값에 해당되는 수신입력큐(125)의 우선순위 큐에 해당 프레임을 저장한다. 그리고, 수신입력큐(125)의 각 우선순위 큐에 적어도 하나 이상의 프레임이 존재하는지 여부를 판별하고, 각 우선순위 큐에 적어도 하나 이상의 프레임이 존재하는 경우, 수신 룩업 및 학습부(115)에 이 사실을 알려주어, 상기 수신 룩업 및 학습부(115)로 하여금 해당 프레임을 읽어 가도록 한다.
수신룩업 및 학습부(115)는 수신입력큐(125)에 프레임이 존재하는 경우, 테이블 제어부(110)를 통해 FDB 테이블(111)에서 목적지 주소 데이터에 대한 룩업을 수행한다. 그리고, 룩업 결과를 근거로 하여 해당 목적지 주소가 NP(10)측에 있는지 또는 ONU측에 있는지를 판별하고, 해당 목적지 주소가 ONU 측에 있는 경우, LLID 값은 어떤 값을 갖는지를 알아낸다. 룩업 결과, 목적지 주소가 NP(10) 측에 있는 경우 수신룩업 및 학습부(115)는 LLID를 제거하고 해당 프레임을 수신출력큐(105)로 보낸다. 그리고, 목적지 주소가 ONU측에 있는 경우 LLID 값을 해당 목적지 ONU의 LLID값으로 바꾸어 루프백 큐(123)로 보낸다. 그리고, 해당 목적지 주소가 어디에 존재하는지를 알 수 없는 경우에는 해당 프레임으로부터 LLID를 떼어내고 NP(10)로 전달함과 동시에 원래 수신했던 LLID의 anti-LLID 값을 해당 프레임에 달아서 MPCP(200)로 전달한다. 이러한 동작은 기존의 브릿지가 flooding하는 것과 같은 원리이다.
이어서, 수신룩업 및 학습부(115)는 MPCP(200)에서 받은 프레임에 포함된 LLID와 근원지 주소 값을 근거로 하여 해당 MAC 주소가 어느 LLID에 위치하는지를 알아낸다. 이와 같이 수신룩업 및 학습부(115)가 소정의 MAC 주소를 가진 station들이 NP(10) 측에 위치하는지, 아니면 LLID에 대응되는 ONU에 위치하는지를 알아내어 하나의 엔트리(entry)를 만들고, 이를 내부의 FDB 테이블(111)에 저장하는(해당근원지 주소가 ONU쪽에 있고 해당 LLID 값은 얼마이다 라는 정보를 기록함) 동작을 근원지 주소 학습이라고 한다. 이때, 수신룩업 및 학습부(115)는 FDB 테이블(111)에 근원지 주소에 대한 갱신이 일어났음을 표시함으로써, CPU가 처리하는 에이징(aging)에 의해 해당 엔트리가 지워지지 않도록 한다.
이 때, 만약 ONU에서 프레임을 방송하였다면, 수신룩업 및 학습부(115)는 해당 프레임의 LLID에 근원지 ONU의 anti-LLID를 붙여서 루프백 큐(123)로 보내는 동시에, LLID를 제거한 프레임을 수신출력큐(105)로 전달한다. 수신룩업 및 학습부(115)는 MPCP(200)에서 입력되는 프레임에서 VLAN ID 및 LLID를 읽어들인 후, 테이블 제어부(110)를 통해 이를 VLAN 테이블(112)에 기록한다. 그리고, 매 프레임 마다 VLAN ID를 룩업하여 각 ONU의 VLAN ID값을 학습한다. 학습 결과, 임의의 ONU가 동일한 VLAN 그룹에 속하는 다른 ONU로 프레임을 보내고자 하는 경우, OLT의 수신룩업 및 학습부(115)는 LLID에 대한 VLAN ID를 룩업을 수행하여 브로드캐스트 LLID를 붙인 후, 이를 ONU로 방송한다.
FDB 테이블(111)은 모든 MAC 주소에 대한 위치 정보를 저장하고 있으며, 이 값은 송신 및 수신부에 있는 룩업 및 학습부(115, 116)에 의해 읽혀지고 쓰여지게 된다. 또한 CPU에 의해 초기화되고, 에이징을 위해 주기적으로 읽혀지고 쓰여진다. FDB 테이블(111)의 엔트리 형식은 도 11에 도시되어 있다.
루프백 큐(123)는 OLT 시스템에 있는 PON 브릿지에만 존재한다. 루프백 큐(123)에는 임의의 ONU로부터 와서 다른 ONU로 가는 프레임이 저장되는데, 이 프레임들은 해당 목적지 ONU의 LLID를 앞에 달고 있다.
CPU 접속부(113)는 CPU와의 인터페이스를 담당하고, FDB 테이블(111)의 초기화 및 에이징 처리를 수행한다. SPI 처리부(103)는 PON 브릿지 부계층(100)과 NP 또는 스위치(10) 사이의 SPI 인터페이스를 담당한다.
도 10은 도 9에 도시된 테이블 제어부(110)의 동작을 설명하기 위한 도면이다. 테이블 제어부(110)는 PON 브릿지 내의 수신룩업 및 학습부(115)와 송신룩업 및 학습부(116)의 제어에 응답해서 FDB 테이블(111) 및 VLAN 테이블(112)에 대한 주소관리 기능을 수행한다. 이 중 FDB 테이블(111)에 대한 주소관리 방법을 살펴보면 다음과 같다.
도 10을 참조하면, OLT 시스템의 PON 브릿지는 1K의 엔트리를 갖는 FDB 테이블(111)을 구비한다. 테이블 제어부(110)로 MAC 목적지 주소(MAC Address ; 1101)가 입력되면, 이는 해시기능부(Hash function unit ; 1102)의 입력으로 사용되어 8비트의 해싱 출력 값(1103)을 생성하게 된다. 이를 해시 인덱스(Hash Index)라고 부른다. 해시 인덱스(1103)는 주소 기술자(Address Descriptor ; 1104)라 불리는 버퍼의 주소를 나타내며, 상기 버퍼는 256×10 비트의 크기를 갖는다. 주소 기술자(1104)는 256개의 10비트 시작 주소(start address)를 갖고 있으며, 10비트 시작 주소는 FDB 테이블(111)에 구비된 1,024개의 엔트리의 주소를 나타낸다. FDB 테이블(111)을 구성하는 각각의 엔트리의 구조는 다음과 같다.
도 11은 EPON OLT 시스템의 PON 브릿지에서 FDB 테이블(111)을 구성하는 각각의 엔트리 구조를 보여주는 도면이고, 도 12는 EPON OLT 시스템의 PON 브릿지에서 VLAN 테이블(112)을 구성하는 각각의 엔트리 구조를 보여주는 도면이다. 도 11및 도 12를 참조하면, FDB 테이블(111)과 VLAN 테이블(112)은 각각 총 11바이트의 엔트리들로 구성된다. 여기서, VLAN 테이블(112)을 구성하는 각각의 엔트리 구조는 도 11에 도시된 FDB 테이블(111)의 엔트리 구조와 비교할 때, 2 바이트의 LLID 대신 2 바이트의 VLAN ID가 포함되는 것을 제외하고, FDB 테이블(111)의 엔트리 구조와 동일하다. 따라서, 설명의 중복을 피하기 위해 이에 대한 상세 설명은 이하 생략하기로 한다.
도 11을 참조하면, FDB 테이블(111)을 구성하는 엔트리의 첫 번째 바이트는 3비트의 상태비트, 3비트의 예비비트(Reserved) 및 2비트의 포트 선택 비트(PORT)로 구성된다. 다음으로 2바이트의 LLID, 6바이트의 MAC 주소(MACADDR) 및 2바이트의 Link Pointer로 구성된다.
이들 중 엔트리의 첫 번째 바이트의 상태비트는 해당 엔트리가 유효(Valid)한지 여부를 나타내는 유효비트(Valid bit : V), CPU에 의해 초기에 세팅되고 자동갱신 되지 않는 영역을 나타내는 정적비트(Static bit : S), 및 학습 또는 룩업에 의해 정해진 시간 내에 한 번은 접근했음을 나타내어 CPU가 자동갱신하지 못하게 하는 에이징 비트(Aging bit : A)로 구성된다.
일반적으로, MAC 주소에 대한 해싱은 동일한 결과를 생성할 가능성이 있다. 따라서 동일한 해시 인덱스 값에 수많은 MAC 주소가 매핑될 수 있다. 즉, MAC 주소의 충돌이 야기될 수 있는 것이다. 따라서, 본 발명에서는 MAC 주소에 대한 충돌에도 불구하고 학습 또는 룩업을 수행할 수 있는 구조를 제시한다. 즉, 도 11에 도시된 48 비트의 MAC 주소(MACADDR)는 256개의 주소 기술자(1104)로만 매핑 되고, 주소 기술자(1104)를 구성하는 10비트의 내용은 1K의 FDB 테이블(111)의 엔트리의 위치를 나타낸다. 그리고, 엔트리의 마지막 2바이트(즉, Link Pointer)는 MAC 주소 충돌시 다음의 엔트리를 Linked list 방식으로 묶는 옵셋 주소로 사용된다. Linked list의 시작주소는 외부의 10비트의 Start pointer 레지스터(도 10의 1105)에 의하여 정할 수 있으며, 마지막 linked list 주소는 외부의 End pointer 레지스터(도 10의 1106)에 의하여 정할 수 있다. 즉, 본 발명에서는 주소 기술자(1104)에 의해 직접 사상되는 엔트리 영역을 먼저 설정하고, 이 이후의 영역은 모두 linked list 영역으로 사용하게 된다. 그럼으로써, MAC 주소에 대한 충돌에도 불구하고 학습 또는 룩업을 수행할 수 있게 된다. 여기서, Start pointer 레지스터(1105)와 End pointer 레지스터(1106)는 CPU에 의해 프로그램 되고, 주소 기술자(1104)는 CPU에 의해 초기화된다.
앞에서 설명한 바와 같이, 본 발명에서는 EPON 망에서 IEEE802.1D 의 표준을 지키면서 EPON 망에서의 ONU 간 점-대-점 통신 및 VLAN 멀티캐스트 통신을 제공하기 위해 필요한 PON 브릿지 계층의 구조를 제시하였다. 이는, 상기 PON 브릿지를 ASIC(Application-Specific Integrated Circuit)이나 FPGA(Field-Programmable Gate Array)로 구현할 경우 하드웨어 장치를 단순화하여 장치의 저가화로 시스템의 가격 경쟁력을 향상시킬 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.