KR20070114714A - 통신 시스템의 통신 링크를 통해 메시지에 데이터를전송하기 위한 전송 방법, 통신 모듈, 통신 시스템의서브스크라이버 및 상기 전송 방법을 구현하기 위한 통신시스템 - Google Patents
통신 시스템의 통신 링크를 통해 메시지에 데이터를전송하기 위한 전송 방법, 통신 모듈, 통신 시스템의서브스크라이버 및 상기 전송 방법을 구현하기 위한 통신시스템 Download PDFInfo
- Publication number
- KR20070114714A KR20070114714A KR1020077017534A KR20077017534A KR20070114714A KR 20070114714 A KR20070114714 A KR 20070114714A KR 1020077017534 A KR1020077017534 A KR 1020077017534A KR 20077017534 A KR20077017534 A KR 20077017534A KR 20070114714 A KR20070114714 A KR 20070114714A
- Authority
- KR
- South Korea
- Prior art keywords
- message
- message memory
- data
- messages
- buffer
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/407—Bus networks with decentralised control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/427—Loop networks with decentralised control
- H04L12/43—Loop networks with decentralised control with synchronous transmission, e.g. time division multiplex [TDM], slotted rings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
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)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 발명은 통신 시스템의 통신 링크(101)를 통해 메시지에 데이터를 전송하기 위한 방법, 통신 모듈(100), 통신 시스템의 서브스크라이버(102), 그리고 상기 방법을 구현하기 위한 통신 시스템에 관한 것이다. 메시지는 사전 지정 가능한 시간 윈도우(ZF)에서 통신 링크(101)를 통해 주기적으로 전송되며, 통신 링크(101)를 통해 송신될 메시지 및 송신된 메시지가 우선 통신 모듈(100)의 메시지 메모리(300)에 임시 저장되며, 그리고 실제의 시간 윈도우(ZF)에서 송신 내지 수신될 메시지는 상기 메시지 메모리(300)로부터 추출되어 송신되거나 수신되며, 그리고 상기 메시지 메모리(300)에 저장된다. 통신 모듈(100)의 실시간 능력을 개선하기 위해, 제안되는 점에 따라, 메시지 메모리(300) 내에서 메시지의 위치를 결정하기 위해서, 메시지 메모리는 각각 복수의 후행하는 시간 윈도우(ZF)를 위해 정기적인 간격으로 선행되어 검색되며, 그리고 검색 실행의 결과로서, 복수의 후행하는 시간 윈도우(Z)에서 송신 내지 수신될 메시지들의 위치가 상기 메시지 메모리(300)에 할당된 버퍼(600)에 저장된다. 본질적인 데이터 전송(메시지의 송신 혹은 수신)의 범주에서, 상기 버퍼(600)에 대한 용이한 접근이 이루어지며, 그리고 그 버퍼에 저장된 위치를 통해서는 메시지 메모리(300) 내의 부합하는 메시지 객체에 대해서도 용이한 접근이 이루어진다.
통신 링크, 메시지 메모리, 시간 윈도우, 버퍼, 데이터 전송
Description
본 발명은 사전 지정 가능한 시간 윈도우에서 통신 시스템의 통신 링크를 통해 주기적으로 전송되는 메시지에 데이터를 전송하기 위한 방법에 관한 것이다. 통신 링크를 통해 송신될 메시지 및 송신된 메시지는 우선 통신 모듈의 메시지 메모리에 임시 저장된다. 실제 시간 윈도우에서 서브스크라이버로부터 송신 내지 수신될 메시지는 메시지 메모리로부터 추출되어 송신 내지 수신되며, 그리고 메시지 메모리에 저장된다.
또한 본 발명은 청구항 제13항의 전제부에 따르는 통신 모듈, 청구항 제17항의 전제부에 따르는 통신 시스템의 서브스크라이버, 그리고 상기 방법을 실행하기 위한, 청구항 제20항의 전제부에 따른 통신 시스템에 관한 것이다.
통신 시스템의 통신 링크를 이용하여, 예컨대 제어 장치, 센서 장치 및 액추에이터 장치 형태로 이루어지는 서브스크라이버들의 연결은 최근에 현대적인 자동 차의 제조 혹은 기계 설계, 특히 공작 기계 영역에서, 다시 말해 자동화 분야에서 급속하게 증가하였다. 이때 복수의 서브스크라이버에 기능들을 분산시킴으로써 시너지 효과가 달성될 수 있다. 이를 분산 시스템이라고 한다. 다양한 서브스크라이버들 간의 통신은 버스 시스템으로서 형성된 통신 시스템에서 데이터 버스로서 형성된 통신 링크를 통해 더욱더 많이 개시되고 있다. 버스 시스템, 접근 및 수신 메커니즘뿐 아니라 오류 처리 장치에서의 통신 트래픽은 프로토콜을 통해 제어된다. 이를 위해 공지된 프로토콜은 CAN(계측 제어기 통신망) 프로토콜이나 혹은 TTCAN(시간 기반 CAN) 프로토콜과 플렉스레이 프로토콜이다. 현재 플렉스레이 프로토콜 사양 v2.1이 기반이 되고 있다.
플렉스레이는 고속이고, 결정성이면서 무정지형의 버스 시스템으로, 특히 자동차에서 사용된다. 플렉스레이 프로토콜은 시분할 다중 접근(TDMA)의 방법에 따라 기능하며, 서브스크라이버들(혹은 컴포넌트들) 내지 전송될 메시지에는 고정된 시간 슬롯 혹은 시간 윈도우가 할당된다. 이 시간 슬롯 혹은 시간 윈도우에서 서브스크라이버 내지 메시지는 통신 링크에 대한 배타적 접근 권한을 갖는다. 이는 TTCAN에서도 유사하게 적용될 수 있다. 이때 시간 슬롯은 결정된 주기로, 다시 말해 이른바 통신 주기로 반복되며, 그럼으로써 메시지가 데이터 버스를 통해 전송되는 시점이 정확하게 예측될 수 있고, 버스 접근이 결정적으로 이루어지게 된다.
버스 시스템에서 메시지 전송에 대한 대역폭을 최적화하여 사용하기 위해, 플렉스레이는 통신 주기를 정적 부분, 즉 이른바 정적 세그먼트와 동적 부분, 즉 이른바 동적 세그먼트로 분할한다. 이때 고정되어 사전 지정된 길이를 갖는 시간 슬롯은 정적 부분에서 버스 주기의 시작 부분에 위치한다. 동적 부분에서 시간 슬롯은 동적으로 할당된다. 그 시간 슬롯에서 배타적인 버스 접근은 각각 짧은 시간 동안만, 다시 말해 이른바 미니슬롯 동안만 가능하게 된다. 단지 미니슬롯 기간 내에서만 서브스크라이버들 중 어느 하나의 서브스크라이버에 의해 버스 접근이 이루어진다면, 대응하는 시간 슬롯은 그 해당 서브스크라이버가 데이터 전송을 위해 필요로 하는 시간 기간으로 확장된다. 그로 인해 대역폭은 실제로 데이터 전송을 위해 필요할 때에만 사용된다. 동적 세그먼트는 사건이 제어되는 데이터 전송을 위해 사용될 수 있다.
플렉스레이 통신 시스템에서는, 채널로서도 지칭되는 물리적으로 분할된 2개의 라인을 통해, 초당 현재로서는 최대 10MB인 데이터 전송률로써 통신이 이루어진다. 이때 상기 두 채널은 물리적 계층, 특히 OSI(개방 시스템 아키텍처) 계층 모델의 물리적 계층에 해당한다. 그 채널들은 주로 메시지를 중복성으로, 그에 따라 무정지형 방식으로 전송하는 역할을 하며, 그럼에도 상이한 메시지들을 전송할 수 있으며, 그럼으로써 데이터 전송률은 현재 20MB로 두 배가 될 수 있다. 자명한 사실로 플렉스레이는 더욱 낮은 데이터 전송률로도 운용될 수 있다.
동기식 기능을 실현하고, 두 메시지 간의 작은 간격을 통해 대역폭을 최적화하기 위해, 통신 네트워크에서 분산 컴포넌트들은, 다시 말해 통신 시스템에서 서브스크라이버들은 공동의 시간 기반, 즉 이른바 전역 시간(global time)을 필요로 한다. 서브스크라이버들은 전역 시간에 동기화된 자체 로컬 시각을 이용한다. 시각 동기화를 위해, 동기화 메시지는 주기의 정적 부분에서 전송된다. 시각 동기화 는 각각의 통신 주기가 종료될 때 이른바 네트워크 유휴 시간(NIT) 동안 이루어진다. 플렉스레이 사양에 상응하는 특수한 알고리즘을 이용하여, 컴포넌트들의 로컬 시각은, 모든 로컬 시각이 전역 시각에 동기화되어 흘러가는 방식으로 수정된다. 이런 동기화는 TTCAN 네트워크에서도 유사하게 이루어진다.
플렉스레이 네트워크 노드로서도 지칭되는 플렉스레이 서브스크라이버는 서브스크라이버 프로세서, 다시 말해 호스트 프로세서, 플렉스레이 컨트롤러 혹은 통신 컨트롤러, 물리적 계층에 대한 링크, 버스 드라이버(BD)를 포함할 뿐 아니라, 버스 모니터링을 실현할 시에는 버스 가디안(BG; Bus Guardian)도 포함한다. 이때, 호스트 프로세서는 플렉스레이 통신 컨트롤러를 통해 전송되거나 수신되는 데이터를 공급하고 처리한다. 플렉스레이 네트워크에서 통신을 위해 메시지 내지 메시지 객체는 예컨대 최대 254 데이터 바이트를 구비하여 구성될 수 있다. 이와 같은 메시지 내지 메시지 객체를 물리적 계층, 다시 말해 통신 링크와 호스트 프로세서 사이에서 전송하기 위해, 통신 모듈, 특히 통신 컨트롤러가 이용된다.
통신 모듈은 메시지 메모리를 이용하며, 이 메시지 메모리 내에서는 통신 모듈에 할당된 서브스크라이버에 의해 송신될 메시지 객체 내지 그 서브스크라이버에 의해 수신될 메시지 객체가, 통신 링크에 송신되기 위해 임시 저장되거나, 또는 추가 처리를 위해 호스트 프로세서로 전송되기 전에 임시 저장된다. 메시지 메모리의 데이터 필드의 수와 크기는 통신 시스템의 구성 단계 혹은 재구성 단계 동안 구성된다.
종래 기술에서, 실제 채널을 통해 실제 통신 주기에서, 및/또는 실제 시간 슬롯에서 송신 내지 수신될 메시지들이 저장되거나 아직 저장되어야 하는 그런 데이터 필드를 결정하기 위해, 메시지 메모리는 각각의 시간 슬롯을 개시하는 시점에 메시지 관리자에 의해 검색된다. 그러므로 메시지 메모리를 검색할 시에, 예컨대 실제 통신 주기에서 그리고 실제 시간 슬롯에서 실제 고려되는 채널을 통해 수신되어야 하는 메시지를 위해 제공되는 데이터 필드가 결정된다. 그런 다음 메시지를 수신한 후에, 그 메시지는 결정된 데이터 필드에 저장된다. 마찬가지로 메시지 메모리의 검색 시에, 예컨대 실제 통신 주기에서 그리고 실제 시간 슬롯에서 실제 고려되는 채널을 통해 송신되어야 하는 메시지가 저장되어 있는 데이터 필드가 결정될 수 있다. 그런 다음 상기한 메시지는 결정된 데이터 필드로부터 추출되어 송신을 위해 통신 링크로 전송된다.
그러나 단점으로서 입증된 점에 따르면, 검색 실행은 특히 메시지 메모리가 더욱 큰 경우 상대적으로 많은 시간을 필요로 하며, 그리고 검색 실행을 바탕으로 메시지의 수신 내지 송신 시에 지연이 야기될 수 있다. 각각의 시간 슬롯에서 전체 메시지 메모리가 검색됨으로써, 통신 시스템의 실시간 능력에 손상이 야기될 수 있다.
본 발명의 목적은 메시지 메모리에 대한 검색 실행 시에, 메시지의 전송이 최적의 방법으로 지원되며, 그리고 특히 통신 시스템 자체의 실시간 능력이 메시지 메모리가 더욱 큰 경우에도 여전히 보장될 수 있는 방식으로 상기 검색 실행을 구성하는 것에 있다.
상기 목적은, 서두에 언급한 데이터 전송 방법으로부터 출발하여, 메시지 메모리 내에서 메시지의 위치를 결정하기 위해 메시지 메모리가 정기적인 간격으로 각각 복수의 후행하는 시간 윈도우를 위해 선행되어 검색되며, 검색 실행의 결과로서, 복수의 후행하는 시간 윈도우에서 송신 내지 수신될 메시지들의 위치가 메시지 메모리에 할당된 버퍼 내에 저장되는 제안을 통해 달성된다.
본 발명에 따라, 각각의 시간 슬롯에서 메시지 메모리를 완전하게 검색하는 것이 아니라, 오히려 복수의 향후 시간 슬롯을 위해 검색을 실행하는 점이 제안된다. 다시 말해, 단 하나의 검색 실행을 이용하여, 메시지 메모리 내에서 메시지들의 위치들이 복수의 향후 시간 슬롯을 위해 결정된다. 검색 실행의 범주에서 결정된 위치들은 버퍼에 저장되며, 향후의 본질적인 데이터 전송의 범주에서 거의 시간 지연 없이 그 버퍼로부터 호출될 수 있다. 다시 말해 본질적인 데이터 전송의 범주에서, 전체 메시지 메모리의 완전한 검색 실행이 요구되지 않는다. 그렇게 함으로써 본 발명에 따른 통신 시스템의 실시간 능력은 대폭 개선될 수 있다.
본 발명의 바람직한 개선 실시예에 따라, 데이터 전송의 범주에서, 실제 시간 윈도우에 통신 시스템을 통해 전송될 메시지는, 메시지 메모리에 있어 상기한 시간 윈도우에 대해 버퍼에 명시된 그의 위치로부터 판독되어, 통신 링크를 통해 전송되거나, 또는 실제 시간 윈도우에서 통신 링크를 통해 전송된 메시지가, 메시지 메모리에 있어 상기한 시간 윈도우에 대해 버퍼에 명시된 그의 위치에 저장된다. 다시 말해, 본질적인 데이터 전송의 범주에서, 메시지가 메시지 메모리로부터 송신되어야 한다면, 간단히 버퍼 내의 대응하는 위치에 대한 접근이 이루어지며, 그런 다음 버퍼 내에 저장된 메시지 메모리 위치에 대한 접근이 이루어지면서, 그곳에 저장된 메시지가 추출되어, 송신을 위해 통신 링크로 전송된다. 마찬가지로, 본질적인 데이터 전송의 범주에서, 메시지가 수신되어 메시지 메모리에 저장되어야 한다면, 간단히 버퍼 내의 대응하는 위치에 대한 접근이 이루어지며, 그리고 통신 링크를 통해 수신된 메시지는 그 버퍼에 저장된 메시지 메모리 위치에 저장될 수 있다.
본 발명의 바람직한 실시예에 따라, 메시지 메모리 내의 메시지 위치가 버퍼에 이미 저장되었던 목적에 해당하는 실제 시간 윈도우와 이에 후행하는 복수의 시간 윈도우를 위한 데이터 전송은 데이터 전송의 최종 시간 윈도우에 이어지는 시간 윈도우와 이에 후행하는 복수의 시간 윈도우를 위한 검색과 동시에 실행된다. 다시 말해, 향후 시간 슬롯(1...n(n>1))을 위한 본질적인 데이터 전송과 후행하는 향후 시간 슬롯((n+1)...2n)을 위한 검색은 병행해서 진행된다. 이런 실시예를 위해, 상태 메모리는, 2n개의 데이터 필드를, 다시 말해 메시지 메모리 내의 메시지 위치가 데이터 전송 동안 저장될 수 있는 n개 데이터 필드와 실제 검색 실행의 범주에서 결정되는 메시지 메모리 내의 메시지 위치가 저장될 수 있는 n개 추가 데이터 필드를 포함할 정도의 크기를 갖는다. 바람직하게는 메시지 메모리 내의 메시지들의 위치들은 선행된 검색 실행 시에 본질적인 데이터 전송 동안 결정되었으며, 그리고 버퍼에 저장되었다. 버퍼의 두 n개 데이터 필드에 대해서는 바람직하게는 교호적으로 접근이 이루어지되, n개 데이터 필드 각각은 검색 실행의 범주에서 위치들을 저장하고, 그런 다음 본질적인 데이터 전송의 범주에서 저장된 위치를 호출하기 위해 이용된다. 이때 두 n개 데이터 필드는 결코 검색 실행의 범주에서 혹은 데이터 전송의 범주에서 동시에 이용되는 것이 아니라, 항시 상호 간에 변이되어 이용된다. 이와 같은 실시예를 이용하여, 추가로 검색 실행을 위한 처리 시간은 절감될 수 있으며, 그럼으로써 통신 시스템의 실시간 능력은 실제로 항상 제공된다. 검색 실행은 바람직하게는 자체 컴퓨터 유닛, 예컨대 이른바 자동 상태 머신(유한 상태 머신)에 의해 조정 및 실시된다.
바람직하게는 검색 실행의 복수의 시간 윈도우의 수는 본질적인 데이터 전송을 위한 복수의 시간 윈도우의 수와 동일하다. 다시 말해 본원의 방법에 따라, 데이터가 전송(수신 혹은 송신)되어야 한다면, 복수의 향후 시간 슬롯을 위해 연속해서 검색 실행이 이루어지고, 그런 다음 본질적인 데이터 전송(데이터의 송신 혹은 수신)이 실행된다. 만일 복수의 향후 시간 슬롯을 위한 본질적인 데이터 전송과 추가로 향후에 위치하는 복수의 시간 슬롯을 위한 검색이 교호적으로 병행해서 실행되는 경우라면, 버퍼의 두 메모리 영역 사이에서 각각 포괄적으로 향후 시간 슬롯의 수에 상응하는 데이터 필드 수가 변경될 수 있도록 하기 위해, 본질적인 데이터 전송이 실행되는 목적에 해당하는 향후 시간 슬롯의 수와 검색이 실행되는 목적에 해당하는 향후 시간 슬롯의 수는 동일해야 한다.
그러므로 버퍼는 분할되며, 데이터 전송을 위한 버퍼의 제1 부분에서는, 메시지 메모리 내의 메시지들의 위치들이 버퍼에 이미 저장되었던 목적에 해당하는 실제 시간 윈도우와 이에 후행하는 복수의 시간 윈도우를 위한 메시지들의 위치들이 저장되며, 그리고 검색 실행을 위한 버퍼의 제2 부분에서는, 데이터 전송의 최종 시간 윈도우에 연결되는 시간 윈도우와 이에 후행하는 복수의 시간 윈도우를 위한 메시지들의 위치들이 저장된다.
본 발명의 바람직한 개선 실시예에 따라, 메시지 메모리 내에 저장될 메시지에는 제1 데이터 볼륨을 포함하는 제1 데이터와 제2 데이터 볼륨을 포함하는 제2 데이터가 포함되며, 제1 데이터는 메시지에 대한 각각의 헤드 영역에서 메시지 메모리의 헤드 세그먼트에 저장되고, 제2 데이터는 메시지에 대한 각각의 데이터 영역에서 데이터 세그먼트에 저장된다. 메시지 메모리를 헤드 세그먼트와 데이터 세그먼트로 분할하고, 데이터 세그먼트 내에 필요한 데이터 영역의 수와 크기를 제공하는 점은, 메시지 메모리의 구성의 범주에서 요건에 상응하게 가변적으로 이루어진다. 그로 인해 다양한 장점이 제공된다: 그러므로 사용자는 프로그래밍 시에 작은 데이터 필드를 포함하는 더욱 많은 수의 메시지를 이용해야 할지 여부, 혹은 큰 데이터 필드를 포함하는 더욱 적은 수의 메시지를 이용해야 할지 여부를 결정할 수 있다. 상이한 크기의 데이터 영역을 포함하는 메시지를 구성할 시에, 기존의 메모리는 최적으로 활용된다. 사용자는 상이한 메시지들에 대해 공동으로 데이터 영역을 사용할 수 있다. 직접 회로에서 통신 컨트롤러, 다시 말해 통신 모듈을 구현할 시에, 통신 컨트롤러 혹은 통신 모듈의 그외 기능들을 변경하지 않고도, 메시지 메모리의 크기는 애플리케이션의 필요에 대해 사용하는 메모리, 특히 RAM 메모리의 메모리 깊이를 부합하게 적응시킴으로써 정확하게 적응될 수 있다.
메시지 메모리의 구성은 단지 헤드 세그먼트를 통해서만 이루어진다. 헤드 영역에서는, 메시지에 대해, 메시지가 전송(수신 혹은 송신)되어야 하는 채널, 주기 및 시간 슬롯이 결정된다. 그 외에도 각각의 메시지에 대한 구성의 범주에서, 메시지 메모리의 데이터 세그먼트 내 데이터 부분의 크기, 데이터 부분의 시작을 지시하는 포인터, 그리고 그 메시지가 송신될 메시지인지 혹은 수신될 메시지인지를 알려주는 정보가 결정된다.
본 발명의 추가 구현예에 따라, 메시지 메모리의 헤드 영역에 메시지별로 식별 문자가 저장된다. 이 식별 문자는 각각의 메시지를 식별 표시하며, 그리고 그 식별 문자를 통해서 메시지는 주기 내부에서 소정의 통신 주기 및 소정의 시간 윈도우에 할당될 수 있다. 식별 문자가 저장되는 헤드 영역의 부분은 식별 필드로서도 지칭된다.
바람직하게는 검색 실행 동안 고려되고 복수의 후행하는 시간 윈도우 중 어느 한 시간 윈도우에서 송신 내지 수신될 메시지 각각에 대해, 버퍼 내에는 2개의 필드가 제공되며, 제1 필드에서는 메시지 메모리에 저장된 메시지의 대응하는 위치를 지시하는 포인터가 저장되며, 그리고 제2 필드에서는 메시지 메모리에 저장된 메시지의 상태가 저장된다. 포인터는 바람직하게는, 메시지 메모리에 저장된 메시지에 있어 헤드 세그먼트 내의 헤드 영역에 저장된 그의 제1 데이터를 지시한다.
메시지 메모리에 저장된 메시지의 상태로서, 버퍼에는 바람직하게는 고려되는 시간 윈도우를 위해 주로 메시지가 수신 내지 송신될 지의 여부('empty') 및/또는 메시지가 송신('tx_buf') 또는 수신('rx_buf')될 지의 여부를 알려주는 정보가 저장된다. 메시지가 송신 및 수신되지 않는 경우라면, 상태는 'empty'로 설정된다.
플렉스레이 통신 시스템을 실현하기 위해 현재 적용되는 플렉스레이 사양 v2.1과 현재 가용한 하드웨어 및 소프트웨어 컴포넌트의 경우, 특히 바람직하게는 메시지 메모리 내에서 메시지들의 위치들을 결정하기 위해, 메시지 메모리는 각각 4개의 후행하는 시간 윈도우를 위해 정기적인 간격으로 선행되어 검색되며, 그리고 검색 실행의 결과로서 4개의 후행하는 시간 윈도우를 위해 송신 내지 수신될 메시지들의 위치들이 버퍼에 저장된다. 자명한 사실로서, 검색은 단지 2개의 시간 슬롯을 위해 선행되어 실행되거나, 혹은 4개 이상의 시간 슬롯을 위해 선행되어 실행될 수 있다. 바람직하게는 검색이 선행되어 실행되는 목적이 되는 시간 슬롯의 수는 수 2x에 따른 수이되, x는 1 이상의 완전 자연수이다. 그러므로 시간 슬롯의 수에 대해 바람직하게는 2, 4, 8, 16, 32, ...가 제공된다.
본 발명의 바람직한 실시예에 따라, 검색 실행의 범주에서, 메시지 메모리는 복수의 후행하는 시간 윈도우를 위해 다음의 기준 중 하나 혹은 그 이상에 따라 검색된다.
- 메시지 메모리 내에, 고려되는 전송 채널을 위한 메시지를 저장할 지의 여부 결정,
- 메시지 메모리 내에, 고려되는 통신 주기를 위한 메시지를 저장할 지의 여부 결정,
- 메시지 메모리 내에 복수의 후행하는 시간 윈도우를 위한 메시지를 저장할 지의 여부 결정, 그리고
- 결정된 메시지가 송신 혹은 수신될 메시지인지 여부 결정.
실제 고려되는 채널(채널 A 또는 채널 B)을 위해, 실제 통신 주기를 위해, 그리고 고려되는 향후 시간 슬롯을 위해 메시지 메모리 내에서 이루어지는 검색 실행의 범주에서, 송신될 메시지가 검색되는 경우라면, 버퍼 내에서 고려되는 시간 슬롯에 대응하는 위치에 'Tx_buf'가 저장된다. 실제 고려되는 채널(채널 A 또는 채널 B)을 위해, 실제 통신 주기를 위해, 그리고 고려되는 향후 시간 슬롯을 위해 메시지 메모리 내에서 이루어지는 검색 실행의 범주에서, 수신될 메시지에 대한 데이터 필드가 검색되는 경우라면, 버퍼 내에서 고려되는 시간 슬롯에 대응하는 위치에 'Rx_buf'가 저장된다. 실제 고려되는 채널(채널 A 혹은 채널 B)을 위해, 실제 통신 주기를 위해, 그리고 고려되는 향후 시간 슬롯을 위해, 메시지 메모리 내에서 이루어지는 검색 실행의 범주에서, 송신될 메시지나, 또는 수신될 메시지에 대한 데이터 필드 어느 것도 검색되지 않는 경우라면, 버퍼 내에서 고려되는 시간 슬롯에 대응하는 위치에는, 이미 검색 실행을 개시하기 전에 그 위치에 저장되어 있지 않다고 할 때, 'empty'가 저장된다.
검색 실행의 범주에서, 메시지 메모리에 저장된 메시지들과 관련하여 다음에서 명시되는 정보들이 질의 된다.
- CH A, CH B: 메시지가 제공되는 목적에 해당하는 채널이 고려되는 채널에 상응하는 지의 여부를 확인하기 위해,
- Cycle Code: 메시지가 제공되는 목적에 해당하는 통신 주기가 고려되는 통신 주기에 상응하는 지의 여부를 확인하기 위해,
- Frame ID: 메시지가 제공되는 목적에 해당하는 시간 슬롯이 실제 시간 슬롯에 상응하는 지의 여부를 확인하기 위해, 그리고
- TXM(전송 모드): 송신(TXM=1)하기 위한, 혹은 수신(TXM=0)하기 위한 메시지가 제공되는 지의 여부를 확인하기 위해.
질문될 정보들은 바람직하게는 공동의 상태 비트(CH A, CH B, Cycle Code, TXM)로 제1 데이터의 부분으로서 메시지 메모리의 헤드 세그먼트 내의 헤드 영역에 포함된다.
본 발명의 목적을 달성하기 위한 추가 해결 방법으로서, 최초에 언급한 유형의 통신 모듈로부터 출발하여 제안되는 점에 따라, 메시지 메모리 내에서 메시지들의 위치들을 결정하기 위한 통신 모듈은 각각 복수의 후행하는 시간 윈도우를 위해 정기적인 간격으로 선행하여 메시지 메모리를 검색하기 위한 수단, 메시지 메모리에 할당된 버퍼, 그리고 검색 실행의 결과로서 버퍼 내에 복수의 후행하는 시간 윈도우에서 송신 내지 수신될 메시지들의 위치들을 저장하기 위한 수단을 포함한다.
본 발명의 바람직한 개선 실시예에 따라 제안되는 점에서, 메시지 메모리를 검색하기 위한 수단과 버퍼 내에 결정된 메시지들의 위치들을 저장하기 위한 수단은 자동 상태 머신으로서 형성된다.
본 발명의 바람직한 실시예에 따라 제안되는 점에서, 통신 모듈은 플렉스레이 사양에 따라 전송된 메시지들을 수신, 송신 및 임시 저장하기 위한 플렉스레이 통신 모듈로서 형성된다.
바람직하게는 메시지 메모리를 검색하기 위한 수단과 버퍼에 결정된 메시지들의 위치들을 저장하기 위한 수단은 청구항 제2항 내지 제12항 중 어느 한 항에 따르는 방법을 실행할 수 있는 형태로 형성된다.
본 발명의 목적을 달성하기 위한 추가 해결 방법으로서, 최초에 언급한 유형의 통신 시스템의 서브스크라이버로부터 출발하여 제안되는 점에 따라, 메시지 메모리 내에 메시지들의 위치들을 결정하기 위한 통신 모듈은 각각 복수의 후행하는 시간 윈도우를 위해 정기적인 간격으로 선행하여 메시지 메모리를 검색하기 위한 수단, 메시지 메모리에 할당된 버퍼, 그리고 검색 실행의 결과로서 버퍼에 복수의 후행하는 시간 윈도우에서 송신 내지 수신될 메시지들의 위치들을 저장하기 위한 수단을 포함한다.
본 발명의 바람직한 개선 실시예에 따라 제안되는 점에서, 서브스크라이버는 호스트 컴퓨터를 포함하며, 이 호스트 컴퓨터는 통신 모듈과 함께 공동의 반도체 장치에 통합된다. 호스트 컴퓨터는 바람직하게는 마이크로프로세서로서 형성된다.
본 발명의 바람직한 실시예에 따라 제안되는 점에서, 통신 모듈은 청구항 제14항 내지 제16항 중 어느 한 항에 따라 형성된다.
마지막으로 본 발명의 목적을 달성하기 위한 추가 해결 방법으로서 최초에 언급한 유형의 통신 시스템으로부터 출발하여 제안되는 점에 따라, 메시지 메모리 내에 메시지들의 위치들을 결정하기 위한 통신 모듈은 각각 복수의 후행하는 시간 윈도우를 위해 정기적인 간격으로 선행하여 메시지 메모리를 검색하기 위한 수단, 메시지 메모리에 할당된 버퍼, 그리고 검색 실행의 결과로서 버퍼에 복수의 후행하는 시간 윈도우에서 송신 내지 수신될 메시지들의 위치들을 저장하기 위한 수단을 포함한다.
본 발명의 바람직한 개선 실시예에 따라 제안되는 점에서, 통신 모듈은 청구항 제14항 내지 제16항 중 어느 한 항에 따라 형성된다.
본 발명의 추가의 장점 및 그 바람직한 구현예들은 청구항들의 특징부와 도면 그리고 실시예 설명으로부터 제시된다.
도1은 통신 모듈과 통신 링크 및 서브스크라이버에 대한 그 통신 모듈의 접속을 도시한 개략도이다.
도2는 도1에 따른 통신 모듈의 특별 실시예와 그 접속을 도시한 상세도이다.
도3은 도1 혹은 도2에 따른 통신 모듈의 메시지 메모리의 구조를 도시한 상세도이다.
도4 내지 도6은 서브스크라이버에서 메시지 메모리 방향으로 이루어지는 데이터 접근의 아키텍처 및 그 프로세스를 도시한 개략도이다.
도7 내지 도9는 메시지 메모리로부터 서브스크라이버 방향으로 이루어지는 데이터 접근의 아키텍처 및 그 프로세스를 도시한 개략도이다.
도10은 도1 또는 도2에 따르는 통신 모듈의 메시지 관리자와 그 내부에 포함된 자동 상태 머신을 도시한 개략도이다.
도11은 통신 모듈의 몇몇 구조 부재, 서브스크라이버, 그리고 메시지 관리자에 의해 제어되는 대응하는 데이터 경로를 도시한 개략도이다.
도12는 도11에 따른 데이터 경로와 관련한 접근 분포를 도시한 개략도이다.
도13은 본 발명에 따른 통신 모듈의 버퍼를 도시한 개략도이다.
도14은 본 발명에 따른 데이터 전송 방법의 범주에서 실행하기 위한 검색 방법을 도시한 흐름도이다.
도15는 바람직한 실시예에 따른 본원의 데이터 전송 방법을 도시한 흐름도이다.
도1은 플렉스레이 통신 링크(101)에, 다시 말해 플렉스레이 통신 시스템의 물리적 계층에 서브스크라이버 혹은 호스트(102)를 연결하기 위한 플렉스레이 통신 모듈(100)을 개략적으로 도시하고 있다. 통신 모듈(100)은 또한 플렉스레이 IP 모듈 또는 E 레이 컨트롤러로서 지칭된다. 기능적으로 볼 때, 통신 모듈(100)은 플렉스레이 통신 컨트롤러를 포함한다. 플렉스레이 통신 모듈(100)은 연결부(107)를 통해 서브스크라이버 내지 서브스크라이버 프로세서(102)(호스트 프로세서)와 연결되며, 그리고 연결부(106)를 통해서는 통신 링크(101)와 연결된다. 일측에서는 전송 시간과 관련하고, 타측에서는 데이터 무결성(data integrity)과 관련하여 완벽한 연결을 위해, 개략적으로 플렉스레이 통신 모듈(100) 내에서는 본질적으로 3개의 배열부로 구분된다.
이때 제1 배열부(105)가 전송될 메시지들, 다시 말해 서브스크라이버(102)에 의해 송신 또는 수신될 메시지들의 적어도 일 부분을 저장, 특히 임시 저장하는 역할을 한다. 서브스크라이버(102)와 상기한 제1 배열부(105) 사이에는 연결부들(107, 108)을 통해 제2 배열부(104)가 연결된다. 마찬가지로 통신 링크(101)와 제1 배열부(105) 사이에는 연결부들(106, 109)을 통해 제3 배열부(103)가 연결되며, 그럼으로써 최적의 속도 조건에서 데이터 무결성이 보장되면서 제1 배열부 내로 그리고 그 외부로 메시지, 특히 플렉스레이 메시지의 부분으로서 데이터가 매우 유연하게 입력되고 출력될 수 있다.
도2에는 바람직한 실시예에 따라 통신 모듈(100)이 약간 상세하게 도시되어 있다. 마찬가지로 각각의 연결부(106 내지 109)도 도시되어 있다. 이때 제2 배열부(104)는 입력 버퍼(201)(Input Buffer IBF); 출력 버퍼(202)(Output Buffer OBF);뿐 아니라 2개의 부분(203, 204)으로 구성된 인터페이스 모듈;을 포함하며, 일측의 부분 모듈(203)(범용 CPU 인터페이스, GIF)은 서브스크라이버에 종속되는 모듈이며, 제2 부분 모듈(204)은 서브스크라이버 고유의 모듈이다. 서브스크라이버 고유의 부분 모듈(고객 CPU 인터페이스 CIF)은 서브스크라이버 고유의 호스트 CPU(102)를, 다시 말해 고객 고유의 서브스크라이버를 나머지 플렉스레이 통신 모듈(100)과 연결시킨다. 이를 위해, 양방향성 데이터 라인(216), 주소 라인(217), 및 제어 입력 장치(218)가 제공된다. 마찬가지로 219로 표시되는 인터럽트 혹은 중단 출력 장치도 제공된다.
서브스크라이버 고유의 부분 모듈(204)은 서브스크라이버에 종속되는 부분 모듈(201)과 연결되는데, 다시 말해 플렉스레이 통신 모듈(100)은 범용의, 다시 말해 일반적인 CPU 인터페이스를 이용한다. 이 범용 CPU 인터페이스에는 대응하는 서브스크라이버 고유의 부분 모듈(204)을 통해, 다시 말해 고객 CPU 인터페이스(CIF)를 통해 많은 수의 다양한 고객 고유의 호스트 CPU들이 연결된다. 그렇게 함으로써 서브스크라이버에 따라 단지 서브스크라이버 고유의 부분 모듈(204)만이 변경되기만 하면 되고, 그와 반대로 나머지 통신 모듈(100)은 서브스크라이버에 종속되는 방식으로 항시 동일하게 형성될 수 있다. 이는 분명히 더욱 낮은 비용의 소요를 의미한다. 서브스크라이버 고유의 부분 모듈(204)은 예컨대 플렉스레이 통신 모듈(100)의 비트 폭(예: 16비트)을 연결된 호스트 CPU(102)의 비트 폭(예: 8, 16 또는 32비트)에 부합하게 적응시킨다.
입력 버퍼(201)와 출력 버퍼(202)는 공동의 메모리 모듈에, 혹은 분리된 메모리 모듈에 형성될 수 있다. 이때 입력 버퍼(201)는 호스트 CPU(102)로부터 메시지 메모리(300)로의 전송을 위한 메시지를 임시 저장하는 역할을 한다. 입력 버퍼(201)는 바람직하게는 특히 구성 데이터를 포함하여 각각 헤드 세그먼트 혹은 헤더 세그먼트(HS)로 이루어진 2개의 완전한 메시지와 데이터 세그먼트(DS) 혹은 페이로드 세그먼트를 저장할 수 있는 방식으로 형성된다. 이때 입력 버퍼(201)는 2개의 부분(부분 버퍼와 섀도우 메모리)으로 형성되며, 그럼으로써 입력 버퍼(201)의 두 부분에 교호적으로 기록함으로써, 또는 접근 전환을 통해, 서브스크라이버 CPU(102)와 메시지 메모리(300) 사이의 전송이 가속화된다.
마찬가지로 출력 버퍼(Output Buffer OBF)(202)는 메시지 메모리(300)로부터 서브스크라이버 CPU(102)로의 전송을 위해 메시지를 임시 저장하는 역할을 한다. 이때 출력 버퍼(202)는 특히 구성 데이터를 포함하여 헤드 세그먼트(HS)로 구성되는 2개의 완전한 메시지와 데이터 세그먼트(DS), 다시 말해 페이로드 세그먼트가 저장될 수 있는 방식으로 형성된다. 이 경우에도, 출력 버퍼(202)는 2개의 부분, 즉 부분 버퍼와 섀도우 메모리로 분할되며, 그럼으로써 여기서도 출력 버퍼(202)의 두 부분에 대해 교호적으로 판독하거나, 또는 접근 전환을 통해 메시지 메모리(300)와 서브스크라이버 내지 호스트 CPU(102) 사이의 전송이 가속화된다. 블록들(201 내지 204)로 구성되는 제2 배열부(104)는 도시한 바와 같이 제1 배열부(105)와 연결된다.
배열부(105)는 메시지 관리자(200)(메시지 핸들러 MHD)와 메시지 메모리(300)(메시지 RAM)로 구성된다. 메시지 관리자(200)는 입력 버퍼(201) 및 출력 버퍼(202)와 메시지 메모리(300) 사이의 데이터 전송을 관리 내지 제어한다. 그와 동일하게 메시지 관리자는 제3 배열부(103)를 통해 다른 방향으로 향하는 데이터 전송 역시 관리 내지 제어한다. 메시지 메모리(300)는 바람직하게는 단일 포트의 RAM으로서 구현된다. 이와 같은 RAM 메모리는 메시지 내지 메시지 객체를, 다시 말해 구성 및 상태 데이터와 함께 본질적인 데이터를 저장한다. 메시지 메모리(300)의 정확한 구조는 도3에 더욱 상세하게 도시되어 있다. 각각의 메시지 객체는 헤드 세그먼트(HS)와 데이터 세그먼트(DS)로 구성된다. 헤드 영역(HS)에는 식별 필드뿐 아니라 추가의 구성 및 상태 정보(KD)가 메시지 메모리(300)의 데이터 세그먼트(DS) 내의 데이터 영역의 시작을 지시하는 포인터(DP)와 함께 저장된다.
제3 배열부(103)는 블록들(205 내지 208)로 구성된다. 물리적 계층(플렉스레이 Physical Layer)의 두 채널 A(CH A) 및 B(CH B)에 상응하게, 상기한 배열부(103)는 각각 2개의 데이터 방향을 갖는 2개의 데이터 경로로 분할된다. 이는 연결부들(213, 214)을 통해 분명하게 알 수 있다. 이와 관련하여 두 데이터 방향 은 채널 A에 대해서는 수신용 RxA와 송신용 TxA로 도시되어 있으며, 그리고 채널 B에 대해서는 RxB 및 TxB로 도시되어 있다. 연결부(215)를 이용하여 선택적인 양방향성 제어 입력부가 표시된다. 제3 배열부(103)의 연결은 채널 B에 대해서는 제1 버퍼(205)를 통해, 그리고 채널 A에 대해서는 제2 버퍼(206)를 통해 이루어진다. 이와 같은 두 버퍼(과도 버퍼 RAM: RAM A와 RAM B)는 제1 배열부(105)로부터 또는 그 제1 배열부로 데이터를 전송하기 위한 버퍼로서 이용된다. 두 채널(A, B)에 상응하게, 상기한 두 버퍼(205, 206)는 각각 인터페이스 모듈(207, 208)과 연결된다. 이 인터페이스 모듈들은 송신/수신 시프트 레지스터와 플렉스레이 프로토콜 유한 상태 머신으로 구성되는 플렉스레이 프로토콜 컨트롤러 혹은 버스 프로토콜 컨트롤러를 포함한다. 그러므로 두 버퍼(205, 206)는 인터페이스 모듈들의 시프트 레지스터 혹은 플렉스레이 프로토콜 컨트롤러(207, 208)와 메시지 메모리(300) 사이의 데이터 전송을 위한 버퍼로서 이용된다. 이 경우에도 바람직하게는 각각의 버퍼(205, 206)를 통해, 두 플렉스레이 메시지의 데이터 필드, 다시 말해 페이로드 세그먼트 혹은 데이터 세그먼트(DS)가 저장된다.
또한, 통신 모듈(100) 내에는 209로 표시되는 전역 시간 단위(Global Time Unit GTU)가 도시되어 있다. 이 전역 시간 단위는 플렉스레이 내의 시간 그리드의 도식에, 다시 말해 미크로틱(μT)과 매크로틱(MT)에 관련한다. 마찬가지로 전역 시간 단위(209)를 통해, 주기 카운터(Cycle Counter)의 무정지형 시각 동기화;와 플렉스레이의 정적 및 동적 세그먼트에서의 시간 순차적 흐름의 관리;가 제어된다. 통신 시스템의 서브스크라이버(102)는 전역 시간에 동기화되는 자체 로컬 시각을 이용한다. 시각 동기화를 위해, 동기화 메시지들은 통신 주기의 정적 부분에서 전송된다. 시각 동기화는 각각의 통신 주기가 종료될 때 이른바 네트워크 유휴 시간(NIT) 동안 이루어진다. 실제 플렉스레이 사양에 상응하는 특별 알고리즘을 이용하여, 컴포넌트들(102)의 로컬 시각은, 모든 로컬 시각이 전역 시각에 동기화되어 진행하는 방식으로 수정된다.
블록(210)으로는 일반적인 시스템 제어 장치(시스템 범용 제어 장치 SUC)가 표시되어 있다. 이 제어 장치를 통해, 플렉스레이 통신 컨트롤러 내지 통신 모듈(100)의 연산 모드가 관리 및 제어된다. 여기에 포함되는 것으로, 웨이크업(Wakeup), 스타트업(Startup), 재통합 내지 통합, 정상 연산(normal operation) 및 패시브 연산(passive operation)이 있다. 블록(211)은 플렉스레이 프로토콜 사양 v2.1에 기술된 바와 같이 네트워크와 오류 관리 장치(Network & Error Management NEM)를 나타낸다. 마지막으로 블록(212)은 인터럽트 제어 장치(Interrupt Control INT)를 나타낸다. 이 인터럽트 제어장치는 상태 및 오류 인터럽트 플래그(Status & Error Interrupt Flags)를 관리하면서, 서브스크라이버 CPU(102)로 향하는 인터럽트 출력 장치(219)를 관리 내지 제어한다. 그 외에도 블록(212)은 시간 인터럽트 혹은 타이머 인터럽트를 생성하기 위한 절대 및 상대적인 타이머 내지 타이밍 회로를 포함한다.
플렉스레이 네트워크 또는 플렉스레이 통신 시스템 내에서의 통신을 위해, 메시지 버퍼(300) 내에서 메시지 객체 내지 메시지들은 최대 254 데이터 바이트를 포함하여 구성될 수 있다. 메시지 메모리(300)는 특히 메시지 RAM 메모리(메시지 RAM)로, 이는 예컨대 최대 64개의 메시지 객체를 저장할 수 있다. 메시지 자체의 처리 내지 관리에 관계하는 모든 기능들은 메시지 관리자 혹은 메시지 핸들러(200) 내에서 구현된다. 이 기능들은 예컨대 수용 필터링(accept filtering), 즉 두 플렉스레이 프로토콜 컨트롤러 블록들(207, 208)과 메시지 메모리(300), 즉 메시지 RAM 사이의 메시지 전송일뿐 아니라, 송신 시퀀스의 관리이며, 구성 데이터 내지 상태 데이터의 제공이다.
외부 CPU, 다시 말해 서브스크라이버 프로세서 또는 호스트(102)의 외부 프로세서는, 서브스크라이버 고유의 부분(204)을 포함하는 서브스크라이버 인터페이스를 통해 플렉스레이 통신 모듈의 레지스터에 직접 접근할 수 있다. 이때 복수의 레지스터가 이용된다. 이런 레지스터들은, 플렉스레이 프로토콜 컨트롤러, 다시 말해 인터페이스 모듈들(207, 208), 메시지 관리자(Message Handler MHD)(200), 전역 시간 단위(Global Time Unit GTU)(209), 범용 시스템 컨트롤러(System Universal Controller SUC)(210), 네트워크 및 오류 관리 유닛(Network & Error Management Unit NEM)(211), 인터럽트 컨트롤러(Interrupt Controller INT)(212)뿐만 아니라 메시지 RAM, 다시 말해 메시지 메모리(300)에 대한 접근을 구성하고 제어하기 위해, 그리고 마찬가지로 대응하는 상태를 표시하기 위해 이용된다. 최소한 상기한 레지스터의 부분들에 대해서는 도4 내지 도6과 도7 내지 도9에 따라 더욱 상세하게 설명된다. 상기와 같이 기술되는 본 발명에 따른 플렉스레이 통신 모듈(100)은 플렉스레이 사양 v2.1의 용이한 변경을 가능케 하며, 그럼으로써 용이하게 대응하는 플렉스레이 기능성을 갖는 ASIC 혹은 마이크로컨트롤러가 생성될 수 있다.
도3에 따라서는, 메시지 메모리(300)의 분할이 상세하게 설명된다. 플렉스레이 사양에 따라 요구되는 플렉스레이 통신 컨트롤러의 기능성을 위해, 송신될 메시지(Transmit Buffer)를 제공할 뿐만 아니라 완벽하게 수신되는 메시지(Receive Buffer)를 저장하기 위한 메시지 메모리(300)가 요구된다. 플렉스레이 프로토콜은 0 내지 254 바이트의 데이터 영역, 다시 말해 페이로드 영역을 포함하는 메시지를 허용한다. 도2에 도시한 바와 같이, 메시지 메모리(300)는 플렉스레이 통신 모듈(100)의 부분이다. 다음에서 기술되는 방법 및 그에 대응하는 메시지 메모리(300)는 특히 랜덤 액세스 메모리(RAM)의 이용하에 송신될 메시지 및 수신된 메시지를 저장하는 것에 관련한다. 이와 관련하여, 본 발명에 따른 메커니즘을 통해, 메시지 메모리(300) 내에 사전 지정된 크기로 가변적인 수의 메시지를 저장할 수 있다. 이때 저장 가능한 메시지의 수는 개별 메시지의 데이터 영역의 크기에 따르며, 그럼으로써 일측에서는 메시지의 데이터 영역의 크기를 제한하지 않으면서 필요한 메모리(300)의 크기가 최소화될 수 있으며, 그리고 타측에서는 메모리(300)의 최적화된 활용이 이루어진다. 다음에서는 플렉스레이 통신 컨트롤러용으로 이용되는, 특히 RAM을 기반으로 하는 메시지 메모리(300)의 분할에 대해 더욱 상세하게 설명된다.
구현을 위해, 실시예에 따라, n개 비트, 예컨대 8, 16, 32등의 결정된 단어 폭과 m개 단어의 사전 지정된 메모리 깊이를 갖는 메시지 메모리(300)가 사전 지정된다(m, n: 자연수). 이때 메시지 메모리(300)는 2개의 세그먼트, 즉 헤더 세그먼 트(HS)(헤드 세그먼트)와 데이터 세그먼트(DS)(페이로드 섹션, 페이로드 세그먼트)로 분할된다. 메시지별로 헤더 영역(HB)과 데이터 영역(DB)이 작성된다. 그러므로 메시지 0, 1 내지 k(k: 자연수)에 대해, 헤더 영역 또는 헤드 영역(HB0, HB1 내지 HBk)와 데이터 영역(DB0, DB1 내지 DBk)이 작성된다. 다시 말해 메시지에서 제1 및 제2 데이터 간에 구분이 이루어지며, 제1 데이터는 플렉스레이 메시지와 관련하는 구성 데이터 및/또는 상태 데이터에 부합하며, 그리고 각각 헤더 영역(HB)(HB0, HB1, ..., HBk)에 작성된다. 제2 데이터는 전송되어야 하는 본질적인 데이터(이른바 유효 데이터)에 해당하며, 그에 상응하게 데이터 영역(DB)(DB0, DB1, ..., DBk)에 저장된다. 그러므로 메시지에 대한 제1 데이터의 경우, 제1 데이터 볼륨(비트, 바이트 혹은 메모리 단어로 측정됨)과 메시지의 제2 데이터에 대해 제2 데이터 볼륨(마찬가지로 비트, 바이트 혹은 메모리 단어로 측정됨)이 생성되며, 메시지에 대한 제2 데이터 볼륨은 상이할 수 있다. 메시지 메모리(300) 내에서 헤드 세그먼트(HS)와 데이터 세그먼트(DS) 사이의 분할은 가변적이다. 다시 말해 두 영역(HS, DS) 간에 사전 지정된 경계는 존재하지 않는다. 헤드 세그먼트(HS)와 데이터 세그먼트(DS) 사이의 분할은, 본 발명에 따라 메시지의 수(k);와 메시지 내지 모든 k개의 메시지의 제2 데이터 볼륨, 즉 본질적인 유효 데이터;에 따라 달라진다.
본 발명에 따라, 각각의 메시지의 구성 데이터들(KD0, KD1 내지 KDk)에는 포인터 요소 혹은 데이터 포인터(DP0, DP1 내지 DPk)가 각각 직접적으로 할당된다. 특별한 구현예에 따라, 각각의 헤드 영역(HB0, HB1 내지 HBk)에는 고정된 수의 메 모리 단어, 여기서는 2개의 메모리 단어가 할당되며, 그럼으로써 항시 구성 데이터(KD)(KD0, KD1, ..., KDk)와 포인터 요소(DP)(DP0, DP1, ..., DPk)가 함께 헤더 영역(HB)(HB0, HB1, ..., HBk)에 저장된다. 헤더 영역들(HB)을 포함하는 헤드 세그먼트(HS)로서, 그 크기 내지 제1 데이터 볼륨이 저장될 메시지의 수(k)에 따르는 상기한 헤드 세그먼트에는, 본질적인 메시지 데이터(D0, D1 내지 Dk)를 저장하기 위한 데이터 세그먼트(DS)가 연결된다. 이 데이터 세그먼트(혹은 데이터 섹션)(DS)는 자체 데이터 볼륨이 저장된 메시지 데이터(유효 데이터)의 각각의 데이터 볼륨에 따르며, 본 실시예에서, 예컨대 DB0에서는 6개의 단어이며, DB1에서는 1개의 단어, 그리고 DBk에서는 2개의 단어이다. 그러므로 각각의 포인터 요소(DP0, DP1 내지 DPk)는 항시 각각의 메시지(0, 1 내지 k)의 데이터(D0, D1 내지 Dk)가 저장되어 있는 각각의 데이터 영역(DB0, DB1 내지 DBk)의 개시 시점, 다시 말해 그 시작 주소를 지시한다. 그로 인해 헤드 세그먼트(HS)와 데이터 세그먼트(DS) 사이의 메시지 메모리(300)의 분할은 가변적이며, 그리고 메시지 자체의 수와 메시지의 각각의 데이터 볼륨, 그에 따라 전제 제2 데이터 볼륨에 따라 달라진다. 만일 보다 적은 메시지가 구성된다면, 헤드 세그먼트(HS)는 더욱 작아지고, 메시지 메모리(300) 내에서 자유로워진 영역은 데이터 세그먼트(DS)에 대한 추가 부분으로서 데이터를 저장하기 위해 이용될 수 있다. 이와 같은 가변성을 통해, 최적의 메모리 활용이 보장될 수 있으며, 그에 따라 더욱 작은 메모리(300)의 이용도 가능해 진다. 그러므로 마찬가지로 저장된 메시지의 수(k)와 메시지의 각각의 제2 데이터 볼륨으로 이루어진 조합에 따르는 자유로운 데이터 세그먼트(FDS), 특히 그 크기는 최소화되고, 심지어 0이 될 수도 있다.
그로 인해, 메시지 메모리(300)의 고정된 분할과 비교하여, 다음과 같은 장점들이 제공된다: 사용자는 프로그래밍 시에, 작은 데이터 필드를 포함하는 더욱 많은 수의 메시지를 이용해야 할지, 혹은 큰 데이터 필드를 포함하는 더욱 적은 수의 메시지를 이용해야 할지 여부를 결정할 수 있다. 상이한 크기의 데이터 영역(DB)을 포함하는 메시지들을 구성할 시에, 기존의 저장 공간은 최적으로 활용된다. 사용자는 상이한 메시지들을 위해 공동으로 데이터 메모리 영역을 사용할 수 있다.
또한, 포인터 요소들(DP0, DP1, ..., DPk)의 사용과 함께, 제1 및 제2 데이터를, 다시 말해 구성 데이터(KD)(KD0, KD1, ..., KDk)와 본질적인 데이터(D)(D= D0, ..., Dk)를 사전 지정된 순서로 저장할 수 있으며, 그럼으로써 헤드 세그먼트(H) 내의 헤드 영역(HB0 내지 HBk)의 순서와 데이터 세그먼트(DS) 내의 데이터 영역(DB0 내지 DBk)의 순서는 각각 동일하게 된다. 그런 다음 상황에 따라 포인터 요소를 배제시킬 수도 있다. 그러나 이런 경우 개별 데이터 영역들(DB0 내지 DBk)의 길이에 대한 정보에 접근할 수 있어야 하거나, 또는 데이터 영역들(DB0 내지 DBk)의 크기가 모두 동일해야 한다.
특별한 구현예에 따라, 메모리 단어별로, 혹은 영역(헤드 영역(HB) 및/또는 데이터 영역(DB))별로 검사 합계(Check Sum)가 적합하게 특히 패리티 비트로서 함께 저장될 수 있도록 하면서, 헤드 세그먼트(HS)와 데이터 세그먼트(DS)에 저장된 데이터의 정확성을 보장하기 위해, 메시지 메모리(300)에는 오류 검출 생성기, 특 히 패리티 비트 생성기 엘리먼트와 오류 검출 검사기, 특히 패리티 비트 검사 엘리먼트가 할당된다. 또 다른 점검 코드, 예컨대 CRC(주기 중복성 점검), 또는 ECC(에러 코드 수정)와 같이 더욱 높은 능력을 갖는 검출도 생각해 볼 수 있다.
집적 회로에서 플렉스레이 통신 컨트롤러를 구현할 시에, 통신 컨트롤러의 기타 기능을 변경하지 않고도, 메시지 메모리(300)의 크기는 애플리케이션의 요건에 사용되는 메모리의 메모리 깊이를 적응시킴으로써 부합하게 적응될 수 있다.
계속해서, 도4 내지 도6 및 도7 내지 도9에 따라, 호스트 CPU 접근, 다시 말해 버퍼 배열부(201, 202)를 통한 구성 데이터 내지 상태 데이터 및 본질적인 유효 데이터의 기록 및 판독에 대해 설명된다. 이와 관련한 목표는, 데이터 무결성이 보장될 수 있고, 동시에 높은 전송 속도가 보장되는 방식으로, 데이터 전송과 관련하여 분리를 제공하는 것에 있다. 상기한 과정의 제어는 메시지 관리자(200)를 통해 이루어지며, 이에 대해서는 이후에 도10, 도11 및 도12에 따라 더욱 상세하게 설명된다. 도4, 도5 및 도6에 따라서는 우선 입력 버퍼(201)를 통해 호스트 CPU 혹은 서브스크라이버 CPU(102)에 의해 이루어지는 메시지 메모리(300)에 대한 기록 접근이 더욱 상세하게 설명된다. 이와 관련하여, 도4에는 재차 통신 모듈(100)이 도시되어 있되, 개략적인 도시를 근거로 통신 모듈(100) 중에 여기에 관련된 부분들만이 도시되어 있다. 그에 따라 흐름 제어를 담당하는 메시지 관리자(200)와 2개의 제어 레지스터(403, 404)가 도시되어 있다. 이들 제어 레지스터들은 통신 모듈(100) 내에서 메시지 관리자(200) 외부에 배치될 수 있지만, 그 외에 메시지 관리자(200) 자체 내부에도 포함될 수 있다. 이때 도면 부호 403은 입력 요청 레지 스터(Input Buffer Command Request Register)를 나타내며, 그리고 404는 입력 마스크 레지스터(Input Buffer Command Mask Register)를 나타낸다. 다시 말해 메시지 메모리(300)(메시지 RAM)에 대한 호스트 CPU(102)의 기록 접근은 중간에 연결된 입력 버퍼(201)(Input Buffer)를 통해 이루어진다. 이런 입력 버퍼(201)는 분할되거나 2배로 설계되는데, 더욱 정확하게 말하면 부분 버퍼(400)와 이 부분 버퍼(400)에 소속되는 섀도우 메모리(401)로서 설계된다. 그로 인해 다음에서 설명되는 바와 같이, 메시지 메모리(300)의 메시지 내지 메시지 객체와 데이터 각각에 대한 호스트 CPU(102)의 연속적인 접근이 이루어질 수 있으며, 그에 따라 데이터 무결성과 가속화된 전송이 보장될 수 있다. 접근의 제어는 입력 요청 레지스터(403)와 입력 마스크 레지스터(404)를 통해 이루어진다. 레지스터(403) 내에는, 0 내지 31의 숫자로, 여기서는 예컨대 32비트의 폭에 대해, 레지스터(403) 내의 각각의 비트 위치가 표시된다. 이와 동일한 사항은 레지스터(404)와 이 레지스터(404) 내의 비트 위치(0 내지 31)에 대해서는 적용된다.
본 발명의 실시예에 따라, 레지스터(403)의 비트 위치 0 내지 5, 15, 16 내지 21, 그리고 31은 흐름 제어와 관련하여 특별한 기능을 갖는다. 그러므로 레지스터(403)의 비트 위치 0 내지 5에는 메시지 식별 문자로서 식별 문자 IBRH(Input Buffer Request Host; 입력 버퍼 요청 호스트)가 등록될 수 있다. 마찬가지로 레지스터(403)의 레지스터 위치 15에는 IBSYH가, 그리고 레지스터(403)의 레지스터 위치 31에는 IBSYS가 각각 접근 식별 문자로서 등록된다. 그리고 레지스터(404)의 위치 0 내지 2는 특별 기능을 갖되, LHSH(Load Header Section Host)와 LDSH(Load Data Section Host)를 포함하는 0과 1에는 데이터 식별 문자로서 추가의 식별 문자가 등록된다. 이와 같은 데이터 식별 문자는 여기서는 간단한 형태로, 다시 말해 각각 1비트로서 형성된다. 레지스터(404)의 비트 위치 "2"에는 STXRH(Set Transmission Request Host)를 포함하여 시작 식별 문자가 입력된다.
또한, 다음에서는 입력 버퍼(201)를 통해 메시지 메모리(300)에 이루어지는 기록 접근의 흐름에 대해 설명된다.
호스트 CPU(102)는 전송될 메시지의 데이터를 입력 버퍼(201)에 기록한다. 이때 호스트 CPU(102)는 단지 메시지 메모리(300)의 헤더 세그먼트(HS)를 위한 메시지의 구성 및 헤더 데이터(KD)만을, 혹은 메시지 메모리(300)의 데이터 세그먼트(DS)를 위한 메시지의 전송될 본질적인 유효 데이터(D)만을 기록하거나, 두 데이터(KD, D) 모두를 기록할 수 있다. 메시지의 어느 부분이, 다시 말해 구성 데이터(KD) 및/또는 본질적인 데이터(D) 중 어느 데이터가 전송될 지가, 입력 마스크 레지스터(404) 내의 특별한 데이터 식별 문자(LHSH 및 LDSH)에 의해 결정된다. 이때, LHSH(로드 헤더 섹션 호스트)에 의해서는, 헤더 데이터, 다시 말해 구성 데이터(KD)가 전송되는지 여부가 결정되며, 그리고 LDSH(로드 데이터 섹션 호스트)에 의해서는 데이터(D)가 전송되는지 여부가 결정된다.
입력 버퍼(201)가 2개의 부분으로, 버퍼(400)의 일 부분과 그에 해당하는 섀도우 메모리(401)를 포함하여 형성되고, 교호적인 접근이 이루어지도록 함으로써, LHSH 및 LDSH에 대한 상대 부분으로서, 2개의 추가 데이터 식별 문자 영역이 제공된다. 이 추가 데이터 식별 문자 영역은 섀도우 메모리(201)에 관계한다. 이와 같이 레지스터(404)의 비트 위치 16과 17에 제공되는 데이터 식별 문자들은 LHSS(Load header Section Schadow)와 LDSS(Load Data Section Shadow)로서 표시된다. 그러므로 이들을 통해 섀도우 메모리(401)와 관련하는 전송 과정이 제어된다.
그에 따라 시작 비트 내지 시작 식별 문자 STXRH(세트 전송 요청 호스트)가 입력 마스크 레지스터(404)의 비트 위치 "2"에 설정된다면, 각각의 전송될 구성 데이터(KD) 및/또는 본질적인 데이터(D)를 메시지 메모리(300)로 전송한 후에, 자동으로 대응하는 메시지 객체를 위한 송신 요청(전송 요청)이 설정된다. 다시 말해 상기한 시작 식별 문자 STXRH를 통해 전송되는 메시지 객체의 자동 송신이 제어되고, 특히 개시된다.
섀도우 메모리(401)에 대한 그에 상응하는 상대 부분은 시작 식별 문자 STXRS(세트 전송 요청 섀도우)이다. 이 STXRS는 실례에 따라 입력 마스크 레지스터(404)의 비트 위치 "18"에 포함되며, 그리고 이 경우 가장 간단하게 1비트로서 형성된다. STXRS의 기능은 STXRH의 기능과 유사하게 오로지 섀도우 메모리(401)에만 관여한다.
호스트 CPU(102)가, 입력 버퍼(201)의 데이터가 전송되어야 하는 메시지 식별 문자, 특히 메시지 메모리(300) 내의 메시지 객체의 위치 내지 번호를 입력 요청 레지스터(403)의 비트 위치 0 내지 5에, 다시 말해 IBRH에 따라 기록한다면, 입력 버퍼(201)의 부분 버퍼(400)와 그에 속하는 섀도우 메모리(401)가 교체되거나, 두 부분 메모리(400, 401)에 대한 호스트 CPU(102)와 메시지 메모리(300)의 각각의 접근이 교체된다. 이는 두 메모리(400, 401) 사이의 반원형 화살표로 도시되어 있 는 바와 같다. 이때 예컨대 데이터 전달, 다시 말해 메시지 메모리(300)로 향하는 데이터 전송이 시작된다. 메시지 메모리(300) 자체로 향하는 데이터 전송은 섀도우 메모리(401)로부터 시작된다. 동시에 레지스터 영역들(IBRH와 IBRS)이 교체된다. 마찬가지로 LHSH 및 LDSH는 LHSS 및 LDSS와 교체된다. 그와 마찬가지로 STXRH는 STXRS와 교체된다.
그러므로 IBRS는 메시지의 식별 문자를 지시하는데, 다시 말하면 전송, 다시 말해 섀도우 메모리(401)로부터 출발하는 전달이 진행 중인 대상의 메시지 객체의 번호를 지시하거나, 혹은 어떤 메시지 객체가, 다시 말해 메시지 메모리 내에서 어떠한 영역이 최종 데이터(구성 데이터 KD 및/또는 유효 데이터 D)로서 섀도우 메모리(401)로부터 획득되었는지를 지시한다. 입력 요청 레지스터(403)의 비트 위치 "31"에 설정되는 식별 문자(여기서는 다시 예컨대 1비트) IBSYS(입력 버퍼 비지 섀도우)에 의해, 현재 섀도우 메모리(401)가 관여된 전송이 이루어지고 있는지 여부가 표시된다. 그러므로 예컨대 IBSYS=1이라면, 현재 섀도우 메모리(401)로부터 전송이 이루어지고 있는 것이며, 그리고 IBSYS=0이라면 전송이 이루어지지 않고 있는 것이다. 이와 같은 비트 IBSYS는 예컨대, 섀도우 메모리(4401)와 메시지 메모리(300) 사이의 전송이 진행 중인지를 표시하기 위해, IBRH의 기록에 의해, 다시 말해 레지스터(403) 내의 비트 위치 "0" 내지 "5"의 기록에 의해 설정된다. 이와 같이 메시지 메모리(300)로 향하는 데이터 전송이 종료된 후에, IBSYS는 다시 재설정된다.
섀도우 메모리(401)로부터 송신되는 데이터 전송이 현재 진행중이라면, 호스 트 CPU(102)는 곧바로 후행하여 전송될 메시지를 입력 버퍼(201) 내지 부분 버퍼(400)에 기록할 수 있다. 예컨대 레지스터(403)의 비트 위치 "15"에 제공되는 추가의 접근 식별 문자 IBSYH(입력 버퍼 비지 호스트)를 이용하여, 식별 문자는 추가로 간소화될 수 있다. 섀도우 메모리(401)와 메시지 메모리(300) 사이의 전송이 진행되고 있는 동안, 호스트 CPU(102)가 현재 IBRH를, 다시 말해 레지스터(403)의 비트 위치 "0" 내지 "5"를 기록하고 있는 중이라면, IBSYS=1이며, 그에 따라 입력 요청 레지스터(403) 내의 IBSYH가 설정된다. 현재의 전달(전송)이 종료되면, 곧바로 요청된 전달(STXRH에 의한 요청, 위의 내용 참조)이 개시되고, 비트 IBSYH는 재설정된다. 비트 IBSYS는 전체 시간 동안, 데이터가 메시지 메모리(300)로 전송되는 사실을 표시하기 위해 설정된 상태로 유지된다. 이때 모든 실시예에서 이용되는 모든 비트는 1비트 이상을 포함하는 식별 문자로서 형성될 수 있다. 그러나 메모리 및 처리 경제성의 이유에서 1비트 해결 방법이 바람직하다. 다중 비트 해결 방법은 안전성 및 신뢰성의 이유에서 권장될 수도 있다.
위와 같은 기술한 메커니즘은, 입력 버퍼(201)에 대한 호스트 CPU(102)의 접속 속도가 통신 모듈(100)(즉, 플렉스레이 IP 모듈)의 내부 데이터 전송률보다 낮거나 동일하다는 전제 조건에서, 호스트 CPU(102)로 하여금 헤더 영역(HB) 및 데이터 영역(DB)을 포함하여 메시지 메모리(300) 내에 위치하는 메시지 객체에 연속적으로 데이터를 전송할 수 있도록 허용한다.
다음에서는 도7, 도8, 및 도9에 따라 출력 버퍼(202)를 통해 호스트 CPU 또는 서브스크라이버 CPU(102)에 의해 이루어지는 메시지 메모리(300)에 대한 판독 접근이 더욱 상세하게 설명된다. 이와 관련하여, 도7은 재차 통신 모듈(100)을 도시하고 있되, 개략적 도시의 이유에서, 도7에서는 단지 통신 모듈(100)의 관련 부분들만이 도시되어 있다. 이에 해당하는 부분들은 한편으로 흐름 제어를 담당하는 메시지 관리자(200)와 2개의 제어 레지스터(703, 704)이다. 이들 제어 레지스터들은 도시한 바와 같이 통신 모듈(100) 내에서 메시지 관리지(300) 외부에 장착될 수 있지만, 그럼에도 메시지 관리자(200) 자체 내부에 포함될 수도 있다. 이때 도면 부호 703은 출력 요청 레지스터(Output Buffer Command Request Register)를 나타내며, 도면 부호 704는 출력 마스크 레지스터(Output Buffer Command Mask Register)를 나타낸다. 다시 말해, 메시지 메모리(300)에 대해 이루어지는 호스트 CPU(102)의 판독 접근은 중간에 연결된 출력 버퍼(202)(Output Buffer)를 통해 이루어진다. 이와 같은 출력 버퍼(202)는 마찬가지로 분할되거나, 2배로 설계되는데, 더욱 정확하게 말하면, 부분 버퍼(701)와 이 부분 버퍼(70)에 속하는 섀도우 메모리(700)로서 설계된다. 그로 인해 여기서도 다음에 설명되는 바와 같이 메시지 메모리(300)의 저장된 메시지 내지 메시지 객체와 데이터 각각에 대해 호스트 CPU(102)의 연속적인 접근이 이루어질 수 있으며, 그에 따라 메시지 메모리(300)로부터 호스트 CPU(102)로 향하는 반대 방향에서도 데이터 무결성과 가속화된 전송이 보장될 수 있다. 접근의 제어는 출력 요청 레지스터(703)와 입력 마스크 레지스터(704)를 통해 이루어진다. 또한, 레지스터(703) 내에서는 0 내지 31개의 숫자를 이용하여, 여기서는 예컨대 32비트 폭에 대해 실시예에 따라 703에 각각의 비트 위치가 표시된다. 동일한 사항은 레지스터(701);와 레지스터(704) 내의 비트 위치 0 내지 31;에 대해서도 적용된다.
레지스터(703)의 비트 위치 "0" 내지 "5", "8"과 "9", "15" 그리고 "16" 내지 "21"은 실시예에 따라 판독 접근의 흐름 제어와 관련하여 특별한 기능을 갖는다. 그러므로 레지스터(703)의 비트 위치 "0" 내지 "5"에는 메시지 식별 문자로서 식별 문자 OBRS(Output Buffer Request Shadow; 출력 버퍼 요청 섀도우)가 등록될 수 있다. 마찬가지로 레지스터(703)의 비트 위치 "16" 내지 "21"에는 식별 문자 OBRH(Output Buffer Request Host; 출력 버퍼 요청 호스트)가 등록될 수 있다. 접근 식별 문자로서 레지스터(703)의 비트 위치 "15"에는 식별 문자 OBSYS(Output Buffer Busy Shadow; 출력 버퍼 비지 섀도우)가 등록될 수 있다. 그리고 출력 마스크 레지스터(704)의 위치 "0"과 "1"은 특별 기능을 가지며, RDSS(Read Data Section Shadow; 판독 데이터 섹션 섀도우)와 RHSS(Read Data Section Host; 판독 데이터 섹션 호스트)를 포함하는 비트 위치 "0"과 "1"에는 데이터 식별 문자로서 추가 식별 문자가 등록된다. 추가 데이터 식별 문자는 예컨대 RDSH(Read Data Section Host; 판독 데이터 섹션 호스트)와 RHSH(Read Header Section Host; 판독 헤더 섹션 호스트)를 포함하는 비트 위치 "16" 및 "17"에 제공된다. 이와 같은 데이터 식별 문자는 본 실시예의 경우 예컨대 가장 간단한 형태로, 다시 말해 1비트로서 형성된다. 레지스터(703)의 비트 위치 "9"에는 시작 식별 문자(REQ)가 등록된다. 또한, 실시예에 따라 레지스터(703)의 비트 위치 "8"에 등록되는 전환 식별 문자(VIEW)도 제공된다.
호스트 CPU(102)는, 원하는 메시지의 식별 문자, 다시 말해 특히 원하는 메 시지 객체의 위치 내지 번호를 OBRS에 따라 레지스터(703)의 비트 위치 0 내지 5에 기록하면서, 메시지 메모리(300)로부터 메시지 객체의 데이터를 요청한다. 또한, 이때 호스트 CPU는 반대 방향에서와 같이, 헤더 영역(HB)으로부터 상태 내지 구성 및 헤더 데이터(KD)만을 판독하거나, 혹은 데이터 영역(DB)으로부터 메시지의 본질적으로 전송될 유효 데이터(D)만을 판독하거나, 혹은 두 데이터(KK, D) 모두를 판독할 수 있다. 이와 관련하여 데이터의 어떠한 부분이 헤더 영역(HB) 및/또는 데이터 영역(DB)으로부터 전송되어야 하는가는, 반대 방향과 유사하게 RHSS 및 RDSS에 의해 결정된다. 다시 말해, RHSS는, 헤더 데이터(KD)가 판독되어야 하는지 여부를 명시하며, 그리고 RDSS는 본질적인 데이터(D)가 판독되어야 하는지 여부를 명시한다.
시작 식별 문자는, 메시지 메모리(300)로부터 섀도우 메모리(700)로 향하는 전송을 시작하는 역할을 한다. 다시 말해, 가장 간단한 경우에서와 같이 식별 문자로서 1비트가 이용되며, 출력 요청 레지스터(703) 내의 비트 위치 "9"에 비트 REQ를 설정함으로써, 메시지 메모리(300)로부터 섀도우 메모리(700)로 향하는 전송이 시작된다. 진행 중인 전송은 다시 접근 식별 문자에 의해, 본 실시예에서는 다시 가장 간단한 경우로 레지스터(703) 내의 비트 OBSYS에 의해 표시된다. 충돌을 회피하기 위해, 바람직하게는 비트 REQ는, OBSYS가 설정되지 않을 때에만, 다시 말해 현재 진행 중인 전송이 없을 때에만 설정된다. 그런 다음 이 경우 메시지 메모리(300)와 섀도우 메모리(700) 사이에 메시지 전달이 이루어진다. 본질적인 흐름은 일측에서는 도4, 도5 및 도6에 따라 기술한 바와 같은 반대 방향과 유사하게 제 어(상보적 레지스터 할당)되면서 진행될 수도 있거나, 혹은 일 변형예에 따라 추가의 식별 문자에 의해, 다시 말해 레지스터(703)의 비트 위치 "8" 내의 전환 식별 문자(VIEW)에 의해 제어될 수도 있다. 다시 말해, 전송을 종료한 후에, 비트 OBSYS는 재설정되며, 그리고 출력 요청 레지스터(703) 내의 비트 VIEW를 설정함으로써, 부분 버퍼(701)와 그에 속하는 섀도우 메모리(700)는 교체되거나, 그에 대한 접근들이 교체되고, 호스트 CPU(102)는 메시지 메모리(300)에 의해 요청된 메시지 객체를, 다시 말해 대응하는 메시지를 부분 버퍼(701)로부터 판독할 수 있다. 이때 본 실시예에 따라 도4 내지 도6에서의 반대 전송 방향과 유사하게 레지스터 셀들(OBRS와 OBRH)이 교체된다. 그와 동일하게, RHSS 및 RDSS는 RHSH 및 RDSH와 교체된다. 여기서는 또한 보호 메커니즘으로서 비트 VIEW가 단지 OBSYS가 설정되지 않을 때에만, 다시 말해 진행 중인 전송이 개시되지 않을 때에만 제공될 수 있다.
그러므로 메시지 메모리(300)에 대한 호스트 CPU(102)의 판독 접근은 중간에 연결된 출력 버퍼(202)를 통해 이루어진다. 이 출력 버퍼(202)는 입력 버퍼(201)와 마찬가지로 메시지 메모리(300)에 저장된 메시지 객체에 대한 호스트 CPU(102)의 연속적인 접근을 보장하기 위해 이중으로 또는 두 배로 설계된다. 이 경우 역시 높은 데이터 무결성과 가속화된 전송의 장점이 달성된다.
전술한 입력 및 출력 버퍼(201, 202)를 이용함으로써, 모듈 내부의 대기 시간에도 불구하고 호스트 CPU(102)는 중단 없이 메시지 메모리(300)에 접근할 수 있는 점이 보장된다.
상기한 데이터 무결성을 보장하기 위해, 데이터 전송, 특히 통신 모듈(100) 에서의 전송은 메시지 관리자(200)(메시지 핸들러 MHD)에 의해 실행된다. 이와 관련하여 도10에는 메시지 관리자(200)가 상세하게 도시되어 있다. 메시지 관리자(200)는 그 자체 기능성이 복수의 상태 머신 혹은 자동 상태 머신, 다시 말해 유한한 자동 머신, 이른바 유한 상태 머신(FSM)에 의해 제공될 수 있다. 이때 적어도 3개의 상태 머신이 제공되며, 특히 바람직한 실시예에 따라서는 4개의 유한 상태 머신이 제공된다. 제1 유한 상태 머신은 IOBF-FSM(입/출력 버퍼 FSM)으로, 이는 501로 표시되어 있다. 상기한 상태 머신(IOBF-FSM)은 또한 각각 전송 방향에 따라 입력 버퍼(201) 혹은 출력 버퍼(202)와 관련하여 2개의 유한 상태 머신으로 분할될 수 있는데, 예컨대 IBF-FSM(입력 버퍼 FSM)과 OBF-FSM(출력 버퍼 FSM)으로 분할될 수 있고, 그로 인해 최대 5개의 자동 상태 머신(IBF-FSM, OBF-FSM, TBF1-FSM, TBF2-FSM, AFSM)도 생각해 볼 수 있다. 그러나 공동의 IOBF-FSM이 제공되는 것이 바람직하다.
적어도 하나의 제2 유한 상태 머신(TBF-FSM)은 본 실시예에서는 일련의 바람직한 실시예에 따라 2개의 블록(502, 503)으로 분할되며, 그리고 도2에 대해 기술한 바와 같이 메모리(205, 206)와 관련하여 두 채널 A와 B의 역할을 한다. 이때 두 채널 A와 B의 역할을 하기 위해 유한 상태 머신이 제공될 수 있거나, 혹은 바람직한 실시예에서와 같이 502로 표시된 제1 유한 상태 머신 TBF1-FSM(과도 버퍼 1 (206, RAM A) FSM)이 채널 A용으로 제공되며, 그리고 채널 B용으로 503으로 표시된 제2 상태 머신 TBF2-FSM(과도 버퍼 2(205, RAM B) FSM)이 제공될 수 있다.
바람직한 실시예에 따라 3개의 유한 상태 머신(501 내지 503)의 접근을 제어 하기 위해, 500으로 표시된 소위 AFSM이라고 하는 중재 유한 상태 머신(Arbiter Finite State Machine)이 이용된다. 데이터(헤더 데이터 KD 및/또는 유효 데이터 D)는 통신 모듈(100) 내에서 예컨대 VCO(전압 제어 발진기), 수정 발진기와 같은 클록 제어 수단에 의해, 생성되거나 혹은 그 클록 제어 수단으로부터 적응되거나 유도되는 클록으로 전송된다. 이때 클록(T)은 모듈(100)에서 생성될 수 있거나, 혹은 외부로부터, 예컨대 버스 클록으로서 제공될 수도 있다. 중재 유한 상태 머신(AFSM)(500)은 특히 각각의 클록 주기(T) 동안 3개의 유한 상태 머신(501 내지 503) 중 어느 하나에 메시지 메모리(300)에 대한 접근을 제공한다. 다시 말해 가용한 시간은 개별 자동 상태 머신(501, 502, 503)의 접근 요청에 상응하게 그 요청하는 자동 상태 머신(501-503)에 분할된다. 그리고 만약 단지 하나의 유한 상태 머신만이 접근을 요청한다면, 그 해당 유한 상태 머신은 계속해서 모든 클록 주기(T)가 끝날 때까지 접근 시간을 100% 확보한다. 만일 2개의 자동 상태 머신에 의해 접근 요청이 이루어진다면, 각각의 유한 상태 머신은 접근 시간을 50%씩 할당받는다. 마지막으로 3개의 자동 상태 머신이 모두 접근을 요청한다면, 그 유한 상태 머신 각자는 접근 시간의 1/3씩을 할당받는다. 그럼으로써 이용할 각각의 대역폭이 최적화되어 이용된다.
제1 유한 상태 머신(501), 다시 말해 IOBF-FSM은 필요에 따라 하기와 같은 조치들을 실행한다:
- 입력 버퍼(201)로부터 메시지 메모리(300) 내의 선택된 메시지 객체로 향하는 데이터 전송.
- 메시지 메모리(300) 내의 선택된 메시지 객체로부터 출력 버퍼(202)로 향하는 데이터 전송.
채널 A에 대한 상태 머신(502), 다시 말해 TBF1-FSM은 다음과 같은 조치들을 실행한다:
- 메시지 메모리(300) 내의 선택된 메시지 객체로부터 채널 A의 버퍼(206)로 향하는 데이터 전송.
- 버퍼(206)로부터 메시지 메모리(300) 내의 선택된 메시지 객체로 향하는 데이터 전송.
- 메시지 메모리(300) 내에서 부합하는 메시지 객체의 검색. 이때, 수신 시에, 메시지 객체(수신 버퍼(202))는 채널 A 상에 수신된 메시지를 저장하기 위해 수용 필터링의 범주에서 검색되며, 송신 시에는 곧바로 후행하여 채널 A에 송신될 메시지 객체(전송 버퍼(201))가 검색된다.
이와 유사하게, 상태 머신 TBF2-FSM의 조치가, 다시 말해 블록(503) 내의 채널 B용 유한 상태 머신의 조치가 이루어진다. 이 상태 머신은 메시지 메모리(300) 내의 선택된 메시지 객체로부터 채널 B의 버퍼(205)로 향하는 데이터 전송과 버퍼(205)로부터 메시지 메모리(300) 내의 선택된 메시지 객체로 향하는 데이터 전송을 실행한다. 또한, 검색 기능도 메시지 메모리(300) 내의 부합하는 메시지 객체에 따라 상태 머신(TBF1-FSM)과 유사하게 이루어지며, 수신 시에, 메시지 객체(수신 버퍼(202))는 채널 B에 수신된 메시지를 저장하기 위해 수용 필터링의 범주에서 검색되며, 그리고 송신 시에 곧바로 후행하여 채널 B에 송신될 메시지 혹은 메시지 객체(전송 버퍼(201))가 검색된다.
도11에는 재차 흐름과 전송 경로가 도시된다. 3개의 상태 머신(501-503)은 개별 부분들 사이의 각각의 데이터 전송을 제어한다. 이와 관련하여 호스트 CPU는 102로 표시되고, 입력 버퍼는 201로, 그리고 출력 버퍼는 202로 표시되어 있다. 메시지 메모리는 300으로 표시되고, 채널 A와 채널 B에 대한 두 버퍼는 206과 205로 표시되어 있다. 인터페이스 엘리먼트들(207, 208)도 마찬가지로 도시되어 있다. 제1 자동 상태 머신(IOBF-FSM)(501)은 데이터 전송(Z1A 및 Z1B)을, 다시 말해, 입력 버퍼(201)에서 메시지 메모리(300)로 향하는 데이터 전송과 메시지 메모리(300)로부터 출력 버퍼(202)로 향하는 데이터 전송을 제어한다. 이때 데이터 전송은 예컨대 32비트의 단어 폭을 갖는 데이터 버스에 의해 이루어지되, 각각 또 다른 비트 수도 가능하다. 동일한 사항은 메시지 메모리(300)와 버퍼(206) 사이의 전송(Z2)에 대해서도 적용된다. 이런 데이터 전송은 상태 머신(TBF1-FSM)(502), 즉 채널 A에 대한 상태 머신에 의해 제어된다. 메시지 메모리(300)와 버퍼(205) 사이의 전송(Z3)은 자동 상태 머신(TBF2-FSM)(503)에 의해 제어된다. 본 실시예에서도, 데이터 전송은 실시예에 따라 32비트의 단어폭을 갖는 데이터 버스를 통해 이루어지되, 여기서도 또한 각각의 또 다른 비트 수도 가능하다. 대개 전술한 전송 경로를 통한 완전한 메시지 객체의 전송은 복수의 클록 주기(T)를 필요로 한다. 그러므로 클록 주기(T)와 관련한 전송 시간의 분할은 중재기, 다시 말해 AFSM(500)을 통해 이루어진다. 다시 말해 도11에는 메시지 핸들러(200)에 의해 제어되는 메모리 컴포넌트들 간의 데이터 경로가 도시되어 있다. 메시지 메모리(300) 내에 저 장되는 메시지 객체의 데이터 무결성을 보장하기 위해, 바람직하게는 동일한 시간에 단지 도시한 경로들 중 하나의 경로에서만, 다시 말해 Z1A와 Z1B 및 Z2와 Z3에서만 동시에 데이터가 교환되어야 한다.
도12는 일 실시예에 따라 가용하는 시스템 클록(T)이 중재기에 의해, 다시 말해 AFSM(500)에 의해, 요청하는 3개의 자동 상태 머신(501-503) 상에 분할되는 방법을 도시하고 있다. 단계 1에서, 자동 상태 머신(501)과 자동 상태 머신(502)의 접근 요청이 이루어지는데, 다시 말해 전체 계산 시간은 각각 이등분 되어 요청하는 두 자동 상태 머신(501, 502)에 분할된다. 이는, 단계 1에서의 클록 주기와 관련하여, 자동 상태 머신(501)이 클록 주기(T1과 T3)에서 접근을 확보하며, 그리고 자동 상태 머신(502)은 클록 주기(T2와 T4)에서 접근을 확보하는 것을 의미한다. 단계 2에서 접근은 단지 자동 상태 머신(501)에 의해서만 이루어지고, 그럼으로써 3개의 클록 주기(T5 내지 T7) 모두는, 다시 말해 접근 시간의 100%가 자동 상태 머신(IOBF-FSM)(501)에 할당된다. 단계 3에서는 3개의 자동 상태 머신(501-503) 모두의 접근 요청이 이루어지며, 그럼으로써 전체 접근 시간의 삼분할이 이루어진다. 그런 다음, 예컨대 클록 주기(T8과 T11)에서 유한 상태 머신(501)이 접근하고, 클록 주기(T9와 T12)에서 유한 상태 머신(502)이 접근하며, 그리고 클록 주기(T10과 T13)에서 유한 상태 머신(503)이 접근하는 방식으로, 중재기 AFSM(500)은 접근 시간을 분산한다. 마지막으로 단계 4에서는 통신 모듈(100)의 두 채널 A와 B에 대한 2개의 자동 상태 머신(502와 503)에 의한 접근이 이루어지며, 그럼으로써 제2 유한 상태 머신(502)에 대한 클록 주기(T14와 T16)의 접근 분산과 제3 유한 상 태 머신(503)에 대한 클록 주기(T15와 T17)의 접근 분산이 이루어지게 된다.
다시 말해, 자동 중재 상태 머신 AFSM(500)은, 3개의 상태 머신(501-503) 중 하나 이상이 메시지 메모리(300)에 대한 접근을 요청하는 경우에는, 접근을 요청하는 상태 머신들에 접근이 클록 제어 방식 및 교호적인 방식으로 분할되는 점을 보장한다. 이러한 처리 방법은, 메시지 메모리(300) 내에 저장된 메시지 객체의 무결성, 다시 말해 데이터 무결성을 보장한다. 예를 들어 호스트 CPU가 출력 버퍼(202)를 통해 메시지 객체를 판독하고자 하고, 그에 반해 현재 수신된 메시지는 그 메시지 객체에 기록된다고 하면, 이는 메시지 메모리(300) 자체의 메시지 객체에 대한 접근들이 충돌하지 않으면서, 우선 어떠한 요청이 시작되었는지의 여부에 따라 기존 상태 혹은 신규 상태가 판독된다.
전술한 방법은, 선택된 메시지 객체가 호스트 CPU(102)가 접근하는 기간 동안 플렉스레이 버스(101)의 두 채널 A와 B에서의 데이터 교환에 대한 참여에 의해 차단(버퍼 록킹)되지 않으면서, 호스트 CPU(102)로 하여금, 작동이 진행되는 중에 메시지 메모리(300) 내의 각각의 임의의 메시지 객체를 판독하거나 기록하는 것을 가능케 한다. 동시에 접근의 클록 제어식 인터리빙(interleaving)에 의해, 메시지 메모리(300)에 저장된 데이터의 무결성이 보장되며, 그리고 전송 속도는 완전 대역폭의 활용을 통해 증가하게 된다.
통신 모듈(100)의 메시지 메모리(300)는 통신을 위해 제공되는 메시지 객체를 저장한다. 통신이 이루어지는 동안 다음과 같은 과제가 발생한다:
통신 링크(101)를 통한 메시지의 수신 시에, 수신된 메시지가 메시지 메모 리(300) 내의 메시지 객체의 대응하는 위치에 저장될 수 있도록 하기 위해, 그에 속하는 메시지 객체가 메시지 메모리(300)에서 검색되어야만 한다. 그리고 수신된 메시지의 식별 필드가 구성된 메시지 객체(이른바 수신 객체)와 일치할 때에만, 수신된 메시지는 메시지 메모리(300)에 저장된다. 구성된 수신 메시지 객체의 식별 필드는,
- 수신을 위해 고려되는 채널(A 혹은 B)을 통해 제공되고,
- 수신을 위해 고려되는 통신 주기로 제공되고,
- 수신을 위해 고려되는 시간 슬롯에 제공되며, 그리고
- 수신을 위해 제공되는
그런 메시지 객체에 대해 전체 메시지 메모리(300)가 검색됨으로써 결정된다.
마찬가지로 송신 윈도우의 개시 시점에 적시에 그 송신 윈도우에 부합하는 메시지 객체(송신 객체)가 메시지 메모리(300) 내에서 검색되어야 하고, 송신을 위해 제공되어야 한다. 송신을 위해 대기 상태에 있는 메시지 객체는, 송신될 메시지의 식별 필드가 구성된 메시지 객체(이른바 송신 객체)와 일치할 때에만 송신된다. 구성된 송신 메시지 객체의 식별 필드는,
- 송신을 위해 고려되는 채널(A 혹은 B)을 통해 제공되고,
- 송신을 위해 고려되는 통신 주기로 제공되고,
- 송신을 위해 고려되는 시간 슬롯으로 제공되며, 그리고
- 송신을 위해 제공되는
그런 메시지 객체에 대해 전체 메시지 메모리(300)가 검색됨으로써 결정된다.
위의 두 경우에, 통신 모듈의 실시간 능력을 보장하기 위해, 메시지 메모리에서 부합하는 메시지 객체가 적시에 결정되어야 한다. 메시지 메모리에서 곧바로 후행하는 시간 윈도우를 위한 메시지 객체(300)가 어떠한 위치에 위치하는 지에 대한 정보가 없기 때문에, 시간 윈도우별로 메시지 메모리(300)는 일 회 완전하게 검색되어야 한다. 이는 특히 메시지 메모리(300)가 더욱 큰 경우 많은 시간을 소요하며, 그리고 통신 시스템의 실시간 능력을 저해하거나 악화시킬 수 있다.
본 발명은 추가로 메시지 메모리를 검색하기 위한 새로운 유형의 개선된 방법에 관한 것이다. 이런 본원의 방법의 경우, 각각 복수의 시간 윈도우(혹은 시간 슬롯)를 위해 메시지 메모리(300) 내에 저장되는 메시지 객체의 식별 필드는 선행되어 복수의 고려되는 시간 윈도우를 위해 메시지 메모리(300)를 단 한 번 검색함으로써 검색된다. 다시 말해 전체 메시지 메모리(300)의 검색은 항시 복수의 고려되는 향후 시간 윈도우를 위해 사전 지정된 그리드로 실행되며, 그리드로 검색을 실행하기 위한 시점들 간의 간격은 하나의 시간 윈도우보다 크며, 그리고 복수의 시간 윈도우를 포함한다.
특히 바람직한 제안에 따라, 복수의 고려되는 향후 시간 슬롯을 위한 검색이 실행되면서, 다음과 같은 검색 기준이 점검된다:
- 메시지 메모리(300) 내에, 고려되는 전송 채널(CH A, CHB)을 위한 메시지 객체가 저장되는지 여부의 결정,
- 메시지 메모리(300) 내에, 고려되는 통신 주기를 위한 메시지 객체가 저장되는지 여부의 결정,
- 메시지 메모리(300) 내에, 복수의 고려되고 후행하는 시간 윈도우를 위한 메시지 객체가 저장되는지 여부의 결정, 그리고
- 결정된 메시지 객체가 송신 혹은 수신될 객체인지 여부의 점검.
메시지 메모리(300) 내에, 하나 혹은 그 이상의 요건, 바람직하게는 모든 임의의 요건을 충족하는 하나 혹은 그 이상의 메시지 객체가 결정되는 경우라면, 메시지 메모리 내에서 검색된 객체의 위치들은 메시지 메모리(300)에 할당된 버퍼에 저장된다. 버퍼는 도13에 도시되어 있으며, 그 전체가 도면 부호 600으로 표시되어 있다. 버퍼(600)는 최소한 앞서 고려되는 시간 슬롯들 각각에 대해 적어도 하나의 데이터 필드를 포함하는 정도의 크기로 형성된다. 도시한 실시예에 따라, 메시지 메모리(300)는 4개의 시간 윈도우의 그리드로, 다시 말해 단지 매 4개의 시간 윈도우마다 검색된다. 그러나 단 하나의 실제 시간 윈도우를 위해서뿐 아니라, 동시에 또는 거의 동시에 복수의 향후 시간 윈도우를 위해서도 검색이 이루어진다. 그로 인해, 최대 4개의 결정된 메시지 객체의 위치들을 저장할 수 있도록 하기 위해, 버퍼(600)는 4개의 데이터 필드(601 내지 604)를 포함한다. 각각의 데이터 필드(601 내지 604)에, 각각 2개의 데이터 단어가 저장될 수 있는데, 다시 말해 포인터(i)와 상태(i)가 저장될 수 있되, i는 메시지 메모리(300) 내의 데이터 필드(601-604)의 명백한 번호(혹은 식별 문자)에 상응한다. 데이터 필드(601)는 바 람직하게는 고려되는 제1 향후 시간 윈도우에 할당되며, 데이터 필드(602)는 고려되는 제2 향후 시간 윈도우에, 데이터 필드(603)는 고려되는 제3 향후 시간 윈도우에, 그리고 데이터 필드(604)는 고려되는 최종의 향후 시간 윈도우에 할당된다. 다시 말해, 고려되는 제1 향후 시간 윈도우를 위해 메시지 메모리(300) 내에 대응하는 메시지 객체가 결정된다면, 제1 시간 윈도우(i)를 위해 결정된 메시지 객체의 포인터(i)와 상태(i)는 데이터 필드(601)의 두 데이터 단어에 저장된다.
데이터 단어 포인터 0...3으로서 데이터 필드들(601-60)에는 각각 메시지 메모리(300)에서 참조 되는 메시지 객체의 위치, 예컨대 번호가 저장된다. 다시 말해, 데이터 단어 포인터 0...3은 일종의 포인터 요소(이른바 데이터 포인터)이며, 이 포인터 요소는 메시지 메모리(300) 내의 메시지 객체의 시작을, 바람직하게는 결정된 메시지 객체의 헤드 세그먼트(HS)에서 헤드 영역(HB)의 시작을, 다시 말해 구성 데이터(KD)를 지시한다. 메시지 메모리(300) 내에 저장된 메시지의 상태 0...3으로서, 버퍼(600) 내에는, 바람직하게는 고려되는 시간 윈도우를 위해 대개 메시지가 수신 내지 송신되어야 하는지 여부 및/또는 메시지가 송신 혹은 수신되어야 하는지 여부에 대한 정보가 저장된다. 메시지가 송신되어야 한다면, 상태 0..3은 'tx_buf'로 설정되며, 그리고 메시지가 수신되어야 한다면, 상태 0..3은 'rx_buf'로 설정된다. 고려되는 시간 슬롯을 위한 메시지가 송신 내지 수신되지 않아야 한다면, 이에 대한 설정이 이미 데이터 필드들(601-604)의 모든 데이터 단어들에 대해, 혹은 적어도 데이터 단어 0..3에 대해 검색을 시작할 시점에 실행되지 않았다는 점에 한해서, 상태는 'empty'로 설정된다.
도13으로부터 알 수 있는 점에서, 도시된 버퍼(600)는 2배로 형성되며, 다시 말해 데이터 필드(601-604)가 2배로 형성되며, 그럼으로써 추가의 데이터 필드(601a-604a)가 존재한다. 그에 따라 바람직하게는 검색의 범주에서 데이터 필드들(601-604)에 대한 접근이 이루어질 수 있으며, 그에 반해 동시에 본질적인 데이터 전송의 범주에서, 다시 말해 데이터의 송신 혹은 수신의 범주에서 데이터 필드(601a-604a)에 대한 접근이 이루어질 수 있다. 데이터 전송과 검색 실행이 종료되면, 데이터 필드들은 교체되며, 그럼으로써 검색 실행의 범주에서 데이터 필드들(601a-604a)에 대한 접근이 이루어질 수 있고, 그에 반해 동시에 본질적인 데이터 전송의 범주에서, 다시 말해 데이터의 송신 혹은 수신의 범주에서 데이터 필드들(601-604)에 대한 접근이 이루어진다. 이와 같은 방법으로 메시지 메모리(300)에 대한 검색 실행을 바탕으로 데이터 전송 중 대기 시간은 회피될 수 있다.
바람직하게는 송신 필터링이 실행되는데, 다시 말해 호스트 CPU(102)에 의해 메시지 메모리(300)는 고려되는 통신 주기로, 그리고 고려되는 시간 윈도우에서 고려되는 채널을 경유하여 통신 링크(101)를 통해 송신되어야 하는 메시지의 임시 저장을 위해 제공되는 위치들(내지 메시지 객체)에 대해 검색된다. 추가되거나 대체되는 방법에 따라, 수신 필터링이 실행되는데, 다시 말해 호스트 CPU(102)에 의해 메시지 메모리(300)는 고려되는 통신 주기로, 그리고 고려되는 시간 윈도우에서 고려되는 채널을 경유하여 통신 링크(101)로부터 수신되어야 하는 메시지의 임시 저장을 위해 제공되는 위치(내지 메시지 객체)에 대해 검색된다. 검색 방법의 목적은 통신 주기별로 요구되는 메시지 메모리(300) 검색 실행의 수를 감소시키는 것이 며, 그에 따라 통신 모듈(100)의 실시간 능력을 개선시키는 것에 있다.
본 설명은 총 8개의 요소(601 내지 604 및 601a 내지 604a)를 포함하는 버퍼(600)에 관한 것이다. 그러나 버퍼(600)의 크기는 데이터 전송을 위한 본 발명에 따른 방법을 유지하면서, 특히 제안되는 검색 방법을 유지하면서 임의로 변경되며, 특히 확대되며, 그에 따라 유연하게 메시지 메모리(300)의 크기에 부합하게 적응된다. 그 외에도 버퍼(600)의 크기를 통해, 얼마나 많은 시간 윈도우를 위해 검색 실행의 범주에서 메시지 메모리(300)가 선행되어 최대로 검색되어야 하는지에 대해 미리 결정할 수도 있다. 본 발명에 따른 방법의 정상적인 기능을 보장하기 위해, 특히 송신될 메시지에서 수신될 메시지로 뛰어 넘는 점을 회피하기 위해, 소정의 시간 슬롯을 위한 검색 실행의 종료 시점과 그 시간 슬롯을 위한 본질적인 데이터 전송의 종료 시점 사이에, 가능하면 메시지 메모리(300)의 재구성은 이루어지지 않도록 해야 한다. 다시 말해 그런 재구성은 최종 검색 시에 결정된 버퍼(600) 내용을 가능한 방식으로 무효하게 할 수도 있다. 왜냐하면, 재구성을 통해 상황에 따라 해당하는 시간 슬롯에 송신 내지 수신될 메시지에 대한 메시지 메모리(300)의 메모리 영역의 할당이 변경될 수도 있기 때문이다. 이와 같은 경우, 새로운 검색 실행이 요구될 수도 있고, 이는 최소한 데이터 전송 시에 지연을 초래하거나, 상황에 따라 심지어는 적은 데이터 손실을 초래할 수도 있다. 그러나 플렉스레이 사양에는, 상기한 지연 혹은 상기한 데이터 손실을 포착하기 위해, 적합한 메커니즘이 포함되며, 그럼으로써 데이터 전송에 대한 부정적인 작용에 대해 우려할 필요는 없다.
본 발명에 따른 방법은 다음에서 도14에 따라 더욱 상세하게 설명된다. 도14에서 통신 주기는 KZY로 표시되어 있다. 그리고 주기 송신은 ZE로, 시간 윈도우는 ZF로 표시되어 있다. 검색 실행은 SDL이며, 마지막으로 본질적인 데이터 전송은, 다시 말해, 메시지의 송신 내지 메시지의 수신은 DAT로 표시되어 있다. 도14에서, 통신 주기(KZY(n))가 고려된다. 이 통신 주기는 우선 주기(KZY(n))의 정적 세그먼트의 4개의 시간 윈도우 "1" 내지 "4를 포함하며, 이 시간 윈도우에 이어 주기(KZY(n))의 동적 세그먼트의 총 20개의 시간 윈도우가 연속된다. 주기 종료(ZE(n)) 시에 예컨대 (존재하는 점에 한해) 심볼 윈도우와 이른바 네트워크 유휴 시간(NIT)이 포함된다. 이 네트워크 유휴 시간은 서브스크라이버(102)의 로컬 시각의 시각 동기화를 위해 이용된다. 도시한 실시예에 따라 메시지 메모리는 항상 4개의 시간 슬롯(ZF)을 위해 선행되어 검색된다. 본 발명에 따른 방법을 시작한 후에 제1 검색만이 예외적으로 적용되는데, 왜냐하면 우선 버퍼(600)의 8개 요소(601 내지 604 및 601a 내지 604a) 모두가 채워져야 하기 때문이다.
본 발명에 따른 방법의 흐름도는 도15에 도시되어 있다. 상기 방법은 기능 블록(700)에서 개시된다. 기능 블록(701)에서는 다음에서 더욱 상세하게 설명되는 제1 검색이 실행된다. 검색 실행의 범주에서, 예컨대 버퍼(600)의 필드 내지 요소(604-604)에는 이어지는 본질적인 데이터 전송을 위해 필요한 대응하는 정보들이 저장된다. 본 발명에 따른 방법을 시작한 후에 제1 검색이 이루어진다면, 버퍼(600)의 나머지 필드들 내지 요소들(601a 내지 604a)은 여전히 공란이며, 직접적으로 연결되는 추가의 검색에 의해 채워져야 한다. 그러므로 질의 블록(702)에서 는, 본원의 방법의 시작 이후 제1 검색 실행이 이루어지는 지의 여부에 대해 검사된다. 만일 검색 실행이 이루어진다고 하면, 검색(701)이 재차 실행되고, 그렇지 않으면 기능 블록(703)으로 분기되며, 그 기능 블록(703)에서 본질적인 데이터 전송이, 다시 말해 메시지의 송신 및/또는 수신이, 통신 모듈(100), 즉 이 통신 모듈(100)의 메시지 메모리(300)가 선행된 검색 실행으로 검색되었던 그런 서브스크라이버(102)를 위해 실행된다. 이어서 질의 블록(704)에서는 본 발명에 따른 방법이 종료되는지의 여부에 대해 점검이 이루어진다. 종료된 경우라면 블록(705)으로 분기되어 상기한 방법이 종결된다. 그렇지 않으면, 기능 블록(706)으로 분기된다. 그리고 그 기능 블록(706)에서 버퍼(600)의 필드 내지 요소(601 내지 604)는 필드 내지 요소(601a 내지 604a)와 교체되며, 그럼으로써 이어지는 검색 실행(701)에서 결정된 정보, 특히 메시지 객체의 위치들이 필드(601 내지 604)에 저장되는 것이 아니라, 이제부터는 필드(601a 내지 604a)에 저장된다. 마찬가지로 기능 블록(706)에서 버퍼(600)의 필드가 교체되는 결과로서, 후행하는 본질적인 데이터 전송 동안, 더 이상 필드(601a 내지 604a)에 대한 접근이 이루어지는 것이 아니라, 필드(601내지 604)에 대한 접근이 이루어진다. 그 외에도 기능 블록(706)에서는 곧바로 후행하는 4개의 시간 슬롯이 후행하는 검색 실행에서 고려될 시간 슬롯으로서 결정된다. 그런 다음 다시 기능 블록(701)으로 분기되고, 재차 검색 실행과 본질적인 데이터 전송이 이루어진다. 하지만, 이번에는 그 검색 및 데이터 전송은 각각 곧바로 후행하는 4개의 시간 슬롯을 위해 선행된 흐름에서처럼 실행된다.
도15에서 전반적으로 도면 부호 701로 표시되는 검색 실행은 도14의 실시예 에 따라 더욱 상세하게 설명된다. 검색 실행은 4개의 연이어 후행하는 시간 윈도우(ZF)를 위해 실행되며, 4개의 시간 윈도우 모두를 위해 메시지 메모리(300) 내에서는 부합하는 메시지 객체가 검색된다. 제1 시간 윈도우 "0"은 사양에 따라 존재하지 않기 때문에, 제1 검색 실행은 예외적으로 3개의 시간 윈도우(ZF)만을 포함한다. 그러나 그 뒤에 오는 모든 검색 실행은 4개의 시간 윈도우(ZF)를 포함한다. 부합하는 객체를 결정하기 위해, 특히 이미 위에서 언급한 기준들, 즉 통신 주기, 시간 슬롯, 채널 및 송신/수신에 대한 검사가 이루어진다. 메시지 메모리(300)에서 결정된 부합하는 메시지 객체의 위치 형태의 검색 결과는 버퍼(600)에 저장된다. 버퍼는 8개의 요소(601 내지 604 및 601a 내지 604a), 즉 요소 "0" 내지 요소 "7"을 포함하는 목록으로 구성된다.
통신 모듈(100)의 구성 단계를 종료한 후에, 그리고 각각의 통신 주기(KZY(n-1))의 종료 시점에, 버퍼(600)는 소거된다. 모든 포인터 "0" 내지 "7"은 0으로 설정되고, 모든 상태 정보 필드 "0" 내지 "7"은 'empty'로 설정된다. 제1 검색 실행은 예외적으로 여타의 검색 실행과 약간 다르게 진행된다. 선행된 주기(KZY(n-1))의 최종 검색 실행에서, 메시지 메모리(300)는 후행하는 통신 주기(KZY(n))의 제1 시간 슬롯(ZF)을 위해 그에 부합하는 메시지 객체에 대해 검색된다. 예를 들어, 시스템이 방금 기동 되어 구성되었기 때문에, 선행된 통신 주기(KZY(n-1))가 없는 경우라면, 메시지 메모리(300)는 구성 단계에 이어서 후행하는 통신 주기(KZY(n))의 제1 시간 슬롯(ZF)을 위해 그에 부합하는 메시지 객체에 대해 검색된다. 이러한 검색의 결과는 버퍼에서 요소 "1"(602)에 저장된다.
이어서 통신 주기(KZY(n)가 개시되며, 제1 시간 슬롯(ZF1)에서 중복성 검색이 실행되며, 이 검색이 이루어지는 동안 메시지 메모리(300)는 시간 슬롯(ZF2 및 ZF3)을 위해 그에 부합하는 메시지 객체에 대해 검색된다. 중복성 검색 실행의 결과는 버퍼(600)의 요소들 "2"(603)와 "3"(604)에 저장된다. 그 외에도 메시지 메모리(300)는 제1 시간 슬롯(ZF1)에서 후행하는 4개의 시간 슬롯(ZF4 내지 ZF7)을 위해 그에 부합하는 메시지 객체에 대해 검색되어야 한다. 이와 같은 검색의 결과는 버퍼(600)의 요소들 "4"(601a) 내지 "7"(604a)에 저장된다. 시간 슬롯(ZF2 내지 ZF7)을 위해 그에 부합하는 객체에 대한 검색은 단 한 번의 검색 실행(SDL1) 동안 이루어질 수 있다. 또한, 제1 시간 슬롯(ZF1)에서 제1 시간 슬롯(ZF1)을 위해 제공되는 메시지의 본질적인 데이터 전송이 실행된다. 제1 시간 슬롯(ZF1)은 플렉스레이 사양에 따라 확실히 (동적 시간 슬롯과 다르게) 소정의 최소 기간을 초과하지 않는 정적 시간 슬롯이기 때문에, 제1 시간 슬롯(ZF1) 동안 앞서 명시한 모든 단계를 실행하기에 그 길이가 충분하다. 버퍼(600)는 제1 검색 실행(SDL1)의 시점에 비어 있기 때문에, 버퍼(600) 내에는, 메시지 메모리(300)에서 유효하게 부합하는 메시지 객체가 검색되었을 때에만 정보가 저장되어야 한다. 소정의 시간 슬롯(ZF)을 위한 객체가 검색되지 않았다면, 대응하는 요소(601 내지 604 혹은 601a 내지 604a)는 포인터='0'과 상태='empty'인 형태로 유지된다.
제1 검색 실행(SDL1) 시에, 제1 시간 윈도우(ZF1)에서, 우선 제1 메시지 객체의 식별 필드는 메시지 메모리(300)의 헤드 부분(HS)으로부터 판독된다. 메시지의 식별 필드는 최소한 후행하는 상태 비트, 즉 11개의 비트 프레임 ID(헤더 단어 의 비트 0 내지 10), 7비트 주기 코드(헤더 단어의 비트 16 내지 22), 1비트 채널 A(CH A)(헤더 단어의 비트 24), 1비트 채널 B(CH B)(헤더 단어의 비트 25)를 포함한다. 이 식별 필드가 고려되는 통신 주기(ZKY(n)의 시간 윈도우들(ZF2 내지 ZF7) 중 어느 하나의 시간 윈도우에 부합한다면, 버퍼(600)의 대응하는 요소 "2" 내지 "7"의 포인터는 메시지 메모리(300) 내의 메시지 객체의 번호로 설정되며, 그리고 메시지가 송신 또는 수신되어야 하는지의 각각의 여부에 따라, 대응하는 상태 "2" 내지 "7"은 'tx_buf' 혹은 'rx_buf'로 설정된다.
그런 다음 (항시 동일한 검색 실행(SDL1)의 범주에서) 곧바로 후행하는 메시지 객체의 식별 필드가 판독되면서, 시간 윈도우(ZF2 내지 ZF7)에 대해 일치성이 존재하는지의 여부와, 필요에 따라서는 버퍼(600)의 대응하는 요소(601 내지 604, 601a 내지 604a)의 포인터 및 그 상태 정보 필드가 설정되는지의 여부에 대한 검사가 이루어진다.
대응하는 버퍼 요소의 상태가 이미 더 이상 'empty'로 존재하지 않아야 한다면, 버퍼(600) 내에는 포인터와 상태 정보가 더 이상 저장되지 않는다. 다시 말해 동일한 통신 주기(KZY(n))에 동일한 시간 윈도우(ZF)에 대해 2개 혹은 그 이상의 메시지 객체가 구성된다면, 제1 시간 윈도우는 이용되며, 그리고 후행하는 시간 윈도우들은 무효화된다.
메시지 메모리(300)의 헤드 부분으로부터 최종 식별 필드를 판독함과 더불어 검색 실행(SDL1)은 종료된다. 그런 다음 본질적인 데이터 전송의 범주에서 시간 윈도우(ZF1 내지 ZF7)에 대해 오랜 시간 지연 없이, 부합하는 메시지 객체의 번호 가 직접 버퍼(600)로부터 추출될 수 있다.
시간 윈도우(ZF4)의 시작과 더불어, 버퍼(600)의 요소들(602 내지 604)이 처리된다(시간 윈도우(ZF0)가 존재하지 않는다면 요소는 필요하지 않다). 다시 말해 시간 윈도우(ZF1 내지 ZF3) 동안 본질적인 데이터 전송이 이미 실행되었다. 그런 다음 버퍼(600)의 요소들(601 내지 604)은 소거될 수 있으며(포인터='0', 상태='empty'), 그리고 곧바로 후행하는 검색 실행(SDL2)이 시작된다. 이 검색 실행은 실제 통신 주기(KZY(n))의 시간 윈도우(ZF8 내지 ZF11)에 관계한다. 검색 결과는 버퍼(600)의 요소들 "0"(601) 내지 "3"(604)에 저장된다. 시간 윈도우(ZF8)의 시작과 더불어, 시간 윈도우(ZF12 내지 ZF15)를 위한 추가의 검색 실행(SDL3)이 시작된다. 검색 결과는 마찬가지로 새로운 검색 실행(SDL3)이 시작되는 시점에 소거되었던(포인터='0', 상태='empty') 버퍼 요소들 "4"(601a) 내지 "7"(604a)에 저장된다.
검색 실행(SDL)과 병행하여, 각각의 시간 윈도우(ZF)에 도달한 이후 본질적인 데이터 전송(DAT)의 처리가 이루어진다. 예를 들어 제2 검색 실행(SDL2) 동안 시간 윈도우(ZF4 내지 ZF7)를 위한 본질적인 데이터 전송이 처리되며, 전송될(송신 혹은 수신될) 메시지는 메시지 메모리(300)에 저장되어야 하거나 혹은 그 메시지 메모리(300)로부터 판독되어야 한다는 내용이 포함된 정보는, 정보 자체가 제1 검색 실행(SDL1) 동안 저장되었던 장소에 해당하는 버퍼(600)의 요소들 "4"(601a) 내지 "7"(604a)로부터 추출된다. 마찬가지로 제3 검색 실행(SDL3) 동안 시간 윈도우(ZF8 내지 ZF11)를 위해 본질적인 데이터 전송이 처리되며, 전송될 메시지가 메 시지 메모리(300) 내에 저장되어야 하거나, 혹은 그 메시지 메모리(300)로부터 판독되어야 하는 내용이 포함된 정보는, 정보 자체가 제2 검색 실행(SDL2) 동안 저장되었던 장소에 해당하는 버퍼(600)의 요소들 "0"(601) 내지 "3"(604)으로부터 추출된다. 그와 상응하는 방법으로 추가의 검색 실행(SDL4 내지 SDL6)이 진행되며, 실제 통신 주기(KZY(n))의 최종 검색 실행(SDL6) 동안, 메시지 메모리(300)는 (이미 앞서 언급한 바와 같이) 그 이후에 이루어질 통신 주기(KZY(n+1))의 제1 시간 슬롯(ZF1)을 위해 그에 부합하는 메시지 객체에 대해 검색된다.
각각의 검색 실행(SDL)은 또 다른 흐름에 의해 중단될 수 있지만, 그러나 최소한 4개의 시간 윈도우(ZF) 이후에 종료되어야 한다. 이런 요건이 달성될 수 없다고 한다면, 버퍼(600)는 예컨대 8개에서 16개의 요소로 확대될 수 있다. 그렇게 함으로써 가용한 시간은 예컨대 8개의 시간 윈도우로 증가한다. 그러나 그렇게 함으로써 데이터 전송 시스템 내의 유동성은 제한되는데, 왜냐하면 그런 이후 사전 검색되는 8개의 시간 윈도우에 대해 본질적인 데이터 전송이 처리되기 전에는 그 시간 윈도우를 위해 재구성이 야기되어서는 안 되기 때문이다.
할당된 시간 윈도우(ZF)를 개시할 시점에 송신 객체를 위해 메시지 메모리(300)로부터 송신 유닛으로 전송이 개시된다면, 도중에 메시지 객체가 변경되지는 않았는지의 여부가 검사된다. 만일 변경되지 않았다면, 버퍼(600) 내에서의 등록은 배제되며, 그리고 대응하는 메시지 객체는 송신되지 않는다. 할당된 시간 윈도우(ZF)의 종료 시점(곧바로 후행하는 시간 윈도우의 시작 시점)에 수신 객체를 위해 수신 유닛으로부터의 전송이 개시된다면, 도중에 메시지 객체가 변경되지 않 았는지의 여부가 검사된다. 만일 변경되지 않았다면, 버퍼(600) 내에서의 등록은 배제되며, 그리고 수신된 메시지는 저장되지 않는다. 데이터 무결성의 검사는 예컨대 점검 합계를 이용하여, 혹은 임의의 다른 방법(예컨대 패리티 비트 혹은 CRC)으로 실행될 수 있다.
숙련된 전문가라면, 본 발명의 사고를 배제하지 않으면서 본 발명으로부터 수많은 확장 가능성을 취할 수 있다. 다음에서는 실시예에 따라 단지 몇 가지 가능한 확장 가능성만이 설명된다.
데이터 전송 시스템이 운용되는 동안 메시지 메모리(300) 내의 메시지 객체가 재구성된다면, 식별 필드가 버퍼(600)의 실제 시간 윈도우 영역(ZFi 내지 ZFi=3)에 부합하는지 여부가 검사된다. 만약 부합한다면, 필요에 따라 대응하는 버퍼 요소(601 내지 604 및 601a 내지 604a)는 재설정된다. 이런 확장을 통해, 버퍼(600)의 크기에 무관하게, 식별 필드 내에 결정된 시간 윈도우(ZF)를 개시할 시점까지 메시지 객체를 재구성할 수 있다.
전술한 방법을 통해, 통신 모듈(100)의 메시지 메모리(300)는 곧바로 후행하는 시간 윈도우들(ZF)을 위해 그에 부합하는 메시지 객체들에 대해 예측한 방법으로 검색된다. 버퍼(600)에 저장되어 메시지 객체와 이 메시지 객체의 상태를 지시하는 포인터를 통해서는, 곧바로 후행하는 시간 윈도우(ZF)를 위해 제공된 메시지 객체에 대한 빠른 접근이 이루어질 수 있다. 다시 말해 시간 윈도우(ZF)별로 전체 메시지 메모리(300)에 대한 별도의 검색 실행은 더 이상 요구되지 않는다.
기술한 검색 방법의 이용은 통신 주기(KZY(n))별로 요구되는 메시지 메모 리(300)에 대한 검색 실행의 수를 감소시킨다. 그렇게 함으로써 통신 모듈(100)의 실시간 능력은 결정적으로 개선된다.
Claims (21)
- 사전 지정 가능한 시간 윈도우들(ZF)에서 통신 시스템의 통신 링크(101)를 통해 주기적으로 전송되는 메시지에 데이터를 전송하기 위한 방법이며, 통신 링크(101)를 통해 송신될 메시지와 송신된 메시지가 우선 통신 모듈(100)의 메시지 메모리(300) 내에 임시 저장되며, 실제 시간 윈도우(ZF)에서 송신 내지 수신될 메시지는 메시지 메모리(300)로부터 추출되어 송신 내지 수신되며, 상기 메시지 메모리(300)에 저장되는 전송 방법에 있어서,메시지 메모리(300)에서 메시지의 위치들을 결정하기 위해, 메시지 메모리(300)는 각각 복수의 후행하는 시간 윈도우(ZF)를 위해 정기적인 간격으로 선행되어 검색되며, 그 검색 실행의 결과로서 복수의 후행하는 시간 윈도우(ZF)에서 송신 내지 수신될 메시지들의 위치들이 메시지 메모리(300)에 할당된 버퍼(600)에 저장되는 것을 특징으로 하는 전송 방법.
- 제1항에 있어서, 데이터 전송의 범주에서, 실제 시간 윈도우(ZF)에서 통신 시스템을 통해 전송될 메시지가, 메시지 메모리(300)에 있어 시간 윈도우(ZF)를 위해 버퍼(600)에 명시된 그의 위치로부터 판독되어, 통신 링크(101)를 통해 전송되거나, 또는 실제 시간 윈도우(ZF)에서 통신 링크(101)를 통해 전송될 메시지가, 메시지 메모리(300)에 있어 시간 윈도우(ZF)를 위해 버퍼(600)에 명시된 그의 위치에 저장되는 것을 특징으로 하는 전송 방법.
- 제1항 또는 제2항에 있어서, 메시지 메모리(300) 내의 메시지들의 위치들이 버퍼(600)에 이미 저장되었던 목적에 해당하는 실제 시간 윈도우(ZF)와 이에 후행하는 복수의 시간 윈도우(ZF8-ZF11)를 위한 데이터 전송이, 각각의 시간 윈도우(ZF8-ZF11)에 도달한 후에, 상기 데이터 전송의 최종 시간 윈도우(ZF11)에 이어지는 시간 윈도우(ZF)와 이에 후행하는 복수의 시간 윈도우(ZF12-ZF15)를 위한 검색(SDL3)과 동시에 실행되는 것을 특징으로 하는 전송 방법.
- 제1항 내지 제3항 중 어느 한 항에 있어서, 검색 실행(SDL)의 복수의 시간 윈도우의 수는, 데이터 전송(DAT)을 위한 복수의 시간 윈도우의 수와 동일하게 구성되는 것을 특징으로 하는 전송 방법.
- 제1항 내지 제4항 중 어느 한 항에 있어서, 저장될 메시지들 내에, 제1 데이터 볼륨을 포함하는 제1 데이터(KD0, KD, KDk)와 제2 데이터 볼륨을 포함하는 제2 데이터(D0, D1, Dk)가 포함되며, 제1 데이터(KD0, KD1, KDk)는 메시지 메모리(300)의 헤드 세그먼트(HS)에서 메시지별로 제공되는 각각의 헤드 영역(HB0, HB1, HBk)에 저장되며, 제2 데이터(D0, D1, Dk)는 데이터 세그먼트(DS)에서 메시지별로 제공되는 각각의 데이터 영역(DB0, DB1, DBk)에 저장되는 것을 특징으로 하는 전송 방법.
- 제5항에 있어서, 메시지 메모리(300)의 헤드 영역(HB0, HB1, HBk)에는 메시지별로 각각의 메시지를 식별 표시하는 식별 문자가 저장되며, 그 식별 문자를 통해, 메시지는 소정의 통신 주기(KZY), 이 통신 주기(KZY) 내 소정의 시간 윈도우(ZF), 채널(CH A, CH B) 혹은 두 채널(CH A, CH B)에 할당될 수 있는 것을 특징으로 하는 전송 방법.
- 제1항 내지 제6항 중 어느 한 항에 있어서, 검색 실행(SDL) 동안 고려되고 복수의 후행하는 시간 윈도우(ZF) 중 어느 하나의 시간 윈도우에서 송신 내지 수신될 각각의 메시지에 대해, 버퍼(600)에는 2개의 필드("포인터", "상태")가 제공되며, 제1 필드("포인터")에는 메시지 메모리(300) 내에 저장된 메시지의 대응하는 위치를 지시하는 포인터가 저장되며, 제2 필드("상태")에는 메시지 메모리(300) 내에 저장된 메시지의 상태가 저장되는 것을 특징으로 하는 전송 방법.
- 제5항 또는 제7항에 있어서, 상기 포인터는 메시지 메모리(300)에 저장된 메시지에 있어 헤드 세그먼트(HS) 내의 헤드 영역(HB0, HB1, HBk) 내에 저장된 그의 제1 데이터(KD0, KD1, KDk)를 지시하는 것을 특징으로 하는 전송 방법.
- 제7항 또는 제8항에 있어서, 메시지 메모리(300) 내에 저장된 메시지의 상태로서, 버퍼(600)에, 고려되는 시간 윈도우(ZF)를 위해 주로 메시지가 수신 내지 송신되어야 하는지의 여부('empty') 및/또는 상기 메시지가 송신('tx_buf')되어야 하 는지 혹은 수신('rx_buf')되어야 하는지 여부에 대한 정보가 저장되는 것을 특징으로 하는 전송 방법.
- 제3항 내지 제9항 중 어느 한 항에 있어서, 버퍼(600)는 분할되며, 데이터 전송을 위한 상기 버퍼(600)의 제1 부분(601-604)에는, 메시지 메모리(300) 내의 메시지들의 위치들이 버퍼(600)에 이미 저장되었던 목적에 해당하는 실제 시간 윈도우(ZF)와 이에 후행하는 복수의 시간 윈도우(ZF8-ZF11)를 위한 메시지들의 위치들이 저장되며, 검색 실행을 위한 버퍼(600)의 제2 부분(601a-604a)에는, 데이터 전송의 최종 시간 윈도우(ZF11)에 이어지는 시간 윈도우(ZF)와 이에 후행하는 복수의 시간 윈도우(ZF12-ZF15)를 위한 상기 메시지들의 위치들이 저장되는 것을 특징으로 하는 전송 방법.
- 제1항 내지 제10항 중 어느 한 항에 있어서, 메시지 메모리(300) 내에서 메시지들의 위치들을 결정하기 위해, 메시지 메모리(300)는 각각 4개의 후행하는 시간 윈도우(ZF)를 위해 정기적인 간격으로 선행되어 검색되며, 검색 실행의 결과로서, 4개의 후행하는 시간 윈도우(ZF)에서 송신 내지 수신될 메시지들의 위치들이 상기 버퍼(600)에 저장되는 것을 특징으로 하는 전송 방법.
- 제1항 내지 제11항 중 어느 한 항에 있어서, 검색 실행의 범주에서 상기 메시지 메모리(300)는,메시지 메모리(300) 내에, 고려되는 전송 채널(CH A, CH B)을 위한 메시지들이 저장되는지의 여부 결정,메시지 메모리(300) 내에, 고려되는 통신 주기(KZY)를 위한 메시지들이 저장되는지 여부의 결정,메시지 메모리(300) 내에, 복수의 후행하는 시간 윈도우(ZF)를 위한 메시지들이 저장되는지 여부의 결정, 그리고결정된 메시지들이 송신 혹은 수신될 메시지들인지 여부의 결정과같은 상기한 기준들 중 어느 하나 혹은 그 이상의 기준에 따라 복수의 후행하는 시간 윈도우(ZF)를 위해 검색되는 것을 특징으로 하는 전송 방법.
- 통신 시스템 내에서 통신 링크(101)와 서브스크라이버 사이에 배치되는 통신 모듈(100)이며, 통신 시스템은 사전 지정된 시간 윈도우에서 메시지들을 주기적으로 전송할 수 있도록 형성되며, 통신 모듈(100)은, 서브스크라이버에 의해 통신 링크(101)를 통해 전송되어야 하거나 혹은 서브스크라이버를 위해 통신 링크(101)를 통해 수신되었던 메시지들을 임시 저장하기 위한 메시지 메모리(300)를 포함하는 통신 모듈(100)에 있어서,메시지 메모리(300) 내에서 메시지들의 위치들을 결정하기 위해, 각각 복수의 후행하는 시간 윈도우를 위해 정기적인 간격으로 선행하여 상기 메시지 메모리(300)를 검색하기 위한 수단, 메시지 메모리(300)에 할당된 버퍼, 그리고 검색 실행의 결과로서 상기 버퍼(600)에 복수의 후행하는 시간 윈도우에서 송신 내지 수 신될 메시지들의 위치들을 저장하기 위한 수단을 포함하는 것을 특징으로 하는 통신 모듈.
- 제13항에 있어서, 메시지 메모리(300)를 검색하기 위한 수단과 상기 버퍼(600)에 결정된 메시지들의 위치들을 저장하기 위한 수단은 자동 상태 머신(504)으로서 형성되는 것을 특징으로 하는 통신 모듈.
- 제13항 또는 제14항에 있어서, 통신 모듈(100)은 플렉스레이 사양에 따라 전송된 메시지들을 수신, 송신 및 임시 저장하기 위한 플렉스레이 통신 모듈로서 형성되는 것을 특징으로 하는 통신 모듈.
- 제13항 내지 제15항 중 어느 한 항에 있어서, 메시지 메모리(300)를 검색하기 위한 수단과 상기 버퍼(600)에 결정된 메시지들의 위치들을 저장하기 위한 수단은 청구항 제2항 내지 제12항 중 어느 한 항에 따른 전송 방법을 실행할 수 있도록 형성되는 것을 특징으로 하는 통신 모듈.
- 서브스크라이버(102)와 적어도 하나의 추가 서브스크라이버, 그리고 상기 서브스크라이버(102)가 연결되는 통신 링크(101)를 포함하여 구성되는 통신 시스템의 서브스크라이버(102)이며, 통신 링크(101)와 서브스크라이버(102) 사이에 통신 모듈(100)이 배치되며, 상기 통신 시스템은 사전 지정 가능한 시간 윈도우에서 메시 지들을 주기적으로 전송할 수 있도록 형성되며, 그리고 통신 모듈(100)은 서브스크라이버(102)에 의해 통신 링크(101)를 통해 전송되어야 하거나 혹은 서브스크라이버(102)를 위해 통신 링크(101)를 통해 수신되었던 메시지들을 임시 저장하기 위한 메시지 메모리(300)를 포함하는 방식으로 구성되는 통신 시스템의 서브스크라이버(102)에 있어서,통신 모듈(100)은 메시지 메모리(300)에서 메시지들의 위치들을 결정하기 위해 각각 복수의 후행하는 시간 윈도우(ZF)를 위해 정기적인 간격으로 선행하여 상기 메시지 메모리(300)를 검색하기 위한 수단과, 메시지 메모리(300)에 할당된 버퍼(600), 그리고 검색 실행(SDL)의 결과로서 버퍼(600)에 복수의 후행하는 시간 윈도우에서 송신 내지 수신될 메시지들의 위치들을 저장하기 위한 수단을 포함하는 것을 특징으로 하는 서브스크라이버.
- 제17항에 있어서, 서브스크라이버(102)는 공동의 반도체 장치에 통신 모듈(100)과 함께 통합되는 호스트 컴퓨터를 포함하는 것을 특징으로 하는 서브스크라이버.
- 제17항 또는 제18항에 있어서, 통신 모듈(100)은 청구항 제14항 내지 제16항 중 어느 한 항에 따라 형성되는 것을 특징으로 하는 서브스크라이버.
- 통신 링크(101)에 연결되는 복수의 서브스크라이버(102)를 포함하는 통신 시 스템이며, 통신 링크(101)와 서브스크라이버들(102) 중 적어도 하나의 서브스크라이버 사이에 통신 모듈(100)이 배치되며, 상기 통신 시스템은 사전 지정 가능한 시간 윈도우(ZF)에서 메시지들을 주기적으로 전송할 수 있도록 형성되며, 그리고 상기 통신 모듈(100)은 상기 적어도 하나의 서브스크라이버(102)에 의해 상기 통신 링크(101)를 통해 전송되어야 하거나; 혹은 적어도 하나의 서브스크라이버(102)를 위해 통신 링크(101)를 통해 수신되었던 메시지들을 임시 저장하기 위한 메시지 메모리(300)를 포함하는 방식으로 구성되는 상기 통신 시스템에 있어서,통신 모듈(100)은 메시지 메모리(300) 내에서 메시지들의 위치들을 결정하기 위해, 각각 복수의 후행하는 시간 윈도우(ZF)를 위해 정기적인 간격으로 선행하여 메시지 메모리(300)를 검색하기 위한 수단과, 메시지 메모리(300)에 할당된 버퍼(600), 그리고 검색 실행의 결과로서 상기 버퍼(600)에 복수의 후행하는 시간 윈도우(ZF)에서 송신 내지 수신될 메시지들의 위치들을 저장하기 위한 수단을 포함하는 것을 특징으로 하는 통신 시스템.
- 제20항에 있어서, 통신 모듈(100)은 청구항 제14항 내지 제16항 중 어느 한 항에 따라 형성되는 것을 특징으로 하는 통신 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102005004464A DE102005004464A1 (de) | 2005-01-31 | 2005-01-31 | Verfahren zur Speicherung von Botschaften in einem Botschaftsspeicher und Botschaftsspeicher |
DE102005004464.6 | 2005-01-31 | ||
PCT/EP2006/050477 WO2006079651A1 (de) | 2005-01-31 | 2006-01-26 | Verfahren zum übertragen von daten in botschaften über eine kommunikationsverbindung eines kommunikationssystems, sowie kommunikationsbaustein, teilnehmer eines kommunikationssystems und kommunikationssystem zur realisierung dieses verfahrens |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070114714A true KR20070114714A (ko) | 2007-12-04 |
KR101172103B1 KR101172103B1 (ko) | 2012-08-09 |
Family
ID=36180383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077017534A KR101172103B1 (ko) | 2005-01-31 | 2006-01-26 | 통신 시스템의 통신 링크를 통해 메시지에 데이터를전송하기 위한 전송 방법, 통신 모듈, 통신 시스템의서브스크라이버 및 상기 전송 방법을 구현하기 위한 통신시스템 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7801131B2 (ko) |
EP (1) | EP1846827B1 (ko) |
JP (1) | JP4740261B2 (ko) |
KR (1) | KR101172103B1 (ko) |
CN (1) | CN101111826B (ko) |
AT (1) | ATE483201T1 (ko) |
DE (2) | DE102005004464A1 (ko) |
ES (1) | ES2353810T3 (ko) |
RU (1) | RU2401452C2 (ko) |
WO (1) | WO2006079651A1 (ko) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007501583A (ja) * | 2003-05-21 | 2007-01-25 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 通信プロトコルに関するメッセージメモリ及び方法 |
DE602004027024D1 (de) * | 2004-08-05 | 2010-06-17 | Bosch Gmbh Robert | Kommunikationskontrolleur für FlexRay-Netze |
DE102005018837A1 (de) * | 2005-04-22 | 2006-10-26 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Synchronisation zweier Bussysteme sowie Anordnung aus zwei Bussystemen |
DE102005048582A1 (de) * | 2005-10-06 | 2007-04-12 | Robert Bosch Gmbh | Teilnehmerschnittstelle zwischen einem Mikrocontroller und einem FlexRay-Kommunikationsbaustein, FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle |
EP1998498B1 (de) * | 2007-05-26 | 2018-01-03 | Vector Informatik GmbH | Testvorrichtung und Testverfahren |
WO2012006311A1 (en) * | 2010-07-07 | 2012-01-12 | Huawei Technologies Co., Ltd. | Deterministic placement of timestamp packets using a periodic gap |
JP2012080379A (ja) * | 2010-10-04 | 2012-04-19 | Renesas Electronics Corp | 半導体データ処理装置及びデータ処理システム |
US8761190B2 (en) | 2011-01-06 | 2014-06-24 | GM Global Technology Operations LLC | Message loss prevention by using sender and receiver buffers in event-triggered distributed embedded real-time systems |
US8670314B2 (en) | 2011-01-06 | 2014-03-11 | GM Global Technology Operations LLC | Message loss prevention by using sender buffer and traffic shaping in event-triggered distributed embedded real-time systems |
EP2597832B1 (en) * | 2011-11-02 | 2016-12-28 | Renesas Electronics Europe Limited | Message buffer controller |
CN103259655B (zh) * | 2012-05-07 | 2016-03-16 | 中国交通通信信息中心 | 一种基于卫星通信业务的用户管理系统 |
DE102013217595A1 (de) * | 2013-09-04 | 2015-03-05 | Robert Bosch Gmbh | Bereitstellung unterschiedlicher Datenübertragungsraten und Redundanz durch gemeinsame und getrennte Nutzung von physikalischen Übertragungskanälen im Kraftfahrzeug |
US10579607B2 (en) * | 2017-04-28 | 2020-03-03 | Splunk Inc. | Single point of dispatch for hybrid cloud deployment for indexer clusters |
WO2019232482A1 (en) * | 2018-05-31 | 2019-12-05 | Synaptics Incorporated | Low power, high bandwidth, low latency data bus |
EP3790232A1 (en) * | 2019-09-09 | 2021-03-10 | TTTech Computertechnik Aktiengesellschaft | Method for generating a schedule for mixed critical computer networks |
EP4002770B1 (en) * | 2020-11-16 | 2024-04-03 | Ratier-Figeac SAS | Serial time triggered data bus |
CN112769661B (zh) * | 2020-12-29 | 2022-07-29 | 北京航天自动控制研究所 | 一种高速时分复用通信总线时隙分配与控制方法 |
KR20220128094A (ko) * | 2021-03-12 | 2022-09-20 | 주식회사 에이치엘클레무브 | 차량 통신 제어 장치 및 제어 방법 |
TWI789103B (zh) * | 2021-11-08 | 2023-01-01 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
US11776618B2 (en) | 2021-11-08 | 2023-10-03 | Macronix International Co., Ltd. | Memory device with in-memory searching array and operation method thereof for implementing finite state machine |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3908092A (en) * | 1973-12-21 | 1975-09-23 | Bell Telephone Labor Inc | Program controlled time division switching systems |
US4521880A (en) * | 1983-12-06 | 1985-06-04 | At&T Bell Laboratories | Time-slot interchanger for fast circuit switching |
US5884040A (en) | 1995-01-11 | 1999-03-16 | Sony Corporation | Per-packet jamming in a multi-port bridge for a local area network |
US6311212B1 (en) * | 1998-06-27 | 2001-10-30 | Intel Corporation | Systems and methods for on-chip storage of virtual connection descriptors |
JP4319268B2 (ja) * | 1998-08-07 | 2009-08-26 | 富士通株式会社 | 動画像復号方法及び装置 |
EP1154352A4 (en) * | 1999-01-29 | 2009-09-30 | Digitaldesign Co Ltd | DATA TRANSMISSION PROCEDURE, COMPUTER READABLE MEDIA AND DATA TRANSMISSION DEVICE |
JP3445183B2 (ja) * | 1999-02-18 | 2003-09-08 | 株式会社日本自動車部品総合研究所 | データ中継装置および多重通信システム |
DE10215719A1 (de) * | 2002-04-10 | 2003-10-30 | Philips Intellectual Property | Datenspeicher |
WO2004098955A1 (en) | 2003-05-06 | 2004-11-18 | Philips Intellectual Property & Standards Gmbh | Timeslot sharing over different cycles in tdma bus |
US7272853B2 (en) | 2003-06-04 | 2007-09-18 | Microsoft Corporation | Origination/destination features and lists for spam prevention |
US7398338B2 (en) * | 2004-06-30 | 2008-07-08 | Sap Ag | Flexible and error resistant data buffering and connectivity |
-
2005
- 2005-01-31 DE DE102005004464A patent/DE102005004464A1/de not_active Withdrawn
-
2006
- 2006-01-26 WO PCT/EP2006/050477 patent/WO2006079651A1/de active Application Filing
- 2006-01-26 ES ES06701281T patent/ES2353810T3/es active Active
- 2006-01-26 DE DE502006007959T patent/DE502006007959D1/de active Active
- 2006-01-26 AT AT06701281T patent/ATE483201T1/de not_active IP Right Cessation
- 2006-01-26 CN CN2006800036863A patent/CN101111826B/zh not_active Expired - Fee Related
- 2006-01-26 EP EP06701281A patent/EP1846827B1/de not_active Not-in-force
- 2006-01-26 US US11/795,431 patent/US7801131B2/en not_active Expired - Fee Related
- 2006-01-26 KR KR1020077017534A patent/KR101172103B1/ko active IP Right Grant
- 2006-01-26 JP JP2007552647A patent/JP4740261B2/ja not_active Expired - Fee Related
- 2006-01-26 RU RU2007132705/09A patent/RU2401452C2/ru not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP4740261B2 (ja) | 2011-08-03 |
CN101111826B (zh) | 2010-06-09 |
EP1846827A1 (de) | 2007-10-24 |
EP1846827B1 (de) | 2010-09-29 |
ATE483201T1 (de) | 2010-10-15 |
JP2008529374A (ja) | 2008-07-31 |
DE502006007959D1 (de) | 2010-11-11 |
WO2006079651A1 (de) | 2006-08-03 |
US7801131B2 (en) | 2010-09-21 |
US20080137679A1 (en) | 2008-06-12 |
DE102005004464A1 (de) | 2006-10-26 |
KR101172103B1 (ko) | 2012-08-09 |
CN101111826A (zh) | 2008-01-23 |
RU2401452C2 (ru) | 2010-10-10 |
ES2353810T3 (es) | 2011-03-07 |
RU2007132705A (ru) | 2009-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101172103B1 (ko) | 통신 시스템의 통신 링크를 통해 메시지에 데이터를전송하기 위한 전송 방법, 통신 모듈, 통신 시스템의서브스크라이버 및 상기 전송 방법을 구현하기 위한 통신시스템 | |
KR101028898B1 (ko) | 플렉스레이 통신 장치 | |
RU2377729C2 (ru) | Способ и устройство для обращения к памяти сообщений коммуникационного модуля | |
KR100981461B1 (ko) | 통신 칩 및 메시지 관리자에 의한 통신 칩의 메시지 메모리의 데이터에 대한 액세스 제어 방법 | |
US8792508B2 (en) | Subscriber and communication controller of a communication system and method for implementing a gateway functionality in a subscriber of a communication system | |
JP4903801B2 (ja) | FlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェース、およびFlexRay通信モジュールとFlexRay加入者装置とを繋ぐ加入者インタフェースを経由するメッセージの伝送方法 | |
US20100161834A1 (en) | User interface between a microcontroller and a flexray communications module; flexray user; and method for transmitting messages via such an interface | |
RU2398357C2 (ru) | Способ сохранения сообщений в памяти сообщений и соответствующая память сообщений | |
US20090300254A1 (en) | Method for Connecting a Flexray user having a Microcontroller to a Flexray Communications line Via a Flexray Communications Control Device, and Flexray Communications Control Device, Flexray User, and Flexray Communications System for Realizing this Method | |
JP2001222465A (ja) | ネットワーク・プロセッサのためのdramデータ記憶及び移動 | |
US20090175290A1 (en) | Flexray communications module, flexray communications controller, and method for transmitting messages between a flexray communications link and a flexray participant | |
JPH11212939A (ja) | 共通バスによって相互接続されたプロセッサを有するデータプロセッサユニット間でデータを交換するためのシステム | |
CN109145397A (zh) | 一种支持并行流水访问的外存仲裁结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150728 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160729 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170725 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20180724 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20190722 Year of fee payment: 8 |