KR20080111745A - Method for booting of multi-processor using multi-port memory, multi-port memory and muliti-processor system having multi-port memory - Google Patents

Method for booting of multi-processor using multi-port memory, multi-port memory and muliti-processor system having multi-port memory Download PDF

Info

Publication number
KR20080111745A
KR20080111745A KR1020070060070A KR20070060070A KR20080111745A KR 20080111745 A KR20080111745 A KR 20080111745A KR 1020070060070 A KR1020070060070 A KR 1020070060070A KR 20070060070 A KR20070060070 A KR 20070060070A KR 20080111745 A KR20080111745 A KR 20080111745A
Authority
KR
South Korea
Prior art keywords
processor
memory area
data
port
dedicated
Prior art date
Application number
KR1020070060070A
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 KR1020070060070A priority Critical patent/KR20080111745A/en
Publication of KR20080111745A publication Critical patent/KR20080111745A/en

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

A method for booting a multi-processor by using a multi-port memory, the multi-port memory and a multi-processor system having the multi-port memory are provided to improve the booting speed and miniaturize a processor device. A method for booting a multi-processor comprises at least one or more processors. The method comprises the following steps of: copying data stored in the first processor exclusive memory area of a multi-port memory to the second processor exclusive memory area(309); and booting the second processor based on the data copied to the second processor exclusive memory area(315).

Description

다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법, 다중 포트 메모리 및 다중 포트 메모리를 가지는 다중 프로세서 시스템{Method For Booting Of Multi-processor Using Multi-port Memory, Multi-port Memory And Muliti-processor System Having Multi-port Memory}Method for booting of multi-processor using multi-port memory, multi-port memory and muliti-processor system having multi-port Memory}

도 1은 종래의 다중 프로세서 시스템의 구성을 나타내는 블록도이다.1 is a block diagram showing the configuration of a conventional multiprocessor system.

도 2는 종래의 다중 프로세서 시스템의 부팅 과정을 나타내는 순서도이다.2 is a flowchart illustrating a booting process of a conventional multiprocessor system.

도 3은 본 발명의 일 실시예에 따른 다중 포트 메모리를 이용한 다중 프로세서 시스템의 구성을 나타내는 블록도이다.3 is a block diagram illustrating a configuration of a multiprocessor system using a multi-port memory according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 다중 포트 메모리를 이용한 다중 프로세서의 부팅 과정을 나타내는 순서도이다.4 is a flowchart illustrating a booting process of a multiprocessor using a multi-port memory according to an embodiment of the present invention.

도 5는 도 3에 도시된 부팅 제어부의 동작을 나타내는 순서도이다.FIG. 5 is a flowchart illustrating an operation of the boot controller illustrated in FIG. 3.

도 6은 본 발명의 다른 실시예에 따른 다중 포트 메모리를 이용한 다중 프로세서 시스템의 구성을 나타내는 블록도이다.6 is a block diagram illustrating a configuration of a multiprocessor system using a multiport memory according to another exemplary embodiment of the present invention.

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

110, 510 : 제1 프로세서 130, 520 : 제2 프로세서110, 510: first processor 130, 520: second processor

135 : 부팅 제어부 200, 600 : 다중 포트 메모리135: boot control unit 200, 600: multi-port memory

210, 610 : 제1 전용 메모리 영역210, 610: first dedicated memory area

230, 620 : 제2 전용 메모리 영역230, 620: second dedicated memory area

250, 650 : 공유 메모리 영역 259, 659 : 세마포 제어부250 and 650: shared memory area 259 and 659: semaphore control unit

525 : 제2 부팅 제어부 530 : 제3 프로세서525: second boot control unit 530: third processor

535 : 제3 부팅 제어부 540 : 제4 프로세서 535: third boot control unit 540: fourth processor

545 : 제4 부팅 제어부 630 : 제3 전용 메모리 영역 640 : 제4 전용 메모리 영역545: fourth boot control unit 630: third dedicated memory area 640: fourth dedicated memory area

본 발명은 다중 포트 메모리를 가지는 다중 프로세서 시스템에 관한 것으로, 더욱 상세하게는 프로세서의 부팅 시간을 감소시킬 수 있는 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법, 다중 포트 메모리 및 다중 포트 메모리를 가지는 다중 프로세서 시스템에 관한 것이다.The present invention relates to a multiprocessor system having a multi-port memory, and more particularly, to a multi-processor booting method, a multi-port memory and a multi-port memory using a multi-port memory that can reduce the boot time of the processor It's about the system.

최근들어 이동통신 단말 및 PDA(Personal Digital Assistant) 등과 같은 휴대용 단말기는 음성통화와 같은 무선통신 기능 이외에도 이미지 및 동영상 촬영, 영상 통화, 휴대 인터넷 및 멀티미디어 데이터 재생 등과 같은 다양한 부가 어플리케이션을 포함하고 있고, 이를 위해 하나 이상의 프로세서를 포함하고 있다.Recently, portable terminals such as mobile communication terminals and PDAs (Personal Digital Assistants) include various additional applications such as image and video recording, video calling, mobile Internet, and multimedia data playback in addition to wireless communication functions such as voice calls. To include one or more processors.

즉, 최근의 휴대용 단말기는 상기와 같은 이동 통신 본래의 기능을 수행하기 위한 베이스밴드 프로세서(baseband processor)와 다양한 부가 어플리케이션을 수행하는 어플리케이션 프로세서(application processor)를 포함하고 있다.That is, recent portable terminals include a baseband processor for performing the original functions of the mobile communication and an application processor for performing various additional applications.

여기서, 베이스밴드 프로세서는 ARM 계열(예를 들면, ARM7 또는 ARM9)의 프로세서가 될 수 있고, 어플리케이션 프로세서는 제조회사에 따라 다양한 프로세서(예를 들면, 멀티미디어 프로세서)가 사용될 수 있다.Here, the baseband processor may be a processor of the ARM family (eg, ARM7 or ARM9), and the application processor may use various processors (eg, multimedia processors) according to the manufacturer.

상기와 같이 휴대용 단말기에 베이스밴드 프로세서와 어플리케이션 프로세서가 구비된 경우에 베이스밴드 프로세서는 마스터(master)의 역할을 수행하고, 어플리케이션 프로세서는 슬레이브(slave)의 역할을 수행한다.When the portable terminal includes a baseband processor and an application processor as described above, the baseband processor plays a role of a master, and the application processor plays a role of a slave.

즉, 휴대용 단말기가 초기화되면, 먼저 마스터 역할을 수행하는 베이스밴드 프로세서가 부팅된 후 호스트 프로세서 인터페이스(HPI: Host Processor Interface)를 통해 슬레이브 역할을 수행하는 어플리케이션 프로세서를 제어하여 어플리케이션 프로세서가 부팅되도록 한다.That is, when the portable terminal is initialized, first, the baseband processor serving as the master is booted, and then the application processor is booted by controlling the application processor serving as a slave through the host processor interface (HPI).

도 1은 종래의 다중 프로세서 시스템의 구성을 나타내는 블록도로서, 제1 프로세서(10) 및 제2 프로세서(30)가 각각 독립적으로 제1 메인 메모리(13) 및 제2 메모리(33)와 연결된 경우를 나타낸다.1 is a block diagram illustrating a configuration of a conventional multiprocessor system, in which a first processor 10 and a second processor 30 are independently connected to a first main memory 13 and a second memory 33, respectively. Indicates.

도 1를 참조하면, 종래의 다중 프로세서 시스템은 제1 프로세서(10) 및 제2 프로세서(30)를 포함하고, 제1 프로세서(10) 및 제2 프로세서(30)는 각각 제1 버퍼(11) 및 제2 버퍼(31)를 포함한다. 여기서 제1 버퍼(11) 및 제2 버퍼(31)는 캐쉬(cache) 메모리가 될 수 있고, 각각 소정의 크기(예를 들면, 128바이트 또는 256바이트)를 가진다.Referring to FIG. 1, a conventional multiprocessor system includes a first processor 10 and a second processor 30, and the first processor 10 and the second processor 30 each include a first buffer 11. And a second buffer 31. Here, the first buffer 11 and the second buffer 31 may be a cache memory, and have a predetermined size (for example, 128 bytes or 256 bytes).

제1 프로세서(10)는 제1 외부 버스 인터페이스(EBI: External Bus Interface)(12)를 통해 제1 메인 메모리(13)와 연결되고, 제2 프로세서(30)는 제2 외부 버스 인터페이스(32)를 통해 제2 메인 메모리(33)와 연결된다. 여기서, 제1 외부 버스 인터페이스(12) 및 제2 외부 버스 인터페이스(32)는 각각 SDRAM(Synchronous Dynamic Random Access Memory) 외부 버스 인터페이스가 될 수 있다. The first processor 10 is connected to the first main memory 13 through a first external bus interface (EBI) 12, and the second processor 30 is connected to the second external bus interface 32. It is connected to the second main memory 33 through. Here, the first external bus interface 12 and the second external bus interface 32 may each be a synchronous dynamic random access memory (SDRAM) external bus interface.

제1 메인 메모리(13)는 제1 메모리 인터페이스(14)를 포함하고, 제2 메인 메모리(33)는 제2 메모리 인터페이스(34)를 포함한다. 제1 메모리 인터페이스(14) 및 제2 메모리 인터페이스(34)는 각각 SDRAM 메모리 인터페이스가 될 수 있다.The first main memory 13 includes a first memory interface 14, and the second main memory 33 includes a second memory interface 34. The first memory interface 14 and the second memory interface 34 may each be SDRAM memory interfaces.

제1 메모리 인터페이스(14)는 제1 프로세서(10)로부터 제1 외부 버스 인터페이스(12)를 통해 어드레스(address), 제어 신호, 클럭 및 데이터를 입력받고, 읽기, 쓰기 및 리프레쉬(refresh) 등의 동작 타이밍에 따라 데이터의 입출력을 수행한다. 제1 메모리 인터페이스(14)는 명령 디코더(command decoder), 로우 디코더(row decoder), 컬럼 디코더(column decoder) 및 입출력 버퍼 등을 포함한다.The first memory interface 14 receives an address, a control signal, a clock, and data from the first processor 10 through the first external bus interface 12, and reads, writes, and refreshes the data. Data input and output are performed according to the operation timing. The first memory interface 14 includes a command decoder, a row decoder, a column decoder, an input / output buffer, and the like.

제2 메모리 인터페이스(34)는 제2 프로세서로(30)부터 제2 외부 버스 인터페이스(32)를 통해 어드레스, 제어 신호, 클럭 및 데이터를 입력받고, 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 메모리 영역과 데이터의 입출력을 수행한다. 제2 메모리 인터페이스(34)는 명령 디코더, 로우 디코더, 컬럼 디코더 및 입출력 버퍼 등을 포함한다.The second memory interface 34 receives an address, a control signal, a clock, and data from the second processor 30 through the second external bus interface 32, and stores the memory according to an operation timing such as reading, writing, and refreshing. I / O of area and data is performed. The second memory interface 34 includes a command decoder, a row decoder, a column decoder, an input / output buffer, and the like.

또한, 제1 프로세서(10) 및 제2 프로세서(30)는 호스트 프로세서 인터페이스(HPI: Host Processor Interface)(20)를 통해 제어 신호, 명령어 및 처리할 데이터 등을 주고 받는다. 예를 들어 제2 프로세서(30)는 호스트 프로세서 인터페이 스(20)를 통해 부팅에 필요한 데이터를 제공받을 수 있다. In addition, the first processor 10 and the second processor 30 exchange control signals, commands, data to be processed, and the like through the host processor interface (HPI) 20. For example, the second processor 30 may receive data necessary for booting through the host processor interface 20.

도 2는 종래의 다중 프로세서 시스템의 부팅 과정을 나타내는 순서도로서, 제1 프로세서(10)가 마스터 역할을 수행하고, 제2 프로세서(30)가 슬레이브 역할을 수행하는 경우를 나타낸다.2 is a flowchart illustrating a booting process of a conventional multiprocessor system, and illustrates a case in which the first processor 10 performs a master role and the second processor 30 performs a slave role.

도 1 및 도 2를 참조하여 종래의 다중 프로세서 시스템의 부팅 과정을 설명하면, 먼저 다중 프로세서 시스템이 초기화되면 제1 프로세서(10)는 초기화 프로그램에 따라 부팅 절차를 수행하고 운영체제(Operating System)를 비휘발성 메모리에서 제1 메인 메모리(13)로 옮긴다(단계 51).Referring to FIGS. 1 and 2, a booting process of a conventional multiprocessor system is described. First, when a multiprocessor system is initialized, the first processor 10 performs a booting procedure and initializes an operating system according to an initialization program. Transfer from volatile memory to first main memory 13 (step 51).

이후, 제1 프로세서(10)는 호스트 프로세서 인터페이스(20)를 통해 제2 프로세서(30)에 전원 제어신호 및 리셋 신호를 제공함으로써, 제2 프로세서(30)를 초기화시킨다(단계 52). 즉, 제1 프로세서(10)는 호스트 프로세서 인터페이스(20)를 통해 제2 프로세서(30)에 전원 제어신호를 제공함으로써 제2 프로세서(30)가 오프 상태에서 온 상태가 되도록 하고, 리셋 신호를 제공함으로써 제2 프로세서(30)가 리셋 되도록 한다.Thereafter, the first processor 10 initializes the second processor 30 by providing a power control signal and a reset signal to the second processor 30 through the host processor interface 20 (step 52). That is, the first processor 10 provides the power control signal to the second processor 30 through the host processor interface 20 so that the second processor 30 is in an on state from the off state and provides a reset signal. By doing so, the second processor 30 is reset.

다음으로, 제1 프로세서(10)는 제1 외부 버스 인터페이스(12)를 통해 제1 메인 메모리(13)에 저장된 데이터(즉, 운영체제)의 일부를 제1 버퍼(11)로 복사한다(단계 53). 그리고, 제1 프로세서(10)는 제1 버퍼(11)에 저장된 데이터를 호스트 프로세서 인터페이스(20)를 통해 제2 프로세서(30)의 제2 버퍼(31)에 제공함으로써 제1 버퍼(11)의 데이터가 제2 버퍼(31)에 복사되도록 한다(단계 54).Next, the first processor 10 copies a portion of data (ie, an operating system) stored in the first main memory 13 to the first buffer 11 through the first external bus interface 12 (step 53). ). In addition, the first processor 10 may provide data stored in the first buffer 11 to the second buffer 31 of the second processor 30 through the host processor interface 20. Data is copied to the second buffer 31 (step 54).

이후, 제2 버퍼(31)에 복사된 데이터는 제2 프로세서(30)에 의해 제2 메인 메모리(33)로 저장되고(단계 55), 제2 프로세서(30)는 제1 메인 메모리(13)의 데이터가 제2 메인 메모리(33)로 모두 복사되었는지를 판단하고(단계 56), 복사가 완료되지 않은 것으로 판단되면 단계 53으로 되돌아가서 제1 메인 메모리(13)의 데이터를 제2 메인 메모리(33)로 복사한다.Thereafter, the data copied to the second buffer 31 is stored in the second main memory 33 by the second processor 30 (step 55), and the second processor 30 stores the first main memory 13. It is determined whether all of the data in the second main memory 33 has been copied (step 56), and if it is determined that the copying is not completed, the process returns to step 53 where the data of the first main memory 13 is stored in the second main memory ( Copy to 33).

그리고, 제1 메인 메모리(13)의 데이터가 제2 메인 메모리(33)로 모두 복사된 것으로 판단되면, 제2 프로세서(30)는 제2 메인 메모리(33)에 저장된 데이터에 기초하여 부팅 절차를 수행한다(단계 57). 즉, 제2 프로세서(30)는 제2 메인 메모리(33)에 저장된 명령어 및/또는 데이터를 독출한 후 디코딩 하여 디코딩된 명령어를 수행함으로써 부팅 절차를 수행하고, 부팅이 종료되면 명령 대기 상태로 대기한다(단계 58).If it is determined that all data of the first main memory 13 has been copied to the second main memory 33, the second processor 30 performs a booting procedure based on the data stored in the second main memory 33. Perform (step 57). That is, the second processor 30 reads and decodes the instructions and / or data stored in the second main memory 33 to perform a decoded instruction to perform a booting procedure. (Step 58).

도 2에 도시된 바와 같이 종래의 다중 프로세서 시스템에서는 마스터 역할을 수행하는 제1 프로세서(10)가 호스트 프로세서 인터페이스(20)를 통해 슬레이브 역할을 수행하는 제2 프로세서(30)를 제어하고, 제1 프로세서(10)의 제1 메인 메모리(13)에 저장된 데이터를 호스트 프로세서 인터페이스(20)를 통해 제2 프로세서(30)의 제2 메인 메모리(33)에 제공하여 슬레이브 프로세서가 부팅되도록 함으로써 부팅 절차가 복잡하고, 부팅 시간이 길어지게 되어 시스템에 전원이 인가된 후 사용자의 입력을 실행할 수 있기 까지의 초기 대기 시간이 길어진다는 단점이 있다.As shown in FIG. 2, in the conventional multiprocessor system, the first processor 10 serving as a master controls the second processor 30 serving as a slave through the host processor interface 20, and the first processor 10 performs the first processing. The booting procedure may be performed by providing data stored in the first main memory 13 of the processor 10 to the second main memory 33 of the second processor 30 through the host processor interface 20 to boot the slave processor. It is complicated and has a disadvantage in that an initial waiting time until a user input can be executed after power is applied to the system due to a long boot time is long.

또한, 도 2에서는 마스터 역할을 수행하는 제1 프로세서(10)와 슬레이브 역할을 수행하는 제2 프로세서(30)만으로 구성된 다중 프로세서 시스템을 예를 들어 설명하였으나, 슬레이브 역할을 수행하는 프로세서가 더 추가되는 경우에 다중 프로세서 시스템의 전체 부팅 시간은 더욱 길어지게 된다.In addition, in FIG. 2, the multiprocessor system including only the first processor 10 performing the master role and the second processor 30 performing the slave role has been described as an example. However, a processor performing the slave role may be further added. In this case, the overall boot time of a multiprocessor system will be longer.

또한, 제1 프로세서(10)와 제2 프로세서(30)간에는 별도의 호스트 프로세서 인터페이스(20)를 통해 부팅에 필요한 데이터를 전송하기 때문에 호스트 프로세서 인터페이스(20)로 인한 핀(PIN)수가 증가하게 되고, 이로 인해 패키지의 크기가 커지게 되어 제조 단가가 상승하고, 전력 소모가 커지게 되며 프로세서 패키지가 장착되는 장치(예를 들면, 이동통신 단말)의 소형화 및 슬림화에 제약이 있다는 단점이 있다.In addition, since the data required for booting is transmitted between the first processor 10 and the second processor 30 through a separate host processor interface 20, the number of pins due to the host processor interface 20 increases. As a result, the size of the package increases, manufacturing costs increase, power consumption increases, and there is a limitation in miniaturization and slimming of a device (for example, a mobile communication terminal) on which the processor package is mounted.

따라서, 본 발명의 제1 목적은 부팅 속도를 향상시킬 수 있고, 프로세서 장치의 크기를 소형화할 수 있는 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법을 제공하는 것이다.Accordingly, a first object of the present invention is to provide a booting method of a multiprocessor using a multi-port memory which can improve booting speed and can reduce the size of a processor device.

또한, 본 발명의 제2 목적은 부팅 속도를 향상시킬 수 있고, 프로세서 장치의 크기를 소형화할 수 있도록 다중 프로세서가 이용하는 다중 포트 메모리를 제공하는 것이다. In addition, a second object of the present invention is to provide a multi-port memory used by a multiprocessor to improve the boot speed and to reduce the size of the processor device.

또한, 본 발명의 제3 목적은 부팅 속도를 향상시킬 수 있고, 프로세서 장치의 크기를 소형화할 수 있는 다중 포트 메모리를 가지는 다중 프로세서 시스템을 제공하는 것이다.It is also a third object of the present invention to provide a multiprocessor system having a multi-port memory capable of improving the boot speed and miniaturizing the size of the processor device.

상술한 본 발명의 제1 목적을 달성하기 위한 본 발명의 일 측면에 따른 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법은, 다중 포트 메모리의 제1 프로세서 전용 메모리 영역에 저장된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하는 단계와, 상기 제2 프로세서 전용 메모리 영역에 복사된 데이터에 기초하여 상기 제2 프로세서가 부팅되는 단계를 포함한다. 상기 다중 포트 메모리의 제1 프로세서 전용 메모리 영역에 저장된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하는 단계는, 다중 포트 메모리의 제1 프로세서 전용 메모리 영역에 저장된 데이터를 공유 메모리 영역으로 복사하는 단계 및 상기 공유 메모리 영역에 복사된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하는 단계를 포함할 수 있다. 상기 다중 포트 메모리의 제1 프로세서 전용 메모리 영역에 저장된 데이터를 공유 메모리 영역으로 복사하는 단계는, 상기 제1 프로세서가 초기화 프로그램에 기초하여 부팅을 수행하는 단계 및 상기 제1 프로세서가 부팅이 종료되면 상기 제1 프로세서 전용 메모리 영역에 저장된 데이터를 상기 공유 메모리 영역으로 복사하는 단계를 포함할 수 있다. 상기 공유 메모리 영역에 복사된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하는 단계는, 상기 제2 프로세서가 상기 제1 프로세서로부터 제공된 리셋 제어 신호에 기초하여 리셋되는 단계를 포함할 수 있다. 상기 공유 메모리 영역에 복사된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하는 단계는 상기 공유 메모리 영역에 대한 접근 권한을 획득하는 단계와, 상기 공유 메모리 영역에서 상기 제2 프로세서 전용 메모리 영역으로 데이터를 복사하는 단계 및 상기 데이터의 복사가 완료되면 상기 공유 메모리 영역에 대한 접근 권한을 해제하는 단계를 포함할 수 있다. 상기 공유 메모리 영역에서 상기 제2 프로세서 전용 메모리 영역으로 데이터를 복사하는 단계는, 가장 처음 수행되어야 하는 명령어가 저장된 주소로 시작 주소를 분기하는 단계를 포함할 수 있다. 상기 데이터는, 상기 공유 메모리 영역에 복사된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하도록 하는 명령어를 포함할 수 있다.According to an aspect of the present invention, there is provided a booting method of a multiprocessor using a multi-port memory, the method comprising: storing data stored in a first processor dedicated memory area of the multi-port memory; Copying to a second processor dedicated memory region, and booting the second processor based on data copied to the second processor dedicated memory region. Copying data stored in the first processor dedicated memory area of the multi-port memory to the second processor dedicated memory area of the multi-port memory may include copying data stored in the first processor dedicated memory area of the multi-port memory to a shared memory area. Copying the data copied to the shared memory area to a second processor dedicated memory area of the multi-port memory. Copying data stored in a first processor dedicated memory area of the multi-port memory to a shared memory area may include: booting the first processor based on an initialization program; and when the first processor finishes booting, The method may include copying data stored in a first processor dedicated memory area to the shared memory area. Copying the data copied to the shared memory area to a second processor dedicated memory area of the multi-port memory may include resetting the second processor based on a reset control signal provided from the first processor. have. Copying the data copied to the shared memory area to the second processor dedicated memory area of the multi-port memory may include acquiring an access right to the shared memory area, and in the shared memory area, the second processor dedicated memory. The method may include copying data to an area and releasing access to the shared memory area when copying of the data is completed. Copying data from the shared memory area to the second processor dedicated memory area may include branching a start address to an address at which an instruction to be executed first is stored. The data may include instructions to copy data copied to the shared memory area to a second processor dedicated memory area of the multi-port memory.

상술한 본 발명의 제2 목적을 달성하기 위한 본 발명의 일 측면에 따른 다중 포트 메모리는 제1 프로세서의 전용 메모리 영역으로서, 상기 제1 프로세서가 부팅이 완료된 후 부팅 데이터가 저장되는 제1 전용 메모리 영역과, 상기 제1 프로세서 및 제2 프로세서가 공유하는 메모리 영역으로서, 상기 제1 프로세서에 의해 상기 부팅 데이터가 복사되는 공유 메모리 영역 및 상기 제2 프로세서의 전용 메모리 영역으로서, 상기 공유 메모리 영역에 저장된 부팅 데이터가 복사되는 제2 전용 메모리 영역을 포함한다. 상기 다중 포트 메모리는 상기 소정의 공유 메모리 영역에 대한 상기 제1 프로세서 및 상기 제2 프로세서의 접근 권한을 보장하는 세마포 제어부를 포함할 수 있다.The multi-port memory according to an aspect of the present invention for achieving the second object of the present invention is a dedicated memory area of the first processor, the first dedicated memory in which booting data is stored after the first processor has completed booting. An area and a memory area shared by the first processor and the second processor, the shared memory area to which the boot data is copied by the first processor, and a dedicated memory area of the second processor, stored in the shared memory area. And a second dedicated memory area to which boot data is copied. The multi-port memory may include a semaphore control unit to guarantee access rights of the first processor and the second processor to the predetermined shared memory area.

상술한 본 발명의 제3 목적을 달성하기 위한 본 발명의 일 측면에 따른 다중 프로세서 시스템은, 부팅이 종료된 후 제1 전용 메모리 영역에 저장된 데이터를 소정의 공유 메모리 영역에 복사하는 제1 프로세서와, 상기 데이터를 상기 소정의 공유 메모리 영역에서 제2 전용 메모리 영역으로 복사한 후 복사된 부팅 데이터에 기초하여 부팅 절차를 수행하는 제2 프로세서 및 상기 제1 전용 메모리 영역, 상기 제2 전용 메모리 영역 및 적어도 하나의 공유 메모리 영역을 가지는 다중 포트 메모리를 포함한다. 상기 제2 프로세서는 전원이 인가된 후 상기 제1 프로세서로부터 제공된 리셋 제어 신호에 기초하여 리셋될 수 있다. 상기 제2 프로세서는 리셋이 수행된 후 상기 소정의 공유 메모리 영역에 대한 접근 권한을 획득하는 상기 데이터의 복사가 완료되면 상기 공유 메모리 영역에 대한 접근 권한을 해제하는 부팅 제어부를 포함할 수 있다. 상기 부팅 제어부는 가장 처음 수행되어야 하는 명령어가 저장된 주소로 시작 주소를 분기시킬 수 있다. 상기 데이터는 상기 소정의 공유 메모리 영역에 복사된 데이터를 상기 제2 전용 메모리 영역으로 복사하도록 하는 명령어를 포함할 수 있다. 상기 다중 포트 메모리는 상기 소정의 공유 메모리 영역에 대한 상기 제1 프로세서 및 상기 제2 프로세서의 배타적 접근 권한을 보장할 수 있다.According to an aspect of the present invention, there is provided a multiprocessor system including: a first processor configured to copy data stored in a first dedicated memory area to a predetermined shared memory area after booting is completed; A second processor and the first dedicated memory area, the second dedicated memory area and the second processor performing a booting procedure based on the copied boot data after copying the data from the predetermined shared memory area to a second dedicated memory area; It includes a multi-port memory having at least one shared memory area. The second processor may be reset based on a reset control signal provided from the first processor after power is applied. The second processor may include a boot control unit releasing an access right to the shared memory area when copying of the data for obtaining the access right to the predetermined shared memory area is completed after the reset is performed. The boot controller may branch the start address to the address where the first command to be executed is stored. The data may include a command to copy data copied to the predetermined shared memory area to the second dedicated memory area. The multi-port memory may guarantee exclusive access rights of the first processor and the second processor to the predetermined shared memory area.

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

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.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에서는 두 개의 프로세서 및 두 개의 포트를 구비한 듀얼 포트 메모리로 구성된 다중 프로세서 시스템을 예를 들어 설명한다. 이하, 다중 포트 메모리는 듀얼 포트 메모리를 포함하는 개념이다.3 is a block diagram illustrating a configuration of a multiprocessor system using a multi-port memory according to an embodiment of the present invention. 3 illustrates an example of a multiprocessor system consisting of dual port memory with two processors and two ports. Hereinafter, the multi-port memory is a concept including a dual port memory.

도 3을 참조하면, 본 발명의 일 실시예에 따른 다중 프로세서 시스템은 크게 제1 프로세서(110), 제2 프로세서(130) 및 다중 포트 메모리(200)를 포함한다.Referring to FIG. 3, a multiprocessor system according to an exemplary embodiment of the present invention generally includes a first processor 110, a second processor 130, and a multi-port memory 200.

다중 포트 메모리(200)는 제1 메모리 인터페이스(211), 제2 메모리 인터페이스(231) 및 메모리 셀 어레이로 구성될 수 있다. 메모리 셀 어레이는 제1 전용 메모리 영역(210), 제2 전용 메모리 영역(230) 및 공유 메모리 영역(250)으로 구분될 수 있고, 공유 메모리 영역(250)은 제1 내지 제4 공유 메모리 영역(251 내지 257)으로 구분될 수 있다. 여기서, 다중 포트 메모리(200)의 메모리 셀 어레이는 DRAM 셀로 구성될 수 있다.The multi-port memory 200 may be composed of a first memory interface 211, a second memory interface 231, and a memory cell array. The memory cell array may be divided into a first dedicated memory area 210, a second dedicated memory area 230, and a shared memory area 250, and the shared memory area 250 may include first to fourth shared memory areas ( 251 to 257). Here, the memory cell array of the multi-port memory 200 may be composed of DRAM cells.

또한, 다중 포트 메모리(200)는 제1 프로세서(110) 또는 제2 프로세서(130) 가 제1 내지 제4 공유 메모리 영역(251 내지 257)에 배타적 접근 권한을 획득하도록 함으로써 제1 프로세서(110) 및 제2 프로세서(130)간의 동기를 보장하는 세마포 제어부(259)를 포함한다.In addition, the multi-port memory 200 may allow the first processor 110 or the second processor 130 to acquire exclusive access rights to the first to fourth shared memory areas 251 to 257. And a semaphore control unit 259 for ensuring synchronization between the second processors 130.

제1 전용 메모리 영역(210)은 제1 프로세서(110)가 전용으로 사용하는 메모리 영역이고, 제2 전용 메모리 영역(230)은 제2 프로세서(130)가 전용으로 사용하는 메모리 영역이다. 또한, 공유 메모리 영역(250)은 제1 프로세서(110) 및 제2 프로세서(130)가 공통으로 사용할 수 있는 메모리 영역으로 제1 프로세서(110) 및 제2 프로세서(130)는 세마포 제어부(259)를 이용하여 소정의 공유 메모리 영역(250)에 대한 배타적 권한을 획득한 후 데이터를 입출력할 수 있다.The first dedicated memory area 210 is a memory area used exclusively by the first processor 110, and the second dedicated memory area 230 is a memory area used exclusively by the second processor 130. In addition, the shared memory area 250 is a memory area that the first processor 110 and the second processor 130 can use in common. The first processor 110 and the second processor 130 are the semaphore control unit 259. After obtaining the exclusive right for the predetermined shared memory area 250 using the data input and output data.

제1 프로세서(110) 및 제2 프로세서(130)는 각각 제1 외부 버스 인터페이스(EBI: External Bus Interface)(111) 및 제2 외부 버스 인터페이스(131)를 통해 다중 포트 메모리(200)와 데이터의 입출력을 수행한다.The first processor 110 and the second processor 130 may access the multi-port memory 200 and the data through the first external bus interface (EBI) 111 and the second external bus interface 131, respectively. Perform I / O.

제1 외부 버스 인터페이스(111) 및 제2 외부 버스 인터페이스(131)는 일종의 메모리 컨트롤러(memory controller) 역할을 수행하며 SDRAM(Synchronous DRAM) 또는 PSRAM(Pseudo SRAM)의 외부 버스 인터페이스가 사용될 수 있다. 이하 본 발명의 실시예에서는 제1 외부 버스 인터페이스(111) 및 제2 외부 버스 인터페이스(131)는 SDRAM 외부 버스 인터페이스인 것으로 가정한다.The first external bus interface 111 and the second external bus interface 131 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. In the following embodiment of the present invention, it is assumed that the first external bus interface 111 and the second external bus interface 131 are SDRAM external bus interfaces.

제1 프로세서(110)는 다중 포트 메모리(200)의 제1 포트(212)를 통하여 어드레스, 복수의 제어신호, 클럭을 다중 포트 메모리(200)에 제공하고, 다중 포트 메모리(200)는 제1 포트(212) 및 제1 외부 버스 인터페이스(111)를 통해 제1 프로세 서(110)와 데이터의 입출력을 수행한다.The first processor 110 provides an address, a plurality of control signals, and a clock to the multi-port memory 200 through the first port 212 of the multi-port memory 200, and the multi-port memory 200 includes a first port. Input and output of data with the first processor 110 is performed through the port 212 and the first external bus interface 111.

제2 프로세서(130)는 다중 포트 메모리(200)의 제2 포트(232)를 통하여 어드레스, 복수의 제어신호 및 클럭을 다중 포트 메모리(200)에 제공하고, 다중 포트 메모리(200)는 제2 포트(232) 및 제2 외부 버스 인터페이스(131)를 통해 제2 프로세서(130)와 데이터의 입출력을 수행한다.The second processor 130 provides an address, a plurality of control signals, and a clock to the multi-port memory 200 through the second port 232 of the multi-port memory 200, and the multi-port memory 200 includes a second port. Input and output data to and from the second processor 130 through the port 232 and the second external bus interface 131.

여기서, 제1 프로세서(110)는 예를 들어 휴대용 단말기에 장착되어 이동 통신 기능을 처리하는 ARM 계열의 베이스밴드 프로세서가 될 수 있고, 제2 프로세서(130)는 부가 어플리케이션을 처리하는 멀티미디어 프로세서가 될 수 있다.Here, the first processor 110 may be, for example, an ARM-based baseband processor mounted on a portable terminal to process a mobile communication function, and the second processor 130 may be a multimedia processor to process additional applications. Can be.

제1 메모리 인터페이스(211)는 SDRAM 메모리 인터페이스로 구성될 수 있고, 제1 포트(212)를 통하여 제1 프로세서(110)로부터 어드레스, 제어신호, 클럭 및 데이터를 입력받고 어드레스를 로우 어드레스와 컬럼 어드레스로 디코딩한 후 디코딩된 어드레스를 메모리 셀 어레이로 출력하고 메모리 셀 어레이의 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터를 메모리 셀 어레이로부터 독출하거나 메모리 셀 어레이에 기록한다.The first memory interface 211 may be configured as an SDRAM memory interface. The first memory interface 211 receives an address, a control signal, a clock, and data from the first processor 110 through the first port 212, and assigns an address to a row address and a column address. After decoding, the decoded address is output to the memory cell array, and data is read from the memory cell array or written to the memory cell array in accordance with an operation timing such as reading, writing, and refreshing the memory cell array.

이를 위해 제1 메모리 인터페이스(211)는 일반적인 SDRAM 인터페이스에서 사용되는 명령 디코더(Command decoder)(미도시), 로우 디코더(Row decoder) (미도시), 컬럼 디코더(Column decoder) (미도시) 및 입출력 버퍼(미도시) 등을 포함할 수 있다.To this end, the first memory interface 211 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 메모리 인터페이스(231)는 SDRAM 메모리 인터페이스로 구성될 수 있고, 제2 포트(232)를 통하여 제2 프로세서(130)로부터 어드레스, 제어신호, 클럭 및 데 이터를 입력받고 어드레스를 로우 어드레스와 컬럼 어드레스로 디코딩한 후 디코딩된 어드레스를 메모리 셀 어레이로 출력하고 메모리 셀 어레이의 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터를 메모리 셀 어레이로부터 독출하거나 메모리 셀 어레이에 기록한다.The second memory interface 231 may be configured as an SDRAM memory interface. The second memory interface 231 receives an address, a control signal, a clock, and data from the second processor 130 through the second port 232, and sets the addresses as row addresses and columns. After decoding to an address, the decoded address is output to the memory cell array, and data is read from or written to the memory cell array in accordance with an operation timing such as reading, writing, and refreshing the memory cell array.

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

도 3에 도시된 다중 프로세서 시스템에서 제1 프로세서(110)는 마스터 프로세서의 역할을 수행하고, 제2 프로세서(130)는 제1 프로세서(110)에 의해 초기화되는 슬레이브 프로세서의 역할을 수행한다. 제2 프로세서(130)는 초기화된 후 부팅을 제어하기 위한 부팅 제어부(135)를 포함한다.In the multiprocessor system illustrated in FIG. 3, the first processor 110 plays a role of a master processor, and the second processor 130 plays a role of a slave processor initialized by the first processor 110. The second processor 130 includes a boot control unit 135 for controlling booting after initialization.

다중 프로세서 시스템이 초기화되면, 제1 프로세서(110)는 부팅을 완료하고, 제1 전용 메모리 영역(210)에 저장된 데이터(예를 들면, 운영체제)를 소정의 공유 메모리 영역(251 내지 257)(예를 들면, 제1 공유 메모리 영역(251))에 복사한 후, 제2 프로세서(130)에 전원 제어 신호 및 리셋 신호를 제공하여 제2 프로세서(130)를 초기화시킨다.When the multiprocessor system is initialized, the first processor 110 completes booting and transfers data (eg, an operating system) stored in the first dedicated memory area 210 to predetermined shared memory areas 251 to 257 (eg, For example, after copying to the first shared memory area 251, the second processor 130 is initialized by providing a power control signal and a reset signal to the second processor 130.

부팅 제어부(135)는 제2 프로세서(130)가 리셋되면, 세마포 제어부(259)에 락제어신호(lock_con)를 제공하여 소정의 공유메모리 영역에 대한 배타적 접근 권한을 획득한 후 상기 소정의 공유 메모리 영역(251 내지 257)(예를 들면, 제1 공유 메모리 영역(251))에 저장된 데이터를 제2 전용 메모리에 복사한다.When the second processor 130 is reset, the boot controller 135 provides the semaphore controller 259 with a lock control signal lock_con to acquire exclusive access right to a predetermined shared memory area, and then the predetermined shared memory. Data stored in the areas 251 to 257 (eg, the first shared memory area 251) is copied to the second dedicated memory.

또한, 부팅 제어부(135)는 제2 전용 메모리 또는 상기 소정의 공유 메모리 영역(251 내지 257)(예를 들면 제1 공유 메모리 영역(251))에서 가장 처음 수행되어야 하는 명령어가 저장된 주소가 기설정된 시작 주소가 아닌 경우에는 최초 수행할 명령어가 저장된 주소로 시작 주소(예를 들면, 프로그램 카운터)를 분기시킨다.In addition, the boot controller 135 may store a preset address in which a command to be first performed in the second dedicated memory or the predetermined shared memory areas 251 to 257 (for example, the first shared memory area 251) is stored. If it is not the starting address, branch the starting address (eg program counter) to the address where the first instruction to be executed is stored.

여기서, 상기 가장 처음 수행되어야 하는 명령어는 예를 들어 제1 공유 메모리 영역(251)에 저장된 데이터를 제2 전용 메모리 영역(230)에 복사하도록 하는 명령어가 될 수 있다. 즉, 제2 프로세서(130)는 부팅 제어부(135)에 의해 가장 처음 수행되어야 하는 명령어가 저장된 주소로 분기된 후 상기 명령어를 실행하여 제1 공유 메모리 영역(251)에 저장된 데이터를 제2 전용 메모리 영역(230)에 복사할 수 있다. Here, the first command to be executed may be, for example, a command to copy data stored in the first shared memory area 251 to the second dedicated memory area 230. That is, the second processor 130 executes the instruction after branching to the address where the first instruction to be executed by the boot controller 135 is stored, and then stores the data stored in the first shared memory region 251 in the second dedicated memory. Copy to area 230.

부팅 제어부(135)는 하드웨어 로직으로 구현되고 세마포 제어부(259)와 물리적 신호 전송 라인(137)으로 연결될 수 있다.The boot controller 135 may be implemented in hardware logic and connected to the semaphore controller 259 through a physical signal transmission line 137.

도 4는 본 발명의 일 실시예에 따른 다중 포트 메모리를 이용한 다중 프로세서의 부팅 과정을 나타내는 순서도로서, 제1 프로세서(110) 및 제2 프로세서(130)가 두 개의 포트를 가지는 다중 포트 메모리(200)의 공유 메모리 영역(250)을 이용하여 부팅을 수행하는 과정을 나타낸다.4 is a flowchart illustrating a booting process of a multiprocessor using a multi-port memory according to an embodiment of the present invention, wherein the first processor 110 and the second processor 130 have two ports. A booting process using the shared memory area 250 of FIG.

도 3 및 도 4를 참조하면, 먼저, 다중 프로세서 시스템이 초기화되면 제1 프로세서(110)는 초기화 프로그램에 따라 부팅 절차를 수행하고 운영체제(Operating System)를 비휘발성 메모리에서 제1 전용 메모리 영역(210)으로 복사한다(단계 301).Referring to FIGS. 3 and 4, when the multiprocessor system is initialized, the first processor 110 performs a booting procedure according to an initialization program and sets the operating system in the nonvolatile memory to the first dedicated memory area 210. (Step 301).

여기서, 상기 초기화 프로그램은 장치에 전원이 인가되었을 때 가장 먼저 실행되어야 하는 초기 프로그램(initial program) 또는 부트스트랩 프로그램(bootstrap loader)이 될 수 있고, 상기 부트스트랩 프로그램은 다중 프로세서 시스템이 장착된 소정 장치(예를 들면 휴대용 단말기)에 구비된 비휘발성 메모리(예를 들면, 플래쉬 메모리 또는 EEPROM(Electrically Erasable and Programmable Read Only Memory))에 저장될 수 있다.Here, the initialization program may be an initial program or a bootstrap loader that should be executed first when the device is powered on, and the bootstrap program is a predetermined device equipped with a multiprocessor system. It may be stored in a nonvolatile memory (for example, a flash memory or an EEPROM (Electrically Erasable and Programmable Read Only Memory)) provided in the portable terminal.

이후, 제1 프로세서(110)는 제1 전용 메모리 영역(210)에 저장된 데이터를 제1 공유 메모리 영역(251)에 복사한다(단계 303). 여기서, 상기 데이터에는 운영체제가 포함될 수 있다. 또한, 상기 데이터에는 운영체제 이외에도 제2 프로세서(130)에서 실행되는 각종 어플리케이션 프로그램이 포함될 수도 있다.Thereafter, the first processor 110 copies the data stored in the first dedicated memory area 210 to the first shared memory area 251 (step 303). Here, the data may include an operating system. In addition to the operating system, the data may include various application programs executed in the second processor 130.

예를 들어, 상기 데이터는 하드웨어 장치 드라이버(Hardware device driver), 운영체제(Operation System Kernel), 파일 시스템(file system), DMB(Digital Multimedia Broadcasting) 관련 파일, CAS(Conditional Access System), DRM(Digital Right Management), 오디오 코덱 및 멀티미디어 엔진 등이 포함될 수 있고, 상기 파일들은 컴파일(compile)된 이진 파일(binary file)이 될 수 있다.For example, the data may include a hardware device driver, an operating system kernel, a file system, a digital multimedia broadcasting (DMB) related file, a conditional access system (CAS), and a digital right (DRM). Management), an audio codec, a multimedia engine, and the like, and the files may be compiled binary files.

제1 프로세서(110)는 제1 전용 메모리 영역(210)에 저장된 데이터가 제1 공유 메모리 영역(251)에 모두 복사되면, 제2 프로세서(130)에 전원 및 리셋 제어 신호(power/reset)를 전송하여 제2 프로세서(130)를 초기화시킨다(단계 305). 여기서 제1 프로세서(110)와 제2 프로세서(130)는 별도의 신호 전송 라인(120)(예를 들면, 1비트)을 통해 전원 및 리셋 제어 신호(power/reset)를 전송할 수 있다.When all data stored in the first dedicated memory area 210 is copied to the first shared memory area 251, the first processor 110 supplies a power and reset control signal (power / reset) to the second processor 130. Transmit to initialize the second processor 130 (step 305). Here, the first processor 110 and the second processor 130 may transmit power and reset control signals (power / reset) through separate signal transmission lines 120 (eg, 1 bit).

제2 프로세서(130)가 초기화되면 부팅 제어부(135)는 세마포 제어부(259)에 락제어신호(lock_con)를 제공하여 소정의 공유 메모리 영역(250)에 대한 배타적 접근 권한을 획득한다(단계 307). 여기서, 상기 소정의 공유 메모리 영역(250)은 제1 내지 제4 공유 메모리 영역(251 내지 257) 중 어느 하나가 될 수 있다. 이하, 본 발명의 일 실시예에서는 설명의 편의를 위해 상기 소정의 공유 메모리 영역(251 내지 257)이 제1 공유 메모리 영역(251)인 것으로 가정한다.When the second processor 130 is initialized, the boot controller 135 provides the semaphore controller 259 with a lock control signal lock_con to obtain exclusive access right to the predetermined shared memory area 250 (step 307). . The predetermined shared memory area 250 may be any one of the first to fourth shared memory areas 251 to 257. Hereinafter, in an embodiment of the present invention, it is assumed that the predetermined shared memory areas 251 to 257 are the first shared memory areas 251 for convenience of description.

부팅 제어부(135)는 제1 공유 메모리 영역(251)에 대한 배타적 접근 권한을 획득한 후, 제1 공유 메모리 영역(251)에 저장된 데이터를 제2 전용 메모리 영역(230)에 복사한다(단계 309). 여기서, 부팅 제어부(135)는 제2 전용 메모리 영역(230) 또는 제1 공유 메모리 영역(251)에서 가장 처음 수행되어야 하는 명령어가 저장된 주소가 기설정된 시작 주소가 아닌 경우에는 최초로 수행할 명령어가 저장된 주소로 시작 주소를 분기 시킬 수 있다.After obtaining the exclusive access right to the first shared memory area 251, the boot controller 135 copies the data stored in the first shared memory area 251 to the second dedicated memory area 230 (step 309). ). Here, the boot controller 135 stores the first instruction to be executed when the first stored instruction in the second dedicated memory region 230 or the first shared memory region 251 is not a preset start address. You can branch start addresses to addresses.

부팅 제어부(135)는 상기 데이터의 복사가 완료되었는지를 판단하고(단계 311), 복사가 완료되지 않은 것으로 판단되면 단계 309로 되돌아가서 복사를 계속 수행하고, 복사가 완료된 것으로 판단되면, 제1 공유 메모리 영역(251)의 접근 권한을 해제(unlock)한다(단계 313). The boot controller 135 determines whether the copy of the data is completed (step 311), and if it is determined that the copy is not completed, returns to step 309 to continue copying, and if it is determined that the copy is completed, the first share The access right of the memory area 251 is unlocked (step 313).

이후, 제2 프로세서(130)는 제2 전용 메모리 영역(230)에 저장된 데이터에 기초하여 부팅을 수행하고(단계 315), 부팅이 완료되면 명령 대기 상태로 대기한다(단계 317).Thereafter, the second processor 130 performs a boot based on the data stored in the second dedicated memory area 230 (step 315), and waits for a command waiting state when the booting is completed (step 317).

도 3 및 도 4에 도시된 바와 같이 본 발명의 일 실시예에 따른 다중 포트 메모리(200)를 이용한 다중 프로세서의 부팅 방법에서는 다중 포트 메모리(200)를 이용하여 슬레이브 프로세서(즉, 제2 프로세서(130))가 부팅되도록 하기 때문에 부팅 시간이 빨라지고, 부팅에 필요한 데이터, 주소, 제어 신호 등을 전송하기 위한 별도의 호스트 프로세서 인터페이스가 필요없게 된다.3 and 4, in the booting method of a multiprocessor using the multi-port memory 200 according to an embodiment of the present invention, a slave processor (that is, a second processor) using the multi-port memory 200 is used. 130)) allows for faster booting time and eliminates the need for a separate host processor interface for transmitting data, addresses, control signals, etc. required for booting.

도 5는 도 3에 도시된 부팅 제어부(135)의 동작을 나타내는 흐름도로서, 도 4에 도시된 단계 307 및 단계 309의 처리 과정을 상세하게 나타낸 것이다.FIG. 5 is a flowchart illustrating an operation of the boot controller 135 illustrated in FIG. 3, and illustrates the processing of steps 307 and 309 illustrated in FIG. 4 in detail.

도 5를 참조하면, 먼저, 부팅 제어부(135)는 전원이 인가되었는지를 판단하고(단계 401), 전원이 인가된 것으로 판단되면 제2 프로세서(130)가 리셋되었는지를 판단한다(단계 403).Referring to FIG. 5, first, the boot controller 135 determines whether power is applied (step 401), and if it is determined that power is applied, determines whether the second processor 130 is reset (step 403).

단계 403에서 제2 프로세서(130)가 리셋된 것으로 판단되면, 부팅 제어부(135)는 세마포 제어부(259)에 락제어신호(lock_con)를 전송함으로써 제1 공유 메모리 영역(251)에 대한 배타적 접근 권한을 획득한다(단계 405).If it is determined in step 403 that the second processor 130 is reset, the boot control unit 135 transmits a lock control signal lock_con to the semaphore control unit 259, thereby exclusive access to the first shared memory area 251. Is obtained (step 405).

이후, 부팅 제어부(135)는 제2 전용 메모리 영역(230)의 시작 번지에 명령어가 존재하는지를 판단하고(단계 407), 제2 전용 메모리 영역(230)의 시작 번지에 명령어가 존재하지 않는 것으로 판단되면, 명령어가 존재하는 주소로 시작 주소를 분기시킨다. 여기서 상기 시작 번지는 제2 프로세서(130)가 초기화된 후 제일 처음 명령어를 독출하는 메모리의 주소를 의미하고, 상기 명령어가 존재하는 주소는 제1 공유 메모리 영역(251)에 복사된 데이터 중 가장 먼저 실행될 명령어가 저장된 위치의 주소가 될 수 있다.Thereafter, the boot controller 135 determines whether a command exists at the start address of the second dedicated memory area 230 (step 407), and determines that the command does not exist at the start address of the second dedicated memory area 230. , Branch the starting address to the address at which the instruction exists. Here, the start address refers to an address of a memory which first reads an instruction after the second processor 130 is initialized, and the address where the instruction exists is the most of the data copied to the first shared memory area 251. It can be the address of the location where the first command to be executed is stored.

이후, 부팅 제어부(135)는 분기된 시작 주소에서 명령어를 독출하여 실행한다(단계 411). 상기 독출된 명령어는 제1 공유 메모리 영역(251)에 저장된 데이터를 제2 전용 메모리 영역(230)으로 복사하기 위한 명령어가 될 수 있다.Thereafter, the boot controller 135 reads and executes the command from the branched start address (step 411). The read command may be a command for copying data stored in the first shared memory area 251 to the second dedicated memory area 230.

도 6은 본 발명의 다른 실시예에 따른 다중 포트 메모리를 이용한 다중 프로세서 시스템의 구성을 나타내는 블록도이다. 도 6에서는 4 개의 프로세서 및 4개의 포트를 구비한 다중 포트 메모리로 구성된 다중 프로세서 시스템을 예를 들어 설명한다.6 is a block diagram illustrating a configuration of a multiprocessor system using a multiport memory according to another exemplary embodiment of the present invention. 6 illustrates an example of a multiprocessor system consisting of a multi-port memory with four processors and four ports.

도 6을 참조하면, 본 발명의 다른 실시예에 따른 다중 프로세서 시스템은 크게 제1 프로세서(510), 제2 프로세서(520), 제3 프로세서(530), 제4 프로세서(540) 및 다중 포트 메모리(600)를 포함한다.Referring to FIG. 6, a multiprocessor system according to another exemplary embodiment of the present invention may include a first processor 510, a second processor 520, a third processor 530, a fourth processor 540, and a multi-port memory. And 600.

다중 포트 메모리(600)는 제1 메모리 인터페이스(611), 제2 메모리 인터페이스(621), 제3 메모리 인터페이스(631), 제4 메모리 인터페이스(641) 및 메모리 셀 어레이로 구성될 수 있다. 메모리 셀 어레이는 제1 전용 메모리 영역(610), 제2 전용 메모리 영역(620), 제3 전용 메모리 영역(630), 제4 전용 메모리 영역(640) 및 공유 메모리 영역(650)으로 구분될 수 있고, 공유 메모리 영역(650)은 제1 내지 제4 공유 메모리 영역(651 내지 657)으로 구분될 수 있다.The multi-port memory 600 may include a first memory interface 611, a second memory interface 621, a third memory interface 631, a fourth memory interface 641, and a memory cell array. The memory cell array may be divided into a first dedicated memory area 610, a second dedicated memory area 620, a third dedicated memory area 630, a fourth dedicated memory area 640, and a shared memory area 650. The shared memory area 650 may be divided into first to fourth shared memory areas 651 to 657.

또한, 다중 포트 메모리(600)는 제1 프로세서 내지 제4 프로세서(510 내지 540)가 제1 내지 제4 공유 메모리 영역(651 내지 657)에 배타적 접근 권한을 획득하도록 함으로써 제1 프로세서 내지 제4 프로세서(510 내지 540)간의 동기를 보장하는 세마포 제어부(659)를 포함한다. In addition, the multi-port memory 600 allows the first to fourth processors 510 to 540 to acquire exclusive access rights to the first to fourth shared memory areas 651 to 657. And a semaphore control unit 659 to ensure synchronization between the 510 and 540.

제1 전용 메모리 영역(610)은 제1 프로세서(510)가 전용으로 사용하는 메모리 영역이고, 제2 전용 메모리 영역(620)은 제2 프로세서(520)가 전용으로 사용하는 메모리 영역이다. 또한, 제3 전용 메모리 영역(630)은 제3 프로세서(530)가 전용으로 사용하는 메모리 영역이고, 제4 전용 메모리 영역(640)은 제4 프로세서(540)가 전용으로 사용하는 메모리 영역이다.The first dedicated memory area 610 is a memory area exclusively used by the first processor 510, and the second dedicated memory area 620 is a memory area exclusively used by the second processor 520. In addition, the third dedicated memory area 630 is a memory area dedicated to the third processor 530, and the fourth dedicated memory area 640 is a memory area dedicated to the fourth processor 540.

공유 메모리 영역(650)은 제1 프로세서 내지 제4 프로세서(510 내지 540)가 공통으로 사용할 수 있는 메모리 영역으로 제1 프로세서 내지 제4 프로세서(510 내지 540)는 세마포 제어부(659)를 이용하여 소정의 공유 메모리 영역(651 내지 657)에 대한 배타적 권한을 획득한 후 데이터를 입출력할 수 있다.The shared memory area 650 is a memory area that can be commonly used by the first to fourth processors 510 to 540. The first to fourth processors 510 to 540 may be predetermined using the semaphore control unit 659. Data may be input and output after obtaining exclusive rights for the shared memory regions 651 to 657 of FIG.

제1 프로세서 내지 제4 프로세서(510 내지540)는 각각 제1 외부 버스 인터페이스 내지 제4 외부 버스 인터페이스(511 내지 541)를 통해 다중 포트 메모리(600)와 데이터의 입출력을 수행한다.The first to fourth processors 510 to 540 respectively input and output data to and from the multi-port memory 600 through the first to fourth external bus interfaces 511 to 541.

제1 프로세서(510)는 다중 포트 메모리(600)의 제1 포트(612)를 통하여 어드레스, 복수의 제어신호, 클럭을 다중 포트 메모리(600)에 제공하고, 다중 포트 메모리(600)는 제1 포트(612) 및 제1 외부 버스 인터페이스(511)를 통해 제1 프로세서(510)와 데이터의 입출력을 수행한다.The first processor 510 provides an address, a plurality of control signals, and a clock to the multi-port memory 600 through the first port 612 of the multi-port memory 600, and the multi-port memory 600 includes the first port 612. Input and output data to and from the first processor 510 through the port 612 and the first external bus interface 511.

제2 프로세서(520)는 다중 포트 메모리(600)의 제2 포트(622)를 통하여 어드레스, 복수의 제어신호 및 클럭을 다중 포트 메모리(600)에 제공하고, 다중 포트 메모리(600)는 제2 포트(612) 및 제2 외부 버스 인터페이스(521)를 통해 제2 프로세서(520)와 데이터의 입출력을 수행한다.The second processor 520 provides an address, a plurality of control signals, and a clock to the multi-port memory 600 through the second port 622 of the multi-port memory 600, and the multi-port memory 600 includes a second Input and output data to and from the second processor 520 through the port 612 and the second external bus interface 521.

제3 프로세서(530)는 다중 포트 메모리(600)의 제3 포트(632)를 통하여 어드레스, 복수의 제어신호 및 클럭을 다중 포트 메모리(600)에 제공하고, 다중 포트 메모리(600)는 제3 포트(632) 및 제3 외부 버스 인터페이스(531)를 통해 제3 프로세서(530)와 데이터의 입출력을 수행한다.The third processor 530 provides an address, a plurality of control signals, and a clock to the multi-port memory 600 through the third port 632 of the multi-port memory 600, and the multi-port memory 600 is a third port. Input and output of data is performed with the third processor 530 through the port 632 and the third external bus interface 531.

제4 프로세서(540)는 다중 포트 메모리(600)의 제4 포트(541)를 통하여 어드레스, 복수의 제어신호 및 클럭을 다중 포트 메모리(600)에 제공하고, 다중 포트 메모리(600)는 제4 포트(642) 및 제4 외부 버스 인터페이스(541)를 통해 제4 프로세서(540)와 데이터의 입출력을 수행한다.The fourth processor 540 provides an address, a plurality of control signals, and a clock to the multi-port memory 600 through the fourth port 541 of the multi-port memory 600, and the multi-port memory 600 is a fourth port. Input / output of data with the fourth processor 540 is performed through the port 642 and the fourth external bus interface 541.

도 6에 도시된 다중 프로세서 시스템에서 제1 프로세서(510)는 마스터 프로세서의 역할을 수행하고, 제2 프로세서(520), 제3 프로세서(530) 및 제4 프로세서(540)는 제1 프로세서(510)에 의해 초기화되는 슬레이브 프로세서의 역할을 수행한다. 제2 프로세서(520), 제3 프로세서(530) 및 제4 프로세서(540)는 초기화된 후 부팅을 제어하기 위해 각각 제2 부팅 제어부(525), 제3 부팅 제어부(535) 및 제4 부팅 제어부(545)를 포함한다.In the multiprocessor system illustrated in FIG. 6, the first processor 510 serves as a master processor, and the second processor 520, the third processor 530, and the fourth processor 540 may be the first processor 510. It acts as a slave processor initialized by. The second processor 520, the third processor 530, and the fourth processor 540 are initialized after the second boot control unit 525, the third boot control unit 535, and the fourth boot control unit to control booting, respectively. 545.

다중 프로세서 시스템이 초기화되면, 제1 프로세서(510)는 부팅을 완료하고, 제1 전용 메모리 영역(610)에 저장된 데이터(예를 들면, 운영체제)를 소정의 공유 메모리 영역(예를 들면, 제1 공유 메모리 영역(651))에 복사한 후, 제2 프로세서(520)에 전원 제어 신호 및 리셋 신호(power/reset)를 제공하여 제2 프로세서(520)를 초기화시킨다. 이하, 상기 소정의 공유 메모리 영역은 제1 공유 메모리 영역(651)으로 가정한다.When the multiprocessor system is initialized, the first processor 510 completes booting and stores data (eg, an operating system) stored in the first dedicated memory area 610 in a predetermined shared memory area (eg, the first). After copying to the shared memory area 651, the second processor 520 is initialized by providing a power control signal and a reset signal (power / reset) to the second processor 520. Hereinafter, it is assumed that the predetermined shared memory area is the first shared memory area 651.

제2 부팅 제어부(525)는 제2 프로세서(520)가 리셋되면, 세마포 제어부(659)에 락제어신호(lock_con1)를 제공하여 제1 공유 메모리 영역(651)에 대한 배타적 접근 권한을 획득한 후 상기 제1 공유 메모리 영역(651)에 저장된 데이터를 제2 전용 메모리 영역(620)에 복사한다.When the second processor 520 is reset, the second boot controller 525 provides the semaphore controller 659 with the lock control signal lock_con1 to acquire exclusive access to the first shared memory area 651. Data stored in the first shared memory area 651 is copied to the second dedicated memory area 620.

또한, 제2 부팅 제어부(525)는 제2 전용 메모리 영역(620) 또는 상기 제1 공유 메모리 영역(651)에서 가장 처음 수행되어야 하는 명령어가 저장된 주소가 기설정된 시작 주소가 아닌 경우에는 최초 수행할 명령어가 저장된 주소로 시작 주소(예를 들면, 프로그램 카운터)가 분기되도록 한다.In addition, the second boot controller 525 may be first executed when the address in which the first instruction to be executed in the second dedicated memory region 620 or the first shared memory region 651 is stored is not a preset start address. Causes the start address (e.g. program counter) to branch to the address where the instruction is stored.

제1 공유 메모리 영역(651)의 데이터의 복사가 완료되면 제2 부팅 제어부(525)는 제1 공유 메모리 영역(651)의 접근 권한을 해제(unlock)하고, 부팅 절차를 수행한다.When copying of the data of the first shared memory area 651 is completed, the second boot controller 525 unlocks the access right of the first shared memory area 651 and performs a booting procedure.

제3 프로세서(530)는 제1 프로세서(510)로부터 제공된 전원 제어 신호 및 리셋 신호(power/reset)에 의해 초기화된다. 그리고, 제1 공유 메모리 영역(651)이 언락(unlock) 상태가 되면 제3 부팅 제어부(535)는 세마포 제어부(659)에 락제어신호(lock_con2)를 제공하여 제1 공유 메모리 영역(651)에 대한 배타적 접근 권한을 획득한 후 상기 제1 공유 메모리 영역(651)에 저장된 데이터를 제3 전용 메모리 영역(630)에 복사한다. The third processor 530 is initialized by a power control signal and a reset signal (power / reset) provided from the first processor 510. When the first shared memory area 651 is unlocked, the third boot control unit 535 provides the semaphore control unit 659 with the lock control signal lock_con2 to provide the first shared memory area 651 with the first shared memory area 651. After obtaining the exclusive access right, the data stored in the first shared memory area 651 is copied to the third dedicated memory area 630.

또한, 제3 부팅 제어부(535)는 제3 전용 메모리 영역(630) 또는 상기 제1 공유 메모리 영역(651)에서 가장 처음 수행되어야 하는 명령어가 저장된 주소가 기설정된 시작 주소가 아닌 경우에는 최초 수행할 명령어가 저장된 주소로 시작 주소가 분기되도록 한다.In addition, the third boot controller 535 may perform the first operation when the address in which the first instruction to be executed in the third dedicated memory region 630 or the first shared memory region 651 is stored is not a preset start address. Causes the start address to branch to the address where the instruction is stored.

이후, 제1 공유 메모리 영역(651)의 데이터의 복사가 완료되면 제3 부팅 제어부(535)는 제1 공유 메모리 영역(651)의 접근 권한을 해제하고, 부팅 절차를 수행한다.Subsequently, when copying of the data of the first shared memory area 651 is completed, the third boot controller 535 releases the access right of the first shared memory area 651 and performs a booting procedure.

제4 프로세서(540)는 제1 프로세서(510)로부터 제공된 전원 제어 신호 및 리셋 신호(power/reset)에 의해 초기화된다. 그리고, 제1 공유 메모리 영역(651)이 언락(unlock) 상태가 되면 제4 부팅 제어부(545)는 세마포 제어부(659)에 락제어신호(lock_con3)를 제공하여 제1 공유 메모리 영역(651)에 대한 배타적 접근 권한을 획득한 후 상기 제1 공유 메모리 영역(651)에 저장된 데이터를 제4 전용 메모리 영역(640)에 복사한다.The fourth processor 540 is initialized by a power control signal and a reset signal (power / reset) provided from the first processor 510. When the first shared memory area 651 is unlocked, the fourth boot control unit 545 provides the semaphore control unit 659 with a lock control signal lock_con3 to provide the first shared memory area 651 with the first shared memory area 651. After obtaining the exclusive access right, the data stored in the first shared memory area 651 is copied to the fourth dedicated memory area 640.

또한, 제4 부팅 제어부(545)는 제3 전용 메모리 영역(640) 또는 상기 제1 공유 메모리 영역(651)에서 가장 처음 수행되어야 하는 명령어가 저장된 주소가 기설정된 시작 주소가 아닌 경우에는 최초 수행할 명령어가 저장된 주소로 시작 주소가 분기되도록 한다.In addition, the fourth boot controller 545 may perform the first operation when the address in which the first instruction to be executed in the third dedicated memory region 640 or the first shared memory region 651 is stored is not a preset start address. Causes the start address to branch to the address where the instruction is stored.

이후, 제1 공유 메모리 영역(651)의 데이터의 복사가 완료되면 제4 부팅 제어부(545)는 제1 공유 메모리 영역(651)의 접근 권한을 해제하고, 부팅 절차를 수행한다.Subsequently, when copying of the data of the first shared memory area 651 is completed, the fourth boot control unit 545 releases an access right of the first shared memory area 651 and performs a booting procedure.

도 6에서는 제2 내지 제4 프로세서(540)가 제1 프로세서(510)에 의해 순차적으로 초기화되고, 제1 공유 메모리 영역(651)에 저장된 데이터를 세마포 제어부(659)를 통해 순차적으로 자신의 전용 메모리 영역으로 복사하는 것으로 예를 들 었으나, 본 발명의 또 다른 실시예에서는 제1 프로세서(510)가 부팅된 후 제2 내지 제4 프로세서(540)가 제1 프로세서(510)에 의해 동시에 초기화된 후 세마포 제어부(659)를 통해 순차적으로 자신의 전용 메모리 영역에 복사하도록 구성할 수도 있다.In FIG. 6, the second to fourth processors 540 are sequentially initialized by the first processor 510, and the data stored in the first shared memory area 651 is sequentially owned through the semaphore control unit 659. As an example of copying to a memory area, in another embodiment of the present invention, after the first processor 510 is booted, the second to fourth processors 540 are simultaneously initialized by the first processor 510. Afterwards, the semaphore control unit 659 may be configured to copy sequentially to its own dedicated memory area.

또한, 도 3 및 도 6에 도시된 본 발명의 실시예에서는 공유 메모리 영역(250 및 650)이 4개의 공유 메모리 영역을 포함하는 것으로 예를 들어 설명하였으나, 본 발명의 또 다른 실시예에서는 공유 메모리 영역(250 및 650)이 4개 이외의 영역으로 구분될 수도 있음은 물론이다.3 and 6 illustrate that the shared memory regions 250 and 650 include four shared memory regions, but in another embodiment of the present invention, the shared memory includes: Of course, the regions 250 and 650 may be divided into four regions.

다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법, 다중 포트 메모리 및 다중 포트 메모리를 가지는 다중 프로세서 시스템에 따르면, 마스터 역할을 수행하는 제1 프로세서가 부팅이 종료되면 자신의 전용 메모리 영역(즉, 제1 전용 메모리 영역)에 저장된 데이터를 소정의 공유 영역으로 복사한다. 이후, 제1 프로세서는 슬레이브 역할을 수행하는 제2 프로세서를 초기화시키고, 초기화된 제2 프로세서는 상기 소정의 공유 장치에 대한 배타적 접근 권한을 획득한 후, 상기 소정의 공유 메모리 영역에 저장된 데이터를 자신의 전용 메모리 영역(즉, 제2 전용 메모리 영역)에 복사한 후, 부팅 과정을 수행한다.According to a multiprocessor booting method using a multi-port memory, a multi-processor system having a multi-port memory and a multi-port memory, when a first processor serving as a master finishes booting, its own dedicated memory area (that is, the first dedicated memory). Data stored in the memory area) to a predetermined shared area. Thereafter, the first processor initializes a second processor serving as a slave, and the initialized second processor acquires exclusive access right to the predetermined shared device, and then owns data stored in the predetermined shared memory area. After copying to the dedicated memory area (ie, the second dedicated memory area), the booting process is performed.

따라서, 다중 포트 메모리를 이용하여 부팅을 수행함으로 인해 부팅 속도를 향상시킬 수 있고, 마스터 역할을 수행하는 프로세서와 슬레이브 역할을 수행하는 프로세서들 간의 데이터 전송을 위한 복수의 물리적 전송 라인이 필요 없게 되어 불필요한 핀을 제거할 수 있고, 이로 인해 프로세서 칩의 면적을 감소시킬 수 있다. Therefore, booting speed can be improved by performing booting using the multi-port memory, and a plurality of physical transmission lines for data transmission between a processor serving as a master and a processor serving as a slave are not required. The pins can be removed, which reduces the area of the processor chip.

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

적어도 하나의 프로세서를 구비하는 다중 프로세서의 부팅 방법에 있어서,In the method of booting a multiprocessor having at least one processor, 다중 포트 메모리의 제1 프로세서 전용 메모리 영역에 저장된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하는 단계;Copying data stored in a first processor dedicated memory area of the multi-port memory to a second processor dedicated memory area of the multi-port memory; 상기 제2 프로세서 전용 메모리 영역에 복사된 데이터에 기초하여 상기 제2 프로세서가 부팅되는 단계를 포함하는 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법.Booting the second processor based on the data copied to the second processor dedicated memory area. 제1항에 있어서, 상기 다중 포트 메모리의 제1 프로세서 전용 메모리 영역에 저장된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하는 단계는,The method of claim 1, wherein copying data stored in a first processor dedicated memory area of the multi-port memory to a second processor dedicated memory area of the multi-port memory includes: 다중 포트 메모리의 제1 프로세서 전용 메모리 영역에 저장된 데이터를 공유 메모리 영역으로 복사하는 단계; 및Copying data stored in the first processor dedicated memory area of the multi-port memory to the shared memory area; And 상기 공유 메모리 영역에 복사된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하는 단계를 포함하는 것을 특징으로 하는 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법.And copying the data copied to the shared memory area to a second processor dedicated memory area of the multi-port memory. 제2항에 있어서, 상기 다중 포트 메모리의 제1 프로세서 전용 메모리 영역에 저장된 데이터를 공유 메모리 영역으로 복사하는 단계는,The method of claim 2, wherein copying data stored in a first processor dedicated memory area of the multi-port memory to a shared memory area comprises: 상기 제1 프로세서가 초기화 프로그램에 기초하여 부팅을 수행하는 단계; 및The first processor performing booting based on an initialization program; And 상기 제1 프로세서가 부팅이 종료되면 상기 제1 프로세서 전용 메모리 영역에 저장된 데이터를 상기 공유 메모리 영역으로 복사하는 단계를 포함하는 것을 특징으로 하는 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법.Copying data stored in the first processor dedicated memory area to the shared memory area when the first processor finishes booting. 제2항에 있어서, 상기 공유 메모리 영역에 복사된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하는 단계는,The method of claim 2, wherein copying data copied to the shared memory area to a second processor dedicated memory area of the multi-port memory includes: 상기 제2 프로세서가 상기 제1 프로세서로부터 제공된 리셋 제어 신호에 기초하여 리셋되는 단계를 포함하는 것을 특징으로 하는 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법.And resetting the second processor based on a reset control signal provided from the first processor. 제2항에 있어서, 상기 공유 메모리 영역에 복사된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하는 단계는The method of claim 2, wherein copying data copied to the shared memory area to a second processor dedicated memory area of the multi-port memory includes: 상기 공유 메모리 영역에 대한 접근 권한을 획득하는 단계; Obtaining access rights to the shared memory area; 상기 공유 메모리 영역에서 상기 제2 프로세서 전용 메모리 영역으로 데이터를 복사하는 단계; 및 Copying data from the shared memory area to the second processor dedicated memory area; And 상기 데이터의 복사가 완료되면 상기 공유 메모리 영역에 대한 접근 권한을 해제하는 단계를 포함하는 것을 특징으로 하는 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법.Releasing access to the shared memory area when copying of the data is completed. 제5항에 있어서, 상기 공유 메모리 영역에서 상기 제2 프로세서 전용 메모리 영역으로 데이터를 복사하는 단계는,The method of claim 5, wherein copying data from the shared memory area to the second processor dedicated memory area includes: 가장 처음 수행되어야 하는 명령어가 저장된 주소로 시작 주소를 분기하는 단계를 포함하는 것을 특징으로 하는 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법.A method of booting a multiprocessor using multi-port memory, comprising: branching a start address to a stored address at which an instruction to be executed first is stored. 제1항에 있어서, 상기 데이터는,The method of claim 1, wherein the data, 상기 공유 메모리 영역에 복사된 데이터를 상기 다중 포트 메모리의 제2 프로세서 전용 메모리 영역으로 복사하도록 하는 명령어를 포함하는 것을 특징으로 하는 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법.And copying the data copied to the shared memory area to a second processor dedicated memory area of the multi-port memory. 적어도 하나의 프로세서를 포함하는 다중 프로세서 시스템에 있어서,A multiprocessor system comprising at least one processor, 부팅이 종료된 후 제1 전용 메모리 영역에 저장된 데이터를 소정의 공유 메모리 영역에 복사하는 제1 프로세서;A first processor for copying data stored in the first dedicated memory area to a predetermined shared memory area after booting ends; 상기 데이터를 상기 소정의 공유 메모리 영역에서 제2 전용 메모리 영역으로 복사한 후 복사된 부팅 데이터에 기초하여 부팅 절차를 수행하는 제2 프로세서; 및A second processor which copies the data from the predetermined shared memory area to a second dedicated memory area and performs a booting procedure based on the copied boot data; And 상기 제1 전용 메모리 영역, 상기 제2 전용 메모리 영역 및 적어도 하나의 공유 메모리 영역을 가지는 다중 포트 메모리를 포함하는 다중 프로세서 시스템.And a multi-port memory having said first dedicated memory area, said second dedicated memory area, and at least one shared memory area. 제8항에 있어서, 상기 제2 프로세서는The method of claim 8, wherein the second processor 전원이 인가된 후 상기 제1 프로세서로부터 제공된 리셋 제어 신호에 기초하여 리셋되는 것을 특징으로 하는 다중 프로세서 시스템.And reset based on a reset control signal provided from the first processor after power is applied. 제8항에 있어서, 상기 제2 프로세서는The method of claim 8, wherein the second processor 리셋이 수행된 후 상기 소정의 공유 메모리 영역에 대한 접근 권한을 획득하는 상기 데이터의 복사가 완료되면 상기 공유 메모리 영역에 대한 접근 권한을 해제하는 부팅 제어부를 포함하는 것을 특징으로 하는 다중 프로세서 시스템.And a boot control unit releasing the access right to the shared memory area when copying of the data for obtaining the access right to the predetermined shared memory area is completed after the reset is performed. 제10항에 있어서, 상기 부팅 제어부는The system of claim 10, wherein the boot control unit 가장 처음 수행되어야 하는 명령어가 저장된 주소로 시작 주소를 분기시키는 것을 특징으로 하는 다중 프로세서 시스템.A multiprocessor system, characterized by branching the starting address to the address at which the instruction to be executed first is stored. 제8항에 있어서, 상기 데이터는The method of claim 8, wherein the data is 상기 소정의 공유 메모리 영역에 복사된 데이터를 상기 제2 전용 메모리 영역으로 복사하도록 하는 명령어를 포함하는 것을 특징으로 하는 다중 프로세서 시스템.And copying data copied to the predetermined shared memory area to the second dedicated memory area. 제8항에 있어서, 상기 다중 포트 메모리는The method of claim 8, wherein the multi-port memory is 상기 소정의 공유 메모리 영역에 대한 상기 제1 프로세서 및 상기 제2 프로세서의 접근 권한을 보장하는 세마포 제어부를 포함하는 것을 특징으로 하는 다중 프로세서 시스템.And a semaphore control unit to guarantee access rights of the first processor and the second processor to the predetermined shared memory area. 제1 프로세서 및 제2 프로세서와 데이터의 입출력을 수행하는 다중 포트 메모리에 있어서,In the multi-port memory for performing input and output of data with the first processor and the second processor, 제1 프로세서의 전용 메모리 영역으로서, 상기 제1 프로세서가 부팅이 완료된 후 부팅 데이터가 저장되는 제1 전용 메모리 영역;A dedicated memory area of a first processor, comprising: a first dedicated memory area in which boot data is stored after booting of the first processor is completed; 상기 제1 프로세서 및 제2 프로세서가 공유하는 메모리 영역으로서, 상기 제1 프로세서에 의해 상기 부팅 데이터가 복사되는 공유 메모리 영역; 및A memory area shared by the first processor and the second processor, the shared memory area to which the boot data is copied by the first processor; And 상기 제2 프로세서의 전용 메모리 영역으로서, 상기 공유 메모리 영역에 저장된 부팅 데이터가 복사되는 제2 전용 메모리 영역을 포함하는 다중 포트 메모리.And a second dedicated memory area to which boot data stored in the shared memory area is copied, as a dedicated memory area of the second processor. 제14항에 있어서, 상기 다중 포트 메모리는15. The system of claim 14, wherein said multi-port memory is 상기 소정의 공유 메모리 영역에 대한 상기 제1 프로세서 및 상기 제2 프로세서의 접근 권한을 보장하는 세마포 제어부를 포함하는 것을 특징으로 하는 다중 포트 메모리.And a semaphore control unit to guarantee access rights of the first processor and the second processor to the predetermined shared memory area.
KR1020070060070A 2007-06-19 2007-06-19 Method for booting of multi-processor using multi-port memory, multi-port memory and muliti-processor system having multi-port memory KR20080111745A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070060070A KR20080111745A (en) 2007-06-19 2007-06-19 Method for booting of multi-processor using multi-port memory, multi-port memory and muliti-processor system having multi-port memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070060070A KR20080111745A (en) 2007-06-19 2007-06-19 Method for booting of multi-processor using multi-port memory, multi-port memory and muliti-processor system having multi-port memory

Publications (1)

Publication Number Publication Date
KR20080111745A true KR20080111745A (en) 2008-12-24

Family

ID=40369819

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070060070A KR20080111745A (en) 2007-06-19 2007-06-19 Method for booting of multi-processor using multi-port memory, multi-port memory and muliti-processor system having multi-port memory

Country Status (1)

Country Link
KR (1) KR20080111745A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101039397B1 (en) * 2010-05-28 2011-06-07 (주)다윈텍 Method for managing the shared area of a multi-port memory device to raise read operation speed of a memory link architecture and computer readable recording medium storing the program for the method
US8745363B2 (en) 2009-12-30 2014-06-03 Samsung Electronics Co., Ltd. Bootable volatile memory device, memory module and processing system comprising bootable volatile memory device, and method of booting processing system using bootable volatile memory device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745363B2 (en) 2009-12-30 2014-06-03 Samsung Electronics Co., Ltd. Bootable volatile memory device, memory module and processing system comprising bootable volatile memory device, and method of booting processing system using bootable volatile memory device
KR101039397B1 (en) * 2010-05-28 2011-06-07 (주)다윈텍 Method for managing the shared area of a multi-port memory device to raise read operation speed of a memory link architecture and computer readable recording medium storing the program for the method

Similar Documents

Publication Publication Date Title
KR101275752B1 (en) Memory system and booting method thereof
US7930530B2 (en) Multi-processor system that reads one of a plurality of boot codes via memory interface buffer in response to requesting processor
US7730268B2 (en) Multiprocessor system having an input/output (I/O) bridge circuit for transferring data between volatile and non-volatile memory
KR100868393B1 (en) Shared interface for cmponents in an embedded system
US7340566B2 (en) System and method for initializing a memory device from block oriented NAND flash
US20110035575A1 (en) Multiprocessor system comprising multi-port semiconductor memory device
US7725609B2 (en) System memory device having a dual port
KR20050013525A (en) Application processors and memory architecture for wireless application
US7386653B2 (en) Flash memory arrangement
US11568907B2 (en) Data bus and buffer management in memory device for performing in-memory data operations
TW201807575A (en) Memory protocol
US9817788B2 (en) Hub devices and methods for initializing hub device
KR100272937B1 (en) Microprocessor and multiprocessor system
JP2019121370A (en) Memory device
JP2010500682A (en) Flash memory access circuit
KR100506031B1 (en) Microcomputer, electronic equipment and emulation method
KR20080111745A (en) Method for booting of multi-processor using multi-port memory, multi-port memory and muliti-processor system having multi-port memory
KR20100111915A (en) Processor, multi-processor system and method for controlling access authority for shared memory in multi-processor system
KR20110078171A (en) Bootable volatile memory appratus, memory module having it, and processing system, and method for booting processing system using it
KR100874169B1 (en) Dual port memory for direct transfer of commands between processors and method for performing them
JP5460409B2 (en) Information processing system
JP2004078396A (en) Memory device
RU2579949C2 (en) Computer system
US8677033B2 (en) Method for initializing registers of peripherals in a microcontroller
US6442671B1 (en) System for priming a latch between two memories and transferring data via the latch in successive clock cycle thereafter

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application