KR101554326B1 - 저장 장치 및 그것의 동작 방법 - Google Patents

저장 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR101554326B1
KR101554326B1 KR1020090044590A KR20090044590A KR101554326B1 KR 101554326 B1 KR101554326 B1 KR 101554326B1 KR 1020090044590 A KR1020090044590 A KR 1020090044590A KR 20090044590 A KR20090044590 A KR 20090044590A KR 101554326 B1 KR101554326 B1 KR 101554326B1
Authority
KR
South Korea
Prior art keywords
debug host
debug
authentication information
bus
host
Prior art date
Application number
KR1020090044590A
Other languages
English (en)
Other versions
KR20100125743A (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 KR1020090044590A priority Critical patent/KR101554326B1/ko
Priority to US12/783,953 priority patent/US8832843B2/en
Publication of KR20100125743A publication Critical patent/KR20100125743A/ko
Priority to US14/465,509 priority patent/US9330268B2/en
Application granted granted Critical
Publication of KR101554326B1 publication Critical patent/KR101554326B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • 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/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 실시 예에 따른 저장 장치는, 제 1 및 제 2 버스, 제 1 버스를 통해 저장 회로와 통신하며, 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고, 디버그 호스트와 연결될 때, 디버그 호스트로의 송신 채널은 차단되며, 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고, 디버그 호스트의 인증 결과에 따라, 디버그 호스트로의 송신 채널을 승인한다.

Description

저장 장치 및 그것의 동작 방법{STORAGE DEVICE AND OPERATING METHOD THEREOF}
본 발명은 저장 장치 및 그것의 동작 방법에 관한 것이다.
저장 장치(storage device)는 데이터를 저장해 두고 필요할 때 꺼내어 읽어볼 수 있는 기억장치이다. 저장 장치는 하드 디스크 드라이브(HDD, hard disk drive), 광학 디스크 드라이브(ODD, optical disk drive), 자기 테이프, 반도체 메모리 장치(semiconductor memory device) 등을 포함한다.
반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 SRAM, DRAM, SDRAM 등이 있다. 불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터가 소멸하지 않는 메모리 장치이다. 불휘발성 메모리 장치에는 ROM, PROM, EPROM, EEPROM, 플래시 메모리 장치, PRAM, MRAM, RRAM, FRAM 등이 있다. 플래시 메모리 장치는 크게 노어 타입과 낸드 타입으로 구분된다.
본 발명의 목적은 향상된 보안성을 갖는 저장 장치를 제공하는 데에 있다.
본 발명의 실시 예에 따른 저장 장치는 제 1 및 제 2 버스; 상기 제 1 버스를 통해 저장 회로와 통신하며, 상기 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고, 상기 디버그 호스트와 연결될 때, 상기 디버그 호스트로의 송신 채널은 차단되며, 상기 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고, 상기 디버그 호스트의 인증 결과에 따라, 상기 디버그 호스트로의 송신 채널을 승인한다.
실시 예로서, 상기 디버그 호스트로 더미 데이터를 출력함으로써, 상기 디버그 호스트로의 송신 채널을 차단한다.
실시 예로서, 상기 인증 정보는 상기 저장 장치 내부에서 생성되는 내부 인증 정보와 비교된다.
실시 예로서, 상기 제 2 버스에 연결되는 디버그 제어부를 더 포함하고, 상기 디버그 호스트가 상기 디버그 제어부에 연결될 때, 상기 디버그 제어부는 상기 수신 채널을 승인하며 상기 송신 채널을 차단하고, 그리고 제어 신호에 응답하여 상기 송신 채널을 승인하도록 구성되는 디버그 제어부를 더 포함한다.
실시 예로서, 상기 디버그 제어부는 상기 디버그 호스트의 연결을 검출하여 검출 신호를 생성하는 연결 검출부; 그리고 상기 디버그 호스트 및 상기 프로세서 사이의 프로토콜 변환을 수행하고, 상기 검출 신호에 응답하여 상기 송신 채널을 차단하도록 구성되는 프로토콜 변환부를 포함한다.
실시 예로서, 상기 프로토콜 변환부는 상기 제어 신호가 비활성 상태이면 더미 데이터를 출력하고, 상기 제어 신호가 활성 상태이면, 상기 송신 채널을 제공하는 마스크부를 포함한다.
실시 예로서, 상기 더미 데이터는 상수(constant) 데이터를 포함한다.
실시 예로서, 상기 제 1 버스를 통해 상기 프로세서와 통신하는 인증부를 더 포함하고, 상기 디버그 제어부는 상기 인증 정보를 상기 제 2 버스, 상기 프로세서, 그리고 상기 제 1 버스를 통해 상기 인증부에 전달하도록 구성된다.
실시 예로서, 상기 인증부는 내부 인증 정보를 생성하고, 상기 인증 정보 및 상기 내부 인증 정보를 비교하고, 그리고 비교 결과에 따라 상기 제어 신호를 활성화하도록 구성된다.
실시 예로서, 상기 인증부는 시드를 생성하도록 구성되는 시드 생성부; 상기 시드에 기반하여 상기 내부 인증 정보를 생성하도록 구성되는 내부 인증 정보 생성부; 상기 인증 정보 및 상기 내부 인증 정보를 비교하도록 구성되는 인증 정보 체크부; 그리고 상기 비교 결과에 따라 상기 제어 신호를 활성화하도록 구성되는 인증 제어부를 포함한다.
실시 예로서, 상기 인증 정보 및 상기 내부 인증 정보가 동일하면, 상기 인증부는 상기 제어 신호를 활성화한다.
실시 예로서, 상기 인증 정보 및 상기 내부 인증 정보 사이의 상호 연관도가 미리 설정된 값에 대응하면, 상기 인증부는 상기 제어 신호를 활성화한다.
실시 예로서, 상기 제어 신호는 상기 인증부로부터 상기 디버그 제어부에 직접 전달되도록 구성된다.
실시 예로서, 상기 제어 신호는 상기 제 1 버스, 상기 프로세서, 그리고 상기 제 2 버스를 통해 상기 디버그 제어부에 전달되도록 구성된다.
실시 예로서, 상기 디버그 호스트를 인증하는 동안, 상기 프로세서는 상기 저장 회로와 통신하는 것이 가능하다.
실시 예로서, 상기 제 1 및 제 2 버스, 상기 저장 회로, 그리고 상기 프로세서는 반도체 드라이브(SSD, Solid State Drive)를 형성한다.
실시 예로서, 상기 제 1 및 제 2 버스, 상기 저장 회로, 그리고 상기 프로세서는 메모리 카드를 형성한다.
본 발명의 실시 예에 따른 저장 장치는 저장 회로; 그리고 상기 저장 회로를 제어하도록 구성되는 컨트롤러를 포함하고, 상기 컨트롤러는 제 1 및 제 2 버스; 상기 제 1 버스를 통해 상기 저장 회로와 통신하며, 상기 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고, 상기 디버그 호스트와 연결될 때, 상기 디버그 호스트로의 송신 채널은 차단되며, 상기 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고, 상기 디버그 호스트의 인증 결과에 따라, 상기 디버그 호스트로의 송신 채널을 승인한다.
본 발명의 실시 예에 따른 저장 장치의 동작 방법은 디버그 버스에 디버그 호스트가 연결되는지를 검출하고; 상기 검출 결과에 따라, 상기 디버그 호스트로의 송신 채널을 차단하는 동안 상기 디버그 호스트를 인증하고; 그리고 상기 인증 결과에 따라, 상기 송신 채널을 승인하는 것을 포함하고, 상기 디버그 호스트가 인증되는 동안, 시스템 버스를 통해 쓰기 또는 읽기 동작을 수행하는 것이 가능하다.
실시 예로서, 상기 디버그 호스트를 인증하는 것은 상기 디버그 호스트로부터 인증 정보를 수신하고; 그리고 상기 인증 정보를 내부 인증 정보와 비교하는 것을 포함한다.
본 발명의 실시 예에 따른 저장 장치는, 디버그 호스트로의 송신 채널을 차단하는 동안 디버그 호스트를 인증한다. 그리고, 인증 결과에 따라 디버그 호스트로의 송신 채널이 승인된다. 따라서, 저장 장치의 보안성이 향상된다.
본 발명의 실시 예에 따른 저장 장치는, 제 1 및 제 2 버스, 제 1 버스를 통해 저장 회로와 통신하며, 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고, 디버그 호스트와 연결될 때, 디버그 호스트로의 송신 채널은 차단되며, 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고, 디버그 호스트의 인증 결과에 따라, 디버그 호스트로의 송신 채널을 승인한다.
본 발명의 실시 예에 따른 저장 장치는, 저장 회로,그리고 저장 회로를 제어하도록 구성되는 컨트롤러를 포함하고, 컨트롤러는 제 1 및 제 2 버스, 제 1 버스를 통해 저장 회로와 통신하며, 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고, 디버그 호스트와 연결될 때, 디버그 호스트로 의 송신 채널은 차단되며, 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고, 디버그 호스트의 인증 결과에 따라, 디버그 호스트로의 송신 채널을 승인한다.
본 발명의 실시 예에 따른 저장 장치의 동작 방법은 디버그 버스에 디버그 호스트가 연결되는지를 검출하고, 검출 결과에 따라, 디버그 호스트로의 송신 채널을 차단하는 동안 디버그 호스트를 인증하고, 그리고 인증 결과에 따라, 송신 채널을 승인하는 것을 포함하고, 디버그 호스트가 인증되는 동안, 시스템 버스를 통해 쓰기 또는 읽기 동작을 수행하는 것이 가능하다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 저장 장치(10)를 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 실시 예에 따른 저장 장치(10)는 컨트롤러(100) 및 저장 회로(200)를 포함한다.
컨트롤러(100)는 호스트(Host) 및 저장 회로(200)에 연결된다. 컨트롤러(100)는 저장 회로(200)로부터 읽은 데이터를 호스트(Host)에 전달하고, 호스트(Host)로부터 전달되는 데이터를 저장 회로(200)에 저장하도록 구성된다. 컨트롤러(100)는 디버그 호스트(Debug Host)와 통신하도록 구성된다. 디버그 호스트는 컨트롤러(100)의 동작을 디버깅할 것이다. 컨트롤러(100)의 구성 및 동작은 도 2 내지 7을 참조하여 더 상세하게 설명된다.
저장 회로(200)는 컨트롤러(100)의 제어에 응답하여 동작하도록 구성된다. 예시적으로, 저장 회로(200)는 컨트롤러(100)로부터 데이터를 전달받아 저장하도록 구성될 것이다. 저장 회로(200)는 컨트롤러(100)의 제어에 응답하여 저장되어 있는 데이터를 읽도록 구성될 것이다.
예시적으로, 저장 회로(200)는 복수의 디스크(disk)를 포함할 것이다. 저장 회로(200)는 복수의 디스크에 자기력(magnetic power)을 이용하여 데이터를 저장하도록 구성될 것이다. 예시적으로, 컨트롤러(100) 및 저장 회로(200)는 하드 디스크 드라이브(HDD, hard disk drive)를 형성할 것이다.
예시적으로, 저장 회로(200)는 광학력(optical power)을 이용하여 디스크(disk)에 데이터를 저장하도록 구성될 것이다. 예시적으로, 컨트롤러(100) 및 저장 회로(200)는 광학 디스크 드라이브(ODD, optical disk drive)를 형성할 것이다.
예시적으로, 저장 회로(200)는 반도체 메모리를 이용하여 데이터를 저장하도록 구성될 것이다. 예시적으로, 저장 회로(200)는 데이터를 저장하기 위한 메모리 셀 어레이, 메모리 셀 어레이에 데이터를 기입 및 독출하기 위한 읽기 쓰기 회로, 외부로부터 전달되는 어드레스를 디코딩하여 읽기 쓰기 회로에 전달하는 어드레스 디코더, 저장 회로(200)의 제반 동작을 제어하기 위한 제어 로직 등을 포함할 것이다.
예시적으로, 저장 회로(200)는 DRAM, SRAM, SDRAM 등과 같은 휘발성 메모리를 포함할 것이다. 예시적으로, 저장 회로(200)는 ROM, PROM, EPROM, EEPROM, 플래시 메모리, PRAM, MRAM, RRAM, FRAM 등과 같은 불휘발성 메모리를 포함할 것이다.
컨트롤러(100) 및 저장 회로(200)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 컨트롤러(100) 및 저장 회로(200)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 것이다. 예를 들면, 컨트롤러(100) 및 저장 회로(200)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD), 유니버설 플래시 기억장치(UFS) 등을 구성할 것이다.
다른 예로서, 컨트롤러(100) 및 저장 회로(200)는 하나의 반도체 장치로 집적되어 반도체 드라이브(SSD, Solid State Drive)를 구성할 것이다. 예시적으로, 반도체 드라이브(SSD)는 반도체 메모리에 데이터를 저장하도록 구성되는 장치를 포함할 것이다. 메모리 시스템(10)이 반도체 드라이브(SSD)로 이용되는 경우, 메모리 시스템(10)에 연결된 호스트(Host)의 동작 속도는 획기적으로 개선될 것이다.
다른 예로서, 저장 장치(10)는 컴퓨터, 휴대용 컴퓨터, UMPC, 워크스테이션, 넷북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱 스 네트워크를 구성하는 다양한 전자 장치들 중 하나, 또는 반도체 드라이브(SSD, Solid State Drive) 또는 메모리 카드와 같은 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나에 적용될 것이다.
다른 예로서, 저장 회로(200) 또는 저장 장치(10)는 다양한 형태들의 패키지로 실장 될 수 있다. 예를 들면, 저장 회로(200) 또는 저장 장치(10)는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화되어 실장될 것이다.
도 2는 도 1의 컨트롤러(100)를 보여주는 블록도이다. 도 2를 참조하면, 컨트롤러(100)는 프로세서(110), 제 1 버스(120), 제 2 버스(130), 호스트 인터페이스(140), 인터페이스(150), 메모리(160), 인증부(170), 그리고 디버그 제어부(180)를 포함한다.
프로세서(110)는 컨트롤러(100)의 제반 동작을 제어하도록 구성된다. 프로세서(110)는 제 1 버스(120)를 통해 저장 회로(200) 및 기능 블록들(140~170)과 통신하도록 구성된다. 예시적으로, 프로세서(110)는 저장 회로(200)에 대한 읽기 또는 동작이 수행되도록 제어할 것이다. 예시적으로, 프로세서(110)는 컨트롤러(100) 및 저장 회로(200)를 구동하기 위한 드라이버를 실행하도록 구성될 것이다. 예를 들면, 프로세서(110)는 호스트 드라이버를(host driver) 실행하도록 구성될 것이다. 예를 들면, 프로세서(110)는 다양한 펌웨어(firmware)를 실행하도록 구성될 것이다. 예를 들면, 프로세서(110)는 다양한 소프트웨어(software)를 실행하도록 구성될 것이다.
호스트 인터페이스(140)는 제 1 버스(120)에 연결된다. 호스트 인터페이스(140)는 호스트(Host) 및 컨트롤러(100) 사이의 데이터 교환을 수행하기 위한 프로토콜을 포함할 것이다. 예시적으로, 호스트 인터페이스(140)는 USB, MMC, PCI-E, ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI, ESDI, 그리고 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 포함할 것이다.
인터페이스(150)는 제 1 버스(120)에 연결된다. 인터페이스(150)는 컨트롤러(100) 및 저장 회로(200) 사이의 통신을 위한 프로토콜을 포함할 것이다.
메모리(160)는 제 1 버스(120)에 연결된다. 메모리(160)는 컨트롤러(100)의 동작 메모리로 동작할 것이다. 예를 들면, 프로세서(110)는 메모리(160)를 이용하여 호스트 드라이버를 실행할 것이다. 예를 들면, 프로세서(110)는 메모리(160)를 이용하여 다양한 펌웨어를 실행할 것이다. 예를 들면, 프로세서(110)는 메모리(160)를 이용하여 다양한 소프트웨어를 실행할 것이다.
인증부(170)는 제 1 버스(120)에 연결된다. 인증부(170)는 컨트롤러(100)에 연결되는 디버그 호스트를 인증하도록 구성된다. 디버그 호스트가 인증되면, 인증부(170)는 제어 신호(EN)를 활성화하도록 구성된다. 예시적으로, 인증부(170)는 디버그 호스트로부터 제 2 버스(130), 프로세서, 그리고 제 1 버스(120)를 통해 인증 정보를 전달받을 것이다. 인증부(170)는 내부 인증 정보를 생성할 것이다. 인증부(170)는 인증 정보 및 내부 인증 정보를 비교할 것이다. 비교 결과에 따라, 인증부(170)는 제어 신호(EN)를 활성화할 것이다.
디버그 제어부(180)는 제 2 버스(130)를 통해 프로세서(110)와 통신하도록 구성된다. 디버그 제어부(180)는 디버그 호스트의 연결을 검출하고, 디버그 호스트의 검출 및 인증 결과에 따라 디버그 호스트와의 통신 채널을 제어하도록 구성된다. 예시적으로, 디버그 호스트가 연결되면, 디버그 제어부(180)는 디버그 호스트로부터의 수신 채널(DR)을 승인하고, 디버그 호스트로의 송신 채널(DT)을 차단할 것이다. 그리고, 디버그 제어부(180)는 디버그 호스트에 의한 디버깅을 차단할 것이다. 수신 채널(DR)을 통해, 디버그 제어부(180)는 디버그 호스트로부터 인증 정보를 수신할 것이다. 수신된 인증 정보는 제 2 버스(130), 프로세서(110), 그리고 제 1 버스(120)를 통해 인증부(170)에 전달될 것이다.
디버그 호스트가 인증되면, 디버그 제어부(180)는 디버그 호스트로의 송신 채널(DT)을 송신할 것이다. 그리고, 디버그 제어부(180)는 디버그 호스트에 의한 디버깅을 승인할 것이다. 예를 들면, 디버그 제어부(180)는 제어 신호(EN)에 응답하여 디버그 호스트로의 송신 채널(DT)을 승인할 것이다.
디버그 제어부(180)는 디버그 호스트와의 통신을 위한 프로토콜을 포함할 것 이다. 예를 들면, 디버그 제어부(180)는 JTAG (Joint Test Action Group) 프로토콜, serial wire 프로토콜 등을 이용하여 디버그 호스트와 통신하도록 구성될 것이다. 디버그 제어부(180)는 DAP (Direct Access Protocol) 등을 이용하여 프로세서(110)와 통신하도록 구성될 것이다.
제 1 버스(120)는 프로세서(110) 및 기능 블록들(140~170) 사이의 통신 채널을 제공한다. 예시적으로, 제 1 버스(120)는 컨트롤러(100)가 동작하기 위한 통신 채널을 제공할 것이다. 예시적으로, 제 1 버스(120)는 시스템 버스일 것이다. 예를 들면, 프로세서(110)는 제 1 버스(120)를 통해 저장 회로(200)에 읽기 또는 쓰기 커맨드를 전달할 것이다. 프로세서(110)는 제 1 버스(120)를 통해 저장 회로(200)에 쓰기 데이터가 전달되도록 제어할 것이다. 프로세서(110)는 제 1 버스(120)를 통해 저장 회로(200)로부터 읽기 데이터가 전달되도록 제어할 것이다.
제 2 버스(130)는 프로세서(110) 및 디버그 제어부(180) 사이에 통신 채널을 제공한다. 제 2 버스(130)는 컨트롤러(100)의 디버깅을 위해 제공되는 버스일 것이다. 예시적으로, 제 2 버스(130)는 디버그 버스일 것이다. 예를 들면, 제 2 버스(130)는 프로세서(110) 및 디버그 제어부(180) 사이에만 채널을 제공하도록 구성될 것이다. 예를 들면, 디버그 호스트로부터의 디버그 커맨드는 제 2 버스(130)를 통해 프로세서(110)에 전달될 것이다. 예를 들면, 디버그 호스트로부터의 중지(break) 또는 재개(resume) 커맨드는 제 2 버스(130)를 통해 프로세서(110)에 전달될 것이다. 프로세서(110)는 디버그 호스트로부터의 디버그 커맨드에 응답하여, 제 2 버스를 통해 디버그 호스트에 디버그 정보를 전달하도록 구성될 것이다. 예를 들면, 프로세서(110)는 제 2 버스를 통해 디버그 호스트에 코드들을 전달하도록 구성될 것이다.
제 1 버스(120) 및 제 2 버스(130)는 분리된 버스일 것이다. 디버그 호스트는 제 2 버스(130)를 통해서만 컨트롤러(100)의 디버깅을 수행할 수 있도록 구성될 것이다. 예를 들면, 프로세서(110)는 제 2 버스에는 기억 배치도를 할당하며, 제 1 버스에는 기억 배치도를 할당하지 않도록 구성될 것이다. 기억 배치도는 저장 장치(10)의 각 구성 요소들이 어떻게 사용되는지를 나타낼 것이다. 예를 들면, 기억 배치도는 메모리 맵일 것이다. 따라서, 제 1 버스를 통해 저장 장치(10)를 디버깅하는 것은 금지될 것이다. 제 2 버스에 연결된 디버그 호스트는, 할당된 기억 배치도를 이용하여 저장 장치(10)를 디버깅하는 것이 가능할 것이다. 따라서, 제 2 버스(130)에 디버그 제어부(180)를 구비함으로써, 디버그 호스트의 디버깅 동작을 제어하는 것이 가능할 것이다.
인증부(170)는 디지털 회로, 아날로그 회로, 또는 디지털 및 아날로그 회로가 조합된 형태의 하드웨어로 구현될 수 있음이 이해될 것이다. 인증부(170)는 하드웨어, 소프트 웨어, 또는 하드웨어 및 소프트웨어가 조합된 형태로 구현될 수 있음이 이해될 것이다.
디버그 제어부(180)는 디지털 회로, 아날로그 회로, 또는 디지털 및 아날로그 회로가 조합된 형태의 하드웨어로 구현될 수 있음이 이해될 것이다. 디버그 제어부(180)는 하드웨어, 소프트 웨어, 또는 하드웨어 및 소프트웨어가 조합된 형태로 구현될 수 있음이 이해될 것이다.
컨트롤러(100)는 오류 정정 블록을 추가적으로 포함할 수 있다. 오류 정정 블록은 저장 회로(200)로부터 읽어진 데이터의 오류를 검출하고, 정정하도록 구성될 것이다. 예시적으로, 오류 정정 블록이 추가적으로 제공되는 경우, 오류 정정 블록은 제 1 버스(110)에 연결되도록 구성될 것이다.
도 3은 도 2의 인증부(170)를 보여주는 블록도이다. 도 2를 참조하면, 인증부(170)는 시드(seed) 생성부(171), 내부 인증 정보(Internal Authentication Information) 생성부(172), 인증 정보(AI, Authentication Information) 체크부(173), 그리고 인증 제어부(174)를 포함한다.
시드 생성부(171)는 내부 인증 정보 생성을 위한 시드를 생성하도록 구성된다. 예를 들면, 시드 생성부(171)는 프로그램 회로를 포함할 것이다. 예를 들면, 시드 생성부(171)는 퓨즈, 전기 퓨즈, 프로그램 레지스터 등을 포함할 것이다. 따라서, 시드 생성부(171)를 프로그램함으로써, 다양한 시드를 제공하는 것이 가능할 것이다. 시드 생성부(171)에서 생성되는 시드는 내부 인증 정보 생성부(172)에 제공될 것이다.
내부 인증 정보 생성부(172)는 시드 생성부(171)로부터 제공되는 시드를 이용하여, 내부 인증 정보를 생성하도록 구성된다. 내부 인증 정보 생성부(172)에서 생성되는 내부 인증 정보는 디버그 호스트의 인증을 위하여 이용될 것이다. 예시적으로, 내부 인증 정보는 시드 생성부(171)로부터 제공되는 시드를 이용하여 생성되는 패스워드일 것이다. 예시적으로, 시드 생성부(171)는 SHA-1, 슈도 랜덤 생성(Pseudo Random Generation) 등과 같은 알고리즘을 이용하여 내부 인증 정보를 생성하도록 구성될 것이다. 내부 인증 정보 생성부(172)에서 생성되는 내부 인증 정보는 인증 정보 체크부(173)에 제공된다.
인증 정보 체크부(173)는 제 1 버스(120)를 통해 디버그 호스트의 인증 정보를 수신하도록 구성된다. 인증 정보 체크부(173)는 내부 인증 정보 생성부(172)로부터 내부 인증 정보를 제공받는다. 인증 정보 체크부(173)는 인증 정보 및 내부 인증 정보를 비교하도록 구성된다.
인증 제어부(174)는 시드 생성부(171), 내부 인증 정보 생성부(172), 그리고 인증 정보 체크부(173)를 제어하도록 구성된다. 인증 제어부(174)는 인증 정보 및 내부 인증 정보의 비교 결과에 따라 제어 신호(EN)를 활성화하도록 구성된다.
예시적으로, 인증 정보 및 내부 인증 정보가 동일하면, 인증 제어부(174)는 제어 신호(EN)를 활성화할 것이다. 다른 예로서, 인증 정보 및 내부 인증 정보의 상호 연관도가 미리 설정된 값에 대응하면, 인증 제어부(174)는 제어 신호(EN)를 활성화할 것이다. 제어 신호(EN)가 활성화되면, 디버그 호스트가 인증되었음을 나타낼 것이다.
도 4는 도 2의 디버그 제어부(180)를 보여주는 블록도이다. 도 4를 참조하면, 디버그 제어부(180)는 연결 검출부(181) 및 프로토콜 변환부(183)를 포함한다.
연결 검출부(181)는 디버그 호스트의 연결을 검출하도록 구성된다. 예시적으로, 디버그 호스트가 디버그 제어부(180)에 연결되면, 연결 검출부(181)는 검출 신호(DET)를 생성할 것이다. 검출 신호(DET)는 프로토콜 변환부(183)에 전달될 것이다. 예시적으로, 연결 검출부(181)는 커패시턴스의 변화, 전압의 변화, 전류의 변 화, 또는 신호의 인가 등을 통해 디버그 호스트의 연결을 검출하도록 구성될 것이다.
프로토콜 변환부(183)는 연결 검출부(181)로부터 검출 신호(DET)를 전달받는다. 검출 신호(DET)가 활성화되면, 프로토콜 변환부(183)는 디버그 호스트로의 송신 채널(DT)을 차단하고, 디버그 호스트로부터의 수신 채널(DR)을 승인한다. 프로토콜 변환부(183)는 수신 채널(DR)을 통해 디버그 호스트로부터 인증 정보를 전달받는다. 수신된 인증 정보는 제 2 버스(130), 프로세서(110), 그리고 제 1 버스(120)를 통해 인증부(170)에 전달된다. 제어 신호(EN)가 활성화되면, 프로토콜 변환부(183)는 송신 채널(DT)을 승인하도록 구성된다.그리고, 제어 신호(EN)가 활성화되면, 프로토콜 변환부(183)는 디버그 호스트에 의한 디버깅을 승인하도록 구성된다. 즉, 제어 신호(EN)가 활성화되면, 디버그 호스트가 저장 장치(10)를 디버깅하는 것이 가능할 것이다.
프로토콜 변환부(183)는 디버그 호스트 및 프로세서(110) 사이에서 인터페이싱할 것이다. 프로토콜 변환부(183)는 제어 신호(EN)에 응답하여 송신 채널(DT)을 차단 또는 승인하기 위한 마스크부(185)를 포함한다.
도 5는 도 4의 마스크부(185)를 보여주는 블록도이다. 도 5를 참조하면, 마스크부(185)는 멀티플렉서(MUX) 및 마스커(187)를 포함한다. 멀티플렉서(MUX)는 제어 신호(EN)에 응답하여 제 2 버스(130)로부터 전달되는 데이터 또는 마스커(187)의 출력을 송신 채널(DT)에 선택적으로 연결하도록 구성된다.
마스커(187)는 더미 데이터를 생성하도록 구성될 것이다. 예를 들면, 마스 커(187)는 상수(constant) 데이터를 생성하도록 구성될 것이다. 다른 예로서, 마스커(187)는 미리 설정된 패턴의 데이터를 생성하도록 구성될 것이다. 즉, 더미 데이터를 송신 채널(DT)로 제공함으로써, 송신 채널(DT)이 차단될 것이다.
도 6은 도 1의 저장 장치(10)의 동작을 설명하기 위한 순서도이다. 도 6을 참조하면, S110 단계에서, 디버그 호스트의 연결이 검출된다. 디버그 제어부(180, 도 4 참조)의 연결 검출부(181)는 디버그 호스트의 연결을 검출할 것이다. 디버그 호스트가 검출되면, 디버그 제어부(180)는 검출 신호(DET)를 생성할 것이다.
S120 단계에서, 송신 채널이 차단되고 인증이 수행된다. 검출 신호(DET)에 응답하여, 프로토콜 변환부(183)는 송신 채널(DT)을 차단할 것이다. 그리고, 프로토콜 변환부(183)는 디버그 호스트에 의한 디버깅을 차단할 것이다. 예시적으로, 프로토콜 변환부(183)는 송신 채널(DT)로 더미 데이터를 출력할 것이다. 수신 채널(DR)을 통해 디버그 호스트로부터 인증 정보가 수신될 것이다. 수신된 인증 정보를 이용하여, 디버그 호스트가 인증될 것이다.
S130 단계에서, 디버그 호스트가 인증되었는지 판별된다. 디버그 호스트가 인증되면, S140 단계에서, 송신 채널(DT)이 승인될 것이다. 그리고, 디버그 호스트에 의한 디버깅이 승인될 것이다. 따라서, 디버그 호스트는 송신 및 수신 채널(DT, DR)을 이용하여, 저장 장치(10)의 동작을 모니터하는 것이 가능할 것이다. 또한, 디버그 호스트는 송신 및 수신 채널(DT, DR)을 이용하여, 저장 장치(10)의 동작을 제어하는 것이 가능할 것이다. 예를 들면, 저장 장치(10)에서 구동되는 소프트웨어에 설정되어 있는 중단점(break point)을 이용하여, 디버그 호스트는 저장 장 치(10)의 동작을 중단 및 재개하는 것이 가능할 것이다.
디버그 호스트가 인증되지 않으면, S150 단계에서, 송신 채널의 차단이 유지된다. 그리고, 디버그 호스트에 의한 디버깅의 차단 또한 유지될 것이다. 예시적으로, 디버그 제어부(180)의 프로토콜 변환부(183)는 송신 채널(DT)로 더미 데이터를 출력하는 것을 유지할 것이다. 따라서, 디버그 호스트는 저장 장치(10)의 동작을 모니터하는 것이 불가능할 것이다. 그리고, 디버그 호스트는 저장 장치(10)의 동작을 제어하는 것 또한 불가능할 것이다. 따라서, 인증되지 않은 디버그 호스트에 의한 디버깅이 방지될 것이다.
예시적으로, 디버그 호스트의 연결이 분리되면, 연결 검출부(181)는 검출 신호(DET)를 비활성할 것이다. 검출 신호(DET)가 비활성되면, 프로토콜 변환부(183)는 송신 채널(DT)로 더미 데이터를 출력하는 것을 중지할 것이다.
도 7은 도 6의 인증 단계(S120)를 설명하기 위한 순서도이다. 도 7을 참조하면, S121 단계에서, 디버그 호스트로부터 인증 정보가 수신된다. 예시적으로, 디버그 호스트는 수신 채널(DR, 도 2 참조)을 통해 디버그 제어부(180)에 인증 정보를 전달할 것이다. 예시적으로, 인증 정보는 SHA-1, 슈도 랜덤 생성(Pseudo Random Generation) 등과 같은 알고리즘을 이용하여 생성된 패스워드일 것이다. 예시적으로, 디버그 호스트는, 저장 회로(10)의 인증부(170)의 시드 생성부(171, 도 3 참조)에 저장되어 있는 시드값에 대응하는 인증 정보를 디버그 제어부(180)에 전달할 것이다.
S123 단계에서, 수신된 인증 정보는 인증부(170)로 전달된다. 예시적으로, 수신된 인증 정보는 제 2 버스(130), 프로세서(110), 그리고 제 1 버스(120)를 통해 인증부(170)에 전달될 것이다.
S125 단계에서, 수신된 인증 정보 및 내부 인증 정보가 비교된다. 예시적으로, 내부 인증 정보는 시드 생성부(171)로부터 제공되는 시드를 이용하여, 인증 정보 생성부(172)에서 생성될 것이다. 인증 정보 및 내부 인증 정보는 인증 정보 체크부(173)에서 비교될 것이다.
S127 단계에서, 비교 결과에 따라 제어 신호(EN)가 조절될 것이다. 예시적으로, 인증 정보 및 내부 인증 정보가 동일하면, 인증 제어부(174)는 제어 신호(EN)를 활성할 것이다. 다른 예로서, 인증 정보 및 내부 인증 정보의 상호 연관도가 미리 설정된 값에 대응하면, 인증 제어부(174)는 제어 신호(EN)를 활성할 것이다. 인증 정보 및 내부 인증 정보를 비교하여 디버그 호스트를 인증하는 방법은 다양하게 변형 및 응용될 수 있으며, 상술된 방법들에 한정되지 않음이 이해될 것이다.
예시적으로, 제어 신호(EN)는 인증부(170)로부터 디버그 제어부(180)로 직접 전달될 것이다. 다른 예로서, 제어 신호(EN)는 제 1 버스(120), 프로세서(110), 그리고 제 2 버스(130)를 통해 디버그 제어부(180)에 전달될 수 있음이 이해될 것이다. 디버그 제어부(180)는 제어 신호(EN)에 응답하여, 송신 채널(DT)을 승인할 것이다.
도 6 및 7을 참조하여 설명된 바와 같이, 디버그 호스트가 디버그 제어부(180)에 연결되고, 디버그 제어부(180), 제 2 버스(130), 프로세서(110), 그리고 인증부(170)를 통해 디버그 호스트가 인증되고, 그리고 디버그 제어부(180)에 의해 송신 채널(DT)이 승인되는 동안, 프로세서(110)는 제 1 버스(120)를 통해 저장 회로(200)와 통신하는 것이 가능할 것이다. 즉, 디버그 호스트가 제 2 버스를 통해 연결되면, 저장 장치(10)는 정상적으로 동작할 것이다. 또한, 디버그 호스트가 인증되면 송신 채널(DT)이 승인되며, 저장 장치(10)는 디버그 호스트의 제어에 따라 정상적으로 동작하도록 구성될 것이다. 따라서, 저장 장치(10)를 디버깅하는 것이 가능함이 이해될 것이다.
예를 들면, 호스트는 저장 장치(10)에 읽기 또는 쓰기 명령을 전달할 것이다. 저장 장치(10)는 호스트로부터 전달되는 읽기 또는 쓰기 명령을 수행할 것이다. 디버그 호스트는 저장 장치(10)가 읽기 또는 쓰기 명령을 수행하는 것을 모니터하는 것이 가능할 것이다. 또한, 읽기 또는 쓰기 명령을 수행하기 위한 코드들에 형성되어 있는 중단점(break point)을 이용하여, 디버그 호스트는 읽기 또는 쓰기 명령의 수행을 중단 및 재개하는 것이 가능할 것이다. 즉, 디버그 호스트는 저장 장치(10)를 디버깅하는 것이 가능할 것이다.
디버그 호스트는 저장 장치(10)의 배경 동작(background operation)을 디버깅하는 것이 가능할 것이다. 예를 들면, 디버그 호스트는 저장 장치(10)의 가비지 컬렉션, 머지, 마모도 관리 등과 같은 배경 동작을 모니터, 중단 및 재개하는 것이 가능할 것이다.
디버그 호스트가 디버깅할 수 있는 저장 장치(10)의 동작은 상술된 동작들에 한정되지 않음이 이해될 것이다.
도 8은 도 1의 저장 장치(10)를 포함하는 컴퓨팅 시스템(300)을 보여주는 블 록도이다. 도 8을 참조하면, 본 발명의 실시 예에 따른 컴퓨팅 시스템(300)은 중앙 처리 장치(310), 램(320, RAM, Random Access Memory), 사용자 인터페이스(330), 전원(340), 그리고 저장 장치(10)를 포함한다.
저장 장치(10)는 시스템 버스(350)를 통해, 중앙처리장치(310), 램(320), 사용자 인터페이스(330), 그리고 전원(340)에 전기적으로 연결된다. 사용자 인터페이스(330)를 통해 제공되거나, 중앙 처리 장치(310)에 의해서 처리된 데이터는 저장 장치(10)에 저장된다. 저장 장치(10)는 컨트롤러(100) 및 저장 회로(200)를 포함한다. 도 1 내지 7을 참조하여 설명된 바와 같이, 저장 장치(10)는 디버그 호스트를 인증하는 동안 디버그 호스트로의 송신 채널을 차단하도록 구성될 것이다. 그리고, 디버그 호스트가 인증되면, 저장 장치(10)는 디버그 호스트로의 송신 채널을 승인하도록 구성될 것이다.
저장 장치(10)가 반도체 드라이브(SSD)로 장착되는 경우, 컴퓨팅 시스템(300)의 부팅 속도가 획기적으로 빨라질 수 있다. 도면에 도시되지 않았지만, 본 발명에 따른 시스템은 응용 칩셋(Application Chipset), 카메라 이미지 프로세서(Camera Image Processor) 등을 더 포함할 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 이해될 것이다.
도 9는 도 1의 저장 회로(200)의 실시 예를 보여주는 블록도이다. 도 9를 참조하면, 저장 회로(200)는 프로세서(210), 제 1 버스(220), 제 2 버스(230), 인터페이스(240), 저장 유닛(250), 메모리(260), 인증부(270), 그리고 디버그 제어부(280)를 포함한다.
저장 회로(200)에서 동작하도록 구성되는 것을 제외하면, 프로세서(210), 제 1 및 제 2 버스(220, 230), 메모리(260), 인증부(270), 그리고 디버그 제어부(280)는 도 1 내지 7을 참조하여 설명된 프로세서(110), 제 1 및 제 2 버스(120, 130), 메모리(160), 인증부(170), 그리고 디버그 제어부(180)와 마찬가지로 동작하도록 구성될 것이다. 따라서, 상세한 설명은 생략된다.
인터페이스(240)는 컨트롤러(200) 및 저장 회로(200) 사이의 통신에 필요한 프로토콜을 포함하도록 구성될 것이다.
저장부(250)는 데이터를 저장하도록 구성될 것이다. 예시적으로, 저장부(250)는 복수의 디스크(disk)로 구성될 것이다. 저장 회로(200)는 저장부(250)에 자기력(magnetic power)을 이용하여 데이터를 저장하도록 구성될 것이다. 다른 예로서, 저장 회로(200)는 저장부(250)에 광학력(optical power)을 이용하여 데이터를 저장하도록 구성될 것이다.
예시적으로, 저장부(250)는 데이터를 저장하기 위한 반도체 메모리 셀들을 포함할 것이다. 즉, 저장 회로(200)는 반도체 메모리를 형성할 것이다. 예시적으로, 저장부(250)는 어레이 형태로 배열되는 반도체 메모리 셀들을 포함할 것이다. 예시적으로, 저장부(250)는 DRAM, SRAM, SDRAM 등과 같은 휘발성 메모리 셀들을 포함할 것이다. 예시적으로, 저장부(250)는 ROM, PROM, EPROM, EEPROM, 플래시 메모리, PRAM, MRAM, RRAM, FRAM 등과 같은 불휘발성 메모리 셀들을 포함할 것이다.
예시적으로, 저장 회로(200)는 저장부(250)에 데이터를 기입 및 독출하기 위한 읽기 쓰기 회로를 더 포함할 수 있다. 예시적으로, 저장 회로(200)는 외부(예를 들면, 컨트롤러(100))로부터 전달되는 어드레스를 디코딩하기 위한 어드레스 디코더를 더 포함할 수 있다.
저장 회로(200)는 인증부(270) 및 디버그 제어부(280)를 이용하여, 디버그 호스트를 인증하도록 구성될 것이다. 디버그 호스트가 인증되는 동안, 디버그 호스트로의 송신 채널(DT) 및 디버그 호스트에 의한 디버깅은 차단될 것이다. 디버그 호스트로부터의 수신 채널(DR)을 통해, 디버그 호스트로부터 인증 정보가 전달될 것이다. 인증 정보는 내부 인증 정보와 비교될 것이다. 디버그 호스트가 인증되면, 디버그 호스트로의 송신 채널(DT)이 승인될 것이다. 그리고, 디버그 호스트에 의한 디버깅이 승인될 것이다. 따라서, 디버그 호스트는 저장 회로(200)를 모니터 및 제어하는 것이 가능할 것이다. 디버그 호스트가 인증되는 동안, 프로세서(210)는 제 1 버스(220)를 통해 저장부(250)와 통신하는 것이 가능할 것이다. 즉, 저장 회로(200)는 정상적으로 동작할 것이다.
인증부(270)는 디지털 회로, 아날로그 회로, 또는 디지털 및 아날로그 회로가 조합된 형태의 하드웨어로 구현될 수 있음이 이해될 것이다. 인증부(270)는 하드웨어, 소프트 웨어, 또는 하드웨어 및 소프트웨어가 조합된 형태로 구현될 수 있음이 이해될 것이다.
디버그 제어부(280)는 디지털 회로, 아날로그 회로, 또는 디지털 및 아날로그 회로가 조합된 형태의 하드웨어로 구현될 수 있음이 이해될 것이다. 디버그 제어부(280)는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어가 조합된 형태로 구현될 수 있음이 이해될 것이다.
상술한 바와 같이, 디버그 호스트가 연결되면, 저장 장치(10) 또는 저장 회로(200)는 디버그 호스트로의 송신 채널을 차단하고, 디버그 호스트에 의한 디버깅을 차단하고, 그리고 디버그 호스트를 인증하도록 구성된다. 디버그 호스트가 인증되면, 저장 장치(10) 또는 저장 회로(200)는 디버그 호스트로의 송신 채널을 승인하고, 디버그 호스트에 의한 디버깅을 승인하도록 구성된다. 또한, 디버그 호스트가 승인되는 동안, 저장 장치(10) 또는 저장 회로(200)는 정상적으로 동작할 것이다. 따라서, 인증된 디버그 호스트에 한해 디버깅을 승인하는 것이 가능하다.
상술한 실시 예에서, 저장 장치(10), 저장 회로(200), 그리고 저장부(250)의 용어들을 사용하여, 본 발명에 따른 실시 예가 설명되었다. 저장 장치(10), 저장 회로(200), 그리고 저장부(250)의 용어는 구성 요소들을 구분하기 위해 사용된 것이며, 그 명칭에 의해 각 구성 요소들의 구조, 기능, 특성 등이 한정되지 않음이 이해될 것이다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 자명하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 2는 도 1의 컨트롤러를 보여주는 블록도이다.
도 3은 도 2의 인증부를 보여주는 블록도이다.
도 4는 도 2의 디버그 제어부를 보여주는 블록도이다.
도 5는 도 4의 마스크부를 보여주는 블록도이다.
도 6은 도 1의 저장 장치의 동작을 설명하기 위한 순서도이다.
도 7은 도 6의 인증 단계를 설명하기 위한 순서도이다.
도 8은 도 1의 저장 장치를 포함하는 컴퓨팅 시스템을 보여주는 블록도이다.

Claims (20)

  1. 제 1 및 제 2 버스;
    상기 제 1 버스를 통해 저장 회로와 통신하며, 상기 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고,
    상기 디버그 호스트와 연결될 때, 상기 디버그 호스트로의 송신 채널은 차단되며, 상기 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고,
    상기 디버그 호스트의 인증 결과에 따라, 상기 디버그 호스트로의 송신 채널을 승인하고,
    상기 디버그 호스트로 더미 데이터를 출력함으로써, 상기 디버그 호스트로의 송신 채널을 차단하는 저장 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 인증 정보는 상기 저장 장치 내부에서 생성되는 내부 인증 정보와 비교되는 저장 장치.
  4. 제 1 및 제 2 버스;
    상기 제 1 버스를 통해 저장 회로와 통신하며, 상기 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고,
    상기 디버그 호스트와 연결될 때, 상기 디버그 호스트로의 송신 채널은 차단되며, 상기 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고,
    상기 디버그 호스트의 인증 결과에 따라, 상기 디버그 호스트로의 송신 채널을 승인하고,
    상기 제 2 버스에 연결되는 디버그 제어부를 더 포함하고,
    상기 디버그 호스트가 상기 디버그 제어부에 연결될 때, 상기 디버그 제어부는 상기 수신 채널을 승인하며 상기 송신 채널을 차단하고, 그리고 제어 신호에 응답하여 상기 송신 채널을 승인하도록 구성되는 디버그 제어부를 더 포함하는 저장 장치.
  5. 제 4 항에 있어서,
    상기 디버그 제어부는 상기 디버그 호스트의 연결을 검출하여 검출 신호를 생성하는 연결 검출부; 그리고
    상기 디버그 호스트 및 상기 프로세서 사이의 프로토콜 변환을 수행하고, 상기 검출 신호에 응답하여 상기 송신 채널을 차단하도록 구성되는 프로토콜 변환부를 포함하는 저장 장치.
  6. 제 5 항에 있어서,
    상기 프로토콜 변환부는
    상기 제어 신호가 비활성 상태이면 더미 데이터를 출력하고, 상기 제어 신호가 활성 상태이면, 상기 송신 채널을 제공하는 마스크부를 포함하는 저장 장치.
  7. 제 6 항에 있어서,
    상기 더미 데이터는 상수(constant) 데이터를 포함하는 저장 장치.
  8. 제 5 항에 있어서,
    상기 제 1 버스를 통해 상기 프로세서와 통신하는 인증부를 더 포함하고,
    상기 디버그 제어부는 상기 인증 정보를 상기 제 2 버스, 상기 프로세서, 그리고 상기 제 1 버스를 통해 상기 인증부에 전달하도록 구성되는 저장 장치.
  9. 제 8 항에 있어서,
    상기 인증부는 내부 인증 정보를 생성하고, 상기 인증 정보 및 상기 내부 인증 정보를 비교하고, 그리고 비교 결과에 따라 상기 제어 신호를 활성화하도록 구성되는 저장 장치.
  10. 제 9 항에 있어서,
    상기 인증부는
    시드를 생성하도록 구성되는 시드 생성부;
    상기 시드에 기반하여 상기 내부 인증 정보를 생성하도록 구성되는 내부 인증 정보 생성부;
    상기 인증 정보 및 상기 내부 인증 정보를 비교하도록 구성되는 인증 정보 체크부; 그리고
    상기 비교 결과에 따라 상기 제어 신호를 활성화하도록 구성되는 인증 제어부를 포함하는 저장 장치.
  11. 제 9 항에 있어서,
    상기 인증 정보 및 상기 내부 인증 정보가 동일하면, 상기 인증부는 상기 제어 신호를 활성화하는 저장 장치.
  12. 제 9 항에 있어서,
    상기 인증 정보 및 상기 내부 인증 정보 사이의 상호 연관도가 미리 설정된 값에 대응하면, 상기 인증부는 상기 제어 신호를 활성화하는 저장 장치.
  13. 제 9 항에 있어서,
    상기 제어 신호는
    상기 인증부로부터 상기 디버그 제어부에 직접 전달되도록 구성되는 저장 장치.
  14. 제 9 항에 있어서,
    상기 제어 신호는
    상기 제 1 버스, 상기 프로세서, 그리고 상기 제 2 버스를 통해 상기 디버그 제어부에 전달되도록 구성되는 저장 장치.
  15. 제 1 및 제 2 버스;
    상기 제 1 버스를 통해 저장 회로와 통신하며, 상기 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고,
    상기 디버그 호스트와 연결될 때, 상기 디버그 호스트로의 송신 채널은 차단되며, 상기 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고,
    상기 디버그 호스트의 인증 결과에 따라, 상기 디버그 호스트로의 송신 채널을 승인하고,
    상기 디버그 호스트를 인증하는 동안, 상기 프로세서는 상기 저장 회로와 통신하는 것이 허용되는 저장 장치.
  16. 제 1 및 제 2 버스;
    상기 제 1 버스를 통해 저장 회로와 통신하며, 상기 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고,
    상기 디버그 호스트와 연결될 때, 상기 디버그 호스트로의 송신 채널은 차단되며, 상기 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고,
    상기 디버그 호스트의 인증 결과에 따라, 상기 디버그 호스트로의 송신 채널을 승인하고,
    상기 제 1 및 제 2 버스, 상기 저장 회로, 그리고 상기 프로세서는 반도체 드라이브(SSD, Solid State Drive)를 형성하는 저장 장치.
  17. 제 1 및 제 2 버스;
    상기 제 1 버스를 통해 저장 회로와 통신하며, 상기 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고,
    상기 디버그 호스트와 연결될 때, 상기 디버그 호스트로의 송신 채널은 차단되며, 상기 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고,
    상기 디버그 호스트의 인증 결과에 따라, 상기 디버그 호스트로의 송신 채널을 승인하고,
    상기 제 1 및 제 2 버스, 상기 저장 회로, 그리고 상기 프로세서는 메모리 카드를 형성하는 저장 장치.
  18. 저장 회로; 그리고
    상기 저장 회로를 제어하도록 구성되는 컨트롤러를 포함하고,
    상기 컨트롤러는
    제 1 및 제 2 버스;
    상기 제 1 버스를 통해 상기 저장 회로와 통신하며, 상기 제 2 버스를 통해 외부의 디버그 호스트와 통신하도록 구성되는 프로세서를 포함하고,
    상기 디버그 호스트와 연결될 때, 상기 디버그 호스트로의 송신 채널은 차단되며, 상기 디버그 호스트로부터의 수신 채널을 통해 인증 정보가 수신되고,
    상기 디버그 호스트의 인증 결과에 따라, 상기 디버그 호스트로의 송신 채널을 승인하고,
    상기 디버그 호스트로 더미 데이터를 출력함으로써, 상기 디버그 호스트로의 송신 채널을 차단하는 저장 장치.
  19. 저장 장치의 동작 방법에 있어서:
    디버그 버스에 디버그 호스트가 연결되는지를 검출하고;
    상기 검출 결과에 따라, 상기 디버그 호스트로의 송신 채널을 차단하는 동안 상기 디버그 호스트를 인증하고; 그리고
    상기 인증 결과에 따라, 상기 송신 채널을 승인하는 것을 포함하고,
    상기 디버그 호스트가 인증되는 동안, 시스템 버스를 통해 쓰기 또는 읽기 동작을 수행하는 것이 허용되고,
    상기 디버그 호스트를 인증하는 것은
    상기 디버그 호스트로부터 인증 정보를 수신하고; 그리고
    상기 인증 정보를 내부 인증 정보와 비교하는 것을 포함하는 동작 방법.
  20. 삭제
KR1020090044590A 2009-05-21 2009-05-21 저장 장치 및 그것의 동작 방법 KR101554326B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090044590A KR101554326B1 (ko) 2009-05-21 2009-05-21 저장 장치 및 그것의 동작 방법
US12/783,953 US8832843B2 (en) 2009-05-21 2010-05-20 Storage devices with secure debugging capability and methods of operating the same
US14/465,509 US9330268B2 (en) 2009-05-21 2014-08-21 Storage devices with secure debugging capability and methods of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090044590A KR101554326B1 (ko) 2009-05-21 2009-05-21 저장 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20100125743A KR20100125743A (ko) 2010-12-01
KR101554326B1 true KR101554326B1 (ko) 2015-09-18

Family

ID=43125322

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090044590A KR101554326B1 (ko) 2009-05-21 2009-05-21 저장 장치 및 그것의 동작 방법

Country Status (2)

Country Link
US (2) US8832843B2 (ko)
KR (1) KR101554326B1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101554326B1 (ko) * 2009-05-21 2015-09-18 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US9703950B2 (en) 2012-03-30 2017-07-11 Irdeto B.V. Method and system for preventing and detecting security threats
US9172701B2 (en) 2012-12-27 2015-10-27 Netiq Corporation Techniques for secure debugging and monitoring
KR101678933B1 (ko) * 2014-11-18 2016-12-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9535117B2 (en) * 2015-03-06 2017-01-03 Intel Corporation System debug using an all-in-one connector
KR102268699B1 (ko) 2015-06-29 2021-06-28 삼성전자주식회사 저장 장치의 동작 방법, 호스트 장치의 동작 방법, 그리고 저장 장치 및 호스트 장치를 포함하는 사용자 시스템의 동작 방법
US10254337B2 (en) * 2015-10-27 2019-04-09 Marvell World Trade Ltd. System and method for establishing a trusted diagnosis/debugging agent over a closed commodity device
KR102415388B1 (ko) * 2015-11-13 2022-07-01 삼성전자주식회사 시스템 온 칩 및 그것의 보안 디버깅 방법
US10354609B2 (en) 2016-03-02 2019-07-16 Samsung Electronics Co., Ltd. Functional mode aware resource management
KR102538258B1 (ko) 2016-07-25 2023-05-31 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 처리 시스템
CN107273722A (zh) * 2017-06-21 2017-10-20 厦门盈趣汽车电子有限公司 一种平台应用自动销毁***及方法
FR3072195B1 (fr) 2017-10-11 2019-10-18 Stmicroelectronics (Rousset) Sas Procede de gestion d'un retour de produit pour analyse et produit correspondant
CN108491735A (zh) * 2018-03-07 2018-09-04 京信通信***(中国)有限公司 Nor Flash安全存储方法、装置和设备
EP3997837A4 (en) * 2019-08-23 2023-03-29 Siemens Aktiengesellschaft METHOD AND SYSTEM FOR MANAGING SECURITY ON A MOBILE STORAGE DEVICE
CN110753051B (zh) * 2019-10-22 2021-06-22 四川长虹电器股份有限公司 一种户外智能广告机安全调试***及调试方法
US11653204B2 (en) 2020-01-21 2023-05-16 Samsung Electronics Co., Ltd. Sideband authentication of storage device
KR20220051750A (ko) * 2020-10-19 2022-04-26 삼성전자주식회사 장치간 물리적 인터페이스의 트레이닝을 위한 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014838A (ja) * 2000-06-30 2002-01-18 Fujitsu Ltd Lsi,lsiを搭載した電子装置、デバッグ方法、lsiのデバッグ装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030110430A1 (en) * 2001-12-10 2003-06-12 International Business Machines Corporation Method and system for use of a field programmable gate array (FPGA) function within an application specific integrated circuit (ASIC) to enable creation of a debugger client within the ASIC
US7266848B2 (en) * 2002-03-18 2007-09-04 Freescale Semiconductor, Inc. Integrated circuit security and method therefor
US6769622B1 (en) * 2003-03-14 2004-08-03 Stmicroelectronics, Inc. System and method for simulating universal serial bus smart card device connected to USB host
US7248069B2 (en) * 2003-08-11 2007-07-24 Freescale Semiconductor, Inc. Method and apparatus for providing security for debug circuitry
US8255700B2 (en) 2004-06-29 2012-08-28 Qualcomm Incorporated Lockstep mechanism to ensure security in hardware at power-up
JP2006259810A (ja) * 2005-03-15 2006-09-28 Matsushita Electric Ind Co Ltd デバッグ装置
US7730545B2 (en) * 2005-05-23 2010-06-01 Arm Limited Test access control for secure integrated circuits
KR20070000070A (ko) 2005-06-27 2007-01-02 신승엽 무취 크레파스의 제조방법
US20070168729A1 (en) * 2005-12-06 2007-07-19 Mediatek Inc. System and method for testing and debugging electronic apparatus in single connection port
US8010843B2 (en) * 2005-12-14 2011-08-30 American Megatrends, Inc. System and method for debugging a target computer using SMBus
JP2007249323A (ja) * 2006-03-14 2007-09-27 Matsushita Electric Ind Co Ltd マイクロコンピュータ
JP4048382B1 (ja) * 2006-09-01 2008-02-20 富士ゼロックス株式会社 情報処理システムおよびプログラム
DE102006046456B4 (de) * 2006-09-29 2009-11-05 Infineon Technologies Ag Schaltkreis-Anordnung, Verfahren zum Hochfahren einer Schaltkreis-Anordnung, Verfahren zum Betreiben einer Schaltkreis-Anordnung und Computerprogrammprodukte
US8156317B2 (en) * 2008-05-16 2012-04-10 Ati Technologies Ulc Integrated circuit with secure boot from a debug access port and method therefor
US8296469B2 (en) * 2008-12-31 2012-10-23 Intel Corporation Scalable method and apparatus for link with reconfigurable ports
US8332641B2 (en) * 2009-01-30 2012-12-11 Freescale Semiconductor, Inc. Authenticated debug access for field returns
US8276199B2 (en) * 2009-04-09 2012-09-25 Freescale Semiconductor, Inc. Method and device for secure test port authentication
KR101554326B1 (ko) * 2009-05-21 2015-09-18 삼성전자주식회사 저장 장치 및 그것의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002014838A (ja) * 2000-06-30 2002-01-18 Fujitsu Ltd Lsi,lsiを搭載した電子装置、デバッグ方法、lsiのデバッグ装置

Also Published As

Publication number Publication date
KR20100125743A (ko) 2010-12-01
US20140366153A1 (en) 2014-12-11
US20100299467A1 (en) 2010-11-25
US9330268B2 (en) 2016-05-03
US8832843B2 (en) 2014-09-09

Similar Documents

Publication Publication Date Title
KR101554326B1 (ko) 저장 장치 및 그것의 동작 방법
JP6140998B2 (ja) セキュアデータを保護するメモリ装置及びセキュアデータを利用したメモリ装置の認証方法
TWI620095B (zh) 用以確保存取保護計畫之裝置及有形機器可讀媒體
KR101991905B1 (ko) 불휘발성 메모리, 불휘발성 메모리의 읽기 방법 및 불휘발성 메모리를 포함하는 메모리 시스템
KR101797107B1 (ko) 비휘발성 메모리 장치와 상기 비휘발성 메모리 장치를 포함하는 메모리 시스템
KR102496988B1 (ko) 반도체 메모리 장치의 컨트롤러 및 이의 동작 방법
US11755406B2 (en) Error identification in executed code
US11163912B2 (en) Data attestation in memory
TWI754050B (zh) 微控制器、具有該微控制器的記憶系統及其操作方法
WO2020197821A1 (en) Validating data stored in memory using cryptographic hashes
US11847209B2 (en) Memory device and system
CN107656698B (zh) 数据存储装置和具有数据存储装置的数据处理***
US20190199735A1 (en) Device and method for verifying integrity of firmware
US11228443B2 (en) Using memory as a block in a block chain
US20200310776A1 (en) Over-the-air update validation
KR102180972B1 (ko) 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
US9311257B2 (en) Semiconductor memory device, memory system and method of operating the same
KR20220045758A (ko) 저장 장치 및 그 동작 방법
CN110069934B (zh) 存储器存储***、主机***验证方法及存储器存储装置
US20220138114A1 (en) Using memory as a block in a block chain
KR20180060121A (ko) 데이터 저장 장치 및 데이터 처리 시스템
US20130117574A1 (en) Memory device and system with secure key memory and access logic
US20200104512A1 (en) Memory system

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180831

Year of fee payment: 4