KR20200042358A - 메모리 장치 및 이의 동작 방법 - Google Patents
메모리 장치 및 이의 동작 방법 Download PDFInfo
- Publication number
- KR20200042358A KR20200042358A KR1020180122855A KR20180122855A KR20200042358A KR 20200042358 A KR20200042358 A KR 20200042358A KR 1020180122855 A KR1020180122855 A KR 1020180122855A KR 20180122855 A KR20180122855 A KR 20180122855A KR 20200042358 A KR20200042358 A KR 20200042358A
- Authority
- KR
- South Korea
- Prior art keywords
- rom
- command
- code
- memory device
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/30—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C17/00—Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
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)
Abstract
본 기술은 커맨드를 커맨드 코드로 변환하는 커맨드 인코더; 상기 커맨드 코드를 디코딩하고, 디코딩 결과에 따라 다수의 롬 라인들 중 하나의 롬 라인을 선택하고, 상기 선택된 롬 라인을 통해 인에이블 신호를 출력하는 커맨드 디코더; 다양한 동작들을 실행하기 위한 롬 코드들이 저장된 다수의 레지스터들을 포함하고, 상기 레지스터들 중 상기 인에이블 신호가 입력된 레지스터에 저장된 롬 코드를 출력하는 롬 코드 생성부; 및 상기 롬 코드 생성부에서 출력된 상기 롬 코드에 따라 알고리즘을 실행하는 동작 컨트롤러를 포함하는 메모리 장치 및 이의 동작 방법을 포함한다.
Description
본 발명은 메모리 장치 및 이의 동작 방법에 관한 것으로, 보다 구체적으로는 메모리 컨트롤러로부터 수신된 커맨드에 따라 롬 코드(ROM Code)를 즉시(directly) 출력하는 메모리 장치 및 이의 동작 방법에 관한 것이다.
메모리 시스템(memory system)은 메모리 컨트롤러(memory controller) 및 메모리 장치(memory device)를 포함할 수 있다.
메모리 컨트롤러는 호스트(host)와 저장 장치 사이에서 데이터 통신을 제어할 수 있다. 메모리 장치가 비휘발성 메모리 장치의 일종인 플래시 메모리 장치로 이루어진 경우, 메모리 컨트롤러는 메모리 장치와 호스트 사이에서 통신하기 위하여 플래시 변환 계층(Flash Translation Layer)을 포함할 수 있다.
여기서, 호스트는 PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 메모리 컨트롤러를 통해 메모리 장치와 통신할 수 있다. 호스트와 메모리 시스템 간의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스들이 포함될 수 있다.
메모리 장치는 데이터를 저장하거나, 저장된 데이터를 출력할 수 있다. 예를 들면, 메모리 장치는 전원 공급이 차단되면 저장된 데이터가 소멸되는 휘발성 메모리 장치로 이루어지거나, 전원 공급이 차단되더라도 저장된 데이터가 유지되는 비휘발성 메모리 장치로 이루어질 수 있다.
메모리 장치는 다양한 동작들을 수행하기 위해 다양한 롬 코드들을 저장하며, 메모리 컨트롤러로부터 커맨드가 수신되면 저장된 롬 코드들을 순차적으로 써치(search)하여 커맨드에 대응되는 롬 코드에 따라 동작을 수행할 수 있다. 예를 들면, 메모리 장치는 수신된 커맨드가 첫 번째 롬 코드에 대응되는지를 써치하고, 대응되지 않으면 다음 롬 코드가 커맨드에 대응되는지를 써치한다. 이러한 방식으로 롬 코드들을 순차적으로 써치하는 경우, 롬 코드들을 써치하는 시간이 길어질 수 있다.
본 발명의 실시예는 메모리 컨트롤러로부터 수신된 커맨드를 디코딩하여 롬 코드를 즉시 출력함으로써, 커맨드에 대응되는 동작을 시작하는 시간을 단축할 수 있는 메모리 장치 및 이의 동작 방법을 제공한다.
본 발명의 실시예에 따른 메모리 장치는, 커맨드를 커맨드 코드로 변환하는 커맨드 인코더; 상기 커맨드 코드를 디코딩하고, 디코딩 결과에 따라 다수의 롬 라인들 중 하나의 롬 라인을 선택하고, 상기 선택된 롬 라인을 통해 인에이블 신호를 출력하는 커맨드 디코더; 다양한 동작들을 실행하기 위한 롬 코드들이 저장된 다수의 레지스터들을 포함하고, 상기 레지스터들 중 상기 인에이블 신호가 입력된 레지스터에 저장된 롬 코드를 출력하는 롬 코드 생성부; 및 상기 롬 코드 생성부에서 출력된 상기 롬 코드에 따라 알고리즘을 실행하는 동작 컨트롤러를 포함한다.
본 발명의 실시예에 따른 메모리 장치의 동작 방법은, 호스트의 요청에 따라 커맨드를 출력하는 단계; 상기 커맨드를 다수의 비트들로 이루어진 커맨드 코드로 변환 및 출력하는 단계; 상기 커맨드 코드에 맵핑된 롬 라인에 인에이블 신호를 출력하는 단계; 다수의 레지스터들 중 상기 인에이블 신호가 입력된 레지스터에 저장된 롬 코드를 출력하는 단계; 및 상기 롬 코드에 따라 알고리즘을 실행하는 단계를 포함한다.
본 기술은 메모리 컨트롤러로부터 커맨드가 수신되면, 수신된 커맨드에 대응되는 롬 코드가 즉시 선택될 수 있으므로, 메모리 장치가 동작을 시작하는데 걸리는 시간이 단축될 수 있다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 메모리 컨트롤러를 설명하기 위한 도면이다.
도 3은 메모리 컨트롤러와 메모리 장치 사이를 연결하는 채널을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 메모리 장치를 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 제어 로직을 설명하기 위한 도면이다.
도 6은 커맨드 디코더에 저장되는 롬 테이블을 설명하기 위한 도면이다.
도 7은 롬 코드 생성부에 포함되는 롬(ROM)을 설명하기 위한 도면이다.
도 8은 종래 기술과 본 발명에 따른 롬 코드의 출력시간을 비교하기 위한 도면이다.
도 9는 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 10은 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 11은 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 12는 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 2는 본 발명의 실시예에 따른 메모리 컨트롤러를 설명하기 위한 도면이다.
도 3은 메모리 컨트롤러와 메모리 장치 사이를 연결하는 채널을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 메모리 장치를 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 제어 로직을 설명하기 위한 도면이다.
도 6은 커맨드 디코더에 저장되는 롬 테이블을 설명하기 위한 도면이다.
도 7은 롬 코드 생성부에 포함되는 롬(ROM)을 설명하기 위한 도면이다.
도 8은 종래 기술과 본 발명에 따른 롬 코드의 출력시간을 비교하기 위한 도면이다.
도 9는 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 10은 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 11은 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 12는 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 메모리 시스템(Memory System; 1000)은 데이터가 저장되는 메모리 장치(Memory Device; 1100)와, 메모리 시스템(1000)의 동작에 필요한 커맨드 및 데이터를 임시로 저장하기 위한 버퍼 메모리(Buffer Memory; 1300), 그리고 호스트(2000)의 제어에 따라 메모리 장치(1100) 및 버퍼 메모리(1300)를 제어하는 메모리 컨트롤러(Memory Controller; 1200)를 포함할 수 있다.
호스트(2000)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Inter Chip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (Non Volatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (Multi Media Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) 등과 같은 다양한 통신 방식들 중 적어도 하나를 이용하여 메모리 시스템(1000)과 통신할 수 있다.
메모리 장치(1100)는 전원 공급이 차단되면 저장된 데이터가 소멸되는 휘발성 메모리 장치로 이루어지거나, 전원 공급이 차단되더라도 저장된 데이터가 유지되는 비휘발성 메모리 장치로 이루어질 수 있다. 본 실시예에서는 비휘발성 메모리 장치의 일종인 플래시 메모리 장치(Flash Memory Device)를 예를 들어 설명하도록 한다.
메모리 컨트롤러(1200)는 메모리 시스템(1000)의 동작을 전반적으로 제어하며, 호스트(2000)와 메모리 장치(1100) 사이의 데이터 교환을 제어할 수 있다. 메모리 컨트롤러(1200)는 채널(channel; CH)을 통해 메모리 장치(1100)에 연결될 수 있으며, 채널(CH)을 통해 커맨드, 어드레스 및 데이터를 전송할 수 있다. 예를 들면, 메모리 컨트롤러(1200)는 호스트(2000)의 요청(request)에 따라 프로그램(program), 리드(read) 또는 이레이즈(erase) 동작을 수행하기 위한 커맨드를 채널을 통해 메모리 장치(1100)에 전송할 수 있다.
예를 들면, 메모리 컨트롤러(1200)가 호스트(2000)의 요청에 따라 커맨드를 생성하고, 생성된 커맨드를 채널(CH)을 통해 메모리 장치(1100)에 전송하면, 메모리 장치(1100)는 커맨드에 대응되는 동작을 수행할 수 있다. 이를 위해, 메모리 장치(1100)는 다양한 동작들에 각각 대응되는 롬 코드들을 저장할 수 있고, 수신된 커맨드에 대응되는 롬 코드를 사용하여 선택된 동작을 수행할 수 있다. 본 실시예에서는, 메모리 장치(1100)는 수신된 커맨드를 디코딩하여 롬 코드를 즉시 선택할 수 있고, 이로 인해 커맨드에 대응되는 동작이 빠르게 시작될 수 있다. 이에 대한 구체적인 설명은 후술하도록 한다.
버퍼 메모리(1300)는 도 1에 도시된 바와 같이 메모리 컨트롤러(1200)의 외부에 장착될 수 있으나, 메모리 시스템(1000)에 따라 메모리 컨트롤러(1200)의 내부에 장착될 수도 있다. 버퍼 메모리(1300)는 메모리 컨트롤러(1200)의 동작 메모리 또는 캐시 메모리로 사용될 수 있으며, 호스트(2000)로부터 수신받은 논리 정보와 메모리 장치(1100)의 물리 정보를 임시로 저장할 수 있다. 실시예에 따라, 버퍼 메모리(1300)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), DDR4 SDRAM, LPDDR4(Low Power Double Data Rate4) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, LPDDR(Low Power DDR) 또는 RDRAM(Rambus Dynamic Random Access Memory)을 포함할 수 있다.
도 2는 본 발명의 실시예에 따른 메모리 컨트롤러를 설명하기 위한 도면이다.
도 2를 참조하면, 메모리 컨트롤러(1200)는 호스트(2000)와 메모리 장치(1100) 사이에서 통신하기 위하여 중앙 처리 장치(Central Process Unit; CPU; 1210), 내부 메모리(Internal Memory; 1220), 플래시 인터페이스 계층(Flash Interface Layer; 1230), 에러 정정 회로(Error Correction Circuit; ECC; 1240) 및 호스트 인터페이스 계층(Host Interface Layer; 1250)을 포함할 수 있다. 중앙 처리 장치(1210), 내부 메모리(1220), 플래시 인터페이스 계층(1230), 에러 정정 회로(1240) 및 호스트 인터페이스 계층(1250)은 버스(bus; 1260)를 통해 서로 통신할 수 있다.
중앙 처리 장치(1210)는 호스트(2000)로부터 요청을 수신 받으면, 수신 받은 요청을 수행하기 위한 커맨드를 생성할 수 있다. 이를 위해, 중앙 처리 장치(1210)는 커맨드 생성부(CMD Generator; 1211)를 포함할 수 있다. 커맨드 생성부(1211)는 호스트(2000)로부터 수신된 요청에 대응되는 커맨드(CMD)를 생성 및 출력할 수 있다.
내부 메모리(1220)는 메모리 컨트롤러(1200)의 동작에 필요한 다양한 시스템 정보들을 저장할 수 있다. 예를 들면, 내부 메모리(1220)는 SRAM으로 구현될 수 있다. 내부 메모리(1220)는 메모리 시스템(1000)의 동작에 필요한 어드레스 맵핑 정보 등을 저장할 수 있다.
플래시 인터페이스 계층(1230)은 중앙 처리 장치(1210)의 제어에 따라 메모리 장치(1100)와 통신할 수 있다. 예를 들면, 플래시 인터페이스 계층(1230)은 중앙 처리 장치(1210)로부터 커맨드들을 수신받고, 메모리 장치(1100)의 상태(status)에 따라 커맨드들을 큐잉(queueing)할 수 있으며, 큐잉된 순서에 따라 커맨드들을 채널(CH)을 통해 메모리 장치(1100)로 출력할 수 있다.
에러 정정 회로(1240)는 중앙 처리 장치(1210)의 제어에 따라 에러 정정 동작을 수행할 수 있다.
호스트 인터페이스 계층(1250)은 중앙 처리 장치(1210)의 제어에 따라 메모리 시스템(1000)에 접속된 호스트(2000)와 통신하도록 구성될 수 있다. 예를 들면, 호스트 인터페이스 계층(1250)는 호스트(2000)로부터 프로그램 요청, 리드 요청 또는 이레이즈 요청 등의 다양한 요청들을 수신 받을 수 있고, 메모리 장치(1100)로부터 리드된 데이터를 호스트(2000)로 출력할 수 있다.
도 3은 메모리 컨트롤러와 메모리 장치 사이를 연결하는 채널을 설명하기 위한 도면이다.
도 3을 참조하면, 메모리 컨트롤러(1200)와 메모리 장치(1100)는 채널(CH)을 통해 커맨드, 어드레스 및 데이터를 주고받을 수 있다. 예를 들면, 메모리 컨트롤러(1200)는 채널(CH)을 통해 커맨드, 어드레스 및 데이터를 메모리 장치(1100)로 전송할 수 있고, 메모리 장치(1100)는 채널(CH)을 통해 데이터를 메모리 컨트롤러(1200)로 전송할 수 있다.
채널(CH)은 다수의 입출력 라인들(IO1~IOk; k는 양의 정수)과 다수의 제어 라인들을 포함할 수 있다. 예를 들면, 입출력 라인들(IO1~IOk)을 통해 커맨드, 어드레스 및 데이터가 전송될 수 있으며, 제어 라인들을 통해 칩 인에이블 신호(chip enable signal; CE), 어드레스 래치 인에이블 신호(address latch enable signal; ALE) 및 레디/비지 신호(ready/busy signal; RB) 등이 전송될 수 있다. 칩 인에이블 신호(CE)는 메모리 장치(1100)들이 다수개 포함되어 있는 경우, 하나의 메모리 장치(1100)를 선택하기 위한 신호일 수 있다. 어드레스 래치 인에이블 신호(ALE)는 입출력 라인들(IO1~IOk)에 로드된 어드레스를 메모리 장치(1100)에 입력하기 위한 신호일 수 있다. 레디/비지 신호(RB)는 메모리 장치(1100)가 동작중임을 알리는 신호일 수 있다. 칩 인에이블 신호(CE) 및 어드레스 래치 인에이블 신호(ALE)는 메모리 컨트롤러(1200)로부터 메모리 장치(1100)로 전송될 수 있고, 레디/비지 신호(RB)는 메모리 장치(1100)로부터 메모리 컨트롤러(1200)로 전송될 수 있다. 제어 라인들을 통해 전송되는 신호들은 상술한 신호들 외에도 다양하지만, 제어 라인들은 본 실시예와 크게 관련이 없으므로 구체적인 설명은 생략하도록 한다.
도 4는 본 발명의 실시예에 따른 메모리 장치를 설명하기 위한 도면이다.
도 4를 참조하면, 메모리 장치(1100)는 데이터가 저장되는 메모리 셀 어레이(Memory Cell Array; 110)와 프로그램, 리드 또는 이레이즈 등의 동작을 수행하도록 구성된 주변 회로들(120~160)과, 커맨드에 응답하여 주변 회로들을 제어하는 제어 로직(Control Logic; 170)을 포함할 수 있다. 주변 회로들은 전압 생성부(Voltage Generator; 120), 로우 디코더(Row Decoder; 130), 페이지 버퍼 그룹(Page Buffer Group; 140), 컬럼 디코더(Column Decoder; 150) 및 입출력 회로(Input-output Circuit; 160)를 포함할 수 있다.
메모리 셀 어레이(110)는 다수의 메모리 블록들(B1~Bk; k는 양의 정수)을 포함할 수 있다. 여기서, 메모리 블록들(B1~Bk)의 개수와 입출력 라인들(IO1~IOk)의 개수는 서로 무관하다. 메모리 블록들(B1~Bk)은 다수의 메모리 셀들을 포함하며, 2차원 또는 3차원 구조로 구현될 수 있다. 예를 들면, 2차원 구조의 메모리 블록들(B1~Bk)에서는 메모리 셀들이 기판(substrate)에 수평방향으로 배열될 수 있다. 3차원 구조의 메모리 블록들(B1~Bk)에서는 메모리 셀들이 기판에 수직방향으로 적층될 수 있다.
전압 생성부(120)는 동작 신호들(OP_SIG)에 응답하여 각 동작에 필요한 동작 전압들(Vop)을 생성하고 출력할 수 있다. 예를 들면, 전압 생성부(120)는 동작 신호들(OP_SIG)이 프로그램 동작에 관한 신호인 경우, 프로그램 전압, 패스 전압 및 프로그램 검증 전압 등을 생성할 수 있다. 전압 생성부(120)는 동작 신호들(OP_SIG)이 리드 동작에 관한 신호인 경우, 리드 전압 및 패스 전압 등을 생성할 수 있다. 전압 생성부(120)는 동작 신호들(OP_SIG)이 이레이즈 동작에 관한 신호인 경우, 이레이즈 전압, 패스 전압 및 이레이즈 검증 전압 등을 생성할 수 있다.
로우 디코더(130)는 로우 어드레스(RADD)에 응답하여 로컬 라인들(local lines; LL)을 통해 동작 전압들(Vop)을 선택된 메모리 블록에 전달할 수 있다.
페이지 버퍼 그룹(140)은 비트 라인들(bit lines; BL)을 통해 메모리 블록들(B1~Bk)에 연결될 수 있으며, 비트 라인들(BL) 각각에 연결된 다수의 페이지 버퍼들을 포함할 수 있다. 페이지 버퍼 그룹(140)은 페이지 제어 신호들(PBSIG)에 응답하여 비트 라인들(BL)의 전압을 제어하거나, 비트 라인들(BL)의 전압 또는 전류를 센싱할 수 있다.
컬럼 디코더(150)는 컬럼 어드레스(CADD)에 응답하여 컬럼 라인들(CL)을 통해 페이지 버퍼 그룹(140)과 데이터를 주고 받거나, 데이터 라인들(DL)을 통해 입출력 회로(160)와 데이터를 주고받을 수 있다.
입출력 회로(160)는 입출력 라인들(IO)을 통해 메모리 컨트롤러(1200)와 통신할 수 있다. 예를 들면, 입출력 회로(160)는 입출력 라인들(IO)을 통해 수신된 커맨드(CMD) 및 어드레스(ADD)를 제어 로직(170)으로 전달할 수 있고, 수신된 데이터(DATA)를 컬럼 디코더(150)로 전송할 수 있다. 또한, 입출력 회로(160)는 메모리 블록들(B1~Bk)로부터 리드된 데이터(DATA)를 입출력 라인들(IO)을 통해 메모리 컨트롤러(1200)로 출력할 수 있다.
제어 로직(170)은 커맨드(CMD)에 응답하여 동작 신호들(OP_SIG) 및 페이지 제어 신호들(PBSIG)을 출력할 수 있고, 어드레스(ADD)에 응답하여 로우 어드레스(RADD) 및 컬럼 어드레스(CADD)를 출력할 수 있다. 예를 들면, 제어 로직(170)은 커맨드(CMD)가 수신되면, 수신된 커맨드(CMD)에 대응되는 롬 라인을 선택하고, 선택된 롬 라인에 대응되는 롬 코드에 따라 동작 신호들(OP_SIG) 및 페이지 제어 신호들(PBSIG)을 출력할 수 있다.
또한, 제어 로직(170)은 칩 인에이블 신호(CE) 및 어드레스 래치 인에이블 신호(ALE) 등에 따라 입출력 회로(160)를 통해 커맨드(CMD), 어드레스(ADD) 및 데이터(DATA)를 입출력 할 수 있다. 또한, 제어 로직(170)은 수신된 커맨드(CMD)에 대응되는 동작 수행 시, 레디/비지 신호(RB)를 출력할 수 있다.
상술한 제어 로직(170)의 기능 중에서 커맨드(CMD)에 대응되는 동작을 수행하는 방법을 구체적으로 설명하면 다음과 같다.
도 5는 본 발명의 실시예에 따른 제어 로직을 설명하기 위한 도면이다.
도 5를 참조하면, 제어 로직(170)은 커맨드 인코더(CMD Encoder; 171), 레디/비지 신호 생성부(R/B Signal Generator; 172), 커맨드 디코더(CMD Decoder; 173), 롬 코드 생성부(ROM Code Generator; 174), 동작 컨트롤러(Operation Controller; 175) 및 어드레스 디코더(ADD Decoder; 176)를 포함할 수 있다.
커맨드 인코더(171)는 메모리 컨트롤러(1200)로부터 커맨드(CMD)가 수신되면, 커맨드 코드(CMDC<n:1>) 및 동작 시작 신호(OP_ST)를 출력할 수 있다. 예를 들면, 커맨드 인코더(171)는 수신된 커맨드(CMD)를 인코딩하여 커맨드 코드(CMDC<n:1>)를 출력할 수 있다. 커맨드 코드(CMDC<n:1>)는 다수의 비트들로 이루어질 수 있으며, 메모리 장치(1100)에 따라 커맨드 코드(CMDC<n:1>)를 이루는 비트들은 다양하게 설정될 수 있다. 동작 시작 신호(OP_ST)는 커맨드(CMD)가 수신되면 하이(high) 또는 로우(low)로 천이될 수 있으며, 하이 또는 로우 신호는 메모리 장치(1100)에 따라 다르게 설정될 수 있다. 커맨드 코드(CMDC<n:1>)와 동작 시작 신호(OP_ST)가 출력되는 순서를 변경될 수 있으며, 동시에 출력될 수도 있다.
레디/비지 신호 생성부(172)는 동작 시작 신호(OP_ST)가 활성화되면 레디/비지 신호(RB)를 출력하여, 메모리 컨트롤러(1200)에게 메모리 장치(1100)가 동작 중임을 알릴 수 있다.
커맨드 디코더(173)는 커맨드 코드(CMDC<n:1>)에 응답하여 다수의 롬 라인들(ROM lines; RL1~RLn; n은 양의 정수) 중에서 하나의 롬 라인을 선택할 수 있다. 특히, 커맨드 디코더(173)는 수신된 커맨드 코드(CMDC<n:1>)를 롬 라인들(RL1~RLn)에 하나씩 대응시키면서 롬 라인을 찾는 방식이 아니라, 커맨드 코드(CMDC<n:1>)에 대응되는 롬 라인을 즉시 선택할 수 있다. 이를 위해, 커맨드 디코더(173)는 롬 테이블을 포함할 수 있다. 즉, 커맨드 디코더(173)는 커맨드 코드(CMDC<n:1>)가 입력되면, 롬 테이블을 사용하여 커맨드 코드(CMDC<n:1>)에 대응되는 롬 라인을 즉시 선택할 수 있다. 예를 들면, 다수의 롬 라인들(RL1~RLn) 중에서 선택된 롬 라인만 인에이블되고, 나머지 비선택된 롬 라인들은 디스에이블된다.
롬 코드 생성부(174)는 선택된 롬 라인에 대응되는 롬 코드(R_CODE#)를 출력할 수 있다. 예를 들면, 롬 코드 생성부(174)는 다양한 동작들에 대응되는 롬 코드들이 저장된 롬(ROM)으로 구성될 수 있다. 서로 다른 롬 코드들은 서로 다른 롬 라인들에 인가되는 전압에 응답하여 출력될 수 있다. 롬 코드 생성부(174)가 롬(ROM)으로 구성되므로, 롬에 저장된 서로 다른 롬 코드들은 수정(modify)이 불가능하다. 서로 다른 롬(ROM)들에 연결된 롬 라인들 중, 선택된 롬 라인이 인에이블되면, 인에이블된 롬 라인에 연결된 롬의 롬 코드(R_CODE#)가 출력될 수 있다.
동작 컨트롤러(175)는 롬 코드(R_CODE#)에 응답하여 다양한 동작 신호들(OP_SIG) 및 페이지 제어 신호들(PBSIG)을 출력할 수 있다. 예를 들면, 동작 컨트롤러(175)에는 다양한 동작들을 수행하기 위한 다양한 알고리즘들이 저장될 수 있으며, 롬 코드(R_CODE#)가 수신되면 동작 컨트롤러(175)는 롬 코드(R_CODE#)에 대응되는 알고리즘에 따라 동작 신호들(OP_SIG) 및 페이지 제어 신호들(PBSIG)을 출력할 수 있다. 예를 들면, 알고리즘은 리셋(reset), 캠 리드(CAM read), 노말 리드(Normal Read), 카피백 리드(Copyback Read), 노말 프로그램(Normal Program), 카피백 프로그램(Copyback Program), 캐시 프로그램(Cache Program), 리-프로그램(Re-Program) 또는 노말 이레이즈(Normal Erase) 동작을 실행하기 위한 소프트웨어일 수 있다. 선택된 알고리즘에 따라 동작 컨트롤러(175)는 동작 신호들(OP_SIG) 및 페이지 제어 신호들(PBSIG)을 제어할 수 있다.
어드레스 디코더(176)는 메모리 컨트롤러(1200)로부터 어드레스(ADD)가 수신되면, 수신된 어드레스를 디코딩하여 로우 어드레스(RADD)와 컬럼 어드레스(CADD)를 출력할 수 있다.
도 6은 커맨드 디코더에 저장되는 롬 테이블을 설명하기 위한 도면이다.
도 6을 참조하면, 도 5에서 설명된 커맨드 디코더(173)는 롬 테이블(ROM Table)을 포함할 수 있다.
롬 테이블(ROM Table)은 서로 다른 다수의 커맨드 코드들(CMDC)과, 커맨드 코드들(CMDC)에 각각 맵핑된 동작 정보(Description)를 포함할 수 있다. 다시 말하면, 각각의 커맨드 코드들(CMDC)은 서로 다른 8비트의 코드로 이루어질 수 있고, 서로 다른 커맨드 코드들(CMDC)은 서로 다른 동작 정보(Description)에 맵핑될 수 있다. 커맨드 코드들(CMDC) 중에서 하나의 커맨드 코드가 롬 테이블(ROM Table)에 입력될 수 있으며, 입력된 커맨드 코드에 맵핑된 동작 정보에 따라 롬 라인들(RL) 중에서 하나의 롬 라인이 선택될 수 있다. 커맨드 디코더(173)는 선택된 롬 라인을 제외한 나머지 비선택된 롬 라인들을 플로팅(floating)시키거나 디스에이블 신호를 인가할 수 있다.
커맨드 코드들(CMDC)은 다양한 동작들을 위한 알고리즘을 실행하기 위해 각각 설정될 수 있다. 예를 들면, ‘00000000’ 커맨드 코드(CMDC)는 리셋(RESET) 동작을 수행하기 위한 코드이고, ‘00000000’ 커맨드 코드(CMDC)에 응답하여 제1 롬 라인(RL1)이 선택될 수 있다. ‘00000001’ 커맨드 코드(CMDC)는 캠 리드(CAM Read) 동작을 수행하기 위한 코드, ‘00000010’ 커맨드 코드(CMDC)는 노말 리드(Normal Read) 동작을 수행하기 위한 코드, ‘00000011’ 커맨드 코드(CMDC)는 카피백 리드(Copyback Read) 동작을 수행하기 위한 코드, ‘00000100’ 커맨드 코드(CMDC)는 노말 프로그램(Normal PGM) 동작을 수행하기 위한 코드, ‘00000101’ 커맨드 코드(CMDC)는 카피백 프로그램(Copyback PGM) 동작을 수행하기 위한 코드, ‘00000110’ 커맨드 코드(CMDC)는 캐시 프로그램(Cache PGM) 동작을 수행하기 위한 코드, ‘00000111’ 커맨드 코드(CMDC)는 리-프로그램(Re-PGM) 동작을 수행하기 위한 코드, ‘00001000’ 커맨드 코드(CMDC)는 노말 이레이즈(Normal Erase) 동작을 수행하기 위한 코드일 수 있다.
상술한 커맨드 코드(CMDC)들에 따라 실행되는 동작 정보(Description)는 본 실시예의 이해를 돕기 위한 실시예에 해당하므로, 메모리 장치에 따라 다르게 설정될 수 있으며, 도 6에 도시된 동작들보다 더욱 다양한 동작들에 대하여 커맨드 코드(CMDC)가 설정될 수 있다. 상술한 커맨드 코드(CMDC)들 중 어느 하나가 입력되면, 커맨드 디코더(173)는 롬 테이블(ROM Table)에 따라 롬 라인(RL)을 즉시 선택하고, 선택된 롬 라인(RL)에 인에이블 신호를 출력할 수 있다. 비선택된 롬 라인들(RL)은 플로팅(floating)되거나 디스에이블(disable) 신호가 인가될 수 있다. 예를 들면, ‘00000100’의 커맨드 코드(CMDC)가 입력되면, 커맨드 디코더(173)는 ‘00000100’에 맵핑된 제5 롬 라인(RL)에 인에이블 신호를 즉시(directly) 출력할 수 있다. 이처럼, 입력된 커맨드 코드(CMDC)에 대응되는 롬 라인(RL)이 즉시(directly) 선택되므로, 동작 정보들을 순차적으로 모두 써치하는 기존 방식보다 빠르게 커맨드가 실행될 수 있다. 즉, 커맨드 입력 후, 입력된 커맨드에 따라 선택된 동작이 빠르게 시작될 수 있다.
도 7은 롬 코드 생성부에 포함되는 롬(ROM)을 설명하기 위한 도면이다.
도 7을 참조하면, 롬 코드 생성부(도 5의 174)는 다수의 롬 라인들(RL)에 각각 연결된 다수의 레지스터들(RG)을 포함할 수 있다. 예를 들면, 롬(ROM)은 제1 내지 제9 레지스터들(RG1~RG9)을 포함할 수 있다. 제1 내지 제9 레지스터들(RG1~RG9)은 리드 동작만 가능한 롬(Read Only Memory; ROM)으로 구성될 수 있으나, 롬(ROM) 외에도 비휘발성 메모리 등 다양한 저장부들(storage components)로 구성될 수도 있다.
제1 내지 제9 레지스터들(RG1~RG9) 각각에는 서로 다른 롬 코드(R_CODE1~9)이 저장될 수 있으며, 인에이블 신호가 인가되는 롬 라인(RL)에 연결된 레지스터에서 롬 코드(R_CODE)가 출력될 수 있다. 예를 들면, 제3 롬 라인(RL3)에 인에이블 신호가 입력되고, 나머지 비선택된 제1, 제2, 제4 내지 제9 롬 라인들(RL1, RL2, RL4~RL9)은 플로팅되거나 디스에이블 신호가 입력되면, 제3 레지스터(RG3)에 저장된 제3 롬 코드(R_CODE3)가 즉시(directly) 출력될 수 있다. 제3 롬 코드(R_CODE3)가 출력되면, 동작 컨트롤러(도 5의 175)는 제3 롬 코드(R_CODE3)에 따라 노말 리드 동작 알고리즘을 실행할 수 있다. 즉, 동작 컨트롤러(175)는 노말 리드 동작 알고리즘에 따라 동작 신호들(OP_SIG) 및 페이지 제어 신호들(PBSIG)을 제어할 수 있다.
도 8은 종래 기술과 본 발명에 따른 롬 코드의 출력시간을 비교하기 위한 도면이다.
도 8을 참조하면, 종래 기술(81)의 경우, 메모리 컨트롤러(도 1의 1200)가 호스트(도 1의 2000)로부터 요청을 수신받고 커맨드(CMD)를 출력하기 까지 제1 시간(t1)이 걸리고, 메모리 장치(도 1의 1100)가 메모리 컨트롤러(1200)로부터 커맨드(CMD)를 수신받고 롬 코드(R_CODE#)를 출력하기까지 제2 시간(t2)이 걸린다고 가정한다. 종래 기술(81)에서는 제2 시간(t2) 동안, 수신된 커맨드(CMD)에 대응되는 롬 코드(R_CODE#)들을 순차적으로 체크(check)하기 때문에 롬 코드(R_CODE#)가 출력되기까지 제2 시간(t2)이 길어질 수 있다.
상술한 본 실시예(82)에서는 메모리 컨트롤러(1200)가 커맨드(CMD)를 출력하기까지는 종래 기술(81)과 같이 제1 시간(t1)이 걸릴 수 있다. 하지만, 메모리 장치(1100)가 메모리 컨트롤러(1200)로부터 커맨드(CMD)를 수신받고 롬 코드(R_CODE#)를 출력하기까지는 제2 시간(t2)보다 짧은 제3 시간(t3)이 걸릴 수 있다. 왜냐하면, 본 실시예(82)에서는 커맨드(CMD)가 메모리 장치(1100)에 수신되면, 메모리 장치(1100)는 롬 테이블(ROM Table)을 이용하여 커맨드(CMD)에 대응되는 롬 코드(R_CODE#)를 즉시(directly) 출력하기 때문에, 커맨드(CMD)와 롬 코드(R_CODE#)를 1:1로 순차적으로 대응시키는 종래 기술(81)보다 짧은 시간 안에 롬 코드(R_CODE#)를 출력할 수 있다. 메모리 장치(1100) 내에서 커맨드(CMD)에 대응되는 실질적인 동작은 롬 코드(R_CODE#)에 따라 실행되므로, 롬 코드(R_CODE#)가 빨리 출력될수록 동작이 빠르게 시작될 수 있다.
즉, 메모리 장치(1100)가 커맨드(CMD)를 수신받고 동작을 시작하기까지 걸리는 시간이 단축될 수 있으므로, 메모리 장치(1100)의 전체적인 동작 시간이 단축될 수 있으며, 상술한 메모리 장치(1100)를 포함한 메모리 시스템(도 1의 1000)의 동작 시간이 단축될 수 있다.
도 9는 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 9를 참조하면, 메모리 시스템(Memory System; 30000)은 이동 전화기(cellular phone), 스마트폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant) 또는 무선 통신 장치로 구현될 수 있다.
메모리 시스템(30000)은 메모리 장치(1100)와 상기 메모리 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200), 메모리 컨트롤러(1200)를 제어할 수 있는 호스트(2000)를 포함할 수 있다. 메모리 컨트롤러(1200)는 호스트(2000)의 제어에 따라 메모리 장치(1100)의 데이터 액세스 동작, 예컨대 프로그램(program) 동작, 이레이즈(erase) 동작 또는 리드(read) 동작 등을 제어할 수 있다.
메모리 장치(1100)에 프로그램된 데이터는 메모리 컨트롤러(1200)의 제어에 따라 디스플레이(Display; 3200)를 통하여 출력될 수 있다.
무선 송수신기(RADIO TRANSCEIVER; 3300)는 안테나(ANT)를 통하여 무선 신호를 주고받을 수 있다. 예컨대, 무선 송수신기(3300)는 안테나(ANT)를 통하여 수신된 무선 신호를 호스트(2000)에서 처리(process)될 수 있는 신호로 변경할 수 있다. 따라서, 호스트(2000)는 무선 송수신기(3300)로부터 출력된 신호를 처리(process)하고 처리(process)된 신호를 메모리 컨트롤러(1200) 또는 디스플레이(3200)로 전송할 수 있다. 메모리 컨트롤러(1200)는 호스트(2000)에 의하여 처리(process)된 신호를 메모리 장치(1100)에 전송할 수 있다. 또한, 무선 송수신기(3300)는 호스트(2000)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다. 입력 장치(Input Device; 3400)는 호스트(2000)의 동작을 제어하기 위한 제어 신호 또는 호스트(2000)에 의하여 처리(process)될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad) 또는 키보드로 구현될 수 있다. 호스트(2000)는 메모리 컨트롤러(1200)로부터 출력된 데이터, 무선 송수신기(3300)로부터 출력된 데이터, 또는 입력 장치(3400)로부터 출력된 데이터가 디스플레이(3200)를 통하여 출력될 수 있도록 디스플레이(3200)의 동작을 제어할 수 있다.
도 10은 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 10을 참조하면, 메모리 시스템(Memory System; 40000)은 PC(personal computer), 태블릿(tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
메모리 시스템(40000)은 메모리 장치(1100)와 상기 메모리 장치(1100)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(1200), 메모리 컨트롤러(1200)를 제어할 수 있는 호스트(2000)를 포함할 수 있다.
또한, 호스트(2000)는 입력 장치(Input Device; 4200)를 통하여 입력된 데이터에 따라 메모리 장치(1100)에 저장된 데이터를 디스플레이(Display; 4300)를 통하여 출력할 수 있다. 예컨대, 입력 장치(4200)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
호스트(2000)는 메모리 시스템(40000)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(1200)의 동작을 제어할 수 있다.
도 11은 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 11을 참조하면, 메모리 시스템(Memory System; 50000)은 이미지 처리 장치, 예컨대 디지털 카메라, 디지털 카메라가 부착된 이동 전화기, 디지털 카메라가 부착된 스마트 폰, 또는 디지털 카메라가 부착된 태블릿 PC로 구현될 수 있다.
메모리 시스템(50000)은 메모리 장치(1100)와 상기 메모리 장치(1100)의 데이터 처리 동작, 예컨대 프로그램 동작, 이레이즈 동작 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(1200) 및 메모리 컨트롤러(1200)를 제어할 수 있는 호스트(2000)를 포함한다.
메모리 시스템(50000)의 이미지 센서(Image Sensor; 5200)는 광학 이미지를 디지털 신호들로 변환할 수 있고, 변환된 디지털 신호들은 호스트(2000)로 전송될 수 있다. 호스트(2000)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(Display; 5300)를 통하여 출력되거나 메모리 컨트롤러(1200)를 통하여 메모리 장치(1100)에 저장될 수 있다. 또한, 메모리 장치(1100)에 저장된 데이터는 호스트(2000)의 제어에 따라 디스플레이(5300)를 통하여 출력될 수 있다.
도 12는 도 1에 도시된 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 12를 참조하면, 메모리 시스템은 메모리 카드(Memory Card; 70000)를 포함할 수 있다.
메모리 카드(70000)는 스마트 카드(smart card)로 구현될 수 있다. 메모리 카드(70000)는 메모리 장치(1100), 메모리 컨트롤러(1200) 및 카드 인터페이스(Card Interface; 7100)를 포함할 수 있다.
메모리 컨트롤러(1200)는 메모리 장치(1100)와 카드 인터페이스(7100) 사이에서 데이터의 교환을 제어할 수 있다. 실시 예에 따라, 카드 인터페이스(7100)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 또한, 카드 인터페이스(7100)는 호스트(HOST; 2000)의 프로토콜에 따라 호스트(2000)와 메모리 컨트롤러(1200) 사이에서 데이터 교환을 인터페이스할 수 있다. 실시 예에 따라 카드 인터페이스(7100)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스(7100)는 호스트(2000)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어 또는 신호 전송 방식을 의미할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 다양한 변경이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000: 메모리 시스템
1100: 메모리 장치
1200: 메모리 컨트롤러 1300: 버퍼 메모리
2000: 호스트 170: 제어 로직
171: 커맨드 인코더 172: 레디/비지 신호 생성부
173: 커맨드 디코더 174: 롬 코드 생성부
175: 동작 컨트롤러 176: 어드레스 디코더
1200: 메모리 컨트롤러 1300: 버퍼 메모리
2000: 호스트 170: 제어 로직
171: 커맨드 인코더 172: 레디/비지 신호 생성부
173: 커맨드 디코더 174: 롬 코드 생성부
175: 동작 컨트롤러 176: 어드레스 디코더
Claims (21)
- 커맨드를 커맨드 코드로 변환하는 커맨드 인코더;
상기 커맨드 코드를 디코딩하고, 디코딩 결과에 따라 다수의 롬 라인들 중 하나의 롬 라인을 선택하고, 상기 선택된 롬 라인을 통해 인에이블 신호를 출력하는 커맨드 디코더;
다양한 동작들을 실행하기 위한 롬 코드들이 저장된 다수의 레지스터들을 포함하고, 상기 레지스터들 중 상기 인에이블 신호가 입력된 레지스터에 저장된 롬 코드를 출력하는 롬 코드 생성부; 및
상기 롬 코드 생성부에서 출력된 상기 롬 코드에 따라 알고리즘을 실행하는 동작 컨트롤러를 포함하는 메모리 장치.
- 제1항에 있어서, 상기 커맨드 인코더는,
상기 커맨드를 인코딩하여 다수의 비트들로 이루어진 상기 커맨드 코드를 출력하는 메모리 장치.
- 제1항에 있어서, 상기 커맨드 인코더는,
상기 커맨드에 따라 상기 커맨드 코드를 가변하여 출력하는 메모리 장치.
- 제1항에 있어서, 상기 커맨드 디코더는,
서로 다른 다수의 커맨드 코드들에 상기 롬 라인들이 각각 맵핑된 롬 테이블을 포함하는 메모리 장치.
- 제4항에 있어서, 상기 커맨드 디코더는,
상기 커맨드 코드가 입력되면, 입력된 상기 커맨드 코드에 맵핑된 상기 롬 라인에 인에이블 신호를 출력하는 메모리 장치.
- 제5항에 있어서, 상기 커맨드 디코더는,
상기 인에이블 신호가 인가되는 상기 롬 라인을 제외한 나머지 롬 라인들을 플로팅(floating)시키거나 디스에이블 신호를 인가하는 메모리 장치.
- 제1항에 있어서, 상기 롬 코드 생성부는,
상기 롬 라인들에 각각 연결되고 서로 다른 상기 롬 코드들이 저장된 레지스터들을 포함하는 메모리 장치.
- 제7항에 있어서, 상기 롬 코드 생성부는,
상기 레지스터들 중에서 상기 인에이블 신호가 입력된 레지스터에 저장된 상기 롬 코드를 출력하는 메모리 장치.
- 제7항에 있어서,
상기 레지스터들은 롬(Read Only Memory; ROM) 또는 비휘발성 메모리로 구성되는 메모리 장치.
- 제1항에 있어서, 상기 동작 컨트롤러는,
상기 롬 코드 생성부에서 출력된 상기 롬 코드에 응답하여 실행되는 상기 알고리즘에 따라, 동작 신호들 및 페이지 제어 신호들을 제어하는 메모리 장치.
- 제1항에 있어서,
상기 알고리즘은 리셋(reset), 캠 리드(CAM read), 노말 리드(Normal Read), 카피백 리드(Copyback Read), 노말 프로그램(Normal Program), 카피백 프로그램(Copyback Program), 캐시 프로그램(Cache Program), 리-프로그램(Re-Program) 또는 노말 이레이즈(Normal Erase) 동작을 실행하기 위한 소프트웨어인 메모리 장치.
- 제1항에 있어서,
데이터가 저장되는 다수의 메모리 블록들;
상기 동작 신호들에 응답하여 다양한 동작 전압들을 생성하는 전압 생성부;
상기 페이지 제어 신호들에 응답하여 비트라인들의 전압을 조절하는 페이지 버퍼들;
로우 어드레스에 응답하여 상기 메모리 블록들 중 선택된 메모리 블록에 상기 동작 전압들을 전송하는 로우 디코더;
컬럼 어드레스에 응답하여 상기 페이지 버퍼들과 데이터를 주고받는 컬럼 디코더; 및
상기 커맨드, 어드레스 및 상기 데이터를 메모리 컨트롤러와 주고받는 입출력 회로를 더 포함하는 메모리 장치.
- 제12항에 있어서,
상기 메모리 컨트롤러로부터 수신된 상기 어드레스를 디코딩하여 상기 로우 어드레스 및 상기 컬럼 어드레스를 출력하는 어드레스 디코더를 더 포함하는 메모리 장치.
- 제1항에 있어서,
상기 커맨드 인코더는 상기 커맨드 코드를 출력할 때 동작 시작 신호를 출력하는 메모리 장치.
- 제14항에 있어서,
상기 동작 시작 신호에 응답하여 메모리 장치가 동작 중임을 알리는 레디/비지 신호를 출력하는 레디/비지 신호 생성부를 더 포함하는 메모리 장치.
- 호스트의 요청에 따라 커맨드를 출력하는 단계;
상기 커맨드를 다수의 비트들로 이루어진 커맨드 코드로 변환 및 출력하는 단계;
상기 커맨드 코드에 맵핑된 롬 라인에 인에이블 신호를 출력하는 단계;
다수의 레지스터들 중 상기 인에이블 신호가 입력된 레지스터에 저장된 롬 코드를 출력하는 단계; 및
상기 롬 코드에 따라 알고리즘을 실행하는 단계를 포함하는 메모리 장치의 동작 방법.
- 제16항에 있어서, 상기 인에이블 신호를 출력하는 단계는,
서로 다른 다수의 커맨드 코드들에 상기 롬 라인들이 각각 맵핑된 롬 테이블을 사용하여, 출력된 상기 커맨드 코드에 맵핑된 상기 롬 라인에 상기 인에이블 신호를 출력하는 메모리 장치의 동작 방법.
- 제17항에 있어서,
상기 커맨드 코드가 출력되면 상기 인에이블 신호는 다수의 롬 라인들 중 선택된 롬 라인에 즉시 인가되는 메모리 장치의 동작 방법.
- 제16항에 있어서,
상기 레지스터들에는 서로 다른 롬 코드들이 저장되며, 상기 서로 다른 롬 코드들에 저장된 상기 레지스터들 중 상기 인에이블 신호가 입력된 상기 레지스터에 저장된 상기 롬 코드가 즉시 출력되는 메모리 장치의 동작 방법.
- 제16항에 있어서,
상기 알고리즘에 따라 메모리 장치에 포함된 주변 회로들을 제어하는 동작 신호들 및 페이지 제어 신호들이 출력되는 메모리 장치의 동작 방법.
- 제20항에 있어서,
상기 알고리즘은 리셋(reset), 캠 리드(CAM read), 노말 리드(Normal Read), 카피백 리드(Copyback Read), 노말 프로그램(Normal Program), 카피백 프로그램(Copyback Program), 캐시 프로그램(Cache Program), 리-프로그램(Re-Program) 또는 노말 이레이즈(Normal Erase) 동작에 따라 상기 동작 신호들 및 상기 페이지 제어 신호들을 제어하는 메모리 장치의 동작 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180122855A KR102577268B1 (ko) | 2018-10-15 | 2018-10-15 | 메모리 장치 및 이의 동작 방법 |
US16/423,660 US20200117391A1 (en) | 2018-10-15 | 2019-05-28 | Memory device and operating method thereof |
CN201910931038.3A CN111045596A (zh) | 2018-10-15 | 2019-09-29 | 存储器装置及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180122855A KR102577268B1 (ko) | 2018-10-15 | 2018-10-15 | 메모리 장치 및 이의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200042358A true KR20200042358A (ko) | 2020-04-23 |
KR102577268B1 KR102577268B1 (ko) | 2023-09-12 |
Family
ID=70160195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180122855A KR102577268B1 (ko) | 2018-10-15 | 2018-10-15 | 메모리 장치 및 이의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200117391A1 (ko) |
KR (1) | KR102577268B1 (ko) |
CN (1) | CN111045596A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024167202A1 (ko) * | 2023-02-06 | 2024-08-15 | 장채규 | 메모리 모듈 전력 제어 장치 및 메모리 전력 제어 장치 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112672484B (zh) * | 2020-12-03 | 2023-04-07 | 广州新澳光电科技有限公司 | 一种灯具设备管理方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5933685B2 (ja) * | 1975-05-16 | 1984-08-17 | 旭化成株式会社 | 嵩高性捲縮繊維の製造法 |
US20100310065A1 (en) * | 2009-06-04 | 2010-12-09 | Mediatek Singapore Pte. Ltd. | System and apparatus for integrated video/image encoding/decoding and encryption/decryption |
KR20120077278A (ko) * | 2010-12-30 | 2012-07-10 | 에스케이하이닉스 주식회사 | 반도체 장치의 마이크로 컨트롤러 |
KR20130046171A (ko) * | 2011-10-27 | 2013-05-07 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
KR20180008172A (ko) * | 2016-07-15 | 2018-01-24 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 |
US20180254079A1 (en) * | 2017-03-02 | 2018-09-06 | Intel Corporation | Integrated error checking and correction (ecc) in byte mode memory devices |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITRM20010298A1 (it) * | 2001-05-31 | 2002-12-02 | Micron Technology Inc | Interfaccia di comando di utilizzatore con decodificatore programmabile. |
US6621758B2 (en) * | 2001-05-04 | 2003-09-16 | Texas Instruments Incorporated | Method for providing a low power read only memory banking methodology with efficient bus muxing |
TWI358024B (en) * | 2008-01-23 | 2012-02-11 | Phison Electronics Corp | Non-volatile memory storage system and method for |
JP2011146103A (ja) * | 2010-01-15 | 2011-07-28 | Toshiba Corp | 半導体記憶装置 |
CN104145247A (zh) * | 2012-03-02 | 2014-11-12 | 瑞萨电子株式会社 | 微型计算机及非易失性半导体装置 |
KR102356071B1 (ko) * | 2015-05-06 | 2022-01-27 | 에스케이하이닉스 주식회사 | 저장 장치 및 이의 동작 방법 |
KR102496678B1 (ko) * | 2016-02-19 | 2023-02-07 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
-
2018
- 2018-10-15 KR KR1020180122855A patent/KR102577268B1/ko active IP Right Grant
-
2019
- 2019-05-28 US US16/423,660 patent/US20200117391A1/en not_active Abandoned
- 2019-09-29 CN CN201910931038.3A patent/CN111045596A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5933685B2 (ja) * | 1975-05-16 | 1984-08-17 | 旭化成株式会社 | 嵩高性捲縮繊維の製造法 |
US20100310065A1 (en) * | 2009-06-04 | 2010-12-09 | Mediatek Singapore Pte. Ltd. | System and apparatus for integrated video/image encoding/decoding and encryption/decryption |
KR20120077278A (ko) * | 2010-12-30 | 2012-07-10 | 에스케이하이닉스 주식회사 | 반도체 장치의 마이크로 컨트롤러 |
KR20130046171A (ko) * | 2011-10-27 | 2013-05-07 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
KR20180008172A (ko) * | 2016-07-15 | 2018-01-24 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 |
US20180254079A1 (en) * | 2017-03-02 | 2018-09-06 | Intel Corporation | Integrated error checking and correction (ecc) in byte mode memory devices |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024167202A1 (ko) * | 2023-02-06 | 2024-08-15 | 장채규 | 메모리 모듈 전력 제어 장치 및 메모리 전력 제어 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20200117391A1 (en) | 2020-04-16 |
KR102577268B1 (ko) | 2023-09-12 |
CN111045596A (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11068408B2 (en) | Memory system and operating method thereof | |
US11194520B2 (en) | Memory system and operating method thereof | |
US11429520B2 (en) | Memory controller and memory system having the same | |
US20190138440A1 (en) | Memory system and operating method thereof | |
KR102518884B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US11294814B2 (en) | Memory system having a memory controller and a memory device having a page buffer | |
US20190065102A1 (en) | Memory system and operating method thereof | |
US10818360B2 (en) | Memory device, memory system including the memory device | |
US11309050B2 (en) | Memory controller and memory system having the same | |
CN110413535B (zh) | 存储器控制器及存储器控制器的操作方法 | |
US10684798B2 (en) | Memory controller and memory system having the same | |
KR102479483B1 (ko) | 메모리 시스템 및 이의 동작 방법 | |
CN108962304B (zh) | 存储装置及其操作方法 | |
KR20190093361A (ko) | 호스트 및 메모리 컨트롤러를 포함하는 전자 시스템 및 이의 동작 방법 | |
CN109388514B (zh) | 存储器系统及其操作方法 | |
KR102577268B1 (ko) | 메모리 장치 및 이의 동작 방법 | |
US10769060B2 (en) | Storage system and method of operating the same | |
KR102526256B1 (ko) | 데이터 출력 버퍼 | |
US11132252B2 (en) | Memory device, memory system including memory device, and method of operating memory system | |
US10942675B2 (en) | Memory system and operating method thereof | |
KR102547658B1 (ko) | 데이터 출력 버퍼 및 이를 포함하는 메모리 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |