KR101173539B1 - 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법 - Google Patents

멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법 Download PDF

Info

Publication number
KR101173539B1
KR101173539B1 KR1020060014787A KR20060014787A KR101173539B1 KR 101173539 B1 KR101173539 B1 KR 101173539B1 KR 1020060014787 A KR1020060014787 A KR 1020060014787A KR 20060014787 A KR20060014787 A KR 20060014787A KR 101173539 B1 KR101173539 B1 KR 101173539B1
Authority
KR
South Korea
Prior art keywords
processor
memory
boot code
boot
signal
Prior art date
Application number
KR1020060014787A
Other languages
English (en)
Other versions
KR20070082229A (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 KR1020060014787A priority Critical patent/KR101173539B1/ko
Priority to US11/704,202 priority patent/US7930530B2/en
Publication of KR20070082229A publication Critical patent/KR20070082229A/ko
Priority to US13/064,200 priority patent/US8650388B2/en
Application granted granted Critical
Publication of KR101173539B1 publication Critical patent/KR101173539B1/ko
Priority to US14/174,151 priority patent/US20140156984A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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/177Initialisation or configuration control

Landscapes

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

Abstract

본 발명의 멀티프로세서 시스템은 외부로부터 제 1 및 제 2 아이피 블럭드을 포함한다. 제 1 아이피 블럭은 부트 코드를 입력받아 초기화 동작을 수행하는 제 1 프로세서를 가지며, 제 2 아이피 블럭은 부트 코드를 저장하는 메모리와, 제 1 프로세서의 제어에 따라 메모리로부터 부트 코드를 독출하는 제 2 프로세서를 포함한다. 여기서, 제 2 프로세서는 독출된 부트 코드를 저장하는 적어도 하나의 인터페이스 버퍼를 포함하며, 인터페이스 버퍼는 제 1 프로세서에 의해 인에이블 된다. 또한, 상기 메모리는 비휘발성 메모리이며, 상기 메모리는 낸드 플래시 메모리이다.

Description

멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화 방법{Multi-processor System and Method of initializing thereof}
도 1은 종래 기술에 따른 멀티프로세서 시스템을 나타내는 블럭도;
도 2는 본 발명의 일 실시예에 따른 멀티프로세서 시스템을 나타내는 블럭도;
도 3은 도 2에 도시된 멀티프로세서 시스템의 동작 특성을 나타내는 흐름도;
도 4는 본 발명의 다른 실시예에 따른 멀티프로세서 시스템을 나타내는 블럭도; 그리고
도 5는 도 4에 도시된 멀티프로세서 시스템의 동작 특성을 나타내는 흐름도이다.
*도면의 주요 부분에 대한 부호의 설명*
110, 130, 210, 220, 230: IP 블럭들
150, 250: 시스템 버스
111, 131, 211, 221, 231: 프로세서
1311, 2311: 호스트 인터페이스
1313, 2131: 메모리 컨트롤러
115, 135, 215, 225, 235: 로컬 버스
113, 133, 213, 223, 233: 디램
137, 237: 부트 메모리
본 발명은 모바일 장치에 관한 것으로, 좀 더 구체적으로는 멀티프로세서 시스템을 포함하는 모바일 장치 및 멀티프로세서 시스템의 초기화 방법에 관한 것이다.
PDA와 같은 모바일 장치들은 다양한 기능을 지원하기 위해서 두 개 이상의 프로세서를 사용하게 된다. 모바일 장치가 켜질 때, 각각의 프로세서들은 프로세서가 속한 IP 블럭들을 초기화하기 위한 프로그램(부트 코드)을 실행한다. 일반적으로, 시스템 초기화 작업은 맞춤 설정(Custom Setting, 예를 들면 CMOS 체크)을 점검하고, 인터럽트 핸들러 및 장치 드라이버들을 로딩하는 작업이다. 또한, 초기화 작업에서는 레지스터들과 장치 관리를 초기화하고, 각각의 IP 블럭에 포함되는 구성요소들 또는 주변 장치들에 대한 파워-온-셀프-테스트(POST)를 수행한다.
부트 코드는 ROM, EPROM, 또는 NOR 플래시 메모리 등에 저장된다. 부트 코드를 ROM이나 EPROM에 저장하는 경우에는 변경이나 갱신을 쉽게 할 수 없다는 단점이 있다. 바이오스 프로그램의 저장 매체로서 NOR 플래시 메모리를 쓰는 경우에는 저장된 프로그램에 대한 변경 및 소거 작업을 쉽게 수행할 수 있다는 장점이 있다.
도 1 에는 종래기술에 따른 모바일 장치의 멀티프로세서 시스템을 도시하는 블럭도이다. 도 1 을 참조하면, 멀티프로세서 시스템은 시스템 버스(60)를 통해 연결된 IP(Intellectual Property) 블럭들(10, 30, 50)을 포함한다. IP 블럭은 일정한 기능을 가지도록 설계된 반도체 회로 또는 모듈, 블럭을 의미한다. 도 1에서는 NOR 플래시 메모리(15, 35)를 바이오스 프로그램(부트 코드)의 저장매체(부트 메모리)로 이용하는 프로세서들(11, 31)이 도시되어 있다. 각각의 IP 블럭 내(10, 30)의 프로세서들(11, 31)은 시스템 메모리로서 DRAM(13, 33)을 사용한다. 각각의 IP 블럭들(10, 30) 내의 프로세서들(11,31)과 디램들(13, 33), 그리고 NOR 플래시 메모리들(15, 35)은 로컬 버스(LB1, LB2)에 의해 연결된다. IP 블럭들(10, 30) 각각은 기타 주변장치를 더 포함할 수 있다.
상술한 바와 같이 NOR 플래시 메모리는 저장된 프로그램에 대한 변경 및 갱신을 용이하게 할 수 있으나, 저장 용량에 대비 제조 단가가 비싸고 사이즈가 크다는 단점이 있다. 따라서, 도 1 에 도시한 바와 같이, 여러개의 프로세서가 NOR 플래시를 이용한 부트 메모리를 별개로 포함하는 경우에 제조단가 및 사이즈 면에서 문제가 된다. 특히, 도 1의 멀티 프로세서 시스템이 모바일 휴대폰에 적용되는 경우, 소형화 및 다기능 추세에 따른 모바일 장치를 구현하는데 문제가 된다.
따라서, 본 발명의 목적은 모바일 장치의 소형화 및 다기능 요구에 적합한 멀티프로세서 시스템 및 멀티프로세서 시스템의 초기화 방법을 제공하는 데 있다.
본 발명의 다른 목적은, NAND 플래시 메모리를 부트 메모리로 이용할 수 있 는 멀티프로세서 시스템을 제공하는 데 있다.
(구성)
상술한 바와 같은 본 발명의 목적을 달성하기 위한 본 발명의 특징에 의하면, 멀티프로세서 시스템은 외부로부터 부트 코드를 입력받아 초기화 동작을 수행하는 제 1 프로세서를 가지는 제 1 아이피 블럭과, 상기 부트 코드를 저장하는 메모리와, 상기 제 1 프로세서의 제어에 따라 상기 메모리로부터 상기 부트 코드를 독출하는 제 2 프로세서를 가지는 제 2 아이피블럭을 포함한다.
일 실시예에 있어서, 상기 제 2 프로세서는 상기 독출된 부트 코드를 저장하는 적어도 하나의 인터페이스 버퍼를 포함한다.
일 실시예에 있어서, 상기 인터페이스 버퍼는 상기 제 1 프로세서에 의해 인에이블 된다.
일 실시예에 있어서, 상기 메모리는 비휘발성 메모리이며, 상기 메모리는 낸드 플래시 메모리이다.
일 실시예에 있어서, 상기 제 1 프로세서는 모뎀 프로세서와 그래픽 유저 인터페이스를 위한 어플리케이션 프로세서 중 어느 하나이다.
상기 목적을 달성하기 위한 본 발명의 다른 특징에 의하면, 멀티프로세서 시스템은 상기 복수의 아이피 블럭들 중 하나의 아이피 블럭은 복수의 부트 코드들을 저장하는 메모리와, 상기 메모리로부터 상기 부트 코드들을 독출하는 제 1 프로세서를 포함한다. 여기서, 나머지 아이피 블럭들 각각은 상기 제 1 프로세서로부터 상기 부트 코드들 중 하나를 입력받아 초기화 동작을 수행하는 제 2 프로세서를 포함한다.
일 실시예에 있어서, 상기 제 1 프로세서는 상기 독출된 부트 코드들을 저장하는 인터페이스 버퍼를 포함한다.
일 실시예에 있어서, 상기 제 1 프로세서는 상기 제 2 프로세서로부터의 명령에 따라 상기 인터페이스 버퍼를 인에이블시킨다.
일 실시예에 있어서, 상기 메모리는 낸드 플래시 메모리이다.
상기 목적을 달성하기 위한 본 발명의 다른 특징에 의하면, 멀티프로세서 시스템은 부트 코드를 저장하는 메모리와; 시스템 초기화 신호가 입력되면, 상기 부트 코드를 입력받기 위한 제어명령을 발생하는 제 1 프로세서와; 그리고 상기 시스템 초기화 신호에 응답하여 상기 메모리로부터 상기 부트 코드를 독출하고, 상기 제어명령에 응답하여 상기 부트 코드를 출력하는 제 2 프로세서를 포함한다.
일 실시예에 있어서, 상기 제 2 프로세서는 상기 메모리로부터 독출된 부트 코드를 출력하는 인터페이스 버퍼와; 그리고 상기 인터페이스 버퍼로부터 출력된 상기 부트 코드를 상기 제 1 프로세서에 전달하는 인터페이스 장치를 포함한다.
일 실시예에 있어서, 상기 시스템 초기화 신호는 파워-업 신호와 시스템 리셋 신호 중 어느 하나를 포함하며, 상기 메모리는 낸드 플래시 메모리이다.
상기 목적을 달성하기 위한 본 발명의 다른 특징에 의하면, 부트 코드를 저장하는 메모리와, 상기 메모리로부터 상기 부트 코드를 독출하는 제 1 프로세서와, 시스템 버스를 경유하여 상기 제 1 프로세서에 접속하는 제 2 프로세서를 포함하는 멀티프로세서 시스템의 초기화 방법은, 상기 제 2 프로세서가 시스템 초기화신호에 응답하여 상기 부트 코드를 입력받기 위한 명령을 발생하는 단계와; 상기 제 1 프로세서가 상기 명령에 응답하여 상기 메모리로부터 상기 부트 코드를 독출하는 단계와; 그리고 상기 제 2 프로세서가 상기 부트 코드를 입력받아 초기화 동작을 수행하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 다른 특징에 의하면, 부트 코드를 저장하는 메모리와, 상기 메모리로부터 상기 부트 코드를 독출하는 클라이언트 프로세서와, 시스템 버스를 경유하여 상기 클라이언트 프로세서에 접속하는 호스트 프로세서를 포함하는 멀티프로세서 시스템의 초기화 방법은, 시스템 초기화 신호에 응답하여, 상기 클라이언트 프로세서가 상기 메모리로부터 상기 부트 코드를 독출하여 인터페이스 버퍼에 저장하는 단계와; 상기 시스템 초기화 신호에 응답하여, 상기 호스트 프로세서가 대응하는 부트 코드를 입력받기 위한 명령을 발생하는 단계와; 상기 클라이언트 프로세서가 상기 명령에 응답하여 상기 인터페이스 버퍼를 활성화하고, 상기 대응하는 부트 코드를 출력하는 단계와; 그리고 상기 호스트 프로세서가 상기 대응하는 부트 코드를 입력받아 초기화 동작을 수행하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 다른 특징에 의하면, 부트 코드를 저장하는 메모리와, 상기 메모리로부터 상기 부트 코드를 독출하는 클라이언트 프로세서와, 시스템 버스를 경유하여 상기 클라이언트 프로세서에 접속하는 복수의 호스트 프로세서들을 포함하는 멀티프로세서 시스템의 초기화 방법은, 파워-업 신호 및 시스템 리셋 신호에 응답하여 상기 클라이언트 프로세서가 상기 메모리로부터 상기 부트 코드를 독출하여 인터페이스 버퍼에 저장하고, 상기 시스템 리셋 신호를 지연하여 상기 복수의 호스트 프로세서들 각각에 순차적으로 지연된 지연 리셋 신호를 발생하는 단계와; 상기 호스트 프로세서들 각각이 상기 시스템 초기화 신호 및 상기 지연 리셋 신호에 응답하여, 대응하는 부트 코드를 입력받기 위한 명령을 순차적으로 발생하는 단계와; 상기 클라이언트 프로세서가 상기 명령에 응답하여 상기 인터페이스 버퍼를 활성화하고, 상기 호스트 프로세서들 각각에 대응하는 부트 코드를 출력하는 단계와; 그리고 상기 호스트 프로세서들 각각이 상기 대응하는 부트 코드를 입력받아 초기화 동작을 수행단계를 포함한다.
(실시예)
이하 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명한다. 그러나, 본 발명의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상술하는 실시예들로 인해 한정되는 것으로 해석되어서는 안된다. 본 발명의 실시예들은 당업계에서 평균적인 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위해 과장된 것이며, 도면상에서 동일한 부호로 표시된 요소는 동일한 요소를 의미한다.
도 2는 본 발명의 일 실시예에 따른 멀티프로세서 시스템을 나타내는 블럭도이다. 도 2를 참조하면, 모바일 장치에 적용되는 멀티프로세서 시스템은 적어도 두 개 이상의 IP 블럭들을 포함한다. IP 블럭들(110, 130)은 시스템 버스(150)를 통해 연결된다. IP 블럭들(110, 130)은 각각 로컬 버스(115, 125)를 통해 연결된 프로세 서들(111, 131)과 시스템 메모리들(113, 133)을 포함한다. 시스템 메모리들(113, 133)은 일반적인 DRAM 장치이다. 시스템 메모리들(113, 133)은 프로세서들(111, 131)이 처리하는 데이터, 명령 등을 저장하는 메인 메모리이다. IP 블럭들(110, 130)의 프로세서들(111, 131)은 통신을 위한 모뎀 프로세서, 그래픽 유저 인터페이스(GUI: Grapic User Interface)를 위한 어플리케이션 프로세서, 그리고 디지털 시그널 프로세서(DSP) 중 어느 하나 일 수 있다. 예를 들어, 프로세서A(111)는 GUI 어플리케이션 프로세서이고 프로세서C는 모뎀 프로세서라 한다.
도 2 에 도시된 바와 같이, GUI 어플리케이션 프로세서와 디지털 시그널 프로세서를 각각 포함하는 IP 블럭(110)은 별도의 부트 메모리를 포함하지 않는다. 모뎀 프로세서(131)를 포함하는 IP 블럭(130) 만이 시스템 메모리(133) 이외의 부트 메모리(137)를 포함한다. 도 2에는 부트 메모리(137)가 NAND 플래시 메모리인 경우를 도시하였으나, NOR 플래시 메모리 또는 일반적인 EPROM 등으로 구성될 수도 있다. IP 블럭(130)의 부트 메모리(137)와 시스템 메모리(133)는 로컬 버스(135)를 통해 모뎀 프로세서인 프로세서C(130)에 연결된다. 프로세서C(131)는 호스트 인터페이스 장치(1311)와 메모리 컨트롤러(1313)를 포함한다. 이 경우에, IP 블럭(110)의 프로세서A(111)가 호스트 프로세서가 되고, IP 블럭(131)의 프로세서C(131)가 클라이언트 프로세서가 된다. 즉, 호스트 프로세서A(111)가 클라이언트 프로세서C(131)를 통해 부트 메모리(137)로부터 부트 코드를 전달받는다. 이에 대하여는 이하 상세히 설명한다.
프로세서A(111)는 로컬 버스(115)에 연결된 시스템 메모리(113)를 제어하고 관리한다. 프로세서C(131)는 부트 메모리(137)와 시스템 메모리(131)를 제어하고 관리한다.
로컬버스(115, 135)는 프로세서들(111, 131)과 메모리들(113, 133, 137) 사이의 신호 전송을 위해서 사용된다. 시스템 버스(150)는 호스트 프로세서A(110)와 클라이언트 프로세서C(130) 사이의 신호 전송을 위해서 사용된다. 이 경우에, 시스템 버스(150)는 호스트 프로세서A(111)가 클라이언트 프로세서C(131)를 통해 대응하는 부트 코드를 전달받기 위한 전용 버스일 수도 있다.
부트 메모리(137)는 각각의 IP 블럭들(110, 130)을 초기화하기 위한 프로그램(즉, 부트 코드)를 저장한다. 이외에, 부트 메모리(137)는 OS 프로그램 등의 다른 프로그램 또는 데이터를 저장할 수도 있다.
클라이언트 프로세서C(1311)의 호스트 인터페이스 장치(1311)는 호스트인 프로세서A(111)와 신호(예를 들면, 데이터와 명령)를 교환하기 위한 장치이다. 프로세서C(1311)의 메모리 컨트롤러(1313)는 낸드 플래시 메모리인 부트 메모리(137)와 DRAM인 시스템 메모리(133)의 동작을 제어한다. 예를 들면, 메모리 컨트롤러(1313)는 부트 메모리(137)에 저장된 부트 코드 등의 데이터를 읽어내어 호스트 인터페이스(1311)에 전달한다. 또한, 메모리 컨트롤러(1313)는 아이피 블럭(130)의 시스템 초기화를 위해 부트 메모리(137)로부터 읽어낸 부트 코드 등의 데이터를 로컬 버스(135)를 통해 시스템 메모리(133)에 저장한다.
이하, 도 3을 참조하여 도 2 에 도시된 멀티프로세서 시스템의 동작을 설명한다. 도 3은 도 2에 도시된 멀티프로세서 시스템의 동작 특성을 나타내는 흐름도 이다. 예를 들어, 사용자가 본 발명의 멀티프로세서 시스템이 적용된 모바일 장치의 전원을 온(ON) 시키면, 아이피 블럭들(110, 130) 각각의 프로세서들(111, 131)은 시스템 초기화 신호를 입력받는다(S10). 시스템 초기화 신호는 파워-업 신호와 시스템 리셋 신호를 포함한다. 별개의 부트 메모리(137)를 포함하지 않는 아이피 블럭(110) 내의 호스트 프로세서A(111)는 시스템 초기화 신호에 응답하여 부트 메모리(137)로부터 부트 코드를 전달받기 위한 제어 명령을 클라이언트 프로세서C(131)로 전달한다(S20).
클라이언트 프로세서C(131)의 메모리 컨트롤러(1313)는 호스트 프로세서A(111)로부터의 제어 명령에 따라 부트 메모리(137)로부터 대응하는 부트 코드를 읽어낸다. 그리고 메모리 컨트롤러(1313)는 독출한 부트 코드를 호스트 인터페이스 장치(1311)에 전달한다. 호스트 인터페이스 장치(1311)는 시스템 버스(150)를 경유하여 부트 코드를 호스트 프로세서A(111)로 전달한다(S30). 호스트 프로세서A(111)는 입력된 부트 코드를 시스템 메모리(113)에 복사하고 시스템 초기화 동작을 수행한다(S40).
한편, 클라이언트 프로세서C(131)는 시스템 초기화 신호에 응답하여 부트 메모리(137)로부터 해당하는 부트 코드를 독출한다. 이어서, 클라이언트 프로세서(131)는 해당하는 부트 코드를 시스템 메모리(133)에 복사하고 시스템 초기화 동작을 수행한다.
따라서 본 발명에 따르면, 모바일 장치에 적용되는 멀티프로세서 시스템에서 두 개 이상의 프로세서들이 하나의 부트 메모리를 공유할 할 수 있다. 따라서, 사 이즈 및 제조 가격 면에서 모바일 장치의 소형화 및 다기능 추세에 적합한 멀티프로세서 시스템을 제공할 수 있다. 또한, 복수의 프로세서들 중 일부가 낸드 플래시 메모리의 인터페이스와 다른 메모리 인터페이스를 사용하는 경우에도 낸드 플래시 메모리를 부트 메모리로 공유할 수 있다. 왜냐하면, 낸드 플래시 메모리 인터페이스를 사용하는 프로세서(예를 들면, 프로세서C)를 통해 낸드 플래시 메모리에 저장된 부트 코드를 전달받을 수 있기 때문이다.
도 4는 본 발명의 다른 실시예에 따른 멀티프로세서 시스템을 나타내는 블럭도이다. 도 4를 참조하면, 모바일 장치에 적용되는 멀티프로세서 시스템은 적어도 두 개 이상의 IP 블럭들(210, 220, 230)을 포함한다. IP 블럭들(210, 220, 230)은 시스템 버스(250)를 통해 연결된다. IP 블럭들(210, 220, 230)은 각각 프로세서들(211, 221, 231)과 시스템 메모리들(213, 223, 233)을 포함한다. 시스템 메모리들(213, 223, 233)은 일반적인 DRAM 장치이다. 예를 들어, 프로세서A(111)는 GUI 어플리케이션 프로세서이고 프로세서B(121)는 디지털 시그널 프로세서, 그리고 프로세서C(131)는 모뎀 프로세서이다. 프로세서들(211, 221, 231)은 로컬 버스(215, 225)를 통해 시스템 메모리들(213, 223, 233)과 연결된다. 여기서, 프로세서A(111)와 프로세서B(121)는 호스트 프로세서가 되고, 프로세서C(131)는 클라이언트 프로세서가 된다.
도 4에 도시된 바와 같이, 호스트 프로세서인 프로세서A(211)와 프로세서B(221)를 포함하는 IP 블럭들(210, 220)은 별도의 부트 메모리를 포함하지 않는다. 다만, 클라이언트 프로세서(231)를 포함하는 IP 블럭(230) 만이 부트 메모리(237) 를 포함한다. 도 4에는 부트 메모리(237)가 NAND 플래시 메모리인 경우를 도시하였으나, NOR 플래시 메모리 또는 일반적인 EPROM 등으로 구성될 수도 있다. IP 블럭(230)의 부트 메모리(237)는 로컬 버스(235)를 통해 모뎀 프로세서인 클라이언트 프로세서C(230)에 연결된다. 클라이언트 프로세서C(231)는 호스트 인터페이스 장치(2311)와 메모리 컨트롤러(2313)를 포함한다. 도 2에 도시된 메모리 컨트롤러(1313)과 달리 메모리 컨트롤러(2313)는 인터페이스 버퍼(300)를 더 포함한다.
도 4에 도시된 멀티프로세서 시스템의 각 구성요소들의 기능은 도 2를 참조하여 설명한 바와 동일하므로 중복되는 내용은 생략한다. 이하, 도 5를 참조하여, 도 4에 도시된 멀티프로세서 시스템의 동작을 설명한다. 도 5는 도 4에 도시된 멀티프로세서 시스템의 동작 특성을 나타내는 흐름도이다.
예를 들어, 사용자가 본 발명의 멀티프로세서 시스템이 적용된 모바일 장치의 전원을 온(ON) 시키면, 아이피 블럭들(210, 220, 230) 내의 호스트 프로세서들(211, 221)과 클라이언트 프로세서(231)는 각각 시스템 초기화 신호를 입력받는다(S110). 초기화 신호는 파워-업 신호와 시스템 리셋 신호를 포함한다. 클라이언트 프로세서C(231)의 메모리 컨트롤러(2313)는 상기 호스트 프로세서들(211, 221) 각각에 대응하는 부트 코드를 독출하여 인터페이스 버퍼(300)에 저장한다.
또한, 클라이언트 프로세서C(231)가 부트 메모리(237)로부터 부트 코드를 독출함과 동시에, 호스트 프로세서인 프로세서A(211)와 프로세서B(221) 사이의 우선 순위를 결정하기 위한 지연 리셋 신호를 발생할 수 있다. 다시 말하면, 클라이언트 프로세서C(231)는 시스템 리셋 신호를 소정 시간 지연한 지연 리셋 신호를 호스트 프로세서들(211, 221)에 순차적으로 출력할 수 있다(S120). 따라서, 호스트 프로세서들(211, 221) 각각은 시스템 초기화 신호와 지연 리셋 신호의 논리합 신호에 응답하여, 순차적으로 제어명령(클라이언트로부터 부트 코드를 전달받기 위한 명령)을 클라이언트 프로세서(231)에 발생한다(S130).
클라이언트 프로세서C(231)는 순차적으로 입력되는 제어 명령에 각각에 응답하여 인터페이스 버퍼(300)를 인에이블 시킨다. 따라서, 호스트 프로세서A(211)와 호스트 프로세서B(221)각각에 대응하는 부트 코드들은 인터페이스 버퍼(300)로부터 출력되어 호스트 인터페이스(2311)로 입력된다. 호스트 인터페이스 장치(1311)는 시스템 버스(250)를 경유하여 대응하는 부트 코드를 호스트 프로세서들(211, 221)로 전달한다(S140).
인터페이스 버퍼(300)는 호스트 프로세서들(211, 221) 각각에 대응하는 복수의 버퍼들을 포함할 수 있다. 이 경우에, 클라이언트 프로세서C(231)는 호스트 프로세서A(211) 및 호스트 프로세서B(221)로부터의 제어 명령에 응답하여 각각 대응하는 버퍼를 인에이블 시킬 수 있다.
호스트 프로세서A(211)와 호스트 프로세서B(221)는 각각 입력된 부트 코드를 시스템 메모리(213, 223)에 복사하고 초기화 동작을 수행한다(S150). 이 경우에, 클라이언트 프로세서C(231)는 자신의 시스템을 초기화하기 위한 부트 코드를 시스템 메모리(233)에 복사하고 초기화 동작을 수행할 수 있다.
따라서 본 발명에 따르면, 모바일 장치에 적용되는 멀티프로세서 시스템에서 여러개의 프로세서들이 하나의 부트 메모리를 공유할 할 수 있다. 따라서, 사이즈 및 제조 가격 면에서 모바일 장치의 소형화 및 다기능 추세에 적합하다. 또한, 부트 코드를 독출하는 프로세서에 인터페이스 버퍼를 추가함으로써 외부의 부트 메모리를 억세스하는 프로세서들의 레이턴시를 감소할 수 있다.
본 발명에 따르면, 여러 개의 프로세서가 하나의 부트 메모리를 공유함으로 인해, 멀티프로세서 시스템의 사이즈 및 제조 단가를 낮출 수 있다.
또한, 본 발명에 따르면, NAND 플래시 메모리 인터페이스를 사용하지 않는 프로세서들도 가격 경쟁력이 우수한 NAND 플래시 메모리를 부트 메모리로 사용할 수 있다.

Claims (20)

  1. 외부로부터 부트 코드를 입력받아 초기화 동작을 수행하는 제 1 프로세서를 가지는 제 1 아이피 블럭과; 그리고
    상기 부트 코드를 저장하는 메모리와, 상기 제 1 프로세서의 제어에 따라 상기 메모리로부터 상기 부트 코드를 독출하는 제 2 프로세서를 가지는 제 2 아이피블럭을 포함하며,
    상기 제 1 프로세서는 시스템 버스를 통하여 상기 제 2 프로세서에 연결되며, 상기 제 2 프로세서는 로컬 버스를 통하여 상기 메모리에 연결되는 것을 특징으로 하는 멀티프로세서 시스템.
  2. 제 1항에 있어서,
    상기 제 2 프로세서는 상기 독출된 부트 코드를 저장하는 적어도 하나의 인터페이스 버퍼를 포함하는 것을 특징으로 하는 멀티프로세서 시스템.
  3. 제 2항에 있어서,
    상기 인터페이스 버퍼는 상기 제 1 프로세서에 의해 인에이블 되는 것을 특징으로 하는 멀티프로세서 시스템.
  4. 제 1항에 있어서,
    상기 메모리는 비휘발성 메모리인 것을 특징으로 하는 멀티프로세서 시스템.
  5. 제 1 항에 있어서,
    상기 메모리는 낸드 플래시 메모리인 것을 특징으로 하는 멀티프로세서 시스템.
  6. 제 1 항에 있어서,
    상기 제 1 프로세서는 모뎀 프로세서인 것을 특징으로 하는 멀티프로세서 시스템.
  7. 제 1 항에 있어서,
    상기 제 1 프로세서는 그래픽 유저 인터페이스를 위한 어플리케이션 프로세서인 것을 특징으로 하는 멀티프로세서 시스템.
  8. 복수의 아이피 블럭들을 포함하는 멀티프로세서 시스템에 있어서,
    상기 복수의 아이피 블럭들 중 하나의 아이피 블럭은 복수의 부트 코드들을 저장하는 메모리와, 상기 메모리로부터 상기 부트 코드들을 독출하는 제 1 프로세서를 포함하며,
    나머지 아이피 블럭들 각각은 상기 제 1 프로세서로부터 상기 부트 코드들 중 하나를 입력받아 초기화 동작을 수행하는 제 2 프로세서를 포함하며,
    상기 제 1 프로세서는 시스템 버스를 통하여 상기 제 2 프로세서에 연결되며, 상기 제 2 프로세서는 로컬 버스를 통하여 상기 메모리에 연결되는 것을 특징으로 하는 멀티프로세서 시스템.
  9. 제 8 항에 있어서,
    상기 제 1 프로세서는 상기 독출된 부트 코드들을 저장하는 인터페이스 버퍼를 포함하는 것을 특징으로 하는 멀티프로세서 시스템.
  10. 제 9 항에 있어서,
    상기 제 1 프로세서는 상기 제 2 프로세서로부터의 명령에 따라 상기 인터페이스 버퍼를 인에이블시키는 것을 특징으로 하는 멀티프로세서 시스템.
  11. 제 8 항에 있어서,
    상기 메모리는 낸드 플래시 메모리인 것을 특징으로 하는 멀티프로세서 시스템.
  12. 부트 코드를 저장하는 메모리와;
    시스템 초기화 신호가 입력되면, 상기 부트 코드를 입력받기 위한 제어명령을 발생하는 제 1 프로세서와; 그리고
    상기 시스템 초기화 신호에 응답하여 상기 메모리로부터 상기 부트 코드를 독출하고, 상기 제어명령에 응답하여 상기 부트 코드를 출력하는 제 2 프로세서를 포함하며,
    상기 제 1 프로세서는 시스템 버스를 통하여 상기 제 2 프로세서에 연결되며, 상기 제 2 프로세서는 로컬 버스를 통하여 상기 메모리에 연결되는 것을 특징으로 하는 멀티프로세서 시스템.
  13. 제 12항에 있어서,
    상기 제 2 프로세서는
    상기 메모리로부터 독출된 부트 코드를 출력하는 인터페이스 버퍼와; 그리고
    상기 인터페이스 버퍼로부터 출력된 상기 부트 코드를 상기 제 1 프로세서에 전달하는 인터페이스 장치를 포함하는 것을 특징으로 하는 멀티프로세서 시스템.
  14. 제 12 항에 있어서,
    상기 시스템 초기화 신호는 파워-업 신호와 시스템 리셋 신호 중 어느 하나를 포함하는 것을 특징으로 하는 멀티프로세서 시스템.
  15. 제 12 항에 있어서,
    상기 메모리는 낸드 플래시 메모리인 것을 특징으로 하는 멀티프로세서 시스템.
  16. 부트 코드를 저장하는 메모리와, 상기 메모리로부터 상기 부트 코드를 독출하는 제 1 프로세서와, 시스템 버스를 경유하여 상기 제 1 프로세서에 접속하는 제 2 프로세서를 포함하는 멀티프로세서 시스템의 초기화 방법에 있어서,
    상기 메모리에 로컬 버스를 통하여 연결된 상기 제 2 프로세서가 시스템 초기화신호에 응답하여 상기 부트 코드를 입력받기 위한 명령을 발생하는 단계와;
    상기 제 1 프로세서가 상기 명령에 응답하여 상기 메모리로부터 상기 부트 코드를 독출하는 단계와; 그리고
    상기 제 2 프로세서가 상기 부트 코드를 입력받아 초기화 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 멀티프로세서 시스템의 초기화 방법.
  17. 제 16 항에 있어서,
    상기 시스템 초기화 신호는 파워-업 신호 및 시스템 리셋 신호 중 어느 하나를 포함하는 것을 특징으로 하는 멀티프로세서 시스템의 초기화 방법.
  18. 부트 코드를 저장하는 메모리와, 상기 메모리로부터 상기 부트 코드를 독출하는 클라이언트 프로세서와, 시스템 버스를 경유하여 상기 클라이언트 프로세서에 접속하는 호스트 프로세서를 포함하는 멀티프로세서 시스템의 초기화 방법에 있어서,
    시스템 초기화 신호에 응답하여, 상기 메모리에 로컬 버스를 통하여 연결된 상기 클라이언트 프로세서가 상기 메모리로부터 상기 부트 코드를 독출하여 인터페이스 버퍼에 저장하는 단계;
    상기 시스템 초기화 신호에 응답하여, 상기 호스트 프로세서가 대응하는 부트 코드를 입력받기 위한 명령을 발생하는 단계와;
    상기 클라이언트 프로세서가 상기 명령에 응답하여 상기 인터페이스 버퍼를 활성화하고, 상기 대응하는 부트 코드를 출력하는 단계와; 그리고
    상기 호스트 프로세서가 상기 대응하는 부트 코드를 입력받아 초기화 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 멀티프로세서 시스템의 초기화 방법.
  19. 제 18 항에 있어서,
    상기 시스템 초기화 신호는 파워-업 신호와 시스템 리셋 신호를 포함하는 것을 특징으로 하는 멀티프로세서 시스템의 초기화 방법.
  20. 부트 코드를 저장하는 메모리와, 상기 메모리로부터 상기 부트 코드를 독출하는 클라이언트 프로세서와, 시스템 버스를 경유하여 상기 클라이언트 프로세서에 접속하는 복수의 호스트 프로세서들을 포함하는 멀티프로세서 시스템의 초기화 방법에 있어서,
    파워-업 신호 및 시스템 리셋 신호에 응답하여 상기 메모리에 로컬 버스를 통하여 연결된 상기 클라이언트 프로세서가 상기 메모리로부터 상기 부트 코드를 독출하여 인터페이스 버퍼에 저장하고, 상기 시스템 리셋 신호를 지연하여 상기 복수의 호스트 프로세서들 각각에 순차적으로 지연된 지연 리셋 신호를 발생하는 단계;
    상기 호스트 프로세서들 각각이 상기 시스템 초기화 신호 및 상기 지연 리셋 신호에 응답하여, 대응하는 부트 코드를 입력받기 위한 명령을 순차적으로 발생하는 단계와;
    상기 클라이언트 프로세서가 상기 명령에 응답하여 상기 인터페이스 버퍼를 활성화하고, 상기 호스트 프로세서들 각각에 대응하는 부트 코드를 출력하는 단계와; 그리고
    상기 호스트 프로세서들 각각이 상기 대응하는 부트 코드를 입력받아 초기화 동작을 수행하는 단계를 포함하는 것을 특징으로 하는 멀티프로세서 시스템의 초기화 방법.
KR1020060014787A 2006-02-15 2006-02-15 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법 KR101173539B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020060014787A KR101173539B1 (ko) 2006-02-15 2006-02-15 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법
US11/704,202 US7930530B2 (en) 2006-02-15 2007-02-09 Multi-processor system that reads one of a plurality of boot codes via memory interface buffer in response to requesting processor
US13/064,200 US8650388B2 (en) 2006-02-15 2011-03-10 Multi-processor systems and booting methods thereof
US14/174,151 US20140156984A1 (en) 2006-02-15 2014-02-06 Multi-processor systems and booting methods thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060014787A KR101173539B1 (ko) 2006-02-15 2006-02-15 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법

Publications (2)

Publication Number Publication Date
KR20070082229A KR20070082229A (ko) 2007-08-21
KR101173539B1 true KR101173539B1 (ko) 2012-08-14

Family

ID=38370105

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060014787A KR101173539B1 (ko) 2006-02-15 2006-02-15 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법

Country Status (2)

Country Link
US (3) US7930530B2 (ko)
KR (1) KR101173539B1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100880379B1 (ko) * 2006-05-25 2009-01-23 삼성전자주식회사 외부로부터 제공받는 부트 코드로 부팅되는 정보기기시스템
US20090055639A1 (en) * 2007-08-20 2009-02-26 Kimmo Kuusilinna Methods and system for modular device booting
IL187044A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Fast secure boot implementation
US8225069B2 (en) 2009-03-31 2012-07-17 Intel Corporation Control of on-die system fabric blocks
KR20110013867A (ko) * 2009-08-04 2011-02-10 삼성전자주식회사 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템
US8245024B2 (en) 2009-08-21 2012-08-14 Micron Technology, Inc. Booting in systems having devices coupled in a chained configuration
JP5254449B2 (ja) * 2009-12-07 2013-08-07 パナソニック株式会社 不揮発性記憶装置、ホスト装置、記憶システム、データ通信方法およびプログラム
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US8589667B2 (en) * 2010-04-19 2013-11-19 Apple Inc. Booting and configuring a subsystem securely from non-local storage
CN103180819A (zh) * 2010-11-01 2013-06-26 惠普发展公司,有限责任合伙企业 多处理器计算机系统和方法
KR20120122267A (ko) * 2011-04-28 2012-11-07 삼성전자주식회사 전자 장치 및 그의 펌웨어 제공 방법
WO2013048943A1 (en) 2011-09-30 2013-04-04 Intel Corporation Active state power management (aspm) to reduce power consumption by pci express components
US9389657B2 (en) 2011-12-29 2016-07-12 Intel Corporation Reset of multi-core processing system
KR102276914B1 (ko) 2013-10-24 2021-07-13 삼성전자주식회사 비디오 인코딩 장치 그리고 이의 구동 방법
KR20160054850A (ko) 2014-11-07 2016-05-17 삼성전자주식회사 다수의 프로세서들을 운용하는 장치 및 방법
US20170017394A1 (en) * 2015-07-15 2017-01-19 Futurewei Technologies, Inc. SYSTEM AND METHOD FOR DATA WAREHOUSE AND FINE GRANULARITY SCHEDULING FOR SYSTEM ON CHIP (SoC)
US9529601B1 (en) 2015-07-15 2016-12-27 Dell Products L.P. Multi-processor startup system
US11803643B2 (en) * 2020-02-07 2023-10-31 Intel Corporation Boot code load system
US20230409341A1 (en) * 2022-06-21 2023-12-21 Stmicroelectronics Application Gmbh Processing system, related integrated circuit, device and method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08161283A (ja) 1994-12-07 1996-06-21 Sony Corp 複数プロセツサシステム
KR100429699B1 (ko) 1995-07-18 2005-08-31 시바 스페셜티 케미칼스 홀딩 인크. 염료혼합물,이의제조방법및이를사용한염색또는날염방법
JP2000305912A (ja) 1999-04-22 2000-11-02 Mitsubishi Electric Corp マルチcpu装置
JP2001154849A (ja) 1999-11-30 2001-06-08 Ricoh Co Ltd 情報処理装置
FI20011881A (fi) * 2001-09-25 2003-03-26 Nokia Corp Menetelmä tukiaseman hajautetun prosessoriarkkitehtuurin käynnistämiseksi ja tukiasema
US7032106B2 (en) * 2001-12-27 2006-04-18 Computer Network Technology Corporation Method and apparatus for booting a microprocessor
US7234052B2 (en) 2002-03-08 2007-06-19 Samsung Electronics Co., Ltd System boot using NAND flash memory and method thereof
US7290080B2 (en) * 2002-06-27 2007-10-30 Nazomi Communications Inc. Application processors and memory architecture for wireless applications
EP1797645B1 (en) * 2004-08-30 2018-08-01 Google LLC Systems and methods for providing nonvolatile memory management in wireless phones

Also Published As

Publication number Publication date
US20110167253A1 (en) 2011-07-07
US20070192529A1 (en) 2007-08-16
KR20070082229A (ko) 2007-08-21
US20140156984A1 (en) 2014-06-05
US7930530B2 (en) 2011-04-19
US8650388B2 (en) 2014-02-11

Similar Documents

Publication Publication Date Title
KR101173539B1 (ko) 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법
US10991446B2 (en) Electronic device performing training on memory device by rank unit and training method thereof
US20200201653A1 (en) Method of Implementing Magnetic Random Access Memory (MRAM) for Mobile System-on-Chip Boot
KR100758301B1 (ko) 메모리 카드 및 그것의 데이터 저장 방법
US7533253B2 (en) System and method for fetching a boot code
US7711941B2 (en) Method and apparatus for booting independent operating systems in a multi-processor core integrated circuit
US7725621B2 (en) Semiconductor device and data transfer method
JP2009043256A (ja) 記憶装置のアクセス方法及び装置
US20180143900A1 (en) Microcomputer having processor capable of changing endian based on endian information in memory
KR20100092752A (ko) 버퍼램을 포함하는 불휘발성 메모리 장치 및 그것의 부트 코드 관리 방법
US8402260B2 (en) Data processing apparatus having address conversion circuit
KR20110078171A (ko) 부팅가능한 휘발성 메모리 장치와 그를 구비한 메모리 모듈 및 프로세싱 시스템, 및 그를 이용한 프로세싱 시스템 부팅 방법
JP6455353B2 (ja) 並列計算機、並列計算機の初期化方法および起動プログラム
JP5460409B2 (ja) 情報処理システム
US20070186026A1 (en) System having bus architecture for improving CPU performance and method thereof
JP2004192051A (ja) 共用端子制御装置
JP2006127407A (ja) 半導体集積回路
KR20080111745A (ko) 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법,다중 포트 메모리 및 다중 포트 메모리를 가지는 다중프로세서 시스템
JP2009217336A (ja) 計算機システム、ネットワークブートロードシステム、及び、そのブートロード方法
JP5823000B2 (ja) マイクロコンピュータ
US20060161697A1 (en) Microcontroller
JP2004334257A (ja) メモリアクセスシステム及びメモリアクセス装置

Legal Events

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

Payment date: 20160801

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180731

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 8