KR20070086846A - 동적 코드 갱신을 지원하기 위한 페이징 사용 - Google Patents

동적 코드 갱신을 지원하기 위한 페이징 사용 Download PDF

Info

Publication number
KR20070086846A
KR20070086846A KR1020077015046A KR20077015046A KR20070086846A KR 20070086846 A KR20070086846 A KR 20070086846A KR 1020077015046 A KR1020077015046 A KR 1020077015046A KR 20077015046 A KR20077015046 A KR 20077015046A KR 20070086846 A KR20070086846 A KR 20070086846A
Authority
KR
South Korea
Prior art keywords
code
flash memory
processor
updating
executed
Prior art date
Application number
KR1020077015046A
Other languages
English (en)
Other versions
KR100922907B1 (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 KR20070086846A publication Critical patent/KR20070086846A/ko
Application granted granted Critical
Publication of KR100922907B1 publication Critical patent/KR100922907B1/ko

Links

Images

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/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44573Execute-in-place [XIP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/15Plc structure of the system
    • G05B2219/15064MMU, memory management unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

플래시 메모리에 새로운 코드 오브젝트를 저장하는 것에 의해 코드 오브젝트 및 플래시 메모리가 갱신될 수 있다. 그 후, 페이지 테이블로부터의 포인터가 새로운 코드 오브젝트를 가리키도록 리다이렉트(redirect) 될 수 있다. 오래된 코드 오브젝트는 그 후 삭제될 수 있다. 결국, 메모리 관리 장치(MMU: memory management unit) 및 페이지 테이블 성능을 사용함에 의해, 리부팅을 필요로 하지 않고 코드가 갱신될 수 있다.
재부팅, 코드 오브젝트, 갱신, 플래시 메모리, MMU, 페이징

Description

동적 코드 갱신을 지원하기 위한 페이징 사용{UTILIZING PAGING TO SUPPORT DYNAMIC CODE UPDATES}
본 발명은 일반적으로 플래시 메모리 상에 저장된 코드 오브젝트(code object)들의 갱신을 가능하게 하는 것에 관련된다.
통상적인 코드 갱신 메카니즘들은 갱신이 설치되게 하기 위해 프로세서 기반 시스템(processor-based system)의 재부팅(rebooting)을 필요로 한다. XiP(execute-in-place) 시스템에서 코드 오브젝트들을 갱신하려면, 그 갱신이 적용되도록 시스템을 재부팅해야 한다.
많은 경우들에서, 개방형 아키텍처 내의 플래시 메모리에서 코드, 데이터, 및 파일들을 관리하는 것이 바람직하다. XiP 시스템은 이러한 이점을 가능하게 한다. 그러나, 플래시 메모리의 코드를 갱신하기 위해서, 일반적으로 재부팅이 요구된다.
그리하여, XiP를 가능하게 하는 플래시 메모리들에서 코드를 갱신하는 것을 가능하게 하는 더 나은 방법들이 필요하다.
도 1은 본 발명의 일 실시예에 따른 시스템의 묘사이다.
도 2는 도 1에서 도시된 시스템의 일 실시예에 따른 소프트웨어의 묘사이다.
도 3은 본 발명의 일 실시예에 따른 랜덤 액세스 메모리(random access memory) 및 플래시 파일 시스템의 개략도이다.
도 4는 본 발명의 일 실시예에 따른 다른 상태의 도 3에 대응한다.
도 5는 본 발명의 일 실시예에 따른 다른 상태의 도 4에 대응한다.
도 6은 본 발명의 일 실시예에 따른 다른 상태의 도 5에 대응한다.
도 7은 본 발명의 일 실시예에 따른 소프트웨어에 대한 흐름도이다.
도 1을 참고하면, 프로세서 기반 시스템(500)은 일 실시예에서 모바일 프로세서 기반 시스템(mobile processor-based system)일 수 있다. 예를 들면, 시스템(500)은 핸드셋 또는 셀룰러 전화(cellular telephone)일 수 있다. 일 실시예에서, 시스템(500)은 통합형 메모리 관리 장치(MMU: memory management unit)(530)를 갖는 프로세서(510)를 포함한다. 다른 실시예들에서, MMU(530)는 별개의 칩일 수 있다.
프로세서(510)는 버스(512)에 의해 랜덤 액세스 메모리(RAM)(514) 및 플래시 메모리(518)에 연결될 수 있다. 입출력 디바이스(516)도 버스(512)에 연결될 수 있다. 입출력 디바이스들의 예는 키보드, 마우스, 디스플레이, 직렬 버스, 병렬 버스 등을 포함한다.
무선 인터페이스(520)도 버스(512)에 연결될 수 있다. 무선 인터페이스(520)는 본 발명의 일 실시예에서, 핸드폰 프로토콜을 포함하는 임의의 무선 주파수 프로토콜을 가능하게 할 수 있다. 무선 인터페이스(520)는, 예를 들면, 다이폴, 또는 다른 안테나와 같은 안테나 및 셀룰러 송수신기(cellular transceiver)를 포함할 수 있다.
메모리(514)는 시스템(500)으로 또는 시스템(500)에 의해 송신된 메시지들을 저장하는 데 사용될 수 있다. 메모리(530)는 선택적으로 시스템(500)의 동작 동안 프로세서(510)에 의해 실행되는 명령어들을 저장하는 데 사용될 수도 있고, 사용자 데이터를 저장하는 데 사용될 수 있다.
무선 응용의 예가 위에 제공되었지만, 본 발명의 실시예들이 비무선 응용에서도 사용될 수도 있다.
MMU(530)는 가상 어드레스(virtual address)들을 물리적인 어드레스들로 변환함에 의해 가상 메모리와 페이징을 지원하는 하드웨어 디바이스 또는 회로이다. 가상 어드레스 공간은 크기가 2N인 페이지들로 분할된다. 주소의 하위 N 비트는 변화되지 않은 채로 남겨진다. 주소의 상위 비트들은 가상 페이지 번호(virtual page number)이다.
MMU(530)는 페이지 번호에 의해 인덱싱된 페이지 테이블을 포함한다. 각 페이지 테이블 엔트리는 가상 페이지 번호에 대응하는 물리적 페이지 번호를 제공한다. 이것은 페이지 오프셋과 결합되어 완전한 물리적 어드레스를 제공한다. 페이지 테이블 엔트리는 페이지가 기록되어 있는지, 언제 마지막으로 사용되었는지, 어떤 종류의 프로세스들이 그 페이지를 판독하고 기록할 수 있는지, 및 페이지가 캐시되어야 하는지에 대한 정보를 포함할 수도 있다. 페이지 테이블은 플래시 메모리(518)에서 시작되거나, 다른 예로서, 부팅 동안 시스템에 의해 생성될 수 있다. 부팅 후에, 페이지 테이블은 RAM(514)에 저장된다.
MMU(530)는 메모리 단편화(memory fragmentation)의 문제를 해결할 수도 있다. 메모리의 블록들이 할당되고 회수된(freed) 후, 회수된 메모리는 단편화되어 회수된 메모리의 가장 큰 연속 블록(contiguous block)이 전체 메모리 양보다 훨씬 작게 될 수 있다. 가상 메모리를 이용하면, 가상 어드레스들의 연속 범위는 물리적 메모리의 수 개의 불연속 블록들로 맵핑(map)될 수 있다.
MMU(530)는 가상 어드레스를 물리 어드레스에 매칭시키는 테이블을 가지고 있는 적은 양의 메모리를 포함할 수도 있다. 그 테이블은 변환 색인 버퍼(translation look aside buffer)라고 불릴 수 있다. 데이터에 대한 모든 요구들은 MMU(530)로 보내지고, MMU(530)는 데이터가 RAM(514)에 저장되었는지 아니면 디스크 드라이브(522)와 같은 대용량 저장 장치로부터 페치될 필요가 있는지를 판정한다. 만약 데이터가 어떤 저장소에도 없으면, MMU(530)는 페이지 폴트 인터럽트(page fault interrupt)를 발행한다.
도 2를 참조하면, 시스템(500)의 응용 레벨의 묘사는 실시간 운영 체제(real time operating system)(202)에 연결된 응용 레이어(212)를 보여준다. 실시간 운영 체제(202)는 캘리포니아주 산타 클라라의 인텔사로부터 입수 가능한 인텔 FDI 버전 5와 같은, FDI(flash data integrator)에 연결될 수 있다. FDI(200)는 실시간 내장형 응용들에서 사용하기 위한 코드 및 데이터 저장 관리자이다. 그것은 수치적으로 정의된 데이터 파라미터들, 음성 녹음들 및 멀티미디어를 위한 데이터 스트림들, 자바 애플릿들, 및 직접적인 실행을 위한 네이티브 코드를 지원할 수 있다.
FDI(200) 백그라운드 관리자(background manager)는 사이클링 내구성(cycling endurance)을 증가시키기 위해서 플래시 데이터 블록들의 전력 손실 회복(power loss recovery) 및 마모 균등화(wear leveling)를 다룬다. 그것은 하드웨어 기반의 쓰기 중 읽기(read-while write)를 포함할 수 있다. FDI(200) 내의 코드 관리자(code manager)는 플래시 메모리(518) 내의 자바 애플릿들 및 네이티브 코드의 직접적인 XiP(execution-in-place) 및 저장을 제공한다. 그것은 키패드(210), 디스플레이(208), 및 통신(206)을 다루기 위한 다른 미디어 핸들러(media handler)(204)들을 포함할 수도 있다. 실시간 운영 체제(218)는 MMU(530)에 의해 구현된 페이징 시스템(218)과 함께 작동할 수 있다.
플래시 메모리(518)는 이후에 기술될 실행 갱신 소프트웨어 패키지(214)를 저장할 수 있다. 더욱이, 그것은 소위 v.1 코드 오브젝트를 저장할 수 있다.
통상적으로, MMU(530) 및 페이징 시스템은 가상 메모리를 위해 또는 영속적 저장 시스템에 대한 페이지들을 페이지 풀(page pool)에 로드하기 위해 사용된다. 페이징 메카니즘은 사용자에게 통지하지 않고 또는 시스템을 강제로 리셋(reset)시키지 않고 이미지 갱신을 동적으로 핫 스왑(hot swap)하는 데 이용될 수도 있다. 그리하여, 페이징 메카니즘은 플래시 메모리(518)의 동적 갱신을 지원하기 위한 도구로서 사용될 수 있다.
기존 코드 갱신 시스템들은 일반적으로 코드 이미지를 제자리에서 수정할 수 있는 작은 커널로의 시스템의 리셋을 강제한다. 이것은 갱신 진행 중에 있는 코드는 실행될 수 없기 때문이다.
본 발명의 소정의 실시예에 따르면, 갱신은 코드 관리 시스템에서 다른 위치로 로드된다. 그 후, 시스템은 새로운 코드의 물리적 위치를 가리키도록 동적으로 갱신된다. 갱신되어야 할 이미지를 덮어쓰지(overwriting) 않음으로써, 리셋에 대한 필요가 제거될 수 있다.
갱신 패키지의 크기를 감소시키기 위해 디퍼런싱 기법(differencing technology)이 사용될 수도 있고, 또는 완전한 파일이 새로운 버전으로 간단하게 설치될 수 있다. 페이징 시스템은, 갱신 코드의 논리적 위치를 유지하면서 갱신 코드의 물리적 위치를 스왑한다. 핫 스왑 성능(hot swap capability)은 기존의 몇몇 시스템들보다 유리할 수 있다.
그리하여, 도 3을 참조하면, 플래시 메모리(518) 파일 시스템은 먼저 기술된 것처럼, v.1 코드 오브젝트(216)를 포함할 수 있다. RAM(514)은 페이지 테이블(10)을 저장할 수 있다. 페이지 테이블(10)은 메모리 관리 또는 페이징 시스템에 따라 v.1 코드 오브젝트(216)를 가리킨다.
도 4에서 도시된 바와 같이, 갱신 코드 오브젝트인 v.2 코드 오브젝트(12)가 플래시 파일 시스템(flash file system)에 저장될 수 있다. 이 시점에서, 포인터(14)는 계속해서 페이지 테이블(10)로부터 v.1 코드 오브젝트(216)를 가리킨다.
도 5로 이동하면, 포인터(16)는 v.1 코드 오브젝트(216)로부터 v.2 코드 오브젝트(12)로 리다이렉트(redirect) 될 수 있다. 마지막으로, 도 6에서 도시된 바와 같이, 이제 쓸모없게 된 v.1 코드 오브젝트는 삭제될 수 있다.
페이징 시스템은 플래시 메모리(518)로부터 코드를 실행하는 한편 가상 메모리 및 메모리 보호를 제공한다. 이것은 플래시 메모리(518)의 페이지들의 실제의 물리적 위치들을 페이지 테이블(10)에 로드함에 의해 달성된다. 이것은 페이지가 플래시 메모리에 위치되고 그 후 RAM으로 복사되고, 페이지 테이블에 물리적/논리적 변환을 로드하는 종래의 페이징 시스템들과는 다르다.
그리하여, 도 7을 참조하면, XiP 갱신 소프트웨어(214)는 플래시 메모리(518)에 저장될 수 있다. 소프트웨어(214)는 블록(20)에서 보여진 것과 같이, v.2 코드 오브젝트(12)와 같은 새로운 오브젝트를 저장하기 위한, 플래시 메모리(518) 내의 위치를 찾는 것에 의해 시작된다. 새로운 오브젝트(12)는 블록(22)에서 보여진 것과 같이 플래시 메모리(518)에 저장된다. 그 후, 페이지 테이블들은 블록(24)에서 보여진 것과 같이 새로운 위치를 가리키도록 갱신된다. 마지막으로, 블록(26)에서 보여진 것과 같이 오래된 오브젝트가 삭제를 위해 표시된다.
본 발명의 소정의 실시예들에서, XiP 시스템에서 코드를 갱신하는 것은 재부팅 없이 달성될 수 있다. 동적 방식으로 코드를 스와핑(swaping)하기 위한 도구로서 페이징 메카니즘 및 MMU(530)의 적용 가능성(applicability)을 인식함에 의해, 코드의 갱신은 용이하게 된다. 페이징 시스템은 보통 코드의 물리적 위치가 논리적 위치와 다른 것을 허용하기 때문에, 이러한 특성은 갱신 코드에 따라서 물리적 위치가 바뀌는 동안에 논리적 위치는 고정된 상태로 남아있을 수 있도록 무시(override)될 수 있다. 그리하여, 소정의 실시예들에서, XiP 플랫폼 아키텍처의 유용성(usability) 및 바람직함(desirability)이 획득될 수 있다. 소정의 실시예들에서, FDI 코드 관리자는 MMU 및 페이징이 인에이블된 시스템들에 코드 관리 지원을 제공하기 위해 XiP 갱신 성능과 통합될 수 있다.
본 발명이 제한된 수의 실시예들에 관하여 기술되었지만, 본 기술분야의 숙련자들은 그로부터 다수의 수정들 및 변형들을 인식할 것이다. 첨부된 청구범위는 본 발명의 진정한 사상 및 범위 내로 분류되는 모든 그러한 수정들 및 변형들을 포괄하도록 의도되었다.

Claims (25)

  1. 플래시 메모리에 저장된 새로운 코드를 가리키도록 페이지 테이블을 갱신하는 것에 의해 상기 플래시 메모리에 저장된 이전의 코드(outdated code)를 갱신하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 새로운 코드를 가리키도록 상기 페이지 테이블을 갱신한 후에 상기 이전의 코드를 삭제하는 단계를 포함하는 방법.
  3. 제1항에 있어서,
    상기 페이지 테이블을 랜덤 액세스 메모리(RAM)에 저장하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 이전의 코드 및 상기 새로운 코드를 동일한 플래시 메모리에 저장하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    XiP(execute-in-place) 시스템을 재부팅하지 않고, 상기 시스템의 플래시 메모리의 이전의 코드를 갱신하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    이전의 코드를 갱신하는 것을 돕기 위해 메모리 관리 장치(MMU: memory management unit)을 사용하는 단계를 포함하는 방법.
  7. 제1항에 있어서,
    상기 새로운 코드의 크기를 감소시키기 위해 디퍼런싱 기법(differencing technology)을 사용하는 단계를 포함하는 방법.
  8. 제1항에 있어서,
    상기 이전의 코드를 덮어쓰지(overwriting) 않고 상기 코드를 갱신하는 단계를 포함하는 방법.
  9. 제1항에 있어서,
    XiP 기능을 제공하기 위해 실시간 운영 체제(real time operating system)에 연결된 FDI(flash data integrator)를 사용하는 단계를 포함하는 방법.
  10. 명령어들을 저장하는 매체를 포함하는 물품으로서, 상기 명령어들은 실행되 는 경우, 프로세서 기반 시스템(processor-based system)이
    플래시 메모리에 저장된 새로운 코드를 가리키도록 페이지 테이블을 갱신하는 것에 의해 상기 플래시 메모리에 저장된 이전의 코드를 갱신하는 것
    을 가능하게 하는 물품.
  11. 제10항에 있어서,
    실행되는 경우, 프로세서 기반 시스템이, 상기 새로운 코드를 가리키도록 상기 페이지 테이블을 갱신한 후에 상기 이전의 코드를 삭제하는 것을 가능하게 하는 명령어들을 더 저장하는 물품.
  12. 제10항에 있어서,
    실행되는 경우, 프로세서 기반 시스템이, 상기 페이지 테이블을 RAM에 저장하는 것을 가능하게 하는 명령어들을 더 저장하는 물품.
  13. 제10항에 있어서,
    실행되는 경우, 프로세서 기반 시스템이, 상기 이전의 코드 및 상기 새로운 코드를 동일한 플래시 메모리에 저장하는 것을 가능하게 하는 명령어들을 더 저장하는 물품.
  14. 제10항에 있어서,
    실행되는 경우, 프로세서 기반 시스템이, XiP 시스템을 재부팅하지 않고, 상기 시스템의 플래시 메모리의 이전의 코드를 갱신하는 것을 가능하게 하는 명령어들을 더 저장하는 물품.
  15. 제10항에 있어서,
    실행되는 경우, 프로세서 기반 시스템이, 이전의 코드를 갱신하는 것을 돕기 위해 MMU을 사용하는 것을 가능하게 하는 명령어들을 더 저장하는 물품.
  16. 제10항에 있어서,
    실행되는 경우, 프로세서 기반 시스템이, 상기 새로운 코드의 크기를 감소시키기 위해 디퍼런싱 기법을 사용하는 것을 가능하게 하는 명령어들을 더 저장하는 물품.
  17. 제10항에 있어서,
    실행되는 경우, 프로세서 기반 시스템이, 상기 이전의 코드를 덮어쓰지 않고 상기 코드를 갱신하는 것을 가능하게 하는 명령어들을 더 저장하는 물품.
  18. 제10항에 있어서,
    실행되는 경우, 프로세서 기반 시스템이, XiP 기능을 제공하기 위해 실 시간 운영 체제에 연결된 FDI를 사용하는 것을 가능하게 하는 명령어들을 더 저장하는 물품.
  19. 프로세서;
    상기 프로세서와 결합된 MMU;
    상기 프로세서와 연결된 RAM;
    상기 프로세서와 연결된 플래시 메모리
    를 포함하며,
    상기 플래시 메모리는 상기 플래시 매모리에 저장된 새로운 코드를 가리키도록 페이지 테이블을 갱신함에 의해 갱신 가능한 시스템.
  20. 제19항에 있어서,
    상기 플래시 메모리는 상기 플래시 메모리에 저장된 새로운 코드를 가리키도록 상기 페이지 테이블을 갱신한 후에 이전의 코드를 삭제하는 시스템.
  21. 제19항에 있어서,
    상기 RAM은 페이지 테이블을 저장하는 시스템.
  22. 제19항에 있어서,
    상기 플래시 메모리는 이전의 코드와 새로운 코드 둘 다를 저장하는 시스템.
  23. 제19항에 있어서,
    상기 시스템은 XiP 시스템인 시스템.
  24. 제23항에 있어서,
    상기 XiP 시스템은 상기 시스템을 재부팅하지 않고 상기 코드를 갱신하기 위해 상기 플래시 메모리를 사용할 수 있는 시스템.
  25. 제19항에 있어서,
    FDI 및 실시간 운영 체제를 포함하는 시스템.
KR1020077015046A 2004-12-10 2005-12-07 동적 코드 갱신을 지원하기 위한 페이징 사용 KR100922907B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/009,563 2004-12-10
US11/009,563 US7398381B2 (en) 2004-12-10 2004-12-10 Utilizing paging to support dynamic code updates

Publications (2)

Publication Number Publication Date
KR20070086846A true KR20070086846A (ko) 2007-08-27
KR100922907B1 KR100922907B1 (ko) 2009-10-22

Family

ID=36088380

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077015046A KR100922907B1 (ko) 2004-12-10 2005-12-07 동적 코드 갱신을 지원하기 위한 페이징 사용

Country Status (6)

Country Link
US (1) US7398381B2 (ko)
KR (1) KR100922907B1 (ko)
CN (1) CN101076779A (ko)
GB (1) GB2435592B (ko)
TW (1) TWI306558B (ko)
WO (1) WO2006063270A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929371B1 (ko) * 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506095B2 (en) * 2006-04-04 2009-03-17 International Business Machines Corporation System and method for providing execute-in-place functionality
US8285958B1 (en) * 2007-08-10 2012-10-09 Mcafee, Inc. System, method, and computer program product for copying a modified page table entry to a translation look aside buffer
EP2148279A1 (fr) * 2008-07-24 2010-01-27 Nagravision S.A. Méthode de mise à jour de données dans des mémoires utilisant une unité de gestion mémoire
US9653004B2 (en) 2008-10-16 2017-05-16 Cypress Semiconductor Corporation Systems and methods for downloading code and data into a secure non-volatile memory
KR101663545B1 (ko) * 2009-04-06 2016-10-07 시게이트 테크놀로지 엘엘씨 코드의 동적 재배치 방법 및 이를 이용한 디스크 드라이브
US9069966B2 (en) 2011-10-11 2015-06-30 International Business Machines Corporation Code updates in processing systems
US10108409B2 (en) 2014-01-03 2018-10-23 Visa International Service Association Systems and methods for updatable applets
WO2016206818A1 (en) * 2015-06-24 2016-12-29 Toi Srl Method and system for preparing code to be executed by programmable control devices
CN106708547B (zh) * 2015-11-12 2020-10-27 卓望数码技术(深圳)有限公司 一种服务插件管理方法和系统
CN105897694B (zh) * 2016-03-25 2019-02-26 网宿科技股份有限公司 一种客户端会话识别方法及系统
WO2018150820A1 (ja) * 2017-02-17 2018-08-23 日立オートモティブシステムズ株式会社 情報処理装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5594903A (en) * 1991-02-26 1997-01-14 Lynx Real-Time Systems, Inc. Operating System architecture with reserved memory space resident program code identified in file system name space
JPH07210395A (ja) * 1994-01-10 1995-08-11 Fujitsu Ltd ファームウェアメンテナンス方式
DE19723676A1 (de) 1997-06-05 1998-08-27 Siemens Ag Verfahren zum Nachladen von Programmen auf eine Chip-Karte
US6205548B1 (en) 1998-07-31 2001-03-20 Intel Corporation Methods and apparatus for updating a nonvolatile memory
US6237091B1 (en) * 1998-10-29 2001-05-22 Hewlett-Packard Company Method of updating firmware without affecting initialization information
JP2001209543A (ja) 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd フラッシュ・マイコンにおけるプログラム書き換え方法
US6574747B2 (en) * 2000-06-02 2003-06-03 Microsoft Corporation Extensible execute in place (XIP) architecture and related methods
US20040015960A1 (en) 2001-03-16 2004-01-22 Sanjay Wanchoo Method for loading and executing an application in an embedded environment
US20040268084A1 (en) * 2003-06-30 2004-12-30 Steve Longerbeam Protected RAM filesystem
US20050010576A1 (en) * 2003-07-09 2005-01-13 Liwei Ren File differencing and updating engines

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929371B1 (ko) * 2009-03-18 2009-12-02 한국과학기술원 페이지-디퍼런셜을 이용하여 dbms에 독립적인 방법으로 플래시 메모리에 데이터를 저장하는 방법

Also Published As

Publication number Publication date
CN101076779A (zh) 2007-11-21
GB2435592B (en) 2008-09-24
US7398381B2 (en) 2008-07-08
KR100922907B1 (ko) 2009-10-22
WO2006063270A1 (en) 2006-06-15
GB0711645D0 (en) 2007-07-25
US20060129794A1 (en) 2006-06-15
TW200634517A (en) 2006-10-01
TWI306558B (en) 2009-02-21
GB2435592A (en) 2007-08-29

Similar Documents

Publication Publication Date Title
KR100922907B1 (ko) 동적 코드 갱신을 지원하기 위한 페이징 사용
US5371876A (en) Computer system with a paged non-volatile memory
US9128762B2 (en) Persistent content in nonvolatile memory
US10754567B2 (en) Partially deactivated application with termination protection
KR20070027755A (ko) 비휘발성 메모리에서 코드를 부가 또는 삭제하는 방법,장치 및 시스템
KR101584911B1 (ko) 부트 데이터를 캐시하는 고체 상태 드라이브
JPH08328762A (ja) 半導体ディスク装置及びそのメモリ管理方法
KR20100088210A (ko) 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치
JP2014534520A (ja) セグメント化されたキャッシュ
CN112925606B (zh) 一种内存管理方法、装置及设备
CN115994122B (zh) 快速缓存信息的方法、系统、设备及储存介质
KR100456736B1 (ko) 플래시 메모리를 구비한 디지털 기기의 부팅 시간 단축 방법
US6782446B2 (en) Method to prevent corruption of page tables during flash EEPROM programming
KR100322573B1 (ko) 주기억장치와 보조기억장치사이의 스와핑 장치및 방법, 그 장치를 채용한 웹비디오 폰
US7681009B2 (en) Dynamically updateable and moveable memory zones
CN110795365B (zh) 存储设备、包括所述存储设备的电子系统及其操作方法
CN111338562B (zh) 数据存储装置与数据处理方法
CN109727183B (zh) 一种图形渲染缓冲区压缩表的调度方法及装置
US12008261B2 (en) Method and device for accessing memory
JP4423849B2 (ja) データ保護システム、データ保護プログラム及びデータ保護方法
US20080172530A1 (en) Apparatus and method for managing stacks for efficient memory usage
US20040024970A1 (en) Methods and apparatuses for managing memory
US9483399B2 (en) Sub-OS virtual memory management layer
WO2024143656A1 (ko) 상변화 메모리를 이용하여 신경망 모델에 적합한 프리패처 알고리즘을 수행하는 전자 장치 및 그 동작 방법
US20060064684A1 (en) Method, apparatus and system to accelerate launch performance through automated application pinning

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140930

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151002

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee