KR100863541B1 - 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 PDFInfo
- Publication number
- KR100863541B1 KR100863541B1 KR1020060115516A KR20060115516A KR100863541B1 KR 100863541 B1 KR100863541 B1 KR 100863541B1 KR 1020060115516 A KR1020060115516 A KR 1020060115516A KR 20060115516 A KR20060115516 A KR 20060115516A KR 100863541 B1 KR100863541 B1 KR 100863541B1
- Authority
- KR
- South Korea
- Prior art keywords
- semaphore
- processor
- cell
- shared memory
- access
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection 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/1425—Protection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program 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
멀티 태스크 환경에서 각 태스크 간의 동기화된 작업을 보장할 수 있는 동기 제어 장치를 가지는 듀얼 포트 메모리가 개시된다. 복수의 공유 메모리 영역을 가지는 메모리 어레이를 포함하고, 제1 메모리 인터페이스는 제1 프로세서로부터 제1 포트를 통해 제공된 어드레스 및 제어신호에 기초하여 복수의 공유 메모리 영역에 대해 읽기 또는 쓰기 동작을 수행한다. 제2 메모리 인터페이스는 제2 프로세서로부터 제2 포트를 통해 제공된 어드레스 및 제어신호에 기초하여 복수의 공유 메모리 영역에 읽기 또는 쓰기 동작을 수행한다. 그리고, 동기 접근 제어부는 복수의 공유 메모리 영역에 대한 상호 배타적 접근을 제어하는 복수의 세마포 셀을 포함하고, 제1 프로세서 및 제2 프로세서 중 어느 하나의 프로세서에서 실행되는 적어도 하나 이상의 태스크 각각이 접근하고자 하는 공유 메모리 영역에 대응되는 세마포 셀에 독립적으로 접근 요청 신호 및 접근 허용 신호의 입출력을 수행하도록 한다. 따라서, 하나의 프로세서에서 적어도 하나 이상의 태스크가 실행되는 멀티 태스크 환경에서 태스크간의 문맥 전환이 발생한 경우에도 각 태스크간의 지속적인 동기화 작업을 보장할 수 있다.A dual port memory having a synchronous control device capable of ensuring synchronized work between each task in a multitask environment is disclosed. And a memory array having a plurality of shared memory regions, wherein the first memory interface performs a read or write operation on the plurality of shared memory regions based on an address and a control signal provided through the first port from the first processor. The second memory interface performs a read or write operation on the plurality of shared memory areas based on an address and a control signal provided from the second processor through the second port. The synchronous access controller includes a plurality of semaphore cells that control mutually exclusive access to a plurality of shared memory regions, and each of at least one task executed in any one processor of the first processor and the second processor attempts to access each other. The input / output of the access request signal and the access permission signal may be independently performed on the semaphore cell corresponding to the shared memory area. Therefore, even in a multi-task environment in which at least one task is executed in one processor, continuous synchronization between tasks may be guaranteed even when a context switch between tasks occurs.
Description
도 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
각각의 세마포 셀(20 내지 50)은 듀얼 포트 메모리에 구비된 네 개의 공유 메모리 영역 중에서 각각의 공유 메모리 영역과 대응되고 대응된 공유 메모리 영역에 대한 두 개의 프로세서의 상호 배타적 접근을 제어한다.Each
각 세마포 셀(20 내지 50)은 제1 프로세서(10)로부터 각 공유 메모리 영역에 접근을 위한 접근 요청 신호(REQ1 내지 REQ4)를 제공 받고 상기 공유 메모리 영역의 현재 접근 상태에 따라 접근 허용 신호(RDY1 내지 RDY4)를 출력한다.Each
예를 들어, 각 세마포 셀(20 내지 50)은 제1 프로세서(10)로부터 공유 메모리 영역에 대한 접근 요청 신호(REQ1 내지 REQ4)로 논리값 '0'을 제공받고 상기 공유 메모리 영역이 다른 프로세서에 의해 접근 중이면 접근 허용 신호(RDY1 내지 RDY4)로 논리값 '1'을 제공하고, 상기 공유 메모리 영역에 접근중인 프로세서가 존재하지 않으면 접근 허용 신호(RDY1 내지 RDY4)로 논리값 '1'을 제1 프로세서(10)에게 제공하여 제1 프로세서(10)가 공유 메모리 영역에 접근할 수 있도록 한다. For example, each
그리고, 각 세마포 셀(20 내지 50)은 공유 메모리 영역에 접근 중인 프로세서가 접근을 종료하고 접근 요청 신호(REQ1 내지 REQ4)로 논리값 '1을 제공하면, 상기 공유 메모리 영역에 접근 대기 중인 프로세서에게 접근 허용 신호(RDY1 내지 RDY4)로 논리값 '0'을 제공함으로써 공유 메모리 영역에 접근할 수 있도록 한다.Each
제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
여기서, 제1 프로세서(10)에 의해 주소 버스(60)를 통해 제공된 주소는 주소 디코더(80)에 의해 디코딩되어 인에이블 신호(/EN)를 활성화함으로써 하드웨어 세마포에 포함된 모든 세마포 셀(20 내지 50)의 입출력 라인을 활성화시킨다.Here, the address provided through the
또한, 제1 프로세서(10)는 하드웨어 세마포의 주소를 지정하고 쓰기 제어 신호(/WE)를 비활성화 시킴으로써(즉, 읽기 제어 신호가 활성화) 모든 세마포 셀(20 내지 50)로부터 데이터 버스(70)를 통해 접근 허용 신호(RDY1 내지 RDY4)를 제공받고, 제공받은 접근 허용 신호(RDY1 내지 RDY4)에 기초하여 소정의 공유 메모리 영역에 대한 접근 허용 여부를 판단한다.The first processor 10 also addresses the
도 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
그리고, 프로세서가 소정의 공유 메모리 영역에 대응되는 세마포 셀(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
따라서, 듀얼 포트 메모리 시스템에 포함된 두 개의 프로세서 중 어느 하나의 프로세서에 의해 복수의 태스크가 실행되는 멀티 태스크 환경에서는 소정의 태 스크가 소정의 공유 메모리 영역에 대한 접근 요청 신호를 상기 소정의 공유 메모리 영역에 상응하는 세마포 셀에 전송하고, 상기 세마포 셀로부터 접근 허용 신호를 제공 받기 전에 다른 태스크로 문맥 전환이 발생하여 상기 다른 태스크가 다른 공유 메모리 영역에 대한 접근 요청 신호를 전송하게 되면 이전에 상기 소정의 태스크로부터 전송된 접근 요청 신호는 새로운 값으로 대치되어 상기 소정의 태스크는 데드락(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
그리고, 듀얼 포트 메모리(200)는 메모리 셀 어레이(210), 제1 메모리 인터페이스(220), 제2 메모리 인터페이스(230), 동기 접근 제어부(295)를 포함한다. 메모리 셀 어레이(210)는 제1 내지 제4 공유 메모리 영역(211 내지 217)을 포함한다. The
제1 프로세서(110)는 핸드폰과 같은 휴대용 단말기에 사용되는 모뎀 프로세서가 될 수 있고, 제2 프로세서(120)는 휴대용 단말기에서 사용되는 비디오 프로세서, 멀티미디어 프로세서 등과 같은 응용프로그램을 수행하기 위한 응용 프로세서가 될 수 있다.The
제1 외부 버스 인터페이스(130) 및 제2 외부 버스 인터페이스(140)는 일종의 메모리 컨트롤러(memory controller) 역할을 수행하며 SDRAM(Synchronous DRAM) 또는 PSRAM(Pseudo SRAM)의 외부 버스 인터페이스가 사용될 수 있다. 이하 본 발명의 일실시예에서는 제1 외부 버스 인터페이스(130) 및 제2 외부 버스 인터페이스(140)는 SDRAM 외부 버스 인터페이스인 것으로 가정한다.The first
듀얼 포트 메모리(200)는 제1 포트(150)를 통해 제1 외부 버스 인터페이스(130)를 가지는 제1 프로세서(110)와 연결되고, 제2 포트(160)를 통해 제2 외부 버스 인터페이스(140)를 가지는 제2 프로세서(120)와 연결된다.The
제1 프로세서(110)는 듀얼 포트 메모리(200)의 제1 포트(150)를 통하여 주소(ADD1), 복수의 제어신호들(CTR1) 및 클럭(CLK1)을 듀얼 포트 메모리(200)에 제공하고, 듀얼 포트 메모리(200)는 제1 포트(150) 및 제1 외부 버스 인터페이스(130)를 사용하여 제1 프로세서(110)와 데이터(DQ1)의 입출력을 수행한다.The
또한, 제2 프로세서(120)는 듀얼 포트 메모리(200)의 제2 포트(160)를 통하여 주소(ADD2), 복수의 제어신호들(CTR2) 및 클럭(CLK2)을 듀얼 포트 메모리(200)에 제공하고, 듀얼 포트 메모리(200)는 제2 포트(160) 및 제2 외부 버스 인터페이스(140)를 사용하여 제2 프로세서(120)와 데이터(DQ2)의 입출력을 수행한다.In addition, the
메모리 셀 어레이(210)는 DRAM의 단위 메모리 셀 구조를 가지고 제1 내지 제4 공유 메모리 영역(211 내지 217)을 포함한다. 제1 내지 제4 공유 메모리 영역(211 내지 217) 각각은 소정 크기를 가지는 뱅크(bank) 단위로 형성될 수 있다. 또한 하나의 뱅크 내에서 소정 크기를 가지는 블록(block) 단위로 각각의 공유 메모리 영역이 구성될 수도 있다. The
또한, 본 발명의 다른 실시예에 따른 듀얼 포트 메모리 시스템에서는 메모리 셀 어레이(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
도 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
제1 메모리 인터페이스(220)는 SDRAM 메모리 인터페이스로 구성되고, 제1 포트(150)를 통하여 제1 프로세서(110)로부터 주소(ADD1), 제어신호(CTR1), 클럭(CLK1) 및 데이터(DQ1)를 입력받고, 주소(ADD1)를 로우 어드레스와 컬럼 어드레스로 디코딩한 후 디코딩된 어드레스(I_AD1)를 메모리 셀 어레이(210)로 출력하고 메모리 셀 어레이(210)의 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터(DQ1)를 메모리 셀 어레이(210)로부터 독출하거나 메모리 셀 어레이(210)에 기록한다.The
이를 위해 제1 메모리 인터페이스(220)에는 일반적인 SDRAM 인터페이스에서 사용되는 명령 디코더(Command decoder)(미도시), 로우 디코더(Row decoder) (미도시), 컬럼 디코더(Column decoder)(미도시) 및 입출력 버퍼(미도시) 등을 포함될 수 있다.To this end, the
제2 메모리 인터페이스(230)는 SDRAM 메모리 인터페이스로 구성되고, 제2 포트(160)를 통하여 제2 프로세서(120)로부터 어드레스(ADD2), 제어신호(CTR2), 클럭(CLK2) 및 데이터(DQ2)를 입력받고, 어드레스(ADD2)를 로우 어드레스와 컬럼 어 드레스로 디코딩한 후 디코딩된 어드레스(I_AD2)를 메모리 셀 어레이(210)로 출력하고 메모리 셀 어레이(210)의 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터(DQ2)를 메모리 셀 어레이(210)로부터 독출하거나 메모리 셀 어레이(210)에 기록한다.The
이를 위해 제2 메모리 인터페이스(230)에는 일반적인 SDRAM 인터페이스에서 사용되는 명령 디코더(미도시), 로우 디코더(미도시), 컬럼 디코더(미도시) 및 입출력 버퍼(미도시) 등이 포함될 수 있다.To this end, the
동기접근 제어부(295)는 복수의 공유 메모리 영역(211 내지 217)에 대한 상호 배타적 접근을 제어하는 복수의 세마포 셀(260 내지 290)을 포함하고, 상기 제1 프로세서(110) 또는 상기 제2 프로세서(120)에서 복수의 태스크가 실행되는 경우, 각각의 태스크가 접근하고자 하는 공유 메모리 영역에 대응되는 세마포 셀에 독립적으로 접근 요청 신호 및 접근 허용 신호의 입출력을 수행하도록 한다.The synchronous
동기 접근 제어부(295)는 동기제어부(240) 및 하드웨어 세마포(250)를 포함할 수 있다.The
동기 제어부(240)는 제1 프로세서(110) 및 제2 프로세서(120)로부터 하드웨어 세마포(250)에 포함된 세마포 셀(260 내지 290)의 각각의 어드레스를 입력받고, 입력받은 어드레스를 디코딩하여 세마포 셀(260 내지 290)의 입출력 라인을 개별적으로 활성화 시키고, 쓰기 제어 신호(/WE)에 따라 입출력 라인이 활성화된 세마포 셀(260 내지 290)에 데이터(DQ1, DQ2)를 입력 또는 출력시킨다.The
여기서 각각의 세마포 셀(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
또한, 동기 제어부(240)는 제1 프로세서(110) 및 제2 프로세서(120) 중 어느 하나의 프로세서에서 복수의 태스크가 실행될 때, 각 태스크로부터 하드웨어 세마포(250)에 포함된 세마포 셀(260 내지 290)의 각각의 어드레스를 입력받고, 입력받은 어드레스를 디코딩하여 세마포 셀(260 내지 290)의 입출력 라인을 개별적으로 활성화 시키고, 쓰기 제어 신호(/WE)에 따라 입출력 라인이 활성화된 세마포 셀(260 내지 290)에 데이터(DQ1, DQ2)를 입력 또는 출력시킨다.In addition, the
여기서, 각각의 세마포 셀(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
예를 들어, 접근 요청 신호(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
또한, 각각의 세마포 셀(260 내지 290)로부터 출력되는 접근 허용 신 호(RDY1, RDY2)는 각각의 세마포 셀(260 내지 290)에 대응되는 공유 메모리 영역(211 내지 217)에 프로세서 또는 태스크가 접근하지 않은 상태이면 접근이 가능함을 나타내는 논리값 '0'이 되고, 상기 공유 메모리 영역(211 내지 217)이 다른 프로세서 또는 태스크에 의해 접근중이면 접근이 불가능함을 나타내는 논리값 '1'이 된다.In addition, the access permission signals RDY1 and RDY2 output from the
하드웨어 세마포(250)는 공유 메모리 영역(211 내지 217)의 개수와 동일한 개수의 세마포 셀(260 내지 290)을 포함하고, 각각의 세마포 셀(260 내지 290)은 각각의 공유 메모리 영역(211 내지 217)과 일대일로 대응된다. The
즉, 제1 공유 메모리 영역(211)은 제1 세마포 셀(260)과 대응되고, 제2 공유 메모리 영역(213)은 제2 세마포 셀(270)과 대응된다. 또한, 제3 공유 메모리 영역(215) 및 제4 공유 메모리 영역(217)은 각각 제3 세마포 셀(280) 및 제4 세마포 셀(290)과 대응된다.That is, the first shared
본 발명의 일실시예에 따른 듀얼 포트 메모리 및 듀얼 포트 메모리 시스템에서는 제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
각각의 세마포 셀(260 내지 290)은 대응되는 공유 메모리 영역(211 내지 217)에 대한 제1 프로세서(110) 및 제2 프로세서(120) 상호간의 상호 배타적 접근을 제어함으로써 프로세서간 동기화된 작업을 보장한다.Each semaphore cell 260-290 controls mutually exclusive access between the
또한, 각각의 세마포 셀(260 내지 290)은 제1 프로세서(110) 및 제2 프로세 서(120) 중 어느 하나의 프로세서에 의해 실행되는 복수의 태스크와 다른 프로세서 간에도 공유 메모리 영역(211 내지 217)에 상호 배타적으로 접근하도록 제어함으로써 복수의 태스크와 프로세서간의 동기화된 작업을 보장한다.In addition, each
도 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
도 3a를 참조하면, 제1 세마포 셀(260)은 제1 입력 래치(261), 제2 입력 래치(262), 상태 제어부(263), 제1 상태 래치(264) 및 제2 상태 래치(265)를 포함한다.Referring to FIG. 3A, the
제1 입력 래치(261)는 제1 프로세서(110)로부터 제1 메모리 인터페이스(220)를 통해 제공된 제1 공유 메모리 영역(211)에 대한 접근 요청 신호(REQ1)를 제공받고, 제공된 접근 요청 신호(REQ1)를 래치하여 저장한다. The
제2 입력 래치(262)는 제2 프로세서(120)로부터 제2 메모리 인터페이스(230)를 통해 제1 공유 메모리 영역(211)에 대한 접근 요청 신호(REQ2)를 제공받고, 제공된 접근 요청 신호(REQ2)를 래치하여 저장한다. 여기서, 제1 입력 래치(261) 및 제2 입력 래치(262)는 S-R 래치로 구성될 수 있다.The
제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
상태 제어부(263)는 제1 입력 래치(261) 및 제2 입력 래치(262)에 래치된 접근 요청 신호(REQ1, REQ2)를 입력받고, 현재의 상태에 따라 배타적인 접근 허용 신호(RDY1, RDY2)를 제1 상태 래치(264) 및 제2 상태 래치(265)에 제공한다. 여기서 상태 제어부(263)는 S-R 래치로 구성될 수 있다.The
제1 상태 래치(264)는 상태 제어부(263)로부터 제공된 접근 허용 신호(RDY1)를 래치하여 저장하고, 제2 상태 래치(265)는 상태 제어부(263)로부터 제공된 접근 허용 신호(RDY2)를 래치하여 저장한다. 여기서, 제1 상태 래치(264) 및 제2 상태 래치(265)는 D-플립플롭으로 구현될 수 있다.The
도 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
이후, 시간 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
그리고, 시간 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
따라서, 제2 프로세서(120)에 대한 접근 허용 신호(RDY2)는 여전히 논리값 '1'이 되고, 제2 프로세서(120)는 제1 공유 메모리 영역(211)에 접근할 수 없게 된다.Accordingly, the access permission signal RDY2 for the
시간 t3에서 제1 프로세서(110)가 제1 공유 메모리 영역(211)에 대한 접근을 종료하고 접근 요청 신호(REQ1)로 논리값 '1'을 제1 입력 래치(261)에 전송하게 되면, 상태 제어부(263)는 제1 상태 래치(264) 및 제2 상태 래치(264)에 저장된 접근 허용 신호(RDY1, RDY2)를 변화시키게 되어 접근 허용 신호(RDY1, RDY2)는 각각 논리값 '1', '0'이 된다. When the
그리고, 상태 변환된 접근 허용 신호(RDY1, RDY2)는 동기 제어부(240)의 제어에 의해 제1 프로세서(110) 및 제2 프로세서(120)에 전송되어, 제2 프로세서(120)가 제1 공유 메모리 영역(211)에 접근할 수 있게 된다.The state-converted access permission signals RDY1 and RDY2 are transmitted to the
이후, 시간 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
따라서, 제1 프로세서(110)에 대한 접근 허용 신호(RDY1)는 여전히 논리값 '1'이 되고, 제1 프로세서(110)는 제1 공유 메모리 영역(211)에 접근할 수 없게 된다.Therefore, the access permission signal RDY1 for the
시간 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
이후, 시간 t6에서 제1 프로세서(110)가 제1 공유 메모리 영역(211)에 대한 접근을 종료하고 접근 요청 신호(REQ1)로 논리값 '1'을 제1 입력 래치(261)에 전송하면 상태 제어부(263)는 이에 상응하여 제1 상태 래치(264)에 저장된 접근 허용 신호(RDY1)를 변화시키게 되고, 접근 허용 신호(RDY1)는 논리값 '1'이 된다.Thereafter, when the
도 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
도 4a 및 4b를 참조하면, 본 발명의 일실시예에 따른 동기 제어 장치(240)는 디코더(241), 멀티플렉서(242), 디멀티플렉서(243) 및 복수의 3-상태 버퍼(245, 246)를 포함한다.4A and 4B, the
디코더(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
각각의 세마포 셀(260 내지 290)은 바이트 단위의 어드레스를 각각 가지며, 디코더(241)에 입력되는 어드레스는 세마포 셀의 어드레스 바이트 중 최하위 비트(Least Significant Bit)에서 세마포 셀의 개수에 상응하는 개수 만큼의 어드레스 비트가 입력된다.Each
도 4a에서는 세마포 셀(260 내지 290)의 개수가 4개인 것으로 도시하였으므로 디코더(241)는 두 개의 입력 라인과 네 개의 출력 라인을 가지게 되고 디코의 두 개의 입력에는 세마포 셀의 어드레스 중에서 최하위 비트 A1 및 A0이 입력된다. 그리고, 디코더는 세마포 셀의 어드레스(A1, A0)를 디코딩하여 네 개의 출력(EN0 내지 EN3) 중에서 어느 하나를 인에이블 시킨다.In FIG. 4A, since the number of
멀티플렉서(242)는 세마포 셀의 어드레스(A1, A0)를 선택 입력으로 제공받고, 제공받은 어드레스(A1, A0)에 따라 멀티플렉싱을 수행하여 선택된 세마포 셀의 출력 라인과 데이터 버스(248)를 연결함으로써 출력 라인이 인에이블된 세마포 셀에서 출력된 데이터(DQ1)가 데이터 버스(248)로 출력되도록 한다. 여기서 출력된 데이터(DQ1)는 접근 허용 신호(RDY1.1 내지 RDY1.4)가 된다.The
디멀티플렉서(243)는 세마포 셀의 어드레스(A1, A0)를 선택 입력으로 제공받고, 제공받은 어드레스(A1, A0)에 따라 디멀티플렉싱을 수행하여 선택된 세마포 셀의 입력 라인과 데이터 버스(248)를 연결함으로써 데이터 버스(248)에서 제공된 데이터(DQ1)가 선택된 세마포 셀의 입력라인으로 제공되도록 한다.The
멀티플렉서(242) 및 디멀티플렉서(243)는 동일한 세마포 셀의 어드레스(A1, A0)를 각각의 선택 입력으로 제공받기 때문에 세마포 셀의 어드레스(A1, A0)에 따라 동일한 세마포 셀에 대한 데이터(DQ1)의 입출력이 가능하도록 멀티플렉싱 및 디멀티플렉싱을 수행한다.Since the
또한, 동기 제어 장치(240)는 쓰기 제어 신호(/WE)에 상응하여 선택된 세마포 셀에 대한 데이터(DQ1)의 입출력을 결정한다. 쓰기 제어 신호(/WE)가 활성화되면 선택된 세마포 셀에 대한 데이터(DQ1)의 입력 즉, 쓰기 동작이 수행되고, 쓰기 제어 신호(/WE)가 비활성화되면 선택된 세마포 셀에 대한 데이터(DQ1)의 출력 즉, 읽기 동작이 수행된다.In addition, the
도 4b에 도시된 진리표를 참조하여 동기 제어 장치(240)의 동작의 일 예를 들면, 어드레스 버스(247)를 통해 입력된 세마포 셀의 어드레스(A1, A0)가 논리값 '1, 0'이고, 쓰기 제어 신호(/WE)가 논리값 '0'이라면 디코더(241)는 논리값 '1, 0'을 디코딩하여 출력(EN2)을 활성화시킴으로써 제3 세마포 셀(280)이 선택되도록 한다.As an example of the operation of the
또한, 디멀티플렉서(243)는 세마포 셀의 어드레스(A1, A0)인 논리값 '1, 0'을 선택 입력으로 제공받고 디멀티플렉싱을 수행하여 데이터 버스(248)로부터 제공된 데이터(DQ1)인 접근 요청 신호(REQ1.3)를 제3 세마포 셀(280)의 입력 라인에 제공한다.In addition, the
그리고, 쓰기 제어 신호(/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
도 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
도 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
먼저, 시간 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
시간 t0에서 제1 태스크가 제2 공유 메모리 영역(213)에 대한 접근을 위해 제2 공유 메모리 영역(213)에 대응되는 제2 세마포 셀(270)의 제1 상태 래치(274)에 저장된 접근 허용 신호(RDY1)인 논리값 '1'을 읽는다.At time t0, the first task grants access stored in the
시간 t1에서 문맥 전환이 발생하여 제2 태스크가 제4 공유 메모리 영역(217)에 접근하기 위해 제4 공유 메모리 영역(217)에 대응되는 제4 세마포 셀(290)의 제1 상태 래치(294)에 저장된 접근 허용 신호(RDY1)인 논리값 '1'을 읽는다.The
그리고, 시간 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
이후 시간 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
도 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
도 6에서는 제1 프로세서(110)에서 실행되는 복수의 태스크 중 제1 태스크가 제1 공유 메모리 영역(211)에 접근하는 것으로 가정한다.In FIG. 6, it is assumed that a first task among a plurality of tasks executed in the
도 6을 참조하면, 먼저, 제1 태스크는 제1 공유 메모리 영역(211)에 접근하기 위해 제1 공유 메모리 영역(217)에 대응되는 제1 세마포 셀(260)의 어드레스를 어드레스 버스(247)에 제공한다(단계 301).Referring to FIG. 6, first, the first task receives an address of the
이후, 동기 제어부(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
어드레스 버스(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
여기서 디코더(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
예를 들어, 공유 메모리 영역 및 세마포 셀의 개수가 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
상기와 같은 동기 제어 장치를 가지는 듀얼 포트 메모리, 동기 제어 장치를 가지는 듀얼 포트 메모리 시스템 및 듀얼 포트 메모리 시스템의 동기 제어 방법에 따르면, 각각의 공유 메모리 영역에 대응되는 세마포 셀에 각각 별도의 주소를 할당하고, 소정의 공유 메모리 영역에 접근하고자 하는 프로세서 또는 태스크가 상기 소정의 공유 메모리 영역에 대응되는 세마포 셀에 독립적으로 접근 요청 신호를 기록하고, 접근 허용 신호를 독출한다.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)
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 KR20080046066A (en) | 2008-05-26 |
KR100863541B1 true 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) |
Families Citing this family (2)
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 |
Citations (4)
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 |
-
2006
- 2006-11-21 KR KR1020060115516A patent/KR100863541B1/en active IP Right Grant
Patent Citations (4)
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 |
Also Published As
Publication number | Publication date |
---|---|
KR20080046066A (en) | 2008-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5261803B2 (en) | High-speed fanout system architecture and input / output circuit for non-volatile memory | |
EP3082048B1 (en) | Memory configured to provide simultaneous read/write access to multiple banks | |
JPH04296958A (en) | Double-port memory system | |
US20070156937A1 (en) | Data transfer in multiprocessor 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 | |
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 | |
JP5061504B2 (en) | Dual port memory access right arbitration method | |
KR100652690B1 (en) | Multi processor apparatus for mobile communication device | |
KR19980068130A (en) | Data access control device using shared memory | |
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 | |
JPH05151769A (en) | Multi port memory | |
US6757752B2 (en) | Micro controller development system | |
KR20080084410A (en) | System virtual dma and driving method thereof | |
WO2011030498A1 (en) | Data processing device and data processing method |
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 |