KR20130057890A - 하이브리드 드라이브 및 그 데이터 전송 방법 - Google Patents

하이브리드 드라이브 및 그 데이터 전송 방법 Download PDF

Info

Publication number
KR20130057890A
KR20130057890A KR1020110123860A KR20110123860A KR20130057890A KR 20130057890 A KR20130057890 A KR 20130057890A KR 1020110123860 A KR1020110123860 A KR 1020110123860A KR 20110123860 A KR20110123860 A KR 20110123860A KR 20130057890 A KR20130057890 A KR 20130057890A
Authority
KR
South Korea
Prior art keywords
data
cache
processor
search result
nonvolatile memory
Prior art date
Application number
KR1020110123860A
Other languages
English (en)
Inventor
심준석
박영선
Original Assignee
시게이트 테크놀로지 인터내셔날
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 시게이트 테크놀로지 인터내셔날 filed Critical 시게이트 테크놀로지 인터내셔날
Priority to KR1020110123860A priority Critical patent/KR20130057890A/ko
Priority to US13/682,790 priority patent/US20130138865A1/en
Publication of KR20130057890A publication Critical patent/KR20130057890A/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0884Parallel mode, e.g. in parallel with main memory or CPU
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/217Hybrid disk, e.g. using both magnetic and solid state storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

하이브리드 드라이브에서의 데이터 전송 방법이 개시된다. 본 발명의 실시 예에 따른 하이브리드 드라이브의 데이터 전송 방법은 제1 프로세서가 호스트로부터 리드(Read) 명령을 수신하는 단계, 상기 제1 프로세서가 상기 수신된 리드 명령을 메일 박스(Mail Box)를 통하여 제2 프로세서로 전송하는 리드 명령 전송 단계, 상기 제1 프로세서가 상기 수신된 리드 명령에 따라 제1 캐쉬(Cache) 내에서 목적 데이터를 검색하여 제1 검색 결과를 출력하는 제1 캐쉬 검색 단계 및 상기 제2 프로세서가 상기 수신된 리드 명령에 따라 제2 캐쉬 내에서 상기 목적 데이터를 검색하여 제2 검색 결과를 출력하는 제2 캐쉬 검색 단계를 포함하며, 상기 제1 캐쉬 검색 단계와 제2 캐쉬 검색 단계는 병렬적으로 수행되어 보다 빠른 데이터 액세스 속도를 얻을 수 있는 효과가 있다.

Description

하이브리드 드라이브 및 그 데이터 전송 방법{Hybrid drive and Data transfer method there-of}
본 발명은 데이터 저장 장치에 관한 것으로서, 보다 상세하게는, 데이터 저장 매체로 하드 디스크와 비휘발성 메모리를 함께 사용하는 하이브리드 드라이브 및 그 데이터 전송 방법에 관한 것이다.
일반적인 하드 디스크 드라이브(hard disk drive)에서 필요한 데이터(data)를 액세스(acess)하기 위해서는 드라이브 내부의 스핀들 모터(spindle motor)의 회전 속도가 일정한 값에 도달해야 한다. 이러한 속도에 도달하는 시간만큼 데이터의 액세스가 지연되므로, 일반적인 하드 디스크 드라이브는 느린 부팅(booting) 속도, 전력 사용량의 증가 등의 문제점이 있었다.
이를 보완하기 위해 하이브리드 드라이브(hybrid drive)가 개발되었으며, 일반적인 하드 디스크와 달리 상기 하이브리드 드라이브는 자기 디스크(magnetic disk) 외에 플래시 메모리(flash memory)를 내장하고 있다.
상기 플래시 메모리는 비휘발성 캐쉬(non-volatile cache)의 일종으로 휘발성 캐쉬(volatile cache)인 디램(DRAM)과 달리 전력 공급을 중단하여도 데이터가 보존되며, 상기 자기 디스크보다 데이터 액세스 속도가 빠르다는 특징이 있다. 이를 이용해 호스트는 상기 플래쉬 메모리 상에 부팅에 필요한 파일을 저장하여 운영체제의 부팅 시간을 단축할 수 있다. 또한, 사용 빈도가 높은 데이터를 상기 플래시 메모리 상에 라이트(write)하고 리드(read)하여, 데이터 액세스 속도를 높이고 전력 소비를 줄일 수 있는 장점이 있다.
상기 하이 브리드 드라이브에는 호스트와 자기 디스크 간의 데이터 전송 속도의 차이를 최소화하기 위해 데이터 액세스 속도가 빠른 휘발성 캐쉬(주로 DRAM)가 탑재되어 있다. 상기 자기 디스크 또는 플래시 메모리의 데이터에 액세스 하기 전에, 상기 휘발성 캐쉬에 필요한 데이터가 없는지 먼저 검색하게 된다. 따라서, 상기 플래시 메모리에 필요한 데이터가 존재할 경우 먼저 상기 휘발성 캐쉬를 검색해야 하고, 상기 자기 디스크에 필요한 데이터가 존재할 경우 먼저 상기 휘발성 캐쉬 및 플래시 메모리를 검색해야 하므로 이러한 시간만큼 데이터 액세스 속도는 느려지게 된다. 이러한 문제점을 해결하기 위한 새로운 하이브리드 드라이브가 요구된다.
본 발명이 이루고자 하는 기술적 과제는 하이브리드 드라이브에서 디스크 블록의 1차 캐쉬와 비휘발성 메모리 블록의 2차 캐쉬에서 목적 데이터 검색을 병렬적으로 수행하여 데이터 액세스 속도가 빠른 하이브리드 드라이브 및 그 데이터 전송 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 하이브리드 드라이브의 데이터 전송 방법은 제1 프로세서가 호스트로부터 리드 명령을 수신하는 단계, 상기 제1 프로세서가 상기 수신된 리드 명령을 메일 박스(Mail Box)를 통하여 제2 프로세서로 전송하는 리드 명령 전송 단계, 상기 제1 프로세서가 상기 수신된 리드 명령에 따라 제1 캐쉬 내에서 목적 데이터를 검색하여 제1 검색 결과를 출력하는 제1 캐쉬 검색 단계 및 상기 제2 프로세서가 상기 수신된 리드 명령에 따라 제2 캐쉬 내에서 상기 목적 데이터를 검색하여 제2 검색 결과를 출력하는 제2 캐쉬 검색 단계를 포함하며, 상기 제1 캐쉬 검색 단계와 제2 캐쉬 검색 단계는 병렬적으로 수행된다.
실시 예에 따라 상기 하이브리드 드라이브의 데이터 전송 방법은 상기 제1 또는 제2 검색 결과에 기초하여 상기 제1 캐쉬, 비휘발성 메모리 또는 디스크 중 어느 하나에 저장된 데이터를 리드하는 데이터 리드 단계 및 상기 데이터 리드 단계에서 리드된 데이터를 상기 호스트로 전송하는 데이터 전송 단계를 더 포함한다.
실시 예에 따라 상기 메일 박스는 상기 제1 프로세서가 상기 제2 프로세서로, 또는 상기 제2 프로세서가 상기 제1 프로세서로 전송하는 제어 신호를 저장하는 커맨드 박스(Command Box), 상기 메일 박스의 제어 권한을 결정하는 복수의 세머포어 비트(Semaphore Bit)를 저장하는 세머포어 박스(Semaphore Box) 및 제1 버퍼가 제2 버퍼로, 또는 상기 제2 버퍼가 상기 제1 버퍼로 전송하는 데이터를 저장하는 적어도 두 개의 데이터 박스(Data Box)를 포함한다.
실시 예에 따라 상기 데이터 리드 단계는 상기 제1 검색 결과가 히트(Hit)일 경우 상기 제1 캐쉬로부터 상기 목적 데이터를 리드하고, 상기 제1 검색 결과가 미스(Miss)일 경우 상기 제1 프로세서가 상기 제2 검색 결과를 상기 메일 박스를 통해 수신하고, 상기 제2 검색 결과가 히트일 경우 상기 비휘발성 메모리로부터 상기 목적 데이터를 리드하고, 상기 제2 검색 결과가 미스일 경우 상기 디스크로부터 상기 목적 데이터를 리드한다.
실시 예에 따라 상기 데이터 리드 단계는 상기 제2 검색 결과가 히트일 경우 상기 비휘발성 메모리로부터 상기 목적 데이터를 리드하고, 상기 제2 검색 결과가 미스일 경우 상기 제2 프로세서가 상기 제1 검색 결과를 상기 메일 박스를 통해 수신하고, 상기 제1 검색 결과가 히트일 경우 상기 제1 캐쉬로부터 상기 목적 데이터를 리드하고, 상기 제1 검색 결과가 미스일 경우 상기 디스크로부터 상기 목적 데이터를 리드한다.
실시 예에 따라 상기 데이터 전송 단계는 상기 비휘발성 메모리로부터 상기 목적 데이터를 리드한 경우 상기 목적 데이터를 메일 박스를 통해 상기 호스트로 전송한다.
실시 예에 따라 상기 데이터 전송 단계는 상기 제1 캐쉬 또는 디스크로부터 상기 목적 데이터를 리드한 경우 상기 목적 데이터를 메일 박스를 통해 상기 호스트로 전송한다.
실시 예에 따라 상기 제1 캐쉬는 디램 캐쉬(Dram Cache)이고, 상기 제2 캐쉬는 엔브이 캐쉬(NV Cache)일 수도 있다.
본 발명의 실시 예에 따른 하이브리드 드라이브는 호스트와의 제어 신호 또는 데이터의 전송을 매개하는 인터페이스(Interface) 블록, 상기 전송된 제어 신호에 따라 상기 인터페이스 블록과 상기 제어 신호 또는 데이터를 교환하는 디스크 블록, 상기 전송된 제어 신호에 따라 상기 인터페이스 블록과 상기 제어 신호 또는 데이터를 교환하는 비휘발성 메모리 블록 및 상기 디스크 블록과 비휘발성 메모리 블록 사이에서 상기 제어 신호 또는 데이터를 저장하고, 전송하는 메일 박스를 포함한다.
실시 예에 따라 상기 디스크 블록은 상기 디스크 블록의 동작을 제어하는 제1 프로세서(Processor), 상기 디스크 블록을 통과하는 상기 제어 신호 및 데이터를 임시로 저장하고, 전송하는 제1 버퍼(Buffer) 및 상기 제1 버퍼 내의 데이터의 저장 또는 삭제 정보를 저장하는 제1 캐쉬(cache)를 포함한다.
실시 예에 따라 상기 비휘발성 메모리 블록은 상기 비휘발성 메모리 블록의 동작을 제어하는 제2 프로세서, 상기 비휘발성 메모리 블록을 통과하는 상기 제어 신호 및 데이터를 임시로 저장하고, 전송하는 제2 버퍼 및 비휘발성 메모리 내의 데이터의 저장 또는 삭제 정보를 저장하는 제2 캐쉬를 포함한다.
실시 예에 따라 상기 메일 박스는 상기 제1 프로세서가 상기 제2 프로세서로, 또는 상기 제2 프로세서가 상기 제1 프로세서로 전송하는 제어 신호를 저장하는 커맨드 박스(Command Box), 상기 메일 박스의 제어 권한을 결정하는 복수의 세머포어 비트(Semaphore Bit)를 저장하는 세머포어 박스(Semaphore Box) 및 제1 버퍼가 제2 버퍼로, 또는 상기 제2 버퍼가 상기 제1 버퍼로 전송하는 데이터를 저장하는 적어도 두 개의 데이터 박스(Data Box)를 포함한다.
실시 예에 따라 상기 복수의 세머포어 비트는 각각 상기 데이터 박스 중 어느 하나에 대응되며, 제1 또는 제2 프로세서 중 어느 하나가 제어 권한을 가지는지 결정한다.
실시 예에 따라 상기 적어도 둘 이상의 데이터 박스는 상기 각각의 데이터 박스가 상기 디스크 블록 또는 비휘발성 메모리 블록 중 어느 하나와 상기 데이터를 교환한다.
실시예에 따라 상기 디스크 블록은 자기 디스크 블록이고, 상기 비휘발성 메모리 블록은 플래시 메모리 블록일 수도 있다.
상술한 바와 같이 본 발명의 실시예에 따른 하이브리드 드라이브의 데이터 전송 방법은 제1 프로세서가 호스트로부터 리드 명령을 수신하고 제1 캐쉬(Cache) 내에서 목적 데이터를 검색하여 제1 검색 결과를 출력하는 제1 캐쉬 검색 단계와 제2 프로세서가 제2 캐쉬 내에서 상기 목적 데이터를 검색하여 제2 검색 결과를 출력하는 제2 캐쉬 검색 단계가 병렬적으로 수행되어 보다 빠른 데이터 액세스 속도를 얻을 수 있다.
도 1은 본 발명의 비교예에 따른 하이브리드 드라이브의 블록도이다.
도 2는 도 1에 도시된 본 발명의 비교예에 따른 하이브리드 드라이브의 리드 명령 수행 흐름도이다.
도 3은 본 발명의 실시예에 따른 하이브리드 드라이브의 블록도이다.
도 4는 본 발명의 실시예에 따른 하이브리드 드라이브의 데이터 전송 방법의 흐름도이다.
도 5는 DMA의 동작원리를 나타내는 구성도이다.
도 6은 도 3에 도시된 메일 박스의 구성도이다.
도 7은 도 6에 도시된 제1 및 제2 데이터 박스의 동작 원리를 보여주는 흐름도이다.
도 8은 본 발명의 다른 실시예에 따른 하이브리드 드라이브의 블록도이다.
도 9는 본 발명의 다른 실시예에 따른 하이브리드 드라이브의 데이터 전송 방법의 흐름도이다.
도 10은 도 8에 도시된 메일 박스(640)의 구성도이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 비교예에 따른 하이브리드 드라이브(100)의 블록도이다.
도 1을 참조하면 본 발명의 비교예에 따른 하이브리드 드라이브(100)는 사타(SATA) 인터페이스 블록(104), 프로세서(112), 버퍼부(114) 및 디스크 블록(122)을 포함한다.
사타 인터페이스 블록(104)은 사타 호스트(102)와 명령 또는 데이터를 교환하는 기능을 수행하며, 사타 통신 블록(106), 커맨드 블록(108) 및 사타 DMA(110)를 포함한다.
사타 통신 블록(106)은 사타 호스트(102)와의 통신하는 기능을 수행한다. 커맨드 블록(108)은 사타 호스트(102)가 보낸 명령을 수신하여 저장하는 블록이고, 사타 DMA(110)는 사타 호스트(102)가 보낸 데이터를 사타 통신 블록(106)을 통해 버퍼(118)에 저장하거나 버퍼(118)의 데이터를 사타 통신 블록(106)을 통해 사타 호스트(102)로 전송하는 기능을 수행한다.
프로세서(112)는 커맨드 블록(108)을 통해 수신된 명령을 분석하여 하이브리드 드라이브(100)를 제어한다.
버퍼부(114)는 버퍼(118), 제1 캐쉬(116) 및 제2 캐쉬(120)를 포함한다. 버퍼(118)는 사타 호스트(102)와 디스크 블록(122) 사이에서 교환되는 데이터를 임시 저장한다. 제1 캐쉬(116)는 디스크 블록(122)의 상대적으로 느린 데이터 액세스 속도를 보상하는 기능을 수행하며, 제2 캐쉬(120)는 비휘발성 메모리(132) 내의 데이터 저장 정보를 저장한다.
디스크 블록(122)은 미디어 DMA(124), 디스크 드라이버(126), 디스크(128), 비휘발성 메모리 드라이버(130) 및 비휘발성 메모리(132)를 포함한다.
미디어 DMA(124)는 별도의 프로세서(112)의 도움(혹은 개입)없이 버퍼(118)와 디스크(128) 또는 비휘발성 메모리(132) 간의 상기 데이터의 전송을 가능하게 한다.
디스크(128) 및 비휘발성 메모리(132)는 사용자 데이터를 저장하는 장치이고, 디스크 드라이버(126) 및 비휘발성 메모리 드라이버(130)는 각각 디스크(128) 및 비휘발성 메모리(132)의 포맷에 맞추어 상기 데이터를 리드 또는 라이트 할 수 있게 하는 장치이다.
도 2는 도 1에 도시된 본 발명의 비교예에 따른 하이브리드 드라이브(100)의 리드 명령 수행 흐름도이다.
사타 호스트(102)가 디스크 블록(122)으로부터 목적 데이터를 읽어 들이는 리드 명령을 커맨드 블록(108)에 전송하고, 커맨드 블록(108)은 전송된 상기 리드 명령을 프로세서(112)에 전송한다(S130).
프로세서(112)가 제1 캐쉬(116)에 상기 목적 데이터가 존재하는지 여부를 검색한다(S132).
제1 캐쉬(116)에 상기 목적 데이터가 존재하면 제1 캐쉬(116)로부터 상기 목적 데이터를 리드하고(S134), 제1 캐쉬(116)에 상기 목적 데이터가 존재하지 않으면 제2 캐쉬(120)에 상기 목적 데이터가 존재하는지 여부를 검색한다(S136).
제2 캐쉬(120)에 상기 목적 데이터가 존재하면 비휘발성 메모리(132)로부터 상기 목적 데이터를 리드하고(S138), 제2 캐쉬(120)에 상기 목적 데이터가 존재하지 않으면 디스크(128)로부터 상기 목적 데이터를 리드한다(S140).
리드된 상기 목적 데이터는 사타 인터페이스 블록(104)을 통해 사타 호스트(102)로 전송된다(S142).
결국 본 발명의 비교예에 따른 하이브리드 드라이브(100)는 제1 캐쉬(116), 제2 캐쉬(120) 및 디스크(128)에서의 상기 목적 데이터 검색이 순차적으로 이루어진다. 따라서, 비휘발성 메모리(132)에 상기 목적 데이터가 존재할 경우 제1 캐쉬(116)의 검색 시간만큼 상기 목적 데이터의 전송이 지연되고, 디스크(128)에 상기 목적 데이터가 존재할 경우 제1 캐쉬(116) 및 제2 캐쉬(120)의 검색 시간만큼 상기 목적 데이터의 전송이 지연된다.
도 3은 본 발명의 실시 예에 따른 하이브리드 드라이브(300)의 블록도이다.
도 3을 참조하면, 본 발명의 실시 예에 따른 하이브리드 드라이브(300)는 인터페이스 블록(310), 디스크 블록(320), 메일 박스(340) 및 비휘발성 메모리 블록(350)을 포함한다.
인터페이스 블록(310)은 호스트(302)와 명령 또는 데이터를 교환하는 기능을 수행하며, 인터페이스 블록(310)은 사타(SATA) 인터페이스 블록(310)일 수 있으나 이에 한정되지 않는다. 본 발명의 실시 예에 따른 사타 인터페이스 블록(310)은 사타 통신 블록(312), 커맨드 블록(314) 및 사타 DMA(316)를 포함한다.
사타 통신 블록(312)은 호스트(302)와 통신하는 기능을 수행한다. 커맨드 블록(314)은 호스트(302)가 보낸 명령을 수신하여 저장하고, 디스크 블록(320)으로 전송한다. 사타 DMA(316)는 호스트(302)가 보낸 데이터를 사타 통신 블록(312)을 통해 제1 버퍼(326)에 저장하거나 제1 버퍼(326)의 데이터를 사타 통신 블록(312)을 통해 호스트(302)로 전송하는 기능을 수행한다.
디스크 블록(320)은 제1 프로세서(322), 제1 캐쉬(324), 제1 버퍼(326), 디스크 DMA(328), 디스크 드라이버(320), 디스크(332) 및 제1 DMA(334)를 포함한다.
제1 프로세서(322)는 커맨드 블록(314)을 통해 호스트(302)의 명령을 수신하고 그에 따라 디스크 블록(320)을 제어한다.
제1 캐쉬(324)는 디스크 블록(320)의 상대적으로 느린 데이터 액세스 속도를 보상하는 기능을 수행하며, 제1 버퍼(326)는 호스트(302)와 디스크(332) 사이에서 교환되는 데이터를 임시 저장한다. 제1 캐쉬(324) 또는 제1 버퍼(326)는 데이터 액세스 속도가 빠른 디램 캐쉬일 수 있으나 이에 한정되지 않는다.
디스크 DMA(328)는 제1 버퍼(326)와 디스크(332) 간의 데이터의 전송을 담당하며, 디스크 드라이버(320)는 디스크(332)의 포맷에 맞추어 데이터를 리드 또는 라이트 할 수 있게 한다. 디스크(332)는 사용자 데이터를 저장하는 장치이다. 디스크(332)는 자기 디스크일 수 있으나 이에 한정되지 않는다.
제1 DMA(334)는 제1 버퍼(326)와 메일 박스(340) 간의 상기 데이터의 전송을 담당한다.
메일 박스(340)는 디스크 블록(320)과 비휘발성 메모리 블록(350) 간의 제어 신호 또는 데이터의 교환을 담당하며, 상세한 구성은 후술하기로 한다.
비휘발성 메모리 블록(350)은 제2 DMA(352), 제2 캐쉬(354), 제2 버퍼(356), 비휘발성 메모리 DMA(358), 비휘발성 메모리 드라이버(360), 비휘발성 메모리(362) 및 제2 프로세서(364)를 포함한다.
제2 DMA(352)는 제2 버퍼(356)와 메일 박스(340) 간의 데이터의 전송을 담당하는 장치이다.
제2 캐쉬(354)는 비휘발성 메모리(362) 내의 데이터 저장 정보를 저장하며, 제2 버퍼(356)는 메일 박스(340)와 비휘발성 메모리(362) 사이에서 교환되는 데이터를 임시 저장한다. 제2 캐쉬(354) 또는 제2 버퍼(356)는 데이터 액세스 속도가 빠른 디램 캐쉬(DRAM cache)일 수 있으나 이에 한정되지 않는다.
비휘발성 메모리 DMA(358)는 제2 버퍼(356)와 비휘발성 메모리(362) 간의 데이터의 전송을 담당한다. 비휘발성 메모리 드라이버(360)는 비휘발성 메모리(362)의 포맷에 맞추어 데이터를 리드 또는 라이트 할 수 있게 하며, 비휘발성 메모리(362)는 사용자 데이터를 저장하는 장치이다. 비휘발성 메모리(362)는 플래시 메모리, RRAM 또는 PRAM일 수 있으나 이에 한정되지 않는다.
제2 프로세서(364)는 메일 박스(340)를 통해 호스트(302)의 명령을 수신하고, 그에 따라 비휘발성 메모리 블록(350)을 제어한다.
도 4는 도3에 도시된 본 발명의 실시 예에 따른 하이브리드 드라이브(300)의 데이터 전송 방법의 흐름도이다.
도 3 및 도 4를 참조하면, 커맨드 블록(314)은 호스트(302)가 전송한 리드 명령을 저장하고, 디스크 블록(320)의 제1 프로세서(322)에 전송한다(S400). 제1 프로세서(322)는 전송된 상기 리드 명령을 즉시 메일 박스(340)를 통해 제2 프로세서(364)에 전송한다(S402).
제1 프로세서(322) 및 제2 프로세서(364)는 호스트(302)가 전송한 상기 리드 명령에 따라 각각 제1 캐쉬(324) 및 제2 캐쉬(354)에 목적 데이터가 존재하는지 여부를 병렬적으로 검색한다(S404). 즉, 제1 프로세서(322)는 제1 캐쉬(324) 내에 상기 목적 데이터가 존재하는지 여부를 검색하여 제1 검색 결과를 출력하며(S406), 제2 프로세서(364)는 제2 캐쉬(354) 내에 상기 목적 데이터가 존재하는지 여부를 검색하여 제2 검색 결과를 출력한다(S408).
상기 제1 검색 결과가 히트(예컨대, 제1 캐쉬(324)에서 상기 목적 데이터를 발견한 경우)이면, 제1 프로세서(322)가 제1 캐쉬(324)로부터 상기 목적 데이터를 리드하고(S410), 사타 인터페이스 블록(310)을 통해 호스트(302)로 전송한다(S416). 상기 제1 검색 결과가 미스(예컨대, 제1 캐쉬(324)에서 상기 목적 데이터를 발견하지 못한 경우)이면, 제1 프로세서(322)는 메일 박스(340)를 통해 제2 프로세서(364)에 의한 제2 검색 결과를 수신한다(S408).
상기 제2 검색 결과가 히트(예컨대, 비휘발성 메모리(362)에서 상기 목적 데이터를 발견한 경우)이면, 제2 프로세서(364)가 비휘발성 메모리(362)로부터 상기 목적 데이터를 리드하고(S414) 제2버퍼에 상기 목적 데이터를 임시 저장한다. 제2 프로세서(364)는 임시 저장된 상기 목적 데이터를 메일 박스(340)를 통해 제1 버퍼(326)에 전송하며, 제1 프로세서(322)는 전송된 상기 목적 데이터를 제1 버퍼(326)에 임시 저장한다. 제1 프로세서(322)는 임시 저장된 상기 목적 데이터를 사타 인터페이스 블록(310)을 통해 호스트(302)로 전송한다(S416).
상기 제2 검색 결과가 미스(예컨대, 비휘발성 메모리(362)에서 상기 목적 데이터를 발견하지 못한 경우)이면, 제1 프로세서(322)는 디스크(332)로부터 상기 목적 데이터를 리드하여(S412) 제1 버퍼(326)에 임시 저장한다. 제1 프로세서(322)는 임시 저장된 상기 목적 데이터를 사타 인터페이스 블록(310)을 통해 호스트(302)로 전송한다(S416).
본 발명의 실시 예에 따르면, 제2 프로세서(364)가 호스트(302)로부터 전송된 상기 리드 명령을 메일 박스(340)를 통해 수신하여, 제2 프로세서(364)가 제2 캐쉬(354)에서의 상기 목적 데이터 검색을 제1 캐쉬(324)에서의 상기 목적 데이터 검색과 병렬적으로 수행하게 된다. 따라서, 비휘발성 메모리(362) 또는 디스크(332)에 상기 목적 데이터가 존재하는 경우 제1 캐쉬(324)에 상기 목적 데이터가 존재하는지 여부와 무관하게 제2 캐쉬(354)에서 검색을 실행하므로 빠른 데이터 액세스 속도를 얻을 수 있다.
도 5는 DMA(200)의 동작원리를 나타내는 구성도이다.
DMA(200)는 시작주소(202), 목적지 주소(204) 및 전송 길이(206)만 지정하면, 별도의 프로세서의 도움 없이도 데이터 전송을 가능하게 하는 모듈이다. 즉, DMA와 버스를 공유하는 메모리 1(208) 내지 N(210) 또는 IO 장치 1(212) 내지 N(214) 은 중복되지 않는 주소를 갖게 되므로 DMA(200)는 프로세서의 도움 없이도 데이터의 전송이 가능하다. 도 3에 도시된 SATA DMA(316), 제1 DMA(334), 디스크 DMA(328), 제2 DMA(352) 및 비휘발성 메모리 DMA(358)는 상기 DMA(200)의 구조를 가질 수 있으며, 별도의 프로세서의 도움 없이도 데이터 전송이 가능할 수 있다.
도 6은 도 3에 도시된 메일 박스(340)의 구성도이다.
도 3 내지 도 4 및 도 6을 참조하면, 메일 박스(340)는 커맨드 박스(342), 적어도 두 개의 데이터 박스(346 및 348) 및 세머포어 박스(344)를 포함한다.
커맨드 박스(342)는 제1 프로세서(322)가 전송한 리드 명령을 저장한 후 제2 프로세서(364)로 상기 리드 명령을 전송하거나, 제2 프로세서(364)가 전송한 제2 검색 결과를 저장한 후 제1 프로세서(322)로 전송한다.
적어도 두 개의 데이터 박스(346 및 348)는 디스크 블록(320) 또는 비휘발성 메모리 블록(350) 중 어느 하나가 상대방에게 전송할 데이터를 저장한다.
세머포어 박스(344)는 메일 박스(340)의 제어 권한을 결정하는 복수의 세머포어 비트를 저장한다. 복수의 세머포어 비트는 각각 데이터 박스(346 및 348) 중 어느 하나에 대응되며, 제1 프로세서(322) 또는 제2 프로세서(364) 중 어느 하나가 제어 권한을 가지는지 결정한다.
예컨대 세머포어 비트가 0이면 제1 프로세서(322)가 제1 DMA(334)를 통해 데이터 박스에 접근할 수 있는 권한을 가지고, 세머포어 비트가 1이면 제2 프로세서(364)가 제2 DMA(352)를 통해 데이터 박스에 접근할 수 있는 권한을 가진다고 가정한다.
만약 세머포어 비트가 01이면, 제1 프로세서(322)는 제1 데이터 박스(346)에 접근할 수 있는 권한을 가지고 제2 프로세서(364)는 제2 데이터 박스(348)에 접근할 수 있는 권한을 가진다.
각 세머포어 비트가 변경되면, 상대방 프로세서에 메일 박스(340)의 상기 제어 권한이 이양되며 인터럽트A 또는 인터럽트 B를 통해 이러한 제어권한 이양 상황을 각 프로세서에 전달한다.
도 7은 도 6에 도시된 제1 및 제2 데이터 박스(348)의 동작 원리를 보여주는 흐름도이다.
도 6 및 도7을 참고하면, 제1 DMA(334)로부터 제2 DMA(352)로 데이터를 전송하고자 하는 경우 먼저 제1 DMA(334)는 제1 데이터 박스(346)에 제1 데이터를 라이트하고(S500) 커맨드 박스(342)는 제1 DMA(334)로부터 제2 DMA(352)로 상기 제1 데이터를 전송하라는 명령을 제2 DMA(352)에 전송한다. 제1 데이터 박스(346)에 상기 제1 데이터의 라이팅이 완료된 후 세머포어 박스(344)는 제1 데이터 박스(346)에 대응되는 세머포어 비트를 변경하여 인터럽트 B로 제어권한 이양 상황을 제2 DMA(352)에 전달한다. 제2 DMA(352)는 메일 박스(340)로부터 수신한 상기 데이터의 전송 명령과 제어권한 이양 상황에 기초하여 제1 데이터 박스(346)의 제1 데이터를 리드한다(S504). 또한, 제2 DMA(352)가 제1 데이터 박스(346)의 상기 제1 데이터를 리드하는 동안 제1 DMA(334)는 제2 데이터를 라이트한다(S502).
제2 DMA(352)에 의한 상기 제1 데이터의 리드와 제1 DMA(334)에 의한 상기 제2 데이터의 라이트가 완료되면, 세머포어 박스(344)는 세머포어 비트를 변경하여 인터럽트 A 및 인터럽트 B로 제어권한 이양 상황을 제1 DMA(334) 및 제2 DMA(352)에 전달한다. 제2 DMA(352)는 메일 박스(340)로부터 수신한 상기 데이터의 전송 명령과 제어권한 이양 상황에 기초하여 제2 데이터 박스(348)의 상기 제2 데이터를 리드한다(S508). 또한, 제2 DMA(352)가 제2 데이터 박스(348)의 상기 제2 데이터를 리드하는 동안 제1 DMA(334)는 제1 데이터 박스(346)의 제3 데이터를 라이트한다(S506).
즉, 제1 DMA(334)는 제1 데이터 박스(346) 또는 제2 데이터 박스(348) 중 어느 하나에 번갈아 가며 각 데이터를 라이트하며, 제2 DMA(352)는 제1 DMA(334)가 데이터 라이트를 완료한 데이터 박스의 데이터를 번갈아 가며 리드한다(S500 내지 S514). 이러한 구성은 제1 DMA(334)와 제2 DMA(352)가 어느 하나의 데이터 박스(346 또는 348)에 동시에 접근할 수 없는 경우에 매우 유용하다.
도 8은 본 발명의 다른 실시 예에 따른 하이브리드 드라이브(600)의 블록도이다.
도 8을 참조하면, 본 발명의 다른 실시 예에 따른 하이브리드 드라이브(600)는 인터페이스 블록(610), 디스크 블록(620) 및 메일 박스(640), 비휘발성 메모리 블록(650)을 포함한다.
인터페이스 블록(610)은 호스트(602)와 명령 또는 데이터를 교환하는 기능을 수행하며, 인터페이스 블록(610)은 사타 인터페이스 블록(610)일 수 있으나 이에 한정되지 않는다. 본 발명의 다른 실시 예에 따른 인터페이스 블록(610)은 사타 통신 블록(612), 커맨드 블록(614) 및 사타 DMA(616)를 포함한다.
사타 통신 블록(612)은 호스트(602)와 통신하는 기능을 수행한다. 커맨드 블록(614)은 호스트(602)가 보낸 명령을 수신하여 저장하고 디스크 블록(620)으로 전송한다. 사타 DMA(616)는 호스트(602)가 보낸 데이터를 사타 통신 블록(612)을 통해 제2 버퍼(656)에 저장하거나 제2 버퍼(656)의 데이터를 사타 통신 블록(612)을 통해 호스트(602)로 전송하는 기능을 수행한다.
디스크 블록(620)은 제1 프로세서(622), 제1 캐쉬(624), 제1 버퍼(626), 디스크 DMA(628), 디스크 드라이버(630), 디스크(632) 및 제1 DMA(634)를 포함한다.
제1 프로세서(622)는 메일 박스(640)를 통해 호스트(602)의 명령을 수신하고, 그에 따라 디스크 블록(620)을 제어한다.
제1 캐쉬(624)는 디스크 블록(620)의 상대적으로 느린 데이터 액세스 속도를 보상하는 기능을 수행하며, 제1 버퍼(626)는 메일 박스(640)와 디스크(632) 사이에서 교환되는 상기 데이터를 임시 저장한다. 제1 캐쉬(624) 또는 제1 버퍼(626)는 데이터 액세스 속도가 빠른 디램 캐쉬일 수 있으나 이에 한정되지 않는다.
디스크 DMA(628)는 제1 버퍼(626)와 디스크(632) 간의 상기 데이터의 전송을 담당한다. 디스크 드라이버(630)는 디스크(632)의 포맷에 맞추어 상기 데이터를 리드 또는 라이트 할 수 있게 하는 장치이며, 디스크(632)는 사용자 데이터를 저장하는 장치이다. 디스크(632)는 자기 디스크일 수 있으나 이에 한정되지 않는다.
제1 DMA(634)는 제1 버퍼(626)와 메일 박스(640) 간의 상기 데이터의 전송을 담당한다.
메일 박스(640)는 디스크 블록(620)과 비휘발성 메모리 블록(650) 간의 제어 신호 또는 데이터의 교환을 담당하며, 이에 대한 상세한 구성은 후술하기로 한다.
비휘발성 메모리 블록(650)은 제2 DMA(652), 제2 캐쉬(654), 제2 버퍼(656), 비휘발성 메모리 DMA(658), 비휘발성 메모리 드라이버(660), 비휘발성 메모리(662) 및 제2 프로세서(664)를 포함한다.
제2 DMA(652)는 제2 버퍼(656)와 메일 박스(640) 간의 상기 데이터의 전송을 담당한다.
제2 캐쉬(654)는 비휘발성 메모리(662) 내의 데이터 저장 정보를 저장하며, 제2 버퍼(656)는 호스트(602)와 비휘발성 메모리(662) 사이에서 교환되는 상기 데이터를 임시 저장한다. 제2 캐쉬(654)는 비휘발성 메모리 캐쉬(Non-volatile memory cache)일 수 있고, 제2 버퍼(656)는 데이터 액세스 속도가 빠른 디램 캐쉬(DRAM cache)일 수 있으나 이에 한정되지 않는다.
비휘발성 메모리 DMA(658)는 제2 버퍼(656)와 비휘발성 메모리(662) 간의 데이터의 전송을 담당한다. 비휘발성 메모리 드라이버(660)는 비휘발성 메모리(662)의 포맷에 맞추어 데이터를 리드 또는 라이트 할 수 있게 한다. 비휘발성 메모리(662)는 사용자 데이터를 저장하는 장치이다. 비휘발성 메모리(662)는 플래시 메모리, RRAM 또는 PRAM일 수 있으나 이에 한정되지 않는다.
제2 프로세서(664)는 사타 인터페이스 블록(610)을 통해 호스트(602)의 명령을 수신하고 그에 따라 비휘발성 메모리 블록(650)을 제어한다.
도 9는 도 8에 도시된 본 발명의 다른 실시예에 따른 하이브리드 드라이브(600)의 데이터 전송 방법의 흐름도이다.
도 8 및 도 9를 참조하면, 커맨드 블록(614)은 호스트(602)가 전송한 리드 명령을 저장하고, 비휘발성 메모리 블록(650)의 제2 프로세서(664)에 전송한다(S700). 제2 프로세서(664)는 전송된 상기 리드 명령을 즉시 메일 박스(640)를 통해 제1 프로세서(622)에 전송한다(S702).
제1 프로세서(622) 및 제2 프로세서(664)는 호스트(602)가 전송한 상기 리드 명령에 따라 각각 제1 캐쉬(624) 및 제2 캐쉬(654)에 목적 데이터가 존재하는지 여부를 병렬적으로 검색한다(S704). 즉, 제1 프로세서(622)는 제1 캐쉬(624) 내에 상기 목적 데이터가 존재하는지 여부를 검색하여 제1 검색 결과를 출력하며(S708), 제2 프로세서(664)는 제2 캐쉬(654) 내에 상기 목적 데이터가 존재하는지 여부를 검색하여 제2 검색 결과를 출력한다(S706).
상기 제2 검색 결과가 히트(비휘발성 메모리(662)에서 상기 목적 데이터를 발견한 경우)이면, 제2 프로세서(664)가 비휘발성 메모리(662)로부터 상기 목적 데이터를 리드한다(S710). 상기 제2 검색 결과가 미스(비휘발성 메모리(662)에서 상기 목적 데이터를 발견하지 못한 경우)이면, 제2 프로세서(664)는 메일 박스(640)를 통해 제1 프로세서(622)에 의한 상기 제1 검색 결과를 수신한다(S708).
상기 제1 검색 결과가 히트(제1 캐쉬(624)에서 상기 목적 데이터를 발견한 경우)이면, 제1 프로세서(622)가 제1 캐쉬(624)로부터 상기 목적 데이터를 리드하고(S714) 메일 박스(640)를 통해 제2 버퍼(656)에 상기 목적 데이터를 전송한다. 제2 프로세서(664)는 제2 버퍼(656)에 임시 저장된 상기 목적 데이터를 사타 인터페이스 블록(610)을 통해 호스트(602)로 전송한다(S716).
상기 제1 검색 결과가 미스(제1 캐쉬(624)에서 상기 목적 데이터를 발견하지 못한 경우)이면, 제1 프로세서(622)는 디스크(632)로부터 상기 목적 데이터를 리드하여(S712) 제1 버퍼(626)에 임시 저장한다. 제1 프로세서(622)는 임시 저장된 상기 목적 데이터를 메일 박스(640)를 통해 제2 버퍼(656)에 전송한다. 제2 프로세서(664)는 제2 버퍼(656)에 임시 저장된 상기 목적 데이터를 사타 인터페이스 블록(610)을 통해 호스트(602)로 전송한다(S716).
본 발명의 다른 실시예에 따르면, 제1 프로세서가 호스트로부터 전송된 리드 명령을 메일 박스를 통해 수신하여, 제1 프로세서가 제1 캐쉬(624)에서의 상기 목적 데이터 검색을 제2 캐쉬에서의 상기 목적 데이터 검색과 병렬적으로 수행하게 된다. 따라서, 제1 캐쉬(624) 또는 디스크(632)에 상기 목적 데이터가 존재하는 경우 제2 캐쉬에 상기 목적 데이터가 존재하는지 여부와 무관하게 제1 캐쉬(624)에서 검색을 실행하므로 빠른 데이터 액세스 속도를 얻을 수 있다.
도 10은 도 8에 도시된 메일 박스(640)의 구성도이다.
도 4 내지 도 6을 참조하면, 메일 박스(640)는 커맨드 박스(642), 적어도 두 개의 데이터 박스(646 및 648) 및 세머포어 박스(644)를 포함한다.
커맨드 박스(642)는 제2 프로세서(622)가 전송한 리드 명령을 저장한 후 제1 프로세서(664)로 상기 리드 명령을 전송하거나, 제1 프로세서(664)가 전송한 제1 검색 결과를 저장한 후 제2 프로세서(622)로 전송한다.
적어도 두 개의 데이터 박스(646 및 648)는 디스크 블록(620) 또는 비휘발성 메모리 블록(650) 중 어느 하나가 상대방에게 전송할 데이터를 저장한다.
세머포어 박스(644)는 메일 박스(640)의 제어 권한을 결정하는 복수의 세머포어 비트를 저장한다. 복수의 세머포어 비트는 각각 데이터 박스(646 및 648) 중 어느 하나에 대응되며, 제1 프로세서(622) 또는 제2 프로세서(664) 중 어느 하나가 제어 권한을 가지는지 결정한다.
예컨대 세머포어 비트가 0이면 제1 프로세서(622)가 제1 DMA(634)를 통해 데이터 박스에 접근할 수 있는 권한을 가지고, 세머포어 비트가 1이면 제2 프로세서(664)가 제2 DMA(652)를 통해 데이터 박스에 접근할 수 있는 권한을 가진다고 가정한다.
만약 세머포어 비트가 01이면, 제1 프로세서(622)는 제1 데이터 박스(646)에 접근할 수 있는 권한을 가지고 제2 프로세서(664)는 제2 데이터 박스(648)에 접근할 수 있는 권한을 가진다.
각 세머포어 비트가 변경되면, 상대방 프로세서에 메일 박스(640)의 상기 제어 권한이 이양되며 인터럽트A 또는 인터럽트 B를 통해 이러한 제어권한 이양 상황을 각 프로세서에 전달한다.
발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
사타 인터페이스 블록(310),
디스크 블록(320),
제1 캐쉬(324),
메일 박스(340),
비휘발성 메모리 블록(350),
제2 캐쉬(354)

Claims (10)

  1. 제1 프로세서가 호스트로부터 리드(Read) 명령을 수신하는 단계;
    상기 제1 프로세서가 상기 수신된 리드 명령을 메일 박스(Mail Box)를 통하여 제2 프로세서로 전송하는 리드 명령 전송 단계;
    상기 제1 프로세서가 상기 수신된 리드 명령에 따라 제1 캐쉬(Cache) 내에서 목적 데이터를 검색하여 제1 검색 결과를 출력하는 제1 캐쉬 검색 단계; 및
    상기 제2 프로세서가 상기 수신된 리드 명령에 따라 제2 캐쉬 내에서 상기 목적 데이터를 검색하여 제2 검색 결과를 출력하는 제2 캐쉬 검색 단계를 포함하며,
    상기 제1 캐쉬 검색 단계와 제2 캐쉬 검색 단계는 병렬적으로 수행되는 하이브리드 드라이브(Hybrid Drive)의 데이터 전송방법.
  2. 제1항에 있어서, 상기 방법은
    상기 제1 또는 제2 검색 결과에 기초하여 상기 제1 캐쉬, 비휘발성 메모리(Nonvolatile Memory) 또는 디스크(Disk) 중 어느 하나에 저장된 데이터를 리드하는 데이터 리드 단계; 및
    상기 데이터 리드 단계에서 리드된 데이터를 상기 호스트로 전송하는 데이터 전송 단계를 더 포함하는 하이브리드 드라이브의 데이터 전송방법.
  3. 제2항에 있어서, 상기 메일 박스는
    상기 제1 프로세서가 상기 제2 프로세서로, 또는 상기 제2 프로세서가 상기 제1 프로세서로 전송하는 제어 신호를 저장하는 커맨드 박스(Command Box);
    상기 메일 박스의 제어 권한을 결정하는 복수의 세머포어 비트(Semaphore Bit)를 저장하는 세머포어 박스(Semaphore Box); 및
    제1 버퍼가 제2 버퍼로, 또는 상기 제2 버퍼가 상기 제1 버퍼로 전송하는 데이터를 저장하는 적어도 두 개의 데이터 박스(Data Box)를 포함하는 하이브리드 드라이브의 데이터 전송방법.
  4. 제2항에 있어서, 상기 데이터 리드 단계는
    상기 제1 검색 결과가 히트(Hit)일 경우 상기 제1 캐쉬로부터 상기 목적 데이터를 리드하는 단계;
    상기 제1 검색 결과가 미스(Miss)일 경우 상기 제1 프로세서가 상기 제2 검색 결과를 상기 메일 박스를 통해 수신하는 단계;
    상기 제2 검색 결과가 히트일 경우 상기 비휘발성 메모리로부터 상기 목적 데이터를 리드하는 단계; 및
    상기 제2 검색 결과가 미스일 경우 상기 디스크로부터 상기 목적 데이터를 리드하는 단계를 포함하는 하이브리드 드라이브의 데이터 전송방법.
  5. 제2항에 있어서, 상기 데이터 리드 단계는
    상기 제2 검색 결과가 히트일 경우 상기 비휘발성 메모리로부터 상기 목적 데이터를 리드하는 단계;
    상기 제2 검색 결과가 미스일 경우 상기 제2 프로세서가 상기 제1 검색 결과를 상기 메일 박스를 통해 수신하는 단계;
    상기 제1 검색 결과가 히트일 경우 상기 제1 캐쉬로부터 상기 목적 데이터를 리드하는 단계; 및
    상기 제1 검색 결과가 미스일 경우 상기 디스크로부터 상기 목적 데이터를 리드하는 단계를 포함하는 하이브리드 드라이브의 데이터 전송방법.
  6. 제2항에 있어서, 상기 데이터 전송 단계는
    상기 비휘발성 메모리로부터 상기 목적 데이터를 리드한 경우 상기 목적 데이터를 상기 메일 박스를 통해 상기 호스트로 전송하는 단계를 포함하는 하이브리드 드라이브의 데이터 전송방법.
  7. 제2항에 있어서, 상기 데이터 전송 단계는
    상기 제1 캐쉬 또는 상기 디스크로부터 상기 목적 데이터를 리드한 경우 상기 목적 데이터를 상기 메일 박스를 통해 상기 호스트로 전송하는 단계를 포함하는 하이브리드 드라이브의 데이터 전송방법.
  8. 호스트와의 제어 신호 또는 데이터의 전송을 매개하는 인터페이스(Interface) 블록;
    상기 전송된 제어 신호에 따라 상기 인터페이스 블록과 상기 제어 신호 또는 데이터를 교환하는 디스크 블록(Disk Block);
    상기 전송된 제어 신호에 따라 상기 인터페이스 블록과 상기 제어 신호 또는 데이터를 교환하는 비휘발성 메모리 블록(Nonvolatile Memory Block); 및
    상기 디스크 블록과 비휘발성 메모리 블록 사이에서 상기 제어 신호 또는 데이터를 저장하고, 전송하는 메일 박스(Mail Box)를 포함하는 하이브리드 드라이브.
  9. 제8항에 있어서, 상기 디스크 블록은
    상기 디스크 블록의 동작을 제어하는 제1 프로세서(Processor);
    상기 디스크 블록을 통과하는 상기 제어 신호 및 데이터를 임시로 저장하고, 전송하는 제1 버퍼(Buffer); 및
    상기 제1 버퍼 내의 데이터의 저장 또는 삭제 정보를 저장하는 제1 캐쉬(cache)를 포함하는 하이브리드 드라이브.
  10. 제8항에 있어서, 상기 비휘발성 메모리 블록은
    상기 비휘발성 메모리 블록의 동작을 제어하는 제2 프로세서;
    상기 비휘발성 메모리 블록을 통과하는 상기 제어 신호 및 데이터를 임시로 저장하고, 전송하는 제2 버퍼; 및
    비휘발성 메모리 내의 데이터의 저장 또는 삭제 정보를 저장하는 제2 캐쉬를 포함하는 하이브리드 드라이브.
KR1020110123860A 2011-11-24 2011-11-24 하이브리드 드라이브 및 그 데이터 전송 방법 KR20130057890A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110123860A KR20130057890A (ko) 2011-11-24 2011-11-24 하이브리드 드라이브 및 그 데이터 전송 방법
US13/682,790 US20130138865A1 (en) 2011-11-24 2012-11-21 Systems, methods, and devices for running multiple cache processes in parallel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110123860A KR20130057890A (ko) 2011-11-24 2011-11-24 하이브리드 드라이브 및 그 데이터 전송 방법

Publications (1)

Publication Number Publication Date
KR20130057890A true KR20130057890A (ko) 2013-06-03

Family

ID=48467862

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110123860A KR20130057890A (ko) 2011-11-24 2011-11-24 하이브리드 드라이브 및 그 데이터 전송 방법

Country Status (2)

Country Link
US (1) US20130138865A1 (ko)
KR (1) KR20130057890A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3086409A1 (fr) * 2018-09-26 2020-03-27 Stmicroelectronics (Grenoble 2) Sas Procede de gestion de la fourniture d'informations, en particulier des instructions, a un microprocesseur et systeme correspondant

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8593474B2 (en) * 2005-12-30 2013-11-26 Intel Corporation Method and system for symmetric allocation for a shared L2 mapping cache

Also Published As

Publication number Publication date
US20130138865A1 (en) 2013-05-30

Similar Documents

Publication Publication Date Title
US10761977B2 (en) Memory system and non-transitory computer readable recording medium
US8255661B2 (en) Data storage system comprising a mapping bridge for aligning host block size with physical block size of a data storage device
US10824553B2 (en) Memory device that controls timing of receiving write data from a host
US9189397B2 (en) Data storage device including buffer memory
KR20180080589A (ko) 데이터 저장 장치 및 그것의 동작 방법
TWI473116B (zh) 多通道記憶體儲存裝置及其控制方法
US20210133096A1 (en) Memory system and operating method thereof
KR102527265B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
TWI595356B (zh) 資料傳輸方法及使用所述方法的儲存控制器與清單管理電路
US20120159050A1 (en) Memory system and data transfer method
TWI702500B (zh) 使用多串流的系統、方法以及製品
US8635379B2 (en) Data storage device and method of operating the same
KR20200025184A (ko) 불휘발성 메모리 장치, 이를 포함하는 데이터 저장 장치 및 그 동작 방법
KR101594029B1 (ko) 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치
US11868246B2 (en) Memory system and non-transitory computer readable recording medium
KR20100085564A (ko) 데이터 처리 시스템과 데이터 처리 방법
KR20200060758A (ko) 메모리 어드레싱 방법 및 관련 컨트롤러, 메모리 장치 및 호스트
KR20180126656A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20130275652A1 (en) Methods and structure for transferring additional parameters through a communication interface with limited parameter passing features
US20150106573A1 (en) Data processing system
US20230281118A1 (en) Memory system and non-transitory computer readable recording medium
KR20190106005A (ko) 메모리 시스템, 그것의 동작 방법 및 전자 장치
US20130205074A1 (en) Data i/o controller and system including the same
KR20130057890A (ko) 하이브리드 드라이브 및 그 데이터 전송 방법
US20060277326A1 (en) Data transfer system and method

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid