KR20220093983A - 데이터 전송률을 조정하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 - Google Patents
데이터 전송률을 조정하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 Download PDFInfo
- Publication number
- KR20220093983A KR20220093983A KR1020200185209A KR20200185209A KR20220093983A KR 20220093983 A KR20220093983 A KR 20220093983A KR 1020200185209 A KR1020200185209 A KR 1020200185209A KR 20200185209 A KR20200185209 A KR 20200185209A KR 20220093983 A KR20220093983 A KR 20220093983A
- Authority
- KR
- South Korea
- Prior art keywords
- host
- data
- data rate
- storage device
- ufs
- Prior art date
Links
- 230000004044 response Effects 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000012508 change request Methods 0.000 claims description 52
- 238000012546 transfer Methods 0.000 claims description 51
- 238000011017 operating method Methods 0.000 claims 1
- 230000001360 synchronised effect Effects 0.000 claims 1
- 230000008859 change Effects 0.000 abstract description 75
- 239000010410 layer Substances 0.000 description 76
- 229910052751 metal Inorganic materials 0.000 description 68
- 239000002184 metal Substances 0.000 description 68
- 230000005540 biological transmission Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 24
- 239000000758 substrate Substances 0.000 description 23
- 230000002093 peripheral effect Effects 0.000 description 20
- 150000002739 metals Chemical class 0.000 description 13
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 239000010949 copper Substances 0.000 description 6
- 101100449814 Arabidopsis thaliana GTL1 gene Proteins 0.000 description 4
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 4
- 229910052802 copper Inorganic materials 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 229910052782 aluminium Inorganic materials 0.000 description 3
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 239000011229 interlayer Substances 0.000 description 3
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 3
- 229910052721 tungsten Inorganic materials 0.000 description 3
- 239000010937 tungsten Substances 0.000 description 3
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 2
- 101100058961 Arabidopsis thaliana CALS2 gene Proteins 0.000 description 2
- 101100058964 Arabidopsis thaliana CALS5 gene Proteins 0.000 description 2
- 102100031885 General transcription and DNA repair factor IIH helicase subunit XPB Human genes 0.000 description 2
- 101000920748 Homo sapiens General transcription and DNA repair factor IIH helicase subunit XPB Proteins 0.000 description 2
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 2
- 101100287040 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ARG82 gene Proteins 0.000 description 2
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 101150064834 ssl1 gene Proteins 0.000 description 2
- 101150062870 ssl3 gene Proteins 0.000 description 2
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000945 filler Substances 0.000 description 1
- 230000005283 ground state Effects 0.000 description 1
- 239000011810 insulating material Substances 0.000 description 1
- 150000002736 metal compounds Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229940044442 onfi Drugs 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- -1 polysilicon Chemical class 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- 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/1069—I/O lines read out arrangements
-
- 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
- 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
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/409—Mechanical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- 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/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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/1096—Write circuits, e.g. I/O line write drivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0008—Synchronisation information channels, e.g. clock distribution lines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Communication Control (AREA)
- Power Sources (AREA)
Abstract
본 개시의 기술적 사상에 따른 스토리지 장치의 동작 방법은, 호스트로부터 데이터 전송률의 변경 요청을 포함하는 제1 비트 시퀀스를 입력 신호 핀을 통해 제1 데이터 전송률에 따라 수신하는 단계, 변경 요청에 대한 응답을 포함하는 제2 비트 시퀀스를 출력 신호 핀을 통해 상기 제1 데이터 전송률에 따라 호스트에 전송하는 단계 및 제2 비트 시퀀스의 종료를 나타내는 종료 비트의 출력 여부에 따라 데이터 전송률을 제2 데이터 전송률로 변경하는 단계를 포함한다.
Description
본 개시의 기술적 사상은 스토리지 장치에 관한 것으로서, 자세하게는 데이터 전송률을 조정하는 스토리지 장치 및 이를 포함하는 스토리지 시스템에 관한 것이다.
스토리지 시스템은 호스트와 스토리지 장치로 구성된다. 호스트와 스토리지 장치는 UFS(universal flash storage), SATA(serial ATA), SCSI(small computer small interface), SAS(serial attached SCSI), eMMC(embedded MMC) 등과 같은 다양한 표준 인터페이스를 통해 연결된다. 스토리지 시스템이 모바일 장치에 사용되는 경우 호스트와 스토리지 장치 사이의 고속 동작이 매우 중요하며, 신속한 데이터 전송률의 변경이 요구될 수 있다.
본 개시의 기술적 사상은, 고속 모드를 유지한 채 데이터 전송률을 조정할 수 있는 스토리지 장치, 스토리지 장치의 동작 방법 및 스토리지 장치를 포함하는 스토리지 시스템을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 일 측면에 따른 스토리지 장치의 동작 방법은, 호스트로부터 데이터 전송률의 변경 요청을 포함하는 제1 비트 시퀀스를 입력 신호 핀을 통해 제1 데이터 전송률에 따라 수신하는 단계, 변경 요청에 대한 응답을 포함하는 제2 비트 시퀀스를 출력 신호 핀을 통해 상기 제1 데이터 전송률에 따라 호스트에 전송하는 단계 및 제2 비트 시퀀스의 종료를 나타내는 종료 비트의 출력 여부에 따라 데이터 전송률을 제2 데이터 전송률로 변경하는 단계를 포함한다.
본 개시의 다른 측면에 따른 스토리지 시스템의 동작 방법은, 호스트가, 스토리지 장치에 데이터 전송률의 변경 요청을 포함하는 제1 비트 시퀀스를 제1 데이터 전송률에 따라 전송하는 단계, 스토리지 장치가, 호스트에 상기 변경 요청에 대응하는 응답을 포함하는 제2 비트 시퀀스를 상기 제1 데이터 전송률에 따라 전송하는 단계 및 제2 비트 시퀀스의 종료를 나타내는 종료 비트를 기초로, 호스트 및 스토리지 장치가 데이터 전송률을 변경하는 단계를 포함한다.
본 개시의 다른 측면에 따른 스토리지 장치는, 호스트로부터 수신되는 데이터가 저장되는 비휘발성 메모리, 비휘발성 메모리를 제어하는 장치 컨트롤러 및 호스트와 복수의 핀들로 연결되는 인터커넥트부를 포함하고, 인터커넥트부는, 호스트로부터 데이터 전송률의 변경 요청을 포함하는 제1 비트 시 퀀스를 제1 데이터 전송률에 따라 수신하고, 변경 요청에 대한 응답을 포함하는 제2 비트 시퀀스를 제1 데이터 전송률에 따라 호스트에 전송하고, 제2 비트 시퀀스의 종료를 나타내는 종료 비트의 출력 여부에 따라 데이터 전송률을 제2 데이터 전송률로 변경한다.
본 개시의 기술적 사상에 따라, 스토리지 장치는 고속 모드를 유지한 채 데이터 전송률을 변경함으로써 신속한 데이터 전송률의 변경을 수행할 수 있다.
또한, 본 개시의 기술적 사상에 따라, 하나의 클럭 생성기를 사용하여 수신기 및 송신기를 구동하므로, 칩 사이즈가 감소될 수 있다.
도 1은 본 개시의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다.
도 2는 본 개시의 일 실시예에 따른 호스트와 스토리지 장치 사이의 인터페이스를 나타낸다.
도 3은 본 개시의 예시적 실시 예에 따른 클럭 생성기를 설명하는 블록도이다.
도 4는 본 개시의 예시적 실시 예에 따른 호스트와 스토리지 장치 간의 링크 스타트업 동작 및 파워 모드 변경 동작을 설명하는 흐름도이다.
도 5는 본 개시의 실시 예에 따른 데이터 전송률의 조정을 설명하는 도면이다.
도 6은 본 개시의 예시적 실시 예에 따른 호스트의 동작 방법을 설명하는 흐름도이다.
도 7은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하는 흐름도이다.
도 8은 본 개시의 예시적 실시 예에 따른 데이터 전송률 리셋 동작을 설명하는 도면이다.
도 9는 본 개시의 예시적 실시 예에 따른 데이터 전송률의 조정을 설명하는 도면이다.
도 10은 본 개시의 예시적 실시 예에 따른 데이터 전송률의 조정을 설명하는 도면이다.
도 11은 본 개시의 예시적 실시 예에 따른 호스트의 동작 방법을 설명하는 흐름도이다.
도 12는 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하는 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 UFS 시스템(1000)에 대해 설명하기 위한 도면이다.
도 14a 내지 14c는 UFS 카드의 폼 팩터에 대해 설명하기 위한 도면이다.
도 15는 본 개시의 일 실시예에 따른 메모리 시스템(3000)을 나타내는 블록도이다.
도 16은 본 발명의 일 실시예에 따른 UFS 장치에 적용될 수 있는 3D VNAND 구조에 대해 설명하기 위한 도면이다.
도 17은 본 발명의 일 실시예에 따른 UFS 장치에 적용될 수 있는 B-VNAND 구조에 대해 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 호스트와 스토리지 장치 사이의 인터페이스를 나타낸다.
도 3은 본 개시의 예시적 실시 예에 따른 클럭 생성기를 설명하는 블록도이다.
도 4는 본 개시의 예시적 실시 예에 따른 호스트와 스토리지 장치 간의 링크 스타트업 동작 및 파워 모드 변경 동작을 설명하는 흐름도이다.
도 5는 본 개시의 실시 예에 따른 데이터 전송률의 조정을 설명하는 도면이다.
도 6은 본 개시의 예시적 실시 예에 따른 호스트의 동작 방법을 설명하는 흐름도이다.
도 7은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하는 흐름도이다.
도 8은 본 개시의 예시적 실시 예에 따른 데이터 전송률 리셋 동작을 설명하는 도면이다.
도 9는 본 개시의 예시적 실시 예에 따른 데이터 전송률의 조정을 설명하는 도면이다.
도 10은 본 개시의 예시적 실시 예에 따른 데이터 전송률의 조정을 설명하는 도면이다.
도 11은 본 개시의 예시적 실시 예에 따른 호스트의 동작 방법을 설명하는 흐름도이다.
도 12는 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하는 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 UFS 시스템(1000)에 대해 설명하기 위한 도면이다.
도 14a 내지 14c는 UFS 카드의 폼 팩터에 대해 설명하기 위한 도면이다.
도 15는 본 개시의 일 실시예에 따른 메모리 시스템(3000)을 나타내는 블록도이다.
도 16은 본 발명의 일 실시예에 따른 UFS 장치에 적용될 수 있는 3D VNAND 구조에 대해 설명하기 위한 도면이다.
도 17은 본 발명의 일 실시예에 따른 UFS 장치에 적용될 수 있는 B-VNAND 구조에 대해 설명하기 위한 도면이다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다.
도 1은 본 개시의 일 실시예에 따른 스토리지 시스템을 나타내는 블록도이다. 도 1을 참조하면, 스토리지 시스템(10)은 스토리지 장치(100) 및 호스트(200)를 포함한다. 예를 들어, 스토리지 장치(100)와 호스트(200)는 UFS(Universal Flash Storage) 표준(standard)에서 정의된 인터페이스 규약에 따라 연결될 수 있고, 이에 따라, 스토리지 장치(100)는 UFS 장치일 수 있고, 호스트(200)는 UFS 호스트일 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 스토리지 장치(100)와 호스트(200)는 다양한 표준 인터페이스들에 따라 연결될 수 있다.
호스트(200)는 인터커넥트부(210) 및 호스트 컨트롤러(220)를 포함할 수 있다. 호스트(200)는 스토리지 장치(100)에 대한 데이터 처리 동작, 예를 들어, 데이터 독출 동작 또는 데이터 기입 동작 등을 제어할 수 있다. 호스트(200)는 CPU(Central Processing Unit), 프로세서, 마이크로프로세서 또는 어플리케이션 프로세서(Application Processor, AP) 등과 같이 데이터를 처리할 수 있는 데이터 처리 장치를 의미할 수 있다. 호스트(200)는 운영 체제(operating system, OS) 및/또는 다양한 응용 프로그램(application)을 수행할 수 있다. 일 실시예에서, 스토리지 시스템(10)은 모바일 장치에 포함될 수 있고, 호스트(200)는 어플리케이션 프로세서(AP)로 구현될 수 있다. 일 실시예에서, 호스트(200)는 시스템 온 칩(System-On-a-Chip, SoC)으로 구현될 수 있고, 이에 따라, 전자 장치에 내장될 수 있다.
스토리지 장치(100)는 인터커넥트부(110), 장치 컨트롤러(120) 및 비휘발성 메모리(130)를 포함할 수 있다. 장치 컨트롤러(120)는 호스트(200)로부터의 기입 요청에 응답하여 비휘발성 메모리(130)에 데이터를 기입하도록 비휘발성 메모리(130)를 제어하거나, 또는 호스트(200)로부터의 독출 요청에 응답하여 비휘발성 메모리(130)에 저장된 데이터를 독출하도록 비휘발성 메모리(130)를 제어할 수 있다. 비휘발성 메모리(130)는 복수의 메모리 셀들을 포함할 수 있는데, 예를 들어, 복수의 메모리 셀들은 플래쉬 메모리 셀들일 수 있다. 일 실시예에서, 복수의 메모리 셀들은 낸드(NAND) 플래쉬 메모리 셀들일 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 다른 실시예에서, 복수의 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM) 또는 MRAM(magnetic RAM)과 같은 저항형 메모리 셀들일 수 있다.
아울러, 도 1에서는 인터커넥트부(110)와 장치 컨트롤러(120)가 서로 구별되는 구성인 것으로 도시되어 있지만, 장치 컨트롤러(120)는 인터커넥트부(110)를 포함하는 개념일 수 있으며, 이와 같은 점은 도 1 외의 뒤에서 설명될 다른 도면들에 대해서도 같다. 예컨대, 장치 컨트롤러(120)가 하나의 패키지 칩(package chip)으로 구현될 때, 인터커넥트부(110) 역시 상기 패키지 칩에 함께 구현될 수 있다.
호스트(200)는 제1 핀(P1a)을 포함할 수 있고, 스토리지 장치(100)는 제1 핀(P1a)에 연결되도록 구성된 제1 핀(P1a')을 포함할 수 있다. 제1 핀들(P1a, P1a')은 클럭 신호 핀으로 지칭될 수 있다. 스토리지 장치(100)는 제1 핀(P1a')을 통해 호스트(200)로부터 기준 클럭 신호(REF_CLK)를 수신할 수 있다.
호스트(200)는 제2 핀들(P2a, P2b)을 포함할 수 있고, 스토리지 장치(100)는 제2 핀들(P2a, P2b)에 각각 연결되도록 구성된 제2 핀들(P2a', P2b')을 포함할 수 있다. 스토리지 장치(100)는 제2 핀들(P2a', P2b')을 통해 호스트(200)로부터 입력 신호, 예를 들어, 차동(differential) 입력 신호(DIN_t, DIN_c)를 수신할 수 있다. 이에 따라, 제2 핀들(P2a', P2b')은 "입력 신호 핀들"이라고 지칭될 수 있고, 차동 입력 신호(DIN_t, DIN_c)가 전송되는 신호 라인들은 수신 레인을 구성할 수 있다. 예를 들어, 제2 핀(P2a')은 "포지티브 입력 신호 핀"이라고 지칭될 수 있고, 제2 핀(P2b')은 "네거티브 입력 신호 핀"이라고 지칭될 수 있다.
또한, 호스트(200)는 제3 핀들(P3a, P3b)을 더 포함할 수 있고, 스토리지 장치(100)는 제3 핀들(P3a, P3b)에 각각 연결되도록 구성된 제3 핀들(P3a', P3b')을 더 포함할 수 있다. 스토리지 장치(100)는 제3 핀들(P3a', P3b')을 통해 호스트(200)로 출력 신호, 예를 들어, 차동 출력 신호(DOUT_t, DOUT_c)를 전송할 수 있다. 이에 따라, 제3 핀들(P3a', P3b')은 "출력 신호 핀들"이라고 지칭될 수 있고, 차동 출력 신호(DOUT_t, DOUT_c)가 전송되는 신호 라인들은 송신 레인을 구성할 수 있다. 예를 들어, 제3 핀(P3a')은 "포지티브 출력 신호 핀"이라고 지칭될 수 있고, 제3 핀(P2b')은 "네거티브 출력 신호 핀"이라고 지칭될 수 있다.
호스트(200)는 클럭 생성기(213)를 포함할 수 있다. 클럭 생성기(213)는 기준 클럭 신호(REF_CLK)를 생성하고, 기준 클럭 신호(REF_CLK)를 기초로 데이터 전송에 사용되는 내부 클럭 신호를 생성할 수 있다. 클럭 생성기(213)는 기준 클럭 신호 또는 내부 클럭 신호의 주파수를 변경함으로써 데이터 전송률을 조정할 수 있다. 클럭 생성기(213)는 도 3을 통해 상세히 후술될 수 있다.
호스트(200)는 종료 비트(Tail-Of-Burst, TOB) 검출기(221)를 더 포함할 수 있다. 도 1에서는, 종료 비트 검출기(221)는 호스트 컨트롤러(220)에 포함되는 것으로 도시되어 있으나, 본 발명은 이에 한정되지 않고, 종료 비트 검출기(221)는 인터커넥트부(210)에 포함될 수도 있다. 종료 비트 검출기(221)는 제3 핀들(P3a, P3b)을 통해 수신되는 비트 시퀀스의 종료 비트를 검출할 수 있다. 비트 시퀀스는 버스트로 지칭될 수도 있고, 종료 비트는 테일-오브-버스트(Tail-Of-Burst, TOB)로 지칭될 수도 있다. 호스트 컨트롤러(220)는 파워 모드 변경에 대한 요청을 스토리지 장치(100)에 전송할 수 있다. 파워 모드 변경에 대한 요청은 파워 모드 변경 요청(PWR_req)으로 지칭될 수 있다. 파워 모드는 고속 모드 및 저속 모드를 포함할 수 있고, 고속 모드 및 저속 모드에서 복수의 데이터 전송률이 설정될 수 있다. 호스트 컨트롤러(220)는 파워 모드 변경 요청(PWR_req)을 통해 고속 모드 및 저속 모드 간의 변경 뿐만 아니라, 데이터 전송률의 변경을 요청할 수도 있다. 호스트 컨트롤러(220)는, 스토리지 장치(100)로부터 파워 모드 변경에 대한 응답을 수신할 수 있다. 파워 모드 변경에 대한 응답은 파워 모드 변경 응답(PWR_cnf)으로 지칭될 수 있다. 호스트 컨트롤러(220)는 파워 모드 변경 응답(PWR_cnf)을 포함하는 버스트의 종료 비트가 수신되면, 데이터 전송률이 조정되도록 클럭 생성기(213)를 제어할 수 있다. 파워 모드 변경 응답(PWR_cnf)을 포함하는 버스트의 종료 비트는 종료 비트 검출기(221)에 의해 검출될 수 있다.
스토리지 장치(100)는 클럭 생성기(113)를 포함할 수 있다. 클럭 생성기(113)는 클럭 신호 핀(P1a')을 통해 수신되는 기준 클럭 신호(REF_CLK)를 기초로 데이터 전송에 사용되는 내부 클럭 신호를 생성할 수 있다. 클럭 생성기(113)는 내부 클럭 신호의 주파수를 변경함으로써 데이터 전송률을 조정할 수 있다. 클럭 생성기(113)는 도 3을 통해 상세히 후술될 수 있다.
스토리지 장치(100)는 종료 비트(Tail-Of-Burst, TOB) 검출기(121)를 더 포함할 수 있다. 도 1에서는, 종료 비트 검출기(121)는 장치 컨트롤러(120)에 포함되는 것으로 도시되어 있으나, 본 발명은 이에 한정되지 않고, 종료 비트 검출기(121)는 인터커넥트부(110)에 포함될 수도 있다. 종료 비트 검출기(121)는 제2 핀들(P2a', P2b')을 통해 수신되는 버스트의 종료 비트를 검출할 수 있다. 인터커넥트부(110)는 파워 모드 변경 요청(PWR_req)을 포함하는 버스트의 종료 비트가 TOB 검출기(121)에 의해 검출되면, 파워 모드 변경 응답(PWR_cnf)을 포함하는 버스트의 종료 비트를 제3 핀들(P3a', P3b')을 통해 전송할 수 있다. 인터커넥트부(110)는 파워 모드 변경 응답(PWR_cnf)을 포함하는 버스트의 종료 비트가 전송되면, 데이터 전송률이 조정되도록 클럭 생성기(113)를 제어할 수 있다.
인터커넥트부들(110, 210)은 호스트(200)와 스토리지 장치(100) 사이에서 데이터를 교환하기 위한 인터페이스를 제공할 수 있다. 일 실시예에서, 인터커넥트부(110)는 물리 계층(physical layer, PL)(111) 및 링크 계층(link layer, LL)(112)을 포함할 수 있고, 물리 계층(111)은 제1 내지 제3 핀들(P1a', P2a', P2b', P3a', P3b')에 연결될 수 있다. 마찬가지로, 인터커넥트부(210)도 물리 계층(211) 및 링크 계층(212)을 포함할 수 있고, 물리 계층(211)은 제1 내지 제3 핀들(P1a, P2a, P2b, P3a, P3b)에 연결될 수 있다. 각 물리 계층(111, 211)은 호스트(200)와 스토리지 장치(100) 사이에서 데이터를 교환하기 위한 물리적 구성들을 포함할 수 있고, 예를 들어, 적어도 하나의 송신기(transmitter) 및 적어도 하나의 수신기(receiver) 등을 포함할 수 있다. 호스트 송신기(HOST TX)는 제2 핀들(P2a, P2b)을 포함하도록 구성될 수 있고, 호스트 수신기(HOST RX)는 제3 핀들(P3a, P3b)을 포함하도록 구성될 수 있다. 장치 송신기(DEVICE TX)는 제3 핀들(P3a', P3b')을 포함하도록 구성될 수 있고, 장치 수신기(DEVICE RX)는 제2 핀들(P2a', P2b')을 포함하도록 구성될 수 있다. 각 링크 계층(112, 212)은 데이터의 전송 및 조합(Composition)을 관리할 수 있고, 데이터의 무결성(Integrity) 및 오류(Error)를 관리할 수도 있다.
송신기(TX) 및 수신기(RX)는 클럭 생성기(213, 113)로부터 기준 클럭 신호를 수신하고, 기준 클럭 신호에 따라 데이터를 송/수신할 수 있다. 본 개시의 예시적 실시 예에 따른 호스트(200)는 스토리지 장치(100)로부터 버스트의 종료 비트가 수신된 이후에 데이터 전송률을 조정함으로써, 전송 중인 데이터에 오류가 발생하는 상황을 방지할 수 있다. 또한, 본 개시의 예시적 실시 예에 따른 호스트(200)는 하나의 클럭 생성기(213)를 사용하여 호스트 송신기(HOST TX) 및 호스트 수신기(HOST RX)를 구동할 수 있으므로, 송/수신기 별로 클럭 생성기가 구비되는 경우와 비교할 때 스토리지 시스템(10)의 사이즈가 감소될 수 있다.
본 개시의 예시적 실시 예에 따른 스토리지 장치(100)는 호스트(200)에 버스트의 종료 비트를 출력한 이후에 데이터 전송률을 조정함으로써, 전송 중인 데이터에 오류가 발생하는 상황을 방지할 수 있다. 또한, 본 개시의 예시적 실시 예에 따른 스토리지 장치(100)는 하나의 클럭 생성기(113)를 사용하여 장치 송신기(DEVICE TX) 및 장치 수신기(DEVICE RX)를 구동할 수 있으므로, 송/수신기 별로 클럭 생성기가 구비되는 경우와 비교할 때 스토리지 시스템(10)의 사이즈가 감소될 수 있다.
일 실시예에서, 스토리지 시스템(10)이 모바일 장치인 경우, 링크 계층들(112, 212)은 "UniPro" 스펙에 의해 정의될 수 있고, 물리 계층들(111, 211)은 "M-PHY" 스펙에 의해 정의될 수 있다. UniPro 및 M-PHY는 MIPI(Mobile Industry Processor Interface) 연합(Alliance)에 의해 제안된 인터페이스 규약이다. 이때, 링크 계층들(112, 212)은 물리 적응 계층(Physical Adapted Layer)을 각각 포함할 수 있다. 물리 적응 계층은 데이터의 심볼을 관리하거나 전력을 관리하는 등 물리 계층들(111, 211)을 제어할 수 있다.
일부 실시예들에서, 스토리지 장치(100)는 디램리스(DRAMless) 장치로 구현될 수 있고, 디램리스 장치는 DRAM 캐시를 포함하지 않는 장치를 지칭할 수 있다. 이때, 장치 컨트롤러(120)는 DRAM 컨트롤러를 포함하지 않을 수 있다. 예를 들어, 스토리지 장치(100)는 비휘발성 메모리(130)의 일부 영역을 버퍼 메모리로 이용할 수 있다.
일부 실시예들에서, 스토리지 장치(100)는 전자 장치에 내장되는(embedded) 내장(internal) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 임베디드 UFS 메모리 장치, eMMC(embedded Multi-Media Card), 또는 SSD(Solid State Drive)일 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 스토리지 장치(100)는 비휘발성 메모리(예를 들면, OTPROM(One Time Programmable ROM), PROM(Programmable ROM), EPROM(Erasable and Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), Mask ROM, Flash ROM 등)일 수 있다. 일부 실시예들에서, 스토리지 장치(100)는 전자 장치에 착탈 가능한 외장(external) 메모리일 수 있다. 예를 들어, 스토리지 장치(100)는 UFS 메모리 카드, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 및 Memory Stick 중 적어도 하나를 포함할 수 있다.
스토리지 시스템(10)은 예를 들어, PC(personal computer), 랩탑 컴퓨터(laptop computer), 이동 전화기, 스마트폰(smartphone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), 오디오 장치(audio device), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book) 등과 같은 전자 장치로 구현될 수 있다. 또한, 스토리지 시스템(10)은 예를 들어, 손목 시계 또는 HMD(Head-Mounted Display)와 같은 웨어러블 기기(Wearable device) 등과 같은 다양한 유형의 전자 장치로 구현될 수도 있다.
이하에서는, 도 2를 참조하여 호스트(200)와 스토리지 장치(100) 사이의 인터페이스에 대해 상세하게 설명하기로 한다.
도 2는 본 개시의 일 실시예에 따른 호스트와 스토리지 장치 사이의 인터페이스(20)를 나타낸다.
도 2를 참조하면, 인터페이스(20)는 호스트 컨트롤러(220)와 장치 컨트롤러(120) 사이의 링크(link)(300)를 포함할 수 있고, 링크(300)는 복수의 레인들(lanes)(310, 320, 330)을 포함할 수 있다. 링크(300)는 각 방향에 대응하는 적어도 하나의 레인을 포함할 수 있으며, 각 방향의 레인들의 수는 대칭적일 필요는 없다. 예를 들어, 링크(300)는 호스트 컨트롤러(220)에서 장치 컨트롤러(120)로의 제1 방향에 대응하는 두 개의 레인들(310, 320) 및 장치 컨트롤러(120)에서 호스트 컨트롤러(220)로의 제2 방향에 대응하는 하나의 레인(330)을 포함할 수 있으나, 본 발명은 이에 한정되지 않는다. 예를 들어, 제1 방향에 대응하는 두 개의 레인들(310, 320)은 제1 서브 링크를 구성하고, 제2 방향에 대응하는 하나의 레인(330)은 제2 서브 링크를 구성할 수 있다.
인터페이스(20)는 복수의 레인들을 지원할 수 있다. 각 레인(310, 320, 330)은 단방향(unidirectional), 싱글-시그널(single-signal), 정보를 실어 나르는 전송 채널(transmission channel)이다. 예를 들어, 레인(320)은 송신기(TX1), 수신기(RX1), 그리고 송신기(TX1)와 수신기(RX1) 사이를 포인트-투-포인트 인터컨넥트하는 라인(LINE)으로 구성될 수 있다. 예를 들어, 송신기(TX1)는 차동 신호의 포지티브 노드에 대응하는 핀(TXDP) 및 차동 신호의 네거티브 노드에 대응하는 핀(TXDN)에 연결될 수 있고, 수신기(RX1)는 차동 신호의 포지티브 노드에 대응하는 핀(RXDP) 및 차동 신호의 네거티브 노드에 대응하는 핀(RXDN)에 연결될 수 있다. 라인(LINE)은 송신기(TX1) 및 수신기(RX1)의 핀들(TXDP와 RXDP, TXDN과 RXDN)을 연결하는 2개의 차동적으로 라우팅된 와이어들로 구성되며, 이들 와이어들은 전송 라인들에 대응할 수 있다.
링크(300)는 양방향 데이터 전송 기능을 제공하는 레인 관리부들(340, 350)을 더 포함할 수 있다. 도 2에는 레인 관리부(350)와 호스트 컨트롤러(220)가 분리되는 것으로 도시되어 있으나, 본 발명은 이에 한정되지 않으며, 레인 관리부(350)는 호스트 컨트롤러(220)에 포함될 수 있다. 마찬가지로, 도 2에는 레인 관리부(340)와 장치 컨트롤러(120)가 분리되는 것으로 도시되어 있으나, 본 발명은 이에 한정되지 않고, 레인 관리부(340)는 장치 컨트롤러(120)에 포함될 수 있다.
도 1 및 도 2를 함께 참조하면, 호스트(200)의 인터커넥트부(210)에 포함된 송신기와 스토리지 장치(100)의 인터커넥트부(110)에 포함된 수신기는 하나의 레인을 형성한다. 그런데, 호스트(200)의 인터커넥트부(210)에 포함된 송신기 및 수신기의 개수는 스토리지 장치(100)의 인터커넥트부(110)에 포함된 송신기 및 수신기의 개수와 다를 수 있다. 또한, 호스트(200)의 성능(capability)은 스토리지 장치(100)의 성능과 다를 수 있다. 따라서, 호스트(200) 및 스토리지 장치(100)는 물리적으로 연결된 레인을 인식하고 상대방 장치의 정보를 제공받기 위한 처리를 수행한다. 이에 따라, 호스트(200) 및 스토리지 장치(100)는 데이터를 교환하기 전에, 링크 스타트업 처리를 수행한다. 링크 스타트업 처리를 수행함으로써, 호스트(200)와 스토리지 장치(100)는 송신기 및 수신기의 개수에 관한 정보, 물리적으로 연결된 레인에 관한 정보, 상대방 장치의 성능 등에 관한 정보 등을 서로 교환하고 인식할 수 있다. 링크 스타트업 처리가 완료된 후, 호스트(200)와 스토리지 장치(100)는 서로 안정적으로 데이터를 교환할 수 있는 링크업 상태(linkup state)로 설정된다. 링크 스타트업 처리는 스토리지 시스템(10)이 처음 사용될 때 수행되는 초기화 작동 또는 스토리지 시스템(10)의 부팅 작동 중에 수행될 수 있다. 나아가, 링크 스타트업 처리는 링크업 상태의 오류를 복구(recovery)하는 작동 중에도 수행될 수 있다. 링크 스타트업에 대해 도 4를 참조하여 상세히 후술될 수 있다.
도 3은 본 개시의 예시적 실시 예에 따른 클럭 생성기를 설명하는 블록도이다. 클럭 생성기(40)는 도 1의 클럭 생성기(213 또는 113)의 일 구현 예일 수 있다. 클럭 생성기(40)는 위상 고정 루프(Phase Locked Loop) 회로일 수 있다. 클럭 생성기(40)가 스토리지 장치(100)에 포함되는 클럭 생성기(113)의 일 구현 예인 경우, 기준 클럭 신호(REF_CLK)를 생성하는 오실레이터(410)는 생략될 수 있고, 기준 클럭 신호(REF_CLK)는 호스트(200)로부터 수신되는 것으로 이해될 수 있다.
클럭 생성기(40)는 기준 클럭 신호(REF_CLK)를 기초로 내부 클럭 신호(INT_CLK)를 생성할 수 있다. 송신기(TX)(50) 및 수신기(RX)(60)는 내부 클럭 신호(INT_CLK)에 동기화하여 데이터를 송/수신할 수 있다. 송신기(TX)(50) 및 수신기(RX)(60)는 도 2에 도시된 송신기(TX) 및 수신기(RX)의 일 예일 수 있다. 클럭 생성기(40)는 오실레이터(410), 위상/주파수 검출기(420), 차지 펌프(430), 루프 필터(440), 전압 제어 오실레이터(Voltage Controlled Oscillator, VCO)(450), 분주기(460)를 포함할 수 있다.
오실레이터(410)는 공정, 전압, 온도의 변동에 무관하게 일정한 주파수를 갖는 기준 클럭 신호(REF_CLK)를 생성할 수 있다. 예를 들어, 기준 클럭 신호(REF_CLK)의 주파수는 19.2MHz, 26MHz, 38.4MHz 및 52MHz의 네 개의 값 중 하나일 수 있으나, 반드시 이에 한정되지는 않는다.
위상/주파수 검출기(420)는 기준 클럭 신호(REF_CLK) 및 분주기(460)로부터 수신되는 피드백 신호를 비교하고, 비교 결과에 기초하여 기준 클럭 신호(REF_CLK) 및 피드백 신호의 위상 차를 나타내는 신호를 출력할 수 있다.
차지 펌프(430)는 위상/주파수 검출기(420)로부터 수신되는 신호에 기초하여 전하를 저장하거나 방전시킬 수 있다. 루프 필터(440)는 저역 통과 필터(Low Pass Filter)로 동작함으로써 노이즈 주파수를 제거하는 역할을 수행할 수 있다.
VCO(450)는 루프 필터(440)로부터 수신되는 전압을 기초로 내부 클럭 신호(INT_CLK)의 주파수를 제어할 수 있다. 예시적으로, VCO(450)는 양의 전압을 수신함으로써 내부 클럭 신호(INT_CLK)의 주파수를 상승시킬 수 있다. VCO(450)는 음의 전압을 수신함으로써 내부 클럭 신호(INT_CLK)의 주파수를 하강시킬 수 있다.
분주기(460)는 분주비에 따라 내부 클럭 신호(INT_CLK)를 카운트하고, 키운트된 신호를 피드백 신호로서 위상/주파수 검출기(420)에 제공할 수 있다. 도 3은 하나의 분주기(460)를 도시하고 있으나, 클럭 생성기(400)는 서로 다른 분주비를 갖는 복수의 분주기들을 포함할 수 있다.
도면들을 참조하여 후술되는 바와 같이, 본 개시의 실시 예에 따른 스토리지 시스템은 내부 클럭 신호의 주파수를 변경함으로써 데이터 전송률을 조정할 수 있다. 내부 클럭 신호의 주파수 변경을 위해, 분주기(460)의 분주비가 변경되거나, 기준 클럭 신호(REF_CLK)의 주파수가 변경될 수 있다.
본 개시의 예시적 실시 예에 따른 스토리지 시스템은, 하나의 클럭 생성기(40)를 사용하여 송신기(TX) 및 수신기(RX)를 구동시킴으로써, 송신기(TX) 및 수신기(RX) 각각에 대해 클럭 생성기가 구비되는 경우와 비교하여, 호스트 및 스토리지 장치의 사이즈가 감소될 수 있다.
도 4는 본 개시의 예시적 실시 예에 따른 호스트와 스토리지 장치 간의 링크 스타트업 동작 및 파워 모드 변경 동작을 설명하는 흐름도이다. 구체적으로, 도 4는 호스트(200a)와 스토리지 장치(100a) 간의 링크 스타트업 단계(S360) 및 파워 모드 변경 단계(S380)를 설명하는 흐름도이다. 링크 스타트업 단계(S360)가 수행되면, S370 단계에서, 호스트(200a)와 스토리지 장치(100a)는 링크업 상태로 동작할 수 있다.
링크 스타트업 단계(S360)는, 호스트(200a)와 스토리지 장치(100a) 사이에서, 양 방향으로 초기 링크 통신을 설정하기 위하여 UniPro 트리거 이벤트들을 교환하는, 멀티-단계 핸드쉐이크(multi-phase handshake) 방식으로 수행될 수 있다. 링크 스타트업 단계(S360)는 소정의 단계들(phases)(S361 내지 S365)로 정의될 수 있고, 각 단계마다 트리거 이벤트가 사용될 수 있으며, 각 트리거 이벤트는 여러 번 전송될 수 있다.
S361 단계는 데이터 레인 발견(Data Lane Discovery) 단계로서, S361 단계에서, 호스트(200a)와 스토리지 장치(100a) 사이에 연결된 레인들이 발견될 수 있다. S361 단계에서, 호스트(200a) 및 스토리지 장치(100a)는 모든 이용 가능한 송신 레인들로(on all available TX Lanes), 제1 트리거 이벤트(TRG_UPR0)를 반복적으로 발송(send)할 수 있다. 호스트(200)는 스토리지 장치(100)로부터 제1 트리거 이벤트 메시지를 수신할 때까지, 제1 트리거 이벤트(TRG_UPR0)를 계속해서 전송할 수 있다. 호스트(200a)에서 발송되는 제1 트리거 이벤트(TRG_UPR0)는 해당 트리거가 전송되는 호스트(200a)의 송신 레인의 물리적 레인 번호를 포함할 수 있다. 또한, 스토리지 장치(100a)는 호스트(200a)로부터 제1 트리거 이벤트 메시지를 수신할 때까지 제1 트리거 이벤트(TRG_UPR0)를 계속해서 전송할 수 있다. 스토리지 장치(100a)에서 발송되는 제1 트리거 이벤트(TRG_UPR0)는 해당 트리거가 전송되는 스토리지 장치(100)의 송신 레인의 물리적 레인 번호를 포함할 수 있다.
S362 단계는 데이터 레인 재정비(Data Lane Realignment) 단계로서, S362 단계에서, 호스트(200a) 및 스토리지 장치(100a)는 모든 이용 가능한 송신 레인들로 제2 트리거 이벤트(TRG_UPR1)를 발송할 수 있다. 호스트(200a)는 스토리지 장치(100a)로부터 제2 트리거 이벤트 메시지를 수신할 때까지 제2 트리거 이벤트(TRG_UPR1)를 계속해서 전송할 수 있다. 호스트(200a)에서 발송되는 제2 트리거 이벤트(TRG_UPR1)는 호스트(200a)에 연결된 송신 레인들에 관한 정보를 포함할 수 있다. 또한, 스토리지 장치(100a)는 호스트(200)로부터 제2 트리거 이벤트 메시지를 수신할 때까지 제2 트리거 이벤트(TRG_UPR1)를 계속해서 전송할 수 있다. 스토리지 장치(100a)에서 발송되는 제2 트리거 이벤트(TRG_UPR1)는 스토리지 장치(100a)에 연결된 송신 레인들에 관한 정보를 포함할 수 있다.
S363 단계는 링크 스타트업 종료 단계로서, S363 단계에서, 호스트(200a)와 스토리지 장치(100a)는, 연결된 레인들이 얼마나 많이 있는지를 물리 계층들(111, 211)의 속성들에 반영될 수 있다. S363 단계에서, 호스트(200a) 및 스토리지 장치(100a)는 모든 이용 가능한 송신 레인들로 제3 트리거 이벤트(TRG_UPR2)를 발송할 수 있다. 호스트(200a)는 스토리지 장치(100a)로부터 제3 트리거 이벤트(TRG_UPR2)에 대응하는 메시지를 수신할 때까지 제3 트리거 이벤트(TRG_UPR2)를 계속해서 전송할 수 있다. 호스트(200a)에서 발송되는 제3 트리거 이벤트(TRG_UPR2)는 호스트(200a)에 연결된 송신 레인들에 관한 논리적 레인 번호들을 포함할 수 있다. 또한, 스토리지 장치(100a)는 호스트(200a)로부터 제3 트리거 이벤트(TRG_UPR2)에 대응하는 제3 트리거 이벤트 메시지를 수신할 때까지 제3 트리거 이벤트(TRG_UPR2)를 계속해서 전송할 수 있다. 스토리지 장치(100a)에서 발송되는 제3 트리거 이벤트(TRG_UPR2)에는 스토리지 장치(100a)에 연결된 송신 레인들에 관한 논리적 레인 번호들을 포함할 수 있다. S363 단계가 수행됨에 따라, 호스트(200)와 스토리지 장치(100a)는 이용 가능한 레인들에 관한 일치된 논리적 레인 번호들을 가질 수 있다.
S364 단계는 성능 교환(capability exchange) 단계로서, S364 단계에서, 호스트(200a) 및 스토리지 장치(100a)는 성능에 관한 정보(CAP)를 교환할 수 있다. 구체적으로, 호스트(200a)와 스토리지 장치(100a)는 인터커넥트부들(210, 110)의 아키텍쳐 요건들을 통신하기 위하여 상대방 장치의 성능에 관한 정보(CAP)를 서로 교환하고 인식할 수 있다. 인터커넥트부들(210, 110)의 아키텍쳐 요건들은 예컨대, 밴드위스, 타이머들, 속도 기어(gear), 터미네이션/언터미네이션(termination/untermination), 스크램블링 등을 포함할 수 있다. S364 단계가 수행됨에 따라, 상대방 장치의 성능에 관한 정보(CAP)가 인터커넥트부들(210, 110)에 수집되고 수집된 성능 정보(CAP)에 따라 인터커넥트부들(210, 110)의 물리 계층들의 속성들이 설정될 수 있다. S364 단계가 수행되면, S370 단계에서, 호스트(200a)와 스토리지 장치(100a)는 링크업 상태로 동작할 수 있다. 링크업 상태에서, 호스트(200a)와 스토리지 장치(100a)는 디폴트 파워 모드로 동작할 수 있다. 디폴트 파워 모드는 고속 모드(HS mode) 또는 저속 모드(LS mode)일 수 있다. 또한, 링크업 상태에서, 호스트(200a)와 스토리지 장치(100a)는 디폴트 데이터 전송률로 데이터를 송/수신할 수 있다. 일부 실시 예들에서, 디폴트 데이터 전송률은 제1 데이터 전송률(DR1)일 수 있다.
S380 단계는 파워 모드 변경 단계로서, 호스트(200a)와 스토리지 장치(100a)는 파워 모드 변경 동작을 수행할 수 있고, 새로운 파워 모드에 대한 링크 설정(Link Configuration)이 수행될 수 있다. S380 단계는, 복수의 단계들(S381 내지 S384)을 포함할 수 있다.
S381 단계에서, 호스트(200a)는 파워 모드 변경 요청(PWR_req)을 스토리지 장치(100)에 전송할 수 있다. 파워 모드 변경 요청(PWR_req)은 변경될 파워 모드의 종류, 속도 기어 또는 속도 시리즈를 포함할 수 있다. 파워 모드는 고속 모드(HS mode) 또는 저속 모드(LS mode)일 수 있다. 속도 기어는 데이터 전송률을 의미할 수 있고, 속도 시리즈는 복수의 속도 기어들의 그룹을 의미할 수 있다. 예를 들어, 속도 시리즈는 A 시리즈 및 B 시리즈로 구분될 수 있다. A 시리즈는 1.25, 2.5, 5, 및 10.0 Gbps에 대응하는 4가지의 속도 기어들을 포함할 수 있다. B 시리즈는, A 시리즈에 포함되는 속도 기어들보다 높은 주파수를 갖는 속도 기어들을 포함할 수 있다. 예를 들어, B 시리즈에 포함되는 속도 기어들은 A 시리즈의 포함되는 속도 기어들에 비해 높은 1.46, 2.92, 5.83 및 11.66 Gbps에 대응될 수 있다.
S382 단계에서, 스토리지 장치(100a)는 파워 모드 변경 응답(PWR_cnf)을 호스트(200a)에 전송할 수 있다. 파워 모드 변경 응답(PWR_cnf)은 상태 정보, 파워 모드의 종류, 속도 기어 또는 속도 시리즈를 포함할 수 있다. 상태 정보는 파워 모드의 변경이 가능한지 여부에 대한 정보를 의미할 수 있다.
설명의 편의를 위하여, 호스트(200a)가 파워 모드 변경 요청(PWR_req)을 전송하고, 스토리지 장치(100a)가 파워 모드 변경 응답(PWR_cnf)을 전송하는 것으로 설명하였으나, 일부 실시 예들에서, 스토리지 장치(100a)가 호스트(200a)에 파워 모드 변경 요청(PWR_req)을 전송하고, 호스트(200a)가 스토리지 장치(100a)에 파워 모드 변경 응답(PWR_cnf)을 전송할 수도 있다. 이하 본 명세서에서는, 호스트(200a)가 파워 모드 변경 요청(PWR_req)을 전송하고, 스토리지 장치(100a)가 파워 모드 변경 응답(PWR_cnf)을 전송하는 것으로 가정한다.
S383 단계에서, 스토리지 장치(100a)는 파워 모드 변경 응답(PWR_cnf)을 전송한 뒤 데이터 전송률을 조정할 수 있다. 데이터 전송률은 내부 클럭 신호의 주파수를 변경함으로써 조정될 수 있다. 내부 클럭 신호의 주파수가 변경되는 도중에, 라인 상으로 데이터가 전송되면 에러가 발생할 수 있다. 따라서, 미리 결정된 설정 시간(Config_time) 동안, 라인(LINE)을 통해 데이터가 전송되지 않을 수 있고, 설정 시간(Config_time) 내에 내부 클럭 신호의 주파수가 변경될 수 있다.
S384 단계에서, 호스트(200a)는 파워 모드 변경 응답(PWR_cnf)을 수신한 뒤 데이터 전송률을 조정할 수 있다. 즉, 스토리지 장치(100a)로부터 파워 모드의 변경이 가능하다는 상태 정보를 포함하는 파워 모드 변경 응답(PWR_cnf)을 수신하고, 설정 시간(Config_time) 동안 내부 클럭 신호의 주파수를 변경할 수 있다.
본 개시의 예시적 실시 예에 따른 스토리지 시스템은, 라인 상으로 데이터가 전송되지 않는 설정 시간(Config_time) 동안 내부 클럭 신호의 주파수를 변경함으로써 데이터 전송률을 조정할 수 있다. 또한, 호스트(200a)와 스토리지 장치(100a)는 설정 시간(Config_time)이 도과한 후 데이터를 전송함으로써 안정적으로 데이터를 교환할 수 있다.
도 5는 본 개시의 실시 예에 따른 데이터 전송률의 조정을 설명하는 도면이다. 구체적으로, 도 5는 데이터 전송률을 조정하기 위해, 호스트 송신기(HOST TX)와 장치 송신기(DEVICE TX)를 통해 라인(LINE)으로 전송되는 데이터를 도시한다. 도 5에 도시되지는 않았으나, 도 2를 참조하여 전술된 바와 같이, 호스트 송신기(HOST TX)는 장치 수신기(DEVICE RX)와 라인(LINE)을 통해 연결될 수 있고, 장치 송신기(DEVICE TX)는 호스트 수신기(HOST RX)와 라인(LINE)을 통해 연결될 수 있다. 따라서, 장치 수신기(DEVICE RX)를 통해 수신되는 데이터는 호스트 송신기(HOST TX)를 통해 송신되는 데이터와 동일할 수 있으나, 라인 딜레이만큼 위상 차이가 발생할 수 있다. 호스트 수신기(HOST RX)를 통해 수신되는 데이터는 장치 송신기(DEVICE TX)를 통해 송신되는 데이터와 동일할 수 있으나, 라인 딜레이만큼 위상 차이가 발생할 수 있다. 도 5는 도 1 내지 4 중 적어도 하나를 참조하여 후술될 수 있다.
도 5를 참조하면, 호스트(200) 및 스토리지 장치(100)는 고속 모드(HS mode)를 유지하면서 데이터 전송률을 조정할 수 있다. 고속 모드(HS mode)는, 레인을 통해 전송되는 비트들이 로직 레벨(logic level)을 통해 표현되고, 로직 하이 구간이 연속되더라도 구간 사이에 로직 로우 구간이 존재할 필요가 없는 NRZ(non-return to zero) 방식이 적용되는 파워 모드일 수 있다. 고속 모드(HS mode)에서 데이터 전송률은 기준 클럭 신호를 분주(divide)함으로써 생성되는 내부 클럭 신호의 주파수에 따라 결정될 수 있다.
기준 클럭 신호의 주파수에 따라 데이터 전송률은 복수의 속도 시리즈들(A, B)로 구분될 수 있다. 예를 들어, 제1 주파수를 갖는 제1 기준 클럭 신호를 기초로 결정되는 데이터 전송률들은 A 시리즈로 지칭될 수 있고, 제2 주파수를 갖는 제2 기준 클럭 신호를 기초로 결정되는 데이터 전송률들은 B 시리즈로 지칭될 수 있다. 복수의 시리즈들(A, B) 각각은 복수의 속도 기어들을 포함할 수 있다. 기준 클럭 신호를 분주함으로써 다양한 주파수를 갖는 내부 클럭 신호들이 생성될 수 있고, 각 내부 클럭 신호에 대응하는 데이터 전송률은 속도 기어로 지칭될 수 있다.
호스트 송신기(HOST TX) 또는 장치 송신기(DEVICE TX)는 적어도 파워 세이빙(power saving) 상태 또는 버스트(burst) 상태 중 하나일 수 있다. 파워 세이빙 상태(power saving)는 소모되는 전력을 최소화화기 위한 상태로서, 네거티브 차동 라인 전압(DIF-N) 또는 제로 차동 라인 전압(DIF-Z)으로 라인(LINE)을 구동하는 상태일 수 있다. 파워 세이빙 상태(power saving)는 스톨(STALL) 상태, 슬립(SLEEP) 상태, 하버네이팅(HIBERN8) 상태, 디스에이블(DISABLED) 상태 또는 언-파워(UNPOWERED) 상태 중 하나일 수 있다. 본 개시의 실시 예들에서, 파워 세이빙(power saving) 상태는 스톨(STALL) 상태인 것으로 가정한다. 버스트(burst) 상태는 라인으로 데이터를 전송하는 상태로서, 포지티브 차동 라인 전압(DIF-P)으로 라인(LINE)을 구동하는 상태일 수 있다. 버스트(burst) 상태는 고속 모드에서 데이터가 전송되는 고속 버스트(HS-BURST) 상태와 저속 모드에서 데이터가 전송되는 저속 버스트(LS-BURST) 상태를 포함할 수 있다. 라인(LINE)은 하이 임피던스 상태를 나타내는 DIF-Q 상태, 또는 DIF-N 또는 DIF-P도 아닌 DIF-X 상태를 가질 수도 있다. 여기서, 차동 라인 전압은, 포지티브 노드에 연결된 라인의 전압에서 네거티브 노드에 연결된 라인의 전압을 뺀 값으로 정의될 수 있다.
라인(LINE)은 도 2에 도시된 인터페이스(20)에 포함된 임의의 라인에 대응할 수 있다. 예를 들어, 라인(LINE)은 도 1의 차동 입력 신호(DIN_t, DIN_c)가 전송되는 차동 입력 신호 라인에 대응할 수 있다. 예를 들어, 포지티브 입력 신호(DIN_t)가 인가되는 제2 핀(P2a')의 전압 레벨이 네거티브 입력 신호(DIN_c)가 인가되는 제2 핀(P2b')의 전압 레벨보다 높을 때, 라인(LINE)은 DIF-P 상태 또는 로직 하이일 수 있다. 예를 들어, 포지티브 입력 신호(DIN_t)가 인가되는 제2 핀(P2a')의 전압 레벨이 네거티브 입력 신호(DIN_c)가 인가되는 제2 핀(P2b')의 전압 레벨보다 낮을 때, 라인(LINE)은 DIF-N 상태 또는 로직 로우일 수 있다. 예를 들어, 포지티브 입력 신호(DIN_t)가 인가되는 제2 핀(P2a')의 전압 레벨이 네거티브 입력 신호(DIN_c)가 인가되는 제2 핀(P2b')의 전압 레벨과 거의 동일할 때, 라인(LINE)은 DIF-Z 상태 또는 접지 상태일 수 있다.
도 5를 참조하면, 버스트(burst) 상태에서 라인을 통해 전송되는 비트 시퀀스는 버스트(BURST)로 지칭될 수 있다. 버스트(BURST)는 준비 구간(PREPARE), 더미 구간(DUMMY), 파워 모드 변경 요청(PWR_REQ) 또는 파워 모드 변경 응답(PWR_CNF), 종료 비트(TOB, Tail-Of-Burst)를 포함할 수 있다. 준비(PREPARE) 구간은 버스트의 시작을 나타내는 구간으로서 포지티브 차동 라인 전압(DIF-P)으로 라인이 구동되는 구간일 수 있다. 더미(DUMMY) 구간은 의미 없는 데이터를 나타내는 적어도 하나의 비트가 포함되는 구간일 수 있다. 호스트 수신기(HOST RX) 및 장치 수신기(DEVICE RX)는 수신되는 버스트에서 더미 구간에 포함되는 데이터를 무시할 수 있다. 파워 모드 변경 요청(PWR_req)은 데이터 전송률의 변경을 요청하는 정보를 포함할 수 있다. 파워 모드 변경 응답(RWR_cnf)은 파워 모드 변경 요청(PWR_req)에 응답하는 정보를 포함할 수 있다. 종료 비트(TOB)는 버스트의 종료를 나타내는 적어도 하나의 비트일 수 있다. 종료 비트(TOB)는 네거티브 차동 라인 전압(DIF-N)으로 라인이 구동되는 구간에 전송되는 비트일 수 있다. 종료 비트(TOB)는 UniPro 사양에 기재된 MK 심볼 또는 필러 심볼을 포함할 수 있다.
도 5를 참조하면, 호스트(200)는 고속 모드(HS mode)에서 호스트 송신기(HOST TX)를 통해 제1 데이터 전송률(DR1)로 제1 버스트(BURST 1)를 전송할 수 있다. 제1 버스트(BURST 1)는 데이터 전송률을 제2 데이터 전송률(DR2)로 변경 요청하는 파워 모드 변경 요청(PWR_req)을 포함할 수 있다.
스토리지 장치(100)는 고속 모드(HS mode)에서 장치 송신기(DEVICE TX)를 통해 제1 데이터 전송률(DR1)로 제2 버스트(BURST 2)를 전송할 수 있다. 제2 버스트(BURST 2)는 파워 모드 변경 요청(PWR_req)에 대응하는 파워 모드 변경 응답(PWR_cnf)을 포함할 수 있다.
스토리지 장치(100)는 제2 버스트(BURST 2)의 종료 비트(TOB)가 장치 송신기(DEVICE TX)를 통해 출력되면 데이터 전송률을 제2 데이터 전송률(DR2)로 조정할 수 있다. 구체적으로, 종료 비트(TOB)가 출력되면 클럭 생성기(113)는 내부 클럭 신호의 주파수를 변경함으로써 데이터 전송률을 제2 데이터 전송률(DR2)로 조정할 수 있다. 미리 결정된 설정 시간(Config_time) 동안, 장치 송신기(DEVICE TX)와 연결된 라인(LINE)을 통해 데이터가 전송되지 않을 수 있고, 설정 시간(Config_time) 내에 데이터 전송률이 조정될 수 있다.
일부 실시예들에서, 클럭 생성기(113)는 장치 송신기(DEVICE TX) 및 장치 수신기(DEVICE RX)에 공통으로 사용될 수 있다. 따라서, 장치 수신기(DEVICE RX)가 호스트 송신기(HOST TX)로부터 파워 모드 변경 요청(PWR_req)을 수신한 직후에 내부 클럭 신호의 주파수가 변경되는 경우, 장치 송신기(DEVICE TX)를 통해 전송되는 파워 모드 변경 응답(PWR_cnf)은 호스트 수신기(HOST RX)에 도달하지 않을 수 있다. 본 개시의 예시적 실시 예에 따른 스토리지 장치(100)는, 제2 버스트(BRUST 2)가 출력된 이후에 내부 클럭 신호의 주파수를 변경함으로써, 공통되는 내부 클럭 신호를 사용하여 장치 송신기(DEVICE TX) 및 장치 수신기(DEVICE RX)에 대한 데이터 전송률을 변경할 수 있다. 즉, 하나의 PLL(Phase Locked Loop) 회로를 사용하여 장치 송신기(DEVICE TX) 및 장치 수신기(DEVICE RX)에 대한 데이터 전송률을 변경할 수 있으므로, 스토리지 시스템의 사이즈는 감소될 수 있다.
호스트(200)는 제2 버스트(BURST 2)의 종료 비트(TOB)가 호스트 수신기(HOST RX)를 통해 수신되면 데이터 전송률을 제2 데이터 전송률(DR2)로 조정할 수 있다. 도시되지는 않았으나, 호스트 수신기(HOST RX)는 장치 송신기(DEVICE TX)와 라인을 통해 연결될 수 있다. 구체적으로, 종료 비트(TOB)가 수신되면 클럭 생성기(213)는 내부 클럭 신호의 주파수를 변경함으로써 데이터 전송률을 제2 데이터 전송률(DR2)로 조정할 수 있다. 미리 결정된 설정 시간(Config_time) 동안, 호스트 송신기(HOST TX)와 연결된 라인(LINE)을 통해 데이터가 전송되지 않을 수 있고, 설정 시간(Config_time) 내에 데이터 전송률이 조정될 수 있다.
일부 실시예들에서, 클럭 생성기(213)는 호스트 송신기(HOST TX) 및 호스트 수신기(HOST RX)에 공통으로 사용될 수 있다. 따라서, 호스트 송신기(HOST TX)가 장치 수신기(DEVICE RX)에 파워 모드 변경 요청(PWR_req)을 전송한 직후에 내부 클럭 신호의 주파수가 변경되는 경우, 장치 송신기(DEVICE TX)를 통해 전송되는 파워 모드 변경 응답(PWR_cnf)은 호스트 수신기(HOST RX)에 도달하지 않을 수 있다. 본 개시의 예시적 실시 예에 따른 호스트(200)는, 제2 버스트(BRUST 2)가 수신된 이후에 내부 클럭 신호의 주파수를 변경함으로써, 공통되는 내부 클럭 신호를 사용하여 호스트 송신기(HOST TX) 및 호스트 수신기(HOST RX)에 대한 데이터 전송률을 변경할 수 있다. 즉, 하나의 PLL(Phase Locked Loop) 회로를 사용하여 호스트 송신기(HOST TX) 및 호스트 수신기(HOST RX)에 대한 데이터 전송률을 변경할 수 있으므로, 스토리지 시스템의 사이즈는 감소될 수 있다.
고속 모드(HS mode)를 유지하면서 데이터 전송률이 조정되는 경우, 내부 클럭 신호의 주파수가 변경되는 동안 전송 중인 데이터에 에러가 발생할 수도 있다. 따라서, 내부 클럭 신호의 주파수 변경은 저속 모드(LS mode)에서 수행될 수도 있다. 저속 모드(LS mode)는 기준 클럭 신호를 사용하지 않는 전송 모드일 수 있다. 예를 들어, 저속 모드는 PWM(Pulse width modulation) 방식일 수 있다. PWM 방식의 저속 모드에서는, 레인을 통해 전송되는 신호의 각 로직 하이(logic high) 구간의 사이에 로직 로우(logic low) 구간이 반드시 존재하여야 하는 RZ(return to zero) 방식이 적용된다. 즉, 저속 모드(LS mode)는 내부 클럭 신호를 사용하지 않는 전송 모드이므로, 저속 모드(LS mode)에서 내부 클럭 신호의 주파수가 조정되더라도, 전송되는 데이터에는 에러가 발생하지 않을 수 있다.
다만, 고속 모드의 데이터 전송률을 변경하기 위해서, 파워 모드를 저속 모드로 변경하고 저속 모드에서 내부 클럭 신호의 주파수를 변경하고 파워 모드를 다시 고속 모드로 변경하는 경우 상당한 시간이 소요될 수 있다.
본 개시의 예시적 실시 예에 따른 스토리지 시스템은, 레인을 통해 데이터가 전송되지 않는 설정 시간 동안 기준 클럭 신호의 주파수를 변경함으로써 고속 모드를 유지한 채 데이터 전송률을 변경하더라도 데이터의 에러가 발생하지 않을 수 있다.
도 6은 본 개시의 예시적 실시 예에 따른 호스트의 동작 방법을 설명하는 흐름도이다. 구체적으로, 도 6은 호스트 송신기(HOST TX) 및 호스트 수신기(HOST RX)에 대한 데이터 전송률을 조정하는 방법을 나타낸다. 호스트의 동작 방법은 복수의 단계들(S610 내지 S640)을 포함할 수 있다. 도 6은 도 1 내지 5 중 적어도 하나를 참조하여 후술될 수 있다.
S610 단계에서, 호스트(200)는 호스트 송신기(HOST TX)를 통해 파워 모드 변경 요청(PWR_req)을 포함하는 제1 버스트(BURST 1)를 스토리지 장치(100)에 전송할 수 있다. 제1 버스트(BURST 1)는 호스트 송신기(HOST TX)가 버스트 상태를 유지하는 동안 라인을 통해 스토리지 장치(100)에 전송되는 비트 시퀀스일 수 있다. 파워 모드 변경 요청(PWR_req)은 변경될 파워 모드의 종류, 속도 기어 또는 속도 시리즈를 포함할 수 있다. 파워 모드는 고속 모드(HS mode) 또는 저속 모드(LS mode)일 수 있다. 속도 기어는 데이터 전송률을 의미할 수 있고, 속도 시리즈는 복수의 속도 기어들의 그룹을 의미할 수 있다.
S620 단계에서, 호스트(200)는 호스트 수신기(HOST RX)를 통해 파워 모드 변경 응답(PWR_cnf)을 포함하는 제2 버스트(BURST 2)를 스토리지 장치(100)로부터 수신할 수 있다. 제2 버스트(BURST 2)는 장치 송신기(DEVICE TX)가 버스트 상태를 유지하는 동안 라인을 통해 호스트(200)에 전송되는 비트 시퀀스일 수 있다. 파워 모드 변경 응답(PWR_cnf)은 파워 모드 변경 요청(PWR_req)에 대응되고, 상태 정보, 파워 모드의 종류, 속도 기어 또는 속도 시리즈를 포함할 수 있다. 상태 정보는 파워 모드의 변경이 가능한지 여부에 대한 정보를 의미할 수 있다.
S630 단계에서, 호스트(200)에 포함된 TOB 검출기(221)는 제2 버스트(BURST 2)의 종료 비트(TOB)를 검출할 수 있다. TOB 검출기(221)는 미리 정해진 비트 시퀀스를 식별함으로써 종료 비트(TOB)를 검출할 수 있다. 종료 비트(TOB)가 검출되지 않은 경우, TOB 검출기(221)는 종료 비트(TOB)가 검출될 때까지 검출 동작을 수행할 수 있고, 종료 비트(TOB)가 검출된 경우, S640 단계가 수행될 수 있다.
S640 단계에서, 호스트(200)는 호스트 송신기(HOST TX) 및 호스트 수신기(HOST RX)에 대한 데이터 전송률을 조정할 수 있다. 구체적으로, 클럭 생성기(213)는 기준 클럭 신호의 주파수를 변경하거나, 기준 클럭 신호를 기초로 생성되는 내부 클럭 신호의 주파수를 변경함으로써, 파워 모드 변경 요청(PWR_req)에 포함된 속도 기어 또는 속도 시리즈에 대응되는 데이터 전송률을 설정할 수 있다. 일부 실시 예들에서, S640 단계에서, 도 3을 참조하여 전술된 바와 같이, 오실레이터(410)가 기준 클럭 신호의 주파수를 변경하거나, 분주기(460)가 분주비를 변경함으로써 내부 클럭 신호의 주파수가 변경될 수 있다.
본 개시의 예시적 실시 예에 따른 호스트는, 종료 비트(TOB)를 검출함으로써 스토리지 장치로부터 버스트가 모두 수신되는 시점을 판단할 수 있다. 이에 따라, 호스트 송신기(HOST TX) 및 호스트 수신기(HOST RX) 각각와 연결된 라인들에 데이터가 전송되지 않을 때 데이터 전송률을 조정할 수 있으므로, 데이터 전송률이 조정되는 동안 발생할 수 있는 전송 데이터의 에러를 방지할 수 있다.
또한, 하나의 클럭 생성기(213)를 사용하여 호스트 송신기(HOST TX) 및 호스트 수신기(HOST RX)에 대한 데이터 전송률을 모두 조정할 수 있으므로, 호스트 송신기(HOST TX) 및 호스트 수신기(HOST RX) 각각에 대해 클럭 생성기를 구비하는 경우와 비교할 때 스토리지 시스템의 사이즈가 감소될 수 있다.
도 7은 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하는 흐름도이다. 구체적으로, 도 7은 장치 송신기(DEVICE TX) 및 장치 수신기(DEVICE RX)에 대한 데이터 전송률을 조정하는 방법을 나타낸다. 스토리지 장치의 동작 방법은 복수의 단계들(S710 내지 S740)을 포함할 수 있다. 도 7은 도 1 내지 5와 함께 참조하여 후술될 수 있다.
S710 단계에서, 도 5를 참조하여 전술된 바와 같이, 스토리지 장치(100)는 장치 수신기(DEVICE RX)를 통해 파워 모드 변경 요청(PWR_req)을 포함하는 제1 버스트(BURST 1)를 호스트(200)로부터 수신할 수 있다.
S720 단계에서, 도 5를 참조하여 전술된 바와 같이, 스토리지 장치(100)는 장치 송신기(DEVICE RX)를 통해 파워 모드 변경 응답(PWR_cnf)을 포함하는 제2 버스트(BURST 2)를 호스트(200)에 전송할 수 있다. 파워 모드 변경 응답(PWR_cnf)은 파워 모드 변경 요청(PWR_req)에 대응되고, 상태 정보, 파워 모드의 종류, 속도 기어 또는 속도 시리즈를 포함할 수 있다. 상태 정보는 파워 모드의 변경이 가능한지 여부에 대한 정보를 의미할 수 있다.
S730 단계에서, 스토리지 장치(100)에 포함된 TOB 검출기(121)는 제1 버스트(BUST 1)의 종료 비트(TOB)를 검출할 수 있다. TOB 검출기(121)는 미리 정해진 비트 시퀀스를 식별함으로써 종료 비트(TOB)를 검출할 수 있다. 종료 비트(TOB)가 검출되지 않은 경우, TOB 검출기(121)는 종료 비트(TOB)가 검출될 때까지 검출 동작을 수행할 수 있고, 종료 비트(TOB)가 검출된 경우, S740 단계가 수행될 수 있다.
S740 단계에서, 스토리지 장치(100)는 장치 송신기(DEVICE TX)를 통해 제2 버스트(BURST 2)의 종료 비트(TOB)를 전송할 수 있다. 종료 비트(TOB)를 전송한 뒤 설정 시간(Config_time)이 도과할 때까지 라인(LINE) 상에 데이터가 전송되지 않을 수 있다.
S750 단계에서, 스토리지 장치(100)는 장치 송신기(DEVICE TX) 및 장치 수신기(DEVICE RX)에 대한 데이터 전송률을 조정할 수 있다. 구체적으로, 클럭 생성기(113)는 변경된 주파수를 갖는 기준 클럭 신호를 호스트(200)로부터 수신하거나, 기준 클럭 신호를 기초로 생성되는 내부 클럭 신호의 주파수를 변경함으로써, 파워 모드 변경 요청(PWR_req)에 포함된 속도 기어 또는 속도 시리즈에 대응되는 데이터 전송률을 설정할 수 있다. 일부 실시 예들에서, S750 단계에서, 도 3을 참조하여 전술된 바와 같이, 오실레이터(410)가 기준 클럭 신호의 주파수를 변경하거나, 분주기(460)가 분주비를 변경함으로써 내부 클럭 신호의 주파수가 변경될 수 있다. 스토리지 장치(100)는 설정 시간(Config_time) 동안 내부 클럭 신호의 주파수를 변경할 수 있다.
본 개시의 예시적 실시 예에 따른 스토리지 장치는, 종료 비트(TOB)를 검출함으로써 호스트로부터 버스트가 모두 수신되는 시점을 판단할 수 있다. 스토리지 장치는, 종료 비트(TOB)가 검출되면 데이터 전송률을 조정할 수 있다. 즉, 스토리지 장치는, 장치 송신기(DEVICE TX) 및 장치 수신기(DEVICE RX) 각각와 연결된 라인들에 데이터가 전송되지 않는 설정 시간(Config_time) 동안 데이터 전송률을 조정하므로, 데이터 전송률이 조정되는 동안 발생할 수 있는 전송 데이터의 에러를 방지할 수 있다.
또한, 하나의 클럭 생성기(113)를 사용하여 장치 송신기(DEVICE TX) 및 장치 수신기(DEVICE RX) 모두 대한 데이터 전송률을 조정할 수 있으므로, 장치 송신기(DEVICE TX) 및 장치 수신기(DEVICE RX) 각각에 대해 클럭 생성기를 구비하는 경우와 비교할 때 스토리지 시스템의 사이즈가 감소될 수 있다.
도 8은 본 개시의 예시적 실시 예에 따른 데이터 전송률 리셋 동작을 설명하는 도면이다. 구체적으로, 도 8은, 호스트 수신기(HOST RX)와 장치 송신기(DEVICE TX)가 구성하는 레인(LANE)에서 발생하는 에러에 의하여, 스토리지 장치(100b)가 전송하는 데이터가 호스트(200b)에 도달하지 않는 경우를 가정한다. 또한, 호스트(200b)와 스토리지 장치(100b)는 데이터 전송률이 조정 또는 리셋되기 전까지 제1 데이터 전송률(DR1)로 데이터를 송/수신하는 것으로 가정한다. 데이터 전송률 리셋 동작은 복수의 단계들(S801 내지 S819)을 포함할 수 있다.
S801 단계에서, 호스트(200b)는 호스트 송신기(HOST TX)를 통해 제1 파워 모드 변경 요청(PWR_req1)을 포함하는 제1 버스트(BURST 1)를 전송할 수 있다. 호스트(200b)는 제1 파워 모드 변경 요청(PWR_req1)을 전송하고, 제1 타임 아웃(timeout 1) 내에 제1 파워 모드 변경 응답(PWR_cnf1)이 수신되는지 여부를 모니터링할 수 있다. S803 단계에서, 스토리지 장치(100b)는 제1 파워 모드 변경 요청(PWR_req1)에 응답하여 장치 송신기(DEVICE TX)를 통해 제1 파워 모드 변경 응답(PWR_cnf1)을 포함하는 제2 버스트(BURST 2)를 전송할 수 있다. 그러나, 장치 송신기(DEVICE)를 포함하는 레인(LANE)의 에러에 의하여, 제1 파워 모드 변경 응답(PWR_cnf1)은 호스트(200b)에 도달하지 못할 수 있다.
S885 단계에서, 호스트(200b)는 제1 타임 아웃(timeout 1) 내에 제1 파워 모드 변경 응답(PWR_cnf1)이 수신되지 않으면, 호스트 송신기(HOST TX)를 통해 제2 파워 모드 변경 요청(PWR_req2)을 전송할 수 있다. 제2 파워 모드 변경 요청(PWR_req2)은 제1 버스트(BURST 1)에 포함될 수 있다. 호스트(200b)는 제2 파워 모드 변경 요청(PWR_req2)을 전송하고, 제2 타임 아웃(timeout 2) 내에 제2 파워 모드 변경 응답(PWR_cnf2)이 수신되는지 여부를 모니터링할 수 있다. 제2 타임 아웃(timeout 2)의 길이는 제1 타임 아웃(time 1)의 길이와 동일하거나 상이할 수 있다. S807 단계에서, 스토리지 장치(100b)는 제2 파워 모드 변경 요청(PWR_req2)에 응답하여 장치 송신기(DEVICE TX)를 통해 제2 파워 모드 변경 응답(PWR_cnf2)을 전송할 수 있다. 제2 파워 모드 변경 응답(PWR_cnf2)은 제2 버스트(BURST 2)에 포함될 수 있다. 그러나, 장치 송신기(DEVICE)를 포함하는 레인(LANE)의 에러에 의하여, 제2 파워 모드 변경 응답(PWR_cnf2)은 호스트(200b)에 도달하지 못할 수 있다.
일부 실시 예들에서, S807 단계 이후, 스토리지 장치(100b)의 데이터 전송률을 조정하는 S820 단계가 수행될 수 있다. S820 단계는 복수의 단계들(S809 내지 S813)을 포함할 수 있다. S809 단계에서, 호스트(200b)는 호스트 송신기(HOST TX)를 통해 제1 버스트(BURST 1)의 종료 비트(TOB)를 전송할 수 있다. S811 단계에서, 스토리지 장치(100b)는 제1 버스트(BURST 1)의 종료 비트(TOB)를 검출하고, 장치 송신기(DEVICE TX)를 통해 제2 버스트(BURST 2)의 종료 비트(TOB)를 전송할 수 있다. 그러나, 장치 송신기(DEVICE)를 포함하는 레인(LANE)의 에러에 의하여, 제2 버스트(BURST 2)의 종료 비트(TOB)는 호스트(200b)에 도달하지 못할 수 있다. S813 단계에서, 도 7을 참조하여 전술된 바와 같이, 스토리지 장치(100b)는 제2 버스트(BURST 2)의 종료 비트(TOB)를 전송하고, 데이터 전송률을 제1 데이터 전송률(DR1)에서 제2 데이터 전송률(DR2)로 조정할 수 있다. 일부 실시 예들에서, S820 단계는 생략될 수 있다.
S815 단계에서, 호스트(200b)는 제2 타임 아웃(timeout 2) 내에 제2 파워 모드 변경 응답(PWR_cnf2)이 수신되지 않으면, 라인 리셋 신호를 스토리지 장치(100b)에 전송할 수 있다. 라인 리셋 신호는 전용되는 리셋 신호 핀을 통해 전송될 수 있다. 라인 리셋 신호는 오작동 상황에서 인터커넥트부(110)의 물리 계층(111)의 리셋을 지시하는 신호일 수 있다. S817 단계에서, 스토리지 장치(100b)는 물리 계층(111)에 포함되는 장치 수신기(DEVICE RX) 및 장치 송신기(DEVICE TX)의 데이터 전송률을 리셋할 수 있다. 호스트(200b)는 데이터 전송률을 조정하지 않았기 때문에, 타임아웃이 발생하는 경우 호스트(200b)의 데이터 전송률은 제1 데이터 전송률(DR1)로 설정되어 있을 수 있다.
일부 실시 예들에서, 스토리지 장치(100b)는 데이터 전송률을 라인 리셋 신호를 수신하기 전의 데이터 전송률, 즉 제1 데이터 전송률(DR1)로 리셋할 수 있다. 따라서, 스토리지 장치(100b)의 데이터 전송률만 리셋되더라도, 호스트(200b)와 스토리지 장치(100b)는 동일한 데이터 전송률을 사용하여 원활하게 통신할 수 있다.
일부 실시 예들에서, 스토리지 장치(100b)는 데이터 전송률을 디폴트 데이터 전송률로 리셋할 수 있다. 디폴트 데이터 전송률은 도 4의 링크 스타트업 단계(S360)에서 미리 설정될 수 있다. 디폴트 데이터 전송률은 복수의 속도 시리즈들 각각에 포함되는 복수의 속도 기어들 중에서 선택될 수 있다. 일 예에서, 디폴트 데이터 전송률은 제1 데이터 전송률(DR1) 또는 제2 데이터 전송률(DR2)일 수 있다. 이 경우, 호스트(200b)는 S819 단계를 수행할 수 있다. S819 단계에서, 호스트(200b)는 데이터 전송률을 디폴트 데이터 전송률로 리셋할 수 있다. 즉, S819 단계가 수행됨으로써, 호스트(200b)와 스토리지 장치(100b)는 동일한 디폴트 데이터 전송률로 리셋되므로, 호스트(200b)와 스토리지 장치(100b)는 동일한 데이터 전송률을 사용하여 원활하게 통신할 수 있다.
도 9는 본 개시의 예시적 실시 예에 따른 데이터 전송률의 조정을 설명하는 도면이다. 구체적으로, 도 9는 링크 에러로 인하여, 장치 송신기(DEVICE TX)에서 전송되는 데이터가 호스트 수신기(HOST RX)에 도달하지 못하는 경우를 설명하기 위한 도면이다. 따라서, 도 9는 도 8을 참조하여 후술될 수 있고, 도 5를 참조하여 전술된 설명은 생략될 수 있다.
도 9를 참조하면, 호스트(200b)는 고속 모드(HS mode)에서 호스트 송신기(HOST TX)를 통해 제1 데이터 전송률(DR1)로 제1 버스트(BURST 1)를 전송할 수 있다. 제1 버스트(BURST 1)는 데이터 전송률을 제2 데이터 전송률(DR2)로 변경 요청하는 제1 파워 모드 변경 요청(PWR_req1)을 포함할 수 있다. 호스트(200b)는 제1 파워 모드 변경 요청(PWR_req1)에 대응하는 제1 파워 모드 변경 응답(PWR_cnf1)이 제1 타임아웃(TIMEOUT 1) 내에 도달하는지 여부를 모니터링할 수 있다. 스토리지 장치(100b)는 제1 파워 모드 변경 요청(PWR_req1)에 응답하여 제1 파워 모드 변경 응답(PWR_cnf1)을 전송할 수 있으나, 링크 에러로 인하여, 제1 파워 모드 변경 응답(PWR_cnf1)은 호스트 수신기(HOST RX)에 도달하지 못할 수 있다.
호스트(200b)는 제1 타임아웃(TIMEOUT 1)이 도과하면 제2 파워 모드 변경 요청(PWR_req2)을 전송할 수 있다. 제2 파워 모드 변경 요청(PWR_req2)은 제1 버스트(BURST 1) 내에 포함될 수 있다. 호스트(200b)는 제2 파워 모드 변경 요청(PWR_req2)에 대응하는 제2 파워 모드 변경 응답(PWR_cnf2)이 제2 타임아웃(TIMEOUT 2) 내에 도달하는지 여부를 모니터링할 수 있다. 스토리지 장치(100b)는 제2 파워 모드 변경 요청(PWR_req2)에 응답하여 제2 파워 모드 변경 응답(PWR_cnf2)을 전송할 수 있으나, 링크 에러로 인하여, 제2 파워 모드 변경 응답(PWR_cnf2)은 호스트 수신기(HOST RX)에 도달하지 못할 수 있다.
호스트(200b)는, 도 8의 S809 단계에서 전술된 바와 같이, 제1 버스트(BURST 1)의 버스트 종료 비트(TOB)를 전송할 수 있다. 스토리지 장치(100b)는, 도 8의 S811 단계에서 전술된 바와 같이, 제1 버스트(BURST 1)의 버스트 종료 비트(TOB)를 수신하고, 제2 버스트(BURST 2)의 버스트 종료 비트(TOB)를 출력할 수 있다. 스토리지 장치(100b)는 도 8의 S813 단계에서 전술된 바와 같이, 데이터 전송률을 제1 데이터 전송률(DR1)에서 제2 데이터 전송률(DR2)로 조정할 수 있다.
호스트(200b)는 제2 타임아웃(TIMEOUT 2)이 도과하면 라인 리셋 신호를 전송할 수 있다. 스토리지 장치(100b)는 라인 리셋 신호를 검출하고, 데이터 전송률을 리셋할 수 있다. 일부 실시 예들에서, 데이터 전송률은 라인 리셋 신호를 수신하기 전의 데이터 전송률, 즉 제1 데이터 전송률(DR1)로 리셋할 수 있다. 일부 실시 예들에서, 스토리지 장치(100b)는 데이터 전송률을 디폴트 데이터 전송률로 리셋할 수 있다. 디폴트 데이터 전송률은 도 4의 링크 스타트업 단계(S360)에서 미리 설정될 수 있다.
도 10은 본 개시의 예시적 실시 예에 따른 데이터 전송률의 조정을 설명하는 도면이다. 구체적으로, 도 10은 호스트(200b)가 라인 리셋 신호를 전송할 때 제2 버스트(BURST 2)가 종료되지 않은 상황을 설명하기 위한 도면이다. 도 9를 통해 전술된 내용은 생략될 수 있다.
도 10을 참조하면, 도 9와 달리, 호스트(200b)가 라인 리셋 신호를 전송할 때, 장치 송신기(DEVICE TX)가 전송하는 제2 버스트(BURST 2)는 종료되지 않을 수 있다. 즉, 제2 버스트(BURST 2)의 종료 비트(TOB)가 전송되지 않은 상태일 수 있다.
따라서, 스토리지 장치(100b)는 라인 리셋 신호를 검출하고, 제2 버스트(BURST 2)의 종료 비트(TOB)를 호스트(200b)에 전송할 수 있다. 즉, 스토리지 장치(100b)는 데이터 전송률을 리셋하기 전에 제2 버스트(BURST 2)를 종료시킴으로써, 데이터 전송률이 리셋되는 동안 제2 버스트(BURST 2)에 포함될 수 있는 에러를 사전에 방지할 수 있다.
도 8의 S819 단계에서 전술된 바와 같이, 호스트(200b)는 라인 리셋 신호를 전송하고, 데이터 전송률을 디폴트 데이터 전송률로 리셋할 수 있다. 디폴트 데이터 전송률은 고속 모드(HS mode)에 포함되는 속도 기어에 대응될 수 있으나, 실시 예는 이에 제한되지 않는다. 즉, 디폴트 데이터 전송률은 내부 클럭 신호를 사용하지 않는 저속 모드(LS mode)일 수도 있다.
스토리지 장치(100b)는 제2 버스트(BURST 2)의 종료 비트(TOB)를 전송한 뒤, 데이터 전송률을 디폴트 데이터 전송률로 리셋할 수 있다. 라인 리셋 동작을 통해, 호스트(200b)와 스토리지 장치(100b)의 데이터 전송률이 디폴트 데이터 전송률로 리셋됨으로써, 호스트(200b)와 스토리지 장치(100b)는 동일한 데이터 전송률을 사용하여 원활하게 통신할 수 있다.
도 11은 본 개시의 예시적 실시 예에 따른 호스트의 동작 방법을 설명하는 흐름도이다. 구체적으로, 도 11은 타임아웃을 기초로 라인 리셋 신호를 출력함으로써 데이터 전송률을 리셋시키는 호스트의 동작 방법을 설명하는 흐름도이다. 호스트의 동작 방법은 복수의 단계들(S1110 내지 S1180)을 포함할 수 있다. 도 11은 1 내지 도 10 중 적어도 하나를 참조하여 후술될 수 있다.
S1110 단계에서, 호스트(200b)는 파워 모드 변경 요청(PWR_req)을 포함하는 제1 버스트(BURST 1)를 전송할 수 있다. S1120 단계에서, 호스트(200b)는 스토리지 장치(100b)로부터 제2 버스트(BURST 2)에 포함되는 파워 모드 변경 응답(PWR_cnf)이 수신되었는지 여부를 식별할 수 있다. 파워 모드 변경 응답(PWR_cnf)이 수신되면 S1170 단계가 수행되고, 파워 모드 변경 응답(PWR_cnf)이 수신되지 않으면 S1130 단계가 수행될 수 있다.
S1170 단계에서, 호스트(200b)는 제2 버스트(BURST 2)의 종료 비트(TOB)를 검출할 수 있다. 예를 들어, 도 1의 호스트(200)에 포함된 TOB 검출기(221)는 미리 결정된 비트 시퀀스를 식별함으로써 종료 비트(TOB)를 검출할 수 있다. 호스트(200b)는 종료 비트(TOB)가 검출될 때까지 반복적으로 검출 동작을 수행할 수 있고, 종료 비트(TOB)가 검출되면 S1180 단계가 수행될 수 있다.
S1180 단계에서, 호스트(200b)는 호스트 송신기(HOST TX) 및 호스트 수신기(HOST RX)에 대한 데이터 전송률을 조정할 수 있다. 예를 들어, 도면들을 통해 전술된 바와 같이, 호스트(200b)는 데이터 전송률을 제1 데이터 전송률(DR1)에서 제2 데이터 전송률(DR2)로 조정할 수 있다. 데이터 전송률은 기준 클럭 신호의 주파수를 변경하거나, 내부 클럭 신호의 주파수를 변경함으로써 조정될 수 있다.
S1130 단계에서, 호스트(200b)는 타임아웃이 도과되었는지 여부를 판단할 수 있다. 타임아웃이 도과하지 않는 경우, S1120 단계에서, 파워 모드 변경 응답(PWR_cnf)이 수신될 때까지 타임아웃을 모니터링할 수 있다. 타임아웃이 도과하는 경우, S1140 단계가 수행될 수 있다.
S1140 단계에서, 호스트(200b)는 타임아웃 횟수(Timeout_count)가 기준 횟수(ref_count)에 도달하였는지 여부를 판단할 수 있다. 도 10을 참조하여 전술된 바와 같이, 기준 횟수는 2회일 수 있으나, 실시 예는 이에 제한되지 않는다. 타임아웃 횟수(Timeout_count)가 기준 횟수(ref_count)에 도달하지 않은 경우, 호스트(200b)는 S1110 단계에서, 스토리지 장치(100b)에 재차 파워 모드 변경 요청(PWR_req)을 전송할 수 있다. 타임아웃 횟수(Timeout_count)가 기준 횟수(ref_count)에 도달한 경우, S1150 단계가 수행될 수 있다.
S1150 단계에서, 호스트(200b)는 리셋 신호 핀을 통해 라인 리셋 신호를 스토리지 장치(100b)로 출력할 수 있다. 라인 리셋 신호는 오작동 상황에서 도 1에 도시된 인터커넥트부(110)의 물리 계층(111)의 리셋을 지시하는 신호일 수 있다.
S1160 단계에서, 호스트(200b)는 데이터 전송률을 디폴트 데이터 전송률로 리셋할 수 있다. 디폴트 데이터 전송률은 도 4의 링크 스타트업 단계(S360)에서 미리 설정될 수 있다.
본 개시의 예시적 실시 예에 따른 호스트는, 타임아웃이 도과하면 라인 리셋 신호를 출력하고, 데이터 전송률을 리셋함으로써, 라인에서 에러가 발생하더라도 스토리지 장치와 원활히 데이터를 송/수신할 수 있다.
도 12는 본 개시의 예시적 실시 예에 따른 스토리지 장치의 동작 방법을 설명하는 흐름도이다. 구체적으로, 도 12는 라인 리셋 신호를 기초로 데이터 전송률을 리셋시키는 스토리지 장치의 동작 방법을 설명하는 흐름도이다. 스토리지 장치의 동작 방법은 복수의 단계들(S1210 내지 S1260)을 포함할 수 있다. 도 12는 1 내지 도 10 중 적어도 하나를 참조하여 후술될 수 있다.
S1210 단계에서, 스토리지 장치(100b)는 장치 수신기(DEVICE RX)를 통해 제1 버스트(BURST 1)에 포함되는 파워 모드 변경 요청(PWR_req)을 수신할 수 있다. S1220 단계에서, 스토리지 장치(100b)는 장치 송신기(DEVICE TX)를 통해 제2 버스트(BURST 2)에 포함되는 파워 모드 변경 응답(PWR_cnf)을 전송할 수 있다. 파워 모드 변경 요청(PWR_req)와 파워 모드 변경 응답(PWR_cnf)을 1회씩 송/수신하는 것으로 도시하였으나, 실시 예는 이에 제한되지 않는다. 예를 들어, 도 11을 참조하여 전술된 바와 같이, 타임아웃에 의하여 호스트(200b)로부터 복수 회의 파워 모드 변경 요청(PWR_req)이 수신될 수 있고, 이에 응답하여, 스토리지 장치(100b)는 복수 회의 파워 모드 변경 응답(PWR_cnf)을 전송할 수도 있다.
S1230 단계에서, 스토리지 장치(100b)는 제1 버스트(BURST 1)의 종료 비트(TOB)를 검출할 수 있다. 예를 들어, 도 1의 장치 컨트롤러(120)에 포함되는 TOB 검출기(121)는 제1 버스트(BURST 1)의 종료 비트(TOB)를 검출할 수 있다. 종료 비트(TOB)가 검출되는 경우, S1240 단계가 수행될 수 있고, 종료 비트(TOB)가 검출되지 않는 경우, S1260 단계가 수행될 수 있다.
S1240 단계에서, 스토리지 장치(100b)는 제2 버스트(BURST 2)의 종료 비트(TOB)를 전송함으로써 제2 버스트(BURST 2)를 종료할 수 있다. 데이터 전송률을 조정하기 전에 버스트를 종료함으로써, 데이터 전송률이 조정되는 동안 제2 버스트(BURST 2)에 포함될 수 있는 에러를 사전에 방지할 수 있다.
S1250 단계에서, 스토리지 장치(100b)는 데이터 전송률을 조정할 수 있다. 예를 들어, 도 9에 도시된 바와 같이, 스토리지 장치(100b)는 데이터 전송률을 제1 데이터 전송률(DR1)에서 제2 데이터 전송률(DR2)로 조정할 수 있다. 제1 데이터 전송률(DR1) 및 제2 데이터 전송률(DR2)은 내부 클럭 신호의 주파수를 기초로 결정되는 고속 모드(HS mode)의 데이터 전송률일 수 있다. 데이터 전송률은, 기준 클럭 신호의 주파수가 변경되거나, 내부 클럭 신호의 주파수가 변경됨으로써 조정될 수 있다.
S1260 단계에서, 스토리지 장치(100b)는 라인 리셋 신호를 검출할 수 있다. 라인 리셋 신호가 검출되는 경우, S1270 단계가 수행되고, 라인 리셋 신호가 검출되지 않는 경우, S1230 단계가 재차 수행될 수 있다.
S1270 단계에서, 스토리지 장치(100b)는 데이터 전송률을 리셋할 수 있다. 구체적으로, 스토리지 장치(100b)는 데이터 전송률을, 라인 리셋 신호가 검출되기 전의 데이터 전송률로 리셋하거나, 디폴트 데이터 전송률로 리셋할 수 있다. 일부 실시 예들에서, S1250 단계에서 데이터 전송률이 제1 데이터 전송률(DR1)에서 제2 데이터 전송률(DR2)로 조정된 경우, S1270 단계에서, 스토리지 장치(100b)는 라인 리셋 신호를 기초로 데이터 전송률을 제1 데이터 전송률(DR1)로 리셋할 수 있다. 일부 실시 예들에서, 디폴트 데이터 전송률은 도 4를 참조하여 전술된 링크 스타트업 단계(S360)에서 설정될 수 있다. 디폴트 데이터 전송률은 고속 모드(HS mode)에 포함되는 속도 기어에 대응될 수 있으나, 실시 예는 이에 제한되지 않는다. 즉, 디폴트 데이터 전송률은 내부 클럭 신호를 사용하지 않는 저속 모드(LS mode)일 수도 있다.
일부 실시 예들에서, 도 10을 참조하여 전술된 바와 같이, 라인 리셋 신호가 검출될 때 제2 버스트(BURST 2)의 종료 비트(TOB)가 전송되지 않은 상태일 수 있다. 따라서, S1270 단계에서, 스토리지 장치(100b)는 데이터 전송률을 리셋하기 전에 제2 버스트(BURST 2)의 종료 비트(TOB)를 전송함으로써 데이터 전송률이 리셋되는 동안 전송 오류가 발생하는 것을 방지할 수 있다.
도 13은 본 발명의 일 실시예에 따른 UFS 시스템(1000)에 대해 설명하기 위한 도면이다. UFS 시스템(1000)은 JEDEC(Joint Electron Device Engineering Council)에서 발표하는 UFS 표준을 따르는 시스템으로서, UFS 호스트(1100), UFS 장치(1200) 및 UFS 인터페이스(1300)를 포함할 수 있다. 도면들을 통해 전술된 스토리지 시스템(10)에 대한 설명은, 도 13에 대한 이하의 설명과 상충되지 않는 범위 내에서 도 13의 UFS 시스템(1000)에도 적용될 수 있다.
도 13을 참조하면, UFS 호스트(1100)와 UFS 장치(1200)는 UFS 인터페이스(1300)를 통해 상호 연결될 수 있다. 도 1의 호스트(200)가 애플리케이션 프로세서일 경우, UFS 호스트(1100)는 해당 애플리케이션 프로세서의 일부로서 구현될 수 있다. UFS 호스트 컨트롤러(1110)는 도 1의 호스트 컨트롤러(220)에 각각 대응될 수 있다. UFS 장치(1200)는 도 1의 스토리지 장치(100)에 대응될 수 있으며, UFS 장치 컨트롤러(1210) 및 비휘발성 메모리(1220)는 도 1의 장치 컨트롤러(120) 및 비휘발성 메모리(130)에 각각 대응될 수 있다.
UFS 호스트(1100)는 UFS 호스트 컨트롤러(1110), 애플리케이션(1120), UFS 드라이버(1130), 호스트 메모리(1140) 및 UIC(UFS interconnect) 레이어(1150)를 포함할 수 있다. UFS 장치(1200)는 UFS 장치 컨트롤러(1210), 비휘발성 메모리(1220), 스토리지 인터페이스(1230), 장치 메모리(1240), UIC 레이어(1250) 및 레귤레이터(1260)를 포함할 수 있다. 비휘발성 메모리(1220)는 복수의 메모리 유닛(1221)으로 구성될 수 있으며, 이와 같은 메모리 유닛(1221)은 2D 구조 혹은 3D 구조의 V-NAND 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다. UFS 장치 컨트롤러(1210)와 비휘발성 메모리(1220)는 스토리지 인터페이스(1230)를 통해 서로 연결될 수 있다. 스토리지 인터페이스(1230)는 토글(Toggle) 혹은 온파이(ONFI)와 같은 표준 규약을 준수하도록 구현될 수 있다.
애플리케이션(1120)은 UFS 장치(1200)의 기능을 이용하기 위해 UFS 장치(1200)와의 통신을 원하는 프로그램을 의미할 수 있다. 애플리케이션(1120)은 UFS 장치(1200)에 대한 입출력을 위해 입출력 요청(input-output request, IOR)을 UFS 드라이버(1130)로 전송할 수 있다. 입출력 요청(IOR)은 데이터의 독출(read) 요청, 저장(write) 요청 및/또는 소거(discard) 요청 등을 의미할 수 있으나, 반드시 이에 한정되는 것은 아니다.
UFS 드라이버(1130)는 UFS-HCI(host controller interface)를 통해 UFS 호스트 컨트롤러(1110)를 관리할 수 있다. UFS 드라이버(1130)는 애플리케이션(1120)에 의해 생성된 입출력 요청을 UFS 표준에 의해 정의된 UFS 명령으로 변환하고, 변환된 UFS 명령을 UFS 호스트 컨트롤러(1110)로 전달할 수 있다. 하나의 입출력 요청은 복수의 UFS 명령으로 변환될 수 있다. UFS 명령은 기본적으로 SCSI 표준에 의해 정의된 명령일 수 있지만, UFS 표준 전용 명령일 수도 있다.
UFS 호스트 컨트롤러(1110)는 UFS 드라이버(1130)에 의해 변환된 UFS 명령을 UIC 레이어(1150)와 UFS 인터페이스(1300)를 통해 UFS 장치(1200)의 UIC 레이어(1250)로 전송할 수 있다. 이 과정에서, UFS 호스트 컨트롤러(1110)의 UFS 호스트 레지스터(1111)는 명령 큐(command queue, CQ)로서의 역할을 수행할 수 있다.
UFS 호스트(1100) 측의 UIC 레이어(1150)는 MIPI M-PHY(1151)와 MIPI UniPro(1152)를 포함할 수 있으며, UFS 장치(1200) 측의 UIC 레이어(1250) 또한 MIPI M-PHY(1251)와 MIPI UniPro(1252)을 포함할 수 있다.
UFS 인터페이스(1300)는 기준 클럭 신호(REF_CLK)를 전송하는 라인, UFS 장치(1200)에 대한 하드웨어 리셋 신호(RESET_n)를 전송하는 라인, 차동 입력 신호 쌍(DIN_t와 DIN_c)을 전송하는 한 쌍의 라인 및 차동 출력 신호 쌍(DOUT_t와 DOUT_c)을 전송하는 한 쌍의 라인을 포함할 수 있다.
UFS 호스트(1100)로부터 UFS 장치(1200)로 제공되는 기준 클럭의 주파수 값은 19.2MHz, 26MHz, 38.4MHz 및 52MHz의 네 개의 값 중 하나일 수 있으나, 반드시 이에 한정되지는 않는다. UFS 호스트(1100)는 동작 중에도, 즉 UFS 호스트(1100)와 UFS 장치(1200) 사이에서 데이터 송수신이 수행되는 중에도 기준 클럭의 주파수 값을 변경할 수 있다. UFS 장치(1200)는 위상 동기 루프(phase-locked loop, PLL) 등을 이용하여, UFS 호스트(1100)로부터 제공받은 기준 클럭으로부터 다양한 주파수의 클럭을 생성할 수 있다. 또한, UFS 호스트(1100)는 기준 클럭의 주파수 값을 통해 UFS 호스트(1100)와 UFS 장치(1200) 간의 데이터 전송률(data rate)의 값을 설정할 수도 있다. 즉, 상기 데이터 전송률의 값은 기준 클럭의 주파수 값에 의존하여 결정될 수 있다.
UFS 인터페이스(1300)는 복수의 레인들(multiple lanes)을 지원할 수 있으며, 각 레인은 차동(differential) 쌍으로 구현될 수 있다. 예컨대, UFS 인터페이스는 하나 이상의 수신 레인(receive lane)과 하나 이상의 송신 레인(transmit lane)을 포함할 수 있다. 도 13에서, 차동 입력 신호 쌍(DIN_T와 DIN_C)을 전송하는 한 쌍의 라인은 수신 레인을, 차동 출력 신호 쌍(DOUT_T와 DOUT_C)을 전송하는 한 쌍의 라인은 송신 레인을 각각 구성할 수 있다. 도 13에서는 하나의 송신 레인과 하나의 수신 레인을 도시하였지만, 송신 레인과 수신 레인의 수는 변경될 수 있다.
수신 레인 및 송신 레인은 직렬 통신(serial communication) 방식으로 데이터를 전송할 수 있으며, 수신 레인과 송신 레인이 분리된 구조에 의해 UFS 호스트(1100)와 UFS 장치(1200) 간의 풀 듀플렉스(full-duplex) 방식의 통신이 가능하다. 즉, UFS 장치(1200)는 수신 레인을 통해 UFS 호스트(1100)로부터 데이터를 수신받는 동안에도, 송신 레인을 통해 UFS 호스트(1100)로 데이터를 송신할 수 있다. 또한, UFS 호스트(1100)로부터 UFS 장치(1200)로의 명령과 같은 제어 데이터와, UFS 호스트(1100)가 UFS 장치(1200)의 비휘발성 메모리(1220)에 저장하고자 하거나 비휘발성 메모리(1220)로부터 독출하고자 하는 사용자 데이터는 동일한 레인을 통해 전송될 수 있다. 이에 따라, UFS 호스트(1100)와 UFS 장치(1200) 간에는 한 쌍의 수신 레인과 한 쌍의 송신 레인 외에 데이터 전송을 위한 별도의 레인이 더 구비될 필요가 없다.
UFS 장치(1200)의 UFS 장치 컨트롤러(1210)는 UFS 장치(1200)의 동작을 전반적으로 제어할 수 있다. UFS 장치 컨트롤러(1210)는 논리적인 데이터 저장 단위인 LU(logical unit)(1211)를 통해 비휘발성 메모리(1220)를 관리할 수 있다. LU(1211)의 개수는 8개일 수 있으나, 이에 한정되는 것은 아니다. UFS 장치 컨트롤러(1210)는 플래시 변환 계층(flash translation layer, FTL)을 포함할 수 있으며, FTL의 어드레스 매핑(address mapping) 정보를 이용하여 UFS 호스트(1100)로부터 전달된 논리적인 데이터 주소, 예컨대 LBA(logical block address)를 물리적인 데이터 주소로, 예컨대 PBA(physical block address)로 변환할 수 있다. UFS 시스템(1000)에서 사용자 데이터(user data)의 저장을 위한 논리 블록(logical block)은 소정 범위의 크기를 가질 수 있다. 예컨대, 논리 블록의 최소 크기는 4Kbyte로 설정될 수 있다.
UFS 호스트(1100)로부터의 명령이 UIC 레이어(1250)를 통해 UFS 장치(1200)로 입력되면, UFS 장치 컨트롤러(1210)는 입력된 명령에 따른 동작을 수행하고, 상기 동작이 완료되면 완료 응답을 UFS 호스트(1100)로 전송할 수 있다.
일례로서, UFS 호스트(1100)가 UFS 장치(1200)에 사용자 데이터를 저장하고자 할 경우, UFS 호스트(1100)는 데이터 저장 명령을 UFS 장치(1200)로 전송할 수 있다. 사용자 데이터를 전송받을 준비가 되었다(ready-to-transfer)는 응답을 UFS 장치(1200)로부터 수신하면, UFS 호스트(1100)는 사용자 데이터를 UFS 장치(1200)로 전송할 수 있다. UFS 장치 컨트롤러(1210)는 전송받은 사용자 데이터를 장치 메모리(1240) 내에 임시로 저장하고, FTL의 어드레스 매핑 정보에 기초하여 장치 메모리(1240)에 임시로 저장된 사용자 데이터를 비휘발성 메모리(1220)의 선택된 위치에 저장할 수 있다.
또 다른 예로서, UFS 호스트(1100)가 UFS 장치(1200)에 저장된 사용자 데이터를 독출하고자 할 경우, UFS 호스트(1100)는 데이터 독출 명령을 UFS 장치(1200)로 전송할 수 있다. 명령을 수신한 UFS 장치 컨트롤러(1210)는 상기 데이터 독출 명령에 기초하여 비휘발성 메모리(1220)로부터 사용자 데이터를 독출하고, 독출된 사용자 데이터를 장치 메모리(1240) 내에 임시로 저장할 수 있다. 이러한 독출 과정에서, UFS 장치 컨트롤러(1210)는 내장된 ECC(error correction code) 엔진(미도시)을 이용하여, 독출된 사용자 데이터의 에러를 검출하고 정정할 수 있다. 보다 구체적으로, ECC 엔진은 비휘발성 메모리(1220)에 기입될 기입 데이터에 대하여 패리티 비트(parity bit)들을 생성할 수 있으며, 이와 같이 생성된 패리티 비트들은 기입 데이터와 함께 비휘발성 메모리(1220) 내에 저장될 수 있다. 비휘발성 메모리(1220)로부터의 데이터 독출 시, ECC 엔진은 독출 데이터와 함께 비휘발성 메모리(1220)로부터 독출되는 패리티 비트들을 이용하여 독출 데이터의 에러를 정정하고, 에러가 정정된 독출 데이터를 출력할 수 있다.
그리고, UFS 장치 컨트롤러(1210)는 장치 메모리(1240) 내에 임시로 저장된 사용자 데이터를 UFS 호스트(1100)로 전송할 수 있다. 아울러, UFS 장치 컨트롤러(1210)는 AES(advanced encryption standard) 엔진(미도시)을 더 포함할 수 있다. AES 엔진은, UFS 장치 컨트롤러(1210)로 입력되는 데이터에 대한 암호화(encryption) 동작과 복호화(decryption) 동작 중 적어도 하나를, 대칭 키 알고리즘(symmetric-key algorithm)을 이용하여 수행할 수 있다.
UFS 호스트(1100)는 명령 큐로 기능할 수 있는 UFS 호스트 레지스터(1111)에 UFS 장치(1200)로 송신될 명령들을 순서에 따라 저장하고, 상기 순서대로 UFS 장치(1200)에 명령을 송신할 수 있다. 이 때, UFS 호스트(1100)는 이전에 송신된 명령이 아직 UFS 장치(1200)에 의해 처리 중인 경우에도, 즉 이전에 송신된 명령이 UFS 장치(1200)에 의해 처리가 완료되었다는 통지를 받기 전에도 명령 큐에 대기 중인 다음 명령을 UFS 장치(1200)로 송신할 수 있으며, 이에 따라 UFS 장치(1200) 역시 이전에 송신된 명령을 처리하는 중에도 다음 명령을 UFS 호스트(1100)로부터 수신할 수 있다. 이와 같은 명령 큐에 저장될 수 있는 명령의 최대 개수(queue depth)는 예컨대 32개일 수 있다. 또한, 명령 큐는 헤드 포인터(head point)와 테일 포인터(tail pointer)를 통해 큐에 저장된 명령 열의 시작과 끝을 각각 나타내는 원형 큐(circular queue) 타입으로 구현될 수 있다.
복수의 메모리 유닛(1221) 각각은 메모리 셀 어레이(미도시)와 상기 메모리 셀 어레이의 작동을 제어하는 제어 회로(미도시)를 포함할 수 있다. 상기 메모리 셀 어레이는 2차원 메모리 셀 어레이 또는 3차원 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 복수의 메모리 셀을 포함하며, 각각의 메모리 셀은 1비트의 정보를 저장하는 셀(single level cell, SLC)일 수도 있지만, MLC(multi level cell), TLC(triple level cell), QLC(quadruple level cell)와 같이 2비트 이상의 정보를 저장하는 셀일 수도 있다. 3차원 메모리 셀 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직으로 배향되는(vertically oriented) 수직 NAND 스트링을 포함할 수 있다.
UFS 장치(1200)에는 전원 전압으로서 VCC, VCCQ, VCCQ2 등이 입력될 수 있다. VCC는 UFS 장치(1200)를 위한 주 전원 전압으로서, 2.4~3.6V의 값을 가질 수 있다. VCCQ는 낮은 범위의 전압을 공급하기 위한 전원 전압으로서, 주로 UFS 장치 컨트롤러(1210)를 위한 것이며. 1.14~1.26V의 값을 가질 수 있다. VCCQ2는 VCC보다는 낮지만 VCCQ보다는 높은 범위의 전압을 공급하기 위한 전원 전압으로서, 주로 MIPI M-PHY(1251)와 같은 입출력 인터페이스를 위한 것이며, 1.7~1.95V의 값을 가질 수 있다. 상기 전원 전압들은 레귤레이터(1260)를 거쳐 UFS 장치(1200)의 각 구성 요소들을 위해 공급될 수 있다. 레귤레이터(1260)는 전술한 전원 전압들 중 서로 다른 것에 각각 연결되는 단위 레귤레이터의 집합으로 구현될 수 있다.
도 14a 내지 14c는 UFS 카드의 폼 팩터에 대해 설명하기 위한 도면이다. 도 13을 참조하여 설명된 UFS 장치(1200)가 UFS 카드(2000) 형태로 구현된 경우, UFS 카드(2000)의 외형은 도 14a 내지 14c에 도시된 바를 따를 수 있다.
도 14a는 UFS 카드(2000)의 평면도(top view)를 예시적으로 보여주고 있다. 도 14a를 참조하면, UFS 카드(2000)는 전체적으로 상어(shark) 형상의 디자인을 따르고 있다는 것을 확인할 수 있다. 도 14a와 관련하여, UFS 카드(2000)는 예시적으로 아래의 표 1에 기재된 바와 같은 치수(dimension) 값을 가질 수 있다.
항목 | 치수 (mm) |
T1 | 9.70 |
T2 | 15.00 |
T3 | 11.00 |
T4 | 9.70 |
T5 | 5.15 |
T6 | 0.25 |
T7 | 0.60 |
T8 | 0.75 |
T9 | R0.80 |
도 26b는 UFS 카드(2000)의 측면도(side view)를 예시적으로 보여주고 있다. 도 26b와 관련하여, UFS 카드(2000)는 예시적으로 아래의 표 2에 기재된 바와 같은 치수(dimension) 값을 가질 수 있다.
항목 | 치수 (mm) |
S1 | 0.74±0.06 |
S2 | 0.30 |
S3 | 0.52 |
S4 | 1.20 |
S5 | 1.05 |
S6 | 1.00 |
도 26c는 UFS 카드(2000)의 저면도(bottom view)를 예시적으로 보여주고 있다. 도 26c를 참조하면, UFS 카드(2000)의 저면에는 UFS 슬롯과의 전기적 접촉을 위한 복수 개의 핀(pin)이 형성될 수 있으며, 각 핀의 기능에 대해서는 후술한다. UFS 카드(2000)의 상면과 저면 간의 대칭성에 의거하여, 도 26a 및 표 1을 참조하여 설명된 치수에 관한 정보 중 일부(예컨대, T1 내지 T5 및 T9)는 도 26c에 도시된 바와 같은 UFS 카드(2000)의 저면도에도 적용될 수 있다.UFS 카드(2000)의 저면에는 UFS 호스트와의 전기적 연결을 위해 복수의 핀이형성될 수 있으며, 도 26c에 의하면 핀의 개수는 총 12개일 수 있다. 각 핀은 직사각형 형상을 가질 수 있으며, 핀에 대응되는 신호명(signal name)은 도 26c에 표시된 바와 같다. 각 핀에 대한 개략적인 정보에 대해서는 아래의 표 3을 참조할 수 있다.
번호 | 신호명 | 설명 | 치수 (mm) |
1 | Vss | 그라운드(GND) | 3.00 × 0.72±0.05 |
2 | DIN_C | 호스트로부터 UFS 카드(4000)로 입력되는 차동 입력 신호 (DIN_C는 negative node, DIN_T는 positive node) | 1.50 × 0.72±0.05 |
3 | DIN_T | ||
4 | Vss | 1번과 같음 | 3.00 × 0.72±0.05 |
5 | DOUT_C | UFS 카드(4000)로부터 호스트로 출력되는 차동 출력 신호 (DOUT_C는 negative node, DOUT_T는 positive node) | 1.50 × 0.72±0.05 |
6 | DOUT_T | ||
7 | Vss | 1번과 같음 | 3.00 × 0.72±0.05 |
8 | REF_CLK | 호스트로부터 UFS 카드(4000)로 제공되는 기준 클락 | 1.50 × 0.72±0.05 |
9 | VCCQ2 | 주로 PHY 인터페이스 혹은 컨트롤러를 위해 제공되는, Vcc에 비해 상대적으로 낮은 값을 갖는 전원 전압 | 3.00 × 0.72±0.05 |
10 | C/D(GND) | 카드 검출(Card Detection)용 신호 | 1.50 × 0.72±0.05 |
11 | Vss | 1번과 같음 | 3.00 × 0.80±0.05 |
12 | Vcc | 주 전원 전압 |
도 15는 본 개시의 일 실시예에 따른 메모리 시스템(3000)을 나타내는 블록도이다.
도 15를 참조하면, 메모리 시스템(3000)은 메모리 장치(3200) 및 메모리 컨트롤러(3100)를 포함할 수 있다. 메모리 장치(3200)는 복수의 채널들 중 하나를 기반으로 메모리 컨트롤러(3100)와 통신하는 비휘발성 메모리 장치들 중 하나에 대응할 수 있다. 예를 들어, 메모리 장치(3200)는 도 1의 비휘발성 메모리(130)에 대응할 수 있고, 메모리 컨트롤러(3100)는 도 1의 장치 컨트롤러(120)에 대응할 수 있다.
메모리 장치(3200)는 제1 내지 제8 핀들(P11~P18), 메모리 인터페이스 회로(3210), 제어 로직 회로(3220), 및 메모리 셀 어레이(3230)를 포함할 수 있다. 메모리 인터페이스 회로(3210)는 제1 핀(P11)을 통해 메모리 컨트롤러(3100)로부터 칩 인에이블 신호(nCE)를 수신할 수 있다. 메모리 인터페이스 회로(3210)는 칩 인에이블 신호(nCE)에 따라 제2 내지 제8 핀들(P12~P18)을 통해 메모리 컨트롤러(3100)와 신호들을 송수신할 수 있다. 예를 들어, 칩 인에이블 신호(nCE)가 인에이블 상태(예를 들어, 로우 레벨)인 경우, 메모리 인터페이스 회로(3310)는 제2 내지 제8 핀들(P12~P18)을 통해 메모리 컨트롤러(3100)와 신호들을 송수신할 수 있다.
메모리 인터페이스 회로(3210)는 제2 내지 제4 핀들(P12~P14)을 통해 메모리 컨트롤러(3100)로부터 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 및 쓰기 인에이블 신호(nWE)를 수신할 수 있다. 메모리 인터페이스 회로(3210)는 제7 핀(P17)을 통해 메모리 컨트롤러(3100)로부터 데이터 신호(DQ)를 수신하거나, 메모리 컨트롤러(3100)로 데이터 신호(DQ)를 전송할 수 있다. 데이터 신호(DQ)를 통해 커맨드(CMD), 어드레스(ADDR), 및 데이터(DATA)가 전달될 수 있다. 예를 들어, 데이터 신호(DQ)는 복수의 데이터 신호 라인들을 통해 전달될 수 있다. 이 경우, 제7 핀(P17)은 복수의 데이터 신호들에 대응하는 복수개의 핀들을 포함할 수 있다.
메모리 인터페이스 회로(3210)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 커맨드 래치 인에이블 신호(CLE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 수신되는 데이터 신호(DQ)로부터 커맨드(CMD)를 획득할 수 있다. 메모리 인터페이스 회로(3210)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 어드레스 래치 인에이블 신호(ALE)의 인에이블 구간(예를 들어, 하이 레벨 상태)에서 수신되는 데이터 신호(DQ)로부터 어드레스(ADDR)를 획득할 수 있다.
예시적인 실시 예에서, 쓰기 인에이블 신호(nWE)는 고정된(static) 상태(예를 들어, 하이(high) 레벨 또는 로우(low) 레벨)를 유지하다가 하이 레벨과 로우 레벨 사이에서 토글할 수 있다. 예를 들어, 쓰기 인에이블 신호(nWE)는 커맨드(CMD) 또는 어드레스(ADDR)가 전송되는 구간에서 토글할 수 있다. 이에 따라, 메모리 인터페이스 회로(3210)는 쓰기 인에이블 신호(nWE)의 토글 타이밍들에 기초하여 커맨드(CMD) 또는 어드레스(ADDR)를 획득할 수 있다.
메모리 인터페이스 회로(3210)는 제5 핀(P15)을 통해 메모리 컨트롤러(3100)로부터 읽기 인에이블 신호(nRE)를 수신할 수 있다. 메모리 인터페이스 회로(3210)는 제6 핀(P16)을 통해 메모리 컨트롤러(3100)로부터 데이터 스트로브 신호(DQS)를 수신하거나, 메모리 컨트롤러(3100)로 데이터 스트로브 신호(DQS)를 전송할 수 있다.
메모리 장치(3200)의 데이터(DATA) 출력 동작에서, 메모리 인터페이스 회로(3210)는 데이터(DATA)를 출력하기 전에 제5 핀(P15)을 통해 토글하는 읽기 인에이블 신호(nRE)를 수신할 수 있다. 메모리 인터페이스 회로(3210)는 읽기 인에이블 신호(nRE)의 토글링에 기초하여 토글하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 예를 들어, 메모리 인터페이스 회로(3210)는 읽기 인에이블 신호(nRE)의 토글링 시작 시간을 기준으로 미리 정해진 딜레이(예를 들어, tDQSRE) 이후에 토글하기 시작하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 메모리 인터페이스 회로(310)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터(DATA)를 포함하는 데이터 신호(DQ)를 전송할 수 있다. 이에 따라, 데이터(DATA)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 정렬되어 메모리 컨트롤러(3100)로 전송될 수 있다.
메모리 장치(3200)의 데이터(DATA) 입력 동작에서, 메모리 컨트롤러(3100)로부터 데이터(DATA)를 포함하는 데이터 신호(DQ)가 수신되는 경우, 메모리 인터페이스 회로(3210)는 메모리 컨트롤러(3100)로부터 데이터(DATA)와 함께 토글하는 데이터 스트로브 신호(DQS)를 수신할 수 있다. 메모리 인터페이스 회로(3210)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터 신호(DQ)로부터 데이터(DATA)를 획득할 수 있다. 예를 들어, 메모리 인터페이스 회로(3210)는 데이터 스트로브 신호(DQS)의 상승 에지 및 하강 에지에서 데이터 신호(DQ)를 샘플링함으로써 데이터(DATA)를 획득할 수 있다.
메모리 인터페이스 회로(3210)는 제8 핀(P18)을 통해 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(3100)로 전송할 수 있다. 메모리 인터페이스 회로(3210)는 레디/비지 출력 신호(nR/B)를 통해 메모리 장치(3200)의 상태 정보를 메모리 컨트롤러(3100)로 전송할 수 있다. 메모리 장치(3200)가 비지 상태인 경우(즉, 메모리 장치(3200) 내부 동작들이 수행 중인 경우), 메모리 인터페이스 회로(3210)는 비지 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(3100)로 전송할 수 있다. 메모리 장치(3200)가 레디 상태인 경우(즉, 메모리 장치(3200) 내부 동작들이 수행되지 않거나 완료된 경우), 메모리 인터페이스 회로(3210)는 레디 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(3100)로 전송할 수 있다. 예를 들어, 메모리 장치(3200)가 페이지 독출 명령에 응답하여 메모리 셀 어레이(3230)로부터 데이터(DATA)를 독출하는 동안, 메모리 인터페이스 회로(3210)는 비지 상태(예를 들어, 로우 레벨)를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(3100)로 전송할 수 있다. 예를 들어, 메모리 장치(3200)가 프로그램 명령에 응답하여 메모리 셀 어레이(3230)로 데이터(DATA)를 프로그램하는 동안, 메모리 인터페이스 회로(3210)는 비지 상태를 나타내는 레디/비지 출력 신호(nR/B)를 메모리 컨트롤러(3100)로 전송할 수 있다.
제어 로직 회로(3220)는 메모리 장치(3200)의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직 회로(3220)는 메모리 인터페이스 회로(3210)로부터 획득된 커맨드/어드레스(CMD/ADDR)를 수신할 수 있다. 제어 로직 회로(3220)는 수신된 커맨드/어드레스(CMD/ADDR)에 따라 메모리 장치(3200)의 다른 구성 요소들을 제어하기 위한 제어 신호들을 생성할 수 있다. 예를 들어, 제어 로직 회로(3220)는 메모리 셀 어레이(3230)에 데이터(DATA)를 프로그램하거나, 또는 메모리 셀 어레이(3230)로부터 데이터(DATA)를 독출하기 위한 각종 제어 신호들을 생성할 수 있다.
메모리 셀 어레이(3230)는 제어 로직 회로(3220)의 제어에 따라 메모리 인터페이스 회로(3210)로부터 획득된 데이터(DATA)를 저장할 수 있다. 메모리 셀 어레이(3230)는 제어 로직 회로(3220)의 제어에 따라 저장된 데이터(DATA)를 메모리 인터페이스 회로(3210)로 출력할 수 있다.
메모리 셀 어레이(3230)는 복수의 메모리 셀들을 포함할 수 있다. 예를 들어, 복수의 메모리 셀들은 플래시 메모리 셀들일 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 메모리 셀들은 RRAM(Resistive Random Access Memory) 셀, FRAM(Ferroelectric Random Access Memory) 셀, PRAM(Phase Change Random Access Memory) 셀, TRAM(Thyristor Random Access Memory) 셀, MRAM(Magnetic Random Access Memory) 셀들일 수 있다. 이하에서는, 메모리 셀들이 낸드(NAND) 플래시 메모리 셀들인 실시 예를 중심으로 본 발명의 실시 예들이 설명될 것이다.
메모리 컨트롤러(3100)는 제1 내지 제8 핀들(P21~P28), 및 컨트롤러 인터페이스 회로(3110)를 포함할 수 있다. 제1 내지 제8 핀들(P21~P28)은 메모리 장치(3200)의 제1 내지 제8 핀들(P11~P18)에 대응할 수 있다. 컨트롤러 인터페이스 회로(3110)는 제1 핀(P21)을 통해 메모리 장치(3200)로 칩 인에이블 신호(nCE)를 전송할 수 있다. 컨트롤러 인터페이스 회로(3110)는 칩 인에이블 신호(nCE)를 통해 선택한 메모리 장치(3200)와 제2 내지 제8 핀들(P22~P28)을 통해 신호들을 송수신할 수 있다.
컨트롤러 인터페이스 회로(3110)는 제2 내지 제4 핀들(P22~P24)을 통해 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 및 쓰기 인에이블 신호(nWE)를 메모리 장치(3200)로 전송할 수 있다. 컨트롤러 인터페이스 회로(3110)는 제7 핀(P27)을 통해 메모리 장치(3200)로 데이터 신호(DQ)를 전송하거나, 메모리 장치(3200)로부터 데이터 신호(DQ)를 수신할 수 있다.
컨트롤러 인터페이스 회로(3110)는 토글하는 쓰기 인에이블 신호(nWE)와 함께 커맨드(CMD) 또는 어드레스(ADDR)를 포함하는 데이터 신호(DQ)를 메모리 장치(3200)로 전송할 수 있다. 컨트롤러 인터페이스 회로(3110)는 인에이블 상태를 가지는 커맨드 래치 인에이블 신호(CLE)를 전송함에 따라 커맨드(CMD)를 포함하는 데이터 신호(DQ)를 메모리 장치(3200)로 전송하고, 인에이블 상태를 가지는 어드레스 래치 인에이블 신호(ALE)를 전송함에 따라 어드레스(ADDR)를 포함하는 데이터 신호(DQ)를 메모리 장치(3200)로 전송할 수 있다.
컨트롤러 인터페이스 회로(3110)는 제5 핀(P25)을 통해 메모리 장치(3200)로 읽기 인에이블 신호(nRE)를 전송할 수 있다. 컨트롤러 인터페이스 회로(3110)는 제6 핀(P26)을 통해 메모리 장치(3200)로부터 데이터 스트로브 신호(DQS)를 수신하거나, 메모리 장치(3200)로 데이터 스트로브 신호(DQS)를 전송할 수 있다.
메모리 장치(3200)의 데이터(DATA) 출력 동작에서, 컨트롤러 인터페이스 회로(3110)는 토글하는 읽기 인에이블 신호(nRE)를 생성하고, 읽기 인에이블 신호(nRE)를 메모리 장치(3200)로 전송할 수 있다. 예를 들어, 컨트롤러 인터페이스 회로(3110)는 데이터(DATA)가 출력되기 전에 고정된 상태(예를 들어, 하이 레벨 또는 로우 레벨)에서 토글 상태로 변경되는 읽기 인에이블 신호(nRE)를 생성할 수 있다. 이에 따라, 메모리 장치(3200)에서 읽기 인에이블 신호(nRE)에 기초하여 토글하는 데이터 스트로브 신호(DQS)가 생성될 수 있다. 컨트롤러 인터페이스 회로(3110)는 메모리 장치(3200)로부터 토글하는 데이터 스트로브 신호(DQS)와 함께 데이터(DATA)를 포함하는 데이터 신호(DQ)를 수신할 수 있다. 컨트롤러 인터페이스 회로(3110)는 데이터 스트로브 신호(DQS)의 토글 타이밍에 기초하여 데이터 신호(DQ)로부터 데이터(DATA)를 획득할 수 있다.
메모리 장치(3200)의 데이터(DATA) 입력 동작에서, 컨트롤러 인터페이스 회로(3110)는 토글하는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 예를 들어, 컨트롤러 인터페이스 회로(3110)는 데이터(DATA)를 전송하기 전에 고정된 상태(예를 들어, 하이 레벨 또는 로우 레벨)에서 토글 상태로 변경되는 데이터 스트로브 신호(DQS)를 생성할 수 있다. 컨트롤러 인터페이스 회로(3110)는 데이터 스트로브 신호(DQS)의 토글 타이밍들에 기초하여 데이터(DATA)를 포함하는 데이터 신호(DQ)를 메모리 장치(3200)로 전송할 수 있다.
컨트롤러 인터페이스 회로(3110)는 제8 핀(P28)을 통해 메모리 장치(3200)로부터 레디/비지 출력 신호(nR/B)를 수신할 수 있다. 컨트롤러 인터페이스 회로(3110)는 레디/비지 출력 신호(nR/B)에 기초하여 메모리 장치(3200)의 상태 정보를 판별할 수 있다.
도 16은 본 발명의 일 실시예에 따른 UFS 장치에 적용될 수 있는 3D VNAND 구조에 대해 설명하기 위한 도면이다. UFS 장치의 스토리지 모듈이 3D VNAND(Vertical NAND) 타입의 플래시 메모리로 구현될 경우, 스토리지 모듈을 구성하는 복수의 메모리 블록 각각은 도 16에 도시된 바와 같은 등가 회로로 표현될 수 있다. 도 16에 도시된 메모리 블록(BLKi)은 기판 상에 삼차원 구조로 형성되는 삼차원 메모리 블록을 나타낸다. 예를 들어, 메모리 블록(BLKi)에 포함되는 복수의 메모리 낸드 스트링들은 상기 기판과 수직한 방향으로 형성될 수 있다.
도 16을 참조하면, 메모리 블록(BLKi)은 비트 라인들(BL1, BL2, BL3)과 공통 소스 라인(CSL) 사이에 연결되는 복수의 메모리 낸드 스트링들(NS11~NS33)을 포함할 수 있다. 복수의 메모리 낸드 스트링들(NS11~NS33) 각각은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1, MC2, ..., MC8) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. 도 28에는 복수의 메모리 낸드 스트링들(NS11~NS33) 각각이 8개의 메모리 셀들(MC1, MC2, ..., MC8)을 포함하는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니다.
스트링 선택 트랜지스터(SST)는 상응하는 스트링 선택 라인(SSL1, SSL2, SSL3)에 연결될 수 있다. 복수의 메모리 셀들(MC1, MC2, ..., MC8)은 각각 상응하는 게이트 라인(GTL1, GTL2, ..., GTL8)에 연결될 수 있다. 게이트 라인(GTL1, GTL2, ..., GTL8)은 워드 라인들에 해당할 수 있으며, 게이트 라인(GTL1, GTL2, ..., GTL8)의 일부는 더미 워드 라인에 해당할 수 있다. 접지 선택 트랜지스터(GST)는 상응하는 접지 선택 라인(GSL1, GSL2, GSL3)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 상응하는 비트 라인(BL1, BL2, BL3)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결될 수 있다.
동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되고, 접지 선택 라인(GSL1, GSL2, GSL3) 및 스트링 선택 라인(SSL1, SSL2, SSL3)은 각각 분리될 수 있다. 도 28에는 메모리 블록(BLK)이 여덟 개의 게이트 라인(GTL1, GTL2, ..., GTL8) 및 세 개의 비트 라인들(BL1, BL2, BL3)에 연결되는 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니다.
도 17은 본 발명의 일 실시예에 따른 UFS 장치에 적용될 수 있는 B-VNAND 구조에 대해 설명하기 위한 도면이다. UFS 장치에 포함되는 비휘발성 메모리가 B-VNAND(Bonding Vertical NAND) 타입의 플래시 메모리로 구현될 경우, 비휘발성 메모리는 도 17에 도시된 구조를 가질 수 있다.
도 17을 참조하면, 메모리 장치(4000)는 C2C(chip to chip) 구조일 수 있다. C2C 구조는 제1 웨이퍼 상에 셀 영역(CELL)을 포함하는 상부 칩을 제작하고, 제1 웨이퍼와 다른 제2 웨이퍼 상에 주변 회로 영역(PERI)을 포함하는 하부 칩을 제작한 후, 상기 상부 칩과 상기 하부 칩을 본딩(bonding) 방식에 의해 서로 연결하는 것을 의미할 수 있다. 일례로, 상기 본딩 방식은 상부 칩의 최상부 메탈층에 형성된 본딩 메탈과 하부 칩의 최상부 메탈층에 형성된 본딩 메탈을 서로 전기적으로 연결하는 방식을 의미할 수 있다. 예컨대, 상기 본딩 메탈이 구리(Cu)로 형성된 경우, 상기 본딩 방식은 Cu-Cu 본딩 방식일 수 있으며, 상기 본딩 메탈은 알루미늄 혹은 텅스텐으로도 형성될 수 있다.
메모리 장치(4000)의 주변 회로 영역(PERI)과 셀 영역(CELL) 각각은 외부 패드 본딩 영역(PA), 워드 라인 본딩 영역(WLBA), 및 비트 라인 본딩 영역(BLBA)을 포함할 수 있다.
주변 회로 영역(PERI)은 제1 기판(4110), 층간 절연층(4115), 제1 기판(4110)에 형성되는 복수의 회로 소자들(4120a, 4120b, 4120c), 복수의 회로 소자들(4120a, 4120b, 4120c) 각각과 연결되는 제1 메탈층(4130a, 4130b, 4130c), 제1 메탈층(4130a, 4130b, 4130c) 상에 형성되는 제2 메탈층(4140a, 4140b, 4140c)을 포함할 수 있다. 일 실시예에서, 제1 메탈층(4130a, 4130b, 4130c)은 상대적으로 저항이 높은 텅스텐으로 형성될 수 있고, 제2 메탈층(4140a, 4140b, 4140c)은 상대적으로 저항이 낮은 구리로 형성될 수 있다.
본 명세서에서는 제1 메탈층(4130a, 4130b, 4130c)과 제2 메탈층(4140a, 4140b, 4140c)만 도시 되고 설명되나, 이에 한정되는 것은 아니고, 제2 메탈층(4140a, 4140b, 4140c) 상에 적어도 하나 이상의 메탈층이 더 형성될 수도 있다. 제2 메탈층(4140a, 4140b, 4140c)의 상부에 형성되는 하나 이상의 메탈층 중 적어도 일부는, 제2 메탈층(4140a, 4140b, 4140c)을 형성하는 구리보다 더 낮은 저항을 갖는 알루미늄 등으로 형성될 수 있다.
층간 절연층(4115)은 복수의 회로 소자들(4120a, 4120b, 4120c), 제1 메탈층(4130a, 4130b, 4130c), 및 제2 메탈층(4140a, 4140b, 4140c)을 커버하도록 제1 기판(4110) 상에 배치되며, 실리콘 산화물, 실리콘 질화물 등과 같은 절연 물질을 포함할 수 있다.
워드 라인 본딩 영역(WLBA)의 제2 메탈층(4140b) 상에 하부 본딩 메탈(4171b, 4172b)이 형성될 수 있다. 워드 라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(4171b, 4172b)은 셀 영역(CELL)의 상부 본딩 메탈(4271b, 4272b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있으며, 하부 본딩 메탈(4171b, 4172b)과 상부 본딩 메탈(4271b, 4272b)은 알루미늄, 구리, 혹은 텅스텐 등으로 형성될 수 있다.
셀 영역(CELL)은 적어도 하나의 메모리 블록을 제공할 수 있다. 셀 영역(CELL)은 제2 기판(4210)과 공통 소스 라인(4220)을 포함할 수 있다. 제2 기판(4210) 상에는, 제2 기판(4210)의 상면에 수직하는 방향(Z축 방향)을 따라 복수의 워드 라인들(4231-4238; 4230)이 적층될 수 있다. 워드 라인들(4230)의 상부 및 하부 각각에는 스트링 선택 라인들과 접지 선택 라인이 배치될 수 있으며, 스트링 선택 라인들과 접지 선택 라인 사이에 복수의 워드 라인들(4230)이 배치될 수 있다.
비트 라인 본딩 영역(BLBA)에서, 채널 구조체(CH)는 제2 기판(4210)의 상면에 수직하는 방향으로 연장되어 워드 라인들(4230), 스트링 선택 라인들, 및 접지 선택 라인을 관통할 수 있다. 채널 구조체(CH)는 데이터 저장층, 채널층, 및 매립 절연층 등을 포함할 수 있으며, 채널층은 제1 메탈층(4250c) 및 제2 메탈층(4260c)과 전기적으로 연결될 수 있다. 예컨대, 제1 메탈층(4250c)은 비트 라인 컨택일 수 있고, 제2 메탈층(4260c)은 비트 라인일 수 있다. 일 실시예에서, 비트 라인(4260c)은 제2 기판(4210)의 상면에 평행한 제1 방향(Y축 방향)을 따라 연장될 수 있다.
도 17에 도시한 일 실시예에서, 채널 구조체(CH)와 비트 라인(4260c) 등이 배치되는 영역이 비트 라인 본딩 영역(BLBA)으로 정의될 수 있다. 비트 라인(4260c)은 비트 라인 본딩 영역(BLBA)에서 주변 회로 영역(PERI)에서 페이지 버퍼(4293)를 제공하는 회로 소자들(4120c)과 전기적으로 연결될 수 있다. 일례로, 비트 라인(4260c)은 주변 회로 영역(PERI)에서 상부 본딩 메탈(4271c, 4272c)과 연결되며, 상부 본딩 메탈(4271c, 4272c)은 페이지 버퍼(4293)의 회로 소자들(4120c)에 연결되는 하부 본딩 메탈(4171c, 4172c)과 연결될 수 있다.
워드 라인 본딩 영역(WLBA)에서, 워드 라인들(4230)은 제2 기판(4210)의 상면에 평행한 제2 방향(X축 방향)을 따라 연장될 수 있으며, 복수의 셀 컨택 플러그들(4241-4247; 4240)와 연결될 수 있다. 워드 라인들(4230)과 셀 컨택 플러그들(4240)은, 제2 방향을 따라 워드 라인들(4230) 중 적어도 일부가 서로 다른 길이로 연장되어 제공하는 패드들에서 서로 연결될 수 있다. 워드 라인들(4230)에 연결되는 셀 컨택 플러그들(4240)의 상부에는 제1 메탈층(4250b)과 제2 메탈층(4260b)이 차례로 연결될 수 있다. 셀 컨택 플러그들(4240)은 워드 라인 본딩 영역(WLBA)에서 셀 영역(CELL)의 상부 본딩 메탈(4271b, 4272b)과 주변 회로 영역(PERI)의 하부 본딩 메탈(4171b, 4172b)을 통해 주변 회로 영역(PERI)과 연결될 수 있다.
셀 컨택 플러그들(4240)은 주변 회로 영역(PERI)에서 로우 디코더(4294)를 제공하는 회로 소자들(4120b)과 전기적으로 연결될 수 있다. 일 실시예에서, 로우 디코더(4294)를 제공하는 회로 소자들(4120b)의 동작 전압은, 페이지 버퍼(4293)를 제공하는 회로 소자들(4120c)의 동작 전압과 다를 수 있다. 일례로, 페이지 버퍼(4293)를 제공하는 회로 소자들(4120c)의 동작 전압이 로우 디코더(4294)를 제공하는 회로 소자들(4120b)의 동작 전압보다 클 수 있다.
외부 패드 본딩 영역(PA)에는 공통 소스 라인 컨택 플러그(4280)가 배치될 수 있다. 공통 소스 라인 컨택 플러그(4280)는 금속, 금속 화합물, 또는 폴리실리콘 등의 도전성 물질로 형성되며, 공통 소스 라인(4220)과 전기적으로 연결될 수 있다. 공통 소스 라인 컨택 플러그(4280) 상부에는 제1 메탈층(4250a)과 제2 메탈층(4260a)이 차례로 적층될 수 있다. 일례로, 공통 소스 라인 컨택 플러그(4280), 제1 메탈층(4250a), 및 제2 메탈층(4260a)이 배치되는 영역은 외부 패드 본딩 영역(PA)으로 정의될 수 있다.
한편 외부 패드 본딩 영역(PA)에는 입출력 패드들(4105, 4205)이 배치될 수 있다. 도 17을 참조하면, 제1 기판(4110)의 하부에는 제1 기판(4110)의 하면을 덮는 하부 절연막(4101) 이 형성될 수 있으며, 하부 절연막(4101) 상에 제1 입출력 패드(4105)가 형성될 수 있다. 제1 입출력 패드(4105)는 제1 입출력 컨택 플러그(4103)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(4120a, 4120b, 4120c) 중 적어도 하나와 연결되며, 하부 절연막(4101)에 의해 제1 기판(4110)과 분리될 수 있다. 또한, 제1 입출력 컨택 플러그(4103)와 제1 기판(4110) 사이에는 측면 절연막이 배치되어 제1 입출력 컨택 플러그(4103)와 제1 기판(4110)을 전기적으로 분리할 수 있다.
도 17을 참조하면, 제2 기판(4210)의 상부에는 제2 기판(4210)의 상면을 덮는 상부 절연막(4201)이 형성될 수 있으며, 상부 절연막(4201) 상에 제2 입출력 패드(4205)가 배치될 수 있다. 제2 입출력 패드(4205)는 제2 입출력 컨택 플러그(4203)를 통해 주변 회로 영역(PERI)에 배치되는 복수의 회로 소자들(4120a, 4120b, 4120c) 중 적어도 하나와 연결될 수 있다.
실시예들에 따라, 제2 입출력 컨택 플러그(4203)가 배치되는 영역에는 제2 기판(4210) 및 공통 소스 라인(4220) 등이 배치되지 않을 수 있다. 또한, 제2 입출력 패드(4205)는 제3 방향(Z축 방향)에서 워드 라인들(4230)과 오버랩되지 않을 수 있다. 도 17을 참조하면, 제2 입출력 컨택 플러그(4203)는 제2 기판(4210)의 상면에 평행한 방향에서 제2 기판(4210)과 분리되며, 셀 영역(CELL)의 층간 절연층(4215)을 관통하여 제2 입출력 패드(4205)에 연결될 수 있다.
실시예들에 따라, 제1 입출력 패드(4105)와 제2 입출력 패드(4205)는 선택적으로 형성될 수 있다. 일례로, 메모리 장치(4000)는 제1 기판(4110)의 상부에 배치되는 제1 입출력 패드(4105)만을 포함하거나, 또는 제2 기판(4210)의 상부에 배치되는 제2 입출력 패드(4205)만을 포함할 수 있다. 또는, 메모리 장치(4000)가 제1 입출력 패드(4105)와 제2 입출력 패드(4205)를 모두 포함할 수도 있다.
셀 영역(CELL)과 주변 회로 영역(PERI) 각각에 포함되는 외부 패드 본딩 영역(PA)과 비트 라인 본딩 영역(BLBA) 각각에는 최상부 메탈층의 메탈 패턴이 더미 패턴(dummy pattern)으로 존재하거나, 최상부 메탈층이 비어있을 수 있다.
메모리 장치(4000)는 외부 패드 본딩 영역(PA)에서, 셀 영역(CELL)의 최상부 메탈층에 형성된 상부 메탈 패턴(4272a)에 대응하여 주변 회로 영역(PERI)의 최상부 메탈층에 셀 영역(CELL)의 상부 메탈 패턴(4272a)과 동일한 형태의 하부 메탈 패턴(4176a)을 형성할 수 있다. 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(4176a)은 주변 회로 영역(PERI)에서 별도의 컨택과 연결되지 않을 수 있다. 이와 유사하게, 외부 패드 본딩 영역(PA)에서 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴에 대응하여 셀 영역(CELL)의 상부 메탈층에 주변 회로 영역(PERI)의 하부 메탈 패턴과 동일한 형태의 상부 메탈 패턴을 형성할 수도 있다.
워드 라인 본딩 영역(WLBA)의 제2 메탈층(4140b) 상에는 하부 본딩 메탈(4171b, 4172b)이 형성될 수 있다. 워드 라인 본딩 영역(WLBA)에서, 주변 회로 영역(PERI)의 하부 본딩 메탈(4171b, 4172b)은 셀 영역(CELL)의 상부 본딩 메탈(4271b, 4272b)과 본딩 방식에 의해 서로 전기적으로 연결될 수 있다.
또한, 비트 라인 본딩 영역(BLBA)에서, 주변 회로 영역(PERI)의 최상부 메탈층에 형성된 하부 메탈 패턴(4152)에 대응하여 셀 영역(CELL)의 최상부 메탈층에 주변 회로 영역(PERI)의 하부 메탈 패턴(4152)과 동일한 형태의 상부 메탈 패턴(4292)을 형성할 수 있다. 셀 영역(CELL)의 최상부 메탈층에 형성된 상부 메탈 패턴(4292) 상에는 컨택을 형성하지 않을 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (10)
- 호스트로부터 데이터 전송률의 변경 요청을 포함하는 제1 비트 시퀀스를 입력 신호 핀을 통해 제1 데이터 전송률에 따라 수신하는 단계;
상기 변경 요청에 대한 응답을 포함하는 제2 비트 시퀀스를 출력 신호 핀을 통해 상기 제1 데이터 전송률에 따라 상기 호스트에 전송하는 단계; 및
상기 제2 비트 시퀀스의 종료를 나타내는 종료 비트의 출력 여부에 따라 데이터 전송률을 제2 데이터 전송률로 변경하는 단계를 포함하는 스토리지 장치의 동작 방법. - 제1항에 있어서,
상기 데이터 전송률을 상기 제2 데이터 전송률로 변경하는 단계는,
상기 호스트에 데이터를 전송하지 않는 시구간 동안 수행되는 것을 특징으로 하는 스토리지 장치의 동작 방법. - 제1항에 있어서,
상기 데이터 전송률을 상기 제2 데이터 전송률로 변경하는 단계는,
상기 데이터 전송률이 상기 제2 데이터 전송률로 변경되도록, 상기 호스트로부터 클럭 신호 핀을 통해 수신되는 기준 클럭 신호를 기초로 데이터에 동기화되는 내부 클럭 신호의 주파수를 변경하는 단계를 포함하는 것을 특징으로 하는 스토리지 장치의 동작 방법. - 제1항에 있어서,
상기 호스트로부터 라인 리셋 신호를 리셋 신호 핀을 통해 수신하는 단계; 및
상기 라인 리셋 신호의 수신에 응답하여, 상기 데이터 전송률을 제3 데이터 전송률로 변경하는 단계를 더 포함하는 스토리지 장치의 동작 방법. - 제4항에 있어서,
상기 제3 데이터 전송률은,
상기 제1 데이터 전송률이거나, 미리 결정된 디폴트 데이터 전송률인 것을 특징으로 하는 스토리지 장치의 동작 방법. - 호스트 및 스토리지 장치를 포함하는 스토리지 시스템의 동작 방법에 있어서,
상기 호스트가, 상기 스토리지 장치에 데이터 전송률의 변경 요청을 포함하는 제1 비트 시퀀스를 제1 데이터 전송률에 따라 전송하는 단계;
상기 스토리지 장치가, 상기 호스트에 상기 변경 요청에 대응하는 응답을 포함하는 제2 비트 시퀀스를 상기 제1 데이터 전송률에 따라 전송하는 단계; 및
상기 제2 비트 시퀀스의 종료를 나타내는 종료 비트를 기초로, 상기 호스트 및 상기 스토리지 장치가 데이터 전송률을 변경하는 단계를 포함하는 스토리지 시스템의 동작 방법. - 제6항에 있어서,
상기 호스트 및 상기 스토리지 장치가 데이터 전송률을 변경하는 단계는,
상기 스토리지 장치가, 상기 종료 비트를 출력하였는지 여부를 기초로 데이터 전송률을 제2 데이터 전송률로 변경하는 단계; 및
상기 호스트가, 상기 종료 비트를 수신하였는지 여부를 기초로 데이터 전송률을 상기 제2 데이터 전송률로 변경하는 단계를 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법. - 제6항에 있어서,
상기 호스트 및 상기 스토리지 장치가 데이터 전송률을 변경하는 단계는,
상기 호스트 및 상기 스토리지 장치가 데이터를 송/수신하지 않는 시구간 동안 수행되는 것을 특징으로 하는 스토리지 시스템의 동작 방법. - 제6항에 있어서,
상기 호스트가, 상기 변경 요청에 대응하는 응답을 수신하였는지 여부를 기초로 리셋 신호 핀을 통해 라인 리셋 신호를 출력하는 단계; 및
상기 스토리지 장치가, 상기 라인 리셋 신호에 응답하여 데이터 전송률을 제3 데이터 전송률로 변경하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 시스템의 동작 방법. - 호스트로부터 수신되는 데이터가 저장되는 비휘발성 메모리;
상기 비휘발성 메모리를 제어하는 장치 컨트롤러; 및
상기 호스트와 복수의 핀들로 연결되는 인터커넥트부를 포함하고,
상기 인터커넥트부는,
상기 호스트로부터 데이터 전송률의 변경 요청을 포함하는 제1 비트 시퀀스를 제1 데이터 전송률에 따라 수신하고, 상기 변경 요청에 대한 응답을 포함하는 제2 비트 시퀀스를 상기 제1 데이터 전송률에 따라 상기 호스트에 전송하고, 상기 제2 비트 시퀀스의 종료를 나타내는 종료 비트의 출력 여부에 따라 데이터 전송률을 제2 데이터 전송률로 변경하는 것을 특징으로 하는 스토리지 장치.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200185209A KR20220093983A (ko) | 2020-12-28 | 2020-12-28 | 데이터 전송률을 조정하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
US17/467,929 US11782853B2 (en) | 2020-12-28 | 2021-09-07 | Storage device adjusting data rate and storage system including the same |
CN202111179244.7A CN114694697A (zh) | 2020-12-28 | 2021-10-09 | 调整数据速率的存储设备和包括该存储设备的存储*** |
US18/446,670 US12038857B2 (en) | 2020-12-28 | 2023-08-09 | Storage device adjusting data rate and storage system including the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200185209A KR20220093983A (ko) | 2020-12-28 | 2020-12-28 | 데이터 전송률을 조정하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220093983A true KR20220093983A (ko) | 2022-07-05 |
Family
ID=82119885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200185209A KR20220093983A (ko) | 2020-12-28 | 2020-12-28 | 데이터 전송률을 조정하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11782853B2 (ko) |
KR (1) | KR20220093983A (ko) |
CN (1) | CN114694697A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW202324986A (zh) * | 2021-12-09 | 2023-06-16 | 韓商愛思開海力士有限公司 | 用於互連協定的錯誤處理的方法、控制器以及儲存裝置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6917992B2 (en) * | 2002-09-30 | 2005-07-12 | Intel Corporation | Method and apparatus for efficient command queuing within a serial ATA environment |
US7925799B2 (en) * | 2007-04-27 | 2011-04-12 | Ricoh Company, Ltd. | Serial ATA interface control circuit and power management method wherein start and completion of data transfer is monitored during DMA operations using memory control unit |
US8621128B2 (en) | 2009-12-04 | 2013-12-31 | St-Ericsson Sa | Methods and systems for reliable link startup |
CN103999419B (zh) | 2011-12-15 | 2017-05-10 | 英特尔公司 | 用于生成脉冲调制信号的低功率发射机 |
US9563260B2 (en) | 2013-03-15 | 2017-02-07 | Intel Corporation | Systems, apparatuses, and methods for synchronizing port entry into a low power state |
US9086966B2 (en) | 2013-03-15 | 2015-07-21 | Intel Corporation | Systems, apparatuses, and methods for handling timeouts |
KR20150014002A (ko) * | 2013-07-25 | 2015-02-06 | 삼성전자주식회사 | 데이터 전송 속도 관리자를 포함하는 스토리지 시스템 및 그것의 데이터 전송 속도 변경 방법 |
KR102145420B1 (ko) * | 2013-07-25 | 2020-08-18 | 삼성전자주식회사 | 데이터 전송 속도를 변경하는 스토리지 시스템 및 그것의 데이터 전송 속도 변경 방법 |
US10652131B2 (en) | 2013-11-22 | 2020-05-12 | Advantest Corporation | Method and apparatus to provide both high speed and low speed signaling from the high speed transceivers on an field programmable gate array |
-
2020
- 2020-12-28 KR KR1020200185209A patent/KR20220093983A/ko active Search and Examination
-
2021
- 2021-09-07 US US17/467,929 patent/US11782853B2/en active Active
- 2021-10-09 CN CN202111179244.7A patent/CN114694697A/zh active Pending
-
2023
- 2023-08-09 US US18/446,670 patent/US12038857B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN114694697A (zh) | 2022-07-01 |
US11782853B2 (en) | 2023-10-10 |
US12038857B2 (en) | 2024-07-16 |
US20230385209A1 (en) | 2023-11-30 |
US20220206966A1 (en) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3869315B1 (en) | Storage device and storage system including the same | |
EP3905055B1 (en) | Link startup method of storage device, and storage device, host and system implementing same | |
CN107870741B (zh) | 包括经级联耦合结构发送参考时钟的存储装置的电子装置 | |
EP4156191A1 (en) | Operating method of storage device, operating method of host, and storage system including the storage device and the host | |
US12038857B2 (en) | Storage device adjusting data rate and storage system including the same | |
US20170177219A1 (en) | Method of operating storage device using serial interface and method of operating data processing system including the same | |
US11809737B2 (en) | Storage device for performing high-speed link startup and storage system including the same | |
US20230007903A1 (en) | Storage device and method of operation thereof | |
US20220187997A1 (en) | System, device, and method for writing data to protected region | |
US11726677B2 (en) | Storage device configured to change power state based on reference clock from host device and method for operating the same | |
KR20210132569A (ko) | 스토리지 장치의 링크 스타트업 방법 | |
KR20220077400A (ko) | 메모리 장치, 메모리 시스템 및 이의 동작 방법 | |
KR20210106319A (ko) | 스토리지 장치 및 이를 포함하는 스토리지 시스템 | |
US11934691B2 (en) | Storage device for high speed link startup and storage system including the same | |
US11599284B2 (en) | Storage controller, storage system and operating methods thereof | |
KR20210156187A (ko) | 고속 링크 스타트업을 수행하는 스토리지 장치 및 이를 포함하는 스토리지 시스템 | |
EP3848787A1 (en) | Storage device configured to change power state based on reference clock from host device and method for operating the same | |
KR20220047443A (ko) | 메모리 시스템, 이를 포함하는 전자 기기, 및 메모리 컨트롤러 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |