KR20050081769A - 불 휘발성 메모리를 제어하기 위한 컨트롤러 - Google Patents

불 휘발성 메모리를 제어하기 위한 컨트롤러 Download PDF

Info

Publication number
KR20050081769A
KR20050081769A KR1020040010144A KR20040010144A KR20050081769A KR 20050081769 A KR20050081769 A KR 20050081769A KR 1020040010144 A KR1020040010144 A KR 1020040010144A KR 20040010144 A KR20040010144 A KR 20040010144A KR 20050081769 A KR20050081769 A KR 20050081769A
Authority
KR
South Korea
Prior art keywords
memory
flash memory
ram
control unit
address
Prior art date
Application number
KR1020040010144A
Other languages
English (en)
Other versions
KR101085406B1 (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 KR1020040010144A priority Critical patent/KR101085406B1/ko
Priority to US11/034,176 priority patent/US7373452B2/en
Priority to JP2005008363A priority patent/JP5043302B2/ja
Priority to CNB200510071727XA priority patent/CN100481022C/zh
Publication of KR20050081769A publication Critical patent/KR20050081769A/ko
Application granted granted Critical
Publication of KR101085406B1 publication Critical patent/KR101085406B1/ko

Links

Classifications

    • 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/0893Caches characterised by their organisation or structure
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F03MACHINES OR ENGINES FOR LIQUIDS; WIND, SPRING, OR WEIGHT MOTORS; PRODUCING MECHANICAL POWER OR A REACTIVE PROPULSIVE THRUST, NOT OTHERWISE PROVIDED FOR
    • F03BMACHINES OR ENGINES FOR LIQUIDS
    • F03B3/00Machines or engines of reaction type; Parts or details peculiar thereto
    • F03B3/12Blades; Blade-carrying rotors
    • F03B3/14Rotors having adjustable blades
    • F03B3/145Mechanisms for adjusting the blades
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F03MACHINES OR ENGINES FOR LIQUIDS; WIND, SPRING, OR WEIGHT MOTORS; PRODUCING MECHANICAL POWER OR A REACTIVE PROPULSIVE THRUST, NOT OTHERWISE PROVIDED FOR
    • F03BMACHINES OR ENGINES FOR LIQUIDS
    • F03B13/00Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates
    • F03B13/12Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy
    • F03B13/26Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using tide energy
    • F03B13/264Adaptations of machines or engines for special use; Combinations of machines or engines with driving or driven apparatus; Power stations or aggregates characterised by using wave or tide energy using tide energy using the horizontal flow of water resulting from tide movement
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F05INDEXING SCHEMES RELATING TO ENGINES OR PUMPS IN VARIOUS SUBCLASSES OF CLASSES F01-F04
    • F05BINDEXING SCHEME RELATING TO WIND, SPRING, WEIGHT, INERTIA OR LIKE MOTORS, TO MACHINES OR ENGINES FOR LIQUIDS COVERED BY SUBCLASSES F03B, F03D AND F03G
    • F05B2220/00Application
    • F05B2220/30Application in turbines
    • F05B2220/32Application in turbines in water turbines
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F05INDEXING SCHEMES RELATING TO ENGINES OR PUMPS IN VARIOUS SUBCLASSES OF CLASSES F01-F04
    • F05BINDEXING SCHEME RELATING TO WIND, SPRING, WEIGHT, INERTIA OR LIKE MOTORS, TO MACHINES OR ENGINES FOR LIQUIDS COVERED BY SUBCLASSES F03B, F03D AND F03G
    • F05B2220/00Application
    • F05B2220/70Application in combination with
    • F05B2220/706Application in combination with an electrical generator
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E10/00Energy generation through renewable energy sources
    • Y02E10/20Hydro energy

Abstract

여기에 개시되는 메모리 컨트롤러는 불 휘발성 메모리 (예를 들면, NAND 플래시 메모리) 및 휘발성 메모리 (예를 들면, DRAM 또는 SDRAM)에 연결되어 있다. 메모리 컨트롤러는 메모리 요구에 응답하여 불 휘발성 메모리 및 휘발성 메모리의 액세스를 제어하며, 휘발성 메모리에 저장된 데이터의 어드레스 정보를 저장하는 메모리를 포함한다. 메모리 컨트롤러는 메모리 요구시 입력된 어드레스 정보가 메모리의 어드레스 정보와 일치하는 지의 여부를 판별하며, 판결 결과에 따라 불 휘발성 메모리를 선택적으로 액세스한다.

Description

불 휘발성 메모리를 제어하기 위한 컨트롤러{CONTROLLER FOR CONTROLLING NONVOLATILE MEMORY}
본 발명은 정보 처리 시스템들에 관한 것으로, 좀 더 구체적으로는 불 휘발성 메모리를 포함하는 메모리 시스템에 관한 것이다.
모바일 시스템 및 각종 어플리케이션들의 개발에 따라 불 휘발성 메모리인 플래시 메모리와 더불어 플래시 메모리를 제어하는 메모리 시스템의 요구가 증가되고 있다. 플래시 메모리는 대용량의 데이터 정보를 저장할 수 있는 능력을 갖는 반면에 데이터 읽기 및 쓰기 시간이 램에 비교해서 다소 길다는 단점을 갖는다.
이러한 단점은 버퍼 메모리를 이용함으로써 해결될 수 있다. 예를 들면, 호스트로부터의 데이터는 직접 플래시 메모리에 저장되는 것이 아니라 버퍼 메모리에 먼저 저장된다. 그 다음에, 버퍼 메모리에 저장된 데이터가 읽혀지며, 그렇게 읽혀진 데이터가 플래시 메모리에 저장된다. 마찬가지로, 플래시 메모리에서 읽혀진 데이터는 직접 호스트로 전송되는 것이 아니라 버퍼 메모리에 먼저 저장된다. 그 다음에, 버퍼 메모리에 저장된 데이터가 읽혀지며, 그렇게 읽혀진 데이터가 호스트로 전송된다. 이러한 데이터 전송 방식에 따라 메모리 시스템 또는 그를 포함하는 정보 처리 시스템 (또는 모바일 어플리케이션)의 성능을 향상시킬 수 있다.
그러한 메모리 시스템은, 하지만, 다음과 같은 문제점들을 갖는다. 부팅시 플래시 메모리에 저장된 데이터를 버퍼 메모리에 복사해 두어야 하기 때문에, 메모리 운용이 비효율적이다. 또한, 버퍼 메모리에 플래시 메모리의 데이터를 복사하기 위해서는 별도의 모드 (예를 들면, demand paging mode)가 지원되어야 한다. 이는 소프트웨어 부담의 증가 원인이 되며, 메모리 시스템을 포함하는 시스템의 전체적인 효율이 떨어진다.
본 발명의 목적은 소프트웨어의 간여 없이 플래시 메모리를 제어할 수 있는 메모리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 페이지 단위로 플래시 메모리를 관리할 수 있는 메모리 시스템을 제공하는 것이다.
이상의 제반 목적을 달성하기 위한 본 발명의 특징에 따르면, 메모리 시스템은 낸드 플래시 메모리와; 상기 낸드 플래시 메모리의 데이터를 저장하는 램과; 그리고 메모리 요구에 응답하여 상기 램과 상기 낸드 플래시 메모리의 액세스를 제어하는 컨트롤러를 포함한다. 상기 컨트롤러는 상기 램에 저장된 데이터의 어드레스 정보를 저장하는 메모리를 포함하고, 상기 메모리 요구시 선택적으로 액세스되도록 상기 메모리의 어드레스 정보를 참조하여 상기 낸드 플래시 메모리를 제어한다.
구체적으로, 상기 컨트롤러는 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치하는 지의 여부를 판별하며, 판결 결과에 따라 상기 낸드 플래시 메모리를 선택적으로 액세스한다. 예컨대, 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치할 때, 상기 컨트롤러는 상기 낸드 플래시 메모리의 액세스 없이 상기 램의 데이터를 외부로 출력한다. 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치하지 않을 때, 상기 컨트롤러는 상기 낸드 플래시 메모리의 데이터가 상기 램에 그리고 외부로 출력되도록 상기 낸드 플래시 메모리를 제어한다.
예시적인 실시예에 있어서, 상기 컨트롤러는 블록 단위 대신에 페이지 단위로 상기 낸드 플래시 메모리를 관리하며, 상기 낸드 플래시 메모리의 페이지 어드레스 정보를 상기 메모리에 저장한다. 또한, 상기 컨트롤러는 외부로부터 입력된 데이터가 상기 램에 저장될 때마다 상기 저장된 데이터의 어드레스 정보를 상기 메모리에 저장한다.
예시적인 실시예에 있어서, 상기 컨트롤러는 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치하는 지의 여부에 따라 읽기/쓰기 액세스 명령을 발생하는 메인 제어 유니트와; 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치할 때, 상기 메인 제어 유니트로부터의 읽기/쓰기 액세스 명령에 응답하여 상기 램의 액세스 동작을 제어하는 메모리 제어 유니트와; 그리고 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치하지 않을 때, 상기 메인 제어 유니트로부터의 읽기/쓰기 액세스 명령에 응답하여 낸드 플래시 메모리의 액세스를 제어하는 플래시 메모리 관리 및 제어 유니트를 더 포함한다.
예시적인 실시예에 있어서, 상기 메인 제어 유니트는, 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치할 때, 상기 어드레스를 상기 램에 적합한 램 어드레스로 변환하고, 변환된 램 어드레스를 상기 램으로 출력한다.
예시적인 실시예에 있어서, 상기 플래시 메모리 관리 및 제어 유니트는, 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치하지 않을 때, 상기 어드레스를 상기 낸드 플래시 메모리에 적합한 낸드 어드레스로 변환한다.
예시적인 실시예에 있어서, 상기 플래시 메모리 관리 및 제어 유니트는 상기 낸드 플래시 메모리의 액세스된 페이지와 관련된 정보를 상기 메모리에 저장한다. 상기 낸드 플래시 메모리의 액세스된 페이지가 결함 페이지일 때, 상기 플래시 메모리 관리 및 제어 유니트는 결함 페이지 정보를 상기 메모리에 저장한다. 상기 플래시 메모리 관리 및 제어 유니트는 상기 낸드 플래시 메모리를 액세스할 때 상기 결함 페이지 대신에 다른 페이지가 선택되도록 설정된 페이지 어드레스 테이블을 포함한다.
예시적인 실시예에 있어서, 상기 램에 새로운 데이터가 쓰여질 때, 상기 메인 제어 유니트는 상기 램에 새로운 데이터가 저장되었는 지의 여부를 나타내는 유효 어드레스 정보를 상기 메모리에 저장한다. 상기 플래시 메모리 관리 및 제어 유니트는, 갱신 동작이 요구될 때, 상기 메모리의 유효 어드레스 정보를 참조하여 낸드 어드레스를 발생한다.
예시적인 실시예에 있어서, 상기 컨트롤러는 상기 낸드 플래시 메모리에서 읽혀진 데이터를 임시 저장하는 임시 메모리를 더 포함한다. 상기 램의 데이터를 상기 낸드 플래시 메모리에 저장할 때, 상기 임시 메모리는 상기 메모리 제어 유니트의 제어에 따라 상기 램으로부터의 데이터를 저장하고 그렇게 저장된 데이터는 상기 플래시 메모리 관리 및 제어 유니트의 제어에 따라 상기 낸드 플래시 메모리로 출력된다. 또한, 상기 낸드 플래시 메모리의 데이터를 상기 램에 저장할 때, 상기 임시 메모리는 상기 플래시 메모리 관리 및 제어 유니트의 제어에 따라 상기 낸드 플래시 메모리로부터의 데이터를 저장하고 그렇게 저장된 데이터는 상기 메모리 제어 유니트의 제어에 따라 상기 램으로 그리고 외부로 출력된다.
본 발명의 다른 특징에 따르면, 메모리 시스템은 낸드 플래시 메모리와; 상기 낸드 플래시 메모리의 데이터를 저장하는 램과; 그리고 상기 램과 상기 낸드 플래시 메모리의 액세스를 제어하는 컨트롤러를 포함한다. 상기 컨트롤러는 상기 램에 저장된 데이터의 메모리 어드레스 정보 중 태그 어드레스를 저장하는 메모리와; 메모리 요구시 입력된 메모리 어드레스 중 태그 어드레스가 상기 메모리의 태그 어드레스와 일치하는 지의 여부에 따라 제 1 및 제 2 액세스 명령들 중 어느 하나를 발생하는 메인 제어 유니트와; 상기 제 1 액세스 명령에 응답하여 상기 램의 액세스 동작을 제어하는 메모리 제어 유니트와; 그리고 상기 제 2 액세스 명령에 응답하여 상기 낸드 플래시 메모리의 액세스를 제어하는 플래시 메모리 관리 및 제어 유니트를 포함한다.
예시적인 실시예에 있어서, 상기 메모리 요구시 입력된 메모리 어드레스 중 태그 어드레스가 상기 메모리의 태그 어드레스와 일치할 때, 상기 컨트롤러는 상기 낸드 플래시 메모리의 액세스 없이 상기 램의 데이터가 외부로 출력되도록 상기 메모리 제어 유니트를 제어한다.
예시적인 실시예에 있어서, 상기 메모리 요구시 입력된 메모리 어드레스 중 태그 어드레스가 상기 메모리의 태그 어드레스와 일치하지 않을 때, 상기 컨트롤러는 상기 낸드 플래시 메모리의 데이터가 상기 램에 그리고 외부로 출력되도록 상기 플래시 메모리 관리 및 제어 유니트 및 상기 메모리 제어 유니트를 제어한다.
예시적인 실시예에 있어서, 상기 플래시 메모리 관리 및 제어 유니트는 블록 단위 대신에 페이지 단위로 상기 낸드 플래시 메모리를 관리하며, 상기 낸드 플래시 메모리의 페이지 어드레스 정보를 상기 메모리에 저장한다.
예시적인 실시예에 있어서, 상기 메인 제어 유니트는 외부로부터 입력된 데이터가 상기 램에 저장될 때마다 상기 저장된 데이터의 태그 어드레스를 상기 메모리에 저장한다.
예시적인 실시예에 있어서, 상기 메인 제어 유니트는, 상기 메모리 요구시 입력된 메모리 어드레스 중 태그 어드레스가 상기 메모리의 태그 어드레스와 일치할 때, 상기 메모리 어드레스를 상기 램에 적합한 램 어드레스로 변환하고, 변환된 램 어드레스를 상기 램으로 출력한다.
예시적인 실시예에 있어서, 상기 플래시 메모리 관리 및 제어 유니트는, 상기 메모리 요구시 입력된 메모리 어드레스 중 태그 어드레스가 상기 메모리의 태그 어드레스와 일치하지 않을 때, 상기 메모리 어드레스를 상기 낸드 플래시 메모리에 적합한 낸드 어드레스로 변환한다.
예시적인 실시예에 있어서, 상기 플래시 메모리 관리 및 제어 유니트는 상기 낸드 플래시 메모리의 액세스된 페이지와 관련된 정보를 상기 메모리에 저장한다.
예시적인 실시예에 있어서, 상기 낸드 플래시 메모리의 액세스된 페이지가 결함 페이지일 때, 상기 플래시 메모리 관리 및 제어 유니트는 결함 페이지 정보를 상기 메모리에 저장한다. 또한, 상기 플래시 메모리 관리 및 제어 유니트는 상기 낸드 플래시 메모리를 액세스할 때 상기 결함 페이지 대신에 다른 페이지가 선택되도록 설정된 페이지 어드레스 테이블을 포함한다. 상기 램에 새로운 데이터가 쓰여질 때, 상기 메인 제어 유니트는 상기 램에 새로운 데이터가 저장되었는 지의 여부를 나타내는 유효 어드레스 정보를 상기 메모리에 저장한다. 상기 플래시 메모리 관리 및 제어 유니트는, 갱신 동작이 요구될 때, 상기 메모리의 유효 어드레스 정보를 참조하여 낸드 어드레스를 발생한다.
예시적인 실시예에 있어서, 상기 컨트롤러는 상기 낸드 플래시 메모리에서 읽혀진 데이터를 임시 저장하는 임시 메모리를 더 포함한다. 상기 램의 데이터를 상기 낸드 플래시 메모리에 저장할 때, 상기 임시 메모리는 상기 메모리 제어 유니트의 제어에 따라 상기 램으로부터의 데이터를 저장하고 그렇게 저장된 데이터는 상기 플래시 메모리 관리 및 제어 유니트의 제어에 따라 상기 낸드 플래시 메모리로 출력된다. 또한, 상기 낸드 플래시 메모리의 데이터를 상기 램에 저장할 때, 상기 임시 메모리는 상기 플래시 메모리 관리 및 제어 유니트의 제어에 따라 상기 낸드 플래시 메모리로부터의 데이터를 저장하고 그렇게 저장된 데이터는 상기 메모리 제어 유니트의 제어에 따라 상기 램으로 그리고 외부로 출력된다.
이하, 본 발명의 예시적인 실시예들이 참조 도면들에 의거하여 상세히 설명될 것이다.
본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도가 도 1에 도시되어 있다. 도 1에 있어서, 본 발명의 메모리 시스템 (100)은 단일 칩 (a single chip), 멀티-칩 모듈 (multi-chip module), 그리고 그와 같은 것 중 어느 하나로 구현될 수 있다. 예를 들면, 본 발명의 메모리 시스템 (100)은 개인용 컴퓨터 (personal computer), 이동 전자 장치 (mobile electronic device, 예를 들면, 이동 전화기 (mobile phone), 디지털 카메라 (digital camera)), 또는 게임 머신 (gate machine)과 같은 전자 장치 (호스트 시스템)에 형성된 카드 슬롯 (card slot)에 삽입될 수 있는 메모리 카드 (memory card)로서 사용될 수 있다. 하지만, 본 발명에 따른 메모리 시스템 (100)이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 도 1에 도시된 바와 같이, 본 발명에 따른 메모리 시스템 (100)은 컨트롤러 (controller) (110), 램 (120), 불 휘발성 메모리 (nonvolatile memory) (130), 그리고 버스 (140)를 포함한다.
컨트롤러 (110)는 램 (120)과 불 휘발성 메모리 (130)를 제어한다. 컨트롤러 (110)는 램 (120)에 저장된 데이터의 태그 어드레스 정보를 저장하는 데 필요한 메모리 (1100)를 포함한다. 메모리 (1100)는, 예를 들면, 에스램, 내용 주소화 메모리 (content address memory: CAM), 또는 이와 동일한 종류의 것으로 구현될 수 있다. 불 휘발성 메모리 (130)는 NAND 플래시 메모리를 포함한다. 컨트롤러 (110)는 호스트 시스템으로부터 공급되는 명령을 해석하며, 메모리 (1100)에 저장된 어드레스 정보 및 해석된 명령에 따라 램 (120) 및/또는 불 휘발성 메모리 (130)를 제어한다. 이는 이후 상세히 설명될 것이다. 호스트 시스템은, 예를 들면, 개인용 컴퓨터이며, 도 1의 메모리 시스템 (100)이 삽입되게 하는 카드 슬롯을 포함한다. 램 (120)은 호스트 시스템에 의해서 적어도 한 번 참조된 데이터를 저장하는 데 사용되며, 참조된 데이터의 어드레스 정보는 앞서 언급된 바와 같이 컨트롤러 (110) 내의 메모리 (1100)에 저장된다.
본 발명의 메모리 시스템 (100)에 따르면, 호스트 시스템으로부터 메모리 요구가 들어올 때마다 불 휘발성 메모리 (130)가 액세스되지 않는다. 다시 말해서, 불 휘발성 메모리 (130)의 데이터는 필요한 상황에서만 액세스된다. 예를 들면, 만약 호스트 시스템에 의해서 요구된 데이터가 램 (120)에 저장되어 있으면, 불 휘발성 메모리 (130)의 액세스 없이 램 (120)에 저장된 데이터가 호스트 시스템으로 전송된다. 만약 호스트 시스템에 의해서 요구된 데이터가 램 (120)에 저장되어 있지 않으면, 불 휘발성 메모리 (130)가 컨트롤러 (110)의 제어에 따라 액세스된다. 불 휘발성 메모리 (130)로부터 출력된 데이터는 호스트 시스템으로 전송됨과 동시에 램 (120)에 저장된다. 앞서 설명된 동작들은 컨트롤러 (110) 내의 메모리 (1100)에 저장된 어드레스 정보에 의거하여 수행될 것이다. 따라서, 별도의 모드 및 장치 드라이버 없이 불 휘발성 메모리 (130)를 액세스하는 것이 가능하다.
도 2는 본 발명의 예시적인 실시예에 따른 도 1에 도시된 컨트롤러를 개략적으로 보여주는 블록도이다. 도 2에 있어서, 램 (120)은 디램 (DRAM)이고 불 휘발성 메모리 (130)는 NAND 플래시 메모리라고 가정하자. 도 2를 참조하면, 본 발명에 따른 컨트롤러 (110)는 메모리 (1100), 호스트 인터페이스 유니트 (host interface unit) (1200), 메인 제어 유니트 (main control unit) (1300), 메모리 제어 유니트 (memory control unit) (1400), 플래시 메모리 관리 및 제어 유니트 (flash memory management and control unit) (1500), 임시 메모리 (temperary memory) (1600), 그리고 데이터 래치 (data latch) (1700)를 포함한다.
메모리 (1100)는 램 (120)에 저장된 데이터의 어드레스 정보 (예를 들면, 태그 어드레스 정보)를 저장한다. 게다가, 메모리 (1100)는 NAND 플래시 메모리 (130)의 페이지 어드레스 정보 (예를 들면, 결함 페이지 정보)를 저장한다. 메모리 (1100)는 태그 어드레스 정보 및 페이지 어드레스 정보를 저장하기 위한 저장 영역 (1101)과 히트/미스 검출기 (1102)를 포함한다. 저장 영역 (1101)에는, 또한, 유효 비트 정보 (valid bit information)가 저장되며, 유효 비트 정보는 호스트 인터페이스 유니트 (1200)를 통해 호스트 시스템으로부터 전송된 메모리 어드레스 (XADD)에 의해서 지정될 램 (120)의 소정 영역에 새로운 데이터가 저장되었는 지의 여부를 나타낸다. 히트/미스 검출기 (1102)는 메모리 어드레스 중 태그 어드레스가 저장 영역 (1101)에 저장된 태그 어드레스와 일치하는 지의 여부를 검출하며, 그 검출 결과를 메인 제어 유니트 (1300)로 출력한다. 태그 어드레스 정보 및 유효 비트 정보는 메인 제어 유니트 (1300)의 제어에 따라 저장 영역 (1101)에 저장될 것이다.
메인 제어 유니트 (1300)는 호스트 인터페이스 유니트 (1200)를 통해 호스트 시스템으로부터 전송된 메모리 요구가 읽기/쓰기/뒤쓰기 동작 (read/write/write-back operation)을 나타내는 지의 여부를 판별한다. 메인 제어 유니트 (1300)는 판별 결과 및 메모리 (1100)로부터의 히트/미스 검출 결과에 따라 메모리 (1100), 메모리 제어 유니트 (1400), 그리고 플래시 메모리 관리 및 제어 유니트 (1500)를 제어한다. 이는 이후 상세히 설명될 것이다. 메인 제어 유니트 (1300)는 호스트 인터페이스 유니트 (1200)를 통해 호스트 시스템으로부터 전송된 메모리 어드레스 (XADD)를 램 (120)에 적합한 램 어드레스 (RADD)로 변환한다. 그렇게 변환된 램 어드레스는 메모리 제어 유니트 (1400)로 공급된다.
메모리 제어 유니트 (1400)는 램 어드레스 (RADD)와 함께 읽기 명령이 메인 제어 유니트 (1300)로부터 입력될 때 램 (120)의 읽기/쓰기 동작을 제어한다. 예를 들면, 읽기 명령이 입력될 때, 메모리 제어 유니트 (1400)는 제어 신호들 및 어드레스를 램 (120)으로 출력한다. 잘 알려진 방법에 따라 램 (120)의 읽기 동작이 수행되고, 읽기 동작에 따라 읽혀진 데이터는 데이터 래치 (1700)에 임시 저장되며, 데이터 래치 (1700)에 저장된 데이터는 메인 제어 유니트 (1300)의 제어에 따라 호스트 인터페이스 유니트 (1200)를 통해 호스트 시스템으로 출력될 것이다. 쓰기 명령이 입력될 때, 메모리 제어 유니트 (1400)는 제어 신호들 및 어드레스를 램 (120)으로 출력하며, 램 (120)에 쓰여질 데이터는 데이터 래치 (1700)로부터 램 (120)으로 공급된다. 이 분야의 통상적인 지식을 습득한 자들에 의해서 잘 이해될 수 있듯이, 램 (120)에 저장될 데이터는 호스트 시스템에서 데이터 래치 (1700)로 전송될 것이다. 또는, 쓰기 명령이 입력될 때, 메모리 제어 유니트 (1400)는 제어 신호들 및 어드레스를 램 (120)으로 출력하며, 램 (120)에 쓰여질 데이터는 메모리 제어 유니트 (1400)의 제어에 따라 임시 메모리 (1600)로부터 램 (120)으로 공급될 것이다. 이때, 임시 메모리 (1600)의 데이터는 NAND 플래시 메모리 (130)로부터 읽혀진 데이터이다.
플래시 메모리 관리 및 제어 유니트 (1500)는, 메인 제어 유니트 (1300)로부터 플래시 액세스 정보가 입력되면, 액세스 정보에 따라 NAND 플래시 메모리 (130)의 액세스 동작을 제어한다. 예를 들면, 플래시 읽기 정보가 유니트 (1300)로부터 입력되면, 플래시 메모리 관리 및 제어 유니트 (1500)는 호스트 시스템으로부터의 메모리 어드레스를 낸드 어드레스로 변환하고, 읽기 명령과 함께 변환된 낸드 어드레스를 정해진 타이밍에 따라 NAND 플래시 메모리 (130)로 출력한다. 소정 시간이 경과한 후 (또는, 선택된 페이지로부터 데이터를 감지하는 데 필요한 시간이 경과한 후), NAND 플래시 메모리 (130)로부터 출력되는 데이터는 플래시 메모리 관리 및 제어 유니트 (1500)의 제어에 따라 임시 메모리 (1600)에 저장된다. 임시 메모리 (1600)에 저장된 데이터는 메모리 제어 유니트 (1400)의 제어에 따라 램 (120)에 저장될 것이다. 이와 동시에, 플래시 메모리 관리 및 제어 유니트 (1500)는 NAND 플래시 메모리 (130)로부터 출력되는 데이터에 에러가 있는지의 여부를 판별한다. 읽혀진 데이터에 에러가 있는 경우, 플래시 메모리 관리 및 제어 유니트 (1500)는 에러가 있는 데이터의 페이지 정보 (이는 "결함 페이지 정보"라 불림)를 메모리 (1100)에 저장한다. 플래시 메모리 관리 및 제어 유니트 (1500)는 결함 페이지 정보에 따라 페이지 어드레스를 재조정하며, 그 결과 결함 페이지는 다른 페이지 (예를 들면, 결함 페이지의 다음의 페이지)로 대체될 것이다. 이후 결함 페이지에 대한 액세스 요구시 결함 페이지 대신에 대체된 페이지가 지정될 것이다.
도 3은 본 발명의 예시적인 실시예에 따른 도 2에 도시된 메모리 시스템의 읽기 및 쓰기 동작들을 설명하기 위한 동작 타이밍도이다.
도 3을 참조하면, 호스트 시스템으로부터 메모리 요구가 들어오면 (S100), 메인 제어 유니트 (1300)는 메모리 요구가 읽기 동작인지 아니면 쓰기 동작인 지의 여부를 판별한다 (S110). 만약 읽기 동작이 요구되면, 절차는 단계 (S120)로 진행한다. 단계 (S120)에 있어서, 호스트 시스템으로부터 전송된 메모리 어드레스의 일부가 메모리 (1100)의 저장 영역 내의 태그 어드레스와 일치하는 지의 여부가 검출된다. 만약 일치하면, 절차는 단계 (S140)로 진행하며, 단계 (S140)에서는 램 (120)에 저장된 데이터가 호스트 시스템으로 전송될 것이다. 좀 더 구체적으로, 메인 제어 유니트 (1300)는 메모리 어드레스를 램 어드레스로 변환하고, 메모리 제어 유니트 (1400)로 읽기 명령과 함께 램 어드레스를 출력한다. 메모리 제어 유니트 (1400)는 입력된 읽기 명령 및 램 어드레스를 램 (120)으로 전달한다. 따라서, 램 (120)은 입력된 읽기 명령 및 어드레스에 따라 읽기 동작을 수행하며, 램 (120)에서 읽혀진 데이터는 데이터 래치 (1700) 및 인터페이스 유니트 (1200)를 통해 호스트 시스템으로 전달될 것이다.
단계 (S120)에서 미스 정보가 메인 제어 유니트 (1300)로 입력되면, 절차는 단계 (S130)로 진행하며, 단계 (S130)에서는 플래시 메모리 관리 및 제어 유니트 (1500)의 제어에 따라 NAND 플래시 메모리로부터 데이터가 읽혀지고, 그렇게 읽혀진 데이터는 램 (120)에 저장될 것이다. 좀 더 구체적으로 설명하면 다음과 같다. 플래시 메모리 관리 및 제어 유니트 (1500)는 메모리 어드레스를 낸드 어드레스로 변환하고, 변환된 어드레스와 함께 읽기 명령을 정해진 타이밍에 따라 NAND 플래시 메모리 (130)로 출력한다. 여기서, 플래시 메모리 관리 및 제어 유니트 (1500)는 페이지 어드레스 테이블을 참조하여 (또는, 메모리 (1100)에 저장된 페이지 정보를 참조하여) 메모리 어드레스를 낸드 어드레스로 변환한다. 소정 시간이 경과한 후, NAND 플래시 메모리 (130)로부터 출력되는 데이터는 플래시 메모리 관리 및 제어 유니트 (1500)의 제어에 따라 임시 메모리 (1600)에 저장된다. 임시 메모리 (1600)에 저장된 데이터는 메모리 제어 유니트 (1400)의 제어에 따라 램 (120)에 저장될 것이다. 이와 동시에, NAND 플래시 메모리 (130)로부터 읽혀진 데이터는 데이터 래치 (1700) 및 호스트 인터페이스 유니트 (1200)를 통해 호스트 시스템으로 출력된다. 이후, 절차는 단계 (S140)로 진행한다.
다시 단계 (S110)로 돌아가면, 만약 메모리 요구가 쓰기 동작으로 판별되면, 절차는 단계 (S160)로 진행한다. 단계 (S160)에 있어서, 호스트 시스템으로부터 전송된 메모리 어드레스의 일부가 메모리 (1100)의 저장 영역 내의 태그 어드레스와 일치하는 지의 여부가 검출된다. 만약 일치하면, 절차는 단계 (S180)로 진행하며, 단계 (S180)에서는 호스트 시스템으로부터 전달된 데이터가 램 (120)에 저장될 것이다. 좀 더 구체적으로, 메인 제어 유니트 (1300)는 메모리 어드레스를 램 어드레스로 변환하고, 메모리 제어 유니트 (1400)로 쓰기 명령과 함께 램 어드레스를 출력한다. 메모리 제어 유니트 (1400)는 입력된 쓰기 명령 및 램 어드레스를 램 (120)으로 전달한다. 이와 동시에, 호스트 시스템으로부터 전달된 데이터는 호스트 인터페이스 유니트 (1200)과 데이터 래치 (1700)를 통해 램 (120)을 전달될 것이다. 입력된 쓰기 명령 및 어드레스에 따라 데이터가 램 (120)에 저장될 것이다. 그 다음에, 절차는 단계 (S150)로 진행한다.
만약 단계 (S160)에서 미스 정보가 메인 제어 유니트 (1300)로 입력되면, 절차는 단계 (S170)로 진행하며, 단계 (S170)에서는 플래시 메모리 관리 및 제어 유니트 (1500)의 제어에 따라 NAND 플래시 메모리로부터 데이터가 읽혀지고, 그렇게 읽혀진 데이터는 램 (120)에 저장될 것이다. 좀 더 구체적으로 설명하면 다음과 같다. 플래시 메모리 관리 및 제어 유니트 (1500)는 메모리 어드레스를 낸드 어드레스로 변환하고, 변환된 어드레스와 함께 읽기 명령을 정해진 타이밍에 따라 NAND 플래시 메모리 (130)로 출력한다. 소정 시간이 경과한 후, NAND 플래시 메모리 (130)로부터 출력되는 데이터는 플래시 메모리 관리 및 제어 유니트 (1500)의 제어에 따라 임시 메모리 (1600)에 저장된다. 임시 메모리 (1600)에 저장된 데이터는 메모리 제어 유니트 (1400)의 제어에 따라 램 (120)에 저장될 것이다. 그 다음에, 단계 (S180)에서는 호스트 시스템으로부터 전달된 데이터는 호스트 인터페이스 유니트 (1200)과 데이터 래치 (1700)를 통해 램 (120)을 전달되며, 메모리 제어 유니트 (1400)의 제어에 따라 램 (120)에 저장될 것이다.
앞서의 동작들이 완료된 후, 단계 (S150)에는 메모리 (1100)를 갱신하는 동작이 수행된다. 메모리 (1100)의 저장 영역 (1101)에는 태그 어드레스 정보와 함께 태그 어드레스에 대응하는 램 (120)의 소정 영역에 새로운 데이터가 저장되었음을 나타내는 유효 비트 정보가 저장된다. 또는, 페이지 어드레스 테이블의 페이지 어드레스 정보가 메모리 (1100)에 저장될 것이다.
앞서의 설명에 따르면, 메모리 요구가 호스트 시스템으로부터 들어올 때, NAND 플래시 메모리 (130)가 항상 액세스되는 것이 아니라 램 (120)에 요구되는 데이터가 존재하는 지의 여부에 따라 액세스된다. 이는 NAND 플래시 메모리 (130)에 저장된 데이터를 읽기 위한 별도의 모드 (demand paging mode)가 필요하지 않음을 의미한다. 즉, 호스트 시스템의 소프트웨어 부담이 줄어든다. 또한, 불필요하게 램 (120) 전체에 NAND 플래시 메모리 (130)의 데이터를 저장하지 않아도 되기 때문에, 효율적인 메모리 관리가 가능하다.
램 (120)에 데이터가 새롭게 쓰여지는 경우, NAND 플래시 메모리 (130)는 램 (120)에 저장된 새로운 데이터로 갱신되어야 한다. 본 발명에 따른 메모리 시스템의 갱신 동작을 설명하기 위한 흐름도가 도 4에 도시되어 있다. 본 발명에 따른 메모리 시스템의 갱신 동작이 이하 참조 도면들에 의거하여 상세히 설명될 것이다. 갱신 동작은 호스트 시스템에서 요구될 때마다 수행된다. 또한, 시스템 버스가 사용되지 않는 동안, 메인 제어 유니트 (1300)의 제어에 따라 갱신 동작이 수행될 수 있다. 본 명세서에는 호스트 시스템에 의해서 요구되는 갱신 동작이 설명될 것이다. 앞서 설명된 바와 같이, 램 (120)의 소정 영역 (예를 들면, NAND 플래시 메모리의 페이지 데이터가 저장되는 영역)에 새로운 데이터가 저장되었는 지의 여부를 나타내는 유효 비트 정보가 메모리 (1100)에 저장된다. 갱신 동작은 메모리 (1100)에 저장된 유효 비트 정보를 근거로 하여 수행된다.
먼저, 갱신 요구가 들어오면, 메인 제어 유니트 (1300)는 갱신 명령을 플래시 메모리 관리 및 제어 유니트 (1500)로 출력한다. 플래시 메모리 관리 및 제어 유니트 (1500)는 메모리 (1100)에 저장된 페이지 정보 및 유효 비트 정보를 순차적으로 참조하여 NAND 플래시 메모리 (130)의 선택될 페이지가 갱신될 페이지인지의 여부를 판별한다. 만약 선택될 페이지가 갱신될 페이지이면, 선택될 페이지를 포함하는 NAND 플래시 메모리 (130)의 메모리 블록이 소거된다 (S220). 메모리 블록이 소거된 후, 소거된 메모리 블록에 결함 페이지가 존재하는 지의 여부가 판별된다 (S230). 만약 결함 페이지가 존재하면, 플래시 메모리 관리 및 제어 유니트 (1500)는 페이지 어드레스를 재조정한 후, 도 5에 도시된 바와 같이, 페이지 어드레스 테이블을 수정한다 (S240). 그 다음에, 절차는 단계 (S250)로 진행한다. 만약 단계 (S230)에서 결함 페이지가 없으면, 절차는 단계 (S250)로 진행한다. 단계 (S250)에서는 플래시 메모리 관리 및 제어 유니트 (1500)는 메모리 (1100)의 유효 비트 정보를 이용하여 낸드 어드레스를 생성한다. 플래시 메모리 관리 및 제어 유니트 (1500)는 낸드 어드레스, 프로그램 명령, 그리고 일련의 데이터를 NAND 플래시 메모리 (130)로 출력하며, NAND 플래시 메모리 (130)에 제공된 데이터는 잘 알려진 프로그램 방법에 따라 저장될 것이다 (S260). NAND 플래시 메모리 (130)로 전달되는 데이터는 페이지 데이터이며, 앞서 설명된 것과 같은 방법을 통해 램 (120)으로부터 제공된다. 플래시 메모리 관리 및 제어 유니트 (1500)는 페이지 어드레스 테이블에 저장된 페이지 어드레스 정보를 메모리 (1100)에 저장한다 (S170). 이후, 앞서 설명된 갱신 동작은 모든 유효 비트 정보가 참조될 때까지 반복적으로 수행될 것이다.
이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
상술한 바와 같이, 메모리 요구가 호스트 시스템으로부터 들어올 때, NAND 플래시 메모리가 항상 액세스 되는 것이 아니라 램에 요구되는 데이터가 존재하는 지의 여부에 따라 액세스 된다. 이는 NAND 플래시 메모리에 저장된 데이터를 읽기 위한 별도의 모드 (demand paging mode)가 필요하지 않음을 의미한다. 즉, 호스트 시스템의 소프트웨어 부담이 줄어든다. 또한, 불필요하게 램 전체에 NAND 플래시 메모리의 데이터를 저장하지 않아도 되기 때문에, 효율적인 메모리 관리가 가능하다.
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도;
도 2는 본 발명의 예시적인 실시예에 따른 도 1에 도시된 컨트롤러를 개략적으로 보여주는 블록도;
도 3은 본 발명의 예시적인 실시예에 따른 도 2에 도시된 메모리 시스템의 읽기 및 쓰기 동작들을 설명하기 위한 동작 흐름도;
도 4는 본 발명에 따른 메모리 시스템의 갱신 동작을 설명하기 위한 흐름도; 그리고
도 5는 플래시 메모리 관리 및 제어 유니트의 페이지 어드레스 테이블과 NAND 플래시 메모리의 물리적인 페이지 번호 사이의 관계를 보여주는 도면이다.
* 도면의 주요 부분에 대한 부호 설명 *
100: 메모리 시스템110: 컨트롤러
120: 램130: 불 휘발성 메모리

Claims (32)

  1. 낸드 플래시 메모리와;
    상기 낸드 플래시 메모리의 데이터를 저장하는 램과; 그리고
    메모리 요구에 응답하여 상기 램과 상기 낸드 플래시 메모리의 액세스를 제어하는 컨트롤러를 포함하며,
    상기 컨트롤러는 상기 램에 저장된 데이터의 어드레스 정보를 저장하는 메모리를 포함하고, 상기 메모리 요구시 선택적으로 액세스되도록 상기 메모리의 어드레스 정보를 참조하여 상기 낸드 플래시 메모리를 제어하는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 컨트롤러는 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치하는 지의 여부를 판별하며, 판결 결과에 따라 상기 낸드 플래시 메모리를 선택적으로 액세스하는 메모리 시스템.
  3. 제 2 항에 있어서,
    상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치할 때, 상기 컨트롤러는 상기 낸드 플래시 메모리의 액세스 없이 상기 램의 데이터를 외부로 출력하는 메모리 시스템.
  4. 제 2 항에 있어서,
    상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치하지 않을 때, 상기 컨트롤러는 상기 낸드 플래시 메모리의 데이터가 상기 램에 그리고 외부로 출력되도록 상기 낸드 플래시 메모리를 제어하는 메모리 시스템.
  5. 제 1 항에 있어서,
    상기 컨트롤러는 블록 단위 대신에 페이지 단위로 상기 낸드 플래시 메모리를 관리하며, 상기 낸드 플래시 메모리의 페이지 어드레스 정보를 상기 메모리에 저장하는 메모리 시스템.
  6. 제 1 항에 있어서,
    상기 컨트롤러는 외부로부터 입력된 데이터가 상기 램에 저장될 때마다 상기 저장된 데이터의 어드레스 정보를 상기 메모리에 저장하는 메모리 시스템.
  7. 제 2 항에 있어서,
    상기 컨트롤러는
    상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치하는 지의 여부에 따라 읽기/쓰기 액세스 명령을 발생하는 메인 제어 유니트와;
    상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치할 때, 상기 메인 제어 유니트로부터의 읽기/쓰기 액세스 명령에 응답하여 상기 램의 액세스 동작을 제어하는 메모리 제어 유니트와; 그리고
    상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치하지 않을 때, 상기 메인 제어 유니트로부터의 읽기/쓰기 액세스 명령에 응답하여 낸드 플래시 메모리의 액세스를 제어하는 플래시 메모리 관리 및 제어 유니트를 더 포함하는 메모리 시스템.
  8. 제 7 항에 있어서,
    상기 메인 제어 유니트는, 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치할 때, 상기 어드레스를 상기 램에 적합한 램 어드레스로 변환하고, 변환된 램 어드레스를 상기 램으로 출력하는 메모리 시스템.
  9. 제 7 항에 있어서,
    상기 플래시 메모리 관리 및 제어 유니트는, 상기 메모리 요구시 입력된 어드레스 정보가 상기 메모리의 어드레스 정보와 일치하지 않을 때, 상기 어드레스를 상기 낸드 플래시 메모리에 적합한 낸드 어드레스로 변환하는 메모리 시스템.
  10. 제 7 항에 있어서,
    상기 플래시 메모리 관리 및 제어 유니트는 상기 낸드 플래시 메모리의 액세스된 페이지와 관련된 정보를 상기 메모리에 저장하는 메모리 시스템.
  11. 제 10 항에 있어서,
    상기 낸드 플래시 메모리의 액세스된 페이지가 결함 페이지일 때, 상기 플래시 메모리 관리 및 제어 유니트는 결함 페이지 정보를 상기 메모리에 저장하는 메모리 시스템.
  12. 제 11 항에 있어서,
    상기 플래시 메모리 관리 및 제어 유니트는 상기 낸드 플래시 메모리를 액세스할 때 상기 결함 페이지 대신에 다른 페이지가 선택되도록 설정된 페이지 어드레스 테이블을 포함하는 메모리 시스템.
  13. 제 7 항에 있어서,
    상기 램에 새로운 데이터가 쓰여질 때, 상기 메인 제어 유니트는 상기 램에 새로운 데이터가 저장되었는 지의 여부를 나타내는 유효 어드레스 정보를 상기 메모리에 저장하는 메모리 시스템.
  14. 제 13 항에 있어서,
    상기 플래시 메모리 관리 및 제어 유니트는, 갱신 동작이 요구될 때, 상기 메모리의 유효 어드레스 정보를 참조하여 낸드 어드레스를 발생하는 메모리 시스템.
  15. 제 7 항에 있어서,
    상기 컨트롤러는 상기 낸드 플래시 메모리에서 읽혀진 데이터를 임시 저장하는 임시 메모리를 더 포함하는 메모리 시스템.
  16. 제 15 항에 있어서,
    상기 램의 데이터를 상기 낸드 플래시 메모리에 저장할 때, 상기 임시 메모리는 상기 메모리 제어 유니트의 제어에 따라 상기 램으로부터의 데이터를 저장하고 그렇게 저장된 데이터는 상기 플래시 메모리 관리 및 제어 유니트의 제어에 따라 상기 낸드 플래시 메모리로 출력되는 메모리 시스템.
  17. 제 15 항에 있어서,
    상기 낸드 플래시 메모리의 데이터를 상기 램에 저장할 때, 상기 임시 메모리는 상기 플래시 메모리 관리 및 제어 유니트의 제어에 따라 상기 낸드 플래시 메모리로부터의 데이터를 저장하고 그렇게 저장된 데이터는 상기 메모리 제어 유니트의 제어에 따라 상기 램으로 그리고 외부로 출력되는 메모리 시스템.
  18. 낸드 플래시 메모리와;
    상기 낸드 플래시 메모리의 데이터를 저장하는 램과; 그리고
    상기 램과 상기 낸드 플래시 메모리의 액세스를 제어하는 컨트롤러를 포함하며,
    상기 컨트롤러는
    상기 램에 저장된 데이터의 메모리 어드레스 정보 중 태그 어드레스를 저장하는 메모리와;
    메모리 요구시 입력된 메모리 어드레스 중 태그 어드레스가 상기 메모리의 태그 어드레스와 일치하는 지의 여부에 따라 제1 및 제 2 액세스 명령들 중 어느 하나를 발생하는 메인 제어 유니트와;
    상기 제 1 액세스 명령에 응답하여 상기 램의 액세스 동작을 제어하는 메모리 제어 유니트와; 그리고
    상기 제 2 액세스 명령에 응답하여 상기 낸드 플래시 메모리의 액세스를 제어하는 플래시 메모리 관리 및 제어 유니트를 포함하는 메모리 시스템.
  19. 제 18 항에 있어서,
    상기 메모리 요구시 입력된 메모리 어드레스 중 태그 어드레스가 상기 메모리의 태그 어드레스와 일치할 때, 상기 컨트롤러는 상기 낸드 플래시 메모리의 액세스 없이 상기 램의 데이터가 외부로 출력되도록 상기 메모리 제어 유니트를 제어하는 메모리 시스템.
  20. 제 18 항에 있어서,
    상기 메모리 요구시 입력된 메모리 어드레스 중 태그 어드레스가 상기 메모리의 태그 어드레스와 일치하지 않을 때, 상기 컨트롤러는 상기 낸드 플래시 메모리의 데이터가 상기 램에 그리고 외부로 출력되도록 상기 플래시 메모리 관리 및 제어 유니트 및 상기 메모리 제어 유니트를 제어하는 메모리 시스템.
  21. 제 18 항에 있어서,
    상기 플래시 메모리 관리 및 제어 유니트는 블록 단위 대신에 페이지 단위로 상기 낸드 플래시 메모리를 관리하며, 상기 낸드 플래시 메모리의 페이지 어드레스 정보를 상기 메모리에 저장하는 메모리 시스템.
  22. 제 18 항에 있어서,
    상기 메인 제어 유니트는 외부로부터 입력된 데이터가 상기 램에 저장될 때마다 상기 저장된 데이터의 태그 어드레스를 상기 메모리에 저장하는 메모리 시스템.
  23. 제 18 항에 있어서,
    상기 메인 제어 유니트는, 상기 메모리 요구시 입력된 메모리 어드레스 중 태그 어드레스가 상기 메모리의 태그 어드레스와 일치할 때, 상기 메모리 어드레스를 상기 램에 적합한 램 어드레스로 변환하고, 변환된 램 어드레스를 상기 램으로 출력하는 메모리 시스템.
  24. 제 23 항에 있어서,
    상기 플래시 메모리 관리 및 제어 유니트는, 상기 메모리 요구시 입력된 메모리 어드레스 중 태그 어드레스가 상기 메모리의 태그 어드레스와 일치하지 않을 때, 상기 메모리 어드레스를 상기 낸드 플래시 메모리에 적합한 낸드 어드레스로 변환하는 메모리 시스템.
  25. 제 18 항에 있어서,
    상기 플래시 메모리 관리 및 제어 유니트는 상기 낸드 플래시 메모리의 액세스된 페이지와 관련된 정보를 상기 메모리에 저장하는 메모리 시스템.
  26. 제 25 항에 있어서,
    상기 낸드 플래시 메모리의 액세스된 페이지가 결함 페이지일 때, 상기 플래시 메모리 관리 및 제어 유니트는 결함 페이지 정보를 상기 메모리에 저장하는 메모리 시스템.
  27. 제 25 항에 있어서,
    상기 플래시 메모리 관리 및 제어 유니트는 상기 낸드 플래시 메모리를 액세스할 때 상기 결함 페이지 대신에 다른 페이지가 선택되도록 설정된 페이지 어드레스 테이블을 포함하는 메모리 시스템.
  28. 제 18 항에 있어서,
    상기 램에 새로운 데이터가 쓰여질 때, 상기 메인 제어 유니트는 상기 램에 새로운 데이터가 저장되었는 지의 여부를 나타내는 유효 어드레스 정보를 상기 메모리에 저장하는 메모리 시스템.
  29. 제 28 항에 있어서,
    상기 플래시 메모리 관리 및 제어 유니트는, 갱신 동작이 요구될 때, 상기 메모리의 유효 어드레스 정보를 참조하여 낸드 어드레스를 발생하는 메모리 시스템.
  30. 제 18 항에 있어서,
    상기 컨트롤러는 상기 낸드 플래시 메모리에서 읽혀진 데이터를 임시 저장하는 임시 메모리를 더 포함하는 메모리 시스템.
  31. 제 30 항에 있어서,
    상기 램의 데이터를 상기 낸드 플래시 메모리에 저장할 때, 상기 임시 메모리는 상기 메모리 제어 유니트의 제어에 따라 상기 램으로부터의 데이터를 저장하고 그렇게 저장된 데이터는 상기 플래시 메모리 관리 및 제어 유니트의 제어에 따라 상기 낸드 플래시 메모리로 출력되는 메모리 시스템.
  32. 제 30 항에 있어서,
    상기 낸드 플래시 메모리의 데이터를 상기 램에 저장할 때, 상기 임시 메모리는 상기 플래시 메모리 관리 및 제어 유니트의 제어에 따라 상기 낸드 플래시 메모리로부터의 데이터를 저장하고 그렇게 저장된 데이터는 상기 메모리 제어 유니트의 제어에 따라 상기 램으로 그리고 외부로 출력되는 메모리 시스템.
KR1020040010144A 2004-02-16 2004-02-16 불 휘발성 메모리를 제어하기 위한 컨트롤러 KR101085406B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020040010144A KR101085406B1 (ko) 2004-02-16 2004-02-16 불 휘발성 메모리를 제어하기 위한 컨트롤러
US11/034,176 US7373452B2 (en) 2004-02-16 2005-01-12 Controller for controlling nonvolatile memory
JP2005008363A JP5043302B2 (ja) 2004-02-16 2005-01-14 不揮発性メモリを制御するためのコントローラ
CNB200510071727XA CN100481022C (zh) 2004-02-16 2005-02-16 用于控制非易失性存储器的控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040010144A KR101085406B1 (ko) 2004-02-16 2004-02-16 불 휘발성 메모리를 제어하기 위한 컨트롤러

Publications (2)

Publication Number Publication Date
KR20050081769A true KR20050081769A (ko) 2005-08-19
KR101085406B1 KR101085406B1 (ko) 2011-11-21

Family

ID=34836784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040010144A KR101085406B1 (ko) 2004-02-16 2004-02-16 불 휘발성 메모리를 제어하기 위한 컨트롤러

Country Status (4)

Country Link
US (1) US7373452B2 (ko)
JP (1) JP5043302B2 (ko)
KR (1) KR101085406B1 (ko)
CN (1) CN100481022C (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150055879A (ko) * 2013-11-14 2015-05-22 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
JP2017045457A (ja) * 2015-08-27 2017-03-02 三星電子株式会社Samsung Electronics Co.,Ltd. トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100762259B1 (ko) * 2005-09-12 2007-10-01 삼성전자주식회사 버스트 읽기 레이턴시 기능을 갖는 낸드 플래시 메모리장치
US8131914B2 (en) * 2006-02-09 2012-03-06 Freescale Semiconductor, Inc. Electronic device having a memory element and method of operation therefor
KR100746036B1 (ko) 2006-02-23 2007-08-06 삼성전자주식회사 플래시 메모리를 제어하는 장치 및 방법
US7716411B2 (en) 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US20080040544A1 (en) * 2006-08-08 2008-02-14 Jason Caulkins Computer System For Reading And Writing Data
US8086791B2 (en) * 2006-08-08 2011-12-27 Dataram, Inc. Solid state memory device with PCI controller
JP5137002B2 (ja) 2007-01-25 2013-02-06 株式会社メガチップス メモリコントローラ
JP5032172B2 (ja) 2007-03-28 2012-09-26 株式会社東芝 統合メモリ管理装置及び方法並びにデータ処理システム
US8135900B2 (en) 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
JP4412676B2 (ja) 2007-05-30 2010-02-10 インターナショナル・ビジネス・マシーンズ・コーポレーション メインメモリに書き込むデータをキャッシュする技術
JP4922860B2 (ja) * 2007-08-01 2012-04-25 株式会社日立製作所 半導体装置
US8285919B2 (en) * 2008-05-27 2012-10-09 Initio Corporation SSD with improved bad block management
US20090307416A1 (en) * 2008-06-04 2009-12-10 Intitio Corporation Ssd with a controller accelerator
CN101751338B (zh) * 2008-12-15 2012-03-07 中芯国际集成电路制造(上海)有限公司 数据存取控制装置及数据存取方法
US8924661B1 (en) * 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8838878B2 (en) * 2010-06-01 2014-09-16 Greenliant Llc Method of writing to a NAND memory block based file system with log based buffering
KR20140017622A (ko) * 2011-03-23 2014-02-11 톰슨 라이센싱 메모리 인터페이스 제어 방법 및 관련 인터페이스
US9158546B1 (en) 2011-04-06 2015-10-13 P4tents1, LLC Computer program product for fetching from a first physical memory between an execution of a plurality of threads associated with a second physical memory
US9176671B1 (en) 2011-04-06 2015-11-03 P4tents1, LLC Fetching data between thread execution in a flash/DRAM/embedded DRAM-equipped system
US9170744B1 (en) 2011-04-06 2015-10-27 P4tents1, LLC Computer program product for controlling a flash/DRAM/embedded DRAM-equipped system
US8930647B1 (en) 2011-04-06 2015-01-06 P4tents1, LLC Multiple class memory systems
US9164679B2 (en) 2011-04-06 2015-10-20 Patents1, Llc System, method and computer program product for multi-thread operation involving first memory of a first memory class and second memory of a second memory class
US8607089B2 (en) 2011-05-19 2013-12-10 Intel Corporation Interface for storage device access over memory bus
US9417754B2 (en) 2011-08-05 2016-08-16 P4tents1, LLC User interface system, method, and computer program product
US8423722B1 (en) * 2011-08-26 2013-04-16 Western Digital Technologies, Inc. System and method for high performance command processing in solid state drives
US9116856B2 (en) * 2012-11-08 2015-08-25 Qualcomm Incorporated Intelligent dual data rate (DDR) memory controller
US8812744B1 (en) 2013-03-14 2014-08-19 Microsoft Corporation Assigning priorities to data for hybrid drives
US9626126B2 (en) 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management
US9946495B2 (en) 2013-04-25 2018-04-17 Microsoft Technology Licensing, Llc Dirty data management for hybrid drives
JP6021759B2 (ja) * 2013-08-07 2016-11-09 株式会社東芝 メモリシステムおよび情報処理装置
US10185515B2 (en) 2013-09-03 2019-01-22 Qualcomm Incorporated Unified memory controller for heterogeneous memory on a multi-chip package
CN105975406B (zh) * 2016-04-29 2019-05-10 浪潮(北京)电子信息产业有限公司 一种数据存取方法及装置
JP6734536B2 (ja) * 2016-07-29 2020-08-05 富士通株式会社 情報処理装置及びメモリコントローラ
JP6880769B2 (ja) 2017-01-24 2021-06-02 富士通株式会社 情報処理装置,制御プログラムおよび情報処理方法
CN111258922B (zh) * 2020-01-14 2023-10-27 深圳天邦达科技有限公司 阈值参数的读取方法和装置
JP2021182300A (ja) 2020-05-20 2021-11-25 キオクシア株式会社 メモリコントローラ、メモリシステムおよびメモリシステムの制御方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190617B1 (en) * 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JPH07146820A (ja) * 1993-04-08 1995-06-06 Hitachi Ltd フラッシュメモリの制御方法及び、それを用いた情報処理装置
US5596713A (en) * 1993-12-08 1997-01-21 Zenith Data Systems Corporation Method to prevent data loss in an electrically erasable read only memory
US5696929A (en) * 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
JP2000276402A (ja) * 1999-03-24 2000-10-06 Kokusai Electric Co Ltd フラッシュメモリ駆動方法及びフラッシュメモリ装置
JP3574078B2 (ja) 2001-03-16 2004-10-06 東京エレクトロンデバイス株式会社 記憶装置と記憶装置制御方法
JP4049297B2 (ja) 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
JP4256600B2 (ja) * 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
KR100393619B1 (ko) 2001-09-07 2003-08-02 삼성전자주식회사 휴대 단말기의 메모리 장치 및 그 제어방법
ATE503229T1 (de) * 2002-04-30 2011-04-15 Dsp Group Switzerland Ag Verfahren zur ausholung von daten aus einem nichtflüchtigen speicher in einer integrierten schaltung und integrierte schaltung hierfür
US20060143365A1 (en) * 2002-06-19 2006-06-29 Tokyo Electron Device Limited Memory device, memory managing method and program
JP2004046481A (ja) * 2002-07-11 2004-02-12 Seiko Epson Corp 半導体集積回路装置
US6888755B2 (en) * 2002-10-28 2005-05-03 Sandisk Corporation Flash memory cell arrays having dual control gates per memory cell charge storage element

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150055879A (ko) * 2013-11-14 2015-05-22 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
JP2017045457A (ja) * 2015-08-27 2017-03-02 三星電子株式会社Samsung Electronics Co.,Ltd. トランザクション基盤のハイブリッドメモリモジュール、及びそれを動作させる方法

Also Published As

Publication number Publication date
JP5043302B2 (ja) 2012-10-10
KR101085406B1 (ko) 2011-11-21
CN1700188A (zh) 2005-11-23
US7373452B2 (en) 2008-05-13
US20050182893A1 (en) 2005-08-18
JP2005235182A (ja) 2005-09-02
CN100481022C (zh) 2009-04-22

Similar Documents

Publication Publication Date Title
KR101085406B1 (ko) 불 휘발성 메모리를 제어하기 위한 컨트롤러
US10997065B2 (en) Memory system and operating method thereof
US7506103B2 (en) Cache operation with non-cache memory
US7302517B2 (en) Apparatus and method for controlling execute-in-place (XIP) in serial flash memory, and flash memory chip using the same
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US8285940B2 (en) Method and apparatus for high speed cache flushing in a non-volatile memory
US7174440B2 (en) Method and apparatus for performing block caching in a non-volatile memory system
KR101165429B1 (ko) 반도체 기억장치 및 그 액세스 방법 및 메모리 제어 시스템
KR100526879B1 (ko) 플래쉬 파일 시스템
JP4044067B2 (ja) シリアルフラッシュメモリにおけるxipのための優先順位に基づくフラッシュメモリ制御装置及びこれを用いたメモリ管理方法、これによるフラッシュメモリチップ
US8225047B2 (en) Memory system with pre-fetch operation
US11030093B2 (en) High efficiency garbage collection method, associated data storage device and controller thereof
KR101300657B1 (ko) 비휘발성 메모리 및 버퍼 메모리를 포함하는 메모리 시스템및 그것의 데이터 읽기 방법
US9141549B2 (en) Memory system with read and write caches and method of controlling memory system with read and write caches
US8086785B2 (en) System and method of page buffer operation for memory devices
JP2012133416A (ja) メモリシステム
JPH10207768A (ja) エンジン動作中におけるフラッシュ・メモリにアクセスするための方法および装置
US7975099B2 (en) Data storage system including respective buffers for non-volatile memory and disc recording medium, and data access method thereof
CN110874186A (zh) 闪存控制器及相关的存取方法及电子装置
KR100704618B1 (ko) 플래시 메모리의 데이터 복구 장치 및 방법
JPH07114500A (ja) 不揮発性メモリ記憶装置
KR102516539B1 (ko) 메모리 컨트롤러 및 그 동작 방법
KR20210063724A (ko) 메모리 시스템
JP4826873B2 (ja) ホットルーチンメモリを有するマイクロプロセッサシステム

Legal Events

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

Payment date: 20141031

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151030

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181031

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191031

Year of fee payment: 9