KR100508087B1 - 낸드 플래시 메모리를 이용한 부트 시스템 및 그 방법 - Google Patents

낸드 플래시 메모리를 이용한 부트 시스템 및 그 방법 Download PDF

Info

Publication number
KR100508087B1
KR100508087B1 KR10-2002-0077291A KR20020077291A KR100508087B1 KR 100508087 B1 KR100508087 B1 KR 100508087B1 KR 20020077291 A KR20020077291 A KR 20020077291A KR 100508087 B1 KR100508087 B1 KR 100508087B1
Authority
KR
South Korea
Prior art keywords
memory
flash memory
boot
nand flash
cpu core
Prior art date
Application number
KR10-2002-0077291A
Other languages
English (en)
Other versions
KR20030074106A (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 TW092104002A priority Critical patent/TWI228220B/zh
Priority to EP10075652A priority patent/EP2293188A3/en
Priority to EP03251252A priority patent/EP1343082B1/en
Priority to JP2003060467A priority patent/JP4819301B2/ja
Priority to CNB031250378A priority patent/CN1307532C/zh
Publication of KR20030074106A publication Critical patent/KR20030074106A/ko
Application granted granted Critical
Publication of KR100508087B1 publication Critical patent/KR100508087B1/ko

Links

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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • 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
    • 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/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44573Execute-in-place [XIP]

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)
  • Stored Programmes (AREA)

Abstract

낸드 플래시 메모리를 이용하여 컴퓨팅 장치를 구동하는 방법 및 시스템이 제공된다. 낸드 플래시 메모리에 저장된 부트 코드는 CPU에 의해서 실행되도록 램으로 전달된다. 낸드 플래시 메모리에 저장된 운용체제 프로그램은 시스템 구동 후에 CPU에 의해서 실행되도록 시스템 메모리로 전달된다.

Description

낸드 플래시 메모리를 이용한 부트 시스템 및 그 방법{SYSTEM BOOT USING NAND FLASH MEMORY AND METHOD THEREOF}
본 발명은 컴퓨팅 장치를 부팅하는 시스템에 관한 것으로, 좀 더 구체적으로는 낸드 플래시 메모리를 이용하여 구동되는 시스템 및 그 부팅 방법에 관한 것이다.
PDA와 같은 일반적인 개인 컴퓨터 또는 컴퓨팅 장치에 있어서, 바이오스 (Basic Input/Output Service: BIOS)에 설치된 프로그램은 개인 컴퓨터 또는 컴퓨팅 장치가 켜질 때 실행된다. 바이오스 프로그램을 실행함으로써 많은 초기화 기능들이 수행된다. 일반적으로, 그러한 기능들은 맞춤 설정 (custom settings)에 대한 CMOS 셋업을 체크하는 기능, 인터럽트 핸들러 및 장치 드라이버들을 로딩하는 기능, 레지스터들과 장치 관리를 초기화하는 기능, 디스크 드라이브들과 같은 설치된 구성 요소들 또는 주변 장치들에 대한 파워-온 셀프-테스트 (power-on self-test: POST)를 수행하는 기능, 시스템 설정을 표시하는 기능, 어떤 구성 요소들이 구동 가능한 지를 결정하는 기능, 그리고 부트스트랩 시퀀스를 시작하는 기능을 포함한다. 통상적으로, 바이오스 (또는 부팅) 프로그램은 ROM, EPROM, 또는 NOR 플래시 메모리에 저장된다.
만약 부팅 프로그램이 ROM에 저장되면, ROM이 불 휘발성이기 때문에, 저장된 프로그램은 변경될 수 없다. 저장된 프로그램의 사소한 변경조차도 ROM의 대체를 필요로 한다. 부팅 프로그램이 EPROM에 저장되는 경우, 저장된 프로그램을 변경하기 위해서는 이전에 저장된 프로그램이 소거되어야 한다. EPROM 소거는 별개의 구성 요소 또는 장치를 더 요구한다. 만약 부팅 프로그램이 ROM 또는 EPROM에 저장되면, 부팅 프로그램에 요구되는 어떤 변경 또는 갱신도 쉽게 수행될 수 없다. 부팅 프로그램이 NOR 플래시 메모리에 저장되는 경우, 저장된 프로그램은 소거되거나 갱신될 수 있다. 하지만, NAND 플래시 메모리와 비교하여 볼 때, NOR 플래시 메모리는 주어진 메모리 저장 용량에 대해 크기가 더 크고 제조하기에 더 비싸다.
바이오스를 저장하는 NAND 플래시 메모리를 갖는 시스템의 일예가 도 1에 도시되어 있다. 이는 U.S. Patent No. 5,535,357에 개시되어 있다. 도 1을 참조하면, 시스템 (10)은 시스템 버스 (17), NAND 플래시 메모리 (18)와 내부 인터페이스 블록 (15)이 포함된 복합칩 (16), 그리고 복합칩 (16)과 시스템 메모리 (19)를 제어하기 위한 콘트롤러 (11)를 포함한다. 콘트롤러 (11)는 중앙 처리 장치 (CPU)이며, 이는 컴퓨팅 기능들을 수행하는 CPU 코어 (12), 메모리 콘트롤러 (14), 그리고 콘트롤러 (11) 내에 있는 내부 시스템 버스 (13)를 갖는다. 메모리 콘트롤러 (14)는 NAND 플래시 메모리 (18)와 시스템 메모리 (19) 사이의 메모리 맵을 수행하고, 메모리 맵에 따라 수행되는 기능들을 인터페이스하기 위한 내부 인터페이스 블록 (15)을 사용한다. 내부 인터페이스 블록 (15)은 레지스터 또는 RAM과 같은 저장 장치 내의 NAND 플래시 메모리의 데이터를 임시적으로 저장하고, 메모리 콘트롤러 (14)의 제어 하에 시스템 버스 (17)를 통해 임시로 저장된 데이터를 시스템 메모리 (19)로 전달한다.
내부 인터페이스 블록 (15)은 NAND 플래시 메모리 (18)와 인터페이스하기 위한 NAND 인터페이스 로직 (28)과 시스템 버스 (17)를 통해 시스템 메모리 (19) 또는 메모리 콘트롤러 (14)와 인터페이스하기 위한 NOR 인터페이스 로직 (29)을 포함한다. NOR 인터페이스 로직 (29)은 NOR 플래시 메모리와 메모리 콘트롤러 및/또는 시스템 메모리 사이에서 인터페이스하기 위해 일반적으로 사용되는 회로이다. 만약 플래시 메모리가 NOR 플래시 메모리이면, 플래시 메모리로부터의 신호들을 NOR 인터페이스 방식 (이 분야의 숙련된 자는 "ROM 인터페이스 방식"이라 칭함)에 일치시키기 위해 NAND 인터페이스 로직 (28)은 필요치 않다. NOR 인터페이스 방식은 바이트/워드 단위의 어드레스에 따라 메모리의 랜덤 액세스가 가능한 데이터 전송 방식이다. 반면에, NAND 인터페이스 방식에 의한 데이터 전송은 랜덤 액세스가 아니라, 블록 단위의 데이터가 블록 어드레스 및 커맨드에 의해서 전송된다.
시스템 (10)은 NAND 인터페이스 방식을 이용한 NAND 인터페이스 로직 (28)을 통해 NAND 플래시 메모리 (18)의 데이터를 내부 인터페이스 블록 (15)으로 전달하고, NOR 인터페이스 방식을 이용한 NOR 인터페이스 로직 (29)을 통해 상기 데이터를 시스템 메모리 (19)로 전달한다. NAND 플래시 메모리 (18)로부터 데이터를 액세스하기 위해 NAND 인터페이스 방식과 NOR 인터페이스 방식을 경유하여야 하기 때문에, 데이터 액세스 속도가 나빠진다. 게다가, 그러한 장치의 시스템 성능은 최적화될 수 없으며, 그 이유는 메모리 콘트롤러에 의해서 플래시 메모리 내에 저장된 부팅 코드를 액세스하는 데 필요한 시간이 시스템 성능의 한가지 측정 요소이기 때문이다.
더욱이, NAND 플래시 메모리 (18)의 모든 데이터가 내부 인터페이스 블록 (15)에 로드되어야 하고 NAND 및 NOR 인터페이스를 모두 지원하는 로직 회로가 요구되기 때문에, 내부 인터페이스 블록 (15)은 크기가 커야 한다. 따라서, 도 1에 도시된 바와 같은 시스템 (10)의 경우, 비용이 증가하고 성능이 저하될 수 있다.
본 발명의 목적은 향상된 시스템 성능을 갖는 시스템을 제공하는 것이다.
본 발명의 다른 목적은 제조 비용을 낮출 수 있는 시스템을 제공하는 것이다.
본 발명의 다른 목적은 시스템 성능을 향상시킬 수 있는 시스템 부팅 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 제조 비용을 낮출 수 있는 시스템 부팅 방법을 제공하는 것이다.
CPU 코어, 시스템 메모리, 상기 CPU 코어 및 상기 시스템 메모리간의 데이터 통신을 위한 인터페이스를 갖는 시스템은 적어도 부트 코드를 저장하는 NAND 플래시 메모리와; 상기 NAND 플래시 메모리로의 제어 신호 전송을 조정하며, 상기 NAND 플래시 메모리로부터의 부트 코드를 상기 인터페이스를 통해 받아들이는 부트 스트랩퍼와; 그리고 상기 NAND 플래시 메모리로부터 액세스된 상기 부트 코드를 저장하는 RAM을 포함하며, 시스템 부팅 동작은 상기 CPU 코어에 의해서 상기 RAM으로부터 상기 부트 코드를 독출하는 동작을 포함한다. 바람직하게, 상기 부트 코드는 시스템 초기화 프로그램과 카피 명령 프로그램을 포함한다.
본 발명의 일 실시예에 따르면, 상기 부트 스트랩퍼는 상기 NAND 플래시 메모리를 인터페이스하기 위한 NAND 인터페이스 로직을 포함하고, 상기 부트 코드를 저장하기 위한 RAM은 상기 부트 스트랩퍼 내에 집적된다.
다른 실시예에 있어서, 상기 RAM은 상기 부트 스트랩퍼의 외부에 위치한다.
상기 시스템은 상기 부트 코드가 상기 RAM에 저장될 때까지 상기 CPU 코어의 동작을 지연시키는 딜레이를 더 포함한다. 상기 딜레이는 상기 부트 스트랩퍼로 구현되고 상기 인터페이스는 메모리 콘트롤러로 구현된다. 상기 메모리 콘트롤러는 NAND 인터페이스 방식으로 상기 NAND 플래시 메모리를 인터페이스하기 위한 NAND 인터페이스 로직을 포함한다.
본 발명의 다른 실시예에 따르면, 상기 RAM은 제 1 로컬 버스를 통해 상기 CPU 코어에 연결된 캐쉬 메모리이다. 시스템은 상기 부트 스트랩퍼를 상기 캐쉬 메모리에 연결하기 위한 래퍼를 더 포함한다. 제 2 로컬 버스는 상기 부트 스트랩퍼를 상기 캐쉬 메모리에 직접 연결한다.
상기 시스템은 상기 인터페이스와 시스템 버스를 통해 상기 NAND 플래시 메모리와 상기 시스템을 제어하기 위한 메모리 콘트롤러를 더 포함하며, 상기 인터페이스는 상기 메모리 콘트롤러와 상기 부트 스트랩퍼에 의해서 시스템 버스가 동시에 액세스되는 것을 방지하기 위한 수단을 포함한다.
본 발명의 다른 실시예에 따르면, CPU 코어, 시스템 메모리, 상기 CPU 코어 및 상기 시스템 메모리간의 데이터 통신을 위한 인터페이스를 갖는 시스템은 적어도 OS 프로그램을 저장하는 NAND 플래시 메모리와; 그리고 상기 NAND 플래시 메모리에 저장된 데이터가 상기 시스템 메모리로 카피되게 하는 코드를 저장하는 RAM을 포함한다. 바람직하게, 상기 OS 프로그램은 초기화시 상기 시스템 메모리에 카피되고, 상기 CPU 코어는 상기 시스템 메모리를 액세스함으로써 상기 OS 프로그램을 실행한다.
또 다른 실시예에 따르면, CPU 코어, 시스템 메모리, 상기 CPU 코어 및 상기 시스템 메모리간의 데이터 통신을 위한 인터페이스를 갖는 시스템은 적어도 부트 코드를 저장하는 NAND 플래시 메모리와; 그리고 시스템 버스를 통해 상기 NAND 플래시 메모리에 연결되며, 상기 NAND 플래시 메모리로부터 상기 부트 코드를 받아들이는 부트 스트랩퍼를 포함하며, 상기 부트 스트랩퍼는 상기 부트 코드를 저장하기 위한 RAM를 포함하고; 시스템 부팅 동작은 상기 CPU 코어에 의해서 상기 RAM으로부터 상기 부트 코드를 독출하는 동작을 포함한다.
본 발명의 다른 특징에 있어서, CPU 코어, 시스템 메모리, 상기 CPU 코어 및 상기 시스템 메모리간의 데이터 통신을 위한 인터페이스를 갖는 시스템은 적어도 OS 프로그램을 저장하는 NAND 플래시 메모리와; 초기화 파라미터들을 설정하기 위한 복수 개의 연결 핀들과; 그리고 시스템 초기화 신호의 입력시에 상기 OS 프로그램을 상기 시스템 메모리에 카피되게 하는 카피 로직 회로를 포함하며, 상기 CPU 코어는 상기 시스템 메모리를 액세스함으로써 상기 OS 프로그램을 실행하고, 시스템 부팅 동작은 상기 CPU 코어에 의해서 상기 RAM으로부터 부트 코드를 독출하는 동작을 포함한다.
본 발명의 또 다른 특징에 있어서, CPU 코어, 시스템 메모리, 상기 CPU 코어 및 상기 시스템 메모리간의 데이터 통신을 위한 인터페이스를 갖는 시스템은 적어도 부트 코드를 저장하는 플래시 메모리와; 상기 플래시 메모리로의 제어 신호 전송을 조정하며, 상기 인터페이스를 통해 상기 플래시 메모리로부터 상기 부트 코드를 받아들이는 부트 스트랩퍼와; 상기 플래시 메모리를 선택적으로 제어하는 제 1 및 제 2 메모리 콘트롤러들과; 그리고 플래시 메모리의 종류에 따라 상기 제 1 및 제 2 메모리 콘트롤러들 중 하나의 동작을 선택하는 선택기를 포함한다.
상기 플래시 메모리는 NOR 및 NAND 플래시 메모리들 중 하나이다. 상기 제 1 메모리 콘트롤러는 NOR 인터페이스 로직을 포함하고 상기 제 2 메모리 콘트롤러는 NAND 인터페이스 로직을 포함한다.
상기 시스템은 바람직하게 상기 플래시 메모리로부터 입력된 상기 부트 코드를 저장하는 RAM을 더 포함하고, 상기 선택기는 상기 제 1 및 제 2 메모리 콘트롤러들 중 하나의 동작을 선택하기 위한 선택 핀을 포함한다.
CPU 코어, 시스템 메모리, 그리고 메모리 콘트롤러를 갖는 컴퓨팅 장치를 구동하는 방법은 NAND 플래시 메모리에 부트 코드를 미리 저장하는 단계와; 시스템 초기화 신호를 받아들이는 단계와; 상기 부트 코드를 상기 NAND 플래시 메모리에서 RAM으로 전달하는 단계와; 그리고 상기 CPU 코어가 상기 RAM에 저장된 상기 부트 코드를 실행하게 하는 단계를 포함한다.
이러한 구동 방법은 상기 시스템 초기화 신호의 입력시, 상기 부트 코드를 상기 NAND 플래시 메모리에서 상기 RAM으로 전달하는 단계가 완료될 때까지 상기 CPU 코어의 실행을 홀드시키는 단계를 더 포함한다.
본 발명의 실시예에 따른 NAND 플래시 메모리를 이용한 시스템이 도 2에 도시되어 있다.
도 2를 참조하면, 컴퓨팅 시스템 (20)은 콘트롤러 (21), 시스템 버스 (17), NAND 플래시 메모리 (18), 그리고 시스템 메모리 (19)를 포함한다. 컴퓨팅 시스템 (20)은 PDA, 팜 컴퓨터, 랩탑, 개인 컴퓨터, 또는 시스템 초기화 프로그램 (일반적으로 부트 코드라 불림)에 의해서 부팅되는 어떤 시스템인 컴퓨팅 장치의 필수적인 구성들을 포함한다.
콘트롤러 (21)는 CPU 코어 (12), 내부 시스템 버스 (13), 메모리 콘트롤러 (14), 부트 스트랩퍼 (25), 그리고 인터페이스 (27)를 포함한다. 콘트롤러 (21)는 단일의 반도체 칩에 구현될 수 있고, 일반적으로 시스템 메모리 (17)에 연결된 NAND 플래시 메모리 (18)와 시스템 메모리 (19)와 같은 어떤 메모리를 제어하고 관리한다.
시스템 버스 (17)는 콘트롤러 (21), NAND 플래시 메모리 (18), 그리고 시스템 메모리 (19)의 데이터 전송을 위해서 사용된다.
NAND 플래시 메모리 (18)는 시스템 (20)을 부팅하기 위한 부트 코드를 저장하고, 운영체제 (이하, "OS"라 칭함) 및 다른 프로그램 또는 데이터를 더 저장할 수 있다. OS는 MS-DOS 또는 WINDOW일 수 있고, 이는 부팅 또는 초기화 과정 후에 시스템 (20)을 동작하기 위한 콘트롤러 (21)에 의해서 실행된다. NAND 플래시 메모리 (18)에 저장된 데이터는 사용자의 요구를 기초로 한 유저 저장 장치들의 구성 코드 (configuration code)와 어떻게 응용 프로그램을 이용할 것인 지를 나타내는 소프트웨어 코드일 수 있다.
바람직하게, 시스템 메모리 (19)는 DRAM이며, 이는 데이터, 명령 그리고 그와 같은 것을 저장하는 메인 메모리로서 동작한다.
CPU 코어 (12)는 OS와 응용 및 동작 프로그램들을 실행한다. 내부 시스템 버스 (13)는 CPU 코어 (12)로 그리고 그것으로부터의 데이터를 전달하고, 메모리 콘트롤러 (14)와 부트 스트랩퍼 (25) 사이에서 데이터를 전달한다.
본 발명의 실시예에 따르면, 부트 코드는 초기화 이전에 NAND 플래시 메모리에 먼저 저장된다. 초기화 동작에 의하면, NAND 플래시 메모리 (18)에 저장된 부트 코드는 부트 스트랩퍼 (25) 내의 내부 RAM (26)으로 전달된다. 부트 코드의 전달이 완료된 후, 시스템 초기화 코드 및 카피 루프 명령 코드를 포함하는 부트 코드는 CPU 코어 (12)에 의해서 실행된다. 시스템 초기화 코드가 실행될 때, 콘트롤러 (21), 시스템 메모리 (19), 그리고 주변 장치들이 초기화된다. 카피 루프 명령 코드는 OS 또는 다른 저장된 데이터가 시스템 메모리 (19)에 로드되게 한다. OS 또는 임의 시간에 NAND 플래시 메모리에서 내부 RAM (26)에 로드된 다른 데이터의 크기는 부트 코드에 의해서 지정된 값에 따라 결정되거나, 부트 스트랩퍼 (25) 내의 하드웨어 로직에 의해서 결정될 수 있다. NOR 및 NAND 인터페이스 로직 (도 1 참조)과 비교하여 볼 때 부트 스트랩퍼 (25)가 단지 하나의 NAND 인터페이스 로직을 포함하기 때문에, 부트 스트랩터 (25)는 도 1의 인터페이스 블록 (15)과 비교하여 크기가 작다. 더욱이, 내부 RAM (26)이 부트 코드만을 저장하기 때문에, 부트 스트랩퍼 (25)는 NAND 플래시 메모리 (18)의 모든 데이터를 저장하는 인터페이스 블록 (15)과 비교하여 볼 때 더 작은 용량을 갖는다. 따라서, 본 발명에 따른 시스템 (20)의 가격은 도 1의 시스템 (10)의 그것보다 훨씬 더 낮다.
메모리 콘트롤러 (14)는 메모리 동작들을 제어하고 관리하며, 메모리 동작들은 NAND 플래시 메모리 (18)에 저장된 OS 또는 데이터를 시스템 버스 (17)를 통해 시스템 메모리 (19)에 저장하는 동작과 시스템 메모리 (19)로부터 데이터를 읽는 동작을 포함한다. 그러한 동작에 있어서, 메모리 콘트롤러 (14)는 NAND 플래시 메모리 (18)와 시스템 메모리 (19) 사의 메모리 맵핑 동작을 수행한다.
다음에, 도 2에 도시된 시스템 (20)의 동작이 설명된다. 시스템 (20)이 켜질 때, 부트 스트랩퍼 (25)는 시스템 초기화 신호들 (예를 들면, 파워-업 신호와 시스템 리세트 신호)을 받아들이고, NAND 플래시 메모리 (18)에 저장된 부트 코드를 시스템 메모리 (19)로 전달한다. 부트 코드가 내부 RAM (26)으로 전송되는 동안, 부트 스트랩퍼 (25)은 CPU 코어 (12)의 동작을 홀드하기 위한 제어 신호를 발생한다. 부트 코드의 전송이 완료된 후, 제어 신호는 리세트되고 CPU 코어 (12)는 활성화되어 포스트-부팅 동작 (post-booting operation)을 실행한다.
또는, CPU 코어 (12)의 동작을 홀드하기 위해서 콘트롤러 (21) 내에 딜레이 (미도시됨)가 사용될 것이다. 예를 들면, 시스템 초기화 신호들 (예를 들면, 파워-업 신호와 시스템 리세트 신호)는 CPU 코어 (12)에 연결된 부트 스트랩퍼 (25)와 딜레이에 동시에 인가된다. 부트 코드가 NAND 플래시 메모리 (18)에서 내부 RAM (26)에 전달된 후까지 시스템 초기화 신호의 도달 시간이 지연된다. 딜레이는 지연 회로에 의해서 또는 소프트웨어에 의해서 구현될 수 있다. 딜레이는 부트 코드 전송에 필요한 시간과 동일한 시간만큼 또는 그것보다 약간 길게 지연시키도록 설정된다.
CPU 코어 (12)의 활성화에 의해서, 내부 RAM (26)에 저장된 부트 코드가 실행된다. 부트 코드 내의 시스템 초기화 코드를 실행함으로써, 시스템 (20)의 하드웨어들이 초기화된다. 부트 코드의 카피 루프 명령 코드를 실행함으로써, CPU 코어 (12)는 NAND 플래시 메모리 내에 저장된 OS와 같은 프로그램들 또는 다른 데이터를 독출한다. 바람직하게, 이는 인터페이스 (27)와 부트 스트랩퍼 (25)의 NAND 인터페이스 로직 (28)을 통해 페이지 단위로 수행된다. 이후, CPU 코어 (12)는 독출된 데이터 또는 OS와 같은 프로그램들을 메모리 콘트롤러 (14)와 인터페이스 (27)를 통해 시스템 메모리 (19)로 복사한다. 카피 동작이 완료된 후, OS가 실행된다. 따라서, 부팅 과정이 완료될 때, 시스템 (20)은 시스템 메모리 (19)로부터의 OS에 의해서 구동된다.
본 발명의 실시예에 따르면, NAND 플래시 메모리 (18) 내에 저장된 부트 코드를 내부 RAM (26)으로 복사하고 그 다음에 OS를 시스템 메모리 (19)로 전달함으로써 수행되는 부팅 동작은 단일의 NAND 인터페이스를 통해 이루어진다. 도 1의 시스템에서 보여진 바와 같은 2단 인터페이스 방식 (즉, NAND 인터페이스 방식과 NOR 인터페이스 방식)과 비교하여 볼 때 부팅 속도를 보다 빠르게 구현할 수 있다.
NAND 플래시 메모리 내에 저장된 부트 코드를 부트 스트랩퍼 (25)에 의해서 독출하고 독출된 부트 코드를 내부 RAM (26)으로 전달하는 동작은 도 2 및 도 3에 의거하여 이하 상세히 설명될 것이다. 도 3은 본 발명의 바람직한 실시예에 따른 NAND 플래시 메모리로부터 부트 코드를 독출할 때의 타이밍도를 보여준다.
부트 스트랩퍼 (25)는 시스템 초기화 신호에 응답하여 NAND 플래시 메모리에 저장된 부트 코드를 독출하기 위한 제어 신호들 (예를 들면, CLE, ALE, CE, WE, RE, 그리고 R/B)을 출력한다. 독출 명령은 어드레스들 (ad0, ad1, ad2)과 함께 '00h'에서 생성된다. 시스템 초기화 신호는 파워-업 신호 (시스템의 파워-업시 생성됨), 시스템 리세트 신호, 또는 재 리세트 신호 (re-reset signal)를 포함한다.
명령 래치 인에이블 신호 (CLE)는 소정 명령이 NAND 플래시 메모리 (18)에 입력될 때 활성화된다. 어드레스 래치 인에이블 신호 (ALE)는 소정의 어드레스가 NAND 플래시 메모리 (18)에 입력될 때 활성화된다.
NAND 플래시 메모리 (18)는 명령 래치 인에이블 신호 (CLE), 칩 인에이블 신호 (CE#), 그리고 기입 인에이블 신호 (WE#)의 활성화에 응답하여 시스템 버스 (17)를 통해 독출 명령 (00h)을 받아들인다. 여기서, "#"는 액티브 로우 상태를 의미한다.
NAND 플래시 메모리 (18)는 어드레스 래치 인에이블 신호 (ALE), 칩 인에이블 신호 (CE#), 그리고 기입 인에이블 신호 (WE#)의 활성화에 응답하여 시스템 버스 (17)을 통해 어드레스를 받아들인다. 생성된 어드레스들의 수는 NAND 플래시 메모리 어드레스 스텝 선택 신호에 따라 설정될 수 있다.
본 발명의 실시예에 따르면, NAND 플래시 메모리 (18)의 3단 어드레스 입력 동작이 도 3에 도시되어 있지만, 어드레스 입력 과정이 도 3에 도시된 것에 제한되지 않음은 이 분야의 숙련된 자에게 쉽게 이해될 수 있을 것이다. NAND 플래시 메모리 어드레스 스텝 선택 신호에 따라 3단 또는 그 보다 많은 단계로 이루어진 어드레스 입력 과정이 사용될 수 있을 것이다.
본 발명에 따르면, 부트 스트랩퍼 (25)는 NAND 플래시 메모리 (18)에 저장된 부트 코드를 독출하기 위한 독출 명령 (00h)을 발생하고, 그 다음에 어드레스들 (ad0, ad1, ad2)을 발생한다. 저장된 부트 코드는 독출 명령 (00h)과 어드레스들 (ad0, ad1, ad2)에 따라 페이지 단위로 독출된다. 독출된 데이터는 NAND 플래시 메모리 (18)의 내부 버퍼 (미도시됨)에 임시 저장된다.
제어 신호 (R/B#)의 활성화 ('로우') 상태시, 데이터 (예를 들면, 부트 코드)를 내부 버퍼로 복사하는 동작이 완료된다. 제어 신호 (R/B#)의 비활성화 ('하이') 상태시, 데이터 (부트 코드; 여기서, D0, D1, D2, D3)의 복사 동작은 완료되지 않는다. 독출 인에이블 신호 (RE#)의 활성화시, 내부 버퍼에 저장된 데이터 (D0, D1, D2, D3)는 시스템 버스 (17)로 전달된다. 이후, 시스템 버스 (17) 상의 데이터 (D0, D1,D2, D3)은 내부 RAM (26)으로 전달된다.
본 발명의 바람직한 실시예에 따르면, 부트 스트랩퍼 (25)는 시스템 초기화 신호에 응답하여 CPU 코어 (12)의 동작을 홀드하거나 지연시키고, 동시에 NAND 인터페이스 로직 (28)과 인터페이스 (27)를 통해 NAND 플래시 메모리 (18)로 제어 신호들 (CE#, CLE, ALE, WE#, RE#, R/B#)을 출력한다. NAND 플래시 메모리 (18)로부터 읽혀진 데이터는 CE#, CLE, ALE, WE#, RE#, 그리고 R/B#와 같은 제어 신호들에 응답하여 NAND 인터페이스 로직 (28)과 인터페이스 (27)를 통해 부트 스트랩퍼 (25)로 전달된다. 부트 스트랩퍼 (25)는 부트 코드를 내부 RAM (26)에 저장하고, CPU 코어 (12)의 홀드 상태를 해제한다. 또는, CPU 코어 (12)는 내부 RAM (26)에 부트 코드를 저장하는 데 필요한 시간보다 더 긴 시간 동안 지연된다. 딜레이는 조절 가능한 타이머일 수 있다. 따라서, CPU 코어 (12)가 홀드 상태로 유지되는 동안, NAND 플래시 메모리 (18)에 저장된 부트 코드는 내부 RAM (26)으로 전달된다.
이후, 내부 RAM (26)에 로드된 부트 코드 내의 시스템 초기화 코드를 실행함으로써 시스템 (20)의 하드웨어들이 초기화된다. 부트 코드 내의 카피 루프 명령 코드를 실행함으로써, CPU 코어 (12)는, 바람직하게, 메모리 콘트롤러 (14)와 인터페이스 (27)를 통해 NAND 플래시 메모리 (18)에서 시스템 메모리 (19)로 OS가 전송되게 한다. 인터페이스 (27) 내의 멀티플렉싱 또는 데이터 선택 회로 (미도시됨)는 메모리 버스 (17)로의 액세스를 멀티플렉싱하며, 그 결과 메모리 콘트롤러 (14)와 부트 스트랩퍼 (25)가 동시에 시스템 버스 (17)를 액세스하는 것을 방지할 수 있다.
시스템 메모리 (19)로의 OS 전송이 완료된 후, 시스템 메모리 (19)로부터의 OS가 실행되고 시스템 (20)은 OS에 의해서 구동된다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 2 실시예가 도 4에 도시되어 있다. 이 실시예에 따르면, 내부 RAM (33)은 부트 스트랩퍼 (32)의 외부에 배치된다. 부트 스트랩퍼 (32)에서 내부 RAM (33)으로의 액세스는 바람직하게 내부 시스템 버스 (13)를 통해 이루어진다. 그것과 달리, NAND 플래시 메모리 (18)로부터의 데이터 전송 동작들은 앞서 설명된 것과 동일하다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 3 실시예가 도 5에 도시되어 있다. 이 실시예에 따르면, 부트 스트랩퍼 (32)에서 내부 RAM (33)으로의 액세스는 바람직하게 버스 (34)를 통해 이루어진다. 이와는 달리, NAND 플래시 메모리 (18)로부터의 데이터 전송 동작들은 앞서 설명된 것과 동일하다. 내부 RAM (34)으로의 로딩 동작을 위해 버스 (34)를 사용함으로써 NAND 플래시 메모리 (18)로부터 부트 코드를 전달하는 데 필요한 시간이 줄어들며, 그 결과 시스템 성능이 향상될 수 있다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 4 실시예가 도 6에 도시되어 있다. 도 6의 시스템 (50)은 콘트롤러 (51), NAND 플래시 메모리 (18), 시스템 버스 (17), 그리고 시스템 메모리 (19)를 포함한다.
콘트롤러 (51)는 부트 스트랩퍼 (52), CPU 코어 (12), 내부 시스템 버스 (13), 내부 RAM (53), 그리고 메모리 콘트롤러 (54)를 포함하며, 메모리 콘트롤러 (54)는 NAND 인터페이스 로직 (28)을 갖는다. 도 6에 도시된 바와 같이, 내부 RAM (53)은 부트 스트랩퍼 (52) 내에 위치하지만, 도 4 및 도 5에 도시된 바와 같이 부트 스트랩퍼 (52)의 외부에 배치될 수 있다. 이 실시예에 따르면, 메모리 콘트롤러 (54)는 시스템 메모리 (19)를 제어하고 NAND 플래시 메모리 (18)를 직접 액세스하는 데 사용된다. 따라서, 이 실시예에 따른 메모리 콘트롤러 (54)는 도 2에 도시된 인터페이스 (27)에 의해서 이전에 수행된 기능들을 수행할 수 있다.
부트 스트랩퍼 (52)는 시스템 초기화 신호에 응답하여 CPU 코어 (12)의 동작을 홀드하며, 동시에 NAND 인터페이스 로직 (28)에 의한 NAND 인터페이스 방식을 사용하여 내부 시스템 버스 (13)를 통해 NAND 플래시 메모리 (18)에 저장된 부트 코드를 독출한다. 이후, 부트 스트랩퍼 (52)는 독출된 부트 코드를 내부 RAM (53)에 로드한다. 시스템 초기화 신호는 파워-온 신호 또는 리세트 신호에 응답하여 생성된 신호이다.
부트 코드 내의 시스템 초기화 코드를 실행함으로써, 시스템 (20)의 하드웨어들이 초기화된다. 부트 코드 내의 카피 루프 명령 코드를 실행함으로써, CPU 코어 (12)는 메모리 콘트롤러 (54) 내에 저장된 OS를 독출하고, 그 OS를 시스템 메모리 (19)로 로드한다. 시스템 메모리 (19)로의 OS 전송이 완료된 후, 시스템 메모리 (19)로부터의 OS가 실행된다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 5 실시예가 도 7에 도시되어 있다. 콘트롤러 (61)는 CPU 코어 (12), 부트 스트랩퍼 (62), 내부 시스템 버스 (13), 메모리 콘트롤러 (54), 그리고 내부 RAM (63)를 포함한다. 내부 RAM (63)이 부트 스트랩퍼 (62)의 외부에 배치되어 있다.
부트 스트랩퍼 (62)는 시스템 초기화 신호에 응답하여 CPU 코어 (12)의 동작을 홀드하고, 동시에 메모리 콘트롤러 (54)의 NAND 인터페이스 로직 (28)에 의한 NAND 인터페이스 방식을 이용하여 NAND 플래시 메모리 (18) 내에 저장된 부트 코드를 독출한다. 이후, 부트 스트랩퍼 (62)는 내부 시스템 버스 (13)를 통해 내부 RAM (63)으로 독출된 부트 코드를 로드한다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 6 실시예가 도 8에 도시되어 있다. 콘트롤러 (71)는 CPU 코어 (12), 로컬 버스 (75), 캐쉬 메모리 (73), 래퍼 (wrapper) (72), 내부 시스템 버스 (13), 메모리 콘트롤러 (54), 그리고 부트 스트랩퍼 (74)를 포함한다. 래퍼 (72)는 바람직하게 소프트웨어 프로그램 또는 하드웨어이며, 이는 캐쉬 메모리 (73)로의 또는 그것으로부터의 액세스를 선택적으로 제어하기 위해 실행된다. 캐쉬 메모리 (73)는 종종 사용된 데이터를 임시적으로 저장하기 위해 CPU 코어 (12)에 인접하여 배치된다. 캐쉬 메모리 (73)의 액세스 시간은 도 7의 내부 RAM의 그것보다 더 짧다.
캐쉬 메모리 (73)가 내부 시스템 버스 (13)를 통해 액세스되는 경우, 부트 스트랩퍼 (74)은 시스템 초기화 신호에 응답하여 CPU 코어 (12)의 동작을 지연시키거나 홀드하며, 동시에 NAND 인터페이스 로직 (28)에 의한 NAND 인터페이스 방식을 이용하여 NAND 플래시 메모리 (18) 내에 저장된 부트 코드를 독출한다. 이후, 부트 스트랩퍼 (74)는 내부 시스템 버스 (13)를 통해 캐쉬 메모리 (73)에 독출된 부트 코드를 기입한다.
캐쉬 메모리 (73)가 로컬 버스 (75)를 통해 액세스되는 경우, 부트 스트랩퍼 (74)는 시스템 초기화 신호에 응답하여 CPU 코어 (12)의 동작을 홀드하며, 동시에 NAND 인터페이스 로직 (28)을 이용하여 NAND 플래시 메모리 (18) 내에 저장된 부트 코드를 독출한다. 이후, 부트 스트랩퍼 (74)는 래퍼 (72) 및 로컬 버스 (75)를 통해 캐쉬 메모리 (73) 내에 독출된 부트 코드를 기입한다. 본 발명에 따른 부트 시스템을 이용한 시스템 부팅 동작은 보다 빠르게 이루어지며, 그 이유는 캐쉬 메모리(73)의 액세스 시간이 더 짧기 때문이다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 7 실시예가 도 9에 도시되어 있다. 콘트롤러 (81)는 캐쉬 메모리 (73)와 부트 스트랩퍼 (74) 사이에서 데이터를 전달하기 위한 제 2 로컬 버스 (82)를 포함한다. 도 9의 부트 스트랩퍼 (74)는 도 8의 부트 스트랩퍼와 동일한 방식으로 동작한다.
부트 스트랩퍼 (74)는 시스템 초기화 신호에 응답하여 CPU 코어 (12)의 동작을 홀드하며, 동시에 메모리 콘트롤러 (54)의 NAND 인터페이스 로직 (28)을 이용하여 NAND 플래시 메모리 (18) 내에 저장된 부트 코드를 독출한다. 이후, 부트 스트랩퍼 (74)은 버스 (82)을 통해 캐쉬 메모리 (73) 내에 독출된 부트 코드를 기입 (복사, 로드, 그리고 전송)한다. 캐쉬 메모리 (73)에 부트 코드를 저장한 후, 다음의 동작들은 버스 (82)가 사용된다는 점을 제외하면 도 6에서 설명된 것과 동일하다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 8 실시예가 도 10에 도시되어 있다. 콘트롤러 (91)는 CPU 코어 (12), 로컬 버스 (75), 캐쉬 메모리 (73), 래퍼 (72), 내부 시스템 버스 (13), 메모리 콘트롤러 (54), 그리고 캐쉬 및 부트 스트랩퍼 (92)를 포함한다. 캐쉬 및 부트 스트랩퍼 (92)는 내장된 캐쉬 메모리를 갖는 부트 스트랩퍼이다.
캐쉬 및 부트 스트랩퍼 (92)는 시스템 초기화 신호에 응답하여 CPU 코어 (12)의 동작을 홀드하며, 동시에 NAND 플래시 메모리 (18) 내에 저장된 부트 코드를 독출한다. 이후, 캐쉬 및 부트 스트랩퍼 (92)는 내부 시스템 버스 (13)를 통해 스트랩퍼 (92) 내의 캐쉬 메모리에 독출된 부트 코드를 기입한다. 또는, 래퍼 (72)는 로컬 버스 (75)를 통해 부트 코드를 로드하도록 설정될 수 있다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 9 실시예가 도 11에 도시되어 있다. 콘트롤러 (101)는 CPU 코어 (12), 메모리 콘트롤러 (54), 카피 로직 블록 (105), 내부 시스템 버스 (13), 그리고 옵션 핀들 (106)을 포함한다. 옵션 핀들은 전원 전압 (VCC) 또는 접지 전압 (GND)에 선택적으로 연결된다. 본 발명의 실시예에 따르면, 콘트롤러 (101)는 시스템 메모리 (19) 내의 모드 레지스터 (MRS) (미도시됨)를 설정함으로써 시스템 메모리가 초기화되는 초기화 동작을 수행한다. MRS는 옵션 핀들 (106)을 사용하여 설정될 수 있다. MRS는 사용될 시스템 메모리 (19)의 동작 모드 (예를 들면, CAS 레이턴시 또는 버스트 길이)로 미리 설정된다. 예를 들면, NAND 플래시 메모리 내에서 한번에 시스템 메모리 (19)로 로드될 데이터의 크기는 버스트 길이에 따라 결정된다. 카피 로직 블록 (105)은 OS와 같은 데이터 또는 NAND 플래시 메모리 (18)에 저장된 일반적인 데이터를 시스템 메모리 (19)로 복사하는 동작을 지시하며, 콘트롤러 (101)에서 사용되는 일련의 명령들을 포함한다. 이 실시예에 따르면, 부트 코드는 불필요하며 NAND 플래시 메모리 (18)에 저장될 필요가 없다. CPU 코어 (12)의 동작은 시스템 초기화 신호에 응답하여 홀드된다. 동시에, 카피 로직 블록 (105)은 OS와 같은 데이터와 NAND 플래시 메모리 (18)에서 읽혀진 데이터를 시스템 메모리 (19)에 저장하도록 설정된다. 카피 동작이 완료된 후, CPU 코어 (12)는 활성화되고 시스템 메모리 (19) 내의 OS가 실행된다. 시스템 (20)은 그 다음에 OS에 응답하여 구동된다.
그러한 장치 (100)에 있어서, 시스템 메모리 (19)를 초기화하기 위한 시스템 초기화 동작은 옵션 핀들 (106)의 연결 정보에 따라 완료된다. 부트 코드를 콘트롤러로 복사하는 동작이 제거되었기 때문에, 시스템 부팅 속도가 향상된다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 10 실시예가 도 12에 도시되어 있다. 콘트롤러 (110)는 CPU 코어 (12), 메모리 콘트롤러 (54), 내부 시스템 버스 (13), 그리고 ROM 블록 (115)을 포함한다. 여기서, ROM 블록 (115)은 도 11의 카피 로직 블록 (105)을 대체한다. 시스템 초기화 코드 및 NAND 플래시 메모리 (18)에 저장된 데이터가 시스템 메모리 (19)에 복사되게 하는 명령을 포함하는 ROM 데이터는 ROM 블록 (115)에 미리 저장된다. ROM 블록 (115)은 바람직하게 마스크 ROM, 플래시 메모리 또는 그와 같은 것을 포함한다.
시스템 초기화 신호에 응답하여, CPU 코어 (12)는 활성화되어 ROM 블록 (115)에 포함된 시스템 초기화 코드에 따라 초기화 동작을 수행하고 NAND 플래시 메모리 (18)에 저장된 OS 또는 일반적인 데이터를 시스템 메모리 (19)로 복사한다. 카피 동작이 완료된 후, CPU 코어 (12)는 활성화되고 시스템 메모리 (19) 내의 OS가 실행된다. 즉, 부팅 동작이 종료될 때, 시스템 (110)은 OS에 응답하여 구동된다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 11 실시예가 도 13에 도시되어 있다. 시스템 (120)은 콘트롤러 (121), 부트 스트랩퍼 (25), NAND 플래시 메모리 (18), 그리고 시스템 메모리 (19)를 포함한다. 콘트롤러 (121)는 CPU 코어 (12), 내부 시스템 버스 (13), 그리고 메모리 콘트롤러 (14)를 갖는다. 본 발명에 따르면, 부트 스트랩퍼 (25)는 콘트롤러 (121)의 외부에 배치되며 시스템 버스 (17)를 통해 콘트롤러 (121)에 선택적으로 연결된다.
CPU 코어 (12)의 동작은 시스템 초기화 신호에 응답하여 홀드되며, 부트 스트랩퍼 (25)는 동시에 NAND 플래시 메모리 (18) 내의 부트 코드를 시스템 버스 (17)를 통해 내부 RAM (26)에 로드한다. 부트 코드를 내부 RAM (26)에 저장한 후, 다음의 동작들은 도 2에서 설명된 것과 동일하다.
본 발명에 따른 NAND 플래시 메모리를 이용한 부트 시스템의 제 12 실시예가 도 14에 도시되어 있다. 시스템 (130)은 콘트롤러 (131), 플래시 메모리 (135), 시스템 메모리 (19), 그리고 시스템 버스 (17)를 포함한다. 콘트롤러 (131)는 CPU 코어 (12), NOR 인터페이스 로직 (29)을 갖는 제 1 메모리 콘트롤러 (133), NAND 인터페이스 로직을 갖는 제 2 메모리 콘트롤러 (134), 선택 회로 (136), 그리고 옵션 핀 (132)를 갖는다. 제 1 및 제 2 메모리 콘트롤러들 (133, 134)는 플래시 메모리 (135)의 종류에 따라 선택 회로 (136)에 의해서 시스템 버스 (17)에 선택적으로 연결된다. 옵션 핀 (132)은 전원 전압 (VCC) 또는 접지 전압 (GND)에 연결된다. 제 1 메모리 콘트롤러 (133) 또는 제 2 메모리 콘트롤러 (134)는 옵션 핀 (132)이 전원 전압 (VCC) 또는 접지 전압 (GND)에 연결되었는 지의 여부를 알리는 연결 정보에 따라 선택적으로 활성화된다.
본 발명에 따르면, 플래시 메모리 (135)는 NOR 플래시 메모리, NAND 플래시 메모리, 또는 다른 형태의 메모리이다. 만약 NOR 플래시 메모리가 플래시 메모리 (135)로서 사용되면, 제 1 메모리 콘트롤러 (133)는 NOR 인터페이스 로직 (29)과 시스템 버스 (17)를 통해 NOR 플래시 메모리에 연결된다. 이 경우, 제 1 메모리 콘트롤러 (133)는 제 1 메모리 콘트롤러 (133) 내의 일반적인 NOR 인터페이스 방식을 사용하여 시스템 버스 (17)를 NOR 플래시 메모리와 상호 연결한다. 따라서, 시스템 (130)의 콘트롤러 (131)는 NOR 플래시 메모리의 데이터 (예를 들면, 부트 코드, OS, 그리고 일반적인 데이터)을 쉽게 액세스할 수 있다. 만약 NAND 플래시 메모리가 플래시 메모리 (135)로서 사용되면, 제 2 메모리 콘트롤러 (134)는 NAND 인터페이스 로직 (28)과 시스템 버스 (17)를 통해 NAND 플래시 메모리에 연결된다. 이 경우, 제 2 메모리 콘트롤러 (134)는 NAND 인터페이스 방식을 사용하여, 도 2 내지 도 13에서 설명된 과정에 따라, 시스템 버스 (17)를 NAND 플래시 메모리와 상호 연결한다. 결과적으로, 시스템 (130)의 콘트롤러 (131)는 플래시 메모리 (135)의 종류에 관계없이 데이터 (예를 들면, 부트 코드, OS, 그리고 일반적인 데이터)를 액세스할 수 있다.
본 발명에 따른 플래시 메모리 내에 저장된 부트 코드를 로딩하는 절차들을 보여주는 흐름도가 도 15에 도시되어 있다. 도 2 내지 도 13을 참조하면, 각 도면에 도시된 부트 스트랩퍼의 초기 상태는 유휴 상태 (idle state)이다 (150 단계).
시스템 초기화 신호에 응답하여, 부트 스트랩퍼는 플래시 메모리의 페이지 크기, 밀도, 그리고 데이터 폭을 검출하고, 동시에 시스템의 CPU를 홀드하기 위한 제어 신호를 출력한다. 또는, 시스템은 부트 코드가 내부 RAM에 로드될 때까지 CPU를 홀드시키기 위한 딜레이를 사용한다 (151 단계).
부트 스트랩퍼는 도 3에서 설명된 방법에 따라 플래시 메모리 내에 저장된 부트 코드를 페이지 단위로 독출하고, 독출된 데이터를 소정의 버스 또는 인터페이스를 통해, 콘트롤러의 내부에 또는 외부에 위치한, 내부 RAM에 로드한다 (152 단계).
153 단계, 부트 스트랩퍼는 로드된 부트 코드의 전송 크기를 검출한다. 만약 전송 크기가 '0'가 아니면, 절차는 152 단계로 돌아간다.
만약 전송 크기가 '0'이면, 즉, 플래시 메모리에 저장된 부트 코드가 모두 내부 RAM에 로드되면, 부트 스트랩퍼는 부트 코드를 로드하는 것을 종료하고 시스템의 CPU를 활성화시킨다 (154 단계).
시스템 부팅 방법에 따르면, 플래시 메모리에 저장된 부트 코드는 CPU 코어가 동작하기 전에 콘트롤러의 내에 또는 외부에 위치한 내부 RAM에 로드된다. 내부 RAM에 저장된 부트 코드에 의해서, 플래시 메모리에 저장된 소정의 OS가 외부 시스템 메모리 (19)로 복사된다. 카피 동작이 완료된 후, 시스템 메모리 (19) 내의 OS가 실행된다.
OS와 관련된 모든 프로그램들, 파일들 또는 데이터가 시스템 메모리 (19)에 로드된 후, 시스템은 시스템 메모리 (19) 내의 OS에 의해서 구동된다.
이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
본 발명의 실시예에 따르면, NAND 플래시 메모리 (18) 내에 저장된 부트 코드를 내부 RAM (26)으로 복사하고 그 다음에 OS를 시스템 메모리 (19)로 전달함으로써 수행되는 부팅 동작은 단일의 NAND 인터페이스를 통해 이루어진다. 도 1의 시스템에서 보여진 바와 같은 2단 인터페이스 방식 (즉, NAND 인터페이스 방식과 NOR 인터페이스 방식)과 비교하여 볼 때 본 발명에 따른 시스템의 부팅 속도를 보다 빠르게 구현할 수 있다.
도 1은 일반적인 NAND 플래시 메모리를 갖는 컴퓨팅 시스템을 보여주는 도면;
도 2는 본 발명의 바람직한 실시예에 따른 NAND 플래시 메모리를 이용한 시스템을 보여주는 도면;
도 3은 플래시 메모리로부터의 부트 코드를 전달하는 과정을 설명하기 위한 타이밍도;
도 4는 본 발명에 따른 컴퓨팅 시스템의 다른 실시예;
도 5는 본 발명에 따른 컴퓨팅 시스템의 또 다른 실시예;
도 6은 본 발명에 따른 컴퓨팅 시스템의 또 다른 실시예;
도 7은 본 발명에 따른 컴퓨팅 시스템의 또 다른 실시예;
도 8은 본 발명에 따른 컴퓨팅 시스템의 또 다른 실시예;
도 9는 본 발명에 따른 컴퓨팅 시스템의 또 다른 실시예;
도 10은 본 발명에 따른 컴퓨팅 시스템의 또 다른 실시예;
도 11은 본 발명에 따른 컴퓨팅 시스템의 또 다른 실시예;
도 12는 본 발명에 따른 컴퓨팅 시스템의 또 다른 실시예;
도 13은 본 발명에 따른 컴퓨팅 시스템의 또 다른 실시예;
도 14는 본 발명에 따른 컴퓨팅 시스템의 또 다른 실시예; 그리고
도 15는 본 발명에 따른 플래시 메모리 내에 저장된 부트 코드를 로딩하는 절차들을 보여주는 흐름도이다.
* 도면의 주요 부분에 대한 부호 설명 *
12 : CPU 코어 13 : 내부 시스템 버스
14 : 메모리 콘트롤러 17 : 시스템 버스
18 : 낸드 플래시 메모리 19 : 시스템 메모리
20: 시스템 21 : 콘트롤러
25 : 부트 스트랩퍼 26 : 내부 RAM
27 : 인터페이스 28 : NAND 인터페이스 로직

Claims (40)

  1. CPU 코어, 시스템 메모리, 상기 CPU 코어 및 상기 시스템 메모리간의 데이터 통신을 위한 인터페이스를 갖는 시스템에 있어서:
    적어도 부트 코드를 저장하는 NAND 플래시 메모리와;
    상기 NAND 플래시 메모리로의 제어 신호 전송을 조정하며, 상기 NAND 플래시 메모리로부터의 부트 코드를 상기 인터페이스를 통해 받아들이는 부트 스트랩퍼와; 그리고
    상기 NAND 플래시 메모리로부터 액세스된 상기 부트 코드를 저장하는 RAM을 포함하며,
    시스템 부팅 동작은 상기 CPU 코어에 의해서 상기 RAM으로부터 상기 부트 코드를 독출하는 동작을 포함하는 것을 특징으로 하는 시스템.
  2. 제 1 항에 있어서,
    상기 부트 코드는 시스템 초기화 프로그램과 카피 명령 프로그램을 포함하는 것을 특징으로 하는 시스템.
  3. 제 1 항에 있어서,
    상기 부트 스트랩퍼는 상기 NAND 플래시 메모리를 인터페이스하기 위한 NAND 인터페이스 로직을 포함하는 것을 특징으로 하는 시스템.
  4. 제 1 항에 있어서,
    상기 부트 스트랩퍼는 상기 부트 코드를 저장하기 위한 RAM을 포함하는 것을 특징으로 하는 시스템.
  5. 제 1 항에 있어서,
    상기 RAM은 상기 부트 스트랩퍼의 외부에 위치하는 것을 특징으로 하는 시스템.
  6. 제 1 항에 있어서,
    상기 부트 코드가 상기 RAM에 저장될 때까지 상기 CPU 코어의 동작을 지연시키는 딜레이를 더 포함하는 것을 특징으로 하는 시스템.
  7. 제 6 항에 있어서,
    상기 딜레이는 상기 부트 스트랩퍼로 구현되는 것을 특징으로 하는 시스템.
  8. 제 1 항에 있어서,
    상기 인터페이스는 메모리 콘트롤러로 구현되는 것을 특징으로 하는 시스템.
  9. 제 8 항에 있어서,
    상기 메모리 콘트롤러는 NAND 인터페이스 로직을 포함하는 것을 특징으로 하는 시스템.
  10. 제 9 항에 있어서,
    상기 부트 스트랩퍼는 상기 부트 코드를 저장하기 위한 상기 RAM을 포함하는 것을 특징으로 하는 시스템.
  11. 제 9 항에 있어서,
    상기 RAM은 상기 부트 스트랩퍼의 외부에 위치하는 것을 특징으로 하는 시스템.
  12. 제 1 항에 있어서,
    상기 RAM은 제 1 로컬 버스를 통해 상기 CPU 코어에 연결된 캐쉬 메모리인 것을 특징으로 하는 시스템.
  13. 제 12 항에 있어서,
    상기 부트 스트랩퍼를 상기 캐쉬 메모리에 연결하기 위한 래퍼를 더 포함하는 것을 특징으로 하는 시스템.
  14. 제 12 항에 있어서,
    상기 부트 스트랩퍼를 상기 캐쉬 메모리에 직접 연결하기 위한 제 2 로컬 버스를 더 포함하는 것을 특징으로 하는 시스템.
  15. 제 14 항에 있어서,
    상기 인터페이스는 메모리 콘트롤러로 구현되는 것을 특징으로 하는 시스템.
  16. 제 15 항에 있어서,
    상기 메모리 콘트롤러는 NAND 인터페이스 로직을 포함하는 것을 특징으로 하는 시스템.
  17. 제 1 항에 있어서,
    상기 부트 스트랩퍼는 상기 부트 코드를 저장하기 위한 상기 RAM을 포함하며, 상기 RAM은 로컬 버스를 통해 상기 CPU 코어에 연결된 캐쉬 메모리인 것을 특징으로 하는 시스템.
  18. 제 1 항에 있어서,
    상기 인터페이스와 시스템 버스를 통해 상기 NAND 플래시 메모리와 상기 시스템을 제어하기 위한 메모리 콘트롤러를 더 포함하며, 상기 인터페이스는 상기 메모리 콘트롤러와 상기 부트 스트랩퍼에 의해서 시스템 버스가 동시에 액세스되는 것을 방지하기 위한 수단을 포함하는 것을 특징으로 하는 시스템.
  19. 제 18 항에 있어서,
    상기 메모리 콘트롤러는 NAND 인터페이스 로직을 포함하는 것을 특징으로 하는 시스템.
  20. CPU 코어, 시스템 메모리, 상기 CPU 코어 및 상기 시스템 메모리간의 데이터 통신을 위한 인터페이스를 갖는 시스템에 있어서:
    적어도 OS 프로그램을 저장하는 NAND 플래시 메모리와; 그리고
    상기 NAND 플래시 메모리에 저장된 데이터가 상기 시스템 메모리로 카피되게 하는 코드를 저장하는 RAM을 포함하는 것을 특징으로 하는 시스템.
  21. 제 20 항에 있어서,
    상기 OS 프로그램은 초기화시 상기 시스템 메모리에 카피되고, 상기 CPU 코어는 상기 시스템 메모리를 액세스함으로써 상기 OS 프로그램을 실행하는 것을 특징으로 하는 시스템.
  22. 제 21 항에 있어서,
    상기 인터페이스와 시스템 버스를 통해 상기 NAND 플래시 메모리와 상기 시스템을 제어하는 메모리 콘트롤러를 더 포함하며, 상기 인터페이스는 상기 메모리 콘트롤러 및 부트 스트랩퍼에 의해서 상기 시스템 버스가 동시에 액세스되는 것을 방지하는 수단을 포함하는 것을 특징으로 하는 시스템.
  23. 제 22 항에 있어서,
    상기 메모리 콘트롤러는 NAND 인터페이스 로직을 포함하는 것을 특징으로 하는 시스템.
  24. CPU 코어, 시스템 메모리, 상기 CPU 코어 및 상기 시스템 메모리간의 데이터 통신을 위한 인터페이스를 갖는 시스템에 있어서:
    적어도 부트 코드를 저장하는 NAND 플래시 메모리와; 그리고
    시스템 버스를 통해 상기 NAND 플래시 메모리에 연결되며, 상기 NAND 플래시 메모리로부터 상기 부트 코드를 받아들이는 부트 스트랩퍼를 포함하며,
    상기 부트 스트랩퍼는 상기 부트 코드를 저장하기 위한 RAM를 포함하고; 시스템 부팅 동작은 상기 CPU 코어에 의해서 상기 RAM으로부터 상기 부트 코드를 독출하는 동작을 포함하는 것을 특징으로 하는 시스템.
  25. 제 24 항에 있어서,
    상기 인터페이스와 시스템 버스를 통해 상기 NAND 플래시 메모리와 상기 시스템을 제어하는 메모리 콘트롤러를 더 포함하며, 상기 인터페이스는 상기 메모리 콘트롤러 및 부트 스트랩퍼에 의해서 상기 시스템 버스가 동시에 액세스되는 것을 방지하는 수단을 포함하는 것을 특징으로 하는 시스템.
  26. 제 25 항에 있어서,
    상기 메모리 콘트롤러는 NAND 인터페이스 로직을 포함하는 것을 특징으로 하는 시스템.
  27. CPU 코어, 시스템 메모리, 상기 CPU 코어 및 상기 시스템 메모리간의 데이터 통신을 위한 인터페이스를 갖는 시스템에 있어서:
    적어도 OS 프로그램을 저장하는 NAND 플래시 메모리와;
    초기화 파라미터들을 설정하기 위한 복수 개의 연결 핀들과; 그리고
    시스템 초기화 신호의 입력시에 상기 OS 프로그램을 상기 시스템 메모리에 카피되게 하는 카피 로직 회로를 포함하며,
    상기 CPU 코어는 상기 시스템 메모리를 액세스함으로써 상기 OS 프로그램을 실행하는 것을 특징으로 하는 시스템.
  28. 제 27 항에 있어서,
    상기 인터페이스와 시스템 버스를 통해 상기 NAND 플래시 메모리와 상기 시스템을 제어하는 메모리 콘트롤러를 더 포함하며, 상기 인터페이스는 상기 메모리 콘트롤러 및 부트 스트랩퍼에 의해서 상기 시스템 버스가 동시에 액세스되는 것을 방지하는 수단을 포함하는 것을 특징으로 하는 시스템.
  29. 제 28 항에 있어서,
    상기 메모리 콘트롤러는 NAND 인터페이스 로직을 포함하는 것을 특징으로 하는 시스템.
  30. CPU 코어, 시스템 메모리, 상기 CPU 코어 및 상기 시스템 메모리간의 데이터 통신을 위한 인터페이스를 갖는 시스템에 있어서:
    적어도 부트 코드를 저장하는 플래시 메모리와;
    상기 플래시 메모리로의 제어 신호 전송을 조정하며, 상기 인터페이스를 통해 상기 플래시 메모리로부터 상기 부트 코드를 받아들이는 부트 스트랩퍼와;
    상기 플래시 메모리를 선택적으로 제어하는 제 1 및 제 2 메모리 콘트롤러들과; 그리고
    플래시 메모리의 종류에 따라 상기 제 1 및 제 2 메모리 콘트롤러들 중 하나의 동작을 선택하는 선택기를 포함하는 것을 특징으로 하는 시스템.
  31. 제 30 항에 있어서,
    상기 플래시 메모리는 NOR 및 NAND 플래시 메모리들 중 하나인 것을 특징으로 하는 시스템.
  32. 제 31 항에 있어서,
    상기 제 1 메모리 콘트롤러는 NOR 인터페이스 로직을 포함하고 상기 제 2 메모리 콘트롤러는 NAND 인터페이스 로직을 포함하는 것을 특징으로 하는 시스템.
  33. 제 30 항에 있어서,
    상기 플래시 메모리로부터 입력된 상기 부트 코드를 저장하는 RAM을 더 포함하는 것을 특징으로 하는 시스템.
  34. 제 30 항에 있어서,
    상기 선택기는 상기 제 1 및 제 2 메모리 콘트롤러들 중 하나의 동작을 선택하기 위한 선택 핀을 포함하는 것을 특징으로 하는 시스템.
  35. CPU 코어, 시스템 메모리, 그리고 메모리 콘트롤러를 갖는 컴퓨팅 장치를 구동하는 방법에 있어서:
    NAND 플래시 메모리에 부트 코드를 미리 저장하는 단계와;
    시스템 초기화 신호를 받아들이는 단계와;
    상기 부트 코드를 상기 NAND 플래시 메모리에서 RAM으로 전달하는 단계와; 그리고
    상기 CPU 코어가 상기 RAM에 저장된 상기 부트 코드를 실행하게 하는 단계를 포함하는 것을 특징으로 하는 방법.
  36. 제 35 항에 있어서,
    상기 시스템 초기화 신호의 입력시, 상기 부트 코드를 상기 NAND 플래시 메모리에서 상기 RAM으로 전달하는 단계가 완료될 때까지 상기 CPU 코어의 실행을 홀드시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
  37. CPU 코어, 시스템 메모리, 그리고 메모리 콘트롤러를 갖는 컴퓨팅 장치를 구동하는 방법에 있어서:
    적어도 하나의 연결 핀에 초기화 파라미터들을 설정하는 단계와;
    시스템 초기화 신호를 받아들이는 단계와;
    NAND 플래시 메모리에서 상기 시스템 메모리로 OS 프로그램을 전달하는 단계와; 그리고
    상기 CPU 코어가 상기 시스템 메모리로부터의 상기 OS 프로그램을 실행하게 하는 단계를 포함하는 것을 특징으로 하는 방법.
  38. 제 37 항에 있어서,
    상기 OS 프로그램을 실행하는 이전에 상기 적어도 하나의 연결 핀으로부터의 초기화 파라미터들을 이용하여 상기 시스템 메모리 내의 모드 레지스터를 설정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  39. CPU 코어, 시스템 메모리, 그리고 메모리 콘트롤러를 갖는 컴퓨팅 장치를 구동하는 방법에 있어서:
    NAND 플래시 메모리 내에 OS 프로그램을 미리 저장하는 단계와;
    상기 NAND 플래시 메모리로부터의 데이터 전송을 일으키기 위한 제어 데이터를 포함하는 데이터를 ROM에 미리 저장하는 단계와;
    시스템 초기화 신호를 받아들이는 단계와;
    상기 ROM로부터의 상기 제어 데이터를 사용하여 상기 NAND 플래시 메모리로부터의 OS 프로그램이 상기 시스템 메모리로 전달되게 하는 단계와; 그리고
    상기 CPU 코어가 상기 시스템 메모리로부터의 상기 OS 프로그램을 실행하게 하는 단계를 포함하는 것을 특징으로 하는 방법.
  40. 제 39 항에 있어서,
    상기 시스템 초기화 신호의 입력시, 상기 OS 프로그램을 상기 NAND 플래시 메모리에서 상기 ROM으로 전달하는 단계가 완료될 때까지 상기 CPU 코어의 실행을 홀드시키는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR10-2002-0077291A 2002-03-08 2002-12-06 낸드 플래시 메모리를 이용한 부트 시스템 및 그 방법 KR100508087B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
TW092104002A TWI228220B (en) 2002-03-08 2003-02-26 System boot using NAND flash memory and method thereof
EP10075652A EP2293188A3 (en) 2002-03-08 2003-02-28 System boot using NAND flash memory and method thereof
EP03251252A EP1343082B1 (en) 2002-03-08 2003-02-28 System boot using nand flash memory and method thereof
JP2003060467A JP4819301B2 (ja) 2002-03-08 2003-03-06 Nandフラッシュメモリを利用したブートシステム及びその方法
CNB031250378A CN1307532C (zh) 2002-03-08 2003-03-08 利用与非闪速存储器的引导系统及其方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020020012356 2002-03-08
KR20020012356 2002-03-08
KR1020020015856 2002-03-23
KR20020015856 2002-03-23

Publications (2)

Publication Number Publication Date
KR20030074106A KR20030074106A (ko) 2003-09-19
KR100508087B1 true KR100508087B1 (ko) 2005-08-17

Family

ID=29552411

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0077291A KR100508087B1 (ko) 2002-03-08 2002-12-06 낸드 플래시 메모리를 이용한 부트 시스템 및 그 방법

Country Status (3)

Country Link
US (2) US7234052B2 (ko)
EP (1) EP2293188A3 (ko)
KR (1) KR100508087B1 (ko)

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100448905B1 (ko) * 2002-07-29 2004-09-16 삼성전자주식회사 낸드플래쉬메모리를 시스템구동 및 저장용으로 사용하는장치
US20040240272A1 (en) * 2003-06-02 2004-12-02 Ng Hon-Wai Preset data storage for personal digital device
US7073013B2 (en) * 2003-07-03 2006-07-04 H-Systems Flash Disk Pioneers Ltd. Mass storage device with boot code
WO2005003952A1 (ja) * 2003-07-07 2005-01-13 Hitachi Ulsi Systems Co., Ltd. 記憶装置および記憶システム
US7752380B2 (en) * 2003-07-31 2010-07-06 Sandisk Il Ltd SDRAM memory device with an embedded NAND flash controller
US7257703B2 (en) * 2003-11-18 2007-08-14 Toshiba America Electronic Components, Inc. Bootable NAND flash memory architecture
JP4404625B2 (ja) * 2003-12-25 2010-01-27 パナソニック株式会社 情報処理装置および該装置用のromイメージ生成装置
US7594135B2 (en) 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation
US7610433B2 (en) * 2004-02-05 2009-10-27 Research In Motion Limited Memory controller interface
JP4357331B2 (ja) * 2004-03-24 2009-11-04 東芝メモリシステムズ株式会社 マイクロプロセッサブートアップ制御装置、及び情報処理システム
US20050223209A1 (en) * 2004-03-31 2005-10-06 Giga-Byte Technology Co., Ltd. Apparatus for fast booting computer and method for the same
KR20060020284A (ko) * 2004-08-31 2006-03-06 삼성전자주식회사 중앙 처리장치의 초기화 장치 및 방법
KR100634436B1 (ko) 2004-09-23 2006-10-16 삼성전자주식회사 멀티 칩 시스템 및 그것의 부트코드 페치 방법
JP2006146485A (ja) * 2004-11-18 2006-06-08 Toshiba Corp 携帯端末
KR100620732B1 (ko) * 2004-12-06 2006-09-12 주식회사 팬택앤큐리텔 이동통신 단말기 및 부팅 처리 방법
EP1681628B1 (en) * 2005-01-14 2016-11-02 Telefonaktiebolaget LM Ericsson (publ) Method and device for initializing a booting procedure of a mobile device
US7657696B2 (en) * 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
KR100597787B1 (ko) * 2005-03-21 2006-07-06 삼성전자주식회사 멀티 칩 패키지 디바이스
JP2006277395A (ja) * 2005-03-29 2006-10-12 Matsushita Electric Ind Co Ltd 情報処理装置及び情報処理方法
JP2006323739A (ja) * 2005-05-20 2006-11-30 Renesas Technology Corp メモリモジュール、メモリシステム、及び情報機器
KR100777446B1 (ko) 2005-05-25 2007-11-21 삼성전자주식회사 전자장치 및 그 부팅방법
KR101118111B1 (ko) * 2005-07-08 2012-03-12 엘지전자 주식회사 이동통신단말기 및 그 부팅방법
JPWO2007013191A1 (ja) * 2005-07-29 2009-02-05 パナソニック株式会社 メモリ書き込み装置
US8429326B2 (en) * 2005-09-12 2013-04-23 Mediatek Inc. Method and system for NAND-flash identification without reading device ID table
US8171192B2 (en) * 2005-09-20 2012-05-01 Qualcomm Incorporated Hardware-assisted device configuration detection
US20070165457A1 (en) * 2005-09-30 2007-07-19 Jin-Ki Kim Nonvolatile memory system
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
WO2007036050A1 (en) 2005-09-30 2007-04-05 Mosaid Technologies Incorporated Memory with output control
KR100667822B1 (ko) * 2005-10-10 2007-01-11 삼성전자주식회사 낸드 플래시 메모리를 이용한 화상형성장치의 초기화제어장치 및 방법
US7640424B2 (en) * 2005-10-13 2009-12-29 Sandisk Corporation Initialization of flash storage via an embedded controller
US20070094489A1 (en) * 2005-10-21 2007-04-26 Sony Corporation Embedded system that boots from USB flash drive
KR20050107369A (ko) * 2005-10-27 2005-11-11 서운식 모바일 기기를 위한 코드 직접 수행기능을 갖는 대용량저장장치 및 제어 방법
KR100804647B1 (ko) 2005-11-15 2008-02-20 삼성전자주식회사 병렬형 플래시 인터페이스를 지원하는 직렬형 플래시메모리 장치를 이용한 시스템 부팅 방법 및 장치
US20070147115A1 (en) * 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
KR100734303B1 (ko) 2006-01-14 2007-07-02 삼성전자주식회사 시스템 프로그램 다운로드 방법
US7490177B2 (en) * 2006-01-23 2009-02-10 Infineon Technologies Ag System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture
KR101173539B1 (ko) 2006-02-15 2012-08-14 삼성전자주식회사 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법
KR100737919B1 (ko) * 2006-02-28 2007-07-10 삼성전자주식회사 낸드 플래시 메모리의 프로그램 방법 및 메모리 시스템의프로그램 방법
US7822958B1 (en) * 2006-03-10 2010-10-26 Altera Corporation Booting mechanism for FPGA-based embedded system
KR20070095136A (ko) * 2006-03-20 2007-09-28 엘지전자 주식회사 프로그램이 가능한 부팅 지원 장치 및 방법
US7555678B2 (en) * 2006-03-23 2009-06-30 Mediatek Inc. System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting
US8065563B2 (en) * 2006-03-23 2011-11-22 Mediatek Inc. System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting
US7849302B2 (en) * 2006-04-10 2010-12-07 Apple Inc. Direct boot arrangement using a NAND flash memory
US20070245061A1 (en) * 2006-04-13 2007-10-18 Intel Corporation Multiplexing a parallel bus interface and a flash memory interface
TW200741545A (en) * 2006-04-20 2007-11-01 Altek Corp Boot system booting by using a NAND flash
WO2007127188A2 (en) * 2006-04-24 2007-11-08 Encryptakey, Inc. Portable device and methods for performing secure transactions
KR100880379B1 (ko) * 2006-05-25 2009-01-23 삼성전자주식회사 외부로부터 제공받는 부트 코드로 부팅되는 정보기기시스템
KR20080011627A (ko) * 2006-07-31 2008-02-05 윤동구 컴퓨터 시스템 및 이 시스템의 부팅 방법
WO2008016245A1 (en) * 2006-07-31 2008-02-07 Dong-Goo Yun Computer system and method of booting the same
US8001314B2 (en) 2006-09-12 2011-08-16 Apple Inc. Storing a driver for controlling a memory
KR100799687B1 (ko) * 2006-09-19 2008-02-01 삼성전자주식회사 비휘발성 메모리를 공유하는 두 개 이상의 콘트롤러를내장한 시스템
US20080114960A1 (en) * 2006-11-14 2008-05-15 Tau-Li Huang Memory control methods for accessing a memory with partial or full serial transmission, and related apparatus
JP2008134736A (ja) * 2006-11-27 2008-06-12 Fujifilm Corp 電子機器
US7870327B1 (en) 2007-04-25 2011-01-11 Apple Inc. Controlling memory operations using a driver and flash memory type tables
TW200849096A (en) * 2007-06-12 2008-12-16 Realtek Semiconductor Corp Data recovering method
KR101249831B1 (ko) * 2007-08-06 2013-04-05 삼성전자주식회사 컴퓨터 시스템 및 그 부팅 방법
US20090070572A1 (en) * 2007-09-11 2009-03-12 Mark Shahaf Method and apparatus for portable computing environment
CN101802795B (zh) * 2007-09-14 2013-03-13 富士通株式会社 信息处理装置及其控制方法
KR101430687B1 (ko) * 2007-09-28 2014-08-18 삼성전자주식회사 다이렉트 억세스 부팅동작을 갖는 멀티 프로세서 시스템 및그에 따른 다이렉트 억세스 부팅방법
KR101211503B1 (ko) 2007-10-02 2012-12-12 삼성전자주식회사 부팅 시스템, 그 시스템을 구비한 화상형성장치 및 그제어방법
US8171277B2 (en) 2008-07-02 2012-05-01 Apple Inc. Method and apparatus for booting from a flash memory without prior knowledge of flash parameter information
US8281169B2 (en) 2008-08-27 2012-10-02 Wireless Silicon Group, Inc. Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
US8713241B2 (en) * 2008-08-27 2014-04-29 Wireless Silicon Group, Llc Method and apparatus for an active low power mode of a portable computing device
US8417928B2 (en) 2008-09-24 2013-04-09 Marvell International Ltd. Turbo boot systems and methods for subsequent booting from a captured data stored in a non-volatile semiconductor memory
TWI379234B (en) * 2008-12-09 2012-12-11 Phison Electronics Corp Motherboard, storage device and controller thereof and booting method
JP2010140266A (ja) * 2008-12-11 2010-06-24 Toshiba Corp 電子デバイスシステムと電子デバイス
US8175012B2 (en) * 2009-03-26 2012-05-08 Mediatek Inc. Decoding/encoding method for booting from a NAND flash and system thereof
US8589629B2 (en) * 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
US8245024B2 (en) 2009-08-21 2012-08-14 Micron Technology, Inc. Booting in systems having devices coupled in a chained configuration
US8464020B2 (en) * 2009-12-07 2013-06-11 Panasonic Corporation Non-volatile storage device, host device, storage system, data communication method and program
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
DE112010005372T5 (de) 2010-04-21 2013-01-24 Hewlett-Packard Development Company, L.P. Kommunizieren von Betriebssystem-Boot-Informationen
US8234487B2 (en) * 2010-04-30 2012-07-31 Kabushiki Kaisha Toshiba Server apparatus and startup control method
US8555050B2 (en) * 2010-07-15 2013-10-08 Broadcom Corporation Apparatus and method thereof for reliable booting from NAND flash memory
US8996851B2 (en) * 2010-08-10 2015-03-31 Sandisk Il Ltd. Host device and method for securely booting the host device with operating system code loaded from a storage device
US8621194B2 (en) 2010-08-31 2013-12-31 Conexant Systems, Inc. Processor NAND flash boot system and method
US8713357B1 (en) 2011-09-06 2014-04-29 Western Digital Technologies, Inc. Systems and methods for detailed error reporting in data storage systems
US8707104B1 (en) 2011-09-06 2014-04-22 Western Digital Technologies, Inc. Systems and methods for error injection in data storage systems
US9195530B1 (en) 2011-09-06 2015-11-24 Western Digital Technologies, Inc. Systems and methods for improved data management in data storage systems
US8700834B2 (en) * 2011-09-06 2014-04-15 Western Digital Technologies, Inc. Systems and methods for an enhanced controller architecture in data storage systems
CN103946814B (zh) * 2011-09-30 2017-06-06 英特尔公司 计算机系统中的非易失性随机存取存储器的自主初始化
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
GB2498172B (en) * 2011-12-01 2018-12-12 Qualcomm Technologies Int Ltd A near field communication equipped device
US9053008B1 (en) 2012-03-26 2015-06-09 Western Digital Technologies, Inc. Systems and methods for providing inline parameter service in data storage devices
US9348783B2 (en) 2012-04-19 2016-05-24 Lockheed Martin Corporation Apparatus and method emulating a parallel interface to effect parallel data transfer from serial flash memory
CN103631737A (zh) * 2012-08-27 2014-03-12 鸿富锦精密工业(深圳)有限公司 存储器数据处理系统及方法
US8984368B2 (en) 2012-10-11 2015-03-17 Advanced Micro Devices, Inc. High reliability memory controller
WO2014204331A1 (en) * 2013-06-17 2014-12-24 Llc "Topcon Positioning Systems" Nand flash memory interface controller with gnss receiver firmware booting capability
KR102060430B1 (ko) 2013-08-08 2020-02-11 삼성전자주식회사 웨이크-업 시간을 줄일 수 있는 시스템 온 칩. 애플리케이션 프로세서, 및 상기 시스템 온 칩을 포함하는 컴퓨터 시스템
US10331586B2 (en) 2015-10-30 2019-06-25 Samsung Electronics Co., Ltd. Nonvolatile memory device for providing fast booting and system including the same
US11556424B2 (en) 2021-01-19 2023-01-17 Western Digital Technologies, Inc. Non-volatile storage device having fast boot code transfer with low speed fallback
US11366673B1 (en) * 2021-02-24 2022-06-21 Hewlett Packard Enterprise Development Lp Managing transitioning of computing system to power-on state from standby-power state

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535357A (en) * 1993-03-15 1996-07-09 M-Systems Flash Disk Pioneers Ltd. Flash memory system providing both BIOS and user storage capability
US5822581A (en) * 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
KR19990002308A (ko) * 1997-06-19 1999-01-15 김영환 셋탑박스의 부팅롬 장치
KR20000049321A (ko) * 1999-09-06 2000-08-05 이호동 플래시 카드를 이용한 리눅스 자동복구시스템
KR20010087868A (ko) * 2000-03-09 2001-09-26 김광수 리눅스 운영 체제 부팅 방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5146596A (en) * 1990-01-29 1992-09-08 Unisys Corporation Multiprocessor multifunction arbitration system with two levels of bus access including priority and normal requests
US5128995A (en) 1990-07-23 1992-07-07 International Business Machines Corp. Apparatus and method for loading a system reference diskette image from a system partition in a personal computer system
DE4215063C2 (de) 1991-05-10 1999-11-25 Intel Corp Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher
US5471674A (en) 1992-02-07 1995-11-28 Dell Usa, L.P. Computer system with plug-in override of system ROM
US5432927A (en) 1992-06-17 1995-07-11 Eaton Corporation Fail-safe EEPROM based rewritable boot system
US5413775A (en) 1992-09-29 1995-05-09 Amerchol Corporation Hairsprays and acrylic polymer compositions for use therein
US6182187B1 (en) 1993-04-07 2001-01-30 Compaq Computer Corporation System ROM including a flash EPROM and a ROM for storing primary boot code replacing a block flash EPROM
JP3670041B2 (ja) 1993-12-10 2005-07-13 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 不揮発性メモリチップイネーブル符号化方法、コンピュータシステム、およびメモリコントローラ
GB2290890B (en) 1994-06-29 1999-03-24 Mitsubishi Electric Corp Information processing system
US5918047A (en) 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
KR100198382B1 (ko) 1996-05-07 1999-06-15 윤종용 멀티-부팅 기능을 갖는 컴퓨터 장치
US5794054A (en) 1996-07-19 1998-08-11 Compaq Computer Corporation Flash ROM sharing between a processor and a controller
FR2752631B1 (fr) 1996-08-22 1999-01-22 Schneider Automation Procede de chargement d'un systeme d'exploitation
US5951685A (en) 1996-12-20 1999-09-14 Compaq Computer Corporation Computer system with system ROM including serial-access PROM coupled to an auto-configuring memory controller and method of shadowing BIOS code from PROM
US6058474A (en) * 1997-01-24 2000-05-02 Texas Instruments Incorporated Method and apparatus for DMA boot loading a microprocessor without an internal ROM
JP4248624B2 (ja) 1998-07-03 2009-04-02 株式会社デンソー 内燃機関用電子制御装置。
US6212632B1 (en) 1998-07-31 2001-04-03 Flashpoint Technology, Inc. Method and system for efficiently reducing the RAM footprint of software executing on an embedded computer system
US6282643B1 (en) 1998-11-20 2001-08-28 International Business Machines Corporation Computer system having flash memory BIOS which can be accessed remotely while protected mode operating system is running
JP3309822B2 (ja) * 1999-01-12 2002-07-29 日本電気株式会社 半導体記憶装置及びその試験方法
JP2001025053A (ja) * 1999-07-09 2001-01-26 Mitsubishi Electric Corp 携帯電話のメモリシステム
JP4199892B2 (ja) 1999-12-14 2008-12-24 株式会社日立コミュニケーションテクノロジー 加入者インタフェース回路起動方法、並びに加入者インタフェース回路
US6601167B1 (en) 2000-01-14 2003-07-29 Advanced Micro Devices, Inc. Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program
KR100383774B1 (ko) 2000-01-26 2003-05-12 삼성전자주식회사 공통 인터페이스 방식의 메모리 장치들을 구비한 시스템
CN1207851C (zh) 2001-08-20 2005-06-22 三星电子株式会社 在移动台中交接调制解调器和存储器的设备和方法
KR100454143B1 (ko) * 2001-11-19 2004-10-26 주식회사 하이닉스반도체 플래쉬 메모리 소자 및 그 소거 방법
US20030233533A1 (en) * 2002-06-13 2003-12-18 M-Systems Flash Disk Pioneers Ltd. Boot from cache

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535357A (en) * 1993-03-15 1996-07-09 M-Systems Flash Disk Pioneers Ltd. Flash memory system providing both BIOS and user storage capability
US5822581A (en) * 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
KR19990002308A (ko) * 1997-06-19 1999-01-15 김영환 셋탑박스의 부팅롬 장치
KR20000049321A (ko) * 1999-09-06 2000-08-05 이호동 플래시 카드를 이용한 리눅스 자동복구시스템
KR20010087868A (ko) * 2000-03-09 2001-09-26 김광수 리눅스 운영 체제 부팅 방법

Also Published As

Publication number Publication date
US20070220247A1 (en) 2007-09-20
US8185728B2 (en) 2012-05-22
US20030172261A1 (en) 2003-09-11
EP2293188A3 (en) 2011-08-10
US7234052B2 (en) 2007-06-19
EP2293188A2 (en) 2011-03-09
KR20030074106A (ko) 2003-09-19

Similar Documents

Publication Publication Date Title
KR100508087B1 (ko) 낸드 플래시 메모리를 이용한 부트 시스템 및 그 방법
JP4819301B2 (ja) Nandフラッシュメモリを利用したブートシステム及びその方法
US7296143B2 (en) Method and system for loading processor boot code from serial flash memory
JP5588536B2 (ja) メモリ・デバイス、メモリ・デバイスを有するシステム、及び埋め込み型デバイスの動作方法
US5371876A (en) Computer system with a paged non-volatile memory
KR101159400B1 (ko) 하이브리드 메모리 장치를 위한 방법 및 시스템
US8677109B2 (en) Non-volatile memory device adapted to identify itself as a boot memory
US5951685A (en) Computer system with system ROM including serial-access PROM coupled to an auto-configuring memory controller and method of shadowing BIOS code from PROM
US20070233955A1 (en) Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces
US20100146256A1 (en) Mixed-Mode ROM/RAM Booting Using an Integrated Flash Controller with NAND-Flash, RAM, and SD Interfaces
JPH06214670A (ja) コンピュータ装置およびそれを初期化する方法
US7240146B2 (en) Random access interface in a serial memory device
KR100634436B1 (ko) 멀티 칩 시스템 및 그것의 부트코드 페치 방법
JP2004118826A (ja) フラッシュメモリを用いてブーティングされるシステム装置及びそのブーティング方法
US6622244B1 (en) Booting from a reprogrammable memory on an unconfigured bus by modifying boot device address
KR100534613B1 (ko) 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법
GB2304209A (en) Starting up a processor system
KR101028855B1 (ko) 시리얼 플래시 컨트롤러
JP2003141096A (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: 20120801

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130731

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140731

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180731

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190731

Year of fee payment: 15