KR20140116408A - 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법 - Google Patents

캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법 Download PDF

Info

Publication number
KR20140116408A
KR20140116408A KR1020147019265A KR20147019265A KR20140116408A KR 20140116408 A KR20140116408 A KR 20140116408A KR 1020147019265 A KR1020147019265 A KR 1020147019265A KR 20147019265 A KR20147019265 A KR 20147019265A KR 20140116408 A KR20140116408 A KR 20140116408A
Authority
KR
South Korea
Prior art keywords
memory
data
host device
initiator
controller
Prior art date
Application number
KR1020147019265A
Other languages
English (en)
Other versions
KR102127327B1 (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 메모리 테크놀로지즈 엘엘씨
Priority to KR1020207018006A priority Critical patent/KR102317152B1/ko
Publication of KR20140116408A publication Critical patent/KR20140116408A/ko
Application granted granted Critical
Publication of KR102127327B1 publication Critical patent/KR102127327B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system
    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

하나의 비제한적인 실시예에서 하나의 방법이 개시자로부터 발생하는 명령을 호스트 장치와 결합된 비휘발성 대량 메모리와 연결된 컨트롤러에서 수신하되, 상기 명령은 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령인 것인 단계; 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 적어도 상기 비휘발성 대량 메모리에 의해 사용하기 위해 할당된 메모리 부분으로 이동시키는 단계; 및 상기 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령이 실행되었음을 개시자에게 알려주는 단계를 포함한다. 상기 방법을 수행하는 구조로 된 장치 또한 설명되고 있다.

Description

캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법{Apparatus and method to provide cache move with nonvolatile mass memory system}
본 발명의 예시적이고 비 제한적인 실시예들은 일반적으로 메모리 스토리지 시스템들, 방법들, 장치들 및 컴퓨터 프로그램들에 관한 것으로, 더욱 구체적으로는 대량 메모리 장치들, 예컨대 비휘발성 플래시 메모리를 포함하는 것들에 관한 것이다.
이 섹션은 특허청구범위들에 인용되어 있는 발명에 대한 배경이나 맥락을 제공하기 위한 것이다. 여기에서는 추구될 수는 있었지만, 반드시 이전에 착상되었거나, 구현되었거나 설명된 것들은 아닌 개념들에 대한 설명을 포함할 수 있다. 따라서, 본원에서 달리 언급하지 않는 한, 이 섹션에서 설명하는 것이 본 출원의 설명 및 청구 범위들에 대한 선행 기술은 아니며, 이 섹션에 포함됨으로써 선행 기술이라고 인정되는 것은 아니다.
본 명세서 및/또는 도면들에서 발견할 수 있는 다음과 같은 약어들을 다음과 같이 정의한다:
ASIC 용도 특정 집적 회로
CPU 중앙 처리 유닛
DMA 직접 메모리 액세스
eMMC 임베디드 멀티미디어 카드
exFAT 확장 파일 할당 테이블
HW 하드웨어
JEDEC 합동 전자 장치 엔지니어링 협의회
LBA 논리 블록 주소
MMC 멀티미디어 카드
MRAM 자기 랜덤 액세스 메모리
RAM 랜덤 액세스 메모리
SCSI 소형 컴퓨터 시스템 인터페이스
SD 보안 디지털
SW 소프트웨어
UFS 범용 플래시 스토리지
현재 다양한 종류의 플래시 기반 대량 스토리지 메모리가 존재한다. 대량 스토리지 메모리의 기본 전제는 호스트 시스템에서 플래시 기술의 복잡성을 숨기는 것이다. eMMC 같은 기술이 하나의 예이다. managedNAND 유형의 메모리는 예를 들어, eMMC, SSD, UFS 또는 마이크로SD일 수 있다.
도 1a는 JEDEC 표준, 임베디드 멀티미디어 카드(eMMC) 제품 표준, 고용량, JESD84-A42, 2007 년 6 월, JEDEC 솔리드 스테이트 기술 협회로부터 도 2를 재현하며, eMMC의 기능 블록도를 보여준다. JEDEC eMMC에는 플래시 메모리 자체에 더하여 상기 MMC 통신 프로토콜을 관리하는 지능형 온-보드 컨트롤러가 포함되어 있다. 상기 컨트롤러는 또한 논리 블록 할당 및 웨어 레벨링(wear leveling) 등의 블록 관리 기능을 담당한다. 인터페이스는 클럭(CLK) 입력을 포함하고 있다. 또한, 장치 초기화와 명령 전송에 사용되는 양방향 명령 채널인 명령(CMD)이 포함되어 있다. 명령은 버스 마스터에서 장치로 보내지고, 응답은 상기 장치에서 호스트로 보내진다. 또한 양방향 데이터 버스(DAT [7:0])가 포함되어 있다. 상기 DAT 신호는 밀고-당기기 모드에서 동작한다. 기본값으로, 전원을 켜거나 리셋(RESET) 후에, 오직 DAT0 만 데이터 전송을 위해 사용된다. 메모리 컨트롤러는 DAT[3:0] (4-비트 모드) 또는 DAT[7:0] (8-비트 모드) 중 하나를 사용하여 데이터 전송을 위해 더 넓은 데이터 버스를 구성할 수 있다.
플래시 메모리 컨트롤러 구성의 비 제한적인 예는 "SD/MMC 플래시 메모리 카드 용 NAND 플래시 메모리 컨트롤러"(츄안-솅 린 및 란-롱 둥, IEEE Transactions of Magnetics, 43권, 2호, 2007년 2월, 933-935쪽)(이하 린 등이라 함)에 설명되어 있다. 도 1b는 린 등의 도 1을 재현하며, SD/MMC 카드 용 NAND 플래시 컨트롤러 아키텍처의 전체 블록도를 보여주고 있다. 도시한 구체적인 컨트롤러는 코드 뱅킹 메커니즘과 함께, 플래시 메모리의 무작위 비트 오류를 정정하도록 설계된 w-비트 병렬 Bose Chaudhuri Hocquenghem (BCH) 오류 수정 부호(ECC)를 사용하곤 한다.
제1 측면에서 본 발명의 실시예들은 개시자로부터 발생하는 명령을 호스트 장치와 결합된 비휘발성 대량 메모리와 연결된 컨트롤러에서 수신하되, 상기 명령은 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령인 것인 단계; 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 적어도 상기 비휘발성 대량 메모리에 의해 사용하기 위해 할당된 메모리 부분으로 이동시키는 단계; 및 상기 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령이 실행되었음을 개시자에게 알려주는 단계를 포함하는 방법을 제공한다.
또 다른 측면에서 본 발명의 실시예들은 호스트 장치와 연결된 비휘발성 메모리 모듈과 연결된 컨트롤러 및 상기 비휘발성 메모리 모듈에 대한 인터페이스를 포함하는 장치를 제공한다. 상기 컨트롤러는 개시자로부터 발생하는 명령을 처리하는 구조일 수 있는데, 여기서 상기 명령은 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 상기 비휘발성 대량 메모리 모듈에 쓰는 명령이다. 상기 컨트롤러는 또한 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 최소한 상기 비휘발성 대량 메모리 모듈에 의해 사용하기 위해 할당된 메모리 부분으로 이동시키고; 그리고 상기 비휘발성 대량 메모리에 데이터를 작성하는 명령이 실행되었음을 개시자에게 알려주는 구조일 수 있다.
또 다른 측면에서 본 발명의 실시예들은 적어도 하나의 데이터 프로세서 및 동적 랜덤 액세스 메모리로 이루어지는 적어도 하나의 메모리를 포함하는 데이터 처리 시스템을 제공하는 단계, 및 상기 메모리에서 기초 메모리 동작을 자율적으로 수행하는 단계를 포함하는 방법을 제공한다.
또 다른 측면에서 본 발명의 실시예들은 컨트롤러; 상기 컨트롤러에 의해 읽기 및 쓰기 가능한 비휘발성 대량 메모리; 및 메모리 모듈을 호스트 장치에 연결하기 위한 인터페이스를 포함하는 메모리 모듈을 제공한다. 상기 컨트롤러는 개시자로부터 발생하는 명령을 수신하는 구조일 수 있는데, 여기서 상기 명령은 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 상기 비휘발성 대량 메모리 모듈에 쓰는 명령이다. 상기 컨트롤러는 또한 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 최소한 상기 비휘발성 대량 메모리 모듈에 의해 사용하기 위해 할당된 메모리 부분으로 이동하도록 개시하고; 그리고 상기 비휘발성 대량 메모리에 데이터를 쓰는 명령이 실행되었음을 개시자에게 알려주는 구조일 수 있다.
첨부된 도면들에서 :
도 1a는 JEDEC 표준, 임베디드 멀티미디어 카드(eMMC) 제품 표준, 고용량, JESD84-A42, 2007 년 6 월, JEDEC 솔리드 스테이트 기술 협회로부터 도 2를 재현하며, eMMC의 기능 블록도를 보여준다.
도 1b는 린 등의 도 1을 재현하며, SD/MMC 카드 용 NAND 플래시 컨트롤러 아키텍처의 전체 블록도의 예시를 보여주고 있다.
도 2는 대량 스토리지 메모리 장치와 연결된 호스트 장치의 단순화된 블록도이며, 본 발명의 실시예들을 설명하는 데 도움이 된다.
도 3은 일반 양도된 미국 특허 출원 12/455,763에서 설명된 발명의 실시예를 설명하는 신호/메시지 흐름도이며, 여기서 도 2의 대량 스토리지 메모리 장치가 호스트 장치의 RAM을 할당, 사용 및 할당 해제할 수 있다.
도 4는 일반 양도된 미국 특허 출원 12/455,763에서 설명된 발명의 또 다른 실시예를 설명하는 신호/메시지 흐름도이며, 여기서 도 2의 대량 스토리지 메모리 장치는 빌트인 파일 시스템이다.
도 5a, 5b, 5c는 통합해서 도 5로 부르며, 본 발명의 실시예들에 따른 호스트 장치 및 도 2의 대량 스토리지 메모리 장치의 일 실시예를 보여주고 있다.
도 6은 무선 통신 장치로 구현할 때 호스트 장치의 일 실시예의 블록도이다.
도 7은 본 발명의 실시예들에 따른 방법의 동작 및 컴퓨터 판독 가능 메모리에서 구현된 컴퓨터 프로그램 지시어들의 실행 결과를 도시한 논리 흐름도이다.
도 8은 본 발명의 추가 실시예들에 따른 방법의 동작 및 컴퓨터 판독 가능 메모리에서 구현된 컴퓨터 프로그램 지시어들의 실행 결과를 도시한 논리 흐름도이다.
본 발명의 실시예들에 대해 이어지는 설명에 흥미를 주는 것으로, 참조문헌으로 여기에 포함되며, 2009년 6월 4일 출원된 일반 양도된 미국 특허출원번호 12/455,763, "호스트시스템 RAM을 대량 스토리지 메모리 RAM 과 공유하기 위한 장치 및 방법"(올리 룩카이넨, 킴모 밀리 및 쟈니 헤이보넨)이 있다 (US 2010/0312947 A1). 본 발명의 실시예들을 상세히 설명하기 전에, 이 일반 양도된 미국 특허 출원 12/455,763의 설명의 적어도 일부라도 검토하면 유용할 것이다.
언급된 바와 같이, 현재 대부분의 대량 스토리지 메모리들은 LBA 기반 액세스, 예를 들면, eMMC 및 SD 등의 다양한 유형의 외부 메모리 카드를 제공한다. 하지만, 전체 파일 시스템(FS) SW가 상기 대량 스토리지 메모리 장치에 내장되는 경우도 가능하다.
대량 스토리지 메모리가 모바일 무선 통신 장치 등의 대용적 소비자 장치에 사용되는 경우, 한가지 중요한 고려 사항은 비용이며, 그리고 비용에 영향을 미치는 하나의 요인은 상기 대량 스토리지 메모리 장치 자체 내 RAM의 양이다.
또 다른 중요한 고려 사항은 성능이다. 전체 성능은 많은 인자에 따라 달라진다. 예를 들어, 긴(시간이 소요되는) 동작들(특히 대량 스토리지 메모리 장치가 전체 파일 시스템 SW를 포함하는 경우)을 위해서는 대량 스토리지 메모리 장치에서 상당한 양의 RAM을 포함하는 것이 장점이 될 것이다. 그러나, 이는 비용에 부정적인 영향을 미칠 수 있다.
시스템 컨텍스트(메타데이터)가 상기 대량 스토리지 메모리 장치의 플래시 메모리에 저장되는 경우가 있을 수도 있다. 그러나, 이런 접근 방법에는 연관된 여러 가지 단점이 있다. 예를 들어, 반복적으로 상기 시스템 컨텍스트(메타데이터)를 대량 스토리지 메모리 장치에 쓰는 것은 상기 대량 스토리지 메모리 장치의 사용 수명에 영향을 미칠 수 있는 내구성 문제를 발생시킨다. 또한, 상기 플래시 메모리에 데이터를 쓰는 것은 상대적으로 느린 과정이 될 수 있다.
또 다른 중요한 고려 사항은 전력 효율이다. 좋은 전력 효율을 제공하기 위해서 필요 없는 경우에는 대량 스토리지 메모리가 바람직하게는 종료(전원이 꺼짐)된다(또한 상기 장치의 내부 RAM도 바람직하게는 종료됨을 의미함). 그러나, RAM이 원래 휘발성이라고 가정하면, RAM에서 전원이 제거되는 경우 RAM 속에 어떤 데이터가 저장되어 있든지 간에 손실된다. 그런 다음, 재초기화를 수행하기 위해서 전원을 켠 다음 모든 필요한 정보(예를 들어, 논리-물리 매핑 정보 및/또는 파일 시스템 구조)를 복원할 필요가 있다. LBA 대량 스토리지 메모리의 전체 재초기화에는 상당한(그리고 사용자 눈에 띄는) 시간(예, SD 카드로 최대 1 초)이 필요할 수 있으며, 전체 파일 시스템 초기화는 더 오래 걸릴 수도 있다 (파일 시스템이 대량 스토리지 메모리에 상주하는 경우). 따라서 전원 꺼짐/전원 켜짐 주기에서 내부 장치 컨텍스트를 유보하는 것이 바람직하다.
도 2는 대량 스토리지 메모리 버스(MSMB)(18)를 통해서 대량 스토리지 메모리(20)와 연결된 호스트 시스템 또는 장치(10)의 단순화된 블록도이다. MSMB(18)는 임의의 적절한 대량 메모리 인터페이스 표준, 예컨대 두 가지 비 제한적인 예로서 MMC 또는 UFS 와 호환 가능할 수도 있다. MSMB(18)은 eMMC 실시예에 대해 도 1a에 도시된 것과 같은 신호 라인을 포함할 수도 있다. 호스트 장치(10)는 저장된 프로그램 지시어들에 따라 동작하는 CPU(12) 등 하나 이상의 컨트롤러를 포함한다. 프로그램 지시어들은 RAM(14)이나 다른 메모리 또는 메모리들에 저장될 수도 있다. CPU(12)는 적어도 하나의 내부 버스(17)를 통하여 RAM(14) 및 MSMB 인터페이스(I/F)(16)와 연결된다. MSMB 인터페이스(16)는 메모리 컨트롤러(MC)를 포함할 수도 있고, 아니면 CPU(12)와 연결된 MC 유닛과 결합될 수도 있다. 호스트 장치(10)는 여러 가지 비 제한적인 예로서 컴퓨터, 휴대 전화, 디지털 카메라, 게임 장치 또는 PDA일 수도 있다. RAM(14)이 반도체 메모리 또는 디스크 기반 메모리와 같은 읽기/쓰기 메모리 또는 메모리 장치일 수도 있음을 유의한다.
대량 스토리지 메모리(20)는 마이크로 컨트롤러 또는, 더 간단하게는, 적어도 하나의 내부 버스(27)를 통해 휘발성 RAM(24), 비휘발성 대량 메모리(26)(예, 멀티 기가 바이트 플래시 메모리 대용량 스토리지) 및 MSMB 인터페이스(I/F)(28)와 연결되는 컨트롤러(22)를 포함한다. 컨트롤러(22)는 저장된 프로그램 지시어들에 따라 동작한다. 프로그램 지시어들은 RAM(24) 또는 ROM 또는 대량 메모리(26)에 저장될 수도 있다. 대량 스토리지 메모리(20)는 비 제한적인 예로서, MMC, eMMC 또는 SD 장치로 구현될 수도 있으며, 호스트 장치(10) 외부에 있을 수도(플러그 인)있고, 아니면 호스트 장치(10) 내부에 설치될 수도 있다. 대량 메모리(26)는, 일부 실시예들에서, 파일 시스템(FS)(26A)을 저장할 수도 있음을 유의한다. 그런 다음 이 경우에 RAM(24)은 비트 맵, 파일 할당 테이블 데이터 및/또는 기타 FS 관련 정보로 구성된 하나 이상의 데이터 구조 등의 FS 관련 메타 데이터(24A)를 저장할 수도 있다.
일반 양도된 미국 특허 출원 12/455,763에서 설명된 발명의 실시예들은 호스트 장치(10)의 RAM(14)을 대량 스토리지 메모리 장치(20)와 공유하는 기술을 제공한다. 호스트 장치(10)(예, 모바일 컴퓨터, 휴대 전화, 디지털 카메라, 게임 장치, PDA 등)가 RAM(14)을 할당 및 할당-해제할 수 있다고 가정할 수 있다. RAM(14) 할당은 동적으로 수행될 수도 있고 그렇지 않으면 정적으로 수행될 수도 있다. RAM 부분의 할당은 호스트 장치(10)에서든지 호스트 장치(10)의 이니셔티브에서 수신된 요청에 응답하여 수행될 수도 있다.
일반 양도된 미국 특허 출원 12/455,763에서 설명된 발명의 실시예들에서는, 대량 스토리지 메모리(20)가 자체의 RAM(24) 공간을 확장할 필요가 있는 경우 그리고/또는 대량 스토리지 메모리(20)가 비휘발성 RAM(대량 스토리지 메모리(20)에 전원이 꺼질때 내용물이 손실되지 않음)을 필요로 할 경우에, 대량 스토리지 메모리(20) ( MSMB(18)를 통해 호스트 CPU(12)에 연결됨)에 RAM(14)이 할당된다. 대량 스토리지 메모리(20)는 호스트 장치(10) 속에 할당된 RAM(14)을 읽기 및/또는 쓰기(R/W)도 가능하다. 할당/할당-해제 및 R/W 액세스 방법은 적용 가능한 대량 스토리지 메모리 프로토콜을 통해 대량 스토리지 메모리(20)와 통신하기 위해 사용되는 명령 세트로의 확장에 의해 구현될 수 있다.
일반 양도된 미국 특허 출원 12/455,763에서 설명된 발명의 실시예들에 따르면, 대량 스토리지 메모리 장치(20)에는 호스트 장치(10)에 메시지를 차단/전송해서 RAM(14) 속 공간 할당을 개시하는 메커니즘이 구비되어 있다. 차단/메시지는 MSMB(18)을 통해 전송되며, 현재의 명령 세트로의 확장으로 간주될 수도 있다. 도 3을 참조하면, 할당 메모리 명령이 동작 3-1 도중에 전송된다. 할당 요청이 (동작 3-2 중에 표시) 성공하면, 컨트롤러(22)는 자체 RAM(24)을 호스트 장치(10)의 RAM(14)으로 확장하는 것이 가능해진다. 예를 들어, 대량 스토리지 메모리 장치(20)는, RAM WRITE(쓰기) 명령을 사용해서 큰 테이블을 RAM(14)으로 저장할 수도 있고, 또는 RAM READ(읽기) 명령을 사용해서 호스트 RAM (14)으로부터 데이터를 호출(fetch)할 수도 있다. 상기 읽기 또는 쓰기 동작은 인터리브 동작 3-3, 3-4, 3-5, 3-6, 3-(N-l), 3-N으로 표시된다. 대량 스토리지 메모리 장치(20)가 RAM(14)으로 동작을 완료할 때, 호스트(10) RAM 메모리를 할당 해제할 것(동작 3-(N+l))을 요청하는 또 다른 명령을 사용하여 호스트 장치 RAM(14)를 해제시킬 수도 있다.
도 4는 도 2의 FS(26A)와 같은 빌트인 파일 시스템을 갖는 대량 스토리지 메모리(26)에 대해 호스트 시스템 RAM(14)을 이용하는, 일반 양도된 미국 특허 출원 12/455,763에서 설명된 추가 실시예를 도시하고 있다. 먼저 호스트 시스템(10)은 대량 스토리지 메모리 장치(20)에 셧다운(SHUTDOWN) 명령을 보낸다 (동작 4-1). 다음 대량 스토리지 메모리 장치(20)는 호스트(10)로부터 RAM(14)을 할당하고 나서, 호스트 RAM(14)으로 모든 필수적인 '정적' 파일 시스템 관련 데이터(메타 데이터(24A))를 로딩한다(RAM 쓰기(WRITE) 명령을 사용하여 저장한다) (동작 4-2). 이런 맥락에서 '정적' 데이터는, 예컨대, exFAT 또는 ext3 파일 시스템에서 할당 비트맵 등 다양한 비트맵일 수도 있다. 이 데이터는 호스트 장치의 CPU(12) (컨트롤러)에 의해 처리(예, 정렬, 배열 및 필터링 중 적어도 하나)될 수도 있고, 대량 스토리지 메모리(26) 내의 다수의 섹터들의 데이터를 포함할 수도 있다. 그런 다음 대량 메모리 저장 장치(20)는 셧다운 OK 표시를 보낼 수도 있다(4-3). 호스트(10)는 대량 메모리 저장 장치(20)로부터 전원을 제거할 수도 있으며, 장치(20)가 MSMB(18)로부터 물리적으로 제거될 수도 있다. 대량 스토리지 메모리 장치(20)의 재 초기화(동작 4-4, 4-5, 4-6)는 호스트 장치(10)가 대량 스토리지 메모리 장치(20)로부터든지 그것으로 특정 데이터를 얻고/넣을 필요가 있을 때 수행된다. 대량 스토리지 메모리(26) (및 파일 시스템(26A))의 재 초기화는 RAM(14)로부터 정렬/배열/필터링된 판독 데이터를 사용하여 속도를 높일 수도 있다. 재 초기화 동작이 완료되면 대량 스토리지 메모리 장치(20)는 호스트 장치(10)에서 사용된 RAM(14)을 할당 해제할 수도 있고, 또는 RAM(14)이 할당 해제되지 않아서 대량 스토리지 메모리 장치(20)에 의해 나중에 사용하기 위해 RAM 공간을 유보할 수도 있다.
호스트 RAM(14)의 할당은 일부 실시예에서 다르게 발생할 수도 있다. 예를 들어, 호스트 장치(10)는 동적으로 RAM(14)을 할당할 수도 있으며, 할당된 RAM에 '포인터'를 대량 스토리지 메모리 장치(20)로 보낸다. 그런 다음 할당된 호스트 RAM(14)를 이용하는 방법은 대량 스토리지 메모리 장치(20)의 컨트롤러(22)에 달려 있다. 본 실시예에서는 대량 스토리지 메모리 장치(20)로부터 명시적 할당 요청이 호스트 장치(10)에 보내지지 않을 수도 있음을 유의한다. 대신에, 먼저 대량 메모리 저장 장치(20)의 존재를 감지할 때 등과 같이, 호스트 장치(10)가 자발적으로, RAM(14)의 일부를 할당할 수도 있다. 물론, 대량 스토리지 메모리 장치(20)와 호스트 장치(10) 사이의 후속 신호전달은 컨트롤러(22)의 요구만큼 초기 할당이 충분하지 않은 경우에, 할당된 RAM(14)의 크기를 변경하기 위해 사용될 수도 있다. RAM(14) 할당의 또 다른 예로서, RAM(14)의 일부가 정적 방법으로 호스트(10)에 의해 할당될 수도 있으며, 그런 다음 대량 스토리지 메모리 장치(20)는 RAM(24)을 확장할 필요가 있을 때마다 단순히 RAM(14)의 동일한 부분을 사용한다. 이때 대량 스토리지 메모리 장치(20)는 할당된 RAM(14)의 위치/크기를 이미 인지할 수도 있고, 포인터가 호스트 장치(10)로부터 보내질 필요가 없다.
일반적으로 대량 스토리지 메모리 장치(20)가 호스트 메모리의 할당을 받아서, 휘발성 RAM(24)의 컨텐츠를 저장하는 것이 일반적인 경우일 수도 있는 반면, 일반적으로 상기 할당이 대량 스토리지 메모리 장치(20)에 포함된 임의의 읽기/쓰기 메모리에 대한 데이터 저장을 위한 것일 수도 있음을 유의한다.
따라서 일반 양도된 미국 특허 출원 12/455,763에서 설명된 발명의 다양한 비 제한적이고 예시적인 실시예들에 대한 개요를 제공한 후, 이제 본 발명의 실시예들로 설명된다.
managedNAND 메모리(예, eMMC, SSD, UFS, microSD)에서 메모리 컨트롤러(예, 도 2의 컨트롤러(22) 등)는 불량 블록 관리와 웨어 레벨링 같은 플래시 관리 기능을 담당한다. 통상적인 저렴한 비용으로 구현하는 경우에는 상기 managedNAND에 작은 입력/출력(IO) 버퍼 SRAM 만 있다. SSD 같은 보다 고급 managedNAND의 컨트롤러에 내장되는 경우에는 캐시로서 수십 내지 수백 메가비트의 구분된 DRAM 만 있을 수도 있다. 앞으로 MRAM과 같은 몇몇 새로운 메모리 기술은 매우 빠른 비 휘발성 캐시로도 역할을 할 수 있을 것이다.
현대의 멀티 태스킹 모바일 장치 환경에서는 동시에 대량 스토리지에 대기중인 다양한 개시자들로부터 많은 다른 유형의 액세스가 있을 수도 있다. eMMC 장치는 한 번에 하나의 스레드(thread) 만 취급할 수 있기 때문에 eMMC의 경우 상기 대기중인 액세스는 한 번에 하나씩 제공될 것이다. UFS의 경우에는 UFS 장치 큐에 액세스/명령을 보낼 수 있다. 그러나 상기 명령이 대기할 수는 있지만, 이것이 반드시 충분한 자원이 UFS 장치에 (특히 비용 최적화 모델에) 있어서, 대기중인 액세스에 관련된 모든 데이터를 즉시 수용할 수 있다는 것을 보장하지는 않는다.
상술한 일반 양도된 미국 특허 출원 12/455,763는 대량 스토리지 메모리(20)에 시스템 DRAM(14)에 대한 읽기/쓰기 액세스가 제공되는 모델을 제공한다. 이 개념은 본 발명의 실시예들에 의해 확장되어서, 대량 스토리지 메모리(20)로 하여금 시스템 DRAM 내에서 논리적으로(포인터의 사용에 의해) 또는 물리적으로 데이터를 이동시킬 수 있다. 실제 이동은 DRAM(14) 내에서 발생할 수 있으며, 시스템 DRAM 버스(17)를 통해 앞뒤로 (예, 시스템 DRAM(14) 및 대량 메모리 호스트 컨트롤러(13) DMA 버퍼 사이) 이동할 수 있을 것이다. 도 5A에 도시되고 이하에서 상세히 설명되는, 대량 메모리 호스트 컨트롤러(13)는, 이런 점에서 DMA 마스터로서 작용하는 것으로 간주될 수 있으며, 따라서 이러한 목적에서 자체 연관된 DMA 데이터 버퍼들을 포함할 수 있다.
전술한 기능들은 여러 실시예들의 이용을 통해 실현될 수 있다. 제 1 실시예에서 시스템 DRAM(14) 내 별도의 물리적 주소 공간은 대량 스토리지 메모리(20)에 대해 유보되거나, 또는 만약 시스템 DRAM(14)이 논리 주소 공간에서 동작하는 경우 논리 공간이 유보된다. 대량 스토리지 메모리(예, UFS 대량 스토리지 메모리(20))는 자유롭게 이 주소 공간을 활용할 수 있고, 할당/할당 해제 기능과 기타 기능들 등의 주소 공간의 관리 기능들에 대한 책임이 있다.
도 2를 참조하여 설명된 상기 구성 요소들이 그에 따라서 번호가 매겨진 도 5를 참조할 수 있다. 도 5a, 5b, 5c에서, 시스템 DRAM(14)의 부분(14G)은 대량 메모리 모듈(20)(여기에서 UFS 메모리 모듈으로서 비 제한적인 실시예에 설명됨)에 의해 사용하기 위해 할당된다. 호스트 장치(10)는 CPU(12)로서 실시될 수 있는 애플리케이션 프로세서를 포함한다. 애플리케이션 프로세서(12)와 함께 포함되거나 그것에 연결된 DRAM 컨트롤러(11)가 있을 수도 있다. 또한 상술한 대량 메모리 모듈(예, UFS) 호스트 컨트롤러(13)가 있다. 호스트 컨트롤러(13)는 CPU(12)로 실시될 수 있거나, 별도의 장치로 실시될 수 있다. 도 5b는 시스템 DRAM(14)이 운영 시스템(OS)(14A)과 애플리케이션 프로그램(애플리케이션)(14B)을 저장함을 보여주고 있다. 적어도 일부 애플리케이션(14B)에서 데이터(14B')를 생성한다. 시스템 DRAM(14)은 또한 일반적으로 파일 시스템(OS(14A)의 일부)과 관련된 파일 시스템 캐시(14C)를 저장한다. 도 5b의 실시예에서 시스템 DRAM(14)의 일부분은 전송 버퍼(14D)로서 할당되는데, 이 버퍼는 애플리케이션 데이터(14B')가 이동되어서 전송 버퍼 데이터(14E)가 될 수 있도록 한다. 시스템 DRAM(14)의 또 다른 부분은 액세스 목록(14F)을 저장하기 위해 할당된다. 또한 UFS 메모리 모듈(20)을 위해 할당되고, 전송 버퍼 데이터(14E)가 이동되어 데이터(14E')가 될 수 있는, DRAM 부(14G)도 포함하고 있다. 이제 도 5a, 5b 및 5c 에 도시된 이들 구성 요소의 동작을 더욱 상세히 설명한다.
대량 메모리 모듈(20)에 저장될 데이터(14B')를, 애플리케이션(14B), 또는 파일 시스템 캐시, 또는 파일 캐시 엔티티(비 제한적인 예로서) 등의 데이터 소스가 가진다고 가정한다. 데이터(14B')는 대량 메모리 모듈(20)로의 후속 전달을 위해 파일 시스템/드라이버에 의해 전송 데이터(14E)로서 전송 버퍼(14D)로 이동된다. 선택사항으로, 도 5c에 도시되고 이하에서 더 상세히 논의된 바와 같이 데이터(14B')는 직접 그것의 원래 위치에서 이동되어서 전송 버퍼(14D)를 경유할 수 있다. 액세스 목록(14F)은 데이터(14E)의 위치에 대한 OS 유틸리티와 포인트 등에 의해서 애플리케이션(14B) 용 시스템 DRAM(14)에 생성된다. 이 점에서 "애플리케이션"은 (타사 애플리케이션 프로그램으로 기존의 의미로 이해하는 경우) 그 자체가 어떤 액세스 목록을 만들 수는 없다는 점에 유의한다. 대신 애플리케이션 이 개시자로서 읽기/쓰기 액세스 및 기능을 만들어 낸다. 액세스 목록은 파일 시스템 층을 통해 오는 액세스에 기반하여 일부 OS 서비스/메모리 하위시스템(예, 일부 드라이버 층 또는 일부 OS 유틸리티)에 의해 일반적으로 만들어진다. 실제로 액세스 목록은 애플리케이션에 대해 구성 또는 형성된다. 개시자는 비 한정적인 예로서, 애플리케이션, 파일 시스템, 드라이버 나 OS 유틸리티일 수도 있다.
본 발명의 하나의 측면에 따르면, 데이터(14E)는 후술하는 바와 같이 데이터(14E')가 될 대량 메모리(UFS) 용 할당부(14G)로 이동될 수 있다.
액세스는 호스트 장치(10)에 의해 다음과 같이 일어날 수 있다(호스트 장치(10)가 이미 올바르게 대량 스토리지 메모리(20)를 개시했다고 가정한다).
(1) CPU(12)에 의해 실행되고 있는 시스템 DRAM(14)에 상주하는 애플리케이션 프로그램(14B) 등 개시자는, 스스로 (예, OS 유틸리티에 의해서) 액세스 테이블(액세스 목록(14F))을 시스템 DRAM(14)의 UFS 메모리 모듈(20)에 구축했다. 이러한 액세스의 실행이 일정 기간 동안 UFS 메모리 모듈(20)의 자원을 고갈시킬 것이라는 점을 이 예를 들어 가정한다.
(2) 애플리케이션 프로그램(14B) 또는 OS 유틸리티 등의 개시자는, UFS 호스트 컨트롤러에게 액세스 테이블 (액세스 목록(14F))의 존재를 알리고, 호스트 컨트롤러(13)는 명령 및 임의의 관련 데이터를 UFS 메모리 모듈(20)에 전달하기 시작한다.
(3) 동일하거나 다른 애플리케이션 프로그램(14B) 등의 동일 또는 다른 개시자는 시스템 DRAM(14)의 UFS 메모리 모듈(20)에 대한 쓰기 액세스의 다른 테이블(다른 액세스 목록(14F))를 스스로 구축했으며, UFS 호스트 컨트롤러(13)에는 액세스 테이블의 존재가 알려진다.
(4) UFS 호스트 컨트롤러(13)는 이 세트의 (쓰기) 명령을 UFS 메모리 모듈(20)에 전송한다. UFS 메모리 모듈(20)은 UFS 메모리 모듈(20) 현지에서 쓰기 명령과 관련된 데이터를 현재 처리할 수 없는 것으로 판단된다고 가정한다. 이 점에서, 예를 들어, 개시자에 의해 큐 표시의 헤드는, 상기 쓰기 명령(들)의 실행에 있어서 긴급성을 강조하기 위한 명령에 관한 것이었으며, UFS 메모리 모듈(20)은 표시된 긴급성 수준을 현재 충족할 수 없다는 것을 유의한다.
(5) 쓰기 명령에 관련된 데이터를 수신하는 대신, UFS 메모리 모듈(20)은 예컨대, 전송 버퍼(14D)(또는 14B/14C)에서 시스템 DRAM(14)의 유보된 별도의 물리적 주소 공간(할당부(14G))으로 데이터를 이동시킨다. 이동 작업 및 시스템 DRAM(14)의 할당부(14G)는 UFS 호스트 컨트롤러(13)를 통해 UFS 메모리 모듈(20)에 의해서 제어된다. UFS 메모리 모듈(20)은 시스템 DRAM(14), 또는 시스템 DRAM 컨트롤러(11)를 제어해서, 예컨대 데이터(14E')로서 전송 버퍼(14D)에서 할당부(14G)로의 데이터(14E) 이동을 실행시킨다. UFS 호스트 컨트롤러(13)는 예컨대, (전용 UFS DMA 또는 시스템 DMA 중에서) DMA 마스터로서 직접 동작해서 이 작업을 수행하는 것으로 가정할 수 있으며, 호스트 CPU(12)를 생략할 수 있다.
(6) 데이터(14E)의 할당부(14G)로 물리적으로 이동한 후, 마치 실제로 비휘발성 메모리(NVM), 즉, 대량 메모리(26)에 데이터를 이동한 것처럼, UFS 메모리 모듈(20)은 원래(쓰기) 명령에 응답할 수 있다. 결과적으로 제2 개시자는 대량 메모리(20)에 쓰기 명령(들)이 실행되었음을 고려할 수 있고, 마치 쓰기 데이터가 시스템 DRAM(14)의 할당부(14G)에서 데이터(14E')로서 현재 상주하는 것처럼 그 처리 동작을 계속할 수 있다.
(7) 어떤 미래의 시간에 UFS 메모리 모듈(20)은 제2 개시자로부터 쓰기 명령을 처리할 수 있는 충분한 자원을 가지고 있다. 이 시점에서 그것은 독립적으로 시스템 DRAM(14)로부터(시스템 DRAM(14)의 할당부(14G)에서) 데이터를 가져오고, NVM 대량 메모리(26)에 저장한다. 개시자나 OS(14A)의 파일 시스템 층의 관점에서 이 작업은 투명하고 UFS 메모리 모듈(20) 내에 물리적 DRAM / SRAM 캐시가 있는 것처럼 보인다. 즉, 시스템 DRAM(14)의 외부의 할당부(14G)는 UFS 메모리 모듈(20)의 가상 DRAM/SRAM 캐시와 유사한 방식으로 기능할 수 있다.
UFS 메모리 모듈(20)은 수신된 액세스 명령을 순차적으로 처리할 필요가 없음을 유의한다. 예를 들어, 제2 개시자로부터 쓰기 명령을 처리하기 전에, 더 높은 지정된 우선 순위를 갖는 다른 쓰기 명령이 제3 개시자로부터 도착하는 경우, 쓰기 데이터도 할당부(14G)에 저장된 경우, UFS 메모리 모듈(20)은 제3 개시자로부터 쓰기 명령을 처리하고 나서 제2 개시자로부터 쓰기 명령을 처리할 수 있다.
또 다른 실시예에서 대량 메모리 모듈(20)에 대한 시스템 DRAM(14)에 유보된 특정한 별도의 메모리 주소가 필요 없다. 대신 대량 메모리 모듈(20)은 시스템 DRAM(14)의 모든(또는 거의 모든) 위치에 액세스할 수 있다. 이 경우 물리적으로 시스템 DRAM(14)에서 데이터 이동시키는 대신, 대량 메모리 모듈(20)은 호스트 CPU(12)에 의해 생성된 메모리 포인터 목록을 제어할 수 있다. 포인터 목록(호스트 용 하나의 포인터 목록 및 대량 메모리 모듈(20) 용 다른 목록)을 수정해서, 대량 메모리 모듈(20)은 호스트 CPU 가 제어한 논리 메모리 공간에서 대량 메모리 모듈(20)에 의해 제어된 데이터 공간으로 데이터를 가상 "이동"시킬 수 있다. 이 경우 전송 버퍼(14D)는 여전히 존재할 것/할 수도 있지만, 대량 메모리 모듈(20)에 물리적 할당부(14G)는 필요하지 않다.
대안적으로, 대량 메모리 모듈(20)은 호스트 CPU(12)에 의해 생성된 헤더 정보를 이용할 수 있다. 헤더 정보는 유효/무효, 유보 호스트, 유효/무효 대량 메모리 할당마다 별개의 비트를 사용할 수 있으며, 시스템 DRAM(14)에 저장될 수 있다. 이 경우 헤더 정보(예, 할당됨/없음)를 수정하여, 대량 메모리 모듈(20)은 호스트 CPU(12) 제어 주소에서 대량 메모리 모듈(20)에 의해 제어된 주소로 데이터를 "이동"할 수 있다.
이들 동작 중 하나 또는 모두는 호스트 컨트롤러(13)에 의해 매개될 수 있다.
데이터가 비휘발성 모듈을 위해 유보된 시스템 DRAM(14)의 영역(14G)에 여전히 위치하고 있는 주소로 어플리케이션에서 읽기 명령이 있을 수 있다, 즉, 이전에 저장된 데이터는 아직 비휘발성 메모리 모듈(20)에 의해 비휘발성 메모리(26)에 이동되지 않았다. 이런 경우 메모리 컨트롤러(22)는 이 읽기 명령을 감지하고, (읽기 명령을 제공하기 전에 비 휘발성 메모리(26)로 데이터를 실제로 이동하고 저장하는 대신) 메모리 영역(14G)으로부터, 파일 캐시/파일 시스템 캐시(14C)/전송 버퍼(14D) 또는 애플리케이션 영역(14B)에 유보된 위치로 데이터를 복사한다(이동시키지 않음). 유보된 위치 속 대상 주소는 적어도 호스트 컨트롤러(13)에 의해 알려지도록 액세스 목록(14F)에 포함할 수 있다.
포인터 목록 및 헤더의 수정에 관한 또 다른 실시예들에서 상기 상응하는 읽기 경우는 새로운 목표 위치로 (읽기 요청과 관련) 데이터의 복사 및 메모리 모듈/호스트에 의한 포인터/헤더 준비로 실현됨으로써, 복사된 데이터는 즉시 액세스 가능하고 호스트 시스템(10)의 제어 하에 있을 것이다.
이러한 읽기와 관련된 모든 실시예에서는 읽기 데이터가 복사되고 데이터(14E')가 여전히 존재하고 메모리 컨트롤러(22)가 쓰기 동작을 수행할 자원을 가지자마자 메모리 모듈(20)의 비휘발성 메모리(26)에 쓰여질 것으로 이해되어야 한다.
상술한 바와 같이 도 5c는 본 발명의 실시예를 도시하는데, 액세스 목록(14F)이 데이터(14B')를 참조하며, 그런 다음 참조된 데이터가 직접 (데이터(14E'로서) 할당된 부분으로 이동됨으로써 전송 버퍼(14D)를 경유하게 된다(즉 , 직접 이동된 후 데이터(14B')가 데이터(14E')가 된다).
또한 데이터가 호스트 CPU(12) 이외의(예, 애플리케이션 프로세서 이외) 소스로부터 기인하는 것도 실시예들의 범위 내에 있다. 예를 들어, 데이터는 유선 연결 또는 무선 연결을 통해 호스트 장치(10)에 연결되어 있는 주변 장치(60)로서 구현되는 개시자에서 발생할 수 있다.
이 경우에 데이터를 직접 주변 장치(60)로부터 대량 메모리 모듈(20)에 이동시키는 대신 대량 메모리 모듈(20)은 할당부(14G)와 같은 시스템 DRAM(14)에 데이터를 저장시키는 원인이 된다. 따라서 주변 장치(60)에서 발생한 데이터는 일시적으로 (그리고 주변 장치(60)에 투명하게) 시스템 DRAM(14)에 캐시된다.
또한 본 발명의 실시예들에 따르면 DRAM(14)의 동작은 DRAM(14)의 동작을 로컬로 수행할 수 있는 추가 기능을 제공하여 강화된다.
소개 차원에서, 무선 단말기(예를 들면, 스마트폰)의 처리 용량 병목 중 하나가 실행 메모리, 특히 메모리 버스이다. 또한, 워크 메모리라고도 알려진 실행 메모리가 별도의 구성 요소(예, 외부 DRAM)이지만, 그것은 제한된 전송 용량(대역폭)을 가진 버스에 의해 호스트 ASIC에 접속된다.
메모리 대역폭을 향상시키는 수단은 한정되어있다. 대부분의 경우 여러 가지 메모리 버스와 메모리 장치 각각의 비용이 너무 높다. 또한 버스 자체는 호스트 ASIC의 핀/패드 예산의 주요 부분을 차지하는데, 주어진 패드 피치에서, 호스트 ASIC 실리콘을 포함하는 패키지가 불필요하게 커지게 되면서 소형화 노력에 문제를 만들고 있음을 의미한다.
공통된 문제는 메모리 대역폭, 또는 트랜잭션 용량이 많은 원하는 사용 사례에 대해 충분하지 않다는 것이다. 호스트 ASIC은 여러 가지 메모리 마스터(예, 프로세서, 가속기 및 DMA 엔진)와, 외부 메모리 버스를 제공하는 하나의 DRAM 컨트롤러(11)를 포함할 수 있다. 이 버스의 타 단에는 메모리 장치(DRAM 구성 요소)이다. 메모리 마스터는 메모리에 읽고 쓰기 요청 문제를 낳는다. DRAM은 병렬로 동작할 수 있는 여러 가지 뱅크(일반적으로 4 내지 8)로 만들어진다. 따라서 병렬화는 메모리 버스의 양단에 존재하는 반면, 메모리 버스 자체는 단일 스레드 배열이다.
본 발명의 실시예는 로컬로 수행하는 내부 동작을 활성화하여 메모리 장치를 완전히 활용하는 방법을 제공하는 것을 포함한다. 이것은 전체적인 메모리 하부 시스템의 성능을 향상시키고, CPU에서 일부 동작을 오프-로딩하여 CPU 용량을 향상하고, 전력 소비를 감소시킨다. 본 발명의 실시 양태는 강화된 명령 세트의 사용을 통해 메모리 장치에 의해 수행되어야 하는 몇몇 기초 동작을 위해서 제공된다.
또한 주목해야 하는 것은 본 발명의 실시예들은 시스템 DRAM(14)의 동작을 향상시키는 관점에서 기술되는 한편, 본 발명의 이러한 측면들은 대량 스토리지 메모리 장치(20)의 동작을 향상시키기 위해서도 적용할 수 있다는 사실이다. 예를 들어, 메모리 모듈(20)의 상주하는 메모리 컨트롤러(22)를 변형해서 대량 메모리(26) 내에 로컬 자율 동작을 제공할 수 있다.
또한 본 발명의 실시예들에 따르면 메모리 채우기 및 메모리 이동 등 몇몇 기본적이고 기초적인 기능들은 시스템 DRAM(14)에 내부적으로 처리된다. 예를 들어, 이러한 동작은 시스템 DRAM 메모리 컨트롤러 및/또는 시스템 DRAM(14)에 포함된 제어 모듈 또는 기능(15)에 의해 처리할 수 있다(도 5a에 도시).
본 실시예에서 시스템 DRAM(14)은 예를 들어, 시스템 DRAM 메모리 컨트롤러(11)의 도움으로든지 도움 없이 CPU(12)에 의해 활성 개입/제어하지 않고 메모리 채우기 및 메모리 기능(들)을 독립적이고 자율적으로 수행할 수 있다. 이로 인해 CPU(12) 및 시스템 DRAM 버스(17) 부하를 감소시키는데, 적어도 버퍼(14B/14D)에서 할당부(14G)로 물리적 데이터 이동을 제어하는 대량 메모리 모듈/대량 메모리 호스트 컨트롤러(13) 때문이다.
많은 메모리 트랜잭션은 데이터로 메모리 주소 공간을 단순히 채우는 것(예를 들어, 제로) 또는 하나의 메모리 위치에서 다른 메모리 위치로 데이터 청크를 이동하는 것으로, 상기 위치들은 동일한 물리적 메모리 장치 내부이거나 또는 두 개의 서로 다른 메모리 장치의 내부일 수 있음을 볼 수 있다. 이는 통상적으로 CPU 차원에서의 활동을 요구하는데, 시스템 처리 효율 및 전력소비가 최적보다 낮음을 의미한다.
이러한 본 발명의 추가 측면들에 따르면, 적어도 일부 기초 인-메모리 동작은 CPU(12)의 책임으로부터 벗어나고, 예컨대 시스템 DRAM(14)과 매립할 수 있는 컨트롤러(15)로 시스템 DRAM(14)으로 전송된다.
이 실시예에서 컨트롤러(15) 기능은 "스마트 메모리" 기능을 포함하고 있다. 대안으로 이러한 스마트 메모리 기능은 도 5a에 보여지는 호스트 컨트롤러(13)에 포함될 수 있다. 대안으로서, 그리고 위에서 언급한 것처럼, 이러한 스마트 메모리 기능은 호스트 장치(10)의 시스템 DRAM(14) 용으로 시스템 DRAM 메모리 컨트롤러(11) 기능에도 포함될 수 있다.
이들 실시예에서 시스템 DRAM 컨트롤러(11) 또는 시스템 DRAM 모듈(제어부(15))은 그것에 대해 제기된 명령을 분석할 수도 있으며, 메모리 채우기 또는 메모리 이동 동작 등의 "스마트 메모리" 동작을 개시할 수도 있다.
예를 들어, 컨트롤러(15)에 추가된 추가 기능은 적어도 메모리 채우기 기능 및 메모리 이동 기능을 포함할 수도 있다. 추가 기능은 선택적으로 시스템 DRAM(14) 용 보안 기능들, 시스템 DRAM(14)과 대량 메모리(26) 간의 압축/압축해제 기능들, DRAM(14)과 대량 메모리(26) 간의 데이터 트랜잭션 기능, 및 예를 들어, 대량 메모리 관련 에러 감지 및 정정 및 웨어 레벨링 기능들을 포함한다.
스마트 메모리 기능의 사용의 예로서, 메모리 블록 리셋은 일반적으로 메모리 속에 제로를 기록함으로써 수행된다. 본 발명에 따른 '데이터 채우기' 기능은 임의의 특정된 비트 패턴(예, 채우기(Fill):데이터(Data))를 사용하여 적어도 채우기(Fill) 동작을 지원하는데, 이때 데이터(Data)는 '0000', '1111', '0101' 등과 같은 임의의 특정된 비트 패턴이 될 수 있다.
데이터 이동 동작은 데이터가 이동(읽기)된 시스템 DRAM(14)의 영역에 채우기(Fill) 동작 다음에 이어지는 읽기/쓰기(복사) 순서가 될 수 있다. 채우기(Fill) 동작은 메모리 위치를 일부 소정의 값(예를 들어, 제로)이나, 상기 논의한 채우기(Fill) 동작과 유사한 방식으로 데이터 이동 동작 명령에 의해 지정된 값으로 설정할 수도 있다. 채우기(Fill) 동작은 선택적이어서, 데이터 복사 동작(즉, 원본 데이터가 변경되지 않은 상태에서 데이터를 다른 위치로 복제하는 것)으로 데이터 이동 동작이 기능할 수 있다.
명령 레벨에서 스마트 메모리 기능을 구현하는 비 제한적인 예는 다음과 같다.
(예, JEDEC 표준, 저전력 더블 데이터 속도(Low Power Double Data Rate, LPDDR) SDRAM 표준, JESD209B, 2010 년 2 월 참조)에 지정된 바와 같은 저전력 더블 데이터 속도(Low Power Double Data Rate, LPDDR1(LP1))는 이런 스마트 기능 유형들을 추가하는 간단한 방법을 제공하지 않는다. 예시적인 구현예는 메모리 장치에 다음과 같은 정보를 전달하기 위해 주소 핀 A0-Ax를 사용하는 여러 기존의 모드 레지스터 세트(MRS) 명령 (뱅크 주소 BAO = BA1 = '1'인 MRS 사용가능)의 시퀀스를 사용하는 것일 수도 있다:
1) 명령 종류(이동, 채우기);
2) 데이터 채우기(모두 0, 모두 1, 01 시퀀스, ...), 선택 사양;
3) 대상 주소(채우기, 이동) 및 소스 주소(이동), 주소는 구현예에 따라 다름;
4) 동작 크기, 입자도(granularity)는 구현예에 따라 다름.
시퀀스에서 필요한 MRS의 수는 주소, 데이터 입자도 및 동작 크기에 따라 달라지는데, 이것들은 구현예에 따라 달라지는 인자들이다. LPDDR2과 LPDDR3 모드 레지스터에서 쓰기 명령은 유사한 방식으로 사용될 수 있다. 종래 LPDDRx 솔루션들은 DRAM 유휴 상태로부터만 MRS 및 MRW 동작을 허용하지만, 다른 솔루션들은 기술적으로 가능한 것으로 이해되어야 한다. 하나의 구현예는 이동 또는 채우기 동작의 소스나 타겟인 데이터가 오픈된 DRAM 페이지에 위치하도록 요구할 수도 있다.
또한 미래 DRAM 인터페이스로 새로운 전용 명령들이 이러한 동작들에 사용될 수 있고, - 그리고 이러한 동작들이 훨씬 더 효율적으로 이루어질 수 있다는 것을 이해해야 한다. 근본적으로 시스템 관점에서 다음과 같은 동작들의 일부 또는 전부가 메모리에 전달될 수도 있다:
1) 명령 전달(fill0, fill1, ..., fill_pattern, 이동);
2) 타겟 주소 전달(뱅크, 행, 열, 바이트);
3) 소스 주소 전달(뱅크, 행, 열, 바이트);
4) 동작 크기 전달.
전체 명령과 주소 전달은 단일 또는 여러 개의 명령 시퀀스에서 일어날 수도 있다 - 특정 명령 코드는, 예를 들어, 구현예에 맞도록 CMD/어드레스/데이터 버스를 통해 멀티 사이클 전달을 표시할 수도 있다. 메모리가 데이터를 이동하거나 채우기 위해 몇 가지 중간 버퍼를 내부적으로 사용하든지, 또는 열린 행(DRAM 앰프 감지)이 전체 동작, 임의의 타이밍 요구 사항 등등 도중에 유보되든지 간에, 특정 구현예는 데이터 및 주소 입자도에 대한 요구 사항, 스마트 메모리 기능 동작 이전 및 이후 메모리 상태에 대한 요구 사항을 명령한다.
이 명령은 예를 들어, CPU(12)(예, OS, 또는 파일 시스템 유틸리티에 의해)에 의해서나, 대량 메모리 호스트 컨트롤러(13)에 의해서 발행되고 나서, 자율적으로 시스템 DRAM(14)와 연결된 컨트롤러(15)에 의해서나 DRAM 메모리 컨트롤러(11)에 의해 실행될 수 있다.
상술한 바와 같이 본 발명의 실시예들을 사용해서 실현될 수 있는 다수의 이점과 기술적 효과가 있다. 예를 들어, 액세스가 제공되었다고(실제로 추가 처리를 위해 ManagedNAND로 간주됨), 개시자(호스트 CPU(12), 프로세스, 개시자, 애플리케이션)에 대한 더욱 빠른 응답이 제공될 수 있다. 이는 사용자의 경험을 향상시킨다. 또한, 데이터 이동이 하드웨어/소프트웨어의 낮은 층에서 일어나듯이, 어떤 변화도 상위 층 소프트웨어 (예, 파일 시스템 및/또는 애플리케이션)에 일어날 필요가 없다. 또한, ManagedNAND 기능에 대한 시스템 DRAM(14)의 할당부(14G)가 너무 클 필요는 없다. 예를 들어, 많은 경우에서 일시적으로 단지 작은 랜덤 액세스를 캐시하고, 보다 큰 순차적 액세스를 비휘발성 대량 메모리(26)에 직접 저장하는 것이 가장 유리한 것처럼, 관심 있는 사용에 있어서 몇백 킬로바이트면 충분할 수 있을 것이다. 또한, 본 발명의 추가 측면들의 이용으로 특정한 기초 메모리 동작들(예, 채우기, 이동)이 CPU(12)의 적극적인 개입 없이 로컬로 달성될 수 있게 된다(예, 시스템 DRAM 모듈(14) 내).
도 6은 단순히 메모리 카드(20)로 도 6에 언급된, 대량 스토리지 메모리 장치(20)와 사용된 호스트 장치(10)에 대한 하나의 비 제한적인 실시예를 도시하고 있다. 대량 스토리지 메모리 장치(20)는 분리 가능하거나, 아니면 장치(10)에 내장될 수 있다. 본 실시예에서 호스트 장치(10)는 평면도(왼쪽) 및 단면도(오른쪽) 모두에 표시된 사용자 장비(UE)로 구현된다. 도 6에서 호스트 장치(UE)(10)는 그래픽 디스플레이 인터페이스(120)와, 키패드로 도시하지만, 그래픽 디스플레이 인터페이스(120)에서 터치 스크린 기술과 마이크로폰(124)에서 수신된 음성 인식 기술을 포괄하는 것으로도 이해되는 사용자 인터페이스(122)를 가지고 있다. 전원 액츄에이터(126)는 사용자가 켜고 끄는 장치를 제어한다. 예시적인 UE(10)는 (예를 들면, 영상 통화를 위해) 앞으로 면하고 있지만, 대안으로 또는 부가적으로 (예를 들어, 로컬 스토리지용 이미지와 비디오를 캡처하기 위해)뒤로 면하고 있는 것으로 보이는 카메라(128)를 가질 수도 있다. 카메라(128)는 셔터 액츄에이터(30)에 의해서, 그리고 선택적으로 대안으로 카메라(128)가 활성 모드에 있지 않을 때 스피커(들)(34)에 대한 볼륨 조정 기능을 할 수도 있는 줌 액추에이터(32)에 의해 제어된다.
하나의 예로서, 카메라(128)에 의해 캡쳐된 화상 데이터는 카메라 애플리케이션의 제어 하에 대량 스토리지 메모리 장치(20)에 저장될 수 있고, 따라서 본 발명의 실시예들의 이용으로부터 이익을 볼 수 있다. 다른 예로서, 마이크로폰(124)에 의해 캡쳐된 오디오 데이터는 오디오 애플리케이션의 제어 하에 대량 스토리지 메모리 장치(20)에 저장될 수 있고, 따라서 본 발명의 실시예들의 이용으로부터도 이익을 볼 수 있다.
도 6의 단면 도시 내에서는 일반적으로 셀룰러 통신 용으로 사용되는 다수의 송신/수신 안테나(36)를 볼 수 있다. 안테나(36)는 UE에서 다른 무선 장치와 함께 사용하기 위한 다중 대역일 수도 있다. 비록 일부 실시예에서는 접지면이 전력 칩(38)이 형성된 인쇄 배선 기판 상에 배치된 것과 같이 보다 작은 영역에 한정될 수도 있지만, 안테나(36)에 대한 동작 가능한 접지면은 UE 하우징에 의해 둘러싸인 공간 전체에 걸쳐 음영에 의해 도시되어 있다. 파워 칩(38)은 송신 중인 채널들 위 및/또는 공간적 다양성이 사용되는 경우 동시에 송신하는 안테나들에 걸쳐, 전력 증폭을 제어하고, 상기 수신되는 신호를 증폭한다. 파워 칩(38)은 복조하고 기저 대역 처리를 위해 신호를 하향 변환하는 무선 주파수(RF) 칩(40)에, 상기 증폭된 수신 신호를 출력한다. 기저 대역(BB) 칩(42)은 비트 스트림으로 변환되고 최종적으로 디코딩되는 신호를 검출한다. 마찬가지의 처리가 호스트 장치(10)에서 생성되고 그것으로부터 송신된 신호에 대해 역으로 일어난다.
카메라(128)로 그리고 그로부터 가는 신호는 다양한 이미지 프레임을 인코딩 및 디코딩하는 이미지/비디오 프로세서(44)를 통과할 수도 있다. 별도의 오디오 프로세서(46)도 스피커(34)와 마이크로폰(124)으로 그리고 그들로부터의 신호를 제어하면서 존재할 수도 있다. 그래픽 디스플레이 인터페이스(120)는 상기 디스플레이 인터페이스(20)로 그리고 그로부터 신호를 처리하고 그리고/또는 부가적으로 키패드(22) 및 다른 곳으로부터의 사용자 입력을 처리할 수도 있는 사용자 인터페이스 칩(50)에 의해 제어된 것처럼 프레임 메모리(48)로부터 리프레시된다.
UE(10)의 특정 실시예들은 또한 칩에 안테나를 포함할 수도 있고 또는 칩 밖에 안테나에 연결될 수도 있는, 무선 근거리 네트워크 라디오 WLAN(37) 및 블루투스7 라디오(39)와 같은 하나 이상의 보조 라디오를 포함할 수도 있다. 장치 전반에 걸쳐 다양한 메모리, 예컨대 시스템 DRAM(14), 읽기 전용 메모리 ROM(45)를 포함할 수 있는 랜덤 액세스 메모리 RAM, 그리고 일부 실시예에서는 제거 가능 메모리, 예컨대 다양한 프로그램과 데이터가 저장될 수 있는 상기 도시된 메모리 카드(20)가 있다. UE(10) 내의 이러한 모든 구성 요소는 일반적으로 배터리(49) 등의 휴대용 전원 공급 장치에 의해 구동된다.
프로세서(38, 40, 42, 44, 46, 50)는, UE(10)에서 별도의 개체로 구현된다면, 메인 프로세서(CPU)(12)에 종속 관계로 동작할 수도 있는데, 그런 다음 그들에게 마스터 관계일 수 있다. 특정 실시예들은 보이는 것처럼 다양한 칩과 메모리를 가로 질러 배치되거나, 도 6에 대해 위에서 설명된 기능 일부를 결합한 다른 프로세서 내에 배치될 수도 있다. 도 6의 다양한 프로세서들 중 일부 또는 모두는 다양한 메모리 중 하나 이상을 액세스하는데, 이러한 프로세서 칩 상에 있거나 프로세서 칩과 별개일 수도 있다. 상술 한 다양한 집적 회로들(예를 들어, 칩(38, 40, 42) 등)은 상술한 것보다 적은 개수로 결합될 수도 있고, 가장 조밀한 경우는, 모두 하나의 칩 안에 물리적으로 구현될 수도 있음을 주목한다.
본 실시예에서 UE(10)(호스트 장치)의 CPU(12)는 도 5a, 5b 및 5c와 관련하여 상술 한 바와 같이 메모리 카드(20)(대량 스토리지 메모리 장치)와 동작함으로써, 메모리 카드(20)가 연장되어서 상술한 바와 같이 UE(10)의 시스템 다이나믹 RAM(14)의 적어도 일부에서 사용된다.
본 발명의 실시예들의 일 측면은 방법으로, 도 7에서 보여지고, 개시자(예를 들어, 애플리케이션, 파일 시스템, 드라이버 또는 OS 유틸리티)로부터 발생하는 명령(예를 들어, 명령은 파일 시스템 층(SW) 및 드라이버 층(SW) 및 호스트 컨트롤러(HW)를 통해 도착 가능)을 호스트 장치와 결합된 비휘발성 대량 메모리와 연결된 컨트롤러(예를 들면, 메모리 컨트롤러)에서 수신하는 단계(7A)를 포함한다. 상기 명령은 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령이다. 호스트 장치의 메모리는, 비 제한적인 예로서, DRAM, MRAM, PCM(상 변화 메모리), RRAM (저항변화 랜덤 액세스 메모리), 자기 랜덤 액세스 메모리, 강유전체 랜덤 액세스 메모리, 등등을 포함할 수도 있다. 본 방법은 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 최소한 상기 비휘발성 대량 메모리에 의해 사용하기 위해 할당된 메모리 부분으로 이동시키는 단계(7B)를 더 포함한다. 본 방법은 상기 비휘발성 대량 메모리에 데이터를 작성하는 명령이 실행되었음을 개시자에게 알려주는 단계(7C)를 더 포함한다.
도 7과 선행 단락에서 설명한 방법에 있어서, 알려주는 단계 이후, 상기 호스트 장치의 메모리에서 상기 비휘발성 대량 메모리로 데이터를 이동시키는 단계를 더 포함한다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 데이터는 적어도 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분으로 물리적으로 이동된다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 데이터는 메모리 주소 포인터의 값을 데이터나 데이터의 헤더의 값으로 변경함으로써 적어도 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분으로 논리적으로 이동된다.
도 7과 선행 단락들에서 설명한 방법에 있어서,상기 데이터는 상기 개시자로 발생하고 상기 개시자는 상기 호스트 장치에 상주한다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 개시자는 애플리케이션 프로그램, 파일 시스템, 드라이버, 및 운영 시스템 유틸리티 중 하나 이상을 포함한다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 데이터는 상기 개시자로 발생하고 상기 개시자는 상기 호스트 장치 외부에 있다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 개시자는 상기 호스트 장치와 연결된 주변 장치로서 구현된다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 호스트 장치의 메모리는 동적 랜덤 액세스 메모리를 포함하고, 그리고 자율적으로 상기 메모리에에서 기초 메모리 동작을 수행하는 단계를 더 포함한다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 기초 메모리 동작은 특정한 복수의 메모리 위치를 특정한 값으로 설정하는 데이터 채우기 동작이다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 기초 메모리 동작은 제1 특정한 복수의 메모리 위치를 제2 특정한 복수의 메모리 위치로 데이터를 이동시키는 데이터 이동 동작이다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 데이터 이동 동작은 상기 제1 특정한 복수의 메모리 위치를 지정한 값으로 설정하는 단계를 더 포함한다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 데이터가 적어도 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분에 상주하는 동안, 상기 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분에 상주하는 데이터를 읽도록 읽기 명령에 응답하는 단계와, 상기 읽은 데이터를 상기 읽기 명령의 개시자에게 복사하는 단계를 더 포함한다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 적어도 상기 비휘발성 대량 메모리에 의해 사용하기 위해 할당된 메모리 부분으로 이동시키는 단계는 상기 비휘발성 대량 메모리와 연결된 컨트롤러에 의해 개시된다.
도 7과 선행 단락들에서 설명한 방법에 있어서, 상기 방법은 상기 컨트롤러에 의한 컴퓨터 프로그램 지시어들의 실행의 결과로서 수행된다.
도 8은 본 발명의 추가 실시예들에 따른 방법의 동작 및 컴퓨터 판독 가능 메모리에 의해 구현된 컴퓨터 프로그램 지시어들의 실행 결과를 도시한 논리 흐름도이다. 이러한 실시예들에 따르면, 방법은, 블록 8A에서, 적어도 하나의 데이터 프로세서 및 동적 랜덤 액세스 메모리로 이루어지는 적어도 하나의 메모리를 포함하는 데이터 처리 시스템을 제공하는 단계를 수행한다. 블록 8B에서, 상기 메모리에서 기초 메모리 동작을 자율적으로 수행하는 단계가 있다.
도 8과 선행 단락에서 설명한 방법에 있어서, 상기 기초 메모리 동작은 특정한 복수의 메모리 위치를 특정한 값으로 설정하는 데이터 채우기 동작이다.
도 8과 선행 단락들에서 설명한 방법에 있어서, 상기 기초 메모리 동작은 제1 특정한 복수의 메모리 위치를 제2 특정한 복수의 메모리 위치로 데이터를 이동시키는 데이터 이동 동작이다.
도 8과 선행 단락들에서 설명한 방법에 있어서, 상기 데이터 이동 동작은 상기 제1 특정한 복수의 메모리 위치를 지정한 값으로 설정하는 단계를 더 포함한다.
도 7 및 8에 도시된 다양한 블록들은 방법 단계들 및/또는 컴퓨터 프로그램 코드의 동작 결과인 동작들, 및/또는 연관된 기능(들)을 수행하도록 구성된 복수의 결합 논리 회로 요소들로 보여질 수도 있다.
일반적으로, 다양한 실시예들은 하드웨어 또는 특수 목적 회로, 소프트웨어, 로직 또는 이들의 임의의 조합으로 구현될 수도 있다. 본 발명은 이에 한정되지 않지만, 예를 들어, 몇몇 측면들은 하드웨어로 구현될 수도 있고, 다른 측면들은 컨트롤러, 마이크로 프로세서 또는 다른 컴퓨팅 장치에 의해 실행될 수 있는 펌웨어 또는 소프트웨어로 구현될 수도 있다. 본 발명의 실시예들의 다양한 측면은 블록도, 흐름도 또는 다른 그림 표현을 사용해서 예시 및 설명될 수 있지만, 여기에서 설명한 이러한 블록, 장치, 시스템들, 기술 또는 방법은 비 제한적인 예시들로서, 하드웨어, 소프트웨어, 펌웨어, 특수 목적의 회로들 또는 로직, 범용 하드웨어나 컨트롤러 또는 다른 컴퓨팅 장치들, 또는 이들의 조합에서 구현될 수 있음을 잘 이해해야 한다.
따라서 본 발명의 실시예들의 적어도 몇몇 측면은 집적 회로 칩, 모듈들 등의 다양한 구성 요소들에서 실시될 수도 있고, 본 발명의 실시예들은 집적 회로로 구현되는 장치에서 실현될 수도 있다는 것을 이해하여야 한다.
집적 회로, 또는 회로는, 본 발명의 실시예들에 따라 동작하도록 구성 가능한, 적어도 하나 이상의 데이터 프로세서 또는 데이터 프로세서들, 디지털 신호 프로세서 또는 프로세서들, 베이스 밴드 회로 및 라디오 주파수 회로를 구현하기 위한 회로(또한 가능하게는 펌웨어)를 포함할 수도 있다.
실시예들에 따른 장치는, 호스트 장치로부터 상기 호스트 장치와 결합된 비휘발성 대량 메모리와 연관된 컨트롤러에 명령을 보내기 위한 수단, 상기 명령은 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령이다; 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 상기 비휘발성 대량 메모리에 의해 사용하기 위해 할당된 메모리 부분으로 이동시키기 위한 수단; 및 상기 비휘발성 대량 메모리에 데이터를 작성하는 명령이 실행되었음을 상기 호스트 장치에게 알려주기 위한 수단을 포함한다.
본 발명의 전술한 실시예들에 대한 다양한 변형 및 개조가 첨부된 도면과 함께 판독될때 상기 설명의 관점에서 당업자에게는 자명해질 수 있다. 그러나, 임의의 그리고 모든 변형은 여전히 본 발명의 비-제한적이고 예시적인 실시예들의 범위 내에 속하는 것이다. 또한, 용어 "연결된", "결합된" 또는 이들의 임의의 변형들은 둘 이상의 요소 사이의 직접적 또는 간접적 임의의 연결 또는 결합을 의미하고, 함께 "연결된" 혹은 "결합된" 두 요소들 사이에 하나 이상의 중간 요소의 존재를 포괄할 수 있다. 상기 요소들 사이의 결합 또는 연결은 물리적, 논리적, 또는 그 조합일 수도 있다. 여기에서 사용되는 두 요소들은 몇몇 비 제한적이고 비 소모적인 예시로서 무선 주파수 영역, 마이크로파 영역 및 (가시 및 비가시 모두) 광학 영역에서 파장을 갖는 전자기 에너지와 같은 전자기 에너지의 사용에 의해서 뿐만 아니라 하나 이상의 전선, 케이블 및/또는 인쇄된 전기 연결의 사용에 의해 함께 "연결된" 또는 "결합된" 것으로 간주될 수도 있다.
또한, 본 발명의 다양한 비 한정적이고 예시적인 실시예들의 특징들 중 몇몇은 다른 특징들의 대응하는 사용 없이도 유리하게 사용될 수도 있다. 이와 같이, 상기 설명은 본 발명의 원리, 교시 및 실시예들의 단지 예시로서 고려되어야 하며, 이들의 제한이 아니다.

Claims (36)

  1. 개시자로부터 발생하는 명령을 호스트 장치와 결합된 비휘발성 대량 메모리와 연결된 컨트롤러에서 수신하되, 상기 명령은 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령인 단계;
    현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 적어도 상기 비휘발성 대량 메모리에 의해 사용하기 위해 할당된 메모리 부분으로 이동시키는 단계; 및
    상기 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령이 실행되었음을 개시자에게 알려주는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    알려주는 단계 이후, 상기 호스트 장치의 메모리에서 상기 비휘발성 대량 메모리로 상기 데이터를 이동시키는 단계를 더 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 데이터는 적어도 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분으로 물리적으로 이동되는, 방법.
  4. 제 1 항에 있어서,
    상기 데이터는 메모리 주소 포인터의 값을 데이터나 데이터의 헤더의 값으로 변경해서 적어도 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분으로 논리적으로 이동되는, 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 데이터는 상기 개시자로 발생하고 상기 개시자는 상기 호스트 장치에 상주하는, 방법.
  6. 제 5 항에 있어서,
    상기 개시자는 애플리케이션 프로그램, 파일 시스템, 드라이버, 및 운영 시스템 유틸리티 중 하나 이상을 포함하는, 방법.
  7. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 데이터는 상기 개시자로 발생하고 상기 개시자는 상기 호스트 장치 외부에 있는, 방법.
  8. 제 7 항에 있어서,
    상기 개시자는 상기 호스트 장치와 연결된 주변 장치로서 구현되는, 방법.
  9. 제 1 항에 있어서,
    상기 호스트 장치의 메모리는 동적 랜덤 액세스 메모리를 포함하고, 그리고 상기 메모리에서 기초 메모리 동작을 자율적으로 수행하는 단계를 더 포함하는, 방법.
  10. 제 9 항에 있어서,
    상기 기초 메모리 동작은 특정한 복수의 메모리 위치를 특정한 값으로 설정하는 데이터 채우기 동작인, 방법.
  11. 제 9 항에 있어서,
    상기 기초 메모리 동작은 제1 특정한 복수의 메모리 위치를 제2 특정한 복수의 메모리 위치로 데이터를 이동시키는 데이터 이동 동작인, 방법.
  12. 제 11 항에 있어서,
    상기 데이터 이동 동작은 상기 제1 특정한 복수의 메모리 위치를 지정한 값으로 설정하는 단계를 더 포함하는, 방법.
  13. 제 1 항에 있어서,
    상기 데이터가 적어도 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분에 상주하는 동안, 상기 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분에 상주하는 데이터를 읽도록 읽기 명령에 응답하는 단계와, 상기 읽은 데이터를 상기 읽기 명령의 개시자에게 복사하는 단계를 더 포함하는, 방법.
  14. 제 1 항에 있어서,
    현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 적어도 상기 비휘발성 대량 메모리에 의해 사용하기 위해 할당된 메모리 부분으로 이동시키는 단계는 상기 비휘발성 대량 메모리와 연결된 컨트롤러에 의해 개시되는, 방법.
  15. 제 1 항 내지 제 14 항 중 어느 한 항에 있어서,
    상기 방법은 상기 컨트롤러에 의한 컴퓨터 프로그램 지시어들의 실행의 결과로서 수행되는, 방법.
  16. 호스트 장치와 연결된 비휘발성 메모리 모듈과 연결된 컨트롤러;

    상기 비휘발성 메모리 모듈에 대한 인터페이스를 포함하되;
    상기 컨트롤러는 개시자로부터 발생하는 명령을 처리하는 구조일 수 있는데, 상기 명령은 현재상기 호스트 장치의 메모리에 상주하는 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령이고; 상기 컨트롤러는 또한 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 최소한 상기 비휘발성 대량 메모리 모듈에 의해 사용하기 위해 할당된 메모리 부분으로 이동시키고; 그리고 상기 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령이 실행되었음을 개시자에게 알려주는 구조일 수 있는, 장치.
  17. 제 16 항에 있어서,
    상기 컨트롤러는 상기 데이터를 상기 비휘발성 대량 메모리 모듈에 쓰는 명령이 실행되었음을 알려준 후, 상기 호스트 장치의 메모리에서 상기 비휘발성 대량 메모리로 상기 데이터를 이동시키는 구조인, 장치.
  18. 제 16 항에 있어서,
    상기 데이터는 적어도 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분으로 물리적으로 이동되는, 장치.
  19. 제 16 항에 있어서,
    상기 데이터는 메모리 주소 포인터의 값을 데이터나 데이터의 헤더의 값으로 변경해서 적어도 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분으로 논리적으로 이동되는, 장치.
  20. 제 16 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 데이터는 상기 개시자로 발생하고 상기 개시자는 상기 호스트 장치에 상주하는, 장치.
  21. 제 20 항에 있어서,
    상기 개시자는 애플리케이션 프로그램, 파일 시스템, 드라이버, 및 운영 시스템 유틸리티 중 하나 이상을 포함하는, 장치.
  22. 제 16 항 내지 제 19 항 중 어느 한 항에 있어서,
    상기 데이터는 상기 개시자로 발생하고 상기 개시자는 상기 호스트 장치 외부에 있는, 장치.
  23. 제 22 항에 있어서,
    상기 개시자는 상기 호스트 장치와 연결된 주변 장치로서 구현되는, 장치.
  24. 제 16 항에 있어서,
    상기 호스트 장치의 메모리는 동적 랜덤 액세스 메모리를 포함하고, 그리고 상기 메모리에서 기초 메모리 동작을 자율적으로 수행하도록 상기 호스트 장치의 메모리에 연관된 기능을 더 포함하는, 장치.
  25. 제 24 항에 있어서,
    상기 기초 메모리 동작은 특정한 복수의 메모리 위치를 특정한 값으로 설정하는 데이터 채우기 동작인, 장치.
  26. 제 24 항에 있어서,
    상기 기초 메모리 동작은 제1 특정한 복수의 메모리 위치를 제2 특정한 복수의 메모리 위치로 데이터를 이동시키는 데이터 이동 동작인, 장치.
  27. 제 26 항에 있어서,
    상기 데이터 이동 동작은 상기 제1 특정한 복수의 메모리 위치를 지정한 값으로 설정하는 단계를 더 포함하는, 장치.
  28. 제 16 항에 있어서,
    상기 데이터가 적어도 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분에 상주하는 동안, 상기 비휘발성 대량 메모리에 의해 사용되도록 할당된 메모리의 부분에 상주하는 데이터를 읽도록 읽기 명령에 응답하고, 상기 읽은 데이터를 상기 읽기 명령의 개시자에게 복사하는 것을 더 포함하는, 장치.
  29. 제 16 항에 있어서,
    현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 적어도 상기 비휘발성 대량 메모리에 의해 사용하기 위해 할당된 메모리 부분으로 이동시키는 것은 상기 비휘발성 대량 메모리와 연결된 컨트롤러에 의해 개시되는, 장치.
  30. 제 16 항 내지 제 29 항 중 어느 한 항에 있어서,
    상기 호스트 장치는 양방향 무선 통신을 수행하도록 구성된 모바일 장치를 포함하는, 장치.
  31. 적어도 하나의 데이터 프로세서 및 동적 랜덤 액세스 메모리로 이루어지는 적어도 하나의 메모리를 포함하는 데이터 처리 시스템을 제공하는 단계, 및 상기 메모리에서 기초 메모리 동작을 자율적으로 수행하는 단계를 포함하는, 방법.
  32. 제 31 항에 있어서,
    상기 기초 메모리 동작은 특정한 복수의 메모리 위치를 특정한 값으로 설정하는 데이터 채우기 동작인, 방법.
  33. 제 31 항에 있어서,
    상기 기초 메모리 동작은 제1 특정한 복수의 메모리 위치를 제2 특정한 복수의 메모리 위치로 데이터를 이동시키는 데이터 이동 동작인, 방법.
  34. 제 33 항에 있어서,
    상기 데이터 이동 동작은 상기 제1 특정한 복수의 메모리 위치를 지정한 값으로 설정하는 단계를 더 포함하는, 방법.
  35. 컨트롤러;
    상기 컨트롤러에 의해 읽기 및 쓰기가 가능한 비휘발성 대량 메모리; 및
    메모리 모듈을 호스트 장치에 연결하기 위한 인터페이스;를 포함하되,
    상기 컨트롤러는 개시자로부터 발생하는 명령을 수신하되, 여기서 상기 명령은 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 상기 비휘발성 대량 메모리에 쓰는 명령이고; 현재 상기 호스트 장치의 메모리에 상주하는 데이터를 원래 위치에서 최소한 상기 비휘발성 대량 메모리 모듈에 의해 사용하기 위해 할당된 메모리 부분으로 이동을 개시하고; 그리고 상기 데이터를 상기 비휘발성 대량 메모리에 작성하는 명령이 실행되었음을 개시자에게 알려주는 구조인, 메모리 모듈.
  36. 제 35 항에 있어서,
    상기 컨트롤러는 상기 데이터를 상기 비휘발성 대량 메모리 모듈에 쓰는 명령이 실행되었음을 알려준 후, 상기 호스트 장치의 메모리에서 상기 비휘발성 대량 메모리로 상기 데이터를 이동시키는 구조인, 메모리 모듈.
KR1020147019265A 2012-01-26 2013-01-02 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법 KR102127327B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020207018006A KR102317152B1 (ko) 2012-01-26 2013-01-02 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/358,806 2012-01-26
US13/358,806 US9417998B2 (en) 2012-01-26 2012-01-26 Apparatus and method to provide cache move with non-volatile mass memory system
PCT/FI2013/050001 WO2013110847A1 (en) 2012-01-26 2013-01-02 Apparatus and method to provide cache move with non-volatile mass memory system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207018006A Division KR102317152B1 (ko) 2012-01-26 2013-01-02 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140116408A true KR20140116408A (ko) 2014-10-02
KR102127327B1 KR102127327B1 (ko) 2020-06-29

Family

ID=48871320

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020207018006A KR102317152B1 (ko) 2012-01-26 2013-01-02 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법
KR1020227036487A KR20220143972A (ko) 2012-01-26 2013-01-02 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법
KR1020147019265A KR102127327B1 (ko) 2012-01-26 2013-01-02 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법
KR1020217033814A KR102458334B1 (ko) 2012-01-26 2013-01-02 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020207018006A KR102317152B1 (ko) 2012-01-26 2013-01-02 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법
KR1020227036487A KR20220143972A (ko) 2012-01-26 2013-01-02 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217033814A KR102458334B1 (ko) 2012-01-26 2013-01-02 캐시 이동을 비휘발성 대량 메모리 시스템에 제공하기 위한 장치 및 방법

