KR102104288B1 - 저장된 데이터에 액세스하기 위한 방법, 및 관련 컨트롤러, 장치, 호스트와 시스템 - Google Patents

저장된 데이터에 액세스하기 위한 방법, 및 관련 컨트롤러, 장치, 호스트와 시스템 Download PDF

Info

Publication number
KR102104288B1
KR102104288B1 KR1020187017018A KR20187017018A KR102104288B1 KR 102104288 B1 KR102104288 B1 KR 102104288B1 KR 1020187017018 A KR1020187017018 A KR 1020187017018A KR 20187017018 A KR20187017018 A KR 20187017018A KR 102104288 B1 KR102104288 B1 KR 102104288B1
Authority
KR
South Korea
Prior art keywords
logical address
address
identification information
data
operating system
Prior art date
Application number
KR1020187017018A
Other languages
English (en)
Other versions
KR20180082579A (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 KR20180082579A publication Critical patent/KR20180082579A/ko
Application granted granted Critical
Publication of KR102104288B1 publication Critical patent/KR102104288B1/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
    • 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/10Address translation
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • 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/061Improving I/O performance
    • 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/0661Format or protocol conversion arrangements
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

데이터에 액세스하기 위한 방법이 제공된다. 데이터에 액세스하기 위한 방법은, 제1 주소 및 주소 유형를 식별하는 데 사용된 식별 정보를 수신하는 단계; 및 식별 정보가 논리 주소 타입을 나타내는 경우, 제1 주소를 제1 물리 주소로 변환하고, 스토리지 장치 내의 적어도 하나의 대응하는 플래시 메모리 칩에 액세스하거나; 또는 식별 정보가 물리 주소 타입을 나타내는 경우, 스토리지 장치 내의 적어도 하나의 대응하는 플래시 메모리 칩에 직접 액세스하는 단계를 포함한다. 스토리지 장치가 액세스된 경우, 액세스된 주소의 유형이 식별 정보에 따라 결정된다. 주소가 논리 주소이면, 스토리지 컨트롤러가 논리 주소를 물리 주소에 매핑하여 물리 주소에 액세스하거나; 또는 주소가 물리 주소이면, 스토리지 컨트롤러가 호스트에 송신된 물리 주소에 직접 액세스한다.

Description

저장된 데이터에 액세스하기 위한 방법, 및 관련 컨트롤러, 장치, 호스트와 시스템
본 발명의 실시예는 데이터 저장 분야에 관한 것으로, 더 상세하게는 스토리지 장치, 스토리지 컨트롤러, 호스트, 스토리지 디바이스, 및 스토리지 시스템에 저장된 데이터에 액세스하는 방법에 관한 것이다.
지능형 단말 장치는 데이터를 저장하도록 구성된 내장형 스토리지 장치를 포함한다. 예를 들어, 스마트폰은 일반적으로 임베디드 멀티미디어카드(embedded multimedia card, eMMC) 칩을 내장형 스토리지 칩으로 사용한다. eMMC 칩은 eMMC 스토리지 컨트롤러와 NAND 플래시 메모리 칩을 캡슐화하여 얻어지며, eMMC 스토리지 컨트롤러에는 중앙처리장치(central processing unit, CPU), 읽기 전용 메모리(read-only memory, ROM), 및 랜덤 액세스 메모리(Random Access Memory, RAM)가 통합되어 있다.
내장형 스토리지 장치의 펌웨어(Firmware)는 플래시 칩의 고유한 불량 블록 및 읽기 간섭과 같은 문제점을 해결하여 플래시 칩의 사용 신뢰도를 높이며, 호스트(예를 들어, 스마트폰 내 CPU)에 대해 서로 다른 제조사와 기술에 의한 플래시 차이를 감출 수 있다. 따라서, 스토리지 장치의 펌웨어는 일반적으로 플래시 변환 계층(Flash Translation Layer, FTL) 알고리즘을 이용하여 플래시 칩을 관리한다. FTL 알고리즘을 이용하여 매핑함으로써, 스토리지 장치는 논리 주소를 호스트(Host)에 제공하고, 호스트가 저장 장치에 액세스하는 경우 호스트에게는 실제 물리 주소가 보이지 않는다.
하지만, 기존의 스토리지 장치는 비교적 작은 크기, 비교적 적은 자원, 상대적으로 약한 CPU 계산 능력, 및 비교적 낮은 처리 성능을 가지고 있다. 따라서, 호스트는 비교적 낮은 속도로 스토리지 장치에 액세스한다.
호스트가 스토리지 장치에 액세스하는 속도를 높이기 위해, 본 발명의 실시예는 스토리지 장치, 스토리지 컨트롤러, 호스트, 스토리지 디바이스, 및 시스템에 저장된 데이터에 액세스하는 방법을 제공한다.
제1 양태에 따르면, 본 발명의 일 실시예는 스토리지 장치에 저장된 데이터에 액세스하기 위한 방법을 개시한다. 상기 스토리지 장치 내의 데이터에 액세스하기 위한 방법은 상기 스토리지 장치에 위치하는 스토리지 컨트롤러에 의해 실행되고, 상기 스토리지 장치는 상기 스토리지 컨트롤러와 통신하는 적어도 하나의 플래시 메모리 칩을 더 포함하며, 상기 스토리지 장치 내의 데이터에 액세스하기 위한 방법은,
플래시 메모리 칩에 액세스하는 데 사용되는 제1 주소, 및 상기 제1 주소의 주소 유형을 나타내기 위해 사용되는 식별 정보를 수신하는 단계 - 상기 제1 주소와 상기 식별 정보는 호스트에 의해 송신되고; 상기 식별 정보는 제1 식별 정보이거나 또는 제2 식별 정보이며; 상기 제1 주소는 상기 호스트의 최하위 소프트웨어 계층에 위치하는 논리 주소 처리 모듈에 의해 송신되고; 상기 논리 주소 처리 모듈은, 상기 호스트의 상위 소프트웨어 계층에 위치하는 논리 주소 송신 모듈에 의해 송신된 제1 논리 주소를 수신한 후, 상기 제1 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속하는지 또는 사용자 데이터에 대응하는 논리 주소에 속하는지 여부를 판정하고, 상기 제1 논리 주소가 상기 운영체제 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 주소인 상기 제1 논리 주소를 상기 스토리지 컨트롤러에 송신하고, 상기 제1 식별 정보를 상기 스토리지 컨트롤러에 송신하거나; 또는 상기 제1 논리 주소가 상기 사용자 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 논리 주소를 제2 물리 주소로 변환하고, 상기 제1 주소인 상기 제2 물리 주소를 상기 스토리지 컨트롤러에 송신하며, 상기 제2 식별 정보를 상기 스토리지 컨트롤러에 송신함 -; 및
상기 식별 정보가 상기 제1 식별 정보라고 결정된 경우, 상기 제1 주소를 제1 물리 주소로 변환하고, 상기 제1 물리 주소에 따라 상기 플래시 메모리 칩에 액세스하는 단계; 또는
상기 식별 정보가 상기 제2 식별 정보라고 결정된 경우, 상기 수신된 제1 주소에 따라 상기 플래시 메모리 칩에 액세스하는 단계를 포함한다.
제2 양태에 따르면, 본 발명의 일 실시예는 데이터 저장 방법을 개시한다. 상기 데이터 저장 방법은 호스트의 최하위 소프트웨어 계층에 위치하는 논리 주소 처리 모듈에 의해 실행되고, 상기 데이터 저장 방법은,
상기 호스트의 상위 소프트웨어 계층에 위치하는 논리 주소 송신 모듈에 의해 송신된 제1 논리 주소를 수신하는 단계;
상기 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속하는지 또는 사용자 데이터에 대응하는 논리 주소에 속하는지 여부를 판정하는 단계; 및
상기 논리 주소가 상기 운영체제 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 논리 주소를 스토리지 컨트롤러에 송신하고, 제1 식별 정보를 상기 스토리지 컨트롤러에 송신하거나 - 상기 제1 식별 정보는, 상기 제1 식별 정보를 수신한 후 상기 스토리지 컨트롤러가 상기 제1 논리 주소를 제1 물리 주소로 변환하고, 상기 제1 물리 주소에 따라 플래시 메모리 칩 내의 데이터에 액세스할 수 있게 하는 정보임 -,
상기 논리 주소가 상기 사용자 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 논리 주소를 제2 물리 주소로 변환하고, 상기 제2 물리 주소를 상기 스토리지 컨트롤러에 송신하며, 제2 식별 정보를 상기 스토리지 컨트롤러에 송신하는 단계를 포함한다. 상기 제2 식별 정보는, 상기 스토리지 컨트롤러가 상기 수신된 제2 식별 정보에 따른 상기 제2 물리 주소를 이용하여 상기 플래시 메모리 칩 내의 상기 데이터에 액세스할 수 있게 하는 정보이다.
제3 양태에 따르면, 본 발명의 일 실시예는 스토리지 장치에 위치하는 스토리지 컨트롤러를 개시한다. 상기 스토리지 장치는 상기 스토리지 컨트롤러와 통신하는 적어도 하나의 플래시 메모리 칩을 더 포함하고, 상기 스토리지 컨트롤러는 수신 유닛, 결정 유닛, 변환 유닛, 및 액세스 유닛을 포함하며,
상기 수신 유닛은 플래시 메모리 칩에 액세스하는 데 사용되는 제1 주소, 및 상기 제1 주소의 주소 유형을 나타내기 위해 사용되는 식별 정보를 수신하도록 구성되고 - 여기서, 상기 제1 주소와 상기 식별 정보는 호스트에 의해 송신되고; 상기 식별 정보는 제1 식별 정보이거나 또는 제2 식별 정보이며; 상기 제1 주소는 상기 호스트의 최하위 소프트웨어 계층에 위치하는 논리 주소 처리 모듈에 의해 송신되고; 상기 논리 주소 처리 모듈은, 상기 호스트의 상위 소프트웨어 계층에 위치하는 논리 주소 송신 모듈에 의해 송신된 제1 논리 주소를 수신한 후, 상기 제1 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속하는지 또는 사용자 데이터에 대응하는 논리 주소에 속하는지 여부를 판정하고, 상기 제1 논리 주소가 상기 운영체제 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 주소인 상기 제1 논리 주소를 상기 스토리지 컨트롤러에 송신하고, 상기 제1 식별 정보를 상기 스토리지 컨트롤러에 송신하거나; 또는 상기 제1 논리 주소가 상기 사용자 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 논리 주소를 제2 물리 주소로 변환하고, 상기 제1 주소인 상기 제2 물리 주소를 상기 스토리지 컨트롤러에 송신하며, 상기 제2 식별 정보를 상기 스토리지 컨트롤러에 송신함 -;
상기 결정 유닛은 상기 수신된 식별 정보가 상기 제1 식별 정보인지 또는 상기 제2 식별 정보인지 여부를 판정하도록 구성되며;
상기 결정 유닛이 상기 식별 정보가 상기 제1 식별 정보라고 결정하는 경우, 상기 변환 유닛은 상기 수신 유닛에 의해 수신된 상기 제1 주소를 제1 물리 주소로 변환하도록 구성되고, 상기 액세스 유닛은 변환을 통해 상기 변환 유닛에 의해 획득된 상기 제1 물리 주소에 따라 상기 플래시 메모리 칩에 액세스하도록 구성되며;
상기 결정 유닛이 상기 식별 정보가 상기 제2 식별 정보라고 결정하는 경우, 상기 액세스 유닛은 상기 수신 유닛에 의해 수신된 상기 제1 주소에 따라 상기 플래시 메모리 칩에 액세스하도록 구성된다.
제4 양태에 따르면, 본 발명의 일 실시예는 호스트를 개시한다. 상기 메모리는 상기 프로세서에 의해 실행될 명령을 저장하고, 상기 프로세서는 상기 명령을 판독하여 소프트웨어 프로그램을 실행하며, 상기 소프트웨어 프로그램은 상위 소프트웨어 계층에 위치하는 논리 주소 송신 모듈 및 최하위 소프트웨어 계층에 위치하는 논리 주소 처리 모듈을 포함하고,
상기 논리 주소 송신 모듈은 제1 논리 주소를 상기 논리 주소 처리 모듈에 송신하도록 구성되고;
상기 논리 주소 처리 모듈은 상기 논리 주소 송신 모듈에 의해 송신된 상기 제1 논리 주소를 수신하도록 구성되며;
상기 논리 주소 처리 모듈은 추가적으로, 상기 제1 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속하는지 또는 사용자 데이터에 대응하는 논리 주소에 속하는지 여부를 판정하도록 구성되고;
상기 논리 주소 처리 모듈은 추가적으로, 상기 제1 논리 주소가 상기 운영체제 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 논리 주소를 스토리지 컨트롤러에 송신하고, 제1 식별 정보를 상기 스토리지 컨트롤러에 송신하도록 구성되거나 - 여기서, 상기 제1 식별 정보는, 상기 제1 식별 정보를 수신한 후 상기 스토리지 컨트롤러가 상기 제1 논리 주소를 제1 물리 주소로 변환하고, 상기 제1 물리 주소에 따라 플래시 메모리 칩 내의 데이터에 액세스할 수 있게 하는 정보임 -; 또는
상기 논리 주소 처리 모듈은 추가적으로, 상기 논리 주소가 상기 사용자 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 논리 주소를 제2 물리 주소로 변환하고, 상기 제2 물리 주소를 상기 스토리지 컨트롤러에 송신하며, 제2 식별 정보를 상기 스토리지 컨트롤러에 송신하도록 구성된다. 상기 제2 식별 정보는, 상기 스토리지 컨트롤러가 상기 수신된 제2 식별 정보에 따른 상기 제2 물리 주소를 이용하여 상기 플래시 메모리 칩 내의 상기 데이터에 액세스할 수 있게 하는 정보이다.
제5 양태에 따르면, 본 발명의 일 실시예는 스토리지 장치를 개시한다. 상기 스토리지 장치는 제3 양태에서 언급된 스토리지 컨트롤러 및 적어도 하나의 플래시 메모리 칩을 포함한다.
제6 양태에 따르면, 본 발명의 일 실시예는 통신 시스템을 개시한다. 상기 통신 시스템은 제5 양태에서 언급된 스토리지 장치 및 제4 양태에서 언급된 호스트를 포함한다.
이러한 양태의 실시예에서, 호스트가 스토리지 장치에 액세스하는 경우, 상기 스토리지 장치의 스토리지 컨트롤러가 상기 식별 정보에 따라, 액세스되는 주소의 유형을 결정할 수 있다. 상기 주소가 논리 주소이면, 상기 스토리지 컨트롤러가 상기 논리 주소를 물리 주소에 매핑하여 상기 물리 주소에 액세스하거나; 또는 상기 주소가 물리 주소이면, 상기 스토리지 컨트롤러가 상기 호스트에 송신된 상기 물리 주소에 직접 액세스한다. 사전 설정된 주소 영역 정보에 따라 상위 소프트웨어 계층으로부터의 논리 주소를 변환함으로써 상기 물리 주소가 획득된다. 이런 방식으로, 상기 주소가 물리 주소이면, 상기 호스트에 의해 변환 프로세스가 수행되고, 상기 스토리지 장치의 스토리지 컨트롤러가 다시 변환을 수행할 필요가 없다. 호스트의 처리 능력이 스토리지 콘트롤러의 처리 능력보다 높기 때문에, 호스트가 저장 장치에 액세스하는 속도가 증가될 수 있다.
이러한 양태의 실시예에서, 운영체제 데이터는, 운영체제의 소프트웨어 자체의 데이터이고 또한 실행 중인 프로세스에서 상기 운영체제에 의해 생성된 일부 데이터이며;
사용자 데이터는, 상기 운영체제가 설치된 후 사용자에 의해 상기 스토리지 장치에 기록된 데이터이다.
또한, 이러한 양태의 실시예에서, 전원 인가 후 식별 정보가 수신되지 않으면, 상기 스토리지 컨트롤러가 수신된 액세스 요청 내의 주소를 논리 주소로 사용하고, 상기 주소를 제3 물리 주소로 변환하며, 상기 제3 물리 주소에 따라 플래시 메모리 칩에 액세스한다. 이러한 방식으로, 스토리지 컨트롤러는 기존의 부트 로더에 기반한 애플리케이션 시나리오와 호환 가능할 수 있는데, 왜냐하면 부트 로더는 일반적으로 고정된 프로그램이고 또한 논리 주소를 이용하여 액세스되기 때문이다. 또한, 스토리지 컨트롤러가 부트 로더의 액세스 요구를 수신한 후 식별 정보를 수신하지 않기 때문에, 액세스 요청 내의 논리 주소를 물리 주소로 변환하여 플래시 메모리 칩에 정확하게 액세스한다.
도 1은 종래 기술의 eMMC 칩을 개략적으로 나타낸 구조도이다.
도 2는 본 발명의 실시예 1을 개략적으로 나타낸 흐름도이다.
도 3은 본 발명의 실시예 4에 따른 스토리지 장치를 개략적으로 나타낸 구조도이다.
도 4는 본 발명의 실시예 5에 따른 호스트를 개략적으로 나타낸 구조도이다.
이하, 본 발명의 실시예의 첨부 도면을 참조하여 본 발명의 실시예의 기술적 해결책에 대해 명확하게 설명한다.
도 1은 적용될 수 있는 스토리지 장치를 개략적으로 나타낸 블록도이다.
도 1에 도시된 스토리지 장치(100)는 종래 기술에 존재하는 eMMC 칩이다. eMMC 칩은 지능형 단말기의 내장형 스토리지 칩으로 사용될 수 있다. 도 1에 도시된 바와 같이, 스토리지 장치(예를 들어, eMMC 칩)는 eMMC 스토리지 컨트롤러(110) 및 NAND 플래시 메모리 칩(120)(이하, 플래시 메모리 칩이라고 함)을 포함한다. eMMC 스토리지 컨트롤러(110)는 중앙처리장치(Central Processing Unit, CPU) (111), 랜덤 액세스 메모리(Random Access Memory, RAM)(112), 읽기 전용 메모리(Read Only Memory, ROM)(113), eMMC 인터페이스(114), 및 NAND 인터페이스(115)를 포함한다.
eMMC 인터페이스(114)는 호스트에 연결하도록 구성되어 스토리지 장치(100)와 호스트를 연결한다. eMMC 인터페이스(114)를 통해, 호스트는 eMMC 프로토콜에 정의된 명령 정보, 및 명령 정보에 대응하는 주소와 데이터를 송신할 수 있다. 본 발명의 실시예의 호스트는 단말 장치의 프로세서, 예를 들어 스마트폰의 CPU일 수 있다.
NAND 인터페이스(115)는 eMMC 스토리지 컨트롤러(110)와 NAND 플래시 메모리 칩(120)에 연결하도록 구성될 수 있다. 하나 이상의 NAND 플래시 메모리 칩(120)이 있을 수 있으며, 설명의 편의를 위해 단지 하나의 NAND 플래시 메모리 칩(120)이 표시되어 있다. 구체적으로, eMMC 스토리지 컨트롤러(110)는 NAND 인터페이스(115)를 통해 명령 정보를 NAND 플래시 메모리 칩(120)에 송신하여 액세스 동작을 완료할 수 있다. 액세스 동작은 NAND 플래시 메모리 칩(120)의 데이터에 대해 수행되는 읽기 동작, 기입 동작, 또는 삭제 동작 등일 수 있다.
eMMC 스토리지 컨트롤러(110)는 FTL 알고리즘을 이용하여 NAND 플래시 메모리 칩(120)을 관리할 수 있다. FTL 알고리즘을 이용하여 매핑함으로써, 스토리지 장치(100)는 논리 주소를 호스트에 제공한다. 즉, 호스트가 종래 기술의 스토리지 장치(100)에 액세스하는 경우, 실제 물리 주소가 보이지 않는다.
또한, NAND 플래시 칩의 신뢰도를 높이면서 또한 NAND 플래시 칩의 서비스 수명을 늘리기 위하여, 기존의 eMMC 칩의 펌웨어에는 가비지 컬렉션(Garbage Collection, GC) 기능, 웨어 레벨링(Wear Leveling, WL) 기능, 및 다른 기능이 더 제공될 수 있다. 하지만, 이러한 알고리즘은 호스트에 의해 인식되지 않고 eMMC 칩을 사용하는 과정에서 자동으로 실행된다. 또한, 전력 소비를 감소시키기 위해, 호스트는 저장 공간을 읽거나 쓸 필요가 없는 경우 eMMC 칩을 휴면 상태(dormant state)로 전환할 수 있다. 휴면 상태에서는, 전술한 알고리즘이 실행되지 않는다. 이러한 방식으로, eMMC 칩은 GC 동작, WL 동작, 및 다른 동작을 수행하기에 충분한 시간을 가지고 있지 않으며, 칩이 일정 시구간 동안 사용된 후 이 칩의 성능이 저하된다. 따라서, 사용자 경험이 저하된다. 게다가, 호스트에게는 eMMC 칩의 내부 구현이 보이지 않는다. 따라서, 고장이 발생하면 고장 위치를 찾기 어렵다. 이것은 기존 eMMC 칩의 또 다른 단점이다..
또한, 다른 유사한 아키텍처가 SD(Secure Digital) 카드에 기초하여 적용될 수 있다. 도 1의 eMMC 인터페이스가 SD 인터페이스로 대체되고, 도 1의 eMMC 컨트롤러가 SD 컨트롤러로 대체되면, SD 카드 기반의 적용 시나리오가 도 1의 시나리오와 유사하다.
(실시예 1)
전술한 기존 하드웨어 구조에 기초하여, 도 2를 참조하면, 본 발명의 실시예 1은 스토리지 장치 내의 데이터에 액세스하기 위한 방법을 제공한다. 이 방법은 다음의 단계를 포함한다.
S11. 호스트의 최하위 소프트웨어 계층에 위치하는 논리 주소 처리 모듈이 호스트의 상위 소프트웨어 계층에 위치하는 논리 주소 송신 모듈에 의해 송신된 논리 주소를 수신한다.
소프트웨어의 관점에서, 호스트는 일반적으로는 최상위 계층의 애플리케이션, 및 순차적으로 애플리케이션을 따르는 파일 시스템 및 커널을 포함할 수 있다. 일반적으로, 최하위 소프트웨어 계층은 "커널(kernel)" 계층이다. 이 단계에서의 논리 주소 처리 모듈은 커널에, 즉 호스트에 위치할 수 있다. 종래 기술과 비교하여, 커널 계층의 코드가 수정될 필요가 있다. 마찬가지로, 상위 소프트웨어 계층은 일반적으로 "애플리케이션" 계층과 "파일 시스템" 계층이다. 즉, 논리 주소 전송 모듈은 애플리케이션 또는 파일 시스템에 위치하고 또한 논리 주소를 애플리케이션 또는 파일 시스템에 전송하도록 구성된 소프트웨어 모듈일 수 있다. 일반적으로, 비교적 완벽한 운영체제는 파일 시스템을 포함하고, 파일 시스템은 시스템 내의 파일을 조직화하여 관리하도록 구성된다. 애플리케이션 계층에서 제공되고 또한 저장 장치에 액세스하는 데 사용되는 요청이 먼저 파일 시스템에 송신되고, 그 다음에 파일 시스템이 이 요청을 논리 주소 처리 모듈로 포워딩한다. 이 경우, 파일 시스템에 있는 소프트웨어 모듈로서 논리적 주소를 전송하도록 구성된 소프트웨어 모듈이 "논리 주소 전송 모듈"로서 간주될 수 있다. 어떠한 파일 시스템도 없으면, 애플리케이션이 논리 주소를 논리 주소 처리 모듈에 직접 송신할 수 있다. 이 경우, 애플리케이션 내에 있고 또한 논리 주소를 송신하도록 구성된 모듈을 "논리 주소 전송 모듈"이라고 한다.
또한, 상위 소프트웨어 계층이 논리 주소를 전송하는 궁극적인 목표가 저장 장치에 액세스하기 위한 것임을 이해할 수 있다. 이러한 목적을 달성하기 위해, 실제로 사용되는 다른 액세스 유형과는 다른 액세스 프로토콜을 참조하여 일부 추가 정보가 추가될 필요가 있다. 예를 들어, eMMC 프로토콜이 액세스에 사용되는 경우, 동작 유형(예컨대, 읽기 또는 쓰기), 동작의 개수, 길이, 및 프로토콜에 정의된 일부 정보, 예컨대 검사 비트(check bit), 시작 비트, 및 종료 비트가 더 필요하다. 이 정보는 당업자에게 공지된 기술에 속하며, 여기서는 세부사항에 대해 설명하지 않는다. 이 실시예의 주안점은 논리 주소와 관련된 처리를 상세히 설명하는 것이다.
S12. 논리 주소 처리 모듈이 수신된 논리 주소가 운영체제 데이터에 대응하는 주소에 속하는지 또는 사용자 데이터에 대응하는 주소에 속하는지 여부를 판정한다.
본 실시예에서, 호스트가 스토리지 장치의 물리 주소 공간 및 논리 주소 공간을 관리할 필요가 있다. 즉, 호스트가 스토리지 장치의 물리 주소 공간을 알고 있을 필요가 있으며, 물리 주소와 논리 주소 간의 매핑를 수행할 필요가 있다. 또한, 호스트가 스토리지 장치의 물리 주소 공간을 더 분할할 필요가 있다. 일부 물리 주소 공간이 운영체제 데이터를 저장하는 데 사용되고, 다른 물리 주소 공간이 사용자 데이터를 저장하는 데 사용된다. 운영 데이터는 운영 체제의 소프트웨어 자체의 데이터와 실행중인 운영 체제에서 운영체제에 의해 생성되는 일부 데이터(예를 들어, 로그 파일 및 파일 시스템과 관련된 파일)를 포함한다. 사용자 데이터는 운영체제가 설치된 후 사용자에 의해 스토리지 장치에 기입된 데이터, 일반적으로, 예를 들어 사용자에 의해 설치된 일부 애플리케이션 소프트웨어 및 실행 중인 프로세스에서 애플리케이션 소프트웨어에 의해 생성된 데이터이다.
종래 기술에서는, 스토리지 컨트롤러가 주소 공간(스토리지 장치의 논리 주소와 물리 주소를 포함하고 있음)을 관리한다. 본 실시예에서, 이는 호스트가 이 기능을 갖도록 활성화되는 것, 및 호스트와 스토리지 컨트롤러가 각각의 주소 변환 기능을 완료하는 것과 동일하다. 이 기능을 완료하기 위해 호스트에 의해 사용되는 방법은, 종래 기술에서 이 기능을 완료하기 위해 저장 콘트롤러에 의해 사용된 방법과 유사하다. 스토리지 장치가 16G의 물리적 주소 공간을 포함하는 예에서는, 호스트가 eMMC 프로토콜에 기초하여 스토리지 컨트롤러와 통신하고, 다음의 여러 단계가 주로 포함된다.
S301. 호스트가 명령(예를 들어, 명령(CMD 6))을 스토리지 컨트롤러에 송신하여 관련 레지스터를 구성하고 또한 논리 주소 공간(운영체제 데이터에 대응하는 논리 주소 공간)을 위한 0G 내지 2G의 범위를 정의한다.
S302. 스토리지 컨트롤러가 이 레지스터에 따라 일부 물리 주소를 0G 내지 2G의 논리 주소에 매핑한다(정보 관리를 위해 일부 물리 주소가 필요하므로, 여기서 이들 논리 주소가 2G보다는 크고, 예를 들어 2.5G이다).
S303. 스토리지 컨트롤러가 다른 관련 레지스터에 대한 나머지 가용 물리 주소 공간의 범위(예를 들어, 사용자 데이터에 대응하는 13.5G)를 구성한다.
S304. 호스트가 가용 물리 주소를 알기 위해 다른 관련된 레지스터를 읽고(예를 들어, 명령(CMD 8)을 이용하여), 이러한 물리 주소를 논리 주소에 매핑한다.
이 구성의 구체적인 구현(예를 들어, 특정 명령 포맷 또는 레지스터 선택)이 당업자에게 잘 알려진 기술이며, 본 명세서에서는 세부사항에 대해 설명하지 않는다. 또한, 다른 프로토콜에 기초하여, 유사한 기능을 구현하기 위해 다른 프로토콜의 특성에 따라 적응적 수정이 이루어질 수 있다는 것도 당업자는 알고 있다.
전술한 단계로부터, 주소 공간 0G 내지 2G에서의 논리 주소의 경우, 스토리지 콘트롤러가 논리 주소와 물리 주소 사이의 매핑을 완료하지만, 호스트가 참여하지 않는다는 것을 알 수 있다. 즉, 호스트가 0G 내지 2G의 논리 주소만을 알 수 있지만, 0G 내지 2G의 논리 주소가 매핑되는 물리 주소는 알지 못한다.
반면에, 나머지 물리적 주소(예를 들어, 나머지 13.5G 공간)의 경우, 호스트가 논리 주소와 물리 주소 간의 매핑을 완료하지만, 스토리지 컨트롤러가 참여하지 않는다. 즉, 스토리지 컨트롤러 대신 호스트가 어떤 논리 주소가 어떤 물리 주소에 매핑되는지를 알고 있다.
본 실시예에서, 애플리케이션 또는 파일 시스템과 같은 소프트웨어 모듈이 수정될 필요가 없다는 것을 유의해야 한다. 따라서, 작업이 기존 시스템과 최대한 호환될 수 있고, 용이하게 구현된다.
S13. 제1 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속한다고 결정하는 경우, 제1 주소인 제1 논리 주소를 스토리지 컨트롤러에 송신하고, 제1 식별 정보를 스토리지 컨트롤러에 송신한다.
이 단계는 논리 주소를 스토리지 컨트롤러에 "투명하게 전송하는 것"이라고 단순하게 이해될 수 있다. 즉, 논리 주소 처리 모듈이 "논리 주소를 처리하지 않고", 이 논리 주소를 스토리지 컨트롤러에 직접 전송한다. 물론, 여기서 "논리 주소를 처리하지 않는다"는 것은 상대적(S14에서 논리 주소를 물리 주소로 변환하는 단계와 상대적)이면서 또한 구어체 개념이다. 실제로, 엄밀히 말하면, 특정 인터페이스 프로토콜이 관련되어 있으므로, 대응하는 프로토콜에서 명령을 호출함으로써 "논리 주소"가 전달될 필요가 있으며, 처리없이 포워딩되지는 않는다. 하지만, 이 과정이 프로토콜에 기초하여 표준 작업이 수행되는 과정에 속하고 실제 전송될 필요가 있는 데이터의 변경과는 관련이 없으므로, 이 과정은 일반적으로 데이터 변경이 없는 "투명한 전송" 과정으로 간주된다.
전술한 "명령(command)"은 양쪽의 통신 당사자 간의 상호작용에 사용되는 정보일 수 있으며, 일부 프로토콜에서는 명령 대신에 "패킷" 또는 "메시지"와 같은 용어로 지칭될 수 있다는 것을 유의해야 한다. 이들 전부가 본질적으로 일부 지정된 포맷에 따라 정보를 전송하는 데 사용된다는 것을 당업자는 알고 있다. 따라서, 본 실시예에서는 특정 프로토콜에 기초한 상호 작용(예를 들어, 명령 전송, 패킷 전송 또는 메시지 전송)과 관련된 후속 프로세스를 상세히 설명하지 않는다.
이 단계에서의 "제1 식별 정보"의 "제1"은 제1 식별 정보와는 다른 식별 정보를 구별하기 위해 사용될 뿐이고, 특별한 의미를 나타내지 않는다. 유사하게, 본 실시예에 보이는 다른 "제1"(예를 들어, 제1 물리 주소)과 "제2"(예를 들어, 제2 물리 주소)는 모두 유사한 의미를 나타낸다.
또한, 이 단계에서, 논리 주소를 송신하고 제1 식별 정보를 송신하는 2가지 절차가 엄격히 순차적으로 실행되지 않는다는 것을 유의해야 한다. 하나가 먼저 송신된 후 다른 하나가 송신될 수 있거나; 또는 프로토콜에 정의된 메시지, 명령 또는 패킷의 형태로 둘 다가 송신될 수 있다.
S14. 제1 논리 주소가 사용자 데이터에 대응하는 논리 주소에 속한다고 결정하는 경우, 제1 논리 주소를 제2 물리 주소로 변환하고, 제1 주소인 제2 물리 주소를 스토리지 컨트롤러에 송신하며, 제2 식별 정보를 스토리지 컨트롤러에 송신한다.
이 단계가 S13에 평행한 분기(branch)이다. 논리 주소가 사용자 데이터에 대응하는 주소에 속한다고 결정된 경우, S13에서와 같이 논리 주소가 "투명하게 전송될" 수 없지만, 논리 주소가 제2 물리 주소로 변환된 다음, 제2 물리 주소가 스토리지 컨트롤러에 송신된다(물론, 명령 캡슐화와 같은 일부 표준 작업 및 특정 프로토콜에 기초하고 또한 단계 13에서 설명된 송신도 수반된다).
구체적인 변환 방법은 종래 기술의 변환 구현 방법과 유사하고, 본 실시예에서는 세부사항에 대해 상세히 설명하지 않는다.
S13과 마찬가지로, 이 단계에서는 제2 물리 주소를 송신하고 제2 식별 정보를 송신하는 단계를 수행하는 순서에 제한이 없다는 것을 유의해야 한다.
S15. 제1 식별 정보를 수신하는 경우, 스토리지 컨트롤러가 수신된 논리 주소를 제1 물리 주소로 변환하고, 제1 물리 주소에 따라 플래시 메모리 칩 내의 데이터에 액세스하거나; 또는 제2 식별 정보를 수신하는 경우, 스토리지 컨트롤러가 수신된 제2 물리 주소를 이용하여 플래시 메모리 칩 내의 데이터에 관한 정보에 액세스한다.
스토리지 컨트롤러는 표준 프로토콜 인터페이스(예를 들어, eMMC 프로토콜)을 이용하여, 호스트의 논리 주소 처리 모듈에 의해 송신된 정보를 수신한다. 본 실시예에서, 단지 수신된 "주소"에 따르면, 스토리지 컨트롤러는 이 주소가 "논리 주소"를 나타내는지 또는 변환된 "물리 주소"를 나타내는지 여부를 알 수 없으며, 논리 주소 또는 물리 주소를 처리하는 방법을 알 수 없다. 따라서, 논리 주소 또는 물리 주소를 처리하는 방법을 스로리지 컨트롤러에 지시하기 위한 정보가 필요하다. 이 정보가 제1 식별 정보와 제2 식별 정보이다. 스토리지 컨트롤러가 어떤 식별 정보가 수신되는지를 결정함으로써 대응하는 처리 정책을 사용한다. 즉, 제1 식별 정보를 수신한 후, 스토리지 컨트롤러는 주소 변환을 수행하고, 변환된 제1 물리 주소에 따라 플래시 메모리 칩 내의 데이터에 액세스한다. 제2 식별 정보를 수신한 후, 스토리지 컨트롤러는 수신된 제2 물리 주소에 따라 플래시 메모리 칩 내의 데이터에 직접 액세스한다.
식별 정보(제1 식별 정보와 제2 식별 정보를 포함)는 기존의 프로토콜에 기초하여 구현되거나 또는 전용 프로토콜을 이용하여 구현될 수 있다. 대개, 구현의 용이성을 위해, 식별 정보가 기존의 프로토콜에 기초하여 구현될 수 있다. 예를 들어, 프로토콜 내 일부 예약된 필드(reserved field)에 기초하여 확장될 수 있거나, 또는 예약된 명령을 이용하여 구현될 수 있다.
호스트가 eMMC 프로토콜을 이용하여 스토리지 콘트롤러와 통신하는 예에서는, eMMC 프로토콜의 예약된 명령을 이용하여 식별 정보가 전송될 수 있다. eMMC 프로토콜에서는, 양쪽의 통신 당사자가 명령(Command, CMD)에 기초하여 식별 정보를 전달한다. CMD 60 내지 CMD 63이 예약된 명령이다. 따라서, 이러한 명령이 식별 정보를 전달하는 데 사용될 수 있다
예를 들어, S13에서, 논리 주소 처리 모듈이 논리 주소를 송신할 필요가 있는 경우, 명령(CMD 60)이 먼저 송신될 수 있고, 동시에 파라미터 0x754C4241가 전달된다. 여기서, 파라미터 0x754C4241은 제1 식별 정보가 송신된 것을 나타낸다. 유사하게, 단계 S14에서, 논리 주소 처리 모듈이 제2 물리 주소를 송신할 필요가 있는 경우, 명령(CMD 60)이 먼저 송신될 수 있다. 여기서, CMD 60은 제2 식별 정보가 송신된 것을 나타내는 파라미터 0x7550504E를 싣고 있다.
식별 정보를 전달하는 데 사용되는 이러한 명령(예를 들어, CMD 60)은 각각의 액세스 요청 전에 송신될 수 있다. 대안적으로, 이러한 명령은 다른 유형의 요청이 처음 액세스될 때 송신될 수 있고, 이전의 결과가 이후의 액세스 요청에 사용된다. 예를 들어, 먼저, CMD 60이 하나의 제1 식별 정보를 송신하는 데 사용된다. 이 경우에, 이후 어떠한 명령(CMD 60)도 송신되지 않고 액세스 명령이 직접 송신되면, 제2 식별 정보가 송신된 것을 나타내기 위해 명령(CMD 60)이 다시 송신되지 않는 한, 이러한 모든 후속 액세스 명령은 기본적으로 제1 식별 정보이다. 이런 방식으로, 후속 액세스 명령이 기본적으로 제2 식별 정보이다.
이러한 명령을 수신한 후, 스토리지 컨트롤러는 수신된 명령 내의 "주소"를 이후에 처리하는 방법을 알고 있다(예를 들어, 주소에 따라 직접 액세스를 수행하거나 또는 주소 변환을 수행한다).
S13 및 S14에서 마지막으로 언급된 바와 같이, 논리 주소가 전송되기 전에 식별 정보가 불필요하게 송신된다는 것을 또한 유의해야 한다. 서로 다른 프로토콜의 다양한 명령(또는 패킷 또는 메시지)의 서로 다른 정의에 따르면, 식별 정보가 논리 주소가 전송된 후 송신되거나, 논리 주소가 전송되는 때 동시 전송될 수 있다(예를 들어, 하나의 명령에 캡슐화될 수 있거나, 또는 하나의 패킷에 캡슐화된 후 송신될 수 있다).
또한, 전술한 단계가 논리적인 단계라는 것, 및 실제 구현된 코드의 관점에서의 단계와 일대일로 대응하지 않을 수 있다는 것을 유의해야 한다. 코드의 문자적 의미의 관점에서의 단계와 정확하게 일치하지 않는 코드가 나타내는 논리적인 의미가 전술한 단계와 일치한다. 예를 들어, S12의 경우, 코드의 관점에서 결정이 한 번만 수행되고, 즉 수신된 논리 주소가 범위 A에 속하는지 여부가 결정되고, 수신된 논리 주소가 범위 A에 속하면 하나의 동작이 수행되고, 수신된 논리 주소가 범위 A에 속하지 않으면 다른 동작이 수행된다. 문자 그대로, 이는 S12와 일치하지 않는 것처럼 보인다. 하지만, 다른 조건(예를 들어, 2가지 유형의 주소만이 정의되고, 범위 A가 운영체제 데이터에 대응하는 논리 주소로서 정의되며, 나머지가 당연히 사용자 데이터에 대응하는 논리 주소임)을 참조하면, 이러한 단계가 논리 계층의 S12와 동일하다는 것을 알 수 있다. 소프트웨어의 관점에서는 이러한 단계의 구체적인 구현이 상대적으로 유연하며, 이러한 단계는 또한 당업자가 잘 알고 있는 기술에 속하며, 본 발명의 실시예에서는 세부사항에 대해 설명하지 않는다.
본 발명의 본 실시예에서, 스토리지 컨트롤러가 논리 주소를 물리적 주소로 변환하는 기능 중 일부가 원래는 호스트에 의해 구현된다. 호스트의 처리 능력이 일반적으로 스토리지 컨트롤러의 처리 능력보다 높으므로, 호스트가 스토리지 장치에 액세스하는 속도가 증가될 수 있다.
또한, 호스트가 플래시 메모리 칩의 물리 주소와 논리 주소 간의 매핑을 관리하기 때문에, 호스트가 플래시 메모리 칩의 물리적 주소 및 다양한 알고리즘 (예: 주소 매핑 알고리즘)의 실행 프로세스를 보다 직접적으로 관리할 수 있고, 호스트 자체의 실행 상태에 따라 적절한 기회에 가비지 컬렉션(garbage collection) 또는 웨어 레벨링(wear leveling)과 같은 동작을 개시할 수 있다. 이를 통해 스토리지 장치에 대한 관리가 향상되고 또한 NAND 불량 블록과 데이터 조각이 스토리지 성능에 미치는 영향이 줄어들 수 있다. 게다가, 고장이 발생하면 고장 위치를 더 명확하게 찾을 수 있다.
(실시예 2)
실시예 1에 기초하여, 본 실시예에서는 2가지 구체적인 예를 이용하여 이전 실시예에 대해 설명한다. 본 실시예에서는, 호스트와 스토리지 컨트롤러가 eMMC 프로토콜에 기초하고 있다는 것, 및 플래시 메모리 칩이 총 10000 바이트(이 값은 일 예로서만 사용되고, 실제 물리적 공간은 이 값보다 훨씬 큼)의 물리적 공간을 가지고 있다는 것이 추정된다. 여기서, 처음 2000 바이트가 운영체제 데이터(관리 정보를 포함하고 있음)에 사용되고, 나머지 8000 바이트의 물리적 공간이 사용자 데이터에 할당된다. 또한, 호스트(커널) 측에서 2000 바이트의 물리적 공간이 100 바이트와 2099 바이트 사이의 논리 주소 공간에 매핑되고 또한 스토리지 컨트롤러 측에서 8000 바이트의 물리적 공간이 2100 바이트와 10099 바이트 사이의 논리 주소 공간에 매핑된다는 것이 추정된다. 표 1은 세부사항을 나타낸다.
(표 1)
Figure 112018058701228-pct00001
예 1:
S21. 애플리케이션이 파일 액세스를 위한 제1 요청을 파일 시스템에 송신한다.
S22. 파일 시스템이 제1 요청을 논리 주소를 이용하여 액세스를 수행하기 위한 제2 요청으로 변환하고, 제2 요청을 커널에 송신한다. 여기서, 액세스에 사용되고 또한 제2 에 실려 있는 논리 주소가 2201 바이트와 2300 바이트 사이의 논리 주소이다.
S23. 커널이 2201 바이트와 2300 바이트 사이의 논리 주소가 사용자 데이터에 대응하는 주소에 속한다고 결정하고, 2201 바이트와 2300 바이트 사이의 논리 주소를 2101 바이트와 2200 바이트 사이의 물리 주소로 변환하며, eMMC 프로토콜의 요구사항에 따라 제2 요청을 캡슐화한 후 제2 요청을 스토리지 컨트롤러에 재송신하고, 유형이 물리 주소(즉, 이후에 메모리가 변환을 수행할 필요가 없다는 것을 나타내는 물리 주소)라는 것을 나타내는 하나의 식별 정보를 송신한다.
S24. 2101 바이트와 2200 바이트 사이의 물리 주소에 기초하여 액세스 요청을 수신한 후, 스토리지 컨트롤러가 플래시 메모리 칩의 2101 바이트와 2200 바이트 사이의 물리 주소에 직접 액세스한다.
예 2:
S31. 애플리케이션이 파일 액세스를 위한 제1 요청을 파일 시스템에 송신한다.
S32. 파일 시스템이 제1 요청을 논리 주소를 이용하여 액세스를 수행하기 위한 제2 요청으로 변환하고, 제2 요청을 커널에 송신한다. 여기서, 액세스에 사용되고 또한 제2 요청에 실려 있는 논리 주소가 100 바이트와 199 바이트 사이의 논리 주소이다.
S33. 커널이 100 바이트와 199 바이트 사이의 논리 주소가 운영체제 데이터에 대응하는 주소에 속한다고 결정하고, eMMC 프로토콜의 요구사항에 따라 제3 요청을 캡슐화한 후 100 바이트와 199 바이트 사이의 논리 주소를 포함하는 제3 요청을 스토리지 컨트롤러에 "투명하게 전송"하며, 유형이 논리 주소인 것을 나타내는(즉, 이후에 메모리가 변환을 수행할 필요가 없다는 것을 나타내는) 하나의 식별 정보를 송신한다.
S34. 스토리지 컨트롤러가 제3 요청을 수신한 후 100 바이트와 199 바이트 사이의 논리 주소를 0 바이트와 99 바이트 사이의 물리 주소로 변환하고, 0 바이트와 99 바이트 사이의 물리 주소를 이용하여 플래시 메모리 칩에 액세스한다.
(실시예 3)
전술한 실시예에 기초하여, 본 실시예는 부트 로더(boot loader)를 이용하는 통신 장치(예를 들어, 모바일 폰 또는 태블릿과 같은 단말 장치), 및 통신 장치가 스토리지 장치에 액세스하는 방법을 개시한다. 본 실시예의 통신 장치는 전술한 실시예의 호스트 및 스토리지 장치를 포함한다. 호스트는 eMMC 프로토콜과 같은 프로토콜을 이용하여 스토리지 장치와 통신한다. 호스트는 주로 CPU를 포함한다. 물론, CPU가 더 잘 작동될 수 있도록, 호스트는 데이터를 저장하는 데 사용되는 메모리를 더 포함할 수 있다. 또한, 일부 주변 회로(예를 들어, 전원 관리에 관련된 회로, 및 주변 장치와 통신하는 인터페이스 회로)가 더 필요하다.
본 실시예의 통신 장치를 사용하는 과정에서 부트 로더(영어로는 일반적으로 boot loader 또는 boot loader라고 함)가 사용된다. 부트 로더는 운영체제를 부팅하는 데 사용되는 프로그램이다. 이 프로그램은 CPU에 적응되어 있는 고정된 프로그램이며, 일반적으로 CPU 제조사에 의해 제공된다. CPU를 사용하는 다른 제조사는 일반적으로 이 프로그램을 수정하지 않는다.
또한, 기존의 부트 로더는 논리 주소를 이용하여 스토리지 칩에 저장된 운영체제 데이터에 액세스한다. 전술한 실시예에서, 스토리지 콘트롤러는 여전히 논리 주소를 운영체제 데이터용 물리 주소로 변환할 수 있으므로, 기존의 부트 로더가 호환성을 구현하면서 여전히 실행될 수 있다.
이 과정에서, 스토리지 컨트롤러에 대해 일부 적응 작업이 수행될 필요가 있다. 세부사항은 다음과 같다.
부트 로더 자체가 전술한 실시예에서 언급된 식별 정보를 송신하는, 전술한 실시예에서 언급된 능력을 가지고 있지 않으므로, 주소가 수신되는 때 스토리지 컨트롤러가 처리를 수행하는 방법을 알 수 없다. 이 경우, 스토리지 컨트롤러가 기본적으로, 전원 인가 후의 논리 주소에 따라 수신된 논리 주소에 대해 처리를 수행할 수 있다. 즉, 스토리지 컨트롤러에 전원이 인가된 후, 식별 정보가 수신되지 않으면 기본적으로 수신된 논리 주소를 논리 주소로 간주한다. 그 다음에, 논리 주소가 변환되고, 논리 주소가 물리 주소로 변환된 후 플래시 메모리 칩이 액세스된다. 구체적인 구현 방법은 식별 정보를 전달하는 상이한 방식에 따라 서로 다를 수 있다. 예를 들어, 식별 정보가 메시지의 사전 정의된 필드에 실려 있으면, 필드를 판독함으로써 식별 정보가 이용 가능한지 여부를 알릴 수 있고; 식별 정보가 독립적인 명령에 기초하여 전달되는 경우(예를 들어, 식별 정보가 이전 규격에서 설명한 CMD 60을 이용하여 전달되는 경우), 이 명령이 수신되지 않으면, 식별 정보가 수신되지 않는다고 간주할 수 있다.
(실시예 4)
전술한 실시예에 기초하여, 본 발명의 본 실시예는 스토리지 컨트롤러를 개시한다. 스토리지 컨트롤러는 스토리지 장치에 위치한다. 스토리지 장치는 스토리지 컨트롤러와 통신하는 적어도 하나의 플래시 메모리 칩을 더 포함한다. 도 3을 참조하면, 스토리지 컨트롤러는 수신 유닛(41), 결정 유닛(42), 변환 유닛(43), 및 액세스 유닛(44)을 포함한다. 이러한 유닛은 실시예 1의 단계를 수행하도록 구성된다. 세부사항은 다음과 같다.
수신 유닛은 플래시 메모리 칩에 액세스하는 데 사용되는 제1 주소, 및 제1 주소의 주소 유형을 나타내기 위해 사용되는 식별 정보를 수신하도록 구성된다. 여기서, 제1 주소와 식별 정보는 호스트에 의해 송신된다. 식별 정보는 제1 식별 정보이거나 또는 제2 식별 정보이다. 제1 주소는 호스트의 최하위 소프트웨어 계층에 위치하는 논리 주소 처리 모듈에 의해 송신된다. 논리 주소 처리 모듈은, 호스트의 상위 소프트웨어 계층에 위치하는 논리 주소 송신 모듈에 의해 송신된 제1 논리 주소를 수신한 후, 제1 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속하는지 또는 사용자 데이터에 대응하는 논리 주소에 속하는지 여부를 판정하고; 제1 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속한다고 결정하는 경우, 제1 주소인 제1 논리 주소를 스토리지 컨트롤러에 송신하고, 제1 식별 정보를 스토리지 컨트롤러에 송신하거나; 또는 제1 논리 주소가 사용자 데이터에 대응하는 논리 주소에 속한다고 결정하는 경우, 제1 논리 주소를 제2 물리 주소로 변환하고, 제1 주소인 제2 물리 주소를 스토리지 컨트롤러에 송신하며, 제2 식별 정보를 스토리지 컨트롤러에 송신한다.
결정 유닛은 수신된 식별 정보가 제1 식별 정보인지 또는 제2 식별 정보인지 여부를 판정하도록 구성된다.
결정 유닛이 식별 정보가 제1 식별 정보라고 결정하는 경우, 변환 유닛은 수신 유닛에 의해 수신된 제1 주소를 제1 물리 주소로 변환하도록 구성되고, 액세스 유닛은 변환을 통해 변환 유닛에 의해 획득된 제1 물리 주소에 따라 플래시 메모리 칩에 액세스하도록 구성된다.
결정 유닛이 식별 정보가 제2 식별 정보라고 결정하면, 액세스 유닛은 수신 유닛에 의해 수신된 제1 주소에 따라 플래시 메모리 칩에 액세스하도록 구성된다.
유닛의 구체적인 실행 방법에 대해서는, 전술한 실시예(예를 들어, 실시예 1, 실시예 2, 및 실시예 3)의 관련 단계를 참조할 수 있고, 여기서는 세부사항을 반복하지 않는다.
유닛들이 논리적인 분할에 의하여 얻어지고, 특정 하드웨어 구조의 관점에서 도 1의 하드웨어 구조에 기반하고 있을 수 있다는 것, 즉 프로세서(예를 들어, CPU)가 메모리(RAM+ROM)에 저장된 코드를 판독하기 위해 사용되어 대응하는 소프트웨어 프로그램을 실행한다는 것을 유의해야 한다.
(실시예 5)
도 4를 참조하면, 전술한 실시예에 기초하여, 본 발명의 본 실시예는 호스트(50)를 개시한다. 본 발명의 본 실시예의 호스트는 프로세서(예를 들어, CPU)(51)와 메모리(예를 들어, ROM과 RAM을 포함할 수 있음)를 포함한다. 메모리는 프로세서에 의해 실행될 명령을 저장하고 있다. 프로세서는 메모리 내의 명령을 판독하여 전술한 관련 실시예(예를 들어, 실시예 1과 실시예 2)의 관련 단계를 수행함으로써 스토리지 장치와의 통신을 구현한다.
전술한 설명은 본 발명의 기술적 해결책의 실시예에 대한 예시에 불과하며, 본 발명의 보호 범위를 제한하려는 것이 아니다. 본 발명의 사상과 원리에서 벗어나지 않고 이루어진 어떠한 변경, 또는 등가의 대체, 또는 개량도 본 발명의 보호 범위에 속할 것이다.

Claims (12)

  1. 스토리지 장치 내의 데이터에 액세스하기 위한 방법으로서,
    상기 스토리지 장치 내의 데이터에 액세스하기 위한 방법은 상기 스토리지 장치에 위치하는 스토리지 컨트롤러에 의해 실행되고,
    상기 스토리지 장치는 상기 스토리지 컨트롤러와 통신하는 적어도 하나의 플래시 메모리 칩을 더 포함하며,
    상기 스토리지 장치 내의 데이터에 액세스하기 위한 방법은,
    플래시 메모리 칩에 액세스하는 데 사용되는 제1 주소, 및 상기 제1 주소의 주소 유형을 나타내기 위해 사용되는 식별 정보를 수신하는 단계 - 상기 제1 주소와 상기 식별 정보는 호스트에 의해 송신되고; 상기 식별 정보는 제1 식별 정보이거나 또는 제2 식별 정보이며; 상기 제1 주소는 상기 호스트의 최하위 소프트웨어 계층에 위치하는 논리 주소 처리 모듈에 의해 송신되고; 상기 논리 주소 처리 모듈은, 상기 호스트의 상위 소프트웨어 계층에 위치하는 논리 주소 송신 모듈에 의해 송신된 제1 논리 주소를 수신한 후, 상기 제1 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속하는지 또는 사용자 데이터에 대응하는 논리 주소에 속하는지 여부를 판정하고, 상기 제1 논리 주소가 상기 운영체제 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 주소인 상기 제1 논리 주소를 상기 스토리지 컨트롤러에 송신하고, 상기 제1 식별 정보를 상기 스토리지 컨트롤러에 송신하거나; 또는 상기 제1 논리 주소가 상기 사용자 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 논리 주소를 제2 물리 주소로 변환하고, 상기 제1 주소인 상기 제2 물리 주소를 상기 스토리지 컨트롤러에 송신하며, 상기 제2 식별 정보를 상기 스토리지 컨트롤러에 송신함 -; 및
    상기 식별 정보가 상기 제1 식별 정보라고 결정된 경우, 상기 제1 주소를 제1 물리 주소로 변환하고, 상기 제1 물리 주소에 따라 상기 플래시 메모리 칩에 액세스하는 단계; 또는
    상기 식별 정보가 상기 제2 식별 정보라고 결정된 경우, 상기 수신된 제1 주소에 따라 상기 플래시 메모리 칩에 액세스하는 단계
    를 포함하는 스토리지 장치 내의 데이터에 액세스하기 위한 방법.
  2. 제1항에 있어서,
    상기 운영체제 데이터(operating system data)는, 운영체제의 소프트웨어 자체의 데이터이고 또한 실행 중인 프로세스에서 상기 운영체제에 의해 생성된 일부 데이터이며;
    상기 사용자 데이터는, 상기 운영체제가 설치된 후 사용자에 의해 상기 스토리지 장치에 기록된 데이터인, 스토리지 장치 내의 데이터에 액세스하기 위한 방법.
  3. 제1항에 있어서,
    전원 인가(power-on) 후 식별 정보가 수신되지 않으면, 수신된 액세스 요청 내의 주소를 논리 주소로 사용하고, 상기 주소를 제3 물리 주소로 변환하며, 상기 제3 물리 주소에 따라 상기 플래시 메모리 칩에 액세스하는 단계
    를 더 포함하는 스토리지 장치 내의 데이터에 액세스하기 위한 방법.
  4. 데이터 저장 방법으로서,
    상기 데이터 저장 방법은 호스트의 최하위 소프트웨어 계층에 위치하는 논리 주소 처리 모듈에 의해 실행되고,
    상기 데이터 저장 방법은,
    상기 호스트의 상위 소프트웨어 계층에 위치하는 논리 주소 송신 모듈에 의해 송신된 제1 논리 주소를 수신하는 단계;
    상기 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속하는지 또는 사용자 데이터에 대응하는 논리 주소에 속하는지 여부를 판정하는 단계; 및
    상기 논리 주소가 상기 운영체제 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 논리 주소를 스토리지 컨트롤러에 송신하고, 제1 식별 정보를 상기 스토리지 컨트롤러에 송신하거나 - 상기 제1 식별 정보는, 상기 제1 식별 정보를 수신한 후 상기 스토리지 컨트롤러가 상기 제1 논리 주소를 제1 물리 주소로 변환하고, 상기 제1 물리 주소에 따라 플래시 메모리 칩 내의 데이터에 액세스할 수 있게 하는 정보임 -, 상기 논리 주소가 상기 사용자 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 논리 주소를 제2 물리 주소로 변환하고, 상기 제2 물리 주소를 스토리지 컨트롤러에 송신하며, 제2 식별 정보를 상기 스토리지 컨트롤러에 송신하는 단계 - 상기 제2 식별 정보는, 상기 스토리지 컨트롤러가 상기 수신된 제2 식별 정보에 따른 상기 제2 물리 주소를 이용하여 플래시 메모리 칩 내의 상기 데이터에 액세스할 수 있게 하는 정보임 -
    를 포함하는 데이터 저장 방법.
  5. 제4항에 있어서,
    상기 운영체제 데이터(operating system data)는, 운영체제의 소프트웨어 자체의 데이터이고 또한 실행 중인 프로세스에서 상기 운영체제에 의해 생성된 일부 데이터이며;
    상기 사용자 데이터는, 상기 운영체제가 설치된 후 사용자에 의해 스토리지 장치에 기록된 데이터인, 데이터 저장 방법.
  6. 스토리지 장치에 위치하는 스토리지 컨트롤러로서,
    상기 스토리지 장치는 상기 스토리지 컨트롤러와 통신하는 적어도 하나의 플래시 메모리 칩을 더 포함하고,
    상기 스토리지 컨트롤러는 수신 유닛, 결정 유닛, 변환 유닛, 및 액세스 유닛을 포함하며,
    상기 수신 유닛은 플래시 메모리 칩에 액세스하는 데 사용되는 제1 주소, 및 상기 제1 주소의 주소 유형을 나타내기 위해 사용되는 식별 정보를 수신하도록 구성되고 - 여기서, 상기 제1 주소와 상기 식별 정보는 호스트에 의해 송신되고; 상기 식별 정보는 제1 식별 정보이거나 또는 제2 식별 정보이며; 상기 제1 주소는 상기 호스트의 최하위 소프트웨어 계층에 위치하는 논리 주소 처리 모듈에 의해 송신되고; 상기 논리 주소 처리 모듈은, 상기 호스트의 상위 소프트웨어 계층에 위치하는 논리 주소 송신 모듈에 의해 송신된 제1 논리 주소를 수신한 후, 상기 제1 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속하는지 또는 사용자 데이터에 대응하는 논리 주소에 속하는지 여부를 판정하고, 상기 제1 논리 주소가 상기 운영체제 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 주소인 상기 제1 논리 주소를 상기 스토리지 컨트롤러에 송신하고, 상기 제1 식별 정보를 상기 스토리지 컨트롤러에 송신하거나; 또는 상기 제1 논리 주소가 상기 사용자 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 논리 주소를 제2 물리 주소로 변환하고, 상기 제1 주소인 상기 제2 물리 주소를 상기 스토리지 컨트롤러에 송신하며, 상기 제2 식별 정보를 상기 스토리지 컨트롤러에 송신함 -;
    상기 결정 유닛은 상기 수신된 식별 정보가 상기 제1 식별 정보인지 또는 상기 제2 식별 정보인지 여부를 판정하도록 구성되며;
    상기 결정 유닛이 상기 식별 정보가 상기 제1 식별 정보라고 결정하는 경우, 상기 변환 유닛은 상기 수신 유닛에 의해 수신된 상기 제1 주소를 제1 물리 주소로 변환하도록 구성되고, 상기 액세스 유닛은 변환을 통해 상기 변환 유닛에 의해 획득된 상기 제1 물리 주소에 따라 상기 플래시 메모리 칩에 액세스하도록 구성되며;
    상기 결정 유닛이 상기 식별 정보가 상기 제2 식별 정보라고 결정하는 경우, 상기 액세스 유닛은 상기 수신 유닛에 의해 수신된 상기 제1 주소에 따라 상기 플래시 메모리 칩에 액세스하도록 구성된, 스토리지 컨트롤러.
  7. 제6항에 있어서,
    상기 운영체제 데이터(operating system data)는, 운영체제의 소프트웨어 자체의 데이터이고 또한 실행 중인 프로세스에서 상기 운영체제에 의해 생성된 일부 데이터이며;
    상기 사용자 데이터는, 상기 운영체제가 설치된 후 사용자에 의해 상기 스토리지 장치에 기록된 데이터인, 스토리지 컨트롤러.
  8. 제6항 또는 제7항에 있어서,
    상기 결정 유닛은 추가적으로, 전원 인가(power-on) 후 상기 식별 정보가 수신되는지 여부를 판정하도록 구성되고;
    상기 변환 유닛은 추가적으로, 상기 결정 유닛이 식별 정보가 수신되지 않는다고 결정하는 경우, 수신된 액세스 요청 내의 주소를 논리 주소로 사용하고, 상기 주소를 제3 물리 주소로 변환하도록 구성되며;
    상기 액세스 유닛은 추가적으로, 변환을 통해 상기 변환 유닛에 의해 획득된 상기 제3 물리 주소에 따라 상기 플래시 메모리 칩에 액세스하도록 구성된, 스토리지 컨트롤러.
  9. 호스트로서,
    프로세서와 메모리를 포함하고,
    상기 메모리는 상기 프로세서에 의해 실행될 명령을 저장하고, 상기 프로세서는 상기 명령을 판독하여 소프트웨어 프로그램을 실행하며, 상기 소프트웨어 프로그램은 상위 소프트웨어 계층에 위치하는 논리 주소 송신 모듈 및 최하위 소프트웨어 계층에 위치하는 논리 주소 처리 모듈을 포함하고,
    상기 논리 주소 송신 모듈은 제1 논리 주소를 상기 논리 주소 처리 모듈에 송신하도록 구성되고;
    상기 논리 주소 처리 모듈은 상기 논리 주소 송신 모듈에 의해 송신된 상기 제1 논리 주소를 수신하도록 구성되며;
    상기 논리 주소 처리 모듈은 추가적으로, 상기 제1 논리 주소가 운영체제 데이터에 대응하는 논리 주소에 속하는지 또는 사용자 데이터에 대응하는 논리 주소에 속하는지 여부를 판정하도록 구성되고;
    상기 논리 주소 처리 모듈은 추가적으로, 상기 제1 논리 주소가 상기 운영체제 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 논리 주소를 스토리지 컨트롤러에 송신하고, 제1 식별 정보를 상기 스토리지 컨트롤러에 송신하도록 구성되거나 - 여기서, 상기 제1 식별 정보는, 상기 제1 식별 정보를 수신한 후 상기 스토리지 컨트롤러가 상기 제1 논리 주소를 제1 물리 주소로 변환하고, 상기 제1 물리 주소에 따라 플래시 메모리 칩 내의 데이터에 액세스할 수 있게 하는 정보임 -; 또는
    상기 논리 주소 처리 모듈은 추가적으로, 상기 제1 논리 주소가 상기 사용자 데이터에 대응하는 상기 논리 주소에 속한다고 결정하는 경우, 상기 제1 논리 주소를 제2 물리 주소로 변환하고, 상기 제2 물리 주소를 상기 스토리지 컨트롤러에 송신하며, 제2 식별 정보를 상기 스토리지 컨트롤러에 송신하도록 구성되고, 상기 제2 식별 정보는, 상기 스토리지 컨트롤러가 상기 수신된 제2 식별 정보에 따른 상기 제2 물리 주소를 이용하여 상기 플래시 메모리 칩 내의 상기 데이터에 액세스할 수 있게 하는 정보인, 호스트.
  10. 제9항에 있어서,
    상기 운영체제 데이터(operating system data)는, 운영체제의 소프트웨어 자체의 데이터이고 또한 실행 중인 프로세스에서 상기 운영체제에 의해 생성된 일부 데이터이며;
    상기 사용자 데이터는, 상기 운영체제가 설치된 후 사용자에 의해 스토리지 장치에 기록된 데이터인, 호스트.
  11. 스토리지 장치로서,
    제6항에 따른 스토리지 컨트롤러, 및
    적어도 하나의 플래시 메모리 칩
    을 포함하는 스토리지 장치.
  12. 스토리지 시스템으로서,
    제11항에 따른 스토리지 장치, 및
    제9항 또는 제10항에 따른 호스트
    를 포함하는 스토리지 시스템.
KR1020187017018A 2015-11-19 2016-11-16 저장된 데이터에 액세스하기 위한 방법, 및 관련 컨트롤러, 장치, 호스트와 시스템 KR102104288B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510800479.1A CN105353989B (zh) 2015-11-19 2015-11-19 存储数据访问方法及相关的控制器、设备、主机和系统
CN201510800479.1 2015-11-19
PCT/CN2016/106000 WO2017084565A1 (zh) 2015-11-19 2016-11-16 存储数据访问方法及相关的控制器、设备、主机和系统

Publications (2)

Publication Number Publication Date
KR20180082579A KR20180082579A (ko) 2018-07-18
KR102104288B1 true KR102104288B1 (ko) 2020-04-24

Family

ID=55329967

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187017018A KR102104288B1 (ko) 2015-11-19 2016-11-16 저장된 데이터에 액세스하기 위한 방법, 및 관련 컨트롤러, 장치, 호스트와 시스템

Country Status (5)

Country Link
US (1) US10783086B2 (ko)
EP (1) EP3370155B1 (ko)
KR (1) KR102104288B1 (ko)
CN (1) CN105353989B (ko)
WO (1) WO2017084565A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105353989B (zh) * 2015-11-19 2018-12-28 华为技术有限公司 存储数据访问方法及相关的控制器、设备、主机和系统
CN106339182A (zh) * 2016-08-25 2017-01-18 曾美枝 存储器管理方法和装置
US10997066B2 (en) * 2018-02-20 2021-05-04 Samsung Electronics Co., Ltd. Storage devices that support cached physical address verification and methods of operating same
CN110362509B (zh) * 2018-04-10 2024-04-12 北京忆恒创源科技股份有限公司 统一地址转换方法与统一地址空间
KR20200122685A (ko) * 2019-04-18 2020-10-28 에스케이하이닉스 주식회사 메모리 시스템 내에서 서로 다른 종류의 데이터를 처리하기 위한 장치 및 방법
CN111949557B (zh) * 2019-05-16 2024-01-23 兆易创新科技集团股份有限公司 一种数据读取方法、装置及存储设备
CN111913900A (zh) * 2020-07-21 2020-11-10 大唐微电子技术有限公司 一种主机与外接设备通信的方法、存储介质和电子装置
CN111949213B (zh) * 2020-07-28 2022-08-30 新华三半导体技术有限公司 内存颗粒访问控制芯片、内存颗粒的访问控制系统及方法
CN114116526A (zh) * 2020-08-28 2022-03-01 美光科技公司 用于用嵌入式存储器系统进行受管理nand转译的技术
CN113127402A (zh) * 2021-04-29 2021-07-16 广东湾区智能终端工业设计研究院有限公司 一种spi访问控制方法、系统、计算设备及存储介质
CN114124883B (zh) * 2021-10-12 2023-09-12 鸬鹚科技(深圳)有限公司 基于云存储地址的数据访问方法、装置、计算机设备及介质
CN114756488A (zh) * 2022-06-15 2022-07-15 珠海妙存科技有限公司 一种eMMC总线调度方法、系统、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150269098A1 (en) * 2014-03-19 2015-09-24 Nec Corporation Information processing apparatus, information processing method, storage, storage control method, and storage medium

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US8307194B1 (en) * 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
CN101052949A (zh) * 2004-08-18 2007-10-10 扎鲁纳股份有限公司 操作系统
US7490214B2 (en) * 2006-06-12 2009-02-10 Sun Microsystems, Inc. Relocating data from a source page to a target page by marking transaction table entries valid or invalid based on mappings to virtual pages in kernel virtual memory address space
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
CN101324867B (zh) * 2007-06-16 2011-07-20 深圳市硅格半导体有限公司 基于半导体存储介质的数据管理装置及管理方法
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US8024620B2 (en) * 2008-07-25 2011-09-20 Freescale Semiconductor, Inc. Dynamic address-type selection control in a data processing system
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
KR20100082185A (ko) * 2009-01-08 2010-07-16 삼성전자주식회사 플래시 메모리, 캐시 메모리, 그리고 제어기를 포함하는 사용자 장치
KR101736384B1 (ko) * 2010-09-29 2017-05-16 삼성전자주식회사 비휘발성 메모리 시스템
JP5323030B2 (ja) * 2010-12-01 2013-10-23 株式会社東芝 メモリ装置及びメモリ制御方法
CN102023817A (zh) * 2010-12-03 2011-04-20 深圳市江波龙电子有限公司 一种存储设备数据的读写控制方法及系统
KR20130051564A (ko) * 2011-11-10 2013-05-21 삼성전자주식회사 메모리 모듈, 이를 포함하는 보드 어셈블리, 이를 포함하는 메모리 시스템, 및 상기 메모리 시스템의 동작 방법
KR20140057454A (ko) * 2012-11-02 2014-05-13 삼성전자주식회사 비휘발성 메모리 장치 및 이와 통신하는 호스트 장치
CN103914395B (zh) * 2013-01-06 2017-02-08 北京忆恒创源科技有限公司 用于存储设备的地址映射方法
US9575884B2 (en) * 2013-05-13 2017-02-21 Qualcomm Incorporated System and method for high performance and low cost flash translation layer
WO2015061971A1 (zh) 2013-10-29 2015-05-07 华为技术有限公司 数据处理系统和数据处理的方法
CN104252429B (zh) * 2014-09-03 2017-05-17 英业达科技有限公司 存储控制装置与供其调用其地址的方法
CN105005536B (zh) * 2015-07-01 2019-08-06 忆正科技(武汉)有限公司 固态存储设备、主机的工作方法及固态存储设备、主机
WO2017066601A1 (en) * 2015-10-16 2017-04-20 Huang Yiren Ronnie Method and apparatus for providing hybrid mode to access ssd drive
CN105353989B (zh) * 2015-11-19 2018-12-28 华为技术有限公司 存储数据访问方法及相关的控制器、设备、主机和系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150269098A1 (en) * 2014-03-19 2015-09-24 Nec Corporation Information processing apparatus, information processing method, storage, storage control method, and storage medium

Also Published As

Publication number Publication date
CN105353989B (zh) 2018-12-28
US10783086B2 (en) 2020-09-22
WO2017084565A1 (zh) 2017-05-26
EP3370155A4 (en) 2018-11-14
EP3370155B1 (en) 2021-12-22
US20180267901A1 (en) 2018-09-20
KR20180082579A (ko) 2018-07-18
CN105353989A (zh) 2016-02-24
EP3370155A1 (en) 2018-09-05

Similar Documents

Publication Publication Date Title
KR102104288B1 (ko) 저장된 데이터에 액세스하기 위한 방법, 및 관련 컨트롤러, 장치, 호스트와 시스템
CN107229415B (zh) 一种数据写方法、数据读方法及相关设备、系统
US9274940B2 (en) Method and apparatus for allocating memory space with write-combine attribute
EP3214553B1 (en) Storage resource access method supporting sr-iov, storage controller and storage device
JP6319607B2 (ja) データを書き込むようにソリッドステートディスクを制御するためのアレイコントローラ、ソリッドステートディスクおよび方法
KR102447493B1 (ko) 랭크 단위로 메모리 장치를 트레이닝하는 전자 장치 및 그것의 메모리 트레이닝 방법
JP6475256B2 (ja) コンピュータ、制御デバイス及びデータ処理方法
EP3377965B1 (en) Data processing method, device, and system
US9223707B2 (en) Mobile memory cache read optimization
CN111427517A (zh) 一种数据处理方法以及NVMe存储器
US11010056B2 (en) Data operating method, device, and system
US20160062659A1 (en) Virtual memory module
KR20170043993A (ko) 인터페이스 제어 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법
CN110837479A (zh) 数据处理方法、相关设备及计算机存储介质
KR102331926B1 (ko) 저장 장치를 포함하는 호스트 시스템의 동작 방법 및 저장 장치 제어기의 동작 방법
CN104239252A (zh) 数据存储系统的数据传输方法、装置及系统
TW201633136A (zh) 回應讀取方法及資料傳輸系統
CN104252423A (zh) 基于多内核处理器的一致性处理方法和装置
CN117369710A (zh) 用于控制部件的方法及相关产品
CN114116548A (zh) 资源可配置的存储控制器
CN109461468A (zh) 一种数据稳定性检测方法
CN110750214A (zh) 一种兼顾eMMC存储器顺序读和随机读性能的方法
KR20120035716A (ko) 부팅 장치 및 그 방법
US20150339224A1 (en) System and method for host-processor communication over a bus
KR20160100183A (ko) 복수의 제어 라인을 통한 데이터 전송 방법 및 그 시스템

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