KR20190011123A - 스토리지 장치, 스토리지 시스템 및 이의 동작 방법 - Google Patents
스토리지 장치, 스토리지 시스템 및 이의 동작 방법 Download PDFInfo
- Publication number
- KR20190011123A KR20190011123A KR1020170093691A KR20170093691A KR20190011123A KR 20190011123 A KR20190011123 A KR 20190011123A KR 1020170093691 A KR1020170093691 A KR 1020170093691A KR 20170093691 A KR20170093691 A KR 20170093691A KR 20190011123 A KR20190011123 A KR 20190011123A
- Authority
- KR
- South Korea
- Prior art keywords
- boot data
- host
- requested
- initialization command
- interface
- Prior art date
Links
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
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/20—Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/065—Replication 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/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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/20—Initialising; Data preset; Chip identification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
스토리지 장치, 스토리지 시스템 및 이의 동작 방법이 개시된다. 본 개시에 따른 호스트와 통신 가능하게 연결된 스토리지 장치는 상기 스토리지 장치의 부팅에 필요한 적어도 하나의 부트 데이터를 저장하는 비휘발성 메모리 및 상기 호스트로부터 인터페이스 초기화 커맨드를 수신하고, 상기 인터페이스 초기화 커맨드에 기초하여 상기 적어도 하나의 부트 데이터 중 상기 호스트로부터 요구되는 요구 부트 데이터를 예측하고, 상기 요구 부트 데이터가 리드되도록 상기 비휘발성 메모리를 제어하는 디바이스 컨트롤러를 포함할 수 있다.
Description
본 개시의 기술적 사상은 스토리지 장치, 스토리지 시스템 및 이의 동작 방법에 관한 것으로, 더욱 상세하게는 호스트와의 부팅 시간을 단축 시키는 스토리지 장치에 관한 것이다.
스토리지 시스템(storage system)은 호스트(host)와 스토리지 장치(storage device)로 구성되며, 호스트(host)와 스토리지 장치(storage device)는 UFS(universal flash storage), SATA(serial ATA), SCSI(small computer small interface), SAS(serial attached SCSI), eMMC(embedded MMC) 등과 같은 다양한 인터페이스 표준을 통해 서로 연결된다. 호스트와 스토리지 장치가 정상적으로 통신하기 위해서 부팅(Booting)이 수행되는데, 부팅을 위해서는 부트 데이터(Boot Data)가 스토리지 장치로부터 호스트에 전송될 필요가 있다.
본 개시의 기술적 사상이 해결하고자 하는 과제는 부팅 시간을 줄이는 스토리지 장치 및 이의 동작 방법을 제공하는 데 있다.
본 개시의 기술적 사상이 해결하고자 하는 또 다른 과제는 부팅 시간을 줄이는 스토리지 시스템 및 이의 동작 방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 호스트와 통신 가능하게 연결된 스토리지 장치는 상기 스토리지 장치의 부팅에 필요한 적어도 하나의 부트 데이터를 저장하는 비휘발성 메모리 및 상기 호스트로부터 인터페이스 초기화 커맨드를 수신하고, 상기 인터페이스 초기화 커맨드에 기초하여 상기 적어도 하나의 부트 데이터 중 상기 호스트로부터 요구되는 요구 부트 데이터를 예측하고, 상기 요구 부트 데이터가 리드되도록 상기 비휘발성 메모리를 제어하는 디바이스 컨트롤러를 포함할 수 있다.
본 개시의 기술적 사상의 또 다른 측면에 따른 호스트와 통신 가능하게 연결된 스토리지 장치의 동작 방법은 상기 호스트로부터 부팅에 필요한 요구 부트 데이터에 대한 정보를 포함하는 인터페이스 초기화 커맨드를 수신하는 단계 및 상기 인터페이스 초기화 커맨드에 대응하여 상기 요구 부트 데이터를 상기 스토리지 장치에 포함된 휘발성 메모리에 저장하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치는 호스트로부터 수신한 인터페이스 초기화 커맨드에 기초하여 부팅에 필요한 요구 부트 데이터를 비휘발성 메모리로부터 미리 리드할 수 있다. 일 실시예에 따르면, 스토리지 장치는 인터페이스 초기화 커맨드에 기초하여 복수의 부트 데이터 중 상기 요구 부트 데이터를 예측할 수 있다. 또한, 스토리지 장치는 호스트로부터의 부트 데이터 리드 커맨드에 대응하여 비휘발성 메모리에 대한 리드 없이 바로 요구 부트 데이터를 호스트에 출력할 수 있다. 이에 따라, 스토리지 장치의 부팅 시간이 감소할 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2a는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 2b는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 부트 데이터 예측기를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 부트 데이터 테이블의 일 예시를 나타내는 표이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다.
도 6a는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다.
도 6b는 본 개시의 예시적 실시예에 따른 요구 부트 데이터 예측 동작의 일예시를 나타내는 도면이다.
도 7a는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다.
도 7b는 본 개시의 예시적 실시예에 따른 요구 부트 데이터 예측 동작의 일예시를 나타내는 도면이다.
도 8a는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다.
도 8b는 본 개시의 예시적 실시예에 따른 요구 부트 데이터 예측 동작의 일예시를 나타내는 도면이다.
도 9는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 10은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 11은 본 개시의 예시적 실시예에 따른 동작 단계 별 비휘발성 메모리의 데이터 I/O 전력 레벨을 나타내는 그래프이다.
도 12는 본 개시의 예시적 실시예에 따른 UFS 시스템을 나타내는 블록도이다.
도 13은 본 개시의 예시적 실시예에 따른 모바일 장치를 보여주는 블록도이다.
도 2a는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 2b는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 부트 데이터 예측기를 나타내는 블록도이다.
도 4는 본 개시의 예시적 실시예에 따른 부트 데이터 테이블의 일 예시를 나타내는 표이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다.
도 6a는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다.
도 6b는 본 개시의 예시적 실시예에 따른 요구 부트 데이터 예측 동작의 일예시를 나타내는 도면이다.
도 7a는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다.
도 7b는 본 개시의 예시적 실시예에 따른 요구 부트 데이터 예측 동작의 일예시를 나타내는 도면이다.
도 8a는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다.
도 8b는 본 개시의 예시적 실시예에 따른 요구 부트 데이터 예측 동작의 일예시를 나타내는 도면이다.
도 9는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다.
도 10은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 11은 본 개시의 예시적 실시예에 따른 동작 단계 별 비휘발성 메모리의 데이터 I/O 전력 레벨을 나타내는 그래프이다.
도 12는 본 개시의 예시적 실시예에 따른 UFS 시스템을 나타내는 블록도이다.
도 13은 본 개시의 예시적 실시예에 따른 모바일 장치를 보여주는 블록도이다.
도 1은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 1을 참조하면, 스토리지 시스템(1)은 스토리지 장치(10) 및 호스트(20)를 포함할 수 있다. 스토리지 장치(10)는 디바이스 컨트롤러(100) 및 비휘발성 메모리(200)를 포함할 수 있고, 디바이스 컨트롤러(100)는 부트 데이터 예측기(110)를 포함할 수 있다. 또한, 호스트(20)는 호스트 컨트롤러(300)를 포함할 수 있고, 호스트 컨트롤러(300)는 인터페이스 초기화 커맨드(Interface Initialize Command;IFIC) 생성기(310)를 포함할 수 있다.
스토리지 시스템(1)은 예를 들어, PC(personal computer), 데이터 서버, 네트워크-결합 스토리지(network-attached storage, NAS), IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑, 휴대폰, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
스토리지 장치(10)는 호스트(20)로부터 수신한 데이터를 저장할 수 있다. 호스트(20)의 커맨드(CMD)가 라이트 커맨드인 경우, 스토리지 장치(10)는 호스트(20)로부터 수신한 데이터를 비휘발성 메모리(200)에 라이트함으로써 저장할 수 있고, 호스트(20)의 커맨드(CMD)가 리드 커맨드인 경우, 스토리지 장치(10)는 비휘발성 메모리(200)에 저장된 데이터를 리드함으로써 호스트(20)에 리드한 데이터를 출력할 수 있다. 또한, 스토리지 장치(10)의 부팅 과정에서, 스토리지 장치(10)는 호스트(20)에 부팅에 필요한 요구 부트 데이터(RBD)를 출력할 수 있다. 부트 데이터(Boot Data)는 디바이스의 부팅에 있어서 필요한 각종 설정 정보를 포함하는 데이터를 뜻할 수 있다. 비휘발성 메모리(200)는 복수의 부트 데이터를 저장하고 있을 수 있는데, 그 중에서도 특정 부트 데이터가 호스트(20)에 의해서 요구될 수 있다. 이하 본 명세서에서 스토리지 장치(10)를 부팅하기 위해 호스트(20)에 의해 요구되는 부트 데이터를 요구 부트 데이터(RBD)라고 칭한다.
호스트(20)는 스토리지 장치(10)에 각종 커맨드(CMD)를 출력할 수 있다. 커맨드(CMD)에는 상술한 리드 커맨드, 라이트 커맨드 뿐만 아니라 인터페이스 초기화 커맨드를 포함할 수 있다. 스토리지 장치(10)는 호스트(20)와 디바이스 인터페이스(Device Interface) 및 호스트 인터페이스(Host Interface)를 통해서 연결될 수 있다. 스토리지 장치(10)의 부팅 시에 스토리지 장치(10)의 디바이스 인터페이스와 호스트(20)의 호스트 인터페이스 간의 인터페이스 초기화 과정이 필요할 수 있다. 인터페이스 초기화 과정을 수행하기 위해, 호스트(20)는 스토리지 장치(10)에 인터페이스 초기화 커맨드를 출력할 수 있다.
본 개시의 일 실시예에 따르면, 스토리지 장치(10)는 호스트(20)로부터 수신한 인터페이스 초기화 커맨드에 기초하여 요구 부트 데이터(RBD)를 미리 비휘발성 메모리(200)로부터 리드하고, 리드 속도가 빠른 휘발성 메모리(미도시)에 저장할 수 있다. 인터페이스 초기화 커맨드에 따른 인터페이스 초기화 과정이 종료되고, 호스트(20)는 스토리지 장치(10)에 상기 요구 부트 데이터(RBD) 리드를 위한 부트 데이터 리드 커맨드를 출력할 수 있다. 스토리지 장치(10)는 상기 부트 데이터 리드 커맨드를 수신하기 전에 미리 요구 부트 데이터(RBD)를 상기 휘발성 메모리에 저장해놓을 수 있고, 부트 데이터 리드 커맨드에 대응하여 휘발성 메모리에 저장된 요구 부트 데이터(RBD)를 호스트(20)에 출력할 수 있다. 또한, 인터페이스 초기화 커맨드는 PHY 레이어 초기화 커맨드, Link 레이어 초기화 커맨드, Transport 레이어 초기화 커맨드 중 적어도 하나를 포함할 수 있고, 스토리지 장치(10)는 상기 PHY 레이어 초기화 커맨드, Link 레이어 초기화 커맨드, Transport 레이어 초기화 커맨드 중 적어도 하나의 커맨드에 기초하여 요구 부트 데이터(RBD)를 미리 비휘발성 메모리(200)로부터 리드할 수 있다.
호스트 컨트롤러(300)는 어플리케이션 프로세서에 구비되는 다수의 모듈들 중 어느 하나일 수 있으며, 상기 어플리케이션 프로세서는 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 호스트 컨트롤러(300)는 호스트(20)를 제어하기 위한 각종 신호를 출력할 수 있다. 일 예로서, 호스트 컨트롤러(300)는 스토리지 장치(10)로부터 데이터를 리드하기 위한 리드 커맨드를 생성하여 스토리지 장치(10)에 출력할 수 있다. 호스트 컨트롤러(300)는 인터페이스 초기화 커맨드 생성기(310)를 포함할 수 있다. 인터페이스 초기화 커맨드 생성기(310)는 인터페이스 초기화 과정을 개시하기 위한 인터페이스 초기화 커맨드를 생성할 수 있다. 본 개시의 일 실시예에 따르면, 인터페이스 초기화 커맨드 생성기(310)는 인터페이스 초기화 커맨드를 생성할 때, 인터페이스 초기화 커맨드에 요구 부트 데이터(RBD)에 대한 정보를 포함시킬 수 있다. 이하 본 명세서에서 인터페이스 초기화 커맨드에 포함되는 요구 부트 데이터(RBD)에 대한 정보를 힌트(Hint)라고 칭한다.
디바이스 컨트롤러(100)는 스토리지 장치(10)를 제어하기 위한 각종 신호를 출력할 수 있다. 일 예로서, 호스트(20)로부터 리드 커맨드를 수신하는 경우, 디바이스 컨트롤러(100)는 비휘발성 메모리(200)에 각종 신호를 출력함으로서 비휘발성 메모리(200)로부터 데이터를 리드하고, 리드한 데이터를 호스트(20)에 출력할 수 있다.
디바이스 컨트롤러(100)는 부트 데이터 예측기(110)를 포함할 수 있다. 부트 데이터 예측기(110)는 호스트(20)로부터 수신한 인터페이스 초기화 커맨드를 통해 호스트(20)에 출력할 요구 부트 데이터(RBD)를 예측할 수 있다. 즉, 스토리지 장치(10)가 호스트(20)로부터 요구 부트 데이터(RBD)에 대한 리드 명령을 수신하기 전에, 부트 데이터 예측기(110)는 어느 부트 데이터가 요구 부트 데이터(RBD)인지 예측할 수 있다. 본 개시의 일 실시예에서, 부트 데이터 예측기(110)는 인터페이스 초기화 커맨드에 포함된 힌트를 통해서 어느 부트 데이터가 요구 부트 데이터(RBD)인지 예측할 수 있다.
비휘발성 메모리(200)는 전원 공급이 차단되어도 저장하고 있던 데이터가 소멸하지 않는 메모리 장치를 의미할 수 있다. 비휘발성 메모리(200)는 비제한적인 예시로서 낸드 플래시 메모리(NAND Flash Memory;NAND), 수직형 낸드 플래시 메모리(Vertical NAND;VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory;RRAM), 상변화 메모리(Phase-Change Memory;PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory;MRAM)등이 될 수 있다. 비휘발성 메모리(200)는 3차원 어레이 구조 등으로 구현될 수 있다. 또한, 비휘발성 메모리(200)는 반도체 메모리 장치뿐만 아니라, 자기 디스크 장치로 구현될 수도 있다. 본 개시의 실시예들은 전하 저장층이 전도성 부유 게이트(floating gate)로 구성된 플래시 메모리는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash)에도 모두 적용 가능하다. 본 명세서에서 비휘발성 메모리(200)는 플래시 메모리인 것으로 설명되나 본 발명의 기술적 사상은 이에 제한되지 않는다.
비휘발성 메모리(200)는 적어도 하나의 부트 데이터를 저장할 수 있다. 적어도 하나의 부트 데이터 중 요구 부트 데이터(RBD)는 부팅 과정에서 비휘발성 메모리(200)로부터 디바이스 컨트롤러(100)를 통해 호스트(20) 에 출력될 수 있다. 일 실시예에서, 비휘발성 메모리(200)에 저장된 부트 데이터는 복수 개일 수 있고, 호스트(20)는 복수 개의 부트 데이터 중 요구 부트 데이터(RBD)가 필요할 수 있다. 이에 따라, 인터페이스 초기화 과정이 종료된 후 호스트(20)는 요구 부트 데이터(RBD)에 대한 리드 명령을 스토리지 장치(10)에 출력할 수 있다.
본 개시의 일 실시예에 따르면, 부트 데이터 예측기(110)가 호스트(20)로부터의 인터페이스 초기화 커맨드를 통해 요구 부트 데이터(RBD)에 대한 리드 명령을 수신하기 전에 요구 부트 데이터(RBD)를 미리 예측하고 비휘발성 메모리(200)로부터 리드함으로서 부팅 과정에 소요되는 시간이 감소할 수 있다.
도 2a는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다. 자세하게는, 도 2a는 호스트(예를 들면, 도 1의 20)로부터 인터페이스 초기화 커맨드(IFIC)를 수신한 경우 스토리지 장치를 나타내는 블록도이다. 도 1과 중복되는 내용에 대한 설명은 생략한다.
도 1 및 도 2a를 참조하면, 스토리지 장치(10)는 디바이스 컨트롤러(100), 비휘발성 메모리(200) 및 디바이스 인터페이스(400)를 포함할 수 있고, 디바이스 컨트롤러(100)는 부트 데이터 예측기(110) 및 FTL(Flash Translation Layer)(120)를 포함할 수 있고, 비휘발성 메모리(200)는 메모리 셀 어레이(210) 및 페이지 버퍼(220)를 포함할 수 있다.
디바이스 인터페이스(400)는 호스트(20)(또는 호스트(20)에 포함되는 호스트 인터페이스)와 데이터나 신호를 주고 받기 위한 기능 블록일 수 있다. 디바이스 인터페이스(400)는 호스트 인터페이스와 UFS, SATA, SCSI, SAS, eMMC 등과 같은 표준 인터페이스를 통해 연결될 수 있다. 디바이스 인터페이스(400)는 PHY 레이어(410), Link 레이어(420), Transport 레이어(430) 등 복수 개의 레이어를 포함할 수 있다. PHY 레이어(410)는 물리적인 레이어(Physical Layer)이고, 일 예시로서 MIPI MPHY 프로토콜을 지원할 수 있다. Link 레이어(420)는 PHY 레이어(410)의 상위 레이어로서 PHY 레이어(410)를 통해 입력되는 데이터나 신호의 유효 여부를 검사할 수 있고, 일 예시로서 MIPI UniPro 프로토콜을 지원할 수 있다. Transport 레이어(430)는 Link 레이어(420)의 상위 레이어이고, 일 예시로서 UTP(UFS transport protocol layer)를 지원할 수 있다. 디바이스 인터페이스(400)의 PHY 레이어(410), Link 레이어(420) 및 Transport 레이어(430)는 스토리지 장치(10)의 부팅 시에 호스트(20)로부터의 인터페이스 초기화 커맨드(IFIC)에 대응하여 초기화 과정이 수행될 수 있다.
FTL(120)은 논리 어드레스와 비휘발성 메모리(200)의 물리 어드레스 사이의 매핑 정보를 포함할 수 있다. 메모리 셀 어레이(210)는 호스트(20)로부터 수신한 데이터를 저장할 수 있다. 메모리 셀 어레이(210)는 워드 라인들, 스트링 선택 라인, 접지 선택 라인 및 비트 라인들과 연결되고, 비트 라인들을 통해 페이지 버퍼(220)와 연결될 수 있다. 또한, 메모리 셀 어레이(210)는 복수의 메모리 셀로 구성되는 복수의 낸드형 셀 스트링들(NAND Cell Strings)을 포함할 수 있다. 각각의 셀 스트링들은 스트링 선택 트랜지스터를 통해서 비트 라인과 연결될 수 있다. 메모리 셀 어레이(210)는 복수의 메모리 블록들로 구성될 수 있고, 복수의 메모리 블록들은 복수의 페이지들로 구성될 수 있다. 복수의 페이지들은 복수의 메모리 셀들을 포함할 수 있다. 비휘발성 메모리(200)는 2차원(2D) 메모리 어레이 또는 3차원(3D) 메모리 어레이를 포함할 수 있다.
상기 3차원(3D) 메모리 어레이는 실리콘 기판 위에 배치되는 활성 영역과, 메모리 셀들의 동작과 관련된 회로로서 상기 기판 상에 또는 상기 기판 내에 형성된 회로를 가지는 메모리 셀 어레이들의 적어도 하나의 물리적 레벨에 모놀리식으로 형성될 수 있다. 상기 용어 "모놀리식"은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미할 수 있다.
본 개시의 일 실시예에서, 상기 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 셀 스트링들을 포함할 수 있다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 동 제8,553,466호, 동 제8,654,587호, 동 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3D 메모리 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들 간에 공유되어 있는 3D 메모리 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다. 또한, 미국 특허출원공개공보 제2014-0334232호 및 미국특허공개공보 제8,488,381호는 본 명세서에 인용 형식으로 결합된다.
메모리 셀 어레이(210)는 제1 내지 제n 부트 데이터(BD1~n)를 저장할 수 있다. 제1 내지 제n 부트 데이터(BD1~n)는 각각 스토리지 장치(10)의 부팅에 필요한 설정 정보를 포함할 수 있고, 제1 내지 제n 부트 데이터(BD1~n) 중 호스트(20)에 필요한 요구 부트 데이터(RBD)가 선택될 수 있다.
페이지 버퍼(220)는 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작할 수 있다. 기입 동작시, 페이지 버퍼(220)는 메모리 셀 어레이(210)의 비트 라인으로 기입될 데이터에 대응하는 비트 라인 전압을 전달할 수 있다. 독출 동작시, 페이지 버퍼(220)는 선택된 메모리 셀에 저장된 데이터를 비트 라인을 통해서 감지할 수 있다. 페이지 버퍼(220)는 감지된 데이터를 래치하여 외부로 출력할 수 있다. 본 개시의 일 실시예에 따르면, 페이지 버퍼(220)는 메모리 셀 어레이(210)로부터 리드된 요구 부트 데이터(RBD)를 저장할 수 있다. 이를 위해 페이지 버퍼(220)는 적어도 하나의 메모리를 포함할 수 있고, 일 예시에서 페이지 버퍼(220)는 비휘발성 메모리보다 리드 속도가 빠른 정적 랜덤 억세스 메모리(SRAM), 동적 랜덤 억세스 메모리(DRAM), 래치(Latch), 플립플롭(Flip-Flop), 레지스터(Register) 등과 같은 휘발성 메모리를 포함할 수 있다.
디바이스 인터페이스(400)는 호스트(20)로부터 수신한 인터페이스 초기화 커맨드(IFIC)를 부트 데이터 예측기(110)에 출력할 수 있다. 부트 데이터 예측기(110)는 인터페이스 초기화 커맨드(IFIC)에 기초하여 요구 부트 데이터(RBD)를 예측하고, 예측한 요구 부트 데이터(RBD)의 어드레스(RBA)를 FTL(120)에 출력할 수 있다. FTL(120)은 수신한 어드레스(RBA)를 기초로 메모리 셀 어레이(210)의 물리 어드레스를 판단하고, 디바이스 컨트롤러(100)는 FTL(120)이 판단한 물리 어드레스를 기초로 비휘발성 메모리(200)에 각종 전압 신호를 포함하는 요구 부트 데이터 리드 커맨드(RBRC)를 출력할 수 있다. 이에 따라, 메모리 셀 어레이(210)로부터 리드된 요구 부트 데이터(RBD)는 페이지 버퍼(220)에 저장될 수 있다. 본 개시의 기술적 사상에 따르면, 상기 요구 부트 데이터(RBD)를 독출하고, 페이지 버퍼(220)에 저장하는 동작은 호스트(20)와 스토리지 장치(10)간의 인터페이스 초기화 과정 중에 수행될 수 있다.
도 2b는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다. 자세하게는, 도 2b는 호스트(예를 들면, 도 1의 20)로부터 부트 데이터 리드 커맨드(BDRC)를 수신한 경우 스토리지 장치를 나타내는 블록도이다. 도 2a과 중복되는 내용에 대한 설명은 생략한다.
도 1, 도 2a 및 도 2b를 참조하면, 스토리지 장치(10)는 디바이스 컨트롤러(100), 비휘발성 메모리(200) 및 디바이스 인터페이스(400)를 포함할 수 있다. 호스트(20)는 인터페이스 초기화 과정이 완료된 후, 스토리지 장치(10)에 부트 데이터 리드 커맨드(BDRC)를 출력할 수 있다. 디바이스 컨트롤러(100)는 디바이스 인터페이스(400)를 통해 부트 데이터 리드 커맨드(BDRC)를 수신할 수 있다. 디바이스 컨트롤러(100)는 이에 대응하여 페이지 버퍼(220)에 요구 부트 데이터 리드 커맨드(RBRC)를 페이지 버퍼(220)에 출력함으로서 메모리 셀 어레이(210)가 아닌 페이지 버퍼(220)로부터 요구 부트 데이터(RBD)를 리드할 수 있다. 디바이스 컨트롤러(100)는 리드한 요구 부트 데이터(RBD)를 디바이스 인터페이스(400)를 통해 호스트(20)에 출력할 수 있다. 도 2b에서는 디바이스 컨트롤러(100)가 상기 동작들을 수행하는 것으로 도시되었으나, 실제로는 디바이스 컨트롤러(100)에 포함된 CPU(미도시)가 커맨드 매니저(미도시) 등을 제어함으로서 상기 동작들을 수행할 수 있다.
본 개시의 기술적 사상에 따른 스토리지 장치(10)는, 인터페이스 초기화 과정이 완료되기 전, 메모리 셀 어레이(210)로부터 페이지 버퍼(220)로 미리 요구 부트 데이터(RBD)를 옮길 수 있고, 인터페이스 초기화 과정이 완료된 후, 호스트(20)로부터의 부트 데이터 리드 커맨드(BDRC)에 대응하여 페이지 버퍼(220)로부터 요구 부트 데이터(RBD)를 리드하여 호스트(20)에 출력할 수 있다. 리드 속도가 메모리 셀 어레이(210)보다 빠른 페이지 버퍼(220)로부터 요구 부트 데이터(RBD)를 리드함에 따라, 요구 부트 데이터(RBD)가 빠른 시간에 호스트(20)에 출력될 수 있고, 전체 부팅 시간이 줄어들 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 부트 데이터 예측기를 나타내는 블록도이다. 도 1과 중복되는 내용에 대한 설명은 생략한다.
도 3을 참조하면, 부트 데이터 예측기(110)는 힌트 추출부(111), 부트 데이터 판단부(112) 및 부트 데이터 테이블 저장부(113)를 포함할 수 있다. 힌트 추출부(111)는 호스트(예를 들면, 도 1의 20)로부터 인터페이스 초기화 커맨드(IFIC)를 수신하고, 인터페이스 초기화 커맨드(IFIC)에 기초하여 힌트(Ht)를 생성할 수 있다. 상술한 바와 같이 인터페이스 초기화 커맨드(IFIC)는 요구 부트 데이터에 대한 정보인 힌트(Ht)를 포함할 수 있다. 힌트 추출부(111)는 인터페이스 초기화 커맨드(IFIC)에 포함된 힌트(Ht)를 추출하여 부트 데이터 판단부(112)에 출력할 수 있다.
일 예시에서, 인터페이스 초기화 커맨드(IFIC)는 데이터의 길이로 요구 부트 데이터에 대한 정보를 포함할 수 있고, 힌트 추출부(111)는 상기 데이터의 길이를 카운팅하기 위한 카운터를 포함할 수 있다. 본 예시에서 힌트 추출부(111)는 인터페이스 초기화 커맨드(IFIC)의 연속적인 데이터 길이를 카운팅하고, 카운팅한 결과를 힌트(Ht)로서 부트 데이터 판단부(112)에 출력할 수 있다.
일 예시에서, 인터페이스 초기화 커맨드(IFIC)는 데이터 패킷과 별도의 힌트 패킷으로 요구 부트 데이터에 대한 정보를 포함할 수 있고, 힌트 추출부(111)는 상기 힌트 패킷을 디코딩하기 위한 디코더를 포함할 수 있다. 본 예시에서 힌트 추출부(111)는 인터페이스 초기화 커맨드(IFIC)에 포함된 힌트 패킷을 디코딩하여 생성한 부트 데이터 정보를 힌트(Ht)로서 부트 데이터 판단부(112)에 출력할 수 있다.
일 예시에서, 인터페이스 초기화 커맨드(IFIC)는 커맨드의 추가 헤더에 요구 부트 데이터에 대한 정보를 포함할 수 있고, 힌트 추출부(111)는 상기 추가 헤더를 디코딩하기 위한 디코더를 포함할 수 있다. 본 예시에서 힌트 추출부(111)는 인터페이스 초기화 커맨드(IFIC)의 추가 헤더를 디코딩하여 생성한 부트 데이터 정보를 힌트(Ht)로서 부트 데이터 판단부(112)에 출력할 수 있다.
부트 데이터 테이블 저장부(113)는 힌트(Ht)와 부트 데이터 어드레스(RBA)와의 대응 관계에 대한 정보를 포함하는 부트 데이터 테이블(BDT)을 저장할 수 있다. 부트 데이터 판단부(1120)는 부트 데이터 테이블 저장부(113)를 억세스함으로서 부트 데이터 테이블(BDT)을 획득할 수 있다. 이를 위해 부트 데이터 테이블 저장부(113)는 하나 이상의 메모리를 포함할 수 있다. 부트 데이터 테이블 저장부(113)는 예컨데 정적 랜덤 억세스 메모리(SRAM), 동적 랜덤 억세스 메모리(DRAM), 래치(Latch), 플립플롭(Flip-Flop), 레지스터(Register) 등과 같은 휘발성 메모리를 포함할 수도 있고, 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(RRAM), 상변화 메모리(PRAM), 자기저항 메모리(MRAM), 강유전체 메모리(FRAM), 스핀주입 자화반전 메모리(STT-RAM) 등과 같은 비휘발성 메모리를 포함할 수도 있다.
부트 데이터 판단부(112)는 수신한 힌트(Ht) 및 부트 데이터 테이블(BDT)에 기초하여 요구 부트 데이터 어드레스(RBA)를 FTL(예를 들면, 도 2a의 120)에 출력할 수 있다. 부트 데이터 판단부(112)는 부트 데이터 테이블(BDT)에서 수신한 힌트(Ht)와 대응되는 부트 데이터 어드레스를 요구 부트 데이터 어드레스(RBA)로서 FTL에 출력할 수 있다. 일 예시에서, 부트 데이터 판단부(112)는 적어도 하나의 비교기를 포함할 수 있다.
도 4는 본 개시의 예시적 실시예에 따른 부트 데이터 테이블의 일 예시를 나타내는 표이다. 도 3과 중복되는 내용에 대한 설명은 생략한다.
도 3 및 도 4를 참조하면, 부트 데이터 테이블(BDT)은 힌트(Ht)와 부트 데이터 어드레스 간의 대응 관계에 대한 정보를 포함할 수 있다. 부트 데이터 테이블(BDT)을 참조하면, 제1 힌트(Ht1)는 제1 부트 데이터 어드레스(BDA1)에 대응되고, 제2 힌트(Ht2)는 제2 부트 데이터 어드레스(BDA2)에 대응되고, 제3 힌트(Ht3)는 제3 부트 데이터 어드레스(BDA3)에 대응될 수 있다. 일 실시예에서, 부트 데이터 판단부(112)가 힌트 추출부(111)로부터 제1 힌트(Ht1)를 수신한 경우, 부트 데이터 판단부(112)는 제1 부트 데이터 어드레스(BDA1)를 요구 부트 데이터 어드레스(RBA)로서 출력할 수 있다. 유사하게, 부트 데이터 판단부(112)가 힌트 추출부(111)로부터 제2 힌트(Ht2)를 수신한 경우, 부트 데이터 판단부(112)는 제2 부트 데이터 어드레스(BDA2)를 요구 부트 데이터 어드레스(RBA)로서 출력할 수 있고, 부트 데이터 판단부(112)가 힌트 추출부(111)로부터 제3 힌트(Ht3)를 수신한 경우, 부트 데이터 판단부(112)는 제3 부트 데이터 어드레스(BDA3)를 요구 부트 데이터 어드레스(RBA)로서 출력할 수 있다.
도 4에서는 부트 데이터가 세개이고, 이에 따라 힌트(Ht) 및 부트 데이터 어드레스 역시 세개인 예시를 도시하고 있으나, 이는 일 예시일 뿐이고, 본 개시의 기술적 사상은 부트 데이터가 세개보다 많거나 적은 경우에도 적용될 수 있음은 이해되어야 할 것이다.
도 5는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다.
도 1, 도 2a 및 도 5를 참조하면, 스토리지 시스템(1)은 호스트(20), 부트 데이터 예측기(110), 메모리 셀 어레이(210), 페이지 버퍼(220) 및 디바이스 인터페이스(400)를 포함할 수 있다. 호스트(20)는 스토리지 장치(10)의 부팅을 위한 인터페이스 초기화 과정(T110)에서 디바이스 인터페이스(400)를 통해 부트 데이터 예측기(110)에 인터페이스 초기화 커맨드(IFIC)를 전송할 수 있다(T111). 스토리지 장치(10)는 인터페이스 초기화 커맨드(IFIC)에 기초하여 인터페이스 초기화 과정(T110)을 수행하기 위한 인터페이스 초기화 모드에 진입할 수 있다. 상기 인터페이스 초기화 커맨드(IFIC)는 PHY 레이어 초기화 커맨드, Link 레이어 초기화 커맨드 및 Transport 레이어 초기화 커맨드를 포함할 수 있다.
부트 데이터 예측기(110)는 인터페이스 초기화 커맨드(IFIC)에 포함된 힌트에 기초하여 복수의 부트 데이터 중 요구 부트 데이터(RBD)를 예측할 수 있다(T120). 일 실시예에서, 부트 데이터 예측기(110)는 부트 데이터 테이블을 참조하여 요구 부트 데이터(RBD)를 예측할 수 있다. 부트 데이터 예측기(110)는 예측된 요구 부트 데이터(RBD)에 대응되는 요구 부트 데이터 어드레스(RBA)를 이용하여 메모리 셀 어레이(210)로부터 요구 부트 데이터(RBD)를 리드할 수 있다(T130). 리드된 요구 부트 데이터(RBD)는 페이지 버퍼(220)에 임시로 저장될 수 있다(T140).
부트 데이터 예측기(110), 페이지 버퍼(220) 및 메모리 셀 어레이(210)가 상기 T120 내지 T140 단계의 동작을 수행하는 동안, 호스트(20)와 디바이스 인터페이스(400)는 인터페이스 초기화를 수행할 수 있다(T110). 상기 인터페이스 초기화는 PHY 레이어(410) 초기화, Link 레이어(420) 초기화 및 Transport 레이어(430) 초기화를 포함할 수 있다. 스토리지 장치(10)는 인터페이스 초기화를 모두 수행한 이후, 인터페이스 초기화 모드를 종료할 수 있다. 호스트(20)는 인터페이스 초기화가 완료된 후 디바이스 인터페이스(400)를 통해 페이지 버퍼(220)에 부트 데이터 리드 커맨드를 전송할 수 있다(T150). 자세하게는, 호스트(20)는 디바이스 컨트롤러(100)에 부트 데이터 리드 커맨드를 출력하고, 디바이스 컨트롤러(100)는 이에 대응하여 페이지 버퍼에 요구 부트 데이터 리드 커맨드를 출력할 수 있다.
페이지 버퍼(220)는 디바이스 인터페이스(400)를 통해 호스트(20)에 요구 부트 데이터(RBD)를 전송할 수 있다(T160). 자세하게는, 디바이스 컨트롤러(100)는 페이지 버퍼(220)로부터 요구 부트 데이터(RBD)를 리드하고, 리드한 요구 부트 데이터(RBD)를 호스트(20)에 전송할 수 있다.
도 6a는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다. 자세하게는, 도 6a는 부트 데이터 예측기(110)가 호스트(20)로부터의 PHY 레이어 초기화 커맨드에 대응하여 요구 부트 데이터를 예측하는 경우를 나타내는 도면이다. 도 5와 중복되는 내용에 대한 설명은 생략한다.
도 1, 도 2a 및 도 6a를 참조하면, 스토리지 시스템(1)은 호스트(20), 부트 데이터 예측기(110), 메모리 셀 어레이(210), 페이지 버퍼(220) 및 디바이스 인터페이스(400)를 포함할 수 있다. 호스트(20)는 스토리지 장치(10)의 부팅을 위해 디바이스 인터페이스(400)를 통해 부트 데이터 예측기(110)에 PHY 레이어 초기화 커맨드를 전송할 수 있다(T211).
부트 데이터 예측기(110)는 PHY 레이어 초기화 커맨드에 포함된 힌트에 기초하여 복수의 부트 데이터 중 요구 부트 데이터(RBD)를 예측할 수 있다. 자세하게는, 부트 데이터 예측기(110)는 PHY 레이어 초기화 커맨드의 데이터 길이에 기초하여 요구 부트 데이터(RBD)를 예측할 수 있다(T220). 일 예시에서, 부트 데이터 예측기(110)는 카운터를 포함할 수 있고, 상기 카운터가 PHY 레이어 초기화 커맨드의 데이터 길이를 카운팅함으로서, 요구 부트 데이터(RBD)를 예측할 수 있다. 도 6a에서는 부트 데이터 예측기(110)가 PHY 레이어 초기화 커맨드의 데이터 길이에 기초하여 요구 부트 데이터(RBD)를 예측하는 실시예가 도시되어 있으나, 본 개시의 기술적 사상은 이에 제한되지 않고, 상술한 바와 같이 부트 데이터 예측기(110)가 PHY 레이어 초기화 커맨드에 포함된 힌트 패킷 또는 PHY 레이어 초기화 커맨드의 헤더에 포함된 힌트에 기초하여 요구 부트 데이터(RBD)를 예측하는 실시예에도 적용될 수 있다.
부트 데이터 예측기(110)는 예측된 요구 부트 데이터(RBD)에 대응되는 요구 부트 데이터 어드레스(RBA)를 이용하여 메모리 셀 어레이(210)로부터 요구 부트 데이터(RBD)를 리드할 수 있다(T230). 리드된 요구 부트 데이터(RBD)는 페이지 버퍼(220)에 임시로 저장될 수 있다(T240).
부트 데이터 예측기(110), 페이지 버퍼(220) 및 메모리 셀 어레이(210)가 상기 T220 내지 T240 단계의 동작을 수행하는 동안, 호스트(20)와 디바이스 인터페이스(400)는 PHY 레이어 초기화(T212), Link 레이어 초기화(T213), Transport 레이어 초기화(T214)를 차례로 수행함으로서 인터페이스 초기화를 수행할 수 있다. 인터페이스 초기화 과정은 통상의 기술자에게 자명한 내용이므로 그 설명은 생략한다.
호스트(20)는 인터페이스 초기화가 완료된 후 디바이스 인터페이스(400)를 통해 페이지 버퍼(220)에 부트 데이터 리드 커맨드를 전송할 수 있다(T250). 자세하게는, 호스트(20)는 디바이스 컨트롤러(100)에 부트 데이터 리드 커맨드를 출력하고, 디바이스 컨트롤러(100)는 이에 대응하여 페이지 버퍼에 요구 부트 데이터 리드 커맨드를 출력할 수 있다. 페이지 버퍼(220)는 디바이스 인터페이스(400)를 통해 호스트(20)에 요구 부트 데이터(RBD)를 전송할 수 있다(T260). 자세하게는, 디바이스 컨트롤러(100)는 페이지 버퍼(220)로부터 요구 부트 데이터(RBD)를 리드하고, 리드한 요구 부트 데이터(RBD)를 호스트(20)에 전송할 수 있다.
도 6b는 본 개시의 예시적 실시예에 따른 요구 부트 데이터 예측 동작의 일예시를 나타내는 도면이다. 자세하게는 도 6b는 인터페이스 초기화 커맨드에 포함되는 PHY 레이어 초기화 커맨드의 데이터 길이에 기초하여 요구 부트 데이터를 예측하는 실시예를 나타내는 도면이다. 또한, 도 6b는 도 6a의 T220 동작을 나타내는 도면일 수 있다.
도 1, 도 4 및 도 6b를 참조하면, 인터페이스 초기화 커맨드 생성기(310)는 부팅에 필요한 요구 부트 데이터(RBD)에 따라서 서로 다른 로직 하이 길이를 갖는 데이터를 포함하는 PHY 레이어 초기화 커맨드를 생성하고, 생성한 PHY 레이어 초기화 커맨드를 부트 데이터 예측기(110)에 출력할 수 있다. 이에 따라 부트 데이터 예측기(110)는 서로 다른 로직 하이 길이를 갖는 제1 PHY 레이어 초기화 커맨드(PIC1) 또는 제2 PHY 레이어 초기화 커맨드(PIC2)를 수신할 수 있다.
부트 데이터 예측기(110)가 제1 PHY 레이어 초기화 커맨드(PIC1)를 수신하는 경우, 힌트 추출부(111)는 제1 PHY 레이어 초기화 커맨드(PIC1)의 로직 하이를 카운팅할 수 있다. 이를 위해, 힌트 추출부(111)는 카운터를 포함할 수 있다. 힌트 추출부(111)는 제1 PHY 레이어 초기화 커맨드(PIC1)를 카운팅한 결과인 제1 카운트(CNT1)를 부트 데이터 판단부(112)에 출력할 수 있다. 일 실시예에서, 부트 데이터 판단부(112)는 부트 데이터 테이블 저장부(113)로부터 수신한 부트 데이터 테이블(BDT)에서 제1 카운트(CNT1)에 대응되는 제1 부트 데이터를 써치하고, 써치한 제1 부트 데이터를 요구 부트 데이터(RBD)로 예측할 수 있다. 부트 데이터 판단부(112)는 제1 부트 데이터에 대응되는 어드레스를 요구 부트 데이터 어드레스(RBA)로서 FTL 등에 출력할 수 있다.
또 다른 실시예에서, 부트 데이터 판단부(112)는 제1 카운트(CNT1)와 미리 결정된 기준 카운트를 비교하고, 비교한 결과에 따라 요구 부트 데이터(RBD)를 예측할 수 있다. 일 예로서, 제1 카운트(CNT1)가 미리 결정된 기준 카운트보다 작으면 요구 부트 데이터(RBD)를 제1 부트 데이터로 예측하고, 제1 카운트(CNT1)가 미리 결정된 기준 카운트보다 크면 요구 부트 데이터(RBD)를 제2 부트 데이터로 예측할 수 있다.
부트 데이터 예측기(110)가 제2 PHY 레이어 초기화 커맨드(PIC2)를 수신하는 경우, 힌트 추출부(111)는 제2 PHY 레이어 초기화 커맨드(PIC2)의 로직 하이를 카운팅하여 제2 카운트(CNT2)를 부트 데이터 판단부(112)에 출력할 수 있다. 제1 PHY 레이어 초기화 커맨드(PIC1)와 제2 PHY 레이어 초기화 커맨드(PIC)의 로직 하이의 데이터 길이는 서로 다르기 때문에, 제1 카운트(CNT1)와 제2 카운트(CNT2)는 서로 다른 값을 가질 수 있다. 부트 데이터 판단부(112)는 부트 데이터 테이블 저장부(113)로부터 수신한 부트 데이터 테이블(BDT)에서 제2 카운트(CNT2)에 대응되는 제2 부트 데이터를 써치하고, 써치한 제2 부트 데이터를 요구 부트 데이터(RBD)로 예측할 수 있다. 부트 데이터 판단부(112)는 제2 부트 데이터에 대응되는 어드레스를 요구 부트 데이터 어드레스(RBA)로서 FTL 등에 출력할 수 있다.
도 6b에서는 힌트 추출부(111)가 PHY 레이어 초기화 커맨드의 로직 하이의데이터 길이를 카운팅하는 실시예에 대해서 도시되어 있으나, 본 개시의 기술적 사상은 이에 제한되지 않고, 로직 로우의 데이터 길이를 카운팅하는 실시예에도 적용될 수 있음은 이해되어야 할 것이다. 또한, 도 6b에서는 인터페이스 초기화 커맨드가 PHY 레이어 초기화 커맨드인 경우를 도시하고 있으나, 인터페이스 초기화 커맨드가 Link 레이어 초기화 커맨드인 경우나 Transport 레이어 초기화 커맨드인 경우에도 데이터의 길이를 카운팅하여 요구 부트 데이터(RBD)를 예측하는 본 실시예가 적용될 수 있다.
도 7a는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다. 자세하게는, 도 7a는 부트 데이터 예측기(110)가 호스트(20)로부터의 Link 레이어 초기화 커맨드에 대응하여 요구 부트 데이터를 예측하는 경우를 나타내는 도면이다. 도 5와 중복되는 내용에 대한 설명은 생략한다.
도 1, 도 2a 및 도 7a를 참조하면, 스토리지 시스템(1)은 호스트(20), 부트 데이터 예측기(110), 메모리 셀 어레이(210), 페이지 버퍼(220) 및 디바이스 인터페이스(400)를 포함할 수 있다. PHY 레이어 초기화를 수행한 후(T311), 호스트(20)는 디바이스 인터페이스(400)를 통해 부트 데이터 예측기(110)에 Link 레이어 초기화 커맨드를 전송할 수 있다(T312).
부트 데이터 예측기(110)는 Link 레이어 초기화 커맨드에 포함된 힌트에 기초하여 복수의 부트 데이터 중 요구 부트 데이터(RBD)를 예측할 수 있다. 자세하게는, 부트 데이터 예측기(110)는 Link 레이어 초기화 커맨드에 포함된 힌트 패킷에 기초하여 요구 부트 데이터(RBD)를 예측할 수 있다(T320). 일 예시에서, 부트 데이터 예측기(110)는 디코더를 포함할 수 있고, 상기 디코더가 힌트 패킷을 디코딩함으로서, 요구 부트 데이터(RBD)를 예측할 수 있다. 도 7a에서는 부트 데이터 예측기(110)가 Link 레이어 초기화 커맨드에 포함된 힌트 패킷에 기초하여 요구 부트 데이터(RBD)를 예측하는 실시예가 도시되어 있으나, 본 개시의 기술적 사상은 이에 제한되지 않고, 상술한 바와 같이 부트 데이터 예측기(110)가 Link 레이어 초기화 커맨드에 포함된 데이터의 길이 또는, Link 레이어 초기화 커맨드의 헤더에 포함된 힌트에 기초하여 요구 부트 데이터(RBD)를 예측하는 실시예에도 적용될 수 있다.
부트 데이터 예측기(110)는 예측된 요구 부트 데이터(RBD)에 대응되는 요구 부트 데이터 어드레스(RBA)를 이용하여 메모리 셀 어레이(210)로부터 요구 부트 데이터(RBD)를 리드할 수 있다(T330). 리드된 요구 부트 데이터(RBD)는 페이지 버퍼(220)에 임시로 저장될 수 있다(T340).
부트 데이터 예측기(110), 페이지 버퍼(220) 및 메모리 셀 어레이(210)가 상기 T320 내지 T340 단계의 동작을 수행하는 동안, 호스트(20)와 디바이스 인터페이스(400)는 Link 레이어 초기화(T313), Transport 레이어 초기화(T314)를 차례로 수행함으로서 인터페이스 초기화를 수행할 수 있다. 인터페이스 초기화 과정은 통상의 기술자에게 자명한 내용이므로 그 설명은 생략한다.
호스트(20)는 인터페이스 초기화 과정(T311 내지 T314)이 완료된 후 디바이스 인터페이스(400)를 통해 페이지 버퍼(220)에 부트 데이터 리드 커맨드를 전송할 수 있다(T350). 페이지 버퍼(220)는 디바이스 인터페이스(400)를 통해 호스트(20)에 요구 부트 데이터(RBD)를 전송할 수 있다(T360).
도 7b는 본 개시의 예시적 실시예에 따른 요구 부트 데이터 예측 동작의 일예시를 나타내는 도면이다. 자세하게는 도 7b는 Link 레이어 초기화 커맨드에 포함되는 힌트 패킷에 기초하여 요구 부트 데이터를 예측하는 실시예를 나타내는 도면이다. 또한, 도 7b는 도 7a의 T320 동작을 나타내는 도면일 수 있다.
도 1, 도 4 및 도 7b를 참조하면, 인터페이스 초기화 커맨드 생성기(310)는 부팅에 필요한 요구 부트 데이터(RBD)에 따라 서로 다른 힌트 패킷을 포함하는 Link 레이어 초기화 커맨드를 생성하고, 생성한 Link 레이어 초기화 커맨드를 부트 데이터 예측기(110)에 출력할 수 있다. 이에 따라 부트 데이터 예측기(110)는 서로 다른 힌트 패킷을 갖는 제1 Link 레이어 초기화 커맨드(LIC1) 또는 제2 Link 레이어 초기화 커맨드(LIC2)를 수신할 수 있다.
부트 데이터 예측기(110)가 제1 내지 제n 데이터 패킷(Pck 1~n) 및 제1 힌트 패킷(Ht1 Pck)을 포함하는 제1 Link 레이어 초기화 커맨드(LIC1)를 수신하는 경우, 힌트 추출부(111)는 제1 Link 레이어 초기화 커맨드(LIC1)에 포함된 제1 힌트 패킷(Ht1 Pck)을 디코딩할 수 있다. 이를 위해, 힌트 추출부(111)는 디코더를 포함할 수 있다. 힌트 추출부(111)는 제1 힌트 패킷(Ht1 Pck)을 디코딩한 결과인 제1 힌트(Ht1)를 부트 데이터 판단부(112)에 출력할 수 있다. 제1 힌트(Ht1)는 제1 부트 데이터의 어드레스, 제1 부트 데이터를 나타내는 미리 결정된 지시자 등 제1 부트 데이터에 대한 정보를 포함할 수 있다.
일 예시에서, 제1 힌트(Ht1)가 제1 부트 데이터의 어드레스인 경우, 부트 데이터 판단부(112)는 제1 힌트(Ht1)에 포함되는 제1 부트 데이터의 어드레스를 요구 부트 데이터 어드레스(BRA)로서 FTL에 출력할 수 있다.
또 다른 예시에서, 제1 힌트(Ht1)가 제1 부트 데이터를 나타내는 미리 결정된 지시자인 경우, 부트 데이터 판단부(112)는 부트 데이터 테이블 저장부(113)로부터 수신한 부트 데이터 테이블(BDT)에서 제1 힌트(Ht1)에 대응되는 제1 부트 데이터를 써치하고, 써치한 제1 부트 데이터를 요구 부트 데이터(RBD)로 예측할 수 있다. 부트 데이터 판단부(112)는 제1 부트 데이터에 대응되는 어드레스를 요구 부트 데이터 어드레스(RBA)로서 FTL 등에 출력할 수 있다.
유사하게, 부트 데이터 예측기(110)가 제2 힌트 패킷(Ht2 Pck)을 포함하는 제2 Link 레이어 초기화 커맨드(LIC2)를 수신하는 경우, 힌트 추출부(111)는 제2 Link 레이어 초기화 커맨드(LIC2)에 포함된 제2 힌트 패킷(Ht1 Pck)을 디코딩할 수 있다. 제2 힌트 패킷(Ht2 Pck)은 제1 힌트 패킷(Ht1 Pck)과 서로 다르기 때문에, 힌트 추출부(111)는 서로 다른 힌트를 디코딩 결과로서 생성할 수 있다. 힌트 추출부(111)는 제2 힌트 패킷(Ht2 Pck)을 디코딩한 결과인 제2 힌트(Ht2)를 부트 데이터 판단부(112)에 출력할 수 있다. 제2 힌트(Ht2)는 제2 부트 데이터의 어드레스, 제2 부트 데이터를 나타내는 지시자 등 제2 부트 데이터에 대한 정보를 포함할 수 있다.
도 7b에서는 인터페이스 초기화 커맨드가 Link 레이어 초기화 커맨드인 경우를 도시하고 있으나, 본 개시의 기술적 사상은 이에 제한되지 않고, 인터페이스 초기화 커맨드가 힌트 패킷을 포함하는 PHY 레이어 초기화 커맨드 또는 Transport 레이어 초기화 커맨드인 경우에도 본 실시예가 적용될 수 있다.
도 8a는 본 개시의 예시적 실시예에 따른 스토리지 시스템의 각 구성의 동작방법을 시간의 흐름에 따라 나타내는 도면이다. 자세하게는, 도 8a는 부트 데이터 예측기(110)가 호스트(20)로부터의 Transport 레이어 초기화 커맨드에 대응하여 요구 부트 데이터를 예측하는 경우를 나타내는 도면이다. 도 5와 중복되는 내용에 대한 설명은 생략한다.
도 1, 도 2a 및 도 8a를 참조하면, 스토리지 시스템(1)은 호스트(20), 부트 데이터 예측기(110), 메모리 셀 어레이(210), 페이지 버퍼(220) 및 디바이스 인터페이스(400)를 포함할 수 있다. PHY 레이어 초기화(T411) 및 Link 레이어 초기화(T412)를 수행한 후, 호스트(20)는 디바이스 인터페이스(400)를 통해 부트 데이터 예측기(110)에 Transport 레이어 초기화 커맨드를 전송할 수 있다(T413).
부트 데이터 예측기(110)는 Transport 레이어 초기화 커맨드에 포함된 힌트에 기초하여 복수의 부트 데이터 중 요구 부트 데이터(RBD)를 예측할 수 있다. 자세하게는, 부트 데이터 예측기(110)는 Transport 레이어 초기화 커맨드의 헤더에 포함된 힌트에 기초하여 요구 부트 데이터(RBD)를 예측할 수 있다(T420). 일 예시에서, 부트 데이터 예측기(110)는 디코더를 포함할 수 있고, 상기 디코더가 Transport 레이어 초기화 커맨드의 헤더를 디코딩함으로서, 요구 부트 데이터(RBD)를 예측할 수 있다. 일 예시에서, Transport 초기화 커맨드는 헤더의 길이가 조절될 수 있고, 추가된 헤더에 힌트를 포함할 수 있다.
도 8a에서는 부트 데이터 예측기(110)가 Transport 레이어 초기화 커맨드에 포함된 헤더에 기초하여 요구 부트 데이터(RBD)를 예측하는 실시예가 도시되어 있으나, 본 개시의 기술적 사상은 이에 제한되지 않고, 상술한 바와 같이 부트 데이터 예측기(110)가 Transport 레이어 초기화 커맨드에 포함된 힌트 패킷 또는 Transport 레이어 초기화 커맨드의 데이터 길이에 기초하여 요구 부트 데이터(RBD)를 예측하는 실시예에도 적용될 수 있음은 이해되어야 할것이다.
부트 데이터 예측기(110)는 예측된 요구 부트 데이터(RBD)에 대응되는 요구 부트 데이터 어드레스(RBA)를 이용하여 메모리 셀 어레이(210)로부터 요구 부트 데이터(RBD)를 리드할 수 있다(T430). 리드된 요구 부트 데이터(RBD)는 페이지 버퍼(220)에 임시로 저장될 수 있다(T440).
부트 데이터 예측기(110), 페이지 버퍼(220) 및 메모리 셀 어레이(210)가 상기 T420 내지 T440 단계의 동작을 수행하는 동안, 호스트(20)와 디바이스 인터페이스(400)는 Transport 레이어 초기화(T414)를 수행함으로서 인터페이스 초기화를 완료할 수 있다. 인터페이스 초기화 과정은 통상의 기술자에게 자명한 내용이므로 그 설명은 생략한다.
호스트(20)는 인터페이스 초기화 과정(T411 내지 T414)이 완료된 후 디바이스 인터페이스(400)를 통해 페이지 버퍼(220)에 부트 데이터 리드 커맨드를 전송할 수 있다(T450). 페이지 버퍼(220)는 디바이스 인터페이스(400)를 통해 호스트(20)에 요구 부트 데이터(RBD)를 전송할 수 있다(T460).
도 8b는 본 개시의 예시적 실시예에 따른 요구 부트 데이터 예측 동작의 일예시를 나타내는 도면이다. 자세하게는 도 8b는 Transport 레이어 초기화 커맨드의 헤더에 포함되는 힌트에 기초하여 요구 부트 데이터를 예측하는 실시예를 나타내는 도면이다. 또한, 도 8b는 도 8a의 T420 동작을 나타내는 도면일 수 있다.
도 1, 도 4 및 도 8b를 참조하면, 인터페이스 초기화 커맨드 생성기(310)는 부팅에 필요한 요구 부트 데이터(RBD)에 따라 헤더 부분에서 서로 다른 힌트를 포함하는 Transport 레이어 초기화 커맨드를 생성하고, 생성한 Transport 레이어 초기화 커맨드를 부트 데이터 예측기(110)에 출력할 수 있다. 이에 따라 부트 데이터 예측기(110)는 서로 다른 힌트 패킷을 갖는 제1 Transport 레이어 초기화 커맨드(TIC1) 또는 제2 Transport 레이어 초기화 커맨드(TIC2)를 수신할 수 있다.
제1 Transport 레이어 초기화 커맨드(TIC1) 및 제2 Transport 레이어 초기화 커맨드(TIC2)는 헤더(Header) 및 페이로드(Payload)를 포함할 수 있다. 헤더(Header)는 제1 Transport 레이어 초기화 커맨드(TIC1) 및 제2 Transport 레이어 초기화 커맨드(TIC2)의 인코딩 정보, 커맨드 종류 정보 등 설정 정보들을 포함할 수 있고, 페이로드(Payload)는 제1 Transport 레이어 초기화 커맨드(TIC1) 및 제2 Transport 레이어 초기화 커맨드(TIC2)의 커맨드 내용 등 실질적인 정보들을 포함할 수 있다. 본 개시의 일 실시예에 따르면, 헤더(Header)는 힌트를 포함할 수 있다. 또 다른 실시예에서, 헤더(Header)는 확장 가능하게 설정될 수 있고, 확장된 추가 헤더에 힌트가 포함될 수 있다.
부트 데이터 예측기(110)가 헤더(Header)에서 제1 힌트(Ht1)를 포함하는 제1 Transport 레이어 초기화 커맨드(TIC1)를 수신하는 경우, 힌트 추출부(111)는 제1 Transport 레이어 초기화 커맨드(TIC1)의 헤더(Header)를 디코딩하여 제1 힌트(Ht1)를 생성할 수 있다. 이를 위해, 힌트 추출부(111)는 디코더를 포함할 수 있다. 힌트 추출부(111)는 제1 힌트(Ht1)를 부트 데이터 판단부(112)에 출력할 수 있다. 제1 힌트(Ht1)는 제1 부트 데이터의 어드레스, 제1 부트 데이터를 나타내는 미리 결정된 지시자 등 제1 부트 데이터에 대한 정보를 포함할 수 있다.
일 예시에서, 제1 힌트(Ht1)가 제1 부트 데이터의 어드레스인 경우, 부트 데이터 판단부(112)는 제1 힌트(Ht1)에 포함되는 제1 부트 데이터의 어드레스를 요구 부트 데이터 어드레스(BRA)로서 FTL에 출력할 수 있다.
또 다른 예시에서, 제1 힌트(Ht1)가 제1 부트 데이터를 나타내는 미리 결정된 지시자인 경우, 부트 데이터 판단부(112)는 부트 데이터 테이블 저장부(113)로부터 수신한 부트 데이터 테이블(BDT)에서 제1 힌트(Ht1)에 대응되는 제1 부트 데이터를 써치하고, 써치한 제1 부트 데이터를 요구 부트 데이터(RBD)로 예측할 수 있다. 부트 데이터 판단부(112)는 제1 부트 데이터에 대응되는 어드레스를 요구 부트 데이터 어드레스(RBA)로서 FTL 등에 출력할 수 있다.
유사하게, 부트 데이터 예측기(110)가 헤더(Header)에서 제2 힌트(Ht2)를 포함하는 제2 Transport 레이어 초기화 커맨드(TIC2)를 수신하는 경우, 힌트 추출부(111)는 제2 Transport 레이어 초기화 커맨드(TIC2)의 헤더(Header)를 디코딩하여 제2 힌트(Ht2)를 생성할 수 있다. 힌트 추출부(111)는 제2 힌트(Ht2)를 부트 데이터 판단부(112)에 출력할 수 있다. 제2 힌트(Ht2)는 제2 부트 데이터의 어드레스, 제2 부트 데이터를 나타내는 지시자 등 제2 부트 데이터에 대한 정보를 포함할 수 있다.
도 8b에서는 인터페이스 초기화 커맨드가 Transport 레이어 초기화 커맨드인 경우를 도시하고 있으나, 본 개시의 기술적 사상은 이에 제한되지 않고, 인터페이스 초기화 커맨드의 헤더(Header)가 힌트를 포함하는 PHY 레이어 초기화 커맨드 또는 Link 레이어 초기화 커맨드인 경우에도 본 실시예가 적용될 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 블록도이다. 자세하게는, 도 9는 요구 부트 데이터가 디바이스 컨트롤러에 포함되는 휘발성 메모리에 저장되는 실시예를 나타내는 블록도이다. 도 2a와 중복되는 내용에 대한 설명은 생략한다.
도 9를 참조하면, 스토리지 장치(10a)는 디바이스 컨트롤러(100a), 비휘발성 메모리(200a) 및 디바이스 인터페이스(400a)를 포함할 수 있고, 디바이스 컨트롤러(100a)는 부트 데이터 예측기(110a), FTL(120a) 및 휘발성 메모리(130a)를 포함할 수 있고, 비휘발성 메모리(200a)는 메모리 셀 어레이(210a) 및 페이지 버퍼(220a)를 포함할 수 있다. 부트 데이터 예측기(110a), FTL(120a), 메모리 셀 어레이(210a) 및 디바이스 인터페이스(400a)는 도 2a의 부트 데이터 예측기(110), FTL(120), 메모리 셀 어레이(210) 및 디바이스 인터페이스(400)와 서로 동일하거나 유사할 수 있다.
디바이스 컨트롤러(100a)에 포함되는 휘발성 메모리(130a)는 요구 부트 데이터(RBD)를 임시로 저장할 수 있다. 휘발성 메모리(130a)는 비휘발성 메모리(200a)보다 고속으로 데이터 입출력 동작을 수행할 수 있다. 휘발성 메모리(130a)는 예컨데, 정적 랜덤 억세스 메모리(SRAM), 동적 랜덤 억세스 메모리(DRAM), 래치(Latch), 플립플롭(Flip-Flop), 레지스터(Register) 등을 포함할 수 있다. 일 예에서, 휘발성 메모리(130a)는 디바이스 컨트롤러(100a)에 포함되는 버퍼로 구현될 수 있다.
디바이스 인터페이스(400a)는 호스트(예를 들면, 도 2a의 20)로부터 수신한 인터페이스 초기화 커맨드(IFIC)를 부트 데이터 예측기(110a)에 출력할 수 있다. 부트 데이터 예측기(110a)는 인터페이스 초기화 커맨드(IFIC)에 기초하여 요구 부트 데이터(RBD)를 예측하고, 예측한 요구 부트 데이터(RBD)의 어드레스(RBA)를 FTL(120a)에 출력할 수 있다. FTL(120a)은 메모리 셀 어레이(210a)에 각종 전압 신호를 포함하는 요구 부트 데이터 리드 커맨드(RBRC)를 출력할 수 있다. 이에 따라, 메모리 셀 어레이(210a)로부터 리드된 요구 부트 데이터(RBD)는 페이지 버퍼(220a)를 통해 휘발성 메모리(130a)에 저장될 수 있다. 또한, 인터페이스 초기화 과정이 완료된 후, 호스트로부터 수신한 부트 데이터 리드 커맨드에 대응하여 휘발성 메모리(130a)는 디바이스 컨트롤러(100a)의 제어에 따라 요구 부트 데이터(RBD)를 호스트에 출력할 수 있다.
도 9에서는 휘발성 메모리(130a)가 디바이스 컨트롤러(100a) 내부에 위치하는 것으로 도시되어있으나, 본 개시의 기술적 사상은 이에 제한되지 않고, 휘발성 메모리(130a)가 디바이스 컨트롤러(100a) 외부에 위치하는 경우에도 적용될 수 있음은 이해되어야 할 것이다.
도 10은 본 개시의 예시적 실시예에 따른 스토리지 시스템을 나타내는 블록도이다. 자세하게는, 도 10는 요구 부트 데이터가 스토리지 장치 외부의 휘발성 메모리에 저장되는 실시예를 나타내는 블록도이다. 도 1 및 도 2a과 중복되는 내용에 대한 설명은 생략한다.
도 10를 참조하면, 스토리지 시스템(1b)은 스토리지 장치(10b), 호스트(20b)및 휘발성 메모리(30b)를 포함할 수 있고, 스토리지 장치(10b)는 부트 데이터 예측기(110b) 및 FTL(120b)를 포함하는 디바이스 컨트롤러(100b) 및 비휘발성 메모리(200b)를 포함할 수 있고, 호스트(20b)는 호스트 컨트롤러(300b)를 포함할 수 있다. 부트 데이터 예측기(110b), FTL(120b), 비휘발성 메모리(200b) 및 호스트 컨트롤러(300b)는 도 1 및 도 2a의 부트 데이터 예측기(110), FTL(120), 비휘발성 메모리(200) 및 호스트 컨트롤러(300)와 동일하거나 유사할 수 있다.
휘발성 메모리(30b)는 요구 부트 데이터(RBD)를 임시로 저장할 수 있다. 휘발성 메모리(30b)는 비휘발성 메모리(200b)보다 고속으로 데이터 입출력 동작을 수행할 수 있다. 휘발성 메모리(30b)는 예컨데, 정적 랜덤 억세스 메모리(SRAM), 동적 랜덤 억세스 메모리(DRAM), 래치(Latch), 플립플롭(Flip-Flop), 레지스터(Register) 등을 포함할 수 있다. 일 예에서, 휘발성 메모리(30b)는 호스트(20b)에 포함될 수 있다.
호스트 컨트롤러(300b)는 요구 부트 데이터(RBD)에 대한 정보를 포함하는 인터페이스 초기화 커맨드(IFIC)를 생성하고, 부트 데이터 예측기(110b)에 출력할 수 있다. 부트 데이터 예측기(110b)는 인터페이스 초기화 커맨드(IFIC)에 기초하여 요구 부트 데이터(RBD)를 예측하고, 예측한 요구 부트 데이터 어드레스(RBA)를 FTL(120b)에 출력할 수 있다. FTL(120b)은 수신한 요구 부트 데이터 어드레스(RBA)에 기초하여 부트 데이터 리드 커맨드(RBRC)를 비휘발성 메모리(200b)에 출력함으로서, 요구 부트 데이터(RBD)를 리드하고, 리드한 요구 부트 데이터(RBD)를 스토리지 장치(10b) 외부의 휘발성 메모리(30b)에 라이트할 수 있다. 또한, 인터페이스 초기화 과정을 완료한 후, 호스트 컨트롤러(300b)는 스토리지 장치(10b)가 아닌 휘발성 메모리(30b)에 부트 데이터 리드 커맨드(BDRC)를 출력할 수 있고, 휘발성 메모리(30b)는 수신한 부트 데이터 리드 커맨드(BDRC)에 대응하여 저장된 요구 부트 데이터(RBD)를 호스트(20b)에 출력할 수 있다.
도 10에서는 요구 부트 데이터(RBD)가 휘발성 메모리(30b)에 저장되는 것으로 도시되어 있으나, 본 개시의 기술적 사상은 이에 제한되지 않고, 요구 부트 데이터(RBD)를 미리 예측하여 스토리지 장치(10b) 외부의 비휘발성 메모리에 미리 저장되는 실시예에도 유추 적용될 수 있음은 이해되어야 할 것이다.
도 11은 본 개시의 예시적 실시예에 따른 동작 단계 별 비휘발성 메모리의 데이터 I/O 전력 레벨을 나타내는 그래프이다. 자세하게는, 도 11은 디바이스 컨트롤러 및 비휘발성 메모리의 동작 단계 별 비휘발성 메모리의 데이터 I/O 전력 레벨을 나타내는 그래프이다. 도 11의 가로축은 시간에 따른 동작 단계를 나타내고, 세로축은 비휘발성 메모리의 데이터 I/O 레벨을 나타낸다.
도 1, 도 2a 및 도 11을 참조하면, 부팅 단계는 인터페이스 초기화 여부에 따라서, 인터페이스 초기화 단계 및 부트 데이터 리드 단계를 포함할 수 있다. 인터페이스 초기화 단계은 호스트(20) 및 디바이스 인터페이스(400) 간에 인터페이스 초기화를 수행하는 단계를 의미할 수 있고, 부트 데이터 리드 단계는 인터 페이스 초기화가 완료된 후 부트 데이터 리드 커맨드를 통해 호스트(20)가 스토리지 장치(10)로부터 부트 데이터를 리드하는 단계를 의미할 수 있다.
또한, 인터페이스 초기화 단계는 호스트(20)가 디바이스 컨트롤러(100)로 인터페이스 초기화 명령을 발행하는 인터페이스 초기화 명령 발행 단계(Issue IFIC), 디바이스 컨트롤러(100)가 요구 부트 데이터(RBD)를 예측하는 예측 단계(Predict), 디바이스 컨트롤러(100)가 메모리 셀 어레이(210)로부터 요구 부트 데이터(RBD)를 리드하는 요구 부트 데이터 리드 단계(Read RBD), 페이지 버퍼(220)에 리드한 요구 부트 데이터(RBD)를 라이트하는 요구 부트 데이터 라이트 단계(Write RBD) 및 디바이스 컨트롤러(100) 및 비휘발성 메모리(200)가 대기하는 대기 단계(Wait)를 포함할 수 있다. 또한, 부트 데이터 리드 단계는 호스트(20)가 디바이스 컨트롤러(100)로 부트 데이터 리드 커맨드를 발행하는 부트 데이터 리드 커맨드 발행 단계(Issue BDRC) 및 요구 부트 데이터(RBD)를 호스트(20)에 출력하는 요구 부트 데이터 출력 단계(Output RBD)를 포함할 수 있다.
상기 인터페이스 초기화 단계에서 비휘발성 메모리의 데이터 I/O 전력 레벨은 제1 최대 파워 스윙 레벨(PS1)을 가질 수 있고, 상기 부트 데이터 리드 단계에서 비휘발성 메모리의 데이터 I/O 전력 레벨은 제2 최대 파워 스윙 레벨(PS2)을 가질 수 있다. 본 개시의 일 실시예에 따르면, 제1 최대 파워 스윙 레벨(PS1)은 제2 최대 파워 스윙 레벨(PS2)보다 클 수 있다.
메모리 셀 어레이(210)에 대한 데이터 입출력 동작이 있는 경우에 비휘발성메모리 데이터 I/O 전력 레벨의 변화 폭이 증가할 수 있다. 본 개시의 기술적 사상에 따르면, 호스트(20)의 부트 데이터 리드 커맨드(BDRC)를 수신하기 전인 요구 부트 데이터 리드 단계(Read RBD)에서 디바이스 컨트롤러(100)가 메모리 셀 어레이(210)로부터 요구 부트 데이터(RBD)를 리드하고, 요구 부트 데이터 라이트 단계(Write RBD)에서 리드된 요구 부트 데이터(RBD)가 페이지 버퍼(220)에 라이트되기 때문에, 부트 데이터 리드 단계가 아닌 인터페이스 초기화 단계의 비휘발성 메모리 데이터 I/O 전력 레벨의 변화 폭이 더 클 수 있다.
도 12는 본 개시의 예시적 실시예에 따른 UFS 시스템을 나타내는 블록도이다. 도 1 및 도 2a와 중복되는 내용에 대한 설명은 생략한다.
도 12를 참조하면, UFS 시스템(1000)은 UFS 호스트(1100)와 UFS 장치(1200)를 포함할 수 있다. UFS 호스트(1100)는 호스트 컨트롤러(1110), 호스트 인터페이스(1120), 어플리케이션(1130) 및 장치 드라이버(1140)를 포함할 수 있다. 호스트 컨트롤러(100)는 인터페이스 초기화 커맨드 생성기(1111), 커맨드 큐(1112) 및 호스트 DMA(1113)를 포함할 수 있다. UFS 호스트(1100)는 도 1의 호스트(20)의 일 예일 수 있으므로 중복되는 내용은 생략한다.
UFS 호스트(1100)의 어플리케이션(1130)과 장치 드라이버(1140)에서 생성된 커맨드(예를 들면, 라이트 커맨드)은 호스트 컨트롤러(1110)의 커맨드 큐(1112)에 입력될 수 있다. 또한, 인터페이스 초기화 커맨드 생성기(1111)에 의해 생성된 인터페이스 초기화 커맨드(IFIC) 역시 커맨드 큐(1112)에 입력될 수 있다. 커맨드 큐(1112)는 UFS 장치(1200)로 제공될 커맨드를 순서대로 저장한다. 커맨드 큐(1112)에 저장된 커맨드는 호스트 DMA(1113)로 제공될 수 있다. 호스트 DMA(1113)는 커맨드를 호스트 인터페이스(1120)를 통해 UFS 장치(1200)로 보낼 수 있다.
UFS 장치(1200)는 디바이스 컨트롤러(1210), 플래시 메모리(1220) 및 디바이스 인터페이스(1230)를 포함할 수 있다. 또한, 디바이스 컨트롤러(440)는 중앙처리장치(CPU, 1211), 커맨드 관리자(CMD manager, 1212), 플래시 변환 계층(FTL; Flash Translation Layer, 1213), 플래시 관리자(1214) 및 부트 데이터 예측기(1215)를 포함할 수 있다. UFS 장치(1200)는 도 1의 스토리지 장치(10)의 일 예일 수 있으므로 중복되는 내용은 생략한다.
UFS 호스트(1100)로부터 UFS 장치(1200)로 입력된 커맨드는 디바이스 인터페이스(1230)를 통해 커맨드 관리자(1212)로 제공될 수 있다. 커맨드 및 데이터는 장치 DMA(미도시)를 통해 커맨드 관리자(1212)에 제공될 수 있다. UFS 장치(1200)는 제공받은 데이터를 플래시 관리자(1214)에 제공할 수 있고, 플래시 관리자(1214)는 플래시 변환 계층(1213)의 어드레스 맵핑 정보를 참조하여, 플래시 메모리(1220)의 선택된 주소에 데이터를 저장할 수 있다. UFS 장치(1200)는 커맨드에 필요한 데이터 전송과 프로그램이 완료되면, 장치 인터페이스(1230)를 통해 UFS 호스트(1100)로 응답 신호(response)를 보낼 수 있다. UFS 호스트(1100)는 응답 신호를 전달받은 커맨드에 대한 완료 여부를 장치 드라이버(1140)와 어플리케이션(1130)에 알려주고, 해당 커맨드에 대한 동작을 종료할 수 있다. 부트 데이터 예측기(1215)는 커맨드 매니저(1212)로부터 인터페이스 초기화 커맨드(IFIC)를 수신하고 요구 부트 데이터(RBD)를 예측하고, 요구 부트 데이터(RBD)의 어드레스에 기초하여 FTL(1213)을 통해 플래시 메모리(1220)로부터 요구 부트 데이터(RBD)를 리드할 수 있다.
호스트 인터페이스(1120) 및 디바이스 인터페이스(1230)는 UFS 인터코넥트 레이어(UFS Interconnect Layer; UIC)로서, Link 레이어(1121, 1231) 및 PHY 레이어(1122, 1232)를 포함할 수 있다. Link 레이어(1121, 1231)는 MIPI UniPro이고, PHY 레이어(1122, 1232)는 MIPI M-PHY일 수 있다. 도시되지는 않았지만, 호스트 인터페이스(1120) 및 디바이스 인터페이스(1230)는 Transport 레이어를 더 포함할 수 있고, Transport 레이어는 UTP(UFS Transport Protocol)일 수 있다.
도 13은 본 개시의 예시적 실시예에 따른 모바일 장치를 보여주는 블록도이다. 모바일 장치(3000)는 MIPI 연합에 의해 제안된 인터페이스를 이용하거나 지원할 수 있는 데이터 처리 장치로 구현될 수 있다. 예로서, 모바일 장치(3000)는 휴대용 통신 단말기, PDA(personal digital assistant), PMP(portable media player), 스마트폰, 테블릿 PC, 혹은 웨어러블(wearable) 장치 형태로 구현될 수 있다.
모바일 장치(3000)는 어플리케이션 프로세서(3100), 디스플레이(3220), 및 이미지 센서(3230)를 포함할 수 있다. 어플리케이션 프로세서(3100)는 DigRF 마스터(3110), DSI(display serial interface) 호스트(3120), CSI(camera serial interface) 호스트(3130), 및 피지컬 레이어(3140)를 포함할 수 있다. DSI 호스트(3120)는 DSI에 따라 디스플레이(3220)의 DSI 장치(3225)와 통신할 수 있다. 예로서, DSI 호스트(3120)에는 광 시리얼라이저(SER)가 구현될 수 있다. 예로서, DSI 장치(3225)에는 광 디시리얼라이저(DES)가 구현될 수 있다. CSI 호스트(3130)는 CSI에 따라 이미지 센서(3230)의 CSI 장치(3235)와 통신할 수 있다. 예로서, CSI 호스트(3130)에는 광 디시리얼라이저(DES)가 구현될 수 있다. 예로서, CSI 장치(3235)에는 광 시리얼라이저(SER)가 구현될 수 있다. DSI 및 CSI는 피지컬 레이어 및 링크 레이어를 이용할 수 있다.
모바일 장치(3000)는 어플리케이션 프로세서(3100)와 통신하는 RF(Radio Frequency) 칩(3240)을 더 포함할 수 있다. RF 칩(3240)은 피지컬 레이어(3242), DigRF 슬레이브(3244), 및 안테나(3246)를 포함할 수 있다.
모바일 장치(3000)는, 워킹 메모리(3250), 임베디드 저장 장치(eUFS, 3255), 및 메모리 카드(UFS card, 3256)를 더 포함할 수 있다. 워킹 메모리(3250), 임베디드 저장 장치(3255), 및 메모리 카드(3256)는 어플리케이션 프로세서(3100)로부터 제공받은 데이터를 저장할 수 있다. 나아가, 워킹 메모리(3250), 임베디드 저장 장치(3255), 및 메모리 카드(3256)는 저장된 데이터를 어플리케이션 프로세서(3100)로 제공할 수 있다. 워킹 메모리(3250)는 어플리케이션 프로세서(3100)에 의해 처리된 또는 처리될 데이터를 일시적으로 저장할 수 있다. 워킹 메모리(3250)는 SRAM, DRAM, SDRAM 등과 같은 휘발성 메모리, 또는 플래시 메모리, PRAM, MRAM, ReRAM, FRAM 등과 같은 비휘발성 메모리를 포함할 수 있다.
임베디드 저장 장치(3255) 및 메모리 카드(3256) 각각은 전원 공급 여부와 관계없이 데이터를 저장할 수 있다. 실시 예로서, 임베디드 저장 장치(3255) 및 메모리 카드(3256)는 UFS 인터페이스 규약에 따라 작동할 수 있다. 특히, 임베디드 저장 장치(3255) 및 메모리 카드(3256) 각각은, 도 1 내지 도 12에서 상술된 스토리지 장치(100, 100a, 100b)와 같이 구성될 수 있다. 임베디드 저장 장치(3255) 및 메모리 카드(3256) 각각은 어플리케이션 프로세서(3100)와의 부팅시에 미리 부트 데이터를 플래시 메모리로부터 리드함으로서, 부팅 시간을 감소시킬 수 있다.
모바일 장치(3000)는 Wimax(World Interoperability for Microwave Access; 3260), WLAN(Wireless Local Area Network; 3262), UWB(Ultra Wideband; 3264) 등을 통해 외부 시스템과 통신할 수 있다. 모바일 장치(3000)는 음성 정보를 처리하기 위한 스피커(3270) 및 마이크(3275)를 더 포함할 수 있다. 나아가, 모바일 장치(3000)는 위치 정보를 처리하기 위한 GPS(global positioning system) 장치(3280)를 더 포함할 수 있다. 모바일 장치(3000)는 주변 장치들과의 연결을 관리하기 위한 브릿지(bridge) 칩(3290)을 더 포함할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (10)
- 호스트와 통신 가능하게 연결된 스토리지 장치에 있어서,
상기 스토리지 장치의 부팅에 필요한 적어도 하나의 부트 데이터를 저장하는 비휘발성 메모리; 및
상기 호스트로부터 인터페이스 초기화 커맨드를 수신하고, 상기 인터페이스 초기화 커맨드에 기초하여 상기 적어도 하나의 부트 데이터 중 상기 호스트로부터 요구되는 요구 부트 데이터를 예측하고, 상기 요구 부트 데이터가 리드되도록 상기 비휘발성 메모리를 제어하는 디바이스 컨트롤러;를 포함하는 스토리지 장치. - 제1항에 있어서,
상기 인터페이스 초기화 커맨드는 부팅에 필요한 요구 부트 데이터에 대한 힌트를 포함하고,
상기 디바이스 컨트롤러는,
상기 인터페이스 초기화 커맨드에 포함된 힌트를 기초로 상기 요구 부트 데이터를 예측하는 부트 데이터 예측기를 포함하는 것을 특징으로 하는 스토리지 장치. - 제2항에 있어서,
상기 부트 데이터 예측기는 상기 인터페이스 초기화 커맨드에 포함된 로직로우 또는 로직 하이의 연속적인 데이터 길이를 카운팅하고, 카운팅한 결과와 미리 결정된 기준 카운트를 비교함으로서 상기 요구 부트 데이터를 예측하는 것을 특징으로 하는 스토리지 장치. - 제2항에 있어서,
상기 부트 데이터 예측기는 상기 인터페이스 초기화 커맨드에 포함되는 힌트 패킷을 디코딩하여 상기 힌트를 획득하고, 획득한 상기 힌트 및 미리 결정된 부트 데이터 테이블을 기초로 상기 요구 부트 데이터를 예측하는 것을 특징으로 하는 스토리지 장치. - 제2항에 있어서,
상기 부트 데이터 예측기는 상기 인터페이스 초기화 커맨드의 헤더를 디코딩하여 상기 힌트를 획득하고, 획득한 상기 힌트 및 미리 결정된 부트 데이터 테이블을 기초로 상기 요구 부트 데이터를 예측하는 것을 특징으로 하는 스토리지 장치. - 제1항에 있어서,
상기 비휘발성 메모리는 적어도 하나의 메모리 셀을 포함하는 메모리 셀 어레이 및 상기 메모리 셀 어레이와 연결되는 페이지 버퍼를 포함하고,
상기 디바이스 컨트롤러는 상기 요구 부트 데이터를 예측한 결과에 기초하여 상기 메모리 셀 어레이로부터 상기 요구 부트 데이터를 리드하고, 리드한 상기 요구 부트 데이터를 상기 페이지 버퍼에 저장하는 것을 특징으로 하는 스토리지 장치. - 제6항에 있어서,
상기 페이지 버퍼는 상기 호스트의 부트 데이터 리드 커맨드에 대응하여, 상기 요구 부트 데이터를 상기 호스트에 출력하는 것을 특징으로 하는 스토리지 장치. - 비휘발성 메모리 및 휘발성 메모리를 포함하는 스토리지 장치의 동작 방법에 있어서,
상기 스토리지 장치와 통신 가능하게 연결된 호스트로부터 수신한 적어도 하나의 인터페이스 초기화 커맨드에 대응하여 상기 호스트 간의 인터페이스 초기화 모드에 진입하는 단계;
상기 적어도 하나의 인터페이스 초기화 커맨드에 대응하여 상기 비휘발성 메모리로부터 부트 데이터를 리드하는 단계; 및
리드한 상기 부트 데이터를 상기 휘발성 메모리에 저장하는 단계;를 포함하는 스토리지 장치의 동작 방법. - 제8항에 있어서,
상기 호스트로부터 부트 데이터 리드 커맨드를 수신하는 단계; 및
상기 휘발성 메모리에 저장된 상기 부트 데이터를 상기 호스트에 출력하는 단계;를 더 포함하고,
상기 휘발성 메모리에 저장하는 단계는 상기 호스트로부터 부트 데이터 리드 커맨드를 수신하는 단계 이전에 완료되는 것을 특징으로 하는 스토리지 장치의 동작 방법. - 제8항에 있어서,
상기 스토리지 장치의 동작 방법은,
상기 호스트와 상기 인터페이스 초기화를 완료함으로써 상기 인터페이스 초기화 모드를 종료하는 단계;를 더 포함하고,
상기 휘발성 메모리에 저장하는 단계는 상기 인터페이스 초기화 모드를 종료하는 단계 전에 완료되는 것을 특징으로 하는 스토리지 장치의 동작 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170093691A KR102387461B1 (ko) | 2017-07-24 | 2017-07-24 | 스토리지 장치, 스토리지 시스템 및 이의 동작 방법 |
US15/860,756 US10976933B2 (en) | 2017-07-24 | 2018-01-03 | Storage device, storage system and method of operating the same |
CN201810695609.3A CN109300494B (zh) | 2017-07-24 | 2018-06-29 | 存储设备、存储***及操作其的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170093691A KR102387461B1 (ko) | 2017-07-24 | 2017-07-24 | 스토리지 장치, 스토리지 시스템 및 이의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190011123A true KR20190011123A (ko) | 2019-02-01 |
KR102387461B1 KR102387461B1 (ko) | 2022-04-15 |
Family
ID=65018624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170093691A KR102387461B1 (ko) | 2017-07-24 | 2017-07-24 | 스토리지 장치, 스토리지 시스템 및 이의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10976933B2 (ko) |
KR (1) | KR102387461B1 (ko) |
CN (1) | CN109300494B (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12032850B2 (en) | 2021-12-08 | 2024-07-09 | SK Hynix Inc. | Memory controller performing booting operation and method of operating the same |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11609714B2 (en) * | 2020-08-03 | 2023-03-21 | Micron Technology, Inc. | Transaction management based on metadata |
US11294848B1 (en) * | 2020-10-20 | 2022-04-05 | Micron Technology, Inc. | Initialization sequencing of chiplet I/O channels within a chiplet system |
US11966748B2 (en) * | 2021-09-30 | 2024-04-23 | Ati Technologies Ulc | Dynamic boot configuration |
US12019884B2 (en) * | 2022-02-15 | 2024-06-25 | Micron Technology, Inc. | Identification and storage of boot information at a memory system |
CN116991484B (zh) * | 2023-05-26 | 2024-02-06 | 广东匠芯创科技有限公司 | 存储设备的初始化方法、访问方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040252672A1 (en) * | 2003-06-11 | 2004-12-16 | Sam Nemazie | Route aware serial advanced technology attachment (SATA) switch |
KR20060047704A (ko) * | 2004-05-03 | 2006-05-18 | 마이크로소프트 코포레이션 | 비휘발성 메모리 캐시 성능 향상 |
JP2013246630A (ja) * | 2012-05-25 | 2013-12-09 | Panasonic Corp | ブートシステムおよびシステム初期化方法 |
US9563385B1 (en) * | 2013-09-16 | 2017-02-07 | Amazon Technologies, Inc. | Profile-guided data preloading for virtualized resources |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6601167B1 (en) * | 2000-01-14 | 2003-07-29 | Advanced Micro Devices, Inc. | Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program |
US7181608B2 (en) * | 2000-02-03 | 2007-02-20 | Realtime Data Llc | Systems and methods for accelerated loading of operating systems and application programs |
JP3816788B2 (ja) | 2001-11-22 | 2006-08-30 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US8631133B1 (en) * | 2003-05-06 | 2014-01-14 | Symantec Operating Corporation | Method and system of providing a virtual transport session |
US7849302B2 (en) | 2006-04-10 | 2010-12-07 | Apple Inc. | Direct boot arrangement using a NAND flash memory |
KR100894809B1 (ko) * | 2006-09-22 | 2009-04-24 | 삼성전자주식회사 | 메모리 시스템 및 그것의 프로그램 방법 |
US20100122017A1 (en) | 2007-03-28 | 2010-05-13 | Masayuki Toyama | Memory controller, non-volatile memory system, and host device |
JP5220747B2 (ja) | 2007-07-31 | 2013-06-26 | パナソニック株式会社 | 不揮発性記憶装置および不揮発性記憶システム |
KR101226685B1 (ko) | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
US8488381B2 (en) | 2009-02-02 | 2013-07-16 | Samsung Electronics Co., Ltd. | Non-volatile memory device having vertical structure and method of operating the same |
KR101602360B1 (ko) | 2009-07-14 | 2016-03-10 | 엘지전자 주식회사 | 시스템 고속 부팅 장치 및 방법 |
KR101691092B1 (ko) | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8553466B2 (en) | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
US9536970B2 (en) | 2010-03-26 | 2017-01-03 | Samsung Electronics Co., Ltd. | Three-dimensional semiconductor memory devices and methods of fabricating the same |
KR101682666B1 (ko) | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
JP2012128769A (ja) | 2010-12-17 | 2012-07-05 | Toshiba Corp | メモリシステム |
US9384184B2 (en) * | 2012-01-11 | 2016-07-05 | International Business Machines Corporation | Predicting a command in a command line interface |
TWI475487B (zh) | 2012-10-03 | 2015-03-01 | Wistron Corp | 開機方法與電子裝置 |
KR102083506B1 (ko) | 2013-05-10 | 2020-03-02 | 삼성전자주식회사 | 더미 워드 라인을 갖는 3차원 플래시 메모리 장치 및 그것을 포함하는 데이터 저장 장치 |
US9477484B2 (en) | 2013-07-23 | 2016-10-25 | Samsung Electronics Co., Ltd. | System and method for boot acceleration of a data processing system wherein a nonvolatile memory is pre-configured before boot time |
US10154079B2 (en) | 2015-08-11 | 2018-12-11 | Dell Products L.P. | Pre-boot file transfer system |
US9916165B2 (en) | 2015-08-20 | 2018-03-13 | Dell Products L.P. | Systems and methods to optimize boot for information handling system comprising persistent memory |
-
2017
- 2017-07-24 KR KR1020170093691A patent/KR102387461B1/ko active IP Right Grant
-
2018
- 2018-01-03 US US15/860,756 patent/US10976933B2/en active Active
- 2018-06-29 CN CN201810695609.3A patent/CN109300494B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040252672A1 (en) * | 2003-06-11 | 2004-12-16 | Sam Nemazie | Route aware serial advanced technology attachment (SATA) switch |
KR20060047704A (ko) * | 2004-05-03 | 2006-05-18 | 마이크로소프트 코포레이션 | 비휘발성 메모리 캐시 성능 향상 |
JP2013246630A (ja) * | 2012-05-25 | 2013-12-09 | Panasonic Corp | ブートシステムおよびシステム初期化方法 |
US9563385B1 (en) * | 2013-09-16 | 2017-02-07 | Amazon Technologies, Inc. | Profile-guided data preloading for virtualized resources |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12032850B2 (en) | 2021-12-08 | 2024-07-09 | SK Hynix Inc. | Memory controller performing booting operation and method of operating the same |
Also Published As
Publication number | Publication date |
---|---|
CN109300494A (zh) | 2019-02-01 |
US20190026029A1 (en) | 2019-01-24 |
US10976933B2 (en) | 2021-04-13 |
CN109300494B (zh) | 2023-09-12 |
KR102387461B1 (ko) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102387461B1 (ko) | 스토리지 장치, 스토리지 시스템 및 이의 동작 방법 | |
US10970235B2 (en) | Computing system with a nonvolatile storage and operating method thereof | |
US10101947B2 (en) | Storage device configured to manage plural data streams based on data amount | |
US9971697B2 (en) | Nonvolatile memory module having DRAM used as cache, computing system having the same, and operating method thereof | |
US11714578B2 (en) | Method of operating storage device, storage device performing the same and method of operating storage system using the same | |
US20160371019A1 (en) | Data storage device and data processing system having the same | |
KR20170036964A (ko) | 불휘발성 메모리 시스템의 동작 방법 | |
KR20190090635A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102258126B1 (ko) | 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템 | |
US10866748B2 (en) | Memory device and method of controlling power of the same | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
KR20190066466A (ko) | 기입 레이턴시를 줄일 수 있는 저장 장치의 동작 방법 | |
US10719263B2 (en) | Method of handling page fault in nonvolatile main memory system | |
US10114555B2 (en) | Semiconductor device having register sets and data processing device including the same | |
CN111338564A (zh) | 包括数据存储设备的***和控制丢弃操作的方法 | |
CN112988058A (zh) | 与主机设备接合的存储设备及存储设备的操作方法 | |
US10466938B2 (en) | Non-volatile memory system using a plurality of mapping units and operating method thereof | |
KR102516539B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20210006556A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
KR20210028405A (ko) | 서치 회로 및 컨트롤러 | |
KR102514717B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
KR20200034312A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR20190102998A (ko) | 컨트롤러, 데이터 저장 장치 및 그것의 동작 방법 | |
KR20200071282A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20160144556A (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 |