KR100452640B1 - 데이터 패킷 수신 장치 및 방법 - Google Patents

데이터 패킷 수신 장치 및 방법 Download PDF

Info

Publication number
KR100452640B1
KR100452640B1 KR10-2002-0069556A KR20020069556A KR100452640B1 KR 100452640 B1 KR100452640 B1 KR 100452640B1 KR 20020069556 A KR20020069556 A KR 20020069556A KR 100452640 B1 KR100452640 B1 KR 100452640B1
Authority
KR
South Korea
Prior art keywords
signal
packet
data
address
write
Prior art date
Application number
KR10-2002-0069556A
Other languages
English (en)
Other versions
KR20040041712A (ko
Inventor
이재성
김영우
김성남
모상만
김용연
김명준
임기욱
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2002-0069556A priority Critical patent/KR100452640B1/ko
Priority to US10/460,919 priority patent/US7024498B2/en
Publication of KR20040041712A publication Critical patent/KR20040041712A/ko
Application granted granted Critical
Publication of KR100452640B1 publication Critical patent/KR100452640B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • 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
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • 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/5603Access techniques

Landscapes

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

Abstract

본 발명의 데이터 패킷 수신 장치 및 방법은, 기존 네트워크 및 입출력 정합장치용 반도체 설계 방식에 있어서의 문제점을 제거하여 하드웨어 비용 줄이면서, 채널 및 버스의 대역폭을 최대한 활용할 수 있도록 하는 데이터 패킷 수신 장치 및 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명은, 데이터 패킷을 입력받고, 상기 데이터 패킷의 헤더 부분의 각 필드를 검사하며, 에러정정코드를 이용하여 상기 데이터 패킷이 수신되는 데로 계속 누적계산을 수행하다가 데이터 패킷의 끝부분에 있는 에러정정코드가 수신되는 즉시 누적계산 결과의 값과 일치하는 지 여부를 판정하고, 이에 따라 패킷 입력을 완료하거나 혹은 폐기처분 하도록 패킷 무결성 신호 또는 패킷 결성 신호를 출력하는 검사 회로; 상기 데이터 패킷을 입력받아 실시간으로 분배하는 MUX; 및 상기 검사 회로로부터 상기 패킷 무결성 신호 또는 상기 패킷 결성 신호를 입력받고, 이에 따라 패킷 입력을 완료하거나 혹은 폐기처분 하는 복수개의 선입 선출 메모리를 포함한다.

Description

데이터 패킷 수신 장치 및 방법{APPARATUS FOR RECEIVING DATA PACKET AND METHOD THEREOF}
본 발명은 데이터 패킷 수신 장치 및 방법에 관한 것으로, 특히, 고속의 패킷 스트림을 원활히 처리함으로써, 네트워크 통신 및 입출력 채널의 대역폭(Bandwidth)을 최대한 활용할 수 있는 데이터 패킷 수신 장치 및 방법에 관한 것이다.
상대적으로 저속인 기존의 네트워크 통신 및 입출력 표준용 장치에 있어서, 일반적인 패킷의 모양은, 패킷의 헤더부분, 데이터부분, 오류정정 코드부분의 순서로 정의되어 있기 때문에, 정합장치의 수신단의 링크 계층과 같은 역할을 하는 회로에 패킷의 끝부분까지 모두 도착을 해야만 전송도중에 비트 오류가 있는 지 검사를 수행할 수 있고, 그 결과에 따라 패킷 폐기 및 상위 계층으로의 전달 여부가 결정될 수 있었다. 이러한 패킷의 구성 형태는 도 1에 도시되어 있다.
도 2a는 종래의 데이터 패킷 수신 장치를 나타낸 블록도로서, 이러한 종래의 데이터 패킷 수신 장치는, 수신되는 패킷(①)을 일시적으로 저장하고, 오류 판정 신호(③)에 따라 오류가 없는 경우에 저장된 패킷을 MUX(230)로 출력하는 메모리및 제어기(memory&controller)(210); 메모리 및 제어기(210)로부터 저장 데이터(②)를 입력받아 비트 오류 검사를 수행한 후, 그 결과를 오류 판정 신호(③)로서 메모리 및 제어기(210)로 출력하는 검사 회로(inspection logic)(220); 메모리 및 제어기(210)로부터 패킷(④)을 입력받아 선택된 선입선출 메모리(241~244)로 전달하는 MUX(230) 및 MUX(230)에서 입력받은 패킷을 선입선출의 방식으로 상위 계층으로 전달하는 복수개의 선입선출 메모리(241~244)를 포함한다.
상술한 종래의 데이터 패킷 수신 장치의 동작에 관하여 설명하면 다음과 같다.
메모리 및 제어기(210)에서 일단 수신되는 모든 패킷을 저장시킨 뒤, 검사 회로(inspection logic)(220)에 의하여 비트 오류 검사가 이루어지고, 그 결과를 다시 메모리 및 제어기(210)에 알려주어 오류가 없다면 상위계층으로 통하는 선입선출 메모리(241~244)를 통해 상위 계층으로 전달된다.
도 2b는 종래의 데이터 패킷 수신 방법을 나타낸 동작흐름도로서, 이에 관하여 설명하면 아래와 같다.
패킷 데이터 워드를 수신하는 단계(S201); 수신된 데이터 워드가 패킷의 끝인지 여부를 판단하는 단계(S202); 수신된 데이터 워드가 패킷의 끝이 아닌 경우에는 단계(S203); 수신된 데이터가 패킷의 끝인 경우에는 패킷 헤더를 처리하는 단계(S204); 패킷 데이터 및 오류정정부호 계산 과정을 수행하는 단계(S205); 계산된 오류정정부호와 패킷의 끝의 오류정정부호를 비교하는 단계(S206); 오류가 발견되었는지 여부를 판단하는 단계(S207); 오류가 발견된 경우에는 패킷을 버리는 단계(S208); 오류가 발견되지 않은 경우에는 상위 처리 계층으로 통하는 선입선출 메모리에 입력하는 단계(S209); 상위 처리 계층에서 패킷을 처리하는 단계(S210); 오류를 발견했는지 여부를 판단하고, 오류가 발견되지 않은 경우에는 상위 처리 계층에서 패킷을 처리하는 단계로 돌아가는 단계(S211); 및 오류가 발견된 경우에는 패킷을 덤프해서 버리는 단계(S212)를 포함한다.
그러나, 이러한 방식은 패킷이 상위계층으로 전달되기까지 잠복기간이 매우 큰 문제점이 있다. 이러한 상황하에서, 인피니밴드(InfiniBand), 기가비트이더넷(Giga-Bit Ethernet), 래피드아이오(RapidIO), 피씨아이 익스프레스(PCI Express)등의 차세대 네트워크 통신 표준 및 고속 입출력 표준들이 등장하면서, 고속 전송 패킷 스트림을 처리하기 위해서 단순히 기존의 블록 구성에서 버퍼용 메모리 사이즈의 크기를 늘림으로써 패킷 스트림을 일단 받아둘 수는 있었다. 그러나, 이러한 방법은 메모리의 비용이 증가하고, 제어하기가 어려워지며, 하드웨어 사이즈가 커짐으로써 전력소모가 커지는 문제점이 있다.
도 3은 종래의 데이터 패킷 수신 장치 내에 장착된 선입선출 메모리(241~244)를 나타낸 블록도로서, 이러한 종래의 선입선출 메모리(241~244)는, 이중 포트 SRAM(320)의 데이터 주소 상태에 따라 풀 신호(Full) 또는 엠프티 신호(empty)를 생성하고, 쓰기 인에이블 신호(write_enable_in)가 활성화되고, 풀 신호(Full)가 비활성화된 경우에 쓰기 승인 신호(write_allow)를 활성화하고, 쓰기 주소를 생성하여 출력하며, 읽기 인에이블 신호(read_enable_in)가 활성화되고, 엠프티 신호(empty)가 비활성화된 경우에 읽기 승인 신호(read_allow)를 활성화하고,읽기 주소를 생성하여 출력하는 FIFO 메모리 제어부(310) 및 쓰기 승인 신호(write_allow)가 활성화된 경우에 FIFO 메모리 제어부(310)에서 입력받은 쓰기 주소에 입력받은 데이터를 저장하고, 읽기 승인 신호(read_allow)가 활성화된 경우에 FIFO 메모리 제어부(310)에서 입력받은 읽기 주소에 저장된 데이터를 출력하는 이중 포트 SRAM(320)을 포함한다.
상술한 선입선출 메모리의 동작에 관하여 설명하면, 일반적으로, 전송계층과 같은 상위 계층은 도 3에 도시된 바와 같은 선입선출 메모리에서 출력되고 있는 패킷의 헤더부분 혹은 데이터 부분을 검사하게 되는데, 패킷 출력도중 검사 오류를 발견하였을 경우였을 경우 그 패킷을 당장 폐기하고 싶어도 일단은 펌핑을 하여 다 올려 받고 난후 폐기 처분하여야 한다. 이러한 방식의 개선 방안으로, 레지스터 파일 형태로 패킷의 저장 번지수들을 저장해 놓는 방식으로 폐기처분이 가능한 선입선출 메모리 회로가 개발되었다.
그러나, 상술한 개선된 선입선출 메모리에 있어서도, 최악의 경우에 최소 크기의 패킷들이 연속적으로 다량 수신되는 경우 그 레지스터 파일의 크기는 실로 엄청난 규모가 필요하게 되는 문제점이 있다. 또한 도 2a에 도시된 메모리 및 제어기(210)는 그 용량이 커지면 커질수록 패킷들의 크기가 다양한데서 야기되는 메모리 공간 할당 및 제어 문제가 복잡해지는 문제점이 있다.
상기 문제점을 해결하기 위하여 안출된 본 발명은, 상기에 언급된 기존 네트워크 및 입출력 정합장치용 반도체 설계 방식에 있어서의 문제점을 제거하여 하드웨어 비용 줄이면서, 채널 및 버스의 대역폭을 최대한 활용할 수 있도록 하는 데이터 패킷 수신 장치 및 방법을 제공하는데 그 목적이 있다.
도 1은 고속 네트워크 통신망 표준 또는 고속 입출력 표준에서 정의하고 있는 일반적인 데이터 패킷의 구성 형태를 나타낸 블록도,
도 2a는 종래의 데이터 패킷 수신 장치를 나타낸 블록도,
도 2b는 종래의 데이터 패킷 수신 방법을 나타낸 동작흐름도,
도 3은 종래의 데이터 패킷 수신 장치 내에 장착된 선입선출 메모리를 나타낸 블록도,
도 4는 본 발명의 일 실시예에 의한 데이터 패킷 수신 장치를 나타낸 블록도,
도 5는 본 발명의 일 실시예에 의한 데이터 패킷 수신 장치 내에 장착된 선입 선출 메모리를 나타낸 블록도,
도 6은 본 발명의 데이터 패킷 수신 장치의 동작을 나타낸 타이밍도,
도 7은 본 발명의 데이터 패킷 수신 장치의 동작을 나타낸 도표,
도 8은 본 발명의 일 실시예에 의한 데이터 패킷 수신 방법을 나타낸 동작흐름도.
* 도면의 주요 부분에 대한 부호의 설명 *
410 : 검사 회로 420 : MUX
431~434 : 선입 선출 메모리
상기 목적을 달성하기 위하여 본 발명의 데이터 패킷 수신 장치는, 데이터 패킷을 입력받고, 상기 데이터 패킷의 헤더 부분의 각 필드를 검사하며, 에러정정코드를 이용하여 상기 데이터 패킷이 수신되는 데로 계속 누적계산을 수행하다가 데이터 패킷의 끝부분에 있는 에러정정코드가 수신되는 즉시 누적계산 결과의 값과 일치하는 지 여부를 판정하고, 이에 따라 패킷 입력을 완료하거나 혹은 폐기처분 하도록 패킷 무결성 신호 또는 패킷 결성 신호를 출력하는 검사 회로; 상기 데이터 패킷을 입력받아 실시간으로 분배하는 MUX; 및 상기 검사 회로로부터 상기 패킷 무결성 신호 또는 상기 패킷 결성 신호를 입력받고, 이에 따라 패킷 입력을 완료하거나 혹은 폐기처분 하는 복수개의 선입 선출 메모리를 포함한다.
또한, 상기 목적을 달성하기 위하여 본 발명의 데이터 패킷 수신 방법은, 패킷 데이터 워드를 수신하는 단계; 상기 패킷 데이터 워드를 선입선출 메모리로 전달하는 동시에 상기 패킷 데이터 워드를 분석하는 단계; 상기 패킷 데이터 워드의 분석 결과, 헤더 부분인 경우에는, 패킷 헤더 처리 과정을 수행하고, 데이터 부분인 경우에는, 패킷 데이터 및 오류정정부호 계산 과정을 수행하며, 끝 부분인 경우에는 계산된 오류정정부호와 패킷의 끝의 오류정정부호를 비교하는 단계; 오류가 발견되었는지 여부를 판단하고, 오류가 발견된 경우에는 패킷을 버리는 단계; 및 오류가 발견되지 않은 경우에는, 선입선출 메모리에서 출력된 패킷 데이터 워드를 상위 처리 계층에서 처리하는 단계를 포함한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 본 발명의 가장 바람직한 실시예들을 첨부된 도면을 참조하여 설명하기로 한다.
먼저, 도 4는 본 발명의 일 실시예에 의한 데이터 패킷 수신 장치를 나타낸 블록도로서, 이러한 본 발명의 데이터 패킷 수신 장치는, 검사 회로(410), MUX(420) 및 복수개의 선입 선출 메모리(431~434)를 포함한다.
검사 회로(410)는, 데이터 패킷(①)을 입력받고, 상기 데이터 패킷의 헤더 부분의 각 필드를 검사하며, CRC 와 같은 에러정정코드를 이용하여 상기 데이터 패킷이 수신되는 데로 계속 누적계산을 수행하다가 데이터 패킷의 끝부분에 있는 에러정정코드가 수신되는 즉시 누적계산 결과의 값과 일치하는 지 여부를 판정하고, 이에 따라 후술하는 해당 선입선출 메모리(431~434)에 패킷 입력을 완료하거나 혹은 폐기처분 하도록 패킷 무결성 신호 또는 패킷 결성 신호를 출력하는 역할을 한다.
또한, MUX(420)는, 상기 데이터 패킷(①)을 입력받아 후술하는 선입선출 메모리(431~434)에 실시간으로 분배하는 역할을 한다.
한편, 복수개의 선입 선출 메모리(431~434)는, 상기 검사 회로(410)로부터 상기 패킷 무결성 신호 또는 상기 패킷 결성 신호를 입력받고, 상기 제어 신호에 따라 패킷 입력을 완료하거나 혹은 폐기처분 하는 역할을 한다. 이후에, 입력이 완료된 패킷은 상위 계층에 전송되어 패킷의 데이터 부분의 내용에 따라 해당 작업을 수행하게 된다.
상술한 본 발명의 데이터 패킷 수신 장치에 있어서는, 임시 버퍼용 메모리 및 메모리 제어기가 필요 없으며, 실시간으로 패킷을 선입선출메모리(431~434)에 저장할 수 있어, 패킷 잠복기간이 없다. 따라서, 비용 및 성능 측면에서 기존의 설계 방식보다 훨씬 효율적이다. 이러한 설계 방식이 가능하기 위해서는 선입선출메모리(431~434)가 반드시 갖추어야 할 조건이 있다. 즉, 해당 패킷이 선입선출 메모리(431~434)에 입력 직후 검사 로직의 검사 결과에 따라 결성 패킷의 경우 폐기 처리가 가능하도록 되어야 하며, 패킷의 검사가 끝나기 전까지 선입선출 메모리(431~434)의 출력단에서는 이 패킷이 선입선출 메모리(431~434)안에 존재하지 않은 것처럼 보여야 한다. 또한, 상위 계층 처리 속도를 향상시키기 위해서 선입선출 메모리(431~434)의 출력단에도 패킷을 읽는 도중에 폐기 처리가 가능하여야 한다. 종래의 선입선출 메모리 중에 메모리 내부에서 패킷들간의 경계를 구분하기 위하여 각 패킷이 메모리 내에 존재하는 주소를 레지스터 파일과 같은 기억장치에 저장 시켜 놓는 방식의 것도 있으나, 크기가 가장 작은 패킷이 연이어 입력되는 경우 레지스터 파일의 규모가 기하급수적으로 증가하게 되므로 오버헤드가 크다.
도 5는 본 발명의 일 실시예에 의한 데이터 패킷 수신 장치 내에 장착된 선입 선출 메모리(431~434)를 나타낸 블록도로서, 본 발명의 선입선출 메모리(431~434)는, 메모리 제어부(510) 및 이중 포트 동기식 메모리(520)를 포함한다.
메모리 제어부(510)는, 후술하는 이중 포트 동기식 메모리(520)의 데이터 주소 상태에 따라 풀 신호(Full_out) 또는 엠프티 신호(empty_out)를 생성하고, 쓰기 인에이블 신호(write_enable_in)가 활성화되고, 풀 신호(Full_out)가 비활성화된 경우에 쓰기 승인 신호(write_allow)를 활성화하고, 쓰기 주소(waddr_w)를 생성하여 출력하며, 읽기 인에이블 신호(read_enable_in)가 활성화되고, 엠프티 신호(empty_out)가 비활성화된 경우에, 읽기 주소(raddr_plus_1_w)를 생성하여 출력하는 역할을 한다. 또한, 상기 메모리 제어부(510)는, 패킷 결성 신호(waddr_load) 및 패킷 무결성 신호(waddr_bound_load)를 입력받아 상기 쓰기 주소(waddr_w) 값을 조정함으로써, 패킷 처분 여부를 제어하는 역할을 한다. 한편, 상기 메모리 제어부(510)는, 상위 계층으로 읽기 주소 복사 데이터(raddr_plus_1)를 출력하고, 상위 계층으로부터 패킷 처분 신호(upper_layer_discard) 및 읽기 주소 복사 데이터(raddr_plus_1)에 따른 신규 주소(new_addr)를 입력받아 상기 읽기 주소(raddr_plus_1_w)를 조정함으로써, 패킷 처분 여부를 제어하는 역할을 한다. 여기서, 상기 메모리 제어부(510)에 관하여 상세히 설명하면 다음과 같다.
상기 메모리 제어부(510) 내에 장착된 제1 신호 생성부(511)는, 상기 쓰기 인에이블 신호(write_enable_in), 상기 읽기 인에이블 신호(read_enable_in) 및제1 제어 신호를 입력받고, 이러한 신호들의 논리값에 따라 상기 엠프티 신호(empty_out) 및 쓰기 승인 신호(write_allow)를 생성하는 역할을 한다. 여기서, 상기 제1 신호 생성부(511)에 관하여 상세히 설명하면 다음과 같다.
상기 제1 신호 생성부(511) 내에 장착된 제1 AND 게이트(511a)는, 상기 쓰기 인에이블 신호(write_enable_in) 및 상기 제1 제어 신호를 입력받아 AND 연산한 후, 그 결과값을 출력하는 역할을 한다.
또한, 상기 제1 신호 생성부(511) 내에 장착된 제1 셀렉터(511b)는, 상기 풀 신호(Full_out)가 제1 논리 단계('0')인 경우에는 상기 제1 AND 게이트(511a)의 출력 신호를 선택하여 도통시키고, 상기 풀 신호(Full_out)가 제2 논리 단계('1')인 경우에는 상기 읽기 인에이블 신호(read_enable_in)의 반전값을 선택하여 도통시키는 역할을 한다.
한편, 상기 제1 신호 생성부(511) 내에 장착된 풀 레지스터(511c)는, 초기화 시 0으로 세팅되고, 상기 제1 셀렉터(511b)로부터 신호를 입력받아 저장하는 역할을 한다.
또한, 상기 제1 신호 생성부(511) 내에 장착된 제2 AND 게이트(511d)는, 상기 풀 레지스터(511c)의 출력 신호의 반전값 및 상기 쓰기 인에이블 신호(write_enable_in)를 입력받아 AND 연산한 후, 그 결과값을 상기 쓰기 승인 신호(write_allow)로서 출력하는 역할을 한다.
또한, 상기 메모리 제어부(510) 내에 장착된 제2 신호 생성부(512)는, 상기 패킷 무결성 신호(waddr_bound_load), 상기 읽기 인에이블 신호(read_enable_in)및 제2 제어 신호를 입력받고, 이러한 신호들의 논리값에 따라 상기 엠프티 신호(empty_out) 및 상기 읽기 승인 신호(read_allow)를 생성하는 역할을 한다. 여기서, 상기 제2 신호 생성부(512)에 관하여 상세히 설명하면 다음과 같다.
상기 제2 신호 생성부(512) 내에 장착된 제3 AND 게이트(512a)는, 상기 읽기 인에이블 신호(read_enable_in) 및 상기 제2 제어 신호를 입력받아 AND 연산한 후, 그 결과값을 출력하는 역할을 한다.
또한, 상기 제2 신호 생성부(512) 내에 장착된 제2 셀렉터(512b)는, 상기 엠프티 신호(empty_out)가 제1 논리 단계('0')인 경우에는 상기 제3 AND 게이트(512a)의 출력 신호를 선택하여 도통시키고, 상기 엠프티 신호(empty_out)가 제2 논리 단계('1')인 경우에는 상기 패킷 무결성 신호(waddr_bound_load)의 반전값을 선택하여 도통시키는 역할을 한다.
한편, 상기 제2 신호 생성부(512) 내에 장착된 엠프티 레지스터(512c)는, 초기화 시 1로 세팅되고, 상기 제2 셀렉터(512b)로부터 신호를 입력받아 저장하는 역할을 한다.
또한, 상기 제2 신호 생성부(512) 내에 장착된 제4 AND 게이트(512d)는, 상기 엠프티 레지스터(512c)의 출력 신호의 반전값 및 상기 읽기 인에이블 신호(read_enable_in)를 입력받아 AND 연산한 후, 그 결과값을 상기 읽기 승인 신호(read_allow)로서 출력하는 역할을 한다.
한편, 상기 메모리 제어부(510) 내에 장착된 주소 제어부(513)는, 상기 제1 신호 생성부(511)로부터의 쓰기 승인 신호(write_allow), 상기 패킷 결성신호(waddr_load) 및 패킷 무결성 신호(waddr_bound_load)를 입력받고, 이러한 신호에 따라 상기 쓰기 주소(waddr_w)를 생성하여 후술하는 이중 포트 동기식 메모리(520)로 출력하는 역할을 한다. 또한, 상기 주소 제어부(513)는, 상기 읽기 주소 복사 데이터(raddr_plus_1)를 상위 계층으로 출력하고, 상기 제2 신호 생성부(512)로부터 읽기 승인 신호(read_allow)를, 상위 계층으로부터 패킷 처분 신호(upper_layer_discard) 및 상기 읽기 주소 복사 데이터(raddr_plus_1)에 따른 신규 주소(new_addr)를 입력받으며, 이러한 신호에 따라 상기 읽기 주소(raddr_plus_1_w)를 생성하여 후술하는 이중 포트 동기식 메모리(520)로 출력하는 역할을 한다. 한편, 상기 주소 제어부(513)는, 상기 제1 제어 신호 및 상기 제2 제어 신호를 생성하여 상기 제1 신호 생성부(511) 및 제2 신호 생성부(512)에 출력하는 역할을 한다. 여기서, 상기 주소 제어부(513)에 관하여 상세히 설명하면 다음과 같다.
상기 주소 제어부(513) 내에 장착된 디코더(513a)는, 상기 쓰기 승인 신호(write_allow), 상기 패킷 결성 신호(waddr_load) 및 상기 패킷 무결성 신호(waddr_bound_load)를 입력받아 복호화 과정을 통하여 주소 데이터를 생성하는 역할을 한다.
또한, 상기 주소 제어부(513) 내에 장착된 제1 쓰기 주조 레지스터(513b)는, 초기화 시 0으로 세팅되고, 상기 디코더(513a)의 출력 주소 데이터를 입력받아 저장하며, 제1 쓰기 경계 주소 데이터를 입력받아 저장하는 역할을 한다.
한편, 상기 주소 제어부(513) 내에 장착된 제1 쓰기 경계 주소레지스터(513c)는, 초기화 시 0으로 세팅되고, 상기 디코더(513a)의 출력 주소 데이터를 입력받아 저장하며, 상기 제1 쓰기 주조 레지스터(513b)로부터의 주소 데이터를 저장하고, 저장된 데이터를 상기 제1 쓰기 경계 주소 데이터로서 상기 제1 쓰기 주조 레지스터(513b)에 출력하는 역할을 한다.
또한, 상기 주소 제어부(513) 내에 장착된 제2 쓰기 주조 레지스터(513d)는, 초기화 시 1로 세팅되고, 상기 디코더(513a)의 출력 주소 데이터를 입력받아 저장하며, 제2 쓰기 경계 주소 데이터를 입력받아 저장하는 역할을 한다.
한편, 상기 주소 제어부(513) 내에 장착된 제2 쓰기 경계 주소 레지스터(513e)는, 초기화 시 1로 세팅되고, 상기 디코더(513a)의 출력 주소 데이터를 입력받아 1을 가산한 후 저장하며, 상기 제2 쓰기 주조 레지스터(513d)로부터의 주소 데이터를 저장하고, 저장된 데이터를 상기 제2 쓰기 경계 주소 데이터로서 상기 제2 쓰기 주조 레지스터(513d)에 출력하는 역할을 한다.
또한, 상기 주소 제어부(513) 내에 장착된 제3 셀렉터(513f)는, 상기 패킷 결성 신호(waddr_load)를 입력받고, 상기 패킷 결성 신호(waddr_load)가 제1 논리 단계('0')인 경우에는 상기 제1 쓰기 주조 레지스터(513b)로부터의 주소 데이터를 상기 쓰기 주소(waddr_w)로서 후술하는 이중 포트 동기식 메모리(520)로 출력하고, 상기 패킷 결성 신호(waddr_load)가 제2 논리 단계('1')인 경우에는 상기 제1 쓰기 경계 주소 데이터를 상기 쓰기 주소(waddr_w)로서 후술하는 이중 포트 동기식 메모리(520)로 출력하는 역할을 한다.
한편, 상기 주소 제어부(513) 내에 장착된 읽기 주소 레지스터(513g)는, 초기화 시 0으로 세팅되고, 상기 제2 신호 생성부(512)로부터의 읽기 승인 신호(read_allow) 및 상위 계층으로부터의 상기 패킷 처분 신호(upper_layer_discard)를 입력받으며, 상기 읽기 승인 신호(read_allow) 및 상기 패킷 처분 신호(upper_layer_discard)에 따라 저장된 주소 데이터(raddr_plus_1)를 출력하고, 상위 계층으로부터 상기 신규 주소(new_addr)를 입력받아 저장하는 역할을 한다.
또한, 상기 주소 제어부(513) 내에 장착된 복사 레지스터(513h)는, 상기 읽기 승인 신호(read_allow)의 제어에 따라 상기 읽기 주소 레지스터(513g)에 저장된 데이터를 복사하여 저장하는 역할을 한다.
한편, 상기 주소 제어부(513) 내에 장착된 제4 셀렉터(513i)는, 상기 읽기 승인 신호(read_allow)가 제1 논리 단계('0')인 경우에는 상기 복사 레지스터(513h)로부터의 출력 데이터를 읽기 주소(raddr_plus_1_w)로서 출력하고, 상기 읽기 승인 신호(read_allow)가 제2 논리 단계('1')인 경우에는 상기 읽기 주소 레지스터(513g)의 출력 데이터를 상기 읽기 주소(raddr_plus_1_w)로서 출력하는 역할을 한다.
또한, 상기 주소 제어부(513) 내에 장착된 제1 비교기(513j)는, 상기 제2 쓰기 주조 레지스터(513d)의 출력 데이터 및 상기 읽기 주소 레지스터(513g)의 출력 데이터를 동일한지 비교하고, 그 결과에 따라 상기 제1 제어 신호를 생성하는 역할을 한다.
한편, 상기 주소 제어부(513) 내에 장착된 제2 비교기(513k)는, 상기 제1 쓰기 경계 주소 레지스터(513c)의 출력 데이터에 1을 감산한 값 및 상기 읽기 주소 레지스터(513g)의 출력 데이터가 동일한지 비교하고, 그 결과에 따라 상기 제2 제어 신호를 생성하는 역할을 한다.
또한, 이중 포트 동기식 메모리(520)는, 쓰기 승인 신호(write_allow)가 활성화된 경우에 상기 메모리 제어부(510)에서 입력받은 쓰기 주소(waddr_w)에 입력 데이터(write_data_in)를 저장하고, 상기 메모리 제어부(510)에서 읽기 주소(raddr_plus_1_w)를 입력받아 상기 읽기 주소에 해당하는 곳에 저장된 데이터(read_data_out)를 출력하는 역할을 한다. 즉, 본 발명의 선입선출 메모리는 억세스 타이밍이 빠르고, 입출력이 분리되어 효율적인 인터페이스 설계가 가능한 이중 포트 동기식 메모리(dual-port synchronous RAM)를 사용한다. 여기서, 상기 이중 포트 동기식 메모리(520)에 관하여 상세히 설명하면 다음과 같다.
상기 이중 포트 동기식 메모리(520) 내에 장착된 제1 선택부(521)는, 상기 쓰기 승인 신호(write_allow)가 활성화되면, 상기 쓰기 주소(waddr_w)를 입력받아 제1 선택 신호를 출력하는 역할을 한다.
또한, 상기 이중 포트 동기식 메모리(520) 내에 장착된 레지스터 어레이(522)는, 상기 제1 선택부(521)로부터 입력된 상기 제1 선택 신호에 따라 해당 레지스터를 인에이블하고, 상기 해당 레지스터에 상기 입력 데이터(write_data_in)를 저장하는 역할을 한다.
한편, 상기 이중 포트 동기식 메모리(520) 내에 장착된 읽기 주소 레지스터(523)는, 상기 메모리 제어부(510)에서 입력받은 상기 읽기주소(raddr_plus_1_w)를 입력받아 저장하는 역할을 한다.
또한, 상기 이중 포트 동기식 메모리(520) 내에 장착된 제2 선택부(524)는, 상기 읽기 주소 레지스터(523)로부터 상기 읽기 주소(raddr_plus_1_w)를 입력받아 상기 레지스터 어레이(522) 중 상기 읽기 주소(raddr_plus_1_w)의 레지스터에 저장된 데이터를 출력 데이터(read_data_out)로서 출력하는 역할을 한다.
도 6은 본 발명의 데이터 패킷 수신 장치의 동작을 나타낸 타이밍도이고, 도 7은 본 발명의 데이터 패킷 수신 장치의 동작을 나타낸 도표로서, 이를 참조하여 상술한 본 발명의 데이터 패킷 수신 장치의 동작에 관하여 설명하면 다음과 같다.
여기서, 일반적으로 선입선출 메모리는 입력단과 출력단에서 사용하는 클럭 신호에 따라 비동기, 동기식으로 나뉘어 지는데, 입력과 출력 속도가 모두 고속인 경우를 가정하였기 때문에 본 발명에서는 입출력단 양쪽에 공통 클럭이 인가되는 동기식 구현 방법을 채택한다. 따라서, 도 5에서 모든 레지스터에 인가되는 클럭과 리셋신호는 모두 공통으로 사용되며, 도면상에서는 복잡도를 줄이기 위하여 생략하였다. 리셋신호에 의한 전체 회로의 초기화시 각 레지스터에 셋팅되는 값들을 set to 0 혹은 set to 1의 형태로 나타내었다. 메모리의 폭과 깊이는 응용분야에 따라 임의로 결정되는 것이므로 본 명세서에서는 개시하지 않는다. 그러나, 메모리의 폭인 입출력 워드데이터의 비트수는 도면의 write_data_in, read_data_out 신호들의 비트수와 일치해야 하고, 메모리의 깊이 즉, 이 메모리가 저장할 수 있는 워드데이터의 갯수가 결정되면 메모리의 주소값들을 저장하는 복수개의 레지스터들의 비트수는 모두 메모리 깊이를 2진수로 표현했을 때 필요한 비트수와 동일하여야 한다. 메모리의 깊이는 2의 배수이어야 하며, 그렇지 않다면 별도의 주소연산장치가 필요하게 된다. 도 5의 풀 레지스터(511c), 엠프티 레지스터(512c)는 1비트 레지스터들이다.
도 5의 선입선출 메모리에 데이터를 입력하는 방법은 기존의 선입선출 메모리 입력 방식과 동일하다. 즉, 풀 신호(full_out)가 제1 논리 단계(low)일때면, 언제든지 데이터 입력이 가능하며, 입력 워드데이터를 write_data_in버스에 인가하고, 쓰기 인에이블 신호(write_enable_in)를 제2 논리 단계(high)로 하면 다음 클럭의 상승 모서리마다 데이터를 입력 시킬 수 있다. 마찬가지로 출력은 엠프티 신호(empty_out)가 제1 논리 단계(low)일 때면, 언제든지 데이터 출력이 가능하며, 읽기 인에이블 신호(read_enable_in)를 제2 논리 단계(high)로 하면, 다음 클럭의 상승 모서리마다 데이터가 read_data_out 버스에 실려 출력된다.
제1 쓰기 주조 레지스터(513b)는 메모리로 현재 입력되고 있는 패킷의 각 워드 데이터가 저장될 장소의 주소값을 저장하며, 제1 쓰기 경계 주소 레지스터(513c)는 앞서 입력이 완료된 전 패킷의 마지막 워드데이터가 저장된 주소의 바로 다음 번지를 가리킨다. 이 값은 실제로 현재 입력이 진행되고 있는 패킷이 저장되는 공간의 첫번째 주소와도 같은 값이다. 처음에 선입선출 메모리 회로가 초기화되었을 때 제1 쓰기 주조 레지스터(513b)와 제1 쓰기 경계 주소 레지스터(513c)는 0번지로 셋팅된다. 그 후 워드데이터가 하나씩 입력이 될 때마다, 제1 쓰기 주조 레지스터(513b)는 그 값이 1, 2, 3의 식으로 증가하지만, 제1쓰기 경계 주소 레지스터(513c)의 값은 일단 증가하지 않다가 패킷의 입력완료와 동시에 검사 회로의 검사 결과에 따라 결정된다. 즉, 패킷이 무결성인 경우 패킷 무결성 신호(waddr_bound_load)를 제2 논리 단계(high)로 하면, 제1 쓰기 경계 주소 레지스터(513c)에 현재 제1 쓰기 주조 레지스터(513b) 값이 저장되고, 출력단에 엠프티 레지스터(512c)가 제2 논리 단계(high)에서 제1 논리 단계(low)가 되어 상위 계층에서 가져갈 패킷이 존재한다는 것을 알리게 되고, 결성인 경우 패킷 결성 신호(waddr_load)를 제2 논리 단계(high)로 하여 w제1 쓰기 주조 레지스터(513b)에 현재 제1 쓰기 경계 주소 레지스터(513c)의 값인 0이 저장됨으로써 패킷이 폐기처분되는 효과를 가져오게 된다.
도 8은 본 발명의 일 실시예에 의한 데이터 패킷 수신 방법을 나타낸 동작흐름도로서, 이를 참조하여 본 발명의 데이터 패킷 수신 방법에 관하여 설명하면 다음과 같다.
먼저, 검사 회로(410) 및 MUX(420)는, 패킷 데이터 워드를 수신한다(S801).
이후에, MUX(420)에서는, 상기 패킷 데이터 워드를 선입선출 메모리(431~434)로 전달하고, 검사 회로(410)에서는, 상기 패킷 데이터 워드를 분석한다(S802).
다음에, 검사 회로(410)는, 상기 패킷 데이터 워드의 분석 결과, 헤더 부분인 경우에는, 패킷 헤더 처리 과정을 수행하고, 데이터 부분인 경우에는, 패킷 데이터 및 오류정정부호 계산 과정을 수행하며, 끝 부분인 경우에는 계산된 오류정정부호와 패킷의 끝의 오류정정부호를 비교한다(S803).
이후에, 검사 회로(410)에 의하여 오류가 발견되었는지 여부를 판단하고, 오류가 발견된 경우에는 패킷을 버린다(S804). 여기서, 이러한 패킷을 버리는 과정은 한 클럭 사이클에 이루어지게 된다.
만약, 오류가 발견되지 않은 경우에는, 선입선출 메모리(431~434)에서 출력된 패킷 데이터 워드를 상위 처리 계층에서 처리한다(S805).
이후에, 상위 처리 계층에서 오류가 발견되었는지 여부를 판단하고(S806), 오류가 발견된 경우에는 패킷을 버린다(S807). 여기서, 이러한 패킷을 버리는 과정은 한 클럭 사이클에 이루어지게 된다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지로 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.
본 발명은 저 비용으로 구현이 가능하고, 계층 간의 패킷 전송 잠복기간이 대폭 줄어들며, 특히, 최근에 발표되고 있는 고속 네트워크 통신 및 고속 입출력 표준이 요구하는 고속의 패킷 스트림을 원활히 처리할 수 있어, 네트워크 통신 및 입출력 채널의 대역폭(Bandwidth)을 최대한 활용할 수 있는 이점이 있다. 또한, 한클럭에 패킷 전체를 버림으로써, 패킷을 모두 덤프하여 버리기 위하여 남은 패킷 워드의 수 만큼 사이클이 소요되는 종래 기술의 문제점을 해결할 수 있는 이점이 있다.

Claims (10)

  1. 데이터 패킷을 입력받고, 상기 데이터 패킷의 헤더 부분의 각 필드를 검사하며, 에러정정코드를 이용하여 상기 데이터 패킷이 수신되는 데로 계속 누적계산을 수행하다가 데이터 패킷의 끝부분에 있는 에러정정코드가 수신되는 즉시 누적계산 결과의 값과 일치하는 지 여부를 판정하고, 이에 따라 패킷 입력을 완료하거나 혹은 폐기처분 하도록 패킷 무결성 신호 또는 패킷 결성 신호를 출력하는 검사 회로;
    상기 데이터 패킷을 입력받아 실시간으로 분배하는 MUX; 및
    상기 검사 회로로부터 상기 패킷 무결성 신호 또는 상기 패킷 결성 신호를 입력받고, 이에 따라 패킷 입력을 완료하거나 혹은 폐기처분 하는 복수개의 선입 선출 메모리
    를 포함하는 것을 특징으로 하는 데이터 패킷 수신 장치.
  2. 제1항에 있어서, 상기 복수개의 선입 선출 메모리는,
    데이터 주소 상태에 따라 풀 신호 또는 엠프티 신호를 생성하고, 쓰기 인에이블 신호가 활성화되고, 풀 신호가 비활성화된 경우에 쓰기 승인 신호를 활성화하고, 쓰기 주소를 생성하여 출력하며, 읽기 인에이블 신호가 활성화되고, 엠프티 신호가 비활성화된 경우에, 읽기 주소를 생성하여 출력하며, 상기 패킷 결성 신호 및상기 패킷 무결성 신호를 입력받아 상기 쓰기 주소 값을 조정함으로써, 패킷 처분 여부를 제어하고, 상위 계층으로 읽기 주소 복사 데이터를 출력하고, 상위 계층으로부터 패킷 처분 신호 및 읽기 주소 복사 데이터에 따른 신규 주소를 입력받아 상기 읽기 주소를 조정함으로써, 패킷 처분 여부를 제어하는 메모리 제어부; 및
    쓰기 승인 신호가 활성화된 경우에 상기 메모리 제어부에서 입력받은 쓰기 주소에 입력 데이터를 저장하고, 상기 메모리 제어부에서 읽기 주소를 입력받아 상기 읽기 주소에 해당하는 곳에 저장된 데이터를 출력하는 이중 포트 동기식 메모리
    를 포함하는 것을 특징으로 하는 데이터 패킷 수신 장치.
  3. 제2항에 있어서, 상기 메모리 제어부는,
    상기 쓰기 인에이블 신호, 상기 읽기 인에이블 신호 및 제1 제어 신호를 입력받고, 이러한 신호들의 논리값에 따라 상기 엠프티 신호 및 쓰기 승인 신호를 생성하는 제1 신호 생성부;
    상기 패킷 무결성 신호, 상기 읽기 인에이블 신호 및 제2 제어 신호를 입력받고, 이러한 신호들의 논리값에 따라 상기 엠프티 신호 및 상기 읽기 승인 신호를 생성하는 제2 신호 생성부; 및
    상기 제1 신호 생성부로부터의 쓰기 승인 신호, 상기 패킷 결성 신호 및 패킷 무결성 신호를 입력받고, 이러한 신호에 따라 상기 쓰기 주소를 생성하여 상기 이중 포트 동기식 메모리로 출력하며, 상기 읽기 주소 복사 데이터를 상위 계층으로 출력하고, 상기 제2 신호 생성부로부터 읽기 승인 신호를, 상위 계층으로부터 패킷 처분 신호 및 상기 읽기 주소 복사 데이터에 따른 신규 주소를 입력받으며, 이러한 신호에 따라 상기 읽기 주소를 생성하여 상기 이중 포트 동기식 메모리로 출력하고, 상기 제1 제어 신호 및 상기 제2 제어 신호를 생성하여 상기 제1 신호 생성부 및 제2 신호 생성부에 출력하는 주소 제어부
    를 포함하는 것을 특징으로 하는 데이터 패킷 수신 장치.
  4. 제3항에 있어서, 상기 제1 신호 생성부는,
    상기 쓰기 인에이블 신호 및 상기 제1 제어 신호를 입력받아 AND 연산하는 제1 AND 게이트;
    상기 풀 신호가 제1 논리 단계인 경우에는 상기 제1 AND 게이트의 출력 신호를 선택하여 도통시키고, 상기 풀 신호가 제2 논리 단계인 경우에는 상기 읽기 인에이블 신호의 반전값을 선택하여 도통시키는 제1 셀렉터;
    초기화 시 0으로 세팅되고, 상기 제1 셀렉터로부터 신호를 입력받아 저장하는 풀 레지스터; 및
    상기 풀 레지스터의 출력 신호의 반전값 및 상기 쓰기 인에이블 신호를 입력받아 AND 연산한 후, 그 결과값을 상기 쓰기 승인 신호로서 출력하는 제2 AND 게이트
    를 포함하는 것을 특징으로 하는 데이터 패킷 수신 장치.
  5. 제3항에 있어서, 상기 제2 신호 생성부는,
    상기 읽기 인에이블 신호 및 상기 제2 제어 신호를 입력받아 AND 연산하는 제3 AND 게이트;
    상기 엠프티 신호가 제1 논리 단계인 경우에는 상기 제3 AND 게이트의 출력 신호를 선택하여 도통시키고, 상기 엠프티 신호가 제2 논리 단계인 경우에는 상기 패킷 무결성 신호의 반전값을 선택하여 도통시키는 제2 셀렉터;
    초기화 시 1로 세팅되고, 상기 제2 셀렉터로부터 신호를 입력받아 저장하는 엠프티 레지스터; 및
    상기 엠프티 레지스터의 출력 신호의 반전값 및 상기 읽기 인에이블 신호를 입력받아 AND 연산한 후, 그 결과값을 상기 읽기 승인 신호로서 출력하는 제4 AND 게이트
    를 포함하는 것을 특징으로 하는 데이터 패킷 수신 장치.
  6. 제3항에 있어서, 상기 주소 제어부는,
    상기 쓰기 승인 신호, 상기 패킷 결성 신호 및 상기 패킷 무결성 신호를 입력받아 복호화 과정을 통하여 주소 데이터를 생성하는 디코더;
    초기화 시 0으로 세팅되고, 상기 디코더의 출력 주소 데이터를 입력받아 저장하며, 제1 쓰기 경계 주소 데이터를 입력받아 저장하는 제1 쓰기 주조 레지스터;
    초기화 시 0으로 세팅되고, 상기 디코더의 출력 주소 데이터를 입력받아 저장하며, 상기 제1 쓰기 주조 레지스터로부터의 주소 데이터를 저장하고, 저장된 데이터를 상기 제1 쓰기 경계 주소 데이터로서 상기 제1 쓰기 주조 레지스터에 출력하는 제1 쓰기 경계 주소 레지스터;
    초기화 시 1로 세팅되고, 상기 디코더의 출력 주소 데이터를 입력받아 저장하며, 제2 쓰기 경계 주소 데이터를 입력받아 저장하는 제2 쓰기 주조 레지스터;
    초기화 시 1로 세팅되고, 상기 디코더의 출력 주소 데이터를 입력받아 1을 가산한 후 저장하며, 상기 제2 쓰기 주조 레지스터로부터의 주소 데이터를 저장하고, 저장된 데이터를 상기 제2 쓰기 경계 주소 데이터로서 상기 제2 쓰기 주조 레지스터에 출력하는 제2 쓰기 경계 주소 레지스터;
    상기 패킷 결성 신호를 입력받고, 상기 패킷 결성 신호가 제1 논리 단계인 경우에는 상기 제1 쓰기 주조 레지스터로부터의 주소 데이터를 상기 쓰기 주소로서 상기 이중 포트 동기식 메모리로 출력하고, 상기 패킷 결성 신호가 제2 논리 단계인 경우에는 상기 제1 쓰기 경계 주소 데이터를 상기 쓰기 주소로서 상기 이중 포트 동기식 메모리로 출력하는 제3 셀렉터;
    초기화 시 0으로 세팅되고, 상기 제2 신호 생성부로부터의 읽기 승인 신호 및 상위 계층으로부터의 상기 패킷 처분 신호를 입력받으며, 상기 읽기 승인 신호 및 상기 패킷 처분 신호에 따라 저장된 주소 데이터를 출력하고, 상위 계층으로부터 상기 신규 주소를 입력받아 저장하는 읽기 주소 레지스터;
    상기 읽기 승인 신호의 제어에 따라 상기 읽기 주소 레지스터에 저장된 데이터를 복사하여 저장하는 복사 레지스터;
    상기 읽기 승인 신호가 제1 논리 단계인 경우에는 상기 복사 레지스터로부터의 출력 데이터를 읽기 주소로서 출력하고, 상기 읽기 승인 신호가 제2 논리 단계인 경우에는 상기 읽기 주소 레지스터의 출력 데이터를 상기 읽기 주소로서 출력하는 제4 셀렉터;
    상기 제2 쓰기 주조 레지스터의 출력 데이터 및 상기 읽기 주소 레지스터의 출력 데이터를 동일한지 비교하고, 그 결과에 따라 상기 제1 제어 신호를 생성하는 제1 비교기; 및
    상기 제1 쓰기 경계 주소 레지스터의 출력 데이터에 1을 감산한 값 및 상기 읽기 주소 레지스터의 출력 데이터가 동일한지 비교하고, 그 결과에 따라 상기 제2 제어 신호를 생성하는 제2 비교기
    를 포함하는 것을 특징으로 하는 데이터 패킷 수신 장치.
  7. 제2항에 있어서, 상기 이중 포트 동기식 메모리는,
    상기 쓰기 승인 신호가 활성화되면, 상기 쓰기 주소를 입력받아 제1 선택 신호를 출력하는 제1 선택부;
    상기 제1 선택부로부터 입력된 상기 제1 선택 신호에 따라 해당 레지스터를 인에이블하고, 상기 해당 레지스터에 상기 입력 데이터를 저장하는 레지스터 어레이;
    상기 메모리 제어부에서 입력받은 상기 읽기 주소를 입력받아 저장하는 읽기 주소 레지스터; 및
    상기 읽기 주소 레지스터로부터 상기 읽기 주소를 입력받아 상기 레지스터 어레이 중 상기 읽기 주소의 레지스터에 저장된 데이터를 출력 데이터로서 출력하는 제2 선택부
    를 포함하는 것을 특징으로 하는 데이터 패킷 수신 장치.
  8. 제1항에 있어서, 상기 복수개의 선입 선출 메모리는,
    데이터 주소 상태에 따라 풀 신호 또는 엠프티 신호를 생성하고, 쓰기 인에이블 신호가 활성화되고, 풀 신호가 비활성화된 경우에 쓰기 승인 신호를 활성화하고, 쓰기 주소를 생성하여 출력하며, 읽기 인에이블 신호가 활성화되고, 엠프티 신호가 비활성화된 경우에, 읽기 주소를 생성하여 출력하며, 상기 패킷 결성 신호 및 상기 패킷 무결성 신호를 입력받아 상기 쓰기 주소 값을 조정함으로써, 패킷 처분 여부를 제어하는 메모리 제어부; 및
    쓰기 승인 신호가 활성화된 경우에 상기 메모리 제어부에서 입력받은 쓰기 주소에 입력 데이터를 저장하고, 상기 메모리 제어부에서 읽기 주소를 입력받아 상기 읽기 주소에 해당하는 곳에 저장된 데이터를 출력하는 이중 포트 동기식 메모리
    를 포함하는 것을 특징으로 하는 데이터 패킷 수신 장치.
  9. 패킷 데이터 워드를 수신하는 단계;
    상기 패킷 데이터 워드를 선입선출 메모리로 전달하는 동시에 상기 패킷 데이터 워드를 분석하는 단계;
    상기 패킷 데이터 워드의 분석 결과, 헤더 부분인 경우에는, 패킷 헤더 처리 과정을 수행하고, 데이터 부분인 경우에는, 패킷 데이터 및 오류정정부호 계산 과정을 수행하며, 끝 부분인 경우에는 계산된 오류정정부호와 패킷의 끝의 오류정정부호를 비교하는 단계;
    오류가 발견되었는지 여부를 판단하고, 오류가 발견된 경우에는 패킷을 버리는 단계; 및
    오류가 발견되지 않은 경우에는, 선입선출 메모리에서 출력된 패킷 데이터 워드를 상위 처리 계층에서 처리하는 단계
    를 포함하고,
    상기 패킷을 버리는 단계는 한 클럭 사이클에 수행되는
    것을 특징으로 하는 데이터 패킷 수신 방법.
  10. 제9항에 있어서,
    상위 처리 계층에서 오류가 발견되었는지 여부를 판단하고, 오류가 발견되지 않은 경우에는 패킷 데이터 워드를 상위 처리 계층에서 처리하는 단계로 돌아가는 단계; 및
    오류가 발견된 경우에는 패킷을 버리는 단계
    를 더 포함하고,
    상기 패킷을 버리는 단계는 한 클럭 사이클에 수행되는
    것을 특징으로 하는 데이터 패킷 수신 방법.
KR10-2002-0069556A 2002-11-11 2002-11-11 데이터 패킷 수신 장치 및 방법 KR100452640B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0069556A KR100452640B1 (ko) 2002-11-11 2002-11-11 데이터 패킷 수신 장치 및 방법
US10/460,919 US7024498B2 (en) 2002-11-11 2003-06-13 Apparatus for receiving data packet eliminating the need of a temporary memory and memory controller and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0069556A KR100452640B1 (ko) 2002-11-11 2002-11-11 데이터 패킷 수신 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20040041712A KR20040041712A (ko) 2004-05-20
KR100452640B1 true KR100452640B1 (ko) 2004-10-14

Family

ID=32226273

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0069556A KR100452640B1 (ko) 2002-11-11 2002-11-11 데이터 패킷 수신 장치 및 방법

Country Status (2)

Country Link
US (1) US7024498B2 (ko)
KR (1) KR100452640B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160215A1 (en) * 2004-01-20 2005-07-21 International Business Machines Corporation Flow through asynchronous elastic FIFO apparatus and method for implementing multi-engine parsing and authentication
JP2006072684A (ja) * 2004-09-02 2006-03-16 Hitachi Ltd ストレージネットワークシステム及び管理サーバ、ホストとストレージ装置
US7555690B1 (en) * 2004-12-23 2009-06-30 Xilinx, Inc. Device for and method of coupling test signals to a device under test
KR100711162B1 (ko) * 2005-10-17 2007-04-24 엘지노텔 주식회사 에이티엠 헤더의 페이로드 타입 오류 해결기능이 구비된에이티엠시스템 및 그 제어방법
CN100421423C (zh) * 2005-10-25 2008-09-24 杭州华三通信技术有限公司 一种基于Serial RapidIO总线的集中式路由器
JP2007179084A (ja) * 2005-12-26 2007-07-12 Fujitsu Ltd ディスク装置およびディスク書込データ転送方法
KR100746424B1 (ko) * 2005-12-28 2007-08-03 주식회사 팬택앤큐리텔 이동통신단말기의 데이터호 처리 방법 및 그이동통신단말기
KR100839494B1 (ko) * 2006-02-28 2008-06-19 삼성전자주식회사 버스 중재 시스템 및 버스 중재 방법
JP5701034B2 (ja) * 2010-12-13 2015-04-15 キヤノン株式会社 データ処理装置、データ処理装置の制御方法、及びプログラム
CN103970692B (zh) * 2013-01-25 2017-08-25 北京旋极信息技术股份有限公司 RapidIO串行数据处理方法
KR102124778B1 (ko) * 2017-02-16 2020-06-19 엘에스일렉트릭(주) Fpga를 이용한 파워 스택 모니터링 시스템 및 이를 포함하는 파워 스택
CN109960664B (zh) * 2019-03-19 2023-05-02 西安微电子技术研究所 一种多模块共享的容量统一分配并独立使用的fifo控制装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980021577A (ko) * 1996-09-18 1998-06-25 양승택 수신 패킷의 파손 검출 및 복구 방법
KR19980057416A (ko) * 1996-12-30 1998-09-25 김광호 비동기전송모드적응계층 프로토콜 통신시 데이터의 완전성 검사를 위한 장치 및 방법
KR20010027608A (ko) * 1999-09-14 2001-04-06 서평원 교환기에서의 패킷 메시지 스위칭 시스템
WO2003030437A2 (en) * 2001-09-28 2003-04-10 Intel Corporation (A Corporation Of Delaware) Methodology for detecting lost packets

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100275182B1 (ko) * 1990-12-17 2000-12-15 윌리엄 비. 켐플러 순차 메모리
KR100211978B1 (ko) 1996-12-05 1999-08-02 이계철 고속 패킷 수신장치 및 방법
KR20000046371A (ko) 1998-12-31 2000-07-25 강병호 대용량 통신처리시스템의 고속 스위칭 장치에있어서 램을 이용한 버퍼링 장치
US6678861B1 (en) * 2000-08-21 2004-01-13 Cypress Semiconductor Corp. FIFO with CRC in a PLD
US20030227913A1 (en) * 2002-06-05 2003-12-11 Litchfield Communications, Inc. Adaptive timing recovery of synchronous transport signals
US20040047367A1 (en) * 2002-09-05 2004-03-11 Litchfield Communications, Inc. Method and system for optimizing the size of a variable buffer

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19980021577A (ko) * 1996-09-18 1998-06-25 양승택 수신 패킷의 파손 검출 및 복구 방법
KR19980057416A (ko) * 1996-12-30 1998-09-25 김광호 비동기전송모드적응계층 프로토콜 통신시 데이터의 완전성 검사를 위한 장치 및 방법
KR20010027608A (ko) * 1999-09-14 2001-04-06 서평원 교환기에서의 패킷 메시지 스위칭 시스템
WO2003030437A2 (en) * 2001-09-28 2003-04-10 Intel Corporation (A Corporation Of Delaware) Methodology for detecting lost packets

Also Published As

Publication number Publication date
US7024498B2 (en) 2006-04-04
KR20040041712A (ko) 2004-05-20
US20040093443A1 (en) 2004-05-13

Similar Documents

Publication Publication Date Title
KR100452640B1 (ko) 데이터 패킷 수신 장치 및 방법
US8001278B2 (en) Network packet payload compression
US8291133B2 (en) Skip based control logic for first in first out buffer
KR20210086420A (ko) 신경망 데이터 처리 장치, 방법 및 전자 장비
US6901496B1 (en) Line rate buffer using single ported memories for variable length packets
US7937508B2 (en) Method and apparatus for transferring data from a memory subsystem to a network adapter by extending data lengths to improve the memory subsystem and PCI bus efficiency
US20060092842A1 (en) Data flow control method for simultaneous packet reception
US8131967B2 (en) Asynchronous data interface
US7529260B2 (en) Packet transmission apparatus, packet transmission system and packet transmission method
US6208645B1 (en) Time multiplexing of cyclic redundancy functions in point-to-point ringlet-based computer systems
US7379467B1 (en) Scheduling store-forwarding of back-to-back multi-channel packet fragments
US5964896A (en) Method and apparatus for a high speed cyclical redundancy check system
US20190319779A1 (en) Transmitting circuit, semiconductor apparatus and semiconductor system configured to use the transmitting circuit
US20100054272A1 (en) Storage device capable of accommodating high-speed network using large-capacity low-speed memory
US6674373B1 (en) System and method for data decompression
US7739423B2 (en) Bulk transfer of information on network device
CN114710421B (zh) 一种基于数据预取的网络连接状态维护装置和方法
JP2873229B2 (ja) バッファメモリ制御装置
US11425230B2 (en) Efficient parsing tuned to prevalent packet types
US7315549B2 (en) Formatting data for a buffer
RU2781916C1 (ru) Способ модификации данных при сетевой пакетной коммутации
JPWO2009001450A1 (ja) メモリアクセス制御装置
JP2870468B2 (ja) データ転送速度差吸収方式
KR20100089064A (ko) 네트워킹 어댑터들에 부분 워드 저장을 위한 방법 및 어레인지먼트
JP4423728B2 (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: 20120928

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130923

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee