KR100607992B1 - 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템 - Google Patents

낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR100607992B1
KR100607992B1 KR1020040053367A KR20040053367A KR100607992B1 KR 100607992 B1 KR100607992 B1 KR 100607992B1 KR 1020040053367 A KR1020040053367 A KR 1020040053367A KR 20040053367 A KR20040053367 A KR 20040053367A KR 100607992 B1 KR100607992 B1 KR 100607992B1
Authority
KR
South Korea
Prior art keywords
flash memory
nand flash
boot code
address
section
Prior art date
Application number
KR1020040053367A
Other languages
English (en)
Other versions
KR20060004304A (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 KR1020040053367A priority Critical patent/KR100607992B1/ko
Priority to US11/146,082 priority patent/US20060010282A1/en
Priority to EP05106218A priority patent/EP1615132A2/en
Publication of KR20060004304A publication Critical patent/KR20060004304A/ko
Application granted granted Critical
Publication of KR100607992B1 publication Critical patent/KR100607992B1/ko

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을 부팅하기 위한 방법 및 시스템이 개시된다. 상기 시스템은 시스템을 부팅하기 위한 부트 코드를 저장하는 낸드 플래시 메모리, 상기 낸드 플래시 메모리로부터 전달된 상기 부트 코드를 저장하기 위한 내부 메모리, 상기 낸드 플래시 메모리로부터 상기 내부 메모리로 상기 부트 코드를 전달하도록 제어하는 낸드 플레시 메모리 제어기, 상기 내부 메모리에 저장된 상기 부트 코드를 실행하기 위한 CPU 코어, 및 상기 부팅을 위해 상기 낸드 플래시 메모리의 동작상태를 감시하기 위한 신호감시장치를 포함하며, 상기 낸드 플래시 제어기는 상기 내부 메모리에 상기 부트 코드의 저장이 완료될 때까지 상기 CPU 코어의 동작을 홀드시키는 것을 특징으로 한다. 이를 통해 낸드 플래시 메모리가 정상적으로 부트 코드를 전달할 수 없는 경우에도 별도의 외부 메모리로부터 부트 코드를 실행함으로써, 고장 상황에서 보다 안정적으로 대응할 수 있는 효과가 있다.

Description

낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을 부팅하기 위한 방법 및 시스템{Method and system for booting system by monitoring operating status of NAND flash memory}
도 1은 낸드 플래시 메모리(120)를 포함한 종래의 시스템(150)을 도시하는 구성도이다.
도 2는 종래기술에 따라 낸드 플래시 메모리(120)를 포함한 시스템(150)을 부팅하기 위한 타이밍도이다.
도 3은 본 발명의 일 실시예에 따른 신호감시장치(330)를 포함한 시스템(350)의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 신호감시장치(330)를 포함한 시스템(350)에서의 부팅을 위한 타이밍도를 도시하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 신호감시장치(502a)를 포함한 시스템(550)의 구성도이다.
도 6은 본 발명의 일 실시예에 따라 시스템을 부팅하기 위한 단계들을 도시하는 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
300: 제어기
301 : CPU 코어
302, 502: 낸드 플래시 메모리 제어기
302a, 502b: 상태 레지스터
320: 낸드 플래시 메모리
330, 502b: 신호감시장치
530: 외부 메모리 제어기
531: 외부 메모리
본 발명은 낸드 플래시 메모리를 포함한 시스템에 관한 것으로, 보다 상세하게는 종래의 낸드 플래시 메모리를 포함한 시스템에 별도의 신호감시장치를 더 포함시키고, 상기 장치를 통해 낸드 플래시 메모리의 동작상태를 감시함으로써, 낸드 플래시 메모리의 동작상의 오류를 방지하고, 보다 안전하게 시스템을 부팅시키기 위한 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을 부팅하기 위한 방법 및 시스템에 관한 것이다.
일반적으로 시스템을 부팅하기 위한 기본적인 바이오스(BIOS: Basic Input output Service)와 같은 부트 코드는 롬(ROM: Read Only Memory)에 저장되었으나, 최근에는 플래시 메모리와 같은 비휘발성 기억소자를 이용하기도 한다. 플래시 메모리중 노어 플래시 메모리의 경우는 낸드 플래시 메모리에 비해 가격이 비싸며, 용량에 비해 부피가 크다는 단점이 있다.
도 1은 이러한 낸드 플래시 메모리(120)를 포함한 종래의 시스템(150)을 도시하는 구성도이며, 도 2는 종래기술에 따라 낸드 플래시 메모리(120)를 포함한 시스템(150)을 부팅하기 위한 타이밍도이다.
도 1 및 도 2를 참조하여 낸드 플래시 메모리(120)를 포함한 시스템(150)의 부팅 과정을 자세히 기술하면 다음과 같다.
우선, 낸드 플래시 메모리(120)를 이용하여 시스템(150)을 부팅하기 위해서는 부트 코드가 상기 낸드 플래시 메모리(120)내에 저장되어 있어야 한다. 시스템이 켜지면, 낸드 플래시 메모리 제어기(102)는 CPU 코어(101)의 동작을 홀드시킨다. 그와 동시에, 도 2에서 도시된 바와 같이, 명령 코드(00H) 및 시작 주소와 함께, 낸드 플래시 메모리(120)로 도면 부호 106을 통해서 CLE(Command of Latch Enable), CE#(Chip Enable), WE#(Write Enable), ALE(Address Latch Enable) 신호를 낸드 플래시 메모리(120)로 출력한다. 여기서, 상기 #은 액티브 로우(active low)로, 신호가 로우(low)인 경우에 활성화된다는 의미이다.
이에 응답하여, 낸드 플래시 메모리(120)는 도면부호 108을 통해 R/B# 신호를 출력하고, TR 구간(201) 이후에, 부트 코드인 데이터를 순차적으로 출력하고, 낸드 플래시 메모리 제어기(102)는 상기 부트 코드를 내부 메모리(103)에 저장한다. 이후 CPU 코어(101)의 홀드를 해제함으로써, CPU 코어(101)는 상기 부트 코드를 내부 메모리(103)로부터 읽어들여 실행하게 된다. 한편, 도 1에서 신호들은 내부 버스(105), 인터페이스(104), 또는 외부 버스(110)를 통해 전달된다.
그러나, 상기와 같은 시스템에 있어서는 다음과 같은 문제점이 있다.
즉, 부트 코드가 저장되어 있는 낸드 플래시 메모리가 시스템에 장착되어 있지 않은 상태에서 실수로 부팅 명령을 내린 경우(예컨대, 리셋 시킨 경우)에는, CPU 코어의 동작은 홀드된 상태이므로, 시스템이 전혀 동작하지 않게 된다. 바꾸어 말하면, 에뮬레이터 등을 이용한 기초적인 디버깅조차 할 수 없는 상태가 된다는 문제점이 있다.
본 발명은 상기와 같은 문제점들을 해결하기 위하여 창출된 것으로, 별도의 신호감시장치를 둠으로써, 낸드 플래시 메모리의 동작상태를 감시하고, 상기 낸드 플래시 메모리가 정상적으로 작동하지 않는 경우에, 즉 시스템을 부팅시키기 위한 부트 코드가 정상적으로 시스템의 내부 메모리로 전달될 수 없는 상태에서는 외부 메모리를 통해 부팅을 가능하게 하는 시스템 및 방법을 제공하는데 그 목적이 있다.
또한, 낸드 플래시 메모리가 정상적으로 작동하지 않는 경우에 리셋 어드레스를 내부 메모리의 특정 주소로 설정함으로써, 오동작에 대한 디버깅을 가능하게 함으로써, 보드 개발의 효율성을 높이는데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명에 따른 시스템은 시스템을 부팅하기 위한 부트 코드를 저장하는 낸드 플래시 메모리; 상기 낸드 플래시 메모리로부터 전달된 상기 부트 코드를 저장하기 위한 내부 메모리; 상기 낸드 플래시 메모리로 부터 상기 내부 메모리로 상기 부트 코드를 전달하도록 제어하는 낸드 플레시 메모리 제어기; 상기 내부 메모리에 저장된 상기 부트 코드를 실행하기 위한 CPU 코어; 및 상기 부팅을 위해 상기 낸드 플래시 메모리의 동작상태를 감시하기 위한 신호감시장치;를 포함하며, 상기 낸드 플래시 제어기는 상기 내부 메모리에 상기 부트 코드의 저장이 완료될 때까지 상기 CPU 코어의 동작을 홀드시키는 것을 특징으로 한다.
바람직하게는. 상기 신호감시장치는 상기 낸드 플래시 메모리 제어기내에 포함되는 것을 특징으로 한다.
바람직하게는. 상기 신호감시장치는 상기 낸드 플래시 메모리의 동작상태를 감시하기 위해 상기 낸드 플래시 메모리 제어기와 상기 낸드 플래시 메모리간에 교환되는 신호들의 상태를 감시하며, 더욱 바람직하게는 상기 신호감시장치는 소정의 구간들로 나누어 상기 낸드 플래시 메모리의 동작상태를 감시하며, 상기 소정의 구간들은 (a) 상기 낸드 플래시 메모리 제어기가 상기 낸드 플래시 메모리로 명령 및 주소를 출력하는 제1구간; (b) 상기 낸드 플래시 메모리가 상기 명령 및 주소를 해석하는 제2구간; (c) 상기 낸드 플래시 메모리가 상기 명령 및 주소에 따른 실행을 준비하는 제3구간; 및 (d) 상기 낸드 플래시 메모리로부터 상기 부트 코드를 독출하는 제4구간을 포함하는 것을 특징으로 한다.
바람직하게는, 상기 신호감시장치는 상기 제2구간 또는 상기 제3구간이 미리 설정된 소정의 시간을 초과하면 시간초과오류를 상기 낸드 플래시 메모리 제어기로 전달하는 것을 특징으로 한다.
바람직하게는, 상기 낸드 플래시 메모리 제어기는 상기 시간초과오류가 전달되면, 인터럽트를 발생시키며, 상기 플래시 메모리 제어기는 상기 인터럽트가 발생되면 디버깅을 위해 상기 내부 메모리의 특정 어드레스로 리셋 어드레스를 설정하고, 상기 CPU 코어의 동작을 허가하는 것을 특징으로 한다.
바람직하게는, 상기 시스템은 적어도 상기 부트 코드를 저장한 외부 메모리; 및 상기 외부 메모리를 제어하기 위한 외부 메모리 제어기;를 더 포함하며, 상기 인터럽트가 발생하면, 상기 외부 메모리 제어기는 상기 외부 메모리의 특정 어드레스로 리셋 어드레스를 설정하여 상기 낸드 플래시 메모리 제어기로 전달함과 아울러 상기 CPU 코어의 동작을 허가하도록 상기 낸드 플래시 메모리 제어기에 요청하는 것을 특징으로 한다.
본 발명의 다른 다른 태양에 의하면, 낸드 플래시 메모리를 포함하는 시스템의 부팅 방법이 제공되는데, (a) 부트 코드를 저장한 낸드 플래시 메모리를 준비하는 단계; (b) 상기 부트 코드를 전달하기 위해 상기 낸드 플래시 메모리의 동작상태를 감시하는 단계; (c) 상기 낸드 플래시 메모리가 정상적으로 동작하는 경우에 상기 부트 코드를 독출하여 저장하는 단계로, 상기 부트 코드를 독출하여 저장하는 동안 상기 CPU 코어의 동작을 홀드시키는 단계; 및 (d) 상기 부트 코드를 실행하는 단계;를 포함하는 것을 특징으로 한다.
본 발명의 다른 태양에 의하면, 낸드 플래시 메모리 제어기가 제공되는데 상기 낸드 플래시 메모리 제어기는 시스템을 부팅하기 위하여 낸드 플래시 메모리 및 낸드 플래시 메모리 제어기간에 전달되는 신호들을 감시함으로써, 상기 낸드 플래 시 메모리의 동작상태를 감시하기 위한 신호감시장치;를 포함하는 것을 특징으로 한다.
이하, 첨부한 도면을 참조하면서 본 발명에 따른 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을 부팅하기 위한 방법 및 시스템의 바람직한 실시예를 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호로 표기되었음에 유의하여야 한다. 또한, 하기의 설명에서는 구체적인 회로의 구성소자 등과 같은 많은 특정사항들이 도시되어 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정사항들 없이도 본 발명이 실시될 수 있음은 이 기술분야에서 통상의 지식을 가진 자에게는 자명하다 할 것이다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도 3은 본 발명의 일 실시예에 따른 신호감시장치(330)를 포함한 시스템(350)의 구성도이며, 도 4는 본 발명의 일 실시예에 따른 신호감시장치(330)를 포함한 시스템(350)의 부팅에 관한 타이밍도를 도시하는 도면이다.
도 3을 참조하여 본 발명에 따른 시스템(350)의 구성요소들을 상세히 기술하기로 한다.
우선, 제어기(300)는 CPU 코어(301), 낸드 플래시 메모리 제어기(302), 내부 메모리(303), 인터페이스(304),및 신호감시장치(330)를 포함하며, 신호들은 내부 버스(305) 또는 인터페이스(304)를 통해 내부간에서 또는 외부로 전달된다.
제어기(300)의 CPU 코어(301)는 부트 코드가 내부 메모리로 전달되는 동안에는 낸드 플래시 메모리 제어기(302)의 홀드 명령에 의해 동작을 중지하고 있으며, 홀드 명령이 종료되면 내부 메모리(303)에 저장된 부트 코드를 실행한다.
낸드 플래시 메모리 제어기(302)는 내부에 상태 레지스터(302a)를 포함하고 있으며, 시스템(350)이 리셋되면, 상기 CPU 코어(301)의 동작을 홀드시키고 낸드 플래시 메모리(320)로부터 부트 코드를 내부 메모리(303)로 전달하도록 한다. 다음에 부트 코드의 전달이 종료되면 상기 CPU 코어(301)의 홀드를 종료하여 CPU 코어(301)가 상기 부트 코드를 실행할 수 있도록 한다.
또한, 상기 낸드 플래시 메모리 제어기(302)는 신호감시장치(330)로부터 시간초과오류가 전달되면, 인터럽트를 발생시키고, 내부 메모리(303)의 특정 어드레스를 리셋 어드레스로 설정함으로써, 디버깅을 가능하도록 한다.
내부 메모리(303)는 상기 낸드 플래시 메모리(320)로부터 부트 코드를 전달받아 저장한다.
신호감시장치(330)는 상기 낸드 플래시 메모리(320)의 동작상태를 감시하는데, 구체적으로는 상기 낸드 플래시 메모리 제어기(302)와 상기 낸드 플래시 메모리(320)간에 교환되는 신호들(예컨대, 도 4에서 도시된 CLE, CE#, WE#, ALE, R/B# 및 RE 신호들)의 상태를 감시한다.
이하 시스템의 부팅을 위해 낸드 플래시 메모리(320)의 동작상태를 감시하는 과정을 보다 구체적으로 살펴보면, 다음과 같다. 신호감시장치(330)는 소정의 구간 들(도 4에서 t1 내지 t4)로 나누어 상기 낸드 플래시 메모리(320)의 동작상태를 감시하며, 상기 소정의 구간들은 도 4에서 도시된 바와 같이 (a) 상기 낸드 플래시 메모리 제어기가 상기 낸드 플래시 메모리로 명령 및 주소를 출력하는 제1구간(t1), (b) 상기 낸드 플래시 메모리가 상기 명령 및 주소를 해석하는 제2구간(t2), (c) 상기 낸드 플래시 메모리가 상기 명령 및 주소에 따른 실행을 준비하는 제3구간(t3), 및 (d) 상기 낸드 플래시 메모리로부터 상기 부트 코드(즉, 데이터)를 독출하는 제4구간(t4)으로 나눌 수 있다.
도 4를 참조하면, ALE 신호의 하강 에지(400) 이후 소정의 시간 후(t2)에, R/B# 신호가 하강하며, 또한 t3 구간 후에는 R/B# 신호가 상승하므로, 이러한 시간 차이를 감시함으로써, 낸드 플래시 메모리의 동작 상태를 감시할 수 있다. 따라서, 이하에서 기술되는 바와 같이, 본 발명은 이러한 t2 구간 및 t3 구간을 이용하며, 미리 설정된 구간들(t2 또는 t3) 동안에 상기 신호들(R/B#, RE#)의 상태가 변화하지 않으면, 오작동 또는 낸드 플래시 메모리(120)가 시스템에 존재하지 않는 것으로 판단하여, 후속 조치들을 취하게 된다.
상기 후속 조치들은 (1) 디버깅을 위해 내부 메모리(303)의 특정 주소를 리셋 어드레스로 설정하거나(도 3의 시스템에서), 또는 후술하는 바와 같이 (2) 외부 메모리(531)의 특정 주소를 리셋 어드레스로 설정하여 외부 메모리(531)를 통해 부팅하거나 또는 고장 진단 프로그램을 수행하도록 할 수 있다.
바람직하게는, 상기 신호감시장치는 상기 제2구간 또는 상기 제3구간이 미리 설정된 소정의 시간을 초과하면 시간초과오류를 상기 낸드 플래시 메모리 제어기로 전달하며, 이에 따라 상기 낸드 플래시 메모리 제어기는 상기 시간초과오류가 전달되면, 인터럽트를 발생시키고, 상태 레지스터(302a)의 특정 비트를 "1" 또는 "0"으로 설정한다.
비록 도 3은 신호감시장치(330)와 낸드 플래시 메모리 제어기(302)는 별개의 부품들로 이루어진 것으로 도시하고 있지만, 바람직하게는 상기 신호감시장치(330)는 낸드 플래시 메모리 제어기(302)내에 포함될 수 있다.
한편, 낸드 플래시 메모리(320)에는 상기 시스템(350)을 부팅하기 위한 부트 코드가 저장되어 있으며, 외부 버스(307)를 통해 상기 제어기(350)와 낸드 플래시 메모리(320)간에 데이터가 전달된다.
도 5는 본 발명의 일 실시예에 따른 신호감시장치를 포함한 시스템의 구성도로, 도 3과 다른 점은 신호감시장치(502a)가 낸드 플래시 메모리 제어기(502)내로 통합되어 있으며, 외부 메모리(531) 및 외부 메모리 제어기(530)가 추가되어 있음을 확인할 수 있다.
기본적인 동작은 도 3에서와 같으므로, 이하에서는 추가된 부분들(502a, 531, 및 530)을 위주로 기술하기로 한다.
도 5를 참조하면, 외부 메모리(531)에는 적어도 상기 시스템(550)을 부팅하기 위한 부트 코드가 저장되어 있으며, 경우에 따라서는 상기 낸드 플래시 메모리의 오작동시에 실행할 수 있는 고장 프로그램이 저장될 수도 있을 것이다.
한편, 상기 낸드 플래시 메모리 제어기(502)로부터 인터럽트가 발생하면, 상기 외부 메모리 제어기(530)는 상기 외부 메모리(531)의 특정 어드레스를 리셋 어 드레스로 설정하여 상기 낸드 플래시 메모리 제어기(502)로 전달함과 아울러 상기 CPU 코어(501)의 동작을 허가하도록 상기 낸드 플래시 메모리 제어기(502)에 요청한다. 따라서, CPU 코어(501)는 외부 메모리(531)에 저장된 실행 코드, 예를 들면 부트 코드 또는 고장 프로그램을 실행할 수 있다.
결과적으로, 도 5의 시스템은 외부 메모리(531)를 통한 부팅을 위한 것이며, 도 3은 내부 메모리(303)에 리셋 어드레스를 할당함으로써, 디버깅을 위한 것이라고 할 수 있다.
도 6은 본 발명의 일 실시예에 따라 시스템을 부팅하기 위한 단계들을 도시하는 흐름도로, 도 3 내지 도 5와 함께, 본 발명에 따른 방법을 구체적으로 기술하기로 한다.
단계 S600에서는, 부트 코드를 저장한 낸드 플래시 메모리를 준비한다.
다음에, 단계 S610에서는 부트 코드의 내부 메모리로의 전달을 위해 신호감시장치는 소정의 구간(제1구간(t1) 내지 제4구간(t4))동안 낸드 플래시 메모리 제어기 및 낸드 플래시 메모리간의 신호들을 감시한다. 한편, 낸드 플래시 메모리 제어기는 CPU 코어의 동작을 일시 정지시키기 위한 홀드 명령을 CPU 코어로 전달한다.
만약 제1구간(t1) 내지 제3구간(t3) 동안 낸드 플래시 메모리 제어기 및 낸드 플래시 메모리간의 신호들이 정상적으로 교환된다면, 제4구간(t4)에서는 플래시메모리로부터 내부 메모리로 부트 코드가 전달된다(S630). 이후에, 낸드 플래시 메모리 제어기는 CPU 코어의 홀드 명령을 종료하고, 단계 640에서, CPU 코어는 내부 메모리에 저장된 부트 코드를 실행하게 된다.
만약, 단계 S620에서 판단한 결과, 제2 구간 또는 제3 구간중 어느 하나의 구간이 미리 설정된 시간을 초과한다면, 신호감시장치는 시간초과오류를 생성하고 낸드 플래시 메모리 제어기로 전달한다(S630).
단계 S660에서, 시간초과오류를 전달받은 낸드 플래시 메모리 제어기는 외부 메모리의 특정 주소를 리셋 어드레스로 설정하여 CPU 코어에 통지하는 한편, CPU 코어의 홀드 명령을 철회한다. 이후 CPU 코어는 외부 메모리에 저장된 부트 코드를 실행하게 된다.
이미 기술된 바와 같이, 단계 S660에서는 외부 메모리가 아닌 기존의 내부 메모리의 특정 어드레스를 리셋 어드레스로 할당함으로써, 디코딩을 할 수도 있을 것이다.
이상 본 발명의 바람직한 실시예에 대해 상세히 기술하였지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
상술한 바와 같이, 본 발명은 별도의 신호감시장치를 통해 낸드 플래시 메모리의 동작상태를 감시함으로써, 낸드 플래시 메모리가 정상적으로 부트 코드를 전달할 수 없는 경우에는 별도의 외부 메모리로부터 부트 코드를 실행함으로써, 고장 상황에서 보다 안정적으로 대응할 수 있는 효과가 있다.
또한, 상기 외부 메모리에는 상기 부트 코드 외에도 고장시에 사용 가능한 프로그램을 저장하여 두면, 고장 상황뿐 아니라 보드 개발시에도 보다 효율성 증대되는 효과가 있다.

Claims (14)

  1. 시스템을 부팅하기 위한 부트 코드를 저장하는 낸드 플래시 메모리;
    상기 낸드 플래시 메모리로부터 전달된 상기 부트 코드를 저장하기 위한 내부 메모리;
    상기 낸드 플래시 메모리로부터 상기 내부 메모리로 상기 부트 코드를 전달하도록 제어하는 낸드 플레시 메모리 제어기;
    상기 내부 메모리에 저장된 상기 부트 코드를 실행하기 위한 CPU 코어; 및
    상기 부팅을 위해 상기 낸드 플래시 메모리의 동작상태를 감시하기 위한 신호감시장치;를 포함하며, 상기 낸드 플래시 제어기는 상기 내부 메모리에 상기 부트 코드의 저장이 완료될 때까지 상기 CPU 코어의 동작을 홀드시키는 것을 특징으로 하는 시스템.
  2. 제1항에 있어서, 상기 신호감시장치는
    상기 낸드 플래시 메모리 제어기내에 포함되는 것을 특징으로 하는 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 신호감시장치는
    상기 낸드 플래시 메모리의 동작상태를 감시하기 위해 상기 낸드 플래시 메모리 제어기와 상기 낸드 플래시 메모리간에 교환되는 신호들의 상태를 감시하는 것을 특징으로 하는 시스템.
  4. 제3항에 있어서, 상기 신호감시장치는
    소정의 구간들로 나누어 상기 낸드 플래시 메모리의 동작상태를 감시하며, 상기 소정의 구간들은
    (a) 상기 낸드 플래시 메모리 제어기가 상기 낸드 플래시 메모리로 명령 및 주소를 출력하는 제1구간;
    (b) 상기 낸드 플래시 메모리가 상기 명령 및 주소를 해석하는 제2구간;
    (c) 상기 낸드 플래시 메모리가 상기 명령 및 주소에 따른 실행을 준비하는 제3구간; 및
    (d) 상기 낸드 플래시 메모리로부터 상기 부트 코드를 독출하는 제4구간을 포함하는 것을 특징으로 하는 시스템.
  5. 제4항에 있어서, 상기 신호감시장치는
    상기 제2구간 또는 상기 제3구간이 미리 설정된 소정의 시간을 초과하면 시간초과오류를 상기 낸드 플래시 메모리 제어기로 전달하는 것을 특징으로 하는 시스템.
  6. 제5항에 있어서, 상기 낸드 플래시 메모리 제어기는
    상기 시간초과오류가 전달되면, 인터럽트를 발생시키는 것을 특징으로 하는 시스템.
  7. 제6항에 있어서, 상기 플래시 메모리 제어기는
    상기 인터럽트가 발생되면 디버깅을 위해 상기 내부 메모리의 특정 어드레스로 리셋 어드레스를 설정하고, 상기 CPU 코어의 동작을 허가하는 것을 특징으로 하는 시스템.
  8. 제6항에 있어서, 상기 시스템은
    적어도 상기 부트 코드를 저장한 외부 메모리; 및
    상기 외부 메모리를 제어하기 위한 외부 메모리 제어기;를 더 포함하며, 상기 인터럽트가 발생하면, 상기 외부 메모리 제어기는 상기 외부 메모리의 특정 어드레스로 리셋 어드레스를 설정하여 상기 낸드 플래시 메모리 제어기로 전달함과 아울러 상기 CPU 코어의 동작을 허가하도록 상기 낸드 플래시 메모리 제어기에 요청하는 것을 특징으로 하는 시스템.
  9. 낸드 플래시 메모리를 포함하는 시스템의 부팅 방법에 있어서,
    (a) 부트 코드를 저장한 낸드 플래시 메모리를 준비하는 단계;
    (b) 상기 부트 코드를 전달하기 위해 상기 낸드 플래시 메모리의 동작상태를 감시하는 단계;
    (c) 상기 낸드 플래시 메모리가 정상적으로 동작하는 경우에 상기 부트 코드를 독출하여 저장하는 단계로, 상기 부트 코드를 독출하여 저장하는 동안 상기 CPU 코어의 동작을 홀드시키는 단계; 및
    (d) 상기 부트 코드를 실행하는 단계;를 포함하는 것을 특징으로 하는 부팅 방법.
  10. 제9항에 있어서, 상기 낸드 플래시 메모리의 동작상태를 감시하는 단계는
    상기 낸드 플래시 메모리로 명령 및 주소를 출력하는 제1구간, 상기 낸드 플래시 메모리에서 상기 명령 및 주소를 해석하는 제2구간, 상기 낸드 플래시 메모리에서 상기 명령 및 주소에 따른 실행을 준비하는 제3구간, 및 상기 낸드 플래시 메모리로부터 상기 부트 코드를 독출하는 제4구간으로 이루어지는 것을 특징으로 하는 부팅 방법.
  11. 제10항에 있어서, 상기 낸드 플래시 메모리의 동작상태를 감시하는 단계는
    상기 제2구간 또는 상기 제3구간이 미리 설정된 소정의 시간을 초과하면 시간초과오류를 발생하는 단계를 더 포함하는 것을 특징으로 하는 부팅 방법.
  12. 제11항에 있어서, 상기 부팅 방법은
    상기 시간초과오류가 발생되면, 적어도 상기 부트 코드가 저장된 외부 메모리의 특정 어드레스로 리셋 어드레스를 설정하고, 상기 CPU 코어의 동작을 허가함으로써, 상기 부트 코드를 실행하는 단계를 더 포함하는 것을 특징으로 하는 부팅 방법.
  13. 제11항에 있어서, 상기 부팅 방법은
    상기 시간초과오류가 발생되면, 디버깅을 위해 상기 내부 메모리의 특정 어드레스로 리셋 어드레스를 설정하고, 상기 CPU 코어의 동작을 허가함으로써, 상기 부팅 단계들을 종료하는 단계를 더 포함하는 것을 특징으로 하는 부팅 방법.
  14. 낸드 플래시 메모리 제어기에 있어서,
    상기 낸드 플래시 메모리 제어기는 시스템을 부팅하기 위하여 낸드 플래시 메모리 및 낸드 플래시 메모리 제어기간에 전달되는 신호들을 감시함으로써, 상기 낸드 플래시 메모리의 동작상태를 감시하기 위한 신호감시장치를 포함하는 것을 특징으로 하는 낸드 플래시 메모리 제어기.
KR1020040053367A 2004-07-09 2004-07-09 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템 KR100607992B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040053367A KR100607992B1 (ko) 2004-07-09 2004-07-09 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템
US11/146,082 US20060010282A1 (en) 2004-07-09 2005-06-07 Method and apparatus to boot a system by monitoring an operating status of a NAND flash memory
EP05106218A EP1615132A2 (en) 2004-07-09 2005-07-07 Method and Apparatus for Booting a System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040053367A KR100607992B1 (ko) 2004-07-09 2004-07-09 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20060004304A KR20060004304A (ko) 2006-01-12
KR100607992B1 true KR100607992B1 (ko) 2006-08-02

Family

ID=35267010

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040053367A KR100607992B1 (ko) 2004-07-09 2004-07-09 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템

Country Status (3)

Country Link
US (1) US20060010282A1 (ko)
EP (1) EP1615132A2 (ko)
KR (1) KR100607992B1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161362B2 (en) * 2005-06-10 2012-04-17 Hitachi, Ltd. Task management control apparatus and method, having redundant processing comparison
US7702935B2 (en) * 2006-01-25 2010-04-20 Apple Inc. Reporting flash memory operating voltages
US7861122B2 (en) * 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
US7849302B2 (en) 2006-04-10 2010-12-07 Apple Inc. Direct boot arrangement using a NAND flash memory
US20080288712A1 (en) * 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
US7913032B1 (en) 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
KR100898123B1 (ko) * 2007-08-07 2009-05-27 (주) 라모스테크놀러지 낸드 플래시 메모리 제어 장치
US8245024B2 (en) 2009-08-21 2012-08-14 Micron Technology, Inc. Booting in systems having devices coupled in a chained configuration
US8429391B2 (en) 2010-04-16 2013-04-23 Micron Technology, Inc. Boot partitions in memory devices and systems
US8555050B2 (en) 2010-07-15 2013-10-08 Broadcom Corporation Apparatus and method thereof for reliable booting from NAND flash memory
US8464137B2 (en) 2010-12-03 2013-06-11 International Business Machines Corporation Probabilistic multi-tier error correction in not-and (NAND) flash memory
US9032235B2 (en) * 2012-07-31 2015-05-12 Kabushiki Kaisha Toshiba Semiconductor storage device and method for controlling the semiconductor storage device
CN107526535B (zh) * 2016-06-22 2020-07-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和系统
US10936456B1 (en) 2019-02-20 2021-03-02 Apple Inc. Handling malfunction in a memory system comprising a nonvolatile memory by monitoring bad-block patterns
US12099746B2 (en) * 2019-12-16 2024-09-24 Micron Technology, Inc. Interrupt signaling for a memory device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010028715A (ko) * 1999-09-22 2001-04-06 서평원 데이터 처리 시스템의 부팅 장치 및 방법
US6513113B1 (en) 1998-06-19 2003-01-28 Ricoh Company, Ltd. Electronic instrument adapted to be selectively booted either from externally-connectable storage unit or from internal nonvolatile rewritable memory
US6539474B2 (en) 1997-01-31 2003-03-25 Sony Corporation System and method for selectively executing different boot routines depending on whether an error is detected
WO2004031942A2 (en) 2002-10-02 2004-04-15 Sandisk Corporation Booting from non-linear memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432927A (en) * 1992-06-17 1995-07-11 Eaton Corporation Fail-safe EEPROM based rewritable boot system
US6243823B1 (en) * 1998-10-02 2001-06-05 International Business Machines Corporation Method and system for boot-time deconfiguration of a memory in a processing system
US7024551B2 (en) * 2003-01-07 2006-04-04 Sun Microsystems, Inc. Method and apparatus for updating boot code using a system controller
US7296143B2 (en) * 2004-06-22 2007-11-13 Lenovo (Singapore) Pte. Ltd. Method and system for loading processor boot code from serial flash memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539474B2 (en) 1997-01-31 2003-03-25 Sony Corporation System and method for selectively executing different boot routines depending on whether an error is detected
US6513113B1 (en) 1998-06-19 2003-01-28 Ricoh Company, Ltd. Electronic instrument adapted to be selectively booted either from externally-connectable storage unit or from internal nonvolatile rewritable memory
KR20010028715A (ko) * 1999-09-22 2001-04-06 서평원 데이터 처리 시스템의 부팅 장치 및 방법
WO2004031942A2 (en) 2002-10-02 2004-04-15 Sandisk Corporation Booting from non-linear memory

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
1020010028715
1020040053367 - 623468

Also Published As

Publication number Publication date
KR20060004304A (ko) 2006-01-12
US20060010282A1 (en) 2006-01-12
EP1615132A2 (en) 2006-01-11

Similar Documents

Publication Publication Date Title
KR100607992B1 (ko) 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템
US5327531A (en) Data processing system including corrupt flash ROM recovery
KR100658135B1 (ko) 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로컴퓨터
US20130024724A1 (en) Processor and method of controlling execution of processes
US8176281B2 (en) Controlling access to an embedded memory of a microcontroller
JP2003150574A (ja) マイクロコンピュータ
JP4886558B2 (ja) 情報処理装置
KR100825786B1 (ko) 메모리 카드 및 메모리 카드의 디버깅 방법
US20020120801A1 (en) Technique for capturing information
US9575545B2 (en) LSI and information processing system
JP5309938B2 (ja) 要求処理装置、要求処理システムおよびアクセス試験方法
JP3214469B2 (ja) マイクロコンピュータによるフラッシュeepromの書き込み制御方法及び装置
JP2008226111A (ja) 2重化コントローラシステム、その稼動系コントローラ
JP2007172096A (ja) 情報処理装置、および、その起動制御方法
JP2003122594A (ja) 半導体装置および評価装置
TW201430702A (zh) 韌體更新方法及系統
EP2730993B1 (en) Reset method and network device
JPH08272756A (ja) マルチプロセッサシステムの起動方法
JP3064324B2 (ja) 画像記録装置における制御ソフトウエア仕様変更システム
JP2007084232A (ja) エレベータ制御プログラム更新装置
JP2024044708A (ja) 半導体記憶装置及びメモリシステム
JP2004280789A (ja) 半導体集積回路装置およびマイクロコンピュータ開発支援装置
JP2011159126A (ja) 集積回路装置及びその制御方法、並びにデバッグシステム及びその制御方法
JP2000020498A (ja) マイクロコンピュータおよびその復帰方法
JP2007213415A (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
LAPS Lapse due to unpaid annual fee