KR20000003162A - 효율적인 플래시 메모리 운용 방법 - Google Patents
효율적인 플래시 메모리 운용 방법 Download PDFInfo
- Publication number
- KR20000003162A KR20000003162A KR1019980024324A KR19980024324A KR20000003162A KR 20000003162 A KR20000003162 A KR 20000003162A KR 1019980024324 A KR1019980024324 A KR 1019980024324A KR 19980024324 A KR19980024324 A KR 19980024324A KR 20000003162 A KR20000003162 A KR 20000003162A
- Authority
- KR
- South Korea
- Prior art keywords
- flash
- file
- information
- information table
- flash memory
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000006870 function Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
플래시 메모리를 효율적으로 운용하기 위한 방법에 관하여 개시한다. 본 방법은, 플래시 메모리를 효율적으로 운용하기 위해서 먼저, 파일 관리자에 필요한 정보를 수집하고, 수집된 정보에 플래시 메모리에 관한 정보를 추가한다. 또한 본 방법은 정보를 추가함으로써 파일 정보 테이블을 생성하고, 다시 파일 정보 테이블에 플래시 자체에 관한 정보를 추가하여 플래시 파일 정보 테이블을 생성하며, 플래시를 핸들링 하는 프로그램을 모듈화 함으로써 플래시 메모리를 효율적으로 사용한다.
Description
본 발명은 플래시 메모리를 효율적으로 운용하기 위한 방법에 관한 것이다.
종래의 기술에 대하여 살펴보면 다음과 같다. 종래의 기술에 따르면 파일 관리는 디스크(Disk)나 마그네틱 테이프(Magnetic Tape) 및 대용량의 메모리에 대하여만 이루어졌으며, 플래시 메모리(Flash Memory)를 적용하기는 어려웠다. 이것은, 상기 플래시 메모리의 플래시 스텝(Flash Step)이 복잡하여 핸들링(Handling) 하기에 힘들었고, 상기 플래시를 제공하는 벤더들에 따라 방법이 다르기 때문이다.
상기와 같은 종래의 기술에 따른 플래시 메모리의 사용 방법과 문제점을 정리하면 다음과 같다.
첫째, 종래의 플래시 메모리에는 하나의 이미지(Image)만을 저장하여 사용하였다. 상기와 같은 방법은 플래시 메모리에 대한 특별한 구현 방법이 필요하지 않아 사용이 용이한 장점이 있는 반면 상기 이미지의 특정한 부분, 즉 어떠한 기능을 담당하는 모듈(Module)의 변경이 필요할 때 상기 모듈 외의 다른 모듈까지 함께 기록해야 한다. 따라서 상기의 방법에는 불필요한 플래시 핸들링이 발생하는 문제점이 있다.
둘째, 상기와 같이 운용하는 시스템의 플래시 메모리에 저장되는 정보는 운용 상태 이전, 즉 설계나 코딩(Coding)시에 결정되어 운용되었으므로, 운용 중에 기록하는 영역의 단순한 변화에도 상기 맵(Map)을 참조하는 여타의 프로그램을 새로이 컴파일(Compile)하여 상기 시스템을 부팅(Booting)시켜야만 운용할 수 있다는 문제점이 있다. 즉 물리적인 단순 변화가 운용중인 소프트웨어 전체에 영향을 미친다는 문제점이 있다.
셋째, 플래시 메모리 내에 있는 코드로는 상기 플래시를 삭제하거나 프로그램할 수 없다. 이는 각 플래시 메모리 벤더마다의 공통사항이다. 그러므로, 상기 플래시에서 운용 중 플래시의 삭제나 기록이 불가능하여 플래시를 핸들링하기 위한 비휘발성 메모리(부트 롬: Boot ROM) 등을 추가로 더 두어야 하는 문제점이 있다. 즉, 플래시 메모리는 저장 장소의 역할로 대부분 사용했다. 이는 플래시 롬 이외의 다른 여분의 메모리를 사용하여야 하므로 메모리의 낭비를 갖고 올뿐만이 아니라 보드나 시스템의 설계 시에도 부피를 차지하는 요소가 된다.
넷째, 플래시 메모리에 저장된 정보를 설계 이전에 또는 컴파일 이전에 전부 결정을 해야하는 문제점이 있다. 상기 플래시 메모리에 어떠한 데이터가 추가로 적용될 경우 상기 추가 적용될 메모리에 대한 정보가 없으므로 여타의 소프트웨어 모듈은 상기와 같이 변화된 데이터를 핸들링 할 수 없다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위하여 창안된 것으로서, 플래시 메모리에 최적한 파일 시스템을 넣어 전송 시스템을 효과적으로 운영할 수 있는 방법을 제공하는 것을 목적으로 한다.
본 발명의 다른 목적과 장점은 아래의 발명의 상세한 설명을 읽고 아래의 도면을 참조하면 보다 명백해질 것이다.
도 1 은 본 발명에 따른 플래시 메모리 구조도.
상기와 같은 목적을 달성하기 위하여 본 발명에 따른, 플래시 메모리를 효율적으로 운용하기 위한 방법의 바람직한 실시예는,
파일 관리자에 필요한 정보를 수집하는 단계;
상기 수집된 정보에 플래시 메모리에 관한 정보를 추가하는 단계;
상기 정보를 추가함으로써 파일 정보 테이블을 생성하는 단계;
상기 파일 정보 테이블에 플래시 자체에 관한 정보를 추가함으로써 플래시 파일 정보 테이블을 생성하는 단계; 및
상기 플래시를 핸들링 하는 프로그램을 모듈화 하는 단계를 포함한다.
본 발명에 있어서, 상기 플래시 메모리의 플래시 정보 수는 한정되는 것이 바람직하며,
상기 플래시 핸들링을 위한 모듈은 상기 플래시 메모리를 기록하는 부분과 삭제하는 부분으로 구성되어 있는 것이 바람직하며,
상기 플래시 정보 테이블의 정보가 시스템 전체적으로 정확하지 않은 경우 상기 플래시 정보 테이블의 정보를 수정하는 단계는,
상기 시스템 부팅을 통하여 새로운 파일을 다운로드 받는 단계;
상기 파일을 플래시에 저장하는 경우 플래시 핸들링 하는 루틴이 상기 파일을 플래시의 어느 곳에 저장할 것인지를 결정하는 단계;
상기 플래시 기록 모듈을 스택에 복사하는 단계;
상기 스택에 복사된 플래시 기록 모듈을 호출하는 단계;
상기 모듈이 플래시에 기록한 후 결과를 리턴하는 단계; 및
상기 결과를 리턴함으로써 원래의 루틴으로 돌아와 상기 플래시 정보 테이블을 업데이트하는 단계를 포함하는 것이 바람직하며,
상기 플래시 정보 테이블의 정보가 온라인 상태일 경우 한 기능 블락에 대한 업데이트를 위한 단계는,
상기 업데이트 하기 위한 블락에 해당 모듈을 다운로드 받는 단계;
상기 해당 모듈을 다운로드 받은 후 상기 플래시 핸들을 하는 루틴은 파일이 기존에 존재했는지 여부를 판단하는 단계;
상기 판단 결과 새로운 파일인 경우 남아있는 플래시 메모리의 빈 공간에 상기 플래시 핸들 루틴과 동일하게 파일을 기록함으로써 상기 플래시 파일 정보 테이블을 업데이트하는 단계;
상기 판단 결과 기존에 파일이 존재하던 경우에는 상기 새로운 파일의 크기라 작으면 상기 정보에 의하여 있던 위치에 업데이트하는 단계; 및
상기 파일의 크기가 할당된 크기보다 큰 경우 파일 정보 테이블을 하나 더 할당함으로써 기존 것과 다음 것에 기록하여 업데이트하는 단계를 포함하는 것이 바람직하다.
이하 본 발명의 상세한 동작 원리에 대하여 도면을 참조하여 설명한다. 도 1 은 본 발명에 따른 플래시 메모리의 구조이다. 우선 파일 관리자(File Manager)에 필요한 최소한의 정보를 수집하고, 상기 수집된 정보에 플래시 메모리에 관한 정보를 추가함으로써, 파일 정보 테이블을 생성한다. 상기 생성된 파일 정보 테이블에 플래시 자체에 관한 정보를 추가함으로써 플래시 파일 정보 테이블을 작성한다.
상기 파일 관리에 필요한 것은 상기 파일의 이름과 운용 메모리의 위치와 운용 데이터의 위치와 각 코드 및 데이터의 크기와 체크 섬(Checksum)이다. 상기 플래시 핸들링을 위하여 플래시의 어느 곳에 저장되는가 하는 정보와 상기 데이터가 현재 플래시에서 유효한가, 아니면 사용하면 안돼는 확인 안된 것인가 하는 정보 및 다른 정보가 또 어디에 있다라는 '다음'이라는 필드가 존재한다.
상기 플래시 메모리는 한정된 자원이므로 플래시 정보의 수를 10이면 10으로 한정해야 하고, 20이면 20으로 한정한다.
상기 플래시 정보를 플래시에 저장함으로써 기본적으로 플래시를 이용하여 처리할 준비가 완료된다.
상기 플래시를 이용한 처리 준비가 끝나면 플래시를 핸들링 하는 프로그램을 모듈화 한다. 상기 모듈은 입력에 대하여 출력을 할 수 있는 구조로 만든다. 상기 플래시 핸들링 하는 모듈은 플래시 메모리 기록하는 부분과 플래시 메모리 삭제하는 부분으로 나누어서, 상기 모듈이 필요한 경우 호출(Call)하여 사용할 수 있도록 한다.
상기 시스템의 전력 온/오프 등에 의한 제일 초기 동작은 다음과 같다. 플래시 정보 테이블의 정보를 검색한다. 상기 검색된 각 정보가 이상이 없다고 되어 있는 경우, 상기 정보에 딸린 플래시 메모리의 실재 저장된 정보를 비교해 보아 이상이 없으면 정해진 다음의 서비스를 수행한다.
상기 플래시 정보가 전체적으로 정확하지 않은 경우 부팅을 통해 새롭게 데이터들을 받아 플래시 정보 테이블의 정보를 수정한다. 그 방법은 다음과 같다. 먼저 부팅이 시작되고, 부터(Booter)가 파일 하나를 완전하게 받아들인다. 상기 받아들인 파일을 플래시에 저장하는 경우, 플래시를 핸들링 하는 루틴은 상기 파일을 상기 플래시의 어느 곳에 저장할 것인가를 플래시 정보 테이블을 참조하여 결정하고, 플래시 기록 모듈을 스택에 복사한다. 다음으로 상기에서 정해진 정보를 이용하여 상기 스택에 복사된 플래시 기록 모듈을 호출하며, 상기 모듈은 상기 플래시에 기록을 수행하고 결과를 리턴한다.
플래시 메모리의 정보를 가지고 플레시 정보 테이블을 업데이트한다. 상기 플래시 메모리의 정보는, 파일이 플래시 메모리의 어느 부분에 저장되어 있는지, 수행시는 어디에서 동작하는지, 코드의 크기는 얼마인지, 데이터의 시작 위치는 어디인지, 체크섬은 얼마인지 등의 정보이다.
그리고, 온라인 중 기능 블록에 대한 업데이트 방법이다. 상기와 같은 경우에는 시스템이 전체를 로딩 받지 않고 해당 단위 모듈만을 다운로딩 받는다. 그러면 플래시 핸들링을 하는 루틴은 파일이 기존에 존재했는지에 대한 여부를 파일 정보 테이블을 검색하여 알아낸다.
상기 검색결과 새로운 파일인 경우 남아있는 플래시 메모리의 빈 공간에 상기 파일 핸들링 루틴과 동일하게 파일을 기록하고 플래시 파일 정보 테이블을 업데이트한다. 또한, 파일이 기존에 존재하는 경우에는 새로운 파일의 크기를 판단하여 상기 파일의 크기가 작으면, 상기 정보에 의하여 기존에 위치하던 위치에 그대로 업데이트를 수행하고, 파일 정보를 바꾸어 준다. 그러나, 상기 파일의 크기가 커서 이미 할당된 크기를 넘는 경우 파일 정보 테이블을 하나 더 할당하여 프리 플래시 메모리를 잡아 기존 것과 다음 것을 기록함으로써 업데이트한다.
본 발명은 다양하게 변형될 수 있고, 여러 가지 형태를 취할 수 있지만, 상기 발명의 상세한 설명에서는 그에 따라 특별한 실시예에 대해서만 기술하였다. 하지만, 본 발명은 명세서에서 언급된 특별한 형태로 한정되는 것이 아닌 것으로 이해되어야 하며, 오히려 본 발명은 첨부된 청구범위에 의해 정의된, 본 발명의 정신과 범위 내에 있는 모든 변형물, 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.
상기한 바와 같이 동작하는 본 발명에 있어서, 개시되는 발명중 대표적인 것에 의하여 얻어지는 효과를 간단히 설명하면 다음과 같다.
코드 분할 다중 접속 시스템과 개인 휴대 통신 서비스 및 아날로그 시스템간의 핸드오프 기능을 가능하게 하는 파일럿 전송 시스템에서, 오프라인 중에도 정상적으로 상기 기능을 동작할 수 있도록 하는 플래시 메모리에 최적한 파일 시스템을 적용함으로써, 상기 파일럿 전송 시스템을 효과적으로 운영할 수 있는 효과가 있다.
Claims (5)
- 플래시 메모리를 효율적으로 운용하기 위한 방법에 있어서,파일 관리자에 필요한 정보를 수집하는 단계;상기 수집된 정보에 플래시 메모리에 관한 정보를 추가하는 단계;상기 정보를 추가함으로써 파일 정보 테이블을 생성하는 단계;상기 파일 정보 테이블에 플래시 자체에 관한 정보를 추가함으로써 플래시 파일 정보 테이블을 생성하는 단계; 및상기 플래시를 핸들링 하는 프로그램을 모듈화 하는 단계를 포함하는, 효율적인 플래시 메모리 운용 방법.
- 제 1 항에 있어서, 상기 플래시 메모리의 플래시 정보 수는 한정되는, 효율적인 플래시 메모리 운용 방법.
- 제 1 항에 있어서, 상기 플래시 핸들링을 위한 모듈은 상기 플래시 메모리를 기록하는 부분과 삭제하는 부분으로 구성되어 있는, 효율적인 플래시 메모리 운용 방법.
- 제 1 항에 있어서, 상기 플래시 정보 테이블의 정보가 시스템 전체적으로 정확하지 않은 경우 상기 플래시 정보 테이블의 정보를 수정하는 단계는,상기 시스템 부팅을 통하여 새로운 파일을 다운로드 받는 단계;상기 파일을 플래시에 저장하는 경우 플래시 핸들링 하는 루틴이 상기 파일을 플래시의 어느 곳에 저장할 것인지를 결정하는 단계;상기 플래시 기록 모듈을 스택에 복사하는 단계;상기 스택에 복사된 플래시 기록 모듈을 호출하는 단계;상기 모듈이 플래시에 기록한 후 결과를 리턴하는 단계;상기 결과를 리턴함으로써 원래의 루틴으로 돌아와 상기 플래시 정보 테이블을 업데이트하는 단계를 포함하는, 효율적인 플래시 메모리 운용 방법.
- 제 1 항에 있어서, 상기 플래시 정보 테이블을 가진 시스템이 온라인 상태일 경우 한 기능 블락에 대한 업데이트를 위한 단계는,상기 업데이트 하기 위한 블락에 해당 모듈을 다운로드 받는 단계;상기 해당 모듈을 다운로드 받은 후 상기 플래시 핸들을 하는 루틴은 파일이 기존에 존재했는지 여부를 판단하는 단계;상기 판단 결과 새로운 파일인 경우 남아있는 플래시 메모리의 빈 공간에 상기 플래시 핸들 루틴과 동일하게 파일을 기록함으로써 상기 플래시 파일 정보 테이블을 업데이트하는 단계;상기 판단 결과 기존에 파일이 존재하던 경우에는 상기 새로운 파일의 크기라 작으면 상기 정보에 의하여 있던 위치에 업데이트하는 단계;상기 파일의 크기가 할당된 크기보다 큰 경우 파일 정보 테이블을 하나 더 할당함으로써 기존 것과 다음 것에 기록하여 업데이트하는 단계를 포함하는, 효율적인 플래시 메모리 운용 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980024324A KR20000003162A (ko) | 1998-06-26 | 1998-06-26 | 효율적인 플래시 메모리 운용 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019980024324A KR20000003162A (ko) | 1998-06-26 | 1998-06-26 | 효율적인 플래시 메모리 운용 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20000003162A true KR20000003162A (ko) | 2000-01-15 |
Family
ID=19540911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980024324A KR20000003162A (ko) | 1998-06-26 | 1998-06-26 | 효율적인 플래시 메모리 운용 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20000003162A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100457812B1 (ko) * | 2002-11-14 | 2004-11-18 | 삼성전자주식회사 | 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법 |
KR100816763B1 (ko) * | 2007-02-13 | 2008-03-25 | 삼성전자주식회사 | 플래시 메모리 모듈을 주기억장치로 사용하는 전자 시스템및 그것의 부팅 방법 |
US7519765B2 (en) | 2005-01-04 | 2009-04-14 | Samsung Electronics Co., Ltd. | Method of downloading main code to flash memory |
-
1998
- 1998-06-26 KR KR1019980024324A patent/KR20000003162A/ko not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100457812B1 (ko) * | 2002-11-14 | 2004-11-18 | 삼성전자주식회사 | 플래시 메모리, 그에 따른 플래시 메모리 액세스 장치 및방법 |
US7519765B2 (en) | 2005-01-04 | 2009-04-14 | Samsung Electronics Co., Ltd. | Method of downloading main code to flash memory |
KR100816763B1 (ko) * | 2007-02-13 | 2008-03-25 | 삼성전자주식회사 | 플래시 메모리 모듈을 주기억장치로 사용하는 전자 시스템및 그것의 부팅 방법 |
US7861074B2 (en) | 2007-02-13 | 2010-12-28 | Samsung Electronics Co., Ltd. | Electronic systems using flash memory modules as main storage and related system booting methods |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5481713A (en) | Method and apparatus for patching code residing on a read only memory device | |
US6922827B2 (en) | Iterative software development environment with prioritized build rules | |
US5581697A (en) | Method and apparatus for run-time error checking using dynamic patching | |
US7409694B2 (en) | Highly componentized system architecture with loadable virtual memory manager | |
JP4199923B2 (ja) | モバイル・デバイスのアプリケーション・インストール方法 | |
US6542167B1 (en) | System and method for flexible software linking | |
US5537596A (en) | Method and apparatus for overriding resource maps in a computer system | |
US6269442B1 (en) | Apparatus and method for on-line replacement of a running program code and data using checkpoints | |
CN102193817B (zh) | 简化物理和虚拟部署的管理 | |
US5991763A (en) | Method and apparatus for embedding concatenated data files into object files during runtime in a virtual file system | |
US7565665B2 (en) | Efficient linking and loading for late binding and platform retargeting | |
JPH08171482A (ja) | プログラムのバージョン生成方式 | |
WO1994027220A1 (en) | Method and apparatus for vectorizing the contents of a read only memory device without modifying underlying source code | |
CN101331444A (zh) | 在线存储卷收缩 | |
JP2012164350A (ja) | 携帯型データ記憶媒体のメモリ管理 | |
WO2022227409A1 (zh) | 一种嵌入式终端远程软件更新方法 | |
US6256751B1 (en) | Restoring checkpointed processes without restoring attributes of external data referenced by the processes | |
US10747514B2 (en) | Reduced save and restore instructions for call-clobbered registers | |
JP2007510211A (ja) | コンピュータ装置におけるダイナミック・リンク・ライブラリのマッピング | |
US7234039B1 (en) | Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer | |
KR20000003162A (ko) | 효율적인 플래시 메모리 운용 방법 | |
CN117369840A (zh) | 一种基于定制软件源的嵌入式操作系统构建方法 | |
US10671397B2 (en) | Reduced save and restore instructions for call-clobbered registers | |
JP3241214B2 (ja) | 分散処理装置及びプロセス実行方法 | |
KR20050010640A (ko) | 응용 프로그램의 동적링크 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 19980626 |
|
PG1501 | Laying open of application | ||
PC1203 | Withdrawal of no request for examination | ||
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |