KR20190111714A - 스토리지 디바이스 및 컴퓨터 시스템 - Google Patents
스토리지 디바이스 및 컴퓨터 시스템 Download PDFInfo
- Publication number
- KR20190111714A KR20190111714A KR1020180083935A KR20180083935A KR20190111714A KR 20190111714 A KR20190111714 A KR 20190111714A KR 1020180083935 A KR1020180083935 A KR 1020180083935A KR 20180083935 A KR20180083935 A KR 20180083935A KR 20190111714 A KR20190111714 A KR 20190111714A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- block
- host
- memory
- controller
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 717
- 230000008569 process Effects 0.000 claims abstract description 657
- 238000012545 processing Methods 0.000 claims abstract description 95
- 230000026676 system process Effects 0.000 claims description 35
- 238000012544 monitoring process Methods 0.000 description 69
- 238000012005 ligant binding assay Methods 0.000 description 44
- 238000007726 management method Methods 0.000 description 36
- 238000013523 data management Methods 0.000 description 27
- 230000007423 decrease Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012508 change request Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035943 smell Effects 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
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)
- Read Only Memory (AREA)
Abstract
Description
도 2는, 호스트(호스트 컴퓨터)의 내부 구성예를 나타내는 블록도.
도 3은, 제1 실시 형태의 스토리지 디바이스의 구성예를 나타내는 블록도.
도 4는, 제1 실시 형태의 스토리지 디바이스 내에 설치된 불휘발성 메모리의 구성예를 나타내는 도면.
도 5는, 제1 실시 형태의 스토리지 디바이스에 의해 사용되는, 불휘발성 메모리의 사용 상황을 관리하기 위한 테이블의 예를 나타내는 도면.
도 6은, 프로세스 감시부를 포함하는, 호스트의 내부 구성예를 나타내는 블록도.
도 7은, 호스트의 프로세스 감시부에 의해 사용되는 관리 테이블의 예를 나타내는 도면.
도 8은, 호스트와 제1 실시 형태의 스토리지 디바이스에 의해 실행되는, 총 프로세스 수 통지 처리 및 데이터 이동 처리의 수순을 나타내는 흐름도.
도 9는, 호스트와 제1 실시 형태의 스토리지 디바이스에 의해 실행되는, 프로세스 수 증감 통지 처리 및 데이터 이동 처리의 수순을 나타내는 흐름도.
도 10은, 제2 실시 형태의 스토리지 디바이스에 대응하는 호스트의 내부 구성예를 나타내는 블록도.
도 11은, 제2 실시 형태의 스토리지 디바이스에 의해 작성되는 관리 테이블의 예를 나타내는 도면.
도 12는, 호스트와 제2 실시 형태의 스토리지 디바이스에 의해 실행되는 데이터 판독/기입 처리의 수순을 나타내는 흐름도.
도 13은, 프로세스의 종료에 따라서 호스트와 제2 실시 형태의 스토리지 디바이스에 의해 실행되는, 프로세스 식별자 통지 처리 및 데이터 이동 처리의 수순을 나타내는 흐름도.
도 14는, 총 프로세스 수가 임계값을 초과한 경우 또는 프로세스 수의 증가의 통지를 수신한 경우에 제2 실시 형태의 스토리지 디바이스에 의해 실행되는 데이터 이동 처리의 수순을 나타내는 흐름도.
도 15는, 호스트에 의해 실행되는, 생성된 프로세스의 종별(유저 프로세스/시스템 프로세스)을 스토리지 디바이스에 통지하는 처리의 수순을 나타내는 흐름도.
도 16은, 호스트와 제3 실시 형태의 스토리지 디바이스에 의해 실행되는, 프로세스 수 증감 통지 처리 및 데이터 이동 처리의 수순을 나타내는 흐름도.
도 17은, 호스트와 제3 실시 형태의 스토리지 디바이스에 의해 실행되는, 총 프로세스 수 통지 처리 및 데이터 이동 처리의 수순을 나타내는 흐름도.
도 18은, 제3 실시 형태의 스토리지 디바이스에 의해 실행되는, 종료된 프로세스 중, 유저 프로세스의 데이터를 우선적으로 이동시키는 처리의 수순을 나타내는 흐름도.
도 19는, 호스트와 제4 실시 형태의 스토리지 디바이스에 의해 실행되는, 사용 메모리양 통지 처리 및 데이터 이동 처리의 수순을 나타내는 흐름도.
도 20은, 호스트와 제5 실시 형태의 스토리지 디바이스에 의해 실행되는, 스왑 아웃에 의해 스토리지 디바이스에 기입되는 데이터양을 통지하는 처리 및 데이터 이동 처리의 수순을 나타내는 흐름도.
도 21은, 호스트와 제5 실시 형태의 스토리지 디바이스에 의해 실행되는, 사용 메모리양/스왑 아웃에 의해 스토리지 디바이스에 기입되는 데이터양을 통지하는 처리 및 데이터 이동 처리의 수순을 나타내는 흐름도.
도 22는, 호스트와 제6 실시 형태의 스토리지 디바이스에 의해 실행되는, 빈번하게 기동되는 프로그램을 통지하는 처리 및 데이터 이동 처리의 수순을 나타내는 흐름도.
3: SSD(스토리지 디바이스)
4: 컨트롤러
5: NAND 플래시 메모리
31: 스토리지 드라이버
32: 오퍼레이팅 시스템
33: 파일 시스템
321: 프로세스 관리부
41: 프로세스 감시부
42: 필터 드라이버
402: 호스트 요구 처리부
403: 데이터 제어부
Claims (18)
- 호스트에 접속 가능한 스토리지 디바이스로서,
복수의 블록을 포함하는 불휘발성 메모리와,
상기 불휘발성 메모리에 전기적으로 접속되고, 상기 불휘발성 메모리를 제어하도록 구성된 컨트롤러를 구비하며,
상기 컨트롤러는,
상기 호스트상에서 동작하고 있는 총 프로세스 수를 나타내는 정보를 상기 호스트로부터 수신하고,
상기 총 프로세스 수가 제1 임계값을 상회하고 있다는 판정을 한 후, 상기 불휘발성 메모리의 적어도 하나의 블록에 저장되어 있는 데이터를 상기 불휘발성 메모리의 다른 적어도 하나의 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 제1항에 있어서,
상기 복수의 블록의 각각은, 하나의 메모리 셀에 저장되는 비트의 수를 나타내는 다치도가 서로 다른 복수 종의 블록 중 어느 하나로서 선택적으로 사용되고,
상기 컨트롤러는, 상기 총 프로세스 수가 상기 제1 임계값을 상회하고 있다는 판정을 한 후, 다치도가 낮은 블록에 저장되어 있는 데이터를 보다 다치도가 높은 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 제1항에 있어서,
상기 컨트롤러는,
상기 호스트에 있어서 생성된 각 프로세스의 식별자와 상기 생성된 각 프로세스가 시스템 프로세스 또는 유저 프로세스 중 어느 것인지를 나타내는 종별을 나타내는 정보와, 데이터의 기입을 요구한 프로세스의 식별자가 각각에 부여된 기입 요구 각각을 상기 호스트로부터 수신하고,
상기 생성된 각 프로세스의 식별자와, 상기 생성된 각 프로세스의 종별과, 상기 생성된 각 프로세스에 의해 기입된 데이터에 대응하는 어드레스 범위의 대응 관계를 제1 관리 테이블을 사용하여 관리하고,
상기 총 프로세스 수가 상기 제1 임계값을 상회하고 있다는 판정을 한 후, 상기 제1 관리 테이블에 기초하여, 종별이 상기 유저 프로세스인 프로세스에 의해 상기 불휘발성 메모리에 기입된 데이터를, 종별이 상기 시스템 프로세스인 프로세스에 의해 상기 불휘발성 메모리에 기입된 데이터보다도 우선하여 이동 대상 데이터로서 선택하고, 상기 이동 대상 데이터를, 상기 이동 대상 데이터가 저장되어 있는 블록으로부터 다른 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 제3항에 있어서,
상기 복수의 블록의 각각은, 하나의 메모리 셀에 저장되는 비트의 수를 나타내는 다치도가 서로 다른 복수 종의 블록 중 어느 하나로서 선택적으로 사용되고,
상기 컨트롤러는, 상기 이동 대상 데이터를 다치도가 낮은 블록으로부터 보다 다치도가 높은 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 호스트에 접속 가능한 스토리지 디바이스로서,
복수의 블록을 포함하는 불휘발성 메모리와,
상기 불휘발성 메모리에 전기적으로 접속되고, 상기 불휘발성 메모리를 제어하도록 구성된 컨트롤러를 구비하며,
상기 컨트롤러는,
상기 호스트에 있어서 생성된 각 프로세스의 식별자를 나타내는 정보와, 데이터의 기입을 요구한 프로세스의 식별자가 각각에 부여된 기입 요구 각각을 상기 호스트로부터 수신하고,
상기 생성된 각 프로세스의 식별자와, 상기 생성된 각 프로세스에 의해 기입된 데이터에 대응하는 어드레스 범위의 대응 관계를 제1 테이블을 사용하여 관리하고,
종료된 프로세스의 식별자를 나타내는 정보를 상기 호스트로부터 수신한 후, 상기 제1 테이블에 기초하여, 상기 종료된 프로세스에 의해 상기 불휘발성 메모리에 기입된 제1 데이터를, 상기 제1 데이터가 저장되어 있는 블록으로부터 다른 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 제5항에 있어서,
상기 복수의 블록의 각각은, 하나의 메모리 셀에 저장되는 비트의 수를 나타내는 다치도가 서로 다른 복수 종의 블록 중 어느 하나로서 선택적으로 사용되고,
상기 컨트롤러는, 상기 종료된 프로세스에 의해 상기 불휘발성 메모리에 기입된 상기 제1 데이터를 다치도가 낮은 블록으로부터 보다 다치도가 높은 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 호스트에 접속 가능한 스토리지 디바이스로서,
복수의 블록을 포함하는 불휘발성 메모리와,
상기 불휘발성 메모리에 전기적으로 접속되고, 상기 불휘발성 메모리를 제어하도록 구성된 컨트롤러를 구비하며,
상기 컨트롤러는,
상기 호스트의 메모리 사용량을 나타내는 정보를 상기 호스트로부터 수신하고,
상기 호스트의 메모리 사용량이 제3 임계값을 상회하고 있다는 판정을 한 후, 상기 불휘발성 메모리의 적어도 하나의 블록에 저장되어 있는 데이터를 상기 불휘발성 메모리의 다른 적어도 하나의 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 제7항에 있어서,
상기 복수의 블록의 각각은, 하나의 메모리 셀에 저장되는 비트의 수를 나타내는 다치도가 서로 다른 복수 종의 블록 중 어느 하나로서 선택적으로 사용되고,
상기 컨트롤러는, 상기 호스트의 메모리 사용량이 상기 제3 임계값을 상회하고 있다는 판정을 한 후, 다치도가 낮은 블록에 저장되어 있는 데이터를 보다 다치도가 높은 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 제7항에 있어서,
상기 컨트롤러는,
다음에 일어날 프로세스의 스왑 아웃에 의해 상기 스토리지 디바이스에 기입될 데이터양을 나타내는 정보를 상기 호스트로부터 수신하고,
상기 호스트의 메모리 사용량이 상기 제3 임계값을 상회하고 있다는 판정을 한 후, 상기 수신된 정보에 의해 나타나는 데이터양에 대응하는 빈 용량이 확보되도록 상기 불휘발성 메모리의 적어도 하나의 블록에 저장되어 있는 데이터를 상기 불휘발성 메모리의 다른 적어도 하나의 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 제7항에 있어서,
상기 복수의 블록의 각각은, 하나의 메모리 셀에 저장되는 비트의 수를 나타내는 다치도가 서로 다른 복수 종의 블록 중 어느 하나로서 선택적으로 사용되고,
상기 컨트롤러는,
다음에 일어날 프로세스의 스왑 아웃에 의해 상기 스토리지 디바이스에 기입될 데이터양을 나타내는 정보를 상기 호스트로부터 수신하고,
상기 호스트의 메모리 사용량이 상기 제3 임계값을 상회하고 있다는 판정을 한 후, 상기 수신된 정보에 의해 나타나는 데이터양에 대응하는 빈 용량이 다치도가 낮은 블록에 확보되도록, 다치도가 낮은 블록에 저장되어 있는 데이터를 보다 다치도가 높은 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 호스트에 접속 가능한 스토리지 디바이스로서,
복수의 블록을 포함하는 불휘발성 메모리와,
상기 불휘발성 메모리에 전기적으로 접속되고, 상기 불휘발성 메모리를 제어하도록 구성된 컨트롤러를 구비하며,
상기 복수의 블록의 각각은, 하나의 메모리 셀에 저장되는 비트의 수를 나타내는 다치도가 서로 다른 복수 종의 블록 중 어느 하나로서 선택적으로 사용되고,
상기 컨트롤러는,
상기 호스트에 있어서 생성된 각 프로세스의 식별자를 나타내는 정보와, 데이터의 판독 또는 기입을 요구한 프로세스의 식별자가 각각에 부여된 판독/기입 요구 각각과, 기동 빈도가 높은 프로그램을 나타내는 정보를 상기 호스트로부터 수신하고,
상기 생성된 각 프로세스의 식별자와, 상기 생성된 각 프로세스에 의해 판독 또는 기입된 데이터에 대응하는 어드레스 범위의 대응 관계를 제1 관리 테이블을 사용하여 관리하고,
상기 제1 관리 테이블에 기초하여, 상기 기동 빈도가 높은 프로그램에 대응하는 프로세스에 의해 판독 또는 기입된 데이터를 다치도가 높은 블록으로부터 보다 다치도가 낮은 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 스토리지 디바이스. - 프로세서 및 메모리를 포함하는 컴퓨터와, 스토리지 디바이스를 구비하는 컴퓨터 시스템으로서,
상기 프로세서는, 상기 프로세서상에서 동작하고 있는 총 프로세스 수를 상기 스토리지 디바이스에 통지하는 처리를 실행하도록 구성되고,
상기 스토리지 디바이스는,
복수의 블록을 포함하는 불휘발성 메모리와,
상기 불휘발성 메모리에 전기적으로 접속되고, 상기 불휘발성 메모리를 제어하도록 구성된 컨트롤러를 구비하며,
상기 컨트롤러는,
상기 컴퓨터로부터 통지되는 상기 총 프로세스 수가 제1 임계값을 상회하고 있다는 판정을 한 후, 상기 불휘발성 메모리의 적어도 하나의 블록에 저장되어 있는 데이터를 상기 불휘발성 메모리의 다른 적어도 하나의 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 컴퓨터 시스템. - 제12항에 있어서,
상기 복수의 블록의 각각은, 하나의 메모리 셀에 저장되는 비트의 수를 나타내는 다치도가 서로 다른 복수 종의 블록 중 어느 하나로서 선택적으로 사용되고,
상기 컨트롤러는, 상기 총 프로세스 수가 상기 제1 임계값을 상회하고 있다는 판정을 한 후, 다치도가 낮은 블록에 저장되어 있는 데이터를 보다 다치도가 높은 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 컴퓨터 시스템. - 제12항에 있어서,
상기 프로세서는, 상기 컴퓨터에 있어서 생성된 각 프로세스의 식별자와 상기 생성된 각 프로세스가 시스템 프로세스 또는 유저 프로세스 중 어느 것인지를 나타내는 종별을 나타내는 정보와, 데이터의 기입을 요구한 프로세스의 식별자가 각각에 부여된 기입 요구 각각을 상기 스토리지 디바이스에 송신하도록 구성되고,
상기 컨트롤러는,
상기 생성된 각 프로세스의 식별자와, 상기 생성된 각 프로세스의 종별과, 상기 생성된 각 프로세스에 의해 기입된 데이터에 대응하는 어드레스 범위의 대응 관계를 제1 관리 테이블을 사용하여 관리하고,
상기 총 프로세스 수가 상기 제1 임계값을 상회하고 있다는 판정을 한 후, 상기 제1 관리 테이블에 기초하여, 종별이 유저 프로세스인 프로세스에 의해 상기 불휘발성 메모리에 기입된 데이터를, 종별이 상기 시스템 프로세스인 프로세스에 의해 상기 불휘발성 메모리에 기입된 데이터보다도 우선하여 이동 대상 데이터로서 선택하고, 상기 이동 대상 데이터를, 상기 이동 대상 데이터가 저장되어 있는 블록으로부터 다른 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 컴퓨터 시스템. - 제14항에 있어서,
상기 복수의 블록의 각각은, 하나의 메모리 셀에 저장되는 비트의 수를 나타내는 다치도가 서로 다른 복수 종의 블록 중 어느 하나로서 선택적으로 사용되고,
상기 컨트롤러는, 상기 이동 대상 데이터를 다치도가 낮은 블록으로부터 보다 다치도가 높은 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 컴퓨터 시스템. - 제12항에 있어서,
상기 프로세서는, 상기 컴퓨터의 상기 메모리의 사용량을 상기 스토리지 디바이스에 통지하도록 구성되고,
상기 컨트롤러는, 상기 컴퓨터의 상기 메모리의 사용량이 제3 임계값을 상회하고 있다는 판정을 한 후, 상기 불휘발성 메모리의 적어도 하나의 블록에 저장되어 있는 데이터를 상기 불휘발성 메모리의 다른 적어도 하나의 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 컴퓨터 시스템. - 제16항에 있어서,
상기 프로세서는, 다음에 일어날 프로세스의 스왑 아웃에 의해 상기 스토리지 디바이스에 기입될 데이터양을 상기 스토리지 디바이스에 통지하도록 구성되고,
상기 컴퓨터의 상기 메모리의 사용량이 상기 제3 임계값을 상회하고 있다는 판정을 한 후, 상기 통지된 데이터양에 대응하는 빈 용량이 확보되도록 상기 불휘발성 메모리의 적어도 하나의 블록에 저장되어 있는 데이터를 상기 불휘발성 메모리의 다른 적어도 하나의 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 컴퓨터 시스템. - 제12항에 있어서,
상기 프로세서는, 상기 컴퓨터에 있어서 생성된 각 프로세스의 식별자를 상기 스토리지 디바이스에 통지하는 처리와, 데이터의 판독 또는 기입을 요구한 프로세스의 식별자가 각각에 부여된 판독/기입 요구 각각을 상기 스토리지 디바이스에 송신하는 처리와, 기동 빈도가 높은 프로그램을 상기 스토리지 디바이스에 통지하는 처리를 실행하도록 구성되고,
상기 컨트롤러는,
상기 생성된 각 프로세스의 식별자와, 상기 생성된 각 프로세스에 의해 판독 또는 기입된 데이터에 대응하는 어드레스 범위의 대응 관계를 제1 관리 테이블을 사용하여 관리하고,
상기 제1 관리 테이블에 기초하여, 상기 기동 빈도가 높은 프로그램에 대응하는 프로세스에 의해 판독 또는 기입된 데이터를 다치도가 높은 블록으로부터 보다 다치도가 낮은 블록으로 이동시키는 처리를 실행하도록 구성되어 있는, 컴퓨터 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2018-054918 | 2018-03-22 | ||
JP2018054918A JP6968016B2 (ja) | 2018-03-22 | 2018-03-22 | ストレージデバイスおよびコンピュータシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190111714A true KR20190111714A (ko) | 2019-10-02 |
KR102094236B1 KR102094236B1 (ko) | 2020-04-23 |
Family
ID=67983633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180083935A KR102094236B1 (ko) | 2018-03-22 | 2018-07-19 | 스토리지 디바이스 및 컴퓨터 시스템 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10871920B2 (ko) |
JP (1) | JP6968016B2 (ko) |
KR (1) | KR102094236B1 (ko) |
CN (1) | CN110297780B (ko) |
TW (1) | TWI682279B (ko) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11023150B2 (en) * | 2019-07-01 | 2021-06-01 | International Business Machines Corporation | Block mode toggling using hybrid controllers |
US11768701B2 (en) * | 2019-09-17 | 2023-09-26 | Western Digital Technologies, Inc. | Exception analysis for data storage devices |
CN113590509B (zh) * | 2020-04-30 | 2024-03-26 | 华为技术有限公司 | 一种页交换的方法、存储系统和电子设备 |
JP7490469B2 (ja) | 2020-06-25 | 2024-05-27 | キオクシア株式会社 | ストレージデバイス、ストレージシステム及び制御方法 |
US11907539B2 (en) * | 2020-11-20 | 2024-02-20 | Samsung Electronics Co., Ltd. | System and method for stream based data placement on hybrid SSD |
CN112559392B (zh) * | 2020-12-23 | 2023-08-15 | 深圳大普微电子科技有限公司 | 一种加速读存储介质的方法、读加速硬件模块及存储器 |
US20220374216A1 (en) * | 2021-05-20 | 2022-11-24 | Lenovo (United States) Inc. | Method of manufacturing information processing apparatus and mobile computer |
CN113504994B (zh) * | 2021-07-26 | 2022-05-10 | 上海遁一信息科技有限公司 | 一种内存池性能弹性伸缩的实现方法及系统 |
CN114201233B (zh) * | 2021-11-18 | 2024-07-16 | 成都网思科平科技有限公司 | 一种基于快照参照的减少进程模块加载数据存储的方法 |
US11977739B2 (en) | 2022-09-01 | 2024-05-07 | Western Digital Technologies, Inc. | Handling write data burst for improved performance and resource usage |
US11960742B1 (en) * | 2022-10-14 | 2024-04-16 | Oracle International Corporation | High-performance, block-level fail atomicity on byte-level non-volatile media |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080055734A (ko) * | 2006-12-15 | 2008-06-19 | 가부시끼가이샤 도시바 | 메모리 디바이스 |
KR20100075116A (ko) * | 2008-12-24 | 2010-07-02 | 주식회사 코아로직 | 복수의 프로세스를 멀티태스킹하기 위한 명령 실행 방법 및장치 |
KR20120012375A (ko) * | 2010-07-30 | 2012-02-09 | 가부시끼가이샤 도시바 | 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법 |
KR20140043329A (ko) * | 2011-03-31 | 2014-04-09 | 샌디스크 테크놀로지스, 인코포레이티드 | 셀 저장 용량당 서로 다른 비트를 갖는 세 개의 메모리 층을 구비한 메모리 시스템 |
KR20170072600A (ko) * | 2015-12-17 | 2017-06-27 | 에스케이텔레콤 주식회사 | 메모리제어장치 및 메모리제어장치의 동작 방법 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8078794B2 (en) * | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
US7594128B2 (en) * | 2004-08-04 | 2009-09-22 | Hewlett-Packard Development Company, L.P. | Systems and methods to determine processor utilization |
JP4805696B2 (ja) | 2006-03-09 | 2011-11-02 | 株式会社東芝 | 半導体集積回路装置およびそのデータ記録方式 |
US20080222348A1 (en) * | 2007-03-08 | 2008-09-11 | Scandisk Il Ltd. | File system for managing files according to application |
TW200841343A (en) * | 2007-04-02 | 2008-10-16 | Apacer Technology Inc | A data storage device consisting of NAND (Not-AND) flash memory and its data storing method |
JP2010266962A (ja) * | 2009-05-12 | 2010-11-25 | Toshiba Storage Device Corp | 記憶装置、その制御方法及びその記憶装置を備える電子装置 |
US8402214B2 (en) * | 2009-09-16 | 2013-03-19 | Hitachi, Ltd. | Dynamic page reallocation storage system management |
JP5066209B2 (ja) * | 2010-03-18 | 2012-11-07 | 株式会社東芝 | コントローラ、データ記憶装置、及びプログラム |
CN102473136B (zh) * | 2010-05-31 | 2014-12-31 | 松下电器(美国)知识产权公司 | 存储器管理装置、存储器管理方法以及集成电路 |
JP5066241B2 (ja) * | 2010-09-24 | 2012-11-07 | 株式会社東芝 | メモリシステム |
TWI471862B (zh) | 2011-08-19 | 2015-02-01 | Silicon Motion Inc | 快閃記憶體控制器 |
US20170017406A1 (en) * | 2015-07-14 | 2017-01-19 | HGST Netherlands B.V. | Systems and methods for improving flash-oriented file system garbage collection |
CN108108311A (zh) * | 2013-12-12 | 2018-06-01 | 株式会社日立制作所 | 存储装置及存储装置的控制方法 |
US9678797B2 (en) * | 2014-03-10 | 2017-06-13 | Microsoft Technology Licensing, Llc | Dynamic resource management for multi-process applications |
US9928169B2 (en) * | 2014-05-07 | 2018-03-27 | Sandisk Technologies Llc | Method and system for improving swap performance |
US10452280B2 (en) * | 2014-10-03 | 2019-10-22 | International Business Machines Corporation | Hybrid storage system employing reconfigurable memory |
JP2016170583A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社東芝 | メモリシステムおよび情報処理システム |
US20160283125A1 (en) * | 2015-03-25 | 2016-09-29 | Kabushiki Kaisha Toshiba | Multi-streamed solid state drive |
TWI672706B (zh) * | 2015-12-14 | 2019-09-21 | 南韓商愛思開海力士有限公司 | 記憶體儲存裝置及其操作方法 |
US11169707B2 (en) * | 2016-01-22 | 2021-11-09 | Netapp, Inc. | Garbage collection pacing in a storage system |
US10235079B2 (en) * | 2016-02-03 | 2019-03-19 | Toshiba Memory Corporation | Cooperative physical defragmentation by a file system and a storage device |
US10185658B2 (en) * | 2016-02-23 | 2019-01-22 | Sandisk Technologies Llc | Efficient implementation of optimized host-based garbage collection strategies using xcopy and multiple logical stripes |
US20170249092A1 (en) * | 2016-02-25 | 2017-08-31 | Canon Kabushiki Kaisha | Apparatus having volatile memory, memory control method, and storage medium |
US10739996B1 (en) * | 2016-07-18 | 2020-08-11 | Seagate Technology Llc | Enhanced garbage collection |
KR102550343B1 (ko) | 2016-07-27 | 2023-07-03 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 장치 및 그것의 동작 방법 |
TWI615710B (zh) * | 2016-12-14 | 2018-02-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI602061B (zh) * | 2017-03-16 | 2017-10-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體儲存裝置與記憶體控制電路單元 |
TWI615711B (zh) * | 2017-03-28 | 2018-02-21 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
US11048624B2 (en) * | 2017-04-25 | 2021-06-29 | Samsung Electronics Co., Ltd. | Methods for multi-stream garbage collection |
US10496297B2 (en) * | 2017-11-21 | 2019-12-03 | Micron Technology, Inc. | Data categorization based on invalidation velocities |
US10713158B2 (en) * | 2018-06-28 | 2020-07-14 | Western Digital Technologies, Inc. | Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring |
-
2018
- 2018-03-22 JP JP2018054918A patent/JP6968016B2/ja active Active
- 2018-07-05 TW TW107123304A patent/TWI682279B/zh active
- 2018-07-19 KR KR1020180083935A patent/KR102094236B1/ko active IP Right Grant
- 2018-07-20 CN CN201810801383.0A patent/CN110297780B/zh active Active
- 2018-07-27 US US16/047,205 patent/US10871920B2/en active Active
-
2020
- 2020-11-18 US US16/951,785 patent/US20210072923A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080055734A (ko) * | 2006-12-15 | 2008-06-19 | 가부시끼가이샤 도시바 | 메모리 디바이스 |
KR20100075116A (ko) * | 2008-12-24 | 2010-07-02 | 주식회사 코아로직 | 복수의 프로세스를 멀티태스킹하기 위한 명령 실행 방법 및장치 |
KR20120012375A (ko) * | 2010-07-30 | 2012-02-09 | 가부시끼가이샤 도시바 | 메모리 관리 장치, 정보 처리 장치 및 메모리 관리 방법 |
KR20140043329A (ko) * | 2011-03-31 | 2014-04-09 | 샌디스크 테크놀로지스, 인코포레이티드 | 셀 저장 용량당 서로 다른 비트를 갖는 세 개의 메모리 층을 구비한 메모리 시스템 |
KR20170072600A (ko) * | 2015-12-17 | 2017-06-27 | 에스케이텔레콤 주식회사 | 메모리제어장치 및 메모리제어장치의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20190294365A1 (en) | 2019-09-26 |
CN110297780B (zh) | 2023-08-25 |
TWI682279B (zh) | 2020-01-11 |
JP2019168822A (ja) | 2019-10-03 |
JP6968016B2 (ja) | 2021-11-17 |
US10871920B2 (en) | 2020-12-22 |
KR102094236B1 (ko) | 2020-04-23 |
CN110297780A (zh) | 2019-10-01 |
TW201941060A (zh) | 2019-10-16 |
US20210072923A1 (en) | 2021-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6968016B2 (ja) | ストレージデバイスおよびコンピュータシステム | |
JP6785205B2 (ja) | メモリシステムおよび制御方法 | |
CN106874211B (zh) | 存储器系统及非易失性存储器的控制方法 | |
JP6517684B2 (ja) | メモリシステムおよび制御方法 | |
CN106874217B (zh) | 存储器系统及控制方法 | |
US10732905B2 (en) | Automatic I/O stream selection for storage devices | |
CN106909314B (zh) | 存储器系统及控制方法 | |
KR20210111527A (ko) | 메모리 시스템에서 가비지 컬렉션을 수행하는 장치 및 방법 | |
TW202230136A (zh) | 儲存裝置 | |
JP2016170583A (ja) | メモリシステムおよび情報処理システム | |
JP2018073040A (ja) | メモリシステム | |
US20200167081A1 (en) | Electronic device, computer system, and control method | |
US11392309B2 (en) | Memory system for performing migration operation and operating method thereof | |
US10365857B2 (en) | Memory system | |
CN110908595A (zh) | 存储装置及信息处理系统 | |
KR101549569B1 (ko) | 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치 | |
JP6721765B2 (ja) | メモリシステムおよび制御方法 | |
JP6666405B2 (ja) | メモリシステムおよび制御方法 | |
EP4287028A1 (en) | Storage device providing high purge performance and memory block management method thereof | |
JP2019016386A (ja) | メモリシステムおよび制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20180719 |
|
PA0201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20190716 Patent event code: PE09021S01D |
|
PG1501 | Laying open of application | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20191223 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20200323 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20200324 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20240314 Start annual number: 5 End annual number: 5 |