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 PDFInfo
- 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
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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
Abstract
Description
본 발명은 멀티 프로세서 시스템에 관한 것으로, 더욱 상세하게는 공유메모리 영역의 접근 지연 시간을 감소시킬 수 있는 프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 권한 제어 방법에 관한 것이다.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
제1 프로세서 장치(100)는 제1 프로세서(110) 및 제1 액세스 제어부(130)를 포함할 수 있고, 제1 액세스 제어부(130)는 제1 세마포 레지스터(131), 제1 접근 관리부(132) 및 제1 외부버스 인터페이스(139)를 포함할 수 있다.The
제1 프로세서(110)는 예를 들어 이동통신 단말기의 베이스밴드 프로세서로 구성될 수 있고, 제1 액세스 제어부(130)는 제1 프로세서(110)로부터 제공된 명령어에 기초하여 공유메모리 영역(450)에 대한 접근 권한 확인, 접근 권한 요청 및 접근 권한 해제 등과 같은 처리를 수행한다.The
제1 세마포 레지스터(131)는 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한을 나타내는 데이터가 저장된다. The
제1 세마포 레지스터(131)는 프로세서 장치의 수 및/또는 공유메모리 영역의 개수에 상응하는 비트로 구성될 수 있다. 예를 들어, 하나의 공유 메모리 영역을 두 개의 프로세서 장치가 공유하는 경우 제1 세마포 레지스터(131)는 하나의 비트 로 구성될 수 있고, 제1 세마포 레지스터(131)에 저장된 접근 권한 데이터가 '0'인 경우에는 제1 프로세서 장치(100)가 공유메모리 영역(450)에 대한 접근 권한을 획득하고, 접근 권한 데이터가 '1'인 경우에는 제2 프로세서 장치가 공유메모리 영역(450)에 대한 접근 권한을 획득하도록 구성될 수 있다.The
또한, 제1 세마포 레지스터(131)는 듀얼포트메모리(400)의 세마포 레지스터(461)와 동기화되어 동작된다. 구체적으로 멀티프로세서 시스템이 부팅되면 듀얼포트메모리(400)의 세마포 레지스터(461)는 기본값(예를 들면, '1')을 가지게 되고 제1 세마포 레지스터(131)도 세마포 레지스터(461)에 저장된 데이터와 동일한 데이터(즉, '1')를 가지게 된다. 이후, 공유메모리 영역(450)에 대한 접근 권한이 변경되면 듀얼포트메모리(400)의 세마포 레지스터(461)와 제1 세마포 레지스터(131)는 동일한 데이터가 기록된다.In addition, the
제1 접근 관리부(132)는 제1 프로세서(110)로부터 제공된 명령어에 기초하여 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한 요청 및 접근 권한 해제 등의 처리를 수행한다.The
예를 들어, 제1 접근 관리부(132)는 제1 프로세서(110)로부터 공유메모리 영역(450)에 대한 액세스를 지시하는 명령어가 제공된 경우 제1 세마포 레지스터(131)에 기록된 접근 권한 데이터를 독출하여 공유메모리 영역(450)에 대한 접근 권한을 판단하고, 접근 권한이 없는 것으로 판단되면 제1 포트(310)를 통해 듀얼포트메모리(400)의 권한요청 레지스터(463)에 공유메모리 영역(450)의 접근 권한을 요청하는 메시지를 기록한다.For example, the
제1 외부버스 인터페이스(139)는 일종의 메모리 컨트롤러(memory controller) 역할을 수행하며 SDRAM(Synchronous DRAM) 또는 PSRAM(Pseudo SRAM) 외부 버스 인터페이스로 구성될 수 있다.The first
제2 프로세서 장치(200)는 제2 프로세서(210) 및 제2 액세스 제어부(230)를 포함할 수 있고, 제2 액세스 제어부(230)는 제2 세마포 레지스터(231), 제2 접근 관리부(232) 및 제2 외부버스 인터페이스(239)를 포함할 수 있다.The
제2 프로세서(210)는 예를 들어, 이동통신 단말기의 어플리케이션 프로세서가 될 수 있고, 제2 액세스 제어부(230)는 제2 프로세서(210)로부터 제공된 명령어에 기초하여 공유메모리 영역(450)에 대한 접근 권한 확인, 접근 권한 요청 및 접근 권한 해제 등과 같은 처리를 수행한다.The
제2 세마포 레지스터(231)는 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한을 나타내는 데이터가 저장된다.The
제2 세마포 레지스터(231)는 제1 세마포 레지스터(131) 및 세마포 레지스터(461)와 동일한 비트로 구성될 수 있고, 세마포 레지스터(461)와 동기화되어 동작한다.The
제2 접근 관리부(232)는 제2 프로세서(210)로부터 제공된 명령어에 기초하여 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한 요청 및 접근 권한 해제 등의 처리를 수행한다.The second access manager 232 performs a process such as requesting an access right for the shared
예를 들어, 제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
제2 외부버스 인터페이스(139)는 일종의 메모리 컨트롤러 역할을 수행하며 SDRAM 또는 PSRAM 외부 버스 인터페이스로 구성될 수 있다.The second
듀얼포트메모리(400)는 제1 메모리 인터페이스(410), 제2 메모리 인터페이스(420), 제1 전용메모리 영역(430), 제2 전용메모리 영역(440), 공유메모리 영역(450) 및 동기 제어부(460)를 포함한다.The
제1 메모리 인터페이스(410) 및 제2 메모리 인터페이스(420)는 각각 SDRAM 또는 PSRAM 인터페이스로 구성될 수 있고, 각각의 인터페이스에 상응하는 명령 디코더, 로우 디코더, 컬럼 디코더 및 입출력 버퍼 등을 포함할 수 있다.The first memory interface 410 and the
제1 메모리 인터페이스(410) 및 제2 메모리 인터페이스(420)는 각각 대응되는 포트를 통해 주소, 제어신호, 클럭 및 데이터를 입력받고, 주소를 로우 어드레스와 컬럼 어드레스로 디코딩하여 읽기 또는 쓰기 동작을 수행할 메모리 영역을 결정하고, 소정의 메모리 영역에 대한 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터를 소정 메모리 영역으로부터 독출하거나 소정 메모리 영역에 기록한다.The first memory interface 410 and the
제1 전용메모리 영역(430)은 제1 프로세서 장치(100)가 제1 포트(310)를 통해 전용으로 액세스할 수 있는 메모리 영역이고, 제2 전용메모리 영역(440)은 제2 프로세서 장치(200)가 제2 포트(320)를 통해 전용으로 액세스할 수 있는 메모리 영역이다.The first
또한, 공유메모리 영역(450)은 제1 프로세서 장치(100) 및 제2 프로세서 장치(200)가 각각 제1 포트(310) 및 제2 포트(320)를 통해 액세스할 수 있는 메모리 영역으로, 제1 프로세서 장치(100) 및 제2 프로세서 장치(200)의 액세스 충돌을 방지하게 위해 상호 배타적인 액세스가 보장되어야 한다.In addition, the shared
제1 전용메모리 영역(430), 제2 전용메모리 영역(440) 및 공유메모리 영역(450)은 각각 DRAM의 단위 메모리 셀 구조를 가질 수 있고, 소정 크기를 가지는 뱅크(bank) 단위로 구성될 수도 있다. 또는 하나의 뱅크 내에서 소정 크기를 가지는 블록(block) 단위로 각각의 메모리 영역이 구성될 수도 있다.The first
동기 제어부(460)는 공유메모리 영역(450)에 대한 제1 프로세서 장치(100) 및 제2 프로세서 장치(200)의 상호 배타적인 액세스를 보장하기 위한 것으로 세마포 레지스터(461) 및 권한요청 레지스터(463)를 포함할 수 있다.The
세마포 레지스터(461)는 제1 프로세서 장치(100)의 제1 세마포 레지스터(131) 및 제2 프로세서 장치(200)의 제2 세마포 레지스터(231)와 동기되어 동작하고, 공유메모리 영역(450)의 접근 권한을 표시하는 접근 권한 데이터가 저장된다.The
권한요청 레지스터(463)는 소정 비트(예를 들면, 32비트)로 구성될 수 있고, 짧은 메시지 또는 명령어의 전송에 사용된다. 예를 들어, 권한요청 레지스터(463)는 공유메모리 영역(450)에 대한 접근 권한을 요청하는 메시지나, 상대 프로세서 장치로 전송되어야 하는 공유메모리 영역(450)에 저장된 데이터의 크기 및 위치 등의 정보가 기록된다.The
도 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
제1 프로세서 장치(100)는 제1 프로세서(110) 및 제1 액세스 제어부(130a)를 포함할 수 있고, 제1 액세스 제어부(130)는 제1 세마포 레지스터(131), 제1 접근 관리부(132), 제1 명령어 저장부(133) 및 제1 외부버스 인터페이스(139)를 포함할 수 있다.The
제1 프로세서(110)는 예를 들어 이동통신 단말기의 베이스밴드 프로세서로 구성될 수 있다. The
제1 액세스 제어부(130a)는 제1 프로세서(110)로부터 제공된 명령어에 기초하여 공유메모리 영역(450)에 대한 접근 권한 확인, 접근 권한 요청 및 접근 권한 해제 등과 같은 처리를 수행한다.The
또한, 제1 액세스 제어부(130a)는 제1 프로세서(110)로부터 제공된 명령어를 일시 저장하고, 일시 저장된 명령어 중 공유메모리 영역의 액세스와 관련된 명령어를 프리페치(prefetch)하여 처리함으로써 공유메모리 영역에 대한 접근 대기 시간을 감소시킨다. In addition, the
제1 세마포 레지스터(131) 및 제1 외부버스 인터페이스(139)는 각각 도 3에 도시되고 설명된 바와 동일한 기능을 수행하므로 중복을 피하기 위해 설명을 생략한다.Since the
제1 접근 관리부(132)는 제1 프로세서(110)로부터 제공된 명령어에 기초하여 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한 요청 및 접근 권한 해제 등의 처리를 수행한다.The
예를 들어, 제1 접근 관리부(132)는 제1 명령어 저장부(133)에 저장된 명령어 중 공유메모리 영역(450)을 액세스하는 명령어가 존재하는가를 판단하고, 상기 공유메모리 영역(450)에 대한 액세스 명령어가 존재하는 것으로 판단되면, 제1 세마포 레지스터(131)를 독출하여 공유메모리 영역(450)에 대한 접근 권한을 확인한 후, 접근 권한이 없는 경우에는 현재 실행되고 있는 명령어 다음에 접근 권한을 요청하는 메시지를 제1 포트(310)를 통해 듀얼포트메모리(400)의 권한요청 레지스터(463)에 기록한다.For example, the
제1 명령어 저장부(133)는 제1 프로세서(110)로부터 제공된 명령어가 순차적으로 저장되는 큐(Queue)로 구성될 수 있다. 여기서, 제1 프로세서(110)로부터 제공된 명령어는 제1 명령어 저장부(133)에 저장됨과 동시에 제1 외부버스 인터페이스(139)를 통해 듀얼포트메모리로 전송되기 때문에 최적의 크기로 구현되는 것이 바람직하다. 본 발명의 다른 실시예에 따른 프로세서 장치는 제1 명령어 저장부(133)가 4개의 명령어를 저장할 수 있는 크기로 구성된 것으로 가정한다.The first
제2 프로세서 장치(200)는 제2 프로세서(210) 및 제2 액세스 제어부(230a)를 포함할 수 있고, 제2 액세스 제어부(230a)는 제2 세마포 레지스터(231), 제2 접근 관리부(232), 제2 명령어 저장부(233) 및 제2 외부버스 인터페이스(239)를 포함할 수 있다.The
제2 프로세서(210)는 예를 들어, 이동통신 단말기의 어플리케이션 프로세서가 될 수 있다.The
제2 액세스 제어부(230a)는 제2 프로세서(210)로부터 제공된 명령어에 기초하여 공유메모리 영역(450)에 대한 접근 권한 확인, 접근 권한 요청 및 접근 권한 해제 등과 같은 처리를 수행한다.The
또한, 제2 액세스 제어부(230a)는 제2 프로세서(210)로부터 제공된 명령어를 일시 저장하고, 일시 저장된 명령어 중 공유메모리 영역의 액세스와 관련된 명령어를 프리페치하여 처리함으로써 공유메모리 영역에 대한 접근 대기 시간을 감소시킨다.In addition, the
제2 세마포 레지스터(231) 및 제1 외부버스 인터페이스(239)는 각각 도 3에 도시되고 설명된 바와 동일한 기능을 수행하므로 중복을 피하기 위해 설명을 생략한다.Since the
제2 접근 관리부(232)는 제2 프로세서(210)로부터 제공된 명령어에 기초하여 듀얼포트메모리(400)의 공유메모리 영역(450)에 대한 접근 권한 요청 및 접근 권한 해제 등의 처리를 수행한다.The second access manager 232 performs a process such as requesting an access right for the shared
예를 들어, 제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
제2 명령어 저장부(233)는 제2 프로세서(210)로부터 제공된 명령어가 순차적으로 저장되는 큐로 구성될 수 있다. 여기서, 제2 명령어 저장부(233)는 제2 프로세서(210)로부터 제공된 명령어들 중 4개의 명령어를 임시 저장할 수 있는 크기로 구성될 수 있다.The second
듀얼포트메모리(400)는 도 3에 도시되고 설명된 바와 동일한 구성요소를 포함하고, 각각의 구성요소들이 도 3에 도시된 동일 참조번호의 구성요소와 동일한 기능을 수행하므로 중복을 피하기 위해 설명을 생략한다.The
도 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
먼저, 프리페치를 수행하지 않는 종래의 멀티프로세서 시스템은 큐에 저장된 순서에 따라 시간 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
이에 반하여, 본 발명의 다른 실시예에 따른 멀티프로세서 시스템은 시간 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
이후, 시간 t2 및 t3에서 제2 명령어 및 제3 명령어를 수행한 후, 시간 t4에서 세마포 레지스터(461)를 독출하여 공유메모리 영역(450)에 대한 접근 권한을 확인하고, 시간 t5에서 제4 명령어를 수행한다.Thereafter, after executing the second and third instructions at times t2 and t3, the
즉, 본 발명의 다른 실시예에 따른 멀티프로세서 시스템에서는 제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
도 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
상기와 같은 경우, 제1 접근 관리부(132)는 제1 명령어 저장부(133)에 현재 실행되고 있는 제1 명령어 이외에 공유메모리 영역(450)에 액세스하는 명령어가 없기 때문에 제1 명령어의 실행이 끝난 후 시간 t2에서 공유메모리 영역(450)에 대한 접근 권한을 해제하고, 시간 t2부터 순차적으로 제2 명령어 내지 제4 명령어를 수 행한다.In this case, since the first
도 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
도 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
즉, 제1 접근 관리부(132)는 시간 t0 내지 시간 t4까지 제1 명령어 내지 제4 명령어를 수행한 후 시간 t4에서 공유메모리 영역(450)에 대한 접근 권한을 해제한다. 여기서 공유메모리 영역(450)에 대한 접근 권한 해제는 도 5에 도시된 방법과 동일한 방법으로 제1 접근 관리부(132)가 세마포 레지스터(461) 및 제1 세마포 레지스터(131)에 접근 권한 해제를 지시하는 데이터를 기록함으로써 수행될 수 있다.That is, the
도 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)
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)
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)
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)
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 |
-
2009
- 2009-04-08 KR KR1020090030392A patent/KR101110550B1/en active IP Right Grant
Cited By (3)
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 |