KR101925870B1 - Ssd 콘트롤러 및 그의 제어 방법 - Google Patents

Ssd 콘트롤러 및 그의 제어 방법 Download PDF

Info

Publication number
KR101925870B1
KR101925870B1 KR1020120028871A KR20120028871A KR101925870B1 KR 101925870 B1 KR101925870 B1 KR 101925870B1 KR 1020120028871 A KR1020120028871 A KR 1020120028871A KR 20120028871 A KR20120028871 A KR 20120028871A KR 101925870 B1 KR101925870 B1 KR 101925870B1
Authority
KR
South Korea
Prior art keywords
interface
ssd
command interface
command
information
Prior art date
Application number
KR1020120028871A
Other languages
English (en)
Other versions
KR20130107070A (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 KR1020120028871A priority Critical patent/KR101925870B1/ko
Priority to US13/827,347 priority patent/US9164703B2/en
Publication of KR20130107070A publication Critical patent/KR20130107070A/ko
Application granted granted Critical
Publication of KR101925870B1 publication Critical patent/KR101925870B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/16Handling requests for interconnection or transfer for access to memory 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
    • 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
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

SSD 콘트롤러(Solid State Drive controller)가 개시된다. 본 발명의 실시예에 따른 SSD 콘트롤러는 SSD와 데이터를 교환하는 제1 커맨드 인터페이스(command interface), 상기 제1 커맨드 인터페이스와는 독립적으로 상기 SSD와 데이터를 교환하는 제2 커맨드 인터페이스 및 상기 제1 커맨드 인터페이스와 상기 제2 커맨드 인터페이스의 활성화 여부 및 할당 용량을 결정하는 정보를 저장하는 인터페이스 정보 저장부를 포함한다. 본 발명의 실시예에 따른 SSD 콘트롤러에 따르면, 인터페이스 정보 저장부에 저장된 인터페이스 정보에 따라 복수의 인터페이스의 활성화 여부 및 할당 용량을 결정함으로써 호스트와 SSD 간의 효율적인 데이터 전송을 구현할 수 있다.

Description

SSD 콘트롤러 및 그의 제어 방법{A Solid State Drive controller and a method controlling thereof}
본 발명은 SSD 콘트롤러에 관한 것으로, 보다 상세하게는 SSD와 데이터를 교환하는 복수의 인터페이스를 효율적으로 관리할 수 있는 SSD 콘트롤러 및 그의 제어 방법에 관한 것이다.
하드 디스크(hard disk)는 자기 저장 방식에 의해 데이터를 저장하게 되는데, 이러한 자기 저장방식의 하드디스크는 일정한 충격을 받으면 배드섹터가 발생하여 데이터가 손실되는 등 내구도가 약하다. 또한, 모터로 회전하는 디스크를 핀으로 읽는 방식이므로 지름 안쪽과 바깥쪽을 읽는 속도가 달라져 데이터의 리드(read) 및 라이트(write) 시간이 일정치 못한 결점이 존재한다. 이러한 문제점을 해결하고자 최근 개발된 새로운 해결방안이 솔리드 스테이트 드라이브(solid state drive;이하 SSD)라 볼 수 있는데, 이는 플래시 메모리(flash memory) 등을 활용하여 메모리를 저장장치로 사용하고자 하는 것이다.
이러한 SSD는 데이터의 병렬 처리가 가능하여 컴퓨터의 병목현상을 해소할 수 있고, 전력 소모가 많은 스핀들 모터가 존재하지 않으므로 하드 디스크에 비해 시스템의 전력 효율을 높일 수 있는 장점이 있다. SSD는 SSD의 동작을 제어할 수 있는 콘트롤러가 존재할 수 있으며, 이 콘트롤러에는 SSD와 데이터를 교환할 수 있게 하는 인터페이스를 갖추고 있는 것이 일반적이다. 최근 시스템의 성능과 속도를 높이기 위해 보다 빠른 인터페이스를 위한 개발이 활발히 진행되고 있으며, 이러한 인터페이스를 보다 효과적으로 관리할 수 있는 방안이 요구된다.
본 발명이 이루고자 하는 기술적 과제는 SSD와 데이터를 교환하는 인터페이스를 보다 효율적으로 관리할 수 있는 SSD 콘트롤러 및 그의 제어 방법을 제공하는 것이다.
본 발명의 실시예에 따른 SSD 콘트롤러는 SSD와 데이터를 교환하는 제1 커맨드 인터페이스, 상기 제1 커맨드 인터페이스와는 독립적으로 상기 SSD와 데이터를 교환하는 제2 커맨드 인터페이스 및 상기 제1 커맨드 인터페이스와 상기 제2 커맨드 인터페이스의 활성화 여부 및 할당 용량을 결정하는 정보를 저장하는 인터페이스 정보 저장부를 포함한다.
실시예에 따라 상기 인터페이스 정보 저장부는 상기 제1 커맨드 인터페이스의 활성화 여부 및 할당 용량을 결정하는 제1 인터페이스 정보를 저장하는 제1 벤더 스페시픽 레지스터 및 상기 제2 커맨드 인터페이스의 활성화 여부 및 할당 용량을 결정하는 제2 인터페이스 정보를 저장하는 제2 벤더 스페시픽 레지스터를 포함한다.
실시예에 따라 PCIe 방식으로 호스트와 데이터 및 명령을 교환하는 PCIe 인터페이스 모듈을 더 포함한다.
실시예에 따라 상기 제1 커맨드 인터페이스는 SATA 익스프레스 방식의 인터페이스를 지원한다.
실시예에 따라 상기 제2 커맨드 인터페이스는 NVM 익스프레스 방식의 인터페이스를 지원한다.
실시예에 따라 상기 제1 인터페이스 정보 및 상기 제2 인터페이스 정보에 따라 상기 제1 커맨드 인터페이스 또는 제2 커맨드 인터페이스 중 어느 하나가 비활성화되는 경우 상기 어느 하나의 인터페이스의 전원을 차단하는 인터페이스 전원 관리부를 더 포함한다.
실시예에 따라 상기 제1 커맨드 인터페이스, 상기 제2 커맨드 인터페이스, 상기 제1 벤더 스페시픽 레지스터, 상기 제2 벤더 스페시픽 레지스터 및 PCIe 인터페이스 모듈 사이의 데이터 및 명령의 교환은 버스에 의해 이루어진다.
실시예에 따라 상기 SSD는 SATA 익스프레스 방식 및 NVM 익스프레스 방식을 동시에 지원한다.
실시예에 따른 컴퓨터 시스템은 상기 SSD 콘트롤러를 포함한다.
본 발명의 실시예에 따른 SSD 콘트롤러 제어 방법은 사용자가 확장 롬 바이오스를 입력하는 단계, 상기 입력된 확장 롬 바이오스에 따라 SSD 인터페이스 변경이 필요한 경우 호스트가 제1 벤더 스페시픽 레지스터에 제1 인터페이스 정보를 저장하는 단계, 상기 입력된 확장 롬 바이오스에 따라 SSD 인터페이스 변경이 필요한 경우 호스트가 제2 벤더 스페시픽 레지스터에 제2 인터페이스 정보를 저장하는 단계 및 상기 제1 인터페이스 정보 및 상기 제2 인터페이스 정보에 따라 호스트가 SSD 펌웨어를 재설정하는 단계를 포함하며, 상기 제1 인터페이스 정보는 상기 제1 커맨드 인터페이스의 활성화 여부 및 할당 용량을 결정하고, 상기 제2 인터페이스 정보는 상기 제2 커맨드 인터페이스의 활성화 여부 및 할당 용량을 결정한다.
실시예에 따라 상기 SSD 펌웨어를 재설정하는 단계는 상기 제1 커맨드 인터페이스 또는 상기 제2 커맨드 인터페이스 중 어느 하나가 비활성화되는지 여부를 판단하는 단계, 상기 어느 하나의 인터페이스가 비활성화된 경우 인터페이스 전원 관리부가 상기 비활성화된 인터페이스의 전원을 차단하는 단계 및 상기 활성화된 인터페이스에 SSD 용량을 할당하는 단계를 포함한다.
실시예에 따라 상기 SSD 펌웨어를 재설정하는 단계는 상기 어느 하나의 인터페이스도 비활성화되지 않는 경우 상기 제1 커맨드 인터페이스 및 상기 제2 커맨드 인터페이스에 각각 SSD 용량을 할당하는 단계를 더 포함한다.
실시예에 따라 상기 할당된 SSD 용량에 대응한 SSD의 저장 영역과 상기 제1 커맨드 인터페이스 및/또는 제2 커맨드 인터페이스가 데이터를 교환하는 단계를 더 포함한다.
실시예에 따라 상기 제1 커맨드 인터페이스는 SATA 익스프레스 방식의 인터페이스를 지원한다.
실시예에 따라 상기 제2 커맨드 인터페이스는 NVM 익스프레스 방식의 인터페이스를 지원한다.
실시예에 따른 컴퓨터 시스템은 상기 SSD 콘트롤러 제어 방법을 이용한 SSD 콘트롤러를 포함한다.
본 발명의 실시예에 따른 SSD 콘트롤러에 따르면, 인터페이스 정보 저장부에 저장된 인터페이스 정보에 따라 복수의 인터페이스의 활성화 여부 및 할당 용량을 결정함으로써 호스트와 SSD 간의 효율적인 데이터 전송을 구현할 수 있다.
도 1은 본 발명의 실시예에 따른 컴퓨터 시스템을 개략적으로 나타내는 블록도이다.
도 2는 본 발명의 실시예에 따른 SSD 콘트롤러를 나타내는 블록도이다.
도 3은 본 발명의 실시예에 따른 SSD 콘트롤러의 제어 방법을 나타내는 흐름도이다.
도 4는 도 3에 도시된 확장 롬 바이오스를 실행하는 단계를 상세히 나타내는 도면이다.
도 5는 도 4에 도시된 SSD 펌웨어의 재설정 단계를 상세히 나타내는 흐름도이다.
도 6은 도 2에 도시된 SSD 콘트롤러를 포함하는 컴퓨터 시스템의 실시 예를 나타낸다.
도 7은 도 2에 도시된 SSD 콘트롤러를 포함하는 컴퓨터 시스템의 다른 실시 예를 나타낸다.
도 8은 도 2에 도시된 SSD 콘트롤러를 포함하는 컴퓨터 시스템의 또 다른 실시 예를 나타낸다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 컴퓨터 시스템을 개략적으로 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 컴퓨터 시스템(100)은 호스트(host;110) 및 SSD 칩(Solid State Drive chip;120)을 포함할 수 있다. 호스트(110)는 컴퓨터 시스템(100)의 동작에 필요한 각종 명령을 처리하고 SSD 칩(120)에 전송하며, 요구되는 데이터를 SSD 칩(120)으로부터 읽어 들이거나 SSD 칩(120)에 저장할 수 있다. SSD 칩(120)은 SSD 콘트롤러(controller;130) 및 SSD(140)를 포함할 수 있다.
SSD 콘트롤러(130)는 호스트(110)로부터 수신되는 리드(read) 명령에 따라 SSD(140)에 저장되어 있는 데이터를 읽어들여 호스트(110)로 전송할 수 있다. 또한, SSD 콘트롤러(130)는 호스트(110)로부터 수신되는 라이트(write) 명령에 따라 호스트(110)로부터 전송되는 데이터를 SSD(140)에 저장할 수 있다. SSD 콘트롤러(130)는 호스트(110)와 PCIe(PCI Express) 인터페이스 방식으로 접속되어 명령 및 데이터를 교환할 수 있으나, 발명이 이에 한정되는 것은 아니다.
SSD 콘트롤러(130)는 적어도 2 이상의 커맨드 인터페이스(command interface)를 포함하여 SSD(140)와 데이터를 교환할 수 있다. SSD 콘트롤러(130)는 호스트(110)로 SSD(140)에 대한 논리 주소(logical address)를 제공하고, SSD(140)에 대해 물리 주소(physical address)를 제공할 수 있으며, 물리 주소를 이용하여 SSD(140)를 관리하고 물리 주소를 논리 주소로 변환할 수 있다. SSD 콘트롤러(130)는 SSD(140)에 포함된 복수의 비휘발성 메모리(non-volatile memory)에서 논리적으로 동일한 블록 번호를 갖는 블록(block)들과 논리적으로 동일한 페이지 번호를 갖는 페이지(page)들을 각각 블록 그룹 및 페이지 그룹이라는 논리적인 단위로 구성하여 연산을 수행할 수 있다. 이때, SSD 콘트롤러(130)는 페이지 그룹에 대한 리드 및 라이트 연산을 복수의 비휘발성 메모리에서 병렬적으로 수행할 수 있으며, 블록 그룹에 대한 이레이즈(erase) 연산을 복수의 비휘발성 메모리에서 병렬적으로 수행할 수 있다. SSD 콘트롤러(130)의 세부적인 내부 구성은 후술하기로 한다.
SSD(140)는 복수의 비휘발성 메모리를 포함하는 저장 장치로서, SSD 콘트롤러(130)로부터 수신되는 데이터를 저장하거나(write) SSD 콘트롤러(130)로 데이터를 제공할 수 있다(read). 또한, SSD(140)는 SSD 콘트롤러(130)의 제어에 따라 저장되어 있는 데이터를 이레이즈할 수 있다. 복수의 비휘발성 메모리는 SSD 콘트롤러(130)의 요청에 따라 복수의 버스를 통해 데이터의 저장 또는 제공이 병렬로 이루어질 수 있다. 또한, SSD(140)는 적어도 2 이상의 커맨드 인터페이스를 지원할 수 있는 멀티 펑션 PCIe 디바이스(multi-function PCIe device)로 설계될 수 있다. 복수의 비휘발성 메모리는 예를 들면, 플래시 메모리(Flash Memory), 상변화 메모리(Phase Change Random Access Memory; PRAM) 또는 저항성 메모리(Resistive Random Access Memory; RRAM)일 수 있으나, 이에 한정되는 것은 아니다. 또한, SSD 콘트롤러(130) 및 SSD(140) 사이에 데이터의 전송 속도를 높이고 작업 효율을 증대하기 위한 버퍼(미도시)로서 DRAM(Dynamic Random Access Memory)이 더 포함될 수 있다.
도 2는 본 발명의 실시예에 따른 SSD 콘트롤러를 나타내는 블록도이다.
도 2를 참조하면, SSD 콘트롤러(130)는 호스트 인터페이스(host interface;145), 주소 변환 계층(address translation layer;미도시), 내부 버스(inner bus;150), 제1 커맨드 인터페이스(first command interface;160), 제2 커맨드 인터페이스(second command interface;170), 인터페이스 전원 관리부(175) 및 인터페이스 정보 저장부(185)를 포함할 수 있다.
호스트 인터페이스(145)는 호스트(110)로부터 명령(예를 들어, 리드 명령, 라이트 명령 및 이레이즈 명령) 및 데이터를 수신하고, SSD(140)로부터 리드된 데이터를 내부 버스(150)로부터 수신하여 호스트(110)로 전송할 수 있다. 호스트 인터페이스(145)는 PCIe(Peripheral Component Interconnect express) 방식의 PCIe 인터페이스 모듈로 구현될 수 있으나, 이에 한정되지는 않는다.
주소 변환 계층은 물리 주소 및 논리 주소 간의 변환을 수행할 수 있다. 주소 변환 계층은 호스트(110)로부터 논리 주소를 갖는 데이터를 물리 주소를 갖는 데이터로 매핑시켜 호스트(110)와 SSD(140) 간의 데이터 전송을 가능하게 할 수 있다.
내부 버스(150)는 SSD 콘트롤러(130)에 포함된 각종 소자들의 명령 및 데이터의 교환을 수행한다. SSD 콘트롤러(130) 내에서의 명령 및 데이터의 전송은 내부 버스(150)를 통해 매우 빠른 속도로 이루어질 수 있다.
제1 커맨드 인터페이스(160)는 SSD 콘트롤러(130)와 SSD(140) 간의 데이터의 전송을 수행할 수 있으며, SSD(140)에 포함된 복수의 비휘발성 메모리의 각각의 페이지의 물리 주소에 대응하는 포인터(미도시)를 포함할 수 있다. 제1 커맨드 인터페이스(160)는 호스트(110)의 리드 명령에 따라 SSD(140)에 저장된 데이터를 수신하여 내부 버스(150)에 전송할 수 있다. 제1 커맨드 인터페이스(160)는 호스트(110)의 라이트 명령에 따라 내부 버스(150)로부터 데이터를 수신하여 SSD(140)에 저장할 수 있다.
제1 커맨드 인터페이스(160)는 후술할 제1 벤더 스페시픽 레지스터(first vendor specific register;180)에 저장된 제1 인터페이스 정보(IFS1)에 따라 활성화 여부 및 할당 용량이 결정될 수 있다. 제1 인터페이스 정보(IFS1)는 제1 커맨드 인터페이스(160)의 활성화 여부 및 할당 용량을 결정하는 정보를 포함할 수 있다. 제1 커맨드 인터페이스(160)는 시스템 부팅 과정을 거친 후 활성화되었다면, 할당된 용량의 SSD(140)에 대해 데이터의 교환을 수행할 수 있다. 제1 커맨드 인터페이스(160)는 SATA(Serial Advanced Technology Attachment) 방식, SATA 익스프레스(express) 방식 또는 NVM(Non volatile memory) 익스프레스 방식의 인터페이스를 지원할 수 있으나, 이에 한정되지는 않는다.
제2 커맨드 인터페이스(170)는 제1 커맨드 인터페이스(160)와는 독립적으로 SSD 콘트롤러(130)와 SSD(140) 간의 데이터의 전송을 수행할 수 있으며, SSD(140)에 포함된 복수의 비휘발성 메모리의 각각의 페이지의 물리 주소에 대응하는 포인터(미도시)를 포함할 수 있다. 제2 커맨드 인터페이스(170)는 호스트(110)의 리드 명령에 따라 SSD(140)에 저장된 데이터를 수신하여 내부 버스(150)에 전송할 수 있다. 제2 커맨드 인터페이스(170)는 호스트(110)의 라이트 명령에 따라 내부 버스(150)로부터 데이터를 수신하여 SSD(140)에 저장할 수 있다.
제2 커맨드 인터페이스(170)는 후술할 제2 벤더 스페시픽 레지스터(second vendor specific register;190)에 저장된 제2 인터페이스 정보(IFS2)에 따라 활성화 여부 및 할당 용량이 결정될 수 있다. 제2 인터페이스 정보(IFS2)는 제2 커맨드 인터페이스(170)의 활성화 여부 및 할당 용량을 결정하는 정보를 포함할 수 있다. 여기서, 제1 커맨드 인터페이스(160)의 할당 용량과 제2 커맨드 인터페이스(170)의 할당 용량을 합한 값은 SSD(140)의 총 용량과 같을 수 있다. 제2 커맨드 인터페이스(170)는 시스템 부팅 과정을 거친 후 활성화되었다면, 할당된 용량의 SSD(140)에 대해 데이터의 교환을 수행할 수 있다. 제2 커맨드 인터페이스(170)는 SATA 방식, SATA 익스프레스 방식 또는 NVM 익스프레스 방식의 인터페이스를 지원할 수 있으나, 이에 한정되지는 않는다.
인터페이스 전원 관리부(175)는 제1 인터페이스 정보(IFS1) 및 제2 인터페이스 정보(IFS2)에 따라 제1 커맨드 인터페이스(160) 또는 제2 커맨드 인터페이스(170) 중 어느 하나가 비활성화되는 경우, 비활성화되는 인터페이스의 전원을 차단할 수 있다. 제1 인터페이스 정보(IFS1) 또는 제2 인터페이스 정보(IFS2)에 포함된 인터페이스의 활성화 여부를 결정하는 비트가 논리 로우(low)인 경우 해당 인터페이스는 비활성화될 수 있고 논리 하이(high)인 경우 해당 인터페이스는 활성화될 수 있다. 예를 들어, 제1 인터페이스 정보(IFS1)에 포함된 인터페이스의 활성화 여부를 결정하는 비트가 논리 로우이고 제2 인터페이스 정보(IFS2)에 포함된 인터페이스의 활성화 여부를 결정하는 비트가 논리 하이인 경우, 인터페이스 전원 관리부(175)는 제1 커맨드 인터페이스(160)의 전원만을 차단할 수 있다. 이 같은 전원의 차단은 별도의 파워 게이팅 회로(power gating circuit)나 스위칭 유닛(switching unit)을 추가함으로써 구현할 수 있다. 이처럼, 비활성화된 인터페이스의 전원을 차단함으로써, 컴퓨터 시스템(100)의 전력 효율을 높일 수 있는 효과가 있다.
인터페이스 정보 저장부(185)는 적어도 2 이상의 커맨드 인터페이스 각각의 활성화 여부 및 SSD(140)의 할당 용량을 결정하는 정보를 저장할 수 있다. 인터페이스 정보 저장부(185)는 제1 벤더 스페시픽 레지스터(180) 및 제2 벤더 스페시픽 레지스터(190)를 포함할 수 있다. 벤더 스페시픽 레지스터는 사용자가 원하면 추가적으로 해당 기능으로 사용할 수 있는 레지스터를 말한다.
제1 벤더 스페시픽 레지스터(180)는 제1 커맨드 인터페이스(160)의 활성화 여부 및 할당 용량을 결정하는 제1 인터페이스 정보(IFS1)를 저장할 수 있다. 시스템 부팅 과정에서 사용자에 의해 후술할 확장 롬 바이오스(expansion ROM BIOS)가 입력된 경우, SSD 인터페이스 즉, 제1 커맨드 인터페이스(160)의 활성화 여부 및 할당 용량의 변경이 필요하게 될 수 있다. 이 경우 제1 벤더 스페시픽 레지스터(180)에 저장된 제1 인터페이스 정보(IFS1)는 사용자에 의해 설정된 값으로 재설정될 수 있다.
제2 벤더 스페시픽 레지스터(190)는 제2 커맨드 인터페이스(170)의 활성화 여부 및 할당 용량을 결정하는 제2 인터페이스 정보(IFS2)를 저장할 수 있다. 시스템 부팅 과정에서 사용자에 의해 확장 롬 바이오스가 입력된 경우, SSD 인터페이스 즉, 제2 커맨드 인터페이스(170)의 활성화 여부 및 할당 용량의 변경이 필요하게 될 수 있다. 이 경우 제2 벤더 스페시픽 레지스터(190)에 저장된 제2 인터페이스 정보(IFS2)는 사용자에 의해 설정된 값으로 재설정될 수 있다.
본 발명의 실시예에 따른 SSD 콘트롤러(130)에 따르면, 인터페이스 정보 저장부(185)에 저장된 인터페이스 정보에 따라 복수의 인터페이스의 활성화 여부 및 할당 용량을 결정함으로써 호스트(110)와 SSD(140) 간의 효율적인 데이터 전송을 구현할 수 있는 효과가 있다.
도 3은 본 발명의 실시예에 따른 SSD 콘트롤러의 제어 방법을 나타내는 흐름도이다.
도 2 및 도 3을 참조하면, SSD 콘트롤러(130)가 포함된 컴퓨터 시스템(100)이 파워 온(power on)되면서 시스템 부팅 과정이 시작된다(S300). 컴퓨터 시스템의 마더 보드(mother board)에 장착된 롬 바이오스(Read Only Memory Basic Input Output System;ROM-BIOS)가 실행된다(S310). 롬 바이오스은 시스템에 전원이 인가되면 POST(Power On Self Test) 과정을 진행하여 시스템에 연결된 주변기기(디스크 드라이브, 입출력 장치 등등)를 체크하여 초기화 시킨 후, SSD 드라이브에 저장된 운영체제로 시스템을 부팅시킨다.
사용자로부터 확장 롬 바이오스 실행이 요청된 경우(S320), 호스트(110)는 확장 롬 바이오스를 실행할 수 있다(S330). 확장 롬 바이오스는 시스템 부팅에 있어 필수적이지는 않으나, 사용자의 요구에 따라 운영체제로의 진입 이전에 하드웨어의 설정을 변경할 필요가 있을 때 사용되는 롬 바이오스이다. 사용자로부터 확장 롬 바이오스 실행이 요청되지 않은 경우(S320), 호스트(110)는 확장 롬 바이오스를 실행하지 않는다. 확장 롬 바이오스를 실행하는 단계에 대한 상세한 설명은 후술하기로 한다.
다음으로 호스트(110)는 SSD(140)에 저장된 운영 체제에 따라 시스템 부팅을 진행한다(S340). 시스템 부팅이 완료되면, 롬 바이오스 실행 단계(S310)에서 설정된 각 커맨드 인터페이스의 인터페이스 정보(활성화 여부 및 SSD 할당 용량)에 따라 SSD 콘트롤러(130)의 제1 커맨드 인터페이스(160) 및/또는 제2 커맨드 인터페이스(170)는 호스트(110)의 명령에 따라 SSD(140)의 저장 영역과 데이터를 교환할 수 있다. 만약 확장 롬 바이오스가 실행되어 각 커맨드 인터페이스의 인터페이스 정보가 변경된 경우 그에 따라 SSD 콘트롤러(130)의 제1 커맨드 인터페이스(160) 및/또는 제2 커맨드 인터페이스(170)는 호스트(110)의 명령에 따라 SSD(140)의 저장 영역과 데이터를 교환할 수 있다(S350).
도 4는 도 3에 도시된 확장 롬 바이오스를 실행하는 단계를 상세히 나타내는 도면이다.
도 2 내지 도 4를 참조하면, 사용자로부터 확장 롬 바이오스 실행이 요청되면 사용자가 확장 롬 바이오스 즉, 하드웨어의 변경이 필요한 사항을 입력할 수 있다(S331). 사용자가 SSD 콘트롤러(130)에 포함된 각 커맨드 인터페이스의 활성화 여부 및 SSD(140)의 할당 용량을 변경하는 정보를 입력한 경우(S332) 호스트(110)는 해당 인터페이스 정보(IFS1, IFS2)를 인터페이스 정보 저장부(185) 즉, 제1 벤더 스페시픽 레지스터(180) 및 제2 스페시픽 레지스터에 저장시킬 수 있다(S333).
예를 들어, 총 SSD(140)의 용량이 512 GB(giga byte)이고 사용자가 제1 커맨드 인터페이스(160)에 할당하는 SSD(140) 용량을 384 GB로 설정하고 제2 커맨드 인터페이스(170)에 할당하는 SSD(140) 용량을 128 GB로 확장 롬 바이오스를 입력하였다고 가정한다. 이 경우 인터페이스 정보 저장부(185)의 제1 벤더 스페시픽 레지스터(180)에는 제1 커맨드 인터페이스(160)가 활성화 여부를 결정하는 비트가 논리 하이가 되고, SSD(140) 할당 용량을 결정하는 복수의 비트가 384 GB를 나타내도록 저장될 수 있다. 인터페이스 정보 저장부(185)의 제2 벤더 스페시픽 레지스터(190)에는 제2 커맨드 인터페이스(170)가 활성화 여부를 결정하는 비트가 논리 하이가 되고, SSD(140) 할당 용량을 결정하는 복수의 비트가 128 GB를 나타내도록 저장될 수 있다. SSD(140) 할당 용량을 결정하는 복수의 비트의 갯수는 벤더 스페시픽 레지스터의 허용 용량 내에서 사용자가 SSD(140)의 용량 할당을 얼마나 세밀하게 입력하고자 하는지에 따라 결정될 수 있다.
다른 예로서, 사용자가 제1 커맨드 인터페이스(160)에 모든 512 GB의 SSD(140) 용량을 할당하고 제2 커맨드 인터페이스(170)는 사용하지 않을 경우를 가정한다. 이 경우 인터페이스 정보 저장부(185)의 제1 벤더 스페시픽 레지스터(180)에는 제1 커맨드 인터페이스(160)가 활성화 여부를 결정하는 비트가 논리 하이가 되고, SSD(140) 할당 용량을 결정하는 복수의 비트가 512 GB를 나타내도록 저장될 수 있다. 인터페이스 정보 저장부(185)의 제2 벤더 스페시픽 레지스터(190)에는 제2 커맨드 인터페이스(170)가 활성화 여부를 결정하는 비트가 논리 로우가 되고, SSD(140) 할당 용량을 결정하는 복수의 비트가 0 GB를 나타내도록 저장될 수 있다.
제1 벤더 스페시픽 레지스터(180) 및 제2 벤더 스페시픽 레지스터(190)에 저장된 값이 변경된 경우 호스트(110)는 SSD 펌웨어(firmware)를 재설정할 수 있다(S334). SSD 펌웨어는 SSD 칩(120) 내부의 소자들을 제어할 수 있는 마이크로 프로그램(micro program)을 의미한다. SSD 펌웨어를 재설정함으로써 각 커맨드 인터페이스의 활성화 여부 및 SSD(140) 할당 용량을 하드웨어적으로 설정할 수 있다. SSD 펌웨어의 재설정 단계의 자세한 설명에 대해서는 후술하기로 한다.
SSD 펌웨어가 재설정된 경우(S334) 또는 사용자가 SSD 콘트롤러(130)에 포함된 각 커맨드 인터페이스의 활성화 여부 및 SSD(140)의 할당 용량을 변경하는 정보를 입력하지 않은 경우(S332) 확장 롬 바이어스 실행은 종료될 수 있다(S339).
도 5는 도 4에 도시된 SSD 펌웨어의 재설정 단계를 상세히 나타내는 흐름도이다.
도 2 내지 도 5를 참조하면, 제1 벤더 스페시픽 레지스터(180) 및 제2 벤더 스페시픽 레지스터(190)가 재설정된 후, 호스트(110)는 내부 버스(150)를 통해 제1 벤더 스페시픽 레지스터(180) 및 제2 벤더 스페시픽 레지스터(190)에 각각 저장된 제1 인터페이스 정보(IFS1) 및 제2 인터페이스 정보(IFS2)를 수신할 수 있다. 호스트(110)는 수신된 제1 인터페이스 정보(IFS1) 및 제2 인터페이스 정보(IFS2)를 기초로 제1 커맨드 인터페이스(160) 또는 제2 커맨드 인터페이스(170) 중 어느 하나가 비활성화되는지 판단할 수 있다(S335).
제1 커맨드 인터페이스(160) 또는 제2 커맨드 인터페이스(170) 중 어느 하나가 비활성화되는 경우 호스트(110)는 인터페이스 전원 관리부(175)에 비활성화되는 커맨드 인터페이스에 대해 전원의 차단을 요청할 수 있다. 인터페이스 전원 관리부(175)는 별도의 파워 게이팅 회로(power gating circuit)나 스위칭 유닛(switching unit)을 이용해 비활성화되는 커맨드 인터페이스의 전원을 차단할 수 있다(S336).
제1 커맨드 인터페이스(160) 또는 제2 커맨드 인터페이스(170) 중 활성화되는 커맨드 인터페이스는 제1 인터페이스 정보(IFS1) 또는 제2 인터페이스 정보(IFS2)에 포함된 SSD(140) 할당 용량을 결정하는 복수의 비트에 따라 SSD(140) 용량을 할당받을 수 있다(S337). 제1 커맨드 인터페이스(160) 또는 제2 커맨드 인터페이스(170)에 할당되는 SSD(140) 용량은 사용자가 임의로 지정할 수 있으나, 각각의 SSD(140) 용량의 합은 전체의 SSD(140) 용량을 초과할 수는 없다.
반대로 제1 커맨드 인터페이스(160) 및 제2 커맨드 인터페이스(170) 모두 활성화되는 경우(S335) 제1 인터페이스 정보(IFS1) 및 제2 인터페이스 정보(IFS2)에 포함된 활성화 여부를 결정하는 비트는 모두 논리 하이일 수 있다. 이 경우 제1 커맨드 인터페이스(160) 및 제2 커맨드 인터페이스(170)는 제1 인터페이스 정보(IFS1) 및 제2 인터페이스 정보(IFS2)에 포함된 SSD(140) 할당 용량을 결정하는 복수의 비트에 따라 각각 SSD(140) 용량을 할당받을 수 있다(S338).
도 6은 도 2에 도시된 SSD 콘트롤러를 포함하는 컴퓨터 시스템의 실시 예를 나타낸다.
도 6을 참조하면, 도 2에 도시된 SSD 콘트롤러(130)를 포함하는 컴퓨터 시스템(600)은 PC(personal computer), 네트워크 서버(Network Server), 태블릿 (tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
컴퓨터 시스템(600)은 호스트(110), SSD(140), SSD의 데이터 처리 동작을 제어할 수 있는 SSD 컨트롤러(130), 디스플레이(610) 및 입력 장치(620)를 포함한다.
호스트(110)는 입력 장치(620))를 통하여 입력된 데이터에 따라 SSD(140)에 저장된 데이터를 디스플레이(610)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(620)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. 호스트(110)는 컴퓨터 시스템(700)의 전반적인 동작을 제어할 수 있고 SSD 컨트롤러(130)의 동작을 제어할 수 있다.
실시 예에 따라 SSD(140)의 동작을 제어할 수 있는 SSD 컨트롤러(520)는 호스트(110)와 별도의 칩으로 구현될 수 있다.
도 7은 도 2에 도시된 SSD 콘트롤러를 포함하는 컴퓨터 시스템의 다른 실시 예를 나타낸다.
도 7을 참조하면, 도 2에 도시된 SSD 콘트롤러(130)를 포함하는 컴퓨터 시스템(700)은 이미지 처리 장치(Image Process Device), 예컨대 디지털 카메라 또는 디지털 카메라가 부착된 이동 전화기 또는 스마트 폰으로 구현될 수 있다.
컴퓨터 시스템(700)은 호스트(110), SSD(140)와 SSD(140)의 데이터 처리 동작, 예컨대 라이트 동작, 리드 동작 또는 이레이즈 동작을 제어할 수 있는 SSD 컨트롤러(130)를 포함한다. 또한, 컴퓨터 시스템(700)은 이미지 센서(710) 및 디스플레이(720)를 더 포함한다.
컴퓨터 시스템(700)의 이미지 센서(710)는 광학 이미지를 디지털 신호들로 변환하고, 변환된 디지털 신호들은 호스트(110) 또는 SSD 컨트롤러(130)로 전송된다. 호스트(110)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(720)를 통하여 디스플레이되거나 또는 SSD 컨트롤러(130)를 통하여 SSD(140)에 저장될 수 있다.
또한, SSD(140)에 저장된 데이터는 호스트(110) 또는 SSD 컨트롤러(130)의 제어에 따라 디스플레이(720)를 통하여 디스플레이된다.
실시 예에 따라 SSD(140)의 동작을 제어할 수 있는 SSD 컨트롤러(130)는 호스트(110)와 별개의 칩으로 구현될 수 있다.
도 8은 도 2에 도시된 SSD 콘트롤러를 포함하는 컴퓨터 시스템의 또 다른 실시 예를 나타낸다.
도 8을 참조하면, 도 2에 도시된 SSD 콘트롤러(130)을 포함하는 컴퓨터 시스템(800)은 호스트 컴퓨터(Host Computer)와 메모리 카드(memory card) 또는 스마트 카드(smart card)로 구현될 수 있다. 컴퓨터 시스템(800)은 호스트 컴퓨터(810)와 메모리 카드(830)을 포함한다.
호스트 컴퓨터(810)는 호스트(110) 및 호스트 인터페이스(820)을 포함한다. 메모리 카드(830)는 SSD(140), SSD 컨트롤러(130) 및 카드 인터페이스(840)를 포함한다. SSD 컨트롤러(130)는 SSD(140)와 카드 인터페이스(840) 사이에서 데이터의 교환을 제어할 수 있다.
실시 예에 따라, 카드 인터페이스(840)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다.
메모리 카드(830)가 호스트 컴퓨터(810)에 장착되면, 카드 인터페이스(840)는 호스트(110)의 프로토콜에 따라 호스트(110)와 SSD 컨트롤러(130) 사이에서 데이터 교환을 인터페이스할 수 있다.
실시 예에 따라 카드 인터페이스(840)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스라 함은 호스트 컴퓨터(810)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어, 또는 신호 전송 방식을 의미할 수 있다.
컴퓨터 시스템(800)이 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트 컴퓨터(810)의 호스트 인터페이스(820)와 접속될 때, 호스트 인터페이스(820)는 호스트(110)의 제어에 따라 카드 인터페이스(840)와 SSD 컨트롤러(130)를 통하여 SSD(140)와 데이터 통신을 수행할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
호스트(110) 제2 커맨드 인터페이스(170)
SSD 칩(120) 인터페이스 전원 관리부(175)
SSD 콘트롤러(130) 제1 벤더 스페시픽 레지스터(180)
SSD(140) 인터페이스 정보 저장부(185)
제1 커맨드 인터페이스(160) 제2 벤더 스페시픽 레지스터(190)

Claims (10)

  1. SSD(Solid State Drive)와 데이터를 교환하는 제1 커맨드 인터페이스(command interface);
    상기 제1 커맨드 인터페이스와는 독립적으로 상기 SSD와 데이터를 교환하는 제2 커맨드 인터페이스; 및
    상기 제1 커맨드 인터페이스 및 상기 제2 커맨드 인터페이스 각각의 활성화 여부 및 상기 제1 커맨드 인터페이스 및 상기 제2 커맨드 인터페이스 각각에 할당되는 상기 SSD의 용량을 결정하기 위한 정보를 저장하는 인터페이스 정보 저장부를 포함하는 SSD 콘트롤러(controller).
  2. 제1항에 있어서, 상기 인터페이스 정보 저장부는:
    상기 제1 커맨드 인터페이스의 활성화 여부 및 상기 제1 커맨드 인터페이스에 할당되는 상기 SSD의 용량을 결정하기 위한 제1 인터페이스 정보를 저장하는 제1 벤더 스페시픽 레지스터(vendor specific register); 및
    상기 제2 커맨드 인터페이스의 활성화 여부 및 상기 제2 커맨드 인터페이스에 할당되는 상기 SSD의 용량을 결정하기 위한 제2 인터페이스 정보를 저장하는 제2 벤더 스페시픽 레지스터를 포함하는 SSD 콘트롤러.
  3. 제2항에 있어서,
    상기 제1 인터페이스 정보 및 상기 제2 인터페이스 정보에 따라 상기 제1 커맨드 인터페이스 또는 상기 제2 커맨드 인터페이스 중 어느 하나의 인터페이스가 비활성화되는 경우 상기 어느 하나의 인터페이스의 전원을 차단하는 인터페이스 전원 관리부를 더 포함하는 SSD 콘트롤러.
  4. 제2항에 있어서,
    PCIe 방식으로 호스트와 데이터 및 명령을 교환하는 PCIe 인터페이스 모듈(module)을 더 포함하는 SSD 콘트롤러.
  5. 제4항에 있어서,
    상기 제1 커맨드 인터페이스, 상기 제2 커맨드 인터페이스, 상기 제1 벤더 스페시픽 레지스터, 상기 제2 벤더 스페시픽 레지스터 및 상기 PCIe 인터페이스 모듈 사이의 데이터 및 명령의 교환은 내부 버스(bus)에 의해 이루어지는 SSD 콘트롤러.
  6. 제1항에 있어서,
    상기 SSD는 SATA 익스프레스 방식 및 NVM 익스프레스 방식을 동시에 지원하는 SSD 콘트롤러.
  7. 확장 롬 바이오스가 입력됨에 따라 제1 커맨드 인터페이스의 변경이 필요하게 된 경우, 호스트가 제1 벤더 스페시픽 레지스터에 제1 인터페이스 정보를 저장하는 단계;
    상기 확장 롬 바이오스가 입력됨에 따라 제2 커맨드 인터페이스의 변경이 필요하게 된 경우, 상기 호스트가 제2 벤더 스페시픽 레지스터에 제2 인터페이스 정보를 저장하는 단계;
    상기 제1 인터페이스 정보에 기초하여 상기 제1 커맨드 인터페이스의 활성화 여부 및 상기 제1 커맨드 인터페이스에 할당되는 제1 SSD 용량을 결정하는 단계;
    상기 제2 인터페이스 정보에 기초하여 상기 제2 커맨드 인터페이스의 활성화 여부 및 상기 제2 커맨드 인터페이스에 할당되는 제2 SSD 용량을 결정하는 단계; 및
    상기 제1 인터페이스 정보 및 상기 제2 인터페이스 정보에 따라 상기 호스트가 SSD 펌웨어(firmware)를 재설정하는 단계를 포함하는 SSD 콘트롤러 제어 방법.
  8. 제7항에 있어서,
    상기 SSD 펌웨어를 재설정하는 단계는 상기 제1 커맨드 인터페이스가 비활성화 되는 경우 인터페이스 전원 관리부가 상기 제1 커맨드 인터페이스의 전원을 차단하는 단계를 포함하는 SSD 콘트롤러 제어 방법.
  9. 제8항에 있어서,
    상기 SSD 펌웨어를 재설정하는 단계는 상기 제1 커맨드 인터페이스가 활성화 되는 경우 상기 제1 커맨드 인터페이스에 상기 결정된 제1 SSD 용량을 할당하는 단계를 더 포함하는 SSD 콘트롤러 제어 방법.
  10. 제9항에 있어서,
    상기 제1 커맨드 인터페이스가 상기 제1 인터페이스 정보에 기초하여 SSD의 저장 영역과 데이터를 교환하는 단계를 더 포함하는 SSD 콘트롤러 제어 방법.
KR1020120028871A 2012-03-21 2012-03-21 Ssd 콘트롤러 및 그의 제어 방법 KR101925870B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120028871A KR101925870B1 (ko) 2012-03-21 2012-03-21 Ssd 콘트롤러 및 그의 제어 방법
US13/827,347 US9164703B2 (en) 2012-03-21 2013-03-14 Solid state drive interface controller and method selectively activating and deactivating interfaces and allocating storage capacity to the interfaces

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120028871A KR101925870B1 (ko) 2012-03-21 2012-03-21 Ssd 콘트롤러 및 그의 제어 방법

Publications (2)

Publication Number Publication Date
KR20130107070A KR20130107070A (ko) 2013-10-01
KR101925870B1 true KR101925870B1 (ko) 2018-12-06

Family

ID=49213429

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120028871A KR101925870B1 (ko) 2012-03-21 2012-03-21 Ssd 콘트롤러 및 그의 제어 방법

Country Status (2)

Country Link
US (1) US9164703B2 (ko)
KR (1) KR101925870B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102013212525A1 (de) * 2013-06-27 2014-12-31 Siemens Aktiengesellschaft Datenspeichervorrichtung zum geschützten Datenaustausch zwischen verschiedenen Sicherheitszonen
US20150006814A1 (en) * 2013-06-28 2015-01-01 Western Digital Technologies, Inc. Dynamic raid controller power management
US9213602B1 (en) * 2014-06-23 2015-12-15 Seagate Technology Llc Write mapping to mitigate hard errors via soft-decision decoding
US9575669B2 (en) 2014-12-09 2017-02-21 Western Digital Technologies, Inc. Programmable solid state drive controller and method for scheduling commands utilizing a data structure
KR102435863B1 (ko) 2015-09-16 2022-08-25 삼성전자주식회사 스토리지 장치 및 그것을 포함하는 서버 시스템의 매칭 키 검색 방법
US9886196B2 (en) 2015-10-21 2018-02-06 Western Digital Technologies, Inc. Method and system for efficient common processing in memory device controllers
US10108340B2 (en) 2015-10-21 2018-10-23 Western Digital Technologies, Inc. Method and system for a common processing framework for memory device controllers
US11209989B2 (en) * 2019-09-25 2021-12-28 Western Digital Technologies, Inc. Zoned namespaces in solid-state drives
TWI712045B (zh) * 2020-01-16 2020-12-01 慧榮科技股份有限公司 資料儲存裝置修復方法
CN114265549A (zh) * 2021-11-21 2022-04-01 山东云海国创云计算装备产业创新中心有限公司 一种NVMe命令的处理方法、装置及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090150894A1 (en) 2007-12-10 2009-06-11 Ming Huang Nonvolatile memory (NVM) based solid-state disk (SSD) system for scaling and quality of service (QoS) by parallelizing command execution

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249213B2 (en) 2003-08-18 2007-07-24 Silicon Storage Technology, Inc. Memory device operable with a plurality of protocols with configuration data stored in non-volatile storage elements
KR100640588B1 (ko) 2004-09-24 2006-11-01 삼성전자주식회사 Sata 인터페이스와 ata 인터페이스를 선택적으로사용하는 비휘발성 메모리 저장 장치
US7225289B2 (en) 2005-03-14 2007-05-29 Phison Electronics Corporation Virtual IDE storage with PCI express interface
KR101205324B1 (ko) * 2005-11-25 2012-11-28 삼성전자주식회사 직렬 인터페이스 방식을 갖는 시스템의 전력을 제어하는방법
US8225019B2 (en) 2008-09-22 2012-07-17 Micron Technology, Inc. SATA mass storage device emulation on a PCIe interface
US8478928B2 (en) * 2009-04-23 2013-07-02 Samsung Electronics Co., Ltd. Data storage device and information processing system incorporating data storage device
KR101573723B1 (ko) * 2009-05-13 2015-12-03 삼성전자주식회사 적응적으로 메모리 채널의 신호 강도를 조정하는 데이터 저장 장치 및 그것의 설정 방법
US8468370B2 (en) * 2009-09-16 2013-06-18 Seagate Technology Llc Systems, methods and devices for control of the operation of data storage devices using solid-state memory and monitoring energy used therein
JP5226722B2 (ja) * 2010-03-26 2013-07-03 株式会社バッファロー 記憶装置
US8799685B2 (en) * 2010-08-25 2014-08-05 Advanced Micro Devices, Inc. Circuits and methods for providing adjustable power consumption

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090150894A1 (en) 2007-12-10 2009-06-11 Ming Huang Nonvolatile memory (NVM) based solid-state disk (SSD) system for scaling and quality of service (QoS) by parallelizing command execution

Also Published As

Publication number Publication date
KR20130107070A (ko) 2013-10-01
US20130254455A1 (en) 2013-09-26
US9164703B2 (en) 2015-10-20

Similar Documents

Publication Publication Date Title
KR101925870B1 (ko) Ssd 콘트롤러 및 그의 제어 방법
TWI704487B (zh) 資料儲存設備及其操作方法
KR101969883B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US10877887B2 (en) Data storage device and operating method thereof
KR101395778B1 (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
US9164833B2 (en) Data storage device, operating method thereof and data processing system including the same
US20180314643A1 (en) Data storage device and operating method thereof
US9436267B2 (en) Data storage device
US10769066B2 (en) Nonvolatile memory device, data storage device including the same and operating method thereof
US9396108B2 (en) Data storage device capable of efficiently using a working memory device
US20200057725A1 (en) Data storage device and operating method thereof
US9372741B2 (en) Data storage device and operating method thereof
KR20130070251A (ko) 브릿지 칩셋 및 그것을 포함하는 데이터 저장 시스템
KR20140044070A (ko) 버퍼 메모리 장치를 포함하는 데이터 저장 장치
KR102595233B1 (ko) 데이터 처리 시스템 및 그것의 동작 방법
KR20160025292A (ko) 데이터 저장 장치, 그것을 포함하는 데이터 처리 시스템 및 그것의 동작 방법
KR20160061703A (ko) 내부 카피 동작을 수행하는 메모리 장치
KR20160097657A (ko) 데이터 저장 장치 그리고 그것의 동작 방법
KR20190022933A (ko) 하이브리드 메모리 드라이브, 컴퓨터 시스템, 및 멀티 모드 하이브리드 드라이브를 동작시키기 위한 관련 방법
KR20190051530A (ko) 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법
CN112306783A (zh) 存储器控制器及其操作方法
US20150106573A1 (en) Data processing system
TW202240390A (zh) 儲存系統及其操作方法
KR20150102329A (ko) 데이터 저장 장치
US11157401B2 (en) Data storage device and operating method thereof performing a block scan operation for checking for valid page counts

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