KR101103619B1 - Multi-port memory system and access control method thereof - Google Patents

Multi-port memory system and access control method thereof Download PDF

Info

Publication number
KR101103619B1
KR101103619B1 KR1020090094967A KR20090094967A KR101103619B1 KR 101103619 B1 KR101103619 B1 KR 101103619B1 KR 1020090094967 A KR1020090094967 A KR 1020090094967A KR 20090094967 A KR20090094967 A KR 20090094967A KR 101103619 B1 KR101103619 B1 KR 101103619B1
Authority
KR
South Korea
Prior art keywords
data
shared
data transfer
transfer block
memory
Prior art date
Application number
KR1020090094967A
Other languages
Korean (ko)
Other versions
KR20110037492A (en
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 KR1020090094967A priority Critical patent/KR101103619B1/en
Publication of KR20110037492A publication Critical patent/KR20110037492A/en
Application granted granted Critical
Publication of KR101103619B1 publication Critical patent/KR101103619B1/en

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/1663Access to shared memory
    • 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
    • G06F13/1684Details of memory controller using multiple buses
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4273Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a clocked protocol

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 디바이스가 데이터 독출 권한만을 가지도록 할당된 제1 데이터 전달 블록과, 상기 제2 디바이스가 데이터 기록 권한만을 가지고 상기 제1 디바이스가 데이터 독출 권한만을 가지도록 할당된 제2 데이터 전달 블록을 포함하는 저장 영역; 및 상기 제1 및 제2 데이터 전달 블록에 대한 상기 제1 및 상기 제2 디바이스의 억세스 상태 정보를 관리하는 메모리 제어기를 포함할 수 있다. 본 발명에 의하여, 복수의 디바이스에 의해 공유되는 메모리의 효율성을 극대화하고, 각 디바이스간의 데이터 전달 시간을 최소화할 수 있다.A multi-port memory and its access control method are disclosed. The multi-port memory device includes a first data transfer block allocated such that a first device has only data write authority and a second device has only data read authority, and the second device has only data write authority and the first device reads data. A storage area including a second data transfer block allocated to have rights only; And a memory controller managing access state information of the first and second devices with respect to the first and second data transfer blocks. According to the present invention, it is possible to maximize the efficiency of the memory shared by a plurality of devices, and to minimize the data transfer time between each device.

메모리, 공유, 포트 Memory, share, port

Description

멀티 포트 메모리 및 그 억세스 제어 방법{Multi-port memory system and access control method thereof}Multi-port memory system and access control method

본 발명은 메모리에 관한 것으로, 특히 멀티 포트 메모리 및 그 억세스 제어 방법에 관한 것이다.The present invention relates to a memory, and more particularly to a multi-port memory and its access control method.

최근 들어 이동통신단말, PDA(Personal Digital Assistant) 등과 같은 휴대용 단말기는 음성통화와 같은 이동통신기능 이외에도 디지털 카메라, 화상전화, 멀티미디어 데이터의 재생 등과 같은 다양한 부가기능을 더 포함하고 있다. Recently, portable terminals such as mobile communication terminals and PDAs (Personal Digital Assistants) include various additional functions such as digital cameras, video phones, and playback of multimedia data in addition to mobile communication functions such as voice calls.

휴대용 단말기는 이와 같이 이동통신기능과 같은 본질적인 기능을 처리하기 위한 베이스밴드 프로세서와 다양한 응용프로그램을 처리하기 위한 응용 프로세서가 구비된다. The portable terminal is provided with a baseband processor for processing essential functions such as a mobile communication function and an application processor for processing various applications.

또한, 일반적으로 둘 이상의 프로세서를 가지는 휴대용 단말기에서는 각 프로세서 간의 데이터 송수신을 고속으로 수행함으로써 시스템의 처리 속도를 향상시키고, 메모리시스템의 실장 면적을 줄이기 위해 듀얼 포트 메모리(Dual Port Memory)가 사용된다. In general, in a portable terminal having two or more processors, dual port memory is used to improve the processing speed of the system and to reduce the mounting area of the memory system by performing data transmission and reception between the processors at a high speed.

즉, 두 프로세서가 듀얼 포트 메모리를 사용하게 되면 각 프로세서가 각 포트를 사용하여 메모리 영역에 접근하여 데이터를 읽고 쓸 수 있기 때문에 두 프로세서가 각각 서로 다른 메모리에 연결되어 데이터를 송수신하는 경우보다 데이터의 전송 및 처리 속도가 빠르고 이로 인해 시스템의 전체적인 성능이 향상된다. In other words, when two processors use dual port memory, each processor uses each port to access and read data from and write data to the memory area, so the two processors are connected to different memory to send and receive data. The transfer and processing speeds are fast and this improves the overall performance of the system.

도 1은 종래 기술에 따른 듀얼 포트 메모리의 메모리 영역을 도시한 도면이다. 1 is a diagram illustrating a memory area of a dual port memory according to the related art.

도 1을 참조하면, 두 프로세서는 각각 듀얼 포트 메모리(10)의 제1 포트에 연결되어 메모리 영역에 접근하는 제1 프로세서(20)와, 제2 포트에 연결되어 메모리 영역에 접근하는 제2 프로세서(30)로 도시되어 있다. Referring to FIG. 1, two processors are respectively connected to a first port of a dual port memory 10 to access a memory area, and a second processor connected to a second port to access a memory area. Shown at 30.

듀얼 포트 메모리(10)의 메모리 영역은 제1 프로세서(20)와 제2 프로세서(30)가 각각 독립적으로 접근하여 읽기 또는 쓰기 작업을 수행하는 전용 메모리 영역(즉, 제1 프로세서(20)만의 접근이 허용되는 제1 프로세서 전용 영역(14) 및 제2 프로세서(30)만의 접근이 허용되는 제2 프로세서 전용 영역(16))과, 제1 프로세서(20)와 제2 프로세서(30)가 접근하여 읽기 또는 쓰기 작업을 수행하는 공유 메모리 영역(12)을 포함한다. The memory area of the dual port memory 10 is a dedicated memory area in which the first processor 20 and the second processor 30 independently access each other to perform a read or write operation (that is, access only to the first processor 20). The first processor-only area 14 and the second processor-only area 16 to which only the second processor 30 is allowed to access, and the first processor 20 and the second processor 30 approach each other. It includes a shared memory area 12 that performs a read or write operation.

이러한 듀얼 포트 메모리(10)는 공유 메모리 영역(12)에 대한 각 디바이스의 상호 배타적인 접근을 보장하고 각 디바이스 간의 동기화된 작업을 보장하기 위해 하드웨어 세마포어(semaphore)(도시하지 않음)를 이용할 수 있다. This dual port memory 10 may use hardware semaphores (not shown) to ensure mutually exclusive access of each device to the shared memory area 12 and to ensure synchronized operation between each device. .

이와 같이, 듀얼 포트 메모리(10)의 메모리 영역 중 전용 메모리 영역은 특 정의 프로세서에게만 할당된 영역으로서 복수의 메모리간에 공유될 수 없고, 공유 메모리 영역(12)은 복수의 프로세서에 의한 공유는 가능하지만 동시에 억세스될 수는 없다. As described above, the dedicated memory area among the memory areas of the dual port memory 10 is an area allocated only to a specific processor and cannot be shared among a plurality of memories, and the shared memory area 12 may be shared by a plurality of processors. It cannot be accessed at the same time.

따라서, 공유 메모리 영역(12)에 어느 하나의 프로세서가 억세스한 동안에는 다른 하나의 프로세서는 공유 메모리 영역(12)에 억세스할 수 없는 한계가 있다. Therefore, while one processor accesses the shared memory area 12, the other processor cannot access the shared memory area 12.

이로 인해 어느 하나의 프로세서가 디바이스가 읽기 또는 쓰기 작업을 위해 공유 메모리 영역(12)을 점유하고 있는 동안에는 다른 프로세서가 해당 영역에 접근하여 읽기 또는 쓰기 작업을 수행할 수 없어, 두 프로세서 간에 데이터 전송시 많은 시간이 소요되고, 메모리 활용이 비효율적인 문제점이 있었다. As a result, when one processor occupies the shared memory area 12 for read or write operations, another processor cannot access the area and perform read or write operations. It takes a lot of time and memory utilization is inefficient.

전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.The background art described above is technical information possessed by the inventors for the derivation of the present invention or acquired during the derivation process of the present invention, and is not necessarily a publicly known technique disclosed to the general public before the application of the present invention.

본 발명은 복수의 디바이스에 의해 공유되는 메모리의 효율성을 극대화하고, 각 디바이스간의 데이터 전달 시간을 최소화할 수 있도록 하는 멀티 포트 메모리 및 그 억세스 제어 방법을 제공하기 위한 것이다.The present invention is to provide a multi-port memory and its access control method to maximize the efficiency of the memory shared by a plurality of devices, and to minimize the data transfer time between each device.

본 발명은 복수의 디바이스에 의해 공유되는 공유 메모리 영역을 복수의 블록들로 분할하고, 각 블록에 대한 각 디바이스의 처리 허용 동작을 설정함으로써 공유 메모리 영역의 효율성을 극대화하는 멀티 포트 메모리 및 그 억세스 제어 방법을 제공하기 위한 것이다.The present invention divides a shared memory area shared by a plurality of devices into a plurality of blocks, and sets a processing permission operation of each device for each block, thereby maximizing the efficiency of the shared memory area and access control thereof. It is to provide a method.

본 발명은 공유 메모리 영역을 복수의 블록들로 분할함으로써, 각 디바이스간의 공유 메모리 영역에 대한 효과적인 억세스가 보장되도록 하는 멀티 포트 메모리 및 그 억세스 제어 방법을 제공하기 위한 것이다.The present invention is to provide a multi-port memory and its access control method by dividing the shared memory area into a plurality of blocks, thereby ensuring effective access to the shared memory area between devices.

본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.Other objects of the present invention will be readily understood through the following description.

본 발명의 일 측면에 따르면, 제1 디바이스 및 제2 디바이스에 의해 공유되는 메모리 장치로서, 상기 제1 디바이스가 데이터 기록 권한만을 가지고 상기 제2 디바이스가 데이터 독출 권한만을 가지도록 할당된 제1 데이터 전달 블록과, 상기 제2 디바이스가 데이터 기록 권한만을 가지고 상기 제1 디바이스가 데이터 독출 권 한만을 가지도록 할당된 제2 데이터 전달 블록을 포함하는 저장 영역; 및 상기 제1 및 제2 데이터 전달 블록에 대한 상기 제1 및 상기 제2 디바이스의 억세스 상태 정보를 관리하는 메모리 제어기를 포함하는 메모리 장치가 제공된다. According to an aspect of the present invention, a memory device shared by a first device and a second device, wherein the first data transfer is allocated such that the first device has only data write authority and the second device has only data read authority. A storage area including a block and a second data transfer block allocated such that the second device has only data write rights and the first device has only data read rights; And a memory controller managing access state information of the first and second devices with respect to the first and second data transfer blocks.

상기 저장 영역은 상기 제1 및 제2 데이터 전달 블록 외에 상기 제1 및 제2 디바이스가 중첩되지 않는 시간 동안 개별 접속 가능하도록 할당된 하나 이상의 공유 블록을 더 포함할 수 있다.The storage area may further include one or more shared blocks allocated separately to the first and second data transfer blocks so that the first and second devices may be individually connected for a time that does not overlap.

상기 메모리 장치는 상기 공유 블록에 대한 임의의 디바이스의 억세스 여부에 대한 정보를 통지하기 위하여 하드웨어 세마포어 셀을 구비하는 세마포어 관리기를 더 포함할 수 있다.The memory device may further include a semaphore manager having a hardware semaphore cell for notifying information about whether any device has access to the shared block.

상기 저장 영역은 미리 설정된 디바이스만의 접속이 허용되도록 각각 할당된 하나 이상의 전용 영역을 더 포함할 수 있다.The storage area may further include one or more dedicated areas each allocated to allow connection of only a preset device.

상기 제1 및 제2 디바이스는 각각 베이스밴드 칩, 어플리케이션 프로세서 칩, 디스플레이 장치 중 어느 하나일 수 있다.The first and second devices may each be any one of a baseband chip, an application processor chip, and a display device.

상기 메모리 장치는 DRAM 또는 SDRAM 듀얼 포트 메모리일 수 있다. 상기 저장 영역은 DRAM 셀 구조를 가질 수 있다.The memory device may be a DRAM or SDRAM dual port memory. The storage area may have a DRAM cell structure.

본 발명의 다른 측면에 따르면, 디지털 처리 장치에 있어서, 제1 디바이스; 제2 디바이스; 및 제1 디바이스와 제1 포트를 통해 연결되고, 제2 디바이스와 제2 포트를 통해 연결되는 공유 메모리를 포함하되, 상기 공유 메모리는, 상기 제1 디바이스가 데이터 기록 권한만을 가지고 상기 제2 디바이스가 데이터 독출 권한만을 가지도록 할당된 제1 데이터 전달 블록과, 상기 제2 디바이스가 데이터 기록 권한 만을 가지고 상기 제1 디바이스가 데이터 독출 권한만을 가지도록 할당된 제2 데이터 전달 블록을 포함하는 저장 영역; 및 상기 제1 및 제2 데이터 전달 블록에 대한 상기 제1 및 상기 제2 디바이스의 억세스 상태 정보를 관리하는 메모리 제어기를 포함하는 디지털 처리 장치가 제공된다.According to another aspect of the invention, a digital processing apparatus, comprising: a first device; A second device; And a shared memory connected with a first device through a first port, and connected with a second device through a second port, wherein the shared memory is configured such that the second device has only data writing authority. A storage area including a first data transfer block allocated only to have data read rights and a second data transfer block allocated so that the second device has only data read rights and the first device has only data read rights; And a memory controller managing access state information of the first and second devices with respect to the first and second data transfer blocks.

상기 저장 영역은 상기 제1 및 제2 데이터 전달 블록 외에 상기 제1 및 제2 디바이스가 중첩되지 않는 시간 동안 개별 접속 가능하도록 할당된 하나 이상의 공유 블록을 더 포함할 수 있다.The storage area may further include one or more shared blocks allocated separately to the first and second data transfer blocks so that the first and second devices may be individually connected for a time that does not overlap.

상기 공유 메모리는, 상기 공유 블록에 대한 임의의 디바이스의 억세스 여부에 대한 정보를 통지하기 위하여 하드웨어 세마포어 셀을 구비하는 세마포어 관리기를 더 포함할 수 있다.The shared memory may further include a semaphore manager having a hardware semaphore cell to inform information about whether any device has access to the shared block.

상기 저장 영역은 미리 설정된 디바이스만의 접속이 허용되도록 각각 할당된 하나 이상의 전용 영역을 더 포함할 수 있다.The storage area may further include one or more dedicated areas each allocated to allow connection of only a preset device.

상기 제1 및 제2 디바이스는 각각 베이스밴드 칩, 어플리케이션 프로세서 칩, 디스플레이 장치 중 어느 하나일 수 있다.The first and second devices may each be any one of a baseband chip, an application processor chip, and a display device.

상기 메모리 장치는 DRAM 또는 SDRAM 듀얼 포트 메모리일 수 있다. 상기 저장 영역은 DRAM 셀 구조를 가질 수 있다.The memory device may be a DRAM or SDRAM dual port memory. The storage area may have a DRAM cell structure.

본 발명의 또 다른 측면에 따르면, 메모리 장치의 복수의 프로세서들에 대한 억세스 제어 방법으로서, 제1 디바이스로부터 제1 데이터 전달 블록에 대한 억세스 요청을 수신하는 단계; 상기 제1 데이터 전달 블록에 대한 억세스가 가능한지 여부를 판단하는 단계; 및 상기 판단에 따라 억세스 허용 여부에 대한 정보를 상기 제1 디바이스로 전송하는 단계를 포함하되, 상기 메모리 장치의 저장 영역은, 상기 제1 디바이스가 데이터 기록 권한만을 가지고 제2 디바이스가 데이터 독출 권한만을 가지도록 할당된 상기 제1 데이터 전달 블록과, 상기 제2 디바이스가 데이터 기록 권한만을 가지고 상기 제1 디바이스가 데이터 독출 권한만을 가지도록 할당된 제2 데이터 전달 블록을 포함하는 것을 특징으로 하는 억세스 제어 방법 및/또는 그 방법을 실행하기 위한 프로그램이 기록된 기록매체가 제공된다.According to yet another aspect of the present invention, an access control method for a plurality of processors of a memory device, the method comprising: receiving an access request for a first data transfer block from a first device; Determining whether access to the first data transfer block is possible; And transmitting information on whether to allow access according to the determination to the first device, wherein the storage area of the memory device includes only the data writing authority of the first device and only the data reading authority of the second device. The first data transfer block allocated to have a second data transfer block allocated to have the data read right only and the first device have only data read right. And / or a recording medium having recorded thereon a program for executing the method.

상기 저장 영역은 상기 제1 및 제2 데이터 전달 블록 외에 상기 제1 및 제2 디바이스가 중첩되지 않는 시간 동안 개별 접속 가능하도록 할당된 하나 이상의 공유 블록을 더 포함할 수 있다.The storage area may further include one or more shared blocks allocated separately to the first and second data transfer blocks so that the first and second devices may be individually connected for a time that does not overlap.

상기 공유 블록에 대한 임의의 디바이스의 억세스 여부에 대한 정보를 통지하기 위하여 하드웨어 세마포어 셀이 이용될 수 있다.A hardware semaphore cell may be used to inform information about whether any device has access to the shared block.

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features, and advantages other than those described above will become apparent from the following drawings, claims, and detailed description of the invention.

본 발명의 실시예에 따르면, 복수의 디바이스에 의해 공유되는 메모리의 효율성을 극대화하고, 각 디바이스간의 데이터 전달 시간을 최소화할 수 있도록 하는 효과가 있다.According to an embodiment of the present invention, there is an effect of maximizing the efficiency of the memory shared by a plurality of devices, and to minimize the data transfer time between each device.

또한, 복수의 디바이스에 의해 공유되는 공유 메모리 영역을 복수의 블록들 로 분할하고, 각 블록에 대한 각 디바이스의 처리 허용 동작을 설정함으로써 공유 메모리 영역의 효율성을 극대화하는 효과도 있다.In addition, there is an effect of maximizing the efficiency of the shared memory area by dividing the shared memory area shared by the plurality of devices into a plurality of blocks and setting the processing permission operation of each device for each block.

또한, 공유 메모리 영역을 복수의 블록들로 분할함으로써, 각 디바이스간의 공유 메모리 영역에 대한 효과적인 억세스가 보장되도록 하는 효과도 있다.In addition, by dividing the shared memory area into a plurality of blocks, effective access to the shared memory area between devices can be ensured.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all transformations, equivalents, and substitutes included in the spirit and scope of the present invention. In the following description of the present invention, if it is determined that the detailed description of the related known technology may obscure the gist of the present invention, the detailed description thereof will be omitted.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. As used herein, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, action, component, part, or combination thereof described on the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

또한, 명세서에 기재될 수 있는 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, the terms “… unit”, “… unit”, “module”, etc. that may be described in the specification mean a unit for processing at least one function or operation, which is hardware or software or a combination of hardware and software. Can be implemented.

본 명세서에서의 멀티 포트 메모리는 둘 이상의 포트 인터페이스부를 구비하여 둘 이상의 디바이스에 각각 결합되어 동작될 수 있는 메모리이다. 다만, 본 명세서에서는 멀티 포트 메모리의 일 실시예로서, 두 개의 메모리 인터페이스부를 구비한 듀얼 포트 메모리인 경우를 중심으로 설명한다. 이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.In the present specification, the multi-port memory is a memory having two or more port interface units, which can be operated by being coupled to two or more devices. However, in the present specification, as an embodiment of the multi-port memory, a case of the dual-port memory having two memory interface units will be described. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 듀얼 포트 메모리의 구성을 개략적으로 나타낸 도면이고, 도 3은 본 발명의 일 실시예에 따른 공유 메모리 영역의 분할 형태를 예시한 도면이다.FIG. 2 is a diagram schematically illustrating a configuration of a dual port memory according to an embodiment of the present invention, and FIG. 3 is a diagram illustrating a divided form of a shared memory area according to an embodiment of the present invention.

도 2를 참조하면, 듀얼 포트 메모리(100)는 제1 메모리 인터페이스부(110), 제1 디바이스 전용 영역(120), 제2 메모리 인터페이스부(130), 제2 디바이스 전용 영역(140), 메모리 제어기(150), 세마포어 관리기(160) 및 공유 메모리 영역(180)을 포함하지만 이에 한정되지는 않는다. 듀얼 포트 메모리(100)에 각 포트를 통해 접속하는 각 디바이스는 예를 들어, 베이스밴드 칩, 어플리케이션 프로세서 칩, 디 스플레이 장치 등 중 하나 이상일 수 있다.Referring to FIG. 2, the dual port memory 100 may include a first memory interface unit 110, a first device dedicated region 120, a second memory interface unit 130, a second device dedicated region 140, and a memory. The controller 150 includes, but is not limited to, a semaphore manager 160 and a shared memory area 180. Each device connected to the dual port memory 100 through each port may be, for example, one or more of a baseband chip, an application processor chip, and a display device.

제1 메모리 인터페이스부(110)는 제1 디바이스(102)가 듀얼 포트 메모리(100)에 연결되도록 하며, 제1 포트를 통해 연결된 제1 디바이스(102)가 제1 디바이스 전용 영역(120) 또는/및 공유 메모리 영역(180)에 억세스하도록 하기 위한 인터페이스를 제공한다. 제1 메모리 인터페이스부(110)는 제1 디바이스(102)로부터 어드레스(ADD1), 제어신호(CTR1), 클럭(CLK1) 및 데이터(DQ1) 등 중 하나 이상을 입력받고, 기록/독출 및 리프레쉬(refresh) 등의 동작 타이밍에 따라 메모리 어레이(도시되지 않음)와 데이터의 입출력을 수행할 수 있다. 제1 메모리 인터페이스부(110)는 예를 들어 명령 디코더(command decoder), 로우 디코더(row decoder), 컬럼 디코더(column decoder) 및 입출력 버퍼 등 중 하나 이상을 포함할 수 있다.The first memory interface unit 110 allows the first device 102 to be connected to the dual port memory 100, and the first device 102 connected through the first port may be the first device-only area 120 or /. And an interface for accessing the shared memory area 180. The first memory interface unit 110 receives one or more of an address ADD1, a control signal CTR1, a clock CLK1, data DQ1, and the like from the first device 102, and writes / reads and refreshes ( Input / output of data with a memory array (not shown) may be performed according to an operation timing such as refresh. The first memory interface unit 110 may include, for example, one or more of a command decoder, a row decoder, a column decoder, an input / output buffer, and the like.

제1 디바이스 전용 영역(120)은 제1 포트를 통해 연결된 제1 디바이스(102)만이 전용할 수 있도록 설정된 저장 영역이다. 제1 디바이스(102)가 기록하거나 독출하고자 하는 데이터는 제1 디바이스 전용 영역(120)에 저장될 수 있다.The first device dedicated area 120 is a storage area configured to be dedicated only to the first device 102 connected through the first port. Data to be written or read by the first device 102 may be stored in the first device-only area 120.

제2 메모리 인터페이스부(130)는 제2 디바이스(104)가 듀얼 포트 메모리(100)에 연결되도록 하며, 제2 포트를 통해 연결된 제2 디바이스(104)가 제2 디바이스 전용 영역(140) 또는/및 공유 메모리 영역(180)에 억세스하도록 하기 위한 인터페이스를 제공한다. 제2 메모리 인터페이스부(130)는 제2 디바이스(104)로부터 어드레스(ADD2), 제어신호(CTR2), 클럭(CLK2) 및 데이터(DQ2) 등 중 하나 이상을 입력받고, 기록/독출 및 리프레쉬(refresh) 등의 동작 타이밍에 따라 메모리 어레이(도시되지 않음)와 데이터의 입출력을 수행할 수 있다. 제2 메모리 인터페이스 부(130)는 예를 들어 명령 디코더(command decoder), 로우 디코더(row decoder), 컬럼 디코더(column decoder) 및 입출력 버퍼 등 중 하나 이상을 포함할 수 있다.The second memory interface unit 130 allows the second device 104 to be connected to the dual port memory 100, and the second device 104 connected through the second port may be the second device-only area 140 or /. And an interface for accessing the shared memory area 180. The second memory interface unit 130 receives one or more of an address ADD2, a control signal CTR2, a clock CLK2, and data DQ2 from the second device 104, and writes / reads and refreshes the data. Input / output of data with a memory array (not shown) may be performed according to an operation timing such as refresh. The second memory interface unit 130 may include, for example, one or more of a command decoder, a row decoder, a column decoder, an input / output buffer, and the like.

제2 디바이스 전용 영역(140)은 제2 포트를 통해 연결된 제2 디바이스(104)만이 전용할 수 있도록 설정된 저장 영역이다. 제2 디바이스(104)가 기록하거나 독출하고자 하는 데이터는 제2 디바이스 전용 영역(140)에 저장될 수 있다.The second device dedicated area 140 is a storage area configured to be dedicated only to the second device 104 connected through the second port. Data to be written or read by the second device 104 may be stored in the second device-only area 140.

이를 통해, 제1 디바이스(102)와 제2 디바이스(104)가 결합된 듀얼 포트 메모리(100)는 일반적인 호스트 프로세서 인터페이스(Host processor interface), 직렬/병렬 인터페이스(Serial/parallel interface), I2C와 같은 인터페이스보다 고속으로 데이터를 입출력할 수 있다.Through this, the dual port memory 100 in which the first device 102 and the second device 104 are combined may be a general host processor interface, a serial / parallel interface, or an I2C. Data can be input and output faster than the interface.

메모리 제어기(150)는 공유 메모리 영역(180) 중 임의의 블록에 어떤 디바이스가 억세스한 상태이고, 어떤 처리를 수행하는지에 대한 관리를 수행한다. 메모리 제어기(150)는 후술될 데이터 전달 블록들(310, 320)에 대해 세마포어(semaphore) 관리 없이 각 디바이스가 억세스 및 처리를 수행할 수 있도록 하기 위한 제어 기능을 수행한다. 데이터 전달 블록들(310, 320)에 대해 세마포어 없이 각 디바이스의 억세스가 가능하도록 하기 위해 메모리 제어기(150)는 데이터 전달 블록들(310, 320)에 대한 상태 정보, 예를 들어 억세스 여부, 처리 동작 유형 등 중 하나 이상에 대한 관리를 위해 포인터 정보를 관리할 수 있다. 메모리 제어기(150)는 예를 들어 상태 정보를 접근을 시도하는 임의의 디바이스로 제공하거나, 해당 상태 정보를 데이터 형태로 기록한 경우 접근을 시도하는 임의의 디바이스가 상태 정보를 독출하여 임의의 데이터 전달 블록에 접근 가능한지 확인할 수 있도록 한다.The memory controller 150 manages which device has access to any block in the shared memory area 180 and which processing is performed. The memory controller 150 performs a control function for allowing each device to perform access and processing without managing semaphores for the data transfer blocks 310 and 320 to be described later. In order to enable each device to access the data transfer blocks 310 and 320 without a semaphore, the memory controller 150 may perform status information on the data transfer blocks 310 and 320, for example, whether or not the access operation is performed. You can manage pointer information to manage one or more of the types, and so on. For example, the memory controller 150 may provide the status information to any device attempting to access the data, or if the device attempts to access the data when the status information is written in the form of data, the memory controller 150 may read the status information to read any data transfer block. Make sure that is accessible.

세마포어 관리기(160)는 제1 메모리 인터페이스부(110), 제2 메모리 인터페이스부(130), 제1 디바이스(102) 및 제2 디바이스(104)와 연결되어, 공유 메모리 영역(180)의 공유 블록들(330, 340)의 액세스 권한에 대한 내용이 변경되면 이를 제1 디바이스(100) 및 제2 디바이스(104)에 통지함으로써, 공유 블록들(330, 340)을 충돌없이 제1 디바이스(102) 및 제2 디바이스(104)가 억세스할 수 있도록 한다. 통지 방식으로는 예를 들어 인터럽트 신호 또는 레디(ready) 또는 비지(busy) 신호 등이 이용될 수 있다. The semaphore manager 160 is connected to the first memory interface unit 110, the second memory interface unit 130, the first device 102, and the second device 104 to share a shared block of the shared memory area 180. By notifying the first device 100 and the second device 104 when the contents of the access rights of the fields 330 and 340 are changed, the shared blocks 330 and 340 are not conflicted with the first device 102. And allow the second device 104 to access it. As the notification method, for example, an interrupt signal or a ready or busy signal may be used.

공유 메모리 영역(180)은 듀얼 포트 메모리(100)에 접속되는 각 디바이스간에 공유되는 저장 영역이다. 공유 메모리 영역(180)은 예를 들어 각 디바이스간에 데이터 전달을 목적으로 설정되는 데이터 전달 블록, 디바이스들의 자유로운 공유를 목적으로 하는 공유 블록 등 중 하나 이상을 포함하여 구획될 수 있다. The shared memory area 180 is a storage area shared between each device connected to the dual port memory 100. The shared memory area 180 may be partitioned including, for example, one or more of a data transfer block set for data transfer between devices, a shared block for free sharing of devices, and the like.

도 3에는 본 발명의 일 실시예에 따른 공유 메모리 영역의 분할 형태가 예시되어 있다.3 illustrates a divided form of a shared memory area according to an embodiment of the present invention.

도 3에는 데이터 전달 블록과 공유 블록이 각각 2개로 설정된 경우가 예시되었으나, 각 용도에 따른 블록의 수는 그 목적에 따라 다양하게 설정 변경될 수 있다. 일 예로, 공유 메모리 영역(180)이 데이터 전달 블록과 공유 블록 중 어느 하나만으로 설정될 수 있다. 또한, 듀얼 포트 메모리(100)가 공유 메모리 영역(180)만으로 설정될 수도 있다. 또한, 복수의 듀얼 포트 메모리들이 통합적으로 각 디바이스들에 의해 공유되는 하나의 공유 메모리로 구현될 수도 있다.In FIG. 3, two data transfer blocks and two shared blocks are illustrated. However, the number of blocks according to each use may be variously changed according to the purpose. For example, the shared memory area 180 may be set to only one of the data transfer block and the shared block. In addition, the dual port memory 100 may be set to the shared memory area 180 only. In addition, the plurality of dual port memories may be embodied as one shared memory shared by each device.

도 3을 참조하면, 공유 메모리 영역(180)은 2개의 데이터 전달 블록들(310, 320) 및 2개의 공유 블록(330, 340)을 포함한다.Referring to FIG. 3, the shared memory area 180 includes two data transfer blocks 310 and 320 and two shared blocks 330 and 340.

2개의 데이터 전달 블록들(310, 320)은 제1 디바이스(102)가 억세스하여 데이터를 기록(write)하면 제2 디바이스(104)가 억세스하여 데이터를 독출(read)하도록 설정된 블록 12(310) 및 제2 디바이스(104)가 억세스하여 데이터를 기록(write)하면 제1 디바이스(102)가 억세스하여 데이터를 독출(read)하도록 설정된 블록 21(320)을 포함한다. 즉, 블록 12(310)에 대해 제1 디바이스(102)는 데이터 기록 권한만을 가지며, 제2 디바이스(104)는 데이터 독출 권한만을 가진다. 반대로, 블록 21(320)에 대해 제1 디바이스(102)는 데이터 독출 권한만을 가지며, 제1 디바이스(102)는 데이터 기록 권한만을 가진다.The two data transfer blocks 310 and 320 are set to block 12 310 in which the second device 104 accesses and reads data when the first device 102 accesses and writes data. And block 21 (320) configured to access and read data when the second device 104 accesses and writes data. That is, for block 12 310, the first device 102 has only data write rights, and the second device 104 has only data read rights. In contrast, for block 21 320, the first device 102 has only data read rights, and the first device 102 has only data write rights.

제1 디바이스(102) 및 제2 디바이스(104)는 데이터 기록 또는 독출을 위해 데이터 전달 블록에 억세스할 때, 억세스하고자 하는 블록에 대한 정보를 듀얼 포트 메모리(100)로 제공한다. 이때, 듀얼 포트 메모리(100)의 메모리 제어기(150)는 억세스 요청된 블록에 해당 디바이스의 억세스가 가능한지 여부를 관리하는 상태 정보로서 판단한 후 해당 디바이스로 억세스 가능 여부에 대한 정보를 제공함으로써, 해당 디바이스가 억세스 또는 대기 상태가 되도록 한다.When the first device 102 and the second device 104 access a data transfer block for writing or reading data, the first device 102 and the second device 104 provide information about the block to be accessed to the dual port memory 100. In this case, the memory controller 150 of the dual port memory 100 determines that the device is accessible to the access request block as state information for managing whether the device is accessible, and then provides information on whether the device can be accessed by the device. Allows access or standby.

예를 들어, 블록 12(310)에 대해 제1 디바이스(102)가 데이터를 기록하였으나, 아직 제2 디바이스(104)가 독출하지 않은 상태에서, 제1 디바이스(102)가 이미 기록된 데이터를 새로운 데이터로 변경하기 위한 억세스 시도인 경우 메모리 제어기(150)는 제1 디바이스(102)의 억세스를 불허할 수 있을 것이다. 다른 경우로서, 제1 디바이스(102)가 블록 12(310)에 억세스하여 데이터를 기록하는 중에 제2 디바이스(104)가 데이터를 독출하기 위한 억세스 요청이 수신되면, 메모리 제어기(150)는 제2 디바이스(104)의 요청이 제1 디바이스(102)가 이미 데이터를 기록 완료한 영역에 대한 요청인 경우 제2 디바이스의 억세스를 허용할 수도 있다.For example, while the first device 102 has written data for block 12 310 but the second device 104 has not yet read, the first device 102 has written new data already. In the case of an access attempt to change to data, the memory controller 150 may disallow access of the first device 102. In another case, if the access request for the second device 104 to read the data is received while the first device 102 accesses the block 12 310 and writes the data, then the memory controller 150 generates the second controller. If the request of device 104 is a request for an area in which first device 102 has already written data, it may allow access of the second device.

한편, 메모리 제어기(150)가 관리하는 상태 정보는 임의의 저장 영역에 데이터 형태로 기록되어 관리될 수 있고, 접근을 시도하는 임의의 디바이스가 해당 영역에 기록된 상태 정보를 독출하여 임의의 데이터 전달 블록에 접근 가능한지 확인할 수도 있다. 이 경우, 메모리 제어기(150)는 별도의 절차로서 상태 정보를 해당 디바이스로 제공할 필요가 없을 것이다.Meanwhile, the state information managed by the memory controller 150 may be recorded and managed in a data form in an arbitrary storage area, and any device that attempts to access reads the state information recorded in the corresponding area and transfers arbitrary data. You can also check that the block is accessible. In this case, the memory controller 150 may not need to provide status information to the device as a separate procedure.

또한, 공유 메모리 영역(180)에 포함되는 2개의 공유 블록(330, 340), 즉 블록 A(330) 및 블록 B(340)은 세마포어 관리기(160)에 의해 관리되는 정보에 따라 각 디바이스가 자유롭게 억세스하여 데이터 기록 및/또는 독출을 수행할 수 있는 영역이다.In addition, each of the two shared blocks 330 and 340 included in the shared memory area 180, that is, the block A 330 and the block B 340, is free to each device according to the information managed by the semaphore manager 160. It is an area that can be accessed to perform data recording and / or reading.

세마포어 관리기(160)는 하나 이상의 하드웨어 세마포어 셀(hardware semaphore cell)로 구성될 수 있으며, 하드웨어 세마포어 셀은 공유 블록들(330, 340) 별로 하나 이상씩 존재할 수 있다. 도 3에 예시된 바와 같이, 공유 블록이 둘 이상의 블록들(또는 뱅크들)로 구성된 경우 세마포어 관리기(160)는 둘 이상의 하드웨어 세마포어 셀로 구성될 수 있다. The semaphore manager 160 may be composed of one or more hardware semaphore cells, and one or more hardware semaphore cells may exist for each shared block 330 and 340. As illustrated in FIG. 3, when the shared block consists of two or more blocks (or banks), the semaphore manager 160 may consist of two or more hardware semaphore cells.

통상적으로 세마포어(semaphore)란 운영체계의 자원을 경쟁적으로 사용하는 다중 프로세스에서 행동을 조정하거나 또는 동기화시키는 기술을 의미하며, 운영체 계 또는 커널의 한 지정된 저장장치내의 값으로 각 프로세스는 이를 확인하고 변경할 수 있다. 확인되는 세마포어의 값에 따라, 그 프로세스가 즉시 자원을 사용할 수 있거나, 또는 이미 다른 프로세스에 의해 사용 중이라는 사실을 알게 되면 재시도하기 전에 일정 시간을 기다려야만 한다. 세마포어는 이진수 (0 또는 1)를 사용하거나, 또는 추가적인 값을 가질 수도 있다. 세마포어나 세마포어 기술의 적용을 위한 세마포어 셀에 대해서는 당업자에게 자명한 사항이므로 이에 대한 구체적인 설명은 생략한다.A semaphore is usually a technique for coordinating or synchronizing behavior in multiple processes that competitively use operating system resources. Each semaphore is a value within a specified storage of the operating system or kernel. You can change it. Depending on the value of the semaphore that is identified, if the process finds that the resource is immediately available or already in use by another process, it must wait some time before retrying. Semaphores use binary numbers (0 or 1), or may have additional values. The semaphore cell for applying the semaphore or semaphore technology is obvious to those skilled in the art, and thus a detailed description thereof will be omitted.

공유 블록들(330, 340) 중 어느 하나의 블록에 대해 제1 디바이스(102)가 하드웨어 세마포어를 점유한 상태라면 제2 디바이스(104)는 해당 블록에 대해 억세스 대기 상태가 되고, 제1 디바이스(102)가 하드웨어 세마포어를 해제하면 제2 디바이스(104)는 해당 블록에 대한 억세스 대기 상태가 해제되는 방식으로 하나의 자원(즉, 공유 영역)을 2개의 디바이스가 상호 배타적으로 접근될 수 있다.If the first device 102 occupies a hardware semaphore for any one of the shared blocks 330, 340, the second device 104 enters an access wait state for the block, and the first device ( When 102 releases the hardware semaphore, the second device 104 may access two resources exclusively from one resource (ie, a shared area) in such a manner that an access wait state for the corresponding block is released.

세마포어 관리기(160)에 의한 공유 블록 억세스 과정을 설명하면 다음과 같다. Referring to the shared block access process by the semaphore manager 160 as follows.

제1 디바이스(102) 또는 제2 디바이스(104)에서 공유 블록을 억세스하고자 할 경우 세마포어 관리기(160)로부터 데이터를 읽어들인다. 이 때, 읽어들인 데이터 값이 0 또는 1인지 여부에 따라 공유 블록이 억세스가능한지 여부를 알 수 있다. 즉, 0인 경우라면 공유 블록이 억세스 가능한 상태인 것으로 인식하고, 1인 경우라면 공유 블록이 타 디바이스에 의해 점유된 상태인 것으로 인식한다. 제1 디바이스가 공유 블록에 대한 억세스를 끝내면, 바로 세마포어 관리기에 데이터 0(Zero)를 써주어서 제2 디바이스가 바로 억세스를 할 수 있도록 하여 준다. 제1 디바이스(102)가 하드웨어 세마포어를 점유하고 있는 동안, 제2 디바이스(104)는 해당 공유 블록으로의 접근이 대기된 상태이므로 제2 디바이스 전용 영역(140)을 이용하는 등의 다른 데이터 처리 동작을 수행할 수 있다.When the first device 102 or the second device 104 wants to access a shared block, data is read from the semaphore manager 160. At this time, it may be known whether the shared block is accessible depending on whether the read data value is 0 or 1. That is, if 0, the shared block is recognized as being accessible, and if 1, the shared block is recognized as being occupied by another device. When the first device finishes accessing the shared block, it immediately writes data 0 (Zero) to the semaphore manager so that the second device can directly access it. While the first device 102 occupies a hardware semaphore, the second device 104 is in a state of waiting for access to the shared block, so that another data processing operation such as using the second device-only area 140 is performed. Can be done.

제1 디바이스(102) 또는 제2 디바이스(104)에서 공유 블록에 대한 억세스를 끝낸 후에는 세마포어 관리기(160)에 데이터 1(one)을 씀으로써 2개의 디바이스가 상호 배타적으로 공유 블록에 억세스할 수 있도록 한다.After the first device 102 or the second device 104 has finished accessing the shared block, the two devices can access the shared block exclusively by writing data one (one) to the semaphore manager 160. Make sure

도 4는 본 발명의 일 실시예에 따른 공유 메모리 영역에 대한 억세스 제어 방법을 나타낸 순서도이다.4 is a flowchart illustrating an access control method for a shared memory area according to an embodiment of the present invention.

도 4를 참조하면, 단계 410에서 디바이스는 데이터 기록 또는 독출을 위해 임의의 저장 영역에 대한 억세스를 시도한다.Referring to FIG. 4, in step 410, the device attempts to access any storage area for data writing or reading.

단계 420에서 디바이스는 억세스하고자 하는 저장 영역으로의 억세스가 가능한지 여부를 판단한다.In operation 420, the device determines whether access to the storage area to be accessed is possible.

만일 해당 디바이스가 공유 메모리 영역(180)의 데이터 전달 블록으로의 억세스를 시도한 경우, 메모리 제어기(150)로부터 억세스 가능 여부에 대한 정보를 제공받거나, 임의의 영역에 저장된 상태 정보를 참조하여 해당 영역으로의 억세스가 가능한지 여부를 즉시 판단할 수 있다. If the device attempts to access the data transfer block of the shared memory area 180, the device receives information on accessibility from the memory controller 150 or refers to the state information stored in an arbitrary area to the corresponding area. It is possible to determine immediately whether or not access is possible.

또한 만일 해당 디바이스가 공유 메모리 영역(180)의 공유 블록으로 억세스하고자 하는 경우 세마포어 관리기(160)에 의해 관리되는 하드웨어 세마포어를 참 조하여 해당 영역으로의 억세스가 가능한지 판단할 수 있다.In addition, if the corresponding device intends to access the shared block of the shared memory area 180, it may be determined whether access to the corresponding area is possible by referring to the hardware semaphore managed by the semaphore manager 160.

만일 해당 저장 영역으로의 억세스가 가능한 경우, 디바이스는 단계 430에서 해당 저장 영역으로 억세스하여 처리할 동작을 수행한다. 처리할 동작은 예를 들어 데이터 기록, 데이터 독출 등 중 하나 이상일 수 있다.If access to the storage area is possible, the device performs an operation to access and process the storage area in step 430. The operation to be processed may be, for example, one or more of data recording, data reading, and the like.

그러나 만일 해당 저장 영역으로의 억세스가 가능하지 않은 경우 디바이스는 억세스가 가능할 때까지 대기 상태로 유지된다. 물론 이때, 해당 디바이스는 듀얼 포트 메모리(100)의 전용 영역을 이용한 동작을 수행을 하거나, 기타 필요한 동작을 수행할 수 있다. However, if access to the storage area is not available, the device remains idle until access is possible. Of course, at this time, the device may perform an operation using a dedicated area of the dual port memory 100 or perform other necessary operations.

상술한 멀티 포트 메모리의 억세스 제어 방법은 디지털 처리 장치에 내장된 소프트웨어 프로그램 등에 의해 시계열적 순서에 따른 자동화된 절차로 수행될 수도 있음은 자명하다. 상기 프로그램을 구성하는 코드들 및 코드 세그먼트들은 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 프로그램은 디지털 처리 장치가 읽을 수 있는 정보저장매체(computer readable media)에 저장되고, 디지털 처리 장치에 의하여 읽혀지고 실행됨으로써 상기 방법을 구현한다. 상기 정보저장매체는 자기 기록매체, 광 기록매체 및 캐리어 웨이브 매체를 포함한다.It is apparent that the above-described access control method of the multi-port memory may be performed by an automated procedure according to a time series sequence by a software program or the like embedded in the digital processing apparatus. The codes and code segments that make up the program can be easily deduced by a computer programmer in the field. The program is also stored in a computer readable media that can be read by a digital processing device, and read and executed by the digital processing device to implement the method. The information storage medium includes a magnetic recording medium, an optical recording medium, and a carrier wave medium.

상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to embodiments of the present invention, those skilled in the art may variously modify the present invention without departing from the spirit and scope of the present invention as set forth in the claims below. And can be changed.

도 1은 종래 기술에 따른 듀얼 포트 메모리의 메모리 영역을 도시한 도면. 1 shows a memory region of a dual port memory according to the prior art;

도 2는 본 발명의 일 실시예에 따른 듀얼 포트 메모리의 구성을 개략적으로 나타낸 도면.2 is a diagram schematically illustrating a configuration of a dual port memory according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 공유 메모리 영역의 분할 형태를 예시한 도면.3 illustrates a partitioned form of a shared memory area according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 공유 메모리 영역에 대한 억세스 제어 방법을 나타낸 순서도.4 is a flowchart illustrating an access control method for a shared memory area according to an embodiment of the present invention.

Claims (18)

제1 디바이스 및 제2 디바이스에 의해 공유되는 메모리 장치로서,A memory device shared by a first device and a second device, the 상기 제1 디바이스에 의해 전용되는 제1 전용 저장 영역, 상기 제2 디바이스에 의해 전용되는 제2 전용 저장 영역, 및 상기 제1 디바이스 및 상기 제2 디바이스에 의해 공유되고 데이터 전달 블록과 공유 블록을 포함하는 공유 저장 영역으로 구성된 저장 영역; 및A first dedicated storage area dedicated by the first device, a second dedicated storage area dedicated by the second device, and a data transfer block and a shared block shared by the first device and the second device; A storage area consisting of a shared storage area; And 상기 데이터 전달 블록에 대한 상기 제1 및 상기 제2 디바이스의 억세스 상태 정보를 관리하는 메모리 제어기를 포함하되,A memory controller managing access state information of the first and second devices for the data transfer block; 상기 데이터 전달 블록은 상기 제1 디바이스가 데이터 기록 권한만을 가지고 상기 제2 디바이스가 데이터 독출 권한만을 가지도록 할당된 제1 데이터 전달 블록과, 상기 제2 디바이스가 데이터 기록 권한만을 가지고 상기 제1 디바이스가 데이터 독출 권한만을 가지도록 할당된 제2 데이터 전달 블록을 포함하고,The data transfer block may include a first data transfer block allocated such that the first device has only data write authority and the second device has only data read authority, and the second device has only data write authority. A second data delivery block allocated to have only data read rights, 임의의 데이터 전달 블록에 대해 데이터 기록 권한을 가진 디바이스가 데이터를 기록하였으나 해당 데이터 전달 블록에 대해 데이터 독출 권한을 가진 디바이스가 아직 기록된 데이터를 독출하지 않은 상태에서 데이터 기록 권한을 가진 디바이스가 신규 데이터를 기록하기 위해 해당 데이터 전달 블록에 접속을 시도하는 경우 상기 메모리 제어기가 해당 디바이스의 접속을 허용하지 않는 것을 특징으로 하는 메모리 장치.If a device with data write authority for any data transfer block has written data, but a device with data read authority for the data transfer block has not yet read the recorded data, the device with data write authority has new data. The memory controller does not allow the connection of the device when attempting to connect to the corresponding data transfer block to write the data. 제1항에 있어서,The method of claim 1, 상기 공유 블록은 상기 제1 및 제2 디바이스가 중첩되지 않는 시간 동안 개별 접속 가능하도록 할당된 저장 영역인 것을 특징으로 하는 메모리 장치.And the shared block is a storage area allocated to be individually accessible for a time when the first and second devices do not overlap. 제2항에 있어서,3. The method of claim 2, 상기 공유 블록에 대한 임의의 디바이스의 억세스 여부에 대한 정보를 통지하기 위하여 하드웨어 세마포어 셀을 구비하는 세마포어 관리기를 더 포함하는 것 을 특징으로 하는 메모리 장치.And a semaphore manager having a hardware semaphore cell for notifying information on whether any device has access to the shared block. 제1항에 있어서,The method of claim 1, 상기 메모리 제어기는 임의의 데이터 전달 블록에 대해 데이터 기록 권한을 가진 디바이스가 데이터를 기록하는 중에 해당 데이터 전달 블록에 대해 데이터 독출 권한을 가진 디바이스가 접속을 요청한 경우, 데이터 기록 권한을 가진 디바이스가 데이터 기록을 완료한 영역에 대한 데이터 독출을 위한 접속 요청인 경우에만 데이터 독출 권한을 가진 디바이스의 접속을 허용하는 것을 특징으로 하는 메모리 장치.The memory controller writes data when a device having a data read right for a data transfer block requests a connection while a device having a data write right for a data transfer block requests a connection. And a device having a data read right only in the case of a connection request for data read of the area where the data is read. 제1항에 있어서,The method of claim 1, 상기 제1 및 제2 디바이스는 각각 베이스밴드 칩, 어플리케이션 프로세서 칩, 디스플레이 장치 중 어느 하나인 것을 특징으로 하는 메모리 장치.And the first and second devices are any one of a baseband chip, an application processor chip, and a display device. 제1항에 있어서,The method of claim 1, 상기 메모리 장치는 DRAM 또는 SDRAM 듀얼 포트 메모리인 것을 특징으로 하는 메모리 장치.And the memory device is DRAM or SDRAM dual port memory. 제1항에 있어서,The method of claim 1, 상기 저장 영역은 DRAM 셀 구조를 가지는 것을 특징으로 하는 메모리 장치.And the storage area has a DRAM cell structure. 디지털 처리 장치에 있어서,In the digital processing device, 제1 디바이스;A first device; 제2 디바이스; 및A second device; And 제1 디바이스와 제1 포트를 통해 연결되고, 제2 디바이스와 제2 포트를 통해 연결되는 공유 메모리를 포함하되,A shared memory connected with the first device through the first port and connected with the second device through the second port, 상기 공유 메모리는, The shared memory, 상기 제1 디바이스에 의해 전용되는 제1 전용 저장 영역, 상기 제2 디바이스에 의해 전용되는 제2 전용 저장 영역, 및 상기 제1 디바이스 및 상기 제2 디바이스에 의해 공유되고 데이터 전달 블록과 공유 블록을 포함하는 공유 저장 영역으로 구성된 저장 영역; 및A first dedicated storage area dedicated by the first device, a second dedicated storage area dedicated by the second device, and a data transfer block and a shared block shared by the first device and the second device; A storage area consisting of a shared storage area; And 상기 데이터 전달 블록에 대한 상기 제1 및 상기 제2 디바이스의 억세스 상태 정보를 관리하는 메모리 제어기를 포함하되,A memory controller managing access state information of the first and second devices for the data transfer block; 상기 데이터 전달 블록은 상기 제1 디바이스가 데이터 기록 권한만을 가지고 상기 제2 디바이스가 데이터 독출 권한만을 가지도록 할당된 제1 데이터 전달 블록과, 상기 제2 디바이스가 데이터 기록 권한만을 가지고 상기 제1 디바이스가 데이터 독출 권한만을 가지도록 할당된 제2 데이터 전달 블록을 포함하고,The data transfer block may include a first data transfer block allocated such that the first device has only data write authority and the second device has only data read authority, and the second device has only data write authority. A second data delivery block allocated to have only data read rights, 임의의 데이터 전달 블록에 대해 데이터 기록 권한을 가진 디바이스가 데이터를 기록하였으나 해당 데이터 전달 블록에 대해 데이터 독출 권한을 가진 디바이스가 아직 기록된 데이터를 독출하지 않은 상태에서 데이터 기록 권한을 가진 디바이스가 신규 데이터를 기록하기 위해 해당 데이터 전달 블록에 접속을 시도하는 경우 상기 메모리 제어기가 해당 디바이스의 접속을 허용하지 않는 것을 특징으로 하는 디지털 처리 장치.If a device with data write authority for any data transfer block has written data, but a device with data read authority for the data transfer block has not yet read the recorded data, the device with data write authority has new data. And the memory controller does not allow the connection of the device when attempting to connect to the corresponding data transfer block to record the data. 제8항에 있어서,The method of claim 8, 상기 공유 블록은 상기 제1 및 제2 디바이스가 중첩되지 않는 시간 동안 개별 접속 가능하도록 할당된 저장 영역인 것을 특징으로 하는 디지털 처리 장치.And wherein the shared block is a storage area allocated to be individually accessible for a time when the first and second devices do not overlap. 제9항에 있어서,10. The method of claim 9, 상기 공유 메모리는, 상기 공유 블록에 대한 임의의 디바이스의 억세스 여부에 대한 정보를 통지하기 위하여 하드웨어 세마포어 셀을 구비하는 세마포어 관리기를 더 포함하는 것을 특징으로 하는 디지털 처리 장치.The shared memory further comprises a semaphore manager having a hardware semaphore cell for notifying information on whether any device has access to the shared block. 제8항에 있어서,The method of claim 8, 상기 메모리 제어기는 임의의 데이터 전달 블록에 대해 데이터 기록 권한을 가진 디바이스가 데이터를 기록하는 중에 해당 데이터 전달 블록에 대해 데이터 독출 권한을 가진 디바이스가 접속을 요청한 경우, 데이터 기록 권한을 가진 디바이스가 데이터 기록을 완료한 영역에 대한 데이터 독출을 위한 접속 요청인 경우에만 데이터 독출 권한을 가진 디바이스의 접속을 허용하는 것을 특징으로 하는 디지털 처리 장치.The memory controller writes data when a device having a data read right for a data transfer block requests a connection while a device having a data write right for a data transfer block requests a connection. And a device having a data reading authority only in the case of a connection request for data reading of a region of which the data has been completed. 제8항에 있어서,The method of claim 8, 상기 제1 및 제2 디바이스는 각각 베이스밴드 칩, 어플리케이션 프로세서 칩, 디스플레이 장치 중 어느 하나인 것을 특징으로 하는 디지털 처리 장치.And the first and second devices are any one of a baseband chip, an application processor chip, and a display device. 제8항에 있어서,The method of claim 8, 상기 공유 메모리는 SDRAM 또는 DRAM 듀얼 포트 메모리인 것을 특징으로 하는 디지털 처리 장치.And the shared memory is SDRAM or DRAM dual port memory. 제8항에 있어서,The method of claim 8, 상기 저장 영역은 DRAM 셀 구조를 가지는 것을 특징으로 하는 디지털 처리 장치.And said storage region has a DRAM cell structure. 메모리 장치의 복수의 프로세서들에 대한 억세스 제어 방법으로서,An access control method for a plurality of processors of a memory device, 제1 디바이스로부터 제1 데이터 전달 블록에 대한 억세스 요청을 수신하는 단계;Receiving an access request for a first data transfer block from a first device; 상기 제1 데이터 전달 블록에 대한 억세스가 가능한지 여부를 판단하는 단계; 및Determining whether access to the first data transfer block is possible; And 상기 판단에 따라 억세스 허용 여부에 대한 정보를 상기 제1 디바이스로 전송하는 단계를 포함하되,And transmitting information on whether to allow access to the first device according to the determination. 상기 메모리 장치는,The memory device, 상기 제1 디바이스에 의해 전용되는 제1 전용 저장 영역, 제2 디바이스에 의해 전용되는 제2 전용 저장 영역, 및 상기 제1 디바이스 및 상기 제2 디바이스에 의해 공유되고 데이터 전달 블록과 공유 블록을 포함하는 공유 저장 영역으로 구성된 저장 영역; 및A first dedicated storage area dedicated by the first device, a second dedicated storage area dedicated by a second device, and shared by the first device and the second device and including a data transfer block and a shared block. A storage area consisting of a shared storage area; And 상기 데이터 전달 블록에 대한 상기 제1 및 상기 제2 디바이스의 억세스 상태 정보를 관리하는 메모리 제어기를 포함하고,A memory controller managing access state information of the first and second devices for the data transfer block; 상기 데이터 전달 블록은 상기 제1 디바이스가 데이터 기록 권한만을 가지고 상기 제2 디바이스가 데이터 독출 권한만을 가지도록 할당된 상기 제1 데이터 전달 블록과, 상기 제2 디바이스가 데이터 기록 권한만을 가지고 상기 제1 디바이스가 데이터 독출 권한만을 가지도록 할당된 제2 데이터 전달 블록을 포함하고,The data transfer block includes the first data transfer block assigned such that the first device has only data write authority and the second device has only data read authority, and the second device has only data write authority. Includes a second data delivery block allocated to have only data read rights, 임의의 데이터 전달 블록에 대해 데이터 기록 권한을 가진 디바이스가 데이터를 기록하였으나 해당 데이터 전달 블록에 대해 데이터 독출 권한을 가진 디바이스가 아직 기록된 데이터를 독출하지 않은 상태에서 데이터 기록 권한을 가진 디바이스가 신규 데이터를 기록하기 위해 해당 데이터 전달 블록에 접속을 시도하는 경우 상기 메모리 제어기가 해당 디바이스의 접속을 허용하지 않는 것을 특징으로 하는 억세스 제어 방법.If a device with data write authority for any data transfer block has written data, but a device with data read authority for the data transfer block has not yet read the recorded data, the device with data write authority has new data. The memory controller does not allow the connection of the device when attempting to access the corresponding data transfer block to write the data. 제15항에 있어서,The method of claim 15, 상기 공유 블록은 상기 제1 및 제2 디바이스가 중첩되지 않는 시간 동안 개별 접속 가능하도록 할당된 저장 영역인 것을 특징으로 하는 억세스 제어 방법.And wherein the shared block is a storage area allocated to be individually accessible for a time when the first and second devices do not overlap. 제16항에 있어서,The method of claim 16, 상기 공유 블록에 대한 임의의 디바이스의 억세스 여부에 대한 정보를 통지하기 위하여 하드웨어 세마포어 셀이 이용되는 것을 특징으로 하는 억세스 제어 방법.And a hardware semaphore cell is used to notify information on whether any device has access to the shared block. 제15항 내지 제17항 중 어느 하나에 기재된 억세스 제어 방법을 수행하기 위하여 메모리 장치에 의해 실행될 수 있는 명령어들의 프로그램이 유형적으로 구현되어 있으며 메모리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체.A recording medium on which a program of instructions that can be executed by a memory device is tangibly implemented to perform the access control method according to any one of claims 15 to 17, and records a program that can be read by the memory device.
KR1020090094967A 2009-10-07 2009-10-07 Multi-port memory system and access control method thereof KR101103619B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090094967A KR101103619B1 (en) 2009-10-07 2009-10-07 Multi-port memory system and access control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090094967A KR101103619B1 (en) 2009-10-07 2009-10-07 Multi-port memory system and access control method thereof

Publications (2)

Publication Number Publication Date
KR20110037492A KR20110037492A (en) 2011-04-13
KR101103619B1 true KR101103619B1 (en) 2012-01-09

Family

ID=44044959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090094967A KR101103619B1 (en) 2009-10-07 2009-10-07 Multi-port memory system and access control method thereof

Country Status (1)

Country Link
KR (1) KR101103619B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101080107B1 (en) 2011-04-22 2011-11-04 한국항공우주연구원 System for connecting separated networks for sharing data
GB2500588B (en) * 2012-03-24 2017-02-01 Rhinocare Ltd Systems and methods of hyperthermal treatment
US10725667B2 (en) 2017-01-19 2020-07-28 Seoul National University R&Db Foundation Method of transferring data in parallel system, and parallel system for performing the same
KR102066212B1 (en) * 2017-01-19 2020-01-14 서울대학교산학협력단 Method for transferring data in parallel system, and parallel system for performing the same
KR20200069905A (en) 2018-12-07 2020-06-17 삼성전자주식회사 Storage system and operating method of storage system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093628A1 (en) * 2001-11-14 2003-05-15 Matter Eugene P. Memory adaptedt to provide dedicated and or shared memory to multiple processors and method therefor
KR20080067799A (en) * 2007-01-17 2008-07-22 삼성전자주식회사 Multi-path accessible semiconductor memory device having mail box regions and method for mail box access control therefore
KR20090033539A (en) * 2007-10-01 2009-04-06 삼성전자주식회사 Multi port semiconductor memory device having protocol define portion and access method therefore

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093628A1 (en) * 2001-11-14 2003-05-15 Matter Eugene P. Memory adaptedt to provide dedicated and or shared memory to multiple processors and method therefor
KR20080067799A (en) * 2007-01-17 2008-07-22 삼성전자주식회사 Multi-path accessible semiconductor memory device having mail box regions and method for mail box access control therefore
KR100855587B1 (en) * 2007-01-17 2008-09-01 삼성전자주식회사 Multi-path accessible semiconductor memory device having mail box regions and method for mail box access control therefore
KR20090033539A (en) * 2007-10-01 2009-04-06 삼성전자주식회사 Multi port semiconductor memory device having protocol define portion and access method therefore

Also Published As

Publication number Publication date
KR20110037492A (en) 2011-04-13

Similar Documents

Publication Publication Date Title
EP1540485B1 (en) Out of order dram sequencer
KR101558482B1 (en) Bank sharing and refresh in a shared multi-port memory device
US8429374B2 (en) System and method for read-while-write with NAND memory device
US9053019B2 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
KR100847968B1 (en) Dual-port semiconductor memories
KR20050013525A (en) Application processors and memory architecture for wireless application
KR101103619B1 (en) Multi-port memory system and access control method thereof
WO2015090043A1 (en) Method and device for swapping data into memory
US20080301381A1 (en) Device and method for controlling commands used for flash memory
CN110168643B (en) Simultaneous memory bank access via cross-connected shared bank resources
US20130282971A1 (en) Computing system and data transmission method
CN110168644B (en) System, method and computer program for providing row tamper protection in a bank memory cell array
CN107783909B (en) Memory address bus expansion method and device
KR101110550B1 (en) Processor, Multi-processor System And Method For Controlling Access Authority For Shared Memory In Multi-processor System
KR100872196B1 (en) Memory system and method of controlling access of dual port memory using the memory system
CN110096355B (en) Shared resource allocation method, device and equipment
WO2022227563A1 (en) Hardware circuit, data migration method, chip, and electronic device
US20130247065A1 (en) Apparatus and method for executing multi-operating systems
KR100874169B1 (en) Dual port memory for direct transfer of commands between processors and method for performing them
KR100886179B1 (en) Method for Handling Access Right Acquisition in Dual Port Memory and Apparatus therefore
CN113946435A (en) Memory management technology and computer system
CN109324982B (en) Data processing method and data processing device
KR20080046065A (en) Dual port memory having access control device for shared memory, multi-processor system having access control device for shared memory and method for controlling access for shared memory
KR100816038B1 (en) Method for accessing shared memory in multi-processor system
CN112965816B (en) Memory management technology and computer system

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

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 9