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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation 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
Description
도 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:
135 : 부팅 제어부 200, 600 : 다중 포트 메모리135:
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
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
도 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
제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
제1 메인 메모리(13)는 제1 메모리 인터페이스(14)를 포함하고, 제2 메인 메모리(33)는 제2 메모리 인터페이스(34)를 포함한다. 제1 메모리 인터페이스(14) 및 제2 메모리 인터페이스(34)는 각각 SDRAM 메모리 인터페이스가 될 수 있다.The first
제1 메모리 인터페이스(14)는 제1 프로세서(10)로부터 제1 외부 버스 인터페이스(12)를 통해 어드레스(address), 제어 신호, 클럭 및 데이터를 입력받고, 읽기, 쓰기 및 리프레쉬(refresh) 등의 동작 타이밍에 따라 데이터의 입출력을 수행한다. 제1 메모리 인터페이스(14)는 명령 디코더(command decoder), 로우 디코더(row decoder), 컬럼 디코더(column decoder) 및 입출력 버퍼 등을 포함한다.The
제2 메모리 인터페이스(34)는 제2 프로세서로(30)부터 제2 외부 버스 인터페이스(32)를 통해 어드레스, 제어 신호, 클럭 및 데이터를 입력받고, 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 메모리 영역과 데이터의 입출력을 수행한다. 제2 메모리 인터페이스(34)는 명령 디코더, 로우 디코더, 컬럼 디코더 및 입출력 버퍼 등을 포함한다.The
또한, 제1 프로세서(10) 및 제2 프로세서(30)는 호스트 프로세서 인터페이스(HPI: Host Processor Interface)(20)를 통해 제어 신호, 명령어 및 처리할 데이터 등을 주고 받는다. 예를 들어 제2 프로세서(30)는 호스트 프로세서 인터페이 스(20)를 통해 부팅에 필요한 데이터를 제공받을 수 있다. In addition, the
도 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
도 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
이후, 제1 프로세서(10)는 호스트 프로세서 인터페이스(20)를 통해 제2 프로세서(30)에 전원 제어신호 및 리셋 신호를 제공함으로써, 제2 프로세서(30)를 초기화시킨다(단계 52). 즉, 제1 프로세서(10)는 호스트 프로세서 인터페이스(20)를 통해 제2 프로세서(30)에 전원 제어신호를 제공함으로써 제2 프로세서(30)가 오프 상태에서 온 상태가 되도록 하고, 리셋 신호를 제공함으로써 제2 프로세서(30)가 리셋 되도록 한다.Thereafter, the
다음으로, 제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
이후, 제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
그리고, 제1 메인 메모리(13)의 데이터가 제2 메인 메모리(33)로 모두 복사된 것으로 판단되면, 제2 프로세서(30)는 제2 메인 메모리(33)에 저장된 데이터에 기초하여 부팅 절차를 수행한다(단계 57). 즉, 제2 프로세서(30)는 제2 메인 메모리(33)에 저장된 명령어 및/또는 데이터를 독출한 후 디코딩 하여 디코딩된 명령어를 수행함으로써 부팅 절차를 수행하고, 부팅이 종료되면 명령 대기 상태로 대기한다(단계 58).If it is determined that all data of the first
도 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
또한, 도 2에서는 마스터 역할을 수행하는 제1 프로세서(10)와 슬레이브 역할을 수행하는 제2 프로세서(30)만으로 구성된 다중 프로세서 시스템을 예를 들어 설명하였으나, 슬레이브 역할을 수행하는 프로세서가 더 추가되는 경우에 다중 프로세서 시스템의 전체 부팅 시간은 더욱 길어지게 된다.In addition, in FIG. 2, the multiprocessor system including only the
또한, 제1 프로세서(10)와 제2 프로세서(30)간에는 별도의 호스트 프로세서 인터페이스(20)를 통해 부팅에 필요한 데이터를 전송하기 때문에 호스트 프로세서 인터페이스(20)로 인한 핀(PIN)수가 증가하게 되고, 이로 인해 패키지의 크기가 커지게 되어 제조 단가가 상승하고, 전력 소모가 커지게 되며 프로세서 패키지가 장착되는 장치(예를 들면, 이동통신 단말)의 소형화 및 슬림화에 제약이 있다는 단점이 있다.In addition, since the data required for booting is transmitted between the
따라서, 본 발명의 제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
다중 포트 메모리(200)는 제1 메모리 인터페이스(211), 제2 메모리 인터페이스(231) 및 메모리 셀 어레이로 구성될 수 있다. 메모리 셀 어레이는 제1 전용 메모리 영역(210), 제2 전용 메모리 영역(230) 및 공유 메모리 영역(250)으로 구분될 수 있고, 공유 메모리 영역(250)은 제1 내지 제4 공유 메모리 영역(251 내지 257)으로 구분될 수 있다. 여기서, 다중 포트 메모리(200)의 메모리 셀 어레이는 DRAM 셀로 구성될 수 있다.The
또한, 다중 포트 메모리(200)는 제1 프로세서(110) 또는 제2 프로세서(130) 가 제1 내지 제4 공유 메모리 영역(251 내지 257)에 배타적 접근 권한을 획득하도록 함으로써 제1 프로세서(110) 및 제2 프로세서(130)간의 동기를 보장하는 세마포 제어부(259)를 포함한다.In addition, the
제1 전용 메모리 영역(210)은 제1 프로세서(110)가 전용으로 사용하는 메모리 영역이고, 제2 전용 메모리 영역(230)은 제2 프로세서(130)가 전용으로 사용하는 메모리 영역이다. 또한, 공유 메모리 영역(250)은 제1 프로세서(110) 및 제2 프로세서(130)가 공통으로 사용할 수 있는 메모리 영역으로 제1 프로세서(110) 및 제2 프로세서(130)는 세마포 제어부(259)를 이용하여 소정의 공유 메모리 영역(250)에 대한 배타적 권한을 획득한 후 데이터를 입출력할 수 있다.The first
제1 프로세서(110) 및 제2 프로세서(130)는 각각 제1 외부 버스 인터페이스(EBI: External Bus Interface)(111) 및 제2 외부 버스 인터페이스(131)를 통해 다중 포트 메모리(200)와 데이터의 입출력을 수행한다.The
제1 외부 버스 인터페이스(111) 및 제2 외부 버스 인터페이스(131)는 일종의 메모리 컨트롤러(memory controller) 역할을 수행하며 SDRAM(Synchronous DRAM) 또는 PSRAM(Pseudo SRAM)의 외부 버스 인터페이스가 사용될 수 있다. 이하 본 발명의 실시예에서는 제1 외부 버스 인터페이스(111) 및 제2 외부 버스 인터페이스(131)는 SDRAM 외부 버스 인터페이스인 것으로 가정한다.The first
제1 프로세서(110)는 다중 포트 메모리(200)의 제1 포트(212)를 통하여 어드레스, 복수의 제어신호, 클럭을 다중 포트 메모리(200)에 제공하고, 다중 포트 메모리(200)는 제1 포트(212) 및 제1 외부 버스 인터페이스(111)를 통해 제1 프로세 서(110)와 데이터의 입출력을 수행한다.The
제2 프로세서(130)는 다중 포트 메모리(200)의 제2 포트(232)를 통하여 어드레스, 복수의 제어신호 및 클럭을 다중 포트 메모리(200)에 제공하고, 다중 포트 메모리(200)는 제2 포트(232) 및 제2 외부 버스 인터페이스(131)를 통해 제2 프로세서(130)와 데이터의 입출력을 수행한다.The
여기서, 제1 프로세서(110)는 예를 들어 휴대용 단말기에 장착되어 이동 통신 기능을 처리하는 ARM 계열의 베이스밴드 프로세서가 될 수 있고, 제2 프로세서(130)는 부가 어플리케이션을 처리하는 멀티미디어 프로세서가 될 수 있다.Here, the
제1 메모리 인터페이스(211)는 SDRAM 메모리 인터페이스로 구성될 수 있고, 제1 포트(212)를 통하여 제1 프로세서(110)로부터 어드레스, 제어신호, 클럭 및 데이터를 입력받고 어드레스를 로우 어드레스와 컬럼 어드레스로 디코딩한 후 디코딩된 어드레스를 메모리 셀 어레이로 출력하고 메모리 셀 어레이의 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터를 메모리 셀 어레이로부터 독출하거나 메모리 셀 어레이에 기록한다.The
이를 위해 제1 메모리 인터페이스(211)는 일반적인 SDRAM 인터페이스에서 사용되는 명령 디코더(Command decoder)(미도시), 로우 디코더(Row decoder) (미도시), 컬럼 디코더(Column decoder) (미도시) 및 입출력 버퍼(미도시) 등을 포함할 수 있다.To this end, the
제2 메모리 인터페이스(231)는 SDRAM 메모리 인터페이스로 구성될 수 있고, 제2 포트(232)를 통하여 제2 프로세서(130)로부터 어드레스, 제어신호, 클럭 및 데 이터를 입력받고 어드레스를 로우 어드레스와 컬럼 어드레스로 디코딩한 후 디코딩된 어드레스를 메모리 셀 어레이로 출력하고 메모리 셀 어레이의 읽기, 쓰기 및 리프레쉬 등의 동작 타이밍에 따라 데이터를 메모리 셀 어레이로부터 독출하거나 메모리 셀 어레이에 기록한다.The
이를 위해 제2 메모리 인터페이스(231)는 일반적인 SDRAM 인터페이스에서 사용되는 명령 디코더(미도시), 로우 디코더(미도시), 컬럼 디코더(미도시) 및 입출력 버퍼(미도시) 등을 포함할 수 있다.To this end, the
도 3에 도시된 다중 프로세서 시스템에서 제1 프로세서(110)는 마스터 프로세서의 역할을 수행하고, 제2 프로세서(130)는 제1 프로세서(110)에 의해 초기화되는 슬레이브 프로세서의 역할을 수행한다. 제2 프로세서(130)는 초기화된 후 부팅을 제어하기 위한 부팅 제어부(135)를 포함한다.In the multiprocessor system illustrated in FIG. 3, the
다중 프로세서 시스템이 초기화되면, 제1 프로세서(110)는 부팅을 완료하고, 제1 전용 메모리 영역(210)에 저장된 데이터(예를 들면, 운영체제)를 소정의 공유 메모리 영역(251 내지 257)(예를 들면, 제1 공유 메모리 영역(251))에 복사한 후, 제2 프로세서(130)에 전원 제어 신호 및 리셋 신호를 제공하여 제2 프로세서(130)를 초기화시킨다.When the multiprocessor system is initialized, the
부팅 제어부(135)는 제2 프로세서(130)가 리셋되면, 세마포 제어부(259)에 락제어신호(lock_con)를 제공하여 소정의 공유메모리 영역에 대한 배타적 접근 권한을 획득한 후 상기 소정의 공유 메모리 영역(251 내지 257)(예를 들면, 제1 공유 메모리 영역(251))에 저장된 데이터를 제2 전용 메모리에 복사한다.When the
또한, 부팅 제어부(135)는 제2 전용 메모리 또는 상기 소정의 공유 메모리 영역(251 내지 257)(예를 들면 제1 공유 메모리 영역(251))에서 가장 처음 수행되어야 하는 명령어가 저장된 주소가 기설정된 시작 주소가 아닌 경우에는 최초 수행할 명령어가 저장된 주소로 시작 주소(예를 들면, 프로그램 카운터)를 분기시킨다.In addition, the
여기서, 상기 가장 처음 수행되어야 하는 명령어는 예를 들어 제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
부팅 제어부(135)는 하드웨어 로직으로 구현되고 세마포 제어부(259)와 물리적 신호 전송 라인(137)으로 연결될 수 있다.The
도 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
도 3 및 도 4를 참조하면, 먼저, 다중 프로세서 시스템이 초기화되면 제1 프로세서(110)는 초기화 프로그램에 따라 부팅 절차를 수행하고 운영체제(Operating System)를 비휘발성 메모리에서 제1 전용 메모리 영역(210)으로 복사한다(단계 301).Referring to FIGS. 3 and 4, when the multiprocessor system is initialized, the
여기서, 상기 초기화 프로그램은 장치에 전원이 인가되었을 때 가장 먼저 실행되어야 하는 초기 프로그램(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
예를 들어, 상기 데이터는 하드웨어 장치 드라이버(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
제2 프로세서(130)가 초기화되면 부팅 제어부(135)는 세마포 제어부(259)에 락제어신호(lock_con)를 제공하여 소정의 공유 메모리 영역(250)에 대한 배타적 접근 권한을 획득한다(단계 307). 여기서, 상기 소정의 공유 메모리 영역(250)은 제1 내지 제4 공유 메모리 영역(251 내지 257) 중 어느 하나가 될 수 있다. 이하, 본 발명의 일 실시예에서는 설명의 편의를 위해 상기 소정의 공유 메모리 영역(251 내지 257)이 제1 공유 메모리 영역(251)인 것으로 가정한다.When the
부팅 제어부(135)는 제1 공유 메모리 영역(251)에 대한 배타적 접근 권한을 획득한 후, 제1 공유 메모리 영역(251)에 저장된 데이터를 제2 전용 메모리 영역(230)에 복사한다(단계 309). 여기서, 부팅 제어부(135)는 제2 전용 메모리 영역(230) 또는 제1 공유 메모리 영역(251)에서 가장 처음 수행되어야 하는 명령어가 저장된 주소가 기설정된 시작 주소가 아닌 경우에는 최초로 수행할 명령어가 저장된 주소로 시작 주소를 분기 시킬 수 있다.After obtaining the exclusive access right to the first shared
부팅 제어부(135)는 상기 데이터의 복사가 완료되었는지를 판단하고(단계 311), 복사가 완료되지 않은 것으로 판단되면 단계 309로 되돌아가서 복사를 계속 수행하고, 복사가 완료된 것으로 판단되면, 제1 공유 메모리 영역(251)의 접근 권한을 해제(unlock)한다(단계 313). The
이후, 제2 프로세서(130)는 제2 전용 메모리 영역(230)에 저장된 데이터에 기초하여 부팅을 수행하고(단계 315), 부팅이 완료되면 명령 대기 상태로 대기한다(단계 317).Thereafter, the
도 3 및 도 4에 도시된 바와 같이 본 발명의 일 실시예에 따른 다중 포트 메모리(200)를 이용한 다중 프로세서의 부팅 방법에서는 다중 포트 메모리(200)를 이용하여 슬레이브 프로세서(즉, 제2 프로세서(130))가 부팅되도록 하기 때문에 부팅 시간이 빨라지고, 부팅에 필요한 데이터, 주소, 제어 신호 등을 전송하기 위한 별도의 호스트 프로세서 인터페이스가 필요없게 된다.3 and 4, in the booting method of a multiprocessor using the
도 5는 도 3에 도시된 부팅 제어부(135)의 동작을 나타내는 흐름도로서, 도 4에 도시된 단계 307 및 단계 309의 처리 과정을 상세하게 나타낸 것이다.FIG. 5 is a flowchart illustrating an operation of the
도 5를 참조하면, 먼저, 부팅 제어부(135)는 전원이 인가되었는지를 판단하고(단계 401), 전원이 인가된 것으로 판단되면 제2 프로세서(130)가 리셋되었는지를 판단한다(단계 403).Referring to FIG. 5, first, the
단계 403에서 제2 프로세서(130)가 리셋된 것으로 판단되면, 부팅 제어부(135)는 세마포 제어부(259)에 락제어신호(lock_con)를 전송함으로써 제1 공유 메모리 영역(251)에 대한 배타적 접근 권한을 획득한다(단계 405).If it is determined in
이후, 부팅 제어부(135)는 제2 전용 메모리 영역(230)의 시작 번지에 명령어가 존재하는지를 판단하고(단계 407), 제2 전용 메모리 영역(230)의 시작 번지에 명령어가 존재하지 않는 것으로 판단되면, 명령어가 존재하는 주소로 시작 주소를 분기시킨다. 여기서 상기 시작 번지는 제2 프로세서(130)가 초기화된 후 제일 처음 명령어를 독출하는 메모리의 주소를 의미하고, 상기 명령어가 존재하는 주소는 제1 공유 메모리 영역(251)에 복사된 데이터 중 가장 먼저 실행될 명령어가 저장된 위치의 주소가 될 수 있다.Thereafter, the
이후, 부팅 제어부(135)는 분기된 시작 주소에서 명령어를 독출하여 실행한다(단계 411). 상기 독출된 명령어는 제1 공유 메모리 영역(251)에 저장된 데이터를 제2 전용 메모리 영역(230)으로 복사하기 위한 명령어가 될 수 있다.Thereafter, the
도 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
다중 포트 메모리(600)는 제1 메모리 인터페이스(611), 제2 메모리 인터페이스(621), 제3 메모리 인터페이스(631), 제4 메모리 인터페이스(641) 및 메모리 셀 어레이로 구성될 수 있다. 메모리 셀 어레이는 제1 전용 메모리 영역(610), 제2 전용 메모리 영역(620), 제3 전용 메모리 영역(630), 제4 전용 메모리 영역(640) 및 공유 메모리 영역(650)으로 구분될 수 있고, 공유 메모리 영역(650)은 제1 내지 제4 공유 메모리 영역(651 내지 657)으로 구분될 수 있다.The
또한, 다중 포트 메모리(600)는 제1 프로세서 내지 제4 프로세서(510 내지 540)가 제1 내지 제4 공유 메모리 영역(651 내지 657)에 배타적 접근 권한을 획득하도록 함으로써 제1 프로세서 내지 제4 프로세서(510 내지 540)간의 동기를 보장하는 세마포 제어부(659)를 포함한다. In addition, the
제1 전용 메모리 영역(610)은 제1 프로세서(510)가 전용으로 사용하는 메모리 영역이고, 제2 전용 메모리 영역(620)은 제2 프로세서(520)가 전용으로 사용하는 메모리 영역이다. 또한, 제3 전용 메모리 영역(630)은 제3 프로세서(530)가 전용으로 사용하는 메모리 영역이고, 제4 전용 메모리 영역(640)은 제4 프로세서(540)가 전용으로 사용하는 메모리 영역이다.The first
공유 메모리 영역(650)은 제1 프로세서 내지 제4 프로세서(510 내지 540)가 공통으로 사용할 수 있는 메모리 영역으로 제1 프로세서 내지 제4 프로세서(510 내지 540)는 세마포 제어부(659)를 이용하여 소정의 공유 메모리 영역(651 내지 657)에 대한 배타적 권한을 획득한 후 데이터를 입출력할 수 있다.The shared
제1 프로세서 내지 제4 프로세서(510 내지540)는 각각 제1 외부 버스 인터페이스 내지 제4 외부 버스 인터페이스(511 내지 541)를 통해 다중 포트 메모리(600)와 데이터의 입출력을 수행한다.The first to
제1 프로세서(510)는 다중 포트 메모리(600)의 제1 포트(612)를 통하여 어드레스, 복수의 제어신호, 클럭을 다중 포트 메모리(600)에 제공하고, 다중 포트 메모리(600)는 제1 포트(612) 및 제1 외부 버스 인터페이스(511)를 통해 제1 프로세서(510)와 데이터의 입출력을 수행한다.The
제2 프로세서(520)는 다중 포트 메모리(600)의 제2 포트(622)를 통하여 어드레스, 복수의 제어신호 및 클럭을 다중 포트 메모리(600)에 제공하고, 다중 포트 메모리(600)는 제2 포트(612) 및 제2 외부 버스 인터페이스(521)를 통해 제2 프로세서(520)와 데이터의 입출력을 수행한다.The
제3 프로세서(530)는 다중 포트 메모리(600)의 제3 포트(632)를 통하여 어드레스, 복수의 제어신호 및 클럭을 다중 포트 메모리(600)에 제공하고, 다중 포트 메모리(600)는 제3 포트(632) 및 제3 외부 버스 인터페이스(531)를 통해 제3 프로세서(530)와 데이터의 입출력을 수행한다.The
제4 프로세서(540)는 다중 포트 메모리(600)의 제4 포트(541)를 통하여 어드레스, 복수의 제어신호 및 클럭을 다중 포트 메모리(600)에 제공하고, 다중 포트 메모리(600)는 제4 포트(642) 및 제4 외부 버스 인터페이스(541)를 통해 제4 프로세서(540)와 데이터의 입출력을 수행한다.The
도 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
다중 프로세서 시스템이 초기화되면, 제1 프로세서(510)는 부팅을 완료하고, 제1 전용 메모리 영역(610)에 저장된 데이터(예를 들면, 운영체제)를 소정의 공유 메모리 영역(예를 들면, 제1 공유 메모리 영역(651))에 복사한 후, 제2 프로세서(520)에 전원 제어 신호 및 리셋 신호(power/reset)를 제공하여 제2 프로세서(520)를 초기화시킨다. 이하, 상기 소정의 공유 메모리 영역은 제1 공유 메모리 영역(651)으로 가정한다.When the multiprocessor system is initialized, the
제2 부팅 제어부(525)는 제2 프로세서(520)가 리셋되면, 세마포 제어부(659)에 락제어신호(lock_con1)를 제공하여 제1 공유 메모리 영역(651)에 대한 배타적 접근 권한을 획득한 후 상기 제1 공유 메모리 영역(651)에 저장된 데이터를 제2 전용 메모리 영역(620)에 복사한다.When the
또한, 제2 부팅 제어부(525)는 제2 전용 메모리 영역(620) 또는 상기 제1 공유 메모리 영역(651)에서 가장 처음 수행되어야 하는 명령어가 저장된 주소가 기설정된 시작 주소가 아닌 경우에는 최초 수행할 명령어가 저장된 주소로 시작 주소(예를 들면, 프로그램 카운터)가 분기되도록 한다.In addition, the
제1 공유 메모리 영역(651)의 데이터의 복사가 완료되면 제2 부팅 제어부(525)는 제1 공유 메모리 영역(651)의 접근 권한을 해제(unlock)하고, 부팅 절차를 수행한다.When copying of the data of the first shared
제3 프로세서(530)는 제1 프로세서(510)로부터 제공된 전원 제어 신호 및 리셋 신호(power/reset)에 의해 초기화된다. 그리고, 제1 공유 메모리 영역(651)이 언락(unlock) 상태가 되면 제3 부팅 제어부(535)는 세마포 제어부(659)에 락제어신호(lock_con2)를 제공하여 제1 공유 메모리 영역(651)에 대한 배타적 접근 권한을 획득한 후 상기 제1 공유 메모리 영역(651)에 저장된 데이터를 제3 전용 메모리 영역(630)에 복사한다. The
또한, 제3 부팅 제어부(535)는 제3 전용 메모리 영역(630) 또는 상기 제1 공유 메모리 영역(651)에서 가장 처음 수행되어야 하는 명령어가 저장된 주소가 기설정된 시작 주소가 아닌 경우에는 최초 수행할 명령어가 저장된 주소로 시작 주소가 분기되도록 한다.In addition, the
이후, 제1 공유 메모리 영역(651)의 데이터의 복사가 완료되면 제3 부팅 제어부(535)는 제1 공유 메모리 영역(651)의 접근 권한을 해제하고, 부팅 절차를 수행한다.Subsequently, when copying of the data of the first shared
제4 프로세서(540)는 제1 프로세서(510)로부터 제공된 전원 제어 신호 및 리셋 신호(power/reset)에 의해 초기화된다. 그리고, 제1 공유 메모리 영역(651)이 언락(unlock) 상태가 되면 제4 부팅 제어부(545)는 세마포 제어부(659)에 락제어신호(lock_con3)를 제공하여 제1 공유 메모리 영역(651)에 대한 배타적 접근 권한을 획득한 후 상기 제1 공유 메모리 영역(651)에 저장된 데이터를 제4 전용 메모리 영역(640)에 복사한다.The
또한, 제4 부팅 제어부(545)는 제3 전용 메모리 영역(640) 또는 상기 제1 공유 메모리 영역(651)에서 가장 처음 수행되어야 하는 명령어가 저장된 주소가 기설정된 시작 주소가 아닌 경우에는 최초 수행할 명령어가 저장된 주소로 시작 주소가 분기되도록 한다.In addition, the
이후, 제1 공유 메모리 영역(651)의 데이터의 복사가 완료되면 제4 부팅 제어부(545)는 제1 공유 메모리 영역(651)의 접근 권한을 해제하고, 부팅 절차를 수행한다.Subsequently, when copying of the data of the first shared
도 6에서는 제2 내지 제4 프로세서(540)가 제1 프로세서(510)에 의해 순차적으로 초기화되고, 제1 공유 메모리 영역(651)에 저장된 데이터를 세마포 제어부(659)를 통해 순차적으로 자신의 전용 메모리 영역으로 복사하는 것으로 예를 들 었으나, 본 발명의 또 다른 실시예에서는 제1 프로세서(510)가 부팅된 후 제2 내지 제4 프로세서(540)가 제1 프로세서(510)에 의해 동시에 초기화된 후 세마포 제어부(659)를 통해 순차적으로 자신의 전용 메모리 영역에 복사하도록 구성할 수도 있다.In FIG. 6, the second to
또한, 도 3 및 도 6에 도시된 본 발명의 실시예에서는 공유 메모리 영역(250 및 650)이 4개의 공유 메모리 영역을 포함하는 것으로 예를 들어 설명하였으나, 본 발명의 또 다른 실시예에서는 공유 메모리 영역(250 및 650)이 4개 이외의 영역으로 구분될 수도 있음은 물론이다.3 and 6 illustrate that the shared
다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법, 다중 포트 메모리 및 다중 포트 메모리를 가지는 다중 프로세서 시스템에 따르면, 마스터 역할을 수행하는 제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)
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)
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 |
-
2007
- 2007-06-19 KR KR1020070060070A patent/KR20080111745A/en not_active Application Discontinuation
Cited By (2)
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 |