KR20140067737A - 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 - Google Patents

메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 Download PDF

Info

Publication number
KR20140067737A
KR20140067737A KR1020120135380A KR20120135380A KR20140067737A KR 20140067737 A KR20140067737 A KR 20140067737A KR 1020120135380 A KR1020120135380 A KR 1020120135380A KR 20120135380 A KR20120135380 A KR 20120135380A KR 20140067737 A KR20140067737 A KR 20140067737A
Authority
KR
South Korea
Prior art keywords
command
register
memory
interface
memory controller
Prior art date
Application number
KR1020120135380A
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 KR1020120135380A priority Critical patent/KR20140067737A/ko
Priority to US14/090,042 priority patent/US20140149692A1/en
Publication of KR20140067737A publication Critical patent/KR20140067737A/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

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)
  • Read Only Memory (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 메모리 컨트롤러의 동작 방법에 관한 것이다. 본 발명의 메모리 컨트롤러의 동작 방법은, 외부 호스트로부터 커맨드 이슈를 수신하는 단계, 커맨드 이슈에 응답하여 외부 호스트의 메모리로부터 커맨드 이슈에 대응하는 커맨드를 페치하는 단계, 그리고 페치된 커맨드를 수행하도록 외부 메모리를 제어하는 단계로 구성된다. 커맨드 이슈가 수신되면, 커맨드의 페치는 페치된 커맨드의 수행과 독립적으로 커맨드 이슈가 수신된 후 바로 수행된다.

Description

메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법{MEMORY CONTROLLER AND OPERATING METHOD OF MEMORY CONTROLLER}
본 발명은 반도체 메모리에 관한 것으로, 더 상세하게는 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비소 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등이 있다. 불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불휘발성 메모리 장치에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다.
반도체 메모리 장치는 메모리 컨트롤러의 제어에 따라 쓰기, 읽기 및 소거를 수행한다. 메모리 컨트롤러는 호스트의 지시에 따라 반도체 메모리 장치를 제어한다. 메모리 컨트롤러는 호스트 및 반도체 메모리 장치 사이를 중개하는 역할을 수행한다.
불휘발성 메모리 장치 및 불휘발성 메모리 장치를 제어하는 컨트롤러가 조합된 장치는, 데이터를 장기간 보존하는 스토리지의 용도로 사용될 수 있다. 호스트의 동작 속도가 향상되면서, 고속 스토리지에 대한 요구가 발생하고 있다.
본 발명의 목적은, 외부 호스트 및 외부 메모리 사이에 향상된 통신 속도를 제공하는 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법을 제공하는 데에 있다.
외부 호스트와 연결되고, 외부 메모리를 제어하도록 구성되는 본 발명의 실시 예에 따른 메모리 컨트롤러의 동작 방법은, 상기 외부 호스트로부터 커맨드 이슈(command issue)를 수신하는 단계; 상기 커맨드 이슈에 응답하여, 상기 외부 호스트의 메모리로부터 상기 커맨드 이슈에 대응하는 커맨드를 페치(fetch)하는 단계; 그리고 상기 페치된 커맨드를 수행하도록, 상기 외부 메모리를 제어하는 단계를 포함하고, 상기 커맨드 이슈가 수신되면, 상기 커맨드의 페치는 상기 페치된 커맨드의 수행과 독립적으로 상기 커맨드 이슈가 수신된 후 바로 수행된다.
실시 예로서, 제 1 페치된 커맨드가 수행되는 동안, 제 2 커맨드 이슈에 응답하여 제 2 커맨드가 페치된다.
실시 예로서, 상기 제 1 페치된 커맨드의 수행이 완료되면, 상기 제 2 페치된 커맨드가 수행된다.
실시 예로서, 상기 외부 호스트와 상기 메모리 컨트롤러 사이의 통신은 상기 메모리 컨트롤러에 포함되며 상기 외부 호스트에 의해 스토리지로 인식되는 인터페이스에 기반하여 수행된다.
실시 예로서, 상기 외부 호스트와 상기 메모리 컨트롤러 사이의 통신은 상기 메모리 컨트롤러에 포함되는 AHCI (Advanced Host Controller Interface)에 기반하여 수행된다.
실시 예로서, 상기 커맨드를 페치하는 단계는, 상기 커맨드 이슈에 응답하여 상기 외부 호스트의 메모리로부터 커맨드 헤더(CH, Command Header)를 페치하는 단계; 그리고 상기 커맨드 헤더를 참조하여, 상기 외부 호스트의 메모리로부터 커맨드 프레임(CFIS, Command Frame Information Structure)을 페치하는 단계를 포함한다.
실시 예로서, 상기 커맨드 이슈가 수신되면, 제 1 내부 레지스터의 슬롯들 중 하나의 슬롯이 커맨드 이슈가 있음을 가리키도록 설정된다.
실시 예로서, 상기 커맨드를 페치하는 단계는, 상기 제 1 내부 레지스터의 슬롯의 설정에 응답하여, 상기 커맨드를 페치하는 단계; 그리고 상기 커맨드의 페치에 응답하여, 상기 제 1 내부 레지스터의 설정된 슬롯에 대응하는 제 2 내부 레지스터의 슬롯을 설정하는 단계를 포함한다.
실시 예로서, 상기 커맨드의 수행은 상기 제 2 내부 레지스터의 설정된 슬롯에 응답하여 수행된다.
실시 예로서, 상기 커맨드의 수행이 완료되면, 상기 수행된 커맨드에 대응하는 상기 제 1 및 제 2 레지스터들의 슬롯들을 클리어하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 메모리 컨트롤러는, 호스트와 통신하는 제 1 인터페이스; 그리고 상기 제 1 인터페이스 및 외부 메모리와 통신하고, 상기 호스트에서 스토리지로 인식되는 제 2 인터페이스를 포함하고, 상기 제 2 인터페이스는 상기 호스트로부터 상기 제 1 인터페이스를 통해 전송되는 커맨드 이슈에 응답하여 상기 호스트의 메모리로부터 커맨드를 페치하고, 상기 페치된 커맨드에 응답하여 외부 메모리를 제어하도록 구성되고, 상기 제 2 인터페이스는 상기 외부 메모리의 제어와 독립적으로, 상기 커맨드 이슈가 발생할 때마다 상기 커맨드를 페치하도록 구성된다.
실시 예로서, 상기 제 2 인터페이스는, 상기 제 1 인터페이스를 통해 전송되는 상기 커맨드 이슈에 따라 설정되는 제 1 레지스터; 상기 제 1 레지스터의 설정에 응답하여 상기 호스트로부터 상기 제 1 인터페이스를 통해 커맨드를 페치하도록 구성되는 커맨드 레지스터; 상기 커맨드 레지스터의 커맨드 페치에 응답하여 설정되는 제 2 레지스터; 그리고 상기 제 2 레지스터의 설정에 응답하여, 상기 커맨드 레지스터에 페치된 커맨드를 수행하도록 구성되는 스테이트 머신을 포함한다.
실시 예로서, 상기 제 1 레지스터는 복수의 제 1 슬롯들을 포함하고, 상기 복수의 제 1 슬롯들은 각각 서로 다른 커맨드 이슈에 의해 설정된다.
실시 예로서, 상기 커맨드 레지스터는 상기 복수의 제 1 슬롯들에 각각 대응하는 복수의 커맨드 슬롯들을 포함하고, 상기 스테이트 머신의 동작과 독립적으로 상기 복수의 제 1 슬롯들 각각이 설정될 때마다 대응하는 커맨드 슬롯에 커맨드를 페치하도록 구성된다.
실시 예로서, 상기 스테이트 머신이 상기 페치된 커맨드의 수행을 완료하면, 상기 제 1 레지스터, 커맨드 레지스터 및 제 2 레지스터는 클리어된다.
본 발명의 실시 예들에 따르면, 메모리 컨트롤러는 호스트로부터의 커맨드 페치와 외부 메모리의 제어를 독립적으로 수행한다. 따라서, 호스트로부터의 커맨드 페치 및 외부 메모리의 제어가 병렬적으로 수행되며, 향상된 속도를 갖는 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다.
도 2는 도 1의 메모리 컨트롤러의 동작 방법을 보여주는 순서도이다.
도 3은 도 1의 컴퓨팅 시스템의 동작을 보여주는 순서도이다.
도 4는 본 발명의 실시 예에 따른 메모리 컨트롤러를 보여주는 블록도이다.
도 5는 도 4의 스토리지 엔진을 보여주는 블록도이다.
도 6은 도 5의 제 2 인터페이스의 동작 방법을 보여주는 순서도이다.
도 7은 복수의 커맨드 이슈들이 발생할 때, 도 5에 도시된 레지스터들의 슬롯들의 값들의 변화들을 보여주는 타이밍도이다.
도 8은 본 발명의 다른 실시 예에 따른 스토리지를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
이하에서, 레지스터(또는 레지스터의 슬롯)의 '설정' 및 '클리어'의 의미가 정의된다. 예시적으로, 레지스터(또는 레지스터의 슬롯)의 설정은 레지스터(또는 레지스터의 슬롯)에 저장된 값을 '0' 또는 '1'의 값으로 변경하는 동작을 포함한다. 레지스터(또는 레지스터의 슬롯)의 클리어는 레지스터(또는 레지스터의 슬롯)에 저장된 값을 '1' 또는 '0'의 값으로 변경하는 동작을 포함한다.
도 1은 본 발명의 실시 예에 따른 컴퓨팅 시스템(1000)을 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템(1000)은 버스(1100), 프로세서(1200), 시스템 메모리(1300), 그리고 스토리지(1400)를 포함한다.
버스(1100)는 컴퓨팅 장치(1000)의 구성 요소들 사이에 채널을 제공하도록 구성된다. 예를 들어, 버스(1100)는 프로세서(1200) 및 스토리지(1400) 사이에 채널을 제공할 수 있다. 버스(1100)는 컴퓨팅 시스템(1000)의 표준 인터페이스에 기반하여 동작할 수 있다. 예를 들어, 버스(1100)는 PCIe (Peripheral Component Interconnect express) 인터페이스에 기반하여 동작할 수 있다. 그러나, 버스(1100)는 PCIe 인터페이스에 한정되지 않는다. 버스(1100)는 프로세서(1200)와 컴퓨팅 장치(1000)의 다양한 구성 요소들 사이에 채널을 제공하는 다양한 인터페이스들에 기반하여 동작하는 것으로 응용 및 적용될 수 있다.
프로세서(1200)는 컴퓨팅 시스템(1000)의 구성 요소들을 제어하도록 구성된다. 예를 들어, 프로세서(1200)는 시스템 메모리(1300)를 액세스하고, 버스(1100)를 통해 스토리지(1400)를 제어할 수 있다. 프로세서(1200)는 PCIe 인터페이스에 기반하여, 스토리지(1400)를 제어할 수 있다. 프로세서(1200)는 범용 프로세서 또는 어플리케이션 프로세서를 포함할 수 있다.
시스템 메모리(1300)는 프로세서(1200)와 통신하도록 구성된다. 시스템 메모리(1300)는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같은 휘발성 메모리, 또는 PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
스토리지(1400)는 버스(1100)를 통해 프로세서(1200)와 통신하도록 구성된다. 예를 들어, 스토리지(1400)는 PCIe 인터페이스에 기반하여 프로세서(1200) 및 시스템 메모리(1300)와 통신할 수 있다. 스토리지(1400)는 데이터를 장기적으로 보관하는 용도로 사용될 수 있다. 스토리지(1400)는 불휘발성 메모리(1410) 및 메모리 컨트롤러(1420)를 포함한다.
불휘발성 메모리(1410)는 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리들 중 적어도 하나를 포함할 수 있다.
메모리 컨트롤러(1420)는 버스(1100)를 통해 프로세서(1200)와 통신하고, 불휘발성 메모리(1410)를 제어하도록 구성된다. 예를 들어, 메모리 컨트롤러(1420)는 PCIe 인터페이스를 통해 프로세서(1200)와 통신할 수 있다.
메모리 컨트롤러(1420)는 버스(1100) 또는 프로세서(1200)에 의해 스토리지로 인식되는 인터페이스를 포함한다. 예를 들어, 스토리지(1400)가 버스(1100)에 연결되면, 메모리 컨트롤러(1400)는 프로세서(1200) 또는 버스(1100)와 미리 정해진 통신을 수행할 수 있다. 미리 정해진 통신의 결과에 따라, 스토리지(1400)는 프로세서(1200) 또는 버스(1100)에 의해 스토리지인 것으로 식별될 수 있다. 즉, 메모리 컨트롤러(1420)는 컴퓨팅 시스템의 표준 인터페이스(예를 들어, PCIe)에 기반하여 프로세서(1200) 및 시스템 메모리(1300)와 통신하며, 프로세서(1200) 또는 버스(1100)에 의해 스토리지로 식별되는 인터페이스를 포함할 수 있다.
버스(1100), 프로세서(1200) 및 시스템 메모리(1300)는 스토리지(1400)의 호스트를 형성할 수 있다.
도 2는 도 1의 메모리 컨트롤러(1420)의 동작 방법을 보여주는 순서도이다. 도 1 및 도 2를 참조하면, S110 단계에서, 메모리 컨트롤러(1420)는 프로세서(1200)로부터 커맨드 이슈(command issue)를 수신하고, 수신된 커맨드 이슈에 응답하여 시스템 메모리(1300)로부터 커맨드를 페치(fetch)할 수 있다.
커맨드 이슈는 스토리지(1400)에 전달될 커맨드가 발생했음을 알리는 메시지일 수 있다. 커맨드 이슈에 응답하여, 메모리 컨트롤러(1420)는 프로세서(1200)를 통해 시스템 메모리(1300)의 특정한 저장 영역에 저장되어 있는 커맨드를 페치할 수 있다.
S120 단계에서, 메모리 컨트롤러(1420)는 페치된 커맨드를 수행하도록 불휘발성 메모리(1410)를 제어한다. 예를 들어, 메모리 컨트롤러(1420)는 페치된 커맨드에 따라 쓰기, 읽기 또는 소거를 수행하도록 불휘발성 메모리(1410)를 제어할 수 있다.
S130 단계에서, 메모리 컨트롤러(1420)는 페치된 커맨드가 존재하는지 판별한다. 페치된 커맨드가 존재하면, 메모리 컨트롤러(1420)는 페치된 커맨드를 수행(S130 단계)할 수 있다. 페치된 커맨드가 존재하지 않으면, 메모리 컨트롤러(1420)는 커맨드의 수행을 종료할 수 있다.
S110는 메모리 컨트롤러(1420)가 커맨드 이슈에 응답하여 커맨드를 페치하는 커맨드 페치 동작을 형성할 수 있다. S120 단계 및 S130 단계는 메모리 컨트롤러(1420)가 페치된 커맨드를 수행하는 커맨드 수행 동작을 형성할 수 있다. 커맨드 페치 동작은 커맨드 수행 동작과 독립적으로 수행될 수 있다. 예를 들어, 메모리 컨트롤러(1420)는 불휘발성 메모리(1410)가 커맨드를 수행하도록 제어하고 있는지에 관계없이, 커맨드 이슈가 발생할 때마다 커맨드 페치를 수행할 수 있다. 메모리 컨트롤러(1420)는 커맨드 페치가 수행되고 있는지에 관계없이, 페치된 커맨드가 존재하면 커맨드 수행을 실시할 수 있다.
커맨드 페치 및 커맨드 수행이 병렬적으로 실시되면, 커맨드가 페치되는 동안 커맨드의 수행이 대기되지 않고, 커맨드가 수행되는 동안 커맨드의 페치가 대기되지 않는다. 즉, 프로세서(1200) 및 시스템 메모리(1300)와 메모리 컨트롤러(1420) 사이의 통신과 불휘발성 메모리 장치(1410) 및 메모리 컨트롤러(1420) 사이의 통신이 병렬적으로 수행된다. 따라서, 향상된 속도를 갖는 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법이 제공된다.
도 3은 도 1의 컴퓨팅 시스템(1000)의 동작을 보여주는 순서도이다. 도 1 내지 도 3을 참조하면, S210 단계에서, 프로세서(1200)는 버스(1100)를 통해 시스템 메모리(1300)에 제 1 커맨드를 설정할 수 있다. 예를 들어, 프로세서(1200)는 시스템 메모리(1300)의 미리 정해진 영역에 제 1 커맨드를 저장할 수 있다. 제 1 커맨드는 커맨드 헤더(CH, Command Header) 및 커맨드 프레임(CFIS, Command Frame Information Structure)를 포함할 수 있다.
커맨드 헤더(CH)는 시스템 메모리(1300)의 미리 정해진 슬롯에 저장될 수 있다. 커맨드 프레임(CFIS)은 시스템 메모리(1300)의 미리 정해진 저장 영역에 저장될 수 있다. 커맨드 헤어(CH)는 커맨드 프레임(CFIS)이 저장된 위치에 대한 정보를 포함할 수 있다.
S220 단계에서, 프로세서(1200)는 버스(1100)를 통해 메모리 컨트롤러(1420)에 제 1 커맨드 이슈를 전송할 수 있다. 예를 들어, 프로세서(1200)는 커맨드가 이슈되었음을 가리키는 메모리 컨트롤러(1420)의 내부의 레지스터를 설정할 수 있다. 프로세서(1200)는 제 1 커맨드의 커맨드 헤더(CH)가 저장된 시스템 메모리(1300)의 슬롯과 연관된 메모리 컨트롤러(1420)의 내부의 레지스터의 슬롯을 설정할 수 있다.
S230 단계에서, 제 1 커맨드 이슈에 응답하여, 메모리 컨트롤러(1420)는 버스(1100) 및 프로세서(1200)를 통해 시스템 메모리(1300)로부터 제 1 커맨드를 페치할 수 있다. 예를 들어, 메모리 컨트롤러(1420)는 설정된 레지스터의 슬롯과 연관된 시스템 메모리(1300)의 슬롯으로부터 커맨드 헤더(CH)를 페치할 수 있다. 메모리 컨트롤러(1420)는 페치된 커맨드 헤더(CH)를 참조하여, 시스템 메모리(1300)로부터 커맨드 프레임(CFIS)을 페치할 수 있다.
S240 단계에서, 메모리 컨트롤러(1420)는 페치된 커맨드에 응답하여, 불휘발성 메모리(1410)를 제어할 수 있다.
S250 단계에서, 제 1 커맨드에 따른 불휘발성 메모리(1410)의 제어가 완료되기 전에, 프로세서(1200)가 시스템 메모리(1300)에 제 2 커맨드를 설정할 수 있다.
S260 단계에서, 제 1 커맨드에 따른 불휘발성 메모리(1410)의 제어가 완료되기 전에, 프로세서(1200)가 메모리 컨트롤러(1420)에 제 2 커맨드 이슈를 전송할 수 있다.
S270 단계에서, 제 1 커맨드에 따른 불휘발성 메모리(1410)의 제어가 완료되기 전에, 메모리 컨트롤러(1420)는 시스템 메모리(1300)로부터 제 2 커맨드를 페치할 수 있다.
S280 단계에서, 제 2 커맨드의 페치가 완료된 후에, 불휘발성 메모리(1410)의 제어가 완료될 수 있다. 이후에, S240 단계에서, 메모리 컨트롤러(1420)는 페치된 제 2 커맨드에 따라 불휘발성 메모리(1410)를 제어할 수 있다.
도 3에 도시된 바와 같이, 메모리 컨트롤러(1420)는 불휘발성 메모리(1410)를 제어하는 동안 커맨드를 페치할 수 있고, 커맨드를 페치하는 동안 불휘발성 메모리(1410)를 제어할 수 있다.
도 4는 본 발명의 실시 예에 따른 메모리 컨트롤러(1420)를 보여주는 블록도이다. 도 1 및 도 4를 참조하면, 메모리 컨트롤러(1420)는 컨트롤러 코어(1421) 및 메모리(1427)을 포함한다. 컨트롤러 코어(1421)는 메모리(1427)를 동작 메모리 또는 버퍼 메모리로 사용할 수 있다. 메모리(1427)는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등과 같은 휘발성 메모리, 또는 PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
컨트롤러 코어(1421)는 제 1 인터페이스(1422) 및 제 2 인터페이스(1423)를 포함한다.
제 1 인터페이스(1422)는 컴퓨팅 시스템(1000)의 표준 인터페이스에 기반한 버스(1100)와 통신할 수 있다. 예를 들어, 제 1 인터페이스(1422)는 컴퓨팅 시스템(1000)의 버스(1100)의 표준 인터페이스인 PCIe 인터페이스를 포함할 수 있다.
제 2 인터페이스(1423)는 제 1 인터페이스(1422)를 통해 컴퓨팅 시스템(1000)의 버스(1100)와 통신하고, 불휘발성 메모리(1410)와 통신할 수 있다. 제 2 인터페이스(1423)는 프로세서(1200) 또는 버스(1100)에 의해 스토리지로 인식되는 인터페이스를 포함할 수 있다.
제 2 인터페이스(1423)는 스토리지 엔진(1424), 에뮬레이션 엔진(1425), 그리고 DMA (1426, Direct Memory Access)를 포함한다.
스토리지 엔진(1424)은 프로세서(1200) 또는 버스(1100)에 의해 스토리지로 식별되는 인터페이스를 포함할 수 있다. 예를 들어, 스토리지 엔진(1424)은 AHCI (Advanced Host Control Interface)를 포함할 수 있다. 그러나, 스토리지 엔진(1424)은 AHCI를 포함하는 것으로 한정되지 않는다. 스토리지 엔진(1424)은, 별도의 드라이버의 설치 없이, 프로세서(1200) 또는 컴퓨팅 시스템(1000)의 표준 인터페이스에 의해 스토리지로 인식되는 다양한 인터페이스들을 포함할 수 있다.
에뮬레이션 엔진(1425)은 스토리지 엔진(1424)이 제어하도록 구성되는 스토리지 인터페이스를 에뮬레이션(emulation) 할 수 있다. 예를 들어, AHCI는 SATA (Serial AT Attachment) 인터페이스를 제어하도록 구성되어 있다. 스토리지 엔진(1424)이 AHCI 인터페이스를 포함할 때, 에뮬레이션 엔진(1425)은 SATA 또는 SATAe 인터페이스를 에뮬레이션할 수 있다. 에뮬레이션 엔진(1425)은 스토리지 엔진(1424)의 정상적인 동작을 위해 제공될 수 있다.
예를 들어, AHCI는 PCIe 인터페이스를 통해 상위 구성 요소(예를 들어, 프로세서(1200) 또는 컴퓨팅 시스템의 버스(1100))와 통신하고, SATA (또는 SATAe) 인터페이스를 통해 하위 구성 요소(예를 들어, 스토리지)와 통신하도록 구성될 수 있다. AHCI는 상위 채널 뿐 아니라 하위 채널도 스펙(specification)에 따라 동작해야 정상적으로 동작할 수 있다. 따라서, 에뮬레이션 엔진(1425)은 스토리지 엔진(1424)의 정상적인 동작을 보장하기 위해 제공될 수 있다.
DMA (1426)는 컨트롤러 코어(1421)가 메모리(1427)를 액세스하는 동작을 지원할 수 있다.
도 5는 도 4의 스토리지 엔진(1424)을 보여주는 블록도이다. 도 1, 도 4 및 도 5를 참조하면, 스토리지 엔진(1424)은 제 1 레지스터(100), 커맨드 페치 블록(200), 그리고 스테이트 머신(300)을 포함한다.
제 1 레지스터(100)는 복수의 슬롯들(A1~An)을 포함할 수 있다. 제 1 레지스터(100)는 프로세서(1200)로부터 버스(1100) 및 제 1 인터페이스(1422)를 통해 커맨드 이슈를 수신할 수 있다. 예를 들어, 커맨드 이슈에 의해, 제 1 레지스터(100)의 복수의 슬롯들(A1~An) 중 하나가 설정(set)될 수 있다. 예를 들어, 제 1 레지스터(100)는 AHCI 스펙에 의해 정의된 PxCI 레지스터일 수 있다.
커맨드 페치 블록(200)은 제 2 레지스터(210) 및 커맨드 레지스터(220)를 포함한다. 제 2 레지스터(210)는 제 1 레지스터(100)와 동일한 구조를 가질 수 있다. 제 2 레지스터(210)는 복수의 슬롯들(B1~Bn)을 포함하고, 제 2 레지스터(210)의 복수의 슬롯들(B1~Bn)은 제 1 레지스터(100)의 복수의 슬롯들(B1~Bn)에 각각 대응할 수 있다.
커맨드 레지스터(220)는 복수의 슬롯들(C1~Cn, D1~Dn)을 포함한다. 커맨드 레지스터(220)는 제 1 레지스터(100) 또는 제 2 레지스터(210)의 슬롯들(A1~An 또는 B1~Bn)의 수에 대응하는 커맨드 헤더 슬롯들(C1~Cn) 및 커맨드 프레임 슬롯들(D1~Dn)을 포함할 수 있다.
커맨드 페치 블록(200)은 제 1 레지스터(100)의 슬롯들(A1~An)의 설정에 응답하여, 커맨드를 페치할 수 있다. 예를 들어, 커맨드 페치 블록은 제 1 레지스터(100)의 설정된 슬롯에 대응하는 커맨드 헤더(CH)를 제 1 인터페이스(1422) 및 버스(1100)를 통해 시스템 메모리(1300)로부터 페치할 수 있다. 페치된 커맨드 헤더(CH)는 커맨드 레지스터(220)의 커맨드 헤더 슬롯들(C1~Cn) 중 제 1 레지스터(100)의 설정된 슬롯에 대응하는 슬롯에 저장될 수 있다.
페치된 커맨드 헤더(CH)를 참조하여, 커맨드 페치 블록(200)은 커맨드 프레임(CFIS)을 제 1 인터페이스(1422) 및 버스(1100)를 통해 시스템 메모리(1300)로부터 페치할 수 있다. 페치된 커맨드 프레임(CFIS)은 커맨드 레지스터(220)의 커맨드 프레임 슬롯들(D1~Dn) 중 제 1 레지스터(100)의 설정된 슬롯에 대응하는 슬롯에 저장될 수 있다.
커맨드 프레임의 페치에 응답하여, 커맨드 페치 블록(200)은 제 2 레지스터(210)를 설정할 수 있다. 예를 들어, 커맨드 페치 블록(200)은 제 2 레지스터(210)의 복수의 슬롯들(B1~Bn) 중 제 1 레지스터(100)의 설정된 슬롯에 대응하는 슬롯을 설정할 수 있다.
스테이트 머신(300)은 커맨드 페치 블록(200)의 설정에 따라 동작할 수 있다. 예를 들어, 스테이트 머신(300)은 제 2 레지스터(210)의 설정에 응답하여, 커맨드 레지스터(220)로부터 커맨드를 수신할 수 있다. 예를 들어, 제 2 레지스터(210)의 특정한 슬롯이 설정되면, 스테이트 머신(300)은 커맨드 레지스터의 슬롯들(C1~Cn, D1~Dn) 중 제 2 레지스터(210)의 설정된 슬롯에 대응하는 슬롯들로부터 커맨드 헤더(CH) 및 커맨드 프레임(CFIS)을 읽을 수 있다. 읽어진 커맨드에 응답하여, 스테이트 머신(300)은 에뮬레이션 엔진(1425)을 제어할 수 있다.
예시적으로, 스테이트 머신(300)은 AHCI FSM (Finite State Machine)일 수 있다. 스테이트 머신(300)은 제 2 레지스터(210)를 AHCI 스펙에 정의된 PxCI 레지스터인 것으로 인식하고 동작할 수 있다.
도 6은 도 5의 제 2 인터페이스(1424)의 동작 방법을 보여주는 순서도이다. 예시적으로, 하나의 커맨드가 발생한 때의 제 2 인터페이스(1424)의 동작이 도 6에 도시된다. 도 1, 도 4, 도 5 및 도 6을 참조하면, S310 단계에서, 커맨드 이슈에 응답하여 제 1 레지스터(100)의 슬롯이 설정된다. 프로세서(1200)로부터 버스(1100) 및 제 1 인터페이스(1422)를 통해 커맨드 이슈가 수신되면, 제 1 레지스터(100)의 슬롯들(A1~An) 중 수신된 커맨드 이슈에 대응하는 슬롯이 설정될 수 있다. 예를 들어, 프로세서(1200)가 커맨드 헤더(CH)를 저장한 시스템 메모리(1300)의 슬롯에 대응하는 제 1 레지스터(100)의 슬롯이 설정될 수 있다.
S320 단계에서, 제 1 레지스터(100)의 슬롯의 설정에 응답하여, 커맨드가 페치된다. 예를 들어, 커맨드 페치 블록(200)은 제 1 레지스터(100)의 설정된 슬롯에 대응하는 시스템(1300) 메모리의 슬롯으로부터 버스(1100) 및 제 1 인터페이스(1422)를 통해 커맨드 헤더(CH)를 페치할 수 있다. 페치된 커맨드 헤더(CH)는 커맨드 레지스터(220)의 커맨드 헤더 슬로들(C1~Cn) 중 제 1 레지스터(100)의 설정된 슬롯에 대응하는 슬롯에 저장될 수 있다.
이후에, 커맨드 페치 블록(200)은 페치된 커맨드 헤더(CH)를 참조하여, 커맨드 프레임(CFIS)이 저장된 시스템 메모리(1300)의 어드레스를 검출할 수 있다. 검출된 어드레스에 기반하여, 커맨드 페치 블록(200)은 시스템 메모리(1300)로부터 버스(1100) 및 제 1 인터페이스(1422)를 통해 커맨드 프레임(CFIS)을 페치할 수 있다. 페치된 커맨드 프레임(CFIS)은 커맨드 레지스터(220)의 커맨드 프레임 슬롯들(D1~Dn) 중 제 1 레지스터(100)의 설정된 슬롯에 대응하는 슬롯에 저장될 수 있다.
S330 단계에서, 제 1 레지스터(100)의 설정된 슬롯에 대응하는 제 2 레지스터(210)의 슬롯이 설정된다. 커맨드 페치 블록(200)은 커맨드의 페치가 완료되면, 제 2 레지스터(210)의 슬롯들(B1~Bn) 중 제 1 레지스터(100)의 설정된 슬롯에 대응하는 슬롯을 설정할 수 있다.
S340 단계에서, 제 2 레지스터(210)의 슬롯의 설정에 응답하여, 불휘발성 메모리(1410)가 페치된 커맨드를 수행하도록 제어된다. 예를 들어, 제 2 레지스터(210)의 슬롯이 설정되면, 스테이트 머신(300)은 커맨드 레지스터(220)로부터 커맨드 헤더(CH) 및 커맨드 프레임(CFIS)을 읽을 수 있다. 읽어진 커맨드 헤더(CH) 및 커맨드 프레임(CFIS)에 응답하여, 스테이트 머신(300)은 불휘발성 메모리(1410)를 제어할 수 있다.
S350 단계에서, 페치된 커맨드의 완료에 응답하여, 제 1 레지스터(100) 및 제 2 레지스터(210)의 슬롯들이 클리어된다. 예를 들어, 완료된 커맨드에 대응하는 제 1 레지스터(100) 및 제 2 레지스터(210)의 슬롯들이 클리어될 수 있다. 페치된 커맨드의 완료에 응답하여, 완료된 커맨드에 대응하는 커맨드 레지스터(220)의 슬롯들이 함께 클리어될 수 있다.
도 7은 복수의 커맨드 이슈들이 발생할 때, 도 5에 도시된 제 1, 제 2, 및 커맨드 레지스터들(100, 210, 220)의 슬롯들의 값들의 변화들을 보여주는 타이밍도이다. 예시적으로, 제 1 및 제 2 커맨드들이 이슈되고 페치되는 동작이 도 8에 도시된다. 제 1 커맨드에 대응하는 레지스터들의 동작은 내부가 점으로 채워진 박스로 표시되고, 제 2 커맨드에 대응하는 레지스터들의 동작은 내부가 빈 박스로 표시된다.
도 5 및 도 6을 참조하면, 초기 상태에서, 제 1, 제 2, 및 커맨드 레지스터들(100, 210, 220)의 슬롯들은 초기값(예를 들어, '0')을 가질 수 있다.
제 1 시간(T1)에, 제 1 커맨드가 이슈될 수 있다. 제 1 커맨드가 이슈되면, 제 1 커맨드가 이슈되면, 제 1 커맨드에 대응하는 제 1 레지스터(100, PxCI)의 슬롯(예를 들어, 제 1 슬롯)이 설정될 수 있다.
제 2 시간(T2)에, 제 2 커맨드가 이슈될 수 있다. 제 2 커맨드가 이슈되면, 제 2 커맨드에 대응하는 제 1 레지스터(100, PxCI)의 슬롯(예를 들어, 제 2 슬롯)이 설정될 수 있다.
제 1 레지스터(100, PxCI)의 제 1 슬롯의 설정에 응답하여, 제 1 커맨드에 대응하는 커맨드 헤더(CH)가 페치될 수 있다. 페치된 커맨드 헤더(CH)는 제 1 레지스터(100)의 설정된 슬롯(제 1 슬롯)에 대응하는 커맨드 헤더 레지스터의 슬롯(예를 들어, 제 1 커맨드 헤더 슬롯)에 저장될 수 있다.
제 3 시간(T3)에, 제 1 레지스터(100, PxCI)의 제 2 슬롯의 설정에 응답하여, 제 2 커맨드에 대응하는 커맨드 헤더(CH)가 페치된다. 페치된 커맨드 헤더(CH)는 제 1 레지스터(100, PxCI)의 설정된 슬롯(제 2 슬롯)에 대응하는 커맨드 헤더 레지스터의 슬롯(예를 들어, 제 2 커맨드 헤더 슬롯)에 저장될 수 있다.
제 1 커맨드의 커맨드 헤더(CH)의 페치에 응답하여, 제 1 커맨드의 커맨드 프레임(CFIS)이 페치된다. 페치된 커맨드 프레임(CFIS)은 제 1 레지스터(100, PxCI)의 설정된 슬롯(제 1 슬롯)에 대응하는 커맨드 프레임 레지스터의 슬롯(예를 들어, 제 1 커맨드 프레임 슬롯)에 저장된다.
제 1 커맨드의 커맨드 프레임(CFIS)이 페치됨과 함께, 제 2 레지스터(210, Pcf)가 설정된다. 예를 들어, 제 1 레지스터(100, PxCI)의 설정된 슬롯(제 1 슬롯)에 대응하는 제 2 레지스터(210, Pcf)의 슬롯(제 1 그림자 슬롯)이 설정될 수 있다. 제 1 그림자 슬롯이 설정되면, 페치된 제 1 커맨드의 커맨드 헤더(CH) 및 커맨드 프레임(CFIS)에 따라 불휘발성 메모리(1410, 도 1 참조)가 제어될 수 있다. 즉, 제 1 커맨드가 수행될 수 있다.
제 4 시간(T4)에, 제 2 커맨드의 커맨드 헤더(CH)의 페치에 응답하여, 제 2 커맨드의 커맨드 프레임(CFIS)이 페치된다. 페치된 커맨드 프레임(CFIS)은 제 1 레지스터(100, PxCI)의 설정된 슬롯(제 2 슬롯)에 대응하는 커맨드 프레임 레지스터의 슬롯(예를 들어, 제 2 커맨드 프레임 슬롯)에 저장될 수 있다.
커맨드 프레임(CFIS)이 페치됨에 따라, 제 2 레지스터(210, Pcf)가 설정될 수 있다. 예를 들어, 제 1 레지스터(100, PxCI)의 설정된 슬롯(제 2 슬롯)에 대응하는 제 2 레지스터(210, Pcf)의 슬롯(예를 들어, 제 2 그림자 슬롯)이 설정될 수 있다.
제 5 시간(T5)에, 제 1 커맨드의 수행이 완료될 수 있다. 제 2 커맨드에 대응하는 제 2 레지스터(210, Pcf)의 슬롯(제 2 그림자 슬롯)이 설정되어 있으므로, 제 2 커맨드가 제 1 커맨드에 연속하여 수행될 수 있다.
상술된 바와 같이, 본 발명의 실시 예들에 따르면, 메모리 컨트롤러(1420)는 호스트에 의해 스토리지로 인식되는 인터페이스(예를 들어, AHCI)를 구비한다. 따라서, 스토리지(1400)는 별도의 드라이버의 설치 없이, 호스트와 연결되는 것만으로 정상적으로 동작할 수 있다. 또한, 호스트의 구조 또는 인터페이스의 변경 없이, 본 발명의 실시 예에 따른 스토리지 또는 메모리 컨트롤러가 사용될 수 있다.
메모리 컨트롤러(1420)는 커맨드의 페치와 커맨드의 수행을 독립적으로 수행한다. 메모리 컨트롤러(1420)는 페치된 커맨드에 따라 불휘발성 메모리(1410)가 제어되고 있는지에 관계없이, 커맨드 이슈가 발생하면 커맨드를 페치한다. 커맨드가 페치되면, 메모리 컨트롤러(1420)는 제 2 레지스터(210, Pcf)를 설정한다. 메모리 컨트롤러(1420)는 커맨드가 페치되고 있는지에 관계없이, 제 2 레지스터(210, Pcf)가 설정되면 커맨드를 수행한다. 커맨드를 수행하는 시간은 커맨드를 페치하는 시간에 의해 지연되지 않고, 커맨드를 페치하는 시간은 커맨드를 수행하는 시간에 의해 지연되지 않는다. 따라서, 향상된 속도를 갖는 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법이 제공된다.
도 8은 본 발명의 다른 실시 예에 따른 스토리지(2400)를 보여주는 블록도이다. 도 8을 참조하면, 스토리지(2400)는 복수의 불휘발성 메모리들(2410), 메모리 컨트롤러(2420) 및 커넥터(2430)를 포함한다.
메모리 컨트롤러(2420)는 도 2 내지 도 7을 참조하여 설명된 바와 같이 동작할 수 있다.
커넥터(2430)는 스토리지(2400)와 호스트 사이를 연결할 수 있다. 예를 들어, 커넥터(2430)는 호스트에서 사용되는 표준 인터페이스의 커넥터일 수 있다. 커넥터(2430)는 PCIe 인터페이스의 커넥터일 수 있다.
스토리지(2400)는 솔리드 스테이트 드라이브(SSD, Solid State Drive)일 수 있다. 스토리지(2400)는 서버, 메인프레임 등과 같은 고속 및 대용량 스토리지를 요구하는 호스트와 연결되어 사용될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000; 컴퓨팅 시스템
1100; 버스 1200; 프로세서
1300; 시스템 메모리 1400, 2400; 스토리지
1410, 2410; 불휘발성 메모리 1420, 2420; 메모리 컨트롤러
1421; 컨트롤러 코어 1422; 제 1 인터페이스
1423; 제 2 인터페이스 1424; 스토리지 엔진
1425; 에뮬레이션 엔진 1426; DMA
1427; 메모리
100; 제 1 레지스터 200; 커맨드 페치 블록
210; 제 2 레지스터 220; 커맨드 레지스터
300; 스테이트 머신

Claims (10)

  1. 외부 호스트와 연결되고, 외부 메모리를 제어하도록 구성되는 메모리 컨트롤러의 동작 방법에 있어서:
    상기 외부 호스트로부터 커맨드 이슈(command issue)를 수신하는 단계;
    상기 커맨드 이슈에 응답하여, 상기 외부 호스트의 메모리로부터 상기 커맨드 이슈에 대응하는 커맨드를 페치(fetch)하는 단계; 그리고
    상기 페치된 커맨드를 수행하도록, 상기 외부 메모리를 제어하는 단계를 포함하고,
    상기 커맨드 이슈가 수신되면, 상기 커맨드의 페치는 상기 페치된 커맨드의 수행과 독립적으로 상기 커맨드 이슈가 수신된 후 바로 수행되는 동작 방법.
  2. 제 1 항에 있어서,
    제 1 페치된 커맨드가 수행되는 동안, 제 2 커맨드 이슈에 응답하여 제 2 커맨드가 페치되는 동작 방법.
  3. 제 2 항에 있어서,
    상기 제 1 페치된 커맨드의 수행이 완료되면, 상기 제 2 페치된 커맨드가 수행되는 동작 방법.
  4. 제 1 항에 있어서,
    상기 외부 호스트와 상기 메모리 컨트롤러 사이의 통신은 상기 메모리 컨트롤러에 포함되며 상기 외부 호스트에 의해 스토리지로 인식되는 인터페이스에 기반하여 수행되는 동작 방법.
  5. 제 1 항에 있어서,
    상기 외부 호스트와 상기 메모리 컨트롤러 사이의 통신은 상기 메모리 컨트롤러에 포함되는 AHCI (Advanced Host Controller Interface)에 기반하여 수행되는 동작 방법.
  6. 제 1 항에 있어서,
    상기 커맨드를 페치하는 단계는,
    상기 커맨드 이슈에 응답하여 상기 외부 호스트의 메모리로부터 커맨드 헤더(CH, Command Header)를 페치하는 단계; 그리고
    상기 커맨드 헤더를 참조하여, 상기 외부 호스트의 메모리로부터 커맨드 프레임(CFIS, Command Frame Information Structure)을 페치하는 단계를 포함하는 동작 방법.
  7. 호스트와 통신하는 제 1 인터페이스; 그리고
    상기 제 1 인터페이스 및 외부 메모리와 통신하고, 상기 호스트에서 스토리지로 인식되는 제 2 인터페이스를 포함하고,
    상기 제 2 인터페이스는 상기 호스트로부터 상기 제 1 인터페이스를 통해 전송되는 커맨드 이슈에 응답하여 상기 호스트의 메모리로부터 커맨드를 페치하고, 상기 페치된 커맨드에 응답하여 외부 메모리를 제어하도록 구성되고,
    상기 제 2 인터페이스는 상기 외부 메모리의 제어와 독립적으로, 상기 커맨드 이슈가 발생할 때마다 상기 커맨드를 페치하도록 구성되는 메모리 컨트롤러.
  8. 제 7 항에 있어서,
    상기 제 2 인터페이스는,
    상기 제 1 인터페이스를 통해 전송되는 상기 커맨드 이슈에 따라 설정되는 제 1 레지스터;
    상기 제 1 레지스터의 설정에 응답하여 상기 호스트로부터 상기 제 1 인터페이스를 통해 커맨드를 페치하도록 구성되는 커맨드 레지스터;
    상기 커맨드 레지스터의 커맨드 페치에 응답하여 설정되는 제 2 레지스터; 그리고
    상기 제 2 레지스터의 설정에 응답하여, 상기 커맨드 레지스터에 페치된 커맨드를 수행하도록 구성되는 스테이트 머신을 포함하는 메모리 컨트롤러.
  9. 제 8 항에 있어서,
    상기 제 1 레지스터는 복수의 제 1 슬롯들을 포함하고, 상기 복수의 제 1 슬롯들은 각각 서로 다른 커맨드 이슈에 의해 설정되는 메모리 컨트롤러.
  10. 제 9 항에 있어서,
    상기 커맨드 레지스터는 상기 복수의 제 1 슬롯들에 각각 대응하는 복수의 커맨드 슬롯들을 포함하고, 상기 스테이트 머신의 동작과 독립적으로 상기 복수의 제 1 슬롯들 각각이 설정될 때마다 대응하는 커맨드 슬롯에 커맨드를 페치하도록 구성되는 메모리 컨트롤러.
KR1020120135380A 2012-11-27 2012-11-27 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법 KR20140067737A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120135380A KR20140067737A (ko) 2012-11-27 2012-11-27 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
US14/090,042 US20140149692A1 (en) 2012-11-27 2013-11-26 Memory controller and operating method of memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120135380A KR20140067737A (ko) 2012-11-27 2012-11-27 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법

Publications (1)

Publication Number Publication Date
KR20140067737A true KR20140067737A (ko) 2014-06-05

Family

ID=50774353

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120135380A KR20140067737A (ko) 2012-11-27 2012-11-27 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법

Country Status (2)

Country Link
US (1) US20140149692A1 (ko)
KR (1) KR20140067737A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2520729A (en) * 2013-11-29 2015-06-03 Ibm Data processing apparatus and method
KR20200073122A (ko) * 2018-12-13 2020-06-23 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11204819B2 (en) 2018-12-21 2021-12-21 Samsung Electronics Co., Ltd. System and method for offloading application functions to a device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100708128B1 (ko) * 2005-04-30 2007-04-17 삼성전자주식회사 낸드 플래시 메모리 제어 장치 및 방법
US9189166B2 (en) * 2011-04-11 2015-11-17 Ineda Systems Pvt. Ltd. Multi-host SATA controller

Also Published As

Publication number Publication date
US20140149692A1 (en) 2014-05-29

Similar Documents

Publication Publication Date Title
CN108369563B (zh) 用于共享总线上多个装置的数据传输的设备与方法
KR101366960B1 (ko) 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
KR102015053B1 (ko) 불휘발성 메모리 장치 및 그것의 데이터 처리 방법
CN105474319B (zh) 用于配置混合存储器模块的存储器的i/o的设备及方法
JP5414656B2 (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
JP2014059876A5 (ja) ホスト、不揮発性メモリ装置、及び不揮発性メモリカードシステム
KR20090126895A (ko) 반도체 장치 및 이를 포함하는 반도체 시스템
US10585822B2 (en) Operation method of host system including storage device and operation method of storage device controller
US10445017B2 (en) Memory system and operating method thereof
CN113377408B (zh) 一种高可靠sram型fpga在线升级方法及系统
US10503438B1 (en) Memory sub-system supporting non-deterministic commands
KR20150090369A (ko) 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 불휘발성 메모리에 데이터를 프로그램하는 프로그램 방법
US10936234B2 (en) Data transfer between memory devices on shared bus
KR20140071135A (ko) 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
CN104700894A (zh) 存储卡和与存储卡通信的接口电路
CN110941395A (zh) 动态随机存取存储器、内存管理方法、系统及存储介质
KR20140067737A (ko) 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
CN105304128A (zh) 储存数据数值在存储单元的方法及存储器
US20110078362A1 (en) Operating an emulated electrically erasable (eee) memory
KR101993187B1 (ko) 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
US11099778B2 (en) Controller command scheduling in a memory system to increase command bus utilization
CN116486868A (zh) 计算高速链路(CXL)上的高速非易失性存储器(NVMe)
US20140149767A1 (en) Memory controller and operating method of memory controller
US9141563B2 (en) Memory system
US20200348932A1 (en) Memory control system with a sequence processing unit

Legal Events

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