KR20220031776A - 반도체 메모리 장치 및 그것의 동작 방법 - Google Patents

반도체 메모리 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20220031776A
KR20220031776A KR1020200112063A KR20200112063A KR20220031776A KR 20220031776 A KR20220031776 A KR 20220031776A KR 1020200112063 A KR1020200112063 A KR 1020200112063A KR 20200112063 A KR20200112063 A KR 20200112063A KR 20220031776 A KR20220031776 A KR 20220031776A
Authority
KR
South Korea
Prior art keywords
signal
swizzling
memory
data
data bits
Prior art date
Application number
KR1020200112063A
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 KR1020200112063A priority Critical patent/KR20220031776A/ko
Priority to US17/318,234 priority patent/US11742046B2/en
Priority to EP21194173.7A priority patent/EP3965106B1/en
Priority to CN202111021516.0A priority patent/CN114138174A/zh
Publication of KR20220031776A publication Critical patent/KR20220031776A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
    • 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
    • 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
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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/18Address generation devices; Devices for accessing memories, e.g. details of addressing 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/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1018Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/18Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
    • 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
    • G11C2029/0409Online test
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/107Serial-parallel conversion of data or prefetch

Abstract

본 발명은 데이터 처리에 있어서 스위즐링 동작을 지원하는 메모리 장치 및 메모리 시스템에 관한 것으로, 본 발명에 따른 컨트롤러가 메모리 장치에 대한 액세스를 수행하는 방법은 상기 컨트롤러로부터 상기 메모리 장치로, 제 1 명령 신호, 제 1 어드레스 신호 및 제 1 스위즐링 신호를 전송하는 단계, 상기 제 1 명령 신호 및 상기 제 2 어드레스 신호에 기반하여 상기 메모리 장치의 메모리 셀 어레이에 저장된 제 1 데이터 비트들을 선택하는 단계 및 상기 메모리 장치로부터 컨트롤러로, 상기 제 1 스위즐링 신호에 기반하여 상기 제 1 데이터 비트들 중 일부 데이터 비트들을 순차적으로 버스트 출력하는 단계를 포함한다.

Description

반도체 메모리 장치 및 그것의 동작 방법{SEMICONDUCTOR MEMORY DEVICE AND OPERATION METHOD THEREOF}
본 발명은 반도체 메모리 장치 및 메모리 시스템에 관한 것으로, 더욱 상세하게는 데이터에 대한 스위즐링 동작(swizzling operation)을 지원하는 반도체 메모리 장치 및 그것의 동작 방법에 관한 것이다.
반도체 메모리 장치의 버스트 모드(burst mode) 동작은 복수의 데이터 비트들을 연속적으로 전송하는 동작을 의미한다. 버스트 모드로 동작하는 반도체 메모리 장치는 리드(read) 동작 또는 라이트(write)(또는 프로그램으로도 지칭) 동작을 수행할 때, 버스트 길이(burst length) 만큼의 데이터 비트들을 하나의 연속된 시퀀스로 전송할 수 있다. 버스트 모드가 적용되면, 데이터를 처리할 첫번째 위치에 대한 어드레스(address) 신호 전송만이 이루어질 뿐, 이후의 위치에 대한 어드레스 신호 전송은 불필요하다. 이에 따라, 버스트 모드로 동작하는 메모리 장치는 호스트의 부하를 감소시키고, 데이터의 리드 동작 및 라이트 동작을 보다 빠르게 수행할 수 있다.
그러나, 버스트 모드로 동작하는 메모리 장치에서 리드 동작이 수행될 때, 버스트 길이 단위로 데이터를 리드하는 경우, 불필요한 데이터까지 리드하거나, 원하는 데이터를 획득하기 위하여 리드 동작을 반복하는 등의 오버헤드(overhead)가 발생할 수 있다. 또한, 버스트 모드로 동작하는 메모리 장치에서 라이트 동작이 수행될 때, 버스트 길이 단위로 데이터를 라이트하는 경우, 불필요한 데이터를 프로그램 하거나, 원하는 위치에 원하는 데이터를 프로그램하기 위하여 라이트 동작을 반복하는 등의 오버헤드가 발생할 수 있다.
본 발명의 목적은 데이터에 대한 스위즐링 동작을 지원하는 반도체 메모리 장치 및 메모리 시스템을 제공하는데 있다.
본 발명의 실시 예에 따른 컨트롤러가 메모리 장치에 대한 액세스를 수행하는 방법은 상기 컨트롤러로부터 상기 메모리 장치로, 제 1 명령 신호, 제 1 어드레스 신호 및 제 1 스위즐링 신호를 전송하는 단계, 상기 제 1 명령 신호 및 상기 제 2 어드레스 신호에 기반하여 상기 메모리 장치의 메모리 셀 어레이에 저장된 제 1 데이터 비트들을 선택하는 단계 및 상기 메모리 장치로부터 컨트롤러로, 상기 제 1 스위즐링 신호에 기반하여 상기 제 1 데이터 비트들 중 일부 데이터 비트들을 순차적으로 버스트 출력하는 단계를 포함한다.
본 발명의 실시 예에 따른 메모리 장치는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이 및 제 1 명령 신호, 제 1 어드레스 신호 및 제 1 스위즐링 신호를 수신하고, 상기 제 1 명령 신호 및 상기 제 1 어드레스 신호에 기반하여 상기 복수의 메모리 셀 어레이에 저장된 제 1 데이터 비트들을 선택하고, 상기 제 1 데이터 비트들 중 상기 제 1 스위즐링 신호에 대응하는 일부 데이터 비트들을 순차적으로 버스트 출력하는 주변 회로를 포함한다.
본 발명의 실시 예에 따른 메모리 시스템은 복수의 메모리 셀 어레이를 포함하는 메모리 및 상기 메모리와 데이터 신호를 교환하고, 상기 메모리의 동작을 제어하는 컨트롤러를 포함하되, 상기 메모리는 상기 컨트롤러로부터 제 1 명령 신호, 제 1 어드레스 신호 및 제 1 스위즐링 신호를 수신하고, 상기 제 1 어드레스 신호에 대응하는 메모리 셀들 중에서, 상기 제 1 스위즐링 신호에 기반하여 선택된 일부 메모리 셀들에 상기 데이터 신호에 포함된 제 1 데이터 비트들을 순차적으로 버스트 라이트 한다.
본 발명에 따르면, 데이터에 대한 스위즐링 동작을 지원함으로써 버스트 모드(burst mode)로 동작하는 메모리 장치에서 데이터 처리 중 발생하는 오버헤드(overhead)를 감소시킬 수 있고, 반도체 장치의 성능을 개선할 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 장치를 나타내는 블록도이다.
도 2는 본 발명의 실시 예에 따른 메모리를 나타내는 블록도이다.
도 3은 본 발명의 또 다른 실시 예에 따른 메모리를 나타내는 블록도이다.
도 4a 및 도 4b는 본 발명의 또 다른 실시 예에 따른 메모리 셀 어레이를 구성하는 메모리 셀의 회로도이다.
도 5는 도 4b에 개시된 PRAM 셀의 특징을 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 스위즐링 리드 동작을 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 스위즐링 리드 동작에 의한 결과들의 예시를 나타내는 도면이다.
도 8은 본 발명의 실시 예에 따른 스위즐링 리드 동작을 이용하여 메타 데이터를 추출하는 과정을 나타내는 도면이다.
도 9는 본 발명의 실시 예에 따라 스위즐링 리드 동작을 수행함에 있어서 이용되는 신호들의 타이밍 도이다.
도 10은 본 발명의 실시 예에 따른 스위즐링 리드 동작의 동작 방법을 나타내는 순서도이다.
도 11은 본 발명의 실시 예에 따른 스위즐링 라이트 동작을 설명하기 위한 도면이다.
도 12는 본 발명의 실시 예에 따른 스위즐링 라이트 동작에 의한 결과들의 예시를 나타내는 도면이다.
도 13은 본 발명의 실시 예에 따라 스위즐링 라이트 동작을 수행함에 있어서 이용되는 신호들의 타이밍 도이다.
도 14는 본 발명의 실시 예에 따른 스위즐링 라이트 동작의 동작 방법을 나타내는 순서도이다.
도 15는 본 발명의 실시 예에 따른 스위즐링 동작을 지원하는 메모리 모듈을 나타내는 도면이다.
도 16a는 본 발명의 또 다른 실시 예에 따른 스위즐링 동작을 지원하는 메모리 모듈을 나타내는 도면이다.
도 16b는 도 16a에 개시된 PRAM 메모리 모듈에서 본 발명에 따른 스위즐링 동작에 기반한 웨어-레벨링(Wear-leveling)이 수행되는 방법을 나타내는 순서도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들은 명확하고 상세하게 기재될 것이다.
본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서 사용된 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 “포함한다(comprises) 및/또는 포함하는(comprising)”은 언급된 구성요소, 단계, 동작 및/또는 소자에 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서, 전문에 걸쳐 동일한 참조 부호는 동일한 구성 요소를 지칭할 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 장치(100)를 나타내는 블록도이다. 도 1을 참조하면, 메모리 장치(100)는 호스트(110) 및 메모리(120)를 포함할 수 있고, 호스트(110)는 컨트롤러(111)를 포함할 수 있다. 메모리 장치(100)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), DDR2 SDRAM, DDR3 SDRAM, DDR4 SDRAM, DDR5 SDRAM, LPDDR(Low Power Double Data Rate) SDRAM, LPDDR2 SDRAM, LPDDR3 SDRAM, LPDDR4 SDRAM, LPDDR4X SDRAM, LPDDR5 SDRAM, GDDR SGRAM(Graphics Double Data Rate Synchronous Graphics Random Access Memory), GDDR2 SGRAM, GDDR3 SGRAM, GDDR4 SGRAM, GDDR5 SGRAM, GDDR6 SGRAM 등과 같은 다양한 DRAM 장치들일 수 있다. 또는, 메모리 장치(100)는 HBM(High Bandwidth Memory), HBM2, HBM3 등과 같이 DRAM 다이들(dies)이 적층된(stacked) 메모리 장치일 수 있다. 또는, 메모리 장치(100)는 PRAM(Phase-change Random Access Memory) 장치, SRAM(Static Random Access Memory) 장치, RRAM(Resistive Random Access Memory) 장치, FRAM(Ferroelectric Random Access Memory)장치, MRAM(Magnetic Random Access Memory)장치 등일 수 있다. 또는, 메모리 장치(100)는 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD)와 같은 스토리지 장치일 수 있다.
컨트롤러(110)는 메모리(120)에 저장된 데이터를 리드하거나, 메모리(120)에 데이터를 라이트 하기 위한 동작을 수행할 수 있다. 컨트롤러(110)는 메모리(120)와 데이터 신호(DQ)를 교환할 수 있다. 도 1에서, 데이터 신호(DQ)는 하나의 신호로 도시되었으나, 이는 도면이 불필요하게 복잡해지는 것을 회피하기 위한 것일 뿐, 본 발명에 따른 실시 예에서 컨트롤러(110)와 메모리(120)는 복수의 데이터 신호(DQ)들을 주고 받을 수 있다. 또한, 데이터 신호(DQ)는 별도의 스트로브 신호(예를 들어, 데이터 스트로브 신호)에 동기되어, 컨트롤러(110)로부터 메모리(120)로 전송되거나 메모리(120)로부터 컨트롤러(110)로 전송될 수 있으나, 도 1에서는 도면이 불필요하게 복잡해지는 것을 방지하기 위하여 스트로브 신호의 도시를 생략하였다.
컨트롤러(110)는 메모리(120)의 동작을 제어하기 위하여 명령 신호(CMD), 어드레스 신호(ADD) 및 스위즐링 신호(SW)를 생성하고, 이를 메모리(120)로 전달할 수 있다. 명령 신호(CMD)는 메모리(120)에 대한 특정 동작을 요청하는 신호를 의미한다. 명령 신호(CMD)는 메모리(120)에 대한 리드 명령(read command) 또는 라이트 명령(write command)일 수 있다. 어드레스 신호(ADD)는 호스트(110)에 의하여 요청되는 동작의 수행하기 위한 메모리(120) 내부의 메모리 셀들의 위치를 나타내기 위한 신호를 의미한다. 스위즐링 신호(SW)는 메모리(120)에 요청되는 특정 동작에 대하여 스위즐링 동작(swizzling operation)을 수행할지 여부를 나타내는 신호를 의미한다. 스위즐링 신호(SW)는 메모리 장치(100)의 종류에 따라, 컨트롤러(110)에서 자체적으로 생성되거나, 외부의 호스트 장치에서 생성되어 컨트롤러(110)로 전달될 수 있다.
좀 더 상세하게, 컨트롤러(110)는 호스트에 포함된 구성 요소일 수 있다. 이 경우, 스위즐링 신호(SW)는 외부의 호스트 장치로부터 생성되어 컨트롤러(110)를 통하여 메모리(120)로 전달될 수 있다. 또는, 컨트롤러(110)는 SSD와 같은 스토리지 장치에 포함된 구성 요소일 수 있다. 이 경우, 스위즐링 신호(SW)는 SSD에 포함된 메모리(120)에 대한 액세스를 수행하기 위하여 컨트롤러(110)로부터 생성되고 메모리(120)로 전달될 수 있다. 또는, 컨트롤러(110)는 메모리 모듈에 포함된 구성 요소일 수 있다. 이 경우, 스위즐링 신호(SW)는 컨트롤러(110)로부터 생성되어 메모리(120)로 전달되거나 또는 외부의 호스트 장치에 의해 생성되어 컨트롤러(110)를 통해 메모리(120)로 전달될 수 있다. 메모리 장치(100)에서의 메모리 액세스 방식에 따라 스위즐링 신호(SW)의 생성 방식은 다양하게 구현될 수 있으며, 상술한 예들은 본 발명에 따른 일부 실시 예들에 불과할 뿐 본 발명을 제한하는 것은 아니다.
한편, 도 1에 도시되지 않았으나, 컨트롤러(110)는 외부의 호스트 장치와의 통신을 위한 인터페이스(interface)를 포함할 수 있다. 예로서, 인터페이스는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), DIMM(Dual In-line Memory Module), RDIMM(Resistered Dual In-line Memory Module), LRDIMM(Load Reduced Dual In-line Memory Module), HBM(High Bandwidth Memory), NVDIMM(Non-Volatile Dual In-line Memory Module), PDIMM(Pysical Dual In-line Memory Module) 프로토콜일 수 있다.
메모리(120)는 데이터를 저장할 수 있으며, 전원 공급이 차단되어도 저장하고 있는 데이터를 유지하는 비휘발성 메모리(Non-Volatile Memory) 또는 전원 공급이 차단되면 저장하고 있는 데이터를 소멸시키는 휘발성 메모리(Volatile Memory)일 수 있다. 예를 들어, 메모리(120)는 플래시 메모리, PRAM, MRAM, FRAM, RRAM 등과 같은 비휘발성 메모리를 포함할 수 있다. 또는, 메모리(120)는 DRAM, SRAM 등과 같은 휘발성 메모리를 포함할 수 있다. 이하, 본 명세서에서, 메모리(120)가 비휘발성 메모리인 경우 PRAM이 이용되는 것으로 기술되고, 메모리(120)가 휘발성 메모리인 경우 DRAM이 이용되는 것으로 기술될 것이나, 이는 일부 실시 예에 불과하며 본 발명에서 이용되는 메모리(120)의 종류가 이에 한정되는 것은 아니다. 또한, 도 1에서, 메모리(120)는 하나의 메모리 칩(memory chip)으로 도시되었으나, 본 발명에 따른 실시 예에서, 메모리(120)는 이에 한정되지 않는다. 예로서, 메모리(120)는 복수의 메모리 칩을 포함하는 메모리 모듈 또는 메모리 패키지로 구현될 수 있다.
본 발명은 스위즐링 동작을 통하여 메모리(120)에 대한 데이터 처리를 보다 효율적으로 구현할 수 있는 메모리 장치 및 그것의 동작 방법을 제공하는 것을 목적으로 한다. 스위즐링 동작이란, 메모리(120)에 저장된 데이터를 선별적으로 리드하거나 메모리(120) 내부에 선별적인 데이터를 라이트 하는 동작을 의미한다. 스위즐링 동작은 메모리 장치(100)가 버스트 모드(burst mode)로 데이터 처리를 수행하는 경우 구현될 수 있다. 예로서, 메모리 장치(100)의 스위즐링 동작은 버스트 길이(burst length) 단위로 리드 동작 또는 라이트 동작을 수행하는 경우 구현될 수 있다. 스위즐링 동작을 구현하기 위한 구성 요소 및 구동 방법은 이하 도 2 내지 도 16b에서 상세히 설명될 것이다.
도 2는 본 발명의 실시 예에 따른 메모리(120a)를 나타내는 블록도이다. 도 2를 참조하면, 메모리(120a)는 입력 수신기(Input Recceiver, 121), 제어 로직(Control Logic, 122), 로우 디코더(Row Decoder, 123), 출력 게이팅(Output Gating, 124), 라이트 드라이버(Write Driver, 125), 감지 증폭기(Sense Amplifier, 126), 메모리 셀 어레이(Memory Cell Array, 127), 스위즐링 회로(Swizzling Circuit, 128), 데이터 버퍼(Data Buffer, 129), 직렬화기(Serializer, 130), 드라이버(Driver, 131), 데이터 수신기(Data Receiver, 132) 및 역직렬화기(De-serializer, 133)를 포함할 수 있다. 메모리(120a)는 다수의 핀들(P_CMD, P_ADD, P_SW, P_DQ 등)을 통하여 컨트롤러(110, 도 1 참조)로부터 다양한 신호들을 주고 받을 수 있다. 도 2에 개시된 구성 요소들 중 메모리 셀 어레이(127)를 제외한 나머지 구성 요소들은 주변 회로로 통칭될 수 있다.
메모리(120a)는 메모리(120a)에 저장된 데이터에 대한 리드 동작 또는 메모리(120a)에 데이터를 프로그램 하기 위한 라이트 동작을 수행하기 위한 명령 신호(CMD)를 수신할 수 있다. 명령 신호(CMD)는 리드 명령 또는 라이트 명령을 포함할 수 있다. 명령 신호(CMD)는 컨트롤러(110)부터 명령 핀(P_CMD)을 통하여 메모리(120a)로 수신될 수 있다. 명령 신호(CMD)는 컨트롤러(110)로부터 메모리(120a)로 입력되는 단방향(unidirectional) 신호일 수 있고, 명령 핀(P_CMD)은 입력 단자일 수 있다.
또한, 메모리(120a)는 데이터를 처리하기 위한 메모리 셀 어레이(127) 내부에서의 위치를 지정하기 위한 어드레스 신호(ADD)를 수신할 수 있다. 어드레스 신호(ADD)는 로우 어드레스 신호(Row Address, RA) 또는 컬럼 어드레스 신호(Column Address, CA)를 포함할 수 있다. 어드레스 신호(ADD)는 외부의 호스트 장치로부터 어드레스 핀(P_ADD)을 통하여 메모리(120a)로 수신될 수 있다. 어드레스 신호(ADD)는 외부의 호스트 장치로부터 메모리(120a)로 입력되는 단방향 신호일 수 있고, 어드레스 핀(P_ADD)은 입력 단자일 수 있다.
또한, 메모리(120a)는 스위즐링 동작 수행을 위한 스위즐링 신호(SW)를 수신할 수 있다. 스위즐링 신호(SW)는 스위즐링 리드 신호 또는 스위즐링 라이트 신호를 포함할 수 있다. 스위즐링 신호(SW)는 컨트롤러(110)로부터 스위즐링 핀(P_SW)을 통하여 메모리(120a)로 수신될 수 있다. 스위즐링 신호(SW)는 컨트롤러(110)로부터 메모리(120a)로 입력되는 단방향 신호일 수 있고, 스위즐링 핀(P_SW)은 입력 단자일 수 있다. 또한, 스위즐링 핀(P_SW)은 메모리(120a)에 대한 다양한 규약에 따라 사전에 결정될 수 있거나, DDR SDRAM, DIMM, LRDIMM, HBM, NVDIMM, PDIMM 등의 폼 팩터(form factor)에 의하여 RFU(Reserved for Future Use)로 분류되는 핀들 중 적어도 하나에서 구현될 수 있다.
메모리(120a)는 컨트롤러(110)와 명령 신호(CMD)에 기반하여 처리될 데이터의 비트들을 포함하는 데이터 신호(DQ)를 교환할 수 있다. 데이터 신호(DQ)는 리드 명령에 기반하여 메모리 셀 어레이(127)로부터 출력되는 리드 데이터의 비트들을 포함하거나, 라이트 명령에 기반하여 메모리 셀 어레이(127)에 쓰여지는 라이트 데이터 비트들을 포함할 수 있다. 데이터 신호(DQ)는 데이터 스트로브 신호(미도시)에 동기되어, DQ 핀(P_DQ)을 통하여 컨트롤러(110)와 메모리(120a) 간에 전송될 수 있다. 데이터 신호(DQ)는 컨트롤러(110)로부터 메모리(120a)로 입력되거나, 메모리(120a)로부터 컨트롤러(110)로 출력되는 양방향(bidirectional) 신호, 즉 데이터 입출력 신호일 수 있고, DQ 핀(P_DQ)은 입출력 단자일 수 있다.
도 2에서, 설명의 편의를 위하여 메모리(120a)는 하나의 명령핀(P_CMD), 하나의 어드레스 핀(P_ADD), 하나의 스위즐링 핀(P_SW) 및 하나의 DQ 핀(P_DQ)을 포함하는 것으로 도시되었으나, 본 발명의 실시 예에 따른 메모리(120a)는 복수의 명령핀(P_CMD)들, 복수의 어드레스 핀(P_ADD)들, 복수의 스위즐링 핀(P_SW)들 또는 복수의 DQ 핀(P_DQ)들을 포함할 수 있다. 또한, 설명의 편의를 위하여 하나의 명령 신호(CMD), 하나의 어드레스 신호(ADD), 하나의 스위즐링 신호(SW) 및 하나의 데이터 신호(DQ)가 메모리 장치(100, 도 1 참조)의 구동에 이용되는 것으로 도시 되었으나, 본 발명에 따른 메모리 장치(100)는 복수의 명령 신호(CMD)들, 복수의 어드레스 신호(ADD)들, 복수의 스위즐링 신호(SW)들 또는 복수의 데이터 신호(DQ)들을 메모리 장치(100)의 구동에 이용할 수 있다.
또한, 도 2에서는 명령 신호(CMD), 어드레스 신호(ADD), 스위즐링 신호(SW) 및 데이터 신호(DQ)만이 도시되었으나, 이는 도면이 불필요하게 복잡해지는 것을 방지하기 위한 것일 뿐, 본 발명의 실시 예에 따른 메모리 장치(100)가 이용하는 신호들은 도시한 바에 한정되지 않는다. 예를 들어, 본 발명의 실시 예에 따른 메모리 장치(100)는 클럭 신호(미도시), 로우 어드레스 스트로브(Row Address Strobe, RAS) 신호(미도시), 컬럼 어드레스 스트로브(Column Address Strobe, CAS) 신호, 데이터 스트로브 신호(미도시), 칩 인에이블 신호(Chip Enable Signal, CS), 리드 인에이블 신호(Read Enable Signal, RE), 라이트 인에이블 신호(Write Enable Signal, WE) 등을 구동에 이용할 수 있다.
본 발명의 실시 예에 따른 메모리(120a)에서, 명령 신호(CMD), 어드레스 신호(ADD) 및 스위즐링 신호(SW)는 입력 수신기(121)로 입력될 수 있다. 입력 수신기(121)는 내부 클럭 신호의 상승 엣지(rising edge) 또는 하강 엣지(falling edge)에서 명령 신호(CMD), 어드레스 신호(ADD) 및 스위즐링 신호(SW)를 각각 샘플링(sampling) 할 수 있다. 입력 수신기(121)는 샘플링된 명령 신호(CMD), 어드레스 신호(ADD) 및 스위즐링 신호(SW)를 제어 로직(122)으로 전달할 수 있다.
또한, 도 2에 도시되지는 않았으나, 입력 수신기(121)는 컨트롤러(110)로부터 메모리(120a)를 제어하기 위한 복수의 제어 신호들을 입력받고, 이를 제어 로직(122)으로 전달할 수 있다. 복수의 제어 신호들은, 클럭 신호, 로우 어드레스 스트로브 신호, 컬럼 어드레스 스트로브 신호, 데이터 스트로브 신호, 칩 인에이블 신호, 리드 인에이블 신호, 라이트 인에이블 신호 등을 포함할 수 있다.
한편, 도 2에 도시되지는 않았으나, 제어 로직(122)은 모드 레지스터(mode register) 및 커맨드 디코더(command decoder)를 포함할 수 있다. 모드 레지스터는 메모리 장치(100)의 다양한 동작 모드들을 제어하기 위한 데이터를 저장할 수 있다. 예로서, 모드 레지스터에 저장되는 데이터는 버스트 모드 설정, 버스트 타입 설정, 버스트 길이 설정, CAS(Column Address Strobe) 레이턴시 설정, DLL(Delay Locked Loop) 인에이블 또는 리셋 설정, 온도 센서 설정, WR(Write Recovery) 및 RTP(Read To Precharge) 설정 등을 포함할 수 있다. 커맨드 디코더는 입력 수신기(121)로부터 입력된 복수의 제어 신호들을 디코딩하고, 디코딩 결과에 따라 메모리(120a)의 다른 구성 요소들을 제어하기 위한 내부 제어 신호들을 생성할 수 있다. 생성된 내부 제어 신호들은 메모리(120a) 내의 다른 구성 요소들에 전달될 수 있다.
제어 로직(122)은 내부 제어 신호들에 기반하여 메모리(120a) 내부의 구성 요소들을 제어할 수 있다. 예로서, 제어 로직(122)은 리드 명령 신호에 기반하여 메모리(120a)가 리드 동작을 수행하도록 제어할 수 있고, 라이트 명령 신호에 기반하여 메모리(120a)가 라이트 동작을 수행하도록 제어할 수 있다.
또한, 제어 로직(122)은 어드레스 신호(ADD)에 기반하여 메모리 셀 어레이(127) 내에서 수행하고자 하는 동작의 위치를 지정할 수 있다. 어드레스 신호(ADD)는 로우 어드레스 신호(RA) 및 컬럼 어드레스 신호(CA)를 포함할 수 있다. 제어 로직(122)은 로우 디코더(123)에 로우 어드레스 신호(RA)를 전달할 수 있고, 출력 게이팅(124)에 컬럼 어드레스 신호(CA)를 전달할 수 있다. 또한, 제어 로직(122)은 디코드된 스위즐링 신호(SW)를 스위즐링 회로(128)에 전달할 수 있다.
로우 디코더(123)는 제어 로직(122)으로부터 로우 어드레스 신호(RA) 및 로우디코더를 제어하기 위한 제어 신호를 수신할 수 있다. 로우 디코더(123)는 제어 로직(122)으로부터 수신된 제어 신호에 응답하여, 로우 어드레스 신호(RA)를 디코딩하고, 디코딩 결과에 따라 메모리 셀 어레이(127) 내의 복수의 워드 라인(WL, 미도시)들 중에서 어느 하나의 워드 라인을 선택할 수 있다.
출력 게이팅(124)은 제어 로직(122)으로부터 컬럼 어드레스 신호(RA)를 수신할 수 있다. 출력 게이팅(124)은 제어 로직(122)으로부터 수신된 컬럼 어드레스 신호(CA)를 디코딩하고, 디코딩 결과에 따라 메모리 셀 어레이(127) 내의 복수의 컬럼들에 대한 컬럼 선택 신호들을 생성할 수 있다. 출력 게이팅(124)은 생성된 컬럼 선택 신호들에 기반하여 라이트 드라이버(125) 또는 감지 증폭기(126)를 스위즐링 회로(128)와 연결할 수 있다.
라이트 드라이버(125)는 라이트 동작시 컬럼 선택 신호들에 기반하여 입력된 데이터를 수신하고, 데이터를 메모리 셀 어레이(127)로 전달할 수 있다. 감지 증폭기(126)는 비트 라인들의 전압 변화를 감지하고, 증폭할 수 있다. 감지 증폭기(126)는 컬럼 선택 신호에 의해 선택되는 컬럼들의 비트들을 출력할 수 있다. 따라서, 메모리 장치(100)가 리드 동작을 수행하면, 메모리 장치(100)는 컬럼 선택 신호들에 따라 메모리 셀 어레이(127) 내의 셀들 중 감지 증폭기(126)에 의하여 전압 변화가 감지 및 증폭된 셀에 저장된 데이터를 출력 할 수 있다. 또는, 메모리 장치(100)가 라이트 동작을 수행하면, 메모리 장치(100)는 입력 데이터를 컬럼 선택 신호들에 기반하여 라이트 드라이버(125)로 전달하고, 라이트 드라이버(125)는 컬럼 선택 신호들에 의하여 메모리 셀 어레이(127) 내의 지정된 위치의 셀에 입력된 데이터를 프로그램 할 수 있다.
메모리 셀 어레이(127)는 반복적으로 배치되는 메모리 셀들을 포함할 수 잇다. 메모리 셀 어레이(127)는 적어도 하나의 뱅크(bank)일 수 있다. 뱅크들의 개수는 메모리 장치(100)의 다양한 규약에 따라 사전에 결정될 수 있다. 메모리 셀들은 뱅크 내 워드 라인들 및 비트 라인들의 교차점에 배치될 수 있다. 예를 들어, 메모리 셀들은 DRAM 셀, PRAM 셀, SRAM(Static Random Access Memory) 셀, RRAM(Resistive Random Access Memory) 셀 또는 MRAM(Magnetic Random Access Memory) 셀 중 적어도 하나를 포함할 수 있다.
스위즐링 회로(128)는 본 발명의 실시 예에 따른 메모리 장치(100)가 리드 동작 및 라이트 동작을 수행할 때, 선별적인 데이터 처리를 지원한다. 다시 말하면, 리드 동작 시에 메모리 장치(100)는 추출된 데이터들만을 출력하도록 리드 데이터를 선별하고, 라이트 동작 시에 메모리 장치(100)는 미리 선별된 위치들에 데이터를 프로그래밍 할 수 있다. 스위즐링 회로(128)의 구성 및 동작 원리는 후술할 도 6 내지 도 14에서 상세히 설명될 것이다.
데이터 버퍼(129)는 리드 동작 또는 라이트 동작 시에 버퍼링을 수행할 수 있다. 예를 들어, 메모리 장치(100)의 리드 동작이 수행되는 경우, 데이터 버퍼(129)는 메모리 셀 어레이(127)로부터 리드되고, 스위즐링 회로(128)에서 선별된 데이터를 수신할 수 있다. 데이터 버퍼(129)는 수신된 데이터를 직렬화기(130)에 전달할 수 있다. 또는, 메모리 장치(100)의 라이트 동작이 수행되는 경우, 데이터 버퍼(129)는 병렬화기(133)로부터 데이터를 수신할 수 있다. 데이터 버퍼(129)는 수신된 데이터를 스위즐링 회로(128)로 전달할 수 있다.
도 2에서, 데이터 버퍼(129)는 리드 동작 및 라이트 동작이 수행될 때, 데이터를 주고 받는 기능을 하는 것으로 도시되었으나, 이는 하나의 실시 예일 뿐, 본 발명에 따른 메모리 장치(100)는 도 2에 도시된 바에 한정되지 않는다. 다시 말하면, 본 발명에 따른 메모리 장치(100)는 다양한 구조를 가질 수 있고, 예로서 데이터 버퍼(129)는 리드 동작을 수행함에 있어서 이용되는 리드 데이터 버퍼(미도시) 및 라이트 동작을 수행함에 있어서 이용되는 라이트 데이터 버퍼(미도시)로 구분되어 구성될 수 있다.
직렬화기(130)는 본 발명의 실시 예에 따른 메모리 장치(100)가 리드 동작을 수행하는 경우, 데이터 버퍼(129)로부터 리드 데이터의 비트들을 수신하고, 직렬화할 수 있다. 직렬화기(130)는 직렬화된 데이터 비트들을 드라이버(131)로 전달할 수 있고, 드라이버(131)는 데이터를 컨트롤러(110)로 출력할 수 있다.
데이터 수신기(132)는 본 발명의 실시 예에 따른 메모리 장치(100)가 라이트 동작을 수행하는 경우, 컨트롤러(110)로부터 프로그래밍 할 데이터 비트들을 수신할 수 있다. 데이터 수신기(132)는 수신한 데이터를 역직렬화기(133)로 전달할 수 있다. 역직렬화기(133)는 데이터 수신기(132)로부터 수신한 데이터 비트들을 수신하고, 병렬화할 수 있다. 역직렬화기(133)는 병렬화된 데이터 비트들을 데이터 버퍼(129)에 전달할 수 있다.
본 발명의 실시 예에 따른 메모리(120a)에서 리드 동작이 수행되는 경우, 입력 수신기(121)는 컨트롤러(110)로부터 리드 동작을 위한 명령 신호(CMD), 리드 동작을 수행할 메모리 셀 어레이(127) 내의 위치를 나타내는 어드레스 신호(ADD) 및 리드 동작 시에 스위즐링 동작을 수행할 지를 가리키는 스위즐링 신호(SW)를 수신할 수 있다. 입력 수신기(121)는 수신된 신호들(CMD, ADD, SW)을 제어 로직(122)으로 전달하고, 제어 로직은 로우 디코더(123)로 로우 어드레스 신호(RA)를, 출력 게이팅(124)으로 컬럼 어드레스 신호(CA)를 전달할 수 있다.
메모리 장치(100)는 메모리 셀 어레이(127) 내에서 로우 어드레스 신호(RA) 및 컬럼 어드레스 신호(CA)가 나타내는 위치에 저장된 데이터를 리드할 수 있다. 본 발명의 실시 예에 따른 메모리 장치(100)는 버스트 모드로 동작할 수 있고, 리드 동작을 수행할 첫 번째 데이터 비트(또는 메모리 셀)의 위치만을 특정하되 버스트 길이만큼 데이터 비트들을 리드할 수 있다. 메모리 셀 어레이(127)에서 리드된 데이터 비트들은 스위즐링 회로(128)로 입력될 수 있다. 스위즐링 회로(128)는 스위즐링 신호(SW)가 활성화된 때에, 리드된 데이터 비트들에 대한 스위즐링 리드 동작을 수행한 후, 선별된 데이터 비트들을 데이터 버퍼(129)를 거쳐 직렬화기(130)로 전달할 수 있다. 직렬화기(130)에 전달된 데이터 비트들은 직렬화 과정을 거친 후, 드라이버(131)를 통하여 컨트롤러(110)로 출력될 수 있다.
본 발명의 실시 예에 따른 메모리(120a)에서 라이트 동작이 수행되는 경우, 입력 수신기(121)는 컨트롤러(110)로부터 라이트 동작을 위한 명령 신호(CMD), 라이트 동작을 수행할 메모리 셀 어레이(127) 내의 위치를 나타내는 어드레스 신호(ADD) 및 라이트 동작 시에 스위즐링 동작을 수행할 지를 가리키는 스위즐링 신호(SW)를 수신할 수 있다. 입력 수신기(121)는 수신된 신호들(CMD, ADD, SW)을 제어 로직(122)으로 전달되고, 제어 로직은 로우 디코더(123)로 로우 어드레스 신호(RA)를, 출력 게이팅(124)으로 컬럼 어드레스 신호(CA)를 전달할 수 있다.
메모리 장치(100)는 메모리 셀 어레이(127) 내에서 로우 어드레스 신호(RA) 및 컬럼 어드레스 신호(CA)가 나타내는 위치에 데이터를 프로그래밍 할 수 있다. 본 발명의 실시 예에 따른 메모리 장치(100)는 버스트 길이만큼의 데이터 비트들을 프로그래밍하는 버스트 모드로 동작하되, 스위즐링 신호(SW)가 활성화된 때에 스위즐링 회로(128)에 의하여 데이터 비트들을 저장하기 위한 메모리 셀의 위치를 선별할 수 있다. 메모리(120a)에 입력되는 데이터 비트들은 데이터 수신기(132)를 통하여 역직렬화기(133)로 전달될 수 있고, 역직렬화기(133)에서 병렬화된 데이터 비트들은 데이터 버퍼(129)를 거쳐 스위즐링 회로(128)로 전달될 수 있다. 스위즐링 회로(128)는 병렬화된 데이터 비트들에 대한 스위즐링 라이트 동작을 수행할 수 있고, 메모리 장치(100)는 메모리 셀 어레이(127) 내의 선별된 위치에 데이터 비트들을 저장할 수 있다.
도 2에서, 본 발명의 실시 예에 따른 메모리(120a)를 구성하는 각 구성 요소들은 하나의 개체인 것으로 도시되었으나, 이는 본 발명에 따른 일 실시 예일 뿐, 본 발명을 한정하지 않는다. 다시 말하면, 본 발명의 실시 예에 따른 메모리(120a)는 상술한 각 구성 요소들을 적어도 하나씩 포함할 수 있는 것으로 이해되어야 할 것이다.
도 3은 본 발명의 또 다른 실시 예에 따른 메모리(120b)를 나타내는 블록도이다. 이하, 도 3에 개시된 메모리(120b)에 있어서, 도 1 내지 도 2에서 상술한 내용과 중복되는 구성, 기능, 특징 및 동작들에 대한 상세한 설명은 생략할 것이다. 도 3을 참조하면, 본 발명의 또 다른 실시 예에 따른 메모리(120b)는 상술한 도 2에 개시된 메모리(120a, 도 2 참조)와 동일하게 입력 수신기(121), 제어 로직(122), 로우 디코더(123), 출력 게이팅(124), 라이트 드라이버(125), 감지 증폭기(126), 메모리 셀 어레이(127), 데이터 버퍼(129), 직렬화기(Serializer, 130), 드라이버(Driver, 131), 데이터 수신기(Data Receiver, 132) 및 역직렬화기(De-serializer, 133)를 포함할 수 있다. 도 3에 개시된 구성 요소들 중 메모리 셀 어레이(127)를 제외한 나머지 구성 요소들은 주변 회로로 통칭될 수 있다.
도 3에 개시된 실시 예에 따른 메모리(120b)는 스위즐링 회로(128, 도 2 참조)를 대신하여, 분리되어 구성된 스위즐링 리드 회로(Swizzling Read Circuit, 128a) 및 스위즐링 라이트 회로(Swizzling Write Circuit, 128b)를 포함하거나, 스위즐링 리드 회로(128a) 및 스위즐링 라이트 회로(128b) 중 어느 하나만을 포함할 수 있다. 스위즐링 리드 회로(128a)는 본 발명에 따른 메모리 장치(100, 도 1 참조)가 리드 동작을 수행하는 경우, 리드 데이터에 대한 스위즐링 동작을 수행할 수 있다. 스위즐링 라이트 회로(128b)는 본 발명에 따른 메모리 장치(100)가 라이트 동작을 수행하는 경우, 프로그래밍할 데이터의 저장 위치에 대한 스위즐링 동작을 수행할 수 있다. 리드 동작 시에 스위즐링 신호(SW)가 활성화된 경우, 스위즐링 리드 신호(SW_RD)는 스위즐링 리드 회로(128a)로 전달될 수 있고, 라이트 동작 시에 스위즐링 신호(SW)가 활성화 된 경우, 스위즐링 라이트 신호(SW_WR)는 스위즐링 라이트 회로(128b)로 전달될 수 있다.
도 4a 및 도 4b는 본 발명의 실시 예에 따른 메모리 셀 어레이(127, 도 2 및 도 3 참조)를 구성하는 메모리 셀의 회로도이다. 좀 더 상세하게는, 도 4a는 메모리 셀 어레이(127)에 포함되는 DRAM 셀(127a)의 회로도이며, 도 4b는 메모리 셀 어레이(127)에 포함되는 PRAM 셀(127b)의 회로도이다.
도 4a를 참조하면, DRAM 셀(127a)은 트랜지스터(Transistor, Tr) 및 커패시터(Capacitor, C)를 포함할 수 있다. 트랜지스터(Tr)의 게이트는 워드 라인(WL)과 연결될 수 있다. 트랜지스터(Tr)의 제 1 터미널은 비트 라인(BL)과 연결될 수 있고, 제 2 터미널은 커패시터(C)와 연결될 수 있다.
DRAM 셀(127a)의 리드 동작 시에, DRAM 셀(127a)에 저장된 데이터를 리드 하기 위하여 워드 라인(WL)에 고전압(VH)이 인가되고, 비트 라인(BL)에 비트 라인 전압이 인가될 수 있다. 비트 라인 전압은 전원 전압(VDD)의 절반 크기인 VDD/2의 전압이 인가될 수 있다. DRAM 셀(127a)에 데이터 '1'이 저장되어 있는 경우, 커패시터(C)에 축적되어 있는 전하에 의해 비트 라인(BL)의 전압은 상승할 수 있다. 비트 라인(BL) 전압의 상승에 응답하여, 데이터 '1'을 리드할 수 있다. 반면, DRAM 셀(127a)에 데이터 '0'이 저장되어 있는 경우, 커패시터(C)에 축적되어 있는 전하가 없으므로 비트 라인(BL)의 전압은 하강할 수 있다. 비트 라인(BL) 전압의 하강에 응답하여, 데이터 '0'를 리드할 수 있다.
DRAM 셀(127a)의 라이트 동작 시에, 데이터를 라이트 하기 위하여 워드 라인(WL)에 전원 전압(Source Voltage)보다 높은 고전압(High Voltage, VH)이 인가될 수 있다. 워드 라인(WL)에 고전압(VH)이 인가된 상태에서, 비트 라인(BL)에 고전압(VH)이 동시에 인가되는 경우, 커패시터(C)에 전하가 충전될 수 있다. 커패시터(C)에 전하가 충전되는 경우, DRAM 셀(127a)에는 데이터 '1'이 라이트 된다. 한편, 워드 라인(WL)에 고전압(VH)이 인가된 상태에서, 비트 라인(BL)에 접지 전압(Ground Voltage)이 동시에 인가되는 경우, 커패시터(C)에 축적된 전하가 비트 라인(BL)을 통하여 빠져나갈 수 있다. 커패시터(C)가 방전되는 경우, DRAM 셀(127a)에는 데이터 '0'이 라이트 된다.
도 4b를 참조하면, PRAM 셀(127b)은 트랜지스터(Tr) 및 상변화 물질(Phase Change Material, PCM)을 포함할 수 있다. 트랜지스터(Tr)의 게이트는 워드 라인(WL)과 연결될 수 있다. 트랜지스터(Tr)의 제 1 터미널은 비트 라인(BL)과 연결될 수 있고, 제 2 터미널은 상변화 물질(PCM)과 연결될 수 있다. 상변화 몰질(PCM)의 나머지 일 단은 소스 라인(SL)과 연결될 수 있다. 예시적으로 상변화 물질(PCM)은 게르마늄 안티몬 텔룰라이드(Germanium-antimony-tellurium, GST)와 같은 칼코게나이드(chalcogenide)계 화합물일 수 있다. 상변화 물질(PCM)은 상변화 물질(PCM)에 인가되는 전기적 펄스(Electrical Pulse)에 기반한 열 에너지의 양에 따라 상변화를 일으킬 수 있다.
PRAM 셀(127b)의 리드 동작 시에, 상변화 물질(PCM)의 저항 값에 기반하여 데이터 값이 구별될 수 있다. PRAM 셀(127b)이 리드 동작을 수행하는 경우, 워드 라인(WL)에는 턴 온(turn on) 전압이 인가될 수 있고, 비트 라인(BL)에는 읽기 전압이 인가될 수 있다. 비트 라인(BL)에 인가되는 읽기 전압은 상변화 물질(PCM)의 상태를 변화시키지 않는 범위 내의 전압으로 한정된다. 상변화 물질(PCM)을 통해 흐르는 전류량이 임계 값 이상일 때, 즉 상변화 물질(PCM)이 저저항 상태일 때 데이터 '1'을 리드할 수 있다. 또한, 상변화 물질(PCM)을 통해 흐르는 전류량이 임계 값 이하일 때, 즉 상변화 물질(PCM)이 고저항 상태일 때 데이터 '0'을 리드할 수 있다. PRAM 셀(127b)에 저장된 데이터의 값을 리드함에 있어서, 데이터 값을 구분하는 임계 값은 상변화 물질(PCM)의 종류에 따라 달라질 수 있다.
PRAM 셀(127b)의 라이트 동작 시에, PRAM 셀(127b)은 상변화 물질(PCM)에 인가되는 열 에너지의 양에 따른 상변화 물질(PCM)의 결정 상태에 기반하여 데이터 값을 구분하여 라이트 할 수 있다. PRAM 셀(127b)에 전기적 펄스가 인가되는 경우, 상변화 물질(PCM)은 상변화 현상을 일으킬 수 있으며, 이에 기반하여 PRAM 셀(127b)에 라이트 동작을 수행할 수 있다. 상변화 물질(PCM)이 비결정(amorphous) 상태가 되는 경우, 상변화 물질(PCM)의 저항 값은 수십K 내지 수M 옴(ohm, Ω) 수준의 비교적 높은 저항 값을 가질 수 있으며, PRAM 셀(127b)에는 데이터 '0'이 라이트될 수 있다. 한편, 상변화 물질(PCM)이 결정(crystalline) 상태가 되는 경우, 변화 물질(PCM)의 저항 값은 수K 옴(Ω) 수준의 비교적 낮은 저항 값을 가질 수 있으며, PRAM 셀(127b)에는 데이터 '1'이 라이트될 수 있다. PRAM 셀(127b)에 있어서, 상변화 물질(PCM)의 상변화 원리는 후술할 도 5를 참조하여 상세하게 설명될 것이다.
도 5는 도 4b에 개시된 PRAM 셀(127b, 도 4b 참조)의 특징을 설명하기 위한 도면이다. PRAM 셀(127b)에 포함된 상변화 물질(PCM, 도 4b 참조)의 가역적인 상변화는 외부에서 인가한 전기적 펄스에 의한 줄 가열(Joule Heating)에 의하여 이루어질 수 있다. PRAM 셀(127b)에서, 줄 가열에 의하여 상변화 물질(PCM)의 상을 제어하는 과정은 셋/리셋 과정일 수 있으며, 이는 전기적 펄스의 레벨 및 인가 시간에 의하여 조절될 수 있다. PRAM 셀(127b)의 라이트 동작에 있어서, 리셋 과정(reset)을 통하여 데이터 '0'을 PRAM 셀(127b)에 라이트 할 수 있고, 셋 과정(set)을 통하여 데이터 '1'을 PRAM 셀(127b)에 라이트 할 수 있다.
리셋 과정(reset)은, 상변화 물질(PCM)을 녹는점(Tm) 이상의 온도로 가열시켜서 용융시킨 후, 급냉 현상을 이용하여 비결정상으로 바꾸는 과정을 의미한다. 도 5를 참조하면, 리셋 과정(reset)이 구현되기 위하여 상변화 물질(PCM)은 전기적 펄스에 의한 열 에너지에 의하여, 제 1 구간(0~t1)에서 녹는점(Tm)보다 높은 제 1 온도(T1)를 가질 수 있도록 가열될 수 있다. 상변화 물질(PCM)의 온도가 제 1 온도(T1)에 도달하면, 제 2 구간(t1~t2)에서 상변화 물질(PCM)은 급냉될 수 있다. 급냉된 상변화 물질(PCM)은 비결정상으로 상변화 될 수 있다. 이 경우, PRAM 셀(127b)에는 데이터 '0'이 라이트 될 수 있다.
셋 과정은, 상변화 물질(PCM)을 유리 전이 온도(Tg) 이상으로 충분히 가열시킨 후, 낮은 속도로 냉각시켜 결정질상으로 바꾸는 과정을 의미한다. 도 5를 참조하면, 셋 과정(set)이 구현되기 위하여 상변화 물질(PCM)은 전기적 펄스에 의한 열 에너지에 의하여, 제 3 구간(0~t3)에서 유리 전이 온도(Tg)보다 높으나, 녹는점(Tm)보다 낮은 제 2 온도(T2)를 가질 수 있도록 서서히 가열될 수 있다. 상변화 물질(PCM)의 온도가 제 2 온도(T2)에 도달하면, 제 4 구간(t3~t4)에서 상변화 물질(PCM)은 서서히 냉각될 수 있다. 서서히 냉각된 상변화 물질(PCM)은 결정상으로 상변화 될 수 있다. 이 경우, PRAM 셀(127b)에는 데이터 '1'이 라이트 될 수 있다.
도 6은 본 발명의 실시 예에 따른 스위즐링 리드 동작을 설명하기 위한 도면이다. 도 6에서, 메모리 장치(100, 도 1 참조)의 버스트 길이는 8개의 데이터 비트들로 가정되었으며, 하나의 페이지는 제 1 내지 제 16 데이터 비트들(f1 내지 f8, 및 e1 내지 e8)로 이루어진 것으로 가정되었다. 페이지는 하나의 워드 라인에 연결된 메모리 셀들에 저장된 복수의 데이터 비트들을 의미한다. 도 6에 개시된 하나의 페이지는 설명의 편의를 위하여 프론트 페이지(Page_Front) 및 엔드 페이지(Page_End)로 구성된 것으로 표현되며, 프론트 페이지(Page_Front)는 버스트 길이만큼의 제 1 내지 제 8 데이터 비트들(f1 내지 f8)을 포함하고, 엔드 페이지(Page_End) 또한 버스트 길이만큼의 제 9 내지 제 16 데이터 비트들(e1 내지 e8)을 포함하는 것으로 표현된다. 다만, 도 6에 개시된 실시 예는 본 발명의 일 실시 예일 뿐, 본 발명을 한정하는 것은 아니다.
예로서, 스위즐링 회로(128)가 없는 경우, 버스트 모드로 동작하는 메모리 장치(100)는 리드 동작을 수행할 첫 번째 메모리 셀의 어드레스만를 수신한 후, 버스트 길이만큼의 데이터 비트들을 리드할 수 있다. 다시 말하면, 메모리 장치(100)는 프론트 페이지(Page_Front)에 포함된 제 1 데이터 비트(f1)에 대한 어드레스만을 수신한 후, 제 1 데이터 비트(f1)와 연속하여 위치한 데이터 비트들을 버스트 길이만큼 리드할 수 있다. 따라서 버스트 길이가 8인 경우, 메모리 장치(100)가 제 1 데이터 비트(f1)에 대한 어드레스를 인가 받으면, 메모리 장치(100)는 한 번의 리드 동작에 의하여 제 1 데이터 비트(f1) 내지 제 8 데이터 비트(f8)를 리드할 수 있다. 또는, 버스트 길이가 8인 경우, 메모리 장치(100)가 제 9 데이터 비트(e1)에 대한 어드레스를 인가 받으면, 메모리 장치(100)는 한 번의 리드 동작에 의하여 제 9 데이터 비트(e1) 내지 제 16 데이터 비트(e8)를 리드할 수 있다
따라서, 버스트 모드로 동작하는 메모리 장치(100)로부터, 제 1 내지 제 4 데이터 비트들 및 제 13 내지 제 16 데이터 비트들을 읽을 때, 메모리 장치(100)는 적어도 두 번의 리드 동작을 수행하여야 한다. 즉, 메모리 장치(100)는 제 1 리드 동작에 의하여 프론트 페이지(Page_Front)에 포함된 제 1 내지 제 8 데이터 비트들(f1 내지 f8)을 리드하고, 제 2 리드 동작에 의하여 엔드 페이지(Page_End)에 포함된 제 9 내지 제 16 데이터 비트들(e1 내지 e8)을 리드한 후, 컨트롤러(111, 도 1 참조)에 의한 데이터 비트 병합을 통하여 제 1 내지 제 4 데이터 비트들(f1 내지 f4) 및 제 13 내지 제 16 데이터 비트들(e5 내지 e8)을 독출할 수 있다. 이 때, 메모리 장치(100)의 리드 동작이 2번 수행되는 오버헤드가 발생할 수 있다. 즉, 메모리 장치(100)는 제 1 리드 동작으로부터 리드되는 제 5 내지 제 8 데이터 비트들(f5 내지 f8) 및 제 2 리드 동작으로부터 리드되는 제 9 내지 제 12 데이터 비트들(e1 내지 e4)과 같이 불필요한 데이터 비트까지 리드할 수 있다.
다만, 스위즐링 회로(128)를 포함하는 본 발명에 따른 메모리 장치(100)는 상술한 리드 동작에서의 오버헤드를 방지할 수 있다. 스위즐링 회로(128)는 버스트 길이에 해당하는 개수만큼의 다중화기(multiplexer, MUX)를 포함할 수 있다. 예로서, 본 발명의 실시 예에 따른 메모리 장치(100)는 8개의 다중화기들(M1 내지 M8)을 포함할 수 있다. 다중화기들(M1 내지 M8) 각각은 데이터 비트들을 선별하여 리드할 수 있다. 다중화기들(M1 내지 M8) 각각에 의한 리드 데이터는 제 1 내지 제 8 스위즐링 핀들(P_SW1 내지 P_SW8)에 인가되는 스위즐링 신호(SW, 도 2 참조)에 의하여 결정될 수 있다. 스위즐링 신호(SW)는 컨트롤러(110, 도 1 참조)에 의하여 인가될 수 있다. 제 1 내지 제 8 스위즐링 핀들(P_SW1 내지 P_SW8)은 스위즐링 핀(P_SW)에 포함되며, 메모리(120, 도 1 참조)에서, RFU로 분류되는 핀들에서 구현될 수 있다.
예로서, 제 1 논리 레벨(예를 들어, '로우(low)')의 스위즐링 신호(SW)가 인가되는 경우, 본 발명의 실시 예에 따른 메모리 장치(100)는 프론트 페이지(Page_Front)에 포함된 데이터 비트를 리드할 수 있고, 제 2 논리 레벨(예를 들어, '하이(high)')의 스위즐링 신호(SW)가 인가되는 경우, 엔드 페이지(Page_End)에 포함된 데이터 비트를 리드할 수 있다. 따라서, 제 1 스위즐링 핀(P_SW1)에 제 1 논리 레벨의 신호가 인가되는 경우, 메모리 장치(100)는 프론트 페이지(Page_Front)에 포함된 제 1 데이터 비트(f1) 및 엔드 페이지(Page_End)에 포함된 제 9 데이터 비트(e1) 중 프론트 페이지(Page_Front)에 포함된 제 1 데이터 비트(f1)를 리드할 수 있다. 한편, 제 2 스위즐링 핀(P_SW2)에 제 2 논리 레벨의 신호가 인가되는 경우, 메모리 장치(100)는 프론트 페이지(Page_Front)에 포함된 제 2 데이터 비트(f2) 및 엔드 페이지(Page_End)에 포함된 제 10 데이터 비트(e2) 중 엔드 페이지(Page_End)에 포함된 제 10 데이터 비트(e2)를 리드할 수 있다. 본 발명의 스위즐링 회로(128)에 의한 스위즐링 동작 결과는 후술할 도 7을 참조하여 보다 상세히 설명할 것이다.
도 7은 본 발명의 실시 예에 따른 스위즐링 리드 동작에 의한 결과(Result_SW_RD)들의 예시를 나타내는 도면이다. 도 7의 스위즐링 리드 동작에 의한 결과(Result_SW_RD)들은 논리 '0'의 스위즐링 신호(SW, 도 2 참조)가 인가되는 경우, 프론트 페이지(Page_Front)에 포함된 데이터 비트를 리드할 수 있고, 논리 '1'의 스위즐링 신호(SW)가 인가되는 경우, 엔드 페이지(Page_End)에 포함된 데이터 비트를 리드할 수 있도록 본 발명의 실시 예에 따른 메모리 장치(100, 도 1 참조)를 설계한 것으로 가정한다. 도 7에 개시된 스위즐링 리드 동작에 의한 결과(Result_SW_RD)들은 본 발명에 따른 일부 실시 예를 도시한 것에 지나지 않으며, 본 발명에 따른 메모리 장치(100, 도 1 참조)는 설계에 따라 다양한 결과를 도출할 수 있다.
도 7에 개시된 제 1 결과(Ex_1)는 프론트 페이지(Page_Front)에 포함된 제 1 내지 제 8 데이터 비트들이 리드된 것으로, 제 1 내지 제 8 스위즐링 핀(P_SW1 내지 P_SW8, 도 6 참조)에 '00000000'의 신호가 인가된 경우의 결과를 나타낸다. 도 7에 개시된 제 2 결과(Ex_2)는 '00001000'의 신호가 인가된 경우의 결과를 나타내고, 제 3 결과(Ex_3)는 '10010000'의 신호가 인가된 경우의 결과를 나타내고, 제 4 결과(Ex_4)는 '00110001'의 신호가 인가된 경우의 결과를 나타내고, 제 5 결과(Ex_5)는 '01010110'의 신호가 인가된 경우의 결과를 나타낸다. 제 6 결과(Ex_6)는 '01110011'의 신호가 인가된 경우의 결과를 나타내고, 제 7 결과(Ex_7)는 '11110110'의 신호가 인가된 경우의 결과를 나타내고, 제 8 결과(Ex_8)는 '01111111'의 신호가 인가된 경우의 결과를 나타내고, 제 9 결과(Ex_9)는 '11111111'의 신호가 인가된 경우의 결과를 나타낸다.
도 8은 본 발명의 실시 예에 따른 스위즐링 리드 동작을 이용하여 데이터를 추출하는 과정을 나타내는 도면이다. 좀 더 상세하게는, 도 8은 스위즐링 리드 동작을 이용하여 도 8에 도시된 제 2 메타 데이터(Meta_b)를 추출하는 과정을 나타내는 도면이다. 도 8에 개시된 스위즐링 리드 동작에 있어서, 버스트 길이는 8 데이터 비트이고, 하나의 페이지는 16 데이터 비트들을 포함하는 것으로 가정한다. 또한, 도 8에 개시된 논리 '0'의 스위즐링 리드 신호(SW_RD)가 인가되는 경우, 프론트 페이지(Page_Front)에 포함된 데이터 비트를 리드할 수 있고, 논리 '1'의 스위즐링 리드 신호(SW_RD)가 인가되는 경우, 엔드 페이지(Page_End)에 포함된 데이터 비트를 리드할 수 있도록 본 발명의 실시 예에 따른 메모리 장치(100)를 설계한 것으로 가정한다.
도 8의 메모리(120)에 포함된 메모리 셀은 하나의 페이지로 구성되며, 하나의 페이지는 프론트 페이지(Page_Front) 및 엔드 페이지(Page_End)로 구분될 수 있다. 프론트 페이지(Page_Front) 및 엔드 페이지(Page_End)는 각각 8 데이터 비트들을 포함하고 있으며, 제 1 메타 데이터 내지 제 3 메타 데이터(Meta_a, Meta_b, Meta_c)는 각각 5 데이터 비트들로 구성될 수 있다. 도 8에 개시된 실시 예에서, 스위즐링 리드 신호(SW_RD)는 제 1 내지 제 2 스위즐링 핀(P_SW1 내지 P_SW2)을 통하여 논리 '1'의 신호로 인가되고, 제 3 내지 제 8 스위즐링 핀(P_SW3 내지 P_SW8)을 통하여 논리 '0'의 신호로 인가된다. 따라서, 스위즐링 회로(128, 도 2 참조)에서 엔드 페이지(Page_End)에 포함된 제 9 데이터 비트(b4), 제 10 데이터 비트(b5), 프론트 페이지(Page_Front)에 포함된 제 3 데이터 비트(a3), 제 4 데이터 비트(a4), 제 5 데이터 비트(a5), 제 6 데이터 비트(b1), 제 7 데이터 비트(b2), 제 8 데이터 비트(b3)가 선별되어 연속적으로 출력될 수 있다. 데이터 버퍼(129, 도 2 참조)는 스위즐링 회로(128)로부터 연속되어 출력된 시퀀스 데이터 비트들을 저장할 수 있고, 데이터 신호(DQ)를 통하여 컨트롤러(110)로 전달할 수 있다.
컨트롤러(110)에 포함된 리드 버퍼는 데이터 신호(DQ)로부터 시퀀스 데이터 비트들을 수신하고, 저장할 수 있다. 도 8에 개시된 동작에 있어서, 제 2 메타 데이터(Meta_b)를 추출하기 위하여, 리드 버퍼에 저장된 시퀀스 데이터 비트들을 재배열할 수 있다. 컨트롤러(110)는 시퀀스 데이터 비트들에 포함된 제 2 메타 데이터(Meta_b)의 데이터 비트들을 순차적으로 재배열하여 목표한 제 2 메타 데이터(Meta_b)를 추출할 수 있다.
도 9는 본 발명의 실시 예에 따라 스위즐링 리드 동작을 수행할 때 이용되는 신호들의 타이밍 도이다. 스위즐링 리드 동작을 수행함에 있어서, 도 9에 개시된 명령 신호(CMD), 어드레스 신호(ADD) 및 스위즐링 신호(SW)는 컨트롤러(110, 도 1 참조)로부터 메모리(120, 도 1 참조)로 전달될 수 있고, 데이터 신호(DQ)는 메모리(120)에서 컨트롤러(110)로 전달될 수 있다. 도 9에 도시되지는 않았으나, 본 발명에 따른 메모리 장치(100, 도 1 참조)는 클럭 신호(미도시), 로우 어드레스 스트로브 신호(미도시), 컬럼 어드레스 스트로브 신호(미도시), 데이터 스트로브 신호(미도시), 칩 인데이블 신호(미도시), 리드 인에이블 신호(미도시), 라이트 인에이블 신호(미도시) 등을 구동에 이용할 수 있다. 명령 신호(CMD), 어드레스 신호(ADD), 스위즐링 신호(SW), 데이터 신호(DQ)는 클럭 신호, 로우 어드레스 스트로브 신호, 컬럼 어드레스 스트로브 신호, 데이터 스트로브 신호에 동기될 수 있다.
명령 신호(CMD)는 액티브 신호(ACT) 및 리드 신호(RD)를 포함할 수 있다. 어드레스 신호(ADD)는 로우 어드레스 신호(RA) 및 컬럼 어드레스 신호(CA)를 포함할 수 있다. 액티브 신호(ACT)가 활성화되면, 액티브 신호(ACT)에 응답하여, 로우 어드레스 신호(RA)가 활성화될 수 있다. 로우 어드레스 신호(RA)에 기반하여, 메모리 장치(100)는 데이터를 리드할 메모리 셀 어레이의 워드 라인을 선정할 수 있다. 워드 라인이 선정되면, 리드 신호(RD)가 활성화될 수 있다. 리드 신호(RD)에 응답하여, 컬럼 어드레스 신호(CA)가 활성화될 수 있다. 컬럼 어드레스 신호(CA)에 기반하여, 데이터를 리드할 메모리 셀 어레이의 비트 라인이 선정될 수 있다.
본 발명의 실시 예에 있어서, 스위즐링 신호(SW)는 액티브 신호(ACT)에 응답하여 활성화되는 제 1 스위즐링 리드 신호(SW1) 및 리드 신호(RD)에 응답하여 활성화되는 제 2 스위즐링 리드 신호(SW2) 중 적어도 하나의 형태로 발생할 수 있다. 제 1 스위즐링 리드 신호(SW1) 또는 제 2 스위즐링 리드 신호(SW2)에 기반하여 메모리 장치(100)는 리드할 데이터 비트들을 선별할 수 있다. 예로서, 제 1 스위즐링 리드 신호(SW1) 또는 제 2 스위즐링 리드 신호(SW2)는 프론트 페이지(Page_Front, 도 6 참조)에 저장된 데이터를 리드할 지, 엔드 페이지(Page_End, 도 6 참조)에 저장된 데이터를 리드할 지 결정할 수 있다.
명령 신호(CMD), 어드레스 신호(ADD) 및 스위즐링 리드 신호(SW_RD)에 의하여 리드될 데이터 비트들이 선별되면, 메모리(120)는 데이터 신호(DQ)를 발생시켜 컨트롤러(110)로 데이터 비트들을 출력할 수 있다. 도 9에 개시된 데이터 신호(DQ)는 8 데이터 비트들을 포함하는 것으로 도시되었으나, 이는 하나의 실시 예일 뿐, 본 발명을 한정하는 것은 아니다.
도 10은 본 발명의 실시 예에 따른 스위즐링 리드 동작의 동작 방법을 나타내는 순서도이다. S110 단계에서, 컨트롤러(110, 도 1 참조)는 원하는 데이터 비트들을 선별하여 리드하기 위한 스위즐링 신호(SW, 도 9 참조)를 할당할 수 있다. 예를 들어, 스위즐링 신호(SW)는 논리 '0' 또는 논리 '1'의 신호로 할당되 수 있으며, 프론트 페이지(Page_Front, 도 6 참조)에 포함된 데이터 비트를 선별하기 위하여 논리 '0'의 신호가 할당되고 엔드 페이지(Page_End, 도 6 참조)에 포함된 데이터 비트를 선별하기 위하여 논리 '1'의 신호가 할당될 수 있다.
S120 단계에서, 컨트롤러(110)는 명령 신호(CMD, 도 9 참조), 어드레스 신호(ADD, 도 9 참조) 및 S110 단계에서 할당된 스위즐링 신호(SW)를 메모리(120, 도 1 참조)에 전달할 수 있다. 명령 신호(CMD)는 액티브 신호(ACT, 도 9 참조) 및 리드 신호(RD)를 포함할 수 있으며, 어드레스 신호(ADD)는 로우 어드레스 신호(RA, 도 9 참조) 및 컬럼 어드레스 신호(CA, 도 9 참조)를 포함할 수 있다. 메모리(120)에 포함된 로우 디코더(123, 도 2 참조)는 로우 어드레스 신호(RA)를 수신하여 데이터를 리드할 메모리 셀 어레이(127, 도 2 참조)의 행(row)을 지정할 수 있다. 메모리(120)에 포함된 출력 게이팅(124, 도 2 참조)은 컬럼 어드레스 신호(CA)를 수신하여 데이터를 리드할 메모리 셀 어레이(127)의 열(column)을 지정할 수 있다. 스위즐링 신호(SW)는 메모리(120)에 스위즐링 회로(128, 도 2 참조)가 포함된 경우 스위즐링 회로(128)로 입력될 수 있고, 메모리(120)에 스위즐링 리드 회로(128a, 도 3 참조)가 포함된 경우 스위즐링 리드 회로(128a)로 입력될 수 있다.
S130 단계에서, 메모리(120)는 스위즐링 신호(SW)에 기반하여 원하는 데이터를 선별하여 추출할 수 있다. 스위즐링 리드 동작은 S120 단계에서 지정된 행 및 열에 해당하는 메모리 셀에 저장된 어느 하나의 데이터 비트로부터 버스트 길이 내에 위치하는 데이터 비트들에 대하여 구현될 수 있다. 예를 들어, 스위즐링 신호(SW)에 기반하여 메모리(120)는 제 1 페이지에 포함된 제 1 데이터 비트 및 제 2 페이지에 포함된 제 2 데이터 비트 중 어느 하나의 데이터 비트를 선별할 수 있다.
S140 단계에서, 메모리(120)는 선별하여 추출된 데이터 비트들을 출력할 수 있다. 스위즐링 회로(128, 도 2 참조) 또는 스위즐링 리드 회로(128a, 도 3 참조)로부터 선별된 데이터 비트들은 데이터 버퍼(129, 도 2 참조)를 거쳐 직렬화기(130, 도 2 참조)로 전달될 수 있다. 직렬화기(130)는 선별된 데이터 비트들을 직렬화할 수 있다. 직렬화된 데이터 비트들은 드라이버(131, 도 2 참조)를 통하여 메모리(120)의 외부로 출력될 수 있다.
S150 단계에서, 컨트롤러(110, 도 1 참조)는 원하는 데이터를 재배열 할 수 있다. 예를 들어, 제 1 내지 제 8 데이터 비트들이 메모리(120)의 외부로 출력되었고, 컨트롤러(110)가 요구하는 데이터 비트들이 제 1 내지 제 8 데이터 비트 중 제 3 내지 제 5 데이터 비트를 제외한 나머지 데이터 비트들인 경우, 컨트롤러(111)는 제 1 내지 제 2 데이터 비트 및 제 6 내지 제 8 테이터 비트만을 추출할 수 있다. 또는, 컨트롤러(110)는 메모리(120)로부터 출력된 데이터 비트들의 배열을 재정렬할 수 있다. 본 발명의 실시 예에 따른 메모리 장치(100)에서 스위즐링 리드 동작을 수행할 때, S150 단계는 필요에 의하여 생략될 수 있다.
도 11은 본 발명의 실시 예에 따른 스위즐링 라이트 동작을 설명하기 위한 도면이다. 도 11에서, 메모리 장치(100, 도 1 참조)의 버스트 길이는 8 데이터 비트로 가정되었으며, 하나의 페이지는 16 데이터 비트들을 저장할 수 있는 공간으로 이루어진 것으로 가정되었다. 도 11에 개시된 하나의 페이지는 설명의 편의를 위하여 프론트 페이지(Page_Front) 및 엔드 페이지(Page_End)로 구성된 것으로 표현되며, 프론트 페이지(Page_Front)와 엔드 페이지(Page_End) 각각은 버스트 길이만큼의 8 데이터 비트들을 저장할 수 있는 공간을 포함하는 것으로 표현된다. 다만, 도 11에 개시된 실시 예는 본 발명의 일 실시 예일뿐, 본 발명을 한정하는 것은 아니다.
도 6을 참조하여 설명된 바와 같이, 스위즐링 회로(128)를 포함하는 본 발명에 따른 메모리 장치(100)는 라이트 동작 시의 오버헤드를 방지할 수 있다. 스위즐링 회로(128)는 버스트 길이에 해당하는 개수만큼의 역다중화기(demuliplexer, DEMUX)를 포함할 수 있다. 역다중화기는 다중화기를 이용하여 구현될 수 있고, 다중화기에서 신호의 입력단은 역다중화기의 신호의 출력단으로, 다중화기에서 신호의 출력단은 역다중화기의 신호의 입력단으로 이용될 수 있다. 도 11에 개시된 제 1 내지 제 8 다중화기들(M1 내지 M8)은 스위즐링 라이트 동작에 있어서, 역다중화기로 동작할 수 있다.
다중화기들(M1 내지 M8) 각각은 메모리 장치(100)에 라이트될 데이터 비트들(d1 내지 d8)이 라이트될 위치를 선별할 수 있다. 데이터 비트들(d1 내지 d8)이 라이트될 위치는 제 1 내지 제 8 스위즐링 핀들(P_SW1 내지 P_SW8)에 인가되는 스위즐링 신호(SW, 도 2 참조)에 의하여 결정될 수 있다. 제 1 내지 제 8 스위즐링 핀들(P_SW1 내지 P_SW8)은 메모리(120, 도 1 참조)에 있어서, RFU로 분류되는 핀들에서 구현될 수 있다.
예로서, 제 1 논리 레벨(예를 들어, 논리'0')의 스위즐링 신호(SW)가 인가되는 경우, 본 발명의 실시 예에 따른 메모리 장치(100)는 프론트 페이지(Page_Front)에 포함된 공간에 데이터 비트를 라이트할 수 있고, 제 2 논리 레벨(예를 들어, 논리 '1')의 스위즐링 신호(SW)가 인가되는 경우, 엔드 페이지(Page_End)에 포함된 공간에 데이터 비트를 라이트할 수 있다. 따라서, 제 1 스위즐링 핀(P_SW1)에 제 1 논리 레벨의 신호가 인가되는 경우, 메모리 장치(100)는 프론트 페이지(Page_Front)에 포함된 제 1 공간(f1) 및 엔드 페이지(Page_End)에 포함된 제 9 공간(e1) 중 프론트 페이지(Page_Front)에 포함된 제 1 공간(f1)에 제 1 데이터 비트(d1)를 라이트 할 수 있다. 한편, 제 2 스위즐링 핀(P_SW2)에 제 2 논리 레벨의 신호가 인가되는 경우, 메모리 장치(100)는 프론트 페이지(Page_Front)에 포함된 제 2 공간(f2) 및 엔드 페이지(Page_End)에 포함된 제 10 공간(e2) 중 엔드 페이지(Page_End)에 포함된 제 10 공간(e2)에 제 2 데이터 비트(d2)를 라이트 할 수 있다.
도 12는 본 발명의 실시 예에 따른 스위즐링 라이트 동작에 의한 결과(Result_SW_WR)들의 예시를 나타내는 도면이다. 도 12의 스위즐링 라이트 동작에 의한 결과(Result_SW_RD)들은 논리 '0'의 스위즐링 신호(SW, 도 2 참조)가 인가되는 경우, 프론트 페이지(Page_Front)에 포함된 공간에 데이터 비트를 라이트 할 수 있고, 논리 '1'의 스위즐링 신호(SW)가 인가되는 경우, 엔드 페이지(Page_End)에 포함된 공간에 데이터 비트를 라이트 할 수 있도록 본 발명의 실시 예에 따른 메모리 장치(100, 도 1 참조)를 설계한 것으로 가정한다. 도 12에 개시된 스위즐링 라이트 동작에 의한 결과(Result_SW_WR)들은 본 발명에 따른 일부 실시 예를 도시한 것에 지나지 않으며, 본 발명에 따른 메모리 장치(100, 도 1 참조)는 설계에 따라 다양한 결과를 도출할 수 있다.
도 12에 개시된 제 1 결과(Ex_a)는 프론트 페이지(Page_Front)에 포함된 제 1내지 제 8 공간(f1 내지 f8)에 데이터 비트들(d1 내지 d8)이 라이트된 것으로, 제 1 내지 제 8 스위즐링 핀(P_SW1 내지 P_SW8, 도 11 참조)에 '00000000'의 신호가 인가된 경우의 결과를 나타낸다. 도 12에 개시된 제 2 결과(Ex_b)는 '01000000'의 신호가 인가된 경우의 결과를 나타내고, 제 3 결과(Ex_c)는 '10001000'의 신호가 인가된 경우의 결과를 나타내고, 제 4 결과(Ex_d)는 '01001010'의 신호가 인가된 경우의 결과를 나타내고, 제 5 결과(Ex_e)는 '11010001'의 신호가 인가된 경우의 결과를 나타낸다. 제 6 결과(Ex_f)는 '11100101'의 신호가 인가된 경우의 결과를 나타내고, 제 7 결과(Ex_g)는 '00111111'의 신호가 인가된 경우의 결과를 나타내고, 제 8 결과(Ex_h)는 '11011111'의 신호가 인가된 경우의 결과를 나타내고, 제 9 결과(Ex_i)는 '11111111'의 신호가 인가된 경우의 결과를 나타낸다.
도 13은 본 발명의 실시 예에 따라 스위즐링 라이트 동작을 수행할 때 이용되는 신호들의 타이밍 도이다. 스위즐링 라이트 동작을 수행함에 있어서, 도 13에 개시된 명령 신호(CMD), 어드레스 신호(ADD), 스위즐링 신호(SW) 및 데이터 신호(DQ)는 컨트롤러(110, 도 1 참조)로부터 메모리(120, 도 1 참조)로 전달될 수 있다. 도 13에 도시되지는 않았으나, 본 발명에 따른 메모리 장치(100, 도 1 참조)는 클럭 신호(미도시), 로우 어드레스 스트로브 신호(미도시), 컬럼 어드레스 스트로브 신호(미도시), 데이터 스트로브 신호(미도시) 등을 구동에 이용할 수 있다. 명령 신호(CMD), 어드레스 신호(ADD), 스위즐링 신호(SW), 데이터 신호(DQ)는 클럭 신호, 로우 어드레스 스트로브 신호, 컬럼 어드레스 스트로브 신호, 데이터 스트로브 신호에 동기될 수 있다.
명령 신호(CMD)는 액티브 신호(ACT) 및 라이트 신호(WR)를 포함할 수 있다. 어드레스 신호(ADD)는 로우 어드레스 신호(RA) 및 컬럼 어드레스 신호(CA)를 포함할 수 있다. 액티브 신호(ACT)가 활성화되면, 액티브 신호(ACT)에 응답하여, 로우 어드레스 신호(RA)가 활성화될 수 있다. 로우 어드레스 신호(RA)에 기반하여, 메모리 장치(100)는 데이터를 라이트할 메모리 셀 어레이의 워드 라인을 선정할 수 있다. 워드 라인이 선정되면, 라이트 신호(WR)가 활성화될 수 있다. 라이트 신호(WR)에 응답하여, 컬럼 어드레스 신호(CA)가 활성화될 수 있다. 컬럼 어드레스 신호(CA)에 기반하여, 데이터를 라이트할 메모리 셀 어레이의 비트 라인이 선정될 수 있다.
본 발명의 실시 예에 있어서, 스위즐링 신호(SW)는 액티브 신호(ACT)에 응답하여 활성화되는 제 1 스위즐링 신호(SW1) 및 라이트 신호(WR)에 응답하여 활성화되는 제 2 스위즐링 신호(SW2) 중 적어도 하나의 형태로 발생할 수 있다. 제 1 스위즐링 신호(SW1) 또는 제 2 스위즐링 신호(SW2)에 기반하여 메모리 장치(100)는 데이터 비트들을 라이트할 저장 공간을 선별할 수 있다. 예로서, 제 1 스위즐링 라이트 신호(SW1) 또는 제 2 스위즐링 라이트 신호(SW2)는 데이터 비트들 각각에 대하여 프론트 페이지(Page_Front, 도 11 참조)에 저장할 지, 엔드 페이지(Page_End, 도 11 참조)에 저장할 지 결정할 수 있다.
명령 신호(CMD), 어드레스 신호(ADD) 및 스위즐링 신호(SW)에 의하여 데이터 비트들이 라이트될 저장 공간들이 선별되면, 컨트롤러(110)는 데이터 신호(DQ)를 발생시켜 메모리(120)로 데이터 비트들을 입력할 수 있다. 도 13에 개시된 데이터 신호(DQ)는 8 데이터 비트들을 포함하는 것으로 도시되었으나, 이는 하나의 실시 예일 뿐, 본 발명을 한정하는 것은 아니다.
도 14는 본 발명의 실시 예에 따른 스위즐링 라이트 동작의 동작 방법을 나타내는 순서도이다. S210 단계에서, 컨트롤러(110, 도 1 참조)는 원하는 공간을 선별하여 데이터 비트들을 라이트 하기 위한 스위즐링 신호(SW, 도 13 참조)를 할당할 수 있다. 예를 들어, 스위즐링 신호(SW)는 논리 '0' 또는 논리 '1'의 신호로 할당될 수 있으며, 프론트 페이지(Page_Front, 도 11 참조)에 포함된 공간을 선별하여 데이터 비트를 라이트 하기 위하여 논리 '0'의 신호가 할당되고, 엔드 페이지(Page_End, 도 11 참조)에 포함된 공간을 선별하여 데이터 비트를 라이트 하기 위하여 논리 '1'의 신호가 할당될 수 있다. 또는, 프론트 페이지(Page_Front)에 포함된 공간을 선별하여 데이터 비트를 라이트 하기 위하여 논리 '1'의 신호가 할당되고, 엔드 페이지(Page_End)에 포함된 공간을 선별하여 데이터 비트를 라이트 하기 위하여 논리 '0'의 신호가 할당될 수 있다.
S220 단계에서, 컨트롤러(110)는 명령 신호(CMD, 도 13 참조), 어드레스 신호(ADD, 도 13 참조) 및 S210 단계에서 할당된 스위즐링 신호(SW)를 메모리(120, 도 1 참조)에 전달할 수 있다. 명령 신호(CMD)는 액티브 신호(ACT, 도 13 참조) 및 라이트 신호(WR)를 포함할 수 있으며, 어드레스 신호(ADD)는 로우 어드레스 신호(RA, 도 13 참조) 및 컬럼 어드레스 신호(CA, 도 13 참조)를 포함할 수 있다. 스위즐링 신호(SW)는 메모리(120)에 스위즐링 회로(128, 도 2 참조)가 포함된 경우 스위즐링 회로(128)로 입력될 수 있고, 메모리(120)에 스위즐링 라이트 회로(128b, 도 3 참조)가 포함된 경우 스위즐링 라이트 회로(128b)로 입력될 수 있다.
S230 단계에서, 메모리(120)는 스위즐링 신호(SW)에 기반하여 데이터 비트를 라이트 할 원하는 공간을 선별하여 추출할 수 있다. 메모리(120)는 S120 단계에서 입력된 어드레스 신호(ADD)에 기반하여 스위즐링 라이트 동작을 수행할 영역을 결정할 수 있다. 메모리(120)는 스위즐링 신호(SW)에 기반하여 스위즐링 라이트 동작을 수행할 영역 내에서 데이터 비트들을 라이트할 공간을 선별할 수 있다.
S240 단계에서, 메모리(120)는 S230 단계에서 선별된 공간에 데이터 비트들을 라이트 할 수 있다. 예를 들어, 스위즐링 신호(SW)에 의하여 제 1 페이지에 포함된 제 1 공간이 선별된 경우, 메모리(120)는 제 1 페이지에 포함된 제 1 공간에 제 1 데이터 비트를 라이트 할 수 있다. 또는, 스위즐링 신호(SW)에 의하여 제 2 페이지에 포함된 제 2 공간이 선별된 경우, 메모리(120)는 제 2 페이지에 포함된 제 2 공간에 제 2 데이터 비트를 라이트 할 수 있다.
도 15는 본 발명의 실시 예에 따른 스위즐링 동작을 지원하는 메모리 모듈(210)을 나타내는 도면이다. 도 15를 참조하면, 메모리 모듈(210)은 컨트롤러(140), 제 1 내지 제 10 메모리 셀들(120a 내지 120j) 및 제 1 내지 제 10 데이터 버퍼(DB0 내지 DB9)를 포함할 수 있다. 제 1 내지 제 10 메모리들(120a 내지 120j)은 DRAM 또는 PRAM과 같은 다양한 메모리들 중 하나로 구현될 수 있다. 제 1 내지 제 10 메모리들(120a 내지 120j)은 도 1 내지 도 14를 참조하여 설명된 메모리(120)에 대응할 수 있다.
제 1 내지 제 10 메모리들(120a 내지 120j)은 제 1 내지 제 10 데이터 버퍼(DB0 내지 DB9)에 각각 대응될 수 있다. 본 발명에 따른 스위즐링 동작을 지원하는 메모리 모듈(210)을 구현함에 있어서, 메모리 모듈(210)에 포함된 메모리들(120a 내지 120j) 및 데이터 버퍼(DB0 내지 DB9) 개수는 도 15에 개시된 바에 한정되지 않으며, 도 15에 도시된 구성요소들 이외의 다른 구성 요소들이 더 포함될 수 있다.
컨트롤러(140)는 상술한 도 1 내지 도 14를 참조하여 설명된 컨트롤러(110)에 대응할 수 있다. 또는, 컨트롤러(140)는 상술한 도 1 내지 도 14를 참조하여 설명된 외부의 컨트롤러(110)에 의하여 제어되는 RCD를 포함할 수있다. RCD는 외부의 컨트롤러(110)의 명령에 따라 메모리 모듈(210)을 제어할 수 있다. 컨트롤러(140)는 외부의 호스트 장치로부터 명령 신호(CMD) 및 어드레스 신호(ADD)를 수신할 수 있다. 컨트롤러(140)는 외부의 호스트 장치로부터 수신한 명령 신호(CMD) 및 어드레스 신호(ADD)를 버퍼링할 수 있다. 또한, 컨트롤러(140)는 버퍼링된 명령 신호(CMD) 및 어드레스 신호(ADD)를 제 1 내지 제 10 메모리들(120a 내지 120j)에 전달할 수 있다. 또한, 컨트롤러(140)는 메모리 모듈(210)의 스위즐링 동작을 위한 스위즐링 신호(SW)를 제 1 내지 제 10 메모리 들(120a 내지 120j)에 전달할 수 있다.
컨트롤러(140)로부터 전달된 스위즐링 신호(SW)에 기반하여 제 1 내지 제 10 메모리들(120a 내지 120j)에서 스위즐링 동작이 각각 수행될 수 있다. 스위즐링 리드 동작이 수행되는 경우, 제 1 내지 제 10 메모리들 (120a 내지 120j)에서 추출된 데이터 비트들은 각각 제 1 내지 제 10 메모리들(120a 내지 120j)에 대응되는 제 1 내지 제 10 데이터 버퍼(DB0 내지 DB9)로 전달되어 데이터 신호(DQ)를 통해 외부로 출력될 수 있다. 스위즐링 라이트 동작이 수행되는 경우, 외부로부터 각각의 제 1 내지 제 10 데이터 버퍼(DB0 내지 DB9)를 통하여 데이터 신호(DQ)가 수신될 수 있다. 제 1 내지 제 10 데이터 버퍼(DB0 내지 DB9)로 수신된 데이터 신호(DQ)는 제 1 내지 제 10 데이터 버퍼(DB0 내지 DB9)와 대응되는 제 1 내지 제 10 메모리들(120a 내지 120j)에 각각 전달될 수 있다. 데이터 신호(DQ)에 포함된 데이터 비트들은 제 1 내지 제 10 메모리들(120a 내지 120j)에서 선별된 공간에 라이트될 수 있다.
도 16a는 본 발명의 또 다른 실시 예에 따른 스위즐링 동작을 지원하는 PRAM 메모리 모듈(220)을 나타내는 도면이다. 도 16a를 참조하면, PRAM 메모리 모듈(220)은 제 1 내지 제 9 메모리 셀 어레이(PRAM0 내지 PRAM8)를 포함할 수 있다. 제 1 내지 제 8 메모리 셀 어레이(PRAM0 내지 PRAM7)는 각각 제 1 데이터 비트(DATA α)가 저장될 수 있는 제 1 페이지(page_1) 및 제 2 데이터 비트(DATA β)가 저장될 수 있는 제 2 페이지(page_2)를 포함할 수 있다. 제 9 메모리 셀 어레이(PRAM8)는 제 1 패리티 비트(Parity α) 및 제 1 라이트 카운트 비트(Write Count α)가 저장될 수 있는 제 1 페이지(Page_1) 및 제 2 패리티 비트(Parity β) 및 제 2 라이트 카운트 비트(Write Count β)가 저장될 수 있는 제 2 페이지(Page_2)를 포함할 수 있다.
도시되지 않았으나, 도 16a에 개시된 PRAM 메모리 모듈(220)은 도 15에 개시된 DRAM 메모리 모듈(220)과 유사하게, 외부로부터 명령 신호(CMD), 어드레스 신호(ADD) 및 스위즐링 신호(SW)를 수신할 수 있다. 본 발명의 실시 예에 따른 PRAM 메모리 모듈(220)의 스위즐링 동작 수행 방식은 본 명세서에서 상술한 바와 동일한 원리가 적용될 수 있다.
도 16b는 도 16a에 개시된 PRAM 메모리 모듈(220, 도 16a 참조)에서 웨어-레벨링(Wear-leveling)에 필요한 라이트 카운트를 업데이트 하기 위하여 PRAM 메모리 모듈(220)에 대한 리드 동작이 수행됨과 동시에, 본 발명에 따른 스위즐링 동작에 기반하여 방어 코드를 추가적으로 수행하는 방법을 나타내는 순서도이다. 웨어-레벨링이란, 특정 블록의 과도한 사용을 방지하기 위하여 각 블록의 사용 횟수를 카운트 하여 가장 낮은 사용 횟수를 가지는 블록에 우선적으로 새로운 데이터를 기록하는 동작을 의미한다.
웨어-레벨링을 수행하는 메모리 장치(100, 도 1 참조)는 라이트 동작을 수행하기 위한 명령 신호(CMD, 도 1 참조)가 수신되는 경우, PRAM 메모리 모듈(220)에 저장된 라이트 카운트 비트(Write Count α 또는 Write Count β, 도 16a 참조)를 선행하여 리드하여야 한다. PRAM 메모리 모듈(220)에서, 본 발명에 따른 스위즐링 동작이 수행되지 않는다면, 제 1 라이트 카운트 비트(Write Count α)를 리드하기 위하여 제 1 내지 제 8 PRAM 메모리 셀 어레이(PRAM0 내지 PRAM7)에 각각 포함된 제 1 페이지(Page_1)의 제 1 데이터 비트(DATA α), 제 9 PRAM 메모리 셀 어레이(PRAM8)에 포함된 제 1 패리티 비트(Parity α) 및 제 1 라이트 카운트 비트(Write Count α)를 모두 리드한 후, 제 1 라이트 카운트 비트(Write Count α)만을 추출하여 이용하여야 한다. 라이트 카운트 비트(Write Count α 또는 Write Count β)는 웨어-레벨링에 사용될 수 있다. 웨어-레벨링을 수행함에 있어서, 제 1 데이터 비트(DATA α) 및 제 1 패리티 비트(Parity α)는 웨어-레벨링 수행에 불필요한 데이터에 해당한다. 다시 말하면, 스위즐링 동작이 수행되지 않는 경우 불필요한 데이터까지 리드하는 오버헤드가 발생한다.
반면, PRAM 메모리 모듈(220)에서, 본 발명에 따른 스위즐링 동작이 수행되는 경우 상술한 오버헤드의 발생을 방지할 수 있다. 도 16b를 참조하면, S1010 단계에서, 본 발명에 따른 메모리 장치(100)는 제 1 내지 제 8 PRAM 메모리 셀(PRAM0 내지 PRAM7)에 각각 포함된 제 1 페이지(Page_1)에 제 1 데이터 비트(Data α)를 라이트 하기 위한 명령을 요청할 수 있다.
S1020 단계에서, 명령에 기반한 활성화 신호(ACT, 도 9 또는 도 13 참조)가 발생할 수 있다. 웨어-레벨링 동작을 수행하기 위하여 제 1 라이트 카운트 비트(Write Count α)를 리드하여야 하므로, 활성화 신호(ACT)는 리드 명령에 기반한 신호일 수 있다.
S1030 단계에서, 오버헤드의 발생을 방지하기 위하여 PRAM 메모리 모듈(220)은 스위즐링 리드 동작을 수행할 수 있다. 스위즐링 리드 동작에 의하여, PRAM 메모리 모듈(220)은 웨어-레벨링을 위하여 요구되는 제 1 라이트 카운트 비트(Write Count α)를 선별적으로 리드하고, 동시에 다른 동작을 수행하기 위하여 필요한 데이터 비트들을 선별적으로 리드할 수 있다. 예로서, 다른 동작은 오류 검출 정정(Error detection and correcrion) 동작일 수 있다. 메모리 장치(100)는 오류 검출 정정을 위하여 오류 수정 코드(Error Correction Code, ECC)를 이용할 수 있다.
메모리 장치(100)는 스위즐링 리드 동작에 의하여, S1040a 단계에서 제 1 라이트 카운트 비트(Write Count α)를 리드할 수 있고, S1040b 단계에서 제 1 내지 제 8 PRAM 메모리 셀 어레이(PRAM0 내지 PRAM7)에 각각 포함된 제 2 페이지(Page_2)의 제 2 데이터 비트(Data β)를 리드할 수 있고, S1040c 단계에서 제 9 PRAM 메모리 셀 어레이(PRAM8)에 포함된 제 2 패리티 비트(Parity β)를 리드할 수 있다. S1040a 내지 S1040c 단계는 병렬적으로 수행될 수 있으며, S1040b 및 S1040c 단계는 오류 검출 정정 동작을 위한 절차에 해당할 수 있다.
S1050 단계에서, 메모리 장치(100)는 제 1 데이터 비트(Data α) 및 제 1 패리티 비트(Parity α)를 라이트 하기 위하여 제 1 라이트 카운트 비트(Write Count α)를 갱신할 수 있다. S1060a 단계에서, 메모리 장치(100)는 제 1 내지 제 8 PRAM 메모리 셀 어레이(PRAM0 내지 PRAM7)에 포함된 각각의 제 1 페이지(Page_1)에 라이트 할 새로운 제 1 데이터 비트(Data α)에 대한 데이터 신호(DQ, 도 1 참조)를 생성할 수 있다. S1060b 단계에서, 메모리 장치(100)는 제 9 PRAM 메모리 셀 어레이(PRAM8)에 포함된 제 1 페이지(Page_1)에 라이트 할 새로운 제 1 패리티 비트(Parity α)에 대한 데이터 신호(DQ)를 생성 할 수 있다. S1050 단계, S1060a 단계 및 S1060b 단계는 순차적으로 수행될 수 있으나, 병렬적으로 동시에 수행될 수 있다.
S1070 단계에서, 메모리 장치(100)는 S1050 단계에서 갱신된 제 1 라이트 카운트 비트(Write Count α), S1060a 및 S1060b 단계에서 생성된 데이터 신호(DQ)가 포함하는 새로운 제 1 데이터 비트(Data α) 및 새로운 제 1 패리티 비트(Parity α)를 PRAM 메모리 모듈(220)에 포함된 제 1 내지 제 9 PRAM 메모리 셀 어레이(PRAM0 내지 PRAM8)에 라이트 할 수 있다. S1070 단계가 수행되면, 절차는 S1100 단계로 진행될 수 있다.
한편, S1080 단계에서, 메모리 장치(100)는 S1040b 단계 및 S1040c 단계에서 리드한 제 2 데이터 비트(Data β) 및 제 2 패리티 비트(Parity β)에 대한 오류 검출 정정 동작을 수행할 수 있다. S1090a 단계에서, 제 2 데이터 비트(Data β)에 오류가 발생한 것으로 판단되는 경우, 메모리 장치(100)는 제 2 데이터 비트(Data β)에서 검출된 오류를 정정할 수 있다. S1090b 단계에서, 제 2 패리티 비트(Parity β)에 오류가 발생한 것으로 판단되는 경우, 메모리 장치(100)는 제 2 패리티 비트(Parity β)에서 검출된 오류를 정정할 수 있다.
S1090a 단계 및 S1090b 단계는 병렬적으로 수행될 수 있으며, 제 2 데이터 비트(Data β)에만 오류가 발생한 것으로 판단되는 경우 S1090a 단계는 수행되나 S1090b 단계는 생략될 수 있고, 제 2 패리티 비트(Parity β)에만 오류가 발생한 것으로 판단되는 경우 S1090b 단계는 수행되나 S1090a 단계는 생략될 수 있다. 제 2 데이터 비트(Data β) 및 제 2 패리티 비트(Parity β)에 모두 오류가 발생하지 않은 것으로 판단되는 경우 S1090a 단계 및 S1090b 단계는 모두 생략될 수 있다. S1090 단계 및 S1090b 단계가 수행되면, 절차는 S1100 단계로 진행될 수 있다.
S1100 단계에서, 메모리 장치(100)는 제 2 데이터 비트(Data β) 및 제 2 패리티 비트(Parity β)에 포함된 오류가 정정되었는지 여부를 판단할 수 있다. 제 2 데이터 비트(Data β) 및 제 2 패리티 비트(Parity β)에 포함된 오류가 정정된 것으로 판단되는 경우, 절차는 S1110 단계로 진행할 수 있다. 또는, 제 2 데이터 비트(Data β) 및 제 2 패리티 비트(Parity β)에 포함된 오류가 정정되지 않은 것으로 판단되는 경우, 절차는 S1120 단계로 진행될 수 있다.
S1110 단계에서, 메모리 장치(100)는 오류가 정정된 새로운 제 2 데이터 비트(Data β) 및 제 2 패리티 비트(Parity β)를 제 1 내지 제 9 PRAM 메모리 셀 어레이(PRAM0 내지 PRAM8)에 라이트 할 수 있다. S1110 단계가 수행되면, 절차는 S1120 단계로 진행될 수 있다. S1120 단계에서, 메모리 장치(100)는 제 1 내지 제 9 PRAM 메모리 셀 어레이(PRAM0 내지 PRAM8)에 대한 라이트 동작이 완료되었는지 여부를 확인하고, 절차를 종료할 수 있다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함될 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100 : 메모리 장치(Memory Device)
110 : 컨트롤러(Controller)
120 : 메모리(Memory)

Claims (10)

  1. 컨트롤러가 메모리 장치에 대한 액세스를 수행하는 방법에 있어서,
    상기 컨트롤러로부터 상기 메모리 장치로, 제 1 명령 신호, 제 1 어드레스 신호 및 제 1 스위즐링 신호를 전송하는 단계;
    상기 제 1 명령 신호 및 상기 제 2 어드레스 신호에 기반하여 상기 메모리 장치의 메모리 셀 어레이에 저장된 제 1 데이터 비트들을 선택하는 단계; 및
    상기 메모리 장치로부터 컨트롤러로, 상기 제 1 스위즐링 신호에 기반하여 상기 제 1 데이터 비트들 중 일부 데이터 비트들을 순차적으로 버스트 출력하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 버스트 출력된 데이터 비트들을 재배열하는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 컨트롤러로부터 상기 메모리 장치로, 제 2 명령 신호, 제 2 어드레스 신호, 제 2 스위즐링 신호 및 제 2 데이터 비트들을 전송하는 단계; 및
    상기 메모리 장치에서, 상기 제 2 어드레스 신호에 대응하는 메모리 셀들 중에서 상기 제 2 스위즐링 신호에 기반하여 선택된 일부 메모리 셀들에 상기 제 2 데이터 비트들을 순차적으로 버스트 라이트 하는 단계를 더 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 컨트롤러는 외부의 호스트 장치로부터 제 3 어드레스 신호를 수신하고, 상기 제 1 어드레스 신호 및 상기 제 1 스위즐링 신호, 또는 상기 제 2 어드레스 신호 및 상기 제 2 스위즐링 신호를 출력하는 방법.
  5. 제 3 항에 있어서,
    상기 컨트롤러는 외부의 호스트 장치로부터 상기 제 1 스위즐링 신호 및 상기 제 2 스위즐링 신호를 수신하는 단계를 더 포함하는 방법.
  6. 제 3 항에 있어서,
    상기 제 2 데이터 비트들에 대한 라이트 요구가 발생하는 것에 응답하여 상기 컨트롤러에 의하여 상기 메모리 장치로 리드 요청을 전송하는 단계를 더 포함하고,
    상기 제 1 데이터 비트들 중 일부 데이터 비트들을 순차적으로 버스트 출력하는 단계는, 상기 제 2 데이터 비트들의 라이트 카운트, 상기 제 1 데이터 비트들 및 상기 제 1 데이터 비트들의 패리티 비트들을 출력하는 단계를 포함하고,
    상기 방법은, 상기 컨트롤러에 의하여, 상기 제 1 데이터 비트들 및 상기 제 1 데이터 비트들의 패리티 비트들에 기반하여, 상기 제 1 데이터 비트들에 대한 오류 검출 및 정정 동작을 수행하는 단계를 더 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 오류 검출 및 정정 동작에 의하여, 상기 제 1 데이터 비트들 중 적어도 하나의 데이터 비트가 정정되는 것에 응답하여, 상기 정정된 적어도 하나의 데이터 비트를 상기 메모리 장치에 라이트 하는 단계를 더 포함하는 방법.
  8. 복수의 메모리 셀들을 포함하는 메모리 셀 어레이; 및
    제 1 명령 신호, 제 1 어드레스 신호 및 제 1 스위즐링 신호를 수신하고, 상기 제 1 명령 신호 및 상기 제 1 어드레스 신호에 기반하여 상기 복수의 메모리 셀 어레이에 저장된 제 1 데이터 비트들을 선택하고, 상기 제 1 데이터 비트들 중 상기 제 1 스위즐링 신호에 대응하는 일부 데이터 비트들을 순차적으로 버스트 출력하는 주변 회로를 포함하는 메모리 장치.
  9. 제 8 항에 있어서,
    상기 주변 회로는 제 2 명령 신호, 제 2 어드레스 신호, 제 2 스위즐링 신호 및 제 2 데이터 비트들을 수신하고, 상기 제 2 어드레스 신호에 대응하는 메모리 셀들 중에서 상기 제 2 스위즐링 신호에 기반하여 선택된 일부 메모리 셀들에 상기 제 2 데이터 비트들을 라이트 하는 메모리 장치.
  10. 복수의 메모리 셀 어레이를 포함하는 메모리; 및
    상기 메모리와 데이터 신호를 교환하고, 상기 메모리의 동작을 제어하는 컨트롤러를 포함하되,
    상기 메모리는:
    상기 컨트롤러로부터 제 1 명령 신호, 제 1 어드레스 신호 및 제 1 스위즐링 신호를 수신하고,
    상기 제 1 어드레스 신호에 대응하는 메모리 셀들 중에서, 상기 제 1 스위즐링 신호에 기반하여 선택된 일부 메모리 셀들에 상기 데이터 신호에 포함된 제 1 데이터 비트들을 순차적으로 버스트 라이트 하는 메모리 시스템.
KR1020200112063A 2020-09-03 2020-09-03 반도체 메모리 장치 및 그것의 동작 방법 KR20220031776A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200112063A KR20220031776A (ko) 2020-09-03 2020-09-03 반도체 메모리 장치 및 그것의 동작 방법
US17/318,234 US11742046B2 (en) 2020-09-03 2021-05-12 Semiconductor memory device and operation method of swizzling data
EP21194173.7A EP3965106B1 (en) 2020-09-03 2021-08-31 Semiconductor memory device and operation method thereof
CN202111021516.0A CN114138174A (zh) 2020-09-03 2021-09-01 半导体存储器件及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200112063A KR20220031776A (ko) 2020-09-03 2020-09-03 반도체 메모리 장치 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20220031776A true KR20220031776A (ko) 2022-03-14

Family

ID=80358915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200112063A KR20220031776A (ko) 2020-09-03 2020-09-03 반도체 메모리 장치 및 그것의 동작 방법

Country Status (3)

Country Link
US (1) US11742046B2 (ko)
KR (1) KR20220031776A (ko)
CN (1) CN114138174A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11621049B2 (en) * 2020-09-30 2023-04-04 Micron Technology, Inc. Detect whether die or channel is defective to confirm temperature data

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5269001A (en) 1989-07-28 1993-12-07 Texas Instruments Incorporated Video graphics display memory swizzle logic circuit and method
US5960453A (en) * 1996-06-13 1999-09-28 Micron Technology, Inc. Word selection logic to implement an 80 or 96-bit cache SRAM
US6370668B1 (en) 1999-07-23 2002-04-09 Rambus Inc High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes
US20080082763A1 (en) 2006-10-02 2008-04-03 Metaram, Inc. Apparatus and method for power management of memory circuits by a system or component thereof
JP5195140B2 (ja) 2008-08-06 2013-05-08 富士通セミコンダクター株式会社 半導体メモリおよびメモリシステム
JP5309889B2 (ja) * 2008-10-27 2013-10-09 ソニー株式会社 データ処理装置および方法、並びにプログラム
US8595428B2 (en) 2009-12-22 2013-11-26 Intel Corporation Memory controller functionalities to support data swizzling
JP2011175563A (ja) * 2010-02-25 2011-09-08 Elpida Memory Inc データ処理システム及びその制御方法
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US9361116B2 (en) 2012-12-28 2016-06-07 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US9053025B2 (en) 2012-12-28 2015-06-09 Intel Corporation Apparatus and method for fast failure handling of instructions
US20140189333A1 (en) 2012-12-28 2014-07-03 Oren Ben-Kiki Apparatus and method for task-switchable synchronous hardware accelerators
KR102126760B1 (ko) 2014-04-07 2020-06-25 삼성전자 주식회사 비휘발성 메모리 장치의 구동 방법
US9812183B2 (en) 2016-03-04 2017-11-07 Adesto Technologies Corporation Read latency reduction in a memory device
KR101952827B1 (ko) * 2018-06-29 2019-02-27 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
US11474897B2 (en) * 2019-03-15 2022-10-18 Nvidia Corporation Techniques for storing data to enhance recovery and detection of data corruption errors

Also Published As

Publication number Publication date
CN114138174A (zh) 2022-03-04
US11742046B2 (en) 2023-08-29
US20220068424A1 (en) 2022-03-03

Similar Documents

Publication Publication Date Title
US7643334B1 (en) High-speed controller for phase-change memory peripheral device
US7800940B2 (en) Semiconductor memory device and writing method thereof
US20210019075A1 (en) Systems and methods for writing zeros to a memory array
US9001607B2 (en) Method and design for high performance non-volatile memory
KR101476773B1 (ko) 가변 저항 메모리 장치를 포함하는 반도체 메모리 장치 및메모리 시스템
KR101942275B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US9153308B2 (en) Magnetic random access memory device
US20120155162A1 (en) Semiconductor storage apparatus or semiconductor memory module
US9224441B2 (en) Nonvolatile memory device using variable resistive element and memory system having the same
KR20220031776A (ko) 반도체 메모리 장치 및 그것의 동작 방법
KR20140096840A (ko) 저항체를 이용한 비휘발성 메모리 장치 및 그 구동 방법
CN109508305B (zh) 存储器装置和包括存储器装置的存储器系统
KR102030326B1 (ko) 비휘발성 메모리 장치 및 그 구동 방법
KR100919556B1 (ko) 상 변화 메모리 장치
EP3965106B1 (en) Semiconductor memory device and operation method thereof
KR20190047451A (ko) 저항 변화 메모리 장치를 구비한 반도체 메모리 시스템 및 그 구동 방법
KR102452623B1 (ko) 기입 레이턴시를 줄일 수 있는 저항성 메모리 장치의 동작 방법
US9921782B2 (en) Memory device for emulating dynamic Random access memory (DRAM)
KR101194896B1 (ko) 비휘발성 메모리 장치
CN111210856A (zh) 半导体存储装置
WO2023025311A1 (zh) 一种sfgt存储阵列、存储芯片和读取数据的方法
KR102506790B1 (ko) 반도체 장치 및 이를 포함하는 시스템
US9117517B2 (en) Non-volatile semiconductor device and method for controlling the same
KR20100054418A (ko) 상 변화 메모리 장치