KR20220064786A - Ufs 장치, ufs 장치의 동작 방법 및 ufs 장치를 포함하는 시스템 - Google Patents

Ufs 장치, ufs 장치의 동작 방법 및 ufs 장치를 포함하는 시스템 Download PDF

Info

Publication number
KR20220064786A
KR20220064786A KR1020200151278A KR20200151278A KR20220064786A KR 20220064786 A KR20220064786 A KR 20220064786A KR 1020200151278 A KR1020200151278 A KR 1020200151278A KR 20200151278 A KR20200151278 A KR 20200151278A KR 20220064786 A KR20220064786 A KR 20220064786A
Authority
KR
South Korea
Prior art keywords
ufs
lanes
data
lane
bidirectional
Prior art date
Application number
KR1020200151278A
Other languages
English (en)
Inventor
강영산
김병술
이병요
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200151278A priority Critical patent/KR20220064786A/ko
Priority to US17/498,815 priority patent/US20220147254A1/en
Priority to CN202111209883.3A priority patent/CN114490481A/zh
Priority to DE102021127003.0A priority patent/DE102021127003A1/de
Publication of KR20220064786A publication Critical patent/KR20220064786A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0062Bandwidth consumption reduction during transfers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Transfer Systems (AREA)

Abstract

UFS 장치가 개시된다. 본 개시의 기술적 사상의 일 측면에 따른 UFS 장치는, UFS 호스트에게 데이터를 출력하는 제1 방향을 위한 제1 UFS 레인과, 상기 UFS 호스트로부터 데이터를 수신하는 제2 방향을 위한 제2 UFS 레인과, 동작 모드에 따라 상기 제1 방향 및 상기 제2 방향을 스위칭할 수 있는 양방향 UFS 레인들을 포함하는 UFS 데이터 레인 및 상기 동작 모드를 지시하는 제어 신호에 기반하여, 상기 양방향 UFS 레인들의 데이터 전송 방향을 스위칭하는 UFS 장치 컨트롤러를 포함할 수 있다.

Description

UFS 장치, UFS 장치의 동작 방법 및 UFS 장치를 포함하는 시스템 {UFS DEVICE, OPERATING METHOD OF UFS DEVICE AND SYSTEM INCLUDING THE SAME}
본 개시의 기술적 사상은 메모리 장치에 관한 것이며, 보다 구체적으로는 UFS 장치, UFS 장치의 동작 방법 및 이를 UFS 장치를 포함하는 시스템에 관한 것이다.
스토리지 시스템은 호스트와 스토리지 장치로 구성된다. 호스트와 스토리지 장치는 UFS(universal flash storage), SATA(serial ATA), SCSI(small computer small interface), SAS(serial attached SCSI), eMMC(embedded MMC) 등과 같은 다양한 표준 인터페이스를 통해 연결된다. 스토리지 시스템이 모바일 장치에 사용되는 경우 호스트와 스토리지 장치 사이의 고속 동작이 매우 중요할 수 있다. 다만, 호스트와 장치 간에 업스트림과 다운스트림의 전송량이 크게 상이한 경우, 전송 데이터의 적체로 인해 성능 열화가 발생할 수 있다.
본 개시의 기술적 사상은 UFS 시스템에서 UFS 장치와 UFS 호스트 장치 간에 비대칭(asymmetric) 레인(lane)을 포함하는 인터페이스를 이용하는 UFS 장치, UFS장치의 동작 방법 및 이를 포함하는 시스템을 제공하는 데에 있다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일 측면에 따른 UFS 장치는, UFS 호스트에게 데이터를 출력하는 제1 방향을 위한 제1 UFS 레인과, 상기 UFS 호스트로부터 데이터를 수신하는 제2 방향을 위한 제2 UFS 레인과, 동작 모드에 따라 상기 제1 방향 및 상기 제2 방향을 스위칭할 수 있는 양방향 UFS 레인들을 포함하는 UFS 데이터 레인 및 상기 동작 모드를 지시하는 제어 신호에 기반하여, 상기 양방향 UFS 레인들의 데이터 전송 방향을 스위칭하는 UFS 장치 컨트롤러를 포함할 수 있다.
한편, 본 개시의 기술적 사상의 일 측면에 따른 UFS 시스템은, 명령어들을 실행하도록 구성된 적어도 하나의 코어를 포함하는 어플리케이션 프로세서, 상기 어플리케이션 프로세서의 리퀘스트를 수신하여 UFS 명령으로 변환하는 UFS 드라이버, 상기 변환된 UFS 명령을 UFS 장치에게 전송하는 UFS 호스트 컨트롤러를 포함하는 UFS 호스트 및 상기 UFS 호스트에게 데이터를 출력하는 제1 방향을 위한 제1 UFS 레인과, 상기 UFS 호스트로부터 데이터를 수신하는 제2 방향을 위한 제2 UFS 레인과, 동작 모드에 따라 상기 제1 방향 및 상기 제2 방향을 스위칭할 수 있는 양방향 UFS 레인들을 포함하는 UFS 데이터 레인 및 상기 동작 모드에 기반하여, 상기 양방향 UFS 레인들의 데이터 전송 방향을 스위칭하는 UFS 장치 컨트롤러를 제어하는 UFS 장치를 포함할 수 있다.
한편, 본 개시의 기술적 사상의 일 측면에 따른 제1 UFS 장치는, 제2 UFS 장치로부터 입력 데이터를 수신하기 위한 수신 레인과, 상기 제2 UFS 장치에게 출력 데이터를 송신하기 위한 송신 레인과, 동작 모드에 따라, 상기 입력 데이터 및/또는 상기 출력 데이터를 전송하기 위한 적어도 하나의 양방향 레인을 포함하는 UFS 데이터 레인, 상기 입력 데이터 또는 상기 출력 데이터의 크기와 상기 UFS 데이터 레인의 개수에 기반하여 상태 정보 값을 생성하고, 상기 상태 정보 값에 기반하여 상기 적어도 하나의 양방향 레인의 상기 동작 모드를 결정하는 UFS 컨트롤러를 포함할 수 있다.
본 개시의 예시적 실시예에 따른 UFS 시스템은, 스토리지 장치와 호스트 장치 간에 송신 모드 또는 수신 모드를 선택적으로 스위칭할 수 있는 비대칭 레인(lane)을 구비함으로써 송수신 레인의 개수를 증가시키거나, 또는 송수신 클럭을 증가시키지 않더라도, 고성능 읽기 모드 또는 고성능 쓰기 모드에 진입하여 더 높은 데이터 레이트(data rate) 및 더 넓은 대역폭을 지원할 수 있다.
본 개시의 예시적 실시예에 따른 UFS 시스템은, 스토리지 장치와 호스트 장치 간에 송수신하는 데이터 플로우가 낮은 경우, 상기 비대칭 레인 중 적어도 일부를 비활성화시킴으로써 저전력 모드에 진입하여 불필요한 소모 전력을 감소시킬 수 있다.
본 개시의 예시적 실시예에 따른 UFS 시스템은, 스토리지 장치와 호스트 장치 간에 송수신하는 데이터 플로우를 실시간(real time)으로 분석하고, 이에 기반하여 비대칭 레인을 형성하거나, 또는 저전력 모드로 진입하는 것을 적응적으로 수행함으로써 UFS 시스템의 효율을 개선시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 스토리지(storage) 장치가 적용된 시스템을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 UFS 시스템에 대해 설명하기 위한 도면이다.
도 3a는 UFS 시스템에서 라이트 커맨드의 수행 시, 데이터 흐름을 도시한다.
도 3b는 UFS 시스템에서 리드 커맨드의 수행 시, 데이터 흐름을 도시한다.
도 4a는 본 개시의 예시적 실시예에 따른 UFS 시스템을 도시한다. 도 3a와 중복되는 내용은 생략될 수 있다.
도 4b는 본 개시의 예시적 실시예에 따른 양방향 레인을 도시한다.
도 5a는 본 개시의 예시적 실시예에 따른 병합 회로의 블록도이다.
도 5b는 본 개시의 예시적 실시예에 따른 분배 회로의 블록도이다.
도 5c는 본 개시의 예시적 실시예에 따른 UFS 시스템의 블록도이다.
도 6은 본 개시의 예시적 실시예에 따른 UFS 시스템에서 고성능 쓰기 모드를 수행 시, 데이터 흐름을 도시한다.
도 7은 본 개시의 예시적 실시예에 따른 UFS 시스템에서 고성능 읽기 모드를 수행 시, 데이터 흐름을 도시한다.
도 8은 본 개시의 예시적 실시예에 따른 UFS 시스템에서 저전력 모드를 수행 시, 데이터 흐름을 도시한다.
도 9는 본 개시의 예시적 실시예에 따른 UFS 시스템의 동작 순서를 도시한다.
도 10a 내지 도 10c는 본 개시의 예시적 실시예에 따라 구현 가능한 다양한 비대칭 레인들의 예들을 각각 도시한다.
도 11은 본 개시의 예시적 실시예에 따른 신호 교환도를 도시한다.
도 12는 본 개시의 예시적 실시예에 따른 UFS 카드를 포함하는 UFS 시스템을 도시한다.
이하, 첨부한 도면을 참조하여 본 개시의 예시적 실시예들에 대하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 스토리지(storage) 장치가 적용된 시스템을 도시한 도면이다.
도 1을 참조하면, 도 1의 시스템(1000)은 기본적으로 휴대용 통신 단말기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 웨어러블 기기, 헬스케어 기기 또는 IOT(internet of things) 기기와 같은 모바일(mobile) 시스템일 수 있다. 하지만 도 1의 시스템(1000)은 반드시 모바일 시스템에 한정되는 것은 아니고, 개인용 컴퓨터(personal computer), 랩탑(laptop) 컴퓨터, 서버(server), 미디어 재생기(media player) 또는 내비게이션(navigation)과 같은 차량용(automotive) 장비 등이 될 수도 있다.
도 1을 참조하면, 시스템(1000)은 메인 프로세서(main processor)(1100), 메모리(1200a, 1200b) 및 스토리지 장치(1300a, 1300b)를 포함할 수 있으며, 추가로 촬영 장치(image capturing device)(1410), 사용자 입력 장치(user input device)(1420), 센서(1430), 통신 장치(1440), 디스플레이(1450), 스피커(1460), 전력 공급 장치(power supplying device)(1470) 및 연결 인터페이스(connecting interface)(1480) 중 하나 이상을 포함할 수 있다.
메인 프로세서(1100)는 시스템(1000)의 전반적인 동작, 보다 구체적으로는 시스템(1000)을 이루는 다른 구성 요소들의 동작을 제어할 수 있다. 이와 같은 메인 프로세서(1100)는 범용 프로세서, 전용 프로세서 또는 애플리케이션 프로세서(application processor) 등으로 구현될 수 있다.
메인 프로세서(1100)는 하나 이상의 CPU 코어(1110)를 포함할 수 있으며, 메모리(1200a, 1200b) 및/또는 스토리지 장치(1300a, 1300b)를 제어하기 위한 컨트롤러(1120)를 더 포함할 수 있다. 실시예에 따라서는, 메인 프로세서(1100)는 AI(artificial intelligence) 데이터 연산 등 고속 데이터 연산을 위한 전용 회로인 가속기(accelerator) 블록(1130)을 더 포함할 수 있다. 이와 같은 가속기 블록(1130)은 GPU(Graphics Processing Unit), NPU(Neural Processing Unit) 및/또는 DPU(Data Processing Unit) 등을 포함할 수 있으며, 메인 프로세서(1100)의 다른 구성 요소와는 물리적으로 독립된 별개의 칩(chip)으로 구현될 수도 있다.
메모리(1200a, 1200b)는 시스템(1000)의 주기억 장치로 사용될 수 있으며, SRAM 및/또는 DRAM 등의 휘발성 메모리를 포함할 수 있으나, 플래시 메모리, PRAM 및/또는 RRAM 등의 비휘발성 메모리를 포함할 수도 있다. 메모리(1200a, 1200b)는 메인 프로세서(1100)와 동일한 패키지 내에 구현되는 것도 가능하다.
스토리지 장치(1300a, 1300b)는 전원 공급 여부와 관계 없이 데이터를 저장하는 비휘발성 저장 장치로서 기능할 수 있으며, 메모리(1200a, 1200b)에 비해 상대적으로 큰 저장 용량을 가질 수 있다. 스토리지 장치(1300a, 1300b)는 스토리지 컨트롤러(1310a, 1310b)와, 스토리지 컨트롤러(1310a, 1310b)의 제어 하에 데이터를 저장하는 비휘발성 메모리(non-volatile memory, NVM)(1320a, 1320b)를 포함할 수 있다. 비휘발성 메모리(1320a, 1320b)는 NAND 플래시 메모리를 포함할 수 있으나, PRAM 및/또는 RRAM 등의 다른 종류의 비휘발성 메모리를 포함할 수도 있다.
스토리지 장치(1300a, 1300b)는 메인 프로세서(1100)와는 물리적으로 분리된 상태로 시스템(1000)에 포함될 수도 있고, 메인 프로세서(1100)와 동일한 패키지 내에 구현될 수도 있다. 또한, 스토리지 장치(1300a, 1300b)는 메모리 카드(memory card)와 같은 형태를 가짐으로써, 후술할 연결 인터페이스(1480)와 같은 인터페이스를 통해 시스템(1000)의 다른 구성 요소들과 탈부착 가능하도록 결합될 수도 있다. 이와 같은 스토리지 장치(1300a, 1300b)는 UFS(universal flash storage)와 같은 표준 규약이 적용되는 장치일 수 있다. 예를 들어, 스토리지 장치(1300a, 1300b)는 UFS 카드에 상응할 수 있다.
촬영 장치(1410)는 정지 영상 또는 동영상을 촬영할 수 있으며, 카메라(camera), 캠코더(camcorder) 및/또는 웹캠(webcam) 등일 수 있다.
사용자 입력 장치(1420)는 시스템(1000)의 사용자로부터 입력된 다양한 유형의 데이터를 수신할 수 있으며, 터치 패드(touch pad), 키패드(keypad), 키보드(keyboard), 마우스(mouse) 및/또는 마이크(microphone) 등일 수 있다.
센서(1430)는 시스템(1000)의 외부로부터 획득될 수 있는 다양한 유형의 물리량을 감지하고, 감지된 물리량을 전기 신호로 변환할 수 있다. 이와 같은 센서(1430)는 온도 센서, 압력 센서, 조도 센서, 위치 센서, 가속도 센서, 바이오 센서(biosensor) 및/또는 자이로스코프(gyroscope) 등일 수 있다.
통신 장치(1440)는 다양한 통신 규약에 따라 시스템(1000) 외부의 다른 장치들과의 사이에서 신호의 송신 및 수신을 수행할 수 있다. 이와 같은 통신 장치(1440)는 안테나, 트랜시버(transceiver) 및/또는 모뎀(MODEM) 등을 포함하여 구현될 수 있다.
디스플레이(1450) 및 스피커(1460)는 시스템(1000)의 사용자에게 각각 시각적 정보와 청각적 정보를 출력하는 출력 장치로 기능할 수 있다.
전력 공급 장치(1470)는 시스템(1000)에 내장된 배터리(미도시) 및/또는 외부 전원으로부터 공급되는 전력을 적절히 변환하여 시스템(1000)의 각 구성 요소들에게 공급할 수 있다.
연결 인터페이스(1480)는 시스템(1000)과, 시스템(1000)에 연결되어 시스템(1000과 데이터를 주고받을 수 있는 외부 장치 사이의 연결을 제공할 수 있다. 연결 인터페이스(1480)는 ATA(Advanced Technology Attachment), SATA(Serial ATA), e-SATA(external SATA), SCSI(Small Computer Small Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCIe(PCI express), NVMe(NVM express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi-media card), eMMC(embedded multi-media card), UFS(Universal Flash Storage), eUFS(embedded Universal Flash Storage), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식으로 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 UFS 시스템에 대해 설명하기 위한 도면이다.
UFS 시스템은 JEDEC(Joint Electron Device Engineering Council)에서 발표하는 UFS 표준(standard)을 따르는 시스템으로서, UFS 호스트(100), UFS 장치(200), UFS 인터페이스(300)를 포함할 수 있다. 전술한 도 1의 시스템에 대한 설명은, 도 2에 대한 이하의 설명과 상충되지 않는 범위 내에서 도 2의 UFS 시스템(10)에도 적용될 수 있다.
도 2를 참조하면, UFS 호스트(100)와 UFS 장치(200)는 UFS 인터페이스(300)를 통해 상호 연결될 수 있다. 도 1의 메인 프로세서(1100)가 애플리케이션 프로세서일 경우, UFS 호스트(100)는 해당 애플리케이션 프로세서의 일부로서 구현될 수 있다.
UFS 호스트(100)는 애플리케이션(150), UFS 드라이버(130), UFS 호스트 컨트롤러(120), 메모리(140) 및 UIC(UFS interconnect) 레이어(110)를 포함할 수 있다. 이 경우, UFS 호스트 컨트롤러(120), 메모리(140)는, 도 1의 메인 프로세서(1100)의 컨트롤러(1120), 메모리(1200a, 1200b) 및 스토리지 장치(1300a, 1300b)에 각각 대응될 수 있다.
UFS 장치(200)는 UFS 장치 컨트롤러(220), 스토리지(240), 스토리지 인터페이스(230), 메모리(250) 및 UIC(UFS interconnect) 레이어(210)를 포함할 수 있다. 스토리지(240)는 복수의 비휘발성 메모리 유닛으로 구성될 수 있다.
애플리케이션(150)은 UFS 장치(200)의 기능을 이용하기 위해 UFS 장치(200)와의 통신을 원하는 프로그램을 의미할 수 있다. 애플리케이션(150)은 UFS 장치(200)에 대한 입출력을 위해 입출력 요청(input-output request, IOR)을 UFS 드라이버(130)로 전송할 수 있다. 입출력 요청(IOR)은 데이터의 독출(read) 요청, 저장(write) 요청 및/또는 폐기(discard) 요청 등을 의미할 수 있으나, 이에 한정되는 것은 아니다.
UFS 드라이버(130)는 UFS-HCI(host controller interface)를 통해 UFS 호스트 컨트롤러를 관리할 수 있다. UFS 드라이버(130)는 애플리케이션(150)에 의해 생성된 입출력 요청을 UFS 표준에 의해 정의된 UFS 명령으로 변환하고, 변환된 UFS 명령을 UFS 호스트 컨트롤러(120)로 전달할 수 있다. 하나의 입출력 요청은 복수의 UFS 명령으로 변환될 수 있다. UFS 명령은 기본적으로 SCSI 표준에 의해 정의된 명령일 수 있지만, UFS 표준 전용 명령일 수도 있다.
UFS 호스트 컨트롤러(120)는 UFS 드라이버(130)에 의해 변환된 UFS 명령을 UFS 호스트(100)의 UIC 레이어(110)와 UFS 인터페이스(300)를 통해 UFS 장치(200)의 UIC 레이어(210)로 전송할 수 있다. 이 과정에서, UFS 호스트 컨트롤러(120)의 UFS 호스트 레지스터(122)는 명령 큐(command queue, CQ)로서의 역할을 수행할 수 있다.
UFS 호스트(100) 측의 UIC 레이어(110)는 MIPI UniPro(114)와 MIPI M-PHY(112)를 포함할 수 있으며, UFS 장치(200) 측의 UIC 레이어(210) 또한 MIPI M-PHY(212)과 MIPI UniPro(214)을 포함할 수 있다.
UFS 인터페이스(300)는 기준 클럭(REF_CLK)을 전송하는 라인, UFS 장치(200)에 대한 하드웨어 리셋 신호(RESET_n)를 전송하는 라인, 차동 입력 신호 쌍(DIN_t와 DIN_c)을 전송하는 한 쌍의 라인 및 차동 출력 신호 쌍(DOUT_t와 DOUT_c)을 전송하는 한 쌍의 라인을 포함할 수 있다.
UFS 호스트(100)로부터 UFS 장치(200)로 제공되는 기준 클럭의 주파수 값은 19.2MHz, 26MHz, 38.4MHz 및 52MHz의 네 개의 값 중 하나일 수 있으나, 반드시 이에 한정되지는 않는다.
UFS 호스트(100)는 동작 중에도, 즉 UFS 호스트(100)와 UFS 장치(200) 사이에서 데이터 송수신이 수행되는 중에도 기준 클럭의 주파수 값을 변경할 수 있다. UFS 장치(200)는 위상 동기 루프(phase-locked loop, PLL) 등을 이용하여, UFS 호스트로부터 제공받은 기준 클럭으로부터 다양한 주파수의 클럭을 생성할 수 있다.
UFS 인터페이스(300)는 복수의 레인들(multiple lanes)을 지원할 수 있으며, 각 레인은 차동(differential) 쌍으로 구현될 수 있다. 예컨대, UFS 인터페이스(300)는 적어도 하나의 수신 레인(receive lane)과 적어도 하나의 송신 레인(transmit lane)을 포함할 수 있으며, 차동 입력 신호 쌍(DIN_t와 DIN_c)을 전송하는 한 쌍의 라인은 수신 레인에, 차동 출력 신호 쌍(DOUT_t와 DOUT_c)을 전송하는 한 쌍의 라인은 송신 레인에 각각 상응할 수 있다.
적어도 하나의 수신 레인 및 적어도 하나의 송신 레인은 직렬 통신(serial communication) 방식으로 데이터를 전송할 수 있으며, 적어도 하나의 수신 레인과 적어도 하나의 송신 레인이 분리된 구조에 기반하여 UFS 호스트(100)와 UFS 장치(200) 간에 전 이중 또는 풀-듀플렉스(full-duplex) 방식의 통신이 가능할 수 있다.
UFS 호스트(100)로부터의 명령이 UIC 레이어(210)를 통해 UFS 장치(200)로 입력되면, UFS 장치 컨트롤러(220)는 입력된 명령에 따른 동작을 수행하고, 상기 동작이 완료되면 완료 응답을 UFS 호스트(100)로 전송할 수 있다.
일 예로, 상기 입력된 명령이 라이트 커맨드인 경우, UFS 장치 컨트롤러(220)는 UFS 호스트(100)로부터 제공받은 라이트 데이터를 메모리(250)에 임시로 저장할 수 있다. 그리고 UFS 장치 컨트롤러(220)는 스토리지 인터페이스(230)를 통해, 메모리(250)에 임시로 저장되어 있는 라이트 데이터를 비휘발성 메모리 블록의 선택된 위치에 저장할 수 있다.
UFS 장치 컨트롤러(220)는 논리적인 데이터 저장 단위인 LU(logical unit)를 통해 스토리지(240)를 관리할 수 있다. LU의 개수는 8개일 수 있으나, 이에 한정되는 것은 아니다.
UFS 장치 컨트롤러(220)는 플래시 변환 계층(flash translation layer, FTL)을 포함할 수 있으며, FTL을 이용하여 UFS 호스트(100)로부터 전달된 논리적인 데이터 주소, 예컨대 LBA(logical block address)를 물리적인 데이터 주소, 예컨대 PBA(physical block address)로 변환할 수 있다. UFS 시스템(10)에서 사용자 데이터(user data)의 저장을 위한 논리 블록(logical block)의 최소 크기는 4Kbyte로 설정될 수 있다.
UFS 장치 컨트롤러(220)는 데이터 플로우 분석 모듈(222)를 더 포함할 수 있다. 상기 데이터 플로우 분석 모듈(222)은 UFS 장치(200)가 주체적으로 송수신 데이터의 양을 식별하고, 이에 기반하여 적어도 하나의 양방향 레인 중 일부 레인들을 비활성화하거나, 적어도 하나의 양방향 레인의 동작 모드를 결정할 수 있다.
일 실시예에 따라, 데이터 플로우 분석 모듈(222)은 UFS 장치(200)로 수신되는 데이터의 크기, UFS 호스트(100)에게 송신되는 데이터의 크기를 비교하여, 비교 결과에 기반한 동작 모드의 스위칭을 결정할 수 있다. 예를 들어, UFS 장치(200)로 수신되는 데이터의 크기에 대한 UFS 호스트(100)에게 송신하는 데이터의 크기의 비율이 미리 정의된 임계 값을 초과하는 경우, 데이터 플로우 분석 모듈(222)은 UFS 호스트(100)에게 적어도 하나의 양방향 레인의 동작 모드를 송신 모드로 전환할 것을 요청하는 신호를 UFS 호스트(100)에게 전송하거나, 또는 UFS 장치(200)가 적어도 하나의 양방향 레인의 동작 모드를 송신 모드로 전환할 것을 지시하는 제어 신호를 UFS 호스트(100)에게 전송할 수도 있다.
후술하겠지만, UFS 장치(200)가 적어도 하나의 양방향 레인에 대한 동작 모드의 스위칭을 지시하는 제어 신호를 UFS 호스트(100)에게 송신하는 경우, UFS 장치(200)가 UFS 로컬 장치에 상응하고, UFS 호스트(100)는 UFS 리모트 장치에 상응할 수 있다. UFS 장치(200)가 출력하는 동작 모드의 스위칭을 지시하는 제어 신호는, PACP_SET_req 신호에 상응할 수 있다.
다른 실시예에 따라, 데이터 플로우 분석 모듈(222)는 미리 정의된 시간 마다 주기적으로 UFS 호스트(100)에게 데이터 플로우 분석 정보를 요청할 수 있다. 데이터 플로우 분석 모듈(222)이 직접 UFS 장치(200)를 기준으로 송수신되는 데이터 크기를 비교하는 것은 UFS 장치(200)의 큰 부하가 되고, 이는 UFS 장치(200)의 입출력 속도의 열화와 같은 성능 하락을 야기할 수도 있기 때문이다. UFS 호스트(100)의 어플리케이션(150)은 UFS 장치 컨트롤러(220)의 데이터 플로우 분석 모듈(222)로부터 수신된 상기 요청에 응답하여, UFS 호스트(100)와 UFS 장치(200) 간에 송수신 데이터의 비율, 크기와 같은 데이터 플로우 분석 정보를 UFS 장치 컨트롤러(220)에게 송신할 수 있다. 데이터 플로우 분석 모듈(222)은 수신된 데이터 플로우 분석 정보에 기반하여, 적어도 하나의 양방향 레인의 동작 모드를 스위칭할 것을 UFS 호스트(100)에게 요청하거나, UFS 장치(200)가 적어도 하나의 양방향 레인의 동작 모드를 스위칭할 것을 직접 지시하는 제어 신호를 출력할 수도 있을 것이다.
UFS 호스트(100)는 명령 큐로 기능할 수 있는 UFS 호스트 레지스터(122)에 UFS 장치(200)로 송신될 명령들을 순서에 따라 저장하고, 상기 순서대로 UFS 장치(200)에 명령을 송신할 수 있다. 이 때, UFS 호스트(100)는 이전에 송신된 명령이 아직 UFS 장치(200)에 의해 처리 중인 경우에도, 즉 이전에 송신된 명령이 UFS 장치에 의해 처리가 완료되었다는 통지를 받기 전에도 명령 큐에 대기 중인 다음 명령을 UFS 장치(200)로 송신할 수 있으며, 이에 따라 UFS 장치(200) 역시 이전에 송신된 명령을 처리하는 중에도 다음 명령을 UFS 호스트(100)로부터 수신할 수 있다. 이와 같은 명령 큐에 저장될 수 있는 명령의 최대 개수(queue depth)는 예컨대 32개일 수 있다. 또한, 명령 큐는 헤드 포인터(head point)와 테일 포인터(tail pointer)를 통해 큐에 저장된 명령 열의 시작과 끝을 각각 나타내는 원형 큐(circular queue) 타입으로 구현될 수 있다.
복수의 메모리 유닛(350-0~350-N) 각각은 메모리 셀 어레이와 상기 메모리 셀 어레이의 작동을 제어하는 제어 회로를 포함할 수 있다. 상기 메모리 셀 어레이는 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 장치(200)에는 전원 전압으로서 VCC, VCCQ, VCCQ2 등이 입력될 수 있다. VCC는 UFS 장치를 위한 주 전원 전압으로서, 2.4~3.6V의 값을 가질 수 있다. VCCQ는 낮은 범위의 전압을 공급하기 위한 전원 전압으로서, 주로 UFS 장치 컨트롤러(220)를 위한 것이며. 1.14~1.26V의 값을 가질 수 있다. VCCQ2는 VCC보다는 낮지만 VCCQ보다는 높은 범위의 전압을 공급하기 위한 전원 전압으로서, 주로 MIPI M-PHY와 같은 입출력 인터페이스를 위한 것이며, 1.7~1.95V의 값을 가질 수 있다. 상기 전원 전압들은 레귤레이터(regulator)(260)를 거쳐 UFS 장치(200)의 각 구성 요소들을 위해 공급될 수 있다.
도 3a는 UFS 시스템에서 라이트 커맨드의 수행 시, 데이터 흐름을 도시한다. 도 2와 중복되는 설명은 생략될 수 있다.
도 3a를 참조하면, UFS 호스트(100)는 UFS 장치(200)와 4개의 레인들(310-1, 310-2, 320-1, 320-2)을 통해(via) 연결될 수 있다. 상기 4개의 레인들(310-1, 310-2, 320-1, 320-2)은, 각각 2개의 송신 레인들(310-1, 310-2)과 2개의 수신 레인들(320-1, 320-2)을 포함할 수 있다. 이하, 설명의 편의를 위하여 임의의 레인이 송신 레인인지 또는 수신 레인인지 여부는 UFS 호스트(100)를 기준으로 결정되는 것으로 한다. 송신 레인은, 다운스트림(downstream) 레인으로 지칭될 수 있고, 수신 레인은, 업스트림(upstream) 레인으로 지칭될 수 있다. 다양한 실시예들에 따라, 수신 레인은, 제1 방향에 따른 UFS 레인으로 지칭되고, 송신 레인은 제2 방향에 따른 UFS 레인으로 지칭될 수도 있다. 여기서, 제1 방향은 UFS 장치(200)로부터 UFS 호스트(100)에게 전달되는 데이터 방향이며, 제2 방향은 UFS 호스트(100)로부터 UFS 장치(200)에게 전달되는 데이터 방향을 지칭할 수도 있다.
상기 송신 레인들(310-1, 310-2) 및 상기 수신 레인들(320-1, 320-2)은 단방향(unidirectional) 레인에 상응할 수 있다. 즉, 2개의 송신 레인들(310-1, 310-2)은 각각 UFS 호스트(100)로부터 UFS 장치(200)에게 커맨드 및/또는 데이터를 송신할 수 있으며, 상기 2개의 수신 레인들(320-1, 320-2)은 각각 UFS 장치(200)로부터 UFS 호스트(100)에게 전달되는 데이터를 수신할 수 있다.
예를 들어, 애플리케이션(150)이 UFS 장치(200)에 데이터를 저장할 것을 요청하면, UFS 호스트(100)는 UFS 장치(200)에게 라이트 커맨드(WR CMD)를 송신할 수 있다. 도 3a를 참조하면, UFS 호스트(100)는 제1 송신 레인(310-1)을 통해 라이트 커맨드(WR CMD)를 UFS 장치(200)에게 전달할 수 있다. UFS 장치(200)는 라이트 커맨드(WR CMD)를 수신하고, 라이트 데이터(WR DATA)의 전체 크기를 식별할 수 있다.
이후, UFS 장치(200)는 라이트 커맨드(WR CMD)를 수신한 것에 응답하여 RTT(ready to transfer)를 전달할 수 있다. UFS 장치(200)는 상기 RTT를 통해 UFS 호스트(100)에게 상기 라이트 데이터를 미리 정의된 크기에 따라 분할하여 전송할 것을 알릴 수 있다. UFS 호스트(100)는 상기 RTT를 수신하고, 이에 응답하여 라이트 데이터를 출력할 수 있다. 이 때, 송신 레인 및 수신 레인은 각각 2개이므로 제1 수신 레인(320-1)을 통해 RTT를 수신하면 제1 송신 레인(310-1)을 통해 라이트 데이터 중 제1 부분 데이터(DATA OUT #1)를 송신할 수 있고, 제2 수신 레인(320-2)을 통해 RTT를 수신하면 제2 송신 레인(310-2)을 통해 라이트 데이터 중 제2 부분 데이터(DATA OUT #2)를 송신할 수 있다. 즉, UFS 호스트(100)는 제1 송신 레인 및 제2 송신 레인(310-2)을 통해 교번적으로(alternatively) 라이트 데이터를 UFS 장치(200)에게 송신할 수 있다. 하나의 송신 레인만을 이용하여 라이트 데이터를 송신할 때와 비교하여 대역폭이 2배가 되는 것을 알 수 있다.
UFS 장치(200)는 라이트 데이터를 모두 수신한 것을 식별하고, 이에 응답하여 수신 레인을 통해 응답(response)을 UFS 호스트(100)에게 전달할 수 있다. UFS 호스트(100)는 상기 응답을 수신함으로써, 라이트 커맨드가 완료되었음을 식별할 수 있다.
도 3b는 UFS 시스템에서 리드 커맨드의 수행 시, 데이터 흐름을 도시한다. 도 3a와 중복되는 설명은 생략될 수 있다.
도 3b를 참조하면, 애플리케이션(150)은 UFS 장치(200)에 저장된 데이터를 리드할 것을 요청할 수 있다. UFS 호스트(100)는 상기 요청에 기반하여 UFS 장치(200)에게 읽기 커맨드(RD CMD)를 송신할 수 있다.
도 3b를 참조하면, UFS 호스트(100)는 제1 송신 레인(310-1)을 통해 리드 커맨드(RD CMD)를 UFS 장치(200)에게 전달할 수 있다. UFS 장치(200)는 리드 커맨드(RD CMD)를 수신하고, 리드 데이터를 UFS 호스트(100)에게 전달할 수 있다.
이후, UFS 장치(200)는 리드 커맨드(RD CMD)를 수신한 것에 응답하여 리드 데이터를 순차적으로 UFS 호스트(100)에게 전달할 수 있다. UFS 호스트(100)는 언제든지 리드 데이터를 수신할 수 있기 때문에 UFS 장치(200)는 리드 데이터를 송신하기 이전에 RTT를 별도로 전달하는 것을 바이패스할 수 있다.
UFS 장치(200)는 제1 수신 레인(320-1)을 통해 리드 데이터 중 제1 부분 데이터(DATA IN #1)를 송신할 수 있고, 제2 수신 레인(320-2)을 통해 라이트 데이터 중 제2 부분 데이터(DATA IN #2)를 송신할 수 있다. 즉, UFS 호스트(100)는 제1 수신 레인(320-1) 및 제2 수신 레인(320-2)을 통해 교번적으로(alternatively) 리드 데이터를 UFS 호스트(100)에게 송신할 수 있다. 하나의 수신 레인을 이용하여 리드 데이터를 UFS 호스트(100)에게 송신할 때와 비교하여 대역폭은 2배가 될 수 있다.
UFS 장치(200)는 리드 데이터를 모두 송신한 것을 식별하고, 이에 응답하여 수신 레인을 통해 응답(response)을 UFS 호스트(100)에게 전달할 수 있다. UFS 호스트(100)는 상기 응답을 수신함으로써, 리드 커맨드가 완료되었음을 식별할 수 있다.
도 4a는 본 개시의 예시적 실시예에 따른 UFS 시스템을 도시한다. 도 3a와 중복되는 내용은 생략될 수 있다.
도 4a를 참조하면, UFS 시스템(10)은 양방향 레인들(410-1, 410-2)을 포함할 수 있다. 송신 레인(310-1)은 UFS 호스트(100)로부터 UFS 장치(200)에게 데이터를 송신만 할 수 있고, 수신 레인(320-1)은 UFS 호스트(100)가 UFS 장치(200)로부터 데이터를 수신만 할 수 있는 반면에, 양방향 레인들(410-1, 410-2)은 UFS 장치(200)로부터 데이터를 수신 또는 UFS 장치(200)에게 데이터를 송신을 모두 수행할 수 있다.
일 실시예에 따라, UFS 호스트(100)는 3개의 송신 레인들을 통해(via) 라이트 데이터를 UFS 장치(200)에게 송신할 수 있다. 예를 들어, 양방향 레인들(410-1, 410-2)을 모두 송신 레인으로 설정하는 경우, UFS 호스트(100)는 3개의 송신 레인들을 통해 라이트 데이터를 송신할 수 있다. 이에 따라, UFS 호스트(100)는 라이트 데이터를 전송하는 클럭 스피드를 올리지 않더라도 증가된 대역폭에 따라 라이트 데이터를 전송하는 속도를 향상시킬 수 있다.
다른 실시예에 따라, UFS 호스트(100)는 3개의 수신 레인들을 통해 리드 데이터를 UFS 장치(200)로부터 수신할 수도 있다. 예를 들어, 양방향 레인들(410-1, 410-2)을 모두 수신 레인으로 설정하는 경우, UFS 호스트(100)는 3개의 수신 레인들을 통해 리드 데이터를 UFS 장치(200)로부터 수신할 수 있다. 이에 따라, UFS 호스트(100)는 리드 데이터를 전송하는 클럭 스피드를 올리지 않더라도 증가된 대역폭에 따라 리드 데이터를 수신하는 속도를 향상시킬 수 있다.
또 다른 실시예에 따라, UFS 호스트(100)는 2개의 송신 레인 및 2개의 수신 레인을 통해 UFS 장치(200)와 데이터를 송수신할 수도 있다. 즉, 양방향 레인들(410-1, 410-2) 중 하나의 레인을 수신 레인으로 설정하고, 나머지 하나의 레인을 송신 레인으로 설정하는 경우, 도 3a 및 도 3b에 도시된 UFS 시스템(10)과 동일한 UFS 시스템이 될 수 있다.
도 4b는 본 개시의 예시적 실시예에 따른 양방향 레인을 도시한다.
도 4b를 참조하면, 양방향 레인(410-1)은 복수의 스위치들(412 내지 416), 송수신 스위칭 회로(420), 분배 회로(430) 및 병합 회로(440)를 포함할 수 있다.
다양한 실시예들에 따라, 복수의 스위치들(412 내지 416)은 제어 신호(CTRL SIG)에 따라 양방향 레인의 송수신 모드를 변경할 수 있다. 일 실시예에서, UFS 드라이버(130)는 송신 모드를 지시하는 제어 신호를 복수의 스위치들(412, 414, 416)에게 송신할 수 있다. 복수의 스위치들(412, 414, 416)은 상기 제어 신호에 기반하여 스위칭할 수 있다. 예를 들어, 분배 회로(430), 스위치(416), 스위치(414), 송신 앰프(402), 및 스위치(412)가 순차적으로 연결되는 송신 경로를 형성할 수 있다. 다른 실시예에서, UFS 드라이버(13)는 수신 모드를 지시하는 제어 신호를 복수의 스위치들(412, 414, 416)에게 송신할 수 있다. 복수의 스위치들(412, 414, 416)은 상기 제어 신호에 기반하여 스위칭할 수 있다. 예를 들어, 스위치(412), 수신 앰프(404), 스위치(414), 스위치(416), 및 병합 회로(440)가 순차적으로 연결되는 수신 경로를 형성할 수 있다.
다양한 실시예들에 따라, 분배 회로(430)는 적어도 둘 이상의 송신 경로와 동시에 연결될 수 있다. 도 4a를 함께 참조하면, 분배 회로(430)는 송신 레인(310-1), 송신 모드로 스위칭된 양방향 레인들(410-1, 410-2) 중 적어도 둘 이상의 레인들과 동시에 연결될 수 있다. 분배 회로(430)는 동시에 연결된 적어도 둘 이상의 송신 레인들에게 각각 라이트 데이터를 분할하여 전달할 수 있다. 예를 들어, 양방향 레인들(410-1, 410-2)이 모두 송신 레인으로 스위칭된 경우, 분배 회로(430)는 라이트 데이터를 동시에 3개의 송신 레인에게 균일하게 분할하여 UFS 장치(200)에게 라이트 데이터를 전송하도록 제어할 수 있다.
다양한 실시예들에 따라, 병합 회로(440)는 적어도 둘 이상의 수신 경로들과 동시에 연결될 수 있다. 도 4a를 함께 참조하면, 병합 회로(440)는 수신 레인(320-1), 수신 모드로 스위칭된 양방향 레인들(410-1, 410-2) 중 적어도 둘 이상의 레인들과 동시에 연결될 수 있다. 병합 회로(440)는 동시에 연결된 적어도 둘 이상의 수신 레인들로부터 각각 리드 데이터를 수신하고, 이를 병합할 수 있다. 예를 들어, 양방향 레인들(410-1, 410-2)이 모두 수신 레인으로 스위칭된 경우, 병합 회로(440)는 리드 데이터를 동시에 3개의 수신 레인들 각각으로부터 수신하고, 수신된 리드 데이터들을 병합하여 UFS 드라이버(130)에게 전달할 수 있다.
도 5a는 본 개시의 예시적 실시예에 따른 병합 회로의 블록도이다.
도 5a의 병합 회로(500)는 도 4b의 병합 회로(440)를 적어도 포함할 수 있다. 이하, 설명의 편의를 위하여 병합 회로(500)는 3개의 수신 레인들로부터 수신된 리드 데이터를 병합하며, 도 5a의 병합 회로(500)는 UFS 호스트(100)에 구비되는 것을 기준으로 설명하기로 한다.
도 5a를 참조하면, 3 레인 병합 회로(500)는 수신 앰프(510), CDR(clock data recovery) 회로(520), 8bit/10bit 디코더(530), RMMI(Reference M-PHY Module Interface)(540), 버퍼(550), 디스크램블러(descrambler)(560), 마커 및 스킵 심볼 제거 회로(570), 레인 병합 회로(580), 및 심볼 변환 회로(590)를 포함할 수 있다.
수신 앰프(510)는 UFS 장치(200)로부터 데이터 심볼들을 수신하고, CDR 회로(520)는 수신된 데이터 심볼을 기준 클럭 또는 수신 클럭에 기반하여 복원할 수 있다. 8bit/10bit 디코더(530)는 10bit의 수신된 데이터 심볼을 8bit로 디코딩하고, RMMI(540)는 수신 앰프(510), CDR 회로(520) 및 8bit/10bit 디코더(530)를 포함하는 물리 계층과, 버퍼(550), 디스크램블러(560)부터 심볼 변환 회로(590)까지의 1.5 계층 간에 인터페이싱을 수행할 수 있다. 디스크램블러(560)는 데이터 심볼을 송신할 때 수행된 스크램블링의 역변환을 수행하여 원본 데이터 심볼을 획득할 수 있다. 마커 및 스킵 심볼 제거 회로(570)는 리드 데이터에 대한 심볼 이외에 추가된 마커 및/또는 스킵 심볼을 제거함으로써 리드 데이터에만 상응하는 데이터 심볼을 획득할 수 있다. 이후, 레인 병합 회로(580)는 3개의 송신 레인들 각각으로부터 8bit의 데이터 심볼들을 수신하고, 이를 병합하고 심볼 변환 회로(590)를 이용함으로써 리드 데이터를 복호할 수 있다.
다양한 실시예들에 따라, 양방향 레인들(410-1, 410-2)이 모두 송신 모드인 경우, 상기 병합 회로(500)는 UFS 장치(200)의 수신 앰프들에 동시에 연결되어, 송신 레인(310-1), 양방향 레인들(410-1, 410-2)을 통해 UFS 호스트(100)로부터 수신되는 라이트 데이터를 병합하여 수신할 수 있다.
다양한 실시예들에 따라, 양방향 레인들(410-1, 410-2)이 모두 수신 모드인 경우, 상기 병합 회로(500)는 UFS 호스트(100)의 수신 앰프들에 동시에 연결되어, 수신 레인(320-1), 양방향 레인들(410-1, 410-2)을 통해 UFS 장치(200)로부터 수신되는 리드 데이터를 병합하여 수신할 수 있다.
도 5b는 본 개시의 예시적 실시예에 따른 분배 회로의 블록도이다.
도 5b의 분배 회로(600)는 도 4b의 분배 회로(430)를 적어도 포함할 수 있다. 이하, 설명의 편의를 위하여 분배 회로(600)는 3개의 송신 레인들에게 라이트 데이터를 분배하는 것을 기준으로 설명하기로 한다.
도 5b를 참조하면, 분배 회로(600)는 심볼 변환 회로(610), 유휴 시퀀스 삽입 회로(620), 마커 및 스킵 심볼 추가 회로(630), MUX(640), 레인 분배 회로(650), 스크램블러(660), RMMI(670), 8bit/10bit 인코더(680), 시리얼라이저(serializer)(690), 송신 앰프(695)를 포함할 수 있다.
심볼 변환 회로(610)는 UFS 드라이버(130)로부터 라이트 데이터를 수신하고, 수신된 라이트 데이터에 대한 심볼 변환을 수행할 수 있다. 이에 따라 송신 심볼이 획득될 수 있다. 유휴 시퀀스 삽입 회로(620)는 저전력 모드에 기반하여 유휴 시퀀스를 삽입할 수 있다. 예를 들어, 라이트 데이터의 양이 많지 않아 3개의 레인을 모두 송신 레인으로 이용할 필요성이 낮은 경우, 양방향 레인들(410-1, 410-2) 중 하나의 레인으로 유휴 시퀀스의 심볼만을 주입할 수 있다. 이에 따라, 이용하는 송신 레인의 개수를 감소시켜 불필요한 전력 소모를 방지할 수 있다. 마커 및 스킵 심볼 추가 회로(630)는 라이트 데이터에 대한 심볼에 마커 및/또는 스킵 심볼을 추가하기 위한 회로에 상응할 수 있다. 마커나 스킵 심볼을 삽입함으로써 송수신 과정에서 발생할 수 있는 에러에 강건성(robust)을 획득할 수 있다.
일 실시예에 따라, 라이트 데이터의 변환된 심볼이 17bit인 경우, MUX(640)로 입력되는 심볼의 개수는 24개에 상응할 수 있다. MUX(640) 및 레인 분배 회로(650)를 통해 3개의 송신 레인에 각각 8bit의 송신 심볼이 균일하게 분배되도록 하기 위함이다. 이후, 스크램블러(660)는 각 레인에서 수신된 8bit의 심볼에 대하여 XOR 연산을 수행함으로써 스크램블을 수행할 수 있다. 8bit/10bit 인코더는 스크램블된 8bit의 심볼을 10bit로 인코딩하고, 이를 시리얼라이저(690)를 통해 직렬 통신으로 UFS 장치(200)에게 전송할 수 있다.
도 6은 본 개시의 예시적 실시예에 따른 UFS 시스템에서 고성능 쓰기 모드를 수행 시, 데이터 흐름을 도시한다.
도 6을 참조하면, UFS 호스트(100)는 고성능 쓰기 모드에서 동작할 수 있다. 상기 고성능 쓰기 모드는, 라이트 데이터의 크기가 커서 UFS 장치(200)에게 데이터를 전송하는 속도가 열화될 때에 진입하는 모드일 수 있다. 즉, 고성능 쓰기 모드에 진입하는 경우, UFS 호스트(100)는 양방향 레인들(410-1, 410-2)을 모두 송신 레인으로 스위칭함으로써 UFS 장치(200)로의 데이터 전송의 대역폭을 증가시킬 수 있다. 즉, UFS 호스트(100)는 송신 레인(310-1), 양방향 레인들(410-1, 410-2)의 3개 레인을 통해 라이트 데이터를 전송할 수 있다.
도 6을 참조하면, UFS 호스트(100)는 송신 레인(310-1)을 통해 라이트 커맨드를 UFS 장치(200)에게 전송할 수 있다. 라이트 커맨드 또는 리드 커맨드와 같은 커맨드 정보는 단방향 송신 레인을 통해 UFS 장치(200)에게 전달될 수 있으나, 이에 제한되는 것은 아니다. 다양한 실시예들에 따라, 양방향 레인들(410-1, 410-2) 중 어느 하나의 레인을 통해 커맨드 정보를 송신할 수도 있다.
UFS 호스트(100)는 UFS 장치(200)로부터 RTT를 수신함에 응답하여, 송신 레인(310-1), 양방향 레인들(410-1, 410-2)을 통해 라이트 데이터를 병렬적으로 전송할 수 있다. UFS 장치(200)에게 전송해야 하는 라이트 데이터 부분 데이터의 총 개수가 6개라고 가정하는 경우, UFS 호스트(100)는 3개의 송신 레인을 운용하므로 각 레인마다 2번씩의 송신을 통해 라이트 데이터의 전송을 완료할 수 있다. 반면에, 고성능 쓰기 모드에서 동작하지 않고, 2개의 단방향 송신 레인들을 이용하는 경우, 상기 6개의 부분 데이터들을 모두 전송하기 위하여 3번씩 데이터 송신을 수행해야 하므로, 송신 속도가 열화되는 것을 알 수 있다.
도 7은 본 개시의 예시적 실시예에 따른 UFS 시스템에서 고성능 읽기 모드를 수행 시, 데이터 흐름을 도시한다.
도 7을 참조하면, UFS 호스트(100)는 고성능 읽기 모드에서 동작할 수 있다. 상기 고성능 읽기 모드는, 리드 데이터의 크기가 커서 UFS 장치(200)로부터 리드 데이터를 수신하는 속도가 포화될 때 진입하는 모드일 수 있다. 즉, 고성능 읽기 모드에 진입하는 경우, UFS 호스트(100)는 양방향 레인들(410-1, 410-2)을 모두 수신 레인으로 스위칭함으로써 UFS 장치(200)로부터 수신되는 데이터 전송을 위한 수신 대역폭의 크기를 증가시킬 수 있다. 즉, UFS 호스트(100)는 수신 레인(320-1), 양방향 레인들(410-1, 410-2)의 3개 레인을 통해 라이트 데이터를 전송할 수 있다.
도 7을 참조하면, UFS 호스트(100)는 송신 레인(310-1)을 통해 리드 커맨드를 UFS 장치(200)에게 전송할 수 있다. 라이트 커맨드 또는 리드 커맨드와 같은 커맨드 정보는 단방향 송신 레인을 통해 UFS 장치(200)에게 전달될 수 있으나, 이에 제한되는 것은 아니다. 다양한 실시예들에 따라, 양방향 레인들(410-1, 410-2) 중 어느 하나의 레인을 통해 커맨드 정보를 송신할 수도 있다.
UFS 장치(200)는 UFS 호스트(100)로부터 리드 커맨드를 수신함에 응답하여, 수신 레인(310-1), 양방향 레인들(410-1, 410-2)을 통해 리드 데이터를 UFS 호스트(100)에게 병렬적으로 전송할 수 있다. UFS 호스트(100)가 수신하는 라이트 데이터의 부분 데이터 총 개수가 6개라고 가정하는 경우, UFS 호스트(100)는 3개의 수신 레인을 운용하므로 각 레인마다 2번씩의 수신을 통해 리드 데이터의 수신을 완료할 수 있다. 반면에, 고성능 읽기 모드에서 동작하지 않고, 2개의 단방향 수신 레인들을 이용하는 경우, 상기 6개의 부분 데이터들을 모두 수신하기 위하여 3번씩 데이터 수신을 수행해야 하므로, 수신 속도가 열화되는 것을 알 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 UFS 시스템에서 저전력 모드를 수행 시, 데이터 흐름을 도시한다.
도 8을 참조하면, UFS 호스트(100)는 저전력 모드에서 동작할 수 있다. 상기 저전력 모드는, 리드 데이터 또는 라이트 데이터의 크기가 작아서 UFS 장치(200)로부터 리드 데이터를 수신할 때 3개의 수신 레인을 이용하지 않아도 되거나, 또는 UFS 장치(200)에게 라이트 데이터를 송신할 때 3개의 송신 레인을 이용하지 않아도 되는 모드를 지칭할 수 있다.
즉, 저전력 모드에 진입하는 경우, UFS 호스트(100)는 양방향 레인들(410-1, 410-2) 중 일부 레인을 비활성화할 수 있다. 예를 들어, UFS 호스트(100)는 라이트 데이터의 크기가 미리 정의된 크기보다 작은 경우, 송신 레인(310-1)만을 이용하여 UFS 장치(200)에게 라이트 데이터를 전송할 수도 있고, 양방향 레인들(410-1, 410-2) 중 하나의 레인 및 송신 레인(310-1)을 이용하여 2개의 송신 레인을 통해 라이트 데이터를 전송할 수도 있다.
다양한 실시예들에 따라, 상기 비활성화된 레인은, 데이터 송수신에 관여하지 않는 레인으로서, 전원을 차단할 수 있는 레인을 지칭할 수 있다. 예를 들어, 송신 모드로 동작 중인 적어도 하나의 양방향 레인이 비활성화되는 경우, UFS 호스트(100)는 비활성으로 결정된 양방향 레인의 레인 분배 회로(650)부터 전원을 차단할 수 있다. 즉, 송신 모드의 양방향 레인이 비활성화되는 경우, 레인 분배 회로(650), 스크램블러(660), RMMI(670), 8bit/10bit 인코더(680), 시리얼라이저(serializer)(690), 송신 앰프(695)의 파워가 오프(OFF)될 수 있다.
다른 예를 들어, 수신 모드로 동작 중인 적어도 하나의 양방향 레인이 비활성화되는 경우, UFS 호스트(100)는 아날로그 프론트엔드(frontend)부터 레인 병합 회로(580)까지 전원을 차단할 수 있다. 즉, 수신 모드의 양방향 레인이 비활성화되는 경우, 수신 앰프(510), CDR(520), 8bit/10bit 디코더(530), RMMI(540), 버퍼(550), 디스크램블러(560), 마커 및 스킵 심볼 제거 회로(570), 레인 병합 회로(580)의 전원을 오프할 수 있다.
도 9는 본 개시의 예시적 실시예에 따른 UFS 시스템의 동작 순서를 도시한다.
도 9를 참조하면, 동작 S110에서, UFS 호스트(100) 또는 UFS 장치(200)는 UFS 시스템(10)의 동작 모드를 결정하기 위한 복수의 임계 값들 및 샘플링 윈도우 크기, 상태 정보 모니터링 주기를 설정할 수 있다. 상기 동작 모드를 결정하기 위한 복수의 임계 값들은, 라이트 상한 임계 값, 리드 상한 임계 값, 하한 임계 값들을 포함할 수 있다. 일 예로, UFS 호스트(100)는, 어플리케이션(150)에 기반하여 UFS 장치(200)에게 송신하는 데이터 크기, UFS 장치(200)로부터 수신하는 데이터 크기를 식별하고, 상기 복수의 임계 값들과 비교하여 상기 동작 모드를 결정할 수 있다. 다른 예로, UFS 장치(200)는 UFS 장치 컨트롤러(220)의 데이터 플로우 분석 모듈(222)에 기반하여 UFS 호스트(100)로부터 수신되는 데이터 크기, UFS 호스트(100)에게 송신하는 데이터 크기를 식별하고, 상기 복수의 임계 값들과 비교하여 동작 모드를 결정할 수 있다. 또는, UFS 호스트(100)는 UFS 장치 컨트롤러(220)의 데이터 플로우 분석 모듈(222)로부터 데이터 플로우 분석 정보의 요청을 수신하고, UFS 호스트(100)와 UFS 장치(200)간에 송수신되는 데이터 크기 비율에 관한 정보를 데이터 플로우 분석 모듈(222)에게 전달할 수도 있다.
상기 라이트 상한 임계 값은, UFS 호스트(100)가 요청하는 라이트 데이터의 크기가 너무 커서(heavy) 발생할 수 있는 전송 속도의 열화를 방지하기 위한 임계 값을 지칭할 수 있다. 예를 들어, 후술할 상태 정보 값이 상기 라이트 상한 임계 값을 초과하는 경우, UFS 호스트(100)는 UFS 장치(200)에게 송신하는 라이트 데이터의 속도를 증대시키기 위하여 양방향 레인들(410-1, 410-2)을 송신 모드로 스위칭할 수 있다.
상기 리드 상한 임계 값은, UFS 호스트(100)가 수신하는 리드 데이터의 크기가 너무 큰 경우(heavy) 발생할 수 있는 수신 속도의 열화를 방지하기 위한 임계 값을 지칭할 수 있다. 예를 들어, 후술할 상태 정보 값이 상기 리드 상한 임계 값을 초과하는 경우, UFS 호스트(100)는 UFS 장치(200)로부터 리드 데이터를 수신하는 속도를 증대시키기 위하여 양방향 레인들(410-1, 410-2)을 수신 모드로 스위칭할 수 있다.
상기 하한 임계 값은, 리드 데이터 또는 라이트 데이터의 크기가 너무 작아서 양방향 레인들(410-1, 410-2)을 모두 활성화하지 않아도 되는 임계 값을 지칭할 수 있다. 즉, 상기 하한 임계 값은 UFS 시스템(10)이 저전력 모드에 진입할지 여부를 판단하는 값에 상응할 수 있다. 예를 들어, 후술할 상태 정보 값이 상기 하한 임계 값보다 작은 경우, UFS 호스트(100)는 양방향 레인들(410-1, 410-2) 중 적어도 하나의 레인을 비활성화할 수 있다.
상기 샘플링 윈도우 값은 리드 데이터 또는 라이트 데이터를 샘플링하는 단위 크기를 지칭할 수 있다. 상태 정보 모니터링 주기는, 얼마나 자주 상태 정보 값을 수신하여 동작 모드를 변경해야 하는지 판단하기 위한 값을 지칭할 수 있다. 예를 들어, 상기 상태 정보 모니터링 주기는 40ms일 수 있으나, 이에 제한되는 것은 아니다. 상태 정보 모니터링 주기가 감소할수록 UFS 호스트(100)와 UFS 장치(200) 간에 송수신 데이터 흐름에 빠르게 응답하여 효율적인 동작 모드의 변경이 가능할 수 있으나, 동시에 모니터링 횟수가 너무 증가하여 UFS 시스템(10) 전체의 효율을 감소시킬 수도 있다.
동작 S120에서, UFS 호스트(100) 또는 UFS 장치(200)는 타이머를 시작할 수 있다. 상기 타이머 값은 전술한 상태 정보 모니터링 주기를 지칭할 수 있다. 예를 들어, 상태 정보 모니터링 주기가 40ms인 경우, UFS 호스트(100)는 40ms 마다 어플리케이션(150)으로부터 상태 정보 값을 수신하고, 타이머를 재설정할 수 있다. 예를 들어, 상태 정보 모니터링 주기가 40ms인 경우, UFS 장치 컨트롤러(220)의 데이터 플로우 분석 모듈(222)은 40ms 마다 상태 정보를 생성하거나, UFS 호스트(100)의 어플리케이션에게 데이터 플로우 분석 정보를 요청할 수 있다.
동작 S130에서, UFS 호스트(100) 또는 UFS 장치(200)는 상태 정보 값을 확인할 수 있다. 상기 상태 정보 값은, UFS 시스템(10)의 송수신 레인을 통해 얼마나 많은 데이터들이 송수신되고 있는지 여부를 나타낼 수 있다. 예를 들어, 상기 상태 정보는 특정 값으로 나타낼 수 있으며, 단위는 [%]일 수 있다. 즉, 상기 상태 정보는 UFS 시스템(10)의 송수신 레인들이 리드 데이터 또는 라이트 데이터에 의해 어느 정도로 점유되었는지를 나타낼 수 있다. 예를 들어, UFS 호스트(100)가 UFS 장치(200)에게 송신하고자 하는 라이트 데이터의 크기가 큰 경우, UFS 호스트(100)는 송신 레인(310-1)들을 통해 지속적으로 라이트 데이터를 송신할 수 있다. 따라서, 전송 중인 라이트 데이터들에 의해 점유되는 송신 레인(310-1)의 비율은 증가할 수 있다. 상태 정보의 크기는 증가할수록 송신 레인 또는 수신 레인이 많이 점유되어 전송 속도가 포화되었음을 지칭할 수 있다.
동작 S140에서, UFS 호스트(100) 또는 UFS 장치(200)는 수신한 상태 정보 값과 상한 임계 값을 비교할 수 있다. 일 예로, 상태 정보 값에 따라 현재 송수신 레인들이 데이터에 의해 점유된 비율이 80이고, 상한 임계 값이 70인 경우, UFS 호스트(100)는 현재 데이터의 송수신 속도가 포화 단계이며 송수신 레인들 상에 데이터가 적체되었음을 판단할 수 있다. 이에 따라, UFS 호스트(100)는 동작 S150을 수행할 수 있다. 다른 예로, 상태 정보 값에 따라 현재 송수신 레인들이 데이터에 의해 점유된 비율은 50이고, 상한 임계 값은 70인 경우, UFS 호스트(100)는 현재 데이터의 송수신 속도가 포화 단계가 아니라고 판단할 수 있다.
동작 S150에서, UFS 호스트(100)는 UFS 장치(200)에게 전송한 커맨드의 종류를 판단할 수 있다. 즉, 동작 S140에서 현재 상태 정보 값이 상한 임계 값을 초과하였으므로, 리드 커맨드인지 또는 라이트 커맨드인지에 따라 양방향 레인들(410-1, 410-2)을 어떤 모드로 스위칭할 것인지 결정할 수 있다.
일 예로, UFS 장치(200)에게 전송한 커맨드가 리드 커맨드인 경우, UFS 장치(200)로부터 수신하는 리드 데이터에 의해 UFS 시스템(10)의 송수신 레인들 상에 적체가 발생하고 있음을 알 수 있다. 따라서, UFS 호스트(100)는 상기 적체를 해소하기 위하여, 양방향 레인들(410-1, 410-2)의 모드를 수신 모드로 스위칭하기 위한 제어 신호를 전달할 수 있다. 양방향 레인들(410-1, 410-2)이 수신 모드로 스위칭되는 경우, UFS 시스템(10)의 수신 레인의 개수는 3개로 증가될 수 있다. 이에 따라, 수신 대역폭이 1.5배 증가되므로 리드 데이터의 수신 속도 또한 증가하여 송수신 레인들 상에 데이터 적체는 해소될 수 있다.
다른 예로, UFS 장치(200)에게 전송한 커맨드가 라이트 커맨드인 경우, UFS 장치(200)에게 전송하는 라이트 데이터에 의해 UFS 시스템(10)의 송수신 레인들 상에 적체가 발생하고 있음을 알 수 있다. 따라서, UFS 호스트(100)는 상기 적체를 해소하기 위하여, 양방향 레인들(410-1, 410-2)의 모드를 송신 모드로 스위칭하기 위한 제어 신호를 전달할 수 있다. 양방향 레인들(410-1, 410-2)이 송신 모드로 스위칭되는 경우, UFS 시스템(10)의 송신 레인의 개수는 3개로 증가될 수 있다. 이에 따라, 송신 대역폭이 1.5배 증가되므로 라이트 데이터의 송신 속도 또한 증가하여 송수신 레인들 상에 데이터 적체는 해소될 수 있다.
동작 S150 이후에 송수신 레인을 3:1 또는 1:3으로 설정하여 데이터 적체를 해소한 이후에, UFS 장치(200)는 동작 S180에서, 타이머가 종료되었는지 판단할 수 있다. UFS 장치(200)는 타이머가 종료되지 않은 경우, 동작 S130을 반복하여 상태 정보 값을 확인하고, 송수신 레인의 비율을 적응적으로 변경할 수 있다. 타이머가 종료된 경우, UFS 장치(200)는 절차를 종료할 수 있다.
동작 S160에서, UFS 호스트(100) 또는 UFS 장치(200)는 수신한 상태 정보 값이 하한 임계 값보다 작은지 여부를 판단할 수 있다. 상태 정보 값이 상기 하한 임계 값보다 작은 경우, UFS 호스트(100)는 양방향 레인들(410-1, 410-2)을 모두 활성화할 필요가 없기 때문이다.
일 예로, 상태 정보 값이 상기 하한 임계 값보다 작은 경우, UFS 호스트(100) 또는 UFS 장치(200)는 양방향 레인들(410-1, 410-2) 중 적어도 일부를 비활성화할 수 있다. 이후, 양방향 레인들(410-1, 410-2) 중 활성화 상태를 유지하는 나머지 일부 레인들의 동작 모드를 결정하기 위하여, 동작 S170을 수행할 수 있다.
다른 예로, 상태 정보 값이 상기 하한 임계 값보다 큰 경우, UFS 호스트(100) 또는 UFS 장치(200)는 절차를 종료할 수 있다. 현재 송수신되는 데이터의 크기가 상한 임계 값보다 작고, 하한 임계 값보다 크기 때문에 송신 레인들의 개수와 수신 레인들의 개수가 동일한 조건을 유지할 수 있다.
동작 S170에서, UFS 호스트(100)는 UFS 장치(200)에게 전송한 커맨드의 종류를 판단할 수 있다. 즉, 동작 S160에서 현재 상태 정보 값이 하한 임계 값보다 작았으므로, 리드 커맨드인지 또는 라이트 커맨드인지에 따라 양방향 레인들(410-1, 410-2) 중 활성화 상태를 유지하는 일부 레인들을 어떤 모드로 스위칭할 것인지 결정할 수 있다.
일 예로, UFS 장치(200)에게 전송한 커맨드가 리드 커맨드인 경우, UFS 호스트(100) 또는 UFS 장치(200)는 양방향 레인들(410-1, 410-2) 중 활성화 상태를 유지하는 일부 레인들의 모드를 수신 모드로 스위칭하도록 제어할 수 있다. 이에 따라, UFS 시스템(10)의 수신 레인의 개수는 2개일 수 있으며, 양방향 레인들(410-1, 410-2) 전부 활성화 상태가 아니기 때문에 전력 소모가 감소될 수 있다.
다른 예로, UFS 장치(200)에게 전송한 커맨드가 라이트 커맨드인 경우, UFS 호스트(100) 또는 UFS 장치(200)는, 양방향 레인들(410-1, 410-2) 중 활성화 상태를 유지하는 일부 레인들의 모드를 송신 모드로 스위칭하도록 제어할 수 있다. 이에 따라, UFS 시스템(10)의 송신 레인의 개수는 2개일 수 있으며, 양방향 레인들(410-1, 410-2) 전부 활성화 상태가 아니기 때문에 전력 소모가 감소될 수 있다.
동작 S170 이후에 송수신 레인을 2:1 또는 1:2으로 설정하여 데이터 적체를 해소된 경우, UFS 장치(200)는 동작 S180에서, 타이머가 종료되었는지 판단할 수 있다. UFS 장치(200)는 타이머가 종료되지 않은 경우, 동작 S130을 반복하여 상태 정보 값을 확인하고, 송수신 레인의 비율을 적응적으로 변경할 수 있다. 타이머가 종료된 경우, UFS 장치(200)는 절차를 종료할 수 있다.
도 10a 내지 도 10c는 본 개시의 예시적 실시예에 따라 구현 가능한 다양한 비대칭 레인들의 예들을 각각 도시한다.
도 10a를 참조하면, UFS 시스템(10)은 하나의 송신 레인(310-1), 하나의 수신 레인(320-1), 및 4개의 양방향 레인들을 포함할 수 있다. 도 10a의 UFS 시스템(10)은 각각 적어도 둘 이상의 레인 병합 회로(500) 및 적어도 둘 이상의 레인 분배 회로(600)를 더 포함할 수 있다. 일 실시예에서, 4개의 양방향 레인들은 모두 송신 레인으로 스위칭될 수 있다. 4개의 양방향 레인들이 모두 송신 레인으로 스위칭된 경우, UFS 호스트(100)은 적어도 둘 이상의 레인 분배 회로(600)를 이용하여 5개의 송신 레인들을 통한 데이터 송신을 수행할 수 있다. 다른 실시예에서, 4개의 양방향 레인들은 모두 수신 레인으로 스위칭될 수 있다. 4개의 양방향 레인들이 모두 수신 레인으로 스위칭된 경우, UFS 호스트(100)은 적어도 둘 이상의 레인 병합 회로(500)를 이용하여 5개의 수신 레인들을 통한 데이터 수신을 수행할 수 있다.
도 10b를 참조하면, UFS 시스템(10)은 하나의 송신 레인(310-1), 하나의 수신 레인(320-1), 및 하나의 양방향 레인을 포함할 수 있다. 도 10b의 UFS 시스템(10)은 레인 병합 회로 및 레인 분배 회로를 구비할 수 있다. 다만, 도 5a에 도시된 레인 병합 회로(500)는 3개의 수신 레인들을 통해 수신된 심볼들을 병합하기 위한 것으로, 도 10b의 레인 병합 회로는 2개의 수신 레인들을 통해 수신된 심볼들을 병합하기 위한 회로에 상응할 수 있다. 마찬가지로, 도 10b의 레인 분배 회로는 2개의 송신 레인들을 통해 송신 심볼들을 균일하게 분배하기 위한 회로에 상응할 수 있다.
도 10c를 참조하면, UFS 시스템(10)은 하나의 송신 레인(310-1), 하나의 수신 레인(320-1), 및 3개의 양방향 레인들을 포함할 수 있다. 도 10a, 도 10b와 중복되는 설명은 생략될 수 있다. 도 10a 내지 도 10c의 실시예들을 참조하면, UFS 시스템(10)은 데이터의 송수신 클럭 스피드를 증가시키지 않더라도, 복수의 양방향 레인들의 스위칭 설정에 따라 결정되는 대역폭에 기반하여 다양한 송수신 데이터 레이트를 달성할 수 있을 것이다.
전술한 실시예들에서, 어플리케이션(150)을 포함하는 UFS 호스트(100)가 적어도 하나의 양방향 레인의 동작 모드를 스위칭할 것을 결정하고, UFS 장치(200)에게 전송하여 송수신 레인의 동작 모드를 일치시킴으로써 변경된 적어도 하나의 양방향 레인의 스트림 방향에 따라 데이터를 송수신할 수 있다.
도 11은 본 개시의 예시적 실시예에 따른 신호 교환도의 일 예를 도시한다.
도 11을 참조하면, 로컬 DME(Device Management Entity)(114-1)와 로컬 PA(PHY Adapter)(114-2) 간에 신호 교환이 이루어질 수 있다. 로컬 DME(114-1) 및 로컬 PA(114-2)는 도 2에 도시된 UIC 레이어(110) 중 MIPI Unipro(114)에 포함될 수 있다.
로컬 DME(114-1) 및 로컬 PA(114-2)의 로컬은 UFS 시스템(10)의 장치 중 신호를 먼저 생성하거나 또는 신호를 이니시에이트(initiate)하는 장치를 지칭할 수 있다. 즉, UFS 로컬 장치는, 도 2에 도시된 UFS 호스트(100)가 될 수도 있고, UFS 장치(200)가 될 수도 있다.
다양한 실시예들에 따라, 로컬 DME(114-1)는 로컬 PA(114-2)에게 로컬 설정 요청 신호(LOCAL SETTING REQ SIGNAL)을 전송할 수 있다. 상기 로컬 설정 요청 신호(LOCAL SETTING REQ SIGNAL)는 UFS 로컬 장치에 대한 내부 설정을 완료하기 위한 신호를 지칭할 수 있다. 예를 들어, MIPI Unipro 표준을 참조하면, 상기 로컬 설정 요청 신호는, PA_LM_SET.req 신호에 상응할 수 있다.
다양한 실시예들에 따라, 상기 로컬 설정 요청 신호(LOCAL SETTING REQ SIGNAL)는 활성 송신 데이터 레인 및 활성 수신 데이터 레인의 개수에 대한 정보를 포함할 수 있다. 예를 들어, MIPI Unipro 표준을 참조하면, PA_LM_SET.req 신호는 복수의 필드들을 포함할 수 있다. 상기 복수의 필드들은, 특성 설정 타입(AttrSetType), 관리 정보 베이스 특성(MIBattribute), 관리 정보 베이스 값(MIBvalue), 셀렉터 인덱스(SelectorIndex) 필드들을 포함할 수 있다.
다양한 실시예들에 따라, 활성 송신 데이터 레인 및 활성수신 데이터 레인의 개수에 대한 정보를 포함하는 로컬 설정 요청 신호는, 아래의 표를 참조하여 생성될 수 있다.
Attribute Attribute ID Valid Attribute Value(s)
PA_ActiveTxDataLanes 0x1560 1 to PA_AvailTxDataLanes
PA_ActiveRxDataLanes 0x1580 1 to PA_AvailRxDataLanes
활성 송신 데이터 레인에 대한 정보의 특성 ID는 “0x1560”를 가질 수 있고, 유효 특성 값은 1부터 최대 가용 송신 데이터 레인의 개수의 범위를 가질 수 있다.
활성 수신 데이터 레인에 대한 정보의 특성 ID는 “0x1580”에 상응할 수 있고, 유효 특성 값은 1부터 최대 가용 수신 데이터 레인의 개수의 범위를 가질 수 있다. 여기서, 최대 가용 송신 데이터 레인의 개수는, 송신 레인의 개수와 적어도 하나의 양방향 레인의 개수의 합에 상응할 수 있다. 상기 적어도 하나의 양방향 레인이 모두 송신 레인으로 동작할 때, 가용할 수 있는 송신 데이터 레인의 개수가 최대이기 때문이다. 최대 가용 송신 데이터 레인과 마찬가지로, 최대 가용 수신 데이터 레인의 개수는, 수신 레인의 개수와 적어도 하나의 양방향 레인의 개수의 합에 상응할 수 있다. 도 10a를 함께 참조하면, 수신 레인 및 송신 레인의 개수는 각각 1개이고, 적어도 하나의 양방향 레인의 개수는 4개이므로, 최대 가용 송신 데이터 레인의 개수 및 최대 가용 수신 데이터 레인의 개수는 각각 5개에 상응할 수 있다.
즉, 로컬 DME(114-1)는 로컬 PA(114-2)에게 활성 송신 데이터 레인 및 활성 수신 데이터 레인에 대한 정보를 포함하여 로컬 설정 요청 신호(LOCAL SETTING REQ SIGNAL)를 송신함으로써 UFS 로컬 장치의 상기 적어도 하나의 양방향 레인의 동작 모드를 스위칭하도록 지시할 수 있다. 로컬 PA(114-2)는 로컬 DME(114-1)로부터 상기 로컬 설정 요청 신호(LOCAL SETTING REQ SIGNAL)를 수신 및 복호하여 적어도 하나의 양방향 레인을 수신 레인 또는 송신 레인 중 어느 하나로 스위칭할 수 있다. 로컬 PA(114-2)는 상기 스위칭을 완료한 이후, 로컬 DME(114-1)에게 UFS 로컬 장치의 설정을 완료하였음을 지시하는 로컬 설정 응답 신호(LOCAL SETTING RSP SIGNAL)를 송신할 수 있다. 예를 들어, MIPI Unipro 표준을 참조하면, 상기 로컬 설정 응답 신호는, PA_LM_SET.cnf 신호에 상응할 수 있다.
다양한 실시예들에 따라, 로컬 DME(114-1)는 로컬 설정 응답 신호(LOCAL SETTING RSP SIGNAL)를 수신함에 응답하여, 리모트 설정 요청 신호를 로컬 PA(114-2)에게 송신할 수 있다. 로컬 설정 응답 신호(LOCAL SETTING RSP SIGNAL)가 수신된 경우, UFS 로컬 장치에 대한 적어도 하나의 양방향 레인의 동작 모드 스위칭은 완료되었으므로, UFS 리모트 장치에 대한 설정을 수행하기 위함이다. 예를 들어, MIPI Unipro 표준을 참조하면, 상기 리모트 설정 요청 신호는, PA_LM_PEER_SET.req 신호에 상응할 수 있다. 리모트 설정 요청 신호는, 전술한 로컬 설정 요청 신호(LOCAL SETTING REQ SIGNAL)과 동일한 필드 및 값들을 포함하므로, 중복되는 내용은 생략하기로 한다. 다만, 리모트 설정 요청 신호(REMOTE SEETING REQ SIGNAL)의 활성 송신 데이터 레인의 개수는, 로컬 설정 요청 신호(LOCAL SETTING REQ SIGNAL)의 활성 수신 데이터 레인의 개수와 동일하도록 설정되고, 리모트 설정 요청 신호(REMOTE SETTING REQ SIGNAL)의 활성 수신 데이터 레인의 개수는, 로컬 설정 요청 신호(LOCAL SETTING REQ SIGNAL)의 활성 송신 데이터 레인의 개수와 동일하도록 설정될 수 있다. UFS 로컬 장치와 UFS 리모트 장치는 동일한 UFS 레인을 통해 각각 송신 및 수신을 수행하기 때문에, UFS 로컬 장치의 송신 레인의 개수와 UFS 리모트 장치의 수신 레인의 개수는 서로 일치할 수 있다.
로컬 PA(114-2)는 UFS 레인 제어 신호(UFS LANE CTRL SIGNAL)를 리모트 PA(214-1)에게 전송할 수 있다. 리모트 PA(214-1)는 UFS 로컬 장치의 상대(counterpart) UFS 장치 즉, UFS 리모트 장치(예를 들어, 도 2의 UFS 장치(200))의 UIC 레이어(210) 중 MIPI Unipro(214)에 포함될 수 있다. 상기 UFS 레인 제어 신호는, MIPI M-PHY(112 또는 212) 및 송신 레인을 통해 UFS 리모트 장치에게 송신될 수 있다. 예를 들어, MIPI Unipro 표준을 참조하면, 상기 UFS 레인 제어 신호는, PACP_SET_req 신호에 상응할 수 있다. 또한, 로컬 PA(114-2)는 상대(counterpart) UFS 장치인 리모트 PA(214-1)에게 PACP_SET_req 신호를 송신하였음을 로컬 DME(114-1)에게 알리기 위하여, 리모트 설정 응답 신호(REMOTE SETTING RSP SIGNAL)를 로컬 DME(114-1)에게 전송할 수 있다. 상기 리모트 설정 응답 신호(REMOTE SETTING RSP SIGNAL)는 MIPI Unipro 표준에 도시된 PA_LM_PEER_SET.cnf_L 신호에 상응할 수 있다.
리모트 PA(214-1)는 상기 UFS 레인 제어 신호를 수신함에 응답하여, 리모트 DME(214-2)에게 설정 지시 신호(SETTING INDICATION SIGNAL)를 전송할 수 있다. 예를 들어, MIPI Unipro 표준을 참조하면, 상기 설정 지시 신호는, PA_LM_PEER_SET.ind 신호에 상응할 수 있다. 즉, 리모트 PA(214-1)는 상대(counterpart) UFS 장치로부터 레인 설정에 관한 신호를 수신 하였으므로, 상기 수신된 신호를 리모트 DME(214-2)에게 전송하여 적어도 하나의 양방향 레인의 동작 모드를 스위칭하도록 제어할 수 있다. 상기 설정 지시 신호(SETING INDICATION SIGNAL)는, UFS 로컬 장치의 로컬 PA(114-2)로부터 수신한 UFS 레인 제어 신호의 정보를 포함할 수 있다. 예를 들어, 설정 지시 신호(SETTING INDICATION SIGNAL)는 활성 송신 데이터 레인의 개수, 활성 수신 데이터 레인의 개수의 정보를 포함할 수 있다. 리모트 DME(214-2)는 상기 설정 지시 정보를 수신함에 응답하여, 설정 지시 응답 신호(SETTING INDICATION RSP SIGNAL)을 리모트 PA(214-1)에게 전송할 수 있다. 리모트 DME(214-2)는 상기 설정 지시 응답 신호를 리모트 PA(214-1)에게 전송함으로써 상기 설정 지시 신호(SETTING INDICATION SIGNAL)를 성공적으로 수신하였음을 리모트 PA(214-1)에게 알릴 수 있다. 예를 들어, MIPI Unipro 표준을 참조하면, 상기 설정 지시 응답 신호는, PA_LM_PEER_SET.rsp_L 신호에 상응할 수 있다.
리모트 DME(214-2)는 상기 수신된 설정 지시 신호(SETTING INDICATION SIGNAL)에 기반하여, 적어도 하나의 양방향 레인의 동작 모드를 스위칭할 수 있다. 예를 들어, 리모트 DME(214-2)는 상기 수신된 설정 지시 신호(SETTING INDICATION SIGNAL)에 포함된 활성 수신 데이터 레인의 개수 및 활성 송신 데이터 레인의 개수에 기반하여, 적어도 하나의 양방향 레인을 다운스트림 레인 또는 업스트림 레인으로 설정할 수 있다. 예를 들어, 도 10a를 함께 참조하면, UFS 리모트 장치는, 상기 설정 지시 신호(SETTING INDICATION SIGNAL)에 기반하여 양방향 레인들을 각각 다운스트림 UFS 레인으로 동작하도록 동작 모드를 스위칭할 수 있다.
리모트 DME(214-2)는 리모트 PA(214-1)에게 설정 지시 완료 신호(SETTING INDICATION COMPLETE SIGNAL)를 송신할 수 있다. 상기 설정 지시 완료 신호(SETTING INDICATION COMPLETE SIGNAL)는 적어도 하나의 양방향 레인에 대한 동작 모드의 스위칭을 완료하였음을 리모트 PA(214-1)를 통해 UFS 로컬 장치에게 전송함으로써 변경된 개수의 송신 레인 및 변경된 개수의 수신 레인을 통해 데이터 송수신을 시작하기 위함이다. 예를 들어, MIPI Unipro 표준을 참조하면, 상기 설정 지시 완료 신호는, PA_LM_PEER_SET.rsp 신호에 상응할 수 있다.
리모트 PA(214-1)는 리모트 DME(214-2)로부터 상기 설정 지시 완료 신호(SETTING INDICATION COMPLETE SIGNAL)를 수신함에 응답하여 UFS 로컬 장치에게 UFS 레인 제어 완료 신호(UFS LANE CTRL COMPLETE SIGNAL)를 전송할 수 있다. 보다 구체적으로, 리모트 PA(214-1)는 UFS 로컬 장치의 로컬 PA(114-2)에게 상기 UFS 레인 제어 완료 신호(UFS LANE CTRL COMPLETE SIGNAL)를 전송할 수 있다. 예를 들어, MIPI Unipro 표준을 참조하면, 상기 UFS 레인 제어 완료 신호는, PACP_SET_cnf 신호에 상응할 수 있다.
로컬 PA(114-2)는 상기 UFS 레인 제어 완료 신호(UFS LANE CTRL COMPLETE SIGNAL)를 수신하고, UFS 리모트 장치의 설정이 완료되었음을 지시하기 위한 리모트 설정 완료 신호(REMOTE SETTING COMPLETE SIGNAL)를 로컬 DME(114-1)에게 전송할 수 있다. 로컬 DME(114-1)는 상기 리모트 설정 완료 신호(REMOTE SETTING COMPLETE SIGNAL)를 수신함에 응답하여 UFS 리모트 장치에게 데이터를 송수신할 수 있다. 예를 들어, MIPI Unipro 표준을 참조하면, 상기 리모트 설정 완료 신호는, PA_LM_PEER_SET.cnf 신호에 상응할 수 있다. 도 11의 신호 교환도를 참조하면, UFS 호스트(100)와 UFS 장치(200)는 MIPI Unipro 표준에 기 정의된 PA_ActiveRxDataLane, PA_ActiveTxDataLane을 포함하는 필드들을 이용하여, 적어도 하나의 양방향 레인에 대한 동작 모드를 지시할 수 있음을 알 수 있다.
전술한 실시예들을 참조하면, 도 11의 신호 교환도는 데이터 송수신을 개시하기 이전에 UFS 레인을 제어하기 위한 신호 교환도에 상응할 수 있다. 다만, 본 발명은 데이터 송수신의 개시 이전에 UFS 레인을 설정하는 것에 제한되지 않으며, 다양한 실시예들에 따라 데이터 송수신 이후에 파워 모드를 변경하는 경우에도 적어도 하나의 양방향 레인들의 동작 모드를 스위칭할 수 있다. 일 실시예에 따라, UFS 로컬 장치는, PACP_PWR_req 신호를 UFS 리모트 장치에게 전송함으로써 파워 모드를 변경할 수 있다. 이 때, PACP_PWR_req 신호에 포함되는 PA_PWRModeUs_erData의 리저브드 비트를 이용할 수 있다. MIPI Unipro 표준을 참조하면, PA_PWRModeUserData 필드의 “0x15B6” 내지 “0x15BB” 의 리저브드 비트에 전술한 바와 같이 활성 수신 레인의 개수, 활성 송신 레인의 개수, 셀렉터 인덱스(SelectorIndex)에 대한 정보를 포함하도록 설정할 수 있다.
도 12는 본 개시의 예시적 실시예에 따른 UFS 시스템의 다른 예를 도시한다.
도 12를 참조하면, UFS 장치(200)는 복수의 UIC 레이어들을 포함할 수 있다. 예를 들어, 상기 복수의 UIC 레이어들은 제1 UIC 레이어(210-1) 및 제2 UIC 레이어(210-2)를 포함할 수 있다.
제1 UIC 레이어(210-1)는 UFS 호스트(100)와 인터페이스를 위한 UIC 레이어를 지칭할 수 있다. 제2 UIC 레이어(210-2)는 UFS 카드(400)와 인터페이스를 위한 UIC 레이어에 상응할 수 있다. 다양한 실시예들에 따라, UFS 장치(200)는 eUFS(embedded UFS)에 상응할 수 있다. 즉, UFS 호스트(100)와 UFS 장치(200)는 동일한 인쇄 회로 기판(printed circuitry board, PCB)에 임베디드될 수 있다.
다양한 실시예들에 따라, UFS 시스템(10)은 UFS 카드(400)를 더 포함할 수 있다. 상기 UFS 카드(400)는 UFS 시스템(10)을 포함하는 전자 장치와 탈부착이 가능한 포터블(portable) UFS 장치를 지칭할 수 있다. 예를 들어, 제2 UIC 레이어(210-2)는 CF 카드 인터페이스에 상응할 수 있다. UFS 카드(400)가 선택적으로 연결될 수 있으므로, UFS 장치(200)는 UFS 카드(400)와 인터페이스를 위한 제2 UIC 레이어(210-2)를 구비할 수 있다. 도 12에는 미 도시되었으나, UFS 카드(400)는 UFS 장치(200)와 동일한 블록들을 적어도 포함할 수 있다.
다양한 실시예들에 따라, UFS 호스트(100)는 UFS 장치(200)와 전기적으로 연결되고, UFS 장치(200)는 UFS 카드(400)와 전기적으로 연결될 수 있다. 예를 들어, UFS 호스트(100), UFS 장치(200) 및 UFS 카드(400)는 서로 직렬 접속될 수 있다. 즉, SCSI 인터페이스를 채용한 UFS 시스템(10)은 데이지 체인 형식을 지원할 수 있다. 도 12를 참조하면, UFS 시스템(10)는 UFS 호스트(100), UFS 장치(200), UFS 카드(400)의 3개 UFS 장치에 대한 데이지 체인 형식을 지원할 수 있다.
다양한 실시예들에 따라, UFS 카드(400)는 데이터 플로우 분석에 요구되는 리소스의 할당 및 오버헤드로 인해 야기되는 성능 하락을 방지하기 위하여, UFS 장치(200)의 데이터 플로우 분석 모듈(222)은 구비하지 않을 수 있다. 이에 대응하여, UFS 장치(200)는 UFS 카드(400)와 연결되는 추가 UFS 데이터 레인의 동작 모드를 변경할 수 있다.
일 실시예에 따라, UFS 장치(200)는 데이터 플로우 분석 모듈(222)에 기반하여 UFS 호스트(100) 및 UFS 카드(400)에게 동작 모드의 변경을 지시하는 제어 신호를 송신할 수 있다. 예를 들어, UFS 장치 컨트롤러(220)는 UFS 호스트(100)와 연결되는 UFS 데이터 레인 중 적어도 하나의 양방향 UFS 레인의 동작 모드를 제1 방향 또는 제2 방향에 따라 데이터를 전송하도록 지시할 수 있다. 상기 제1 방향은, UFS 장치(200)로부터 UFS 호스트(100)에게 데이터를 전송하는 방향에 상응하고, 제2 방향은, UFS 호스트(100)로부터 UFS 장치(200)에게 데이터를 전송하는 방향에 상응할 수 있다. 다른 예를 들어, UFS 장치 컨트롤러(220)는 UFS 카드(400)와 연결되는 추가 UFS 데이터 레인 중 적어도 하나의 양방향 UFS 레인의 동작 모드를 제3 방향 또는 제4 방향에 따라 데이터를 전송하도록 지시할 수 있다. 상기 제3 방향은, UFS 카드(400)로부터 UFS 장치(200)에게 데이터를 전송하는 방향에 상응하고, 상기 제4 방향은, UFS 장치(200)로부터 UFS 카드(400)에게 데이터를 전송하는 방향에 상응할 수 있다.
다른 실시예에 따라, UFS 호스트(100)는 UFS 장치(200)에게 동작 모드의 변경을 지시하는 제어 신호를 송신할 수 있다. 예를 들어, 어플리케이션(150)은 UFS 장치(200)와의 리드 데이터 및 라이트 데이터의 로드 비율에 기반하여 적어도 하나의 양방향 UFS 레인의 데이터 전송 방향을 지시하는 제어 신호를 전송할 수 있다. UFS 장치(200)는 상기 제어 신호를 수신하고, UFS 카드(400)에게 추가 제어 신호를 전송할 수 있다. 상기 추가 제어 신호는, UFS 장치(200)가 UFS 호스트(100)로부터 수신한 제어 신호에 따라 변경되는 적어도 하나의 양방향 UFS 레인의 데이터 전송 방향과 일치하도록 UFS 카드(400)와의 추가 UFS 데이터 레인 중 적어도 하나의 양방향 UFS 레인의 데이터 전송 방향을 제어하기 위한 신호를 지칭할 수 있다.
전술한 실시예를 통해, UFS 장치(200)는 데이지 체인 형식으로 연결되는 UFS 카드(400)의 동작 모드를 제어함으로써, UFS 호스트(100)의 동작 모드 관리를 위한 리소스 할당을 경감시키고, 성능을 향상시킬 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. UFS 호스트에게 데이터를 출력하는 제1 방향을 위한 제1 UFS 레인과, 상기 UFS 호스트로부터 데이터를 수신하는 제2 방향을 위한 제2 UFS 레인과, 동작 모드에 따라 상기 제1 방향 및 상기 제2 방향을 스위칭할 수 있는 양방향 UFS 레인들을 포함하는 UFS 데이터 레인; 및
    상기 동작 모드를 지시하는 제어 신호에 기반하여, 상기 양방향 UFS 레인들의 데이터 전송 방향을 스위칭하는 UFS 장치 컨트롤러를 포함하는 UFS 장치.
  2. 청구항 1에 있어서,
    상기 UFS 데이터 레인과 상기 UFS 장치 컨트롤러를 연결하는 UFS 인터페이스 회로를 더 포함하고,
    상기 인터페이스 회로는,
    상기 양방향 UFS 레인들 중 상기 제1 방향의 UFS 레인들을 통해 상기 UFS 호스트에게 출력하는 데이터 심볼들을 균일하게 분배하기 위한 분배 회로;
    상기 양방향 UFS 레인들 중 상기 제2 방향의 UFS 레인들을 통해 상기 UFS 호스트로부터 수신되는 데이터 심볼들을 병합하기 위한 병합 회로; 및
    상기 동작 모드에 따라, 상기 분배 회로 또는 상기 병합 회로 중 어느 하나를 활성화하는 스위칭 회로들을 더 포함하는 UFS 장치.
  3. 청구항 2에 있어서,
    상기 UFS 장치 컨트롤러는,
    상기 UFS 장치로부터 출력 데이터의 크기 및 상기 UFS 장치로의 입력 데이터의 크기에 적어도 기반하여, 상기 동작 모드를 결정하는 모니터링 회로를 더 포함하는 UFS 장치.
  4. 청구항 3에 있어서,
    상기 모니터링 회로는,
    상기 UFS 호스트에게 출력하는 데이터의 크기에 대한 상기 제1 방향의 UFS 레인들이 전송할 수 있는 데이터의 크기의 제1 비율 값, 상기 UFS 호스트로부터 수신되는 데이터의 크기에 대한 상기 제2 방향의 UFS 레인들이 전송할 수 있는 데이터의 크기의 비율인 제2 비율 값에 기반하여, 상기 양방향 UFS 레인에 대한 동작 모드를 결정하는 UFS 장치.
  5. 청구항 4에 있어서,
    상기 모니터링 회로는,
    상기 제1 비율 값이 상기 제2 비율 값보다 큰 경우, 상기 양방향 UFS 레인들 중 상기 제1 방향에 상응하는 UFS 레인들의 개수가 상기 제2 방향에 상응하는 UFS 레인들의 개수보다 크도록 상기 양방향 UFS 레인들을 스위칭하고,
    상기 제1 비율 값이 상기 제2 비율 값보다 작은 경우, 상기 양방향 UFS 레인들 중 상기 제1 방향에 상응하는 UFS 레인들의 개수가 상기 제2 방향에 상응하는 UFS 레인들의 개수보다 작도록 상기 양방향 UFS 레인들을 스위칭하고,
    상기 제1 비율 값 및 상기 제2 비율 값이 각각 하한 임계 값보다 작은 경우, 상기 양방향 UFS 레인들 중 적어도 일부를 비활성화하는 것을 특징으로 하는 UFS 장치.
  6. 청구항 4에 있어서,
    상기 UFS 장치 컨트롤러는,
    상기 모니터링 회로에 의해 결정된 동작 모드를 지시하는 제어 신호를, 상기 UFS 호스트에게 전송하는 것을 특징으로 하는 UFS 장치.
  7. 청구항 2에 있어서,
    상기 병합 회로는,
    적어도 둘 이상의 양방향 UFS 레인들을 통해 수신된 데이터 심볼들을 하나의 심볼 스트림으로 병합하고,
    상기 분배 회로는,
    하나의 심볼 스트림을 적어도 둘 이상의 양방향 UFS 레인들을 통해 균일한 데이터 심볼들로 분배하는 것을 특징으로 하는 UFS 장치.
  8. 청구항 2에 있어서,
    상기 UFS 장치 컨트롤러는,
    상기 UFS 호스트로부터 수신된 제어 신호에 기반하여 동작 모드를 식별하고, 식별된 동작 모드에 따라, 상기 분배 회로 또는 상기 병합 회로 중 어느 하나를 활성화하도록 상기 스위칭 회로들을 제어하는 UFS 장치.
  9. 명령어들을 실행하도록 구성된 적어도 하나의 코어를 포함하는 어플리케이션 프로세서, 상기 어플리케이션 프로세서의 리퀘스트를 수신하여 UFS 명령으로 변환하는 UFS 드라이버, 상기 변환된 UFS 명령을 UFS 장치에게 전송하는 UFS 호스트 컨트롤러를 포함하는 UFS 호스트; 및
    상기 UFS 호스트에게 데이터를 출력하는 제1 방향을 위한 제1 UFS 레인과, 상기 UFS 호스트로부터 데이터를 수신하는 제2 방향을 위한 제2 UFS 레인과, 동작 모드에 따라 상기 제1 방향 및 상기 제2 방향을 스위칭할 수 있는 양방향 UFS 레인들을 포함하는 UFS 데이터 레인 및 상기 동작 모드에 기반하여, 상기 양방향 UFS 레인들의 데이터 전송 방향을 스위칭하는 UFS 장치 컨트롤러를 제어하는 UFS 장치를 포함하는 UFS 시스템.
  10. 청구항 9에 있어서,
    상기 어플리케이션 프로세서는, 상태 정보에 기반하여 상기 동작 모드를 결정하고, 상기 UFS 장치에게 상기 동작 모드를 지시하는 제어 신호를 전송하고,
    상기 상태 정보는,
    상기 UFS 장치로부터 상기 UFS 호스트에게 전송되는 리드 데이터의 크기에 대한 상기 제1 방향의 UFS 레인들의 로드 비율을 나타내는 제1 비율 값, 및/또는 상기 UFS 호스트로부터 상기 UFS 장치에게 전송되는 라이트 데이터의 크기에 대한 상기 제2 방향의 UFS 레인들의 로드 비율을 나타내는 제2 비율 값을 포함하는 것을 특징으로 하는 UFS 시스템.
  11. 청구항 10에 있어서,
    상기 어플리케이션 프로세서는,
    상기 상태 정보와 복수의 임계 값들을 비교하여 양방향 UFS 레인들의 동작 모드를 결정하고,
    상기 복수의 임계 값들은,
    상기 제1 방향의 UFS 레인들을 통해 상기 리드 데이터를 수신할 때, 수신 속도의 포화가 발생하는 리드 상한 임계 값, 상기 제2 방향의 UFS 레인들을 통해 상기 라이트 데이터를 송신할 때, 송신 속도의 포화가 발생하는 라이트 상한 임계 값, 및 양방향 UFS 레인들 중 적어도 일부를 비활성화하더라도 상기 수신 속도의 포화 또는 상기 송신 속도의 포화가 발생하지 않는 하한 임계 값을 포함하는 것을 특징으로 하는 UFS 시스템.
  12. 청구항 11에 있어서,
    상기 어플리케이션 프로세서는,
    상기 상태 정보 중 상기 제1 비율 값이 상기 리드 상한 임계 값을 초과하는 경우, 제1 동작 모드에 따라 양방향 UFS 레인들 중 적어도 일부의 UFS 레인을 상기 제1 방향으로 데이터를 전송하도록 스위칭하고,
    상기 상태 정보 중 상기 제2 비율 값이 상기 라이트 상한 임계 값을 초과하는 경우, 제2 동작 모드에 따라 양방향 UFS 레인들 중 적어도 일부의 UFS 레인을 상기 제2 방향으로 데이터를 전송하도록 스위칭하고,
    상기 제1 비율 값 및 상기 제2 비율 값이 상기 하한 임계 값보다 작은 경우, 제3 동작 모드에 따라 양방향 UFS 레인들 중 적어도 일부 UFS 레인을 비활성화하는 것을 특징으로 하는 UFS 시스템.
  13. 청구항 12에 있어서,
    상기 UFS 장치는,
    상기 UFS 데이터 레인과 상기 UFS 장치 컨트롤러를 연결하는 UFS 인터페이스 회로를 더 포함하고,
    상기 인터페이스 회로는,
    상기 양방향 UFS 레인들 중 상기 제1 방향의 UFS 레인들을 통해 상기 UFS 장치로부터 상기 UFS 호스트에게 출력하는 데이터 심볼들을 균일하게 분배하기 위한 분배 회로;
    상기 양방향 UFS 레인들 중 상기 제2 방향의 UFS 레인들을 통해 상기 UFS 호스트로부터 상기 UFS 장치에게 수신되는 데이터 심볼들을 병합하기 위한 병합 회로; 및
    상기 제1 동작 모드에 따라 상기 분배 회로를 활성화하거나 또는 상기 제2 동작 모드에 따라 상기 병합 회로를 활성화하도록 구성된 스위칭 회로들을 더 포함하는 UFS 시스템.
  14. 청구항 13에 있어서,
    상기 병합 회로는,
    적어도 둘 이상의 양방향 UFS 레인들을 통해 수신된 데이터 심볼들을 하나의 심볼 스트림으로 병합하고,
    상기 분배 회로는,
    하나의 심볼 스트림을 적어도 둘 이상의 양방향 UFS 레인들을 통해 균일한 데이터 심볼들로 분배하는 것을 특징으로 하는 UFS 시스템.
  15. 청구항 9에 있어서,
    상기 UFS 장치와 전기적으로 연결되는 UFS 카드를 더 포함하고,
    상기 UFS 장치는,
    상기 UFS 카드와 전기적 연결을 위한 추가 UFS 데이터 레인; 및
    상기 추가 UFS 데이터 레인과 상기 UFS 장치 컨트롤러를 연결하는 추가 UFS 인터페이스 회로를 더 포함하고,
    상기 추가 UFS 데이터 레인은, 상기 UFS 카드로부터 상기 UFS 장치에게 데이터를 전달하는 제3 방향을 위한 제3 UFS 레인과, 상기 UFS 장치로부터 상기 UFS 카드에게 데이터를 전달하는 제4 방향을 위한 제4 UFS 레인과, 상기 제3 방향 및 상기 제4 방향을 스위칭할 수 있는 양방향 UFS 레인들을 포함하는 UFS 시스템.
  16. 청구항 15에 있어서,
    상기 UFS 장치 컨트롤러는,
    상기 UFS 호스트로부터 수신된 제어 신호에 기반하여, 동작 모드를 식별하고, 상기 식별된 동작 모드에 기반하여 상기 추가 UFS 데이터 레인에 포함되는 양방향 UFS 레인들의 전송 방향을 지시하는 제어 신호를 상기 UFS 카드에게 전송하는 것을 특징으로 하는 UFS 시스템.
  17. 청구항 15에 있어서,
    상기 UFS 장치는, 상기 UFS 호스트와 동일한 기판 상에 구현되고,
    상기 UFS 카드는, 상기 기판과 탈부착이 가능한 것을 특징으로 하는 UFS 시스템.
  18. 제1 UFS 장치에 있어서,
    제2 UFS 장치로부터 입력 데이터를 수신하기 위한 수신 레인과, 상기 제2 UFS 장치에게 출력 데이터를 송신하기 위한 송신 레인과, 동작 모드에 따라, 상기 입력 데이터 및/또는 상기 출력 데이터를 전송하기 위한 적어도 하나의 양방향 레인을 포함하는 UFS 데이터 레인;
    상기 입력 데이터 또는 상기 출력 데이터의 크기와 상기 UFS 데이터 레인의 개수에 기반하여 상태 정보 값을 생성하고, 상기 상태 정보 값에 기반하여 상기 적어도 하나의 양방향 레인의 상기 동작 모드를 결정하는 UFS 컨트롤러를 포함하는 제1 UFS 장치.
  19. 청구항 18에 있어서,
    상기 상태 정보 값은, 상기 출력 데이터의 크기에 대한 전체 송신 레인의 비율 값, 또는 상기 입력 데이터의 크기에 대한 전체 수신 레인의 로드 비율 값을 포함하고,
    상기 전체 송신 레인은, 상기 수신 레인과 상기 적어도 하나의 양방향 레인 중 상기 입력 데이터를 전달하는 레인을 포함하고,
    상기 전체 수신 레인은, 상기 송신 레인과 상기 적어도 하나의 양방향 레인 중 상기 출력 데이터를 전달하는 레인을 포함하는 제1 UFS 장치.
  20. 청구항 19에 있어서,
    상기 UFS 컨트롤러는,
    상기 상태 정보의 값과 복수의 임계 값들을 비교하여 상기 적어도 하나의 양방향 레인의 동작 모드를 결정하는 제1 UFS 장치.
KR1020200151278A 2020-11-12 2020-11-12 Ufs 장치, ufs 장치의 동작 방법 및 ufs 장치를 포함하는 시스템 KR20220064786A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200151278A KR20220064786A (ko) 2020-11-12 2020-11-12 Ufs 장치, ufs 장치의 동작 방법 및 ufs 장치를 포함하는 시스템
US17/498,815 US20220147254A1 (en) 2020-11-12 2021-10-12 Ufs device, method of operating the ufs device, and system including the ufs device
CN202111209883.3A CN114490481A (zh) 2020-11-12 2021-10-18 Ufs设备、操作ufs设备的方法以及包括ufs设备的系统
DE102021127003.0A DE102021127003A1 (de) 2020-11-12 2021-10-19 Ufs-vorrichtung, verfahren zum betreiben der ufs-vorrichtung, und system, welches die ufs-vorrichtung enthält

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200151278A KR20220064786A (ko) 2020-11-12 2020-11-12 Ufs 장치, ufs 장치의 동작 방법 및 ufs 장치를 포함하는 시스템

Publications (1)

Publication Number Publication Date
KR20220064786A true KR20220064786A (ko) 2022-05-19

Family

ID=81256262

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200151278A KR20220064786A (ko) 2020-11-12 2020-11-12 Ufs 장치, ufs 장치의 동작 방법 및 ufs 장치를 포함하는 시스템

Country Status (4)

Country Link
US (1) US20220147254A1 (ko)
KR (1) KR20220064786A (ko)
CN (1) CN114490481A (ko)
DE (1) DE102021127003A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11704032B2 (en) * 2021-04-26 2023-07-18 Micron Technology, Inc. Switchable lane directions between a host system and a memory system
US20230273890A1 (en) * 2022-02-28 2023-08-31 Advanced Micro Devices, Inc. Host controller and bus-attached peripheral device power consumption reduction

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312176B1 (en) * 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US9430148B2 (en) * 2014-05-01 2016-08-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Multiplexed synchronous serial port communication with skew control for storage device
US9343103B2 (en) * 2014-07-11 2016-05-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Serial port communication for storage device using single bidirectional serial data line
US10313048B1 (en) * 2017-11-17 2019-06-04 Adva Optical Networking Se Method and system for establishing at least two bidirectional communication links using coherent detection
US20200233821A1 (en) * 2020-03-23 2020-07-23 Intel Corporation Unidirectional information channel to monitor bidirectional information channel drift

Also Published As

Publication number Publication date
US20220147254A1 (en) 2022-05-12
CN114490481A (zh) 2022-05-13
DE102021127003A1 (de) 2022-05-12

Similar Documents

Publication Publication Date Title
US8819462B2 (en) Serial advanced technology attachment interfaces and methods for power management thereof
KR101988260B1 (ko) 임베디드 멀티미디어 카드, 및 이의 동작 방법
US20150261446A1 (en) Ddr4-onfi ssd 1-to-n bus adaptation and expansion controller
US20220147254A1 (en) Ufs device, method of operating the ufs device, and system including the ufs device
US11829626B2 (en) Storage device and operating method of storage device
US10891075B2 (en) Memory system and operating method thereof
KR20130070251A (ko) 브릿지 칩셋 및 그것을 포함하는 데이터 저장 시스템
TWI512477B (zh) 組配記憶體組件之資料寬度的方法、記憶體組件及相關之非暫時性電腦可讀取儲存媒體
KR20200093362A (ko) 메모리 시스템 및 그것의 동작 방법
EP3905055B1 (en) Link startup method of storage device, and storage device, host and system implementing same
KR102100707B1 (ko) 데이터 저장 장치
CN108205478B (zh) 智能序列式小型计算机系统接口物理层功率管理
KR102108374B1 (ko) 스토리지 시스템 및 그것의 비신호 분석 방법
KR20150072469A (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
US11137823B1 (en) Systems and methods for power management in a data storage device
US20240037027A1 (en) Method and device for storing data
US10216421B2 (en) Method of operating storage device using serial interface and method of operating data processing system including the same
US11734207B1 (en) Dynamic port allocation in PCIe bifurcation system
US11671287B2 (en) Interconnect module, UFS system including the same, and method of operating the UFS system
KR20230009196A (ko) 스토리지 장치, 및 이의 동작 방법
KR20220032816A (ko) 메모리 시스템에서 데이터 통신을 보정하는 장치 및 방법
EP4231132A1 (en) Memory system for tailoring data, host system for controlling the memory system, and operation method of the memory system
EP3992803A2 (en) Storage device and operating method of storage device
KR20200078101A (ko) 메모리 시스템 및 그것의 동작 방법
KR20230124457A (ko) 데이터를 재단하는 메모리 시스템, 메모리 시스템을 제어하는 호스트 시스템 및 메모리 시스템의 동작방법

Legal Events

Date Code Title Description
A201 Request for examination