KR20100111915A - Processor, multi-processor system and method for controlling access authority for shared memory in multi-processor system - Google Patents

Processor, multi-processor system and method for controlling access authority for shared memory in multi-processor system Download PDF

Info

Publication number
KR20100111915A
KR20100111915A KR1020090030392A KR20090030392A KR20100111915A KR 20100111915 A KR20100111915 A KR 20100111915A KR 1020090030392 A KR1020090030392 A KR 1020090030392A KR 20090030392 A KR20090030392 A KR 20090030392A KR 20100111915 A KR20100111915 A KR 20100111915A
Authority
KR
South Korea
Prior art keywords
shared memory
access
memory area
access right
processor
Prior art date
Application number
KR1020090030392A
Other languages
Korean (ko)
Other versions
KR101110550B1 (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 KR1020090030392A priority Critical patent/KR101110550B1/en
Publication of KR20100111915A publication Critical patent/KR20100111915A/en
Application granted granted Critical
Publication of KR101110550B1 publication Critical patent/KR101110550B1/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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports

Abstract

PURPOSE: A processor, a multi-processor system and a method for controlling access authority for shared memory in multi-processor system are provided to reduce the delay time for checking the access authority to a shared memory area by confirming the access authority by a first and second semaphore register included in the processor devices. CONSTITUTION: A semaphore register(131) stores the same data as data showing the access authority saved in a register(460). An access management unit(132) reads out data showing the access authority based on the access command about the common memory address offered from a processor(110) from the semaphore register. The access authority of the shared memory area is confirmed. The semaphore register is synchronized in the register included in the multi-port memory(400), and the data showing the access authority is recorded.

Description

프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 방법{Processor, Multi-processor System And Method For Controlling Access Authority For Shared Memory In Multi-processor System}Processor, Multi-processor System And Method For Controlling Access Authority For Shared Memory In Multi-processor System

본 발명은 멀티 프로세서 시스템에 관한 것으로, 더욱 상세하게는 공유메모리 영역의 접근 지연 시간을 감소시킬 수 있는 프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 권한 제어 방법에 관한 것이다.The present invention relates to a multiprocessor system, and more particularly, to a processor device, a multiprocessor system, and a method of controlling shared memory access rights of a multiprocessor system capable of reducing an access delay time of a shared memory area.

1990년대 후반 이후 핸드폰, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 디지털 카메라 등의 이동 멀티미디어 단말기 시장은 급격하게 발전해 왔고, 이동 통신 기능뿐만 아니라 사용자의 다양한 요구를 만족시키기 위해 오디오, 비디오, 게임 등과 같은 다양한 멀티미디어 데이터의 재생 기능을 포함한다.Since the late 1990s, the mobile multimedia terminal market such as mobile phones, PDAs (Personal Digital Assistants), Portable Multimedia Players (PMPs), digital cameras, etc. has been rapidly developed, and in order to satisfy various needs of users as well as mobile communication functions. And playback of various multimedia data, such as games.

상기한 바와 같은 다양한 기능을 지원하기 위해 이동 멀티미디어 단말기는 두 개의 이상의 프로세서를 구비하고 각각의 프로세서가 메모리 영역을 공유하여 사용하는 멀티프로세서 시스템 형태로 구현되고 있다.In order to support various functions as described above, a mobile multimedia terminal includes two or more processors, and each processor is implemented as a multiprocessor system in which each processor shares a memory area.

예를 들어, 이동 멀티미디어 단말기는 이동 통신 기능을 수행하는 베이스밴 드(baseband) 프로세서와 멀티미디어 데이터의 처리를 위한 어플리케이션(application) 프로세서를 구비하고, 두 프로세서 사이의 데이터 송수신을 고속으로 수행하여 시스템의 처리 성능을 향상시키고 메모리의 실장 면적을 줄일 수 있는 듀얼포트 메모리(Dual Port Memory)를 구비한다.For example, a mobile multimedia terminal includes a baseband processor that performs a mobile communication function and an application processor for processing multimedia data, and performs data transmission and reception between two processors at high speed. It has dual port memory which can improve processing performance and reduce memory footprint.

도 1은 일반적인 멀티프로세서 시스템의 구성을 나타내는 블록도이다.1 is a block diagram showing the configuration of a general multiprocessor system.

도 1을 참조하면, 멀티프로세서 시스템은 크게 베이스밴드 프로세서(10), 어플리케이션 프로세서(20) 및 듀얼포트 메모리(30)로 구성된다. Referring to FIG. 1, a multiprocessor system is mainly composed of a baseband processor 10, an application processor 20, and a dual port memory 30.

듀얼포트 메모리(30)는 제1 포트(15)를 통해 베이스밴드 프로세서(10)가 전용으로 사용하는 제1 전용 메모리 영역(31)과, 제2 포트(25)를 통해 어플리케이션 프로세서(20)가 전용으로 사용하는 제2 전용 메모리 영역(33) 및 베이스밴드 프로세서(10)와 어플리케이션 프로세서(20)가 공유하여 사용하는 공유메모리 영역(35)을 포함한다.The dual port memory 30 may include a first dedicated memory area 31 dedicated to the baseband processor 10 through the first port 15, and an application processor 20 through the second port 25. A second dedicated memory area 33 used exclusively and a shared memory area 35 shared and used by the baseband processor 10 and the application processor 20 are included.

또한, 듀얼포트 메모리(30)는 상기 공유메모리 영역(35)에 대한 베이스밴드 프로세서(10)와 어플리케이션 프로세서(20)의 상호 배타적(mutual exclusion) 접근을 보장하고 각 프로세서간의 동기화된 작업을 보장하기 위한 동기 제어부(36)를 포함한다. 여기서, 동기 제어부는 하드웨어 세마포(hardware semaphore)로 구성될 수 있다.In addition, the dual port memory 30 ensures mutual exclusion of the baseband processor 10 and the application processor 20 to the shared memory area 35 and to ensure synchronized operation between the processors. And a synchronization control unit 36 for control. Here, the synchronization controller may be configured as a hardware semaphore.

동기 제어부(36)는 접근 권한 정보를 저장하는 세마포 레지스터(37)와, 베이스밴드 프로세서(10) 또는 어플리케이션 프로세서(20)로부터 공유메모리 영역(35)에 대한 접근 권한 요청 명령어나 공유메모리 영역(35)에 저장되어 상대 포트로 전 송되어야 하는 데이터의 크기 및 위치에 대한 정보를 저장하는 권한요청 레지스터(39)로 구성된다. The synchronization controller 36 includes a semaphore register 37 that stores access right information, an access right request command or a shared memory area 35 from the baseband processor 10 or the application processor 20 to the shared memory area 35. It is composed of an authorization request register (39) for storing information about the size and location of the data to be stored in the ()) and to be transmitted to the relative port.

제1 포트(15)를 통해 권한요청 레지스터(39)에 베이스밴드 프로세서(10)가 쓰기(write) 동작을 수행하는 경우 어플리케이션 프로세서(20)는 제2 포트(25)를 통해 읽기(read) 동작이 가능하고, 제2 포트(25)를 통해 권한요청 레지스터(39)에 어플리케이션 프로세서(20)가 쓰기 동작을 수행하는 경우 베이스밴드 프로세서(10)는 제1 포트(15)를 통해 읽기 동작이 가능하다.When the baseband processor 10 writes to the authorization request register 39 through the first port 15, the application processor 20 reads through the second port 25. When the application processor 20 performs a write operation to the authorization request register 39 through the second port 25, the baseband processor 10 may perform a read operation through the first port 15. Do.

또한, 권한요청 레지스터(39)에 제1 포트(15) 및 제2 포트(25) 중 어느 하나의 포트를 통해 쓰기 동작이 수행되면 이에 상응하여 다른 포트에는 인터럽트(interrupt) 신호가 발생되고, 인터럽트가 발생된 포트를 통해 권한요청에 대한 읽기 동작이 수행될때까지 권한요청 레지스터(39)에 기록된 데이터는 유지된다.In addition, when a write operation is performed to the authority request register 39 through one of the first port 15 and the second port 25, an interrupt signal is generated at the other port accordingly. The data recorded in the authorization request register 39 is maintained until a read operation for the authorization request is performed through the generated port.

종래의 멀티프로세서 시스템은 듀얼포트 메모리(30)의 동기 제어부(36)를 통하여 공유메모리 영역(35)에 대한 접근 권한을 획득한다. 따라서, 공유메모리 영역(35)에 대한 접근 권한이 없는 프로세서가 공유메모리 영역(35)에 접근 권한을 획득하기 위해서는 먼저 접근 권한을 요청한 후 접근 권한을 획득할때까지 대기해야 하고 이로 인한 지연 시간은 고속 데이터 처리 및 전송이 요구되는 시스템에서 커다란 장애 요소로 작용한다.The conventional multiprocessor system obtains the access right to the shared memory area 35 through the synchronization control unit 36 of the dual port memory 30. Therefore, in order to obtain access to the shared memory area 35, a processor without access to the shared memory area 35 must first request the access right and then wait until the access right is acquired. It is a major obstacle in systems requiring high speed data processing and transmission.

도 2는 도 1에 도시된 멀티프로세서 시스템의 공유메모리 영역에 대한 접근 권한 획득 과정을 나타내는 타이밍도로서, 공유메모리 영역에 대한 접근 권한을 제2 포트가 가진 경우 제1 포트가 공유메모리 영역에 대한 접근 권한을 획득하는 과 정을 나타낸다.FIG. 2 is a timing diagram illustrating a process of obtaining access right to a shared memory area of the multiprocessor system shown in FIG. 1. Represents the process of obtaining access rights.

도 2를 참조하면, 제1 포트는 공유메모리 영역을 액세스(access)하기 위해 시간 t0에서 세마포 레지스터를 독출하여 접근 권한을 확인한다. 공유메모리 영역에 대한 접근 권한을 제2 포트가 가지고 있기 때문에 제1 포트는 접근 권한이 없음을 인지하고 시간 t1에서 공유메모리 영역의 접근 권한을 요청하는 메시지를 권한요청 레지스터에 기록한다.Referring to FIG. 2, the first port reads a semaphore register at time t0 to check an access right to access a shared memory area. Since the second port has access rights to the shared memory area, the first port recognizes that there is no access right, and writes a message requesting access rights of the shared memory area to the authority request register at time t1.

권한요청 레지스터에 제1 포트가 접근 권한 요청 메시지를 기록함에 따라 제2 포트로 인터럽트 신호가 발생되고, 제2 포트는 발생된 인터럽트 신호에 상응하여 시간 t2에서 권한요청 레지스터에 기록된 메시지를 독출함으로써 권한요청 레지스터를 확인한다.As the first port writes an access request message to the authorization request register, an interrupt signal is generated to the second port, and the second port reads the message written to the authorization request register at time t2 corresponding to the generated interrupt signal. Check the authorization request register.

이후, 시간 t3에서 제2 포트는 공유메모리 영역에 대한 접근 권한을 해제하고 세마포 레지스터에 접근 권한 해제에 상응하는 데이터를 기록한다.Then, at time t3, the second port releases access to the shared memory area and writes data corresponding to the release of access to the semaphore register.

시간 t4에서 제1 포트는 공유메모리 영역에 대한 접근 권한을 확인하기 위해 세마포 레지스터를 독출하고, 그 결과 공유메모리 영역에 대한 접근 권한이 변경되었음을 인지하고, 시간 t5에서 공유메모리 영역을 액세스한다.At time t4, the first port reads the semaphore register to confirm the access right to the shared memory area, recognizes that the access right to the shared memory area has changed as a result, and accesses the shared memory area at time t5.

결과적으로 제1 포트는 시간 t0에서 공유메모리 영역에 대한 액세스를 시도하여 시간 t5에서 공유메모리 영역에 액세스한다. 따라서, 제1 포트의 공유메모리 영역에 대한 액세스 지연 시간은 시간 t0 내지 t5가 된다.As a result, the first port attempts to access the shared memory area at time t0 to access the shared memory area at time t5. Therefore, the access delay time for the shared memory area of the first port is time t0 to t5.

도 2에서는 시간 t3에서 공유메모리 영역에 대한 접근 권한이 변경된 후 시간 t4에서 제1 포트가 접근 권한이 변경되었음을 인지하는 것으로 도시하였으나, 실질적으로는 제1 포트가 접근 권한이 변경되는 시점을 자동적으로 알 수 없기 때문에 반복적으로 듀얼포트 메모리의 세마포 레지스터를 독출하게 된다.In FIG. 2, the first port recognizes that the access right has been changed at time t4 after the access right to the shared memory region has been changed at time t3. Because it is unknown, the semaphore registers of the dual port memory are read repeatedly.

또한, 도 2에서는 복수의 명령어 실행을 하나의 시간 간격으로 표시하였으나 실질적으로 하나의 명령어가 수행되기 위해서는 명령어 실행 사이클에 해당하는 복수의 클럭이 필요하기 때문에 제1 포트가 공유메모리 영역에 액세스하기 위한 지연시간은 무시할 수 없을 정도로 크다. 그리고, 공유메모리 영역에 대한 액세스를 시도할 때 마다 도 2에 도시된 바와 같은 과정을 반복해야하기 때문에 공유메모리 영역의 사용시간이 증가하면 이에 상응하여 액세스 지연시간은 기하급수적으로 증가하게 된다.In addition, in FIG. 2, the execution of a plurality of instructions is indicated at one time interval, but since a plurality of clocks corresponding to an instruction execution cycle is required to substantially execute one instruction, the first port may access the shared memory region. The delay is so large that it can't be ignored. Since the process shown in FIG. 2 must be repeated every time the access to the shared memory area is attempted, the access delay time increases exponentially as the usage time of the shared memory area increases.

도 2에 도시된 바와 같이 종래의 멀티프로세서 시스템은 권한이 없는 포트가 공유메모리 영역에 액세스 하기 위해 세마포 레지스터를 독출하는 동작으로 인한 지연시간과, 사용 권한이 없는 포트가 공유메모리 영역에 대한 사용 권한을 요청하고 액세스할때까지 기다리는 지연시간과, 권한이 없는 포트가 권한요청 레지스터에 권한 요청 데이터를 기록함으로써 발생되는 인터럽트에 의해 권한을 가진 포트가 권한요청 레지스터를 독출하고 기록하는 지연시간이 발생됨으로써 고속 데이터 처리에 장애가 되는 문제점이 있다.As shown in FIG. 2, the conventional multiprocessor system has a delay time caused by an unauthorized port reading a semaphore register to access a shared memory area, and an unlicensed port uses the shared memory area. There is a delay between waiting for access and requesting authorization, and an interrupt caused by an unauthorized port writing authorization request data to an authorization request register, causing the authorized port to read and write an authorization request register. As a result, there is a problem in that high-speed data processing becomes an obstacle.

따라서, 본 발명의 제1 목적은 공유메모리 영역에 대한 접근 지연 시간을 감소시킬 수 있는 프로세서 장치를 제공하는 것이다.Accordingly, a first object of the present invention is to provide a processor device capable of reducing an access delay time for a shared memory area.

또한, 본 발명의 제2 목적은 공유메모리 영역에 대한 접근 지연 시간을 감소시킬 수 있는 멀티 프로세서 시스템을 제공하는 것이다.It is also a second object of the present invention to provide a multiprocessor system capable of reducing access delay time for a shared memory area.

또한, 본 발명의 제3 목적은 공유메모리 영역에 대한 접근 지연 시간을 감소시킬 수 있는 멀티 프로세서 시스템의 공유메모리 접근 방법을 제공하는 것이다.In addition, a third object of the present invention is to provide a shared memory access method of a multiprocessor system capable of reducing access delay time for a shared memory region.

상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일 측면에 따른 프로세서 장치는, 공유메모리 영역 및 상기 공유메모리 영역에 대한 접근 권한을 나타내는 데이터가 저장되는 레지스터를 구비한 다중 포트 메모리를 액세스하는 프로세서 장치에 있어서, 명령어를 실행하는 프로세서와, 상기 레지스터에 저장된 접근 권한을 나타내는 데이터와 동일한 데이터가 저장되는 세마포 레지스터 및 상기 프로세서로부터 제공된 상기 공유메모리 영역에 대한 액세스 명령어에 기초하여 상기 세마포 레지스터로부터 상기 접근 권한을 나타내는 데이터를 독출하여 상기 공유메모리 영역의 접근 권한을 확인하는 접근 관리부를 포함한다. 상기 세마포 레지스터는 상기 다중 포트 메모리에 구비된 상기 레지스터와 동기되어 상기 접근 권한을 나타내는 데이터가 기록될 수 있다. 상기 접근 관리부는 상기 공유메모리 영역에 대한 접근 권한이 없는 것으로 판단된 경우에는 상기 공유메모리 영역에 대한 접근 권한을 요청하는 메시지를 상기 다중 포트 메모리에 전송할 수 있다. 상기 접근 관리부는 상기 공유메모리 영역에 대한 접근 권한을 요청한 후 상기 다중 포트 메모리의 상기 레지스터로부터 상기 접근 권한을 나타내는 데이터를 독출하고, 상기 접근 권한을 나타내는 데이터가 변경된 경우 상기 변경된 데이터를 상기 세마포 레지 스터에 기록할 수 있다. 상기 프로세서 장치는 상기 프로세서로부터 제공된 명령어가 순차적으로 저장되는 명령어 저장부를 더 포함할 수 있다. 상기 접근 관리부는 소정 명령어가 실행되는 도중 상기 명령어 저장부에서 상기 공유메모리 영역을 액세스하는 명령어의 존재여부를 판단하고, 상기 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하는 것으로 판단되는 경우에는 상기 소정 명령어의 실행이 종료된 후 상기 공유메모리 영역에 대한 접근 권한을 요청하는 메시지를 상기 다중 포트 메모리에 전송할 수 있다. 상기 접근 관리부는 상기 공유메모리 영역에 대한 접근 권한을 획득한 후 상기 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하지 않는 경우 상기 공유메모리 영역에 대한 접근 권한을 해제할 수 있다. 또한, 본 발명의 제2 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티 프로세서 시스템은 공유메모리 영역, 상기 공유메모리 영역에 대한 접근 권한을 나타내는 접근 권한 데이터가 저장되는 세마포 레지스터 및 상기 공유메모리 영역에 대한 접근권한을 요청하는 메시지가 저장되는 권한요청 레지스터를 구비한 듀얼포트메모리와, 상기 세마포 레지스터와 동기되어 상기 접근 권한 데이터와 동일한 데이터가 저장되는 제1 세마포 레지스터를 구비하고, 상기 제1 세마포 레지스터로부터 상기 접근 권한 데이터를 독출하여 상기 공유메모리 영역에 대한 접근 권한을 확인하는 제1 프로세서 장치 및 상기 세마포 레지스터와 동기되어 상기 접근 권한 데이터와 동일한 데이터가 저장되는 제2 세마포 레지스터를 구비하고, 상기 제2 세마포 레지스터로부터 상기 접근 권한 데이터를 독출하여 상기 공유메모리 영역에 대한 접근 권한을 확인하는 제2 프로세서 장치를 포함한다. 상기 제1 프로세서 장치는 상기 공유메모리 영역에 대한 접근 권한이 없는 것으로 판단되면 상기 권한요청 레지스터에 상기 공유메모리 영역의 접근 권한을 요청하는 메시지를 기록할 수 있다. 상기 제2 프로세서 장치는 상기 권한요청 레지스터에 메시지가 기록되었음을 지시하는 인터럽트 신호를 제공받고 상기 권한요청 레지스터에 기록된 메시지를 확인한 후 상기 세마포 레지스터 및 상기 제2 세마포 레지스터에 상기 공유메모리 영역에 대한 접근 권한 해제를 나타내는 접근 권한 데이터를 기록할 수 있다. 상기 제1 프로세서 장치는 상기 공유메모리 영역에 대한 접근 권한을 요청한 후 상기 세마포 레지스터로부터 상기 접근 권한 데이터를 독출하고, 상기 접근 권한 데이터가 변경된 경우 상기 변경된 접근 권한 데이터를 상기 제1 세마포 레지스터에 기록할 수 있다. 상기 제1 프로세서 장치는 상기 제1 프로세서로부터 제공된 명령어가 순차적으로 저장되는 제1 명령어 저장부를 더 포함할 수 있다. 상기 제1 프로세서 장치는 소정 명령어가 실행되는 도중 상기 제1 명령어 저장부에서 상기 공유메모리 영역을 액세스하는 명령어의 존재여부를 판단하고, 상기 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하는 것으로 판단되는 경우에는 상기 소정 명령어의 실행이 종료된 후 상기 공유메모리 영역에 대한 접근 권한을 요청하는 메시지를 상기 권한요청 레지스터에 기록할 수 있다. 상기 제1 프로세서 장치는 상기 공유메모리 영역에 대한 접근 권한을 획득한 후 상기 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하지 않는 경우 상기 공유메모리 영역에 대한 접근 권한 해제를 나타내는 접근 권한 데이터를 기록할 수 있다. 상기 제2 프로세서 장치는 상기 제2 프로세서로부터 제공된 명령 어가 순차적으로 저장되는 제2 명령어 저장부를 더 포함할 수 있다. A processor device according to an aspect of the present invention for achieving the first object of the present invention described above, accesses a multi-port memory having a shared memory area and a register for storing data representing access rights to the shared memory area. A processor device comprising: a processor executing an instruction, a semaphore register storing data identical to data representing an access right stored in the register, and an access instruction to the shared memory region provided from the processor; And an access manager that reads data representing the access right and checks the access right of the shared memory area. The semaphore register may record data indicating the access right in synchronization with the register provided in the multi-port memory. If it is determined that there is no access right to the shared memory area, the access manager may transmit a message requesting access right to the shared memory area to the multi-port memory. The access manager reads the data representing the access right from the register of the multi-port memory after requesting the access right to the shared memory area, and if the data indicating the access right is changed, the semaphore register. Can be written on. The processor device may further include an instruction storage unit in which instructions provided from the processor are sequentially stored. The access manager determines whether a command for accessing the shared memory area in the command storage unit while a predetermined command is executed, and determines that the command for accessing the shared memory area exists in the command storage unit. After the execution of the predetermined command is terminated, a message for requesting permission to access the shared memory area may be transmitted to the multi-port memory. The access manager may release the access right to the shared memory area when the command for accessing the shared memory area does not exist in the command storage unit after obtaining the access right to the shared memory area. In addition, the multi-processor system according to an aspect of the present invention for achieving the second object of the present invention is a shared memory area, a semaphore register that stores access rights data indicating access rights to the shared memory area and the shared memory area A dual-port memory having a permission request register for storing a message requesting access permission for the first access point, and a first semaphore register for storing the same data as the access right data in synchronization with the semaphore register; A first processor device configured to read the access right data from the register to check access rights to the shared memory area, and a second semaphore register configured to store the same data as the access right data in synchronization with the semaphore register; From the second semaphore register It reads out the access rights data and a second processor unit to determine the access to the shared memory region. If it is determined that there is no access right to the shared memory area, the first processor device may write a message requesting access right of the shared memory area to the right request register. The second processor device receives an interrupt signal indicating that a message has been written to the permission request register, checks a message written to the permission request register, and accesses the shared memory area to the semaphore register and the second semaphore register. You can record access rights data indicating the release of privileges. The first processor device reads the access right data from the semaphore register after requesting the access right to the shared memory area, and writes the changed access right data to the first semaphore register when the access right data is changed. Can be. The first processor device may further include a first instruction storage unit to sequentially store instructions provided from the first processor. The first processor device determines whether an instruction for accessing the shared memory area is present in the first instruction storage unit while a predetermined instruction is executed, and the instruction for accessing the shared memory region in the first instruction storage unit is determined. If it is determined to exist, after the execution of the predetermined command is terminated, a message requesting the access right to the shared memory area may be recorded in the authority request register. After the first processor device acquires the access right to the shared memory area and there is no command to access the shared memory area in the first command storage unit, the first processor device access indicating to release the access right to the shared memory area. Authorization data can be recorded. The second processor device may further include a second instruction storage unit in which instructions provided from the second processor are sequentially stored.

또한, 본 발명의 제3 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티 프로세서 시스템의 공유메모리 접근 방법은 제1 프로세서 장치, 제2 프로세서 장치 및 듀얼포트메모리를 포함하는 멀티프로세서 시스템의 공유메모리 접근 방법에 있어서, 상기 제1 프로세서 장치가 내부에 구비된 제1 세마포 레지스터를 독출하여 상기 듀얼포트메모리의 공유메모리 영역에 대한 접근 권한을 판단하는 단계와, 상기 공유메모리 영역에 대한 접근 권한이 없는 경우 상기 듀얼포트메모리에 상기 공유메모리 영역에 대한 접근 권한을 요청하는 단계와, 상기 제2 프로세서가 상기 듀얼포트메모리의 권한요청 레지스터를 확인한 후 상기 듀얼포트메모리에 구비된 세마포 레지스터 및 상기 제2 프로세서 내부에 구비된 제2 세마포 레지스터에 상기 공유메모리 영역에 대한 접근 권한 해제를 나타내는 데이터를 기록하는 단계 및 상기 제1 프로세서가 상기 세마포 레지스터를 독출하여 상기 공유메모리 영역에 대한 접근 권한을 획득하는 단계를 포함한다. 상기 공유메모리 영역에 대한 접근 권한이 없는 경우 상기 듀얼포트메모리에 상기 공유메모리 영역에 대한 접근 권한을 요청하는 단계는, 상기 제1 프로세서 장치 내부에 구비된 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어의 존재여부를 판단하고, 상기 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하는 경우 현재 실행중인 명령어의 실행이 종료된 후 상기 공유메모리 영역에 대한 접근 권한을 요청할 수 있다. 상기 멀티프로세서 시스템의 공유메모리 접근 방법은 상기 제1 프로세서가 상기 공유메모리 영역에 대한 접근 권한을 획득한 후 상기 제1 명령어 저장부에 상 기 공유메모리 영역을 액세스하는 명령어가 존재하는 가를 판단하는 단계 및 상기 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하지 않는 경우 상기 듀얼포트메모리에 구비된 세마포 레지스터 및 상기 제1 세마포 레지스터에 상기 공유메모리 영역에 대한 접근 권한 해제를 나타내는 데이터를 기록하는 단계를 더 포함할 수 있다.In addition, a shared memory access method of a multiprocessor system according to an aspect of the present invention for achieving a third object of the present invention is a shared memory of a multiprocessor system including a first processor device, a second processor device, and a dual port memory. In the access method, the first processor device to read the first semaphore register provided therein to determine the access rights to the shared memory area of the dual-port memory, and the access rights to the shared memory area does not have Requesting the dual port memory to access the shared memory area; and after the second processor checks the permission request register of the dual port memory, the semaphore register and the second processor provided in the dual port memory. A second semaphore register provided therein for the shared memory area. Recording data indicating one release of an access right; and acquiring, by the first processor, the semaphore register to obtain access to the shared memory area. If there is no access right to the shared memory area, requesting access rights to the shared memory area from the dual port memory may include requesting the shared memory area to a first instruction storage provided in the first processor device. It may be determined whether there is a command to access, and if there is a command to access the shared memory area in the first command storage, the access right to the shared memory area may be requested after the execution of the command currently being executed. have. In the method of accessing a shared memory of the multiprocessor system, after the first processor acquires an access right to the shared memory area, determining whether there is an instruction to access the shared memory area in the first command storage unit. And a semaphore register provided in the dual port memory and a first semaphore register in the first instruction storage unit, when the instruction for accessing the shared memory region does not exist. The method may further include recording.

상기와 같은 프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 방법에 따르면, 제1 프로세서 장치 및 제2 프로세서 장치가 각각 듀얼포트메모리에 구비된 세마포 레지스터와 동기화된 제1 세마포 레지스터 및 제2 세마포 레지스터를 포함하고 공유메모리 영역에 대한 권한 확인을 위해 각각 프로세서 장치에 포함된 제1 세마포 레지스터 및 제2 세마포 레지스터를 확인함으로써 공유메모리 영역에 대한 접근 권한 확인을 위해 소요되는 지연시간을 감소시킨다.According to the shared memory access method of the processor device, the multi-processor system and the multi-processor system as described above, the first processor device and the second processor device, respectively, the first semaphore register and the second synchronized with the semaphore register provided in the dual port memory Determining the first semaphore register and the second semaphore register included in the processor device for checking the authority of the shared memory area and including the semaphore register, respectively, reduces the delay time required for checking the access right to the shared memory area.

또한, 제1 프로세서 장치 및 제2 프로세서 장치는 각각 소정 개수의 명령어를 저장하는 제1 명령어 저장부 및 제2 명령어 저장부를 구비하고, 명령어 저장부에 공유메모리 영역을 액세스하는 명령어가 포함되면 다음 명령어의 실행전에 미리 프리페치하여 접근 권한을 요청함으로써 공유메모리 영역에 대한 접근 권한 요청 후 접근 권한 획득시까지 대기하는 지연시간을 감소시킨다.In addition, each of the first processor device and the second processor device may include a first instruction storage unit and a second instruction storage unit for storing a predetermined number of instructions, and if the instruction storage unit includes an instruction for accessing the shared memory region, the next instruction unit may include: By prefetching and requesting the access right before execution, the delay time waiting for access right after requesting access right to the shared memory area is reduced.

또한, 공유메모리 영역의 접근 빈도에 기초하여 제1 프로세서 장치 및 제2 프로세서 장치에 공유메모리 영역에 대한 접근 우선순위를 부여하고, 접근 우선순 위가 낮은 프로세서 장치는 자신의 명령어 저장부에 저장된 명령어 중 공유메모리 영역에 액세스하는 명령어가 없는 경우에만 접근 권한을 해제하도록 함으로써 공유메모리 영역에 대한 빈번한 접근 권한 요청 및 해제로 인한 지연시간을 감소시킨다.In addition, based on the access frequency of the shared memory area, the first processor device and the second processor device give the access priority to the shared memory area, and a processor device having a low access priority may store instructions stored in its instruction storage unit. By removing the access right only when there is no command to access the shared memory area, the delay time caused by frequent request and release of the shared memory area is reduced.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.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. Like reference numerals are used for like elements in describing each drawing.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. 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. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있 을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is said to be "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but other components may be present in the middle. It should be understood. 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.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in the commonly used dictionaries should be construed as having meanings consistent with the meanings in the context of the related art and shall not be construed in ideal or excessively formal meanings unless expressly defined in this application. Do not.

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

도 3은 본 발명의 일 실시예에 따른 멀티 프로세서 시스템의 구성을 나타내는 블록도이다.3 is a block diagram illustrating a configuration of a multiprocessor system according to an exemplary embodiment of the present invention.

도 3을 참조하면, 멀티 프로세서 시스템은 제1 프로세서 장치(100), 제2 프로세서 장치(200) 및 듀얼포트메모리(400)를 포함할 수 있다. 제1 프로세서 장치(100)는 제1 포트(310)를 통해 듀얼포트메모리(400)에 액세스하고, 제2 프로세서 장치(200)는 제2 포트(320)를 통해 듀얼포트메모리(400)에 액세스한다.Referring to FIG. 3, the multiprocessor system may include a first processor device 100, a second processor device 200, and a dual port memory 400. The first processor device 100 accesses the dual port memory 400 through the first port 310, and the second processor device 200 accesses the dual port memory 400 through the second port 320. do.

제1 프로세서 장치(100)는 제1 프로세서(110) 및 제1 액세스 제어부(130)를 포함할 수 있고, 제1 액세스 제어부(130)는 제1 세마포 레지스터(131), 제1 접근 관리부(132) 및 제1 외부버스 인터페이스(139)를 포함할 수 있다.The first processor device 100 may include a first processor 110 and a first access control unit 130, and the first access control unit 130 may include a first semaphore register 131 and a first access management unit 132. And the first external bus interface 139.

제1 프로세서(110)는 예를 들어 이동통신 단말기의 베이스밴드 프로세서로 구성될 수 있고, 제1 액세스 제어부(130)는 제1 프로세서(110)로부터 제공된 명령어에 기초하여 공유메모리 영역(450)에 대한 접근 권한 확인, 접근 권한 요청 및 접근 권한 해제 등과 같은 처리를 수행한다.The first processor 110 may be configured as, for example, a baseband processor of a mobile communication terminal, and the first access control unit 130 may access the shared memory area 450 based on instructions provided from the first processor 110. Performs processes such as checking access rights, requesting access rights, and releasing access rights.

제1 세마포 레지스터(131)는 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한을 나타내는 데이터가 저장된다. The first semaphore register 131 stores data representing an access right to the shared memory area 450 of the dual port memory 400.

제1 세마포 레지스터(131)는 프로세서 장치의 수 및/또는 공유메모리 영역의 개수에 상응하는 비트로 구성될 수 있다. 예를 들어, 하나의 공유 메모리 영역을 두 개의 프로세서 장치가 공유하는 경우 제1 세마포 레지스터(131)는 하나의 비트 로 구성될 수 있고, 제1 세마포 레지스터(131)에 저장된 접근 권한 데이터가 '0'인 경우에는 제1 프로세서 장치(100)가 공유메모리 영역(450)에 대한 접근 권한을 획득하고, 접근 권한 데이터가 '1'인 경우에는 제2 프로세서 장치가 공유메모리 영역(450)에 대한 접근 권한을 획득하도록 구성될 수 있다.The first semaphore register 131 may be configured with bits corresponding to the number of processor devices and / or the number of shared memory areas. For example, when two processor devices share a shared memory area, the first semaphore register 131 may be configured with one bit, and the access right data stored in the first semaphore register 131 is '0'. ', The first processor device 100 obtains the access right to the shared memory area 450, and if the access right data is' 1', the second processor device accesses the shared memory area 450. It may be configured to obtain a right.

또한, 제1 세마포 레지스터(131)는 듀얼포트메모리(400)의 세마포 레지스터(461)와 동기화되어 동작된다. 구체적으로 멀티프로세서 시스템이 부팅되면 듀얼포트메모리(400)의 세마포 레지스터(461)는 기본값(예를 들면, '1')을 가지게 되고 제1 세마포 레지스터(131)도 세마포 레지스터(461)에 저장된 데이터와 동일한 데이터(즉, '1')를 가지게 된다. 이후, 공유메모리 영역(450)에 대한 접근 권한이 변경되면 듀얼포트메모리(400)의 세마포 레지스터(461)와 제1 세마포 레지스터(131)는 동일한 데이터가 기록된다.In addition, the first semaphore register 131 is operated in synchronization with the semaphore register 461 of the dual port memory 400. Specifically, when the multiprocessor system is booted, the semaphore register 461 of the dual port memory 400 has a default value (for example, '1'), and the first semaphore register 131 also stores data stored in the semaphore register 461. Will have the same data (ie '1'). Thereafter, when the access right to the shared memory area 450 is changed, the same data is recorded in the semaphore register 461 and the first semaphore register 131 of the dual port memory 400.

제1 접근 관리부(132)는 제1 프로세서(110)로부터 제공된 명령어에 기초하여 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한 요청 및 접근 권한 해제 등의 처리를 수행한다.The first access manager 132 performs a process such as requesting an access right for the shared memory area 450 of the dual port memory 400 and releasing the access right based on the command provided from the first processor 110.

예를 들어, 제1 접근 관리부(132)는 제1 프로세서(110)로부터 공유메모리 영역(450)에 대한 액세스를 지시하는 명령어가 제공된 경우 제1 세마포 레지스터(131)에 기록된 접근 권한 데이터를 독출하여 공유메모리 영역(450)에 대한 접근 권한을 판단하고, 접근 권한이 없는 것으로 판단되면 제1 포트(310)를 통해 듀얼포트메모리(400)의 권한요청 레지스터(463)에 공유메모리 영역(450)의 접근 권한을 요청하는 메시지를 기록한다.For example, the first access manager 132 reads the access right data recorded in the first semaphore register 131 when a command for instructing access to the shared memory area 450 is provided from the first processor 110. The access authority for the shared memory region 450 is determined, and if it is determined that there is no access authority, the shared memory region 450 is stored in the authority request register 463 of the dual port memory 400 through the first port 310. Record the message requesting the access rights of.

제1 외부버스 인터페이스(139)는 일종의 메모리 컨트롤러(memory controller) 역할을 수행하며 SDRAM(Synchronous DRAM) 또는 PSRAM(Pseudo SRAM) 외부 버스 인터페이스로 구성될 수 있다.The first external bus interface 139 serves as a kind of memory controller and may be configured as a synchronous DRAM (SDRAM) or a pseudo SRAM (PSRAM) external bus interface.

제2 프로세서 장치(200)는 제2 프로세서(210) 및 제2 액세스 제어부(230)를 포함할 수 있고, 제2 액세스 제어부(230)는 제2 세마포 레지스터(231), 제2 접근 관리부(232) 및 제2 외부버스 인터페이스(239)를 포함할 수 있다.The second processor device 200 may include a second processor 210 and a second access control unit 230, and the second access control unit 230 may include a second semaphore register 231 and a second access management unit 232. ) And a second external bus interface 239.

제2 프로세서(210)는 예를 들어, 이동통신 단말기의 어플리케이션 프로세서가 될 수 있고, 제2 액세스 제어부(230)는 제2 프로세서(210)로부터 제공된 명령어에 기초하여 공유메모리 영역(450)에 대한 접근 권한 확인, 접근 권한 요청 및 접근 권한 해제 등과 같은 처리를 수행한다.The second processor 210 may be, for example, an application processor of a mobile communication terminal, and the second access control unit 230 may perform an operation on the shared memory area 450 based on instructions provided from the second processor 210. Performs processes such as checking access rights, requesting access rights and canceling access rights.

제2 세마포 레지스터(231)는 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한을 나타내는 데이터가 저장된다.The second semaphore register 231 stores data representing an access right to the shared memory area 450 of the dual port memory 400.

제2 세마포 레지스터(231)는 제1 세마포 레지스터(131) 및 세마포 레지스터(461)와 동일한 비트로 구성될 수 있고, 세마포 레지스터(461)와 동기화되어 동작한다.The second semaphore register 231 may be configured with the same bits as the first semaphore register 131 and the semaphore register 461, and operate in synchronization with the semaphore register 461.

제2 접근 관리부(232)는 제2 프로세서(210)로부터 제공된 명령어에 기초하여 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한 요청 및 접근 권한 해제 등의 처리를 수행한다.The second access manager 232 performs a process such as requesting an access right for the shared memory area 450 of the dual port memory 400 and releasing the access right based on a command provided from the second processor 210.

예를 들어, 제2 접근 관리부(232)는 제2 프로세서(210)로부터 공유메모리 영역(450)에 대한 액세스를 지시하는 명령어가 제공된 경우 제2 세마포 레지스 터(231)에 기록된 접근 권한 데이터를 독출하여 공유메모리 영역(450)에 대한 접근 권한을 판단하고, 접근 권한이 없는 것으로 판단되면 제2 포트(320)를 통해 듀얼포트메모리(400)의 권한요청 레지스터(463)에 공유메모리 영역(450)의 접근 권한을 요청하는 메시지를 기록한다.For example, the second access manager 232 receives the access right data recorded in the second semaphore register 231 when a command for instructing access to the shared memory area 450 is provided from the second processor 210. Read and determine the access right to the shared memory area 450, if it is determined that there is no access right through the second port 320 in the permission request register 463 of the dual port memory 400 shared memory area 450 Record a message requesting permission to access).

제2 외부버스 인터페이스(139)는 일종의 메모리 컨트롤러 역할을 수행하며 SDRAM 또는 PSRAM 외부 버스 인터페이스로 구성될 수 있다.The second external bus interface 139 serves as a kind of memory controller and may be configured as an SDRAM or PSRAM external bus interface.

듀얼포트메모리(400)는 제1 메모리 인터페이스(410), 제2 메모리 인터페이스(420), 제1 전용메모리 영역(430), 제2 전용메모리 영역(440), 공유메모리 영역(450) 및 동기 제어부(460)를 포함한다.The dual port memory 400 includes a first memory interface 410, a second memory interface 420, a first dedicated memory area 430, a second dedicated memory area 440, a shared memory area 450, and a synchronization controller. 460.

제1 메모리 인터페이스(410) 및 제2 메모리 인터페이스(420)는 각각 SDRAM 또는 PSRAM 인터페이스로 구성될 수 있고, 각각의 인터페이스에 상응하는 명령 디코더, 로우 디코더, 컬럼 디코더 및 입출력 버퍼 등을 포함할 수 있다.The first memory interface 410 and the second memory interface 420 may be configured as SDRAM or PSRAM interfaces, respectively, and may include a command decoder, a row decoder, a column decoder, an input / output buffer, and the like corresponding to each interface. .

제1 메모리 인터페이스(410) 및 제2 메모리 인터페이스(420)는 각각 대응되는 포트를 통해 주소, 제어신호, 클럭 및 데이터를 입력받고, 주소를 로우 어드레스와 컬럼 어드레스로 디코딩하여 읽기 또는 쓰기 동작을 수행할 메모리 영역을 결정하고, 소정의 메모리 영역에 대한 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터를 소정 메모리 영역으로부터 독출하거나 소정 메모리 영역에 기록한다.The first memory interface 410 and the second memory interface 420 receive an address, a control signal, a clock, and data through corresponding ports, respectively, and decode the address into a row address and a column address to perform a read or write operation. The memory area to be determined is determined, and data is read from or written to the predetermined memory area in accordance with an operation timing such as reading, writing, and refreshing the predetermined memory area.

제1 전용메모리 영역(430)은 제1 프로세서 장치(100)가 제1 포트(310)를 통해 전용으로 액세스할 수 있는 메모리 영역이고, 제2 전용메모리 영역(440)은 제2 프로세서 장치(200)가 제2 포트(320)를 통해 전용으로 액세스할 수 있는 메모리 영역이다.The first dedicated memory area 430 is a memory area that the first processor device 100 can access exclusively through the first port 310, and the second dedicated memory area 440 is the second processor device 200. ) Is a memory region that can be accessed exclusively through the second port 320.

또한, 공유메모리 영역(450)은 제1 프로세서 장치(100) 및 제2 프로세서 장치(200)가 각각 제1 포트(310) 및 제2 포트(320)를 통해 액세스할 수 있는 메모리 영역으로, 제1 프로세서 장치(100) 및 제2 프로세서 장치(200)의 액세스 충돌을 방지하게 위해 상호 배타적인 액세스가 보장되어야 한다.In addition, the shared memory area 450 is a memory area accessible by the first processor device 100 and the second processor device 200 through the first port 310 and the second port 320, respectively. In order to prevent an access conflict between the first processor device 100 and the second processor device 200, mutually exclusive access should be guaranteed.

제1 전용메모리 영역(430), 제2 전용메모리 영역(440) 및 공유메모리 영역(450)은 각각 DRAM의 단위 메모리 셀 구조를 가질 수 있고, 소정 크기를 가지는 뱅크(bank) 단위로 구성될 수도 있다. 또는 하나의 뱅크 내에서 소정 크기를 가지는 블록(block) 단위로 각각의 메모리 영역이 구성될 수도 있다.The first dedicated memory area 430, the second dedicated memory area 440, and the shared memory area 450 may each have a unit memory cell structure of a DRAM, and may be configured in bank units having a predetermined size. have. Alternatively, each memory area may be configured in block units having a predetermined size in one bank.

동기 제어부(460)는 공유메모리 영역(450)에 대한 제1 프로세서 장치(100) 및 제2 프로세서 장치(200)의 상호 배타적인 액세스를 보장하기 위한 것으로 세마포 레지스터(461) 및 권한요청 레지스터(463)를 포함할 수 있다.The synchronization controller 460 is to ensure mutually exclusive access of the first processor device 100 and the second processor device 200 to the shared memory area 450 and includes a semaphore register 461 and a permission request register 463. ) May be included.

세마포 레지스터(461)는 제1 프로세서 장치(100)의 제1 세마포 레지스터(131) 및 제2 프로세서 장치(200)의 제2 세마포 레지스터(231)와 동기되어 동작하고, 공유메모리 영역(450)의 접근 권한을 표시하는 접근 권한 데이터가 저장된다.The semaphore register 461 operates in synchronization with the first semaphore register 131 of the first processor device 100 and the second semaphore register 231 of the second processor device 200, and operates in the shared memory area 450. Access rights data indicating access rights is stored.

권한요청 레지스터(463)는 소정 비트(예를 들면, 32비트)로 구성될 수 있고, 짧은 메시지 또는 명령어의 전송에 사용된다. 예를 들어, 권한요청 레지스터(463)는 공유메모리 영역(450)에 대한 접근 권한을 요청하는 메시지나, 상대 프로세서 장치로 전송되어야 하는 공유메모리 영역(450)에 저장된 데이터의 크기 및 위치 등의 정보가 기록된다.The authorization request register 463 may consist of certain bits (eg, 32 bits) and is used for the transmission of short messages or instructions. For example, the permission request register 463 may include a message for requesting access to the shared memory area 450 or information about the size and location of data stored in the shared memory area 450 to be transmitted to the counterpart processor device. Is recorded.

도 4는 도 3에 도시된 멀티프로세서 시스템의 동작 과정을 나타내는 타이밍도로서, 공유메모리 영역에 대한 접근 권한을 획득한 프로세서 장치의 동작을 종래의 멀티 프로세서 시스템과 비교하여 도시하였다.FIG. 4 is a timing diagram illustrating an operation process of the multiprocessor system illustrated in FIG. 3, and illustrates an operation of a processor device that obtains an access right to a shared memory area compared with a conventional multiprocessor system.

도 4에서는 공유메모리 영역에 대한 접근권한을 획득한 프로세서가 도 4의 (a)에 도시된 바와 같이 제1 명령어, 제2 명령어, 제3 명령어 및 제4 명령어를 순차적으로 실행하고, 제1 명령어 및 제3 명령어는 전용메모리 영역에 대한 액세스를 수행하고, 제2 명령어 및 제4 명령어는 공유메모리 영역에 대한 액세스를 수행한다고 가정한다.In FIG. 4, a processor that obtains access to a shared memory region sequentially executes a first instruction, a second instruction, a third instruction, and a fourth instruction, as shown in FIG. And the third command performs access to the dedicated memory area, and the second command and fourth command perform access to the shared memory area.

먼저, 프로세서 장치에 듀얼포트메모리의 세마포 레지스터와 동기화된 세마포 레지스터를 구비하지 않은 종래의 프로세서는 도 4의 (b)에 도시된 바와 같이 제2 명령어 및 제4 명령어를 수행하기 위해 시간 t1 및 시간 t4에서 듀얼포트메모리의 세마포 레지스터에 기록된 접근 권한 데이터를 확인해야 한다.First, a conventional processor that does not have a semaphore register synchronized with a semaphore register of a dual-port memory in the processor device is time t1 and time for executing the second and fourth instructions as shown in FIG. At t4, we need to check the access rights data recorded in the semaphore register of the dual port memory.

그러나, 본 발명의 일 실시예에 따른 멀티프로세서 시스템에서는 프로세서 장치에 듀얼포트메모리의 세마포 레지스터와 동기화된 세마포 레지스터를 구비하기 때문에 공유메모리 영역에 대한 접근 권한을 확인하기 위해 듀얼포트메모리에 액세스하여 접근권한을 확인할 필요가 없고 프로세서 장치에 구비된 세마포 레지스터만 확인하면 되고, 이로 인해 공유메모리 영역에 대한 접근 권한을 확인하기 위한 지 연 시간을 줄일 수 있다. However, in the multiprocessor system according to the exemplary embodiment of the present invention, since the processor device includes a semaphore register synchronized with the semaphore register of the dual port memory, the dual device accesses and accesses the dual port memory to confirm the access right to the shared memory area. It is not necessary to check the authority, only the semaphore registers provided in the processor device need to be checked, which reduces the delay time for checking the access right to the shared memory area.

도 4의 (b)에 도시된 바와 같이 본 발명의 일 실시예에 따른 멀티 프로세서 시스템에서는 프로세서 장치에 듀얼포트메모리의 세마포 레지스터와 동기화된 세마포 레지스터를 포함하기 때문에 공유메모리 영역에 대한 접근 권한을 확인하기 위한 지연 시간을 획기적으로 감소시킬 수 있다.As shown in (b) of FIG. 4, in the multiprocessor system according to an embodiment of the present invention, since the processor device includes a semaphore register synchronized with the semaphore register of the dual port memory, the access right to the shared memory area is checked. The delay time for doing so can be drastically reduced.

도 5는 도 3에 도시된 멀티프로세서 시스템의 세마포 레지스터 동기 과정을 나타내는 타이밍도이다. 도 5에서 세마포 레지스터에 저장된 접근 권한 데이터가 '1'인 경우는 제1 프로세서 장치가 접근 권한을 획득하고, '0'인 경우는 제2 프로세서 장치가 접근 권하는 획득하는 것으로 가정한다. 또한, 멀티프로세서 시스템이 부팅되면 세마포 레지스터는 접근 권한 데이터로 기본값 '1'(즉, 제2 프로세서 장치가 접근 권한 획득)을 가지는 것으로 가정한다.FIG. 5 is a timing diagram illustrating a semaphore register synchronization process of the multiprocessor system of FIG. 3. In FIG. 5, it is assumed that when the access right data stored in the semaphore register is '1', the first processor device acquires the access right, and when it is '0', the second processor device acquires the access right. In addition, when the multiprocessor system is booted, it is assumed that the semaphore register has a default value of '1' (that is, the second processor device obtains access authority) as access authority data.

도 5를 참조하면, 멀티프로세서 시스템이 부팅되면 듀얼포트메모리의 세마포 레지스터, 제1 프로세서 장치의 제1 세마포 레지스터 및 제2 프로세서 장치의 제2 세마포 레지스터는 접근 권한 데이터가 기본값인 '1'로 동기화된다.Referring to FIG. 5, when the multiprocessor system is booted, the semaphore register of the dual port memory, the first semaphore register of the first processor device, and the second semaphore register of the second processor device are synchronized to '1', which is the access right data by default. do.

이후, 시간 t0에서 제1 프로세서 장치가 공유메모리 영역을 액세스하기 위해 제1 세마포 레지스터를 확인하여 접근 권한이 없음을 확인하고, 제1 포트를 통해 접근 권한 요청을 위한 메시지를 듀얼포트메모리의 권한요청 레지스터에 기록한다.Subsequently, at time t0, the first processor device checks the first semaphore register to access the shared memory area, confirms that there is no access right, and requests permission of the dual port memory through the first port. Write to register.

상기 권한요청 레지스터의 기록으로 인해 제2 프로세서 장치에 인터럽트 신호가 제공되고 이에 상응하여 시간 t1에서 제2 프로세서 장치는 제2 포트를 통해 권한요청 레지스터를 독출하여 제1 프로세서 장치가 기록한 권한 요청 메시지를 확인한다. 여기서, 상기 인터럽트 신호는 권한요청 레지스터에 메시지가 기록되었음을 지시한다.An interrupt signal is provided to the second processor device due to the writing of the authorization request register, and correspondingly, at time t1, the second processor device reads the authorization request register through the second port to write an authorization request message recorded by the first processor device. Check it. Here, the interrupt signal indicates that a message has been written to the authority request register.

이후, 시간 t2에서 제2 프로세서 장치는 듀얼포트메모리의 세마포 레지스터에 '0'을 기록하여 접근 권한 데이터를 '1'에서 '0'으로 변경함으로써 공유메모리 영역에 대한 제2 프로세서 장치의 접근 권한을 해제한다.Subsequently, at time t2, the second processor device writes '0' in the semaphore register of the dual port memory to change the access right data from '1' to '0' to change the access right of the second processor device to the shared memory area. Release it.

상기와 같이 세마포 레지스터에 저장된 접근 권한 데이터가 변경됨으로써 시간 t3에서 제2 세마포 레지스터도 듀얼포트메모리의 세마포 레지스터에 동기되어 접근 권한 데이터가 '0'으로 변경된다.As described above, when the access right data stored in the semaphore register is changed, the second semaphore register is also synchronized with the semaphore register of the dual port memory at time t3 to change the access right data to '0'.

제1 프로세서 장치는 시간 t3에서 듀얼포트메모리의 세마포 레지스터를 독출하여 접근 권한 데이터가 '0'임을 확인한다. 그리고, 시간 t4에서 제1 세마포 레지스터에 '0'을 기록하고, 공유메모리 영역에 대한 액세스를 수행한다.The first processor device reads the semaphore register of the dual port memory at time t3 and confirms that the access right data is '0'. At time t4, '0' is written to the first semaphore register, and access to the shared memory area is performed.

도 5에 도시된 바와 같이 본 발명의 일 실시예에 따른 멀티프로세서 시스템에서는 공유메모리 영역에 대한 접근 권한을 획득한 프로세서 장치는 듀얼포트메모리의 세마포 레지스터 및 자신의 세마포 레지스터에 접근 권한 해제에 상응하는 데이터를 기록함으로써 접근 권한을 해제하고, 접근 권한이 없는 프로세서 장치는 명령어 동작 주기에 따라 듀얼포트메모리의 세마포 레지스터를 독출하여 접근 권한을 확인한 후 자신의 세마포 레지스터의 값을 변경함으로써 듀얼포트메모리의 세마포 레지스터와 각 프로세서 장치에 구비된 세마포 레지스터를 동기화한다.As shown in FIG. 5, in a multiprocessor system according to an exemplary embodiment of the present invention, a processor device that obtains an access right to a shared memory area corresponds to a semaphore register of a dual port memory and its semaphore register. The access authority is released by recording the data, and the processor device without the access authority reads the semaphore register of the dual port memory according to the instruction operation cycle to check the access authority, and then changes the value of the semaphore register of the dual port memory. Synchronizes the register with the semaphore register provided in each processor device.

도 6은 본 발명의 다른 실시예에 따른 멀티프로세서 시스템의 구성을 나타내는 블록도로서, 도 3에 도시된 멀티프로세서 시스템의 구성요소와 동일한 기능을 수행하는 구성요소에 대해서는 동일한 참조번호을 사용하였다.FIG. 6 is a block diagram illustrating a configuration of a multiprocessor system according to another exemplary embodiment of the present invention, and the same reference numerals are used for components that perform the same functions as the components of the multiprocessor system illustrated in FIG. 3.

도 6을 참조하면, 본 발명의 다른 실시예에 따른 멀티 프로세서 시스템은 제1 프로세서 장치(100), 제2 프로세서 장치(200) 및 듀얼포트메모리(400)를 포함할 수 있다.Referring to FIG. 6, a multiprocessor system according to another embodiment of the present invention may include a first processor device 100, a second processor device 200, and a dual port memory 400.

제1 프로세서 장치(100)는 제1 프로세서(110) 및 제1 액세스 제어부(130a)를 포함할 수 있고, 제1 액세스 제어부(130)는 제1 세마포 레지스터(131), 제1 접근 관리부(132), 제1 명령어 저장부(133) 및 제1 외부버스 인터페이스(139)를 포함할 수 있다.The first processor device 100 may include a first processor 110 and a first access control unit 130a, and the first access control unit 130 may include a first semaphore register 131 and a first access management unit 132. ), A first command storage unit 133, and a first external bus interface 139.

제1 프로세서(110)는 예를 들어 이동통신 단말기의 베이스밴드 프로세서로 구성될 수 있다. The first processor 110 may be configured as, for example, a baseband processor of a mobile communication terminal.

제1 액세스 제어부(130a)는 제1 프로세서(110)로부터 제공된 명령어에 기초하여 공유메모리 영역(450)에 대한 접근 권한 확인, 접근 권한 요청 및 접근 권한 해제 등과 같은 처리를 수행한다.The first access controller 130a performs a process such as checking an access right on the shared memory area 450, requesting an access right, and releasing an access right based on the instructions provided from the first processor 110.

또한, 제1 액세스 제어부(130a)는 제1 프로세서(110)로부터 제공된 명령어를 일시 저장하고, 일시 저장된 명령어 중 공유메모리 영역의 액세스와 관련된 명령어를 프리페치(prefetch)하여 처리함으로써 공유메모리 영역에 대한 접근 대기 시간을 감소시킨다. In addition, the first access controller 130a temporarily stores the instructions provided from the first processor 110 and prefetches and processes the instructions related to the access of the shared memory region among the temporarily stored instructions, thereby processing the shared memory region. Reduce access wait time.

제1 세마포 레지스터(131) 및 제1 외부버스 인터페이스(139)는 각각 도 3에 도시되고 설명된 바와 동일한 기능을 수행하므로 중복을 피하기 위해 설명을 생략한다.Since the first semaphore register 131 and the first external bus interface 139 perform the same functions as those shown and described with reference to FIG. 3, description thereof will be omitted to avoid duplication.

제1 접근 관리부(132)는 제1 프로세서(110)로부터 제공된 명령어에 기초하여 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한 요청 및 접근 권한 해제 등의 처리를 수행한다.The first access manager 132 performs a process such as requesting an access right for the shared memory area 450 of the dual port memory 400 and releasing the access right based on the command provided from the first processor 110.

예를 들어, 제1 접근 관리부(132)는 제1 명령어 저장부(133)에 저장된 명령어 중 공유메모리 영역(450)을 액세스하는 명령어가 존재하는가를 판단하고, 상기 공유메모리 영역(450)에 대한 액세스 명령어가 존재하는 것으로 판단되면, 제1 세마포 레지스터(131)를 독출하여 공유메모리 영역(450)에 대한 접근 권한을 확인한 후, 접근 권한이 없는 경우에는 현재 실행되고 있는 명령어 다음에 접근 권한을 요청하는 메시지를 제1 포트(310)를 통해 듀얼포트메모리(400)의 권한요청 레지스터(463)에 기록한다.For example, the first access manager 132 determines whether there is a command for accessing the shared memory area 450 among the commands stored in the first command storage 133, and determines whether the command accesses the shared memory area 450. If it is determined that an access command exists, the access information for the shared memory area 450 is read by reading the first semaphore register 131, and if there is no access right, the access request is requested after the currently executed command. Message is written to the authority request register 463 of the dual port memory 400 through the first port 310.

제1 명령어 저장부(133)는 제1 프로세서(110)로부터 제공된 명령어가 순차적으로 저장되는 큐(Queue)로 구성될 수 있다. 여기서, 제1 프로세서(110)로부터 제공된 명령어는 제1 명령어 저장부(133)에 저장됨과 동시에 제1 외부버스 인터페이스(139)를 통해 듀얼포트메모리로 전송되기 때문에 최적의 크기로 구현되는 것이 바람직하다. 본 발명의 다른 실시예에 따른 프로세서 장치는 제1 명령어 저장부(133)가 4개의 명령어를 저장할 수 있는 크기로 구성된 것으로 가정한다.The first instruction storage unit 133 may be configured as a queue in which instructions provided from the first processor 110 are sequentially stored. In this case, the command provided from the first processor 110 may be stored in the first command storage unit 133 and transmitted to the dual port memory through the first external bus interface 139. . The processor device according to another embodiment of the present invention assumes that the first instruction storage unit 133 has a size that can store four instructions.

제2 프로세서 장치(200)는 제2 프로세서(210) 및 제2 액세스 제어부(230a)를 포함할 수 있고, 제2 액세스 제어부(230a)는 제2 세마포 레지스터(231), 제2 접근 관리부(232), 제2 명령어 저장부(233) 및 제2 외부버스 인터페이스(239)를 포함할 수 있다.The second processor device 200 may include a second processor 210 and a second access controller 230a, and the second access controller 230a may include a second semaphore register 231 and a second access manager 232. ), A second command storage unit 233, and a second external bus interface 239.

제2 프로세서(210)는 예를 들어, 이동통신 단말기의 어플리케이션 프로세서가 될 수 있다.The second processor 210 may be, for example, an application processor of a mobile communication terminal.

제2 액세스 제어부(230a)는 제2 프로세서(210)로부터 제공된 명령어에 기초하여 공유메모리 영역(450)에 대한 접근 권한 확인, 접근 권한 요청 및 접근 권한 해제 등과 같은 처리를 수행한다.The second access controller 230a performs a process such as checking an access right on the shared memory area 450, requesting an access right, and releasing an access right based on the command provided from the second processor 210.

또한, 제2 액세스 제어부(230a)는 제2 프로세서(210)로부터 제공된 명령어를 일시 저장하고, 일시 저장된 명령어 중 공유메모리 영역의 액세스와 관련된 명령어를 프리페치하여 처리함으로써 공유메모리 영역에 대한 접근 대기 시간을 감소시킨다.In addition, the second access controller 230a temporarily stores the instructions provided from the second processor 210 and prefetches and processes the instructions related to the access of the shared memory region among the temporarily stored instructions, thereby accessing the shared memory region. Decreases.

제2 세마포 레지스터(231) 및 제1 외부버스 인터페이스(239)는 각각 도 3에 도시되고 설명된 바와 동일한 기능을 수행하므로 중복을 피하기 위해 설명을 생략한다.Since the second semaphore register 231 and the first external bus interface 239 each perform the same functions as shown and described with reference to FIG. 3, description thereof will be omitted to avoid duplication.

제2 접근 관리부(232)는 제2 프로세서(210)로부터 제공된 명령어에 기초하여 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한 요청 및 접근 권한 해제 등의 처리를 수행한다.The second access manager 232 performs a process such as requesting an access right for the shared memory area 450 of the dual port memory 400 and releasing the access right based on a command provided from the second processor 210.

예를 들어, 제2 접근 관리부(232)는 제2 명령어 저장부(233)에 저장된 명령어 중 공유메모리 영역(450)을 액세스하는 명령어가 존재하는가를 판단하고, 상기 공유메모리 영역(450)에 대한 액세스 명령어가 존재하는 것으로 판단되면, 제2 세 마포 레지스터(231)를 독출하여 공유메모리 영역(450)에 대한 접근 권한을 확인한 후, 접근 권한이 없는 경우에는 현재 실행되고 있는 명령어 다음에 접근 권한을 요청하는 메시지를 제2 포트(320)를 통해 듀얼포트메모리(400)의 권한요청 레지스터(463)에 기록한다.For example, the second access manager 232 determines whether there is a command for accessing the shared memory area 450 among the commands stored in the second command storage unit 233, and determines whether the command is for the shared memory area 450. If it is determined that the access command exists, the second semaphore register 231 is read to check the access right to the shared memory area 450, and if there is no access right, the access right is next to the currently executed command. The request message is recorded in the authority request register 463 of the dual port memory 400 through the second port 320.

제2 명령어 저장부(233)는 제2 프로세서(210)로부터 제공된 명령어가 순차적으로 저장되는 큐로 구성될 수 있다. 여기서, 제2 명령어 저장부(233)는 제2 프로세서(210)로부터 제공된 명령어들 중 4개의 명령어를 임시 저장할 수 있는 크기로 구성될 수 있다.The second instruction storage unit 233 may be configured as a queue in which instructions provided from the second processor 210 are sequentially stored. Here, the second instruction storage unit 233 may be configured to have a size capable of temporarily storing four instructions from among instructions provided from the second processor 210.

듀얼포트메모리(400)는 도 3에 도시되고 설명된 바와 동일한 구성요소를 포함하고, 각각의 구성요소들이 도 3에 도시된 동일 참조번호의 구성요소와 동일한 기능을 수행하므로 중복을 피하기 위해 설명을 생략한다.The dual port memory 400 includes the same components as shown and described in FIG. 3, and each component performs the same function as the components of the same reference numeral shown in FIG. Omit.

도 7은 도 6에 도시된 본 발명의 다른 실시예에 따른 멀티프로세서 시스템의 동작을 나타내는 타이밍도로서, 프리페치를 사용하지 않는 종래의 멀티프로세서 시스템과 공유메모리 접근 지연 시간을 비교하여 도시하였다. 설명의 편의를 위해 도 7에 도시된 동작이 제1 프로세서 장치에서 수행되고, 제1 프로세서 장치는 공유메모리 영역에 대한 접근 권한이 없는 것으로 가정한다.FIG. 7 is a timing diagram illustrating an operation of a multiprocessor system according to another exemplary embodiment of the present invention illustrated in FIG. 6, and compares a shared memory access delay time with a conventional multiprocessor system that does not use prefetch. For convenience of explanation, it is assumed that the operation shown in FIG. 7 is performed in the first processor device, and the first processor device does not have an access right to the shared memory area.

도 7의 (a)를 참조하면, 제1 명령어 저장부(133)에 제1 프로세서(110)에서 제공된 순서에 의해 제1 명령어 내지 제4 명령어가 순차적으로 저장되어 있고, 시간 t0에서 제1 명령어가 수행되고 있다. 여기서, 제1 명령어 내지 제3 명령어는 듀 얼포트메모리(400)의 제1 전용메모리 영역(430)을 액세스하는 명령어이고, 제4 명령어는 공유메모리 영역(450)을 액세스하는 명령어이다.Referring to FIG. 7A, the first to fourth instructions are sequentially stored in the first instruction storage unit 133 in the order provided by the first processor 110, and the first instruction at time t0. Is being performed. Herein, the first to third commands are commands for accessing the first dedicated memory area 430 of the dual port memory 400, and the fourth commands are commands for accessing the shared memory area 450.

먼저, 프리페치를 수행하지 않는 종래의 멀티프로세서 시스템은 큐에 저장된 순서에 따라 시간 t0 내지 t3까지 제1 명령어, 제2 명령어 및 제3 명령어를 순차적으로 수행한 후, 제4 명령어를 수행하기 위해 시간 t4에서 권한요청 레지스터(463)에 권한 요청 메시지를 기록하고, 접근 권한이 변경되는 시간(즉, t4 내지 t5) 동안 대기한 후 시간 t5에서 세마포 레지스터(461)을 독출하여 접근 권한을 확인하고 접근 권한을 획득한 경우 시간 t6에서 제4 명령어를 수행한다.First, a conventional multiprocessor system that does not perform prefetch sequentially executes the first instruction, the second instruction, and the third instruction from time t0 to t3 in the order stored in the queue, and then performs the fourth instruction. At the time t4, the authority request message is written to the authority request register 463, waits for the time when the access authority is changed (that is, t4 to t5), and at the time t5, the semaphore register 461 is read to check the access authority. When the access right is obtained, the fourth command is performed at time t6.

이에 반하여, 본 발명의 다른 실시예에 따른 멀티프로세서 시스템은 시간 t0에서 제1 명령어를 수행하는 동안 제1 접근 관리부(132)가 제1 명령어 저장부(133)에 저장된 명령어 중 공유메모리 영역(450)을 액세스하는 명령어(즉, 제4 명령어)의 존재를 확인한 후, 제1 명령어의 수행이 끝나면 제2 명령어의 수행전에 제4 명령어를 수행하기 위한 접근 권한 요청 메시지를 권한요청 레지스터(463)에 기록한다.In contrast, in the multiprocessor system according to another exemplary embodiment of the present invention, the shared memory area 450 of the instructions stored in the first instruction storage unit 133 by the first access manager 132 while executing the first instruction at time t0. ), After checking the existence of the command (i.e., the fourth command) and executing the first command, before the execution of the second command, an access permission request message for executing the fourth command to the permission request register 463. Record it.

이후, 시간 t2 및 t3에서 제2 명령어 및 제3 명령어를 수행한 후, 시간 t4에서 세마포 레지스터(461)를 독출하여 공유메모리 영역(450)에 대한 접근 권한을 확인하고, 시간 t5에서 제4 명령어를 수행한다.Thereafter, after executing the second and third instructions at times t2 and t3, the semaphore register 461 is read at time t4 to check the access right to the shared memory area 450, and at time t5, the fourth instruction is read. Perform

즉, 본 발명의 다른 실시예에 따른 멀티프로세서 시스템에서는 제1 명령어의 실행 중에 제1 명령어 저장부(133)를 검사하여 공유메모리 영역(450)을 액세스하는 명령어가 존재하는 경우에는 제2 명령어의 수행전에 먼저 공유메모리 영역(450)의 접근 권한을 요청한 후 이후의 명령어(즉, 제2 및 제3 명령어)를 순차적으로 수행한다. 그리고, 제2 프로세서 장치는 도 5에 도시된 바와 같은 방법으로 제2 명령어 및 제3 명령어를 수행하는 시간 동안 공유메모리 영역에 대한 권한 해제를 수행하기 때문에 제1 프로세서 장치는 공유메모리 영역에 접근하기 위한 별도의 대기 시간 없이 접근 권한을 획득할 수 있게 된다.That is, in the multiprocessor system according to another exemplary embodiment of the present invention, when there is an instruction for accessing the shared memory area 450 by examining the first instruction storage unit 133 during execution of the first instruction, Before execution, the access permission of the shared memory area 450 is first requested, and then subsequent commands (ie, second and third commands) are sequentially executed. In addition, the first processor device accesses the shared memory area because the second processor device releases the authority for the shared memory area during the time of executing the second command and the third command by the method as shown in FIG. 5. Access rights can be obtained without additional waiting time.

도 8은 도 6에 도시된 멀티프로세서 시스템의 공유메모리 접근 권한의 자동 해제 방법을 나타내는 타이밍도로서, 공유메모리 영역에 대한 접근 권한을 획득한 프로세서 장치가 접근 권한을 해제하는 방법을 나타낸다. 설명의 편의를 위해 도 8에 도시된 동작은 제1 프로세서 장치에서 수행되고, 제1 프로세서 장치는 공유메모리 영역에 대한 접근 권한을 획득한 상태인 것으로 가정한다.FIG. 8 is a timing diagram illustrating a method of automatically releasing the shared memory access right of the multiprocessor system illustrated in FIG. 6, and illustrates a method of releasing the access right by the processor device having obtained the access right to the shared memory area. For convenience of explanation, it is assumed that the operation illustrated in FIG. 8 is performed in the first processor device, and the first processor device is in a state in which an access right to the shared memory area is acquired.

도 8의 (a)를 참조하면, 제1 명령어 저장부(133)에 제1 프로세서(110)에서 제공된 순서에 의해 제1 명령어 내지 제4 명령어가 순차적으로 저장되어 있고, 시간 t0에서 제1 명령어가 실행되고 있다. 그리고, 제1 명령어 저장부(133)에 저장된 명령어 중 제1 명령어만이 공유메모리 영역을 액세스하는 명령어이고, 제2 명령어 내지 제4 명령어는 제1 전용메모리 영역(430)을 액세스하는 명령어이다.Referring to FIG. 8A, the first to fourth instructions are sequentially stored in the first instruction storage unit 133 in the order provided by the first processor 110, and the first instruction at time t0. Is running. In addition, only the first command among the commands stored in the first command storage unit 133 is a command for accessing the shared memory area, and the second to fourth commands are commands for accessing the first dedicated memory area 430.

상기와 같은 경우, 제1 접근 관리부(132)는 제1 명령어 저장부(133)에 현재 실행되고 있는 제1 명령어 이외에 공유메모리 영역(450)에 액세스하는 명령어가 없기 때문에 제1 명령어의 실행이 끝난 후 시간 t2에서 공유메모리 영역(450)에 대한 접근 권한을 해제하고, 시간 t2부터 순차적으로 제2 명령어 내지 제4 명령어를 수 행한다.In this case, since the first access management unit 132 has no instruction to access the shared memory area 450 in addition to the first instruction currently executed in the first instruction storage unit 133, the execution of the first instruction is completed. After that, at the time t2, the access right to the shared memory area 450 is released, and the second to fourth commands are sequentially executed from the time t2.

도 8의 (b)는 제1 명령어 저장부(133)에 제1 명령어 내지 제4 명령어가 순차적으로 저장되어 있고, 시간 t0에서 공유메모리 영역(450)에 액세스 하는 제1 명령어가 실행되고 있다. 그리고, 제1 명령어 이외에도 제2 명령어 및 제3 명령어 다음에 공유메모리 영역에 액세스하는 제4 명령어가 저장되어 있다.In FIG. 8B, the first to fourth instructions are sequentially stored in the first instruction storage unit 133, and the first instruction to access the shared memory area 450 is executed at time t0. In addition to the first command, a fourth command for accessing the shared memory area is stored after the second command and the third command.

도 8의 (b)에 도시된 바와 같이, 제1 명령어 저장부(133)에 현재 실행되고 있는 명령어 이외에도 공유메모리 영역(450)을 액세스하는 명령어가 저장되어 있는 경우, 제1 접근 관리부(132)는 제1 명령어 저장부(133)에 저장된 모든 공유메모리 영역(450)을 액세스하는 명령어를 수행한 후 공유메모리 영역(450)에 대한 접근 권한을 해제한다.As illustrated in (b) of FIG. 8, when a command for accessing the shared memory area 450 is stored in addition to the command currently executed in the first command storage unit 133, the first access manager 132 may be used. After performing a command for accessing all the shared memory areas 450 stored in the first command storage unit 133, the access permission for the shared memory area 450 is released.

즉, 제1 접근 관리부(132)는 시간 t0 내지 시간 t4까지 제1 명령어 내지 제4 명령어를 수행한 후 시간 t4에서 공유메모리 영역(450)에 대한 접근 권한을 해제한다. 여기서 공유메모리 영역(450)에 대한 접근 권한 해제는 도 5에 도시된 방법과 동일한 방법으로 제1 접근 관리부(132)가 세마포 레지스터(461) 및 제1 세마포 레지스터(131)에 접근 권한 해제를 지시하는 데이터를 기록함으로써 수행될 수 있다.That is, the first access manager 132 releases the access right to the shared memory area 450 at time t4 after performing the first to fourth commands from time t0 to time t4. Herein, in order to release the access right to the shared memory area 450, the first access manager 132 instructs the semaphore register 461 and the first semaphore register 131 to release the access right in the same manner as illustrated in FIG. 5. Can be performed by recording data.

도 8에 도시된 바와 같이 본 발명의 다른 실시예에 따른 멀티프로세서 시스템에서는 접근권한 요청으로 인한 지연시간을 감소시키기 위해 공유메모리 영역의 사용 빈도가 높은 프로세서 장치(예를 들면, 제2 프로세서 장치)에 높은 우선순위를 부여하여 공유메모리 영역에 대한 접근 권한을 우선적으로 가지도록 하고, 우선순위가 낮은 프로세서 장치(예를 들면, 제1 프로세서 장치)는 공유메모리 영역에 대한 접근 권한을 요청하여 획득한 후 공유메모리 영역에 대한 액세스가 끝나면 접근 권한을 자동으로 해제하도록 한다.As shown in FIG. 8, in a multiprocessor system according to another exemplary embodiment of the present invention, a processor device having a high frequency of using a shared memory area (eg, a second processor device) in order to reduce a delay time caused by an access permission request. By assigning a high priority to the shared memory area to give priority to the shared memory area, and a low priority processor device (for example, the first processor device) obtained by requesting the access right to the shared memory area After the access to the shared memory area is finished, the access right is automatically released.

또한, 우선 순위가 낮은 프로세서 장치가 공유메모리 영역에 대한 접근 권한 해제를 자주 실행하게 되면 이에 상응하여 우선 순위가 높은 프로세서 장치에 인터럽트가 빈번하게 발생하기 때문에 추가적인 지연이 발생하게 되는 문제점이 있다.In addition, when the low priority processor device frequently executes the release of access to the shared memory area, an interrupt occurs frequently in the corresponding high priority processor device, which causes an additional delay.

따라서, 본 발명에서는 우선순위가 낮은 프로세서 장치가 공유메모리 영역에 대한 접근 권한을 해제하고자 할 때, 먼저 명령어가 저장된 명령어 저장부를 확인하여 공유메모리 영역을 액세스 하는 명령어가 전혀 없는 경우에만 공유메모리 영역에 대한 접근 권한을 자동으로 해제하도록 함으로써 공유메모리 영역에 대한 잦은 접근 권한 요청 및 해제로 인한 지연을 방지한다.Therefore, in the present invention, when a processor device having a lower priority wants to release the access right to the shared memory area, the processor device first checks the instruction storage unit in which the command is stored and then accesses the shared memory area. By automatically releasing the access right, it prevents the delay due to frequent request and release of access to the shared memory area.

이상 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.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. Could be.

도 1은 일반적인 멀티프로세서 시스템의 구성을 나타내는 블록도이다.1 is a block diagram showing the configuration of a general multiprocessor system.

도 2는 도 1에 도시된 멀티프로세서 시스템의 공유메모리 영역에 대한 접근 권한 획득 과정을 나타내는 타이밍도이다.FIG. 2 is a timing diagram illustrating a process of obtaining access rights to a shared memory area of the multiprocessor system shown in FIG. 1.

도 3은 본 발명의 일 실시예에 따른 멀티 프로세서 시스템의 구성을 나타내는 블록도이다.3 is a block diagram illustrating a configuration of a multiprocessor system according to an exemplary embodiment of the present invention.

도 4는 도 3에 도시된 멀티프로세서 시스템의 동작 과정을 나타내는 타이밍도이다.4 is a timing diagram illustrating an operation process of the multiprocessor system illustrated in FIG. 3.

도 5는 도 3에 도시된 멀티프로세서 시스템의 세마포 레지스터 동기 과정을 나타내는 타이밍도이다.FIG. 5 is a timing diagram illustrating a semaphore register synchronization process of the multiprocessor system of FIG. 3.

도 6은 본 발명의 다른 실시예에 따른 멀티프로세서 시스템의 구성을 나타내는 블록도이다.6 is a block diagram illustrating a configuration of a multiprocessor system according to another exemplary embodiment of the present invention.

도 7은 도 6에 도시된 본 발명의 다른 실시예에 따른 멀티프로세서 시스템의 동작을 나타내는 타이밍도이다.FIG. 7 is a timing diagram illustrating an operation of a multiprocessor system according to another exemplary embodiment of the present invention illustrated in FIG. 6.

도 8은 도 6에 도시된 멀티프로세서 시스템의 공유메모리 접근 권한의 자동 해제 방법을 나타내는 타이밍도이다.FIG. 8 is a timing diagram illustrating a method of automatically releasing a shared memory access right of the multiprocessor system shown in FIG. 6.

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

110 : 제1 프로세서 131 : 제1 세마포 레지스터110: first processor 131: first semaphore register

132 : 제1 접근 관리부 133 : 제1 명령어 저장부132: first access management unit 133: first command storage unit

139 : 제1 외부버스 인터페이스 210 : 제2 프로세서139: first external bus interface 210: second processor

231 : 제2 세마포 레지스터 232 : 제2 접근 관리부231: second semaphore register 232: second access management unit

233 : 제2 명령어 저장부 239 : 제2 외부버스 인터페이스233: second command storage unit 239: second external bus interface

310 : 제1 포트 320 : 제2 포트310: first port 320: second port

400 : 듀얼포트메모리 450 : 공유메모리 영역400: Dual Port Memory 450: Shared Memory Area

461 : 세마포 레지스터 463 : 권한요청 레지스터461: semaphore register 463: permission request register

Claims (18)

공유메모리 영역 및 상기 공유메모리 영역에 대한 접근 권한을 나타내는 데이터가 저장되는 레지스터를 구비한 다중 포트 메모리를 액세스하는 프로세서 장치에 있어서,A processor device for accessing a multi-port memory having a shared memory area and a register storing data representing access rights to the shared memory area, 명령어를 실행하는 프로세서;A processor that executes instructions; 상기 레지스터에 저장된 접근 권한을 나타내는 데이터와 동일한 데이터가 저장되는 세마포 레지스터; 및A semaphore register in which data identical to data representing an access right stored in the register is stored; And 상기 프로세서로부터 제공된 상기 공유메모리 영역에 대한 액세스 명령어에 기초하여 상기 세마포 레지스터로부터 상기 접근 권한을 나타내는 데이터를 독출하여 상기 공유메모리 영역의 접근 권한을 확인하는 접근 관리부를 포함하는 프로세서 장치.And an access manager configured to read data representing the access authority from the semaphore register based on an access instruction to the shared memory region provided from the processor to confirm access authority of the shared memory region. 제1항에 있어서, 상기 세마포 레지스터는The method of claim 1, wherein the semaphore register 상기 다중 포트 메모리에 구비된 상기 레지스터와 동기되어 상기 접근 권한을 나타내는 데이터가 기록되는 것을 특징으로 하는 프로세서 장치.And the data indicative of the access right is synchronized with the register provided in the multi-port memory. 제1항에 있어서, 상기 접근 관리부는The method of claim 1, wherein the access management unit 상기 공유메모리 영역에 대한 접근 권한이 없는 것으로 판단된 경우에는 상기 공유메모리 영역에 대한 접근 권한을 요청하는 메시지를 상기 다중 포트 메모리 에 전송하는 것을 특징으로 하는 프로세서 장치.And when it is determined that there is no access right to the shared memory area, transmitting a message requesting access right to the shared memory area to the multi-port memory. 제1항에 있어서, 상기 접근 관리부는The method of claim 1, wherein the access management unit 상기 공유메모리 영역에 대한 접근 권한을 요청한 후 상기 다중 포트 메모리의 상기 레지스터로부터 상기 접근 권한을 나타내는 데이터를 독출하고, 상기 접근 권한을 나타내는 데이터가 변경된 경우 상기 변경된 데이터를 상기 세마포 레지스터에 기록하는 것을 특징으로 하는 프로세서 장치.After requesting an access right to the shared memory area, data representing the access right is read from the register of the multi-port memory, and if the data representing the access right is changed, the changed data is written to the semaphore register. Processor unit. 제1항에 있어서, 상기 프로세서 장치는The system of claim 1, wherein the processor device is 상기 프로세서로부터 제공된 명령어가 순차적으로 저장되는 명령어 저장부를 더 포함하는 것을 특징으로 하는 프로세서 장치.And an instruction storage unit for sequentially storing instructions provided from the processor. 제5항에 있어서, 상기 접근 관리부는The method of claim 5, wherein the access management unit 소정 명령어가 실행되는 도중 상기 명령어 저장부에서 상기 공유메모리 영역을 액세스하는 명령어의 존재여부를 판단하고, 상기 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하는 것으로 판단되는 경우에는 상기 소정 명령어의 실행이 종료된 후 상기 공유메모리 영역에 대한 접근 권한을 요청하는 메시지를 상기 다중 포트 메모리에 전송하는 것을 특징으로 하는 프로세서 장치.The command storage unit determines whether a command for accessing the shared memory area exists while the command storage unit is executed, and if it is determined that the command for accessing the shared memory area exists in the command storage unit, the command And after the execution of the processor is terminated, transmitting a message requesting access to the shared memory area to the multi-port memory. 제5항에 있어서, 상기 접근 관리부는The method of claim 5, wherein the access management unit 상기 공유메모리 영역에 대한 접근 권한을 획득한 후 상기 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하지 않는 경우 상기 공유메모리 영역에 대한 접근 권한을 해제하는 것을 특징으로 하는 프로세서 장치.And acquiring the access right to the shared memory area if the command for accessing the shared memory area does not exist in the command storage unit after acquiring the access right to the shared memory area. 공유메모리 영역, 상기 공유메모리 영역에 대한 접근 권한을 나타내는 접근 권한 데이터가 저장되는 세마포 레지스터 및 상기 공유메모리 영역에 대한 접근권한을 요청하는 메시지가 저장되는 권한요청 레지스터를 구비한 듀얼포트메모리;A dual port memory having a shared memory region, a semaphore register storing access authority data representing access authority to the shared memory region, and an authority request register storing a message requesting access authority to the shared memory region; 상기 세마포 레지스터와 동기되어 상기 접근 권한 데이터와 동일한 데이터가 저장되는 제1 세마포 레지스터를 구비하고, 상기 제1 세마포 레지스터로부터 상기 접근 권한 데이터를 독출하여 상기 공유메모리 영역에 대한 접근 권한을 확인하는 제1 프로세서 장치; 및A first semaphore register configured to store the same data as the access right data in synchronization with the semaphore register, and to read the access right data from the first semaphore register to confirm access right to the shared memory area. A processor device; And 상기 세마포 레지스터와 동기되어 상기 접근 권한 데이터와 동일한 데이터가 저장되는 제2 세마포 레지스터를 구비하고, 상기 제2 세마포 레지스터로부터 상기 접근 권한 데이터를 독출하여 상기 공유메모리 영역에 대한 접근 권한을 확인하는 제2 프로세서 장치를 포함하는 멀티프로세서 시스템.A second semaphore register configured to store the same data as the access right data in synchronization with the semaphore register, and to read the access right data from the second semaphore register to confirm access right to the shared memory area. A multiprocessor system comprising a processor unit. 제8항에 있어서, 상기 제1 프로세서 장치는 The method of claim 8, wherein the first processor device is 상기 공유메모리 영역에 대한 접근 권한이 없는 것으로 판단되면 상기 권한요청 레지스터에 상기 공유메모리 영역의 접근 권한을 요청하는 메시지를 기록하는 것을 특징으로 멀티프로세서 시스템.And if it is determined that there is no access right to the shared memory area, writing a message requesting access right of the shared memory area to the permission request register. 제8항에 있어서, 상기 제2 프로세서 장치는The method of claim 8, wherein the second processor device is 상기 권한요청 레지스터에 메시지가 기록되었음을 지시하는 인터럽트 신호를 제공받고 상기 권한요청 레지스터에 기록된 메시지를 확인한 후 상기 세마포 레지스터 및 상기 제2 세마포 레지스터에 상기 공유메모리 영역에 대한 접근 권한 해제를 나타내는 접근 권한 데이터를 기록하는 것을 특징으로 하는 멀티프로세서 시스템.An access signal indicating an release of an access right to the shared memory area from the semaphore register and the second semaphore register after receiving an interrupt signal indicating that a message has been written to the authority request register; Multiprocessor system, characterized in that recording data. 제8항에 있어서, 상기 제1 프로세서 장치는The method of claim 8, wherein the first processor device is 상기 공유메모리 영역에 대한 접근 권한을 요청한 후 상기 세마포 레지스터로부터 상기 접근 권한 데이터를 독출하고, 상기 접근 권한 데이터가 변경된 경우 상기 변경된 접근 권한 데이터를 상기 제1 세마포 레지스터에 기록하는 것을 특징으로 하는 멀티프로세서 시스템.Multi-processor characterized by reading the access right data from the semaphore register after requesting the access right to the shared memory area, and writing the changed access right data to the first semaphore register if the access right data is changed. system. 제8항에 있어서, 상기 제1 프로세서 장치는The method of claim 8, wherein the first processor device is 상기 제1 프로세서로부터 제공된 명령어가 순차적으로 저장되는 제1 명령어 저장부를 더 포함하는 것을 특징으로 하는 멀티프로세서 시스템.And a first instruction storage configured to sequentially store instructions provided from the first processor. 제12항에 있어서, 상기 제1 프로세서 장치는The method of claim 12, wherein the first processor device is 소정 명령어가 실행되는 도중 상기 제1 명령어 저장부에서 상기 공유메모리 영역을 액세스하는 명령어의 존재여부를 판단하고, 상기 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하는 것으로 판단되는 경우에는 상기 소정 명령어의 실행이 종료된 후 상기 공유메모리 영역에 대한 접근 권한을 요청하는 메시지를 상기 권한요청 레지스터에 기록하는 것을 특징으로 하는 멀티프로세서 시스템.When the first command storage unit determines whether a command for accessing the shared memory area exists while a predetermined command is executed, and when it is determined that the command for accessing the shared memory area exists in the first command storage unit. And after the execution of the predetermined instruction is terminated, writes a message requesting access authority to the shared memory area in the authority request register. 제12항에 있어서, 상기 제1 프로세서 장치는The method of claim 12, wherein the first processor device is 상기 공유메모리 영역에 대한 접근 권한을 획득한 후 상기 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하지 않는 경우 상기 공유메모리 영역에 대한 접근 권한 해제를 나타내는 접근 권한 데이터를 기록하는 것을 특징으로 하는 멀티프로세서 시스템.After acquiring the access right to the shared memory area, if the command for accessing the shared memory area does not exist in the first command storage, recording access right data indicating the release of the access right to the shared memory area. Characterized in a multiprocessor system. 제8항에 있어서, 상기 제2 프로세서 장치는The method of claim 8, wherein the second processor device is 상기 제2 프로세서로부터 제공된 명령어가 순차적으로 저장되는 제2 명령어 저장부를 더 포함하는 것을 특징으로 하는 프로세서 장치.And a second instruction storage unit configured to sequentially store instructions provided from the second processor. 제1 프로세서 장치, 제2 프로세서 장치 및 듀얼포트메모리를 포함하는 멀티프로세서 시스템의 공유메모리 접근 방법에 있어서,In the shared memory access method of a multiprocessor system including a first processor device, a second processor device and a dual port memory, 상기 제1 프로세서 장치가 내부에 구비된 제1 세마포 레지스터를 독출하여 상기 듀얼포트메모리의 공유메모리 영역에 대한 접근 권한을 판단하는 단계;Reading, by the first processor device, a first semaphore register provided therein to determine an access right to a shared memory area of the dual port memory; 상기 공유메모리 영역에 대한 접근 권한이 없는 경우 상기 듀얼포트메모리에 상기 공유메모리 영역에 대한 접근 권한을 요청하는 단계;Requesting access rights to the shared memory area from the dual port memory when there is no access right to the shared memory area; 상기 제2 프로세서가 상기 듀얼포트메모리의 권한요청 레지스터를 확인한 후 상기 듀얼포트메모리에 구비된 세마포 레지스터 및 상기 제2 프로세서 내부에 구비된 제2 세마포 레지스터에 상기 공유메모리 영역에 대한 접근 권한 해제를 나타내는 데이터를 기록하는 단계; 및After the second processor checks the authorization request register of the dual port memory, the semaphore register provided in the dual port memory and the second semaphore register provided in the second processor indicate release of an access right to the shared memory area. Recording data; And 상기 제1 프로세서가 상기 세마포 레지스터를 독출하여 상기 공유메모리 영역에 대한 접근 권한을 획득하는 단계를 포함하는 멀티프로세서 시스템의 공유메모리 접근 방법.And acquiring, by the first processor, the semaphore register to obtain an access right to the shared memory area. 제16항에 있어서, 상기 공유메모리 영역에 대한 접근 권한이 없는 경우 상기 듀얼포트메모리에 상기 공유메모리 영역에 대한 접근 권한을 요청하는 단계는,The method of claim 16, wherein the requesting for the access right to the shared memory area from the dual port memory when the access right to the shared memory area is not performed comprises: 상기 제1 프로세서 장치 내부에 구비된 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어의 존재여부를 판단하고, 상기 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하는 경우 현재 실행중인 명령어의 실행이 종료된 후 상기 공유메모리 영역에 대한 접근 권한을 요청하는 것을 특징으로 하는 멀티프로세서 시스템의 공유메모리 접근 방법.It is determined whether there is an instruction for accessing the shared memory region in the first instruction storage unit provided in the first processor device, and if the instruction for accessing the shared memory region in the first instruction storage unit exists, And requesting permission to access the shared memory area after the execution of the command being executed. 제17항에 있어서, 상기 멀티프로세서 시스템의 공유메모리 접근 방법은18. The method of claim 17, wherein the shared memory access method of the multiprocessor system 상기 제1 프로세서가 상기 공유메모리 영역에 대한 접근 권한을 획득한 후 상기 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하는 가를 판단하는 단계; 및Determining, by the first processor, that an instruction for accessing the shared memory area exists in the first instruction storage unit after acquiring an access right for the shared memory area; And 상기 제1 명령어 저장부에 상기 공유메모리 영역을 액세스하는 명령어가 존재하지 않는 경우 상기 듀얼포트메모리에 구비된 세마포 레지스터 및 상기 제1 세마포 레지스터에 상기 공유메모리 영역에 대한 접근 권한 해제를 나타내는 데이터를 기록하는 단계를 더 포함하는 것을 특징으로 하는 멀티프로세서 시스템의 공유메모리 접근 방법.When there is no command to access the shared memory area in the first command storage unit, data indicating the release of access to the shared memory area is recorded in the semaphore register and the first semaphore register provided in the dual port memory. Shared memory access method of a multiprocessor system, characterized in that it further comprises the step of.
KR1020090030392A 2009-04-08 2009-04-08 Processor, Multi-processor System And Method For Controlling Access Authority For Shared Memory In Multi-processor System KR101110550B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090030392A KR101110550B1 (en) 2009-04-08 2009-04-08 Processor, Multi-processor System And Method For Controlling Access Authority For Shared Memory In Multi-processor System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090030392A KR101110550B1 (en) 2009-04-08 2009-04-08 Processor, Multi-processor System And Method For Controlling Access Authority For Shared Memory In Multi-processor System

Publications (2)

Publication Number Publication Date
KR20100111915A true KR20100111915A (en) 2010-10-18
KR101110550B1 KR101110550B1 (en) 2012-02-08

Family

ID=43132014

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090030392A KR101110550B1 (en) 2009-04-08 2009-04-08 Processor, Multi-processor System And Method For Controlling Access Authority For Shared Memory In Multi-processor System

Country Status (1)

Country Link
KR (1) KR101110550B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190095840A (en) * 2018-02-07 2019-08-16 한국전자통신연구원 Apparatus and method for interfacing common memory
US10782974B2 (en) 2015-11-25 2020-09-22 Samsung Electronics Co., Ltd. VLIW interface device and method for controlling the same

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102235803B1 (en) 2017-03-31 2021-04-06 삼성전자주식회사 Semiconductor device
US10649771B2 (en) 2017-03-31 2020-05-12 Samsung Electronics Co., Ltd. Semiconductor device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203253A (en) * 1998-01-09 1999-07-30 Matsushita Electric Ind Co Ltd Exclusive access control method for shared resource
KR100596394B1 (en) * 2004-12-13 2006-07-04 한국전자통신연구원 Method and apparatus for controlling access shared memory in a UNIX system
KR100874169B1 (en) * 2007-02-02 2008-12-15 엠텍비젼 주식회사 Dual port memory for direct transfer of commands between processors and method for performing them
KR100886179B1 (en) * 2007-02-02 2009-02-27 엠텍비젼 주식회사 Method for Handling Access Right Acquisition in Dual Port Memory and Apparatus therefore

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10782974B2 (en) 2015-11-25 2020-09-22 Samsung Electronics Co., Ltd. VLIW interface device and method for controlling the same
KR20190095840A (en) * 2018-02-07 2019-08-16 한국전자통신연구원 Apparatus and method for interfacing common memory
US10831676B2 (en) 2018-02-07 2020-11-10 Electronics And Telecommunications Research Institute Apparatus and method for interfacing with common memory

Also Published As

Publication number Publication date
KR101110550B1 (en) 2012-02-08

Similar Documents

Publication Publication Date Title
KR101558482B1 (en) Bank sharing and refresh in a shared multi-port memory device
KR100868393B1 (en) Shared interface for cmponents in an embedded system
KR100847968B1 (en) Dual-port semiconductor memories
KR100915260B1 (en) Method and apparatus for performing an atomic semaphore operation
EP3082048B1 (en) Memory configured to provide simultaneous read/write access to multiple banks
US9747038B2 (en) Systems and methods for a hybrid parallel-serial memory access
WO2017105741A1 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
US6782463B2 (en) Shared memory array
KR101110550B1 (en) Processor, Multi-processor System And Method For Controlling Access Authority For Shared Memory In Multi-processor System
JP2011081553A (en) Information processing system and control method thereof
JP4560498B2 (en) Arbitration scheme for shared memory devices
KR101103619B1 (en) Multi-port memory system and access control method thereof
KR100872196B1 (en) Memory system and method of controlling access of dual port memory using the memory system
US10621082B2 (en) Information processing device that guarantees consistency in access spaces
KR100874169B1 (en) Dual port memory for direct transfer of commands between processors and method for performing them
US20140173225A1 (en) Reducing memory access time in parallel processors
CN107025190B (en) System and method of operation thereof
KR100886179B1 (en) Method for Handling Access Right Acquisition in Dual Port Memory and Apparatus therefore
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
KR100877972B1 (en) Dual Port Memory for directly transferring data between processors and Method thereof
KR100863541B1 (en) Synchronization Control Device, Dual Port Memory Having Synchornization Control Device and Method for Controlling Synchonization in Dual Port Memory
KR102485999B1 (en) Cache coherent system including master-side filter and data processing system having the same
KR100827720B1 (en) Dual Port Memory having Access Control Device, Memory System Having the Same and Access Control Method for Dual Port Memory
US20030056072A1 (en) System and method for providing data to multi-function memory
KR100816038B1 (en) Method for accessing shared memory in multi-processor system

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171221

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 9