KR20080046066A - Synchronization control device, dual port memory having synchornization control device and method for controlling synchonization in dual port memory - Google Patents

Synchronization control device, dual port memory having synchornization control device and method for controlling synchonization in dual port memory Download PDF

Info

Publication number
KR20080046066A
KR20080046066A KR1020060115516A KR20060115516A KR20080046066A KR 20080046066 A KR20080046066 A KR 20080046066A KR 1020060115516 A KR1020060115516 A KR 1020060115516A KR 20060115516 A KR20060115516 A KR 20060115516A KR 20080046066 A KR20080046066 A KR 20080046066A
Authority
KR
South Korea
Prior art keywords
semaphore
processor
cell
shared memory
address
Prior art date
Application number
KR1020060115516A
Other languages
Korean (ko)
Other versions
KR100863541B1 (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 KR1020060115516A priority Critical patent/KR100863541B1/en
Publication of KR20080046066A publication Critical patent/KR20080046066A/en
Application granted granted Critical
Publication of KR100863541B1 publication Critical patent/KR100863541B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Multi Processors (AREA)

Abstract

A dual port memory having a synchronization control device, a multi-processor system having the same, and a synchronization control method thereof are provided to guarantee continuous synchronization between tasks even if context switching occurs between the tasks in a multitasking environment executing a plurality of tasks in one processor. A memory array(210) has at least one shared memory area(211-217) accessed by first and second processors(110,120). A first memory interface(220) performs data read/write operations from/on the shared memory area based on address/control signals of the first processor. A second memory interface(230) performs the data read/write operation from/on the shared memory area based on address/control signals of the second processor. A memory access controller(295) includes a plurality of semaphore cells(260-290) controlling exclusive access to the shared memory areas, and a synchronization controller(240) inputting/outputting access request/grand signals independently on the semaphore cell corresponding to the shared memory area which is accessed by at least one task executed in the first or second processor.

Description

동기 제어 장치를 가지는 듀얼 포트 메모리, 동기 제어 장치를 가지는 듀얼 포트 메모리 시스템 및 듀얼 포트 메모리 시스템의 동기 제어 방법{Synchronization Control Device, Dual Port Memory Having Synchornization Control Device and Method for Controlling Synchonization in Dual Port Memory}Synchronization Control Device, Dual Port Memory Having Synchornization Control Device and Method for Controlling Synchonization in Dual Port Memory}

도 1a는 종래의 듀얼 포트 메모리 시스템에서 하드웨어 세마포의 구성을 나타내는 블록도이다.1A is a block diagram showing the configuration of a hardware semaphore in a conventional dual port memory system.

도 1b는 도 1a 도시된 종래의 하드웨어 세마포의 동작을 나타내는 진리표이다. FIG. 1B is a truth table showing the operation of the conventional hardware semaphore shown in FIG. 1A.

도 2는 본 발명의 일실시예에 따른 동기 제어 장치를 가지는 듀얼 포트 메모리 시스템의 구성을 나타내는 블록도이다.2 is a block diagram illustrating a configuration of a dual port memory system having a synchronous control device according to an embodiment of the present invention.

도 3a는 도 2에 도시된 세마포 셀의 상세한 구성을 나타내는 블록도이다.FIG. 3A is a block diagram illustrating a detailed configuration of the semaphore cell shown in FIG. 2.

도 3b는 도 3a에 도시된 세마포 셀의 동작을 나타내는 상태표이다.FIG. 3B is a state table illustrating the operation of the semaphore cell shown in FIG. 3A.

도 4a는 도 2에 도시된 동기 제어 장치의 상세한 구성을 나타내는 회로도이다. 4A is a circuit diagram showing a detailed configuration of the synchronization control device shown in FIG.

도 4b는 도 4a에 도시된 동기 제어 장치의 동작을 나타내는 진리표이다.4B is a truth table showing the operation of the synchronization control device shown in FIG. 4A.

도 5는 본 발명의 일실시예에 따른 듀얼 포트 메모리 시스템의 동기 제어 방법을 설명하기 위한 상태표이다.5 is a state table for explaining a synchronous control method of a dual port memory system according to an embodiment of the present invention.

도 6은 본 발명의 일실시예에 따른 듀얼 포트 메모리 시스템에서 공유 메모리 접근 과정을 나타내는 흐름도이다.6 is a flowchart illustrating a shared memory access procedure in a dual port memory system according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

110 : 제1 프로세서 120 : 제2 프로세서110: first processor 120: second processor

150 : 제1 포트 160 : 제2 포트150: first port 160: second port

200 : 듀얼 포트 메모리 210 : 메모리 셀 어레이200: dual port memory 210: memory cell array

211 : 제1 공유 메모리 영역 213 : 제2 공유 메모리 영역211: first shared memory area 213: second shared memory area

215 : 제3 공유 메모리 영역 217 : 제4 공유 메모리 영역215: third shared memory area 217: fourth shared memory area

240 : 동기 제어부 250 : 하드웨어 세마포240: synchronous control unit 250: hardware semaphore

260 : 제1 세마포 셀 270 : 제2 세마포 셀260: first semaphore cell 270: second semaphore cell

280 : 제3 세마포 셀 290 : 제4 세마포 셀280: third semaphore cell 290: fourth semaphore cell

본 발명은 듀얼 포트 메모리 시스템에 관한 것으로, 더욱 상세하게는 듀얼 포트 메모리를 구비한 휴대용 단말기에 적용할 수 있는 동기 제어 장치를 가지는 듀얼 포트 메모리, 동기 제어 장치를 가지는 듀얼 포트 메모리 시스템 및 듀얼 포트 메모리 시스템의 동기 제어 방법에 관한 것이다.The present invention relates to a dual port memory system, and more particularly, a dual port memory having a synchronous control device applicable to a portable terminal having a dual port memory, a dual port memory system having a synchronous control device, and a dual port memory. It relates to a synchronous control method of the system.

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

휴대용 단말기는 상기와 같은 이동 통신 본래의 기능을 처리하는 모뎀 프로세서와 다양한 응용프로그램을 처리하기 위한 응용 프로세서가 구비된다.The portable terminal is provided with a modem processor for processing the original functions of the mobile communication and an application processor for processing various applications.

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

즉, 두 개의 프로세서가 듀얼 포트 메모리를 사용하게 되면 각각의 프로세서가 자신의 포트를 사용하여 메모리 영역에 접근하여 데이터를 읽고 쓸 수 있기 때문에 두 개의 프로세서가 각각 서로 다른 메모리에 연결되어 호스트 프로세서간 인터페이스(Host Porcessor Interface: HPI)를 통해 처리 데이터를 송수신 하는 경우보다 데이터의 전송 및 처리 속도가 더 빠르고 이로 인해 시스템의 전체적인 성능이 향상된다.In other words, when two processors use dual-port memory, each processor can access its memory area using its own port to read and write data, so that the two processors are connected to different memory to interface between host processors. Data transfer and processing is faster than processing data sent and received via Host Porcessor Interface (HPI), which improves the overall performance of the system.

듀얼 포트 메모리는 두 개의 프로세서가 각각 독립적으로 읽기 또는 쓰기 작업을 수행하는 전용 메모리 영역과 두 개의 프로세서가 공동으로 접근(access) 하여 읽기 또는 쓰기 작업을 수행하는 공유 메모리 영역을 포함한다.The dual port memory includes a dedicated memory area in which two processors each independently perform a read or write operation, and a shared memory area in which the two processors jointly access a read or write operation.

그리고, 듀얼 포트 메모리 시스템에서는 공유 메모리 영역에 대한 각 프로세서의 상호 배타적(mutual exclusive) 접근을 보장하고 각 프로세서간의 동기화된 작업을 보장하기 위해 하드웨어 세마포(semaphore)를 이용한다.In the dual port memory system, hardware semaphores are used to ensure mutual exclusive access of each processor to the shared memory area and to ensure synchronized operations between the processors.

하드웨어 세마포는 소정의 공유 메모리 영역에 대한 접근 가능 여부를 소정 의 공유 메모리 영역의 현재의 접근 상태에 따라 이진 논리값(예를 들면, '0' 또는 '1')을 이용하여 각 프로세서에게 상호 배타적으로 제공함으로써 소정의 공유 메모리 영역에 각각의 프로세서가 상호 배타적으로 접근하도록 한다.Hardware semaphores are mutually exclusive to each processor using binary logic values (e.g., '0' or '1') depending on the current access state of the given shared memory area to determine if the given shared memory area is accessible. By providing each processor with mutual access to a given shared memory area.

즉, 하드웨어 세마포는 임의의 시간에 소정의 프로세서가 소정의 공유 메모리 영역에 대한 접근 요청을 하면 접근 요청된 소정의 공유 메모리 영역에 현재 접근하고 있는 프로세서가 존재하지 않는 경우에는 상기 소정의 프로세서서에게 접근을 허용하고 상기 소정의 공유 메모리 영역에 접근 중인 프로세서가 존재하면 상기 접근 중인 프로세서가 접근을 종료할 때까지 상기 소정의 프로세서의 접근을 차단한다.That is, when a predetermined processor requests an access to a predetermined shared memory area at any time, the hardware semaphore sends a request to the predetermined processor when there is no processor currently accessing the requested shared memory area. If there is a processor allowing access and accessing the predetermined shared memory area, the access of the predetermined processor is blocked until the accessing processor terminates the access.

듀얼 포트 메모리 시스템에서 복수의 공유 메모리 영역이 존재하는 경우에는 각각의 공유 메모리 영역에 대한 프로세서간 상호 배타적 접근을 보장하기 위해 공유 메모리 영역의 개수와 동일한 개수의 세마포 셀이 하드웨어 세마포에 구비된다.When a plurality of shared memory regions exist in a dual port memory system, semaphore cells having the same number of shared memory regions as the number of shared memory regions are provided in the hardware semaphores to ensure mutually exclusive access to each shared memory region.

도 1a는 종래의 듀얼 포트 메모리 시스템에서 하드웨어 세마포의 구성을 나타내는 블록도이고, 도 1b는 도 1a 도시된 종래의 하드웨어 세마포의 동작을 나타내는 진리표로서, 듀얼 포트 메모리에 네 개의 공유 메모리 영역이 존재하는 경우를 나타낸다. 또한, 도 1a에서는 듀얼 포트 메모리 시스템에 구비된 두 개의 프로세서 중에서 제1 프로세서와 하드웨어 세마포간의 연결관계를 나타낸다.FIG. 1A is a block diagram illustrating the configuration of a hardware semaphore in a conventional dual port memory system, and FIG. 1B is a truth table illustrating the operation of the conventional hardware semaphore shown in FIG. 1A, in which four shared memory regions exist in the dual port memory. The case is shown. In addition, FIG. 1A illustrates a connection relationship between a first processor and a hardware semaphore among two processors included in the dual port memory system.

도 1a 및 1b를 참조하면, 듀얼 포트 메모리 시스템이 네 개의 공유 메모리 영역을 구비하는 것으로 가정하였기 때문에 하드웨어 세마포에는 네 개의 세마포 셀(20 내지 50)이 구비된다.1A and 1B, since a dual port memory system is assumed to have four shared memory regions, four semaphore cells 20 to 50 are provided in a hardware semaphore.

각각의 세마포 셀(20 내지 50)은 듀얼 포트 메모리에 구비된 네 개의 공유 메모리 영역 중에서 각각의 공유 메모리 영역과 대응되고 대응된 공유 메모리 영역에 대한 두 개의 프로세서의 상호 배타적 접근을 제어한다.Each semaphore cell 20 to 50 controls mutually exclusive access of two processors to a shared memory region corresponding to and corresponding to each shared memory region among four shared memory regions provided in the dual port memory.

각 세마포 셀(20 내지 50)은 제1 프로세서(10)로부터 각 공유 메모리 영역에 접근을 위한 접근 요청 신호(REQ1 내지 REQ4)를 제공 받고 상기 공유 메모리 영역의 현재 접근 상태에 따라 접근 허용 신호(RDY1 내지 RDY4)를 출력한다.Each semaphore cell 20 to 50 receives an access request signal REQ1 to REQ4 for accessing each shared memory area from the first processor 10 and receives an access permission signal RDY1 according to a current access state of the shared memory area. To RDY4).

예를 들어, 각 세마포 셀(20 내지 50)은 제1 프로세서(10)로부터 공유 메모리 영역에 대한 접근 요청 신호(REQ1 내지 REQ4)로 논리값 '0'을 제공받고 상기 공유 메모리 영역이 다른 프로세서에 의해 접근 중이면 접근 허용 신호(RDY1 내지 RDY4)로 논리값 '1'을 제공하고, 상기 공유 메모리 영역에 접근중인 프로세서가 존재하지 않으면 접근 허용 신호(RDY1 내지 RDY4)로 논리값 '1'을 제1 프로세서(10)에게 제공하여 제1 프로세서(10)가 공유 메모리 영역에 접근할 수 있도록 한다. For example, each semaphore cell 20 to 50 receives a logical value '0' from the first processor 10 as an access request signal REQ1 to REQ4 for the shared memory area, and the shared memory area is provided to another processor. By the access permission signals RDY1 to RDY4 if the processor is approaching, and if there is no processor accessing the shared memory area, the logic value '1' is supplied to the access permission signals RDY1 to RDY4. 1 to the processor 10 so that the first processor 10 can access the shared memory area.

그리고, 각 세마포 셀(20 내지 50)은 공유 메모리 영역에 접근 중인 프로세서가 접근을 종료하고 접근 요청 신호(REQ1 내지 REQ4)로 논리값 '1을 제공하면, 상기 공유 메모리 영역에 접근 대기 중인 프로세서에게 접근 허용 신호(RDY1 내지 RDY4)로 논리값 '0'을 제공함으로써 공유 메모리 영역에 접근할 수 있도록 한다.Each semaphore cell 20 to 50 may access a processor waiting for access to the shared memory area when the processor accessing the shared memory area terminates the access and provides a logic value '1 through the access request signals REQ1 to REQ4. By providing the logic value '0' as the access permission signals RDY1 to RDY4, the shared memory area can be accessed.

