KR100816038B1 - Method for accessing shared memory in multi-processor system - Google Patents

Method for accessing shared memory in multi-processor system Download PDF

Info

Publication number
KR100816038B1
KR100816038B1 KR1020060115521A KR20060115521A KR100816038B1 KR 100816038 B1 KR100816038 B1 KR 100816038B1 KR 1020060115521 A KR1020060115521 A KR 1020060115521A KR 20060115521 A KR20060115521 A KR 20060115521A KR 100816038 B1 KR100816038 B1 KR 100816038B1
Authority
KR
South Korea
Prior art keywords
processor
access
shared memory
memory area
time
Prior art date
Application number
KR1020060115521A
Other languages
Korean (ko)
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 KR1020060115521A priority Critical patent/KR100816038B1/en
Application granted granted Critical
Publication of KR100816038B1 publication Critical patent/KR100816038B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

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

Abstract

A method for accessing a shared memory in a multi-processor system is provided to increase processing performance of the multi-processor system without additional hardware by reducing access delay to a first processor having lower processing performance and a bigger data processing unit than a second processor. A second processor accesses a shared memory area in a predetermined access time, which is the time dividing a shared memory area accessing time of the second memory by a predetermined time gap(305). The second processor waits to access to the shared memory area for a predetermined waiting time after the access time is terminated(311). A first processor accesses the shared memory area in the waiting time. The second processor accesses the shared memory area by repeating stages for accessing the shared memory area in the predetermined access time and waiting the access to the shared memory area in the predetermined waiting time after the access time is terminated.

Description

멀티 프로세서 시스템의 공유 메모리 접근 방법{Method for Accessing Shared Memory in Multi-Processor System}Method for Accessing Shared Memory in Multi-Processor System

도 1은 일반적인 멀티 프로세서 시스템에서 두 개의 프로세서가 공유 메모리 영역에 접근하는 방법을 설명하기 위한 개념도이다.1 is a conceptual diagram illustrating a method in which two processors access a shared memory area in a general multiprocessor system.

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

도 3은 본 발명의 일실시에에 따른 멀티 프로세서 시스템에서 두 개의 프로세서가 공유 메모리 영역에 접근하는 방법을 설명하기 위한 개념도이다.3 is a conceptual diagram illustrating a method of accessing a shared memory area by two processors in a multiprocessor system according to an embodiment of the present invention.

도 4는 본 발명의 일실시예에 따른 멀티 프로세서 시스템에서 제2 프로세서의 공유 메모리 영역에 대한 접근 방법을 나타낸 흐름도이다.4 is a flowchart illustrating a method of accessing a shared memory area of a second processor in a multiprocessor system according to an embodiment of the present invention.

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

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

130 : 제1 외부 버스 인터페이스 140 : 제2 외부 버스 인터페이스130: first external bus interface 140: second external bus interface

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

220 : 접근 제어부 230 : 제1 메모리 인터페이스220: access control unit 230: first memory interface

240 : 제2 메모리 인터페이스240: second memory interface

본 발명은 멀티 프로세서 시스템에 관한 것으로, 더욱 상세하게는 적어도 하나의 프로세서를 구비한 휴대용 단말기에 적용할 수 있는 멀티 프로세서 시스템의 공유 메모리 접근 방법에 관한 것이다.The present invention relates to a multiprocessor system, and more particularly, to a shared memory access method of a multiprocessor system applicable to a portable terminal having at least one processor.

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

휴대용 단말기는 모뎀 프로세서, 베이스 밴드 프로세서와 같이 이동 통신 본래의 기능을 처리하는 메인 프로세서와 멀티미디어 기능 또는 메인 프로세서의 명령에 의해 어플리케이션 프로그램을 처리하기 위한 부가프로세서 등과 같이 복수의 프로세서가 구비된 멀티프로세서 시스템으로 구성된다.A portable terminal is a multiprocessor system having a plurality of processors, such as a main processor for processing the original functions of mobile communication, such as a modem processor and a baseband processor, and an additional processor for processing an application program by a multimedia function or instructions of the main processor. It consists of.

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

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

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

듀얼 포트 메모리를 구비한 멀티프로세서 시스템에서 각 프로세서가 자신의 포트를 통해 동시에 동일한 공유 메모리 영역에 접근하게 되면 충돌이 발생하게 되어 두 개의 프로세서가 모두 메모리에 접근할 수 없게 되므로 전체적인 시스템의 성능이 떨어지게 된다는 문제점이 있다.In a multiprocessor system with dual-port memory, if each processor accesses the same shared memory area through its port at the same time, a conflict will occur and both processors will not be able to access the memory, resulting in poor overall system performance. There is a problem.

또한, 두 개의 프로세서 중에서 하나의 프로세서가 공유 메모리 영역에 접근하여 데이터를 읽거나 쓰고 있는 도중에 다른 프로세서가 동일한 공유 메모리 영역에 접근하여 데이터를 쓰게 되면 메모리 영역에 저장된 데이터가 부정확하게 되어 프로세서의 처리 과정 또는 처리 결과에 오류가 발생할 수 있다는 문제점이 있다.In addition, if one processor of the two processors accesses the shared memory area and reads or writes the data while another processor accesses the same shared memory area and writes the data, the data stored in the memory area becomes inaccurate. Or there is a problem that an error may occur in the processing result.

따라서, 상기와 같은 문제점을 해결하기 위해 멀티프로세서 시스템에서는 공유 메모리 영역에 대한 각 프로세서의 상호 배타(mutual exclusive)적 접근을 제어하는 방법 및 장치가 필요하다.Accordingly, in order to solve the above problems, a multiprocessor system needs a method and apparatus for controlling mutual exclusive access of each processor to a shared memory area.

도 1은 일반적인 멀티 프로세서 시스템에서 두 개의 프로세서가 공유 메모리 영역에 접근하는 방법을 설명하기 위한 개념도이다.1 is a conceptual diagram illustrating a method in which two processors access a shared memory area in a general multiprocessor system.

도 1을 참조하면, 제2 프로세서는 시간 t0에서 소정의 공유 메모리 영역에 대한 접근을 시작하여 데이터의 읽기 또는 쓰기 동작을 수행한다. 시간 t0에서 상기 소정의 공유 메모리 영역에 대한 접근은 하드웨어적으로 락(lock) 상태가 되어 제1 프로세서의 접근을 방지한다.Referring to FIG. 1, the second processor starts an access to a predetermined shared memory area at time t0 to read or write data. At time t0, access to the predetermined shared memory area is locked in hardware to prevent access to the first processor.

제1 프로세서는 시간 t1에서 상기 소정의 공유 메모리 영역에 대한 접근을 시도한다. 그러나 제2 프로세서가 상기 소정의 공유 메모리 영역에 대해 이미 접근하여 상기 소정의 공유 메모리 영역에 대한 접근이 락 상태가 되었기 때문에 제1 프로세서는 시간 t1에서 상기 소정의 공유 메모리 영역에 대한 접근을 허가받지 못하고, 접근이 가능할 때까지 대기 상태(idle state)로 있게 된다.The first processor attempts to access the predetermined shared memory area at time t1. However, since the second processor has already accessed the predetermined shared memory area and the access to the predetermined shared memory area is locked, the first processor is not granted access to the predetermined shared memory area at time t1. It remains in an idle state until it is accessible.

이후 시간 t2에서 제2 프로세서가 상기 소정의 공유 메모리 영역에 대한 접근을 종료함으로써 상기 소정의 공유 메모리 영역에 대한 접근 상태가 언락(unlock) 상태로 되면 제1 프로세서는 접근 대기 상태에서 상기 소정의 공유 메모리에 대한 접근을 수행하여 데이터의 읽기 또는 쓰기 동작을 수행한다. Thereafter, when the second processor terminates the access to the predetermined shared memory area at time t2 and the access state to the predetermined shared memory area is unlocked, the first processor is in the waiting state for accessing the predetermined share. Access to memory is performed to read or write data.

이때 제1 프로세서가 접근한 상기 소정의 공유 메모리 영역에 대한 접근은 락 상태가 되어 제2 프로세서는 상기 소정의 공유 메모리 영역에 대해 접근할 수 없게 된다.At this time, the access to the predetermined shared memory area accessed by the first processor is locked, and the second processor cannot access the predetermined shared memory area.

도 1에 도시한 멀티 프로세서 시스템에서 제2 프로세서의 전체 접근 지연(latency) 시간은 시간 t0에서 t2까지 이고, 제1 프로세서의 전체 접근 지연 시간은 제1 프로세서가 처음으로 접근을 시도한 시간 t1에서 t3까지가 된다.In the multi-processor system shown in FIG. 1, the total access latency time of the second processor is from time t0 to t2, and the total access delay time of the first processor is time t1 at time t1 when the first processor attempts access for the first time. It becomes until.

도 1에 도시한 일반적인 멀티 프로세서 시스템의 공유 메모리 접근 방법은 소정의 공유 메모리 영역에 대한 제1 프로세서 및 제2 프로세서의 상호 배타적인 접근을 보장하고, 제1 프로세서 및 제2 프로세서가 소정의 공유 메모리 영역에 대해 공평하게 접근을 시도함으로써 어느 하나의 프로세서가 기아(starvation) 현상 에 빠지는 것을 방지할 수 있다. The shared memory access method of the general multiprocessor system shown in FIG. 1 ensures mutually exclusive access of a first processor and a second processor to a predetermined shared memory area, and the first processor and the second processor provide a predetermined shared memory. By trying to access the domain fairly, it is possible to prevent any processor from starvation.

그러나, 도 1에 도시한 일반적인 멀티 프로세서 시스템의 공유 메모리 접근 방법에서 제1 프로세서가 휴대용 단말기에 구비된 메인프로세서이고, 제2 프로세서가 휴대용 단말기에서 어플리케이션 또는 멀티미디어 기능을 처리하기 위한 부가프로세서라 가정하면, 메인 프로세서는 공유 메모리 영역에 접근하여 읽기 또는 쓰기 등의 작업을 수행하는 데이터의 단위가 크고, 프로세서 자체의 처리 성능이 부가프로세서에 비해 떨어지기 때문에 도 1에 도시한 바와 같이 제1 프로세서 즉, 메인 프로세서의 접근 지연시간이 길어지면 길어질수록 전체적인 멀티 프로세서 시스템의 처리 성능이 떨어지게 된다는 단점이 있다.However, in the shared memory access method of the general multiprocessor system illustrated in FIG. 1, it is assumed that a first processor is a main processor provided in a portable terminal, and a second processor is an additional processor for processing an application or a multimedia function in the portable terminal. Since the main processor has a large unit of data that accesses the shared memory area and performs operations such as reading or writing, and the processing power of the processor itself is inferior to that of the additional processor, the first processor as shown in FIG. The longer the access delay time of the main processor, the lower the processing performance of the overall multiprocessor system.

따라서, 본 발명의 목적은 별도의 하드웨어 추가 없이 멀티 프로세서 시스템의 처리 성능을 향상시킬 수 있는 멀티 프로세서 시스템의 공유 메모리 접근 방법을 제공하는 것이다.Accordingly, an object of the present invention is to provide a shared memory access method of a multiprocessor system capable of improving processing performance of a multiprocessor system without additional hardware.

상술한 본 발명의 목적을 달성하기 위한 본 발명의 일측면에 따른 멀티 프로세서 시스템의 공유 메모리 접근 방법은 제1 프로세서, 제2 프로세서, 공유 메모리 및 접근 제어부를 포함한 멀티 프로세서 시스템의 공유 메모리 접근 제어 방법에 있어서, 상기 제2 프로세서가 기설정된 접근 시간 동안 상기 공유 메모리 영역에 접근하는 단계와, 상기 제2 프로세서가 상기 접근 시간이 종료된 후 기설정된 대기 시간 동안 상기 공유 메모리 영역에 대한 접근을 대기하는 단계 및 상기 제1 프로 세서가 상기 대기 시간에 상기 공유 메모리에 접근하는 단계를 포함하고, 상기 제2 프로세서는 상기 기설정된 접근 시간 동안 상기 공유 메모리 영역에 접근하는 단계 및 상기 접근 시간이 종료된 후 기설정된 대기 시간 동안 상기 공유 메모리 영역에 대한 접근을 대기하는 단계를 반복하여 상기 공유 메모리에 대한 접근을 수행한다. 상기 접근 시간은 상기 제2 프로세서가 상기 공유 메모리에 접근하는 시간을 소정의 시간 간격으로 분할한 것일 수 있다. 상기 제2 프로세서가 기설정된 접근 시간 동안 상기 공유 메모리 영역에 접근하는 단계는, 상기 제2 프로세서가 상기 공유 메모리 영역에 대한 접근을 요청하는 단계와, 상기 제2 프로세서가 상기 공유 메모리 영역에 대한 접근 허용 여부를 판단하는 단계를 더 포함할 수 있다. 상기 공유 메모리 영역에 대한 접근을 요청하는 단계 상기 제2 프로세서가 제1 논리값을 가지는 접근 요청 신호를 상기 접근 제어부에 전송함으로써 상기 공유 메모리 영역에 대한 접근을 요청할 수 있다. 상기 공유 메모리 영역에 대한 접근 허용 여부를 판단하는 단계는 상기 제2 프로세서가 상기 접근 제어부로부터 제공된 접근 허용 신호의 논리값을 판별함으로써 상기 공유 메모리 영역에 대한 접근 허용 여부를 판단할 수 있다. 상기 제2 프로세서가 상기 접근 시간이 종료된 후 기설정된 대기 시간 동안 상기 공유 메모리 영역에 대한 접근을 대기하는 단계는, 상기 접근 시간의 종료 여부를 판단하는 단계와, 상기 접근 시간이 종료된 경우, 상기 제2 프로세서가 상기 접근 시간의 종료를 통보하는 단계 및 상기 제2 프로세서가 기설정된 대기 시간 동안 상기 공유 메모리 영역에 대한 접근을 대기하는 단계를 포함할 수 있다. 상기 제2 프로세서가 상기 접근 시간의 종료를 통보하는 단계는 상기 제2 프로세서 가 제2 논리값을 상기 접근 제어부에 전송함으로써 상기 접근 시간의 종료을 통보할 수 있다. 상기 멀티 프로세서 시스템의 공유 메모리 접근 방법은 상기 기설정된 대기 시간이 종료된 후 상기 공유 메모리 영역에 상기 제1 프로세서가 접근하고 있는 경우에는 상기 제1 프로세서의 접근이 종료된 후 상기 접근 시간 동안 상기 공유 메모리에 접근하는 단계를 더 포함할 수 있다. 상기 제1 프로세서는 휴대용 단말기의 메인 프로세서이고, 상기 제2 프로세서는 상기 휴대용 단말기의 부가 프로세서가 될 수 있다. Shared memory access method of a multi-processor system according to an aspect of the present invention for achieving the above object of the present invention is a shared memory access control method of a multi-processor system including a first processor, a second processor, a shared memory and an access controller The method of claim 1, wherein the second processor accesses the shared memory area for a preset access time, and the second processor waits for access to the shared memory area for a preset waiting time after the access time ends. And accessing the shared memory at the waiting time by the first processor, wherein the second processor accesses the shared memory area for the preset access time and after the access time is over. Wait for access to the shared memory area for a preset waiting time. Repeat steps to perform access to the shared memory. The access time may be obtained by dividing a time when the second processor accesses the shared memory at predetermined time intervals. The accessing of the shared memory area by the second processor for a preset access time may include: requesting the second processor to access the shared memory area, and accessing the shared memory area by the second processor; The method may further include determining whether to allow. Requesting Access to the Shared Memory Region The second processor may request access to the shared memory region by transmitting an access request signal having a first logic value to the access controller. In the determining of whether to allow access to the shared memory area, the second processor may determine whether to allow access to the shared memory area by determining a logic value of an access permission signal provided from the access controller. Waiting for the second processor to access the shared memory area for a preset waiting time after the access time ends, determining whether the access time ends, and when the access time ends, The second processor may include notifying the end of the access time, and the second processor waiting for access to the shared memory area for a preset waiting time. In the notifying of the end of the access time, the second processor may notify the end of the access time by transmitting a second logic value to the access controller. In the shared memory access method of the multi-processor system, when the first processor is approaching the shared memory area after the preset waiting time ends, the access is performed during the access time after the access of the first processor is terminated. The method may further include accessing the memory. The first processor may be a main processor of the portable terminal, and the second processor may be an additional processor of the portable terminal.

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

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

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

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

도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.In describing the drawings, similar reference numerals are used for similar components.

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

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

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

그리고, 듀얼 포트 메모리(200)는 메모리 셀 어레이(210), 접근 제어부(220), 제1 메모리 인터페이스(230) 및 제2 메모리 인터페이스(240)를 포함하고, 메모리 셀 어레이(210)는 제1 전용 메모리 영역(211), 제2 전용 메모리 영역(213), 제3 전용 메모리 영역(215) 및 복수의 공유 메모리 영역(217)을 포함한다.The dual port memory 200 may include a memory cell array 210, an access controller 220, a first memory interface 230, and a second memory interface 240, and the memory cell array 210 may include a first memory cell array 210. A dedicated memory area 211, a second dedicated memory area 213, a third dedicated memory area 215, and a plurality of shared memory areas 217 are included.

제1 프로세서(110)는 핸드폰과 같은 휴대용 단말기에서 음성 통화와 같은 이동통신 본래의 기능을 처리하는 메인 프로세서가 될 수 있고, 제2 프로세서(120)는 휴대용 단말기에서 상기 메인 프로세서의 명령에 의한 어플리케이션 프로그램의 실행이나 멀티미디어 기능을 처리하기 위한 부가 프로세서가 될 수 있다. 상기 메인 프로세서는 모뎀 프로세서 또는 베이스 밴드 프로세서가 될 수 있다.The first processor 110 may be a main processor for processing a mobile communication original function such as a voice call in a portable terminal such as a mobile phone, and the second processor 120 may be an application by a command of the main processor in the portable terminal. It may be an additional processor for executing a program or processing a multimedia function. The main processor may be a modem processor or a baseband processor.

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

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

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

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

메모리 셀 어레이(210)는 DRAM의 단위 메모리 셀 구조를 가지고 제1 내지 제3 전용 메모리 영역(211 내지 215) 및 복수의 공유 메모리 영역(217)을 포함한다. 제1 전용 메모리 영역(211)은 제1 프로세서(110)가 독립적으로 접근하여 읽기 또는 쓰기 작업을 수행하는 제1 프로세서(110)의 전용 메모리 영역이 될 수 있고, 제2 및 제3 전용 메모리 영역(213, 215)은 제2 프로세서(120)가 독립적으로 접근하여 읽기 또는 쓰기 작업을 수행하는 제2 프로세서(120)의 전용 메모리 영역이 될 수 있다. 여기서, 제1 내지 제3 전용 메모리 영역(211 내지 215) 각각은 소정 크기를 가지는 뱅크(bank) 단위로 형성될 수 있다.The memory cell array 210 has a unit memory cell structure of a DRAM and includes first to third dedicated memory areas 211 to 215 and a plurality of shared memory areas 217. The first dedicated memory area 211 may be a dedicated memory area of the first processor 110 to which the first processor 110 independently accesses to perform a read or write operation, and the second and third dedicated memory areas. Reference numerals 213 and 215 may be dedicated memory regions of the second processor 120 to which the second processor 120 independently accesses and performs a read or write operation. Each of the first to third dedicated memory areas 211 to 215 may be formed in a bank unit having a predetermined size.

복수의 공유 메모리 영역(217)은 소정 크기를 가지는 뱅크(Bank) 단위로 형성될 수도 있고, 하나의 뱅크내에서 소정 크기를 갖는 블록(block) 단위로 복수의 공유 메모리 영역(217)이 구성될 수도 있다. 도 2에서 복수의 공유 메모리 영역(217)은 네 개의 공유 메모리 영역을 포함하는 것으로 도시하였다.The plurality of shared memory regions 217 may be formed in a bank unit having a predetermined size, and the plurality of shared memory regions 217 may be formed in a block unit having a predetermined size in one bank. It may be. In FIG. 2, the plurality of shared memory areas 217 is illustrated as including four shared memory areas.

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

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

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

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

접근 제어부(220)는 복수의 공유 메모리 영역(217) 각각에 대한 제1 프로세서(110) 및 제2 프로세서(120)의 상호 배타적 접근을 보장한다.The access controller 220 guarantees mutually exclusive access of the first processor 110 and the second processor 120 to each of the plurality of shared memory regions 217.

즉, 제1 프로세서(110) 및 제2 프로세서(120)로부터 각각 제1 메모리 인터페이스(230) 및 제2 메모리 인터페이스(240)를 통해 소정의 공유 메모리 영역 각각에 대한 접근 요청 신호(SEM)를 입력받고, 상기 요청받은 공유 메모리 영역의 현재의 접근 상태에 따라 접근 허용 신호(READY)를 제1 프로세서(110) 및 제2 프로세서(120)에 제공함으로써 소정의 공유 메모리 영역 각각에 대한 제1 프로세서(110) 및 제2 프로세서(120)의 상호 배타적 접근을 보장한다.여기서, 제1 프로세서(110)는 제1 메모리 인터페이스(230)를 통해 접근 요청 신호(SEM)를 전송하고, 제2 프로세서(120)는 제2 메모리 인터페이스(240)를 통해 접근 요청 신호(SEM)를 전송한다.That is, the access request signal SEM for each of the predetermined shared memory areas is input from the first processor 110 and the second processor 120 through the first memory interface 230 and the second memory interface 240, respectively. The first processor for each of the predetermined shared memory areas by providing an access permission signal READY to the first processor 110 and the second processor 120 according to the current access state of the requested shared memory area. The mutually exclusive access of the 110 and the second processor 120 is guaranteed. Here, the first processor 110 transmits an access request signal SEM through the first memory interface 230 and the second processor 120. ) Transmits an access request signal SEM through the second memory interface 240.

접근 요청 신호(SEM)는 논리값 '0' 또는 '1'을 가질 수 있으며, 제1 프로세서(110) 및 제2 프로세서(120)가 소정의 공유 메모리 영역에 대해 접근 요청을 하는 경우에는 접근 요청 신호(SEM)는 논리값 '0'이 될 수 있고, 제1 프로세서(110) 및 제2 프로세서(120)가 소정의 공유 메모리 영역에서 작업을 마친 경우에는 접근 요청 신호(SEM)는 논리값 '1'이 될 수 있다.The access request signal SEM may have a logic value of '0' or '1', and when the first processor 110 and the second processor 120 request access to a predetermined shared memory area, the access request The signal SEM may be a logic value '0', and when the first processor 110 and the second processor 120 finish the operation in a predetermined shared memory area, the access request signal SEM may be a logic value '. Can be 1 '.

또한, 본 발명의 다른 실시예에서는 제1 프로세서(110) 및 제2 프로세서(120)가 소정의 공유 메모리 영역에 대해 접근 요청을 하는 경우에 접근 요청 신호(SEM)는 논리값 '1'이 되고, 제1 프로세서(110) 및 제2 프로세서(120)가 소정의 공유 메모리 영역에서 작업을 마친 경우에는 접근 요청 신호(SEM)는 논리값 '0'이 되도록 접근 요청 신호(SEM)를 구성할 수도 있다.In addition, in another embodiment of the present invention, when the first processor 110 and the second processor 120 makes an access request for a predetermined shared memory area, the access request signal SEM becomes a logic value '1'. When the first processor 110 and the second processor 120 finish the work in the predetermined shared memory area, the access request signal SEM may configure the access request signal SEM such that the access request signal SEM becomes a logic value '0'. have.

접근 제어부(220)는 제1 프로세서(110) 및 제2 프로세서(120)로부터 소정 공유 메모리 영역에 대한 접근 요청시 논리값 '0'을 입력받고, 요청된 소정 공유 메모리 영역의 현재의 접근 상태에 따라 접근이 가능한 경우는 논리값 '0'을 접근 허용 신호(READY)로 출력하고, 접근이 가능하지 않은 경우는 논리값 '1'을 접근 허용 신호(READY)로 출력한다.The access controller 220 receives a logic value '0' from the first processor 110 and the second processor 120 when requesting access to a predetermined shared memory area, and applies the current value to the current access state of the requested shared memory area. Therefore, if the access is possible, the logic value '0' is output as the access permission signal READY, and if the access is not possible, the logic value '1' is output as the access permission signal READY.

도 3은 본 발명의 일실시예에 따른 멀티 프로세서 시스템에서 두 개의 프로세서가 공유 메모리 영역에 접근하는 방법을 설명하기 위한 개념도이다.3 is a conceptual diagram illustrating a method in which two processors access a shared memory area in a multiprocessor system according to an embodiment of the present invention.

도 3을 참조하면, 제2 프로세서(120)는 시간 t0에서 소정의 공유 메모리 영역에 대한 접근을 시작하여 데이터의 읽기 또는 쓰기 동작을 수행한다. 시간 t0에서 제2 프로세서(120)가 상기 소정의 공유 메모리 영역에 접근하게 되면 상기 소정의 공유 메모리 영역은 락(lock) 상태가 되어 제1 프로세서(110)가 접근할 수 없게 된다.Referring to FIG. 3, the second processor 120 starts an access to a predetermined shared memory area at time t0 to read or write data. When the second processor 120 accesses the predetermined shared memory area at time t0, the predetermined shared memory area is locked and the first processor 110 may not be accessible.

이후 시간 t1에서 제2 프로세서(120)는 상기 소정의 공유 메모리 영역에 대한 접근을 일시 종료하고 상기 소정의 공유 메모리 영역은 언락(unlock) 상태가 된다. 그리고 제2 프로세서(120)는 시간 t2까지 대기 상태를 유지함으로써, 제1 프로세서(110)가 상기 소정의 공유 메모리 영역에 접근할 수 있는 시간을 마련한다.Then, at time t1, the second processor 120 temporarily terminates access to the predetermined shared memory area and the predetermined shared memory area is unlocked. In addition, the second processor 120 maintains the standby state until the time t2, thereby providing a time for the first processor 110 to access the predetermined shared memory area.

시간 t1에서 t2 사이에 제1 프로세서(110)가 상기 소정의 공유 메모리 영역에 대한 접근을 시도하지 않았으므로 시간 t2에서 제2 프로세서(120)는 상기 소정의 공유 메모리 영역에 대한 접근을 다시 시도하여 읽기 또는 쓰기 작업을 계속 수 행한다.Since the first processor 110 did not attempt to access the predetermined shared memory area between the times t1 and t2, the second processor 120 attempts to access the predetermined shared memory area again at a time t2. Continue reading or writing.

제2 프로세서(120)가 소정의 공유 메모리 영역에 접근하고 작업을 수행하고 있는 도중에 시간 t3에서 제1 프로세서(110)가 상기 소정의 공유 메모리 영역에 대한 접근을 시도한다. 그러나 제2 프로세서(120)가 상기 소정의 공유 메모리 영역에 대해 이미 접근하여 상기 소정의 공유 메모리 영역에 대한 접근이 락 상태가 되었기 때문에 제1 프로세서(110)는 시간 t3에서 상기 소정의 공유 메모리 영역에 대한 접근을 허가받지 못하고, 접근이 가능할 때까지 대기 상태(idle state)로 있게 된다.While the second processor 120 is accessing a predetermined shared memory area and performing a task, the first processor 110 attempts to access the predetermined shared memory area at time t3. However, since the second processor 120 has already accessed the predetermined shared memory area and the access to the predetermined shared memory area has been locked, the first processor 110 has the predetermined shared memory area at time t3. You are not granted access to, and are in an idle state until you have access.

이후 시간 t4에서 제2 프로세서(120)가 상기 소정의 공유 메모리 영역에 대한 접근을 일시 종료함으로써 상기 소정의 공유 메모리 영역에 대한 접근이 언락(unlock) 상태로 되면 접근 대기 상태에 있던 제1 프로세서(110)는 상기 소정의 공유 메모리에 대한 접근을 수행하여 데이터의 읽기 또는 쓰기 동작을 수행한다.Thereafter, when the second processor 120 temporarily terminates the access to the predetermined shared memory area at time t4, and the access to the predetermined shared memory area is unlocked, the first processor ( 110 performs an access to the predetermined shared memory to read or write data.

이때 상기 소정의 공유 메모리 영역은 제1 프로세서(110)가 접근하였기 때문에 락 상태가 되어 제2 프로세서(120)는 상기 소정의 공유 메모리 영역에 대해 접근할 수 없게 된다.In this case, the predetermined shared memory area is locked because the first processor 110 has approached, and thus the second processor 120 cannot access the predetermined shared memory area.

제1 프로세서(110)가 시간 t5에서 상기 소정의 공유 메모리 영역에 대한 접근을 종료하면 상기 소정의 공유 메모리 영역은 언락 상태가 되어 제2 프로세서(120)가 접근하여 작업을 수행한 후 시간 t6에서 작업을 일시 종료한 후 상기 소정의 공유 메모리 영역에 대한 접근을 언락하고 시간 t7까지 접근 대기 상태를 유지함으로써 제1 프로세서(110)가 접근할 수 있도록 한다. 그리고, 다시 시간 t7에 서 상기 소정의 공유 메모리 영역에 접근하여 작업을 수행하고, 시간 t8에서 상기 소정의 공유 메모리 영역에 대한 접근을 종료한다.When the first processor 110 terminates the access to the predetermined shared memory area at time t5, the predetermined shared memory area is unlocked so that the second processor 120 approaches and performs a task at time t6. After the operation is temporarily terminated, the first processor 110 is accessible by unlocking the access to the predetermined shared memory area and maintaining the access wait state until the time t7. Then, at time t7, the predetermined shared memory area is accessed to perform a task, and at time t8, the access to the predetermined shared memory area is terminated.

도 3에 도시한 본 발명의 일실시예에 따른 멀티 프로세서 시스템의 공유 메모리 접근 방법에서 제1 프로세서(110)의 전체 접근 지연시간은 t3에서 t5까지이고, 여기서 제1 프로세서(110)의 접근 대기 시간은 t3에서 t4까지가 된다. 또한, 제2 프로세서(120)의 전체 접근 지연시간은 t0에서 t8까지가 된다.In the shared memory access method of the multi-processor system shown in FIG. 3, the total access delay time of the first processor 110 is from t3 to t5, where the first processor 110 waits for access. The time is from t3 to t4. In addition, the total access delay time of the second processor 120 is from t0 to t8.

도 3에 도시한 바와 같이 본 발명의 일실시예에 따른 멀티 프로세서 시스템의 공유 메모리 접근 방법에서는 제1 프로세서(110) 즉, 메인 프로세서 보다 처리 성능이 우수한 제2 프로세서(120) 즉, 부가 프로세서의 공유 메모리 영역에 대한 접근 시간을 소정 크기를 갖는 작은 시간 단위로 분할하고, 분할된 접근 시간 단위 사이에 접근 대기 시간을 마련하여, 제1 프로세서(110)가 상기 접근 대기 시간에 소정의 공유 메모리 영역에 접근하도록 함으로써 제1 프로세서(110)의 접근 대기 시간을 줄일 수 있다.As shown in FIG. 3, in the shared memory access method of the multi-processor system according to an exemplary embodiment of the present invention, the first processor 110, that is, the second processor 120, that is, the additional processor having better processing performance than the main processor, may be used. By dividing the access time for the shared memory area into small time units having a predetermined size, and providing an access wait time between the divided access time units, the first processor 110 provides a predetermined shared memory area at the access wait time. By accessing the access wait time of the first processor 110 can be reduced.

도 3에서 제2 프로세서(120)의 공유 메모리 영역에 대한 접근 시간 단위(AT) 및 접근 대기 시간(IT)은 제1 프로세서(110)의 성능 또는 제2 프로세서(120)가 주로 처리하는 작업 데이터의 종류에 따라 소정의 시간 단위로 설정할 수 있다. In FIG. 3, the access time unit (AT) and the access wait time (IT) for the shared memory area of the second processor 120 are the performance of the first processor 110 or the job data mainly processed by the second processor 120. It can be set in predetermined time units according to the type of.

또한, 제2 프로세서(120)의 공유 메모리 영역에 대한 각 접근 시간 단위(AT) 및 접근 대기 시간 단위(IT)는 일정한 시간 단위로 설정될 수도 있고, 서로 다른 시간 단위로 설정될 수도 있다. 예를 들어, 제2 프로세서(120)의 소정의 공유 메모리 영역에 대한 접근 시간 단위(AT)는 제1 프로세서(110)의 평균 접근 시간의 절반 이하로 설정함으로써, 제1 프로세서(110)의 공유 메모리 영역에 대한 최대 접근 대기 시간을 제2 프로세서(120)의 접근 시간 단위 이하로 줄일 수 있다.In addition, each of the access time units AT and the access wait time IT for the shared memory area of the second processor 120 may be set in a predetermined time unit or may be set in different time units. For example, the access time unit AT of the predetermined shared memory area of the second processor 120 is set to less than half the average access time of the first processor 110, thereby sharing the first processor 110. The maximum access wait time for the memory area may be reduced to less than or equal to the access time unit of the second processor 120.

그리고, 공유 메모리 영역에 대한 제2 프로세서(120)의 접근 시간에 대한 분할은 응용 프로그램 인터페이스(Application Programming Interface: API)를 이용하여 제2 프로세서(120)의 공유 메모리 영역에 대한 접근을 저수준(low-level) 프로그래밍 함으로써 별도의 하드웨어를 추가하지 않고 소프트웨어적인 방법으로 구현할 수 있다.In addition, the division of the access time of the second processor 120 to the shared memory area lowers access to the shared memory area of the second processor 120 by using an application programming interface (API). -level) can be implemented in software without additional hardware.

도 4는 본 발명의 일실시예에 따른 멀티 프로세서 시스템에서 제2 프로세서의 공유 메모리 영역에 대한 접근 방법을 나타낸 흐름도이다.4 is a flowchart illustrating a method of accessing a shared memory area of a second processor in a multiprocessor system according to an embodiment of the present invention.

도 4를 참조하면, 먼저 제2 프로세서(120)는 소정의 공유 메모리 영역에 대한 접근을 위해 접근 제어부(220)에 접근 요청을 한다(단계 301). 즉, 제2 프로세서(120)는 접근 제어부(220)에 접근 요청 신호(SEM)로 논리값 '0'을 전송함으로써 소정의 공유 메모리 영역에 대한 접근 요청을 한다.Referring to FIG. 4, first, the second processor 120 requests an access to the access controller 220 to access a predetermined shared memory area (step 301). That is, the second processor 120 transmits a logical value '0' to the access controller 220 as an access request signal SEM to request access to a predetermined shared memory area.

이후, 제2 프로세서(120)는 접근 제어부(220)로부터 접근 허용 신호(READY)를 독출하여 상기 소정의 공유 메모리 영역에 대한 접근 허용 여부를 판단한다(단계 303). Thereafter, the second processor 120 reads the access permission signal READY from the access controller 220 and determines whether to allow access to the predetermined shared memory area (step 303).

즉, 제2 프로세서(120)는 접근 제어부(220)로부터 출력되는 접근 허용 신호(READY)가 논리값 '0'인 경우는 상기 소정의 공유 영역에 대한 접근이 허용된 것으로 판단하고, 접근 제어부(220)로부터 출력되는 접근 허용 신호(READY)가 논리값 '1'인 경우는 상기 소정의 공유 영역에 대한 접근이 허용되지 않은 것으로 판단한 다. 여기서, 접근 허용 신호(READY)가 논리값 '1'인 경우는 상기 소정의 공유 메모리 영역에 제1 프로세서(110)가 접근하고 있음을 의미한다.That is, when the access permission signal READY output from the access control unit 220 has a logic value of '0', the second processor 120 determines that access to the predetermined shared area is allowed, and the access control unit ( When the access permission signal READY outputted from 220 is a logic value '1', it is determined that access to the predetermined shared area is not allowed. Here, when the access permission signal READY is a logic value '1', it means that the first processor 110 is approaching the predetermined shared memory area.

단계 303에서 판단결과, 접근이 허용된 것으로 판단되면 제2 프로세서(120)는 상기 소정의 공유 메모리 영역에 접근하여 데이터의 읽기 또는 쓰기 작업을 수행한다(단계 305).If it is determined in step 303 that the access is permitted, the second processor 120 accesses the predetermined shared memory area to read or write data (step 305).

그리고, 제2 프로세서(120)는 상기 소정의 공유 메모리 영역에 대한 기설정된 접근 시간이 종료되었는지를 판단하고(단계 307), 상기 소정의 공유 메모리 영역에 대한 접근 시간이 종료되지 않은 것으로 판단되면 단계 305로 되돌아가서 상기 소정의 공유 메모리 영역에 대한 읽기 또는 쓰기 작업을 계속 수행한다. The second processor 120 determines whether a predetermined access time for the predetermined shared memory area has ended (step 307), and if it is determined that the access time for the predetermined shared memory area has not ended, step Returning to 305, continue reading or writing to the predetermined shared memory area.

그리고, 단계 307에서 접근 시간이 종료된 것으로 판단되면 제2 프로세서(120)는 상기 소정의 공유 메모리 영역에 대한 접근을 일시 종료하고 접근 제어부(220)에 접근 종료를 통보함으로써 제1 프로세서(110)가 상기 소정의 공유 메모리 영역에 접근할 수 있도록 하고(단계 309), 상기 공유 메모리 영역에 대한 접근 대기 상태로 진입한다(단계 311). 여기서, 제2 프로세서(120)는 접근 제어부(220)에 논리값 '1'을 전송함으로써 상기 소정의 공유 메모리 영역에 대한 접근 종료를 통보한다.If it is determined in step 307 that the access time has ended, the second processor 120 temporarily terminates the access to the predetermined shared memory area and notifies the access controller 220 of the end of access to the first processor 110. Allows access to the predetermined shared memory area (step 309) and enters a wait state for access to the shared memory area (step 311). Here, the second processor 120 notifies the end of the access to the predetermined shared memory area by transmitting a logic value '1' to the access controller 220.

이후, 제2 프로세서(120)는 기설정된 접근 대기 시간이 종료되었는지를 판단하고(단계 313), 접근 대기 시간이 종료되지 않은 것으로 판단되면 단계 311로 되돌아가서 상기 소정의 공유 메모리 영역에 대한 접근을 대기하고, 접근 대기 시간이 종료된 것으로 판단되면 공유 메모리 영역에 대한 접근 종료에 해당하는 이벤트 가 발생되었는지를 판단한다(단계 315).Thereafter, the second processor 120 determines whether the preset access wait time has ended (step 313), and if it is determined that the access wait time has not ended, returns to step 311 to access the predetermined shared memory area. If it is determined that the access wait time has ended, it is determined whether an event corresponding to the end of the access to the shared memory area has occurred (step 315).

단계 315에서 상기 소정의 공유 메모리 영역에 대한 접근 종료에 해당하는 이벤트가 발생된 것으로 판단되면 상기 소정의 공유 메모리 영역에 대한 접근을 종료하고, 접근 종료에 해당하는 이벤트가 발생되지 않은 것으로 판단되면 단계 301로 되돌아가서 이후의 단계들을 순차적으로 수행함으로써 기설정된 접근 시간 단위(AT) 및 접근 대기 시간 단위(IT)에 따라 상기 소정의 공유 메모리 영역에 대한 접근을 수행함으로써 제1 프로세서(110)가 상기 접근 대기 시간에 상기 소정의 공유 메모리 영역에 대한 접근을 수행하도록 하여 제1 프로세서(110)의 전체적인 접근 지연 시간을 감소시킨다.If it is determined in step 315 that an event corresponding to the end of the access to the predetermined shared memory area has occurred, the access to the predetermined shared memory area is terminated, and if it is determined that an event corresponding to the end of the access has not occurred, step By returning to 301 and sequentially performing subsequent steps, the first processor 110 performs access to the predetermined shared memory area according to a preset access time unit AT and an access wait time unit IT. By performing the access to the predetermined shared memory area in the access wait time, the overall access delay time of the first processor 110 is reduced.

그리고, 도 4에 도시된 본 발명의 일실시예에 따른 공유 메모리 영역에 대한 접근 방법은 복수의 공유 메모리 영역 각각에 대해 적용될 수 있다.In addition, the access method to the shared memory area according to the embodiment of the present invention illustrated in FIG. 4 may be applied to each of the plurality of shared memory areas.

상기와 같은 멀티 프로세서 시스템의 공유 메모리 접근 방법에 따르면, 소정의 공유 메모리 영역에 대한 제2 프로세서의 접근을 소정의 시간 단위로 분할하고, 분할된 접근 시간 단위 사이에 접근 대기 시간을 마련하여 제1 프로세서가 상기 소정의 공유 메모리 영역에 접근할 수 있도록 한다.According to the shared memory access method of the multi-processor system as described above, the first processor divides the access of the second processor to a predetermined shared memory area by a predetermined time unit, and prepares an access waiting time between the divided access time units. Allow a processor to access the predetermined shared memory area.

따라서, 제2 프로세서(부가 프로세서) 보다 처리 성능이 낮고, 더 큰 데이터 처리 단위를 가지는 제1 프로세서(메인 프로세서)의 접근 지연시간을 줄일 수 있어서 멀티 프로세서 시스템 전체의 처리 속도를 향상시킬 수 있다.  Accordingly, the access delay time of the first processor (main processor) having lower processing performance than that of the second processor (additional processor) and having a larger data processing unit can be reduced, thereby improving the processing speed of the entire multiprocessor system.

또한, 별도의 하드웨어를 추가하지 않고 소프트웨어적인 방법으로 소정의 공 유 메모리 영역에 대한 제2 프로세서의 접근 시간을 작게 분할함으로써 적은 비용으로 멀티 프로세서 시스템의 성능을 향상시킬 수 있다. In addition, by dividing the access time of the second processor to a predetermined shared memory area by a software method without adding additional hardware, the performance of the multiprocessor system can be improved at a low cost.

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

Claims (9)

제1 프로세서, 제2 프로세서 및 공유 메모리를 포함한 멀티 프로세서 시스템의 공유 메모리 접근 제어 방법에 있어서,In the shared memory access control method of a multi-processor system including a first processor, a second processor and shared memory, 상기 제2 프로세서가 기설정된 접근 시간 동안 상기 공유 메모리 영역에 접근하는 단계;Accessing the shared memory area by the second processor for a preset access time; 상기 제2 프로세서가 상기 접근 시간이 종료된 후 기설정된 대기 시간 동안 상기 공유 메모리 영역에 대한 접근을 대기하는 단계; 및 Waiting, by the second processor, to access the shared memory area for a preset waiting time after the access time expires; And 상기 제1 프로세서가 상기 대기 시간에 상기 공유 메모리에 접근하는 단계를 포함하고, 상기 제2 프로세서는 상기 기설정된 접근 시간 동안 상기 공유 메모리 영역에 접근하는 단계 및 상기 접근 시간이 종료된 후 기설정된 대기 시간 동안 상기 공유 메모리 영역에 대한 접근을 대기하는 단계를 반복하여 상기 공유 메모리에 대한 접근을 수행하는 것을 특징으로 하는 멀티 프로세서 시스템의 공유 메모리 접근 방법.Accessing the shared memory at the waiting time by the first processor, wherein the second processor accesses the shared memory area during the preset access time, and preset waiting after the access time is terminated. And accessing the shared memory by repeating the step of waiting for access to the shared memory area for a period of time. 제1항에 있어서, 상기 접근 시간은 상기 제2 프로세서가 상기 공유 메모리에 접근하는 시간을 소정의 시간 간격으로 분할한 것을 특징으로 하는 멀티 프로세서 시스템의 공유 메모리 접근 방법.The method of claim 1, wherein the access time is divided by a predetermined time interval by which the second processor accesses the shared memory. 제1항에 있어서, 상기 제2 프로세서가 기설정된 접근 시간 동안 상기 공유 메모리 영역에 접근하는 단계는,The method of claim 1, wherein the second processor accesses the shared memory area for a preset access time. 상기 제2 프로세서가 상기 공유 메모리 영역에 대한 접근을 요청하는 단계;Requesting access to the shared memory area by the second processor; 상기 제2 프로세서가 상기 공유 메모리 영역에 대한 접근 허용 여부를 판단하는 단계를 더 포함하는 것을 특징으로 하는 멀티 프로세서 시스템의 공유 메모리 접근 방법.And determining, by the second processor, whether to allow access to the shared memory area. 제3항에 있어서, 상기 공유 메모리 영역에 대한 접근을 요청하는 단계 상기 제2 프로세서가 제1 논리값을 가지는 접근 요청 신호를 접근 제어부에 전송함으로써 상기 공유 메모리 영역에 대한 접근을 요청하는 것을 특징으로 하는 멀티 프로세서 시스템의 공유 메모리 접근 방법.The method of claim 3, wherein the request for access to the shared memory area is performed by the second processor to request access to the shared memory area by transmitting an access request signal having a first logic value to an access controller. Shared memory approach in a multiprocessor system. 제3항에 있어서, 상기 공유 메모리 영역에 대한 접근 허용 여부를 판단하는 단계는 상기 제2 프로세서가 접근 제어부로부터 제공된 접근 허용 신호의 논리값을 판별함으로써 상기 공유 메모리 영역에 대한 접근 허용 여부를 판단하는 것을 특징으로 하는 멀티 프로세서 시스템의 공유 메모리 접근 방법.The method of claim 3, wherein determining whether to allow access to the shared memory area comprises determining whether to allow access to the shared memory area by determining, by the second processor, a logical value of an access permission signal provided from an access controller. Shared memory access method of a multiprocessor system. 제1항에 있어서, 상기 제2 프로세서가 상기 접근 시간이 종료된 후 기설정된 대기 시간 동안 상기 공유 메모리 영역에 대한 접근을 대기하는 단계는,The method of claim 1, wherein the second processor waits for access to the shared memory area for a preset waiting time after the access time ends. 상기 접근 시간의 종료 여부를 판단하는 단계;Determining whether the access time ends; 상기 접근 시간이 종료되면 상기 제2 프로세서가 상기 접근 시간의 종료를 통보하는 단계;Notifying the end of the access time by the second processor when the access time ends; 상기 제2 프로세서가 기설정된 대기 시간 동안 상기 공유 메모리 영역에 대한 접근을 대기하는 단계를 포함하는 것을 특징으로 하는 멀티 프로세서 시스템의 공유 메모리 접근 방법.And waiting for access by the second processor to the shared memory area for a preset waiting time. 제6항에 있어서, 상기 제2 프로세서가 상기 접근 시간의 종료를 통보하는 단계는 상기 제2 프로세서가 제2 논리값을 접근 제어부에 전송함으로써 상기 접근 시간의 종료을 통보하는 것을 특징으로 하는 멀티 프로세서 시스템의 공유 메모리 접근 방법.The multi-processor system of claim 6, wherein the notifying the end of the access time by the second processor comprises notifying the end of the access time by transmitting a second logic value to the access controller. Shared memory approach. 제1항에 있어서, 상기 멀티 프로세서 시스템의 공유 메모리 접근 방법은 상기 기설정된 대기 시간이 종료된 후 상기 공유 메모리 영역에 상기 제1 프로세서가 접근하고 있는 경우에는 상기 제1 프로세서의 접근이 종료된 후 상기 접근 시간 동안 상기 공유 메모리에 접근하는 단계를 더 포함하는 것을 특징으로 하는 멀티 프로세서 시스템의 공유 메모리 접근 방법.The method of claim 1, wherein the method of accessing the shared memory of the multiprocessor system comprises: after the preset processor is approaching the shared memory area after the preset waiting time is over, after the access of the first processor is terminated. And accessing the shared memory during the access time. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.Claim 9 was abandoned upon payment of a set-up fee. 제1항에 있어서, 상기 제1 프로세서는 휴대용 단말기의 메인 프로세서이고, 상기 제2 프로세서는 상기 휴대용 단말기의 부가 프로세서 인 것을 특징으로 하는 멀티 프로세서 시스템의 공유 메모리 접근 방법.The method of claim 1, wherein the first processor is a main processor of the portable terminal, and the second processor is an additional processor of the portable terminal.
KR1020060115521A 2006-11-21 2006-11-21 Method for accessing shared memory in multi-processor system KR100816038B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060115521A KR100816038B1 (en) 2006-11-21 2006-11-21 Method for accessing shared memory in multi-processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060115521A KR100816038B1 (en) 2006-11-21 2006-11-21 Method for accessing shared memory in multi-processor system

Publications (1)

Publication Number Publication Date
KR100816038B1 true KR100816038B1 (en) 2008-03-21

Family

ID=39411443

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060115521A KR100816038B1 (en) 2006-11-21 2006-11-21 Method for accessing shared memory in multi-processor system

Country Status (1)

Country Link
KR (1) KR100816038B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101352451B1 (en) 2013-08-22 2014-01-17 (주)지란지교소프트 Method for data sharing usign controlling by provider and recording-medium recorded program thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950025556A (en) * 1994-02-28 1995-09-18 김광호 How to Share Main and Subprocessor Memory
JP2002123420A (en) 2000-10-13 2002-04-26 Matsushita Electric Ind Co Ltd Memory access device
KR20020056424A (en) * 2000-12-29 2002-07-10 엘지전자 주식회사 Operation controlling method for hardware state machine
JP2004102452A (en) 2002-09-05 2004-04-02 Matsushita Electric Ind Co Ltd Memory unit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950025556A (en) * 1994-02-28 1995-09-18 김광호 How to Share Main and Subprocessor Memory
JP2002123420A (en) 2000-10-13 2002-04-26 Matsushita Electric Ind Co Ltd Memory access device
KR20020056424A (en) * 2000-12-29 2002-07-10 엘지전자 주식회사 Operation controlling method for hardware state machine
JP2004102452A (en) 2002-09-05 2004-04-02 Matsushita Electric Ind Co Ltd Memory unit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101352451B1 (en) 2013-08-22 2014-01-17 (주)지란지교소프트 Method for data sharing usign controlling by provider and recording-medium recorded program thereof

Similar Documents

Publication Publication Date Title
KR101558482B1 (en) Bank sharing and refresh in a shared multi-port memory device
US7650453B2 (en) Information processing apparatus having multiple processing units sharing multiple resources
US20040024955A1 (en) Application processors and memory architecture for wireless applications
US9703493B2 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
EP3082048B1 (en) Memory configured to provide simultaneous read/write access to multiple banks
KR101103619B1 (en) Multi-port memory system and access control method thereof
US6163828A (en) Methods and apparatus for providing multi-processor access to shared memory
KR101110550B1 (en) Processor, Multi-processor System And Method For Controlling Access Authority For Shared Memory In Multi-processor System
KR100816038B1 (en) Method for accessing shared memory in multi-processor system
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
KR100874169B1 (en) Dual port memory for direct transfer of commands between processors and method for performing them
KR100872196B1 (en) Memory system and method of controlling access of dual port memory using the memory system
KR100863541B1 (en) Synchronization Control Device, Dual Port Memory Having Synchornization Control Device and Method for Controlling Synchonization in Dual Port Memory
KR100827720B1 (en) Dual Port Memory having Access Control Device, Memory System Having the Same and Access Control Method for Dual Port Memory
US7814282B2 (en) Memory share by a plurality of processors
KR100816009B1 (en) Method for accessing shared memory in dual port memory system, and recorded medium for performing method for accessing shared memory in dual port memory system
KR100886179B1 (en) Method for Handling Access Right Acquisition in Dual Port Memory and Apparatus therefore
KR100877972B1 (en) Dual Port Memory for directly transferring data between processors and Method thereof
KR100813133B1 (en) Dual port memory apparatus, memory system and method for adaptive using shared memory area of dual port memory apparatus
US7346726B2 (en) Integrated circuit with dynamic communication service selection
KR100867603B1 (en) Dual port memory having common signal line
JPH0351943A (en) Sharing system for high/low speed bus lines
KR100879567B1 (en) Dual Port Memory for directly transferring data between processors using first-in first-out and memory system thereof
JP2000029824A (en) Hiearchical bus system and bus converter
CN114595173A (en) Data transmission method, system and computer readable storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130221

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190225

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200225

Year of fee payment: 13