KR101425957B1 - 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템 - Google Patents
이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템 Download PDFInfo
- Publication number
- KR101425957B1 KR101425957B1 KR1020070084143A KR20070084143A KR101425957B1 KR 101425957 B1 KR101425957 B1 KR 101425957B1 KR 1020070084143 A KR1020070084143 A KR 1020070084143A KR 20070084143 A KR20070084143 A KR 20070084143A KR 101425957 B1 KR101425957 B1 KR 101425957B1
- Authority
- KR
- South Korea
- Prior art keywords
- error
- data
- ecc
- memory
- memory device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
여기에 개시된 ECC 제어 회로는 복수의 메모리 장치들과 연결되며, 복수의 ECC 블록들 및 복수의 선택기들을 포함한다. 복수의 ECC 블록들은 복수의 메모리 장치들에 각각 대응하며, 대응하는 메모리 장치로부터 읽혀진 데이터에 대한 에러 검출 및 정정을 수행하고, 에러 정정된 데이터 및 에러 검출 신호를 출력한다. 복수의 선택기들은 복수의 ECC 블록들에 각각 대응하며, 복수의 메모리 장치들로부터 읽혀진 데이터를 DMA 버퍼 및 ECC 블록으로 제공한다. 상기 선택기들 각각은 대응하는 에러 검출 신호가 활성 상태일 때 상기 메모리 장치로부터 읽혀진 데이터 대신에 상기 ECC 블록들로부터의 상기 에러 정정된 데이터를 상기 DMA 버퍼로 제공한다.
Description
본 발명은 데이터 저장 장치에 관한 것으로, 좀 더 구체적으로는 복수의 메모리 장치들에 저장된 데이터의 에러를 검출 및 정정하는 기술에 관한 것이다.
이전에는 데이터의 처리 속도 및 사용자가 요구하는 데이터의 크기(양)가 크지 않았으므로 하나의 저장 장치에 요구되는 데이터를 저장하여도 충분하였다. 최근에는 대용량의 멀티미디어 데이터 및 실시간 데이터 처리를 위해서 데이터의 읽기/쓰기 시간 단축 및 대용량의 저장 공간 확보가 중요한 이슈로 다뤄지고 있다.
특히, 저장 장치의 물리적 한계로 인하여 하나의 저장 장치에 대한 고속 동작 및 용량 증대에는 어려움이 따른다. 이러한 문제를 해결하기 위하여 동일한 메모리 장치를 복수 개 연결하거나 서로 다른 메모리 장치들을 복수 개 연결하는 멀티 채널 메모리 시스템이 도입되었다.
현재 저장 장치로서 널리 사용되는 메모리 장치로는 자성체를 입힌 원판형 알루미늄 기판을 회전시키면서 자료를 저장하고 읽어 내도록 만든 하드디스크 드라이브(hard disk drive)와, CD-ROM, DVD 등과 같이 광픽업장치를 이용해 음성, 영 상, 문자 등 정보를 저장하는 광학 디스크 드라이브(Optical Disk Drive), 그리고 플래시 메모리 장치와 같은 비휘발성 메모리 등이 있다.
이러한 메모리 장치들은 물리적 한계로 인하여 종종 저장된 데이터를 읽는 과정에서 오류가 생길 수 있다. 예컨대 엔지니어들은 하드디스크의 트랙과 섹터가 더욱 밀집시키며, 간섭을 피하기 위해 더 약한 신호를 사용하고, 또한 스핀들 모터가 더욱 빨리 돌도록 하는 방향으로 기술을 발전시키고 있다. 이렇게 기술이 발전할수록 점점 더 오류가 많아질 것이다. 또한, 하드디스크 0내부의 먼지나 정전기 방전(electostatic discharge, ESD), 온도, 습도 등과 같은 주변 환경에 의해서도 하드디스크에 저장된 데이터를 읽는 과정에서 오류가 발생할 수 있다.
한편, 플래시 메모리 장치는 메모리 칩 안에 정보를 유지하기 위해 전력이 필요없는 비휘발성 메모리 장치이다. 게다가, 비록 PC에서 메인 메모리로 사용되는 DRAM만큼 빠르지는 않지만, 플래시 메모리 장치는 읽기 속도가 빠르며 하드디스크 보다 충격에 강하다. 이러한 특징으로 인해 배터리로 동작하는 디바이스에서 저장 장치로서 많이 사용되고 있다. 플래시 메모리 장치의 또다른 매력은 강한 압력이나 끊는 물에 견딜 만큼, 물리적 수단으로 거의 파괴되지 않는다는 점이다.
플래시 메모리 장치는 전기적으로 데이터를 지우고 재기록이 가능한 비휘발성 컴퓨터 기억 장치를 말한다. EEPROM과 다르게, 플래시 메모리 장치는 블록 단위로 지우고 쓰기가 가능하다. 플래시 메모리 장치는 EEPROM보다 비용이 덜 들기 때문에 대용량의 비휘발성, 고체상태(solid-state) 스토리지가 필요한 경우 주로 사용된다. 대표적인 활용 예로 디지털 음악 재생기, 디지털 카메라, 핸드폰을 들 수 있다. 일반적인 데이터를 저장과 컴퓨터간에 데이터를 옮기는 용도로 USB 드라이브를 많이 사용하는데, 이때도 플래시 메모리 장치가 사용되고 있다.
플래시 메모리 장치는 전통적으로 비트 정보를 저장하는 셀이라 부르는 플로팅 게이트 트랜지스터들(floating gate transistors)로 구성된 어레이에 정보를 저장한다.
SLC(single level cell) 플래시 메모리 장치의 경우, 하나의 메모리 셀에 저장된 데이터는 데이터 '1'의 문턱 전압 분포와 데이터 '0'의 문턱 전압 분포 사이의 적절한 기준 전압을 사용함으로써 판별될 수 있다. 예를 들면, 기준 전압이 메모리 셀의 제어 게이트에 인가된 상태에서, 메모리 셀을 통해 전류가 흐르는 지의 여부에 따라 데이터 '1' 또는 '0'를 판별하는 것이 가능하다. 하지만, 잘 알려진 바와 같이, 메모리 셀의 문턱 전압은 정해진 전압 범위 밖까지 분포될 수 있으므로 데이터 독출 과정에서 에러 데이터가 독출될 수 있다. 이러한 현상은 전하 손실, 시간의 경과, 온도의 증가, 인접한 셀의 프로그래밍시 생기는 커플링, 인접한 셀의 읽기, 셀 결함 등과 같은 다양한 원인들로 인해 더욱 더 심각해질 것이다.
그러므로 동일한 메모리 장치이 복수 개 연결되거나 서로 다른 메모리 장치들을 복수 개 연결된 멀티 채널 메모리 시스템에서 각각의 메모리 장치로부터 독출된 데이터에 대한 에러 검출 및 정정을 수행하기 위한 스킴이 요구된다.
따라서 본 발명의 목적은 효율적으로 복수의 메모리 장치들에 저장된 데이터의 에러를 검출 및 정정하는 스킴을 제공하는데 있다.
이와 같은 목적을 달성하기 위한 본 발명의 특징에 의하면, 복수의 메모리 장치들과 연결된 ECC 제어 회로는: DMA 버퍼와, 상기 복수의 메모리 장치들에 각각 대응하며, 대응하는 메모리 장치로부터 읽혀진 데이터에 대한 에러 검출 및 정정을 수행하고, 에러 정정된 데이터 및 에러 검출 신호를 출력하는 복수의 ECC 블록들, 그리고 상기 복수의 ECC 블록들에 각각 대응하며, 상기 복수의 메모리 장치들로부터 읽혀진 데이터를 상기 DMA 버퍼 및 ECC 블록으로 제공하는 복수의 선택기들을 포함한다. 상기 선택기들 각각은 대응하는 에러 검출 신호가 활성 상태일 때 상기 메모리 장치로부터 읽혀진 데이터 대신에 상기 ECC 블록들로부터의 상기 에러 정정된 데이터를 상기 DMA 버퍼로 제공한다.
이 실시예에 있어서, 상기 복수의 ECC 블록들 각각은, 상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 상기 에러 검출 신호를 상기 활성 상태로 한다.
이 실시예에 있어서, 상기 복수의 선택기들 각각은, 상기 ECC 블록으로부터의 상기 에러 검출 신호가 활성 상태일 때 상기 대응하는 ECC 블록으로부터의 상기 에러 정정된 데이터를 상기 DMA 버퍼로 제공한다.
이 실시예에 있어서, 상기 복수의 선택기들 각각은, 상기 ECC 블록으로부터의 상기 에러 검출 신호가 비활성 상태일 때 상기 대응하는 메모리 장치로부터 읽혀진 데이터를 상기 DMA 버퍼로 제공한다.
이 실시예에 있어서, 상기 ECC 블록들 각각은, 상기 대응하는 메모리 장치로부터 읽혀진 데이터를 저장하기 위한 ECC 메모리를 포함한다.
이 실시예에 있어서, 상기 ECC 블록들 각각은, 상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 상기 ECC 메모리에 저장된 데이터에 대한 에러 정정을 수행하고, 상기 에러 정정된 데이터를 출력한다.
이 실시예에 있어서, 상기 ECC 블록들 각각은, 상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 에러 위치 정보 및 에러 상태 정보를 더 출력한다.
본 발명의 다른 특징에 의하면, 메모리 시스템은: 복수의 메모리 장치들, 그리고 상기 메모리 장치들을 제어하도록 구성된 메모리 제어기를 포함한다. 상기 메모리 제어기는, 버퍼 메모리와, 상기 저장된 데이터를 상기 버퍼 메모리로 전송하는 DMA 버퍼와, 상기 복수의 메모리 장치들에 각각 대응하며, 대응하는 메모리 장치로부터 읽혀진 데이터에 대한 에러 검출 및 정정을 수행하고, 에러 정정된 데이터 및 에러 검출 신호를 출력하는 복수의 ECC 블록들, 그리고 상기 복수의 ECC 블록들에 각각 대응하며, 상기 복수의 메모리 장치들로부터 읽혀진 데이터를 상기 DMA 버퍼 및 ECC 블록으로 제공하는 복수의 선택기들을 포함한다. 상기 선택기들 각각은 대응하는 에러 검출 신호가 활성 상태일 때 상기 메모리 장치로부터 읽혀진 데이터 대신에 상기 ECC 블록으로부터의 상기 에러 정정된 데이터를 상기 DMA 버퍼로 제공한다.
이 실시예에 있어서, 상기 복수의 ECC 블록들 각각은, 상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 상기 에러 검출 신호를 활성 상태로 한다.
이 실시예에 있어서, 상기 복수의 ECC 블록들 각각은, 상기 대응하는 메모리 장치로부터 읽혀진 데이터에 포함된 ECC 데이터를 이용하여 상기 읽혀진 데이터의 에러를 정정하도록 구성된다.
이 실시예에 있어서, 상기 복수의 선택기들 각각은, 상기 ECC 블록으로부터의 상기 에러 검출 신호가 상기 활성 상태일 때 상기 대응하는 ECC 블록으로부터의 상기 에러 정정된 데이터를 출력 데이터로서 상기 DMA 버퍼로 전달한다.
이 실시예에 있어서, 상기 복수의 선택기들 각각은, 상기 ECC 블록으로부터의 상기 에러 검출 신호가 상기 활성 상태에서 비활성 상태로 복귀하더라도 상기 대응하는 ECC 블록으로부터의 상기 에러 정정된 데이터를 상기 출력 데이터로서 출력한다.
이 실시예에 있어서, 상기 DMA 버퍼는, 상기 복수의 선택기들로부터의 상기 독출 데이터 및 상기 ECC 블록들로부터의 상기 에러 검출 신호들을 입력받고, 상기 비활성 상태인 에러 검출 신호에 대응하는 상기 출력 데이터를 상기 버퍼 메모리로 전송한다.
이 실시예에 있어서, 상기 DMA 버퍼는, 상기 에러 검출 신호에 응답해서 상 기 복수의 선택기들로부터의 상기 출력 데이터를 상기 버퍼 메모리로 전송하기 위한 관리기를 포함한다.
이 실시예에 있어서, 상기 복수의 ECC 블록들과 연결되며, 상기 복수의 메모리 장치들과의 인터페이스를 위한 메모리 인터페이스를 더 포함한다.
이 실시예에 있어서, 상기 ECC 블록들 각각은, 상기 대응하는 메모리 장치로부터 읽혀진 데이터를 저장하기 위한 ECC 메모리를 포함한다.
이 실시예에 있어서, 상기 ECC 블록들 각각은, 상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 상기 ECC 메모리에 저장된 데이터에 대한 에러 정정을 수행하고, 상기 에러 정정된 데이터를 출력한다.
이 실시예에 있어서, 상기 ECC 블록들 각각은, 상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 에러 위치 정보 및 에러 상태 정보를 상기 DMA 버퍼로 더 출력한다.
이 실시예에 있어서, 상기 DMA 버퍼는, 상기 에러 검출 신호, 상기 위치 정보 및 상기 에러 상태 정보에 응답해서 상기 복수의 선택기들을 통해 입력되는 상기 에러 정정 데이터를 상기 버퍼 메모리로 전송하기 위한 관리기를 포함한다.
본 발명의 다른 특징에 의하면, 적어도 두 개의 메모리 장치들에 각각 연결된 ECC 블록들을 포함하는 ECC 제어 회로의 에러 정정 방법은: 메모리 장치들로부터 읽혀진 데이터를 상기 ECC 블록들과 DMA 버퍼로 동시에 전송하는 단계, 상기 ECC 블록들 각각에 의해서 상기 읽혀진 데이터의 에러를 검출하는 단계, 상기 에러가 검출된 ECC 블록과 연결된 메모리 장치로부터 상기 DMA로의 상기 읽혀진 데이터 전송을 중지하는 단계, 상기 읽혀진 데이터의 에러를 정정하는 단계, 그리고 에러 정정된 데이터를 상기 DMA 버퍼로 전송하는 단계를 포함한다.
이 실시예에 있어서, 상기 에러 검출 단계는, 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 에러 검출 신호를 활성 상태로 한다.
이 실시예에 있어서, 상기 에러 정정 방법은 상기 에러가 검출된 ECC 블록에 대응하는 메모리 장치로부터 출력되는 다음 읽혀진 데이터를 상기 ECC 제어 블록으로만 제공한다.
본 발명의 또다른 특징에 의하면, 제1 및 제2 메모리 장치들과 연결된 ECC 제어 회로는: DMA 버퍼와, 상기 제1 메모리 장치로부터 읽혀진 제1 독출 데이터에 대한 에러 검출 및 정정을 수행하며, 제1 정정 데이터를 출력하는 제1 ECC 블록과, 상기 제2 메모리 장치로부터 읽혀진 제2 독출 데이터에 대한 에러 검출 및 정정을 수행하며, 제2 정정 데이터를 출력하는 제2 ECC 블록, 그리고 상기 복수의 메모리 장치들로부터 읽혀진 데이터를 상기 DMA 버퍼 및 ECC 블록으로 제공하는 선택기를 포함한다. 상기 선택기는 에러를 검출한 제1 및/또는 제2 ECC 블록으로부터 출력되는 제1 및/또는 제2 정정 데이터를 상기 제1 및/또는 제2 메모리 장치로부터 읽혀진 데이터 대신에 상기 DMA 버퍼로 제공한다.
이 실시예에 있어서, 상기 제1 ECC 블록은 상기 제1 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 제1 에러 검출 신호를 활성 상태로 하고, 그리고 상기 제2 ECC 블록은 상기 제2 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 제2 에러 검출 신호를 활성 상태로 한다.
이 실시예에 있어서, 상기 선택기는, 상기 제1 및/또는 제2 에러 검출 신호가 활성 상태일 때, 상기 제1 및/또는 제2 메모리 장치로부터 읽혀진 데이터 대신에 상기 제1 및/또는 제2 ECC 블록으로부터 출력되는 제1 및/또는 제2 정정 데이터를 상기 DMA 버퍼로 제공한다.
이 실시예에 있어서, 상기 제1 및 제2 ECC 블록들 각각은, 상기 대응하는 제1 및 제2 메모리 장치들 각각으로부터 읽혀진 데이터를 저장하기 위한 ECC 메모리를 포함한다.
이와 같은 본 발명에 의하면, ECC 제어기는 복수의 메모리 장치들로부터 읽혀진 데이터에 대한 에러를 검출함과 동시에 읽혀진 데이터를 DMA 버퍼로 제공함으로써 메모리 장치들로부터 읽혀진 데이터에 대한 에러 검출을 위한 레이턴시를 감소시킬 수 있다. 또한 ECC 제어기는 에러가 검출된 데이터에 대한 에러를 정정한 후 에러 정정된 데이터를 DMA 버퍼로 제공할 뿐 버퍼 메모리를 직접 액세스하지 않으므로 ECC 검출 및 정정에 의한 버스 대역폭 감소를 방지할 수 있다.
이하 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 1을 참조하면, 본 발명에 따른 메모리 시스템은 메모리 장치들(300, 310)과 메모리 제어기(200)를 포함한다. 메모리 장치들(300, 310)은 메모리 제어 기(200)의 제어에 따라 동작하며, 하드디스크, CD-ROM, DVD, 플래시 메모리 등과 같은 메모리 장치 중 동일한 종류의 메모리 장치들로 구성될 수 있으며, 서로 다른 종류의 메모리 장치들일 수도 있다. 예컨대, 메모리 장치들(300, 310)은 모두 낸드 플래시 메모리 장치일 수 있다. 다른 예로, 본 발명의 메모리 장치들(300, 310)은 노어 플래시 메모리 장치, PRAM, MRAM, 또는 그와 다른 불 휘발성 메모리 장치로 구현될 것이다.
메모리 제어기(200)는 호스트(100)의 요청에 따라 메모리 장치들(300, 310)을 제어할 것이다. 메모리 제어기(200)는 호스트 인터페이스(210), 버퍼 메모리(220), CPU(230), 레지스터 파일(240), DMA 버퍼(250), ECC 제어기(260), 그리고 메모리 인터페이스(270)를 포함한다. 본 명세서에서 DMA 버퍼(250) 및 ECC 제어기(260)는 ECC 제어 회로에 포함된다. 호스트 인터페이스(210)는 호스트(100)와의 인터페이스를 제공하고, 메모리 인터페이스(270)는 메모리 장치들(300, 310)과의 인터페이스를 제공할 것이다. 메모리 인터페이스(270)는 메모리 장치들(300, 310)에 병렬로 액세스할 수 있다. CPU(230)는 메모리 제어기(200)의 전반적인 동작을 제어하도록 구성될 것이다. 레지스터 파일(240)은 메모리 제어기(200)의 동작 중에 사용되는 상태 정보들을 저정하기 위한 레지스터들을 포함한다. 호스트(100)와 메모리 제어기(200)는 노어, 낸드, PCI, ISO, USB, 등과 같은 다양한 인터페이스들을 통해 통신하도록 구성될 수 있다. 메모리 장치들(300, 310)과 메모리 제어기(200)는 메모리 장치들(300, 310)의 타입에 적합한 인터페이스 방식을 통해 통신하도록 구성될 것이다. 예컨대, 메모리 장치들(300, 310)이 낸드/노어 플래시 메 모리이면 메모리 장치들(300, 310)과 메모리 제어기(200)는 잘 알려진 낸드/노어 인터페이스 방식을 통해 통신할 것이다.
메모리 장치들(300, 310)이 플래시 메모리인 경우, 메모리 장치들(300, 310)과 메모리 제어기(200)는 플래시 메모리 카드, 스마트 카드, 등과 같은 메모리 카드를 구성할 것이다. 또는, 본 발명에 따른 메모리 제어기(200)는 퍼스널 컴퓨터의 메인 보드 상에 직접 설치되도록 구성될 수도 있다. 또는, 본 발명에 따른 메모리 제어기(200)는 플래시 메모리 장치가 버퍼 메모리로서 사용되는 HDD의 버퍼 제어기로서 사용될 수도 있다.
메모리 장치들(300, 310)과 메모리 컨트롤러(200)는 MP3, 메모리 스틱, MMC(MultiMedia Card), DVD(digital versatile disc) 플레이어, PMP(portable multimedia player), 휴대폰 등과 같은 전자 장치들에 포함될 수 있다.
계속해서 도 1을 참조하면, 버퍼 메모리(220)는 호스트 인터페이스(210)를 통하여 호스트(100)로부터 수신된 데이터를 임시 저장하거나 메모리 장치들(300, 310)로부터 독출되어서 호스트(100)로 전송될 데이터를 임시 저장하기 위해서 사용된다. 버퍼 메모리(220)는 SDRAM과 같은 휘발성 메모리로 구성될 것이다. 버퍼 메모리(220)는 512 바이트 즉, 1섹터 단위로 데이터를 독출/기입할 수 있다. 이 실시예에서 1섹터의 크기는 512 바이트인 것으로 설명하나, 1 섹터의 크기는 다양하게 변경될 수 있다. DMA 버퍼(250)는 두 개의 메모리 장치들(300, 310)로부터 독출된 데이터가 파이프라인 방식으로 버퍼 메모리(220)에 저장될 수 있도록 제어한다.
ECC 제어기(260)는 메모리 장치들(300, 310)에 저장될 데이터에 대한 에러 제어 코드(Error Control Code) 데이터(이하, ECC 데이터라 칭함)를 생성하도록 구성될 것이다. 여기서, ECC 데이터는 에러 검출 그리고/또는 정정을 위해서 사용될 것이다. ECC 제어기(260)는 메모리 장치들(300, 310)로부터 읽혀진 데이터의 에러를 검출 및 정정하도록 구성될 것이다. 특히, 본 발명에 따른 ECC 제어기(260)는 메모리 인터페이스(270)를 통해 메모리 장치들(300, 310)로부터 읽혀진 데이터에 대한 에러를 검출함과 동시에 읽혀진 데이터를 DMA 버퍼(250)로 제공한다. 만일 메모리 장치들(300, 310) 중 어느 하나로부터 읽혀진 데이터의 에러가 검출되면, ECC 제어기(260)는 에러가 검출된 데이터를 DMA 버퍼(250)로 제공하는 것을 중지하고, 에러가 검출된 데이터에 대한 에러를 정정한 후 에러 정정된 데이터를 DMA 버퍼(250)로 제공한다.
이상의 설명으로부터 알 수 있듯이, 본 발명에 따른 ECC 제어기(260)는 메모리 장치들(300, 310)로부터 읽혀진 데이터에 대한 에러를 검출함과 동시에 읽혀진 데이터를 DMA 버퍼(250)로 제공함으로써 메모리 장치들(300, 310)로부터 읽혀진 데이터에 대한 에러 검출을 위한 레이턴시(latency)를 감소시킬 수 있다. 특히, 메모리 장치들(300, 3100)이 SLC 플래시 메모리 장치와 같이 에러 발생률이 낮은 메모리 장치로 구성될 때 데이터 독출 시간이 단축될 수 있다.
또한 ECC 제어기(260)는 에러가 검출된 데이터에 대한 에러를 정정한 후 에러 정정된 데이터를 DMA 버퍼(250)로 제공할 뿐 버퍼 메모리(220)를 직접 액세스하지 않으므로 ECC 검출 및 정정에 의한 버스 대역폭(bus bandwith) 감소를 방지할 수 있다.
도 1을 참조하면, ECC 제어기(260)는 두 개의 메모리 장치들(300, 310)에 각각 대응하는 두 개의 멀티플렉서들(261, 262) 그리고 두 개의 ECC 블록들(263, 264)을 포함한다.
ECC 블록들(263, 264) 각각은 대응하는 메모리 장치(300, 310)에 저장될 데이터에 대한 ECC 데이터를 생성하도록 구성된다. 또한 ECC 블록들(263, 264)은 대응하는 메모리 장치(300, 310)로부터 읽혀진 데이터에 대한 에러를 검출 및 정정하도록 구성된다. ECC 블록들(263, 264) 각각은 ECC 메모리(265, 266)를 포함한다.
도 2는 도 1에 도시된 ECC 제어기 및 DMA 버퍼의 본 발명의 바람직한 실시예에 따른 동작 수순을 보여주는 플로우차트이다.
호스트(100)가 메모리 장치들(300, 310)에 저장된 데이터에 대한 독출을 요청하면, CPU(230)는 메모리 장치들(300, 310)에 대한 액세스를 제어하고, 레지스터 파일(240)에 DMA 전송 시작 비트를 설정한다. 따라서 메모리 장치들(300, 310)로부터 읽혀진 데이터가 DMA 버퍼(250)를 통해 버퍼 메모리(220)에 저장되는 DMA 전송 모드가 수행된다.
도 1 및 도 2를 참조하면, 메모리 인터페이스(270)를 통해 메모리 장치(300)로부터 읽혀진 데이터는 멀티플렉서(261) 및 ECC 블록(263)으로 동시에 제공된다(410). 초기에 ECC 블록(263)으로부터 출력되는 에러 검출 신호(ERR0)가 비활성 상태이므로 멀티플렉서는(261) 메모리 인터페이스(270)를 통해 입력되는 데이터를 DMA 버퍼(250)로 제공한다. ECC 블록(263)은 메모리 장치(300)로부터 읽혀진 데이 터를 ECC 메모리(265)에 저장한 후 에러 검출을 수행하고(412), 에러가 검출될 때 에러 검출 신호(ERR0)를 활성 상태로 한다. 에러 검출 신호(ERR0)가 활성 상태일 때 멀티플렉서(261)는 메모리 인터페이스(270)를 통해 입력되는 데이터를 더이상 출력하지 않고, DMA 버퍼(250)는 멀티플렉서(261)로부터 입력되는 데이터에 대한 버퍼 메모리(220)로의 전송을 중지한다(414).
ECC 블록(263)은 읽혀진 데이터의 에러를 정정하고(416), 에러 정정이 수행된 데이터에 에러가 없는 것으로 판별되면(418) 에러 정정된 데이터를 멀티플렉서(261)로 제공한다. 에러 검출 신호(ERR0)가 활성 상태일 때 멀티플렉서(261)는 ECC 블록(263)으로부터의 에러 정정된 데이터를 DMA 버퍼(250)로 전달한다(220). 멀티플렉서(261)는 에러 검출 신호(ERR0)가 활성 상태에서 다시 비활성 상태로 천이하더라도 DMA 전송 모드 동안 ECC 블록(263)으로부터의 데이터를 DMA 버퍼(250)로 전송하는 상태를 유지한다. 그러므로 메모리 장치(300)로부터 읽혀진 데이터에서 에러가 검출된 이후 메모리 장치(300)로부터 읽혀진 데이터는 직접 DMA 버퍼(250)로 전송되지 않고, ECC 메모리(265)에 저장되고, ECC 블록(263)을 통해 DMA 버퍼(250)로 전송된다.
멀티플렉서(261) 및 ECC 블록(263)에 의해서 상기 제어 단계들(410~420)이 수행됨과 동시에 멀티플렉서(262) 및 ECC 블록(264)에 의해서 상기 제어 단계들(410~420)이 수행된다. 즉, 메모리 인터페이스(270)를 통해 메모리 장치(310)로부터 읽혀진 데이터는 멀티플렉서(262) 및 ECC 블록(264)으로 동시에 제공된다(410). 초기에 ECC 블록(264)으로부터 출력되는 에러 검출 신호(ERR1)가 비활성 상태이므로 멀티플렉서(262)는 메모리 장치(310)로부터 읽혀진 데이터를 DMA 버퍼(250)로 제공한다. ECC 블록(264)은 메모리 장치(310)로부터 읽혀진 데이터를 ECC 메모리(266)에 저장한 후 에러 검출을 수행하고, 에러가 검출될 때(412) 에러 검출 신호(ERR1)를 활성 상태로 한다. 에러 검출 신호(ERR1)가 활성 상태일 때 멀티플렉서(262)는 메모리 인터페이스(270)를 통해 입력되는 데이터를 더이상 출력하지 않고, DMA 버퍼(250)는 멀티플렉서(262)로부터 입력되는 데이터에 대한 버퍼 메모리(220)로의 전송을 중지한다(414).
ECC 블록(264)은 읽혀진 데이터의 에러를 정정하고(416), 에러 정정이 수행된 데이터에 에러가 없는 것으로 판별되면(418) 에러 정정된 데이터를 멀티플렉서(262)로 제공한다. 에러 검출 신호(ERR1)가 활성 상태일 때 멀티플렉서(262)는 ECC 블록(264)으로부터의 에러 정정된 데이터를 DMA 버퍼(250)로 전달한다(420). 멀티플렉서(262)는 에러 검출 신호(ERR1)가 활성 상태에서 다시 비활성 상태로 천이하더라도 DMA 전송 모드 동안 ECC 블록(264)으로부터의 데이터를 DMA 버퍼(250)로 전송하는 상태를 유지한다. 그러므로, 메모리 장치(310)로부터 읽혀진 데이터에서 에러가 검출된 이후 메모리 장치(310)로부터 읽혀진 데이터는 직접 DMA 버퍼(250)로 전송되지 않고, ECC 메모리(266)에 저장되고, ECC 블록(264)을 통해 에러 검출 및 정정된 후 DMA 버퍼(250)로 전송된다(424).
정정 데이터 관리기(252)는 멀티플렉서들(261, 262)을 통해 데이터가 입력된 후 에러 검출 신호들(ERR0, ERR1)이 모두 비활성 상태이면(412), 입력된 데이터를 버퍼 메모리(220)로 전송한다(430). 정정 데이터 관리기(252)는 멀티플렉서들(261, 262)을 통해 데이터가 입력된 후 에러 검출 신호들(ERR0, ERR1) 중 활성 상태인 신호에 대응하는 입력 데이터를 버퍼 메모리(220)로 전송하지 않는다. 정정 데이터 관리기(252)는 활성 상태인 에러 검출 신호가 다시 비활성 상태로 천이하고 에러 정정된 데이터가 입력되면 이를 버퍼 메모리(220)로 전송한다.
메모리 장치들(300, 310) 각각으로부터 1섹터 크기의 데이터가 모두 읽혀져서 DMA 버퍼(250)를 통해 버퍼 메모리(220)로 전송되면(422, 430), ECC 제어기(260)의 DMA 전송 모드에 따른 ECC 동작이 종료된다.
이와 같은 설명에서 알 수 있듯이, 만일 DMA 전송 모드동안 한 번도 활성 상태로 천이하지 않은 에러 검출 신호를 입력받는 멀티플렉서(261) 및/또는 멀티플렉서(262)는 메모리 인터페이스(270)를 통해 대응하는 메모리 장치(300, 310)로부터 읽혀진 데이터를 DMA 버퍼(250)로 전달한다. 그러므로 읽혀진 한 섹터의 데이터에서 에러가 검출되지 않을 때 에러 검출을 위해 낭비되는 레이턴시 없이 메모리 장치들(300, 310)로부터 읽혀진 데이터를 DMA 버퍼(250)로 전달할 수 있다. 또한 메모리 장치들(300, 310)로부터 읽혀진 데이터에서 에러가 검출되었더라도 에러 정정된 데이터를 버스(202)를 통해 버퍼 메모리(220)로 전송하지 않고, DMA 버퍼(250)를 통해 버퍼 메모리(220)로 전송함으로써 에러 검출 회로(260)가 버스(202)를 점유함에 따른 버스 대역폭 감소를 방지할 수 있다.
도 3은 멀티 채널 메모리 시스템의 다른 예를 보여주는 도면이다.
도 3을 참조하면, 4-채널 메모리 시스템은 메모리 제어기(600)에 연결된 4 개의 메모리 장치들(700-730)을 포함한다. 메모리 제어기(600)는 호스트(500)의 요청에 따라 메모리 장치들(700-730)을 제어할 것이다. 메모리 제어기(600)는 호스트 인터페이스(610), CPU(620), 레지스터 파일(630), 버퍼 메모리(640), DMA 버퍼부(650), ECC 제어기(660), 그리고 메모리 인터페이스(670)를 포함한다. 호스트 인터페이스(610)는 호스트(500)와의 인터페이스를 제공하고, 메모리 인터페이스(670)는 메모리 장치들(700-730)과의 인터페이스를 제공할 것이다. 메모리 인터페이스(670)는 메모리 장치들(700-730)에 병렬로 액세스할 수 있다.
이 실시예에서, DMA 버퍼부(650)는 메모리 장치들(700-730)에 각각 대응하는 DMA 버퍼들(651-654)을 포함한다. ECC 제어기(660)는 메모리 장치들(700-730)에 각각 대응하는 ECC 블록들(661-664)을 포함한다.
ECC 블록들(661-664) 각각은 대응하는 메모리 장치로부터 읽혀진 데이터를 대응하는 DMA 버퍼로 전송함과 동시에 읽혀진 데이터의 에러를 검출한다. DMA 버퍼부(650)는 ECC 제어기(660) 내 ECC 블록들(661-664)로부터 입력된 데이터를 파이프라인 방식으로 버퍼 메모리(640)로 전송한다. 만일 ECC 블록들(661-664) 중 어느 하나가 에러를 검출하면, 에러 검출된 데이터에 대응하는 DMA 버퍼는 데이터를 버퍼 메모리(640)로 전송하지 않고, ECC 블록으로부터 에러 정정된 데이터가 다시 입력되면 그 에러 정정된 데이터를 버퍼 메모리(640)로 전송한다.
도 4는 도 3에 도시된 4-채널 메모리 시스템에서 DMA 전송 모드 동안 에러가 검출되지 않은 경우 메모리 장치들로부터 읽혀진 데이터 및 DMA 버퍼부의 출력 데이터를 보여주는 타이밍도이다.
도 4를 참조하면, 호스트(500)가 메모리 장치들(700-730)에 저장된 데이터의 독출을 요청할 때 DMA 전송 모드가 시작된다. 메모리 장치들(700-730)로부터 읽혀진 데이터는 원시(original) 데이터와 ECC 데이터를 포함한다. 즉 1섹터 크기의 데이터는 원시 데이터와 ECC 데이터를 포함한다. 메모리 장치들(700-730)로부터 읽혀진 데이터는 ECC 블록들(661-664)을 통해 DMA 버퍼들(651-654)에 저장된다. ECC 블록들(661-664)에 의해서 에러가 검출되지 않으면 DMA 버퍼들(651-654)에 저장된 데이터는 버퍼 메모리(640)로 전송된다. DMA 버퍼부(650)는 DMA 버퍼들(651-654)로부터, 크기가 n(n은 양의 정수)-바이트인, 버스트 데이터를 순차적으로 번갈아 출력한다. 호스트(100)로부터 요청된 데이터가 메모리 장치들(700-730) 각각으로부터 모두 독출되었을 때 DMA 전송 모드는 종료된다.
도 5는 도 3에 도시된 4-채널 메모리 시스템에서 DMA 전송 모드 동안 에러가 검출되었을 때 메모리 장치들로부터 읽혀진 데이터 및 DMA 버퍼부의 출력 데이터를 보여주는 타이밍도이다.
도 5를 참조하면, 호스트(500)가 메모리 장치들(700-730)에 저장된 데이터의 독출을 요청할 때 DMA 전송 모드가 시작된다. 메모리 장치들(700-730)로부터 읽혀진 데이터는 ECC 블록들(661-664)을 통해 DMA 버퍼들(651-654)에 저장된다. ECC 블록(661)이 에러 검출을 확인하면 DMA 버퍼들(652-654)에 저장된 데이터는 버퍼 메모리(640)로 전송되고, ECC 블록(661)은 에러 정정을 수행한다.
이후 DMA 버퍼(651)는 ECC 블록(661)에 의해서 에러 정정된 데이터를 입력받고, 버퍼 메모리(640)로 전송한다. 이 때, DMA 버퍼(651)는 에러 정정된 데이터가 저장될 버퍼 메모리(640)의 어드레스를 따로 관리한다.
도 5에 도시된 바와 같이, 0번째 섹터의 0번째 채널 즉, ECC 블록(661)에서 에러가 검출되면, 1번째 섹터의 1번째부터 3번째 채널들의 데이터가 DMA 버퍼부(650)를 통해 버퍼 메모리(640)로 전송되고, ECC 블록(661)은 에러를 정정한다. ECC 블록(661)으로부터 출력된 0번째 섹터의 에러 정정된 데이터는 2번째 섹터의 1번째부터 3번째 채널들의 데이터와 함께 버퍼 메모리(640)로 전송된다. 호스트(100)로부터 요청된 데이터가 메모리 장치들(700-730) 각각으로부터 모두 독출되었을 때 DMA 전송 모드는 종료된다.
본 발명이 2-채널 또는 4-채널 메모리 시스템에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
이상, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 2는 도 1에 도시된 ECC 제어기 및 DMA 버퍼의 본 발명의 바람직한 실시예에 따른 동작 수순을 보여주는 플로우차트이다.
도 3은 멀티 채널 메모리 시스템의 다른 예를 보여주는 도면이다
도 4는 도 3에 도시된 4-채널 메모리 시스템에서 DMA 전송 모드 동안 에러가 검출되지 않은 경우 메모리 장치들로부터 읽혀진 데이터 및 DMA 버퍼부의 출력 데이터를 보여주는 타이밍도이다.
도 5는 도 3에 도시된 4-채널 메모리 시스템에서 DMA 전송 모드 동안 에러가 검출되었을 때 메모리 장치들로부터 읽혀진 데이터 및 DMA 버퍼부의 출력 데이터를 보여주는 타이밍도이다.
Claims (26)
- 복수의 메모리 장치들과 연결된 ECC 제어 회로에 있어서:DMA 버퍼와;상기 복수의 메모리 장치들에 각각 대응하며, 대응하는 메모리 장치로부터 읽혀진 데이터에 대한 에러 검출 및 정정을 수행하고, 에러 정정된 데이터 및 에러 검출 신호를 출력하는 복수의 ECC 블록들; 그리고상기 복수의 ECC 블록들에 각각 대응하며, 상기 복수의 메모리 장치들로부터 읽혀진 데이터를 상기 DMA 버퍼 및 ECC 블록으로 제공하는 복수의 선택기들을 포함하되;상기 선택기들 각각은 대응하는 에러 검출 신호가 활성 상태일 때 상기 메모리 장치로부터 읽혀진 데이터 대신에 상기 ECC 블록들로부터의 상기 에러 정정된 데이터를 상기 DMA 버퍼로 제공하는 것을 특징으로 하는 ECC 제어 회로.
- 제 1 항에 있어서,상기 복수의 ECC 블록들 각각은,상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 상기 에러 검출 신호를 상기 활성 상태로 하는 것을 특징으로 하는 것을 특징으로 하는 ECC 제어 회로.
- 제 2 항에 있어서,상기 복수의 선택기들 각각은,상기 ECC 블록으로부터의 상기 에러 검출 신호가 활성 상태일 때 상기 대응하는 ECC 블록으로부터의 상기 에러 정정된 데이터를 상기 DMA 버퍼로 제공하고,상기 ECC 블록으로부터의 상기 에러 검출 신호가 비활성 상태일 때 상기 대응하는 메모리 장치로부터 읽혀진 데이터를 상기 DMA 버퍼로 제공하는 것을 특징으로 하는 ECC 제어 회로.
- 삭제
- 제 1 항에 있어서,상기 ECC 블록들 각각은,상기 대응하는 메모리 장치로부터 읽혀진 데이터를 저장하기 위한 ECC 메모리를 포함하고,상기 ECC 블록들 각각은 상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 상기 ECC 메모리에 저장된 데이터에 대한 에러 정정을 수행하고, 상기 에러 정정된 데이터를 출력하는 것을 특징으로 하는 ECC 제어 회로.
- 삭제
- 제 1 항에 있어서,상기 ECC 블록들 각각은,상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 에러 위치 정보 및 에러 상태 정보를 더 출력하는 것을 특징으로 하는 ECC 제어 회로.
- 메모리 시스템에 있어서:복수의 메모리 장치들; 그리고상기 메모리 장치들을 제어하도록 구성된 메모리 제어기를 포함하며,상기 메모리 제어기는,버퍼 메모리와;DMA 버퍼와;상기 복수의 메모리 장치들에 각각 대응하며, 대응하는 메모리 장치로부터 읽혀진 데이터에 대한 에러 검출 및 정정을 수행하고, 에러 정정된 데이터 및 에러 검출 신호를 출력하는 복수의 ECC 블록들; 그리고상기 복수의 ECC 블록들에 각각 대응하며, 상기 복수의 메모리 장치들로부터 읽혀진 데이터를 상기 DMA 버퍼 및 ECC 블록으로 제공하는 복수의 선택기들을 포함하되;상기 선택기들 각각은 대응하는 에러 검출 신호가 활성 상태일 때 상기 메모리 장치로부터 읽혀진 데이터 대신에 상기 ECC 블록으로부터의 상기 에러 정정된 데이터를 상기 DMA 버퍼로 제공하고,상기 DMA 버퍼는 상기 선택기들로부터 수신된 데이터를 상기 버퍼 메모리로 전송하는 것을 특징으로 하는 메모리 시스템.
- 청구항 9은(는) 설정등록료 납부시 포기되었습니다.제 8 항에 있어서,상기 복수의 ECC 블록들 각각은,상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 상기 에러 검출 신호를 활성 상태로 하고, 상기 대응하는 메모리 장치로부터 읽혀진 데이터에 포함된 ECC 데이터를 이용하여 상기 읽혀진 데이터의 에러를 정정하는 것을 특징으로 하는 메모리 시스템.
- 삭제
- 청구항 11은(는) 설정등록료 납부시 포기되었습니다.제 9 항에 있어서,상기 복수의 선택기들 각각은,상기 ECC 블록으로부터의 상기 에러 검출 신호가 상기 활성 상태일 때 상기 대응하는 ECC 블록으로부터의 상기 에러 정정된 데이터를 출력 데이터로서 상기 DMA 버퍼로 전달하고,상기 ECC 블록으로부터의 상기 에러 검출 신호가 상기 활성 상태에서 비활성 상태로 천이한 경우, 소정의 시간동안 상기 대응하는 ECC 블록으로부터의 상기 에러 정정된 데이터를 상기 출력 데이터로서 출력하는 것을 특징으로 하는 메모리 시스템.
- 삭제
- 제 11 항에 있어서,상기 DMA 버퍼는,상기 복수의 선택기들로부터의 상기 읽혀진 데이터 및 상기 ECC 블록들로부터의 상기 에러 검출 신호들을 입력받고, 상기 비활성 상태인 에러 검출 신호에 대응하는 상기 출력 데이터를 상기 버퍼 메모리로 전송하는 것을 특징으로 하는 메모리 시스템.
- 제 11 항에 있어서,상기 DMA 버퍼는,상기 에러 검출 신호에 응답해서 상기 복수의 선택기들로부터의 상기 출력 데이터를 상기 버퍼 메모리로 전송하기 위한 관리기를 포함하는 것을 특징으로 하는 메모리 시스템.
- 청구항 15은(는) 설정등록료 납부시 포기되었습니다.제 8 항에 있어서,상기 복수의 ECC 블록들과 연결되며, 상기 복수의 메모리 장치들과의 인터페이스를 위한 메모리 인터페이스를 더 포함하는 것을 특징으로 하는 메모리 시스템.
- 청구항 16은(는) 설정등록료 납부시 포기되었습니다.제 8 항에 있어서,상기 ECC 블록들 각각은,상기 대응하는 메모리 장치로부터 읽혀진 데이터를 저장하기 위한 ECC 메모리를 포함하고,상기 ECC 블록들 각각은, 상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 상기 ECC 메모리에 저장된 데이터에 대한 에러 정정을 수행하고, 상기 에러 정정된 데이터를 출력하는 것을 특징으로 하는 메모리 시스템.
- 삭제
- 청구항 18은(는) 설정등록료 납부시 포기되었습니다.제 8 항에 있어서,상기 ECC 블록들 각각은,상기 대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 에러 위치 정보 및 에러 상태 정보를 상기 DMA 버퍼로 더 출력하는 것을 특징으로 하는 메모리 시스템.
- 제 18 항에 있어서,상기 DMA 버퍼는,상기 에러 검출 신호, 상기 위치 정보 및 상기 에러 상태 정보에 응답해서 상기 복수의 선택기들을 통해 입력되는 상기 에러 정정 데이터를 상기 버퍼 메모리로 전송하기 위한 관리기를 포함하는 것을 특징으로 하는 메모리 시스템.
- 적어도 두 개의 메모리 장치들에 각각 연결된 ECC 블록들을 포함하는 ECC 제어 회로의 에러 정정 방법에 있어서:메모리 장치들로부터 읽혀진 데이터를 상기 ECC 블록들과 DMA 버퍼로 동시에 전송하는 단계와;상기 ECC 블록들 각각에 의해서 상기 읽혀진 데이터의 에러를 검출하는 단계와;상기 에러가 검출된 ECC 블록과 연결된 메모리 장치로부터 상기 DMA 버퍼로의 상기 읽혀진 데이터 전송을 중지하는 단계와;상기 읽혀진 데이터의 에러를 정정하는 단계; 그리고에러 정정된 데이터를 상기 DMA 버퍼로 전송하는 단계를 포함하는 것을 특징으로 하는 에러 정정 방법.
- 청구항 21은(는) 설정등록료 납부시 포기되었습니다.상기 에러 검출 단계는,대응하는 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 에러 검출 신호를 활성 상태로 하는 단계를 포함하는 것을 특징으로 하는 에러 정정 방법.
- 청구항 22은(는) 설정등록료 납부시 포기되었습니다.제 21 항에 있어서,상기 에러가 검출된 ECC 블록에 대응하는 메모리 장치로부터 출력되는 다음 읽혀진 데이터를 상기 ECC 블록 내의 ECC 메모리로만 제공하는 단계를 더 포함하는 것을 특징으로 하는 에러 정정 방법.
- 청구항 23은(는) 설정등록료 납부시 포기되었습니다.제1 및 제2 메모리 장치들과 연결된 ECC 제어 회로에 있어서:DMA 버퍼와;상기 제1 메모리 장치로부터 읽혀진 제1 독출 데이터에 대한 에러 검출 및 정정을 수행하며, 제1 정정 데이터를 출력하는 제1 ECC 블록과;상기 제2 메모리 장치로부터 읽혀진 제2 독출 데이터에 대한 에러 검출 및 정정을 수행하며, 제2 정정 데이터를 출력하는 제2 ECC 블록; 그리고상기 복수의 메모리 장치들로부터 읽혀진 데이터를 상기 DMA 버퍼 및 ECC 블록으로 제공하는 선택기를 포함하되;상기 선택기는 에러를 검출한 제1 또는 제2 ECC 블록으로부터 출력되는 제1 또는 제2 정정 데이터를 상기 제1 또는 제2 메모리 장치로부터 읽혀진 데이터 대신에 상기 DMA 버퍼로 제공하는 것을 특징으로 하는 ECC 제어 회로.
- 청구항 24은(는) 설정등록료 납부시 포기되었습니다.제 23 항에 있어서,상기 제1 ECC 블록은 상기 제1 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 제1 에러 검출 신호를 활성 상태로 하고; 그리고상기 제2 ECC 블록은 상기 제2 메모리 장치로부터 읽혀진 데이터에서 에러가 검출될 때 제2 에러 검출 신호를 활성 상태로 하는 것을 특징으로 하는 것을 특징으로 하는 ECC 제어 회로.
- 청구항 25은(는) 설정등록료 납부시 포기되었습니다.제 24 항에 있어서,상기 선택기는,상기 제1 또는 제2 에러 검출 신호가 활성 상태일 때, 상기 제1 또는 제2 메모리 장치로부터 읽혀진 데이터 대신에 상기 제1 또는 제2 ECC 블록으로부터 출력되는 제1 또는 제2 정정 데이터를 상기 DMA 버퍼로 제공하는 것을 특징으로 하고,상기 제1 및 제2 ECC 블록들 각각은, 상기 대응하는 제1 및 제2 메모리 장치들 각각으로부터 읽혀진 데이터를 저장하기 위한 ECC 메모리를 포함하는 것을 특징으로 하는 ECC 제어 회로.
- 삭제
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070084143A KR101425957B1 (ko) | 2007-08-21 | 2007-08-21 | 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템 |
TW097131631A TWI476778B (zh) | 2007-08-21 | 2008-08-19 | Ecc控制電路、包含該電路的多通道記憶體系統以及相關操作方法 |
US12/196,012 US8375257B2 (en) | 2007-08-21 | 2008-08-21 | ECC control circuits, multi-channel memory systems including the same, and related methods of operation |
CN2008102126121A CN101373449B (zh) | 2007-08-21 | 2008-08-21 | Ecc控制电路、多通道存储器系统以及相关操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070084143A KR101425957B1 (ko) | 2007-08-21 | 2007-08-21 | 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090019593A KR20090019593A (ko) | 2009-02-25 |
KR101425957B1 true KR101425957B1 (ko) | 2014-08-06 |
Family
ID=40383279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070084143A KR101425957B1 (ko) | 2007-08-21 | 2007-08-21 | 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8375257B2 (ko) |
KR (1) | KR101425957B1 (ko) |
CN (1) | CN101373449B (ko) |
TW (1) | TWI476778B (ko) |
Families Citing this family (68)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
JP2010097600A (ja) * | 2008-09-22 | 2010-04-30 | Panasonic Corp | 半導体記録装置 |
US8239629B2 (en) | 2009-03-31 | 2012-08-07 | Micron Technology, Inc. | Hierarchical memory architecture to connect mass storage devices |
US20100250798A1 (en) * | 2009-03-31 | 2010-09-30 | Sean Eilert | Hierarchical memory architecture with an interface to differing memory formats |
US20120151300A1 (en) * | 2009-08-25 | 2012-06-14 | Tillema John E | Error Correcting |
US9135190B1 (en) | 2009-09-04 | 2015-09-15 | Bitmicro Networks, Inc. | Multi-profile memory controller for computing devices |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
US8321761B1 (en) * | 2009-09-28 | 2012-11-27 | Nvidia Corporation | ECC bits used as additional register file storage |
US8250439B1 (en) * | 2009-09-28 | 2012-08-21 | Nvidia Corporation | ECC bits used as additional register file storage |
US8954821B2 (en) * | 2009-12-29 | 2015-02-10 | Microntechnology, Inc. | Memory device having address and command selectable capabilities |
US8726130B2 (en) * | 2010-06-01 | 2014-05-13 | Greenliant Llc | Dynamic buffer management in a NAND memory controller to minimize age related performance degradation due to error correction |
CN102543209B (zh) * | 2010-12-31 | 2015-09-30 | 深圳市朗科科技股份有限公司 | 多通道闪存控制器的纠错装置、方法及多通道闪存控制器 |
US8954798B2 (en) * | 2011-02-11 | 2015-02-10 | Taejin Info Tech Co., Ltd. | Alarm-based backup and restoration for a semiconductor storage device |
JP5601256B2 (ja) * | 2011-03-20 | 2014-10-08 | 富士通株式会社 | メモリコントローラ及び情報処理装置 |
US8839024B2 (en) * | 2011-07-22 | 2014-09-16 | Taejin Info Tech Co., Ltd. | Semiconductor storage device-based data restoration |
US20130054870A1 (en) * | 2011-08-22 | 2013-02-28 | Byungcheol Cho | Network-capable raid controller for a semiconductor storage device |
US20130067157A1 (en) * | 2011-09-12 | 2013-03-14 | Byungcheol Cho | Semiconductor storage device having multiple host interface units for increased bandwidith |
US20130086315A1 (en) * | 2011-10-04 | 2013-04-04 | Moon J. Kim | Direct memory access without main memory in a semiconductor storage device-based system |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
JP5768654B2 (ja) * | 2011-10-25 | 2015-08-26 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法 |
US8959417B2 (en) * | 2011-11-23 | 2015-02-17 | Marvell World Trade Ltd. | Providing low-latency error correcting code capability for memory |
JP5970917B2 (ja) * | 2012-03-30 | 2016-08-17 | 富士通株式会社 | 受信回路、情報処理装置、および制御方法 |
US9043669B1 (en) * | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
KR101997794B1 (ko) | 2012-12-11 | 2019-07-09 | 삼성전자주식회사 | 메모리 제어기 및 그것을 포함한 메모리 시스템 |
CN103077116A (zh) * | 2013-01-18 | 2013-05-01 | 无锡云动科技发展有限公司 | 一种计算机的数据存储系统及计算机系统 |
KR102143517B1 (ko) | 2013-02-26 | 2020-08-12 | 삼성전자 주식회사 | 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US9858084B2 (en) | 2013-03-15 | 2018-01-02 | Bitmicro Networks, Inc. | Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory |
US9916213B1 (en) | 2013-03-15 | 2018-03-13 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
JP2015022516A (ja) * | 2013-07-19 | 2015-02-02 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよび記憶制御方法 |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US10379926B2 (en) * | 2014-08-05 | 2019-08-13 | Macronix International Co., Ltd. | Method and device for monitoring data error status in a memory |
CN104331252B (zh) * | 2014-10-10 | 2017-08-25 | 上海新储集成电路有限公司 | 异构nand固态硬盘结构及其数据读取管理方法 |
US9692455B2 (en) * | 2015-09-11 | 2017-06-27 | Micron Technology, Inc. | Multi channel memory with flexible code-length ECC |
KR102479212B1 (ko) * | 2016-08-17 | 2022-12-20 | 삼성전자주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
TWI602190B (zh) * | 2016-12-21 | 2017-10-11 | 旺宏電子股份有限公司 | 記憶體控制方法、記憶體裝置 |
CN107070593B (zh) * | 2017-02-09 | 2020-08-28 | 武汉米风通信技术有限公司 | 基于多通道通信接收系统的中断器启动方法 |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
KR102427323B1 (ko) * | 2017-11-08 | 2022-08-01 | 삼성전자주식회사 | 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법 |
KR102449346B1 (ko) * | 2017-12-12 | 2022-10-04 | 삼성전자주식회사 | 메모리 장치의 내부 상태에 따라 메모리 컨트롤러의 동작을 가변하는 메모리 시스템 |
US20190196726A1 (en) * | 2017-12-26 | 2019-06-27 | Nanya Technology Corporation | Dynamic random access memory and method of operating the same |
US10606713B2 (en) | 2018-01-03 | 2020-03-31 | International Business Machines Corporation | Using dual channel memory as single channel memory with command address recovery |
US10546628B2 (en) * | 2018-01-03 | 2020-01-28 | International Business Machines Corporation | Using dual channel memory as single channel memory with spares |
CN110134322B (zh) * | 2018-02-02 | 2022-05-31 | 建兴储存科技(广州)有限公司 | 运用dram的储存装置及其相关数据处理方法 |
US11023316B2 (en) * | 2018-02-02 | 2021-06-01 | Solid State Storage Technology Corporation | DRAM-based storage device and associated data processing method |
KR20190123984A (ko) | 2018-04-25 | 2019-11-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR102599188B1 (ko) | 2018-11-09 | 2023-11-08 | 삼성전자주식회사 | 호스트 메모리를 사용하는 스토리지 장치 및 그것의 동작 방법 |
CN111666106A (zh) * | 2019-03-07 | 2020-09-15 | 慧与发展有限责任合伙企业 | 来自多个远程芯片的数据卸载加速 |
CN110727401B (zh) * | 2019-09-09 | 2021-03-02 | 无锡江南计算技术研究所 | 一种访存系统 |
KR20240068115A (ko) | 2022-11-10 | 2024-05-17 | 에스케이하이닉스 주식회사 | 소비 전력을 저감시킬 수 있는 메모리, 컨트롤러 및 컴퓨팅 시스템 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282228A (ja) * | 1996-04-10 | 1997-10-31 | Hitachi Ltd | 主記憶制御装置 |
US20030156473A1 (en) * | 2001-09-28 | 2003-08-21 | Sinclair Alan Welsh | Memory controller |
KR20040086923A (ko) * | 2003-04-03 | 2004-10-13 | 삼성전자주식회사 | 에러정정기능을 가진 플래쉬메모리장치 |
US20060069977A1 (en) * | 1999-09-03 | 2006-03-30 | Matsushita Electric Industrial Co., Ltd | Error correction device |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05233526A (ja) * | 1992-02-21 | 1993-09-10 | Toshiba Corp | Dma制御方式 |
US5606532A (en) * | 1995-03-17 | 1997-02-25 | Atmel Corporation | EEPROM array with flash-like core |
JP4131928B2 (ja) | 2002-11-18 | 2008-08-13 | 株式会社日立製作所 | データ記憶制御方法および装置 |
JP2004178122A (ja) | 2002-11-26 | 2004-06-24 | Renesas Technology Corp | ダイレクトメモリアクセス転送機能付プロセッサシステム |
CN100337217C (zh) * | 2003-07-28 | 2007-09-12 | 深圳市朗科科技有限公司 | 存储控制芯片及数据存储控制方法 |
TW200632658A (en) * | 2005-03-04 | 2006-09-16 | Jtek Technology Corp | High-speed transmission memory module and method |
US7984359B2 (en) * | 2006-05-01 | 2011-07-19 | Seagate Technology, Llc | Correction of data errors in a memory buffer |
-
2007
- 2007-08-21 KR KR1020070084143A patent/KR101425957B1/ko active IP Right Grant
-
2008
- 2008-08-19 TW TW097131631A patent/TWI476778B/zh active
- 2008-08-21 US US12/196,012 patent/US8375257B2/en active Active
- 2008-08-21 CN CN2008102126121A patent/CN101373449B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09282228A (ja) * | 1996-04-10 | 1997-10-31 | Hitachi Ltd | 主記憶制御装置 |
US20060069977A1 (en) * | 1999-09-03 | 2006-03-30 | Matsushita Electric Industrial Co., Ltd | Error correction device |
US20030156473A1 (en) * | 2001-09-28 | 2003-08-21 | Sinclair Alan Welsh | Memory controller |
KR20040086923A (ko) * | 2003-04-03 | 2004-10-13 | 삼성전자주식회사 | 에러정정기능을 가진 플래쉬메모리장치 |
Also Published As
Publication number | Publication date |
---|---|
US20090055713A1 (en) | 2009-02-26 |
TW200915336A (en) | 2009-04-01 |
CN101373449B (zh) | 2013-06-19 |
US8375257B2 (en) | 2013-02-12 |
CN101373449A (zh) | 2009-02-25 |
TWI476778B (zh) | 2015-03-11 |
KR20090019593A (ko) | 2009-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101425957B1 (ko) | 이씨씨 제어 회로 및 그것을 포함하는 멀티채널 메모리시스템 | |
KR101942272B1 (ko) | 비휘발성 메모리의 제어방법, 이를 구현한 비휘발성 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
JP5686516B2 (ja) | Nandメモリのためのプログラミング管理データ | |
US20200027503A1 (en) | Method and apparatus to improve read latency of a multi-threshold level cell block-based non-volatile memory | |
US8250403B2 (en) | Solid state disk device and related data storing and reading methods | |
US8738842B2 (en) | Solid state disk controller and data processing method thereof | |
US20100287353A1 (en) | Multipage Preparation Commands for Non-Volatile Memory Systems | |
JP2008524748A (ja) | メモリシステムにおけるデータ再配置 | |
US9965194B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus which performs data arrangement operation according to usage frequency of physical erasing unit of memory storage apparatus | |
US20210019086A1 (en) | Memory controller, memory device, memory system, and operating method thereof | |
JP4254932B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
US10872656B1 (en) | Data writing method, memory control circuit unit and memory storage device | |
KR20210006556A (ko) | 컨트롤러, 메모리 시스템 및 그것의 동작 방법 | |
EP3772682A1 (en) | Method and apparatus to improve write bandwidth of a block-based multi-level cell non-volatile memory | |
US20180335942A1 (en) | Data reading method, memory control circuit unit and memory storage device | |
JP2012521032A (ja) | Ssdコントローラおよびssdコントローラの動作方法 | |
US11157401B2 (en) | Data storage device and operating method thereof performing a block scan operation for checking for valid page counts | |
JP2010026584A (ja) | メモリコントローラおよび不揮発性記憶装置 | |
US20160211024A1 (en) | Decoding data using a reserved word line | |
TWI622044B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
US20140149646A1 (en) | Memory systems including flash memories, first buffer memories, second buffer memories and memory controllers and methods for operating the same | |
TWI829103B (zh) | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN117608501B (zh) | 电压调整方法、存储器存储装置及存储器控制电路单元 | |
US20240290403A1 (en) | Storage device and read recovery method thereof | |
US11144244B2 (en) | Command transmitting method with temporary storing commands by memory interfaces for rewritable non-volatile memory modules, memory control circuit unit and memory storage device |
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 | ||
FPAY | Annual fee payment |
Payment date: 20170630 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180629 Year of fee payment: 5 |