KR100284975B1 - 플래시 메모리가 주 메모리를 보충하도록 하는 메모리 관리자 - Google Patents

플래시 메모리가 주 메모리를 보충하도록 하는 메모리 관리자 Download PDF

Info

Publication number
KR100284975B1
KR100284975B1 KR1019980704963A KR19980704963A KR100284975B1 KR 100284975 B1 KR100284975 B1 KR 100284975B1 KR 1019980704963 A KR1019980704963 A KR 1019980704963A KR 19980704963 A KR19980704963 A KR 19980704963A KR 100284975 B1 KR100284975 B1 KR 100284975B1
Authority
KR
South Korea
Prior art keywords
memory
main memory
write
program
read
Prior art date
Application number
KR1019980704963A
Other languages
English (en)
Other versions
KR19990076836A (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 KR19990076836A publication Critical patent/KR19990076836A/ko
Application granted granted Critical
Publication of KR100284975B1 publication Critical patent/KR100284975B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)

Abstract

비휘발성 메모리 어레이로부터 응용 프로그램을 실행하는 동안 비휘발성 메모리 어레이에 기록 시도를 검출하는 회로, 비휘발성 메모리 어레이에 기록 시도가 번지 지정되는 부분을 둘러싸는 응용 프로그램의 일부분을 판독하고 그 응용 프로그램의 일부분을 주 메모리에 기록하기 위해 비휘발성 메모리 어레이에 기록 시도검출에 대해 응답하는 컴퓨터 구현 프로세스, 및 응용 프로그램의 일부분이 주 메모리로부터 판독, 기록, 및 실행되도록 하기 위해 주 메모리에 기록된 응용 프로그램의 일부분에 대해 정보를 저장하는 데이터 구조를 개정하는 컴퓨터 구현 프로세스.

Description

플래시 메모리가 주 메모리를 보충하도록 하는 메모리 관리자
최근, 플래시 전기적으로 소거가능하고, 프로그램가능한 읽기 전용 메모리(EEPROM) 기억 장치가 장기(long term) 기억 장치의 새로운 형태로서 어레이에서 사용되어 왔다. 플래시 EEPROM 메모리 어레이는 개개의 셀에 액세스하고 그 셀들의 메모리 트랜지스터를 서로 다른 메모리 상태로 두는 회로를 가진 전형적인 열과 행 방식의 메모리 셀로서 배열된 수많은 부동 게이트 금속 산화 실리콘 전계 효과 트랜지스터 소자로 구성되어 있다. 그러한 메모리 트랜지스터는 부동 게이트에 전하를 축적함으로서 프로그램될 수 있다. 이러한 전하는 전원이 어레이에서 제거될 때에도 지속된다. 이러한 전하(통상, "0" 또는 프로그램된 상태) 또는 부재("1" 또는 소거 상태)는 소자가 판독될 때에 검출될 수 있다.
수정 내용이 시스템 구성 요소에 재프로그램되도록 하기 위해 시스템으로부터 제거되어야 하는 많은 종래 EPROM 보다 BIOS에 대해 상당한 장점을 제공한다. 더욱 최근에, 플래시 메모리는 전기-기계적 하드 디스크 드라이브보다 더 작고 가벼우면서도 같은 기능을 제공하기 위해 사용되었다. 플래시 메모리는 더 고속으로 읽히고 전기-기계적 하드 디스크 드라이브만큼 물리적 상처에 민감하지 않기 때문에 이러한 목적에 유용하다. 게다가,플래시 메모리는 재생 주기를 필요로 하지 않으며 그와 같은 사이클에 전력이나 시간을 소모하지 않는다. 플래시 하드 드라이브는 공간이 한정되어 있고 무게가 매우 중요시되는 휴대용 컴퓨터에서 특히 유용하다.
일반적으로, 플래시 EEPROM 메모리 어레이는 메모리 셀의 블록으로 나누어진다. 각 블록은 그 메모리 셀이 동시에 소거되도록 하기 위해 접속된다. 그 후, 메모리 셀은 데이터를 저장하기 위해 개별적으로 프로그램된다. 어레이 블록의 모든 메모리 트랜지스터는 모두 소거될 수 있게 결합되므로, 프로그램된 상태의 셀은 어레이의 모든 블록이 소거될 때까지 소거상태로 전환될 수 없다. 그와 같이, 전기-기계적 하드 디스크 드라이브가 통상 정보를 디스크의 제 1 영역에 저장하고 정보가 바뀔 때 디스크의 같은 영역에 다시 쓰지만, 이것은 플래시 EEPROM 메모리 어레이에서는 무효 정보와 함께 블록내에 존재하는 모든 유효 정보를 소거하지 않고는 불가능하다.
결국, 종래 기술의 플래시 메모리 배열에서, 데이터 엔트리의 정보가 바뀔 때 그 새로운 정보는 기존 데이터 영역위에 쓰여지기보다는 새로운 메모리 영역에 쓰여진다; 기존 데이터는 무효한 것으로 표시된다. 그리고 나서, 블록의 충분한 부분이 무효로 표시된 후에, 전체 블록은 블록내의 모든 유효 정보가 새로운 메모리 영역에 쓰여진 후에라야만 소거될 수 있다.
일반적으로, 플래시 메모리는 다이내믹 랜덤 액세스 메모리(DRAM)과 같은 속도로, 그리고 열 및 행 어레이로의 액세스가 회전 디스크보다 더 빠르기 때문에 전기-기계적 하드 디스크보다 더 고속으로 읽혀질 수 있다. 그러나, 플래시 소자에 쓰는 데 필요한 전하 레벨이 훨씬 더 크기 때문에, 플래시 메모리의 빈 블록에 쓰는 것조차 DRAM에 쓰는 것보다 다소 긴 시간을 필요로 한다. 게다가, 변경된 데이터는 플래시 메모리 블록내의 무효 데이터위에 직접 쓰여지지 않고 새로운 영역에 쓰여져야 하기 때문에, 기존 데이터는 무효화되고, 무효 데이터를 가진 블록은 결국 소거되며, 플래시 메모리에 쓰는 평균 시간은 DRAM에 쓰는 시간보다 더 길다.
그와 같이, 플래시 메모리가 컴퓨터 시스템에서 많은 목적으로 사용되었지만, 플래시 메모리나 비휘발성 메모리의 몇몇 다른 형태도 주 메모리를 보충하기 위해서는 사용되지 않았다. 이러한 비휘발성 메모리에 대한 쓰기 시간은 너무 길어서 주 메모리의 일부로서 그러한 메모리를 사용할 수 없다고 여겨져 왔다.
그러나, 비휘발성 메모리가 다양한 문제점을 나타내지만, 주 메모리를 보충하기 위해 비휘발성 메모리 어레이를 사용하는 많은 이유가 있다. 메모리 버스상의 비휘발성 메모리는 프로그램을 저장해서, 전원이 시스템에서 제거될 때에도 프로그램이 손실되지 않는다. 그와 같이, 그 프로그램은 메모리에 복사될 필요없이 전원이 인가될 때 메모리에서 실행가능하다. 응용 프로그램 및 다른 프로세스도 비휘발성 메모리에 저장되고 비휘발성 메모리로부터 직접 수행될 것이다. 그렇게 되면, 장기 메모리와 주 메모리 사이의 그러한 응용 프로그램의 전송을 없애게 됨으로서 대부분의 페이지 스와핑(swapping) 및 주 메모리내의 사용가능한 제한 공간의 정체에 의해 수반되는 속도 감소를 완화할 것이다. 그것은 또한 응용 프로그램들이 호출될 때 그것들을 더 빨리 실행되게 할 것이다.
응용 프로그램을 저장하는 비휘발성 메모리를 메모리 버스상에 두는 것은 간단하게 보일는 지도 모른다. 예를 들어, 그러한 메모리에 기록은 DRAM에의 기록보다 느릴 것이지만, 응용 프로그램의 프로세스는 응용 프로그램이 비휘발성 메모리로부터 실행되도록 하기 위해 판독 전용의 필요성만 있는 듯 할 수도 있다. 그러나, 몇몇 응용 프로그램은 그들의 코드내에 위치한 데이터 구조 및 변수를 정립하고 수정한다. 다른 프로그램은 수정이 일어날 때 수정이 쓰여져야 할 자기 수정 부호를 포함한다. 데이터가 메모리 버스의 동작에 뒤지지 않도록 충분한 속도로 메모리에 기록될 수 없다고 가정하면, 프로그램이 비휘발성 메모리 어레이로부터 실행될 수 있도록 하기 위해 그러한 응용 프로그램을 저장하는 메모리를 메모리 버스에 배치시키는 것은 불가능한 것 같을 것이다.
동작하는 동안 기록되야 할 부분을 포함하는 다른 프로세스 및 응용 프로그램이 비휘발성 메모리 어레이로부터 실행되도록 저장함으로서, 컴퓨터 시스템의 주 메모리를 보충하기 위해 비휘발성 메모리를 사용할 수 있다는 것은 바람직하다.
발명의 개요
따라서, 본 발명의 목적은 비휘발성 메모리로부터 실행될 프로세스 및 프로그램을 저장하기 위해 컴퓨터의 메모리 버스에 위치한 비휘발성 메모리 어레이를 사용하는 방법 및 장치를 제공하는 것이다.
본 발명의 이러한 목적은 비휘발성 메모리로부터 응용 프로그램을 실행하는 동안 비휘발성 메모리에 기록 시도를 검출하는 회로, 비휘발성 메모리에 기록 시도가 번지화되는 부분을 둘러싸는 응용 프로그램 부분을 판독하고 그 응용 프로그램 부분을 주 메모리에 기록하기 위해 비휘발성 메모리에 기록 시도의 검출에 대해 응답하는 컴퓨터 구현 프로세스, 및 응용 프로그램 부분이 주 메모리로부터 판독, 기록, 실행될 수 있도록 주 메모리에 쓰여진 응용 프로그램 부분에 대해 정보를 저장하는 데이터 구조를 수정하는 컴퓨터 구현 프로세스를 포함하는 장치 및 방법에 의해 실현된다.
발명의 이러한 목적과 특징은 첨부 도면과 함께 상세 설명으로 더 잘 이해될 것이며, 도면에서 같은 요소는 같은 번호로 도시된다.
본 발명은 컴퓨터 시스템 및, 더욱 특히 컴퓨터에서 주 메모리 보충으로서 플래시 EEPROM 트랜지스터 소자와 같은 비휘발성의 메모리 어레이를 사용하는 방법 및 장치에 관한 것이다.
도 1은 본 발명에 따라서 설계된 컴퓨터 시스템의 블록 다이어그램이다.
도 2는 종래 기술에 따라서 배열된 플래시 EEPROM 메모리의 블록 다이어그램이다.
도 3은 발명에 따라서 방법을 도시하는 흐름도이다.
주석
다음의 상세 설명의 몇몇 부분은 컴퓨터 메모리내의 데이터 비트에 대한 오퍼레이션을 상징적으로 표현하는 차원에서 도시된다. 이러한 설명 및 표현은 데이터 처리 기술 종사자들이 그 기술의 본질을 다른 관련 기술 종사자들에게 가장 효과적으로 전달하기 위해 사용하는 수단이다. 오퍼레이션은 물리적 양의 물리적 조작을 요구하는 것들이다. 보통, 반드시는 아니지만, 이러한 양은 저장, 전송, 결합, 비교, 및 그렇지 않다면 조작될 수 있는 전기적 또는 자기 신호의 형태를 취한다. 일반적인 사용에서, 이러한 신호를 비트(bits), 값(value), 요소(element), 수(numbers) 등으로 언급하는 것이 때때로 편리하다는 것이 입증되었다. 그러나, 이와 같거나 유사한 모든 용어는 적절한 물리적 양과 관련이 있으며 단지 이러한 양에 적용되는 편리한 레이블(lable)에 불과하다는 것을 명심해야 한다.
더 나아가, 수행된 조작은 더하거나 비교하는 것과 같은 용어로 종종 기술되며, 이러한 것들은 사람 오퍼레이터가 행하는 정신적 오퍼레이션과 일반적으로 관련된다. 사람 오퍼레이터의 어떤 능력도 대부분의 경우에 본 발명의 일부를 구성하는 여기 기술된 오퍼레이션의 어디에도 필요하거나 바람직하지 않다;오퍼레이션은 기계 오퍼레이션이다. 본 발명의 오퍼레이션을 행하는 유용한 머신은 일반 목적의 디지털 컴퓨터 또는 다른 유사한 장치를 포함한다. 모든 경우에 있어서, 컴퓨터를 작동할 때의 오퍼레이션 방식과 계산 그 자체의 방식과의 차이를 명심해야 한다. 본 발명은 다른 원하는 물리적 신호를 발생시키기 위해서 전기적 또는 다른(예를 들면 기계적, 화학적)물리적 신호를 처리할 때 컴퓨터를 작동하는 방법 및 장치에 관한 것이다.
도 1을 참조하면, 본 발명의 일 실시예에 따라 구성된 컴퓨터 시스템(10)이 도시되어 있다. 도시된 시스템(10)은 시스템(10)의 오퍼레이션을 제어하기 위해 제공된 다양한 명령을 실행하는 중앙 처리 장치(11)를 포함한다. 중앙 처리 장치(11)는 통상 프로세스 버스에 의해 시스템(10)의 다양한 요소사이에서 정보를 전달하도록 조절된 입/출력 버스(12)로의 액세스를 제어하는 브리지 회로(14)에 접속되어 있다. 도 1에서, 버스(12)는 주변 요소 상호 액세스 버스이거나 특히 데이터의 고속 전송을 제공하도록 조절된 다른 로컬 버스인 것이 바람직하다. 이 버스는 예시 목적으로 도 1에서 선택된다. 전형적인 시스템(10)에서, 다양한 입/출력 장치가 버스 마스터 및 버스 슬레이브 회로로서 버스(12)에 접속된다. 예를 들면, 본 도면에서 장기 메모리(15)는 버스 슬레이브 회로로서 PCI 버스에 접속될 수 있다. 사운드 보드, 프레임 버퍼 등과 같은 다른 입/출력 장치도 또한 버스(12)에 접속될 수 있다.
브리지 회로(14)는 메모는 버스(16)에 의해 주 메모리(13)에 또한 접속된다. 주 메모리(13)는 전원이 시스템(10)에 제공되는 기간 동안 정보를 저장하기 위해 해당 기술 종사자들에게는 익숙한 방식으로 배열된 다이내믹 랜덤 액세스 메모리(DRAM)으로 구성되어 있다. 본 발명에서, 본 발명에 따라서 설계된 비휘발성 메모리 어레이(17)는 주 메모리(13)와 함께 메모리 버스(16)상에 위치한다.
도 2는 다양한 종래 기술 시스템에서 장기 메모리로서 사용되어 온 플래시 EEPROM 메모리 어레이(17)의 블록 다이어그램이다. 어레이(17)에 대한 추후 설명은 왜 그러한 비휘발성 메모리 어레이를 주 메모리 버스상에 위치시키는 것이 불가능하게 여겨졌던지를 기술할 것이다.
메모리 어레이(17)는 수많은 블록(20)으로 나누어지고, 그 각각은 독립적으로 소거된다. 메모리 어레이(17)는 이러한 블록 각각(20)은 논리적인 열과 행 배열로 결합된 플래시 메모리 소자를 포함한다. 어떤 특별한 소자도 데이터가 다이내믹 랜덤 액세스 메모리(DRAM)에 액세스되는 방식으로 그 열과 행을 선택함으로서 액세스된다. 어레이(17)의 블록에 대한 액세스는 명령을 수신하고, 어레이가 수신된 명령을 실행하도록 적절한 상태에 있도록 하고, 그리고 명령을 수행하는(통상 다양한 상태 머신을 통해서) 명령 사용자 인터페이스(22)를 통해서 이루어진다.
해당 기술 종사자들에게는 익숙한 바와 같이, 플래시 메모리 어레이는 DRAM이나 다른 메모리와 같은 방식으로 기록되지 않는다. DRAM이나 자기 기억 장치 형태가 기록될 때, 기록되는 모든 비트 상태는 필수적으로 함께 변한다. 플래시 메모리는 수정된 데이터가 블록내의 소거된 공간에 기록되도록, 다시 기록되기 전에 소거되어져야 한다. 한 워드 또는 한 바이트의 플래시 메모리가 기록될 때 부동 게이트를 충전하기 위한 전류 조건은 매우 높아서, 소자는 종종 소자가 적절한 충전 상태에 이르기까지 계속해서 펄스화된다. 유사하게, 플래시 소자의 부동 게이트를 방전시키기 위해서는 훨씬 더 많은 전류가 필요한데, 왜냐하면 그 충전량이 더 크고 제 1쓰기 단계 전에 필요한 소거 프로세스가 모든 플래시 소자를 충전 상태로 만들고 나서 큰 전위차를 이용해서 모든 소자를 방전시키기 때문이다. 관련 기술 종사자들에게는 명확한 바와 같이, 플래시 메모리 어레이에 사용되는 기록 및 소거의 각 단계에 포함되는 시간은 주 메모리에 사용되는 전형적인 DRAM 메모리와 비교해서 플래시 EEPROM 메모리 어레이에 기록을 매우 느리게 한다. 이러한 이유로, 플래시 메모리는 잦은 기록 갱신 동작을 포함하는 기억 장치에 적합하지 않다고 간주되어 왔다.
그러나, DRAM에 대한 기록 및 소거 시간에 비교해서 기록 및 소거 시간이 길지만, 주 메모리를 보충하기 위해 비휘발성 메모리를 사용하는 많은 이유가 있다. 그렇게 하는 하나의 주된 이유는 더 많은 공간을 주 메모리내에서 사용가능하게 하는 것이다. 다른 이유는 장기 메모리와 주 메모리사이에서 특정 용도의 프로그램의 전송을 제거함으로서 주 메모리내 사용가능한 제한된 공간의 정체를 처리하는 데 필요한 속도 저하 및 페이지 스와핑을 완화하는 것이다. 만약 비휘발성 메모리 어레이가 주 메모리의 DRAM만큼 빨리 읽혀지도록 메모리 버스에 위치하게 된다면, 그리고 응용 프로그램이 비휘발성 메모리 내에 놓여져 실행가능해진다면, 그 응용 프로그램은 장기 메모리로부터 호출되어 실행을 위해 주 메모리에 놓여질 필요도 없을 것이다. 이렇게 해서, 주 메모리에는 다른 목적을 위한 더 많은 공간이 남게 된다. 큰 응용 프로그램을 실행하는 데 통상 필요한 주 메모리 페이지 스와핑은 비휘발성 메모리에 저장된 응용프로그램을 위해 필수적으로 제거될 지도 모른다. 그러한 모든 응용 프로그램의 모든 프로세스는 비휘발성 메모리에서 가능할 것이며, 프로세서는 이러한 하우스키핑 기능으로 시간을 보내야만 하지 않을 것이다.
상당히 많은 문제점들이 응용 프로그램을 저장하는 플래시 메모리를 메모리 버스상에 두는 것이 관련 기술 종사자들에게 불가능한 듯 하게 했다. 첫째로, 플래시 메모리에 기록은 DRAM에서 보다 현격히 느리기 때문에, 플래시 메모리의 이러한 기록 및 수반되는 소거 동작은 동작하는 동안 플래시 메모리를 메모리 버스에 위치시키면 오퍼레이션의 현격한 동작속도 저하없이는 불가능한 듯 했다. 그러나, 응용 프로그램의 프로세스는 단지 판독될 필요만 있기 때문에, 응용 프로그램은 플래시 메모리로부터 수행될 수 있을 것이다. 데이터를 플래시 메모리에 기록하는 것은 유용할 것 같지만, 그러한 동작은 프로그램을 갱신하는 것과 같은 매우 뜸하게 일어나는 동작에 제한될 것이다.
그러나, 몇몇 응용 프로그램은 데이터 구조 및 프로그램의 코드 세그먼트내에 위치한 변수를 끊임없이 정립하고 수정한다. 다른 프로그램은 응용 프로그램이 실행되면서 변하는 자기 수정 코드를 사용한다. 데이터는 충분한 속도로 플래시 메모리에 끊임없이 기록될 수 없기 때문에, 그러한 응용 프로그램을 저장하는 플래시 메모리를 메모리 버스상에 위치시키고 플래시 메모리 어레이로부터 응용 프로그램을 수행하는 것이 불가능한 것 같을 것이다.
본 발명은 응용 프로그램 및 응용 프로그램이 실행되는 동안 데이터가 그 코드 부분에 쓰여지도록 하는 프로세스를 컴퓨터 시스템의 메모리 버스상에 위치한 플래시 EEPROM 또는 다른 비휘발성 메모리 어레이에 저장 및 플래시 메모리 어레이로부터 수행되게 한다. 이것은 본 발명에서 많은 독특한 오퍼레이션을 이루기 위해 운영 시스템에 의해 제어되는 메모리 관리 유닛(MMU)를 사용함으로서 이루어진다. 통상 메모리 관리 유닛은 가상 메모리의 어드레싱을 허용하는 운영 시스템에 의해 사용되도록 설계된다. 가상 메모리 어드레싱은 데이터가 저장될 때마다 가상 어드레스를 데이터에 할당함으로서 그리고 데이터가 실제로 액세스될 때 그러한 가상 메모리를 물리적 어드레스로 변환함으로서 주 메모리에서 가능한 것보다 훨씬 더 많은 메모리로의 액세스를 제공한다. 메모리 관리 유닛은 응용 프로그램이 액세스하는 페이지 테이블을 제어하고 그러한 테이블을 사용해서 가상 및 물리적 메모리사이의 변환을 제공한다.
주 메모리에서 사용가능한 어드레스보다 훨씬 더 많은 메모리 어드레스가 가상 메모리 시스템에서 제공된다. 메모리 어드레스는 응용 프로그램이 시스템 구성요소에 직접 어드레스하도록 하기위해 운영 시스템의 메모리 관리자에 의해 시스템의 다른 구성 요소로 할당될 수 있다. 가장 최신의 운영 시스템은 이러한 어드레스가 컴퓨터 시스템의 입/출력 구성요소에 할당되도록 하지 않는데, 왜냐하면 만약 그러한 어드레스가 할당이 된다면, 응용 프로그램은 이런 장치를 사용해서 그와 같은 입/출력 장치에 직접 기록함으로서 운영 시스템이 제공하기로 되어 있는 많은 보호 및 대부분의 기밀 보호를 못하게 될 수도 있기 때문이다.
그러나, 운영 시스템은 이러한 어드레스를 메모리상의 부가 메모리와 같은 운영 시스템을 통과하는 데 문제가 없는 어떤 구성 요소로 할당할 수 있다. 따라서, 비휘발성 메모리 어레이가 시스템에 처음 배치될 때, 메모리 어드레스의 일부는 비휘발성 메모리 어레이에 할당된다. 어떤 프로그램이나 프로세스가 비휘발성 메모리 어레이에 기록될 때, 프로그램이 저장되는 메모리 어드레스의 일부분의 특별한 어드레스는 그 프로그램에 할당된다.
일단 할당되면, 운영 시스템, 특히 그 시스템의 메모리 관리 부분은 이것들이 비휘발성 메모리 어레이 어드레스이고 이러한 어드레스가 그 프로그램에 할당되어 있다는 것을 알 것이다.
어떤 형태의 입력 신호(오퍼레이터 키보드 입력과 같은)를 통해서 메모리상의 비휘발성 메모리 어레이에 저장된 실행가능한 프로그램을 실행하려는 시도가 이루어질 때, 운영 시스템은 드라이버의 디렉토리 구조로부터 이 프로그램이 메모리 어드레스가 할당된 플래시 메모리 어레이에 존재하는 지를 결정할 수 있어야 한다. 그와 같이, 프로그램이 처음으로 운영 시스템에 의해 호출될 때, 운영 시스템은 그 콜을 보통 트랩하고, 그 응용 프로그램으로의 패스를 찾아, 메모리 관리 유닛이 그 작업을 적절한 파일로 보낼 수 있도록 하기 위해 그 프로그램과 관련된 어드레스를 메모리 관리 유닛에 의해 제어되는 페이지 테이블에 배치한다. 이런 방식으로 페이지 테이블을 갱신함으로서, 운영 시스템의 메모리 관리 프로세스는 어떤 액세스가 시도될 때 플래시 및 DRAM 메모리내의 정확한 어드레스가 확실히 액세스될 수 있게 한다.
운영 시스템의 로더(loader) 부분은 플래시 메모리 어레이에서 실행가능한 파일을 찾기 위해 어드레스 정보를 사용한다. 로더는 프로그램의 실행 시작을 기대하는 어드레스를 결정하고, 프로그램을 위해 스택 세그먼트 크기를 결정하며, 그리고 그 프로그램을 위해 데이터 세그먼트 크기를 결정하기 위해 프로그램 코드의 표제를 읽는다. 로더는 DRAM 메모리 내에 스택 및 데이터 세그먼트를 만들기 위해 이러한 정보를 사용한다. 그러나, 로더는 코드 세그먼트 어드레스를 플래시 메모리
어레이 내의 프로그램에 할당된 메모리 어드레스 상태로 둔다. 로더는 응용 프로그램이 판독/실행 전용과 같은 실행가능 응용 프로그램을 위해 기술어 테이블에서 또한 기술되도록 한다.
응용 프로그램이 판독/실행 전용과 같은 실행가능 응용 프로그램을 위해 기술어 테이블에서 또한 기술되므로, 만약 응용 프로그램이 실행하는 동안 비휘발성 메모리 어레이에 기록하고자 한다면, 예외가 발생한다. 예외 처리기는 중앙 처리 장치에 의해 실행된다. 예외 처리기는 플래시 메모리로부터 기록 액세스 시도에 의해 번지 지정된 코드의 일부를 판독하고 그 코드의 일부를 주 메모리의 DRAM 부분으로 복사한다. 일 실시예에서, 복사된 부분은 인터럽트를 초래한 기록이 번지 지정되는 코드를 포함하는 페이지(통상 4 키로바이트)이다.
이렇게 하기 위해서는, 아마 메모리 관리자가 DRAM 주 메모리내의 일부분의 데이터를 운영 시스템이 특정한 가상 메모리 시스템에서 주 메모리와 장기 메모리사이에 데이터를 할당하기 위해 사용하는 어떠한 할당 알고리즘이라도 사용해서 장기 메모리로 스왑하는 것이 필요할 것이다. 그 후 메모리 관리자는 이러한 변경을 반영하기 위해 페이지 테이블을 갱신한다.
일단 기록 액세스 시도에 의해 번지 지정된 페이지가 DRAM에 기록되면, 응용 프로그램을 위한 기술어 테이블은 판독/기록/실행과 같은 페이지를 정의하도록 표시된다;그리고 그 프로그램은 예외를 발생시킨 명령에서 다시 시작된다. 이 시점부터는 계속, 응용 프로그램 일부에 대한 어드레스가 그것을 주 메모리의 DRAM 부분에 배치하고 기술어 테이블은 그 부분이 기록될 수 있다는 것을 보여주므로, 응용 프로그램은 이전에 판독/실행 전용이던 코드의 일부에 기록할 수 있다. 프로그램 일부의 속성이 판독, 기록, 실행되도록 바뀌었으므로, 프로그램 일부의 데이터는 그것이 데이터 구조이던 변수이던 또는 자기 수정 코드이던지 간에 주 메모리 내의 페이지에 기록함으로서 수정될 수 있다.
프로그램이 실행되면서, 다양한 파일이 비휘발성 메모리 어레이에서 액세스되고 실행된다. 프로그램이 DRAM의 일부에 액세스를 시도할 때, 페이지 테이블에서 결정된 어드레스는 그 액세스를 플래시 메모리보다는 DRAM에 적당히 번지 지정을 할 것이다. 이런 방식으로, 메모리 버스상에 위치한 비휘발성 메모리 어레이에 저장된 어떤 프로그램이나 프로세스는 그 프로그램이나 프로세스가 오퍼레이션동안 기록되는 영역을 포함함에도 불구하고 실행된다.
본 발명이 바람직한 실시예의 측면에서 기술되었지만, 해당 기술 종사자들이 본 발명의 취지와 범위를 거스르지 않고 다양한 수정이나 변경이 가능하다고 이해되어야 할 것이다. 그러므로, 발명은 다음의 청구 범위의 측면에서 부합되어야 한다.

Claims (20)

  1. 프로그램의 코드 섹션이 저장되는 메모리 일부에 기록하는 프로그램을 컴퓨터 시스템의 메모리 버스에 접속된 비휘발성 메모리로부터 직접 실행시키는 방법에 있어서,
    비휘발성 메모리로부터 프로그램을 수행하는 동안 비휘발성 메모리에 기록 시도를 검출하는 단계,
    비휘발성 메모리에 기록 시도가 번지 지정되는 부분을 둘러싸는 비휘발성 메모리로부터 프로그램의 일부분을 판독함으로서 비휘발성 메모리에 기록 시도 검출에 응답하는 단계,
    프로그램의 일부분을 주 메모리에 기록하는 단계, 및
    프로그램의 일부분에 대한 액세스가 판독, 기록, 실행하는 주 메모리에서 이루어질 수 있도록 주 메모리에 기록되는 프로그램 일부분에 관한 정보를 저장하는 데이터 구조를 개정하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 비휘발성 메모리는 플래시 EEPROM 메모리 어레이를 포함하는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서, 주 메모리에 기록되는 프로그램의 일부분은 메모리 공간의 페이지를 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서, 주 메모리에 기록되는 프로그램 일부분에 관한 정보를 저장하는 데이터 구조를 개정하는 단계는,
    프로그램의 일부분이 주 메모리에서 번지 지정되는 것을 나타내기 위해 페이지 테이블을 개정하는 단계, 및
    메모리의 페이지가 주 메모리의 프로그램 일부에 대한 판독, 기록, 및 실행의 속성을 나타내도록 기술어 테이블을 세팅하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서, 비휘발성 메모리로부터 프로그램을 실행하는 동안 비휘발성 메모리에 기록 시도를 검출하는 단계는,
    비휘발성 메모리에 기록 시도가 일어날 때 예외를 발생하는 단계, 및
    예외를 처리하는 프로세스를 호출하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서, 비휘발성 메모리는 플래시 EEPROM 메모리 어레이를 포함하는 것을 특징으로 하는 방법.
  7. 제 5 항에 있어서, 주 메모리에 기록되는 프로그램의 일부분은 메모리 공간의 페이지를 포함하는 것을 특징으로 하는 방법.
  8. 제 5 항에 있어서, 주 메모리에 기록되는 프로그램 일부분에 관한 정보를 저장하는 데이터 구조를 개정하는 단계는,
    프로그램의 일부분이 주 메모리에서 번지 지정되는 것을 나타내기 위해 페이지 테이블을 개정하는 단계, 및
    메모리의 페이지가 주 메모리의 프로그램 일부에 대한 판독, 기록, 및 실행의 속성을 나타내도록 기술어 테이블을 세팅하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 컴퓨터 시스템 프로세서가 판독/기록방지 메모리에 기록 시도를 나타내는 에러에 응답하게 하는 예외 처리 프로세스에 있어서,
    기록 동작을 가르키는 어드레스를 검출하는 단계,
    검출된 어드레스를 둘러싸는 판독/기록방지/실행 메모리의 일부분으로부터 내용을 판독하는 단계,
    검출된 어드레스를 둘러싸는 판독/기록방지/실행 메모리의 일부분으로부터 판독된 내용을 랜덤 액세스(RAM) 주 메모리에 기록하는 단계, 그리고
    기록할 수 있도록 하기 위해 RAM 주 메모리에 기록된 내용 상태를 개정하는 단계, 및
    RAM 주 메모리에 기록된 내용에 개정된 어드레스를 제공하는 단계를 포함하는 것을 특징으로 하는 예외 처리 프로세스.
  10. 제 9 항에 있어서, 검출된 어드레스를 둘러싸는 판독/기록방지/실행 메모리의 일부분으로부터 내용을 판독하는 단계는 검출된 어드레스를 둘러싸는 메모리 페이지를 포함하는 것을 특징으로 하는 예외 처리 프로세스.
  11. 제 9 항에 있어서, 검출된 어드레스를 둘러싸는 판독/기록방지 메모리의 일부분으로부터 판독된 내용을 RAM 주 메모리에 기록하는 단계는,
    검출된 어드레스를 둘러싸는 판독/기록방지 메모리의 일부분으로부터 판독된 내용을 저장하기에 충분한 공간이 RAM 주 메모리에 존재하는 지를 결정하는 단계,
    RAM 주 메모리의 일정량을 검출된 어드레스를 둘러싸는 판독/기록방지 메모리의 일부분으로부터 판독된 내용을 저장하기에 충분한 가상 메모리로 스와핑하는 단계, 및
    판독/기록방지 메모리의 일부분으로부터 판독된 내용을 RAM 주 메모리로부터 일정량의 스와핑에 의해 제공되는 위치의 RAM 주 메모리에 기록하는 단계를 포함하는 것을 특징으로 하는 예외 처리 프로세스.
  12. 제 9 항에 있어서, 기록할 수 있도록 하기 위해 RAM 주 메모리에 기록된 내용 상태를 개정하는 단계는 그 내용이 개정된 상태를 반영하도록 기술어 테이블을 갱신하는 단계를 포함하는 것을 특징으로 하는 예외 처리 프로세스.
  13. 제 9 항에 있어서, RAM 주 메모리에 기록된 내용에 개정된 어드레스를 제공하는 단계는 페이지 테이블을 갱신하는 단계를 포함하는 것을 특징으로 하는 예외 처리 프로세스.
  14. 제 9 항에 있어서, 판독/기록방지 메모리는 플래시 EEPROM 메모리 어레이를 포함하는 것을 특징으로 하는 예외 처리 프로세스.
  15. 주 메모리로부터 보통 실행되지만 비휘발성 메모리 어레이로부터 실행되는 프로세스 및 프로그램을 저장함으로서 비휘발성 메모리가 컴퓨터의 메모리 버스에 접속되고 주 메모리를 보충하기 위해 사용되게 하는 프로세스에 있어서,
    그 프로세스는 메모리 어드레스를 비휘발성 메모리 어레이에 할당하는 단계,
    기록/실행 전용 프로그램을 비휘발성 메모리에 기록하는 단계,
    프로그램이 그 프로그램에 주소 변환을 제공하기 위해 실행될 때 메모리 어드레스를 갱신하는 단계,
    프로그램이 비휘발성 메모리 어레이에 기록 시도를 한다면 판독/실행 메모리에 기록 시도를 나타내는 에러 신호를 발생시키는 단계,
    기록 시도를 가르키는 어드레스를 검출하는 단계,
    검출된 어드레스를 둘러싸는 비휘발성 메모리 어레이의 일부분의 내용을 판독하는 단계,
    검출된 어드레스를 둘러싸는 비휘발성 메모리 어레이의 일부분으로부터 판독된 내용을 주 메모리에 기록하는 단계, 그리고
    기록할 수 있도록 하기 위해 주 메모리에 기록된 내용 상태를 개정하는 단계, 및
    주 메모리에 기록된 내용에 개정된 어드레스를 제공하는 단계를 포함하는 것을 특징으로 하는 프로세스.
  16. 제 15 항에 있어서, 비휘발성 메모리 어레이는 플래시 EEPROM 메모리 어레이를 포함하는 것을 특징으로 하는 프로세스.
  17. 제 16 항에 있어서, 검출된 어드레스를 둘러싸는 비휘발성 메모리 어레이의 일부분으로부터 데이터를 판독하는 단계는 검출된 어드레스를 둘러싸는 페이지를 판독하는 것을 포함하는 것을 특징으로 하는 프로세스.
  18. 제 16 항에 있어서, 검출된 어드레스를 둘러싸는 비휘발성 메모리 어레이의 일부분으로부터 판독된 내용을 주 메모리에 기록하는 단계는,
    검출된 어드레스를 둘러싸는 판독/기록방지 메모리의 일부분으로부터 내용을 저장하기에 충분한 공간이 주 메모리에 존재하는 지를 결정하는 단계,
    주 메모리의 일정량을 검출된 어드레스를 둘러싸는 비휘발성 메모리의 일부분으로부터 판독된 내용을 저장하기에 충분한 가상 메모리로 스와핑하는 단계, 및
    비휘발성 메모리 어레이의 일부분으로부터 판독된 내용을 주 메모리로부터 스와핑에 의해 제공되는 위치의 주 메모리에 기록하는 단계를 포함하는 것을 특징으로 하는 프로세스.
  19. 제 16 항에 있어서, 기록할 수 있도록 하기 위해 주 메모리에 기록된 내용 상태를 개정하는 단계는 그 내용이 개정된 상태를 반영하도록 기술어 테이블을 갱신하는 단계를 포함하는 것을 특징으로 하는 프로세스.
  20. 제 16 항에 있어서, 주 메모리에 기록된 내용에 개정된 어드레스를 제공하는 단계는 페이지 테이블을 갱신하는 단계를 포함하는 것을 특징으로 하는 프로세스.
KR1019980704963A 1995-12-26 1996-12-23 플래시 메모리가 주 메모리를 보충하도록 하는 메모리 관리자 KR100284975B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/578,474 1995-12-26
US08/578,474 US5829013A (en) 1995-12-26 1995-12-26 Memory manager to allow non-volatile memory to be used to supplement main memory
PCT/US1996/020498 WO1997023829A1 (en) 1995-12-26 1996-12-23 Memory manager allowing flash memory to supplement main memory

Publications (2)

Publication Number Publication Date
KR19990076836A KR19990076836A (ko) 1999-10-25
KR100284975B1 true KR100284975B1 (ko) 2001-03-15

Family

ID=24313039

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980704963A KR100284975B1 (ko) 1995-12-26 1996-12-23 플래시 메모리가 주 메모리를 보충하도록 하는 메모리 관리자

Country Status (8)

Country Link
US (2) US5829013A (ko)
KR (1) KR100284975B1 (ko)
AU (1) AU1344697A (ko)
DE (1) DE19681704B4 (ko)
GB (1) GB2323690B (ko)
HK (1) HK1016293A1 (ko)
TW (1) TW386210B (ko)
WO (1) WO1997023829A1 (ko)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5829013A (en) * 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
FR2748134B1 (fr) * 1996-04-30 1998-06-26 Bull Cp8 Procede et dispositif permettant a un programme fige de pouvoir evoluer
US6182188B1 (en) * 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6311290B1 (en) 1997-02-14 2001-10-30 Intel Corporation Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6088759A (en) 1997-04-06 2000-07-11 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
DE19739545C1 (de) * 1997-09-09 1999-01-07 Siemens Ag Chipkarte mit Speicher für anwendungsabhängig nachladbare Programme
JP3812115B2 (ja) * 1998-01-19 2006-08-23 ブラザー工業株式会社 通信システム
US6278442B1 (en) 1998-06-26 2001-08-21 Research In Motion Limited Hand-held electronic device with a keyboard optimized for use with the thumbs
US6489950B1 (en) * 1998-06-26 2002-12-03 Research In Motion Limited Hand-held electronic device with auxiliary input device
US7705828B2 (en) 1998-06-26 2010-04-27 Research In Motion Limited Dual-mode mobile communication device
US6919879B2 (en) 1998-06-26 2005-07-19 Research In Motion Limited Hand-held electronic device with a keyboard optimized for use with the thumbs
JP2001166993A (ja) * 1999-12-13 2001-06-22 Hitachi Ltd 記憶制御装置およびキャッシュメモリの制御方法
TW495675B (en) * 2000-09-14 2002-07-21 Acer Ipull Inc System for updating program executable being running and the method thereof
US20020048203A1 (en) * 2000-10-19 2002-04-25 Findling Patrick M. Extending total write cycles of non-volatile memory for rolling codes
CA2363244C (en) * 2000-11-07 2006-06-13 Research In Motion Limited Multifunctional keyboard for a mobile communication device and method of operating the same
US7324949B2 (en) * 2001-03-26 2008-01-29 Medtronic, Inc. Implantable medical device management system
US8019789B2 (en) * 2001-07-03 2011-09-13 Research In Motion Limited System and method of object-oriented persistence
US20030006959A1 (en) * 2001-07-09 2003-01-09 Marcelo Varanda Method of operating a handheld device for directional input
TWI237759B (en) * 2001-10-04 2005-08-11 Via Tech Inc Method for data accessing in a computer and the computer thereof
US7881743B2 (en) * 2001-10-16 2011-02-01 Research In Motion Limited Handheld mobile communication device
US6842169B2 (en) 2001-10-19 2005-01-11 Research In Motion Limited Hand-held electronic device with multiple input mode thumbwheel
ES2374285T3 (es) 2001-12-21 2012-02-15 Research In Motion Limited Dispositivo electrónico portátil con teclado.
US7083342B2 (en) 2001-12-21 2006-08-01 Griffin Jason T Keyboard arrangement
USD479233S1 (en) 2002-01-08 2003-09-02 Research In Motion Limited Handheld electronic device
US6725324B2 (en) * 2002-04-23 2004-04-20 Hewlett-Packard Development Company, L.P. Method and apparatus for increasing flash ROM programming performance in a multiple processor computer system
US20050251305A1 (en) * 2002-06-03 2005-11-10 Junkei Sato Electronic control apparatus
TW588282B (en) * 2002-10-22 2004-05-21 Via Tech Inc System capable of managing peripheral input/output control device
US20040123054A1 (en) * 2002-12-20 2004-06-24 Gould Geoffrey A. Portable computing device having a non-volatile memory device adapted to detect when a current memory operation is to be suspended and method therefor
US20040188720A1 (en) * 2003-03-25 2004-09-30 Chew Kenneth S. Bit-cell and method for programming
CA2428737C (en) 2003-05-14 2006-10-17 Research In Motion Limited Mobile device with rotatable keyboard
US20040242279A1 (en) * 2003-05-28 2004-12-02 Costanzo Rito Natale Implementing direct telephone access on a multi-purpose wireless mobile electronic device
GB2425510A (en) 2003-12-31 2006-11-01 Research In Motion Ltd Keyboard arrangement
US20070254701A1 (en) * 2004-06-21 2007-11-01 Griffin Jason T Handheld wireless communication device
US8064946B2 (en) * 2004-06-21 2011-11-22 Research In Motion Limited Handheld wireless communication device
US7986301B2 (en) * 2004-06-21 2011-07-26 Research In Motion Limited Handheld wireless communication device
US8463315B2 (en) * 2004-06-21 2013-06-11 Research In Motion Limited Handheld wireless communication device
US8219158B2 (en) 2004-06-21 2012-07-10 Research In Motion Limited Handheld wireless communication device
US20070192711A1 (en) 2006-02-13 2007-08-16 Research In Motion Limited Method and arrangement for providing a primary actions menu on a handheld communication device
US8271036B2 (en) 2004-06-21 2012-09-18 Research In Motion Limited Handheld wireless communication device
US20070254721A1 (en) * 2004-06-21 2007-11-01 Griffin Jason T Handheld wireless communication device
US20070254704A1 (en) * 2004-06-21 2007-11-01 Griffin Jason T Handheld wireless communication device
US20070259697A1 (en) * 2004-06-21 2007-11-08 Griffin Jason T Handheld wireless communication device
KR100631782B1 (ko) 2004-07-27 2006-10-11 삼성전자주식회사 객체지향 어플리케이션에서의 효율적인 메모리 관리 방법및 장치
US7439959B2 (en) 2004-07-30 2008-10-21 Research In Motion Limited Key arrangement for a keyboard
US9142369B2 (en) 2005-03-14 2015-09-22 Qualcomm Incorporated Stack assembly for implementing keypads on mobile computing devices
US7525534B2 (en) 2005-03-14 2009-04-28 Palm, Inc. Small form-factor keypad for mobile computing devices
US7389391B2 (en) * 2005-04-29 2008-06-17 Mediatek, Inc. Memory disposition methods and systems
US7930589B2 (en) * 2005-06-17 2011-04-19 Analog Devices, Inc. Interrupt-responsive non-volatile memory system and method
US20070035522A1 (en) * 2005-08-13 2007-02-15 Michael Yurochko Lighting and usability features for key structures and keypads on computing devices
US7275836B2 (en) 2005-08-13 2007-10-02 Palm, Inc. Lighting and usability features for key structures and keypads on computing devices
US8537117B2 (en) 2006-02-13 2013-09-17 Blackberry Limited Handheld wireless communication device that selectively generates a menu in response to received commands
US7770118B2 (en) * 2006-02-13 2010-08-03 Research In Motion Limited Navigation tool with audible feedback on a handheld communication device having a full alphabetic keyboard
US8989822B2 (en) 2006-09-08 2015-03-24 Qualcomm Incorporated Keypad assembly for use on a contoured surface of a mobile computing device
US8185685B2 (en) * 2007-12-14 2012-05-22 Hitachi Global Storage Technologies Netherlands B.V. NAND flash module replacement for DRAM module
TW201009704A (en) * 2008-08-20 2010-03-01 Incomm Technologies Co Ltd Memory card and non-volatile memory controller thereof
TWI370971B (en) * 2008-08-20 2012-08-21 Incomm Technologies Co Ltd Memory card and non-volatile memory controller thereof
US8285970B2 (en) * 2008-11-06 2012-10-09 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
KR100987332B1 (ko) * 2008-11-07 2010-10-18 서울대학교산학협력단 메모리 구조에 따른 메모리 관리 장치
US8584120B2 (en) * 2009-11-23 2013-11-12 Julian Michael Urbach Stream-based software application delivery and launching system
US8350728B2 (en) 2010-04-23 2013-01-08 Hewlett-Packard Development Company, L.P. Keyboard with integrated and numeric keypad
US10114660B2 (en) 2011-02-22 2018-10-30 Julian Michael Urbach Software application delivery and launching system
US9516094B2 (en) * 2012-05-17 2016-12-06 Microsoft Technology Licensing, Llc Event-responsive download of portions of streamed applications
US9256729B2 (en) * 2013-06-20 2016-02-09 International Business Machines Corporation Address translation/specification field for hardware accelerator
US11797459B2 (en) * 2016-06-17 2023-10-24 Hewlett-Packard Development Company, L.P. Shared machine-learning data structure
CN108021392A (zh) * 2016-11-01 2018-05-11 中芯国际集成电路制造(上海)有限公司 处理器及其操作执行方法
WO2020214757A1 (en) 2019-04-17 2020-10-22 John Rankin Virtual memory pool within a network which is accessible from multiple platforms
WO2020243244A1 (en) * 2019-05-28 2020-12-03 John Rankin Supporting a virtual memory area at a remote computing machine

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU575182B2 (en) 1984-06-28 1988-07-21 Wang Laboratories, Inc. Self extending memory file
US4758944A (en) 1984-08-24 1988-07-19 Texas Instruments Incorporated Method for managing virtual memory to separate active and stable memory blocks
EP0205692B1 (en) * 1985-06-18 1991-10-16 International Business Machines Corporation Improvements in microprocessors
EP0392895B1 (en) 1989-04-13 1995-12-13 Sundisk Corporation Flash EEprom system
JPH0476681A (ja) * 1990-07-13 1992-03-11 Mitsubishi Electric Corp マイクロコンピュータ
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
JPH06214670A (ja) 1991-04-29 1994-08-05 Intel Corp コンピュータ装置およびそれを初期化する方法
IT1254937B (it) 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
DE4215063C2 (de) 1991-05-10 1999-11-25 Intel Corp Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher
GB2256514B (en) * 1991-05-21 1994-11-16 Digital Equipment Corp Commitment ordering for guaranteeing serializability across distributed transactions
US5680570A (en) 1991-06-12 1997-10-21 Quantum Corporation Memory system with dynamically allocatable non-volatile storage capability
GB2256735B (en) 1991-06-12 1995-06-21 Intel Corp Non-volatile disk cache
US5245572A (en) 1991-07-30 1993-09-14 Intel Corporation Floating gate nonvolatile memory with reading while writing capability
US5596738A (en) * 1992-01-31 1997-01-21 Teac Corporation Peripheral device control system using changeable firmware in a single flash memory
US5437020A (en) * 1992-10-03 1995-07-25 Intel Corporation Method and circuitry for detecting lost sectors of data in a solid state memory disk
US5535369A (en) 1992-10-30 1996-07-09 Intel Corporation Method for allocating memory in a solid state memory disk
US5581723A (en) 1993-02-19 1996-12-03 Intel Corporation Method and apparatus for retaining flash block structure data during erase operations in a flash EEPROM memory array
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5519843A (en) 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
US5522076A (en) 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
US5592641A (en) * 1993-06-30 1997-01-07 Intel Corporation Method and device for selectively locking write access to blocks in a memory array using write protect inputs and block enabled status
JP3310060B2 (ja) * 1993-09-13 2002-07-29 株式会社東芝 記憶装置および同装置の制御プログラム書換え方法
US5715423A (en) 1994-04-18 1998-02-03 Intel Corporation Memory device with an internal data transfer circuit
US5729710A (en) * 1994-06-22 1998-03-17 International Business Machines Corporation Method and apparatus for management of mapped and unmapped regions of memory in a microkernel data processing system
JP3507132B2 (ja) 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US5533190A (en) 1994-12-21 1996-07-02 At&T Global Information Solutions Company Method for maintaining parity-data consistency in a disk array
US5563828A (en) 1994-12-27 1996-10-08 Intel Corporation Method and apparatus for searching for data in multi-bit flash EEPROM memory arrays
US5671388A (en) 1995-05-03 1997-09-23 Intel Corporation Method and apparatus for performing write operations in multi-level cell storage device
JPH08328762A (ja) 1995-06-06 1996-12-13 Mitsubishi Electric Corp 半導体ディスク装置及びそのメモリ管理方法
US5673417A (en) * 1995-07-20 1997-09-30 Inventec Corporation Electronic organizer with a flash memory and associated data archiving
US5802549A (en) * 1995-12-14 1998-09-01 International Business Machines Corporation Method and apparatus for patching pages of ROM
US5829013A (en) * 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
US5701492A (en) 1996-03-29 1997-12-23 Canon Kabushiki Kaisha Fail-safe flashing of EPROM
US5937434A (en) * 1997-02-14 1999-08-10 Intel Corporation Method of managing a symmetrically blocked nonvolatile memory having a bifurcated storage architecture

Also Published As

Publication number Publication date
HK1016293A1 (en) 1999-10-29
GB9812269D0 (en) 1998-08-05
GB2323690A (en) 1998-09-30
AU1344697A (en) 1997-07-17
KR19990076836A (ko) 1999-10-25
WO1997023829A1 (en) 1997-07-03
US5829013A (en) 1998-10-27
DE19681704T1 (de) 1998-11-26
US6243789B1 (en) 2001-06-05
TW386210B (en) 2000-04-01
DE19681704B4 (de) 2009-12-31
GB2323690B (en) 2000-05-10

Similar Documents

Publication Publication Date Title
KR100284975B1 (ko) 플래시 메모리가 주 메모리를 보충하도록 하는 메모리 관리자
EP0853790B1 (en) Method of storing data in a flash eeprom main memory in a computer system
US5987478A (en) Virtual small block file manager for flash memory array
US5787493A (en) Control method and apparatus for direct execution of a program on an external apparatus using a randomly accessible and rewritable memory
US6170066B1 (en) Power-off recovery management for sector based flash media managers
US5530827A (en) Data management system for programming-limited type semiconductor memory and IC memory card employing data save/erase process with flag assignment
EP1242868B1 (en) Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
EP0991081B1 (en) Emulated EEPROM memory device and corresponding method
US5479639A (en) Computer system with a paged non-volatile memory
KR0132696B1 (ko) 메모리 처리 방법
US7325089B2 (en) Controller for refreshing memories
JP4588431B2 (ja) 頻繁にアクセスされたセクタの動作による不揮発性メモリに対するより速い書込み動作
US7529879B2 (en) Incremental merge methods and memory systems using the same
US10740013B2 (en) Non-volatile data-storage device with spare block pools using a block clearing method
US20040264254A1 (en) Erase block data splitting
US5692138A (en) Flexible user interface circuit in a memory device
JP2008108257A (ja) 不揮発性記憶装置
US3778776A (en) Electronic computer comprising a plurality of general purpose registers and having a dynamic relocation capability
US5907854A (en) Flash memory file system for writing data files without rewriting an entire volume
US5978808A (en) Virtual small block file manager for flash memory array
US5724544A (en) IC memory card utilizing dual eeproms for image and management data
US5175830A (en) Method for executing overlays in an expanded memory data processing system
US6782446B2 (en) Method to prevent corruption of page tables during flash EEPROM programming
US6738887B2 (en) Method and system for concurrent updating of a microcontroller's program memory
JPH0675836A (ja) 補助記憶装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091222

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee