KR100510370B1 - 비휘발성 재프로그램가능한 반도체 메모리에 저장된 파일데이터를 액세싱하는 방법 및 시스템 - Google Patents

비휘발성 재프로그램가능한 반도체 메모리에 저장된 파일데이터를 액세싱하는 방법 및 시스템 Download PDF

Info

Publication number
KR100510370B1
KR100510370B1 KR10-2002-7013668A KR20027013668A KR100510370B1 KR 100510370 B1 KR100510370 B1 KR 100510370B1 KR 20027013668 A KR20027013668 A KR 20027013668A KR 100510370 B1 KR100510370 B1 KR 100510370B1
Authority
KR
South Korea
Prior art keywords
data
file
memory
compressed
processor
Prior art date
Application number
KR10-2002-7013668A
Other languages
English (en)
Other versions
KR20030044906A (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 KR20030044906A publication Critical patent/KR20030044906A/ko
Application granted granted Critical
Publication of KR100510370B1 publication Critical patent/KR100510370B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99955Archiving or backup

Abstract

운영체제를 위한 파일 데이터는 압축된 포맷으로 재프로그램가능한 반도체 메모리에 저장될 수 있다. 이 메모리는 모두 압축된 포맷으로 저장된 하나이상의 파일 시스템을 위한 데이터 및 헤더가 구비된다. 메모리에 저장된 디바이스 드라이버는 또한 데이터를 압축해제하여 특정 파일 시스템 또는 운영체제에 적절한 포맷으로 변환하는 데에 이용될 수 있다.

Description

비휘발성 재프로그램가능한 반도체 메모리에 저장된 파일 데이터를 액세싱하는 방법 및 시스템{Accessing File Data Stored In Non-Volatile Re-Programmable Semiconductor Memories}
본 발명은 주, 비휘발성, 재프로그래밍가능한 저장 매체로서 반도체 메모리를 사용하는 프로세서-기반 시스템에 관한 것이다.
내장형 프로세서-기반 시스템이라 불리는 것에 대한 수요가 증가하고 있다. 이들 시스템은 비교적 저비용으로 소망하는 성능을 제공하기 위해 흔히 감소된 기능으로 동작한다. 대부분의 경우에, 이들 내장형 프로세서-기반 시스템은 배터리로 구동된다. 따라서, 그들의 성능은 배터리 수명을 개선시키는 것에 제한된다.
배터리 수명 보존, 비용 감소 및 컴팩트한 형태 요인을 제공하는 것을 포함하는 다양한 요인에 대해, 비휘발성 저장 매체로서 하드 디스크 드라이브를 사용하지 않는 프로세서-기반 시스템이 제공될 수 있다. 대부분의 프로세서-기반 시스템에서, 하드 디스크 드라이브는 사용자가 영구적으로 유지하기를 원하는 정보의 대부분의 정보를 저장하는 편리한 비휘발성 저장 매체를 제공한다. 이것은 예로서, 운영체제, 응용 소프트웨어, 파일 및 데이터등을 포함한다. 하드 디스크 드라이브에 저장된 정보는 통상적으로 휘발성 메모리인 시스템 메모리에 실행을 위해 전송된다.
대부분의 시스템에서, 하드 디스크 드라이브는 매우 고 용량이고, 비교적 고속의 저장 매체를 제공한다. 그러나, 하드 디스크 드라이브는 비휘발성 반도체 메모리 보다 더욱 많은 공간을 차지하고 더욱 많은 전력을 사용한다. 대부분의 내장 시스템에서, 재프로그래밍가능한, 비휘발성, 반도체 메모리가 프로세서-기반 시스템을 위한 주 저장 시스템으로서 사용된다. 이들 반도체 메모리는 운영체제를 포함하여하드 디스크 드라이브에 통상적으로 저장된 정보를 저장한다.
대부분의 경우에, 프로세서-기반 시스템을 위한 주 저장 시스템으로서 사용된 반도체 메모리는 플래쉬 메모리이다. 이들 플래쉬 메모리는 공지된 온-보드 성능을 사용하여 사용자의 간섭없이 재프로그래밍가능하다. 이들 플래쉬 메모리는 일반적으로 행 및 열 주소를 사용하여 액세스된다. 따라서, 이들 메모리는 파일의 실제주소 및 그 메모리내의 기타 데이터가 일반적으로 메모리 외부에 저장된다는 점에서 모노리딕이다.
도 1은 본 발명의 일실시예에 따라 이용된 소프트웨어 모듈의 개략도.
도 2는 본 발명의 일실시예에 따라 압축되지 않은 본래 파일을 블록으로 분할하는 개략도.
도 3은 본 발명의 일실시예에 따라 압축된 파일 시스템 내부에서의 할당을 나타낸 개략도.
도 4는 본 발명의 일실시를 구현하기 위한 한 시스템의 블록도.
도 5는 본 발명의 일실시예에 따라 사용될 수 있는 소프트웨어의 흐름도.
도 6은 본 발명의 일실시예에 따라 사용될 수 있는 소프트웨어의 흐름도.
도 7은 본 발명의 일실시예에 따라 블록을 압축하기 위한 소프트웨어의 흐름도.
따라서, 운영체제가 비휘발성 재프로그램가능한 반도체 메모리상의 정보를 저장하고 그 정보를 효율적으로 액세스할 수 있도록 하기 위한 필요가 있어 왔다.
도 1을 참조하면, 클라이언트 프로세서-기반 시스템은 파일 시스템 드라이버(14)와 통신하는 운영체제 커널(12)을 갖는 소프트웨어 구조(10)를 포함한다. 파일 시스템 드라이버(14)는 반도체 메모리(40)로부터 미가공 데이터를 수신하고 이 드라이버를 논리 레이아웃에 배열한다. 드라이버(14)는 미가공 데이터가 드라이버(14)에 의해 효과적으로 이용되어질 수 있도록 미가공 데이터를 버퍼링하는 버퍼 캐쉬(16)와 통신한다. 디바이스 드라이버(18)는 본 발명의 일실시예에 따라 플래쉬 메모리와 같은 비휘발성 재프로그램가능한 반도체 메모리(40)로부터 파일 데이터의 블록을 액세스한다. 메모리(40)상의 데이터의 포맷에 대한 정보를 가질 필요가 없는, 디바이스 드라이버(18)는 파일 시스템 드라이버(14)와 호환될 수 있는 포맷으로 데이터를 구성한다.
따라서, 메모리(40)는 클라이언트 운영체제(42)와 클라이언트 운영체제가 고장나는 경우 액세스될 수 있는 복구 운영체제(44)를 저장할 수 있다. 그것은 본 발명의 일실시예에 따라 BIOS(46; basic input/output system)를 저장할 수 있다.
클라이언트 운영체제(42)는 순환식 복구 검사(CRC) 필드(22), 할당 테이블 엔트리의 수를 지시하는 필드(24), 할당 테이블을 포함하는 필드(26), 로더를 포함하는 필드(28) 및 운영체제 커널을 포함하는 필드(30)를 포함할 수 있다. 필드(30)는 또한 드라이버(14 및 18)를 포함한다.
클라이언트 운영체제(42)는 하나이상의 파일 시스템 데이터 저장 영역(34,36 및 38)을 갖는다. 이들 영역(34,36 및 38)은 운영체제 커널(12)에 의해 이용될 수 있는 가공되지 않은 압축된 데이터를 포함한다.
디바이스 드라이버(18)는 파일 시스템 드라이버(14)로부터의 요구시 임의의 영역(34,36 및 38)을 액세스할 수 있다. 따라서, 정보는 반도체 메모리(40)에 압축 포맷으로 액세스되어 압축되지 않은 포맷으로 디바이스 드라이버(14)에 의해 버퍼 캐쉬(16)에 로딩된다. 디바이스 드라이버(18)는 압축된 데이터를 메모리(40)에 압축해제하고 버퍼 캐쉬(16)에 제공한다.
압축된 파일 시스템은 도 2에서 부재번호 48로 지시된 바와 같은 미가공 형태로 본래의 압축되지 않은 파일 시스템 데이터를 포함하는 단일한 이진 파일을 형성함으로써 초기에 생성될 수 있다. 압축되지 않은 파일 시스템 데이터를 포함하는 파일은 동일한 사이즈로 된 데이터 불록(50a-50c)으로 분할된다. 블록 사이즈는 각각의 압축된 파일 시스템에 대해 동일하고 본 발명의 일실시예에서 구축시간에 설정된다.
압축되지 않은 데이터는 그후 압축된 데이터의 가변 길이 블록(58)으로 압축되고 도 3에 지시된 바와 같이 함께 연결된다. 따라서, 압축되지 않은 불록(50a-50c)은 압축된 파일 시스템 이미지(20)의 압축된 불록(58a-58c)을 형성하도록 압축된다.
영역(34,36 및 38)(도 1)의 각각은 본 발명의 일실시예에서 도 3에 도시된 바와 같이, 파일 시스템 데이터를 저장하는 일련의 압축된 불록(58)과 헤더부(52-56)를 갖는 이미지를 포함한다. 압축된 파일 시스템 이미지의 헤더부는 순환식 복구 검사 정보를 지닌 필드(52)를 포함한다. 이 필드는 제로 오프셋트 및 2 바이트의 길이를 갖는다. 순환식 복구 검사 값은 블록 할당 테이블의 길이로 계산된다. 헤더는 또한 블록 할당 테이블 엔트리의 수에 대한 필드(54)를 포함한다. 블록 할당 테이블 엔트리의 수는 부호화 되지않은, 긴 값으로서 저장될 수 있다. 실제 블록 할당 테이블(BAT)(56)은 6인 오프셋트와 BAT 엔트리의 수와 동일한 길이를 갖는다. BAT(56)는 각각의 압축된 블록(58)에 대한 시작 오프셋트 및 길이를 설명한다.
디바이스 드라이버(18)는 각각의 압축된 불록(58)의 시작 및 끝 위치를 반도체 메모리(40)에서, 찾기 위해 BAT(56)를 사용한다. 디바이스 드라이버(18)는 실시간으로 압축된 데이터의 블록을 압축해제함으로써 동작하고 압축해제된 데이터를 실시간으로 운영체제 커널(12)에 의해 요구된 바와 같이 파일 시스템에 매핑시킨다. 디바이스 드라이버(18)는 압축된 파일 시스템 이미지(20)로서 저장된 파일 시스템에 대한 어떠한 지식도 없다.
이와같이, 본 발명의 몇몇 실시예에 따라, 운영체제는 반도체 메모리에 저장된 압축된 파일 시스템 데이터에 대한 액세스를 가질 수 있다. 반도체 메모리는 하드 디스크 드라이브 보다 전기적 또는 기계적 고장이 나기 어렵다. 본 발명의 몇몇 실시예에서, 운영체제상의 파일 시스템 인터페이스는 응용 프로그램에 의해 이용되어 강력하게 될 수 있다. 반도체 메모리에 저장된 데이터는 압축되어 있으므로, 더 적은 메모리가 필요하게 되고 이에따라 비용이 덜 들게 된다.
임의의 파일 시스템이 커널의 파일 시스템의 본질과 무관하게 반도체 메모리에 저장될 수 있다. 따라서, 디바이스 드라이버(18)는 반도체 메모리(40)에 저장된 파일 시스템을 알 수 없다. 본 발명의 몇몇 실시예에서, 추가의 파일이 원격 서버(도시되지 않음)로부터 클라이언트 시스템(10)에 의해 액세스될 수 있다. 클라이언트는 데스크톱 컴퓨터 시스템, 휴대용 컴퓨터 시스템, 프로세서-기반 텔리비젼 시스템, 셋톱 박스, 가전기기, 얇은 고객 셀룰러 폰등과 같은 프로세서-기반 시스템일 수 있다. 몇몇 실시예에서, 시스템(10)은 네트워크 연결된 시스템이 아닐 수 있다.
재프로그램가능한 반도체 메모리(40)를 구현하는 저장 디바이스는 전기적으로 재프로그램가능하다. 저장 디바이스는 또한 본 발명의 일 실시예에서 BIOS 메모리로서 작용할 수 있다. 종래에 BIOS 메모리는 판독전용 메모리(ROM)일 수 있는 한편, 재프로그램가능한 메모리(40)를 사용하여 운영체제 및 BIOS는 붕괴되었을 때 갱신 또는 대체될 수 있다. 본 발명의 다른 실시예에서, 종래의 BIOS ROM은 메모리(40)에 추가하여 사용될 수 있다.
다양한 플래쉬 메모리는 인텔사의 StrataFlsh™ 상표 메모리와 같은 메모리(40)를 구현할 수 있다. 한 유익한 메모리는 인텔사로부터 이용가능한 28F64OJ5 팔 메가바이트 플래쉬 어레이이다. 이 메모리는 복수 개의 백이십 킬로바이트 블록을 포함한다. 각각의 블록은 데이터가 보호되어 데이터가 소거되거나 중복기재되지 않는다. 다른 말로 하면, 데이터 보호는 메모리내의 복수 개의 블록중 하나이상에 선택적으로 적용될 수 있다.
예로서 Linux, Microsoft Windows 98, Windows 2000 또는 CE 및 Be 운영체제를 포함하는 다양한 운영체제가 커널(12)을 위해 사용될 수 있다. 주 운영체제는 3 Com Corporation으로부터 이용가능한 Palm OS Software 3.5와 같은 실시간 운영체제일 수도 있다.
복구 운영체제(44)는 주 운영체제가 붕괴되거나 갱신될 필요가 있는 경우에 동작한다. 복구 운영체제(44)는 새로운 주 운영체제를 획득하기에 필요로 되는 제한된 소프트웨어 및 기본, 필수적인 기능을 포함하는 감소된 사이즈의 운영체제일 수 있다. 따라서, 본 명세서에 사용된 바와 같이, 복구 운영체제는 주 운영체제를 위한 대체를 갱신 및/또는 획득을 위한 책임이 있는 운영체제이다.
이상적으로는, 복구 운영체제(44)는 메모리를 보전하기 위해 가능한한 비필수적인 부분이 많이 정리될 수 있다. 가능하다면, 그 커널은 그것의 복구 및 갱신 기능을 구현하기 위해 필요한 코드만이 되도록 감소될 수 있다. 특히 이용가능한 한 커널은 리눅스 커널이다. 리눅스 커널은 MakeXConfig라 불리는 X-기반 커널 유틸리티를 포함한다. 이 유틸리티는 커널 및 운영체제의 엘리먼트를 선택하는 것을 용이하게 하는 그래픽 사용자 인터페이스를 제공한다. 즉, 리눅스 운영체제는 특정기능이 소망되는 지의 여부를 지시하는, 그래픽 사용자 인터페이스를 통해 정지된, 일련의 질문에 대해 사용자가 응답할 수 있게 한다.
몇몇 시스템 에러 또는 충돌의 경우에, 클라이언트 시스템은 재부팅되어 에러를 해결한다. 재부팅 횟수가 몇몇 임계치 레벨을 초과하면, 복구 운영체제가 호출된다. 시스템이 재부팅을 시도하는 경우, 그것은 CMOS 메모리 재부팅 카운트 플래그를 검사하여 만일 재부팅 카운트 임계치가 초과되었다면 자동적으로 복구 운영체제를 재부팅시킨다. 복구 운영체제(44)는 시작되어 주 운영체제(42)의 새로운 버전이 페치될 수 있다.
할당 테이블(AT)(26)은 메모리(40)를 파티셔닝하여 복수 코드 및 데이터 변경사항이 메모리(40)에 저장되어질 수 있게 한다. 이것은 복수의 부트 로더가 상이한 운영체제 이미지를 부팅시키기 위해 메모리내에 존재할 수 있도록 한다. 부팅시, BIOS(46)는 로드하여 복구 비트의 상태에 기초하여 실행되어야 할 부트 로더를 선택할 수 있다.
주 운영체제를 로딩하기 위한 부트 로더(28)는 할당 테이블(26) 위에 저장될 수 있다. 할당 테이블(26) 위에는 커널(30) 또는 주 운영체제(42)의 코어가 있다. 주 운영체제(42)는 복구 운영체제(44)와 동일하거나 상이할 수 있다.
커널(30) 위에는 파일 시스템이 있다. 할당 테이블(26)은 파일 시스템에 저장된 항목을 포함하는 메모리(40)에 저장된 각각의 항목을 위한 한 엔트리를 포함한다. 파일 시스템은,운영체제 파일 및 디렉토리를 탐색 및 액세스하는 데에 사용된 파일, 디렉토리 및 정보를 포함한다.
할당 테이블(26)에 포함된 각각의 항목은 소프트웨어 버전, 플래그, 데이터 오프셋트, 데이터의 길이 및 그 로드 주소에 대한 정보를 포함한다. 버전 번호는 특정 메모리에 로딩된 소프트웨어의 버전을 추적한다. 데이터 오프셋트는 엔트리가 메모리(40)내에 어디에 위치되었는지를 결정합니다. 플래그 필드는 각각의 엔트리의 속성에 대한 정보를 갖습니다. 플래그 필드의 최하위 유효 비트는 순환식 복구 검사의 상태에 대한 정보를 포함한다. 이것은 실제로 BIOS에게 CRC가 계산되어야만 하는 지를 말한다. 그다음 최상위 유효 비트는는 블록 유형을 포함한다. 블록 유형은 부트 로더를 지시하는 "부트", "커널" 또는 "파일 시스템"을 포함한다. 블록 유형이 부트 로더이면, 플래그 필드는 랜덤 액세스 메모리에서, 메모리(40)로부터 부트 로더를 로드하기 위한 위치를 알려준다. 부트 로더 또는 부트 스트랩 로더는 로딩하여 운영체제를 로딩하는 또다른 로더 프로그램에게 제어를 넘긴다.
본 발명이 다양한 프로세서-기반 시스템으로 사용될 수 있는 한편, 클라이언트 시스템(60)으로서 셋톱 박스를 사용하는 애플리케이션이 도 4에 도시되어 있다. 셋톱 박스는 텔리비전 수상기와 함께 작동한다. 클라이언트(60)는 가속 그래픽 포트(AGP) 칩셋트(66)에 접속된 프로세서(65)를 포함한다. 가속 그래픽 포트 상세규격, 개정판 2.0은 캘리포니아주 산타 클라라 소재의 인텔 코포레이션사로부터 이용가능하다. 칩셋트(66)는 가속 그래픽 포트 버스(70)의 시스템 메모리(68)에 접속된다. 버스(70)는 차례로 그래픽 가속기(72)에 접속되고 비디오 또는 텔리비전 수상기(73)에 접속된다.
CMOS 메모리라 블리우는 시스템 메모리의 일부분(75)은 시스템 데이터를 절약하도록 응용된 집적회로의 메모리에 의해 구현된다. 통상적으로, CMOS는 시간을 유지하는 실시간 시계를 포함한다. 복구 및 갱신 비트는 소정 위치에서 CMOS 메모리에 저장된다.
칩셋트(66)는 버스(74)에 접속되어 텔리비전 튜너/캡춰 카드(76)를 수신할 수 있다. 카드(76)는 추가 예로서 위성 또는 케이블 연결일 수 있다. 인터넷에의 모뎀 인터페이스 연결 또는 컴퓨터 네트워크로의 네트워크 인터페이스 연결과 같은 네트워크(16)에 대한 인터페이스가 제공될 수 있다.
브리지(80)는 직렬 입력/출력 인터페이스(86) 및 메모리 인터페이스(94)를 지원하는 또다른 버스(84)에 접속된다. 인터페이스(86)는 모뎀(88) 또는 키보드(92)에 접속될 수 있다. 인터페이스(94)는 복구 운영체제, BIOS, 및 주 운영체제를 저장하는 메모리(40)를 연결한다. 브리지(80)는 인텔사로부터 이용가능한 82371ABPCI ISA IDE X셀러레이터(PIIX4) 칩셋트일 수 있다. 따라서, 범용 입력/출력 핀(GP[I,O])을 포함한다.
컴퓨터 시스템을 구현하기 위해 사용된 다수의 칩셋트로, 칩셋트는 임의의 한시간에 BIOS 코드로 된 일정 수의 라인만을 알 수 있도록 셋업된다. 주 운영체제와 복구 운영체제가 플래쉬 메모리에 저장된 실시예에서, 그것들은 BIOS 메모리가 액세스되는 방식과 동일 방식으로 액세스될 수 있다. 따라서, 액세스되는 플래쉬 메모리가 BIOS 메모리 보다 상당히 크기 때문에, 플래쉬 메모리에 저장된 모든 데이터를 기타 기술이 액세스할 수 있도록 하는 것이 소망된다. 인텔사로부터 이용가능한 프로세서에서 이를 수행하기 위한 한 기술은 PIIX4 디바이스에서 예로서 GP[I,O] 핀을 사용하는 것이다. 이들 핀은 BIOS를 판독하기 위한 신호를 개발시키는 책임이 있는 핀에 접속된다. 적절한 GP[I,O] 신호를 제공하는 경우, 플래쉬 메모리 판독은 전체 메모리를 순차로 판독하기 위해 뱅크 스위칭될 수 있다.
시스템(60)은 메모리에의 저장을 위해 압축된 파일 시스템을 생성한다. 예를들어, 시스템은 다른 저장 디바이스로부터 부팅하고, 시스템 이미지를 생성하여 메모리(40)에 그 이미지를 저장한다. 대안으로, 이미지는 외부 프로세서-기반 시스템에 의해 생성되어 메모리(40)에 저장될 수 있다.
도 5를 참조하면, 본 발명의 일실시예에 따라, 소프트웨어(108)는 파워업시 또는 시스템 초기화를 실행 및 수행하는 BIOS에 의한 시스템 리셋트시 및 파워 온 자기 테스트 동작(블록 110)시 시작한다. 메모리(40)의 내용은 블록(112)에 지시된 바와 같이, 플래쉬 메모리의 필드(96)에 저장된 CRC를 검사함으로써 유효화 될 수 있다. 이 시점에서, BIOS는 할당 테이블을 스캐닝하고 부트 로더로서 표시된 엔트리를 선택함으로써 실행할 부트 로더를 선택한다. 부트 로더는 그후 주 운영체제가 플래쉬 메모리에 위치되어 있는 곳을 찾기위해 할당 테이블을 사용하고(블록 116), 시스템 메모리의 적절한 주소에 운영체제를 로드하고(블록 118), 및 그 실행을 시작한다(블록 120).
도 6을 참조하면, 디바이스 드라이버(18)는 블록(124)에 지시된 바와 같이 데이터의 블록을 위한 요구를 시작한다. 요구된 블록은 블록(126)에 지시된 바와 같이 저장장치로부터 액세스된다. 각각의 블록은 블록(128)에 지시된 바와 압축해제된다. 데이터는 그후 블록(130)에 지시된 바와 같이 파일 시스템 모듈로 복귀된다.
도 7에 도시된, 파일 시스템 이미지를 압축하기 위한 소프트웨어(132)는 부재번호 134로 지시된 바와 같이, 파일 시스템 이미지를 동일 사이즈의 블록(50)으로 분할함으로써 시작된다. 데이터는 압축되어 가변길이인 블록(50)으로 형성되고 부재번호 136으로 지시된 바와 같이 결합된다. 엔트리의 수는 CRC(블록 140) 및 BAT(블록 142)과 마찬가지로 결정된다(블록 138).
본 발명이 제한된 수의 실시예에 대해 설명되었을 지라도, 당업자는 이로부터 다양한 수정 및 변경을 인식할 것이다. 첨부된 특허청구범위는 본 발명의 진정한 정신 및 범위에 속하는 모든 수정 및 변형을 커버하는 것으로 의도된다.

Claims (30)

  1. 압축된 파일 데이터를 저장하는 반도체 메모리를 액세싱하는 단계; 및
    상기 반도체 메모리에 저장된 압축된 파일 시스템을 사용하여 상기 메모리상의 상기 파일 데이터를 위치결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1 항에 있어서, 상기 압축된 파일 데이터를 압축해제하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제2 항에 있어서, 압축해제된 파일 데이터를 상기 운영체제에 의해 이용된 파일 시스템과 호환될 수 있는 포맷으로 포맷팅하기 위해 디바이스 드라이버를 사용하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제3 항에 있어서, 파일 시스템 드라이버에 의한 사용을 위해 압축해제된 데이터를 버퍼에 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제1 항에 있어서, 실질적으로 동일한 사이즈의 데이터 블록의 파일 시스템 이미지를 형성하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제5 항에 있어서, 동일하지 않은 사이즈의 블록으로 형성된 압축된 파일 시스템 이미지를 형성하기 위해 각각의 상기 블록을 압축하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제6 항에 있어서, 상기 파일 시스템 이미지에 각각의 블록을 위치결정하는 방법에 대한 정보를 제공하는 헤더를 첨부하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 제7 항에 있어서, 할당 테이블내의 엔트리의 수에 대한 정보를 상기 헤더에 제공하고 상기 파일 시스템 이미지내의 상기 압축된 블록의 각각의 길이에 대한 정보를 상기 할당 테이블에 제공하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제1 항에 있어서, 상기 반도체 메모리에 저장된 운영체제를 액세싱하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 프로세서-기반 시스템으로 하여금,
    압축된 파일 데이터를 저장하는 반도체 메모리를 액세싱하게 하고; 및
    상기 반도체 메모리에 저장된 압축된 파일 시스템을 사용하여 상기 메모리상의 상기 파일 데이터를 위치결정하게 하는,
    명령어를 저장하는 매체를 포함하는 것을 특징으로 하는 저장 디바이스.
  11. 제10 항에 있어서, 상기 매체가, 프로세서-기반 시스템으로 하여금 상기 압축된 파일 데이터를 압축해제하게 하는 명령어를 더 저장하는 것을 특징으로 하는 저장 디바이스.
  12. 제11 항에 있어서, 상기 매체가, 프로세서-기반 시스템으로 하여금 압축해제된 파일 데이터를 상기 운영체제에 의해 이용된 파일 시스템과 호환될 수 있는 포맷으로 포맷팅하기 위해 디바이스 드라이버를 사용하게 하는 명령어를 더 저장하는 것을 특징으로 하는 저장 디바이스.
  13. 제12 항에 있어서, 상기 매체가, 프로세서-기반 시스템으로 하여금 파일 시스템 드라이버에 의한 사용을 위해 압축해제된 데이터를 버퍼에 저장하게 하는 명령어를 더 저장하는 것을 특징으로 하는 저장 디바이스.
  14. 제10 항에 있어서, 상기 매체가, 프로세서-기반 시스템으로 하여금 실질적으로 동일한 사이즈의 데이터 블록의 파일 시스템 이미지를 형성하게 하는 명령어를 더 저장하는 것을 특징으로 하는 저장 디바이스.
  15. 제14 항에 있어서, 상기 매체가, 프로세서-기반 시스템으로 하여금 동일하지 않은 사이즈의 블록으로 형성된 압축된 파일 시스템 이미지를 형성하도록 각각의 상기 블록을 압축하게 하는 명령어를 더 저장하는 것을 특징으로 하는 저장 디바이스.
  16. 제15 항에 있어서, 상기 매체가, 상기 파일 시스템 이미지에 프로세서-기반 시스템으로 하여금 각각의 블록을 위치결정하는 방법에 대한 정보를 제공하는 헤더를 첨부하게 하는 명령어를 더 저장하는 것을 특징으로 하는 저장 디바이스.
  17. 제16 항에 있어서, 상기 매체가, 프로세서-기반 시스템으로 하여금 상기 파일 시스템 이미지내의 상기 압축된 블록의 각각의 길이에 대한 정보를 포함하는 블록 할당 테이블을 헤더에 제공하게 하는 명령어를 더 저장하는 것을 특징으로 하는 저장 디바이스.
  18. 제17 항에 있어서, 상기 매체가, 프로세서-기반 시스템으로 하여금 상기 할당 테이블내의 엔트리의 수에 대한 정보를 상기 헤더에 제공하게 하는 명령어를 더 저장하는 것을 특징으로 하는 저장 디바이스.
  19. 제10 항에 있어서, 상기 매체가, 프로세서-기반 시스템으로 하여금 상기 반도체 메모리에 저장된 운영체제를 액세싱하게 하는 명령어를 더 저장하는 것을 특징으로 하는 저장 디바이스.
  20. 프로세서; 및
    상기 프로세서에 연결된 재프로그래밍가능한 반도체 메모리를 포함하고, 상기 반도체 메모리는 압축된 운영체제, 상기 운영체제를 위한 압축된 파일 데이터, 및 상기 반도체 메모리내의 상기 파일 데이터를 위치결정하는 데에 사용하기 위한 압축된 파일 시스템을 저장하는 것을 특징으로 하는 시스템.
  21. 제20 항에 있어서, 상기 메모리는 플래쉬 메모리인 것을 특징으로 하는 시스템.
  22. 제21 항에 있어서, 상기 메모리에 압축된 포맷으로 저장된 기본 입력/출력 시스템을 포함하는 것을 특징으로 하는 시스템.
  23. 제22 항에 있어서, 상기 메모리에 저장된, 주 운영체제 및 주 운영체제가 갱신 요구를 충족시키지 못하는 경우 사용하기 위한 백업 운영체제를 포함하는 것을 특징으로 하는 시스템.
  24. 제20 항에 있어서, 상기 메모리내의 상기 압축된 데이터를 압축해제하고 상기 데이터를 운영체제에 의해 사용된 포맷으로 제공하는 디바이스 드라이버를 포함하는 것을 특징으로 하는 시스템.
  25. 제24 항에 있어서, 상기 디바이스 드라이버로부터 수신된 데이터를 파일 시스템내에 구성하는 파일 시스템 드라이버를 포함하는 것을 특징으로 하는 시스템.
  26. 제20 항에 있어서, 상기 반도체 메모리는 상기 메모리에 저장된 엔트리의 길이 및 상기 할당 테이블내의 엔트리의 수를 지시하는 할당 테이블을 저장하는 것을 특징으로 하는 시스템.
  27. 제20 항에 있어서, 상기 반도체 메모리에 압축된 형태로 저장된 상기 파일 시스템 데이터는 동일하지 않은 길이로 된 압축된 블록으로 형성되는 것을 특징으로 하는 시스템.
  28. 제20 항에 있어서, 상기 반도체 메모리에 저장된 하나이상의 파일 시스템을 위한 데이터를 포함하는 것을 특징으로 하는 시스템.
  29. 제27 항에 있어서, 상기 메모리에 저장된 운영체제를 위한 커널 및 로더를 포함하는 것을 특징으로 하는 시스템.
  30. 제20 항에 있어서, 상기 네트워크로부터 추가 데이터를 다운로드하기 위한 네트워크 연결부를 포함하는 것을 특징으로 하는 시스템.
KR10-2002-7013668A 2000-04-12 2001-03-29 비휘발성 재프로그램가능한 반도체 메모리에 저장된 파일데이터를 액세싱하는 방법 및 시스템 KR100510370B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/547,624 2000-04-12
US09/547,624 US6741978B1 (en) 2000-04-12 2000-04-12 Accessing file data stored in non-volatile re-programmable semiconductor memories
PCT/US2001/040417 WO2001080000A2 (en) 2000-04-12 2001-03-29 Accessing file data stored in non-volatile re-programmable semiconductor memories

Publications (2)

Publication Number Publication Date
KR20030044906A KR20030044906A (ko) 2003-06-09
KR100510370B1 true KR100510370B1 (ko) 2005-08-24

Family

ID=24185429

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-7013668A KR100510370B1 (ko) 2000-04-12 2001-03-29 비휘발성 재프로그램가능한 반도체 메모리에 저장된 파일데이터를 액세싱하는 방법 및 시스템

Country Status (7)

Country Link
US (3) US6741978B1 (ko)
KR (1) KR100510370B1 (ko)
CN (1) CN100399276C (ko)
AU (1) AU2001255827A1 (ko)
DE (1) DE10196054T1 (ko)
TW (1) TWI234113B (ko)
WO (1) WO2001080000A2 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6741978B1 (en) * 2000-04-12 2004-05-25 Intel Corporation Accessing file data stored in non-volatile re-programmable semiconductor memories
US7007047B2 (en) * 2002-03-29 2006-02-28 Panasas, Inc. Internally consistent file system image in distributed object-based data storage
DE10228128B4 (de) * 2002-06-24 2004-09-23 Infineon Technologies Ag Verfahren zur Speicherung von Daten, Verfahren zum Lesen von Daten, Vorrichtung zur Komprimierung von Daten und Vorrichtung zur Dekomprimierung von Daten
KR101055125B1 (ko) * 2003-12-18 2011-08-08 엘지전자 주식회사 이동 통신 단말기 및 그의 부팅 방법
US8112400B2 (en) * 2003-12-23 2012-02-07 Texas Instruments Incorporated Method for collecting data from semiconductor equipment
US7334142B2 (en) * 2004-01-22 2008-02-19 International Business Machines Corporation Reducing power consumption in a logically partitioned data processing system with operating system call that indicates a selected processor is unneeded for a period of time
GB0405795D0 (en) * 2004-03-15 2004-04-21 Tom Tom B V Navigation device displaying travel information
US7647358B2 (en) * 2004-03-22 2010-01-12 Microsoft Corporation Computing device with relatively limited storage space and operating/file system thereof
US8069192B2 (en) * 2004-03-22 2011-11-29 Microsoft Corporation Computing device with relatively limited storage space and operating / file system thereof
US8407396B2 (en) * 2004-07-30 2013-03-26 Hewlett-Packard Development Company, L.P. Providing block data access for an operating system using solid-state memory
US7783679B2 (en) * 2005-01-12 2010-08-24 Computer Associates Think, Inc. Efficient processing of time series data
US20070016693A1 (en) * 2005-06-30 2007-01-18 Advanced Micro Devices, Inc. Decompression technique for generating software image
KR100647193B1 (ko) * 2005-09-14 2006-11-23 (재)대구경북과학기술연구원 파일 시스템 관리 방법 및 이를 사용하는 장치
KR100750132B1 (ko) * 2005-09-27 2007-08-21 삼성전자주식회사 부팅, 소프트웨어 자동 업데이트 및 에러 복원 방법과 그시스템, 그 방법을 기록한 컴퓨터 판독 가능한 기록매체
US7650458B2 (en) * 2006-06-23 2010-01-19 Microsoft Corporation Flash memory driver
JP2008158591A (ja) * 2006-12-20 2008-07-10 Denso Corp 情報処理装置及び制御プログラム
KR101345386B1 (ko) * 2007-09-19 2013-12-24 삼성전자주식회사 멀티미디어 데이터 편집 방법 및 장치
US20090144538A1 (en) * 2007-11-05 2009-06-04 Duda Kenneth J Patch installation at boot time for dynamically installable, piecemeal revertible patches
WO2010027324A1 (en) * 2008-09-08 2010-03-11 Scalado Ab Method for indexing images and for reading an index of an image
US20110188763A1 (en) * 2010-01-29 2011-08-04 Nenad Rijavec Image Header Compression Mechanism
US8281119B1 (en) * 2011-11-22 2012-10-02 Google Inc. Separate normal firmware and developer firmware
US9990278B2 (en) * 2014-10-20 2018-06-05 Cypress Semiconductor Corporation Overlaid erase block mapping
US9672047B1 (en) * 2014-10-31 2017-06-06 American Megatrends, Inc. Systems and methods for accessing a bootable partition on a serial peripheral interface device
US10387260B2 (en) * 2015-11-26 2019-08-20 Ricoh Company, Ltd. Reboot system and reboot method
US10534618B2 (en) * 2016-09-27 2020-01-14 American Megatrends International, Llc Auto bootloader recovery in BMC
CN108958773A (zh) * 2018-07-10 2018-12-07 北京贞宇科技有限公司 智能机器人

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5237460A (en) * 1990-12-14 1993-08-17 Ceram, Inc. Storage of compressed data on random access storage devices
US5490260A (en) 1990-12-14 1996-02-06 Ceram, Inc. Solid-state RAM data storage for virtual memory computer using fixed-sized swap pages with selective compressed/uncompressed data store according to each data size
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5337275A (en) 1992-10-30 1994-08-09 Intel Corporation Method for releasing space in flash EEPROM memory array to allow the storage of compressed data
US5870520A (en) * 1992-12-23 1999-02-09 Packard Bell Nec Flash disaster recovery ROM and utility to reprogram multiple ROMS
US5586285A (en) 1993-02-19 1996-12-17 Intel Corporation Method and circuitry for increasing reserve memory in a solid state memory disk
US6604118B2 (en) * 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
JP2972501B2 (ja) * 1993-09-20 1999-11-08 富士通株式会社 I/oサブシステム及びi/oサブシステムにおける排他制御方法
US5467286A (en) * 1993-11-03 1995-11-14 Square D Company Metering unit with downloadable firmware
US5828877A (en) 1994-07-14 1998-10-27 Dell Usa, L.P. Circuit and method for optimizing creation of a compressed main memory image
US6018806A (en) * 1995-10-16 2000-01-25 Packard Bell Nec Method and system for rebooting a computer having corrupted memory using an external jumper
US5802553A (en) * 1995-12-19 1998-09-01 Intel Corporation File system configured to support variable density storage and data compression within a nonvolatile memory
US5745418A (en) 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
US6266753B1 (en) * 1997-07-10 2001-07-24 Cirrus Logic, Inc. Memory manager for multi-media apparatus and method therefor
JPH11134234A (ja) * 1997-08-26 1999-05-21 Reliatec Ltd バックアップ・リストア方法およびその制御装置,並びにバックアップ・リストアプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11249725A (ja) * 1998-02-26 1999-09-17 Fanuc Ltd ロボット制御装置
CN1207531A (zh) * 1998-08-27 1999-02-10 岳光 微型计算机
US6393585B1 (en) * 1998-12-23 2002-05-21 Scientific-Atlanta, Inc. Method and apparatus for restoring operating systems in a set-top box environment
US6502194B1 (en) * 1999-04-16 2002-12-31 Synetix Technologies System for playback of network audio material on demand
US6948099B1 (en) * 1999-07-30 2005-09-20 Intel Corporation Re-loading operating systems
US6360300B1 (en) * 1999-08-31 2002-03-19 International Business Machines Corporation System and method for storing compressed and uncompressed data on a hard disk drive
US6763458B1 (en) * 1999-09-27 2004-07-13 Captaris, Inc. System and method for installing and servicing an operating system in a computer or information appliance
US6754855B1 (en) * 1999-12-01 2004-06-22 Microsoft Corporation Automated recovery of computer appliances
US6407949B1 (en) * 1999-12-17 2002-06-18 Qualcomm, Incorporated Mobile communication device having integrated embedded flash and SRAM memory
US6854009B1 (en) * 1999-12-22 2005-02-08 Tacit Networks, Inc. Networked computer system
US6741978B1 (en) 2000-04-12 2004-05-25 Intel Corporation Accessing file data stored in non-volatile re-programmable semiconductor memories
US6839792B2 (en) * 2000-12-15 2005-01-04 Innovative Concepts, Inc. Data modem
US7137026B2 (en) * 2001-10-04 2006-11-14 Nokia Corporation Crash recovery system
US6907512B2 (en) * 2002-05-21 2005-06-14 Microsoft Corporation System and method for filtering write operations to a storage medium containing an operating system image
US7340638B2 (en) * 2003-01-30 2008-03-04 Microsoft Corporation Operating system update and boot failure recovery
US7032053B2 (en) * 2003-08-14 2006-04-18 International Business Machines Corporation System and method for loading, executing, and adapting a portable running operation system from a removable module to multiple computer systems

Also Published As

Publication number Publication date
US20040230573A1 (en) 2004-11-18
WO2001080000A2 (en) 2001-10-25
AU2001255827A1 (en) 2001-10-30
US20090204651A1 (en) 2009-08-13
US6741978B1 (en) 2004-05-25
KR20030044906A (ko) 2003-06-09
DE10196054T1 (de) 2003-03-13
CN100399276C (zh) 2008-07-02
CN1436330A (zh) 2003-08-13
US8078586B2 (en) 2011-12-13
US7519632B2 (en) 2009-04-14
TWI234113B (en) 2005-06-11
WO2001080000A3 (en) 2002-09-06

Similar Documents

Publication Publication Date Title
KR100510370B1 (ko) 비휘발성 재프로그램가능한 반도체 메모리에 저장된 파일데이터를 액세싱하는 방법 및 시스템
EP1634170B1 (en) Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan
US6715067B1 (en) Initializing a processor-based system from a non-volatile re-programmable semiconductor memory
US8799614B2 (en) Storing compressed data
US8433363B2 (en) Memory device in mobile phone
US8719810B2 (en) Program upgrade system and method for over the air-capable mobile terminal
US8549271B1 (en) Method, system, and computer readable medium for updating and utilizing the contents of a non-essential region of a memory device
KR101930092B1 (ko) 데이터 이용가능성의 마운트타임 조정
KR100248757B1 (ko) 손상된 롬 바이오스 복구 방법
US20030110369A1 (en) Firmware extensions
US20020049871A1 (en) Method and system for virtual memory compression in an embedded system
KR101555210B1 (ko) 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치
US6195107B1 (en) Method and system for utilizing virtual memory in an embedded system
US5940627A (en) User selectable feature set for a flash ROM based peripheral
US6438683B1 (en) Technique using FIFO memory for booting a programmable microprocessor from a host computer
US20040221147A1 (en) Method for updating BIOS
WO1994019768A1 (en) Compressed bios system
US6598157B1 (en) Dynamic boot block control by boot configuration determination and subsequent address modification
JP2971267B2 (ja) フラッシュメモリをbios−romとして使用したパーソナルコンピュータ
KR20050028752A (ko) 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법
KR20030060342A (ko) 개인 휴대 정보 단말기의 부팅 방법
CN113760585A (zh) 储存基本输入输出系统之除错讯息的方法

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121102

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130801

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160727

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee