KR100607992B1 - 낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템 - Google Patents
낸드 플래시 메모리의 동작 상태의 감시를 통해 시스템을부팅하기 위한 방법 및 시스템 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection 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
도 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)
- 시스템을 부팅하기 위한 부트 코드를 저장하는 낸드 플래시 메모리;상기 낸드 플래시 메모리로부터 전달된 상기 부트 코드를 저장하기 위한 내부 메모리;상기 낸드 플래시 메모리로부터 상기 내부 메모리로 상기 부트 코드를 전달하도록 제어하는 낸드 플레시 메모리 제어기;상기 내부 메모리에 저장된 상기 부트 코드를 실행하기 위한 CPU 코어; 및상기 부팅을 위해 상기 낸드 플래시 메모리의 동작상태를 감시하기 위한 신호감시장치;를 포함하며, 상기 낸드 플래시 제어기는 상기 내부 메모리에 상기 부트 코드의 저장이 완료될 때까지 상기 CPU 코어의 동작을 홀드시키는 것을 특징으로 하는 시스템.
- 제1항에 있어서, 상기 신호감시장치는상기 낸드 플래시 메모리 제어기내에 포함되는 것을 특징으로 하는 시스템.
- 제1항 또는 제2항에 있어서, 상기 신호감시장치는상기 낸드 플래시 메모리의 동작상태를 감시하기 위해 상기 낸드 플래시 메모리 제어기와 상기 낸드 플래시 메모리간에 교환되는 신호들의 상태를 감시하는 것을 특징으로 하는 시스템.
- 제3항에 있어서, 상기 신호감시장치는소정의 구간들로 나누어 상기 낸드 플래시 메모리의 동작상태를 감시하며, 상기 소정의 구간들은(a) 상기 낸드 플래시 메모리 제어기가 상기 낸드 플래시 메모리로 명령 및 주소를 출력하는 제1구간;(b) 상기 낸드 플래시 메모리가 상기 명령 및 주소를 해석하는 제2구간;(c) 상기 낸드 플래시 메모리가 상기 명령 및 주소에 따른 실행을 준비하는 제3구간; 및(d) 상기 낸드 플래시 메모리로부터 상기 부트 코드를 독출하는 제4구간을 포함하는 것을 특징으로 하는 시스템.
- 제4항에 있어서, 상기 신호감시장치는상기 제2구간 또는 상기 제3구간이 미리 설정된 소정의 시간을 초과하면 시간초과오류를 상기 낸드 플래시 메모리 제어기로 전달하는 것을 특징으로 하는 시스템.
- 제5항에 있어서, 상기 낸드 플래시 메모리 제어기는상기 시간초과오류가 전달되면, 인터럽트를 발생시키는 것을 특징으로 하는 시스템.
- 제6항에 있어서, 상기 플래시 메모리 제어기는상기 인터럽트가 발생되면 디버깅을 위해 상기 내부 메모리의 특정 어드레스로 리셋 어드레스를 설정하고, 상기 CPU 코어의 동작을 허가하는 것을 특징으로 하는 시스템.
- 제6항에 있어서, 상기 시스템은적어도 상기 부트 코드를 저장한 외부 메모리; 및상기 외부 메모리를 제어하기 위한 외부 메모리 제어기;를 더 포함하며, 상기 인터럽트가 발생하면, 상기 외부 메모리 제어기는 상기 외부 메모리의 특정 어드레스로 리셋 어드레스를 설정하여 상기 낸드 플래시 메모리 제어기로 전달함과 아울러 상기 CPU 코어의 동작을 허가하도록 상기 낸드 플래시 메모리 제어기에 요청하는 것을 특징으로 하는 시스템.
- 낸드 플래시 메모리를 포함하는 시스템의 부팅 방법에 있어서,(a) 부트 코드를 저장한 낸드 플래시 메모리를 준비하는 단계;(b) 상기 부트 코드를 전달하기 위해 상기 낸드 플래시 메모리의 동작상태를 감시하는 단계;(c) 상기 낸드 플래시 메모리가 정상적으로 동작하는 경우에 상기 부트 코드를 독출하여 저장하는 단계로, 상기 부트 코드를 독출하여 저장하는 동안 상기 CPU 코어의 동작을 홀드시키는 단계; 및(d) 상기 부트 코드를 실행하는 단계;를 포함하는 것을 특징으로 하는 부팅 방법.
- 제9항에 있어서, 상기 낸드 플래시 메모리의 동작상태를 감시하는 단계는상기 낸드 플래시 메모리로 명령 및 주소를 출력하는 제1구간, 상기 낸드 플래시 메모리에서 상기 명령 및 주소를 해석하는 제2구간, 상기 낸드 플래시 메모리에서 상기 명령 및 주소에 따른 실행을 준비하는 제3구간, 및 상기 낸드 플래시 메모리로부터 상기 부트 코드를 독출하는 제4구간으로 이루어지는 것을 특징으로 하는 부팅 방법.
- 제10항에 있어서, 상기 낸드 플래시 메모리의 동작상태를 감시하는 단계는상기 제2구간 또는 상기 제3구간이 미리 설정된 소정의 시간을 초과하면 시간초과오류를 발생하는 단계를 더 포함하는 것을 특징으로 하는 부팅 방법.
- 제11항에 있어서, 상기 부팅 방법은상기 시간초과오류가 발생되면, 적어도 상기 부트 코드가 저장된 외부 메모리의 특정 어드레스로 리셋 어드레스를 설정하고, 상기 CPU 코어의 동작을 허가함으로써, 상기 부트 코드를 실행하는 단계를 더 포함하는 것을 특징으로 하는 부팅 방법.
- 제11항에 있어서, 상기 부팅 방법은상기 시간초과오류가 발생되면, 디버깅을 위해 상기 내부 메모리의 특정 어드레스로 리셋 어드레스를 설정하고, 상기 CPU 코어의 동작을 허가함으로써, 상기 부팅 단계들을 종료하는 단계를 더 포함하는 것을 특징으로 하는 부팅 방법.
- 낸드 플래시 메모리 제어기에 있어서,상기 낸드 플래시 메모리 제어기는 시스템을 부팅하기 위하여 낸드 플래시 메모리 및 낸드 플래시 메모리 제어기간에 전달되는 신호들을 감시함으로써, 상기 낸드 플래시 메모리의 동작상태를 감시하기 위한 신호감시장치를 포함하는 것을 특징으로 하는 낸드 플래시 메모리 제어기.
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)
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)
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)
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 |
-
2004
- 2004-07-09 KR KR1020040053367A patent/KR100607992B1/ko not_active IP Right Cessation
-
2005
- 2005-06-07 US US11/146,082 patent/US20060010282A1/en not_active Abandoned
- 2005-07-07 EP EP05106218A patent/EP1615132A2/en not_active Withdrawn
Patent Citations (4)
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)
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 |