KR20080024187A - 비-제위치 실행 플래시 메모리에서 영속 파일을 액세스하기위한 장치, 시스템 및 방법 - Google Patents

비-제위치 실행 플래시 메모리에서 영속 파일을 액세스하기위한 장치, 시스템 및 방법 Download PDF

Info

Publication number
KR20080024187A
KR20080024187A KR1020087000134A KR20087000134A KR20080024187A KR 20080024187 A KR20080024187 A KR 20080024187A KR 1020087000134 A KR1020087000134 A KR 1020087000134A KR 20087000134 A KR20087000134 A KR 20087000134A KR 20080024187 A KR20080024187 A KR 20080024187A
Authority
KR
South Korea
Prior art keywords
bad block
file
persistent
flash memory
memory device
Prior art date
Application number
KR1020087000134A
Other languages
English (en)
Other versions
KR100975748B1 (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 키오세라 와이어리스 코포레이션
Publication of KR20080024187A publication Critical patent/KR20080024187A/ko
Application granted granted Critical
Publication of KR100975748B1 publication Critical patent/KR100975748B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

전자 장치의 동작 동안 비-XIP 플래시 메모리에 저장된 영속 파일이 액세스된다. 상기 장치 상에서의 애플리케이션 코드의 실행 동안, 액세스 디렉토리, 가령 조사 표를 이용하여 상기 영속 파일이 액세스된다. 상기 액세스 디렉토리는, 애플리케이션, 또는 상기 장치의 프로세서 상에서 실행되는 또 다른 소프트웨어 코드가, 배드 블록을 포함할 수 있는 비-제위치 실행 플래시 메모리 장치 내의 영속 파일의 위치를 파악하고 액세스할 수 있게 해주는 정보를 제공한다. 액세스 디렉토리의 생성 동안, 장치에서의 배드 블록의 위치가 식별되고 기록된다. 배드 블록 데이터에서 식별된 배드 블록을 계산하는 동안, 액세스 디렉토리에서 식별된 파일 시작 위치로부터 판독함으로써, 비-XIP 플래시 메모리 장치로부터 파일이 액세스된다.

Description

비-제위치 실행 플래시 메모리에서 영속 파일을 액세스하기 위한 장치, 시스템 및 방법{APPARATUS, SYSTEM AND METHOD FOR ACCESSING PERSISTENT FILES IN NON-EXECUTE-IN-PLACE FLASH MEMORY}
본 발명은 일반적으로 메모리 장치에 관한 것이며, 더욱 세부적으로는 비-제자리 실행(non-execute-in-place) 플래시 메모리장치의 영속 파일(persistent file)을 액세스하기 위한 시스템 및 방법에 관한 것이다.
펌웨어 및 영속 파일이 휴대용 전자 장치, 가령 셀방식 전화기와 PDA(personal digital assistant)의 작동을 촉진시킨다. 상기 영속 파일은 상기 장치의 전반적인 시스템 동작을 위해 요구되는 디폴트 콘텐츠 및 데이터를 형성하는 비-휘발성 데이터를 포함하는 것이 일반적이다. 상기 영속 파일의 예로는 폰트 파일, 언어 지원 파일 및 소리, 그림, 비디오 등의 디폴트 멀티미디어 콘텐츠를 포함한다. 종래의 장치에서는, 펌웨어 및 영속 파일이 비-휘발성 메모리에서, 비-제자리 실행(non-XIP) NAND 플래시 메모리 장치에 저장되고, RAM(random access memory)이나 SDRAM(synchronous dynamic random access memory) 등의 제자리 실행 메모리 장치로 복사된다. 휴대용 전자 장치의 기능과 복잡도가 증가됨에 따라서, 영속 파일 및 펌웨어에 대하여 요구되는 메모리가 또한 증가된다. 증가된 기능에 추가로, 산업적 경쟁 및 소비자 요구가 휴대용 장치의 제조 비용이 지속적으로 낮아질 것을 요구한다. 종래의 장치에서, 영속 파일은 비-XIP 플래시 메모리에 있을 때 직접 액세스될 수 없다. 따라서 종래의 장치는 휴대용 전자 장치 내의 XIP 메모리 장치가 비-XIP 플래시 메모리로부터 복사되는 실행가능한 코드와 영속 파일을 위해 충분한 용량을 가져야 한다고 제한된다.
따라서 비-XIP 플래시 메모리에 저장된 영속 파일을 액세스하기 위한 장치, 시스템 및 방법이 존재한다.
본 발명의 바람직한 실시예에 따라서, 전자 장치의 동작 동안 비-제위치 실행(non-XIP) 플래시 메모리에 저장된 영속 파일이 액세스된다. 장치 상에서의 애플리케이션 코드의 실행 동안, 조사 표(look-up table) 등의 액세스 디렉토리를 이용하여 영속 파일이 액세스된다. 상기 액세스 디렉토리는, 애플리케이션, 또는 상기 장치의 프로세서 상에서 실행되는 또 다른 소프트웨어 코드가, 배드 블록을 포함할 수 있는 비-제위치 실행 플래시 메모리 장치 내의 영속 파일의 위치를 파악하고 액세스할 수 있게 해주는 정보를 제공한다. 액세스 디렉토리의 생성 동안, 장치에서의 배드 블록의 위치가 식별되고 기록된다. 배드 블록 데이터에서 식별된 배드 블록을 계산하는 동안, 액세스 디렉토리에서 식별된 파일 시작 위치로부터 판독함으로써, 비-XIP 플래시 메모리 장치로부터 파일이 액세스된다. 따라서 영속 파일은 비-XIP 플래시 메모리 장치, 가령 NAND 장치에 저장된 채 유지될 수 있고, SDRAM 장치 등의 XIP 메모리 장치로 복사되지 않는다. XIP 메모리 장치에 대하여 요구되는 크기는 최소화되고, 이에 따라서, 전자 장치의 제조 비용이 감소될 수 있다.
도 1은 본 발명의 하나의 바람직한 실시예에 따르는 휴대용 전자 장치의 블록 다이어그램이다.
도 2는 액세스 디렉토리와 영속 파일 섹션 간의 바람직한 관계를 도시한 블록 다이어그램이며, 이때 파일 위치 데이터가 위치 표를 포함하고, 배드 블록 데이터가 배드 블록 표를 포함한다.
도 3은 본 발명의 바람직한 실시예에 따르는 액세스 디렉토리 초기화 절차를 수행하기 위한 방법의 흐름도이다.
도 4는 도 3의 단계(306~314)를 수행하기 위한 바람직한 방법의 흐름도이다.
도 5는 본 발명의 바람직한 실시예에 따르는 영속 파일을 액세스하기 위한 방법의 흐름도이다.
도 6은 비-XIP 플래시 메모리 장치로부터 영속 파일을 판독하기 위한 방법의 흐름도이다.
도 1은 본 발명의 바람직한 실시예에 따르는 휴대용 전자 장치(100)의 블록 다이어그램이다. 도 1에서 도시된 다양한 기능들은 하드웨어, 소프트웨어 및 펌웨어의 임의의 조합에 의해 수행될 수 있다. 단일 블록으로 수행되는 것처럼 도시된 임의의 기능이 다수의 장치, 또는 시스템에 의해 수행될 수 있고, 둘 이상의 블록의 기능이 단일 장치에 의해 수행될 수 있다.
휴대용 전자 장치(100)는 최소한, 비-제위치 실행(non-XIP: non-execution in place) 플래시 메모리 장치(102)와, 제위치 실행(XIP) 메모리 장치(104)와, 휴대용 전자 장치(100)의 동작을 촉진하기 위한 영속 파일(persistent file)을 포함하는 임의의 장치이다. 바람직한 실시예에서, 휴대용 전자 장치(100)는, 비-XIP 플래시 메모리 장치(102)가 NAND 플래시 메모리 장치이고, 제위치 실행(XIP) 메모리 장치(106)는 SDRAM 장치인 셀방식 전화기이다. 장치(100)가 서비스를 시작하기 전에, 영속 파일과 폰 이미지 파일(phone image file)이 비-XIP 플래시 메모리 장치(102)로 복사된다. 바람직한 실시예에서, 상기 폰 이미지 파일은 압축 포맷으로 존재하며, 반면에 영속 파일은 비-XIP 플래시 메모리 장치(102)로 로딩될 때, 비압축 상태로 남아 있다. 휴대용 장치(100)의 제조 공정의 일부로서, 또는 업데이트 후에, 폰 이미지 코드와 영속 파일이 비-XIP 플래시 메모리 장치(102)의 적정 섹션(108, 110)으로 로딩된다. 로딩 프로세스 동안, 배드 블록(bad block)이 식별되고 피해진다. 따라서 영속 파일 섹션(110)의 위치는 비-XIP 플래시 메모리 장치(102)내의 배드 블록의 위치에 따라 좌우될 수 있다. 바람직한 실시예에서, 영속 파일 마커(persistent file marker)가 영속 파일 섹션(110)의 시작부로 로딩되어 영속 파일 섹션(110)의 위치 상에 정보를 제공할 수 있다. 바람직한 실시예에서, 폰 이미지 섹션(108)에서의 공간을 예약하고 추후의 코드 확장을 가능케 하도록, 그리고 영속 파일 섹션(110)에 대하여 일정한 시작 위치를 유지하도록, 패드(pad)가 폰 이미지 코드 뒤로 삽입된다. 따라서 영속 파일 마커는 영속 파일 섹션의 의도된 시작 위치에 위치하며, 이때 특정 위치는 배드 블록의 의도된 시작 위치에 따 라 좌우된다.
휴대용 장치(100)의 파워-업 절차 동안, 상기 폰 이미지 파일은 압축해제되고, XIP 메모리 장치(106)로 복사되어, 펌웨어 코드(112) 및 폰 이미지 데이터(114)를 형성할 수 있다. 휴대용 장치의 전체 기능을 촉진시키는 기능을 수행하기 위해, 프로세서(116)는 XIP 메모리 장치(106)로부터 펌웨어 코드를 실행한다. 상기 XIP 메모리 장치(106)는 임의의 저장 장치, 예를 들어, 코드 실행을 촉진시키는 RAM 장치, 또는 플래시 장치(flash device)이다. 적합한 RAM 장치의 예로는 SDRAM 장치가 있다. 일부 경우, 플래시 장치, 가령 NOR 플래시 장치가 XIP 메모리 장치(106)에 대하여 사용될 수 있다. 또 다른 기능에 덧붙이자면, 펌웨어 코드(112)는 폰 이미지 및 영속 파일이 설치되거나 업데이트된 후, 제 1 퍼워-업 절차 동안 영속 파일 초기화 절차를 수행한다. 상기 영속 파일 초기화 절차에 의해, 비-XIP 플래시 메모리 장치(102) 내의 영속 파일을 액세스하기 위한 액세스 디렉토리(access directory, 118)가 확립된다. 바람직한 실시예에서, 액세스 디렉토리(118)는 NAND 플래시 메모리 장치(102)의 내장형 파일 시스템(EFS: embedded file system) 섹션(120)에 저장되고 뒤따르는 파워 업 절차 동안 XIP 메모리 장치(106)로 RAM 액세스 디렉토리(126)로서 로딩된다. 새로운 코드 버전에 의해 폰 이미지 및 영속 파일이 변경되는 경우, 액세스 디렉토리(118)의 개정(revision)을 확립하도록 다음번 장치 파워-업에서 영속 파일 초기화 절차가 수행된다.
액세스 디렉토리(118)는 파일 위치 데이터(file location data, 122)와 배드 블록 위치 데이터(bad block location data, 124)를 포함하며, 이때 파일 위치 데 이터(122)는 비-XIP 플래시 메모리 장치(102)의 영속 파일 섹션(110) 내에서의 영속 파일의 위치를 나타내며, 배드 블록 데이터는 영속 파일 섹션(110) 내에서의 배드 블록 위치를 나타낸다. 추후 더욱 상세히 설명될 바와 같이, 상기 영속 파일 초기화 절차는 영속 파일 섹션(110)에서 각각의 파일의 시작 위치와 각각의 배드 블록의 위치를 판단하여, 액세스 디렉토리(118)를 형성할 수 있다. 일반적으로, 배드 블록에 대하여 블록 경계부를 체크하는 동안 영속 파일 섹션의 위치가 식별되며, 각각의 영속 파일의 크기가 판단되고, 영속 파일 섹션(118)이 각각의 영속 파일에 대하여 스캐닝된다.
액세스 디렉토리가 XIP 메모리 장치(106)로 복사되어, 프로세서(116) 상에서 실행되는 펌웨어(112)에 의한 액세스 디렉토리(118)로의 액세스를 촉진할 수 있다. 액세스 디렉토리(118)를 이용하여 영속 파일을 액세스하기 위해 액세스 절차가 인보크(invoke)된다. 상기 액세스 절차는 도 5 및 6을 참조하여 추후 더 상세하게 논의된다. 일반적으로, 영속 파일에 대한 시작 페이지 및 오프셋이 액세스 디렉토리로부터 판단되어지며, 배드 블록이 스킵(skip)되면서, 파일이 오프셋으로부터 판독되어진다. 배드 블록 위치 데이터(124)의 배드 블록 표(bad block table)에서의 페이지 번호에 의해 배드 블록이 식별된다. 파일을 판독할 때 만나는 첫 번째 배드 블록을 가리킴으로써, 배드 블록 인덱스가 추가적인 효율을 제공한다.
일부 경우, 영속 파일 섹션(110)이 EFS(120)에 저장될 수 있다. 그러나 바람직한 실시예에서, 영속 파일은 EFS(120)의 외부에 저장되고, 이는 EFS(120)에 의해 관리되는 파일의 개수를 최소화한다. 영속 파일이 EFS(120)에서 반복적으로 이동되 고 재-기록되지 않기 때문에, 비-XIP 플래시 장치(102)의 수명이 최대화된다.
도 2는 액세스 디렉토리(118)와 영속 파일 섹션(110) 사이의 바람직한 관계를 도시한 블록 다이어그램이며, 이때, 파일 위치 데이터(122)가 위치 표를 포함하고, 배드 블록 데이터(124)가 배드 블록 표를 포함한다. 앞서 논의된 바와 같이, 일반적으로 NAND 메모리 장치는 무효 블록, 즉 “배드 블록(bad block)”을 포함한다. 배드 블록은 보장되지 않는 신뢰도를 갖는 하나 이상의 무효 비트를 포함하는 블록이다. 배드 블록은 장치에 쉬핑(shipping)될 때 나타날 수 있으며, 또는 장치의 수명 동안 발달될 수 있다. 액세스 디렉토리 초기화 절차 동안, 영속 파일 섹션과, 각각의 영속 파일에 대한 스캐닝 비-XIP 플래시 메모리 장치(102)와, 각각의 영속 파일뿐 아니라 스캔 동안 마주치는 모든 배드 블록의 위치의 레코딩의 위치를 파악함으로써, 위치 표(location table) 및 배드 블록 표(bad block table)가 생성된다. 배드 블록 표(124)는 영속 파일 섹션(110) 내의 각각의 배드 블록에 대하여 시작 페이지의 페이지 번호를 포함한다. NAND 장치는 장치에서의 배드 블록을 가리키는 배드 블록 정보로 쉬핑(shipping)된다. 통상적으로, 각각의 블록의 제 1 페이지의 예비 바이트 섹션(spare byte section)과 제 2 페이지의 예비 바이트 섹션내의 위치가 블록이 무효(bad)한지의 여부를 나타내는 배드 블록 정보를 위해 예약된다. 액세스 디렉토리 초기화 절차 동안, 예비 바이트 섹션에서의 배드 블록 정보를 이용하여 배드 블록이 식별되어 배드 블록 표(124)를 생성하기 위해 사용된다. 액세스 디렉토리 초기화 절차는 도 3 및 도 4를 참조하여 추후 더욱 상세하게 논의된다.
바람직한 실시예에서, 위치 표(122)는 각각의 영속 파일에 대한 시작 위치 및 배드 블록 인덱스(218)를 포함하는 조사 표(look-up table)이다. 상기 시작 위치는 시작 페이지(214)와 페이지 오프셋(216)을 포함하며, 이때 시작 페이지(214)는 페이지 번호를 가리키며, 페이지 오프셋(216)은 파일이 시작하는 상기 페이지 내의 바이트 오프셋을 가리킨다. 배드 블록 인덱스(218)는 파일을 직렬 액세스할 때 마주치는 첫 번째 배드 블록의 페이지 번호(220, 222, 224)를 포함하는 배드 블록 표(124) 내의 위치를 가리킨다. 따라서 파일에 대한 배드 블록 인덱스(218)가 다음 파일에 대한 배드 블록 인덱스(218)와 동일할 경우, 상기 파일은 임의의 배드 블록을 포함하지 않는다.
도 2를 참조하여 설명된 예시적 상황에서, 영속 파일 섹션은 다수의 배드 블록(202, 204, 206, 208)과, 다수의 영속 파일(210, 212)을 포함한다. 위치 표(122)는 각각의 영속 파일(210, 212)에 대하여 시작 페이지(214)와, 페이지 오프셋(216)과, 배드 블록 인덱스(218)를 포함한다. 배드 블록 인덱스(218)는, 파일이 직렬로 액세스될 때 처음 마주치는 배드 블록의 페이지 번호를 포함하는 배드 블록 표(124)의 위치(220, 222, 224, 226)를 가리킨다. 예를 들어, 첫 번째 배드 블록 인덱스(218)가, “FILE 2”(212)이 판독될 때 리스트의 페이지 번호가 영속 파일의 첫 번째 배드 블록(202)에 대응하는 배드 블록 표의 첫 번째 위치(220)를 가리킨다. 배드 블록 표의 다음 위치(222)가 다음 배드 블록(204)의 첫 번째 페이지의 페이지 번호를 포함한다. 따라서 몇 개의 배드 블록 인덱스(218)가 단일 배드 블록 위치(220)를 가리킬 수 있다. 앞서 언급된 바와 같이, 현재 파일이 이전 파일과 동 일한 배드 블록 인덱스를 가질 경우, 현재 파일(210)은 배드 블록(202, 204, 206, 208) 중 어떠한 것도 포함하지 않는다.
도 3은 본 발명의 바람직한 실시예에 따르는 액세스 디렉토리 초기화 절차를 수행하기 위한 방법의 흐름도이다. 상기 액세스 디렉토리 초기화 절차는, 폼 이미지 및 영속 파일이 최초 로딩되거나, 또는 업데이트된 후 휴대용 장치(100)의 첫 번째 파워-업 시퀀스 동안 프로세서(116)에 의해 펌웨어 코드를 실행함으로써 수행된다. 영속 파일이 비-XIP 플래시 메모리 장치(102) 상에 저장되는 임의의 경우에서 방법이 수행될 수 있으며, 바람직한 방법은 휴대용 셀방식 전화기 내에서 수행된다.
단계(302)에서, 폰 이미지 섹션이 압축해제되고, XIP 장치(106)로 로딩된다. 앞서 설명된 바와 같이, 바람직한 실시예에서, 폰 이미지 섹션(108)은 비-XIP 플래시 메모리 장치(102)로 로딩될 때 압축된다. 따라서 폰 이미지 섹션(108)은 압축해제되고 XIP 장치(106)로 로딩되어, 프로세서(116)에 의해 펌웨어 코드(112)로서 실행될 수 있다. 바람직한 실시예에서, 다른 펌웨어 및 데이터에 덧붙여, 펌웨어 코드(112)는 액세스 디렉토리 초기화 코드와 영속 파일 액세스 코드를 포함한다. 다음에서 설명되는 단계(304~314)는 액세스 디렉토리 초기화 절차를 수행하기 위한 바람직한 방법을 제공한다.
단계(304)에서, 영속 파일 섹션(220)은 비-XIP 플래시 메모리 장치(102) 내에 위치된다. 앞서 설명된 바와 같이, 영속 파일 섹션(220)은 폰 이미지 섹션(108)으로부터 하나의 패드와 영속 파일 마커(228)만큼 떨어져 있다. 영속 파일 섹 션(110)이 영속 파일 마커(228) 뒤에 바로 위치하기 때문에, 영속 파일 마커(228)를 식별함으로써, 영속 파일 섹션(110)의 위치가 파악된다. 따라서 비-XIP 플래시 메모리 장치(102)에서, 패드의 끝 지점과 영속 파일 섹션(110)의 예상되는 시작 위치로부터 영속 파일 마커(228)가 탐색된다. 따라서 영속 파일 마커(228)는 배드 블록이 나타날 수 있는 영속 파일 섹션(110)의 특정한 식별을 제공한다.
단계(306)에서, 배드 블록에 대하여 체크하면서 영속 파일 섹션(110)이 스캐닝된다. 블록의 첫 번째 페이지 내의 배드 블록 인디케이터의 위치가 판독되어, 블록의 배드 블록(무효)인지의 여부가 판단된다. 폰 이미지 데이터(114)에 저장된 정보를 바탕으로 파일 크기를 계산하고, 시작 위치에서부터 스캐되는 파일의 모든 데이터까지 상기 파일을 판독함으로써, 각각의 파일은 스캐닝된다. 파일이 판독되는 동안 마주치는 블록 경계부가 계산되어져서, 상기 블록이 배드 블록인지의 여부가 판단될 수 있다.
단계(308)에서, 배드 블록이 발견될 때 배드 블록 표에 배드 블록 위치가 업데이트된다. 둘 이상의 블록을 포함하는 파일의 부분은 하나 이상의 배드 블록에 의해 분리될 수 있다. 배드 블록이 식별될 때, 액세스 디렉토리(118)의 배드 블록 표(124)가, 배드 블록 페이지를 리스트화함으로써, 업데이트된다.
단계(310)에서, 현재 스캔되는 파일의 파일 끝부분이 판단된다. 특정 파일에 대하여 판독되는 바이트의 수가 파일의 길이와 동일할 때, 파일의 끝부분에 도달하였음이 판단된다.
단계(312)에서, 다음 파일의 시작 위치를 반영하도록 액세스 디렉토리(118) 에서의 파일 위치 데이터가 업데이트된다. 바람직한 실시예에서, 데이터는 4 바이트 정렬(4 byte align)되며, 다음 파일의 파일 시작 위치는 다음에서 유용한 전체 4바이트 섹션이다. 다음 파일의 시작 페이지 및 오프셋이 위치 표(122)로 입력된다.
단계(314)에서, 다음 파일에 대한 배드 블록 인덱스(218)가 액세스 디렉토리(118)의 위치 표(122)에서 업데이트된다. 앞서 논의된 바와 같이, 배드 블록 인덱스(218)는, 현재 파일을 판독할 때 마주치는 첫 번째 배드 블록의 배드 블록 표(124)에서 페이지 번호 위치(220, 222, 224, 226)를 가리킨다. 파일을 스캐닝하는 동안, 어떠한 블록도 발견되지 않는 경우, 현재 파일의 배드 블록 인덱스는 마지막 배드 블록 인덱스와 동일하다.
도 4는 도 3의 단계(306~314)를 수행하는 바람직한 방법의 흐름도이다. 도 4를 참조하여 설명된 기능 및 절차는 도 3의 단계(306~314)를 실행하기 위해 임의의 순서로, 또는 동시에 수행될 수 있다. 도 4를 참조하여 설명된 임의의 단계의 절차가 도 3의 다수의 단계 중 일부분을 수행할 수 있고, 도 3의 임의의 단일 단계가 도 4의 다수의 단계에 의해 수행될 수 있다. 따라서 도 4의 단계가 도 3의 단계에 직접 대응하는 것이 필수인 것은 아니다.
단계(402)에서, 카운터(N)가 “1”로 설정된다.
단계(404)에서, N이 비-XIP 플래시 메모리 장치(102)에서 저장된 영속 파일의 개수 이하인지의 여부가 판단된다. N이 파일의 개수보다 작을 때, 적차는 단계(406)에서 계속된다. 그렇지 않을 경우, 빠져나옴(exiting)으로써, 절차가 종료 된다. 따라서 파일의 개수가 N보다 작을 때, 즉, 더 이상 스캔될 파일이 없을 때, 절차에서 빠져나와진다.
단계(406)에서, 파일의 크기(N)가 구해진다(retrieving). 폰 이미지에 포함된 메타데이터(metadata)를 바탕으로, 현재 파일의 크기가 판단되어진다. 따라서 폰 이미지는 영속 파일의 크기를 포함한다.
단계(408)에서, 현재 파일에 대한 시작 페이지가 설정된다. 파일 크기를 바탕으로 하여, 시작 페이지 및 시작 오프셋이 현재 파일에 대하여 판단되어진다. 스캐닝이 시작 위치에서 출발된다.
단계(410)에서, 파일 크기가 0보다 큰지의 여부가 판단된다. 파일 크기가 0보다 크기 않는 경우, 절차는 단계(412)에서 계속되며, 상기 단계(412)에서, 단계(404)로 복귀되기 전까지 N이 1만큼 증가된다. 그렇지 않는 경우, 절차가 단계(414)에서 계속된다. 다음에서 설명될 바와 같이, 하나의 페이지가 스캔된 후, 파일 크기는 페이지 크기만큼 감소된다. 따라서 단계(410)에서, 현재 파일에 대하여 스캔될 추가적인 페이지가 존재하는가의 여부가 판단된다.
단계(414)에서, 새로운 블록에 도달되었는가의 여부가 판단된다. 바람직한 실시예에서, 블록 경계부에 도달되었는지의 여부는, 32로 나눠진 블록 내의 페이지 번호가 나머지를 도출하느냐의 여부(즉, 페이지%32=0의 여부)에 따라서 판단된다. 하나의 블록에 32개의 페이지가 존재하기 때문에, 결과는 블록 경계부에서만 0이다. 새로운 블록과 마주치지 않는 경우, 절차가 단계(420)에서 계속된다. 블록 경계부에 도달하는 경우, 절차는 단계(416)에서 계속된다.
단계(416)에서, 블록이 무효인지의 여부(즉, 블록이 배드 블록인지의 여부)가 판단된다. 블록의 첫 번째 페이지 및 두 번째 페이지에 대응하는 예비 바이트(spare byte)에서의 배드 블록 정보가 판독된다. 블록이 유효한 블록인 경우, 절차는 단계(420)에서 계속된다. 배드 블록 정보가 블록이 무효임을 가리키는 경우(즉, 블록이 배드 블록인 경우), 절차는 단계(418)로 진행한다.
단계(418)에서, 블록의 나머지 페이지가 스킵(skip)되고, 배드 블록 표에 배드 블록의 페이지 번호가 업데이트된다. 그 후, 절차가 단계(414)로 복귀한다.
단계(420)에서, 파일 크기가 페이지 크기보다 더 큰 지의 여부가 판단된다. 파일 크기가 페이지 크기보다 더 큰 경우, 데이터의 둘 이상의 페이지가 파일에 대하여 남겨진다. 단계(422)에서 파일 크기는 하나의 페이지 크기만큼 감소되며, 절차는 단계(410)로 복귀되어, 파일의 스캔을 계속한다. 파일 크기가 페이지 크기보다 더 크지 않는 경우, 절차는 단계(426)에서 계속된다.
단계(426)에서, 파일 크기가 페이지 크기와 동일한지의 여부가 판단된다. 파일 크기가 페이지 크기와 동일한 경우, 절차는 단계(428)에서 계속된다. 그렇지 않는 경우, 절차는 단계(424)에서 계속된다.
단계(424)에서, 위치 표(122)가 업데이트되고, 파일 크기가 0으로 설정된다. 현재 파일의 끝 지점의 위치 및 요구되는 임의의 정렬에 의해 다음 파일의 시작 위치(214, 216)가 판단된다. 따라서 표(122)에서의 페이지(214) 및 오프셋(216) 값이 업데이트되어, 다음번 파일의 시작 위치를 반영할 수 있다. 덧붙이자면, 배드 블록 표의 다음번 위치를 가리키도록 배드 블록 인덱스(218)가 업데이트된다. 어떠한 배 드 블록도 마주치지 않는 경우, 다음번 배드 블록 인덱스(218)는 현재 배드 블록 인덱스(218)와 동일하다. 그 후, 절차가 단계(410)로 복귀한다.
단계(428)에서, 현재 페이지 번호가 1만큼 증가된다. 따라서 단계(426)에서 파일 크기가 페이지 크기와 동일하다고 판단되는 경우, 상기 페이지 번호는 증가되고, 절차는 단계(430)에서 계속된다.
단계(430)에서, 새로운 블록과 마주치느냐의 여부가 판단된다. 블록 경계부에 도달하는 경우, 절차는 단계(432)로 계속된다. 그렇지 않는 경우, 상기 절차는 단계(424)로 계속된다.
단계(432)에서, 블록의 무효 여부가 판단된다. 블록이 유효하며, 배드 블록이 아니라고 판단된 경우, 절차는 단계(424)로 계속된다. 그렇지 않는 경우, 절차는 배드 블록 표(124)가 업데이트되고 배드 블록의 나머지 페이지가 스킵되는 단계(434)로 계속된다.
도 5는 본 발명의 바람직한 실시예에 따르는 영속 파일을 액세스하기 위한 방법의 흐름도이다. 상기 방법이 파일이 비-XIP 플래시 메모리 장치(102) 상에 저장되는 임의의 경우에서 수행될 수 있지만, 상기 바람직한 방법은 휴대용 셀방식 전화기 내에서 수행된다. 둘 이상의 단계가 동시에 수행될 수 있으며, 단계들의 순서는 일부 솔루션에서 변경될 수 있다.
단계(502)에서, 비-XIP 플래시 메모리 장치(102)로부터 판독될 파일의 파일 위치가 식별된다. 바람직한 실시예에서, 상기 파일 위치는 액세스 디렉토리(118)로부터 판단되어진다. 파일의 시작 페이지(214) 및 오프셋(216)이 액세스 디렉토 리(118)의 위치 표(122)로부터 구해진다.
단계(504)에서, 파일에 대하여 판독될 페이지의 개수 및 바이트의 개수가 계산된다. 판독되도록 요청된 파일의 길이를 바탕으로, 페이지 및 바이트의 개수가 계산된다.
단계(506)에서, 상기 배드 블록 데이터가 구해진다. 액세스 디렉토리(118)에서 저장되는 배드 블록 데이터가 구해진다. 바람직한 실시예에서, 배드 블록 데이터가 위치 표(122)와 배드 블록 표(124)로부터 판독된다. 현재의 배드 블록 인덱스와 다음 번 배드 블록 인덱스가 액세스 디렉토리(118)의 위치 표(218)로부터 판독된다. 현재 배드 블록 인덱스(218)가 다음번 배드 블록 인덱스(218)와 동일하지 않을 때, 현재 파일에 대응하는 하나 이상의 배드 블록 페이지가 배드 블록 표로부터 판독된다.
단계(508)에서, 배드 블록을 스킵(skip)함으로써, 파일이 비-XIP 플래시 메모리 장치(102)로부터 판독된다. 임의의 배드 블록에 대하여 계산하는 동안, 페이지 및 바이트의 계산된 개수가 비-XIP 플래시 메모리 장치(102)로부터 판독되어진다. 파일을 판독하는 바람직한 방법이 도 6을 참조하여 다음에서 설명된다.
도 6은 비-XIP 플래시 메모리 장치(102)로부터 영속 파일을 판독하기 위한 방법의 흐름도이다. 따라서 도 6을 참조하여 설명된 방법이 도 5의 단계(508)를 수행하기 위한 바람직한 방법이다. 도 6을 참조하여 설명되는 기능 및 절차는 도 5의 단계(508)를 실행하기 위해, 임의의 순서로, 또는 동시에 수행될 수 있다.
단계(602)에서, 파일의 첫 번째 페이지가 비-XIP 플래시 메모리 장치(102)로 부터 판독되며, 판독될 페이지의 개수가 1만큼 감소된다. 파일의 오프셋과 길이에 따라서, 전체 페이지가 판독되거나, 페이지의 일부분만 판독될 수 있다.
단계(604)에서, 판독될 페이지의 개수가 0과 동일한가의 여부가 판단된다. 판독될 어떠한 페이지도 남아 있지 않고, 페이지의 개수가 0과 동일한 경우, 상기 방법은 단계(608)로 계속되며, 단계(608)에서, 파일에 대한 데이터가 버퍼로 복사되고, 절차가 완료된다. 판독될 페이지가 더 존재하는 경우(즉, 판독될 페이지의 개수가 0이 아닌 경우), 상기 방법은 단계(606)에서 계속되고, 상기 단계(606)에서, 파일에 대한 데이터가 버퍼로 복사된다.
단계(610)에서, 마지막 페이지를 제외한 판독될 나머지 페이지가 현재 블록으로부터 판독된다.
단계(612)에서, 판독될 페이지의 개수가 1과 동일한가의 여부가 판단된다. 파일에 대한 나머지 데이터가 하나의 페이지, 또는 페이지의 일부분을 판독하는 것을 요구하는 경우, 방법은 단계(614)로 계속되고, 현재 블록의 마지막 페이지가 판독되며, 방법에서 빠져나가진다(exit). 그렇지 않은 경우, 상기 방법이 단계(616)로 계속된다. 따라서 파일에 대한 데이터가 둘 이상의 페이지를 판독하는 것을 요구하는 경우, 상기 방법은 단계(616)로 계속된다. 따라서 단계(616)에서 시작하는 절차의 나머지가 수행될 필요가 없으며, 이때, 블록 경계부는 교차되지 않을 것이다. 파일의 나머지가 현재 블록의 내부에 존재하는 경우, 상기 파일이 배드 블록에 대하여 체크하지 않고 판독될 수 있다.
단계(616)에서, 현재 배드 블록 인덱스(218)가 다음번 배드 블록 인덱 스(218)와 동일한가의 여부가 판단되어진다. 인덱스들이 동일한 경우, 절차가 단계(618)에서 계속된다. 인덱스들이 동일할 때, 현재 블록에는 어떠한 배드 블록도 존재하지 않으며, 파일의 나머지 데이터는 단계(618, 614)에서 판독된다. 인덱스가 동일하지 않는 경우, 상기 방법은 단계(620)에서 계속된다.
단계(620)에서, 파일의 나머지 데이터가 하나의 페이지를 판독하는 것을 요구하는가의 여부가 판단된다. 따라서 둘 이상의 페이지가 판독되는 파일에 관련된 나머지 데이터를 판독하도록 액세스되어야하는가의 여부가 판단된다. 하나의 페이지, 또는 페이지의 일부분만이 판독되는 경우, 절차는 단계(622)로 계속된다. 그렇지 않은 경우, 절차는 단계(624)에서 계속된다.
단계(622)에서, 배드 블록에 도달된 경우, 배드 블록은 스킵된다. 단계(622)에서, 판독될 데이터는 하나의 페이지, 또는 그 이하이다. 그러나 판독될 최종 페이지가 하나 이상의 배드 블록 뒤에 위치하는 것도 가능하다. 따라서 판독될 마지막 페이지가 블록 경계부(즉, 블록의 첫 번째 페이지)에 위치하는 경우, 페이지에 대한 배드 블록 정보가 배드 블록 표(124)의 배드 블록 페이지(220, 222, 224, 226)와 비교된다. 블록이 무효(bad)인 경우, 유효 블록이 발견될 때까지 다음번 블록이 체크된다. 마지막 페이지, 또는 페이지의 일부분이 판독되고 버퍼로 복사된다.
단계(624)에서, 페이지가 현재 배드 블록 페이지인가의 여부가 판단된다. 페이지는 배드 블록 표의 배드 블록 페이지 번호와 비교된다. 블록이 무효인 경우, 단계(626)에서 블록의 나머지 페이지가 스킵되고, 절차는 단계(620)로 복귀되어 판 독될 페이지의 개수가 남아 있는가의 여부가 판단된다. 블록이 유효한 경우, 절차가 단계(628)에서 계속된다.
단계(628)에서, 현재 블록에서의 나머지 페이지를 제외한 나머지 페이지가 판독된다. 그 후, 절차가 단계(620)로 복귀한다. 따라서 단계(620, 624, 626, 628)가 루프를 형성하며, 그 후 배드 블록을 스킵하면서 페이지를 판독한다. 하나의 페이지가 판독되기 위해 남겨질 때, 루프에서 빠져나온다.
따라서 바람직한 실시예에 따르면, 압축된 폰 이미지 및 비-압축된 영속 파일이 휴대용 셀방식 전화기, 또는 그 밖의 다른 전자 휴대용 장치(100)의 NAND 플래시 메모리 장치(102)로 로딩, 또는 업데이트된다. 액세스 디렉토리 초기화 절차 동안의, 파워-업 시퀀스 동안, 배드 블록에 대한 블록 경계부를 체크하면서 영속 파일이 스캔된다. 위치 표(122)와 배드 블록 표(124)를 갖는 액세스 디렉토리가 생성되며, 이때, 위치 표(122)는 각각의 파일에 대하여 시작 페이지와 오프셋을 포함하고, 배드 블록 인덱스를 포함한다. 배드 블록 표(124)는 영속 파일 섹션(110) 내의 배드 블록의 페이지 번호(220, 222, 224, 226)를 포함한다. 휴대용 전자 장치(100)의 동작 동안, 영속 파일 섹션(110)의 배드 블록을 계산하는 액세스 절차를 이용하여 비-XIP 플래시 메모리 장치(102) 상에서 영속 파일이 액세스된다. 파일을 판독하는 것이 영속 파일 섹션을 형성하는 동안 액세스 디렉토리(118)에서 나타난 배드 블록은 스킵된다. NAND 플래시 메모리 장치(102)로부터 직접 파일이 액세스될 수 있기 때문에, XIP 메모리 장치(106)의 크기 및 비용이 감소된다.

Claims (20)

  1. 비휘발성 비-제위치 실행(비-XIP: non-execute-in-place) 플래시 메모리 장치에 있어서, 상기 장치는
    - 다수의 비-압축된 영속 파일(persistent file)을 저장하기 위한 영속 파일 섹션(persistent file section),
    - 압축된 이미지 파일을 저장하기 위한 이미지 파일 섹션(image file section)으로서, 이때 상기 압축된 이미지 파일이 압축해제되고, 휘발성 제위치 실행(XIP) 메모리로 복사되며, 이때 압축해제된 이미지 파일 섹션은 펌웨어(firmware)를 포함하는 상기 이미지 파일 섹션(image file section), 그리고
    - 액세스 디렉토리(access directory)
    를 포함하며, 이때 상기 액세스 디렉토리는
    + 상기 영속 파일 섹션 내에서의 영속 파일의 위치를 나타내는 파일 위치 데이터(file location data), 그리고
    + 상기 영속 파일 섹션 내에서의 배드 블록(bad block)의 위치를 나타내는 배드 블록 데이터(bad block data)
    를 포함하며, 이때, 상기 액세스 디렉토리는 휘발성 XIP 메모리로 복사되며, 이에 따라서 XIP 메모리에서 펌웨어를 실행할 때, 프로세서가 상기 영속 파일 섹션으로 액세스하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치.
  2. 제 1 항에 있어서, 상기 영속 파일 섹션은 배드 블록을 포함하는 다수의 블록을 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치.
  3. 제 2 항에 있어서, 상기 파일 위치 데이터는, 다수의 비-압축된 영속 파일의 각각의 영속 파일에 대한 페이지 번호와 오프셋 값을 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치.
  4. 제 3 항에 있어서, 상기 배드 블록 데이터는 배드 블록의 첫 번째 페이지에 대응하는 하나 이상의 배드 블록 페이지 번호를 포함하는 배드 블록 표(bad block table)를 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치.
  5. 제 1 항에 있어서, 액세스 디렉토리는 다수의 파일 위치를 포함하는 조사 표(look-up table)이며, 이때 각각의 파일 위치는 다수의 비-압축 영속 파일의 영속 파일에 대응하고, 영속 파일의 시작 포인트에 대응하는 페이지 번호와 오프셋 값을 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치.
  6. 제 4 항에 있어서, 상기 배드 블록 데이터는 배드 블록 인덱스를 더 포함하며, 상기 배드 블록 인덱스는 다수의 배드 블록 인덱스 값을 포함하며, 상기 다수의 배드 블록 인덱스 값은 다수의 비-압축 영속 파일에 대응하고, 각각의 영속 파일에 대하여 비-휘발성 비-XIP 플래시 메모리 장치로부터 판독될 때 첫 번째 배드 블록의 첫 번째 배드 블록 페이지 번호를 포함하는 배드 블록 표 내의 위치를 나타내는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치.
  7. 제 1 항에 있어서, 비-휘발성 비-XIP 플래시 메모리 장치를 이용하는 전자 장치의 초기화 절차(initialization procedure) 동안 액세스 디렉토리가 형성되고, 비-휘발성 비-XIP 플래시 메모리 장치의 내장된 파일 시스템 부분으로 저장되는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치.
  8. 제 1 항에 있어서, 상기 액세스 디렉토리는 영속 파일 섹션으로의 액세스를 제공하기 위한 액세스 절차(access procedure)를 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치.
  9. 비-휘발성 비-제위치 실행(비-XIP: non-execute-in-place) 플래시 메모리 장치 내에 영속 파일(persistent file)을 액세스하기 위한 방법에 있어서, 상기 방법은
    비-휘발성 비-XIP 플래시 메모리 장치에 저장된 이미지 파일 섹션을 휘발성 제위치 실행(XIP) 메모리로 복사하는 단계,
    상기 비-휘발성 비-XIP 플래시 메모리에 저장된 액세스 디렉토리를 휘발성 XIP 메모리로 복사하는 단계,
    휘발성 XIP 메모리의 복사된 액세스 디렉토리 내의 파일 위치 데이터(file location data)를 바탕으로, 비-휘발성 비-XIP 플래시 메모리의 영속 파일 섹션 내의 영속 파일의 파일 위치를 판단하는 단계,
    복사된 액세스 디렉토리에서의 배드 블록 데이터가 나타내는 배드 블록을 스킵(skip)하면서, 파일 위치로부터 비-휘발성 비-XIP 플래시 메모리 장치에서 영속 파일을 판독하는 단계
    를 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치 내의 영속 파일을 액세스하는 방법.
  10. 제 9 항에 있어서, 상기 판독하는 단계는
    비-휘발성 비-XIP 플래시 메모리 장치의 현재 페이지를, 복사된 액세스 디렉토리의 배드 블록 표(bad block table) 내의 배드 블록 페이지 번호와 비교하는 단계, 그리고
    배드 블록 페이지 번호가 나타내는 배드 블록을 스킵(skip)하면서 영속 파일을 판독하는 단계
    를 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치 내의 영속 파일을 액세스하는 방법.
  11. 제 10 항에 있어서, 상기 판독하는 단계는
    - 영속 파일들 중 하나의 영속 파일에 대응하는 현재 배드 블록 인덱스가 다음번 영속 파일에 대응하는 다음 번 배드 블록 인덱스와 동일한가의 여부를 판단하 는 단계로서, 각각의 배드 블록 인덱스는, 비-휘발성 비-XIP 플래시 메모리 장치로부터 각각의 영속 파일이 판독될 때, 영속 파일들 중 각각의 영속 파일에 대하여, 마주치는 첫 번째 배드 블록의 첫 번째 배드 블록 페이지 번호를 포함하는 배드 블록 표 내의 위치를 나타내는 단계, 그리고
    - 현재 배드 블록 인덱스가 다음번 배드 블록 인덱스와 동일한 경우, 영속 파일을 판독하는 단계로서, 복사된 액세스 디렉토리는 현재 배드 블록 인덱스와 다음번 배드 블록 인덱스를 포함하는 단계
    를 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치 내의 영속 파일을 액세스하는 방법.
  12. 제 11 항에 있어서, 상기 판독하는 단계는
    현재 페이지 번호가 영속 파일에 대응하는 현재 배드 블록 페이지 번호와 동일한 경우, 현재 블록의 나머지 페이지를 스킵(skip)하는 단계
    를 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치 내의 영속 파일을 액세스하는 방법.
  13. 제 12 항에 있어서, 상기 판독하는 단계는
    현재 페이지가 현재 배드 블록 페이지 번호와 동일하지 않는 경우, 현재 블록의 마지막 페이지를 제외한 현재 블록의 나머지 페이지를 판독하는 단계
    를 더 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치 내 의 영속 파일을 액세스하는 방법.
  14. 제 13 항에 있어서, 상기 판독하는 단계는
    상기 배드 블록 표가 나타내는 배드 블록을 스킵(skip)하면서, 영속 파일의 마지막 페이지 내의 데이터를 판독하는 단계
    를 더 포함하는 것을 특징으로 하는 비휘발성 비-XIP 플래시 메모리 장치 내의 영속 파일을 액세스하는 방법.
  15. 비-제위치 실행(비-XIP: non-execute-in-place) 플래시 메모리 장치와 제위치 실행(XIP) 메모리 장치를 포함하는 휴대용 장치를 초기화하는 방법에 있어서, 상기 방법은
    비-XIP 플래시 메모리 장치 내의 영속 파일 섹션의 위치를 파악하는 단계로서, 이때 비-XIP 플래시 메모리는 영속 파일 섹션(persistent file section)과, 압축된 이미지 파일 섹션과, 액세스 디렉토리(access directory)와, 다수의 비-압축된 영속 파일을 저장하는 영속 파일 섹션을 포함하는 단계,
    배드 블록을 체크하면서, 다수의 비-압축된 영속 파일 중 각각의 영속 파일의 페이지를 스캔하는 단계, 그리고
    상기 액세스 디렉토리 내에 영속 파일 섹션 내의 배드 블록의 위치를 나타내는 배드 블록 정보를 저장하는 단계
    를 포함하는 것을 특징으로 하는 휴대용 장치를 초기화하는 방법.
  16. 제 15 항에 있어서, 스캔하는 단계는
    각각의 영속 파일에 대한 시작 위치를 판단하는 단계,
    각각의 영속 파일의 크기를 구하는(retrieving) 단계, 그리고
    각각의 영속 파일을 스캐닝하는 동안, 새로운 블록과 마주칠 때 상기 블록이 유효한가의 여부를 판단하는 단계
    를 포함하는 것을 특징으로 하는 휴대용 장치를 초기화하는 방법.
  17. 제 16 항에 있어서, 저장하는 단계는
    각각의 영속 파일의 시작 위치를 나타내는 페이지와 오프셋 값을 저장하는 단계, 그리고
    상기 액세스 디렉토리(access directory)의 배드 블록 표(bad block table)에 배드 블록 페이지 번호를 저장하는 단계로서, 이때 상기 배드 블록 페이지 번호는 비-XIP 플래시 메모리 장치에서의 배드 블록의 위치를 나타내는 단계
    를 포함하는 것을 특징으로 하는 휴대용 장치를 초기화하는 방법.
  18. 제 17 항에 있어서,
    각각의 영속 파일에 대응하는 배드 블록 인덱스(bad block index)를 저장하는 단계로서, 각각의 배드 블록 인덱스는, 각각의 영속 파일이 비-XIP 플래시 메모리 장치로부터 판독될 때 각각의 영속 파일에 대하여 마주치는 첫 번째 배드 블록 의 첫 번째 배드 블록 페이지 번호를 포함하는 배드 블록 표 내의 위치를 나타내는 단계
    를 더 포함하는 것을 특징으로 하는 휴대용 장치를 초기화하는 방법.
  19. 셀방식 전화기(cellular telephone)에 있어서, 상기 셀방식 전화기는
    압축된 폰 이미지 섹션(phone image section)과, 영속 파일 섹션(persistent file section)과, 액세스 디렉토리(access directory)를 포함하는 비-휘발성 비-제위치 실행(비-XIP) 플래시 메모리 장치,
    비-XIP 플래시 메모리 장치의 상기 압축된 폰 이미지 섹션으로부터 복사되고 압축해제된 펌웨어 코드와, 비-XIP 플래시 메모리 장치의 액세스 디렉토리로부터 복사된 액세스 디렉토리를 포함하는 제위치 실행(XIP) 메모리 장치,
    상기 XIP 메모리 장치에서 펌웨어 코드를 실행하도록 구성되는 프로세서로서, 이때 상기 펌웨어 코드는, 복사된 액세스 디렉토리가 나타내는 배드 블록을 스킵(skip)함으로써, 비-XIP 플래시 메모리 장치에 저장된 영속 파일 섹션의 영속 파일을 액세스하기 위한 파일 액세스 절차(file access procedure)를 수행하도록 구성되는 상기 프로세서
    를 포함하는 것을 특징으로 하는 셀방식 전화기.
  20. 제 19 항에 있어서, 상기 펌웨어 코드는
    복사된 액세스 디렉토리 내의 파일 위치 데이터를 바탕으로 하여, 영속 파일 섹션 내에서 영속 파일의 파일 위치를 판단하는 단계,
    비-XIP 플래시 메모리 장치의 현재 페이지를 복사된 액세스 디렉토리의 배드 블록 표 내의 배드 블록 페이지 번호와 비교하는 단계, 그리고
    배드 블록 페이지 번호가 나타내는 배드 블록을 스킵(skip)하면서, 영속 파일을 판독하는 단계
    를 실행하도록 구성되는 것을 특징으로 하는 셀방식 전화기.
KR1020087000134A 2005-07-15 2006-07-13 비-제위치 실행 플래시 메모리에서 영속 파일을 액세스하기위한 장치, 시스템 및 방법 KR100975748B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/182,173 US7454673B2 (en) 2005-07-15 2005-07-15 Apparatus, system, and method for accessing persistent files in non-execute-in-place flash memory
US11/182,173 2005-07-15

Publications (2)

Publication Number Publication Date
KR20080024187A true KR20080024187A (ko) 2008-03-17
KR100975748B1 KR100975748B1 (ko) 2010-08-12

Family

ID=37397360

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087000134A KR100975748B1 (ko) 2005-07-15 2006-07-13 비-제위치 실행 플래시 메모리에서 영속 파일을 액세스하기위한 장치, 시스템 및 방법

Country Status (7)

Country Link
US (1) US7454673B2 (ko)
EP (1) EP1905044B1 (ko)
JP (1) JP4777426B2 (ko)
KR (1) KR100975748B1 (ko)
CN (1) CN101208755B (ko)
AT (1) ATE525728T1 (ko)
WO (1) WO2007011677A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7634494B2 (en) * 2005-05-03 2009-12-15 Intel Corporation Flash memory directory virtualization
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
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
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
US20080288712A1 (en) * 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
US8060685B2 (en) * 2007-07-31 2011-11-15 Hewlett-Packard Development Company, L.P. Electronic device data access system and method
US8635398B2 (en) 2008-12-30 2014-01-21 Micron Technology, Inc. Execute-in-place mode configuration for serial non-volatile memory
KR20100089288A (ko) * 2009-02-03 2010-08-12 삼성전자주식회사 휴대용 단말기에서 보안 정보를 관리하기 위한 장치 및 방법
US9442840B2 (en) 2012-12-19 2016-09-13 Qualcomm Incorporated Virtual boundary codes in a data image of a read-write memory device
US9128824B2 (en) 2012-12-24 2015-09-08 Intel Corporation In-place change between transient and persistent state for data structures on non-volatile memory
US9547489B2 (en) * 2014-03-31 2017-01-17 Qualcomm Incorporated System and method for modifying a sequence of instructions in a read-only memory of a computing device
US10289321B1 (en) * 2017-05-05 2019-05-14 Amazon Technologies, Inc. Bad block table recovery in a solid state drives
CN111179997B (zh) * 2019-12-26 2021-09-14 武汉精鸿电子技术有限公司 一种半导体存储器测试数据的存储方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5200959A (en) * 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5249288A (en) 1991-04-01 1993-09-28 Xerox Corporation Process for accommodating bad disk pages in an electronic printing system
US5479656A (en) * 1992-05-13 1995-12-26 Rawlings, Iii; Joseph H. Method and system for maximizing data files stored in a random access memory of a computer file system and optimization therefor
JPH11184699A (ja) 1997-11-26 1999-07-09 Internatl Business Mach Corp <Ibm> 移動オブジェクト群の実行方法、及び移動オブジェクト群を格納した記憶媒体
US6434695B1 (en) * 1998-12-23 2002-08-13 Apple Computer, Inc. Computer operating system using compressed ROM image in RAM
JP3893005B2 (ja) * 2000-01-06 2007-03-14 富士通株式会社 不揮発性半導体記憶装置
TWI220469B (en) 2003-03-25 2004-08-21 Icp Electronics Inc Automatic booting system and method thereof

Also Published As

Publication number Publication date
JP2009500770A (ja) 2009-01-08
CN101208755A (zh) 2008-06-25
EP1905044B1 (en) 2011-09-21
US20070014136A1 (en) 2007-01-18
US7454673B2 (en) 2008-11-18
KR100975748B1 (ko) 2010-08-12
JP4777426B2 (ja) 2011-09-21
WO2007011677A1 (en) 2007-01-25
CN101208755B (zh) 2012-09-19
EP1905044A1 (en) 2008-04-02
ATE525728T1 (de) 2011-10-15
WO2007011677B1 (en) 2007-05-24

Similar Documents

Publication Publication Date Title
KR100975748B1 (ko) 비-제위치 실행 플래시 메모리에서 영속 파일을 액세스하기위한 장치, 시스템 및 방법
US8392690B2 (en) Management method for reducing utilization rate of random access memory (RAM) used in flash memory
KR100449708B1 (ko) 플래시 메모리 관리방법
US9483396B2 (en) Control apparatus, storage device, and storage control method
US9575972B2 (en) Contiguous file allocation in an extensible file system
US20110055464A1 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
US20060064576A1 (en) Boot systems and methods
US20090037648A1 (en) Input/output control method and apparatus optimized for flash memory
US7287117B2 (en) Flash memory and mapping control apparatus and method for flash memory
US8578359B2 (en) Method and apparatus for reliable in-place update
WO2007026484A1 (ja) 実行バイナリイメージの作成及び実行を行う装置、方法、プログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体
US9003354B2 (en) Optimizing memory usage and system performance in a file system requiring entire blocks to be erased for rewriting data
US20050149493A1 (en) Data recording apparatus and data recording method
CN113327639B (zh) 一种基于lvgl的固件存储读取方法及装置
US20050149270A1 (en) Componentware creating method, apparatus and recording medium
US7603665B2 (en) Method and apparatus for loading relocatable in-place executable files in a virtual machine
CN100544378C (zh) 终端电话本存储管理的方法
KR100874023B1 (ko) Mp3 디코더의 입력 데이터 버퍼를 관리하는 방법 및 장치
CN114328293A (zh) 一种java卡flash页磨损均衡管理方法
KR100315632B1 (ko) 파일 복구가 가능한 파일처리기 및 그 처리 방법
CN117170581A (zh) 数据录制方法、数据回放方法和装置
CN115599406A (zh) 一种软件烧写方法、装置及计算机可读存储介质
KR100695267B1 (ko) 이동통신 단말기의 랜덤 액세스 메모리의 저장 공간을절감하는 방법
CN116483277A (zh) 一种基于eeprom的小型日志存储方法、智能终端及存储介质
CN117473117A (zh) 一种视频循环存储方法、系统及计算机

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: 20130724

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee