KR100872196B1 - 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법 - Google Patents

메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법 Download PDF

Info

Publication number
KR100872196B1
KR100872196B1 KR1020060115518A KR20060115518A KR100872196B1 KR 100872196 B1 KR100872196 B1 KR 100872196B1 KR 1020060115518 A KR1020060115518 A KR 1020060115518A KR 20060115518 A KR20060115518 A KR 20060115518A KR 100872196 B1 KR100872196 B1 KR 100872196B1
Authority
KR
South Korea
Prior art keywords
processor
memory area
data
access
shared memory
Prior art date
Application number
KR1020060115518A
Other languages
English (en)
Other versions
KR20080046067A (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 KR1020060115518A priority Critical patent/KR100872196B1/ko
Publication of KR20080046067A publication Critical patent/KR20080046067A/ko
Application granted granted Critical
Publication of KR100872196B1 publication Critical patent/KR100872196B1/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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 메모리의 성능을 향상시키기 위한 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법이 개시된다. 제1 프로세서에 의해 액세스되는 제1 로컬 메모리 영역, 제2 프로세서에 의해 액세스되는 제2 로컬 메모리 영역, 및 제1 및 제2 프로세서에 의해 액세스되는 공유 메모리 영역을 포함하는 메모리 셀 어레이와, 공유 메모리 영역에 대한 제1 프로세서 및 제2 프로세서 각각의 액세스 상태를 제1 및 제2 프로세서로 제공하는 세마포어 제어부를 포함하는 듀얼 포트 메모리에 있어, 제1 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 데이터를 기록하고, 제2 프로세서에서 상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터를 세마포어 제어부를 액세스하여 제2 로컬 메모리 영역에 복사하게 된다. 따라서, 추가적인 하드웨어 없이도 많은 동기화 오버헤드를 줄여 시스템 성능을 향상시킬 수 있고, 공유 메모리 영역을 효율적으로 사용할 수 있다.
듀얼 포트 메모리, 공유 메모리, 제1 프로세서, 제2 프로세서, 세마포어, DMA

Description

메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법{MEMORY SYSTEM AND METHOD OF CONTROLLING ACCESS OF DUAL PORT MEMORY USING THE MEMORY SYSTEM}
도 1은 종래 기술의 듀얼 포트 SDRAM의 메모리 시스템의 구성을 도시한 블록도이다.
도 2는 종래의 각 프로세서와 공유 메모리 영역 사이의 데이터 전송 과정을 도시한 개념도이다.
도 3은 본 발명의 실시예에 따른 메모리 시스템의 제2 프로세서의 내부 구성을 도시한 블록도이다.
도 4는 본 발명의 실시예에 따른 공유 메모리 영역에서의 데이터 복사 과정을 도시한 개념도이다.
도 5는 본 발명의 실시예에 따른 듀얼 포트 메모리의 접근 제어 방법이 도시된 흐름도이다.
도 6은 종래 기술의 메모리 시스템의 액세스 타이밍도이다.
도 7은 본 발명의 실시예에 따른 메모리 시스템의 액세스 타이밍도이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 제1 프로세서 200 : 제2 프로세서
300 : 듀얼 포트 메모리 310 : 메모리 셀 어레이
311 : 제1 로컬 메모리 영역 312 : 공유 메모리 영역
313 : 제2 로컬 메모리 영역 230 : DMA
본 발명은 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법에 관한 것으로, 더욱 상세하게는 메모리의 성능을 향상시키기 위한 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법에 관한 것이다.
요즘, 핸드폰, PDA(Personal Digital Assistant) 등과 같은 이동 통신 단말기는 무선통신 기능 이외에 디지털 카메라, 화상통신, 멀티미디어 재생 등의 다양한 부가서비스 기능을 포함하고 있다.
이동 통신 단말기는 무선통신 및 다양한 부가서비스 기능을 처리하기 위해 베이스밴드 프로세서(baseband processor), 어플리케이션 프로세서(application processor) 등과 같은 적어도 하나 이상의 프로세서를 구비하고, 각 프로세서의 데이터 처리 속도 및 메모리의 실장 면적을 줄이기 위해 듀얼 포트 메모리(dual port memory)를 사용한다.
즉, 두 개의 프로세서가 듀얼 포트 메모리를 사용하게 되면 각 프로세서가 자신의 포트를 사용해 메모리 셀 어레이에 접근하여 데이터를 읽고 쓸 수 있기 때문에 두 개의 프로세서가 각각 서로 다른 메모리에 연결되어 호스트 프로세서간 인터페이스(Host Porcessor Interface: HPI)를 통해 처리 데이터를 주고 받는 경우보 다 데이터의 전송 및 처리 속도가 더 빠르고 이로 인해 시스템의 전체적인 성능이 향상된다.
도 1은 종래 기술의 듀얼 포트 SDRAM을 이용한 메모리 시스템의 구성을 도시한 블록도이다.도 1에 도시된 바와 같이, 종래 기술의 듀얼 포트 SDRAM을 이용한 메모리 시스템은 제1 프로세서(100), 제2 프로세서(200), 및 듀얼 포트 메모리(300)를 포함한다.
듀얼 포트 SDRAM이 이동 통신 단말기에 적용되는 경우에, 제1 프로세서(100)는 베이스밴드(baseband) 프로세서로 동작되고, 제2 프로세서(200)는 어플리케이션(application) 프로세서로 동작될 수 있다.
이동 통신 단말기에서의 베이스밴드 프로세서는 통신 기능을 수행할 뿐 아니라, 특정 기능(예를 들어, 멀티미디어 재생, 카메라 기능 등)의 수행을 위한 어플리케이션 프로세서들의 동작을 제어한다. 또한, 베이스밴드 프로세서는 이동 통신 단말기에 구비된 부가 장치들(예를 들어, 디스플레이부, 외장형 저장장치 등)의 동작을 제어할 수도 있다.
제1 프로세서(100)는 제1 외부 버스 인터페이스(External BUS Interface)(101)를 통하여 듀얼 포트 메모리(300)에 대해 데이터를 읽고 쓰고, 제2 프로세서(200)는 제2 외부 버스 인터페이스(102)를 통하여 듀얼 포트 메모리(300)에 대해 데이터를 읽고 쓴다.
듀얼 포트 메모리(300)는 메모리 셀 어레이(310), 제1 메모리 인터페이스(320), 제2 메모리 인터페이스(330), 및 세마포어 제어부(340)를 포함하지만 이 에 한정되지는 않는다.
메모리 셀 어레이(310)는 저장 영역이 n(자연수)개의 영역으로 분할되는데, 도 1에서는 제1 로컬 메모리 영역(311), 공유 메모리 영역(312), 제2 로컬 메모리 영역(313)으로 분할되어 있다.
제1 프로세서(100)는 포트 A를 통하여 제1 메모리 인터페이스(320)를 거쳐 제1 로컬 메모리 영역(311)으로 데이터를 기록 또는 제1 로컬 메모리 영역(311)으로부터 데이터를 독출하고, 제2 프로세서(200)는 포트B를 통하여 제2 메모리 인터페이스(330)를 거쳐 제2 로컬 메모리 영역(313)으로 데이터를 기록 또는 제2 로컬 메모리 영역(313)으로부터 데이터를 독출한다.
공유 메모리 영역(312)은 제1 프로세서(100)(또는 제2 프로세서(200))가 기록한 데이터를 제2 프로세서(200)(또는 제1 프로세서(100))가 독출할 수 있도록 데이터를 공유하는 영역이다.
즉, 제1 로컬 메모리 영역(311)은 제1 프로세서에 전용 영역으로 할당되고, 제2 로컬 메모리 영역(313)은 제2 프로세서에 전용 영역으로 할당되어 있다. 그러나, 공유 메모리 영역(312)은 특정 프로세서에 전용 영역으로 할당되지 않고 동시에 억세스되지만 않는다면 개별적인 억세스가 가능하다. 즉, 어느 한쪽 프로세서에서 공유 메모리 영역(312)에 대한 액세스가 완료된 후 다른 프로세서에서 공유 메모리 영역(312)에 대한 액세스가 되도록 제어된다.
메모리 셀 어레이(300)는 일반적으로 메모리 셀 집적도가 좋은 DRAM 셀 어레이로 구성된다. 듀얼 포트 메모리(300)는 SDRAM 듀얼 포트 메모리가 될 수 있으며, 이 경우에 메모리 셀 어레이(310)는 뱅크(Bank) 단위로 영역이 구분될 수도 있다. 일반적인 SDRAM은 뱅크 어드레스(Bank address), 로우 어드레스(rowaddress) 및 컬럼 어드레스(column address)를 포함한다. 통상 듀얼 포트 SDRAM인 경우 4개의 뱅크(Bank)로 구성된다. 예를 들어, 제1 로컬 메모리 영역(311)에 하나의 뱅크를 할당하고, 제2 로컬 메모리 영역(313)에 두개의 뱅크를 할당하고, 공유 메모리 영역(312)에 하나의 뱅크를 할당할 수 있다.
제1 메모리 인터페이스(320)는 제1 프로세서(100)로부터 제1 외부 인터페이스(101)를 통해 어드레스(ADD1), 제어신호(CTR1), 클럭(CLK1), 및 데이터(DQ1)를 입력받고, 기록/독출 및 리프레쉬(refresh) 등의 동작 타이밍에 따라 메모리 어레이(310)와 데이터의 입출력을 수행한다.
이러한 제1 메모리 인터페이스(320)는 명령 디코더(command decoder), 로우 디코더(row decoder), 컬럼 디코더(column decoder), 및 입출력 버퍼 등을 포함한다.
제2 메모리 인터페이스(330)는 제2 프로세서(200)로부터 제2 외부 버스 인터페이스(201)를 통해 어드레스(ADD2), 제어신호(CTR2), 클럭(CLK2) 및 데이터(DQ2)를 입력받고, 기록/독출 및 리프레쉬 동작 등의 동작 타이밍에 따라 메모리 셀 어레이(310)와 데이터의 입출력을 수행한다. 제2 메모리 인터페이스(330)는 명령 디코더, 로우 디코더, 컬럼 디코더, 및 입출력 버퍼 등을 포함한다.
이와 같이, 제1 프로세서(100)와 제2 프로세서(200)가 제1 및 제2 외부 버스 인터페이스(101, 201)와 결합한 시스템에서의 듀얼 포트 SDRAM의 메모리 시스템은 일반적인 호스트 프로세서 인터페이스(Host processor interface), 시리얼 패럴 인터페이스(Serial parallel interface), I2C와 같은 인터페이스보다 고속으로 데이터를 입출력할 수 있다.
이러한 듀얼 포트 SDRAM의 메모리 시스템은 공유 메모리 영역(312)에 대한 접근(access)을 시도하거나 접근에 대한 권한을 획득할 경우에 고속 제어를 위해 인터럽트(Interrupt) 또는 레디(Ready) 신호를 사용하게 된다.
세마포어 제어부(340)는 제1 메모리 인터페이스(320), 제2 메모리 인터페이스(330), 제1 프로세서(100), 및 제2 프로세서(200)와 연결되어 있어 상기 공유 메모리 영역(312)에 대한 메모리 액세스 권한에 대한 내용이 변경되면 이를 제1 프로세서(100)와 제2 프로세서(200)에 인터럽트 또는 레디 신호를 사용하여 알려주는 역할을 수행한다.
즉, 세마포어 제어부(340)는 제1 프로세서(100) 및 제2 프로세서(200)에서 공유 메모리 영역(312)을 충돌없이 액세스 가능하도록 제어한다. 세마포어 제어부(340)는 적어도 하나의 하드웨어 세마포어 셀(hardware semaphore cell)로 구성될 수 있으며, 하드웨어 세마포어 셀은 공유 메모리 영역(312) 별로 하나씩 존재한다. 예를 들어, 공유 메모리 영역(312)이 하나의 뱅크로 구성된 경우에는 세마포어 제어부(340)는 하나의 하드웨어 세마포어 셀로 구성되며, 공유 메모리 영역(312)이 두개의 뱅크로 구성된 경우에는 세마포어 제어부(340)는 두개의 하드웨어 세마포어 셀로 구성될 수 있다.
제1 프로세서(100)가 하드웨어 세마포어를 점유한 상태에서 제2 프로세 서(200)는 공유 메모리 영역(312)으로의 접근 대기 상태가 되고, 제1 프로세서(100)에서 하드웨어 세마포어를 해제하면 제2 프로세서(200)의 공유 메모리 영역(312)으로의 접근 대기 상태가 해제되는 방식으로 하나의 자원, 즉 공유 메모리 영역(312)을 2개의 프로세서가 상호 배타적으로 접근할 수 있도록 한다.
구체적으로, 세마포어 제어부(340)의 동작을 설명하면, 제1 프로세서(100) 또는 제2 프로세서(200)에서 공유 메모리 영역(312)을 액세스하고자 할 경우에는 세마포어 제어부(340)로 데이터 '0'을 쓰고, 세마포어 제어부(340)로부터 데이터를 읽어들여 읽은 데이터 값이 '0' 또는 '1'인지 여부에 따라 공유 메모리 영역(312)이 액세스 가능한지 여부를 알 수 있다. 즉, '0'인 경우에는 공유 메모리 영역(312)가 액세스 가능한 상태를 나타내고, '1'인 경우에는 공유 메모리 영역(312)이 타 프로세서에서 점유된 상태를 나타낸다.
제1 프로세서(100)가 하드웨어 세마포어를 점유하고 있는 동안, 제2 프로세서(200)는 공유 메모리 영역(312)으로의 접근이 대기된 상태이므로 다른 데이터 처리 동작을 수행할 수 있다.
제1 프로세서(100) 또는 제2 프로세서(200)에서 공유 메모리 영역(312)에 대한 액세스를 끝낸 후에는 세마포어 제어부(340)로 데이터 '1'을 씀으로써 2개의 프로세서가 상호 배타적으로 공유 메모리 영역(312)에 액세스할 수 있다.
위 경우에, 제1 프로세서(100) 및 제2 프로세서(200)에서 공유 메모리 영역(312)을 액세스하기 위하여 하드웨어 세마포어로 상기와 같이 소정의 데이터를 읽고 쓰는 작업들이 공유 메모리 영역(312)으로의 접근에 대한 오버헤드가 된다.
종래의 메모리 시스템은 어느 한 쪽의 프로세서에서 공유 메모리 영역(312)에 기록한 데이터를 타 프로세서에서 여러 번 독출하고자 할 경우에 매번 하드웨어 세마포어를 점유하기 위한 오버헤드가 발생하게 되므로 성능 저하를 초래하는 문제점이 있다.
도 2는 종래의 각 프로세서와 공유 메모리 영역 사이의 데이터 전송 과정을 도시한 개념도이다.
도 2에 도시된 바와 같이, 듀얼 포트 SDRAM을 이용한 메모리 시스템에서 데이터의 특성에 따라 제1 프로세서(100)가 1회 기록한 데이터를 제2 프로세서(200)가 여러 번 접근하여 독출하는 상황이 자주 발생할 수 있다.
제1 프로세서(100)와 제2 프로세서(200)는 공유 메모리 영역(312)에 접근할 때 모두 동기화 오버헤드가 발생하는데, 제2 프로세서(200)는 동일한 데이터를 독출하기 위해 공유 메모리 영역(312)에 여러 번 접근하게 되므로 매번 동기화 오버헤드가 발생하게 되고, 이러한 동기화 오버헤드가 축적됨으로써 전체 시스템의 성능 저하를 초래하게 된다.
따라서, 본 발명의 제1 목적은 제1 프로세서에서 듀얼 포트 메모리의 공유 메모리 영역에 기록한 데이터를 제2 프로세서에서 여러 번 액세스할 때 발생하는 동기화 오버헤드로 인한 성능 저하를 감소시키기 위한 듀얼 포트 메모리의 접근 제어 방법을 제공하는 것이다.
본 발명의 제2 목적은 상기한 듀얼 포트 메모리의 접근 제어 방법을 이용한 메모리 시스템을 제공하는 것이다.
상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일측면에 따른 듀얼 포트 메모리의 접근 제어 방법은, 제1 프로세서에 의해 액세스되는 제1 로컬 메모리 영역, 제2 프로세서에 의해 액세스되는 제2 로컬 메모리 영역, 및 상기 제1 및 제2 프로세서에 의해 액세스되는 공유 메모리 영역을 포함하는 메모리 셀 어레이와, 상기 공유 메모리 영역에 대한 상기 제1 프로세서 및 상기 제2 프로세서 각각의 액세스 상태를 상기 제1 및 제2 프로세서로 제공하는 세마포어 제어부를 포함하는 듀얼 포트 메모리의 접근 제어 방법에 있어서, 제1 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 데이터를 기록하는 단계, 제2 프로세서에서 상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터를 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 단계를 포함한다.
상기한 듀얼 포트 메모리의 접근 제어 방법은 제2 프로세서는 상기 세마포어 제어부로의 액세스 요청 없이 상기 공유 메모리 영역에서 상기 제2 로컬 메모리 영역으로 복사되어 저장된 데이터를 읽어들이는 단계를 더 포함할 수 있다.
상기 제2 프로세서는 상기 세마포어 제어부의 액세스 요청 없이 상기 공유 메모리 영역에서 상기 제2 로컬 메모리 영역으로 복사되어 저장된 데이터를 읽어들이는 단계는, 제2 프로세서에서 상기 공유 메모리 영역에서 상기 제2 로컬 메모리 영역으로 복사되어 저장된 데이터의 읽기 요청을 전송하는 단계, 및 제2 로컬 메모 리 영역에서 상기 제2 로컬 메모리 영역으로 복사되어 저장된 데이터를 독출하는 단계를 포함할 수 있다.
상기 제2 프로세서에서 상기 제1 프로세서에 의해 상기 상기 공유 메모리 영역에 기록된 데이터를 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 단계는, 제2 프로세서에서 상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터 중에서 적어도 1회 이상 액세스가 필요하다고 판단되는 데이터를 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 단계이다.
상기 제2 프로세서에서 상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터를 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 단계는, 상기 제2 프로세서의 DMA(Direct Memory Access)에서 수행할 수 있다.
상기 제1 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 데이터를 기록하는 단계는 제1 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 대한 액세스 권한을 획득하는 단계, 상기 제1 프로세서에서 상기 공유 메모리 영역에 데이터를 기록하는 단계, 및 상기 제1 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 대한 액세스 권한을 해제하는 단계를 포함할 수 있다.
상기 제2 프로세서에서 상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터를 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 단계는, 상기 제2 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 대한 액세스 권한을 획득하는 단계, 상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터를 읽어들이는 단계, 상기 읽어들인 데이터를 상기 제2 로컬 메모리 영역에 복사하는 단계, 및 상기 제2 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 대한 액세스 권한을 해제하는 단계를 포함할 수 있다.
상기 제1 프로세서는 이동통신 단말기의 베이스밴드 프로세서이고, 상기 제2 프로세서는 어플리케이션 프로세서가 될 수 있다. 상기 메모리 셀 어레이는 DRAM 셀 구조를 가질 수 있고, 상기 듀얼 포트 메모리는 SDRAM 듀얼 포트 메모리가 될 수 있다.
상술한 본 발명의 제2 목적을 달성하기 위한 본 발명의 다른 측면에 따른 메모리 시스템은, 제1 프로세서, 제2 프로세서, 및 상기 제1 프로세서에 의해 액세스되는 제1 로컬 메모리 영역, 상기 제2 프로세서에 의해 액세스되는 제2 로컬 메모리 영역 및 상기 제1 및 제2 프로세서에 의해 액세스되는 공유 메모리 영역을 포함하는 메모리 셀 어레이, 상기 공유 메모리 영역에 대한 상기 제1 프로세서 및 상기 제2 프로세서 각각의 액세스 상태를 상기 제1 및 제2 프로세서로 제공하는 세마포어 제어부를 포함하는 듀얼 포트 메모리를 포함하되, 상기 제2 프로세서는 상기 제1 프로세서가 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 기록한 데이터를 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 것을 특징으로 한다
상기 제2 프로세서는 상기 듀얼 포트 메모리에 액세스하여 데이터를 읽거나 쓰는 동작을 제어하고, 상기 제1 프로세서가 상기 공유 메모리 영역에 기록한 데이터 중에서 적어도 1회 이상 접근이 필요한 데이터들을 상기 제2 로컬 메모리 영역에 복사되도록 제어하는 직접 메모리 액세스부(Direct Memory Access)를 포함할 수 있다.
상기 직접 메모리 액세스부는 상기 제2 프로세서에서 상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터 중에서 적어도 1회 이상 액세스가 필요하다고 판단되는 데이터를 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하도록 한다.
상기 제1 프로세서는 제1 외부 버스 인터페이스(External BUS Interface)를 통하여 상기 듀얼 포트 메모리에 대해 데이터를 읽고 쓰고, 상기 제2 프로세서는 제2 외부 버스 인터페이스를 통하여 상기 듀얼 포트 메모리에 대해 데이터를 읽고 쓰는 것을 특징으로 한다.
상기 제2 프로세서는 상기 세마포어 제어부의 액세스 요청 없이 상기 공유 메모리 영역에서 상기 제2 로컬 메모리 영역으로 복사되어 저장된 데이터를 읽어들일 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것 으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다.
이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 3은 본 발명의 실시예에 따른 메모리 시스템의 구성을 도시한 블록도이다.
도 3에 도시된 바와 같이, 본 발명의 실시예에 따른 메모리 시스템은 제1 프로세서(100), 제2 프로세서(200), 및 듀얼 포트 메모리(300)를 포함한다.
듀얼 포트 메모리(300)는 포트A를 통해 제1 외부 버스 인터페이스(External Bus Interface: EBI)(101)를 가지는 제1 프로세서(100)와 연결되고, 포트B를 통해 제2 외부 버스 인터페이스(201)를 가지는 제2 프로세서(200)와 연결된다.
제1 프로세서(100)는 핸드폰과 같은 이동 통신 단말기에 사용되는 베이스 밴드 프로세서가 될 수 있고, 제2 프로세서(200)는 비디오 프로세서, 멀티미디어 프로세서 등과 같은 응용프로그램을 수행하기 위한 어플리케이션 프로세서가 될 수 있다.
제1 프로세서(100)는 듀얼 포트 메모리(300)의 포트A를 통하여 어드레스(ADD1), 복수의 제어신호들(CTR1) 및 클럭(CLK1)을 듀얼 포트 메모리(300)에 제공하고, 듀얼 포트 메모리는 포트A 및 제1 외부 버스 인터페이스(101)를 통하여 제1 프로세서(100)와 데이터(DQ1)의 입출력을 수행한다.
또한, 제2 프로세서(200)는 듀얼 포트 메모리(300)의 포트B를 통하여 어드레스(ADD2), 복수의 제어신호들(CTR2) 및 클럭(CLK2)을 듀얼 포트 메모리(300)에 제공하고, 듀얼 포트 메모리(300)는 포트B 및 제2 외부 버스 인터페이스(201)를 통하여 제2 프로세서(200)와 데이터(DQ2)의 입출력을 수행한다.
제1 외부 버스 인터페이스(101) 및 제2 외부 버스 인터페이스(201)는 일종의 메모리 컨트롤러(memory controller) 역할을 수행하며 SDRAM(Synchronous DRAM) 또는 PSRAM(Pseudo SRAM)의 외부 버스 인터페이스가 사용될 수 있다. 이하 본 발명의 일실시예에서는 제1 외부 버스 인터페이스(101) 및 제2 외부 버스 인터페이스(201)는 SDRAM 외부 버스 인터페이스인 것으로 가정한다.
메모리 셀 어레이(310)는 DRAM의 단위 메모리 셀 구조를 가지고 제1 로컬 메 모리 영역(311), 제2 로컬 메모리 영역(313), 및 공유 메모리 영역(312)을 포함한다.
제1 메모리 인터페이스(320)는 SDRAM 메모리 인터페이스로 구성되고, 포트A를 통하여 제1 프로세서(100)로부터 어드레스(ADD1), 제어신호(CTR1), 클럭(CLK1) 및 데이터(DQ1)를 입력받고, 어드레스(ADD1)를 로우 어드레스와 컬럼 어드레스에서 디코딩한 후 상기 디코딩된 어드레스(I_AD1)에 기초하여 메모리 셀 어레이(310)의 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터(I_DQ1)를 메모리 셀 어레이(310)로부터 독출하거나 메모리 셀 어레이(310)에 기록한다.
이를 위해 제1 메모리 인터페이스(320)는 일반적인 SDRAM 인터페이스에서 사용되는 명령 디코더(Command decoder)(미도시), 로우 디코더(Row decoder) (미도시), 컬럼 디코더(Column decoder) (미도시) 및 입출력 버퍼(미도시) 등을 포함할 수 있다.
제2 메모리 인터페이스(330)는 SDRAM 메모리 인터페이스로 구성되고, 포트B를 통하여 제2 프로세서(200)로부터 어드레스(ADD2), 제어신호(CTR2), 클럭(CLK2) 및 데이터(DQ2)를 입력받고 어드레스(ADD2)를 로우 어드레스와 컬럼 어드레스에서 디코딩한 후 상기 디코딩된 어드레스(I_AD2)에 기초하여 메모리 셀 어레이(310)의 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터(I_DQ2)를 메모리 셀 어레이(310)로부터 독출하거나 메모리 셀 어레이(310)에 기록한다.
이를 위해 제2 메모리 인터페이스(330)는 일반적인 SDRAM 인터페이스에서 사용되는 명령 디코더(미도시), 로우 디코더(미도시), 컬럼 디코더(미도시) 및 입출 력 버퍼(미도시) 등을 포함할 수 있다.
상기에서, 제2 프로세서(200)는, 호스트 인터페이스(210), 중앙처리부(220), 및 DMA(230)를 포함하지만 이에 한정되지는 않는다.
호스트 인터페이스(210)는 제1 프로세서(100)와 호스트 인터페이스(Host Interface) 동작을 수행한다. 중앙 처리부(220)는 제2 프로세서(200)의 메모리 사용 여부 또는 전반적인 데이터 처리 동작을 제어한다.
DMA(230)는 중앙 처리부(220)와 독립적으로 듀얼 포트 메모리(300)의 메모리 셀 어레이를 액세스하여 데이터를 읽거나 쓰는 동작을 제어한다.
상기에서, 호스트 인터페이스(210), 중앙 처리부(220), 제2 외부 버스 인터페이스(201), 및 DMA(230)는 버스(BUS)를 통하여 상호 정보를 송수신한다. 버스(Bus)는 컴퓨터 등에서 제어부와 주기억장치, 입출력 장치 간에 정보를 전송하는 데 사용되는 공용 목적의 전기적 통로를 의미한다. 버스는 각 장치(device)의 주소나 기억장치의 위치를 나타내는 정보들을 위한 선과 수행될 다양한 데이터 전송 동작을 구별하기 위한 선을 포함한다.
이동 통신 단말기의 경우에 제1 프로세서(100)는 베이스밴드 프로세서로서 주로 쓰기 동작을 수행하고, 제2 프로세서(200)는 어플리케이션 프로세서로서 빈번히 듀얼 포트 메모리(300)의 메모리 셀 어레이(310) 내의 데이터를 참조하게 된다. 이로 인해, 제1 프로세서(100)가 공유 메모리 영역(312)에 기록한 데이터들을 제2 프로세서(200)가 여러 번 독출하여 사용하는 상황이 자주 발생할 수 있다.
따라서, DMA(230)는 제1 프로세서(100)가 공유 메모리 영역(312)에 기록한 데이터 중에서 적어도 1회 이상 접근이 필요한 데이터들이 제2 로컬 메모리 영역(313)에 복사되도록 제어한다. 여기서, 해당 데이터를 제2 로컬 메모리 영역(313)으로 복사할 것인지를 여부는 중앙 처리부(220)에서 직접 수행하도록 구성할 수도 있음은 물론이다.
한편, 제2 프로세서가 공유 메모리 영역에 기록한 데이터들을 제1 프로세서가 여러 번 독출하여 사용하는 상황이 발생하는 때에는, 제1 프로세서(100)의 DMA에서 해당 데이터를 제1 로컬 메모리 영역(311)으로 복사할 것인지를 판단할 수 있다.
여기서, 해당 데이터를 제1 로컬 메모리 영역(311)으로 복사할 것인지를 여부는 제1 프로세서(100)의 중앙 처리부(미도시)에서 직접 수행하도록 구성할 수도 있음은 물론이다.
도 4는 본 발명의 일실시예에 따른 공유 메모리 영역에서의 데이터 복사 과정을 도시한 개념도이다.
도 4를 참고하면, 본 발명의 일실시예에 따른 메모리 시스템은 제1 프로세서(100)가 공유 메모리 영역(312)에 기록한 데이터 중에서 데이터 B를 제2 프로세서(200)가 적어도 1회 이상 독출하는 경우에, 제2 프로세서(200)의 DMA(230)가 공유 메모리 영역(312)를 액세스하여 데이터 B를 읽어들여 제2 로컬 메모리 영역(313)에 복사해 둔다.
이후에, 제2 프로세서(200)는 공유 메모리 영역(312)이 아니라 자신의 전용 영역으로 할당된 제2 로컬 메모리 영역(313)에 접근하여 데이터B를 독출하게 되므 로 하드웨어 세마포어를 점유할 필요가 없어지고, 아울러 동기화 오버헤드가 발생하지 않는다.
즉, 제1 프로세서(100)는 공유 메모리 영역에 대한 액세스 요청 신호(REQ1)를 세마포어 제어부(340)에 전송하고, 세마포어 제어부(340)는 공유 메모리 영역(312)에 대한 현재의 액세스 여부에 따라 세마포어 신호(SMP1)를 출력한다.
여기서, 제1 프로세서(100)는 제1 메모리 인터페이스(320)를 통해 액세스 요청 신호(REQ1)를 전송하고, 제2 프로세서(200)는 제2 메모리 인터페이스(330)를 통해 액세스 요청 신호(REQ2)를 전송한다.
액세스 요청 신호(REQ1, REQ2)는 논리값 '0' 또는 '1'을 가질 수 있으며, 제1 프로세서(100) 및 제2 프로세서(200)가 공유 메모리 영역(312)에 대해 액세스 요청을 하는 경우에는 액세스 요청 신호는 논리값 '0'이 될 수 있고, 제1 프로세서(100) 및 제2 프로세서(200)가 공유 메모리 영역에서 작업을 마친 경우에는 액세스 요청 신호는 논리값 '1'이 될 수 있다.
또한, 본 발명의 다른 실시예에서는 소정의 공유 메모리 영역에 대해 액세스 요청을 하는 경우에는 액세스 요청 신호는 논리값 '1'이 되고, 제1 프로세서(100) 및 제2 프로세서(200)가 공유 메모리 영역에서 작업을 마친 경우에는 액세스 요청 신호는 논리값 '0'이 되도록 액세스 요청 신호(REQ1, REQ2)를 구성할 수도 있다.
세마포어 제어부(340)는 제1 프로세서(100) 및 제2 프로세서(200)로부터 공유 메모리 영역에 대한 액세스 요청시 논리값 '0'을 입력받고, 요청된 소정 공유 메모리 영역의 현재의 액세스 상태에 따라 액세스가 가능한 경우는 논리값 '0'을 세마포 신호(SMP1, SMP2)로 출력하고, 액세스가 가능하지 않은 경우는 논리값 '1'을 세마포 신호(SMP1, SMP2)로 출력한다.
예를 들어, 세마포어 제어부(340)는 공유 메모리 영역(312)에 대해 제1 프로세서(100) 및 제2 프로세서(200) 중 어느 프로세서도 액세스를 하지 않은 경우에는 제1 프로세서(100) 및 제2 프로세서(200)의 세마포어 신호(SMP1, SMP2)로 각각 논리값 '1'을 출력한다.
그리고, 제1 프로세서(100)가 공유 메모리 영역(312)에 대해 액세스를 요청하기 위해 논리값 '0'을 입력하면, 공유 메모리 영역(312)에 대한 제1 프로세서(100)의 세마포어 신호(SMP1)로 논리값 '0'을 출력하고, 제2 프로세서(200)의 세마포어 신호(SMP2)로 논리값 '1'을 출력한다.
그리고 상기와 같은 제1 프로세서(100)가 공유 메모리 영역(312)에 액세스 하여 읽기 또는 쓰기를 수행하는 도중에 제2 프로세서(200)가 공유 메모리 영역(312)에 액세스를 요청하기 위해 논리값 '0'을입력하게 되면 세마포어 제어부(340)는 공유 메모리 영역(312)이 현재 제1 프로세서(100)에 의해 액세스 되고 있기 때문에 제1 프로세서(100)의 세마포어 신호(SMP1)는 논리값 '0'을 출력하고, 제2 프로세서(200)의 세마포어 신호(SMP2)는 논리값 '1'을 출력한다.
이후 제1 프로세서(100)가 공유 메모리 영역(312)에서 작업을 종료하고, 작업 종료를 표시하는 논리값 '1'을 입력하게 되면 세마포어 제어부(340)는 제1 프로세서(100)의 세마포어 신호(SMP1)는 논리값 '1'을 출력하고, 제2 프로세서(200)의 세마포어 신호(SMP2)는 논리값 '0'을 출력함으로써 제2 프로세서(200)가 공유 메모 리 영역(312)에 액세스 할 수 있도록 한다.
제2 프로세서(200)의 DMA(230)는 제2 메모리 인터페이스(330)를 통해 액세스 요청 신호(REQ2)를 전송하고, 세마포어 제어부(340)는 제2 프로세서(200)로부터 공유 메모리 영역(312)에 대한 액세스 요청을 위해 논리값 '0'을 입력받고, 공유 메모리 영역(312)의 액세스가 가능하면 논리값 '0'을 세마포어 신호(SMP2)로 출력하고, 액세스가 가능하지 않으면 논리값 '1'을 세마포어 신호(SMP2)로 출력한다.
상기에서, 세마포어 신호(SMP2)가 논리값 '1'을 출력한 경우에, 제2 프로세서(200)의 DMA(230)는 공유 메모리 영역(312)으로의 액세스가 가능할 때까지 액세스 대기 상태가 된다.
그러나, 세마포어 신호(SMP2)가 논리값 '0'을 출력한 경우에, DMA(230)는 공유 메모리 영역(312)에서 제1 프로세서(100)가 기록한 데이터를 복사하여 제2 로컬 메모리 영역(313)에 쓰기를 수행하도록 한다.
제2 프로세서(200)는 상기한 데이터 복사 과정을 통해 제1 프로세서(100)가 기록한 데이터를 자신의 전유 영역인 제2 로컬 메모리 영역(313)에서 독출할 수 있다.
이때, 제2 프로세서(200)는 상기 데이터를 독출하기 위해 공유 메모리 영역(312)에 접근할 필요가 없어지므로 하드웨어 세마포어를 점유할 필요가 없어지고, 동기화 오버헤드가 발생하지 않게 된다.
듀얼 포트 메모리(300)가 적어도 1개 이상의 공유 메모리 영역을 포함하는 경우에, 상기한 데이터 복사 과정이나 공유 메모리 영역으로의 액세스 권한 획득/ 해제를 위한 공유 메모리 영역으로의 접근 제어 동작은 각각의 공유 메모리 영역마다 이루어질 수 있다.
이하, 본 발명의 실시예에 따른 메모리 시스템에 대해 도면을 참조하여 보다 구체적으로 설명한다.
도 5는 본 발명의 실시예에 따른 메모리 시스템의 접근 제어 방법이 도시된 흐름도이고, 도 6은 종래 기술의 메모리 시스템의 액세스 타이밍도이며, 도 7은 본 발명의 실시예에 따른 메모리 시스템의 액세스 타미잉도이다.
도 5에 도시된 바와 같이, 본 발명의 실시예에 따른 메모리 시스템의 접근 제어 방법은, 듀얼 포트 메모리(300)의 메모리 셀 어레이(310)에 데이터를 기록할 경우에 제1 프로세서(100)가 전유 메모리 영역에 데이터를 쓰고자 할 경우에는 제1 외부버스 인터페이스(101) 및 포트 A를 통하여 제1 메모리 인터페이스(320)로 쓰기 요청을 전송한 후, 제1 로컬 메모리 영역(311)에 데이터 A를 기록한다.(S1, S2)
제1 프로세서(100)가 공유 메모리 영역(312)에 데이터를 쓰고자 할 경우에는 제1 외부버스 인터페이스(101) 및 포트A를 통하여 제1 메모리 인터페이스(320)로 쓰기 요청을 전송한 후 공유 메모리 영역(312)에 데이터 B를 기록한다.(S3, S4)
마찬가지로, 제2 프로세서(200)가 전유 메모리 영역에 데이터를 쓰고자 할 경우에는 제2 외부버스 인터페이스(201) 및 포트 B를 통하여 제2 메모리 인터페이스(330)로 쓰기 요청을 전송한 후, 제2 로컬 메모리 영역(313)에 데이터 C를 기록한다.(S5, S6)
제2 프로세서(200)가 공유 메모리 영역(312)에 데이터를 쓰고자 할 경우에는 제2 외부버스 인터페이스(201) 및 포트B를 통하여 제2 메모리 인터페이스(330)로 쓰기 요청을 전송한 후 공유 메모리 영역(312)에 데이터 D를 기록한다.(S7, S8)
듀얼 포트 메모리(300)의 메모리 셀 어레이(310)에서 데이터를 독출할 경우에, 제1 프로세서(100)는 하드웨어 세마포어를 점유한 상태에서 공유 메모리 영역(312)에 읽기 요청을 전송하여 데이터 B 또는 데이터 D를 독출한다.(S9, S10) 이때, 제1 프로세서(100)가 하드웨어 세마포어를 점유한 상태이므로 제2 프로세서(200)는 제2 로컬 메모리 영역(313)으로의 접근만 가능하고 공유 메모리 영역(312)으로의 접근은 대기 상태가 된다.
제2 프로세서(200)는 제1 프로세서(100)가 공유 메모리 영역(312)에 기록한 데이터 B를 적어도 1회 이상 독출이 필요할 때에는 공유 메모리 영역(312)에서 데이터를 독출하기 이전에 공유 메모리 영역(312)에서 제2 로컬 메모리 영역(313)으로의 데이터 복사 과정을 수행한다.
즉, 제2 프로세서(200)의 DMA(230)에서는 하드웨어 세마포어를 점유한 상태에서 제2 외부버스 인터페이스(201)로 데이터 B의 복사 요청을 전송하고, 공유 메모리 영역(312)으로부터 제2 로컬 메모리 영역(313)으로 데이터 B를 복사한다. (S11, S12)
제2 프로세서(200)는 제2 로컬 메모리 영역(313)으로 데이터 B를 복사한 이후부터는 데이터 B를 독출할 경우에 하드웨어 세마포어를 점유할 필요없이 제2 외부버스 인터페이스(201)로 읽기 요청을 전송하고 자신의 전유 영역인 제2 로컬 메모리 영역(313)에서 데이터 B를 독출한다. (S13, S14)
이와 같이 동작되는 본 발명의 실시예에 따른 메모리 시스템은 기존의 메모리 시스템에 비해 프로세서와 메모리 사이의 데이터 처리 성능이 향상될 수 있다.
도 6을 참조하면, 기존의 메모리 시스템은 제2 프로세서(P2)에서 공유 메모리 영역(312)에 접근할 때마다 하드웨어 세마포어를 점유해야 하므로 동기화 오버헤드(t1, t3)가 많이 축적된다.
t1동안에는 제2 프로세서(P2)에서 공유 메모리 영역(312)을 액세스하고자 할 경우 세마포어 제어부(340)로 데이터 '0'을 쓰고 세마포어 제어부(340)로부터 데이터를 읽어들여 공유 메모리 영역(312)이 액세스 가능한지 여부를 판단하여 액세스 권한을 획득하는 작업이 수행된다.
t3동안에는 제2 프로세서(P2)에서 공유 메모리 영역(312)을 액세스한 이후에 세마포어 제어부(340)로 데이터 '1'을 쓰는 작업, 즉 공유 메모리 영역(312)에 대한 액세스 권한이 해제된다.
따라서, 제2 프로세서(P2)가 공유 메모리 영역(312)에서 특정 데이터를 독출하기 위해 소요되는 총 데이터 독출 시간(T2)는 데이터 전송 시간(t2)에 동기화 오버헤드의 축적으로 인해 소모되는 시간(t1, t3)을 합한 값이다.
제2 프로세서(P2)는 공유 메모리 영역(312)으로 접근하는 빈도수(n)가 많을수록 동기화 오버헤드가 더욱 많이 축적되고, 그로 인해 전체 데이터 독출 시간이 지연되어 시스템 전체 성능이 저하될 수 있다.
그러나, 도 7을 참조하면, 본 발명의 실시예에 따른 메모리 시스템은, 도 6에서 설명한 동일한 데이터를 제2 프로세서(P2)가 공유 메모리 영역(312)에서 독출 하기 위해, 먼저 제2 프로세서(200)의 DMA(230)가 해당 데이터를 제2 로컬 메모리 영역(313)에 복사하게 된다.
이때, 데이터 복사 시간(T3)는 DMA(230)에서 공유 메모리 영역(312)내의 데이터를 제2 로컬 메모리 영역(313)으로 전송하는 시간(t4)에 동기화 오버헤드로 소모되는 시간(t1, t3)을 합한 값이다.
t1동안에는 제2 프로세서(P2)의 DMA에서 공유 메모리 영역(312)을 액세스하고자 할 경우 세마포어 제어부(340)로 데이터 '0'을 쓰고 세마포어 제어부(340)로부터 데이터를 읽어들여 공유 메모리 영역(312)이 액세스 가능한지 여부를 판단하여 액세스 권한을 획득하는 작업이 수행된다.
t3동안에는 제2 프로세서(P2)의 DMA에서 공유 메모리 영역(312)을 액세스한 이후에 세마포어 제어부(340)로 데이터 '1'을 써 액세스 권한을 해제하는 작업이 수행된다.
이렇게 DMA(230)가 1회 동기화 작업을 수행한 이후에는, 제2 프로세서(P2)는 해당 데이터를 공유 메모리 영역(312)이 아닌 자신의 전유 영역인 제2 로컬 메모리 영역(313)에서 독출할 수 있어 하드웨어 세마포어를 점유할 필요가 없기 때문에 동기화 오버헤드가 없어지고, 결국 도 6에 비해 전체 데이터 독출 시간이 단축될 수 있다.
즉, 본 발명의 실시예의 메모리 시스템은 특정 데이터를 n번 독출하기 위해 소요되는 전체 데이터 독출 시간은 n번의 데이터 전송 시간에 DMA에 의한 데이터 복사 시간을 합한 값이지만 동기화 오버헤드의 축적으로 인해 소모되는 시간이 없 어지므로 기존에 비해 t5 정도의 시간을 절약할 수 있고, 그만큼 시스템 성능도 향상될 수 있다.
도 6 및 도 7을 참고하면, 본 발명의 실시예에 따른 메모리 시스템과 기존의 메모리 시스템에서 제1 프로세서(P1)는 공유 메모리 영역(312)으로 데이터를 전송하는 시간(T1)이 동일하고 동기화 오버헤드로 소모되는 시간도 동일하다.
본 발명에서 사용되는 용어들은 본 발명에서의 기능을 고려하여 정의 내려진 용어들로써 이는 당분야에 종사하는 기술자의 의도 또는 관례에 따라 달라질 수 있으므로 그 정의는 본 발명의 전반에 걸친 내용을 토대로 내려져야 할 것이다.
상기와 같은 메모리 시스템 및 공유 메모리 영역의 접근 제어 방법에 따르면 공유 메모리 영역에 일측 프로세서에서 주로 데이터 쓰기 동작을 수행하고 타측 프로세서에서 빈번히 데이터 접근을 시도할 경우에 해당 데이터를 타측 프로세서의 로컬 메모리 영역으로 이동시킴으로써 추가적인 하드웨어 없이도 많은 동기화 오버헤드를 줄여 시스템 성능을 향상시킬 수 있는 효과가 있다.
또한 상기와 같은 메모리 시스템 및 공유 메모리 영역의 접근 제어 방법에 따르면 공유 메모리 영역 내에 지속적으로 데이터를 보관하지 않아도 되기 때문에 공유 메모리 영역을 효율적으로 사용할 수 있는 효과가 있다.
이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이 다.

Claims (18)

  1. 제1 프로세서;
    제2 프로세서; 및
    상기 제1 프로세서에 의해 액세스되는 제1 로컬 메모리 영역, 상기 제2 프로세서에 의해 액세스되는 제2 로컬 메모리 영역 및 상기 제1 및 제2 프로세서에 의해 액세스되는 공유 메모리 영역을 포함하는 메모리 셀 어레이, 상기 공유 메모리 영역에 대한 상기 제1 프로세서 및 상기 제2 프로세서 각각의 액세스 상태를 상기 제1 및 제2 프로세서로 제공하는 세마포어 제어부를 포함하는 듀얼 포트 메모리를 포함하되,
    상기 제1 프로세서가 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 기록한 데이터 중에서 적어도 1회 이상 접근이 필요한 데이터들을 상기 제2 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 것을 특징으로 하는 메모리 시스템.
  2. 제1항에 있어서,
    상기 제2 프로세서는,
    상기 듀얼 포트 메모리에 액세스하여 데이터를 읽거나 쓰는 동작을 제어하고, 상기 제1 프로세서가 상기 공유 메모리 영역에 기록한 데이터 중에서 적어도 1회 이상 접근이 필요한 데이터들을 상기 제2 로컬 메모리 영역에 복사되도록 제어하는 직접 메모리 액세스부(Direct Memory Access)를 포함하는 메모리 시스템.
  3. 제2항에 있어서,
    상기 직접 메모리 액세스부는 상기 제2 프로세서에서 상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터 중에서 적어도 1회 이상 액세스가 필요하다고 판단되는 데이터를 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 것을 특징으로 하는 메모리 시스템.
  4. 삭제
  5. 제1항에 있어서, 상기 제2 프로세서는 상기 세마포어 제어부의 액세스 요청 없이 상기 공유 메모리 영역에서 상기 제2 로컬 메모리 영역으로 복사되어 저장된 데이터를 읽어들이는 것을 특징으로 하는 메모리 시스템.
  6. 제1항에 있어서,
    상기 제1 프로세서는 이동통신 단말기의 베이스밴드 프로세서이고, 상기 제2 프로세서는 어플리케이션 프로세서인 것을 특징으로 하는 메모리 시스템.
  7. 제1항에 있어서, 상기 메모리 셀 어레이는 DRAM 셀 구조를 가지는 것을 특징으로 하는 메모리 시스템.
  8. 제1항에 있어서, 상기 듀얼 포트 메모리는 SDRAM 듀얼 포트 메모리인 것을 특징으로 하는 메모리 시스템.
  9. 제1 프로세서에 의해 액세스되는 제1 로컬 메모리 영역, 제2 프로세서에 의해 액세스되는 제2 로컬 메모리 영역, 및 상기 제1 및 제2 프로세서에 의해 액세스되는 공유 메모리 영역을 포함하는 메모리 셀 어레이와,
    상기 공유 메모리 영역에 대한 상기 제1 프로세서 및 상기 제2 프로세서 각각의 액세스 상태를 상기 제1 및 제2 프로세서로 제공하는 세마포어 제어부를 포함하는 듀얼 포트 메모리의 접근 제어 방법에 있어서,
    상기 제1 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 데이터를 기록하는 단계;
    상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터 중에서 적어도 1회 이상 액세스가 필요하다고 판단되는 데이터를 상기 제2 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 단계를 포함하는 것을 특징으로 하는 듀얼 포트 메모리의 접근 제어 방법.
  10. 제9항에 있어서,
    상기 제2 프로세서는 상기 세마포어 제어부로의 액세스 요청 없이 상기 공유 메모리 영역에서 상기 제2 로컬 메모리 영역으로 복사되어 저장된 데이터를 읽어들이는 단계를 더 포함하는 것을 특징으로 하는 듀얼 포트 메모리의 접근 제어 방법.
  11. 제10항에 있어서,
    상기 제2 프로세서는 상기 세마포어 제어부의 액세스 요청 없이 상기 공유 메모리 영역에서 상기 제2 로컬 메모리 영역으로 복사되어 저장된 데이터를 읽어들이는 단계는,
    상기 제2 프로세서에서 상기 공유 메모리 영역에서 상기 제2 로컬 메모리 영역으로 복사되어 저장된 데이터의 읽기 요청을 전송하는 단계; 및
    상기 제2 로컬 메모리 영역에서 상기 제2 로컬 메모리 영역으로 복사되어 저장된 데이터를 독출하는 단계를 포함하는 것을 특징으로 하는 듀얼 포트 메모리의 접근 제어 방법.
  12. 삭제
  13. 제9항에 있어서, 상기 제2 프로세서에서 상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터를 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 단계는,
    상기 제2 프로세서의 DMA(Direct Memory Access)에서 수행하는 것을 특징으로 하는 듀얼 포트 메모리의 접근 제어 방법.
  14. 제9항에 있어서, 상기 제1 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 데이터를 기록하는 단계는
    상기 제1 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 대한 액세스 권한을 획득하는 단계; 상기 제1 프로세서에서 상기 공유 메모리 영역에 데이터를 기록하는 단계; 및
    상기 제1 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 대한 액세스 권한을 해제하는 단계를 포함하는 것을 특징으로 하는 듀얼 포트 메모리의 접근 제어 방법.
  15. 제9항에 있어서, 상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터 중에서 적어도 1회 이상 액세스가 필요하다고 판단되는 데이터를 상기 제2 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 제2 로컬 메모리 영역에 복사하는 단계는,
    상기 제2 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 대한 액세스 권한을 획득하는 단계;
    상기 제1 프로세서에 의해 상기 공유 메모리 영역에 기록된 데이터를 읽어들이는 단계;
    상기 읽어들인 데이터를 상기 제2 로컬 메모리 영역에 복사하는 단계; 및
    상기 제2 프로세서에서 상기 세마포어 제어부를 액세스하여 상기 공유 메모리 영역에 대한 액세스 권한을 해제하는 단계를 포함하는 듀얼 포트 메모리의 접근 제어 방법.
  16. 제9항에 있어서,
    상기 제1 프로세서는 이동통신 단말기의 베이스밴드 프로세서이고, 상기 제2 프로세서는 어플리케이션 프로세서인 것을 특징으로 하는 듀얼 포트 메모리의 접근 제어 방법.
  17. 제9항에 있어서, 상기 메모리 셀 어레이는 DRAM 셀 구조를 가지는 것을 특징으로 하는 듀얼 포트 메모리의 접근 제어 방법.
  18. 제9항에 있어서, 상기 듀얼 포트 메모리는 SDRAM 듀얼 포트 메모리인 것을 특징으로 하는 듀얼 포트 메모리의 접근 제어 방법.
KR1020060115518A 2006-11-21 2006-11-21 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법 KR100872196B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060115518A KR100872196B1 (ko) 2006-11-21 2006-11-21 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060115518A KR100872196B1 (ko) 2006-11-21 2006-11-21 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법

Publications (2)

Publication Number Publication Date
KR20080046067A KR20080046067A (ko) 2008-05-26
KR100872196B1 true KR100872196B1 (ko) 2008-12-09

Family

ID=39663220

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060115518A KR100872196B1 (ko) 2006-11-21 2006-11-21 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법

Country Status (1)

Country Link
KR (1) KR100872196B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100964154B1 (ko) * 2008-07-24 2010-06-17 엠진 (주) 듀얼 포트 메모리 및 듀얼 포트 메모리의 공유 뱅크 접근제어방법
KR101647818B1 (ko) 2010-04-13 2016-08-12 삼성전자주식회사 멀티 코어 사이의 데이터 전송 장치 및 방법
CN105095392B (zh) * 2015-07-02 2018-09-04 北京京东尚科信息技术有限公司 一种数据集市间共享数据的方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0167169B1 (ko) * 1995-02-07 1999-01-15 김회수 데이타 송수신장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0167169B1 (ko) * 1995-02-07 1999-01-15 김회수 데이타 송수신장치

Also Published As

Publication number Publication date
KR20080046067A (ko) 2008-05-26

Similar Documents

Publication Publication Date Title
JP4742116B2 (ja) アウトオブオーダdramシーケンサ
US7650453B2 (en) Information processing apparatus having multiple processing units sharing multiple resources
US20140052906A1 (en) Memory controller responsive to latency-sensitive applications and mixed-granularity access requests
KR102478527B1 (ko) 이기종 메모리 시스템용 시그널링
US20140344512A1 (en) Data Processing Apparatus and Memory Apparatus
EP3082048B1 (en) Memory configured to provide simultaneous read/write access to multiple banks
US9026746B2 (en) Signal control device and signal control method
KR101103619B1 (ko) 멀티 포트 메모리 및 그 억세스 제어 방법
KR100872196B1 (ko) 메모리 시스템 및 듀얼 포트 메모리의 접근 제어 방법
KR101110550B1 (ko) 프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 방법
KR101022472B1 (ko) 효율적으로 버스를 사용하는 방법
JP4693843B2 (ja) メモリ制御装置及びメモリ制御方法
US7536516B2 (en) Shared memory device
US8244929B2 (en) Data processing apparatus
KR100874169B1 (ko) 프로세서간 커맨드를 직접 전달하는 듀얼 포트 메모리 및이를 수행하기 위한 방법
KR20230145254A (ko) 적응형 메모리 액세스 관리
KR20080046065A (ko) 공유 메모리 접근 제어 장치를 가지는 듀얼 포트 메모리,공유 메모리 접근 제어 장치를 가지는 멀티 프로세서시스템 및 멀티 프로세서 시스템의 공유 메모리 접근 제어방법
KR100886179B1 (ko) 듀얼 포트 메모리로의 액세스 권한 획득 처리 방법 및 이를위한 장치
KR100827720B1 (ko) 접근 제어 장치를 가지는 듀얼 포트 메모리, 듀얼 포트메모리를 가지는 메모리 시스템 및 듀얼 포트 메모리의접근 제어 방법
KR100813133B1 (ko) 듀얼 포트 메모리 장치, 이를 가지는 메모리 시스템 및듀얼 포트 메모리 장치의 공유 메모리 영역의 적응적사용방법
KR100863541B1 (ko) 동기 제어 장치를 가지는 듀얼 포트 메모리, 동기 제어장치를 가지는 듀얼 포트 메모리 시스템 및 듀얼 포트메모리 시스템의 동기 제어 방법
KR100816038B1 (ko) 멀티 프로세서 시스템의 공유 메모리 접근 방법
US20030056072A1 (en) System and method for providing data to multi-function memory
US6766403B2 (en) CPU system with high-speed peripheral LSI circuit
KR100816009B1 (ko) 듀얼 포트 메모리 시스템의 공유 메모리 접근 제어 방법 및듀얼 포트 메모리 시스템의 공유 메모리 접근 제어 방법을수행하는 기록매체

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: 20121011

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131017

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141028

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151029

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171030

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20181029

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20191028

Year of fee payment: 12