KR101560015B1 - 메모리 영역으로의 복수의 프로세서의 액세스를 제어하는 방법 및 상기 방법을 구현하기 위한 메시지 메모리를 구비한 통신 모듈 - Google Patents

메모리 영역으로의 복수의 프로세서의 액세스를 제어하는 방법 및 상기 방법을 구현하기 위한 메시지 메모리를 구비한 통신 모듈 Download PDF

Info

Publication number
KR101560015B1
KR101560015B1 KR1020107025375A KR20107025375A KR101560015B1 KR 101560015 B1 KR101560015 B1 KR 101560015B1 KR 1020107025375 A KR1020107025375 A KR 1020107025375A KR 20107025375 A KR20107025375 A KR 20107025375A KR 101560015 B1 KR101560015 B1 KR 101560015B1
Authority
KR
South Korea
Prior art keywords
memory
processor
access
data packet
stored
Prior art date
Application number
KR1020107025375A
Other languages
English (en)
Other versions
KR20110014988A (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 KR20110014988A publication Critical patent/KR20110014988A/ko
Application granted granted Critical
Publication of KR101560015B1 publication Critical patent/KR101560015B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)

Abstract

본 발명은 메모리(1) 영역으로의 복수의 프로세서(2)의 액세스를 제어하기 위한 방법에 관한 것이다. 메모리(1) 내에 각각 가장 최근에 저장된 유효 데이터 패킷에 복수의 프로세서가 데이터 손실 및 대기시간 없이 액세스할 수 있도록 하기 위해, 본 발명은 프로세서들(2) 중 제2 프로세서(#2)가 메모리(1)에 액세스하는 데 사용되는 어드레스 버스(3) 부분을 프로세서들(2) 중 제1 프로세서(#1)가 제어하는 방식을 제안하며, 이때 제1 프로세서(#1)는 어드레스 버스(3) 부분의 제어를 통해 제2 프로세서(#2)가 어느 메모리 영역에 액세스할 것인지의 결정에 영향을 미친다.

Description

메모리 영역으로의 복수의 프로세서의 액세스를 제어하는 방법 및 상기 방법을 구현하기 위한 메시지 메모리를 구비한 통신 모듈{METHOD FOR CONTROLLING ACCESS TO REGIONS OF A STORAGE COMPRISING A PLURALITY OF PROCESSES AND COMMUNICATION MODULE HAVING A MESSAGE STORAGE FOR IMPLEMENTING THE METHOD}
본 발명은 메모리 영역으로의 복수의 프로세서의 액세스를 제어하기 위한 방법에 관한 것이다. 본 발명은 또한 통신 매체에 접속된, 통신 시스템 가입자의 통신 모듈에 관한 것이며, 상기 모듈은 상기 매체를 통해 수신되거나 상기 매체를 통해 전송될 메시지의 임시 저장을 위한 메시지 메모리를 포함한다.
종래 기술에는, 상이한 프로세서들이 데이터를 상호 교환하기 위해 동일한 메모리를 사용하는 매우 다양한 응용예들이 존재한다. 그러한 프로세서들의 일례로, 중앙 처리 유닛(Central Processing Unit; CPU)과 임의의 주변 기기가 있으며, 이 두 장치는 상호 간에 데이터를 교환하기 위해 동일한 랜덤 액세스 메모리(Random Access Memory, RAM)에 액세스한다.
복수의 프로세서가 동일한 메시지 메모리에 액세스 시, 교환될 데이터가 개별 메모리 워드로서 존재할 뿐만 아니라 각각 복수의 워드를 포함하는 데이터 패킷으로서도 존재하는 경우, 데이터 일관성 및 데이터 무결성의 문제가 더욱 중요해진다. 예컨대 하나의 프로세서가 특정 데이터 패킷을 판독하는 중에, 또 다른 프로세서가 동일한 데이터 패킷을 변경하는 경우에 데이터 일관성은 손상된다. 그러한 경우 판독 프로세서는 기존의 메모리 워드와 새로운 메모리 워드가 혼합된 데이터 패킷을 얻을 수 있다. 이는 데이터 패킷 내용의 추가 처리 시 중대한 문제를 야기할 수 있다.
이를 방지하기 위해 종래 기술에는, 두 프로세서 중 하나가 하나의 데이터 패킷에 액세스하기 전에 다른 프로세서를 관찰하고, 필요한 경우 상기 다른 프로세서가 그의 액세스를 종료할 때까지 대기하는 방법이 공지되어 있다. 그 대안으로, 하나의 프로세서가 다른 프로세서의 액세스를 차단할 수도 있는데, 이 경우 차단된 프로세서가 다른 작업을 위해 버퍼 메모리를 사용하기 전에 그의 데이터를 저장할 수 없다면 데이터가 손실될 수 있다. 또한, 두 프로세서 중 적어도 하나는 메모리에 간접적으로만 액세스하는 다른 방법도 공지되어 있으며, 이 경우 고유의 메모리 관리 제어 시스템이 데이터 패킷을 일관된 형태로 메모리 내에 저장하고, 상기 메모리로부터 호출한다. 그러나 이 방법은 비교적 복잡하며 비용이 많이 든다. 이러한 공지된 방법들은 데이터 패킷의 다중 저장과 결합될 수 있다.
종래 기술에는 또한 소위 플렉스레이(FlexRay) 통신 제어기(CC) 형태의 통신 모듈이 공지되어 있다. 통신 모듈은 메시지를 전송하는 플렉스레이 통신 매체, 즉 데이터 버스를 플렉스레이 가입자와 연결하는 데 사용된다. 특히 플렉스레이에서 사용하기에 적절한 통신 제어기의 예가 DE 10 2005 034 744 A1호에 기술되어 있다. 가입자와 통신 매체 사이의 메시지 전송을 위해 통신 제어기 내에 특수하게 구성된 메시지 저장 장치가 제공된다. 메시지 전송 또는 메모리의 관리는 유한 상태 기계에 의해 제어된다.
종래 기술로부터 공지된 통신 제어기 내에는 2개의 이른바 임시 버퍼(TBF)가 제공되며, 그 중 하나는 채널(A)용 버퍼이고 다른 하나는 채널(B)용 버퍼이다. 각각의 임시 버퍼는 2개의 메시지, 즉 Rx(수신) 메시지와 Tx(송신) 메시지를 저장할 수 있다. 상기 인터페이스 유닛은 그 밖에도 각각 메시지 2개의 용량을 가진 이른바 입력 버퍼(IBF) 및 출력 버퍼(OBF)를 포함한다.
임시 버퍼(TBF)로는 한편으로는 통신 매체로부터 액세스되고, 다른 한편으로는 플렉스레이 통신 제어기의 이른바 메시지 핸들러를 통해 액세스된다. 입력 버퍼 또는 출력 버퍼(IBF; OBF)로는 한편으로는 가입자의 호스트 CPU를 통해, 다른 한편으로는 메시지 핸들러를 통해 액세스된다. 언급한 프로세서들로부터 통신 제어기의 상기 버퍼로의 액세스 시 데이터 일관성 및 데이터 무결성의 유지 여부는 매우 중요한 전제 조건이다. 이러한 이유에서, 공지된 통신 제어기에서는 호스트 CPU가 메시지 메모리(IBF; OBF)에 직접 액세스하지 않는다. 그 대신, 입력 버퍼 또는 출력 버퍼가 서로 분리된 2개의 메모리 블록(이른바 IBF와 IBF 섀도우; OBF와 OBF 섀도우)을 갖는다. 데이터를 송출하기 위해 호스트 CPU는 입력 버퍼에 데이터를 기록한 다음, 메시지 전송을 초기화한다. 이어서 IBF의 내용과 IBF 섀도우의 내용이 교체된다. 그런 다음 IBF 섀도우로부터 메시지 메모리(소위 메시지 램)로 데이터 전송이 시작된다. 호스트 CPU는 IBF 섀도우로부터 메시지 램으로의 데이터 전송이 아직 진행되는 동안 후속 메시지의 데이터를 미리 입력 버퍼(IBF)에 기록할 수 있다. 이어서 데이터는 메시지 램으로부터 통신 매체를 통해 다른 가입자에게 전송된다. IBF 섀도우와 메시지 램 사이의 데이터 전송이 종료된 후, IBF의 내용과 IBF 섀도우의 내용이 다시 교체되는 등의 프로세스가 진행된다.
이와 같이 비교적 복잡한 조치를 통해 데이터 무결성은 유지될 수 있지만, 메시지 메모리(IBF; OBF)가 각각 이중으로 구현되어야 하기 때문에 매우 큰 칩 면적이 소요된다. 공지된 통신 제어기의 또 다른 단점은, 메시지 핸들러가 상대적으로 크고 고가인 유한 상태 기계(이른바 State Machine)라는 점이다. 또한 전술한 방법은 메시지 메모리(메시지 램) 내에 최근의 데이터뿐만 아니라 더 이전의 데이터도 저장되도록 한다. 게다가 호스트 CPU가 입력 버퍼 또는 출력 버퍼(IBF; OBF)를 통해 메시지 메모리(메시지 램)에 액세스하도록 하는 것은 비교적 복잡한데, 그 이유는 직접 액세스가 불가능하고 오직 IBF 섀도우 또는 OBF 섀도우를 통한 간접 액세스만 가능하기 때문이다.
전술한 종래 기술에 기초하여 본 발명의 과제는, 복수의 프로세서가 동일한 메모리에 더욱 용이하게, 특히 더욱 빠르게 액세스할 수 있도록 하고, 이를 경제적으로 구현할 수 있도록 하는 동시에 데이터 무결성이 보장되도록 하는 것이다.
상기 과제의 해결을 위해, 도입부에 언급한 유형의 메모리 영역으로의 액세스를 제어하는 방법에 기초하여, 프로세서들 중 제1 프로세서가 프로세서들 중 다른 제2 프로세서의 메모리 액세스에 사용되는 어드레스 버스 부분을 제어하고, 상기 제1 프로세서는 어드레스 버스 부분의 제어를 통해 제2 프로세서가 어느 메모리 영역에 액세스할 것인지의 결정에 영향을 미치도록 하는 방법이 제안된다.
즉, 본 발명에 따라 메모리 내에 각각 가장 최근에 저장된 유효 데이터 패킷으로 두 프로세서 모두 데이터 손실 및 대기시간 없이 액세스할 수 있는 방식으로, 하나의 프로세서가 메모리 내에 저장된 데이터 패킷으로의 다른 프로세서의 액세스를 제어하는 방법이 제안된다. 본 발명에 따른 방법은 복수의 프로세서, 특히 2개의 프로세서가 동시에 액세스할 수 있는 메모리(듀얼 포트 램; Dual-Ported RAM)뿐만 아니라, 복수의 프로세서가 교대로, 특히 시분할 다중 방식으로, 액세스하는 메모리(이른바 싱글 포트 램; Single-Ported RAM)에도 적합하다. 상기 방법은 2개의 프로세서가 동일한 메모리에 액세스하는 경우뿐만 아니라, 2개 이상의 프로세서가 동일한 메모리에 액세스하는 경우에도 사용될 수 있다.
본 발명에 따른 방법에서는 프로세서들 중 하나가 다른 하나의 프로세서의 메모리 액세스에 사용되는 어드레스 버스 부분을 제어한다. 제1 프로세서에 의한 어드레스 버스의 제어는 예컨대 기록 가능한 제어 레지스터를 통해 이루어질 수 있다. 이로써 2개의 또는 모든 프로세서가, 복잡한 메모리 관리 제어 시스템 없이도 데이터 패킷의 손실을 수반하지 않으면서 대기시간없이 동일한 메모리에 액세스할 수 있는 가능성이 간단하게 그리고 경제적으로 제공된다.
본 발명에 따른 방법에서는 바람직하게 모든 데이터 패킷이 동일한 크기를 갖는다. 특히 모든 데이터 패킷은 2n개의 메모리 워드를 포함한다. 데이터 패킷들의 크기가 동일하지 않은 경우, 데이터 패킷들은 바람직하게 두 부분, 즉 고정된 크기, 특히 2n개의 메모리 워드를 갖는 소위 헤더(header)와, 가변적인 크기를 갖는 바디(body)로 나뉜다. 헤더는 동일한 메모리 또는 다른 메모리에 저장될 수 있는 바디를 가리키는 포인터를 포함한다. 데이터 패킷 또는 데이터 패킷의 헤더는 바람직하게 각각 적어도 2개의 버전으로 메모리에 저장된다.
본 발명에 따른 방법에서는 제1 프로세서가 메모리의 모든 메모리 영역에 액세스할 수 있다. 또한, 제1 프로세서는 또 다른 프로세서가 동일한 메모리에 액세스하는 데 사용되는 어드레스 버스 신호를 변경할 수 있다. 이는 동일한 크기의 데이터 패킷들로의 액세스에만 적용되거나, 또는 데이터 패킷이 헤더와 바디로 나뉘어 있는 경우에는 동일한 크기의 헤더로의 액세스에 적용된다. 데이터 패킷의 바디로의 액세스는 변경되지 않고, 관련 헤더에 저장된 바디 포인터를 통해 이루어진다.
2m개 이하의 데이터 패킷 중 하나 또는 각각 2n개의 메모리 워드로 구성된 데이터 패킷의 2m개의 헤더에 액세스하는 추가 프로세서는 특정 비트 길이의 어드레스 신호를 발생시킨다. 데이터 패킷 또는 데이터 패킷 헤더의 크기가 2n-메모리 워드이고, 상기 추가 프로세서가 2m개 이하의 데이터 패킷 또는 2m개의 데이터 패킷 헤더에 액세스할 경우, 제2 프로세서의 어드레스 신호의 길이는 (m + n)-비트이다. 그러나 상기 추가 프로세서는 그에 의해 발생한 어드레스 신호를 이용하여 다중 저장된 데이터 패킷의 어드레스들, 즉 다양한 버전의 데이터 패킷들 사이를 구별하지 못한다. 이러한 구별을 위해서는 제1 프로세서에 의해 제공되는 추가의 어드레스 비트가 필요하다. 바람직하게는 제1 프로세서에 의해 제어되는 제어 레지스터로부터 추가 어드레스 비트가 생성된다. k개의 추가 비트를 이용하여, 특정 데이터 패킷 또는 특정 데이터 패킷의 헤더의 2k개의 저장된 버전들 간의 구별이 가능하다. 그 결과, 총 (m + n + k) 비트의 어드레스 신호가 생성된다. 어드레스 신호 내에서의 3개의 비트군의 위치는 임의적이다.
종속 청구항들은 본 발명에 따른 방법의 바람직한 실시예들을 포함한다. 본 발명의 특징들 및 장점들은 하기에서 도면을 참고로 더 상세히 설명된다.
도 1은 복수의 프로세서가 액세스할 수 있는 상이한 영역들을 가진 메모리의 개략도이다.
도 2는 메모리의 영역들로의 액세스가 본 발명에 따른 방법으로 제어되는 경우 메모리 내용에 대한 일례를 도시한 표이다.
도 3은 본 발명에 따른 방법을 설명하기 위한 개략적인 블록 회로도이다.
도 4는 통신 매체에 접속된 복수의 통신 가입자를 가진 통신 시스템의 개략도로서, 상기 통신 시스템은 각각 본 발명에 따른 방법으로 상이한 프로세서들이 액세스할 수 있는 메시지 메모리를 구비한 통신 제어기를 포함한다.
도 1에는 예컨대 랜덤 액세스 메모리(Random Access Memory; RAM)로서 형성된 메모리(1)가 도시되어 있다. 특히 상기 메모리는 듀얼 포트 램 또는 싱글 포트 램으로서 형성될 수 있다. 물론 상기 메모리(1)는 임의의 다른, 휘발성 또는 비휘발성의 기록 가능 메모리로서 형성될 수도 있다. 복수의 프로세서[2 (#1, #2, #n)]가 메모리(1)의 영역들에 액세스할 수 있다. 메모리 영역으로의 액세스는 특히 메모리(1)에 대한 기록 액세스 및/또는 판독 액세스를 포함한다. 프로세서들(2)은 예컨대 동일한 메모리(1)의 영역들에 액세스할 수 있는 1개의 중앙 처리 유닛(Central Processing Unit; CPU) 및 임의의 주변 기기를 포함한다.
메모리(1)는 -예컨대 도 4에 도시된 것처럼- 예컨대 플렉스레이 네트웍, CAN 네트웍 또는 TTCAN 네트웍과 같은 통신 시스템(33)의 통신 가입자(32)의 통신 제어기(CC, 31)의 부분일 수도 있다. 이 경우, 메모리(1)에는 한편으로 통신 매체(30)(예: 플렉스레이 버스, CAN 버스, TTCAN 버스)를 통해 액세스될 수 있고, 다른 한편으로는 통신 제어기(31)가 할당된 통신 가입자(32)의 호스트 프로세서(34, Host-CPU)로부터 액세스될 수 있다.
프로세서들(2)은 특히 데이터 교환을 위해 공통 메모리(1)로의 액세스를 이용한다. 교환될 데이터가 개별 메모리 워드로서 존재할 뿐만 아니라 복수의 워드를 포함하는 데이터 패킷으로서도 존재하는 경우, 데이터 무결성의 문제, 특히 데이터 일관성의 문제가 대두된다. 메모리 워드는 특정 처리 유닛의 시스템 고유의 저장 단위이다. 1개의 워드는 처리 유닛의 프로세서에 의해 1개의 처리 단계에서 실행될 수 있는 최대 데이터량이며, 대개 주 데이터 버스의 폭에 상응한다. 일반적인 워드폭은 16비트와 32비트이다. 예컨대 하나의 프로세서(#1)가 특정 데이터 패킷을 판독하는 도중에 또 다른 프로세서(#2)가 동일한 데이터 패킷을 변경하는 경우, 메모리(1) 내에 저장된 데이터들의 일관성이 손상될 수 있다. 이 경우, 판독 프로세서(#1)는 기존의 데이터 워드와 새로운 데이터 워드가 혼합되어 있는 패킷을 얻을 수 있다. 이를 방지하기 위해, 본 발명에서는 두 프로세서 모두 데이터 손실 및 대기시간 없이 각각 가장 최근의 유효 데이터 패킷에 액세스할 수 있도록, 하나의 프로세서(2)가 메모리(1) 내에 저장된 데이터 패킷으로의 또 다른 프로세서(2)의 액세스를 제어하는 방법을 제안한다. 이 방법은 2개 이상의 프로세서(2)가 동시에 액세스할 수 있는 메모리(1, 듀얼 포트 램)의 경우뿐만 아니라, 교대로, 바람직하게는 시분할 다중 방식으로 액세스되는 메모리(1, 싱글 포트 램)의 경우에도 적합하다.
하기에서는 도 2 및 도 3을 토대로 본 발명에 따른 방법을 더 세부적으로 상세히 설명한다. 본 발명에 따른 방법에서는 프로세서들 중 하나(#1), 예컨대 CPU가 또 다른 프로세서(#2), 예컨대 주변 모듈의 메모리(1) 액세스에 사용되는 어드레스 버스(3) 부분을 제어한다. 제1 프로세서(#1)에 의한 어드레스 버스의 제어는 바람직하게 기록 가능한 제어 레지스터(4)를 통해 이루어진다. 본 발명에 따른 방법의 장점은, 두 프로세서(#1, #2) 모두[또는 메모리(1)에 액세스할 수 있는 모든 프로세서(2)]가 대기시간 없이 메모리(1)에 액세스할 수 있고, 데이터 패킷이 소실되지 않으며, 복잡한 메모리 관리 시스템이 불필요하다는 데 있다.
메모리(1) 내에 저장된 데이터 패킷들은 모두 동일한 크기를 갖는다. 바람직하게는 데이터 패킷이 2n개의 메모리 워드를 포함한다. 데이터 패킷들의 크기가 동일하지 않은 경우, 데이터 패킷들은 두 부분으로, 즉 고정된 크기를 갖는 헤더와 가변적인 크기를 갖는 바디로 나뉜다. 헤더의 크기는 바람직하게 2n개의 메모리 워드에 상응한다. 헤더는 동일한 메모리(1) 또는 다른 메모리 내에 존재할 수 있는 바디를 가리키는 포인터를 포함한다. 데이터 패킷들은 각각 적어도 2개의 상이한 버전(A, B)으로 메모리(1) 내에 저장된다. 도 2에 5-비트폭 벡터로써 어드레싱된 총 32개의 메모리 워드를 포함하는 메모리(1) 내의 데이터 관리의 일례가 도시되어 있다. 메모리(1)는 각각 4(= 22)개의 데이터 워드(n = 2)를 갖는, 각각 2(= 21)개 버전(k = 1)의 4(= 22)개의 데이터 패킷(m = 2)을 포함한다.
본 발명에 따른 방법에서는 제1 프로세서(#1)가 메모리(1)의 모든 부분에 액세스할 수 있다. 또한, 제1 프로세서(#1)는 제2 프로세서(#2)가 상기 메모리(1)에 액세스하는 데 사용되는 [어드레스 버스(3)의] 어드레스 버스 신호를 변경할 수 있다. 이는 동일한 크기의 데이터 패킷들로의 액세스에 적용되거나, 또는 데이터 패킷이 헤더와 바디로 나뉘어 있는 경우에는 데이터 패킷의 헤더로의 액세스에 적용된다. 데이터 패킷의 바디로의 액세스는 변경되지 않는다.
각각 2개의 2n-메모리 워드를 포함하는 2m개 이하의 데이터 패킷 중 하나(또는 2m개 이하의 데이터 패킷 헤더 중 하나)에 액세스하는 제2 프로세서는 (m + n)-비트 길이의 어드레스 버스 신호를 발생시킨다. 어드레스 버스(3)에서의 상기 신호를 통해 제2 프로세서(#2)는 특정 데이터 패킷의 특정 데이터 워드에 또는 메모리(1) 내 관련 영역에 액세스할 수 있다. 그러나 제2 프로세서(#2)는 상기 어드레스 버스 신호를 이용하여, 다중 저장된 데이터 패킷의 어드레스들, 즉 데이터 패킷의 상이한 버전들 간의 구별은 하지 못한다. 이러한 구별을 위해 필요한 추가의 어드레스 비트는 제1 프로세서(#1)에 의해 제어되는 제어 레지스터(4)로부터 제공된다. k개의 추가 비트를 이용하여, 특정 데이터 패킷의 2k개의 저장된 버전들 간의 구별이 가능해진다. 그 결과, 총 (m + n + k)-비트 길이의 어드레스 버스 신호(5)가 생성된다. 이때, 어드레스 신호(5) 내에서의 3개의 비트군의 위치는 임의적이다. 도 2에 도시된 바와 같이 관리되는 메모리(1) 내에는 -앞서 언급했듯이- 각각 4개의 데이터 워드(n = 2)를 갖는 4개의 데이터 패킷(m = 2)이 데이터 패킷 당 2개의 상이한 버전(k = 1)으로 저장되어 있다. 도 2에서는 "데이터 패킷"-열은 "10"으로, "버전"-열은 "11"로, "메모리 워드"-열은 "12"로, 그리고 "어드레스"-열은 "13"으로 기재되어 있다. 즉, 메모리(1) 내에는 5-비트폭 벡터를 통해 어드레싱될 수 있는 총 32개의 메모리 워드를 위한 공간이 제공된다. 어드레스는 비트들(m_k_n)로 구성되어 있다.
메모리(1) 내에 포함된 데이터 패킷 각각을 위해 k-비트폭의 2단계 제어 레지스터(4)가 제공되며, 상기 제어 레지스터를 이용하여 제1 프로세서(#1)는 제2 프로세서(#2)가 원하는 데이터 패킷의 어느 버전에 액세스할 수 있는지(또는 액세스해야 하는지)를 세팅할 수 있다. 레지스터(4)는 바람직하게 다단계 방식으로, 특히 2단계 방식으로 구성된다. 즉, 전술한 실시예에서는 k-비트폭의 2단계 레지스터(4)가 총 4개 존재한다. 레지스터(4)의 2개의 단계는 각각 도면부호 "6"과 "7"로 기재되어 있다. 제1 프로세서(#1)는 제2 프로세서(#2)가 액세스해도 되는 데이터 패킷의 특정 버전(11)을 선택할 수 있거나, 단지 후속 가용 버전(11)으로의 전환을 위한 제어 신호를 공급할 수 있다. 제1 프로세서(#1)는 레지스터(4)의 제1 단계(6)로의 기록 액세스는 가능하지만(도면부호 20), 레지스터(4)의 제2 단계(7)로의 기록 액세스는 불가능하다. 제1 프로세서(#1)에 의한 제1 단계(6)의 기록이 끝나면, 제2 프로세서(#2)가 제2 단계(7)를 잠그지 않은 경우(도면부호 22), 제1 단계(6)로부터 데이터가 바람직하게는 즉시 제2 단계(7)로 복사된다(도면부호 21). 이 경우, 제2 단계(7)의 출력이 어드레스 버스 신호(5)로 삽입된다(도면부호 23). 레지스터(4)의 제2 단계(7)가 잠겨있는 경우, 잠금이 해제된 후에야 제1 단계(6)의 데이터가 제2 단계(7)로 복사된다. 제1 프로세서(#1)가 변경된 어드레스 버스 신호를 통해서 메모리(1) 내의 데이터 패킷에 액세스하는 것도 고려될 수 있는데, 이 경우, 물론 제2 프로세서(#2)와 동일한 버전에 액세스하지는 않는다.
본 발명에 따른 방법의 관리는 제1 프로세서(#1)로부터 제2 프로세서(#2)로 전송되는 데이터 패킷들과, 그와 반대 방향으로 제2 프로세서(#2)로부터 제1 프로세서(#1)로 전송되는 데이터 패킷들 사이에 차이가 있다.
우선 제1프로세서(#1)로부터 제2 프로세서(#2)로 전송되는 데이터 패킷들을 위한 본 발명에 따른 방법의 절차를 설명한다. 먼저, 제2 프로세서(#2)는 액세스하지 못하는 특정 데이터 패킷(10)의 특정 버전(11)으로 제1 프로세서(#1)가 자신의 데이터를 기록한 다음, 곧바로 데이터 패킷(10)의 상기 버전(11)에 대한 제2 프로세서(#2)의 액세스를 스위칭한다.
데이터 패킷(10)을 판독하는 제2 프로세서(#2)는 우선 상기 패킷(10)을 위한 제어 레지스터(4)의 제2 단계(7)를 잠그고 나서(22), 블록 전송 시 자신이 액세스할 수 있는 관련 데이터 패킷(10)(경우에 따라 헤더 및 바디)의 버전(11)을 판독하고, 블록 전송을 종료하기 위해 제2 단계(7)의 잠금을 해제한다(22).
제1 프로세서(#1)의 기록 액세스와 제2 프로세서(#2)의 판독 액세스가 시간적으로 중첩되는 경우, 제2 프로세서(#2)는 데이터 패킷(10)의 더 이전의 버전(11)으로부터 일관성을 가진 데이터들을 판독한다. 이러한 특성은 제2 프로세서(#2)가 시간 제어형 통신 제어기(CC, 31)(예: TTCAN CC 또는 플렉스레이 CC)인 경우에 매우 중요한 의미가 있다. 이 경우, 데이터 패킷(10)이 판독되어야 하는 시점이 통신 시스템(33)에 의해 사전 설정된다. 즉, 시간 제어형 통신 시스템(33)에서는 제1 프로세서(#1)가 그의 기록 액세스를 종료할 때까지 데이터 패킷(10)으로의 통신 제어기(31)의 판독 액세스를 유보할 필요가 없다.
여기서는, 제1 프로세서(#1)가 데이터를 메모리 영역으로 기록하는 속도가, 제2 프로세서(#2)에 의해 상기 데이터가 호출될 수 있는 속도보다 빠르지 않다고 가정된다. 선택적으로, 제2 프로세서(#2)가 패킷 버전들(11)의 마지막 스위칭 이후 특정 메모리 영역의 데이터를 1회 이상 호출하였는지의 여부를 제1 프로세서(#1)로 시그널링할 수 있다.
제2 프로세서(#2)로부터 제1 프로세서(#1)로 데이터가 전송되어야 하는 경우, 먼저 제1 프로세서(#1)는 그가 제2 프로세서(#2)로부터 얻고자 하는 데이터를 제2 프로세서(#2)가 액세스할 수 없는 데이터 패킷(10)의 버전(11)으로부터 판독한 다음, 곧바로 상기 데이터 패킷(10)의 버전(11)으로의 제2 프로세서(#2)의 액세스를 스위칭한다.
데이터 패킷(10)에 기록 액세스를 수행하는 제2 프로세서(#2)는 먼저 상기 패킷(10)을 위한 제어 레지스터(4)의 제2 단계(7)를 잠그고 나서, 블록 전송 시 상기 패킷(10)(경우에 따라 헤더 및 바디)에 기록을 실시하며, 상기 블록 전송을 종료하기 위해 제2 단계(7)의 잠금을 해제한다(22).
제1 프로세서(#1)의 판독 액세스와 제2 프로세서(#2)의 기록 액세스가 시간적으로 중첩되는 경우, 제1 프로세서(#1)는 데이터 패킷(10)의 더 이전의 버전(11)으로부터 일관성을 가진 데이터를 판독한다. 이러한 특성은 제2 프로세서(#2)가 새로운 데이터 패킷을 저장하는 시점이 제1 프로세서(#1)에 의해 제어되지 않는 경우에 매우 중요한 의미가 있다.
이 경우, 제1 프로세서(#1)가 데이터를 충분히 빠르게 호출함에 따라 데이터 패킷(10)의 두 버전(11) 모두가 판독되지 않은 데이터를 포함할 수 없는 것으로 가정된다. 선택적으로, 제2 프로세서(#2)가 패킷 버전들(11)의 마지막 스위칭 이후에 특정 데이터 패킷(10)의 데이터를 갱신하였는지의 여부 및 상기 마지막 스위칭 이후 데이터가 여러번 갱신되었는지의 여부(이는 데이터 손실을 의미할 수 있음)를 제1 프로세서(#1)로 시그널링하는 것이 고려될 수 있다.
본 발명에 따른 메모리 관리 방법은 특히 통신 시스템(예: 플렉스레이, CAN, TTCAN)의 통신 가입자(32)의 하드웨어 통신 모듈(31) 내 메시지 메모리를 위해 사용될 수 있다. 다른 주변 모듈에서도 마찬가지로 바람직하게 사용될 수 있다.

Claims (17)

  1. 메모리(1)의 영역들로의 복수의 프로세서(2)의 액세스를 제어하기 위한 방법에 있어서,
    프로세서들(2) 중 제2 프로세서(#2)가 메모리(1)에 액세스하는 데 사용되는 어드레스 버스 신호(5) 부분을 프로세서들(2) 중 제1 프로세서(#1)가 제어하며, 제1 프로세서(#1)는 상기 어드레스 버스 신호(5) 부분의 제어를 통해 제2 프로세서(#2)가 어느 메모리 영역에 액세스할 것인지의 결정에 영향을 미치며,
    메모리(1) 내에 데이터 패킷들이 각각 적어도 2개의 버전으로 저장되며,
    메모리(1)에 저장된 각각의 데이터 패킷 또는 메모리(1)에 저장된 데이터 패킷의 각각의 헤더를 위해 제어 레지스터(4)가 제공되며,
    제어 레지스터(4)는 제1 단계 및 제2 단계로 구성된 2단계 방식으로 형성되고, 제1 프로세서(#1)는 항시 제어 레지스터(4)의 제1 단계(6)로 기록 액세스를 할 수 있는 것을 특징으로 하는, 액세스 제어 방법.
  2. 제1항에 있어서, 제1 프로세서(#1)는 제어 레지스터(4)를 통해 어드레스 버스 신호(5) 부분을 제어하는 것을 특징으로 하는, 액세스 제어 방법.
  3. 제1항 또는 제2항에 있어서, 메모리(1)는 프로세서들(#1, #2)이 동시에 액세스하는 듀얼 포트 램으로서 구현되는 것을 특징으로 하는, 액세스 제어 방법.
  4. 제1항 또는 제2항에 있어서, 메모리(1)는 프로세서들(#1, #2)이 교대로 액세스하는 싱글 포트 램으로서 구현되는 것을 특징으로 하는, 액세스 제어 방법.
  5. 제4항에 있어서, 프로세서들은 시분할 다중 방식으로 액세스하는 것을 특징으로 하는, 액세스 제어 방법.
  6. 제1항 또는 제2항에 있어서, 메모리(1) 내에 크기가 동일한 데이터 패킷들이 저장되는 것을 특징으로 하는, 액세스 제어 방법.
  7. 제6항에 있어서, 데이터 패킷들은 2n개(
    Figure 112015041199206-pct00007
    )의 메모리 워드를 포함하는 데이터 패킷들인 것을 특징으로 하는, 액세스 제어 방법.
  8. 제1항 또는 제2항에 있어서, 메모리(1) 내에는 임의의 크기를 갖는 데이터 패킷들이 저장되며, 상기 데이터 패킷들은 각각 두 부분, 즉, 2n개(
    Figure 112015041199206-pct00008
    )의 메모리 워드를 포함하는 헤더와, 가변적인 크기를 갖는 바디로 나뉘며, 상이한 데이터 패킷들의 헤더들은 동일한 크기를 갖는 것을 특징으로 하는, 액세스 제어 방법.
  9. 제1항에 있어서, 메모리(1) 내에 저장되는 데이터 패킷들은 메모리(1)에 프로세서들(2)이 액세스할 수 있는 만큼의 개수의 버전으로 저장되는 것을 특징으로 하는, 액세스 제어 방법.
  10. 제1항 또는 제9항에 있어서, 제1 프로세서(#1)는 메모리(1)의 모든 메모리 영역에 액세스할 수 있고, 또 다른 프로세서(#2)가 동일한 메모리(1)에 액세스하는 데 사용되는 어드레스 버스 신호(5)를 변경하며, 변경되지 않은 어드레스 버스 신호(5)는 메모리(1) 내에 저장된 특정 데이터 패킷(10) 또는 메모리(1) 내에 저장된 특정 데이터 패킷(10)의 헤더와 관련되고, 변경된 어드레스 버스 신호(5)는 데이터 패킷(10)의 특정 버전(11) 또는 데이터 패킷(10)의 헤더의 특정 버전(11)과 관련되는 것을 특징으로 하는, 액세스 제어 방법.
  11. 제10항에 있어서, 변경되지 않은 어드레스 버스 신호는 특정 개수의 어드레스 비트를 포함하며, 제1 프로세서(#1)는 어드레스 버스 신호(5)의 변경을 위해 변경되지 않은 어드레스 버스 신호(5)에 하나 이상의 추가 어드레스 비트를 부가하며, 상기 추가 어드레스 비트에 의해 저장된 데이터 패킷(10) 또는 데이터 패킷(10)의 헤더의 상이한 버전들(11)이 구별되는 것을 특징으로 하는, 액세스 제어 방법.
  12. 제11항에 있어서, 2n개의 메모리 워드가 데이터 패킷 또는 데이터 패킷 헤더에 포함되고, 2k개는 각 데이터 패킷의 저장된 버전의 개수이며,
    제2 프로세서(#2)는 메모리(1)에 저장된 2m개 이하의 데이터 패킷 중 하나 또는 메모리(1)에 저장된 2m개 이하의 데이터 패킷 헤더 중 하나에 액세스하며, 변경되지 않은 어드레스 버스 신호(5)는 (m+n)-비트를 포함하고, 변경된 어드레스 버스 신호(5)는 (m+n+k)-비트를 포함하는 것을 특징으로 하는, 액세스 제어 방법.
  13. 제1항에 있어서, 제2 프로세서(#2)는 제어 레지스터(4)의 제2 단계(7)를 잠금으로써, 제어 레지스터(4)의 제1 단계(6)의 내용이 제2 단계(7)로 복사되는 것을 저지하는 것을 특징으로 하는, 액세스 제어 방법.
  14. 제1항 또는 제13항에 있어서, 제어 레지스터(4)의 제1 단계(6)의 내용은 제2 단계(7)의 잠금이 해제되는 경우에 제어 레지스터(4)의 제2 단계(7)로 복사되는 것을 특징으로 하는, 액세스 제어 방법.
  15. 제1항 또는 제13항에 있어서, 제어 레지스터(4)의 제2 단계(7)의 내용이 어드레스 버스 신호(5)에 삽입되는 것을 특징으로 하는, 액세스 제어 방법.
  16. 통신 매체(30)에 접속된, 통신 시스템(33) 가입자(32)의 통신 모듈(31)이며,
    상기 모듈(31)은 상기 매체(30)를 통해 수신되거나 상기 매체를 통해 전송될 메시지의 임시 저장을 위한 메시지 메모리(1)를 포함하는, 통신 모듈에 있어서,
    한편으로는 통신 매체(30)를 통해, 다른 한편으로는 가입자 프로세서(34)에 의해 제1항 또는 제2항에 따른 방법으로 메시지 메모리(1)의 영역에 액세스하는 것을 제어하기 위한 수단을 포함하는 것을 특징으로 하는, 통신 모듈.
  17. 삭제
KR1020107025375A 2008-05-14 2009-03-06 메모리 영역으로의 복수의 프로세서의 액세스를 제어하는 방법 및 상기 방법을 구현하기 위한 메시지 메모리를 구비한 통신 모듈 KR101560015B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102008001739.6A DE102008001739B4 (de) 2008-05-14 2008-05-14 Verfahren zum Steuern eines Zugriffs auf Bereiche eines Speichers aus mehreren Prozessen heraus und Kommunikations-Modul mit einem Nachrichten-Speicher zur Realisierung des Verfahrens
DE102008001739.6 2008-05-14

Publications (2)

Publication Number Publication Date
KR20110014988A KR20110014988A (ko) 2011-02-14
KR101560015B1 true KR101560015B1 (ko) 2015-10-13

Family

ID=40636111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107025375A KR101560015B1 (ko) 2008-05-14 2009-03-06 메모리 영역으로의 복수의 프로세서의 액세스를 제어하는 방법 및 상기 방법을 구현하기 위한 메시지 메모리를 구비한 통신 모듈

Country Status (7)

Country Link
US (1) US8447952B2 (ko)
EP (1) EP2283402B1 (ko)
JP (1) JP5497743B2 (ko)
KR (1) KR101560015B1 (ko)
CN (1) CN102027424B (ko)
DE (1) DE102008001739B4 (ko)
WO (1) WO2009138260A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104537119B (zh) * 2015-01-26 2018-01-16 浪潮天元通信信息系统有限公司 一种缓存数据的更新方法、数据使用端和系统
US11392317B2 (en) * 2017-05-31 2022-07-19 Fmad Engineering Kabushiki Gaisha High speed data packet flow processing
US11036438B2 (en) 2017-05-31 2021-06-15 Fmad Engineering Kabushiki Gaisha Efficient storage architecture for high speed packet capture

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19529718A1 (de) 1995-08-11 1997-02-13 Siemens Ag Auf einer Baugruppe angeordnete Pufferschaltung
DE102005048584A1 (de) 2005-07-21 2007-01-25 Robert Bosch Gmbh FlexRay-Kommunikationsbaustein, FlexRay-Kommunikationscontroller und Verfahren zur Botschaftsübertragung zwischen einer FlexRay-Kommunikationsverbindung und einem FlexRay-Teilnehmer

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63223859A (ja) * 1987-03-12 1988-09-19 Matsushita Electric Ind Co Ltd アドレス変換装置
US5530838A (en) * 1993-06-10 1996-06-25 Ricoh Company, Ltd. Method and apparatus for controlling access to memory which is common to plural, priority-ordered central processing units and which is indirectly accessible via a transfer control unit
JPH07319827A (ja) * 1993-06-10 1995-12-08 Ricoh Co Ltd 共有メモリ制御方式および共有メモリ制御装置
JPH09198362A (ja) * 1996-01-23 1997-07-31 Canon Inc アドレス変換方法及び装置及びマルチプロセッサシステム及びその制御方法
US6138204A (en) * 1997-12-17 2000-10-24 Motorola, Inc. Multi bus access memory
US20010049742A1 (en) * 2000-05-31 2001-12-06 Steely Simon C. Low order channel flow control for an interleaved multiblock resource
IL151866A0 (en) * 2001-01-30 2003-04-10 Memcall Inc Combined content addressable memories
JP2006195867A (ja) * 2005-01-17 2006-07-27 Matsushita Electric Ind Co Ltd バス調停方法及び半導体装置
US7882295B2 (en) * 2008-12-15 2011-02-01 Nvidia Corporation Non-system bus width data transfer executable at a non-aligned system bus address

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19529718A1 (de) 1995-08-11 1997-02-13 Siemens Ag Auf einer Baugruppe angeordnete Pufferschaltung
DE102005048584A1 (de) 2005-07-21 2007-01-25 Robert Bosch Gmbh FlexRay-Kommunikationsbaustein, FlexRay-Kommunikationscontroller und Verfahren zur Botschaftsübertragung zwischen einer FlexRay-Kommunikationsverbindung und einem FlexRay-Teilnehmer

Also Published As

Publication number Publication date
JP5497743B2 (ja) 2014-05-21
US8447952B2 (en) 2013-05-21
KR20110014988A (ko) 2011-02-14
CN102027424A (zh) 2011-04-20
DE102008001739B4 (de) 2016-08-18
EP2283402A1 (de) 2011-02-16
CN102027424B (zh) 2014-11-26
US20110145491A1 (en) 2011-06-16
WO2009138260A1 (de) 2009-11-19
EP2283402B1 (de) 2014-09-17
DE102008001739A1 (de) 2009-11-19
JP2011524038A (ja) 2011-08-25

Similar Documents

Publication Publication Date Title
KR100272072B1 (ko) 동기형 다이나믹 램들을 활용한 고성능, 고대역폭 메모리 버스구조체
US7315550B2 (en) Method and apparatus for shared buffer packet switching
US5224213A (en) Ping-pong data buffer for transferring data from one data bus to another data bus
US7082491B2 (en) Memory device having different burst order addressing for read and write operations
EP2350847B1 (en) Method and system for improving serial port memory communication latency and reliability
US6345334B1 (en) High speed semiconductor memory device capable of changing data sequence for burst transmission
US7984246B1 (en) Multicore memory management system
JP5261803B2 (ja) 不揮発性メモリ用の高速ファンアウトシステムアーキテクチャおよび入出力回路
US4633440A (en) Multi-port memory chip in a hierarchical memory
US20110276733A1 (en) Memory System And Device With Serialized Data Transfer
KR101560015B1 (ko) 메모리 영역으로의 복수의 프로세서의 액세스를 제어하는 방법 및 상기 방법을 구현하기 위한 메시지 메모리를 구비한 통신 모듈
CN114442908B (zh) 一种用于数据处理的硬件加速系统及芯片
KR20010050236A (ko) 데이터 처리 장치 및 방법과 컴퓨터 프로그램 제품
CN104407992A (zh) 一种基于双端口寄存器阵列的四端口存储器
JP3039963B2 (ja) 半導体記憶装置
US6314489B1 (en) Methods and systems for storing cell data using a bank of cell buffers
EP3244582B1 (en) Switch and data accessing method thereof
US20030093594A1 (en) Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller
US9430379B1 (en) Dynamic random access memory controller
JPS63136395A (ja) 半導体記憶装置
JP2638484B2 (ja) データ処理装置
TWI764311B (zh) 記憶體存取方法及智慧處理裝置
EP0789363B1 (en) Memory system and data communications system
KR20000035167A (ko) 메모리, 메모리 어드레스 전송 방법 및 메모리 인터페이스
JPH05334232A (ja) Dma転送制御装置

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
FPAY Annual fee payment

Payment date: 20180927

Year of fee payment: 4