Country Status (6)

Country Link
US (4) US9417998B2 (ko)
EP (2) EP3493066B1 (ko)
JP (3) JP6193886B2 (ko)
KR (4) KR102317152B1 (ko)
CN (2) CN108470007B (ko)
WO (1) WO2013110847A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11262936B2 (en) 2015-10-30 2022-03-01 Sony Corporation Memory controller, storage device, information processing system, and memory control method

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156415B1 (en) * 2007-12-26 2012-04-10 Marvell International Ltd. Method and system for command queuing in disk drives
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8370717B1 (en) 2008-04-08 2013-02-05 Marvell International Ltd. Method and apparatus for flexible buffers in an XOR engine
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US9081665B2 (en) * 2012-02-02 2015-07-14 OCZ Storage Solutions Inc. Apparatus, methods and architecture to increase write performance and endurance of non-volatile solid state memory components
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
TWI459201B (zh) * 2012-04-27 2014-11-01 Toshiba Kk Information processing device
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
JP6191021B2 (ja) * 2013-02-20 2017-09-06 パナソニックIpマネジメント株式会社 アクセス装置、情報記録装置およびアクセスシステム
BR122016006765B1 (pt) * 2013-03-15 2022-02-01 Intel Corporation Aparelho acoplado ao módulo de memória, sistema de memória e método
KR20150041873A (ko) * 2013-10-10 2015-04-20 에스케이하이닉스 주식회사 데이터 처리 시스템
US9880971B2 (en) 2013-12-20 2018-01-30 Rambus Inc. Memory appliance for accessing memory
US9092362B1 (en) * 2014-03-13 2015-07-28 NXGN Data, Inc. Programmable data write management system and method for operating the same in a solid state drive
US10824335B2 (en) 2014-07-14 2020-11-03 Western Digital Technologies, Inc. Device and method to store predicted data at a host memory
US9767045B2 (en) 2014-08-29 2017-09-19 Memory Technologies Llc Control for authenticated accesses to a memory device
JP6248921B2 (ja) * 2014-12-22 2017-12-20 ソニー株式会社 メモリコントローラ、記憶装置、および、情報処理システム
US10101918B2 (en) * 2015-01-21 2018-10-16 Sandisk Technologies Llc Systems and methods for generating hint information associated with a host command
CN107430879B (zh) * 2015-05-08 2020-07-21 桑迪士克科技有限责任公司 非易失性储存装置的数据映射
KR102337044B1 (ko) * 2015-07-27 2021-12-09 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10203888B2 (en) * 2015-12-18 2019-02-12 Intel Corporation Technologies for performing a data copy operation on a data storage device with a power-fail-safe data structure
CN107515723B (zh) * 2016-06-16 2020-04-24 伊姆西Ip控股有限责任公司 用于管理存储系统中的存储器的方法和系统
US10559344B2 (en) * 2016-09-16 2020-02-11 Aspiring Sky Co. Limited Hybrid non-volatile memory devices with static random access memory (SRAM) array and non-volatile memory (NVM) array
US10304418B2 (en) * 2016-09-27 2019-05-28 Intel Corporation Operating system transparent system memory abandonment
US10785301B2 (en) * 2017-08-03 2020-09-22 Toshiba Memory Corporation NVM express over fabrics
US10620870B2 (en) 2017-12-08 2020-04-14 Intel Corporation Data storage device with bytewise copy
WO2019146497A1 (ja) 2018-01-24 2019-08-01 株式会社Nttドコモ ユーザ端末及び無線通信方法
US10782916B2 (en) * 2018-08-08 2020-09-22 Micron Technology, Inc. Proactive return of write credits in a memory system
US10910048B1 (en) * 2020-01-16 2021-02-02 Micron Technology, Inc. Extended memory communication
US11287987B2 (en) 2020-03-04 2022-03-29 Micron Technology, Inc. Coherency locking schemes
WO2022027578A1 (en) * 2020-08-07 2022-02-10 Micron Technology, Inc. Memory overlay using host memory buffer
US11449419B2 (en) * 2020-08-17 2022-09-20 Micron Technology, Inc. Disassociating memory units with a host system
US11733884B2 (en) * 2021-03-19 2023-08-22 Micron Technology, Inc. Managing storage reduction and reuse with failing multi-level memory cells
CN113760189B (zh) * 2021-08-19 2024-04-09 上海卫星工程研究所 载荷数据填充存储方法和系统
CN117931720A (zh) * 2024-03-22 2024-04-26 南京大学 基于局部总线结构改进的串行总线及数据交互方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161882A1 (en) * 2008-12-18 2010-06-24 Ori Moshe Stern Methods for Executing a Command to Write Data from a Source Location to a Destination Location in a Memory Device
US20100250836A1 (en) * 2009-03-25 2010-09-30 Anobit Technologies Ltd Use of Host System Resources by Memory Controller
US20100312947A1 (en) * 2009-06-04 2010-12-09 Nokia Corporation Apparatus and method to share host system ram with mass storage memory ram

Family Cites Families (220)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1293819C (en) 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
JPS6464073A (en) 1987-09-03 1989-03-09 Minolta Camera Kk Image memory
JP2661224B2 (ja) 1988-12-23 1997-10-08 株式会社リコー メモリ増設方式
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
JP3038781B2 (ja) 1989-04-21 2000-05-08 日本電気株式会社 メモリアクセス制御回路
US5680570A (en) 1991-06-12 1997-10-21 Quantum Corporation Memory system with dynamically allocatable non-volatile storage capability
JP3407317B2 (ja) * 1991-11-28 2003-05-19 株式会社日立製作所 フラッシュメモリを使用した記憶装置
WO1993018461A1 (en) * 1992-03-09 1993-09-16 Auspex Systems, Inc. High-performance non-volatile ram protected write cache accelerator system
CN1287377C (zh) 1994-06-07 2006-11-29 日立环球储存科技日本有限公司 对多种运作模式进行选择后进行记录/再生的信息存储设备
US5710931A (en) 1994-09-07 1998-01-20 Canon Kabushiki Kaisha Suspension state control for information processing devices such as battery powered computers
JP3687115B2 (ja) 1994-10-27 2005-08-24 ソニー株式会社 再生装置
JPH08161216A (ja) * 1994-12-09 1996-06-21 Toshiba Corp メモリ高速クリア機能を持つ情報処理装置
US5586291A (en) * 1994-12-23 1996-12-17 Emc Corporation Disk controller with volatile and non-volatile cache memories
EP0749063A3 (en) 1995-06-07 1999-01-13 International Business Machines Corporation Method and apparatus for suspend/resume operation in a computer
IT235879Y1 (it) 1995-06-14 2000-07-18 Olivetti & Co Spa Tastiera per l'introduzione di dati con posizionatore di traccia
US6393492B1 (en) 1995-11-03 2002-05-21 Texas Instruments Incorporated Method and arrangement for operating a mass memory storage peripheral computer device connected to a host computer
US5802069A (en) * 1995-11-13 1998-09-01 Intel Corporation Implementing mass storage device functions using host processor memory
US5822553A (en) 1996-03-13 1998-10-13 Diamond Multimedia Systems, Inc. Multiple parallel digital data stream channel controller architecture
US5838873A (en) 1996-05-31 1998-11-17 Thomson Consumer Electronics, Inc. Packetized data formats for digital data storage media
US5805882A (en) 1996-07-19 1998-09-08 Compaq Computer Corporation Computer system and method for replacing obsolete or corrupt boot code contained within reprogrammable memory with new boot code supplied from an external source through a data port
US5933626A (en) 1997-06-12 1999-08-03 Advanced Micro Devices, Inc. Apparatus and method for tracing microprocessor instructions
US6226710B1 (en) 1997-11-14 2001-05-01 Utmc Microelectronic Systems Inc. Content addressable memory (CAM) engine
JP4310821B2 (ja) 1997-12-24 2009-08-12 ソニー株式会社 情報記録装置および方法
JP3990485B2 (ja) 1997-12-26 2007-10-10 株式会社ルネサステクノロジ 半導体不揮発性記憶装置
JPH11259357A (ja) * 1998-03-09 1999-09-24 Seiko Epson Corp 半導体集積装置及び不揮発性メモリ書き込み方式
US6173425B1 (en) 1998-04-15 2001-01-09 Integrated Device Technology, Inc. Methods of testing integrated circuits to include data traversal path identification information and related status information in test data streams
US6067300A (en) * 1998-06-11 2000-05-23 Cabletron Systems, Inc. Method and apparatus for optimizing the transfer of data packets between local area networks
JP2000057039A (ja) 1998-08-03 2000-02-25 Canon Inc アクセス制御方法及び装置及びファイルシステム及び情報処理装置
US6721288B1 (en) 1998-09-16 2004-04-13 Openwave Systems Inc. Wireless mobile devices having improved operation during network unavailability
EP1125290A4 (en) 1998-09-28 2007-01-17 Squared G Inc T MULTI-BYBASS MASS MEMORY / MEMORY SYSTEM WITH OPTIONAL ACCESS
US6279114B1 (en) 1998-11-04 2001-08-21 Sandisk Corporation Voltage negotiation in a single host multiple cards system
JP2001006379A (ja) 1999-06-16 2001-01-12 Fujitsu Ltd 複写、移動機能を有するフラッシュメモリ
US7889544B2 (en) 2004-04-05 2011-02-15 Super Talent Electronics, Inc. High-speed controller for phase-change memory peripheral device
US6513094B1 (en) * 1999-08-23 2003-01-28 Advanced Micro Devices, Inc. ROM/DRAM data bus sharing with write buffer and read prefetch activity
JP2001067786A (ja) 1999-08-30 2001-03-16 Matsushita Electric Ind Co Ltd 記録再生装置
US6757797B1 (en) * 1999-09-30 2004-06-29 Fujitsu Limited Copying method between logical disks, disk-storage system and its storage medium
US6665747B1 (en) 1999-10-22 2003-12-16 Sun Microsystems, Inc. Method and apparatus for interfacing with a secondary storage system
WO2001035200A1 (en) 1999-11-09 2001-05-17 Advanced Micro Devices, Inc. Dynamically adjusting a processor's operational parameters according to its environment
US7552251B2 (en) * 2003-12-02 2009-06-23 Super Talent Electronics, Inc. Single-chip multi-media card/secure digital (MMC/SD) controller reading power-on boot code from integrated flash memory for user storage
US20060075395A1 (en) 2004-10-01 2006-04-06 Lee Charles C Flash card system
US6609182B1 (en) 2000-01-20 2003-08-19 Microsoft Corporation Smart hibernation on an operating system with page translation
JP3955712B2 (ja) 2000-03-03 2007-08-08 株式会社ルネサステクノロジ 半導体装置
US6785764B1 (en) 2000-05-11 2004-08-31 Micron Technology, Inc. Synchronous flash memory with non-volatile mode register
US20020000931A1 (en) 2000-04-14 2002-01-03 Mark Petronic User interface for a two-way satellite communication system
JP2002023962A (ja) 2000-07-07 2002-01-25 Fujitsu Ltd ディスク装置及び制御方法
US6721843B1 (en) 2000-07-07 2004-04-13 Lexar Media, Inc. Flash memory architecture implementing simultaneously programmable multiple flash memory banks that are host compatible
JP3965874B2 (ja) 2000-07-17 2007-08-29 セイコーエプソン株式会社 記録媒体に二液を用いて印刷する記録方法、この記録方法によって印刷された記録物、およびこの記録方法を実行する手段を備えた記録装置
US6804763B1 (en) 2000-10-17 2004-10-12 Igt High performance battery backed ram interface
US6801994B2 (en) * 2000-12-20 2004-10-05 Microsoft Corporation Software management systems and methods for automotive computing devices
US6510488B2 (en) 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
US6779045B2 (en) * 2001-03-21 2004-08-17 Intel Corporation System and apparatus for increasing the number of operations per transmission for a media management system
US6990571B2 (en) 2001-04-25 2006-01-24 Intel Corporation Method for memory optimization in a digital signal processor
US6732221B2 (en) * 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
US7668276B2 (en) * 2001-10-22 2010-02-23 Rambus Inc. Phase adjustment apparatus and method for a memory device signaling system
JP2003150445A (ja) * 2001-11-13 2003-05-23 Fujitsu Ltd 外部記憶装置を有するコンピュータシステム
US6842829B1 (en) * 2001-12-06 2005-01-11 Lsi Logic Corporation Method and apparatus to manage independent memory systems as a shared volume
US6754129B2 (en) 2002-01-24 2004-06-22 Micron Technology, Inc. Memory module with integrated bus termination
US7085866B1 (en) 2002-02-19 2006-08-01 Hobson Richard F Hierarchical bus structure and memory access protocol for multiprocessor systems
FI115562B (fi) 2002-03-27 2005-05-31 Nokia Corp Menetelmä ja järjestelmä tehonkulutuksen määrittämiseksi elektroniikkalaitteen yhteydessä ja elektroniikkalaite
US6892311B2 (en) 2002-05-08 2005-05-10 Dell Usa, L.P. System and method for shutting down a host and storage enclosure if the status of the storage enclosure is in a first condition and is determined that the storage enclosure includes a critical storage volume
AU2002304404A1 (en) 2002-05-31 2003-12-19 Nokia Corporation Method and memory adapter for handling data of a mobile device using non-volatile memory
JP2004062928A (ja) 2002-07-25 2004-02-26 Hitachi Ltd 磁気ディスク装置及び記憶システム
JP4111789B2 (ja) 2002-09-13 2008-07-02 富士通株式会社 半導体記憶装置の制御方法及び半導体記憶装置
US6901298B1 (en) 2002-09-30 2005-05-31 Rockwell Automation Technologies, Inc. Saving and restoring controller state and context in an open operating system
US7366818B2 (en) * 2002-10-08 2008-04-29 Koninklijke Philips Electronics N.V. Integrated circuit comprising a plurality of processing modules and a network and method for exchanging data using same
US20040088474A1 (en) 2002-10-30 2004-05-06 Lin Jin Shin NAND type flash memory disk device and method for detecting the logical address
KR20100072068A (ko) 2002-10-31 2010-06-29 링 테크노로지 엔터프라이즈, 엘엘씨 스토리지 시스템에 관한 방법 및 시스템
US7949777B2 (en) 2002-11-01 2011-05-24 Avid Technology, Inc. Communication protocol for controlling transfer of temporal data over a bus between devices in synchronization with a periodic reference signal
US7290093B2 (en) 2003-01-07 2007-10-30 Intel Corporation Cache memory to support a processor's power mode of operation
US7181574B1 (en) 2003-01-30 2007-02-20 Veritas Operating Corporation Server cluster using informed prefetching
TWI220733B (en) * 2003-02-07 2004-09-01 Ind Tech Res Inst System and a method for stack-caching method frames
FI117489B (fi) 2003-02-07 2006-10-31 Nokia Corp Menetelmä muistikortin osoittamiseksi, muistikorttia käyttävä järjestelmä, ja muistikortti
CN100458978C (zh) 2003-03-19 2009-02-04 Nxp股份有限公司 具有简档存储单元的通用存储器件
US7233335B2 (en) 2003-04-21 2007-06-19 Nividia Corporation System and method for reserving and managing memory spaces in a memory resource
US6981123B2 (en) 2003-05-22 2005-12-27 Seagate Technology Llc Device-managed host buffer
US7822105B2 (en) 2003-09-02 2010-10-26 Sirf Technology, Inc. Cross-correlation removal of carrier wave jamming signals
US20050071570A1 (en) * 2003-09-26 2005-03-31 Takasugl Robin Alexis Prefetch controller for controlling retrieval of data from a data storage device
US7321958B2 (en) * 2003-10-30 2008-01-22 International Business Machines Corporation System and method for sharing memory by heterogeneous processors
US7120766B2 (en) * 2003-12-22 2006-10-10 Inernational Business Machines Corporation Apparatus and method to initialize information disposed in an information storage and retrieval system
US20050204113A1 (en) 2004-03-09 2005-09-15 International Business Machines Corp. Method, system and storage medium for dynamically selecting a page management policy for a memory controller
JP4402997B2 (ja) 2004-03-26 2010-01-20 株式会社日立製作所 ストレージ装置
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
JP2005309653A (ja) 2004-04-20 2005-11-04 Hitachi Global Storage Technologies Netherlands Bv ディスク装置及びキャッシュ制御方法
JP4740234B2 (ja) * 2004-04-26 2011-08-03 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 集積回路及びトランザクション発信方法
US7877569B2 (en) 2004-04-28 2011-01-25 Panasonic Corporation Reduction of fragmentation in nonvolatile memory using alternate address mapping
US7480749B1 (en) * 2004-05-27 2009-01-20 Nvidia Corporation Main memory as extended disk buffer memory
US7958292B2 (en) 2004-06-23 2011-06-07 Marvell World Trade Ltd. Disk drive system on chip with integrated buffer memory and support for host memory access
JP4768237B2 (ja) * 2004-06-25 2011-09-07 株式会社東芝 携帯可能電子装置及び携帯可能電子装置の制御方法
US7380095B2 (en) 2004-06-30 2008-05-27 Intel Corporation System and method for simulating real-mode memory access with access to extended memory
US8490102B2 (en) 2004-07-29 2013-07-16 International Business Machines Corporation Resource allocation management using IOC token requestor logic
US8843727B2 (en) * 2004-09-30 2014-09-23 Intel Corporation Performance enhancement of address translation using translation tables covering large address spaces
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation
CN101111825A (zh) * 2004-12-06 2008-01-23 Teac宇航技术公司 擦除非易失性记录介质的系统和方法
US20060120235A1 (en) * 2004-12-06 2006-06-08 Teac Aerospace Technologies System and method of erasing non-volatile recording media
US20060119602A1 (en) * 2004-12-07 2006-06-08 Fisher Andrew J Address based graphics protocol
US7243173B2 (en) 2004-12-14 2007-07-10 Rockwell Automation Technologies, Inc. Low protocol, high speed serial transfer for intra-board or inter-board data communication
US7275140B2 (en) 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
KR100706246B1 (ko) 2005-05-24 2007-04-11 삼성전자주식회사 읽기 성능을 향상시킬 수 있는 메모리 카드
JP2006343923A (ja) 2005-06-08 2006-12-21 Fujitsu Ltd ディスク記録装置
US20060288130A1 (en) * 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US7610445B1 (en) * 2005-07-18 2009-10-27 Palm, Inc. System and method for improving data integrity and memory performance using non-volatile media
US7571295B2 (en) 2005-08-04 2009-08-04 Intel Corporation Memory manager for heterogeneous memory control
JP4305429B2 (ja) 2005-08-18 2009-07-29 トヨタ自動車株式会社 インホイールサスペンション
JP2007052717A (ja) 2005-08-19 2007-03-01 Fujitsu Ltd データ転送装置およびデータ転送方法
JP4685567B2 (ja) 2005-09-15 2011-05-18 株式会社日立製作所 情報処理装置によるサービス提供システム
KR100673013B1 (ko) * 2005-09-21 2007-01-24 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템
CN107358974A (zh) 2005-09-30 2017-11-17 考文森智财管理公司 多个独立的串行链接存储器
JP4903415B2 (ja) * 2005-10-18 2012-03-28 株式会社日立製作所 記憶制御システム及び記憶制御方法
US7783845B2 (en) 2005-11-14 2010-08-24 Sandisk Corporation Structures for the management of erase operations in non-volatile memories
JP2007156597A (ja) 2005-12-01 2007-06-21 Hitachi Ltd ストレージ装置
US20070136523A1 (en) 2005-12-08 2007-06-14 Bonella Randy M Advanced dynamic disk memory module special operations
US20070147115A1 (en) 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7492368B1 (en) 2006-01-24 2009-02-17 Nvidia Corporation Apparatus, system, and method for coalescing parallel memory requests
US20070226795A1 (en) 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
JP4167695B2 (ja) 2006-03-28 2008-10-15 株式会社Snkプレイモア 遊技機
US7925860B1 (en) 2006-05-11 2011-04-12 Nvidia Corporation Maximized memory throughput using cooperative thread arrays
KR101392609B1 (ko) 2006-05-23 2014-05-08 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 직렬로 상호접속된 장치에 대해 장치 식별자를 확립하는 기기 및 방법
US7753281B2 (en) * 2006-06-01 2010-07-13 Hewlett-Packard Development Company, L.P. System and method of updating a first version of a data file in a contactless flash memory device
JP4182993B2 (ja) 2006-06-30 2008-11-19 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TWI349289B (en) 2006-07-31 2011-09-21 Toshiba Kk Nonvolatile memory system, data read/write method for nonvolatile memory system, data read method for memory system, and data write method for memory system
US9798528B2 (en) 2006-09-13 2017-10-24 International Business Machines Corporation Software solution for cooperative memory-side and processor-side data prefetching
US20080081609A1 (en) 2006-09-29 2008-04-03 Motorola, Inc. Method and system for associating a user profile to a sim card
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
TWM317043U (en) 2006-12-27 2007-08-11 Genesys Logic Inc Cache device of the flash memory address transformation layer
TWI530791B (zh) 2007-01-10 2016-04-21 木比爾半導體股份有限公司 用於改善外部計算裝置效能的調適性記憶體系統
KR100849182B1 (ko) 2007-01-22 2008-07-30 삼성전자주식회사 반도체 카드 패키지 및 그 제조방법
US8312559B2 (en) 2007-01-26 2012-11-13 Hewlett-Packard Development Company, L.P. System and method of wireless security authentication
KR100881052B1 (ko) 2007-02-13 2009-01-30 삼성전자주식회사 플래시 메모리의 매핑 테이블 검색 시스템 및 그에 따른검색방법
US20080235477A1 (en) * 2007-03-19 2008-09-25 Rawson Andrew R Coherent data mover
JP2008250961A (ja) 2007-03-30 2008-10-16 Nec Corp 記憶媒体の制御装置、データ記憶装置、データ記憶システム、方法、及び制御プログラム
CA2686313C (en) * 2007-05-07 2012-10-02 Vorne Industries, Inc. Method and system for extending the capabilities of embedded devices through network clients
US9396103B2 (en) * 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
JP5220747B2 (ja) * 2007-07-31 2013-06-26 パナソニック株式会社 不揮発性記憶装置および不揮発性記憶システム
US8166238B2 (en) 2007-10-23 2012-04-24 Samsung Electronics Co., Ltd. Method, device, and system for preventing refresh starvation in shared memory bank
US7730248B2 (en) 2007-12-13 2010-06-01 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems and processes
US8185685B2 (en) * 2007-12-14 2012-05-22 Hitachi Global Storage Technologies Netherlands B.V. NAND flash module replacement for DRAM module
EP2225643B1 (en) * 2007-12-28 2020-05-06 Toshiba Memory Corporation Semiconductor storage device
US8892831B2 (en) * 2008-01-16 2014-11-18 Apple Inc. Memory subsystem hibernation
EP2274676A1 (en) * 2008-01-31 2011-01-19 Oracle International Corporation System and method for transactional cache
US8332572B2 (en) * 2008-02-05 2012-12-11 Spansion Llc Wear leveling mechanism using a DRAM buffer
US8209463B2 (en) 2008-02-05 2012-06-26 Spansion Llc Expansion slots for flash memory based random access memory subsystem
US8180975B2 (en) 2008-02-26 2012-05-15 Microsoft Corporation Controlling interference in shared memory systems using parallelism-aware batch scheduling
JP4672742B2 (ja) 2008-02-27 2011-04-20 株式会社東芝 メモリコントローラおよびメモリシステム
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
JP4643667B2 (ja) 2008-03-01 2011-03-02 株式会社東芝 メモリシステム
US8775718B2 (en) 2008-05-23 2014-07-08 Netapp, Inc. Use of RDMA to access non-volatile solid-state memory in a network storage system
KR101456976B1 (ko) * 2008-06-09 2014-11-03 삼성전자 주식회사 메모리 테스트 디바이스 및 메모리 테스트 방법
US8099522B2 (en) 2008-06-09 2012-01-17 International Business Machines Corporation Arrangements for I/O control in a virtualized system
EP2304571A1 (en) * 2008-06-17 2011-04-06 Nxp B.V. Multiprocessor system with mixed software hardware controlled cache management
US9223642B2 (en) * 2013-03-15 2015-12-29 Super Talent Technology, Corp. Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance
US8166229B2 (en) 2008-06-30 2012-04-24 Intel Corporation Apparatus and method for multi-level cache utilization
US8139430B2 (en) * 2008-07-01 2012-03-20 International Business Machines Corporation Power-on initialization and test for a cascade interconnect memory system
WO2010020992A1 (en) * 2008-08-21 2010-02-25 Xsignnet Ltd. Storage system and method of operating thereof
CN101667103B (zh) 2008-09-01 2011-05-04 智微科技股份有限公司 磁盘阵列5控制器及存取方法
US8103830B2 (en) 2008-09-30 2012-01-24 Intel Corporation Disabling cache portions during low voltage operations
US8181046B2 (en) * 2008-10-29 2012-05-15 Sandisk Il Ltd. Transparent self-hibernation of non-volatile memory system
US8639874B2 (en) 2008-12-22 2014-01-28 International Business Machines Corporation Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
CN101571835B (zh) * 2009-03-26 2011-01-26 浙江大学 基于程序的需求来改变Cache组相联度的实现方法
DE112009004621B4 (de) * 2009-05-04 2018-08-23 Hewlett-Packard Development Company, L.P. Speichervorrichtungs-LöschbefehI mit einem Steuerfeld, das durch eine Anforderer-Vorrichtung steuerbar ist
US8806144B2 (en) * 2009-05-12 2014-08-12 Stec, Inc. Flash storage device with read cache
US8250282B2 (en) 2009-05-14 2012-08-21 Micron Technology, Inc. PCM memories for storage bus interfaces
US8180981B2 (en) * 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
US8533437B2 (en) * 2009-06-01 2013-09-10 Via Technologies, Inc. Guaranteed prefetch instruction
US8244981B2 (en) * 2009-07-10 2012-08-14 Apple Inc. Combined transparent/non-transparent cache
JP2011022657A (ja) * 2009-07-13 2011-02-03 Fujitsu Ltd メモリシステムおよび情報処理装置
JP2011028537A (ja) * 2009-07-27 2011-02-10 Buffalo Inc 外部記憶装置へのアクセスを高速化する方法および外部記憶システム
US8266481B2 (en) * 2009-07-29 2012-09-11 Stec, Inc. System and method of wear-leveling in flash storage
WO2011013350A1 (ja) * 2009-07-29 2011-02-03 パナソニック株式会社 メモリ装置、ホスト装置およびメモリシステム
US8453021B2 (en) * 2009-07-29 2013-05-28 Stec, Inc. Wear leveling in solid-state device
JP2011039849A (ja) * 2009-08-12 2011-02-24 Canon Inc 情報処理装置及びその制御方法、並びにプログラム
US8667225B2 (en) 2009-09-11 2014-03-04 Advanced Micro Devices, Inc. Store aware prefetching for a datastream
US9952977B2 (en) 2009-09-25 2018-04-24 Nvidia Corporation Cache operations and policies for a multi-threaded client
US9003159B2 (en) 2009-10-05 2015-04-07 Marvell World Trade Ltd. Data caching in non-volatile memory
JP2011082911A (ja) * 2009-10-09 2011-04-21 Sony Corp 周辺機器および機器接続システム
JP5526697B2 (ja) * 2009-10-14 2014-06-18 ソニー株式会社 ストレージ装置およびメモリシステム
KR101602939B1 (ko) 2009-10-16 2016-03-15 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
US8452946B2 (en) * 2009-12-17 2013-05-28 Intel Corporation Methods and apparatuses for efficient load processing using buffers
US8255617B2 (en) 2010-01-26 2012-08-28 Seagate Technology Llc Maintaining data integrity in a data storage device
US8364886B2 (en) 2010-01-26 2013-01-29 Seagate Technology Llc Verifying whether metadata identifies a most current version of stored data in a memory space
US9128718B1 (en) 2010-03-29 2015-09-08 Amazon Technologies, Inc. Suspend using internal rewriteable memory
US8291172B2 (en) 2010-04-27 2012-10-16 Via Technologies, Inc. Multi-modal data prefetcher
JP4988007B2 (ja) * 2010-05-13 2012-08-01 株式会社東芝 情報処理装置およびドライバ
WO2011148223A1 (en) * 2010-05-27 2011-12-01 Sandisk Il Ltd Memory management storage to a host device
KR101734204B1 (ko) 2010-06-01 2017-05-12 삼성전자주식회사 프로그램 시퀀서를 포함하는 플래시 메모리 장치 및 시스템, 그리고 그것의 프로그램 방법
US8397101B2 (en) 2010-06-03 2013-03-12 Seagate Technology Llc Ensuring a most recent version of data is recovered from a memory
US8826051B2 (en) 2010-07-26 2014-09-02 Apple Inc. Dynamic allocation of power budget to a system having non-volatile memory and a processor
US8938574B2 (en) 2010-10-26 2015-01-20 Lsi Corporation Methods and systems using solid-state drives as storage controller cache memory
TWI417727B (zh) * 2010-11-22 2013-12-01 Phison Electronics Corp 記憶體儲存裝置、其記憶體控制器與回應主機指令的方法
WO2012082792A2 (en) * 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
GB2486738B (en) 2010-12-24 2018-09-19 Qualcomm Technologies Int Ltd Instruction execution
US20120179874A1 (en) 2011-01-07 2012-07-12 International Business Machines Corporation Scalable cloud storage architecture
US20120209413A1 (en) 2011-02-14 2012-08-16 Microsoft Corporation Background Audio on Mobile Devices
US8694764B2 (en) 2011-02-24 2014-04-08 Microsoft Corporation Multi-phase resume from hibernate
CN102156629A (zh) * 2011-05-04 2011-08-17 苏州国芯科技有限公司 32位指令扩展的方法
US8706955B2 (en) 2011-07-01 2014-04-22 Apple Inc. Booting a memory device from a host
US9645758B2 (en) 2011-07-22 2017-05-09 Sandisk Technologies Llc Apparatus, system, and method for indexing data of an append-only, log-based structure
US9141394B2 (en) 2011-07-29 2015-09-22 Marvell World Trade Ltd. Switching between processor cache and random-access memory
JP5762930B2 (ja) * 2011-11-17 2015-08-12 株式会社東芝 情報処理装置および半導体記憶装置
TWI521343B (zh) 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
WO2012149728A1 (zh) * 2011-09-06 2012-11-08 华为技术有限公司 一种数据删除方法及装置
US8719464B2 (en) * 2011-11-30 2014-05-06 Advanced Micro Device, Inc. Efficient memory and resource management
US20130145055A1 (en) * 2011-12-02 2013-06-06 Andrew Kegel Peripheral Memory Management
US9829951B2 (en) 2011-12-13 2017-11-28 Intel Corporation Enhanced system sleep state support in servers using non-volatile random access memory
DE112011105984T5 (de) 2011-12-20 2014-09-18 Intel Corporation Dynamische teilweise Abschaltung eines arbeitsspeicherseitigen Zwischenspeichers in einer Arbeitsspeicherhierarchie auf zwei Ebenen
US9069551B2 (en) 2011-12-22 2015-06-30 Sandisk Technologies Inc. Systems and methods of exiting hibernation in response to a triggering event
US8879346B2 (en) 2011-12-30 2014-11-04 Intel Corporation Mechanisms for enabling power management of embedded dynamic random access memory on a semiconductor integrated circuit package
CN102609378B (zh) 2012-01-18 2016-03-30 中国科学院计算技术研究所 一种消息式内存访问装置及其访问方法
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
JP2014044490A (ja) 2012-08-24 2014-03-13 Toshiba Corp ホスト装置及びメモリデバイス
US9116820B2 (en) 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
EP2923358A4 (en) 2012-11-20 2016-06-29 Charles I Peddle SSD ARCHITECTURES
US9229854B1 (en) * 2013-01-28 2016-01-05 Radian Memory Systems, LLC Multi-array operation support and related devices, systems and software
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR102074329B1 (ko) 2013-09-06 2020-02-06 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 처리 방법
US10248587B2 (en) * 2013-11-08 2019-04-02 Sandisk Technologies Llc Reduced host data command processing
WO2015089488A1 (en) 2013-12-12 2015-06-18 Memory Technologies Llc Channel optimized storage modules
CN103761988B (zh) * 2013-12-27 2018-01-16 华为技术有限公司 固态硬盘及数据移动方法
US10249351B2 (en) * 2016-11-06 2019-04-02 Intel Corporation Memory device with flexible internal data write control circuitry
KR20180055297A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 언맵 리드를 수행하는 메모리 장치 및 메모리 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100161882A1 (en) * 2008-12-18 2010-06-24 Ori Moshe Stern Methods for Executing a Command to Write Data from a Source Location to a Destination Location in a Memory Device
US20100250836A1 (en) * 2009-03-25 2010-09-30 Anobit Technologies Ltd Use of Host System Resources by Memory Controller
US20100312947A1 (en) * 2009-06-04 2010-12-09 Nokia Corporation Apparatus and method to share host system ram with mass storage memory ram

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11262936B2 (en) 2015-10-30 2022-03-01 Sony Corporation Memory controller, storage device, information processing system, and memory control method

Also Published As

Publication number Publication date
EP2795470B1 (en) 2019-03-06
US10877665B2 (en) 2020-12-29
JP2015511350A (ja) 2015-04-16
JP2019061699A (ja) 2019-04-18
US20210191618A1 (en) 2021-06-24
EP2795470A4 (en) 2015-09-30
EP3493066A1 (en) 2019-06-05
US9417998B2 (en) 2016-08-16
KR102317152B1 (ko) 2021-10-27
JP2018022497A (ja) 2018-02-08
KR20210130829A (ko) 2021-11-01
KR20200079558A (ko) 2020-07-03
CN108470007A (zh) 2018-08-31
EP3493066B1 (en) 2023-03-01
EP2795470A1 (en) 2014-10-29
US20170038975A1 (en) 2017-02-09
CN108470007B (zh) 2022-06-17
JP6442009B2 (ja) 2018-12-19
US20240152274A1 (en) 2024-05-09
US20130198434A1 (en) 2013-08-01
JP6193886B2 (ja) 2017-09-06
KR102127327B1 (ko) 2020-06-29
WO2013110847A1 (en) 2013-08-01
KR20220143972A (ko) 2022-10-25
CN104081366B (zh) 2018-03-27
KR102458334B1 (ko) 2022-10-24
CN104081366A (zh) 2014-10-01
US11797180B2 (en) 2023-10-24
JP6817273B2 (ja) 2021-01-20

Similar Documents

Publication Publication Date Title
US11797180B2 (en) Apparatus and method to provide cache move with non-volatile mass memory system
US11733869B2 (en) Apparatus and method to share host system RAM with mass storage memory RAM
US11782647B2 (en) Managing operational state data in memory module
US20230297271A1 (en) Nand-based storage device with partitioned nonvolatile write buffer
KR20210038313A (ko) 레이턴시에 중점을 둔 판독 동작과 대역폭에 중점을 둔 판독 동작 사이의 동적 변경
WO2013192633A2 (en) Virtual memory module

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant