KR102116096B1 - 다중시스템 및 이의 부팅 방법 - Google Patents

다중시스템 및 이의 부팅 방법 Download PDF

Info

Publication number
KR102116096B1
KR102116096B1 KR1020130160702A KR20130160702A KR102116096B1 KR 102116096 B1 KR102116096 B1 KR 102116096B1 KR 1020130160702 A KR1020130160702 A KR 1020130160702A KR 20130160702 A KR20130160702 A KR 20130160702A KR 102116096 B1 KR102116096 B1 KR 102116096B1
Authority
KR
South Korea
Prior art keywords
core
boot
memory
boot image
unit
Prior art date
Application number
KR1020130160702A
Other languages
English (en)
Other versions
KR20150072963A (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 KR1020130160702A priority Critical patent/KR102116096B1/ko
Priority to US14/552,994 priority patent/US9678759B2/en
Priority to CN201410804976.4A priority patent/CN104731577B/zh
Publication of KR20150072963A publication Critical patent/KR20150072963A/ko
Application granted granted Critical
Publication of KR102116096B1 publication Critical patent/KR102116096B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • 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
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8038Associative processors
    • 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
    • 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/4403Processor initialisation
    • 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/4406Loading of operating system

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 Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Abstract

본 발명의 일 실시예는 제1 코어, 및 제2 코어를 포함하는 다중시스템의 부팅 방법에 있어서, 상기 제1 코어의 부트로더를 실행하는 단계; 상기 제1 코어의 네트워크 인터페이스를 인에이블(enable) 상태로 설정하는 단계; 상기 제1 코어의 네트워크 인터페이스에 연결된 상기 제2 코어를 인식하는 단계; 상기 제1 코어의 제1 메모리와 상기 제2 코어의 제2 메모리를 매핑하는 단계; 상기 제1 코어의 부팅이미지와 상기 제2 코어의 부팅이미지를 로딩하는 단계; 및 로딩된 상기 제2 코어의 부팅이미지를 네트워크를 통해 상기 제2 코어에 전송하는 단계;를 포함하는 다중시스템 부팅 방법을 개시한다.

Description

다중시스템 및 이의 부팅 방법{Multisystem, and method of booting the same}
다중시스템 및 이의 부팅 방법에 관한 것이다.
시스템의 구성이 복잡해지고 세분화됨에 따라 2대 이상의 중앙 처리 장치(CPU)를 갖는 다중시스템의 이용이 활발해지고 있다. 각각의 중앙 처리 장치에서는 독립적으로 운영체제가 실행되고, 각각의 중앙 처리 장치는 독립적으로 데이터 처리를 수행한다. 또한, 중앙 처리 장치들은 서로 무선 또는 유선 네트워크를 통해 통신하므로, 서로 데이터 송수신이 가능하다.
한편, 각각의 중앙 처리 장치를 부팅하기 위하여 중앙 처리 장치 별로 각각 플래시 메모리를 구비하는 경우 비용 측면에서 비효율적이고, 시스템을 업그레이드하는 경우 각각의 플래시 메모리를 별개로 업그레이드 해야 하므로 관리가 복잡해진다. 하나의 장치가 플래시 메모리를 이용하여 부팅을 마친 후, 다른 장치들의 부팅을 도와줄 수도 있으나, 이 경우 부팅 시간이 길어지는 문제가 있다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명의 실시예들은 다중시스템 및 이의 부팅 방법을 제공한다. 본 실시예들이 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
본 발명의 일 실시예는 제1 코어, 및 제2 코어를 포함하는 다중시스템의 부팅 방법에 있어서, 상기 제1 코어의 부트로더를 실행하는 단계; 상기 제1 코어의 네트워크 인터페이스를 인에이블(enable) 상태로 설정하는 단계; 상기 제1 코어의 네트워크 인터페이스에 연결된 상기 제2 코어를 인식하는 단계; 상기 제1 코어의 제1 메모리와 상기 제2 코어의 제2 메모리를 매핑하는 단계; 상기 제1 코어의 부팅이미지와 상기 제2 코어의 부팅이미지를 로딩하는 단계; 및 로딩된 상기 제2 코어의 부팅이미지를 네트워크를 통해 상기 제2 코어에 전송하는 단계;를 포함하는 다중시스템 부팅 방법을 개시한다.
본 실시예에 있어서, 상기 네트워크는 PCIe(PCI express)인 것을 특징으로 한다.
본 실시예에 따른 다중시스템 부팅 방법은, 상기 전송하는 단계가 완료되면 상기 제2 코어의 부팅 레지스터를 인에이블 상태로 설정하는 단계;를 더 포함할 수 있다.
본 실시예에 따른 다중시스템 부팅 방법은, 상기 전송하는 단계가 완료되면 상기 제1 코어의 커널을 부팅하는 단계;를 더 포함할 수 있다.
본 실시예에 있어서, 상기 부팅하는 단계;는 상기 인식하는 단계에서 상기 제2 코어가 인식되는 경우에는, 상기 전송하는 단계 이후에 상기 제1 코어의 커널을 부팅하고, 상기 인식하는 단계에서 상기 제2 코어가 인식되지 않는 경우에는, 상기 로딩하는 단계 이후에 상기 제1 코어의 커널을 부팅할 수 있다.
본 실시예에 있어서, 상기 로딩하는 단계는, 상기 제2 코어의 부팅이미지를 상기 제1 메모리의 소정의 위치에 로딩하고, 상기 전송하는 단계는 상기 제1 메모리의 소정의 위치에 로딩된 상기 제2 코어의 부팅이미지를, 상기 제1 메모리의 소정의 위치에 매핑된 상기 제2 메모리의 위치에 기록함으로써 상기 제2 코어의 부팅이미지를 상기 제2 코어에 전송할 수 있다.
본 실시예에 있어서, 상기 다중시스템은 플래시 메모리를 더 포함하고, 상기 로딩하는 단계는 상기 제1 코어의 부팅이미지와 상기 제2 코어의 부팅이미지를 상기 플래시 메모리로부터 로딩할 수 있다.
본 발명의 다른 실시예는 제1 코어, 및 제2 코어를 포함하는 다중시스템에 있어서, 상기 제1 코어는, 상기 제1 코어의 부트로더를 실행하는 제1 부트로더 실행부; 상기 제1 코어의 네트워크 인터페이스를 인에이블 상태로 설정하는 네트워크 활성화부; 상기 제1 코어의 네트워크 인터페이스에 연결된 상기 제2 코어를 인식하는 장치 인식부; 상기 제1 코어의 제1 메모리와 상기 제2 코어의 제2 메모리를 매핑시키는 메모리 매핑부; 상기 제1 코어의 부팅이미지와 상기 제2 코어의 부팅이미지를 로딩하는 부팅이미지 로딩부; 및 로딩된 상기 제2 코어의 부팅이미지를 네트워크를 통해 상기 제2 코어에 전송하는 부팅이미지 전송부;를 포함하는 다중시스템을 개시한다.
본 실시예에 있어서, 상기 네트워크는 PCIe(PCI express)인 것을 특징으로 한다.
본 실시예에 있어서, 상기 제1 코어는, 상기 제2 코어의 부팅이미지의 전송이 완료되면 상기 제2 코어의 부팅 레지스터를 인에이블 상태로 설정하는 부팅 레지스터 설정부;를 더 포함할 수 있다.
본 실시예에 있어서, 상기 제2 코어는, 상기 제2 코어의 부팅 레지스터가 인에이블 상태로 설정되면, 상기 제2 코어의 부팅이미지에 포함된 상기 제2 코어의 부트로더를 실행하는 제2 부트로더 실행부; 및 상기 제2 코어의 부팅이미지에 기초하여 상기 제2 코어의 커널을 부팅하는 제2 부팅부;를 포함할 수 있다.
본 실시예에 있어서, 상기 제1 코어는 상기 제1 코어의 부팅이미지에 기초하여 상기 제1 코어의 커널을 부팅하는 제1 부팅부;를 더 포함할 수 있다.
본 실시예에 있어서, 상기 제1 부팅부;는 상기 장치 인식부에 의해 상기 제2 코어가 인식되는 경우에는, 상기 제2 코어의 부팅이미지의 전송 후 상기 제1 코어의 커널을 부팅하고, 상기 장치 인식부에 의해 상기 제2 코어가 인식되지 않는 경우에는, 상기 제1 코어의 부팅이미지의 로딩 후 상기 제1 코어의 커널을 부팅할 수 있다.
본 실시예에 있어서, 상기 부팅이미지 로딩부;는, 상기 제2 코어의 부팅이미지를 상기 제1 메모리의 소정의 위치에 로딩하고, 상기 부팅이미지 전송부;는 상기 제1 메모리의 소정의 위치에 로딩된 상기 제2 코어의 부팅이미지를, 상기 제1 메모리의 소정의 위치에 매핑된 상기 제2 메모리의 소정의 위치에 기록함으로써 상기 제2 코어의 부팅이미지를 상기 제2 코어에 전송할 수 있다.
본 실시예에 있어서, 상기 제2 코어는, 상기 제2 코어의 부팅 레지스터가 인에이블 상태로 설정되면, 상기 제2 코어의 부팅이미지에 포함된 상기 제2 코어의 부트로더를 실행하는 제2 부트로더 실행부;를 포함하고, 상기 제2 부트로더 실행부;는 상기 제2 메모리의 소정의 위치에 기록된 상기 제2 코어의 부팅이미지에 포함된 상기 제2 코어의 부트로더를 실행할 수 있다.
본 실시예에 있어서, 상기 다중시스템은 플래시 메모리를 더 포함하고, 상기 부팅이미지 로딩부;는 상기 제1 코어의 부팅이미지와 상기 제2 코어의 부팅이미지를 상기 플래시 메모리로부터 로딩할 수 있다.
본 발명의 다른 측면에 따라 상기된 다중시스템 부팅 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공된다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다. 이러한 일반적이고 구체적인 측면이 시스템, 방법, 컴퓨터 프로그램, 또는 어떠한 시스템, 방법, 컴퓨터 프로그램의 조합을 사용하여 실시될 수 있다.
본 발명의 실시예들에 관한 다중시스템 및 이의 부팅 방법은 하나의 플래시 메모리를 이용하므로 효율성이 증대되고 시스템의 관리가 용이하다.
본 발명의 실시예들에 관한 다중시스템 및 이의 부팅 방법에 따르면 하나의 코어의 부팅을 완료하기 전에 다른 코어의 부팅을 시작할 수 있으므로 전체 시스템의 부팅 시간이 단축된다.
도 1은 본 발명의 일 실시예에 따른 다중시스템의 구성을 도시한 것이다.
도 2는 도 1의 다중시스템을 상세히 도시한 것이다.
도 3은 도 2의 부팅 제어부(112)의 구성을 도시한 것이다.
도 4는 본 발명의 일 실시예에 따른 플래시 메모리 맵을 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 메모리 매핑의 예를 도시한 것이다.
도 6은 본 발명의 일 실시예에 따라 제1 코어에서 수행되는 다중시스템 부팅 방법의 흐름도이다.
도 7은 본 발명의 일 실시예에 따라 제2 코어에서 수행되는 다중시스템 부팅 방법의 흐름도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다.
이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다.
도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
도 1은 본 발명의 일 실시예에 따른 다중시스템의 구성을 도시한 것이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 다중시스템(1)은 제1 코어(10), 제2 코어(20) 및 플래시 메모리(30)를 포함한다.
본 발명의 일 실시예에 따른 다중시스템(1)은 복수의 코어를 포함하고, 각 코어는 독립적으로 동작될 수 있다. 각 코어는 CPU와 메모리를 포함할 수 있다. 각 코어의 운영체제는 별개로 동작될 수 있고, 부팅 역시 별개로 수행될 수 있다. 즉, 본 발명의 일 실시예에 따른 다중시스템(1)을 동작시키기 위해 다중시스템(1)에 포함된 모든 코어가 부팅될 수 있다. 다만, 복수의 코어는 어느 하나의 코어에 연결된 하나의 플래시 메모리를 이용하여 부팅될 수 있다.
각 코어는 네트워크를 통해 서로 통신하면서, 시스템에서 서로 다른 역할을 수행할 수 있다. 예를 들어, 본 발명의 일 실시예에 따른 다중시스템(1)이 감시 시스템인 경우, 제1 코어(10)는 카메라로부터 영상을 수신하고, 영상을 처리하고, 제2 코어(20)는 네트워크를 통해 제1 코어(10)로부터 영상을 수신하고, 영상을 처리하여 디스플레이 장치로 출력하는 역할을 할 수 있다. 여기서, 네트워크는 유선, 또는 무선 네트워크일 수 있고, 예컨대 PCIe(PCI express) 방식을 이용하는 것일 수 있다.
PCIe는 데이터 입출력을 위한 직렬 버스 규격이며, 인텔 사의 주도 하에 만들어졌다. PCI 버스와 소프트웨어적 호환성이 있으며, 최대 80Gbps까지 다양한 속도를 지원한다.
플래시 메모리(30)는 전원이 끊겨도 저장된 정보가 지워지지 않는 비휘발성 메모리이다. 플래시 메모리(30)는 낸드(NAND)형 또는 노어(NOR)형일 수 있다. 본 발명의 일 실시예에 따른 플래시 메모리(30)는 제1 코어(10)와 제2 코어(20)의 부팅이미지를 저장한다.
도 2는 도 1의 다중시스템을 상세히 도시한 것이다.
도 2를 참조하면, 각각의 코어는 CPU, 메모리 및 이들을 연결하는 시스템 버스를 포함한다. 제1 코어(10) 및 제2 코어(20)는 PCIe 버스(40)에 연결되어 서로 통신할 수 있다. 제1 코어(10)의 메모리(120)와 제2 코어(20)의 메모리(220)는 PCIe 버스(40)를 통해 연결될 수 있다. 메모리(120)와 메모리(220)의 매핑 정보 및 기타 통신에 필요한 정보는 PCIe 인터페이스(130, 230)에 포함될 수 있다.
먼저, 제1 코어(10)는 CPU(110), 메모리(120), PCIe 인터페이스(130) 및 이들을 연결하는 시스템 버스(140)를 포함한다. 플래시 메모리(30)는 제1 코어(10)의 시스템 버스(140)에 연결된다. 한편, 도 2에 도시되지 않았으나 플래시 메모리(30)와 시스템 버스(140) 사이에 I/O 인터페이스가 구비될 수 있다.
CPU(110)는 부트로더 실행부(111), 부팅 제어부(112), 부팅부(113)를 포함한다.
부트로더 실행부(111)는 제1 코어(10)의 부트로더를 실행한다. 여기서, 부트로더는 운영체제가 올바르게 부팅되도록 필요한 사전 작업을 수행함으로써, 최종적으로 운영 체제를 메모리에 올릴 수 있도록 하는 프로그램이다. 부트로더로는 예를 들어, Redboot, U-boot, 이지부트 등의 프로그램이 사용될 수 있다. 이하에서는, 부트로더가 U-boot인 경우의 예를 들어 설명할 것이나, 본 발명의 실시예들이 이에 한정되지 않는다.
부트로더 실행부(111)는 제1 코어(10)의 전원이 켜지면 플래시 메모리(30)의 특정 주소에 위치하는 프로그램을 로딩하여 실행할 수 있다. 예를 들어 부트로더 실행부(111)는 플래시 메모리(30)의 특정 주소에 위치하는 부트로더 프로그램을 메모리(120)에 로딩하여 또는 캐시 메모리와 메모리(120)에 나누어 로딩하여 실행할 수 있다.
부팅 제어부(112)는 제1 코어(10)의 부팅 준비단계를 제어한다. 부팅 제어부(112)는 제1 코어(10)의 부팅이미지를 로딩한다. 제2 코어(20)의 연결이 인식되는 경우에는, 부팅 제어부(112)는 제1 코어(10)의 부팅 뿐 아니라 제2 코어(20)의 부팅 준비단계를 제어할 수 있다. 즉, 부팅 제어부(112)는 제2 코어(20)의 부팅이미지도 로딩할 수 있다. 부팅 제어부(112)는 제2 코어(20)의 부팅이미지를 제2 코어(20)의 메모리(220)에 전송할 수 있다. 부팅 제어부(112)의 구체적인 역할을 도 3과 함께 후술한다.
제1 코어(10)의 부팅이미지가 로딩되면, 부팅부(113)는 로딩된 제1 코어(10)의 부팅이미지에 기초하여, 제1 코어(10)의 커널을 부팅한다. 부팅부(113)는 커널이 부팅되면, 제1 코어(10)의 파일시스템을 더 부팅할 수 있다. 한편, 제2 코어(20)의 연결이 인식되어 만일 부팅 제어부(112)에 의해 제2 코어(20)의 부팅이미지가 전송된 경우에는, 부팅부(113)는 제2 코어(20)의 부팅이미지의 전송이 완료된 후에 제1 코어(10)의 커널을 부팅할 수 있다.
메모리(120)는 제1 코어(10)의 메인 메모리로써, 램(RAM) 메모리일 수 있다. 예를 들어, 메모리(120)는 DDR(double data rate) 메모리일 수 있으나, 본 발명의 실시예들이 이에 한정되는 것은 아니다.
PCIe 인터페이스(130)는 시스템 버스(140)와 PCIe 버스(40) 간의 통신을 제어하는 일종의 버스 브릿지이다. PCIe 인터페이스(130)는 시스템 버스(140)의 통신 프로토콜과 PCIe 버스(40)의 통신 프로토콜에 기초하여, 양 버스 사이에서 이동되는 데이터를 제어한다.
제2 코어(20)는 CPU(210), 메모리(220), PCIe 인터페이스(230) 및 이들을 연결하는 시스템 버스(240)를 포함한다.
CPU(210)는 부트로더 실행부(211) 및 부팅부(213)를 포함한다.
부트로더 실행부(211)는 제1 코어(10)의 부팅 제어부(112)에 의해 로딩되어 메모리(220)에 저장된 제2 코어(20)의 부팅이미지 중, 부트로더를 실행한다. 부트로더 실행부(211)는 메모리(220)의 특정 위치에 저장된 파일을 실행하도록 설정될 수 있고, 제1 코어(10)의 부팅 제어부(112)는 상기 메모리(220)의 특정 위치에 제2 코어(20)의 부트로더를 저장할 수 있다.
한편, 부트로더 실행부(211)는 제2 코어(20)의 부팅 레지스터가 인에이블(enable) 상태로 설정되었을 때 부트로더를 실행할 수 있다. 제2 코어(20)의 부팅 레지스터 값은 제1 코어(10)의 부팅 제어부(112)에 의해 설정될 수 있다.
부팅부(213)는 제1 코어(10)의 부팅 제어부(112)에 의해 로딩되어 메모리(220)에 저장된 제2 코어(20)의 부팅이미지에 기초하여 제2 코어(20)의 커널을 부팅한다. 커널이 부팅되면 드라이버를 포함한 각종 프로그램들이 제2 코어(20)에서 동작할 수 있게 된다.
이하에서는, 도 3을 참조하여 도 2의 부팅 제어부(112)의 역할을 상세히 설명한다.
도 3은 도 2의 부팅 제어부(112)의 구성을 도시한 것이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 부팅 제어부(112)는 네트워크 활성화부(1121), 장치 인식부(1122), 메모리 매핑부(1123), 부팅이미지 로딩부(1124), 부팅이미지 전송부(1125), 및 부팅 레지스터 설정부(1126)를 포함한다.
네트워크 활성화부(1121)는 제1 코어(10)의 PCIe 인터페이스(130)를 인에이블(enable) 상태로 설정한다. 예를 들어, 네트워크 활성화부(1121)는 제1 코어(10)의 PCIe 인터페이스(130)의 인에이블(enable) 레지스터 값을 인에이블 상태로 설정할 수 있다. 한편, 네트워크 활성화부(1121)는 제2 코어(20)의 PCIe 인터페이스(230) 역시 인에이블 상태로 설정할 수 있다. 네트워크 활성화부(1121)는 하드웨어적으로 연결된 PCIe 인터페이스(130, 230)의 BAR0 레지스터를 이용하여, 제2 코어(20)의 PCIe 인터페이스(230)를 인에이블 상태로 변경할 수 있다. BAR0 레지스터는 하드웨어적으로 연결되는 부분이므로, 메모리 매핑 이전에도 데이터 전송에 이용 가능하다.
장치 인식부(1122)는 제1 코어(10)의 PCIe 인터페이스(130)에 연결된 장치를 검색하고, PCIe 인터페이스(130)에 연결된 제2 코어(20)를 인식한다. 장치 인식부(1122)는 인식된 제2 코어(20)의 정보를 출력한다. 한편, PCIe 인터페이스(130)에 연결된 장치가 없다면 장치 인식부(1122)는 연결에 실패했다는 로그를 출력한다.
메모리 매핑부(1123)는 장치 인식부(1122)에 의해 제2 코어(20)가 인식되면, PCIe 버스(40)에 의해 연결되는 메모리의 주소를 매핑한다. 예를 들어, 메모리 매핑부(1123)는 제1 코어(10)의 메모리(120)와 제2 코어(20)의 메모리(220)의 주소를 매핑한다. 메모리 매핑부(1123)는 매핑 정보를 PCIe인터페이스(130, 230)의 BAR0 레지스터를 이용하여 매핑 정보를 제2 코어(20)에 전송할 수 있다. 매핑 정보에 의해 메모리(120)와 메모리(220)가 소프트웨어 적으로 연결된다.
부팅이미지 로딩부(1124)는 플래시 메모리(30)에 저장된 제1 코어(10)의 부팅이미지와 제2 코어(20)의 부팅이미지를 로딩한다. 예를 들어, 부팅이미지 로딩부(1124)는 제1 코어(10)의 부팅이미지와 제2 코어(20)의 부팅이미지를 메모리(120)에 로딩한다. 본 발명의 일 실시예에 따르면, 부팅이미지 로딩부(1124)는 제2 코어(20)의 부팅이미지를 제1 코어(10)의 특정 위치에 저장할 수 있다. 상기 특정 위치는 ‘제2 코어(20)의 부팅이미지를 저장하기로 미리 지정된 제2 코어(20)의 메모리(220)의 위치’에 매핑된 제1 코어(10)의 메모리(120)의 위치일 수 있다. 예를 들어, 상기 메모리(120)의 특정 위치는 제2 코어(20)의 부트로더 실행부(211)가 실행하는 부트로더의 제2 코어(20)의 메모리(220) 상의 위치에 매핑된 제1 코어(10)의 메모리(120)의 위치일 수 있다.
부팅이미지 전송부(1125)는 로딩된 제2 코어(20)의 부팅이미지를 PCIe 버스(40)를 통해 제2 코어(20)로 전송한다. 예를 들어, 부팅이미지 전송부(1125)는 상기 제1 코어(10)의 특정 위치에 저장된 제2 코어(20)의 부팅이미지를, PCIe 버스(40)를 통해 제2 코어(20)에 전송한다. 상기 전송된 제2 코어(20)의 부팅이미지는 메모리 매핑 정보에 따라 상기 제1 코어(10)의 메모리(120)의 특정 위치에 매핑된 제2 코어(20)의 메모리(220)의 위치에 저장될 수 있다.
부팅 레지스터 설정부(1126)는 제2 코어(20)의 부팅이미지의 전송이 완료되면, 제2 코어(20)의 부팅 레지스터를 인에이블 상태로 설정한다. 제2 코어(20)의 부팅 레지스터가 인에이블 상태로 변경되면, 제2 코어(20)는 전송된 부팅이미지에 기초하여 부팅을 시작한다.
도 4는 본 발명의 일 실시예에 따른 플래시 메모리 맵을 도시한 것이다.
도 4를 참조하면, 플래시 메모리(30)에는 제1 코어(10)의 부팅 이미지(41)와, 제2 코어(20)의 부팅 이미지(42)가 저장된다. 부팅이미지는, 부팅에 필요한 정보를 포함하며, 부트로더, 커널 이미지, 스크립트, 파일시스템 이미지 등을 포함한다. 여기서, 커널 이미지는 커널을 부팅하기 위한 정보를 포함하는 이미지이고, 스크립트는 부트로더가 부팅되면서 수행하는 각종 설정 정보, 커널 이미지 및 파일 시스템을 로딩할 메모리의 위치 등을 포함할 수 있다.
도 4를 참조하면, 부팅 이미지(41)의 경우 실제 사용되는 파일명을 도면에 도시하였으나, 상기 파일명은 예시일 뿐이므로 본 발명의 실시예들이 이에 한정되는 것은 아니다. 또한, 부팅이미지(41)에 포함된 dtb는 코어의 종류에 따라 생략 가능하다.
도 4를 참조하면, 플래시 메모리(30)의 첫번째 주소에는 제1 코어(10)의 부트로더(411)가 저장된다. 제1 코어(10)의 전원이 켜지면 부트로더 실행부(111)는 플래시 메모리(30)의 첫번째 주소에 있는 파일을 메모리(120)로 불러와서 실행하게 된다.
한편, 제1 코어(10)의 부트로더가 실행되고 나서 메모리 매핑이 완료되면, 부팅 이미지 로딩부(1124)는 제1 코어(10)의 부팅이미지(41)와 제2 코어(20)의 부팅이미지(42)를 메모리(120)로 로딩한다. 이 때, 제1 코어(10)의 부트로더는 부트로더 실행부(111)에 의해 이미 로딩되었으므로, 부팅이미지 로딩부(1124)는 제1 코어(10)의 부팅이미지(41) 중 부트로더(411)를 제외한 나머지 이미지를 로딩할 수 있다. 그러나, 제2 코어(20)의 부팅이미지(42)는 부트로더(421)를 포함하여 모두 로딩된다.
만약, 제2 코어(20)의 연결이 인식되지 않아 메모리 매핑이 되지 않은 상태라면, 부팅이미지 로딩부(1124)는 제1 코어(10)의 부팅이미지(41)만 로딩하고, 제2 코어(20)의 부팅이미지의 로딩을 생략할 수 있다.
도 4를 참조하면, 플래시 메모리(30)의 첫번째 주소에는 제1 코어(10)의 부트로더인 u-boot가 저장된다. 제1 코어(10)의 u-boot는 부트로더 실행부(111)에 의해 메모리(120)에 로딩된 후 실행된다.
도 5는 본 발명의 일 실시예에 따른 메모리 매핑의 예를 도시한 것이다.
도 5는, 제1 코어(10)의 메모리(120)의 주소(51)와 제2 코어(20)의 메모리(220)의 주소(52)가 메모리 매핑부(1123)에 의해 서로 매핑된 예를 도시한 것이다. 도 5를 참조하면, 메모리(220)의 주소(52)에 저장될 이미지(53)들이 도시되었다.
도 5를 참조하면, PCIe 버스를 통해 제2 코어(20)의 부팅이미지가 제1 코어(10)의 메모리(120)로부터 제2 코어(20)의 메모리(220)에 전송되는데, 상세히는 다음과 같다. 제1 코어(10)의 부팅이미지 로딩부(1124)는 PCIe의 BAR1, BAR2, BAR3에 해당하는 메모리(120)의 위치에 제2 코어(20)의 부팅이미지를 기록한다. 부팅이미지 전송부(1125)는 메모리 매핑에 따라, BAR1, BAR2, BAR3에 할당된 메모리(120)의 위치에 기록된 데이터를 PCIe 버스를 통해 전송하고, 전송된 데이터는 BAR1, BAR2, BAR3에 할당된 메모리(220)의 위치에 동일하게 기록된다.
도 5를 참조하면, 제2 코어(20)의 부트로더는 메모리(220)의 0x40400000위치에 저장되고, 제2 코어(20)의 부팅 레지스터가 인에이블 상태로 변경되면, 부트로더 실행부(211)는 메모리(220)의 0x40400000위치에 저장된 부트로더를 실행할 수 있다.
도 6은 본 발명의 일 실시예에 따라 제1 코어에서 수행되는 다중시스템 부팅 방법의 흐름도이다.
도 6을 참조하면, 단계 61에서 부트로더 실행부(111)는 제1 코어(10)의 부트로더를 실행한다.
단계 62에서 네트워크 활성화부(1121)는 네트워크 인터페이스를 인에이블(enable) 상태로 설정한다. 예를 들어, 단계 62에서 네트워크 활성화부(1121)는 제1 코어의 PCIe 인터페이스 및 제2 코어의 PCIe 인터페이스를 인에이블(enable) 상태로 설정한다. 네트워크 활성화부(1121)는 하드웨어적으로 연결된 PCIe의 BAR0 레지스터를 이용하여 제2 코어의 PCIe 인터페이스의 인에이블 레지스터를 설정할 수 있다.
단계 63에서 장치 인식부(1122)는 네트워크 인터페이스에 연결된 제2 코어를 인식한다. 단계 63에서 제2 코어가 인식되면 단계 64로 진행한다. 제2 코어가 인식되지 않으면 단계 631로 진행한다.
단계 64에서 메모리 매핑부(1123)는 제1 코어의 메모리와 제2 코어의 메모리를 매핑한다. 매핑 정보는 하드웨어적으로 연결된 PCIe의 BAR0 레지스터를 통해 제2 코어에 전송될 수 있다. 매핑 정보에 기초하여 제1 코어의 메모리와 제2 코어의 메모리가 소프트웨어적으로 매핑될 수 있다.
단계 65에서 부팅이미지 로딩부(1124)는 제1 코어의 부팅이미지와 제2 코어의 부팅이미지를 로딩한다. 단계 65에서 부팅이미지 로딩부(1124)는 제1 코어의 부팅이미지와 제2 코어의 부팅이미지를 플래시 메모리로부터 제1 코어의 메모리에 로딩할 수 있다. 이 때, 제1 코어의 부트로더는 부트로더 실행부(111)에 의해 이미 로딩되었을 수 있으므로, 이 경우 부팅이미지 로딩부(1124)는 제1 코어의 부팅이미지 중 부트로더의 로딩을 생략할 수 있다.
본 발명의 일 실시예에 따라, 단계 65에서 부팅이미지 로딩부(1124)는 제2 코어의 부팅이미지를 제1 코어의 메모리에 로딩함에 있어서, 특정 위치에 로딩할 수 있다. 상기 특정 위치는, 제2 코어의 부팅이미지가 저장되기로 미리 지정된 제2 코어의 메모리의 위치에 매핑된, 제1 코어의 메모리의 특정 위치일 수 있다.
단계 66에서 부팅이미지 전송부(1125)는 단계 65에 의해 로딩된 제2 코어의 부팅이미지를 제2 코어의 메모리로 전송한다. 상세히, 단계 66에서 부팅이미지 전송부(1125)는 제1 코어의 메모리의 소정의 위치에 로딩된 제2 코어의 부팅이미지를, 제1 코어의 메모리의 상기 소정의 위치에 매핑된 제2 코어의 메모리의 위치에 기록함으로써 제2 코어의 부팅이미지를 네트워크(예를 들어, PCIe)를 통해 제2 코어에 전송할 수 있다.
단계 67에서 부팅이미지 전송부(1125)는 부팅이미지의 전송이 완료되었는가의 여부를 판별하며, 전송이 완료되면 단계 68로 진행하고, 전송이 완료되지 않으면, 즉 전송에 실패하면 단계 632로 진행한다.
단계 68에서 부팅 레지스터 설정부(1126)는 제2 코어의 부팅 레지스터를 인에이블 상태로 변경한다. 제2 코어는 부팅 레지스터가 인에이블 상태로 변경되면 부팅을 시작한다.
단계 69에서 부팅부(113)는 제1 코어의 커널을 부팅한다.
한편, 단계 63에서 제2 코어가 인식되지 않으면 단계 631로 진행하게 되는데, 단계 631에서 부팅이미지 로딩부(1124)는 제1 코어(10)의 부팅 이미지를 로딩한다. 단계 632에서 부팅 제어부(112)는 실패 로그를 저장한다. 실패 로그는 제1 코어의 부팅 과정에서 화면에 출력될 수 있다. 단계 67에서 부팅이미지의 전송에 실패했다고 판별되는 경우에도 단계 632으로 진행되어, 부팅 제어부(112)에 의해 실패 로그가 저장된다.
단계 632에 의해 실패 로그가 저장되면, 단계 69로 진행하여 제1 코어의 커널을 부팅한다.
제1 코어(10)의 부팅이 완료되면 제1 코어(10)에서 프로그램들이 동작하게 된다.
도 7은 본 발명의 일 실시예에 따라 제2 코어에서 수행되는 다중시스템 부팅 방법의 흐름도이다.
도 7을 참조하면, 단계 71에서 제2 코어의 메모리에 제2 코어의 부팅이미지가 로딩된다. 상세히, 제1 코어의 부팅이미지 전송부(1125)에 의해, 제2 코어의 메모리에 제2 코어의 부팅이미지가 로딩된다.
제2 코어의 부팅이미지의 로딩이 완료되면, 제1 코어의 부팅 레지스터 설정부(1126)는 제2 코어의 부팅 레지스터를 인에이블 상태로 설정한다.
단계 72에서 제2 코어의 부트로더 실행부(211)는 부팅 레지스터가 인에이블 상태로 설정되면 제2 코어의 메모리에 로딩된 제2 코어의 부트로더를 실행한다. 단계 71에서 저장된 부팅이미지는 부트로더를 포함한다. 상세히, 부트로더 실행부(211)는 미리 지정된 제2 코어의 메모리의 소정 위치에 기록된 제2 코어의 부팅이미지에 포함된 제2 코어의 부트로더를 실행한다.
단계 73에서 제2 코어의 부팅부(213)는 제2 코어의 커널을 부팅한다.
제2 코어(20)의 부팅이 완료되면 제2 코어(20)에서 프로그램들이 동작하게 된다.
도 6 및 도 7에 도시된 각각의 다중시스템 부팅 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크, 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
전술한 본 발명의 실시예들에 따르면, 적어도 두 개의 코어를 포함하는 다중시스템에서 각 코어를 부팅하는 방법에 있어서, 하나의 플래시 메모리를 이용하여 부팅할 수 있으므로 비용이 절감되고 관리가 용이하다. 전술한 본 발명의 실시예들에 따르면, 적어도 두 개의 코어를 포함하는 다중시스템에서 각 코어를 부팅하는 방법에 있어서, 하나의 코어의 부팅이 완료되기 전에 다른 코어의 부팅이 시작될 수 있으므로, 전체 시스템을 빠르게 부팅할 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
1: 다중시스템
10: 제1 코어
20: 제2 코어
30: 플래시 메모리
110, 210: CPU
120, 220: 메모리
130, 230: PCIe 인터페이스
140, 240: 시스템 버스
40: PCIe 버스

Claims (18)

  1. 제1 코어, 및 제2 코어를 포함하는 다중시스템에서 상기 제1 코어에 의한 상기 다중시스템의 부팅 방법에 있어서,
    상기 제1 코어의 부트로더를 실행하는 단계;
    상기 제1 코어의 네트워크 인터페이스를 인에이블(enable) 상태로 설정하는 단계;
    상기 제1 코어의 네트워크 인터페이스에 연결된 상기 제2 코어를 인식하는 단계;
    상기 제2 코어가 인식되면, 상기 제1 코어의 제1 메모리와 상기 제2 코어의 제2 메모리를 매핑하는 단계;
    상기 제1 코어의 부팅이미지와 상기 제2 코어의 부팅이미지를 상기 제1 메모리 상에 로딩하는 단계; 및
    상기 제1 메모리 상에 로딩된 상기 제2 코어의 부팅이미지를 네트워크를 통해 상기 제2 코어에 전송하는 단계;를 포함하고,
    상기 제1 메모리는 휘발성 메모리인,
    다중시스템 부팅 방법.
  2. 제1 항에 있어서,
    상기 네트워크는 PCIe(PCI express)인 것을 특징으로 하는
    다중시스템 부팅 방법.
  3. 제1 항에 있어서,
    상기 전송하는 단계가 완료되면 상기 제2 코어의 부팅 레지스터를 인에이블 상태로 설정하는 단계;를 더 포함하는
    다중시스템 부팅 방법.
  4. 제1 항에 있어서,
    상기 전송하는 단계가 완료되면 상기 제1 코어의 커널을 부팅하는 단계;를 더 포함하는
    다중시스템 부팅 방법.
  5. 제4 항에 있어서,
    상기 부팅하는 단계;는
    상기 인식하는 단계에서 상기 제2 코어가 인식되는 경우에는, 상기 전송하는 단계 이후에 상기 제1 코어의 커널을 부팅하고,
    상기 인식하는 단계에서 상기 제2 코어가 인식되지 않는 경우에는, 상기 로딩하는 단계 이후에 상기 제1 코어의 커널을 부팅하는
    다중시스템 부팅 방법.
  6. 제1 항에 있어서,
    상기 로딩하는 단계는, 상기 제2 코어의 부팅이미지를 상기 제1 메모리의 소정의 위치에 로딩하고,
    상기 전송하는 단계는
    상기 제1 메모리의 소정의 위치에 로딩된 상기 제2 코어의 부팅이미지를, 상기 제1 메모리의 소정의 위치에 매핑된 상기 제2 메모리의 위치에 기록함으로써 상기 제2 코어의 부팅이미지를 상기 제2 코어에 전송하는
    다중시스템 부팅 방법.
  7. 제1 항에 있어서,
    상기 다중시스템은 플래시 메모리를 더 포함하고,
    상기 로딩하는 단계는 상기 제1 코어의 부팅이미지와 상기 제2 코어의 부팅이미지를 상기 플래시 메모리로부터 로딩하는
    다중시스템 부팅 방법.
  8. 제1 코어, 및 제2 코어를 포함하는 다중시스템에 있어서,
    상기 제1 코어는,
    상기 제1 코어의 부트로더를 실행하는 제1 부트로더 실행부;
    상기 제1 코어의 네트워크 인터페이스를 인에이블 상태로 설정하는 네트워크 활성화부;
    상기 제1 코어의 네트워크 인터페이스에 연결된 상기 제2 코어를 인식하는 장치 인식부;
    상기 제2 코어가 인식되면, 상기 제1 코어의 제1 메모리와 상기 제2 코어의 제2 메모리를 매핑시키는 메모리 매핑부;
    상기 제1 코어의 부팅이미지와 상기 제2 코어의 부팅이미지를 상기 제1 메모리 상에 로딩하는 부팅이미지 로딩부; 및
    상기 제1 메모리 상에 로딩된 상기 제2 코어의 부팅이미지를 네트워크를 통해 상기 제2 코어에 전송하는 부팅이미지 전송부;를 포함하고,
    상기 제1 메모리는 휘발성 메모리인,
    다중시스템.
  9. 제8 항에 있어서,
    상기 네트워크는 PCIe(PCI express)인 것을 특징으로 하는
    다중시스템.
  10. 제8 항에 있어서,
    상기 제1 코어는,
    상기 제2 코어의 부팅이미지의 전송이 완료되면 상기 제2 코어의 부팅 레지스터를 인에이블 상태로 설정하는 부팅 레지스터 설정부;를 더 포함하는
    다중시스템.
  11. 제10 항에 있어서,
    상기 제2 코어는,
    상기 제2 코어의 부팅 레지스터가 인에이블 상태로 설정되면, 상기 제2 코어의 부팅이미지에 포함된 상기 제2 코어의 부트로더를 실행하는 제2 부트로더 실행부; 및
    상기 제2 코어의 부팅이미지에 기초하여 상기 제2 코어의 커널을 부팅하는 제2 부팅부;를 포함하는
    다중시스템.
  12. 제8 항에 있어서,
    상기 제1 코어는
    상기 제1 코어의 부팅이미지에 기초하여 상기 제1 코어의 커널을 부팅하는 제1 부팅부;를 더 포함하는
    다중시스템.
  13. 제12 항에 있어서,
    상기 제1 부팅부;는
    상기 장치 인식부에 의해 상기 제2 코어가 인식되는 경우에는, 상기 제2 코어의 부팅이미지의 전송 후 상기 제1 코어의 커널을 부팅하고,
    상기 장치 인식부에 의해 상기 제2 코어가 인식되지 않는 경우에는, 상기 제1 코어의 부팅이미지의 로딩 후 상기 제1 코어의 커널을 부팅하는
    다중시스템.
  14. 제8 항에 있어서,
    상기 부팅이미지 로딩부;는, 상기 제2 코어의 부팅이미지를 상기 제1 메모리의 소정의 위치에 로딩하고,
    상기 부팅이미지 전송부;는
    상기 제1 메모리의 소정의 위치에 로딩된 상기 제2 코어의 부팅이미지를, 상기 제1 메모리의 소정의 위치에 매핑된 상기 제2 메모리의 소정의 위치에 기록함으로써 상기 제2 코어의 부팅이미지를 상기 제2 코어에 전송하는
    다중시스템.
  15. 제14 항에 있어서,
    상기 제2 코어는,
    상기 제2 코어의 부팅 레지스터가 인에이블 상태로 설정되면, 상기 제2 코어의 부팅이미지에 포함된 상기 제2 코어의 부트로더를 실행하는 제2 부트로더 실행부;를 포함하고,
    상기 제2 부트로더 실행부;는
    상기 제2 메모리의 소정의 위치에 기록된 상기 제2 코어의 부팅이미지에 포함된 상기 제2 코어의 부트로더를 실행하는,
    다중시스템.
  16. 제8 항에 있어서,
    상기 다중시스템은 플래시 메모리를 더 포함하고,
    상기 부팅이미지 로딩부;는
    상기 제1 코어의 부팅이미지와 상기 제2 코어의 부팅이미지를 상기 플래시 메모리로부터 로딩하는
    다중시스템.
  17. 제 1 항 내지 제 7 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 컴퓨터 프로그램을 저장한 컴퓨터로 읽을 수 있는 기록매체.
  18. 제1 항에 있어서,
    상기 제1 메모리와 상기 제2 메모리의 메모리 주소의 매핑 관계를 보여주는 매핑 정보를 상기 제2 코어에 전송하는 단계;를 더 포함하는 다중시스템 부팅 방법.

KR1020130160702A 2013-12-20 2013-12-20 다중시스템 및 이의 부팅 방법 KR102116096B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130160702A KR102116096B1 (ko) 2013-12-20 2013-12-20 다중시스템 및 이의 부팅 방법
US14/552,994 US9678759B2 (en) 2013-12-20 2014-11-25 Multisystem and method of booting the same
CN201410804976.4A CN104731577B (zh) 2013-12-20 2014-12-19 多系统和启动所述多系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130160702A KR102116096B1 (ko) 2013-12-20 2013-12-20 다중시스템 및 이의 부팅 방법

Publications (2)

Publication Number Publication Date
KR20150072963A KR20150072963A (ko) 2015-06-30
KR102116096B1 true KR102116096B1 (ko) 2020-05-27

Family

ID=53400120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130160702A KR102116096B1 (ko) 2013-12-20 2013-12-20 다중시스템 및 이의 부팅 방법

Country Status (3)

Country Link
US (1) US9678759B2 (ko)
KR (1) KR102116096B1 (ko)
CN (1) CN104731577B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293825A (zh) * 2016-08-05 2017-01-04 武汉虹信通信技术有限责任公司 一种基于硬件信号量的多核启动同步方法
CN106776292A (zh) * 2016-11-29 2017-05-31 北京元心科技有限公司 多系统开启及登录的方法及装置
CN109271203B (zh) * 2017-07-14 2022-03-15 龙芯中科(西安)科技有限公司 内核加载方法、装置及存储介质
CN113238819B (zh) * 2021-07-09 2021-09-21 成都菁蓉联创科技有限公司 一种适用于U-Boot的驱动文件动态加载方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080307215A1 (en) * 2007-06-05 2008-12-11 Hewlett-Packard Development Company, L.P. Remote computer operating system upgrade
US20120089814A1 (en) 2010-03-22 2012-04-12 Qualcomm Incorporated Inter-Processor Protocol in a Multi-Processor System
US20130124840A1 (en) 2011-11-11 2013-05-16 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990086858A (ko) 1998-05-30 1999-12-15 강병호 프로세서 중재 장치
JP2007213292A (ja) 2006-02-09 2007-08-23 Nec Electronics Corp マルチプロセッサシステム及びスレーブシステムの起動方法
US7673131B2 (en) * 2006-05-05 2010-03-02 Microsoft Corporation Booting an operating system in discrete stages
DE112009000612A5 (de) 2008-03-14 2012-08-02 Mitsubishi Electric Corp. Multi-Betriebssystem-Booteinrichtung (OS), Multi-OS-Boot-Programm, Aufzeichnungsmedium und Multi-OS-Bootverfahren
CN102110072B (zh) 2009-12-29 2013-06-05 中兴通讯股份有限公司 一种多处理器完全互访的方法及系统
US8838949B2 (en) * 2010-03-22 2014-09-16 Qualcomm Incorporated Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system
US9021141B2 (en) * 2013-08-20 2015-04-28 Lsi Corporation Data storage controller and method for exposing information stored in a data storage controller to a host system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080307215A1 (en) * 2007-06-05 2008-12-11 Hewlett-Packard Development Company, L.P. Remote computer operating system upgrade
US20120089814A1 (en) 2010-03-22 2012-04-12 Qualcomm Incorporated Inter-Processor Protocol in a Multi-Processor System
US20130124840A1 (en) 2011-11-11 2013-05-16 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust

Also Published As

Publication number Publication date
US9678759B2 (en) 2017-06-13
CN104731577B (zh) 2019-06-18
US20150178094A1 (en) 2015-06-25
KR20150072963A (ko) 2015-06-30
CN104731577A (zh) 2015-06-24

Similar Documents

Publication Publication Date Title
CN106990958B (zh) 一种扩展组件、电子设备及启动方法
KR102111741B1 (ko) 임베디드 멀티미디어 카드 및 이의 동작 방법
US10866737B2 (en) Apparatus, method and system to store information for a solid state drive
US11507421B2 (en) Information handling system and method to allocate peripheral component interconnect express (PCIe) bus resources
US20140164666A1 (en) Server and method for sharing peripheral component interconnect express interface
US20120042307A1 (en) System and method for creating memory interface of computing device
WO2018157588A1 (zh) 固件烧录方法、系统、计算机设备和存储介质
US20070157013A1 (en) Storage medium to manage a master boot record and a method of booting a computer system using a storage medium
WO2020108271A1 (zh) 应用程序更新方法、设备和装置及存储介质
US10607714B2 (en) Verification of storage media upon deployment
US10572434B2 (en) Intelligent certificate discovery in physical and virtualized networks
KR102116096B1 (ko) 다중시스템 및 이의 부팅 방법
US20150149751A1 (en) Cpu-based measured boot
US20120060023A1 (en) Methods for booting an operating system using non-volatile memory
CN115658160A (zh) 基于多核异构soc的多操作系统升级方法、装置及系统
US10491736B2 (en) Computer system and method thereof for bluetooth data sharing between UEFI firmware and OS
US20140164845A1 (en) Host computer and method for testing sas expanders
US8499142B1 (en) UEFI boot loader for loading non-UEFI compliant operating systems
US9361123B2 (en) Boot from logical volume spanning plurality of PCI devices
US20150326684A1 (en) System and method of accessing and controlling a co-processor and/or input/output device via remote direct memory access
US10628309B1 (en) Loading a serial presence detect table according to jumper settings
US20120005464A1 (en) Start up processing method, information processing apparatus, and computer-readable storage medium storing program
US10838737B1 (en) Restoration of memory content to restore machine state
JP6898527B2 (ja) 電子装置を介したオペレーティングシステムの修復
US20160077959A1 (en) System and Method for Sharing a Solid-State Non-Volatile Memory Resource

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant