KR102025340B1 - 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템 - Google Patents

불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템 Download PDF

Info

Publication number
KR102025340B1
KR102025340B1 KR1020120135558A KR20120135558A KR102025340B1 KR 102025340 B1 KR102025340 B1 KR 102025340B1 KR 1020120135558 A KR1020120135558 A KR 1020120135558A KR 20120135558 A KR20120135558 A KR 20120135558A KR 102025340 B1 KR102025340 B1 KR 102025340B1
Authority
KR
South Korea
Prior art keywords
data
ecc
block
blocks
parity
Prior art date
Application number
KR1020120135558A
Other languages
English (en)
Other versions
KR20140067819A (ko
Inventor
권영준
최기영
권혁만
김선겸
안준환
Original Assignee
삼성전자 주식회사
서울대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사, 서울대학교 산학협력단 filed Critical 삼성전자 주식회사
Priority to KR1020120135558A priority Critical patent/KR102025340B1/ko
Priority to US13/790,113 priority patent/US9250997B2/en
Publication of KR20140067819A publication Critical patent/KR20140067819A/ko
Priority to US14/978,538 priority patent/US9552256B2/en
Application granted granted Critical
Publication of KR102025340B1 publication Critical patent/KR102025340B1/ko

Links

Images

Classifications

    • 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
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • 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/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/14Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using thin-film elements
    • G11C11/15Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using thin-film elements using multiple magnetic layers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1653Address circuits or decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1677Verifying circuits or methods
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템이 개시된다. 본 발명의 일 실시예에 따른 캐쉬 메모리는, 데이터를 저장하는 다수의 데이터 블록들을 포함하는 제1 저장 영역 및 n 개의 데이터 블록들에 대응하여 배치되는 m 개의 ECC 블록을 포함하는 제2 저장 영역을 구비하고, 상기 제1 및 제2 저장 영역 각각은 불휘발성 메모리 셀들을 포함하며, 적어도 하나의 ECC 블록은, 대응하는 데이터 블록의 에러 비트를 정정하기 위한 ECC 패리티 및 상기 대응하는 데이터 블록의 위치를 나타내는 제1 정보를 저장하는 것을 특징으로 한다.

Description

불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템{Semiconductor memory device including non-volatile memory and Cache memory and Computer systam having the same}
본 발명은 반도체 메모리 장치에 관한 것으로서, 특히 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템에 관한 것이다.
반도체 메모리 장치로서 불휘발성 메모리 장치는 데이터를 불휘발성하게 저장하는 메모리이다. 불휘발성 메모리 장치의 일예로서, 자기 랜덤 억세스 메모리(Magnetic Random Access Memory, MRAM) 장치는 데이터를 불휘발성하게 저장함과 함께 빠른 억세스 속도를 갖는다. 반도체 메모리 장치는 집적도를 향상함과 함께 빠른 억세스 속도 및 데이터의 신뢰성을 향상할 필요가 있다.
MRAM 장치의 빠른 억세스 속도를 감안할 때, MRAM 장치는 시스템 메모리 등 중요 데이터를 저장하는 데 이용될 가능성이 존재한다. 이에 따라 MRAM 장치는 빠른 억세스 속도를 유지하면서 데이터의 신뢰성을 향상할 필요가 있다.
본 발명의 목적은 집적도가 저하되는 문제를 감소하면서 데이터의 억세스 속도 및 데이터 신뢰성을 향상할 수 있는 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 캐쉬 메모리는, 데이터를 저장하는 다수의 데이터 블록들을 포함하는 제1 저장 영역 및 n 개의 데이터 블록들에 대응하여 배치되는 m 개의 ECC 블록을 포함하는 제2 저장 영역을 구비하고, 상기 제1 및 제2 저장 영역 각각은 불휘발성 메모리 셀들을 포함하며, 적어도 하나의 ECC 블록은, 대응하는 데이터 블록의 에러 비트를 정정하기 위한 ECC 패리티 및 상기 대응하는 데이터 블록의 위치를 나타내는 제1 정보를 저장하는 것을 특징으로 한다.
한편, 본 발명의 다른 실시예에 따른 캐쉬 메모리는, 외부로부터의 어드레스에 응답하여 어드레싱되는 다수의 세트를 포함하고, 각각의 세트는 데이터를 저장하는 n 개의 데이터 블록과 상기 n 개의 데이터 블록에 의해 공유되는 m 개의 ECC 블록을 포함하며, 각각의 데이터 블록과 ECC 블록은 불휘발성 메모리 셀들을 포함하는 셀 어레이 및 독출 요청되는 데이터 블록에 대응하는 ECC 블록의 존재 여부에 따라 선택적으로 에러 정정 동작을 수행하는 ECC 부를 구비하는 것을 특징으로 한다.
한편, 본 발명의 일 실시예에 따른 셀 어레이를 포함하는 캐쉬 메모리의 동작방법에 있어서, 상기 셀 어레이는 불휘발성 메모리 셀들을 포함하고, n 개의 데이터 블록마다 m 개의 ECC 블록이 배치되며(단, m 은 n 보다 작은 자연수), 기록 요청에 응답하여 제1 데이터를 상기 n 개의 데이터 블록 중 선택된 제1 데이터 블록에 기록하는 단계와, 상기 제1 데이터 블록에 기록된 제1 데이터를 독출하여 에러 비트를 검출하는 단계 및 상기 검출 결과에 따라, 상기 제1 데이터 블록에 대응하는 ECC 패리티를 상기 m 개의 ECC 블록 중 선택된 제1 ECC 블록에 기록하는 단계를 구비하는 것을 특징으로 한다.
한편, 본 발명의 다른 실시예에 따른 셀 어레이를 포함하는 캐쉬 메모리의 동작방법에 있어서, 상기 셀 어레이는 불휘발성 메모리 셀들을 포함하고, n 개의 데이터 블록마다 m 개의 ECC 블록이 배치되며(단, m 은 n 보다 작은 자연수), 기록 요청에 응답하여 기록 데이터를 상기 n 개의 데이터 블록 중 선택된 제1 데이터 블록에 기록하는 단계와, 상기 기록 데이터를 독출하여 에러 비트를 검출하는 단계 및 상기 기록 데이터에 정정 불가능한 에러 비트가 존재함에 따라, 상기 기록 데이터에 대한 재기록, 재독출 및 재검출 동작을 적어도 1회 반복하는 단계를 구비하고, 상기 반복하는 단계는, 상기 기록 데이터에 에러 비트가 존재하지 않거나 정정 가능한 에러 비트가 존재할 때까지 반복되는 것을 특징으로 한다.
한편, 본 발명의 일 실시예에 따른 엠램 메모리 장치는, MRAM 셀들을 포함하는 다수의 데이터 블록들 및 다수의 ECC 블록들을 포함하는 MRAM 셀 어레이와, 상기 MRAM 셀 어레이의 로우를 선택하는 로우 디코더 및 상기 MRAM 셀 어레이의 컬럼을 선택하는 컬럼 디코더를 구비하고, 상기 ECC 블록들은 상기 데이터 블록들보다 적은 개수를 가지며, 선택된 데이터 블록에 기록된 데이터에 정정 가능한 에러 비트가 존재할 때 상기 데이터에 대응하는 ECC 패리티가 상기 ECC 블록에 기록되는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템은, 데이터 기록시 정정 가능한 에러 비트 발생시에 기록 동작을 반복 수행하지 않으므로 데이터 기록 동작에 소요되는 시간을 감소시킬 수 있을 뿐 아니라, 에러 정정에 이용되는 ECC 패리티를 저장하기 위한 공간을 감소시킬 수 있으므로 집적도를 향상할 수 있는 효과가 있다.
도 1은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타내는 블록도이다.
도 2a,b는 도 1의 컴퓨터 시스템 내에서의 캐쉬 메모리의 구현예를 나타내는 블록도이다.
도 3은 도 1의 캐쉬 메모리가 포함하는 MRAM의 일 구현예를 나타내는 블록도이다.
도 4는 도 3의 MRAM 장치의 구체적인 구현 예를 나타내는 블록도이다.
도 5는 MRAM 셀의 구현 예를 나타내는 도면이다.
도 6a,b은 도 1의 메인 메모리와 캐쉬 메모리사이의 맵핑 동작의 일예를 나타내는 블록도이다.
도 7은 도 4의 MRAM의 ECC 동작의 일 예를 나타내는 블록도이다.
도 8은 도 7의 데이터 영역 및 ECC 영역의 구조의 일예를 나타내는 도면이다.
도 9는 데이터 영역 및 ECC 영역에 저장된 정보의 일예를 나타내는 도면이다.
도 10은 본 발명의 일실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 11은 본 발명의 실시예에 따른 캐쉬 메모리의 데이터 독출 동작을 나타내는 블록도이다.
도 12는 본 발명의 다른 실시예에 따른 반도체 메모리 장치의 동작방법을 나타내는 플로우차트이다.
도 13a,b은 본 발명의 실시예에 따른 캐쉬 메모리의 동작을 위한 MRAM의 구현 예를 나타내는 블록도이다.
도 14a,b는 본 발명의 캐쉬 메모리의 다른 구현예를 나타내는 블록도이다.
도 15a,b,c는 본 발명의 다른 실시예에 따른 MRAM 장치의 구현 예를 나타내는 블록도이다.
도 16a,b는 본 발명의 일 실시예에 따른 MRAM 시스템을 나타내는 블록도이다.
도 17은 본 발명의 다른 실시예에 따른 컴퓨터 시스템를 나타내는 블록도이다.
도 18은 본 발명의 또 다른 실시예에 다른 캐쉬 메모리를 나타내는 블록도이다.
도 19는 본 발명의 다른 실시예에 따른 캐쉬 메모리의 동작방법을 나타내는 플로우차트이다.
도 20a,b는 본 발명의 또 다른 실시예에 따른 캐쉬 메모리의 동작방법을 나타내는 플로우차트이다.
도 21은 본 발명의 실시예에 따른 캐쉬 메모리의 동작을 위한 MRAM의 다른 구현 예를 나타내는 블록도이다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타내는 블록도이다. 도 1에 도시된 바와 같이, 모바일 기기나 데스크 톱 컴퓨터 등의 컴퓨터 시스템(100)은 시스템 버스(160)에 전기적으로 연결되는 캐쉬 메모리(110), 모뎀(120), 유저 인터페이스(130), 메인 메모리(140) 및 중앙 처리장치(150)를 구비할 수 있다. 캐쉬 메모리(110)는 메인 메모리(140)에 저장된 데이터의 일부를 임시 저장하는 메모리로서, 프로그램이 수행될 때 나타나는 지역성(locality)을 이용하여 메인 메모리(140)나 디스크(미도시)에서 사용되었던 데이터를 빠르게 접근할 수도록 하는 메모리이다.
컴퓨터 시스템(100)에 요구되는 메인 메모리(140)나 캐쉬 메모리(110)에 본 발명의 실시예에 따른 반도체 메모리 장치가 적용될 수 있다. 예컨대, 반도체 메모리 장치로서 데이터를 불휘발성하게 저장하는 불휘발성 메모리 장치가 적용될 수 있으며, 또한, 불휘발성 메모리 장치는 상변화 물질을 이용하는 PRAM(Phase change Random Access Memory), 전이금속산화물(Complex Metal Oxides) 등의 가변 저항 물질을 이용한 RRAM(Resistive Random Access Memory), 강자성체 물질을 이용한 MRAM(Magnetic Random Access Memory) 및 강 유전체 커패시터를 이용한 FRAM(Ferroelectric Random Access Memory) 등의 메모리 장치가 적용될 수 있다.
이하에서는, 불휘발성 메모리 장치로서 MRAM이 적용된 예, 또는 스핀 토크 전달 MRAM(Spin Torque Transfer MRAM, STT-MRAM)이 적용된 예가 설명될 것이나, 본 발명의 실시예는 이에 국한될 필요는 없으며 전술한 다양한 불휘발성 메모리 장치가 적용되어도 무방하다. 또한, 메인 메모리(140)나 캐쉬 메모리(110)에 적용되는 MRAM은 MRAM 셀 어레이를 포함하는 MRAM 장치와 이를 컨트롤하기 위한 MRAM 컨트롤러를 포함할 수 있다. 이에 따라, 본 발명의 실시예에서 설명되는 메인 메모리(140)나 캐쉬 메모리(110)는, MRAM 장치와 컨트롤러를 포함하는 MRAM 시스템으로 구현되는 것으로 설명되어도 무방하다. 또는, 메인 메모리(140)나 캐쉬 메모리(110)는 MRAM 셀 어레이를 포함하는 MRAM 장치로 구현되고, MRAM 장치를 제어하기 위한 컨트롤러의 기능은 중앙 처리장치(150)에 구비되어도 무방하다. 이하에서는, 메인 메모리(140)나 캐쉬 메모리(110)가 MRAM을 포함하는 것으로 설명될 것이며, 상기 MRAM은 MRAM 장치를 지칭하거나 또는 MRAM 시스템을 지칭할 수 있다.
MRAM은 불휘발성 메모리 중 억세스 속도가 빠르므로 컴퓨터 시스템(100) 내에서 메인 메모리나 캐쉬 메모리로 활용될 가능성이 높다. MRAM의 집적도가 높아질수록 MRAM 셀의 크기가 줄어들 수 있으며, 이에 대응하여 기록 동작시 기록 전압의 레벨 또한 낮아질 수 있다. MRAM이 메인 메모리나 캐쉬 메모리로 이용될 경우 기록 동작에서의 신뢰도를 향상할 필요가 있으며, 신뢰도 향상을 위한 정책으로서 에러 정정 코드(Error Correction Code)를 이용한 데이터 에러 정정이 이용될 수 있다. ECC 정책을 이용하는 경우, 소정 단위(예컨대, ECC 단위)의 데이터에 대해 ECC 패리티를 산출하고, 데이터와 ECC 패리티를 함께 MRAM의 셀 어레이에 저장한다. 이후 독출 동작시 MRAM의 셀 어레이에 저장된 ECC 패리티를 이용하여 에러 정정 동작을 수행함에 의해 에러 비트가 정정될 수 있다.
본 발명의 실시예에 따른 MRAM은 MRAM 셀 어레이를 포함하며, MRAM 셀 어레이는 데이터를 저장하는 영역(이하, 데이터 영역)과 상기 데이터에 대응하는 ECC 패리티를 저장하는 영역(이하, ECC 영역)을 포함한다. ECC 패리티는 일정 단위의 데이터(예컨대, ECC 단위로서 블록 데이터)에 대응하여 생성되며, 하나 이상의 비트를 포함할 수 있다. 이하에서는, 각 블록 데이터에 대응하여 ECC 패리티가 생성되는 것으로 가정하며, ECC 단위의 데이터(또는, 블록 데이터)가 저장되는 공간을 데이터 블록, 그리고 이에 대응하여 ECC 패리티가 저장되는 공간을 ECC 블록으로 지칭한다.
MRAM 셀 어레이는 다수의 데이터 블록들 및 다수의 ECC 블록들을 포함할 수 있다. 특히, ECC 블록들의 개수는 데이터 블록들의 개수보다 적으며, 일예로서 n 개의 데이터 블록들에 대응하여 m 개의 ECC 블록들이 배치된다. m은 n보다 작은 값을 가지며, 이에 따라 m 개의 ECC 블록들이 n 개의 데이터 블록들에 의해 공유되는 구조를 갖는다. 본 발명의 실시예에 따른 ECC 동작(예컨대, ECC 인코딩 동작 및 ECC 디코딩 동작)의 자세한 설명은 다음과 같다.
도 2a,b는 도 1의 컴퓨터 시스템 내에서의 캐쉬 메모리의 구현예를 나타내는 블록도이다. 도 2a에 도시된 바와 같이, 중앙 처리장치(150)와 메인 메모리(140) 사이에 캐쉬 메모리(110)가 배치될 수 있다. 메인 메모리(140)에 저장된 데이터의 일부는 캐쉬 메모리(110)에 복사되며, 메인 메모리(140)의 어느 위치에 저장된 데이터가 캐쉬 메모리(110)에 복사되었는지를 나타내는 어드레스 태그(Address Tag)가 캐쉬 메모리(110)에 더 저장된다. 태그 비교 동작에 기반하여, 중앙 처리장치(150)가 요청한 데이터가 캐쉬 메모리(110)에 존재하는지가 판별되고, 억세스 요청된 데이터가 캐쉬 메모리(110)에 존재하는 경우(예컨대, 캐쉬 히트), 캐쉬 메모리(110)의 데이터가 중앙 처리장치(150)로 제공된다. 반면에, 억세스 요청된 데이터가 캐쉬 메모리(110)에 존재하지 않는 경우(예컨대, 캐쉬 미스), 요청된 데이터를 포함하는 일정 사이즈의 데이터가 메인 메모리(140)로부터 독출되어 캐쉬 메모리(110)에 복사되고, 복사된 데이터 중 요청된 데이터가 독출되어 중앙 처리장치(150)로 제공된다.
도 2b는 캐쉬 메모리(110)가 중앙 처리장치(150)에 포함된 예가 도시된다. 또한, 캐쉬 메모리(110)가 적어도 두 개의 캐쉬를 포함하는 예로서, 상대적으로 빠른 제1 캐쉬(L1 캐쉬, 111) 및 상대적으로 느린 대신에 더 큰 용량을 갖는 제2 캐쉬(L2 캐쉬, 112)가 중앙 처리장치(150)에 포함될 수 있다. 중앙 처리장치(150)는 실제 프로세싱 연산을 수행하는 CPU 코어(151)를 더 포함할 수 있다. 전술한 제1 및 제2 캐쉬(111, 112) 중 적어도 하나에 본 발명의 실시예에 따른 MRAM이 적용될 수 있다. 또한, 제1 및 제2 캐쉬(111, 112) 각각은 MRAM 장치 및 컨트롤러를 포함할 수 있다. 또는, MRAM 셀 어레이를 포함하는 MRAM 장치가 제1 및 제2 캐쉬(111, 112)에 구현되고, 이를 컨트롤하기 위한 컨트롤러는 CPU 코어(151)에 구현되어도 무방하다.
도 3은 도 1의 캐쉬 메모리가 포함하는 MRAM의 일 구현예를 나타내는 블록도이다. 도 3에서는 캐쉬 메모리(110)가 컨트롤러(200) 및 MRAM 장치(300)를 포함하는 것으로 가정한다.
도 3을 참조하면, 컨트롤러(200)는 MRAM 장치(300)에 커맨드 신호(CMD), 클록(CLK) 및 어드레스 신호(ADD)를 전송하고, 기록/독출 데이터(Data)를 MRAM 장치(300)와 송수신한다. MRAM 장치(300)는 다수의 MRAM 셀들을 포함하는 셀 어레이를 포함하며, 또한 MRAM 셀은 STT-MRAM 셀로 구현될 수 있다.
도 4는 도 3의 MRAM 장치의 구체적인 구현 예를 나타내는 블록도이다. 도 4에 도시된 바와 같이, MRAM 장치(300)는 커맨드 디코더(310), 어드레스 버퍼(320), 로우 디코더(330), 컬럼 디코더(340), 셀 어레이(350), 기록 드라이버/센스 앰프(360), 입출력 드라이버부(370) 및 데이터 입출력부(380)을 포함한다.
커맨드 디코더(310)는 컨트롤러(200)로부터 수신되는 칩 선택 신호(chip select; /CS), 로우 어드레스 스트로브(Row Address Strobe; /RAS), 컬럼 어드레스 스트로브(Column Address strobe; /CAS), 기록 인에이블 신호(Write enable; /WE) 및 클록 인에이블 신호(Clock enable; CKE)를 입력 받아 디코딩 동작을 수행한다. 디코딩이 완료된 후에, MRAM 장치(300)는 컨트롤러(200)의 명령을 수행하도록 제어된다.
컨트롤러(200)에서 수신된 어드레스 신호(ADD)는 어드레스 버퍼(320)에 저장된다. 이후, 어드레스 버퍼(320)는 로우 어드레스(X-ADD)를 로우 디코더(330)에 전달하고, 컬럼 어드레스(Y-ADD)를 컬럼 디코더(340)에 전달한다.
로우 디코더(330) 및 컬럼 디코더(340)는 각각 다수의 스위치들을 포함한다. 로우 디코더(330)는 로우 어드레스에 응답하여 스위칭되어 워드라인(WL)을 선택하며, 컬럼 디코더(340)는 컬럼 어드레스에 응답하여 스위칭되어 비트라인(BL)을 선택한다. 셀 어레이(350)는 워드라인(WL) 및 비트라인(BL)의 교차점 영역에 위치하는 MRAM 셀(351)을 포함하며, 일예로서 상기 MRAM 셀(351)은 STT-MRAM 셀일 수 있다. MRAM 셀(351)은 불휘발성 특성을 가지는 저항성 메모리 셀로서, 기록된 데이터에 따라 상대적으로 큰 저항 값이나 작은 저항 값을 갖는다.
데이터 독출 시, 상기 저항 값에 따라 서로 다른 레벨을 갖는 데이터 전압이 생성되어 기록 드라이버/센스 앰프(360)에 제공된다. 기록 드라이브/센스 앰프(360)는 데이터 전압을 센싱/증폭하는 센스 앰프 회로들을 포함하며, 상기 데이터 전압을 기반으로 디지털 레벨의 데이터 신호를 출력한다. 기록 드라이브/센스 앰프(360)에서 처리된 데이터 신호는 입출력 드라이버부(370)를 거쳐 데이터 입출력부(380)로 전달된다. 데이터 입출력부(380)는 전달받은 데이터를 컨트롤러(200)로 출력한다.
도 5는 MRAM 셀(351)의 구현 예를 나타내는 도면이다. 일예로서, 도 5의 MRAM 셀(351)은 STT-MRAM셀의 구현 예를 나타낸다. 도 5의 (a)에 도시된 바와 같이, 각각의 STT-MRAM셀은 셀 트랜지스터(CT) 및 MTJ(Magnetic Tunnel Junction) 소자(MTJ 소자)를 포함하며, 셀 트랜지스터(CT)의 게이트는 워드라인(WL)에 연결되고, 셀 트랜지스터(CT)의 일 전극은 MTJ 소자(MTJ)를 통해 비트라인(BL)에 연결된다. 또한 셀 트랜지스터(CT)의 다른 전극은 소스라인(SL)에 연결된다. 셀 어레이(350)에 포함되는 MRAM 셀(351)은 공통한 소스라인(SL)에 연결될 수 있으며, 또는 일부의 MRAM 셀(351)과 다른 일부의 MRAM 셀(351)은 서로 다른 소스라인(SL)에 연결될 수도 있다.
한편, 도 5의 (b)를 참조하면, MTJ 소자(MTJ)는 고정 층(Pinned layer, 351_3)과 자유 층(free layer, 351_1) 및 이들 사이에 터널 층(351_2)을 포함할 수 있다. 고정 층(351_3)의 자화 방향은 고정되어 있으며, 자유 층(351_1)의 자화 방향은 조건에 따라 고정 층(351_3)의 자화 방향과 같거나 역 방향이 될 수 있다. 고정 층(351_3)의 자화 방향을 고정시켜 주기 위하여, 예컨대, 반강자성층(anti-ferromagnetic layer, 미도시)이 MTJ 소자(MTJ)에 더 구비될 수 있다.
MRAM 셀(351)에 데이터를 기록하기 위해, 워드라인(WL)에 로직 하이의 전압을 인가하여 셀 트랜지스터(CT)를 턴 온 시키고, 비트라인(BL)과 소스 라인(SL) 사이에 기록 전류(WC1, WC2)를 인가한다. 한편, MRAM 셀(351)로부터 데이터를 독출하기 위해, 워드라인(WL)에 로직 하이의 전압을 인가하여 셀 트랜지스터(CT)를 턴 온 시키고, 비트라인(BL)으로부터 소스 라인(SL) 방향으로 독출 전류를 인가하여, 측정되는 저항 값에 따라 MRAM 셀(351)에 저장된 데이터를 판별할 수 있다.
도 6a,b은 도 1의 메인 메모리(140)와 캐쉬 메모리(110) 사이의 맵핑 동작의 일예를 나타내는 블록도이다. 도 6a에서는 맵핑 동작의 일예로서 셋 어소시에이티브 매핑(Set Associative Mapping)이 예시된다. 또한, 캐쉬 메모리는 MRAM 장치(300)를 포함하며, 도 6a에는 MRAM 장치(300)의 셀 어레이가 도시된다.
메인 메모리(140)는 일정 크기의 영역들로 구분되며, 구분된 영역들 각각에 대응하여 태그(Tag) 값이 할당된다. 예컨대, 제1 영역의 태그(Tag) 값은 000에 해당하고, 제2 영역의 태그(Tag) 값은 001에 해당한다. 마지막 영역의 태그(Tag) 값은 1FF 값을 가질 수 있다.
캐쉬 메모리에 포함되는 MRAM 장치(300)의 셀 어레이는 데이터를 저장하기 위한 데이터 영역을 포함하고, 데이터 영역은 다수 개의 그룹들을 포함할 수 있다. 예컨대 MRAM 장치(300)의 셀 어레이는 데이터를 저장하기 위한 n 개의 그룹들(Group 1~Group n)을 포함한다. MRAM 장치(300)의 각각의 그룹의 데이터를 저장하기 위한 공간의 사이즈는 메인 메모리(140)의 각각의 영역의 사이즈와 동일할 수 있다. 예컨대, 메인 메모리(140)가 32KByte의 영역들로 구분되는 경우, MRAM 장치(300)의 셀 어레이의 각각의 그룹에서 데이터를 저장하는 공간은 32KByte의 크기를 가질 수 있다.
또한, MRAM 장치(300)의 각각의 영역의 하나의 라인에서 데이터가 저장되는 공간은 데이터 블록으로 정의될 수 있다. MRAM 장치(300)의 셀 어레이가 n 개의 그룹들(Group 1~Group n)을 포함하는 경우, 하나의 세트에는 n 개의 데이터 블록이 포함될 수 있으며, 이와 같은 구조를 갖는 캐쉬 메모리는 n-웨이(way) 셋 어소시에이티브 캐쉬로 지칭될 수 있다.
메인 메모리(140)의 데이터를 MRAM 장치(300)에 복사함에 있어서, 데이터 및 해당 데이터의 태그(Tag) 값이 MRAM 장치(300)의 셀 어레이에 기록될 수 있다. 이후, MRAM 장치(300)에 저장된 데이터를 독출하는 경우, 세트(SET)를 지시하기 위한 인덱스 정보에 따라 다수의 세트들 중 어느 하나의 세트가 선택되며, 하나의 세트에 포함된 다수의 블록 데이터들에 대해서는 태그(Tag) 값의 비교 동작에 기반하여 하나의 블록 데이터가 선택될 수 있다.
한편, 도 6b는 도 6a의 MRAM 장치(300)를 억세스하기 위한 어드레스 구조로서, 도 6b에 도시된 바와 같이 어드레스는 태그(Tag) 필드, 인덱스(Index) 필드 및 오프셋(Offset) 필드를 포함할 수 있다. 인덱스(Index) 필드의 값을 이용하여 다수의 세트들 중 어느 하나의 세트가 선택되며, 태그(Tag) 필드의 값을 이용하여 다수의 데이터 블록들 중 어느 하나의 데이터 블록이 선택될 수 있다. 또한, 오프셋(Offset) 필드의 값을 이용하여 하나의 블록 데이터에 대한 바이트 단위의 억세스가 가능하다.
한편, 도 6a,b에서는 하나의 세트에 블록 데이터와 태그(Tag) 값이 함께 기록되는 예가 도시되었으나, 이는 설명의 편의를 위한 것으로서 본 발명의 실시예는 이에 국한될 필요가 없다. 예컨대, MRAM 장치(300)는 데이터를 저장하기 위한 제1 셀 어레이와 태그(Tag) 값을 저장하기 위한 제2 셀 어레이를 포함할 수 있으며, 제1 셀 어레이로부터 태그(Tag) 값을 독출하여 비교 동작을 수행하고, 제2 셀 어레이에서 선택된 다수의 블록 데이터들 중 상기 태그(Tag) 값 비교 결과에 따라 하나 이상의 블록 데이터를 선택하는 동작을 수행할 수 있다. 또한, 도 6a,b에 도시되지는 않았으나, MRAM 장치(300)는 블록 데이터에 대응하는 ECC 패리티를 저장하기 위한 다수의 ECC 블록들을 포함하는 추가의 셀 어레이를 더 포함할 수 있다.
도 7은 도 4의 MRAM의 ECC 동작의 일 예를 나타내는 블록도이다. 도 7에 도시된 바와 같이, MRAM(400)은 셀 어레이(410, 420), ECC 부(430), 입출력 드라이버부(440) 및 모드 레지스터 세트(MRS, 450)를 포함할 수 있다. 셀 어레이(410, 420)는 블록 데이터를 저장하는 제1 영역(예컨대 데이터 영역, 410)과 ECC 패리티를 저장하는 제2 영역(예컨대 ECC 영역, 420)을 포함한다.
도 7의 실시예에 따르면, 데이터 영역(410)의 두 개 이상의 데이터 블록들과 ECC 영역(420)의 하나 이상의 ECC 블록이 동일한 세트로 정의될 수 있다. 예컨대, 하나의 세트에는 n 개의 데이터 블록들(DB1~DBn)과, 이보다 작은 수의 m 개의 ECC 블록들(E1~Em)이 포함될 수 있다. 즉, 데이터 블록들(DB1~DBn) 각각에 대응하여 ECC 블록을 배치하는 것이 아니라, n 개의 데이터 블록들(DB1~DBn)에 의해 m 개의 ECC 블록들(E1~Em)이 공유되도록 한다. 도시되지는 않았으나, 도 7의 셀 어레이(410, 420)에는 다수의 세트에 해당하는 데이터 블록들 및 ECC 블록들이 포함될 수 있다.
MRAM(400)의 데이터 기록 동작시, 블록 데이터를 데이터 영역(410)에 기록하고, 이를 다시 독출하여 검증 동작을 수행함에 의하여 에러 비트의 수를 검출한다. 상기 일련의 동작은 기록-독출-검증(write-read-verify) 동작으로 정의될 수 있다. 예컨대, 블록 데이터 단위로 에러 비트의 수가 검출될 수 있으며, 검출 결과에 따라 블록 데이터에 에러 비트의 발생 여부, 발생된 에러 비트가 정정이 가능한 지의 여부가 판별될 수 있다. 검출 결과, ECC 동작에 의해 정정이 불가능한 에러가 발생한 경우에는 재기록 동작 동작을 수행하고 다시 검증 절차를 수행하는 기록-독출-검증 동작을 재수행한다. 최초 기록 동작에 의해 정정 불가능한 에러가 발생한 경우라도, 상기 기록-독출-검증 동작을 재수행함에 의하여 데이터의 모든 비트들이 오류 없이 기록되도록 할 수 있다.
즉, 최초 기록-독출-검증 동작이나, 이후의 기록-독출-검증 동작을 통해 데이터의 모든 비트들이 오류 없이 기록된 경우에는, 해당 데이터 블록에 대응하는 ECC 패리티를 저장할 필요가 없다. MRAM(400)의 경우 SRAM과는 달리 기록 동작에서 데이터 오류가 발생할 가능성이 존재하며, 정상적으로 기록된 데이터에 대해서는 ECC 동작이 필요치 않을 수 있다. 이에 따라, 전체 비트들의 오류 없이 기록된 블록 데이터에 대응하는 ECC 패리티를 기록하지 않음으로써 데이터 블록들(DB1~DBn)의 개수에 비해 더 적은 수의 ECC 블록들(E1~Em)이 배치될 수 있다.
한편, MRAM(400)에 대한 기록-독출-검증 동작을 통해 정정 가능한 에러만이 발생한 경우, 추가의 기록-독출-검증 동작을 수행함이 없이 기록 동작을 완료할 수 있다. 즉, 정정이 가능한 에러만이 발생한 블록 데이터에 대해서는 이에 대한 추가의 기록-독출-검증 동작을 수행하지 않고, 상기 블록 데이터에 대응하는 ECC 패리티를 ECC 블록에 기록함으로써 기록 동작을 완료할 수 있다. 해당 블록 데이터를 독출하는 경우, ECC 패리티에 의해 블록 데이터에 존재하는 에러 비트가 정정되도록 한다. 이에 따라 블록 데이터를 기록함에 있어서 기록-독출-검증 동작의 회수를 감소시킬 수 있으므로 기록 동작에 소요되는 시간을 감소할 수 있다.
데이터 블록들(DB1~DBn) 각각은 블록 데이터를 저장할 수 있으며, ECC 블록들(E1~Em) 각각은 ECC 패리티를 저장할 수 있다. 전술한 바와 같이, 데이터 블록의 선택을 위하여 태그(Tag) 값이 MRAM(400)에 더 저장될 수 있으며, 상기 태그(Tag) 값은 별도의 셀 어레이(미도시)에 기록되거나, 또는 데이터 블록들(DB1~DBn) 각각에 대응하여 기록될 수 있다. 데이터 블록들(DB1~DBn) 각각에 대응하여 태그(Tag) 값이 저장되는 경우에는, 데이터 블록들(DB1~DBn) 각각에는 태그(Tag) 값을 저장하기 위한 추가적인 저장 공간이 포함될 것이다.
또한, ECC 블록들(E1~Em) 각각은 ECC 패리티 값 이외에도 해당 ECC 블록이 유효한지 여부를 나타내는 정보(예컨대, ECC 정정에 이용될 ECC 패리티를 저장하였는지 여부를 나타내는 정보)와 위치 정보(n 개의 데이터 블록들(DB1~DBn) 중 대응하는 데이터 블록을 나타내는 정보)를 저장할 수 있다. 상기 유효 여부를 나타내는 정보는 유효(valid) 필드 정보로 지칭할 수 있으며, 상기 주소 정보는 웨이 필드 정보로 지칭할 수 있다. 상기 유효(valid) 필드 정보나 웨이 필드 정보는 별도의 셀 어레이(미도시)에 기록되거나, 또는 ECC 블록들(E1~Em) 각각에 대응하여 기록될 수 있다. ECC 블록들(E1~Em) 각각에 대응하여 유효(valid) 필드 정보나 웨이 필드 정보가 저장되는 경우, ECC 블록들(E1~Em) 각각에는 상기 정보들을 저장하기 위한 추가적인 저장 공간이 포함될 것이다.
한편, 상기 실시예에서는 블록 데이터를 먼저 기록한 후 에러 검출 결과에 따라 ECC 패리티를 기록하는 예가 설명되었으나, 본 발명의 실시예는 이에 국한될 필요는 없다. 예컨대, 블록 데이터에 대응하여 ECC 패리티를 생성하고, 상기 블록 데이터 및 ECC 패리티를 각각 데이터 영역(410) 및 ECC 영역(420)에 각각 기록할 수 있다. 에러 검출을 위한 독출 동작시 블록 데이터 및 ECC 패리티를 독출하고, 독출된 블록 데이터에 대한 에러 비트 검출 동작을 수행할 수 있다. 검출 결과, 에러 비트가 발생하지 않은 경우에는 해당 ECC 블록의 무효화 상태임을 나타내는 유효 필드 정보를 기록할 수 있다. 또는, 다른 실시예로서, 에러 비트를 검출함에 있어서 블록 데이터 및 ECC 패리티에 발생된 에러 비트를 검출할 수도 있다.
상기 기록-독출-검증 동작은 ECC 부(430)의 ECC 패리티 생성, 에러 비트 검출 등의 동작에 기반하여 수행될 수 있다. 본 발명의 실시예에 따라 n 개의 데이터 블록에 대응하여 m 개의 ECC 블록이 구비됨에 따라 달라지는 ECC 부(430)의 동작은 MRS(450)로부터의 제어 코드(예컨대, MRS 코드)에 의해 설정될 수 있다.
도 8은 도 7의 데이터 영역(410) 및 ECC 영역(420)의 구조의 일예를 나타내는 도면이다. 도 8에 도시된 바와 같이, 데이터 영역(410)은 n-웨이(way) 셋 어소시에이티브 캐쉬에 해당하는 구조를 가지며, ECC 영역(420)은 m-웨이(way) 셋 어소시에이티브 ECC에 해당하는 구조를 가질 수 있다. 또한, 데이터 영역(410) 및 ECC 영역(420) 각각은 다수의 세트를 포함할 수 있으며, 어느 하나의 세트를 선택함에 의하여 n 개의 데이터 블록들 및 m 개의 ECC 블록들이 선택될 수 있다.
데이터 영역(410)과 ECC 영역(420)은 동일한 개수의 세트를 가질 수 있으며, 또는 ECC 영역(420)은 데이터 영역(410)에 비해 더 작은 수의 세트를 가질 수 있다. 서로 다른 수의 세트가 구비되는 경우, ECC 영역(420)의 하나의 세트에 포함된 ECC 블록들에 의해 데이터 영역(410)의 두 개 이상의 세트에 포함된 데이터 블록들의 ECC 패리티를 저장할 수 있다.
또한, ECC 영역(420)의 각각의 ECC 블록은 ECC 패리티를 저장하는 제1 필드(ECC), 유효(valid) 정보를 저장하는 제2 필드(v) 및 웨이 정보를 저장하는 제3 필드(w)를 포함할 수 있다. 만약, 어느 하나의 세트에서, 제1 ECC 블록이 a 번째 데이터 블록의 ECC 패리티를 저장하는 경우, 제1 ECC 블록의 제1 필드(ECC)에 ECC 패리티가 저장되고, 제2 필드(v)에 해당 ECC 블록이 유효함을 나타내는 제1 레벨의 정보가 저장되며, 제3 필드(w)에 a 번째 데이터 블록의 위치를 나타내는 정보(예컨대, 웨이 정보)가 저장될 수 있다. 반면에, 제1 ECC 블록이 유효하지 않은 경우(또는, ECC 패리티가 저장되지 않은 경우), 제2 필드(v)에는 해당 ECC 블록이 무효(invalid)함을 나타내는 제2 레벨의 정보가 저장된다. 상기 웨이 정보는, 하나의 세트에 속한 다수의 데이터 블록들 중 어느 하나를 선택하기 위한 정보로서, 대응하는 데이터 블록의 태그(Tag) 값과 동일한 정보가 웨이 정보로서 저장될 수 있다.
도 8에는 각각의 ECC 블록에 ECC 패리티 이외에도 유효 필드 정보 및 웨이 필드 정보가 더 기록되는 예가 도시되었으나, 전술한 실시예에서와 같이 상기 유효 필드 정보 및 웨이 필드 정보는 별도의 셀 어레이(미도시)에 저장되어도 무방하다.
이하, 블록 데이터 및 ECC 패리티의 저장 예를 도 9 및 도 10을 참조하여 설명하면 다음과 같다. 도 9는 데이터 영역(410) 및 ECC 영역(420)에 저장된 정보의 일예를 나타내며, 도 10은 본 발명의 일실시예에 따른 반도체 메모리 장치(또는, 캐쉬 메모리)의 동작방법을 나타낸다.
전술한 실시예에서와 같이, 데이터 블록과 ECC 블록이 일대일 대응하지 않으므로 이에 적합한 억세스 설계가 필요하다. 데이터 영역(410)에의 데이터 기록이 요청되면, 먼저 ECC 영역(420)의 ECC 블록들의 제2 필드(v)의 정보를 확인하여 현재 유효하지 않은 ECC 블록이 존재하는 지를 확인한다. 유효하지 않은(또는, 이용 가능한) ECC 블록이 얻어지면, 기록 요청된 블록 데이터 및 이에 대응하는 ECC 패리티를 각각 데이터 블록과 ECC 블록에 기록한다. 이후, 기록된 데이터(또는, 데이터 및 ECC 패리티)를 독출하고 에러 비트의 개수를 검출하기 위한 검증 동작을 수행한다.
도 9의 예에서는, 데이터 영역(410)의 하나의 세트에 4 개의 데이터 블록이 구비되고, 이에 대응하여 ECC 영역(420)의 하나의 세트에 2 개의 ECC 블록이 배치된 예를 나타낸다. 또한, 하나의 실시예로서, 블록 데이터에 대한 기록 후 독출 동작을 통해 블록 데이터에 발생된 에러 비트를 검출하는 예가 설명된다.
먼저, 제1 블록 데이터(D1)가 데이터 영역(410)의 데이터 블록(예컨대, 제3 데이터 블록)에 저장된다. 이후, 제1 블록 데이터(D1)에 대한 독출 및 검증 동작이 수행된다. 제1 블록 데이터(D1)의 모든 비트가 에러없이 기록된 경우 ECC 블록에 대한 ECC 패리티의 저장없이 제1 블록 데이터(D1)에 대한 기록 동작을 완료한다.
이후, 제2 및 제3 블록 데이터(D2, D3)를 데이터 영역(410)에 기록하고, 이에 대한 독출 및 검증 동작을 수행한다. 만약, 제2 및 제3 블록 데이터(D2, D3)에 정정이 불가능한 에러가 발생한 경우, 에러 발생된 블록 데이터에 대한 재기록 및 독출/검증 동작을 반복 수행한다. 반면에, 제2 및 제3 데이터(D2, D3)에 정정이 가능한 에러만이 발생한 경우, 제1 및 제2 ECC 블록에 각각 제2 및 제3 ECC 패리티(E2, E3)를 기록하고, 유효 필드에 해당 ECC 블록이 유효함을 나타내는 정보를 기록하고, 또한 각각의 ECC 블록에 대응하는 데이터 블록의 웨이 정보를 기록한다.
이후, 제4 블록 데이터(D4)가 현재 제1 블록 데이터(D1)가 기록된 위치에 기록될 수 있다. 이 경우, 제1 및 제2 ECC 블록이 모두 유효화 상태를 가지므로, 어느 하나의 ECC 블록에 대한 무효화 동작을 수행한다.
상기 무효화 동작은, 어느 하나의 블록 데이터 및 이에 대응하는 ECC 패리티를 이용하여 기록-독출-검증 동작을 반복함으로써 수행될 수 있다. 예컨대, 어느 하나의 ECC 블록이 선택되고(예컨대, 제2 ECC 블록이 선택됨), 제2 블록 데이터(D2) 및 제2 패리티(E2)에 대한 기록 동작을 재수행하고, 재기록된 제2 데이터(D2)를 독출하여 에러 비트 존재 여부를 검출한다. 기록-독출-검증 동작의 재수행에 따라 제2 블록 데이터(D2)에 에러 비트가 존재하지 않는 경우에는 제2 데이터(D2)에 대응하는 제1 ECC 블록을 무효화시킨다.
제4 블록 데이터(D4)는 제3 데이터 블록에 기록되고, 상기 기록된 제4 블록 데이터(D4)에 대한 독출 및 검증 동작이 수행되며, 만약 정정 가능한 에러만이 발생된 경우에는 제1 ECC 블록에 제4 블록 데이터(D4)에 대응하는 제4 ECC 패리티(E4)를 기록한다. 또한, 제1 ECC 블록에 해당 ECC 블록이 유효 상태임을 나타내는 정보, 그리고 제4 블록 데이터(D4)의 위치를 나타내는 웨이 정보를 더 기록할 수 있다. 반면에, 제4 블록 데이터(D4)에 에러 비트가 발생되지 않은 경우에는 상기 제1 ECC 블록을 무효화 상태로 유지할 수 있다.
무효화시키는 동작은 캐쉬 동작에 근거하여 수행될 수도 있다. 예컨대, 제4 블록 데이터(D4)가 캐쉬 미스 등에 의하여 캐쉬 영역(410)으로부터 방출(evict)되는 경우, 제4 블록 데이터(D4)에 대응하는 ECC 패리티가 저장된 제1 ECC 블록이 무효화될 수 있다. 이후, 제3 데이터 블록에는 다른 데이터로서 제5 블록 데이터(D5)가 기록될 수 있으며, 독출 및 검증 결과 제5 블록 데이터(D5)에 에러 비트가 발생되지 않은 경우에는 제1 ECC 블록의 무효화를 유지시킬 수 있다.
전술한 실시예에 따르면, 기록-독출-검증 동작은 블록 데이터에 대해서 수행되며, ECC 블록들 각각은 최초 무효화 상태를 가질 수 있다. 블록 데이터의 기록 후 독출 동작을 통해 얻어진 데이터에 대해 검증 동작을 수행하고, 검증 결과 에러 비트가 발생되지 않은 경우 해당 데이터에 대한 기록 동작을 종료한다. 반면에, 검증 결과, 블록 데이터에 정정 가능한 에러가 발생된 경우에는, 상기 블록 데이터에 대응하여 생성된 ECC 패리티를 생성하여 ECC 영역에 기록하고, 해당 ECC 블록이 유효함을 나타내는 정보 및 해당 ECC 블록에 대응하는 데이터 블록의 위치를 나타내는 웨이 정보를 ECC 영역에 더 기록한다.
전술한 본 발명의 실시예에 따른 ECC 패리티의 기록 동작은 본 발명의 특징을 벗어나지 않는 범위 내에서 다양한 설계 변경이 가능할 수 있다. 예컨대, 제1 블록 데이터의 기록 동작시 이에 대응하는 ECC 패리티가 제1 ECC 블록에 함께 기록되고, 블록 데이터 및 ECC 패리티를 모두 독출하여 에러 비트의 수가 검출되도록 할 수 있다. 만약, 제1 블록 데이터(D1)에 대응하는 제1 ECC 패리티에만 에러가 발생되는 경우, 실제 억세스 요청되는 제1 블록 데이터(D1)에는 에러 비트가 존재하지 않기 때문에 제1 블록 데이터(D1)에 대한 에러 정정 동작을 수행할 필요가 없으며, 이에 따라 제1 ECC 블록을 무효화시켜도 무방하다.
전술한 도 9의 예에서, 모든 ECC 블록들이 유효화 상태를 가진 후 제4 데이터(D4)의 기록 요청이 수신되는 경우, 재기록-독출-검증 동작에 의해 어느 하나의 ECC 블록을 무효화함이 없이 제4 데이터(D4)를 해당 영역(예컨대, 도 8에서 제3 데이터 블록)에 기록할 수 있다. 이후, 제4 데이터(D4)에 대한 독출-검증 동작을 통해 에러 비트가 발생되지 않은 것으로 판별된 경우, 상기 제4 데이터(D4)의 기록 동작을 종료한다. 반면에, 제4 데이터(D4)에 정정 가능한 에러가 발생된 경우, 전술한 바와 같이 어느 하나의 ECC 블록(예컨대, 제1 ECC 블록)을 무효화시키고, 제4 데이터(D4)에 대응하는 제4 ECC 패리티를 상기 제1 ECC 블록에 기록할 수 있다.
다른 실시예로서, 모든 ECC 블록들이 유효화 상태를 가진 후 제3 데이터(D3)가 저장된 위치(예컨대, 제4 데이터 블록)에 다른 데이터의 기록이 요청되는 경우, 상기 제3 데이터(D3)는 정정 가능한 에러 비트가 존재하므로 이에 대응하는 ECC 패리티가 존재한다(예컨대, 제2 ECC 블록의 ECC 패리티). 이 경우에는, 상기 제3 데이터(D3)가 데이터 영역에서 방출(evict)되는 것이므로, 대응하는 제2 ECC 블록을 무효화시킬 수 있다. 즉, 에러 비트가 발생되지 않도록 추가의 기록-독출-검증 동작을 통해 어느 하나의 ECC 블록을 무효화시킬 필요 없이, 방출(evict)된 데이터 블록에 대응하는 ECC 블록을 무효화시킴으로써 이용 가능한 ECC 블록이 확보될 수 있다.
한편, 도 10에 도시된 바와 같이, 본 발명의 실시예의 캐시 메모리의 동작방법에 따르면, 먼저 블록 데이터의 기록이 요청됨에 따라 ECC 패리티를 저장할 ECC 블록을 확인한다. ECC 블록의 확인 동작은, 각각의 ECC 블록의 유효 정보를 검색하여 이용 가능한 ECC 블록이 존재하는 지 여부 및 이용될 ECC블록을 선택하는 동작을 포함할 수 있다. 전술한 실시예에서와 같이 모든 ECC블록들이 유효한 경우, 무효화 동작을 수행함에 의하여 하나 이상의 ECC블록이 이용 가능하도록 한다.
블록 데이터 및 ECC 패리티가 각각 MRAM의 셀 어레이의 데이터 영역 및 ECC 영역에 기록된다(S12). 이후, 기록된 블록 데이터가 독출되며(S13), 독출된 블록 데이터에 대한 에러 비트를 검출하는 단계가 수행된다(S14). 상기 검출 단계는 에러 비트의 개수를 검출하는 동작을 포함할 수 있으며, 에러 비트가 검출되지 않은 경우에는 ECC 패리티가 기록된 ECC 블록을 무효화시킨다(S15). 반면에, 에러 비트가 검출된 경우 해당 에러 비트가 정정이 가능한지가 판별되며(S16), 에러 정정이 가능한 경우에는 해당 블록 데이터의 기록 동작을 완료한다. 이 경우 해당 블록 데이터에 대응하는 ECC 패리티가 기록된 ECC 블록은 유효화 상태가 유지되며, 유효화된 ECC 블록에는 해당 ECC 블록이 유효함을 나타내는 정보와 함께, 기록된 ECC 패리티에 대응하는 블록 데이터가 기록된 위치를 나타내는 웨이 정보가 포함된다.
반면에, 블록 데이터에 정정이 불가능한 에러가 발생된 경우에는 해당 블록 데이터 및 ECC 패리티를 재기록하는 동작이 수행되며, 재기록 동작 이후 독출 및 검증 동작이 반복 수행된다. 재기록 결과 블록 데이터에 에러 비트가 발생되지 않은 경우에는 대응하는 ECC 블록을 무효화시키는 동작이 수행되며, 반면에 정정 가능한 에러만이 발생된 경우에는 ECC 블록을 유지한 채로 기록 동작을 완료한다.
도 10의 실시예에서는, 블록 데이터의 기록 동작시 ECC 패리티가 생성되고 기록되는 예가 설명되었으나, 전술한 바와 같이 ECC 패리티는 에러 비트에 대한 검출 동작 이후에 기록될 수 있다. 이 경우, 단계 S12에서는 블록 데이터에 대한 기록 동작만이 수행될 것이며, 단계 S17에서 기록 동작을 완료하기 전에 ECC 패리티, 유효 정보 및 웨이 정보가 기록되는 동작이 더 수행될 것이다.
또한, 에러 비트의 검출과 관련하여, 독출된 블록 데이터 및 ECC 패리티에 에러 비트가 발생하였는지 여부가 검출될 수 있다. 만약, 블록 데이터에 에러 비트가 발생하지 않은 경우에는, ECC 패리티에 에러 비트가 발생하더라도 대응하는 ECC 블록을 무효화시킬 수 있다. 또한, 에러 정정 가능여부는 에러 비트의 개수를 카운팅함에 의해 판단될 수 있으며, 에러 비트의 개수는 블록 데이터 및 ECC 패리티에 발생된 에러 비트의 개수일 수 있다.
도 11은 본 발명의 실시예에 따른 캐쉬 메모리의 데이터 독출 동작을 나타내는 블록도이다. 전술한 실시예에서와 같이, 캐쉬 메모리는 실제 중앙 처리장치에 의해 이용될 데이터(예컨대, 블록 데이터) 이외에도, 상기 블록 데이터가 메인 메모리 상에 저장된 위치를 나타내는 태그(Tag) 값을 포함할 수 있다. 블록 데이터를 억세스함에 있어서, 먼저 별도의 셀 어레이에 저장된 태그(Tag) 값이 독출되며, 어느 하나의 세트에 포함되는 하나 이상의 블록 데이터들이 독출된다. 상기 독출된 태그(Tag) 값에 의하여, 하나의 세트에 속하는 다수의 블록 데이터들 중 하나의 블록 데이터가 선택될 수 있다.
태그(Tag) 값과 블록 데이터가 순차적으로 독출되는 것으로 가정할 때, 블록 데이터의 독출과 관련 ECC 패리티의 독출 동작은 동시에 수행될 수 있다. 즉, 태그(Tag) 값의 독출 및 비교 동작을 수행함에 의하여 캐쉬의 히트/미스 여부가 판별될 수 있으며, 캐쉬 히트의 경우 태그(Tag) 값을 ECC 블록의 웨이 필드 정보와 비교함에 의하여, 상기 태그(Tag) 값과 매칭되는 웨이 정보를 갖는 ECC 블록이 검색될 수 있다. ECC 블록의 웨이 필드 정보와 비교되는 태그(Tag) 값은 외부 어드레스에 포함된 정보일 수 있다. 검색된 ECC 블록으로부터 ECC 패리티가 독출되며, 선택된 블록 데이터 및 ECC 패리티를 이용하여 에러 정정 동작이 수행될 수 있다.
도 11의 실시예에서는 태그 값이 별도의 셀 어레이에 저장되는 것으로 설명되었으나, 다른 실시예에 따르면 각각의 데이터 블록은 태그 값을 저장하기 위한 추가 공간이 구비되며, 이 경우 태그 값과 블록 데이터는 실질적으로 동시에 독출될 수 있다. 또한, ECC 블록에 ECC 패리티 및 웨이 정보 등이 함께 저장되는 것으로 설명되었으나, ECC 패리티에 관련된 유효 정보 및 웨이 정보는 별도의 셀 어레이에 저장되어도 무방하다.
전술한 실시예에 따르면, 블록 데이터의 독출과 ECC 패리티의 독출이 실질적으로 동시에 수행될 수 있으므로 독출 레이턴시가 증가하는 문제를 감소할 수 있다. 또한, ECC 블록은 데이터 블록에 비해 작은 값(또는, 작은 크기)을 갖기 때문에 관련 ECC 블록 검색 및 ECC 패리티의 독출 동작이 블록 데이터의 독출 동작 도중에 충분히 완료될 수 있다. 또한, 블록 데이터에 대응하는 ECC 블록이 검색되지 않는 경우에는, 상기 블록 데이터에 대한 에러 정정 동작없이 바로 외부 출력이 가능하므로, 에러 정정에 소요되는 시간 또한 감소할 수 있게 된다.
도 12는 본 발명의 다른 실시예에 따른 반도체 메모리 장치(또는, 캐쉬 메모리)의 동작방법을 나타내며, 일예로서 데이터 독출 동작의 일예를 나타내는 플로우차트이다.
도 12에 도시된 바와 같이, 중앙 처리장치로부터 독출 요청을 수신함과 함께 억세스 요청되는 데이터를 지시하는 어드레스가 수신된다(S21). 상기 어드레스에 포함된 인덱스 정보에 따라 어느 하나의 세트에 기록된 블록 데이터들이 독출되고, 이와 함께 ECC 블록들에 저장된 정보가 독출된다(S22). 블록 데이터의 선택을 위하여, 외부 어드레스에 포함된 태그(Tag) 값과 각각의 데이터 블록에 대응하는 태그(Tag) 값을 비교함에 의하여 억세스 요청된 데이터가 선택된다(S23). 또한, 다수의 ECC 블록들 중 유효한 ECC 블록들 중에서, 상기 어드레스에 포함된 태그(Tag) 값에 매칭되는 웨이 정보를 갖는 ECC 블록이 선택된다(S24). 상기와 같이 선택된 블록 데이터의 메인 데이터와 ECC 블록의 ECC 패리티를 이용하여 에러 정정 동작이 수행된다(S25).
전술한 본 발명의 실시예에 따른 ECC 패리티의 기록/독출 동작에 따르면, ECC 블록이 차지하는 면적을 최소화함과 함께 캐쉬 영역에 기록된 블록 데이터의 에러를 효과적으로 정정할 수 있다. 또한, 데이터 독출 동작에 있어서도 억세스 요청되는 블록 데이터에 대응하여 유효한 ECC 블록이 존재할 때만 에러 정정 동작을 수행하기 때문에, 에러가 존재하지 않을 때의 독출 레이턴시를 줄일 수 있으며 또한 에러 정정에 필요한 전력을 감소할 수 있는 효과가 있다.
도 13a,b은 본 발명의 실시예에 따른 캐쉬 메모리의 동작을 위한 MRAM의 구현 예를 나타내는 블록도이다. 도 13a에는 데이터 기록 시 ECC 패리티에 관련된 유효 정보 및 위치 정보를 저장하는 동작 예가 도시되며, 도 13b에는 독출 동작시 유효 정보 및 위치 정보를 이용하는 예가 도시된다.
도 13a에 도시된 바와 같이 MRAM(500)은 다수의 셀 어레이를 포함할 수 있다. 블록 데이터, ECC 패리티, 블록 데이터에 관련된 태그(Tag) 값, ECC 패리티에 관련된 유효 정보/위치 정보는 각각 별도의 셀 어레이에 저장될 수 있다. 도 13a에는 데이터 블록을 포함하는 데이터 어레이(530), 데이터의 억세스를 위한 태그(Tag) 값을 저장하는 캐쉬 태그 어레이(520), ECC 패리티에 관련된 유효 정보/위치 정보를 저장하는 ECC 태그 어레이(510)가 도시되며, 추가로 ECC 패리티를 저장하기 위한 패리티 어레이(미도시)가 더 구비될 수 있다.
어드레스 버퍼(540)로부터의 인덱스(Index)에 따라 어레이들(510, 520, 530)의 하나의 로우가 선택될 수 있으며, 이는 전술한 실시예에서의 세트 선택 동작에 대응할 수 있다. 캐쉬 태그 어레이(520)는 메인 메모리로부터의 데이터가 캐쉬 메모리에 저장되었는지를 나타내는 정보(V1~Vn)와 각 데이터 블록의 위치에 해당하는 태그 값(T1~Tn)를 저장할 수 있다. 캐쉬 태그 어레이(520)로부터 독출된 정보는 입출력 센스앰프(522)를 거쳐 비교부(523)로 제공된다. 비교부(523)는 어드레스 버퍼(540)로부터의 태그 값은 캐쉬 태그 어레이(520)로부터 독출된 태그 값(T1~Tn)을 비교하고, 비교 결과가 소정의 논리 연산회로(예컨대, AND 게이트, 524)를 거쳐 정보 생성부(525)로 제공된다. 상기 정보 발생부(525)로 제공되는 값은 실제 유효하게 데이터를 저장하고 있으면서 태그 값이 매칭된 데이터 블록의 위치를 포함할 수 있으며, 정보 발생부(525)는 이를 이용하여 웨이 정보(Way Info 1)를 생성하여 출력한다. 상기 웨이 정보(Way Info 1)는 하나의 세트에 속하는 다수의 데이터 블록들을 선택하기 위한 정보를 포함한다.
전술한 태그 매칭 결과에 따라 정보가 기록될 데이터 블록이 선택되며, 로우 디코더(531), 컬럼 디코더(532) 및 입출력 드라이버(533)의 동작에 근거하여 데이터가 기록된다.
한편, 데이터가 기록됨과 함께 이에 대응하는 ECC 패리티가 기록된다. 전술한 태그 매칭 결과에 따라 생성된 웨이 정보(Way Info 1)는 입출력 드라이버(526)을 통해 ECC 태그 어레이(510)의 해당 웨이 필드에 저장된다. 또한, ECC 블록의 유효 여부를 나타내는 정보(V1~Vm)가 입출력 센스앰프(513)을 통해 유효 블록 검출부(514)로 제공되며, 또한 정보 생성부(515)로 제공된다. 유효 블록 검출부(514)는 상기 정보(V1~Vm)에 근거하여 이용 가능한 ECC 블록(또는 무효화된 ECC 블록)이 존재하는지 여부를 나타내는 신호를 선택부(517)로 출력한다. 또한, 정보 생성부(515)는 상기 정보(V1~Vm)에 근거하여 ECC 패리티가 기록될 웨이 정보(Way Info 2)를 생성한다. 만약, 모든 ECC 블록이 유효 상태인 경우, 웨이 선택부(516)는 현재 유효 상태의 ECC 블록들 중 선택된 어느 하나의 ECC 블록을 지시하는 정보(ECC 블록의 위치를 나타내는 웨이 정보)를 출력한다. 선택부(517)는 수신된 웨이 정보들 중 어느 하나를 컬럼 디코더(512)로 출력한다.
한편, 도 13b에 도시된 바와 같이, 캐쉬 메모리로부터의 데이터가 독출되는 경우 ECC 블록들의 독출 동작이 함께 수행될 수 있다. 도 14b에 도시된 바와 같이, MRAM(600)은 ECC 패리티에 관련된 유효 정보 및 위치 정보를 저장하는 ECC 태그 어레이(610)와 ECC 패리티를 저장하는 ECC 패리티 어레이(620)를 포함할 수 있다. 또한, 기록 및 독출 동작을 위한 어드레스 버퍼(612), 로우 디코더(611, 621), 컬럼 디코더(612, 622) 및 입출력 센스 앰프(613, 623) 등이 MRAM(600)에 더 포함될 수 있다. 또한, 기타 구성으로서, 비교부(614), 논리 연산회로(예컨대, AND 게이트, 615), 정보 생성부(616), 멀티플렉서(624) 등이 MRAM(600)에 더 포함될 수 있다.
어드레스 버퍼(612)로부터의 어드레스에 따라 ECC 태그 어레이(610)의 유효 정보(V1~Vm) 및 위치 정보(W1~Wm)가 독출되고, 전술한 바와 같이 비교 동작, 논리 연산 및 정보 생성 동작 등에 기반하여 웨이 정보(Way Info 2)가 생성된다. 여기서, 비교부(614)로 제공되는 제1 웨이 정보(Way Info 1)는 데이터 블록의 위치를 나타내는 웨이 정보에 해당할 수 있으며, 제2 웨이 정보(Way Info 2)는 ECC 패리티 어레이(620)의 하나의 로우에 포함되는 m 개의 ECC 블록들 중 어느 하나를 선택하기 위한 웨이 정보일 수 있다.
상기와 같은 동작에 의해 생성된 제2 웨이 정보(Way Info 2)는 컬럼 디코더(622)나 멀티플렉서(624)로 제공된다. 이에 따라, 어느 하나의 ECC 블록의 ECC 패리티가 선택되어 멀티플렉서(624)를 통해 출력된다.
전술한 실시예에서는 본 발명의 실시예에 따른 동작을 수행하기 위한 MRAM의 일 구현예를 나타낸 것으로서, 본 발명의 기능을 수행하도록 하면서 일부 설계가 변경될 수 있음은 자명할 것이다.
도 14a,b는 본 발명의 캐쉬 메모리의 다른 구현예를 나타내는 블록도이다. 도 14a는 하나의 세트에 포함된 ECC 블록들이 다수의 세트에 포함된 데이터 블록들에 공유되는 구현 예를 나타내며, 도 14b는 하나의 세트의 데이터 블록들에 대응하여 하나의 ECC 블록만이 배치되는 예를 나타낸다. 도 14a,b에 도시되지는 않았으나, 각각의 데이터 블록은 메인 데이터 이외에도 태그(Tag) 값을 더 포함할 수 있으며, 또한 ECC 블록의 유효 필드, 웨이 필드는 별도의 셀 어레이에 저장될 수 있다.
도 14a에 도시된 바와 같이, MRAM에 포함되는 셀 어레이는 블록 데이터를 저장하는 영역(이하, 데이터 영역)과 ECC 패리티를 저장하는 영역(이하, ECC 영역)을 포함할 수 있다. 데이터 영역 및 ECC 영역 각각은 셋-어소시에이티브 구조를 가질 수 있으며, 이에 따라 데이터 영역은 다수의 세트들(Set1~SetA)을 포함할 수 있으며, 또한 ECC 영역은 다수의 세트들(Set1~SetB)을 포함할 수 있다. 데이터 영역의 각각의 세트는 다수 개의 데이터 블록을 포함하며, 또한 ECC 영역의 각각의 세트는 하나 이상의 ECC 블록을 포함한다.
또한, ECC 영역에 포함되는 세트들(Set1~SetB)의 개수는 데이터 영역에 포함되는 세트들(Set1~SetA)의 개수보다 작다. 이에 따라, ECC 영역의 하나의 세트에 포함되는 ECC 블록들은 데이터 영역의 적어도 두 개의 세트에 포함되는 데이터 블록에 의해 공유될 수 있다. 도 14a에서는 데이터 영역의 세 개의 세트에 포함되는 데이터 블록이 ECC 영역의 하나의 세트의 ECC 블록들을 공유하는 예가 도시된다.
이 경우, ECC 블록에는 추가의 정보가 포함될 수 있다. 예컨대, 전술한 실시예에서는 ECC 영역의 세트가 데이터 영역의 세트가 일대일 대응하므로, 세트를 지정하기 위한 정보(예컨대, 인덱스 정보)에 의해 ECC 영역의 세트가 데이터 영역의 세트가 함께 선택되는 반면에, 도 14a의 실시예에서는 ECC 블록이 유효 필드, 웨이 필드 및 ECC 필드 외에 대응하는 데이터 블록이 포함되는 세트의 위치 정보를 저장하는 필드를 더 포함할 수 있다. 예컨대, 블록 데이터의 에러 정정을 위한 ECC 패리티를 독출함에 있어서, ECC 블록의 웨이 필드의 정보를 태그(Tag) 값과 비교함에 의하여 하나의 세트 내에서 ECC 정정이 수행될 데이터 블록이 선택될 수 있으며, ECC 블록의 세트 위치 정보를 인덱스 정보와 비교함에 의하여 ECC 정정이 수행될 데이터 블록이 속한 세트의 위치가 판별될 수 있다.
도 14a의 예에서는 일정한 개수의 데이터 블록의 세트(예컨대, 3 개의 세트)가 하나의 ECC 블록의 세트에 대응하는 예가 도시되었으나, ECC 블록의 각각의 세트마다 서로 다른 개수의 데이터 블록의 세트가 대응하도록 구성되어도 무방하다.
한편, 도 14b는 데이터 영역의 하나의 세트에 대응하여 하나의 ECC 블록이 배치되는 예가 도시된다. 도 14b의 예에서는, 다수의 데이터 블록들과 하나의 ECC 블록이 동일한 인덱스 정보에 의해 선택되는 예가 도시되었으나 본 발명의 실시예는 이에 국한될 필요는 없다. 예컨대, ECC 블록을 포함하는 셀 어레이는 다수의 ECC 블록들을 포함하는 하나의 세트로 구현될 수도 있으며, 이 경우 도 14a와 유사한 구조로서 ECC 블록을 포함하는 하나의 세트가 각각 데이터 블록을 포함하는 다수의 세트에 의해 공유되도록 할 수 있다. 이 경우, 전술한 바와 같이 ECC 정정이 수행될 블록 데이터가 속한 세트의 위치 정보가 ECC 블록에 더 저장될 수 있다.
도 15a,b,c는 본 발명의 다른 실시예에 따른 MRAM 장치의 구현 예를 나타내는 블록도이다. 설명의 편의상 도 15a,b,c에는 MRAM 셀 어레이만이 도시되었으나, MRAM 셀 어레이에 대한 데이터 기록/독출 동작을 위한 주변 회로들이 MRAM 장치에 더 구비될 수 있다.
본 발명의 실시예에 따른 MRAM 장치는 캐쉬 메모리 이외에도 컴퓨터 시스템 내의 다른 메모리에 적용될 수 있다. 예컨대, 도 1에 도시된 메인 메모리(140)에 본 발명의 실시예에 따른 MRAM 장치가 적용될 수 있으며, 또는 도 1에 도시되지 않았으나 대 용량의 데이터를 저장하기 위한 저장 수단에 본 발명의 실시예에 따른 MRAM 장치가 적용될 수 있다. 도 15a,b,c의 예에서는 컴퓨터 시스템의 메인 메모리가 본 발명의 실시예에 따른 MRAM 장치를 포함하는 것으로 가정한다.
MRAM 장치의 셀 어레이는 다수의 페이지들(Page)을 포함할 수 있다. 페이지들(Page) 각각은 서로 다른 로우 어드레스에 의해 선택되며, 각각의 페이지에 포함되는 MRAM 셀들은 동일한 워드라인에 연결된다. 또한, 셀 어레이는 메인 데이터를 저장하기 위한 데이터 영역과, 상기 메인 데이터에 발생된 에러 비트를 정정하기 위한 ECC 패리티를 저장하기 위한 ECC 영역을 포함할 수 있다.
도 15a,b에 도시된 바와 같이, 하나의 페이지는 데이터를 저장하는 영역과 ECC 패리티를 저장하기 위한 영역을 포함할 수 있다. 예컨대, 제1 페이지(Page1)는 도 15b에 도시된 바와 같이 다수 개의 블록들을 포함하며, 다수 개의 블록들은 데이터를 저장하기 위한 데이터 블록들(DB1~DBn)과 ECC 패리티를 저장하기 위한 ECC 블록들(E1~Em)을 포함한다. 전술한 실시예에서와 같이, 제1 페이지(Page1)에 포함되는 ECC 블록들(E1~Em)의 개수는 데이터 블록들(DB1~DBn)의 개수 보다 작은 값을 갖는다.
데이터 블록들(DB1~DBn)의 각각의 사이즈를 구분하는 기준은 다양한 형태로 설정될 수 있다. 예컨대, 독출 데이터에 대한 에러 정정 단위로서 ECC 단위가 정의될 수 있으며, 각각의 데이터 블록은 ECC 단위에 해당하는 사이즈를 가질 수 있다. 즉, 제1 페이지(Page1)는 ECC 단위로서 다수의 데이터 블록들(DB1~DBn)을 포함하며, 에러 정정을 위한 ECC 패리티를 포함하는 ECC 블록들(E1~Em)이 상기 데이터 블록들(DB1~DBn)에 대응하여 제1 페이지(Page1)에 포함된다. 전술한 실시예에서와 같이, 데이터 블록들(DB1~DBn)은 ECC 블록들(E1~Em)을 공유하는 구조를 갖는다.
도 15c는 데이터 및 ECC 패리티의 다른 저장 예를 나타낸다. 도 15c에 도시된 바와 같이, 셀 어레이는 다수의 페이지들을 포함하며, 하나의 페이지에 포함되는 ECC 블록에 의해 적어도 두 개의 페이지에 속한 데이터의 에러 정정이 수행된다. 예컨대, ECC 패리티는 셀 어레이의 페이지들 중 일부의 페이지들에 저장될 수 있으며, 도 15c에는 하나의 페이지(Page1)에 저장된 ECC 블록이 두 개 이상의 페이지들에 포함되는 데이터 블록들에 공유되는 예가 도시된다.
도 15a,b,c의 실시예에서도 ECC 패리티 이외에 기타 다른 정보가 ECC 영역에 더 저장될 수 있다. 즉, n 개의 데이터 블록들이 이보다 작은 수의 m 개의 ECC 블록을 공유하는 구조를 가지므로, ECC 영역에는 해당 ECC 블록의 유효한지의 여부, 그리고 해당 ECC 블록에 대응하는 데이터 블록의 위치를 나타내는 정보 등이 ECC 영역에 더 저장될 수 있다. 또한, 도 15a,b,c의 실시예에서는 하나의 셀 어레이에 데이터 블록 및 ECC 블록이 포함된 예가 도시되었으나, 전술한 실시예에서와 같이 ECC 블록을 포함하는 별도의 셀 어레이가 더 구비되어도 무방하다.
도 16a,b는 본 발명의 일 실시예에 따른 MRAM 시스템을 나타내는 블록도이다. MRAM 시스템(700)은 기록/독출 등 메모리 동작을 제어하기 위한 컨트롤러(710)와 MRAM 셀 어레이(730)를 포함하는 MRAM 장치(720)를 포함할 수 있다. 또한, MRAM 셀 어레이(730)에 기록될 데이터의 에러 검출 및 정정을 위하여 ECC 패리티를 생성하는 ECC부(740)가 MRAM 시스템(700)에 더 구비된다. MRAM 시스템(700)은 컴퓨터 시스템 내에서 각종 저장장치로 이용될 수 있으며, 예컨대 도 1의 캐쉬 메모리(110), 메인 메모리(140) 및 대용량 저장 장치(미도시) 중 적어도 하나가 MRAM 시스템(700)을 포함할 수 있다.
도 16a에서는 ECC부(740)가 MRAM 장치(720)에 구비되는 예가 도시된다. ECC 부(740)는 ECC인코더(741)와 ECC 디코더(742)를 포함할 수 있으며, ECC인코더(741)는 컨트롤러(710)로부터 수신된 기록 데이터(Data)를 이용하여 ECC 패리티를 생성한다. 기록 데이터와 ECC 패리티가 MRAM 셀 어레이(730)에 기록되고, 기록된 정보에 대해 독출 및 검증 동작이 수행된다. 상기 검증 동작은 ECC 디코더(742)에 의해 수행될 수 있으며, 검증 결과(예컨대, 기록 데이터에 발생된 에러 비트의 수)에 따라 전술한 기록-독출-검증 동작이 반복될 수 있다. 검증 결과 가 컨트롤러(710)로 제공됨에 따라 상기 기록-독출-검증 동작이 제어될 수 있으며, 예컨대 컨트롤러(710)는 검증 결과에 기반하여 ECC 패리티를 포함하는 ECC 블록의 유효 정보나 대응하는 데이터 블록의 위치를 나타내는 정보 등의 기록 동작이 제어될 수 있다. 기록 데이터에 에러 비트가 발생되지 않은 경우, 해당 ECC 블록의 유효 필드의 정보가 무효화 상태를 갖도록 함으로써 상기 ECC 블록이 무효화되도록 제어한다. 반면에, 정정이 불가능한 에러가 발생한 경우에는 해당 데이터에 대한 재기록 동작 및 독출-검증 동작이 재수행되도록 제어하며, 정정 가능한 에러만이 발생한 경우에는 해당 ECC 블록을 유효화한다. 상기 설명에서는 컨트롤러(510)에 의해 기록-독출-검증 동작이 제어되는 것으로 설명되었으나, 검증 결과에 기반하여 MRAM 장치(720) 내에서 기록-독출-검증 동작이 반복되도록 제어될 수 있다. 한편 ECC 패리티를 기록함에 있어서 유효 정보 및 위치 정보 등이 MRAM 셀 어레이(730)에 함께 기록될 수 있다.
도 16b의 예에서는 ECC부(740)가 컨트롤러(710)에 구비되는 예가 도시된다. ECC 부(740)는 ECC인코더(741)와 ECC 디코더(742)를 포함할 수 있으며, 컨트롤러(710)는 데이터를 MRAM 장치(720)로 제공함과 함께, ECC인코더(741)에서 생성된 ECC 패리티를 MRAM 장치(720)로 더 제공한다. MRAM 장치(720)는 수신된 데이터 및 ECC 패리티를 MRAM 셀 어레이(730)에 기록한다.
이후, MRAM 셀 어레이(730)에 대한 독출 동작이 수행되며, 독출된 데이터는 컨트롤러(710)로 제공된다. 컨트롤러(710)는 수신된 데이터에 대한 에러 검출 동작을 수행하고, 에러 비트가 검출되지 않은 경우 상기 ECC 패리티가 저장된 ECC 블록을 무효화시킨 후 해당 기록 동작을 종료한다. 반면에, 정정이 불가능한 에러가 발생한 경우에는 해당 데이터에 대한 재기록 동작 및 독출-검증 동작이 재수행되도록 제어하며, 정정 가능한 에러만이 발생한 경우에는 해당 ECC 블록을 유효화한 상태로 기록 동작을 종료한다.
도 17은 본 발명의 다른 실시예에 따른 컴퓨터 시스템를 나타내는 블록도이다. 도 17에서는 메인 메모리와 캐쉬 메모리 사이의 맵핑이 직접 맵핑(Direct Mapping) 방식이 적용되는 예가 도시된다.
도 17에 도시된 바와 같이, 컴퓨터 시스템(800)은 메인 메모리(810)와 캐쉬 메모리(820, 830)를 포함할 수 있다. 캐쉬 메모리(820, 830)는 메인 메모리(810)의 데이터가 복사되는 데이터 영역(820)과, 데이터의 에러 정정을 위한 ECC 패리티가 저장되는 ECC 영역(830)을 포함한다.
메인 메모리(810)는 일정한 크기의 영역들로 구분되며, 예컨대 데이터 영역(820)의 데이터가 저장되는 사이즈와 동일한 사이즈로 영역들이 구분될 수 있다. 메인 메모리(810)의 구분된 영역들 각각에 대해 태그(Tag) 값이 설정되며, 예컨대 메인 메모리(810)의 제1 영역의 태그(Tag) 값은 00, 제2 영역의 태그(Tag) 값은 01 등으로 설정된다.
또한, 메인 메모리(810)의 각각의 영역은 다수의 라인들을 포함하며, 각각의 라인은 메인 메모리(810)로부터 캐쉬 메모리(820, 830)로 한 번에 복사되는 데이터의 단위일 수 있다. 도 17에 도시되지는 않았으나 메인 메모리(810)의 각각의 영역의 라인들에 대해 그 위치를 나타내는 정보(예컨대, 인덱스 정보)가 설정된다. 또한, 각각의 라인에 대한 바이트 단위의 매핑을 위한 워드(word) 필드가 더 이용될 수 있다.
메인 메모리(810)의 데이터가 캐쉬 메모리(820, 830)에 복사되도록 요청되면, 데이터 및 이에 대응하는 태그(Tag) 값이 데이터 영역(820)에 기록된다. 또한, 상기 데이터에 대응하는 ECC 패리티가 생성되며, 생성된 ECC 패리티는 ECC 영역(830)의 ECC 필드 상에 기록된다. 또한, ECC 패리티가 기록되는 ECC 블록의 유효 정보, 그리고 ECC 블록에 대응하는 데이터 블록(또는, 라인)의 위치를 나타내는 위치 정보가 ECC 블록에 더 기록된다.
데이터 영역(820)에 포함되는 다수의 라인들 각각은 전술한 실시예에서의 데이터 블록에 해당할 수 있다. 또한, ECC 영역(830)은 하나 이상의 라인을 포함할 수 있으며, 각각의 라인에는 하나 이상의 ECC 블록이 포함될 수 있다. 도 17에는 ECC 영역(830)의 하나의 라인이 하나의 ECC 블록을 포함하는 것으로 도시되었으나, 두 개 이상의 ECC 블록을 포함하여도 무방하다.
ECC 영역(830)의 하나의 ECC 블록은 데이터 영역(820)의 두 개의 라인들에 공유될 수 있다. 즉, 데이터 영역(820)의 라인들에 데이터를 기록하는 도중 에러 비트가 발생되지 않은 경우에는, 에러 비트가 발생되지 않은 라인에는 ECC 블록을 할당하지 않는다(또는, 해당 ECC 블록을 무효화한다). 반면에, 정정 가능한 에러 비트가 발생된 라인들에 대해서는 ECC 블록이 할당되며, 상기 ECC 블록에는 ECC 패리티 이외에도 할당된 라인의 위치 정보(예컨대, 인덱스 정보) 및 유효 정보가 더 기록된다. 즉, ECC 블록에 포함될 수 있는 웨이 필드 정보는 데이터 영역(820)의 라인의 위치를 나타내는 인덱스 정보를 포함할 수 있다.
도 18은 본 발명의 또 다른 실시예에 다른 캐쉬 메모리를 나타내는 블록도이다. 도 18에서는 메인 메모리와 캐쉬 메모리 사이의 맵핑이 어소시에이티브 맵핑(Associative Mapping) 방식이 적용되는 예가 도시된다.
도 18에 도시된 바와 같이, 컴퓨터 시스템(900)은 메인 메모리(910)와 캐쉬 메모리(920, 930)를 포함할 수 있다. 캐쉬 메모리(920, 930)는 메인 메모리(910)의 데이터가 복사되는 데이터 영역(920)과, 데이터의 에러 정정을 위한 ECC 패리티가 저장되는 ECC 영역(930)을 포함한다.
메인 메모리(910)는 다수의 영역들을 포함하며, 각각의 영역들에는 어드레스가 할당된다. 그리고, 메인 메모리(910)의 데이터를 캐쉬 메모리(920, 930)에 복사함에 있어서, 데이터 영역(920)에는 데이터 및 해당 영역의 어드레스가 태그(Tag) 값으로서 기록될 수 있다.
메인 메모리(910)의 데이터가 캐쉬 메모리(920, 930)에 복사되도록 요청되면, 데이터 및 이에 대응하는 태그(Tag) 값이 데이터 영역(920)에 기록된다. 또한, 상기 데이터에 대응하는 ECC 패리티가 생성되며, 생성된 ECC 패리티는 ECC 영역(930)의 ECC 블록에 기록된다. 또한, ECC 패리티가 기록되는 ECC 블록의 유효 정보가 ECC 블록에 더 기록되며, 그리고 ECC 블록에 대응하는 데이터 블록의 위치를 나타내는 위치 정보가 ECC 블록에 더 기록된다. 데이터 블록의 위치는 실제 메인 메모리(910)의 어드레스일 수 있으며, 이에 따라 메인 메모리(910)의 어드레스 정보가 ECC 블록에 더 기록될 수 있다.
도 17, 18의 실시예에서, 데이터 영역(920)에 태그(Tag) 값이 더 기록되고, 또한 ECC 영역(930)에 유효 정보 및 위치 정보가 더 기록되는 예가 도시되었으나, 전술한 실시예에서와 같이 추가의 셀 어레이가 캐쉬 메모리에 더 구비되고, 상기 태그(Tag) 값과 유효 정보 및 위치 정보는 추가의 셀 어레이에 기록되어도 무방하다.
도 19는 본 발명의 다른 실시예에 따른 캐쉬 메모리의 동작방법을 나타내는 플로우차트이다. 도 19는 캐쉬 메모리에 포함된 ECC 블록들이 모두 유효 상태인 경우 데이터를 기록하는 동작의 예를 나타낸다.
먼저, 기록 요청이 캐쉬 메모리에 수신되고(S31), 기록 요청된 데이터에 대응하는 ECC 패리티를 ECC 블록에 기록하기 위하여 이용 가능한 ECC 블록이 존재하는지를 확인한다. 예컨대, ECC 블록의 유효 정보를 확인하여 각각의 ECC 블록이 ECC 에러 정정을 위한 ECC 패리티를 유효하게 저장하고 있는지를 확인한다(S32).
상기 확인 결과에 따라 무효 ECC 블록이 존재하는지가 판단되고(S33), 판단 결과 무효 ECC 블록이 존재하는 경우에는 기록 요청된 데이터 및 이에 대응하는 ECC 패리티를 기록하고(S34), 기록된 데이터를 독출하여 에러 비트의 수를 검출하는 독출 및 검증 동작을 수행한다(S35). 이후, 전술한 실시예에서와 같이 에러 비트가 발생하지 않은 경우 해당 ECC 블록을 무효화하며, 또는 정정 가능한 에러만이 발생한 경우에는 해당 ECC 블록을 유효화한다.
반면에, 무효 ECC 블록이 존재하지 않는 것으로 판별된 경우에는, 어느 하나의 데이터 블록 및 이에 대응하는 유효한 ECC 블록을 선택한다(S36). 선택된 데이터 블록에 대해 데이터(또는, 블록 데이터)를 재기록하는 동작이 수행되고(S37), 재기록된 데이터를 독출하여 검증 동작을 통해 에러 비트가 존재하는지가 검출된다(S38). 검출 결과 에러 비트가 존재하는 경우에는 블록 데이터를 재기록하는 동작을 반복한다. 즉, 선택된 데이터 블록에 대응하는 ECC 블록을 무효화하기 위하여, 정정 가능한 에러만이 발생한 경우에도 상기 블록 데이터를 재기록하는 동작이 수행된다.
재기록 결과 데이터에 에러 비트가 발생되지 않은 경우에는 대응하는 ECC 블록을 무효화시키며(S39), 무효화된 ECC 블록에 기록 요청된 데이터의 ECC 패리티를 기록한다. 이후, 기록된 데이터에 대한 독출 및 검증 동작이 수행된다.
도 20a,b는 본 발명의 또 다른 실시예에 따른 캐쉬 메모리의 동작방법을 나타내는 플로우차트이다. 도 20a,b 또한 캐쉬 메모리에 포함된 ECC 블록들이 모두 유효 상태인 경우 데이터를 기록하는 동작의 예를 나타낸다. 도 19에서는 유효한 ECC 블록들 중 임의로 어느 하나의 유효한 ECC 블록을 선택하는 동작이 설명된 반면에, 도 20a,b에서는 ECC 블록들의 사용 상태에 따라 특정한 ECC 블록을 선택하는 예가 설명된다.
도 20a에 도시된 바와 같이, ECC 블록에는 유효 정보, 위치 정보 및 ECC 패리티가 저장되는 것 이외에, ECC 패리티가 저장된 시점(또는, ECC 블록이 유효화된 시점)을 나타내는 시간 정보(Time Info)가 더 저장된다. 또는, 상기 시간 정보(Time Info)는 다수의 ECC 블록들 중 유효화된 순서를 나타내는 정보일 수도 있다.
도 20b에 따르면, 캐쉬 메모리에 구비되는 모든 ECC 블록들이 유효한지를 확인한다(S41). 확인 결과 모든 ECC 블록들이 유효한 경우, ECC 블록들 각각에 저장된 시간 정보를 확인하고(S42), ECC 블록들 중 최초로 이용된(또는, 최초로 유효화된) ECC 블록을 선택한다(S43). 선택된 ECC 블록에 대응하는 데이터 블록의 데이터(또는, 블록 데이터)를 재기록하는 동작이 수행되며(S44), 재기록된 데이터에 에러 비트가 존재하는 지가 검출된다(S45).
전술한 실시예에서와 같이, 선택된 ECC 블록을 무효화시키기 위하여, 재기록된 데이터에는 에러 비트가 발생되지 않을 필요가 있으며, 이에 따라 에러 비트가 존재하는 경우에는 해당 데이터를 재기록하는 동작을 반복한다. 재기록된 데이터에 대해 에러 비트가 검출되지 않은 경우에는 상기 선택된 ECC 블록(또는, 최초로 유효화된 ECC 블록)을 무효화시킨다.
도 19 및 도 20a,b의 실시예에서 설명된 ECC 블록의 무효화 동작은 다양한 형태로 수행될 수 있다. 예컨대, 모든 ECC 블록이 유효화 상태인 것으로 판단되면, 이후의 기록 요청을 수신하기 전에 어느 하나의 ECC 블록을 임의적으로 선택하거나 또는 기타 정보(예컨대, 시간 정보)를 이용하여 하나의 ECC 블록을 선택하여 무효화시킬 수 있다. 또는, 모든 ECC 블록이 유효화 상태에서 기록 요청이 수신되는 경우, 무효화 상태를 갖는 ECC 블록을 검색하는 과정에서 모든 ECC 블록이 유효화 상태인 것으로 판단될 수 있으며, 그 판단 결과에 따라 하나의 ECC 블록을 임의적으로 선택하거나 기타 정보를 이용하여 선택하여 무효화 동작을 수행할 수 있다. 또는, 상기 예에서는 하나의 ECC 블록을 선택하는 것으로 설명되었으나, 두 개 이상의 ECC 블록을 선택하여 무효화 동작을 수행하여도 무방하다.
도 21은 본 발명의 실시예에 따른 캐쉬 메모리의 동작을 위한 MRAM의 다른 구현 예를 나타내는 블록도이다. 도 21에는 데이터 독출시 ECC 블록의 정보에 기반한 ECC 정정의 스킵 동작에 관련된 예가 도시된다.
도 21에 도시된 바와 같이, 같이 MRAM(1000)은 ECC 블록에 관련된 유효 정보나 위치 정보를 저장하는 ECC 태그 어레이(1100)와 데이터를 저장하는 데이터 어레이(1200)를 포함할 수 있으며, 데이터 기록/독출, ECC 패리티 기록/독출 동작 등에 관련된 각종 주변 회로들로서 로우 디코더(111), 입출력 센스앰프(1120, 1210), 비교부(1130), 논리 연산회로(1140), 정보 생성부(1150), 멀티플렉서(1220, 1240) 및 에러 정정회로(1230) 등이 구비될 수 있다.
데이터 독출시, 독출 요청되는 데이터 블록에 대응하여 유효한 ECC 블록이 존재하는지 여부가 판별되며, 이를 위하여 ECC 태그 어레이(1100)로부터 독출된 정보는 입출력 센스앰프(1120)를 거쳐 비교부(1130)로 제공된다. 상기 비교부(1130)는 독출된 위치 정보(W1~Wm)와 제1 웨이 정보(Way Info 1)를 비교할 수 있다. 전술한 실시예에서와 같이, 데이터 독출을 위하여 데이터 태그 값에 대한 비교 동작이 수행될 수 있으며, 제1 웨이 정보(Way Info 1)는 상기 태그 값에 대한 비교 동작에 기반하여 생성된 억세스 요청되는 데이터 블록의 위치를 나타낼 수 있다.
상기 비교 결과 및 독출된 유효 정보(V1~Vm)에 근거하여 억세스 요청되는 데이터 블록에 대응하는 ECC 패리티가 저장되어 있는지 여부가 판별된다. 정보 생성부(1150)는 상기 비교 결과 및 논리 연산 결과를 수신하며, 이에 기반하여 ECCP 히트/미스 정보를 생성한다. 만약, ECCP 히트의 경우, 억세스되는 데이터는 에러 정정 동작이 수행될 필요가 있으므로, 에러 정정회로(1230)는 에러 정정 동작을 수행하며 멀티플렉서(1240)는 에러 정정된 데이터를 선택적으로 출력한다. 반면에, ECCP 미스의 경우, 데이터 어레이(1200)로부터 독출된 데이터는 에러 정정 동작 없이 멀티플렉서(1240)를 통해 출력된다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.

Claims (20)

  1. 데이터를 저장하는 다수의 데이터 블록들을 포함하는 제1 저장 영역; 및
    n 개의 데이터 블록들에 대응하여 배치되는 m 개의 ECC 블록을 포함하는 제2 저장 영역을 구비하고,
    상기 제1 및 제2 저장 영역 각각은 불휘발성 메모리 셀들을 포함하며,
    적어도 하나의 ECC 블록은, 대응하는 데이터 블록의 에러 비트를 정정하기 위한 ECC 패리티 및 상기 대응하는 데이터 블록의 위치를 나타내는 제1 정보를 저장하며,
    제1 데이터의 기록이 요청됨에 따라 상기 제1 데이터가 상기 n 개의 데이터 블록들 중 어느 하나에 기록되고, 다른 데이터 블록에 대응하여 유효하게 ECC 패리티가 저장된 ECC 블록을 무효화함에 의해 무효화된 ECC 블록이 생성되며, 상기 제1 데이터에 대응하는 ECC 패리티가 상기 무효화된 ECC 블록에 기록된 후 상기 무효화된 ECC 블록이 유효화 처리되는 것을 특징으로 하는 캐쉬 메모리(단, m 은 n 보다 작은 자연수).
  2. 제1항에 있어서,
    상기 불휘발성 메모리 셀들은 MRAM(Magnetic Random Access Memory) 셀인 것을 특징으로 하는 캐쉬 메모리.
  3. 제1항에 있어서,
    상기 제1 및 제2 저장 영역 각각은 다수 개의 세트를 포함하고,
    각각의 세트는 상기 n 개의 데이터 블록들 및 상기 m 개의 ECC 블록을 포함하는 것을 특징으로 하는 캐쉬 메모리.
  4. 제1항에 있어서,
    상기 제1 및 제2 저장 영역 각각은 다수 개의 세트를 포함하고,
    상기 n 개의 데이터 블록들은 상기 제1 저장 영역의 두 개 이상의 세트에 포함되고, 상기 m 개의 ECC 블록은 상기 제2 저장 영역의 어느 하나의 세트에 포함되는 것을 특징으로 하는 캐쉬 메모리.
  5. 제1항에 있어서,
    상기 ECC 블록은, 해당 ECC 블록의 유효 여부를 나타내는 제2 정보를 더 저장하는 것을 특징으로 하는 캐쉬 메모리.
  6. 제5항에 있어서,
    데이터 기록 동작시, 상기 ECC 블록의 제2 정보를 판별한 결과에 따라, 무효한 ECC 블록들 중 ECC 패리티가 기록될 ECC 블록이 선택되는 것을 특징으로 하는 캐쉬 메모리.
  7. 제1항에 있어서,
    상기 제1 저장 영역은, 외부로부터의 인덱스 정보에 의해 선택되는 다수 개의 세트를 포함하고, 각각의 세트는 상기 n 개의 데이터 블록들을 포함하는 n웨이 셋 어소시에이티브 구조를 가지며,
    상기 제2 저장 영역은, 상기 인덱스 정보에 의해 선택되는 다수 개의 세트를 포함하고, 각각의 세트는 상기 m 개의 ECC 블록을 포함하는 m웨이 셋 어소시에이티브 구조를 갖는 것을 특징으로 하는 캐쉬 메모리.
  8. 제1항에 있어서,
    상기 데이터의 에러 비트 수를 검출한 결과에 따라 ECC 패리티를 생성하는 ECC부를 더 구비하는 것을 특징으로 하는 캐쉬 메모리.
  9. 제1항에 있어서,
    상기 제1 데이터에 에러 비트가 발생하지 않은 경우, 상기 제1 데이터에 대응하는 ECC 패리티의 기록 동작이 스킵되고,
    상기 제1 데이터에 정정 가능한 에러 비트가 발생한 경우, 상기 제1 데이터에 대응하는 ECC 패리티의 기록 동작이 수행되는 것을 특징으로 하는 캐쉬 메모리.
  10. 외부로부터의 어드레스에 응답하여 어드레싱되는 다수의 세트를 포함하고, 각각의 세트는 데이터를 저장하는 n 개의 데이터 블록과 상기 n 개의 데이터 블록에 의해 공유되는 m 개의 ECC 블록을 포함하며, 각각의 데이터 블록과 ECC 블록은 불휘발성 메모리 셀들을 포함하는 셀 어레이; 및
    독출 요청되는 데이터 블록에 대응하는 ECC 블록의 존재 여부에 따라 선택적으로 에러 정정 동작을 수행하는 ECC 부를 구비하고,
    상기 m 개의 ECC 블록은 상기 n 개의 데이터 블록 중 일부의 데이터 블록에 대응하는 ECC 패리티를 유효하게 저장하고, 상기 n 개의 데이터 블록 중 나머지 블록들은 대응하는 ECC 패리티가 상기 m 개의 ECC 블록에 기록되지 않으며,
    상기 ECC부는, 상기 m 개의 ECC 블록에 상기 ECC 패리티가 유효하게 저장된 상기 일부의 데이터 블록에 대해 독출이 요청될 때 상기 에러 정정 동작을 선택적으로 수행하는 것을 특징으로 하는 캐쉬 메모리(단, m 은 n 보다 작은 자연수).
  11. 제10항에 있어서,
    각각의 데이터 블록에 대응하는 태그 값을 저장하는 제1 태그 어레이; 및
    각각의 ECC 블록의 유효 여부를 나타내는 제1 정보 및 각각의 ECC 블록에 대응하는 데이터 블록의 위치를 나타내는 제2 정보를 저장하는 제2 태그 어레이를 더 구비하는 것을 특징으로 하는 캐쉬 메모리.
  12. 제11항에 있어서,
    상기 제2 태그 어레이에 저장된 각각의 ECC 블록의 제1 정보 및 제2 정보 중 적어도 하나를 검출한 결과에 따라, 상기 에러 정정 동작의 수행이 제어되는 것을 특징으로 하는 캐쉬 메모리.
  13. 셀 어레이를 포함하는 캐쉬 메모리의 동작방법에 있어서,
    상기 셀 어레이는 불휘발성 메모리 셀들을 포함하고, n 개의 데이터 블록마다 m 개의 ECC 블록이 배치되며(단, m 은 n 보다 작은 자연수),
    기록 요청에 응답하여 제1 데이터를 상기 n 개의 데이터 블록 중 선택된 제1 데이터 블록에 기록하는 단계;
    상기 제1 데이터 블록에 기록된 제1 데이터를 독출하여 에러 비트를 검출하는 단계; 및
    상기 검출 결과에 따라, 상기 제1 데이터 블록에 대응하는 ECC 패리티를 상기 m 개의 ECC 블록 중 선택된 제1 ECC 블록에 기록하는 단계를 구비하고,
    상기 제1 ECC 블록에 기록하는 단계는,
    다른 데이터 블록에 대응하는 ECC 패리티를 저장하는 상기 제1 ECC 블록을 무효화하는 단계;
    상기 제1 데이터 블록에 대응하는 ECC 패리티를 상기 제1 ECC 블록에 기록하는 단계; 및
    상기 제1 데이터 블록에 대응하는 ECC 패리티가 기록된 상기 제1 ECC 블록을 유효화하는 단계를 포함하는 것을 특징으로 하는 캐쉬 메모리의 동작방법.
  14. 제13항에 있어서,
    상기 불휘발성 메모리 셀들은 MRAM(Magnetic Random Access Memory) 셀인 것을 특징으로 하는 캐쉬 메모리의 동작방법.
  15. 제13항에 있어서, 상기 제1 ECC 블록에 기록하는 단계는,
    상기 독출된 제1 데이터에서 에러 비트가 발생되지 않은 경우 상기 ECC 패리티의 기록 동작이 스킵되고, 상기 독출된 제1 데이터에서 정정 가능한 에러 비트가 발생된 경우에 상기 ECC 패리티가 기록되는 것을 특징으로 하는 캐쉬 메모리의 동작방법.
  16. 제15항에 있어서,
    상기 독출된 제1 데이터에서 정정 불가능한 에러 비트가 발생된 경우, 상기 기록 요청된 제1 데이터를 상기 제1 데이터 블록에 재기록하고, 재기록된 제1 데이터에 대한 독출 및 에러 비트 검출 동작을 재수행하는 것을 특징으로 하는 캐쉬 메모리의 동작방법.
  17. 제13항에 있어서, 상기 ECC 블록은,
    상기 ECC 패리티를 저장하는 제1 필드,
    유효한 ECC 패리티의 저장 여부를 나타내는 제1 정보를 저장하는 제2 필드; 및
    대응하는 데이터 블록의 위치를 나타내는 제2 정보를 저장하는 제3 필드를 포함하는 것을 특징으로 하는 캐쉬 메모리의 동작방법.
  18. 제17항에 있어서,
    데이터 독출 요청에 응답하여 어느 하나의 데이터 블록의 데이터를 독출하는 단계; 및
    상기 제1 및 제2 정보 중 적어도 하나를 검출한 결과에 따라 상기 독출된 데이터에 대한 에러 정정 동작을 선택적으로 수행하는 단계를 더 구비하는 것을 특징으로 하는 캐쉬 메모리의 동작방법.
  19. 삭제
  20. MRAM 셀들을 포함하는 다수의 데이터 블록들 및 다수의 ECC 블록들을 포함하는 MRAM 셀 어레이;
    상기 MRAM 셀 어레이의 로우를 선택하는 로우 디코더; 및
    상기 MRAM 셀 어레이의 컬럼을 선택하는 컬럼 디코더를 구비하고,
    상기 ECC 블록들은 상기 데이터 블록들보다 적은 개수를 가지며, 선택된 데이터 블록에 기록된 데이터에 정정 가능한 에러 비트가 존재할 때 상기 데이터에 대응하는 ECC 패리티가 상기 ECC 블록에 기록되고,
    제1 데이터의 기록이 요청됨에 따라 상기 제1 데이터가 상기 다수의 데이터 블록들 증 어느 하나에 기록되고, 다른 데이터 블록에 대응하여 유효하게 ECC 패리티가 저장된 제1 ECC 블록에 대한 무효화 처리가 수행되며, 상기 제1 데이터에 대응하는 ECC 패리티가 상기 무효화된 제1 ECC 블록에 저장된 후 상기 제1 ECC 블록이 유효화 처리되는 것을 특징으로 하는 엠램 메모리 장치.
KR1020120135558A 2012-11-27 2012-11-27 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템 KR102025340B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020120135558A KR102025340B1 (ko) 2012-11-27 2012-11-27 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템
US13/790,113 US9250997B2 (en) 2012-11-27 2013-03-08 Semiconductor memory device including non-volatile memory, cache memory, and computer system
US14/978,538 US9552256B2 (en) 2012-11-27 2015-12-22 Semiconductor memory device including non-volatile memory, cache memory, and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120135558A KR102025340B1 (ko) 2012-11-27 2012-11-27 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템

Publications (2)

Publication Number Publication Date
KR20140067819A KR20140067819A (ko) 2014-06-05
KR102025340B1 true KR102025340B1 (ko) 2019-09-25

Family

ID=50774417

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120135558A KR102025340B1 (ko) 2012-11-27 2012-11-27 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템

Country Status (2)

Country Link
US (2) US9250997B2 (ko)
KR (1) KR102025340B1 (ko)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6275427B2 (ja) * 2013-09-06 2018-02-07 株式会社東芝 メモリ制御回路およびキャッシュメモリ
KR102126760B1 (ko) * 2014-04-07 2020-06-25 삼성전자 주식회사 비휘발성 메모리 장치의 구동 방법
TWI556254B (zh) * 2014-10-14 2016-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料存取方法
CN104503707B (zh) * 2014-12-24 2018-03-06 华为技术有限公司 读取数据的方法以及装置
US9507663B1 (en) 2015-05-04 2016-11-29 Macronix International Co., Ltd. Memory device and operation method
US10063263B2 (en) * 2015-05-20 2018-08-28 International Business Machines Corporation Extended error correction coding data storage
CN106297879B (zh) * 2015-05-21 2019-09-24 旺宏电子股份有限公司 存储器装置与其操作方法
TWI573146B (zh) * 2015-05-28 2017-03-01 旺宏電子股份有限公司 記憶體裝置與其操作方法
US10163479B2 (en) 2015-08-14 2018-12-25 Spin Transfer Technologies, Inc. Method and apparatus for bipolar memory write-verify
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
KR20170060263A (ko) * 2015-11-24 2017-06-01 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
KR20170140931A (ko) 2016-06-14 2017-12-22 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
US10372566B2 (en) * 2016-09-16 2019-08-06 Micron Technology, Inc. Storing memory array operational information in nonvolatile subarrays
US10546625B2 (en) 2016-09-27 2020-01-28 Spin Memory, Inc. Method of optimizing write voltage based on error buffer occupancy
US10366774B2 (en) 2016-09-27 2019-07-30 Spin Memory, Inc. Device with dynamic redundancy registers
US10192601B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers
US10628316B2 (en) 2016-09-27 2020-04-21 Spin Memory, Inc. Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register
US10360964B2 (en) 2016-09-27 2019-07-23 Spin Memory, Inc. Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device
US10192602B2 (en) * 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Smart cache design to prevent overflow for a memory device with a dynamic redundancy register
US10818331B2 (en) 2016-09-27 2020-10-27 Spin Memory, Inc. Multi-chip module for MRAM devices with levels of dynamic redundancy registers
US10437723B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
US10437491B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register
US10460781B2 (en) 2016-09-27 2019-10-29 Spin Memory, Inc. Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank
KR20180055148A (ko) 2016-11-16 2018-05-25 에스케이하이닉스 주식회사 반도체장치 및 반도체시스템
KR20180091989A (ko) 2017-02-06 2018-08-17 에스케이하이닉스 주식회사 연장된 제품 수명을 갖는 메모리장치 및 그 동작방법
CN109390027B (zh) * 2017-08-08 2021-05-07 慧荣科技股份有限公司 解码方法及相关的闪存控制器与电子装置
US10908995B2 (en) 2017-09-29 2021-02-02 Nvidia Corporation Securing against errors in an error correcting code (ECC) implemented in an automotive system
US10489245B2 (en) 2017-10-24 2019-11-26 Spin Memory, Inc. Forcing stuck bits, waterfall bits, shunt bits and low TMR bits to short during testing and using on-the-fly bit failure detection and bit redundancy remapping techniques to correct them
US10481976B2 (en) 2017-10-24 2019-11-19 Spin Memory, Inc. Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers
US10656994B2 (en) 2017-10-24 2020-05-19 Spin Memory, Inc. Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques
US10529439B2 (en) 2017-10-24 2020-01-07 Spin Memory, Inc. On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects
KR102490104B1 (ko) * 2017-10-30 2023-01-19 삼성전자주식회사 데이터 보호를 사용하는 인-밴드 메모리에 액세스하기 위한 장치 및 방법
KR20190073660A (ko) 2017-12-19 2019-06-27 에스케이하이닉스 주식회사 캐시 메모리 장치 및 이를 포함하는 fpga
US10811594B2 (en) 2017-12-28 2020-10-20 Spin Memory, Inc. Process for hard mask development for MRAM pillar formation using photolithography
US10891997B2 (en) 2017-12-28 2021-01-12 Spin Memory, Inc. Memory array with horizontal source line and a virtual source line
US10424726B2 (en) 2017-12-28 2019-09-24 Spin Memory, Inc. Process for improving photoresist pillar adhesion during MRAM fabrication
US10360962B1 (en) 2017-12-28 2019-07-23 Spin Memory, Inc. Memory array with individually trimmable sense amplifiers
US10395711B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Perpendicular source and bit lines for an MRAM array
US10395712B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Memory array with horizontal source line and sacrificial bitline per virtual source
US10424723B2 (en) 2017-12-29 2019-09-24 Spin Memory, Inc. Magnetic tunnel junction devices including an optimization layer
US10784439B2 (en) 2017-12-29 2020-09-22 Spin Memory, Inc. Precessional spin current magnetic tunnel junction devices and methods of manufacture
US10840439B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Magnetic tunnel junction (MTJ) fabrication methods and systems
US10886330B2 (en) 2017-12-29 2021-01-05 Spin Memory, Inc. Memory device having overlapping magnetic tunnel junctions in compliance with a reference pitch
US10840436B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Perpendicular magnetic anisotropy interface tunnel junction devices and methods of manufacture
US10546624B2 (en) 2017-12-29 2020-01-28 Spin Memory, Inc. Multi-port random access memory
US10367139B2 (en) 2017-12-29 2019-07-30 Spin Memory, Inc. Methods of manufacturing magnetic tunnel junction devices
US10438995B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Devices including magnetic tunnel junctions integrated with selectors
US10438996B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Methods of fabricating magnetic tunnel junctions integrated with selectors
US10446744B2 (en) 2018-03-08 2019-10-15 Spin Memory, Inc. Magnetic tunnel junction wafer adaptor used in magnetic annealing furnace and method of using the same
US11107974B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Magnetic tunnel junction devices including a free magnetic trench layer and a planar reference magnetic layer
US10784437B2 (en) 2018-03-23 2020-09-22 Spin Memory, Inc. Three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US11107978B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Methods of manufacturing three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US20190296223A1 (en) 2018-03-23 2019-09-26 Spin Memory, Inc. Methods of Manufacturing Three-Dimensional Arrays with Magnetic Tunnel Junction Devices Including an Annular Free Magnetic Layer and a Planar Reference Magnetic Layer
US10754989B2 (en) * 2018-03-27 2020-08-25 International Business Machines Corporation Runtime self-correction for blockchain ledgers
US10411185B1 (en) 2018-05-30 2019-09-10 Spin Memory, Inc. Process for creating a high density magnetic tunnel junction array test platform
US10692569B2 (en) 2018-07-06 2020-06-23 Spin Memory, Inc. Read-out techniques for multi-bit cells
US10600478B2 (en) 2018-07-06 2020-03-24 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10593396B2 (en) 2018-07-06 2020-03-17 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10559338B2 (en) 2018-07-06 2020-02-11 Spin Memory, Inc. Multi-bit cell read-out techniques
US10650875B2 (en) 2018-08-21 2020-05-12 Spin Memory, Inc. System for a wide temperature range nonvolatile memory
JP2020042888A (ja) * 2018-09-13 2020-03-19 株式会社東芝 磁気ディスク装置および磁気ディスク装置の制御方法
US10699761B2 (en) 2018-09-18 2020-06-30 Spin Memory, Inc. Word line decoder memory architecture
US11621293B2 (en) 2018-10-01 2023-04-04 Integrated Silicon Solution, (Cayman) Inc. Multi terminal device stack systems and methods
US10971680B2 (en) 2018-10-01 2021-04-06 Spin Memory, Inc. Multi terminal device stack formation methods
US10957413B2 (en) 2018-10-31 2021-03-23 Micron Technology, Inc. Shared error check and correct logic for multiple data banks
JP2020087493A (ja) 2018-11-26 2020-06-04 キオクシア株式会社 半導体記憶装置
US11107979B2 (en) 2018-12-28 2021-08-31 Spin Memory, Inc. Patterned silicide structures and methods of manufacture
CN109903800A (zh) * 2019-03-15 2019-06-18 中国科学院上海微系统与信息技术研究所 相变储存器控制装置、相变储存器控制方法、电子装置及存储介质
CN112289353B (zh) * 2019-07-25 2024-03-12 上海磁宇信息科技有限公司 一种优化的具有ecc功能的mram系统及其操作方法
US20210306006A1 (en) 2019-09-23 2021-09-30 SK Hynix Inc. Processing-in-memory (pim) devices
US11734093B2 (en) * 2020-06-23 2023-08-22 Samsung Electronics Co., Ltd. Storage device block-level failure prediction-based data placement
CN112466380B (zh) * 2020-12-11 2023-08-11 西安紫光国芯半导体有限公司 存储器及其存储方法
US11636912B2 (en) * 2021-04-06 2023-04-25 Samsung Electronics Co., Ltd. ECC buffer reduction in a memory device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226592A1 (en) * 2006-03-20 2007-09-27 Micron Technology, Inc. Variable sector-count ECC
US20090144600A1 (en) * 2007-11-30 2009-06-04 Anobit Technologies Ltd Efficient re-read operations from memory devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023922A1 (en) 2001-07-25 2003-01-30 Davis James A. Fault tolerant magnetoresistive solid-state storage device
US20040015771A1 (en) 2002-07-16 2004-01-22 Menahem Lasser Error correction for non-volatile memory
JP4299558B2 (ja) 2003-03-17 2009-07-22 株式会社ルネサステクノロジ 情報記憶装置および情報処理システム
US6704230B1 (en) 2003-06-12 2004-03-09 International Business Machines Corporation Error detection and correction method and apparatus in a magnetoresistive random access memory
US7240275B2 (en) 2003-08-05 2007-07-03 Hewlett-Packard Development Company, L.P. Logical data block, magnetic random access memory, memory module, computer system and method
US7191379B2 (en) 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Magnetic memory with error correction coding
US7370260B2 (en) 2003-12-16 2008-05-06 Freescale Semiconductor, Inc. MRAM having error correction code circuitry and method therefor
US8006166B2 (en) * 2007-06-12 2011-08-23 Micron Technology, Inc. Programming error correction code into a solid state memory device with varying bits per cell
KR20090127643A (ko) 2008-06-09 2009-12-14 주식회사 하이닉스반도체 불량 셀 교정 회로를 포함하는 상 변화 메모리 장치
JP2010003348A (ja) 2008-06-19 2010-01-07 Toshiba Corp 半導体記憶装置及び誤り訂正方法
JP2010009383A (ja) 2008-06-27 2010-01-14 Fujitsu Ltd メモリ装置、および情報処理システム
US8458568B2 (en) * 2010-09-24 2013-06-04 International Business Machines Corporation Systems and methods for memory devices
KR101750457B1 (ko) 2010-12-30 2017-06-23 삼성전자주식회사 Ecc를 이용하는 메모리 장치 및 그 시스템
US9189329B1 (en) * 2011-10-13 2015-11-17 Marvell International Ltd. Generating error correcting code (ECC) data using an ECC corresponding to an identified ECC protection level

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226592A1 (en) * 2006-03-20 2007-09-27 Micron Technology, Inc. Variable sector-count ECC
US20090144600A1 (en) * 2007-11-30 2009-06-04 Anobit Technologies Ltd Efficient re-read operations from memory devices

Also Published As

Publication number Publication date
US20140149827A1 (en) 2014-05-29
US9250997B2 (en) 2016-02-02
KR20140067819A (ko) 2014-06-05
US20160110253A1 (en) 2016-04-21
US9552256B2 (en) 2017-01-24

Similar Documents

Publication Publication Date Title
KR102025340B1 (ko) 불휘발성 메모리를 포함하는 반도체 메모리 장치, 이를 포함하는 캐쉬 메모리 및 컴퓨터 시스템
US10198221B2 (en) Methods of operating semiconductor memory devices with selective write-back of data for error scrubbing and related devices
US10156995B2 (en) Semiconductor memory devices and methods of operating the same
KR102002925B1 (ko) 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
US20160155515A1 (en) Semiconductor memory devices, memory systems including the same and methods of operating the same
KR20180060084A (ko) 반도체 메모리 장치의 스크러빙 컨트롤러, 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
US10204700B1 (en) Memory systems and methods of operating semiconductor memory devices
US20050177679A1 (en) Semiconductor memory device
US20220359033A1 (en) Health scan for content addressable memory
US11237976B2 (en) Memory system, memory controller and meta-information storage device
US10496546B2 (en) Cache memory and processor system
US11126552B2 (en) Memory system, memory controller and method for operating memory controller
US11416401B2 (en) Memory system and operating method thereof
US11941272B2 (en) Memory system and operating method of memory system
US11636007B2 (en) Memory system and operating method thereof for flushing data in data cache with parity
US11507509B2 (en) Memory system, memory controller and method for operating memory system for determining whether to perform direct write based on reference write size
US11386000B2 (en) Memory system, memory controller and method for operating memory system in which different processors search for mapping information using different map search engines
US11429485B1 (en) Memories with end-to-end data protection using physical location check
US11899584B2 (en) System setting operating frequency of random access memory based on cache hit ratio and operating method thereof
US11507323B2 (en) Memory device and operating method thereof
US11704050B2 (en) Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks
US20220300187A1 (en) Memory system and operating method thereof
US20230205687A1 (en) Controller and operating method thereof
US20240004566A1 (en) Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system
KR20230161676A (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