KR101469512B1 - 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템 - Google Patents

외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템 Download PDF

Info

Publication number
KR101469512B1
KR101469512B1 KR1020097016681A KR20097016681A KR101469512B1 KR 101469512 B1 KR101469512 B1 KR 101469512B1 KR 1020097016681 A KR1020097016681 A KR 1020097016681A KR 20097016681 A KR20097016681 A KR 20097016681A KR 101469512 B1 KR101469512 B1 KR 101469512B1
Authority
KR
South Korea
Prior art keywords
memory
data
memory type
sequence
cache
Prior art date
Application number
KR1020097016681A
Other languages
English (en)
Other versions
KR20090108707A (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 KR20090108707A publication Critical patent/KR20090108707A/ko
Application granted granted Critical
Publication of KR101469512B1 publication Critical patent/KR101469512B1/ko

Links

Images

Classifications

    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • 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/22Employing cache memory using specific memory technology
    • G06F2212/225Hybrid cache memory, e.g. having both volatile and non-volatile portions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/602Details relating to cache prefetching
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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

Abstract

외부 컴퓨팅 디바이스의 성능을 개선시키기 위한 어댑티브 메모리 시스템이 제공된다. 어댑티브 메모리 시스템은 단일 컨트롤러, 제 1 메모리 유형(예를 들면 정적 랜덤 액세스 메모리 또는 SRAM), 제 2 메모리 유형(예를 들면, 동적 랜덤 액세스 메모리 또는 DRAM), 제 3 메모리 유형(예를 들면 플래시), 내부 버스 시스템, 및 외부 버스 인터페이스를 포함한다. 단일 컨트롤러는 (ⅰ)내부 버스 시스템을 이용하여 3 가지 메모리 유형 모두와 통신하고; (ⅱ) 외부 버스 인터페이스를 이용하여 외부 컴퓨팅 디바이스와 통신하고; 및 (ⅲ) 제 1 메모리 유형 내의 스토리지 공간에 캐시-데이터 스토리지 할당을 하고, 제 1 메모리 유형 내의 스토리지 공간이 채워진 것으로 판정된 후에, 캐시-데이터 스토리지 할당을 제 2 메모리 유형 내의 스토리지 공간에 할당; 하도록 설정된다.
단일 컨트롤러, 제 1 메모리 유형, 제 2 메모리 유형, 제 3 메모리 유형, 내부 버스 시스템, 외부 버스 인터페이스, 외부 컴퓨팅 디바이스, 어댑티브 메모리 시스템, 캐시 데이터 스토리지 할당, 스토리지 공간

Description

외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템{ADAPTIVE MEMORY SYSTEM FOR ENHANCING THE PERFORMANCE OF AN EXTERNAL COMPUTING DEVICE}
본 발명은 메모리 시스템에 관한 것으로, 특히 외부 컴퓨팅 디바이스의 성능을 개선시키기 위한 어댑티브 메모리 시스템에 관한 것이다.
현대 컴퓨팅 디바이스는 일반적으로 상이한 엔드 애플리케이션을 지원하는 데에 필요한 다수의 상이한 유형의 내부 메모리 컴포넌트를 구비한다. 이러한 메모리 컴포넌트와 그의 연관된 특성은 컴퓨팅 디바이스의 성능이 측정될 수 있는 중요한 측정수단의 일부이다. 현대 컴퓨팅 디바이스는 대개 PCI 버스, 방화벽 포트, USB 포트, 또는 전용 멀티미디어 카드(MMC) 포트와 같은 다양한 빌트인 통신 채널을 통해 애드-온 메모리 컴포넌트로 더 기능할 수 있다. 이러한 내부 및 애드-온 메모리 컴포넌트는 휘발성 또는 비휘발성 메모리, 또는 그의 조합으로 구성된다. 낸드 플래시 및 노어 플래시는 비휘발성 메모리의 일반적인 유형이다. 동적 랜덤 액세스 메모리(DRAM)와 정적 랜덤 액세스 메모리(SRAM)는 휘발성 메모리의 유형이다. 메모리 유형은 성능 및 밀집도에 기초하여 분류된다. SRAM과 같은 고성능 메모리는 더 크고, 구현하기에 보다 고비용이고, 더 많은 전력을 소비한다. DRAM과 같은 더 고밀도의 메모리는 보다 비용 효율적이지만, 일반적으로 단일 엘리먼트에 대한 액세스 시간, 대역폭, 또는 메모리 시스템에 포함된 데이터 또는 명령어를 요구하는 처리 엘리먼트로 메모리 컨텐츠를 전송하는 속도에 의해 측정되는 성능은 보다 열화한다.
이러한 연관된 상충관계는 특히 이러한 현대 메모리 시스템이 랩탑 컴퓨터, 휴대전화, PDA, 또는 기타 다양한 초-소형의 개인 컴퓨팅 디바이스과 같은 모바일 디바이스에서 구현될 때 중요해진다. 이러한 디바이스에서, 전력 소비와 폼 팩터의 추가적인 고려사항은 메모리 리소스가 최적으로 설정되고 활용되는 것을 중요하게한다. 다행히, 컴퓨터 제품 집적화의 수준이 향상됨에 따라 메모리 데이터-전송 및 연관된 처리 속도를 현저하게 개선하는 특징을 가지면서 다수의 메모리 유형이 단일한 완전한 메모리 시스템 패키지로 패키징할 수 있도록 한다.
이러한 집적 패키징이 유용한 하나의 특정한 애플리케이션은 캐시 메모리 시스템이다. 대부분의 현대 컴퓨팅 시스템은 레벨 1 및 레벨 2의 SRAM 캐시를 모두 구비한 집적된 캐싱 시스템을 가진다. 일반적으로, 프로세서는 메모리로부터 유사한 데이터에 액세스하는 평균 시간을 감소시키기 위해 캐시를 이용한다. SRAM 캐시는 소용량, 고속 메모리 유형이고, 이는 주메모리 위치로부터 빈번하게 액세스 되는 데이터의 사본을 저장한다.
프로세서가 주 메모리 위치로부터 판독하거나 또는 그로 기록하려고 시도할 때, 그것은 먼저 이전에 저장된 유사한 데이터의 사본이 가용한지 여부를 확인하기 위해 캐시 메모리 위치를 검사한다. 프로세서는 캐시 히트가 있는지(데이터가 캐시에 존재하는지)를 확인하기 위해 데이터 어드레스 메모리 위치를 캐시와 비교함 으로써 이를 수행한다. 프로세서가 캐시에서 데이터를 발견하지 못하면, 캐시 미스가 발생하고 프로세서는 하드 디스크 또는 플래시 메모리와 같은 보다 느린 주 메모리 위치에서 데이터를 액세스할 필요가 있기 때문에 훨씬 더 느린 데이터 검색 속도로 동작해야만 한다. 빈번하게 액세스되는 데이터를 발견하기 위해 가장 느린 메모리 유형에 액세스할 필요성을 감소시키는 것과 같이 어떤 식으로든 캐시 히트를 증가시키는 것이 이롭다.
추가로, 대부분의 현대의 애드-온 메모리 시스템은 플래시 제어가 외부 컴퓨팅 디바이스의 프로세서에서의 오프 서킷에서 발생하는 플래시 메모리 및 RAM 메모리를 포함한다. 이러한 유형의 시스템은 플래시와 RAM 메모리 사이의 전송이 외부 프로세서 버스를 지나 애드-온 메모리 시스템의 플래시로부터 외부컴퓨팅 디바이스 프로세서로, 그리고 다시 외부 프로세서 버스를 지나 애드-온 메모리 시스템의 RAM으로 데이터를 라우팅함으로써 가능하게 되어야 하기 때문에 비효율적이다.
본 요약은 하기의 상세한 설명에서 더 기술되는 간략화된 형태의 개념 중 선택된 것을 소개하기 위해 제공된다. 상기 요약은 청구된 주제의 중요한 특징을 식별할 것을 의도하지 않고, 또한 청구된 주제의 범위를 결정하는 데에 보조로서 사용될 것을 의도하지도 않는다.
상기 배경 설명에서 논의된 것과 같은 종래 기술의 메모리 시스템에 연관된 비효율성에 대해, 본 발명의 발명자는 저가의 DRAM 기술을 이용하면서 동시에 동일한 애드-온 메모리 시스템의 메모리 컴포넌트 사이의 직접 메모리 전송을 허용하는 캐시 확장을 가능하게 하는 어댑티브 메모리 디바이스를 발명하였다. 또한, 본 발명은 이롭게도 전용 캐싱 알고리즘을 이러한 확장된 캐시 및 내부 메모리 액세스를 활용하기 위해 통합할 수 있다.
본 발명의 하나의 실시예에 따르면, 외부 컴퓨팅 디바이스의 성능을 개선시키기 위한 어댑티브 메모리 시스템이 제공된다. 어댑티브 메모리 시스템은 단일 컨트롤러, 제 1 메모리 유형(예를 들면 정적 랜덤 액세스 메모리 또는 SRAM), 제 2 메모리 유형(예를 들면, 동적 랜덤 액세스 메모리 또는 DRAM), 제 3 메모리 유형(예를 들면 플래시), 내부 버스 시스템, 및 외부 버스 인터페이스를 포함한다. 단일 컨트롤러는 (ⅰ) 내부 버스 시스템을 이용하여 3 가지 메모리 유형 모두와 통신하고; (ⅱ) 외부 버스 인터페이스를 이용하여 외부 컴퓨팅 디바이스와 통신하고; 및 (ⅲ) 제 1 메모리 유형 내의 스토리지 공간에 캐시-데이터 스토리지 할당을 하고, 제 1 메모리 유형 내의 스토리지 공간이 풀(full)이 된 것으로 판정된 후에, 캐시-데이터 스토리지 할당을 제 2 메모리 유형 내의 스토리지 공간에 할당; 하도록 설정된다.
본 발명의 하나의 측면에 따르면, 제 1 및 제 2 메모리 유형은 별개의 휘발성 메모리 유형(예를 들면 SRAM 및 DRAM)이고, 제 3 유형의 메모리 유형은 비휘발성 유형(예를 들면, 플래시)이고, 단일 컨트롤러는 전력 소비를 최소화하기 위해 기록되지 않은 제 1 및 제 2 메모리 유형의 일부의 전원을 차단하도록(power down) 더 설정된다.
본 발명의 하나의 측면에 따르면, 단일 컨트롤러는 SRAM 또는 플래시 메모리 중 어느 하나로부터 DRAM으로 캐시-데이터 전송을 하도록 더 설정된다. 캐시-데이터가 SRAM 내에 존재한다면, 캐시-데이터는 SRAM으로부터 DRAM으로 전송된다. 캐시-데이터가 SRAM 내에 존재하지 않고, 플래시 메모리 내에 존재한다면, 캐시-데이터는 플래시 메모리로부터 DRAM으로 전송된다.
본 발명의 또다른 측면에 따르면, 단일 컨트롤러는 데이터 미리보기(look-ahead) 스킴에 따라 플래시 메모리로부터 SRAM 또는 DRAM으로 데이터를 캐싱하도록 더 설정된다.
본 발명의 또다른 실시예에 따르면, 단일 컨트롤러, 제 1 메모리 유형, 제 2 메모리 유형, 제 3 메모리 유형, 내부 버스 시스템, 및 외부 버스 인터페이스를 포함하는 어댑티브 메모리 시스템을 제어하는 방법이 제공된다. 상기 방법은, 일반적으로: (ⅰ)내부 버스 시스템을 이용하여 3 가지 메모리 유형 모두와 통신하는 단계; (ⅱ) 외부 버스 인터페이스를 이용하여 외부 컴퓨팅 디바이스와 통신하는 단계; 및 (ⅲ) 제 1 메모리 유형 내의 스토리지 공간에 캐시-데이터 스토리지 할당을 하고, 제 1 메모리 유형 내의 스토리지 공간이 풀(full)이 된 것으로 판정된 후에, 캐시-데이터 스토리지 할당을 제 2 메모리 유형 내의 스토리지 공간에 할당하는 단계;를 포함한다.
본 발명의 또다른 실시예에 따르면, 어댑티브 메모리 시스템의 단일 컨트롤러의 동작을 제어하는 컴퓨터 실행가능한 프로그램을 포함하는 컴퓨터 판독가능한 매체가 제공된다. 상기 어댑티브 메모리 시스템은 제 1 메모리 유형, 제 2 메모리 유형, 제 3 메모리 유형, 내부 버스 시스템, 및 외부 버스 인터페이스를 포함한다. 상기 컴퓨터 실행가능 프로그램은 실행시 일반적으로: (ⅰ)내부 버스 시스템을 이용하여 3 가지 메모리 유형 모두와 통신하는 단계; (ⅱ) 외부 버스 인터페이스를 이용하여 외부 컴퓨팅 디바이스와 통신하는 단계; 및 (ⅲ) 제 1 메모리 유형 내의 스토리지 공간에 캐시-데이터 스토리지 할당을 하고, 제 1 메모리 유형 내의 스토리지 공간이 풀(full)이 된 것으로 판정된 후에, 캐시-데이터 스토리지 할당을 제 2 메모리 유형 내의 스토리지 공간에 할당하는 단계;의 3 단계를 포함하는 방법을 상기 단일 컨트롤러가 수행하도록 한다.
본 발명의 또다른 실시예에 따르면, 어댑티브 메모리 시스템의 단일 컨트롤러의 데이터 미리보기 캐싱 스킴을 구현하기 위한 컴퓨터 실행가능한 프로그램을 포함하는 컴퓨터 판독가능한 매체가 제공된다. 상기 어댑티브 메모리 시스템은 제 1 메모리 유형, 제 2 메모리 유형, 제 3 메모리 유형, 내부 버스 시스템, 및 외부 버스 인터페이스를 더 포함한다. 상기 컴퓨터 실행가능 프로그램은, 실행시, 일반적으로: (ⅰ) 외부 컴퓨팅 디바이스 상에서의 애플리케이션 실행으로부터 섹터 데이터의 시퀀스를 획득하는 단계; (ⅱ) 상기 획득된 섹터 데이터의 시퀀스와 복수의 미리 저장된 섹터 데이터의 시퀀스를 비교하여 네 1 레벨의 매칭이 있는 지를 판정하는 단계; 및 (ⅲ) 상기 획득된 섹터 데이터의 시퀀스와 복수의 미리 저장된 섹터 데이터의 시퀀스 사이에 제 1 레벨의 매칭이 있는 것으로 판정되면, 상기 판정된 제 1 레벨의 매칭 데이터로 적어도 제 1 메모리 유형을 캐싱하는 단계; 및 (ⅳ) 획득된 섹터 데이터의 시퀀스와 복수의 미리 저장된 섹터의 시퀀스 사이에 제 1 레벨의 매칭이 있는 것으로 판정되지 않으면, 제 2 레벨의 매칭을 가지는 복수의 미리 저장된 섹터 데이터의 시퀀스로부터 섹터 데이터의 시퀀스가 선택될 수 있는지를 판정하는 단계;의 4 개의 단계를 포함하고, 상기 제 1 레벨의 매칭은 상기 제 2 레벨의 매칭보다 매칭의 가능성이 더 높은 방법을 상기 단일 컨트롤러로 하여금 수행하도록 한다.
본 발명의 하나의 측면에 따라, 상기 제 2 레벨의 매칭을 가지는 섹터 데이터의 시퀀스가 선택될 수 있다면, 상기 선택된 제 2 레벨의 매칭을 가지는 섹터 데이터의 시퀀스가 제 1 메모리 유형 또는 제 2 메모리 유형으로 캐싱되고; 상기 제 2 레벨의 매칭을 가지는 섹터 데이터의 시퀀스가 선택될 수 없다면, 캐시-데이터 트레이닝 시퀀스가 시작된다.
본 발명의 또다른 측면에 따르면, 캐시 데이터 트레이닝 시퀀스는 제 3 메모리 유형에 저장된 시퀀스의 비휘발성 사본을 가지면서 제 1 메모리 유형 또는 제 2 메모리 유형 중 어느 하나 내에 획득된 섹터 데이터의 시퀀스를 저장한다.
본 발명의 추가적인 실시예에 따르면, 어댑티브 메모리 시스템의 단일 컨트롤러의 데이터 미리보기 캐싱 스킴을 구현하는 방법이 제공된다. 어댑티브 메모리 시스템은 단일 컨트롤러, 제 1 메모리 유형, 제 2 메모리 유형, 제 3 메모리 유형, 내부 버스 시스템, 및 외부 버스 인터페이스를 포함한다. 상기 방법은, 일반적으로: (ⅰ) 외부 컴퓨팅 디바이스 상에서의 애플리케이션 실행으로부터 섹터 데이터의 시퀀스를 획득하는 단계; (ⅱ) 복수의 미리 저장된 섹터 데이터의 시퀀스와 상기 획득된 섹터 데이터의 시퀀스를 비교하여 제 1 레벨의 매칭이 있는 지를 판정하는 단계; 및 (ⅲ) 상기 획득된 섹터 데이터의 시퀀스와 복수의 미리 저장된 섹터 데이터의 시퀀스 사이에 제 1 레벨의 매칭이 있는 것으로 판정되면, 상기 판정된 제 1 레벨의 매칭 데이터를 적어도 제 1 메모리 유형에 캐싱하는 단계; (ⅳ) 상기 획득된 섹터 데이터의 시퀀스와 복수의 미리 저장된 섹터 데이터의 시퀀스 사이에 제 1 레벨의 매칭이 있는 것으로 판정되지 않으면, 제 2 레벨의 매칭을 가지는 복수의 미리 저장된 섹터 데이터의 시퀀스로부터 섹터 데이터의 시퀀스가 선택될 수 있는지를 판정하는 단계;의 4 개의 단계를 포함하고, 상기 제 1 레벨의 매칭은 상기 제 2 레벨의 매칭보다 매칭의 가능성이 더 높은 것이다.
본 발명의 하기의 측면과 수반되는 다수의 이점은 첨부도면을 함께 참조할 때 하기의 상세한 설명을 참조하여 더 잘 이해되는 것처럼 보다 용이하게 이해될 것이다.
도 1은 본 발명의 하나의 실시예에 따른 어댑티브 메모리 시스템(AMS)의 블록도이다.
도 2는 종래기술에 따른 외부 컴퓨팅 디바이스와의 종래 메모리 시스템 인터페이스를 도시하는 블록도이다.
도 3은 본 발명의 하나의 실시예에 따른 AMS 파일 시스템 파티션을 예시하는 블록도이다.
도 4는 본 발명의 하나의 실시예에 따른 AMS 컨트롤러에 의해 활용되는 AMS 메모리 컴포넌트와 프로세서 사이의 상세한 데이터 흐름을 예시하는 블록도이다.
도 5는 본 발명의 하나의 실시예에 따른 상이한 동작 처리 스테이지에서의 데이터 흐름 전송을 예시하는 AMS 컨트롤러에 대한 상태 기계 다이어그램 (State Machine Diagram)이다.
도 6은 본 발명의 하나의 실시예에 따른 AMS SRAM 및 DRAM 캐시의 부분을 채우는 AMS 컨트롤러 캐시 데이터 미리보기 스킴을 예시하는 흐름도이다.
도 7은 본 발명의 하나의 실시예에 따른 AMS 컨트롤러 캐시 데이터 미리보기 스킴과 연관된 트레이닝 시퀀스를 예시하는 흐름도이다.
도 8은 본 발명의 하나의 실시예에 따른 AMS 컨트롤러 캐시 데이터 미리보기 스킴과 연관된 트레이닝 시퀀스를 예시하는 흐름도이다.
도 9는 본 발명의 하나의 실시예에 따른 AMS 컨트롤러의 데이터 흐름과 연관된 대역폭 할당을 예시하는 블록도이다.
본 발명은, 휘발성 및 비휘발성 메모리 컴포넌트, 메모리 컴포넌트 사이와 메모리 컴포넌트와 외부 컴퓨팅 디바이스 사이의 데이터 전송을 관리하도록 구성된 컨트롤러 컴포넌트를 구비한 어댑티브 메모리 시스템(AMS)에 관한 것이다. 본문에서 집합적으로 AMS 컴포넌트라고 하는, 메모리 컴포넌트와 컨트롤러 컴포넌트는 다중칩 패키지 집적회로(MCP)에 내장되고, 이는 데스크탑 PC, 랩탑 PC, 휴대전화, PDA, 또는 휴대용 PC(UMPC)와 같은 임의의 일반적인 개인용 컴퓨팅 디바이스로 착탈가능하게 삽입되도록 설정가능하게 설계될 수 있다. 본 발명은 또한 AMS와 외부 컴퓨팅 디바이스 사이의 데이터 전송에 연관된 전체 성능을 확장시키는 AMS 컨트롤러 컴포넌트에 의해 구현되는 데이터 전송 제어 스킴에 관한 것이다.
도 1에 도시된 하나의 실시예에 따르면, AMS(10)는 정적 랜덤 액세스 메모리(SRAM)(14), 동적 랜덤 액세스 메모리(DRAM)(16), 및 플래시 메모리(18)를 포함하는 다수의 AMS 메모리 컴포넌트 유형을 포함한다. 본 실시예의 메모리 컴포넌트 유형은 AMS 내에서 기능할 수 있는 메모리 유형의 단순한 예시일 뿐이며, 본 발명 은 본 실시예에서 사용된 정확히 지정된 메모리 유형에 한정되는 것은 아니라는 것을 이해해야한다. AMS 컨트롤러 컴포넌트(또는 줄여서 "컨트롤러")(12)는 내부 버스 시스템(20)을 통해 SRAM, DRAM, 플래시 메모리 컴포넌트와 통신하고, 외부 버스 인터페이스(22)를 통해 외부 컴퓨팅 디바이스(도시되지 않음)와 통신하도록 구성된다. 이러한 구성은 AMS 컨트롤러(12)가 외부 컴퓨팅 디바이스에 독립적으로, 메모리 컴포넌트 사이에서의 데이터 흐름을 완벽하게 관리하도록 한다.
유사한 메모리 컴포넌트 유형을 구비하는 일반적인 MCP 메모리 디바이스에서, 도 2에 예시된 바와 같이, 플래시 메모리 데이터 전송에 대한 제어는 외부 컴퓨팅 디바이스에서 발생한다. 예를 들면, 애플리케이션이 외부 컴퓨팅 디바이스에서 실행되고, 애플리케이션 데이터가 MCP 메모리 디바이스(30)의 플래시 메모리 컴포넌트(36)와 RAM 메모리 컴포넌트(32, 34) 사이에 전송되는 것이 요구될 때(예를 들면, 애플리케이션 페이지 데이터를 캐싱할 때), 외부 컴퓨팅 디바이스(40)의 프로세서는 집적된 플래시 컨트롤러(42)를 이용하여 플래시 데이터의 전송을 제어한다. 이러한 시스템에서, 전송가능한 플래시 데이터는 외부 컴퓨팅 디바이스의 프로세서(40)에 의해 MCP 메모리 디바이스의 플래시 메모리 컴포넌트(36)로부터 플래시 인터페이스(39)와 외부 플래시 버스(46)를 지나고, 다시 RAM DDR(Double-data rate) 버스(48)와 RAM 인터페이스(38)를 지나 MCP 메모리 디바이스의 RAM 메모리 컴포넌트(32, 34)로 라우팅되어야 한다. 이러한 데이터 라우팅 스킴은 동일한 MCP 메모리 디바이스 상의 비휘발성(예를 들면 플래시) 및 휘발성(예를 들면 RAM) 메모리 컴포넌트 사이의 데이터 전송(캐싱)에는 비효율적이다.
예를 들면 도 1에 도시된 것과 같은, 본 발명의 다양한 실시예에 따른 AMS MCP 기술은 AMS 플래시(18)와 RAM(14, 16) 메모리 컴포넌트 사이의 직접 메모리 접근(DMA)을 활용하여, 외부 컴퓨팅 디바이스의 프로세서를 사용할 필요없이 이러한 비효율성을 치유한다. 본 발명의 온서킷 AMS 컨트롤러(12)는 플래시 메모리 컴포넌트(18)와 RAM 메모리 컴포넌트(14, 16) 사이의 데이터 전송을 제어하여 플래시 데이터가 직접 내부 버스 시스템(20)을 통해 원하는 RAM 메모리 컴포넌트 위치(14, 16)로 전송될 수 있도록 한다. 이러한 DMA 데이터 전송 제어 스킴은 외부 컴퓨팅 디바이스 프로세서를 사용할 필요가 없기 때문에, 효과적으로 AMS와 외부 컴퓨팅 디바이스 사이의 버스인 외부 버스의 외부 버스 대역폭 사용을 감소시킨다. 이러한 방식으로, 본 발명의 다양한 실시예에 따라, 외부 버스 대역폭은 외부 컴퓨팅 디바이스의 프로세서가 보다 높은 속도로 AMS 메모리 컴포넌트로부터 데이터를 판독하고 그로 데이터를 기록하도록 최적화될 수 있다. 또한, AMS 플래시 메모리 컴포넌트(18)와 AMS RAM 메모리 컴포넌트(14, 16) 사이의 더 짧은 물리적 DMA 연결은 상술한 바와 같은 전통적인 전송 스킴에 비해 더 낮은 기생 용량(parasitic capacitance)을 제공한다. 회로에서의 과잉 기생 용량은 대역폭을 감소시키고, 외부 간섭의 가능성을 높이고, 정상 회로 동작 상태 동안의 전력 소비를 증가시키는 것으로 알려져있다. 본 발명에서 달성된 더 짧은 배선 길이의 데이터 전송은 데이터가 이러한 AMS 메모리 컴포넌트 사이에 반복되어 전송될 때(예를 들면, 페이지 데이터 캐싱시에) 현저한 전력 절감을 제공한다.
AMS 메모리 컴포넌트 데이터 전송 제어를 외부 컴퓨팅 디바이스의 프로세서 와 분리시키는 또다른 이점은 이송 이전에 AMS 내에 실제 파일 관리 시스템 기능이 내장된다는 것이다. 이것은 AMS가 표준 파일 시스템으로서 외부 컴퓨팅 디바이스에게 보여지도록 한다. 표준 파일 시스템은 표준 운영 시스템 레벨 드라이버에 의해 지원될 수 있어서, 운영 체제 레벨에서 전용 플래시-종속 디바이스 드라이버를 유지할 필요성이 제거된다. AMS의 자급자족 플래시 드라이버 소프트웨어는 도 3에 도시된 AMS 파일 시스템 파티션(50)의 내장 SRM/DRAM/플래시 설치가능 파일 시스템 파티션(54) 내에 포함된다. 도시된 실시예에서, 다른 AMS 파일 시스템 파티션은 표준 FAT 파일 시스템 파티션(52), 및 부트 파티션과 플래시 인터페이스 데이터를 구비한 디바이스 설정 파티션(56)을 포함한다. 내장 플래시 드라이버 소프트웨어는 운영 시스템과 통합하는 시점에서 추가적인 테스트를 필요로하지 않는다. 이러한 독립적인 메모리 드라이버 제어는 이롭게도 AMS에 대해 외부 컴퓨팅 디바이스 상에 전용 메모리 드라이버 소프트웨어를 추가로 설치할 필요없이 대부분의 운영 시스템에 의해 인식되도록 한다.
AMS 컨트롤러(12)는 AMS SRAM과 DRAM 휘발성 메모리 컴포넌트(14, 16)의 부분으로 전력 흐름을 선택적으로 게이팅함으로써 전력 소비를 최소화하도록 더 설정된다. 이러한 전력 절감 기술은 종래 기술에 공지된 바와 같이 SRAM과 DRAM 휘발성 메모리 유형 모두가 그들 각각의 메모리 영역의 부분내에 유지되는 기존 데이터를 관리 또는 리플레시하기 위해 일정한 소비전력을 필요로 하기 때문에 바람직하다. 본 발명의 다양한 예시적인 실시예에서, 이러한 AMS에서의 소비전력을 최소화하기 위해, 컨트롤러(12)는 SRM 또는 DRAM(14, 16)의 부분이 기록하도록 스케줄링되지 않고 아직 데이터를 가지고 있지 못한 때를 검지하기 위해 RAM 메모리 컴포넌트를 모니터링한다. RAM의 비활성화된 부분 검지시, 컨트롤러(12)는 전력 손실을 최소화하기 위해 SRAM 또는 DRAM(14, 16)의 비활성화된 부분의 전원을 차단한다. 이러한 방식으로, 전력 소비는 외부 컴퓨팅 디바이스의 프로세서의 입력을 필요로하지 않으면서 AMS 디바이스 내에서부터 동적으로 조정될 수 있다.
본 발명의 다양한 예시적인 실시예에 따라, 도 1에 도시된 바와 같은 AMS는 레벨 1 및 레벨 2 캐시 파티션으로서 기능하는 SRAM(14)의 일부와, 레벨 3 캐시 파티션으로서 기능하는 DRAM(16)의 일부와 고속 어댑티브 캐시로서 사용되도록 구성된다. 고속 캐시는 결합된 시스템에 대한 데이터 저장과 검색을 적합하게 확장시키도록 외부 컴퓨팅 디바이스의 기존 캐시 시스템과 함께 작동할 수 있다. AMS 집적 캐시는 바람직하게는 부트 코드 미러, 프로그램 데이터, 프로그램 코드, 및 애플리케이션 데이터에 관한 동작에 연관된 데이터 전송 및 데이터 저장에 활용된다. 이러한 기능에 사용되는 캐시의 크기 및 레벨은 구성 설정과 필요한 성능 측정장치에 기초하여 동적으로 할당된다.
부트 코드 미러 및 프로그램 코드
부트 코드는 플래시(18)로부터 SRAM 캐시(14)로 복사되어 빠르게 디바이스 프로세서를 초기화한다. 이것은 SRAM 캐시(14)의 최초 사용을 나타낸다. 추가적인 프로그램 코드는 플래시(18)로부터 요청된 데이터로서 식별된다. 이러한 추가 프로그램 코드는 할당된 캐시 크기 및 가용성에 따라 SRAM 또는 DRAM 캐시(14, 16) 중 어느 하나로 복사될 수 있다. 바람직하게는 SRAM 캐시(14)가 DRAM 캐시를 사용하면, 계속해서 DRAM 데이터를 리플레시해야 하므로 SRAM 캐시에 비해 더 전력 소비가 많기 때문에, DRAM 캐시(16) 보다 먼저 채워진다.
상세한 데이터 흐름 및 파티션
도 4는 본 발명의 하나의 실시예에 따라 AMS 메모리 컴포넌트와 AMS 컨트롤러(60) 사이의 데이터 전송을 도시한다. 이러한 도면에서, 플래시 데이터의 이산 블록을 "페이지"라고 한다. 이러한 데이터 페이지는 최초에, 경로 P1으로 지시된 바와 같이, 플래시(80)에서 SRAM(62)으로 전송된다. 페이지는 그런다음 함께 그룹화되어 경로 P2를 통해 캐싱되어 부트 코드 데이터(64)의 블록을 생성하고, 이는 경로 P3를 통해 컨트롤러(60)로 전송된다. 초기화 시퀀스 또는 부팅의 일부로서, 컨트롤러(60)는 DRAM 액세스를 포함하는 정상 동작을 허용하도록 DRAM 캐시(72)를 설정한다. 컨트롤러(60)는 그런다음 경로 P1을 통해 플래시(80)로부터 원래 전송된 SRAM 데이터 페이지로부터 경로 P4를 통해 캐싱된, SRAM 캐시(62)로부터 경로 P5를 통해 전송된 프로그램 코드(66)를 이용하여 동작한다. SRAM 캐시(62)의 한정된 용량이 초과되면, 캐싱되는데에 필요한 코드의 추가적인 페이지가 SRAM 캐시(62)로부터 DRAM 캐시(72)로 경로 P6를 통해 전송되거나, 또는 SRAM 캐시(62)가 가득 찼다고 판정되고 추가적인 페이지는 아직 SRAM 캐시(62)에 제공되지 않았다면, 그것들은 경로 P7를 통해 플래시(80)로부터 DRAM(72)으로 직접 전송된다. 컨트롤러(60)는 그런다음 경로 P12를 통해 액세스된 DRAM 캐시(72)에 저장된 프로그 램 코드를 실행할 수 있다.
프로그램 데이터 및 애플리케이션 데이터
프로그램 및 애플리케이션 데이터가 내부 버스 시스템(20)(도 1참조)내로부터의 AMS 메모리 공간을 채운다. 도 4에 도시된 바와 같이, 컨트롤러(60)는 경로 P10, P11, P14, 및 P13을 이용하여, SRAM 또는 DRAM 캐시(62, 72) 중 어느 하나에서의 애플리케이션 데이터 또는 프로그램 데이터(68, 70, 76, 및 78)의 블록에 액세스한다. 플래시(80)로 애플리케이션 데이터를 수용(收容)시키기 위해, 정보의 페이지 또는 페이지들은 먼저 SRAM 또는 DRAM 캐시(62, 72) 중 어느 하나에서 어셈블리되어야 한다. 컨텐츠가 확인되었을 때, 컨트롤러(60)는 페이지 또는 페이지들이 플래시(80)로 "수용되었다"고 지시한다. 이것은 경로 P15 "수용" 및 경로 P16 "수용"에 의해 지시된다. 수용된 페이지는 그런다음 경로 P1를 이용하여 플래시(80)로 기록된다. 컨트롤러(60)는 또한 SRAM 및 DRAM(68, 76) 사이의 애플리케이션 데이터의 전송을 요청할 수도 있다. 요청시, 경로 P8 및 P9에 의해 지시된 바와 같이 전송이 스케줄링되고 실행된다.
컨트롤러 로직 및 데이터 흐름
본 발명의 다양한 예시적인 실시예에 따라, AMS 컨트롤러 로직의 알고리즘 기능은 하기와 같이 수행되도록 설정된다.
1. 캐싱 페이지 데이터 전용의 SRAM 및 DRAM의 부분들을 동적으로 할당하고, 플래시 메모리에 저장된 휴리스틱(heuristics), 미리설정된 세팅, 및 과거의 메모리 액세스 정보에 기초하여 이러한 할당을 조정한다. 할당 요청은 AMS 메모리 컴포넌트로부터의 데이터 판독과 그로의 데이터 기록을 위한 프로세서로부터의 요청 및 DMA 전송 요청을 포함한다. 메모리 할당 알고리즘의 구현은 도 5와 연관된 하기의 표 1 및 표 2에 도시된다.
2. 도 6-8에 도시된 데이터 미리보기 스킴을 이용하여, 다른 메모리 블록으로부터 미러링된 데이터로 SRAM 및 DRAM 캐시의 일부분을 채운다. 이러한 데이터 할당은 조정가능한 데이터 버스 폭을 이용하고, 전력 소비를 최소화하기 위해 결정된 속도로 발생한다.
3. 기록되지 않고 사용할 것으로 판정되지 않은 휘발성 SRAM 및 DRAM 캐시의 일부의 전원을 차단한다. 최초에, 이러한 메모리 컴포넌트는 기록되지 않은 것으로 마킹되고, 메모리의 각각의 부분은 데이터 캐싱에 필요할 때에만 전력이 공급된다.
도 5는 상태 기계의 형태로 되어있는 AMS 컨트롤러 데이터-흐름 다이어그램을 도시한다. 표 1은 대응하는 상태 정의를 나열하고, 표 2는 데이터-흐름 다이어그램에 연관된 대응하는 상태 변환을 나열한다.
Figure 112009048728013-pct00001
Figure 112013002161165-pct00012
AMS 컨트롤러 데이터 미리보기 캐싱 스킴은 어떠한 특정한 데이터 요청이 외부 컴퓨팅 디바이스의 프로세서에 의해 시작되는 지를 예측하도록 설계된다. 예측된 데이터 요청에 관한 특정한 코드 또는 데이터는 고속 메모리 디바이스로 미리 로딩되어(즉, 캐싱되어) 프로세서가 유사한 코드 또는 데이터에 대한 요청을 할 때 그것이 빠르게 검색될 수 있도록 한다.
도 6은 섹터 데이터의 시퀀스로 AMS SRAM 및 DRAM 캐시(14, 16)의 일부를 채우도록 하기 위한 이러한 데이터 미리보기 스킴을 실행하는 것을 도시한다. 데이터 섹터는 일반적으로 약 512 바이트인 운영 체제에 의해 어드레싱가능한 가장 작은 데이터 블록이다. 섹터 데이터(93)의 시퀀스는 그의 길이에 의해 특징지어지는 임의의 순서로 된 섹터 데이터의 세트이다. 본 발명의 미리보기 캐싱 스킴은 이롭게도 레벨 3의 DRAM 캐시(16)의 부분 뿐만 아니라 레벨 1 및 레벨 2 SRAM 캐시(14)의 부분에 대해서도 예측된 캐시 데이터의 시퀀스로 프리로딩(preload)되는 것을 허용하고, 이는 하기에 기술되는, 블록(96, 102)에서의 런-타임 애플리케이션 데이터와 과거 캐시 데이터의 비교를 통해 판정된다.
애플리케이션이 블록(90, 92)에서처럼 외부 컴퓨팅 디바이스에서 실행될 때, 획득된 애플리케이션 섹터 데이터(93)의 시퀀스는 블록(94, 96)에서처럼 높은 확률의 매칭이 블록(98)에서 발견될 수 있는지를 판정하기 위해 미리 저장된 섹터 데이터의 시퀀스 각각에 비교된다. 높은 확률의 매칭을 발견하는 것이 하기에 기술된다. 이러한 높은 확률의 매칭이 각각의 저장된 시퀀스에 대해 비교하여 판정된다면(98에서 Yes), 미리 저장된 시퀀스 매칭은 높은 확률의 매칭으로 플래그되고 바람직한 SRAM 캐시가 이미 차 있는지에 따라 블록(104)에서 SRAM 또는 DRAM 캐시 중 어느 하나로 프리로딩된다. 이러한 높은 확률의 매칭의 판정은 블록(94, 100)에서 특정한 획득된 애플리케이션 섹터 데이터(93)의 시퀀스와 각각의 미리 저장된 섹터 데이터의 시퀀스 사이의 결정된 차이의 값에 대해 측정된 높은 확률의 임계값(또는 높은 확률의 매칭(HPM) 값)에 기초한다. 하나의 실시예에서, 높은 확률의 임계값은 획득된 애플리케이션 시퀀스와 미리 저장된 시퀀스 사이의 매칭하는 시퀀스 섹터의 퍼센트 값(즉, 90-95%)에 관한 것이다. 이러한 실시예에서, 판정된 차이값은 또한 백분위수의 비교를 활용하기 위해 퍼센트값에 관한 것이 된다. 임의의 미리 저장된 섹터 데이터의 시퀀스에 대해 판정된 차이 값이 높은 확률의 임계값보다 더 작고, 또한 획득된 애플리케이션 섹터 데이터의 동일한 시퀀스(98에서 Yes)에 대해 판정된 차이값보다 더 작다면, 그 미리 저장된 섹터 데이터의 시퀀스는 획득된 애플리케이션 섹터 데이터(93)의 특정한 시퀀스에 연관된 높은 확률의 매칭이 될 것으로 판정된다.
그러나, 높은 확률의 매칭이 판정될 수 없다면(98에서 No), 어떠한 미리 저장된 섹터 데이터의 시퀀스도 높은 확률의 임계값보다 더 작은 판정된 차이값을 가지기 때문에, 가장 낮은 판정된 차이값이 블록(102)에서 더 낮은 정확도의 가장 가능성있는 시퀀스 임계값(또는 가장 가능성있는 시퀀스 매칭(MLSM) 값)에 비교된다. 하나의 실시예에서, 가장 가능성있는 시퀀스 임계값은 또한 획득된 애플리케이션 시퀀스와 미리 저장된 시퀀스 사이의 매칭하는 시퀀스 섹터의 퍼센트값(즉, 70-75%)에 관한 것이다. 이러한 실시예에서, 판정된 차이값은 또한 백분위 비교를 활용하기 위해 퍼센트값에 관한 것이 될 것이다. 가장 낮은 결정된 차이값이 높은 확률의 임계값보다 더 높지만 가장 가능성있는 시퀀스 임계값 보다 더 낮은 것으로 측정되면(98에서 No, 102에서 Yes), 섹터 데이터의 미리 저장된 시퀀스는 획득된 애플리케이션 섹터 데이터의 특정한 시퀀스에 연관된 가장 가능성있는 시퀀스 매칭인 것으로 판정된다. 이경우, 가장 가능성있는 시퀀스 매칭이 결정되면(102에서 Yes), 연관된 미리 저장된 시퀀스 매칭은 가장 가능성있는 시퀀스 매칭으로서 플래그되고, 바람직한 SRAM 캐시(14)가 이미 차있는지 여부에 따라 블록(104)에서 SRAM 또는 DRAM 캐시 중 어느 하나로 프리로딩된다.
더 낮은 정확도의 가장 가능성있는 시퀀스 매칭이 있다면, 시퀀스는 도 8을 참조하여 하기에 보다 상세히 기술되는 바와 같이 재-튜닝을 위해 더 플래그될 것이다. 재-튜닝에 대한 필요성은 특히 시퀀스가 가장 가능성있는 시퀀스 매칭으로 식별되는 경우, 이러한 시퀀스가 튜닝 조정(즉, 섹터 데이터의 순서 재부여)이 더 필요한 때에 반복적으로 지시된다.
가장 가능성있는 시퀀스 매칭이 결정될 수 없다면(102에서 No), 미리 저장된 섹터 데이터의 시퀀스 중 어떠한 것도 가능성있는 시퀀스 임계값보다 더 작은 판정된 차이값을 가지기 때문에, AMS 컨트롤러(12)는 블록(106)에서 오류 판정 가능성에 기초하여 애플리케이션 섹터 데이터의 특정한 획득된 시퀀스가 저장되어야하는지 여부를 판정한다. 블록(106)에서 No라면, 재시험 비교가 구현된다. 블록(106)에서 Yes라면, 애플리케이션 섹터 데이터의 특정한 획득된 시퀀스는, 도 7을 참조하여 하기에 상세히 기술되는 바와 같이, 캐시 트레이닝 시퀀스를 시작함으로써 캐시로 프리로딩되어야 한다.
도 7은 블록(110, 112)에서처럼, 외부 컴퓨팅 디바이스에서 동작하는 애플리케이션으로부터 획득된 섹터 데이터(113)의 특정한 시퀀스로 AMS SRAM 및 DRAM 캐시(14, 16)의 부분을 채우기 위한 AMS 컨트롤러 캐시 데이터 미리보기 트레이닝 시퀀스의 실행을 도시한다. 애플리케이션 섹터 데이터의 시퀀스가 로딩을 끝내고, 타임아웃, 또는 블록(114)에 도시된 것처럼 미리 정해진 크기 제한을 초과한 후에, 트레이닝 시퀀스는 시퀀스 데이터 감소 블록(118)으로 진행하고, 그런다음 섹터 데이터(116, 122)의 미리 저장된 시퀀스에 대해 블록(120)에서 데이터 스토리지를 캐싱한다. 휘발성 SRAM(14) 또는 DRAM(16) 캐시 중 어느 하나로의 시퀀스 데이터 저장시에, AMS 컨트롤러는 캐시 할당을 위해 지정된 시퀀스 데이터의 복사본을 백업 데이터 스토리지 디바이스로서의 비휘발성 플래시로 더 전송한다. 블록(118)에서의 데이터 감소는 섹터 데이터의 순서가 정해진 범위로 구성된 시퀀스로 순서가 정해지지 않은 섹터 데이터의 시퀀스를 대체함으로써 구현된다. 이러한 감소는 보다 효율적인 캐시 스토리지 및 검색 메커니즘을 생성한다.
도 8은 저장된 섹터 데이터(136)의 기존 시퀀스를 블록(124, 126, 128 및 130)에서처럼 애플리케이션 섹터 데이터(127)의 획득된 시퀀스에 비교하기 위해 AMS SRAM 및 DRAM 캐시(14, 16)의 부분을 튜닝하기 위해 AMS 컨트롤러 캐시 데이터 미리보기 튜닝 시퀀스를 실행하는 것을 예시한다. 그 결과인 섹터 데이터의 순서가 정해지지 않은 시퀀스는 후속하여 블록(132)에서 섹터 데이터의 순서가 정해진 시퀀스로 튜닝되고 블록(134)에서 순서가 정해진 시퀀스(136)의 범위로서 저장된다. 튜닝 시퀀스의 최초 실행이 섹터 데이터의 모든 시퀀스의 순서화를 효과적으로 재정의하지 못하면, 튜닝 시퀀스가 반복된다.
도 9는 본 발명의 하나의 실시예에 따라 AMS 컨트롤러의 데이터 흐름과 연관된 대역폭 할당을 도시한다. 본 실시예에서, AMS 컨트롤러(138)는 RAM 외부 프로세서 인터페이스(들)(146)와 DDR 외부 프로세서 인터페이스(들)(148) 뿐만 아니라, SRAM 내부 메모리 인터페이스(들)(140), DRAM DDR 내부 메모리 인터페이스(들)(142)를 포함한다. 이러한 결합된 컨트롤러 인터페이스(140, 142, 144, 146, 및 148)는 외부 컴퓨팅 디바이스의 프로세서 버스 인터페이스(도시되지 않음)의 대역폭 보다 현저하게 더 큰 총 버스 대역폭을 가진다. 이러한 초과 버스 데이터 전송 용량은 AMS 컨트롤러(138)로 하여금 메모리 디바이스 사이에 직접 캐시 데이터 전송(DMA)을 하도록 하고, 동시에 외부 컴퓨팅 디바이스의 프로세서가 독립적으로 AMS 메모리 컴포넌트로부터의 데이터에 액세스하도록 한다. 이러한 인터리브한 데이터 전송은 이롭게도 AMS 컨트롤러(138)가 증가된 총 데이터 전송 속도로 동작하도록 한다.
각 AMS 메모리 컴포넌트 디바이스 유형(SRAM(14), DRAM(16), 및 플래시(18))에 대한 실제 버스는 각각의 구현된 메모리 컴포넌트의 특정한 크기 및 용량 특성에 따라, 동일한 기수 또는 동일한 기수의 배수가 되도록 구성된다. 도 9는 내부 인터페이스 컴포넌트(140, 142, 및 144)에 대한 내부 버스 대역폭과 외부 프로세서 인터페이스 컴포넌트(146, 148)에 대한 외부 버스 대역폭 사이의 4:1의 차이의 예를 도시하고, 이때 N은 4이고, SRAM에 대해 동일한 버스 구성이 사용되며, L은 4이며, 플래시에서 M은 4이다.
AMS 컨트롤러(138) 초과 버스 용량은 외부 컴퓨팅 디바이스의 프로세서가 2 개의 상이한 내부 데이터 버스(B1 및 B2)를 통해 DRAM 메모리로 액세스할 때 활용될 수 있다. 이러한 인터리브된 액세스는 연속적인 DRAM 어드레스로부터의 캐시 데이터가 2개의 상이한 내부 DRAM 데이터 버스(B1, B2)에 의해 대안으로 제공되도록한다. 이러한 병렬 DRAM 데이터 전송은 DDR 외부 프로세서 버스가 내부 버스에 필요한 것보다 더 빠른 데이터 전송 속도로 동작 되도록 한다. 이러한 액세스와 동시에, DMA 데이터 전송은 플래시(18)와 SRAM 또는 DRAM 메모리 디바이스(14, 16)에 포함된 캐시 사이에서 데이터 버스(B3 및 B4)를 이용하여 발생할 수 있다.
실제 버스 대역폭 차이는 실제 내부 및 외부 버스 실행 사이의 대기 설정과 사이클 시간에서의 차이에 기인하여 이론적으로 4:1의 팩터와는 상이하게 될 수 있다. 내부버스는 다중 버스 전송 프로토콜을 지원하며, 이는 외부 프로세서 버스에 의해 사용되는 동일한 프로토콜을 반영하지 못할 수 있다. 예를 들면, DDR 외부 프로세서 프로토콜에 의해 사용되는 버전과 설정 모두는 실질적으로 내부 버스 프로토콜에 의해 사용되는 것과 상이하게 될 수 있다.
비휘발성 메모리(예를 들면 플래시)에 데이터를 기록하거나 그로부터 데이터를 판독하는 (초당 메가바이트로 일반적으로 측정되는)데이터 전송 속도를 증가시키는 하나의 방법은 동시에 다수의 메모리 컴포넌트로 데이터를 기록하고 그로부터 데이터를 판독하는 것이다. 이러한 병렬 데이터 전송 설계를 활용하면, 데이터의 커다란 블록이 다수의 별개의 메모리 컴포넌트를 이용하여 가능한 효율적으로 전송될 수 있다.
가능한 작은 판독-기록 데이터 단위 크기를 가지는 컴퓨팅 디바이스의 운영 시스템을 활용할 수 있는 것이 효익을 가진다. 더 작은 최소 단위 크기(즉, 데이터 섹터)를 활용하는 것은 더 작은 크기의 정보가 메모리로부터 판독되거나 기록될 때(예를 들면, 파일 디렉토리 정보가 다수의 작은 크기의 정보들로 인코딩될 때) 메모리 스토리지 공간을 불필요하게 낭비하는 것을 방지한다. 또한, 더 작은 단위의 데이터를 활용하면 주어진 기록 매체를 마모시키는 불필요한 기록 동작을 방지할 수도 있다.
불행히도, 보다 빠른 데이터 전송 속도와 더 작은 섹터 크기를 달성하는 2개의 목적은 대개 상충관계에 있다. 데이터 전송 속도를 증가시키면서 데이터 크기를 더 작은 단위로 유지하는 수단이 바람직하다. 추가로, MCP 컴포넌트 사이의 최소 전력 손실과 최소 필요한 연결 모두를 가지는 수단을 달성하는 것이 바람직하다.
도 9에 도시된 바와 같이, AMS 컨트롤러(138)는 다수의 비휘발성 컴포넌트 인터페이스(144)(예를 들면 플래시 인터페이스)를 포함한다. 이러한 다수 인터페이스는 동시에 다수의 비휘발성 컴포넌트로부터의 판독 및 그로의 기록을 하는것을 활용하여, 단일 비휘발성 디바이스의 다수 컴포넌트의 판독 및 기록 데이터 전송 속도를 증가시킨다. 불행히도, 이는 더 작은 블록의 데이터가 저장될 때 고유의 단점을 가져온다. 이러한 단점을 극복하기 위해, 본 발명의 개별 비휘발성 플래시 인터페이스(144)는 단일한 판독 또는 기록 동작 동안 개별 플래시 컴포넌트 각각을 이네이블링하는 특징을 포함한다. 컴포넌트를 이네이블링 또는 디세이블링하는 이러한 목적을 달성하기 위한 다수의 기술이 실현될 수 있다. 제 1 기술은 각각의 비휘발성 컴포넌트로의 개별 이네이블 신호를 이용하는 것이다. 이러한 기술은 주어진 판독 또는 기록 동작 동안 사용되지 않는 디바이스를 디세이블함으로써 전력 소비를 최소화하는 이점을 가진다. 제 2 기술은 주어진 기록 동작 동안 사용된 어드레스를 변형하는 것이다.
종래 기술에 공지된 바와 같이, 플래시와 같은 비휘발성 스토리지 디바이스는 결함이 있는 것으로 알려져서 정보를 저장하기 위해 사용될 수 없는 특정한 어드레스 위치를 가진다. 제 2 기술을 가지고, 기록되지 않는 것이 바람직한 개별 컴포넌트의 어드레스 위치가 결함있는 것으로 알려진 위치로 설정된다. 초과 기록 동작은 이러한 어드레스 정보가 이미 결함있는 것으로 플래그되기 때문에 유효한 저장된 정보를 손상시키지 않고, 정보는 이러한 위치에서 검색되지 않는다. 이는 어드레스 정보가 이미 정상 동작을 위해 컴포넌트에 제공될 것을 요구받기 때문에 컴포넌트에 대한 추가적인 연결을 더 필요로하지 않는다. 컴포넌트의 서브세트에 기록을 하는 목적은 따라서 컨트롤러와 비휘발성 스토리지 컴포넌트 사이의 연결을 추가할 필요없이 달성된다.
AMS 에 대한 추가적인 인터페이스
도 1에 도시된 바와 같이, 본 발명의 하나의 실시예에서 AMS MCP 집적회로는 추가적인 DRAM 및 플래시 메모리 컴포넌트에 결합되는 확장 플래시 버스(26)와 확장 DRAM 버스(24)를 포함하도록 설계된다. 당업자에 의해 이해되는 바와 같이, 추가적인 DRAM과 플래시 메모리 컴포넌트는 기존 AMS 파일 시스템 파티션(50)내의 내장 SRAM/DRAM/플래시 설치가능 파일 시스템(54)에 있는 기존 드라이버 소프트웨어와 기능하도록 구성되어야 한다(도 3 참조). 그렇지 않으면, 부가된 DRAM 또는 플래시 메모리 컴포넌트는 예측할 수 없는 오류가 설치시 방지될 수 있도록 기존 AMS 메모리 컴포넌트 드라이버가 업데이트되는 것이 필요하다.
추가로, 본 발명의 하나의 실시예에서, AMS MCP 집적 회로는 확장 버스 인터페이스(28)를 포함하도록 설계되어(도 1에 도시됨), 컨트롤러는 확장 버스를 통해 제 2 컴퓨팅 디바이스와 통신할 수 있다. 이러한 확장 버스 인터페이스(28)는 편의성과 간략화를 위해 확장 DRAM 버스(24) 및 확장 플래시 버스(26)에 독립적인 것으로 도시되지만, 확장 버스 인터페이스(28)는 AMS 컨트롤러 핀수를 감소시키기 위해 확장 DRAM 버스(24) 또는 확장 플래시 버스(26) 중 어느 하나로 설정가능하게 통합될 수 있다. 확장 버스 인터페이스(28)는 효과적으로 AMS 컨트롤러가 다수의 외부 컴퓨팅 디바이스와 동시에 통신하고 저장된 데이터를 전송하도록 한다.
상술한 바와 같이, (도 1에 도시된)본 실시예의 SRAM(14), DRAM(16), 및 플래시(18) 메모리 컴포넌트는 AMS 내에서 기능할 수 있는 메모리 유형의 단순한 예시일 뿐이고, 본 발명은 본 실시예에서 사용되는 정확한 메모리 유형에 한정되는 것은 아니라는 것을 또한 이해해야한다. 상술한 메모리 유형과 유사한 특성 및 기능을 제공하는 대안의 기술이 존재한다. 예를 들면, SRAM(14)의 구현은 PSRAM(Pseudo SRAM)의 유형으로 대체될 수 있고; DRAM(16)의 구현은 ZRAM(Zero Capacitor RAM) 또는 TTRAM(Twin Transistor RAM)의 유형으로 대체될 수 있고; 플래시(18)의 구현은 낸드 또는 노어 유형 플래시로서 지정될 수 있거나, 또는 상변이 메모리(PCM, PPRAM)로 대체될 수 있다. 명확하게, 상술한 대안의 메모리 컴포넌트 유형들은 배타적인 것이 아니고, 본 발명이 상술한 기능을 수행하도록 하는 다수의 다른 변형이 구현될 수 있다.

Claims (30)

  1. 단일 컨트롤러, 제 1 메모리 유형, 제 2 메모리 유형, 제 3 메모리 유형, 내부 버스 시스템, 및 외부 버스 인터페이스를 포함하는, 외부 컴퓨팅 디바이스의 성능을 개선시키기 위한 어댑티브 메모리 디바이스에 있어서, 상기 단일 컨트롤러는:
    내부 버스 시스템을 이용하여 3 가지 메모리 유형 모두와 통신하고;
    외부 버스 인터페이스를 통해 단일 메모리 디바이스로서 외부 컴퓨팅 디바이스와 통신하고; 및
    제 1 메모리 유형 내의 스토리지 공간에 캐시-데이터 스토리지 할당을 하고, 제 1 메모리 유형 내의 스토리지 공간이 풀(full)이 된 것으로 판정된 후에, 캐시-데이터 스토리지 할당을 제 2 메모리 유형 내의 스토리지 공간에 할당;하도록 구성되는 것을 특징으로 하는 어댑티브 메모리 디바이스.
  2. 제 1 항에 있어서, 제 1 메모리 유형은 정적 랜덤 액세스 메모리(SRAM)이고, 제 2 메모리 유형은 동적 랜덤 액세스 메모리(DRAM)이고, 제 3 메모리 유형은 플래시 메모리인 것을 특징으로 하는 어댑티브 메모리 디바이스.
  3. 제 1 항에 있어서, 제 1 및 제 2 메모리 유형은 별개의 휘발성 메모리 유형이고, 제 3 메모리 유형은 비휘발성 메모리 유형이고; 상기 단일 컨트롤러는:
    전력 소비를 최소화하기 위해 제 1 및 제 2 메모리 유형의 일부의 전원을 차단하도록 더 설정되는 것을 특징으로 하는 어댑티브 메모리 디바이스.
  4. 제 2 항에 있어서, 상기 단일 컨트롤러는:
    SRAM 또는 플래시 메모리로 중 어느 하나로부터 DRAM으로 캐시-데이터 전송을 하도록 더 설정되고;
    캐시-데이터가 SRAM 내에 존재한다면, 상기 캐시-데이터는 SRAM으로부터 DRAM으로 전송되고; 및
    상기 캐시-데이터가 SRAM 내에 존재하지 않고, 플래시 메모리 내에 존재한다면, 상기 캐시-데이터는 플래시 메모리로부터 DRAM으로 전송되는 것을 특징으로 하는 어댑티브 메모리 디바이스.
  5. 제 2 항에 있어서, 상기 단일 컨트롤러는:
    데이터 미리보기 스킴에 따라 플래시 메모리로부터 SRAM 및 DRAM으로 데이터를 캐싱하도록 더 설정되는 것을 특징으로 하는 어댑티브 메모리 디바이스.
  6. 단일 컨트롤러, 제 1 메모리 유형, 제 2 메모리 유형, 제 3 메모리 유형, 내부 버스 시스템, 및 외부 버스 인터페이스를 포함하는 어댑티브 메모리 디바이스를 제어하는 방법에 있어서, 상기 방법은,
    내부 버스 시스템을 이용하여 3 가지 메모리 유형 모두와 통신하는 단계;
    외부 버스 인터페이스를 통해 단일 메모리 디바이스로서 외부 컴퓨팅 디바이스와 통신하는 단계; 및
    제 1 메모리 유형 내의 스토리지 공간에 캐시-데이터 스토리지 할당을 하고, 제 1 메모리 유형 내의 스토리지 공간이 풀(full)이 된 것으로 판정된 후에, 캐시-데이터 스토리지 할당을 제 2 메모리 유형 내의 스토리지 공간에 할당하는 단계;를 포함하는 것을 특징으로 하는 방법.
  7. 제 6 항에 있어서, 제 1 메모리 유형은 정적 랜덤 액세스 메모리(SRAM)이고, 제 2 메모리 유형은 동적 랜덤 액세스 메모리(DRAM)이고, 제 3 메모리 유형은 플래시 메모리인 것을 특징으로 하는 방법.
  8. 제 6 항에 있어서, 제 1 및 제 2 메모리 유형은 별개의 휘발성 메모리 유형이고, 제 3 메모리 유형은 비휘발성 메모리 유형이고; 상기 방법은:
    전력 소비를 최소화하기 위해 기록되지 않은 제 1 및 제 2 메모리 유형의 일부의 전원을 차단하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  9. 제 7 항에 있어서, 상기 방법은:
    SRAM 또는 플래시 메모리로 중 어느 하나로부터 DRAM으로 캐시-데이터 전송하는 단계;
    캐시-데이터가 SRAM 내에 존재한다면, 상기 캐시-데이터를 SRAM으로부터 DRAM으로 전송하는 단계; 및
    상기 캐시-데이터가 SRAM 내에 존재하지 않고, 플래시 메모리 내에 존재한다면, 상기 캐시-데이터를 플래시 메모리로부터 DRAM으로 전송하는 단계;를 더 포함하는 것을 특징으로 하는 방법.
  10. 제 7 항에 있어서,
    데이터 미리보기 스킴에 따라 플래시 메모리로부터 SRAM 및 DRAM으로 데이터를 캐싱하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 어댑티브 메모리 디바이스의 단일 컨트롤러의 동작을 제어하는 컴퓨터 실행가능한 프로그램을 포함하는 컴퓨터 판독가능한 매체로서, 상기 어댑티브 메모리 디바이스가 제 1 메모리 유형, 제 2 메모리 유형, 제 3 메모리 유형, 내부 버스 시스템, 및 외부 버스 인터페이스를 포함하는 컴퓨터 프로그램 판독가능한 매체에 있어서, 상기 컴퓨터 실행가능 프로그램은 실행시 상기 단일 컨트롤러로 하여금:
    내부 버스 시스템을 이용하여 3 가지 메모리 유형 모두와 통신하고;
    외부 버스 인터페이스를 통해 단일 메모리 디바이스로서 외부 컴퓨팅 디바이스와 통신하고; 및
    제 1 메모리 유형 내의 스토리지 공간에 캐시-데이터 스토리지 할당을 하고, 제 1 메모리 유형 내의 스토리지 공간이 풀(full)이 된 것으로 판정된 후에, 캐시-데이터 스토리지 할당을 제 2 메모리 유형 내의 스토리지 공간에 할당하는; 방법을 수행하도록 하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  12. 제 11 항에 있어서, 제 1 메모리 유형은 정적 랜덤 액세스 메모리(SRAM)이고, 제 2 메모리 유형은 동적 랜덤 액세스 메모리(DRAM)이고, 제 3 메모리 유형은 플래시 메모리인 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  13. 제 11 항에 있어서, 제 1 및 제 2 메모리 유형은 별개의 휘발성 메모리 유형이고, 제 3 메모리 유형은 비휘발성 메모리 유형이고; 상기 컴퓨터 실행가능한 프로그램에 의해 실행되는 상기 방법은:
    전력 소비를 최소화하기 위해 기록되지 않은 제 1 및 제 2 메모리 유형의 일부의 전원을 차단하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  14. 제 12 항에 있어서, 상기 컴퓨터 실행가능한 프로그램에 의해 실행되는 상기 방법은:
    SRAM 또는 플래시 메모리로 중 어느 하나로부터 DRAM으로 데이터를 캐싱하는 단계;
    상기 캐싱된-데이터가 SRAM 내에 존재한다면, 상기 캐싱된 데이터를 SRAM으로부터 DRAM으로 전송하는 단계; 및
    상기 캐시-데이터가 SRAM 내에 존재하지 않고, 플래시 메모리 내에 존재한다면, 상기 캐시-데이터를 플래시 메모리로부터 DRAM으로 전송하는 단계;를 더 포함 하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  15. 제 12 항에 있어서, 상기 컴퓨터 실행가능한 프로그램에 의해 실행되는 상기 방법은:
    데이터 미리보기 스킴에 따라 플래시 메모리로부터 SRAM 및 DRAM으로 데이터를 캐시-데이터를 전송하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  16. 어댑티브 메모리 시스템의 단일 컨트롤러의 데이터 미리보기 캐싱 스킴을 구현하기 위한 컴퓨터 실행가능한 프로그램을 포함하는 컴퓨터 판독가능한 매체로서, 상기 어댑티브 메모리 시스템은 제 1 메모리 유형, 제 2 메모리 유형, 제 3 메모리 유형, 내부 버스 시스템, 및 외부 버스 인터페이스를 더 포함하는, 컴퓨터 판독가능한 매체에 있어서, 상기 컴퓨터 실행가능 프로그램은 실행시 상기 단일 컨트롤러로 하여금:
    외부 컴퓨팅 디바이스 상에서 실행되는 애플리케이션으로부터 섹터 데이터의 시퀀스를 획득하고;
    상기 획득된 섹터 테이터의 시퀀스와 복수의 미리 저장된 섹터 데이터의 시퀀스를 비교하여 제 1 레벨의 매칭이 있는지를 판정하고;
    상기 획득된 섹터 데이터의 시퀀스와 복수의 미리 저장된 섹터 데이터의 시퀀스 사이에 제 1 레벨의 매칭이 있는 것으로 판정되면, 상기 판정된 제 1 레벨의 매칭 데이터로 적어도 제 1 메모리 유형을 캐싱하고; 및
    상기 획득된 섹터 데이터의 시퀀스와 복수의 미리 저장된 섹터 데이터의 시퀀스 사이에 제 1 레벨의 매칭이 있는 것으로 판정되지 않으면, 제 2 레벨의 매칭을 가지는 복수의 미리 저장된 섹터 데이터의 시퀀스로부터 섹터 데이터의 시퀀스가 선택될 수 있는지를 판정하는; 방법을 수행하도록 하고,
    상기 제 1 레벨의 매칭은 상기 제 2 레벨의 매칭보다 매칭의 가능성이 더 높은 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  17. 제 16 항에 있어서, 제 1 메모리 유형은 정적 랜덤 액세스 메모리(SRAM)이고, 제 2 메모리 유형은 동적 랜덤 액세스 메모리(DRAM)이고, 제 3 메모리 유형은 플래시 메모리인 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  18. 제 16 항에 있어서, 상기 제 2 레벨의 매칭을 가지는 섹터 데이터의 시퀀스가 선택될 수 있다면, 상기 제 2 레벨의 매칭을 가지는 섹터 데이터의 시퀀스가 제 1 메모리 유형 또는 제 2 메모리 유형으로 캐싱되고; 및
    상기 제 2 레벨의 매칭을 가지는 섹터 데이터의 시퀀스가 선택될 수 없다면, 캐시-데이터 트레이닝 시퀀스를 시작하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  19. 제 18 항에 있어서, 캐시 데이터 트레이닝 시퀀스는 제 3 메모리 유형에 저장된 시퀀스의 비휘발성 사본을 가지면서 제 1 메모리 유형 또는 제 2 메모리 유형 중 어느 하나 내에 획득된 섹터 데이터의 시퀀스를 저장하는 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  20. 제 19 항에 있어서, 제 1 메모리 유형은 정적 랜덤 액세스 메모리(SRAM)이고, 제 2 메모리 유형은 동적 랜덤 액세스 메모리(DRAM)이고, 제 3 메모리 유형은 플래시 메모리인 것을 특징으로 하는 컴퓨터 판독가능한 매체.
  21. 어댑티브 메모리 시스템의 단일 컨트롤러의 데이터 미리보기 캐싱 스킴을 구현하는 방법으로서, 상기 어댑티브 메모리 시스템이 단일 컨트롤러, 제 1 메모리 유형, 제 2 메모리 유형, 제 3 메모리 유형, 내부 버스 시스템, 및 외부 버스 인터페이스를 포함하는 방법에 있어서:
    외부 컴퓨팅 디바이스 상에서 실행되는 애플리케이션으로부터 섹터 데이터의 시퀀스를 획득하는 단계;
    상기 획득된 섹터 데이터의 시퀀스와 복수의 미리 저장된 섹터 데이터의 시퀀스를 비교하여 제 1 레벨의 매칭이 있는 지를 판정하는 단계; 및
    상기 획득된 섹터 데이터의 시퀀스와 복수의 미리 저장된 섹터 데이터의 시퀀스 사이에 제 1 레벨의 매칭이 있는 것으로 판정되면, 상기 판정된 제 1 레벨의 매칭 데이터를 적어도 제 1 메모리 유형에 캐싱하는 단계; 및
    상기 획득된 섹터 데이터의 시퀀스와 복수의 미리 저장된 섹터의 시퀀스 사이에 제 1 레벨의 매칭이 있는 것으로 판정되지 않으면, 제 2 레벨의 매칭을 가지는 복수의 미리 저장된 섹터 데이터의 시퀀스로부터 섹터 데이터의 시퀀스가 선택될 수 있는지를 판정하는 단계;를 포함하고,
    상기 제 1 레벨의 매칭은 상기 제 2 레벨의 매칭보다 매칭의 가능성이 더 높은 것을 특징으로 하는 방법.
  22. 제 21 항에 있어서, 제 1 메모리 유형은 정적 랜덤 액세스 메모리(SRAM)이고, 제 2 메모리 유형은 동적 랜덤 액세스 메모리(DRAM)이고, 제 3 메모리 유형은 플래시 메모리인 것을 특징으로 하는 방법.
  23. 제 21 항에 있어서, 상기 제 2 레벨의 매칭을 가지는 섹터 데이터의 시퀀스가 선택될 수 있다면, 상기 제 2 레벨의 매칭을 가지는 섹터 데이터의 시퀀스가 제 1 메모리 유형 또는 제 2 메모리 유형으로 캐싱되고; 및
    상기 제 2 레벨의 매칭을 가지는 섹터 데이터의 시퀀스가 선택될 수 없다면, 캐시-데이터 트레이닝 시퀀스를 시작하는 것을 특징으로 하는 방법.
  24. 제 23 항에 있어서, 캐시 데이터 트레이닝 시퀀스는 제 3 메모리 유형에 저장된 시퀀스의 비휘발성 사본을 가지면서 제 1 메모리 유형 또는 제 2 메모리 유형 중 어느 하나 내에 획득된 섹터 데이터의 시퀀스를 저장하는 것을 특징으로 하는 방법.
  25. 제 24 항에 있어서, 제 1 메모리 유형은 정적 랜덤 액세스 메모리(SRAM)이고, 제 2 메모리 유형은 동적 랜덤 액세스 메모리(DRAM)이고, 제 3 메모리 유형은 플래시 메모리인 것을 특징으로 하는 방법.
  26. 제 1 항에 있어서, 제 1 및 제 2 메모리 유형은 별개의 휘발성 메모리 유형이고, 제 3 메모리 유형은 비휘발성 메모리 유형이고; 상기 단일 컨트롤러는:
    가용한 메모리 용량을 확장시키기 위해 외부 메모리와 통신하는 적어도 하나의 확장 메모리 버스를 포함하도록 더 설정되는 것을 특징으로 하는 어댑티브 메모리 디바이스.
  27. 제 1 항에 있어서, 제 1 및 제 2 메모리 유형은 별개의 휘발성 메모리 유형이고, 제 3 메모리 유형은 비휘발성 메모리 유형이고; 상기 단일 컨트롤러는:
    제 2 외부 컴퓨팅 디바이스와 통신하는 적어도 하나의 확장 메모리 인터페이스를 포함하도록 더 설정되는 것을 특징으로 하는 어댑티브 메모리 디바이스.
  28. 제 1 항에 있어서, 제 1 및 제 2 메모리 유형은 별개의 휘발성 메모리 유형이고, 제 3 메모리 유형은 다수의 컴포넌트를 구비하는 비휘발성 메모리 유형이고; 상기 단일 컨트롤러는:
    선택적으로 상기 다수의 컴포넌트 중 하나 이상을 이네이블하게 하고; 및
    선택적으로 상기 다수의 컴포넌트 중 하나 이상을 디세이블하게 하도록;
    더 설정되는 것을 특징으로 하는 어댑티브 메모리 디바이스.
  29. 제 28 항에 있어서, 상기 단일 컨트롤러는 이네이블하게될 컴포넌트들로 이네이블링 신호를 전송함으로써 상기 다수의 컴포넌트 중 하나 이상을 선택적으로 이네이블하게 하는 것을 특징으로 하는 어댑티브 메모리 디바이스.
  30. 제 28 항에 있어서, 상기 단일 컨트롤러는 이네이블하게될 컴포넌트들의 어드레스 위치를 기지의 손상된 어드레스 위치로 설정함으로써 상기 다수의 컴포넌트 중 하나 이상을 선택적으로 디세이블하게 하는 것을 특징으로 하는 어댑티브 메모리 디바이스.
KR1020097016681A 2007-01-10 2008-01-10 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템 KR101469512B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US88437807P 2007-01-10 2007-01-10
US60/884,378 2007-01-10
PCT/US2008/050787 WO2008086488A2 (en) 2007-01-10 2008-01-10 Adaptive memory system for enhancing the performance of an external computing device

Publications (2)

Publication Number Publication Date
KR20090108707A KR20090108707A (ko) 2009-10-16
KR101469512B1 true KR101469512B1 (ko) 2014-12-05

Family

ID=39609376

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097016681A KR101469512B1 (ko) 2007-01-10 2008-01-10 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템

Country Status (7)

Country Link
US (4) US8135933B2 (ko)
EP (1) EP2122473B1 (ko)
KR (1) KR101469512B1 (ko)
CN (1) CN101611387B (ko)
HK (1) HK1140031A1 (ko)
TW (2) TWI530791B (ko)
WO (1) WO2008086488A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593023B2 (en) 2020-10-23 2023-02-28 SK Hynix Inc. Memory controller and method of operating the same

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009026296A (ja) * 2007-06-21 2009-02-05 Toshiba Corp 電子デバイス、メモリデバイス、ホスト装置
IL187044A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Fast secure boot implementation
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8195967B2 (en) * 2008-05-29 2012-06-05 International Business Machines Corporation Reducing power consumption during execution of an application on a plurality of compute nodes
US8095811B2 (en) * 2008-05-29 2012-01-10 International Business Machines Corporation Reducing power consumption while synchronizing a plurality of compute nodes during execution of a parallel application
US8533504B2 (en) * 2008-05-29 2013-09-10 International Business Machines Corporation Reducing power consumption during execution of an application on a plurality of compute nodes
US20090300399A1 (en) * 2008-05-29 2009-12-03 International Business Machines Corporation Profiling power consumption of a plurality of compute nodes while processing an application
US8296590B2 (en) * 2008-06-09 2012-10-23 International Business Machines Corporation Budget-based power consumption for application execution on a plurality of compute nodes
US8291427B2 (en) * 2008-06-09 2012-10-16 International Business Machines Corporation Scheduling applications for execution on a plurality of compute nodes of a parallel computer to manage temperature of the nodes during execution
US8458722B2 (en) 2008-06-09 2013-06-04 International Business Machines Corporation Thread selection according to predefined power characteristics during context switching on compute nodes
US8250389B2 (en) * 2008-07-03 2012-08-21 International Business Machines Corporation Profiling an application for power consumption during execution on a plurality of compute nodes
US8069300B2 (en) * 2008-09-30 2011-11-29 Micron Technology, Inc. Solid state storage device controller with expansion mode
JP2010165249A (ja) * 2009-01-16 2010-07-29 Sony Corp 情報処理装置、情報処理方法およびプログラム
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US20110128766A1 (en) * 2009-11-30 2011-06-02 Ward Parkinson Programmable Resistance Memory
US8914568B2 (en) 2009-12-23 2014-12-16 Intel Corporation Hybrid memory architectures
US8436720B2 (en) 2010-04-29 2013-05-07 International Business Machines Corporation Monitoring operating parameters in a distributed computing system with active messages
US8537618B2 (en) 2010-08-26 2013-09-17 Steven Jeffrey Grossman RAM memory device with NAND type interface
KR101736384B1 (ko) 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
KR20120079682A (ko) * 2011-01-05 2012-07-13 삼성전자주식회사 디램 캐시를 포함하는 메모리 장치 및 이를 포함하는 시스템
US8725978B2 (en) 2011-06-30 2014-05-13 Red Hat, Inc. Using symbol information for categorization of dynamic memory allocations
US8719539B2 (en) * 2011-06-30 2014-05-06 Red Hat, Inc. Using heuristics for field types of a structure to categorize dynamic memory allocations
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US10096350B2 (en) 2012-03-07 2018-10-09 Medtronic, Inc. Memory array with flash and random access memory and method therefor, reading data from the flash memory without storing the data in the random access memory
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
US9317087B2 (en) 2012-04-26 2016-04-19 Ravindraraj Ramaraju Memory column drowsy control
US9026808B2 (en) * 2012-04-26 2015-05-05 Freescale Semiconductor, Inc. Memory with word level power gating
CN102722444A (zh) * 2012-05-23 2012-10-10 北京百纳威尔科技有限公司 扩展内部存储空间的方法、装置及终端
US9164804B2 (en) 2012-06-20 2015-10-20 Memory Technologies Llc Virtual memory module
US20130346673A1 (en) * 2012-06-25 2013-12-26 Yi-Chou Chen Method for improving flash memory storage device access
KR101975528B1 (ko) 2012-07-17 2019-05-07 삼성전자주식회사 패스트 어레이 영역을 갖는 반도체 메모리 셀 어레이 및 그것을 포함하는 반도체 메모리
US9128845B2 (en) 2012-07-30 2015-09-08 Hewlett-Packard Development Company, L.P. Dynamically partition a volatile memory for a cache and a memory partition
US9116820B2 (en) * 2012-08-28 2015-08-25 Memory Technologies Llc Dynamic central cache memory
US20140156252A1 (en) * 2012-11-30 2014-06-05 International Business Machines Corporation Hybrid platform-dependent simulation interface
CN103019624B (zh) * 2012-12-11 2015-07-15 清华大学 一种相变内存装置
CN103020551B (zh) * 2012-12-21 2015-12-02 清华大学 一种内存架构
US20150339224A1 (en) * 2013-01-03 2015-11-26 Icelero Inc. System and method for host-processor communication over a bus
US10042750B2 (en) 2013-03-15 2018-08-07 Micron Technology, Inc. Apparatuses and methods for adaptive control of memory using an adaptive memory controller with a memory management hypervisor
US9489204B2 (en) * 2013-03-15 2016-11-08 Qualcomm Incorporated Method and apparatus for precalculating a direct branch partial target address during a misprediction correction process
GB2516435A (en) * 2013-04-05 2015-01-28 Continental Automotive Systems Embedded memory management scheme for real-time applications
KR102070626B1 (ko) 2013-06-26 2020-01-30 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US10185515B2 (en) * 2013-09-03 2019-01-22 Qualcomm Incorporated Unified memory controller for heterogeneous memory on a multi-chip package
WO2015089488A1 (en) 2013-12-12 2015-06-18 Memory Technologies Llc Channel optimized storage modules
CN104166147A (zh) * 2014-01-08 2014-11-26 芜湖市振华戎科智能科技有限公司 基于北斗二和gps的双模芯片
WO2015126518A2 (en) 2014-02-20 2015-08-27 Rambus Inc. High performance persistent memory
US9804979B2 (en) * 2014-12-29 2017-10-31 Sandisk Technologies Llc Ring bus architecture for use in a memory module
USD764620S1 (en) 2015-01-14 2016-08-23 Sig Sauer, Inc. Firearm
JP2016167215A (ja) * 2015-03-10 2016-09-15 株式会社東芝 メモリ装置
US20180218317A1 (en) * 2015-03-25 2018-08-02 Joseph Marsh Ryan, III System and method for determining product movement using a sensor
US9720604B2 (en) 2015-08-06 2017-08-01 Sandisk Technologies Llc Block storage protocol to RAM bypass
CN106383775B (zh) * 2015-08-18 2019-03-08 上海景格科技股份有限公司 设备使用时间记录方法及其装置
TWI553478B (zh) * 2015-09-23 2016-10-11 瑞昱半導體股份有限公司 能夠使用外部揮發性記憶體的裝置以及能夠釋放內部揮發性記憶體的裝置
US9904636B2 (en) * 2015-10-22 2018-02-27 John Boyd Modular ultra-wide internal bus mainframe processing units
US10430081B2 (en) * 2016-06-28 2019-10-01 Netapp, Inc. Methods for minimizing fragmentation in SSD within a storage system and devices thereof
US10216685B1 (en) * 2017-07-19 2019-02-26 Agiga Tech Inc. Memory modules with nonvolatile storage and rapid, sustained transfer rates
KR102340446B1 (ko) * 2017-09-08 2021-12-21 삼성전자주식회사 스토리지 장치 및 그것의 데이터 트레이닝 방법
KR102433549B1 (ko) 2017-11-17 2022-08-19 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
US11544168B2 (en) 2017-10-30 2023-01-03 SK Hynix Inc. Memory system
KR102414047B1 (ko) 2017-10-30 2022-06-29 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
KR20190085642A (ko) * 2018-01-11 2019-07-19 에스케이하이닉스 주식회사 메모리 시스템
US11416395B2 (en) 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10831393B2 (en) 2018-02-08 2020-11-10 Micron Technology, Inc. Partial save of memory
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10877892B2 (en) 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
EP3853738A4 (en) * 2018-09-17 2022-06-22 Micron Technology, Inc. CACHE OPERATIONS IN A DUAL-LINE HYBRID MEMORY MODULE
JP2020047340A (ja) * 2018-09-19 2020-03-26 キオクシア株式会社 不揮発性メモリ及びメモリシステム
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
US20210097184A1 (en) * 2019-09-27 2021-04-01 Advanced Micro Devices, Inc. Secure buffer for bootloader
CN111767508B (zh) * 2020-07-09 2024-02-23 地平线(上海)人工智能技术有限公司 计算机实现张量数据计算的方法、装置、介质和设备
CN116955241B (zh) * 2023-09-21 2024-01-05 杭州智灵瞳人工智能有限公司 兼容多类型存储介质的存储芯片
CN117519802A (zh) * 2024-01-08 2024-02-06 之江实验室 基于存算一体单元的数据处理装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029224A (en) * 1995-06-07 2000-02-22 Lucent Technologies Inc. Self-contained memory apparatus having diverse types of memory and distributed control
US20060041711A1 (en) * 2002-11-28 2006-02-23 Renesas Technology Corporation Memory module, memory system, and information device

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459846A (en) * 1988-12-02 1995-10-17 Hyatt; Gilbert P. Computer architecture system having an imporved memory
DE69034191T2 (de) * 1989-04-13 2005-11-24 Sandisk Corp., Sunnyvale EEPROM-System mit aus mehreren Chips bestehender Blocklöschung
JP2862948B2 (ja) * 1990-04-13 1999-03-03 三菱電機株式会社 半導体記憶装置
DE69324508T2 (de) * 1992-01-22 1999-12-23 Enhanced Memory Systems Inc DRAM mit integrierten Registern
JP3904244B2 (ja) * 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
US6230235B1 (en) * 1996-08-08 2001-05-08 Apache Systems, Inc. Address lookup DRAM aging
GB2317722B (en) * 1996-09-30 2001-07-18 Nokia Mobile Phones Ltd Memory device
US6212597B1 (en) * 1997-07-28 2001-04-03 Neonet Lllc Apparatus for and method of architecturally enhancing the performance of a multi-port internally cached (AMPIC) DRAM array and like
US6336174B1 (en) * 1999-08-09 2002-01-01 Maxtor Corporation Hardware assisted memory backup system and method
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
US6694380B1 (en) * 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
JP3871853B2 (ja) * 2000-05-26 2007-01-24 株式会社ルネサステクノロジ 半導体装置及びその動作方法
US6836839B2 (en) * 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
JP2003006041A (ja) * 2001-06-20 2003-01-10 Hitachi Ltd 半導体装置
GB0123416D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
US6986021B2 (en) * 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
TWI282513B (en) * 2002-06-12 2007-06-11 Mediatek Inc A pre-fetch device of instruction for an embedded system
US8276135B2 (en) * 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7478031B2 (en) * 2002-11-07 2009-01-13 Qst Holdings, Llc Method, system and program for developing and scheduling adaptive integrated circuity and corresponding control or configuration information
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US20050050261A1 (en) * 2003-08-27 2005-03-03 Thomas Roehr High density flash memory with high speed cache data interface
US7657706B2 (en) * 2003-12-18 2010-02-02 Cisco Technology, Inc. High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US20050220115A1 (en) * 2004-04-06 2005-10-06 David Romano Method and apparatus for scheduling packets
US20060095622A1 (en) * 2004-10-28 2006-05-04 Spansion, Llc System and method for improved memory performance in a mobile device
TWM286985U (en) * 2005-08-22 2006-02-01 Regulus Technologies Co Ltd Memory module with smart-type power-saving and fault-tolerance
US7376034B2 (en) * 2005-12-15 2008-05-20 Stec, Inc. Parallel data storage system
US20070143547A1 (en) * 2005-12-20 2007-06-21 Microsoft Corporation Predictive caching and lookup
US20070147115A1 (en) 2005-12-28 2007-06-28 Fong-Long Lin Unified memory and controller
US7996600B2 (en) * 2007-08-30 2011-08-09 Unity Semiconductor Corporation Memory emulation in an electronic organizer
US7802057B2 (en) * 2007-12-27 2010-09-21 Intel Corporation Priority aware selective cache allocation
US8108614B2 (en) * 2007-12-31 2012-01-31 Eric Sprangle Mechanism for effectively caching streaming and non-streaming data patterns
US8615499B2 (en) * 2012-01-27 2013-12-24 International Business Machines Corporation Estimating data reduction in storage systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6029224A (en) * 1995-06-07 2000-02-22 Lucent Technologies Inc. Self-contained memory apparatus having diverse types of memory and distributed control
US20060041711A1 (en) * 2002-11-28 2006-02-23 Renesas Technology Corporation Memory module, memory system, and information device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593023B2 (en) 2020-10-23 2023-02-28 SK Hynix Inc. Memory controller and method of operating the same

Also Published As

Publication number Publication date
WO2008086488B1 (en) 2008-10-23
US8504793B2 (en) 2013-08-06
EP2122473A4 (en) 2011-06-08
US20120131269A1 (en) 2012-05-24
CN101611387B (zh) 2013-03-13
HK1140031A1 (en) 2010-09-30
US8918618B2 (en) 2014-12-23
US20090024819A1 (en) 2009-01-22
TWI463321B (zh) 2014-12-01
US9424182B2 (en) 2016-08-23
US8135933B2 (en) 2012-03-13
TW201523261A (zh) 2015-06-16
EP2122473B1 (en) 2012-12-05
TW200839519A (en) 2008-10-01
CN101611387A (zh) 2009-12-23
US20140013039A1 (en) 2014-01-09
KR20090108707A (ko) 2009-10-16
US20150074344A1 (en) 2015-03-12
WO2008086488A2 (en) 2008-07-17
TWI530791B (zh) 2016-04-21
WO2008086488A3 (en) 2008-09-04
EP2122473A2 (en) 2009-11-25

Similar Documents

Publication Publication Date Title
KR101469512B1 (ko) 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템
US11055230B2 (en) Logical to physical mapping
US7519754B2 (en) Hard disk drive cache memory and playback device
US8443144B2 (en) Storage device reducing a memory management load and computing system using the storage device
KR100281432B1 (ko) 플래쉬 메모리에 기초한 주메모리
US7613870B2 (en) Efficient memory usage in systems including volatile and high-density memories
US20050080986A1 (en) Priority-based flash memory control apparatus for XIP in serial flash memory,memory management method using the same, and flash memory chip thereof
US11194737B2 (en) Storage device, controller and method for operating the controller for pattern determination
JP2007183962A (ja) 一体型メモリ及びコントローラ
KR20220045216A (ko) 유형화된 메모리 액세스에 대한 유형화되지 않은 메모리 액세스의 맵핑
TWI764265B (zh) 用於將資料連結至記憶體命名空間的記憶體系統
KR20220060548A (ko) 데이터가 저장된 메모리 디바이스를 식별하기 위해 저장된 메타데이터 액세싱
JP2015026379A (ja) 磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理
KR20220041937A (ko) 메모리 유형에 대한 페이지 테이블 후크
US11126573B1 (en) Systems and methods for managing variable size load units
US20050132117A1 (en) [card reader, and bridge controller and data transmission method thereof]
EP4116829A1 (en) Systems and methods for managing variable size load units
US10671322B1 (en) Method for performing storage space management, associated data storage device, and controller thereof

Legal Events

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

Payment date: 20171117

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee