KR20150051641A - 메모리 시스템의 동작 방법 - Google Patents
메모리 시스템의 동작 방법 Download PDFInfo
- Publication number
- KR20150051641A KR20150051641A KR1020130133374A KR20130133374A KR20150051641A KR 20150051641 A KR20150051641 A KR 20150051641A KR 1020130133374 A KR1020130133374 A KR 1020130133374A KR 20130133374 A KR20130133374 A KR 20130133374A KR 20150051641 A KR20150051641 A KR 20150051641A
- Authority
- KR
- South Korea
- Prior art keywords
- fail information
- area
- memory device
- unit
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
메모리 시스템의 동작 방법에서는 메모리 컨트롤러를 초기화시킨다. 메모리 컨트롤러가 메모리 장치에 포함되는 페일(fail) 정보 영역으로부터 페일 정보를 독출한다. 메모리 컨트롤러가 페일 정보에 기초하여 메모리 장치 중 페일 정보 영역 및 페일 영역을 제외한 안전 영역에 프로그램이 저장되도록 어드레스 매핑한다. 메모리 컨트롤러가 어드레스 매핑에 따라 프로그램을 메모리 장치의 안전 영역에 로딩한다. 메모리 시스템의 동작 방법을 사용하면, 페일 정보를 시스템 레벨로 전달할 수 있고, 운영 체제는 페일 정보를 이용하여 응용 프로그램을 메모리 장치 내의 안전 영역에 로딩할 수 있다.
Description
본 발명은 메모리 시스템에 관한 것으로서, 보다 상세하게는 메모리 장치와 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법에 관한 것이다.
반도체 생산 공정 중에 메모리 장치 내의 메모리 셀 어레이에 불량 셀들이 발생할 수 있다. 메모리 셀 어레이에 불량 셀들이 발생하는 경우, 불량 어드레스에 상응하는 불량 셀들에 데이터를 기입하거나 불량 셀 들로부터 데이터를 독출하는 과정에서 오류가 발생한다.
따라서 메모리 셀 어레이 내의 불량 셀들에 상응하는 불량 어드레스에 액세스(access)를 차단할 필요가 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 메모리 컨트롤러가 메모리 장치 내에 저장되는 불량 어드레스에 관한 정보를 이용하여 성능을 높일 수 있는 메모리 시스템의 동작 방법을 제공하는 것이다.
본 발명의 일 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 메모리 시스템의 동작 방법은 상기 메모리 컨트롤러를 초기화시키는 단계, 상기 메모리 컨트롤러가 상기 메모리 장치에 포함되는 페일(fail) 정보 영역으로부터 페일 정보를 독출하는 단계, 상기 메모리 컨트롤러가 상기 페일 정보에 기초하여 상기 메모리 장치 중 상기 페일 정보 영역 및 페일 영역을 제외한 안전 영역에 프로그램이 저장되도록 어드레스 매핑하는 단계 및 상기 메모리 컨트롤러가 상기 어드레스 매핑에 따라 상기 프로그램을 상기 메모리 장치의 안전 영역에 로딩하는 단계를 포함한다.
예시적인 실시예에 있어서, 상기 메모리 장치는 상기 페일 정보 영역 및 상기 메모리 컨트롤러로부터 제공되는 데이터가 저장되는 데이터 영역을 포함하고, 상기 페일 정보 영역은 비휘발성이고, 상기 데이터 영역은 휘발성일 수 있다.
예시적인 실시예에 있어서, 상기 페일 정보는 상기 메모리 장치가 패키징 되기 전에 수행되는 상기 메모리 장치의 테스트 결과에 기초하여 상기 메모리 장치 내부의 상기 페일 정보 영역에 저장될 수 있다.
예시적인 실시예에 있어서, 상기 페일 정보 영역은 단위 페일 정보 셀들을 포함하고, 상기 단위 페일 정보 셀의 값이 제1 레벨이면, 단위 페일 정보는 불량으로 판단되고, 상기 단위 페일 정보 셀의 값이 제2 레벨이면, 상기 단위 페일 정보는 양호로 판단될 수 있다.
예시적인 실시예에 있어서, 상기 단위 정보 셀들의 각각은 이-퓨즈(electrical fuse)를 포함하고, 상기 단위 페일 정보는 상기 이-퓨즈를 프로그래밍하여 상기 페일 정보 영역 내의 상기 단위 페일 정보 셀들에 저장될 수 있다.
예시적인 실시예에 있어서, 상기 어드레스 매핑은 상기 페일 정보 영역 내의 단위 페일 정보 셀들에 포함되는 상기 페일 정보에 따라 결정될 수 있다.
예시적인 실시예에 있어서, 상기 프로그램은 부트 로더(boot loader) 및 운영 체제일 수 있다.
예시적인 실시예에 있어서, 상기 운영 체제는 상기 페일 정보에 기초하여 응용 프로그램을 상기 안전 영역에 로딩할 수 있다.
예시적인 실시예에 있어서, 상기 메모리 컨트롤러는 상기 페일 정보 및 어드레스 매핑 테이블에 기초하여 상기 프로그램이 상기 안전 영역에 저장되도록 어드레스 매핑할 수 있다.
예시적인 실시예에 있어서, 상기 어드레스 매핑 테이블은 상기 메모리 장치의 복수의 로우 어드레스들을 그룹화하여 형성될 수 있다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 3은 도 2의 메모리 장치에 포함되는 저장 영역를 나타내는 블록도이다.
도 4는 도 3의 저장 영역에 포함되는 단위 페일 정보 셀의 일 예를 나타내는 도면이다.
도 5는 도 1의 메모리 시스템의 동작 방법을 설명하기 위한 도면이다.
도 6은 도 1의 메모리 시스템의 동작 방법을 설명하기 위한 메모리 시스템을 나타내는 블록도이다.
도 7은 도 3의 저장 영역에 프로그램이 로딩되는 일 예를 나타낸다.
도 8은 도 3의 저장 영역에 프로그램이 로딩되는 다른 예를 나타낸다.
도 9는 본 발명의 실시예에 따른 메모리 시스템에서 메모리 컨트롤러의 구성을 나타내는 블록도이다.
도 10는 도 9의 메모리 장치에 할당되는 어드레스들을 나타낸다.
도 11은 도 9의 어드레스 매핑 테이블의 일 예를 나타낸다.
도 12는 본 발명의 실시예들에 따른 메모리 시스템을 모바일 장치에 응용한 예를 나타내는 블록도이다.
도 13은 본 발명의 실시예들에 따른 메모리 시스템을 컴퓨팅 시스템에 응용한 예를 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 3은 도 2의 메모리 장치에 포함되는 저장 영역를 나타내는 블록도이다.
도 4는 도 3의 저장 영역에 포함되는 단위 페일 정보 셀의 일 예를 나타내는 도면이다.
도 5는 도 1의 메모리 시스템의 동작 방법을 설명하기 위한 도면이다.
도 6은 도 1의 메모리 시스템의 동작 방법을 설명하기 위한 메모리 시스템을 나타내는 블록도이다.
도 7은 도 3의 저장 영역에 프로그램이 로딩되는 일 예를 나타낸다.
도 8은 도 3의 저장 영역에 프로그램이 로딩되는 다른 예를 나타낸다.
도 9는 본 발명의 실시예에 따른 메모리 시스템에서 메모리 컨트롤러의 구성을 나타내는 블록도이다.
도 10는 도 9의 메모리 장치에 할당되는 어드레스들을 나타낸다.
도 11은 도 9의 어드레스 매핑 테이블의 일 예를 나타낸다.
도 12는 본 발명의 실시예들에 따른 메모리 시스템을 모바일 장치에 응용한 예를 나타내는 블록도이다.
도 13은 본 발명의 실시예들에 따른 메모리 시스템을 컴퓨팅 시스템에 응용한 예를 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되지 않는다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 메모리 시스템의 동작 방법을 나타내는 순서도이고, 도 2는 본 발명의 일 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 1 및 도 2를 참조하면, 메모리 시스템(10)의 동작 방법에서는 메모리 컨트롤러를 초기화시킨다(S100). 메모리 시스템(10)은 메모리 컨트롤러(100) 및 메모리 장치(200a)를 포함할 수 있다. 메모리 시스템(10)을 포함하는 전체 시스템이 부팅되면 메모리 시스템(10)에 포함되는 메모리 컨트롤러(100)가 초기화될 수 있다. 즉 메모리 시스템(10)에 대한 파워-업 시퀀스가 진행된다.
메모리 컨트롤러(100)가 메모리 장치(200a)에 포함되는 페일(fail) 정보 영역(283)으로부터 페일 정보(Fail Information, FI)를 독출한다(S110). 메모리 컨트롤러(100)는 커맨드(CMD) 및 어드레스(ADDR)를 이용하여 메모리 장치(200a)에 포함되는 페일 정보 영역(283)으로부터 페일 정보(FI)를 독출할 수 있다. 커맨드(CMD)는 독출 커맨드일 수 있고, 어드레스(ADDR)는 메모리 장치(200a) 내의 페일 정보 영역(283)에 해당하는 어드레스일 수 있다.
메모리 장치(200a)는 저장 영역(280a)을 포함할 수 있고, 저장 영역(280a)은 데이터 영역(281) 및 페일 정보 영역(283)을 포함할 수 있으며, 데이터 영역(281)은 페일 영역(284) 및 안전 영역(285)을 포함할 수 있다.
페일 정보 영역(283)에는 페일 정보(FI)가 저장될 수 있다. 페일 정보(FI)는 메모리 장치(200a)의 데이터 영역(281)에 포함되는 페일 영역(284)의 어드레스(ADDR)에 관한 정보일 수 있다. 메모리 컨트롤러(100)가 데이터 영역(281) 중 안전 영역(285)에 데이터(DATA)를 기입하는 경우, 안전 영역(285)에 기입되는 데이터(DATA)에 오류가 발생하지 않으며, 메모리 컨트롤러(100)가 안전 영역(285)으로부터 데이터(DATA)를 독출하는 경우, 안전 영역(285)으로부터 독출되는 데이터(DATA)에 오류가 발생하지 않는다. 메모리 컨트롤러(100)가 페일 영역(284)에 데이터(DATA)를 기입하는 경우, 페일 영역(284)에 기입되는 데이터(DATA)에 오류가 발생할 수 있고, 메모리 컨트롤러(100)가 페일 영역(284)으로부터 데이터(DATA)를 독출하는 경우, 페일 영역(284)으로부터 독출되는 데이터(DATA)에 오류가 발생할 수 있다.
메모리 컨트롤러(100)가 페일 정보(FI)에 기초하여 메모리 장치(200a) 중 페일 정보 영역(283) 및 페일 영역(284)을 제외한 안전 영역(285)에 프로그램이 저장되도록 어드레스 매핑한다(S120). 메모리 컨트롤러(100)는 페일 정보 영역(283)에 포함되는 페일 정보(FI)에 따라 데이터 영역(281) 중 페일 영역(284) 및 안전 영역(285)을 구분할 수 있다. 메모리 컨트롤러(100)는 페일 정보(FI)에 기초하여 프로그램의 논리적 어드레스(Logical Addr, LA)를 메모리 장치(200a)의 안전 영역(285)의 물리적 어드레스(Physical Addr, PA)에 매핑할 수 있다.
메모리 컨트롤러(100)는 프로그램이 메모리 장치(200a) 내의 페일 영역(284)에 저장될 수 없도록 프로그램의 논리적 어드레스(LA)가 메모리 장치(200a) 내의 페일 영역(284)에 해당하는 물리적 어드레스(PA)에 할당되는 것을 차단할 수 있다. 메모리 컨트롤러(100)는 프로그램이 메모리 장치(200a) 내의 안전 영역(285)에 저장될 수 있도록 프로그램의 논리적 어드레스(LA)를 메모리 장치(200a) 내의 안전 영역(285)에 해당하는 물리적 어드레스(PA)에 할당할 수 있다.
메모리 컨트롤러(100)가 어드레스 매핑에 따라 프로그램을 메모리 장치(200a)의 안전 영역(285)에 로딩한다(S130). 메모리 컨트롤러(100)가 페일 정보(FI)를 이용하여 프로그램의 논리적 어드레스(LA)를 메모리 장치(200a)의 안전 영역(285)의 물리적 어드레스(PA)에 매핑한 후, 프로그램은 어드레스 매핑에 따라 메모리 컨트롤러(100)로부터 안전 영역(285)에 로딩될 수 있다.
본 발명의 실시예들에 따른 메모리 시스템(10)의 동작 방법에서는 메모리 컨트롤러(100)가 메모리 장치(200a) 내의 페일 정보 영역(283)에 포함되는 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 안전 영역(285)에 프로그램을 로딩할 수 있다. 상술한 메모리 시스템(10)의 동작 방법에 따르면, 메모리 컨트롤러(100)가 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 페일 영역(284)에 상응하는 물리적 어드레스(PA)에 액세스하는 것을 차단하여 메모리 시스템(10)의 오동작을 방지할 수 있고, 페일 정보(FI)를 메모리 컨트롤러(100)가 포함되는 시스템 레벨로 전달할 수 있고, 운영 체제(Operating System, OS)는 페일 정보(FI)를 이용하여 응용 프로그램(Application program, APP)을 메모리 장치(200a) 내의 안전 영역(285)에 로딩할 수 있다.
도 3은 도 2의 메모리 장치에 포함되는 저장 영역를 나타내는 블록도이다.
도 2 및 도 3을 참조하면, 메모리 장치(200a)는 저장 영역(280a)을 포함하고, 저장 영역(280a)은 페일 정보 영역(283) 및 데이터 영역(281)을 포함할 수 있다. 데이터 영역(281)에는 메모리 컨트롤러(100)로부터 제공되는 데이터(DATA)가 저장될 수 있다. 페일 정보 영역(283)에는 페일 정보(FI)가 저장될 수 있다. 페일 정보(FI)는 메모리 장치(200a)의 데이터 영역(281)에 포함되는 페일 영역(284)의 어드레스(ADDR)에 관한 정보일 수 있다.
페일 정보 영역(283)은 비휘발성이고, 데이터 영역(281)은 휘발성일 수 있다. 메모리 시스템(10)을 포함하는 전체 시스템이 부팅되면 메모리 컨트롤러(100)를 초기화시킬 수 있다. 메모리 컨트롤러(100)가 초기화되면, 메모리 컨트롤러(100)가 메모리 장치(200a) 내부의 페일 정보 영역(283)으로부터 페일 정보(FI)를 독출할 수 있다. 따라서 메모리 시스템(10)의 전원이 차단되는 경우에도 메모리 장치(200a) 내부의 페일 정보 영역(283)에 포함되는 페일 정보(FI)는 유지되어야 메모리 컨트롤러(100)가 초기화되면서 페일 정보 영역(283)으로부터 페일 정보(FI)를 독출할 수 있다. 페일 정보 영역(283)이 비휘발성인 경우 메모리 시스템(10)의 전원이 차단되어도 페일 정보(FI)는 유지될 수 있다. 데이터 영역(281)은 페일 영역(284) 및 안전 영역(285)을 포함할 수 있다. 메모리 컨트롤러(100)가 페일 영역(284)에 데이터(DATA)를 기입하거나 페일 영역(284)으로부터 데이터(DATA)를 독출하는 경우, 기입 데이터 및 독출 데이터에 오류가 발생할 수 있다.
도 3을 참조하면, 페일 정보(FI)는 메모리 장치(200a)가 패키징 되기 전에 수행되는 메모리 장치(200a)에 대한 테스트 결과에 기초하여 메모리 장치(200a) 내부의 페일 정보 영역(283)에 저장될 수 있다. 메모리 장치(200a)의 테스트는 메모리 장치(200a)에 포함되는 셀들의 불량 여부를 검증하는 과정일 수 있다. 메모리 장치(200a)의 테스트 결과 특정 어드레스(ADDR)에 해당하는 셀이 불량인 경우 페일 정보 영역(283)에 포함되는 단위 페일 정보 셀들(381 내지 388) 중 특정 어드레스(ADDR)에 상응하는 단위 페일 정보 셀에 단위 페일 정보(Unit Fail Information, UFI)를 저장할 수 있다.
예를 들어, 데이터 영역(281)에 할당되는 어드레스(ADDR)가 0x000부터 0x111까지 라고 하면, 제1 단위 페일 정보 셀(381)은 데이터 영역(281)의 어드레스(ADDR) 0x000에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제2 단위 페일 정보 셀(382)은 데이터 영역(281)의 어드레스(ADDR) 0x001에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제3 단위 페일 정보 셀(383)은 데이터 영역(281)의 어드레스(ADDR) 0x010에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제4 단위 페일 정보 셀(384)은 데이터 영역(281)의 어드레스(ADDR) 0x011에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제5 단위 페일 정보 셀(385)은 데이터 영역(281)의 어드레스(ADDR) 0x100에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제6 단위 페일 정보 셀(386)은 데이터 영역(281)의 어드레스(ADDR) 0x101에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제7 단위 페일 정보 셀(387)은 데이터 영역(281)의 어드레스(ADDR) 0x110에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제8 단위 페일 정보 셀(388)은 데이터 영역(281)의 어드레스(ADDR) 0x111에 해당하는 단위 페일 정보(UFI)를 저장할 수 있다.
이 경우, 데이터 영역(281)에 할당되는 하나의 어드레스(ADDR)에 상응하는 단위 페일 정보(UFI)가 하나의 단위 페일 정보 셀에 저장되지만, 데이터 영역(281)에 할당되는 복수 개의 어드레스(ADDR)들을 하나의 그룹으로하여 단위 페일 정보(UFI)를 생성할 수 있다. 예를 들면, 데이터 영역(281)에 할당되는 어드레스(ADDR)가 0x0000부터 0x1111까지 라고 하면, 제1 단위 페일 정보 셀(381)은 데이터 영역(281)의 어드레스(ADDR) 0x0000및 0x0001에 해당하는 셀들의 페일 정보를 단위 페일 정보(UFI)로 하여 제1 단위 페일 정보 셀(381)에 저장할 수 있다. 이 경우, 데이터 영역(281)의 어드레스(ADDR) 0x0000및 0x0001에 해당하는 셀들 중 하나의 셀이라도 불량인 경우 단위 페일 정보(UFI)는 불량으로 판단될 수 있다.
본 발명의 실시예들에 따른 메모리 시스템(10)의 동작 방법에서는 메모리 컨트롤러(100)가 메모리 장치(200a) 내의 페일 정보 영역(283)에 포함되는 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 안전 영역(285)에 프로그램을 로딩할 수 있다. 메모리 시스템(10)의 동작 방법을 사용하면, 메모리 컨트롤러(100)가 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 페일 영역(284)에 상응하는 물리적 어드레스(PA)에 액세스하는 것을 차단하여 메모리 시스템(10)의 오동작을 방지할 수 있고, 페일 정보(FI)를 메모리 컨트롤러(100)가 포함되는 시스템 레벨로 전달할 수 있고, 운영 체제(OS)는 페일 정보(FI)를 이용하여 응용 프로그램(APP)을 메모리 장치(200a) 내의 안전 영역(285)에 로딩할 수 있다.
예시적인 실시예에 있어서, 페일 정보 영역(283)은 단위 페일 정보 셀들(381 내지 388)을 포함하고, 단위 페일 정보 셀의 값이 제1 레벨이면, 단위 페일 정보(UFI)는 불량으로 판단되고, 단위 페일 정보 셀의 값이 제2 레벨이면, 단위 페일 정보(UFI)는 양호로 판단될 수 있다. 여기서, 제1 레벨은 로직 하이 레벨일 수 있고, 제2 레벨은 로직 로우 레벨일 수 있다. 다른 실시예에서는 제1 레별은 로직 로우 레벨일 수 있고, 제2 레벨은 로직 하이 레벨일 수 있다.
데이터 영역(281)에 할당되는 복수 개의 어드레스(ADDR)들을 하나의 그룹으로하여 단위 페일 정보(UFI)를 생성할 수 있다. 예를 들면, 데이터 영역(281)에 할당되는 어드레스(ADDR)가 0x0000부터 0x1111까지 라고 하면, 데이터 영역(281)의 어드레스(ADDR) 0x0000및 0x0001에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보로 하여 제1 단위 페일 정보 셀(381)에 저장할 수 있다. 이 경우, 데이터 영역(281)의 어드레스(ADDR) 0x0000및 0x0001에 해당하는 셀들 중 하나의 셀이라도 불량인 경우 단위 페일 정보(UFI)는 불량으로 판단될 수 있다.
데이터 영역(281)의 어드레스(ADDR) 0x0010및 0x0011에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보(UFI)로 하여 제2 단위 페일 정보 셀(382)에 저장할 수 있다. 데이터 영역(281)의 어드레스(ADDR) 0x0100및 0x0101에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보로 하여 제3 단위 페일 정보 셀(383)에 저장할 수 있다. 데이터 영역(281)의 어드레스(ADDR) 0x0110및 0x0111에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보(UFI)로 하여 제4 단위 페일 정보 셀(384)에 저장할 수 있다. 데이터 영역(281)의 어드레스(ADDR) 0x1000및 0x1001에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보로 하여 제5 단위 페일 정보 셀(385)에 저장할 수 있다. 데이터 영역(281)의 어드레스(ADDR) 0x1010및 0x1011에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보로 하여 제6 단위 페일 정보 셀(386)에 저장할 수 있다. 데이터 영역(281)의 어드레스(ADDR) 0x1100및 0x1101에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보로 하여 제7 단위 페일 정보 셀(387)에 저장할 수 있다. 데이터 영역(281)의 어드레스(ADDR) 0x1110및 0x1111에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보로 하여 제8 단위 페일 정보 셀(388)에 저장할 수 있다.
예를 들어, 단위 페일 정보 셀의 값이 '1' 이면, 단위 페일 정보(UFI)는 불량으로 판단되고, 단위 페일 정보 셀의 값이 '0'이면, 단위 페일 정보(UFI)는 양호로 판단될 수 있다. 또한 단위 페일 정보 셀의 값이 '0' 이면, 단위 페일 정보(UFI)는 불량으로 판단되고, 단위 페일 정보 셀의 값이 '1'이면, 단위 페일 정보(UFI)는 양호로 판단될 수 있다.
단위 페일 정보 셀에 저장되는 단위 페일 정보(UFI)가 불량으로 판단되는 경우, 단위 페일 정보(UFI)에 상응하는 데이터 영역(281)내의 어드레스(ADDR)는 페일 영역(284)에 포함될 수 있다. 메모리 컨트롤러(100)가 페일 영역(284)에 데이터(DATA)를 기입하는 경우, 페일 영역(284)에 기입되는 데이터(DATA)에 오류가 발생할 수 있고, 메모리 컨트롤러(100)가 페일 영역(284)으로부터 데이터(DATA)를 독출하는 경우, 페일 영역(284)으로부터 독출되는 데이터(DATA)에 오류가 발생할 수 있다.
도 4는 도 3의 저장 영역에 포함되는 단위 페일 정보 셀의 일 예를 나타내는 도면이다.
도 3 및 도 4를 참조하면, 단위 페일 정보 셀들(381 내지 388)의 각각은 이-퓨즈(electrical fuse, eFuse)를 포함하고, 단위 페일 정보(UFI)는 이-퓨즈(eFuse)를 프로그래밍하여 페일 정보 영역(283) 내의 단위 페일 정보 셀들(381 내지 388)에 저장될 수 있다. 단위 페일 정보 셀은 이-퓨즈(eFuse)를 이용하여 구현할 수 있다. 페일 정보 영역(283) 내의 단위 페일 정보 셀에 포함되는 이-퓨즈(eFuse)는 전기적으로 고전압을 퓨즈에 인가하여 퓨즈를 끊음으로써 프로그램될 수 있다. 단위 페일 정보 셀에 포함되는 단위 페일 정보(UFI)는 이-퓨즈(eFuse)가 끊어져있는지 여부에 따라 판별할 수 있다.
예를 들어, 단위 페일 정보 셀에 포함되는 이-퓨즈(eFuse)가 끊어진 경우, 단위 페일 정보 셀의 값이 '1'이고 단위 페일 정보(UFI)는 불량으로 판단될 수 있다. 또한 단위 페일 정보 셀에 포함되는 이-퓨즈(eFuse)가 끊어지지 않은 경우, 단위 페일 정보 셀의 값이 '0'이고 단위 페일 정보(UFI)는 양호로 판단될 수 있다. 또한 단위 페일 정보 셀에 포함되는 이-퓨즈(eFuse)가 끊어진 경우, 단위 페일 정보 셀의 값이 '0'이고 단위 페일 정보(UFI)는 불량으로 판단될 수 있으며, 단위 페일 정보 셀에 포함되는 이-퓨즈(eFuse)가 끊어지지 않은 경우, 단위 페일 정보 셀의 값이 '1'이고 단위 페일 정보(UFI)는 양호로 판단될 수 있다.
예를 들어, 단위 페일 정보 셀에 포함되는 이-퓨즈(eFuse)가 끊어진 경우, 단위 페일 정보 셀의 값이 '1'이고 단위 페일 정보(UFI)는 양호로 판단될 수 있으며, 단위 페일 정보 셀에 포함되는 이-퓨즈(eFuse)가 끊어지지 않은 경우, 단위 페일 정보 셀의 값이 '0'이고 단위 페일 정보(UFI)는 불량으로 판단될 수 있다. 또한 단위 페일 정보 셀에 포함되는 이-퓨즈(eFuse)가 끊어진 경우, 단위 페일 정보 셀의 값이 '0'이고 단위 페일 정보(UFI)는 양호로 판단될 수 있으며, 단위 페일 정보 셀에 포함되는 이-퓨즈(eFuse)가 끊어지지 않은 경우, 단위 페일 정보 셀의 값이 '1'이고 단위 페일 정보(UFI)는 불량으로 판단될 수 있다.
페일 정보 영역(283)은 단위 페일 정보 셀들(381 내지 388)을 포함할 수 있다. 페일 정보 영역(283)에 포함되는 단위 페일 정보 셀에는 단위 페일 정보(UFI)가 저장될 수 있다. 단위 페일 정보(UFI)는 메모리 장치(200a)의 데이터 영역(281)에 포함되는 페일 영역(284)의 어드레스(ADDR)에 관한 정보일 수 있다. 메모리 장치(200a)의 테스트 결과 특정 어드레스(ADDR)에 해당하는 셀이 불량인 경우 페일 정보 영역(283)에 포함되는 단위 페일 정보 셀들(381 내지 388) 중 특정 어드레스(ADDR)에 상응하는 단위 페일 정보 셀에 포함되는 이-퓨즈(eFuse)를 이용하여 단위 페일 정보(UFI)가 저장될 수 있다.
예를 들어, 데이터 영역(281)에 할당되는 어드레스(ADDR)가 0x000부터 0x111까지 라고 하면, 제1 단위 페일 정보 셀(381)에 포함되는 제1 이-퓨즈(481)는 데이터 영역(281)의 어드레스(ADDR) 0x000에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제2 단위 페일 정보 셀(382)에 포함되는 제2 이-퓨즈(미도시)는 데이터 영역(281)의 어드레스(ADDR) 0x001에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제3 단위 페일 정보 셀(383)에 포함되는 제3 이-퓨즈(미도시)는 데이터 영역(281)의 어드레스(ADDR) 0x010에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제4 단위 페일 정보 셀(384)에 포함되는 제4 이-퓨즈(미도시)는 데이터 영역(281)의 어드레스(ADDR) 0x011에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제5 단위 페일 정보 셀(385)에 포함되는 제5 이-퓨즈(미도시)는 데이터 영역(281)의 어드레스(ADDR) 0x100에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제6 단위 페일 정보 셀(386)에 포함되는 제6 이-퓨즈(미도시)는 데이터 영역(281)의 어드레스(ADDR) 0x101에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제7 단위 페일 정보 셀(387)에 포함되는 제7 이-퓨즈(미도시)는 데이터 영역(281)의 어드레스(ADDR) 0x110에 해당하는 단위 페일 정보(UFI)를 저장할 수 있고, 제8 단위 페일 정보 셀(388)에 포함되는 제8 이-퓨즈(미도시)는 데이터 영역(281)의 어드레스(ADDR) 0x111에 해당하는 단위 페일 정보(UFI)를 저장할 수 있다.
본 발명의 실시예들에 따른 메모리 시스템(10)의 동작 방법에서는 메모리 컨트롤러(100)가 메모리 장치(200a) 내의 페일 정보 영역(283)에 포함되는 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 안전 영역(285)에 프로그램을 로딩할 수 있다. 메모리 시스템(10)의 동작 방법을 사용하면, 메모리 컨트롤러(100)가 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 페일 영역(284)에 상응하는 물리적 어드레스(PA)에 액세스하는 것을 차단하여 메모리 시스템(10)의 오동작을 방지할 수 있고, 페일 정보(FI)를 메모리 컨트롤러(100)가 포함되는 시스템 레벨로 전달할 수 있고, 운영 체제(OS)는 페일 정보(FI)를 이용하여 응용 프로그램(APP)을 메모리 장치(200a) 내의 안전 영역(285)에 로딩할 수 있다.
도 5는 도 1의 메모리 시스템의 동작 방법을 설명하기 위한 도면이고, 도 6은 도 1의 메모리 시스템의 동작 방법을 설명하기 위한 메모리 시스템을 나타내는 블록도이다.
도 5 및 도 6을 참조하면, 어드레스 매핑은 페일 정보 영역(283) 내의 단위 페일 정보 셀들(381 내지 388)에 포함되는 페일 정보(FI)에 따라 결정될 수 있다. 메모리 컨트롤러(100)는 페일 정보(FI)를 이용하여 메모리 장치(200a) 내의 페일 영역(284)에 프로그램이나 데이터(DATA)가 로딩되는 것을 차단할 수 있다.
예를 들어, 메모리 장치(200a) 내의 어드레스(ADDR)가 0x0000000000부터 0x1111111111까지라고 하면, 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000000에 해당하는 단위 페일 정보 셀의 값은 '0'일 수 있다. 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000001에 해당하는 단위 페일 정보 셀의 값은 '0'일 수 있다. 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000010에 해당하는 단위 페일 정보 셀의 값은 '1'일 수 있다. 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000011에 해당하는 단위 페일 정보 셀의 값은 '1'일 수 있다. 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000100에 해당하는 단위 페일 정보 셀의 값은 '0'일 수 있다. 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000101에 해당하는 단위 페일 정보 셀의 값은 '0'일 수 있다. 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000110에 해당하는 단위 페일 정보 셀의 값은 '0'일 수 있다. 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000111에 해당하는 단위 페일 정보 셀의 값은 '0'일 수 있다.
단위 페일 정보 셀의 값이 '1' 이면, 단위 페일 정보(UFI)는 불량으로 판단되고, 단위 페일 정보 셀의 값이 '0'이면, 단위 페일 정보(UFI)는 양호로 판단될 수 있다. 따라서 단위 페일 정보 셀의 값이 '1'해당하는 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000010 및 0x0000000011에 상응하는 메모리 장치(200a) 내의 셀들은 불량 셀들에 해당할 수 있다. 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000010 및 0x0000000011에 상응하는 메모리 장치(200a) 내의 영역은 페일 영역(284)에 포함될 수 있다.
또한 단위 페일 정보 셀의 값이 '0'해당하는 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000000, 0x00000000001, x0000000100, 0x0000000101 x0000000110 및 0x0000000111에 상응하는 메모리 장치(200a) 내의 셀들은 양호 셀들에 해당할 수 있다. 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000000, 0x00000000001, x0000000100, 0x0000000101 x0000000110 및 0x0000000111에 상응하는 메모리 장치(200a) 내의 영역은 안전 영역(285)에 포함될 수 있다.
메모리 컨트롤러(100)가 데이터 영역(281) 중 안전 영역(285)에 데이터(DATA)를 기입하는 경우, 안전 영역(285)에 기입되는 데이터(DATA)에 오류가 발생하지 않으며, 메모리 컨트롤러(100)가 안전 영역(285)으로부터 데이터(DATA)를 독출하는 경우, 안전 영역(285)으로부터 독출되는 데이터(DATA)에 오류가 발생하지 않는다. 메모리 컨트롤러(100)가 페일 영역(284)에 데이터(DATA)를 기입하는 경우, 페일 영역(284)에 기입되는 데이터(DATA)에 오류가 발생할 수 있고, 메모리 컨트롤러(100)가 페일 영역(284)으로부터 데이터(DATA)를 독출하는 경우, 페일 영역(284)으로부터 독출되는 데이터(DATA)에 오류가 발생할 수 있다. 따라서 메모리 컨트롤러(100)는 메모리 장치(200a) 내의 페일 영역(284)에 액세스하는 것을 차단할 필요가 있다.
예를 들어, 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000010 및 0x0000000011에 상응하는 메모리 장치(200a) 내의 셀들은 불량 셀들에 해당하므로 메모리 컨트롤러(100)는 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000010 및 0x0000000011에 액세스를 차단할 수 있고, 메모리 장치(200a) 내의 어드레스(ADDR) 0x0000000000, 0x00000000001, x0000000100, 0x0000000101 x0000000110 및 0x0000000111에 액세스를 허용할 수 있다. 메모리 컨트롤러(100)는 메모리 장치(200a) 내의 페일 영역(284)에 해당하는 어드레스(ADDR)에 액세스를 차단하고 안전 영역(285)에 해당하는 어드레스(ADDR)에 액세스를 허용할 수 있다.
이 경우, 메모리 컨트롤러(100)는 메모리 장치(200a) 내의 페일 정보 영역(283)으로부터 페일 정보(FI)를 독출할 수 있다. 페일 정보 영역(283)에는 페일 정보(FI)가 저장될 수 있다. 페일 정보(FI)는 메모리 장치(200a)의 데이터 영역(281)에 포함되는 페일 영역(284)의 어드레스(ADDR)에 관한 정보일 수 있다. 메모리 컨트롤러(100)는 커맨드(CMD) 및 어드레스(ADDR)를 이용하여 메모리 장치(200a)에 포함되는 페일 정보 영역(283)으로부터 페일 정보(FI)를 독출할 수 있다. 커맨드(CMD)는 독출 커맨드일 수 있고, 어드레스(ADDR)는 메모리 장치(200a) 내의 페일 정보 영역(283)에 해당하는 어드레스(ADDR)일 수 있다.
도 7은 도 3의 저장 영역에 프로그램이 로딩되는 일 예를 나타낸다.
도 7을 참조하면, 저장 영역(280a)은 페일 정보 영역(283) 및 데이터 영역(281)을 포함할 수 있다. 데이터 영역(281)에는 메모리 컨트롤러(100)로부터 제공되는 데이터(DATA)가 저장될 수 있다. 페일 정보 영역(283)에는 페일 정보(FI)가 저장될 수 있다. 페일 정보(FI)는 메모리 장치(200a)의 데이터 영역(281)에 포함되는 페일 영역(284)의 어드레스(ADDR)에 관한 정보일 수 있다. 프로그램은 부트 로더(boot loader) 및 운영 체제(OS)일 수 있다.
메모리 컨트롤러(100)가 초기화된 후, 메모리 컨트롤러(100)가 페일 정보(FI)에 기초하여 메모리 장치(200a) 중 페일 정보 영역(283) 및 페일 영역(284)을 제외한 안전 영역(285)에 부트 로더 및 운영 체제(OS)가 저장되도록 어드레스(ADDR) 매핑할 수 있다. 메모리 컨트롤러(100)는 부트 로더 및 운영 체제(OS)가 메모리 장치(200a) 내의 페일 영역(284)에 저장될 수 없도록 부트 로더 및 운영 체제(OS)의 논리적 어드레스(LA)를 메모리 장치(200a) 내의 페일 영역(284)에 해당하는 물리적 어드레스(PA)에 매핑하는 것을 차단할 수 있다. 메모리 컨트롤러(100)는 부트 로더 및 운영 체제(OS)가 메모리 장치(200a) 내의 안전 영역(285)에 저장될 수 있도록 프로그램의 논리적 어드레스(LA)를 메모리 장치(200a) 내의 안전 영역(285)에 해당하는 물리적 어드레스(PA)에 매핑할 수 있다. 메모리 컨트롤러(100)가 초기화된 후, 부트 로더는 메모리 시스템(10)과 관련되는 디바이스들을 초기화하고 운영 체제(OS)를 메모리 장치(200a)에 로딩할 수 있다.
데이터 영역(281)은 페일 영역(284) 및 안전 영역(285)을 포함할 수 있다. 안전 영역(285)은 제1 안전 영역(286), 제2 안전 영역(287) 및 제3 안전 영역(288)을 포함할 수 있다. 메모리 컨트롤러(100)는 페일 정보 영역(283)에 포함되는 페일 정보(FI)에 기초하여 부트 로더 및 운영 체제(OS)를 메모리 장치(200a) 내의 안전 영역(285)에 로딩할 수 있다. 예를 들어, 부트 로더가 제1 안전 영역(286)에 로딩되는 경우 운영 체제(OS)는 제2 안전 영역(287) 및 제3 안전 영역(288)에 로딩될 수 있다. 부트 로더가 제2 안전 영역(287)에 로딩되는 경우 운영 체제(OS)는 제1 안전 영역(286) 및 제3 안전 영역(288)에 로딩될 수 있다. 부트 로더가 제3 안전 영역(288)에 로딩되는 경우 운영 체제(OS)는 제1 안전 영역(286) 및 제2 안전 영역(287)에 로딩될 수 있다. 메모리 컨트롤러(100)가 부트 로더 및 운영 체제(OS)를 메모리 장치(200a) 내의 페일 영역(284)에 로딩하는 경우 프로그램이 오동작할 수 있다.
도 8은 도 3의 저장 영역에 프로그램이 로딩되는 다른 예를 나타낸다.
도 8을 참조하면, 저장 영역(280a)은 페일 정보 영역(283) 및 데이터 영역(281)을 포함할 수 있다. 데이터 영역(281)은 페일 영역(284) 및 안전 영역(285)을 포함할 수 있다.
운영 체제(OS)는 페일 정보(FI)에 기초하여 응용 프로그램(APP)을 안전 영역(285)에 로딩할 수 있다. 페일 정보 영역(283)에는 페일 정보(FI)가 저장될 수 있다. 페일 정보(FI)는 메모리 장치(200a)의 데이터 영역(281)에 포함되는 페일 영역(284)의 어드레스(ADDR)에 관한 정보일 수 있다. 메모리 컨트롤러(100)가 초기화된 후, 메모리 컨트롤러(100)는 페일 정보(FI)에 기초하여 메모리 장치(200a)에 포함되는 안전 영역(285)에 운영 체제(OS)를 로딩할 수 있다. 운영 체제(OS)는 페일 정보(FI)를 이용하여 메모리 장치(200a)의 안전 영역(285)에 응용 프로그램(APP)을 로딩할 수 있다.
메모리 장치(200a)의 페일 정보 영역(283)에 포함되는 페일 정보(FI)는 메모리 컨트롤러(100)에 전달될 수 있다. 운영 체제(OS)가 메모리 장치(200a) 내의 안전 영역(285)에 로딩된 이후에는 운영 체제(OS)도 페일 정보(FI)를 이용하여 응용 프로그램(APP)을 메모리 장치(200a) 내의 안전 영역(285)에 로딩할 수 있다. 페일 정보(FI)는 메모리 장치(200a) 내의 페일 정보 영역(283)으로부터 메모리 컨트롤러(100)를 통해서 운영 체제(OS)로까지 전달될 수 있다.
안전 영역(285)은 제1 안전 영역(286), 제2 안전 영역(287) 및 제3 안전 영역(288)을 포함할 수 있다. 운영 체제(OS)는 페일 정보 영역(283)에 포함되는 페일 정보(FI)에 기초하여 응용 프로그램(APP)을 메모리 장치(200a) 내의 안전 영역(285)에 로딩할 수 있다. 예를 들어, 운영 체제(OS)가 제1 안전 영역(286)에 로딩되는 경우 응용 프로그램(APP)은 제2 안전 영역(287) 및 제3 안전 영역(288)에 로딩될 수 있다. 운영 체제(OS)가 제2 안전 영역(287)에 로딩되는 경우 응용 프로그램(APP)은 제1 안전 영역(286) 및 제3 안전 영역(288)에 로딩될 수 있다. 운영 체제(OS)가 제3 안전 영역(288)에 로딩되는 경우 응용 프로그램(APP)은 제1 안전 영역(286) 및 제2 안전 영역(287)에 로딩될 수 있다.
페일 정보 영역(283)에는 페일 정보(FI)가 저장될 수 있다. 페일 정보(FI)는 메모리 장치(200a)의 데이터 영역(281)에 포함되는 페일 영역(284)의 어드레스(ADDR)에 관한 정보일 수 있다.
도 1 내지 도 8을 참조하여 설명한 본 발명의 실시예에 따른 메모리 시스템(10)의 동작 방법에서는 메모리 컨트롤러(100)가 메모리 장치(200a) 내의 페일 정보 영역(283)에 포함되는 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 안전 영역(285)에 프로그램을 로딩할 수 있다. 메모리 시스템(10)의 동작 방법을 사용하면, 메모리 컨트롤러(100)가 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 페일 영역(284)에 상응하는 물리적 어드레스(PA)에 액세스하는 것을 차단하여 메모리 시스템(10)의 오동작을 방지할 수 있고, 페일 정보(FI)를 메모리 컨트롤러(100)가 포함되는 시스템 레벨로 전달할 수 있고, 운영 체제(OS)는 페일 정보(FI)를 이용하여 응용 프로그램(APP)을 메모리 장치(200a) 내의 안전 영역(285)에 로딩할 수 있다.
도 9는 본 발명의 실시예에 따른 메모리 시스템에서 메모리 컨트롤러의 구성을 나타내는 블록도이다.
도 8 및 도 9를 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(100) 및 메모리 장치(200a)를 포함할 수 있다. 메모리 컨트롤러(100)는 어드레스 매핑 테이블(130) 및 페일 정보 레지스터(150)를 포함할 수 있다. 메모리 장치(200a)는 저장 영역(280a)을 포함할 수 있고, 저장 영역(280a)은 데이터 영역(281) 및 페일 정보 영역(283)을 포함할 수 있다.
메모리 컨트롤러(100)는 페일 정보(FI) 및 어드레스 매핑 테이블(130)에 기초하여 프로그램이 안전 영역(285)에 저장되도록 어드레스 매핑할 수 있다. 메모리 컨트롤러(100)가 메모리 장치(200a)에 포함되는 페일(fail) 정보 영역(283)으로부터 페일 정보(FI)를 독출할 수 있다. 메모리 컨트롤러(100)는 커맨드(CMD) 및 어드레스(ADDR)를 이용하여 메모리 장치(200a)에 포함되는 페일 정보 영역(283)으로부터 페일 정보(FI)를 독출할 수 있다. 커맨드(CMD)는 독출 커맨드일 수 있고, 어드레스(ADDR)는 메모리 장치(200a) 내의 페일 정보 영역(283)에 해당하는 어드레스(ADDR)일 수 있다.
메모리 장치(200a) 내의 각각의 어드레스(ADDR)에 하나의 단위 페일 정보(UFI)를 포함하는 단위 페일 정보 셀을 할당하는 경우, 메모리 장치(200a) 내의 데이터 영역(281)으로 사용할 수 있는 공간이 감소할 수 있다. 따라서 메모리 장치(200a) 내의 복수의 어드레스(ADDR)들을 하나의 매핑 단위(Mapping Unit, MU)로 하여 구성되는 어드레스 매핑 테이블(130)을 이용하면, 메모리 장치(200a) 내의 데이터 영역(281)으로 사용할 수 있는 공간의 감소를 방지할 수 있다.
예를 들어, 도 3의데이터 영역(281)에 할당되는 어드레스(ADDR)가 0x000부터 0x111까지 라고 하면, 제1 단위 페일 정보 셀(381)은 데이터 영역(281)의 어드레스(ADDR) 0x000에 해당하는 단위 페일 정보(UFI)를 저장하고, 제2 단위 페일 정보 셀(382)은 데이터 영역(281)의 어드레스(ADDR) 0x001에 해당하는 단위 페일 정보(UFI)를 저장하고, 제3 단위 페일 정보 셀(383)은 데이터 영역(281)의 어드레스(ADDR) 0x010에 해당하는 단위 페일 정보(UFI)를 저장하고, 제4 단위 페일 정보 셀(384)은 데이터 영역(281)의 어드레스(ADDR) 0x011에 해당하는 단위 페일 정보(UFI)를 저장하고, 제5 단위 페일 정보 셀(385)은 데이터 영역(281)의 어드레스(ADDR) 0x100에 해당하는 단위 페일 정보(UFI)를 저장하고, 제6 단위 페일 정보 셀(386)은 데이터 영역(281)의 어드레스(ADDR) 0x101에 해당하는 단위 페일 정보(UFI)를 저장하고, 제7 단위 페일 정보 셀(387)은 데이터 영역(281)의 어드레스(ADDR) 0x110에 해당하는 단위 페일 정보(UFI)를 저장하고, 제8 단위 페일 정보 셀(388)은 데이터 영역(281)의 어드레스(ADDR) 0x111에 해당하는 단위 페일 정보(UFI)를 저장할 수 있다. 이 경우, 데이터 영역(281)의 8개의 어드레스(ADDR)에 할당되는 단위 페일 정보 셀은 8개가 될 수 있다. 결과적으로 메모리 장치(200a) 내에서 데이터 영역(281)으로 사용할 수 있는 공간이 감소할 수 있다.
반면에 데이터 영역(281)에 할당되는 어드레스(ADDR)가 0x000부터 0x111까지 라고 하면, 데이터 영역(281)의 어드레스(ADDR) 0x000 및 0x001에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보로 하여 제1 단위 페일 정보 셀(381)에 저장하고, 데이터 영역(281)의 어드레스(ADDR) 0x010 및 0x011에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보로 하여 제2 단위 페일 정보 셀(382)에 저장하고, 데이터 영역(281)의 어드레스(ADDR) 0x100 및 0x101에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보로 하여 제3 단위 페일 정보 셀(383)에 저장하고, 데이터 영역(281)의 어드레스(ADDR) 0x110 및 0x111에 해당하는 셀들의 페일 정보(FI)를 단위 페일 정보를 제4 단위 페일 정보 셀(384)에 저장할 수 있다. 이 경우, 데이터 영역(281)의 8개의 어드레스(ADDR)에 할당되는 단위 페일 정보 셀은 4개가 될 수 있다. 결과적으로 메모리 장치(200a) 내에서 데이터 영역(281)으로 사용할 수 있는 공간이 증가할 수 있다.
메모리 장치(200a) 내의 페일 정보 영역(283)으로부터 독출되는 페일 정보(FI)는 메모리 컨트롤러(100)에 포함되는 페일 정보 레지스터(150)에 저장될 수 있다. 메모리 컨트롤러(100)는 페일 정보 레지스터(150)에 저장되는 페일 정보(FI) 및 어드레스 매핑 테이블(130)에 따라 프로그램을 메모리 장치(200a)의 안전 영역(285)에 로딩할 수 있다.
메모리 컨트롤러(100)는 프로그램이 메모리 장치(200a) 내의 페일 영역(284)에 저장될 수 없도록 프로그램의 논리적 어드레스(LA)를 메모리 장치(200a) 내의 페일 영역(284)에 해당하는 물리적 어드레스(PA)에 매핑하는 것을 차단할 수 있다. 메모리 컨트롤러(100)는 프로그램이 메모리 장치(200a) 내의 안전 영역(285)에 저장될 수 있도록 프로그램의 논리적 어드레스(LA)를 메모리 장치(200a) 내의 안전 영역(285)에 해당하는 물리적 어드레스(PA)에 매핑할 수 있다.
도 10는 도 9의 메모리 장치에 할당되는 어드레스들을 나타내고, 도 11은 도 9의 어드레스 매핑 테이블의 일 예를 나타낸다.
도 9 내지 도 11을 참조하면, 어드레스 매핑 테이블(130)은 메모리 장치(200a)의 복수의 로우 어드레스(Row Address, RA)들을 그룹화하여 형성될 수 있다. 예를 들어, 메모리 장치(200a)의 로우 어드레스(RA)에 할당되는 비트 수가 13비트이고, 컬럼 어드레스에 할당되는 비트 수가 10비트이며, 뱅크 어드레스에 할당되는 비트 수가 2비트이고, 뱅크 그룹에 할당되는 비트 수가 1비트일 수 있다. 8개의 로우 어드레스(RA)들을 매핑 단위(MU)로 하여 어드레스 매핑 테이블(130)을 형성할 수 있다. 이 경우, 총 매핑 단위의 수는 2^10*2^2*2=8000개일 수 있다. 매핑 단위(MU) 별로 하나의 단위 페일 정보 셀이 요구되므로 총 단위 페일 정보 셀의 개수는 2^10*2^2*2=8000개 일 수 있다.
어드레스 매핑은 페일 정보 영역(283) 내의 단위 페일 정보 셀들(381 내지 388)에 포함되는 페일 정보(FI) 및 어드레스 매핑 테이블(130)에 따라 결정될 수 있다. 메모리 컨트롤러(100)는 페일 정보(FI)를 이용하여 메모리 장치(200a) 내의 페일 영역(284)에 프로그램이나 데이터(DATA)가 로딩되는 것을 차단할 수 있다. 예를 들어, 메모리 장치(200a) 내의 로우 어드레스(RA)가 0x0000000000000 ~ 0x1111111111111라고 하면, 메모리 장치(200a) 내의 로우 어드레스(RA) 0x0000001100000 ~ 0x0000001100111에 해당하는 단위 페일 정보 셀의 값은 '1'일 수 있다. 메모리 장치(200a) 내의 로우 어드레스(RA) 0x0000001101000 ~ 0x0000001101111에 해당하는 단위 페일 정보 셀의 값은 '1'일 수 있다. 메모리 장치(200a) 내의 로우 어드레스(RA) 0x0000001110000 ~ 0x0000001110111에 해당하는 단위 페일 정보 셀의 값은 '1'일 수 있다.
단위 페일 정보 셀의 값이 '1' 이면, 단위 페일 정보(UFI)는 불량으로 판단되고, 단위 페일 정보 셀의 값이 '0'이면, 단위 페일 정보(UFI)는 양호로 판단될 수 있다. 따라서 단위 페일 정보 셀의 값이 '1'해당하는 메모리 장치(200a) 내의 로우 어드레스(RA) 0x0000001100000 ~ 0x0000001100111, 0x0000001101000 ~ 0x0000001101111 및 0x0000001101000 ~ 0x0000001101111에 상응하는 메모리 장치(200a) 내의 셀들은 불량 셀들에 해당할 수 있다. 메모리 장치(200a) 내의 로우 어드레스(RA) 0x0000001100000 ~ 0x0000001100111, 0x0000001101000 ~ 0x0000001101111 및 0x0000001101000 ~ 0x0000001101111에 상응하는 메모리 장치(200a) 내의 영역은 페일 영역(284)에 포함될 수 있다. 또한 단위 페일 정보 셀의 값이 '0'해당하는 메모리 장치(200a) 내의 로우 어드레스(RA) 0x0000001100000 ~ 0x0000001100111, 0x0000001101000 ~ 0x0000001101111 및 0x0000001101000 ~ 0x0000001101111를 제외한 영역에 상응하는 메모리 장치(200a) 내의 셀들은 양호 셀들에 해당할 수 있다. 메모리 장치(200a) 내의 로우 어드레스(RA) 0x0000001100000 ~ 0x0000001100111, 0x0000001101000 ~ 0x0000001101111 및 0x0000001101000 ~ 0x0000001101111를 제외한 영역에 상응하는 메모리 장치(200a) 내의 영역은 안전 영역(285)에 포함될 수 있다.
메모리 컨트롤러(100)가 데이터 영역(281) 중 안전 영역(285)에 데이터(DATA)를 기입하는 경우, 안전 영역(285)에 기입되는 데이터(DATA)에 오류가 발생하지 않으며, 메모리 컨트롤러(100)가 안전 영역(285)으로부터 데이터(DATA)를 독출하는 경우, 안전 영역(285)으로부터 독출되는 데이터(DATA)에 오류가 발생하지 않는다. 메모리 컨트롤러(100)가 페일 영역(284)에 데이터(DATA)를 기입하는 경우, 페일 영역(284)에 기입되는 데이터(DATA)에 오류가 발생할 수 있고, 메모리 컨트롤러(100)가 페일 영역(284)으로부터 데이터(DATA)를 독출하는 경우, 페일 영역(284)으로부터 독출되는 데이터(DATA)에 오류가 발생할 수 있다. 따라서 메모리 컨트롤러(100)는 메모리 장치(200a) 내의 페일 영역(284)에 액세스하는 것을 차단할 필요가 있다.
예를 들어, 메모리 장치(200a) 내의 로우 어드레스(RA) 0x0000001100000 ~ 0x0000001100111, 0x0000001101000 ~ 0x0000001101111 및 0x0000001101000 ~ 0x0000001101111에 상응하는 메모리 장치(200a) 내의 셀들은 불량 셀들에 해당하므로 메모리 컨트롤러(100)는 메모리 장치(200a) 내의 로우 어드레스(RA) 0x0000001100000 ~ 0x0000001100111, 0x0000001101000 ~ 0x0000001101111 및 0x0000001101000 ~ 0x0000001101111에 액세스를 차단할 수 있고, 메모리 장치(200a) 내의 로우 어드레스(RA) 0x0000001100000 ~ 0x0000001100111, 0x0000001101000 ~ 0x0000001101111 및 0x0000001101000 ~ 0x0000001101111를 제외한 영역에 액세스를 허용할 수 있다. 메모리 컨트롤러(100)는 메모리 장치(200a) 내의 페일 영역(284)에 해당하는 어드레스(ADDR)에 액세스를 차단하고 안전 영역(285)에 해당하는 어드레스(ADDR)에 액세스를 허용할 수 있다.
이 경우, 메모리 컨트롤러(100)는 메모리 장치(200a) 내의 페일 정보 영역(283)으로부터 페일 정보(FI)를 독출할 수 있다. 페일 정보 영역(283)에는 페일 정보(FI)가 저장될 수 있다. 페일 정보(FI)는 메모리 장치(200a)의 데이터 영역(281)에 포함되는 페일 영역(284)의 어드레스(ADDR)에 관한 정보일 수 있다. 메모리 컨트롤러(100)는 커맨드(CMD) 및 어드레스(ADDR)를 이용하여 메모리 장치(200a)에 포함되는 페일 정보 영역(283)으로부터 페일 정보(FI)를 독출할 수 있다. 커맨드(CMD)는 독출 커맨드일 수 있고, 어드레스(ADDR)는 메모리 장치(200a) 내의 페일 정보 영역(283)에 해당하는 어드레스(ADDR)일 수 있다.
본 발명의 실시예들에 따른 메모리 시스템(10)의 동작 방법에서는 메모리 컨트롤러(100)가 메모리 장치(200a) 내의 페일 정보 영역(283)에 포함되는 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 안전 영역(285)에 프로그램을 로딩할 수 있다. 메모리 시스템(10)의 동작 방법을 사용하면, 메모리 컨트롤러(100)가 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 페일 영역(284)에 상응하는 물리적 어드레스(PA)에 액세스하는 것을 차단하여 메모리 시스템(10)의 오동작을 방지할 수 있고, 페일 정보(FI)를 메모리 컨트롤러(100)가 포함되는 시스템 레벨로 전달할 수 있고, 운영 체제(OS)는 페일 정보(FI)를 이용하여 응용 프로그램(APP)을 메모리 장치(200a) 내의 안전 영역(285)에 로딩할 수 있다. 페일 정보(FI)는 메모리 장치(200a) 내의 페일 정보 영역(283)으로부터 메모리 컨트롤러(100)를 통해서 운영 체제(OS)로까지 전달될 수 있다.
도 12는 본 발명의 실시예들에 따른 메모리 시스템을 모바일 장치에 응용한 예를 나타내는 블록도이다.
도 12를 참조하면, 모바일 장치(700)은 프로세서(710), 메모리 장치(720), 저장 장치(730), 이미지 센서(760), 디스플레이 디바이스(740) 및 파워 서플라이(750)를 포함할 수 있다. 모바일 장치(700)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다.
프로세서(710)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다. 실시예에 따라, 프로세서(710)는 마이크로프로세서(micro-processor), 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다. 프로세서(710)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus)를 통하여 메모리 장치(720), 저장 장치(730) 및 디스플레이 장치(740)와 통신을 수행할 수 있다. 실시예에 따라, 프로세서(710)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다. 메모리 장치(720)는 모바일 장치(700)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, 메모리 장치(720)는 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)을 포함하여 구현될 수 있다. 저장 장치(730)는 솔리드 스테이트 드라이브(solid state drive), 하드 디스크 드라이브(hard disk drive), 씨디롬(CD-ROM) 등을 포함할 수 있다. 모바일 장치(700)은 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터 등과 같은 출력 수단을 더 포함할 수 있다. 파워 서플라이(750)는 모바일 장치(700)의 동작에 필요한 동작 전압을 공급할 수 있다.
프로세서(710)는 도 2의 메모리 컨트롤러(100)를 포함할 수 있다. 또한 메모리 장치(720)는 도2의 메모리 장치(200a)를 포함할 수 있다. 따라서 도 1 및 도 2를 참조하여 설명한 바와 같이 메모리 컨트롤러(100)를 초기화시킨다. 메모리 컨트롤러(100)가 메모리 장치(200a)에 포함되는 페일(fail) 정보 영역(283)으로부터 페일 정보(FI)를 독출한다. 메모리 컨트롤러(100)가 페일 정보(FI)에 기초하여 메모리 장치(200a) 중 페일 정보 영역(283) 및 페일 영역(284)을 제외한 안전 영역(285)에 프로그램이 저장되도록 어드레스 매핑한다. 메모리 컨트롤러(100)가 어드레스 매핑에 따라 프로그램을 메모리 장치(200a)의 안전 영역(285)에 로딩한다. 메모리 시스템(10)의 동작 방법을 사용하면, 페일 정보(FI)를 시스템 레벨로 전달할 수 있고, 운영 체제(OS)는 페일 정보(FI)를 이용하여 응용 프로그램(APP)을 메모리 장치(200a) 내의 안전 영역(285)에 로딩할 수 있다.
이미지 센서(760)는 상기 버스들 또는 다른 통신 링크를 통해서 프로세서(710)와 연결되어 통신을 수행할 수 있다. 이미지 센서(900)는 프로세서(710)와 함께 하나의 칩에 집적될 수도 있고, 서로 다른 칩에 각각 집적될 수도 있다.
모바일 장치(700)의 구성 요소들은 다양한 형태들의 패키지로 구현될 수 있다. 예를 들어, 모바일 장치(700)의 적어도 일부의 구성들은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지들을 이용하여 실장될 수 있다.
한편, 모바일 장치(700)은 본원발명의 실시예들에 따른 메모리 시스템을 이용하는 모든 컴퓨팅 시스템으로 해석되어야 할 것이다. 예를 들어, 모바일 장치(700)은 디지털 카메라, 이동 전화기, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 스마트폰 등을 포함할 수 있다.
도 13은 본 발명의 실시예들에 따른 메모리 시스템을 컴퓨팅 시스템에 응용한 예를 나타내는 블록도이다.
도 13을 참조하면, 컴퓨팅 시스템(800)은 프로세서(810), 입출력 허브(820), 입출력 컨트롤러 허브(830), 적어도 하나의 메모리 모듈(840) 및 그래픽 카드(850)를 포함한다. 실시예에 따라, 컴퓨팅 시스템(800)은 개인용 컴퓨터(Personal Computer; PC), 서버 컴퓨터(Server Computer), 워크스테이션(Workstation), 노트북(Laptop), 휴대폰(Mobile Phone), 스마트 폰(Smart Phone), 개인 정보 단말기(personal digital assistant; PDA), 휴대형 멀티미디어 플레이어(portable multimedia player; PMP), 디지털 카메라(Digital Camera), 디지털 TV(Digital Television), 셋-탑 박스(Set-Top Box), 음악 재생기(Music Player), 휴대용 게임 콘솔(portable game console), 네비게이션(Navigation) 시스템 등과 같은 임의의 컴퓨팅 시스템일 수 있다.
프로세서(810)는 특정 계산들 또는 태스크들과 같은 다양한 컴퓨팅 기능들을 실행할 수 있다. 예를 들어, 프로세서(810)는 마이크로프로세서 또는 중앙 처리 장치(Central Processing Unit; CPU)일 수 있다. 실시예에 따라, 프로세서(810)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. 예를 들어, 프로세서(1510)는 듀얼 코어(Dual-Core), 쿼드 코어(Quad-Core), 헥사 코어(Hexa-Core) 등의 멀티 코어(Multi-Core)를 포함할 수 있다. 또한, 도 18에는 하나의 프로세서(810)를 포함하는 컴퓨팅 시스템(800)이 도시되어 있으나, 실시예에 따라, 컴퓨팅 시스템(800)은 복수의 프로세서들을 포함할 수 있다. 또한, 실시예에 따라, 프로세서(810)는 내부 또는 외부에 위치한 캐시 메모리(Cache Memory)를 더 포함할 수 있다.
프로세서(810)는 메모리 모듈(840)의 동작을 제어하는 메모리 컨트롤러(811)를 포함할 수 있다. 프로세서(810)에 포함된 메모리 컨트롤러(811)는 집적 메모리 컨트롤러(Integrated Memory Controller; IMC)라 불릴 수 있다. 메모리 컨트롤러(811)와 메모리 모듈(840) 사이의 메모리 인터페이스는 복수의 신호선들을 포함하는 하나의 채널로 구현되거나, 복수의 채널들로 구현될 수 있다. 또한, 각 채널에는 하나 이상의 메모리 모듈(840)이 연결될 수 있다. 실시예에 따라, 메모리 컨트롤러(811)는 입출력 허브(820) 내에 위치할 수 있다. 메모리 컨트롤러(811)를 포함하는 입출력 허브(820)는 메모리 컨트롤러 허브(Memory Controller Hub; MCH)라 불릴 수 있다.
메모리 모듈(840)은 메모리 컨트롤러(811)로부터 제공된 데이터를 저장하는 복수의 메모리 장치들을 포함할 수 있다. 상기 메모리 장치들은 메모리 컨트롤러(811)와 직접 연결되는 제1 랭크를 구성하는 제1 세트의 메모리 장치들과 상기 제1 세트의 메모리 장치들을 경유하여 상기 메모리 컨트롤러(811)와 연결되며 적어도 제2 랭크를 구성하는 제2 세트의 메모리 장치들을 포함한다. 따라서 메모리 컨트롤러(811)는 제1 랭크(RANK0)에 해당하는 메모리 장치들의 로딩만을 부담하면 되므로 메모리 모듈(840)의 동작 속도를 감소시키지 않으면서 랭크의 수를 증가시킬 수 있다.
입출력 허브(820)는 그래픽 카드(850)와 같은 장치들과 프로세서(810) 사이의 데이터 전송을 관리할 수 있다. 입출력 허브(820)는 다양한 방식의 인터페이스를 통하여 프로세서(810)에 연결될 수 있다. 예를 들어, 입출력 허브(820)와 프로세서(810)는, 프론트 사이드 버스(Front Side Bus; FSB), 시스템 버스(System Bus), 하이퍼트랜스포트(HyperTransport), 라이트닝 데이터 트랜스포트(Lightning Data Transport; LDT), 퀵패스 인터커넥트(QuickPath Interconnect; QPI), 공통 시스템 인터페이스(Common System Interface; CSI) 등의 다양한 표준의 인터페이스로 연결될 수 있다.
입출력 허브(820)는 장치들과의 다양한 인터페이스들을 제공할 수 있다. 예를 들어, 입출력 허브(820)는 가속 그래픽 포트(Accelerated Graphics Port; AGP) 인터페이스, 주변 구성요소 인터페이스-익스프레스(Peripheral Component Interface-Express; PCIe), 통신 스트리밍 구조(Communications Streaming Architecture; CSA) 인터페이스 등을 제공할 수 있다.
그래픽 카드(850)는 AGP 또는 PCIe를 통하여 입출력 허브(820)와 연결될 수 있다. 그래픽 카드(850)는 영상을 표시하기 위한 디스플레이 장치(미도시)를 제어할 수 있다. 그래픽 카드(850)는 이미지 데이터 처리를 위한 내부 프로세서 및 내부 반도체 메모리 장치를 포함할 수 있다. 실시예에 따라, 입출력 허브(820)는, 입출력 허브(820)의 외부에 위치한 그래픽 카드(850)와 함께, 또는 그래픽 카드(850) 대신에 입출력 허브(820)의 내부에 그래픽 장치를 포함할 수 있다. 입출력 허브(820)에 포함된 그래픽 장치는 집적 그래픽(Integrated Graphics)이라 불릴 수 있다. 또한, 메모리 컨트롤러 및 그래픽 장치를 포함하는 입출력 허브(820)는 그래픽 및 메모리 컨트롤러 허브(Graphics and Memory Controller Hub; GMCH)라 불릴 수 있다.
입출력 컨트롤러 허브(830)는 다양한 시스템 인터페이스들이 효율적으로 동작하도록 데이터 버퍼링 및 인터페이스 중재를 수행할 수 있다. 입출력 컨트롤러 허브(830)는 내부 버스를 통하여 입출력 허브(820)와 연결될 수 있다. 예를 들어, 입출력 허브(820)와 입출력 컨트롤러 허브(830)는 다이렉트 미디어 인터페이스(Direct Media Interface; DMI), 허브 인터페이스, 엔터프라이즈 사우스브릿지 인터페이스(Enterprise Southbridge Interface; ESI), PCIe 등을 통하여 연결될 수 있다.
입출력 컨트롤러 허브(830)는 주변 장치들과의 다양한 인터페이스들을 제공할 수 있다. 예를 들어, 입출력 컨트롤러 허브(830)는 범용 직렬 버스(Universal Serial Bus; USB) 포트, 직렬 ATA(Serial Advanced Technology Attachment; SATA) 포트, 범용 입출력(General Purpose Input/Output; GPIO), 로우 핀 카운트(Low Pin Count; LPC) 버스, 직렬 주변 인터페이스(Serial Peripheral Interface; SPI), PCI, PCIe 등을 제공할 수 있다.
실시예에 따라, 프로세서(810), 입출력 허브(820) 및 입출력 컨트롤러 허브(830)는 각각 분리된 칩셋들 또는 집적 회로들로 구현되거나, 프로세서(810), 입출력 허브(820) 또는 입출력 컨트롤러 허브(830) 중 2 이상의 구성요소들이 하나의 칩셋으로 구현될 수 있다.
메모리 모듈(840)은 도 2의 메모리 장치(200a)를 복수 개 구비할 수 있다. 또한 메모리 컨트롤러(811)는 도 2의 메모리 컨트롤러(100)를 포함할 수 있다. 따라서 도 1 및 도 2를 참조하여 설명한 바와 같이, 메모리 컨트롤러(100)가 메모리 장치(200a) 내의 페일 정보 영역(283)에 포함되는 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 안전 영역(285)에 프로그램을 로딩할 수 있다. 메모리 시스템(10)의 동작 방법을 사용하면, 메모리 컨트롤러(100)가 페일 정보(FI)에 기초하여 메모리 장치(200a) 내의 페일 영역(284)에 상응하는 물리적 어드레스(PA)에 액세스하는 것을 차단하여 메모리 시스템(10)의 오동작을 방지할 수 있고, 페일 정보(FI)를 메모리 컨트롤러(100)가 포함되는 시스템 레벨로 전달할 수 있고, 운영 체제(OS)는 페일 정보(FI)를 이용하여 응용 프로그램(APP)을 메모리 장치(200a) 내의 안전 영역(285)에 로딩할 수 있다. 페일 정보(FI)는 메모리 장치(200a) 내의 페일 정보 영역(283)으로부터 메모리 컨트롤러(100)를 통해서 운영 체제(OS)로까지 전달될 수 있다.
본 발명의 실시예들에 따른 메모리 시스템의 동작 방법은 시스템 레벨에서 메모리 장치 내의 불량 어드레스에 액세스하는 것을 차단할 수 있어 메모리 시스템을 사용하는 반도체 장치에 적용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.
Claims (10)
- 메모리 장치와 메모리 컨트롤러를 포함하는 메모리 시스템의 동작 방법으로서,
상기 메모리 컨트롤러를 초기화시키는 단계;
상기 메모리 컨트롤러가 상기 메모리 장치에 포함되는 페일(fail) 정보 영역으로부터 페일 정보를 독출하는 단계;
상기 메모리 컨트롤러가 상기 페일 정보에 기초하여 상기 메모리 장치 중 상기 페일 정보 영역 및 페일 영역을 제외한 안전 영역에 프로그램이 저장되도록 어드레스 매핑하는 단계; 및
상기 메모리 컨트롤러가 상기 어드레스 매핑에 따라 상기 프로그램을 상기 메모리 장치의 안전 영역에 로딩하는 단계를 포함하는 메모리 시스템의 동작 방법. - 제1 항에 있어서,
상기 메모리 장치는 상기 페일 정보 영역 및 상기 메모리 컨트롤러로부터 제공되는 데이터가 저장되는 데이터 영역을 포함하고,
상기 페일 정보 영역은 비휘발성이고, 상기 데이터 영역은 휘발성인 것을 특징으로 하는 메모리 시스템의 동작 방법. - 제1 항에 있어서,
상기 페일 정보는 상기 메모리 장치가 패키징 되기 전에 수행되는 상기 메모리 장치의 테스트 결과에 기초하여 상기 메모리 장치 내부의 상기 페일 정보 영역에 저장되는 것을 특징으로 하는 메모리 시스템의 동작 방법. - 제3 항에 있어서,
상기 페일 정보 영역은 단위 페일 정보 셀들을 포함하고,
상기 단위 페일 정보 셀의 값이 제1 레벨이면, 단위 페일 정보는 불량으로 판단되고,
상기 단위 페일 정보 셀의 값이 제2 레벨이면, 상기 단위 페일 정보는 양호로 판단되는 것을 특징으로 하는 메모리 시스템의 동작 방법. - 제4 항에 있어서,
상기 단위 페일 정보 셀들의 각각은 이-퓨즈(electrical fuse)를 포함하고,
상기 단위 페일 정보는 상기 이-퓨즈를 프로그래밍하여 상기 페일 정보 영역 내의 상기 단위 페일 정보 셀들에 저장되는 것을 특징으로 하는 메모리 시스템의 동작 방법. - 제1 항에 있어서,
상기 어드레스 매핑은 상기 페일 정보 영역 내의 단위 페일 정보 셀들에 포함되는 상기 페일 정보에 따라 결정되는 것을 특징으로 하는 메모리 시스템의 동작 방법. - 제1 항에 있어서,
상기 프로그램은 부트 로더(boot loader) 및 운영 체제인 것을 특징으로 하는 메모리 시스템의 동작 방법. - 제7 항에 있어서,
상기 운영 체제는 상기 페일 정보에 기초하여 응용 프로그램을 상기 안전 영역에 로딩하는 것을 특징으로 하는 메모리 시스템의 동작 방법. - 제1 항에 있어서,
상기 메모리 컨트롤러는 상기 페일 정보 및 어드레스 매핑 테이블에 기초하여 상기 프로그램이 상기 안전 영역에 저장되도록 어드레스 매핑하는 것을 특징으로 하는 메모리 시스템의 동작 방법. - 제9 항에 있어서,
상기 어드레스 매핑 테이블은 상기 메모리 장치의 복수의 로우 어드레스들을 그룹화하여 형성되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130133374A KR20150051641A (ko) | 2013-11-05 | 2013-11-05 | 메모리 시스템의 동작 방법 |
US14/531,250 US20150128000A1 (en) | 2013-11-05 | 2014-11-03 | Method of operating memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130133374A KR20150051641A (ko) | 2013-11-05 | 2013-11-05 | 메모리 시스템의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150051641A true KR20150051641A (ko) | 2015-05-13 |
Family
ID=53389070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130133374A KR20150051641A (ko) | 2013-11-05 | 2013-11-05 | 메모리 시스템의 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20150051641A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433970A (zh) * | 2020-12-02 | 2021-03-02 | 上海集成电路研发中心有限公司 | efuse控制器、芯片及efuse读写系统 |
-
2013
- 2013-11-05 KR KR1020130133374A patent/KR20150051641A/ko not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433970A (zh) * | 2020-12-02 | 2021-03-02 | 上海集成电路研发中心有限公司 | efuse控制器、芯片及efuse读写系统 |
CN112433970B (zh) * | 2020-12-02 | 2024-02-20 | 上海集成电路研发中心有限公司 | efuse控制器、芯片及efuse读写系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9472258B2 (en) | Method of operating memory device and method of operating memory system including the same | |
US10115479B2 (en) | Memory device, memory system and method of verifying repair result of memory device | |
US20180101450A1 (en) | Storage device capable of performing peer-to-peer communication and data storage system including the same | |
US11068206B2 (en) | Data storage device for processing a sequential unmap entry by using trim instruction data and operating method thereof | |
US9460816B2 (en) | Semiconductor memory devices and memory systems including the same | |
US20120005451A1 (en) | Data storage device and bad block managing method thereof | |
KR102344834B1 (ko) | 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템 | |
US20120066568A1 (en) | Storage device, electronic device, and data error correction method | |
CN110716883B (zh) | 存储器系统及其操作方法 | |
KR102189824B1 (ko) | 메모리 장치의 단위 어레이, 이를 포함하는 메모리 장치 및 메모리 시스템 | |
US10725933B2 (en) | Method and apparatus for redirecting memory access commands sent to unusable memory partitions | |
US10776048B2 (en) | Electronic apparatus and operating method thereof | |
US20220114115A1 (en) | Interleaving of heterogeneous memory targets | |
CN111679783A (zh) | 存储器控制器 | |
CN113535612A (zh) | 动态存储器控制器及其使用方法 | |
US10558562B2 (en) | Data storage device and operating method thereof | |
US20230031745A1 (en) | Memory system and controller of memory system | |
US20150199201A1 (en) | Memory system operating method providing hardware initialization | |
KR102406267B1 (ko) | 불휘발성 메모리 모듈 및 이를 포함하는 전자 장치 | |
US20210397378A1 (en) | Storage device and operating method thereof | |
US20150128000A1 (en) | Method of operating memory system | |
KR102407437B1 (ko) | 불휘발성 메모리 모듈을 포함하는 메모리 시스템 및 전자 장치 | |
CN110032466B (zh) | 数据存储装置及其操作方法 | |
CN111177041A (zh) | 支持新能力的可配置集成电路 | |
CN112328516A (zh) | 控制器、控制器的操作方法以及包括控制器的存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |