KR100801083B1 - 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법 - Google Patents

싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법 Download PDF

Info

Publication number
KR100801083B1
KR100801083B1 KR1020060136566A KR20060136566A KR100801083B1 KR 100801083 B1 KR100801083 B1 KR 100801083B1 KR 1020060136566 A KR1020060136566 A KR 1020060136566A KR 20060136566 A KR20060136566 A KR 20060136566A KR 100801083 B1 KR100801083 B1 KR 100801083B1
Authority
KR
South Korea
Prior art keywords
data
check code
information
cyclic redundancy
burst length
Prior art date
Application number
KR1020060136566A
Other languages
English (en)
Inventor
김경현
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020060136566A priority Critical patent/KR100801083B1/ko
Priority to US12/002,557 priority patent/US8321777B2/en
Application granted granted Critical
Publication of KR100801083B1 publication Critical patent/KR100801083B1/ko
Priority to US13/666,560 priority patent/US8966338B2/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/136Reed-Muller [RM] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Error Detection And Correction (AREA)

Abstract

싸이클릭 리던던시 체크를 할 수 있는 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리 장치 및 이의 구동 방법이 제공된다. 반도체 메모리 장치는, 메모리 셀 어레이와, 메모리 셀 어레이로부터 독출된 데이터들을 제공받아, 오더링 정보, 비트 구조 정보 및 버스트 길이 정보에 따라 데이터들의 적어도 일부를 선택적으로 출력하는 데이터 처리부 및 출력되는 데이터들의 에러 검출을 위한 싸이클릭 리던던시 체크 코드를 생성하는 체크 코드 생성부로서, 독출된 데이터들, 오더링 정보, 비트 구조 정보 및 버스트 길이 정보를 이용하여 싸이클릭 리던던시 체크 코드를 생성하여 출력하는 체크 코드 생성부를 포함한다.
반도체 메모리 장치, 에러 검출, 싸이클릭 리던던시 체크

Description

싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리 장치 및 이의 구동 방법{Cyclic redundancy check code generating circuit, semiconductor memory device and driving method thereof}
도 1은 본 발명의 실시예들에 따른 반도체 메모리 장치 및 이의 구동 방법을 설명하기 위한 개략적인 블록도이다.
도 2는 CRC의 개념을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 CRC 코드 발생회로를 설명하기 위한 블록도이다.
도 4a는 제1 입출력 모드 정보에 따른 본 발명의 일 실시예의 반도체 메모리 장치의 동작을 설명하기 위한 도면이다.
도 4b는 오더링부를 설명하기 위한 버스트 모드 규격을 나타내는 도면이다.
도 4c는 제1 입출력 모드 정보에 따른 선택 신호 생성부들을 설명하기 위한 블록도이다.
도 4d는 제1 입출력 모드 정보에 따른 선택부들과 덧셈부들을 설명하기 위한 블록도이다.
도 5a는 제2 입출력 모드 정보에 따른 반도체 메모리 장치의 동작을 설명하기 위한 도면이다.
도 5b는 제2 입출력 모드 정보에 따른 선택 신호 생성부들을 설명하기 위한 블록도이다.
도 5c는 제2 입출력 모드 정보에 따른 선택부들과 덧셈부들을 설명하기 위한 블록도이다.
도 6a는 제3 입출력 모드 정보에 따른 반도체 메모리 장치의 동작을 설명하기 위한 도면이다.
도 6b는 제3 입출력 모드 정보에 따른 선택 신호 생성부들을 설명하기 위한 블록도이다.
도 6c는 제3 입출력 모드 정보에 따른 선택부들과 덧셈부들을 설명하기 위한 블록도이다.
도 7은 본 발명의 다른 실시예에 따른 반도체 메모리 장치 및 이의 구동 방법을 설명하기 위한 블록도이다.
도 8은 데이터와 CRC 코드의 출력을 설명하기 위한 타이밍도이다.
도 9는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 설명하기 위한 블록도이다.
(도면의 주요부분에 대한 부호의 설명)
10, 11, 12: 반도체 메모리 장치 100: 메모리 셀 어레이
200: 데이터 처리부 210: 오더링부
220: 스위칭부 300: 체크 코드 발생부
301: CRC 코드 발생부 311_1~311_k: 선택 신호 생성부
321_1~321_k: 선택부 331_1~331_k: 덧셈부
PD_1~PD_16: 데이터 출력 핀 PC, PC_1, PC_2: CRC 코드 핀
본 발명은 리던던시 체크 코드 발생회로, 반도체 메모리 장치 및 이의 구동 방법에 관한 것이다.
메모리는 메모리 컨트롤러로 데이터를 전송하는데, 전송되는 데이터 양이 증가하게 될 수록, 비트 에러 레이트(bit error rate, BER)가 증가하게 된다. 따라서 메모리와 메모리 컨트롤러사이에 전송되는 데이터의 신뢰성이 중요한 이슈로 떠오르고 있다. 이에 따라 전송되는 데이터의 에러 검출이 가능하도록, 반도체 메모리 장치에 다양한 에러 검출 방법을 적용하고 있다.
그러나, 에러 검출을 위해 에러 검출 코드를 생성하고 이를 전송하는데에 시간이 소요되므로, 반도체 메모리 장치의 동작 속도의 향상에 걸림돌이 된다.
본 발명이 이루고자 하는 기술적 과제는, 데이터의 신뢰성을 향상시키면서도 반도체 메모리 장치의 동작 속도를 저하시키지 않는 리던던시 체크 코드 발생회로를 제공하는 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는, 데이터의 신뢰성을 향상시키면서도 반도체 메모리 장치의 동작 속도를 저하되지 않는 반도체 메모리 장치를 제 공하는 것이다.
본 발명이 이루고자 하는 또 다른 기술적 과제는, 데이터의 신뢰성을 향상시키면서도 반도체 메모리 장치의 동작 속도를 저하되지 않는 반도체 메모리 장치의 구동 방법을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 태양에 따른 싸이클릭 리던던시 체크 코드 발생회로는, 입출력 모드 정보에 대응하는 선택 신호를 제공하는 선택 신호 생성부와, 상기 선택 신호 생성부로부터 선택 신호를 제공받아, 입력되는 데이터들중에서 일부를 선택하는 선택부 및 상기 선택된 데이터들을 더하여 싸이클릭 리던던시 체크 코드를 생성하는 덧셈부를 포함한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명의 일 태양에 따른 반도체 메모리 장치는, 메모리 셀 어레이와, 상기 메모리 셀 어레이로부터 독출된 데이터들을 제공받아, 오더링 정보, 비트 구조 정보 및 버스트 길이 정보에 따라 상기 데이터들의 적어도 일부를 선택적으로 출력하는 데이터 처리부 및 상기 출력되는 데이터들의 에러 검출을 위한 싸이클릭 리던던시 체크 코드를 생성하는 체크 코드 생성부로서, 상기 독출된 데이터들, 상기 오더링 정보, 상기 비트 구조 정보 및 상기 버스트 길이 정보를 이용하여 상기 싸이클릭 리던던시 체크 코드를 생성하여 출력 하는 체크 코드 생성부를 포함한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명의 다른 태양에 따른 반도체 메모리 장치는, 메모리 셀 어레이와, 상기 메모리 셀 어레이로부터 독출된 데이터들을 입출력 모드 정보에 따라 처리하고 상기 데이터들의 적어도 일부를 선택적으로 출력하는 데이터 처리부 및 상기 출력되는 데이터의 에러 검출을 위한 체크 코드를 생성하는 체크 코드 생성부로서, 상기 독출된 데이터들을 입력받아 상기 입출력 모드 정보에 따라 상기 체크 코드를 생성하여 출력하는 체크 코드 생성부를 포함한다.
상기 또 다른 기술적 과제를 달성하기 위한 본 발명의 일 태양에 따른 반도체 메모리 장치의 구동 방법은, 메모리 셀 어레이로부터 데이터를 독출하여 데이터 처리부와 체크 코드 생성부로 제공하는 단계와, 상기 데이터 처리부가 입출력 모드 정보에 따라 상기 독출된 데이터를 처리하고, 상기 체크 코드 생성부가 상기 입출력 모드 정보에 따라 상기 독출된 데이터의 에러 검출을 위한 체크 코드를 생성하는 단계 및 상기 처리된 데이터 및 상기 체크 코드를 출력하는 단계를 포함한다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알 려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 또한 이하에서 사용되는 "회로"(circuit)와 "부"(unit)는 설명의 편의상 혼용될 수 있다.
이하 도 1을 참조하여 본 발명의 실시예들에 따른 반도체 메모리 장치 및 이의 구동 방법 방법에 대하여 설명한다. 도 1은 본 발명의 실시예들에 따른 반도체 메모리 장치 및 이의 구동 방법을 설명하기 위한 개략적인 블록도이다.
도 1을 참조하면, 반도체 메모리 장치(10)는 메모리 셀 어레이(100), 데이터 처리부(200) 및 체크 코드 생성부(300)를 포함한다. 데이터 처리부(200)는 오더링부(210)와 스위칭부(220)를 포함할 수 있는데, 이하에서는 메모리 셀 어레이(100)로부터 독출된 데이터(d0~dn-1)가 오더링부(210)를 거쳐 스위칭부(220)로 제공되는 경우를 예로 들어 설명하고, 도 1과 달리 메모리 셀 어레이(100)로부터 독출된 데이터(d0~dn-1)가 스위칭부(220)를 거쳐 오더링부(210)로 제공될 수도 있으며, 반도체 메모리 장치(10)가 오더링부(210)와 스위칭부(220)중에서 어느 하나만을 포함할 수도 있다.
어드레스 신호와 리드 커멘드 신호에 응답하여 메모리 셀 어레이(100)로부터 데이터들(d0~dn-1)이 독출되고, 독출된 데이터들(d0~dn-1)은 n개의 데이터 채널을 통해 데이터 처리부(200)와 체크 코드 생성부(300)로 제공된다.
데이터 처리부(200)는 입출력 모드 정보(BL. ORD, BO)에 따라 독출된 데이터(d0~dn-1)를 처리하고, 처리된 데이터(Data)를 출력한다. 여기서 입출력 모드 정보(BL. ORD, BO)는 오더링 정보(ORD), 버스트 길이 정보(BL), 비트 구조 정보(BO) 일 수 있다. 즉, 데이터 처리부(200)는, 독출된 데이터(d0~dn-1)를 오더링 정보(ORD) 및 버스트 길이 정보(BL)에 따라 오더링하고, 오더링된 데이터들중 일부를 비트 구조 정보(BO)에 따라 선택적으로 출력한다. 여기서 오더링 정보(ORD)는 데이터(Data)의 입출력 순서를 의미하고, 비트 구조 정보(BO)는 X4, X8, X16 중 어느 하나일 수 있다.
체크 코드 생성부(300)는 데이터 처리부(200)로부터 출력되어 전송되는 데이터들(Data)의 에러 검출을 위한 체크 코드(CC)를 생성한다. 또는 메모리 셀 어레이(100)에 기입되는 데이터들, 즉 전송된 데이터들의 에러 검출을 위한 체크 코드를 생성한다. 전송된 데이터들의 에러 검출시, 전송된 데이터들에 대한 체크 코드를 생성한뒤 데이터를 전송한 송신부측으로 체크 코드를 전송하면, 송신부측에서 데이터 전송의 오류 여부를 판단한다. 메모리 셀 어레이(100)로부터 독출된 데이터(d0~dn-1)를 전송하는 경우 및 메모리 셀 어레이(100)로 데이터를 기입하기 위해 데이터를 전송받는 경우 모두, 데이터에 대한 체크 코드(CC)를 생성하는 방법은 동일하므로, 이하에서는 메모리 셀 어레이(100)로부터 독출된 데이터(d0~dn-1)를 전송하는 경우를 설명한다.
체크 코드 생성부(300)는 독출된 데이터들과 입출력 모드 정보(BL. ORD, BO)를 이용하여 체크 코드(CC)를 생성한다. 여기서 체크 코드(CC)는, 데이터(Data)들의 에러 검출을 위한 코드로서, 해밍 코드(hamming code), 허프만 코드(Huffman code), 패러티 코드(parity bit), 터보 코드(turbo code), 저밀도 패러티 체크 코드(low-density parity-check code), 리드-뮐러 코드(Reed-Muller code), 리드-솔 로몬 에러 수정 코드(Reed-Solomon error correction code), 싸이클릭 리던던시 체크(Cyclic Redundancy Check 이하 'CRC'라 함)일 수 있다.
이러한 체크 코드 생성부(300)는, 데이터 처리부(200)가 입출력 모드 정보(BL. ORD, BO)에 따라 독출된 데이터(d0~dn-1)를 처리하는 동안에, 데이터(Data)들의 에러 검출을 위한 체크 코드(CC)를 생성하므로, 체크 코드(CC)를 생성하는데 별도의 시간을 요하지 않으므로, 반도체 메모리 장치(10)의 동작 속도에 영향을 주지 않을 수 있다. 즉, 반도체 메모리 장치(10)의 동작 속도를 저하시키지 않으면서, 데이터의 신뢰성을 확보할 수 있다.
또한, 반도체 메모리 장치(10)는 데이터가 입출력되는 입출력 핀들(미도시)외에 체크 코드 핀(미도시)을 더 포함할 수 있으며, 각 핀을 통해 데이터(Data)와 체크 코드(CC)가 동시에 출력될 수 있다. 또한, 체크 코드(CC)의 종류에 따라서, 각 핀으로부터 출력되는 데이터(Data)의 길이와 체크 코드(CC)의 길이가 동일할 수도 있다.
이하에서 데이터의 에러 검출을 위한 체크 코드로서 CRC 코드이고, 도 1의 체크 코드 생성부(300)는 CRC 코드 생성부인 경우를 예로 들어 설명하고, 다만 이에 한정되지 않는다.
도 2 내지 도 3을 참조하여 본 발명의 일 실시예에 따른 CRC 코드 발생회로, 이를 포함하는 반도체 메모리 장치 및 이의 구동 방법에 대해 설명한다. 도 2는 CRC의 개념을 설명하기 위한 도면이고, 도 3은 본 발명의 일 실시예에 따른 CRC 코드 발생회로를 설명하기 위한 블록도이다.
도 2를 참조하여 CRC 방식과 CRC 코드에 대해 설명한다.
먼저, CRC의 개념을 간략히 설명하면, 데이터를 송수신하는 장치 또는 시스템에서, 데이터가 오류없이 전송되는지를 검출하기 위해, 송신부가 데이터에 대응하는 CRC 코드를 생성하고 CRC 코드와 데이터를 전송하며, 수신부는 데이터와 CRC 코드를 수신하여 오류 여부를 검출한다. 여기서 CRC 코드는 전송하려는 데이터를 송신부와 수신부 사이에 약속된 제수(divisor)로 데이터를 나눈 나머지(remainder)가 된다. 즉, 데이터를 소정의 제수로 나눈뒤, 나머지를 데이터와 함께 송신한다. 수신부는, 데이터와 나머지를 더하고, 더한 결과를 상기 제수로 나누어 나머지에 따라 데이터 전송의 오류 여부를 판단한다. 즉, 나눈 결과가 0이면, 데이터가 오류없이 전송된 것이고, 나누어 떨어지지 않으면, 데이터의 전송과정에서 오류가 발생한 것이 된다.
도 2를 참조하여 CRC 코드에 대해 좀더 설명하면, 예를 들어, 전송하려는 4개의 데이터(Data)들이 각 1비트씩 총 4비트로서 d3d2d1d0이고, 송신부와 수신부 사이에 약속된 제수(divisor)는 3비트의 101이다. 전송하려는 4비트의 데이터(Data)들에 제수(divisor)보다 1비트 작은 2비트의 제로(0)를 붙인다. 즉, d3d2d1d0 00이 피제수(dividend)가 된다. 피제수(dividend)를 제수(divisor)로 나누면, 도 2에 도시된 바와 같이 나머지는 d1+d3 d0+d2가 된다. 이러한 나머지가 CRC 코드가 된다. 즉, CRC 코드는 제수(divisor)에 대응하여 결정되는데, CRC 코드의 각 비트(CRC[0], CRC[1])는 전송하려는 데이터(d3d2d1d0)중 선택된 데이터들(d0와 d2, d1와 d3)의 합으로 표시된다.
수신부는 전송된 데이터(d3d2d1d0)에 CRC 코드(CRC[0], CRC[1])를 더하여 약속된 제수(divisor)인 101로 나누고, 그 나머지에 따라 데이터(d3d2d1d0) 전송의 오류 여부를 판단한다.
도 3을 참조하여 CRC 코드 발생회로를 설명한다.
CRC 코드 발생회로(301)는, 상술한 바와 같이, 제수가 결정되면 CRC 코드의 각 비트(CRC[0]~CRC[k])는 데이터들중에서 선택된 일부의 합으로 결정되므로, 독출된 데이터들중에서 일부를 선택하고 선택된 데이터들을 더하여 CRC 코드의 각 비트(CRC[0]~CRC[k])를 생성한다. 여기서 독출된 데이터들중에서 일부를 선택하기 위해, CRC 코드 발생회로(301)는 입출력 모드 정보(BL. ORD, BO)를 이용한다.
좀더 구체적으로 설명하면, CRC 코드 발생회로(301)는, 선택 신호 생성부(311_1~311_k), 선택부(321_1~321_k) 및 덧셈부(331_1~331_k)를 포함하는데, 예컨데, CRC 코드(CRC[0]~CRC[k])가 k비트이면, 제1 내지 제k 선택 신호 생성부(311_1~311_k), 제1 내지 제k 선택부(321_1~321_k) 및 제1 내지 제k 덧셈부(331_1~331_k)를 포함한다.
제1 내지 제k 선택 신호 생성부(311_1~311_k)는 각각 입출력 모드 정보(BL. ORD, BO), 예컨데 버스트 길이 정보(BL), 오더링 정보(ORD) 및 비트 구조 정보(BO)를 제공받아 선택 신호들(CS0_0~CS0_n-1, CS1_0~CS1_n-1, CSk_0~CSk_n-1)을 제공한다. 선택 신호들(CS0_0~CS0_n-1, CS1_0~CS1_n-1, CSk_0~CSk_n-1)은 각각 n개의 독출된 데이터들 중에서 일부를 선택하기 위한 신호들이다. 예컨데, 제1 선택 신호들(CS0_0~CS0_n-1)은, 독출된 n개의 데이터(d0~dn-1)중에서 CRC 코드의 최하위 비 트(CRC[0])를 생성하는데 필요한 데이터들을 선택하기 위한 신호이고, 제k 선택 신호들(CSk_0~CSk_n-1)은, 독출된 n개의 데이터(d0~dn-1)중에서 CRC 코드의 최상위 비트(CRC[k])를 생성하는데 필요한 데이터들을 선택하기 위한 신호이다.
제1 내지 제k 선택부(321_1~321_k)는 독출된 제n 개의 데이터(d0~dn-1)와 선택 신호들(CS0_0~CS0_n-1, CS1_0~CS1_n-1, CSk_0~CSk_n-1)을 제공받아, 선택 신호들(CS0_0~CS0_n-1, CS1_0~CS1_n-1, CSk_0~CSk_n-1)에 따라 제n 개의 데이터(d0~dn-1)중에서 일부를 선택하여 제1 내지 제k 덧셈부(331_1~331_k)로 제공한다. 이러한 제1 내지 제k 덧셈부(331_1~331_k) 각각은 각 데이터(d0~dn-1)와 각 선택 신호(CS0_0~CS0_n-1, CS1_0~CS1_n-1, CSk_0~CSk_n-1)를 입력받는 엔드 게이트(미도시)들을 포함할 수 있다.
제1 내지 제k 덧셈부(331_1~331_k) 각각은 선택된 데이터들을 더하여 CRC 코드의 각 비트(CRC[0]~CRC[k])를 출력한다. 제1 내지 제k 덧셈부(331_1~331_k) 각각은, 각 제1 내지 제k 덧셈부(331_1~331_k)의 출력을 입력받는 익스클루시브(eclusive) 오아 게이트를 포함할 수 있다.
이하에서 입출력 모드 정보(BL. ORD, BO)에 따라, 상술한 CRC 코드 생성부를 포함하는 반도체 메모리 장치의 동작을, 구체적인 예를 들어 설명한다.
먼저 도 1, 도 4a 내지 도 4d를 참조하여, 제1 입출력 모드 정보로서, 버스트 길이 정보(BL)는 8이고, 오더링 정보(ORD)는 000이고, 비트 구조 정보(BO)는 ×16인 경우, 반도체 메모리 장치의 동작을 상세히 설명한다. 도 4a는 제1 입출력 모드 정보에 따른 본 발명의 일 실시예의 반도체 메모리 장치의 동작을 설명하기 위 한 도면이고, 도 4b는 오더링부를 설명하기 위한 버스트 모드 규격을 나타내는 도면이고, 도 4c는 제1 입출력 모드 정보에 따른 선택 신호 생성부들을 설명하기 위한 블록도이고, 도 4d는 제1 입출력 모드 정보에 따른 선택부들과 덧셈부들을 설명하기 위한 블록도이다. 설명의 편의상 도 1의 체크 코드 생성부는 CRC 코드 생성부인 것으로 설명한다.
먼저, 데이터 처리부(200)의 동작을 설명한다.
버스트 길이 정보(BL)가 8이므로, 예컨데 도 4a 에 도시된 바와 같이 128개의 데이터(d0~d127)가 메모리 셀 어레이(100)로부터 독출된다. 오더링부(210)는 버스트 길이 정보(BL)와 오더링 정보(ORD)에 따라 128개의 데이터(d0~d127)를 오더링한다. 여기서 오더링부(210)는 D0, D1, D2, D3, D4, D5, D6, D7단위로 오더링할 수 있다. 도 4b는 일반적인 반도체 메모리 장치에서 데이터 오더링을 위한 버스트 모드 규격(burst mode sprcification)을 나타낸다. 즉, 도 4b의 버스트 모드 규격(burst mode sprcification)에 따를 경우, 버스트 길이가 8이고, 오더링 정보(ORD)가 000이면, D0, D1, D2, D3, D4, D5, D6, D7순으로 오더링하여 스위칭부(220)로 제공한다. 도 4b의 A2A1A0는 어드레스 신호를 의미한다. 스위칭부(220)는, 비트 구조 정보(BO)가 ×16이고, 버스트 길이 정보(BL)가 8이므로, 병렬로 입력된 128개의 데이터(d0~d127)를 전부를 선택하여 D0, D1, D2, D3, D4, D5, D6, D7을 16개의 데이터 입출력 핀(미도시)을 통해 출력한다.
다음으로 CRC 코드 생성부(301)의 동작을 설명한다.
데이터 처리부(200)가 독출된 128개의 데이터(d0~d127)를 상술한 바와 같이 처리하고 있는 동안, CRC 코드 생성부(301)는, 128개의 데이터(d0~d127) 및 입출력 모드 정보(BL. ORD, BO)를 이용하여 CRC 코드(CRC[0]~CRC[7])를 생성한다. 즉, 버스트 길이 정보(BL)는 8이고, 오더링 정보(ORD)는 000이고, 비트 구조 정보(BO)는 ×16이면, 예컨데 도 4a에 도시된 바와 같이, CRC 코드의 각 비트(CRC[0]~CRC[7])는 128개의 데이터(d0~d127) 중에서 선택된 일부의 합으로 결정된다. 즉, CRC 코드가 8비트이면, CRC 코드의 최하위 비트(CRC[0])는 d0, d8 및 d17의 합으로 결정되고, CRC 코드의 최상위 비트(CRC[7])는 d1, d31 및 d127의 합으로 결정된다.
CRC 코드의 각 비트(CRC[0]~CRC[7])가 결정되는 것은 도 2를 참조하여 설명한 원리에 따른다. 즉, 버스트 길이 정보(BL)는 8이고, 오더링 정보(ORD)는 000이고, 비트 구조 정보(BO)는 ×16이면, 전송되는 데이터가 D0, D1, D2, D3, D4, D5, D6, D7(또는 d0, d1, d2, …, d127)이 되고, 이때, 피제수(dividend)는 d0~d1270~0으로 볼수 있으며, 이러한 경우에 CRC 코드는 도 4에 도시된 바와 같이 결정될 수 있다. 다시 말해서, 버스트 길이 정보(BL), 오더링 정보(ORD) 및 비트 구조 정보(BO)의 조합 각각에 따라 CRC 코드는 결정된다.
이렇게 버스트 길이 정보(BL), 오더링 정보(ORD) 및 비트 구조 정보(BO)에 따라 결정된 CRC 코드를 생성하기 위해, 도 3에 도시된 바와 같이, 먼저 선택 신호 생성부(311_1~311_k)는 독출된 데이터(d0~d127)들, 버스트 길이 정보(BL), 오더링 정보(ORD) 및 비트 구조 정보(BO)를 이용하여 선택 신호들을 출력한다. 이때, 버스트 길이 정보(BL), 오더링 정보(ORD) 및 비트 구조 정보(BO)의 조합 각각에 따라 CRC 코드는 결정되므로, 제1 내지 제7 선택 신호 생성부(311_1~311_7)의 내부는, 버스트 길이 정보(BL), 오더링 정보(ORD) 및 비트 구조 정보(BO)의 조합에 따라 특정한 데이터를 선택하는 선택 신호를 출력하는 논리 회로로 구성될 수 있다. 이러한 논리 회로는, 당업자들에 의해 엔드 게이트, 오아 게이트 등의 논리 연자등을 이용하여 쉽게 구현될 수 있다.
즉, 버스트 길이 정보(BL)는 8이고, 오더링 정보(ORD)는 000이고, 비트 구조 정보(BO)는 ×16이면, 제1 선택 신호 생성부(311_1~311_k)는 하이 레벨의 선택 신호(CS0_0, CS0_8, CS0_17)와 로우 레벨의 선택 신호(그외)를 출력한다. 제7 선택 신호 생성부(311_1~311_k)는 버스트 길이 정보(BL)는 8이고, 오더링 정보(ORD)는 000이고, 비트 구조 정보(BO)는 ×16이면, 하이 레벨의 선택 신호(CS7_1, CS7_31, CS7_127)와 로우 레벨의 선택 신호(그외)를 출력한다.
제1 내지 제7 선택 신호 생성부(311_1~311_7)로부터 선택 신호들이 제공되면, 도 4d에 도시된 바와 같이, 128개의 데이터(d0~d127) 중에서 특정한 데이터들을 선택하여 제1 내지 제7 덧셈부로 제공한다. 즉, 제1 선택부(321_1~321_7)는 선택 신호(CS0_0, CS0_1, CS0_8, CS0_17, CS0_127)와 128개의 데이터(d0~d127)를 입력받아 d0, d8 및 d17을 선택한다. 제7 선택부(321_1~321_k)는 선택 신호(CS7_0, CS7_1 CS7_31, CS7_127)와 128개의 데이터(d0~d127) 를 입력받아 d1, d31 및 d127를 선택한다. 이러한 제1 내지 제7 선택부(321_1~321_7)는, 예컨데 엔드 게이트(AND)들을 포함하여, 하이 레벨인 선택 신호(CS0_0, CS0_8, CS0_17 또는 CS7_1 CS7_31, CS7_127)에 따라 일부의 데이터(d0, d8 및 d17 또는 d1, d31 및 d127)를 선택할 수 있다.
제1 덧셈부(321_1)는 제1 선택부(321_1)로부터 선택된 데이터(d0, d8 및 d17)를 더하여 CRC 코드의 최하위 비트(CRC[0])를 출력하고, 제7 덧셈부(321_7)는 제7 선택부(321_1~321_k)로부터 선택된 데이터(d1, d31 및 d127)를 더하여 CRC 코드의 최상위 비트(CRC[7])를 출력한다. 이러한 제1 내지 제7 덧셈부(321_1, 321_7)는, 예컨데 익스크루시브(exclusive) 오아 게이트(XOR)를 포함할 수 있다.
다음으로 도 1, 도 5a 내지 도 5c를 참조하여 제2 입출력 모드 정보로서, 버스트 길이 정보(BL)는 8이고, 오더링 정보(ORD)는 001이고, 비트 구조 정보(BO)는 ×16인 경우, 반도체 메모리 장치의 동작을 상세히 설명한다. 도 5a는 제2 입출력 모드 정보에 따른 반도체 메모리 장치의 동작을 설명하기 위한 도면이고, 도 5b는 제2 입출력 모드 정보에 따른 선택 신호 생성부들을 설명하기 위한 블록도이고, 도 5c는 제2 입출력 모드 정보에 따른 선택부들과 덧셈부들을 설명하기 위한 블록도이다. 설명의 편의상 도 1의 체크 코드 생성부는 CRC 코드 생성부인 것으로 설명한다. 또한 도4a 내지 도 4d에 도시된 구성 요소와 동일한 기능을 하는 구성 요소에 대하서는 동일한 도면 부호를 사용하고, 설명의 편의상 해당 구성 요소에 대한 상세한 설명은 생략한다.
먼저, 데이터 처리부(200)의 동작을 설명한다.
버스트 길이 정보(BL)가 8이므로, 예컨데 128개의 데이터(d0~d127)가 메모리 셀 어레이(100)로부터 독출되면, 오더링부(210)는 버스트 길이 정보(BL)와 오더링 정보(ORD)에 따라 128개의 데이터(d0~d127)를 오더링한다. 버스트 길이가 8이고 오더링 정보(ORD)가 001이므로(도 4b 참조), D1, D2, D3, D0, D5, D6, D7, D4 순으로 오더링하여 스위칭부(220)로 제공한다. 스위칭부(220)는, 비트 구조 정보(BO)가 ×16이고, 버스트 길이 정보(BL)가 8이므로, 병렬로 입력된 128개의 데이터(d0~d127)를 전부를 선택하여 D1, D2, D3, D0, D5, D6, D7, D4을 16개의 데이터 입출력 핀(미도시)을 통해 출력한다.
다음으로 CRC 코드 생성부(301)의 동작을 설명한다.
데이터 처리부(200)가 독출된 128개의 데이터(d0~d127)를 상술한 바와 같이 처리하고 있는 동안, CRC 코드 생성부(301)는, 128개의 데이터(d0~d127) 및 입출력 모드 정보(BL. ORD, BO)를 이용하여 CRC 코드(CRC[0]~CRC[7])를 생성한다. 즉, 버스트 길이 정보(BL)는 8이고, 오더링 정보(ORD)는 001이고, 비트 구조 정보(BO)는 ×16이면, 피제수(dividend)는 d16~d63d0~d15d80~d127d64~d790~0로 볼수 있다. 오더링 정보(ORD)가 000일 때 d0, d8, d17이 있던 자리에는, 오더링 정보(ORD)가 001일 때 d16, d24, d33이 존재하므로, CRC 코드의 최하위 비트(CRC[0])는 d16, d24 및 d33의 합으로 결정된다. 또한, 오더링 정보(ORD)가 000일 때 d1, d31, d127이 있던 자리에는, 오더링 정보(ORD)가 001일 때 d17, d47, d79가 존재하므로, CRC 코드의 최상위 비트(CRC[7])는 d17, d47 및 d79의 합으로 결정된다.
따라서, 버스트 길이 정보(BL)는 8이고, 오더링 정보(ORD)는 001이고, 비트 구조 정보(BO)는 ×16이면, CRC 코드(CRC[0]~CRC[7])는 상술한 바와 같이 결정되므로, 도 5b에 도시된 바와 같이, 제1 선택 신호 생성부(311_1~311_7)는 하이 레벨의 선택 신호(CS0_16, CS0_24, CS0_33)와 로우 레벨의 선택 신호(그외)를 출력하고, 제7 선택 신호 생성부(311_1~311_7)는, 하이 레벨의 선택 신호(CS7_17, CS7_47, CS7_79)와 로우 레벨의 선택 신호(그외)를 출력한다.
제1 내지 제7 선택 신호 생성부(311_1~311_7)로부터 선택 신호들이 제공되면, 도 5c에 도시된 바와 같이, 128개의 데이터(d0~d127) 중에서 특정한 데이터들을 선택하여 제1 내지 제7 덧셈부(331_1, 331_7)로 제공한다. 즉, 제1 선택부(321_1)는 선택 신호(CS0_0, CS0_16, CS0_24, CS0_33, CS0_127)와 128개의 데이터(d0~d127)를 입력받아 d16, d24 및 d33을 선택한다. 제7 선택부(321_7)는 선택 신호(CS7_0, CS7_17, CS7_47, CS7_79, CS7_127)와 128개의 데이터(d0~d127)를 입력받아 d17, d47 및 d79를 선택한다. 이러한 제1 내지 제7 선택부(321_1~321_7)는, 예컨데 엔드 게이트(AND)들을 포함하여, 하이 레벨인 선택 신호(CS0_16, CS0_24, CS0_33 또는 CS7_17, CS7_47, CS7_69)에 따라 일부의 데이터(d16, d24 및 d33 또는 d17, d47 및 d69)를 선택할 수 있다.
제1 덧셈부(331_1)는 제1 선택부(321_1)로부터 선택된 데이터(d16, d24, d33)를 더하여 CRC 코드의 최하위 비트(CRC[0])를 출력하고, 제7 덧셈부(331_7)는 제7 선택부(321_7)로부터 선택된 데이터(d17, d47, d69)를 더하여 CRC 코드의 최상위 비트(CRC[7])를 출력한다.
다음으로 도 1, 도 6a 내지 도 6c를 참조하여 제3 입출력 모드 정보로서, 버스트 길이 정보(BL)는 4이고, 오더링 정보(ORD)는 000이고, 비트 구조 정보(BO)는 ×4인 경우, 반도체 메모리 장치의 동작을 상세히 설명한다. 도 6a는 제3 입출력 모드 정보에 따른 반도체 메모리 장치의 동작을 설명하기 위한 도면이고, 도 6b는 제3 입출력 모드 정보에 따른 선택 신호 생성부들을 설명하기 위한 블록도이고, 도 6c는 제3 입출력 모드 정보에 따른 선택부들과 덧셈부들을 설명하기 위한 블록도이다. 설명의 편의상 도 1의 체크 코드 생성부는 CRC 코드 생성부인 것으로 설명한다. 또한 도4a 내지 도 4d에 도시된 구성 요소와 동일한 기능을 하는 구성 요소에 대하서는 동일한 도면 부호를 사용하고, 설명의 편의상 해당 구성 요소에 대한 상세한 설명은 생략한다.
먼저, 데이터 처리부(200)의 동작을 설명한다.
데이터 채널은, 예컨데 버스트 길이가 8이고 비트 구조가 ×16인 경우를 고려하여 최대 128개(도 1의 데이터 채널의 수 n: 128)일 수 있는데, 버스트 길이 정보(BL)가 4이므로 64개의 데이터가 독출된다. 오더링부(210)는 버스트 길이 정보(BL)와 오더링 정보(ORD)에 따라 64개의 데이터(d0~d63)를 오더링한다. 버스트 길이가 4이고 오더링 정보(ORD)가 000이므로(도 4b 참조), D0, D1, D2, D3 순으로 오더링하여 스위칭부(220)로 제공한다. 스위칭부(220)는, 비트 구조 정보(BO)가 ×8이고, 버스트 길이 정보(BL)가 4이므로, 병렬로 입력된 64개의 데이터(d0~d63)중에서, 예컨데 도 6a의 점선위의 데이터들을 선택하여 출력할 수 있다.
다음으로 CRC 코드 생성부(301)의 동작을 설명한다.
데이터 처리부(200)가 독출된 64개의 데이터(d0~d63)를 상술한 바와 같이 처리하고 있는 동안, CRC 코드 생성부(301)는, 64개의 데이터(d0~d63) 및 입출력 모드 정보(BL. ORD, BO)를 이용하여 CRC 코드를 생성한다.
즉, 버스트 길이 정보(BL)는 4이고, 오더링 정보(ORD)는 000이고, 비트 구조 정보(BO)는 ×8이면, 피제수(dividend)는 d0~d70~0d16~d230~0d32~d390~0d48~d550~00~0로 볼 수 있다. 여기서, 선택되지 않은 데이터 및 독출되지 않은 데이터는 0으로 가정할 수 있다. 데이터의 수신부측에도 64개의 데이터(d0~d63)를 수신하여, 피제수(dividend) 형태의 데이터가 전송되는 것으로 인식하여 에러 여부를 검출하면 되기 때문이다.
이러한 경우, 버스트 길이 정보(BL)가 8이고, 비트 구조 정보(BO)가 ×16일 때(도 4a 참조) d0, d8, d17이 있던 자리에는, 버스트 길이 정보(BL)가 4이고, 비트 구조 정보(BO)가 ×8일 때 d0, 0, d17이 존재하므로, CRC 코드의 최하위 비트(CRC[0])는 d0 및 d17의 합으로 결정된다. 또한, 버스트 길이 정보(BL)가 8이고, 비트 구조 정보(BO)가 ×16일 때(도 4a 참조), d1, d31, d127이 있던 자리에는, 버스트 길이 정보(BL)가 4이고, 비트 구조 정보(BO)가 ×8일 때 d1, 0가 존재하므로, CRC 코드의 최상위 비트(CRC[7])는 d1로 결정된다.
따라서, 버스트 길이 정보(BL)는 4이고, 오더링 정보(ORD)는 000이고, 비트 구조 정보(BO)는 ×8이면, CRC 코드(CRC[0]~CRC[7])는 상술한 바와 같이 결정되므로, 도 6b에 도시된 바와 같이, 제1 선택 신호 생성부(311_1)는 하이 레벨의 선택 신호(CS0_0, CS0_17)와 로우 레벨의 선택 신호(그외)를 출력하고, 제7 선택 신호 생성부(311_7)는, 하이 레벨의 선택 신호(CS7_1)와 로우 레벨의 선택 신호(그외)를 출력한다.
제1 내지 제7 선택 신호 생성부(311_1~311_k)로부터 선택 신호들이 제공되면, 64개의 데이터(d0~d63) 중에서 특정한 데이터들을 선택하여 제1 내지 제7 덧셈부(331_1~331_7)로 제공한다. 여기서, 독출된 데이터(d0~d63) 의 수는 64개이나, 데이터 채널은 128개이므로, 나머지 64개의 데이터 채널은 플로팅 상태일 수 있으므로, 나머지 64개의 데이터 채널에서도 데이터가 독출된 것으로 가정하고, 다만, 이들을 선택하지 않는다. 즉, 제1 선택부(321_1)는 선택 신호(CS0_0, CS0_17, CS0_127)와 128개의 데이터(d0~d127)를 입력받아 d0 및 d17을 선택한다. 제7 선택부(321_7)는 선택 신호(CS7_0, CS7_1, CS7_127)와 128개의 데이터(d0~d127)를 입력받아 d1을 선택한다.
제1 덧셈부(331_1)는 제1 선택부(321_1)로부터 선택된 데이터(d0, d17)를 더하여 CRC 코드의 최하위 비트(CRC[0])로 출력하고, 제7 덧셈부(331_7)는 제7 선택부(321_7)로부터 선택된 데이터(d1)를 CRC 코드의 최상위 비트(CRC[7])로 출력한다.
이상에서 상술한 것을 토대로 다시 정리해서 말하면, 하나의 제수에 대해, CRC 체크 코드(CRC[0]~CRC[7])의 각 비트는 버스트 길이 정보(BL), 오더링 정보(ORD) 및 비트 구조 정보(BO)의 조합에 따라 특정 데이터의 합으로 결정된다. 따라서, 버스트 길이 정보(BL), 오더링 정보(ORD) 및 비트 구조 정보(BO)의 조합에 따라 독출된 데이터들중 일부를 선택하고 이들을 더하여 CRC 코드(CRC[0]~CRC[7])를 생성할 수 있으며, 독출된 데이터들중에서 일부를 선택하는 선택 신호 생성부(311_1~311_k)는, 버스트 길이 정보(BL), 오더링 정보(ORD) 및 비트 구조 정보(BO)의 조합에 따라 특정 데이터를 선택하기 위한 선택 신호를 출력한다. 이러한 선택 신호 생성부(311_1~311_7)는 당업자라면, 논리 연산자들의 조합으로 쉽게 구현 가능하다. 또한, 상기에서 설명된 선택부(321_1~321_7)들이 반드시 128개의 엔 드 게이트로 구성될 필요는 없고, 당업자라면 이를 간단하게 구현될 수 있다. 또한, 반도체 메모리 장치 내의 CRC 체크 코드 생성부의 배치는 다양하게 이루어질 수 있다.
이러한 반도체 메모리 장치에 의하면, 데이터 처리부(200)가 데이터를 처리하는 동안에 CRC 체크 코드(CRC[0]~CRC[7])가 생성되어, CRC 체크 코드(CRC[0]~CRC[7])를 생성하는데 별도의 시간을 요하지 않으므로, 반도체 메모리 장치의 동작 속도를 저하시키지 않으면서 데이터의 신뢰성을 확보할 수 있다.
도 7 및 도 8을 참조하여 본 발명의 다른 실시예에 따른 반도체 메모리 장치 및 이의 구동 방법을 설명한다. 도 7은 본 발명의 다른 실시예에 따른 반도체 메모리 장치 및 이의 구동 방법을 설명하기 위한 블록도이고, 도 8은 데이터와 CRC 코드의 출력을 설명하기 위한 타이밍도이다. 본 실시예에서는 데이터 채널이 128개이고, 버스트 길이 정보는 8이고, 비트 구조 정보는 ×16이고, CRC 코드는 8비트인 경우를 예로 들어 설명한다.
반도체 메모리 장치(11)는 데이터 버퍼부(400), CRC 코드 버퍼부(500), 데이터 출력 핀(PD_1~PD_16) 및 CRC 코드 핀(PC)을 더 포함한다.
상술한 바와 같이 데이터 처리부(200)가 데이터를 처리하는 동안에, CRC 코드 생성부(301)는 CRC 코드를 생성한다. 처리된 데이터는 데이터 버퍼부(400)를 통해 각 데이터 출력 핀(PD_1~PD_16)으로 출력되고, 생성된 CRC 코드는 CRC 코드 버퍼부(500)를 통해 CRC 코드 핀(PC)을 통해 출력된다. 이때, 데이터와 CRC 코드는, 도 9에 도시된 바와 같이 동시에 출력될 수 있다. 또한, 각 데이터 출력 핀(PD_1~PD_16)으로부터 출력되는 데이터의 비트 수, 즉 버스트 길이와 CRC 코드의 비트 수가 동일하거나 또는 CRC 코드의 비트 수가 버스트 길이보다 작은 경우, 데이터가 출력되는 시간동안 CRC 코드가 출력된다(도 9 참조). 따라서, CRC 코드를 전송하는 데에 별도의 시간을 요하지 않는다. 즉, 반도체 메모리 장치의 동작 속도를 저하시키지 않으면서 데이터의 신뢰성을 확보할 수 있다.
도 9를 참조하여 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치 및 이의 구동 방법을 설명한다. 도 9는 본 발명의 또 다른 실시예에 따른 반도체 메모리 장치를 설명하기 위한 블록도이다. 본 실시예에서는 데이터 채널이 128개이고, 버스트 길이 정보는 4이고, 비트 구조 정보는 ×16이고, CRC 코드는 8비트인 경우를 예로 들어 설명한다.
반도체 메모리 장치(12)는 데이터 버퍼부(400), CRC 코드 버퍼부(500), 데이터 출력 핀(PD_1~PD_16) 및 CRC 코드 핀(PC_1, PC_2)을 더 포함한다.
상술한 바와 같이 데이터와 CRC 코드가 동시에 출력될 수 있는데, 각 데이터 출력 핀(PD_1~PD_16)으로부터 출력되는 데이터의 비트 수, 즉 버스트 길이가 CRC 코드의 비트 수보다 작은 경우, 즉, 버스트 길이는 4이고, CRC 코드의 비트수는 8비트이면, CRC 코드가 2개의 CRC 코드 핀(PC_1, PC_2)을 통해 4비트씩 출력되므로, 데이터가 출력되는 시간동안 CRC 코드가 출력된다. 따라서, CRC 코드를 전송하는 데에 별도의 시간을 요하지 않는다. 즉, 반도체 메모리 장치의 동작 속도를 저하시키지 않으면서 데이터의 신뢰성을 확보할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명 이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
상기한 바와 같은 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리 장치 및 이의 구동 방법에 의하면, 반도체 메모리의 동작 속도를 저하시키지 않고, 데이터의 신뢰성을 확보할 수 있다.

Claims (24)

  1. 메모리 셀 어레이;
    상기 메모리 셀 어레이로부터 독출된 데이터들을 제공받아, 오더링 정보, 비트 구조 정보 및 버스트 길이 정보에 따라 상기 데이터들의 적어도 일부를 선택적으로 출력하는 데이터 처리부: 및
    상기 출력되는 데이터들의 에러 검출을 위한 싸이클릭 리던던시 체크 코드를 생성하는 체크 코드 생성부로서, 상기 독출된 데이터들, 상기 오더링 정보, 상기 비트 구조 정보 및 상기 버스트 길이 정보를 이용하여 상기 싸이클릭 리던던시 체크 코드를 생성하여 출력하는 체크 코드 생성부를 포함하는 반도체 메모리 장치.
  2. 제 1항에 있어서,
    상기 싸이클릭 리던던시 체크 코드의 각 비트는 상기 독출된 데이터들중에서 선택된 데이터들의 덧셈으로 생성되는 반도체 메모리 장치.
  3. 제 2항에 있어서,
    상기 싸이클릭 리던던시 체크 코드가 k비트일때, 상기 체크 코드 생성부는
    상기 오더링 정보, 상기 비트 구조 정보 및 상기 버스트 길이 정보에 대응하는 선택 신호를 제공하는 제1 내지 제k 선택 신호 생성부와,
    상기 제1 내지 제k 선택 신호 생성부로부터 각각 선택 신호를 제공받아 상기 독출된 데이터들중에서 일부를 선택하는 제1 내지 제k 선택부와,
    상기 선택된 데이터들을 더하여 상기 싸이클릭 리던던시 체크 코드의 상기 각 비트를 생성하는 제1 내지 제k 덧셈부를 포함하는 반도체 메모리 장치.
  4. 제 3항에 있어서,
    상기 제1 내지 제k 선택부는 각각 상기 각 선택 신호와 상기 각 독출된 데이터를 입력받는 앤드 게이트(AND)들을 포함하고,
    상기 제1 내지 제k 덧셈부는 각각 상기 앤드 게이트들의 출력을 입력받아 상기 선택된 데이터들을 더하는 익스크루시브 오아 게이트(XOR)를 포함하는 반도체 메모리 장치.
  5. 제 1항에 있어서,
    상기 데이터가 출력되는 데이터 출력 핀과, 상기 싸이클릭 리던던시 체크 코드가 출력되는 체크 코드 핀을 더 포함하는 반도체 메모리 장치.
  6. 제 5항에 있어서,
    상기 버스트 길이와 상기 싸이클릭 리던던시 체크 코드의 길이가 동일한 반도체 메모리 장치.
  7. 제 5항에 있어서,
    상기 데이터와 상기 싸이클릭 리던던시 체크 코드를 동시에 출력하는 반도체 메모리 장치.
  8. 제 1항에 있어서,
    상기 데이터 처리부는 상기 오더링 정보 및 상기 버스트 길이 정보에 따라 상기 독출된 데이터들을 오더링하는 오더링부와,
    상기 비트 구조 정보 및 상기 버스트 길이 정보에 따라 상기 오더링된 데이터들의 적어도 일부를 선택하여 출력하는 스위칭부를 포함하는 반도체 메모리 장치.
  9. 메모리 셀 어레이;
    상기 메모리 셀 어레이로부터 독출된 데이터들을 입출력 모드 정보에 따라 처리하고 상기 데이터들의 적어도 일부를 선택적으로 출력하는 데이터 처리부; 및
    상기 출력되는 데이터의 에러 검출을 위한 체크 코드를 생성하는 체크 코드 생성부로서, 상기 독출된 데이터들, 상기 입출력 모드 정보를 이용하여 상기 체크 코드를 생성하여 출력하는 체크 코드 생성부를 포함하는 반도체 메모리 장치.
  10. 제 9항에 있어서,
    상기 입출력 모드 정보는 오더링 정보, 비트 구조 정보 및 버스트 길이 정보를 포함하고,
    상기 오더링 정보 및 상기 버스트 길이 정보에 따라 상기 독출된 데이터들을 오더링하는 오더링부와,
    상기 비트 구조 정보 및 상기 버스트 길이 정보에 따라 상기 오더링된 데이터들의 적어도 일부를 선택하여 출력하는 스위칭부를 포함하는 반도체 메모리 장치.
  11. 제 9항에 있어서,
    상기 체크 코드는 싸이클릭 리던던시 체크(cyclic redundancy check)를 위한 싸이클릭 리던던시 체크 코드인 반도체 메모리 장치.
  12. 제 11항에 있어서,
    상기 체크 코드의 각 비트는 상기 독출된 데이터들중에서 선택된 데이터들의 덧셈으로 생성되는 반도체 메모리 장치.
  13. 제 12항에 있어서,
    상기 체크 코드가 k비트일때, 상기 체크 코드 생성부는
    상기 입출력 모드 정보에 대응하는 선택 신호를 제공하는 제1 내지 제k 선택 신호 생성부와,
    상기 제1 내지 제k 선택 신호 생성부로부터 각각 선택 신호를 제공받아 상기 독출된 데이터들중에서 일부를 선택하는 제1 내지 제k 선택부와,
    상기 선택된 데이터들을 더하여 상기 체크 코드의 상기 각 비트를 생성하는 제1 내지 제k 덧셈부를 포함하는 반도체 메모리 장치.
  14. 제 13항에 있어서,
    상기 제1 내지 제k 선택부는 각각 상기 각 선택 신호와 상기 각 데이터를 입력받는 앤드 게이트(AND)들을 포함하고,
    상기 제1 내지 제k 덧셈부는 각각 상기 앤드 게이트들의 출력을 입력받아 상기 선택된 일부 데이터들을 더하는 익스크루시브 오아 게이트(XOR)를 포함하는 반도체 메모리 장치.
  15. 제 9항에 있어서,
    상기 데이터가 출력되는 데이터 출력 핀과, 상기 체크 코드가 출력되는 체크 코드 핀을 더 포함하는 반도체 메모리 장치.
  16. 제 15항에 있어서,
    상기 버스트 길이와 상기 체크 코드의 길이가 동일한 반도체 메모리 장치.
  17. 제 15항에 있어서,
    상기 데이터와 상기 체크 코드를 동시에 출력하는 반도체 메모리 장치.
  18. 입출력 모드 정보에 대응하는 선택 신호를 제공하는 선택 신호 생성부;
    상기 선택 신호 생성부로부터 선택 신호를 제공받아, 입력되는 데이터들중에서 일부를 선택하는 선택부; 및
    상기 선택된 데이터들을 더하여 싸이클릭 리던던시 체크 코드를 생성하는 덧셈부를 포함하는 싸이클릭 리던던시 체크 코드 발생회로.
  19. 제 18항에 있어서,
    상기 입출력 모드 정보는 반도체 메모리 장치의 오더링 정보, 비트 구조 정보 및 버스트 길이 정보를 포함하는 싸이클릭 리던던시 체크 코드 발생회로.
  20. 제 19항에 있어서,
    상기 선택부는 상기 각 선택 신호와 상기 각 데이터를 입력받는 앤드 게이트(AND)들을 포함하고,
    상기 덧셈부는 상기 앤드 게이트들의 출력을 입력받아 상기 선택된 데이터들을 더하는 익스크루시브 오아 게이트(XOR)를 포함하는 싸이클릭 리던던시 체크 코드 발생회로.
  21. 메모리 셀 어레이로부터 데이터를 독출하여 데이터 처리부와 체크 코드 생성부로 제공하는 단계;
    상기 데이터 처리부가 입출력 모드 정보에 따라 상기 독출된 데이터를 처리 하고, 상기 체크 코드 생성부가 상기 입출력 모드 정보에 따라 상기 독출된 데이터의 에러 검출을 위한 체크 코드를 생성하는 단계; 및
    상기 처리된 데이터 및 상기 체크 코드를 출력하는 단계를 포함하는 반도체 메모리 장치의 구동 방법.
  22. 제 21항에 있어서,
    상기 입출력 모드 정보는 오더링 정보, 비트 구조 정보 및 버스트 길이 정보를 포함하는 반도체 메모리 장치의 구동 방법.
  23. 제 21항에 있어서,
    상기 체크 코드는 싸이클릭 리던던시 체크(cyclic redundancy check)를 위한 싸이클릭 리던던시 체크 코드인 반도체 메모리 장치의 구동 방법.
  24. 제 21항에 있어서,
    상기 출력하는 단계는 상기 처리된 데이터와 상기 체크 코드를 동시에 출력하는 반도체 메모리 장치의 구동 방법.
KR1020060136566A 2006-12-28 2006-12-28 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법 KR100801083B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020060136566A KR100801083B1 (ko) 2006-12-28 2006-12-28 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법
US12/002,557 US8321777B2 (en) 2006-12-28 2007-12-18 Cyclic redundancy check code generating circuit, semiconductor memory device, and method of driving semiconductor memory device
US13/666,560 US8966338B2 (en) 2006-12-28 2012-11-01 Cyclic redundancy check code generating circuit, semiconductor memory device, and method of driving semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060136566A KR100801083B1 (ko) 2006-12-28 2006-12-28 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법

Publications (1)

Publication Number Publication Date
KR100801083B1 true KR100801083B1 (ko) 2008-02-05

Family

ID=39342381

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060136566A KR100801083B1 (ko) 2006-12-28 2006-12-28 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법

Country Status (2)

Country Link
US (2) US8321777B2 (ko)
KR (1) KR100801083B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11494263B2 (en) 2020-11-30 2022-11-08 SK Hynix Inc. Controller and method of operating the same

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100801083B1 (ko) 2006-12-28 2008-02-05 삼성전자주식회사 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법
ES2547542T3 (es) * 2008-08-12 2015-10-07 Koninklijke Philips N.V. Procedimiento de comunicaciones en una red, estaciones de radio y sistema para el mismo
KR101828504B1 (ko) 2011-12-21 2018-02-12 에스케이하이닉스 주식회사 반도체 장치 및 반도체 장치의 동작방법
US9311206B2 (en) 2014-04-15 2016-04-12 Freescale Semiconductor, Inc. Method and apparatus for monitoring general purpose input output, GPIO, signals
CN105224415B (zh) * 2015-09-25 2018-01-09 北京奇虎科技有限公司 用于实现业务任务的码的生成方法及装置
CN111343605B (zh) * 2020-03-06 2023-08-29 知轮(杭州)科技有限公司 一种用于车辆局域网高速传输数据的无线通信方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4253182A (en) 1979-04-09 1981-02-24 Sperry Rand Corporation Optimization of error detection and correction circuit
JPS5690500A (en) 1979-12-25 1981-07-22 Toshiba Corp Semiconductor memory device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6077244A (ja) 1983-10-05 1985-05-01 Sony Corp Crc回路
JP3158215B2 (ja) * 1991-10-04 2001-04-23 富士通株式会社 パリティ反転試験方式
US6125469A (en) * 1994-10-18 2000-09-26 Cirrus Logic, Inc. Error correction method and apparatus
JP3249405B2 (ja) 1996-09-30 2002-01-21 株式会社東芝 誤り訂正回路および誤り訂正方法
US6445717B1 (en) * 1998-05-01 2002-09-03 Niwot Networks, Inc. System for recovering lost information in a data stream
US6415355B1 (en) * 1998-05-11 2002-07-02 Kabushiki Kaisha Toshiba Combined disk array controller and cache control method for parity generation mode and data restoration mode
JP2001036414A (ja) 1999-07-21 2001-02-09 Nec Corp Crc符号生成回路及びcrcエラー検出回路
JP2005006188A (ja) 2003-06-13 2005-01-06 Mitsubishi Electric Corp Crc演算方法およびcrc演算装置
JP2006004560A (ja) * 2004-06-18 2006-01-05 Elpida Memory Inc 半導体記憶装置及びその誤り訂正方法
JP4745169B2 (ja) * 2005-09-16 2011-08-10 株式会社東芝 半導体記憶装置
KR100801083B1 (ko) 2006-12-28 2008-02-05 삼성전자주식회사 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4253182A (en) 1979-04-09 1981-02-24 Sperry Rand Corporation Optimization of error detection and correction circuit
JPS5690500A (en) 1979-12-25 1981-07-22 Toshiba Corp Semiconductor memory device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11494263B2 (en) 2020-11-30 2022-11-08 SK Hynix Inc. Controller and method of operating the same

Also Published As

Publication number Publication date
US20130124941A1 (en) 2013-05-16
US20080163036A1 (en) 2008-07-03
US8321777B2 (en) 2012-11-27
US8966338B2 (en) 2015-02-24

Similar Documents

Publication Publication Date Title
US20240184655A1 (en) Remedial action indication
KR100801083B1 (ko) 싸이클릭 리던던시 체크 코드 발생회로, 반도체 메모리장치 및 이의 구동 방법
US6973613B2 (en) Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US6976194B2 (en) Memory/Transmission medium failure handling controller and method
US6996766B2 (en) Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US8140945B2 (en) Hard component failure detection and correction
KR100825002B1 (ko) 효과적으로 직렬로 입출력되는 데이터의 오류를 검사할 수있는 반도체 메모리 장치 및 그 구동방법
US5768294A (en) Memory implemented error detection and correction code capable of detecting errors in fetching data from a wrong address
EP0668561B1 (en) A flexible ECC/parity bit architecture
US9692455B2 (en) Multi channel memory with flexible code-length ECC
KR20190118027A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
US9239755B2 (en) Semiconductor device and semiconductor system including the same
KR20240062654A (ko) 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141231

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee