KR102518370B1 - 저장 장치 및 이의 디버깅 시스템 - Google Patents

저장 장치 및 이의 디버깅 시스템 Download PDF

Info

Publication number
KR102518370B1
KR102518370B1 KR1020180007002A KR20180007002A KR102518370B1 KR 102518370 B1 KR102518370 B1 KR 102518370B1 KR 1020180007002 A KR1020180007002 A KR 1020180007002A KR 20180007002 A KR20180007002 A KR 20180007002A KR 102518370 B1 KR102518370 B1 KR 102518370B1
Authority
KR
South Korea
Prior art keywords
debugging
data
storage device
host
power
Prior art date
Application number
KR1020180007002A
Other languages
English (en)
Other versions
KR20190088659A (ko
Inventor
김희종
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180007002A priority Critical patent/KR102518370B1/ko
Priority to US16/103,179 priority patent/US10817405B2/en
Priority to CN201910035084.5A priority patent/CN110058809B/zh
Publication of KR20190088659A publication Critical patent/KR20190088659A/ko
Application granted granted Critical
Publication of KR102518370B1 publication Critical patent/KR102518370B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Abstract

본 발명의 실시예에 따른 저장 장치는, 데이터를 기입하거나 또는 기입된 데이터를 출력하는 비휘발성 메모리; 호스트의 요청에 응답하여 상기 비휘발성 메모리에 데이터를 기입하거나 상기 비휘발성 메모리에 기입된 데이터를 읽도록 제어하는 컨트롤러; 및 상기 호스트로부터 파워를 공급받아 구동을 위한 파워를 제공하는 파워 모듈을 포함할 수 있으며, 상기 컨트롤러는 상기 호스트와 연결된 채널을 통해 분석하고자 하는 시점의 디버깅용 데이터를 상기 호스트로 전달할 수 있다.

Description

저장 장치 및 이의 디버깅 시스템 {STORAGE DEVICE AND DEBUGGING SYSTEM THEREOF}
본 출원은 저장 장치 및 이의 디버깅 시스템에 관한 것이다.
저장 매체는 다른 전자 장치와 결합되어 데이터를 전송하거나 또는 수신된 데이터를 저장하도록 구성된다.
기술이 발달함에 따라서 저장 매체의 성능이 향상됨에 따라, 저장 매체의 동작 속도가 증가하고, 저장 매체가 다양한 기능을 포함하도록 펌웨어가 구성된다. 이러한 동작 속도의 증가 또는 다양한 기능들은 저장 매체의 잦은 오류를 발생시킬 수 있다. 이러한 오류를 검출 또는 정정하기 위하여 오류 정보를 추출하기 위한 별도의 디버깅 기법이 요구된다.
이러한 디버깅 기법으로, 호스트에서 저장 장치 내에 구비된 디버깅 버퍼에 저장된 디버깅 로그를 수집하여 디버깅을 수행하는 방법, 저장 장치를 별도의 포트를 통해 디버깅 장비와 물리적으로 연결하고 분석에 필요한 데이터를 수집하여 디버깅을 수행하는 방법 등이 있다.
본 발명의 기술적 사상이 이루고자 하는 과제 중 하나는, 보다 편리하고 정확하게 디버깅을 수행할 수 있는 저장 장치 및 이의 디버깅 시스템을 제공하는 데 있다.
본 발명의 실시예에 따른 저장 장치는, 데이터를 기입하거나 또는 기입된 데이터를 출력하는 비휘발성 메모리; 호스트의 요청에 응답하여 상기 비휘발성 메모리에 데이터를 기입하거나 상기 비휘발성 메모리에 기입된 데이터를 읽도록 제어하는 컨트롤러; 및 상기 호스트로부터 파워를 공급받아 구동을 위한 파워를 제공하는 파워 모듈을 포함할 수 있으며, 상기 컨트롤러는 상기 호스트와 연결된 채널을 통해 분석하고자 하는 시점의 디버깅용 데이터를 상기 호스트로 전달할 수 있다.
본 발명의 실시예에 따른 저장 장치는, 데이터를 기입하거나 또는 기입된 데이터를 출력하는 비휘발성 메모리; 호스트의 요청에 응답하여 상기 비휘발성 메모리에 데이터를 기입하거나 상기 비휘발성 메모리에 기입된 데이터를 읽도록 제어하는 컨트롤러; 디버깅용 데이터를 디버깅 장비로 출력하는 디버깅 포트; 및 상기 디버깅용 데이터가 출력되는 경로를 스위칭하는 스위치를 포함할 수 있으며, 상기 컨트롤러는 분석하고자 하는 시점의 상기 디버깅용 데이터를 상기 디버깅 포트를 통해 상기 디버깅 장비로 전달하거나, 상기 호스트와 연결된 채널을 통해 상기 호스트로 전달하도록 상기 스위치를 제어할 수 있다.
본 발명의 실시예에 따른 디버깅 시스템은, 읽기 요청 또는 쓰기 요청에 따라 데이터를 기입하거나 또는 기입된 데이터를 출력하며, 분석하고자 하는 시점의 디버깅용 데이터를 제공하는 저장 장치; 및 상기 저장 장치로부터 수집한 디버깅용 데이터를 분석하여 디버깅을 수행하는 호스트를 포함할 수 있으며, 상기 저장 장치와 상기 호스트를 연결하는 채널을 통해 상기 디버깅용 데이터가 상기 호스트로 전달될 수 있다.
본 발명의 일 실시예에 따르면, 간단한 구성으로 보다 편리하고 정확하게 디버깅을 수행할 수 있는 저장 장치 및 이의 디버깅 시스템을 제공할 수 있다.
본 발명의 다양하면서도 유익한 장점과 효과는 상술한 내용에 한정되지 않으며, 본 발명의 구체적인 실시 형태를 설명하는 과정에서 보다 쉽게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 디버깅 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 저장 장치의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 저장 장치와 호스트의 연결을 도시하는 도면이다.
도 4는 본 발명의 일 실시예에 따라 SATA 프로토콜 기반의 저장 장치에 적용한 경우의 포트 사용 예를 도시하는 도면이다.
도 5는 본 발명의 일 실시예에 따라 SAS 프로토콜 기반의 저장 장치에 적용한 경우의 포트 사용 예를 도시하는 도면이다.
도 6은 본 발명의 다른 실시예에 따른 디버깅 시스템의 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 형태들을 다음과 같이 설명한다.
도 1은 본 발명의 일 실시예에 따른 디버깅 시스템의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 디버깅 시스템은 저장 장치(100) 및 호스트(200)를 포함할 수 있다.
저장 장치(100)는 외부의 요청에 따라 데이터를 저장하거나 데이터를 제공하기 위한 것으로, 컨트롤러(110), 버퍼 메모리(120), 비휘발성 메모리(130) 및 파워 모듈(140)을 포함할 수 있다.
컨트롤러(110)는 외부의 요청, 예를 들어 호스트(200)의 요청에 응답하여 버퍼 메모리(120) 및 비휘발성 메모리(130)를 제어할 수 있다.
예를 들어, 컨트롤러(110)는 호스트(200)의 요청에 따라 비휘발성 메모리(130)에 데이터를 기입하거나 비휘발성 메모리(130)에 기입된 데이터를 읽을 수 있다.
버퍼 메모리(120)는 호스트(200)로부터 제공되는 데이터를 일시적으로 저장할 수 있다.
예를 들어, 호스트(200)로부터의 쓰기 요청에 따라 제공되는 데이터는 일단 버퍼 메모리(120)에 저장된 후 비휘발성 메모리(130)에 저장될 수 있다.
예를 들어, 버퍼 메모리(120)는 디램(DRAM)으로 구현될 수 있다.
비휘발성 메모리(130)는 컨트롤러(110)의 제어에 따라 데이터를 기입하거나 또는 기입된 데이터를 출력할 수 있다.
예를 들어, 비휘발성 메모리(130)는 EEPROM (Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 다양한 메휘발성 메모리 소자들로 구현될 수 있다.
파워 모듈(140)은 호스트(200)로부터 파워를 공급받아 저장 장치(100)의 구동을 위한 파워를 제공할 수 있다.
호스트(200)는 저장 장치(100)의 디버깅을 위한 디버깅 수단으로서의 기능을 수행하며, 디버깅 모듈(210) 및 파워 서플라이(220)를 포함할 수 있다.
디버깅 모듈(210)은 저장 장치(100)로부터 저장 장치(100)의 디버깅을 위해 필요한 데이터를 수집하여 분석할 수 있다.
예를 들어, 디버깅 모듈(210)은 저장 장치(100)에 오류가 발생하여 분석하고자 하는 시점 또는 임의의 시점의 데이터를 수집할 수 있으며, JTAG 디버깅, SWD(Serial-Wire Debug) 디버깅 및 UART 디버깅 중 어느 하나에 따라 디버깅을 수행할 수 있다.
이와 같이, 디버깅 모듈(210)은 디버깅 로그가 아니라, 분석하고자 하는 시점의 저장 장치(100)의 상태 데이터를 수집하여 디버깅을 수행함으로써, 개발자 수준에서의 상세 분석이 가능하고, 저장 장치(100) 내에 별도의 디버깅 로그를 저장할 필요가 없어서 자원을 효율적으로 활용할 수 있으며, 디버깅 로그를 저장하기 위한 별도의 로직을 구현할 필요가 없어짐에 따라 개발 기간을 단축할 수 있다는 장점을 가진다.
파워 서플라이(220)는 저장 장치(100)로 파워를 공급할 수 있다.
상술한 저장 장치(100)와 호스트(200)는 디버깅을 위해 필요한 데이터를 전달하기 위한 채널을 필요로 한다. 여기서, 채널은 저장 장치(100)와 호스트(200) 사이에 데이터를 주고 받는 채널과는 별도로 마련될 필요가 있다. 이는 원하는 시점의 데이터를 훼손없이 수집하기 위함이다.
이를 위해, 저장 장치(100)는 디버깅용 데이터 전달을 위해 추가적인 디버깅 포트를 구비할 수 있다. 예를 들어, 저장 장치(100)의 PCB 상에 JTAG 포트, UART 포트 등과 같은 디버깅 포트가 구비되도록 할 수 있다.
그러나, 이 경우, PCB 설계의 부담이 따르고, 디버깅 수행 시마다 디버깅 포트에 디버깅 장비를 물리적으로 연결해야 하며, 온라인 디버깅을 수행할 수 없다는 한계가 있다.
따라서, 본 발명의 실시예에 따르면, 저장 장치(100)와 호스트(200)는 복수의 파워 라인 중에서 일부 파워 라인을 통해 디버깅용 데이터를 전달하도록 구성될 수 있다.
이를 통해, 호스트(200)는 저장 장치(100)에 구비된 컨트롤러(110)에 직접 연결하여 분석하고자 하는 시점의 저장 장치(100)의 데이터를 훼손없이 수집할 수 있다.
도 2는 본 발명의 일 실시예에 따른 저장 장치의 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 저장 장치(100)에 구비된 컨트롤러(110)는 프로세서(111), 버퍼 매니저(112), 메모리 I/F(Interface)(113), 호스트 I/F(114) 및 I2C I/F(115)를 포함할 수 있다.
프로세서(111)는 비휘발성 메모리(130)에 대한 읽기/쓰기 동작에 필요한 다양한 제어 정보를 메모리 I/F(113) 및 호스트 I/F(114)의 레지스터들에 전달할 수 있다.
프로세서(111)는 컨트롤러(110)의 다양한 제어 동작을 위해 제공되는 펌웨어에 따라 동작할 수 있다. 예를 들어, 프로세서(111)는 비휘발성 메모리(130)를 관리하기 위한 가비지 컬렉션(Garbage collection)이나, 주소 맵핑, 웨어 레벨링 등을 수행하기 위한 플래시 변환 계층(FTL)을 실행할 수 있다.
버퍼 매니저(112)는 버퍼 메모리(120)의 읽기 및 쓰기 동작들을 제어할 수 있다. 예를 들어, 버퍼 매니저(112)는 쓰기 데이터(Write data)나 읽기 데이터(Read data)를 버퍼 메모리(120)에 일시적으로 저장할 수 있다.
메모리 I/F(113)는 비휘발성 메모리(130)와 데이터를 교환할 수 있다. 메모리 I/F(113)는 버퍼 메모리(120)로부터 전달되는 쓰기 데이터를 비휘발성 메모리(130)에 기입할 수 있다. 그리고 메모리 채널을 통하여 제공되는 비휘발성 메모리(130)로부터의 읽기 데이터는 메모리 I/F(113)에 의해서 취합될 수 있다. 메모리 I/F(113)에서 취합된 읽기 데이터는 버퍼 매니저(112)에 의해 버퍼 메모리(120)에 저장될 수 있다.
호스트 I/F(114)는 호스트(도 1의 200)와의 통신을 수행할 수 있다. 예를 들어, 호스트 I/F(114)는 호스트와의 통신 채널을 제공할 수 있으며, 일 예로, 호스트와 저장 장치(100) 사이의 물리적 연결을 제공할 수 있다.
다시 말해, 호스트 I/F(114)는 호스트의 버스 포맷(Bus format)에 대응하여 저장 장치(100)와의 인터페이싱을 제공할 수 있다. 여기서, 호스트의 버스 포맷은 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 중 적어도 하나를 포함할 수 있다.
I2C(Inter-Integrated Circuit) I/F(115)는 복수의 마스터들에 의해서 적어도 하나의 슬레이브를 공유할 수 있는 버스 인터페이스이다. I2C I/F(115)는 컨트롤러(110)와 외부의 장치 사이에 인터페이싱을 제공할 수 있다.
I2C I/F(115)는 직렬 데이터 라인(SDA) 1개와 직렬 클록 라인(SCL) 1개를 구비하며 양방향 통신이 가능한 버스 인터페이스이다. I2C I/F(115)의 프로토콜에서 통신 상대는 버스 마스터가 통신 상대의 고유 어드레스를 지정함으로써 결정될 수 있다.
그러나, I2C I/F(115)는 SMBus(System Management Bus), UART(Universal Asynchronous Receiver Transmitter), SPI(Serial Peripheral Interface), HSIC(High-Speed Inter-Chip) 등과 같이 다양한 프로토콜들로 대체될 수 있다.
도 3은 본 발명의 일 실시예에 따른 저장 장치와 호스트의 연결을 도시하는 도면이다.
도 3을 참조하면, 저장 장치(100)와 호스트(200)는 파워 라인(31, 32, 33)을 통해 서로 물리적으로 연결될 수 있으며, 이를 통해 호스트(200)의 디버깅 모듈(210)은 저장 장치(100)의 컨트롤러(110)로부터 디버깅용 데이터를 수집하고, 호스트(200)의 파워 서플라이(220)는 저장 장치(100)의 파워모듈(140)로 파워를 공급할 수 있다.
여기서, 컨트롤러(110)와 디버깅 모듈(210) 사이를 연결하는 파워 라인(31)은 저장 장치(100)에 구비된 파워 라인 중에서 파워 공급 또는 기타 기능을 수행하기 위해 사용되지 않는 파워 라인일 수 있다.
예를 들어, SATA 프로토콜을 사용하는 저장 장치의 경우, 3.3V 라인 2개와 12V 라인 3개를 포함하여 총 5개의 파워 라인을 사용하지 않는다. 또한, SAS 프로토콜을 사용하는 저장 장치의 경우, 3.3V 라인 2개를 사용하지 않는다.
이처럼, 저장 장치(100)에서 사용되지 않는 파워 라인을 통해 디버깅용 데이터를 전달하도록 구성함으로써, 저장 장치(100)에서 별도의 디버깅 포트를 구비하지 않고 디버깅용 데이터를 전달할 수 있다.
도 4는 본 발명의 일 실시예에 따라 SATA 프로토콜 기반의 저장 장치에 적용한 경우의 포트 사용 예를 도시하는 도면으로, 구체적으로, 도 4의 (a)는 종래 기술에 따른 포트 사용을 도시하고, (b)는 본 발명에 따른 포트 사용을 도시한다.
종래 기술에 따르면, 도 4의 (a)에 도시된 바와 같이, 호스트는 15개의 포트를 구비할 수 있으며, 이 중 포트(P1, P2)와, 12V 라인에 연결되는 포트(P13, P14, P15)는 사용되지 않는다.
본 발명의 실시예에 따르면, 도 4의 (b)에 도시된 바와 같이, 포트(P1, P2)는 각각 데이터 입력(TDI)과 데이터 출력(TDO)을 위해 사용하고, 12V 라인에 연결되는 포트(P13, P14, P15)는 각각 클록(TCK), 모드 정보(TMS), 리셋 신호(TRST)를 위해 사용할 수 있다. 이에 따라, JTAG 디버깅이 가능하다.
도 5는 본 발명의 일 실시예에 따라 SAS 프로토콜 기반의 저장 장치에 적용한 경우의 포트 사용 예를 도시하는 도면으로, 구체적으로, 도 5의 (a)는 종래 기술에 따른 포트 사용을 도시하고, (b)는 본 발명에 따른 포트 사용을 도시한다.
종래 기술에 따르면, 도 5의 (a)에 도시된 바와 같이, 호스트는 15개의 포트를 구비할 수 있으며, 이 중 포트(P1, P2)는 사용되지 않는다.
본 발명의 실시예에 따르면, 도 5의 (b)에 도시된 바와 같이, 포트(P1, P2)는 각각 클록(SWCLK) 및 데이터 입출력(SWDIO)을 위해 사용할 수 있다. 이에 따라, SWD(Serial-Wire Debug) 또는 UART 디버깅이 가능하다.
상술한 실시예에서는 SATA 프로토콜 또는 SAS 프로토콜 기반의 저장 장치에 적용하는 경우를 설명하였으나, 본 발명이 반드시 이로 제한되는 것은 아니다. 예를 들어, PCIe 프로토콜 등과 같이 다양한 프로토콜 기반의 저장 장치에도 적용될 수 있다.
도 6은 본 발명의 다른 실시예에 따른 디버깅 시스템의 구성도이다.
도 6을 참조하면, 본 발명의 다른 실시예에 따른 디버깅 시스템은, 저장 장치(100)가 스위치(150) 및 디버깅 포트(160)를 더 포함하도록 구성될 수 있다.
디버깅 포트(160)는 저장 장치(100)로부터 디버깅용 데이터를 수집하기 위해 구비되는 추가적인 포트로서, 예를 들어 저장 장치(100)의 PCB 상에 구비된 JTAG 포트, UART 포트 등으로 구현될 수 있다.
디버깅 포트(160)에는 디버깅 장비(300)가 물리적으로 연결될 수 있으며, 디버깅 장비(300)는 디버깅 포트(160)를 통해 디버깅용 데이터를 수집할 수 있다.
스위치(150)는 컨트롤러(110)로부터의 디버깅용 데이터가 출력되는 경로를 스위칭하기 위한 것으로, 디버깅용 데이터를 디버깅 장비(300) 또는 호스트(200)에 구비된 디버깅 모듈(210)로 선택적으로 전달하기 위해 스위칭을 수행할 수 있다.
예를 들어, 저장 장치(100)가 ON되면, 컨트롤러(110)는 호스트(200)가 디버깅 모듈(210)에 의한 디버깅을 지원하는지 여부를 확인하고, 확인 결과에 따라 스위치(150)가 디버깅 장비(300) 또는 디버깅 모듈(210)로 디버깅용 데이터를 전달할 수 있도록 스위칭할 수 있다.
도 6에 도시된 디버깅 시스템에 따르면, 호스트(200)가 디버깅을 위한 디버깅 모듈(210)을 별도로 구비하지 않는 경우에는 디버깅 장비(300)를 통한 디버깅이 가능하도록 할 수 있다.
이에 따라, 저장장치(100)가 본 발명이 적용되지 않은 호스트와 연결된 경우에도 디버깅 버퍼를 사용하지 않고 디버깅을 수행할 수 있도록 할 수 있다.
본 발명은 상술한 실시형태 및 첨부된 도면에 의해 한정되는 것이 아니며 첨부된 청구범위에 의해 한정하고자 한다. 따라서, 청구범위에 기재된 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 당 기술분야의 통상의 지식을 가진 자에 의해 다양한 형태의 치환, 변형 및 변경이 가능할 것이며, 이 또한 본 발명의 범위에 속한다고 할 것이다.
100: 저장 장치
110: 컨트롤러
111: 프로세서
112: 버퍼 메모리
113: 메모리 I/F
114: 호스트 I/F
115: I2C I/F
120: 버퍼 메모리
130: 비휘발성 메모리
140: 파워모듈
150: 스위치
160: 디버깅 포트
200: 호스트
210: 디버깅 모듈
220: 파워 서플라이
300: 디버깅 장비

Claims (10)

  1. 데이터를 기입하거나 또는 기입된 데이터를 출력하는 비휘발성 메모리;
    호스트의 요청에 응답하여 상기 비휘발성 메모리에 데이터를 기입하거나 상기 비휘발성 메모리에 기입된 데이터를 읽도록 제어하는 컨트롤러; 및
    상기 호스트로부터 파워를 공급받아 구동을 위한 파워를 제공하는 파워 모듈을 포함하며,
    상기 컨트롤러는 상기 호스트와 연결된 채널을 통해 분석하고자 하는 시점의 디버깅용 데이터를 상기 호스트로 전달하고,
    상기 연결된 채널은 복수의 파워 라인 중에서 적어도 하나의 파워 라인을 포함하는 저장 장치.
  2. 제 1 항에 있어서,
    상기 저장 장치와 상기 호스트는 상기 복수의 파워 라인을 통해 물리적으로 연결되며,
    상기 컨트롤러는 상기 복수의 파워 라인 중 상기 적어도 하나의 파워 라인을 통해 상기 디버깅용 데이터를 상기 호스트로 전달하는 저장 장치.
  3. 제 2 항에 있어서,
    상기 적어도 하나의 파워 라인은 파워 공급을 위해 사용되지 않는 파워 라인인 저장 장치.
  4. 제 2 항에 있어서,
    상기 저장 장치가 SATA 프로토콜을 사용하는 경우, 사용되지 않는 파워 라인은 각각 데이터 입력, 데이터 출력, 클록, 모드 정보 및 리셋 신호의 전달을 위해 사용되는 저장 장치.
  5. 제 2 항에 있어서,
    상기 저장 장치가 SAS 프로토콜을 사용하는 경우, 사용되지 않는 파워 라인은 각각 클록 및 데이터 입출력을 위해 사용되는 저장 장치.
  6. 읽기 요청 또는 쓰기 요청에 따라 데이터를 기입하거나 또는 기입된 데이터를 출력하며, 분석하고자 하는 시점의 디버깅용 데이터를 제공하는 저장 장치; 및
    상기 저장 장치로부터 수집한 디버깅용 데이터를 분석하여 디버깅을 수행하는 호스트를 포함하며,
    상기 저장 장치와 상기 호스트를 연결하는 채널을 통해 상기 디버깅용 데이터가 상기 호스트로 전달되고,
    상기 연결하는 채널은 복수의 파워 라인 중에서 적어도 하나의 파워 라인을 포함하는 디버깅 시스템.
  7. 제 6 항에 있어서,
    상기 저장 장치는 SATA 프로토콜, SAS 프로토콜 및 PCIe 프로토콜 중 어느 하나를 기반으로 하는 디버깅 시스템.
  8. 삭제
  9. 삭제
  10. 삭제
KR1020180007002A 2018-01-19 2018-01-19 저장 장치 및 이의 디버깅 시스템 KR102518370B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180007002A KR102518370B1 (ko) 2018-01-19 2018-01-19 저장 장치 및 이의 디버깅 시스템
US16/103,179 US10817405B2 (en) 2018-01-19 2018-08-14 Storage device and debugging system thereof
CN201910035084.5A CN110058809B (zh) 2018-01-19 2019-01-15 存储装置及其调试系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180007002A KR102518370B1 (ko) 2018-01-19 2018-01-19 저장 장치 및 이의 디버깅 시스템

Publications (2)

Publication Number Publication Date
KR20190088659A KR20190088659A (ko) 2019-07-29
KR102518370B1 true KR102518370B1 (ko) 2023-04-05

Family

ID=67298640

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180007002A KR102518370B1 (ko) 2018-01-19 2018-01-19 저장 장치 및 이의 디버깅 시스템

Country Status (3)

Country Link
US (1) US10817405B2 (ko)
KR (1) KR102518370B1 (ko)
CN (1) CN110058809B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11204850B2 (en) * 2020-05-14 2021-12-21 Micron Technology, Inc. Debugging a memory sub-system with data transfer over a system management bus
US11269515B2 (en) 2020-05-14 2022-03-08 Micron Technology, Inc. Secure authentication for debugging data transferred over a system management bus
CN113076274B (zh) * 2021-04-30 2022-08-09 成都优博创通信技术有限公司 一种光模块以及软件程序获取方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170024266A1 (en) * 2015-07-20 2017-01-26 Kabushiki Kaisha Toshiba Memory system, information processing system, and host device

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100623279B1 (ko) 2004-12-17 2006-09-14 한국전자통신연구원 내장형 시스템 디버깅 장치 및 방법
KR20100026775A (ko) * 2008-09-01 2010-03-10 삼성전자주식회사 디버깅 포트를 구비하는 임베디드 시스템 및 그 구동 방법
TWI480731B (zh) 2010-06-30 2015-04-11 Insyde Software Corp 轉接裝置及經由該轉接裝置之除錯方法
US8601315B2 (en) * 2010-11-01 2013-12-03 Freescale Semiconductor, Inc. Debugger recovery on exit from low power mode
US8880779B2 (en) 2011-08-05 2014-11-04 Apple Inc. Debugging a memory subsystem
US8856744B2 (en) 2011-08-31 2014-10-07 Nvidia Corporation HDMI-muxed debug cable methods and apparatuses
US9342259B2 (en) * 2012-09-10 2016-05-17 Texas Instruments Incorporated Nonvolatile logic array and power domain segmentation in processing device
KR102108374B1 (ko) * 2013-10-25 2020-05-08 삼성전자주식회사 스토리지 시스템 및 그것의 비신호 분석 방법
US10437694B2 (en) 2014-02-21 2019-10-08 Rolf Segger Real time terminal for debugging embedded computing systems
US9419376B1 (en) * 2014-04-17 2016-08-16 Google Inc. Multipurpose, electronically versatile connector for wearable electronics
US10474618B2 (en) * 2014-09-04 2019-11-12 Western Digital Technologies, Inc. Debug data saving in host memory on PCIE solid state drive
KR101678933B1 (ko) * 2014-11-18 2016-12-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US10528410B2 (en) 2014-12-16 2020-01-07 Intel Corporation Apparatus, method and system to exchange error information in a unified protocol communication
CN105224454B (zh) * 2015-09-25 2018-06-05 华为技术有限公司 一种调试方法、多核处理器和调试设备
US9989592B2 (en) 2015-12-18 2018-06-05 Intel IP Corporation Interfaces for wireless debugging
US9817595B2 (en) * 2016-01-28 2017-11-14 Apple Inc. Management of peak power consumed by multiple memory devices
KR102652293B1 (ko) * 2016-03-03 2024-03-29 에스케이하이닉스 주식회사 메모리 관리방법
ITUA20163024A1 (it) * 2016-04-29 2017-10-29 St Microelectronics Srl Dispositivo a semiconduttore e procedimento di debugging corrispondente
KR102644275B1 (ko) * 2016-05-19 2024-03-06 삼성전자주식회사 리프레쉬 리드 동작을 수행하는 불휘발성 메모리 장치를 제어하는 메모리 콘트롤러의 동작 방법
CN106788597B (zh) * 2016-12-15 2018-10-16 深圳市飞鸿光电子有限公司 基于电力线传输的olt系统及其调试方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170024266A1 (en) * 2015-07-20 2017-01-26 Kabushiki Kaisha Toshiba Memory system, information processing system, and host device

Also Published As

Publication number Publication date
CN110058809B (zh) 2022-06-03
US10817405B2 (en) 2020-10-27
CN110058809A (zh) 2019-07-26
KR20190088659A (ko) 2019-07-29
US20190227907A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
US10387239B2 (en) Detecting memory failures in the runtime environment
KR102518370B1 (ko) 저장 장치 및 이의 디버깅 시스템
US20180088854A1 (en) 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
KR102229024B1 (ko) 스스로 에러를 검출하고 로그를 저장할 수 있는 데이터 저장 장치와 이를 포함하는 시스템
KR20190041331A (ko) 스토리지 장치, 컴퓨팅 시스템, 그리고 그것의 디버깅 방법
KR20150037002A (ko) Fpga 기반의 비실장형 스토리지 테스트 장치
CN103635969A (zh) 包含存储器系统控制器的设备和相关方法
KR101654807B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US20120246385A1 (en) Emulating spi or 12c prom/eprom/eeprom using flash memory of microcontroller
CN113326216B (zh) 存储器子系统控制器及相关方法和存储媒体
JP6313245B2 (ja) 半導体記憶装置
KR20150125486A (ko) 저장 장치, 상기 저장 장치를 포함하는 컴퓨팅 시스템 및 상기 저장 장치의 동작 방법
KR102180972B1 (ko) 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
TWI528375B (zh) 快閃記憶體轉接器的控制器及使用該控制器的快閃記憶體儲存裝置
CN102568602B (zh) 闪速存储器发展系统
CN108733479A (zh) 卸载固态硬盘卡的方法以及使用该方法的装置
CN105068965A (zh) 基于I2C总线的NAND Flash存储方法及系统
US20230266963A1 (en) Firmware updating method, apparatus and data system
TWI794997B (zh) 固態硬碟裝置的除錯方法及裝置以及電腦程式產品
US20240045765A1 (en) Storage device and storage system
KR101265233B1 (ko) 초기 저장장치 생산 및 테스트용 호스트 버스 아답터
Chen et al. Design and implementation of a universal offline reading system for embedded device firmware
US20230393959A1 (en) Out-of-band management method for storage apparatus, baseboard management controller and storage apparatus
US20240061614A1 (en) Error detection and correction in a controller
CN104077079A (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