KR20180035266A - 서로 직렬로 연결된 스토리지 장치들 중 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 및 그것의 동작 방법 - Google Patents

서로 직렬로 연결된 스토리지 장치들 중 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20180035266A
KR20180035266A KR1020160124749A KR20160124749A KR20180035266A KR 20180035266 A KR20180035266 A KR 20180035266A KR 1020160124749 A KR1020160124749 A KR 1020160124749A KR 20160124749 A KR20160124749 A KR 20160124749A KR 20180035266 A KR20180035266 A KR 20180035266A
Authority
KR
South Korea
Prior art keywords
storage device
reset
reset signal
application processor
host
Prior art date
Application number
KR1020160124749A
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 KR1020160124749A priority Critical patent/KR20180035266A/ko
Priority to US15/697,900 priority patent/US10437498B2/en
Priority to CN201710854374.3A priority patent/CN107871524B/zh
Publication of KR20180035266A publication Critical patent/KR20180035266A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • 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/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports

Abstract

본 발명은, 캐스케이드 연결 구조로 연결된 스토리지 장치들을 포함하는 전자 기기에서 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 관한 것이다. 본 발명의 전자 기기는 애플리케이션 프로세서, 그리고 제 1 스토리지 장치를 포함할 수 있다. 제 1 스토리지 장치는, 애플리케이션 프로세서와 직접 통신하도록 애플리케이션 프로세서에 연결되고 애플리케이션 프로세서로부터 수신된 하드웨어 리셋 신호에 응답하여 소프트웨어 리셋 신호를 생성하는 리셋 컨버터를 포함할 수 있다. 제 1 스토리지 장치와 직접 연결되고 애플리케이션 프로세서와 직접 연결되지 않는 제 2 스토리지 장치는, 상기 소프트웨어 리셋 신호에 의해 리셋될 수 있다. 본 발명에 따르면, 애플리케이션 프로세서에 직접 연결되지 않는 제 2 스토리지 장치를 효율적으로 리셋시킬 수 있다.

Description

서로 직렬로 연결된 스토리지 장치들 중 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 및 그것의 동작 방법{ELECTRONIC DEVICE CONFIGURED TO RESET A STORAGE DEVICE WHICH NON-DIRECTLY CONNECTED TO APPLICATION PROCESSOR FROM AMONG SERIALLY CONNECTED STORAGE DEVICES AND OPERATING METHOD THEREOF}
본 발명은 전자 기기에 관한 것으로, 좀 더 상세하게는, 캐스케이드 연결 구조로 연결된 스토리지 장치들을 포함하는 전자 기기에서, 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 방법에 관한 것이다.
근래에, 스마트폰, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 PC, 웨어러블 기기와 같은 다양한 전자 기기들이 널리 사용되고 있다. 이러한 전자 기기들은 대개 데이터를 저장하기 위한 스토리지 장치를 포함한다. 특히, 이러한 전자 기기들의 대용량화 및 고속화 추세에 따라, 전자 기기의 스토리지 장치의 용량을 증가시키고 스토리지 장치의 속도를 향상시키기 위한 많은 노력이 있어 왔다. 이러한 노력의 일환으로, 전자 기기의 애플리케이션 프로세서와 스토리지 장치 간의 인터페이싱을 수행하기 위한 다양한 규약이 채택되어 왔다.
본 발명의 목적은, 캐스케이드 연결 구조로 연결된 스토리지 장치들을 포함하는 전자 기기에 있어서, 애플리케이션 프로세서에 직접 연결되지 않는 착탈식 스토리지 장치를 리셋시킬 수 있는 임베디드 스토리지 장치 및 이를 포함하는 전자 기기를 제공하는데 있다.
본 발명의 실시 예에 따른 전자 기기는 애플리케이션 프로세서, 그리고 상기 애플리케이션 프로세서와 직접 통신하도록 상기 애플리케이션 프로세서에 연결되고, 상기 애플리케이션 프로세서로부터 수신된 하드웨어 리셋 신호에 응답하여 소프트웨어 리셋 신호를 생성하는 리셋 컨버터를 포함하는 제 1 스토리지 장치를 포함하되, 상기 제 1 스토리지 장치와 직접 통신하도록 상기 제 1 스토리지 장치에 연결되고 상기 애플리케이션 프로세서와 직접 연결되지 않는 제 2 스토리지 장치는, 상기 소프트웨어 리셋 신호에 의해 리셋될 수 있다.
본 발명의 실시 예에 따른, 애플리케이션 프로세서와 직접 통신하도록 상기 애플리케이션 프로세서에 연결되는 임베디드 스토리지 장치는, 상기 애플리케이션 프로세서로부터 수신된 하드웨어 리셋 신호에 응답하여 소프트웨어 리셋 신호를 생성하는 리셋 컨버터를 포함하되, 상기 임베디드 스토리지 장치와 직접 통신하도록 상기 임베디드 스토리지 장치에 연결되고 상기 애플리케이션 프로세서와 직접 연결되지 않는 착탈식 스토리지 장치는, 상기 소프트웨어 리셋 신호에 의해 리셋될 수 있다.
본 발명의 실시 예에 따르면, 캐스케이드 연결 구조로 연결된 스토리지 장치들을 포함하는 전자 기기에 있어서, 애플리케이션 프로세서에 직접 연결되지 않는 착탈식 스토리지 장치를 리셋시킬 수 있는 방법을 제공할 수 있다.
도 1은 본 발명의 실시 예에 따라 직렬로 연결되는 스토리지 장치들을 포함하는 스토리지 시스템을 보여주는 블록도이다.
도 2a 내지 도 2d는 도 1의 스토리지 시스템의 예시적인 구현들을 보여주는 도면들이다.
도 3은 도 1의 스토리지 시스템에 채용될 수 있는 인터페이스 규약에 따른 계층 구조를 보여주는 블록도이다.
도 4는 본 발명의 실시 예에 따른 스토리지 시스템에서 스토리지 장치들에 대한 리셋을 수행하기 위한 과정을 보여주는 블록도이다.
도 5 및 도 6은 도 4의 스토리지 시스템에서의 리셋 동작을 보여주는 순서도들이다.
도 7a는 본 발명의 실시 예에 따른 스토리지 시스템(1000)의 동작을 보여주는 순서도이다.
도 7b는 7a에 도시된 실시 예를 좀 더 상세하게 보여주는 순서도이다.
도 8은 본 발명의 실시 예에 따른 스토리지 시스템에서 스토리지 장치들에 대한 리셋을 수행하기 위한 과정을 보여주는 블록도이다.
도 9 및 도 10은 도 8의 스토리지 시스템에서의 리셋 동작을 보여주는 순서도들이다.
도 11은 본 발명의 실시 예에 따른 스토리지 시스템에서 스토리지 장치들에 대한 리셋을 수행하기 위한 과정을 보여주는 블록도이다.
도 12 및 도 13은 도 11의 스토리지 시스템에서의 리셋 동작을 보여주는 순서도들이다.
도 14는 본 발명의 실시 예에 따른 스토리지 시스템에서 스토리지 장치들에 대한 리셋을 수행하기 위한 과정을 보여주는 블록도이다.
도 15는 본 발명의 실시 예에 따른 스토리지 시스템에서 호스트에 직접 연결되지 않는 스토리지 장치들을 리셋시키는 것을 설명하기 위한 블록도이다.
도 16은 본 발명의 실시 예에 따른 스토리지 시스템에서 호스트에 직접 연결되지 않는 스토리지 장치들 중 일부를 리셋시키는 것을 설명하기 위한 블록도이다.
도 17은 본 발명이 적용된 전자 기기를 보여주는 블록도이다.
아래에서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자(이하, 통상의 기술자)들이 본 발명을 용이하게 실시할 수 있도록, 첨부되는 도면들을 참조하여 본 발명의 실시 예들이 명확하고 상세하게 설명될 것이다.
도 1은 본 발명의 실시 예에 따라 직렬로 연결되는 스토리지 장치들을 포함하는 스토리지 시스템(1000)을 보여주는 블록도이다. 스토리지 시스템(1000)은 호스트(1100), 제 1 스토리지 장치(1200), 및 제 2 스토리지 장치(1300)를 포함할 수 있다.
호스트(1100)는 스토리지 시스템(1000)의 전반적인 동작들을 관리하고 처리할 수 있다. 예를 들어, 호스트(1100)는 제 1 스토리지 장치(1200) 및 제 2 스토리지 장치(1300)에 대한 읽기 동작 또는 쓰기 동작을 수행하기 위한 커맨드를 제 1 스토리지 장치(1200)로 전달할 수 있다. 예를 들어, 호스트(1100)는 하나 이상의 프로세서 코어들을 포함할 수 있다. 호스트(1100)는, 예를 들어, FPGA (Field Programmable Gate Arrays), ASICs (Application Specific Integrated Circuits) 등과 같은 전용 회로를 통하여 구현되거나, 또는 SoC (System on Chip)로 구현될 수 있다. 예를 들어, 호스트(1100)는 범용 프로세서, 전용 프로세서, 또는 애플리케이션 프로세서를 포함할 수 있다.
제 1 스토리지 장치(1200)는 적어도 하나의 불휘발성 메모리(1210) 및 컨트롤러(1220)를 포함할 수 있다. 제 2 스토리지 장치(1310)는 적어도 하나의 불휘발성 메모리(1310) 및 컨트롤러(1320)를 포함할 수 있다.
불휘발성 메모리들(1210, 1310)은 데이터를 저장하기 위한 메모리 셀 어레이들을 포함할 수 있다. 예를 들어, 불휘발성 메모리들(1210, 1310)의 메모리 셀 어레이들이 낸드 플래시 메모리(NAND Flash Memory)로 구현되는 경우, 불휘발성 메모리들(1210, 1310)은 낸드 스트링이 기판에 수직으로 형성되는 3차원 메모리 셀 어레이들을 포함할 수 있다. 그러나, 불휘발성 메모리들(1210, 1310)의 구성은 이에 한정되지 않는다. 예를 들어, 불휘발성 메모리들(1210, 1310)은 PRAM (Phase-change Random Access Memory), MRAM (Magneto-resistive RAM), ReRAM (Resistive RAM), FRAM (Ferro-electric RAM) 등과 같은 다양한 불휘발성 메모리들 중 하나 이상을 포함할 수 있다.
컨트롤러들(1220, 1320)은 스토리지 장치들(1200, 1300)의 전반적인 동작들을 제어할 수 있다. 이를 위해, 컨트롤러들(1220, 1320) 각각은 적어도 하나의 프로세서 코어 및 버퍼 메모리를 포함할 수 있다. 예를 들어, 컨트롤러들(1220, 1320)은 각각 불휘발성 메모리들(1210, 1310)을 제어할 수 있다. 컨트롤러들(1220, 1320)의 제어에 따라, 데이터가 불휘발성 메모리들(1210, 1310)에 읽기 데이터가 저장되거나 불휘발성 메모리들(1210, 1310)로부터 읽기 데이터가 출력될 수 있다.
본 발명의 실시 예에 따르면, 호스트(1100), 제 1 스토리지 장치(1200), 및 제 2 스토리지 장치(1300)는 서로 직렬로 연결될 수 있다. 예를 들어, 호스트(1100), 제 1 스토리지 장치(1200), 및 제 2 스토리지 장치(1300)는 체인(Chain) 구조 또는 캐스케이드(cascade) 연결구조의 토폴로지(Topology)로 연결될 수 있다.
도 1을 참조하면, 호스트(1100)는 포트들(Port#0, Port#1a)을 통하여 제 1 스토리지 장치(1200)와 직접 통신하도록 연결될 수 있다. 예를 들어, 호스트(1100)는 포트들(Port#0, Port#1a)을 통하여 컨트롤러(1220)와 직접 연결되어, 읽기 데이터 또는 쓰기 데이터가 교환될 수 있다. 여기서, 읽기 데이터는 제 1 스토리지 장치(1200) 또는 제 2 스토리지 장치(1300)로부터 읽혀지는 읽기 데이터일 수 있으며, 쓰기 데이터는 제 1 스토리지 장치(1200) 또는 제 2 스토리지 장치(1300)로 쓰여질 쓰기 데이터일 수 있다.
그러나, 호스트(1100)는 제 2 스토리지 장치(1300)와 직접 통신하지 않을 수 있다. 따라서, 호스트(1100)는 제 1 스토리지 장치(1200)와 연결되는 포트(Port#0), 제 1 스토리지 장치(1200)와 통신하기 위한 통신 회로, 및 이 통신 회로를 제어하는 주변 회로만을 포함하며, 제 2 스토리지 장치(1300)와 통신하기 위한 포트들 및 주변 회로들은 포함하지 않을 수 있다.
제 1 스토리지 장치(1200)는 포트들(Port#1b, Port#2)을 통하여 제 2 스토리지 장치(1300)와 직접 통신하도록 연결될 수 있다. 예를 들어, 제 1 스토리지 장치(1200)는 포트들(Port#1b, Port#2)을 통하여 컨트롤러(1320)와 직접 연결되어, 읽기 데이터 또는 쓰기 데이터가 교환될 수 있다. 여기서, 읽기 데이터는 제 2 스토리지 장치(1300)로부터 읽혀지는 읽기 데이터일 수 있으며, 쓰기 데이터는 제 2 스토리지 장치(1300)로 쓰여질 쓰기 데이터일 수 있다.
제 1 스토리지 장치(1200)는 호스트(1100)와 통신하기 위한 포트(Port#1a) 외에도, 제 2 스토리지 장치(1300)와 통신하기 위한 포트(Port#1b)를 포함할 수 있다. 예를 들어, 컨트롤러(1220)는 제 2 스토리지 장치(1300)와의 통신을 수행하는데 필요한 동작을 제어할 수 있다.
이러한 구성에 따르면, 호스트(1100)의 구성이 단순화될 수 있고, 호스트(1100)에 의해 차지되는 면적이 감소할 수 있다. 게다가, 호스트(1100)의 설계 및 생산 비용이 감소할 수 있다. 이러한 경제적인 혜택에 더하여, 두 개의 스토리지 장치들(1200, 1310)을 채용하는 것은 하나의 스토리지 장치를 채용하는 경우에 비해 더 많은 스토리지 용량(Capacity)을 제공할 수 있다. 따라서, 사용자 요구가 충족될 수 있다.
이러한 실시 예에서, 제 1 스토리지 장치(1200)의 구성이 다소 복잡해질 수 있다. 그러나, 많은 경우, 호스트(1100)는 수 내지 수십 기가헤르츠(GHz)의 속도로 동작할 수 있고, 제 1 스토리지 장치(1200)는 수 내지 수십 메가헤르츠(MHz)의 속도로 동작할 수 있다. 게다가, 호스트(1100)를 제작하기 위한 공정이 제 1 스토리지 장치(1200)를 제작하기 위한 공정보다 더 어렵고 복잡할 수 있다. 따라서, 제 1 스토리지 장치(1200)에 포트(Port#1b), 통신 회로, 및 주변 회로를 구현하는 것이 훨씬 더 단순하고 경제적일 수 있다.
호스트(1100) 및 스토리지 장치들(1200, 1300)은 다양한 인터페이스 규약(Interface Protocol) 중 하나 이상에 따라 서로 통신할 수 있다. 예를 들어, 호스트(1100) 및 스토리지 장치들(1200, 1300)은 서로 통신하기 위해 USB (Universal Serial Bus), SCSI (Small Computer System Interface), PCIe (Peripheral Component Interconnect Express), NVMe (Nonvolatile Memory Express), SATA (Serial Advanced Technology Attachment), SAS (Serial Attached SCSI), SD (Secure Digital) 카드, eMMC (Embedded Multimedia Card), UFS (Universal Flash Storage) 등과 같은 직렬 인터페이스 규약들 중 적어도 하나를 채용할 수 있다.
한편, 본 발명의 실시 예에 따른 제 1 스토리지 장치(1200)는 리셋 컨버터(1230)를 더 포함할 수 있다. 리셋 컨버터(1230)는 하드웨어 리셋 신호(HW Reset)를 호스트(1100)로부터 수신할 수 있다. 예를 들어, 하드웨어 리셋 신호(HW Reset)는 호스트(1100)와 제 1 스토리지 장치(1200)에 각각 구비된 리셋 핀들(1101, 1201)을 연결하는 별도의 회선을 통하여 수신될 수 있다. 하드웨어 리셋 신호(HW Reset)에 의해 제 1 스토리지 장치(1200)의 구성 요소들(예를 들어, 불휘발성 메모리(1210), 컨트롤러(1220), 포트들(Port#1a, Port#1b) 등)은 리셋될 수 있다.
리셋 컨버터(1230)는 하드웨어 리셋 신호(HW Reset)에 응답하여 소프트웨어 리셋 신호(SW Reset)를 생성할 수 있다. 소프트웨어 리셋 신호(SW Reset)는 제 2 스토리지 장치(1300)를 리셋시키기 위한 커맨드일 수 있다. 소프트웨어 리셋 신호(SW Reset)는 포트들(Port#1b, Port#2)을 통하여 제 2 스토리지 장치(1300)로 전달될 수 있다. 예를 들어, 제 2 스토리지 장치(1300)에 대한 리셋은 제 1 스토리지 장치(1200)의 리셋 전 또는 후에 실행될 수 있다. 예를 들어, 제 2 스토리지 장치(1300)에 대한 리셋은 도 1의 불휘발성 메모리(1310) 뿐만 아니라, 컨트롤러(1210)를 구성하는 다양한 계층들에 대해 수행될 수 있다. 이에 대해서는 좀 더 상세하게 후술될 것이다.
도 2a 내지 도 2d는 도 1의 스토리지 시스템(1000)의 예시적인 구현들을 보여주는 도면들이다.
도 2a를 참조하면, 도 1의 스토리지 시스템(1000)은 전자 기기(2000)(예를 들어, 스마트 폰, 웨어러블 기기, 태블릿 컴퓨터 등)에 구현될 수 있다. 전자 기기(2000)는 애플리케이션 프로세서(2100) 및 임베디드(Embedded) 스토리지 장치(2200)를 포함할 수 있다. 전자 기기(2000)는 착탈식(Removable) 스토리지 장치(2300)를 장착하기 위한 슬롯(2003)을 포함할 수 있다. 예를 들어, 착탈식 스토리지 장치(2300)는 카드, 스틱(Stick), 또는 칩 패키지 형태로 구현될 수 있고, 슬롯(2003)에 장착되거나 슬롯(2003)으로부터 분리될 수 있다.
예를 들어, 애플리케이션 프로세서(2100)는 도전 패턴(Conductive Pattern, W1)을 통해 임베디드 스토리지 장치(2200)와 직접 통신하도록 연결될 수 있다. 착탈식 스토리지 장치(2300)가 슬롯(2003)에 장착되는 경우, 임베디드 스토리지 장치(2200)는 도전 패턴(W2)을 통해 착탈식 스토리지 장치(2300)와 직접 통신하도록 연결될 수 있다. 반면, 착탈식 스토리지 장치(2300)는 애플리케이션 프로세서(2100)와 직접 연결되지 않을 수 있다.
도 2b 내지 도 2d를 참조하면, 도 1의 스토리지 시스템(1000)은 컴퓨팅 시스템(3000a, 3000b, 또는 3000c)(예를 들어, 데스크탑 컴퓨터, 랩탑 컴퓨터, 워크스테이션, 서버 시스템 등)에 구현될 수 있다. 도 2b의 컴퓨팅 시스템(3000a)은 CPU (Central Processing Unit, 3100) 및 스토리지 장치들(3200a, 3300a)을 포함할 수 있다. CPU(3100)는 메인보드(3001)에 장착될 수 있다.
예를 들어, 스토리지 장치들(3200a, 3300a) 각각은 SSD (Solid State Drive) 또는 HDD (Hard Disk Drive)일 수 있다. 제 1 스토리지 장치(3200a)는 메인보드(3001) 상의 커넥터(3003a)와 연결될 수 있고, 도전 패턴(W3) 및 와이어 케이블(W4)을 통해 CPU(3100)와 직접 통신하도록 연결될 수 있다. 제 2 스토리지 장치(3300a)는 와이어 케이블(W5)을 통하여 제 1 스토리지 장치(3300a)와 직접 통신하도록 연결될 수 있다. 반면, 제 2 스토리지 장치(3300a)는 CPU(3100)와 직접 연결되지 않을 수 있다.
도 2c의 컴퓨팅 시스템(3000b)은 CPU(3100) 및 스토리지 장치들(3200b, 3300b)을 포함할 수 있다. 예를 들어, 스토리지 장치들(3200b, 3300b) 각각은 카드 모듈(Card Module)로 구현되는 메모리 모듈 또는 SSD일 수 있다. 제 1 스토리지 장치(3200b)는 메인보드(3001) 상의 커넥터(3003b)에 연결될 수 있고, 도전 패턴(W6)을 통해 CPU(3100)와 직접 통신하도록 연결될 수 있다. 제 2 스토리지 장치(3300b)는 메인보드(3001) 상의 커넥터(3004b)에 연결될 수 있고, 도전 패턴(W7)을 통해 제 1 스토리지 장치(3200b)와 직접 통신하도록 연결될 수 있다. 반면, 제 2 스토리지 장치(3300b)는 CPU(3100)와 직접 연결되지 않을 수 있다.
도 2d의 컴퓨팅 시스템(3000c)은 CPU(3100) 및 스토리지 장치들(3200c, 3300c)을 포함할 수 있다. 예를 들어, 스토리지 장치들(3200c, 3300c) 각각은 칩 또는 칩 패키지로 구현되는 온-보드(On-board) SSD 또는 BGA (Ball Grid Array) SSD일 수 있다. 제 1 스토리지 장치(3200c)는 도전 패턴(W8)을 통해 CPU(3100)와 직접 통신하도록 연결될 수 있고, 도전 패턴(W9)을 통해 제 2 스토리지 장치(3300c)와 직접 통신하도록 연결될 수 있다. 반편, 제 2 스토리지 장치(3300c)는 CPU(3100)와 직접 연결되지 않을 수 있다.
예를 들어, 제 1 스토리지 장치(3200c)가 BGA SSD인 경우, 제 1 스토리지 장치(3200c)는 기판(3001) 상에 실장되는 불휘발성 메모리 및 컨트롤러 칩(13)을 포함할 수 있다. 불휘발성 메모리 및 컨트롤러 칩(13)은 와이어(15)를 통해 도전 패턴들(W8, W9)과 연결될 수 있고, 몰드 컴파운드(14)로 덮일 수 있다. 비록, 본 도면에서 불휘발성 메모리 및 컨트롤러 칩(13)은 와이어 본딩을 통해 기판(3001) 상에 실장되는 것으로 도시되었으나, 플립-칩 방식이 사용될 수도 있다. 제 1 스토리지 장치(3200c)는 솔더 볼들(11)을 통해 메인보드(3001) 상에 장착될 수 있다.
도 2a 내지 도 2d에서, 애플리케이션 프로세서(2100) 및 CPU(3100) 각각은 도 1의 호스트(1100)에 대응할 수 있다. 임베디드 스토리지 장치(2200) 및 제 1 스토리지 장치들(3200a, 3200b, 3200c) 각각은 도 1의 제 1 스토리지 장치(1200)에 대응할 수 있다. 착탈식 스토리지 장치(2300) 및 제 2 스토리지 장치들(3300a, 3300b, 3300c) 각각은 도 1의 제 2 스토리지 장치(1300)에 대응할 수 있다.
도 3은 도 1의 스토리지 시스템(1000)에 채용될 수 있는 인터페이스 규약에 따른 계층 구조를 보여주는 블록도이다. 예를 들어, 호스트(1100), 및 스토리지 장치들(1200, 1300)은 MIPI(Mobile Industry Processor Interface) 연합(Alliance)에 의해 제안된 UFS 규약에 따라 구현될 수 있다.
호스트(1100)는, 비록 도면에 도시되지 않았지만, M-PHY 계층, 링크 계층, 및 애플리케이션/HCI(Host Controller Interface) 계층(이하 애플리케이션 계층)을 포함할 수 있다. 링크 계층은 PHY 어댑터 계층, 데이터 링크 계층, 네트워크 계층, 및 전송 계층을 포함할 수 있다. 호스트(1100)의 계층들 각각은 고유의 기능을 수행하기 위해, 회로 및/또는 프로세서 코어에 의해 실행되는 프로그램 코드를 포함할 수 있다.
제 1 스토리지 장치(1300)는 M-PHY 계층들(L1#1a, L1#1b), 링크 계층들(L2#1a, L2#1b), 및 애플리케이션/UTP(UFS Transport Protocol) 계층(LA#1, 이하 애플리케이션 계층)을 포함할 수 있다. 제 1 스토리지 장치(1200)의 계층들(L1#1a, L1#1b, L2#1a, L2#1b, LA#1)은 도 1의 컨트롤러(1220)에 포함될 수 있다. 제 1 스토리지 장치(1200)의 계층들(L1#1a, L1#1b, L2#1a, L2#1b, LA#1) 각각은 고유의 기능을 수행하기 위해, 회로 및/또는 프로세서 코어에 의해 실행되는 프로그램 코드를 포함할 수 있다.
제 2 스토리지 장치(1300)는 M-PHY 계층(L1#2), 링크 계층(L2#2), 및 애플리케이션/UTP 계층(LA#2, 이하 애플리케이션 계층)을 포함할 수 있다. 제 2 스토리지 장치(1300)의 계층들(L1#2, L2#2, LA#2)은 도 1의 컨트롤러(1320)에 포함될 수 있다. 제 2 스토리지 장치(1300)의 계층들(L1#2, L2#2, LA#2) 각각은 고유의 기능을 수행하기 위해, 하드웨어 회로, 및/또는 프로세서 코어에 의해 실행되는 프로그램 코드를 포함할 수 있다.
M-PHY 계층들(L1#1a, L1#1b, L1#2) 각각은 패킷을 송수신하기 위해 통신 회로(예를 들어, 송신기/수신기, 변조기/복조기, 부호화기/복호화기, 발진기 등)를 포함할 수 있다. 호스트(1100)의 M-PHY 계층(미도시)은 포트들(Port#0, Port#1a)을 연결하는 회선(L1)을 통해 제 1 스토리지 장치(1200)의 M-PHY 계층(L1#1a)과 패킷을 교환할 수 있고, 제 1 스토리지 장치(1200)의 M-PHY 계층(L1#1b)은 포트들(Port#1b, Port#2)을 연결하는 회선(L2)을 통해 제 2 스토리지 장치(1300)의 M-PHY 계층(L1#2)과 패킷을 교환할 수 있다. 예를 들어, M-PHY 계층들(L1#1a, L1#1b, L1#2) 각각은 물리 계층으로서, MIPI 연합에 의해 제안된 M-PHY 규약에 따라 구현될 수 있다.
비록 도면에 도시되지 않았지만, 링크 계층들(L2#1a, L2#1b, L2#2) 각각은 PHY 어댑터 계층, 데이터 링크 계층, 네트워크 계층, 및 전송 계층을 포함할 수 있다.
PHY 어댑터 계층들은 각각 M-PHY 계층들(L1#1a, L1#1b, L1#2)의 통신 환경들을 관리할 수 있다. 예를 들어, PHY 어댑터 계층들은 각각 M-PHY 계층들(L1#1a, L1#1b, L1#2)을 위해, 데이터 심볼을 처리하거나 전력을 제어할 수 있다. 데이터 링크 계층들 각각은 데이터의 물리적인 전송 및 조합(Composition)을 관리할 수 있다. 네트워크 계층들 각각은 통신 경로를 관리하거나 통신 타이밍을 다룰 수 있다. 전송 계층들 각각은 데이터 오류를 검출하고 복구할 수 있다.
따라서, PHY 어댑터 계층들, 데이터 링크 계층들, 네트워크 계층들, 및 전송 계층들은 M-PHY 계층들(L1#1a, L1#1b, L1#2)을 통해 송수신되는 패킷을 전달하고 변환할 수 있다. 예를 들어, PHY 어댑터 계층들, 데이터 링크 계층들, 네트워크 계층들, 및 전송 계층들은 링크 계층으로서, MIPI 연합에 의해 제안된 UniPro 규약에 따라 구현될 수 있다.
호스트(1100)의 애플리케이션 계층 및 애플리케이션 계층들(LA#1, LA#2)은 링크 계층을 통해 전달되는 패킷에 기초하여, 호스트(1100) 및 스토리지 장치들(1200, 1300) 상에서 통신 서비스를 제공할 수 있다. 애플리케이션 계층들(LA#1, LA#2)은 상위 계층으로서, 호스트(1100) 및 스토리지 장치들(1200, 1300)의 사용자로부터의 요청을 다룰 수 있다. 한편, M-PHY 계층들(L1#1a, L1#1b, L1#2) 및 링크 계층들(L2#1a, L2#1b, L2#2)은 하위 계층으로서, 애플리케이션 계층들(LA#1, LA#2)을 위해 외부 장치와의 통신을 수행할 수 있다.
각 계층들 사이의 통신들은 서로 다른 데이터 포맷(Data Format)들을 갖는 패킷들에 기반할 수 있다. 예를 들어, MIPI 연합에 의해 제안된 인터페이스 규약에 따르면, 호스트(1100)의 애플리케이션 계층(미도시) 및 애플리케이션 계층들(LA#1, LA#2) 각각은 UPIU(UFS Protocol Information Unit) 포맷을 갖는 패킷을 교환하고 처리할 수 있다. 예를 들어, PHY 어댑터 계층들 각각은 PACP 프레임(PHY Adapter Control Protocol Frame)을 포함하는 데이터 포맷을 갖는 패킷을 교환하고 처리할 수 있다. UPIU 포맷 및 PACP 프레임의 구성들은 통상의 기술자에 의해 잘 이해될 수 있으므로, 상세한 설명들은 생략될 것이다.
도 4는 본 발명의 실시 예에 따른 스토리지 시스템(1000)에서 스토리지 장치들(1200, 1300)에 대한 리셋을 수행하기 위한 과정을 보여주는 블록도이다. 도 5 및 도 6은 도 4의 스토리지 시스템(1000)에서의 리셋 동작을 보여주는 순서도들이다. 설명의 이해를 돕기 위해, 도 4 및 도 5를 참조하여 스토리지 장치들(1200, 1300)에 대한 리셋 동작을 설명하기로 한다.
S110 단계에서, 호스트(1100)는 하드웨어 리셋 신호(HW Reset)를 제 1 스토리지 장치(1200)로 전달할 수 있다. 하드웨어 리셋 신호(HW Reset)는 호스트(1100)와 제 1 스토리지 장치(1200)에 각각 구비된 리셋 핀들(1101, 1201)을 연결하는 별도의 회선을 통하여 수신될 수 있다. 예를 들어, 하드웨어 리셋 신호(HW Reset)는 리셋 컨버터(1230)로 전달될 수 있다.
하드웨어 리셋 신호(HW Reset)는 기본적으로 리셋 핀들(1101, 1201)을 통하여 연결되는 제 1 스토리지 장치(1200)를 리셋시키기 위한 것이다. 그러나, 제 1 스토리지 장치(1200)뿐만 아니라 제 2 스토리지 장치(1300)도 리셋시키고자 하는 경우, 추가로 리셋시키고자 하는 스토리지 장치(예를 들어, 제 2 스토리지 장치(1300) 등)를 식별할 수 있는 식별자(예를 들어, ID, 어드레스, 태그 등)가 함께 제 1 스토리지 장치(1200)로 전송될 수 있다. 이러한 식별자는 하드웨어 리셋 신호(HW Reset)에 덧붙여 전달되거나, 하드웨어 리셋 신호(HW Reset)와는 별도로 포트들(Port#0, Port#1a)을 연결하는 회선을 통하여 제 1 스토리지 장치(1200)로 전달될 수 있다.
그러나, 이러한 구현은 단지 추가로 식별하고자 하는 스토리지 장치를 식별하기 위한 식별자가 제 1 스토리지 장치(1200)로 전달될 수 있다는 것을 보여주기 위한 것이며, 본 발명이 이에 한정되는 것은 아니다. 이러한 식별자는 다양한 경로 또는 방법으로 제 1 스토리지 장치(1200)로 전달될 수 있다.
S120 단계에서, 리셋 컨버터(1230)는 하드웨어 리셋 신호(HW Reset)에 응답하여 소프트웨어 리셋 신호(SW Reset)를 생성할 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는, 리셋시키고자 하는 제 2 스토리지 장치(1300)를 식별할 수 있는 정보(예를 들어, S110에서 설명된 식별자 등)을 포함할 수 있다.
예를 들어, 호스트(1100)로부터 하드웨어 리셋 신호(HW Reset)가 수신된다 하더라도, 제 1 스토리지 장치(1200)에 대한 리셋은 실행되지 않을 수 있다. 즉, 제 1 스토리지 장치(1200)는, 소프트웨어 리셋 신호(SW Reset)에 의해 제 2 스토리지 장치(1300)가 리셋 되었다는 것이 확인된 후, 리셋 될 수 있다. 예를 들어, 애플리케이션 계층(LA#1)은 제 2 스토리지 장치(1300)가 리셋 되었다는 것을 나타내는 신호(Response)가 수신되면, 하드웨어 리셋 신호(HW Reset)를 이용하여 제 1 스토리지 장치(1200)에 대한 리셋 동작을 실행할 수 있다. 그러나, 본 발명이 이에 한정되는 것이 아니며, 실시 예에 따라서 이러한 리셋 동작은 리셋 컨버터(1230)에 의해서 관리될 수도 있다.
S130 단계에서, 소프트웨어 리셋 신호(SW Reset)는 제 2 스토리지 장치(1300)로 전달될 수 있다. 하드웨어 리셋 신호(HW Reset)가 리셋 핀들(1101, 1201)을 연결하는 회선을 통하여 제 1 스토리지 장치(1200)로 연결되는 것과는 달리, 제 1 스토리지 장치(1200)와 제 2 스토리지 장치(1300) 사이에는 리셋 신호를 전달하기 위한 별도의 회선이 존재하지 않는다. 즉, 제 2 스토리지 장치(1300)는 제 1 스토리지 장치(1200)와 같은, 하드웨어 리셋 신호(HW Reset)를 수신하기 위한 별도의 리셋 핀을 포함하지 않을 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는, 일반적으로 제 1 스토리지 장치(1200)와 제 2 스토리지 장치(1300) 사이의 통신이 수행되는, 포트들(Port#1b, Port#2)을 연결하는 회선을 통하여 전송될 것이다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는 링크 계층(L2#1b), M-PHY 계층들(L1#1b, L1#2), 링크 계층(L2#2)을 통하여 애플리케이션 계층(LA#2)으로 전송될 수 있다.
S140 단계에서, 제 2 스토리지 장치(1300)가 소프트웨어 리셋 신호(SW Reset)에 의해 리셋될 수 있다. 소프트웨어 리셋 신호(SW Reset)는 하드웨어 리셋 신호(HW Reset)에 기반하여 생성된 일종의 커맨드 또는 명령어일 수 있다. 따라서, 소프트웨어 리셋 신호(SW Reset)는 애플리케이션 계층(LA#2)에 의해 확인 및 처리될 수 있다. 예를 들어, 애플리케이션 계층(LA#2)은 소프트웨어 리셋 신호(SW Reset)를 처리하여 제 2 스토리지 장치(1300)의 구성 요소들(예를 들어, 계층들(L1#2, L2#2, LA#2), 포트(Port#2), 및 불휘발성 메모리(도 2 참조, 1310) 등)을 리셋시킬 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)에 의한 리셋에 의하여, 계층들(L1#2, L2#2, LA#2), 포트(Port#2), 및 불휘발성 메모리(도 2 참조, 1310) 등의 설정 값들이 초기화될 수 있다.
S150 단계에서, 제 2 스토리지 장치(1300)가 리셋 되었다는 것을 나타내는 신호(Response)가 제 1 스토리지 장치(1200)로 전달될 수 있다. 예를 들어, 이러한 응답은 단순히 제 2 스토리지 장치(1300)에 대한 리셋이 실행되었다는 것뿐만 아니라, 제 2 스토리지 장치(1300)에 대한 리셋이 성공하였는지 여부에 대한 정보를 포함할 수 있다. 예를 들어, 응답(Response)은 링크 계층(L2#2), M-PHY 계층들(L1#2, L1#1b), 링크 계층(L2#1b)을 통하여 애플리케이션 계층(LA#1)으로 전송될 수 있다.
S160 단계에서, 제 1 스토리지 장치(1200)가 리셋될 수 있다. 예를 들어, 제 1 스토리지 장치(1200)는 호스트(1100)로부터 수신된 하드웨어 리셋 신호(HW Reset)에 의해 리셋될 수 있다. 예를 들어, 하드웨어 리셋 신호(HW Reset)에 의하여, 제 1 스토리지 장치(1200)의 구성 요소들(즉, 계층들(L1#1a, L1#1b, L2#1a, L2#1b, LA#1), 포트들(Port#1a, Port#1b), 불휘발성 메모리(도 1 참조, 1210) 등)의 설정 값들이 초기화될 수 있다. 호스트(1100)로부터 하드웨어 리셋 신호(HW Reset)가 수신되자마자 제 1 스토리지 장치(1200)가 리셋되지 않고, 제 2 스토리지 장치로부터 응답(Response)이 수신되면 제 1 스토리지 장치(1200)가 리셋 되는 이러한 스킴은, 애플리케이션 계층(LA#1)에 의해 전반적으로 관리될 수 있다.
한편, 제 2 스토리지 장치(1300)로부터의 응답(Response)이 제 2 스토리지 장치(1300)에 대한 리셋이 성공하였는지 여부에 대한 정보를 포함하는 경우, 제 2 스토리지 장치(1300)에 대한 리셋 동작이 추가적으로 실행될 수 있다. 예를 들어, 제 2 스토리지 장치(1300)에 대한 테스트 동작이 실행되는 경우와 같이, 제 2 스토리지 장치(1300)가 성공적으로 리셋되어야 할 경우에, 제 2 스토리지 장치(1300)에 대한 리셋 동작이 추가로 실행될 수 있다. 만일, 제 2 스토리지 장치(1300)에 대한 리셋이 실패한 경우, 제 1 스토리지 장치(1200)는 소프트웨어 리셋 신호(SW Reset)를 다시 제 2 스토리지 장치(1300)로 전송할 수 있다. 즉, 제 2 스토리지 장치(1300)에 대한 리셋 동작이 성공할 때까지 S130 동작 내지 S150 동작이 반복될 수 있다.
S170 단계에서, 제 1 스토리지 장치(1200)가 리셋 되었다는 것을 나타내는 신호(Response)가 호스트(1100)로 전달될 수 있다. 이러한 응답(Response)은 링크 계층(L2#1a), M-PHY 계층(L1#1a), 포트들(Port#1a, Port#0)을 통하여 호스트(1100)로 전달될 수 있다.
이러한 응답(Response)에 의해 호스트(1100)가 스토리지 장치들(1200, 1300)이 리셋 되었음을 인지하면, 후속 동작들이 실행될 수 있다. 예를 들어, 스토리지 장치들(1200, 1300)에 대한 테스트 동작이 실행되거나, 호스트(1100)와 제 1 스토리지 장치(1200) 사이의 통신/트랜잭션 또는 호스트(1100)와 제 2 스토리지 장치(1200) 사이의 통신/트랜잭션이 수행될 수 있다.
한편, 실시 예에 따라서, 스토리지 장치들(1200, 1300)에 대한 리셋은 도 5와는 다른 방식으로 수행될 수도 있다. 이러한 실시 예가 도 6에 도시되었다. 다만, 도 5의 실시 예와 도 6의 실시 예는 동작 순서에 차이가 있을 뿐, 기본적인 동작은 유사하므로, 중복되는 설명은 생략하기로 한다. 설명의 이해를 돕기 위해, 도 4 및 도 6을 참조하여 스토리지 장치들(1200, 1300)에 대한 리셋 동작을 설명하기로 한다.
S210 단계에서, 호스트(1100)는 하드웨어 리셋 신호(HW Reset)를 제 1 스토리지 장치(1200)로 전달할 수 있다. 하드웨어 리셋 신호(HW Reset)는 호스트(1100)와 제 1 스토리지 장치(1200) 사이의 통신 회선(예를 들어, 도 3의 L1)과는 다른, 리셋 핀들(1101, 1201)을 연결하는 별개의 회선을 통하여 전달될 수 있다.
S220 단계에서, 제 1 스토리지 장치(1200)가 리셋될 수 있다. 예를 들어, 제 1 스토리지 장치(1200)는 호스트(1100)로부터 수신된 하드웨어 리셋 신호(HW Reset)에 의해 리셋될 수 있다. 예를 들어, 하드웨어 리셋 신호(HW Reset)에 의하여, 계층들(L1#1a, L1#1b, L2#1a, L2#1b, LA#1), 포트들(Port#1a, Port#1b), 불휘발성 메모리(도 1 참조, 1210) 등)의 설정 값들이 초기화될 수 있다.
S230 단계에서, 리셋 컨버터(1230)는 하드웨어 리셋 신호(HW Reset)에 응답하여 소프트웨어 리셋 신호(SW Reset)를 생성할 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는, 리셋시키고자 하는 제 2 스토리지 장치(1300)를 식별할 수 있는 정보(예를 들어, 도 5의 S110에서 설명된 식별자 등)을 포함할 수 있다.
S240 단계에서, 소프트웨어 리셋 신호(SW Reset)가 제 2 스토리지 장치(1300)로 전달될 수 있다.
비록 본 실시 예에서 리셋 컨버터(1230)는 제 1 스토리지 장치(1200)가 리셋 된 후에 소프트웨어 리셋 신호(HW Reset) 신호를 생성하는 것으로 설명되었으나, 소프트웨어 리셋 신호(SW Reset)는 제 1 스토리지 장치(1200)가 리셋되기 전에 생성될 수 있다. 그리고, 애플리케이션 계층(LA1)은 소프트웨어 리셋 신호(SW Reset)를 제 2 스토리지 장치(1300)로 전달한 후, 제 1 스토리지 장치(1200)를 리셋시킬 수 있다.
S250 단계에서, 제 2 스토리지 장치(1300)가 소프트웨어 리셋 신호(SW Reset)에 의해 리셋될 수 있다. 소프트웨어 리셋 신호(SW Reset)에 의한 리셋에 의하여, 계층들(L1#2, L2#2, LA#2), 포트(Port#2), 및 불휘발성 메모리(도 2 참조, 1310) 등의 설정 값들이 초기화될 수 있다.
S260 단계에서, 제 2 스토리지 장치(1300)가 리셋 되었다는 것을 나타내는 신호(Response)가 호스트(1100) 또는 제 1 스토리지 장치(1200)로 전달될 수 있다.
예를 들어, 제 2 스토리지 장치(1300)로부터의 응답(Response)이 제 2 스토리지 장치(1300)에 대한 리셋이 실행되었다는 정보를 포함하는 경우, 응답(Response)은 호스트(1100)로 전달될 수 있다. 이 경우, 응답(Response)은 제 2 스토리지 장치(1300)의 계층들(L2#2, L1#2), 1 스토리지 장치(1200)의 계층들(L1#1b, L2#1b, L2#1a, L1#1a)을 통하여 호스트(1100)의 애플리케이션 계층(미도시)로 전달될 수 있다. 이후, 스토리지 장치들(1200, 1300)에 대한 테스트 또는 노멀 모드로의 진입과 같은 후속 동작들이 실행될 수 있다.
예를 들어, 제 2 스토리지 장치(1300)로부터의 응답(Response)이 제 2 스토리지 장치(1300)에 대한 리셋이 성공하였는지 여부에 대한 정보를 포함하는 경우, 두 가지 케이스가 발생할 수 있다. 만일, 제 2 스토리지 장치(1300)가 성공적으로 리셋된 경우, 응답(Response)은 호스트(1100)로 전달되어, 앞서 설명한 후속 동작들이 실행될 수 있다. 반면, 제 2 스토리지 장치(1300)에 대한 리셋이 실패한 경우, 응답(Response)은 제 1 스토리지 장치(1200)로 전달될 수 있다. 이 경우, 제 2 스토리지 장치(1300)가 성공적으로 리셋 될 때까지, S240, S250 동작이 반복될 수 있다.
이상 도 4 내지 도 6을 통하여 설명된 실시 예들에 의하면, 호스트(1100)로부터 직접 하드웨어 리셋 신호(HW Reset)를 수신할 수 있는 제 1 스토리지 장치(1200)는 하드웨어 리셋 신호(HW Reset)에 의해 직접 리셋될 수 있다. 그러나, 제 1 스토리지 장치(1200)를 통하여 호스트(1100)와 간접적으로 연결되는 제 2 스토리지 장치(1300)는 하드웨어 리셋 신호(HW Reset)를 직접 수신할 수 없다. 따라서, 제 2 스토리지 장치(1300)는 제 1 스토리지 장치(1200)에 구비된 리셋 컨버터(1230)에 의해 생성된 소프트웨어 리셋 신호(SW Reset)에 의하여 리셋될 수 있다. 그러므로, 호스트(1100)와 스토리지 장치들(1200, 1300)이 서로 직렬로 연결됨으로써, 호스트(1100)와 직접 연결되지 않는 스토리지 장치(1300)를 리셋시킬 수 없는 문제가 해결될 수 있다.
한편, 도 4 내지 도 6에서 설명된 실시 예들에서, 스토리지 장치들(1200, 1300) 모두 리셋 되는 것으로 설명되었다. 그러나, 실시 예에 따라서, 제 1 스토리지 장치(1200)는 리셋되지 않을 수 있으며, 하드웨어 리셋 신호(HW Reset)에 응답하여 생성된 소프트웨어 리셋 신호(SW Reset)에 의해 제 2 스토리지 장치(1300)만 리셋될 수도 있다. 이는, 제 1 스토리지 장치(1200)에 대한 리셋이 생략된다는 것을 제외하고 앞서 도 5 및 도 6을 통하여 설명된 실시 예와 유사하므로, 이에 대한 상세한 설명은 생략하기로 한다.
도 7a는 본 발명의 실시 예에 따른 스토리지 시스템(1000)의 동작을 보여주는 순서도이다. 예시적으로, 앞서 도 4 내지 도 6을 통하여 설명된 리셋 방법을 이용하여, 스토리지 장치들(1200, 1300)을 테스트 모드 또는 노멀 모드로 진입시키는 것이 설명될 것이다. 설명의 이해를 돕기 위해, 도 4 내지 도 6과 함께 도 7a를 참조하여 설명하기로 한다.
S310 단계에서, 호스트(1100)는 제 1 하드웨어 리셋 신호(HW Reset1)를 스토리지 장치들로 전달할 수 있다. 물론, 제 1 하드웨어 리셋 신호(HW Reset1)를 수신하기 위한 리셋 핀을 구비한 제 1 스토리지 장치(1200)만이 제 1 하드웨어 리셋 신호(HW Reset1)를 수신할 수 있을 것이다.
S320 단계에서, 스토리지 장치들(1200, 1300)은 MPHY 테스트 모드로 진입할 수 있다. 예를 들어, 제 1 스토리지 장치(1200)는 제 1 하드웨어 리셋 신호(HW Reset1)에 의해 리셋될 수 있으며, 호스트(1100)로부터의 커맨드에 의해 테스트 모드로 진입할 수 있다. 그리고 제 2 스토리지 장치(1300)는 제 1 스토리지 장치(1200)에 의해 생성된 소프트웨어 리셋 신호에 의해 리셋될 수 있으며, 호스트(1100)로부터의 커맨드에 의해 테스트 모드로 진입할 수 있다. 테스트 모드에서, 스토리지 장치들(1200, 1300)과 호스트(1100) 사이의 데이터 트랜잭션 등에 의해, 테스트 동작이 실행될 수 있다.
S330 단계에서, 스토리지 장치들(1200, 1300)은 호스트(1100)로 응답(Response)을 전송할 수 있다. 이러한 응답은 스토리지 장치들(1200, 1300)에 대한 테스트 동작이 성공적으로 완료 되었음을 나타내는 신호일 수 있다.
S340 단계에서, 호스트(1100)는 제 2 하드웨어 리셋 신호(HW Reset2)를 스토리지 장치들로 전달할 수 있다. 물론, 제 2 하드웨어 리셋 신호(HW Reset2)를 수신하기 위한 리셋 핀을 구비한 제 1 스토리지 장치(1200)만이 제 2 하드웨어 리셋 신호(HW Reset2)를 수신할 수 있을 것이다.
S350 단계에서, 스토리지 장치들(1200, 1300)은 노멀 모드로 진입할 수 있다. 예를 들어, 제 1 스토리지 장치(1200)는 제 2 하드웨어 리셋 신호(HW Reset2)에 의해 리셋 됨으로써 노멀 모드로 진입할 수 있다. 그리고 제 2 스토리지 장치(1300)는 제 1 스토리지 장치(1200)에 의해 생성된 소프트웨어 리셋 신호에 의해 리셋 됨으로써, 노멀 모드로 진입할 수 있다.
도 7b는 7a에 도시된 실시 예를 좀 더 상세하게 보여주는 순서도이다. 설명의 이해를 돕기 위해, 도 4 내지 도 6과 함께 도 7b를 참조하여 설명하기로 한다.
S405 단계에서, 호스트(1100)는 제 1 하드웨어 리셋 신호(HW Reset1)를 제 1 스토리지 장치(1200)로 전달할 수 있다. 호스트(1100)와 스토리지 장치들(1200, 1300)이 캐스케이드 연결 구조로 연결되는 이러한 실시 예에서, 제 1 스토리지 장치(1200)만이 하드웨어 리셋 핀을 가지고 있으므로, 제 1 스토리지 장치(1200)만이 제 1 하드웨어 리셋 신호(HW Reset1)를 수신할 수 있을 것이다.
S410 단계에서, 제 1 스토리지 장치(1200)는 제 1 소프트웨어 리셋 신호(SW Reset1)를 수신할 수 있다. 예를 들어, 제 1 소프트웨어 리셋 신호(SW Reset1)는 제 1 스토리지 장치(1200)의 리셋 컨버터(1230)에 의해 생성될 수 있다.
S415 단계에서, 제 1 스토리지 장치(1200)는 제 1 소프트웨어 리셋 신호(SW Reset1)를 제 2 스토리지 장치(1300)로 전달할 수 있다. 제 2 스토리지 장치(1300)는 리셋 신호를 수신하기 위한 별도의 핀을 갖지 않고 있으므로, 제 1 소프트웨어 리셋 신호(SW Reset1)는 포트들(Port#1b, Port#2)을 연결하는 회선을 통하여 전달될 수 있다.
S420 단계에서, 제 1 스토리지 장치(1200)는 제 1 하드웨어 리셋 신호(HW Reset1)에 의해 리셋될 수 있으며, 호스트(1100)로부터의 커맨드에 의해 제 1 테스트 모드로 진입할 수 있다. 제 1 테스트 모드에서 호스트(1100)와 제 1 스토리지 장치(1200)의 데이터 트랜잭션 등에 의해 제 1 스토리지 장치(1200)에 대한 다양한 테스트 동작이 실행될 수 있다.
S425 단계에서, 제 2 스토리지 장치(1300)는 제 1 소프트웨어 리셋 신호(SW Reset1)에 의해 리셋될 수 있으며, 호스트(1100)로부터의 커맨드에 의해 제 2 테스트 모드로 진입할 수 있다. 제 2 테스트 모드에서 호스트(1100)와 제 2 스토리지 장치(1300)의 데이터 트랜잭션 등에 의해 제 2 스토리지 장치(1300)에 대한 다양한 테스트 동작이 실행될 수 있다. 예를 들어, 호스트(1100)와 제 2 스토리지 장치(1300) 사이의 트랜잭션은 포트들(Port#0, Port#1a)을 연결하는 회선과 포트들(Port#1b, Port#2)을 연결하는 회선을 통하여 수행될 수 있다.
S430 단계에서, 제 2 스토리지 장치(1300)는 제 1 스토리지 장치(1200)로 제 2 응답(Response2)을 전송할 수 있다. S435 단계에서, 제 1 스토리지 장치(1200)는 호스트(1100로 제 1 응답(Response1)을 전송할 수 있다. 예를 들어, 제 2 응답은 제 2 스토리지 장치(1300)에 대한 테스트 동작이 완료 되었음을 나타내는 신호일 수 있으며, 제 1 응답은 제 1 스토리지 장치(1200)에 대한 테스트 동작이 완료 되었음을 나타내는 신호일 수 있다.
S440 단계에서, 호스트(1100)는 제 1 스토리지 장치(1200)로 제 2 하드웨어 리셋 신호(HW Reset2)를 전달할 수 있다.
S445 단계에서, 제 1 스토리지 장치(1200)는 제 2 하드웨어 리셋 신호(HW Reset2)에 응답하여 제 2 소프트웨어 리셋 신호(SW Reset2)를 생성할 수 있다.
S450 단계에서, 제 1 스토리지 장치(1200)는 제 2 소프트웨어 리셋 신호(SW Reset2)를 제 2 스토리지 장치(1300)로 전달할 수 있다.
S455 단계에서, 제 1 스토리지 장치(1200)는 제 2 하드웨어 리셋 신호(HW Reset2)에 의해 리셋될 수 있으며, 노멀 모드로 진입할 수 있다. 예를 들어, 노멀 모드에서 호스트(1100)와 제 1 스토리지 장치(1200) 사이의 트랜잭션은 포트들(Port#0, Port#1a)을 연결하는 회선을 연결하는 회선을 통하여 수행될 수 있다.
S460 단계에서, 제 2 스토리지 장치(1300)는 제 2 소프트웨어 리셋 신호(SW Reset2)에 의해 리셋될 수 있으며, 노멀 모드로 진입할 수 있다. 예를 들어, 노멀 모드에서 호스트(1100)와 제 2 스토리지 장치(1300) 사이의 트랜잭션은 포트들(Port#0, Port#1a)을 연결하는 회선과 포트들(Port#1b, Port#2)을 연결하는 회선을 통하여 수행될 수 있다.
비록 본 도면에서 제 2 응답(Respnose2)은 제 1 스토리지 장치(1200)로 전달되는 것으로 도시되었으나, 실시 예에 따라서, 제 2 응답(Response2)은 호스트(1100)로 전달될 수도 있다. 이 경우, 호스트(1100)는 응답들(Response1, Response2)이 모두 수신된 후 제 2 하드웨어 리셋 신호(HW Reset2)를 제 1 스토리지 장치(1200)로 전달할 것이다.
그리고 제 1 스토리지 장치(1200)가 소프트웨어 리셋 신호들(SW Reset1, SW Reset2)을 제 2 스토리지 장치(1300)로 전달한 후, 제 1 스토리지 장치(1200)가 리셋 되는 것으로 설명되었으나, 제 1 스토리지 장치(1200)가 소프트웨어 리셋 신호들(SW Reset1, SW Reset2)을 제 2 스토리지 장치(1300)로 전달하기 전에 제 1 스토리지 장치(1200)가 리셋 될 수도 있다. 또는, 제 1 스토리지 장치(1200)는 제 2 스토리지 장치(1300)가 리셋 된 후에 리셋 될 수도 있다. 이러한 변형 실시 예는 도 5 및 도 6에 근거하는 것이며, 본 발명의 범위를 벗어나지 않는 범위 내에서, 이러한 실행 순서들은 다양하게 변형될 수 있다.
도 8은 본 발명의 실시 예에 따른 스토리지 시스템(4000)에서 스토리지 장치들(4200, 4300, 4400)에 대한 리셋을 수행하기 위한 과정을 보여주는 블록도이다. 도 9 및 도 10은 도 8의 스토리지 시스템(4000)에서의 리셋 동작을 보여주는 순서도들이다. 다만, 본 실시 예의 스토리지 시스템(4000)은 스토리지 장치들(4200, 4300)을 통하여 호스트(4100)와 간접적으로 연결되는 제 3 스토리지 장치(4400)를 더 포함할 수 있다. 설명의 이해를 돕기 위해, 도 8 및 도 9를 참조하여 스토리지 장치들(4200, 4300, 4400)에 대한 리셋 동작을 설명하기로 한다.
S305 단계에서, 호스트(4100)는 하드웨어 리셋 신호(HW Reset)를 제 1 스토리지 장치(4200)로 전달할 수 있다. 하드웨어 리셋 신호(HW Reset)는 호스트(4100)와 제 1 스토리지 장치(4200)에 각각 구비된 리셋 핀들(4101, 4201)을 연결하는 별도의 회선을 통하여 수신될 수 있다.
이때, 하드웨어 리셋 신호(HW Reset)와 함께, 추가로 리셋시키고자 하는 스토리지 장치(예를 들어, 스토리지 장치들(4300, 4400))를 식별할 수 있는 식별자(예를 들어, ID, 어드레스, 태그 등)도 제 1 스토리지 장치(4200)로 전송될 수 있다. 이러한 식별자는 하드웨어 리셋 신호(HW Reset)에 덧붙여 전달되거나, 하드웨어 리셋 신호(HW Reset)와는 별도로 포트들(Port#0, Port#1a)을 연결하는 회선을 통하여 제 1 스토리지 장치(4200)로 전달될 수 있다.
S310 단계에서, 리셋 컨버터(1230)는 하드웨어 리셋 신호(HW Reset)에 응답하여 소프트웨어 리셋 신호(SW Reset)를 생성할 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는, 리셋시키고자 하는 스토리지 장치들(4300, 4400)을 식별할 수 있는 정보(예를 들어, 앞서 설명된 식별자 등)을 포함할 수 있다.
예를 들어, 호스트(4100)로부터 하드웨어 리셋 신호(HW Reset)가 수신된다 하더라도, 제 1 스토리지 장치(4200)에 대한 리셋은 실행되지 않을 수 있다. 즉, 제 1 스토리지 장치(4200)는, 소프트웨어 리셋 신호(SW Reset)에 의해 스토리지 장치들(4300, 4400)이 리셋 되었다는 것이 확인된 후, 리셋 될 수 있다. 예를 들어, 애플리케이션 계층(LA#1)은 제 2 스토리지 장치(4300)가 리셋 되었다는 것을 나타내는 신호(Response)가 수신되면, 하드웨어 리셋 신호(HW Reset)를 이용하여 제 1 스토리지 장치(4200)에 대한 리셋 동작을 실행할 수 있다.
S315 단계에서, 소프트웨어 리셋 신호(SW Reset)는 제 2 스토리지 장치(4300)로 전달될 수 있다. S320 단계에서, 소프트웨어 리셋 신호(SW Reset)는 제 3 스토리지 장치(4400)로 전달될 수 있다. 예를 들어, 제 2 스토리지 장치(4300) 및 제 3 스토리지 장치(4400)는 제 1 스토리지 장치(4200)와 같은, 하드웨어 리셋 신호(HW Reset)를 수신하기 위한 별도의 리셋 핀을 포함하지 않을 수 있다. 예를 들어, 제 2 스토리지 장치(4300)는, 제 1 스토리지 장치(4200)의 포트(Port#1b)와 제 2 스토리지 장치(4300)의 포트(Port#2a)를 연결하는 회선을 통하여 소프트웨어 리셋 신호(SW Reset)를 수신할 수 있다. 그리고, 제 3 스토리지 장치(4400)는, 제 2 스토리지 장치(4300)의 포트(Port#2b)와 제 3 스토리지 장치(4400)의 포트(Port#3)를 연결하는 회선을 통하여 소프트웨어 리셋 신호(SW Reset)를 수신할 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는 계층들(L2#1b, L1#1b, L1#2a, L2#2a, L2#2b, L1#2b, L1#3, L2#3)을 통하여 애플리케이션 계층(LA#3)으로 전달될 수 있다.
예를 들어, 소프트웨어 리셋 신호(SW Reset)에 의해 스토리지 장치들(4300, 4400)을 리셋시키고자 하는 경우, 애플리케이션 계층(LA#2)은 소프트웨어 리셋 신호(SW Reset) 신호를 단순히 바이패스 시키지 않을 수 있다. 즉, 애플리케이션 계층(LA#2)은 제 3 스토리지 장치(4400)가 리셋 된 후 제 2 스토리지 장치(4300)에 대한 리셋을 실행하도록 구성될 수 있다. 이러한 것을 개념적으로 나타내기 위해, 도면에 소프트웨어 리셋 신호(SW Reset)가 애플리케이션 계층(LA#2)을 지나가는 것으로 도시되었다.
S325 단계에서, 제 3 스토리지 장치(4400)가 소프트웨어 리셋 신호(SW Reset)에 의해 리셋될 수 있다. 소프트웨어 리셋 신호(SW Reset)는 하드웨어 리셋 신호(HW Reset)에 기반하여 생성된 일종의 커맨드 또는 명령어일 수 있다. 따라서, 소프트웨어 리셋 신호(SW Reset)는 애플리케이션 계층(LA#3)에 의해 확인 및 처리될 수 있다. 예를 들어, 애플리케이션 계층(LA#3)이 소프트웨어 리셋 신호(SW Reset)를 처리함으로써, 계층들(L1#3, L2#3, LA#3), 포트(Port#3), 및 불휘발성 메모리(미도시) 등의 설정 값들이 초기화될 수 있다.
S330 단계에서, 제 3 스토리지 장치(4400)가 리셋 되었다는 것을 나타내는 신호(Response1)가 제 2 스토리지 장치(4300)로 전달될 수 있다. 예를 들어, 이러한 응답은 단순히 제 3 스토리지 장치(4400)에 대한 리셋이 실행되었다는 것뿐만 아니라, 제 3 스토리지 장치(4400)에 대한 리셋이 성공하였는지 여부에 대한 정보를 포함할 수 있다. 예를 들어, 응답(Response1)은 링크 계층(L2#3), M-PHY 계층들(L1#3, L1#2b), 링크 계층(L2#2b)을 통하여 애플리케이션 계층(LA#2)으로 전송될 수 있다.
만일, 제 3 스토리지 장치(4400)로부터의 응답(Response)이 제 3 스토리지 장치(4400)에 대한 리셋이 성공하였는지 여부에 대한 정보를 포함하는 경우, 제 3 스토리지 장치(4400)가 성공적으로 리셋되지 않았다면, 제 3 스토리지 장치(4400)가 성공적으로 리셋 될 때까지, S320, S325, S330 단계들이 반복될 수 있다.
S335 단계에서, 제 2 스토리지 장치(4300)가 소프트웨어 리셋 신호(SW Reset)에 의해 리셋될 수 있다. 소프트웨어 리셋 신호(SW Reset)는 소프트웨어로 리셋을 처리하는 일종의 커맨드 또는 명령어이므로, 애플리케이션 계층(LA#2)에 의해 확인 및 처리될 수 있다. 예를 들어, 애플리케이션 계층(LA#2)이 소프트웨어 리셋 신호(SW Reset)를 처리함으로써, 계층들(L1#2a, L1#2b, L2#2a, L2#2b, LA#2), 포트들(Port#2a, Port#2b), 및 불휘발성 메모리(미도시) 등의 설정 값들이 초기화될 수 있다.
S340 단계에서, 제 2 스토리지 장치(4300)가 리셋 되었다는 것을 나타내는 신호(Response2)가 제 1 스토리지 장치(4200)로 전달될 수 있다. 예를 들어, 이러한 응답은 단순히 제 2 스토리지 장치(4200)에 대한 리셋이 실행되었다는 것뿐만 아니라, 제 2 스토리지 장치(4200)에 대한 리셋이 성공하였는지 여부에 대한 정보를 포함할 수 있다. 예를 들어, 응답(Response2)은 링크 계층(L2#2a), M-PHY 계층들(L1#2a, L1#1b), 링크 계층(L2#1b)을 통하여 애플리케이션 계층(LA#1)으로 전송될 수 있다.
만일, 제 2 스토리지 장치(4300)로부터의 응답(Response2)이 제 2 스토리지 장치(4300)에 대한 리셋이 성공하였는지 여부에 대한 정보를 포함하는 경우, 제 2 스토리지 장치(4300)가 성공적으로 리셋되지 않았다면, 제 2 스토리지 장치(4300)가 성공적으로 리셋 될 때까지, S315, S335, S340 단계들이 반복될 수 있다.
S345 단계에서, 제 1 스토리지 장치(4200)가 리셋될 수 있다. 예를 들어, 제 1 스토리지 장치(4200)는 호스트(4100)로부터 수신된 하드웨어 리셋 신호(HW Reset)에 의해 리셋될 수 있다. 예를 들어, 하드웨어 리셋 신호(HW Reset)에 의하여, 제 1 스토리지 장치(4200)의 구성 요소들(즉, 계층들(L1#1a, L1#1b, L2#1a, L2#1b, LA#1), 포트들(Port#1a, Port#1b), 불휘발성 메모리(미도시)의 설정 값들이 초기화될 수 있다. 호스트(4100)로부터 하드웨어 리셋 신호(HW Reset)가 수신되자마자 제 1 스토리지 장치(4200)가 리셋되지 않고, 제 2 스토리지 장치로부터 응답(Response)이 수신되면 제 1 스토리지 장치(4200)가 리셋 되는 이러한 스킴은, 애플리케이션 계층(LA#1)에 의해 전반적으로 관리될 수 있다.
S350 단계에서, 제 1 스토리지 장치(4200)가 리셋 되었다는 것을 나타내는 신호(Response)가 호스트(4100)로 전달될 수 있다. 이러한 응답(Response3)은 링크 계층(L2#1a), M-PHY 계층(L1#1a), 포트들(Port#1a, Port#0)을 통하여 호스트(4100)로 전달될 수 있다. 다만 도시의 간략화를 위해, 제 1 스토리지 장치(4200)로부터의 응답(Response3)은 도 8에 도시되지 않았다.
이러한 응답(Response3)에 의해 호스트(4100)가 스토리지 장치들(4200, 4300, 4400)이 리셋 되었음을 인지하면, 후속 동작들이 실행될 수 있다. 예를 들어, 스토리지 장치들(4200, 4300, 4400)에 대한 테스트 동작이 실행되거나, 호스트(4100)와 스토리지 장치들(4200, 4300, 4400) 사이의 통신/트랜잭션이 수행될 수 있다.
한편, 실시 예에 따라서, 스토리지 장치들(4200, 4300, 4400)에 대한 리셋은 도 9와는 다른 방식으로 수행될 수도 있다. 이러한 실시 예가 도 10에 도시되었다. 다만, 도 9의 실시 예와 도 10의 실시 예는 동작 순서에 차이가 있을 뿐, 기본적인 동작은 유사하므로, 중복되는 설명은 생략하기로 한다. 설명의 이해를 돕기 위해, 도 8 및 도 10을 참조하여 스토리지 장치들(4200, 4300, 4400)에 대한 리셋 동작을 설명하기로 한다.
S405 단계에서, 호스트(4100)는 하드웨어 리셋 신호(HW Reset)를 제 1 스토리지 장치(4200)로 전달할 수 있다. 이때, 하드웨어 리셋 신호(HW Reset)와 함께, 추가로 리셋시키고자 하는 스토리지 장치(예를 들어, 스토리지 장치들(4300, 4400))를 식별할 수 있는 식별자도 제 1 스토리지 장치(4200)로 전송될 수 있다.
S410 단계에서, 리셋 컨버터(4230)는 하드웨어 리셋 신호(HW Reset)에 응답하여 소프트웨어 리셋 신호(SW Reset)를 생성할 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는, 리셋시키고자 하는 스토리지 장치들(4300, 4400)을 식별할 수 있는 정보(예를 들어, 앞서 설명된 식별자 등)을 포함할 수 있다.
S415 단계에서, 제 1 스토리지 장치(4200)가 리셋될 수 있다. 예를 들어, 제 1 스토리지 장치(4200)는 호스트(4100)로부터 수신된 하드웨어 리셋 신호(HW Reset)에 의해 리셋될 수 있다. 예를 들어, 하드웨어 리셋 신호(HW Reset)에 의하여, 제 1 스토리지 장치(4200)의 구성 요소들(즉, 계층들(L1#1a, L1#1b, L2#1a, L2#1b, LA#1), 포트들(Port#1a, Port#1b), 불휘발성 메모리(미도시)의 설정 값들이 초기화될 수 있다.
S420 단계에서, 소프트웨어 리셋 신호(SW Reset)가 제 2 스토리지 장치(4300)로 전달될 수 있다.
S425 단계에서, 제 2 스토리지 장치(4300)가 소프트웨어 리셋 신호(SW Reset)에 의해 리셋될 수 있다. 애플리케이션 계층(LA#2)이 소프트웨어 리셋 신호(SW Reset)를 처리함으로써, 계층들(L1#2a, L1#2b, L2#2a, L2#2b, LA#2), 포트들(Port#2a, Port#2b), 및 불휘발성 메모리(미도시) 등의 설정 값들이 초기화될 수 있다.
S430 단계에서, 소프트웨어 리셋 신호(SW Reset)가 제 3 스토리지 장치(4400)로 전달될 수 있다.
S435 단계에서, 제 3 스토리지 장치(4300)가 소프트웨어 리셋 신호(SW Reset)에 의해 리셋될 수 있다. 애플리케이션 계층(LA#3)이 소프트웨어 리셋 신호(SW Reset)를 처리함으로써, 계층들(L1#3, L2#3, LA#3), 포트(Port#3), 및 불휘발성 메모리(미도시) 등의 설정 값들이 초기화될 수 있다.
S440 단계에서, 제 3 스토리지 장치(4400)가 리셋 되었다는 것을 나타내는 신호(Response)가 호스트(4100)로 전달될 수 있다. 예를 들어, 제 3 스토리지 장치(4400)로부터의 응답(Response)은 링크 계층(L2#3), M-PHY 계층들(L1#3, L1#2b), 링크 계층들(L2#2b, L2#2a), M-PHY 계층들(L1#2a, L1#1b), 링크 계층들(L2#1b, L2#1a), M-PHY 계층(L1#1a)을 통하여 호스트(4100)로 전송될 수 있다. 제 3 스토리지 장치(4400)로부터의 응답(Response)은 도시의 간략화를 위해 도 8에는 도시되지 않았으며, 이는 응답들(Response1, Response2)과는 다른 것임을 유의해야 한다.
제 3 스토리지 장치(4400)로부터의 응답(Response)이 호스트(4100)로 수신됨으로써, 스토리지 장치들(4200, 4300, 4400)에 대한 리셋이 완료되면, 테스트 동작 또는 노말 모드로의 진입과 같은 후속 동작들이 실행될 수 있다.
도 11은 본 발명의 실시 예에 따른 스토리지 시스템(5000)에서 스토리지 장치들(5200, 5300, 5400)에 대한 리셋을 수행하기 위한 과정을 보여주는 블록도이다. 도 12 및 도 13은 도 11의 스토리지 시스템(5000)에서의 리셋 동작을 보여주는 순서도들이다. 제 2 스토리지 장치(5300)에 대한 리셋이 생략된다는 것을 제외하고, 본 실시 예는 도 8의 실시 예와 유사하다. 그러므로, 중복되는 설명은 생략하기로 한다. 설명의 이해를 돕기 위해, 도 11 및 도 12를 참조하여 스토리지 장치들(5200, 5400)에 대한 리셋 동작을 설명하기로 한다.
S505 단계에서, 호스트(5100)는 하드웨어 리셋 신호(HW Reset)를 제 1 스토리지 장치(5200)로 전달할 수 있다. 하드웨어 리셋 신호(HW Reset)는 호스트(5100)와 제 1 스토리지 장치(5200)에 각각 구비된 리셋 핀들(5101, 5201)을 연결하는 별도의 회선을 통하여 수신될 수 있다.
본 실시 예에서, 제 2 스토리지 장치(5300)는 리셋 되지 않는다. 따라서, 하드웨어 리셋 신호(HW Reset)와 함께, 추가로 리셋시키고자 하는 스토리지 장치(즉, 제 3 스토리지 장치(5400))를 식별할 수 있는 식별자(예를 들어, ID, 어드레스, 태그 등)도 제 1 스토리지 장치(5200)로 전송될 수 있다. 이러한 식별자는 하드웨어 리셋 신호(HW Reset)에 덧붙여 전달되거나, 하드웨어 리셋 신호(HW Reset)와는 별도로 포트들(Port#0, Port#1a)을 연결하는 회선을 통하여 제 1 스토리지 장치(5200)로 전달될 수 있다.
S510 단계에서, 리셋 컨버터(5230)는 하드웨어 리셋 신호(HW Reset)에 응답하여 소프트웨어 리셋 신호(SW Reset)를 생성할 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는, 리셋시키고자 하는 제 2 스토리지 장치(5400)을 식별할 수 있는 식별자를 포함할 수 있다.
예를 들어, 호스트(5100)로부터 하드웨어 리셋 신호(HW Reset)가 수신된다 하더라도, 제 1 스토리지 장치(5200)에 대한 리셋은 실행되지 않을 수 있다. 즉, 제 1 스토리지 장치(5200)는, 소프트웨어 리셋 신호(SW Reset)에 의해 제 3 스토리지 장치(5400)가 리셋 되었다는 것이 확인된 후, 리셋 될 수 있다. 예를 들어, 애플리케이션 계층(LA#1)은 제 3 스토리지 장치(5400)가 리셋 되었다는 것을 나타내는 신호(Response)가 수신되면, 하드웨어 리셋 신호(HW Reset)를 이용하여 제 1 스토리지 장치(5200)에 대한 리셋 동작을 실행할 수 있다.
S515 단계에서, 소프트웨어 리셋 신호(SW Reset)가 제 3 스토리지 장치(5400)로 전달될 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는 링크 계층(L2#1b), M-PHY 계층들(L1#1b, L1#2a), 링크 계층들(L2#2a, L2#2b), M-PHY 계층들(L1#2b, L1#3), 링크 계층(L2#3)을 통하여 애플리케이션 계층(LA#3)으로 전달될 수 있다. 예를 들어, 제 2 스토리지 장치(5300) 및 제 3 스토리지 장치(5400)는 제 1 스토리지 장치(5200)와 같은, 하드웨어 리셋 신호(HW Reset)를 수신하기 위한 별도의 리셋 핀을 포함하지 않을 수 있다. 예를 들어, 제 3 스토리지 장치(5400)는, 제 1 스토리지 장치(5200)의 포트(Port#1b)와 제 2 스토리지 장치(5300)의 포트(Port#2a)를 연결하는 회선과, 제 2 스토리지 장치(5300)의 포트(Port#2b)와 제 3 스토리지 장치(5400)의 포트(Port#3)를 연결하는 회선을 통하여 소프트웨어 리셋 신호(SW Reset)를 수신할 수 있다.
예를 들어, 제 2 스토리지 장치(5300)가 리셋되지 않는 경우, 애플리케이션 계층(LA#2)은 소프트웨어 리셋 신호(SW Reset)를 실질적으로 처리하지 않을 수 있다. 즉, 애플리케이션 계층(LA#2)은 소프트웨어 리셋 신호(SW Reset)를 단순히 바이패스 시킬 수 있다. 이를 개념적으로 나타내기 위해, 도 11의 소프트웨어 리셋 신호(SW Reset)가 애플리케이션 계층(LA#2)을 지나가는 부분은 점선의 화살표로 도시되었다.
S520 단계에서, 제 3 스토리지 장치(5400)가 소프트웨어 리셋 신호(SW Reset)에 의해 리셋될 수 있다. 소프트웨어 리셋 신호(SW Reset)는 하드웨어 리셋 신호(HW Reset)에 기반하여 생성된 일종의 커맨드 또는 명령어일 수 있다. 애플리케이션 계층(LA#3)이 소프트웨어 리셋 신호(SW Reset)를 처리함으로써, 계층들(L1#3, L2#3, LA#3), 포트(Port#3), 및 불휘발성 메모리(미도시) 등의 설정 값들이 초기화될 수 있다.
S525 단계에서, 제 3 스토리지 장치(5400)가 리셋 되었다는 것을 나타내는 신호(Response)가 제 1 스토리지 장치(5200)로 전달될 수 있다. 예를 들어, 이러한 응답은 단순히 제 3 스토리지 장치(5400)에 대한 리셋이 실행되었다는 것뿐만 아니라, 제 3 스토리지 장치(5400)에 대한 리셋이 성공하였는지 여부에 대한 정보를 포함할 수 있다. 예를 들어, 제 3 스토리지 장치(5400)로부터의 응답(Response)은 링크 계층(L2#3), M-PHY 계층들(L1#3, L1#2b), 링크 계층들(L2#2b, L2#2a), M-PHY 계층들(L1#2a, L1#1b), 링크 계층(L2#1b)을 통하여 애플리케이션 계층(LA#2)으로 전송될 수 있다.
만일, 제 3 스토리지 장치(5400)로부터의 응답(Response)이 제 3 스토리지 장치(5400)에 대한 리셋이 성공하였는지 여부에 대한 정보를 포함하는 경우, 제 3 스토리지 장치(5400)가 성공적으로 리셋되지 않았다면, 제 3 스토리지 장치(5400)가 성공적으로 리셋 될 때까지, S515, S520, S525 단계들이 반복될 수 있다.
S530 단계에서, 제 1 스토리지 장치(5200)가 리셋될 수 있다. 예를 들어, 제 1 스토리지 장치(5200)는 호스트(5100)로부터 수신된 하드웨어 리셋 신호(HW Reset)에 의해 리셋될 수 있다. 예를 들어, 하드웨어 리셋 신호(HW Reset)에 의하여, 제 1 스토리지 장치(5200)의 설정 값들이 초기화될 수 있다. 제 2 스토리지 장치(5300)에 대한 리셋을 생략하고, 제 3 스토리지 장치(5400)에 대한 리셋이 완료된 후 제 1 스토리지 장치(5200)가 리셋 되는 이러한 스킴은, 애플리케이션 계층(LA#1)에 의해 전반적으로 관리될 수 있다.
S535 단계에서, 제 1 스토리지 장치(5200)가 리셋 되었다는 것을 나타내는 신호(Response)가 호스트(4100)로 전달될 수 있다. 다만 도시의 간략화를 위해, 제 1 스토리지 장치(5200)로부터의 응답(Response)은 도 8에 도시되지 않았다. 제 1 스토리지 장치(5200)로부터의 응답(Response)에 의해 호스트(5100)가 스토리지 장치들(5200, 5400)이 리셋 되었음을 인지하면, 테스트 동작 또는 노멀 모드로의 진입과 같은 후속 동작들이 실행될 수 있다.
한편, 실시 예에 따라서, 스토리지 장치들(5200, 5400)에 대한 리셋은 도 12와는 다른 방식으로 수행될 수도 있다. 이러한 실시 예가 도 12에 도시되었다. 다만, 도 12의 실시 예와 도 13의 실시 예는 동작 순서에 차이가 있을 뿐, 기본적인 동작은 유사하므로, 중복되는 설명은 생략하기로 한다. 설명의 이해를 돕기 위해, 도 11 및 도 13을 참조하여 스토리지 장치들(5200, 5400)에 대한 리셋 동작을 설명하기로 한다.
S605 단계에서, 호스트(5100)는 하드웨어 리셋 신호(HW Reset)를 제 1 스토리지 장치(5200)로 전달할 수 있다. 하드웨어 리셋 신호(HW Reset)와 함께, 추가로 리셋시키고자 하는 스토리지 장치(즉, 제 3 스토리지 장치(5400))를 식별할 수 있는 식별자(예를 들어, ID, 어드레스, 태그 등)도 제 1 스토리지 장치(5200)로 전송될 수 있다.
S610 단계에서, 리셋 컨버터(5230)는 하드웨어 리셋 신호(HW Reset)에 응답하여 소프트웨어 리셋 신호(SW Reset)를 생성할 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는, 리셋시키고자 하는 제 2 스토리지 장치(5400)을 식별할 수 있는 식별자를 포함할 수 있다.
S615 단계에서, 제 1 스토리지 장치(5200)가 리셋될 수 있다. 예를 들어, 제 1 스토리지 장치(5200)는 호스트(5100)로부터 수신된 하드웨어 리셋 신호(HW Reset)에 의해 리셋될 수 있으며, 그 결과, 제 1 스토리지 장치(5200)의 설정 값들이 초기화될 수 있다.
S620 단계에서, 소프트웨어 리셋 신호(SW Reset)가 제 3 스토리지 장치(5400)로 전달될 수 있다. 예를 들어, 소프트웨어 리셋 신호(SW Reset)는 링크 계층(L2#1b), M-PHY 계층들(L1#1b, L1#2a), 링크 계층들(L2#2a, L2#2b), M-PHY 계층들(L1#2b, L1#3), 링크 계층(L2#3)을 통하여 애플리케이션 계층(LA#3)으로 전달될 수 있다.
S625 단계에서, 제 3 스토리지 장치(5400)가 소프트웨어 리셋 신호(SW Reset)에 의해 리셋될 수 있다. 애플리케이션 계층(LA#3)이 소프트웨어 리셋 신호(SW Reset)를 처리함으로써, 제 3 스토리지 장치(5400)의 설정 값들이 초기화될 수 있다.
S630 단계에서, 제 3 스토리지 장치(5400)가 리셋 되었다는 것을 나타내는 신호(Response)가 호스트(5100)로 전달될 수 있다. 예를 들어, 제 3 스토리지 장치(5400)로부터의 응답(Response)은 링크 계층(L2#3), M-PHY 계층들(L1#3, L1#2b), 링크 계층들(L2#2b, L2#2a), M-PHY 계층들(L1#2a, L1#1b), 링크 계층들(L2#1b, L2#1a), M-PHY 계층(L1#1a)을 통하여 호스트(5100)로 전송될 수 있다. 제 3 스토리지 장치(5400)로부터 호스트(5100)로 전달되는 응답(Response)은 도시의 간략화를 위해 도 11에는 도시되지 않았으며, 이는 제 3 스토리지 장치(5400)로부터 제 1 스토리지 장치(5200)로 전달되는 응답(Response)과는 다른 것임을 유의해야 한다.
제 3 스토리지 장치(5400)로부터의 응답(Response)이 호스트(5100)로 수신됨으로써, 스토리지 장치들(5200, 5400)에 대한 리셋이 완료되면, 테스트 동작 또는 노말 모드로의 진입과 같은 후속 동작들이 실행될 수 있다.
이상 도 11 내지 도 13을 통하여 직렬로 연결된 스토리지 장치들(5200, 5400)에 대한 리셋 동작을 수행하는 과정이 설명되었다. 예시적으로 제 2 스토리지 장치(5300)에 대한 리셋 동작을 생략하는 것이 설명되었으나, 제 1 스토리지 장치(5200) 또는 제 3 스토리지 장치(5400)에 대한 리셋 동작을 생략하는 경우에도, 앞서 설명된 것들이 적응적으로 적용될 수 있다.
도 14는 본 발명의 실시 예에 따른 스토리지 시스템(6000)에서 스토리지 장치들(6200, 6300)에 대한 리셋을 수행하기 위한 과정을 보여주는 블록도이다. 본 실시 예는 앞서 도 3에서 도시된 실시 예와 유사하다. 다만, 본 실시 예에서, 제 1 스토리지 장치(6200)는 소프트웨어 리셋 신호를 생성하기 위한 리셋 컨버터(도 3 참조, 1230)를 포함하지 않을 수 있다. 그리고, 제 1 스토리지 장치(6200)는 스토리지 장치들(6200, 6300)을 직접적으로 또는 간접적으로 리셋시키기 위한 하드웨어 리셋 신호(HW Reset)를 수신하지 않을 수 있다. 대신에, 호스트(6100)와 제 1 스토리지 장치(6200) 사이의 일반적인 트랜잭션 시 사용되는, 포트들(Port#0, Port#1a)을 연결하는 회선(예를 들어, 도 3의 L1)을 통하여 소프트웨어 리셋 신호(SW Reset)가 제 1 스토리지 장치(6200)로 수신될 수 있다.
호스트(6100)로부터 수신된 소프트웨어 리셋 신호(SW Reset)는 M-PHY 계층(L1#1a), 링크 계층들(L2#1a)을 통하여 애플리케이션 계층(LA#1)으로 전달될 수 있다. 예를 들어, 제 2 스토리지 장치(6300)가 리셋 되기에 앞서, 제 1 스토리지 장치(6200)가 먼저 리셋 되는 경우, 애플리케이션 계층(LA#1)은 소프트웨어 리셋 신호를 처리하여 제 1 스토리지 장치(6200)를 우선 리셋 시킬 수 있다. 반면, 제 2 스토리지 장치(6300)가 제 1 스토리지 장치(6200)보다 먼저 리셋 되는 경우, 애플리케이션 계층(LA#1)은 소프트웨어 리셋 신호(SW Reset) 신호를 바이패스 시켜 애플리케이션 계층(LA#2)으로 전달할 수 있다.
본 실시 예에서도, 제 1 스토리지 장치(6200)만 리셋 되거나, 제 2 스토리지 장치만(6300) 리셋될 수 있으며, 이 경우에도 앞서 도 3 내지 도 13을 통하여 설명된 실시 예들이 적응적으로 적용될 수 있다. 그리고, 3개 이상의 스토리지 장치들이 호스트(6100)에 연결되는 경우에도 앞선 실시 예들이 적응적으로 적용될 수 있다. 그러므로, 상세한 설명은 생략하기로 한다.
도 15는 본 발명의 실시 예에 따른 스토리지 시스템(7000)에서 호스트(7100)에 직접 연결되지 않는 스토리지 장치들(7202 내지 720N)을 리셋시키는 것을 설명하기 위한 블록도이다.
본 발명의 실시 예에 따른 스토리지 시스템(7000)은 호스트(7100)에 직렬로 연결되는 복수의 스토리지 장치들(7201 내지 720N)을 포함할 수 있다.
복수의 스토리지 장치들(7201 내지 720N)은 각각의 입출력 포트들을 통해 서로 직렬로 연결될 수 있다. 제 1 스토리지 장치(7201)는 호스트(7100)에 직접 연결되어 호스트(7100)와 직접 통신하도록 구성될 수 있다. 제 2 스토리지 장치(7202)는 제 1 스토리지 장치(7201)에 직접 연결되어 제 1 스토리지 장치(7201) 직접 통신하도록 구성될 수 있다. 제 2 스토리지 장치(7202) 내지 제 N 스토리지 장치(720N)도 유사한 방식으로 서로 직렬로 연결될 수 있다. 이러한 방식으로, 복수의 스토리지 장치들(7201 내지 720N)은 체인 구조 또는 캐스케이드 연결 구조의 토폴로지로 연결될 수 있다.
호스트(7100)로부터 하드웨어 리셋 신호(HW Reset)가 제 1 스토리지 장치(7201)로 수신되면, 제 1 스토리지 장치(7201)의 리셋 컨버터(미도시)는 소프트웨어 리셋 신호(SW Reset)를 생성할 수 있다. 소프트웨어 리셋 신호(SW Reset)는 제 2 스토리지 장치(7202) 내지 제 N 스토리지 장치(720N)를 리셋시킬 수 있는 커맨드/명령어일 수 있다. 그리고, 소프트웨어 리셋 신호(SW Reset)는 리셋시키고자 하는 스토리지 장치를 식별할 수 있는 식별자를 포함할 수 있다.
소프트웨어 리셋 신호(SW Reset)는 순차적으로 제 N 스토리지 장치(720N)까지 전달될 수 있다. 이후, 소프트웨어 리셋 신호(SW Reset)에 의해 제 N 스토리지 장치(720N)부터 제 2 스토리지 장치(7202)까지 순차적으로 리셋될 수 있다. 각각의 스토리지 장치의 애플리케이션 계층은 소프트웨어 리셋 신호(SW Reset)를 인식하고 처리하여 각각의 스토리지 장치를 리셋시킬 수 있다. 이후, 하드웨어 리셋 신호(HW Reset)에 의해 제 1 스토리지 장치(7201)가 리셋될 수 있다.
반면, 실시 예에 따라서, 제 1 스토리지 장치(7201)가 하드웨어 리셋 신호(HW Reset)에 의해 우선적으로 리셋될 수 있다. 이후, 소프트웨어 리셋 신호(SW Reset)는 순차적으로 제 2 스토리지 장치(7202)부터 제 N 스토리지 장치(720N)까지 전달될 수 있으며, 소프트웨어 리셋 신호(SW Reset)에 의해 제 2 스토리지 장치(7202)부터 제 N 스토리지 장치(720N)가 순차적으로 리셋될 수 있다.
한편, 호스트(7100)로부터 하드웨어 리셋 신호(HW Reset)가 수신되는 대신에, 소프트웨어 리셋 신호(SW Reset)가 제 1 스토리지 장치(7201)로 수신될 수 있다. 이 경우, 별도로 소프트웨어 리셋 신호를 생성하기 위한 리셋 컨버터는 구비되지 않을 수 있다.
도 16은 본 발명의 실시 예에 따른 스토리지 시스템(8000)에서 호스트(8100)에 직접 연결되지 않는 스토리지 장치들(8202 내지 820N) 중 일부를 리셋시키는 것을 설명하기 위한 블록도이다. 예시적으로, 제 2 스토리지 장치(8202)에 대한 리셋이 생략되는 것으로 도시되었다.
본 실시 예에서, 호스트(8100)로부터 제 1 스토리지 장치(8201)로 하드웨어 리셋 신호(HW Reset)가 수신될 때, 리셋하고자 하는 스토리지 장치를 식별할 수 있는 식별자도 함께 수신될 수 있다. 예를 들어, 식별자에는 제 2 스토리지 장치(8202)를 식별할 수 있는 정보는 포함되지 않을 것이다.
하드웨어 리셋 신호(HW Reset)에 응답하여 생성된 소프트웨어 리셋 신호(SW Reset)가 제 2 스토리지 장치(8201)부터 제 N 스토리지 장치(820N)로 순차적으로 전달될 수 있다. 그러나, 제 2 스토리지 장치(8202)의 애플리케이션 계층은 소프트웨어 리셋 신호(SW Reset)를 처리하지 않고 단순히 바이패스 시킬 수 있다. 제 2 스토리지 장치(8202)가 제 3 스토리지 장치(8203)로부터 제 3 스토리지 장치(8203)가 리셋 되었음을 나타내는 응답(Response)을 수신하는 경우에도 마찬가지이다. 즉, 리셋되는 스토리지 장치의 애플리케이션 계층은 소프트웨어 리셋 신호(SW Reset)를 인식하고 처리하여 스토리지 장치를 리셋시킬 수 있지만, 리셋되지 않는 제 2 스토리지 장치(8202)는 후차적인 스토리지 장치들(즉, 8203 내지 820N)이 리셋될 수 있도록 하는 소프트웨어 리셋 신호(SW Reset)가 전달될 수 있는 통로만을 제공한다.
도 17은 본 발명이 적용된 전자 기기를 보여주는 블록도이다. 도 17을 참조하면, 전자 기기(9000)는 MIPI(mobile industry processor interface) 표준 또는 eDP(Embedded DisplayPort) 표준을 지원할 수 있도록 구성될 수 있다. 전자 기기(9000)는 애플리케이션 프로세서(9100), 무선 송수신부(9200), NFC 통신부(9300), 데이터 스토리지(9400), 디스플레이부(9500), 이미지 처리부(9600), 워킹 메모리(9700) 및 유저 인터페이스(9800)를 포함할 수 있다.
애플리케이션 프로세서(9100)는 전자 기기(9000)의 전반적인 동작을 제어할 수 있다. 애플리케이션 프로세서(9100)는 디스플레이부(9500)와 인터페이싱을 수행하는 DSI 호스트 및 이미지 처리부(9600)와 인터페이싱을 수행하는 CSI 호스트를 포함할 수 있다.
무선 송수신부(9200)는 메인 안테나(9210), RF 칩(9220), 및 모뎀(9230)을 포함할 수 있다. 예를 들어, 모뎀(9230)은 M-PHY 계층을 통하여 애플리케이션 프로세서(9100)와 통신할 수 있다. 그러나, 실시 예에 따라서, 모뎀(9230)은 애플리케이션 프로세서(9100)에 내장되어 애플리케이션 프로세서(9100)와 함께 원-칩으로 구현될 수 있다. 예를 들어, 메인 안테나(9210)는 전자 기기(9000)를 둘러싸는 메탈 바디의 일부에 구현될 수 있다.
NFC 통신부(9300)는 NFC 안테나(9310), 매칭 회로(9320), 및 NFC 컨트롤러(9330)를 포함할 수 있다.
데이터 스토리지(9400)는 임베디드 UFS 스토리지(9410) 및 착탈형 UFS 카드(9420)를 포함할 수 있다. 임베디드 UFS 스토리지(9410)는 M-PHY 계층을 통하여 애플리케이션 프로세서(9100)와 직접 통신을 수행할 수 있다. 착탈형 UFS 카드(9420)는 임베디드 UFS 스토리지(9410)에 직렬로 연결될 수 있다. 애플리케이션 프로세서(9100), 임베디드 UFS 스토리지(9410), 및 착탈형 UFS 카드(9420)는 체인(Chain) 구조 또는 캐스케이드 연결 구조의 토폴로지(Topology)로 연결될 수 있다.
한편, 호스트(애플리케이션 프로세서, 9100)는 착탈형 UFS 카드(9420)와 UFS 프로토콜이 아닌 다른 프로토콜에 의해 통신하도록 브릿지(bridge)를 구비할 수 있다. 애플리케이션 프로세서(9100)와 착탈형 UFS 카드(9420)는 다양한 카드 프로토콜(예를 들어, UFDs, MMC, eMMC SD(secure digital), mini SD, Micro SD 등)에 의해 통신할 수 있다. 임베디드 UFS 스토리지(9410) 및 착탈형 UFS 카드(9420)는 메모리 셀이 연결되는 셀 스트링이 기판과 수직으로 형성되는 3차원 불휘발성 메모리 장치로 구성될 수 있다.
디스플레이부(9500)는 디스플레이 패널(9510) 및 DSI (display serial interface) 주변 회로(9520)를 포함할 수 있다. 디스플레이 패널(9510)은 영상 데이터를 디스플레이할 수 있다. 애플리케이션 프로세서(9100)에 내장된 DSI 호스트는 DSI를 통하여 디스플레이 패널(9510)과 시리얼 통신을 수행할 수 있다. DSI 주변 회로(9520)는 디스플레이 패널(9510)을 구동하는데 필요한 타이밍 컨트롤러, 소스 드라이버 등을 포함할 수 있다.
이미지 처리부(9600)는 카메라 모듈(9610) 및 CSI (camera serial interface) 주변 회로(9620)를 포함할 수 있다. 카메라 모듈(9610) 및 CSI 주변 회로(9620)는 렌즈, 이미지 센서, 이미지 프로세서 등을 포함할 수 있다. 카메라 모듈(9610)에서 생성된 이미지 데이터는 이미지 프로세서에서 처리될 수 있으며, 처리된 이미지는 CSI를 통하여 애플리케이션 프로세서(9100)로 전달될 수 있다.
워킹 메모리(9700)는 애플리케이션 프로세서(9100)에 의해 처리되는 데이터를 일시적으로 저장할 수 있다. 워킹 메모리(9700)는 SRAM, DRAM, SDRAM 등과 같은 휘발성 메모리, 또는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magneto-resistive RAM), ReRAM (Resistive RAM), FRAM (Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
유저 인터페이스(9800)는 사용자의 편의를 위해 제공되는 다양한 장치들(예를 들어, 마이크, 스피커 등)을 포함할 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 위에서 설명한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
1000: 스토리지 시스템 1100: 호스트
1200: 제 1 스토리지 장치 1210: 불휘발성 메모리
1220: 컨트롤러 1230: 리셋 컨버터

Claims (10)

  1. 애플리케이션 프로세서; 그리고
    상기 애플리케이션 프로세서와 직접 통신하도록 상기 애플리케이션 프로세서에 연결되고, 상기 애플리케이션 프로세서로부터 수신된 하드웨어 리셋 신호에 응답하여 소프트웨어 리셋 신호를 생성하는 리셋 컨버터를 포함하는 제 1 스토리지 장치를 포함하되,
    상기 제 1 스토리지 장치와 직접 통신하도록 상기 제 1 스토리지 장치에 연결되고 상기 제 1 스토리지 장치를 통하여 상기 애플리케이션 프로세서와 연결되는 제 2 스토리지 장치는, 상기 소프트웨어 리셋 신호에 의해 리셋되는 전자 기기.
  2. 제 1 항에 있어서,
    상기 소프트웨어 리셋 신호는, 상기 소프트웨어 리셋 신호에 의해 리셋될 상기 제 2 스토리지 장치를 식별하기 위한 정보를 포함하는 전자 기기.
  3. 제 1 항에 있어서,
    상기 제 1 스토리지 장치는, 상기 제 2 스토리지 장치가 리셋된 후에, 상기 하드웨어 리셋 신호에 의해 리셋되는 전자 기기.
  4. 제 3 항에 있어서,
    상기 제 1 스토리지 장치는, 상기 제 2 스토리지 장치로부터 수신된 상기 제 2 스토리지 장치가 리셋 되었음을 나타내는 응답에 따라, 리셋되는 전자 기기.
  5. 제 1 항에 있어서,
    상기 하드웨어 리셋 신호는 상기 애플리케이션 프로세서와 상기 제 1 스토리지 장치에 각각 구비된 리셋 핀들을 연결하는 별도의 회선을 통하여 수신되는 전자 기기.
  6. 제 1 항에 있어서,
    상기 제 1 스토리지 장치는 컨트롤러를 포함하되,
    상기 컨트롤러는:
    상기 애플리케이션 프로세서 및 상기 제 2 스토리지 장치로와 패킷을 교환하도록 구성되는 물리 계층;
    상기 물리 계층을 통해 교환되는 패킷을 전달하고 변환하도록 구성되는 링크 계층; 그리고
    상기 링크 계층을 통해 수신된 패킷에 기초하여 상기 제 1 스토리지 장치에 통신 서비스를 제공하도록 구성되는 애플리케이션 계층을 포함하는 전자 기기.
  7. 제 6 항에 있어서,
    상기 물리 계층은 MIPI M-PHY 규약에 따라 구현되고,
    상기 링크 계층은 MIPI UniPro 규약에 따라 구현되고,
    상기 제 1 스토리지 장치 및 상기 제 2 스토리지 장치 각각은 MIPI UFS 규약에 따라 구현되는 전자 기기.
  8. 애플리케이션 프로세서와 직접 통신하도록 상기 애플리케이션 프로세서에 연결되는 임베디드 스토리지 장치에 있어서:
    상기 애플리케이션 프로세서로부터 수신된 하드웨어 리셋 신호에 응답하여 소프트웨어 리셋 신호를 생성하는 리셋 컨버터를 포함하되,
    상기 리셋 컨버터는, 상기 임베디드 스토리지 장치와 직접 통신하도록 상기 임베디드 스토리지 장치에 연결되고 상기 임베디드 스토리지를 통하여 상기 애플리케이션 프로세서와 연결되는 착탈식 스토리지 장치로 상기 소프트웨어 리셋 신호를 전달하는 임베디드 스토리지 장치.
  9. 제 8 항에 있어서,
    상기 소프트웨어 리셋 신호는, 상기 임베디드 스토리지 장치를 통하여 상기 애플리케이션 프로세서에 연결되는 스토리지 장치를 식별하기 위한 정보를 포함하는 임베디드 스토리지 장치.
  10. 제 8 항에 있어서,
    상기 하드웨어 리셋 신호는 상기 애플리케이션 프로세서와 상기 임베디드 스토리지 장치에 각각 구비된 리셋 핀들을 연결하는 별도의 회선을 통하여 수신되는 임베디드 스토리지 장치.
KR1020160124749A 2016-09-28 2016-09-28 서로 직렬로 연결된 스토리지 장치들 중 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 및 그것의 동작 방법 KR20180035266A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160124749A KR20180035266A (ko) 2016-09-28 2016-09-28 서로 직렬로 연결된 스토리지 장치들 중 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 및 그것의 동작 방법
US15/697,900 US10437498B2 (en) 2016-09-28 2017-09-07 Electronic device configured to reset storage device non-directly connected to application processor among storage devices serially connected to one another and method of operating the same
CN201710854374.3A CN107871524B (zh) 2016-09-28 2017-09-20 对存储装置进行复位的电子装置和操作该电子装置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160124749A KR20180035266A (ko) 2016-09-28 2016-09-28 서로 직렬로 연결된 스토리지 장치들 중 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20180035266A true KR20180035266A (ko) 2018-04-06

Family

ID=61686223

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160124749A KR20180035266A (ko) 2016-09-28 2016-09-28 서로 직렬로 연결된 스토리지 장치들 중 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 및 그것의 동작 방법

Country Status (3)

Country Link
US (1) US10437498B2 (ko)
KR (1) KR20180035266A (ko)
CN (1) CN107871524B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180034778A (ko) * 2016-09-27 2018-04-05 삼성전자주식회사 직렬로 연결되는 스토리지 장치들 중 직접 연결되지 않은 스토리지 장치로의 바이패스 경로를 제공하도록 구성되는 전자 장치, 그것에 포함되는 스토리지 장치, 그것을 포함하는 컴퓨팅 시스템, 및 그것을 이용하여 통신하는 방법
KR102417107B1 (ko) 2017-07-07 2022-07-05 마이크론 테크놀로지, 인크. 관리되는 nand에 대한 rpmb 개선
US11055249B2 (en) 2019-06-25 2021-07-06 Micron Technology, Inc. Access optimization in aggregated and virtualized solid state drives
US10942846B2 (en) 2019-06-25 2021-03-09 Micron Technology, Inc. Aggregated and virtualized solid state drives accessed via multiple logical address spaces
US11762798B2 (en) * 2019-06-25 2023-09-19 Micron Technology, Inc. Aggregated and virtualized solid state drives with multiple host interfaces
US11513923B2 (en) 2019-06-25 2022-11-29 Micron Technology, Inc. Dynamic fail-safe redundancy in aggregated and virtualized solid state drives
US11768613B2 (en) 2019-06-25 2023-09-26 Micron Technology, Inc. Aggregation and virtualization of solid state drives
US11573708B2 (en) * 2019-06-25 2023-02-07 Micron Technology, Inc. Fail-safe redundancy in aggregated and virtualized solid state drives
US10942881B2 (en) 2019-06-25 2021-03-09 Micron Technology, Inc. Parallel operations in aggregated and virtualized solid state drives
CN111341380B (zh) * 2020-02-25 2022-02-01 深圳忆联信息系统有限公司 Ssd控制器复位的测试方法、装置和计算机设备
CN114499772A (zh) * 2020-11-12 2022-05-13 华为技术有限公司 数据传输方法及电子设备
TW202236821A (zh) 2021-03-08 2022-09-16 韓商愛思開海力士有限公司 用於一互連協定的功耗模式改變的資訊配置的方法、控制器以及儲存裝置
US20220300179A1 (en) * 2021-03-17 2022-09-22 Micron Technology, Inc. Host recovery for a stuck condition

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5463772A (en) 1993-04-23 1995-10-31 Hewlett-Packard Company Transparent peripheral file systems with on-board compression, decompression, and space management
US6230181B1 (en) * 1997-11-03 2001-05-08 3Com Corporation Management shutdown and reset of embedded systems
US6438684B1 (en) * 1997-11-03 2002-08-20 3Com Corporation Push button shutdown and reset of embedded systems
US7130958B2 (en) * 2003-12-02 2006-10-31 Super Talent Electronics, Inc. Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes
JP4173863B2 (ja) 2003-03-20 2008-10-29 株式会社ルネサステクノロジ メモリカードおよびその初期化設定方法
US6991173B2 (en) * 2003-07-07 2006-01-31 Stmicroelectronics, Inc. Method and apparatus for autoreset of a USB smart card device in a mute mode
US8156296B2 (en) * 2006-07-28 2012-04-10 Dell Products L.P. System and method for managing resets in a system using shared storage
US20080270811A1 (en) * 2007-04-26 2008-10-30 Super Talent Electronics Inc. Fast Suspend-Resume of Computer Motherboard Using Phase-Change Memory
US8127179B2 (en) 2008-02-29 2012-02-28 Arris Group, Inc. Providing system reset information to service provider
SG158763A1 (en) 2008-07-16 2010-02-26 Rfnet Technologies Pte Ltd Hardware reset button equivalent software reset method for network device
KR101517767B1 (ko) * 2009-01-07 2015-05-06 시게이트 테크놀로지 엘엘씨 하이브리드 저장 장치 및 그의 자원 공유 방법
JP2010218406A (ja) * 2009-03-18 2010-09-30 Murata Machinery Ltd 電子機器
EP2463779A1 (en) 2009-08-04 2012-06-13 Fujitsu Limited Reset method and monitor
US9471484B2 (en) * 2012-09-19 2016-10-18 Novachips Canada Inc. Flash memory controller having dual mode pin-out
US9417819B2 (en) 2012-11-13 2016-08-16 Toshiba, Corporation Cache device for hard disk drives and methods of operations
CN104102600B (zh) 2013-04-03 2018-01-12 慧荣科技股份有限公司 存储器控制器
US9619156B2 (en) 2014-07-31 2017-04-11 Samsung Electronics Co., Ltd. Storage device, memory card, and communicating method of storage device
US20160070320A1 (en) * 2014-09-10 2016-03-10 Microsoft Corporation Individual Device Reset and Recovery in a Computer
EP3021612B1 (en) 2014-11-12 2018-03-21 HTC Corporation Device and method of handling network configurations
CN105700901B (zh) 2014-11-28 2020-05-08 华为技术有限公司 一种启动方法、装置和计算机系统
US10296356B2 (en) * 2015-11-18 2019-05-21 Oracle International Corporations Implementation of reset functions in an SoC virtualized device

Also Published As

Publication number Publication date
CN107871524B (zh) 2023-07-25
US20180088854A1 (en) 2018-03-29
US10437498B2 (en) 2019-10-08
CN107871524A (zh) 2018-04-03

Similar Documents

Publication Publication Date Title
KR20180035266A (ko) 서로 직렬로 연결된 스토리지 장치들 중 애플리케이션 프로세서에 직접 연결되지 않는 스토리지 장치를 리셋시키는 전자 기기 및 그것의 동작 방법
KR102268699B1 (ko) 저장 장치의 동작 방법, 호스트 장치의 동작 방법, 그리고 저장 장치 및 호스트 장치를 포함하는 사용자 시스템의 동작 방법
US10942887B2 (en) Electronic device configured to control non-directly connected storage device among serially connected storage devices, storage device included therein, computing system including the same, and operation method of controller of storage device
JP2013515992A (ja) Usb2.0インターフェイスを有するモバイルプラットフォームにおけるusb3.0のサポート
TW201802697A (zh) 快速週邊組件互連卡
KR102498223B1 (ko) Ufs 장치의 작동 방법, ufs 호스트의 작동 방법, 및 이들을 포함하는 시스템의 작동 방법
US10846256B2 (en) Multi-endpoint device sideband communication system
US10424346B2 (en) Electronic device including monitoring circuit and storage device included therein
KR20200001208A (ko) 융합형 반도체 장치 및 동작 방법, 이를 포함하는 적층형 메모리 장치
US20220147254A1 (en) Ufs device, method of operating the ufs device, and system including the ufs device
CN101208673A (zh) 使用用于存储装置通信和点对点通信的单一集成电路在数据存储系统中提供通信的技术
CN105573947B (zh) 一种基于apb总线的sd/mmc卡控制方法
US20170177219A1 (en) Method of operating storage device using serial interface and method of operating data processing system including the same
US11294832B2 (en) Systems and methods for queuing device management configuration requests
KR101260313B1 (ko) 전자장치 및 그 데이터 송수신방법과, 슬레이브 장치 및복수의 장치 간의 통신방법
CN103365815A (zh) 支持sd模式下ip实现的sd存储卡接口
CN114115713A (zh) 用于执行高速链路启动的存储设备和包括其的存储系统
CN113111024A (zh) 存储装置、存储系统和及操作存储装置的方法
US10296261B2 (en) Electronic device compensating different characteristics of serially connected storage devices and storage device included therein
EP3958134B1 (en) Storage device for high speed link startup and storage system including the same
US20230266896A1 (en) Memory system for tailoring data, host system for controlling the memory system, and operation method of the memory system
Costache et al. FPGA Implementation of a SD Card Controller using SPI communication
US20230214258A1 (en) Storage controller and storage device
KR20210156187A (ko) 고속 링크 스타트업을 수행하는 스토리지 장치 및 이를 포함하는 스토리지 시스템
CN117349212A (zh) 一种服务器主板及其固态硬盘插入检测方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right