KR101838776B1 - 확률적 디코딩을 갖는 메모리 시스템에서의 비트 스트림 에일리어싱 - Google Patents

확률적 디코딩을 갖는 메모리 시스템에서의 비트 스트림 에일리어싱 Download PDF

Info

Publication number
KR101838776B1
KR101838776B1 KR1020147017279A KR20147017279A KR101838776B1 KR 101838776 B1 KR101838776 B1 KR 101838776B1 KR 1020147017279 A KR1020147017279 A KR 1020147017279A KR 20147017279 A KR20147017279 A KR 20147017279A KR 101838776 B1 KR101838776 B1 KR 101838776B1
Authority
KR
South Korea
Prior art keywords
bitstream
bit stream
aliasing
memory
data
Prior art date
Application number
KR1020147017279A
Other languages
English (en)
Other versions
KR20140098188A (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 샌디스크 테크놀로지스 엘엘씨
Publication of KR20140098188A publication Critical patent/KR20140098188A/ko
Application granted granted Critical
Publication of KR101838776B1 publication Critical patent/KR101838776B1/ko

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리로부터 메모리의 외부 제어기로 데이터 버스를 통해 전송될 제 1 비트 스트림을 수신하도록 연결 및 정의된 에일리어싱 모듈이 제공된다. 에일리어싱 모듈은 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하여 데이터 버스를 통해 제 1 비트 스트림 대신에 제 2 비트 스트림을 전송하도록 연결 및 정의된다. 외부 제어기에서 데이터 버스로부터 제 2 비트 스트림을 수신하도록 연결 및 정의된 디-에일리어싱 모듈이 제공된다. 디-에일리어싱 모듈은 수신되는 제 2 비트 스트림을 역으로 제 1 비트 스트림으로 디-에일리어싱하여 프로세싱을 위해 제 1 비트 스트림을 외부 제어기에 제공하도록 연결 및 정의된다.

Description

확률적 디코딩을 갖는 메모리 시스템에서의 비트 스트림 에일리어싱{BIT STREAM ALIASING IN MEMORY SYSTEM WITH PROBABILISTIC DECODING}
종래 메모리 디바이스들에서, 에러 정정 코드(Error Correction Code, ECC) 디코더는, 판독 동작 동안 메모리로부터 ECC 디코더에 도착하는 비트 스트림(bit stream)의 전송 동안 어떠한 전송 에러도 일어나지 않는다고 가정한다. 그러나, 기술이 발달함에 따라, 메모리로부터 ECC 디코더에 이르는 데이터 전송 채널은 더 빨라질 수 있게 되었고, 더 작아질 수 있게 되었으며 그리고/또는 더 길어질 수 있게 되었는바, 이에 따라 데이터 전송 채널을 통한 판독 데이터의 비트 스트림의 전송 동안 데이터 에러에 대한 가능성은 증가하게 되었다. 만약 메모리로부터 ECC 디코더로의 판독 데이터의 비트 스트림의 전송 동안 에러가 일어난다면, ECC 디코더는 잘못된 최종 판독 데이터 출력을 비의도적으로 발생시킬 수 있는바, 이는 호스트 컴퓨터 시스템 상에서 동작 실패(operational failure)를 일으킬 수 있다. 이러한 맥락에서 본 발명이 제시된다.
일 실시예에서는, 메모리 시스템에서의 비트 스트림 에일리어싱(bit stream aliasing)을 위한 시스템이 개시된다. 이 시스템은 에일리어싱 모듈(aliasing module)을 포함하고, 에일리어싱 모듈은 메모리로부터 메모리의 외부 제어기로 데이터 버스(data bus)를 통해 전송될 제 1 비트 스트림을 수신하도록 연결 및 정의된다. 에일리어싱 모듈은 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하여 데이터 버스를 통해 제 1 비트 스트림 대신에 제 2 비트 스트림을 전송하도록 연결 및 정의된다. 이 시스템은 또한, 디-에일리어싱 모듈(de-aliasing module)을 포함하고, 디-에일리어싱 모듈은 외부 제어기에서 데이터 버스로부터 제 2 비트 스트림을 수신하도록 연결 및 정의된다. 디-에일리어싱 모듈은 수신되는 제 2 비트 스트림을 역으로(back) 제 1 비트 스트림으로 디-에일리어싱하여 프로세싱을 위해 제 1 비트 스트림을 외부 제어기에 제공하도록 연결 및 정의된다.
일 실시예에서, 메모리 시스템이 개시된다. 본 메모리 시스템은 메모리 어레이(memory array)와 데이터 레지스터(data register)를 포함하고, 데이터 레지스터는 메모리 어레이로부터 제 1 비트 스트림을 수신 및 저장하도록 연결 및 정의된다. 본 메모리 시스템은 또한, 에일리어싱 모듈을 포함하고, 에일리어싱 모듈은 데이터 레지스터로부터 제 1 비트 스트림을 수신하여 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하도록 연결 및 정의된다. 에일리어싱 모듈은 제 1 비트 스트림 대신에 제 2 비트 스트림을 전송하도록 연결 및 정의된다. 본 메모리 시스템은 또한, 에일리어싱 모듈로부터 전송되는 제 2 비트 스트림을 수신하도록 연결된 데이터 버스를 포함한다. 본 시스템은 디-에일리어싱 모듈을 더 포함하고, 디-에일리어싱 모듈은 에일리어싱 모듈로부터 데이터 버스를 통해 전송되는 제 2 비트 스트림을 수신하여 제 2 비트 스트림을 역으로 제 1 비트 스트림으로 디-에일리어싱하도록 연결된다. 본 메모리 시스템은 또한, 디-에일리어싱 모듈로부터 제 1 비트 스트림을 수신하도록 연결된 에러 정정 코드 디코더(error correction code decoder)를 포함하는 외부 제어기를 포함한다.
일 실시예에서, 메모리 시스템을 동작시키기 위한 방법이 개시된다. 본 방법은 메모리 어레이 내의 저장 소자로부터 제 1 비트 스트림을 판독하는 것을 포함한다. 본 방법은 또한, 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하는 것, 그리고 데이터 버스를 통해 제 1 비트 스트림 대신에 제 2 비트 스트림을 외부 메모리 제어기에 전송하는 것을 포함한다. 본 방법은 또한, 외부 메모리 제어기에서 제 2 비트 스트림의 도착시 제 2 비트 스트림을 역으로 제 1 비트 스트림으로 디-에일리어싱하는 것을 포함한다. 본 방법은 또한, 외부 메모리 제어기에서 제 1 비트 스트림을 에러 정정 코드 디코더에 제공하는 것을 포함한다.
본 발명의 다른 실시형태 및 장점은 첨부되는 도면과 연계되어 본 발명의 예로서 제시되는 다음의 상세한 설명으로부터 더욱 명백하게 될 것이다.
도 1은 본 발명의 일 실시예에 따른, 플래시 메모리 디바이스의 하이-레벨 개략적 블록도(high-level schematic block diagram)이며, 여기서 플래시 메모리는 외부 제어기에 의해 제어된다.
도 2는 본 발명의 일 실시예에 따른, 플래시 메모리에 대한 예시적인 내부 아키텍처(internal architecture)를 나타낸다.
도 3은 본 발명의 일 실시예에 따른, 메모리 제어 회로의 간략화된 블록도를 나타낸다.
도 4a는 본 발명의 일 실시예에 따른, 일차 전압 빈(primary voltage bin) 당 두 개의 전압 서브-빈(voltage sub-bin)들을 구현함과 아울러 데이터의 하나의 비트를 저장하는 메모리 어레이 내에서의 저장 소자에 대한 예시적인 하드 비트(Hard Bit, HB) 및 소프트 비트(Soft Bit, SB)의 감지 챠트를 나타낸다.
도 4b는 본 발명의 일 실시예에 따른, 도 4a의 감지 챠트에 따라 동작되는 저장 소자로부터의 판독 동작에 대한 전송되는 비트 스트림 대 수신되는 비트 스트림의 확률 챠트를 나타낸다.
도 5a는 본 발명의 일 실시예에 따른, 플래시 메모리 디바이스의 하이 레벨 개략적 블록도이며, 여기서 메모리와 외부 제어기 사이에는 에일리어싱 모듈과 디-에일리어싱 모듈이 구현되어 있다.
도 5b는 본 발명의 일 실시예에 따른, 플래시 메모리 디바이스의 하이 레벨 개략적 블록도이며, 여기서 에일리어싱 모듈은 메모리 내부에 정의되어 있고, 디-에일리어싱 모듈은 외부 제어기 내부에 정의되어 있다.
도 6a는 본 발명의 일 실시예에 따른, 일차 전압 빈 당 네 개의 전압 서브-빈들을 구현함과 아울러 데이터의 하나의 비트를 저장하는 메모리 어레이 내에서의 저장 소자에 대한 예시적인 하드 비트(HB) 및 소프트 비트(SB)의 감지 챠트를 나타낸다.
도 6b는 본 발명의 일 실시예에 따른, 도 6a의 감지 챠트에 따라 동작되는 저장 소자로부터의 판독 동작에 대한 전송되는 비트 스트림 대 수신되는 비트 스트림의 확률 챠트를 나타낸다.
도 7a는 본 발명의 일 실시예에 따른, 데이터의 여덟 개의 비트들을 저장하는 메모리 어레이 내에서의 저장 소자에 대한 예시적인 하드 비트(HB) 및 소프트 비트(SB) 감지 챠트를 나타낸다.
도 7b는 본 발명의 일 실시예에 따른, 도 7a의 감지 챠트에 따라 동작되는 저장 소자로부터의 판독 동작에 대한 전송되는 비트 스트림 대 수신되는 비트 스트림의 확률 챠트를 나타낸다.
도 7c는 본 발명의 일 실시예에 따른, 각각의 전송되는 비트 스트림에 대해, 즉 각각의 로우(row)에 대해, 소프트 비트 에러 없는 단일 하드 비트 에러를 가질 전체 확률(P{1HB, 0SB})의 챠트를 나타낸다.
도 8은 본 발명의 일 실시예에 따른, 메모리 시스템을 동작시키기 위한 방법을 나타낸다.
다음의 설명에서는, 본 발명의 완벽한 이해를 제공하기 위해 다수의 특정 세부사항들이 제시된다. 그러나, 본 발명의 기술분야에서 숙련된 자에게는 이러한 특정 세부사항들 중 일부 혹은 모두가 제시되지 않아도 본 발명이 실시될 수 있음은 명백할 것이다. 다른 경우에 있어서, 잘 알려진 프로세스 동작들은 본 발명이 불필요하게 모호하게 되지 않도록 하기 위해 설명되지 않았다.
도 1은 본 발명의 일 실시예에 따른, 플래시 메모리 디바이스(300)의 하이 레벨 개략적 블록도이며, 여기서 플래시 메모리(100)는 외부 제어기(302)에 의해 제어된다. 외부 제어기(302)는 호스트 컴퓨터 시스템(303)에 전자적으로(electronically) 연결되도록 정의되는바, 이러한 호스트 컴퓨터 시스템(303)은 예를 들어, 개인용 컴퓨터, 디지털 카메라, 개인 휴대정보 단말기, 혹은 본질적으로 (디지털 프로세서를 포함하는) 임의의 다른 타입의 컴퓨터 디바이스이다. 호스트 컴퓨터 시스템(303)은 외부 제어기(302)에 커맨드(command)들을 전송하는바, 이러한 커맨드들은 예를 들어, 플래시 메모리(100)에 데이터를 기입하도록 하는 커맨드 혹은 플래시 메모리(100)로부터 데이터를 판독하도록 하는 커맨드이다. 호스트 컴퓨터 시스템(303)은 또한, 메모리(100)에 기입될 데이터, 즉 메모리(100)에 저장될 데이터를 외부 제어기(302)에 제공하고, 메모리(100)로부터 판독된 데이터를 외부 제어기(302)로부터 수신한다. 외부 제어기(302)는 커맨드 신호들(104)이 플래시 메모리(100)에 의해 해석 및 실행될 수 있도록 커맨드 신호들(104)을 발생시켜 플래시 메모리(100)에 전송하도록 정의된다. 외부 제어기(302)는 또한, 플래시 메모리(100) 내에서의 저장을 위해 I/O(Input/Output) 버스(102)를 통해 플래시 메모리에 데이터를 전송하도록 정의되며, 아울러 I/O 버스(102)를 통해 플래시 메모리(100)로부터의 판독 데이터를 수신하도록 정의된다. 외부 제어기(302)는 플래시 메모리(100)에 기입되는 데이터 혹은 플래시 메모리(100)로부터 판독되는 데이터의 일시적 저장을 위한 버퍼 메모리를 포함할 수 있다.
일 실시예에서, 메모리 디바이스(300)는, 외부 제어기(302)를 포함하는 하나의 집적 회로 칩(304), 그리고 플래시 메모리(100)를 포함하는 하나 이상의 집적 회로 칩들(306)을 포함한다. 일 실시예에서, 플래시 메모리(100)는 단일 집적 회로 칩 상에 정의된다. 그러나, 다른 실시예들에서, 플래시 메모리(100)는 복수의 집적 회로 칩들에 걸쳐 정의될 수 있으며, 복수의 집적 회로 칩들 각각은 외부 제어기(302)와 전자적으로 통신하도록 연결됨을 이해해야 한다. 또한, 메모리 디바이스(300)가 호스트 컴퓨터 시스템(303)의 일부로서 임베드(embed)될 수 있거나, 혹은 메모리 디바이스(300)가 호스트 컴퓨터 시스템(303)의 접속 소켓(mating socket)에 탈착가능하게 삽입가능한 메모리 카드 내에 포함될 수 있음을 이해해야 한다. 이러한 메모리 카드는 메모리 디바이스(300) 전체를 포함할 수 있거나, 혹은 메모리 디바이스(300)의 일부분들을 포함할 수 있는바, 이 경우 메모리 디바이스(300)의 나머지는 호스트 컴퓨터 시스템 및/또는 메모리 카드와 인터페이스(interface)하는 다른 컴포넌트(component)들 상에 정의된다.
도 2는 본 발명의 일 실시예에 따른, 플래시 메모리(100)에 대한 예시적인 내부 아키텍처를 나타낸다. 플래시 메모리(100)는 내부 메모리 동작들을 제어하도록 정의된 메모리 제어 회로(106)를 포함한다. 메모리 제어 회로(106)는 커맨드 신호들, 어드레스 신호들, 및 상태 신호들을 위한 레지스터들을 포함한다. 메모리 제어 회로(106)는 외부 제어기(302)로부터 제어 신호들(104)을 수신하고 입력/출력(I/O) 버스(102)를 통해 신호들을 수신하도록 연결된다. 플래시 메모리(100)는 저장 소자들의 하나 이상의 어레이들(108)을 포함한다. 일 실시예에서, 어레이(108) 내의 저장 소자들은 플래시 EEPROM 셀들로서 정의된다. 각각의 어레이(108) 저장 소자는, 관련된 로우 디코더(row decoder)(XDEC)(110), 관련된 컬럼 디코더(column decoder)(YDEC)(112), 관련된 일 그룹의 감지 증폭기들 및 프로그램 제어 회로(sense amplifiers and program control circuitry)(SA/PROG)(114), 그리고 관련된 데이터 레지스터(116)를 구비한다.
일 실시예에서, 저장 소자들의 어레이(108)는 저장 소자들로서 하나 이상의 전도성 플로팅 게이트(conductive floating gate)들을 포함한다. 그러나, 다른 실시예들에서, 저장 소자들의 어레이(108)는 다른 타입의 장기간 전자 전하 저장 소자들(long-term electron charge storage elements)을 포함한다. 일 실시예에서, 저장 소자들의 어레이(108)는 각각의 저장 소자에 대해 정의된 전하의 두 가지 레벨을 갖도록 동작될 수 있고, 이에 따라 각각의 저장 소자에는 데이터의 하나의 비트가 저장되게 된다. 다른 실시예들에서는, 두 개보다 많은 저장 상태들이 어레이(108) 내의 각각의 저장 소자에 대해 정의될 수 있고, 이에 따라 데이터의 한 개보다 많은 비트가 각각의 저장 소자에 저장될 수 있게 된다.
일 실시예에서, 제어 신호들은, CS, CLE, ALE, RE, WE, AD[7:0]를 포함하는바, 이들은 다음과 같다.
● CS: 칩 선택 신호(Chip Select Signal): CS 신호는 플래시 메모리(100) 인터페이스를 활성화시키는데 사용된다. 만약 CS 신호가 어써트(assert)되지 않는다면, 플래시 메모리(100)는 대기 모드(standby mode)에서 유지될 것이고 다른 제어 신호들에 응답하지 않을 것이다.
● CLE: 커맨드 래치 인에이블 신호(Command Latch Enable Signal): CLE 신호는 메모리 제어 회로(106)의 커맨드 레지스터에 전송되는 커맨드들을 위한 경로 활성화를 제어한다. CLE 신호가 어써트되는 경우, 커맨드들은 메모리 제어 회로(106)의 커맨드 레지스터에 래치된다.
● ALE: 어드레스 래치 인에이블 신호(Address Latch Enable Signal): ALE 신호는 메모리 제어 회로(106)의 어드레스 레지스터에 전송되는 어드레스들을 위한 경로 활성화를 제어한다. ALE 신호가 어써트되는 경우, 어드레스들은 메모리 제어 회로(106)의 어드레스 레지스터에 래치된다.
● RE: 판독 인에이블 신호(Read Enable Signal): RE 신호는 데이터 출력 버퍼들을 활성화시킨다. RE 신호가 어써트되는 경우, 판독 데이터는 I/O 버스(102) 상으로 보내지게 된다.
● WE: 기입 인에이블 신호(Write Enable Signal): WE 신호는 I/O 포트에 데이터를 기입하는 것을 제어한다. WE 신호가 어써트되는 경우, 데이터, 어드레스들 및/또는 커맨드들이 플래시 메모리(100)에 클록킹(clocking)된다.
● AD[7:0]: I/O 버스(102) 상의 데이터: I/O 버스(102)는, 메모리 제어 회로(106)의 플래시 메모리(100) 커맨드, 어드레스, 및 데이터 레지스터들과 데이터 버스 제어기 간에 데이터를 전달하는데 사용된다.
앞서 언급된 제어 신호들(104)에 추가하여, 메모리(100)는 또한, 메모리(100)가 어떤 태스크(tack)를 수행 중인 비지(busy) 상태인지를 저장 서브시스템 제어기(storage subsystem controller)가 결정할 수 있게 하는 수단을 포함한다. 이러한 수단은, 전용 신호를 포함하거나 혹은 메모리(100)가 비지 상태인 동안 액세스가능한 내부 메모리 레지스터 내의 상태 비트를 포함한다. 앞서 언급된 제어 신호들(104)에 의해 정의된 제어 인터페이스는 예시적으로 제공되는 것임을 이해해야 한다. 다른 실시예들에서, 제어 인터페이스는 메모리(100)의 등가적 제어 혹은 확장된 제어를 제공하기 위해 앞서 언급된 신호들과는 다른 신호들을 포함할 수 있다. 추가적으로, 도 2의 예시적 실시예가 하나의 플래시 메모리 어레이(108)를 그 관련 컴포넌트들과 함께 나타내고 있지만 다른 실시예들은 소정의 플래시 메모리(100)의 일부로서 복수의 어레이들(108)을 포함할 수 있음을 이해해야 하며, 여기서 복수의 어레이들(108)은 공통의 인터페이스(104) 및 메모리 제어 회로(106)를 공유하지만 병렬 판독 동작 및 프로그램 동작(즉, 기입 동작)이 가능하도록 하기 위해 개별적인 각각의 XDEC(110), YDEC(112), SA/PROG(114), 및 데이터 레지스터(116) 회로를 구비한다.
판독 동작 동안, 데이터는 메모리 어레이(108)로부터 데이터 레지스터(116)를 통해 I/O 버스(102)를 경유해 외부 제어기에 전달된다. 데이터 레지스터(116)는 또한, SA/PROG(감지 증폭기/프로그래밍) 회로(114)에 전기적으로 연결된다. 각각의 SA/PROG 회로(114) 소자에 연결되는 데이터 레지스터(116)의 저장 소자들의 수는 어레이(108)의 각각의 저장 소자에 저장되는 비트들의 수에 따라 달라질 수 있다. SA/PROG 회로(114)는 감지 인에이블 라인(122)에 연결되는바, 감지 인에이블 라인(122)은 그 활성화시 SA/PROG 회로(114)로 하여금 감지 모드에서 동작하도록 한다. 또한, SA/PROG 회로(114)는 프로그램 인에이블 라인(123)에 연결되는바, 프로그램 인에이블 라인(123)은 그 활성화시 SA/PROG 회로(114)로 하여금 프로그램/검증 모드에서 동작하도록 한다.
어레이(108)의 각각의 저장 소자는 하나 이상의 플로팅 게이트들을 가질 수 있다. 일 실시예에서, 어레이(108)의 저장 소자들은 복수-레벨 저장 소자들인바, 이 경우 각각의 저장 소자는 바이너리 데이터(binary data)의 복수의 비트들(예를 들어, 두 개의 비트들 혹은 네 개의 비트들과 같은 복수의 비트들)을 저장할 수 있다. 또 하나의 다른 실시예에서, 어레이(108)의 저장 소자들은 단일-레벨 저장 소자들인바, 이 경우 각각의 저장 소자는 바이너리 데이터의 한 개의 비트를 저장할 수 있다.
어레이(108)의 로우(row)들(124)은 워드 라인들에 대응한다. 어레이(108)의 컬럼(column)들(126)은 비트 라인들에 대응한다. 도 2의 어레이(108)를 불필요하게 모호하게 하는 것을 피하기 위해, 단지 첫 번째 4개의 로우들 및 마지막 4개의 로우들(124)(워드 라인들)만이 명확하게 제시되었고, 아울러 첫 번째 4개의 컬럼들 및 마지막 4개의 컬럼들(126)(비트 라인들)만이 명확하게 제시되었다. 그러나, 어레이(108) 내의 로우들(124)(워드 라인들) 및 컬럼들(126)(비트 라인들)의 실제 개수는 어레이(108) 내의 저장 소자들의 개수에 따라 달라짐을 이해해야 하며, 여기서, 각각의 저장 소자는 하나의 로우(124)(워드 라인)와 두 개의 컬럼들(126)(비트 라인들)을 갖는다.
로우 디코더(XDEC(110))는 액세스될 물리적 페이지를 선택하기 위해 어레이(108)에 대한 로우 어드레스(row address)들을 디코딩하도록 정의된다. 로우 디코더(XDEC(110))는 메모리 제어 회로(106)로부터 내부 로우 어드레스 라인들(118)을 통해 로우 어드레스들을 수신한다. 컬럼 디코더(YDEC(112))는 메모리 제어 회로(106)로부터 내부 컬럼 어드레스 라인들(120)을 통해 컬럼 어드레스들을 수신한다. 저장 소자는 어레이(108) 내에서 로우들(124)(워드 라인들)과 컬럼들(126)(비트 라인들)의 각각의 교차점에 배치된다.
도 3은 본 발명의 일 실시예에 따른, 메모리 제어 회로(106)의 간략화된 블록도를 나타낸다. 메모리 제어 회로(106)는 레지스터 인에이블 회로(204)를 포함하는바, 레지스터 인에이블 회로(204)는 어드레스 레지스터(206), 커맨드 레지스터(202), 및 래치 인에이블 회로(210)에 각각 결합되는 출력들을 갖는다. 어드레스 디스크립터(address descriptor)가 뒷 따라올 것임을 표시하는 ALE 제어 신호(104)를 외부 제어기로부터 수신하는 경우, 레지스터 인에이블 회로(204)는 인에이블 라인(PADR(physical address register: 물리적 어드레스 레지스터))을 활성화시키는바, 이러한 인에이블 라인(PADR)은 I/O 버스(102)를 통해 외부 제어기로부터 수신되는 후속 청크 어드레스 디스크립터(chunk address descriptor)가 어드레스 레지스터(206)에 래치되도록 한다. 그 다음에, 어드레스 레지스터(206)에 연결된 래치 인에이블 회로(210)는 어드레스 레지스터(206)에 저장된 청크 어드레스(chunk address)를 어드레스 래치들(212)의 적절한 로우 및 컬럼 래치들에 래치시키도록 래치 인에이블 라인들(X 및 Y)을 활성화시킨다. 그 다음에, 어드레스 래치들(212)에 저장된 청크 어드레스들은 내부 로우 어드레스 라인들(118) 중 적절한 라인들을 통해 로우 디코더(XDEC)(110)에 제공되고, 내부 컬럼 어드레스 라인들(120)을 통해 컬럼 디코더(YDEC)(112)에 제공된다.
데이터가 뒷 따라올 것임(즉, 데이터가 메모리 어레이(108)에 기입될 것임)을 표시하는 제어 신호(104)를 외부 제어기로부터 수신하는 경우, 레지스터 인에이블 회로(204)는 인에이블 라인(PDAT(program data signal: 프로그램 데이터 신호))을 활성화시키는바, 이러한 인에이블 라인(PDAT)은 I/O 버스(102)를 통해 수신되는 데이터의 청크가 데이터 레지스터(116)에 래치되도록 한다. 커맨드가 뒷 따라올 것임을 표시하는 CLE 제어 신호(104)를 외부 제어기로부터 수신하는 경우, 레지스터 인에이블 회로(204)는 인에이블 라인(PCMD(program command: 프로그램 커맨드))을 활성화시키는바, 이러한 인에이블 라인(PCMD)은 I/O 버스(102)를 통해 외부 제어기로부터 수신되는 후속의 판독 혹은 기입 커맨드가 커맨드 레지스터(202)에 래치되도록 한다.
그 다음에 커맨드 디코더(208)는 커맨드 레지스터(202)에 저장된 커맨드를 판독한다. 만약 커맨드가 기입 커맨드라면, 커맨드 디코더(208)는 프로그램 인에이블 회로(216)에 연결된 프로그램 라인(PGM)을 활성화시키기도록 커맨드를 디코딩한다. 프로그램 인에이블 회로(216)는 프로그램 라인(PGM) 상의 활성화 신호를 수신하고, 어드레스 레지스터(206)에 저장된 청크 어드레스로부터 최상위 비트(most significant bit)를 수신한다. 그 다음에, 프로그램 인에이블 회로(216)는 프로그램 인에이블 라인들(123)을 통해 SA/PROG 회로(114)에 신호들을 전송하는바, 이 신호들은 SA/PROG 회로(114)로 하여금 프로그램/검증 동작 모드를 선택적으로 활성화시키도록 하여 데이터 레지스터(116) 내의 데이터가 메모리 어레이(108)에 프로그래밍되게 한다.
만약 커맨드가 판독 커맨드라면, 커맨드 디코더(208)는 감지 인에이블 회로(214)에 연결된 감지 라인(SNS)을 활성화시키도록 커맨드를 디코딩하는바, 감지 인에이블 회로(214)는 또한, 감지 인에이블 라인(122)을 통해 신호들을 전송하고, 이 신호들은 SA/PROG 회로(114)로 하여금 감지 동작 모드를 선택적으로 활성화시키도록 하여 메모리 어레이(108)의 래치된 로우(124)(워드 라인)와 래치된 컬럼들(126)(비트 라인들)의 교차점에서의 저장 소자들에 저장된 임계 전압들이 감지되게 된다. 감지한 결과들은 외부 제어기에 의한 후속 판독을 위해 데이터 레지스터(116)에 로드(load)된다.
판독 동작 동안, 외부 제어기(302)는 메모리 제어 회로(106)에 제어 신호들(104)을 전송하여 메모리 어레이(108) 내의 특정 어드레스에 대응하는(즉, 저장 소자들의 세트 혹은 특정 저장 소자에 대응하는) 하드 비트들 및 소프트 비트들로 하여금 SA/PROG 회로(114)에 의해 감지되도록 하고 데이터 레지스터(116) 내에 저장되도록 한다. 그 다음에, 데이터 레지스터(116)에 저장된 하드 비트들 및 소프트 비트들은 I/O 버스(102)를 통해 외부 제어기(302)에 비트 스트림으로서 전송된다. 일 실시예에서, 외부 제어기는 데이터 레지스터(116)로부터 비트 스트림으로 수신되는 하드 비트들 및 소프트 비트들에 관한 에러 정정 디코딩 및/또는 다른 기능들을 수행하도록 정의된다.
판독 동작 동안, 하드 비트들 및 소프트 비트들은 어레이(108) 내의 어드레싱된 저장 소자들의 감지를 통해 발생된다. 이러한 하드 비트들 및 소프트 비트들은 데이터 레지스터(116)로부터 비트 스트림으로서 외부 제어기(302) 내의 에러 정정 코드(ECC) 디코더에 전송된다. ECC 디코더는 하드 비트들 및 소프트 비트들의 비트 스트림 내에서의 에러들을 검출 및 정정하여 정정된 최종 판독 데이터 출력을 발생시키도록 정의된다.
저장 소자 당 데이터의 한 개의 비트를 저장하는 플래시 메모리는 단일-레벨 셀(Single-Level Cell, SLC) 메모리로서 지칭된다. 저장 소자 당 데이터의 한 개보다 많은 비트들을 저장하는 플래시 메모리는 복수-레벨 셀(Multi-Level Cell, MLC) 메모리로서 지칭된다. 플래시 메모리(100)에서, 어레이(108) 내의 각각의 저장 소자는 제어 게이트(control gate)와 플로팅 게이트(floating gate)를 모두 구비한 트랜지스터를 포함한다. 데이터가 저장 소자에 기입되는 경우, 저장 소자의 트랜지스터의 플로팅 게이트에 전자들이 주입된다. 주입된 전자들은 제어 게이트에 인가되는 기준 전압에 맞서게 된다. 만약 제어 게이트에 인가된 기준 전압이 플로팅 게이트 상에 존재하는 전하를 극복하기에 충분히 높지않다면 저장 소자의 트랜지스터는 턴온(turn on)되지 않는다(즉, 전도를 행하지 않음). 플로팅 게이트 상의 전하를 극복하기 위해 제어 게이트에 인가될 수 있는 가장 낮은 전압은 저장 소자의 트랜지스터의 임계 전압으로서 지칭된다.
저장 소자의 임계 전압은 최소 전압(Vmin)으로부터 최대 전압(Vmax)에 이르는 임의의 전압 범위 내에 있다. 저장 소자의 임계 전압 범위는 다수의 전압 빈(voltage bin)들로 분할되며, 여기서 각각의 전압 빈은 저장 소자 내에 저장된 특정 비트 패턴에 대응한다. 특정 전압 빈 내에 설정된 임계 전압은 그 특정 전압 빈에 유일하게 대응되는 비트 패턴의 저장을 나타낸다. 따라서, 소정의 저장 소자에 의해 저장될 수 있는 비트들의 수는 임계 전압 범위가 분할되어 형성된 전압 빈들의 수에 따라 달라진다. 보다 구체적으로 말하면, n개의 비트들을 저장하는 저장 소자의 임계 전압 범위는 2n개의 전압 빈들로 분할된다.
기입 동작 동안, 저장 소자 내에 저장될 특정 비트 패턴과 관련된 검증 전압 레벨을 초과하는 임계 전압이 저장 소자의 트랜지스터 내에 확립될 때까지 저장 소자의 트랜지스터의 플로팅 게이트에 전자들을 주입하기 위해 전압 펄스들이 저장 소자의 트랜지스터에 인가된다. 판독 동작 동안, 저장 소자의 감지된 임계 전압은, 임계 전압 범위의 분할로 형성된 전압 빈들의 경계들을 정의하는 기준 전압 레벨들과 비교되어, 그 감지된 임계 전압이 존재하는 전압 빈이 식별되게 되며, 저장 소자에 저장된 비트 패턴이 또한 식별되게 된다.
일 실시예에서, 저장 소자의 임계 전압 범위(즉, Vmin 내지 Vmax의 전압 범위)는 (x-1)개의 일차 기준 전압(primary reference voltage)들에 의해 (x)개의 일차 전압 빈(primary voltage bin)들로 분할된다. 전압(Vmin) 및 전압(Vmax)이 일차 기준 전압을 나타내지 않음을 이해해야 한다. 설명의 편의를 위해, 전압(Vmin) 및 전압(Vmax)은 -무한대(-infinity) 및 +무한대(+infinity)를 각각 나타낸다고 고려될 수 있다. 각각의 일차 전압 빈에 유일하게 할당된 각각의 데이터 비트 혹은 비트 패턴은 하드 비트(HB) 혹은 HB 패턴으로서 지칭된다. 일부 실시예들에서, 일차 기준 전압들에 의해 기술되는 바와 같은 각각의 일차 전압 빈은 또한, (y-1)개의 이차 기준 전압(secondary reference voltage)들에 의해 (y)개의 전압 서브-빈(voltage sub-bin)들로 분할된다. 소정의 일차 전압 빈 내의 각각의 전압 서브-빈에는, 소정의 일차 전압 빈에 대응하는 각각의 전압 서브-빈을 고유하게 식별하기 위해 요구되는 소프트 비트들의 개수에 따라, 고유한 소프트 비트(SB) 혹은 SB 패턴이 할당된다. 이러한 방식으로, 소프트 비트(SB)들은 저장 소자의 감지된 임계 전압이 소정의 일차 전압 빈 내에 어디에 존재하는지에 관한 정보를 제공할 수 있다. 소프트 비트들(SB)들은, 디코딩 알고리즘을 구현하기 위해, 그리고 I/O 버스(102)를 통해 수신되는 하드 비트(HB)들 중 어떤 하드 비트(HB)들이 정정될 필요가 있고 이들이 어떻게 정정돼야 하는지의 식별을 돕기 위해, 외부 제어기(302) 내의 ECC 디코더에 의해 사용될 수 있다.
도 4a는 본 발명의 일 실시예에 따른, 일차 전압 빈 당 두 개의 전압 서브-빈들을 구현함과 아울러 데이터의 한 개의 비트를 저장하는 메모리 어레이 내에서의 저장 소자에 대한 예시적인 하드 비트(HB) 및 소프트 비트(SB) 감지 챠트(400)를 나타낸다. 감지 챠트(400)가 나타내는 저장 소자의 임계 전압 범위는 단일의 일차 기준 전압(V0)에 의해 두 개의 일차 전압 빈들로 분할된다. 제 1 일차 전압 빈은 하드 비트 값 0(HB=0)에 대응한다. 제 2 일차 전압 빈은 하드 비트 값 1(HB=1)에 대응한다. 제 1 일차 전압 빈(HB=0)은 이차 기준 전압(V0-1)에 의해 두 개의 전압 서브-빈들(전압 서브-빈 1 및 전압 서브-빈 2)로 분할되고, 여기서 전압 서브-빈 1 및 전압 서브-빈 2에는 소프트 비트 1 및 소프트 비트 0이 각각 할당된다. 제 2 일차 전압 빈(HB=1)은 이차 기준 전압(V0+1)에 의해 두 개의 전압 서브-빈들(전압 서브-빈 3 및 전압 서브-빈 4)로 분할되고, 여기서 전압 서브-빈 3 및 전압 서브-빈 4에는 소프트 비트 0 및 소프트 비트 1이 각각 할당된다. 전압 서브-빈 1 내지 전압 서브-빈 4는 증가하는 임계 전압 레벨에 대응한다.
감지 챠트(400)가 나타내는 저장 소자의 판독 동작 동안, 저장 소자의 임계 전압이 감지되고, 임계 전압이 존재하는 전압 서브-빈이 식별된다. 도 1을 참조하면, 감지된 임계 전압이 존재하는 전압 서브-빈에 대응하는 하드 비트 및 소프트 비트는 메모리(100)의 데이터 레지스터(116)로부터 외부 제어기(302)의 ECC 디코더에 전송된다. 예를 들어, 만약 감지된 임계 전압이 전압 서브-빈 1 내에 존재한다면, (HB=0, SB=1에 대응하는) 비트 스트림 01이 메모리(100)의 데이터 레지스터(116)로부터 외부 제어기(302)의 ECC 디코더에 전송된다. 그 다음에, ECC 디코더는 수신되는 HB/SB 비트 스트림을 사용하여 어떤 일차 전압 빈이 저장 소자의 감지된 임계 전압을 포함하고 있는지를 결정하고 이에 따라 어떤 데이터가 저장 소자에 저장되는지를 결정하는 기능을 수행한다.
종래의 메모리 디바이스들에서, ECC 디코더는 데이터 레지스터(116)로부터 외부 제어기(302) 내의 ECC 디코더로의 하드 비트들 및 소프트 비트들의 비트 스트림 전송 동안 어떠한 전송 에러도 일어나지 않는다고 가정한다. 그러나, 기술이 발달함에 따라, 메모리(100) 내의 데이터 레지스터(116)로부터 외부 제어기(302) 내의 ECC 디코더에 이르는 데이터 전송 채널(예를 들어, I/O 버스(102))은 더 빨라질 수 있게 되었고, 더 작아질 수 있게 되었으며 그리고/또는 더 길어질 수 있게 되었는바, 이에 따라 데이터 전송 채널을 통한 하드 비트들 및 소프트 비트들의 비트 스트림의 전송 동안 데이터 에러에 대한 가능성은 증가하게 되었다. 만약 메모리(100)로부터 외부 제어기(302)로의 하드 비트들 및 소프트 비트들의 전송 동안 에러가 일어난다면, ECC 디코더는 잘못된 최종 판독 데이터 출력을 비의도적으로 발생시킬 수 있는바, 이는 호스트 컴퓨터 시스템(303) 상에서 동작 실패를 일으킬 수 있음을 이해해야 한다.
도 4b는 본 발명의 일 실시예에 따른, 도 4a의 감지 챠트(400)에 따라 동작되는 저장 소자로부터의 판독 동작에 대한 전송되는 비트 스트림 대 수신되는 비트 스트림의 확률 챠트(401)를 나타낸다. 확률 챠트(401)에서, 챠트(401)의 상부에서 하부로 정렬되는 바와 같은 전송되는 비트 스트림들의 시퀀스는, 챠트(401)의 좌측에서 우측으로 정렬되는 바와 같은 수신되는 비트 스트림들의 시퀀스(이것은 감지된 임계 전압 레벨 증가에 따른 가능한 전송되는 비트 스트림들에 대응함)에 매칭된다. 따라서, 챠트의 상부-좌측에서 하부-우측으로 이어지는 일련의 대각선 셀들은 메모리(100)의 데이터 레지스터(116)로부터 외부 제어기(302)의 ECC 디코더로의 비트 스트림의 에러 없는 전송에 대응한다. 챠트(401) 내의 각각의 셀은 대응하는 전송되는 비트 스트림으로부터 대응하는 수신되는 비트 스트림을 획득할 확률을 나타낸다.
메모리(100)의 데이터 레지스터(116)로부터 외부 제어기(302)의 ECC 디코더로의 비트 스트림의 전송 동안 에러가 있는 단일 비트를 가질 확률, 즉 비트-에러 확률은 p로서 표현된다. 예를 들어, 데이터 레지스터(116)로부터 비트 스트림 01을 전송하는 경우, ECC 디코더에서 비트 스트림 00을 수신할 확률은 p에 대응하는데, 왜냐하면 하나의 비트, 즉 두 번째 비트에 에러가 있기 때문이다. 또한, 소정의 수신되는 비트 스트림에 대한 전체 에러 확률은 그 소정의 수신되는 비트 스트림에 대한 비트-에러 확률들의 곱(product)과 동일하다. 예를 들어, 데이터 레지스터(116)로부터 비트 스트림 01을 전송하는 경우, ECC 디코더에서 비트 스트림 10을 수신할 확률은 p2에 대응하는데, 왜냐하면 양쪽 비트들, 즉 두 개의 비트들에 에러가 있기 때문이다. 따라서, 잘못된 비트 스트림을 수신할 확률은 pz와 동일하게 되는데, 여기서 z는 수신되는 비트 스트림에서 에러가 있는 비트들의 수이다. 또한, 올바르게 수신되는 비트 스트림을 가질 확률은 모든 잘못 수신되는 비트 스트림들이 발생할 확률들의 합산값(sum)을 1에서 뺀 값이다. 예를 들어, 챠트(401)에서, 비트 스트림의 에러 없는 전송에 대응하는 일련의 대각선 셀들에서의 각각의 셀은 1-2p-p2의 발생 확률을 보여준다.
일부 전송되는 비트 스트림들은 다른 것들보다 ECC 디코더에 의해 수신되어 성공적으로 디코딩될 신뢰도(reliability)가 더 높다. 예를 들어, 일 실시예에서, 확률 챠트(401) 내에서 소정의 전송되는 비트 스트림에 대한 수신되는 비트 스트림 에러 확률에서의 단조적 거동(monotonic behavior)은, ECC 디코더에 의한 전송되는 비트 스트림의 더 신뢰가능한 디코딩에 대응한다. 예를 들어, 확률 챠트(401)에서의 전송되는 비트 스트림 00에 대한 수신되는 비트 스트림 에러 확률은 올바르게 수신되는 비트 스트림 00에 대해 단조적 거동을 보여준다. 구체적으로, 수신되는 비트 스트림 11의 확률은 p2이고, 이것은 수신되는 비트 스트림 10의 확률보다 작다. 따라서, 이것은 ECC 디코딩 기능에 대한 유리한 수신되는 비트 스트림 에러 거동이다.
대조적으로, 확률 챠트(401)에서의 전송되는 비트 스트림 01에 대한 수신되는 비트 스트림 에러 확률은 올바르게 수신되는 비트 스트림 01에 대해 비-단조적 거동(non-monotonic behavior)을 보여준다. 구체적으로, 수신되는 비트 스트림 11의 확률은 p이고, 이것은 수신되는 비트 스트림 10의 확률 p2보다 크고 이 확률 p2은 수신되는 비트 스트림 00의 확률 p보다 작다. 수신되는 비트 스트림 11과 관련된 전압 서브-빈에 대응하는 전압이, 수신되는 비트 스트림 10과 관련된 전압 서브-빈에 대응하는 전압보다 더 크기 때문에, 수신되는 비트 스트림 에러 거동은 감지된 임계 전압 레벨에 대해 단조적 거동이 아닌바, 이는 ECC 디코딩 기능에 대해 유리한 것이 아니다.
일반적으로 말하면, 모든 전송되는 비트 스트림들 대 수신되는 비트 스트림들에 대한 완벽하게 좋은 확률 거동 챠트를 얻기 위해, 하드 비트들 및 소프트 비트들을 다양한 일차 전압 빈들 및 전압 서브-빈들에 각각 할당하는 것은 가능하지 않다. 다시 말하면, 일부 전송되는 비트 스트림들이 그 대응하는 수신되는 비트 스트림 확률 발생에 관해 더 바람직하지 않은 거동을 갖는 것이 언제나 존재한다. 이하에서는, 이러한 비트 스트림들은 더 낮은 신뢰도로 디코딩되는 비트 스트림들로서 지칭된다. 그리고, 상보적 방식으로, 일부 전송되는 비트 스트림들은 그 대응하는 수신되는 비트 스트림 확률 발생에 관해 더 바람직한 거동을 갖는다. 이하에서는, 이러한 비트 스트림들은 더 높은 신뢰도로 디코딩되는 비트 스트림들로서 지칭된다.
일 실시예에서, 메모리(100) 판독 동작 동안 다른 비트 스트림들보다 더 높은 빈도로 I/O 버스(102)를 통해 전송되는 하나 이상의 비트 스트림들이 존재할 수 있다. 이러한 실시예에서, 이와 같이 더 높은 빈도로 전송되는 비트 스트림들이 더 높은 신뢰도로 디코딩되는 비트 스트림들이 되도록 하는 것이 바람직하다. 이를 위해, 본 발명의 일 실시예에 따르면, 더 낮은 신뢰도로 디코딩되는 더 높은 빈도로 전송되는 비트 스트림은, I/O 버스(102)를 통한 전송 이전에, 메모리(100)의 출력에서, 더 높은 신뢰도로 디코딩되는 다른 전송되는 비트 스트림으로 에일리어싱된다. 그 다음에, 외부 제어기(302)에 도달시, 이러한 에일리어싱된 전송되는 비트 스트림은 본래의 비트 스트림 표현으로 디-에일리어싱된다.
예를 들어, 도 4b에 관하여, 전송되는 비트 스트림 01이 비트 스트림 00보다 더 높은 빈도로 전송된다고 고려한다. 또한, 더 높은 빈도로 전송되는 비트 스트림 00은 감지된 임계 전압 레벨에 따른 수신되는 비트 스트림의 비-단조적 거동으로 더 낮은 신뢰도로 디코딩됨에 유의해야 한다. 또한, 전송되는 비트 스트림 00은 감지된 임계 전압 레벨에 따른 수신되는 비트 스트림의 단조적 거동으로 더 높은 신뢰도로 디코딩됨에 유의해야 한다. 이러한 경우에, 전송되는 비트 스트림 01은 I/O 버스(102)를 통한 전송 이전에 메모리(100)의 출력에서 비트 스트림 00으로 에일리어싱될 수 있다. 이에 대응하여, 전송되는 비트 스트림 00은 비트 스트림 01로 에일리어싱된다. 이러한 방식으로, 더 중요한 비트 스트림 01이 비트 스트림 00으로서 에일리어스 형태(alias form)로 I/O 버스(102)를 통해 전송된다. 그 다음에, 외부 제어기(302)에 도달시, 그 수신되는 비트 스트림 00은 ECC 디코더에 의한 프로세싱 이전에 역으로 비트 스트림 01로 디-에일리어싱된다. 따라서, 더 중요한 비트 스트림 01은 더 높은 신뢰도로 디코딩되는 비트 스트림의 에일리어스 하에서 전송된다. 도 4b를 더 참조하면, 만약 전송되는 비트 스트림 11이 비트 스트림 10보다 더 중요하다면, 예를 들어, 더 높은 빈도로 전송된다면, 비트 스트림 11은 더 높은 신뢰도로 전송되는 비트 스트림 10의 에일리어스 하에서 전송될 수 있고, 그 반대의 과정이 행해지게 된다.
도 5a는 본 발명의 일 실시예에 따른, 플래시 메모리 디바이스(500)의 하이 레벨 개략적 블록도이며, 여기서 메모리(100)와 외부 제어기(302) 사이에는 에일리어싱 모듈(501)과 디-에일리어싱 모듈(503)이 구현되어 있다. 에일리어싱 모듈(501)은, 메모리(100) 내의 데이터 레지스터(116)로부터 나오는 더 중요한 그리고 더 낮은 신뢰도로 디코딩되는 비트 스트림을 I/O 버스(102)를 통한 전송 이전에 더 높은 신뢰도로 디코딩되는 비트 스트림으로 에일리어싱하도록 연결 및 정의된다. 상보적 방식으로, 디-에일리어싱 모듈(503)은, I/O 버스(102)를 통해 수신되는 비트 스트림을 외부 제어기(302) 내의 ECC 디코더에 제출하기 전에 역으로 본래의 형태로 디-에일리어싱하도록 연결 및 정의된다. 에일리어싱 모듈(501) 및 디-에일리어싱 모듈(503)은 공통 에일리어싱/디-에일리어싱 알고리즘에 따라 동작하도록 정의되며, 이에 따라 디-에일리어싱 모듈(503)은 에일리어싱 모듈(501)에 의해 수행된 에일리어싱을 해제(undo)시키도록 사전에-정의/사전에-프로그래밍된다.
일 실시예에서, 에일리어싱 모듈(501)은 데이터 레지스터(116)와 I/O 버스(102) 사이에서 메모리(100) 외부에 정의된다. 또 다른 실시예에서, 에일리어싱 모듈(501)은 I/O 버스(102)에 대한 연결부와 데이터 레지스터(116) 사이에서 메모리(100) 내부에 정의된다. 또한, 일 실시예에서, 디-에일리어싱 모듈(503)은 ECC 디코더와 I/O 버스(102) 사이에서 외부 제어기(302) 외부에 정의된다. 또 다른 실시예에서, 디-에일리어싱 모듈(503)은 I/O 버스(102)에 대한 연결부와 ECC 디코더 사이에서 외부 제어기(302) 내부에 정의된다. 추가적으로, 일 실시예에서, 에일리어싱 모듈(501)은 데이터 레지스터(116)와 I/O 버스(102) 사이에서 메모리(100) 외부에 정의되고, 디-에일리어싱 모듈(503)은 I/O 버스(102)에 대한 연결부와 ECC 디코더 사이에서 외부 제어기(302) 내부에 정의된다. 또 다른 실시예에서, 에일리어싱 모듈(501)은 I/O 버스(102)에 대한 연결부와 데이터 레지스터(116) 사이에서 메모리(100) 내부에 정의되고, 디-에일리어싱 모듈(503)은 ECC 디코더와 I/O 버스(102) 사이에서 외부 제어기(302) 외부에 정의된다. 도 5b는 본 발명의 일 실시예에 따른, 플래시 메모리 디바이스(500A)의 하이 레벨 개략적 블록도이며, 여기서 에일리어싱 모듈(501)은 메모리(100) 내부에 정의되어 있고, 디-에일리어싱 모듈(503)은 외부 제어기(302) 내부에 정의되어 있다.
일 실시예에서, 에일리어싱 모듈(501)은 임의의 규정된 비트 스트림 에일리어싱 사양(prescribed bit stream aliasing specification)을 고정-배선되는(hard-wired) 방식으로 구현하도록 정의되며, 이에 따라 그 규정된 비트 스트림 에일리어싱 사양은 메모리(100)의 데이터 레지스터(116)로부터 I/O 버스(102) 상으로 전송되는 각각의 비트 스트림에 대해 자동으로 구현되게 된다. 또 다른 실시예에서, 에일리어싱 모듈(501)은 임의의 규정된 비트 스트림 에일리어싱 사양이 필요에 따라 프로그래밍될 수 있고 다시-프로그래밍될 수 있는 프로그래밍가능한 모듈로서 정의된다. 이러한 실시예에서, 에일리어싱 모듈(501)은 프로그래밍된 비트 스트림 에일리어싱 사양을 보유하기 위한 지속성 저장소(persistent storage)를 포함하도록 정의될 수 있다. 앞서-언급된 실시예들에서의 규정된 비트 스트림 에일리어싱 사양은 어떤 비트 스트림들이 전송을 위해 에일리어싱되어야 하고 이러한 비트 스트림들이 어떻게 에일리어싱되어야 하는지를 지시(dictate)하는 것임을 이해해야 한다.
일 실시예에서, 디-에일리어싱 모듈(503)은 임의의 규정된 비트 스트림 디-에일리어싱 사양(prescribed bit stream de-aliasing specification)을 고정-배선되는 방식으로 구현하도록 정의되며, 이에 따라 그 규정된 비트 스트림 디-에일리어싱 사양은 I/O 버스(102)로부터 외부 제어기(302)에서 수신되는 각각의 비트 스트림에 대해 자동으로 구현되게 된다. 또 다른 실시예에서, 디-에일리어싱 모듈(503)은 임의의 규정된 비트 스트림 디-에일리어싱 사양이 필요에 따라 프로그래밍될 수 있고 다시-프로그래밍될 수 있는 프로그래밍가능한 모듈로서 정의된다. 이러한 실시예에서, 디-에일리어싱 모듈(503)은 프로그래밍된 비트 스트림 디-에일리어싱 사양을 보유하기 위한 지속성 저장소를 포함하도록 정의될 수 있다. 앞서-언급된 실시예들에서의 규정된 비트 스트림 디-에일리어싱 사양은 어떤 비트 스트림들이 I/O 버스(102)로터의 수신시 디-에일리어싱되어야 하고 이러한 비트 스트림들이 어떻게 디-에일리어싱되어야 하는지를 지시하는 것임을 이해해야 한다. 또한, 에일리어싱 모듈(501)과 디-에일리어싱 모듈(503)이 어떻게 구현되는지에 상관없이, 즉 고정-배선되는 방식으로 구현되는지 아니면 프로그래밍가능한 방식으로 구현되는지에 상관없이, 에일리어싱 모듈(501)과 디-에일리어싱 모듈(503)은 상보적으로 규정되는 비트 스트림 에일리어싱/디-에일리어싱 사양들을 구현하도록 각각 정의되어, 에일리어싱 모듈(501)에 의해 에일리어싱되는 임의의 비트 스트림은 디-에일리어싱 모듈(503)에 의해 올바르게 디-에일리어싱되게 됨을 이해해야 한다.
일 실시예에서, 에일리어싱 모듈(501)과 디-에일리어싱 모듈(503) 모두는 프로그래밍가능한 모듈들로서 정의되고, 이 경우 그 규정된 비트 스트림 에일리어싱 및 디-에일리어싱 사양들은 각각, 필요에 따라 프로그래밍될 수 있고 다시-프로그래밍될 수 있다. 이러한 실시예에서, 에일리어싱 모듈(501)과 디-에일리어싱 모듈(503)은 두 가지 모드들 중 어느 하나의 모드에서 동작될 수 있는바, 제 1 모드는 어떠한 에일리어싱/디-에일리어싱도 적용되지 않는 모드이고, 제 2 모드는 규정된 비트 스트림 에일리어싱/디-에일리어싱 사양을 적용하는 모드이다.
앞서-설명된 비트 스트림 에일리어싱 및 디-에일리어싱 방법들은 더 진보된 저장 소자 동작과 함께 동등하게 구현될 수 있음을 이해해야 한다. 예를 들어, 도 6a는 본 발명의 일 실시예에 따른, 일차 전압 빈 당 네 개의 전압 서브-빈들을 구현함과 아울러 데이터의 하나의 비트를 저장하는 메모리 어레이(108) 내에서의 저장 소자에 대한 예시적인 하드 비트(HB) 및 소프트 비트(SB) 감지 챠트(600)를 나타낸다. 감지 챠트(600)가 나타내는 저장 소자의 임계 전압 범위는 단일의 일차 기준 전압(V0)에 의해 두 개의 일차 전압 빈들로 분할된다. 제 1 일차 전압 빈은 하드 비트 값 0(HB=0)에 대응한다. 제 2 일차 전압 빈은 하드 비트 값 1(HB=1)에 대응한다. 제 1 일차 전압 빈(HB=0)은 이차 기준 전압들(V0-1, V0-2, V0-3)에 의해 네 개의 전압 서브-빈들(전압 서브-빈 1, 전압 서브-빈 2, 전압 서브-빈 3, 및 전압 서브-빈 4)로 분할된다. 전압 서브-빈 1, 전압 서브-빈 2, 전압 서브-빈 3, 및 전압 서브-빈 4에는 소프트 비트 11, 소프트 비트 10, 소프트 비트 01, 및 소프트 비트 00이 각각 할당된다. 제 2 일차 전압 빈(HB=1)은 이차 기준 전압들(V0+1, V0+2, V0+3)에 의해 네 개의 전압 서브-빈들(전압 서브-빈 5, 전압 서브-빈 6, 전압 서브-빈 7, 및 전압 서브-빈 8)로 분할된다. 전압 서브-빈 5, 전압 서브-빈 6, 전압 서브-빈 7, 및 전압 서브-빈 8에는 소프트 비트 00, 소프트 비트 01, 소프트 비트 10, 및 소프트 비트 11이 각각 할당된다. 전압 서브-빈 1 내지 전압 서브-빈 8은 증가하는 임계 전압 레벨에 대응한다.
감지 챠트(600)가 나타내는 저장 소자의 판독 동작 동안, 저장 소자의 임계 전압이 감지되고, 임계 전압이 존재하는 전압 서브-빈이 식별된다. 감지된 임계 전압이 존재하는 전압 서브-빈에 대응하는 하드 비트 및 소프트 비트들은 메모리(100)의 데이터 레지스터(116)로부터 외부 제어기(302)의 ECC 디코더에 전송된다. 예를 들어, 만약 감지된 임계 전압이 전압 서브-빈 3 내에 존재한다면, (HB=0, SB=01에 대응하는) 비트 스트림 001이 메모리(100)의 데이터 레지스터(116)로부터 외부 제어기(302)의 ECC 디코더에 전송된다. 그 다음에, ECC 디코더는 수신되는 HB/SB 비트 스트림을 사용하여 어떤 일차 전압 빈이 저장 소자의 감지된 임계 전압을 포함하고 있는지를 결정하고 이에 따라 어떤 데이터가 저장 소자에 저장되는지를 결정하는 기능을 수행한다.
도 6b는 본 발명의 일 실시예에 따른, 도 6a의 감지 챠트(600)에 따라 동작되는 저장 소자로부터의 판독 동작에 대한 전송되는 비트 스트림 대 수신되는 비트 스트림의 확률 챠트(601)를 나타낸다. 확률 챠트(601)에서, 챠트(601)의 상부에서 하부로 정렬되는 바와 같은 전송되는 비트 스트림들의 시퀀스는, 챠트(601)의 좌측에서 우측으로 정렬되는 바와 같은 수신되는 비트 스트림들의 시퀀스(이것은 감지된 임계 전압 레벨 증가에 따른 가능한 전송되는 비트 스트림들에 대응함)에 매칭된다. 따라서, 챠트의 상부-좌측에서 하부-우측으로 이어지는 일련의 대각선 셀들은 메모리(100)의 데이터 레지스터(116)로부터 외부 제어기(302)의 ECC 디코더로의 비트 스트림의 에러 없는 전송에 대응한다. 챠트(601) 내의 각각의 셀은 대응하는 전송되는 비트 스트림으로부터 대응하는 수신되는 비트 스트림을 획득할 확률을 나타낸다.
도 4b의 확률 챠트(401)에서와 같이, 확률 챠트(601)에서도 비트-에러 확률은 p로서 표현된다. 또한, 잘못된 비트 스트림을 수신할 확률도 pz와 동일하게 되는데, 여기서 z는 수신되는 비트 스트림에서 에러가 있는 비트들의 수이다. 그리고, 올바르게 수신되는 비트 스트림을 가질 확률은 모든 잘못 수신되는 비트 스트림들이 발생할 확률들의 합산값을 1에서 뺀 값이다. 챠트(601)에서, 비트 스트림의 에러 없는 전송에 대응하는 일련의 대각선 셀들에서의 각각의 셀은 1-3p-3p2-p3의 발생 확률을 보여준다.
확률 챠트(601)는, 전송되는 비트 스트림들 000 및 100 각각에 대한 수신되는 비트 스트림 에러 확률이, 올바르게 수신되는 비트 스트림 000 및 100에 대해 각각 단조적 거동을 보여줌을 나타낸다. 대조적으로, 확률 챠트(601)에서의 다른 전송되는 비트 스트림들 각각에 대한 수신되는 비트 스트림 에러 확률은 올바르게 수신되는 비트 스트림에 대해 비-단조적 거동을 보여준다. 따라서, 전송되는 비트 스트림들 000 및 100은 이들의 대응하는 수신되는 비트 스트림 확률 발생에 관해 더 바람직한 거동을 갖고, 더 높은 신뢰도로 디코딩되는 비트 스트림들로서 지칭된다. 도 6a 및 도 6b의 실시예에서, 에일리어싱 모듈(501)은, 더 낮은 신뢰도로 디코딩되는 더 높은 빈도로 전송되는 비트 스트림을 그 각각이 더 높은 신뢰도로 디코딩되는 비트 스트림 000 혹은 100으로 에일리어싱하도록 정의될 수 있다. 결과적으로, 디-에일리어싱 모듈(503)은 이러한 비트 스트림을 외부 제어기(302)에 도달시 디-에일리어싱하도록 정의될 수 있다.
일부 실시예들에서, 더 높은 신뢰도로 디코딩되는 비트 스트림은 도 4a 및 도 4b 그리고 도 6a 및 도 6b에 관하여 본 명세서에서 설명된 바와 같은 단조적 거동을 보여줄 수 있다. 다른 실시예들에서, 더 높은 신뢰도로 디코딩되는 비트 스트림은 수신되는 비트 스트림 에러 확률의 단조적 거동과는 다른 기준을 만족시킬 수 있다. 예를 들어, 일 실시예에서, 수신되는 비트 스트림들의 수가 더 낮은 수가 되어 하드 비트 에러(hard bit error)의 확률이 우월적 확률 항(dominant probability term)이 될 때, 더 높은 신뢰도로 디코딩되는 비트 스트림은 수신되는 비트 스트림들의 이러한 더 낮은 수에 맵핑(mapping)된 임의의 전송되는 비트 스트림에 대응할 수 있다. 또한, 일 실시예에서는, 전송되는 비트 스트림들 중 어떤 것이 더 높은 신뢰도로 디코딩되지에 관한 결정은 I/O 버스(102)를 통해 전송될 비트 스트림들의 복잡도(complexity)에 따라 달라질 수 있다.
도 7a는 본 발명의 일 실시예에 따른, 데이터의 여덟 개의 비트들을 저장하는 메모리 어레이(108) 내에서의 저장 소자에 대한 예시적인 하드 비트(HB) 및 소프트 비트(SB) 감지 챠트(700)를 나타낸다. 도 7a의 감지 챠트(700)가 나타내는 저장 소자는, 바깥쪽 일차 전압 빈들(HB=000 및 HB=101)에 대한 3개의 전압 서브-빈들, 그리고 안쪽 일차 전압 빈들(HB=001, HB=010, HB=011, HB=111, HB=110, HB=100)에 대한 5개의 전압 서브-빈들을 구현한다. 감지 챠트(700)가 나타내는 저장 소자의 임계 전압 범위는 7개의 일차 기준 전압들(V01, V02, V03, V04, V05, V06, V07)에 의해 8개의 일차 전압 빈들로 분할된다. 8개의 일차 전압 빈들은 하드 비트 값들 HB=000, HB=001, HB=010, HB=011, HB=111, HB=110, HB=100, 및 HB=101에 각각 대응한다.
제 1 일차 전압 빈(HB=000)은 이차 기준 전압들(V01 -1 및 V01 -2)에 의해 3개의 전압 서브-빈들(전압 서브-빈 1, 전압 서브-빈 2, 전압 서브-빈 3)로 분할된다. 전압 서브-빈 1, 전압 서브-빈 2, 및 전압 서브-빈 3에는 소프트 비트 111, 소프트 비트 101, 및 소프트 비트 001이 각각 할당된다.
제 2 일차 전압 빈(HB=001)은 이차 기준 전압들(V01 +1, V01 +2, V02 -1 및 V02 -2)에 의해 5개의 전압 서브-빈들(전압 서브-빈 4, 전압 서브-빈 5, 전압 서브-빈 6, 전압 서브-빈 7, 및 전압 서브-빈 8)로 분할된다. 전압 서브-빈 4, 전압 서브-빈 5, 전압 서브-빈 6, 전압 서브-빈 7, 및 전압 서브-빈 8에는 소프트 비트 001, 소프트 비트 101, 소프트 비트 111, 소프트 비트 110, 및 소프트 비트 010이 각각 할당된다.
제 3 일차 전압 빈(HB=010)은 이차 기준 전압들(V02 +1, V02 +2, V03 -1 및 V03 -2)에 의해 5개의 전압 서브-빈들(전압 서브-빈 9, 전압 서브-빈 10, 전압 서브-빈 11, 전압 서브-빈 12, 및 전압 서브-빈 13)로 분할된다. 전압 서브-빈 9, 전압 서브-빈 10, 전압 서브-빈 11, 전압 서브-빈 12, 및 전압 서브-빈 13에는 소프트 비트 010, 소프트 비트 110, 소프트 비트 111, 소프트 비트 101, 및 소프트 비트 001이 각각 할당된다.
제 4 일차 전압 빈(HB=011)은 이차 기준 전압들(V03 +1, V03 +2, V04 -1 및 V04 -2)에 의해 5개의 전압 서브-빈들(전압 서브-빈 14, 전압 서브-빈 15, 전압 서브-빈 16, 전압 서브-빈 17, 및 전압 서브-빈 18)로 분할된다. 전압 서브-빈 14, 전압 서브-빈 15, 전압 서브-빈 16, 전압 서브-빈 17, 및 전압 서브-빈 18에는 소프트 비트 001, 소프트 비트 101, 소프트 비트 100, 소프트 비트 110, 및 소프트 비트 111이 각각 할당된다.
제 5 일차 전압 빈(HB=111)은 이차 기준 전압들(V04 +1, V04 +2, V05 -1 및 V05 -2)에 의해 5개의 전압 서브-빈들(전압 서브-빈 19, 전압 서브-빈 20, 전압 서브-빈 21, 전압 서브-빈 22, 및 전압 서브-빈 23)로 분할된다. 전압 서브-빈 19, 전압 서브-빈 20, 전압 서브-빈 21, 전압 서브-빈 22, 및 전압 서브-빈 23에는 소프트 비트 111, 소프트 비트 110, 소프트 비트 100, 소프트 비트 101, 및 소프트 비트 001이 각각 할당된다.
제 6 일차 전압 빈(HB=110)은 이차 기준 전압들(V05 +1, V05 +2, V06 -1 및 V06 -2)에 의해 5개의 전압 서브-빈들(전압 서브-빈 24, 전압 서브-빈 25, 전압 서브-빈 26, 전압 서브-빈 27, 및 전압 서브-빈 28)로 분할된다. 전압 서브-빈 24, 전압 서브-빈 25, 전압 서브-빈 26, 전압 서브-빈 27, 및 전압 서브-빈 28에는 소프트 비트 001, 소프트 비트 101, 소프트 비트 100, 소프트 비트 110, 및 소프트 비트 111이 각각 할당된다.
제 7 일차 전압 빈(HB=100)은 이차 기준 전압들(V06 +1, V06 +2, V07 -1 및 V07 -2)에 의해 5개의 전압 서브-빈들(전압 서브-빈 29, 전압 서브-빈 30, 전압 서브-빈 31, 전압 서브-빈 32, 및 전압 서브-빈 33)로 분할된다. 전압 서브-빈 29, 전압 서브-빈 30, 전압 서브-빈 31, 전압 서브-빈 32, 및 전압 서브-빈 33에는 소프트 비트 111, 소프트 비트 110, 소프트 비트 100, 소프트 비트 101, 및 소프트 비트 001이 각각 할당된다.
제 8 일차 전압 빈(HB=101)은 이차 기준 전압들(V07 +1 및 V07 +2)에 의해 3개의 전압 서브-빈들(전압 서브-빈 34, 전압 서브-빈 35, 전압 서브-빈 36)로 분할된다. 전압 서브-빈 34, 전압 서브-빈 35, 및 전압 서브-빈 36에는 소프트 비트 001, 소프트 비트 101, 및 소프트 비트 100이 각각 할당된다. 전압 서브-빈 1 내지 전압 서브-빈 36은 증가하는 임계 전압 레벨에 대응한다.
감지 챠트(700)가 나타내는 저장 소자의 판독 동작 동안, 저장 소자의 임계 전압이 감지되고, 임계 전압이 존재하는 전압 서브-빈이 식별된다. 감지된 임계 전압이 존재하는 전압 서브-빈에 대응하는 하드 비트 및 소프트 비트들은 메모리(100)의 데이터 레지스터(116)로부터 외부 제어기(302)의 ECC 디코더에 전송된다. 예를 들어, 만약 감지된 임계 전압이 전압 서브-빈 21 내에 존재한다면, (HB=111, SB=100에 대응하는) 비트 스트림 111100이 메모리(100)의 데이터 레지스터(116)로부터 외부 제어기(302)의 ECC 디코더에 전송된다. 그 다음에, ECC 디코더는 수신되는 HB/SB 비트 스트림을 사용하여 어떤 일차 전압 빈이 저장 소자의 감지된 임계 전압을 포함하고 있는지를 결정하고 이에 따라 어떤 데이터가 저장 소자에 저장되는지를 결정하는 기능을 수행한다.
도 7b는 본 발명의 일 실시예에 따른, 도 7a의 감지 챠트에 따라 동작되는 저장 소자로부터의 판독 동작에 대한 전송되는 비트 스트림 대 수신되는 비트 스트림의 확률 챠트(701)를 나타낸다. 확률 챠트(701)에서, 챠트(701)의 상부에서 하부로 정렬되는 바와 같은 전송되는 비트 스트림들의 시퀀스는, 챠트(701)의 좌측에서 우측으로 정렬되는 바와 같은 수신되는 비트 스트림들의 시퀀스(이것은 감지된 임계 전압 레벨 증가에 따른 가능한 전송되는 비트 스트림들에 대응함)에 매칭된다. 따라서, 챠트의 상부-좌측에서 하부-우측으로 이어지는 일련의 대각선 셀들은 메모리(100)의 데이터 레지스터(116)로부터 외부 제어기(302)의 ECC 디코더로의 비트 스트림의 에러 없는 전송에 대응한다.
챠트(701) 내의 각각의 셀은 대응하는 전송되는 비트 스트림으로부터 대응하는 수신되는 비트 스트림을 획득할 확률을 나타낸다. 확률 챠트(701)에서, 비트-에러 확률은 p로서 표현된다. 또한, 잘못된 비트 스트림을 수신할 확률은 pz와 동일하며, 여기서 z는 수신되는 비트 스트림에서 에러가 있는 비트들의 개수이다. 그리고, 올바르게 수신되는 비트 스트림을 가질 확률은 모든 잘못 수신되는 비트 스트림들이 발생할 확률들의 합산값을 1에서 뺀 값이며, 이것은 EQ로 표시되어 있다.
확률 챠트(701)는, 올바르게 수신되는 비트 스트림 확률(EQ)로부터 멀어지는 각각의 방향으로 그 전송되는 비트 스트림들 중 어느 것에 대해서도 수신되는 비트 스트림 에러 확률이 단조적으로 변하지 않음을 나타낸다. 따라서, 도 7a 및 도 7b에 나타나는 바와 같은 저장 소자 동작의 복잡도와, 이에 따른 I/O 버스(102)를 통해 전송될 복잡한 비트 스트림들을 갖는 경우, 도 7a 및 도 7b가 나타내는 예시적 실시예에서, 더 높은 신뢰도로 디코딩되는 비트 스트림들은, 수신되는 비트 스트림 에러 확률에서의 순수한 단조적 거동과는 대조적으로, 수신되는 비트 스트림들의 수가 더 낮은 수가 되어 하드 비트 에러의 확률이 우월적 확률 항이 될 때 그 수신되는 비트 스트림들의 이러한 더 낮은 수에 맵핑된 임의의 전송되는 비트 스트림에 근거하여 결정될 수 있다. 보다 구체적으로 말하면, 일 실시예에서, 소프트 비트 에러 없는 단일 하드 비트 에러를 가질 전체 확률 중 가장 낮은 확률을 갖는 전송되는 비트 스트림들이 더 높은 신뢰도로 디코딩되는 비트 스트림들로서 지정될 수 있다.
도 7c는 본 발명의 일 실시예에 따른, 각각의 전송되는 비트 스트림에 대해, 즉 각각의 로우(row)에 대해, 하드 비트 에러의 확률이 (p)가 되는 때 즉, 우월적 에러 확률 항이 되는 때의 경우들의 수(Np)를 나타낸 챠트(703)를 보여준다. 도 7c에 관하여 살펴보면, 이러한 경우들의 수(Np)는 소정의 전송되는 비트 스트림에 대한 수신되는 비트 스트림들의 수를 나타낸다. 챠트(703)에서 제시되는 바와 같이, 로우 8과 로우 9에 대응하는 전송되는 비트 스트림들 [001010] 및 [010010]은 하드 비트 에러의 확률이 (p)가 되는 경우들의 가장 낮은 수를 갖고, 이에 따라 더 높은 신뢰도로 디코딩되는 비트 스트림들로서 지정된다. 도 7a 내지 도 7c의 실시예에서, 에일리어싱 모듈(501)은 더 낮은 신뢰도로 디코딩되는 더 높은 빈도로 전송되는 비트 스트림을 그 각각이 더 높은 신뢰도로 디코딩되는 비트 스트림 [001010] 혹은 비트 스트림 [010010]으로 에일리어싱하도록 정의될 수 있다. 결과적으로, 디-에일리어싱 모듈(503)은 이러한 비트 스트림을 외부 제어기(302)에 도달시 디-에일리어싱하도록 정의될 수 있다.
앞서의 설명을 고려하는 경우, 에일리어싱 모듈(501)과 디-에일리어싱 모듈(503)은 본 발명의 일 실시예에 따른, 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템을 함께 형성함을 이해해야 한다. 에일리어싱 모듈(501)은 메모리(100)로부터 메모리(100)의 외부 제어기(302)로 데이터 버스(102)를 통해 전송될 제 1 비트 스트림을 수신하도록 연결 및 정의된다. 일 실시예에서, 에일리어싱 모듈(501)은 메모리(100)의 데이터 레지스터(116)로부터 제 1 비트 스트림을 수신하도록 연결 및 정의된다. 에일리어싱 모듈(501)은 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하여 데이터 버스(102)를 통해 제 1 비트 스트림 대신에 제 2 비트 스트림을 전송하도록 연결 및 정의된다. 디-에일리어싱 모듈(503)은 외부 제어기(302)에서 데이터 버스(102)로부터 제 2 비트 스트림을 수신하도록 연결 및 정의된다. 디-에일리어싱 모듈(503)은 수신되는 제 2 비트 스트림을 역으로 제 1 비트 스트림으로 디-에일리어싱하여 프로세싱을 위해 제 1 비트 스트림을 외부 제어기(302)에 제공하도록 연결 및 정의된다. 일 실시예에서, 디-에일리어싱 모듈(503)은 제 1 비트 스트림을 메모리(100)의 외부 제어기(302) 내의 에러 정정 코드 디코더에 제공하도록 연결 및 정의된다.
일 실시예에서, 에일리어싱 모듈(501)은 도 5a에 관하여 논의된 바와 같이, 메모리(100) 외부에 있는 별개의 회로로서 정의된다. 또 다른 실시예에서, 에일리어싱 모듈(501)은 도 5b에 관하여 논의된 바와 같이, 메모리(100) 내부에 있는 회로로서 정의된다. 일 실시예에서, 디-에일리어싱 모듈(503)은 도 5a에 관하여 논의된 바와 같이, 외부 제어기(302) 외부에 있는 별개의 회로로서 정의된다. 또 다른 실시예에서, 디-에일리어싱 모듈(503)은 도 5b에 관하여 논의된 바와 같이, 외부 제어기(302) 내부에 있는 회로로서 정의된다.
일 실시예에서, 에일리어싱 모듈(501)은 제 1 비트 스트림의 아이덴티티(identity)를 특정하는 데이터, 그리고 제 2 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 에일리어싱 활성화 상태(aliasing enablement condition)(즉, 에일리어싱이 활성화됨 혹은 에일리어싱이 활성화되지 않음)를 특정하는 데이터로, 프로그래밍되도록 정의된다. 또 다른 실시예에서, 에일리어싱 모듈(501)은, 제 1 비트 스트림이 메모리(100)로부터 외부 제어기(302)로 데이터 버스를 통해 전송되려고 할 때마다 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하도록 고정배선된다.
일 실시예에서, 디-에일리어싱 모듈(503)은, 제 1 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 제 2 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 디-에일리어싱 활성화 상태(de-aliasing enablement condition)(즉, 디-에일리어싱이 활성화됨 혹은 디-에일리어싱이 활성화되지 않음)를 특정하는 데이터로, 프로그래밍되도록 정의된다. 또 다른 실시예에서, 디-에일리어싱 모듈(503)은, 제 2 비트 스트림이 외부 제어기(302)에서 데이터 버스(302)로부터 수신될 때마다 제 2 비트 스트림을 역으로 제 1 비트 스트림으로 디-에일리어싱하도록 고정배선된다.
일 실시예에서, 제 1 비트 스트림은 메모리(100)로부터 외부 제어기(302)로 더 높은 빈도로 전송되는 비트 스트림이며, 제 2 비트 스트림은 제 1 비트 스트림과 비교해 외부 제어기(302)에서 에러 정정 코드 디코더에 의해 더 높은 신뢰도로 디코딩된다. 이러한 실시예의 일 형태에서, 제 1 비트 스트림은 수신되는 비트 스트림의 에러 발생 확률이 저장 소자의 임계 전압 레벨(threshold voltage level)에 따라 비단조적으로(non-monotonically) 변하는 에러 발생 확률과 관련된다. 또한, 이러한 실시예에서, 제 2 비트 스트림은 수신되는 비트 스트림의 에러 발생 확률이 저장 소자의 임계 전압 레벨에 따라 단조적으로(monotonically) 변하는 에러 발생 확률과 관련된다. 또 다른 실시예에서, 수신되는 비트 스트림들의 수가 더 낮은 수가 되어 하드 비트 에러의 확률이 우월적 확률 항이 될 때 제 2 비트 스트림은 수신되는 비트 스트림들의 이러한 더 낮은 수에 맵핑(mapping)된 임의의 전송되는 비트 스트림에 대응한다.
추가적으로, 앞서의 설명을 고려하는 경우, 본 발명은 메모리 시스템(500/500A)으로서 구현될 수 있음을 이해해야 한다. 일 실시예에서, 메모리 시스템(500/500A)은 플래시 메모리 시스템(flash memory system)이다. 메모리 시스템(500/500A)은, 메모리 어레이(108), 데이터 레지스터(116), 에일리어싱 모듈(501), 데이터 버스(102), 디-에일리어싱 모듈(503), 그리고 외부 제어기(302)를, 본 명세서에서 설명되는 다른 메모리 시스템(500/500A) 컴포넌트들과 함께, 포함한다. 데이터 레지스터(116)는 메모리 어레이(106)로부터 제 1 비트 스트림을 수신 및 저장하도록 연결 및 정의된다. 에일리어싱 모듈(501)은 데이터 레지스터(116)로부터 제 1 비트 스트림을 수신하여 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하도록 연결 및 정의된다. 에일리어싱 모듈(501)은 또한, 데이터 버스(102)를 통해 제 1 비트 스트림 대신에 제 2 비트 스트림을 전송하도록 연결 및 정의된다.
데이터 버스(102)는 에일리어싱 모듈(501)로부터 전송되는 제 2 비트 스트림을 수신하도록 연결된다. 디-에일리어싱 모듈(503)은 에일리어싱 모듈(501)로부터 데이터 버스(102)를 통해 전송되는 제 2 비트 스트림을 수신하여 제 2 비트 스트림을 역으로 제 1 비트 스트림으로 디-에일리어싱하도록 연결된다. 외부 제어기(302)는 디-에일리어싱 모듈(503)로부터 제 1 비트 스트림을 수신하도록 연결된 에러 정정 코드 디코더를 포함한다. 일 실시예에서, 제 1 비트 스트림은 메모리 어레이(108)로부터 외부 제어기(302)로 더 높은 빈도로 전송되는 비트 스트림이며, 제 2 비트 스트림은 제 1 비트 스트림과 비교해 외부 제어기(302)에서 에러 정정 코드 디코더에 의해 더 높은 신뢰도로 디코딩된다.
일 실시예에서, 에일리어싱 모듈(501)은, 제 1 비트 스트림이 데이터 버스(102)를 통해 전송되려고 할 때마다 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하도록 고정배선된다. 또한, 일 실시예에서, 디-에일리어싱 모듈(503)은, 제 2 비트 스트림이 데이터 버스(302)로부터 수신될 때마다 제 2 비트 스트림을 역으로 제 1 비트 스트림으로 디-에일리어싱하도록 고정배선된다. 또 다른 실시예에서, 에일리어싱 모듈(501)과 디-에일리어싱 모듈(503) 각각은, 제 1 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 제 2 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 에일리어싱 활성화 상태와 디-에일리어싱 활성화 상태를 특정하는 데이터로, 프로그래밍되도록 정의된다.
도 8은 본 발명의 일 실시예에 따른, 메모리 시스템을 동작시키기 위한 방법을 나타낸다. 본 방법은 메모리 어레이 내의 저장 소자로부터 제 1 비트 스트림을 판독하기 위한 동작(801)을 포함한다. 본 방법은 또한, 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하기 위한 동작(803)을 포함한다. 본 방법은 또한, 제 1 비트 스트림 대신에 제 2 비트 스트림을 데이터 버스를 통해 외부 메모리 제어기에 전송하기 위한 동작(805)을 포함한다. 본 방법은 또한, 외부 메모리 제어기에서 제 2 비트 스트림의 도착시 제 2 비트 스트림을 역으로 제 1 비트 스트림으로 디-에일리어싱하기 위한 동작(807)을 포함한다. 그리고, 본 방법은, 외부 메모리 제어기에서 제 1 비트 스트림을 에러 정정 코드 디코더에 제공하기 위한 동작(809)을 포함한다.
일 실시예에서, 제 1 비트 스트림은 메모리로부터 외부 제어기로 더 높은 빈도로 전송되는 비트 스트림이며, 제 2 비트 스트림은 제 1 비트 스트림과 비교해 외부 제어기에서 에러 정정 코드 디코더에 의해 더 높은 신뢰도로 디코딩된다. 이러한 실시예의 일 형태에서, 제 1 비트 스트림은 수신되는 비트 스트림의 에러 발생 확률이 저장 소자의 임계 전압 레벨에 따라 비-단조적으로 변하는 에러 발생 확률과 관련되고, 제 2 비트 스트림은 수신되는 비트 스트림의 에러 발생 확률이 저장 소자의 임계 전압 레벨에 따라 단조적으로 변하는 에러 발생 확률과 관련된다. 또 다른 실시예에서, 수신되는 비트 스트림들의 수가 더 낮은 수가 되어 하드 비트 에러의 확률이 우월적 확률 항이 될 때 제 2 비트 스트림은 수신되는 비트 스트림들의 이러한 더 낮은 수에 맵핑된 임의의 전송되는 비트 스트림에 대응한다.
일 실시예에서, 본 방법은 또한, 제 1 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 제 2 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 에일리어싱 활성화 상태를 특정하는 데이터로, 에일리어싱 모듈을 프로그래밍하기 위한 동작을 포함할 수 있다. 또한, 일 실시예에서, 본 방법은, 제 1 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 제 2 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 디-에일리어싱 활성화 상태를 특정하는 데이터로, 디-에일리어싱 모듈을 프로그래밍하기 위한 동작을 포함할 수 있다.
본 명세서에서 설명되는 방법은 컴퓨터 판독가능 매체 상에 컴퓨터 판독가능 코드로서 수록될 수 있다. 예를 들어, 컴퓨터 판독가능 코드는 하나 이상의 레이아웃 데이터 파일(layout data file)들을 포함할 수 있고, 이러한 레이아웃 데이터 파일들에는 에일리어싱 모듈(501) 및/또는 디-에일리어싱 모듈(503)에 대응하는 하나 이상의 레이아웃들이 저장된다. 본 명세서에서 언급되는 컴퓨터 판독가능 매체는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이며, 따라서 이러한 데이터는 컴퓨터 시스템에 의해 판독될 수 있다. 컴퓨터 판독가능 매체의 예들은, 하드 드라이브(hard drive)들, 네트워크 부착 저장소(Network Attached Storage, NAS), 판독-전용 메모리(read-only memory), 랜덤-액세스 메모리(random-access memory), CD-ROM들, CD-R들, CD-RW들, 솔리드-스테이트 디지털 데이터 저장 디바이스(solid-state digital data storage device)들, 자기 테이프(magnetic tape)들, 및 다른 광학 및 비-광학 데이터 저장 디바이스들을 포함한다. 컴퓨터 판독가능 매체는 또한, 결합된 컴퓨터 시스템들의 네트워크를 통해 분산될 수 있고, 이에 따라 컴퓨터 판독가능 코드는 분산되는 방식으로 저장 및 실행되게 된다.
본 발명의 일부를 형성하는 본 명세서에서 설명되는 동작들 중 임의의 동작은 유용한 머신 동작(useful machine operations)들이다. 본 발명은 또한 이러한 동작들을 수행하기 위한 디바이스 혹은 장치에 관한 것이다. 이러한 장치는 특수 목적 컴퓨터와 같이 필요한 목적을 위해 특별하게 구성될 수 있다. 컴퓨터는 또한, 특수 목적 컴퓨터로서 정의되는 경우, 그 특수 목적을 위해 여전히 동작할 수 있음과 아울러 특수 목적 부분이 아니 다른 프로세싱, 프로그램 실행 혹은 루틴(routine)들을 수행할 수 있다. 대안적으로, 이러한 동작들은 범용 컴퓨터에 의해 프로세싱될 수 있는바, 여기서 범용 컴퓨터는, 컴퓨터 메모리, 캐시에 저장되어 있거나 네트워크를 통해 획득되는 하나 이상의 컴퓨터 프로그램들에 의해 선택적으로 활성화되거나 구성된다. 데이터가 네트워크를 통해 획득되는 경우, 이러한 데이터는 네트워크 상의 다른 컴퓨터들(예를 들어, 다수의 컴퓨팅 리소스들)에 의해 프로세싱될 수 있다.
본 발명의 실시예들은 또한, 데이터를 하나의 상태로부터 또 하나의 다른 상태로 변환하는 머신으로서 정의될 수 있다. 데이터는, 전자 신호(electronic signal)로서 나타내어 질 수 있음과 아울러 데이터를 전자적으로 조작할 수 있는 임의의 아티클(article)을 나타낼 수 있다. 변환된 데이터는, 일부 경우에 있어, 디스플레이 상에 시각적으로 제시될 수 있는바, 이는 데이터의 변환형태로부터 기인하는 물리적 오브젝트(physical object)를 나타내게 된다. 변환된 데이터는 일반적으로 저장소에 저장될 수 있거나, 혹은 물리적인 유형의(tangible) 오브젝트의 구성 혹은 묘사가 가능한 특정 포맷(format)들로 저장될 수 있다. 일부 실시예들에서, 이러한 조작은 프로세서에 의해 수행될 수 있다. 따라서, 이러한 예에서, 프로세서는 데이터를 하나의 형태로부터 또 하나의 다른 형태로 변환한다. 추가적으로, 본 방법들은 네트워크를 통해 연결될 수 있는 하나 이상의 머신들 혹은 프로세서들에 의해 프로세싱될 수 있다. 각각의 머신은 데이터를 하나의 상태 혹은 형태로부터 또 하나의 다른 상태 혹은 형태로 변환할 수 있고, 또한, 데이터를 프로세싱할 수 있고, 데이터를 저장소에 저장할 수 있고, 데이터를 네트워크를 통해 전송할 수 있고, 결과를 디스플레이할 수 있고, 혹은 결과를 또 하나의 다른 머신에 전달할 수 있다.
본 명세서에서 설명되는 바와 같은 에일리어싱 모듈(501) 및/또는 디-에일리어싱 모듈(503)은 반도체 디바이스 혹은 칩(chip)의 일부로서 제조될 수 있음을 또한, 이해해야 한다. 집적 회로들, 메모리 셀들, 등과 같은 반도체 디바이스들의 제조에 있어서, 일련의 제조 동작들은 반도체 웨이퍼 상에 피처(feature)들을 정의하도록 수행된다. 웨이퍼는 실리콘 기판 상에 정의되는 복수-레벨 구조들의 형태를 갖는 집적 회로 디바이스들을 포함한다. 기판 레벨에서는, 확산 영역들을 갖는 트랜지스터 디바이스들이 형성된다. 후속 레벨들에서는, 원하는 집적 회로 디바이스를 정의하기 위해, 상호연결 금속화 라인(interconnect metallization line)들이 패터닝(patterning)되고 트랜지스터 디바이스들에 전기적으로 연결된다. 또한, 패터닝된 전도성 층들은 유전체 물질들에 의해 다른 전도성 층들로부터 절연된다.
본 발명이 수 개의 실시예들에 관해 설명되었지만, 본 발명의 기술분야에서 숙련된 자들이 앞서의 상세한 설명을 판독하고 도면들을 연구하는 경우 다양한 변형물, 부가물, 치환물 및 그 등가물을 실현할 수 있다는 것을 이해해야 한다. 따라서, 본 발명은 본 발명의 진정한 사상 및 범위 내에 있는 이러한 모든 변형물, 부가물, 치환물, 및 등가물을 포함한다.

Claims (25)

  1. 메모리 시스템에서의 비트 스트림 에일리어싱(bit stream aliasing)을 위한 시스템으로서,
    메모리로부터 상기 메모리의 외부 제어기로 데이터 버스(data bus)를 통해 전송될 제 1 비트 스트림(bit stream)을 수신하고 상기 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하여 상기 데이터 버스를 통해 상기 제 1 비트 스트림 대신에 상기 제 2 비트 스트림을 전송하도록 연결 및 정의된 에일리어싱 모듈(aliasing module)과; 그리고
    상기 외부 제어기에서 상기 데이터 버스로부터 상기 제 2 비트 스트림을 수신하고 상기 수신되는 제 2 비트 스트림을 역으로(back) 상기 제 1 비트 스트림으로 디-에일리어싱(de-aliasing)하여 프로세싱(processing)을 위해 상기 제 1 비트 스트림을 상기 외부 제어기에 제공하도록 연결 및 정의된 디-에일리어싱 모듈(de-aliasing module)을 포함하는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  2. 제1항에 있어서,
    상기 에일리어싱 모듈은 상기 메모리의 데이터 레지스터(data register)로부터 상기 제 1 비트 스트림을 수신하도록 연결 및 정의되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  3. 제1항에 있어서,
    상기 에일리어싱 모듈은 상기 메모리 외부에 있는 별개의 회로로서 정의되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  4. 제1항에 있어서,
    상기 에일리어싱 모듈은 상기 메모리 내부에 있는 회로로서 정의되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  5. 제1항에 있어서,
    상기 디-에일리어싱 모듈은 상기 메모리의 상기 외부 제어기 내에 있는 에러 정정 코드 디코더(error correction code decoder)에 상기 제 1 비트 스트림을 제공하도록 연결 및 정의되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  6. 제1항에 있어서,
    상기 디-에일리어싱 모듈은 상기 외부 제어기 외부에 있는 별개의 회로로서 정의되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  7. 제1항에 있어서,
    상기 디-에일리어싱 모듈은 상기 외부 제어기 내부에 있는 회로로서 정의되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  8. 제1항에 있어서,
    상기 에일리어싱 모듈은, 상기 제 1 비트 스트림의 아이덴티티(identity)를 특정하는 데이터, 그리고 상기 제 2 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 에일리어싱 활성화 상태(aliasing enablement condition)를 특정하는 데이터로, 프로그래밍되도록 정의되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  9. 제1항에 있어서,
    상기 에일리어싱 모듈은, 상기 제 1 비트 스트림이 상기 메모리로부터 상기 외부 제어기로 상기 데이터 버스를 통해 전송되려고 할 때마다 상기 제 1 비트 스트림을 상기 제 2 비트 스트림으로서 에일리어싱하도록 고정배선되는(hard-wired) 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  10. 제1항에 있어서,
    상기 디-에일리어싱 모듈은, 상기 제 1 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 상기 제 2 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 디-에일리어싱 활성화 상태(de-aliasing enablement condition)를 특정하는 데이터로, 프로그래밍되도록 정의되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  11. 제1항에 있어서,
    상기 디-에일리어싱 모듈은, 상기 제 2 비트 스트림이 상기 외부 제어기에서 상기 데이터 버스로부터 수신될 때마다 상기 제 2 비트 스트림을 역으로 상기 제 1 비트 스트림으로 디-에일리어싱하도록 고정배선되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  12. 제5항에 있어서,
    상기 제 1 비트 스트림은 상기 메모리로부터 상기 외부 제어기로 더 높은 빈도로 전송되는 비트 스트림이며,
    상기 제 2 비트 스트림은 상기 제 1 비트 스트림과 비교해 상기 외부 제어기에서 상기 에러 정정 코드 디코더에 의해 더 높은 신뢰도로 디코딩되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  13. 제12항에 있어서,
    상기 제 1 비트 스트림은 수신되는 비트 스트림의 에러 발생 확률이 저장 소자의 임계 전압 레벨(threshold voltage level)에 따라 비단조적으로(non-monotonically) 변하는 에러 발생 확률과 관련되고,
    상기 제 2 비트 스트림은 수신되는 비트 스트림의 에러 발생 확률이 저장 소자의 임계 전압 레벨에 따라 단조적으로(monotonically) 변하는 에러 발생 확률과 관련되는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  14. 제12항에 있어서,
    수신되는 비트 스트림들의 수가 더 낮은 수가 되어 하드 비트 에러(hard bit error)의 확률이 우월적 확률 항(dominant probability term)이 될 때 상기 제 2 비트 스트림은 수신되는 비트 스트림들의 상기 더 낮은 수에 맵핑(mapping)된 임의의 전송되는 비트 스트림에 대응하는 것을 특징으로 하는 메모리 시스템에서의 비트 스트림 에일리어싱을 위한 시스템.
  15. 메모리 시스템으로서,
    메모리 어레이(memory array)와;
    상기 메모리 어레이로부터 제 1 비트 스트림을 수신 및 저장하도록 연결 및 정의된 데이터 레지스터와;
    상기 데이터 레지스터로부터 상기 제 1 비트 스트림을 수신하여 상기 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하고 상기 제 1 비트 스트림 대신에 상기 제 2 비트 스트림을 전송하도록 연결 및 정의된 에일리어싱 모듈과;
    상기 에일리어싱 모듈로부터 전송되는 상기 제 2 비트 스트림을 수신하도록 연결된 데이터 버스와;
    상기 에일리어싱 모듈로부터 상기 데이터 버스를 통해 전송되는 상기 제 2 비트 스트림을 수신하여 상기 제 2 비트 스트림을 역으로 상기 제 1 비트 스트림으로 디-에일리어싱하도록 연결된 디-에일리어싱 모듈과; 그리고
    상기 디-에일리어싱 모듈로부터 상기 제 1 비트 스트림을 수신하도록 연결된 에러 정정 코드 디코더를 포함하는 외부 제어기를 포함하는 것을 특징으로 하는 메모리 시스템.
  16. 제15항에 있어서,
    상기 메모리 시스템은 플래시 메모리 시스템(flash memory system)인 것을 특징으로 하는 메모리 시스템.
  17. 제15항에 있어서,
    상기 에일리어싱 모듈은, 상기 제 1 비트 스트림이 상기 데이터 버스를 통해 전송되려고 할 때마다 상기 제 1 비트 스트림을 상기 제 2 비트 스트림으로서 에일리어싱하도록 고정배선되고,
    상기 디-에일리어싱 모듈은, 상기 제 2 비트 스트림이 상기 데이터 버스로부터 수신될 때마다 상기 제 2 비트 스트림을 역으로 상기 제 1 비트 스트림으로 디-에일리어싱하도록 고정배선되는 것을 특징으로 하는 메모리 시스템.
  18. 제15항에 있어서,
    상기 에일리어싱 모듈과 상기 디-에일리어싱 모듈 각각은, 상기 제 1 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 상기 제 2 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 에일리어싱 활성화 상태와 디-에일리어싱 활성화 상태를 특정하는 데이터로, 프로그래밍되도록 정의되는 것을 특징으로 하는 메모리 시스템.
  19. 제15항에 있어서,
    상기 제 1 비트 스트림은 상기 메모리 어레이로부터 상기 외부 제어기로 더 높은 빈도로 전송되는 비트 스트림이며,
    상기 제 2 비트 스트림은 상기 제 1 비트 스트림과 비교해 상기 외부 제어기에서 상기 에러 정정 코드 디코더에 의해 더 높은 신뢰도로 디코딩되는 것을 특징으로 하는 메모리 시스템.
  20. 메모리 시스템을 동작시키기 위한 방법으로서,
    메모리 어레이 내의 저장 소자로부터 제 1 비트 스트림을 판독하는 단계와;
    상기 제 1 비트 스트림을 제 2 비트 스트림으로서 에일리어싱하는 단계와;
    상기 제 1 비트 스트림 대신에 상기 제 2 비트 스트림을 데이터 버스를 통해 외부 메모리 제어기에 전송하는 단계와;
    상기 외부 메모리 제어기에서 상기 제 2 비트 스트림의 도착시 상기 제 2 비트 스트림을 역으로 상기 제 1 비트 스트림으로 디-에일리어싱하는 단계와; 그리고
    상기 외부 메모리 제어기에서 상기 제 1 비트 스트림을 에러 정정 코드 디코더에 제공하는 단계를 포함하는 것을 특징으로 하는 메모리 시스템을 동작시키기 위한 방법.
  21. 제20항에 있어서,
    상기 제 1 비트 스트림은 상기 메모리로부터 상기 외부 메모리 제어기로 더 높은 빈도로 전송되는 비트 스트림이며,
    상기 제 2 비트 스트림은 상기 제 1 비트 스트림과 비교해 상기 외부 제어기에서 상기 에러 정정 코드 디코더에 의해 더 높은 신뢰도로 디코딩되는 것을 특징으로 하는 메모리 시스템을 동작시키기 위한 방법.
  22. 제21항에 있어서,
    상기 제 1 비트 스트림은 수신되는 비트 스트림의 에러 발생 확률이 저장 소자의 임계 전압 레벨에 따라 비단조적으로 변하는 에러 발생 확률과 관련되고,
    상기 제 2 비트 스트림은 수신되는 비트 스트림의 에러 발생 확률이 저장 소자의 임계 전압 레벨에 따라 단조적으로 변하는 에러 발생 확률과 관련되는 것을 특징으로 하는 메모리 시스템을 동작시키기 위한 방법.
  23. 제21항에 있어서,
    수신되는 비트 스트림들의 수가 더 낮은 수가 되어 하드 비트 에러의 확률이 우월적 확률 항이 될 때 상기 제 2 비트 스트림은 수신되는 비트 스트림들의 상기 더 낮은 수에 맵핑된 임의의 전송되는 비트 스트림에 대응하는 것을 특징으로 하는 메모리 시스템을 동작시키기 위한 방법.
  24. 제20항에 있어서,
    상기 제 1 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 상기 제 2 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 에일리어싱 활성화 상태를 특정하는 데이터로, 에일리어싱 모듈을 프로그래밍하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템을 동작시키기 위한 방법.
  25. 제20항에 있어서,
    상기 제 1 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 상기 제 2 비트 스트림의 아이덴티티를 특정하는 데이터, 그리고 디-에일리어싱 활성화 상태를 특정하는 데이터로, 디-에일리어싱 모듈을 프로그래밍하는 단계를 더 포함하는 것을 특징으로 하는 메모리 시스템을 동작시키기 위한 방법.
KR1020147017279A 2011-11-23 2012-11-23 확률적 디코딩을 갖는 메모리 시스템에서의 비트 스트림 에일리어싱 KR101838776B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/304,272 US8788889B2 (en) 2011-11-23 2011-11-23 Bit stream aliasing in memory system with probabilistic decoding
US13/304,272 2011-11-23
PCT/US2012/066452 WO2013078453A1 (en) 2011-11-23 2012-11-23 Bit stream aliasing in memory system with probabilistic decoding

Publications (2)

Publication Number Publication Date
KR20140098188A KR20140098188A (ko) 2014-08-07
KR101838776B1 true KR101838776B1 (ko) 2018-03-14

Family

ID=48428130

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147017279A KR101838776B1 (ko) 2011-11-23 2012-11-23 확률적 디코딩을 갖는 메모리 시스템에서의 비트 스트림 에일리어싱

Country Status (4)

Country Link
US (1) US8788889B2 (ko)
KR (1) KR101838776B1 (ko)
CN (1) CN103946798A (ko)
WO (1) WO2013078453A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101990971B1 (ko) * 2012-01-30 2019-06-19 삼성전자 주식회사 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법
US8977929B2 (en) 2013-02-27 2015-03-10 Micron Technology, Inc. Rearranging write data to avoid hard errors
EP3152765A4 (en) * 2014-06-06 2017-12-27 Crocus Technology Inc. Serial magnetic logic unit architecture
CN112650049B (zh) * 2019-10-11 2023-01-20 博世华域转向系统有限公司 电动助力转向电机的信号采集和控制输出的系统及方法
US20220375479A1 (en) * 2021-05-04 2022-11-24 Cypress Semiconductor Corporation Retransmission Softbit Decoding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100088575A1 (en) * 2008-10-07 2010-04-08 Eran Sharon Low density parity code (ldpc) decoding for memory with multiple log likelihood ratio (llr) decoders
US20110055641A1 (en) * 2009-08-26 2011-03-03 Seagate Technology Llc Data corruption detection
US8151163B2 (en) * 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US8341502B2 (en) * 2010-02-28 2012-12-25 Densbits Technologies Ltd. System and method for multi-dimensional decoding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6792523B1 (en) 1995-12-19 2004-09-14 Intel Corporation Processor with instructions that operate on different data types stored in the same single logical register file
US6097320A (en) 1998-01-20 2000-08-01 Silicon Systems, Inc. Encoder/decoder system with suppressed error propagation
US7506105B2 (en) 2005-05-02 2009-03-17 Freescale Semiconductor, Inc. Prefetching using hashed program counter
US7673222B2 (en) 2005-07-15 2010-03-02 Mediatek Incorporation Error-correcting apparatus including multiple error-correcting modules functioning in parallel and related method
US7814401B2 (en) 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US7633798B2 (en) 2007-11-21 2009-12-15 Micron Technology, Inc. M+N bit programming and M+L bit read for M bit memory cells
US8181101B2 (en) 2009-01-30 2012-05-15 International Business Machines Corporation Data bus system, its encoder/decoder and encoding/decoding method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8151163B2 (en) * 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US20100088575A1 (en) * 2008-10-07 2010-04-08 Eran Sharon Low density parity code (ldpc) decoding for memory with multiple log likelihood ratio (llr) decoders
US20110055641A1 (en) * 2009-08-26 2011-03-03 Seagate Technology Llc Data corruption detection
US8341502B2 (en) * 2010-02-28 2012-12-25 Densbits Technologies Ltd. System and method for multi-dimensional decoding

Also Published As

Publication number Publication date
US20130132798A1 (en) 2013-05-23
WO2013078453A1 (en) 2013-05-30
US8788889B2 (en) 2014-07-22
KR20140098188A (ko) 2014-08-07
CN103946798A (zh) 2014-07-23

Similar Documents

Publication Publication Date Title
CN108140407B (zh) 用于读取数据存储设备的软比特技术
US10340014B2 (en) Monitoring error correction operations performed in memory
US8255643B2 (en) Memory system and data processing method thereof
CN111415699B (zh) 数据存储装置及其操作方法
EP2686850B1 (en) Methods, devices, and systems for data sensing
US7853841B2 (en) Memory cell programming
US9837146B2 (en) Memory system temperature management
US10496474B2 (en) Semiconductor storage device and memory system having the same
US9177660B2 (en) Method of operating memory device
US8942028B1 (en) Data reprogramming for a data storage device
US9093154B2 (en) Method, memory controller and system for reading data stored in flash memory
US9870830B1 (en) Optimal multilevel sensing for reading data from a storage medium
JP6178909B1 (ja) 不揮発性半導体記憶装置
US9436397B2 (en) Validating the status of memory operations
US10658065B2 (en) Failure mode detection method and error correction method for solid state storage device
KR101838776B1 (ko) 확률적 디코딩을 갖는 메모리 시스템에서의 비트 스트림 에일리어싱
US10133645B2 (en) Data recovery in three dimensional non-volatile memory array after word line short
US11106518B2 (en) Failure mode study based error correction
US10755798B2 (en) Recovering data from a faulty memory block in a memory system
CN117437957A (zh) 存储器系统、存储器装置和操作存储器装置的方法
CN115527596A (zh) 用于在非易失性存储器装置中编程数据的设备及系统
CN115938446A (zh) 存储器装置、其操作方法以及存储器系统
CN115148235A (zh) 电源电路、半导体装置以及电源感测电路
CN111477258A (zh) 半导体存储器装置、控制器以及两者的操作方法
CN115775582A (zh) 将数据编程在非易失性存储器装置中的设备、系统及方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant