KR100493884B1 - 시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩 - Google Patents

시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩 Download PDF

Info

Publication number
KR100493884B1
KR100493884B1 KR10-2003-0001449A KR20030001449A KR100493884B1 KR 100493884 B1 KR100493884 B1 KR 100493884B1 KR 20030001449 A KR20030001449 A KR 20030001449A KR 100493884 B1 KR100493884 B1 KR 100493884B1
Authority
KR
South Korea
Prior art keywords
serial flash
data
controller
read
flash
Prior art date
Application number
KR10-2003-0001449A
Other languages
English (en)
Other versions
KR20040064149A (ko
Inventor
서재유
박찬익
임재민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR10-2003-0001449A priority Critical patent/KR100493884B1/ko
Priority to JP2003358406A priority patent/JP2004220557A/ja
Priority to US10/694,832 priority patent/US7302517B2/en
Priority to CNB2003101247323A priority patent/CN1282089C/zh
Publication of KR20040064149A publication Critical patent/KR20040064149A/ko
Application granted granted Critical
Publication of KR100493884B1 publication Critical patent/KR100493884B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44573Execute-in-place [XIP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Abstract

본 발명은 낸드형 플래시 메모리에서의 현지 실행을 위한 제어 장치 및 그 방법, 이를 이용한 플래시 메모리 칩에 관한 것이며, 소정의 저장 용량을 갖는 Serial FLASH 컨트롤러 장치에서 Serial FLASH에 접근하여 필요한 데이터가 속한 페이지 전체를 읽어들여 주 제어부로 요구된 데이터를 전송하거나 실행시켜 Serial FLASH에서의 XIP 기능 지원이 가능하도록 하는 것을 목적으로 한다.
이를 위해 Serial 플래시에서의 현지 실행을 위한 제어 장치는 시스템 인터페이스부를 통해 수신되는 주 제어부의 명령어에 따라 Serial FLASH의 지정된 메모리 주소를 액세스하여 상기 주 제어부로부터 요구된 데이터를 판독하거나 기록하는 캐시 모듈, Serial FLASH에 기록된 부트 코드를 독출하여 버퍼에 저장하고 상기 주 제어부로부터 부트 코드가 요구되면 바로 전송하여 시스템 부팅이 실행되도록 하는 부팅 로더가 구비되는 시리얼 플래시 컨트롤러, 캐시 모듈 및 시리얼 플래시 컨트롤러와 Serial FLASH간의 데이터 송/수신을 처리하는 플래시 인터페이스부를 포함하는 것을 특징으로 한다.

Description

시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치 및 그 방법, 이를 이용한 플래시 메모리 칩{CONTROL APPARATUS AND METHOD FOR XIP(EXECUTION IN PLACE) IN SERIAL FLASH MEMORY AND FLASH MEMORY CHIP USING THE SAME}
본 발명은 직렬형 플래시 메모리에서의 현지 실행을 위한 제어 장치 및 그 방법, 이를 이용한 플래시 메모리 칩에 관한 것으로서, 특히 소정의 저장 용량을 갖는 하드웨어 컨트롤러를 통해 직렬형 플래시 메모리에 접근하여 필요한 데이터를 액세스하거나 실행시키는 것이 가능하도록 하는 직렬형 플래시 메모리에서의 현지 실행을 위한 제어 장치 및 그 방법, 이를 이용한 플래시 메모리 칩에 관한 것이다.
일반적으로 플래시 메모리는 롬(Read Only Memory : ROM)과 같이 한번 기록한 내용을 전원이 공급되지 않더라도 보존하는 비휘발성을 가지면서도 쓰기가 가능한 메모리로서, 제조 방법에 따라 크게 비트선과 접지선 사이에 셀이 병렬로 배치되는 구조의 병렬형 플래시 메모리(Parallel Flash Memory;이하, Parallel Flash라칭함)와 직렬로 배치되는 구조의 직렬형 플래시 메모리(Serial Flash Memory;이하, Serial Flash라 칭함)로 나눌 수 있다.
Parallel Flash는 대표적으로 EEPROM(Electrically Erasable Programmable Read Only Memory), NOR 및 NOR 형의 변형 구조인 DINOR(Divided Bit-line NOR)형으로 이루어지는데, 셀 순서에 관계없이 임의의 번지를 읽거나 기록하는 방식(Random Access)로 바이트 단위의 접근이 가능한 디바이스 이다.
그러나, Parallel Flash는 셀마다 비트선의 접촉 전극이 필요하므로 직렬형 플래시에 비해 셀 면적이 커지는 단점이 있다.
Serial Flash는 대표적으로 NAND, AND로 이루어지는데, 먼저 해당 블록을 선택한 후 직렬로 연결된 각 셀을 읽는 방식으로 블록을 기본 단위로 하여 액세스가 이루어지는 블록 디바이스이다.
Serial Flash에서 블록은 한번의 삭제 연산으로 지울 수 있는 단위를 나타내는 것이고, 페이지(page)는 판독/기록 연산 시에 읽거나 기록할 수 있는 데이터 크기를 의미한다.
이러한, Serial Flash는 Parallel Flash에 비해 쓰기 속도가 빠르고 가격이 비교적 싸며 고용량화 하기가 쉬운 장점이 있어 큰 데이터를 저장하기 위한 용도로 널리 사용되고 있는데, 바이트 단위의 접근이 불가능하여 기록된 데이터를 주 메모리로 옮기지 않고 바로 실행할 수 있는 현지 실행(eXcute In Place; 이하, XIP 라 칭함) 기능을 제공하지 못한다.
이에 따라, 통상적으로는 Serial Flash는 보조적인 데이터 저장 장치로 사용하고 ROM에 시스템 부팅을 위한 부트 코드(Boot code)를 저장하거나, Serial Flash를 나누어 부트 코드와 데이터를 관리하도록 한다.
이에 따라, 통상적으로 Serial FLASH는 보조적인 데이터 저장 장치로 사용하고, XIP가 가능한 NOR 플래시 메모리나 ROM에 시스템 부팅을 위한 부트 코드를 저장하였다.
도 1의 a는 종래의 NOR 플래시 메모리를 이용한 시스템 부팅 과정을 나타낸 것이고, 도 1의 b는 Serial Flash를 이용한 시스템 부팅 과정을 나타낸 것이다.
도 1의 a에 도시된 바와 같이, NOR 플래시 메모리는 바이트(byte)단위 접근이 가능하기 때문에 시스템의 주 제어부에서 시스템 부팅을 위한 운영체제(OS) 이미지 및 데이터를 포함하는 OS 부트 코드를 NOR 플래시 메모리로부터 바로 독출하여 시스템 부팅을 실행하게 된다.
도 1의 b에 도시된 바와 같이, Serial FLASH는 NOR 플래시 메모리나 ROM과는 달리 바이트 단위의 액세스가 가능하지 않기 때문에, 시스템 부팅을 위한 데이터를 부트 롬(BOOT ROM)의 부트 로더(Boot loader)로부터 독출하고(1), Serial FLASH로부터 시스템 부팅 시 요구되는 OS 이미지를 포함하는 OS 부트 코드가 속한 페이지 전체를 읽어들여 메인 메모리에 복사한 후 OS 이미지를 독출하여 주 제어부로 전송한다(2).
즉, 시스템 부팅을 위해 주제어부로부터 요구되는 OS 이미지를 제공하기 위해 Serial FLAHS로부터 OS 부트 코드가 속한 페이지 전체를 독출하여 주 메모리에 기록하고, OS 이미지만을 독출하여 주 제어부로 전송함으로써 주 제어부에서 시스템 부팅(OS Loading)을 실행하도록 한다(3).
이와 같이, Serial Flash는 Parallel Flash인 NOR 플래시 메모리나 ROM과는 달리 XIP가 지원되지 않으므로, 시스템 부팅 시 요구되는 OS 부트 코드를 실행시키기 위해서는 메인 메모리에 옮겨 실행시켜야하기 때문에 실행 시간이 지연되며, 메인 메모리에 옮겨진 부트 코드로 인해 메인 메모리에서 사용 가능한 저장공간이 줄어들게 되는 문제점이 있었다.
특히, 최근에는 각종 응용 프로그램 및 부가 기능으로 운영체제(OS)의 크기가 커지는 추세이기 때문에(일 예로, WinCE의 경우 16~32MB), Serial Flash로부터 독출된 부트 코드가 메인 메모리에서 차지하는 용량이 더욱 커져 메인 메모리의 효율을 떨어뜨리는 문제점이 있었다.
따라서, 좀 더 낮은 가격으로 또는 같은 가격에서 좀 더 많은 메모리 용량을 사용하여 프로그램을 저장하고 필요할 경우에는 플래시 메모리 상에서 바로 데이터를 실행할 수 있도록 XIP 기능이 지원되는 Serial FLASH가 요구되고 있는 실정이다.
본 발명은 소정의 저장 용량을 갖는 Serial FLASH 컨트롤러 장치에서 Serial FLASH에 접근하여 필요한 데이터가 속한 페이지 전체를 읽어들여 주 제어부로 요구된 데이터를 전송하거나 실행시켜 Serial FLASH에서의 XIP 기능 지원이 가능하도록 하는 것을 목적으로 한다.
또한, 본 발명의 다른 목적은 XIP 지원이 가능한 Serial FLASH 컨트롤러 장치와 Serial FLASH를 플래시 메모리 칩으로 제공하는 함으로써 기존의 ROM을 플래시 메모리 칩으로 대체하여 사용할 수 있도록 하는 것이다.
본 발명에 따른 Serial FLASH에서의 XIP를 위한 제어 장치는 시스템 인터페이스부를 통해 수신되는 주 제어부의 명령어에 따라 Serial FLASH의 지정된 메모리 주소를 액세스하여 주 제어부로부터 요구된 데이터를 판독하거나 기록하는 캐시 모듈, Serial FLASH에 기록된 부트 코드를 독출하여 버퍼에 저장하고 주 제어부로부터 부트 코드가 요구되면 바로 전송하여 시스템 부팅이 실행되도록 하는 부트 로더가 구비되는 시리얼 플래시 컨트롤러, 캐시 모듈 또는 시리얼 플래시 컨트롤러와 Serial FLASH간의 데이터 송/수신을 처리하는 플래시 인터페이스부를 포함하는 것을 특징으로 한다.
본 발명에 따른 Serial FLASH에서의 XIP를 위한 제어 방법은 시스템에 전원이 인가되면 Serial FLASH에 접근하여 초기 부팅을 위한 부트 코드를 독출해 버퍼에 저장하는 단계; 부트 코드의 저장이 완료되고 시스템의 주 제어부로부터 부트 코드가 요구되면 버퍼로부터 부트 코드를 독출하여 전송하고 상기 주 제어부로부터 요구되는 연산을 처리하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 따른 Serial FLASH에서의 XIP를 위한 제어 장치를 이용한 플래시 메모리 칩은 Serial형 셀 타입의 Serial FLASH와, Serial FLASH에 접근하여 시스템의 주 제어부로부터 요구되는 연산에 따라 버퍼에 미리 저장된 시스템 부팅을 위한 부트 코드를 바로 제공하거나 지정된 메모리 주소를 액세스하여 해당되는 데이터를 판독 또는 기록하는 컨트롤러를 포함하는 것을 특징으로 한다.
우선, 본 발명에 따른 Serial FLASH에서의 XIP를 위한 제어 장치와 그 방법 및 이를 이용한 플래시 메모리를 첨부된 도면을 참조하여 일 실시 예로 상세히 설명한다.
도 2는 본 발명에 따른 Serial FLASH에서의 XIP를 위한 제어 장치 및 이에 대한 Serial FLASH 액세스 장치를 나타낸 것이다.
도 2에 도시된 바와 같이, Serial FLASH 액세스 장치는 Serial FLASH(100), Serial FLASH(100)에 기록된 데이터를 판독하거나 데이터를 기록하기 위한 제어 명령어를 발생시키는 시스템의 주 제어부(300), 주 제어부(300)에서 발생된 제어 명령어에 따라 Serial FLASH에 접근하여 상응하는 동작 제어를 수행하는 제어 장치(이하, 컨트롤러라 칭함)(500)로 구성된다.
Serial FLASH(100)는 Serial형 셀 타입(cell type)의 플래시 메모리를 나타내는 것으로, 일 예로, Serial FLASH(100) 가운데 528 byte로 구성되는 NAND FLASH의 경우에는 512 byte의 데이터 블록(data)과 16 byte의 여유 블록(spare)으로 이루어진다.
이러한 Serial FLASH의 데이터 블록은 도 1에 별도로 도시된 바와 같이, 초기 운영체계(Operating System:OS) 부팅(booting)을 위한 부트 코드가 기록되는 부트 영역(100KB)(101), 운영체계 및 응용 프로그램이 기록되는 운영체계 영역(20MB)(103), 운영체계 영역(103)에 기록된 프로그램 실행을 위한 데이터가 기록되는 데이터 영역(20MB)(105), 운영체계의 동작 운용 과정에서 발생되는 신호 및 사용자에 의해 입력되는 데이터가 기록되는 파일 시스템(File System;24MB)(107)로 이루어진다.
도 3은 이러한 Serial FLASH 액세스 장치 가운데 본 발명에 따른 Serial FLASH(100)에서의 XIP를 위한 컨트롤러(500)의 구성을 개략적으로 나타낸 블록도이다.
도 3에 도시된 바와 같이, 컨트롤러(500)는 크게 주 제어부(300)와의 신호 송/수신을 위한 시스템 인터페이스부(510), 시스템 인터페이스부(510)를 통해 수신되는 주 제어부(300)의 명령어에 따라 Serial FLASH(100)의 지정된 메모리 주소를 액세스하여 상기 주 제어부(300)로부터 요구된 데이터를 판독하거나 기록하는 캐시 모듈(이하, Cache라 칭함)(530), Serial FLASH(100)에 기록된 부트 코드를 독출하여 버퍼에 저장하고 상기 주 제어부(300)로부터 부트 코드가 요구되면 바로 전송하여 시스템 부팅이 실행되도록 하는 시리얼 플래시 컨트롤러(550), 상기 Cache(530) 또는 시리얼 플래시 컨트롤러(550)과 Serial FLAHS(100)간의 데이터 송/수신을 처리하는 플래시 인터페이스부(570), Serial FLASH 액세스 과정에서 Serial FLASH(100)로부터 독출한 데이터를 임시 저장하기 위한 버퍼(buffer)(미도시)로 구성된다.
이와 같이 구성되는 컨트롤러(500)에서 Cache(530)는 주 제어부(300)에서 Serial FLASH(100)의 데이터를 보다 빠르게 액세스할 수 있도록 하기 위해 제공되는 것으로, 제 2 계층의 캐시 메모리인 L2-Cache로 구성된다.
이러한 Cache(530)는 도 3에 도시한 바와 같이, Cache 컨트롤러(531), 태그 저장부(533), 데이터 저장부(535)로 구성된다.
Cache 컨트롤러(531)는 주 제어부(300)로부터 요구되는 판독 또는 기록 연산 명령에 따라 태그 저장부(533)와 데이터 저장부(535)를 참조하여 Serial FLASH(100)가 효율적으로 액세스될 수 있도록 처리한다.
즉, 주 제어부(300)로부터 특정 메모리 주소에 대한 기록 명령어가 수신되면 Serial FLASH(100)의 해당 주소에 접근하여 기록 연산이 요구되는 데이터를 기록하고, 판독(read) 명령어가 수신되면 태그 저장부(533)를 통해 데이터 저장부(535)에 판독 요구되는 데이터가 저장되어 있는지 여부를 검색한다.
그 결과에 따라 데이터 저장부(535)에서 해당 데이터를 검출해 주 제어부(300)로 전송하거나, Serial FLASH(100)에 접근하여 해당 데이터가 속한 페이지 전체를 읽어들여 버퍼에 저장하여 요구된 데이터를 주 제어부(300)로 전송하며 태그 저장부(533)와 데이터 자장부(535)에 독출된 페이지 및 이에 관한 저장 정보를 기록한다.
태그 저장부(533)는 Cache 컨트롤러(531)에 의해 Serial FLASH(100)로부터 독출된 데이터에 대한 저장정보(일 예로, 독출된 페이지의 Serial FLASH 메모리 주소, 독출된 페이지의 저장 주소)를 기록하는 것으로, Static Random Access Memory(SRAM)로 구성된다.
데이터 저장부(535)는 Cache 컨트롤러(531)의 동작 제어에 따라 Serial FLASH(100)로부터 독출된 데이터를 기록하는 것으로, Static Random Access Memory(SRAM)로 구성된다.
이러한 데이터 저장부(535)는 도 4에 도시한 바와 같이, 캐시 컨트롤러(531)에 의해 Serial FLASH(100)로부터 독출된 페이지를 기록하는 Serial FLASH(100)의 주소 맵(address map)으로 구성되는 것으로, 캐시 컨트롤러(531)에서는 데이터 저장부(535)에 의해 Serial FLASH(100)를 액세스하여 주 제어부(300)로부터 요구되는 데이터를 제공한다.
이와 같은 Cache(530)를 통해 Serial FLASH(100) 액세스 시간을 줄여주고 주 제어부(300)에서의 데이터 판독 또는 기록 연산에 따른 Serial FLASH 액세스가 자유롭게 실행될 수 있게 된다.
즉, 일반적으로 Serial FLASH(100)에 기록된 데이터를 액세스하는데 소요되는 시간은 동일한 페이지 내에 기록된 데이터인 경우에는 정해진 액세스 시간(Access time, 50나노 정도)이 소요되지만, 페이지가 다를 경우에는 약 10㎲으로 상당히 긴 시간인데, Cache(530)를 통해 액세스된 페이지 및 이에 대한 저장정보를 태그 저장부(533)와 데이터 저장부(535)에 기록하여 동일한 페이지의 데이터가 주 제어부(300)로부터 요구될 때 Serial FLASH(100)를 액세스하지 않고 데이터 저장부(535)를 통해 요구되는 데이터를 제공함으로써 한번 액세스된 데이터를 효율적으로 활용하고 액세스 시간이 짧아진다.
또한, 컨트롤러(500)의 시리얼 플래시 컨트롤러(550)은 부트 로더(Boot Loader)(551), 프리패치(Prefetch)(553), 오류검출코드/오류정정코드(Error Detection Code/Error Correction Code;이하, EDC/ECC라 칭함)(555), Decomp(557)로 구성된다.
부트 로더(551)는 시스템 부팅이 효율적으로 이루어지도록 하기 위한 것으로, 전원이 인가되면 Serial FLASH(100)의 부트영역(101)에 기록된 운영체계 프로그램 및 시스템 부팅을 위한 이미지와 같은 초기화 코드(initialize code)를 읽어들여 버퍼에 저장하고 주 제어부(300)가 첫 코드 패치 사이클(code fetch cycle)을 시작하여 부트코드 판독을 요구하면 저장된 초기화 코드를 주 제어부(300)로 전송하여 부팅이 시작되도록 한다.
프리패치(Prefetch)(553), EDC/ECC(555) 및 Decomp(557)는 컨트롤러(500)의 성능향상을 위한 것으로, 프리 패치(553)는 주 제어부(300)의 판독 요구가 예상되는 데이터를 Serial FLASH(100)로부터 데이터를 미리 읽어들여 버퍼에 저장하고, EDC/ECC(555)는 송/수신되는 데이터의 오류를 검출하고 정정하며, Decomp(557)는 시스템 특성에 따라 요구되는 데이터 압축 및 압축 해제를 처리한다
이 Decomp(557)은 시스템 특성에 따라 구비되는 것으로, 필요에 따라 구비되지 않을 수 있다.
이러한 시리얼 플래시 컨트롤러(550)을 통해 시스템의 초기 부팅 시 주 제어부(300)에서 Serial FLASH(100)로부터 부팅에 필요한 데이터를 독출하여 시스템 부팅이 효율적으로 실행 된다.
참고로, 전술한 본 발명의 일 실시 예에 따른 컨트롤러(500)는 각 모듈이 모두 하드웨어로 구성되거나, 일부 모듈이 소프트웨어로 구성되거나, 또는 전체 모듈이 소프트웨어로 구성될 수 있다.
따라서, 본 발명의 일 실시 예에 따른 Serial FLASH에서의 XIP를 위한 컨트롤러가 하드웨어 또는 소프트웨어로 구성되는 것은 본 발명의 사상을 벗어나지 않으며, 본 발명의 사상에서 벗어나지 않으면서 소프트웨어 및/또는 하드웨어로 구성됨에 따른 수정과 변경이 부가될 수 있음은 자명하다.
이와 같이 구성되는 Serial FLASH(100)에서의 XIP를 위한 컨트롤러(500)를 이용하여 컨트롤러(500)와 Serial FLASH(100)를 함께 하나의 칩으로 구성함으로써, XIP 지원이 가능한 Serial FLASH 칩이 된다.
이러한 Serial FLASH 칩을 통해 사용자는 Serial FLASH(100)로 ROM 또는 NOR 플래시 메모리를 대체시킬 있게 된다.
이와 같이 구성되는 Serial FLASH(100)에서의 XIP를 위한 컨트롤러(500)를 통한 Serial FLASH(100)에서의 XIP 방법은 도 5에 도시한 바와 같이 이루어진다.
우선, 시스템에 전원이 인가되면(S1), 컨트롤러(500)의 부트 로더(551)에서는 Serial FLASH(100)의 부트 영역(101)에 접근하여 초기 부팅을 위한 부트 코드를 순차적으로 독출해 버퍼에 저장한다(S2).
그 다음, 컨트롤러(500)에서는 부트 로더(551)에 의해 독출되는 코드의 버퍼 저장이 종료되었는지 여부를 판별하여(S3), 판별결과 코드 저장이 종료되지 않았으면 독출되는 코드를 계속 버퍼에 저장하고 판별결과 코드 저장이 종료되면 주 제어부(300)로부터 요구되는 명령어(일 예로, 특정 주소의 데이터에 대한 판독(read) 또는 기록(write) 연산 제어 신호) 처리를 위해 시스템 인터페이스 모듈(510)을 통해 명령어가 수신되었는지 여부를 판별한다(S4).
판별결과 주 제어부(300)로부터 수신되는 명령어가 없으면 명령어 수신 여부를 판별하는 루틴으로 리턴하고, 수신되는 명령어가 있으면 수신된 명령어에 상응하는 동작 제어를 통해 명령어 처리를 한다(S5).
이러한 동작 과정으로 이루어지는 Serial FLASH(100)에서의 XIP 방법에서 주 제어부(300)로부터 수신되는 명령어에 따른 동작 과정을 첨부된 도면을 참조하여 상세히 설명한다.
도 6은 첫 코드 패치 사이클(code fetch cycle)에 따라 시스템 부팅에 필요한 부팅 코드 데이터를 판독하기 위해 boot read 명령어가 주 제어부(300)로부터 수신된 경우에 대한 처리 과정을 나타낸 것이다.
도 6에 도시한 바와 같이, 주 제어부(300)가 리셋(Reset) 후에 첫 코드 패치 사이클(code fetch cycle)을 시작하면서 주 제어부(300)로부터 boot read 명령어가 수신되면(S11), 컨트롤러(500)에서는 Serial FLASH(100)로부터 독출하여 버퍼에 저장하였던 부팅 코드를 독출하고(S12), 독출된 부트 코드를 주 제어부(300)로 전송한다(S13).
도 7은 Serial FLASH(100)에 기록된 Serial FLASH ID 및 시스템에서 사용되는 장치 요소(device)에 대한 정보를 판독하기 위한 Serial FLASH ID read 명령어가 주 제어부(300)로부터 수신된 경우에 대한 처리 과정을 나타낸 것이다.
도 7에 도시한 바와 같이, 주 제어부(300)로부터 Serial FLASH ID read 명령어가 수신되면(S21), 컨트롤(500)에서는 Cache(530)의 Cache 컨트롤러(531)를 통해 주 제어부(300)부터 요구되는 Serial FLASH ID 데이터를 제공하기 위한 Serial FLASH ID 독출 제어 동작을 수행한다(S22).
Serial FLASH ID 독출 제어 동작은 Serial FLASH(100)에 접근하여 주 제어부(300)로부터 요구되는 Serial FLASH ID 데이터가 속한 페이지를 독출하고, 독출된 페이지를 버퍼에 저장하는 과정으로 이루어진다.
이러한 Cache 컨트롤러(531)에 의한 Serial FLASH ID 독출 제어 동작에 따라 독출되어 버퍼에 저장된 페이지를 통해 주 제어부(300)로부터 요구된 Serial FLASH ID 데이터를 검출하고(S23), 검출된 Serial FLASH ID 데이터를 주 제어부(300)로 전송된다(S24).
도 8은 Serial FLASH(100)에 소정의 데이터를 기록하기 위한 write 명령어가 주 제어부(300)로부터 수신된 경우에 대한 처리 과정을 나타낸 것이다.
도 8에 도시한 바와 같이, 주 제어부(300)로부터 소정의 논리 주소와 함께 write 명령어가 수신되면(S31), 컨트롤러(500)에서는 주 제어부(300)로부터 전송되는 데이터를 수신하여 버퍼에 저장한다(S32).
데이터 수신이 완료되면, Serial FLASH(100)의 사상기법(mapping)에 따라 할당되는 물리 주소를 통해 데이터가 기록될 메모리 주소를 정하고 기록 연산에 따라 변경되는 논리 주소와 물리주소간의 사상정보를 사상 테이블(mapping table)에 기록하는 Serial FLASH 기록 사이클 제어 동작을 수행한다(S33).
이러한 사이클 제어 동작을 통해 데이터가 저장될 주소가 결정되면 버퍼에 저장된 데이터를 독출하여 지정된 Serial FLASH의 물리 주소에 기록한다(S34).
도 9는 Serial FLASH(100)에 기록된 소정의 데이터를 읽어오기 위한 read 명령어가 주 제어부(300)로부터 수신된 경우에 대한 처리 과정을 나타낸 것이다.
도 9에 도시한 바와 같이, 주 제어부(300)로부터 read 명령어가 수신되면(S41), 컨트롤러(500)에서는 Serial FLASH(100)의 사상 테이블을 참조하여 주 제어부(300)로부터 read 명령어와 함께 수신되는 논리주소에 해당되는 데이터가 기록된 물리 주소를 검색한다.
그 다음, 검색된 물리 주소를 통해 Cache(530)의 태그 저장부(533)를 참조하여 검색된 물리 주소의 범위에 해당되는 페이지가 데이터 저장부(535)에 저장되어 있는지 여부를 판별하는 Serial FLASH 판독 사이클 제어를 수행한다(S42).
Serial FLASH 판독 사이클 제어 과정을 통해 주 제어부(300)로부터 판독이 요구되는 데이터가 데이터 저장부(535)에 저장되어 있으면 데이터 저장부(535)로부터 해당되는 데이터를 검출하여 주 제어부(300)로 전송하고, 데이터 저장부(535)에 저장되어 있지 않으면 Serial FLASH(100)에 접근하여 해당되는 물리 주소의 데이터가 속한 페이지 전체를 독출한다(S43).
Cache(530)의 Cache 컨트롤러(531)에서는 독출된 페이지를 버퍼에 저장하고(S44), 판독 요구된 데이터를 검출해 주 제어부(300)로 전송한다(S45).
또한, 독출된 페이지 및 이에 대한 주소 정보를 태그 저장부(533)와 데이터 저장부(535)에 기록한다(S46).
이와 같은 과정으로 이루어지는 본 발명에 따른 Serial FLASH(100)에서의 XIP 방법을 첨부된 도면을 참조하여 일 실시 예로 상세히 설명한다.
시스템에 전원이 인가되면, 컨트롤러(500)에서는 Serial FLASH(100)로부터 초기 부팅을 위한 부트 코드를 독출하여 버퍼에 저장하고, 주 제어부(300)에서 첫 코드 패치 사이클을 시작하면서 boot read 명령어가 수신되면 버퍼에 저장된 부트 코드를 주 제어부(300)로 전송한다.
주 제어부(300)에서는 초기 부트 코드에 포함된 초기화 및 롬 코드 점프(ROM code jump) 명령어를 통해 초기화 준비를 한다.
초기화 준비를 마친 주 제어부(300)는 Serial FLASH(100)의 주소 맵으로 구성되는 태그 저장부(533)를 참조하여 데이터 저장부(535)를 액세스함으로써 주 제어부(300)로부터 요구되는 데이터를 데이터 버스에 실어 주 제어부(300)로 전송하고, 주 제어부(300)에서는 그 데이터를 바로 실행하여 부팅을 시작한다.
이러한 과정을 통해 컨트롤러(500)를 통해 주 제어부(300)와 Serial FLASH(100) 사이의 인터페이스가 이루어지면, 주 제어부(300)에서는 Serial FLASH(100)에 기록된 데이터를 주 메모리를 거치지 않고 바로 액세스 함으로써 XIP 가능하게 된다.
즉, 주 제어부(300)의 요청에 따라 컨트롤러(500)에서 판독/기록/삭제/프로그램(read/write/erase/program)과 같은 필요한 기능을 정의하고, 태그 저장부(533)를 참조하여 데이터 저장부(535)에 저장된 주 제어부(300)로부터 판독 요구되는 메모리 주소와 일치하는 주소가 기록되어 있는지를 검색한다.
검색결과 일치하면 데이터 저장부(535)로부터 해당되는 데이터를 독출하여 주 제어부(300)로 전송하고, 기록되어 있지 않으면 Serial FLASH(100)에 접근하여 해당되는 데이터가 속한 페이지 전체를 읽어들여 버퍼에 저장한 후 요구된 주소의 데이터를 주 제어부(300)로 전송하며 독출된 페이지를 태그 저장부(533)와 데이터 저장부(535)에 기록한다.
이러한 과정을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.
도 10은 주 제어부(300)로부터 요구되는 데이터가 데이터 저장부(353)에 없는 경우에 대한 처리과정을 나타낸 것이다.
도 10에 도시된 바와 같이, 주 제어부(300)로부터 Serial FLASH(100)의 특정 메모리 주소에 대한 선택 신호와 함께 판독이 요구되면(1), 컨트롤러(500)에서는 태그 저장부(533)에서 선택된 메모리 주소에 해당되는 주소의 페이지가 데이터 저장부(535)에 기록되어 있는지를 검색한다(2).
본 실시예에 따라 데이터 저장부(535)에 해당되는 데이터가 속한 페이지가 저장되어 있지 않기 때문에, 컨트롤러(500)에서는 Serial FLASH(100)로 주 제어부(300)로부터 판독이 요구된 메모리 주소에 대한 판독 명령어를 전송하여(3) 해당되는 메모리 주소가 속한 페이지 전체를 독출한다(4).
페이지 독출이 완료되면 컨트롤러(500)에서는 독출된 페이지를 버퍼에 저장해 필요한 데이터를 검출하여 주 제어부(300)로 전송하고(5), 독출된 페이지 및 이에 대한 저장 정보를 태그 저장부(533) 및 데이터 저장부(535)에 기록한다(6).
도 11은 상기한 과정이 반복됨에 따른 주 제어부(300)로부터 요구되는 데이터가 데이터 저장부(353)에 있는 경우에 대한 처리과정을 나타낸 것이다.
도 11에 도시된 바와 같이, 주 제어부(300)로부터 Serial FLASH(100)의 특정 메모리 주소에 대한 선택 신호와 함께 판독이 요구되면(1), 컨트롤러(500)에서는 태그 저장부(533)에서 선택된 메모리 주소에 해당되는 주소의 페이지가 데이터 저장부(535)에 기록되어 있는지를 검색한다(2).
본 실시예에 따라 데이터 저장부(535)에 해당되는 데이터가 속한 페이지가 저장되어 있기 때문에, 컨트롤러(500)에서는 태그 저장부(533)를 통해 검색된 저장정보를 참조하여 데이터 저장부(535)로부터 필요한 데이터를 검출한다(3).
검출된 데이터는 컨트롤러(500)에 의해 주 제어부(300)로 전송된다(4).
본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다.
따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명에 따르면, Serial FLASH에 접근하여 필요한 페이지를 독출해 주 제어부로 제공하는 Serial FLASH 컨트롤 장치를 통해 Serial FLASH에서의 XIP 기능 지원이 가능할 수 있다.
또한, XIP 가능한 Serial FLASH 컨트롤러 장치를 포함하는 Serial FLASH 메모리 칩으로 ROM 또는 NOR FLASH를 대체하여 같은 보다 저렴한 가격에 보조저장 공간을 제공할 수 있다.
도 1의 a 및 b는 종래의 NOR 플래시 메모리 및 Serial FLASH를 이용한 XIP 실행 과정을 나타낸 것이다.
도 2는 본 발명에 따른 Serial FLASH 및 플래시 메모리 액세스 장치의 구성을 개략적으로 나타낸 블록도이다.
도 3은 본 발명에 따른 Serial FLASH에서의 XIP를 위한 제어 장치의 구성을 개략적으로 나타낸 블록도이다.
도 4는 도 3의 데이터 저장부 구조를 개략적으로 나타낸 것이다.
도 5는 본 발명에 따른 Serial FLASH에서의 XIP를 위한 제어 방법에 대한 처리 과정을 개략적으로 나타낸 동작 흐름도이다.
도 6은 도 5의 S50에서 주 제어부로부터 수신된 Boot Read 명령어에 대한 처리과정을 나타낸 동작 흐름도이다.
도 7은 도 5의 S50에서 주 제어부로부터 수신된 Serial ID Read 명령어에 대한 처리과정을 나타낸 동작 흐름도이다.
도 8은 도 5의 S50에서 주 제어부로부터 수신된 Write 명령어에 대한 처리과정을 나타낸 동작 흐름도이다.
도 9는 도 5의 S50에서 주 제어부로부터 수신된 Read 명령어에 대한 처리과정을 나타낸 동작 흐름도이다.
도 10은 본 발명의 일 실시 예에 따른 주 제어부로부터 요구되는 데이터가 데이터 저장부에 없는 경우에 대한 처리과정을 나타낸 동작 흐름도이다.
도 11는 본 발명의 일 실시 예에 따른 주 제어부로부터 요구되는 데이터가 데이터 저장부에 있는 경우에 대한 처리과정을 나타낸 동작 흐름도이다.
* 도면의 주요부분에 대한 부호의 설명 *
100 : 시리얼 플래시 메모리(Serial FLASH)
101 : 부트 영역 103 : 운영체제 영역
105 : 데이터 영역 107 : 파일 시스템 영역
300 : 주 제어부
500 : 플래시 메모리 컨트롤러
510 : 시스템 인터페이스부
530 : 캐시 메모리 모듈 531 : 캐시 컨트롤러
533 : 태그 저장부 535 : 데이터 저장부
550 : 시리얼 플래시 컨트롤러
551 : 부트 로더(Boot Loader) 553 : 프리 패치
555 : EDC/ECC 557 : Decomp
570 : 플래시 인터페이스부

Claims (13)

  1. 시스템 인터페이스부를 통해 수신되는 주 제어부의 명령어에 따라 Serial FLASH의 지정된 메모리 주소를 액세스하여 상기 주 제어부로부터 요구된 데이터를 판독하거나 기록하는 캐시 모듈,
    상기 Serial FLASH에 기록된 부트 코드를 독출하여 버퍼에 저장하고 상기 주 제어부로부터 부트 코드가 요구되면 바로 전송하여 시스템 부팅이 실행되도록 하는 부트로더가 구비된 시리얼 플래시 컨트롤러, 및
    상기 캐시 모듈 및 부트 로더와 Serial FLASH간의 데이터 송/수신을 처리하는 플래시 인터페이스부를 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 장치.
  2. 제 1항에 있어서,
    상기 캐시 모듈은
    상기 주 제어부로부터 판독 연산이 요구되면 상기 Serial FLASH에 접근하여 지정된 메모리 주소가 속한 페이지를 독출하고 독출된 페이지를 통해 상기 메모리 주소에 해당되는 데이터를 상기 주 제어부로 전송하는 캐시 컨트롤러,
    상기 캐시 컨트롤러의 동작 제어에 따라 독출된 페이지에 대한 저장정보를 기록하는 태그 저장부, 및
    상기 독출된 페이지를 기록하는 데이터 저장부를 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 장치.
  3. 제 1항에 있어서,
    상기 캐시 컨트롤러는
    상기 판독 연산 시 상기 태그 저장부와 데이터 저장부를 참조하여 상기 태그 저장부에 상기 메모리 주소를 포함하는 페이지가 기록되어 있으면 상기 데이터 저장부로부터 해당되는 데이터를 검출해 상기 주 제어부로 전송하는 기능을 더 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 장치.
  4. 제 1항에 있어서,
    상기 시리얼 플래시 컨트롤러는
    상기 주 제어부로부터 요구될 것으로 예상되는 데이터를 상기 Serial FLASH로부터 미리 독출하여 버퍼에 저장하고 상기 주 제어부로부터 요구되면 바로 제공하는 프리 패치를 더 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 장치.
  5. 제 1항에 있어서,
    상기 데이터 저장부와 태그 저장부는 SRAM인 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 장치.
  6. Serial형 셀 타입의 Serial FLASH와,
    상기 Serial FLASH에 접근하여 시스템의 주 제어부로부터 요구되는 연산에 따라 버퍼에 미리 저장된 시스템 부팅을 위한 부트 코드를 바로 제공하거나 지정된 메모리 주소를 액세스하여 해당되는 데이터를 판독 또는 기록하는 컨트롤러를 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 장치를 이용한 플래시 메모리 칩.
  7. 제 6항에 있어서,
    상기 컨트롤러는
    시스템 인터페이스부를 통해 수신되는 주 제어부의 명령어에 따라 Serial FLASH의 지정된 메모리 주소를 액세스하여 상기 주 제어부로부터 요구된 데이터를 판독하거나 기록하는 캐시 모듈,
    상기 Serial FLASH에 기록된 부트 코드를 독출하여 버퍼에 저장하고 상기 주 제어부로부터 부트 코드가 요구되면 바로 전송하여 시스템 부팅이 실행되도록 하는 시리얼 플래시 컨트롤러, 및
    상기 캐시 모듈 및 시리얼 플래시 컨트롤러와 Serial FLASH간의 데이터 송/수신을 처리하는 플래시 인터페이스부를 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 장치를 이용한 플래시 메모리 칩.
  8. 시스템에 전원이 인가되면 Serial FLASH에 접근하여 초기 부팅을 위한 부트 코드를 독출해 버퍼에 저장하는 단계;
    상기 부트 코드의 저장이 완료되고 상기 시스템의 주 제어부로부터 부트 코드가 요구되면 상기 버퍼로부터 부트 코드를 독출하여 전송하고 상기 주 제어부로부터 요구되는 연산을 처리하는 단계를 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 방법.
  9. 제 8항에 있어서,
    상기 부트 코드를 독출하여 전송하는 단계는
    상기 주 제어부로부터 부트코드 판독 명령어를 수신하는 단계;
    상기 수신된 부트코드 판독 명령어에 따라 상기 버퍼에 저장된 부트 코드를 독출하는 단계;
    상기 독출된 부트 코드를 상기 주 제어부로 전송하는 단계를 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 방법.
  10. 제 8항에 있어서,
    상기 주 제어부의 Serial FLASH ID 판독 요구에 따라 전송되는 Serial FLASH ID 판독 명령어를 수신하는 단계;
    상기 수신된 Serial FLAHS ID 판독 명령어에 따라 상기 컨트롤러의 캐시 모듈을 통해 상기 Serial FLASH에 접근하는 단계;
    상기 Serial FLASH에서 상기 주 제어부로부터 요구되는 상기 Serial FLASH ID가 속한 페이지 전체를 독출하여 버퍼에 저장하고 필요한 데이터를 순차적으로 전송하는 단계를 더 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 방법.
  11. 제 8항에 있어서,
    상기 주 제어부의 소정의 데이터 기록 요구에 따라 전송되는 상기 데이터에 대한 메모리 주소와 함께 데이터 기록 명령어를 수신하는 단계;
    상기 수신된 데이터 기록 명령어에 따라 상기 주 제어부로부터 전송되는 데이터를 버퍼에 저장하는 단계;
    상기 버퍼에 저장된 데이터를 상기 Serial FLASH의 사상기법에 따라 할당되는 메모리 주소에 기록하는 단계를 더 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 방법.
  12. 제 8항에 있어서,
    상기 주 제어부의 소정의 데이터 판독 요구에 따라 전송되는 상기 데이터에 대한 메모리 주소와 함께 판독 명령어를 수신하는 단계;
    상기 수신된 판독 명령어에 따라 상기 메모리 주소를 상기 컨트롤러의 태그 저장부에서 검색하는 단계;
    상기 검색결과 상기 메모리 주소가 검색되면 상기 컨트롤러의 데이터 저장부에서 해당되는 데이터를 검출해 상기 주 제어부로 전송하는 단계;
    상기 검색결과 상기 메모리 주소가 검색되지 않으면 상기 Serial FLASH에 접근해 상기 메모리 주소가 속한 페이지를 독출하여 버퍼에 저장하고 상기 메모리 주소의 데이터를 검출해 상기 주 제어부로 전송하는 단계를 더 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 방법.
  13. 제 12항에 있어서,
    상기 Serial FLAHS에 접근하여 독출된 페이지를 통해 상기 주 제어부에서 요구된 데이터를 제공하는 단계는
    상기 독출된 페이지에 대한 저장 정보를 태그 저장부에 기록하며 독출된 페이지를 데이터 저장부에 기록하는 단계를 더 포함하는 것을 특징으로 하는 Serial FLASH에서의 XIP 실행을 위한 제어 방법.
KR10-2003-0001449A 2003-01-09 2003-01-09 시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩 KR100493884B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR10-2003-0001449A KR100493884B1 (ko) 2003-01-09 2003-01-09 시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩
JP2003358406A JP2004220557A (ja) 2003-01-09 2003-10-17 シリアルフラッシュメモリにおける直接実行のための制御装置及びその方法、これを用いたフラッシュメモリチップ
US10/694,832 US7302517B2 (en) 2003-01-09 2003-10-29 Apparatus and method for controlling execute-in-place (XIP) in serial flash memory, and flash memory chip using the same
CNB2003101247323A CN1282089C (zh) 2003-01-09 2003-12-26 控制串行快闪存储器中适当执行的装置和方法及相应芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0001449A KR100493884B1 (ko) 2003-01-09 2003-01-09 시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩

Publications (2)

Publication Number Publication Date
KR20040064149A KR20040064149A (ko) 2004-07-16
KR100493884B1 true KR100493884B1 (ko) 2005-06-10

Family

ID=32906490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0001449A KR100493884B1 (ko) 2003-01-09 2003-01-09 시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩

Country Status (4)

Country Link
US (1) US7302517B2 (ko)
JP (1) JP2004220557A (ko)
KR (1) KR100493884B1 (ko)
CN (1) CN1282089C (ko)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW591389B (en) * 2003-03-20 2004-06-11 Icp Electronics Inc Execute-in-place system and method of serial memory
US20050138288A1 (en) * 2003-12-23 2005-06-23 Horng-Yee Chou Dual mode USB and PCI express device
KR100541642B1 (ko) * 2004-03-11 2006-01-10 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
US20050243640A1 (en) * 2004-04-30 2005-11-03 Rudelic John C Storing code in fragments
US7616557B2 (en) * 2004-05-17 2009-11-10 California Institute Of Technology Method and apparatus for canceling intercarrier interference through conjugate transmission for multicarrier communication systems
KR100634436B1 (ko) 2004-09-23 2006-10-16 삼성전자주식회사 멀티 칩 시스템 및 그것의 부트코드 페치 방법
KR100693924B1 (ko) * 2005-01-31 2007-03-12 삼성전자주식회사 고속 직렬 인터페이스를 이용하는 부팅 시스템 및 부팅 방법
JP2008530683A (ja) * 2005-02-11 2008-08-07 サンディスク アイエル リミテッド Nandフラッシュメモリ・システム・アーキテクチャ
US7496719B2 (en) * 2005-07-26 2009-02-24 Intel Corporation Universal nonvolatile memory boot mode
KR100673013B1 (ko) * 2005-09-21 2007-01-24 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함한 데이터 처리 시스템
US11948629B2 (en) 2005-09-30 2024-04-02 Mosaid Technologies Incorporated Non-volatile memory device with concurrent bank operations
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
US7747833B2 (en) * 2005-09-30 2010-06-29 Mosaid Technologies Incorporated Independent link and bank selection
US20070076502A1 (en) * 2005-09-30 2007-04-05 Pyeon Hong B Daisy chain cascading devices
WO2007036050A1 (en) 2005-09-30 2007-04-05 Mosaid Technologies Incorporated Memory with output control
KR100667822B1 (ko) 2005-10-10 2007-01-11 삼성전자주식회사 낸드 플래시 메모리를 이용한 화상형성장치의 초기화제어장치 및 방법
KR20050107369A (ko) * 2005-10-27 2005-11-11 서운식 모바일 기기를 위한 코드 직접 수행기능을 갖는 대용량저장장치 및 제어 방법
KR100804647B1 (ko) * 2005-11-15 2008-02-20 삼성전자주식회사 병렬형 플래시 인터페이스를 지원하는 직렬형 플래시메모리 장치를 이용한 시스템 부팅 방법 및 장치
US7624224B1 (en) * 2005-12-13 2009-11-24 Nvidia Corporation System and method for directly executing code from block-based memory
US8996784B2 (en) * 2006-03-09 2015-03-31 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
US7743202B2 (en) * 2006-03-09 2010-06-22 Mediatek Inc. Command controller, prefetch buffer and methods for accessing a serial flash in an embedded system
US7555678B2 (en) * 2006-03-23 2009-06-30 Mediatek Inc. System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting
US8065563B2 (en) * 2006-03-23 2011-11-22 Mediatek Inc. System for booting from a non-XIP memory utilizing a boot engine that does not have ECC capabilities during booting
US8069328B2 (en) * 2006-03-28 2011-11-29 Mosaid Technologies Incorporated Daisy chain cascade configuration recognition technique
US8335868B2 (en) 2006-03-28 2012-12-18 Mosaid Technologies Incorporated Apparatus and method for establishing device identifiers for serially interconnected devices
US8364861B2 (en) * 2006-03-28 2013-01-29 Mosaid Technologies Incorporated Asynchronous ID generation
US7551492B2 (en) 2006-03-29 2009-06-23 Mosaid Technologies, Inc. Non-volatile semiconductor memory with page erase
EP2242058B1 (en) * 2006-03-31 2014-07-16 Mosaid Technologies Incorporated Flash memory system control scheme
CN100458694C (zh) * 2006-04-04 2009-02-04 深圳安凯微电子技术有限公司 微处理器启动过程中对所用通用闪存的检测方法
US7849302B2 (en) * 2006-04-10 2010-12-07 Apple Inc. Direct boot arrangement using a NAND flash memory
KR100801884B1 (ko) * 2006-04-25 2008-02-12 (재)대구경북과학기술연구원 플래시 메모리, 플래시 메모리의 제어 방법 및 직렬인터페이스 장치
KR100790168B1 (ko) * 2006-07-14 2008-01-02 삼성전자주식회사 프로세싱 시스템에서 낸드플래시 메모리를 이용하여 부팅을수행하는 방법 및 장치
US7904639B2 (en) 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
EP2487794A3 (en) 2006-08-22 2013-02-13 Mosaid Technologies Incorporated Modular command structure for memory and memory system
KR100822468B1 (ko) * 2006-09-11 2008-04-16 엠텍비젼 주식회사 공유 메모리를 구비한 장치 및 코드 데이터 전송 방법
US8001314B2 (en) * 2006-09-12 2011-08-16 Apple Inc. Storing a driver for controlling a memory
US8700818B2 (en) 2006-09-29 2014-04-15 Mosaid Technologies Incorporated Packet based ID generation for serially interconnected devices
US8745315B2 (en) * 2006-11-06 2014-06-03 Rambus Inc. Memory Systems and methods supporting volatile and wear-leveled nonvolatile physical memory
US7817470B2 (en) 2006-11-27 2010-10-19 Mosaid Technologies Incorporated Non-volatile memory serial core architecture
US8271758B2 (en) 2006-12-06 2012-09-18 Mosaid Technologies Incorporated Apparatus and method for producing IDS for interconnected devices of mixed type
US8331361B2 (en) 2006-12-06 2012-12-11 Mosaid Technologies Incorporated Apparatus and method for producing device identifiers for serially interconnected devices of mixed type
US7853727B2 (en) * 2006-12-06 2010-12-14 Mosaid Technologies Incorporated Apparatus and method for producing identifiers regardless of mixed device type in a serial interconnection
US7818464B2 (en) * 2006-12-06 2010-10-19 Mosaid Technologies Incorporated Apparatus and method for capturing serial input data
US8010709B2 (en) * 2006-12-06 2011-08-30 Mosaid Technologies Incorporated Apparatus and method for producing device identifiers for serially interconnected devices of mixed type
US7529149B2 (en) * 2006-12-12 2009-05-05 Mosaid Technologies Incorporated Memory system and method with serial and parallel modes
US8984249B2 (en) * 2006-12-20 2015-03-17 Novachips Canada Inc. ID generation apparatus and method for serially interconnected devices
US20080183968A1 (en) * 2007-01-30 2008-07-31 Chi-Ting Huang Computer system having cache system directly connected to nonvolatile storage device and method thereof
US8010710B2 (en) 2007-02-13 2011-08-30 Mosaid Technologies Incorporated Apparatus and method for identifying device type of serially interconnected devices
KR101494023B1 (ko) * 2007-02-16 2015-02-16 컨버전트 인텔렉츄얼 프로퍼티 매니지먼트 인코포레이티드 반도체 장치 및 상호접속된 장치들을 갖는 시스템에서의 전력 소비를 감소시키는 방법
US7796462B2 (en) 2007-02-22 2010-09-14 Mosaid Technologies Incorporated Data flow control in multiple independent port
US8046527B2 (en) 2007-02-22 2011-10-25 Mosaid Technologies Incorporated Apparatus and method for using a page buffer of a memory device as a temporary cache
US8086785B2 (en) 2007-02-22 2011-12-27 Mosaid Technologies Incorporated System and method of page buffer operation for memory devices
US7870327B1 (en) 2007-04-25 2011-01-11 Apple Inc. Controlling memory operations using a driver and flash memory type tables
US20090049232A1 (en) * 2007-08-17 2009-02-19 Sandeep Brahmadathan Execute-in-place implementation for a nand device
CN101425338B (zh) * 2007-10-29 2011-05-18 群联电子股份有限公司 非易失性存储器的写入方法及使用此方法的控制器
WO2009062280A1 (en) * 2007-11-15 2009-05-22 Mosaid Technologies Incorporated Methods and systems for failure isolation and data recovery in a configuration of series-connected semiconductor devices
US7913128B2 (en) 2007-11-23 2011-03-22 Mosaid Technologies Incorporated Data channel test apparatus and method thereof
US7983099B2 (en) 2007-12-20 2011-07-19 Mosaid Technologies Incorporated Dual function compatible non-volatile memory device
US7940572B2 (en) * 2008-01-07 2011-05-10 Mosaid Technologies Incorporated NAND flash memory having multiple cell substrates
TWI375953B (en) 2008-02-21 2012-11-01 Phison Electronics Corp Data reading method for flash memory, controller and system therof
TWI391941B (zh) * 2008-03-25 2013-04-01 Genesys Logic Inc 支援開機執行之儲存裝置
CN101546298B (zh) * 2008-03-28 2012-01-11 群联电子股份有限公司 用于闪存的数据读取方法、其控制器与储存系统
US8134852B2 (en) * 2008-10-14 2012-03-13 Mosaid Technologies Incorporated Bridge device architecture for connecting discrete memory devices to a system
US7957173B2 (en) * 2008-10-14 2011-06-07 Mosaid Technologies Incorporated Composite memory having a bridging device for connecting discrete memory devices to a system
US8549209B2 (en) * 2008-11-04 2013-10-01 Mosaid Technologies Incorporated Bridging device having a configurable virtual page size
US20100115172A1 (en) * 2008-11-04 2010-05-06 Mosaid Technologies Incorporated Bridge device having a virtual page buffer
CN101763314B (zh) * 2008-12-26 2011-07-27 凌阳创新科技股份有限公司 串列接口快取控制方法、控制器以及其微控制器系统
US8180981B2 (en) 2009-05-15 2012-05-15 Oracle America, Inc. Cache coherent support for flash in a memory hierarchy
CN101620885B (zh) * 2009-08-07 2012-01-25 福建星网锐捷网络有限公司 一种从flash上引导系统的操作方法及装置
KR101028855B1 (ko) * 2009-09-23 2011-04-12 (주)알파칩스 시리얼 플래시 컨트롤러
JP2011227976A (ja) * 2010-04-22 2011-11-10 Elpida Memory Inc 不揮発性半導体メモリ装置、及びそのメモリ装置を有するメモリシステム
US8688897B2 (en) 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
US20120017035A1 (en) * 2010-07-16 2012-01-19 Plx Technology, Inc. Runtime reprogramming of a processor code space memory area
CN102543187B (zh) * 2011-12-30 2015-10-28 泰斗微电子科技有限公司 一种高效读取的串行Flash缓冲器控制电路
TWI497515B (zh) * 2012-07-10 2015-08-21 Silicon Motion Inc 快閃記憶體控制器、快閃記憶體偵錯方法
US9952879B2 (en) * 2012-08-30 2018-04-24 Microsoft Technology Licensing, Llc Application pre-layout in byte-addressable persistent random access memory
US9740500B2 (en) * 2012-08-30 2017-08-22 Microsoft Technology Licensing, Llc Layout system for operating systems using BPRAM
US9098491B2 (en) * 2012-11-23 2015-08-04 Hong Kong Applied Science and Technology Research Institute Company Limited Method and system for performing data transfer with a flash storage medium
JP5744118B2 (ja) * 2013-07-17 2015-07-01 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN103617809A (zh) * 2013-12-06 2014-03-05 上海新储集成电路有限公司 一种可就地执行的非挥发存储器
CN104750584B (zh) * 2013-12-26 2018-11-30 华邦电子股份有限公司 半导体存储装置和系统启动方法
US9928079B2 (en) 2014-09-23 2018-03-27 Dialog Semiconductor (Uk) Limited Conditional processor auto boot with no boot loader when coupled with a nonvolatile memory
US20160179662A1 (en) * 2014-12-23 2016-06-23 David Pardo Keppel Instruction and logic for page table walk change-bits
CN105487875B (zh) * 2015-12-18 2019-08-27 杭州士兰微电子股份有限公司 程序存储器的控制方法、控制装置及其处理器系统
CN109154916A (zh) * 2016-08-22 2019-01-04 惠普发展公司,有限责任合伙企业 连接的设备的信息
CN109426623A (zh) * 2017-08-29 2019-03-05 深圳市中兴微电子技术有限公司 一种读取数据的方法及装置
US11061670B2 (en) * 2019-03-05 2021-07-13 Marvell Asia Pte, Ltd. Dual-interface flash memory controller with execute-in-place cache control
US11461101B2 (en) 2019-09-27 2022-10-04 Arm Technology (China) Co. LTD Circuitry and method for selectively controlling prefetching of program instructions
US11237838B2 (en) * 2020-01-02 2022-02-01 Western Digital Technologies, Inc. Storage system and method for enabling a direct accessible boot block in a memory die

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3328321B2 (ja) 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
JPH07146820A (ja) 1993-04-08 1995-06-06 Hitachi Ltd フラッシュメモリの制御方法及び、それを用いた情報処理装置
JPH07114500A (ja) 1993-10-19 1995-05-02 Matsushita Electric Ind Co Ltd 不揮発性メモリ記憶装置
US6418506B1 (en) 1996-12-31 2002-07-09 Intel Corporation Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array
KR100308479B1 (ko) 1998-08-11 2001-11-01 윤종용 컴퓨터 시스템 내에서 부트-업 메모리로 사용되는 플래시 메모리 장치 및 그것의 데이터 읽기 방법
JP2000306389A (ja) 1999-04-21 2000-11-02 Hitachi Ltd 不揮発性半導体メモリを用いた記憶装置
US6948099B1 (en) * 1999-07-30 2005-09-20 Intel Corporation Re-loading operating systems
US6601167B1 (en) * 2000-01-14 2003-07-29 Advanced Micro Devices, Inc. Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program
US6574747B2 (en) * 2000-06-02 2003-06-03 Microsoft Corporation Extensible execute in place (XIP) architecture and related methods
US7058779B1 (en) * 2001-03-05 2006-06-06 Advanced Micro Devices, Inc. Computer system initialization via boot code stored in a non-volatile memory having an interface compatible with synchronous dynamic random access memory
US20030206442A1 (en) * 2002-05-02 2003-11-06 Jerry Tang Flash memory bridiging device, method and application system
KR100562906B1 (ko) * 2003-10-08 2006-03-21 삼성전자주식회사 시리얼 플래시 메모리에서의 xip를 위한 우선순위기반의 플래시 메모리 제어 장치 및 이를 이용한 메모리관리 방법, 이에 따른 플래시 메모리 칩
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner

Also Published As

Publication number Publication date
CN1282089C (zh) 2006-10-25
JP2004220557A (ja) 2004-08-05
CN1517884A (zh) 2004-08-04
KR20040064149A (ko) 2004-07-16
US20040230738A1 (en) 2004-11-18
US7302517B2 (en) 2007-11-27

Similar Documents

Publication Publication Date Title
KR100493884B1 (ko) 시리얼 플래시 메모리에서의 현지 실행을 위한 제어 장치및 그 방법, 이를 이용한 플래시 메모리 칩
US11055230B2 (en) Logical to physical mapping
US6134151A (en) Space management for managing high capacity nonvolatile memory
US6262918B1 (en) Space management for managing high capacity nonvolatile memory
CN101719103B (zh) 基于存储设备的信息处理方法以及存储设备
US8300465B2 (en) Semiconductor and flash memory systems
US8234466B2 (en) Flash memory storage system applying SLC NAND flash memory and MLC NAND flash memory and data writing method thereof
US8285940B2 (en) Method and apparatus for high speed cache flushing in a non-volatile memory
US6131139A (en) Apparatus and method of simultaneously reading and writing data in a semiconductor device having a plurality of flash memories
EP1242868B1 (en) Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
KR101165429B1 (ko) 반도체 기억장치 및 그 액세스 방법 및 메모리 제어 시스템
US7373452B2 (en) Controller for controlling nonvolatile memory
US5953737A (en) Method and apparatus for performing erase operations transparent to a solid state storage system
JP4044067B2 (ja) シリアルフラッシュメモリにおけるxipのための優先順位に基づくフラッシュメモリ制御装置及びこれを用いたメモリ管理方法、これによるフラッシュメモリチップ
US7773420B2 (en) Memory card system including NAND flash memory and SRAM/NOR flash memory, and data storage method thereof
US7136986B2 (en) Apparatus and method for controlling flash memories
KR20080084082A (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
KR20200016075A (ko) 메모리 시스템에서의 유효 데이터 탐색 방법 및 장치
US11614885B2 (en) Data processing method for improving access performance of memory device and data storage device utilizing the same
US9870826B2 (en) Memory apparatus and data access method thereof by using multiple memories for lifetime extension
CN113885808A (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
US20200310873A1 (en) Controller and memory system including the same
JPH05150913A (ja) フラツシユメモリを記憶媒体としたシリコンデイスク
KR100490603B1 (ko) 플래시 메모리 동작 제어 방법 및 장치

Legal Events

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

Payment date: 20080502

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee