KR20030016386A - 통신 제어 방법 및 장치 - Google Patents

통신 제어 방법 및 장치 Download PDF

Info

Publication number
KR20030016386A
KR20030016386A KR10-2003-7000292A KR20037000292A KR20030016386A KR 20030016386 A KR20030016386 A KR 20030016386A KR 20037000292 A KR20037000292 A KR 20037000292A KR 20030016386 A KR20030016386 A KR 20030016386A
Authority
KR
South Korea
Prior art keywords
channels
data
subset
transmission
communication control
Prior art date
Application number
KR10-2003-7000292A
Other languages
English (en)
Other versions
KR100628822B1 (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20030016386A publication Critical patent/KR20030016386A/ko
Application granted granted Critical
Publication of KR100628822B1 publication Critical patent/KR100628822B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 통신 제어 방법 및 장치에 관한 것이다. 본 발명의 목적은 일정 범위의 표준 통신 설비에 사용될 수 있는 개선된 방법 및 장치를 제공하는 데 있다. 데이터 네트워크 또는 버스(304)를 통한 통신을 제어하기 위한 방법 및 장치(300)가 제공된다. 데이터 네트워크 또는 버스(304)는 데이터 소스(302) 및 복수 개의 상이한 채널(306-314)로 세분되는 전송 설비(304)를 포함하고 있다. 데이터 소스(302)가 점유할 수 있는 복수 개의 채널(306-314)의 한 부분 집합이 결정된다. 데이터 소스(302)로부터 발신하는 데이터 스트림은 채널들(306-314)의 한 부분 집합을 통한 동시 전송을 가능하게 하는 포맷으로 변환된다. 마지막으로, 변환된 데이터는 채널들(306-314)의 한 부분 집합을 통해 동시 전송된다. 본 명세서에 개시된 원리들은 버스 또는 네트워크의 주어진 대역폭을 아주 효율적으로 이용하여 데이터 전송 용량의 통계적 이용가능성을 더욱 높일 수 있는 방법 및 장치를 제공한다.

Description

통신 제어 방법 및 장치{COMMUNICATION CONTROL METHOD AND DEVICE}
네트워크란 전송 설비에 의해 상호 연결된 일련의 점들, 즉 노드들로 이루어진 통신 시스템을 말한다. 이러한 의미에서, 네트워크는 마찬가지로 다수 당사자 사이의 상호 연결 시스템인 버스 시스템에 비유된다. 이에 따라 버스 시스템에서는, 전송 설비가 모든 당사자들에 연결되어 있으며 그 당사자 모두에 의해 공통으로 이용되는 것이 통상적이다. 전송 설비는 복수 개의 채널을 통한 동시 통신(concurrent communication) 또는 의사 동시 통신(quasi concurrent communication)이 가능하도록 복수 개의 통신 채널을 포함할 수 있다. 예를 들어, 이 개념은 멀티플렉싱 시스템에서 적용되며, 이 시스템에서는 몇개의 신호가 어떤 공유 매체 상으로의 전송을 위해 조합된다.
이러한 네트워크 또는 버스 시스템에서는, 그 시스템을 통해 가능한 한 고속으로 데이터를 전송하는 것이 바람직하다. 그렇지만, 데이터 전송은 대역폭, 즉 주어진 통신 설비를 통해 초당 보낼 수 있는 데이터량에 의해 제한된다. 대역폭이란 물리적으로 전송할 수 있는 최대 데이터량을 말한다. 이와는 달리, 통신 설비를 통해 실제로 보내지는 평균 데이터량은 사실상 훨씬 더 적다.
실제 상황에서의 데이터 전송 능력이 그처럼 축소되는 주된 이유는 대개 전송 설비의 사용이 균일하지 않기 때문이다. 어떤 시간 구간에서는 통신 설비가 전혀 사용되지 않고, 다른 시간 구간에서는 사용가능한 전송 설비가 나오기를 기다리면서 데이터의 버퍼링을 행해야만 한다.
다른 원인이 되는 사실로는 대량의 데이터 전송에서는 네트워크 또는 버스 시스템의 대역폭이 넓을 것을 필요로 할지 모르지만 다른 프로세스들에서는 네트워크 시스템을 통해 소량의 데이터를 보내기만 하면 된다는 것이다.
주어진 통신 설비의 대역폭과 전송되는 평균 데이터량과의 차를 최소화하기 위한 네트워크 또는 버스 접속의 중재, 즉 요청에 대한 서비스를 제공하는 순서에 관한 중재를 위한 시스템 또는 방법의 구현은 공지되어 있다.
미국 특허 제5,901,284호는 복수 개의 프로세서 및 지정된 개수의 서브 버스(sub-bus)로 세분되어 있는 공통 광역 버스(common wide bus)를 갖는 멀티프로세서 시스템에 대한 버스 중재 방법 및 시스템을 개시하고 있으며, 이 중재 방법 및 시스템에서는 기본적으로 복수 개의 프로세서 중 특정의 한 프로세서에 의해 발행된 버스 요청에 응답하여, 복수 개의 프로세서 중 그 특정의 프로세서에 대해 선택된 개수의 서브 버스로의 동시 접속을 제공한다. 따라서, 이 시스템에서는 개개의 프로세서들 모두 및 공통 광역 버스에 연결되어 있는, 버스를 제어하여 연결된 프로세서들로의 버스 접속을 제공하는 버스 중재 논리부(bus arbitration logic)를개시하고 있다. 전체적인 아이디어는 멀티프로세서 시스템에서 다수의 프로세서들의 가변적인 데이터 접속 요건 문제를 해소하는 개념에 관한 것이다.
따라서, 본 발명의 목적은 광범위한 표준 통신 설비에서도 사용될 수 있는, 데이터 네트워크 또는 데이터 버스에서의 통신 제어를 위한 개선된 방법 및 장치를 제공하는 데 있다.
본 발명은 일반적으로 데이터 네트워크 또는 데이터 버스에서의 통신 제어를 위한 개선된 방법 및 장치에 관한 것으로서, 특히 신호 전송을 위한 개선된 네트워크 또는 버스 시스템에 관한 것이다.
본 발명의 상기 목적, 특징 및 이점들은 물론 그 이외의 목적, 특징 및 이점들도 이하에 기술하는 상세한 설명에서 명백하게 될 것이다.
본 발명의 새로운 특징들은 첨부된 청구항들에 기재되어 있다. 그렇지만, 본 발명 그 자체는 물론 본 발명의 양호한 사용 형태, 추가의 목적 및 이점들은 첨부된 도면과 관련지어 서술되어 있는, 예시적인 실시예에 대한 이하의 상세한 설명을 참조하면 잘 이해될 것이다.
도 1은 본 발명에 따른 통신 제어 방법 또는 장치에서 사용되는 네트워크의 일부분을 나타낸 상위 레벨 블록도이다.
도 2는 본 발명에 따른 전형적인 시간별 채널 점유 과정을 나타낸 도면이다.
도 3은 본 발명에 따른 통신 제어 장치의 한 구현예를 나타낸 상위 레벨 블록도이다.
도 4는 본 발명에 따른 통신 제어 장치를 나타낸 상위 레벨 블록도이다.
도 5는 CPU 인터페이스와의 통신을 위한 제어 시퀀스를 나타낸 상위 레벨 논리 흐름도이다.
도 6은 데이터 전송을 위한 제어 시퀀스를 나타낸 상위 레벨 논리 흐름도이다.
도 7은 버스 이용을 위한 제어 시퀀스를 나타낸 상위 레벨 논리 흐름도이다.
도 8은 활성 중인 전송을 교체하기 위한 제어 시퀀스를 나타낸 상위 레벨 논리 흐름도이다.
이상의 목적은 지금부터 기술하는 바와 같이 달성된다. 데이터 네트워크 또는 버스를 통한 통신을 제어하는 방법 및 장치가 제공된다. 데이터 네트워크 또는 버스는 데이터 소스(data source) 및 복수 개의 상이한 채널들로 세분되는 전송 설비를 포함하고 있다. 데이터 소스가 점유할 수 있는 복수 개의 채널의 한 부분 집합이 결정된다. 데이터 소스로부터 발신하는 데이터 스트림은 이 채널들의 한 부분 집합을 통한 동시 전송을 가능하게 하는 포맷으로 변환된다. 마지막으로, 변환된 데이터는 그 채널들의 한 부분 집합 상으로 동시 전송된다.
이 통신 제어 방법 및 장치의 양호한 실시예들에서, 데이터 스트림의 변환은 전송 설비의 각 채널에 의해 제공되는 최대 전송율을 사용하도록 하는 방식으로 행해진다. 게다가, 이 방법 및 장치는 이용된 채널들이 이용 불가능하게 되었는지 부가의 채널들이 이용 가능하게 되었는지에 따라, 변환된 데이터 스트림을 개수가 감축된 채널들 또는 개수가 증대된 채널들간에 재분배하는 것이 가능하도록 구성되어 있다.
본 발명에서 개시한 원리들에 의하면, 버스 또는 네트워크의 주어진 대역폭을 아주 효율적으로 이용할 수 있게 해주는 통신 제어 방법 및 장치가 제공된다. 이것은 주어진 시각에서의 데이터 전송 용량의 통계적 이용가능성을 더욱 높여 줄 것이고, 또한 이것은 목표 응용 분야에 따라 제각기 보다 낮은 성능을 사용하는 것도 가능하게 해줄 것이다. 따라서, 이상의 특징들에 의해 보다 저비용의 버스 및/또는 네트워크 매체가 얻어지게 된다. 본 발명은 차량에 사용되는 통신 제어 시스템에 적용될 수 있는 것이 바람직하다.
이제부터 도면들, 특히 도 1을 참조하면, 어느 시각에서의 네트워크(100)의 일부분을 나타낸 상위 레벨 블록도가 도시되어 있다. 네트워크(100)는 통신 장치(102-112) 및 전송 설비(114)를 포함하고 있다.
통신 장치(102-112)는 전송 설비(114)로부터 데이터 신호를 수신하거나 전송 설비(114)로 데이터 신호를 발신하거나 또는 양쪽 모두를 행할 수 있다. 따라서, 통신 장치(102-112) 각각은 데이터 싱크(data sink), 데이터 소스 또는 양쪽 모두로서 기능할 수 있다.
전송 설비(114)는 복수 개의 채널(116-120)로 세분되어 있다. 채널의 개수는 3개로 한정되지 않으며 오히려 임의의 개수일 수 있다. 이것에 의해, 동일한 시각에 다중 통신 경로(122-126)가 설정될 수 있다(굵은 선으로 표시함). 게다가, 각 통신 경로(122-126)는 일반적으로 데이터 전송을 위해 2개 이상의 채널을 사용할 수 있다.
통신 경로(122-126)는 여러 쌍 또는 여러 군의 통신 장치(102-112)를 서로연결시켜준다. 통신 경로(122)는 통신 장치들(102, 104, 112)을 연결시키고, 통신 경로(124)는 통신 장치들(106, 110)을 연결시키며, 통신 경로(126)는 통신 장치들(108, 112)을 연결시킨다. 물론, 통신 장치(106)는 통신 장치(110)에 의해 전송되는 데이터에 대해서는 데이터 싱크로서 기능하고 따라서 통신 장치(110)는 데이터 소스로서 기능하며, 그 역도 마찬가지이다. 이하에서, 데이터 소스란 그 특정 상황에서 네트워크로 데이터를 내보내는 통신 장치일 뿐이며, 데이터 싱크란 어떤 특정 상황에서 네트워크로부터 데이터를 수신하는 통신 장치라는 것은 주지하는 바와 같다.
도 1에 도시한 바와 같이, 본 발명에 따른 통신 제어 방법 및 장치는 동일 시각에서의 전송 설비를 통한 다중 연결을 처리할 수 있다.
도 2를 참조하면, 본 발명에 따른 전형적인 시간별 채널 점유 과정을 나타낸 도면이 도시되어 있다. 동 도면은 x-축에 표시된 5개의 상이한 시각(t0-t4)에서의 복수 개의 채널의 이용에 관한 5개의 스냅샷을 나타낸 것이다. y-축에는 전송 설비가 도시되어 있으며, 여기서는 8개의 1-비트 채널(CH1-CH8)로 세분되어 있다.
직사각형 외곽선은 하나의 통신 경로에 속하는 채널들을 그룹지어 놓은 것이다.
직사각형 윤곽선 내에 있는 화살표들은 특정의 채널이 어떻게 사용되고 있는지를 알려준다. 어느 한쪽을 가리키고 있는 화살표는 이 채널이 단방향 직렬 연결(unidirectional serial connection)로서 사용되고 있다는 것을 기호로 표시한 것이다. 동일한 직사각형 윤곽선 내에서 동일 방향을 가리키고 있는 2개 이상의화살표는 단방향 병렬 연결(unidirectional parallel connection)을 나타낸다. 동일한 직사각형 윤곽선 내에 서로 반대 방향을 가리키고 있는 2개 이상의 화살표는 전이중 연결(full duplex connection)을 나타낸다. 기타 조합들도 마찬가지로 구현될 수 있다는 것을 이해할 것이다.
직사각형 윤곽선들 사이의 점선들은 채널들(CH1-CH8)의 점유의 변화를 나타낸다.
2개 이상의 통신 장치(102-112) 사이의 연결을 설정하기 위해 복수 개의 채널(CH1-CH8)의 한 부분 집합이 결정된다. 채널들의 한 부분 집합은 또한 시각 t1에 나타낸 바와 같이 모든 채널이 어떤 결정된 부분 집합에 속하는 경우도 포함한다는 것을 이해할 것이다. 나중에 이 채널들의 한 부분 집합은 특정의 통신 장치들간의 데이터 전송에 사용되게 된다.
이 채널들의 한 부분 집합을 결정하는 프로세스는 데이터 소스로서 기능하는 통신 장치, 즉 데이터를 전송하는 통신 장치에 의해 기동된다. 이 프로세스에서는, 기동시키는 통신 장치가 점유할 수 있는, 즉 제어권을 획득할 수 있는 그러한 채널들만이 선택된다. 일반적으로, 이것은 복수 개의 채널의 각 채널의 상태에 따라 다르다. 채널의 상태는 채널들이 그 특정의 상황에서 사용(occupied) 중인지 미사용(free) 중인지에 의해 주로 정해진다. 게다가, 이 상태는 사용 중인 채널(busy channel) 상으로 전송되는 정보의 우선 순위로 이루어져 있다.
다른 한편으로, 채널들의 한 부분 집합의 결정은 데이터의 전송을 요청하는 통신 장치의 특성 및 그 데이터의 전송에 사용될 복수 개의 채널의 각 채널의 특성에 의해 영향을 받는다. 이것은 특히 각 통신 장치마다 지정된 최대 점유 채널 수, 그 통신 장치의 전송 설비를 통한 데이터 전송 우선 순위 및 그 통신 장치가 네트워크로 내보낼 수 있는 최대 비트 레이트를 포함한다.
전송 설비의 경우에는, 이하의 특성들, 특히 전체 채널 수 및 각 채널의 최대 전송율이 관련되어 있다.
상기 특성들 모두가 채널들의 한 부분 집합의 결정에 영향을 줄 필요가 없다는 것은 주지하고 있는 바와 같다. 이 특성들 중 일부는 오히려 다른 특성들의 영향을 받는다. 예를 들어, 최대 점유 채널 수는 통신 장치가 네트워크로 내보낼 수 있는 최대 비트 레이트에 따라 다를 수 있다. 비트 레이트가 극히 낮은 경우, 2개 이상의 채널을 그의 최대 전송율로 이용하기 위해서는 너무 많은 데이터를 버퍼링해야 할지도 모른다.
채널들의 한 부분 집합을 결정하는 처리를 고속화하기 위해서는, 통신 장치의 특성 및 전송 설비의 특성이 테이블에 저장되어 있는 것이 유리하다. 따라서, 결정 단계에서, 테이블 검색은 통신 장치 및 전송 설비에 관한 모든 정보를 제공한다. 그렇지만, 여전히 채널의 상태는 모니터링해야할 필요가 있지만, 이것은 전송 설비를 통해 전송된 데이터 중 어느 것이 데이터 싱크로서 기능하는 특정의 통신 장치에 전용되어 있는 것인지를 검출하기 위한 것이라면 어떤 방법으로 행해도 된다.
본 발명은 어느 경우라도 그러한 정보 모두가 메모리 또는 어떤 테이블에 저장되어 있어야만 하는 것으로 이해되어서는 안된다. 그 정보의 일부분은 어떤 실시예들에서는 필요없거나 실행 중에 산출될 수 있다.
도 2의 시각 t0을 살펴보면, 모든 채널이 미사용 상태(free)에 있다. 이제부터는 도 1에 도시한 바와 같이 통신 장치(106)가 통신 장치(110)로 데이터를 전송해야 하는 것으로 가정한다. 따라서, 이 시나리오에서 통신 장치(106)는 데이터 소스로서 기능하고 통신 장치(110)는 데이터 싱크로서 기능하게 된다. 통신 장치(106)는 그 다음에 제1 연결(202)을 기동시킨다.
게다가, 통신 장치의 최대 점유 채널 수는 8개이고, 그의 최대 비트 레이트는 모든 채널이 그 채널의 최대 전송율로 이용될 때 정도의 데이터를 전송 설비로 내보낼 수 있을 만큼 충분히 높은 것으로 가정한다.
그렇지만, 본 발명의 다른 특징은 점유 채널이 항상 그의 최대 전송율로 이용되도록 하는 방식으로 통신 장치에 의해 발신된 데이터 스트림을 변환시키는 데 있다. 데이터 스트림의 데이터 레이트와 그 데이터 스트림의 전송을 위해 택한 채널의 전송율간에 차이가 있는 경우, 그 차이를 보상하기 위한 루틴 또는 기억 장치가 사용된다, 즉 데이터의 버퍼링이 행해진다.
데이터 스트림의 비트 레이트가 단 하나의 채널의 전송율보다도 훨씬 낮을 경우, 데이터 스트림의 버퍼링이 행해지고, 충분한 데이터가 저장되어 있을 때에만 전송이 시작된다. 물론, 이러한 경우에도 버퍼링으로 인한 지연이 각각의 응용 분야에 있어서의 시간 임계치를 초과하지 않도록 해야 한다는 것을 염두에 두어야 한다.
이와 반대로, 데이터 스트림의 비트 레이트가 점유 채널들의 전송율의 합보다 더 높은 경우에는, 데이터 소스에 대해 비트 레이트를 더 낮추도록 요청하거나 데이터의 버퍼링이 행해진다.
결정 프로세스를 계속 진행하면, 모든 채널들이 이용가능하기 때문에, 제1 연결(202)은 모든 채널을 점유할 수 있게 된다. 그 다음에, 전송할 데이터 스트림은 채널들의 한 부분 집합을 통한 동시 전송이 가능한 포맷(format)으로 변환된다. 전술한 바와 같이, 변환은 각 채널의 최대 전송율 특성을 이용할 수 있도록 하는 방식으로 수행된다.
결정된 채널에 대한 제어권을 넘겨받은 후에, 변환된 데이터 스트림은 채널들의 한 부분 집합을 통해 동시에 전송된다.
본 발명의 일 실시예에서, 데이터 스트림을 변환하는 단계는 데이터 스트림의 정보를 가지고 있는 데이터 패킷을 생성하는 단계를 포함한다. 패킷 전송의 이점은 전송에 이용 가능한 채널의 수가 몇 개든지 간에 그 채널들을 통해 패킷들을 확산시키기가 용이하다는 점이다.
본 발명에 따르면, 전송 그 자체는 공지의 네트워크 프로토콜을 사용하여 수행될 수 있다.
도 2의 시각 t1에서, 상기 점유의 결과가 도시되어 있다. 모든 채널(CH1-CH8)이 연결(202)에 의해 점유되어 있다. 직사각형 윤곽선 내의 화살표들이 표시하고 있는 바와 같이, 연결(202)은 8-비트 PIO(parallel input output) 단방향 데이터 연결이다. 연결(202)을 통한 데이터의 전송이 계속되는 중에, 제2 연결(204)이 설정되어야 할 필요가 있다.
계속 중인 채널의 모니터링에 의해 모든 채널이 사용 중이라는 것을 검출한다. 채널을 통해 현재 전송되는 정보의 우선 순위가 제2 연결(204)을 통해 전송하려고 시도하는 통신 장치에 할당된 우선 순위보다 더 낮은 것으로 가정한다. 보다 구체적으로 말하면, 우선 순위를 비교해 본 결과, 제2 연결(204)을 위해서는 제1 연결(202)이 현재 차지하고 있는 채널들 중 2개의 채널이 점유 해제되어야만 한다. 이것은 제2 연결(204)을 통해 전송될 데이터 스트림이 2개의 채널(CH1, CH2)을 통해 동시 전송이 가능한 포맷으로 변환된다는 것을 의미한다. 데이터의 전송은 2개의 채널(CH1, CH2)에 대한 제어권을 넘겨받은 후에 시작된다. 제2 연결의 설정에 관해 살펴보면, 제1 연결(202)의 최초 구성에서와 동일한 단계들이 수행된다.
제2 연결(204)이 넘겨 받은 2개의 채널(CH1, CH2)은 더 이상 제1 연결(202)에는 이용 불가능하기 때문에, 제1 연결(202)을 통한 데이터 전송이 제대로 행해지도록 하기 위해서는 부가의 단계가 수행된다. 변환된 데이터 스트림은 채널들의 축소된 한 부분 집합(CH3-CH8) 사이에 재분배되는 데, 그 이유는 채널(CH1, CH2)이 전송 중에 사용 불가능하게 되었기 때문이다.
도 2의 시각 t2는 전송 설비의 재구성의 결과, 더 정확히 말하면 새로운 채널 점유를 나타낸 것이다. 제1 연결(202)은 이제는 채널(CH3-CH8)을 이용하고 제2 연결(204)은 채널(CH1, CH2)을 이용한다. 화살표들로 나타낸 바와 같이, 제1 연결(202)은 이제는 6-비트 PIO 단방향 연결로 변경되었고 제2 연결(204)은 2-비트 PIO 단방향 연결로서 설정되었다.
도 3의 시각 t3에 이르면, 제3 연결(206)이 설정 완료되어 다시 제1연결(202)이 이전에 이용하고 있었던 2개의 채널(CH3, CH4)의 제어권을 넘겨 받는다. 이 경우에서는, 화살표들로 표시한 바와 같이, 제3 연결은 데이터를 양방향으로 동시에 전송하는 직렬 전이중 연결(serial full-duplex connection)이다. 다시 말하면, 이전에는 연결(202)의 6-비트 PIO 연결을 통해 전송되었던 데이터 스트림이 시각 t3에서는 설정되어 있는 바와 같이 채널(CH5-CH8)을 커버하는 4-비트 PIO 연결을 통한 전송이 가능하도록 재분배되었다.
어떤 연결이 더 이상 필요없게 되어 채널들이 점유 해제될 때는 새로운 시나리오가 행해진다. 제3 연결(206)을 통한 데이터 전송이 완료되고 채널(CH3, CH4)이 다시 이용가능하게 되었다고 가정하자. 그러면 곧바로 또다시 통신 장치의 특성이나 채널의 특성에 따라, 잔존하는 연결들 중 하나가 점유 해제된 채널(CH3, CH4)의 제어권을 넘겨 받는다. 도 2에 도시한 일례에서는, 점유 해제된 채널(CH3, CH4)은 제1 연결(202)이 차지하게 된다. 모든 이용가능한 채널을 효율적으로 이용하기 위해서, 재분배가 다시 수행된다. 이전에는 4개의 채널(CH5-CH8)을 통해 전송되었던 데이터 스트림이 채널들의 확대된 한 부분 집합(CH3-CH8) 사이에 재분배되는 데, 그 이유는 2개의 부가 채널(CH3, CH4)이 이용가능하게 되었기 때문이다.
이 재구성의 결과가 도 2에서 시각 t4에 도시되어 있으며, 이는 시각 t2에서의 것과 동등하다.
네트워크에서 일반적으로 사용되는 본 발명에 대해 설명하였지만, 본 발명은 양호하게는 네트워크 세그먼트나 데이터 버스에도 마찬가지로 사용할 수 있다. 네트워크 세그먼트란 네트워크의 일부분으로서 모든 메세지 트래픽이 모든 통신 장치들에 공통되어 있는 곳을 말한다. 이것은 메세지 트래픽이 네트워크 세그먼트 상의 한 통신 장치로부터 브로드캐스트되어 다른 모든 통신 장치들에 의해 수신된다는 것을 의미한다. 일반적으로, 이것은 데이터 버스에도 적용된다.
모든 통신 장치들이 네트워크 세그먼트 또는 버스의 전송 설비를 구성하는 동일한 물리 매체를 공유하기 때문에, 충돌 검출이나 어떤 다른 프로토콜을 이용하여 메세지가 다른 통신 장치들로부터의 간섭없이 전송되었는지를 판정한다. 충돌이 검출되면, 데이터를 재전송해야만 한다. 재전송 알고리즘은 2개의 노드의 데이터가 반복적으로 충돌할 가능성을 최소화하도록 해야만 한다.
예를 들어, 이더넷 상에서 사용되는 CSMA/CD(Carrier Sense Multiple Access/Collision Detect; 반송파 감지 다중 접속/충돌 검출) 프로토콜이 본 발명에서 사용될 수 있다. 게다가, 메세지 전송에 있어서의 충돌을 피하기 위한 컴퓨터 근거리 통신망(Local Area Network) 중재 방식인 토큰링(token ring)이나 또는 버스 토폴로지 네트워크로의 접속을 마치 토큰링인 것처럼 중재하는 네트워킹 프로토콜인 토큰 버스(token bus)가 실제의 데이터 전송을 위해 사용될 수 있다. 이 통신 제어 방법 및 장치가 광범위한 공지의 네트워크 프로토콜에서 사용될 수 있는 것이 유리하다는 것을 이해할 것이다.
그렇지만, 전술한 본 발명에 따른 절차는 네트워크, 네트워크 세그먼트 및 버스에서의 임의의 개수의 채널 및 연결에도 마찬가지로 적용된다는 것을 이해할 것이다.
본 발명의 한 주된 이점은 전송할 데이터가 얼마간이라도 있는 한 모든 단일채널의 최대 대역폭, 즉 최대 전송율이 이용된다는 점이다. 물론, 전송해야할 데이터가 전혀 없다면, 전송 설비는 전혀 사용되지 않는다. 따라서, 전송할 데이터가 있는 경우에는, 전송할 각각의 데이터 스트림이 더 낮은 전송 용량을 필요로 함에도불구하고 전체 전송 설비의 대역폭이 전부 이용된다. 표준 버스 또는 네트워크 관리 기술에 비하여, 본 발명에 개시된 원리에 의하면 버스 또는 네트워크의 주어진 대역폭을 아주 효율적으로 이용할 수 있게 된다. 이러한 주요 특성으로 인해 주어진 시각에서의 데이터 전송 용량의 통계적 이용가능성(statistical availability)이 더욱 높아지게 될 것이고, 또한 목표 응용 분야에 따라서는 각각 더 낮은 성능을 사용하는 것도 가능하게 될 것이다. 따라서, 이 특징에 의해 보다 저비용의 버스 및 네트워크 매체가 각각 얻어지게 된다.
다른 이점은 본 발명이 어떤 프로토콜 또는 메세지 프레임 포맷에 한정되지 않는다는 점이다. 본 발명에 따른 방법 또는 장치는 모든 주요 데이터 전송 프로토콜 및 데이터 전송 수식부(adjective)를 지원하게 구현될 수 있다. 게다가, 본 발명의 원리는 다중 전송 채널을 특징으로 하는 모든 버스 시스템 및 네트워크를 지원한다. 본 발명의 원리는 기저 대역 버스 또는 네트워크에 대해서는 물론 다중 변조 네트워크(multiple modulated network)에서도 구현될 수 있다. 모든 연결 형태, 운영 형태, 변형된 전송 형태(transmission variants), 전송 제어 형태가 본 발명의 원리들에 의해 지원될 수 있다.
도 3은 본 발명에 따른 통신 제어 장치(300)의 일 구현예를 나타낸 상위 레벨 블록도이다. 통신 제어 장치(300)는 통신 장치(302)와 복수 개의 채널(306-314)로 세분되어 있는 전송 설비(304) 사이에 배치되어 있다. 통신 장치(302)는 임의의 I/O 장치, 데이터 소스 또는 데이터 싱크, 예를 들면 프로세서 또는 콘트롤러의 I/O 포트, ADC(analog digital converter; 아날로그 디지털 변환기) 또는 DSP(digital signal processor; 디지털 신호 처리기)의 출력일 수 있다. 전송 설비(304)는 다중 채널로 세분될 수 있는 임의의 종류의 네트워크, 버스 시스템 또는 통신 회선, 즉 예를 들면 어떤 종류의 멀티플렉싱에도 적합한 임의의 통신 회선일 수 있다.
전송 설비(304)는 다시 물리 계층(316)과 복수 개의 채널(306-314)을 제공하는 버스 매체(318)로 분리된다. 복수 개의 채널(306-314)은 별개의 물리 회선들로서 구현될 필요는 없고, 예를 들면 다중 채널을 지원할 수 있는 단 하나의 물리 회선으로 구성될 수 있다. 물리 계층(316)은 통신 제어 장치(300)의 각각의 데이터 출력을 통신 제어 장치(300)와 함께 사용되는 버스 매체(318)에 적합한 신호 형태로 변환시킨다.
도 4를 참조하면, 본 발명에 따른 통신 제어 장치(400)를 나타낸 상위 레벨 블록도가 도시되어 있다. 도시되어 있는 바와 같이, 통신 제어 장치(400)는 버스 접속 제어기(402)를 포함하고 있다. 버스 접속 제어기(402)는 또한 요청에 대한 서비스를 제공하는 순서를 제어하는 중재 제어기로서도 기능한다. 예를 들면, 선착순(first-come/first-served) 또는 최단 작업 우선(shortest-job-next) 또는 임의의 우선 순위 방식(priority driven scheme)이 있다. 따라서, 버스 접속 제어기(402)는 중재 프로세스를 제어하기 위한 상태 기계(state machine) 및 시퀀서(sequencer)를 포함하고 있다. 버스 접속 제어기(402)는 통신 제어 장치(400)의 다른 기능부들 모두에 상호 연결되어 있다.
우선 먼저, 버스 접속 제어기(402)는 펌웨어 기억 장치(404)에 상호 연결되어 있다. 펌웨어(firmware)란 판독 전용 메모리(ROM) 또는 프로그램가능 ROM(PROM)에 저장되어 있는 소프트웨어를 말한다. 펌웨어 기억 장치(404)에 저장되어 있는 펌웨어는 버스 접속 제어기(402)가 처음으로 스위치 온될 때의 그의 행동 및 그 이후의 동작을 담당하고 있다. 버스 접속 제어기(402)는 실행 중에 정보를 저장할 수 있도록 하기 위해 동적 채널 상태 RAM(random access memory)(406)에 상호 연결되어 있다.
구성 레지스터(configuration register)(CR)(408)와 또하나의 상호 연결이 설정되어 있으며, 구성 레지스터(408) 자체는 병렬 제어기(410)에 연결되어 있다. 그렇지만, 구성 레지스터(408) 내에는 2개 이상의 레지스터가 있을 수 있다. 구성 레지스터(408)는 통신 제어 장치가 접속된 네트워크에 관여하고 있는 모든 통신 제어 장치(400)에 대한 비트 할당 레이아웃이 동일하도록 설계되어 있다. 구성 레지스터(408)는 그 각각의 통신 제어 장치(400)로 이루어진 네트워크 노드에 대한 모든 주요 사양 데이터를 가지고 있다.
구성 레지스터(408)의 비트 할당 레이아웃은 전체 시스템 및 네트워크 설계 단계 시에 정의되는 것이 바람직하다. 구성 레지스터 내용('어드레스 맵')을 개괄하는 일례가 이하에 제시되어 있다. 특정 시스템 설계에서는 단지 그의 한 부분 집합만 필요하거나 또는 부가의 문(statement), 즉 제어 데이터가 필요할 수 있다는 것은 주지하는 바와 같다.
CR 어드레스 맵
(1) 대역폭 할당문
(a) 1개 내지 n개 채널에 대한 무제한 채널 할당
(b) 양호한 채널 수
(c) 필요한 최소 채널 수
(d) 특수 채널 이용:
단일 채널 또는 n개 채널 할당
'비트 장소' 정의 (예를 들어, 5 비트 마다)
(2) 특정 통신 제어 장치 노드 할당 우선 순위 정의
(a) 우선 순위 문(priority statement) 없음
(b) 우선 순위 레벨 - n개 단계 - 저 우선 순위에서 고 우선 순위로
(3) 메세지 전송 대기 시간 한계
(a) 무제한
(b) 최대 대기 시간 t1(초)의 정의
(4) 버스 중재 지연
(a) 지연 없음, 즉각 중재
(b) 중재 지연의 단위:
초,
클럭 사이클 수 또는
PWB(parallel write buffer; 병렬 기입 버퍼)에 기입되는 메세지 비트 수
(5) 메세지 전송이 가능하게 되기 전에 PWB에 로드되어 있는 최소 바이트 수
(6) 프레임 제어(FC) 데이터 길이 코드 :
프레임 제어 필드 FC(1) 및 FC(2)의 비트 수 - (FC에 정의되어 있지 않은 경우)
(7) 긴급 버스 할당
(a) 즉각 전송 또는 특정 지연
(b) 긍정 응답 회신문(acknowledge answer statement)을 무시하고 (대기없이) 즉각 전송을 개시함
버스 매체 할당 절차 및 버스 접속 절차를 제어 및 관리하기 위해, 프레임 제어 필드(FC)가 정의된다. 프레임 제어 필드(FC)는 통신 제어 장치(400)에 대해 구체적으로 정의된 데이터 필드로서 전송될 실제의 메세지 프레임에 헤더로서 첨부되는 것이 바람직하다. FC 데이터 필드는 한편으로는 버스 접속 및 메세지 전송을 개시하는 데 필요한 정보를 제공하고, 다른 한편으로는 성공적인 메세지 전송을 나타내는 긍정 응답 정보 및 이전에 할당된 버스 매체 채널(및/또는 시간 슬라이스)을 해제시키는 재구성 데이터를 제공한다.
구성 레지스터의 설계와 유사하게, 프레임 제어 필드의 비트 할당도 전체 시스템 및 네트워크 설계 단계 시에 정의되는 것이 유리하다. 이하에 제시되어 있는, 요구되는 프레임 제어 필드의 비트 할당에 대해 설명하는 일례는 전형적인 것이다. 그렇지만, 특정 시스템 설계에서는 그의 한 부분 집합만이 필요하거나 부가의 문, 즉 데이터 필드가 필요할 수 있다는 것은 알고 있는 바와 같다.
FC 필드 어드레스 맵(첨부된 메세지 프레임 헤더)
(1) FC 필드 메세지 프레임 헤더 식별자
(2) 버스/채널 할당 상태 (요구) 브로드캐스트
(a) 할당 요구 시 갱신됨
(b) '메세지 전송 성공적 완료' 시 갱신됨 (채널 해제)
(3) 버스 재구성/채널 교체 이전에 실행 중인 모든 (동시적인) 메세지 전송 작업에 의해 성공적으로 수신된 비트 수를 나타내는 활성 메세지 전송 상태
(4) FC 데이터 길이 코드 : FC (1) 및 FC (2)의 비트 수 - (CR에 정의되어 있지 않은 경우)
선택 사양인 데이터(시스템 설계에 의해 결정됨, '내장' 메세지 자체의 일부분일 수 있음)
(5) 목적지 어드레스
(6) 소스 어드레스
(7) 전송될 바이트/프레임 수
(8) CRC(cyclic redundancy check; 순환 중복 검사) 코드
(9) 제어 비트
(10) 기타
다시 도 4를 살펴보면, 구성 레지스터(408) 뿐만 아니라 버스 접속제어기(402)는 병렬 제어기(410)에 상호 연결되어 있다. 이 상호 연결 회선을 통해, 접속, 판독 및 기입 제어 신호가 전송된다. 병렬 제어기(410)는 CPU PIO 어댑터(412), 병렬 기입 버퍼(PWB)(414) 및 병렬 판독 버퍼(PRB)(416)를 포함하고 있다.
CPU PIO 어댑터는 통신 장치(도시 생략)에 연결될 몇개의 데이터 회선을 제공함으로써, 통신 장치는 임의의 I/O 장치, 데이터 소스나 데이터 싱크, 예를 들어 프로세서, CPU 또는 제어기의 I/O 포트, ADC나 DSP의 출력으로 이루어질 수 있다. 제공된 데이터 회선은 데이터 신호, 판독/기입 신호, 인터럽트 신호 및 상태 지시자 신호를 전송할 수 있다.
병렬 기입 버퍼(414) 및 병렬 판독 버퍼(416) 모두는 버스 채널 제어부(418)에 연결되어 있다. 도 4에 도시되어 있는 구현에서는, 버스 채널 제어부(418)는 멀티플렉서(MPX) 및 디멀티플렉서(DEMPX)로서 구현되어 있다, 즉 2개 이상의 데이터 소스가 공통 전송 매체를 공유할 수 있게 하여 각 데이터 소스가 그 자신의 독립 채널을 갖도록 해주는 기능부로서 구현되어 있다. PWB(414)는 CPU PIO 어댑터(412)로부터 나오는 데이터를 버스 채널 제어부(418)로 기입하는 반면, PRB(416)는 버스 채널 제어부(418)로부터 나타나는 데이터를 판독하여 CPU PIO 어댑터(412)로 전송한다. 그렇지만, 버스 채널 제어부(418)는 또다시 각각의 데이터 회선을 통해 버스 접속 제어기(402)의 제어를 받는다.
버스 채널 제어부(418)로부터 데이터는 n개(n은 1보다 큰 정수임)의 선입선출(FIFO) 데이터 큐(F1-Fn)를 포함하는 양방향 직렬 판독/기입 버퍼(SRWB)(420)로들어간다. SRWB(420)는 데이터를 멀티플렉싱 장치(422)로 보내며, 이 곳에서 데이터는 최종적으로 n개(n은 1보다 큰 정수임)의 데이터 채널(P1-Pn)을 포함하는 물리 계층(424)에 도달한다. SRWB(420), 멀티플렉싱 장치(422) 및 물리 계층(424)은 모두 버스 접속 제어기(402)의 제어를 받는다. 이에 응답하여, SRWB(420)는 버스 접속 제어기(402)에 상태 정보를 제공한다.
그 밖에, 도 4는 통신 제어 장치(400) 내에서 데이터 폭이 변하는 곳을 나타내고 있다. CPU 또는 각각의 장치(도시 생략)와의 통신이 행해지는 블록도 좌측에서의 CPU 데이터 폭(426)에서 시작하여, 병렬 제어기(410) 내에서는 데이터 폭이 통신 제어 장치(400)에 의해 제공되는 내부 데이터 폭(428)으로 고정된다. 내부 데이터 폭(428)은 병렬 제어기(410)와 버스 채널 제어부(418) 사이에서 가변 데이터 폭(430)으로 변화한다.
게다가, 병렬 데이터 처리가 행해지는 곳과 직렬 데이터 처리가 행해지는 곳이 도시되어 있다. 병렬 제어기(410)는 CPU(도시 생략)로부터 수신받은 데이터를 병렬로(432) 계산하는 반면, SRWB(420)로부터 전방으로는 데이터가 직렬로(434) 처리된다.
다음에 도 5를 참조하면, 본 발명에 따른 통신 제어 장치(BMC)에 연결되어 있는 CPU 인터페이스와의 통신을 위한 제어 시퀀스를 나타낸 상위 레벨 논리 흐름도가 도시되어 있다. 그렇지만, 도 5 및 그 이후의 도 6 내지 도 8에서는, 단지 기입 접속(write access)만이 도시되어 있다, 즉 데이터가 통신 장치로부터 본 발명에 따른 통신 제어 장치(BMC)를 거쳐 전송 설비로 전송된다. 판독 접속 프로세스는 각각 이와 정반대의 방식으로 행해진다. 유의할 점은 이해하기 쉽도록 하기 위해 전체 프로세스가 도 5 내지 도 8에 걸쳐 퍼져 있다는 것이고, 대문자(A-F 및 X)는 개개의 흐름도들 간의 연결부를 나타낸다.
이 프로세스는 CPU 인터페이스(500)가 블록(502)으로 나타낸 메세지 전송 요청을 내보내는 것으로 개시되며, 그 후에 이 프로세스는 블록(504)으로 넘어간다. 블록(504)은 비어 있는 데이터 버스가 있는지 여부, 즉 메세지 전송 요청 프로세스에 의해 점유할 수 있는 데이터 버스가 있는지 여부의 판정을 나타낸다.
없는 경우, 프로세스는 블록(506)으로 넘어간다. 블록(506)은 동작 흐름의 분기를 나타낸다. 한편으로는, 대기 신호(508)가 블록(510)으로 전달되어 통신 제어 장치(BMC)의 상태를 CPU 인터페이스(500)에 알려준다. 다른 한편으로는, 프로세스는 블록(512)으로 넘어간다. 블록(512)은 통신 제어 장치(BMC)의 설정(setup)이 이미 완료되어 있는지 여부, 즉 정상 동작 상태에 있는지 여부의 판정을 나타내며, 설정 완료된 경우, 프로세스는 블록(510)으로 넘어가서 각각의 신호(514)에 의해 그 상태가 준비 완료 상태에 있다는 것을 알려준다.
블록(512)을 계속 참조하면, 통신 제어 장치(BMC)의 설정이 제대로 완료되지 않은 경우나 또는 에러 상태에 있는 경우, 절차는 블록(516)으로 넘어간다. 블록(516)은 통신 제어 장치(BMC)의 재설정(reset)을 나타낸다. 통신 제어 장치(BMC)를 성공적으로 재설정한 후에, 준비 완료 신호(ready signal)(514)를 블록(510)으로 보내어 통신 제어 장치(BMC)의 상태를 알려준다.
이제 블록(510)을 다시 참조하면, 블록(510)은 프로세스 흐름 또는 신호의진입점을 2개 이상 가지고 있다. 첫째, 발신지가 도 6에 있는 완료 신호가 진입하는 곳인 블록(520)의 연결점(X). 둘째, 신호(522)가 진입하는 곳인 블록(524)의 연결점(F)(도 6 참조). 신호(522)는 병렬 기입 버퍼(PWB)가 준비 완료될 때까지 통신 제어 장치(BMC)를 대기하도록 지시한다. 이것은 폴링(polling) 방식이나 인터럽트 구동 방식(interrupt driven method)을 통해 준비 완료 신호를 기다리도록 함으로써 실현될 수 있다. 그렇지만, 병렬 기입 버퍼(PWB)가 실제로 준비 완료되고 나서야 프로세스가 계속되도록 핸드쉐이크 절차(handshake procedure)가 구현되어 있다. 블록(510)으로부터는 통신 제어 장치(BMC)의 상태에 따라 CPU 인터페이스(500)로 각기 다른 메세지가 전달된다.
블록(504)으로 돌아가서, 적어도 하나의 버스가 이용 가능한 경우, 프로세스는 블록(530)으로 넘어간다. 블록(530)은 블록(504)의 판정의 결과가 "예"인 경우와 CPU 인터페이스(500)로부터 오는 데이터 스트로브 신호(532)의 발생 사이의 논리 "AND"를 나타낸다. 따라서, 이러한 필요 요건 모두가 충족될 경우에만, 프로세스는 블록(534)의 연결부(A)로 넘어가 도 6의 블록(600)의 연결부(A)로 이어진다.
이제 도 6을 참조하면, 본 발명에 따른 통신 제어 장치(BMC)에 연결되어 있는 CPU 인터페이스와의 통신을 위한 제어 시퀀스를 나타낸 상위 레벨 논리 흐름도의 또다른 부분, 특히 데이터 전송을 위한 제어 시퀀스를 나타낸 상위 레벨 논리 흐름도가 도시되어 있다.
블록(600)의 진입점(A)에서 시작하여, 프로세스가 도 5에 도시한 블록(530)으로 넘어가면, 프로세스는 도 6에 도시한 블록(602)에 도달한다. 블록(602)은CPU로부터 통신 제어 장치(BMC)로 보낼 데이터가 제대로 전송되도록 하는 CPU/통신 제어 장치(BMC)의 메세지 핸드쉐이크 절차를 나타낸다. 바꾸어 말하면, CPU 인터페이스와 통신 제어 장치(BMC) 사이의 통신을 위해 정의된 프로토콜이 CPU 인터페이스(도 5의 도면 부호 500 참조)로부터의 데이터 전송 중에 시행되고 있다. 점선은 대기 신호(604)를 나타낸다. 대기 신호(604)는 CPU 인터페이스와 통신 제어 장치 사이의 프로토콜 또는 핸드쉐이크 절차가 정보의 전송 중 내내 계속된다는 것을 나타내기 위한 것이다.
블록(602) 이후에, 프로세스는 또다시 분기하여 블록(606, 608)에 동시에 도달한다. 블록(606)은 CPU 인터페이스(500)(도 5)가 보낸 데이터를 병렬 기입 버퍼에 축적시키는 것을 나타내는 반면, 블록(608)은 본 발명에 따른 통신 제어 장치 내에 포함되어 있는 중재 지연 타이머(도시 생략)의 기동 및 초기화를 나타낸다.
블록(606) 이후에, 프로세스는 블록(610, 612)에 동시에 도달한다. 블록(610)은 병렬 기입 버퍼가 완전히 채워졌는지 여부, 즉 버퍼 메모리가 모두 사용되었는지 여부의 판정을 나타낸다. "예"인 경우, 프로세스는 병렬 기입 버퍼(PWB)가 다시 준비 완료될 때까지 대기한다. 이것은 점선을 따라 블록(602)으로 다시 전달되는 대기 신호(604) 및 블록(616)의 연결부(F)로 표시된 바와 같이 도 5의 블록(510)으로 전송되는 신호(614)(도 5의 도면 부호 522 참조)로 나타내어져 있다. 병렬 기입 버퍼에 여전히 남아 있는 공간이 있는 경우, 프로세스는 블록(610)에서 블록(606)으로 반복적으로 되돌아가, 전술한 바와 같이 병렬 기입 버퍼(PWB)에 데이터를 계속 축적하게 된다.
다시 블록(612)을 참조하면, 프로세스는 병렬 기입 버퍼(PWB)에 축적된 데이터의 비트 수가 지정된 수량에 도달한 경우에만 블록(612)에서 블록(618)으로 진행한다. 블록(618)은 블록(612)의 비교 결과가 "예"인 경우와 블록(620)의 연결부(C)(도 7 참조)로부터 나오는 프로세스의 결과 사이의 논리 "AND"를 나타낸다. 달리 말하면, 이러한 필요 요건 모두가 충족되어야만 프로세스는 블록(622)으로 넘어간다. 프로세스는 또한 블록(624)의 연결부(E)(도 8 참조)를 거쳐서도 블록(622)에 도달한다.
계속하여 블록(622)을 참조하면, 블록(622)은 메세지 프레임의 전송을 나타낸다. 이 전송은 메세지 프레임의 전송이 완료될 때까지 계속된다. 전체 메세지 프레임의 전송이 완료되었는지 여부의 판정을 나타내는 블록(626)에 도시한 바와 같이, 전송이 여전히 진행되고 있는 경우 프로세스는 블록(622)으로 반복하여 되돌아간다. 이 전송이 완료된 경우, 프로세스는 블록(628)의 연결부(X)로 넘어가서 완료 신호를 도 5의 통신 제어 장치 상태 블록(510)으로 보낸다.
메세지 프레임의 전송과 동시에, 블록(630)에 도시한 바와 같이 통신 제어 장치는 전송 재구성 요청(transmission reorganization request)이 있는지 여부를 모니터링한다. 이러한 요청이 있는 경우에만, 프로세스는 블록(632)의 연결부(D)로 계속되어 블록(802)(도 8 참조)을 거쳐 블록(800)(도 8 참조)으로 이어진다. 동시에, 메세지 프레임의 전송은 모든 버스 채널이 재할당될 때까지 중지된다. 이것은 전송 중지 신호(634)를 블록(622)으로 다시 되보내는 점선으로 표시되어 있다. 바꾸어 말하면, 프레임 전송 프로세스는 연결부(E)를 기다린다, 즉 전송 재구성 요청에 의해 개시된 프로세스가 블록(622)으로 되돌아올 때까지 전송은 중단된다.
중재 지연 타이머(도시 생략)의 기동 및 초기화를 나타내고 있는 블록(608)으로 다시 오면, 프로세스는 블록(608)으로부터 블록(636)으로 계속된다. 블록(636)은 중재 지연 시간이 경과되었는지 여부의 판정을 나타낸다. "예"인 경우, 프로세스는 블록(638)의 연결부(B)로 진행하고 도 7에 도시되어 있는 블록(700)의 연결부(B)로 이어진다. 중재 시간이 경과하지 않은 경우, 즉 타이머가 영에 도달하지 않은 경우, 타이머는 감소, 즉 카운트 다운되며, 프로세스는 블록(608)으로 반복하여 되돌아온다.
이제 도 7을 참조하면, 본 발명에 따른 통신 제어 장치(BMC)에 연결되어 있는 CPU 인터페이스와의 통신을 위한 제어 시퀀스를 나타낸 상위 레벨 흐름도의 후속 부분이 도시되어 있으며, 특히 버스 이용을 위한 제어 시퀀스를 나타내는 상위 레벨 흐름도가 도시되어 있다. 블록(700)의 연결부(B)부터 시작하여, 프로세스는 사용되고 있는 네트워크 중재 프로토콜에 따라 블록(702)이나 블록(704) 중 어느 하나에 도달한다. 반송파 감지 다중 접속/충돌 검출(CSMA/CD) 프로토콜이 사용되는 경우, 프로세스는 블록(702)으로 넘어가고, 그렇지 않은 경우, 즉 반송파 감지 다중 접속/충돌 회피(CSMA/CA)와 같은 확정론적 중재 프로토콜(deterministic arbitration protocol)이 사용되는 경우, 프로세스는 블록(704)에 도달한다.
중재가 성공하여 버스로의 접속이 이루어진 후, 프로세스 흐름은 전술한 바와 같이 사용되는 중재 프로토콜에 따라 블록(702)이나 블록(704) 중 어느 하나로부터 나와서 블록(706)에 도달한다. 블록(706)은 이상에서 보다 상세하게 설명한 바 있는 프레임 제어 필드[FC (1)]의 전송을 나타낸다. 프레임 제어 필드[FC (1)]는 메세지 프레임 헤더 식별자를 포함하고 있다. 그 다음에, 프로세스는 버스가 비어 있는지 여부의 판정을 나타내는 블록(708)으로 넘어간다. "예"인 경우, 블록(710, 712, 714)으로 표시된 3가지 작업이 동시에 행해진다. 블록(710)은 채널 할당 레지스터의 갱신을 나타내고, 블록(712)은 버스 채널 전송 레지스터의 설정 또는 구성을 나타내며, 블록(714)은 양호한 버스 할당을 갖는 프레임 제어 필드 데이터의 전송 또는 새로운 버스 할당의 브로드캐스트를 각각 나타내고 있다.
이와 반대로, 점유 가능한 버스가 하나도 없는 경우에는, 블록(716, 718, 720)에 나타낸 작업들이 수행된다. 블록(716)은 프레임 제어 필드(FC) 데이터의 전송, 활성 중인 전송의 교체 및 새로운 버스 할당의 브로드캐스트를 나타낸다. 블록(718)은 버스 채널 전송 레지스터의 설정 또는 구성을 나타내며, 블록(720)은 채널 할당 레지스터의 갱신을 나타낸다. 그 후에, 프로세스는 블록(716)으로부터 블록(722)으로 넘어간다. 블록(722)은 프레임 제어 필드[FC (3)] 상태, 즉 버스 재구성 또는 채널 교체 이전에 실행 중에 있는 모든 동시적인 메세지 전송 작업에 의해 성공적으로 수신된 비트 수를 나타내는 활성 메세지 전송 상태의 수신을 기다리는 프로세스를 나타낸다.
그 다음에, 블록(714, 722)으로부터의 동작의 흐름은 합류하여, 논리 "OR"를 나타내는 블록(724)에서 만나게 된다, 즉 프로세스는 블록(714)이나 블록(722) 중 어느 하나로부터 나와 계속된다. 그 다음에, 프로세스는 블록(726)의 연결부(C)및 블록(620)(도 6 참조)의 연결부(C)를 거쳐 반복적으로 블록(618)(도 6 참조)으로 되돌아가게 된다.
마지막으로, 도 8을 참조하면, CPU 인터페이스와의 통신을 위한 제어 시퀀스를 나타내는 상위 레벨 흐름도의 또다른 부분이 도시되어 있으며, 특히 활성 중인 전송을 교체하기 위한 제어 시퀀스를 나타내는 상위 레벨 흐름도가 도시되어 있다. 버스가 프레임 제어 필드[FC (1)], 즉 프레임 제어 필드 메세지 헤더 식별자에 따라 기동되고 있으면, 프로세스는 블록(800)으로부터 시작된다.
그 후에, 블록(804, 806, 808)으로 나타낸 3가지 작업이 동시에 수행된다. 블록(804)은 프레임 제어 필드 데이터(FC)의 수신, 활성 중인 전송의 교체 및 새로운 버스 할당의 브로드캐스트를 나타낸다. 블록(806)은 이상에서 설명한 바와 같이 프레임 제어 필드[FC (3)]에 따라 전송 레지스터의 재초기화를 나타낸다. 또한, 블록(808)은 채널 할당 상태 레지스터의 갱신을 나타낸다.
이러한 작업들을 종결한 후에, 프로세스는 블록(806)으로부터 버스 채널 전송 레지스터의 설정 및 구성을 각각 나타내는 블록(810)으로 넘어간다. 이것은 성공적으로 전송된 데이터 비트 수에 따른 버스 채널 전송 레지스터의 재할당 또는 로드(load) 및 각각의 데이터의 재로드(reload)를 포함한다.
다음에, 프로세스는 블록(814)과 블록(624)(도 6 참조)의 연결부(E)를 거쳐 블록(622)(도 6 참조)으로 보내지는 메세지 전송의 재트리거(re-triggering)를 나타내는 블록(812)으로 넘어간다.
본 발명은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 어떤 종류의 컴퓨터 시스템 - 또는 여기에 기재한 방법을 수행하도록 구성된 다른 장치 - 이라도 적합하다. 하드웨어와 소프트웨어의 전형적인 조합으로는, 로드하여 실행시키면 여기 기재된 방법들을 실행하도록 컴퓨터 시스템을 제어하는 컴퓨터 프로그램을 갖는 범용 컴퓨터 시스템이 될 수 있다. 본 발명은 여기 기재된 방법들을 구현할 수 있는 모든 특징들을 포함하고 또 컴퓨터 시스템에 로드되면 이들 방법들을 수행할 수 있는 컴퓨터 프로그램 제품에 내장될 수 있다.
이러한 맥락에서의 컴퓨터 프로그램 수단 또는 컴퓨터 프로그램은, 정보 처리 능력을 갖는 시스템으로 하여금 특정의 기능을 직접 수행하거나 또는 a) 또다른 언어, 코드 또는 표기법으로 변환하는 것과 b) 다른 유형의 형식으로의 재현하는 것 중 어느 하나 또는 그 양쪽 모두를 행한 이후에 수행하도록 되어 있는, 임의의 언어, 코드 또는 표기법으로 되어 있는 한 세트의 명령어로 된 임의의 표현식을 의미한다.

Claims (18)

  1. 데이터 소스(102-112) 및 복수 개의 채널(116-120)로 세분되는 전송 설비(114)를 구비하는 네트워크(100)의 통신 제어 방법으로서,
    상기 데이터 소스가 점유할 수 있는 상기 복수 개의 채널(116-120)의 한 부분 집합을 결정하는 단계,
    상기 데이터 소스로부터 발신하는 데이터 스트림을 상기 채널들의 한 부분 집합을 통한 동시 전송이 가능한 포맷으로 변환하는 단계, 및
    상기 변환된 데이터 스트림을 상기 채널들의 한 부분 집합을 통해 동시에 전송하는 단계를 포함하는 것을 특징으로 하는 통신 제어 방법.
  2. 제1항에 있어서, 상기 데이터 스트림을 변환하는 단계는 상기 채널들 각각의 최대 전송율 특성을 이용할 수 있도록 하는 방식으로 수행되는 것인 통신 제어 방법.
  3. 제1항 또는 제2항에 있어서, 상기 변환된 데이터 스트림의 전송 중에 상기 채널들의 한 부분 집합 중의 하나 이상의 채널들이 이용 불가능하게 된 경우, 상기 변환된 데이터 스트림을 채널들의 축소된 한 부분 집합 사이에 재분배하는 단계를 더 포함하는 통신 제어 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 변환된 데이터 스트림의 전송 중에 하나 이상의 부가의 채널들이 이용 가능하게 된 경우, 상기 변환된 데이터 스트림을 채널들의 확대된 한 부분 집합 사이에 재분배하는 단계를 더 포함하는 통신 제어 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 복수 개의 채널의 한 부분 집합을 결정하는 단계는 상기 데이터 소스에 관한 정보, 특히 최대 점유 채널 수, 상기 전송 설비를 통한 데이터 소스의 데이터 전송 우선 순위, 상기 데이터 소스가 상기 네트워크로 내보낼 수 있는 최대 비트 레이트를 가지고 있는 테이블에서 데이터를 검색하는 단계를 포함하는 것인 통신 제어 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 복수 개의 채널의 한 부분 집합을 결정하는 단계는 상기 전송 설비에 관한 정보, 특히 전체 채널 수 및 각 채널의 최대 전송율을 가지고 있는 테이블에서 데이터를 검색하는 단계를 포함하는 것인 통신 제어 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 복수 개의 채널의 한 부분 집합을 결정하는 단계는 상기 복수 개의 채널의 상태를 검사하는 단계를 포함하는 것인 통신 제어 방법.
  8. 제7항에 있어서, 상기 복수 개의 채널의 상태를 검사하는 단계는 미사용 채널(free channel)을 탐색하는 단계 및 사용중 채널(busy channel)을 통해 현재 전송되는 정보의 우선 순위를 조사하는 단계를 포함하는 것인 통신 제어 방법.
  9. 제8항에 있어서, 상기 복수 개의 채널의 한 부분 집합을 결정하는 단계는 상기 현재 전송되는 정보의 우선 순위가 더 낮은 우선 순위를 갖게 된 경우, 데이터의 전송을 위해 제어권을 넘겨 받을 상기 사용중 채널들 중 하나 이상을 선택하는 단계를 포함하는 것인 통신 제어 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 데이터 스트림을 변환하는 단계는 상기 데이터 스트림의 버퍼링을 행하는 단계를 포함하는 것인 통신 제어 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 데이터 스트림을 변환하는 단계는 상기 데이터 스트림의 상기 정보를 가지고 있는 데이터 패킷을 생성하는 단계를 포함하는 것인 통신 제어 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 변환된 데이터 스트림을 전송하는 단계는 표준 네트워크 프로토콜을 이용하는 단계를 포함하는 것인 통신 제어 방법.
  13. 데이터 소스(302) 및 복수 개의 채널(306-314)로 세분되는 전송 설비(304)를 구비하는 네트워크의 통신 제어 장치(300)로서,
    상기 데이터 소스(302)가 점유할 수 있는 상기 복수 개의 채널의 한 부분 집합을 결정하는 버스 접속 제어기(402),
    상기 데이터 소스로부터 발신하는 데이터 스트림을 상기 채널들의 한 부분 집합을 통한 동시 전송이 가능한 포맷으로 변환하는 버스 채널 제어부(418), 및
    상기 변환된 데이터 스트림을 상기 채널들의 한 부분 집합을 통해 동시에 전송하는 멀티플렉싱 장치(422)를 포함하는 것을 특징으로 하는 통신 제어 장치.
  14. 제13항에 있어서, 상기 데이터 소스에 관한 정보, 특히 최대 점유 채널 수, 상기 전송 설비를 통한 데이터 소스의 데이터 전송 우선 순위, 상기 데이터 소스가 상기 네트워크로 내보낼 수 있는 최대 비트 레이트를 가지고 있는 구성 레지스터(408)를 더 포함하는 통신 제어 장치.
  15. 제14항에 있어서, 상기 구성 레지스터(408)는 상기 전송 설비에 관한 정보, 특히 전체 채널 수 및 각 채널의 최대 전송율을 더 가지고 있는 것인 통신 제어 장치.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서, 상기 복수 개의 채널의 한 부분 집합을 결정하는 상기 버스 접속 제어기(402)는 전송 요청을 스케쥴링하는 중재 제어기를 포함하는 것인 통신 제어 장치.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서, 상기 데이터를 지정된 수의 채널을 통해 동시 전송되도록 변환하는 버퍼(414, 416)를 더 포함하는 통신 제어 장치.
  18. 컴퓨터로 하여금 제1항 내지 제12항 중 어느 한 항에 기재된 방법을 수행하도록 하는 컴퓨터 판독 가능 프로그램 수단을 포함한 컴퓨터 프로그램을 포함하는 컴퓨터 판독 가능 기록 매체.
KR1020037000292A 2000-07-14 2001-07-12 통신 제어 방법 및 장치 KR100628822B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP00115299.0 2000-07-14
EP00115299 2000-07-14
PCT/EP2001/008057 WO2002007408A1 (en) 2000-07-14 2001-07-12 Communication control method and device

Publications (2)

Publication Number Publication Date
KR20030016386A true KR20030016386A (ko) 2003-02-26
KR100628822B1 KR100628822B1 (ko) 2006-09-27

Family

ID=8169266

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037000292A KR100628822B1 (ko) 2000-07-14 2001-07-12 통신 제어 방법 및 장치

Country Status (8)

Country Link
US (1) US20020009098A1 (ko)
EP (1) EP1302050A1 (ko)
JP (1) JP3745738B2 (ko)
KR (1) KR100628822B1 (ko)
CN (1) CN1191700C (ko)
AU (1) AU2001276399A1 (ko)
HK (1) HK1055859A1 (ko)
WO (1) WO2002007408A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100964665B1 (ko) * 2003-03-12 2010-06-22 엘지전자 주식회사 데이터 전송 포맷을 할당하는 방법 및 이 할당에 따른데이터를 전송하는 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3910615B2 (ja) * 2002-06-06 2007-04-25 富士通株式会社 波長分割多重光信号の切り替え制御装置
CN100393012C (zh) * 2002-09-09 2008-06-04 西南交通大学 在混合自动重发请求系统中并行冗余发送与并行合并接收分组数据的方法
ITUD20040123A1 (it) * 2004-06-09 2004-09-09 A I B S Lab Srl Metodo per la ricetrasmissione di dati, e
US8819326B1 (en) * 2006-12-12 2014-08-26 Spansion Llc Host/client system having a scalable serial bus interface
US20080205429A1 (en) * 2007-02-26 2008-08-28 Ping Chung Ng Channel assignments in carrier sense wireless networks
US8532139B2 (en) * 2007-09-21 2013-09-10 Broadcom Corporation Method and system for indicating a transition in rate and/or power consumption utilizing a distinct physical pattern on one or more idle channel(s)
US8560885B1 (en) * 2010-09-16 2013-10-15 The Boeing Company Dynamic redundancy management
US10182020B2 (en) * 2016-05-31 2019-01-15 Anchorfree Inc. System and method for improving an aggregated throughput of simultaneous connections
WO2019123837A1 (ja) * 2017-12-21 2019-06-27 ソニー株式会社 送信制御装置、送信制御方法、受信制御装置、受信制御方法および信号伝送システム
CN112202637A (zh) * 2020-09-30 2021-01-08 西安热工研究院有限公司 一种profibus-pa总线网段设备数量的计算方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3643229A (en) * 1969-11-26 1972-02-15 Stromberg Carlson Corp Interrupt arrangement for data processing systems
US3708785A (en) * 1970-07-31 1973-01-02 Searle Medidata Inc Data scanner for real time interfacing of a computer and plural remote units
GB1323048A (en) * 1971-03-03 1973-07-11 Ibm Communications control unit
IT971304B (it) * 1972-11-29 1974-04-30 Honeywell Inf Systems Sistema di accesso a priorita variabile dinamicamente
IT1002275B (it) * 1973-12-27 1976-05-20 Honeywell Inf Systems Sistema di elaborazione dati a piu canali di ingresso uscita a risorse orientate per livelli di servizio distinti e interrompi bili
JPS51100603A (en) * 1975-03-03 1976-09-06 Hitachi Ltd Paketsutokokanmoni okeru deetasojushinhoshiki
US4156796A (en) * 1977-11-29 1979-05-29 International Business Machines Corporation Programmable data processing communications multiplexer
US4256796A (en) * 1979-11-05 1981-03-17 Rca Corporation Partially devitrified porcelain composition and articles prepared with same
US4771391A (en) * 1986-07-21 1988-09-13 International Business Machines Corporation Adaptive packet length traffic control in a local area network
US5119367A (en) * 1988-10-28 1992-06-02 Oki Electric Industry Co., Ltd. Method and a node circuit for routing bursty data
JPH0695677B2 (ja) * 1988-11-16 1994-11-24 株式会社日立製作所 複数チヤネルを有するネツトワークの伝送方式
DE69124794D1 (de) * 1991-05-08 1997-04-03 Semaphore Inc Gerät und Verfahren zur parallelen und regelgestützten Datenübertragung
US5231649A (en) * 1991-08-08 1993-07-27 Ascend Communications, Inc. Method and apparatus for dynamic bandwidth allocation in a digital communication session
US5530895A (en) * 1993-02-25 1996-06-25 Microsoft Corporation System and method for computer interface board identification by serially comparing identification address bits and asserting complementary logic patterns for each match
US5694581A (en) * 1993-09-07 1997-12-02 Industrial Technology Research Institute Concurrent disk array management system implemented with CPU executable extension
US5631897A (en) * 1993-10-01 1997-05-20 Nec America, Inc. Apparatus and method for incorporating a large number of destinations over circuit-switched wide area network connections
US6665733B1 (en) * 1996-12-30 2003-12-16 Hewlett-Packard Development Company, L.P. Network communication device including bonded ports for increased bandwidth
US6049528A (en) * 1997-06-30 2000-04-11 Sun Microsystems, Inc. Trunking ethernet-compatible networks
US6108306A (en) * 1997-08-08 2000-08-22 Advanced Micro Devices, Inc. Apparatus and method in a network switch for dynamically allocating bandwidth in ethernet workgroup switches
US6728238B1 (en) * 1998-05-06 2004-04-27 Remote Switch Systems, Inc. Dynamic allocation of voice and data channels in a time division multiplexed telecommunications system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100964665B1 (ko) * 2003-03-12 2010-06-22 엘지전자 주식회사 데이터 전송 포맷을 할당하는 방법 및 이 할당에 따른데이터를 전송하는 방법

Also Published As

Publication number Publication date
KR100628822B1 (ko) 2006-09-27
JP2004504773A (ja) 2004-02-12
HK1055859A1 (en) 2004-01-21
EP1302050A1 (en) 2003-04-16
AU2001276399A1 (en) 2002-01-30
US20020009098A1 (en) 2002-01-24
JP3745738B2 (ja) 2006-02-15
CN1442012A (zh) 2003-09-10
WO2002007408A1 (en) 2002-01-24
CN1191700C (zh) 2005-03-02

Similar Documents

Publication Publication Date Title
US6246692B1 (en) Packet switching fabric using the segmented ring with resource reservation control
US6992978B1 (en) Method and system for path protection in a communications network
US7352765B2 (en) Packet switching fabric having a segmented ring with token based resource control protocol and output queuing control
US5835491A (en) Method for supporting multicast capabilities in switching networks with a reservation ring
US4982400A (en) Ring bus hub for a star local area network
US4663706A (en) Multiprocessor multisystem communications network
US4858232A (en) Distributed switching system
US5604742A (en) Communications system and method for efficient management of bandwidth in a FDDI station
JP3448067B2 (ja) ネットワークアダプタのためのネットワークコントローラ
EP0666665B1 (en) Method and apparatus for dynamically determining and allocating shared resource access quota
JP2011517903A (ja) パケット交換オンチップ相互接続ネットワークの高速仮想チャネル
JP6962599B2 (ja) クライアントサービス送信方法および装置
JPH07101408B2 (ja) 多重プロセッサコンピュータ・システムおよびコンピュータネットワークを動作させる方法
JPH0748739B2 (ja) 多重アクセス制御方法および該方法を実施する多重アクセス制御システム
JPH08256180A (ja) データ通信ネットワーク装置
JPH08265270A (ja) 転送路割り当てシステム
KR100628822B1 (ko) 통신 제어 방법 및 장치
EP1302011A1 (en) Media access control for isochronous data packets in carrier sensing multiple access systems
US5883895A (en) Arbitration ring with automatic sizing for a partially populated switching network
JP4391819B2 (ja) コンピュータ・システムの入出力ノード
US5390182A (en) System for synchronous bandwidth allocation in token ring networks
US8072884B2 (en) Method and system for output flow control in network multiplexers
GB2301995A (en) Software driver for a system bus
JP2000324144A (ja) データ通信システム及びタイムスロット割当方法並びにタイムスロット割当制御プログラムを格納した記憶媒体
US20110296434A1 (en) Techniques for Dynamically Sharing a Fabric to Facilitate Off-Chip Communication for Multiple On-Chip Units

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee