KR102453866B1 - 트랜잭션 메타 데이터 - Google Patents

트랜잭션 메타 데이터 Download PDF

Info

Publication number
KR102453866B1
KR102453866B1 KR1020207033093A KR20207033093A KR102453866B1 KR 102453866 B1 KR102453866 B1 KR 102453866B1 KR 1020207033093 A KR1020207033093 A KR 1020207033093A KR 20207033093 A KR20207033093 A KR 20207033093A KR 102453866 B1 KR102453866 B1 KR 102453866B1
Authority
KR
South Korea
Prior art keywords
data
controller
memory device
bit
transaction metadata
Prior art date
Application number
KR1020207033093A
Other languages
English (en)
Other versions
KR20200135548A (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 KR1020227034593A priority Critical patent/KR20220140031A/ko
Publication of KR20200135548A publication Critical patent/KR20200135548A/ko
Application granted granted Critical
Publication of KR102453866B1 publication Critical patent/KR102453866B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • 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
    • G06F11/102Error in check bits
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • 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
    • 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/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • G06F9/467Transactional memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Memory System (AREA)

Abstract

트랜잭션 메타 데이터 제공과 관련된 장치 및 방법. 트랜잭션 메타 데이터를 제공하는 것은 메모리 장치 및 컨트롤러에 결합된 주소 버스를 사용하여 메모리 장치에 저장된 데이터의 주소를 제공하는 것을 포함한다. 트랜잭션 메타 데이터를 제공하는 것은 또한 메모리 장치 및 컨트롤러에 결합된 데이터 버스를 사용하여 메모리 장치로부터 주소와 관련된 데이터를 전송하는 것을 포함한다. 트랜잭션 메타 데이터를 제공하는 것은 또한 메모리 장치 및 컨트롤러에 결합된 트랜잭션 메타 데이터 버스를 사용하여 데이터 버스와 함께 그리고 데이터 버스와 동기 하여 측 파대 신호를 전송함을 더욱 포함한다.

Description

트랜잭션 메타 데이터
본 발명은 일반적으로 메모리에 관한 것이며, 특히 메모리로부터 검색된 데이터와 관련된 메타 데이터와 관련된 장치 및 방법에 관한 것이다.
메모리 장치는 일반적으로 컴퓨터 또는 기타 전자 장치의 내부, 반도체, 집적 회로로 제공된다. 휘발성 및 비 휘발성 메모리를 포함하여 다양한 타입의 메모리가 있다. 휘발성 메모리는 데이터를 유지하기 위해 전력이 필요할 수 있으며, 특히 임의 접근 기억장치(RAM), 동적 임의 접근 기억장치(DRAM) 및 동기식 동적 램(SDRAM)을 포함한다. 비 휘발성 메모리는 전원이 공급되지 않을 때 저장된 데이터를 유지하여 영구 데이터를 제공할 수 있으며, NAND 플래시 메모리, NOR 플래시 메모리, 읽기 전용 메모리(ROM), 전기적 삭제 가능 프로그램 가능 ROM(EEPROM), 삭제 프로그램 가능한 ROM(EPROM) 그리고 상 변화 메모리(PCRAM), 저항 메모리(RRAM) 및 자기 저항 메모리(MRAM)와 같은 가변 저항 메모리를 포함한다.
메모리는 또한 광범위한 전자 애플리케이션을 위한 휘발성 및 비 휘발성 데이터 저장 장치로 사용된다. 비 휘발성 메모리는 예를 들어 개인용 컴퓨터, 휴대용 메모리 스틱, 디지털 카메라, 휴대폰, MP3 플레이어와 같은 휴대용 음악 플레이어, 영화 플레이어 및 기타 전자 장치에 사용될 수 있다. 메모리 셀은 어레이 내로 배열될 수 있으며, 이 같은 어레이는 메모리 장치에서 사용된다.
다양한 컴퓨팅 시스템은 일련의 명령(예를 들어, 프로그램, 애플리케이션 등)을 실행하는 것과 관련하여 액세스되는 메모리(예를 들어, 메모리 시스템)에 결합된 처리 자원을 포함한다. 메모리 시스템은 오류 정정 코드(ECC)를 사용하여 데이터의 오류를 검출하고 정정할 수 있다.
도 1은 본 발명의 다수의 실시 예를 구현할 수 있는 메모리 장치 및 컨트롤러를 포함하는 메모리 시스템의 블록도 이다.
도 2는 본 발명의 다수의 실시 예들에 따른 트랜잭션 메타 데이터 프레임 포맷의 블록도 이다.
도 3은 본 발명의 다수의 실시 예에 따른 IOP 필드 포맷의 블록도 이다.
도 4는 본 발명의 다수의 실시 예들에 따른 트랜잭션 메타 데이터 프레임들의 블록도 이다.
본 발명은 메모리로부터 검색된 데이터와 관련된 트랜잭션 메타 데이터와 관련된 장치 및 방법을 포함한다. 예시적인 방법은 주소 버스를 통해 메모리 장치에 저장된 데이터의 주소를 제공하고, 주소와 연관된 데이터를 데이터 버스를 통해 메모리 장치로부터 전송하며, 그리고 데이터 버스와 동 기적으로 그리고 주소 버스와 함께 측 파대 신호를 전송함을 포함할 수 있다.
본 발명의 다수의 실시 예는 컨트롤러로 전송되는 데이터와 관련된 트랜잭션 메타 데이터를 제공할 수 있다. 트랜잭션 메타 데이터는 트랜잭션 정보 메타 데이터라고도 한다. 일부 예에서, 트랜잭션 메타 데이터는 메모리 장치를 사용하여 저장된 데이터에 대한 오류 정정을 수행하기 위해 오류 정정 코드(ECC)와 관련된 메타 데이터를 제공할 수 있다. 예를 들어, 일부 종전의 ECC는 메시지가 복구될 수 있도록 메시지에 중복 데이터 또는 패리티 데이터를 추가하는 것을 포함한다. 트랜잭션 메타 데이터는 다른 타입의 ECC 데이터 외에 패리티 데이터를 컨트롤러에 제공하도록 사용될 수 있다. 데이터 전송, 저장 및/또는 검색 중에 데이터에 오류가 발생할 수 있다.
스토리지는 컴퓨터 시스템에서 성능 병목 현상이었다. 데이터를 저장하고 스토리지로부터 데이터를 검색하는 기능은 컴퓨터 시스템이 계산 및 연산을 수행하는 능력을 제한하는 요소였다.
NAND 기반 스토리지 솔루션이 하드 드라이브 대기 시간보다 10 배 이상 향상되었지만 스토리지는 대기 시간 지연으로 남아 있다. PCM(상 변화 메모리), MRAM(자기 저항 랜덤 액세스 메모리), ReRAM(저항 랜덤 액세스 메모리) 및/또는 3D XPoint 메모리와 같은 이머징 메모리(EM)(Emerging Memory) 기술은 다른 메모리 기술에 비해 메모리 관련 대기 시간을 개선할 수 있다. EM은 나머지 시스템(예를 들면: 컴퓨팅 시스템)만큼 빠른 데이터 스토리지를 제공할 수 있다. EM은 컴퓨팅 시스템의 다른 구성 요소의 대기 시간과 비슷한 대기 시간을 갖는 데이터 스토리지를 제공할 수 있다. 스토리지 애플리케이션의 신뢰성 목표에 대처하기 위해, EM은 오류를 수정하고 EM을 호스팅하는 장치의 지연 시간이 짧은 성능을 유지할 수 있는 ECC를 활용 할 수 있다. 메모리 애플리케이션과 달리 스토리지 애플리케이션은 다양한 액세스 대기 시간을 허용 할 수 있으므로 대기 시간이 짧은 ECC 디코더를 사용하는 것이 좋다. 일부 예에서, 짧은 대기 시간은 짧은 수 나노 초 범위 내의 대기 시간을 포함할 수 있다. 다른 실시 예에서, 더욱 긴 대기 시간은 수 마이크로 초 범위 내의 대기 시간일 수 있다.
높은 정정 능력과 지연 시간이 짧은 ECC 디코더는 ECC 연결 방식 및 계층적 디코더를 이용함으로써 달성될 수 있다. 본원 명세서에서 사용되는 바와 같이, 계층 적 디코더는 데이터의 오류를 정정하기 위한 다중 디코더의 사용을 설명할 수 있다. 계층적 디코더로는 고속 디코딩(FD) 디코더 및 정확한 디코딩(AD) 디코더의 사용을 포함할 수 있다. 일부 예에서, 계층적 디코딩 방식은 FD 디코더를 이용할 수 있고 필요할 때 AD 디코더에서 사용되는 더 강력한 ECC에 의존할 수 있다.
다수의 실시 예에서, 계층적 코드 아키텍처는 메모리 장치에 내장된 FD 디코더 및 스코리지 컨트롤러에서 구현된 AD 디코더를 사용한다. 효과적이고 효율적인 솔루션을 갖기 위해 FD 디코더 아키텍처가 계층적 방식에서 사용하도록 조정될 수 있다.
FD 디코더는 유효성 플래그 및/또는 패리티 비트를 포함하는 복수의 다른 타입의 데이터를 사용하여 AD 디코더를 트리거할 수 있다. 유효성 플래그, 패리티 비트 및/또는 ECC와 관련된 다른 타입의 데이터는 트랜잭션 메타 데이터를 사용하여 메모리 장치에서 컨트롤러로 제공될 수 있다. 본원 명세서에 제공된 예는 ECC와 관련된 데이터를 제공하는 데 사용되지만, 상기 실시 예는 오류 정정 데이터로 제한되지 않고 메모리 장치와 관련된 다른 타입의 데이터를 제공하는 데 사용될 수 있다. 예를 들어, 트랜잭션 메타 데이터를 사용하여 메모리 장치와 관련된 온도를 제공할 수 있다. 상기 오류 정정 데이터는 본원 명세서에서 설명된 오류 정정 작업을 수행하는 데 사용되는 데이터를 포함할 수 있다.
본 발명의 다음의 상세한 설명에서, 본 발명의 일부를 형성하고, 본 발명의 다수의 실시 예가 어떻게 실행될 수 있는지를 예시적으로 도시하는 첨부 도면을 참조한다. 이들 실시 예는 당업자가 본 발명의 실시 예를 실행할 수 있도록 충분히 상세하게 설명되며, 다른 실시 예가 이용될 수 있고, 본 발명의 보호범위를 벗어나지 않는 한도에서 본 발명의 프로세스, 전기적 및/또는 구조적 변경이 이루어질 수 있음을 이해해야 한다. 본원 명세서에서 사용되는 바와 같이, 지정자 "N"은 그와 같이 지정된 특정 특징의 개수가 본 발명의 다수의 실시 예에 포함될 수 있음을 나타낸다.
본원 명세서에서 사용되는 바와 같이, "다수의" 무언가는 그러한 것들 하나 이상을 지칭할 수 있다. 예를 들어, 다수의 메모리 장치는 하나 이상의 메모리 장치를 참조할 수 있다. 어떤 것의 "복수"는 둘 이상을 의미한다. 추가로, 특히 도면에서 참조 번호와 관련하여 본원 명세서에서 사용되는 "N"과 같은 지정자는 그렇게 지정된 특정 특징의 개수가 본원 발명의 다수의 실시 예에 포함될 수 있음을 나타낸다.
본원 명세서의 도면은 첫 번째 숫자가 도면 번호에 대응하고 나머지 숫자가 도면의 요소 또는 구성 요소를 식별하는 번호를 지정하는 규칙을 따른다. 서로 다른 도면 사이의 유사한 요소 또는 구성 요소는 유사한 도면 부호를 사용하여 식별할 수 있다. 이해되는 바와 같이, 본원 명세서의 다양한 실시 예에 도시된 요소는 본 발명의 다수의 추가 실시 예를 제공하기 위해 추가, 교환 및/또는 제거 될 수 있다. 또한, 도면에 제공된 요소의 비율 및 상대적인 규모는 본 발명의 다양한 실시 예를 예시하기 위한 것이며 제한적인 의미로 사용되어서는 안 된다.
도 1은 본 발명의 다수의 실시 예를 구현할 수 있는 메모리 장치(104-1) 및 컨트롤러(102)를 포함하는 메모리 시스템(100)의 블록도 이다. 메모리 시스템(100)은 일반적으로 메모리 장치(104)로 지칭되는 메모리 장치(104-1 및 104-2) 및 컨트롤러(102)를 포함한다. 메모리 시스템(100)은 또한 일반적으로 데이터 버스(108)로 지칭되는 데이터 버스(108-1 및 108-2) 및 트랜잭션 메타 데이터 버스(110)를 포함한다.
본원 명세서에서 사용되는 바와 같이, "장치"는 회로 또는 복수 회로, 다이 또는 복수 다이, 모듈 또는 복수 모듈, 장치 또는 복수 장치, 또는 시스템 또는 복수 시스템과 같은 다양한 구조 또는 구조의 조합을 의미할 수 있지만 그와 같은 한정으로 제한되는 것은 아니다. 예를 들어, 메모리 시스템(100), 컨트롤러(102), 메모리 장치(104) 및 데이터 버스(108)는 개별적으로 또는 집합적으로 "장치"로 지칭될 수 있다.
본원 발명 실시 예에서, 컴퓨팅 시스템은 메모리 시스템(100)에 결합된 컨트롤러(102)에 결합된 호스트를 포함한다. 상기 컴퓨팅 시스템은 랩톱 컴퓨터, 개인용 컴퓨터, 디지털 카메라, 디지털 기록 및 재생 장치, 모바일 전화, PDA, 메모리 카드 판독기, 인터페이스 허브, 센서, 사물 인터넷(IoT) 지원 장치(예를 들면: 온도 조절기, 전구, 자물쇠, 보안 시스템, 칫솔, 애완 동물 급식기 등), 기타 시스템일 수 있으며, 호스트는 메모리 시스템(100)(예를 들어, 컨트롤러(102)를 통해)에 액세스할 수 있는 다수의 처리 자원(예를 들어, 하나 이상의 프로세서)을 포함할 수 있다. 상기 호스트는 적재(load)될 수 있는(예를 들어, 컨트롤러(102)를 통해 메모리 시스템(100)으로부터) 운영 체제(OS) 및/또는 다양한 애플리케이션의 실행을 담당할 수 있다.
컨트롤러(102)는 호스트로부터 메모리 트랜잭션 요청(예를 들어, 각각 적재 및 저장 명령으로 지칭될 수 있는 읽기 및/또는 쓰기 명령의 형태로)을 수신할 수 있다. 컨트롤러(102)는 예를 들어 적절한 프로토콜을 사용하는 버스와 같은 물리적인 인터페이스를 포함할 수 있는 다수의 인터페이스를 통해 호스트와 메모리 시스템(100) 사이에서 명령 및/또는 데이터를 전송할 수 있다. 이러한 프로토콜은 맞춤형 또는 독점적이거나, 인터페이스가 주변 컴포넌트 인터커넥트 익스프레스(Peripheral Component Interconnect Express)(PCIe), Gen-Z, CCIX 등과 같은 표준화된 프로토콜을 사용할 수 있다. 컨트롤러(102)는 하드웨어, 펌웨어 또는 소프트웨어, 또는 이들의 임의의 조합 형태의 컨트롤 회로를 포함할 수 있다. 일 예로서, 컨트롤러(102)는 상태 머신, 시퀀서 및/또는 인쇄 회로 기판에 결합된 주문형 집적 회로(ASIC)의 형태로 구현 될 수 있는 일부 다른 타입의 제어 회로를 포함할 수 있다. 다수의 실시 예에서, 컨트롤러(102)는 호스트와 함께 배치될 수 있다(예를 들어, 시스템 온 칩(SOC) 구성에서). 또한, 컨트롤러(102)는 메모리 시스템(100)과 함께 배치될 수 있다.
메모리 시스템(100)은 메모리 셀의 다수의 어레이(예를 들어, 뱅크) 및 예를 들어, 어레이(들)로 엑세스함(예를 들어, 어레이로부터의 데이터를 읽기 그리고 어레이로 데이터를 기록하기 등)과 관련된. 대응하는 지원 회로(예를 들어, 주소 회로, I/O 회로, 제어 회로, 판독/기록 회로 등)를 각각 포함할 수 있는 다수의 물리적 메모리 "칩"또는 다이를 포함할 수 있다. 일 예로서, 메모리 시스템(100)은 다수의 DRAM 장치, SRAM 장치, PCRAM 장치, RRAM 장치, FeRAM, 상 변화 메모리, 3DXpoint 및/또는 플래시 메모리 장치를 포함할 수 있다. 다수의 실시 예에서, 메모리 시스템(100)은 컴퓨팅 시스템을 위한 주 메모리로서 기능할 수 있다. 도 1에서 메모리 장치(104-1)는 모바일 3DX 포인트 장치일 수 있는 반면, 메모리 장치(104-2)는 NAND 메모리 장치이다. 그러나, 본원 명세서에 도시된 예는 모바일 3DX 포인트 장치 및/또는 NAND 메모리 장치로 제한되지 않는다. 본원 명세서에서 설명된 실시 예는 EM을 포함하는 다른 메모리 장치에 적용될 수 있다.
메모리 시스템(100)은 하나 이상의 트랜잭션 메타 데이터 버스를 통해 컨트롤러(102)에 연결될 수 있는 하나 이상의 메모리 장치를 포함할 수 있다. 예를 들어, 메모리 장치(104-1)는 데이터 버스(108-1) 및 메타 데이터 버스(110)를 통해 컨트롤러(102)에 결합된다. 메모리 장치(104-2)는 데이터 버스(108-2)를 통해 컨트롤러(102)에 결합 된다.
도시되지는 않았지만, 데이터 버스(108)는 다수의 버스 및/또는 라인을 나타낼 수 있다. 예를 들어, 데이터 버스(108)는 데이터 버스, 주소 버스 및/또는 명령 버스를 대표할 수 있다. 메모리 장치(104)는 데이터 버스(108), 명령 버스 및/또는 주소 버스를 포함하는 하나 이상의 버스를 통해 컨트롤러(102)에 연결될 수 있다.
데이터 버스(108)는 메모리 장치(104)로부터 컨트롤러(102)로 데이터를 전송하고 /하거나 컨트롤러(102)로부터 메모리 장치(104)로 데이터를 전송하도록 구성될 수 있다. 명령 버스는 컨트롤러(102)로부터 메모리 장치(104)로 명령을 제공하도록 구성될 수 있다. 명령은 메모리 장치(104)에 제공될 수 있는 다른 가능한 명령 중에서, 예를 들어 판독 명령 및/또는 기록 명령을 포함할 수 있다. 주소 버스는 명령과 관련된 주소 정보를 포함할 수 있다. 예를 들어, 판독 명령과 연관된 주소는 메모리 장치(104-1) 및 컨트롤러(102)로의 주소 버스 연결을 통해 제공될 수 있다.
트랜잭션 메타 데이터 버스(110)는 메모리 장치(104-1)를 컨트롤러(102)에 결합할 수 있다. 트랜잭션 메타 데이터 버스(110)는 데이터 버스(108-1)를 통해 전송되는 데이터와 관련된 트랜잭션 메타 데이터를 전송할 수 있다. 일부 예에서, 트랜잭션 메타 데이터 버스(110)는 32 클럭 사이클을 사용하여 트랜잭션 메타 데이터를 전송할 수 있고, 데이터 버스(108-1)는 또한 32 클록 사이클을 사용하여 데이터를 전송할 수 있다. 트랜잭션 메타 데이터 버스(110)는 또한 상이한 클록 사이클을 사용하여 트랜잭션 메타 데이터를 전송할 수 있다. 트랜잭션 메타 데이터 버스(110)는 메모리 장치(104-1)와 컨트롤러(102)를 결합하는 추가 DQ 버스일 수 있다. 트랜잭션 메타 데이터 버스(110)는 측파대 신호를 제공할 수 있다.
일부 예에서, 컨트롤러(102)는 명령 버스를 이용하여 메모리 장치(104)에 명령을 제공할 수 있다. 예를 들어, 컨트롤러(102)는 메모리 장치(104-1)에 판독 명령을 제공할 수 있다. 메모리 장치(104-1)는 판독 명령을 수신 및/또는 처리하는 것에 응답하여 데이터를 제공할 수 있다. 메모리 장치(104-1)는 또한 트랜잭션 메타 데이터 버스(110)를 사용하여 데이터와 동시에 트랜잭션 메타 데이터를 제공할 수 있다. 상기 트랜잭션 메타 데이터 데이터는 데이터가 컨트롤러(102)에 제공되는 동시에 컨트롤러(102)에 제공될 수 있다.
상기 트랜잭션 메타 데이터는 상기 데이터와 연관될 수 있다. 트랜잭션 메타 데이터의 크기는 데이터와 같은 크기일 수 있다. 트랜잭션 메타 데이터 프레임의 크기는 데이터 프레임과 동일한 크기일 수 있다. 트랜잭션 메타 데이터 및/또는 데이터의 크기는 미리 결정될 수 있다. 예를 들어 트랜잭션 메타 데이터 및 데이터의 크기는 64 바이트가 될 수 있지만 64 바이트로 제한되지는 않는다. 달리 말하면, 트랜잭션 메타 데이터의 길이는 데이터의 액세스 길이 알갱이(granularity)와 동일할 수 있다. 일부 예에서, 트랜잭션 메타 데이터 및 데이터는 페이지로(in pages) 제공될 수 있다. 트랜잭션 메타 데이터를 전송하는 데 사용되는 페이지의 크기는 데이터를 전송하는 데 사용되는 페이지의 크기와 동일할 수 있다.
일부 실시 예들에서, 컨트롤러(102)는 64 바이트를 수신할 수 있지만 전체 64 바이트를 처리하지는 않을 수 있다. 컨트롤러(102)는 64 바이트 중 미리 결정된 수를 판독하도록 구성될 수 있다. 미리 결정된 비트는 컨트롤러(102)가 미리 결정된 비트를 처리하기 위해 필요한 비트에 액세스 할 수 있도록 64 바이트 중 다른 것을 가리 키도록 구성될 수 있다. 컨트롤러(102)는 다수의 64 바이트를 포함하는 확장된 정보의 체인을 처리할 수 있다. 컨트롤러(102)는 64 바이트 중 제 1 수의 비트(a first number of bits)에 액세스 할 수 있다. 제 1 수의 비트를 처리하는 것에 응답하여, 컨트롤러(102)는 64 바이트 중 제 2 수의 비트에 액세스하여 제 1 비트 수와 제 2 비트 수의 체인을 형성할 수 있다. 상기 체인은 다른 수의 링크를 참조하는 상이한 수의 비트를 포함하는 복수의 링크를 포함할 수 있다.
트랜잭션 메타 데이터와 데이터 모두 컨트롤러(102)로부터 명령을 수신하는 것에 응답하여 컨트롤러(102)로 제공될 수 있다. 컨트롤러(102)로부터 명령을 수신하는 것과 데이터 및/또는 트랜잭션 메타 데이터를 제공하는 것 사이의 지연(예를 들어, 결정적인 판독 지연)이 데이터와 트랜잭션 메타 데이터 모두에 대해 동일할 수 있다. 이와 같이, 트랜잭션 메타 데이터의 첫 번째 비트와 데이터의 첫 번째 비트, 그리고 트랜잭션 메타 데이터와 데이터의 마지막 비트가 동시에 컨트롤러(102)로 제공될 수 있다.
다른 예에서, 트랜잭션 메타 데이터 및 데이터는 컨트롤러(102)로 동시에 전송되지 않고 제공될 수 있다. 그러한 예에서, 트랜잭션 메타 데이터의 첫 번째 비트는 데이터의 첫 번째 비트와 동시에 전송 될 필요가 없다. 제 1 데이터 세트를 생성하는 데 사용된 제 1 판독 명령과 연관된 트랜잭션 메타 데이터는 메모리 장치(104-1)가 제 2 판독 명령을 이행하기 전에 제공될 수 있다.
일부 실시 예들에서, 트랜잭션 메타 데이터는 데이터 버스(108-1)에 의한 전송과 무관하게 컨트롤러(102)에 제공될 수 있다. 트랜잭션 메타 데이터가 데이터 버스(108-1)를 사용하여 전송된 데이터에 대한 정보가 아니라 메모리 장치(104-1)에 대한 정보를 제공한다면, 트랜잭션 메타 데이터는 데이터 버스 전송과는 독립적으로 제공될 수 있다.
트랜잭션 메타 데이터는 데이터 버스(108-1)를 사용하여 전송된 데이터와 연관될 수 있다. 트랜잭션 메타 데이터는 데이터 버스(108-1)를 사용하여 전송된 데이터에 대해 수행되는 동작을 설명하는 정보, 데이터와 관련된 요청, 및/또는 데이터를 설명하는 정보를 포함할 수 있다.
도 2는 본 발명의 다수의 실시 예에 따른 트랜잭션 메타 데이터 프레임 포맷의 블록도 이다. 도 2는 트랜잭션 메타 데이터 프레임(220)을 포함한다. 트랜잭션 메타 데이터 프레임(220)은 도 1에 설명된 바와 같이 트랜잭션 메타 데이터를 제공하기 위해 사용될 수 있다.
트랜잭션 메타 데이터 프레임(220)은 상태 비트(예를 들면: STAT)(222), 내부 연산 비트(예를 들면: IOP)(224) 및 확장된 정보 비트(예를 들면: EXTI)(226)를 포함한다. 상태 비트(222), 내부 연산 비트(224), 확장된 정보 비트(226)는 각각 상태 필드, 내부 연산 필드 및 확장된 정보 필드로 지칭될 수 있다.
트랜잭션 메타 데이터 프레임(220)은 비트 "0"에서 시작하여 비트 "63"까지 확장되는 64 바이트를 포함한다. 트랜잭션 메타 데이터 프레임(220)은 다른 크기를 포함할 수 있다. 트랜잭션 메타 데이터 프레임(220)은 8, 16, 32, 128 또는 그 이상의 비트를 포함할 수 있다.
상태 비트(222), 내부 연산 비트(224) 및/또는 확장된 정보 비트(226)의 배치는 실시 예마다 다를 수 있다. 도 2의 실시 예는 0 내지 7의 비트 인덱스를 갖는 상태 비트(222)를 포함한다. 내부 연산 비트(224)는 비트 인덱스 8에서 15까지의 범위를 갖는다. 외부 정보 비트(226)는 비트 인덱스 16에서 63까지의 범위이다. 상태 비트(222), 내부 연산 비트(224) 및/또는 확장된 정보 비트(226) 각각은 여기에 설명된 것보다 더 많은 비트 또는 더 적은 비트를 포함할 수 있다.
상태 비트(222)는 심볼 "STAT"로 표현될 수 있다. 상태 비트(222)는 트랜잭션 메타 데이터를 제공하는 메모리 장치의 상태를 설명할 수 있다. 상태 비트(222)는 메모리 장치의 상태 레지스터에 저장된 데이터를 제공할 수 있다. 상태 비트(222)는 온도 경보, 온도, 및/또는 메모리 장치의 판독을 제공할 수 있다.
일부 예에서, 상태 비트(222)는 메모리 장치의 관리가 메모리 장치에 저장된 데이터의 관리보다 더 중요한지 여부를 결정하는 데 사용될 수 있다. 메모리 장치의 온도가 임계 값보다 높으면 컨트롤러가 메모리 장치를 관리하여 온도를 낮출 수 있다. 상태 비트(222)가 미리 결정된 차이(variances 차이) 내에서 기능하는 메모리 장치를 설명하기 위해 컨트롤러에 의해 처리되는 정보를 제공하는 경우, 컨트롤러는 내부 작업 비트(224)에 의해 설명된 바와 같이 데이터에 대해 수행된 데이터 및/또는 오류 정정을 계속 관리할 수 있다.
내부 연산 비트(224)는 "IOP"기호로 표현될 수 있다. 내부 연산 비트(224)는 도 2에서 시버리티(severities)로 설명되는 4 개의 다른 값을 포함할 수 있다. 내부 연산 비트(224)는 복수의 비트 값을 사용하여 레귤러 시버리티, 감시 시버리티, 경고 시버리티 또는 오류 시버리티로 설정될 수 있다.
레귤러 시버리티는 트랜잭션 메타 데이터와 동시에 제공되는 데이터에 대한 설명을 제공할 수 없다. 레귤러 시버리티는 트랜잭션 메타 데이터를 제공하는 메모리 장치가 오류를 감지하지 않았고 데이터에 대한 어떠한 수정도 하지 않았음을 설명할 수 있다. 메모리 장치는 데이터에 오류가 없는지 확인하기 위해 메모리 장치에 의해 호스팅 되는 FD 디코더를 사용할 수 있다. 레귤러 시버리티는 FD 디코더가 데이터에 대한 정정 작업을 수행하지 않았음을 설명할 수도 있다.
감시 시버리티는 관리 작업이 선택 사항임을 설명할 수 있다. 관리 작업은 데이터 및/또는 트랜잭션 메타 데이터를 제공하는 데이터 및/또는 메모리 장치를 관리하기 위해 수행될 수 있는 임의의 작업을 포함할 수 있다.
예를 들어, 감시 시버리티는 메모리 장치가 64 바이트의 데이터에 적용된 ECC를 사용하여 오류를 감지하고 정정했음을 설명할 수 있다. 감시 시버리티는 또한 메모리 장치가 하나 이상의 오류를 검출했지만 감출된 오류 중 하나 이상을 정정하지 않았음을 설명할 수 있다. 예를 들어, 감시 시버리티는 메모리 장치가 두 개의 오류를 검출했지만 오류 중 하나만 수정했다고 설명할 수 있다. 트랜잭션 메타 데이터를 수신한 컨트롤러는 내부 및 외부 디코더를 사용하는 연관 ECC를 사용하여 메모리 장치에 의해 식별되고 정정되지 않은 오류를 정정할 수 있다. 예를 들어, 컨트롤러는 데이터 버스를 통해 수신된 데이터의 오류를 식별 및/또는 정정하기 위해 컨트롤러에 의해 호스팅되는 AD 디코더 및/또는 FD 디코더를 활용할 수 있다. 일부 예들에서, 컨트롤러에 의해 호스팅되는 AD 디코더는 내부(내측) AD 디코더 일 수 있고 컨트롤러에 의해 호스팅되는 FD 디코더는 외부(외측) 디코더 일 수 있다.
감시 시버리티는 또한 컨트롤러가 연관된 ECC 이외의 액션을 수행할 수 있음을 설명할 수 있다. 즉, 감시 시버리티는 컨트롤러가 ECC 정정 이외의 작업을 수행할 수 있음을 설명할 수 있다. 예를 들어 컨트롤러는 데이터내 식별된 오류를 정정하지 않고 대신 명령 버스를 사용하여 메모리 장치에 다시 읽기 명령을 제공할 수 있다.
감시 시버리티는 또한 특별 명령을 사용하여 어레이 콘텐츠에 정정을 적용하기 위한 승인을 요청할 수 있다. 예를 들어, 메모리 디바이스는 메모리 디바이스의 어레이에 저장된 데이터에 정정을 적용하기 위한 허가를 요청하는 감시 시버리티를 설명하는 의도적인 작업 비트를 제공할 수 있다. 상기 특수 명령은 실제 감시 시버리티일 수 있거나 확장된 정보 비트(226)에서 구현된 명령일 수 있다.
경고 시버리티는 관리 작업이 필수 및/또는 필요함을 설명할 수 있다. 경고 시버리티 수신에 응답하는 컨트롤러는 데이터 검색 능력을 향상시키기 위해 컨트롤러에 의해 수행 될 수 있는 다른 타입의 관리 작업 중에서 웨어- 레벨링 작업(wear-leveling operations), 새로 고침 작업 및/또는 클리닝 작업을 수행할 수 있다. 경고 시버리티와 관련된 다양한 관리 작업에는 디코더 수준의 작업 대신 어레이 수준의 작업이 포함될 수 있다. 경고 시버리티와 관련된 관리 작업은 데이터를 성공적으로 검색하는 메모리 장치의 기능을 향상시킬 수 있다.
오류 시버리티는 메모리 장치에서 가장 시버리티가 높은 이벤트 발생일 수 있다. 오류 시버리티는 치명적인 이벤트를 설명할 수 있다. 예를 들어, 오류 시버리티는 다른 치명적인 이벤트 중에서 어레이를 사용할 수 없음, 장치 용량에 도달 할 수 없음, 데이터를 복구할 수 없음 및/또는 데이터의 일부를 복구할 수 없음을 설명할 수 있다.
확장된 정보 비트(226)는 심볼 "EXTI"로 표현될 수 있다. 확장된 정보 비트(226)는 데이터에 대해 그리고 메모리 장치에 의해 수행되는 작업을 설명할 수 있다. 확장된 정보 비트(226)는 데이터에 대해 오류 정정 작업을 포함하는 작업을 수행하기 위해 메모리 장치 및/또는 컨트롤러에 의해 사용되는 정보를 제공할 수 있다. 확장된 정보 비트(226)는 메모리 장치에 의해 제공되는 요청 및/또는 명령을 설명할 수 있다. 예를 들어, 확장된 정보 비트(226)는 컨트롤러에 의해 호스팅되는 하나 이상의 디코더를 활성화 할 수 있는 패리티 비트, 신드롬, 캘리브레이션 비트 및/또는 유효성 플래그를 포함할 수 있고 활성화된 디코더에 의해 사용된 정보를 제공하여 데이터에 대해 ECC를 수행하도록 할 수 있다.
도 3은 본 발명의 다수의 실시 예들에 따른 IOP 필드(324)의 블록도 이다. 내부 연산 필드(324)는 확장 비트(330), 타입 비트(331), 예약 비트(332) 및 시버리티 비트(333)를 포함할 수 있다. 내부 연산 필드(324)는 본원 명세서에서 설명된 것보다 더 많거나 적은 타입의 비트를 포함할 수 있다.
내부 연산 필드(324)에 도시된 예는 8 비트를 포함한다. 확장 비트(330)는 비트 인덱스 0을 갖는 것으로 제공된다. 타입 비트(331)는 비트 인덱스 1 내지 2를 갖는 것으로 제공된다. 예약 된 비트(332)는 비트 인덱스 3 내지 5를 갖는 것으로 제공된다. 시버리티 비트(333)는 비트 인덱스 6 내지 7을 갖는 것으로 제공된다.
시버리티 비트(333)는 레귤러 시버리티, 감시 시버리티, 경고 시버리티 및 오류 시버리티를 포함할 수 있다. 레귤러 시버리티는 비트 "00"으로, 감시 시버리티는 비트 "01"로, 경고 시버리티는 비트 "10"으로, 오류 시버리티는 비트 "11"로 표현할 수 있다. 다른 시버리티 값을 나타내는 데 사용되는 비트는 본원 명세서에서 설명된 것과 다를 수 있다. 예를 들어, 더 많거나 더 적은 비트를 사용하여 서로 다른 시버리티를 나타낼 수 있다. 또한 다른 비트 값을 사용하여 다른 시버리티 값을 나타낼 수 있다. 레귤러 시버리티는 디폴트 시버리티가 될 수 있다.
앞서 언급한 바와 같이, 레귤러 시버리티는 액션이 필요하지 않으므로 정보를 전달할 수 없다. 감시 시버리티는 관리 작업이 선택 사항임을 설명할 수 있다. 컨트롤러는 감시 시버리티에 따라 취할 수 있는 가능한 액션에 대한 세부 사항에 대해 타입 필드를 판독할 수 있다. 경고 시버리티는 관리 작업이 필요함을 설명할 수 있다. 컨트롤러는 트랜잭션 메타 데이터에 의해 제공된 정보와 함께 및/또는 트랜잭션 메타 데이터에 의해 제공된 정보와 독립적으로 액션을 수행할 수 있다. 오류 시버리티는 가장 높은 시버리티 이벤트가 발생했음을 설명할 수 있다. 다시 한 번, 컨트롤러는 트랜잭션 메타 데이터에 의해 제공된 정보와 함께 및/또는 트랜잭션 메타 데이터에 의해 제공된 정보와 독립적으로 액션을 수행할 수 있다.
예약 비트(332)는 데이터와 관련된 이벤트의 시버리티와 함께 사용된 추가 기능 및/또는 정보를 위해 예약될 수 있다. 타입 비트(331)는 사용될 수 있는 다른 타입들 중에서, 읽기 성공 타입, 읽기 오류 타입 및 읽기 정정 타입을 포함할 수 있다. 본원 명세서에서 사용된 타입 비트 값 및 확장 비트 값은 예시적인 것이며 제한적인 것으로 해석되어서는 안된다. 본원 명세서에 도시된 것보다 많거나 적은 값이 본원 명세서에 기재된 실시 예에 포함될 수 있다.
읽기 성공 타입은 비트 "00", 읽기 오류 타입은 비트 "10", 읽기 정정 타입은 비트 "11"로 표현될 수 있다. 타입 비트(331) 및/또는 예약 비트(332)의 비트 "01"은 정의되지 않은 상태로 유지될 수 있거나, 추가 기능 및/또는 확장된 기능을 트랜잭션 메타 데이터에 제공하기 위해 컨트롤러 및/또는 메모리 장치에 의해 정의될 수 있다. 비트 "00"으로 표시되는 읽기 성공 타입은 타입 비트(331)의 기본값이 될 수 있다.
판독 성공 타입은 오류가 검출되지 않았고 메모리 장치에 의해 데이터에 적용된 정정이 없음을 설명할 수 있다. 따라서 판독 성공 타입이 주어지면 어떠한 액션도 필요하지 않을 수 있다. 판독 오류 타입은 오류가 감지되었지만 메모리 장치에 의해 데이터에 정정 사항을 적용하지 않았음을 설명할 수 있다. 컨트롤러는 판독 오류 타입을 처리하는 것에 응답하여 확장된 정보 비트(예를 들어,,도 2의 확장된 정보 비트(226))를 판독할 수 있다. 메모리 장치는 컨트롤러가 확장된 정보 비트 및/또는 확장된 정보 비트에 제공된 정보를 사용하여 데이터에 대한 연산을 수행할 수 있도록 확장된 정보 비트를 사용하는 명령, 정보 및/또는 플래그를 제공할 수 있다. 판독 정정 비트는 데이터에서 오류가 감지되었으며 메모리 장치에 의해 오류가 정정되었음을 설명할 수 있다. 컨트롤러는 판독 정정 비트의 처리에 응답하여 확장된 정보 비트로 보내지지 않고 연산을 수행할 수 있다. 예를 들어, 컨트롤러는 데이터를 더욱 처리하기 위해 확장된 정보 비트로 보내지지 않고 확장된 정보 비트를 처리할 수 있다. 컨트롤러는 확장된 정보 비트를 참조하지 않고 데이터를 처리 할 수도 있다.
확장 비트(330)는 (EO) 메타 데이터 프레임 확장의 엔드(end)와 추가 메타 데이터 확장 각각을 구현하기 위해 비트 "0"또는 비트 "1"로 표현될 수 있다. EO 메타 데이터 프레임 확장은 확장된 정보 비트가 사용되지 않으므로 컨트롤러가 액션을 취하지 않아야 한다고 설명할 수 있다. 추가 메타 데이터 확장은 확장된 정보 비트가 유효한 정보를 포함하고 그 결과 확장된 정보 비트를 판독하여야 한다고 설명할 수 있다. 메모리 장치는 확장 비트(330)를 이용하여 확장된 정보 비트를 활성화할 수 있다.
일부 예들에서, 컨트롤러는 주소 버스를 통해 데이터를 요청할 수 있다. 데이터는 메모리 장치에 결합된 데이터 버스를 통해 수신될 수 있다. 트랜잭션 메타 데이터는 데이터 수신과 동시에 메모리 장치에 결합된 트랜잭션 메타 데이터 버스를 통해 수신될 수 있다. 컨트롤러는 메모리 장치의 상태를 설명하는 트랜잭션 메타 데이터로부터 상태 비트를 처리할 수 있다. 컨트롤러는 또한 트랜잭션 메타 데이터로부터 내부 작업 비트를 처리할 수 있으며, 메모리 장치에 의해 호스팅되는 오류 정정 코드를 사용하여 데이터에 대하여 수행된 작업을 설명할 수 있다. 컨트롤러는 트랜잭션 메타 데이터로부터 오류 정정 데이터를 포함하는 확장된 정보 비트를 더욱 처리할 수 있다. 컨트롤러는 상태 비트, 내부 연산 비트 및/또는 확장된 정보 비트에 기초하여 다수의 오류 정정 작업을 수행할지 여부를 결정할 수 있다.
컨트롤러는 오류 정정 작업의 수를 수행하는 것을 억제 할 수 있고, 대신 메모리 장치의 상태가 미리 정의된 기준을 충족하지 않는다는 결정에 기초하여 메모리 장치 동작을 수행할 수 있다. 일부 예들에서, 컨트롤러는 메모리 장치의 상태가 미리 정의된 기준을 충족한다고 결정할 수 있다.
컨트롤러는 메모리 장치의 상태가 미리 정의된 기준을 충족한다는 결정에 응답하여 내부 연산 비트로부터의 시버리티 비트를 사용하여 데이터의 상태를 평가할 수 있다. 컨트롤러는 데이터의 상태가 레귤러 상태인지 판단에 따라 어떤 액션도 수행하지 않을 수 있다. 컨트롤러는 데이터의 상태가 감시 상태라는 결정을 기반으로 내부 연산 비트로부터 타입 비트를 판독할 수 있다.
컨트롤러는 또한 타입 비트가 데이터의 성공적인 판독 작업을 설명한다는 결정에 기초하여 오류 정정 작업의 수를 수행하는 것을 억제 할 수 있다. 컨트롤러는 또한 타입 비트가 검출된 오류를 설명한다는 결정에 기초하여 확장된 정보 비트를 사용하여 오류 정정 작업의 수를 수행할 수 있다. 컨트롤러는 확장 비트에 의해 요청된 대로, 내부 연산 비트로부터 그리고 확장된 정보 비트에 의해 추가로 설명된 바와 같이 오류 정정 작업의 수를 추가로 수행할 수 있다.
도 4는 본 발명의 다수의 실시 예에 따른 트랜잭션 메타 데이터 프레임(440)의 블록도 이다. 도 4는 트랜잭션 메타 데이터 프레임(440)의 IOP 필드를 도시한다. 트랜잭션 메타 데이터 프레임(440)의 세 가지 예가 트랜잭션 메타 데이터 프레임(440-1, 440-2 및 440-3)으로서 제공된다.
트랜잭션 메타 데이터 프레임(440-1)은 "0"비트를 갖는 확장 비트, "00"비트를 갖는 타입 비트 및 "00"비트를 갖는 시버리티 비트를 포함할 수 있다. 확장 비트는 확장된 정보 비트가 활성화되지 않아야 함을 나타낼 수 있다. 즉, 확장 비트는 확장된 정보 비트가 무시되어야 함을 나타낼 수 있다. 시버리티 비트는 레귤러 시버리티를 설명할 수 있다. 컨트롤러는 트랜잭션 메타 데이터 수신에 응답하여 작업을 수행하지 않을 수 있다. 타입 비트는 시버리티 비트에 의해 참조되지 않는 경우 처리되지 않을 수 있다. 컨트롤러는 또한 시버리티 비트 및 타입 비트가 확장된 정보 비트를 참조하지 않기 때문에 확장된 정보 비트의 처리를 자제할 수 있다.
트랜잭션 메타 데이터 프레임(440-2)은 "1"비트를 갖는 확장 비트, "10"비트를 갖는 타입 비트 및 "01"비트를 갖는 시버리티 비트를 포함할 수 있다. 확장 비트는 확장된 정보 비트를 활성화하기 위한 추가 메타 데이터 확장을 설명할 수 있다. 타입 비트는 판독 오류 타입을 설명할 수 있으며, 메모리 장치가 오류를 검출했지만 오류를 정정하지 않았음을 설명한다. 시버리티 비트는 감시 시버리티를 설명할 수 있으며 데이터 처리하기 위해 사용된 추가 정보를 위해 타입 비트에 의존할 수 있다. 즉, 시버리티 비트는 타입 비트와 확장 비트를 통해 추가 정보를 사용할 수 있음을 제공할 수 있다.
트랜잭션 메타 데이터 프레임(440-3)은 "1"비트를 갖는 확장 비트, "11"비트를 갖는 타입 비트 및 "01"비트를 갖는 시버리티 비트를 포함할 수 있다. 확장 비트는 확장된 정보 비트를 활성화하기 위한 추가 메타 데이터 확장을 설명할 수 있다. 타입 비트는 메모리 장치가 데이터에서 오류를 검출하고 정정했음을 설명하는 판독 정정 타입을 설명할 수 있다. 시버리티 비트는 감시 시버리티를 설명할 수 있으며 데이터 처리에 사용된 추가 정보를 위해 타입 비트에 의존할 수 있다. 즉, 시버리티 비트는 타입 비트와 확장 비트를 통해 추가 정보가 사용될 수 있음을 제공할 수 있다.
특정 실시 예가 본원 명세서에 예시되고 설명되었지만, 당업자는 동일한 결과를 달성하기 위해 계산된 배열이 도시된 특정 실시 예를 대체할 수 있다는 것을 이해할 것이다. 본 발명은 본 발명의 다양한 실시 예의 적응 또는 변형을 포함하도록 의도된다. 상기 설명은 제한적인 것이 아니라 예시적인 방식으로 이루어진 것으로 이해되어야 한다. 상기 실시 예의 조합 및 본원 명세서에 구체적으로 설명되지 않은 다른 실시 예는 상기 설명을 검토 할 때 당업자에게 명백할 것이다. 본 발명의 다양한 실시 예의 범위는 상기 구조 및 방법이 사용되는 다른 애플리케이션을 포함한다. 따라서, 본 발명의 다양한 실시 예의 범위는 첨부된 청구 범위를 참조하여, 그러한 청구 범위가 부여되는 등가물의 전 범위에 대하여 함께 결정되어야 한다.
전술한 상세한 설명에서, 다양한 특징은 본 발명 개시 내용을 간소화하기 위해 단일 실시 예에서 함께 그룹화된다. 이 같은 개시 방법은 본 발명의 개시된 실시 예가 각 청구 항에서 명시적으로 언급된 것보다 더 많은 특징을 사용해야 한다는 의도를 반영하는 것으로 해석되어서는 안 된다. 오히려, 뒤이어 오는 청구 범위가 반영하는 바와 같이, 본원 발명의 주제가 되는 대상은 하나의 개시된 실시 예의 모든 특징보다 적다. 따라서, 뒤이어 오는 청구 범위는 상세한 설명에 통합되며, 각 청구 범위는 별도의 실시 예로서 그 자체로서 보호범위를 갖는 것이다.

Claims (22)

  1. 오류 정정 코드를 저장하는 메모리 장치;
    컨트롤러;
    상기 메모리 장치 및 상기 메모리 장치에 저장된 데이터의 주소를 제공하도록 구성된 상기 컨트롤러에 결합된 주소 버스;
    상기 메모리 장치 및 상기 컨트롤러에 결합되고 상기 주소와 연관된 데이터를 상기 메모리 장치로부터 전송하도록 구성된 데이터 버스; 그리고
    상기 메모리 장치 및 상기 컨트롤러에 결합되고, 측 파대 신호를 데이터 버스와 동기식으로 그리고 주소 버스와 함께 전송하도록 구성된 트랜잭션 메타 데이터 버스를 포함하며,
    상기 트랜잭션 메타 데이터 버스는 상기 오류 정정 코드를 사용하여 상기 데이터에 수행된 동작을 설명하는 트랜잭션 메타 데이터를 전송하도록 더욱 구성되며,
    상기 컨트롤러는 상기 메모리 장치로부터 수신된 상기 트랜잭션 메타 데이터에 기초하여 다수의 오류 정정 동작들을 수행할지 여부를 결정하도록 구성되는, 메모리 시스템.
  2. 삭제
  3. 제 1 항에 있어서, 상기 트랜잭션 메타 데이터는 상기 데이터 버스를 사용하여 전송된 데이터와 연관되는, 메모리 시스템.
  4. 삭제
  5. 메모리 어레이를 포함하고,
    컨트롤러로부터 주소 버스를 통해 데이터 요청을 수신하고;
    상기 요청 수신에 응답하여 메모리 어레이로부터 데이터를 검색하며;
    데이터 검색에 응답하여 데이터에 대한 트랜잭션 메타 데이터를 생성하고;
    데이터 버스를 통해 컨트롤러로 데이터를 제공하며; 그리고
    트랜잭션 메타 데이터 버스를 통해 컨트롤러로 데이터와 동시에 트랜잭션 메타 데이터를 제공하도록 구성되는, 메모리 장치로서,
    상기 트랜잭션 메타 데이터는 상기 메모리 장치의 오류 정정 코드를 사용하여 상기 데이터에 수행된 동작을 설명하며,
    상기 트랜잭션 메타 데이터는 상기 컨트롤러에 제공되어 상기 컨트롤러가 상기 메모리 장치로부터 수신된 상기 트랜잭션 메타 데이터에 기초하여 다수의 오류 정정 동작들을 수행할지 여부를 결정할 수 있도록 하는, 메모리 장치.
  6. 제 5 항에 있어서, 상기 메모리 어레이는 상기 데이터를 검색하는 것에 응답하여 상기 데이터에 대한 오류 정정을 수행하도록 더욱 구성되고, 상기 트랜잭션 메타 데이터는 상기 데이터에 대한 오류 정정과 연관되는, 메모리 장치.
  7. 제 6 항에 있어서, 데이터에 대해 수행된 오류 정정을 설명하는 내부 연산 비트를 포함하는 트랜잭션 메타 데이터를 생성하도록 더욱 구성되고,
    상기 내부 연산 비트는 상기 데이터에 대해 수행된 오류 정정을 설명하는 시비러티 비트(severity bits)를 포함하는, 메모리 장치.
  8. 제 6 항에 있어서, 상기 메모리 장치의 상태를 설명하는 상태 비트를 포함하는 트랜잭션 메타 데이터를 생성하도록 더욱 구성된, 메모리 장치.
  9. 제 6 항에 있어서, 상기 오류 정정 코드와 연관된 오류 정정 데이터를 포함하는 확장 정보 비트를 포함하는 상기 트랜잭션 메타 데이터를 생성하도록 더욱 구성된, 메모리 장치.
  10. 제 9 항에 있어서, 상기 확장된 정보 비트는:
    패리티 비트;
    신드롬 비트; 및
    캘리브레이션 비트를 포함하는, 메모리 장치.
  11. 컨트롤러에 의해, 주소 버스를 통해 데이터를 요청하는 단계;
    상기 컨트롤러에 의해, 메모리 장치에 결합된 데이터 버스를 통해 상기 데이터를 수신하는 단계;
    상기 컨트롤러에 의해, 상기 데이터의 수신과 동시에 상기 메모리 장치에 결합된 트랜잭션 메타 데이터 버스를 통해 트랜잭션 메타 데이터를 수신하는 단계 - 상기 트랜잭션 메타 데이터는 상기 컨트롤러에 제공되어 상기 컨트롤러가 상기 트랜잭션 메타 데이터에 기초하여 다수의 오류 정정 동작들을 수행할지 여부를 결정할 수 있도록 함 - ;
    상기 컨트롤러에 의해, 상기 메모리 장치의 상태를 설명하는 상기 트랜잭션 메타 데이터로부터 상태 비트를 처리하는 단계;
    상기 컨트롤러에 의해, 상기 메모리 장치에 의해 호스팅되는 오류 정정 코드를 사용하여 상기 데이터에 수행된 동작을 설명하는 상기 트랜잭션 메타 데이터로부터 내부 연산 비트를 처리하는 단계;
    상기 컨트롤러에 의해, 오류 정정 데이터를 포함하는 상기 트랜잭션 메타 데이터로부터 확장된 정보 비트를 처리하는 단계; 그리고
    상기 컨트롤러에 의해, 상기 상태 비트, 상기 내부 연산 비트 및 상기 확장된 정보 비트에 기초하여 상기 다수의 오류 정정 동작들을 수행할지 여부를 결정하는 단계를 포함하는, 방법.
  12. 제 11 항에 있어서, 상기 컨트롤러에 의해, 상기 메모리 장치의 상태가 미리 정의된 기준을 충족하는가를 결정하는 단계를 더욱 포함하는, 방법.
  13. 제 11항 또는 12 항에 있어서, 상기 컨트롤러에 의해, 상기 내부 연산 비트로부터의 시버리티 비트를 사용하여 상기 데이터의 상태를 결정하는 단계;
    상기 컨트롤러에 의해, 상기 데이터의 상태가 감시 상태인 것으로 결정함에 따라 상기 내부 연산 비트로부터 타입 비트(type bits)를 판독하는 단계;
    상기 컨트롤러에 의해, 상기 타입 비트가 상기 데이터의 성공적인 판독 동작을 설명하는 가를 결정함에 기초하여, 상기 다수의 오류 정정 동작들을 억제하는 단계;
    상기 컨트롤러에 의해, 상기 타입 비트가 검출된 오류를 설명하는가를 결정함에 기초하여, 상기 확장된 정보 비트를 사용하여 상기 다수의 오류 정정 동작들을 수행하는 단계를 더욱 포함하는, 방법.
  14. 제 13 항에 있어서, 상기 컨트롤러에 의해, 상기 내부 연산 비트들로부터 확장 비트들에 의해 요청되고 상기 확장된 정보 비트들에 의해 더욱 설명된 바와 같이 상기 다수의 오류 정정 동작들을 수행하는 단계를 더욱 포함하는, 방법.
  15. 제 11 항에 있어서,
    상기 컨트롤러에 의해, 상기 다수의 오류 정정 동작들의 수행을 자제하는 단계; 그리고
    상기 컨트롤러에 의해, 상기 메모리 장치의 상태가 미리 정의된 기준을 충족하지 않는다는 결정에 기초하여 메모리 장치 동작을 수행하는 단계를 더욱 포함하는, 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
KR1020207033093A 2018-04-20 2019-04-01 트랜잭션 메타 데이터 KR102453866B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227034593A KR20220140031A (ko) 2018-04-20 2019-04-01 트랜잭션 메타 데이터

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/958,401 2018-04-20
US15/958,401 US10733046B2 (en) 2018-04-20 2018-04-20 Transaction metadata
PCT/US2019/025169 WO2019204018A1 (en) 2018-04-20 2019-04-01 Transaction metadata

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227034593A Division KR20220140031A (ko) 2018-04-20 2019-04-01 트랜잭션 메타 데이터

Publications (2)

Publication Number Publication Date
KR20200135548A KR20200135548A (ko) 2020-12-02
KR102453866B1 true KR102453866B1 (ko) 2022-10-12

Family

ID=68237694

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227034593A KR20220140031A (ko) 2018-04-20 2019-04-01 트랜잭션 메타 데이터
KR1020207033093A KR102453866B1 (ko) 2018-04-20 2019-04-01 트랜잭션 메타 데이터

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227034593A KR20220140031A (ko) 2018-04-20 2019-04-01 트랜잭션 메타 데이터

Country Status (6)

Country Link
US (2) US10733046B2 (ko)
EP (1) EP3782034A4 (ko)
JP (1) JP2021520556A (ko)
KR (2) KR20220140031A (ko)
CN (1) CN111989659A (ko)
WO (1) WO2019204018A1 (ko)

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621137B2 (en) * 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
US20110041005A1 (en) * 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US20110154111A1 (en) * 2009-12-23 2011-06-23 International Business Machines Corporation Memory Based Hardware Breakpoints
US8438344B2 (en) * 2010-03-12 2013-05-07 Texas Instruments Incorporated Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes
US10198350B2 (en) 2011-07-28 2019-02-05 Netlist, Inc. Memory module having volatile and non-volatile memory subsystems and method of operation
US9009566B2 (en) * 2012-09-12 2015-04-14 Macronix International Co., Ltd. Outputting information of ECC corrected bits
US9026888B2 (en) * 2012-12-21 2015-05-05 Intel Corporation Method, system and apparatus for providing access to error correction information
KR102149768B1 (ko) 2014-04-29 2020-08-31 삼성전자주식회사 불휘발성 메모리 시스템
US9954557B2 (en) * 2014-04-30 2018-04-24 Microsoft Technology Licensing, Llc Variable width error correction
US9558066B2 (en) * 2014-09-26 2017-01-31 Intel Corporation Exchanging ECC metadata between memory and host system
KR20160043763A (ko) * 2014-10-14 2016-04-22 삼성전자주식회사 칩 및 칩의 제어 방법
US10127101B2 (en) * 2015-08-28 2018-11-13 Intel Corporation Memory device error check and scrub mode and error transparency
US10459794B2 (en) * 2017-02-06 2019-10-29 SK Hynix Inc. Memory systems having extended product lifetime and methods of operating the same
US20180336139A1 (en) * 2017-05-16 2018-11-22 Sandisk Technologies Llc Systems and methods for a highly-available memory
US10261914B2 (en) * 2017-08-25 2019-04-16 Micron Technology, Inc. Methods of memory address verification and memory devices employing the same

Also Published As

Publication number Publication date
US20190324843A1 (en) 2019-10-24
US10733046B2 (en) 2020-08-04
US20200348999A1 (en) 2020-11-05
US11256565B2 (en) 2022-02-22
CN111989659A (zh) 2020-11-24
EP3782034A4 (en) 2022-01-19
KR20200135548A (ko) 2020-12-02
JP2021520556A (ja) 2021-08-19
WO2019204018A1 (en) 2019-10-24
KR20220140031A (ko) 2022-10-17
EP3782034A1 (en) 2021-02-24

Similar Documents

Publication Publication Date Title
US10585602B2 (en) Smart memory buffers
US8522114B2 (en) Memory controller and memory system
US10019367B2 (en) Memory module, computing system having the same, and method for testing tag error thereof
KR102378466B1 (ko) 메모리 장치 및 모듈
US10754552B2 (en) Data storage device and operating method thereof
US20210326060A1 (en) Nonvolatile memory device, data storage device including the same and operating method thereof
US11126379B2 (en) Memory system
KR102334739B1 (ko) 메모리 모듈, 시스템, 및 그것의 에러 정정 방법
CN111989746B (zh) 使用阶层式解码器的误差校正
KR102453866B1 (ko) 트랜잭션 메타 데이터
US20220156209A1 (en) Transaction identification
US10628322B2 (en) Memory system and operating method thereof
US11960770B2 (en) Access request management using sub-commands
US20180196616A1 (en) Memory device and memory module
US20240178861A1 (en) Memory controllers and memory systems including the same
US20230280930A1 (en) Memory controller and memory system for executing error correction operation
KR20230022103A (ko) 데이터 검증 회로부를 갖는 데이터 저장 디바이스
CN115878367A (zh) 存储器模块的操作方法、存储器控制器的操作方法

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