KR102364382B1 - 듀얼 포트 메모리 및 그 제어 방법 - Google Patents

듀얼 포트 메모리 및 그 제어 방법 Download PDF

Info

Publication number
KR102364382B1
KR102364382B1 KR1020170176246A KR20170176246A KR102364382B1 KR 102364382 B1 KR102364382 B1 KR 102364382B1 KR 1020170176246 A KR1020170176246 A KR 1020170176246A KR 20170176246 A KR20170176246 A KR 20170176246A KR 102364382 B1 KR102364382 B1 KR 102364382B1
Authority
KR
South Korea
Prior art keywords
area
interface
data
access request
shared memory
Prior art date
Application number
KR1020170176246A
Other languages
English (en)
Other versions
KR20190074695A (ko
Inventor
송영훈
김홍주
홍지태
Original Assignee
한국전기연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전기연구원 filed Critical 한국전기연구원
Priority to KR1020170176246A priority Critical patent/KR102364382B1/ko
Publication of KR20190074695A publication Critical patent/KR20190074695A/ko
Application granted granted Critical
Publication of KR102364382B1 publication Critical patent/KR102364382B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 듀얼 포트 메모리 및 그 제어 방법을 공개한다. 본 발명은 공유 데이터 영역이 제 1 데이터 영역과 제 2 데이터 영역을 포함하고, 두 개의 영역 중 최신 데이터가 기록된 영역을 활성화 영역으로 설정하여, MCU가 해당 공유 메모리 단위 영역에 데이터를 기록하고자 하는 경우에는 일단 비활성화 영역에 데이터를 기록하도록 하고, 데이터가 비활성화 영역에 기록되는 중이라도, 다른 MCU들로 하여금 활성화 영역에 기록된 데이터를 판독할 수 있도록 함으로써, 종래기술의 데이터 충돌 및 판독 지연 문제를 해소할 수 있다.

Description

듀얼 포트 메모리 및 그 제어 방법{Apparatus and method for controlling dual-port memory}
본 발명은 메모리 및 그 제어 방법에 관한 것으로서, 보다 구체적으로는 듀얼 포트 메모리 및 그 제어 방법에 관한 것이다.
두 개 이상의 MCU 등에서 데이터 저장 공간을 공유하기 위한 대표적인 방법으로 Dual-Port 메모리를 채택하는 방법이 있다. Dual-Port 메모리는 하나의 메모리에 입/출력을 위한 데이터 버스와 어드레스 버스를 두 개씩 연결하여, 두 개 이상의 MCU에서 서로의 상태에 영향을 받지 않고 자유롭게 데이터를 입/출력 할 수 있도록 한다.
메모리의 접근 제어 방식으로, Read/Write 신호를 이용하여 현재 메모리가 다른 MCU에 의해서 사용 중인지를 확인하고, 사용 중인 경우에는 다른 MCU의 사용 상태가 종료되어 메모리가 준비 상태가 될 때까지 대기하였다가 데이터를 입/출력 한다.
이러한 입/출력 제어 방식은 하나의 MCU에서 특정 메모리 공간을 사용하고 있을 때, 다른 MCU가 동시에 같은 공간을 접근하지 못하도록 하여 데이터의 충돌을 방지한다. 하지만, 메모리가 다른 MCU에 의해 사용중인 경우에는 메모리에 접근하기 위해 다른 MCU의 사용이 끝날 때까지 대기해야 하기 때문에, 불특정한 시간 지연이 발생할 수 있고, 이러한 불특정한 시간 지연은 고속 실시간 인터페이스에서 실시간데이터 처리 성능을 떨어뜨리는 원인이 된다.
또한, 이러한 접근 제어 방식은 매 byte 또는 word에 접근할 때마다 이루어 지기 때문에, 다수의 byte 또는 word로 구성된 데이터에 접근할 경우, 데이터를 읽거나 쓰는 중간에 다른 MCU에 의해 데이터가 변경되어, 엉뚱한 데이터가 판독되는 경우도 발생할 수 있다.
본 발명이 해결하고자 하는 과제는 듀얼 포트 메모리를 이용하는 복수의 MCU들이 지연 시간 없이 데이터 판독 및 기록을 위해서 실시간으로 메모리에 접근할 수 있도록 하는 듀얼 포트 메모리 및 그 제어 방법을 제공하는 것이다.
상술한 과제를 해결하기 위한 본 발명의 바람직한 실시예에 따른 듀얼 포트 메모리는, 제 1 데이터 영역, 제 2 데이터 영역 및 상기 제 1 데이터 영역 및 상기 제 2 데이터 영역 중 활성화된 영역을 나타내는 상태 영역을 포함하는 공유 메모리 영역; 서로 대응되는 포트에 연결되도록 설치되고, 각각 1개 이상의 MCU와 연결되어 상기 공유 메모리 영역에 대한 데이터 판독 명령 또는 데이터 기록 명령을 수신하며, 수신된 명령에 따라서, 상기 공유 메모리 영역에 접근하여 상태 영역에 저장된 데이터를 판독하여 상기 제 1 데이터 영역 및 상기 제 2 데이터 영역 중, 활성화된 데이터 영역으로부터 데이터를 판독하고, 비활성화된 데이터 영역에 데이터를 기록한 후 상태 영역이 신규로 데이터가 기록된 데이터 영역을 나타내도록 상태 영역의 데이터를 변경하는 제 1 인터페이스 및 제 2 인터페이스; 및 상기 제 1 인터페이스 또는 상기 제 2 인터페이스로부터 공유 메모리 영역에 대한 접근 요청(판독 요청 또는 기록 요청)을 수신하면, 데이터 충돌 여부를 확인하여 공유 메모리 영역에 대한 접근을 승인하는 제어부를 포함한다.
또한, 상기 제어부는, 상기 제 1 인터페이스 또는 상기 제 2 인터페이스로부터 수신된 접근 요청이 판독 요청인 경우에는 접근을 즉시 승인할 수 있다.
또한, 상기 제어부는, 상기 제 1 인터페이스 또는 상기 제 2 인터페이스로부터 수신된 접근 요청이 기록 요청인 경우에, 동일한 공유 메모리 영역에 대해서 다른 인터페이스로부터 접근 요청이 수신되었는지 확인하고, 다른 인터페이스로부터 접근 요청이 수신되지 않거나, 다른 인터페이스로부터 수신된 접근 요청이 기록을 위한 접근 요청이 아니면, 상기 접근 요청을 승인할 수 있다.
또한, 상기 제어부는, 동일한 공유 메모리 영역에 대해서, 다른 인터페이스로부터 기록을 위한 접근 요청이 수신되면, 사전에 정의된 규칙에 따라서, 상기 제 1 인터페이스 및 상기 제 2 인터페이스 중 어느 하나로 접근 요청을 승인하고, 다른 하나로 접근 요청을 불승인할 수 있다.
또한, 상기 제어부는, 동일한 공유 메모리 영역에 대해서, 다른 인터페이스로부터 기록을 위한 접근 요청이 수신되면, 사전에 정의된 규칙에 따라서, 상기 제 1 인터페이스 및 상기 제 2 인터페이스 중 어느 하나로 접근 요청을 승인하고, 다른 하나로는 사전에 정의된 시간 지연 후 접근 요청을 승인할 수 있다.
한편, 상술한 과제를 해결하기 위한 본 발명의 바람직한 실시예에 따른 듀얼 포트 메모리 제어 방법은, 제 1 인터페이스, 제 2 인터페이스, 공유 메모리 영역 및 제어부를 포함하는 듀얼 포트 메모리에서 수행되는 듀얼 포트 메모리 제어 방법으로서, (a) 상기 제 1 인터페이스가 자신에게 연결된 제 1 MCU로부터 제어 명령과 어드레스를 수신하는 단계; (b) 상기 제 1 인터페이스가 상기 어드레스를 공유 메모리 영역에 대응되는 어드레스로 변환하고, 상기 제어 명령에 따라서 상기 제어부로 변환된 어드레스로의 접근을 요청하는 단계; (c) 상기 제어부가 상기 제 1 인터페이스로부터 접근 요청을 식별하는 단계; (d) 상기 접근 요청이 판독을 위한 접근 요청인 경우에, 상기 제어부가 상기 제 1 인터페이스로 접근을 즉시 승인하는 단계; (e) 접근을 승인받은 상기 제 1 인터페이스가 상기 변환된 어드레스에 접속하여 해당 공유 메모리 영역의 상태 영역을 판독하고, 상기 상태 영역에서 활성화된 데이터 영역으로 식별된 데이터 영역에 기록된 데이터를 판독하여 상기 제 1 MCU 로 전송하는 단계를 포함하고, 상기 공유 메모리 영역은 제 1 데이터 영역, 제 2 데이터 영역 및 상기 제 1 데이터 영역 및 상기 제 2 데이터 영역 중 활성화된 영역을 나타내는 상태 영역을 포함할 수 있다.
또한, 상기 듀얼 포트 메모리 제어 방법은 (f) 상기 (c) 단계에서 식별된 상기 접근 요청이 기록을 위한 접근 요청인 경우에, 상기 제어부는 동일한 공유 메모리 영역에 대해서 상기 제 2 인터페이스로부터 접근 요청이 수신되었는지 확인하는 단계; (g) 상기 제 2 인터페이스로부터 접근 요청이 수신되지 않거나, 상기 제 2 인터페이스로부터 수신된 접근 요청이 기록을 위한 접근 요청이 아니면, 상기 제어부가 상기 제 1 인터페이스로 상기 접근 요청을 승인하는 단계; 및 (h) 접근을 승인받은 상기 제 1 인터페이스가 상기 변환된 어드레스에 접근하여 해당 공유 메모리 영역의 상태 영역을 판독하고, 상기 상태 영역으로부터 비활성화된 데이터 영역으로 식별된 데이터 영역에 데이터를 기록하고, 상태 영역이 신규로 데이터가 기록된 데이터 영역을 나타내도록 상태 영역에 데이터를 변경하는 단계를 더 포함한다.
또한, 상기 (g) 단계는, 상기 제 2 인터페이스로부터 기록을 위한 접근 요청이 수신되면, 사전에 정의된 규칙에 따라서, 상기 제 1 인터페이스 및 상기 제 2 인터페이스 중 어느 하나로 접근 요청을 승인하고, 다른 하나로 접근 요청을 불승인할 수 있다.
또한, 상기 (g) 단계는, 상기 제 2 인터페이스로부터 기록을 위한 접근 요청이 수신되면, 사전에 정의된 규칙에 따라서, 상기 제 1 인터페이스 및 상기 제 2 인터페이스 중 어느 하나로 접근 요청을 승인하고, 다른 하나로는 사전에 정의된 시간 지연 후 접근 요청을 승인할 수 있다.
또한, 상기 듀얼 포트 메모리 제어 방법은, (i) 상기 (f) 단계에서 확인한 결과, 상기 제 2 인터페이스로부터 판독을 위한 접근 요청이 수신된 경우에, 상기 제어부는 상기 제 2 인터페이스로 접근 요청을 즉시 승인하고, 상기 제 2 인터페이스는 상기 변환된 어드레스에 접속하여 해당 공유 메모리 영역의 상태 영역을 판독하고, 상기 상태 영역에서 활성화된 데이터 영역으로 식별된 데이터 영역에 기록된 데이터를 판독하여 데이터 판독을 요청한 제 2 MCU로 전송하는 단계를 더 포함할 수 있다.
본 발명은 공유 데이터 영역이 제 1 데이터 영역과 제 2 데이터 영역을 포함하고, 두 개의 영역 중 최신 데이터가 기록된 영역을 활성화 영역으로 설정하여, MCU가 해당 공유 메모리 단위 영역에 데이터를 기록하고자 하는 경우에는 일단 비활성화 영역에 데이터를 기록하도록 하고, 데이터가 비활성화 영역에 기록되는 중이라도, 다른 MCU들로 하여금 활성화 영역에 기록된 데이터를 판독할 수 있도록 함으로써, 종래기술의 데이터 충돌 및 판독 지연 문제를 해소할 수 있다.
도 1은 본 발명의 바람직한 실시예에 따른 듀얼 포트 메모리의 구성을 도시하는 도면이다.
도 2는 본 발명의 바람직한 실시예에 따라서 공유 메모리에 데이터를 기록하고 데이터를 판독하는 방법을 설명하는 도면이다.
도 3은 본 발명의 바람직한 실시예에 따라서 제 1 인터페이스에 연결된 MCU 또는 제 2 인터페이스에 연결된 MCU가 공유 메모리 영역으로부터 데이터를 판독하는 과정을 설명하는 도면이다.
도 4는 본 발명의 바람직한 실시예에 따라서 제 1 인터페이스에 연결된 MCU가 공유 메모리 영역에 데이터를 기록하고, 제 2 인터페이스에 연결된 MCU가 공유 메모리 영역으로부터 데이터를 판독하는 과정을 설명하는 도면이다.
도 5는 본 발명의 바람직한 실시예에 따라서 제 1 인터페이스에 연결된 MCU와 제 2 인터페이스에 연결된 MCU가 동시에 동일한 공유 메모리 영역에 데이터를 기록하고자 하는 경우에 처리 과정을 설명하는 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 듀얼 포트 메모리(200)의 구성을 도시하는 도면이다.
도 1을 참조하면, 본 발명의 바람직한 실시예에 따른 듀얼 포트 메모리(200)는 제 1 인터페이스(210), 공유 메모리 영역(230), 제어부(240) 및 제 2 인터페이스(220)를 포함하여 구성된다.
먼저, 본 발명의 공유 메모리 영역(230)에 대한 구조를 설명한다.
본 발명의 공유 메모리 영역(230)은 사전에 정의된 길이의 데이터 상태 영역(231-1~231-n), 제 1 데이터 영역(232-1~232-n) 및 제 2 데이터 영역(233-1~233-n)이 하나의 공유 메모리 단위 영역을 이루고, 이러한 공유 메모리 단위 영역이 복수개 모여서 공유 메모리 영역(230)을 구성한다.
각각의 공유 메모리 단위 영역에 대해서 살펴보면, 먼저, 데이터 상태 영역(231-1~231-n)은 현재 공유 메모리 단위 영역에 포함된 제 1 데이터 영역(232-1~232-n) 및 제 2 데이터 영역(233-1~233-n) 중 어느 영역이 최신 데이터가 기록된 활성화된 데이터 영역인지 여부를 나타낸다.
따라서, 제 1 인터페이스(210) 및 제 2 인터페이스(220)는 해당 공유 메모리 단위 영역에 저장된 데이터를 판독하는 경우에, 상태 영역(231-1~231-n)에 기록된 데이터가 나타내는 활성 데이터 영역에 저장된 데이터를 판독한다. 또한, 제 1 인터페이스(210) 및 제 2 인터페이스(220)는 해당 공유 메모리 단위 영역에 데이터를 기록하고자 하는 경우에, 상태 영역(231-1~231-n)에 기록된 데이터가 나타내는 활성화된 데이터 영역이 아닌, 비활성화된 데이터 영역에 데이터를 기록하고, 상태 영역(231-1~231-n)이 신규로 데이터가 기록된 데이터 영역을 활성 데이터 영역으로 나타내도록 데이터 상태 영역(231-1~231-n)의 값을 변경한다.
도 2는 본 발명의 바람직한 실시예에 따라서 공유 메모리 영역(230)에 데이터를 기록하고 데이터를 판독하는 방법을 설명하는 도면이다. 도 2를 더 참조하여 설명하면, 본 발명의 바람직한 실시예에서 제 1 데이터 영역(232-1~232-n) 및 제 2 데이터 영역(233-1~233-n)은 4바이트로 구성되고, 상태 영역(231-1~231-n)은 1바이트로 구성되며, 데이터는 4바이트 단위로 판독되고 기록된다. 즉, 본 발명의 바람직한 실시예에서는 4바이트 데이터를 저장하기 위해서, 총 9바이트의 저장 공간이 필요하다. 이하에서는, 설명의 편의를 위해서, 1바이트를 1개의 숫자로 표현하였다.
타이밍 [01]에 제 1 데이터 영역(232-1~232-n)의 4바이트에 각각 1, 2, 3, 4 가 기록되어 있고, 제 2 데이터 영역(233-1~233-n)의 4바이트에는 각각 6, 7, 8, 9가 기록되어 있으며, 데이터 상태 영역(231-1~231-n)에는 1이 기록되어 있다. 여기서, 데이터 상태 영역(231-1~231-n)에 1이 기록되어 있으므로, 현재 해당 공유 데이터 단위 영역은 제 1 데이터 영역(232-1~232-n)이 활성화되어 있으며, 이는 공유 데이터 단위 영역에 저장된 최신 데이터는 제 1 데이터 영역(232-1~232-n)에 저장된 데이터이며, 각 인터페이스는 해당 공유 데이터 단위 영역에 저장된 데이터 판독시에는 항상 활성화된 제 1 데이터 영역에 기록된 최신 데이터를 판독하게 된다.
도 2에 도시된 예에서, 타이밍[01]에서, 제 2 인터페이스(220)가 해당 공유 데이터 단위 영역에 저장된 데이터를 판독하기 위해서 해당 영역에 접근하면, 제일 먼저 데이터 상태 영역(231)을 판독하여 어떤 데이터 영역이 활성화되어 있는지 여부를 확인하고, 데이터 상태 영역(231)에 1 이 기록되어 있으므로, 제 1 데이터 영역(232)이 활성화된 영역으로 판단하고, 제 1 데이터 영역(232)에서 [1,2,3,4]를 판독한다.
그 후, 타이밍[02]~[06]에서 제 1 인터페이스(210)가 해당 공유 메모리 단위 영역에 데이터[3,4,5,6]을 기록하는 경우, 제 1 인터페이스(210)는 데이터 상태 영역(231)을 확인하여, 현재 활성화된 데이터 영역이 데이터 제 1 데이터 영역(232)이고, 비활성 영역이 제 2 데이터 영역(233)임을 확인하고, 제 2 데이터 영역(233)에 데이터를 순차적으로 기록하기 시작한다.
따라서, 타이밍 [02]~[05] 에 제 2 데이터 영역(233)에는 [3,4,5,6]순차적으로 기록되고, 제 2 데이터 영역(233)에 데이터가 다 기록되면, 제 1 인터페이스(210)는 타이밍 [06]에, 데이터 상태 영역(231)에 2를 기록하여, 해당 공유 메모리 단위 영역에서 활성화된 데이터, 즉, 최신 데이터는 제 2 데이터 영역(233)에 기록된 데이터임을 나타낸다.
데이터 상태 영역(231)에 2가 기록된 후, 제 2 인터페이스(220)가 해당 공유 메모리 단위 영역에 접근하여 저장된 데이터를 판독하고자 하는 경우, 제 2 인터페이스(220)는 데이터 상태 영역(231)에 2가 기록되어 있음을 확인하고, 활성화된 제 2 데이터 영역(233)로부터 데이터[3,4,5,6]을 판독한다.
한편, 제 1 인터페이스(210)가 제 2 데이터 영역(233)에 데이터를 기록하는 중간인, 타이밍 [04]에 제 2 인터페이스(220)가 접근하여 데이터를 판독하는 경우를 살펴보면, 제 2 인터페이스(220)는 공유 메모리 단위 영역에 접근하여 데이터 상태 영역(231)을 확인하고, 데이터 상태 영역(231)에 1 이 기록되어 있으므로, 제 1 데이터 영역(232)이 활성화된 영역으로 판단하고, 제 1 데이터 영역(232)에서 [1,2,3,4]를 판독한다. 따라서, 본 발명은 다른 MCU에 의해서 데이터가 기록되는 중간에도 데이터 충돌없이 데이터 판독이 가능하다.
다시 도 1을 참조하면, 제 1 인터페이스(210) 및 제 2 인터페이스(220)는 서로 대응되는 포트에 연결되도록 설치되고, 각각 1개 이상의 MCU와 연결되어 공유 메모리 영역(230)에 대한 데이터 판독 명령 또는 데이터 기록 명령을 수신하여, 공유 메모리 영역(230)에 대해서 수신된 명령을 수행한다.
구체적으로, 제 1 인터페이스(210) 및 제 2 인터페이스(220)는 버스를 통해서 복수의 MCU들과 연결될 수 있고, 전용 MCU와 직접 연결될 수도 있다. 이들 제 1 및 제 2 인터페이스(210,220)는 MCU들로부터 접근하고자 하는 메모리의 어드레스(address), 제어 명령, 클럭 및 데이터(데이터를 기록하는 경우)를 입력받는다.
제 1 및 제 2 인터페이스(210,220)는 MCU(110,120)로부터 수신된 어드레스를 공유 메모리 영역(230)의 row 및 column 어드레스로 변환하고, 해당 공유 메모리 영역(230)으로의 접근을 제어부(240)로 요청한다. 제어부(240)가 접근을 승인하면 제 1 및 제 2 인터페이스(210,220)는 해당 공유 메모리 영역(230)에 접근하여 상태 영역(231-1~231-n)을 판독하여 현재 해당 공유 메모리 단위 영역의 활성화된 데이터 영역을 식별한 후, 수신된 제어 명령이 데이터 판독 명령인 경우에는 활성화된 데이터 영역에 저장된 데이터를 판독하여 MCU(110,120)로 전송하고, 수신된 제어 명령이 기록 명령인 경우에는 수신된 데이터를 비활성화된 데이터 영역에 기록하고, 데이터 상태 영역(231-1~231-n)에 기록된 값을 새로 데이터가 기록된 데이터 영역을 나타내도록 변경한다.
제어부(240)는 제 1 인터페이스(210) 및 제 2 인터페이스(220)로부터 공유 메모리 영역(230)에 대한 접근 요청(판독 요청 또는 기록 요청)을 수신하면, 데이터 충돌 가능 여부를 확인하여 공유 메모리 영역(230)에 대한 접근을 승인한다.
이 때, 제어부(240)는 제 1 인터페이스(210) 및 제 2 인터페이스(220)로부터 동시에 동일한 공유 메모리 단위 영역에 대한 기록 요청이 입력되는 경우에, 사전에 정의된 규칙에 따라서 선택된 MCU에 연동된 인터페이스에 대해서는 접근을 허가하고, 다른 MCU에 연동된 인터페이스에 대해서는 접근을 거부하거나, 접근 허가된 인터페이스가 데이터를 기록할 수 있는 충분한 시간 지연 이후에 접근을 허가할 수도 있다.
이 경우, 제어부(240)는 데이터 기록을 요청한 복수의 MCU 중에서 공유 메모리에 주기적으로 접근하는 MCU에 대해서 우선 순위를 높게 또는 낮게 설정하여 우선 순위에 따라서 접근을 허가할 수 있고, MCU들이 모두 주기적으로 공유 메모리 영역(230)에 접근하는 경우에는 공유 메모리 접근 주기에 따라서 접근을 허가할 MCU를 선정할 수도 있다.
상술한 바와 같이, 종래 기술들은 데이터의 충돌을 방지하기 위해서, 공유 메모리 영역(230)에 데이터가 기록중인 동안에는, 다른 MCU의 접근을 원천적으로 차단하여, 예상하지 못한 장시간의 판독 지연이 발생하는 문제가 존재하였다.
그러나, 본 발명은 공유 데이터 영역(230)이 제 1 데이터 영역(232-1~232-n)과 제 2 데이터 영역(233-1~233-n)을 포함하고, 두 개의 영역 중 최신 데이터가 기록된 영역을 활성화 영역으로서 상태 영역(231-1~231-n)에 기록하여, MCU(110,120)가 해당 공유 메모리 단위 영역에 데이터를 기록하고자 하는 경우에는 일단 비활성화 영역에 데이터를 기록하도록 하고, 데이터가 비활성화 영역에 기록되는 중이라도, 다른 MCU들로 하여금 활성화된 데이터 영역에 기록된 데이터를 판독할 수 있도록 함으로써, 종래기술의 데이터 충돌 및 판독 지연 문제를 해소하였다.
지금까지 본 발명의 바람직한 실시예에 따른 듀얼 포트 메모리(200)에 대해서 설명하였다.
이하에서는, 듀얼 포트 메모리(200)의 제어 방법을 설명하는 도 3 내지 도 5를 참조하여, 본 발명의 바람직한 실시예에 따른 듀얼 포트 메모리(200)의 제어 방법을 설명한다.
도 3은 본 발명의 바람직한 실시예에 따라서 제 1 인터페이스(210)에 연결된 MCU(110) 또는 제 2 인터페이스(220)에 연결된 MCU(120)가 공유 메모리 영역(230)으로부터 데이터를 판독하는 과정을 설명하는 도면이다.
도 3을 참조하면, 제 1 인터페이스(210) 또는 제 2 인터페이스(220)는 자신이 연결된 MCU(110,120)로부터 제어 명령(판독 명령) 및 공유 메모리 어드레스를 수신한다(S310).
제 1 인터페이스(210) 또는 제 2 인터페이스(220)는 수신된 어드레스를 공유 메모리 영역(230)의 low 및 column 어드레스로 변환하고, 변환된 어드레스에 대한 접근 요청을 제어부(240)로 출력한다(S320).
어드레스 및 접근 요청을 수신한 제어부(240)는 접근 요청이, 데이터 기록을 위한 접근 요청인지 여부를 확인하고(S330), 접근 요청이 데이터 기록을 위한 것이 아니라면 즉시 접근을 승인한다(S335).
접근 승인을 받은 제 1 인터페이스(210) 또는 제 2 인터페이스(220)는 공유 메모리 영역(230)에 접근하여, 공유 메모리 영역(230)에 포함된 상태 영역(231-1~231-n)을 판독하고(S340), 상태 영역(231-1~231-n)에 기록된 데이터가 나타내는 활성화 영역이 제 1 데이터 영역(232-1~232-n) 및 제 2 데이터 영역(233-1~233-n) 중 어떤 데이터 영역인지를 확인한다(S350).
제 1 인터페이스(210) 또는 제 2 인터페이스(220)는 상태 영역(231-1~231-n)이 나타내는 활성화 영역이 제 1 데이터 영역(232-1~232-n)인 경우에는 제 1 데이터 영역(232-1~232-n)에 기록된 데이터를 판독하여 MCU(110,120)로 전송하고(S360), 상태 영역(231-1~231-n)이 나타내는 활성화 영역이 제 2 데이터 영역(233-1~233-n)인 경우에는 제 2 데이터 영역(233-1~233-n)에 기록된 데이터를 판독하여 MCU(110,120)로 전송한다(S370).
도 4는 본 발명의 바람직한 실시예에 따라서 제 1 인터페이스(210)에 연결된 MCU(110)가 공유 메모리 영역(230)에 데이터를 기록하고, 제 2 인터페이스(220)에 연결된 MCU(120)가 공유 메모리 영역(230)으로부터 데이터를 판독하는 과정을 설명하는 도면이다.
도 4를 참조하면, 제 1 인터페이스(210)는 자신이 연결된 MCU(110)로부터 제어 명령(기록 명령), 공유 메모리 어드레스, 및 기록할 데이터를 수신한다.(S410).
제 1 인터페이스(210)는 수신된 어드레스를 공유 메모리 영역(230)의 low 및 column 어드레스로 변환하고, 변환된 어드레스에 대한 접근 요청을 제어부(240)로 출력한다(S420).
어드레스 및 접근 요청을 수신한 제어부(240)는 접근 요청이 데이터 기록을 위한 접근 요청인지 여부를 확인하고, 접근 요청이 데이터 기록을 위한 것이 아니라면 도 3의 S335로 진행하여 즉시 접근을 승인한다(S430).
그러나, 접근 요청이 데이터 기록을 위한 것이라면, 제어부(240)는 동일한 공유 메모리 영역(230)에 대해서 제 2 인터페이스(220)로부터 접근 요청이 수신되었는지 여부를 확인하고(S440), 제 2 인터페이스(220)로부터 접근 요청이 수신되지 않거나, 제 2 인터페이스(220)로부터 수신된 접근 요청이 데이터 기록을 위한 접근 요청이 아니면, 제 S450 단계로 진행하고, 제 2 인터페이스(220)로부터 수신된 접근 요청이 데이터 기록을 위한 접근 요청이라면, 후술하는 도 5의 S550 단계로 진행한다(S445).
참고로, 도 4에 도시된 실시예에서, 제 2 인터페이스(220)는 도 3의 제 S310 단계 및 제 S320 단계와 동일한 단계를 수행하여, 동일한 공유 메모리 영역(230)에 저장된 데이터 판독을 위해서 제어부(240)로 해당 공유 메모리 영역(230)의 접근을 요청한다.
한편, 제어부(240)는 제 S450 단계에서, 제 1 인터페이스(210) 및 제 2 인터페이스(220)로 각각 접근을 승인한다(S450). 이 때, 제 2 인터페이스(220)는 도 3의 제 S340 단계 내지 제 370 단계와 동일한 단계를 수행하여, 공유 메모리 영역(230)에 저장된 데이터를 판독한다.
한편, 접근을 승인받은 제 1 인터페이스(210)는 상기 변환된 어드레스에 접근하여 해당 공유 메모리 영역(230)의 상태 영역(231-1~231-n)을 판독하고(S460), 상태 영역(231-1~231-n)으로부터 활성화된 데이터 영역을 식별한다(또는 비활성화된 데이터 영역을 식별한다)(S471).
제 1 인터페이스(210)는 비활성화된 데이터 영역에 데이터를 기록하고(S473,S475), 상태 영역(231-1~231-n)의 데이터가 제 1 인터페이스(210)가 새롭게 데이터를 기록한 데이터 영역을 나타내도록 상태 영역(231-1~231-n)에 저장된 기존 데이터를 변경한다(S480).
도 5는 본 발명의 바람직한 실시예에 따라서 제 1 인터페이스(210)에 연결된 MCU(110)와 제 2 인터페이스(220)에 연결된 MCU(120)가 동시에 동일한 공유 메모리 영역(230)에 데이터를 기록하고자 하는 경우의 처리 과정을 설명하는 도면이다. 단, 도 5에 도시된 예는 제 1 인터페이스(210)를 기준으로 설명하는 것임을 주의해야 한다.
도 5를 참조하면, 제 1 인터페이스(210) 및 제 2 인터페이스(220)는 모두 자신이 연결된 MCU(110,120)로부터 제어 명령(기록 명령), 공유 메모리 어드레스, 및 기록할 데이터를 수신하고(S510), 제 1 인터페이스(210) 및 제 2 인터페이스(220)는 모두 수신된 어드레스를 공유 메모리의 low 및 column 어드레스로 변환하고, 변환된 어드레스에 대한 접근 요청을 제어부(240)로 동시에 전송한다(S520).
어드레스 및 접근 요청을 수신한 제어부(240)는 접근 요청이 기록을 위한 접근 요청인지 여부를 확인하고, 접근 요청이 기록을 위한 것이 아니라면 도 3의 S335로 진행하여 즉시 접근을 승인한다(S530).
그러나, 접근 요청이 데이터 기록을 위한 것이라면, 제어부(240)는 동일한 공유 메모리 영역(230)에 대해서 다른 인터페이스(즉, 제 2 인터페이스)로부터 접근 요청이 수신되었는지 여부를 확인하고, 제 2 인터페이스(220)로부터 접근 요청이 수신되지 않거나, 제 2 인터페이스(220)로부터 수신된 접근 요청이 데이터 기록을 위한 접근 요청이 아니면, 제 S450 단계로 진행하고, 제 2 인터페이스(220)로부터 수신된 접근 요청이 데이터 기록을 위한 접근 요청이라면, 사전에 정의된 규칙에 따라서 접근을 승인할 MCU(110,120)를 선택한다(S550).
사전에 정의된 규칙은, 예컨대, 데이터 기록을 요청한 복수의 MCU(110,120) 중에서 공유 메모리 영역(230)에 주기적으로 접근하는 MCU에 대해서 우선 순위를 높게 또는 낮게 설정하여 우선 순위에 따라서 접근을 허가할 수 있고, 모든 MCU(110,120)들이 주기적으로 공유 메모리 영역(230)에 접근하는 경우에는 공유 메모리 영역(230)에 접근하는 주기의 장단에 따라서 접근을 허가할 MCU(110,120)를 선정할 수도 있다.
제 S550 단계에서, 제 1 인터페이스(210)를 승인하고 제 2 인터페이스(220)를 불승인하는 경우에, 제 1 인터페이스(210)는 도 4의 제 S460 단계 내지 제 S480 단계를 수행하여 공유 메모리 영역(230)에 데이터를 기록한다.
한편, 제 S550 단계에서, 제 2 인터페이스(220)에 대해서 불승인을 통지하는 대신에, 제 1 인터페이스(210)가 공유 메모리 영역(230)에 데이터를 기록하기 충분한 시간동안 지연을 시킨 후, 제 2 인터페이스(220)에 접근을 승인할 수 있고, 이 경우, 제 2 인터페이스(220)는 시간 지연 후, 제 S460 단계 내지 제 S480 단계를 수행할 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
110 : 제 1 MCU
120 : 제 2 MCU
200 : 듀얼 포트 메모리
210 ; 제 1 인터페이스
220 : 제 2 인터페이스
230 : 공유 메모리 영역
231-1 ~ 231-n : 상태 영역
232-1 ~ 232-n : 제 1 데이터 영역
233-1 ~ 233-n : 제 2 데이터 영역
240 : 제어부

Claims (10)

  1. 제 1 데이터 영역, 제 2 데이터 영역 및 상기 제 1 데이터 영역 및 상기 제 2 데이터 영역 중 활성화된 영역을 나타내는 상태 영역을 포함하는 공유 메모리 영역;
    서로 대응되는 포트에 연결되도록 설치되고, 각각 1개 이상의 MCU와 연결되어 상기 공유 메모리 영역에 대한 데이터 판독 명령 또는 데이터 기록 명령을 수신하며, 수신된 명령에 따라서, 상기 공유 메모리 영역에 접근하여 상태 영역에 저장된 데이터를 판독하여 상기 제 1 데이터 영역 및 상기 제 2 데이터 영역 중, 활성화된 데이터 영역으로부터 데이터를 판독하고, 비활성화된 데이터 영역에 데이터를 기록한 후 상태 영역이 신규로 데이터가 기록된 데이터 영역을 나타내도록 상태 영역의 데이터를 변경하는 제 1 인터페이스 및 제 2 인터페이스; 및
    상기 제 1 인터페이스 또는 상기 제 2 인터페이스로부터 공유 메모리 영역에 대한 접근 요청(판독 요청 또는 기록 요청)을 수신하면, 데이터 충돌 여부를 확인하여 공유 메모리 영역에 대한 접근을 승인하는 제어부를 포함하고,
    상기 제어부는 상기 제 1 인터페이스 및 상기 제 2 인터페이스로부터 동시에 기록 요청이 수신된 경우에 데이터 충돌로 판단하는 것을 특징으로 하는 듀얼 포트 메모리.
  2. 제 1 항에 있어서, 상기 제어부는
    상기 제 1 인터페이스 또는 상기 제 2 인터페이스로부터 수신된 접근 요청이 판독 요청인 경우에는 접근을 즉시 승인하는 것을 특징으로 하는 것을 특징으로 하는 듀얼 포트 메모리.
  3. 제 1 항에 있어서, 상기 제어부는
    상기 제 1 인터페이스 또는 상기 제 2 인터페이스로부터 수신된 접근 요청이 기록 요청인 경우에, 동일한 공유 메모리 영역에 대해서 다른 인터페이스로부터 접근 요청이 수신되었는지 확인하고, 다른 인터페이스로부터 접근 요청이 수신되지 않거나, 다른 인터페이스로부터 수신된 접근 요청이 기록을 위한 접근 요청이 아니면, 상기 접근 요청을 승인하는 것을 특징으로 하는 듀얼 포트 메모리.
  4. 제 3 항에 있어서, 상기 제어부는
    동일한 공유 메모리 영역에 대해서, 다른 인터페이스로부터 기록을 위한 접근 요청이 수신되면, 사전에 정의된 규칙에 따라서, 상기 제 1 인터페이스 및 상기 제 2 인터페이스 중 어느 하나로 접근 요청을 승인하고, 다른 하나로 접근 요청을 불승인하는 것을 특징으로 하는 듀얼 포트 메모리.
  5. 제 3 항에 있어서, 상기 제어부는
    동일한 공유 메모리 영역에 대해서, 다른 인터페이스로부터 기록을 위한 접근 요청이 수신되면, 사전에 정의된 규칙에 따라서, 상기 제 1 인터페이스 및 상기 제 2 인터페이스 중 어느 하나로 접근 요청을 승인하고, 다른 하나로는 사전에 정의된 시간 지연 후 접근 요청을 승인하는 것을 특징으로 하는 듀얼 포트 메모리.
  6. 삭제
  7. 제 1 인터페이스, 제 2 인터페이스, 공유 메모리 영역 - 상기 공유 메모리 영역은 제 1 데이터 영역, 제 2 데이터 영역 및 상기 제 1 데이터 영역 및 상기 제 2 데이터 영역 중 활성화된 영역을 나타내는 상태 영역을 포함함 -, 및 제어부를 포함하는 듀얼 포트 메모리에서 수행되는 듀얼 포트 메모리 제어 방법으로서,
    (a) 상기 제 1 인터페이스가 자신에게 연결된 제 1 MCU로부터 제어 명령과 어드레스를 수신하는 단계;
    (b) 상기 제 1 인터페이스가 상기 어드레스를 공유 메모리 영역에 대응되는 어드레스로 변환하고, 상기 제어 명령에 따라서 상기 제어부로 변환된 어드레스로의 접근을 요청하는 단계;
    (c) 상기 제어부가 상기 제 1 인터페이스로부터 접근 요청을 식별하는 단계;
    (d) 상기 접근 요청이 판독을 위한 접근 요청인 경우에, 상기 제어부가 상기 제 1 인터페이스로 접근을 즉시 승인하는 단계;
    (e) 접근을 승인받은 상기 제 1 인터페이스가 상기 변환된 어드레스에 접속하여 해당 공유 메모리 영역의 상태 영역을 판독하고, 상기 상태 영역에서 활성화된 데이터 영역으로 식별된 데이터 영역에 기록된 데이터를 판독하여 상기 제 1 MCU 로 전송하는 단계를 포함하고,
    (f) 상기 (c) 단계에서 식별된 상기 접근 요청이 기록을 위한 접근 요청인 경우에, 상기 제어부는 동일한 공유 메모리 영역에 대해서 상기 제 2 인터페이스로부터 접근 요청이 수신되었는지 확인하는 단계;
    (g) 상기 제 2 인터페이스로부터 접근 요청이 수신되지 않거나, 상기 제 2 인터페이스로부터 수신된 접근 요청이 기록을 위한 접근 요청이 아니면, 상기 제어부가 상기 제 1 인터페이스로 상기 접근 요청을 승인하는 단계; 및
    (h) 접근을 승인받은 상기 제 1 인터페이스가 상기 변환된 어드레스에 접근하여 해당 공유 메모리 영역의 상태 영역을 판독하고, 상기 상태 영역으로부터 비활성화된 데이터 영역으로 식별된 데이터 영역에 데이터를 기록하고, 상태 영역이 신규로 데이터가 기록된 데이터 영역을 나타내도록 상태 영역에 데이터를 변경하는 단계를 포함하는 것을 특징으로 하는 듀얼 포트 메모리 제어 방법.
  8. 제 7 항에 있어서, 상기 (g) 단계는
    상기 제 2 인터페이스로부터 기록을 위한 접근 요청이 수신되면, 사전에 정의된 규칙에 따라서, 상기 제 1 인터페이스 및 상기 제 2 인터페이스 중 어느 하나로 접근 요청을 승인하고, 다른 하나로 접근 요청을 불승인하는 것을 특징으로 하는 듀얼 포트 메모리 제어 방법.
  9. 제 7 항에 있어서, 상기 (g) 단계는
    상기 제 2 인터페이스로부터 기록을 위한 접근 요청이 수신되면, 사전에 정의된 규칙에 따라서, 상기 제 1 인터페이스 및 상기 제 2 인터페이스 중 어느 하나로 접근 요청을 승인하고, 다른 하나로는 사전에 정의된 시간 지연 후 접근 요청을 승인하는 것을 특징으로 하는 듀얼 포트 메모리 제어 방법.
  10. 제 7 항에 있어서,
    (i) 상기 (f) 단계에서 확인한 결과, 상기 제 2 인터페이스로부터 판독을 위한 접근 요청이 수신된 경우에, 상기 제어부는 상기 제 2 인터페이스로 접근 요청을 즉시 승인하고, 상기 제 2 인터페이스는 상기 변환된 어드레스에 접속하여 해당 공유 메모리 영역의 상태 영역을 판독하고, 상기 상태 영역에서 활성화된 데이터 영역으로 식별된 데이터 영역에 기록된 데이터를 판독하여 데이터 판독을 요청한 제 2 MCU로 전송하는 단계를 더 포함하는 것을 특징으로 하는 듀얼 포트 메모리 제어 방법.
KR1020170176246A 2017-12-20 2017-12-20 듀얼 포트 메모리 및 그 제어 방법 KR102364382B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170176246A KR102364382B1 (ko) 2017-12-20 2017-12-20 듀얼 포트 메모리 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170176246A KR102364382B1 (ko) 2017-12-20 2017-12-20 듀얼 포트 메모리 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20190074695A KR20190074695A (ko) 2019-06-28
KR102364382B1 true KR102364382B1 (ko) 2022-02-16

Family

ID=67065940

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170176246A KR102364382B1 (ko) 2017-12-20 2017-12-20 듀얼 포트 메모리 및 그 제어 방법

Country Status (1)

Country Link
KR (1) KR102364382B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3712842B2 (ja) * 1997-08-05 2005-11-02 株式会社リコー データ転送制御方法、データ転送制御装置及び情報記録媒体
US6665708B1 (en) * 1999-11-12 2003-12-16 Telefonaktiebolaget Lm Ericsson (Publ) Coarse grained determination of data dependence between parallel executed jobs in an information processing system
US6757795B2 (en) * 2001-04-03 2004-06-29 International Business Machines Corporation Apparatus and method for efficiently sharing memory bandwidth in a network processor
KR100813133B1 (ko) * 2006-11-22 2008-03-17 엠텍비젼 주식회사 듀얼 포트 메모리 장치, 이를 가지는 메모리 시스템 및듀얼 포트 메모리 장치의 공유 메모리 영역의 적응적사용방법

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
공개특허공보 제10-2002-0088063호(2002.11.25.) 1부*
등록특허공보 제10-0590387호(2006.06.15.) 1부*
등록특허공보 제10-0813133호(2008.03.17.) 1부*
일본 공개특허공보 특개평11-53300호(1999.02.26.) 1부*

Also Published As

Publication number Publication date
KR20190074695A (ko) 2019-06-28

Similar Documents

Publication Publication Date Title
KR101558482B1 (ko) 공유 멀티 포트 메모리 장치에서 뱅크의 공유 및 리프레쉬
KR102145401B1 (ko) 메모리 동작 파라미터에 대한 다수의 파라미터 코드를 저장 및 기록하기 위한 방법 및 장치
KR102249416B1 (ko) 메모리 시스템 및 메모리 시스템의 구동 방법
CN107481746A (zh) 用于操作ddr可兼容异步存储器模块的系统和方法
JP2008532140A (ja) 複数内部データバス及びメモリバンクインターリービングを有するメモリデバイス及び方法
KR20200131345A (ko) 판독 우선 순위를 가진 명령 선택 정책
US7039737B1 (en) Method and apparatus for resource arbitration
KR102106541B1 (ko) 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템
KR102478527B1 (ko) 이기종 메모리 시스템용 시그널링
KR20160116533A (ko) 리프레쉬 동작을 관리하는 메모리 콘트롤러, 메모리 시스템 및 그 동작방법
US20060107003A1 (en) Separate handling of read and write of read-modify-write
US8266361B1 (en) Access methods and circuits for devices having multiple buffers
TW200422829A (en) Memory controller
CN112368676A (zh) 处理数据的方法和设备
US20070079038A1 (en) Arbitration scheme for shared memory device
KR102364382B1 (ko) 듀얼 포트 메모리 및 그 제어 방법
US9798492B2 (en) Semiconductor device including a plurality of function blocks
KR101110550B1 (ko) 프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 방법
WO2016106933A1 (zh) 一种基于若干分区的mcu芯片信息保护方法和装置
US11694735B2 (en) Memory controller and method of controlling the memory controller
KR101426187B1 (ko) 메모리 시스템 및 메모리 인터페이스 장치
US5408612A (en) Microprocessor system for selectively accessing a processor internal register when the processor has control of the bus and partial address identifying the register
US11308010B2 (en) Memory system having memories of different capacities
JP4391200B2 (ja) ディスクアレイ装置及びディスクアレイ装置の制御方法
JP4983632B2 (ja) 情報通信システム、そのアクセス調停方法及びその制御プログラム

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