KR20100013323A - 메모리 페이지 사이즈 자동 검출 - Google Patents
메모리 페이지 사이즈 자동 검출 Download PDFInfo
- Publication number
- KR20100013323A KR20100013323A KR1020097026040A KR20097026040A KR20100013323A KR 20100013323 A KR20100013323 A KR 20100013323A KR 1020097026040 A KR1020097026040 A KR 1020097026040A KR 20097026040 A KR20097026040 A KR 20097026040A KR 20100013323 A KR20100013323 A KR 20100013323A
- Authority
- KR
- South Korea
- Prior art keywords
- page size
- memory device
- pages
- automatically determining
- detection marker
- 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
- G06F12/02—Addressing or allocation; Relocation
- G06F12/04—Addressing variable-length words or parts of words
-
- 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/10—Program control for peripheral devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/20—Initialising; Data preset; Chip identification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Storing Facsimile Image Data (AREA)
Abstract
메모리 페이지 사이즈 자동 검색을 위한 방법들 및 장치들이 제공된다. 메모리 디바이스의 페이지 사이즈를 자동으로 결정하기 위한 방법은 상기 메모리 디바이스의 페이지 사이즈 범위들을 수신하는 단계, 상기 메모리 디바이스의 버스 폭을 결정하는 단계, 자동 검출 마커(marker)를 가지는 페이지들의 수를 검출하는 단계, 및 상기 수신된 페이지 사이즈 범위들 및 상기 자동 검출 마커를 가지는 검출된 페이지들의 수에 기초하여 상기 메모리 디바이스의 페이지 사이즈를 결정하는 단계를 포함한다. 페이지 사이즈 검출을 자동으로 결정하기 위한 장치는 위에서 제공된 방법을 수행하기 위한 로직을 포함한다.
Description
본 발명은 일반적으로는 메모리 디바이스들의 구성에 관한 것이며, 더 구체적으로는 밀도(예를 들어, 메모리 용량 사이즈)에 독립적인 메모리 디바이스들의 지원을 가능하게 하기 위해 정보 처리 디바이스의 부트(boot) 시퀀스 동안 비-휘발성 메모리 디바이스의 페이지 사이즈를 자동으로 결정하는 것에 관한 것이다.
본 발명은 출원번호가 60/917,901이고, 발명의 명칭이 "Flash device page size auto-detection"이고, 출원일이 2007년 5월 14일인 가출원, 및 출원번호가 60/976,543이고, 발명의 명칭이 "Memory Page Size Auto Detection"이고, 출원일이 2007년 10월 1일인 가출원의 우선권을 주장하며, 상기 가출원들 모두는 본 발명의 양수인에게 양도되고 여기에 참조로서 명시적으로 통합된다.
정보 처리 디바이스(IPD)에 전원이 인가되면(powered on), 상기 IPD는 먼저 자신의 다양한 하드웨어 및/또는 소프트웨어 컴포넌트들을 초기화하기 위해 부트 시퀀스를 겪을 수 있다. 상기 부트 시퀀스는 별도로 컴파일되고 유지될 수 있는 많은 코드 이미지들을 포함할 수 있는 멀티-이미지 부트 아키텍쳐를 가지는 소프트웨어에 의해 수행될 수 있다. 상기 부트 시퀀스는 제 1 부트 코드를 먼저 실행함으로써 시작할 수 있다. 일반적으로, 제 1 부트 코드는 온-칩 비휘발성 메모리에 저장될 수 있고 IPD의 제조 시점에 고정될 수 있다. 몇몇 경우들에서, 제 1 부트 코드는 오프-칩 비휘발성 메모리에 저장될 수 있다.
파워 사이클(완전한 오프-상태에서 온-상태까지 혹은 이후 반 오프-상태에서 온 상태까지) 이후, IPD는 제 1 부트 코드의 실행을 시작할 수 있다. 제 1 부트 코드 실행의 일부분으로서, IPD는 상기 IPD의 부트-업 프로세스에서 다음 단계일 수 있는 제 2 부트 코드 혹은 이미지를 다운로드할 수 있다. 상기 제 2 부트 코드는 오프-칩 비휘발성 메모리에 상주할 수 있으며, 제품에 따라 그리고 제품 구성에 따라 달라질 수 있다. 다른 타입들의 메모리 디바이스들, 예를 들어, NAND 플래시, oneNAND 플래시, m-시스템 플래시, NOR 플래시, EEPROM, ROM 등이 제 2 부트 코드를 저장하기 위해 사용될 수 있다. 제 2 부트 코드 이미지를 다운로드하기 위해, IPD는 제 2 부트 코드가 상주하는 디바이스의 상세 내용들 디바이스 타입 및 상기 제 2 부트 코드 이미지를 다운로드하는 방법(상기 디바이스에 액세스하는 프로토콜, 상기 디바이스에 액세스하는 방법, 상기 디바이스에 상기 데이터가 저장된 방법, 등)을 알아야 한다. 제 1 부트 코드 실행동안 제 2 부트 코드 다운로드가 발생함에 따라, IPD는 제 1 부트 코드 자체 내에 (제 2 코드가 저장된 디바이스 및 제 2 부트 코드를 다운로드하는 방법에 관한) 정보를 가져야 한다. 대안적으로, IPD는 제 1 부트 코드 실행 동안 이 정보를 유도할 수 있다.
IPD가 제 1 부트 코드 실행을 마치면, 상기 IPD는 제 2 코드를 가지는 디바이스, 상기 디바이스 내의 상기 제 2 코드의 위치(예를 들어, 어드레스), 및 상기 제 2 코드에 액세스하는 방법의 검출을 완료할 수 있다. 몇몇 경우들에서, IPD는 상기 디바이스로부터 온-칩 메모리 혹은 오프-칩 메모리로 상기 제 2 코드를 다운로드 할 수 있고, 몇몇 다른 경우들에서, 상기 IPD는 상기 제 2 코드 위치 및 그에 액세스하는 방법만을 식별할 수 있다. 상기 제 1 부트 코드 실행의 완료 이후, IPD는 제 2 코드의 실행을 시작한다. 제 2 코드 이미지 실행 동안, IPD는 시스템의 하드웨어 구성의 더욱 상세한 내용(어떤 타입의 시스템, 디바이스들이 연결되었는지 여부, 시스템의 특징들, 시스템 메모리 사이즈, 폭, 위치, 시스템 메모리에 액세스하기 위한 프로토콜 등) 및 SW 구성의 일부 레벨을 식별/인지(learn)할 수 있다.
전술된 바와 같이, 제 2 코드를 다운로드하기 위해, IPD는 디바이스 타입 및 그 액세스 방법을 결정해야 한다. 제 1 부트동안 액세스될 필요가 있는 서로 다른 타입들의 디바이스들이 존재할 수 있으므로, IPD는 메모리 디바이스로의 액세스를 실현하기 위한 3가지 일반적인 단계들 : (i) 디바이스 타입 검출; (ii) 버스 인터페이스 폭 검출; 및 (iii) (디바이스가 페이지/섹터 지향형(oriented)인 경우) 디바이스의 페이지/섹터 사이즈 결정을 수행할 수 있다. IPD는 디바이스 내의 제 2 코드에 액세스 할 수 있기 전에 이들 단계들을 완료해야 한다.
따라서, 적절한 동작동안, IPD는 상기 IPD가 연결될 수 있는 비휘발성 플래시 메모리 디바이스의 페이지/섹터 사이즈를 식별할 수 있다. 제 2 부트 코드가 저장되는 디바이스 타입을 상기 IPD가 식별했다고 가정하면, 상기 IPD는 데이터가 저장된 포맷을 검출할 수 있다. 특정 타입들의 플래시 디바이스들(예를 들어, NAND, oneNAND, m-시스템, superAND, 등)은 페이지 포맷으로 데이터를 저장한다. 디바이스의 페이지 사이즈는 그 밀도 및 상기 디바이스의 타입에 따라 달라질 수 있다. 주어진 플래시 디바이스의 페이지 사이즈는, 예를 들어, 128바이트만큼 낮고 8Kbyte 만큼 높거나, 더 높을 수 있다.
플래시 디바이스 밀도들이 증가함에 따라, 페이지 사이즈들이 대응적으로 증가한다. 서로 다른 기법들이 IPD에 의해 디바이스의 페이지 사이즈 및 인터페이스 버스 폭을 검출하는데 사용될 수 있다. 한 가지 종래 기법은 IPD에 대한 전용 외부 핀들을 가짐으로써 페이지 사이즈 및/또는 버스 폭을 인코딩할 수 있으며, 이들 핀들에 대해 유도된 값은 상기 디바이스의 페이지 사이즈 및/또는 버스 폭을 지시할 수 있다. 이러한 방식은 매우 단순할 수 있지만, 모든 서로 다른 페이지 사이즈들을 지원하기 위해 요구되는 전용 핀들의 수가 커질 수 있다.
다른 가능한 해법은 플래시 디바이스의 제 1 페이지에 페이지 사이즈 및 버스 폭 정보를 저장할 수 있으며, 하드웨어 로직은 제 1 부트 실행 동안 플래시 디바이스로부터 제 1 페이지를 판독할 수 있다(IPD는 상기 하드웨어가 이 기능을 수행하도록 강제할 수 있거나, 또는 하드웨어 로직이 상기 제 1 페이지를 자동으로 검출하고 판독한다). 상기 해법은 제 1 페이지 판독 동안 발생할 수 있는 랜덤 에러들을 전혀 방지(protection)하지 못할 수 있다. 플래시 디바이스들은 랜덤 에러들이 발생하기 쉬울 수 있으며, 만약 상기 제 1 페이지 내의 데이터가 상기 플래시 메모리에서 혹은 상기 IPD가 플래시 메모리로부터 데이터를 판독하는 동안 손상되는 경우, IPD가 심각한 오류를 초래할 수 있는 페이지 사이즈를 잘못 검출할 가능성이 있다. 에러 방지(error protection)는 종래에는 이 스테이지에서 페이지로서 추가될 수 없으며, 데이터 포멧은 부트-업 시점에서 IPD에 알려지지 않는다.
판독 실패들에 대한 방지를 개선하기 위해, 페이지 사이즈 및 버스 폭은 매직 넘버(magic number)들로서 알려진 고유 번호들을 사용하여 인코딩될 수 있으며, 상기 매직 넘버들은 랜덤 에러들에 대한 방지를 제공한다. 페이지 사이즈 및 버스 폭은 고유한 매직 넘버로 인코딩되어 상기 디바이스의 제 1 페이지에 입력(put in)될 수 있다. IPD는 제 1 페이지에 저장된 매직 넘버들에 기초하여 페이지 사이즈를 검출할 수 있고, 이후 상기 페이지 사이즈에 기초하여 제 2 부트 코드에 액세스할 수 있다. 이는 제 2 부트 코드/이미지가 컴파일되어 각각의 플래시 디바이스(페이지 및 버스 폭 사이즈들)에 대해 유지되어야 함을 내포한다. 다른 타입들의 플래시 메모리 디바이스들의 수가 계속 증가함에 따라, 서로 다른 플래시 디바이스들에 대응하는 별도의 소프트웨어 빌드(build)들을 개발, 관리, 및 유지하는 것이 비용소모적(costly)이 될 수 있다.
따라서, 개발 및 관리 비용을 감소시키기 위해 공통 소프트웨어를 사용하여 플래시 디바이스 구성을 지원할 수 있는 새로운 자동 페이지 사이즈 검출 방식에 대한 필요성이 존재한다.
본 발명의 예시적인 실시예들은 메모리 페이지 사이즈 자동 검출을 위한 방법들 및 장치들에 관한 것이다.
본 발명의 일 실시예는 메모리 디바이스의 페이지 사이즈 범위들을 수신하는 단계; 상기 메모리 디바이스의 버스 폭을 결정하는 단계; 자동 검출 마커(marker)를 가지는 페이지들의 수를 검출하는 단계; 및 상기 수신된 페이지 사이즈 범위들 및 상기 자동 검출 마커를 가지는 검출된 페이지들의 수에 기초하여 상기 메모리 디바이스의 페이지 사이즈를 결정하는 단계를 포함하는, 메모리 디바이스의 페이지 사이즈를 자동으로 결정하기 위한 방법을 포함할 수 있다.
또다른 실시예는 메모리 디바이스의 페이지 사이즈 범위들을 수신하도록 구성된 로직; 상기 메모리 디바이스의 버스 폭을 결정하도록 구성된 로직; 자동 검출 마커(marker)를 가지는 페이지들의 수를 검출하도록 구성된 로직; 및 상기 수신된 페이지 사이즈 범위들 및 상기 자동 검출 마커를 가지는 검출된 페이지들의 수에 기초하여 상기 메모리 디바이스의 페이지 사이즈를 결정하도록 구성된 로직을 포함하는, 메모리 디바이스의 페이지 사이즈를 자동으로 결정하기 위한 장치를 포함할 수 있다.
또다른 실시예는 메모리 디바이스의 페이지 사이즈 범위들을 수신하기 위한 수단; 상기 메모리 디바이스의 버스 폭을 결정하기 위한 수단; 자동 검출 마커(marker)를 가지는 페이지들의 수를 검출하기 위한 수단; 및 상기 수신된 페이지 사이즈 범위들 및 상기 자동 검출 마커를 가지는 검출된 페이지들의 수에 기초하여 상기 메모리 디바이스의 페이지 사이즈를 결정하기 위한 수단을 포함하는, 메모리 디바이스의 페이지 사이즈를 자동으로 결정하기 위한 장치를 포함할 수 있다.
첨부 도면들은 본 발명의 실시예들의 설명을 목적으로 제공되며, 본 발명의 제한이 아닌 단지 실시예들의 예시를 위해서만 제공된다.
도 1은 프로세서, 메모리 제어기, 및 다양한 서로 다른 타입들의 메모리 디바이스들을 포함할 수 있는 정보 처리 디바이스(Information Processing Device)의 블록도이다.
도 2A는 메모리 디바이스의 버스 폭을 결정하기 위해 사용될 수 있는 메모리 디바이스 내에 상주하는 예시적인 제 1 페이지의 다이어그램이다.
도 2B는 8 비트 버스 폭 및 16 비트 버스 폭을 가지는 메모리 디바이스들로부터 예시적인 제 1 페이지 내의 데이터가 어떻게 판독되는지를 도시하는 다이어그램이다.
도 3은 메모리 디바이스의 버스 폭 및 페이지 사이즈 모두를 결정하기 위해 사용될 수 있는 예시적인 데이터 구조의 다이어그램이다.
도 4는 도 3에 도시된 예시적인 데이터 구조가 서로 다른 페이지 사이즈들을 가지는 메모리 디바이스들 내에 어떻게 포함되는지를 도시하는 다이어그램이다.
도 5는 플래시 디바이스의 페이지 사이즈를 검출하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 6은 자동 검출 마커들의 수를 카운트하는 또다른 예시적인 프로세스를 도시하는 다이어그램이다.
도 7은 메모리 디바이스와 연관된 파라미터들을 결정하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 8은 플래시 메모리 디바이스 내의 데이터 구조 구성(organization)을 도시하는 다이어그램이다.
본 발명의 특정 실시예들에 관한 다음 설명 및 관련 도면에서 본 발명의 양상들이 개시된다. 대안적인 실시예들이 본 발명의 범위로부터 벗어남이 없이 고안될 수 있다. 추가적으로, 본 발명의 공지된 엘리먼트들은 본 발명의 관련된 상세 내용들을 모호하게 하지 않기 위해 생략되거나 상세하게 설명되지 않을 것이다.
단어 "예시적인"은 "예, 경우, 또는 예시로서 제공하는"것을 의미하도록 여기서 사용된다. 여기서 "예시적인" 것으로서 설명된 임의의 실시예는 반드시 다른 실시예들보다 유리하거나 바람직한 것으로서 해석되지는 않는다. 마찬가지로, 용어 "본 발명의 실시예들"은 본 발명의 모든 실시에들이 상기 논의된 특징, 이점 혹은 동작 모드를 포함할 것을 요구하지 않는다. 용어 "매직 넘버들(magic numbers)"은 여기서 최소 가중 알고리즘에 기초하여 결정된 수들을 정의하기 위해 사용되며, 메모리 판독 에러들이 상관적이지 않을 수 있도록 다양한 실시예들에서 사용된다. 단어 "외부 메모리"는 처리 유닛의 범위(confine)들 내에 위치되지 않는 메모리 디바이스를 의미하는 것으로 사용되며, 이후 메모리 디바이스가 상기 처리 유닛과 동일한 판(die) 상에 형성되지 않음을 의미할 수 있다. 단어 "내부 메모리"는 메모리 디바이스가 처리 유닛과 동일한 판 상에 형성됨을 의미하도록 여기서 사용된다.
또한, 많은 실시예들은, 예를 들어, 컴퓨팅 디바이스의 엘리먼트에 의해 수행될 동작들의 시퀀스들의 견지에서 설명된다. 여기서 설명된 다양한 동작들은 특정 회로들(예를 들어, 주문형 집적 회로(ASIC)들)에 의해, 하나 이상의 프로세서들 에 의해 실행되는 프로그램 명령들에 의해, 혹은 이들 모두의 조합에 의해 수행될 수 있음이 인지될 것이다. 추가적으로, 여기서 설명된 이들 동작들의 시퀀스는 실행시 관련 프로세서로 하여금 여기서 설명된 기능을 수행하게 하는 컴퓨터 명령들의 대응 세트가 저장된 임의의 형태의 컴퓨터 판독가능 저장 매체 내에서 완전히 포함(embed)되는 것으로 간주될 수 있다. 따라서, 본 발명의 다양한 양상들은 다수의 다양한 형태들로 포함될 수 있으며, 상기 형태들 모두는 청구된 발명 대상의 범위 내에서 참작되었다. 더욱이, 여기서 설명된 실시예들 각각에 대해, 임의의 상기 실시예들의 대응하는 형태는, 예를 들어, 설명된 동작을 수행하도록 "구성된 로직"으로서 여기서 설명될 수 있다.
도 1은 프로세서 유닛(110), 메모리 제어기(120), 및 외부 메모리 디바이스(130)를 포함할 수 있는 정보 처리 디바이스(IPD)(100)의 블록도이다. 외부 메모리 디바이스(130)는 NAND 플래시 메모리(132), OneNAND 플래시 메모리(134), 및/또는 임의의 다른 공지된 타입들의 메모리 디바이스(136)(예를 들어, m-시스템 플래시, NOR 플래시 메모리, EEPROM, ROM, SDRAM, 등)를 포함할 수 있는 다양한 서로 다른 타입들의 외부 메모리 디바이스들을 포함할 수 있다. 메모리 제어기(120)는 위에서 언급된 서로 다른 타입의 메모리 디바이스들과 인터페이스하기 위한 다수의 제어기들의 조합일 수 있다. 부트 시퀀스가 완료된 이후의 정상 동작동안, 상기 프로세서 유닛(110)은 메모리 제어기(120)를 통해 외부 메모리 디바이스(130)로 및/또는 로부터 데이터를 판독 및/또는 기록할 수 있다. 상기 부트 시퀀스가 종료한 이후에 발생하는 이러한 통신들은 종래의 방식으로 발생할 수 있다.
IPD(100)는 도 1에 도시되지 않은 다른 디바이스들, 예를 들어, 그래픽, 비디오, 오디오, CDMA, 및/또는 GSM/GPRS 프로세서들; I/O 인터페이스들 등을 더 포함할 수 있다. IPD(100)는 랩톱 컴퓨터들, 개인 휴대용 정보 단말기들(PDA), 및/또는 이동 통신 디바이스들에서 사용될 수 있는 휴대용 및/또는 임베디드 시스템들을 포함한 임의의 타입의 컴퓨터 기반 시스템의 일부분일 수 있다. 예를 들어, 이동 통신 디바이스는 이동 통신 시스템들에서 사용하기 위한 핸드셋일 수 있고, IPD(100)는 상기 핸드셋 내에서 사용하기 위한 Mobile Station Modem (MSM™) 칩셋일 수 있다. 프로세서는 예를 들어, ARM9 패밀리로부터의 프로세서와 같은 임의의 타입의 마이크로프로세서 및/또는 마이크로제어기일 수 있다. 메모리 제어기는 다양한 서로 다른 메모리 타입들을 위한 다수의 메모리 제어기들 및/또는 하나 이상의 버스 인터페이스들을 포함할 수 있다. 예를 들어, 메모리 제어기(120)는 모든 타입들의 메모리 디바이스들을 인터페이스하기 위한 단일 메모리 제어기 또는 상기 메모리 디바이스들에 액세스하기 위한 다수의 메모리 제어기들을 포함할 수 있다. 도 1에 도시된 실시예에서, IPD(100)는 NAND(132), OneNAND 플래시 메모리(134), 및/또는 다른 타입들의 메모리(136)(예를 들어, m-시스템 플래시, NOR 플래시 메모리 등)와 인터페이스할 수 있다.
IPD(100)가 턴 온 되거나 파워 사이클링되는(power cycled) 경우, 프로세서 유닛(110)은 자신의 다양한 하드웨어 및/또는 소프트웨어 컴포넌트들을 초기화하기 위해 콜드(cold) 부트 시퀀스를 실행할 수 있다. 상기 부트 시퀀스를 실행하는 소프트웨어/펌웨어는 다수의 별도로 컴파일된 루틴들을 포함할 수 있으며, 각각의 루 틴은 부트 시퀀스에서 서로 다른 기능을 수행한다. 상기 부트 시퀀스 내의 초기 루틴은 제 1 부트 로더(primary boot loader : PBL)일 수 있으며, 이는 비휘발성 외부 메모리 디바이스(130)로부터 코드를 액세스 및/또는 다운로드하도록 IPD(100)를 설정한다. 상기 IPD(100)의 설정은 연결된 비휘발성 메모리의 타입의 식별, 이 메모리로부터의 구성 데이터의 식별, 상기 데이터의 처리 및 시스템의 메모리 구성의 식별, 필요한 경우 상기 시스템에서의 메모리 디바이스들의 구성, 및 비휘발성 메모리로부터 주 메모리로의 상기 코드의 카피를 포함할 수 있다. PBL는 MSM™ 칩셋 계열에서의 다양한 칩셋들에 대한 온-칩 부트 ROM에 상주할 수 있다. 상기 PBL은 상기 프로세서 유닛(110)이 리셋으로부터 해제(release)되었을 때 벡터(vector)화될 수 있다. 콜드 부트 동안 상기 프로세서 유닛(110)에 의해 실행될 때, PBL은 IPD(100) 하드웨어를 초기화 시키고, 상기 프로세서 유닛(110) 내의 내부 RAM 혹은 외부 RAM을 초기화시키고, 비휘발성 외부 메모리 디바이스(130)를 검출하고, 비휘발성 외부 메모리로부터 구성 데이터를 로딩하여 처리하고, 후속적인 부트 루틴들을 로딩할 수 있다.
일 실시예에서, PBL(100)은 NAND 플래시 메모리(132), OneNAND 플래시 메모리(134), 및/또는 NOR 플래시 메모리(미도시)를 포함하는 비휘발성 외부 메모리 디바이스(130) 내의 구성 정보를 사용하여 메모리 인터페이스들을 구성할 수 있다. 메모리 제어기(120)는 NAND 디바이스들 및 OneNAND 디바이스들을 포함하는, 다양한 메모리 디바이스들을 사용하여 상이한 인터페이스 데이터를 지원할 수 있다.
외부 메모리 디바이스(130)에서 임의의 데이터를 어드레스지정(address)하기 위해, 상기 메모리 제어기(120)는 외부 메모리 디바이스의 타입 및 그에 액세스하는 방법을 식별해야 한다. IPD(100)는 사용된 비휘발성 메모리 디바이스의 타입 및 상기 디바이스 내의 데이터에 액세스하기 위한 프로토콜, 및 디바이스의 인터페이스 버스 폭을 찾아낼 수 있다. 예를 들어, 외부 비휘발성 메모리가 NOR 플래시 메모리인 경우, IPD(100)는 (상기 NOR 플래시 메모리에 액세스하기 위해 요구되는 어드레스 비트 수를 검출하기 위한) 상기 NOR 플래시 메모리의 사이즈, 인터페이스 데이터 버스 폭, 및 상기 디바이스 내의 데이터에 액세스하는 방법을 알고 있어야 한다. NAND, oneNAND, m-시스템, 및 superAND 플래시 디바이스들에 대해, IPD(100)는 페이지/섹터 사이즈, 블록 사이즈, 인터페이스 데이터 폭, 및 데이터에 액세스하기 위한 프로토콜을 알고 있어야 한다. 페이지/섹터 사이즈 및 블록 사이즈는 상기 디바이스의 사이즈를 표시한다. 이는 외부 메모리 디바이스(130)의 페이지 사이즈 및 버스 폭을 검출함으로써 달성될 수 있다. 이것이 완료되면, 메모리 제어기(120)가 적절히 구성될 수 있어서, 상기 프로세서(110)가 상기 외부 메모리 디바이스(130)의 임의의 페이지를 어드레스지정할 수 있게 한다. 본 발명의 다양한 실시예들은 페이지/섹터 기반 플래시 디바이스들의 페이지/섹터 사이즈 검출을 수행할 수 있어서, 상기 IPD는 연결된 플래시 디바이스(130)를 액세스하도록 메모리 제어기(120)를 적절히 구성할 수 있다. 이는 연결된 플래시 사이즈(예를 들어, 페이지 사이즈, 블록 사이즈, 및 인터페이스 폭)와는 독립적인 방식으로 수행될 수 있다.
액세스 프로토콜은 512 바이트 미만 또는 512 바이트 및 512 바이트 초과의 페이지 사이즈를 가지는 NAND 및 superAND 디바이스들에 대해 상이할 수 있다. NAND 플래시 디바이스에 액세스하기 위해, IPD(100)는 상기 디바이스를 액세스하기 위해 올바른 프로토콜을 사용할 수 있도록 디바이스 페이지 사이즈가 512 바이트 초과인지의 여부를 알고 있어야 한다. 이 단계는 IPD(100)가 512 바이트 초과의 NAND/superAND 플래시 디바이스 페이지 사이즈만을 지원할 필요가 있는 경우 스킵될 수 있다. 유사하게, IPD(100)가 데이터를 올바르게 액세스할 수 있도록 인터페이스 데이터 버스 폭(8비트/16비트 혹은 그 초과) 검출이 수행될 수 있다. IPD(100)가 고정된 인터페이스 폭 플래시 디바이스만을 지원할 필요가 있는 경우, 역시 이 단계가 스킵될 수 있다. NAND 플래시 디바이스 사이즈가 512 바이트 초과인지의 여부를 결정하고 인터페이스 데이터 버스 폭을 검출하기 위한 예시적인 방식은, 출원번호가 11/231,389이고, 출원일이 2005년 9월 20일이고, 미국 특허 공개 번호 2007/0067529로서 공개되고, 그 전체가 참조로서 여기에 통합된 미국 특허 출원에서 설명된다. 그 상세 내용이 아래에 간략하게 설명된다.
하드웨어 페이지 사이즈 검출
본 발명의 다양한 실시예들은 하드웨어 방식에 기초하여 외부 메모리(130)의 페이지 사이즈를 추정하기 위한 프로세스를 포함할 수 있다. 이러한 방식은 페이지 사이즈가 더 작은 페이지 사이즈(512 바이트 혹은 그 미만)인지, 더 큰 페이지 사이즈(512 바이트 초과)보다 크거나 같은지의 여부를 결정할 수 있다. 하드웨어 페이지 사이즈 검출은 외부 메모리(130) 상에서 판독 초기화 커맨드(command)(후속 문단들에서 기술되는 커맨드의 상세 내용들)를 먼저 수행할 수 있는 메모리 제어기(120)에 의해 수행될 수 있다. 이후 상기 메모리 제어기(120)는 특정 시간 기간(통상적으로 100 나노초 정도) 동안 대기할 수 있다. 이후, 상기 메모리 제어기(120)는 상기 메모리 디바이스(130)가 사용중(BSY) 신호를 체크함으로써 상기 판독 커맨드를 수행하고 있는지의 여부를 결정할 수 있다. 상기 메모리 디바이스(130)가 사용중인 경우, 상기 메모리 디바이스는 더 작은 페이지 사이즈를 가진다. 반면, 상기 디바이스가 사용중이지 않은 경우, 상기 메모리 디바이스는 더 큰 페이지 사이즈를 가진다. 이러한 동작은 더 작은 페이지 디바이스를 가지는 메모리 디바이스가 단일 커맨드 혹은 op코드(판독 초기화 커맨드)를 사용하여 판독 커맨드에 응답(react)할 수 있는 반면, 큰 페이지 사이즈 디바이스는 상기 판독 동작을 위해 2개의 판독 커맨드들(판독 초기화 커맨드 및 판독 개시 커맨드)을 요구하기 때문에 발생한다. 큰 페이지 디바이스는 상기 판독 개시 커맨드가 생성(issue)될 때까지 상기 판독 개시 커맨드를 기다리며, 사용중 상태로 이동하지 않을 것이다. 메모리 제어기(120)는 이 차이를 검출하여 연결된 NAND/superAND 플래시 디바이스가 더 큰 페이지 사이즈인지 아닌지의 여부를 식별한다.
하드웨어 페이지 사이즈 검출의 일 예는 NAND 타입 메모리 디바이스들의 상황에서 아래에 제공된다. 외부 메모리 디바이스(130)가 NAND 타입 플래시 메모리(132)인 경우, 더 작은 페이지 사이즈는 512 바이트이거나 그 미만일 수 있으며, 더 큰 페이지 사이즈는 512 바이트 초과(예를 들어, 2 Kbytes 혹은 그 초과)일 수 있다.
512 바이트 페이지 디바이스들을 가지는 NAND 메모리들은 다음 판독 커맨드 시퀀스를 사용할 수 있다:
● 판독 초기화 커맨드(1 사이클 커맨드); 및
● 데이터/페이지 어드레스 커맨드(3 또는 4 또는 5 또는 더 많은 사이클들)(만약 상기 디바이스에 의해 요구되는 것보다 더 많은 어드레스 사이클들이 생성되는 경우, 상기 디바이스는 요구되는 어드레스들을 시작시에 수용하고 마지막 어드레스 사이클들을 무시할 수 있다).
상기 어드레스 사이클의 생성 이후 수 마이크로 초보다 늦지 않는 특정 시간 내에, 상기 디바이스는 자신이 판독 커맨드를 실행하고 있음을 표시하기 위해 BSY 신호를 어써트(assert)함으로써 BUSY 상태로 이동할 것이다. 상기 디바이스가 BSY 신호에 응답하는 경우 상기 디바이스는 더 작은 페이지(512 바이트 혹은 그 미만) 디바이스이다.
512 바이트 초과(예를 들어, 2Kbyte 페이지 사이즈 혹은 그 초과)를 가지는 NAND 메모리는 어드레스 사이클들 이후 BUSY 상태로 이동하지 않을 것이다. 이들 디바이스들은 제 2 판독 개시 커맨드 혹은 op코드가 BUSY 상태로 이동할 것을 요구한다. 그리고 이들 디바이스들에 대한 판독 커맨드 시퀀스는:
● 판독 초기화 커맨드(1 사이클 커맨드);
● 데이터/페이지 어드레스 커맨드(3 또는 4 또는 5 또는 더 많은 사이클들)(더 많은 어드레스 사이클들이 생성되면, NAND 디바이스는 시작시부터 요구되는 어드레스들을 수용하고 마지막 어드레스 사이클들을 무시할 것이다); 및
● 판독 개시 커맨드(1 사이클 커맨드).
상기 판독 개시 커맨드가 생성된 후 수 마이크로 초보다 늦지 않는 특정 시간 내에, 상기 디바이스는 자신이 판독 커맨드를 실행하고 있음을 표시하기 위해 BSY 신호를 어써트함으로써 BUSY 상태로 이동할 것이다.
메모리 제어기(120)는 NAND/superAND 디바이스 페이지 사이즈들을 검출하기 위해 위의 메커니즘들을 사용할 수 있다. 제어기는 다음을 수행하는 상태 머신 내에서 프로세스를 실행할 수 있다: 1) 디바이스의 리셋; 2) 판독 커맨드의 생성; 3) 어드레스 사이클들의 생성; 4) 수 마이크로 초보다 늦지 않는 일부 시간동안 대기; 및 5) 디바이스가 사용중 상태로 이동했는지 아닌지의 여부를 결정하기 위해 검사하고, 사용중 상태로 이동한 경우, 상기 디바이스는 512 바이트 혹은 그 미만의 페이지 사이즈를 가짐; 6) 사용중 상태로 이동하지 않은 경우, 판독 개시 커맨드를 생성; 7) 수 마이크로 초보다 늦지 않는 일부 시간 동안 대기; 및 8) 디바이스가 사용중 상태로 이동했는지 아닌지의 여부를 결정하도록 체크하고, 만약 사용중 상태로 이동한 경우, 상기 디바이스는 512 바이트 초과(예를 들어, 2 Kbyte 혹은 그 초과)의 페이지 사이즈를 가짐.
디바이스 페이지 사이즈의 검출 이후, 상기 메모리 제어기(120)는 동시에 혹은 그 이후에 8-비트 모드로 판독 데이터 전달을 수행할 수 있다(연결된 디바이스가 16비트 이상인 경우라 할지라도, 상기 제어기는 상기 디바이스로부터 하위 8-비트 데이터만을 사용한다). 플래시 디바이스로부터 판독된 데이터는 버스 사이즈 및 상기 플래시의 임의의 다른 파라미터들을 검출하기 위해 사용될 수 있다. 버스 폭 검출은 아래에 더 상세하게 설명될 것이다. 위에서 언급된 바와 같이, 제 1 페이지 내의 데이터는 랜덤 에러들의 확률을 감소시키기 위해 고유 번호 포맷(예를 들어, 매직 넘버)으로 저장되었다. 매직 넘버들은, 심지어 에러의 경우에도, 결과적인 수가 또다른 매직 넘버가 아니도록 선택된다. 상기 IPD는 예상된 매직 넘버들을 알고 있으므로 상기 랜덤 에러들을 검출할 것이며, 상기 제 1 페이지 내의 데이터(상기 페이지 사이즈 검출을 통해 전달된 데이터)가 올바르지 않는 경우, 상기 PBL은 상기 디바이스로부터 또다른 페이지(상기 디바이스의 다른 위치에서의 잉여 페이지)를 판독할 수 있다. 페이지 사이즈의 검출 없이, 상기 PBL은 더 진행할 수 없으며, 에러 상태가 발생했음을 보고할 수 있다.
하드웨어 페이지 사이즈 검출 방법은 외부 메모리 디바이스(130)의 페이지 사이즈가 더 큰 페이지 사이즈보다 더 작은지(예를 들어, 512 바이트 혹은 그 미만) 혹은 그 이상(예를 들어, 2Kbytes 혹은 그 초과)인지 또는 동일한지의 여부만을 검출할 수 있다는 측면에서 제한될 수 있다. 여기에 제공된 실시예들은 소프트 페이지 사이즈 검출 기법을 사용할 수 있으며, 이는 이러한 제한을 극복하기 위해 하드웨어 기반 방식과 관련하여 사용될 수 있다.
버스 폭 검출
도 2A는 버스 폭을 결정하기 위해 사용될 수 있는 메모리 디바이스 내에 상주하는 예시적인 데이터 구조의 다이어그램이다. 서로 다른 타입들의 외부 메모리 디바이스들이 서로 다른 데이터 워드 사이즈들을 사용하므로, 버스 폭은 PBL에 의 해 부트 시퀀스 동안 결정되어야 한다. 버스 폭은 메모리 디바이스(130) 상의 데이터 구조 내에 저장된 구성 데이터를 사용하여 결정될 수 있다. 이러한 결정은 코드 워드가 주어진 버스 폭을 사용하여 판독된 후 상기 코드 워드를 체크함으로써 수행될 수 있다. 좁은 버스 폭을 사용하여 판독하는 경우, 제 1 코드 워드는 변경되지 않고(unaltered) 리턴될 수 있다. 그러나, 더 넓은 버스 폭이 사용되는 경우, 코드 워드는 변경될 수 있다(예를 들어, 아래 도 2B의 설명에 나타난 바와 같이, 상기 제 1 코드 워드는 제 2 코드 워드를 사용하여 인터리빙될 수 있다). 상기 판독 커맨드가 어떤 수를 생성하는지를 체크함으로써, 상기 메모리 디바이스(130)의 버스 폭이 결정될 수 있다.
도 2A를 더 참고하면, 구성 데이터는 하나 이상의 코드 워드들(210, 220)을 포함할 수 있다. 상기 코드 워드들은 외부 메모리 디바이스(130)의 제 1 블록 내에서, 제 1 페이지(200)의 처음 8 바이트로 기록될 수 있다. 코드 워드(210)는 8_BIT_MagicNumber 라고 지칭되고, 코드 워드(220)은 Config Magic Number라고 지칭된다. 상기 페이지의 나머지는 모두 1들을 포함할 수 있다(OxFF). 에러 정정 코딩(ECC)이 이 프로세스동안 인에이블되지 않을 수 있으므로, 상기 코드 워드들은 판독 에러들을 최소화하기 위해 특별히 선택된 수들일 수 있다. 사용될 수 있는 수들의 한 클래스는 최소 가중 알고리즘을 사용하여 생성되는 수들이다. 이들 수들은 "매직 넘버들"로서 알려질 수 있으며, 상관된 판독 에러들을 감소시킬 수 있다. 판독 에러들을 회피할 능력을 가지는 다른 수들 역시 사용될 수 있다.
외부 메모리 디바이스(130)가 NAND 및/또는 OneNAND 디바이스들을 포함하는 본 발명의 일 실시예에서, 다음 예시가 제공된다. 현재 OneNAND 플래시 디바이스들은 16 비트로만 사용가능할 수 있으며, 메모리 제어기(120)는 oneNAND 디바이스와 인터페이스하는 경우 디폴트로 16 비트로 세팅될 수 있다. 이 실시예에서 설명된 기법들은 필요한 경우 oneNAND 디바이스의 페이지 사이즈를 검출하는데 적용될 수 있다. 그러나, 메모리 제어기는 초기화 동안 8 비트로 세팅될 수 있다. 플래시 디바이스의 버스 폭이 8비트인지 혹은 16비트인지 혹은 훨씬 더 큰지를 검출하기 위해, 매직 넘버들이라고도 지칭되는 8바이트의 고유 번호들이 구성 데이터를 포함하는 페이지의 시작에 위치된다. 도 2A에 도시된 바와 같이, 처음 4바이트의 데이터 구조(210)(8_BIT_Magicnumber)는 매직 넘버 0x83838383를 유지할 수 있고, 그 다음 4바이트의 데이터 구조(220)(Config Magic Number)는 매직 넘버 0x73D71034를 유지할 수 있으며, 페이지의 나머지는 데이터 OXFF를 유지할 수 있다. (위에서 설명된 바와 같이) 하드웨어 페이지 사이즈 검출 방법동안, 소프트웨어는 메모리 제어기(120)에게 구성 데이터의 블록 0의 페이지 0으로부터 4바이트의 데이터를 판독하도록 요청할 수 있다. 상기 4바이트의 데이터가 판독되면, ECC 엔진은 디스에이블된다. 상기 데이터가 판독될 때 에러들이 상관적이지 않도록 (최소 가중 알고리즘을 사용하는) 매직 넘버들이 선택된다.
도 2B는 데이터 구조(200) 내의 데이터가 8비트 버스 폭 및 16 비트 버스 폭을 가지는 메모리 디바이스로부터 어떻게 판독되는지를 도시하는 다이어그램이다. 판독된 4바이트의 데이터가 상이한 버스폭의 디바이스들에 대해 상이할 것이므로, 판독 동작이 수행된 이후에 수신된 데이터는 메모리 디바이스(130)의 버스 폭을 결 정하는데 사용될 수 있다. 상기 디바이스가 8-비트 버스 폭을 사용하여 처음 4바이트를 판독하는 경우, 제 1 코드 워드는 변경되지 않고 판독된다. 그러나, 디바이스가 16 비트 버스 폭을 가지는 경우, 판독 커맨드는 제 1 코드 워드와 제 2 코드 워드의 최하위 비트들을 인터리빙하는 값을 리턴시킬 것이다.
더 구체적으로, 8-비트 플래시 디바이스에 대해, 오리지널 8_BIT_magic number 값 0x83838383이 리턴되어야 한다. 16-비트 플래시 디바이스에 대해, 플래시 메모리는 판독 동작동안 16 비트의 데이터를 리턴시켜야 한다. 메모리 제어기(130)가 여전히 8-비트 폭의 버스를 가지는 것으로서 구성되므로 이러한 인터리빙은 16-비트 디바이스에서 발생하며, 따라서 상기 메모리 제어기는 8비트의 최하위 비트들만을 판독하고 8비트의 최상위 비트들은 무시할 것이다. 따라서, 상기 제어기는 0xD7348383의 인터리빙된 값을 판독할 것이다. 리턴된 데이터에 기초하여, IPD는 버스 인터페이스 폭을 검출한다. 이 실시예에 주어진 예들이 오직 8-비트 및 16-비트에 대해서만 설명되지만, 동일한 기법들이 더 높은 비트 폭들을 가지는 인터페이스들에 적용될 수 있다.
소프트웨어 페이지 사이즈 검출
도 3은 메모리 디바이스(130)의 버스 폭 및 페이지 사이즈 모두를 결정하기 위해 사용될 수 있는 메모리 디바이스(130) 내의 예시적인 데이터 구조(300)의 다이어그램이다. 자동 페이지 사이즈 검출 알고리즘을 수행하기 위해, 상기 메모리 디바이스(130)는 상기 메모리 디바이스(130)의 페이지 사이즈를 결정하기 위해 추 가된 "더미 데이터"의 섹션들을 가질 수 있다. 각각의 섹션(305)은 3개의 코드 워드들(310-330)을 포함할 수 있고, 상기 섹션의 나머지는 더미 데이터를 포함한다. 이러한 더미 데이터는 모두 "1"들의 데이터일 수 있거나 제조 이후 플래시 디바이스를 통해 인입되는(come) 디폴트 데이터와 함께 로딩될 수 있다. 그 유일한 조건은 3개의 매직 넘버들(8_BIT_MagicNumber, Config Magic Number, Auto Detection Magic Number) 다음에 저장된 데이터가 상기 데이터에 대해 에러 정정이 수행될 수 있도록 공지된 값이어야 한다는 것이다. 코드 워드들(310 및 320)는 위에서 설명된 바와 같이 버스 폭을 결정하는데 사용될 수 있다. 제 3의 코드 워드는 메모리 디바이스(130)의 페이지 사이즈를 결정하는 알고리즘에 의해 사용될 수 있는 자동 검출 마커일 수 있다. 도 3이 코드 워드들의 예시적인 사이즈를 4바이트로 표시하지만, 다른 사이즈들도 물론 사용될 수 있다. 다양한 실시예들에서, 코드 워드들 각각은 판독 에러들을 최소화하기 위해 매직 넘버들일 수 있다. 상기 알고리즘의 상세 내용들은 아래 도 5의 설명에서 제공될 것이다.
PBL(100)이 마주칠 수 있는 페이지 사이즈들의 범위들은 이들이 지원될 수 있는 최대(MAX) 및 최소(MIN) 허용 가능 페이지 사이즈들을 나타낼 것으로 알려질 것이며, 이는 미리 정의될 수 있다. 몇몇 경우들에서, MAX 및 MIN 페이지 사이즈들은 IPD의 제조 시기에 고정되고, 몇몇 다른 경우들에서, 이들 수들은 IPD의 제조 이후 프로그램 가능하지만 소비자에게 전송되기 전에 고정된다. 각각의 섹션(305)의 사이즈는 MIN 페이지 사이즈와 동일할 수 있다. 지원되는 MAX 및 MIN 페이지 사이즈는 추가될 필요가 있는 섹션들의 수를 결정할 것이다. 상기 섹션들의 수는 다음 비로 표현된다.
섹션들의 수 = (최대 페이지 사이즈 / 최소 페이지 사이즈)
본 발명의 일 실시예에서, 도 3에 도시된 바와 같이, 각각의 섹션(305)의 처음 12 바이트는 매직 넘버들로 마킹될 수 있다. 위에서 설명된 버스 폭 검출 방식과 유사하게, 각각의 섹션(305)의 처음 8 바이트는 8_Bit_Magic number(310) 및 Config Magic Number(320)를 유지할 수 있다. 매직 넘버의 또다른 4바이트인 Auto Detect Magic Number는 상기 처음 8 바이트 다음에 위치될 수 있다. 소프트웨어 페이지 사이즈 검출 방법은 아래에 설명된 알고리즘을 사용하여 페이지 사이즈를 유도하기 위해 Auto Detect Magic Number를 체크할 것이다.
도 4는 도 3에 도시된 예시적인 데이터 구조가 서로 다른 페이지 사이즈들을 가지는 메모리 디바이스들 내에 어떻게 포함되는지를 도시하는 다이어그램이다. 상기 메모리 디바이스(130)의 페이지 사이즈가 변경됨에 따라, 각각의 페이지에 저장될 수 있는 섹션들의 수 역시 변경될 것이다. 모든 섹션들을 조정(fit)할 필요가 있을 수 있는 페이지들의 수는 다음 수식을 사용하여 부착된 디바이스의 페이지 사이즈에 의해 결정될 수 있다:
다수의 예시들이 서로 다른 페이지 사이즈들에 대해 아래에 제공된다. 각각의 예는 도 4에 도식적으로 표현되는데, 이는 3개의 서로 다른 페이지 사이즈들인 512 Kbytes (410), 2 Kbytes (420) 및 4 Kbytes (430)와 연관된 데이터 구조들을 도시한다. 수치적인 예들은 다음과 같다:
MAX 페이지 사이즈 = 4 Kbytes이고 MIN 페이지 사이즈 = 512 바이트라고 가정하면, 섹션들의 수는 8일 것이다. 이는 모든 8개 섹션들을 조정하기 위한 페이지들의 수가:
- 512 바이트 페이지 사이즈 디바이스에 대해서는 8개 페이지(디바이스의 페이지 사이즈가 512 바이트이므로 데이터의 512 바이트의 8개 섹션들을 조정하기 위해 8개 페이지들을 요구함);
- 2 Kbyte 페이지 사이즈 디바이스에 대해서는 2개 페이지(디바이스의 페이지 사이즈가 2 Kbyte이므로, 데이터의 512 바이트의 8개 섹션들을 조정하기 위해 2개 페이지들을 요구함(페이지당 4개의 512-바이트)); 및
- 4 Kbyte 페이지 사이즈 메모리 디바이스에 대해서는 1개 페이지(4 Kbyte 페이지 디바이스에 대해 단일 페이지에서 데이터의 512 바이트들의 8개 섹션들이 조정될 것임)가 될 것임을 의미한다.
아래 도 5의 설명에서 설명될 바와 같이, 페이지 사이즈들의 수는 (도 4에 도시된 "Auto Detect Magic #"로서 예시된) 자동 검출 마커를 카운트함으로써 프로세서 유닛(110)에 의해 직접 결정될 수 있다.
도 5는 플래시 메모리 디바이스의 페이지 사이즈를 결정하기 위한 예시적인 프로세스(500)를 도시하는 흐름도이다. 상기 프로세스는 지원되는 메모리 디바이스들(130)에 대한 페이지 사이즈들의 범위를 결정(즉, MIN 및 MAX 값들을 결정)함으로써 시작할 것이다. 상기 MIN 및 MAX 값들은 미리 세팅된 값들일 수 있다. 마 킹된 섹션들의 수는 이후 MAX 대 MIN 페이지 사이즈 값들의 비를 취함으로써 결정될 수 있다(블록 510). 이후 하드웨어 페이지 사이즈 검출은 상기 메모리 디바이스(130)가 512 바이트보다 더 큰 페이지 사이즈를 가지는지 아닌지의 여부를 결정하기 위해 상기 메모리 제어기(120)에 의해 수행될 수 있다(블록 520). 이후 메모리 디바이스(130)의 버스 폭이 프로세서 유닛(110)에 의해 검출될 수 있다(블록 530). 이후 프로세서 유닛(110)은 자동 검출 마킹을 가지는 페이지들의 수를 검출할 수 있다(블록 540). 프로세서 유닛(110)은 자동 검출 마킹을 가지는 페이지들의 수를 검출하기 위해 판독 동작들의 시퀀스를 수행할 것이다(블록 540). 이후 프로세서 유닛(110)은 자동 검출 마킹을 가지는 판독된 페이지들의 수에 기초하여 상기 메모리 디바이스(130)의 페이지 사이즈를 계산할 수 있다(블록 550). IPD(100)가 NAND 플래시 디바이스에 액세스하고 있는 경우, 상기 IPD(100)는 디바이스 접속 페이지 사이즈가 512 바이트보다 큰지 아닌지의 여부를 검출하기 위해 하드웨어 페이지 사이즈 검출을 사용할 수 있으며, 상기 디바이스에 판독 커맨드를 생성하기 위해 이 정보를 사용한다.
메모리 디바이스(130) 내의 데이터가 페이지들에 저장될 수 있으므로, 메모리 제어기(120)로부터 메모리 디바이스(130)로의 액세스는 전체 페이지의 액세스를 초래할 수 있다. 따라서, 상기 메모리 디바이스(130)와 연관된 기록 혹은 판독은 페이지 지향형일 것이다. 더 큰 페이지 사이즈를 가지는 메모리 디바이스(130)가 더 많은 수의 섹션들(305)을 저장할 수 있으므로, 메모리 디바이스(130)로부터 데이터를 판독하는 메모리 제어기(120)는 매직 넘버들을 포함하는 더 적은 페이지들 을 판독할 것이다. 메모리 디바이스(130) 내의 처음 2개 페이지들이 올바른 자동 검출 마킹들(예를 들어, 매직 넘버들)로 마킹되는 경우, 프로세서 유닛(110)은 부착된 디바이스가 아래에 나타난 공식 (512 * 8/2 = 2 K) 을 사용하여 2 Kbyte의 페이지 사이즈를 가진다고 결론내릴 수 있다. 자동 검출 마커가 제 2 페이지가 아닌 제 1 페이지에만 제공되는 경우, 부착된 디바이스가 아래에 나타난 공식 (512 * 8/1 = 4K)에 다시 기초하여 4 Kbyte 페이지 사이즈를 초과한다고 결론내릴 수 있다.
디바이스의 페이지 사이즈는 아래 공식을 사용하여 알 수 있다:
메모리 디바이스의 페이지 사이즈 및 버스 폭이 결정되면, 메모리 제어기(120)는 이제 올바른 세팅들로 구성될 수 있다.
도 6은 메모리 디바이스와 연관된 파라미터들을 결정하기 위한 또다른 예시적인 프로세스(600)를 도시하는 흐름도이다. 처음에, MAX 페이지 사이즈 및 MIN 페이지 사이즈가 통상적으로 미리 정의된 값들이므로 이들이 획득될 수 있다(블록 615). 자동 페이지 검출 마커로 마킹된 섹션들의 수가 계산될 수 있다(블록 620). 이후, 필요하다면, 페이지 사이즈가 512 바이트 초과인지의 여부를 결정하기 위해 하드웨어 페이지 사이즈 검출이 수행될 수 있다(블록 625). 필요치 않은 경우, 이 단계는 스킵될 수 있다.
블록(630)은 다음 동작들을 수행할 수 있다: 매직 넘버로 마킹된 최대 페이 지들을 마킹된 MAX 페이지들로 세팅한다; 매직 넘버에 대한 바이트 위치를 8로 세팅한다; 그리고 상기 디바이스로부터 데이터를 저장하기 위해 포인터 위치를 세팅한다. 다음, 매직 넘버로 마킹된 페이지들의 수를 검출하는 함수 호출(상기 함수 호출의 상세 내용들은 아래 도 7 및 관련 설명에 제공됨)이 호출될 수 있다(블록 635). 상기 함수 호출은 Auto Detect Magic Number를 가지는 판독된 페이들의 수를 리턴할 수 있다. 이후 상기 함수 호출에 의해 리턴된 페이지들의 수가 0인지의 여부를 체크하기 위한 조건문이 수행될 수 있다(블록 640). 만약 그렇다면, 구성 데이터로부터 판독하기 위한 페이지 수는 0으로 세팅되고(블록 645), 프로세스는 리턴된다. 만약 블록 640에서 마킹된 페이지들의 수가 0이 아닌 경우, 디바이스 페이지 사이즈가 계산되고(블록 650), 이후 상기 프로세스는 리턴된다.
도 7은 자동 검출 마커들의 수를 카운트하기 위한 예시적인 프로세스를 도시하는 흐름도이다. 처음에, 다음 파라미터들이 획득될 수 있다: 매직 넘버로 마킹된 MAX 페이지들, 상기 매직 넘버에 대한 바이트 위치(이 값으로서 "x"를 세팅함(일 예로, 상기 위치는 8로서 도시됨)), 및 데이터를 저장하기 위한 포인터 위치가 상기 디바이스로부터 판독될 수 있다(블록 715). 이후 판독된 페이지들의 수는 0으로 초기화될 수 있다(블록 720). 판독된 페이지들의 수가 매직 넘버로 마킹된 최대 페이지들보다 적은지 혹은 이와 동일한지의 여부를 결정하기 위한 조건문이 수행될 수 있다(블록 725). 만약 그렇다면, 상기 페이지가 판독될 수 있고(블록 730), 이후 판독된 페이지의 바이트 "x"가 코드 워드로 마킹되는지의 여부를 체크하기 위한 또다른 조건문이 수행될 수 있다(블록 735). 만약 그렇다면, 페이지 카 운터가 증분되고(블록 755), 상기 프로세스는 블록 725로 리턴된다. 블록(735)에서의 조건이 실패하는(fail) 경우, 판독된 페이지들의 수가 매직 넘버로 마킹된 페이지들의 최대 수보다 적거나 이와 동일한지의 여부를 결정하기 위한 또다른 조건문 체크가 수행될 수 있다(블록 740). 블록 (740)에서 수행된 조건문이 참(true)인 경우, 상기 프로세스(700)는 판독된 페이지들의 수를 리턴시키고(블록 750), 블록(740)에서의 조건문이 거짓인 경우, 에러 제어 처리기가 호출된다(블록 745). 또한, 블록(725)에서 수행된 조건문이 거짓인 경우에도 상기 에러 처리기가 호출된다(블록 745).
메모리 제어기(120)는 블록(735)에서 매직 넘버에 대해 바이트 x를 체크하기 전에 블록(730)에서 판독된 데이터에 대해 에러 정정을 수행할 수 있다. 메모리 제어기(120)는 상기 에러 정정 체크 동안 데이터 무결성을 체크할 수 있다. 이러한 에러 정정 체크의 결과는 다음을 포함할 수 있다. 상기 제어기는 디바이스로부터 판독된 데이터가 손상되지 않았으며(intact), 어떠한 에러도 검출되지 않았음을 검출할 수 있다. 이러한 경우, 프로세싱은 그에 따라(accordingly) 진행할 것이다. 대안적으로, 제어기(120)는 에러들을 검출할 수 있으며, 여기서 검출된 에러들의 수는 (사용된 ECC 알고리즘에 기초하여) 정정가능한 에러들의 최대 수보다 적다. 이러한 경우, 제어기(120)는 에러들을 정정하고 이후 그에 따라 진행할 것이다. 대안적으로, 제어기(120)는 정정될 수 없는 에러들을 검출할 수 있다. 이러한 경우, 제어기(120)는 프로세싱 제어를 에러 처리기로 리턴시킬 수 있다. 에러 정정은 상기 디바이스에 저장된 매직 넘버들에 대해 랜덤 에러들에 대한 추가적인 방지를 제공할 것이다.
본 발명의 다양한 실시예들은 ECC 동작들을 인에이블시켜서, 그 결과, 페이지 검출 프로세스의 무결성은 종래의 ECC 알고리즘 뿐만 아니라 매직 넘버들에 의해서도 보호될 수 있다. 이러한 방식들의 조합은 플래시 디바이스들의 페이지 사이즈를 결정하기 위해 더 로버스트(robust)한 방식을 제공할 수 있다.
도 8은 더미 데이터의 섹션을 가지는 또다른 예시적인 데이터 구조(800)를 도시하는 다이어그램이다. 시스템 요건들에 기초하여, 구성 데이터는 Auto Detect Magic Number를 가지는 마지막 페이지 다음의 페이지에 저장될 수 있거나, 혹은 도 8에 도시된 바와 같이 더미 데이터의 다수 페이지들이 Auto Detect Magic Number를 가지는 마지막 페이지와 구성 데이터 사이에 추가될 수 있다. 더미 데이터를 가지는 페이지들의 수 역시 IPD에 대해 미리 정의될 수 있어서, 디바이스 페이지 사이즈를 검출한 이후 상기 IPD는 더미 데이터 페이지들을 스킵하고 상기 구성 데이터를 판독할 수 있다. 도 8에서, 처음 2개 페이지들(페이지 0 및 페이지 1)만을 검출한 IPD는 Auto Detect Magic Number를 가진다. 위에서 주어진 예시와 같이, MIN 페이지 사이즈가 512 바이트인 경우, Auto Detect Magic Number를 가지는 섹션들의 수 = 8이고, 위의 공식에 기초하여, 디바이스 페이지 사이즈 = 2 Kbyte (512 * 8/2)이다. 이는 또한 더미 데이터의 2개 페이지들을 가지며, 따라서, IPD는 제 2 부트 코드를 판독하기 위해 페이지 번호 4로 점프할 것이다. Auto Detect Magic Number를 가지는 마지막 페이지 다음에 IPD가 어떠한 더미 데이터 페이지들도 삽입하지 않는 것이 가능하며, 어느 경우든, 상기 IPD는 도 8에 도시된 바와 같이 페이 지 2로부터 제 2 코드를 판독하기 시작할 것이다.
당업자는 정보 및 신호들이 다양한 서로 다른 기술들 및 기법들 중 임의의 것을 사용하여 표현될 수 있음을 이해할 것이다. 예를 들어, 위의 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압, 전류, 전자기파, 자기장 혹은 자기 입자, 광학장 또는 광학 입자, 혹은 이들의 임의의 조합으로 표현될 수 있다.
또한, 당업자는 여기에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 및 이들 모두의 조합들로 구현될 수 있음을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호교환가능성을 명확하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들이 그들의 기능의 측면에서 일반적으로 위에 설명되었다. 이러한 기능이 하드웨어로 구현될지 소프트웨어로 구현될지의 여부는 전체 시스템에 부과된 설계 제약들 및 특정 어플리케이션에 따른다. 당업자는 각각의 특정 어플리케이션에 대해 변경하는 방식들로 상기 설명된 기능들을 구현할 수 있지만, 이러한 구현 결정이 본 발명의 범위로부터의 이탈을 야기하는 것으로서 해석되지 않아야 한다.
여기에 설명된 실시예들과 관련하여 설명된 방법들, 시퀀스들, 및/또는 알고리즘들은 직접 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 혹은 이 둘의 조합으로 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 혹은 당해 기술분야에 공 지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체가 상기 프로세서에 연결되어 상기 프로세서는 상기 저장 매체로부터 정보를 판독하고 상기 저장 매체에 정보를 기록할 수 있다. 대안적으로, 상기 저장 매체는 상기 프로세서에 일체화될 수 있다.
따라서, 본 발명의 실시예는 메모리 페이지 사이즈 자동 검출을 위한 방법을 구현하는 컴퓨터 판독가능 매체를 포함할 수 있다. 따라서, 본 발명은 예시된 예들에 제한되는 것이 아니며, 여기에 설명된 기능을 수행하기 위한 임의의 수단이 본 발명의 실시예들에 포함된다.
전술된 개시물들이 본 발명의 예시적인 실시예들을 도시하지만, 다양한 변경들 및 수정들이 첨부된 청구항들에 정의된 바와 같이 본 발명의 범위로부터 벗어남이 없이 여기서 이루어 질 수 있다는 점이 주목되어야 한다. 여기에 설명된 본 발명의 실시예들에 따른 방법 청구항들의 기능들, 단계들 및/또는 동작들은 임의의 특정 순서로 수행될 필요는 없다. 더욱이, 본 발명의 엘리먼트들이 단수로 설명되거나 청구될 수 있지만, 단수에 대한 제한이 명시적으로 언급되지 않는 한 복수가 참작된다.
Claims (25)
- 메모리 디바이스의 페이지 사이즈를 자동으로 결정하기 위한 방법으로서,상기 메모리 디바이스의 페이지 사이즈 범위(extent)들을 수신하는 단계;상기 메모리 디바이스의 버스 폭을 결정하는 단계;자동 검출 마커(marker)를 가지는 페이지들의 수를 검출하는 단계; 및상기 수신된 페이지 사이즈 범위들 및 상기 자동 검출 마커를 가지는 검출된 페이지들의 수에 기초하여 상기 메모리 디바이스의 페이지 사이즈를 결정하는 단계를 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제1항에 있어서,상기 페이지 사이즈 범위들은 상기 메모리 디바이스에 대한 최대 가능 페이지 사이즈 및 최소 가능 페이지 사이즈를 포함하고, 상기 방법은,상기 최대 가능 페이지 사이즈 및 상기 최소 가능 페이지 사이즈의 비를 계산함으로써 마킹된(marked) 섹션들의 수를 결정하는 단계를 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제1항에 있어서,상기 버스 폭을 결정하는 단계는,제 1의 4바이트 워드 및 제 2의 4바이트 워드를 상기 메모리 디바이스에서 인접하게 제공하는 단계;메모리 제어기가 8비트 모드로 구성될 때 상기 메모리 디바이스로부터 제 1의 4바이트를 판독하는 단계; 및상기 판독된 바이트가 상기 제 1의 4바이트 워드 및 상기 제 2의 4바이트 워드의 인터리빙에 대응하는지의 여부를 결정하는 단계 ― 상기 인터리빙은 16-비트 버스 폭을 가지는 메모리 디바이스에 대응함 ― 를 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제3항에 있어서,상기 제 1의 4바이트 워드는 제 1 매직 넘버(magic number)에 대응하고, 상기 제 2의 4바이트 워드는 제 2 매직 넘버에 대응하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제1항에 있어서,상기 페이지들의 수를 검출하는 단계는,상기 메모리 디바이스로부터 일련의 페이지들을 순차적으로 판독하는 단계; 및상기 자동 검출 마커를 포함하는 페이지들의 수를 카운트하는 단계를 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제5항에 있어서,상기 메모리 디바이스로부터 데이터의 페이지를 판독하는 단계; 및상기 데이터가 상기 자동 검출 마커를 포함하는지의 여부를 테스트하는 단계를 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제6항에 있어서,상기 데이터가 상기 자동 검출 마커를 포함한다고 결정되는 경우,판독된 페이지들의 수에 대응하는 카운터를 증분시키는 단계; 및상기 데이터가 상기 자동 검출 마커를 포함하지 않을 때까지 상기 페이지를 판독하는 단계 및 상기 테스트하는 단계를 반복하는 단계를 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제7항에 있어서,상기 데이터가 상기 자동 검출 마커를 포함하지 않는다고 결정되는 경우,상기 카운터가 상기 자동 검출 마커로 마킹된 페이지들의 최대 수를 초과하는지의 여부를 결정하고, 만약 초과한다면, 에러 상태를 시그널링하는 단계를 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제1항에 있어서,상기 자동 검출 마커는 매직 넘버인,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제2항에 있어서,상기 마킹된 섹션들의 수와 상기 최소 가능 페이지 사이즈의 곱(product)을 결정함으로써 상기 메모리 디바이스의 페이지 사이즈를 계산하는 단계, 및상기 자동 검출 마커를 가지는 페이지들의 수로 상기 곱을 나누는 단계를 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제1항에 있어서,상기 메모리 디바이스가 더 작은 페이지 사이즈를 사용하는지 더 큰 페이지 사이즈를 사용하는지를 하드웨어로 결정하는 단계를 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제1항에 있어서,판독 초기화 커맨드를 수행하는 단계; 및상기 메모리 디바이스가 미리 결정된 시간 이후에 사용중(busy)인지의 여부를 결정하도록 체크하는 단계를 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제2항에 있어서,상기 섹션들의 수로 나누어진 데이터를 상기 메모리 디바이스 상에 제공하는 단계를 더 포함하고, 각각의 섹션은 적어도 하나의 코드 워드, 상기 자동 검출 마커, 및 더미(dummy) 데이터를 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제13항에 있어서,상기 적어도 하나의 코드 워드는 NAND_8_BIT 코드워드 및 구성 번호를 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제14항에 있어서,상기 적어도 하나의 코드 워드 및 상기 자동 검출 마커는 매직 넘버들인,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 제1항에 있어서,상기 메모리 디바이스는 NAND 플래시 메모리, m-시스템 플래시 메모리, 또는 OneNAND 플래시 메모리를 포함하는,페이지 사이즈를 자동으로 결정하기 위한 방법.
- 메모리 디바이스의 페이지 사이즈를 자동으로 결정하기 위한 장치로서,상기 메모리 디바이스의 페이지 사이즈 범위들을 수신하도록 구성된 로직;상기 메모리 디바이스의 버스 폭을 결정하도록 구성된 로직;자동 검출 마커를 가지는 페이지들의 수를 검출하도록 구성된 로직; 및상기 수신된 페이지 사이즈 범위들 및 상기 자동 검출 마커를 가지는 검출된 페이지들의 수에 기초하여 상기 메모리 디바이스의 페이지 사이즈를 결정하도록 구성된 로직을 포함하는,페이지 사이즈를 자동으로 결정하기 위한 장치.
- 제17항에 있어서,상기 페이지 사이즈 범위들은 상기 메모리 디바이스에 대한 최대 가능 페이지 사이즈 및 최소 가능 페이지 사이즈를 포함하고, 상기 장치는,상기 최대 가능 페이지 사이즈 및 상기 최소 가능 페이지 사이즈의 비를 계산함으로써 마킹된(marked) 섹션들의 수를 결정하도록 구성된 로직을 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 장치.
- 제17항에 있어서,상기 버스 폭을 결정하기 위한 로직은,제 1의 4바이트 워드 및 제 2의 4바이트 워드를 상기 메모리 디바이스에서 인접하게 제공하도록 구성된 로직;메모리 제어기가 8비트 모드로 구성될 때 상기 메모리 디바이스로부터 제 1의 4바이트를 판독하도록 구성된 로직; 및상기 판독된 바이트가 상기 제 1의 4바이트 워드 및 상기 제 2의 4바이트 워드의 인터리빙에 대응하는지의 여부를 결정하도록 구성된 로직 ― 상기 인터리빙은 16-비트 버스 폭을 가지는 메모리 디바이스에 대응함 ― 을 더 포함하고,상기 제 1의 4바이트 워드는 제 1 매직 넘버에 대응하고, 상기 제 2의 4바이트 워드는 제 2 매직 넘버에 대응하는,페이지 사이즈를 자동으로 결정하기 위한 장치.
- 제17항에 있어서,상기 페이지들의 수를 검출하기 위한 로직은,상기 메모리 디바이스로부터 일련의 페이지들을 순차적으로 판독하도록 구성된 로직;상기 자동 검출 마커를 포함하는 페이지들의 수를 카운트하도록 구성된 로직;상기 메모리 디바이스로부터 데이터의 페이지를 판독하도록 구성된 로직; 및상기 데이터가 상기 자동 검출 마커를 포함하는지의 여부를 테스트하도록 구성된 로직을 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 장치.
- 제20항에 있어서,상기 데이터가 상기 자동 검출 마커를 포함한다고 결정되는 경우,상기 판독된 페이지들의 수에 대응하는 카운터를 증분시키도록 구성된 로직; 및상기 데이터가 상기 자동 검출 마커를 포함하지 않을 때까지 상기 페이지의 판독 및 상기 테스트를 반복하도록 구성된 로직을 더 포함하고,상기 데이터가 상기 자동 검출 마커를 포함하지 않는다고 결정되는 경우,상기 카운터가 상기 자동 검출 마커로 마킹된 페이지들의 최대 수를 초과하는지의 여부를 결정하고, 만약 초과한다면, 에러 상태를 시그널링하도록 구성된 로직을 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 장치.
- 제18항에 있어서,상기 마킹된 섹션들의 수와 상기 최소 가능 페이지 사이즈의 곱을 결정함으로써 상기 메모리 디바이스의 페이지 사이즈의 계산, 및 상기 자동 검출 마커를 가지는 페이지들의 수로 상기 곱을 나누는 것을 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 장치.
- 메모리 디바이스의 페이지 사이즈를 자동으로 결정하기 위한 장치로서,상기 메모리 디바이스의 페이지 사이즈 범위들을 수신하기 위한 수단;상기 메모리 디바이스의 버스 폭을 결정하기 위한 수단;자동 검출 마커를 가지는 페이지들의 수를 검출하기 위한 수단; 및상기 수신된 페이지 사이즈 범위들 및 상기 자동 검출 마커를 가지는 검출된 페이지들의 수에 기초하여 상기 메모리 디바이스의 페이지 사이즈를 결정하기 위한 수단을 포함하는,페이지 사이즈를 자동으로 결정하기 위한 장치.
- 제23항에 있어서,상기 페이지 사이즈 범위들은 상기 메모리 디바이스에 대한 최대 가능 페이지 사이즈 및 최소 가능 페이지 사이즈를 포함하고, 상기 장치는,상기 최대 가능 페이지 사이즈 및 상기 최소 가능 페이지 사이즈의 비를 계산함으로써 마킹된 섹션들의 수를 결정하기 위한 수단을 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 장치.
- 제23항에 있어서,상기 메모리 디바이스로부터 일련의 페이지들을 순차적으로 판독하기 위한 수단; 및상기 자동 검출 마커를 포함하는 페이지들의 수를 카운트하기 위한 수단을 더 포함하는,페이지 사이즈를 자동으로 결정하기 위한 장치.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US91790107P | 2007-05-14 | 2007-05-14 | |
US60/917,901 | 2007-05-14 | ||
US97654307P | 2007-10-01 | 2007-10-01 | |
US60/976,543 | 2007-10-01 | ||
US12/119,587 US7873779B2 (en) | 2007-05-14 | 2008-05-13 | Memory page size auto detection |
US12/119,587 | 2008-05-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100013323A true KR20100013323A (ko) | 2010-02-09 |
KR101026633B1 KR101026633B1 (ko) | 2011-04-04 |
Family
ID=40028695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097026040A KR101026633B1 (ko) | 2007-05-14 | 2008-05-14 | 메모리 페이지 사이즈 자동 검출 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7873779B2 (ko) |
EP (1) | EP2156300B1 (ko) |
JP (1) | JP5378360B2 (ko) |
KR (1) | KR101026633B1 (ko) |
CN (1) | CN101681301B (ko) |
TW (1) | TW200903252A (ko) |
WO (1) | WO2008143950A2 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101482971B1 (ko) * | 2014-06-25 | 2015-01-16 | 주식회사 엔트리브 | 듀얼 에뮬레이터를 이용한 실시간 데이터 백업시스템 및 백업방법 |
KR20150041004A (ko) * | 2012-08-02 | 2015-04-15 | 시게이트 테크놀로지 엘엘씨 | 비-휘발성 메모리에 대한 혼합된 입도 상위-레벨 리던던시 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8370718B2 (en) * | 2009-04-08 | 2013-02-05 | Stmicroelectronics S.R.L. | Method for identifying a flash memory device and related hosting device |
US8112551B2 (en) * | 2009-05-07 | 2012-02-07 | Cypress Semiconductor Corporation | Addressing scheme to allow flexible mapping of functions in a programmable logic array |
US8281065B2 (en) * | 2009-09-01 | 2012-10-02 | Apple Inc. | Systems and methods for determining the status of memory locations in a non-volatile memory |
US8375173B2 (en) * | 2009-10-09 | 2013-02-12 | Qualcomm Incorporated | Accessing a multi-channel memory system having non-uniform page sizes |
CN102402485B (zh) * | 2010-09-16 | 2014-05-28 | 安凯(广州)微电子技术有限公司 | Nandflash参数探测方法 |
US8417880B2 (en) | 2010-11-01 | 2013-04-09 | Hong Kong Applied Science and Technology Research Institute Company Limited | System for NAND flash parameter auto-detection |
TWI467579B (zh) * | 2011-01-14 | 2015-01-01 | Mstar Semiconductor Inc | 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 |
KR20130096881A (ko) * | 2012-02-23 | 2013-09-02 | 삼성전자주식회사 | 플래시 메모리 장치 |
US9026887B2 (en) | 2012-03-15 | 2015-05-05 | Micron Technology, Inc. | Physical page, logical page, and codeword correspondence |
US8719519B2 (en) * | 2012-03-30 | 2014-05-06 | Intel Corporation | Split-word memory |
US9519591B2 (en) * | 2013-06-22 | 2016-12-13 | Microsoft Technology Licensing, Llc | Latch-free, log-structured storage for multiple access methods |
KR102065665B1 (ko) | 2013-10-17 | 2020-01-13 | 삼성전자 주식회사 | 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102265052B1 (ko) | 2014-12-17 | 2021-06-15 | 삼성전자주식회사 | 적응적으로 인터리빙 깊이를 결정하는 인터리빙 방법 및 장치 |
TWI684915B (zh) | 2018-11-28 | 2020-02-11 | 智微科技股份有限公司 | 記憶體區塊大小判定方法 |
CN111273852A (zh) * | 2018-12-04 | 2020-06-12 | 智微科技股份有限公司 | 存储器区块大小判定方法 |
US11113007B2 (en) | 2019-05-13 | 2021-09-07 | Micron Technology, Inc. | Partial execution of a write command from a host system |
TWI779610B (zh) * | 2021-05-17 | 2022-10-01 | 瑞昱半導體股份有限公司 | 偵測快閃記憶體模組的方法及相關的系統晶片 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04346153A (ja) * | 1991-05-24 | 1992-12-02 | Canon Inc | メモリアクセスバス制御方法とその情報処理装置 |
JPH1145206A (ja) * | 1997-07-29 | 1999-02-16 | Casio Comput Co Ltd | 電子装置、メモリ起動方法及びメモリ起動プログラムを記録した記録媒体 |
US7657696B2 (en) | 2005-02-25 | 2010-02-02 | Lsi Corporation | Method to detect NAND-flash parameters by hardware automatically |
US8171192B2 (en) | 2005-09-20 | 2012-05-01 | Qualcomm Incorporated | Hardware-assisted device configuration detection |
-
2008
- 2008-05-13 US US12/119,587 patent/US7873779B2/en active Active
- 2008-05-14 JP JP2010508430A patent/JP5378360B2/ja not_active Expired - Fee Related
- 2008-05-14 WO PCT/US2008/006256 patent/WO2008143950A2/en active Application Filing
- 2008-05-14 TW TW097117730A patent/TW200903252A/zh unknown
- 2008-05-14 CN CN2008800158111A patent/CN101681301B/zh not_active Expired - Fee Related
- 2008-05-14 KR KR1020097026040A patent/KR101026633B1/ko not_active IP Right Cessation
- 2008-05-14 EP EP08767725.8A patent/EP2156300B1/en not_active Not-in-force
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150041004A (ko) * | 2012-08-02 | 2015-04-15 | 시게이트 테크놀로지 엘엘씨 | 비-휘발성 메모리에 대한 혼합된 입도 상위-레벨 리던던시 |
KR101482971B1 (ko) * | 2014-06-25 | 2015-01-16 | 주식회사 엔트리브 | 듀얼 에뮬레이터를 이용한 실시간 데이터 백업시스템 및 백업방법 |
WO2015199345A1 (ko) * | 2014-06-25 | 2015-12-30 | 주식회사 엔트리브 | 듀얼 에뮬레이터를 이용한 실시간 데이터 백업시스템 및 백업방법 |
Also Published As
Publication number | Publication date |
---|---|
EP2156300B1 (en) | 2018-06-13 |
JP5378360B2 (ja) | 2013-12-25 |
KR101026633B1 (ko) | 2011-04-04 |
CN101681301A (zh) | 2010-03-24 |
TW200903252A (en) | 2009-01-16 |
US7873779B2 (en) | 2011-01-18 |
WO2008143950A3 (en) | 2009-01-29 |
JP2010527484A (ja) | 2010-08-12 |
EP2156300A2 (en) | 2010-02-24 |
CN101681301B (zh) | 2012-06-27 |
US20080288715A1 (en) | 2008-11-20 |
WO2008143950A2 (en) | 2008-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101026633B1 (ko) | 메모리 페이지 사이즈 자동 검출 | |
US7873778B2 (en) | Apparatus for storing page data | |
US7822965B2 (en) | BIOS file switching method and controller device thereof | |
US8006030B2 (en) | Memory controller for identifying the last valid page/segment in a physical block of a flash memory | |
US7428180B2 (en) | Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices | |
US8375257B2 (en) | ECC control circuits, multi-channel memory systems including the same, and related methods of operation | |
US7203091B2 (en) | Semiconductor integrated circuit device and non-volatile memory system using the same | |
US7434111B2 (en) | Non-volatile memory system having a pseudo pass function | |
KR101369573B1 (ko) | 고체상태 소자들의 객체 지향 메모리 | |
US20070234143A1 (en) | Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices | |
US20070170268A1 (en) | Memory cards, nonvolatile memories and methods for copy-back operations thereof | |
US20140189465A1 (en) | Methods, devices, and systems for data sensing | |
US10268540B2 (en) | Data storage device and operating method thereof | |
WO2015047688A1 (en) | Updating read voltages | |
US20080072119A1 (en) | Allowable bit errors per sector in memory devices | |
US9105359B2 (en) | Nonvolatile memory device and error correction methods thereof | |
WO2006067791A2 (en) | A method for using a multi-bit cell flash device in a system not designed for the device | |
CN108806758B (zh) | 存储器装置及验证数据路径完整性的方法 | |
US10056125B2 (en) | Data storage device and operating method thereof | |
TW202328922A (zh) | 借助緩衝器使用減少控制來進行記憶體裝置之存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的控制器 | |
CN117608501A (zh) | 电压调整方法、存储器存储装置及存储器控制电路单元 | |
US20120331205A1 (en) | Memory controller and method of operating the same, and memory system including the same |
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: 20140227 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150227 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20151230 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20161229 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20171228 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |