KR102140592B1 - 데이터 저장 장치 - Google Patents

데이터 저장 장치 Download PDF

Info

Publication number
KR102140592B1
KR102140592B1 KR1020130124737A KR20130124737A KR102140592B1 KR 102140592 B1 KR102140592 B1 KR 102140592B1 KR 1020130124737 A KR1020130124737 A KR 1020130124737A KR 20130124737 A KR20130124737 A KR 20130124737A KR 102140592 B1 KR102140592 B1 KR 102140592B1
Authority
KR
South Korea
Prior art keywords
clock
memory device
nonvolatile memory
unit
ecc
Prior art date
Application number
KR1020130124737A
Other languages
English (en)
Other versions
KR20150045253A (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 KR1020130124737A priority Critical patent/KR102140592B1/ko
Priority to US14/156,215 priority patent/US9304855B2/en
Publication of KR20150045253A publication Critical patent/KR20150045253A/ko
Application granted granted Critical
Publication of KR102140592B1 publication Critical patent/KR102140592B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Abstract

본 발명은 데이터 저장 장치에 관한 것으로, 더욱 상세하게는 불휘발성 메모리 장치의 동작 상태에 따라 전력 소모를 조절할 수 있는 데이터 저장 장치에 관한 것이다. 상기 데이터 저장 장치는, 불휘발성 메모리 장치; 상기 불휘발성 메모리 장치로부터 독출된 데이터의 에러를 검출하고 정정하도록 구성된 에러 정정 코드 유닛; 및 상기 불휘발성 메모리 장치에 저장된 데이터의 독출 여부에 따라 구분되는 읽기 명령에 따라서 상기 에러 정정 코드 유닛에 동작 클럭을 선택적으로 제공하도록 구성된 클럭 유닛을 포함한다.

Description

데이터 저장 장치{DATA STORAGE DEVICE}
본 발명은 데이터 저장 장치에 관한 것으로, 더욱 상세하게는 불휘발성 메모리 장치의 동작 상태에 따라 전력 소모를 조절할 수 있는 데이터 저장 장치에 관한 것이다.
최근 컴퓨터 환경에 대한 패러다임(paradigm)이 언제, 어디서나 컴퓨터 시스템을 사용할 수 있도록 하는 유비쿼터스 컴퓨팅(ubiquitous computing)으로 전환되고 있다. 이로 인해 휴대폰, 디지털 카메라, 노트북 컴퓨터 등과 같은 휴대용 전자 장치의 사용이 급증하고 있다. 이와 같은 휴대용 전자 장치는 일반적으로 메모리 장치를 이용하는 데이터 저장 장치를 사용한다.
메모리 장치를 이용한 데이터 저장 장치는 기계적인 구동부가 없어서 안정성 및 내구성이 뛰어나며 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 이러한 장점을 갖는 데이터 저장 장치는 USB(Universal Serial Bus) 메모리 장치, UFS(Universal Flash Storage) 장치, 다양한 인터페이스를 갖는 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive, 이하, SSD라 칭함)를 포함한다.
본 발명의 실시 예는 전력 소모를 조절할 수 있는 데이터 저장 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는, 불휘발성 메모리 장치; 상기 불휘발성 메모리 장치로부터 독출된 데이터의 에러를 검출하고 정정하도록 구성된 에러 정정 코드 유닛; 및 상기 불휘발성 메모리 장치에 저장된 데이터의 독출 여부에 따라 구분되는 읽기 명령에 따라서 상기 에러 정정 코드 유닛에 동작 클럭을 선택적으로 제공하도록 구성된 클럭 유닛을 포함한다.
실시 예에 있어서, 상기 클럭 유닛은 상기 불휘발성 메모리 장치에 저장된 데이터를 독출하기 위한 읽기 동작이 수행되는 동안 상기 에러 정정 코드 유닛에 상기 동작 클럭을 제공하도록 구성된다.
실시 예에 있어서, 상기 클럭 유닛은 상기 불휘발성 메모리 장치에 저장된 데이터를 독출하는 것과 무관한 읽기 동작이 수행되는 동안 상기 에러 정정 코드 유닛에 상기 동작 클럭을 제공하지 않도록 구성된다.
본 발명의 다른 실시 예에 따른 데이터 저장 장치는, 불휘발성 메모리 장치; 상기 불휘발성 메모리 장치로부터 독출된 데이터의 에러를 검출하고 정정하도록 구성된 에러 정정 코드 유닛; 상기 불휘발성 메모리 장치를 제어하기 위한 제어 신호들을 상기 불휘발성 메모리 장치로 제공하도록 구성된 메모리 인터페이스; 및 상기 불휘발성 메모리 장치의 동작 상태에 따라서 상기 에러 정정 코드 유닛의 동작에 필요한 동작 클럭과 상기 제어 신호들을 생성에 필요한 기준 클럭을 선택적으로 제공하도록 구성된 클럭 유닛을 포함한다.
본 발명의 실시 예에 따른 데이터 저장 장치는 불휘발성 메모리 장치의 동작 상태에 따라서 전력 소모를 조절할 수 있다.
도 1은 본 발명의 실시 예에 따른 데이터 저장 장치를 예시적으로 보여주는 블럭도이다.
도 2는 도 1에 도시된 클럭 유닛을 예시적으로 보여주는 블럭도이다.
도 3은 도 2에 도시된 클럭 유닛의 클럭 제공 동작을 예시적으로 설명하기 위한 타이밍도이다.
도 4는 본 발명의 다른 실시 예에 따른 데이터 저장 장치를 예시적으로 보여주는 블럭도이다.
도 5는 도 4에 도시된 클럭 유닛을 예시적으로 보여주는 블럭도이다.
도 6은 도 5에 도시된 클럭 유닛의 클럭 제공 동작을 예시적으로 설명하기 위한 타이밍도이다.
도 7은 본 발명의 실시 예에 따른 데이터 저장 장치를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 블럭도이다.
도 8은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(SSD)를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 블럭도이다.
도 9는 도 8에 도시된 SSD 컨트롤러를 예시적으로 보여주는 블럭도이다.
도 10은 본 발명의 실시 예에 따른 데이터 저장 장치가 장착되는 컴퓨터 시스템을 예시적으로 보여주는 블럭도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 '및/또는'이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, '연결되는/결합되는'이란 표현은 다른 구성 요소와 직접적으로 연결되거나 다른 구성 요소를 통해서 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 '포함한다' 또는 '포함하는'으로 언급된 구성 요소, 단계, 동작 및 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 데이터 저장 장치를 예시적으로 보여주는 블럭도이다. 데이터 저장 장치(100)는 휴대폰, MP3 플레이어, 디지털 카메라, 랩탑 컴퓨터, 데스크탑 컴퓨터, 게임기, TV, 자동차 엔터테인먼트 시스템 등과 같은 호스트 장치(도시되지 않음)의 요청에 응답하여 동작하도록 구성될 수 있다. 데이터 저장 장치(100)는 호스트 장치(도시되지 않음)에 의해서 액세스되는 데이터를 저장하도록 구성될 수 있다. 데이터 저장 장치(100)는 메모리 시스템이라고도 불릴 수 있다.
데이터 저장 장치(100)는 호스트 장치(도시되지 않음)와 연결되는 인터페이스 프로토콜에 따라서 다양한 종류의 저장 장치들 중 어느 하나로 제조될 수 있다. 예를 들면, 데이터 저장 장치(100)는 솔리드 스테이트 드라이브(Solid State Drive), MMC, eMMC, RS-MMC, micro-MMC 형태의 멀티 미디어 카드(Multi Media Card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(Secure Digital) 카드, USB(Universal Storage Bus) 저장 장치, UFS(Universal Flash Storage) 장치, PCMCIA(Personal Computer Memory Card International Association) 카드 형태의 저장 장치, PCI(Peripheral Component Interconnection) 카드 형태의 저장 장치, PCI-E(PCI Express) 카드 형태의 저장 장치, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick) 등과 같은 다양한 종류의 저장 장치들 중 어느 하나로 구성될 수 있다.
도 1을 참조하면, 데이터 저장 장치(100)는 컨트롤러(110) 및 불휘발성 메모리 장치(160)를 포함할 수 있다.
컨트롤러(110)는 호스트 장치(도시되지 않음)로부터의 요청에 응답하여 불휘발성 메모리 장치(160)를 제어하도록 구성될 수 있다. 예를 들면, 컨트롤러(110)는 불휘발성 메모리 장치(160)로부터 독출된 데이터를 호스트 장치(도시되지 않음)로 제공하도록 구성될 수 있다. 다른 예로서, 컨트롤러(110)는 호스트 장치(도시되지 않음)로부터 제공된 데이터를 불휘발성 메모리 장치(160)에 저장하도록 구성될 수 있다. 이러한 동작을 위해서, 컨트롤러(110)는 불휘발성 메모리 장치(160)의 읽기, 쓰기(또는, 프로그램) 및 소거 동작을 제어하도록 구성될 수 있다.
불휘발성 메모리 장치(160)는 데이터 저장 장치(100)의 저장 매체로서 동작할 수 있다. 이하에서, 낸드(NAND) 플래시 메모리 장치(이하, 플래시 메모리 장치라 칭함)로 구성된 불휘발성 메모리 장치(160)가 예시될 것이다. 그러나, 불휘발성 메모리 장치(160)는 노어(NOR) 플래시 메모리 장치, 강유전체 커패시터를 이용한 강유전체 램(Ferroelectric RAM: FRAM), 티엠알(tunneling magneto-resistive: TMR) 막을 이용한 마그네틱 램(Magnetic RAM: MRAM), 칼코겐 화합물(chalcogenide alloys)을 이용한 상 변화 메모리 장치(phase change memory device: PRAM), 전이 금속 산화물(transition metal oxide)을 이용한 저항성 메모리 장치(resistive memory device: RERAM) 등과 같은 다양한 형태의 불휘발성 메모리 장치들 중 어느 하나로 구성될 수 있다. 불휘발성 메모리 장치(160)는 낸드 플래시 메모리 장치와 위에서 언급한 다양한 형태의 불휘발성 메모리 장치의 조합으로 구성될 수 있다.
컨트롤러(110)는 데이터 저장 장치(100)의 제반 동작을 제어하기 위한 펌웨어 또는 소프트웨어를 구동하도록 구성될 수 있다. 플래시 메모리 장치(160)는 구조적인 특징으로 인해서 페이지 단위로 읽기 또는 프로그램 동작을 수행할 수 있다. 또한, 플래시 메모리 장치(160)는 구조적인 특징으로 인해서 블럭 단위로 소거 동작을 수행할 수 있다. 플래시 메모리 장치(160)는 구조적인 특징으로 인해서 덮어쓰기(overwrite)가 불가능할 수 있다. 플래시 메모리 장치(160)의 이러한 특징들 때문에, 컨트롤러(110)는 플래시 변환 계층(flash translation layer: FTL)이라 불리는 추가적인 펌웨어 또는 소프트웨어를 구동하도록 구성될 수 있다.
컨트롤러(110)는 컨트롤 유닛(120), 메모리 인터페이스(130), 에러 정정 코드(Error Correction Code: ECC) 유닛(140)(이하, ECC 유닛이라 칭함) 및 클럭 유닛(150)을 포함할 수 있다. 비록 도시되지는 않았지만, 컨트롤러(110)는 호스트 인터페이스, 동작 메모리 장치, 전원 공급 유닛과 같은 기능 블럭을 더 포함할 수 있다.
컨트롤 유닛(120)은 동작 메모리 장치(도시되지 않음)에 로딩된 펌웨어 또는 소프트웨어의 구동을 통해서 컨트롤러(120)의 제반 동작을 제어하도록 구성될 수 있다. 컨트롤 유닛(120)은 펌웨어 또는 소프트웨어와 같은 코드 형태의 알고리즘을 해독하고 구동하도록 구성될 수 있다. 컨트롤 유닛(120)은 하드웨어 또는 하드웨어와 소프트웨어가 조합된 형태로 구현될 수 있다. 컨트롤 유닛(120)은 마이크로 컨트롤 유닛(Micro Control Unit: MCU), 중앙 처리 장치(Central Processing Unit: CPU)를 포함할 수 있다.
메모리 인터페이스(130)와 플래시 메모리 장치(160)는 채널(CH)을 통해서 연결될 수 있다. 여기에서, 채널(CH)은 메모리 인터페이스(130)와 플래시 메모리 장치(160) 간에 제어 신호들 또는 데이터를 전송하기 위한 물리적 경로일 것이다. 채널(CH)은 제어 신호들을 전송하기 위한 제어 신호 라인들(CSLs)과 데이터를 전송하기 위한 데이터 라인들(DTLs)로 구성될 수 있다.
메모리 인터페이스(130)는 마이크로 컨트롤 유닛(120)의 제어에 따라서 플래시 메모리 장치(160)를 제어하도록 구성될 수 있다. 즉, 메모리 인터페이스(130)는 채널(CH)을 통해서 컨트롤러(110)와 플래시 메모리 장치(160)를 인터페이싱하도록 구성될 수 있다. 예를 들면, 메모리 인터페이스(130)는 플래시 메모리 장치(160)를 제어하기 위한 제어 신호들을 플래시 메모리 장치(160)로 제공하도록 구성될 수 있다. 메모리 인터페이스(130)를 통해서 제공되는 제어 신호들에 따라서 플래시 메모리 장치(160)에 명령 및 어드레스가 제공될 수 있다. 메모리 인터페이스(130)는 플래시 메모리 장치(160)와 데이터를 주고 받도록 구성될 수 있다.
ECC 유닛(140)은 플래시 메모리 장치(160)로부터 독출된 데이터의 에러를 검출하고 정정하도록 구성될 수 있다. ECC 유닛(140)은 하드웨어 또는 소프트웨어 중 어느 하나의 형태로 구현될 수 있다. 또는 ECC 유닛(140)은 하드웨어와 소프트웨어가 결합된 형태로 구현될 수 있다.
ECC 유닛(140)은 플래시 메모리 장치(160)에 저장될 데이터에 대한 ECC 인코딩 동작을 수행하도록 구성될 수 있다. 예를 들면, ECC 유닛(140)은 플래시 메모리 장치(160)에 저장될 데이터에 대해서 ECC 인코딩 알고리즘에 기반한 연산 동작을 수행하고, 패리티 데이터(parity data)를 생성하도록 구성될 수 있다. 또한, ECC 유닛(140)은 플래시 메모리 장치(160)로부터 독출된 데이터와 패리티 데이터에 대한 ECC 디코딩 동작을 수행하도록 구성될 수 있다. 예를 들면, ECC 유닛(140)은 플래시 메모리 장치(160)로부터 독출된 데이터와 패리티 데이터에 대해서 ECC 디코딩 알고리즘에 기반한 연산 동작을 수행하고, 독출된 데이터에 포함된 에러를 검출하고, 검출된 에러를 정정하도록 구성될 수 있다.
클럭 유닛(150)은 컨트롤러(110) 내부에서 사용되는 클럭을 생성하고, 생성된 클럭을 제공하도록 구성될 수 있다. 클럭 유닛(150)에 의해서 생성된 클럭은 컨트롤러(110)에 포함된 기능 블럭들(예를 들면, 컨트롤 유닛(120), 메모리 인터페이스(130), ECC 유닛(140))의 동작 클럭으로 사용될 수 있다.
클럭 유닛(150)은 감시 정보(MNT)에 따라서 ECC 유닛(140)으로 제공되는 클럭(CLK_ECC)을 제어하도록 구성될 수 있다. 감시 정보(MNT)는 메모리 인터페이스(130)의 동작을 감시한 정보를 의미할 수 있다. 감시 정보(MNT)는 제어 신호 라인들(CSLs)을 통해서 메모리 인터페이스(130)로부터 플래시 메모리 장치(160)로 전송되는 제어 신호를 감시한 정보를 의미할 수 있다. 클럭 유닛(150)은 감시 정보(MNT)를 분석한 결과에 따라서 ECC 유닛(140)으로 제공되는 클럭(CLK_ECC)을 제어하도록 구성될 수 있다. 클럭 유닛(150)의 구성 및 동작은 도 2 및 도 3을 참조하여 상세히 설명될 것이다.
도 2는 도 1에 도시된 클럭 유닛을 예시적으로 보여주는 블럭도이다. 도 2를 참조하면, 클럭 유닛(150)은 클럭 관리 블럭(151), 클럭 전송 제어 블럭(152) 및 클럭 생성 블럭(153)을 포함할 수 있다. 이하, 도 1 및 도 2를 참조하여 클럭 유닛(150)이 상세히 설명될 것이다.
클럭 관리 블럭(151)은 감시 정보(MNT)를 획득하도록 구성될 수 있다. 클럭 관리 블럭(151)은 메모리 인터페이스(130)의 동작을 감시하여 감시 정보(MNT)를 획득할 수 있다. 예를 들면, 클럭 관리 블럭(151)은 메모리 인터페이스(130)가 플래시 메모리 장치(160)의 제어를 위해서 수행해야할 동작을 명시한 디스크립터(descriptor)를 참조하여 감시 정보(MNT)를 획득할 수 있다. 여기에서, 디스크립터는 컨트롤 유닛(120)으로부터 메모리 인터페이스(130)로 제공된 작업 지시서를 의미할 수 있다. 다른 예로서, 클럭 관리 블럭(151)은 메모리 인터페이스(130)로부터 플래시 메모리 장치(160)로 전송되는 제어 신호들에 대한 감지를 통해서 감시 정보(MNT)를 획득할 수 있다.
클럭 관리 블럭(151)은 획득된 감시 정보(MNT)를 분석 및 판단하도록 구성될 수 있다. 예를 들면, 클럭 관리 블럭(151)은 획득된 감시 정보(MNT)에 근거하여 메모리 인터페이스(130)로부터 플래시 메모리 장치(160)로 읽기 명령이 전송되는지를 판단할 수 있다. 그리고 클럭 관리 블럭(151)은 전송된 읽기 명령이 플래시 메모리 장치(160)에 저장된 데이터를 독출하기 위한 읽기 명령인지를 판단할 수 있다.
클럭 관리 블럭(151)은 판단 결과에 따라서 ECC 유닛(140)으로 제공되는 클럭(CLK_ECC)을 제어하도록 구성될 수 있다. 예를 들면, 클럭 관리 블럭(151)은 감시 정보(MNT)를 통해서 플래시 메모리 장치(160)에 저장된 데이터를 독출하기 위한 읽기 명령이 전송된 것을 감지한 경우에, 활성화된 클럭 전송 제어 신호(ECC_EN)를 클럭 전송 제어 블럭(152)으로 제공할 수 있다. 즉, 클럭 관리 블럭(151)은 플래시 메모리 장치(160)가 전송된 읽기 명령에 따라서 읽기 동작을 수행하는 동안 활성화된 클럭 전송 제어 신호(ECC_EN)를 클럭 전송 제어 블럭(152)으로 제공할 수 있다.
클럭 생성 블럭(153)은 컨트롤러(110)의 내부 기능 블럭들(예를 들면, 컨트롤 유닛(120), 메모리 인터페이스(130), ECC 유닛(140))에 제공될 클럭들을 생성하도록 구성될 수 있다. 클럭 생성 블럭(153)은 클럭 생성기를 포함할 수 있다.
클럭 전송 제어 블럭(152)은 클럭 생성 블럭(153)으로부터 생성된 클럭에 대한 전송을 제어하도록 구성될 수 있다. 클럭 전송 제어 블럭(152)은 클럭 관리 블럭(151)으로부터 제공되는 클럭 전송 제어 신호에 따라서 내부 기능 블럭들에 클럭을 전송하거나 전송하지 않을 수 있다. 즉, 클럭 전송 제어 블럭(152)은 클럭 생성 블럭(153)과 내부 기능 블럭들 간의 클럭 전송 경로에 대한 스위칭 동작을 수행하도록 구성될 수 있다. 예를 들면, 클럭 전송 제어 블럭(152)은 활성화된 클럭 전송 제어 신호(ECC_EN)에 응답하여 ECC 유닛(140)으로 클럭(CLK_ECC)을 전송할 수 있다. 다른 예로서, 클럭 전송 제어 블럭(152)은 비활성화된 클럭 전송 제어 신호(ECC_EN)에 응답하여 ECC 유닛(140)으로의 클럭 전송을 차단할 수 있다.
도 3은 도 2에 도시된 클럭 유닛의 클럭 제공 동작을 예시적으로 설명하기 위한 타이밍도이다. 이하, 도 2 및 도 3을 참조하여, 플래시 메모리 장치(도 1의 160)에 저장된 데이터를 독출하기 위한 읽기 동작이 수행되는 경우와, 플래시 메모리 장치(160)에 저장된 데이터의 독출과는 무관한 읽기 동작을 수행하는 경우의 클럭 유닛(150)의 동작이 상세히 설명될 것이다.
도 3의 tRD 기간은 플래시 메모리 장치(160)에 저장된 데이터를 독출하기 위한 읽기 동작이 수행되는 기간이다. 그리고 나머지 기간(tNRD)은 플래시 메모리 장치(160)에 저장된 데이터가 독출되는 것과 무관한 읽기 동작이 수행되는 기간이다. 예시적으로, 플래시 메모리 장치(160)에 저장된 데이터가 독출되는 것과 무관한 읽기 동작은 상태 읽기 명령(SRD)에 따라서 플래시 메모리 장치(160)의 동작 상태를 확인하기 위한 읽기 동작을 포함할 수 있다. 다른 예로서, 플래시 메모리 장치(160)에 저장된 데이터가 독출되는 것과 무관한 읽기 동작은 ID 읽기 명령(IRD)에 따라서 플래시 메모리 장치(160)의 아이덴티티(identity), 즉, ID를 확인하기 위한 읽기 동작을 포함할 수 있다.
tRD 기간 동안, 클럭 관리 블럭(151)은 감시 정보(MNT)를 획득할 수 있다. tRD 기간 동안, 메모리 인터페이스(도 1의 130)는 플래시 메모리 장치(160)의 읽기 동작을 제어하기 위한 제어 동작을 수행할 수 있다. 클럭 관리 블럭(151)은 읽기 동작을 제어하기 위한 메모리 인터페이스(130)의 디스크립터를 참조하여 감시 정보(MNT)를 획득할 수 있다. tRD 기간 동안, 제어 신호 라인들(CSLs)을 통해서 메모리 인터페이스(130)로부터 플래시 메모리 장치(160)로 제어 신호들, 예를 들면, 읽기 명령(RD)이 전송될 수 있다. 클럭 관리 블럭(151)은 이러한 읽기 명령(RD)의 감지를 통해서 감시 정보(MNT)를 획득할 수 있다.
클럭 관리 블럭(151)은 획득된 감시 정보(MNT)를 분석 및 판단한 결과에 따라서 클럭 전송 제어 신호(ECC_EN)를 활성화하거나 비활성화할 수 있다. 플래시 메모리 장치(160)의 읽기 동작이 수행될 때, ECC 유닛(도 1의 140)은 독출된 데이터에 포함된 에러를 정정하기 위해서 동작할 수 있다. 따라서, tRD 기간 동안, 클럭 관리 블럭(151)은 클럭 전송 제어 신호(ECC_EN)을 활성화할 수 있다. 클럭 전송 제어 블럭(152)은 활성화된 클럭 전송 제어 신호(ECC_EN)에 응답하여 ECC 유닛(140)으로 클럭(CLK_ECC)을 전송할 수 있다.
플래시 메모리 장치(160)에 저장된 데이터를 독출하는 동작과 무관한 읽기 동작이 수행될 때, ECC 유닛(140)의 동작은 불필요할 수 있다. 따라서, tNRD 기간 동안, 클럭 관리 블럭(151)은 클럭 전송 제어 신호(ECC_EN)을 비활성화할 수 있다. 클럭 전송 제어 블럭(152)은 비활성화된 클럭 전송 제어 신호(ECC_EN)에 응답하여 ECC 유닛(140)으로 클럭(CLK_ECC)을 전송하지 않을 수 있다. 즉, 클럭 전송 제어 블럭(152)은 비활성화된 클럭 전송 제어 신호(ECC_EN)에 응답하여 ECC 유닛(140)으로의 클럭 전송을 차단할 수 있다.
이러한 동작을 통해서, 플래시 메모리 장치(160)에 저장된 데이터가 출력되는 읽기 동작이 수행되는 동안 ECC 유닛(140)으로 클럭(CLK_ECC)이 제공될 수 있다. 그리고 플래시 메모리 장치(160)에 저장된 데이터가 출력되지 않는 읽기 동작이 수행되는 동안 ECC 유닛(140)으로 클럭(CKL_ECC)이 제공되지 않을 수 있다. 즉, 플래시 메모리 장치(160)로부터의 데이터가 실제 출력되는 기간 동안만 ECC 유닛(140)에 클럭(CKL_ECC)이 제공될 수 있다. 플래시 메모리 장치(160)에 저장된 데이터의 출력 여부에 따라 구분되는 읽기 동작에 따라서 ECC 유닛(140)에 클럭(CLK_ECC)이 선택적으로 제공될 수 있기 때문에, 컨트롤러(110)는 전력 소모를 감소시킬 수 있다.
도 4는 본 발명의 다른 실시 예에 따른 데이터 저장 장치를 예시적으로 보여주는 블럭도이다. 도 4를 참조하면, 데이터 저장 장치(200)는 컨트롤러(210) 및 불휘발성 메모리 장치(260)를 포함할 수 있다. 도 1의 데이터 저장 장치(100)와 동일하게, 메모리 인터페이스(230)의 동작을 감시한 정보 또는 메모리 인터페이스(230)로부터 전송되는 제어 신호를 감시한 정보에 따라서 클럭들(CLK_ECC 및 CLK_FM)이 선택적으로 제공될 수 있기 때문에, 컨트롤러(210)는 전력 소모를 감소시킬 수 있다.
컨트롤러(210)는 호스트 장치(도시되지 않음)로부터의 요청에 응답하여 불휘발성 메모리 장치(260)를 제어하도록 구성될 수 있다. 예를 들면, 컨트롤러(210)는 불휘발성 메모리 장치(260)로부터 독출된 데이터를 호스트 장치(도시되지 않음)로 제공하도록 구성될 수 있다. 다른 예로서, 컨트롤러(210)는 호스트 장치(도시되지 않음)로부터 제공된 데이터를 불휘발성 메모리 장치(260)에 저장하도록 구성될 수 있다. 이러한 동작을 위해서, 컨트롤러(210)는 불휘발성 메모리 장치(260)의 읽기, 쓰기(또는, 프로그램) 및 소거 동작을 제어하도록 구성될 수 있다.
불휘발성 메모리 장치(260)는 데이터 저장 장치(200)의 저장 매체로서 동작할 수 있다. 이하에서, 낸드(NAND) 플래시 메모리 장치(이하, 플래시 메모리 장치라 칭함)로 구성된 불휘발성 메모리 장치(260)가 예시될 것이다. 그러나, 불휘발성 메모리 장치(260)는 노어(NOR) 플래시 메모리 장치, 강유전체 커패시터를 이용한 강유전체 램(Ferroelectric RAM: FRAM), 티엠알(tunneling magneto-resistive: TMR) 막을 이용한 마그네틱 램(Magnetic RAM: MRAM), 칼코겐 화합물(chalcogenide alloys)을 이용한 상 변화 메모리 장치(phase change memory device: PRAM), 전이 금속 산화물(transition metal oxide)을 이용한 저항성 메모리 장치(resistive memory device: RERAM) 등과 같은 다양한 형태의 불휘발성 메모리 장치들 중 어느 하나로 구성될 수 있다. 불휘발성 메모리 장치(260)는 낸드 플래시 메모리 장치와 위에서 언급한 다양한 형태의 불휘발성 메모리 장치의 조합으로 구성될 수 있다.
컨트롤러(210)는 데이터 저장 장치(200)의 제반 동작을 제어하기 위한 펌웨어 또는 소프트웨어를 구동하도록 구성될 수 있다. 플래시 메모리 장치(260)는 구조적인 특징으로 인해서 페이지 단위로 읽기 또는 프로그램 동작을 수행할 수 있다. 또한, 플래시 메모리 장치(260)는 구조적인 특징으로 인해서 블럭 단위로 소거 동작을 수행할 수 있다. 플래시 메모리 장치(260)는 구조적인 특징으로 인해서 덮어쓰기(overwrite)가 불가능할 수 있다. 플래시 메모리 장치(260)의 이러한 특징들 때문에, 컨트롤러(210)는 플래시 변환 계층(flash translation layer: FTL)이라 불리는 추가적인 펌웨어 또는 소프트웨어를 구동하도록 구성될 수 있다.
컨트롤러(210)는 컨트롤 유닛(220), 메모리 인터페이스(230), 에러 정정 코드(Error Correction Code: ECC) 유닛(140)(이하, ECC 유닛이라 칭함) 및 클럭 유닛(250)을 포함할 수 있다. 비록 도시되지는 않았지만, 컨트롤러(210)는 호스트 인터페이스, 동작 메모리 장치, 전원 공급 유닛과 같은 기능 블럭을 더 포함할 수 있다.
컨트롤 유닛(220)은 동작 메모리 장치(도시되지 않음)에 로딩된 펌웨어 또는 소프트웨어의 구동을 통해서 컨트롤러(220)의 제반 동작을 제어하도록 구성될 수 있다. 컨트롤 유닛(220)은 펌웨어 또는 소프트웨어와 같은 코드 형태의 알고리즘을 해독하고 구동하도록 구성될 수 있다. 컨트롤 유닛(220)은 하드웨어 또는 하드웨어와 소프트웨어가 조합된 형태로 구현될 수 있다. 컨트롤 유닛(220)은 마이크로 컨트롤 유닛(Micro Control Unit: MCU), 중앙 처리 장치(Central Processing Unit: CPU)를 포함할 수 있다.
메모리 인터페이스(230)와 플래시 메모리 장치(260)는 채널(CH)을 통해서 연결될 수 있다. 여기에서, 채널(CH)은 메모리 인터페이스(130)와 플래시 메모리 장치(260) 간에 제어 신호들 또는 데이터를 전송하기 위한 물리적 경로일 것이다. 채널(CH)은 제어 신호들을 전송하기 위한 제어 신호 라인들(CSLs)과 데이터를 전송하기 위한 데이터 라인들(DTLs)로 구성될 수 있다.
메모리 인터페이스(230)는 마이크로 컨트롤 유닛(220)의 제어에 따라서 플래시 메모리 장치(260)를 제어하도록 구성될 수 있다. 즉, 메모리 인터페이스(230)는 채널(CH)을 통해서 컨트롤러(210)와 플래시 메모리 장치(260)를 인터페이싱하도록 구성될 수 있다. 예를 들면, 메모리 인터페이스(230)는 플래시 메모리 장치(260)를 제어하기 위한 제어 신호들을 플래시 메모리 장치(260)로 제공하도록 구성될 수 있다. 메모리 인터페이스(230)를 통해서 제공되는 제어 신호들에 따라서 플래시 메모리 장치(260)에 명령 및 어드레스가 제공될 수 있다. 메모리 인터페이스(230)는 플래시 메모리 장치(260)와 데이터를 주고 받도록 구성될 수 있다.
ECC 유닛(240)은 플래시 메모리 장치(260)로부터 독출된 데이터의 에러를 검출하고 정정하도록 구성될 수 있다. ECC 유닛(240)은 하드웨어 또는 소프트웨어 중 어느 하나의 형태로 구현될 수 있다. 또는 ECC 유닛(240)은 하드웨어와 소프트웨어가 결합된 형태로 구현될 수 있다.
ECC 유닛(240)은 플래시 메모리 장치(260)에 저장될 데이터에 대한 ECC 인코딩 동작을 수행하도록 구성될 수 있다. 예를 들면, ECC 유닛(240)은 플래시 메모리 장치(260)에 저장될 데이터에 대해서 ECC 인코딩 알고리즘에 기반한 연산 동작을 수행하고, 패리티 데이터(parity data)를 생성하도록 구성될 수 있다. 이를 위해서, ECC 유닛(240)은 ECC 인코더(241)를 포함할 수 있다. 또한, ECC 유닛(240)은 플래시 메모리 장치(260)로부터 독출된 데이터와 패리티 데이터에 대한 ECC 디코딩 동작을 수행하도록 구성될 수 있다. 예를 들면, ECC 유닛(240)은 플래시 메모리 장치(260)로부터 독출된 데이터와 패리티 데이터에 대해서 ECC 디코딩 알고리즘에 기반한 연산 동작을 수행하고, 독출된 데이터에 포함된 에러를 검출하고, 검출된 에러를 정정하도록 구성될 수 있다. 이를 위해서, ECC 유닛(240)은 ECC 디코더(243)를 포함할 수 있다.
클럭 유닛(250)은 컨트롤러(210) 내부에서 사용되는 클럭을 생성하고, 생성된 클럭을 제공하도록 구성될 수 있다. 클럭 유닛(250)에 의해서 생성된 클럭은 컨트롤러(210)에 포함된 기능 블럭들(예를 들면, 컨트롤 유닛(220), 메모리 인터페이스(230), ECC 유닛(240))의 동작 클럭으로 사용될 수 있다.
클럭 유닛(250)은 감시 정보(MNT)에 따라서 메모리 인터페이스(230) 및 ECC 유닛(240)으로 제공되는 클럭(CLK_ECC)을 제어하도록 구성될 수 있다. 감시 정보(MNT)는 메모리 인터페이스(230)의 동작을 감시한 정보를 의미할 수 있다. 감시 정보(MNT)는 제어 신호 라인들(CSLs)을 통해서 메모리 인터페이스(230)로부터 플래시 메모리 장치(260)로 전송되는 제어 신호를 감시한 정보를 의미할 수 있다. 클럭 유닛(250)은 감시 정보(MNT)를 분석한 결과에 따라서 메모리 인터페이스(230) 및 ECC 유닛(240)으로 제공되는 클럭들(CLK_FM 및 CLK_ECC)을 제어하도록 구성될 수 있다. 클럭 유닛(250)의 구성 및 동작은 도 5 및 도 6을 참조하여 상세히 설명될 것이다.
도 5는 도 4에 도시된 클럭 유닛을 예시적으로 보여주는 블럭도이다. 도 5를 참조하면, 클럭 유닛(250)은 클럭 관리 블럭(251), 클럭 전송 제어 블럭(252) 및 클럭 생성 블럭(253)을 포함할 수 있다. 이하, 도 4 및 도 5를 참조하여 클럭 유닛(250)이 상세히 설명될 것이다.
클럭 관리 블럭(251)은 감시 정보(MNT)를 획득하도록 구성될 수 있다. 클럭 관리 블럭(251)은 메모리 인터페이스(230)의 동작을 감시하여 감시 정보(MNT)를 획득할 수 있다. 예를 들면, 클럭 관리 블럭(251)은 메모리 인터페이스(230)가 플래시 메모리 장치(260)의 제어를 위해서 수행해야할 동작을 명시한 디스크립터를 참조하여 감시 정보(MNT)를 획득할 수 있다. 여기에서, 디스크립터는 컨트롤 유닛(220)으로부터 메모리 인터페이스(230)로 제공된 작업 지시서를 의미할 수 있다. 다른 예로서, 클럭 관리 블럭(251)은 메모리 인터페이스(230)로부터 플래시 메모리 장치(260)로 전송되는 제어 신호들에 대한 감지를 통해서 감시 정보(MNT)를 획득할 수 있다.
클럭 관리 블럭(251)은 획득된 감시 정보(MNT)를 분석 및 판단하도록 구성될 수 있다. 예를 들면, 클럭 관리 블럭(251)은 획득된 감시 정보(MNT)에 근거하여 메모리 인터페이스(230)가 플래시 메모리 장치(260)를 제어하는지 또는 제어할 예정인지를 판단할 수 있다. 메모리 인터페이스(230)가 플래시 메모리 장치(260)를 제어하거나 제어할 예정인 경우, 플래시 메모리 장치(260)는 정상 상태(또는 활성 상태)로 동작할 것이다. 그 외의 경우, 플래시 메모리 장치(260)는 유휴 상태(또는 대기 상태, 절전 상태, 비활성 상태)로 동작할 것이다.
클럭 관리 블럭(251)은 판단 결과에 따라서 ECC 유닛(240)으로 제공되는 클럭(CLK_ECC)을 제어하도록 구성될 수 있다. 또한, 클럭 관리 블럭(251)은 판단 결과에 따라서 메모리 인터페이스(230)로 제공되는 클럭(CLK_FM)을 제어하도록 구성될 수 있다.
예를 들면, 클럭 관리 블럭(251)은 감시 정보(MNT)를 통해서 플래시 메모리 장치(260)가 정상 상태로 동작하는 것을 감지한 경우에 활성화된 클럭 전송 제어 신호들(ECC_EN 및 FM_EN)을 클럭 전송 제어 블럭(252)으로 제공할 수 있다. 또는, 클럭 관리 블럭(251)은 감시 정보(MNT)를 통해서 메모리 인터페이스(230)가 플래시 메모리 장치(260)에 대한 제어를 수행하거나 제어할 예정인 것으로 감지한 경우에 활성화된 클럭 전송 제어 신호들(ECC_EN 및 FM_EN)을 클럭 전송 제어 블럭(252)으로 제공할 수 있다. 즉, 클럭 관리 블럭(251)은 플래시 메모리 장치(260)가 동작하거나 동작할 예정인 경우에 활성화된 클럭 전송 제어 신호들(ECC_EN 및 FM_EN)을 클럭 전송 제어 블럭(252)으로 제공할 수 있다.
다른 예로서, 클럭 관리 블럭(251)은 감시 정보(MNT)를 통해서 플래시 메모리 장치(260)가 유휴 상태로 동작하는 것을 감지한 경우에 비활성화된 클럭 전송 제어 신호들(ECC_EN 및 FM_EN)을 클럭 전송 제어 블럭(252)으로 제공할 수 있다. 또는 클럭 관리 블럭(251)은 감시 정보(MNT)를 통해서 메모리 인터페이스(230)가 플래시 메모리 장치(260)에 대한 제어를 수행하지 않거나 제어할 예정이 없는 것으로 감지한 경우에 비활성화된 클럭 전송 제어 신호들(ECC_EN 및 FM_EN)을 클럭 전송 제어 블럭(252)으로 제공할 수 있다.
클럭 생성 블럭(253)은 컨트롤러(210)의 내부 기능 블럭들(예를 들면, 컨트롤 유닛(220), 메모리 인터페이스(230), ECC 유닛(240))에 제공될 클럭들을 생성하도록 구성될 수 있다. 또한, 클럭 생성 블럭(253)은 플래시 메모리 장치(260)를 제어하기 위한 제어 신호들의 생성에 필요한 기준 클럭(CLK_FM)을 생성하도록 구성될 수 있다. 클럭 생성 블럭(253)은 클럭 생성기를 포함할 수 있다.
클럭 전송 제어 블럭(252)은 클럭 생성 블럭(253)으로부터 생성된 클럭에 대한 전송을 제어하도록 구성될 수 있다. 클럭 전송 제어 블럭(252)은 클럭 관리 블럭(251)으로부터 제공되는 클럭 전송 제어 신호에 따라서 내부 기능 블럭들에 클럭을 전송하거나 전송하지 않을 수 있다. 즉, 클럭 전송 제어 블럭(252)은 클럭 생성 블럭(253)과 내부 기능 블럭들 간의 클럭 전송 경로에 대한 스위칭 동작을 수행하도록 구성될 수 있다. 예를 들면, 클럭 전송 제어 블럭(252)은 활성화된 클럭 전송 제어 신호(ECC_EN)에 응답하여 ECC 유닛(240)으로 클럭(CLK_ECC)을 전송할 수 있다. 또한, 클럭 전송 제어 블럭(252)은 활성화된 클럭 전송 제어 신호(FM_EN)에 응답하여 메모리 인터페이스(230)으로 클럭(CLK_FM)을 전송할 수 있다. 다른 예로서, 클럭 전송 제어 블럭(252)은 비활성화된 클럭 전송 제어 신호(ECC_EN)에 응답하여 ECC 유닛(240)으로의 클럭 전송을 차단할 수 있다. 또한, 클럭 전송 제어 블럭(252)은 비활성화된 클럭 전송 제어 신호(FM_EN)에 응답하여 메모리 인터페이스(230)으로의 클럭 전송을 차단할 수 있다.
도 6은 도 5에 도시된 클럭 유닛의 클럭 제공 동작을 예시적으로 설명하기 위한 타이밍도이다. 이하, 도 5 및 도 6을 참조하여, 플래시 메모리 장치(도 4의 260)가 동작하는 경우와 동작하지 않는 경우의 클럭 유닛(250)의 동작이 상세히 설명될 것이다.
도 6의 tFACT 기간은 플래시 메모리 장치(260)가 정상 상태로 동작하는 기간이다. 그리고 tFSTB 기간은 플래시 메모리 장치(260)가 유휴 상태로 동작하는 기간이다. 예시적으로, 유휴 상태는, 플래시 메모리 장치(260)가 메모리 인터페이스(230)로부터 제어를 받지 않는 상태(즉, 도 6에 도시된 바와 같이 제어 신호 라인들(CSLs)을 통해서 전송되는 제어 신호들이 비활성화될 때의 상태), 플래시 메모리 장치(260)가 내부적으로 아무런 동작도 수행하지 않는 상태 등을 포함할 수 있다.
tFACT 기간 동안, 클럭 관리 블럭(251)은 감시 정보(MNT)를 획득할 수 있다. tFACT 기간 동안, 메모리 인터페이스(도 4의 230)는 플래시 메모리 장치(260)가 동작하도록 제어 동작을 수행할 수 있다. 클럭 관리 블럭(251)은 메모리 인터페이스(230)의 동작을 감시하여 감시 정보(MNT)를 획득할 수 있다. 예를 들면, tFACT 기간 동안, 클럭 관리 블럭(251)은 디스크립터를 통해서 또는 활성화된 제어 신호 들(CSLs)의 감지를 통해서 감시 정보(MNT)를 획득할 수 있다.
클럭 관리 블럭(251)은 획득된 감시 정보(MNT)를 분석 및 판단한 결과에 따라서 클럭 전송 제어 신호들(ECC_EN 및 FM_EN)을 활성화하거나 비활성화할 수 있다. 플래시 메모리 장치(260)가 동작하거나 동작할 예정인 경우에(즉, 정상 상태로 동작하는 경우에) ECC 유닛(도 4의 240) 역시 동작해야할 것이다. 또한, 플래시 메모리 장치(260)가 동작하거나 동작할 예정인 경우에(즉, 정상 상태로 동작하는 경우에), 메모리 인터페이스(230)는 플래시 메모리 장치(260)를 제어하기 위한 제어 신호들을 생성하기 위해서 기준 클럭(CLK_FM)이 필요할 수 있다. 따라서, tFACT 기간 동안, 클럭 관리 블럭(251)은 클럭 전송 제어 신호들(ECC_EN 및 FM_EN)을 활성화할 수 있다. 클럭 전송 제어 블럭(252)은 활성화된 클럭 전송 제어 신호(ECC_EN)에 응답하여 ECC 유닛(240)으로 클럭(CLK_ECC)을 전송할 수 있다. 또한, 클럭 전송 제어 블럭(252)은 활성화된 클럭 전송 제어 신호(FM_EN)에 응답하여 메모리 인터페이스(230)로 클럭(CLK_FM)을 전송할 수 있다.
플래시 메모리 장치(260)가 동작하지 않는 경우에(즉, 유휴 상태로 동작하는 경우에) ECC 유닛(240)(예를 들면, ECC 인코더(241) 및 ECC 디코더(243)) 역시 동작하지 않아도 될 것이다. 또한, 플래시 메모리 장치(260)가 동작하지 않는 경우에(즉, 유휴 상태로 동작하는 경우에), 메모리 인터페이스(230)는 플래시 메모리 장치(260)를 제어하기 위한 제어 신호들을 생성하지 않아도 될 것이다. 따라서, tFSTB 기간 동안, 클럭 관리 블럭(251)은 클럭 전송 제어 신호들(ECC_EN 및 FM_EN)을 비활성화할 수 있다. 클럭 전송 제어 블럭(252)은 비활성화된 클럭 전송 제어 신호(ECC_EN)에 응답하여 ECC 유닛(240)으로 클럭(CLK_ECC)을 전송하지 않을 수 있다. 즉, 클럭 전송 제어 블럭(252)은 비활성화된 클럭 전송 제어 신호(ECC_EN)에 응답하여 ECC 유닛(240)으로의 클럭 전송을 차단할 수 있다. 또한, 클럭 전송 제어 블럭(252)은 비활성화된 클럭 전송 제어 신호(FM_EN)에 응답하여 메모리 인터페이스(230)로 클럭(CLK_FM)을 전송하지 않을 수 있다. 즉, 클럭 전송 제어 블럭(252)은 비활성화된 클럭 전송 제어 신호(FM_EN)에 응답하여 메모리 인터페이스(230)로의 클럭 전송을 차단할 수 있다.
이러한 동작을 통해서, 플래시 메모리 장치(260)가 정상 상태로 동작하는 동안, ECC 유닛(240)으로 클럭(CLK_ECC)이 제공될 수 있다. 또한, 메모리 인터페이스(230)로 플래시 메모리 장치(260)를 제어하기 위한 제어 신호들의 생성에 필요한 기준 클럭(CLK_FM)이 제공될 수 있다. 그리고 플래시 메모리 장치(260)가 유휴 상태로 동작하는 동안, ECC 유닛(240)으로 클럭(CLK_ECC)이 제공되지 않을 수 있다. 즉, 플래시 메모리 장치(260)가 유휴 상태로 동작하는 동안, ECC 인코더(241)와 ECC 디코더(243)로 클럭(CLK_ECC)이 제공되지 않을 수 있다. 또한, 메모리 인터페이스(230)로 플래시 메모리 장치(260)를 제어하기 위한 제어 신호들의 생성에 필요한 기준 클럭(CLK_FM)이 제공되지 않을 수 있다. 즉, 플래시 메모리 장치(260)가 동작하는 동안만 클럭들(CKL_ECC 및 CLK_FM)이 제공될 수 있다. 플래시 메모리 장치(260)의 동작 상태에 따라서 클럭들(CLK_ECC 및 CLK_FM)이 선택적으로 제공될 수 있기 때문에, 컨트롤러(210)는 전력 소모를 감소시킬 수 있다.
도 7은 본 발명의 실시 예에 따른 데이터 저장 장치를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 블럭도이다. 도 7을 참조하면, 데이터 처리 시스템(1000)은 호스트 장치(1100)와 데이터 저장 장치(1200)를 포함할 수 있다.
데이터 저장 장치(1200)는 컨트롤러(1210) 및 불휘발성 메모리 장치(1220)를 포함할 수 있다. 데이터 저장 장치(1200)는 데스크톱 컴퓨터, 노트북, 디지털 카메라, 휴대폰, MP3 플레이어, 게임기 등과 같은 호스트 장치(1100)에 접속되어 사용될 수 있다. 데이터 저장 장치(1200)는 메모리 시스템이라고도 불린다.
컨트롤러(1210)는 호스트 장치(1100)로부터의 요청에 응답하여 불휘발성 메모리 장치(1220)를 액세스하도록 구성될 수 있다. 예를 들면, 컨트롤러(1210)는 불휘발성 메모리 장치(1220)의 읽기, 프로그램 또는 소거 동작을 제어하도록 구성될 수 있다. 컨트롤러(1210)는 불휘발성 메모리 장치(1220)를 제어하기 위한 펌웨어 또는 소프트웨어를 구동하도록 구성될 수 있다.
컨트롤러(1210)는 호스트 인터페이스(1211), 컨트롤 유닛(1212), 메모리 인터페이스(1213), 램(1214), 에러 정정 코드 유닛(1215) 및 클럭 유닛(1216)을 포함할 수 있다.
컨트롤 유닛(1212)은 호스트 장치의 요청에 응답하여 컨트롤러(1210)의 제반 동작을 제어하도록 구성될 수 있다. 램(1214)은 컨트롤 유닛(1212)의 동작 메모리(working memory)로써 이용될 수 있다. 램(1214)은 불휘발성 메모리 장치(1220)로부터 읽혀진 데이터 또는 호스트 장치(1100)로부터 제공된 데이터를 임시로 저장할 수 있다.
호스트 인터페이스(1211)는 호스트 장치(1100)와 컨트롤러(1210)를 인터페이싱하도록 구성될 수 있다. 예를 들면, 호스트 인터페이스(1211)는 USB(Universal Serial Bus) 프로토콜, UFS(Universal Flash Storage) 프로토콜, MMC(Multimedia Card) 프로토콜, PCI(Peripheral Component Interconnection) 프로토콜, PCI-E(PCI-Express) 프로토콜, PATA(Parallel Advanced Technology Attachment) 프로토콜, SATA(Serial ATA) 프로토콜, SCSI(Small Computer System Interface) 프로토콜, 그리고 SAS(Serial Attached SCSI) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 호스트 장치(1100)와 통신하도록 구성될 수 있다.
메모리 인터페이스(1213)는 컨트롤러(1210)와 불휘발성 메모리 장치(1220)를 인터페이싱하도록 구성될 수 있다. 메모리 인터페이스(1213)는 불휘발성 메모리 장치(1220)에 커맨드 및 어드레스를 제공하도록 구성될 수 있다. 그리고 메모리 인터페이스(1213)는 불휘발성 메모리 장치(1220)와 데이터를 주고 받도록 구성될 수 있다.
에러 정정 코드 유닛(1215)은 불휘발성 메모리 장치(1220)로부터 독출된 데이터의 오류를 검출하도록 구성될 수 있다. 그리고 에러 정정 코드 유닛(1215)은 검출된 에러가 정정 범위 내이면, 검출된 오류를 정정하도록 구성될 수 있다. 한편, 에러 정정 코드 유닛(1215)은 메모리 시스템(1000)에 따라 컨트롤러(1210) 내에 구비되거나 밖에 구비될 수 있다.
클럭 유닛(1216)은 컨트롤러(1210) 내부에서 사용되는 클럭을 생성하도록 구성될 수 있다. 클럭 유닛(1216)에 의해서 생성된 클럭은 컨트롤러(1210)에 포함된 기능 블럭들(예를 들면, 호스트 인터페이스(1211), 마이크로 컨트롤 유닛(1212), 메모리 인터페이스(1213), 에러 정정 코드 유닛(1215))의 동작 클럭으로 사용될 수 있다. 클럭 유닛(1216)은 도 1의 클럭 유닛(150)과 같이, 메모리 인터페이스(1213)의 동작을 감시하고, 감시 결과에 따라 에러 정정 코드 유닛(1215)에 클럭을 선택적으로 제공할 수 있다. 또는 클럭 유닛(1216)은 도 4의 클럭 유닛(250)과 같이, 메모리 인터페이스(1213)의 동작을 감시하고, 감시 결과에 따라 에러 정정 코드 유닛(1215)과 메모리 인터페이스(1213)에 클럭을 선택적으로 제공할 수 있다.
컨트롤러(1210) 및 불휘발성 메모리 장치(1220)는 다양한 데이터 저장 장치 중 어느 하나로 제조될 수 있다. 예를 들면, 컨트롤러(1210) 및 데이터 저장 매체(1220)는 하나의 반도체 장치로 집적되어 MMC, eMMC, RS-MMC, micro-MMC 형태의 멀티 미디어 카드(Multi Media Card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(Secure Digital) 카드, USB(Universal Storage Bus) 저장 장치, UFS(Universal Flash Storage) 장치, PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick) 중 어느 하나로 제조될 수 있다.
도 8은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(SSD)를 포함하는 데이터 처리 시스템을 예시적으로 보여주는 블럭도이다. 도 8을 참조하면, 데이터 처리 시스템(2000)은 호스트 장치(2100)와 솔리드 스테이트 드라이브(solid state drive, 이하, SSD라 칭함, 2200)를 포함할 수 있다.
SSD(2200)는 SSD 컨트롤러(2210), 버퍼 메모리 장치(2220), 불휘발성 메모리 장치들(2231~223n), 전원 공급기(2240), 신호 커넥터(2250), 전원 커넥터(2260)를 포함할 수 있다.
SSD(2200)는 호스트 장치(2100)의 요청에 응답하여 동작할 수 있다. 즉, SSD 컨트롤러(2210)는 호스트 장치(2100)로부터의 요청에 응답하여 불휘발성 메모리 장치들(2231~223n)을 액세스하도록 구성될 수 있다. 예를 들면, SSD 컨트롤러(2210)는 불휘발성 메모리 장치들(2231~223n)의 읽기, 프로그램 그리고 소거 동작을 제어하도록 구성될 수 있다.
버퍼 메모리 장치(2220)는 불휘발성 메모리 장치들(2231~223n)에 저장될 데이터를 임시 저장하도록 구성될 수 있다. 또한, 버퍼 메모리 장치(2220)는 불휘발성 메모리 장치들(2231~223n)로부터 읽혀진 데이터를 임시 저장하도록 구성될 수 있다. 버퍼 메모리 장치(2220)에 임시 저장된 데이터는 SSD 컨트롤러(2210)의 제어에 따라 호스트 장치(2100) 또는 불휘발성 메모리 장치들(2231~223n)로 전송될 수 있다.
불휘발성 메모리 장치들(2231~223n)은 SSD(2200)의 저장 매체로써 사용될 수 있다. 불휘발성 메모리 장치들(2231~223n) 각각은 복수의 채널들(CH1~CHn)을 통해 SSD 컨트롤러(2210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리 장치가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리 장치들은 동일한 신호 버스 및 데이터 버스에 연결될 수 있다.
전원 공급기(2240)는 전원 커넥터(2260)를 통해 입력된 전원(PWR)을 SSD(2200) 내부에 제공하도록 구성될 수 있다. 전원 공급기(2240)는 보조 전원 공급기(2241)를 포함할 수 있다. 보조 전원 공급기(2241)는 서든 파워 오프(sudden power off)가 발생되는 경우, SSD(2200)가 정상적으로 종료될 수 있도록 전원을 공급하도록 구성될 수 있다. 보조 전원 공급기(2241)는 전원(PWR)을 충전할 수 있는 슈퍼 캐패시터들(super capacitors)을 포함할 수 있다.
SSD 컨트롤러(2210)는 신호 커넥터(2250)를 통해서 호스트 장치(2100)와 신호(SGL)를 주고 받을 수 있다. 여기에서, 신호(SGL)는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. 신호 커넥터(2250)는 호스트 장치(2100)와 SSD(2200)의 인터페이스 방식에 따라 PATA(Parallel Advanced Technology Attachment), SATA(Serial Advanced Technology Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCI-E(PCI Express) 등의 커넥터로 구성될 수 있다.
도 9는 도 8에 도시된 SSD 컨트롤러를 예시적으로 보여주는 블록도이다. 도 9를 참조하면, SSD 컨트롤러(2210)는 메모리 인터페이스(2211), 호스트 인터페이스(2212), ECC 유닛(2213), 컨트롤 유닛(2214), 램(2215) 및 클럭 유닛(2216)를 포함할 수 있다.
메모리 인터페이스(2211)는 불휘발성 메모리 장치들(2231~223n)에 커맨드 및 어드레스를 제공하도록 구성될 수 있다. 그리고 메모리 인터페이스(2211)는 불휘발성 메모리 장치들(2231~223n)과 데이터를 주고 받도록 구성될 수 있다. 메모리 인터페이스(2211)는 컨트롤 유닛(2214)의 제어에 따라 버퍼 메모리 장치(2220)로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)할 수 있다. 그리고 메모리 인터페이스(2211)는 컨트롤 유닛(2214)의 제어에 따라 불휘발성 메모리 장치들(2231~223n)로부터 읽혀진 데이터를 버퍼 메모리 장치(2220)로 전달할 수 있다.
호스트 인터페이스(2212)는 호스트 장치(2100)의 프로토콜에 대응하여 SSD(2200)와의 인터페이싱을 제공하도록 구성될 수 있다. 예를 들면, 호스트 인터페이스(2212)는 PATA(Parallel Advanced Technology Attachment), SATA(Serial Advanced Technology Attachment), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), PCI(Peripheral Component Interconnection), PCI-E(PCI Expresss) 프로토콜들 중 어느 하나를 통해 호스트 장치(2100)와 통신하도록 구성될 수 있다. 또한, 호스트 인터페이스(2212)는 호스트 장치(2100)가 SSD(2200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
ECC 유닛(2213)은 불휘발성 메모리 장치들(2231~223n)로 전송되는 데이터에 근거하여 패러티 비트를 생성하도록 구성될 수 있다. 생성된 패러티 비트는 불휘발성 메모리(2231~223n)의 스페어 영역(spare area)에 저장될 수 있다. ECC 유닛(2213)은 불휘발성 메모리 장치들(2231~223n)로부터 읽혀진 데이터의 에러를 검출하도록 구성될 수 있다. 만약, 검출된 에러가 정정 범위 내이면, 검출된 에러를 정정하도록 구성될 수 있다.
컨트롤 유닛(2214)는 호스트 장치(2100)로부터 입력된 신호(SGL)를 분석하고 처리하도록 구성될 수 있다. 컨트롤 유닛(2214)는 호스트 장치(2100)의 요청에 응답하여 SSD 컨트롤러(2210)의 제반 동작을 제어할 수 있다. 컨트롤 유닛(2214)은 SSD(2200)를 구동하기 위한 펌웨어에 따라서 버퍼 메모리 장치(2220) 및 불휘발성 메모리 장치들(2231~223n)의 동작을 제어할 수 있다. 램(2215)은 이러한 펌웨어를 구동하기 위한 동작 메모리 장치(working memory device)로써 사용될 수 있다.
클럭 유닛(2216)은 도 1의 클럭 유닛(150)과 같이, 메모리 인터페이스(2211)의 동작을 감시하고, 감시 결과에 따라 ECC 유닛(2213)에 클럭을 선택적으로 제공할 수 있다. 또는 클럭 유닛(2216)은 도 4의 클럭 유닛(250)과 같이, 메모리 인터페이스(2211)의 동작을 감시하고, 감시 결과에 따라 ECC 유닛(2213)과 메모리 인터페이스(2211)에 클럭을 선택적으로 제공할 수 있다.
도 10은 본 발명의 실시 예에 따른 데이터 저장 장치가 장착되는 컴퓨터 시스템을 예시적으로 보여주는 블럭도이다. 도 10을 참조하면, 컴퓨터 시스템(3000)은 시스템 버스(3700)에 전기적으로 연결되는 네트워크 어댑터(3100), 중앙 처리 장치(3200), 데이터 저장 장치(3300), 램(3400), 롬(3500) 그리고 사용자 인터페이스(3600)를 포함한다. 여기에서, 데이터 저장 장치(3300)는 도 1에 도시된 데이터 저장 장치(100), 도 4에 도시된 데이터 저장 장치(200), 도 7에 도시된 데이터 저장 장치(1200) 또는 도 8에 도시된 SSD(2200)로 구성될 수 있다.
네트워크 어댑터(3100)는 컴퓨터 시스템(3000)과 외부의 네트워크들 사이의 인터페이싱을 제공한다. 중앙 처리 장치(3200)는 램(3400)에 상주하는 운영 체제(Operating System)나 응용 프로그램(Application Program)을 구동하기 위한 제반 연산 처리를 수행한다.
데이터 저장 장치(3300)는 컴퓨터 시스템(3000)에서 필요한 제반 데이터를 저장한다. 예를 들면, 컴퓨터 시스템(3000)을 구동하기 위한 운영 체제(Operating System), 응용 프로그램(Application Program), 다양한 프로그램 모듈(Program Module), 프로그램 데이터(Program data), 그리고 유저 데이터(User data) 등이 데이터 저장 장치(3300)에 저장된다.
램(3400)은 컴퓨터 시스템(3000)의 동작 메모리 장치로 사용될 수 있다. 부팅 시에 램(3400)에는 데이터 저장 장치(3300)로부터 읽혀진 운영 체제(Operating System), 응용 프로그램(Application Program), 다양한 프로그램 모듈(Program Module)과 프로그램들의 구동에 소요되는 프로그램 데이터(Program data)가 로드된다. 롬(3500)에는 운영 체제(Operating System)가 구동되기 이전부터 활성화되는 기본적인 입출력 시스템인 바이오스(BIOS: Basic Input/Output System)가 저장된다. 유저 인터페이스(3600)를 통해서 컴퓨터 시스템(3000)과 사용자 사이의 정보 교환이 이루어진다.
비록 도면에는 도시되지 않았지만, 컴퓨터 시스템(3000)은 배터리(Battery), 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS) 등과 같은 장치들을 더 포함할 수 있음은 잘 이해될 것이다.
이상에서, 본 발명은 구체적인 실시 예를 통해 설명되고 있으나, 본 발명은 그 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있음은 잘 이해될 것이다. 그러므로, 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며, 후술하는 특허청구범위 및 이와 균등한 것들에 의해 정해져야 한다. 본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 잘 이해될 것이다.
100 : 데이터 저장 장치
110 : 컨트롤러
120 : 컨트롤 유닛
130 : 메모리 인터페이스
140 : ECC 유닛
150 : 클럭 유닛
160 : 불휘발성 메모리 장치

Claims (19)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 불휘발성 메모리 장치;
    상기 불휘발성 메모리 장치로부터 독출된 데이터의 에러를 검출하고 정정하도록 구성된 에러 정정 코드 유닛;
    상기 불휘발성 메모리 장치를 제어하기 위한 제어 신호들을 상기 불휘발성 메모리 장치로 제공하도록 구성된 메모리 인터페이스; 및
    상기 불휘발성 메모리 장치의 동작 상태에 따라서 상기 에러 정정 코드 유닛의 동작에 필요한 동작 클럭과 상기 제어 신호들을 생성에 필요한 기준 클럭을 선택적으로 제공하도록 구성된 클럭 유닛을 포함하고,
    상기 클럭 유닛은,
    상기 동작 클럭과 상기 기준 클럭을 생성하도록 구성된 클럭 생성 블럭;
    상기 메모리 인터페이스의 동작을 감시하고, 감시 결과에 따라 획득한 감시 정보에 근거하여 제1 클럭 전송 제어 신호 및 제2 클럭 전송 제어 신호를 활성화하거나 비활성화하도록 구성된 클럭 관리 블럭; 및
    상기 제1 클럭 전송 제어 신호가 활성화될 때 상기 생성된 동작 클럭을 상기 에러 정정 코드 유닛으로 전송하고, 상기 제2 클럭 전송 제어 신호가 활성화될 때 상기 생성된 기준 클럭을 상기 메모리 인터페이스로 전송하도록 구성된 클럭 전송 제어 블럭을 포함하는 데이터 저장 장치.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 클럭 유닛은 상기 불휘발성 메모리 장치가 유휴 상태로 동작하는 동안 상기 에러 정정 코드 유닛으로 상기 동작 클럭의 전송을 차단하고, 상기 메모리 인터페이스로 상기 기준 클럭의 전송을 차단하도록 구성된 데이터 저장 장치.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제13항에 있어서,
    상기 에러 정정 코드 유닛은 상기 불휘발성 메모리 장치로 저장될 데이터에 대한 에러 정정 코드를 인코딩하기 인코더와, 상기 불휘발성 메모리 장치로부터 독출된 데이터의 에러를 검출하고 정정하기 위한 디코더를 포함하되,
    상기 에러 정정 코드 유닛으로 상기 동작 클럭의 전송이 차단될 때, 상기 인코더와 상기 디코더 모두에 상기 동작 클럭의 전송이 차단되는 데이터 저장 장치.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 클럭 유닛은 상기 불휘발성 메모리 장치가 정상 상태로 동작하는 동안 상기 에러 정정 코드 유닛으로 상기 동작 클럭을 전송하고, 상기 메모리 인터페이스로 상기 기준 클럭을 전송하도록 구성된 데이터 저장 장치.
  16. 삭제
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 클럭 관리 블럭은 상기 제어 신호들이 상기 불휘발성 메모리 장치로 제공될 때 획득한 상기 감시 정보에 근거하여 상기 제1 클럭 전송 제어 신호 및 상기 제2 클럭 전송 제어 신호를 활성화하도록 구성된 데이터 저장 장치.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 메모리 인터페이스는 상기 불휘발성 메모리 장치의 제어를 위해서 수행해야할 동작을 명시한 디스크립터에 따라서 상기 제어 신호들을 상기 불휘발성 메모리 장치로 제공하도록 구성되고,
    상기 클럭 관리 블럭은 상기 디스크립터를 참조하여 획득한 상기 감시 정보에 근거하여 상기 제1 클럭 전송 제어 신호 및 상기 제2 클럭 전송 제어 신호를 활성화하도록 구성된 데이터 저장 장치.
  19. 삭제
KR1020130124737A 2013-10-18 2013-10-18 데이터 저장 장치 KR102140592B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130124737A KR102140592B1 (ko) 2013-10-18 2013-10-18 데이터 저장 장치
US14/156,215 US9304855B2 (en) 2013-10-18 2014-01-15 Data storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130124737A KR102140592B1 (ko) 2013-10-18 2013-10-18 데이터 저장 장치

Publications (2)

Publication Number Publication Date
KR20150045253A KR20150045253A (ko) 2015-04-28
KR102140592B1 true KR102140592B1 (ko) 2020-08-03

Family

ID=52827292

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130124737A KR102140592B1 (ko) 2013-10-18 2013-10-18 데이터 저장 장치

Country Status (2)

Country Link
US (1) US9304855B2 (ko)
KR (1) KR102140592B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150122825A (ko) * 2014-04-23 2015-11-03 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
CN106547667B (zh) * 2015-09-16 2020-05-22 比亚迪股份有限公司 一种移动终端的故障提示方法及系统
KR102280433B1 (ko) * 2015-09-23 2021-07-22 삼성전자주식회사 전력 공급 회로 및 이를 포함하는 저장 장치
US9898229B1 (en) * 2016-07-29 2018-02-20 Sandisk Technologies Llc Systems and methods of memory reads
US10282251B2 (en) * 2016-09-07 2019-05-07 Sandisk Technologies Llc System and method for protecting firmware integrity in a multi-processor non-volatile memory system
US10055164B2 (en) * 2016-09-07 2018-08-21 Sandisk Technologies Llc Data storage at an access device
US10069597B2 (en) * 2016-09-07 2018-09-04 Western Digital Technologies, Inc. Aggregated metadata transfer at a data storage device
CN106547848A (zh) * 2016-10-18 2017-03-29 广州酷狗计算机科技有限公司 数据存储方法及装置
KR102615227B1 (ko) * 2018-02-01 2023-12-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102523327B1 (ko) * 2018-03-19 2023-04-20 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US10621091B2 (en) 2018-05-04 2020-04-14 Micron Technology, Inc. Apparatuses and methods to perform continuous read operations
US20200127685A1 (en) * 2018-10-19 2020-04-23 Nyquist Semiconductor Limited Systems and methods for a hybrid non-volatile storage system
CN113889176A (zh) * 2021-09-29 2022-01-04 深圳市金泰克半导体有限公司 Ddr芯片的存储单元的测试方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6285589B1 (en) 1997-03-31 2001-09-04 Sanyo Electric Co., Ltd. Non-volatile semiconductor memory apparatus
US20070226401A1 (en) * 2006-03-21 2007-09-27 Pa-Chung Huang Data accessing structure and method for flash memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH087995B2 (ja) * 1985-08-16 1996-01-29 富士通株式会社 ダイナミツク半導体記憶装置のリフレツシユ方法および装置
JP3729591B2 (ja) * 1997-04-09 2005-12-21 株式会社ルネサステクノロジ 記憶装置およびクロック発振停止時のデータ受け付け制御方法
KR100305027B1 (ko) * 1998-12-30 2001-11-02 박종섭 지연장치
DE10052877B4 (de) * 1999-10-21 2008-07-03 Samsung Electronics Co., Ltd., Suwon Mikrocontroller
JP4695385B2 (ja) * 2004-11-30 2011-06-08 株式会社東芝 メモリカードおよびカードコントローラ
JP2006209900A (ja) * 2005-01-31 2006-08-10 Matsushita Electric Ind Co Ltd メモリ回路
US20060280019A1 (en) 2005-06-13 2006-12-14 Burton Edward A Error based supply regulation
US9335939B2 (en) * 2011-07-12 2016-05-10 Violin Memory Inc. RAIDed memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6285589B1 (en) 1997-03-31 2001-09-04 Sanyo Electric Co., Ltd. Non-volatile semiconductor memory apparatus
US20070226401A1 (en) * 2006-03-21 2007-09-27 Pa-Chung Huang Data accessing structure and method for flash memory

Also Published As

Publication number Publication date
KR20150045253A (ko) 2015-04-28
US20150113355A1 (en) 2015-04-23
US9304855B2 (en) 2016-04-05

Similar Documents

Publication Publication Date Title
KR102140592B1 (ko) 데이터 저장 장치
KR102020466B1 (ko) 버퍼 메모리 장치를 포함하는 데이터 저장 장치
KR102114109B1 (ko) 데이터 저장 장치
KR102395541B1 (ko) 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
KR20150006614A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20150074550A (ko) 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템
US9372741B2 (en) Data storage device and operating method thereof
KR20130070251A (ko) 브릿지 칩셋 및 그것을 포함하는 데이터 저장 시스템
KR102225313B1 (ko) 데이터 저장 장치의 동작 방법
KR20200093362A (ko) 메모리 시스템 및 그것의 동작 방법
KR20160025292A (ko) 데이터 저장 장치, 그것을 포함하는 데이터 처리 시스템 및 그것의 동작 방법
KR102100707B1 (ko) 데이터 저장 장치
KR20160105625A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20150019796A1 (en) Data storage device and operating method thereof
KR20210098717A (ko) 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치
KR102140297B1 (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
KR20150020384A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20170094674A (ko) 데이터 저장 장치
US20210326060A1 (en) Nonvolatile memory device, data storage device including the same and operating method thereof
KR102180972B1 (ko) 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
KR102155611B1 (ko) 데이터 저장 장치
US20150169235A1 (en) Data storage device and operating method thereof
US20150149740A1 (en) Data storage device and data processing system including the same
KR20170142483A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20150044654A (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant