KR102406669B1 - 메모리 컨트롤러 및 이를 포함하는 스토리지 장치 - Google Patents
메모리 컨트롤러 및 이를 포함하는 스토리지 장치 Download PDFInfo
- Publication number
- KR102406669B1 KR102406669B1 KR1020170148321A KR20170148321A KR102406669B1 KR 102406669 B1 KR102406669 B1 KR 102406669B1 KR 1020170148321 A KR1020170148321 A KR 1020170148321A KR 20170148321 A KR20170148321 A KR 20170148321A KR 102406669 B1 KR102406669 B1 KR 102406669B1
- Authority
- KR
- South Korea
- Prior art keywords
- storage block
- information
- memory controller
- strobe signal
- controller
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 155
- 238000000034 method Methods 0.000 claims description 6
- 240000007320 Pinus strobus Species 0.000 description 45
- 238000010586 diagram Methods 0.000 description 21
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 19
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 7
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 5
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 3
- 101100113626 Arabidopsis thaliana CKL2 gene Proteins 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
- G11C7/222—Clock generating, synchronizing or distributing circuits within memory device
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/06—Clock generators producing several clock signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/08—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1066—Output synchronization
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1093—Input synchronization
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03L—AUTOMATIC CONTROL, STARTING, SYNCHRONISATION OR STABILISATION OF GENERATORS OF ELECTRONIC OSCILLATIONS OR PULSES
- H03L7/00—Automatic control of frequency or phase; Synchronisation
- H03L7/06—Automatic control of frequency or phase; Synchronisation using a reference signal applied to a frequency- or phase-locked loop
- H03L7/08—Details of the phase-locked loop
- H03L7/081—Details of the phase-locked loop provided with an additional controlled phase shifter
- H03L7/0812—Details of the phase-locked loop provided with an additional controlled phase shifter and where no voltage or current controlled oscillator is used
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Dram (AREA)
Abstract
본 개시의 일 실시예에 따른 메모리 컨트롤러는, 제1 저장 블록 및 제2 저장 블록의 동작을 제어하는 메모리 컨트롤러에 있어서, 동일한 채널을 통해 제1 저장 블록 및 제2 저장 블록과 데이터 신호 및 데이터 스트로브 신호를 송수신하는 메모리 인터페이스, 및 제1 저장 블록의 제1 동작 속도 및 제2 저장 블록의 제2 동작 속도에 대한 정보가 저장되는 서브 컨트롤러를 포함하고, 서브 컨트롤러는, 데이터 신호가 시작되는 시점에 기초하여, 데이터 스트로브 신호가 시작되는 시점을 조절하는 스트로브 신호 조절 시간에 대한 정보가 저장된 딜레이 룩업 테이블을 포함하고, 제1 저장 블록으로 송신되는 데이터 스트로브 신호 및 제2 저장 블록으로 송신되는 데이터 스트로브 신호는 각각 순차적으로 상기 메모리 컨트롤러에서 출력될 수 있다.
Description
본 개시는 메모리 컨트롤러 및 이를 포함하는 스토리지 장치에 관한 것으로, 더욱 상세하게는 서브 컨트롤러를 포함하는 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 스토리지 장치에 관한 것이다.
서로 다른 동작 속도를 가지는 메모리 또는 저장 장치를 제어하기 위해서는 각각에 대응되는 채널들이 필요하다. 메모리 컨트롤러는 각 채널들에 대응되는 채널 인터페이스들을 포함하고, 채널 인터페이스는 기준 클럭 신호를 변조하고 변조된 클럭 신호에 동기되어 연결되는 채널을 통해 신호를 송수한다.
지연 동기 루프 회로(Delay Locked Loop circuit, 이하 DLL 회로라고 함)는 입력되는 기준 클럭 신호의 위상과 지연 라인을 통해 출력되는 피드백 신호의 위상들이 일치되도록 지연 라인을 제어한다. 마스터 DLL 회로는 락 상태(lock state)에 대응하는 고정 값을 검출하고, 고정 값을 슬레이브 DLL 회로에 제공할 수 있다.
본 개시의 기술적 사상이 해결하고자 하는 과제는, 칩 사이즈가 감소되고, 서로 다른 동작 속도를 갖는 복수의 메모리 또는 스토리지 장치를 제어할 수 있는 메모리 컨트롤러 및 이를 포함하는 스토리지 장치를 제공하는 데에 있다.
본 개시의 일 실시예에 따른 메모리 컨트롤러는, 제1 저장 블록 및 제2 저장 블록의 동작을 제어하는 메모리 컨트롤러에 있어서, 동일한 채널을 통해 제1 저장 블록 및 제2 저장 블록과 데이터 신호 및 데이터 스트로브 신호를 송수신하는 메모리 인터페이스, 및 제1 저장 블록의 제1 동작 속도 및 제2 저장 블록의 제2 동작 속도에 대한 정보가 저장되는 서브 컨트롤러를 포함하고, 서브 컨트롤러는, 데이터 신호가 시작되는 시점에 기초하여, 데이터 스트로브 신호가 시작되는 시점을 조절하는 스트로브 신호 조절 시간에 대한 정보가 저장된 딜레이 룩업 테이블을 포함하고, 제1 저장 블록으로 송신되는 데이터 스트로브 신호 및 제2 저장 블록으로 송신되는 데이터 스트로브 신호는 각각 순차적으로 상기 메모리 컨트롤러에서 출력될 수 있다.
본 개시의 일 실시예에 따른 스토리지 장치는, 서로 다른 동작 속도를 갖는 제1 저장 블록 및 제2 저장 블록, 제1 저장 블록 및 제2 저장 블록의 동작을 제어하는 메모리 컨트롤러, 및 메모리 컨트롤러, 제1 저장 블록 및 제2 저장 블록을 서로 연결하는 채널을 포함하고, 메모리 컨트롤러는, 채널을 통해 상기 제1 저장 블록 및 제2 저장 블록과 데이터 신호 및 데이터 스트로브 신호를 송수신하는 메모리 인터페이스, 및 제1 저장 블록의 제1 동작 속도 및 제2 저장 블록의 제2 동작 속도에 대한 정보가 저장되는 서브 컨트롤러를 포함하고, 서브 컨트롤러에 저장된 상기 제1 동작 속도에 대한 정보 및 제2 동작 속도에 대한 정보는 순차적으로 출력되어, 상기 메모리 인터페이스로 전송될 수 있다.
본 개시의 일 실시예에 따른 스토리지 장치는, 서로 다른 동작 속도를 갖는 제1 저장 블록 및 제2 저장 블록, 제1 저장 블록 및 제2 저장 블록의 동작을 제어하는 메모리 컨트롤러, 및 메모리 컨트롤러, 제1 저장 블록 및 제2 저장 블록을 서로 연결하는 채널을 포함하고, 메모리 컨트롤러는, 제1 저장 블록의 동작의 우선 순위 및 제2 저장 블록의 동작의 우선 순위에 기초하여, 제1 저장 블록의 동작 및 제2 저장 블록의 동작에 대한 정보가 저장되는 메모리, 및 서로 다른 주파수를 갖는 복수의 클럭 신호들을 생성하는 멀티 클럭 생성기를 포함하는 서브 컨트롤러를 포함할 수 있다.
본 개시에 따른 메모리 컨트롤러 및 이를 포함하는 스토리지 장치는 서브 컨트롤러를 포함하므로, 하나의 메모리 물리 계층, 즉, 하나의 마스터 DLL 회로 및 하나의 슬레이브 DLL 회로만을 구비하여도, 순차적으로 서로 다른 동작 속도를 갖는 복수의 저장 블록들과 데이터를 서로 송수신할 수 있다. 따라서, 복수의 마스터 DLL 회로 또는 복수의 슬레이브 DLL 회로를 포함하는 메모리 컨트롤러와 비교하여, 칩 사이즈를 감소시킬 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 전자 시스템을 나타내는 도면이다.
도 2는 본 발명의 예시적 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 도면이다.
도 4는 본 개시의 예시적 실시예에 따른 메모리 컨트롤러에 포함된 딜레이 룩업 테이블을 나타내는 도면이다.
도 5a 및 도 5b는 본 개시의 예시적 실시예에 따른 딜레이 타임을 설명하기 위한 타이밍도이다.
도 6는 본 개시의 예시적 실시예에 따른 메모리 컨트롤러에 포함된 FIFO를 나타내는 도면이다.
도 7은 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 도면이다.
8a 및 도 8b는 도 7의 서브 컨트롤러의 동작을 설명하기 위한 도면이다.
도 9는 도 7의 멀티 클럭 생성기의 예시적 실시예를 설명하기 위한 블록도이다.
도 10은 도 7의 멀티 클럭 생성기의 예시적 실시예를 설명하기 위한 블록도이다.
도 2는 본 발명의 예시적 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다.
도 3은 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 도면이다.
도 4는 본 개시의 예시적 실시예에 따른 메모리 컨트롤러에 포함된 딜레이 룩업 테이블을 나타내는 도면이다.
도 5a 및 도 5b는 본 개시의 예시적 실시예에 따른 딜레이 타임을 설명하기 위한 타이밍도이다.
도 6는 본 개시의 예시적 실시예에 따른 메모리 컨트롤러에 포함된 FIFO를 나타내는 도면이다.
도 7은 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 도면이다.
8a 및 도 8b는 도 7의 서브 컨트롤러의 동작을 설명하기 위한 도면이다.
도 9는 도 7의 멀티 클럭 생성기의 예시적 실시예를 설명하기 위한 블록도이다.
도 10은 도 7의 멀티 클럭 생성기의 예시적 실시예를 설명하기 위한 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시예에 따른 전자 시스템을 나타내는 도면이다.
도 1을 참조하면, 본 개시의 예시적 실시예에 따른 전자 시스템(1)은 스토리지 장치(10) 및 호스트(20)를 포함할 수 있다. 스토리지 장치(10)는 솔리드 스테이트 드라이브(Solid State Drive, SSD)일 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 스토리지 장치(10)는 임베디드 멀티미디어 카드(embedded multimedia card, eMMC), 유니버셜 플래시 스토리지(universal flash storage, UFS), 또는 CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick) 등 다양한 종류의 장치로 구현될 수 있다.
스토리지 장치(10)는 다양한 인터페이스를 통하여 호스트(20)와 통신할 수 있다. 호스트(20)는 스토리지 장치(10)로 커맨드(CMD) 및 데이터(DATA)를 전송하고, 스토리지 장치(10)의 데이터 처리 동작, 예를 들어, 데이터 독출 동작 또는 데이터 기록 동작 등을 요청할 수 있다. 다만, 이에 한정되는 것은 아니며, 데이터 독출 동작 또는 데이터 기록 동작이 아닌 동작에 대해서도 호스트(20)가 요청할 수 있다.
일 실시예에서, 호스트(20)는 CPU, 프로세서, 마이크로프로세서 또는 어플리케이션 프로세서(Application Processor, AP) 등에 해당할 수 있다. 일 실시예에 따라, 호스트(20)는 시스템 온 칩(System-On-a-Chip, SoC)으로 구현될 수 있다.
스토리지 장치(10)와 호스트(20) 사이의 통신을 위한 인터페이스의 일 예로서, ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi media card), eMMC(embedded multi media card), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식이 적용될 수 있다.
스토리지 장치(10)는 서로 데이터 레이트가 상이한 복수의 저장 블록들(storage blocks)을 포함하는 멀티 데이터 레이트 메모리 장치(300)를 포함할 수 있다. 각각의 저장 블록은 하나이상의 칩들을 포함할 수 있다.
일 실시예에서, 멀티 데이터 레이트 메모리 장치(300)는 플래시 메모리를 포함할 수 있고, 또는, ReRAM(resistive RAM), PRAM(phase change RAM), MRAM(magnetic RAM)과 같은 저항형 메모리를 포함할 있다. 또한, 멀티 데이터 레이트 메모리 장치(300)는 프로세서 및 RAM을 포함하는 집적 회로, 예를 들어, 스토리지 장치 또는 PIM(Processing in Memory)를 포함할 수 있다.
일 실시예에서, 멀티 데이터 레이트 메모리 장치(300)에 포함된 플래시 메모리는 3 차원(3D) 메모리 어레이일 수 있다. 3D 메모리 어레이는 실리콘 기판 위에 배치되는 활성 영역과, 메모리 셀들의 동작과 관련된 회로로서 상기 기판 상에 또는 상기 기판 내에 형성된 회로를 가지는 메모리 셀 어레이들의 적어도 하나의 물리적 레벨에 모놀리식으로 형성된다. 상기 용어 "모놀리식"은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미한다. 본 개시의 기술적 사상에 의한 일 실시예에서, 상기 3D 메모리 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 버티칼 NAND 스트링들을 포함한다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다.
미국 특허공개공보 제7,679,133호, 동 제8,553,466호, 동 제8,654,587호, 동 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 3D 메모리 어레이가 복수 레벨로 구성되고 워드 라인들 및/또는 비트 라인들이 레벨들간에 공유되어 있는 3D 메모리 어레이에 대한 적절한 구성들을 상술하는 것들로서, 본 명세서에 인용 형식으로 결합된다.
스토리지 장치(10)는 멀티 데이터 레이트 메모리 장치(300)에 대해 동작을 제어하는 메모리 컨트롤러(100)를 포함할 수 있다.
또한, 스토리지 장치(10)는 데이터 기록 및 독출 동작시 데이터를 임시적으로 저장하는 버퍼를 더 포함할 수 있다. 일 예로서, 버퍼는 DRAM 또는 SRAM 등의 휘발성 메모리로 구현될 수 있다.
메모리 컨트롤러(100)는 하나의 채널(CH)을 통해 멀티 데이터 레이트 메모리 장치(300)에 대한 동작을 제어할 수 있다. 일 예로서, 메모리 컨트롤러(100)는 채널(CH)을 통해 멀티 데이터 레이트 메모리 장치(300)에 연결되어 데이터를 기록하거나 독출할 수 있다. 메모리 컨트롤러(100)는 하나의 채널(CH)을 통해서 멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들을 순차적으로 제어할 수 있다.
본 개시의 일 실시예에 따른 메모리 컨트롤러(100)는 복수의 저장 블록들에 대한 정보가 포함된 룩업 테이블 및 스케쥴러를 포함할 수 있다. 따라서, 메모리 컨트롤러(100)는 복수의 저장 블록들에 대한 정보에 기초하여, 멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들을 순차적으로 제어할 수 있다. 메모리 컨트롤러(100)에 대한 설명은 도 2 및 도 3에서 후술하겠다.
도 2는 본 발명의 예시적 실시예에 따른 메모리 컨트롤러의 일 구현 예를 나타내는 블록도이다. 메모리 컨트롤러(100)는 SSD나 메모리 카드 등의 스토리지 장치 내에 구비되는 구성일 수 있다.
도 2를 참조하면, 메모리 컨트롤러(100)는 서브 컨트롤러(110), 메모리 인터페이스(120), 호스트 인터페이스(130), 프로세서(140), RAM(150) 및 버퍼(160)를 포함할 수 있다. 도 2에는 하나의 프로세서(140)가 도시되었으나, 메모리 컨트롤러(100)는 다수 개의 프로세서들을 포함할 수 있다.
서브 컨트롤러(110)는 멀티 데이터 레이트 메모리 장치(예를 들어, 도 1의 300)에 대한 정보를 포함할 수 있다. 일 실시예에서, 서브 컨트롤러(110)는 멀티 데이터 레이트 메모리 장치에 포함된 저장 블록들 각각의 동작 속도에 대한 정보를 포함할 수 있고, 저장 블록들 각각으로부터 송수신되는 데이터 신호와 데이터 스트로브 신호를 동기화시키기 위한 스트로브 신호 조절 시간에 대한 정보가 저장될 수 있다. 또한, 서브 컨트롤러(110)는 스케쥴러를 포함하여, 메모리 컨트롤러(100)와 복수의 저장 블록들이 서로 데이터를 송수신하는 순서에 대한 정보를 포함할 수 있다.
메모리 컨트롤러(100)는 호스트 인터페이스(130)를 통해 호스트(예를 들어, 도 1의 20)와 통신할 수 있다. 또한, 메모리 컨트롤러(100)는 메모리 인터페이스(120)를 통해 멀티 데이터 레이트 메모리 장치와 통신하고, 일 예로서 데이터는 메모리 인터페이스(120)를 통해 메모리 컨트롤러(100)와 데이터 레이트 메모리 장치 사이에서 송수신될 수 있다.
메모리 인터페이스(120)는 일 실시예에서, 메모리 물리 계층으로 구현될 수 있다. 따라서, 메모리 인터페이스(120)는 마스터 DLL 회로(Delay Locked Loop circuit) 및 슬레이브 DLL 회로를 포함할 수 있다. 마스터 DLL 회로 및 슬레이브 DLL 회로의 동작에 대한 설명은, 도 3의 설명에서 후술하겠다.
호스트로부터의 기록 데이터는 버퍼(160)에 일시 저장된 후 데이터 레이트 메모리 장치로 제공될 수 있으며, 데이터 레이트 메모리 장치로부터의 독출 데이터는 버퍼(160)에 일시 저장된 후 호스트(HOST)로 제공될 수 있다. 버퍼(160)는 캐시, ROM, PROM, EPROM, EEPROM, PRAM, 플래시 메모리, SRAM, 또는 DRAM을 포함할 수 있다.
RAM(150)은 동작 메모리(Working memory)로서 이용될 수 있고, RAM(150)은 각종 메모리로 구현될 수 있다. 예를 들어, RAM(150)은 캐시, DRAM, SRAM, PRAM, 플래시 메모리 장치들 중 적어도 하나로 구현될 수 있다.
도 3은 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 도면이다.
도 3을 참조하면, 스토리지 장치(10)는 메모리 컨트롤러(100), 채널(200) 및 멀티 데이터 레이트 메모리 장치(300)를 포함할 수 있다. 메모리 컨트롤러(100)는 서브 컨트롤러(110) 및 메모리 물리 계층(120)을 포함할 수 있다.
멀티 데이터 레이트 메모리 장치(300)는 제1 저장 블록(300_1) 및 제2 저장 블록(300_2)을 포함할 수 있다. 제1 저장 블록(300_1) 및 제2 저장 블록(300_2)은 서로 다른 동작 속도를 가질 수 있다. 본 도면에는 2개의 저장 블록들(300_1, 300_2)이 하나의 채널(200)을 통해 메모리 컨트롤러(100)와 연결되는 것으로 도시되었으나, 이에 한정되는 것은 아니며, 3개 이상의 저장 블록들이 하나의 채널(200)을 통해 메모리 컨트롤러(100)와 연결될 수도 있다. 또한, 스토리지 장치(10)는 동일한 동작 속도를 갖는 복수의 저장 블록들(예를 들어, 제3 저장 블록)을 더 포함할 수도 있다. 예를 들어, 제1 저장 블록(300_1)은 복수의 플래시 메모리들일 수 있고, 메모리 컨트롤러(100)는 채널(200)을 통해 복수의 플래시 메모리들과 연결될 수 있다.
서브 컨트롤러(110)는 딜레이 룩업 테이블(111) 및 스케쥴러(113)를 포함할 수 있다. 딜레이 룩업 테이블(111)은 채널(200)에 연결되는 복수의 저장 블록들(300_1, 300_2)로 수신하는 데이터 스트로브 신호의스트로브 신호 조절 시간에 대한 정보가 저장될 수 있다. 스트로브 조절 시간은, 데이터 신호 및 데이터 스트로브 신호를 동기화시키기 위해, 데이터 신호가 시작되는 시점에 기초하여 데이터 스트로브 신호가 시작되는 시점을 조절하는 시간을 의미할 수 있다. 예를 들어, 딜레이 룩업 테이블(111)에는 제1 저장 블록(300_1)에 대응되는 제1 스트로브 신호 조절 시간 및 제2 저장 블록(300_2)에 대응되는 제2 스트로브 조절 시간이 저장될 수 있다.
멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들(300_1, 300_2)은 각각 서로 다른 동작 속도를 가질 수 있다. 데이터 스트로브 신호의 라이징 엣지(rising edge) 또는 폴링 엣지(falling edge)에서 데이터가 입출력되어야 하므로, 멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들(300_1, 300_2)은 각각 서로 다른 스트로브 조절 시간을 가질 수 있다. 딜레이 룩업 테이블(111)에 대한 상세한 설명은 도 4에서 후술하겠다.
스케쥴러(113)에는 멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들(300_1, 300_2)의 동작 속도에 대한 정보가 저장될 수 있다. 일 실시예에서, 스케쥴러(113)는 FIFO(First in First out)로 구현될 수 있고, 다른 실시예에서, 스케쥴러(113)는 연결 리스트(linked list)로 구현될 수 있다.
스케쥴러(113)가 FIFO인 경우, 스케쥴러(113)는 멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들(300_1, 300_2)의 동작 속도에 대한 정보가 순차적으로 저장될 수 있다. 예를 들어, 제1 저장 블록(300_1)이 제2 저장 블록(300_2)보다 먼저 메모리 컨트롤러(100)와 데이터를 서로 송수신할 수 있도록, 제1 저장 블록(300_1)의 동작 속도에 대한 정보가 우선적으로 스케쥴러(113)에 저장될 수 있다. 따라서, 서브 컨트롤러(110)는 스케쥴러(113)에 저장된 순서에 기초하여, 순차적으로 메모리 물리 계층(120)으로 제어 신호(CTRL)를 제공할 수 있다.
스케쥴러(113)가 연결 리스트인 경우에는, 제1 저장 블록(300_1)의 동작의 우선 순위 및 제2 저장 블록(300_2)의 동작의 우선 순위에 기초하여, 제1 저장 블록(300_1) 및 제2 저장 블록(300_2)에 대한 정보가 저장될 수 있다. 예를 들어, FIFO와 달리 제1 저장 블록(300_1)의 동작 속도에 대한 정보 및 제2 저장 블록(300_2)의 동작 속도에 대한 정보가 저장된 순서와 관계 없이, 상기 우선 순위에 기초하여, 제1 저장 블록(300_1)의 동작 속도에 대한 정보에 출력된 후, 제2 저장 블록(300_2)의 동작 속도에 대한 정보가 출력될 수 있다.
제어 신호(CTRL)는 딜레이 룩업 테이블(111)에 저장된 스트로브 신호 조절 시간에 대한 정보를 포함할 수 있으며, 이외에도 메모리 물리 계층(120)을 제어하기 위한 다양한 정보, 예를 들어, 제1 저장 블록(300_1) 및 제2 저장 블록(300_2) 각각의 동작 속도들에 대한 정보를 포함할 수 있다. 스케쥴러(113)에서 제1 저장 블록(300_1) 및 제2 저장 블록(300_2)에 대한 정보가 순차적으로 출력될 때, 제1 저장 블록(300_1) 및 제2 저장 블록(300_2)에 대한 정보에 각각 대응되는 제1 스트로브 신호 조절 시간 및 제2 스트로브 신호 조절 시간 이 딜레이 룩업 테이블(111)로부터 순차적으로 출력될 수 있고, 제1 저장 블록(300_1)에 대응되는 제1 제어 신호(CTRL1) 및 제2 저장 블록(300_2)에 대응되는 제2 제어 신호(CTRL2)가 서브 컨트롤러(110)로부터 순차적으로 출력될 수 있다. 스케쥴러(113)가 FIFO인 경우에 대한 상세한 설명은 도 6에서 후술하겠다.
메모리 물리 계층(120)은 마스터 DLL 회로(121) 및 슬레이브 DLL 회로(123)를 포함할 수 있다. 마스터 DLL 회로(121)는 메모리 컨트롤러(100) 내부의 클럭 신호 생성부로부터 기준 클럭 신호(CLK)를 수신하여, 기준 클럭 신호(CLK)에 대응되는 지연 셀의 개수를 고정 값(Lock Value, LCval)으로 출력할 수 있다.
일 실시예에서, 기준 클럭 신호(CLK)는 메모리 컨트롤러(100)의 동작 클럭 신호일 수 있고, 또는, 제1 저장 블록(300_1)의 동작 클럭 신호일 수도 있다. 이 때, 제1 저장 블록(300_1)의 동작 클럭 신호는 제2 저장 블록(300_2)의 동작 클럭 신호보다 빠를 수 있고, 즉, 제1 저장 블록(300_1)의 동작 속도는 제2 저장 블록(300_2)의 동작 속도보다 빠를 수 있다.
일 실시예에서, 마스터 DLL 회로(121) 또는 슬레이브 DLL 회로(123)는 주파수를 변조하기 위해, 각각, 병렬로 연결되는 한 쌍의 인버터로 구현되는 다수의 지연 셀을 포함할 수 있다. 다수의 지연 셀은 서로 직렬로 연결될 수 있다.
슬레이브 DLL 회로(123)는 마스터 DLL 회로(121)로부터 고정 값(LCval)을 수신할 수 있다. 슬레이브 DLL 회로(123)는 기준 클럭 신호(CLK)의 주파수에 대응되는 개수의 지연 셀을 이용하여, 제1 저장 블록(300_1) 및 제2 저장 블록(300_2)에 대응되는 동작 주파수의 데이터 스트로브 신호를 순차적으로 채널(200)로 출력할 수 있다. 예를 들어, 200MHz를 나타내는 고정 값(LCval)이 50인 경우, 즉 200MHz의 기준 클럭 신호(CLK)의 생성에 사용되는 지연 셀의 개수가 50개인 경우, 슬레이브 DLL 회로(123)는, 100개의 지연 셀을 통해 100MHz의 데이터 스트로브 신호(DQS)를 출력할 수 있다.
이 때, 슬레이브 DLL 회로(123)는 서브 컨트롤러(110)로부터 수신된 제어 신호(CTRL)에 포함된 제1 저장 블록(300_1) 및 제2 저장 블록(300_2)에 대응되는 스트로브 신호 조절 시간을 기초로, 스트로브 신호를 출력할 수 있다.
종래에는 서로 다른 동작 속도를 갖는 메모리 또는 저장 장치와 같은 저장 블록들과 데이터를 송수신하기 위해서는 각각의 저장 블록들에 대응되는 채널들을 구비하고, 슬레이브 DLL 회로 또는, 마스터 DLL 회로를 각각의 저장 블록들에 대응되도록 복수로 구비하였다.
반면, 본 개시의 일 실시예에 따른 메모리 컨트롤러(100) 및 이를 포함하는 스토리지 장치(10)는 서브 컨트롤러(110)를 포함하므로, 하나의 메모리 물리 계층(120), 즉, 하나의 마스터 DLL 회로(121) 및 하나의 슬레이브 DLL 회로(123)만을 구비하여도, 순차적으로 서로 다른 동작 속도를 갖는 복수의 저장 블록들(300_1, 300_2)과 데이터를 서로 송수신할 수 있으므로, 칩 사이즈를 감소시킬 수 있다. 또한, 하나의 채널(200)에 복수의 저장 블록들(300_1, 300_2)이 연결될 수 있으므로, 새로운 저장 블록이 메모리 컨트롤러(100)에 연결되고자 하는 경우에는, 서브 컨트롤러(110)의 딜레이 룩업 테이블(111) 및 스케쥴러(113)에 새로운 저장 블록에 대한 정보만을 저장하면 되므로, 새로이 메모리 컨트롤러를 제조할 필요가 없다.
도 4는 본 개시의 예시적 실시예에 따른 메모리 컨트롤러에 포함된 딜레이 룩업 테이블을 나타내는 도면이다.
도 3 및 도 4를 참조하면, 딜레이 룩업 테이블(111)은 채널(200)에 연결되는 멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들로 송수신하는 데이터 스트로브 신호의 스트로브 신호 조절 시간이 저장될 수 있다. 예를 들어, 스트로브 신호 조절 시간은 딜레이 타임일 수 있다. 딜레이 타임은 데이터 신호가 시작되는 시점으로부터, 기준 클럭 신호의 클럭 주기의 1/4 값 이후에, 데이터 스트로브 신호의 엣지가 시작되는 시점까지 추가적으로 딜레이된 시간을 의미할 수 있다. 따라서, 딜레이 타임은 데이터 신호가 시작되는 시점으로부터, 데이터 스트로브 신호의 엣지가 시작되는 시점까지의 시간에서, 기준 클럭 신호의 클럭 주기의 1/4 값을 제외한 시간일 수 있다.
멀티 데이터 레이트 메모리 장치(300)는 제1 내지 제4 저장 블록 중 적어도 일부를 포함할 수 있고, 제1 내지 제4 저장 블록 각각으로 송수신되는 데이터 스트로브 신호는 각각 제1 딜레이 타임(TDLY1), 제2 딜레이 타임(TDLY2), 제3 딜레이 타임(TDLY3) 및 제4 딜레이 타임(TDLY4)에 대응될 수 있다. 본 도면에서는, 4개의 딜레이 타임에 대해서만 도시되어 있으나, 이에 한정되는 것은 아니며, 채널(200)에 연결되는 멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들(300_1, 300_2)의 수에 따라 달라질 수 있다.
일 실시예에서, 제1 내지 제4 저장 블록은 각각 플래시 메모리, 저항형 메모리(PRAM, MRAM, FRAM 등), 스토리지 장치 및 PIM에 대응될 수 있다. 다만 제1 내지 제4 저장 블록이 서로 다른 종류의 저장 블록인 경우에 한정되는 것은 아니며, 동일한 종류의 저장블록이라도, 동작 속도가 다른 플래시 메모리 들이 메모리 컨트롤러(100)에 연결되는 경우에는, 각각 따로 딜레이 룩업 테이블(111)에 저장될 수 있다.
일 실시예에서, 플래시 메모리, 저항형 메모리, 스토리지 장치 및 PIM은 순차적으로 동작 속도가 느릴 수 있고, 따라서, 제1 딜레이 타임(TDLY1), 제2 딜레이 타임(TDLY2), 제3 딜레이 타임(TDLY3) 및 제4 딜레이 타임(TDLY4)은 순차적으로 증가할 수 있다. 예를 들어, 가장 느린 동작 속도를 갖는 저장 블록은 딥 러닝 방식을 수행하기 위한 FPGA(field programmable gate array)를 포함하는 PIM(Processing in Memory)일 수 있다.
다만, 이는 예시적인 것으로 설명을 위한 것이며, 멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들의 동작 속도는 상기 순서에 한정되지 않는다. 상기 순서는 복수의 저장 블록들의 특성에 따라 달라질 수 있다.
딜레이 룩업 테이블(111)은 채널(200)에 연결되는 복수의 저장 블록들(300)에 대응되는 딜레이 타임이 저장되는 것으로 설명하였으나, 이에 한정되는 것은 아니며, 연결되지 않은 적어도 하나의 저장 블록에 대응되는 딜레이 타임이 더 저장될 수도 있다.
도 5a 및 도 5b는 본 개시의 예시적 실시예에 따른 딜레이 타임을 설명하기 위한 타이밍도로서, 도 5a는 제1 저장 블록에 대응되는 딜레이 타임을 설명하기 위한 타이밍도이며, 도 5b는 제2 저장 블록에 대응되는 딜레이 타임을 설명하기 위한 것이다.
도 4 및 도 5a를 참조하면, 일 실시예에서, 메모리 컨트롤러(예를 들어, 도 3의 100) 내부의 클럭 신호 생성기는, 채널(예를 들어, 도 3의 200)을 통해 연결되는 복수의 저장 블록들 중 가장 빠른 동작 속도를 갖는 저장 블록의 동작 속도를 기준으로 기준 클럭 신호(CLK)를 생성할 수 있다.
예를 들어, 제1 저장 블록이 나머지 다른 저장 블록들(예를 들어, 제2 내지 제4 저장 블록)보다 동작 속도가 빠른 경우에는 제1 저장 블록의 동작 속도를 기준으로 기준 클럭 신호(CLK)를 생성하고, 제1 저장 블록의 데이터 스트로브 신호(DQS1)의 주파수는 기준 클럭 신호(CLK)의 주파수와 동일하게 생성될 수 있다. 제1 딜레이 타임(TDLY1)은 0의 값을 가질 수 있고, 슬레이브 DLL(예를 들어, 도 3의 123)은 데이터 신호(DQ1)가 발생되는 시점을 기준으로, 기준 클럭 신호(CLK)의 클럭 주기(TPD)의 1/4만큼만 지연시켜 데이터 스트로브 신호(DQS1)를 출력할 수 있다.
도 4 및 도 5b를 참조하면, 제2 저장 블록은 제1 저장 블록에 비해 동작 속도가 느릴 수 있다. 따라서, 제2 저장 블록에 대한 데이터 스트로브 신호(DQS2)의 주파수는 기준 클럭 신호(CLK)의 주파수보다 낮을 수 있다. 따라서, 제2 딜레이 타임(TDLY2)은 양수의 값을 가질 수 있고, 슬레이브 DLL은 데이터 신호(DQ2)가 발생되는 시점을 기준으로, 기준 클럭 신호(CLK)의 클럭 주기(TPD)의 1/4 값에 제2 딜레이 타임(TDLY2)을 더한 값만큼 지연시켜 데이터 스트로브 신호(DQS2)를 출력할 수 있다.
본 개시의 일 실시예에 따른 메모리 컨트롤러(100) 및 이를 포함하는 스토리지 장치(10)는 기준 클럭 신호(CLK)의 클럭 주기의 1/4 값을 기준으로 하여, 딜레이 룩업 테이블(111)에 저장된 복수의 저장 블록들의 딜레이 타임들을 이용해서 데이터 스트로브 신호를 생성할 수 있다. 따라서, 미리 저장된 딜레이 타임들을 이용하여 데이터 스트로브 신호를 생성하므로, 메모리 물리 계층(120)의 부담이 감소되고, 복수의 저장 블록들 각각에 대응되도록 별도의 마스터 DLL 회로(121) 또는 슬레이브 DLL 회로(123)를 구비할 필요가 없다.
도 5a 및 도 5b에서는 제1 저장 블록 및 제2 저장 블록에 대해서만 설명하였으나, 제3 저장 블록 및 제4 저장 블록에서도 제2 저장 블록에 대한 설명(도 5b)이 동일하게 적용될 수 있다.
도 6는 본 개시의 예시적 실시예에 따른 메모리 컨트롤러에 포함된 FIFO를 나타내는 도면이다.
도 3 및 도 6을 참조하면, 스케쥴러(113)는 FIFO(113_1)로 구현될 수 있다. FIFO(113_1)에는 멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들(300_1, 300_2)의 동작 속도에 대한 정보가 순차적으로 저장될 수 있고, 선입 선출(First-In First-Out) 방식으로 동작하도록 구성될 수 있다. 예를 들어, 제1 저장 블록부터 제4 저장 블록까지 순차적으로 메모리 컨트롤러(100)와 데이터를 서로 송수신할 수 있도록, 제1 저장 블록부터 제4 저장 블록에 대한 정보가 FIFO(113_1)에순차적으로 저장될 수 있다. 이 때, 제1 내지 제4 저장 블록에 대한 정보가 FIFO(113_1)에에 입출력되는 순서는 빠른 동작 속도를 가진 순일 수 있다. 즉, 제1 저장 블록에서 제4 저장 블록으로 갈수록 동작 속도가 느려질 수 있다. 예를 들어, 제1 내지 제4 저장 블록은 각각 플래시 메모리, 저항성 메모리, 스토리지 장치 및 PIM일 수 있다.
일 실시예에서, FIFO(113_1)는 메모리로 구현될 수 있고, 또는 FIFO(113_1)는 복수의 레지스터들로 구현될 수 있다.
프로세서(Processor, 예를 들어, 도 2의 140)는 호스트(예를 들어, 도 1의 20)의 커맨드(CMD)에 기초하여, FIFO(113_1)에 저장된 제1 저장 블록 내지 제4 저장 블록에 대한 정보의 입출력을 관리할 수 있다. 이 때, 프로세서는 호스트로부터 제1 저장 블록의 동작 내지 제4 저장 블록의 동작에 대한 커맨드(CMD)가 수신되는 경우에는, 함께 수신되는 제1 저장 블록의 동작 내지 제4 저장 블록의 동작 각각의 우선 순위에 기초하여, 제1 저장 블록 내지 제4 저장 블록에 대한 정보를 순차적으로 FIFO(113_1)에 저장할 수 있다. 따라서, 도 6에 도시된 바에 따르면, 제1 저장 블록의 동작의 우선 순위가 가장 높고, 제4 저장 블록의 동작의 우선 순위가 가장 낮다.
예를 들어, 프로세서는 제1 저장 블록에 대한 정보의 입력이 발생하는 경우, FIFO(113_1)의 쓰기 포인터가 가리키는 주소에 제1 저장 블록에 대한 정보를 입력하여 저장하고, 쓰기 포인터를 증가시킬 수 있다. 프로세서는 FIFO(113_1)의 읽기 포인터가 가리키는 주소에 저장된 저장 블록에 대한 정보를 출력하고, 읽기 포인터를 증가시킬 수 있다. 따라서, 프로세서의 제어에 의해서, 메모리 컨트롤러(100)와 복수의 저장 블록들(300_1, 300_2)이 서로 데이터를 송수신하는 순서가 달라질 수 있으며, 도 6에 도시된 바와 같이, 제1 내지 제4 저장 블록들에 대한 정보가 순차적으로 입출력되는 것에 한정되는 것은 아니다.
서브 컨트롤러(110)는 FIFO(113_1)에 저장된 순서에 기초하여, 순차적으로 메모리 물리 계층(120)으로 제어 신호(CTRL)를 제공할 수 있다. FIFO(113_1)에는 메모리 물리 계층(120)을 제어하기 위한 다양한 정보, 예를 들어, 복수의 저장 블록들 각각의 동작 속도들이 순차적으로 저장될 수 있다.
FIFO(113_1)에 멀티 데이터 레이트 메모리 장치(300)에 포함된 복수의 저장 블록들(300_1, 300_2)의 동작 속도에 대한 정보가 저장된 순서에 기초하여, 본 개시의 일 실시예에 따른 메모리 컨트롤러(100)는, 서로 다른 동작 속도를 갖는 복수의 저장 블록들(300)과 데이터를 서로 송수신할 수 있다. 따라서, 하나의 채널(200)에 복수의 저장 블록들(300)이 연결될 수 있으므로, 새로운 저장 블록이 메모리 컨트롤러(100)에 연결되고자 하는 경우에는, 서브 컨트롤러(110)의 딜레이 룩업 테이블(111) 및 FIFO(113_1)에 새로운 저장 블록에 대한 정보만을 저장하면 되고, 새로이 메모리 컨트롤러를 제조할 필요가 없다.
도 6에서는 스케쥴러(113)가 FIFO(113_1)인 경우에 대해서만 도시하고 있으나, 스케쥴러(113)는 연결 리스트로 구현될 수도 있다. 스케쥴러(113)가 연결 리스트인 경우에는 제1 저장 블록 내지 제4 저장 블록의 동작의 우선 순위에 기초하여, 제1 저장 블록 내지 제4 저장 블록에 대한 정보가 출력되는 출력 순서 정보가 저장될 수 있다. 따라서, 상기 출력 순서에 기초하여, 제1 저장 블록 내지 제4 저장 블록에 대한 정보가 스케쥴러(113)로부터 출력될 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 스토리지 장치를 나타내는 도면이다. 도 3에서와 동일한 부재 번호에 대해서는 중복된 설명을 생략하겠다. 도 8a 및 도 8b는 도 7의 서브 컨트롤러(110a)의 동작을 설명하기 위한 도면이다.
도 7을 참조하면, 스토리지 장치(10a)는 메모리 컨트롤러(100a), 채널(200) 및 멀티 데이터 레이트 메모리 장치(300)를 포함할 수 있다. 메모리 컨트롤러(100a)는 서브 컨트롤러(110a) 및 메모리 물리 계층(120a)을 포함할 수 있다.
서브 컨트롤러(110a)는 스케쥴러(113a) 및 멀티 클럭 생성기(115)를 포함할 수 있다. 스케쥴러(113a)는 메모리 컨트롤러(100a)와 복수의 저장 블록들(300_1, 300_2)의 동작 속도에 대한 정보가 저장될 수 있다.
예를 들어, 스케쥴러(113a)는 FIFO일 수 있고, 제1 저장 블록(300_1)의 동작 속도에 대한 정보가 저장되고, 제2 저장 블록(300_2)에 대한 정보가 순차적으로 저장될 수 있다. 따라서, 서브 컨트롤러(110a)는 스케쥴러(113a)에 저장된 순서에 기초하여, 순차적으로 메모리 물리 계층(120a)으로 제어 신호(CTRLa)를 제공할 수 있다. 다만, 본 개시는 스케쥴러(113a)가 FIFO로 구현되는 것에 한정되는 것은 아니며, 스케쥴러(113a)는 연결 리스트로 구현될 수도 있다.
멀티 클럭 생성기(115)는 다양한 주파수를 갖는 복수의 클럭 신호들을 생성할 수 있다. 멀티 클럭 생성기(115)에서 생성되는 복수의 클럭 신호들은, 제1 저장 블록(300_1) 및 제2 저장 블록(300_2)의 동작 속도에 각각 대응되는 주파수를 갖는 제1 클럭 신호 및 제2 클럭 신호를 포함할 수 있다. 멀티 클럭 생성기(115)의 구성에 대해서는 도 9 및 도 10에서 후술하겠다.
제어 신호(CTRLa)는 메모리 물리 계층(120a)을 제어하기 위한 다양한 정보를 포함할 수 있다. 제어 신호(CTRLa)는 제1 저장 블록(300_1) 및 제2 저장 블록(300_2) 각각의 동작 속도 및 멀티 클럭 생성기(115)에서 생성되는 복수의 클럭 신호들을 포함할 수 있다.
도 8a 및 도 8b를 참조하면, 일 실시예에서, 서브 컨트롤러(110a)는 선택기(117)(예를 들어, 다중화 장치(MUX))를 포함할 수 있고, 선택기(117)는 멀티 클럭 생성기(115)에서 생성된 서로 다른 주파수를 가진 클럭 신호들 중에서, 스케쥴러(113a)에서 출력된 복수의 저장 블록들(300)의 동작 속도에 대한 정보에 대응되는 하나의 클럭 신호를 선택하고 출력할 수 있다.
예를 들어, 도 8a에서 도시된 바와 같이, 스케쥴러(113a)로부터 제1 저장 블록(300_1)의 동작 속도에 대한 정보(DATA RATE1)가 출력되면, 선택기(117)는 멀티 클럭 생성기(115)가 생성한 복수의 클럭 신호들 중에서 제1 저장 블록(300_1)의 동작 속도에 대응되는 주파수를 가지는 제1 클럭 신호(CLK1)를 선택하여 출력할 수 있다. 이 때, 제어 신호(CTRLa)는 제1 저장 블록(300_1)의 동작 속도에 대한 정보(DATA RATE1) 및 제1 클럭 신호(CLK1)를 포함할 수 있다.
이에 반해, 도 8b에서 도시된 바와 같이, 스케쥴러(113a)로부터 제2 저장 블록(300_2)의 동작 속도에 대한 정보(DATA RATE2)가 출력되면, 선택기(117)는 멀티 클럭 생성기(115)가 생성한 복수의 클럭 신호들 중에서 제2 저장 블록(300_2)의 동작 속도에 대응되는 주파수를 가지는 제2 클럭 신호(CLK2)를 선택하여 출력할 수 있다. 이 때, 제어 신호(CTRLa)는 제2 저장 블록(300_2)의 동작 속도에 대한 정보(DATA RATE2) 및 제2 클럭 신호(CLK2)를 포함할 수 있다.
다만, 서브 컨트롤러(110a)의 구성 및 동작은 도 8a 및 도 8b에 한정되는 것은 아니며, 서브 컨트롤러(110a)는 선택기(117)를 포함하지 않을 수 있다. 다른 실시예에서는, 제어 신호(CTRLa)는 멀티 클럭 생성기(115)에서 생성된 복수의 클럭 신호들을 포함할 수 있고, 제어 신호(CTRLa)는 선택기를 포함하는 메모리 물리 계층(120a)으로 전송될 수 있다. 메모리 물리 계층(120a)에 포함된 선택기는, 스케쥴러(113a)에서 순차적으로 출력되는 복수의 저장 블록들(300_1, 300_2)의 동작 속도에 대한 정보에 대응되는 클럭 신호를 순차적으로 선택하고 출력할 수도 있다.
다시 도 7을 참조하면, 메모리 물리 계층(120a)은 마스터 DLL 회로(121a) 및 슬레이브 DLL 회로(123a)를 포함할 수 있다. 도 3의 메모리 물리 계층(120)과 비교할 때, 메모리 물리 계층(120)은 동일한 클럭 신호를 수신하는데 반하여, 메모리 물리 계층(120a)은 다양한 주파수를 갖는 클럭 신호들을 서브 컨트롤러(110a)로부터 수신할 수 있다.
마스터 DLL 회로(121a)는 순차적으로 수신되는 클럭 신호(예를 들어, 제1 클럭 신호(CLK1) 및 제2 클럭 신호(CKL2)) 각각에 대응되는 지연 셀의 개수를 고정 값(LCval_a1, LCval_a2)으로 순차적으로 출력할 수 있다. 제1 고정 값(LCval_a1)은 제1 클럭 신호(CLK1)와 제1 클럭 신호(CLK1)를 지연한 클럭의 위상 차이를 검출하여, 위상 차이를 0으로 만드는 지연 셀의 개수를 의미할 수 있다. 제2 고정 값(LCval_a2)은 제2 클럭 신호(CLK2)와 제2 클럭 신호(CLK2)를 지연한 클럭의 위상 차이를 검출하여, 위상 차이를 0으로 만드는 지연 셀의 개수를 의미할 수 있다. 제1 클럭 신호(CLK1) 및 제2 클럭 신호(CKL2)의 주파수가 서로 상이하므로, 고정 값(LCval_a1, LCval_a2)도 서로 상이할 수 있다.
슬레이브 DLL 회로(123)는 제1 고정 값(LCval_a1) 및 제2 고정 값(LCval_a2)을 순차적으로 수신하여, 제1 저장 블록(300_1) 및 제2 저장 블록(300_2)에 대응되는 동작 주파수의 제1 데이터 스트로브 신호 및 제2 데이터 스트로브 신호를 순차적으로 채널(200)로 출력할 수 있다.
본 개시의 일 실시예에 따른 메모리 컨트롤러(100a) 및 이를 포함하는 스토리지 장치(10a)는 서브 컨트롤러(110a)를 포함하므로, 하나의 메모리 물리 계층(120a), 즉, 하나의 마스터 DLL 회로(121) 및 하나의 슬레이브 DLL 회로(123)를 구비하여도, 순차적으로 서로 다른 동작 속도를 갖는 복수의 저장 블록들(300_1, 300_2)과 데이터를 서로 송수신할 수 있으므로, 칩 사이즈를 감소시킬 수 있다. 또한, 하나의 채널(200)에 복수의 저장 블록들(300_1, 300_2)이 연결될 수 있으므로, 새로운 저장 블록이 메모리 컨트롤러(100a)에 연결되고자 하는 경우에는, 새로운 채널 및 새로운 메모리 물리 계층을 추가 구성할 필요가 없어, 메모리 컨트롤러 제조에 유리하다.
도 9는 도 7의 멀티 클럭 생성기의 예시적 실시예를 설명하기 위한 블록도이다.
도 7 및 도 9를 참조하면, 멀티 클럭 생성기(115)는 클럭 생성기(115_1) 및 복수의 클럭 변조기들(115_2, 115_3)을 포함할 수 있다. 클럭 생성기(115_1)는마스터 클럭 신호(MCLK)를 생성할 수 있다.
복수의 클럭 변조기들(115_2, 115_3)의 수는 채널(200)을 통해 메모리 컨트롤러(100a)와 연결되는 복수의 저장 블록들(300_1, 300_2)의 수에 기초하여 결정될 수 있다. 일 실시예에서, 멀티 클럭 생성기(115)는 서로 다른 동작 속도를 갖는 저장 블록들의 수만큼 클럭 변조기들(115_2, 115_3)을 포함할 수 있다.
따라서, 본 개시는 도 8에 도시된 바와 같이 2개의 클럭 변조기들(115_2, 115_3)을 포함하는 것에 한정되는 것은 아니며, 3개 이상의 클럭 변조기들을 포함할 수도 있다.
일 실시예에서, 제1 클럭 변조기(115_2)는 마스터 클럭 신호(MCLK)를 수신하여, 제1 슬레이브 클럭 신호(CLKs1)로 변조할 수 있다. 제1 슬레이브 클럭 신호(CLKs1)는 도 7의 제1 클럭 신호(CLK1)를 의미할 수 있고, 제1 슬레이브 클럭 신호(CLKs1)는 제1 저장 블록(300_1)의 동작 속도에 대응될 수 있다. 제1 슬레이브 클럭 신호(CLKs1)는 제1 저장 블록(300_1)과 송수신하는 제1 데이터 스트로브 신호를 생성하는데 사용될 수 있다.
제2 클럭 변조기(115_3)는 마스터 클럭 신호(MCLK)를 수신하여, 제2 슬레이브 클럭 신호(CLKs2)로 변조할 수 있다. 제2 슬레이브 클럭 신호(CLKs2)는 도 7의 제2 클럭 신호(CLK2)를 의미할 수 있고, 제2 슬레이브 클럭 신호(CLKs2)는 제2 저장 블록(300_2)의 동작 속도에 대응될 수 있다. 제2 슬레이브 클럭 신호(CLKs2)는 제2 저장 블록(300_2)과 송수신하는 제2 데이터 스트로브 신호를 생성하는데 사용될 수 있다. 제1 클럭 변조기(115_2) 및 제2 클럭 변조기(115_3)는 마스터 클럭(MCLK)의 주파수를 변조하여 제1 슬레이브 클럭 신호(CLKs1) 및 제2 슬레이브 클럭 신호(CLKs2)를 생성할 수 있다.
다른 실시예에서는, 멀티 클럭 생성기(115)의 제1 클럭 변조기(115_2)가주파수 변조 동작을 수행하지 않고, 제1 슬레이브 클럭 신호(CLKs1)와 마스터 클럭 신호(MCLK)가 동일한 주파수를 가질 수 있다. 따라서, 마스터 클럭 신호(MCLK)가 제1 저장 블록(300_1)과 송수신하는 데이터 스트로브 신호를 생성하는데 사용될 수도 있다. 즉, 클럭 생성기(115_1)는 제1 저장 블록(300_1)의 동작 속도에 기초하여 마스터 클럭 신호(MCLK)를 생성할 수 있다. 예를 들어, 클럭 생성기(115_1)는 복수의 저장 블록들(300_1, 300_2) 중에서 가장 고속으로 동작하는 저장 블록의 동작 속도를 기초로, 마스터 클럭 신호(MCLK)를 생성할 수 있다.
도 10은 도 7의 멀티 클럭 생성기의 예시적 실시예를 설명하기 위한 블록도이다. 도 10에서 도 9와 동일한 부재 번호의 경우에는 중복되는 설명을 생략하겠다.
도 7 및 도 10을 참조하면, 멀티 클럭 생성기(115a)는 클럭 생성기(115_1) 및 복수의 클럭 변조기들(115_2, 115_3)을 포함할 수 있다. 클럭 생성기(115_1)는 마스터 클럭 신호(MCLK)를 생성할 수 있다.
일 실시예에서, 제1 클럭 변조기(115_2)는 마스터 클럭 신호(MCLK)를 수신하여, 제1 슬레이브 클럭 신호(CLKs1)로 변조할 수 있다. 제1 슬레이브 클럭 신호(CLKs1)는 제1 저장 블록(300_1)의 동작 속도에 대응될 수 있다. 제1 슬레이브 클럭 신호(CLKs1)는 제1 저장 블록(300_1)과 송수신하는 제1 데이터 스트로브 신호를 생성하는데 사용될 수 있다.
제2 클럭 변조기(115_3)는 제1 클럭 변조기(115_2)로부터 제1 슬레이브 클럭 신호(CLKs1)를 수신하여, 제2 슬레이브 클럭 신호(CLKs2)로 변조할 수 있다. 제2 슬레이브 클럭 신호(CLKs2)는 제2 저장 블록(300_2)의 동작 속도에 대응될 수 있다. 제2 슬레이브 클럭 신호(CLKs2)는 제2 저장 블록(300_2)과 송수신하는 제2 데이터 스트로브 신호를 생성하는데 사용될 수 있다. 제1 클럭 변조기(115_2)는 마스터 클럭(MCLK)의 주파수를 변조하여 제1 슬레이브 클럭 신호(CLKs1)를 생성하고, 제2 클럭 변조기(115_3)는 제1 슬레이브 클럭 신호(CLKs1)의 주파수를 변조하여, 제2 슬레이브 클럭 신호(CLKs2)를 생성할 수 있다.
다른 실시예에서는, 멀티 클럭 생성기(115a)는 제3 클럭 변조기를 더 포함할 수 있고, 제3 클럭 변조기는 제2 슬레이브 클럭 신호(CLKs2)를 제2 클럭 변조기(115_3)으로부터 수신하고, 제2 슬레이브 클럭 신호(CLKs2)의 주파수를 변조하여, 제3 슬레이브 클럭 신호를 생성할 수 있다. 이 때, 멀티 클럭 생성기(115a)는 제1 클럭 변조기(115_2)를 별도로 포함하지 않을 수 있고, 마스터 클럭 신호(MCLK)를 제1 저장 블록(300_1)과 송수신하는 데이터 스트로브 신호를 생성하는데 사용될 수도 있다. 즉, 클럭 생성기(115_1)는 제1 저장 블록(300_1)의 동작 속도에 기초하여 마스터 클럭 신호(MCLK)를 생성할 수 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.
100, 100a: 메모리 컨트롤러
110, 100a: 서브 컨트롤러
111: 딜레이 룩업 테이블
113, 113a: 스케쥴러
115, 115a: 멀티 클럭 생성기
120, 120a: 메모리 물리 계층
121, 121a: 마스터 DLL 회로
123, 123a: 슬레이브 DLL 회로
110, 100a: 서브 컨트롤러
111: 딜레이 룩업 테이블
113, 113a: 스케쥴러
115, 115a: 멀티 클럭 생성기
120, 120a: 메모리 물리 계층
121, 121a: 마스터 DLL 회로
123, 123a: 슬레이브 DLL 회로
Claims (10)
- 제1 저장 블록(storage block) 및 제2 저장 블록의 동작을 제어하는 메모리 컨트롤러에 있어서,
동일한 채널을 통해 상기 제1 저장 블록 및 상기 제2 저장 블록과 데이터 신호 및 데이터 스트로브 신호를 송수신하는 메모리 인터페이스; 및
상기 제1 저장 블록의 제1 동작 속도 및 상기 제2 저장 블록의 제2 동작 속도에 대한 정보가 저장되는 서브 컨트롤러;를 포함하고,
상기 서브 컨트롤러는, 상기 데이터 신호가 시작되는 시점에 기초하여, 상기 데이터 스트로브 신호가 시작되는 시점을 조절하는 스트로브 신호 조절 시간에 대한 정보가 저장된 딜레이 룩업 테이블을 포함하고,
상기 제1 저장 블록으로 송신되는 제1 데이터 스트로브 신호 및 상기 제2 저장 블록으로 송신되는 제2 데이터 스트로브 신호는 각각 순차적으로 상기 메모리 컨트롤러에서 출력되고,
상기 제1 데이터 스트로브 신호의 주파수와 상기 제2 데이터 스트로브 신호의 주파수는 서로 상이한 것을 특징으로 하는 메모리 컨트롤러. - 제1 항에 있어서,
상기 메모리 컨트롤러는 기준 클럭 신호를 생성하는 클럭 생성기를 더 포함하고,
상기 스트로브 신호 조절 시간은 상기 데이터 신호가 시작되는 시점으로부터, 상기 데이터 스트로브 신호의 엣지가 시작되는 시점까지의 시간에서, 상기 기준 클럭 신호의 클럭 주기의 1/4 값을 제외한 값인 것을 특징으로 하는 메모리 컨트롤러. - 제1 항에 있어서,
상기 메모리 컨트롤러는 기준 클럭 신호를 생성하는 클럭 생성기를 더 포함하고,
상기 기준 클럭 신호의 주파수는, 상기 제1 저장 블록의 상기 제1 데이터 스트로브 신호의 주파수와 동일한 것을 특징으로 하는 메모리 컨트롤러. - 제1 항에 있어서,
상기 서브 컨트롤러는, FIFO(First-in First-out)를 포함하고,
상기 메모리 컨트롤러는, 상기 제1 동작 속도에 대한 정보 및 상기 제2 동작 속도에 대한 정보가 상기 FIFO에 저장된 순서에 기초하여, 순차적으로 상기 제1 저장 블록의 동작 및 상기 제2 저장 블록의 동작을 제어하는 것을 특징으로 하는 메모리 컨트롤러. - 서로 다른 동작 속도를 갖는 제1 저장 블록 및 제2 저장 블록;
상기 제1 저장 블록 및 상기 제2 저장 블록의 동작을 제어하는 메모리 컨트롤러; 및
상기 메모리 컨트롤러, 상기 제1 저장 블록 및 상기 제2 저장 블록을 서로 연결하는 채널;을 포함하고,
상기 메모리 컨트롤러는,
상기 채널을 통해 상기 제1 저장 블록으로 제1 데이터 신호 및 제1 데이터 스트로브 신호를 송신하고, 상기 제2 저장 블록으로 제2 데이터 신호 및 제2 데이터 스트로브 신호를 송신하는 메모리 인터페이스; 및
상기 제1 저장 블록의 제1 동작 속도에 대한 정보 및 상기 제2 저장 블록의 제2 동작 속도에 대한 정보가 저장되는 서브 컨트롤러;를 포함하고,
상기 서브 컨트롤러에 저장된 상기 제1 동작 속도에 대한 정보 및 상기 제2 동작 속도에 대한 정보는 순차적으로 출력되어, 상기 메모리 인터페이스로 전송되고,
상기 제1 데이터 스트로브 신호의 주파수 및 상기 제2 데이터 스트로브 신호의 주파수는 서로 상이한 것을 특징으로 하는 스토리지 장치. - 제5 항에 있어서,
상기 서브 컨트롤러는, 상기 제1 동작 속도에 대한 정보 및 상기 제2 동작 속도에 대한 정보가 저장되는 FIFO를 포함하고,
상기 메모리 컨트롤러는, 상기 제1 동작 속도에 대한 정보 및 상기 제2 동작 속도에 대한 정보가 상기 FIFO에 저장된 순서에 기초하여, 순차적으로 상기 제1 저장 블록의 동작 및 상기 제2 저장 블록의 동작을 제어하는 것을 특징으로 하는 스토리지 장치. - 제5 항에 있어서,
상기 메모리 컨트롤러는, 상기 서브 컨트롤러에 저장된 상기 제1 저장 블록 및 상기 제2 저장 블록에 대한 정보의 입출력을 제어하는 프로세서를 더 포함하고,
상기 프로세서는, 외부로부터 수신된 상기 제1 저장 블록의 동작에 대한 커맨드, 상기 제2 저장 블록의 동작에 대한 커맨드, 상기 제1 저장 블록의 동작의 우선 순위 및 상기 제2 저장 블록의 동작의 우선 순위를 수신하며,
상기 프로세서는, 상기 제1 저장 블록의 동작의 우선 순위 및 상기 제2 저장 블록의 동작의 우선 순위를 기초로 하여, 상기 서브 컨트롤러에 상기 제1 동작 속도에 대한 정보 및 상기 제2 동작 속도에 대한 정보를 저장하는 것을 특징으로 하는 스토리지 장치. - 제5 항에 있어서,
상기 서브 컨트롤러는, 상기 제1 데이터 스트로브 신호의 딜레이 타임에 대한 정보가 저장된 딜레이 룩업 테이블을 더 포함하고,
상기 딜레이 타임은, 상기 제1 데이터 스트로브 신호 및 상기 제1 데이터 신호를 동기화시키는 딜레이 타임인 것을 특징으로 하는 스토리지 장치. - 서로 다른 동작 속도를 갖는 제1 저장 블록 및 제2 저장 블록;
상기 제1 저장 블록 및 상기 제2 저장 블록의 동작을 제어하는 메모리 컨트롤러; 및
상기 메모리 컨트롤러, 상기 제1 저장 블록 및 상기 제2 저장 블록을 서로 연결하는 채널;을 포함하고,
상기 메모리 컨트롤러는,
상기 제1 저장 블록의 동작의 우선 순위 및 상기 제2 저장 블록의 동작의 우선 순위에 기초하여, 상기 제1 저장 블록의 동작 및 상기 제2 저장 블록의 동작에 대한 정보가 저장되는 메모리, 및 서로 다른 주파수를 갖는 복수의 클럭 신호들을 생성하는 멀티 클럭 생성기를 포함하는 서브 컨트롤러를 포함하고,
상기 메모리 컨트롤러는, 상기 채널을 통해 순차적으로 제1 데이터 스트로브 신호를 상기 제1 저장 블록으로 제공하고 제2 데이터 스트로브 신호를 상기 제2 저장블록으로 제공하고,
상기 제1 데이터 스트로브 신호의 주파수는 상기 제2 데이터 스트로브 신호의 주파수와 상이한 것을 특징으로 하는 스토리지 장치. - 제9 항에 있어서,
상기 서브 컨트롤러는 상기 복수의 클럭 신호들이 입력되는 선택기를 더 포함하고,
상기 선택기는 상기 서브 컨트롤러의 메모리에서 출력되는 상기 제1 저장 블록의 동작에 대한 정보 및 상기 제2 저장 블록의 동작에 대한 정보를 기초로, 상기 복수의 클럭 신호들 중 하나의 클럭 신호를 선택하고,
상기 메모리 컨트롤러는 하나의 마스터 DLL 회로 및 하나의 슬레이브 DLL 회로를 더 포함하고,
상기 마스터 DLL 회로 및 상기 슬레이브 DLL 회로는 상기 선택된 클럭 신호를 수신하여, 상기 제1 저장 블록 및 상기 제2 저장 블록 중 상기 선택된 클럭 신호에 대응되는 저장 블록에 대한 신호를 생성하는 것을 특징으로 하는 스토리지 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170148321A KR102406669B1 (ko) | 2017-11-08 | 2017-11-08 | 메모리 컨트롤러 및 이를 포함하는 스토리지 장치 |
US16/140,066 US10559336B2 (en) | 2017-11-08 | 2018-09-24 | Storage device including multi data rate memory device and memory controller |
CN201811176706.8A CN109753458B (zh) | 2017-11-08 | 2018-10-10 | 包括多数据速率存储器设备的存储设备以及存储器控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170148321A KR102406669B1 (ko) | 2017-11-08 | 2017-11-08 | 메모리 컨트롤러 및 이를 포함하는 스토리지 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190052549A KR20190052549A (ko) | 2019-05-16 |
KR102406669B1 true KR102406669B1 (ko) | 2022-06-08 |
Family
ID=66328804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170148321A KR102406669B1 (ko) | 2017-11-08 | 2017-11-08 | 메모리 컨트롤러 및 이를 포함하는 스토리지 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10559336B2 (ko) |
KR (1) | KR102406669B1 (ko) |
CN (1) | CN109753458B (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112667561B (zh) * | 2020-12-29 | 2024-05-31 | 成都旋极历通信息技术有限公司 | 一种在fpga中实现ufs阵列控制器的方法 |
US11334293B1 (en) * | 2021-01-28 | 2022-05-17 | EMC IP Holding Company LLC | Facilitating the implementation of cluster counters on lock value blocks in distributed file systems |
US20220293025A1 (en) * | 2021-03-10 | 2022-09-15 | Samsung Electronics Co., Ltd. | Electronic device and method of operating the same |
CN115599715A (zh) * | 2021-04-27 | 2023-01-13 | 长江存储科技有限责任公司(Cn) | 存储器写入的训练方法和系统 |
KR20220165130A (ko) * | 2021-06-07 | 2022-12-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090010083A1 (en) | 2007-01-30 | 2009-01-08 | Atmel Corporation | Clock circuitry for ddr-sdram memory controller |
US20130100750A1 (en) | 2010-06-24 | 2013-04-25 | Taiyo Yuden Co., Ltd. | Semiconductor device |
US20150348605A1 (en) | 2014-05-30 | 2015-12-03 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and storage device having the same |
US20160087618A1 (en) | 2014-09-18 | 2016-03-24 | Canon Kabushiki Kaisha | Semiconductor integrated circuit, apparatus with semiconductor integrated circuit, and clock control method in semiconductor integrated circuit |
US20160299525A1 (en) | 2015-04-07 | 2016-10-13 | Young-Jin Cho | Memory system with multiple channel interfaces and method of operating same |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8397013B1 (en) | 2006-10-05 | 2013-03-12 | Google Inc. | Hybrid memory module |
JP2007310549A (ja) | 2006-05-17 | 2007-11-29 | Sony Corp | メモリ制御装置 |
US8166316B2 (en) | 2008-06-27 | 2012-04-24 | Oracle America, Inc. | Single interface access to multiple bandwidth and power memory zones |
US8966208B2 (en) * | 2010-02-25 | 2015-02-24 | Conversant Ip Management Inc. | Semiconductor memory device with plural memory die and controller die |
WO2012036751A2 (en) | 2010-09-17 | 2012-03-22 | Aplus Flash Technology, Inc. | Different types of memory integrated in one chip by using a novel protocol |
US20120155167A1 (en) * | 2010-12-21 | 2012-06-21 | Kabushiki Kaisha Toshiba | Non-volatile storage device, information processing system and write control method of non-volatile storage device |
US9317429B2 (en) | 2011-09-30 | 2016-04-19 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels |
KR102147228B1 (ko) * | 2014-01-23 | 2020-08-24 | 삼성전자주식회사 | 타겟 모듈의 라이트 레벨링을 제어하는 라이트 레벨링 제어 회로 및 그에 따른 라이트 레벨링 제어방법 |
US10268382B2 (en) | 2015-06-18 | 2019-04-23 | Mediatek Inc. | Processor memory architecture |
KR102550343B1 (ko) * | 2016-07-27 | 2023-07-03 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 장치 및 그것의 동작 방법 |
-
2017
- 2017-11-08 KR KR1020170148321A patent/KR102406669B1/ko active IP Right Grant
-
2018
- 2018-09-24 US US16/140,066 patent/US10559336B2/en active Active
- 2018-10-10 CN CN201811176706.8A patent/CN109753458B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090010083A1 (en) | 2007-01-30 | 2009-01-08 | Atmel Corporation | Clock circuitry for ddr-sdram memory controller |
US20130100750A1 (en) | 2010-06-24 | 2013-04-25 | Taiyo Yuden Co., Ltd. | Semiconductor device |
US20150348605A1 (en) | 2014-05-30 | 2015-12-03 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and storage device having the same |
US20160087618A1 (en) | 2014-09-18 | 2016-03-24 | Canon Kabushiki Kaisha | Semiconductor integrated circuit, apparatus with semiconductor integrated circuit, and clock control method in semiconductor integrated circuit |
US20160299525A1 (en) | 2015-04-07 | 2016-10-13 | Young-Jin Cho | Memory system with multiple channel interfaces and method of operating same |
Also Published As
Publication number | Publication date |
---|---|
CN109753458B (zh) | 2023-12-19 |
KR20190052549A (ko) | 2019-05-16 |
US10559336B2 (en) | 2020-02-11 |
CN109753458A (zh) | 2019-05-14 |
US20190139588A1 (en) | 2019-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102406669B1 (ko) | 메모리 컨트롤러 및 이를 포함하는 스토리지 장치 | |
US10366022B2 (en) | Data training method of storage device | |
US11625063B2 (en) | Memory system with multiple channel interfaces and method of operating same | |
US9754650B2 (en) | Memory device and system supporting command bus training, and operating method thereof | |
US10496332B2 (en) | Data path training and timing signal compensation for non-volatile memory device interface | |
CN111090598B (zh) | 用于组合多个存储信道的系统和方法 | |
JP6322774B2 (ja) | 遅延補償 | |
US9436630B2 (en) | Using dual phys to support multiple PCIe link widths | |
KR102138110B1 (ko) | 플래시 메모리를 기반으로 하는 저장 장치 및 그것의 동작 방법 | |
US10545888B2 (en) | Data inversion circuit | |
EP2472409A1 (en) | Input-output module, and method for extending a memory interface for input-output operations | |
US11113222B2 (en) | NAND switch | |
KR20210041357A (ko) | 인터페이스 회로를 포함하는 메모리 장치 및 이의 동작 방법 | |
US20220222011A1 (en) | Processor using host memory buffer and storage system including the processor | |
KR20170096798A (ko) | 클럭 생성 회로, 이를 이용하는 인터페이스 회로 및 반도체 시스템 | |
US9569389B2 (en) | Semiconductor system for tuning skew of semiconductor chip | |
KR102697455B1 (ko) | 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US20230305706A1 (en) | Memory device, operation method of a memory device, and operation method of a memory controller | |
TWI688864B (zh) | 儲存設備及儲存方法 | |
KR102547950B1 (ko) | 호스트 메모리 버퍼를 이용하는 프로세서 및 이를 포함하는 스토리지 시스템 | |
CN106815175A (zh) | 数据传输设备 | |
US11461176B2 (en) | Memory device and memory system | |
US20220358061A1 (en) | Unmatched architecture compensation via digital component delay | |
US20230266896A1 (en) | Memory system for tailoring data, host system for controlling the memory system, and operation method of the memory system | |
EP3982244B1 (en) | Storage controller, storage system and operating methods thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |