KR100469669B1 - 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법 - Google Patents

플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법 Download PDF

Info

Publication number
KR100469669B1
KR100469669B1 KR10-2002-0057930A KR20020057930A KR100469669B1 KR 100469669 B1 KR100469669 B1 KR 100469669B1 KR 20020057930 A KR20020057930 A KR 20020057930A KR 100469669 B1 KR100469669 B1 KR 100469669B1
Authority
KR
South Korea
Prior art keywords
code
flash memory
memory
boot
bootstrap
Prior art date
Application number
KR10-2002-0057930A
Other languages
English (en)
Other versions
KR20040026461A (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 KR10-2002-0057930A priority Critical patent/KR100469669B1/ko
Priority to JP2003288200A priority patent/JP2004118826A/ja
Priority to TW092121660A priority patent/TWI246657B/zh
Priority to US10/640,637 priority patent/US20040059906A1/en
Priority to CNB031538134A priority patent/CN100456272C/zh
Publication of KR20040026461A publication Critical patent/KR20040026461A/ko
Application granted granted Critical
Publication of KR100469669B1 publication Critical patent/KR100469669B1/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
    • 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

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)
  • Read Only Memory (AREA)

Abstract

플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그 시스템 부팅 방법이 개시된다. 본 발명에 따른 시스템 버스를 통해 데이터 전송이 이루어지는, 중앙처리장치, 부트스트랩 코드와 OS 코드를 포함하는 플래시 메모리 및 시스템 메모리를 구비하는 시스템 장치에 있어서, 상기 플래시 메모리는 소정의 페이지에 부팅을 지시하는 부트 핸들러 코드와 부트스트랩 로더 코드를 더 포함하며; 상기 시스템 장치에 파워가 인가될 때 상기 플래시 메모리내의 부트 핸들러 코드와 부트스트랩 로더 코드는 상기 플래시 메모리의 소정의 데이터 레지스터에 로딩되며, 상기 중앙처리장치는 상기 데이터 레지스터에 로딩된 부트 핸들러 코드와 부트스트랩 로더 코드를 순차적으로 접근하여 상기 부트 핸들러 코드를 수행함으로써 부트스트랩 로더 코드를 상기 시스템 메모리로 로딩하고 상기 부트스트랩 로더 코드를 수행함으로써 상기 부트스트랩 코드와 OS 코드를 상기 시스템 메모리로 로딩하는 것을 특징으로 한다. 따라서, 플래시 메모리를 부팅용으로 사용하기 위하여 특별한 콘트롤 로직이나 ROM과 같은 별도의 메모리를 필요로 하지 않으므로 시스템의 설계 시간 및 비용을 절감할 수 있다.

Description

플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그 시스템 부팅 방법 {SYSTEM TO BOOT USING FLASH MEMORY AND THE METHOD THEREOF}
본 발명은 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그 시스템 부팅 방법에 관한 것으로서, 더욱 상세하게는 파워-온 자동 읽기(power-on auto-read) 기능을 통해 시스템 부팅을 수행하는 순차 접근 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그 시스템 부팅 방법에 관한 것이다.
일반적으로, 부팅은 컴퓨터, PDA와 같은 시스템 장치를 시동하거나 재시동하는 작업을 의미하며, 주로 부트 메모리에 저장되어 있는 바이오스(BIOS)의 처리 루틴에 따라 이루어진다. 바이오스는 포스트(POST: Power On Self Test) 동작을 통해 각 하드웨어들을 초기화하고 검사한다. 그리고 포스트 과정에서 이상이 없으면,시스템 부팅에 필요한 아주 작은 프로그램인 부트스트랩 로더를 실행하고 운영체계(OS) 소프트웨어를 시스템 메모리에 로딩한다. 상기 운영체계 소프트웨어는 시스템의 하드웨어 및 소프트웨어에 대한 설정정보를 검색하여 시스템이 정상적으로 동작되도록 한다.
기존의 부트 메모리는 EPROM, EEPROM 등을 주로 사용하여 왔으나, 부팅 프로그램 변경에 사용되는 시간이 상당할 뿐만 아니라 데이터 기록을 위해 롬 라이터(ROM writer)와 같은 PROM 프로그램 장치가 별도로 이용되어야 하는 문제점 등이 있었다. 이런 문제점을 해결하기 위해, 전자적으로 데이터의 기록/삭제가 가능한 플래시 메모리를 부트 메모리로 사용하는 방안이 대두되었다.
또한, 바이오스를 제공하는 플래시 메모리는 I/O 타입의 메모리 인터페이스(블록 단위로 데이터를 전송하는 방식)로 구성되어 있기 때문에 직접적인 부트 코드를 수행할 수 없으며, 따라서 일반적인 롬 타입의 메모리 인터페이스(바이트/워드 단위로 데이터를 전송하는 방식)로의 전환을 위한 컨트롤 로직과 플래시 메모리로부터 독출된 데이터를 일시 저장하는 별도의 메모리를 요구하였다.
본 출원인이 출원한 국내 특허 출원 제2002-12356호에는 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그 시스템 부팅 방법이 개시되어 있다. 도 10을 참조하면, 상기 특허 출원에 따른 시스템 장치의 일례는 콘트롤러(11), 부트스트랩퍼(12), 플래시 메모리(14), 및 시스템 메모리(16)를 포함하며, 이들 사이의 데이터 전송은 시스템 버스(18)를 통해 이루어진다. 특히, 부트스트랩퍼(12)는 부트스트랩 로더 블록과 내부 RAM 블록을 포함하고, 플래시 메모리(14)는 부트스트랩 코드 영역, OS 코드 영역 그리고 데이터 코드 영역으로 구분되어 있다. 파워-온 되면 시스템 리셋 신호를 입력받은 부트스트랩퍼(12)가 플래시 메모리(14)의 부트스트랩 코드를 내부 RAM 블록으로 로딩하고, 콘트롤러(11)가 부트스트랩 코드를 실행함으로써 시스템이 구동된다.
그러나, 이와 같은 시스템은 여전히 플래시 메모리에 저장된 부트 코드를 수행하기 위하여 부트스트랩 로더 블록과 내부 RAM 블록과 같은 특별한 하드웨어 콘트롤러 및 메모리를 사용한다. 따라서, 시스템 장치의 비용이 상승할 수 있다는 단점을 가진다.
본 발명은 상기한 종래 기술의 문제점을 해결하기 위하여 안출된 것으로서, 그 목적은 별도의 하드웨어 콘트롤러나 부가적인 메모리 없이 시스템 장치를 부팅하는 것이다.
본 발명의 다른 목적은 파워-온 자동 읽기 기능을 이용해서 소프트웨어적인 방법으로 시스템 장치를 부팅하는 것이다.
도 1은 본 발명에 따른 시스템 장치의 구성도이다.
도 2는 본 발명에 있어서 순차 접근 플래시 메모리로부터 시스템 메모리로의 데이터 이동을 보여주는 도면이다.
도 3은 본 발명에 있어서 중앙처리장치와 순차 접근 플래시 메모리간의 입출력 관계를 도시하고 있다.
도 4는 본 발명에 따른 임의의 접근 방식 수행 코드의 순차적 접근 방식 수행 코드로의 변환 방법을 설명하는 도면이다.
도 5는 본 발명에 따른 시스템 장치의 부팅 방법을 설명하는 동작 순서도이다.
도 6은 본 발명에 적용된 플래시 메모리의 핀 구성과 상세를 보여준다.
도 7은 본 발명에 적용된 플래시 메모리의 블록도이다.
도 8은 본 발명에 적용된 플래시 메모리의 일반적인 읽기 동작을 설명하는 타이밍도이다.
도 9는 본 발명에 적용된 플래시 메모리의 파워-온 자동 읽기 동작을 설명하는 타이밍도이다.
도 10은 종래의 순차 접근 플래시 메모리를 부팅 메모리로 사용하는 시스템 장치의 구성도이다.
※ 도면의 주요 부분에 대한 부호의 설명 ※
210 : 중앙처리장치 212 : 순차 접근 플래시 메모리
214 : 시스템 메모리 216 : 시스템 버스
상기와 같은 목적을 달성하기 위해, 본 발명에 따른 시스템 버스를 통해 데이터 전송이 이루어지는, 중앙처리장치, 부트스트랩 코드와 OS 코드를 포함하는 플래시 메모리 및 시스템 메모리를 구비하는 시스템 장치에 있어서, 상기 플래시 메모리는 소정의 페이지에 부팅을 지시하는 부트 핸들러 코드와 부트스트랩 로더 코드를 더 포함하며; 상기 시스템 장치에 파워가 인가될 때 상기 플래시 메모리내의 부트 핸들러 코드와 부트스트랩 로더 코드는 상기 플래시 메모리의 소정의 데이터 레지스터에 로딩되며, 상기 중앙처리장치는 상기 데이터 레지스터에 로딩된 부트 핸들러 코드와 부트스트랩 로더 코드를 순차적으로 접근하여 상기 부트 핸들러 코드를 수행함으로써 부트스트랩 로더 코드를 상기 시스템 메모리로 로딩하고 상기부트스트랩 로더 코드를 수행함으로써 상기 부트스트랩 코드와 OS 코드를 상기 시스템 메모리로 로딩하는 것을 특징으로 한다.
한편, 본 발명에 따른 시스템 장치의 부팅 방법에 있어서, 상기 시스템 장치에 파워가 인가될 때 상기 플래시 메모리의 소정 페이지에 저장된 부팅을 지시하는 부트 핸들러 코드와 부트스트랩 로더 코드가 상기 플래시 메모리의 소정의 데이터 레지스터로 로딩되는 단계; 및 상기 중앙처리장치가 상기 데이터 레지스터로 로딩된 부트 핸들러 코드와 부트스트랩 로더 코드를 순차적으로 접근하는 단계를 포함하는데, 상기 부트 핸들러 코드를 수행하여 부트스트랩 로더 코드를 상기 시스템 메모리로 로딩하고, 상기 부트스트랩 로더 코드를 수행하여 상기 부트스트랩 코드와 OS 코드를 상기 시스템 메모리로 로딩하는 것을 특징으로 한다.
또한, 상기 부팅을 지시하는 부트 핸들러 코드와 부트스트랩 로더 코드는 상기 플래시 메모리의 제1 페이지에 저장되며, 상기 플래시 메모리는 순차 접근 플래시 메모리인 것을 특징으로 한다.
본 발명에 있어서, 상기 부트 핸들러 코드와 부트스트랩 로더 코드는 중앙처리장치와 플래시 메모리가 서로 다른 인터페이스를 가지기 때문에 플래시 메모리에 대한 순차적인 접근이 불가능하였다는 점을 감안하여, 임의의 주소 접근을 가정한 프로그램 코드를 순차적인 접근을 허용하는 형태의 프로그램 코드로 변환함으로써 작성된 코드들을 의미한다.
또한, 상기 부트 핸들러 코드와 부트스트랩 로더 코드는 시스템 장치에 파워가 인가될 때 커맨드와 어드레스의 입력없이 플래시 메모리에 대한 중앙처리장치의 순차적인 데이터 액세스를 가능케하는 함으로써 소프트웨어적인 부팅을 지원한다.
이하, 본 발명의 바람직한 실시예를 설명하기에 앞서, 본 발명의 명확한 이해를 돕기 위하여 도 6 내지 도 8를 참조하면서 본 발명에 적용된 순차 접근 플래시 메모리의 핀 구성, 기능, 그리고 일반적인 읽기 동작에 대해 개략적으로 살펴본 다음에, 특히 도 9를 참조하면서 본 발명에 있어서 시스템 장치의 부팅과 연관되는 파워-온 자동 읽기 동작에 대하여 알아보기로 한다. 참고로, 이러한 순차 접근 플래시 메모리는 예를 들어 부품 번호 K9F1GXXQ0M 및 K9F1GXXU0M를 가지는 소자에 관련한 2002년 "128M X 8비트 / 64M X 16비트 NAND 플래시 메모리"라는 제목으로 (주) 삼성전자에서 발간한 데이터 북에 개시되어 있다.
도 6 내지 도 8은 각각 본 발명에 적용된 순차 접근 플래시 메모리중 X8 소자(K9F1G08X0M)의 핀 구성과 상세, 기능 블록도, 및 읽기 동작을 설명하는 타이밍도이다.
도 6에서, I/O0 ∼ I/O7는 어드레스와 데이터 입/출력 뿐만 아니라 커맨드 입력을 위한 포트로서 사용된다. 또한, 레디/비지() 신호는 소자 동작 상태를 표시하는데, 로우일 때 프로그램, 소거 또는 랜덤 읽기 동작이 처리중에 있음을 나타낸다. 그리고, 파워-온 읽기 인에이블(PRE) 신호는 파워-온 동안 실행되는 자동 읽기 동작을 제어한다.
구체적인 기능 블록도가 도 7에 제시되어 있다. 도시된 바와 같이, 상기 순차 접근 플래시 메모리는 전기적으로 소거 및 프로그램 가능한 메모리 셀 어레이(100), X-버퍼, 래치 & 디코더(110), Y-버퍼, 래치 & 디코더(112), 커맨드 레지스터(114), 제어 로직 & 고전압 발생기(116), 그리고 데이터 레지스터 & 감지 증폭기(118), 캐시 레지스터(120), Y-게이팅(122)을 포함하고 있다. 그외에, 데이터 입출력과 관련하여 I/O 버퍼 & 래치(124), 글로벌 버퍼(126), 출력 드라이버(128)를 포함한다. 메모리 셀 어레이(100)는 M개의 페이지를 갖는다. 메모리 셀 어레이(100)의 페이지 수는 통상 설계 사양상의 문제이지만, 상기 X8 소자(K9F1G08X0M)는 1056메가비트 메모리로서 1페이지의 크기가 2112 바이트의 65,536 페이지를 포함한다. 상기 메모리 셀 어레이(100)내의 메모리 셀들의 행(또는, 메모리 셀들이 연결된 임의의 워드 라인)은 X-버퍼, 래치 & 디코더(110)로부터 제공되는 어드레스 신호들에 의해서 선택되고, 메모리 셀 열들은 Y-버퍼, 래치 & 디코더(112)로부터 제공되는 어드레스 신호들에 의해서 선택된다. 상기 플래시 메모리의 읽기, 기록, 프로그램, 소거 동작은 커맨드 레지스터(114)로 특별한 커맨드를 입력함으로써 이루어지며, 각 모드 선택을 위한 핀 상태를 살펴보면 다음과 같다.
표에 보여지는 바와 같이, 커맨드, 어드레스 및 데이터 입력은 모두 칩_인에이블() 신호가 로우(L)인 동안에 쓰기_인에이블() 신호가 로우로 갈 때 가능하다. 도 8에 도시된 바와 같이, 예를 들어 읽기 모드일 때, I/Ox 핀을 통해 4사이클의 어드레스(열 어드레스 1,2 및 행 어드레스 1,2)와 함께 커맨드 레지스터(도 7의 114)에 읽기 커맨드(1사이클: OOh, 2사이클 30h)를 기입함으로써 읽기 동작이 시작된다. 이때, 선택된 페이지내의 데이터가 25㎲ 이하의 데이터 전송 시간(tR) 동안 데이터 레지스터(도 7의 118)로 로딩된다. 그후, 상기 데이터 레지스터(118)로 로딩된 데이터에 대한 액세스가 이루어지는데, 순차적으로 읽기_인에이블()을 펄싱함으로써 달성된다.
한편, 본 발명에 적용된 플래시 메모리는 파워-온 자동 읽기 기능을 제공하고 있다. 파워-온 자동 읽기 기능은, 앞서 설명한 일반적인 읽기 동작과는 달리 커맨드와 어드레스의 입력없이 플래시 메모리의 제1 페이지에 저장되어 있는 일련의데이터 액세스를 가능케하는 기능을 말한다.
파워-온 자동 읽기 기능이 사용자에 의해 설정되면, 도 9에 도시된 바와 같이, VCC가 소정의 전압(예를 들어, 약 1.8V)에 도달할 때 자동 읽기 동작이 인에이블된다. 상기 전압의 검출은 제어 로직 & 고전압 발생기(116)내의 내부 전압 검출기(도시안됨)가 수행한다. 또한, 이러한 자동 읽기 동작의 활성화는 파워-온 읽기_인에이블(PRE) 신호에 의해 제어되며, 실질적으로 중앙처리장치의 개입없이 메모리 동작이 제어된다. 즉, 상기 파워-온 읽기_인에이블(PRE) 신호의 제어에 따라 파워-온후 곧바로 일련의 데이터 액세스가 수행될 수 있다. 이때, 제1 페이지내의 데이터가 데이터 전송시간(tR) 동안 데이터 레지스터(118)로 전송된다. 그후, 읽기_인에이블() 신호를 펄싱함에 따라 데이터 레지스터(118)로부터 순차적으로 데이터가 읽혀진다.
본 발명에서의 제1 페이지는 플래시 메모리의 가장 첫번째 페이지 즉, 0x0000 어드레스를 갖는 페이지를 의미하며, 예를 들어 상기 페이지의 크기는 X8 소자(K9F1G08X0M)가 사용된 경우에는 2112 바이트가 된다.
이제, 첨부된 도 1 내지 도 5를 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하면 다음과 같다.
본 발명에 따른 시스템 장치 즉, 파워-온 자동 읽기 기능을 제공하는 플래시 메모리를 구비한 시스템 장치(200)는 첨부된 도 1에 도시된 바와 같이 시스템 장치(200)의 모든 동작을 제어하는 중앙처리장치(210)와, 파워가 인가되면 자동 읽기 동작 즉, 제1 페이지의 데이터들이 소정의 데이터 레지스터로 로딩되는 순차 접근 플래시 메모리(212)와, 일종의 DRAM 또는 SRAM으로 구성되고 상기 순차 접근 플래시 메모리(212)에 저장된 부트 관련 코드들을 실행하는데 필요한 시스템 메모리(214)를 포함하며, 시스템 버스(216)를 통해 중앙처리장치(210), 순차 접근 플래시 메모리(212) 그리고 시스템 메모리(214) 사이에 데이터 전송이 이루어진다.
여기서, 상기 순차 접근 플래시 메모리(212)는 첨부한 도 2에 도시된 바와 같이 메모리 액세스를 위해 '0x0000'으로 시작하는 어드레스를 갖는 제1 페이지에 부트 핸들러 코드(300a) 및 부트스트랩 로더 코드(300b)를 가지며, 또한 부트스트랩 코드(302)와, OS 코드(304) 그리고 응용 프로그램 및 사용자 데이터(306)를 저장하고 있다. 특히, 상기 부트 핸들러 코드(300a)는 부트스트랩 로더 코드(300b)를 상기 시스템 메모리(214)의 특정 영역에 복사하는 기능을 수행하며, 상기 부트스트랩 로더 코드(300b)는 실제 부트스트랩 코드(302) 및 OS 코드(304)를 상기 시스템 메모리(214)로 적재하는 기능을 수행한다.
상기 시스템 장치(200)의 동작을 간단히 살펴보면 다음과 같다. 시스템 장치(200)가 파워-온 되면, 도 9를 참조하여 설명한 바와 같은 파워-온 자동 읽기 기능에 의해 제1 페이지의 데이터들 즉, 부트 핸들러 코드(300a) 및 부트스트랩 로더 코드(300b)가 데이터 레지스터(도 7의 118)에 로딩된다. 이어서, 중앙처리장치(210)가 펄싱 신호 즉, 읽기_인에이블() 신호를 발생시켜 부트 핸들러 코드(300a)를 입력받아 이를 실행하게 된다. 상기 부트 핸들러 코드(300a)의 실행에 따라 뒤이어 중앙처리장치(210)로 입력되는 부트스트랩 로더 코드(300b)가 시스템 메모리(214)로 적재된다. 다음에, 중앙처리장치(210)가 부트스트랩 로더 코드(300b)를 실행하고, 그결과 실제 부트스트랩 코드(302)가 시스템 메모리(214)로 로딩된다. 부트스트랩 코드(302)의 로딩이 완료되면, 종래의 시스템 장치에서와 같이 상기 부트스트랩 코드(302)의 실행에 의해 하드웨어들의 초기화가 이루어지고 OS 코드(304)를 수행함으로써 시스템 장치(200)가 구동된다.
도 3은 중앙처리장치와 플래시 메모리간의 입출력 관계를 도시하고 있는데, 중앙처리장치(210)는 일반적인 롬 타입의 인터페이스를 가지고 순차 접근 플래시 메모리(212)는 I/O 핀을 통해 커맨드와 어드레스가 멀티플렉싱되는 인터페이스를 가지기 때문에 파워가 인가될 때 순차 접근 플래시 메모리(212)의 첫번째 페이지에 임의로 접근할 수 없다는 문제가 발생한다.
이러한 문제를 해결하기 위해, 본 발명에서는 첨부한 도 4에 도시된 바와 같이 임의의 주소 접근을 가정하고 컴파일링된 프로그램 코드를 순차적인 접근을 허용하는 형태의 코드로 변환하는 방법을 사용하여 부트 핸들러 코드(300a)와 부트스트랩 로더 코드(300b)를 작성한다. 즉, 시스템 장치의 부팅시 상기 순차 접근 플래시 메모리(212)에서는 순차적인 메모리 접근만이 가능하므로, 이를 고려하여 부트 핸들러 코드(300a)와 부트스트랩 로더 코드(300b)의 명령어와 데이터를 배치한다.
도 4의 왼쪽 상단은 명령어1에 의해 A 데이터가 레지스터 1로 옮겨지고, 다시 명령어 1에 의해 B 데이터가 레지스터 2로 이동됨을 나타내는데, 도 2의 왼쪽 하단에 표시된 시스템 버스 트랜잭션 메모리 주소를 보면 주소가 임의로 발생하고있음을 알 수 있다. 여기서, 명령어 1은 순차 접근 플래시 메모리(212)의 데이터를 중앙처리장치(210)의 데이터 레지스터로 이동시키는 제어신호이다.
또한, 도 4의 오른쪽 상단은 순차적인 메모리 접근을 고려해서 재구성된 코드가 보여진다. 명령어 1에 의해 데이터 A에 접근하려고 하고, 이때 메모리 주소와 읽기_인에이블() 신호가 발생하게 된다. 그러나, 중앙처리장치(210)에서 발생하는 메모리 주소는 순차 접근 플래시 메모리(212)의 인터페이스에서 무시되므로 단지 읽기_인에이블() 신호에 의해 그 다음 주소에 있는 데이터가 중앙처리장치(210)에 전달된다. 따라서, 명령어 1이 얻고자 하는 A 데이터를 레지스터 1에 저장하게 된다. 그리고, 상기 중앙처리장치(210)는 그 다음 명령어를 수행하기 위해 명령어 가져오기 연산을 수행하고, 그 결과 다시 명령어 1에 대한 메모리 주소와 읽기_인에이블() 신호가 순차 접근 플래시 메모리(212)의 인터페이스에 전달되고, 상기 메모리 주소와 상관없이 그 다음 주소 2에 있던 명령어 1를 수행하여 B 데이터를 레지스터 2에 저장하게 된다. 이와같이, 상기 중앙처리장치(210)에서는 임의의 주소에서 데이터를 가져오는 것 같지만 실제로는 읽기_인에이블() 신호의 증가에 의해 순차적인 주소에서 오는 값이 명령어 그리고 그 명령어가 필요로 하는 데이터가 되는 것이다. 바람직하게, 이러한 코드 변환은 윈도우즈와 같은 운영체제에 포함된 코드 변환 프로그램 또는 별도 제작된 코드 변환 프로그램을 사용하여 자동으로 이루어진다.
본 발명에 따른 시스템 장치의 부팅은 다음과 같은 과정을 통해 이루어진다. 도 5를 참조하면, 먼저 상기 시스템 장치(200)에 파워가 인가될 때 상기 순차 접근 플래시 메모리(212)의 첫 페이지(0x0000)에 저장되어 있는 일련의 데이터 즉, 부트 핸들러 코드(300a)와 부트스트랩 로더 코드(300b)가 자동으로 순차 접근 플래시 메모리(212)의 데이터 레지스터(도 7의 118)로 옮겨진다(S100).
다음에, 상기 중앙처리장치(210)가 상기 데이터 레지스터(118)로 로딩된 부트 핸들러 코드(300a)와 부트스트랩 로더 코드(300b)를 순차적으로 접근하는데(S110), 실질적으로 중앙처리장치(210)로부터의 읽기_인에이블() 신호에 의해 상기 데이터 레지스터(118)의 데이터들이 순차적으로 읽혀진다. 다음에, 상기 부트 핸들러 코드(300a)가 부트스트랩 로더 코드(300b)를 상기 시스템 메모리(214)의 특정 영역에 복사하고, 상기 부트스트랩 로더 코드(300b)가 실제 부트스트랩 코드(302) 및 OS 코드(304)를 상기 시스템 메모리(214)로 적재하는 기능을 수행한다(S112). 최종적으로, 상기 중앙처리장치(210)의 제어에 따라 상기 부트스트랩 코드(302)가 기본적인 시스템 초기화를 실행하고, 상기 OS 코드(304)가 나머지 초기화를 실행한다(S114). 그러므로, 시스템 장치의 부팅이 완료된다.
본 발명에 따른 실시예는 상술한 것으로 한정되지 않고, 본 발명과 관련하여 통상의 지식을 가진 자에게 자명한 범위내에서 여러 가지의 대안, 수정 및 변경하여 실시할 수 있다.
이상에서 설명한 바와 같은 본 발명에 따르면, 플래시 메모리를 부팅용으로 사용하기 위하여 특별한 콘트롤 로직이나 ROM과 같은 별도의 메모리를 필요로 하지않으므로 설계 시간 및 시스템 비용을 절감할 수 있다. 그 결과, 다양한 시스템에서 플래시 메모리를 부팅 메모리로 쓸 수 있게 한다.

Claims (6)

  1. 시스템 버스를 통해 데이터 전송이 이루어지는, 중앙처리장치, 부트스트랩 코드와 OS 코드를 포함하는 플래시 메모리 및 시스템 메모리를 구비하는 시스템 장치에 있어서,
    상기 플래시 메모리는 소정의 페이지에 부팅을 지시하는 부트 핸들러 코드와 부트스트랩 로더 코드를 더 포함하고;
    상기 시스템 장치에 파워가 인가될 때 상기 중앙처리장치의 커맨드 및 어드레스의 입력에 무관하게 상기 플래시 메모리내의 부트 핸들러 코드와 부트스트랩 로더 코드를 상기 플래시 메모리의 소정의 데이터 레지스터로 로딩하며;
    상기 데이터 레지스터로 로딩된 상기 부트 핸들러 코드 및 상기 부트스트랩 로더 코드는 상기 중앙처리장치의 읽기_인에이블 신호의 발생에 따라 순차적으로 수행되어, 상기 부트스트랩 코드와 OS 코드를 상기 시스템 메모리로 로딩하는 것을 특징으로 하는 시스템 장치.
  2. 청구항 1에 있어서, 상기 부팅을 지시하는 부트 핸들러 코드와 부트스트랩 로더 코드는 상기 플래시 메모리의 제1 페이지에 저장되는 것을 특징으로 하는 시스템 장치.
  3. 삭제
  4. 시스템 버스를 통해 데이터 전송이 이루어지는, 중앙처리장치, 부트 핸들러 코드와 부트스트랩 로더 코드와 부트스트랩 코드와 OS 코드를 포함하는 플래시 메모리 및 시스템 메모리를 구비하는 시스템 장치의 부팅 방법으로서,
    상기 시스템 장치에 파워가 인가될 때 상기 중앙처리장치의 커맨드 및 어드레스의 입력에 무관하게 상기 플래시 메모리의 상기 부트 핸들러 코드와 부트스트랩 로더 코드를 상기 플래시 메모리의 소정의 데이터 레지스터로 로딩하는 단계;
    상기 데이터 레지스터로 로딩된 상기 부트 핸들러 코드 및 상기 부트스트랩 로더 코드가 상기 중앙처리장치의 읽기_인에이블 신호의 발생에 따라 순차적으로 수행되는 단계; 및
    상기 핸들러 코드 및 상기 부트스트랩 로더 코드의 수행에 따라 상기 부트스트랩 코드와 상기 OS 코드를 상기 시스템 메모리로 로딩하는 단계를 포함하는 것을 특징으로 하는 시스템 장치의 부팅 방법
  5. 청구항 4에 있어서, 상기 부트 핸들러 코드와 부트스트랩 로더 코드는 상기 플래시 메모리의 제1 페이지에 저장되는 것을 특징으로 하는 시스템 장치의 부팅 방법.
  6. 삭제
KR10-2002-0057930A 2002-09-24 2002-09-24 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법 KR100469669B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR10-2002-0057930A KR100469669B1 (ko) 2002-09-24 2002-09-24 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법
JP2003288200A JP2004118826A (ja) 2002-09-24 2003-08-06 フラッシュメモリを用いてブーティングされるシステム装置及びそのブーティング方法
TW092121660A TWI246657B (en) 2002-09-24 2003-08-07 System and method for booting by use of a flash memory
US10/640,637 US20040059906A1 (en) 2002-09-24 2003-08-14 System and method for booting by use of a flash memory
CNB031538134A CN100456272C (zh) 2002-09-24 2003-08-22 利用快闪存储器引导的系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0057930A KR100469669B1 (ko) 2002-09-24 2002-09-24 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법

Publications (2)

Publication Number Publication Date
KR20040026461A KR20040026461A (ko) 2004-03-31
KR100469669B1 true KR100469669B1 (ko) 2005-02-02

Family

ID=31987527

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0057930A KR100469669B1 (ko) 2002-09-24 2002-09-24 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법

Country Status (5)

Country Link
US (1) US20040059906A1 (ko)
JP (1) JP2004118826A (ko)
KR (1) KR100469669B1 (ko)
CN (1) CN100456272C (ko)
TW (1) TWI246657B (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146485A (ja) * 2004-11-18 2006-06-08 Toshiba Corp 携帯端末
US7971046B2 (en) 2005-01-14 2011-06-28 Telefonaktiebolaget L M Ericsson (Publ) Method and device for initializing a booting procedure of a mobile device
WO2006074793A1 (en) * 2005-01-14 2006-07-20 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for initializing a booting procedure of a mobile device
US7356680B2 (en) * 2005-01-22 2008-04-08 Telefonaktiebolaget L M Ericsson (Publ) Method of loading information into a slave processor in a multi-processor system using an operating-system-friendly boot loader
KR20080007430A (ko) * 2005-02-11 2008-01-21 샌디스크 아이엘 엘티디 Nand 플래시 메모리 시스템 체계
US20070016721A1 (en) * 2005-07-18 2007-01-18 Wyse Technology Inc. Flash file system power-up by using sequential sector allocation
KR100667822B1 (ko) 2005-10-10 2007-01-11 삼성전자주식회사 낸드 플래시 메모리를 이용한 화상형성장치의 초기화제어장치 및 방법
JP2007133683A (ja) * 2005-11-10 2007-05-31 Sony Corp メモリシステム
CN100362472C (zh) * 2005-12-06 2008-01-16 海信集团有限公司 嵌入式设备系统动态引导的方法
US8291226B2 (en) 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
KR100678023B1 (ko) * 2006-02-15 2007-02-02 삼성전자주식회사 이동통신 단말기의 부팅시간 단축 방법
DE602006008270D1 (de) * 2006-03-29 2009-09-17 St Microelectronics Srl Verfahren und Vorrichtung zur Detektion von möglicher Korruption von Sektorschutzinformationen eines in einem bordeigenen flüchtigen Speicherarray gespeicherten nichtflüchtigen Speichers beim Einschalten
CN100377086C (zh) * 2006-03-31 2008-03-26 浙江大学 嵌入式系统中直接从文件系统运行程序的实现方法
JP2007299227A (ja) * 2006-04-28 2007-11-15 Toshiba Corp 情報処理装置及び情報処理装置のブート方法
US20070260869A1 (en) * 2006-05-01 2007-11-08 Symbol Technologies, Inc. Apparatus and Method for Booting a Computing Device from a NAND Memory Device
KR100790168B1 (ko) * 2006-07-14 2008-01-02 삼성전자주식회사 프로세싱 시스템에서 낸드플래시 메모리를 이용하여 부팅을수행하는 방법 및 장치
US20090049232A1 (en) * 2007-08-17 2009-02-19 Sandeep Brahmadathan Execute-in-place implementation for a nand device
KR100964636B1 (ko) * 2007-10-01 2010-06-21 세메스 주식회사 시스템 제어기 및 그 구동 방법
US8683213B2 (en) 2007-10-26 2014-03-25 Qualcomm Incorporated Progressive boot for a wireless device
JP2010134741A (ja) * 2008-12-05 2010-06-17 Internatl Business Mach Corp <Ibm> プログラムを実行する方法およびシステム
CN102279757B (zh) * 2010-06-11 2016-08-17 无锡中感微电子股份有限公司 一种系统程序启动的方法及装置
CN103150000B (zh) * 2011-12-07 2016-01-20 神讯电脑(昆山)有限公司 低温开机方法及其电子装置
KR101429086B1 (ko) * 2013-03-29 2014-08-13 대한민국 추진 제어 레버 및 추진 제어 레버의 제어방법
JP5744118B2 (ja) 2013-07-17 2015-07-01 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR102147916B1 (ko) * 2014-04-14 2020-08-26 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
JP6820162B2 (ja) 2016-06-27 2021-01-27 川崎重工業株式会社 バケットホイール
CN110059005B (zh) * 2019-01-30 2022-12-16 北京品驰医疗设备有限公司 快闪存储器的程序检测方法和植入式医疗设备
CN110060726B (zh) * 2019-01-30 2022-12-16 北京品驰医疗设备有限公司 快闪存储器的程序检测方法和植入式医疗设备
CN110083393B (zh) * 2019-01-30 2022-12-16 北京品驰医疗设备有限公司 快闪存储器和植入式医疗设备
CN113064652B (zh) * 2021-04-01 2023-03-14 海光信息技术股份有限公司 用于中央处理单元的启动代码的装置、方法、设备和介质

Citations (6)

* 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
KR19980058287A (ko) * 1996-12-30 1998-09-25 정장호 중앙처리장치의 부팅회로
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 김영환 셋탑박스의 부팅롬 장치
KR20000033437A (ko) * 1998-11-23 2000-06-15 홍종만 부트스트랩로더 기능 구현 장치
KR20010087868A (ko) * 2000-03-09 2001-09-26 김광수 리눅스 운영 체제 부팅 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878257A (en) * 1996-11-15 1999-03-02 Cirrus Logic, Inc. Self-booting mechanism to allow dynamic system configuration and diagnostic
US6948099B1 (en) * 1999-07-30 2005-09-20 Intel Corporation Re-loading operating systems
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

Patent Citations (6)

* 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
KR19980058287A (ko) * 1996-12-30 1998-09-25 정장호 중앙처리장치의 부팅회로
KR19990002308A (ko) * 1997-06-19 1999-01-15 김영환 셋탑박스의 부팅롬 장치
KR20000033437A (ko) * 1998-11-23 2000-06-15 홍종만 부트스트랩로더 기능 구현 장치
KR20010087868A (ko) * 2000-03-09 2001-09-26 김광수 리눅스 운영 체제 부팅 방법

Also Published As

Publication number Publication date
CN100456272C (zh) 2009-01-28
JP2004118826A (ja) 2004-04-15
KR20040026461A (ko) 2004-03-31
TW200405198A (en) 2004-04-01
TWI246657B (en) 2006-01-01
CN1497462A (zh) 2004-05-19
US20040059906A1 (en) 2004-03-25

Similar Documents

Publication Publication Date Title
KR100469669B1 (ko) 플래시 메모리를 이용하여 부팅되는 시스템 장치 및 그시스템 부팅 방법
US8185728B2 (en) System boot using NAND flash memory and method thereof
US7490177B2 (en) System method for performing a direct memory access for automatically copying initialization boot code in a new memory architecture
US6834322B2 (en) Nonvolatile semiconductor memory device having plural memory circuits selectively controlled by a master chip enable terminal or an input command and outputting a pass/fail result
US6131139A (en) Apparatus and method of simultaneously reading and writing data in a semiconductor device having a plurality of flash memories
US5829013A (en) Memory manager to allow non-volatile memory to be used to supplement main memory
US6772276B2 (en) Flash memory command abstraction
US7296143B2 (en) Method and system for loading processor boot code from serial flash memory
US7234049B2 (en) Computer system with NAND flash memory for booting and storage
EP1343082B1 (en) System boot using nand flash memory and method thereof
US20070156949A1 (en) Method and apparatus for single chip system boot
US7240146B2 (en) Random access interface in a serial memory device
US5893135A (en) Flash memory array with two interfaces for responding to RAS and CAS signals
KR100634436B1 (ko) 멀티 칩 시스템 및 그것의 부트코드 페치 방법
US5768563A (en) System and method for ROM program development
JP2000065899A (ja) 半導体装置およびそのデータ書き換え方法
JP2002073407A (ja) 不揮発性半導体記憶装置
US6012140A (en) Processing system, processing unit, memory and compiling method
US6898680B2 (en) Minimization of overhead of non-volatile memory operation
JP4398957B2 (ja) 不揮発性半導体メモリ装置及び不揮発性半導体メモリ装置の制御方法
JPH03138713A (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: 20090112

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee