KR20110013867A - 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템 - Google Patents

메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템 Download PDF

Info

Publication number
KR20110013867A
KR20110013867A KR1020090071548A KR20090071548A KR20110013867A KR 20110013867 A KR20110013867 A KR 20110013867A KR 1020090071548 A KR1020090071548 A KR 1020090071548A KR 20090071548 A KR20090071548 A KR 20090071548A KR 20110013867 A KR20110013867 A KR 20110013867A
Authority
KR
South Korea
Prior art keywords
processor
memory device
semiconductor memory
processors
booting
Prior art date
Application number
KR1020090071548A
Other languages
English (en)
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 KR1020090071548A priority Critical patent/KR20110013867A/ko
Priority to US12/780,989 priority patent/US20110035575A1/en
Publication of KR20110013867A publication Critical patent/KR20110013867A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems

Landscapes

  • Engineering & Computer Science (AREA)
  • 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)

Abstract

플래시 레스 구조의 부팅을 수행할 수 있는 멀티 프로세서 시스템이 개시되어 있다. 그러한 멀티 프로세서 시스템은, 대응 연결된 프로세서들에 공통적으로 억세스되는 공유 메모리 영역과, 상기 프로세서들 간의 통신을 제공하기 위한 메일 박스를 구비한 멀티 포트 반도체 메모리 장치와, 상기 멀티 포트 반도체 메모리 장치와 연결되며, 외부 소자의 의존 없이 자체적 초기 부팅동작을 수행하기 위해 디램 콘트롤을 위한 디폴트 세팅 코드를 저장하는 인터널 롬을 가지는 제1 프로세서와, 상기 멀티 포트 반도체 메모리 장치와 연결되며, 상기 멀티 포트 반도체 메모리 장치를 통해 상기 제1 프로세서와 데이터를 수수하는 제2 프로세서와, 상기 제2 프로세서에 연결되며 상기 제1,2 프로세서들에 관련된 부트 로더, 소프트웨어 및 유저 데이터를 저장하는 불휘발성 반도체 메모리 장치를 구비한다. 본 발명의 실시예의 구성에 따르면, 멀티 프로세서 시스템의 경우에는 부팅 속도가 높아지고, 메모리 링크 아키텍쳐를 채용하는 시스템의 경우에는 시스템 구조가 간단해진다.
Figure P1020090071548
멀티 프로세서 시스템, 메모리 링크 아키텍쳐, 플래시 레스, 부팅

Description

메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템{Multi processor system having flash-less booting function in memory link architecture}
본 발명은 멀티 프로세서 시스템에 관한 것으로, 특히 멀티 포트 반도체 메모리 장치를 공용 메모리로서 채용하는 멀티 프로세서 시스템에 관한 것이다.
오늘날 인간생활의 유비쿼터스 지향추세와 편리성의 요구에 따라, 인간들이 취급하게 되는 전자적 시스템도 그에 부응하여 눈부시게 발전되고 있다.
최근에 휴대용 멀티미디어 플레이어(PMP), 모바일 폰, 스마트 폰, GPS 내비게이션 장치, 디지털 카메라, 디지털 비디오 카메라 또는 PDA 등의 휴대용 전자기기에서는 기능이나 동작 수행의 고속화 및 원활화를 도모하기 위하여 하나의 시스템 내에 복수의 프로세서들을 채용한 멀티 프로세서 시스템이 선호된다. 예를 들어, 모바일 폰에는 사용자들의 컨버젼스 요구에 따라, 기본적인 전화 기능 이외에 음악, 게임, 카메라, 결제기능, 또는 동영상 기능 등이 추가적으로 구현될 수 있 다. 따라서, 그러한 경우에 통신 변복조 기능을 수행하는 통신 프로세서와, 상기 통신 기능을 제외한 어플리케이션 기능을 수행하는 미디어 프로세서가 상기 모바일 폰 내의 인쇄회로 기판에 함께 채용될 필요성이 있다.
그러한 멀티 프로세서 시스템에서 프로세싱 데이터를 저장하기 위해 채용되는 반도체 메모리는 동작이나 기능 면에서 다양하게 변화될 수 있다. 예컨대, 복수의 억세스 포트를 가지고서 그 억세스 포트들 각각을 통해 동시에 데이터를 입출력할 것이 요구될 수 있다. 예컨대, 삼성전자의 원디램(OneDRAM)과 같은 멀티포트 반도체 메모리 장치는 모바일 디바이스 내에서 통신 프로세서와 미디어 프로세서 간의 데이터 처리 속도를 현저히 증가시킬 수 있는 퓨전(fusion)메모리 칩이다. 일반적으로 두 프로세서들이 있는 경우에 두 개의 메모리들이 통상적으로 요구된다. 그렇지만, 원디램 솔루션은, 프로세서들간의 데이터를 단일 칩을 통하여 라우팅할 수 있기 때문에, 두 개의 메모리들에 대한 필요성을 제거할 수 있다. 또한 듀얼 포트 어프로치를 취함에 의해, 원디램은 프로세서들 간의 데이터 전송에 걸리는 시간을 상당히 감소시킨다.
원디램을 공유하는 멀티 프로세서 시스템에서 시스템의 간소화 및 시스템 구현 비용을 줄이기 위해 프로세서들의 부팅을 위해 필요한 부트로더는 특정한 프로세서에만 연결된 불휘발성 반도체 메모리 예를 들어 플래시 메모리에 저장될 수 있다. 즉, 프로세서들 중 적어도 하나가 플래시 메모리와 직접적으로 연결되어 있지 않은 구조인 플래시 레스(flash-less)구조를 멀티 프로세서 시스템이 갖는 것이다.
이와 같이 원디램을 기반으로 하는 플래시 레스 구조에서는 프로세서들 간에 시리얼 인터페이스 예컨대 UART/SPI 가 일반적으로 필요하다. 그렇지만, 시리얼 인터페이스를 통한 부팅용 데이터의 전송은 상대적으로 느린 속도에서 수행되기 때문에 시스템 부팅 성능의 저하를 초래하고, 시스템 디자인의 어려움이 뒤따르게 된다.
또한, 원디램을 채용하는 멀티 프로세서 시스템은, 두 개의 프로세서들과는 별도의 한 프로세서에 또 다른 원디램과 플래시 메모리가 링크된 메모리 링크 아키텍쳐를 구성할 수 있다. 원디램 및 메모리 링크 아키텍쳐를 갖는 2 프로세서 구조에서, 시스템 부팅 및 동작수행을 위해 프로세서들에 각기 대응하여 플래시 메모리가 설치된다면 시스템의 구현 비용이 상승하고 또한 폼 팩터가 크게 된다.
본 발명의 목적은 원디램을 기반으로 하는 플래시 레스 구조에서 부팅 속도를 높일 수 있는 멀티 프로세서 시스템을 제공함에 있다.
본 발명의 다른 목적은 멀티 프로세서 시스템에서 시리얼 인터페이스를 제거하고서 부팅을 수행할 수 있는 멀티 프로세서 시스템을 제공함에 있다.
본 발명의 또 다른 목적은 원디램 및 메모리 링크 아키텍쳐를 갖는 2 프로세서 구조에서, 플래시 레스 부팅을 수행할 수 있는 멀티 프로세서 시스템 및 그 부팅방법을 제공함에 있다.
본 발명의 또 다른 목적은 프로세서들에 각기 대응되는 부팅용 메모리를 구 비함이 없이도 메모리 링크 아키텍쳐 내의 메모리를 이용하여 시스템 부팅을 수행할 수 있는 멀티 프로세서 시스템을 제공함에 있다.
본 발명의 또 다른 목적은 시스템 구현 비용이 저렴하고 부팅 속도가 보다 개선된 원디램 기반 멀티 프로세스 시스템을 제공함에 있다.
상기한 목적들을 달성하기 위하여 본 발명의 실시예의 일 양상(an aspect)에 따른 멀티 프로세서 시스템은:
대응 연결된 프로세서들에 공통적으로 억세스되는 공유 메모리 영역과, 상기 프로세서들 간의 통신을 제공하기 위한 메일 박스를 구비한 멀티 포트 반도체 메모리 장치와;
상기 멀티 포트 반도체 메모리 장치와 연결되며, 외부 소자의 의존 없이 자체적 초기 부팅동작을 수행하기 위해 디램 콘트롤을 위한 디폴트 세팅 코드를 저장하는 인터널 롬을 가지는 제1 프로세서와;
상기 멀티 포트 반도체 메모리 장치와 연결되며, 상기 멀티 포트 반도체 메모리 장치를 통해 상기 제1 프로세서와 데이터를 수수하는 제2 프로세서와;
상기 제2 프로세서에 연결되며 상기 제1,2 프로세서들에 관련된 부트 로더, 소프트웨어 및 유저 데이터를 저장하는 불휘발성 반도체 메모리 장치를 구비한다.
본 발명의 실시예에서, 상기 제1,2 프로세서는 파워 온 시에 각기 자신의 인터널 롬으로부터 1차 부트로더를 리드하여 실행하며, 상기 제1 프로세서는 디폴트 세팅 코드에 따라 디램 콘트롤러를 디폴트로 세팅할 수 있다.
본 발명의 실시예에서, 상기 제1,2 프로세서들에 의해 전용으로 억세스되는 전용 메모리 영역들이 상기 멀티 포트 반도체 메모리 장치 내에 있을 경우에, 상기 제2 프로세서는, 상기 1차 부트로더의 실행 후, 상기 불휘발성 반도체 메모리 장치에 있는 오퍼레이팅 시스템 이미지 데이터를 리드하여 상기 전용 메모리 영역에 저장하는 제1 트랜스퍼 단계를 수행할 수 있다.
본 발명의 실시예에서, 상기 제1 트랜스퍼 단계의 완료 후에, 상기 제2 프로세서는 상기 불휘발성 반도체 메모리 장치에 있는 상기 제1 프로세서의 2차 부트로더 및 오퍼레이팅 시스템 이미지 데이터를 리드하여 상기 공유 메모리 영역에 저장하는 제2 트랜스퍼 단계를 수행할 수 있다.
본 발명의 실시예에서, 상기 제2 트랜스퍼 단계가 완료된 후에, 상기 1 프로세서는 상기 2차 부트로더를 상기 공유 메모리 영역으로부터 리드하여 상기 디램 콘트롤러를 재 셋팅하고, 상기 오퍼레이팅 시스템 이미지 데이터를 상기 공유 메모리 영역으로부터 리드하여 자신에 대응되는 전용 메모리 영역에 카피하는 재 셋팅 및 카피 단계를 수행할 수 있다.
본 발명의 실시예에서, 상기 제2 프로세서는 시스템 부팅 시에 제1 프로세서의 홀트를 방지하기 위해 리셋 신호를 인가할 수 있다.
본 발명의 실시예의 다른 양상(another aspect)에 따른 멀티 프로세서 시스템은:
제1 멀티 포트 반도체 메모리 장치를 공통으로 억세스 하는 제1,2 프로세서 와;
상기 제2 프로세서에 연결된 제2 멀티 포트 반도체 메모리 장치와, 불휘발성 반도체 메모리 장치와, 상기 제2 멀티 포트 반도체 메모리 장치 및 불휘발성 반도체 메모리 장치에 연결되며 상기 제1,2 프로세서가 각기 대응되는 부팅용 메모리 소자 없이도 상기 불휘발성 반도체 메모리 장치의 지원을 받아 부팅을 수행하도록 하기 위한 제3 프로세서를 포함하는 메모리 링크 아키텍쳐 블록을 구비한다.
본 발명의 실시예에서, 상기 제2 프로세서와 상기 제3 프로세서간에는 시리얼 인터페이스 버스 라인과 리셋신호 라인이 연결될 수 있다.
본 발명의 실시예에서, 상기 제3 프로세서는 시스템 부팅 시에 상기 제1,2 프로세서의 홀트를 방지하기 위해 상기 리셋신호 라인을 통해 리셋 신호를 인가할 수 있다.
본 발명의 실시예에서, 상기 제3 프로세서는 자신의 부팅 동작을 완료한 후, 상기 제2 프로세서의 리셋을 해제하고, 상기 불휘발성 반도체 메모리 장치에 있는 제2 프로세서의 부트로더를 상기 시리얼 인터페이스 버스 라인을 통해 전송하며, 상기 불휘발성 반도체 메모리 장치에 있는 상기 제2 프로세서의 오퍼레이팅 시스템 이미지 데이터를 제2 멀티 포트 반도체 메모리 장치의 공유 메모리 영역에 저장함에 의해, 상기 제2 프로세서의 부팅이 수행되도록 할 수 있다.
본 발명의 실시예에서, 상기 제3 프로세서는 상기 제2 프로세서의 부팅이 완료되면, 상기 제1 프로세서의 리셋을 해제하고, 상기 불휘발성 반도체 메모리 장치에 있는 제1 프로세서의 부트로더를 상기 시리얼 인터페이스 버스 라인을 통해 전 송하며, 상기 불휘발성 반도체 메모리 장치에 있는 상기 제1 프로세서의 오퍼레이팅 시스템 이미지 데이터를 제2 멀티 포트 반도체 메모리 장치의 공유 메모리 영역에 저장함에 의해, 상기 제2 프로세서의 동작 수행에 의해 상기 제1 프로세서의 부팅이 수행되도록 할 수 있다.
본 발명의 실시예에서, 상기 제1,2 멀티 포트 반도체 메모리 장치는, 대응되는 프로세서들에 의해 전용으로 억세스되는 전용 메모리 영역들과, 상기 프로세서들 모두에 의해 공유적으로 억세스되는 공유 메모리 영역과, 상기 프로세서들 간의 통신을 제공하기 위한 제1,2 메일 박스와, 상기 공유 메모리 영역의 사용에 대한 권한 정보를 저장하는 세맵퍼를 구비할 수 있다.
상기 멀티 프로세서 시스템은 모바일 폰, PMP, PSP, PDA, 또는 차량 휴대용 전화기 중의 하나일 수 있다. 또한, 상기 불휘발성 메모리는 EEPROM 계열의 메모리, 플래시 메모리, 또는 PRAM(Phase-change RAM)일 수 있다.
상기한 바와 같은 본 발명의 실시예적 구성에 따르면, 멀티 프로세서 시스템의 경우에는 부팅 속도가 높아지고, 메모리 링크 아키텍쳐를 채용하는 시스템의 경우에는 시스템 구조가 간단해진다. 따라서, 시스템의 동작 퍼포먼스가 개선되고 시스템 구현 비용이 저렴해지는 이점이 있다.
이하에서는 본 발명의 실시예에 따라, 원디램을 기반으로 하는 플래시 레스 구조에서 부팅 속도를 높일 수 있는 멀티 프로세서 시스템과 원디램 및 메모리 링크 아키텍쳐를 갖는 2 프로세서 구조에서, 플래시 레스 부팅을 수행할 수 있는 멀티 프로세서 시스템 및 그 부팅방법에 관한 바람직한 실시예들이 첨부된 도면들을 참조로 설명될 것이다.
이하의 실시예에서 많은 특정 상세들이 도면을 따라 예를 들어 설명되고 있지만, 이는 본 분야의 통상의 지식을 가진 자에게 본 발명의 보다 철저한 이해를 돕기 위한 의도 이외에는 다른 의도 없이 설명되었음을 주목(note)하여야 한다. 그렇지만, 본 발명이 이들 특정한 상세들 없이도 실시될 수 있을 것임은 본 분야의 숙련된 자들에 의해 이해될 수 있을 것이다. 다른 예증, 공지 방법들, 프로시져들, 통상적인 다이나믹 랜덤 억세스 메모리나 플래시 메모리 및 그와 관련된 기능적 회로들은 본 발명을 모호하지 않도록 하기 위해 상세히 설명되지 않는다.
먼저, 도 1은 본 발명의 실시 예에 따른 멀티 프로세서 시스템의 블록도이다. 도면을 참조하면, 제1 프로세서(100), 제2 프로세서(200), 멀티포트 반도체 메모리 장치로서의 원디램(300), 및 플래시 메모리(400)를 포함하는 모바일 디바이스의 예가 시스템 블록도로서 나타나 있다.
상기 제1 프로세서(100)는 미리 설정된 타스크(Task) 예컨대 통신신호의 변조 및 복조를 수행하는 모뎀(MODEM) 프로세서의 기능을 기본적으로 담당할 수 있다. 상기 제2 프로세서(200)는 통신 데이터의 처리나 게임, 오락 등의 사용자 편의 기능을 수행하는 미디어 프로세서의 기능을 담당할 수 있다. 그러나, 사안이 다른 경우에 상기 프로세서들의 기능은 서로 반대로 되거나 추가될 수 있다.
상기 제1 프로세서(100)는 시스템 버스(B10)를 통해 상기 원디램(300)과 연결되고, 상기 제2 프로세서(200)는 시스템 버스(B20)를 통해 상기 원디램(300)과 연결되므로, 상기 제1,2 프로세서들(100,200)은 상기 원디램(300)을 공유 메모리로서 사용한다. 따라서, 2개의 DRAM이 채용될 필요가 없으므로 시스템 구현 비용이 저렴하고 시스템 사이즈가 콤팩트해진다.
또한, 플래시 메모리(400)가 시스템 버스(B30)를 통해 상기 제2 프로세서(200)에 연결되어 있으므로, 상기 제1 프로세서(100)는 상기 원디램(300)과 상기 제2 프로세서(200)를 통해 간접적으로 상기 플래시 메모리(400)를 억세스 할 수 있다. 한편, 상기 제2 프로세서(200)는 상기 플래시 메모리(400)를 직접적으로 억세스한다.
상기 플래시 메모리(400)는 셀 어레이의 구성이 NOR 구조를 갖게 되는 NOR 플래시 메모리나, 셀 어레이의 구성이 NAND 구조를 갖게 되는 NAND 플래시 메모리가 될 수 있다. 상기 NOR 플래시 메모리나 NAND 플래시 메모리 모두는 플로팅 게이트를 갖는 모오스 트랜지스터로 이루어진 메모리 셀을 어레이 형태로서 갖는 불휘발성 메모리로서, 전원이 오프되더라도 지워져서는 아니되는 데이터 예컨대 모바일 디바이스의 부트 코드, 프로그램, 통신 데이터, 또는 보존용 데이터의 저장을 위해 탑재된다. 따라서, 시스템 내에서 하나의 플래시 메모리(400)가 2개의 프로세서들(100.200)에 대응되어 탑재되었으므로 시스템 구현 비용이 저렴하고 시스템 사이즈가 콤팩트해진다.
상기 원디램(oneDRAM:300)은 프로세서들(100,200)의 데이터 처리를 위한 메인 메모리로서 기능한다. 또한, 상기 원디램(300)은 멀티포트 억세스를 허용하기 위해, 도 5에서 보여지는 바와 같이, 복수의 포트들(P1,P2)과 복수의 메모리 뱅크들(310,320,330,340)을 가진다. 그러한 복수의 포트들과 메모리 뱅크들의 구성을 갖는 원디램(300)은 단일 포트를 갖는 통상의 DRAM과는 상이하다.
도 1에서 보여지는 구성과 같이, 원디램(300)을 기반으로 하는 플래시 레스 구조에서는 프로세서들 간에 시리얼 인터페이스 예컨대 UART/SPI 가 일반적으로 필요하다. 즉, 제1,2 프로세서들(100,200)간에는 시리얼 인터페이스 라인(L10)이 부팅을 위해 필요하게 되는 것이다.
그러한 경우에 도 2의 플로우 챠트의 제1 케이스(CA1)와 같은 동작 단계들이 부팅 시퀀스로서 수행된다. 도 2는 도 1중 프로세서들의 부팅 시퀀스를 보여주는 플로우 챠트이다.
상기 제1 케이스(CA1)의 S11단계는 파워 온 시에 제1,2 프로세서들이 각기 자신의 인터널 롬에서 1차 부트로더를 리드하여 실행하는 단계이다. S12단계는 제2 프로세서(200)가 플래시 메모리(400)로부터 자신의 2차 부트로더를 리드하여 실행하는 단계이다. S13단계는 제2 프로세서(200)가 제1 프로세서(100)의 동작 홀트(halt)를 방지하기 위해 리셋 신호를 라인(L20)을 통해 제1 프로세서(100)로 인가하는 단계이다. S14단계는 제2 프로세서(200)가 상기 플래시 메모리(400)에 있는 오퍼레이팅 시스템 이미지 데이터를 리드하여 상기 원디램(300)의 전용 메모리 영역에 저장하는 단계이다. 이에 따라 상기 제2 프로세서(200)의 부팅동작은 완료된 다. S15단계는 제2 프로세서(200)가 상기 플래시 메모리(400)에 있는 상기 제1 프로세서(100)의 2차 부트로더를 리드하여 시리얼 인터페이스 라인(L10)을 통해 전송할 준비를 하는 단계이다. S16단계는 제2 프로세서(200)가 상기 제1 프로세서(100)의 리셋을 해제하는 단계이다. S17단계는 리셋에서 해제된 제1 프로세서(100)가 상기 시리얼 인터페이스 라인(L10)을 통해 상기 2차 부트로더를 수신할 준비를 하는 단계이다. 결국 상기 S17단계에서 프로세서 간 UART 프로토콜 예컨대 보오드 레이트 및 CRC등이 서로 매칭 되어진다. S18단계는 상기 제2 프로세서(200)가 상기 시리얼 인터페이스 라인(L10)을 통해 상기 2차 부트로더를 전송하는 단계이다. S19단계는 상기 제1 프로세서가 상기 2차 부트로더를 실행하여 자신의 디램 콘트롤러를 세팅하는 단계이다. S20단계는 제2 프로세서(200)가 상기 플래시 메모리(400)에 있는 상기 제1 프로세서(100)의 오퍼레이팅 시스템 이미지 데이터를 리드하여 상기 원디램(300)의 공유 메모리 영역에 저장하는 단계이다. S21단계는 제1 프로세서(100)가 상기 공유 메모리 영역에 저장된 상기 오퍼레이팅 시스템 이미지를 리드하여 자신의 전용 메모리 영역에 카피하는 단계이다. S22단계는 제1 프로세서(100)가 부팅 동작을 완료하는 단계이다. 이에 따라, 제2 프로세서(200) 및 제1 프로세서(100)의 부팅 동작이 정상적으로 완료되어 멀티 프로세서 시스템의 부팅 동작이 완료된다.
상기 1차 부트로더는 각 프로세서의 초기화를 위한 프로그램으로서, MBR(Master Boot Recorder) 등과 같은 프로그램이 될 수 있다. 따라서, 파워 온 직후에 상기 제1,2 프로세서들(100,200)은 어셈블리어로 작성될 수 있는 상기 1차 부트로더를 리드하여 프로세서 동작에 필수적인 저수준의 초기화를 수행한다. 그러한 초기화 수행에 의해, 프로세서 내부에 있는 메모리 컨트롤러의 레지스터가 설정되고, 시스템 클럭의 속도가 설정되고, UART가 초기화된다. 한편, 상기 2차 부트로더는 프로세서의 운영체제를 동작시키기 위한 프로그램으로서, NTLDR(NT Loader)이나 GRUB(Grand Unified Bootloader) 등과 같은 프로그램일 수 있다. 상기 프로그램은 C 언어로 작성될 수 있으며, 상기 저수준의 초기화 환경에 근거하여 보다 고수준의 초기화를 수행하는데 사용된다.
그렇지만, 도 2의 제1 케이스(CA1)와 같은 부팅 시퀀스는 부팅 속도가 상대적으로 느리다. 왜냐하면, 시리얼 인터페이스 라인은 상대적으로 슬로우 버스이기 때문이다. 결국, 부팅용 데이터의 전송속도가 느리게 될 경우에 시스템 부팅 성능의 저하가 초래될 수 있고 전송 프로토콜의 맞춤 등에 기인하여 시스템 디자인의 어려움이 수반될 수 있다.
따라서, 본 발명의 제1 실시예의 경우에는 도 2의 제2 케이스(CA2)와 같은 부팅 시퀀스를 제시한다.
상기 제2 케이스(CA2)에 따른 부팅 시퀀스의 요약은 다음과 같다.
즉, 슬로우 버스인 시리얼 인터페이스를 사용함이 없이, 프로세서의 인터날 롬에 디폴트 세팅 코드를 넣어 디램 콘트롤러를 디폴트로 일단 세팅할 수 있게 하는 것이다. 결국, 이는 플래시 레스 부팅 시퀀스 및 보오드 디자인을 간소화하는 방안으로서, 부팅 속도를 높이고 프로세서 간 UART 프로토콜(보오드 레이트/CRC)의 매칭을 필요 없게 한다.
다시 도 2로 돌아가서 상기 제2 케이스(CA2)의 부팅 시퀀스를 설명한다.
상기 제2 케이스(CA2)의 S11단계는 파워 온 시에 제1,2 프로세서들(100,200)이 각기 자신의 인터널 롬(110,210)에서 1차 부트로더를 리드하여 실행하는 단계이다. 상기 S11단계에서 특이하게 상기 제1 프로세서(100)는 상기 인터널 롬(110)에 저장된 디폴트 세팅 코드에 따라 디램 콘트롤러를 디폴트로 세팅하게 된다.
S12단계는 제2 프로세서(200)가 플래시 메모리(400)로부터 자신의 2차 부트로더를 리드하여 실행하는 단계이다. S14단계는 제2 프로세서(200)가 상기 플래시 메모리(400)에 있는 오퍼레이팅 시스템 이미지 데이터를 리드하여 상기 원디램(300)의 전용 메모리 영역에 저장하는 단계이다. 이에 따라 상기 제2 프로세서(200)의 부팅동작은 완료된다.
S20단계는 제2 프로세서(200)가 상기 플래시 메모리(400)에 있는 상기 제1 프로세서(100)의 2차 부트로더 및 오퍼레이팅 시스템 이미지 데이터를 리드하여 상기 원디램(300)의 공유 메모리 영역에 저장하는 단계이다.
S21단계는 제1 프로세서(100)가 상기 2차 부트로더를 상기 공유 메모리 영역으로부터 리드하여 상기 디램 콘트롤러를 재 셋팅하고, 상기 오퍼레이팅 시스템 이미지 데이터를 상기 공유 메모리 영역으로부터 리드하여 자신에 대응되는 전용 메모리 영역에 카피하는 단계이다.
S22단계는 제1 프로세서(100)가 부팅 동작을 완료하는 단계이다. 이에 따라, 제2 프로세서(200) 및 제1 프로세서(100)의 부팅 동작이 정상적으로 완료되어 멀티 프로세서 시스템의 부팅 동작이 완료된다.
상기 제2 케이스(CA2)의 부팅 시퀀스는 시리얼 인터페이스를 사용하지 않고서 상기 단계들을 수행함에 의해, 제1 케이스(CA1)의 S13,S15,S16,S17,S18,S19 단계들을 생략할 수 있게 된다. 결국, 생략된 단계들(OM1,OM2)은 시리얼 인터페이스를 통한 부팅의 경우에 필요한 단계들이지만, 제2 케이스(CA2)의 경우에는 시리얼 인터페이스에 의존하지 않으므로 제거될 수 있는 것이다.
상기한 바와 같이, 도 1과 같은 멀티 프로세서 시스템의 경우에 시리얼 인터페이스를 사용하지 않는 제2 케이스(CA2)의 부팅 시퀀스를 이용할 경우에 부팅 속도가 높아지고 시스템 설계 부담이 경감되는 이점이 있다.
이제부터는 도 3 내지 도 7을 참조로 본 발명의 제2 실시예가 설명될 것이다.
먼저, 도 3는 본 발명의 다른 실시 예에 따른 멀티 프로세서 시스템의 블록도이고, 도 4는 도 3을 개량한 것으로서,본 발명의 또 다른 실시 예에 따른 멀티 프로세서 시스템의 블록도이다. 또한, 도 5는 도 4중 제1 멀티포트 반도체 메모리 장치의 세부적 블록도이며, 도 6은 도 4중 제2 멀티포트 반도체 메모리 장치의 세부적 블록도이다. 마지막으로 도 7은 도 4중 불휘발성 반도체 메모리 장치의 내부 저장 영역들을 보여주는 도면이다.
도 3을 참조하면, 도 1의 구조에 더하여 플래시 메모리(410)가 제1 프로세서(100)에 연결되고, 메모리 링크 아키텍쳐 블록(510)이 시스템 버스(B20)를 통해 연결된 구조가 보여진다. 상기 메모리 링크 아키텍쳐 블록(510)은 원디램(302), ASIC로서의 제3 프로세서(500), 및 플래시 메모리(420)를 포함한다. 여기서, 상기 제3 프로세서(500)는 미디어 프로세서로 기능할 수 있다.
도 3의 구조에서는 시스템 부팅 시 각각의 프로세서들(100,200,500)이 각기 자신에 할당된 플래시 메모리(400,410,420)로부터 2차 부트로더를 리드하여 실행함에 의해 부팅을 행한다. 따라서, 도 3과 같이 원디램 및 메모리 링크 아키텍쳐를 갖는 2 프로세서 구조의 경우에는 시스템 부팅 및 동작수행을 위해 프로세서들에 각기 대응하여 플래시 메모리가 별도로 설치되므로, 시스템의 사이즈가 커지고 시스템 구현 비용이 상승할 수 있다. 결국, 플래시 레스 구조를 갖지 않을 경우에 폼 팩터가 크게 될 수 있는 것이다.
따라서, 본 발명의 제2 실시예의 경우에는 도 4와 같은 플래시 레스 구조를 제시한다. 즉, 도 4와 같이 원디램 및 메모리 링크 아키텍쳐를 갖는 2 프로세서 구조의 경우에, 제1,2 프로세서들(100,200)에는 플래시 메모리를 설치하지 않는다. 따라서 이 경우에, MLA 내의 플래시 메모리를 활용하여 제1,2 프로세서들(100,200)이 부팅되므로, 2개의 플래시 메모리가 제거된다. 단 제1,2 프로세서들(100,200)은 UART 부팅을 지원해야 한다.
부팅용 메모리를 구비함이 없이도 메모리 링크 아키텍쳐 내의 메모리를 이용하여 시스템 부팅을 수행할 수 있는 멀티 프로세서 시스템의 예가 설명될 것이다.
도 4를 참조하면, 도 3의 구조에서 플래시 메모리들(400,410)이 제거된 연결 구성이 보여진다. 도 4의 구성에서는 제3 프로세서(500)와 제2 프로세서(200)간에 연결된 시리얼 인터페이스 라인(L1) 및 리셋 신호 라인(L2)과, 제3 프로세서(500)와 제1 프로세서(100)간에 연결된 시리얼 인터페이스 라인(L3) 및 리셋 신호 라 인(L4)이 보여진다. 상기 라인들은 플래시 레스 2 프로세서 구조에서 시스템 부팅을 위해 필요해지는 신호라인들이다.
도 4에서 상기 메모리 링크 아키텍쳐 블록(510)은, 제2 프로세서에 연결된 제2 원디램(302)와, 불휘발성 반도체 메모리 장치로서의 플래시 메모리(420)와, 상기 제2 원디램(302) 및 상기 플래시 메모리(420)에 연결되며 상기 제1,2 프로세서(100,200)가 각기 대응되는 부팅용 메모리 소자 없이도 상기 플래시 메모리(420)의 지원을 받아 부팅을 수행하도록 하기 위한 제3 프로세서(500)를 포함하여 구성된다.
상기 제3 프로세서(500)는 시스템 부팅 시에 상기 제1,2 프로세서(100,200)의 홀트를 방지하기 위해 상기 리셋신호 라인들(L2,L4)을 통해 리셋 신호를 인가할 수 있다.
도 4중 제1 멀티포트 반도체 메모리 장치(300)의 세부적 블록을 도시한 도 5를 참조하면, 상기 원디램(300)의 제1 포트(P1)는 상기 시스템 버스(B10)를 통해 제1 프로세서(100)와 연결되고, 제2 포트(P2)는 상기 시스템 버스(B20)를 통해 제2 프로세서(200)와 연결된다. 결국, 상기 제1,2 프로세서들(100,200)은 서로 다른 2개의 억세스 패쓰를 통하여 상기 원디램(300)의 메모리 뱅크들을 각기 억세스 한다.
상기 원디램(300)이 도면에서 보여지는 바와 같이 4개의 메모리 영역들로 이루어진 메모리 셀 어레이를 가지는 경우라고 하면, 하나의 메모리 영역을 가리키는 제1 뱅크(310)는 제1 프로세서(100)에 의해 전용으로 억세스 되고, 제3 뱅크(330) 및 제4 뱅크(340)는 제2 프로세서(200)에 의해 전용으로 억세스 되도록 할 수 있다. 한편, 제2 뱅크(320)는 서로 다른 포트를 통하여 상기 제1,2 프로세서들(100,200)모두에 의해 억세스 되어질 수 있다. 결국, 메모리 셀 어레이 내에서 제2 뱅크(320)는 공유 메모리 영역으로서 할당되고, 나머지 뱅크들은 각기 대응되는 프로세서에 의해서만 억세스되는 전용 메모리 영역으로서 할당되는 것이다.
상기 제1 프로세서(100)가 제1 포트(P1)를 통하여 상기 제2 뱅크(320)를 억세스하는 경우에 상기 원디램(300)내의 패쓰 제어부(370)는 상기 제2 뱅크(320)가 상기 시스템 버스(B10)에 연결되도록 한다. 상기 제1 프로세서(100)가 상기 제2 뱅크(320)를 억세스 하는 동안에, 상기 제2 프로세서(200)는 제2 포트(P2)를 통하여 전용 메모리인 상기 제3 뱅크(330) 또는 제4 뱅크(340)를 억세스할 수 있다. 상기 제1 프로세서(100)가 상기 제2 뱅크(320)에 대한 억세스를 종료한 경우에, 상기 제2 프로세서(200)는 비로소 공유 메모리 영역인 상기 제2 뱅크(320)를 억세스 할 수 있게 된다.
상기 제1,2,3,4 뱅크들(310,320,330,340)은 모두 하나의 억세스 트랜지스터와 하나의 스토리지 커패시터로 구성된 디램 셀들로 구현될 수 있다. 상기 디램 셀들은 셀 내의 저장 전하를 보존하기 위해 리프레쉬 동작을 갖는다. 여기서, 상기 제1,2,3,4 뱅크들(310,320,330,340)은 각기 DRAM의 뱅크 단위로 구성될 수 있으며, 하나의 뱅크는 예컨대 16Mb(메가비트), 32Mb, 64Mb, 128Mb, 256Mb, 512Mb, 또는 1024Mb의 메모리 스토리지를 가질 수 있다.
상기 패쓰 제어부(370)의 패쓰 제어에 관한 정보를 제공하며 상기 제1,2 프 로세서들(100,200)간의 인터페이싱을 행하는 내부 레지스터(350)는 상기 메모리 셀 어레이 영역과는 별도로 마련된 데이터 저장영역이다. 즉, 상기 내부 레지스터(350)는 상기 제1,2 프로세서들(100,200)모두에 의해 억세스 되며, 플립플롭 등과 같은 래치회로로 구성될 수 있다. 따라서, 상기 내부 레지스터(350)는 DRAM의 메모리 셀과는 다른 래치타입 메모리 셀(예컨대 SRAM셀)로 구성되므로 리프레쉬 동작을 요하지 않는다.
상기 내부 레지스터(350)는, 세맵퍼(356), 제1 메일박스(352), 및 제2 메일박스(354)를 포함한다.
상기 세맵퍼(356)에는 공유 메모리 영역에 대한 억세스 권한정보가 저장된다. 제1,2 메일박스들(352,354)에는 상기 제1,2 프로세서들(100,200)이 서로 상대 프로세서로 전송하는 메시지(권한 요청, 어드레스, 데이터 사이즈, 데이터가 저장된 공유 메모리의 어드레스를 가리키는 전송 데이터, 또는 명령어 등)가 쓰여진다. 즉, 상기 제1 메일박스(352)에는 상기 제1 프로세서(100)가 상기 제2 프로세서(200)로 전송하는 메시지가 라이트 되어 있고, 상기 제2 메일박스(354)에는 상기 제2 프로세서(200)가 상기 제1 프로세서(100)로 전송하는 메시지가 라이트 되어 있다. 상기 세맵퍼(semaphore)영역(356)은 최소한 1비트로 할당될 수 있고, 상기 제1,2 메일박스들(352,354)은 각기 16비트로 할당될 수 있다.
상기 제1,2 프로세서들(100,200)간의 데이터 인터페이스가 상기 원디램(300)을 통해 구현될 경우에, 상기 제1,2 프로세서들(100,200)은 상기 제1,2 메일박스들(352,354)을 각기 활용하여 상대 프로세서에게 전송될 메시지를 라이트할 수 있 다. 라이트된 메시지를 리드한 수신 측 프로세서는 전송 측 프로세서의 메시지를 인식하고 그에 응답한 동작을 수행한다.
예를 들어, 도 4의 제2 프로세서(200)가 제1 프로세서(100)에게로 원디램(300)의 공유 메모리 영역인 제2 뱅크(320)에 대한 억세스 권한을 이양하는 경우에, 상기 제2 프로세서(200)는 내부 레지스터(350)내의 세맵퍼(356)의 플래그 데이터를 변경한 다음, 제2 메일박스(354)에 억세스 권한을 변경한다는 것을 알리는 메시지를 라이트 한다. 이에 따라, 제2 뱅크(320)에 대한 억세스 권한은 상기 제1 프로세서(100)에게로 넘어가게 된다. 상기 제2 메일박스(354)의 메시지를 리드한 제1 프로세서(100)는 억세스 권한 이양에 대한 메시지를 리드하고, 상기 세맵퍼(356)의 플래그 데이터가 변경되었나를 확인한다. 상기 플래그 데이터가 변경이 되었음을 확인 한 후, 상기 제1 프로세서(100)는 상기 제1 메일박스(352)에 억세스 권한을 접수하였다는 것을 알리는 응답 메시지를 라이트한다. 이 후, 상기 제1 프로세서(100)는 상기 제2 프로세서(200)의 권한 요청이나 자신의 타스크가 완료될 때까지, 상기 공유 메모리 영역(320)에 대한 억세스 권한을 독점적으로 갖는다.
도 5의 공유 메모리 영역인 제2 뱅크(320)내의 특정 영역은 디세이블 영역으로 설정된다. 즉, 공유 메모리 영역(320)의 임의의 1행을 인에이블 시키는 특정 로우 어드레스(0x7FFFFFFFh ~ 0x8FFFFFFFh, 2KB 사이즈 = 1 로우 사이즈)는 상기 내부 레지스터(350)를 대치적으로 억세스 하는데 할당된다. 이에 따라, 상기 특정 로우 어드레스(0x7FFFFFFFh ~ 0x8FFFFFFFh)가 인가될 때, 대응되는 특정 워드라인 영역은 디세이블되며, 대신에 상기 내부 레지스터(350)가 인에이블 된다.
도 4의 원디램(302)에 대한 세부 블록을 도시한 도 6을 참조하면, 제2 프로세서(200)의 전용 메모리 영역으로서 할당된 제1,2 뱅크들(311,321) 및 제4 뱅크의 제1,2 하프뱅크들(341,342), 제3 프로세서(500)의 전용 메모리 영역으로서 할당된 제3뱅크의 제1 하프뱅크(331), 및 공유 메모리 영역으로서 할당된 제3뱅크의 제2 하프뱅크(332)가 보여진다.
도 6의 경우에도 도 5와 마찬가지로, 내부 레지스터(350)와 패쓰 제어부(370)가 구비된다.
도 7은 도 4중 불휘발성 반도체 메모리 장치의 내부 저장 영역들이 보여진다. 도 7을 참조하면, A1영역에는 ASIC의 부트 코드가 저장되고, A2영역에는 제2 프로세서의 2차 부트로더가 저장되며, A3영역에는 제2 프로세서의 오퍼레이팅 시스템 이미지 데이터가 저장되고, A4영역에는 제1 프로세서의 2차 부트로더가 저장되며, A5영역에는 제1 프로세서의 오퍼레이팅 시스템 이미지 데이터가 저장되고, A6영역에는 유저 데이터가 저장될 수 있다.
다시 도 4를 참조하여, 플래시 레스 구조에서 메모리 링크 아키텍쳐 블록의 플래시 메모리를 활용하여 시스템 부팅을 수행하는 일예가 설명된다.
시스템에 파워가 인가되면 제1,2,3 프로세서들(100,200,500)은 각기 자신의 인터날 롬에 저장된 1차 부트로더를 리드하여 실행한다.
이후, ASIC인 상기 제3 프로세서(500)는 상기 제1,2 프로세서들(100,200)의 동작이 홀트되는 것을 방지하기 위해, 라인들(L2,L4)를 통해 리셋 신호를 인가한다. 그리고 상기 제3 프로세서(500)는 도 7의 A1 영역에 저장된 자신의 2차 부트로 더를 리드하여 실행한다. 이에 따라, 제3 프로세서(500)는 자신의 부팅 동작을 완료하게 된다.
이후, 상기 제3 프로세서(500)는 상기 제2 프로세서(200)의 리셋을 상기 라인(L2)을 통해 해제한다. 이에 따라, 제2 프로세서(200)는 자신의 1차 부트로더를 실행하면서 시리얼 인터페이스 예를 들어 UART 포트의 세팅을 행하게 된다.
상기 제3 프로세서(500)는 상기 플래시 메모리(420)의 A2 영역에 있는 제2 프로세서의 2차 부트로더를 상기 시리얼 인터페이스 버스 라인(L1)을 통해 전송하며, 상기 플래시 메모리(420)의 A3영역에 있는 상기 제2 프로세서의 오퍼레이팅 시스템 이미지 데이터를 원디램(320)의 공유 메모리 영역(332)에 저장한다.
한편, 상기 제2 프로세서(200)는 상기 2차 부트로더를 받아 디램 콘트롤러를 제어한 다음 상기 공유 메모리 영역(332)에 저장된 오퍼레이팅 시스템 이미지 데이터를 리드하여 자신의 전용 메모리 영역(311)에 카피함에 의해 부팅을 완료한다.
계속하여, 상기 제3 프로세서(500)는 상기 제2 프로세서(200)의 부팅이 완료되면, 상기 제1 프로세서(100)의 리셋을 라인(L4)를 통해 해제한다. 이에 따라 상기 제1 프로세서(100)는 자신의 1차 부트로더를 실행하면서 시리얼 인터페이스 예를 들어 UART 포트의 세팅을 행하게 된다.
상기 제3 프로세서(500)는 상기 플래시 메모리(420)의 A4영역에 있는 제1 프로세서(100)의 2차 부트로더를 상기 시리얼 인터페이스 버스 라인(L3)을 통해 전송하며, 상기 플래시 메모리(420)의 A5영역에 있는 상기 제1 프로세서(100)의 오퍼레이팅 시스템 이미지 데이터를 제2 원디램(302)의 공유 메모리 영역(332)에 저장한 다.
상기 제2 프로세서(200)는 상기 공유 메모리 영역(332)에 저장된 상기 제1 프로세서(100)의 오퍼레이팅 시스템 이미지 데이터를 제1 원디램(300)의 공유 메모리 영역(320)에 저장한다. 따라서, 상기 제1 프로세서(100)는 상기 2차 부트로더를 받아 디램 콘트롤러를 제어한 다음 상기 공유 메모리 영역(320)에 저장된 오퍼레이팅 시스템 이미지 데이터를 리드하여 자신의 전용 메모리 영역(310)에 카피함에 의해 부팅을 완료한다. 이로써 제1 프로세서(100)의 부팅도 완료되어, 전체 시스템의 부팅 동작이 완료된다.
결국, 본 발명의 제2 실시예에서는 원디램과 MLA를 채용하는 멀티 프로세서 구조에서 프로세서들에 할당된 각각의 플래시 메모리를 제거하고 MLA 내의 플래 메모리를 활용하여 시스템을 부팅하는 것에 의해, 시스템 구현 원가가 낮아지고 슬림 폼 팩터가 달성된다.
상술한 설명을 통하여 알 수 있는 바와 같이, 본 발명의 실시 예들에 따르면, 멀티 프로세서 시스템의 경우에는 부팅 속도가 높아지고, 메모리 링크 아키텍쳐를 채용하는 시스템의 경우에는 시스템 구조가 간단해진다. 따라서, 시스템의 동작 퍼포먼스가 개선되고 시스템 구현 비용이 저렴해지는 이점이 있다.
본 발명이 적용되는 멀티 프로세서 시스템에서 프로세서들의 개수는 4개 이상으로 확장될 수 있다. 상기 멀티 프로세서 시스템의 프로세서는 마이크로프로세서, CPU, 디지털 신호 프로세서, 마이크로 콘트롤러, 리듀스드 명령 세트 컴퓨터, 콤플렉스 명령 세트 컴퓨터, 또는 그와 유사한 것이 될 수 있다. 그러나 시스템 내 의 프로세서들의 개수들에 의해 본 발명의 범위가 제한되지 않음은 이해되어져야 한다. 부가하면, 본 발명의 범위는 프로세서들이 동일 또는 다르게 되는 경우에 프로세서들의 어느 특별한 조합에 한정되지 않는다.
상기한 설명에서는 본 발명의 실시예들을 위주로 도면을 따라 예를 들어 설명하였지만, 본 발명의 기술적 사상의 범위 내에서 본 발명을 다양하게 변형 또는 변경할 수 있음은 본 발명이 속하는 분야의 당업자에게는 명백한 것이다. 예를 들어, 사안이 다른 경우에 본 발명의 기술적 사상을 벗어남이 없이, 메모리 링크 아키텍쳐의 구성이나 프로세서들의 부팅 순서, 멀티포트 반도체 메모리의 공유 메모리 뱅크 구성, 내부 레지스터 내의 세맵퍼 및 메일박스의 구성, 또는 회로 구성 및 억세스 방법을 다양하게 변형 또는 변경할 수 있음은 물론이다.
또한, 에이직(ASIC)프로세서에 의해 플래시 메모리로의 억세스가 수행되었으나, 다른 프로세서에 의해서도 수행될 수 있으며, 원디램 내의 공유 메모리 영역과 , 상기 포트 유닛들 간의 데이터 패쓰를 제어하는 데이터 패쓰 콘트롤의 구현을 다양한 방법으로 구현할 수 있을 것이다. 그리고, 내부 레지스터를 이용한 세맵퍼 및 메일박스의 구성을 예를 들었으나 여기에 한정됨이 없이 PRAM 등과 같은 타의 불휘발성 메모리 등에서도 본 발명의 기술적 사상이 확장가능 할 수 있을 것이다.
도 1은 본 발명의 실시 예에 따른 멀티 프로세서 시스템의 블록도
도 2는 도 1중 프로세서들의 부팅 시퀀스를 보여주는 플로우 챠트
도 3는 본 발명의 다른 실시 예에 따른 멀티 프로세서 시스템의 블록도
도 4는 본 발명의 또 다른 실시 예에 따른 멀티 프로세서 시스템의 블록도
도 5는 도 4중 제1 멀티포트 반도체 메모리 장치의 세부적 블록도
도 6은 도 4중 제2 멀티포트 반도체 메모리 장치의 세부적 블록도
도 7은 도 4중 불휘발성 반도체 메모리 장치의 내부 저장 영역들을 보여주는 도면

Claims (11)

  1. 대응 연결된 프로세서들에 공통적으로 억세스되는 공유 메모리 영역과, 상기 프로세서들 간의 통신을 제공하기 위한 메일 박스를 구비한 멀티 포트 반도체 메모리 장치와;
    상기 멀티 포트 반도체 메모리 장치와 연결되며, 외부 소자의 의존 없이 자체적 초기 부팅동작을 수행하기 위해 디램 콘트롤을 위한 디폴트 세팅 코드를 저장하는 인터널 롬을 가지는 제1 프로세서와;
    상기 멀티 포트 반도체 메모리 장치와 연결되며, 상기 멀티 포트 반도체 메모리 장치를 통해 상기 제1 프로세서와 데이터를 수수하는 제2 프로세서와;
    상기 제2 프로세서에 연결되며 상기 제1,2 프로세서들에 관련된 부트 로더, 소프트웨어 및 유저 데이터를 저장하는 불휘발성 반도체 메모리 장치를 구비함을 특징으로 하는 멀티 프로세서 시스템.
  2. 제1항에 있어서, 상기 제1,2 프로세서는 파워 온 시에 각기 자신의 인터널 롬으로부터 1차 부트로더를 리드하여 실행하며, 상기 제1 프로세서는 디폴트 세팅 코드에 따라 디램 콘트롤러를 디폴트로 세팅함을 특징으로 하는 멀티 프로세서 시스템.
  3. 제2항에 있어서, 상기 제1,2 프로세서들에 의해 전용으로 억세스되는 전용 메모리 영역들이 상기 멀티 포트 반도체 메모리 장치 내에 있을 경우에, 상기 제2 프로세서는, 상기 1차 부트로더의 실행 후, 상기 불휘발성 반도체 메모리 장치에 있는 오퍼레이팅 시스템 이미지 데이터를 리드하여 상기 전용 메모리 영역에 저장하는 제1 트랜스퍼 단계를 수행함을 특징으로 하는 멀티 프로세서 시스템.
  4. 제3항에 있어서, 상기 제1 트랜스퍼 단계의 완료 후에, 상기 제2 프로세서는 상기 불휘발성 반도체 메모리 장치에 있는 상기 제1 프로세서의 2차 부트로더 및 오퍼레이팅 시스템 이미지 데이터를 리드하여 상기 공유 메모리 영역에 저장하는 제2 트랜스퍼 단계를 수행함을 특징으로 하는 멀티 프로세서 시스템.
  5. 제4항에 있어서, 상기 제2 트랜스퍼 단계가 완료된 후에, 상기 1 프로세서는 상기 2차 부트로더를 상기 공유 메모리 영역으로부터 리드하여 상기 디램 콘트롤러를 재 셋팅하고, 상기 오퍼레이팅 시스템 이미지 데이터를 상기 공유 메모리 영역으로부터 리드하여 자신에 대응되는 전용 메모리 영역에 카피하는 재 셋팅 및 카피 단계를 수행함을 특징으로 하는 멀티 프로세서 시스템.
  6. 제5항에 있어서, 상기 제2 프로세서는 시스템 부팅 시에 제1 프로세서의 홀트를 방지하기 위해 리셋 신호를 인가함을 특징으로 하는 멀티 프로세서 시스템.
  7. 제1 멀티 포트 반도체 메모리 장치를 공통으로 억세스 하는 제1,2 프로세서 와;
    상기 제2 프로세서에 연결된 제2 멀티 포트 반도체 메모리 장치와, 불휘발성 반도체 메모리 장치와, 상기 제2 멀티 포트 반도체 메모리 장치 및 불휘발성 반도체 메모리 장치에 연결되며 상기 제1,2 프로세서가 각기 대응되는 부팅용 메모리 소자 없이도 상기 불휘발성 반도체 메모리 장치의 지원을 받아 부팅을 수행하도록 하기 위한 제3 프로세서를 포함하는 메모리 링크 아키텍쳐 블록을 구비함을 특징으로 하는 멀티 프로세서 시스템.
  8. 제7항에 있어서, 상기 제2 프로세서와 상기 제3 프로세서간에는 시리얼 인터페이스 버스 라인과 리셋신호 라인이 연결됨을 특징으로 하는 멀티 프로세서 시스템.
  9. 제8항에 있어서, 상기 제3 프로세서는 시스템 부팅 시에 상기 제1,2 프로세서의 홀트를 방지하기 위해 상기 리셋신호 라인을 통해 리셋 신호를 인가함을 특징으로 하는 멀티 프로세서 시스템.
  10. 제9항에 있어서, 상기 제3 프로세서는 자신의 부팅 동작을 완료한 후, 상기 제2 프로세서의 리셋을 해제하고, 상기 불휘발성 반도체 메모리 장치에 있는 제2 프로세서의 부트로더를 상기 시리얼 인터페이스 버스 라인을 통해 전송하며, 상기 불휘발성 반도체 메모리 장치에 있는 상기 제2 프로세서의 오퍼레이팅 시스템 이미 지 데이터를 제2 멀티 포트 반도체 메모리 장치의 공유 메모리 영역에 저장함에 의해, 상기 제2 프로세서의 부팅이 수행되도록 함을 특징으로 하는 멀티 프로세서 시스템.
  11. 제10항에 있어서, 상기 제3 프로세서는 상기 제2 프로세서의 부팅이 완료되면, 상기 제1 프로세서의 리셋을 해제하고, 상기 불휘발성 반도체 메모리 장치에 있는 제1 프로세서의 부트로더를 상기 시리얼 인터페이스 버스 라인을 통해 전송하며, 상기 불휘발성 반도체 메모리 장치에 있는 상기 제1 프로세서의 오퍼레이팅 시스템 이미지 데이터를 제2 멀티 포트 반도체 메모리 장치의 공유 메모리 영역에 저장함에 의해, 상기 제2 프로세서의 동작 수행에 의해 상기 제1 프로세서의 부팅이 수행되도록 함을 특징으로 하는 멀티 프로세서 시스템.
KR1020090071548A 2009-08-04 2009-08-04 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템 KR20110013867A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090071548A KR20110013867A (ko) 2009-08-04 2009-08-04 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템
US12/780,989 US20110035575A1 (en) 2009-08-04 2010-05-17 Multiprocessor system comprising multi-port semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090071548A KR20110013867A (ko) 2009-08-04 2009-08-04 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템

Publications (1)

Publication Number Publication Date
KR20110013867A true KR20110013867A (ko) 2011-02-10

Family

ID=43535680

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090071548A KR20110013867A (ko) 2009-08-04 2009-08-04 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템

Country Status (2)

Country Link
US (1) US20110035575A1 (ko)
KR (1) KR20110013867A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8627019B2 (en) 2010-12-16 2014-01-07 Samsung Electronics Co., Ltd. Method and device of controlling memory area of multi-port memory device in memory link architecture
KR102045984B1 (ko) * 2019-08-08 2019-11-18 (주)메타파스 무인 항공기의 무선 영상 전송 시스템 및 방법

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370605B2 (en) * 2009-11-11 2013-02-05 Sunman Engineering, Inc. Computer architecture for a mobile communication platform
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
US9058191B2 (en) 2010-03-22 2015-06-16 Qualcomm Incorporated Direct transfer of executable software image to memory allocated by target processor based on transferred image header
WO2012027201A1 (en) 2010-08-27 2012-03-01 Raytheon Company Controller and a method for power sequencing a computer
KR101301840B1 (ko) * 2010-12-08 2013-08-29 삼성전자주식회사 비휘발성 메모리 장치의 데이터 처리 방법
WO2013028827A1 (en) 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
US11048410B2 (en) 2011-08-24 2021-06-29 Rambus Inc. Distributed procedure execution and file systems on a memory interface
US9098209B2 (en) 2011-08-24 2015-08-04 Rambus Inc. Communication via a memory interface
KR20140044121A (ko) 2012-10-04 2014-04-14 삼성전자주식회사 멀티 인터페이스를 갖는 멀티포트 반도체 메모리 장치
KR20140083530A (ko) * 2012-12-26 2014-07-04 삼성전자주식회사 하드웨어를 디버깅하는 부트 쉘을 포함하는 시스템온칩 및 이의 구동 방법
US9431077B2 (en) 2013-03-13 2016-08-30 Qualcomm Incorporated Dual host embedded shared device controller
CN103608792B (zh) * 2013-05-28 2016-03-09 华为技术有限公司 支持多核架构下资源隔离的方法及系统
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
US9489317B2 (en) * 2014-09-26 2016-11-08 Apple Inc. Method for fast access to a shared memory
US9798377B2 (en) 2014-10-08 2017-10-24 Apple Inc. Methods and apparatus for recovering errors with an inter-processor communication link between independently operable processors
WO2016175855A1 (en) 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Replicating data using dual-port non-volatile dual in-line memory modules
WO2016175857A1 (en) * 2015-04-30 2016-11-03 Hewlett Packard Enterprise Development Lp Dual-port non-volatile dual in-line memory modules
US10042794B2 (en) 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10572390B2 (en) 2016-02-29 2020-02-25 Apple Inc. Methods and apparatus for loading firmware on demand
US10198364B2 (en) 2016-03-31 2019-02-05 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10551902B2 (en) 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
US10346226B2 (en) 2017-08-07 2019-07-09 Time Warner Cable Enterprises Llc Methods and apparatus for transmitting time sensitive data over a tunneled bus interface
US10331612B1 (en) 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
US11381514B2 (en) 2018-05-07 2022-07-05 Apple Inc. Methods and apparatus for early delivery of data link layer packets
US10430352B1 (en) 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
US10585699B2 (en) 2018-07-30 2020-03-10 Apple Inc. Methods and apparatus for verifying completion of groups of data transactions between processors
US10846224B2 (en) 2018-08-24 2020-11-24 Apple Inc. Methods and apparatus for control of a jointly shared memory-mapped region
US10719376B2 (en) 2018-08-24 2020-07-21 Apple Inc. Methods and apparatus for multiplexing data flows via a single data structure
US10789110B2 (en) 2018-09-28 2020-09-29 Apple Inc. Methods and apparatus for correcting out-of-order data transactions between processors
US10838450B2 (en) 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
US11113072B2 (en) * 2019-08-02 2021-09-07 Arista Networks, Inc. Boot personality for network device
US11477123B2 (en) 2019-09-26 2022-10-18 Apple Inc. Methods and apparatus for low latency operation in user space networking
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
CN113778538A (zh) * 2021-09-13 2021-12-10 讯牧信息科技(上海)有限公司 多处理器系统及其启动方法
US11593120B1 (en) * 2021-10-04 2023-02-28 Dell Products L.P. Secondary processor device ownership assignment system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4907225A (en) * 1987-04-03 1990-03-06 Advanced Micro Devices, Inc. Data protocol controller
US7233977B2 (en) * 1998-12-18 2007-06-19 Emc Corporation Messaging mechanism employing mailboxes for inter processor communications
US7032106B2 (en) * 2001-12-27 2006-04-18 Computer Network Technology Corporation Method and apparatus for booting a microprocessor
US7290080B2 (en) * 2002-06-27 2007-10-30 Nazomi Communications Inc. Application processors and memory architecture for wireless applications
KR101173539B1 (ko) * 2006-02-15 2012-08-14 삼성전자주식회사 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법
US7680909B2 (en) * 2007-03-21 2010-03-16 Ittiam Systems (P) Ltd. Method for configuration of a processing unit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8627019B2 (en) 2010-12-16 2014-01-07 Samsung Electronics Co., Ltd. Method and device of controlling memory area of multi-port memory device in memory link architecture
KR102045984B1 (ko) * 2019-08-08 2019-11-18 (주)메타파스 무인 항공기의 무선 영상 전송 시스템 및 방법
WO2021025320A1 (ko) * 2019-08-08 2021-02-11 (주)메타파스 무인 항공기의 무선 영상 전송 시스템 및 방법

Also Published As

Publication number Publication date
US20110035575A1 (en) 2011-02-10

Similar Documents

Publication Publication Date Title
KR20110013867A (ko) 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템
US8423755B2 (en) Memory system and memory management method including the same
KR20100133649A (ko) 메모리 링크 아키텍쳐에서 파워 오프 시 데이터 로스를 방지하는 기능을 갖는 멀티 프로세서 시스템
US7730268B2 (en) Multiprocessor system having an input/output (I/O) bridge circuit for transferring data between volatile and non-volatile memory
KR100868393B1 (ko) 비휘발성 메모리 제어기 및 휘발성 메모리에 액세스하는방법 및 시스템, 비휘발성 메모리 제어기 및 휘발성 메모리
KR20100041309A (ko) 각 프로세서들의 어플리케이션 기능을 모두 활용 가능한 멀티 프로세서 시스템
US8650388B2 (en) Multi-processor systems and booting methods thereof
KR20090033539A (ko) 프로토콜 정의영역을 갖는 멀티포트 반도체 메모리 장치 및그를 채용한 멀티 프로세서 시스템과 멀티포트 반도체메모리 장치의 억세스 방법
US20080256305A1 (en) Multipath accessible semiconductor memory device
US8171233B2 (en) Multi port semiconductor memory device with direct access function in shared structure of nonvolatile memory and multi processor system thereof
US20100077130A1 (en) Multiprocessor system with booting function using memory link architecture
KR20110013868A (ko) 멀티 코멘드 셋 동작 및 우선처리 동작 기능을 갖는 멀티 프로세서 시스템
US20090210691A1 (en) Memory System and Memory Management Method Including the Same
US20160062659A1 (en) Virtual memory module
KR20090092371A (ko) 래치타입 메모리 셀들로 이루어진 공유 메모리 영역을 갖는멀티포트 반도체 메모리 장치 및 그를 채용한 멀티프로세서 시스템과 멀티포트 반도체 메모리 장치의구동방법
US20100070691A1 (en) Multiprocessor system having multiport semiconductor memory device and nonvolatile memory with shared bus
US8886915B2 (en) Multiprocessor system having direct transfer function for program status information in multilink architecture
KR20090032416A (ko) 다이렉트 억세스 부팅동작을 갖는 멀티 프로세서 시스템 및그에 따른 다이렉트 억세스 부팅방법
KR20080099945A (ko) 억세스 권한 이양 시 프리차아지 스킵을 방지하는 동작을갖는 멀티패쓰 억세스블 반도체 메모리 장치
US20090216961A1 (en) Multi-port semiconductor memory device for reducing data transfer event and access method therefor
KR20110078171A (ko) 부팅가능한 휘발성 메모리 장치와 그를 구비한 메모리 모듈 및 프로세싱 시스템, 및 그를 이용한 프로세싱 시스템 부팅 방법
KR20080111745A (ko) 다중 포트 메모리를 이용한 다중 프로세서의 부팅 방법,다중 포트 메모리 및 다중 포트 메모리를 가지는 다중프로세서 시스템
KR20080103183A (ko) 부트 램을 반도체 메모리 장치 내에 구비한 멀티 프로세서시스템 및 그를 이용한 프로세서 부팅 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid