KR102446677B1 - 스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법 - Google Patents

스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법 Download PDF

Info

Publication number
KR102446677B1
KR102446677B1 KR1020150166440A KR20150166440A KR102446677B1 KR 102446677 B1 KR102446677 B1 KR 102446677B1 KR 1020150166440 A KR1020150166440 A KR 1020150166440A KR 20150166440 A KR20150166440 A KR 20150166440A KR 102446677 B1 KR102446677 B1 KR 102446677B1
Authority
KR
South Korea
Prior art keywords
memory
initialization
controller
dram
data
Prior art date
Application number
KR1020150166440A
Other languages
English (en)
Other versions
KR20170061431A (ko
Inventor
김동
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150166440A priority Critical patent/KR102446677B1/ko
Priority to US15/291,502 priority patent/US10409512B2/en
Publication of KR20170061431A publication Critical patent/KR20170061431A/ko
Application granted granted Critical
Publication of KR102446677B1 publication Critical patent/KR102446677B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0658Controller construction 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

데이터 저장 장치에 포함되고 메인 메모리를 초기화할 수 있는 스토리지 컨트롤러의 동작 방법은 상기 스토리지 컨트롤러의 CPU가 상기 데이터 저장 장치의 상기 메인 메모리의 초기화를 지시하는 지시 신호를 제1메모리 초기화 장치로 전송하는 단계, 상기 제1메모리 초기화 장치의 레지스터가 상기 지시 신호에 대응하는 선택 신호를 출력하는 단계, 및 상기 선택 신호에 응답하여 상기 제1메모리 초기화 장치가 상기 메인 메모리를 초기화하는 단계를 포함한다.

Description

스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법{METHOD OF OPERATING STORAGE CONTROLLER AND METHOD OF OPERATING DATA STORAGE DEVICE HAVING THE STORAGE CONTROLLER}
본 발명의 개념에 따른 실시 예는 스토리지 컨트롤러의 동작 방법에 관한 것으로서, 보다 상세하게는 중앙처리장치(central processing unit(CPU)) 또는 DMA(direct memory access)보다 대역폭(band width)이 넓은 메모리 초기화 장치를 이용해 데이터 저장 장치의 메인 메모리를 초기화하는 방법에 관한 것이다.
솔리드 스테이트 드라이브(solid state drive(SSD))는 보조기억장치 중의 하나로서, 하드 디스크 드라이브(hard disk drive(HDD))보다 작동 소음이 적고 전력 소모도 적으며 속도가 빠르다는 장점이 있다.
상기 SSD의 낸드 플래시 메모리의 용량이 점차 커짐에 따라, 상기 낸드 플래시 메모리의 매핑 테이블(mapping table) 및 메타(meta) 정보를 담는 DRAM(dynamic random access memory)과 같은 버퍼 메모리의 용량 또한 지속적으로 증가하고 있다.
상기 DRAM을 사용하기 위해서는 상기 DRAM을 초기화하는 작업이 필요한데, 상기 DRAM의 용량이 증가함에 따라, 상기 DRAM을 초기화하는데 필요한 시간 또한 증가한다.
본 발명이 이루고자 하는 기술적인 과제는, CPU의 대역폭보다 넓은 대역폭을 가지는 메모리 초기화 장치를 이용하여 SSD(solid state drive)에 포함된 DRAM(dynamic random access memory)을 초기화 함으로써, 상기 DRAM의 초기화 시간을 줄이는 스토리지 컨트롤러의 동작 방법과 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 데이터 저장 장치에 포함되고 메인 메모리를 초기화할 수 있는 스토리지 컨트롤러의 동작 방법은 상기 스토리지 컨트롤러의 CPU가 상기 데이터 저장 장치의 상기 메인 메모리의 초기화를 지시하는 지시 신호를 제1메모리 초기화 장치로 전송하는 단계, 상기 제1메모리 초기화 장치의 레지스터가 상기 지시 신호에 대응하는 선택 신호를 출력하는 단계, 및 상기 선택 신호에 응답하여 상기 제1메모리 초기화 장치가 상기 메인 메모리를 초기화하는 단계를 포함한다.
상기 스토리지 컨트롤러는 버스 매트릭스를 포함하고, 상기 CPU는 상기 버스 매트릭스와 제1대역폭으로 통신하고, 상기 제1메모리 초기화 장치는 상기 버스 매트릭스와 제2대역폭으로 통신하고, 상기 제2대역폭은 상기 제1대역폭보다 넓다.
상기 스토리지 컨트롤러의 동작 방법은 상기 CPU가 상기 제1메모리 초기화 장치의 정상 동작을 지시하는 상기 지시 신호를 상기 제1메모리 초기화 장치로 전송하는 단계, 상기 레지스터가 상기 정상 동작을 지시하는 상기 지시 신호에 대응하는 상기 선택 신호를 출력하는 단계, 및 상기 정상 동작을 지시하는 상기 지시 신호에 대응하는 상기 선택 신호에 응답하여 상기 제1메모리 초기화 장치가 상기 정상 동작을 수행하는 단계를 더 포함한다.
상기 레지스터는 상기 메인 메모리의 초기화 동작과 관련된 정보, 상기 정상 동작과 관련된 정보와, 상기 메인 메모리로 전송되는 초기화 정보를 포함한다.
실시 예들에 따라, 상기 제1메모리 초기화 장치는 복수의 낸드 플래시 메모리들을 제어하는 플래시 메모리 컨트롤러이다. 실시 예들에 따라, 상기 제1메모리 초기화 장치는 상기 메인 메모리를 제어하는 메모리 컨트롤러이다. 실시 예들에 따라, 상기 제1메모리 초기화 장치는 호스트와 통신하는 호스트 인터페이스이다.
상기 스토리지 컨트롤러는 상기 지시 신호에 응답하여 상기 메인 메모리를 초기화하는 제2메모리 초기화 장치를 포함하고, 상기 제2메모리 초기화 장치는 상기 제1메모리 초기화 장치와 동시에 상기 메인 메모리를 초기화한다.
상기 메인 메모리는 데이터 영역과 패리티 영역을 포함하고, 상기 데이터 영역과 상기 패리티 영역은 동시에 초기화된다. 상기 메인 메모리는 복수의 메모리들을 포함하고, 상기 복수의 메모리들은 동시에 초기화된다.
본 발명의 실시 예에 따른 메인 메모리를 초기화할 수 있는 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법은 상기 스토리지 컨트롤러의 CPU가 상기 저장 장치의 상기 메인 메모리의 초기화를 지시하는 지시 신호를 제1메모리 초기화 장치로 전송하는 단계, 상기 제1메모리 초기화 장치의 레지스터가 상기 지시 신호에 대응하는 선택 신호를 출력하는 단계, 및 상기 선택 신호에 응답하여 상기 제1메모리 초기화 장치가 상기 메인 메모리를 초기화하는 단계를 포함한다.
상기 제1메모리 초기화 장치는 복수의 낸드 플래시 메모리들을 제어하는 플래시 메모리 컨트롤러, 상기 메인 메모리를 제어하는 메모리 컨트롤러, 및 호스트와 통신하는 호스트 인터페이스 중에서 어느 하나이다. 상기 복수의 낸드 플래시 메모리들 중 적어도 하나는 3차원 메모리 어레이를 포함한다.
상기 스토리지 컨트롤러는 상기 지시 신호에 응답하여 상기 메인 메모리를 초기화할 수 있는 제2메모리 초기화 장치를 포함하고, 제2메모리 초기화 장치는 제1메모리 초기화 장치와 동시에 상기 메인 메모리를 초기화한다. 상기 메인 메모리는 복수의 메모리들을 포함하고, 상기 복수의 메모리들은 동시에 초기화된다.
본 발명의 실시 예에 따른 스토리지 컨트롤러의 동작 방법은 대역폭이 넓은 장치를 이용해 스토리지에 포함된 메모리를 초기화함으로써, 상기 메모리를 초기화 하는 시간을 줄이는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 SSD의 블록도이다.
도 2는 도 1에 도시된 SSD 컨트롤러 및 DRAM의 세부 블록도이다.
도 3a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 하나의 DRAM이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 3b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 두 개 이상의 DRAM들이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 3c는, 본 발명의 실시 예에 따라,플래시 메모리 컨트롤러에 의해 DRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 4는 도 3a, 도 3b 및 도 3c에 도시된 레지스터의 세부 블록도이다.
도 5a는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 하나의 DRAM이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 5b는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 두 개 이상의 DRAM들이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 5c는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 DRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 6a는, 본 발명의 실시 예에 따라, DRAM 컨트롤러에 의해 하나의 DRAM이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 6b는, 본 발명의 실시 예에 따라, DRAM 컨트롤러에 의해 두 개 이상의 DRAM들이 초기화되는 경우, 도2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 6c는, 본 발명의 실시 예에 따라, DRAM 컨트롤러에 의해 DRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 7a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 하나의 DRAM이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 7b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 두 개 이상의 DRAM들이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 7c는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 DRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 8a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러, 호스트 인터페이스와 DRAM 컨트롤러에 의해 두 개 이상의 DRAM들이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 8b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러, 호스트 인터페이스와 DRAM 컨트롤러에 의해 DRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 9는 본 발명의 실시 예에 따른 모바일 스토리지의 블록도이다.
도 10은 도 9에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 11a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 하나의 SRAM이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 11b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 두 개 이상의 SRAM들이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 11c는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 SRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 12a는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 하나의 SRAM이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 12b는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 두 개 이상의 SRAM들이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 12c는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 SRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 13a는, 본 발명의 실시 예에 따라, SRAM 컨트롤러에 의해 하나의 SRAM이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 13b는, 본 발명의 실시 예에 따라, SRAM 컨트롤러에 의해 두 개 이상의 SRAM들이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 13c는, 본 발명의 실시 예에 따라, SRAM 컨트롤러에 의해 SRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 14a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 하나의 SRAM이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 14b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 두 개 이상의 SRAM들이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 14c는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 SRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 15a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러, 호스트 인터페이스와 SRAM 컨트롤러에 의해 두 개 이상의 SRAM들이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 15b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러, 호스트 인터페이스와 SRAM 컨트롤러에 의해 SRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 작동, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 작동, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
본 명세서에서 '동시에(simultaneously)'라 함은, 물리적으로 동일한 시간을 의미하는 것뿐만 아니라, 후술할 동작들이 순차적(in serial)으로 수행되는 것이 아니라 병렬적(in parallel)으로 수행되는 것을 의미할 수 있다.
본 명세서에서 '정상 동작(normal operation)'이라 함은, 후술할 장치에서 멀티플렉서, 레지스터 및 메모리 세트가 없을 때 상기 장치가 수행하는 동작을 의미할 수 있다. 즉, 상기 장치가 플래시 메모리 컨트롤러인 경우 상기 플래시 메모리 컨트롤러의 정상 동작은 낸드 플래시 메모리들로부터 전송된 데이터가 낸드 PHY, 에러 정정 코드(error correction code) 회로 및 랜더마이저를 통해 출력되는 동작을 의미하고, 상기 장치가 호스트 인터페이스인 경우 상기 호스트 인터페이스의 정상 동작은 호스트로부터 전송된 데이터가 호스트 PHY, 호스트 링크, 호스트 매니저 및 호스트 DMA를 통해 출력되는 동작을 의미하고, 상기 장치가 DRAM 컨트롤러인 경우 DRAM 컨트롤러의 정상 동작은 DRAM 컨트롤러로부터 전송된 데이터가 DRAM PHY를 통해 DRAM으로 전송되는 동작을 의미할 수 있다.
반면, 본 명세서에서 '초기화 동작(initialization operation)'이라 함은, 상기 정상 동작에 대비되는 것으로서 CPU의 제어에 의해, 메모리 세트에 저장된 데이터가 멀티플렉서를 통해 DRAM으로 전송되는 동작을 의미할 수 있다.
도 1은 본 발명의 실시 예에 따른 SSD의 블록도이다. 도 1을 참조하면, 솔리드 스테이트 드라이브(solid state drive(SSD); 100)는 낸드 플래시 메모리들(NAND flash memories; 110), SSD 컨트롤러(120), DRAM(dynamic random access memory; 130) 및 커넥터(140)를 포함할 수 있다.
낸드 플래시 메모리들(110)은 호스트로부터 전송된 데이터를 저장할 수 있다. 낸드 플래시 메모리들(110)은 복수의 낸드 플래시 메모리를 포함할 수 있다.
본 발명의 명세서에서는 설명의 편의를 위해 4개의 낸드 플래시 메모리들(110)을 도시하였지만, 이에 한정되는 것은 아니다. 즉, SSD(100)에 포함된 낸드 플래시 메모리들(110)의 개수는 실시 예들에 따라 변경될 수 있다.
낸드 플래시 메모리들(110)은 3차원 메모리 셀 어레이를 포함할 수 있다. 3차원 메모리 셀 어레이는 실리콘 기판 위(on or above)에 배치된 액티브 영역을 갖는 메모리 셀들의 어레이의 하나 또는 그 이상의 물리적인 레벨들 내에서 모노리식하게(monolithically) 형성되고, 상기 메모리 셀들의 작동에 관련된 회로를 포함할 수 있다. 상기 회로는 상기 기판의 내부 또는 위(on or above)에 형성될 수 있다.
모노리식(monolithic) 이라는 용어는 어레이의 각 레벨의 레이어들(layers)이 상기 어레이의 각 하부 레벨(each underlying level)의 레이어들에 직접 증착 (directly deposited )되는 것을 의미한다.
3차원 메모리 셀 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직으로 배향되는(vertically oriented) 수직 NAND 스트링을 포함할 수 있다. 상기 적어도 하나의 메모리 셀은 전하 트랩 레이어(charge trap layer)를 포함할 수 있다.
SSD 컨트롤러(120)는 SSD(100)의 동작을 전반적으로 제어할 수 있다. SSD 컨트롤러(120)는 낸드 플래시 메모리들(110)로부터 데이터를 리드하여 커넥터(140)를 통해 외부로 상기 데이터를 전송하거나, 외부로부터 전송된 데이터를 DRAM(130)을 거쳐 낸드 플래시 메모리들(110)에 라이트할 수 있다.
DRAM(130)은 SSD(100)의 캐시(또는 버퍼)로 사용될 수 있다. DRAM(130)은 낸드 플래시 메모리들(110)로 저장되는 데이터 또는 낸드 플래시 메모리들(110)로부터 로드되는 데이터를 일시적으로 저장할 수 있다.
SSD(100)는, 커넥터(140)를 통해, 호스트와 연결될 수 있다. 커넥터(140)는 패드(들)을 포함할 수 있다. 실시 예들에 따라, 상기 패드(들)의 개수는 SSD 컨트롤러(120)에 포함된 호스트 인터페이스의 개수와 동일할 수 있다.
도 2는 도 1에 도시된 SSD 컨트롤러 및 DRAM의 세부 블록도이다. 도 1 및 도 2를 참조하면, SSD 컨트롤러(120)는 중앙처리장치(central processing unit(CPU); 210), 플래시 메모리 컨트롤러(flash memory controller(FMC); 220), 호스트 인터페이스(230), DRAM 컨트롤러(240), 버스 매트릭스(250) 및 캐쉬(260)를 포함할 수 있다.
CPU(210)는 SSD 컨트롤러(120)의 작동을 전반적으로 제어할 수 있다.
FMC(220)는 CPU(210)의 제어에 따라 낸드 플래시 메모리들(110)을 제어할 수 있다. FMC(220)의 제어에 의해, 낸드 플래시 메모리들(110)에 저장된 데이터가 리드(read)되거나 낸드 플래시 메모리들(110)로 데이터를 라이트(write)할 수 있다.
본 발명의 명세서에서는 설명의 편의를 위해 4개의 FMC(220)를 도시하였지만, 이에 한정되는 것은 아니다. 즉, FMC(220)의 개수는 실시 예들에 따라 변경될 수 있다. FMC(220)의 개수는 낸드 플래시 메모리들(110)의 개수와 동일할 수 있다.
호스트 인터페이스(230)는 호스트로 전송되는 데이터의 포맷을 상기 호스트에서 이용할 수 있게 변경하고, 변경된 포맷을 갖는 데이터를 커넥터(140)를 통해 상기 호스트로 전송할 수 있다. 또한, 호스트 인터페이스(230)는 상기 호스트로부터 전송된 데이터를 수신하고, 수신된 데이터의 포맷을 변경하고, 변경된 포맷을 갖는 데이터를 낸드 플래시 메모리들(110)로 전송할 수 있다. 실시 예에 따라, 호스트 인터페이스(230)는 데이터를 송수신할 수 있는 송수신기를 포함할 수 있다.
본 발명의 명세서에서는 설명의 편의를 위해 2개의 호스트 인터페이스(230)를 도시하였지만, 이에 한정되는 것은 아니다. 즉, 호스트 인터페이스(230)의 개수는 실시 예들에 따라 변경될 수 있다. 호스트 인터페이스(230)의 개수는 커넥터(140)에 포함된 패드(pad) 개수와 동일할 수 있다.
호스트 인터페이스(230)는 SATA 인터페이스, SATAe 인터페이스, SAS 인터페이스, PCIe 인터페이스 또는 NVMe 인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다.
DRAM 컨트롤러(240)는 CPU(210)의 제어에 따라, DRAM(130)에 데이터를 라이트하거나 DRAM(130)으로부터 데이터를 리드할 수 있다. DRAM 컨트롤러(240)에 의해 처리된 데이터는 FMC(220) 또는 호스트 인터페이스(230)로 전송될 수 있다.
CPU(210), FMC(220), 호스트 인터페이스(230) 및 DRAM 컨트롤러(240)는 버스 매트릭스(250)를 통해 서로 통신할 수 있다. 버스 매트릭스(250)는 복수의 버스를 포함할 수 있다.
버스 매트릭스(250)는 AMBA(Advanced Microcontroller Bus Architecture), AHB (Advanced High-performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), ASB(Advanced System Bus) 또는 이들의 결합으로 구현될 수 있으나 이에 한정되는 것은 아니다.
캐쉬(260)는 CPU(210)의 동작에 필요한 데이터를 저장하고, CPU(210)의 요청에 따라 상기 데이터를 CPU(260)로 전송할 수 있다. 실시 예들에 따라, 캐쉬(260)는 SRAM(static random access memory)으로 구현될 수 있다.
CPU(210)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WCPU)은, 호스트 인터페이스(230)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WHOST), 플래시 메모리 컨트롤러(220)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WFMC) 또는 DRAM 컨트롤러(240)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WCTRL)보다 좁을 수 있다.
DRAM 컨트롤러(240)와 DRAM(130) 사이를 연결하는 버스의 대역폭(WDRAM)은, 호스트 인터페이스(230)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WHOST)의 합, 플래시 메모리 컨트롤러(220)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WFMC)의 합, 및 CPU(210)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WCPU)와 동일할 수 있다.
DRAM 컨트롤러(240)와 DRAM(130) 사이를 연결하는 버스의 대역폭(WDRAM)은 DRAM 컨트롤러(240)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
도 3a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 하나의 DRAM이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이고 도 3b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 두 개 이상의 DRAM들이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 3c는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 DRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이고, 도 4는 도 3a, 도 3b 및 도 3c에 도시된 레지스터의 세부 블록도이다.
도 1, 도 2, 도 3a, 도 3b 및 도 3c를 참조하면, 플래시 메모리 컨트롤러(220)는 낸드 PHY(300), 메모리 세트(310), 레지스터(320), 멀티플렉서(330), 에러 정정 코드(error correction code(ECC)) 회로(340) 및 랜더마이저(350)를 포함할 수 있다.
CPU(210)는 DRAM(130)의 초기화 여부를 제어하는 지시 신호(IND)를 레지스터(320)로 전송할 수 있다. 상기 지시 신호(IND)는 멀티플렉서(330)가 출력할 신호에 관한 정보 및/또는 출력할 데이터에 관한 정보를 포함할 수 있다.
낸드 PHY(300)는 낸드 플래시 메모리들(110)로 전송될 데이터의 포맷을 낸드 플래시 메모리들(110)에 맞게 변경하고, 반대로 낸드 플래시 메모리들(110)로부터 수신한 데이터의 포맷을 SSD 컨트롤러(120)에서 사용 가능한 포맷으로 변경할 수 있다.
메모리 세트(310)는 레지스터에서 출력된 선택 신호(SEL)에 대응하는 데이터를 멀티플렉서(330)로 출력할 수 있다. 메모리 세트(310)는 DRAM(130)의 초기화 값 세트들을 저장할 수 있다.
레지스터(320)는 CPU(210)에서 출력된 지시 신호(IND)에 응답하여 멀티플렉서(330)로 선택 신호(SEL)를 출력할 수 있다. 레지스터(320)는 실시 예들에 따라 하나의 레지스터로 구성될 수 있고, 복수의 레지스터들로 구성될 수 있다.
도 4를 참조하면, 실시 예들에 따라, 레지스터(320)는 제1레지스터(321) 및 제2레지스터(322)를 포함할 수 있다. 제1레지스터(321)는 낸드 PHY(300)의 출력 신호(OF)에 대응하는 정보 및 메모리 세트(310)의 출력 신호(IV)에 대응하는 정보를 저장할 수 있고 제2레지스터(322)는 DRAM(130)으로 전송되는 초기화 데이터 세트를 저장할 수 있다.
예컨대, 제1레지스터에서 숫자 0은 정상 동작을, 숫자 1은 초기화 동작을 나타내고, 제2레지스터에서 숫자 0(또는 00)은 메모리 세트(310)에서 출력할 데이터가 0X00000000임을 나타내고, 숫자 1(또는 01)은 메모리 세트(310)에서 출력할 데이터가 0XFFFFFFFF임을 나타내고, 숫자 2(또는 10)는 메모리 세트(310)에서 출력할 데이터가 0X01F401F4임을 나타낸다고 가정한다.
따라서, CPU(210)가 FMC(220)의 정상 동작을 지시하는 경우 레지스터(320)는 제1레지스터에 저장된 숫자 0에 대응되는 선택 신호(SEL)를 출력하고, CPU(210)가 DRAM(130)을 0XFFFFFFFF로 초기화할 것을 지시하는 경우 레지스터(320)는 제1레지스터에서 초기화 동작에 매핑되는 숫자 1과 제2레지스터에서 0XFFFFFFFF에 매핑되는 숫자 1(또는 01)을 포함하는 선택 신호(SEL)를 출력할 수 있다.
멀티플렉서(330)는, 레지스터(320)에서 출력된 선택 신호(SEL)에 따라, 두 개의 입력 신호들(OF, IV) 중에서 어느 하나를 출력할 수 있다.
예컨대, 도 4를 참조하면, 멀티플렉서(330)로 입력되는 선택 신호(SEL)가 제1레지스터의 숫자 0에 대응되는 경우, 멀티플렉서(330)는 낸드 PHY(300)의 출력 신호(OF)를 ECC 회로(340)로 출력하고, 멀티플렉서(330)로 입력되는 선택 신호(SEL)가 제1레지스터의 숫자 1 및 제2레지스터 숫자 1(또는 숫자 01)에 대응되는 경우, 멀티플렉서(330)는 메모리 세트(310)의 출력 신호(OF)를 ECC 회로(340)로 출력할 수 있다.
ECC 회로(340)는 낸드 플래시 메모리들(110)에 저장될 데이터 및/또는 메모리 클러스터(340)로부터 출력된 데이터에 포함된 에러를 정정할 수 있다.
랜더마이저(350)는 낸드 플래시 메모리들(110)로 전송되는 데이터를 구성하는 0 또는 1의 숫자의 발생 확률을 균등하게 할 수 있다.
도 3a를 참조하면, CPU(210)가 레지스터(320)로 초기화 동작을 지시하는 지시 신호(IND)를 전송하는 경우, 레지스터(320)는 지시 신호(IND)에 대응하는 선택 신호(SEL)를 멀티플렉서(330)로 전송할 수 있다.
메모리 세트(310)는 선택 신호(SEL)에 대응하는 초기화 정보(IV)를 멀티플렉서(330)로 출력하고, 초기화 정보(IV)는 ECC 회로(340) 및 랜더마이저(350)를 통해 DRAM 컨트롤러(240)로 전송될 수 있다.
본 명세서에서는 설명의 편의를 위해 하나의 FMC(220)에 대해서만 세부 블록도를 도시하였으나, 세부 블록도를 도시 하지 않은 나머지 FMC(220)도 세부 블록도를 도시한 FMC(220)와 내부 구성이 동일할 수 있다. 따라서, 4개의 FMC(220) 각각은 제1경로(PATH1)를 통해 DRAM 컨트롤러(240)로 초기화 정보(IV)를 전송할 수 있다.
DRAM 컨트롤러(240)는 제1경로(PATH1)를 통해 전송된 초기화 정보(IV)를 DRAM(130)으로 전송하고, 초기화 정보(IV)에 포함된 데이터를 이용해 DRAM(130)은 초기화될 수 있다.
도 3b를 참조하면, SSD(100)는 DRAM들(130-1 및 130-2)을 포함할 수 있다. 본 명세서에서는 두 개의 DRAM들(130-1 및 130-2)을 도시하였지만, 실시 예들에 따라 DRAM의 개수는 변경될 수 있다.
DRAM 컨트롤러(240)와 DRAM들(130-1 및 130-2) 각각을 연결하는 버스의 대역폭의 합은 DRAM 컨트롤러(240)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
DRAM 컨트롤러(240)는, 도 3a에서 설명한 방식과 동일한 방식으로, 제1경로(PATH1)를 통해 초기화 정보(IV)를 수신할 수 있다. DRAM 컨트롤러(240)는 초기화 정보(IV)를 DRAM들(130-1 및 130-2) 각각으로 동시에 전송할 수 있다. 초기화 정보(IV)에 포함된 데이터를 이용해 DRAM들(130-1 및 130-2)은 동시에 초기화될 수 있다.
도 3c를 참조하면, DRAM(130)은 데이터 영역(131)과 패리티 영역(132)을 포함할 수 있다. 데이터 영역(131)은 낸드 플래시 메모리들(110)에 대한 매핑 테이블 및 메타 정보를 저장할 수 있다. 패리티 영역(132)은 데이터 영역(131)에 저장된 데이터의 에러 검출을 위해 에러 검출 데이터를 저장할 수 있다.
DRAM 컨트롤러(240)와 데이터 영역(131)을 연결하는 버스의 대역폭과 DRAM 컨트롤러(240)와 패리티 영역(132)을 연결하는 버스의 대역폭의 합은 DRAM 컨트롤러(240)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
DRAM 컨트롤러(240)는 도 3a에서 설명한 것과 동일한 방식으로 제1경로(PATH1)를 통해 초기화 정보(IV)를 수신할 수 있다. DRAM 컨트롤러(240)는 초기화 정보(IV)를 데이터 영역(131)과 패리티 영역(132) 각각으로 동시에 전송할 수 있다. 초기화 정보(IV)에 포함된 데이터를 이용해 데이터 영역(131)과 패리티 영역(132)은 동시에 초기화될 수 있다.
도 5a는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 하나의 DRAM이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이고, 도 5b는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 두 개 이상의 DRAM들이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이고, 도 5c는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 DRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 5a, 도 5b 및 도 5c를 참조하면, 호스트 인터페이스(230)는 호스트 PHY(400), 호스트 링크(410) 호스트 매니저(420), 호스트 DMA(direct memory access; 430), 메모리 세트(310), 레지스터(320) 및 멀티플렉서(330)를 포함할 수 있다.
메모리 세트(310)는 3a, 도 3b 및 도 3c에 도시된 메모리 세트와 기능 및 성질이 동일할 수 있고, 레지스터(320)는 도 3a, 도 3b 및 도 3c에 도시된 레지스터와 기능 및 성질이 동일할 수 있고, 멀티플렉서(330)는 도 3a, 도 3b 및 도 3c에 도시된 멀티플렉서와 기능 및 성질이 동일할 수 있다.
호스트 PHY(400)는 호스트에서 전송된 아날로그 신호를 디지털 신호로 변경하고, 호스트로 전송되는 디지털 신호를 아날로그 신호로 변경할 수 있다.
호스트 링크(410)는 호스트 PHY(400)로부터 수신한 데이터의 시작과 끝을 정의하여 상기 데이터의 프레임을 생성할 수 있다.
호스트 매니저(420)는 호스트로 전송되는 데이터의 포맷을 상기 호스트에서 이용할 수 있게 변경하고, 상기 호스트로부터 수신한 데이터를 SSD(100)에서 사용할 수 있게 상기 수신한 데이터의 포맷을 변경할 수 있다.
호스트 DMA(430)는 멀티플렉서(330)의 출력을 CPU(210)를 거치지 않고 직접 DRAM(130)을 전송하거나, 직접 DRAM(130)을 통해 낸드 플래시 메모리들(110)로 전송할 수 있다.
도 5a를 참조하면, CPU(210)가 레지스터(320)로 초기화 동작을 지시하는 지시 신호(IND)를 전송하는 경우, 레지스터(320)는 지시 신호(IND)에 대응하는 선택 신호(SEL)를 멀티플렉서(330)로 전송할 수 있다.
메모리 세트(310)는 선택 신호(SEL)에 대응하는 초기화 정보(IV)를 멀티플렉서(330)로 출력하고, 초기화 정보(IV)는 호스트 DMA(430)를 통해 DRAM 컨트롤러(240)로 전송될 수 있다.
본 명세서에서는 설명의 편의를 위해 하나의 호스트 인터페이스(230)에 대해서만 세부 블록도를 도시하였으나, 세부 블록도를 도시 하지 않은 나머지 호스트 인터페이스(230)도 세부 블록도를 도시한 호스트 인터페이스(230)와 내부 구성이 동일할 수 있다. 따라서, 2개의 호스트 인터페이스(230) 각각은 제2경로(PATH2)를 통해 DRAM 컨트롤러(240)로 초기화 정보(IV)를 전송할 수 있다.
DRAM 컨트롤러(240)는 제2경로(PATH2)를 통해 전송된 초기화 정보(IV)를 DRAM(130)으로 전송하고, 초기화 정보(IV)에 포함된 데이터를 이용해 DRAM(130)은 초기화될 수 있다.
도 5b를 참조하면, SSD(100)는 DRAM들(130-1 및 130-2)을 포함할 수 있다. 본 명세서에서는 두 개의 DRAM들(130-1 및 130-2)을 도시하였지만, 실시 예들에 따라 DRAM의 개수는 변경될 수 있다.
DRAM 컨트롤러(240)와 DRAM들(130-1 및 130-2) 각각을 연결하는 버스의 대역폭의 합은 DRAM 컨트롤러(240)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
DRAM 컨트롤러(240)는 도 5a에서 설명한 방식과 동일한 방식으로 제2경로(PATH2)를 통해 초기화 정보(IV)를 수신할 수 있다. DRAM 컨트롤러(240)는 초기화 정보(IV)를 DRAM들(130-1 및 130-2) 각각으로 동시에 전송할 수 있다. 초기화 정보(IV)에 포함된 데이터를 이용해 DRAM들(130-1 및 130-2)은 동시에 초기화될 수 있다.
도 5c를 참조하면, DRAM(130)은 데이터 영역(131)과 패리티 영역(132)을 포함할 수 있다. 데이터 영역(131)의 기능 및 성질은 도 3c에 도시된 데이터 영역의 기능 및 성질과 동일할 수 있고, 패리티 영역(132)의 기능 및 성질은 도 3c에 도시된 패리티 영역의 기능 및 성질과 동일할 수 있다.
DRAM 컨트롤러(240)와 데이터 영역(131)을 연결하는 버스의 대역폭과 DRAM 컨트롤러(240)와 패리티 영역(132)을 연결하는 버스의 대역폭의 합은 DRAM 컨트롤러(240)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
DRAM 컨트롤러(240)는 도 5a 및 도 5b에서 설명한 방식과 동일한 방식으로 제2경로(PATH2)를 통해 초기화 정보(IV)를 수신할 수 있다. DRAM 컨트롤러(240)는 초기화 정보(IV)를 데이터 영역(131)과 패리티 영역(132) 각각으로 동시에 전송할 수 있다. 초기화 정보(IV)에 포함된 데이터를 이용해 데이터 영역(131)과 패리티 영역(132)은 동시에 초기화될 수 있다.
도 6a는, 본 발명의 실시 예에 따라, DRAM 컨트롤러에 의해 하나의 DRAM이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 6a를 참조하면, SSD 컨트롤러(120)는 메모리 세트(310), 레지스터(320), 멀티플렉서(330) 및 DRAM PHY(241)를 포함할 수 있다.
DRAM PHY(241)는 DRAM(130)으로 전송되는 데이터의 포맷을 DRAM(130)에 맞게 변경하고, DRAM(130)로부터 수신한 데이터를 DRAM 컨트롤러(240)에서 사용할 수 있게 상기 수신한 데이터의 포맷을 변경할 수 있다.
메모리 세트(310)는 3a, 도 3b 및 도 3c에 도시된 메모리 세트와 기능 및 성질이 동일할 수 있고, 레지스터(320)는 도 3a, 도 3b 및 도 3c에 도시된 레지스터와 기능 및 성질이 동일할 수 있고, 멀티플렉서(330)는 도 3a, 도 3b 및 도 3c에 도시된 멀티플렉서와 기능 및 성질이 동일할 수 있다.
실시 예에 따라, 메모리 세트(310), 레지스터(320), 멀티플렉서(330) DRAM PHY(241)는 DRAM 컨트롤러(240)에 포함될 수 있다. 다만, 이와 같은 경우에도 메모리 세트(310), 레지스터(320), 멀티플렉서(330) 및 DRAM PHY(241) 사이의 연결 형태는 도 6a와 동일할 수 있다.
DRAM 컨트롤러(240)와 멀티플렉서(330)를 연결하는 버스의 대역폭, 메모리 세트(310)와 멀티플렉서(330)를 연결하는 버스의 대역폭, 멀티플렉서(330)와 DRAM PHY(241)를 연결하는 버스의 대역폭, 및 DRAM PHY(241)과 DRAM(130)을 연결하는 버스의 대역폭은 모두 동일할 수 있다.
CPU(210)가 레지스터(320)로 초기화 동작을 지시하는 지시 신호(IND)를 전송하는 경우, 레지스터(320)는 지시 신호(IND)에 대응하는 선택 신호(SEL)를 멀티플렉서(330)로 전송할 수 있다.
메모리 세트(310)는 제3경로(PATH3)를 통해 선택 신호(SEL)에 대응하는 초기화 정보(IV)를 멀티플렉서(330)를 거쳐 DRAM PHY(241)로 출력할 수 있다. DRAM PHY(241)는 초기화 정보(IV)를 DRAM(130)으로 전송할 수 있다. DRAM(130)은 초기화 정보(IV)에 포함된 데이터를 이용해 초기화될 수 있다.
도 6b는, 본 발명의 실시 예에 따라, DRAM 컨트롤러에 의해 두 개 이상의 DRAM들이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이고, 도 6c는, 본 발명의 실시 예에 따라, DRAM 컨트롤러에 의해 DRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 6b 및 도 6c를 참조하면, SSD(100)는 DRAM PHY들(241-1 및 241-2)과 멀티플렉서들(330-1 및 330-2)을 포함할 수 있다.
멀티플렉서(330-1 또는 330-2)와 DRAM 컨트롤러(240)를 연결하는 버스의 대역폭(WMUX)의 합은, 멀티플렉서(330-1 또는 330-2)와 메모리 세트(310)를 연결하는 버스의 대역폭(WMSET)의 합, 멀티플렉서(330-1 또는 330-2)와 DRAM PHY(241-1 또는 241-2) 를 연결하는 버스의 대역폭(WDPHY)의 합, 및 DRAM PHY(도 6b의 241-1 또는 241-2)와 데이터 영역(도 6c의 131) 또는 패리티 영역(도 6c의 132)을 연결하는 버스의 대역폭(WDRAM)의 합과 동일할 수 있다.
멀티플렉서(330-1 또는 330-2)와 DRAM 컨트롤러(240)를 연결하는 버스의 대역폭(WMUX)의 합은 DRAM 컨트롤러(240)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
메모리 세트의 출력들(IV1 및 IV2)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 메모리 세트의 출력들(IV1 및 IV2)은 서로 다른 정보를 포함할 수도 있다.
레지스터의 출력들(SEL1 및 SEL2)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 레지스터의 출력들(SEL1 및 SEL2)은 서로 다른 정보를 포함할 수도 있다.
도 6b를 참조하면, SSD(100)는 DRAM들(130-1 및 130-2)을 포함할 수 있다. 본 명세서에서는 두 개의 DRAM들(130-1 및 130-2)을 도시하였지만, 실시 예들에 따라 DRAM의 개수는 변경될 수 있다.
DRAM들(130-1 및 130-2)의 개수, DRAM PHY들(241-1 및 241-2)의 개수 및 멀티플렉서들(330-1 및 330-2)의 개수는 동일할 수 있다.
CPU(210)가 레지스터(320)로 초기화 동작을 지시하는 지시 신호(IND)를 전송하는 경우, 레지스터(320)는 지시 신호(IND)에 대응하여 선택 신호들(SEL1 및 SEL2) 각각을 멀티플렉서들(330-1 및 330-2) 각각으로 전송할 수 있다.
DRAM PHY(241)는 도 6a와 동일한 방식으로 두 개의 제3경로(PATH3)를 통해 초기화 정보들(IV1 및 IV2)을 수신할 수 있다. DRAM PHY(241)는 초기화 정보들(IV1 및 IV2)을 DRAM들(130-1 및 130-2) 각각으로 전송할 수 있다. DRAM들(130-1 및 130-2)은 초기화 정보들(IV1 및 IV2)에 포함된 데이터를 이용해 초기화될 수 있다.
도 6c를 참조하면, DRAM(130)은 데이터 영역(131)과 패리티 영역(132)을 포함할 수 있다. 데이터 영역(131)의 기능 및 성질은 도 3c에 도시된 데이터 영역의 기능 및 성질과 동일할 수 있고, 패리티 영역(132)의 기능 및 성질은 도 3c에 도시된 패리티 영역의 기능 및 성질과 동일할 수 있다.
DRAM PHY(241)는 도 6a 및 도 6b와 동일한 방식으로 제3경로(PATH3)를 통해 초기화 정보들(IV1 및 IV2)을 수신할 수 있다. DRAM PHY(241)는 초기화 정보들(IV1 및 IV2)을 데이터 영역(131)과 패리티 영역(132) 각각으로 동시에 전송할 수 있다. 초기화 정보들(IV1 및 IV2)에 포함된 데이터를 이용해 데이터 영역(131)과 패리티 영역(132)은 동시에 초기화될 수 있다.
도 6b 및 도 6c를 참조하면, 본 발명에서는 하나의 메모리 세트(310)와 하나의 레지스터(320)에 의해 초기화 정보들(IV1 및 IV2)이 생성되는 것으로 도시하였으나, 이에 한정되는 것은 아니다.
즉, 실시 예들에 따라, 멀티플렉서들(330-1 및 330-2) 각각은 서로 다른 메모리 세트 및 서로 다른 레지스터와 연결될 수 있다. 상기 서로 다른 메모리 세트 및 상기 서로 다른 레지스터는 CPU(210)의 제어에 의해 서로 독립적으로 동작할 수 있다.
도 7a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 하나의 DRAM이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이고, 도 7b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 두 개 이상의 DRAM들이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이고, 도 7c는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 DRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다..
도 7a, 도 7b 및 도 7c를 참조하면, CPU(210)가 플래시 메모리 컨트롤러(220)에 포함된 레지스터(320)로 초기화 동작을 지시하는 지시 신호(IND2)를 전송하고 호스트 인터페이스(230)에 포함된 레지스터(320)로 초기화 동작을 지시하는 지시 신호(IND1)를 전송할 수 있다.
지시 신호들(IND1 및 IND2)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 지시 신호들(IND1 및 IND2)은 서로 다른 정보를 포함할 수 있다.
지시 신호(IND1)에 대응하여 호스트 인터페이스(230)에 포함된 메모리 세트(310)는 초기화 정보(IV1)를 출력하고, 지시 신호(IND2)에 대응하여 플래시 메모리 컨트롤러(230)에 포함된 메모리 세트(310)는 초기화 정보(IV2)를 출력할 수 있다.
초기화 정보들(IV1 및 IV2)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 초기화 정보들(IV1 및 IV2)은 서로 다른 정보를 포함할 수 있다.
도 7a를 참조하면, DRAM 컨트롤러(240)는, 도 3a 및 도 5a에서 설명한 방식과 동일한 방식으로, 제1경로(PATH1) 및 제2경로(PATH2)를 통해 초기화 정보들(IV1 및 IV2)을 수신할 수 있다.
DRAM 컨트롤러(240)는 제1경로(PATH1) 및 제2경로(PATH2)를 통해 전송된 초기화 정보들(IV1 및 IV2)을 DRAM(130)으로 전송하고, 초기화 정보들(IV1 및 IV2)에 포함된 데이터를 이용해 DRAM(130)은 초기화될 수 있다.
도 7b를 참조하면, SSD(100)는 DRAM들(130-1 및 130-2)을 포함할 수 있다. 본 명세서에서는 두 개의 DRAM들(130-1 및 130-2)을 도시하였지만, 실시 예들에 따라 DRAM의 개수는 변경될 수 있다.
DRAM 컨트롤러(240)와 DRAM들(130-1 및 130-2) 각각을 연결하는 버스의 대역폭의 합은 DRAM 컨트롤러(240)와 버스 매트릭스(250)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
DRAM 컨트롤러(240)는 도 7a에서 설명한 방식과 동일한 방식으로 제1경로(PATH1) 및 제2경로(PATH2)를 통해 초기화 정보들(IV1 및 IV2)을 수신할 수 있다. DRAM 컨트롤러(240)는 초기화 정보들(IV1 및 IV2)을 DRAM들(130-1 및 130-2) 각각으로 동시에 전송할 수 있다. 초기화 정보들(IV1 및 IV2)에 포함된 데이터를 이용해 DRAM들(130-1 및 130-2)은 동시에 초기화될 수 있다.
도 7c를 참조하면, DRAM(130)은 데이터 영역(131)과 패리티 영역(132)을 포함할 수 있다.
데이터 영역(131)의 기능 및 성질은 도 3c에 도시된 데이터 영역의 기능 및 성질과 동일할 수 있고, 패리티 영역(132)의 기능 및 성질은 도 3c에 도시된 패리티 영역의 기능 및 성질과 동일할 수 있다.
DRAM 컨트롤러(240)는 도 7a 및 도 7b에서 설명한 방식과 동일한 방식으로 제1경로(PATH1) 및 제2경로(PATH2)를 통해 초기화 정보들(IV1 및 IV2)을 수신할 수 있다. DRAM 컨트롤러(240)는 초기화 정보들(IV1 및 IV2)을 데이터 영역(131)과 패리티 영역(132) 각각으로 동시에 전송할 수 있다. 초기화 정보들(IV1 및 IV2)에 포함된 데이터를 이용해 데이터 영역(131)과 패리티 영역(132)은 동시에 초기화될 수 있다.
도 8a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러, 호스트 인터페이스와 DRAM 컨트롤러에 의해 두 개 이상의 DRAM들이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이고, 도 8b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러, 호스트 인터페이스와 DRAM 컨트롤러에 의해 DRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 2에 도시된 SSD 컨트롤러의 세부 블록도이다.
도 8a 및 도 8b를 참조하면, CPU(210)는 멀티플렉서(330-1)에 연결된 레지스터(320)로 초기화 동작을 지시하는 지시 신호(IND1)를 전송하고, 멀티플렉서(330-2)에 연결된 레지스터(320)로 초기화 동작을 지시하는 지시 신호(IND2)를 전송하고, 플래시 메모리 컨트롤러(220)에 포함된 레지스터(320)로 초기화 동작을 지시하는 지시 신호(IND3)를 전송하고, 호스트 인터페이스(230)에 포함된 레지스터(320)로 초기화 동작을 지시하는 지시 신호(IND4)를 전송할 수 있다.
지시 신호들(IND1, IND2, IND3 및 IND4)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 지시 신호들(IND1, IND2, IND3 및 IND4)은 서로 다른 정보를 포함할 수 있다.
지시 신호(IND1)에 대응하여 메모리 세트(310)는 초기화 정보(IV1)를 출력하고, 지시 신호(IND2)에 대응하여 다른 메모리 세트(310)는 초기화 정보(IV2)를 출력하고, 지시 신호(IND3)에 대응하여 호스트 인터페이스(230)에 포함된 메모리 세트(310)는 초기화 정보(IV3)를 출력하고, 지시 신호(IND4)에 대응하여 플래시 메모리 컨트롤러(230)에 포함된 메모리 세트(310)는 초기화 정보(IV4)를 출력할 수 있다.
초기화 정보들(IV1, IV2, IV3 및 IV4)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 초기화 정보들(IV1, IV2, IV3 및 IV4)은 서로 다른 정보를 포함할 수 있다.
도 8a를 참조하면, SSD(100)는 DRAM들(130-1 및 130-2)을 포함할 수 있다. 본 명세서에서는 두 개의 DRAM들(130-1 및 130-2)을 도시하였지만, 실시 예들에 따라 DRAM의 개수는 변경될 수 있다.
DRAM 컨트롤러(240)는, 도 3a 및 도 5a에서 설명한 방식과 동일한 방식으로, 제1경로(PATH1) 및 제2경로(PATH2)를 통해 초기화 정보들(IV3 및 IV4)을 수신할 수 있다.
DRAM(130-1 및 130-2) 중 어느 하나는 초기화 정보들(IV3 및 IV4)을 이용하여 초기화되고, DRAM들(130-1 및 130-2) 중 어느 하나가 초기화됨과 동시에 DRAM들(130-1 및 130-2) 중 다른 어느 하나는 초기화 정보(IV1 또는 IV2)를 이용하여 제3경로(PATH3)를 통해 초기화될 수 있다.
예컨대, DRAM 컨트롤러(240)는 제1경로(PATH1) 및 제2경로(PATH2)를 통해 수신한 초기화 정보들(IV3 및 IV4)을 DRAM PHY(241-1 또는 241-2, 예컨대 241-1)을 통해, DRAM(130-1 또는 130-2, 예컨대 130-1)으로 전송할 수 있다. 초기화 정보들(IV3 및 IV4)을 수신한 DRAM(130-1 또는 130-2, 예컨대 130-1)은 초기화 정보들(IV3 및 IV3)을 이용하여 초기화될 수 있다.
이때, CPU(210)는 초기화 정보들(IV3 및 IV3)을 수신하지 못한 DRAM(130-1 또는 130-2, 예컨대 130-2)과 관련된 레지스터(320)로 DRAM(130-1 또는 130-2, 예컨대 130-2)의 초기화를 지시하는 지시 신호(IND2)를 전송하고, 메모리 세트(310)의 초기화 정보(IV1 또는 IV2, 예컨대 IV2)를 이용하여 DRAM(130-1 또는 130-2, 예컨대 130-2)은 DRAM(130-1 또는 130-2, 예컨대 130-1)이 초기화 됨과 동시에 초기화될 수 있다.
도 8b를 참조하면, DRAM(130)은 데이터 영역(131)과 패리티 영역(132)을 포함할 수 있다.
데이터 영역(131)의 기능 및 성질은 도 3c에 도시된 데이터 영역의 기능 및 성질과 동일할 수 있고, 패리티 영역(132)의 기능 및 성질은 도 3c에 도시된 패리티 영역의 기능 및 성질과 동일할 수 있다.
DRAM 컨트롤러(240)는, 도 8a와 동일하게, 제1경로(PATH1) 및 제2경로(PATH2)를 통해 초기화 정보들(IV3 및 IV4)을 수신할 수 있다.
데이터 영역(131)과 패리티 영역(132) 중 어느 하나는 초기화 정보들(IV3 및 IV4)을 이용하여 초기화되고, 데이터 영역(131)과 패리티 영역(132) 중 어느 하나가 초기화됨과 동시에 데이터 영역(131)과 패리티 영역(132) 중 다른 어느 하나는 초기화 정보(IV1 또는 IV2)를 이용하여 제3경로(PATH3)를 통해 초기화될 수 있다.
예컨대, DRAM 컨트롤러(240)는 제1경로(PATH1) 및 제2경로(PATH2)를 통해 수신한 초기화 정보들(IV3 및 IV4)을 DRAM PHY(241-1 또는 241-2, 예컨대 241-1)을 통해, 데이터 영역(131)으로 전송할 수 있다. 데이터 영역(131)은 초기화 정보들(IV3 및 IV4)을 이용하여 초기화될 수 있다.
이때, CPU(210)는 패리티 영역(132)과 관련된 레지스터(320)로 패리티 영역(132)의 초기화를 지시하는 지시 신호(IND2)를 전송하고, 메모리 세트(310)의 초기화 정보(IV1 또는 IV2, 예컨대 IV2)를 이용하여 패리티 영역(132)은 데이터 영역(131)이 초기화 됨과 동시에 초기화될 수 있다.
도 9는 본 발명의 실시 예에 따른 모바일 스토리지의 블록도이다. 도 9를 참조하면, 모바일 스토리지(500)는 낸드 플래시 메모리들(510), 모바일 스토리지 컨트롤러(520) 및 커낵터(530)를 포함할 수 있다.
낸드 플래시 메모리들(510)은 호스트로부터 전송된 데이터를 저장할 수 있다. 낸드 플래시 메모리들(510)은 복수의 낸드 플래시 메모리를 포함할 수 있다.
본 발명의 명세서에서는 설명의 편의를 위해 2개의 낸드 플래시 메모리들(110)을 도시하였지만, 이에 한정되는 것은 아니다. 즉, 모바일 스토리지(500)에 포함된 낸드 플래시 메모리들(510)의 개수는 실시 예들에 따라 변경될 수 있다.
낸드 플래시 메모리들(510)은 3차원 메모리 셀 어레이를 포함할 수 있다. 3차원 메모리 셀 어레이는 실리콘 기판 위(on or above)에 배치된 액티브 영역을 갖는 메모리 셀들의 어레이의 하나 또는 그 이상의 물리적인 레벨들 내에서 모노리식하게(monolithically) 형성되고, 상기 메모리 셀들의 작동에 관련된 회로를 포함할 수 있다. 상기 회로는 상기 기판의 내부 또는 위(on or above)에 형성될 수 있다.
모노리식(monolithic) 이라는 용어는 어레이의 각 레벨의 레이어들(layers)이 상기 어레이의 각 하부 레벨(each underlying level)의 레이어들에 직접 증착 (directly deposited )되는 것을 의미한다.
3차원 메모리 셀 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직으로 배향되는(vertically oriented) 수직 NAND 스트링을 포함할 수 있다. 상기 적어도 하나의 메모리 셀은 전하 트랩 레이어(charge trap layer)를 포함할 수 있다.
모바일 스토리지 컨트롤러(520)는 모바일 스토리지(500)의 동작을 전반적으로 제어할 수 있다. 모바일 스토리지 컨트롤러(520)는 낸드 플래시 메모리들(510)로부터 데이터를 리드하고, 리드한 데이터를 커넥터(530)를 통해 외부로 전송하고, 외부로부터 전송된 데이터를 거쳐 낸드 플래시 메모리들(110)에 라이트할 수 있다.
모바일 스토리지(500)는, 커넥터(530)를 통해, 호스트와 연결될 수 있다. 커넥터(530)는 패드(들)을 포함할 수 있다. 실시 예들에 따라, 상기 패드(들)의 개수는 모바일 스토리지 컨트롤러(520)에 포함된 호스트 인터페이스의 개수와 동일할 수 있다.
모바일 스토리지(500)는 유니버셜 플래시 스토리지(universal flash storage(UFS)), 멀티미디어 카드(multimedia card(MMC)), 임베디드 MMC(embedded MMC(eMMC)) 또는 Perfect Page New(PPN) NAND로 구현될 수 있으나 이에 한정되는 것은 아니다.
도 10은 도 9에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다. 도 10을 참조하면, 모바일 스토리지 컨트롤러(520)는 CPU(610), FMC(620), 호스트 인터페이스(630), SRAM 컨트롤러(640), 버스 매트릭스(650), 캐쉬(660) 및 SRAM(670)을 포함할 수 있다.
CPU(610)는 모바일 스토리지 컨트롤러(520)의 작동을 전반적으로 제어할 수 있다.
FMC(620)는 CPU(610)의 제어에 따라 낸드 플래시 메모리들(510)을 제어할 수 있다. FMC(620)의 제어에 의해, 낸드 플래시 메모리들(510)에 저장된 데이터가 리드되거나 낸드 플래시 메모리들(510)로 데이터를 라이트할 수 있다.
본 발명의 명세서에서는 설명의 편의를 위해 2개의 FMC(620)를 도시하였지만, 이에 한정되는 것은 아니다. 즉, FMC(620)의 개수는 실시 예들에 따라 변경될 수 있다. FMC(620)의 개수는 낸드 플래시 메모리들(510)의 개수와 동일할 수 있다.
호스트 인터페이스(630)는 호스트로 전송되는 데이터의 포맷을 상기 호스트에서 이용할 수 있게 변경하고, 변경된 포맷을 갖는 데이터를 커넥터(530)를 통해 상기 호스트로 전송할 수 있다. 또한, 호스트 인터페이스(630)는 상기 호스트로부터 전송된 데이터를 수신하고, 수신된 데이터의 포맷을 변경하고, 변경된 포맷을 갖는 데이터를 낸드 플래시 메모리들(510)로 전송할 수 있다. 실시 예들에 따라, 호스트 인터페이스(630)는 데이터를 송수신할 수 있는 송수신기를 포함할 수 있다.
본 발명의 명세서에서는 설명의 편의를 위해 1개의 호스트 인터페이스(630)를 도시하였지만, 이에 한정되는 것은 아니다. 즉, 호스트 인터페이스(630)의 개수는 실시 예들에 따라 변경될 수 있다. 호스트 인터페이스(630)의 개수는 커넥터(530)에 포함된 패드(pad) 개수와 동일할 수 있다.
호스트 인터페이스(630)는 SATA 인터페이스, SATAe 인터페이스, SAS 인터페이스, PCIe 인터페이스 또는 NVMe 인터페이스로 구현될 수 있으나 이에 한정되는 것은 아니다.
SRAM 컨트롤러(640)는 CPU(610)의 제어에 따라, SRAM(670)에 데이터를 라이트하거나 SRAM(670)으로부터 데이터를 리드할 수 있다. SRAM 컨트롤러(640)에 의해 처리된 데이터는 FMC(620) 또는 호스트 인터페이스(630)로 전송될 수 있다.
CPU(510), FMC(520), 호스트 인터페이스(530) 및 SRAM 컨트롤러(540)는 버스 매트릭스(650)를 통해 서로 통신할 수 있다.
버스 매트릭스(650)는 AMBA, AHB, APB, AXI, ASB 또는 이들의 결합으로 구현될 수 있으나 이에 한정되는 것은 아니다.
캐쉬(660)는 CPU(610)의 동작에 필요한 데이터를 저장하고, CPU(610)의 요청에 따라 상기 데이터를 CPU(660)로 전송할 수 있다. 실시 예들에 따라, 캐쉬(660)는 SRAM으로 구현될 수 있다.
SRAM(670)은 모바일 스토리지(500)의 캐시(또는 버퍼)로 사용될 수 있다. SRAM(670)은 낸드 플래시 메모리들(510)로 저장되는 데이터 또는 낸드 플래시 메모리들(110)로부터 로드되는 데이터를 일시적으로 저장할 수 있다.
CPU(610)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WCPU)은, 호스트 인터페이스(630)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WHOST), 플래시 메모리 컨트롤러(620)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WFMC) 또는 SRAM 컨트롤러(640)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WCTRL)보다 좁을 수 있다.
SRAM 컨트롤러(640)와 SRAM(670) 사이를 연결하는 버스의 대역폭(WSRAM)은, 호스트 인터페이스(630)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WHOST)의 합, 플래시 메모리 컨트롤러(620)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WFMC)의 합, 및 CPU(610)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WCPU)과 동일할 수 있다.
SRAM 컨트롤러(640)와 SRAM(670) 사이를 연결하는 버스의 대역폭(WDRAM)은 SRAM 컨트롤러(640)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
도 11a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 하나의 SRAM이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이고, 도 11b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 두 개 이상의 SRAM들이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이고, 도 11c는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러에 의해 SRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 11a, 도 11b 및 도 11c를 참조하면, 플래시 메모리 컨트롤러(620)는 NAND PHY(700), 메모리 세트(710), 레지스터(720), 멀티플렉서(730) ECC 회로(740) 및 랜더마이저(750)를 포함할 수 있다.
NAND PHY(700)는 도 3a에 도시된 NAND PHY와 기능 및 성질이 동일할 수 있고, 메모리 세트(710)는 도 3a에 도시된 메모리 세트와 기능 및 성질이 동일할 수 있고, 레지스터(720)는 도 3a에 도시된 레지스터와 기능 및 성질이 동일할 수 있고, 멀티플렉서(730)는 도 3a에 도시된 멀티플렉서와 기능 및 성질이 동일할 수 있고, ECC 회로(740)는 도 3a에 도시된 ECC 회로와 기능 및 성질이 동일할 수 있고, 랜더마이저(750)는 도 3a에 도시된 랜더마이저와 기능 및 성질이 동일할 수 있다.
따라서, 도 11a, 도 11b 및 도 11c에서는 구성요소들(700, 710, 720, 730, 740 및 750) 각각에 대한 설명은 생략하기로 한다.
도 11a를 참조하면, CPU(610)가 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND)를 전송하는 경우, 레지스터(720)는 지시 신호(IND)에 대응하는 선택 신호(SEL)를 멀티플렉서(330)로 전송할 수 있다. 메모리 세트(710)는 선택 신호(SEL)에 대응하는 초기화 정보(IV)를 멀티플렉서(730)로 출력하고, 초기화 정보(IV)는 ECC 회로(740) 및 랜더마이저(750)를 통해 SRAM 컨트롤러(640)로 전송될 수 있다.
본 명세서에서는 설명의 편의를 위해 하나의 FMC(620)에 대해서만 세부 블록도를 도시하였으나, 세부 블록도를 도시 하지 않은 나머지 FMC(620)는 세부 브록도를 도시한 FMC와 내부 구성이 동일할 수 있다. 따라서, 위에서 설명한 바와 같이, 2개의 FMC(620) 각각은 제4경로(PATH4)를 통해 SRAM 컨트롤러(640)로 초기화 정보(IV)를 전송할 수 있다.
SRAM 컨트롤러(640)는 제4경로(PATH4)를 통해 전송된 초기화 정보(IV)를 SRAM(670)으로 전송하고, 초기화 정보(IV)에 포함된 데이터를 이용해 SRAM(670)은 초기화될 수 있다.
도 11b를 참조하면, 모바일 스토리지 컨트롤러(520)는 SRAM들(670-1 및 670-2)을 포함할 수 있다. 본 명세서에서는 두 개의 SRAM들(670-1 및 670-2)을 도시하였지만, 실시 예들에 따라 SRAM의 개수는 변경될 수 있다.
SRAM 컨트롤러(640)와 SRAM들(670-1 및 670-2) 각각을 연결하는 버스의 대역폭의 합은 SRAM 컨트롤러(640)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
SRAM 컨트롤러(640)는 도 11a에서 설명한 방식과 동일한 방식으로 제4경로(PATH4)를 통해 초기화 정보(IV)를 수신할 수 있다. SRAM 컨트롤러(640)는 초기화 정보(IV)를 SRAM들(670-1 및 670-2) 각각으로 동시에 전송할 수 있다. 초기화 정보(IV)에 포함된 데이터를 이용해 SRAM들(670-1 및 670-2)은 동시에 초기화될 수 있다.
도 11c를 참조하면, SRAM(670)은 데이터 영역(671)과 패리티 영역(672)을 포함할 수 있다. 데이터 영역(671)은 낸드 플래시 메모리들(510)에 대한 매핑 테이블 및 메타 정보를 저장할 수 있다. 패리티 영역(672)은 데이터 영역(671)에 저장된 데이터의 에러 검출을 위해 에러 검출 데이터를 저장할 수 있다.
SRAM 컨트롤러(640)와 데이터 영역(671)을 연결하는 버스의 대역폭과 SRAM 컨트롤러(640)와 패리티 영역(672)을 연결하는 버스의 대역폭의 합은 SRAM 컨트롤러(640)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
SRAM 컨트롤러(640)는 도 11a 및 도 11b에서 설명한 방식과 동일한 방식으로 제4경로(PATH4)를 통해 초기화 정보(IV)를 수신할 수 있다. SRAM 컨트롤러(640)는 초기화 정보(IV)를 데이터 영역(671)과 패리티 영역(672) 각각으로 동시에 전송할 수 있다. 초기화 정보(IV)에 포함된 데이터를 이용해 데이터 영역(671)과 패리티 영역(672)은 동시에 초기화될 수 있다.
도 12a는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 하나의 SRAM이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이고, 도 12b는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 두 개 이상의 SRAM들이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이고, 도 12c는, 본 발명의 실시 예에 따라, 호스트 인터페이스에 의해 SRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 12a, 도 12b 및 도 12c를 참조하면, 호스트 인터페이스(630)는 호스트 PHY(800), 호스트 링크(810), 호스트 매니저(820), 호스트 DMA(830), 메모리 세트(710), 레지스터(720) 및 멀티플렉서(730)를 포함할 수 있다.
호스트 PHY(800)는 도 5a에 도시된 호스트 PHY와 기능 및 성질이 동일할 수 있고, 호스트 링크(810)는 도 5a에 도시된 호스트 링크와 기능 및 성질이 동일할 수 있고, 호스트 매니저(820)는 도 5a에 도시된 호스트 매니저와 기능 및 성질이 동일할 수 있고, 호스트 DMA(830)는 도 5a에 도시된 호스트 DMA와 기능 및 성질이 동일할 수 있다.
또한, 메모리 세트(710)는 도 11a에 도시된 메모리 세트와 기능 및 성질이 동일할 수 있고, 레지스터(720)는 도 11a에 도시된 레지스터와 기능 및 성질이 동일할 수 있고, 멀티플렉서(730)는 도 11a에 도시된 멀티플렉서와 기능 및 성질이 동일할 수 있다.
도 12a를 참조하면, CPU(610)가 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND)를 전송하는 경우, 레지스터(720)는 지시 신호(IND)에 대응하는 선택 신호(SEL)를 멀티플렉서(730)로 전송할 수 있다.
메모리 세트(710)는 선택 신호(SEL)에 대응하는 초기화 정보(IV)를 멀티플렉서(730)로 출력하고, 초기화 정보(IV)는 호스트 DMA(830)를 통해 SRAM 컨트롤러(640)로 전송될 수 있다.
본 명세서에서는 설명의 편의를 위해 하나의 호스트 인터페이스(230)를 도시하였으나, 실시 예에 따라서 호스트 인터페이스(230)의 개수는 변경될 수 있다. 이때, 세부 블록이 도시되지 않은 호스트 인터페이스는 세부 블록도가 도시된 호스트 인터페이스와 내부 구성이 동일할 수 있고, 동일한 제5경로(PATH5)를 통해 SRAM 컨트롤러(640)로 초기화 정보(IV)를 전송할 수 있다.
SRAM 컨트롤러(640)는 제5경로(PATH5)를 통해 전송된 초기화 정보(IV)를 SRAM(670)으로 전송하고, 초기화 정보(IV)에 포함된 데이터를 이용해 SRAM(670)은 초기화될 수 있다.
도 12b를 참조하면, 모바일 스토리지 컨트롤러(520)는 SRAM들(670-1 및 670-2)을 포함할 수 있다. 본 명세서에서는 두 개의 SRAM들(670-1 및 670-2)을 도시하였지만, 실시 예들에 따라 SRAM의 개수는 변경될 수 있다.
SRAM 컨트롤러(640)와 SRAM들(670-1 및 670-2) 각각을 연결하는 버스의 대역폭의 합은 DRAM 컨트롤러(240)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
SRAM 컨트롤러(640)는 도 12a에서 설명한 방식과 동일한 방식으로 제5경로(PATH5)를 통해 초기화 정보(IV)를 수신할 수 있다. SRAM 컨트롤러(640)는 초기화 정보(IV)를 SRAM들(670-1 및 670-2) 각각으로 동시에 전송할 수 있다. 초기화 정보(IV)에 포함된 데이터를 이용해 SRAM들(670-1 및 670-2)은 동시에 초기화될 수 있다.
도 12c를 참조하면, SRAM(670)은 데이터 영역(671)과 패리티 영역(672)을 포함할 수 있다. 데이터 영역(671)은 도 11c에 도시된 데이터 영역과 기능 및 성질이 동일할 수 있고, 패리티 영역(672)은 도 11c에 도시된 패리티 영역과 기능 및 성질이 동일할 수 있다.
SRAM 컨트롤러(640)와 데이터 영역(671)을 연결하는 버스의 대역폭과 SRAM 컨트롤러(640)와 패리티 영역(672)을 연결하는 버스의 대역폭의 합은 SRAM 컨트롤러(640)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
SRAM 컨트롤러(640)는 도 11a 및 도 11b에서 설명한 방식과 동일한 방식으로 제5경로(PATH5)를 통해 초기화 정보(IV)를 수신할 수 있다. SRAM 컨트롤러(640)는 초기화 정보(IV)를 데이터 영역(671)과 패리티 영역(672) 각각으로 동시에 전송할 수 있다. 초기화 정보(IV)에 포함된 데이터를 이용해 데이터 영역(131)과 패리티 영역(132)은 동시에 초기화될 수 있다.
도 13a는, 본 발명의 실시 예에 따라, SRAM 컨트롤러에 의해 하나의 SRAM이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이고, 도 13b는, 본 발명의 실시 예에 따라, SRAM 컨트롤러에 의해 두 개 이상의 SRAM들이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이고, 도 13c는, 본 발명의 실시 예에 따라, SRAM 컨트롤러에 의해 SRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 13a, 도 13b 및 도 13c를 참조하면, SRAM 컨트롤러(520)는 메모리 세트(710), 레지스터(720) 및 멀티플렉서(730)를 포함할 수 있다.
메모리 세트(710)는 도 11a에 도시된 메모리 세트와 기능 및 성질이 동일할 수 있고, 레지스터(720)는 도 11a에 도시된 레지스터와 기능 및 성질이 동일할 수 있고, 멀티플렉서(730)는 도 11a에 도시된 멀티플렉서와 기능 및 성질이 동일할 수 있다.
실시 예들에 따라, 메모리 세트(710), 레지스터(720) 및 멀티플렉서(730)는 SRAM 컨트롤러(640)에 포함될 수 있다. 다만, 이와 같은 경우에도 메모리 세트(710), 레지스터(720) 및 멀티플렉서(730) 사이의 연결 형태는 도 13a와 동일할 수 있다.
도 13a를 참조하면, SRAM 컨트롤러(640)와 멀티플렉서(730)를 연결하는 버스의 대역폭(WMUX), 메모리 세트(710)와 멀티플렉서(730)를 연결하는 버스의 대역폭(WMSET), 멀티플렉서(730)와 SRAM(670)을 연결하는 버스의 대역폭(WSRAM)은 모두 동일할 수 있다.
CPU(210)가 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND)를 전송하는 경우, 레지스터(720)는 지시 신호(IND)에 대응하는 선택 신호(SEL)를 멀티플렉서(730)로 전송할 수 있다.
메모리 세트(710)는 제6경로(PATH6)를 통해 선택 신호(SEL)에 대응하는 초기화 정보(IV)를 멀티플렉서(730)를 통해 SRAM(670)으로 출력할 수 있다. SRAM(670)은 초기화 정보(IV)에 포함된 데이터를 이용해 초기화될 수 있다.
도 13b 및 도 13c를 참조하면, 모바일 스토리지 컨트롤러(520)는 멀티플렉서들(730-1 및 730-2)을 포함할 수 있다.
멀티플렉서(730-1 또는 730-2)와 SRAM 컨트롤러(640)를 연결하는 버스의 대역폭(WMUX)의 합은 SRAM 컨트롤러(640)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
메모리 세트의 출력들(IV1 및 IV2)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 메모리 세트의 출력들(IV1 및 IV2)은 서로 다른 정보를 포함할 수도 있다.
레지스터의 출력들(SEL1 및 SEL2)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 레지스터의 출력들(SEL1 및 SEL2)은 서로 다른 정보를 포함할 수도 있다.
도 13b를 참조하면, 모바일 스토리지 컨트롤러(520)는 SRAM들(670-1 및 670-2)을 포함할 수 있다. 본 명세서에서는 두 개의 SRAM들(670-1 및 670-2)을 도시하였지만, 실시 예들에 따라 SRAM의 개수는 변경될 수 있다.
SRAM들(670-1 및 670-2)의 개수 및 멀티플렉서들(730-1 및 730-2)의 개수는 동일할 수 있다.
멀티플렉서(730-1 또는 730-2)와 SRAM 컨트롤러(640)를 연결하는 버스의 대역폭(WMUX)의 합은, 멀티플렉서(730-1 또는 730-2)와 메모리 세트(710)를 연결하는 버스의 대역폭(WMSET)의 합 및 멀티플렉서(730-1 또는 730-2)와 SRAM(670-1 또는 670-2)을 연결하는 버스의 대역폭(WSRAM)의 합과 동일할 수 있다.
CPU(610)가 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND)를 전송하는 경우, 레지스터(720)는 지시 신호(IND)에 대응하여 선택 신호들(SEL1 및 SEL2) 각각을 멀티플렉서들(730-1 및 730-2) 각각으로 전송할 수 있다.
SRAM(670-1)은 도 13a에서 설명한 방식과 동일한 방식으로 제6경로(PATH6)를 통해 초기화 정보(IV1)를 수신할 수 있다. SRAM(670-2)은 도 13a에서 설명한 방식과 동일한 방식으로 제6경로(PATH6)를 통해 초기화 정보(IV2)를 수신할 수 있다.
SRAM(670-1)은 초기화 정보(IV1)에 포함된 데이터를 이용해 초기화될 수 있고, SRAM(670-1)이 초기화됨과 동시에 SRAM(670-2)은 초기화 정보(IV2)에 포함된 데이터를 이용해 초기화될 수 있다.
도 13c를 참조하면, SRAM(670)은 데이터 영역(671)과 패리티 영역(672)을 포함할 수 있다.
데이터 영역(671)은 도 11c에 도시된 데이터 영역과 기능 및 성질이 동일할 수 있고, 패리티 영역(672)은 도 11c에 도시된 패리티 영역과 기능 및 성질이 동일할 수 있다.
멀티플렉서(730-1 또는 730-2)와 SRAM 컨트롤러(640)를 연결하는 버스의 대역폭(WMUX)의 합은, 멀티플렉서(730-1 또는 730-2)와 메모리 세트(710)를 연결하는 버스의 대역폭(WMSET)의 합 및 데이터 영역(671) 또는 패리티 영역(672)을 연결하는 버스의 대역폭(WSRAM)의 합과 동일할 수 있다.
CPU(610)가 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND)를 전송하는 경우, 레지스터(720)는 지시 신호(IND)에 대응하여 선택 신호들(SEL1 및 SEL2) 각각을 멀티플렉서들(730-1 및 730-2) 각각으로 전송할 수 있다.
데이터 영역(671)은 도 13a에서 설명한 방식과 동일한 방식으로 제6경로(PATH6)를 통해 초기화 정보(IV1)를 수신할 수 있다. 패리티 영역(132)은 도 13a에서 설명한 방식과 동일한 방식으로 제6경로(PATH6)를 통해 초기화 정보(IV2)를 수신할 수 있다.
데이터 영역(671)은 초기화 정보(IV1)에 포함된 데이터를 이용해 초기화될 수 있고, 패리티 영역(672)은 데이터 영역(671)이 초기화됨과 동시에 초기화 정보(IV2)에 포함된 데이터를 이용해 초기화될 수 있다.
도 13b 및 도 13c를 참조하면, 본 발명에서는 하나의 메모리 세트(710)와 하나의 레지스터(720)에 의해 초기화 정보들(IV1 및 IV2)이 생성되는 것으로 도시하였으나, 이에 한정되는 것은 아니다.
즉, 실시 예들에 따라, 멀티플렉서들(730-1 및 730-2) 각각은 서로 다른 메모리 세트 및 서로 다른 레지스터와 연결될 수 있다. 상기 서로 다른 메모리 세트 및 상기 서로 다른 레지스터는 CPU(610)의 제어에 의해 서로 독립적으로 동작할 수 있다.
도 14a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 하나의 SRAM이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이고, 도 14b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 두 개 이상의 SRAM들이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이고 도 14c는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러와 호스트 인터페이스에 의해 SRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 14a, 도 14b 및 도 14c를 참조하면, CPU(610)는 플래시 메모리 컨트롤러(620)에 포함된 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND2)를 전송하고, 호스트 인터페이스(630)에 포함된 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND1)를 전송할 수 있다.
지시 신호들(IND1 및 IND2)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 지시 신호들(IND1 및 IND2)은 서로 다른 정보를 포함할 수 있다.
지시 신호(IND1)에 대응하여 호스트 인터페이스(630)에 포함된 메모리 세트(710)는 초기화 정보(IV1)를 출력하고, 지시 신호(IND2)에 대응하여 플래시 메모리 컨트롤러(630)에 포함된 메모리 세트(710)는 초기화 정보(IV2)를 출력할 수 있다.
초기화 정보들(IV1 및 IV2)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 초기화 정보들(IV1 및 IV2)은 서로 다른 정보를 포함할 수 있다.
도 14a를 참조하면, SRAM 컨트롤러(640)는, 도 11a 및 도 12a에서 설명한 방식과 동일한 방식으로, 제4경로(PATH4) 및 제5경로(PATH5)를 통해 초기화 정보들(IV1 및 IV2)을 수신할 수 있다.
SRAM 컨트롤러(640)는 제4경로(PATH4) 및 제5경로(PATH5)를 통해 전송된 초기화 정보들(IV1 및 IV2)을 SRAM(670)으로 전송하고, 초기화 정보들(IV1 및 IV2)에 포함된 데이터를 이용해 SRAM(670)은 초기화될 수 있다.
도 14b를 참조하면, 모바일 스토리지 컨트롤러(520)는 SRAM들(670-1 및 670-2)을 포함할 수 있다. 본 명세서에서는 두 개의 SRAM들(670-1 및 670-2)을 도시하였지만, 실시 예들에 따라 SRAM의 개수는 변경될 수 있다.
SRAM 컨트롤러(640)와 SRAM들(670-1 및 670-2) 각각을 연결하는 버스의 대역폭(WSRAM)의 합은 SRAM 컨트롤러(640)와 버스 매트릭스(650)를 연결하는 버스의 대역폭(WCTRL)의 합과 동일할 수 있다.
SRAM 컨트롤러(640)는 도 14a에서 설명한 방식과 동일한 방식으로 제4경로(PATH4) 및 제5경로(PATH5)를 통해 초기화 정보들(IV1 및 IV2)을 수신할 수 있다. SRAM 컨트롤러(640)는 초기화 정보들(IV1 및 IV2)을 SRAM들(670-1 및 670-2) 각각으로 동시에 전송할 수 있다. 초기화 정보들(IV1 및 IV2)에 포함된 데이터를 이용해 SRAM들(670-1 및 670-2)은 동시에 초기화될 수 있다.
도 14c를 참조하면, SRAM(670)은 데이터 영역(671)과 패리티 영역(672)을 포함할 수 있다.
데이터 영역(671)은 도 11c에 도시된 데이터 영역과 기능 및 성질이 동일할 수 있고, 패리티 영역(672)은 도 11c에 도시된 패리티 영역과 기능 및 성질이 동일할 수 있다.
SRAM 컨트롤러(640)는 도 14a 및 도 14b에서 설명한 방식과 동일한 방식으로 제4경로(PATH4) 및 제5경로(PATH5)를 통해 초기화 정보들(IV1 및 IV2)을 수신할 수 있다. SRAM 컨트롤러(640)는 초기화 정보들(IV1 및 IV2)을 데이터 영역(671)과 패리티 영역(672) 각각으로 동시에 전송할 수 있다. 초기화 정보들(IV1 및 IV2)에 포함된 데이터를 이용해 데이터 영역(671)과 패리티 영역(672)은 동시에 초기화될 수 있다.
도 15a는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러, 호스트 인터페이스와 SRAM 컨트롤러에 의해 두 개 이상의 SRAM들이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 15b는, 본 발명의 실시 예에 따라, 플래시 메모리 컨트롤러, 호스트 인터페이스와 SRAM 컨트롤러에 의해 SRAM에 포함된 데이터 영역과 패리티 영역이 초기화되는 경우, 도 10에 도시된 모바일 스토리지 컨트롤러의 세부 블록도이다.
도 15a 및 도 15b를 참조하면, CPU(610)는 멀티플렉서(730-1)에 연결된 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND1)를 전송하고, 멀티플렉서(730-2)에 연결된 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND2)를 전송하고, 플래시 메모리 컨트롤러(620)에 포함된 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND3)를 전송하고, 호스트 인터페이스(630)에 포함된 레지스터(720)로 초기화 동작을 지시하는 지시 신호(IND4)를 전송할 수 있다.
지시 신호들(IND1, IND2, IND3 및 IND4)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 지시 신호들(IND1, IND2, IND3 및 IND4)은 서로 다른 정보를 포함할 수 있다.
지시 신호(IND1)에 대응하여 메모리 세트(710)는 초기화 정보(IV1)를 출력하고, 지시 신호(IND2)에 대응하여 다른 메모리 세트(710)는 초기화 정보(IV2)를 출력하고, 지시 신호(IND3)에 대응하여 호스트 인터페이스(630)에 포함된 메모리 세트(710)는 초기화 정보(IV3)를 출력하고, 지시 신호(IND4)에 대응하여 플래시 메모리 컨트롤러(630)에 포함된 메모리 세트(710)는 초기화 정보(IV4)를 출력할 수 있다.
초기화 정보들(IV1, IV2, IV3 및 IV4)은 서로 동일한 정보를 포함할 수 있다. 실시 예들에 따라, 초기화 정보들(IV1, IV2, IV3 및 IV4)은 서로 다른 정보를 포함할 수 있다.
도 15a를 참조하면, 모바일 스토리지 컨트롤러(520)는 SRAM들(670-1 및 670-2)을 포함할 수 있다. 본 명세서에서는 두 개의 SRAM들(670-1 및 670-2)을 도시하였지만, 실시 예들에 따라 SRAM의 개수는 변경될 수 있다.
SRAM 컨트롤러(640)는, 도 11a 및 도 12a에서 설명한 방식과 동일한 방식으로, 제4경로(PATH4) 및 제5경로(PATH5)를 통해 초기화 정보들(IV3 및 IV4)을 수신할 수 있다.
SRAM들(670-1 및 670-2) 중 어느 하나는 초기화 정보들(IV3 및 IV4)을 이용하여 초기화되고, SRAM들(670-1 및 670-2) 중 어느 하나가 초기화됨과 동시에 SRAM들(130-1 및 130-2) 중 다른 어느 하나는 초기화 정보(IV1 또는 IV2)를 이용하여 제6경로(PATH6)를 통해 초기화될 수 있다.
예컨대, SRAM 컨트롤러(640)는 제4경로(PATH4) 및 제5경로(PATH5)를 통해 수신한 초기화 정보들(IV3 및 IV4)을 SRAM(670-1 또는 670-2, 예컨대 670-1)으로 전송할 수 있다. 초기화 정보들(IV3 및 IV4)을 수신한 SRAM(670-1 또는 670-2, 예컨대 670-1)은 초기화 정보들(IV3 및 IV3)을 이용하여 초기화될 수 있다.
이때, CPU(210)는 초기화 정보들(IV3 및 IV3)을 수신하지 못한 SRAM(670-1 또는 670-2, 예컨대 670-2)과 관련된 레지스터(720)로 SRAM(670-1 또는 670-2, 예컨대 670-2)의 초기화를 지시하는 지시 신호(IND2)를 전송하고, 메모리 세트(710)의 초기화 정보(IV1 또는 IV2, 예컨대 IV2)를 이용하여 SRAM(670-1 또는 670-2, 예컨대 670-2)은 SRAM(670-1 또는 670-2, 예컨대 670-1)이 초기화됨과 동시에 초기화될 수 있다.
도 15b를 참조하면, SRAM(670)은 데이터 영역(671)과 패리티 영역(672)을 포함할 수 있다.
데이터 영역(671)은 도 11c에 도시된 데이터 영역과 기능 및 성질이 동일할 수 있고, 패리티 영역(672)은 도 11c에 도시된 패리티 영역과 기능 및 성질이 동일할 수 있다.
SRAM 컨트롤러(640)는, 도 15a에서 설명한 방식과 동일한 방식으로, 제4경로(PATH4) 및 제5경로(PATH5)를 통해 초기화 정보들(IV3 및 IV4)을 수신할 수 있다.
데이터 영역(671)과 패리티 영역(672) 중 어느 하나는 초기화 정보들(IV3 및 IV4)을 이용하여 초기화되고, 데이터 영역(671)과 패리티 영역(672) 중 어느 하나가 초기화됨과 동시에 데이터 영역(671)과 패리티 영역(672) 중 다른 어느 하나는 초기화 정보(IV1 또는 IV2)를 이용하여 제6경로(PATH6)를 통해 초기화될 수 있다.
예컨대, SRAM 컨트롤러(640)는 제4경로(PATH4) 및 제5경로(PATH5)를 통해 수신한 초기화 정보들(IV3 및 IV4)을 데이터 영역(671)으로 전송할 수 있다. 데이터 영역(671)은 초기화 정보들(IV3 및 IV4)을 이용하여 초기화될 수 있다.
이때, CPU(610)는 패리티 영역(672)과 관련된 레지스터(720)로 패리티 영역(672)의 초기화를 지시하는 지시 신호(IND2)를 전송하고, 메모리 세트(710)의 초기화 정보(IV1 또는 IV2, 예컨대 IV2)를 이용하여 패리티 영역(672)은 데이터 영역(671)이 초기화됨과 동시에 초기화될 수 있다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: SSD
110: 낸드 플래시 메모리들
120: SSD 컨트롤러
130: DRAM
140: 커넥터
210: CPU
220: 플래시 메모리 컨트롤러
230: 호스트 인터페이스
240: DRAM 컨트롤러
250: 버스 매트릭스
260: 캐쉬

Claims (10)

  1. 데이터 저장 장치에 포함되고 상기 데이터 저장 장치의 적어도 하나의 DRAM(Dynamic Random Access Memory)을 초기화하는 스토리지 컨트롤러의 동작 방법에 있어서,
    상기 스토리지 컨트롤러의 프로세서에 의해, 상기 데이터 저장 장치의 상기 DRAM의 초기화를 지시하는 제1 지시 신호를 낸드 플래시 메모리를 제어하는 플래시 메모리 컨트롤러, 호스트와 통신하는 호스트 인터페이스, 및 상기 DRAM을 제어하는 메모리 컨트롤러 중 하나인 제1 메모리 초기화 장치로 전송하는 단계;
    상기 제1 메모리 초기화 장치의 레지스터에 의해, 상기 제1 지시 신호에 대응하는 제1 선택 신호를 생성하는 단계; 및
    상기 제1 메모리 초기화 장치의 메모리 세트에 의해, 상기 제1 선택 신호에 응답하여 상기 메모리 세트에 저장된 제1 초기화 값을 포함하는 제1 초기화 신호를 상기 DRAM으로 출력하여 상기 제1 초기화 신호를 기반으로 상기 DRAM을 초기화하는 단계를 포함하되,
    상기 스토리지 컨트롤러는 상기 프로세서, 상기 제1 메모리 초기화 장치, 및 상기 DRAM이 서로 통신하는 복수의 버스들을 포함하는 버스 매트릭스를 포함하고, 그리고
    상기 프로세서는 제1 대역폭을 갖는 제1 버스를 통해 상기 버스 매트릭스와 통신하고, 그리고 상기 제1 메모리 초기화 장치는 상기 DRAM을 초기화하기 위해, 상기 제1 대역폭보다 넓은, 제2 대역폭을 갖는 제2 버스를 통해 상기 버스 매트릭스와 통신하는 스토리지 컨트롤러의 동작 방법.
  2. 제 1 항에 있어서,
    상기 프로세서에 의해, 상기 제1 메모리 초기화 장치의 정상 동작을 지시하는 정상 지시 신호를 상기 제1 메모리 초기화 장치로 전송하는 단계;
    상기 레지스터에 의해, 상기 정상 동작을 지시하는 상기 정상 지시 신호에 대응하는 정상 선택 신호를 출력하는 단계; 및
    상기 제1 메모리 초기화 장치에 의해, 상기 정상 동작을 지시하는 상기 정상 지시 신호에 대응하는 상기 정상 선택 신호에 응답하여 상기 정상 동작을 수행하는 단계를 더 포함하되,
    상기 레지스터는 상기 DRAM의 상기 초기화와 관련된 정보 및 상기 정상 동작과 관련된 정보를 포함하는 스토리지 컨트롤러의 동작 방법.
  3. 제 1 항에 있어서,
    상기 DRAM은 데이터를 저장하는 데이터 영역 및 상기 데이터 영역에 저장된 상기 데이터의 에러를 검출하기 위한 에러 검출 데이터를 저장하는 패리티 영역을 포함하고, 그리고
    상기 데이터 영역 및 상기 패리티 영역은 상기 제1 초기화 신호에 의해 동시에 초기화되는 스토리지 컨트롤러의 동작 방법.
  4. 제 1 항에 있어서,
    상기 DRAM은 복수의 메모리들을 포함하고, 그리고
    상기 복수의 메모리들은 상기 제1 초기화 신호에 의해 동시에 초기화되는 스토리지 컨트롤러의 동작 방법.
  5. 제 1 항에 있어서,
    상기 데이터 저장 장치는 상기 낸드 플래시 메모리를 포함하는 SSD(Solid State Drive)이고, 상기 스토리지 컨트롤러는 SSD 컨트롤러인 스토리지 컨트롤러의 동작 방법.
  6. 데이터 저장 장치에 포함되고 상기 데이터 저장 장치의 메인 메모리를 초기화하는 스토리지 컨트롤러의 동작 방법에 있어서,
    상기 스토리지 컨트롤러의 프로세서에 의해, 상기 데이터 저장 장치의 상기 메인 메모리의 초기화를 지시하는 제1 지시 신호를 제1 메모리 초기화 장치로 전송하는 단계;
    상기 제1 메모리 초기화 장치의 레지스터에 의해, 상기 제1 지시 신호에 대응하는 제1 선택 신호를 생성하는 단계;
    상기 제1 메모리 초기화 장치의 메모리 세트에 의해, 상기 제1 선택 신호에 응답하여 상기 메인 메모리로 제1 초기화 신호를 출력하여 상기 메인 메모리를 초기화하는 단계;
    상기 스토리지 컨트롤러의 상기 프로세서에 의해, 상기 데이터 저장 장치의 상기 메인 메모리의 상기 초기화를 지시하는 제2 지시 신호를 제2 메모리 초기화 장치로 전송하는 단계;
    상기 제2 메모리 초기화 장치의 레지스터에 의해, 상기 제2 지시 신호에 대응하는 제2 선택 신호를 생성하는 단계;
    상기 제2 메모리 초기화 장치의 메모리 세트에 의해, 상기 제2 지시 신호에 대응하는 상기 제2 선택 신호에 응답하여 상기 메인 메모리로 제2 초기화 신호를 출력하여 상기 메인 메모리를 초기화하는 단계를 포함하되,
    상기 제1 및 제2 초기화 신호들은 상기 메인 메모리를 동시에 초기화하는 스토리지 컨트롤러의 동작 방법.
  7. 제 6 항에 있어서,
    상기 제1 메모리 초기화 장치는 복수의 낸드 플래시 메모리들 중 적어도 하나를 제어하는 플래시 메모리 컨트롤러 및 호스트와 통신하는 호스트 인터페이스 중 하나이고,
    상기 제2 메모리 초기화 장치는 상기 플래시 메모리 컨트롤러 및 상기 호스트 인터페이스 중 다른 하나이고,
    상기 스토리지 컨트롤러는 상기 프로세서, 상기 제1 메모리 초기화 장치, 상기 제2 메모리 초기화 장치, 및 상기 메인 메모리가 서로 통신하는 복수의 버스들을 포함하는 버스 매트릭스를 포함하고, 그리고
    상기 프로세서는 제1 대역폭을 갖는 제1 버스를 통해 상기 버스 매트릭스와 통신하고, 상기 제1 메모리 초기화 장치는 상기 메인 메모리를 초기화하기 위해 제2 대역폭을 갖는 제2 버스를 통해 상기 버스 매트릭스와 통신하고, 상기 제2 메모리 초기화 장치는 상기 메인 메모리를 초기화하기 위해 제3 대역폭을 갖는 제3 버스를 통해 상기 버스 매트릭스와 통신하고, 상기 제2 대역폭 및 상기 제3 대역폭 각각은 상기 제1 대역폭보다 넓은 스토리지 컨트롤러의 동작 방법.
  8. 제 6 항에 있어서,
    상기 스토리지 컨트롤러의 상기 프로세서에 의해, 상기 데이터 저장 장치의 상기 메인 메모리의 상기 초기화를 지시하는 제3 지시 신호를 제3 메모리 초기화 장치로 전송하는 단계;
    상기 제3 메모리 초기화 장치의 레지스터에 의해, 상기 제3 지시 신호에 대응하는 제3 선택 신호를 생성하는 단계; 및
    상기 제3 메모리 초기화 장치의 메모리 세트에 의해, 상기 제3 지시 신호에 대응하는 상기 제3 선택 신호에 응답하여 상기 메인 메모리로 제3 초기화 신호를 출력하여 상기 메인 메모리를 초기화하는 단계를 더 포함하되,
    상기 제1, 제2, 및 제3 초기화 신호들은 상기 메인 메모리를 동시에 초기화하는 스토리지 컨트롤러의 동작 방법.
  9. 제 8 항에 있어서,
    상기 제1, 제2, 및 제3 메모리 초기화 장치들은, 각각, 복수의 낸드 플래시 메모리들 중 적어도 하나를 제어하는 플래시 메모리 컨트롤러, 상기 메인 메모리를 제어하는 메모리 컨트롤러, 및 호스트와 통신하는 호스트 인터페이스인 스토리지 컨트롤러의 동작 방법.
  10. 제 6 항에 있어서,
    상기 제1 메모리 초기화 장치는 복수의 낸드 플래시 메모리들 중 적어도 하나를 제어하는 플래시 메모리 컨트롤러, 상기 메인 메모리를 제어하는 메모리 컨트롤러, 및 호스트와 통신하는 호스트 인터페이스 중 하나이고,
    상기 제2 메모리 초기화 장치는 상기 플래시 메모리 컨트롤러, 상기 메모리 컨트롤러, 및 상기 호스트 인터페이스 중 다른 하나이고, 그리고
    상기 제1 및 제2 초기화 신호들은 각각 제1 및 제2 초기화 값들을 포함하는 스토리지 컨트롤러의 동작 방법.
KR1020150166440A 2015-11-26 2015-11-26 스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법 KR102446677B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150166440A KR102446677B1 (ko) 2015-11-26 2015-11-26 스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법
US15/291,502 US10409512B2 (en) 2015-11-26 2016-10-12 Method of operating storage controller and method of operating data storage device having the storage controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150166440A KR102446677B1 (ko) 2015-11-26 2015-11-26 스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법

Publications (2)

Publication Number Publication Date
KR20170061431A KR20170061431A (ko) 2017-06-05
KR102446677B1 true KR102446677B1 (ko) 2022-09-23

Family

ID=58777637

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150166440A KR102446677B1 (ko) 2015-11-26 2015-11-26 스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법

Country Status (2)

Country Link
US (1) US10409512B2 (ko)
KR (1) KR102446677B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10572344B2 (en) * 2017-04-27 2020-02-25 Texas Instruments Incorporated Accessing error statistics from DRAM memories having integrated error correction
US10817363B2 (en) 2018-03-19 2020-10-27 Micron Technology, Inc. Health characteristics of a memory device
NL2022902B1 (en) * 2019-04-09 2020-10-20 Univ Delft Tech Integrated circuit device for loT applications
KR102242957B1 (ko) * 2019-06-03 2021-04-21 주식회사 원세미콘 고속 낸드 메모리 시스템과 고속 낸드 메모리 패키지 디바이스
US20210233585A1 (en) * 2020-01-29 2021-07-29 Micron Technology, Inc. Multichip memory package with internal channel

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100280285B1 (ko) * 1996-08-19 2001-02-01 윤종용 멀티미디어 신호에 적합한 멀티미디어 프로세서
US8037234B2 (en) 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
DE10223178B4 (de) 2002-05-24 2004-11-04 Infineon Technologies Ag Schaltungsanordnung mit einer Ablaufsteuerung, integrierter Speicher sowie Testanordnung mit einer derartigen Schaltungsanordnung
JP3892832B2 (ja) * 2003-08-11 2007-03-14 株式会社東芝 半導体記憶装置
US20080094877A1 (en) * 2006-10-20 2008-04-24 Honeywell International Inc. Faster initialization of dram memory
CN102177550B (zh) 2008-08-08 2014-03-12 惠普开发有限公司 存储器模块中独立受控的虚拟存储器设备
US20100262773A1 (en) 2009-04-08 2010-10-14 Google Inc. Data striping in a flash memory data storage device
US8595572B2 (en) 2009-04-08 2013-11-26 Google Inc. Data storage device with metadata command
KR101516580B1 (ko) 2009-04-22 2015-05-11 삼성전자주식회사 컨트롤러, 이를 포함하는 데이터 저장 장치 및 데이터 저장 시스템, 및 그 방법
KR101573791B1 (ko) 2009-06-10 2015-12-02 삼성전자주식회사 범용 직렬 버스를 이용한 데이터 전송 방법 및 그 장치
KR101241976B1 (ko) * 2011-02-17 2013-03-11 인하대학교 산학협력단 Ssd 기반 저장장치
US20140108705A1 (en) 2012-10-12 2014-04-17 Sandisk Technologies Inc. Use of High Endurance Non-Volatile Memory for Read Acceleration
US9152430B2 (en) * 2013-06-04 2015-10-06 Freescale Semiconductor, Inc. Method for low power boot for microcontroller

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
한국공개특허 제10-2008-0035980호(2008.04.24.) 1부.*
한국공개특허 제10-2010-0116396호(2010.11.01.) 1부.*
한국공개특허 제10-2012-0094782호(2012.08.27.) 1부.*
한국등록특허 제10-0280285호(2001.02.01.) 1부.*

Also Published As

Publication number Publication date
KR20170061431A (ko) 2017-06-05
US10409512B2 (en) 2019-09-10
US20170153836A1 (en) 2017-06-01

Similar Documents

Publication Publication Date Title
US9971697B2 (en) Nonvolatile memory module having DRAM used as cache, computing system having the same, and operating method thereof
KR102446677B1 (ko) 스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법
US10372339B2 (en) Extensible memory hub
US9652324B2 (en) Solid state disk controller apparatus
US10496281B2 (en) Data storage device, data processing system and method of operation
JP5918359B2 (ja) メモリシステムコントローラを含む装置および関連する方法
JP6163532B2 (ja) メモリシステムコントローラを含む装置
US8990462B2 (en) Storage device, computing system including the same and data transferring method thereof
US20140095786A1 (en) Semiconductor device and operating method thereof
US10042783B2 (en) Host device, computing system including the same and a plurality of devices, interface link layer configuration method thereof
KR102229024B1 (ko) 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템
KR20190019209A (ko) Ddr 메모리 에러 복구
KR20160006709A (ko) 고성능 및 저비용 플래시 변환 계층을 위한 시스템 및 방법
US10540303B2 (en) Module based data transfer
US20110225353A1 (en) Redundant array of independent disks (raid) write cache sub-assembly
EP4296841A1 (en) Method and system for solid state drive (ssd)-based redundant array of independent disks (raid)
KR102450556B1 (ko) 불휘발성 메모리 장치들을 제어할 수 있는 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
CN114840451A (zh) 存储装置、存储系统和操作存储装置的方法
US20230214329A1 (en) Storage system and storage device, and operating method thereof
KR102345539B1 (ko) 내부 프로세스를 수행하는 메모리 장치 및 그 동작방법
KR20230046362A (ko) 메모리 모듈의 동작 방법, 메모리 컨트롤러의 동작 방법, 및 메모리 시스템의 동작 방법
US20200142633A1 (en) Drive assisted storage system
KR102321478B1 (ko) 리텐션에 의한 데이터 손실을 방지하는 데이터 처리 시스템의 작동 방법
CN116504289A (zh) 存储器件
TW201621680A (zh) 儲存裝置控制器及計算機系統

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