KR102219652B1 - 메모리 미디엄 링 기술을 이용한 다채널 네트워크 시스템 및 데이터 패킷의 전송 방법 - Google Patents

메모리 미디엄 링 기술을 이용한 다채널 네트워크 시스템 및 데이터 패킷의 전송 방법 Download PDF

Info

Publication number
KR102219652B1
KR102219652B1 KR1020190154972A KR20190154972A KR102219652B1 KR 102219652 B1 KR102219652 B1 KR 102219652B1 KR 1020190154972 A KR1020190154972 A KR 1020190154972A KR 20190154972 A KR20190154972 A KR 20190154972A KR 102219652 B1 KR102219652 B1 KR 102219652B1
Authority
KR
South Korea
Prior art keywords
host
data packet
transmission
bit
hosts
Prior art date
Application number
KR1020190154972A
Other languages
English (en)
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 KR1020190154972A priority Critical patent/KR102219652B1/ko
Priority to PCT/KR2019/016571 priority patent/WO2021107191A1/ko
Application granted granted Critical
Publication of KR102219652B1 publication Critical patent/KR102219652B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/102Packet switching elements characterised by the switching fabric construction using shared medium, e.g. bus or ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Small-Scale Networks (AREA)

Abstract

링 형상으로 연결된 복수의 호스트를 포함하며, 인접하는 호스트간에 복수의 메모리 모듈 링 스위치를 개재하여 연결됨으로써 복수의 채널을 형성하는 네트워크에서 데이터 패킷의 전송 방법으로, 상기 전송 방법은, 상기 복수의 호스트 각각이, 상기 복수의 채널의 전송 방향 및 수신 가능한 호스트 중 적어도 하나를 나타내는 채널 정보를 설정하는 단계; 상기 전송 호스트가, 상기 채널 정보 및 목적지에 기초하여 전송 채널을 결정하는 단계; 상기 전송 채널의 전송 방향에 연결된 메모리 모듈 링 스위치에 전송할 데이터 패킷을 저장하는 단계를 포함한다.

Description

메모리 미디엄 링 기술을 이용한 다채널 네트워크 시스템 및 데이터 패킷의 전송 방법{MULTI-LEVEL NETWORK SYSTEM AND DATA PACKET TRANMISSION METHOD USING MEMORY MEDIUM RING STRUCTURE}
본 발명은 메모리 미디엄 링 기술을 이용한 다채널 네트워크 시스템 및 데이터 패킷의 전송 방법에 관한 것이다.
인공지능, 사물인터넷 등의 발달에 따라 초대용량 데이터의 분석 및 제어가 요구되고, 이에 따라 병렬 처리, 기능적 분산, 공간적 집적의 필요성이 증대됨에 따라 매니코어 컴퓨팅 제품에 대한 수요가 증가하고 있다.
매니코어 시스템의 코어(호스트)를 연결하는 네트워크 스위치에는 공유 매체 스위치, 공유 메모리 스위치, 공간 분할 스위치가 있다.
도 20은 종래 기술에 따른 공유 매체 스위치, 공유 메모리 스위치 및 공간 분할 스위치의 기능을 개념적으로 나타낸 도면이다. 도 20에서 단방향 또는 양방향의 화살표들은 입출력 포트들을 나타낸다.
도 20의 (a)를 참조하면, 공유 매체 스위치는 각각의 입출력 포트들이 전선 또는 버스를 공유하여 공동으로 사용하는 구조이다. 각각의 입력 포트들은 공유 매체를 사용하기 위한 매체 접근 제어(MAC: Medium Access Control) 기법을 사용한다. CSMA/CD(Carrier Sense Multiple Access / Collision Detect), Token Ring/Bus, Slotted Ring/Bus 등이 대표적인 MAC 기법이다. 공유 매체 스위치는 공유하고 있는 매체를 사용하기 위한 시간 분할 다중화(Time Division Multple Access)로 인하여 하나의 입력 포트가 공유 매체를 사용할 때, 다른 포트들은 모두 대기하므로 성능 저하가 발생할 수 있다.
도 20의 (b)를 참조하면, 공유 메모리 스위치는 각각의 입출력 포트들이 공유 매체 대신 메모리를 공유하는 구조이다. 각각의 입력 포트들은 공유 매체 스위치와 마찬가지로 공유 메모리를 사용하기 위한 매체 접근 제어(MAC : Medium Access Control) 기법을 사용한다. Token Ring/Bus, Slotted Ring/Bus 등이 대표적인 MAC 기법이다. 공유 메모리 스위치 역시, 공유하고 있는 메모리를 사용하기 위한 시간 분할 다중화(Time Division Multple Access)로 인하여 하나의 입력 포트가 공유 메모리를 사용할 때, 다른 포트들은 모두 대기하여 성능 저하가 발생할 수 있다.
도 20의 (c)를 참조하면, 공간 분할 스위치는 공유 매체와 공유 메모리 스위치의 성능 저하 요소인 시간 분할 다중화를 극복하기 위하여 포트수 만큼의 매체를 확보하고 각각의 입력과 출력을 연결하는 접속 소자를 사용하여 필요한 경로를 스케쥴링 한다. 따라서 각각의 입력 포트들은 매체의 사용권을 확보하기 위한 매체 접근 제어 기능은 필요하지 않고 데이터 통신의 제2 계층인 데이터 링크 계층을 위한 매체 접근 기능만을 사용한다. 공간 분할 스위치는 공유 매체와 공유 메모리 스위치에 비교하여 이론적으로는 최대 통신 포트 수량의 배수만큼의 성능 향상이 가능하다. 그러나, 각각의 입/출력 포트들의 경로 설정을 위한 스케줄링 기능의 속도에 의하여 최대 성능의 저하가 발생한다. 또한, 1 대 1 통신을 지원하는 유니캐스트 방식에서는 우수한 성능을 지원할 수 있지만, 공간 분할 구조의 한계 및 복잡한 스케줄링 알고리즘으로 인해 1 대 다 및 다 대 다 통신을 지원하는 멀티캐스트와 브로드캐스트 방식의 통신을 지원하기 어렵다.
도 21은 종래의 네트워크 시스템의 구조를 나타내는 도면이다.
도 21의 (a)는 종래의 성형 구조 네트워크를 나타낸다. 성형 구조 네트워크는 기존의 공간 분할 스위치인 크로스바 스위치를 사용하여 제2 계층의 허브와 제3 계층의 라우터 기능을 수행하는 L2/L3 스위치를 성형 구조로 구축하는 방식이다.
그러나, 성형 구조 네트워크는 전술한 바와 같이 공간 분할 스위치를 사용하기 때문에 멀티캐스트나 브로드캐스트를 지원하기 어렵다. 또한, 성형 구조는 각 호스트들을 1 대 1로 직접 연결하여 고가 장비인 L2/L3 스위치와 인터넷 케이블 등 초기 설치비가 많이 소요되고 증설과 고장시 수리가 쉽지 않다.
도 21의 (b)는 종래의 크로스바 스위치를 활용한 2차원 타일형 구조 네트워크를 나타낸다. 타일형 구조 네트워크는 공간 분할 스위치인 크로스바 스위치를 사용하여 NxN 2차원의 타일 구조로 구축한 네트워크 방식이다. 각 코어는 자신을 포함하여 상, 하, 좌, 우 등의 코어들과 통신하기 위하여 라우터 기능을 갖는 공간 분할 스위치를 5x5 로 설치하여 통신이 이루어진다. 타일형 구조 네트워크 역시 공간 분할 스위치를 사용하기 때문에 멀티캐스트/브로드캐스트를 지원하기 어렵다. 또한, NxN 2차원 구조이기 때문에 3차원의 공간으로의 확장에 제약이 있다. 또한, 모든 코어에 라우터 기능을 운영하여 설치비 및 제료비의 증대를 유발하고 모든 코어에서 데이터 통신 제3 계층인 네트워크 계층 기능을 기반으로 하여 통신 효율이 저하된다.
한국등록특허 제10-2013816 B1호
본 발명의 실시예는 전술한 종래의 네트워크 스위치의 한계 및 네트워크 시스템 구조를 극복하기 위해 새로운 형태의 메모리 미디엄 링(MMR) 스위치를 이용한 링 형태의 네트워크 시스템 및 통신 방법을 제공하고자 한다.
본 발명의 실시예에 따른 데이터 패킷의 전송 방법은, 링 형상으로 연결된 복수의 호스트를 포함하며, 인접하는 호스트간에 복수의 메모리 모듈 링 스위치를 개재하여 연결됨으로써 복수의 채널을 형성하는 네트워크에서 데이터 패킷의 전송 방법으로, 상기 복수의 메모리 모듈 링 스위치의 각각은, 제1 메모리; 제2 메모리; 및 인접하는 호스트 중 어느 하나와 상기 제1 메모리가 연결되고 인접하는 호스트 중 나머지 하나가 상기 제2 메모리와 연결되는 제1 상태와, 상기 인접하는 호스트 중 어느 하나와 상기 제2 메모리가 연결되고 상기 인접하는 호스트 중 나머지 하나가 상기 제1 메모리와 연결되는 제2 상태의 사이를 전환하는 메모리 모듈 링 제어부를 포함하고, 상기 전송 방법은, 상기 복수의 호스트 각각이, 상기 복수의 채널의 전송 방향 및 수신 가능한 호스트 중 적어도 하나를 나타내는 채널 정보를 설정하는 단계; 상기 전송 호스트가, 상기 채널 정보 및 목적지에 기초하여 전송 채널을 결정하는 단계; 상기 전송 채널의 전송 방향에 연결된 메모리 모듈 링 스위치에 전송할 데이터 패킷을 저장하는 단계; 및 상기 데이터 패킷이 저장된 메모리 모듈 링 스위치의 상기 메모리 모듈 링 제어부가, 상기 제1 상태와 상기 제2 상태 사이를 전환함으로써 상기 데이터 패킷을 인접하는 호스트로 전송하는 단계를 포함한다.
상기 저장하는 단계는, 상기 전송 호스트가, 상기 전송 채널의 전송 방향의 메모리 모듈 링 스위치가 비어 있으면 상기 전송할 데이터 패킷을 저장할 수 있다.
상기 전송 방법은, 상기 전송 호스트가, 상기 네트워크에 포함되는 복수의 호스트 각각이 목적지에 해당하는지 여부를 나타내는 비트별(bitwise) MAC 주소를 포함하는 MMR-MAC 주소를 생성하는 단계를 더 포함하고, 상기 데이터 패킷은 상기 MMR-MAC 주소를 포함할 수 있다.
상기 MMR-MAC 주소는, 하나 이상의 목적지를 나타낼 수 있다.
상기 채널 정보는, 상기 네트워크에 포함되는 복수의 호스트 각각이 목적지인 경우, 데이터 패킷이 시계 방향으로 전송될지 아니면 반시계 방향으로 전송될지를 나타내는 비트별 전송 방향 마스크를 포함할 수 있다.
상기 비트별 전송 방향 마스크는, 상기 전송 호스트로부터 상기 복수의 호스트 각각까지의 시계 방향의 거리와 반시계 방향의 거리 중 짧은 방향에 해당하는 값을 갖도록 설정될 수 있다.
상기 채널 정보는, 상기 네트워크에 포함되는 복수의 호스트 중 짝수번째 호스트들을 나타내는 짝수 전송 채널 마스크와, 상기 네트워크에 포함되는 복수의 호스트 중 홀수번째 호스트들을 나타내는 홀수 전송 채널 마스크를 포함할 수 있다.
상기 복수의 채널의 데이터 패킷의 전송 방향은 동일할 수 있다.
상기 전송 방법은, 상기 전송 호스트는, 상기 복수의 채널의 전송 방향에 연결된 메모리 모듈 링 스위치에 저장된 데이터 패킷의 목적지 중에, 상기 전송할 데이터 패킷의 목적지가 포함되는지 판단하는 단계를 더 포함하고, 상기 저장하는 단계에서, 상기 전송 호스트는, 상기 전송할 데이터 패킷의 목적지가 포함되지 않은 경우, 상기 전송 채널의 전송 방향에 연결된 메모리 모듈 링 스위치에 상기 전송할 데이터 패킷을 저장할 수 있다.
상기 전송 채널을 결정하는 단계에서, 상기 전송 호스트는, 상기 전송할 데이터 패킷의 비트별 MAC 주소와, 상기 전송 호스트에 설정된 상기 비트별 전송 방향 마스크에 대해, 비트별 앤드 연산을 수행한 결과에 기초하여, 시계 방향 전송 채널과 반시계 방향 전송 채널 중 적어도 하나를 결정할 수 있다.
상기 전송 채널을 결정하는 단계에서, 상기 전송 호스트는, 상기 전송할 데이터 패킷의 비트별 MAC 주소와, 상기 전송 호스트에 설정된 상기 홀수 비트별 전송 방향 마스크에 대해, 비트별 앤드 연산을 수행한 결과 및, 상기 전송할 데이터 패킷의 비트별 MAC 주소와, 상기 전송 호스트에 설정된 상기 짝수 비트별 전송 방향 마스크에 대해, 비트별 앤드 연산을 수행한 결과에 기초하여, 홀수 방향 전송 채널과 짝수 방향 전송 채널 중 적어도 하나를 결정할 수 있다.
상기 전송 방법은, 상기 인접하는 호스트는, 수신한 데이터 패킷의 MMR-MAC 주소에 기초하여 상기 인접하는 호스트가 상기 데이터 패킷의 목적지에 해당하는지를 판단하는 단계; 상기 인접하는 호스트가 상기 데이터 패킷의 목적지에 해당하면, 상기 MMR-MAC 주소를 원래의 MAC 주소로 변환하는 단계; 및 상기 인접하는 호스트 외에 상기 데이터 패킷의 목적지가 존재하면, 상기 데이터 패킷을 상기 인접하는 호스트에 인접하는 호스트로 전송하는 단계를 더 포함할 수 있다.
상기 인접하는 호스트에 인접하는 호스트로 전송하는 단계에서, 상기 데이터 패킷의 MMR-MAC 주소의 비트별(bitwise) MAC 주소는 상기 인접하는 호스트가 포함되지 않을 수 있다.
본 발명의 실시예에 따른 네트워크 시스템은, 링 형상으로 연결된 복수의 호스트를 포함하며, 인접하는 호스트간에 복수의 메모리 모듈 링 스위치를 개재하여 연결됨으로써 복수의 채널을 형성하는 네트워크 시스템으로, 상기 복수의 메모리 모듈 링 스위치의 각각은, 제1 메모리; 제2 메모리; 및 인접하는 호스트 중 어느 하나와 상기 제1 메모리가 연결되고 인접하는 호스트 중 나머지 하나가 상기 제2 메모리와 연결되는 제1 상태와, 상기 인접하는 호스트 중 어느 하나와 상기 제2 메모리가 연결되고 상기 인접하는 호스트 중 나머지 하나가 상기 제1 메모리와 연결되는 제2 상태의 사이를 전환하는 메모리 모듈 링 제어부를 포함하고, 상기 호스트는, 상기 복수의 채널의 전송 방향 및 수신 가능한 호스트 중 적어도 하나를 나타내는 채널 정보를 설정하는 디바이스 드라이버 통신부; 및 상기 채널 정보 및 목적지에 기초하여 전송 채널을 결정하고, 상기 전송 채널의 전송 방향에 연결된 메모리 모듈 링 스위치에 전송할 데이터 패킷을 저장하는 MMR-MAC 전송부를 포함한다.
상기 네트워크 시스템은, 상기 호스트의 수신 방향에 연결된 메모리 모듈 링 스위치에 저장된 데이터 패킷의 목적지에 기초하여, 상기 저장된 데이터 패킷을 수신하거나 전송 방향으로 인접한 호스트에 상기 저장된 데이터 패킷을 전달하는 MMR-MAC 수신부를 더 포함할 수 있다.
본 발명의 실시예에 의하면, 메모리 모듈 링 스위치를 개재하여 연결된 링 형상의 네트워크 시스템이 복수의 채널을 갖기 때문에, 채널별로 과부하가 걸리지 않고 전송 효율을 높일 수 있다.
도 1은 본 발명의 실시예에 따른 네트워크의 구성을 나타내는 도면이다.
도 2는 도 1의 메모리 모듈 링 스위치(MMRS)의 구성을 나타내는 도면이다.
도 3a 및 도 3b는 본 발명의 실시예에 따른 MMR 스위치를 이용한 데이터 패킷의 전송 방법을 나타낸 순서도이다.
도 4는 도 1의 네트워크에서 실행되는, 본 발명의 실시예에 따른 데이터 패킷의 전송 방법을 나타내는 순서도이다.
도 5는 본 발명의 실시예에 따른 각 호스트의 레지스터 파일의 일 예이다.
도 6은 본 발명의 실시예에 따른 전송 방향 비트 마스크를 생성하는 방법을 나타내는 순서도이다.
도 7은 본 발명의 실시예에 따른 홀수 채널 비트 마스크 및 짝수 채널 비트 마스크를 생성하는 방법을 나타내는 순서도이다.
도 8은 본 발명의 실시예에 따른 MMR-MAC 주소의 일 예이다.
도 9는 본 발명의 실시예에 따른 MMR-MAC 주소의 생성 방법을 나타내는 순서도이다.
도 10은 본 발명의 실시예에 따른 단방향 다채널 네트워크의 모식도이다.
도 11은 도 10의 네트워크에서 데이터 패킷의 전송 방법을 나타내는 순서도이다.
도 12는 본 발명의 실시예에 따른 양방향 이중채널 네트워크의 모식도이다.
도 13은 도 12의 네트워크에서 데이터 패킷의 전송 방법을 나타내는 순서도이다.
도 14는 본 발명의 실시예에 따른 범주형 다채널 네트워크의 모식도이다.
도 15는 도 14의 네트워크에서 데이터 패킷의 전송 방법을 나타내는 순서도이다.
도 16은 도 1의 네트워크에서 실행되는, 본 발명의 실시예에 따른 데이터 패킷의 수신 방법을 나타내는 순서도이다.
도 17은 도 16의 데이터 패킷의 수신 방법의 일 예이다.
도 18은 본 발명의 실시예에 따른 데이터 패킷 전송 장치의 구성도이다.
도 19는 본 발명의 실시예에 따른 네트워크 시스템의 적용예를 나타내는 도면이다.
도 20은 종래 기술에 따른 공유 매체 스위치, 공유 메모리 스위치 및 공간 분할 스위치의 기능을 개념적으로 나타낸 도면이다.
도 21은 종래의 네트워크 시스템의 구조를 나타내는 도면이다.
발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여, 본 명세서 및 청구범위에 사용된 용어나 단어는 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
또한, 한 구성요소가 다른 구성요소에 "연결", "전송", "송신", "수신" 또는 "전달"된다고 할 때, 이는 직접적으로 연결, 전송, 송신, 수신 또는 전달되는 경우뿐만 아니라 다른 구성요소를 개재하여 간접적으로 연결, 전송, 송신, 수신 또는 전달되는 경우도 포함한다.
또한, 명세서에 기재된 "…부", "…기", "모듈", "장치" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 네트워크 시스템(1)의 구성도이다.
도 1을 참조하면, 네트워크 시스템(1)은, 메모리 모듈 링(MMR) 스위치(112, 122, 132, 142, 152, 162)를 개재하여 링 형상으로 연결된 복수의 호스트(110, 120, 130, 140, 150, 160)로 이루어진 제1 그룹(100); 및 MMR 스위치(212, 232, 242, 252, 262)를 개재하여 링 형상으로 연결된 복수의 호스트(160, 230, 240, 250, 260)로 이루어진 제2 그룹(200)을 포함하며, 상기 제1 그룹(100)과 상기 제2 그룹(200)은 라우터인 공통 호스트(160)를 공유한다.
본 실시예에서, 네트워크 시스템(1)은 MMR 스위치(312, 332, 342, 352, 362)를 개재하여 링 형상으로 연결된 복수의 호스트(230, 330, 340, 350, 360)로 이루어진 제3 그룹(300)을 더 포함하고, 제2 그룹(200)과 제3 그룹(300)은 라우터인 공통 호스트(230)를 공유하고, MMR 스위치(412, 432, 442, 452, 462)를 개재하여 링 형상으로 연결된 복수의 호스트(350, 430, 440, 450, 460)로 이루어진 제4 그룹(400)을 더 포함하고, 제3 그룹(200)과 제4 그룹(300)은 라우터인 공통 호스트(350)를 공유할 수 있다.
네트워크 시스템(1)의 각 그룹(100, 200, 300, 400)은 레벨을 갖는다. 레벨 1인 그룹과 호스트를 공유하는 그룹이 레벨 2가 되고, 레벨 2인 그룹과 호스트를 공유하는 그룹이 레벨 3이 되고, 레벨 3인 그룹과 호스트를 공유하는 그룹이 레벨 4가 되는 방식으로 각 그룹의 레벨이 정해질 수 있다. 도 1에서 , 제1 그룹(100)은 레벨 1, 제2 그룹(200)은 레벨 2, 제3 그룹(300)은 레벨 3, 제4 그룹(400)은 레벨 4일 수 있다.
도 1에 도시된 바와 같이, 네트워크 시스템(1)은 각 호스트에 할당되는 IP 주소는 그룹별로 구분되어 표시될 수 있다. 예를 들어, 제1 그룹(100)의 IP 주소는 4바이트로 구성된 IP 주소의 첫번째 바이트가 이용되고, 제2 그룹(200)의 IP 주소는 4바이트로 구성된 IP 주소의 두번째 바이트가 이용되고, 제3 그룹(300)의 IP 주소는 4바이트로 구성된 IP 주소의 세번째 바이트가 이용되고, 제4 그룹(400)의 IP 주소는 4바이트로 구성된 IP 주소의 네번째 바이트가 이용될 수 있다. 호스트 중 라우터(110, 120, 130, 160, 230, 240, 260, 350, 360)는, 라우터(110, 120, 130, 160, 230, 240, 260, 350, 360)가 속하는 그룹의 레벨에 따른 IP 주소와, 그 다음 레벨에 따른 IP 주소 2개가 할당될 수 있다. 각 그룹의 IP 주소는 각 그룹에 해당하는 IP 주소의 영역의 값이 시계 방향으로 순차적으로 증가하도록 할당될 수있다.
도 1에는 각 그룹이 하나의 선으로 연결된 것으로 도시되어 있지만, 각 그룹은 복수의 채널을 이용하여 데이터 패킷을 전송한다.
도 2는 본 발명의 실시예에 따른 MMR 스위치(2)의 구성도이다.
도 2의 MMR 스위치(2)는 도 1의 MMR 스위치(112, 122, 132, 142, 152, 162, 212, 232, 242, 252, 262, 312, 332, 342, 352, 362, 412, 432, 442, 452, 462)에 해당할 수 있다.
도 2를 참조하면, 인접하여 연결된 2개의 호스트(PROCE1, PROCE2) 사이에 연결된 MMR 스위치(2)는, 제1 메모리(MB1); 제2 메모리(MB2); 및 2개의 호스트 중 어느 하나(PROCE1)와 상기 제1 메모리(MB1)가 연결되고 상기 2개의 호스트 중 나머지 하나(PROCE2)가 상기 제2 메모리(MB2)와 연결되는 제1 상태와, 상기 2개의 호스트 중 어느 하나(PROCE1)와 상기 제2 메모리(MB2)가 연결되고 상기 2개의 호스트 중 나머지 하나(PROCE2)가 상기 제1 메모리(MB1)와 연결되는 제2 상태의 사이를 전환하는 MMR 제어부(21)를 포함할 수 있다.
본 실시예에서, MMR 스위치(2)는 입출력 단자 중 하나가 호스트(PROCE1)에 공통으로 연결되고, 입출력 단자 중 나머지 하나가 호스트(PROCE1, PROCE2)에 각각 연결된 2개의 버퍼(FB1, SB1)를 포함하는 제1 버퍼(22)와, 입출력 단자 중 하나가 호스트(PROCE2)에 공통으로 연결되고, 입출력 단자 중 나머지 하나가 호스트(PROCE1, PROCE2)에 각각 연결된 2개의 버퍼(FB2, SB2)를 포함하는 제2 버퍼(23)를 추가로 포함할 수 있다.
MMR 제어부(21)는 서로 반대의 논리 레벨을 갖는 제1 제어신호(CTRL1) 및 제2 제어신호(CTRL2)를 생성할 수 있다. 예를 들어, 제1 제어신호(CTRL1)가 하이레벨이고 제2 제어신호(CTRL2)가 로우레벨인 경우, 버퍼(FB1, SB2)가 활성화되고 버퍼(SB1, FB2)가 비활성화되어, 호스트(PROCE1)가 제1 메모리(MB1)에 연결되고 호스트(PROCE2)가 제2 메모리(MB2)에 연결되는 제1 상태가 될 수 있다. 또는, 제1 제어신호(CTRL1)가 로우레벨이고 제2 제어신호(CTRL2)가 하이레벨인 경우, 버퍼(FB2, SB1)가 활성화되고 버퍼(SB2, FB1)가 비활성화되어, 호스트(PROCE2)가 제1 메모리(MB1)에 연결되고 호스트(PROCE1)가 제2 메모리(MB2)에 연결되는 제2 상태가 될 수 있다. 이러한 방식으로, MMR 제어부(21)는 호스트(PROCE1, PROCE2)와 제1 및 제2 메모리(MB1, MB2)가 일대일 연결되는 방식을 변경할 수 있다. 다만, 이는 일 예에 불과하며, 버퍼(FB1, FB2, SB1, SB2)가 활성화되는 방식(로우 인에이블인지 또는 하이 인에이블인지)은 달라질 수 있다.
MMR 제어부(21)는 호스트(PROCE1, PROCE2)의 상태에 기초하여 제1 제어신호(CTRL1) 및 제2 제어신호(CTRL2)를 생성할 수 있다. 이를 위해, MMR 제어부(21)와 호스트(PROCE1, PROCE2) 간에는 호스트(PROCE1, PROCE2)의 상태를 나타내는 신호가 송수신될 수 있다.
도 3a 및 도 3b는 본 발명의 실시예에 따른 MMR 스위치를 이용한 데이터 패킷의 전송 방법을 나타낸 순서도이다.
도 3a를 참조하면, 먼저, MMR 스위치가 제1 상태, 즉 호스트(PROCE1)가 제1 메모리(MB1)에 연결되고 호스트(PROCE2)가 제2 메모리(MB2)에 연결된 상태일 수 있다(S110).
제1 상태에서, 호스트(PROCE1)가 제1 메모리(MB1)에 데이터 패킷을 기입할 수 있다(S120).
다음으로, MMR 스위치가 제2 상태, 즉 호스트(PROCE2)가 제1 메모리(MB1)에 연결되고 호스트(PROCE1)가 제2 메모리(MB1)에 연결되는 제2 상태로 전환된다(S130).
제2 상태에서, 호스트(PROCE2)가 제1 메모리(MB1)에 기입된 데이터 패킷을 읽어낼 수 있다(S140).
이에 따라, 데이터 패킷이 호스트(PROCE1)로부터 호스트(PROCE2)로 전송될 수 있다.
도 3b를 참조하면, 먼저, MMR 스위치가 제1 상태, 즉 호스트(PROCE1)가 제1 메모리(MB1)에 연결되고 호스트(PROCE2)가 제2 메모리(MB2)에 연결된 상태일 수 있다(S210).
제1 상태에서, 호스트(PROCE2)가 제2 메모리(MB2)에 데이터 패킷을 기입할 수 있다(S220).
다음으로, MMR 스위치가 제2 상태, 즉 호스트(PROCE2)가 제1 메모리(MB1)에 연결되고 호스트(PROCE1)가 제2 메모리(MB2)에 연결되는 제2 상태로 전환된다(S230).
제2 상태에서, 호스트(PROCE1)가 제2 메모리(MB2)에 기입된 데이터 패킷을 읽어낼 수 있다(S240).
이에 따라, 데이터 패킷이 호스트(PROCE2)로부터 호스트(PROCE1)로 전송될 수 있다.
채널에 따라 호스트(PROCE1)에서 호스트(PROCE2)로 데이터 패킷이 전송되거나, 호스트(PROCE2)에서 호스트(PROCE1)로 데이터 패킷이 전송되는 전송 방향이 설정될 수 있다.
도 3a 및 도 3b의 메시지의 전송은 개별적으로 수행될 수도 있고 동시에 수행될 수도 있다. 즉, S120 단계 및 S220 단계가 동시에 수행되고, S140 단계 및 S240 단계가 동시에 수행됨으로써 메시지가 호스트(PROCE1)로부터 호스트(PROCE2)로 전송됨과 동시에 다른 메시지가 호스트(PROCE2)로부터 호스트(PROCE1)로 전송될 수도 있다.
제1 메모리(MB1) 및 제2 메모리(MB2)의 크기는 네트워크 시스템(1)에서 전송되는 패킷의 크기와 동일할 수 있다. 네트워크 시스템(1)에서 전송되는 메시지는 패킷의 형태일 수 있다. 제1 메모리(MB1) 및 제2 메모리(MB2)의 크기를 네트워크 시스템(1)에서 전송되는 패킷의 크기와 동일하게 함으로써 제1 메모리(MB1) 및 제2 메모리(MB2)에 저장된 데이터(패킷)의 기입 및 읽어내는 시간을 감소시킬 수 있다.
메모리 모듈 링 제어부(21)는, 네트워크 시스템에서 데이터 패킷이 전송되는 시간 간격으로 제1 상태와 제2 상태 간을 전환할 수 있다. 이에 따라, 제1 상태와 제2 상태를 전환하는 시간을 단축시켜 데이터 패킷의 전송 속도를 향상시킬 수 있다.
도 4는 도 1의 네트워크에서 실행되는, 본 발명의 실시예에 따른 데이터 패킷의 전송 방법을 나타내는 순서도이다.
도 4를 참조하면, 먼저, 네트워크에 포함되는 복수의 호스트 각각은 채널 정보를 설정한다(S410). S410 단계는 네트워크에서 데이터 패킷을 전송하기 전에 수행된다. 복수의 호스트에서 설정되는 채널 정보는 서로 상이할 수 있다.
채널 정보는 복수의 채널의 전송 방향 또는 수신 가능한 호스트를 나타낼 수 있다. 설정된 채널 정보는 각 호스트의 레지스터 파일에 저장될 수 있다.
다음으로, 전송 호스트는, 전송될 데이터 패킷의 목적지를 나타내는 MMR-MAC 주소를 생성한다(S420). MMR-MAC 주소에는 하나 이상의 목적지가 표현될 수 있다. MMR-MAC 주소는 본 발명의 실시예에 따라 도 1 및 도 2의 네트워크에서 메모리 모듈 링 스위치(MMRS)를 통해 데이터 패킷을 전송하기 위한 주소 형식을 갖는다.
다음으로, 전송 호스트는, 채널 정보 및 목적지에 기초하여 전송 채널을 결정한다(S430). 복수의 채널은 전송 방향, 수신 가능한 호스트, 전송 상황 즉 메모리 모듈 링 스위치(MMRS)에 데이터의 저장 여부 등이 상이할 수 있다. 전송 호스트는 전송 방향 또는 수신 가능한 호스트를 나타내는 채널 정보와, 목적지에 기초하여 전송 채널을 결정할 수 있다.
다음으로, 전송 호스트는, 전송 채널의 메모리 모듈 링 스위치에 데이터 패킷을 저장한다(S440). 이때, 데이터 패킷에는 MMR-MAC 주소가 포함될 수 있다.
다음으로, 데이터 패킷이 저장된 채널에 해당하는 메모리 모듈 링 스위치의 메모리 모듈 링 제어부가, 제1 상태와 제2 상태 사이를 전환함으로써 데이터 패킷을 인접하는 호스트로 전송한다(S450).
S440 단계는 S120 단계 또는 S220 단계에 대응하고, S450 단계는 도 S130 단계 및 S140 단계 또는, S230 단계 및 S240 단계에 대응할 수 있다.
도 5는 본 발명의 실시예에 따른 각 호스트의 레지스터 파일의 일 예이다. 도 5에서, 레지스터 파일은 24바이트이며, 숫자는 각 정보가 저장되는 레지스터 파일의 바이트 번호를 나타낸다.
도 5를 참조하면, 레지스터 파일에는, 원래의 MAC 주소(Original MAC Addr), 레벨 비트 마스크(Level Bit Mask), 레벨 최대 호스트 개수(Level Max Host Cnt), 레벨 IP 주소(Level IP Addr), 비트 MAC 주소 바이트 번호(Bit MAC Addr Byte Num), MAC 주소 비트 마스크(MAC Addr Bit Mask), MAC 주소 비트 지움(MAC Addr Bit Clean), 전송 방향 마스크(Tx. Direction Mask #1~#4), 홀수 전송 채널 마스크(Odd Tx. Channel Mask #1~#4), 짝수 전송 채널 마스크(Even Tx. Channel Mask #1~#4)가 저장될 수 있다. 전송 방향 마스크, 홀수 전송 채널 마스크 및 짝수 전송 채널 마스크는 채널 정보에 해당할 수 있다.
원래의 MAC 주소(Original MAC Addr)는 일반적으로 인터넷에서 사용되는 통신 디바이스를 고유하게 구분하기 위한 MAC 계층의 물리 주소이다. 목적지에 해당하는 호스트가 데이터 패킷을 수신한 후, 데이터 패킷에 포함된 MMR-MAC 주소를 원래의 MAC 주소로 복원하기 위하여 사용된다.
레벨 비트 마스크(Level Bit Mask)는 당해 레지스터 파일이 저장된 호스트가 속하는 링 네트워크의 레벨을 마스킹을 통하여 확인하기 위한 것이다. 예를 들어, 1단 링 네트워크는 빅엔디안 방식으로 10000000, 2단 링 네트워크는 01000000, 3단 링 네트워크는 00100000, 4단 링 네트워크는 00010000으로 저장되며, 리틀엔티안 방식으로 1단 링 네트워크는 00000001, 2단 링 네트워크는 00000010, 3단 링 네트워크는 00000100, 4단 링 네트워크는 00001000으로 저장될 수 있다.
레벨 최대 호스트 개수(Level Max Host Cnt)는 당해 링 네트워크에서 설치하여 현재 사용하고 있는 호스트의 최대 수량을 나타낸다.
레벨 IP 주소(Level IP Addr)는 링 네트워크 내에서의 호스트의 IP 주소이다. 예를 들어 링 네트워크의 레벨이 3단이면 레벨 IP 주소는 해당 호스트의 IP 주소 a.b.x.c에서 x값에 해당한다.
비트 MAC 주소 바이트 번호(Bit MAC Addr Byte Num) 및 MAC 주소 비트 마스크(MAC Addr Bit Mask)는 당해 호스트의 주소(위치)를 나타낸다. 후술하는 바와 같이, 목적지를 나타내는 MMR-MAC 주소는 비트별 MAC 주소를 포함할 수 있다. 비트별 MAC 주소는 링 네트워크에 속하는 호스트들에 각각 대응하는 비트를 이용하여 목적지를 표시한다. 링 네트워크에 속하는 호스트가 32개인 경우 32비트, 즉 4바이트를 이용하여 목적지를 나타낸다. 비트 MAC 주소 바이트 번호(Bit MAC Addr Byte Num) 및 MAC 주소 비트 마스크(MAC Addr Bit Mask)는 당해 호스트를 비트별 MAC 주소로 표현한 경우, 당해 호스트에 해당하는 비트가 속하는 바이트 번호와, 당해 바이트 번호에 해당하는 바이트의 비트들의 값을 나타낸다.
예를 들어, 링 네트워크의 전체 호스트 수가 32개인 경우, 레벨 IP 주소가 27인 호스트의 비트별 MAC 주소는, 비트 26(27번재 비트)가 1이고 나머지 비트는 0이 되도록 "00000000 00000000 00000000 00100000"으로 표시될 수 있다. 이때, 당해 호스트를 나타내는 비트 26(27번째 비트)은 바이트 3(4번째 바이트)에 속하므로, 비트 MAC 주소 바이트 번호(Bit MAC Addr Byte Num)는 3이고, MAC 주소 비트 마스크(MAC Addr Bit Mask)는 비트별 MAC 주소의 비트 MAC 주소 바이트 번호(Bit MAC Addr Byte Num)인 바이트 3의 비트값 "00000100"(빅엔디안) 또는 "00100000"(리틀엔디안)이 된다. 비트 MAC 주소 바이트 번호(Bit MAC Addr Byte Num))는 당해 호스트의 레벨 IP 주소를 8로 나는 몫에 해당하고, MAC 주소 비트 마스크(MAC Addr Bit Mask)는 당해 호스트의 레벨 IP 주소를 8로 나눈 나머지를 비트별로 표시한 것에 해당할 수 있다.
MAC 주소 비트 지움(MAC Addr Bit Clean)은 MAC 주소 비트 마스크(MAC Addr Bit Mask)를 비트별로 반전한 값에 해당한다. 레벨 IP 주소가 27인 호스트의 MAC 주소 비트 지움(MAC Addr Bit Clean)은 11111011(빅엔디안) 또는 11011111(리틀엔디안)이 된다. MAC 주소 비트 지움(MAC Addr Bit Clean)은, 데이터 패킷에 포함된 MMR-MAC 주소의 비트별 MAC 주소에 당해 호스트가 목적지로 포함된 경우, 당해 호스트에 데이터 패킷을 전송한 다음 당해 호스트를 비트별 MAC 주소에서 지우기 위해 비트 MAC 주소 바이트 번호(Bit MAC Addr Byte Num)와 함께 사용된다. 예를 들어, 데이터 패킷의 MMR-MAC 주소의 비트별 MAC 주소에서 비트 MAC 주소 바이트 번호에 해당하는 부분을 MAC 주소 비트 지움(MAC Addr Bit Clean)과 비트별 앤드 연산을 수행함으로써, 데이터 패킷의 MMR-MAC 주소의 비트별 MAC 주소의 당해 호스트에 해당하는 비트를 "0"으로 클리어할 수 있다.
전송 방향 마스크(Tx. Direction Mask #1~#4), 홀수 전송 채널 마스크(Odd Tx. Channel Mask #1~#4), 짝수 전송 채널 마스크(Even Tx. Channel Mask #1~#4)는 링 네트워크에서 통신 효율을 향상시키기 위해 채널별로 전송 방향 및/또는 목적지의 범주를 제한하기 위해 사용되는 채널 정보이다. 전송 방향 마스크(Tx. Direction Mask #1~#4), 홀수 전송 채널 마스크(Odd Tx. Channel Mask #1~#4), 짝수 전송 채널 마스크(Even Tx. Channel Mask #1~#4)는 비트별 MAC 주소처럼 링 네트워크에 속하는 호스트들 각각에 해당하는 비트를 갖는다. 본 실시예에서 전송 방향 마스크(Tx. Direction Mask #1~#4), 홀수 전송 채널 마스크(Odd Tx. Channel Mask #1~#4), 짝수 전송 채널 마스크(Even Tx. Channel Mask #1~#4) 각각은 32개의 호스트에 각각에 해당하는 32 비트, 즉 4 바이트를 갖는다.
전송 방향 마스크(Tx. Direction Mask #1~#4)는 예를 들어 당해 호스트로부터 시계 방향으로 대략 중간 지점의 호스트에 해당하는 비트들은 "1", 나머지 비트들은 "0"으로 설정될 수 있다. 호스트의 위치(레벨 IP 주소)는 모두 상이하게 때문에, 전송 방향 마스크(Tx. Direction Mask #1~#4)는 호스트마다 상이하게 설정될 수 있다.l
홀수 전송 채널 마스크(Odd Tx. Channel Mask #1~#4)는 홀수 번째 비트들은 "1"로 설정하고 짝수 번째 비트들은 "0"으로 설정될 수 있다. 반대로, 짝수 전송 채널 마스크(Even Tx. Channel Mask #1~#4)는 짝수 번재 비트들이 "1"로 설정되고 홀수 번째 비트들은 "0"으로 설정될 수 있다.
도 6은 본 발명의 실시예에 따른 전송 방향 비트 마스크를 생성하는 방법을 나타내는 순서도이다.
도 6을 참조하면, 먼저 호스트는 전송 방향 비트 마스크를 생성하기 위해 필요한 데이터인 전송 방향 비트 마스크(TxDirMask), 방향 전환 호스트 번호(TurnHostNum), 임시 방향 전환 호스트 번호(tempTurnHostNum)를 초기화한다(S510). 전송 방향 비트 마스크(TxDirMask)는 예를 들어 32비트로 구성되며 각 비트가 모두 "0"으로 설정될 수 있다. 방향 전환 호스트 번호(TurnHostNum)는 호스트가 속한 링 네트워크의 현재 연결된 호스트 개수(MaxHostNum)의 대략 절반에 해당하는 값으로 설정될 수 있다. 임시 방향 전환 호스트 번호(tempTurnHostNum)는 방향 전환 호스트 번호(TurnHostNum)로 초기화된다(S610).
다음으로, 호스트의 레벨 IP 주소(LevelIPAddr)가 방향 전환 호스트 번호(TurnHostNum) 이하인지 판단한다(S620).
호스트의 레벨 IP 주소(LevelIPAddr)가 방향 전환 호스트 번호(TurnHostNum) 이하이면(S620, Yes), 전송 방향 비트 마스크(TxDirMask)에서 호스트에 해당하는 비트부터 시계 방향으로 현재 호스트 개수(MaxHostCnt)의 대략 절반의 개수에 해당하는 비트까지의 값을 "1"로 설정한다(S630~S636).
호스트의 레벨 IP 주소(LevelIPAddr)가 방향 전환 호스트 번호(TurnHostNum) 보다 크면(S620, No), 전송 방향 비트 마스크(TxDirMask)에서 호스트에 해당하는 비트부터 현재 연결된 호스트 개수에 해당하는 비트까지 “1”로 설정한다(S640~S646). 그리고, 전송 방향 비트 마스크(TxDirMask)에서 첫번째 비트부터, 현재 연결된 호스트 개수의 대략 절반에서 1로 설정된 비트수를 뺀 개수만큼(tempTurnHostNum) "1”로 설정한다.
이에 따라, 호스트의 레벨 IP 주소(LevelIPAddr)가 방향 전환 호스트 번호(TurnHostNum) 이하이거나(S620, Yes), 큰 경우(S620, No) 모두에 있어서, 링 네트워크에서 보았을 때, 호스트로부터 시계 방향으로 현재 연결된 호스트 개수(MaxHostNum)의 대략 절반에 해당하는 호스트들에 해당하는, 전송 방향 비트 마스크(TxDirMask)의 비트들이 "1”로 설정된다.
링 네트워크에서 전송 방향 비트 마스크(TxDirMask)를 설정하는 호스트의 레벨 IP 주소(LevelIPAddr)는 상이하기 때문에, 링 네트워크를 구성하는 호스트의 전송 방향 비트 마스크(TxDirMask)는 상이하게 설정될 수 있다.
도 7은 본 발명의 실시예에 따른 홀수 채널 비트 마스크 및 짝수 채널 비트 마스크를 생성하는 방법을 나타내는 순서도이다.
도 7을 참조하면, 먼저 전송 채널 비트 마스크(TxChMask), 홀수 전송 채널 비트 마스크(OddTxChMask), 짝수 전송 채널 비트 마스크(EvenTxChMask)를 초기화한다(S710). 전송 채널 비트 마스크(TxChMask), 홀수 전송 채널 비트 마스크(OddTxChMask), 짝수 전송 채널 비트 마스크(EvenTxChMask)는 예를 들어 각각 32비트로 구성되며 각 비트가 모두 "0"으로 설정될 수 있다.
다음으로, 전송 채널 비트 마스크(TxChMask)의 첫번째 비트부터 현재 연결된 호스트 개수(MaxHostNum)에 해당하는 비트까지에서 홀수번째 비트를 "1"로 설정한다(S720~S740).
전송 채널 비트 마스크(TxChMask)의 값을 홀수 전송 채널 비트 마스크(OddTxChMask)에 기록하고, 전송 채널 비트 마스크(TxChMask)의 각 비트를 반전한 것이 짝수 전송 채널 비트 마스크(EvenTxChMask)가 된다(S750).
도 8은 본 발명의 실시예에 따른 MMR-MAC 주소의 일 예이다. MMR-MAC 주소는 데이터 패킷에 포함되어 데이터 패킷의 목적지를 나타내며 전송 호스트에서 생성된다. 도 8에서 MMR-MAC 주소는 6 바이트(바이트0~바이트5)를 갖는다.
도 8을 참조하면, MMR-MAC 주소는, 멀티캐스트 표시 영역(810), 네트워크 레벨 식별 영역(820), 목적지 개수 영역(830) 및 비트별 MAC 주소 영역(840)을 포함할 수 있다.
멀티캐스트 표시 영역(810)은 1 대 1 통신인지, 1 대 다 통신인지를 나타낸다. 도 8의 예에서 멀티캐스트 표시 영역(810)은 바이트 0의 2개의 비트(b0, b1)에 해당한다. 예를 들어, 바이트 0의 b0 및 b1이 "00"인 경우는 1 대 1 통신을 나타내고, "10"인 경우는 로컬 멀티캐스트 통신, 즉 당해 링 네트워크 내에서 복수의 호스트에 데이터 패킷을 전송하는 것을 나타내고, "11"인 경우는 글로벌 멀티캐스트 통신, 즉 당해 네트워크뿐만 아니라 다른 네트워크를 포함하는 범위에서 복수의 호스트에 데이터 패킷을 전송하는 것을 나타낸다.
본 실시예에서 바이트 0의 b2 및 b3은 사용하지 않는다.
네트워크 레벨 식별 영역(820)은 목적지의 레벨(단)을 구분하는 비트 정보로 사용된다. 본 실시예에서 네트워크 레벨 식별 영역(820)은 바이트 0의 4개의 비트(b4~b7)를 사용하여, b4가 "1"인 경우 목적지가 1단 링 네트워크임을 나타내고, b5가 "1인 경우는 목적지가 2단 링 네트워크임을 나타내고, b6가 "1"인 경우는 목적지가 3단 링 네트워크임을 나타내고, b7가 "1"인 경우는 목적지가 4단 링 네트워크임을 나타낸다.
목적지 개수 영역(830)은 네트워크 내의 목적 호스트(목적지)의 개수를 나타낸다. 본 실시예에서 목적지 개수 영역(830)은 MMR-MAC 주소의 바이트 1에 해당한다. 멀티캐스트 표시 영역(810)에 1 대 1 통신을 지원하는 것으로 표시된 경우 목적지 개수 영역(830)의 값은 1이 되어야 하고, 멀티캐스트 표시 영역(810)에 1 대 다 통신을 지원하는 것으로 표시된 경우 목적지 개수 영역(830)의 값은 2 이상이 되어야 한다.
비트별 MAC 주소 영역(840)에는 비트별 MAC 주소가 저장된다. 전술한 바와 같이 비트별 MAC 주소는 네트워크에 속하는 호스트들 각각에 대응하는 비트를 포함한다. 본 실시예에서, 바이트 2~바이트 5의 32 비트(b0~b31)의 각각은 네트워크에 속하는 32개의 호스트에 각각 대응할 수 있다. 비트별 MAC 주소 영역(540)에서 목적지의 호스트에 해당하는 비트를 "1"로 설정함으로써 목적지를 표시할 수 있다. 다만 이는 예시에 불과하며, 네트워크에 포함되는 호스트의 개수에 따라 목적지 개수 영역(830)과 비트별 MAC 주소 영역(840)의 크기는 달라질 수 있다.
비트별 MAC 주소 영역(840)에서 "1"로 설정된 비트의 수는, 목적지 개수 영역(830)의 값과 동일하다.
도 9는 본 발명의 실시예에 따른 MMR-MAC 주소의 생성 방법을 나타내는 순서도이다.
도 9를 참조하면, 전송 호스트는 목적지의 IP 주소를 획득한다(S910). 전송 호스트는 IP 계층으로부터 목적지의 IP 주소를 얻을 수 있다. MMR-MAC 주소는 디바이스 드라이버 계층에서 생성될 수 있다. 이때, 1 대 1 통신인 경우에는 목적지의 IP 주소가 한 개이고, 1 대 다 통신인 경우에는 목적지의 IP 주소가 복수일 수 있다.
다음으로, 목적지 개수(DestHostCnt)가 한 개이면(S920, Yes), 멀티캐스트 표시 영역(0Byte[0:3])을 모두 0으로 설정하고, 네트워크 식별 영역(0Byte[4:7])에는 목적지의 네트워크 레벨을 표시한다(S930). 예를 들어, 목적지가 1단 링 네트워크에 속하면 0Byte[4]를 "1"로 설정하고, 목적지가 2단 링 네트워크에 속하면 0Byte[5]를 "1"로 설정하고, 목적지가 3단 링 네트워크에 속하면 0Byte[6]를 "1"로 설정하고, 목적지가 4단 링 네트워크에 속하면 0Byte[7]를 "1"로 설정할 수 있다.
목적지 개수(DestHostCnt)가 한 개가 아닌 경우(S920, No), 멀티캐스트 표시 영역(0Byte[0:3])을 "1000"으로 설정하고, 네트워크 식별 영역(0Byte[4:7])에는 목적지의 네트워크 레벨을 표시한다(S940). S940 단계에서 네트워크 식별 영역(0Byte[4:7])은 S930 단계에서와 동일한 방식으로 설정될 수 있다.
다음으로, 목적지 개수 영역(1Byte)에 목적지 개수(DestHostCnt)를 저장한다(S950).
다음으로, 목적지의 레벨 IP 주소(LevelIPAddr)에 기초하여 비트별 MAC 주소 영역(25Byte)을 생성한다(S960, S962, S964). 구체적으로, 목적지의 레벨 IP 주소(LevelIPAddr)를 8로 나눈 몫(Quotient)이 비트 MAC 주소 바이트 번호(BitMACAddrhByteNum)가 되고, 목적지의 레벨 IP 주소(LevelIPAddr)를 8로 나눈 나머지(Residue)를 이용하여 임시 마스크(TempMask)가 생성된다. 비트별 MAC 주소 영역(25Byte)의 비트 MAC 주소 바이트 번호(BitMACAddrhByteNum)에 해당하는 바이트에 임시 마스크(TempMask) 값을 저장한다. 목적지가 복수인 경우, 비트별 MAC 주소 영역(25Byte)에서 각 목적지에 해당하는 비트가 모두 "1"로 설정된다.
다음으로, 멀티캐스트 표시 영역(0Byte[0:3]), 네트워크 식별 영역(0Byte[4:7]), 목적지 개수 영역(1Byte), 비트별 MAC 주소 영역(25Byte)을 하나의 MAC 프레임(MACFrame)에 저장함으로써 MMR-MAC 주소가 완성된다(S970).
최종적으로, 전송 호스트는 MAC 계층으로 MAC 프레임(MACFrame)을 전송한다(S980).
다음으로, 복수의 채널을 이용한 데이터 패킷의 전송 방법에 대해 설명한다.
도 10은 본 발명의 실시예에 따른 단방향 다채널 네트워크의 모식도이다. 도 10의 네트워크는 도 1의 복수의 그룹 중에서 하나의 그룹에 해당하며, 호스트 사이에 개재된 메모리 모듈 링 스위치는 생략되어 있다.
도 10을 참조하면, 단방향 다채널 네트워크는 시계 방향으로 데이터 패킷을 전송하는 복수의 채널(CH1, CH2, CHN)을 갖는다.
도 11은 도 10의 네트워크에서 데이터 패킷의 전송 방법을 나타내는 순서도이다.
도 10을 참조하면, 전송 호스트는 빈 채널 번호(EChNum)를 초기화한다(S1010).
다음으로, 전송 호스트는 복수(N 개)의 채널의 각각에 해당하는 메모리 모듈 링 스위치가 비어 있는지 판단한다(S1020, S1022, S1024). 이때, 각 채널의 전송 방향의 메모리 모듈 링 스위치(MMRS)의 바이트 0의 값(RxRBIM[EchNum][0])이 0인지 여부를 판단함으로써, 채널의 메모리 모듈 링 스위치(MMRS)가 비어 있는지를 알 수 있다.
메모리 모듈 링 스위치(MMRS)가 비어 있는 채널이 존재하면(S1020, Yes), 채널 변수(VChNum) 및 패킷 번호(PktNum)을 초기화한다(S1030).
그리고, 비어 있는 채널을 제외한 나머지 채널에 대해, 전송할 데이터 패킷의 목적지와 다른 채널에 이미 저장되어 있는 데이터 패킷의 목적지가 중복되는지를 판단한다(S1040, S1042, S1044, S1046). 예를 들어, 비어 있는 채널이 아닌 다른 채널의 메모리 모듈 링 스위치의 비트별 MAC 주소(RxRBIM[VChNum][2:5])와, 전송 버퍼의 비트별 MAC 주소(TxBuff[PktNum][2:5])의 각 비트를 앤드 연산한 것이 0보다 크면 목적지가 적어도 하나 일치하는 것으로 판단할 수 있다.
전송할 데이터 패킷의 목적지와 다른 채널에 이미 저장되어 있는 데이터 패킷의 목적지가 적어도 일부 일치하면(S1042, Yes), 해당 데이터 패킷은 전송되지 않는다(S1050).
또한, 전송 버퍼의 데이터 패킷의 바이트 0(TxBuff[PktNum][0])이 0인 경우, 전송 버퍼에 데이터 패킷이 저장되지 않은 것으로 보아 해당 데이터 패킷을 전송하지 않는다(S1060, Yes).
전송할 데이터 패킷의 목적지와 다른 모든 채널에 이미 저장되어 있는 데이터 패킷의 목적지에 중복되는 것이 없으면(S1046, Yes), 전송 호스트는 전송 버퍼에 저장된 데이터 패킷(TxBuff[PktNum])을 빈 채널의 메모리 모듈 링 스위치(RxRBIM[EChnum])에 저장하고, 제1 상태와 제2 상태를 전환함으로써, 전송 호스트에 인접하는 호스트에 데이터 패킷을 전송한다(S1070).
도 12는 본 발명의 실시예에 따른 양방향 이중채널 네트워크의 모식도이다.
도 12를 참조하면, 양방향 이중채널 네트워크는 시계 방향으로 데이터 패킷을 전송하는 채널(CH_CW)과 반시계 방향으로 데이터 패킷을 전송하는 채널(CH_CCW)을 갖는다. 도 12에서 메모리 모듈 링 스위치는 생략되어 있다.
도 13은 도 12의 네트워크에서 데이터 패킷의 전송 방법을 나타내는 순서도이다.
도 13을 참조하면, 전송 호스트는 전송 버퍼에 저장된 데이터 패킷(TxBuff[0])을 임시 저장소(DualRBIM)에 저장한다(S1210).
다음으로, 전송 호스트는 데이터 패킷의 목적지와 전송 호스트가 동일한 네트워크에 속하는지 판단한다(S1220). 예를 들어, 전송 호스트 내부의 레지스터 파일의 레벨 비트 마스크(Level Bit Mask)와 임시 저장소에 저장된 데이터 패킷의 MMR-MAC 주소의 바이트 0의 값(DualRBIM[0])을 비트별 앤드 연산한 값이 0보다 큰 경우 동일 네트워크에 속하는 것으로 판단할 수 있다. 동일한 네트워크에 속하지 않는 경우에는 전송 프로세스를 종료한다(S1220, No).
동일한 네트워크에 속하는 경우(S1220, Yes), 전송 호스트는 목적지의 개수가 한 개인지 아닌지를 판단한다(S1230).
목적지의 개수가 한 개인 경우(S1230, Yes), 목적지가 시계 방향으로 더 가까운지 아니면 반시계 방향으로 더 가까운지 판단한다(S1240). 예를 들어, 임시 저장소에 저장된 데이터 패킷의 MMR-MAC 주소 비트별 MAC 주소(DualRBIM[2:5])와 전송 방향 비트 마스크(TxDirMask)를 비트별 앤드 연산을 수행한 값이 0보다 크면 목적지가 시계 방향으로 더 가깝다고 판단할 수 있다.
목적지가 시계 방향으로 더 가까운 경우(S1240, Yes), 시계 방향 채널의 메모리 모듈 링 스위치(MMRS)가 비어 있는지를 판단하고(S1242), 비어 있는 경우(S1242, Yes) 시계 방향 채널의 메모리 모듈 링 스위치(MMRS)에 데이터 패킷(TxBuff[0])를 저장한다(S1244).
목적지가 반시계 방향으로 더 가까운 경우(S1240, No), 반시계 방향 채널의 메모리 모듈 링 스위치(MMRS)가 비어 있는지를 판단하고(S1246), 비어 있는 경우(S1246, Yes) 반시계 방향 채널의 메모리 모듈 링 스위치(MMRS)에 데이터 패킷(DualRBIM)를 저장한다(S1248).
목적지의 개수가 복수인 경우(S1230-No, S1250-Yes), 시계 방향으로 가까운 목적지에 대해서는 시계 방향 채널로 데이터 패킷(DualRBIM)이 전송되고(S1252, S1254, S1256), 반시계 방향으로 가까운 목적지에 대해서는 반시계 방향 채널로 데이터 패킷(DualRBIM)이 전송된다(S1262, S1264, S1266). 시계 방향으로 전송되는 데이터 패킷의 비트별 MAC 주소에는 시계 방향으로 가까운 목적지만이 남고, 반시계 방향으로 전송되는 데이터 패킷의 비트별 MAC 주소에는 반시계 방향으로 가까운 목적지만이 남는다. 즉, 본 실시예에서 하나의 데이터 패킷은 시계 방향의 데이터 패킷과 반시계 방향의 데이터 패킷 둘로 나뉘어 전송된다.
도 14는 본 발명의 실시예에 따른 범주형 다채널 네트워크의 모식도이다. 도 12에서 메모리 모듈 링 스위치는 생략되어 있다.
도 14를 참조하면, 범주형 다채널 네트워크는 일반형 양방향 이중채널(일반형 시계 방향 채널(CH_CW_NOR) 및 일반형 반시계 방향 채널(CH_CCW_NOR)), 홀수 호스트 양방향 이중채널(홀수 호스트 시계 방향 채널(CH_CW_ODD) 및 홀수 호스트 반시계 방향 채널(CH_CCW_ODD)) 및 짝수 호스트 양방향 이중채널(짝수 호스트 시계 방향 채널(CH_CW_EVEN) 및 짝수 호스트 반시계 방향 채널(CH_CCW_EVEN))을 포함한다.
도 15는 도 14의 네트워크에서 데이터 패킷의 전송 방법을 나타내는 순서도이다.
도 15를 참조하면, 먼저 전송 호스트는 전송 호스트와 전송할 데이터 패킷의 목적지가 동일한 네트워크에 속하는지 판단한다(S1410). 예를 들어, 전송 호스트 내부의 레지스터 파일의 레벨 비트 마스크(Level Bit Mask)와 데이터 패킷의 MMR-MAC 주소의 바이트 0의 값(TxBuff[0][0])을 비트별 앤드 연산한 값이 0보다 큰 경우 동일 네트워크에 속하는 것으로 판단할 수 있다. 동일한 네트워크에 속하지 않는 경우에는 전송 프로세스를 종료한다(S1410, No).
동일한 네트워크에 속하는 경우(S1410, Yes), 전송 호스트는 목적지의 개수가 한 개인지 아닌지를 판단한다(S1420).
목적지의 개수가 한 개인 경우(S1420, Yes), 도 13을 참조하여 설명한 일반형 이중채널 알고리즘에 의해 데이터 패킷을 전송한다(S1430, 도 12의 S1240, S1242, S1244, S1246, S1248를 참조).
목적지의 개수가 복수인 경우(S1420-No, S1440-Yes), 데이터 패킷을 목적지가 홀수번째 호스트인지 짝수번재 호스트인지에 따라 홀수 호스트 양방향 이중채널과 짝수 호스트 양방향 이중채널로 나누어 전송한다.
구체적으로, 전송 호스트는, 데이터 패킷(TxBuff[0])을 홀수 임시 저장소(OddRBIM)에 저장하고, 목적지에 홀수번째 호스트만 남긴다(S1450). 예를 들어, 홀수 임시 저장소(OddRBIM)의 MMR-MAC 주소의 비트별 MAC 주소(OddRBIM[2:5])와 홀수 전송 채널 마스크(OddTxDirMask)를 비트별 앤드 연산을 수행한 결과를 홀수 임시 저장소(OddRBIM)에 저장할 수 있다.
이후에, 홀수번째 목적지만 남겨진 데이터 패킷(OddRBIM)은 시계 방향으로 가까운 목적지에 대해서는 시계 방향 채널로 데이터 패킷(OddRBIM)이 전송되고(S1452, S1454, S1456), 반시계 방향으로 가까운 목적지에 대해서는 반시계 방향 채널로 데이터 패킷(OddRBIM)이 전송된다(S1462, S1464, S1466). 이때, 시계 방향으로 전송되는 데이터 패킷에는 시계 방향으로 가까운 홀수번째 목적지만이 남고, 반시계 방향으로 전송되는 데이터 패킷에는 반시계 방향으로 가까운 홀수번째 목적지만이 남는다.
또한, 전송 호스트는, 데이터 패킷(TxBuff[0])을 짝수 임시 저장소(EvenRBIM)에 저장하고, 목적지에 짝수번째 호스트만 남긴다(S1470). 예를 들어, 짝수 임시 저장소(EvenRBIM)의 MMR-MAC 주소의 비트별 MAC 주소(EvenRBIM[2:5])와 짝수 전송 채널 마스크(EvenTxDirMask)를 비트별 앤드 연산을 수행한 결과를 짝수 임시 저장소(EvenRBIM)에 저장할 수 있다.
이후에, 짝수번째 목적지만 남겨진 데이터 패킷(EvenRBIM)은 시계 방향으로 가까운 목적지에 대해서는 시계 방향 채널로 데이터 패킷(EvenRBIM)이 전송되고(S1472, S1474, S1476), 반시계 방향으로 가까운 목적지에 대해서는 반시계 방향 채널로 데이터 패킷(EvenRBIM)이 전송된다(S1482, S1484, S1486). 이때, 시계 방향으로 전송되는 데이터 패킷에는 시계 방향으로 가까운 짝수번째 목적지만이 남고, 반시계 방향으로 전송되는 데이터 패킷에는 반시계 방향으로 가까운 짝수번째 목적지만이 남는다.
즉, 도 13을 참조하여 설명하면, 본 실시예에서, 목적지가 한 개인 경우, 목적지가 시계 방향으로 가까우면 일반형 시계 방향 채널(CH_CW_NOR)로 데이터 패킷이 전송되고, 목적지가 반시계 방향으로 가까우면 일반형 반시계 방향 채널(CH_CCW_NOR)로 데이터 패킷이 전송된다. 또한, 목적지가 복수인 경우, 목적지가 홀수번째 호스트이고 시계 방향으로 가까운 경우에는 홀수 호스트 시계 방향 채널(CH_CW_ODD)로 데이터 패킷이 전송되고, 목적지가 홀수번째 호스트이고 반시계 방향으로 가까운 경우에는 홀수 호스트 반시계 방향 채널(CH_CCW_ODD)로 데이터 패킷이 전송되고, 목적지가 짝수번째 호스트이고 시계 방향으로 가까운 경우에는 짝수 호스트 시계 방향 채널(CH_CW_EVEN)로 데이터 패킷이 전송되고, 목적지가 짝수번째 호스트이고 반시계 방향으로 가까운 경우에는 짝수 호스트 반시계 방향 채널(CH_CCW_EVEN)로 데이터 패킷이 전송된다. 목적지가 복수인 경우에는 목적지가 홀수번째인지 아니면 짝수번째인지 및 시계 방향으로 가까운지 아니면 반시계 방향으로 가까운지에 따라, 최대 4개의 데이터 패킷으로 나누어 전송될 수 있다.
도 16은 도 1의 네트워크에서 실행되는, 본 발명의 실시예에 따른 데이터 패킷의 수신 방법을 나타내는 순서도이다.
도 16을 참조하면, 수신 호스트는 채널의 수신 방향의 메모리 모듈 링 스위치(MMRS)에 저장된 데이터 패킷을 수신한다(S1610). 채널의 전송 방향은 정해져 있기 때문에, 수신 호스트는 양쪽의 RBIM 중 어느 하나의 메모리 모듈 링 스위치(MMRS)으로부터 데이터 패킷을 수신한다.
다음으로, 수신 호스트는 수신된 데이터 패킷의 MMR-MAC 주소의 목적지에 수신 호스트가 포함되어 있는지 판단한다(S1620).
목적지에 수신 호스트가 포함되어 있으면(S1620, Yes), 수신된 데이터 패킷의 MMR-MAC 주소를 원래의 MAC 주소로 변경하여 MAC 계층으로 전송한다(S1630).
목적지에 수신 호스트가 포함되지 않거나(S1620, No), 목적지에 수신 호스트가 포함되고 데이터 패킷의 MMR-MAC 주소를 원래의 MAC 주소를 변경한 후(S1630), 수신 호스트를 제외한 목적지가 남아 있으면(S1640, Yes), 수신 호스트는, 데이터 패킷의 MMR-MAC 주소가 수신 호스트를 제외한 목적지를 나타내도록 데이터 패킷의 MMR-MAC 주소를 변경하고, 채널의 전송 방향의 메모리 모듈 링 스위치(MMRS)에 변경된 데이터 패킷을 전송한다 (S1650).
수신 호스트를 제외한 목적지가 남아 있지 않으면(S1640, No), 메모리 모듈 링 스위치(MMRS)에 저장된 데이터(RBIMFrame)를 삭제하고 종료한다(S1660).
전술한 S1610~1660 단계는 복수의 채널 각각에 대해 수행될 수 있다.
도 17은 도 16의 데이터 패킷의 수신 방법의 일 예이다.
도 17을 참조하면, 수신 호스트는 데이터 패킷을 수신한다(S1710). 구체적으로, 수신 호스트는 채널의 전송 방향에서 수신측의 메모리 모듈 링 스위치에 저장된 MMR-MAC 주소(RBIMFrame[0], RBIMFrame[1], RBIMFrame[2:5])를 임시 저장소(0Byte, 1Byte, 25Byte)에 저장한다.
다음으로, 수신 호스트는 수신된 데이터 패킷의 목적지와 수신 호스트가 동일한 네트워크에 속하는지 판단한다(S1720). 예를 들어, 바이트 0의 값(0Byte)과, 내부의 레지스터 파일에 저장된 레벨 비트 마스크(Level Bit Mask)를 비트별 앤드 연산한 값이 0보다 큰 지를 판단할 수 있다.
동일한 네트워크에 속하는 것으로 판단되면(S1720, Yes), 수신 호스트는 목적지에 수신 호스트가 포함되어 있는지 판단한다(S1730). 예를 들어, 수신 호스트는 수신된 데이터 패킷의 비트별 MAC 주소 중 레지스터 파일에 저장된 비트 MAC 주소 바이트 번호에 해당하는 값(25Byte[BitMACAddrByteNum])과, 레지스터 파일에 저장된 MAC 주소 비트 마스크를 비트별 앤드 연산을 수행한 값이 0보다 큰 지를 판단할 수 있다. 동일한 네트워크에 속하지 않은 것으로 판단되면(S1720, No), 수신 호스트는 메모리 모듈 링 스위치(RBIMFrame)에서 데이터 패킷을 삭제하고 종료한다(S1770).
목적지에 수신 호스트가 포함되어 있으면(S1730, Yes), 수신 호스트는 수신된 데이터 패킷의 MMR-MAC 주소(RBIMFrame[0:5])를, 레지스터 파일에 저장된 원래의 MAC 주소(OriginalMACAddr)로 변경하고, 변경된 데이터 패킷을 MAC 계층으로 전송한다(S1740). 그리고, 수신 호스트는 수신된 데이터 패킷의 목적지 개수(1Byte)를 1 감소시킨다(S1750).
목적지에 수신 호스트가 포함되어 있지 않거나(S1730, No), 데이터 패킷의 목적지 개수를 1 감소시킨 후(S1750), 수신 호스트는, 수신 호스트를 제외한 목적지가 남아있는지 판단한다(S1760).
목적지가 남아 있으면(S1760, Yes), 수신 호스트는, 데이터 패킷의 MMR-MAC 주소가 수신 호스트를 제외한 목적지를 나타내도록 데이터 패킷의 MMR-MAC주소를 변경한다(S1770). 예를 들어, 수신 호스트는 데이터 패킷의 비트별 MAC 주소 중 비트 MAC 주소 바이트 번호에 해당하는 값(25Byte[BitMACAddrByteNum])과, 레지스터 파일에 저장된 비트 MAC 주소 지움(MACAddrBitClean)을 비트별 앤드 연산을 수행한 값을, 데이터 패킷의 비트별 MAC 주소 영역(RBIMFrame[2:5])에 저장할 수 있다. 또한, 수신 호스트는 감소된 목적지 개수(1Byte)를 데이터 패킷의 목적지 개수 영역(RBIMFrame[1])에 저장한다.
목적지가 남아 있지 않으면(S1660, No), 수신 호스트는 메모리 모듈 링 스위치(RBIMFrame)에서 데이터 패킷을 삭제하고 종료한다(S1780).
도 18은 본 발명의 실시예에 따른 데이터 패킷 전송 장치(1800)의 구성도이다. 데이터 패킷 전송 장치(1800)는 도 1의 호스트에 해당한다.
도 18을 참조하면, 데이터 패킷 전송 장치(1800)는, IP 통신부(1810), 디바이스 드라이버 통신부(1820), MAC 통신부(1830), MMR-MAC 전송부(1840) 및 MMR-MAC 수신부(1850)를 포함할 수 있다.
IP 통신부(1810)는 IP 계층에서 동작하며, IP 주소를 설정하고, 데이터 패킷 전송 장치(1800)가 라우터인 경우 라우팅 경로를 설정한다.
디바이스 드라이버 통신부(1820)는 목적지의 IP 주소에 기초하여 MMR-MAC 주소를 생성하고, 레지스터 파일을 설정한다. 디바이스 드라이버 통신부(1820)는 통상의 디바이스 드라이버, 즉 외부 입/출력 기능을 수행하는 하드웨어를 운영체제에 연결시켜 주는 펌웨어 소프트웨어에 해당할 수 있다.
MAC 통신부(1830)는 MAC 계층에서 동작하며, 원래의 MAC 주소에 기반하여 동작한다.
MMR-MAC 전송부(1840)는 디바이스 드라이버 통신부(1820)에서 생성된 MMR-MAC 주소 및, 레지스터 파일의 채널 정보에 기초하여 데이터 패킷을 전송할 채널을 결정하고, 결정된 채널을 통해 데이터 패킷을 전송한다.
MMR-MAC 수신부(1850)는 데이터 패킷의 MMR-MAC 주소의 목적지에 기초하여 데이터 패킷을 수신하거나, 인접하는 호스트에 데이터 패킷을 전달한다.
도 19는 본 발명의 실시예에 따른 네트워크 시스템의 적용예를 나타내는 도면이다. 본 발명의 호스트는 매니코어 시스템의 코어에 해당할 수 있다.
도 19의 (a)는 본 발명의 실시예에 따른 네트워크 시스템이 네트워크 레벨의 매니코어 시스템에 적용된 예를 나타낸다. 이러한 매니코어 시스템은 예를 들어 스마트공장에 이용될 수 있다. 1단 링 네트워크에 속하는 호스트들은 예를 들어 모니터나 도 19의 (a)에서 EtherMMR 보드로 표시된 부분은 본 발명의 실시예에 따른 라우터를 나타낸다. 터치패널과 같은 HMI(Human Machine Interface) 장치나 마스터 PLC(Programmable Logic Controller)에 연결될 수 있다. 2단 링 네트워크에 속하는 호스트의 일부는 스마트 공장에 배치되는 선반머신, 밀링머신, 용접기, 유압프레스, 절삭기 등에 연결되고, 나머지는 빅데이터 분석 시스템에 연결될 수 있다.
도 19의 (b)는 본 발명의 실시예에 따른 네트워크 시스템이 보드 레벨의 매니코어 시스템에 적용된 예를 나타낸다.
도 19의 (c)는 본 발명의 실시예에 따른 네트워크 시스템이 칩 레벨의 매니코어 시스템에 적용된 예를 나타낸다. 일부의 코어는 빅데이터 분석에 이용되고, 일분의 코어는 센서 데이터를 분석하고 센서를 제어하는 기능을 수행할 수 있다.
이상, 바람직한 실시예를 통하여 본 발명에 관하여 상세히 설명하였으나, 본 발명은 이에 한정되는 것은 아니며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양하게 변경, 응용될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다. 따라서, 본 발명의 진정한 보호 범위는 다음의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술적 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
복수의 채널이 동일 방향인 경우, 양방향인 경우 및 일반형 양방향과 홀짝 양방향을 포함하는 경우를 예로 들어 설명하였지만 본 발명의 범위는 이에 한하지 않는다. 예를 들어, 동일 방향으로서 홀짝 채널을 포함할 수 있다. 또는 일반형 양방향 채널은 제외하고 홀짝 양방향 채널만을 포함할 수 있다. 또는 임의의 특정 호스트에 전송되는 채널과, 나머지 호스트에 전송되는 채널을 포함하도록 구성될 수도 있다.

Claims (15)

  1. 링 형상으로 연결된 복수의 호스트를 포함하며, 인접하는 호스트간에 복수의 메모리 모듈 링 스위치를 개재하여 연결됨으로써 복수의 채널을 형성하는 네트워크에서 데이터 패킷의 전송 방법으로,
    상기 복수의 메모리 모듈 링 스위치의 각각은,
    제1 메모리;
    제2 메모리; 및
    인접하는 호스트 중 어느 하나와 상기 제1 메모리가 연결되고 인접하는 호스트 중 나머지 하나가 상기 제2 메모리와 연결되는 제1 상태와, 상기 인접하는 호스트 중 어느 하나와 상기 제2 메모리가 연결되고 상기 인접하는 호스트 중 나머지 하나가 상기 제1 메모리와 연결되는 제2 상태의 사이를 전환하는 메모리 모듈 링 제어부
    를 포함하고,
    상기 전송 방법은,
    상기 복수의 호스트 각각이, 상기 복수의 채널의 전송 방향 및 수신 가능한 호스트 중 적어도 하나를 나타내는 채널 정보를 설정하는 단계;
    전송 호스트가, 상기 채널 정보 및 목적지에 기초하여 전송 채널을 결정하는 단계;
    상기 전송 채널의 전송 방향에 연결된 메모리 모듈 링 스위치에 전송할 데이터 패킷을 저장하는 단계; 및
    상기 데이터 패킷이 저장된 메모리 모듈 링 스위치의 상기 메모리 모듈 링 제어부가, 상기 제1 상태와 상기 제2 상태 사이를 전환함으로써 상기 데이터 패킷을 인접하는 호스트로 전송하는 단계;
    를 포함하는 데이터 패킷의 전송 방법.
  2. 제1항에 있어서,
    상기 저장하는 단계는, 상기 전송 호스트가, 상기 전송 채널의 전송 방향의 메모리 모듈 링 스위치가 비어 있으면 상기 전송할 데이터 패킷을 저장하는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  3. 제1항에 있어서,
    상기 전송 호스트가, 상기 네트워크에 포함되는 복수의 호스트 각각이 목적지에 해당하는지 여부를 나타내는 비트별(bitwise) MAC 주소를 포함하는 MMR-MAC 주소를 생성하는 단계
    를 더 포함하고,
    상기 데이터 패킷은 상기 MMR-MAC 주소를 포함하는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  4. 제3항에 있어서,
    상기 MMR-MAC 주소는, 하나 이상의 목적지를 나타내는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  5. 제3항에 있어서,
    상기 채널 정보는, 상기 네트워크에 포함되는 복수의 호스트 각각이 목적지인 경우, 데이터 패킷이 시계 방향으로 전송될지 아니면 반시계 방향으로 전송될지를 나타내는 비트별 전송 방향 마스크를 포함하는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  6. 제5항에 있어서,
    상기 비트별 전송 방향 마스크는, 상기 전송 호스트로부터 상기 복수의 호스트 각각까지의 시계 방향의 거리와 반시계 방향의 거리 중 짧은 방향에 해당하는 값을 갖도록 설정되는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  7. 제5항에 있어서,
    상기 채널 정보는,
    상기 네트워크에 포함되는 복수의 호스트 중 짝수번째 호스트들을 나타내는 짝수 전송 채널 마스크와, 상기 네트워크에 포함되는 복수의 호스트 중 홀수번째 호스트들을 나타내는 홀수 전송 채널 마스크를 포함하는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  8. 제1항에 있어서,
    상기 복수의 채널의 데이터 패킷의 전송 방향은 동일한 것을 특징으로 하는 데이터 패킷의 전송 방법.
  9. 제8항에 있어서,
    상기 전송 호스트는, 상기 복수의 채널의 전송 방향에 연결된 메모리 모듈 링 스위치에 저장된 데이터 패킷의 목적지 중에, 상기 전송할 데이터 패킷의 목적지가 포함되는지 판단하는 단계
    를 더 포함하고,
    상기 저장하는 단계에서, 상기 전송 호스트는, 상기 전송할 데이터 패킷의 목적지가 포함되지 않은 경우, 상기 전송 채널의 전송 방향에 연결된 메모리 모듈 링 스위치에 상기 전송할 데이터 패킷을 저장하는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  10. 제5항에 있어서,
    상기 전송 채널을 결정하는 단계에서,
    상기 전송 호스트는, 상기 전송할 데이터 패킷의 비트별 MAC 주소와, 상기 전송 호스트에 설정된 상기 비트별 전송 방향 마스크에 대해, 비트별 앤드 연산을 수행한 결과에 기초하여, 시계 방향 전송 채널과 반시계 방향 전송 채널 중 적어도 하나를 결정하는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  11. 제7항에 있어서,
    상기 전송 채널을 결정하는 단계에서,
    상기 전송 호스트는, 상기 전송할 데이터 패킷의 비트별 MAC 주소와, 상기 전송 호스트에 설정된 홀수 비트별 전송 방향 마스크에 대해, 비트별 앤드 연산을 수행한 결과 및, 상기 전송할 데이터 패킷의 비트별 MAC 주소와, 상기 전송 호스트에 설정된 짝수 비트별 전송 방향 마스크에 대해, 비트별 앤드 연산을 수행한 결과에 기초하여, 홀수 방향 전송 채널과 짝수 방향 전송 채널 중 적어도 하나를 결정하는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  12. 제3항에 있어서,
    상기 인접하는 호스트는, 수신한 데이터 패킷의 MMR-MAC 주소에 기초하여 상기 인접하는 호스트가 상기 데이터 패킷의 목적지에 해당하는지를 판단하는 단계;
    상기 인접하는 호스트가 상기 데이터 패킷의 목적지에 해당하면, 상기 MMR-MAC 주소를 원래의 MAC 주소로 변환하는 단계; 및
    상기 인접하는 호스트 외에 상기 데이터 패킷의 목적지가 존재하면, 상기 데이터 패킷을 상기 인접하는 호스트에 인접하는 호스트로 전송하는 단계
    를 더 포함하는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  13. 제12항에 있어서,
    상기 인접하는 호스트에 인접하는 호스트로 전송하는 단계에서,
    상기 데이터 패킷의 MMR-MAC 주소의 비트별(bitwise) MAC 주소는 상기 인접하는 호스트가 포함되지 않는 것을 특징으로 하는 데이터 패킷의 전송 방법.
  14. 링 형상으로 연결된 복수의 호스트를 포함하며, 인접하는 호스트간에 복수의 메모리 모듈 링 스위치를 개재하여 연결됨으로써 복수의 채널을 형성하는 네트워크 시스템으로,
    상기 복수의 메모리 모듈 링 스위치의 각각은,
    제1 메모리;
    제2 메모리; 및
    인접하는 호스트 중 어느 하나와 상기 제1 메모리가 연결되고 인접하는 호스트 중 나머지 하나가 상기 제2 메모리와 연결되는 제1 상태와, 상기 인접하는 호스트 중 어느 하나와 상기 제2 메모리가 연결되고 상기 인접하는 호스트 중 나머지 하나가 상기 제1 메모리와 연결되는 제2 상태의 사이를 전환하는 메모리 모듈 링 제어부
    를 포함하고,
    상기 복수의 호스트 중 어느 하나의 호스트는,
    상기 복수의 채널의 전송 방향 및 수신 가능한 호스트 중 적어도 하나를 나타내는 채널 정보를 설정하는 디바이스 드라이버 통신부; 및
    상기 채널 정보 및 목적지에 기초하여 전송 채널을 결정하고, 상기 전송 채널의 전송 방향에 연결된 메모리 모듈 링 스위치에 전송할 데이터 패킷을 저장하는 MMR-MAC 전송부;
    를 포함하는 네트워크 시스템.
  15. 제14항에 있어서,
    상기 호스트의 수신 방향에 연결된 메모리 모듈 링 스위치에 저장된 데이터 패킷의 목적지에 기초하여, 상기 저장된 데이터 패킷을 수신하거나 전송 방향으로 인접한 호스트에 상기 저장된 데이터 패킷을 전달하는 MMR-MAC 수신부;
    를 더 포함하는 것을 특징으로 하는 네트워크 시스템.




KR1020190154972A 2019-11-28 2019-11-28 메모리 미디엄 링 기술을 이용한 다채널 네트워크 시스템 및 데이터 패킷의 전송 방법 KR102219652B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190154972A KR102219652B1 (ko) 2019-11-28 2019-11-28 메모리 미디엄 링 기술을 이용한 다채널 네트워크 시스템 및 데이터 패킷의 전송 방법
PCT/KR2019/016571 WO2021107191A1 (ko) 2019-11-28 2019-11-28 메모리 미디엄 링 기술을 이용한 다채널 네트워크 시스템 및 데이터 패킷의 전송 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190154972A KR102219652B1 (ko) 2019-11-28 2019-11-28 메모리 미디엄 링 기술을 이용한 다채널 네트워크 시스템 및 데이터 패킷의 전송 방법

Publications (1)

Publication Number Publication Date
KR102219652B1 true KR102219652B1 (ko) 2021-02-23

Family

ID=74687998

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190154972A KR102219652B1 (ko) 2019-11-28 2019-11-28 메모리 미디엄 링 기술을 이용한 다채널 네트워크 시스템 및 데이터 패킷의 전송 방법

Country Status (2)

Country Link
KR (1) KR102219652B1 (ko)
WO (1) WO2021107191A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040071332A (ko) * 2002-01-22 2004-08-11 엑스트림스펙트럼, 인크. 비동기 타임 슬롯내의 긴 비동기 데이터를 처리하는시스템 및 방법
KR20100040748A (ko) * 2006-06-26 2010-04-20 미쓰비시덴키 가부시키가이샤 통신 노드 및 링형상 통신 시스템의 토큰 발행 방법과 토큰링 통신 방법
KR20180032259A (ko) * 2016-09-21 2018-03-30 삼성전자주식회사 복수의 채널들을 통해 호스트와 통신하는 메모리 모듈 및 이를 포함하는 컴퓨터 시스템
KR102013816B1 (ko) 2013-10-29 2019-08-23 삼성전자주식회사 분산 네트워크 구조에서 기지국 자가설정 방법 및 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101996822B1 (ko) * 2013-03-15 2019-07-08 삼성전자 주식회사 링 토폴로지 저장 네트워크의 멀티캐스트 명령 패킷 처리 방법 및 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040071332A (ko) * 2002-01-22 2004-08-11 엑스트림스펙트럼, 인크. 비동기 타임 슬롯내의 긴 비동기 데이터를 처리하는시스템 및 방법
KR20100040748A (ko) * 2006-06-26 2010-04-20 미쓰비시덴키 가부시키가이샤 통신 노드 및 링형상 통신 시스템의 토큰 발행 방법과 토큰링 통신 방법
KR102013816B1 (ko) 2013-10-29 2019-08-23 삼성전자주식회사 분산 네트워크 구조에서 기지국 자가설정 방법 및 장치
KR20180032259A (ko) * 2016-09-21 2018-03-30 삼성전자주식회사 복수의 채널들을 통해 호스트와 통신하는 메모리 모듈 및 이를 포함하는 컴퓨터 시스템

Also Published As

Publication number Publication date
WO2021107191A1 (ko) 2021-06-03

Similar Documents

Publication Publication Date Title
KR101802810B1 (ko) 하이브리드 회선 교환 및 패킷 교환 라우터의 아키텍처 및 그 방법
US11003604B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
US9160617B2 (en) Faulty core recovery mechanisms for a three-dimensional network on a processor array
EP1220567A1 (en) Burst switching in a high capacity network
KR20010099653A (ko) 라우팅 배열
JPH04505843A (ja) 非同期時分割多重セルのスイッチングのための多重路自己経路選択交換網
US20050195808A1 (en) Multidimensional switch network
US9860132B2 (en) Multiple petabit-per-second switching system based on orthogonal formations of sets of access nodes
US20130250954A1 (en) On-chip router and multi-core system using the same
KR102219652B1 (ko) 메모리 미디엄 링 기술을 이용한 다채널 네트워크 시스템 및 데이터 패킷의 전송 방법
EP2079195A1 (en) Packet ring network system, packet transfer method and interlink node
US8249101B2 (en) Mobile ad hoc network configured as a virtual internet protocol network
JP2008066901A (ja) スイッチ装置及びそれに用いるスイッチング方法
JP4577157B2 (ja) 中継器及び光通信システム
CN102143081B (zh) 一种报文多次转向方法、装置和系统
EP2355419B1 (en) Switching device of dual-port ethernet system
US5907554A (en) Method for transmitting digital data
US5430725A (en) Transmitting different size data items on a bus
KR102300820B1 (ko) 메모리 미디엄 링 구조를 갖는 다단 네트워크 시스템 및 통신 방법
CN110191069B (zh) 一种带有多条通道的环形片上网络
KR100433761B1 (ko) 전이중 패스트 이더넷 방식과 토큰 링 매체 제어 방식을링형의 통신망에 적용하여 설계하는 방법
WO2009098616A1 (en) Ring topology, ring controller and method
JP2003333073A (ja) 通信ネットワーク及びそこで用いるノード装置及びそこで用いる伝送制御方法
JPH0225579B2 (ko)
KR20080071850A (ko) 링 관리자 노드 결정 방법

Legal Events

Date Code Title Description
GRNT Written decision to grant