제1 프로세서(10)는 소정의 공유 메모리 영역에 대한 접근을 위해 하드웨어 세마포의 주소를 주소 버스(60)를 통해 주소 디코더(80)에 제공하고, 데이터 버스(70)를 통해 접근 요청 신호(REQ1 내지 REQ4)를 제공한 후 쓰기 제어 신호(/WE)를 활성화시켜 소정의 공유 메모리 영역에 대한 접근 요청 신호(REQ1 내지 REQ4)를 세마포 셀(20 내지 50)에 제공한다.The first processor 10 provides the address of the hardware semaphore to the address decoder 80 through the address bus 60 to access a predetermined shared memory area, and the access request signal REQ1 through the data bus 70. To REQ4), the write control signal / WE is activated to provide the semaphore cells 20 to 50 with access request signals REQ1 to REQ4 for a predetermined shared memory area.

여기서, 제1 프로세서(10)에 의해 주소 버스(60)를 통해 제공된 주소는 주소 디코더(80)에 의해 디코딩되어 인에이블 신호(/EN)를 활성화함으로써 하드웨어 세마포에 포함된 모든 세마포 셀(20 내지 50)의 입출력 라인을 활성화시킨다.Here, the address provided through the address bus 60 by the first processor 10 is decoded by the address decoder 80 to activate the enable signal / EN so that all semaphore cells 20 to 20 included in the hardware semaphore are activated. Activate the input / output line of 50).

또한, 제1 프로세서(10)는 하드웨어 세마포의 주소를 지정하고 쓰기 제어 신호(/WE)를 비활성화 시킴으로써(즉, 읽기 제어 신호가 활성화) 모든 세마포 셀(20 내지 50)로부터 데이터 버스(70)를 통해 접근 허용 신호(RDY1 내지 RDY4)를 제공받고, 제공받은 접근 허용 신호(RDY1 내지 RDY4)에 기초하여 소정의 공유 메모리 영역에 대한 접근 허용 여부를 판단한다.The first processor 10 also addresses the data bus 70 from all semaphore cells 20-50 by addressing the hardware semaphore and deactivating the write control signal / WE (ie, the read control signal is active). Upon receiving the access permission signals RDY1 to RDY4, the access permission signals RDY1 to RDY4 are determined based on the received access permission signals RDY1 to RDY4.

도 1a에 도시한 바와 같은 종래의 하드웨어 세마포에서는 하드웨어 세마포의 주소를 바이트 단위로 구성하고, 하드웨어 세마포에 포함된 각각의 세마포 셀(20 내지 50)의 주소를 비트 단위로 구분한다.In a conventional hardware semaphore as shown in FIG. 1A, an address of a hardware semaphore is configured in bytes, and the addresses of each semaphore cell 20 to 50 included in the hardware semaphore are divided into bits.

그리고, 프로세서가 소정의 공유 메모리 영역에 대응되는 세마포 셀(20 내지 50)에 접근 요청 신호(REQ1 내지 REQ4)의 쓰기 동작을 수행하거나 접근 허용 신호(RDY1 내지 RDY4)의 읽기 동작을 수행할 때 바이트 단위의 하드웨어 세마포 주소를 사용하기 때문에 상기 프로세서가 접근하고자 하는 세마포 셀(20 내지 50)의 주소만 개별적으로 지정하여 지정된 세마포 셀(20 내지 50)에 대한 읽기 또는 쓰기 작업을 수행할 수 없다.In addition, when the processor performs a write operation of the access request signals REQ1 to REQ4 or a read operation of the access permission signals RDY1 to RDY4 to the semaphore cells 20 to 50 corresponding to the predetermined shared memory area, a byte is used. Since the unit uses the hardware semaphore address, the processor cannot individually designate only the addresses of the semaphore cells 20 to 50 to be accessed to perform read or write operations on the designated semaphore cells 20 to 50.

따라서, 듀얼 포트 메모리 시스템에 포함된 두 개의 프로세서 중 어느 하나의 프로세서에 의해 복수의 태스크가 실행되는 멀티 태스크 환경에서는 소정의 태 스크가 소정의 공유 메모리 영역에 대한 접근 요청 신호를 상기 소정의 공유 메모리 영역에 상응하는 세마포 셀에 전송하고, 상기 세마포 셀로부터 접근 허용 신호를 제공 받기 전에 다른 태스크로 문맥 전환이 발생하여 상기 다른 태스크가 다른 공유 메모리 영역에 대한 접근 요청 신호를 전송하게 되면 이전에 상기 소정의 태스크로부터 전송된 접근 요청 신호는 새로운 값으로 대치되어 상기 소정의 태스크는 데드락(dead lock) 상태에 빠지게 되는 문제점이 있다.Accordingly, in a multi-task environment in which a plurality of tasks are executed by any one of two processors included in a dual port memory system, a predetermined task may request an access request signal for a predetermined shared memory area from the predetermined shared memory. If a context switch occurs to another task before transmitting to the semaphore cell corresponding to the region and the access permission signal is received from the semaphore cell, and the other task transmits an access request signal to the other shared memory region, the predetermined previously The access request signal transmitted from the task of the task is replaced with a new value, so that the predetermined task is in a dead lock state.

예를 들어, 제1 프로세서, 제2 프로세서 및 제1 내지 제4 공유 메모리 영역이 구비된 듀얼 포트 메모리 시스템에서 제1 태스크 및 제2 태스크가 제1 프로세서에 의해 실행되고, 제2 공유 메모리 영역은 제2 프로세서가 접근하고 있는 상태에서 제1 태스크가 제2 공유 메모리 영역에 접근을 시도한다고 가정하면, 먼저 제1 태스크는 하드웨어 세마포의 주소를 지정하고, 읽기 제어 신호를 활성화(즉, 쓰기 제어 신호를 비활성화)하여 데이터 버스를 통해 하드웨어 세마포에 저장된 접근 허용 신호를 읽어온다.For example, in a dual port memory system having a first processor, a second processor, and first to fourth shared memory regions, the first task and the second task are executed by the first processor, and the second shared memory region may be Assuming that the first task attempts to access the second shared memory region while the second processor is accessing, first the first task addresses the hardware semaphore and activates the read control signal (ie, the write control signal). Disable) to read the access permission signal stored in the hardware semaphore via the data bus.

하드웨어 세마포로부터 읽어온 접근 허용 신호가 논리값 '0', '1', '0', '1' 이라면 제1 태스크는 제2 공유 메모리 영역에 대한 접근 허용 신호로 두 번째 논리값인 논리값 '1'을 판단하고, 현재 제2 공유 메모리 영역이 제2 프로세서에 의해 접근되고 있음을 인식한다.If the access permission signal read from the hardware semaphore is a logic value '0', '1', '0', or '1', the first task may access the second shared memory area. 1 ′ is determined, and it is recognized that the second shared memory area is currently being accessed by the second processor.

여기서 하드웨어 세마포는 바이트 단위의 주소를 가지기 때문에 제2 공유 메모리 영역에 상응하는 제2 세마포 셀을 별도로 선택하여 제2 세마포 셀에 저장된 제2 공유 메모리 영역의 접근 허용 신호만 별도로 읽어 올 수 없고 하드웨어 세마 포에 포함된 모든 세마포 셀에 저장된 접근 허용 신호를 읽어 온다.In this case, since the hardware semaphore has an address in bytes, the semaphore cell corresponding to the second shared memory area is separately selected, and only the access permission signal of the second shared memory area stored in the second semaphore cell cannot be read separately. Read access permission signals stored in all semaphore cells in the gun.

그리고, 제1 태스크는 하드웨어 세마포에 제2 공유 메모리 영역에 대한 접근 요청 신호를 전송하기 위해 하드웨어 세마포의 주소 지정 및 쓰기 제어 신호를 활성화 하고 접근 요청 신호로 논리값 '0', '0', '0', '1' 을 데이터 버스를 통해 하드웨어 세마포에 제공한다. 여기에서도 하드웨어 세마포는 바이트 주소를 가지기 때문에 접근 요청 신호를 제2 세마포 셀에만 별도로 입력될 수 없고 하드웨어 세마포에 포함된 모든 세마포 셀에 동시에 접근 요청 신호가 입력된다.The first task activates the addressing and writing control signals of the hardware semaphores to transmit the access request signals for the second shared memory areas to the hardware semaphores, and the logic values' 0 ',' 0 ',' 0 'and' 1 'are provided to the hardware semaphore via the data bus. Here, since the hardware semaphore has a byte address, the access request signal cannot be separately input to the second semaphore cell, but the access request signal is simultaneously input to all semaphore cells included in the hardware semaphore.

이때, 제2 공유 메모리 영역이 제2 프로세서에 의해 접근되고 있어서 제1 태스크로부터 제공된 접근 요청 신호가 하드웨어 세마포에 의해 접근 허용을 나타내는 접근 허용 신호로 반영되지 못한 상태에서 문맥 전환(context switching)이 발생하여 제1 태스크에서 제2 태스크로 작업이 전환된다.In this case, context switching occurs when the second shared memory area is accessed by the second processor and the access request signal provided from the first task is not reflected by the hardware semaphore as an access permission signal indicating access permission. The work is switched from the first task to the second task.

그리고, 제2 태스크는 제4 공유 메모리 영역에 대한 접근을 시도하기 위해 제4 공유 메모리 영역에 상응하는 제4 세마포 셀로부터 접근 허용 신호의 읽기 동작을 수행하여 하드웨어 세마포로부터 접근 허용 신호로 논리값 '0', '1', '0', '1' 을 읽어 온다. The second task performs a read operation of an access permission signal from a fourth semaphore cell corresponding to the fourth shared memory area to attempt to access the fourth shared memory area, thereby providing a logical value 'from the hardware semaphore to the access permission signal. 0 ',' 1 ',' 0 ',' 1 'are read.

여기서 제1 태스크에 의해 출력된 접근 요청 신호인 논리값 '0', '0', '0', '1' 이 하드웨어 세마포에 의해 접근 허용 신호로 상태 천이가 발생하기 이전에 문맥 전환이 발생하였으므로 접근 허용 신호는 여전히 논리값 '0', '1', '0', '1' 이 된다. Here, since the logical value '0', '0', '0', and '1', which are the access request signals output by the first task, are changed by the hardware semaphore before the state transition occurs to the access permission signal, the context switch occurs. The access permission signal is still the logic values '0', '1', '0' and '1'.

그리고 제2 태스크는 접근 허용 신호 중에서 제4 세마포 셀의 접근 허용 신 호에 해당하는 논리값 '1'을 판단하고, 제4 세마포 셀에 접근 요청 신호를 입력하기 위해 접근 요청 신호로 논리값 '0', '1', '0', '0'을 하드웨어 세마포에 제공한다.The second task determines a logic value '1' corresponding to an access permission signal of the fourth semaphore cell among the access permission signals, and inputs a logic value '0' as the access request signal to input an access request signal to the fourth semaphore cell. Provide ',' 1 ',' 0 ', and' 0 'to the hardware semaphore.

이후 제2 프로세서가 제2 공유 메모리 영역에 대한 접근을 종료한다. 그러나 제1 태스크가 제2 공유 메모리 영역에 접근하기 위해 제2 세마포 셀에 입력한 접근 요청 신호인 논리값 '0'은 문맥 전환이 발생된 후에 제2 태스크에 의해 '1'로 바뀌었기 때문에 제2 프로세서가 접근을 종료한 경우에도 제1 태스크는 제2 세마포 셀로부터 접근 허용 신호로 논리값 '0'을 제공받지 못한다. 따라서 제1 태스크는 무한 대기 상태인 데드락 상태에 빠지게 된다.The second processor then terminates access to the second shared memory area. However, the logical value '0', which is the access request signal input to the second semaphore cell by the first task to access the second shared memory region, is changed to '1' by the second task after the context switch occurs. Even when the 2 processor terminates the access, the first task does not receive the logic value '0' as the access permission signal from the second semaphore cell. Therefore, the first task enters the deadlock state, which is an infinite waiting state.

상기한 바와 같이 복수의 공유 메모리 영역을 구비한 종래의 듀얼 포트 메모리에서는 각각의 공유 메모리 영역에 대응되어 각 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 복수의 세마포 셀에 대해 개별적으로 접근하여 읽기 및 쓰기 작업을 수행할 수 없기 때문에 복수의 태스크 중 어느 하나의 태스크가 입력한 접근 요청 신호가 문맥 전환 후에 다른 태스크에 의해 새로운 값으로 지워져서 복수의 태스크간에 동기화된 작업을 수행할 수 없다는 단점이 있다.As described above, in the conventional dual port memory having a plurality of shared memory regions, a plurality of semaphore cells corresponding to each shared memory region and controlling mutually exclusive access to each shared memory region are individually accessed and read and Since the write operation cannot be performed, the access request signal input by any one of the plurality of tasks is erased to a new value by another task after the context switch, and thus, the synchronized operation between the plurality of tasks cannot be performed.

따라서, 본 발명의 제1 목적은 멀티 태스크 환경에서 각 태스크 간의 동기화된 작업을 보장할 수 있는 동기 제어 장치를 가지는 듀얼 포트 메모리를 제공하는 것이다.Accordingly, a first object of the present invention is to provide a dual port memory having a synchronous control device capable of ensuring synchronized work between tasks in a multitask environment.

또한, 본 발명의 제2 목적은 상기 동기 제어 장치를 가지는 듀얼 포트 메모 리 시스템을 제공하는 것이다.A second object of the present invention is to provide a dual port memory system having the synchronous control device.

또한, 본 발명의 제3 목적은 멀티 태스크 환경에서 각 태스크 간의 동기화된 작업을 보장할 수 있는 듀얼 포트 메모리 시스템의 동기 제어 방법를 제공하는 것이다.In addition, a third object of the present invention is to provide a synchronous control method of a dual port memory system capable of guaranteeing synchronized tasks between tasks in a multitask environment.

상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일측면에 따른 동기 제어 장치를 가지는 듀얼 포트 메모리는 복수의 공유 메모리 영역을 가지는 메모리 어레이와, 제1 프로세서로부터 제1 포트를 통해 제공된 어드레스 및 제어신호에 기초하여 상기 복수의 공유 메모리 영역에 대해 읽기 또는 쓰기 동작을 수행하는 제1 메모리 인터페이스와, 제2 프로세서로부터 제2 포트를 통해 제공된 어드레스 및 제어신호에 기초하여 상기 복수의 공유 메모리 영역에 읽기 또는 쓰기 동작을 수행하는 제2 메모리 인터페이스 및 상기 복수의 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 복수의 세마포 셀을 포함하고, 상기 제1 프로세서 및 상기 제2 프로세서 중 적어도 하나 이상의 프로세서에서 실행되는 적어도 하나 이상의 태스크 각각이 접근하고자 하는 공유 메모리 영역에 대응되는 세마포 셀에 독립적으로 접근 요청 신호 및 접근 허용 신호의 입출력을 수행하도록 하는 동기 접근 제어부를 포함한다. 상기 복수의 세마포 셀은 각각 독립적인 주소가 할당될 수 있다. A dual port memory having a synchronization control device according to an aspect of the present invention for achieving the first object of the present invention described above comprises a memory array having a plurality of shared memory regions, and an address provided through a first port from a first processor. And a first memory interface performing a read or write operation on the plurality of shared memory areas based on a control signal, and the plurality of shared memory areas based on an address and a control signal provided through a second port from a second processor. And a plurality of semaphore cells for controlling mutually exclusive access to the plurality of shared memory regions, the second memory interface performing a read or write operation on the at least one processor of the first processor and the second processor. Each of at least one task being executed And a synchronous access controller configured to independently perform input / output of the access request signal and the access permission signal to the semaphore cell corresponding to the shared memory region. Each of the plurality of semaphore cells may be assigned an independent address.

상기 동기 접근 제어부는 상기 복수의 공유 메모리 영역과 동일한 수를 가지며 상기 복수의 공유 메모리 영역 각각에 대응되고 상기 대응된 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 상기 복수의 세마포 셀을 포함하는 하드웨어 세마포 및 상기 적어도 하나 이상의 태스크 각각으로부터 제공된 세마포 셀의 주소에 기초하여 상기 복수의 세마포 셀 중 어느 하나의 세마포 셀을 선택하고, 상기 선택된 세마포 셀에 대해 상기 접근 요청 신호 및 상기 접근 허용 신호의 입출력을 수행하는 동기 제어부를 포함할 수 있다. The synchronous access controller includes a hardware semaphore having the same number as the plurality of shared memory regions, the plurality of semaphore cells corresponding to each of the plurality of shared memory regions, and controlling mutually exclusive access to the corresponding shared memory region. And selecting one semaphore cell among the plurality of semaphore cells based on an address of a semaphore cell provided from each of the at least one task, and performing input / output of the access request signal and the access permission signal with respect to the selected semaphore cell. It may include a synchronization control unit.

상기 복수의 세마포 셀 각각은 상기 제1 프로세서 및 상기 적어도 하나 이상의 태스크 중 어느 하나로부터 제공된 제1 접근 요청 신호를 저장하는 제1 입력 래치와, 상기 제2 프로세서 및 상기 적어도 하나 이상의 태스크 중 어느 하나로부터 제공된 제2 접근 요청 신호를 저장하는 제2 입력 래치와, 상기 제1 입력 래치 및 상기 제2 입력 래치로부터 상기 제1 접근 요청 신호 및 상기 제2 접근 요청 신호를 제공받고 제1 접근 허용 신호 및 제2 접근 허용 신호를 배타적으로 제공하는 상태 제어부와, 상기 상태 제어부로부터 제공된 상기 제1 접근 허용 신호를 저장하는 제1 상태 래치 및 상기 상태 제어부로부터 제공된 상기 제2 접근 허용 신호를 저장하는 제2 상태 래치를 포함할 수 있다. Each of the plurality of semaphore cells includes a first input latch for storing a first access request signal provided from one of the first processor and the at least one task, and from any one of the second processor and the at least one task. A second input latch for storing a provided second access request signal, the first access request signal and the second access request signal being received from the first input latch and the second input latch and receiving a first access permission signal and a first access latch signal; A state control unit exclusively providing a second access permission signal, a first state latch storing the first access permission signal provided from the state control unit, and a second state latch storing the second access permission signal provided from the state control unit It may include.

상기 제1 입력 래치, 제2 입력 래치 및 상태 제어부는 S-R 래치로 구성될 수 있다. 상기 제1 상태 래치 및 제2 상태 래치는 D-플립플롭으로 구성될 수 있다. 상기 동기 제어부는 상기 세마포 셀의 주소를 디코딩하여 상기 복수의 세마포 셀 중 어느 하나의 세마포 셀을 선택하는 디코더와, 상기 세마포 셀의 주소를 선택입력으로 제공받고, 상기 선택입력에 기초하여 상기 선택된 세마포 셀의 출력라인과 데이터 버스를 연결하는 멀티플렉서와, 상기 세마포 셀의 주소를 선택입력으로 제공받고, 상기 선택입력에 기초하여 상기 데이터 버스와 상기 선택된 세마포 셀의 입력 라인을 연결하는 디멀티플렉서 및 활성화된 쓰기 제어 신호에 기초하여 상기 선택된 세마포 셀에 상기 접근 요청 신호의 쓰기 동작이 수행되도록 하는 3-상태 버퍼를 포함할 수 있다. 상기 디코더는 상기 세마포 셀의 주소 중 최하위 비트(LSB)로부터 상기 복수의 세마포 셀의 개수에 상응하는 개수 만큼의 주소 비트가 입력될 수 있다. 상기 메모리 어레이는 DRAM 셀 구조를 가질 수 있다. 상기 제1 메모리 인터페이스 및 상기 제2 메모리 인터페이스는 SDRAM 메모리 인터페이스가 될 수 있다. The first input latch, the second input latch, and the state controller may be configured as S-R latches. The first state latch and the second state latch may be configured as a D-flip flop. The synchronization controller is configured to decode an address of the semaphore cell and to select a semaphore cell among the plurality of semaphore cells, and to receive an address of the semaphore cell as a selection input, and to select the semaphore based on the selection input. A multiplexer for connecting an output line of the cell and a data bus, a demultiplexer for receiving an address of the semaphore cell as a selection input and for connecting the data bus and an input line of the selected semaphore cell based on the selection input and an activated write And a tri-state buffer for writing the access request signal to the selected semaphore cell based on a control signal. The decoder may input as many address bits as the number of the plurality of semaphore cells from the least significant bit (LSB) among the addresses of the semaphore cells. The memory array may have a DRAM cell structure. The first memory interface and the second memory interface may be SDRAM memory interfaces.

또한, 상술한 본 발명의 제2 목적을 달성하기 위한 본 발명의 일실시예에 따른 동기 제어 장치를 가지는 듀얼 포트 메모리 시스템은 제1 프로세서와, 제2 프로세서 및 복수의 공유 메모리 영역을 가지는 메모리 어레이와, 제1 프로세서로부터 제1 포트를 통해 제공된 어드레스 및 제어신호에 기초하여 상기 복수의 공유 메모리 영역에 대해 읽기 또는 쓰기 동작을 수행하는 제1 메모리 인터페이스와, 제2 프로세서로부터 제2 포트를 통해 제공된 어드레스 및 제어신호에 기초하여 상기 복수의 공유 메모리 영역에 읽기 또는 쓰기 동작을 수행하는 제2 메모리 인터페이스 및 상기 복수의 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 복수의 세마포 셀을 포함하고 상기 제1 프로세서 및 상기 제2 프로세서 중 어느 하나의 프로세서에서 실행되는 적어도 하나 이상의 태스크 각각이 접근하고자 하는 공유 메모리 영역에 대응되는 세마포 셀에 독립적으로 접근 요청 신호 및 접근 허용 신호의 입출력을 수행하도록 하는 동기 접근 제어부를 가지는 듀얼 포트 메모리를 포함한다. 상기 제1 프로세서는 모뎀 프로세서이고, 상기 제2 프로세서는 응용프로그램을 수 행하는 응용 프로세서가 될 수 있다. In addition, a dual-port memory system having a synchronous control apparatus according to an embodiment of the present invention for achieving the above-described second object of the present invention is a memory array having a first processor, a second processor and a plurality of shared memory areas. A first memory interface configured to perform a read or write operation on the plurality of shared memory regions based on an address and a control signal provided from a first processor through a first port, and provided through a second port from a second processor; A second memory interface performing a read or write operation on the plurality of shared memory regions based on an address and a control signal, and a plurality of semaphore cells controlling mutually exclusive access to the plurality of shared memory regions; At least running on any one of a processor and the second processor Each of the one or more tasks includes a dual port memory having a synchronous access control unit to perform input and output of the access request signal and the access permission signal independently of the semaphore cell corresponding to the shared memory region to be accessed. The first processor may be a modem processor, and the second processor may be an application processor for executing an application program.

또한, 상술한 본 발명의 제3 목적을 달성하기 위한 본 발명의 일실시예에 따른 듀얼 포트 메모리 시스템의 동기 제어 방법은 접근 하고자 하는 공유 메모리 영역에 대응되는 세마포 셀의 주소를 제공하는 단계와, 상기 제공된 세마포 셀의 주소를 디코딩하여 상기 세마포 셀을 선택하는 단계와, 상기 선택된 세마포 셀에 접근 요청 신호를 입력하거나 접근 허용 신호를 출력하는 단계를 포함한다. 상기 세마포 셀의 주소는 바이트 단위로 할당될 수 있다. 상기 제공된 세마포 셀의 주소를 디코딩하여 상기 세마포 셀을 선택하는 단계는, 상기 제공된 세마포 셀의 주소를 선택입력으로 하여 멀티플렉싱 및 디멀티플렉싱을 수행함으로써 상기 선택된 세마포 셀의 입출력 라인을 활성화하는 단계를 포함할 수 있다. 상기 선택된 세마포 셀에 접근 요청 신호를 입력하거나 접근 허용 신호를 출력하는 단계는, 쓰기 제어 신호가 활성화되면 상기 선택된 세마포 셀에 접근 요청 신호가 입력되고, 상기 쓰기 제어 신호가 비활성화되면 상기 선택된 세마포 셀로부터 접근 허용 신호가 출력될 수 있다.In addition, the synchronization control method of the dual-port memory system according to an embodiment of the present invention for achieving the third object of the present invention includes the steps of providing the address of the semaphore cell corresponding to the shared memory region to be accessed; Decoding the address of the provided semaphore cell to select the semaphore cell, and inputting an access request signal or outputting an access permission signal to the selected semaphore cell. The address of the semaphore cell may be allocated in byte units. Decoding the address of the provided semaphore cell and selecting the semaphore cell may include activating an input / output line of the selected semaphore cell by performing multiplexing and demultiplexing using the address of the provided semaphore cell as a selection input. Can be. The step of inputting an access request signal or outputting an access permission signal to the selected semaphore cell may include inputting an access request signal to the selected semaphore cell if a write control signal is activated, and from the selected semaphore cell if the write control signal is deactivated. An access permission signal may be output.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. As the invention allows for various changes and numerous embodiments, particular embodiments will be illustrated in the drawings and described in detail in the written description. However, this is not intended to limit the present invention to specific embodiments, it should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing the drawings, similar reference numerals are used for similar elements.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. Terms such as first and second 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. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and / or includes a combination of a plurality of related items or any item of a plurality of related items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that there is no other component in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting of the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in 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 describing the drawings, similar reference numerals are used for similar components.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 이하, 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, with reference to the accompanying drawings, it will be described in detail a preferred embodiment of the present invention. Hereinafter, the same reference numerals are used for the same components in the drawings, and duplicate descriptions of the same components are omitted.

도 2는 본 발명의 일실시예에 따른 동기 제어 장치를 가지는 듀얼 포트 메모리 시스템의 구성을 나타내는 블록도이다.2 is a block diagram illustrating a configuration of a dual port memory system having a synchronous control device according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일실시예에 따른 듀얼 포트 메모리 시스템은 제1 프로세서(110), 제2 프로세서(120), 제1 외부 버스 인터페이스(130)(External Bus Interface: EBI), 제2 외부 버스 인터페이스(140) 및 듀얼 포트 메모리(200)를 포함하여 구성된다.2, a dual port memory system according to an embodiment of the present invention may include a first processor 110, a second processor 120, a first external bus interface 130 (EBI), and a first processor 110. 2 includes an external bus interface 140 and a dual port memory 200.

그리고, 듀얼 포트 메모리(200)는 메모리 셀 어레이(210), 제1 메모리 인터페이스(220), 제2 메모리 인터페이스(230), 동기 접근 제어부(295)를 포함한다. 메모리 셀 어레이(210)는 제1 내지 제4 공유 메모리 영역(211 내지 217)을 포함한다. The dual port memory 200 includes a memory cell array 210, a first memory interface 220, a second memory interface 230, and a synchronous access controller 295. The memory cell array 210 may include first to fourth shared memory areas 211 to 217.

제1 프로세서(110)는 핸드폰과 같은 휴대용 단말기에 사용되는 모뎀 프로세서가 될 수 있고, 제2 프로세서(120)는 휴대용 단말기에서 사용되는 비디오 프로세서, 멀티미디어 프로세서 등과 같은 응용프로그램을 수행하기 위한 응용 프로세서가 될 수 있다.The first processor 110 may be a modem processor used in a portable terminal such as a mobile phone, and the second processor 120 may be an application processor for executing an application program such as a video processor or a multimedia processor used in the portable terminal. Can be.

제1 외부 버스 인터페이스(130) 및 제2 외부 버스 인터페이스(140)는 일종의 메모리 컨트롤러(memory controller) 역할을 수행하며 SDRAM(Synchronous DRAM) 또는 PSRAM(Pseudo SRAM)의 외부 버스 인터페이스가 사용될 수 있다. 이하 본 발명의 일실시예에서는 제1 외부 버스 인터페이스(130) 및 제2 외부 버스 인터페이스(140)는 SDRAM 외부 버스 인터페이스인 것으로 가정한다.The first external bus interface 130 and the second external bus interface 140 serve as a kind of memory controller, and an external bus interface of a synchronous DRAM (SDRAM) or a pseudo SRAM (PSRAM) may be used. Hereinafter, in an embodiment of the present invention, it is assumed that the first external bus interface 130 and the second external bus interface 140 are SDRAM external bus interfaces.

듀얼 포트 메모리(200)는 제1 포트(150)를 통해 제1 외부 버스 인터페이스(130)를 가지는 제1 프로세서(110)와 연결되고, 제2 포트(160)를 통해 제2 외부 버스 인터페이스(140)를 가지는 제2 프로세서(120)와 연결된다.The dual port memory 200 is connected to the first processor 110 having the first external bus interface 130 through the first port 150, and the second external bus interface 140 through the second port 160. It is connected to the second processor 120 having a).

제1 프로세서(110)는 듀얼 포트 메모리(200)의 제1 포트(150)를 통하여 주소(ADD1), 복수의 제어신호들(CTR1) 및 클럭(CLK1)을 듀얼 포트 메모리(200)에 제공하고, 듀얼 포트 메모리(200)는 제1 포트(150) 및 제1 외부 버스 인터페이스(130)를 사용하여 제1 프로세서(110)와 데이터(DQ1)의 입출력을 수행한다.The first processor 110 provides the address ADD1, the plurality of control signals CTR1 and the clock CLK1 to the dual port memory 200 through the first port 150 of the dual port memory 200. The dual port memory 200 performs input / output of the first processor 110 and the data DQ1 using the first port 150 and the first external bus interface 130.

또한, 제2 프로세서(120)는 듀얼 포트 메모리(200)의 제2 포트(160)를 통하여 주소(ADD2), 복수의 제어신호들(CTR2) 및 클럭(CLK2)을 듀얼 포트 메모리(200)에 제공하고, 듀얼 포트 메모리(200)는 제2 포트(160) 및 제2 외부 버스 인터페이스(140)를 사용하여 제2 프로세서(120)와 데이터(DQ2)의 입출력을 수행한다.In addition, the second processor 120 transmits the address ADD2, the plurality of control signals CTR2, and the clock CLK2 to the dual port memory 200 through the second port 160 of the dual port memory 200. The dual port memory 200 performs input / output of the second processor 120 and the data DQ2 using the second port 160 and the second external bus interface 140.

메모리 셀 어레이(210)는 DRAM의 단위 메모리 셀 구조를 가지고 제1 내지 제4 공유 메모리 영역(211 내지 217)을 포함한다. 제1 내지 제4 공유 메모리 영역(211 내지 217) 각각은 소정 크기를 가지는 뱅크(bank) 단위로 형성될 수 있다. 또한 하나의 뱅크 내에서 소정 크기를 가지는 블록(block) 단위로 각각의 공유 메모리 영역이 구성될 수도 있다. The memory cell array 210 has a unit memory cell structure of a DRAM and includes first to fourth shared memory regions 211 to 217. Each of the first to fourth shared memory areas 211 to 217 may be formed in a bank unit having a predetermined size. In addition, each shared memory area may be configured in units of blocks having a predetermined size in one bank.

또한, 본 발명의 다른 실시예에 따른 듀얼 포트 메모리 시스템에서는 메모리 셀 어레이(210)에 제1 프로세서(110) 및 제2 프로세서(120)가 각각 독립적으로 접 근할 수 있는 복수의 제1 프로세서(110) 전용 메모리 영역(미도시) 및 복수의 제2 프로세서(120) 전용 메모리 영역(미도시)이 포함될 수도 있다. In addition, in the dual port memory system according to another exemplary embodiment, the plurality of first processors 110 to which the first processor 110 and the second processor 120 independently access the memory cell array 210 may be provided. A dedicated memory area (not shown) and a plurality of dedicated memory areas (not shown) of the plurality of second processors 120 may be included.

도 2에 도시한 본 발명의 일실시예에 따른 듀얼 포트 메모리 시스템에서는 제1 내지 제4 공유 메모리 영역(211 내지 217)이 존재하는 것으로 도시하였으나, 본 발명의 다른 실시예에서는 더 많은 수의 공유 메모리 영역이 마련될 수도 있고, 더 적은 수의 공유 메모리 영역이 마련될 수도 있다.In the dual port memory system according to the exemplary embodiment of the present invention illustrated in FIG. 2, the first to fourth shared memory regions 211 to 217 are present. However, in another exemplary embodiment, a greater number of shares are provided. Memory areas may be provided, or fewer shared memory areas may be provided.

제1 메모리 인터페이스(220)는 SDRAM 메모리 인터페이스로 구성되고, 제1 포트(150)를 통하여 제1 프로세서(110)로부터 주소(ADD1), 제어신호(CTR1), 클럭(CLK1) 및 데이터(DQ1)를 입력받고, 주소(ADD1)를 로우 어드레스와 컬럼 어드레스로 디코딩한 후 디코딩된 어드레스(I_AD1)를 메모리 셀 어레이(210)로 출력하고 메모리 셀 어레이(210)의 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터(DQ1)를 메모리 셀 어레이(210)로부터 독출하거나 메모리 셀 어레이(210)에 기록한다.The first memory interface 220 is configured as an SDRAM memory interface, and has an address ADD1, a control signal CTR1, a clock CLK1, and data DQ1 from the first processor 110 through the first port 150. , Decodes the address ADD1 into a row address and a column address, outputs the decoded address I_AD1 to the memory cell array 210, and reads, writes, and refreshes an operation timing of the memory cell array 210. The data DQ1 is read from the memory cell array 210 or written to the memory cell array 210.

이를 위해 제1 메모리 인터페이스(220)에는 일반적인 SDRAM 인터페이스에서 사용되는 명령 디코더(Command decoder)(미도시), 로우 디코더(Row decoder) (미도시), 컬럼 디코더(Column decoder)(미도시) 및 입출력 버퍼(미도시) 등을 포함될 수 있다.To this end, the first memory interface 220 includes a command decoder (not shown), a row decoder (not shown), a column decoder (not shown), and input / output used in a general SDRAM interface. A buffer (not shown) may be included.

제2 메모리 인터페이스(230)는 SDRAM 메모리 인터페이스로 구성되고, 제2 포트(160)를 통하여 제2 프로세서(120)로부터 어드레스(ADD2), 제어신호(CTR2), 클럭(CLK2) 및 데이터(DQ2)를 입력받고, 어드레스(ADD2)를 로우 어드레스와 컬럼 어 드레스로 디코딩한 후 디코딩된 어드레스(I_AD2)를 메모리 셀 어레이(210)로 출력하고 메모리 셀 어레이(210)의 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터(DQ2)를 메모리 셀 어레이(210)로부터 독출하거나 메모리 셀 어레이(210)에 기록한다.The second memory interface 230 is configured as an SDRAM memory interface, and includes an address ADD2, a control signal CTR2, a clock CLK2, and data DQ2 from the second processor 120 through the second port 160. After inputting the signal, the address ADD2 is decoded into a row address and a column address, and then the decoded address I_AD2 is output to the memory cell array 210, and operations such as reading, writing, and refreshing the memory cell array 210 are performed. The data DQ2 is read from or written to the memory cell array 210 according to the timing.

이를 위해 제2 메모리 인터페이스(230)에는 일반적인 SDRAM 인터페이스에서 사용되는 명령 디코더(미도시), 로우 디코더(미도시), 컬럼 디코더(미도시) 및 입출력 버퍼(미도시) 등이 포함될 수 있다.To this end, the second memory interface 230 may include a command decoder (not shown), a row decoder (not shown), a column decoder (not shown), an input / output buffer (not shown) used in a general SDRAM interface, and the like.

동기접근 제어부(295)는 복수의 공유 메모리 영역(211 내지 217)에 대한 상호 배타적 접근을 제어하는 복수의 세마포 셀(260 내지 290)을 포함하고, 상기 제1 프로세서(110) 또는 상기 제2 프로세서(120)에서 복수의 태스크가 실행되는 경우, 각각의 태스크가 접근하고자 하는 공유 메모리 영역에 대응되는 세마포 셀에 독립적으로 접근 요청 신호 및 접근 허용 신호의 입출력을 수행하도록 한다.The synchronous access control unit 295 includes a plurality of semaphore cells 260 to 290 for controlling mutually exclusive access to a plurality of shared memory areas 211 to 217, and the first processor 110 or the second processor. When a plurality of tasks are executed at 120, each task may perform input / output of an access request signal and an access permission signal independently of a semaphore cell corresponding to a shared memory area to which each task is to be accessed.

동기 접근 제어부(295)는 동기제어부(240) 및 하드웨어 세마포(250)를 포함할 수 있다.The synchronous access controller 295 may include a synchronous controller 240 and a hardware semaphore 250.

동기 제어부(240)는 제1 프로세서(110) 및 제2 프로세서(120)로부터 하드웨어 세마포(250)에 포함된 세마포 셀(260 내지 290)의 각각의 어드레스를 입력받고, 입력받은 어드레스를 디코딩하여 세마포 셀(260 내지 290)의 입출력 라인을 개별적으로 활성화 시키고, 쓰기 제어 신호(/WE)에 따라 입출력 라인이 활성화된 세마포 셀(260 내지 290)에 데이터(DQ1, DQ2)를 입력 또는 출력시킨다.The synchronization controller 240 receives respective addresses of the semaphore cells 260 to 290 included in the hardware semaphore 250 from the first processor 110 and the second processor 120, decodes the received address, and then decodes the semaphore. The input / output lines of the cells 260 to 290 are individually activated, and data DQ1 and DQ2 are input or output to the semaphore cells 260 to 290 where the input / output lines are activated according to the write control signal / WE.

여기서 각각의 세마포 셀(260 내지 290)에 입력되는 데이터(DQ1, DQ2)는 제1 프로세서(110) 또는 제2 프로세서(120)로부터 제공된 공유 메모리 영역(211 내지 217)에 대한 접근 요청 신호(REQ1, REQ2)이고 각각의 세마포 셀(260 내지 290)로부터 출력되는 데이터(DQ1, DQ2)는 공유 메모리 영역(211 내지 217)에 대한 접근 허용 신호(RDY1, RDY2)이다.Herein, the data DQ1 and DQ2 input to each semaphore cell 260 through 290 are access request signals REQ1 for the shared memory areas 211 through 217 provided from the first processor 110 or the second processor 120. And REQ2) and the data DQ1 and DQ2 output from the semaphore cells 260 to 290 are access permission signals RDY1 and RDY2 to the shared memory areas 211 to 217.

또한, 동기 제어부(240)는 제1 프로세서(110) 및 제2 프로세서(120) 중 어느 하나의 프로세서에서 복수의 태스크가 실행될 때, 각 태스크로부터 하드웨어 세마포(250)에 포함된 세마포 셀(260 내지 290)의 각각의 어드레스를 입력받고, 입력받은 어드레스를 디코딩하여 세마포 셀(260 내지 290)의 입출력 라인을 개별적으로 활성화 시키고, 쓰기 제어 신호(/WE)에 따라 입출력 라인이 활성화된 세마포 셀(260 내지 290)에 데이터(DQ1, DQ2)를 입력 또는 출력시킨다.In addition, the synchronization controller 240 may include the semaphore cells 260 to 260 included in the hardware semaphore 250 from each task when a plurality of tasks are executed in any one of the first processor 110 and the second processor 120. Each address of 290 is input, the inputted address is decoded to individually activate the input / output lines of the semaphore cells 260 to 290, and the semaphore cell 260 on which the input / output line is activated according to the write control signal / WE. 290 to 290 to input or output data DQ1 and DQ2.

여기서, 각각의 세마포 셀(260 내지 290)에 입력되는 데이터(DQ1, DQ2)는 제1 프로세서(110) 및 제2 프로세서(120) 중 어느 하나의 프로세서에서 실행되는 각각의 태스크로부터 제공된 공유 메모리 영역(211 내지 217)에 대한 접근 요청 신호(REQ1, REQ2)이고 각각의 세마포 셀(260 내지 290)로부터 출력되는 데이터(DQ1, DQ2)는 공유 메모리 영역(211 내지 217)에 대한 접근 허용 신호(RDY1, RDY2)이다.Here, the data DQ1 and DQ2 input to each semaphore cell 260 to 290 are shared memory regions provided from respective tasks executed in any one of the first processor 110 and the second processor 120. The access request signals REQ1 and REQ2 to the 211 to 217 and the data DQ1 and DQ2 output from the semaphore cells 260 to 290 are access permission signals RDY1 to the shared memory areas 211 to 217. , RDY2).

예를 들어, 접근 요청 신호(REQ1, REQ2)는 제1 프로세서(110) 및 제2 프로세서(120) 또는 태스크가 소정의 공유 메모리 영역(211 내지 217)에 접근하고자 할 때는 논리값 '0'이 되고, 소정의 공유 메모리 영역(211 내지 217)에 접근한 프로세서 또는 태스크가 접근을 종료하고자 할 때는 논리값 '1'이 된다.For example, the access request signals REQ1 and REQ2 may have a logic value of '0' when the first processor 110 and the second processor 120 or the task attempt to access a predetermined shared memory area 211 to 217. When the processor or task that has accessed the predetermined shared memory areas 211 to 217 intends to terminate the access, the logical value is '1'.

또한, 각각의 세마포 셀(260 내지 290)로부터 출력되는 접근 허용 신 호(RDY1, RDY2)는 각각의 세마포 셀(260 내지 290)에 대응되는 공유 메모리 영역(211 내지 217)에 프로세서 또는 태스크가 접근하지 않은 상태이면 접근이 가능함을 나타내는 논리값 '0'이 되고, 상기 공유 메모리 영역(211 내지 217)이 다른 프로세서 또는 태스크에 의해 접근중이면 접근이 불가능함을 나타내는 논리값 '1'이 된다.In addition, the access permission signals RDY1 and RDY2 output from the semaphore cells 260 to 290 may access a shared memory area 211 to 217 corresponding to each semaphore cell 260 to 290. If it is not, the logical value '0' indicating access is possible, and if the shared memory areas 211 to 217 are accessed by another processor or task, the logical value '1' indicates that access is impossible.

하드웨어 세마포(250)는 공유 메모리 영역(211 내지 217)의 개수와 동일한 개수의 세마포 셀(260 내지 290)을 포함하고, 각각의 세마포 셀(260 내지 290)은 각각의 공유 메모리 영역(211 내지 217)과 일대일로 대응된다. The hardware semaphore 250 includes the same number of semaphore cells 260-290 as the number of shared memory areas 211-217, and each semaphore cell 260-290 has each shared memory area 211-217. ) And one-to-one correspondence.

즉, 제1 공유 메모리 영역(211)은 제1 세마포 셀(260)과 대응되고, 제2 공유 메모리 영역(213)은 제2 세마포 셀(270)과 대응된다. 또한, 제3 공유 메모리 영역(215) 및 제4 공유 메모리 영역(217)은 각각 제3 세마포 셀(280) 및 제4 세마포 셀(290)과 대응된다.That is, the first shared memory area 211 corresponds to the first semaphore cell 260, and the second shared memory area 213 corresponds to the second semaphore cell 270. In addition, the third shared memory area 215 and the fourth shared memory area 217 correspond to the third semaphore cell 280 and the fourth semaphore cell 290, respectively.

본 발명의 일실시예에 따른 듀얼 포트 메모리 및 듀얼 포트 메모리 시스템에서는 제1 내지 제4 세마포 셀(260 내지 290) 각각은 바이트 단위의 개별적인 어드레스가 할당되고, 동기 제어부(240)의 제어에 따라 각각의 세마포 셀(260 내지 290)에 대한 데이터(DQ1, DQ2)의 독립적인 입출력이 가능하다.In the dual port memory and the dual port memory system according to an embodiment of the present invention, each of the first to fourth semaphore cells 260 to 290 is assigned an individual address in units of bytes, and under the control of the synchronization controller 240, respectively. Independent input and output of data DQ1 and DQ2 to semaphore cells 260 to 290 of FIG.

각각의 세마포 셀(260 내지 290)은 대응되는 공유 메모리 영역(211 내지 217)에 대한 제1 프로세서(110) 및 제2 프로세서(120) 상호간의 상호 배타적 접근을 제어함으로써 프로세서간 동기화된 작업을 보장한다.Each semaphore cell 260-290 controls mutually exclusive access between the first processor 110 and the second processor 120 to the corresponding shared memory areas 211-217 to ensure inter-processor synchronized work. do.

또한, 각각의 세마포 셀(260 내지 290)은 제1 프로세서(110) 및 제2 프로세 서(120) 중 어느 하나의 프로세서에 의해 실행되는 복수의 태스크와 다른 프로세서 간에도 공유 메모리 영역(211 내지 217)에 상호 배타적으로 접근하도록 제어함으로써 복수의 태스크와 프로세서간의 동기화된 작업을 보장한다.In addition, each semaphore cell 260 through 290 may share a shared memory area 211 through 217 between a plurality of tasks executed by any one of the first processor 110 and the second processor 120 and another processor. Control mutually exclusive access to ensure the synchronized work between multiple tasks and processors.

도 3a는 도 2에 도시된 세마포 셀의 상세한 구성을 나타내는 블록도로서, 하드웨어 세마포(250)에 포함된 제1 내지 제4 세마포 셀(260 내지 290) 중에서 제1 세마포 셀(260)을 나타낸다. 제2 내지 제4 세마포 셀(270 내지 290)은 제1 세마포 셀(260)과 동일한 구조를 가진다.FIG. 3A is a block diagram illustrating a detailed configuration of the semaphore cell illustrated in FIG. 2, and illustrates a first semaphore cell 260 among the first to fourth semaphore cells 260 to 290 included in the hardware semaphore 250. The second to fourth semaphore cells 270 to 290 have the same structure as the first semaphore cell 260.

도 3a를 참조하면, 제1 세마포 셀(260)은 제1 입력 래치(261), 제2 입력 래치(262), 상태 제어부(263), 제1 상태 래치(264) 및 제2 상태 래치(265)를 포함한다.Referring to FIG. 3A, the first semaphore cell 260 includes a first input latch 261, a second input latch 262, a state control unit 263, a first state latch 264, and a second state latch 265. ).

제1 입력 래치(261)는 제1 프로세서(110)로부터 제1 메모리 인터페이스(220)를 통해 제공된 제1 공유 메모리 영역(211)에 대한 접근 요청 신호(REQ1)를 제공받고, 제공된 접근 요청 신호(REQ1)를 래치하여 저장한다. The first input latch 261 receives an access request signal REQ1 for the first shared memory area 211 provided through the first memory interface 220 from the first processor 110, and provides the provided access request signal ( REQ1) is latched and stored.

제2 입력 래치(262)는 제2 프로세서(120)로부터 제2 메모리 인터페이스(230)를 통해 제1 공유 메모리 영역(211)에 대한 접근 요청 신호(REQ2)를 제공받고, 제공된 접근 요청 신호(REQ2)를 래치하여 저장한다. 여기서, 제1 입력 래치(261) 및 제2 입력 래치(262)는 S-R 래치로 구성될 수 있다.The second input latch 262 receives the access request signal REQ2 for the first shared memory area 211 from the second processor 120 through the second memory interface 230, and provides the provided access request signal REQ2. ) To latch and save. Here, the first input latch 261 and the second input latch 262 may be configured as an S-R latch.

제1 프로세서(110) 및 제2 프로세서(120)가 제1 공유 메모리 영역(211)에 접근하기 위한 접근 요청 신호(REQ1, REQ2)는 논리값 '0'이 될 수 있고, 제1 프로세서(110) 및 제2 프로세서(120)가 공유 메모리 영역(217)에 대한 접근을 종료하면 접근 요청 신호(REQ1, REQ2)는 논리값 '1'이 될 수 있다.The access request signals REQ1 and REQ2 for the first processor 110 and the second processor 120 to access the first shared memory area 211 may be logical values '0', and the first processor 110 may be used. ) And the second processor 120 terminate the access to the shared memory area 217, the access request signals REQ1 and REQ2 may be logical values '1'.

상태 제어부(263)는 제1 입력 래치(261) 및 제2 입력 래치(262)에 래치된 접근 요청 신호(REQ1, REQ2)를 입력받고, 현재의 상태에 따라 배타적인 접근 허용 신호(RDY1, RDY2)를 제1 상태 래치(264) 및 제2 상태 래치(265)에 제공한다. 여기서 상태 제어부(263)는 S-R 래치로 구성될 수 있다.The state controller 263 receives the access request signals REQ1 and REQ2 latched to the first input latch 261 and the second input latch 262, and exclusive access permission signals RDY1 and RDY2 according to the current state. ) Is provided to the first state latch 264 and the second state latch 265. In this case, the state controller 263 may be configured as an S-R latch.

제1 상태 래치(264)는 상태 제어부(263)로부터 제공된 접근 허용 신호(RDY1)를 래치하여 저장하고, 제2 상태 래치(265)는 상태 제어부(263)로부터 제공된 접근 허용 신호(RDY2)를 래치하여 저장한다. 여기서, 제1 상태 래치(264) 및 제2 상태 래치(265)는 D-플립플롭으로 구현될 수 있다.The first state latch 264 latches and stores the access permission signal RDY1 provided from the state control unit 263, and the second state latch 265 latches the access permission signal RDY2 provided from the state control unit 263. Save it. Here, the first state latch 264 and the second state latch 265 may be implemented as a D-flip flop.

도 3b는 도 3a에 도시된 세마포 셀의 동작을 나태내는 상태표이다.FIG. 3B is a state table illustrating the operation of the semaphore cell shown in FIG. 3A.

도 3a 및 3b를 참조하면, 먼저 시간 t0에서 듀얼 포트 시스템이 초기화 되면 제1 세마포 셀(260)의 제1 상태 래치(264) 및 제2 상태 래치(265)에서 출력되는 접근 허용 신호(RDY1, RDY2)는 각각 논리값 '1', '1'이 된다. 3A and 3B, when the dual port system is initialized at time t0, the access permission signals RDY1, which are output from the first state latch 264 and the second state latch 265 of the first semaphore cell 260, are output. RDY2) becomes logical values '1' and '1', respectively.

이후, 시간 t1에서 제1 프로세서(110)가 제1 공유 메모리 영역(211)에 대한 접근 요청 신호(REQ1)로 논리값 '0'을 제1 세마포 셀(260)의 제1 입력 래치(261)에 전송하게 되면, 상태 제어부(263)는 접근 허용 신호(RDY1)로 논리값 '0'을 제1 상태 래치(264)에 제공하게 되고, 제1 상태 래치(264)에 저장된 접근 허용 신호(RDY1)는 동기 제어부(240)의 제어에 의해 제1 프로세서(110)에게 전송되어 제1 프로세서(110)는 제1 공유 메모리 영역(211)에 접근하게 된다.Subsequently, at time t1, the first processor 110 sets a logic value '0' as the access request signal REQ1 for the first shared memory area 211 to the first input latch 261 of the first semaphore cell 260. In this case, the state controller 263 provides a logic value '0' to the first state latch 264 as an access permission signal RDY1, and the access permission signal RDY1 stored in the first state latch 264. ) Is transmitted to the first processor 110 under the control of the synchronization controller 240 so that the first processor 110 approaches the first shared memory area 211.

그리고, 시간 t2에서 제2 프로세서(120)가 제1 공유 메모리 영역(211)에 대 한 접근 요청 신호(REQ2)로 논리값 '0'을 제1 세마포 셀(260)의 제2 입력 래치(262)에 전송하게 되면, 상태 제어부(263)는 제1 공유 메모리 영역(211)에 현재 제1 프로세서(110)가 접근 중이기 때문에 제2 상태 래치(265)에 저장된 접근 허용 신호(RDY2)를 변화시키지 않고, 제2 프로세서(120)가 전송한 접근 요청 신호(REQ2)는 제2 입력 래치(262)에 래치된 상태로 있게 된다. In operation t2, the second processor 120 sets a logic value '0' as the access request signal REQ2 for the first shared memory area 211 to the second input latch 262 of the first semaphore cell 260. ), The state controller 263 does not change the access permission signal RDY2 stored in the second state latch 265 because the first processor 110 is currently approaching the first shared memory area 211. Instead, the access request signal REQ2 transmitted by the second processor 120 remains latched by the second input latch 262.

따라서, 제2 프로세서(120)에 대한 접근 허용 신호(RDY2)는 여전히 논리값 '1'이 되고, 제2 프로세서(120)는 제1 공유 메모리 영역(211)에 접근할 수 없게 된다.Accordingly, the access permission signal RDY2 for the second processor 120 is still a logic value '1', and the second processor 120 cannot access the first shared memory area 211.

시간 t3에서 제1 프로세서(110)가 제1 공유 메모리 영역(211)에 대한 접근을 종료하고 접근 요청 신호(REQ1)로 논리값 '1'을 제1 입력 래치(261)에 전송하게 되면, 상태 제어부(263)는 제1 상태 래치(264) 및 제2 상태 래치(264)에 저장된 접근 허용 신호(RDY1, RDY2)를 변화시키게 되어 접근 허용 신호(RDY1, RDY2)는 각각 논리값 '1', '0'이 된다. When the first processor 110 terminates the access to the first shared memory area 211 at time t3 and transmits a logic value '1' to the first input latch 261 using the access request signal REQ1, the state The control unit 263 changes the access permission signals RDY1 and RDY2 stored in the first state latch 264 and the second state latch 264 so that the access permission signals RDY1 and RDY2 are logical values '1', respectively. Is '0'.

그리고, 상태 변환된 접근 허용 신호(RDY1, RDY2)는 동기 제어부(240)의 제어에 의해 제1 프로세서(110) 및 제2 프로세서(120)에 전송되어, 제2 프로세서(120)가 제1 공유 메모리 영역(211)에 접근할 수 있게 된다.The state-converted access permission signals RDY1 and RDY2 are transmitted to the first processor 110 and the second processor 120 under the control of the synchronization controller 240, so that the second processor 120 shares the first share. The memory area 211 is accessible.

이후, 시간 t4에서 제1 프로세서(110)가 제1 공유 메모리 영역(211)에 대한 접근 요청 신호(REQ1)로 논리값 '0'을 제1 세마포 셀(260)의 제1 입력 래치(261)에 전송하게 되면 상태 제어부(263)는 제1 공유 메모리 영역(211)에 현재 제2 프로세서(120)가 접근 중이기 때문에 제1 상태 래치(264)에 저장된 접근 허용 신호(RDY1) 를 변화시키지 않고, 제1 프로세서(110)가 전송한 접근 요청 신호(REQ1)는 제1 입력 래치(261)에 래치된 상태로 있게 된다. Subsequently, at time t4, the first processor 110 sets a logic value '0' as the access request signal REQ1 for the first shared memory area 211 to the first input latch 261 of the first semaphore cell 260. In this case, the state controller 263 does not change the access permission signal RDY1 stored in the first state latch 264 because the second processor 120 is currently approaching the first shared memory area 211. The access request signal REQ1 transmitted by the first processor 110 remains latched in the first input latch 261.

따라서, 제1 프로세서(110)에 대한 접근 허용 신호(RDY1)는 여전히 논리값 '1'이 되고, 제1 프로세서(110)는 제1 공유 메모리 영역(211)에 접근할 수 없게 된다.Therefore, the access permission signal RDY1 for the first processor 110 is still a logic value '1', and the first processor 110 cannot access the first shared memory area 211.

시간 t5에서 제2 프로세서(120)가 제1 공유 메모리 영역(211)에 대한 접근을 종료하고, 접근 요청 신호(REQ)로 논리값 '1'을 제2 입력 래치(262)에 전송하면 상태 제어부(263)는 제1 상태 래치(264) 및 제2 상태 래치(265)에 저장된 접근 허용 신호(RDY1, RDY2)를 변화시키고, 접근 허용 신호(RDY1, RDY2)는 각각 논리값 '0', '1'이 된다. 그리고, 변화된 접근 허용 신호(RDY1, RDY2)는 동기 제어부(240)의 제어에 의해 제1 프로세서(110) 및 제2 프로세서(120)에 전송되어, 제1 프로세서(110)가 제1 공유 메모리 영역(211)에 접근할 수 있게 된다.When the second processor 120 terminates the access to the first shared memory area 211 at time t5 and transmits a logic value '1' to the second input latch 262 by the access request signal REQ, the state controller 263 changes the access permission signals RDY1 and RDY2 stored in the first state latch 264 and the second state latch 265, and the access permission signals RDY1 and RDY2 are logical values' 0 'and', respectively. 1 '. In addition, the changed access permission signals RDY1 and RDY2 are transmitted to the first processor 110 and the second processor 120 under the control of the synchronization controller 240, so that the first processor 110 receives the first shared memory area. 211 can be accessed.

이후, 시간 t6에서 제1 프로세서(110)가 제1 공유 메모리 영역(211)에 대한 접근을 종료하고 접근 요청 신호(REQ1)로 논리값 '1'을 제1 입력 래치(261)에 전송하면 상태 제어부(263)는 이에 상응하여 제1 상태 래치(264)에 저장된 접근 허용 신호(RDY1)를 변화시키게 되고, 접근 허용 신호(RDY1)는 논리값 '1'이 된다.Thereafter, when the first processor 110 terminates the access to the first shared memory area 211 at time t6 and transmits a logic value '1' to the first input latch 261 using the access request signal REQ1, The control unit 263 changes the access permission signal RDY1 stored in the first state latch 264 accordingly, and the access permission signal RDY1 becomes a logic value '1'.

도 4a는 도 2에 도시된 동기 제어 장치의 상세한 구성을 나타내는 회로도이고, 도 4b는 동기 제어 장치의 동작을 나타내는 진리표이다.FIG. 4A is a circuit diagram showing the detailed configuration of the synchronization control device shown in FIG. 2, and FIG. 4B is a truth table showing the operation of the synchronization control device.

도 4a에 도시된 동기 제어 장치(240)는 도 2에 도시된 듀얼 포트 메모리 시스템의 제1 포트(150) 및 제2 포트(160) 중에서 제1 포트(150)와 연결된 것만을 도 시하였고, 동기 제어 장치(240)와 제2 포트(160)와의 연결도 도 4a에 도시된 바와 동일하다.4A illustrates only the one of the first port 150 and the second port 160 of the dual port memory system shown in FIG. 2 connected to the first port 150. The connection between the synchronous control device 240 and the second port 160 is also the same as that shown in FIG. 4A.

도 4a 및 4b를 참조하면, 본 발명의 일실시예에 따른 동기 제어 장치(240)는 디코더(241), 멀티플렉서(242), 디멀티플렉서(243) 및 복수의 3-상태 버퍼(245, 246)를 포함한다.4A and 4B, the synchronization control device 240 according to an embodiment of the present invention may include a decoder 241, a multiplexer 242, a demultiplexer 243, and a plurality of three-state buffers 245 and 246. Include.

디코더(241)는 어드레스 버스(247)를 통해 제공된 제1 내지 제4 세마포 셀(260 내지 290)의 어드레스를 디코딩하여 제1 내지 제4 세마포 셀(260 내지 290) 중 디코딩된 어드레스에 상응하는 세마포 셀의 입출력 라인에 연결된 3-상태 버퍼(245)를 인에이블(enable)함으로써, 인에이블된 세마포 셀에 데이터(DQ1)의 입출력이 가능하도록 한다. 여기서 세마포 셀에 입력되는 데이터(DQ1)는 접근 요청 신호(REQ1.1 내지 REQ1.4)가 되고, 세마포 셀로부터 출력되는 데이터(DQ1)는 접근 허용 신호(RDY1.1 내지 RDY1.4)가 된다.The decoder 241 decodes the addresses of the first to fourth semaphore cells 260 to 290 provided through the address bus 247 to correspond to the semaphores corresponding to the decoded addresses of the first to fourth semaphore cells 260 to 290. By enabling the three-state buffer 245 connected to the input / output line of the cell, the input / output of the data DQ1 is enabled to the enabled semaphore cell. Here, the data DQ1 input to the semaphore cell becomes the access request signals REQ1.1 to REQ1.4, and the data DQ1 output from the semaphore cell becomes the access permission signals RDY1.1 to RDY1.4. .

각각의 세마포 셀(260 내지 290)은 바이트 단위의 어드레스를 각각 가지며, 디코더(241)에 입력되는 어드레스는 세마포 셀의 어드레스 바이트 중 최하위 비트(Least Significant Bit)에서 세마포 셀의 개수에 상응하는 개수 만큼의 어드레스 비트가 입력된다.Each semaphore cell 260 to 290 has an address in byte units, and an address input to the decoder 241 is as many as the number of semaphore cells in the least significant bit of the address bytes of the semaphore cell. Address bits are input.

도 4a에서는 세마포 셀(260 내지 290)의 개수가 4개인 것으로 도시하였으므로 디코더(241)는 두 개의 입력 라인과 네 개의 출력 라인을 가지게 되고 디코의 두 개의 입력에는 세마포 셀의 어드레스 중에서 최하위 비트 A1 및 A0이 입력된다. 그리고, 디코더는 세마포 셀의 어드레스(A1, A0)를 디코딩하여 네 개의 출력(EN0 내지 EN3) 중에서 어느 하나를 인에이블 시킨다.In FIG. 4A, since the number of semaphore cells 260 through 290 is four, the decoder 241 has two input lines and four output lines, and the two inputs of the decoy have the least significant bits A1 and the addresses of the semaphore cells. A0 is entered. The decoder decodes the addresses A1 and A0 of the semaphore cell to enable any one of the four outputs EN0 to EN3.

멀티플렉서(242)는 세마포 셀의 어드레스(A1, A0)를 선택 입력으로 제공받고, 제공받은 어드레스(A1, A0)에 따라 멀티플렉싱을 수행하여 선택된 세마포 셀의 출력 라인과 데이터 버스(248)를 연결함으로써 출력 라인이 인에이블된 세마포 셀에서 출력된 데이터(DQ1)가 데이터 버스(248)로 출력되도록 한다. 여기서 출력된 데이터(DQ1)는 접근 허용 신호(RDY1.1 내지 RDY1.4)가 된다.The multiplexer 242 receives the addresses A1 and A0 of the semaphore cell as a selection input and performs multiplexing according to the provided addresses A1 and A0 to connect the output line and the data bus 248 of the selected semaphore cell. Data DQ1 output from the semaphore cell with the output line enabled is output to the data bus 248. The data DQ1 output here is the access permission signals RDY1.1 to RDY1.4.

디멀티플렉서(243)는 세마포 셀의 어드레스(A1, A0)를 선택 입력으로 제공받고, 제공받은 어드레스(A1, A0)에 따라 디멀티플렉싱을 수행하여 선택된 세마포 셀의 입력 라인과 데이터 버스(248)를 연결함으로써 데이터 버스(248)에서 제공된 데이터(DQ1)가 선택된 세마포 셀의 입력라인으로 제공되도록 한다.The demultiplexer 243 receives the addresses A1 and A0 of the semaphore cell as a selection input and performs demultiplexing according to the provided addresses A1 and A0 to connect the input line and the data bus 248 of the selected semaphore cell. As a result, the data DQ1 provided from the data bus 248 is provided to the input line of the selected semaphore cell.

멀티플렉서(242) 및 디멀티플렉서(243)는 동일한 세마포 셀의 어드레스(A1, A0)를 각각의 선택 입력으로 제공받기 때문에 세마포 셀의 어드레스(A1, A0)에 따라 동일한 세마포 셀에 대한 데이터(DQ1)의 입출력이 가능하도록 멀티플렉싱 및 디멀티플렉싱을 수행한다.Since the multiplexer 242 and the demultiplexer 243 are provided with the addresses A1 and A0 of the same semaphore cell as respective selection inputs, the data DQ1 of the data for the same semaphore cell is determined according to the addresses A1 and A0 of the semaphore cell. Multiplexing and demultiplexing are performed to enable input and output.

또한, 동기 제어 장치(240)는 쓰기 제어 신호(/WE)에 상응하여 선택된 세마포 셀에 대한 데이터(DQ1)의 입출력을 결정한다. 쓰기 제어 신호(/WE)가 활성화되면 선택된 세마포 셀에 대한 데이터(DQ1)의 입력 즉, 쓰기 동작이 수행되고, 쓰기 제어 신호(/WE)가 비활성화되면 선택된 세마포 셀에 대한 데이터(DQ1)의 출력 즉, 읽기 동작이 수행된다.In addition, the synchronization control device 240 determines the input and output of the data DQ1 for the semaphore cell selected according to the write control signal / WE. When the write control signal / WE is activated, input of data DQ1 for the selected semaphore cell, that is, a write operation is performed, and when the write control signal / WE is deactivated, output of the data DQ1 for the selected semaphore cell. That is, a read operation is performed.

도 4b에 도시된 진리표를 참조하여 동기 제어 장치(240)의 동작의 일 예를 들면, 어드레스 버스(247)를 통해 입력된 세마포 셀의 어드레스(A1, A0)가 논리값 '1, 0'이고, 쓰기 제어 신호(/WE)가 논리값 '0'이라면 디코더(241)는 논리값 '1, 0'을 디코딩하여 출력(EN2)을 활성화시킴으로써 제3 세마포 셀(280)이 선택되도록 한다.As an example of the operation of the synchronization control device 240 with reference to the truth table shown in FIG. 4B, the addresses A1 and A0 of the semaphore cells input through the address bus 247 are logical values '1, 0'. When the write control signal / WE is a logic value '0', the decoder 241 decodes the logic values '1 and 0' to activate the output EN2 so that the third semaphore cell 280 is selected.

또한, 디멀티플렉서(243)는 세마포 셀의 어드레스(A1, A0)인 논리값 '1, 0'을 선택 입력으로 제공받고 디멀티플렉싱을 수행하여 데이터 버스(248)로부터 제공된 데이터(DQ1)인 접근 요청 신호(REQ1.3)를 제3 세마포 셀(280)의 입력 라인에 제공한다.In addition, the demultiplexer 243 receives a logic value '1, 0', which is the address A1, A0, of the semaphore cell as a selection input and performs demultiplexing to access the access request signal, which is the data DQ1 provided from the data bus 248. (REQ1.3) to the input line of the third semaphore cell 280.

그리고, 쓰기 제어 신호(/WE)인 논리값 '0'에 의해 데이터(DQ1)의 입력 라인이 활성화되어 데이터 버스(248)에서 디멀티플렉서(243)를 통해 제공된 접근 요청 신호(REQ1.3)는 제3 세마포 셀(280)에 입력된다.In addition, the input line of the data DQ1 is activated by the logic value '0', which is the write control signal / WE, so that the access request signal RE1.3 provided through the demultiplexer 243 on the data bus 248 is generated. 3 is input to the semaphore cell 280.

도 4a 및 4b에 도시된 바와 같이 본 발명의 일실시예에서는 각 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 세마포 셀(260 내지 290)의 어드레스를 각각 별도로 지정하고, 세마포 셀의 어드레스(A1, A0)에 따라 각 세마포 셀을 별도로 선택하여 선택된 세마포 셀에 접근 요청 신호(REQ1, REQ2) 및 접근 허용 신호(RDY1, RDY2)를 입출력 함으로써 프로세서 및 태스크간의 동기화된 작업을 보장한다.As shown in FIGS. 4A and 4B, according to an embodiment of the present invention, addresses of semaphore cells 260 to 290 which control mutually exclusive access to each shared memory area are separately designated, and addresses of the semaphore cells (A1, According to A0), each semaphore cell is separately selected to input and output the access request signals REQ1 and REQ2 and the access permission signals RDY1 and RDY2 to the selected semaphore cell to ensure synchronized work between the processor and the task.

도 5는 본 발명의 일실시예에 따른 듀얼 포트 메모리 시스템의 동기 제어 방법을 설명하기 위한 상태표로서, 제1 태스크 및 제2 태스크가 제1 프로세서(110)에 의해 실행되고 제1 태스크 및 제2 태스크 사이에 문맥 전환(context switching)이 발생한 경우의 제1 내지 제4 세마포 셀(260 내지 290)의 상태를 나타낸다.FIG. 5 is a state table for describing a synchronous control method of a dual port memory system according to an exemplary embodiment of the present invention, wherein a first task and a second task are executed by the first processor 110, and the first task and the first task are illustrated in FIG. The state of the first to fourth semaphore cells 260 to 290 when context switching occurs between two tasks is shown.

먼저, 시간 t0에서 제1 내지 제4 세마포 셀(260 내지 290)의 각각의 제1 입력 래치(261 내지 291)는 논리값 '0, 1, 0, 1'을 가지고 제1 내지 제4 세마포 셀(260 내지 290)의 각각의 제1 상태 래치(264 내지 294)는 논리값 '0, 1, 0, 1'을 가진다. First, each of the first input latches 261 to 291 of the first to fourth semaphore cells 260 to 290 at the time t0 has the logic values '0, 1, 0, 1' and the first to fourth semaphore cells. Each first state latch 264-294 of 260-290 has a logic value of '0, 1, 0, 1'.

시간 t0에서 제1 태스크가 제2 공유 메모리 영역(213)에 대한 접근을 위해 제2 공유 메모리 영역(213)에 대응되는 제2 세마포 셀(270)의 제1 상태 래치(274)에 저장된 접근 허용 신호(RDY1)인 논리값 '1'을 읽는다.At time t0, the first task grants access stored in the first state latch 274 of the second semaphore cell 270 corresponding to the second shared memory area 213 to access the second shared memory area 213. Read logical value '1' which is signal RDY1.

시간 t1에서 문맥 전환이 발생하여 제2 태스크가 제4 공유 메모리 영역(217)에 접근하기 위해 제4 공유 메모리 영역(217)에 대응되는 제4 세마포 셀(290)의 제1 상태 래치(294)에 저장된 접근 허용 신호(RDY1)인 논리값 '1'을 읽는다.The first state latch 294 of the fourth semaphore cell 290 corresponding to the fourth shared memory region 217 so that the context switch occurs at time t1 so that the second task may access the fourth shared memory region 217. Read the logical value '1' which is the access permission signal (RDY1) stored in the system.

그리고, 시간 t2에서 제2 태스크는 제4 공유 메모리 영역(217)에 대한 접근 요청 신호(REQ1)인 논리값 '0'을 제4 세마포 셀(290)의 제1 입력 래치(291)에 전송하고, 제4 공유 메모리 영역(217)에 제2 프로세서(120)의 접근이 없는 경우 제4 세마포 셀(290)의 상태 제어부에 의해 제4 세마포 셀(290)의 제1 상태 래치(294)에 논리값 '0'이 저장된다. In operation t2, the second task transmits a logic value '0', which is an access request signal REQ1 for the fourth shared memory area 217, to the first input latch 291 of the fourth semaphore cell 290. When there is no access of the second processor 120 to the fourth shared memory area 217, the state controller of the fourth semaphore cell 290 may logic the first state latch 294 of the fourth semaphore cell 290. The value '0' is stored.

이후 시간 t3에서 다시 문맥 전환이 발생하고, 제1 태스크는 시간 t0에서 제2 공유 메모리 영역(213)에 접근하기 위한 작업을 계속하여 제2 세마포 셀(270)의 제1 입력 래치(271)에 접근 요청 신호(REQ1)인 논리값 '0'을 전송하게 되고, 제2 공유 메모리 영역(213)에 제2 프로세서(120)의 접근이 없는 경우 제2 세마포 셀(270)의 상태 제어부에 의해 제2 세마포 셀(270)의 제1 상태 래치(274)에 논리값 '0'이 저장된다.Thereafter, a context switch occurs again at time t3, and the first task continues to access the second shared memory area 213 at time t0 to the first input latch 271 of the second semaphore cell 270. The logical value '0', which is the access request signal REQ1, is transmitted, and when there is no access of the second processor 120 to the second shared memory area 213, the state controller of the second semaphore cell 270 may transmit the logical value '0'. The logic value '0' is stored in the first state latch 274 of the two semaphore cells 270.

도 5에 도시한 바와 같이 본 발명의 일실시예에 따른 듀얼 포트 메모리 시스템에서는 각 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 세마포 셀에 각각 어드레스를 할당하고, 할당된 어드레스를 이용하여 각각의 세마포 셀에 독립적으로 데이터(DQ)를 입출력함으로써 태스크간에 문맥 교환이 발생한 경우에도 각 태스크의 동기화된 작업이 보장된다.As shown in FIG. 5, in a dual port memory system according to an embodiment of the present invention, an address is assigned to a semaphore cell that controls mutually exclusive access to each shared memory area, and each semaphore is allocated using the assigned address. By inputting and outputting data DQ independently to a cell, synchronized tasks of each task are guaranteed even when a context exchange occurs between tasks.

도 6은 본 발명의 일실시예에 따른 듀얼 포트 메모리 시스템에서 공유 메모리 접근 과정을 나타내는 흐름도로서, 제1 프로세서(110) 및 제2 프로세서(120) 중 어느 하나의 프로세서 또는 상기 어느 하나의 프로세서에서 실행되는 복수의 태스크 중 어느 하나의 태스크가 소정의 공유 메모리 영역에 접근하기 위한 과정을 나타낸다. FIG. 6 is a flowchart illustrating a process of accessing a shared memory in a dual port memory system according to an exemplary embodiment of the present invention, wherein the processor of any one of the first processor 110 and the second processor 120 or one of the processors may be used. A task of any one of a plurality of tasks to be executed is performed to access a predetermined shared memory area.

도 6에서는 제1 프로세서(110)에서 실행되는 복수의 태스크 중 제1 태스크가 제1 공유 메모리 영역(211)에 접근하는 것으로 가정한다.In FIG. 6, it is assumed that a first task among a plurality of tasks executed in the first processor 110 approaches the first shared memory area 211.

도 6을 참조하면, 먼저, 제1 태스크는 제1 공유 메모리 영역(211)에 접근하기 위해 제1 공유 메모리 영역(217)에 대응되는 제1 세마포 셀(260)의 어드레스를 어드레스 버스(247)에 제공한다(단계 301).Referring to FIG. 6, first, the first task receives an address of the first semaphore cell 260 corresponding to the first shared memory area 217 to access the first shared memory area 211. In step 301.

이후, 동기 제어부(240)의 디코더(241)는 어드레스 버스(247)를 통해 제공된 제1 세마포 셀(260)의 어드레스 중 일부의 어드레스(A1, A0)를 디코딩한다. 그리고, 이와 동시에 어드레스 버스(247)를 통해 제공된 제1 세마포 셀(260)의 어드레 스(A1, A0)는 멀티플렉서(242) 및 디멀티플렉서(243)의 선택입력으로 제공되어 어드레스 버스(247)와 제1 세마포 셀(260)의 입출력 라인이 서로 연결되어 제1 세마포 셀(260)로부터 출력된 데이터(DQ1)가 멀티플렉서(242)를 통해 데이터 버스(248)에 제공되거나 데이터 버스(248)로부터 제공된 데이터(DQ1)가 디멀티플렉서(243)를 통해 제1 세마포 셀(260)에 입력될 수 있도록 한다(단계 303).Thereafter, the decoder 241 of the synchronization controller 240 decodes the addresses A1 and A0 of some of the addresses of the first semaphore cell 260 provided through the address bus 247. At the same time, the addresses A1 and A0 of the first semaphore cell 260 provided through the address bus 247 are provided as selection inputs of the multiplexer 242 and the demultiplexer 243 to provide the address bus 247 and the first input. The input / output lines of the 1 semaphore cell 260 are connected to each other so that the data DQ1 output from the first semaphore cell 260 is provided to the data bus 248 through the multiplexer 242 or data provided from the data bus 248. (DQ1) may be input to the first semaphore cell 260 through the demultiplexer 243 (step 303).

어드레스 버스(247)를 통해 디코더(241)에 제공된 어드레스(A1, A0)가 디코딩되면 4 개의 디코더 출력 중 어드레스(A1, A0)에 상응하는 어느 하나의 출력(EN0)이 활성화되어, 활성화된 출력(EN0)에 연결된 3-상태 버퍼가 활성화된다. 그리고 활성화된 3-상태 버퍼에 입출력 라인이 연결된 세마포 셀, 즉 제1 세마포 셀(260)이 선택된다(단계 305).When the addresses A1 and A0 provided to the decoder 241 through the address bus 247 are decoded, one of the four decoder outputs EN0 corresponding to the addresses A1 and A0 is activated, and the activated output is activated. The tri-state buffer connected to (EN0) is activated. The semaphore cell, ie, the first semaphore cell 260, to which the input / output line is connected to the activated tri-state buffer is selected (step 305).

여기서 디코더(241)에 입력되는 어드레스는 제1 세마포 셀(260)의 어드레스 중에서 최하위 비트(LSB)로부터 세마포 셀의 개수에 상응하는 개수 만큼의 어드레스(A1, A0)가 된다.The addresses input to the decoder 241 may be as many addresses A1 and A0 as the number corresponding to the number of semaphore cells from the least significant bit LSB among the addresses of the first semaphore cell 260.

예를 들어, 공유 메모리 영역 및 세마포 셀의 개수가 8개인 듀얼 포트 메모리 시스템에서는 각 세마포 셀에 할당된 바이트 단위의 어드레스 중 최하위 비트로부터 3개의 비트가 실질적인 세마포 셀을 구분하기 위해 사용된다. 그리고 도 2에 도시한 본 발명의 일실시예에 따른 듀얼 포트 메모리 시스템과 같이 공유 메모리 영역 및 세마포 셀의 개수가 4개인 경우에는 각 세마포 셀에 할당된 바이트 단위의 어드레스 중 최하위 비트로부터 2개의 비트가 실질적인 세마포 셀을 구분하기 위해 사용된다.For example, in a dual port memory system having eight shared memory areas and semaphore cells, three bits are used to distinguish the actual semaphore cells from the least significant bit of the byte unit address allocated to each semaphore cell. When the number of shared memory areas and semaphore cells is four, as in the dual port memory system according to the exemplary embodiment of FIG. 2, two bits are selected from the least significant bit among the address of the byte unit allocated to each semaphore cell. Is used to distinguish the actual semaphore cells.

그리고, 쓰기 제어 신호(/WE)가 동기 제어부(240)에 제공된다(단계 307). 여기서, 쓰기 제어 신호(/WE)가 활성화되면 데이터 버스(248)로부터 제공된 데이터(DQ1) 즉, 접근 요청 신호(REQ1)가 디멀티플렉서(242)를 통해 제1 세마포 셀(260)의 입력 라인을 통해 제1 세마포 셀(260)의 제1 입력 래치(261)에 저장되고(단계 309), 쓰기 제어 신호(/WE)가 비활성화되면 제1 세마포 셀(260)의 제1 상태 래치(264)에 저장된 접근 허용 신호(RDY1)가 멀티플렉서(242)를 통해 데이터 버스(248)에 제공된다(단계 311).Then, the write control signal / WE is provided to the synchronization control unit 240 (step 307). Here, when the write control signal / WE is activated, the data DQ1 provided from the data bus 248, that is, the access request signal REQ1, is transmitted through the input line of the first semaphore cell 260 through the demultiplexer 242. Stored in the first input latch 261 of the first semaphore cell 260 (step 309) and stored in the first state latch 264 of the first semaphore cell 260 when the write control signal / WE is deactivated. An access permission signal RDY1 is provided to the data bus 248 via the multiplexer 242 (step 311).

상기와 같은 동기 제어 장치를 가지는 듀얼 포트 메모리, 동기 제어 장치를 가지는 듀얼 포트 메모리 시스템 및 듀얼 포트 메모리 시스템의 동기 제어 방법에 따르면, 각각의 공유 메모리 영역에 대응되는 세마포 셀에 각각 별도의 주소를 할당하고, 소정의 공유 메모리 영역에 접근하고자 하는 프로세서 또는 태스크가 상기 소정의 공유 메모리 영역에 대응되는 세마포 셀에 독립적으로 접근 요청 신호를 기록하고, 접근 허용 신호를 독출한다.According to the synchronous control method of the dual port memory having the synchronous control device, the dual port memory system having the synchronous control device, and the dual port memory system, a separate address is assigned to each semaphore cell corresponding to each shared memory area. In addition, a processor or a task that attempts to access a predetermined shared memory area independently records an access request signal in a semaphore cell corresponding to the predetermined shared memory area, and reads an access permission signal.

따라서, 하나의 프로세서에서 복수의 태스크가 실행되는 멀티 태스크 환경에서 태스크간의 문맥 전환이 발생한 경우에도 각 태스크간의 지속적인 동기화 작업을 보장할 수 있다.Therefore, even in a multi-task environment in which a plurality of tasks are executed in one processor, continuous synchronization between tasks can be guaranteed even when a context switch between tasks occurs.

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

Claims (19)

복수의 공유 메모리 영역을 가지는 메모리 어레이;A memory array having a plurality of shared memory regions; 제1 프로세서로부터 제1 포트를 통해 제공된 어드레스 및 제어신호에 기초하여 상기 복수의 공유 메모리 영역에 대해 읽기 또는 쓰기 동작을 수행하는 제1 메모리 인터페이스;A first memory interface configured to perform a read or write operation on the plurality of shared memory regions based on an address and a control signal provided from a first processor through a first port; 제2 프로세서로부터 제2 포트를 통해 제공된 어드레스 및 제어신호에 기초하여 상기 복수의 공유 메모리 영역에 읽기 또는 쓰기 동작을 수행하는 제2 메모리 인터페이스; 및A second memory interface configured to perform a read or write operation on the plurality of shared memory regions based on an address and a control signal provided from a second processor through a second port; And 상기 복수의 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 복수의 세마포 셀을 포함하고, 상기 제1 프로세서 및 상기 제2 프로세서 중 어느 하나의 프로세서에서 실행되는 적어도 하나 이상의 태스크 각각이 접근하고자 하는 공유 메모리 영역에 대응되는 세마포 셀에 독립적으로 접근 요청 신호 및 접근 허용 신호의 입출력을 수행하도록 하는 동기 접근 제어부를 포함하는 듀얼 포트 메모리.Shared memory which includes a plurality of semaphore cells for controlling mutually exclusive access to the plurality of shared memory areas, each of at least one task executed in any one of the first processor and the second processor to access And a synchronous access control unit configured to perform input / output of an access request signal and an access permission signal independently of a semaphore cell corresponding to an area. 제1항에 있어서, 상기 복수의 세마포 셀은 각각 독립적인 주소가 할당되는 것을 특징으로 하는 듀얼 포트 메모리.The dual port memory of claim 1, wherein each of the plurality of semaphore cells is assigned an independent address. 제1항에 있어서, 상기 동기 접근 제어부는 The method of claim 1, wherein the synchronous access control unit 상기 복수의 공유 메모리 영역과 동일한 수를 가지며 상기 복수의 공유 메모 리 영역 각각에 대응되고 상기 대응된 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 상기 복수의 세마포 셀을 포함하는 하드웨어 세마포; 및A hardware semaphore having the same number as the plurality of shared memory regions and including the plurality of semaphore cells corresponding to each of the plurality of shared memory regions and controlling mutually exclusive access to the corresponding shared memory region; And 상기 적어도 하나 이상의 태스크 각각으로부터 제공된 세마포 셀의 주소에 기초하여 상기 복수의 세마포 셀 중 어느 하나의 세마포 셀을 선택하고, 상기 선택된 세마포 셀에 대해 상기 접근 요청 신호 및 상기 접근 허용 신호의 입출력을 수행하는 동기 제어부를 포함하는 것을 특징으로 하는 듀얼 포트 메모리.Selecting one semaphore cell of the plurality of semaphore cells based on an address of a semaphore cell provided from each of the at least one task, and performing input / output of the access request signal and the access permission signal to the selected semaphore cell Dual port memory, characterized in that it comprises a synchronization control unit. 제3항에 있어서, 상기 복수의 세마포 셀 각각은The method of claim 3, wherein each of the plurality of semaphore cells 상기 제1 프로세서 및 상기 적어도 하나 이상의 태스크 중 어느 하나로부터 제공된 제1 접근 요청 신호를 저장하는 제1 입력 래치;A first input latch for storing a first access request signal provided from one of the first processor and the at least one task; 상기 제2 프로세서 및 상기 적어도 하나 이상의 태스크 중 어느 하나로부터 제공된 제2 접근 요청 신호를 저장하는 제2 입력 래치;A second input latch for storing a second access request signal provided from one of the second processor and the at least one task; 상기 제1 입력 래치 및 상기 제2 입력 래치로부터 상기 제1 접근 요청 신호 및 상기 제2 접근 요청 신호를 제공받고 제1 접근 허용 신호 및 제2 접근 허용 신호를 배타적으로 제공하는 상태 제어부;A state control unit receiving the first access request signal and the second access request signal from the first input latch and the second input latch and exclusively providing a first access permission signal and a second access permission signal; 상기 상태 제어부로부터 제공된 상기 제1 접근 허용 신호를 저장하는 제1 상태 래치; 및A first state latch for storing the first access permission signal provided from the state control unit; And 상기 상태 제어부로부터 제공된 상기 제2 접근 허용 신호를 저장하는 제2 상태 래치를 포함하는 것을 특징으로 하는 듀얼 포트 메모리.And a second state latch for storing the second access permission signal provided from the state controller. 제4항에 있어서, 상기 제1 입력 래치, 제2 입력 래치 및 상태 제어부는 S-R 래치로 구성되는 것을 특징으로 하는 듀얼 포트 메모리.The dual port memory of claim 4, wherein the first input latch, the second input latch, and the state controller are configured as S-R latches. 제4항에 있어서, 상기 제1 상태 래치 및 제2 상태 래치는 D-플립플롭으로 구성되는 것을 특징으로 하는 듀얼 포트 메모리.5. The dual port memory of claim 4 wherein the first state latch and the second state latch are configured as D-flip flops. 제3항에 있어서, 상기 동기 제어부는The method of claim 3, wherein the synchronization control unit 상기 세마포 셀의 주소를 디코딩하여 상기 복수의 세마포 셀 중 어느 하나의 세마포 셀을 선택하는 디코더;A decoder configured to decode the address of the semaphore cell and select one semaphore cell among the plurality of semaphore cells; 상기 세마포 셀의 주소를 선택입력으로 제공받고, 상기 선택입력에 기초하여 상기 선택된 세마포 셀의 출력라인과 데이터 버스를 연결하는 멀티플렉서;A multiplexer receiving an address of the semaphore cell as a selection input and connecting an output line of the selected semaphore cell and a data bus based on the selection input; 상기 세마포 셀의 주소를 선택입력으로 제공받고, 상기 선택입력에 기초하여 상기 데이터 버스와 상기 선택된 세마포 셀의 입력 라인을 연결하는 디멀티플렉서; 및A demultiplexer configured to receive an address of the semaphore cell as a selection input and connect the data bus and an input line of the selected semaphore cell based on the selection input; And 활성화된 쓰기 제어 신호에 기초하여 상기 선택된 세마포 셀에 상기 접근 요청 신호의 쓰기 동작이 수행되도록 하는 3-상태 버퍼를 포함하는 듀얼 포트 메모리.And a tri-state buffer configured to perform a write operation of the access request signal to the selected semaphore cell based on an activated write control signal. 제7항에 있어서, 상기 디코더는 상기 세마포 셀의 주소 중 최하위 비트(LSB)로부터 상기 복수의 세마포 셀의 개수에 상응하는 개수 만큼의 주소 비트가 입력되 는 것을 특징으로 하는 듀얼 포트 메모리.8. The dual port memory of claim 7, wherein the decoder receives the number of address bits corresponding to the number of the plurality of semaphore cells from the least significant bit (LSB) among the addresses of the semaphore cells. 제1항에 있어서, 상기 메모리 어레이는 DRAM 셀 구조를 가지는 것을 특징으로 하는 듀얼 포트 메모리.2. The dual port memory of claim 1 wherein the memory array has a DRAM cell structure. 제1항에 있어서, 상기 제1 메모리 인터페이스 및 상기 제2 메모리 인터페이스는 SDRAM 메모리 인터페이스인 것을 특징으로 하는 듀얼 포트 메모리.The dual port memory of claim 1, wherein the first memory interface and the second memory interface are SDRAM memory interfaces. 제1 프로세서;A first processor; 제2 프로세서; 및 A second processor; And 복수의 공유 메모리 영역을 가지는 메모리 어레이와, 제1 프로세서로부터 제1 포트를 통해 제공된 어드레스 및 제어신호에 기초하여 상기 복수의 공유 메모리 영역에 대해 읽기 또는 쓰기 동작을 수행하는 제1 메모리 인터페이스와, 제2 프로세서로부터 제2 포트를 통해 제공된 어드레스 및 제어신호에 기초하여 상기 복수의 공유 메모리 영역에 읽기 또는 쓰기 동작을 수행하는 제2 메모리 인터페이스 및 상기 복수의 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 복수의 세마포 셀을 포함하고 상기 제1 프로세서 및 상기 제2 프로세서 중 어느 하나의 프로세서에서 실행되는 적어도 하나 이상의 태스크 각각이 접근하고자 하는 공유 메모리 영역에 대응되는 세마포 셀에 독립적으로 접근 요청 신호 및 접근 허용 신호의 입출력을 수행하도록 하는 동기 접근 제어부를 가지는 듀얼 포트 메모리를 포함하는 듀 얼 포트 메모리 시스템.A memory array having a plurality of shared memory regions, a first memory interface configured to perform a read or write operation on the plurality of shared memory regions based on an address and a control signal provided through a first port from a first processor; A second memory interface for performing a read or write operation on the plurality of shared memory regions based on an address and a control signal provided through a second port from a second processor, and a plurality of mutually exclusive accesses to the plurality of shared memory regions; An access request signal and an access permission signal independently of a semaphore cell corresponding to a shared memory region to which each of at least one or more tasks including a semaphore cell of which is executed in one of the first processor and the second processor To do I / O of A dual port memory system comprising dual port memory having a synchronous access control. 제11항에 있어서, 상기 복수의 세마포 셀은 각각 독립적인 주소가 할당되는 것을 특징으로 하는 듀얼 포트 메모리 시스템.12. The dual port memory system of claim 11, wherein each of the plurality of semaphore cells is assigned an independent address. 제11항에 있어서, 상기 동기 접근 제어부는 The method of claim 11, wherein the synchronous access control unit 상기 복수의 공유 메모리 영역과 동일한 수를 가지며 상기 복수의 공유 메모리 영역 각각에 대응되고 상기 대응된 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 상기 복수의 세마포 셀을 포함하는 하드웨어 세마포; 및A hardware semaphore having the same number as the plurality of shared memory regions and including the plurality of semaphore cells corresponding to each of the plurality of shared memory regions and controlling mutually exclusive access to the corresponding shared memory region; And 상기 적어도 하나 이상의 태스크 각각으로부터 제공된 세마포 셀의 주소에 기초하여 상기 복수의 세마포 셀 중 어느 하나의 세마포 셀을 선택하고, 상기 선택된 세마포 셀에 대해 상기 접근 요청 신호 및 상기 접근 허용 신호의 입출력을 수행하는 동기 제어부를 포함하는 것을 특징으로 하는 듀얼 포트 메모리 시스템.Selecting one semaphore cell among the plurality of semaphore cells based on an address of a semaphore cell provided from each of the at least one task, and performing input / output of the access request signal and the access permission signal with respect to the selected semaphore cell; A dual port memory system comprising a synchronization control unit. 제13항에 있어서, 상기 동기 제어부는The method of claim 13, wherein the synchronization control unit 상기 세마포 셀의 주소를 디코딩하여 상기 복수의 세마포 셀 중 어느 하나의 세마포 셀을 선택하는 디코더;A decoder configured to decode the address of the semaphore cell and select one semaphore cell among the plurality of semaphore cells; 상기 세마포 셀의 주소를 선택입력으로 제공받고, 상기 선택입력에 기초하여 상기 선택된 세마포 셀의 출력라인과 데이터 버스를 연결하는 멀티플렉서;A multiplexer receiving an address of the semaphore cell as a selection input and connecting an output line of the selected semaphore cell and a data bus based on the selection input; 상기 세마포 셀의 주소를 선택입력으로 제공받고, 상기 선택입력에 기초하여 상기 데이터 버스와 상기 선택된 세마포 셀의 입력 라인을 연결하는 디멀티플렉서; 및A demultiplexer configured to receive an address of the semaphore cell as a selection input and connect the data bus and an input line of the selected semaphore cell based on the selection input; And 활성화된 쓰기 제어 신호에 기초하여 상기 선택된 세마포 셀에 상기 접근 요청 신호의 쓰기 동작이 수행되도록 하는 3-상태 버퍼를 포함하는 듀얼 포트 메모리 시스템.And a tri-state buffer configured to perform a write operation of the access request signal to the selected semaphore cell based on an activated write control signal. 제11항에 있어서, 상기 제1 프로세서는 모뎀 프로세서이고, 상기 제2 프로세서는 응용프로그램을 수행하는 응용 프로세서인 것을 특징으로 하는 듀얼 포트 메모리 시스템.12. The dual port memory system of claim 11 wherein the first processor is a modem processor and the second processor is an application processor that executes an application. 제1 프로세서, 제2 프로세서 및 복수의 공유 메모리 영역을 포함한 듀얼 포트 메모리 시스템의 동기화 방법에 있어서,A synchronization method of a dual port memory system including a first processor, a second processor, and a plurality of shared memory areas, 접근 하고자 하는 공유 메모리 영역에 대응되는 세마포 셀의 주소를 제공하는 단계;Providing an address of a semaphore cell corresponding to a shared memory area to be accessed; 상기 제공된 세마포 셀의 주소를 디코딩하여 상기 세마포 셀을 선택하는 단계;Decoding the address of the provided semaphore cell to select the semaphore cell; 상기 선택된 세마포 셀에 접근 요청 신호를 입력하거나 접근 허용 신호를 출력하는 단계를 포함하는 듀얼 포트 메모리 시스템의 동기 제어 방법.And inputting an access request signal or an access permission signal to the selected semaphore cell. 제16항에 있어서, 상기 세마포 셀의 주소는 바이트 단위로 할당되는 것을 특 징으로 하느 듀얼 포트 메모리 시스템의 동기 제어 방법.17. The method of claim 16, wherein the address of the semaphore cell is allocated in units of bytes. 제16항에 있어서, 상기 제공된 세마포 셀의 주소를 디코딩하여 상기 세마포 셀을 선택하는 단계는,17. The method of claim 16, wherein decoding the address of the provided semaphore cell to select the semaphore cell comprises: 상기 제공된 세마포 셀의 주소를 선택입력으로 하여 멀티플렉싱 및 디멀티플렉싱을 수행함으로써 상기 선택된 세마포 셀의 입출력 라인을 활성화하는 단계를 포함하는 것을 특징으로 하는 듀얼 포트 메모리 시스템의 동기 제어 방법.And activating an input / output line of the selected semaphore cell by performing multiplexing and demultiplexing with the address of the provided semaphore cell as a selection input. 제16항에 있어서, 상기 선택된 세마포 셀에 접근 요청 신호를 입력하거나 접근 허용 신호를 출력하는 단계는,The method of claim 16, wherein inputting an access request signal or outputting an access permission signal to the selected semaphore cell comprises: 쓰기 제어 신호가 활성화되면 상기 선택된 세마포 셀에 접근 요청 신호가 입력되고, 상기 쓰기 제어 신호가 비활성화되면 상기 선택된 세마포 셀로부터 접근 허용 신호가 출력되는 것을 특징으로 하는 듀얼 포트 메모리 시스템의 동기 제어 방법.And an access request signal is input to the selected semaphore cell when a write control signal is activated, and an access permission signal is output from the selected semaphore cell when the write control signal is deactivated.
KR1020060115516A 2006-11-21 2006-11-21 Synchronization Control Device, Dual Port Memory Having Synchornization Control Device and Method for Controlling Synchonization in Dual Port Memory KR100863541B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060115516A KR100863541B1 (en) 2006-11-21 2006-11-21 Synchronization Control Device, Dual Port Memory Having Synchornization Control Device and Method for Controlling Synchonization in Dual Port Memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060115516A KR100863541B1 (en) 2006-11-21 2006-11-21 Synchronization Control Device, Dual Port Memory Having Synchornization Control Device and Method for Controlling Synchonization in Dual Port Memory

Publications (2)

Publication Number Publication Date
KR20080046066A true KR20080046066A (en) 2008-05-26
KR100863541B1 KR100863541B1 (en) 2008-10-15

Family

ID=39663219

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060115516A KR100863541B1 (en) 2006-11-21 2006-11-21 Synchronization Control Device, Dual Port Memory Having Synchornization Control Device and Method for Controlling Synchonization in Dual Port Memory

Country Status (1)

Country Link
KR (1) KR100863541B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100879463B1 (en) * 2007-05-11 2009-01-20 삼성전자주식회사 Multi-path accessible semiconductor memory device having operation for preventing precharge skip in transferring access authority
WO2021096140A1 (en) 2019-11-12 2021-05-20 엘지전자 주식회사 Fluid channel switching pump

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0612387A (en) * 1992-06-25 1994-01-21 Mitsubishi Electric Corp Inter-multiprocessor communication method
KR950015097A (en) * 1993-11-01 1995-06-16 김연수 Dual Processor System Using Shared Memory
KR0167169B1 (en) * 1995-02-07 1999-01-15 김회수 Data receive/transmit apparatus
US6122713A (en) 1998-06-01 2000-09-19 National Instruments Corporation Dual port shared memory system including semaphores for high priority and low priority requestors

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100879463B1 (en) * 2007-05-11 2009-01-20 삼성전자주식회사 Multi-path accessible semiconductor memory device having operation for preventing precharge skip in transferring access authority
WO2021096140A1 (en) 2019-11-12 2021-05-20 엘지전자 주식회사 Fluid channel switching pump

Also Published As

Publication number Publication date
KR100863541B1 (en) 2008-10-15

Similar Documents

Publication Publication Date Title
EP3082048B1 (en) Memory configured to provide simultaneous read/write access to multiple banks
KR20080013138A (en) Dual-port semiconductor memories
JPH04296958A (en) Double-port memory system
JP2009505180A (en) Storage device formed in a computer system having at least two processing units and at least one memory, and storage method thereby
CN1996276A (en) Data transmission of multiple processor system
JP4560498B2 (en) Arbitration scheme for shared memory devices
KR100863541B1 (en) Synchronization Control Device, Dual Port Memory Having Synchornization Control Device and Method for Controlling Synchonization in Dual Port Memory
KR100377708B1 (en) Semiconductor memory device employing pipeline operation with reduced power consumption
KR101110550B1 (en) Processor, Multi-processor System And Method For Controlling Access Authority For Shared Memory In Multi-processor System
KR100874169B1 (en) Dual port memory for direct transfer of commands between processors and method for performing them
KR20110037492A (en) Multi-port memory system and access control method thereof
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
KR100872196B1 (en) Memory system and method of controlling access of dual port memory using the memory system
KR100886179B1 (en) Method for Handling Access Right Acquisition in Dual Port Memory and Apparatus therefore
KR100877972B1 (en) Dual Port Memory for directly transferring data between processors and Method thereof
KR100813133B1 (en) Dual port memory apparatus, memory system and method for adaptive using shared memory area of dual port memory apparatus
KR100827720B1 (en) Dual Port Memory having Access Control Device, Memory System Having the Same and Access Control Method for Dual Port Memory
KR100867603B1 (en) Dual port memory having common signal line
KR100816038B1 (en) Method for accessing shared memory in multi-processor system
KR100652690B1 (en) Multi processor apparatus for mobile communication device
KR100816009B1 (en) Method for accessing shared memory in dual port memory system, and recorded medium for performing method for accessing shared memory in dual port memory system
KR19980068130A (en) Data access control device using shared memory
KR20080084410A (en) System virtual dma and driving method thereof
WO2011030498A1 (en) Data processing device and data processing method
KR100879567B1 (en) Dual Port Memory for directly transferring data between processors using first-in first-out and memory system thereof

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130926

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 12