KR100481943B1 - 시간적·공간적 지역성을 향상시키고 플레쉬 메모리장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및데이터 억세스 방법 - Google Patents

시간적·공간적 지역성을 향상시키고 플레쉬 메모리장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및데이터 억세스 방법 Download PDF

Info

Publication number
KR100481943B1
KR100481943B1 KR10-2003-0032552A KR20030032552A KR100481943B1 KR 100481943 B1 KR100481943 B1 KR 100481943B1 KR 20030032552 A KR20030032552 A KR 20030032552A KR 100481943 B1 KR100481943 B1 KR 100481943B1
Authority
KR
South Korea
Prior art keywords
buffer
block
flash memory
storing
data
Prior art date
Application number
KR10-2003-0032552A
Other languages
English (en)
Other versions
KR20040100262A (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-0032552A priority Critical patent/KR100481943B1/ko
Publication of KR20040100262A publication Critical patent/KR20040100262A/ko
Application granted granted Critical
Publication of KR100481943B1 publication Critical patent/KR100481943B1/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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • 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
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

시간적·공간적 지역성을 향상시키고 플레쉬 메모리 장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및 데이터 억세스 방법이 개시된다. 본 발명의 플레쉬 메모리 시스템은 온-칩 캐쉬를 내장한 프로세서가 사용하는 명령어 또는 데이터를 저장하는 플레쉬 메모리 장치와, 플레쉬 메모리 장치로 입출력되는 데이터를 저장하는 페이지 레지스터와, 페이지 레지스터에 저장된 소정의 블럭을 선택적으로 패치하여 선택된 블럭을 온-칩 캐쉬로 전송하는 다이나믹 패칭 유닛과, 온-칩 캐쉬로부터 교체되는 블럭 데이터를 페이지 레지스터로 전송하기 이전에 저장하는 희생 버퍼와, 다이나믹 패칭 유닛에 의해 패치된 블럭을 저장하고 온-칩 캐쉬로 보내는 공간 버퍼를 포함한다. 따라서, 본 발명의 플레쉬 메모리 시스템에 의하면, 플레쉬 메모리 장치로의 접근 횟수를 줄여 소비 전력을 감소시키고 접근 실패율과 메모리 접근 시간을 줄인다.

Description

시간적·공간적 지역성을 향상시키고 플레쉬 메모리 장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및 데이터 억세스 방법{Flash memory system for improving temporal locality and spatial locality and for reducing data access time and data access method using the same}
본 발명은 메모리 시스템에 관한 것으로, 특히 시간적·공간적 지역성을 향상시키고 플레쉬 메모리 장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및 이를 이용한 데이터 억세스 방법에 관한 것이다.
오늘날, 다양한 형태의 정보화 미디어 기기의 사용이 급속히 확대되고 있다. 특히, 이동 통신 단말기, 디지털 카메라, MP3 플레이어, 포토블 컴퓨터, 셋톱 박스, PDA와 같은 다양한 휴대용 디지털 미디어 기기들이 보급되고 있다. 디지털 카메라, MP3 플레이어 등의 기기들은 사용자 편의를 위하여 고성능의 소형 제품들로 만들어지고, 종래의 필름이나 테이프에 데이터를 저장하는 아날로그 방식에서 벗어나 디지털 방식으로 데이터를 처리한다. 이를 위하여, 디지털 미디어 기기들은 새로운 방식의 데이터 저장 장치를 필요로 한다.
디지털 데이터를 저장하는 장치로는 광학 미디어, 고밀도화된 마그네틱 타입의 미디어, 그리고 플레쉬 메모리 장치 등이 있다. 플레쉬 메모리 장치는 주로 디지털 카메라, 캠코더, MP3 플레이어 등에 내장된다. 플레쉬 메모리 장치는 저장된 데이터가 유지 보존되는 비휘발성이고 대용량의 데이터를 저장할 수 있다는 특징으로 인해, 가장 선호되는 저장 매체이다. 플레쉬 메모리 장치의 종류로는 NOR형 플레쉬 메모리와 NAND형 플레쉬 메모리가 있다. NOR형 플레쉬 메모리는 동작 속도가 빠른 장점이 있는 반면 고가인 단점이 있다. NAND형 플레쉬 메모리는 저가인 대신 동작 속도가 느린 단점이 있다. 그러므로 고성능 내장형 프로세서의 동작 속도와 NAND 플레쉬 메모리 장치의 접근 속도 사이에는 현격한 차이가 있다.
한편, 동영상, 3D 게임, 화상 통신과 같은 응용 프로그램들이 이동 통신 단말기에서 사용되는 데, 이러한 이동 통신 단말기 사용자에게 고성능을 제공하기 위하여 저장 매체의 고성능화가 필요하다. 이에 따라 플레쉬 메모리의 접근 시간을 줄일 수 있는 방안으로, 플레쉬 메모리 장치에 쓰기 버퍼(write buffer)를 내장하여 쓰기 동작과 지움 동작을 줄임으로써 플레쉬 메모리 장치를 고성능화시킨다.
그런데, 내장형 프로세서의 명령어 및 데이터 사용에 대한 온-칩 캐쉬의 접근이 실패인 경우, 플레쉬 메모리 장치로의 긴 접근 시간으로 인해 시스템 전체의 성능이 떨어진다. 이에 따라, 화상이나 동영상 같은 실시간 응용 프로그램의 경우, 데이터 읽기 동작에서 프로그램의 수행이 원활하지 못하는 문제점이 야기된다.
따라서, 쓰기 동작 뿐아니라 읽기 동작에서도 고속 접근이 가능한 새로운 플레쉬 메모리 시스템이 필요하다.
본 발명의 목적은 쓰기 동작 뿐아니라 읽기 동작에서도 고속 접근이 가능한 플레쉬 메모리 시스템을 제공하는 데 있다.
본 발명의 다른 목적은 플레쉬 메모리 장치로의 접근 횟수를 줄일 수 있는 플레쉬 메모리 시스템을 제공하는 데 있다.
본 발명의 또다른 목적은 소비 전력을 감소시킬 수 있는 플레쉬 메모리 시스템을 제공하는 데 있다.
본 발명의 더욱더 다른 목적은 상기 플레쉬 메모리 시스템을 이용한 데이터 억세스 방법을 제공하는 데 있다.
상기 목적을 달성하기 위하여, 본 발명은 온-칩 캐쉬를 내장한 프로세서가 사용하는 명령어 또는 데이터를 저장하는 플레쉬 메모리 시스템에 있어서, 명령어 또는 데이터를 저장하는 플레쉬 메모리 장치; 플레쉬 메모리 장치로 입출력되는 데이터를 저장하는 페이지 레지스터; 페이지 레지스터에 저장된 소정의 블럭을 선택적으로 패치하여 선택된 블럭을 온-칩 캐쉬로 전송하는 다이나믹 패칭 유닛; 온-칩 캐쉬로부터 교체되는 블럭 데이터를 저장하는 희생 버퍼; 및 다이나믹 패칭 유닛에 의해 패치된 블럭이 저장되는 공간 버퍼를 포함한다.
바람직하기로, 다이나믹 패칭 유닛은 공간 버퍼에 저장된 블럭들 중 일정 블럭들의 참조 비트들을 저장하는 D 플립플롭; D 플립플롭에 저장된 참조 비트들을 합산하는 가산기; 가산기의 합산 결과에 응답하여 페이지 레지스터로부터 소정 블럭을 패치하여 공간 버퍼로 대체시키도록 패치 신호를 발생하는 멀티플렉서; 및 가산기의 합산 결과에 따른 블럭 패치 크기를 저장하는 레지스터를 포함한다. 멀티플렉서는 레지스터에 저장된 이전 블럭 패치 크기를 참조하여 다음 블럭 패치 크기를 확대시킨다.
희생 버퍼는 온-칩 캐쉬로부터 교체되는 블럭 데이터의 태그값을 저장하는 내용 번지 메모리 장치(CAM); 및 블럭의 데이터값을 저장하는 SRAM을 포함한다. 페이지 레지스터는 온-칩 캐쉬로부터 교체되는 블럭 데이터을 페이지 레지스터로 전송하기 이전에 저장한다. 플레쉬 메모리 시스템은 희생 버퍼에 저장된 블럭 데이터가 프로세서에 의해 적중(hit)되면 적중된 블럭 데이터를 온-칩 캐쉬로 이동시킨다. 공간 버퍼는 다이나믹 패칭 유닛을 통하여 페이지 레지스터로부터 패치된 블럭의 태그값을 데이터를 저장하는 내용 번지 메모리 장치(CAM); 블럭의 데이터값을 저장하는 SRAM; 및 CAM에 저장된 블럭이 참조되었던 블럭인지 여부를 나타내는 참조 비트들을 포함한다.
상기 다른 목적을 달성하기 위하여, 본 발명의 데이터 억세스 방법은 컴퓨터 시스템의 데이터 억세스 방법에 있어서, 프로세서에 내장된 온-칩 캐쉬로의 접근이 실패되면, 희생 버퍼로의 접근 또는 공간 버퍼로의 접근을 시도하는 단계; 희생 버퍼로의 접근 또는 공간 버퍼로의 접근이 성공하면 요청한 데이터 또는 명령어를 온-칩 캐쉬로 보내고, 희생 버퍼로의 접근 또는 공간 버퍼로의 접근이 실패하면 페이지 레지스터로 접근하는 단계; 페이지 레지스터로의 접근이 성공하면 요청한 데이터 또는 명령어를 온-칩 캐쉬로 보내고, 페이지 레지스터로의 접근이 실패하면 다이나믹 패칭 유닛을 통하여 페이지 레지스터의 블럭들 중 일부 블럭을 선택하는 단계; 공간 버퍼로 저장할 공간이 있으면 페이지 레지스터로부터 선택되는 일부 블럭을 공간 버퍼에 저장하고, 공간 버퍼에 저장할 공간이 없으면 페이지 레지스터로부터 요청한 블럭 갯수 만큼 공간 버퍼를 대체시킨 후 페이지 레지스터로부터 일부 블럭을 공간 버퍼에 저장하고 요청한 데이터 또는 명령어를 온-칩 캐쉬로 보내는 단계; 온-칩 캐쉬에 저장 공간이 있으면 요청한 데이터 또는 명령어를 온-칩 캐쉬에 저장하고, 온-칩 캐쉬에 저장 공간이 없으면 온-칩 캐쉬로부터 대체 블럭을 희생 버퍼로 보내는 단계; 및 희생 버퍼에 저장할 공간이 있으면 희생 버퍼에 온-칩 캐쉬로부터 대체된 블럭을 저장하고, 희생 버퍼에 저장할 공간이 없으면 희생 버퍼 대체 블럭의 더티 비트가 셋팅된 상태이면 페이지 레지스터로 저장시켜 플레쉬 메모리 장치로의 기입 동작을 수행하는 단계를 포함한다.
따라서, 본 발명에 의하면, 플레쉬 메모리 장치로의 접근 횟수를 줄여 소비 전력을 감소시키고 접근 실패율과 메모리 접근 시간을 줄인다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 예시적인 실시예를 설명하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 플레쉬 메모리 시스템을 설명하는 도면이다. 도 1을 참조하면, 플레쉬 메모리 시스템(100)은 플레쉬 메모리 모듈(110), 다이나믹 패칭 유닛(120), 그리고 지능형 버퍼 모듈(130)을 포함한다.
플레쉬 메모리 모듈(110)은 플래쉬 메모리 장치(112)와 페이지 레지스터(114)를 포함한다. 플레쉬 메모리 장치(112)는 통상적인 플레쉬 메모리 셀을 의미하고, 본 실시예에서는 설명의 편의를 위하여 NAND 플레쉬 메모리 장치를 예로 들어 설명한다.
NAND 플레쉬 메모리 모듈(110)는 프로그래밍 동작, 다른 말로 쓰기 동작과 읽기 동작이 페이지 단위로 이루어진다. 이에 대하여 삭제 동작은 블럭 단위로 이루어진다. 읽기 동작은 무작위(random) 방식과 연속적(serial) 페이지 읽기 방식으로 수행된다. 연속적 페이지 읽기 방식은 예컨대, 512 바이트(byte)의 한 페이지 단위 내의 연속적인 데이터 접근 방식으로 수행된다. 이는 하나의 데이터가 참조되면 그 근처의 데이터들도 또한 참조될 것을 의미하는 공간적 지역성을 효과적으로 이용할 수 있다. 그런데, 대부분의 프로그램의 경우 특히, 메모리 참조 패턴의 경우, 주어진 시간 내에 불러온 한 페이지의 모든 데이터를 이용하지 않는 것이 일반적이다. 이에 따라 연속적 페이지 읽기 방식은 버퍼 공간과 전송 시간의 낭비라는 문제점을 초래한다.
무작위 읽기 방식은 페이지 주소가 바뀔 때 마다 실행되고, 최악의 경우 512 바이트의 페이지 중 오직 하나의 워드나 단지 몇개의 워드만 접근하고 새로운 페이지가 페이지 레지스터(114)에 업데이트된다. 이렇게 페이지 경계를 뛰어넘는 반복 접근 양태는 하나의 데이터가 참조되면 그것이 곧 다시 참조될 것을 의미하는 시간적 지역성의 효과를 이끌어 낼 수 없다.
다이나믹 패칭 유닛(120)은 공간적 지역성과 시간적 지역성을 보다 효과적으로 이용할 수 있도록 하기 위하여 페이지 블럭 페치를 동적으로 조정한다. 다이나믹 패칭 유닛(120)은 이후에 구체적으로 설명된다.
지능형 버퍼 모듈(130)은 희생 버퍼(132, victim buffer)와 공간 버퍼(142, spatial buffer)로 구성된다. 희생 버퍼(132)는 태그(Tag) 저장을 위한 내용 번지 메모리(134, Content Addressable Memory, 이하 "CAM"이라고 칭한다)와 데이터 저장을 위한 SRAM(136)으로 구성된다. 희생 버퍼(132)의 하나의 엔트리는 통상적인 온-칩 L1 캐쉬의 블럭 크기와 동일한 크기로 구성된다. 실시예로 32 바이트로 가정하였다. 공간 버퍼(142)는 태그 저장을 위한 CAM(144), 데이터 저장을 위한 SRAM(146), 그리고 각각의 엔트리에 참조된 블럭과 참조되지 않은 블럭을 구분하기 위한 참조 비트(148)로 구성된다. 공간 버퍼(142)의 하나의 엔트리는 4개의 연속적인 L1 캐쉬 블럭의 집합인 128 바이트로 구성된다. 희생 버퍼(132)와 공간 버퍼(142)의 구조는 전형적인 완전 연관 구조와 동일하다.
도 2는 다이나믹 페칭 유닛을 설명하는 도면이다. 이를 참조하면, 다이나믹 페칭 유닛(120)은 4개의 D-플립플롭(210), 4 비트 가산기(220), 2 비트 레지스터(230), 그리고 4×1 멀티플렉서(240)를 포함한다. CPU가 메모리 접근을 수행할 때 만일 온-칩 L1 캐쉬 상에서 접근 실패가 일어나면, 플레쉬 메모리 시스템(100) 내 희생 버퍼(132)와 공간 버퍼(142)가 동시에 검색된다. 이 때, 지능 버퍼 모듈(130) 내 희생 버퍼(132)와 공간 버퍼(142)에서 모두 접근 실패가 발생하면, 가장 먼저 가져와서 오래된 블럭들 즉, 대체 후보 블럭들의 참조 비트(148) 4 개가 4 개의 D 플립플롭(210)으로 저장되고, 4 비트 가산기(220)는 D 플립플롭(210)에 내장된 값들을 합산한다. 가산기(220)의 합산 값은 0, 1, 2, 3, 4 로 나오고, 이들 합산 값은 4×1 멀티플렉서(240)를 통하여 4 개의 패치 신호들 중 하나를 생성한다. 패치 신호는 패치해야 할 블럭 사이즈를 결정한다.
만약, 가산기(220)의 합산 결과가 0 또는 1 이라면, 패치 블럭의 크기는 1 블럭 즉, 128 바이트이고, 공간 버퍼(142)는 512 바이트의 페이지 레지스터(114)에서 단지 128 바이트의 블럭만을 가져온다. 도 3과 같이, 대체 후보 블럭들의 참조 비트(148) 4 개를 합한 가산기(220)의 결과가 2 라면, 패치 블럭의 크기는 2 블럭, 즉 256 바이트로, 그리고 가산기(220)의 합산 결과가 3 이라면, 패치 블럭의 크기는 3 블럭, 즉 348 바이트로 결정된다. 도 4와 같이, 대체 후보 블럭들의 참조 비트(148) 4 개를 합한 가산기(220)의 결과가 4 라면, 패치 블럭의 크기는 4 블럭 즉, 512 바이트로 결정된다.
다시, 도 2로 돌아가서, 가산기(220)의 합산 결과는 2 비트 레지스터(230)에 저장된다. 가산기(220)의 합산 결과가 0 또는 1이면 2 비트 레지스터(230)에 00 비트가, 합산 결과가 2이면 01 비트가, 합산 결과가 3이면 10 비트가, 그리고 합산 결과가 4이면 11 비트가 2 비트 레지스터(230)에 저장된다. 2 비트 레지스터(230) 값은 4×1 멀티플렉서(240)에서 발생되는 패치 신호와 함께 패치할 블럭을 확장시키는 목적으로 사용된다.
2 비트 레지스터(230)에 저장된 값이 00 비트이면, 참조된 블럭이 0 또는 1 블럭 정도였다는 것을 의미하고 참조되지 않은 블럭은 4 블럭 또는 3 블럭 정도 였음을 의미한다. 그리고, 2 비트 레지스터(230)에 저장된 비트가 01 비트이면, 참조된 블럭은 2 블럭이고 참조되지 않은 블럭은 2 블럭임을 의미한다. 여기에서, 참조 되지 않은 블럭들은 지역성이 낮기 때문에 공간 버퍼(142)에서 빨리 제거하는 것이 유리하다.
2 비트 레지스터(230)에 00 비트가 저장된 경우, 이전의 패치 블럭 크기가 128 바이트이고 현재의 패치 신호가 128 바이트 패치를 생성한다면, 512 바이트 페이지 레지스터(114)에서 실제로 패치되는 블럭 크기는 256 바이트이다. 그리고, 이전의 패치 블럭 크기가 256 바이트이고 현재의 패치 신호가 256 바이트 패치를 생성한다면, 실제 패치되는 블럭 크기는 384 바이트로 확대된다. 이처럼 2 비트 레지스터(230)에 저장된 정보를 보고 128 바이트 또는 256 바이트 블럭을 패치하는 경우에 128 바이트 더 확대된 볼록 크기로 패치하기 때문에, 지역성을 높일 수 있는 장점이 있다.
이러한 플레쉬 메모리 시스템(100, 도 1)의 동작은 다음과 같이 이루어진다.
CPU가 메모리 접근을 수행할 때 만일 온-칩 L1 캐쉬 상에서 접근 실패가 일어난다면, 플레쉬 메모리 시스템(100) 내 희생 버퍼(132)와 공간 버퍼(142)가 동시에 검색된다. 희생 버퍼(132)와 공간 버퍼(142) 상에서의 각종 적중(hit)는 일반 L2 캐쉬에서에서의 적중과 같은 방식으로 처리된다.
즉, 요청된 데이터를 CPU로 보내는 동시에 L1 캐쉬에도 올려 놓는다. 요청된 블럭이 온-칩 L1 캐쉬에 업데이트될 때, 만일 온-칩 L1 캐쉬로부터 교체되는 어떤 블럭이 존재하면 그 블럭은 희생 버퍼(132)로 이동된다. 계속해서, 해당하는 희생 버퍼(132)로부터 교체되는 엔트리가 수정된(dirty) 블럭이라면 방출되는 블럭의 내용이 512 바이트의 페이지 레지스터(114)에 저장된다. 희생 버퍼(132)는 온-칩 L1 캐쉬의 충돌 접근 실패와 플레쉬 메모리 장치(112)로의 쓰기 명령을 효과적으로 줄일 수 있다.
만일 희생 버퍼(132)의 수정된 블럭이 적중하는 경우가 생기면, 그 블럭은 다시 한번 더 온-칩 L1 캐쉬로 이동하게 되고 플레쉬 메모리 장치(112)로의 쓰기 명령을 피할 수 있게 된다. 공간적 버퍼(142)에서의 적중인 경우에는 공간적 버퍼(142) 내의 해당 블럭이 페치되어 온-칩 L1 캐쉬로 보내지고 동시에 그 블럭은 참조가 일어난 블럭임을 나타내기 위해 그 엔트리의 참조 비트가 1로 설정된다.
희생 버퍼(132)와 공간적 버퍼(142) 모두에서 접근 실패가 발생하는 경우, 128 바이트, 256 바이트, 384 바이트, 그리고 512 바이트의 4가지 중에서 하나가 결정되어 그 크기 만큼 512 바이트의 페이지 레지스터(114)로 이동한다. 이러한 패치 크기 결정은 다이나믹 패칭 유닛(120)의 예측 결과에 의해 결정된다. 요청된 블럭이 온-칩 L1 캐쉬로 이동될 때 교체 방출되는 온-칩 L1 캐쉬 블럭이 존재하면 이 교체되는 온-칩 L1 캐쉬의 블럭은 희생 버퍼로 이동한다.
전술한 플레쉬 메모리 시스템(100, 도 1)의 동작을 도 5의 플로우 챠트를 참조하여 구체적으로 설명한다.
컴퓨터 시스템의 CPU에서 온-칩 캐쉬로의 접근이 실패되면(502), 희생 버퍼(132, 도 1)로의 접근(504) 또는 공간 버퍼(142, 도 1)로의 접근(506)을 시도한다. 희생 버퍼(132, 도 1)로의 접근(504) 또는 공간 버퍼(142, 도 1)로의 접근(506)이 성공하면 요청한 데이터 또는 명령어를 온-칩 캐쉬로 보낸다(518).
희생 버퍼(132, 도 1)로의 접근(504) 또는 공간 버퍼(142, 도 1)로의 접근(506)이 실패하면, 512 바이트 페이지 레지스터(114)로 접근한다(508). 페이지 레지스터(114, 도 1)로의 접근이 성공하면, 요청한 데이터 또는 명령어를 온-칩 캐쉬로 보낸다(518).
512 바이트 페이지 레지스터(114, 도 1)로의 접근이 실패하면, 다이나믹 패칭 유닛(120, 도 1)을 통하여 4개의 블럭들 중 일부 블럭을 선택한다(510). 공간 버퍼(142, 도 1)로 저장할 공간이 있으면(512), 512 바이트 페이지 레지스터(114, 도 1)로부터 일부 블럭을 공간 버퍼(142, 도 1)에 저장한다. 공간 버퍼(142, 도 1)에 저장할 공간이 없으면(512), 512 바이트 페이지 레지스터(114, 도 1)로부터 요청한 블럭 갯수 만큼 공간 버퍼를 대체시킨 후(516), 512 바이트 페이지 레지스터(114, 도 1)로부터 일부 블럭을 공간 버퍼(142, 도 1)에 저장한다. 이 후, 요청한 데이터 또는 명령어를 온-칩 캐쉬로 보낸다(518).
온-칩 캐쉬에 저장 공간이 있으면(520), 요청한 데이터 또는 명령어를 온-칩 캐쉬에 저장한다(522). 온-칩 캐쉬에 저장 공간이 없으면(520), 온-칩 캐쉬로부터 대체 블럭을 희생 버퍼(132, 도 1)로 보낸다(524). 희생 버퍼(132, 도 1)에 저장할 공간이 있으면(526), 희생 버퍼(132, 도 1)에 온-칩 캐쉬로부터 대체된 블럭을 저장한다(528). 희생 버퍼(132, 도 1)에 저장할 공간이 없으면(526), 희생 버퍼 대체 블럭의 더티 비트가 1로 셋팅된 상태이면(530), 512 바이트 페이지 레지스터로 저장시켜 플레쉬 메모리 장치(112, 도 1)로의 기입 동작을 수행한다.
이러한 플레쉬 메모리 시스템(100)의 동작에 의하면, 플레쉬 메모리 장치로의 접근 횟수를 줄여 소비 전력을 감소시킨다. 플레쉬 메모리 장치로 여러번 기입(write) 동작과 독출(read) 동작을 수행하게 되면 전력 소모가 높아지고 실행 시간이 길어지는 데, 특히나 영상 또는 음성 등의 실시간 응용 시스템에서 플레쉬 메모리 장치로의 접근 횟수가 많아지면 불안정한 상영 또는 연주(play)를 보여줄 수 있다. 그리고 이들 시스템이 휴대용일 경우 배터리 수명이 짧아진다.
본 발명의 플레쉬 메모리 시스템을 이용한 시뮬레이션 결과와 성능 평가를 정리하면 다음과 같다. 시물레이션 방식은 트레이스 구동 방식을 택하였고, 사용된 벤치 마크는 이미지 처리, 비디오 압축 및 해제, 음성 처리, 자연어 인식 등 실시간 응용 프로그램으로 대표되는 미디어 벤치 마크를 사용하였다. 이 벤치 마크의 트레이스를 생성하기 위해 QPT2 시뮬레이터를 사용하여 처리하였다. 오직 데이터 참조만을 시뮬레이션에 참조시켰다. DinerolV 캐쉬 시뮬레이터는 본 발명에서 제안된 플레쉬 메모리 시스템을 시뮬레이션하기 위하여 수정되었다. 시뮬레이션 실행을 위한 온-칩 시스템으로는 32KB 2-way 집합 연관 캐쉬를 지닌 200 MHz MIPS를 사용하였다. 기본 시뮬레이션 환경 변수는 표 1과 같다.
System parameters Values
CPU clock 200 MHz
Random read time 10us
Serial read time 50ns
Buffer access time 85ns
Program time 300us
I/O port 8 bit
Flash memory internal bandwidth 32 byte
다양한 패치 크기를 초기화하기 위한 방법으로써 공간 버퍼내의 참조 비트들간의 최적 조합을 알아내기 위하여 시뮬레이션을 실행하였다. 간단하고 효과적인 방법은 설명한 전례에서처럼 단지 4개의 참조 비트들을 사용하여 얻을 수 있었다. 이러한 참조 비트 집합과 2 비트 레지스터의 정보에 의거하여, 전술했던 바와 같이 4가지의 블럭 크기 중 하나가 결정된다. 이 메카니즘은 공간 버퍼가 특정 응용 프로그램이 지니는 지역성의 패턴에 따라 동적으로 적응하게끔 한다.
도 6은 실험에서 실제 초기화된 다양한 패치 크기에 따른 효과를 보여준다. Cjpeg을 제외한 미디어 벤치 마크에서는 128 바이트 패치 크기가 다른 크기 보다도 우세함을 보여준다. 그러나, 단일 128 바이트나 512 바이트 패치 크기가 사용될 때에는 더 큰 공간적 시간적 지역성을 보다 효과적으로 이용할 수 없다. 상용 플레쉬 메모리에서 512 바이트 블럭 패치 기반은 이 블럭 내의 많은 데이터들의 접근없이 대체되어짐으로 그 효율성이 낮은 것으로 드러났다. 하지만 상용 플레쉬 메모리에서 기본 패치 크기가 128 바이트라면, 이것은 512 바이트 블럭 기반보다 성능이 더 떨어짐을 보여준다. 이는 실시간 미디어 응용 프로그램은 시간적 지역성보다 공간적 지역성에 더 강한 경향을 보이기 때문이다. 도 7은 이러한 경향을 잘 보여준다.
버퍼 공간의 효과를 나타내기 위하여 지능형 버퍼 캐쉬 시스템 대신에 상용 버퍼(캐쉬) 구조가 실험에 사용되었다. 이른바 직접 사상(direct mapped) 버퍼(캐쉬)와 완전 연관(fully associative) 버퍼(캐쉬)의 두가지 구조가 다양한 블럭 크기에 대하여 실험에 사용되었다. 512 바이트와 128 바이트의 블럭 크기를 지닌 플레쉬 메모리 패킷의 접근 실패율은 도 7에서 보여지는 바와 같다. 여기서 나타난 접근 실패율은 온-칩 캐쉬를 포함한 시스템 전체의 접근 실패율이 아니라 플레쉬 메모리 모듈에 결합된 두가지 구조 버퍼의 접근 실패율이다.
직접 사상 버퍼는 DM으로 표기하였고, DM-512 바이트라는 표기는 패치 블럭 크기가 512 바이트인 직접 사상 캐쉬를 뜻한다. 비슷하게, 완전 연관 버퍼는 FA로 표기하고, FA-128 바이트는 128 바이트의 블럭 크기를 가진 완전 연관 캐쉬를 의미한다. 여기서는 Epic 벤치 마크의 결과만을 보여줬는 데, 다른 벤치 마크의 결과 역시 동일한 버퍼 크기와 동일한 블럭 크기에서 Epic 벤치 마크와 비슷한 결과를 보였다. 결과에 따르면 직접 사상 캐쉬 구조를 플레쉬 메모리에 패킷화할 경우 32KB 버퍼 용량을 사용하고도 거의 성능 효과가 없음을 알 수 있다. 그러나, 완전 연관 버퍼를 사용할 경우 128 바이트의 경우 버퍼 크기에 관계없이 성능이 거의 일정함을 알수 있으며, 512 바이트 블럭 패치의 경우 적은 버퍼 크기에도 불구하고 우수한 성능을 보임을 알 수 있다. 이러한 결과는 단지 접근 실패율에 대한 결과이다. 뒤에서 설명하겠지만, 평균 메모리 접근 시간의 경우 순수한 완전 연관 버퍼 구조가 성능 향상에 거의 영향을 미치지 못함을 알 수 있다.
결론적으로, 직접 사상 구조와 완전 연관 구조 모두에서 512 바이트 블럭 기반이 128 바이트 블럭 기반보다 더 좋은 성능을 보여주고 있다. 또한 직접 사상 버퍼의 경우에는 버퍼의 크기가 64 바이트 이상으로 구성될 때 의미있는 성능효과를 얻을 수 있다. 128 바이트 블럭 크기의 완전 연관 버퍼의 경우에서는 버퍼의 크기가 더 커지더라도 추가적인 성능 향상을 거의 얻을 수 없다. 그러나, 512 바이트 블럭 크기의 완전 연관 버퍼는 버퍼 크기가 작을 지라도 접근 실패율의 관점에서 높은 성능을 보여준다.
도 8은 제안한 모델과 메카니즘에 의한 성능 향상 정도를 기존의 버퍼 시스템이 없는 상용 NAND 플레쉬 메모리 모델에 대한 성능 향상 정도를 보여준다. 도 8에서 알 수 있듯이, 순차적 접근과 무작위 접근에 대한 읽기 명령과 쓰기 명령의 감소 비율을 보여준다. 이러한 결과는 제안된 패킷이 단지 3KB의 작은 버퍼만을 추가하고도 상용 플레쉬 메모리 메모리에 비해 쓰기 명령을 대략 78% 읽기 명령을 대략 70% 정도 감소시키는 성능 향상을 얻을 수 있었다. 즉, 전체적으로 70 % 이상의 플레쉬 메모리 접근을 막을 수 있으며, 이러한 성능 향상은 전체 시스템의 소비 전력 뿐만아니라 응용 프로그램의 원활한 수행을 보장할 수 있는 성능 향상에 크게 기여할 수 있는 데이터로 인식되어진다.
메모리 시스템의 대표적인 성능 평가 지표인 접근 실패율(miss ratio)과 평균 메모리 접근 시간(average memory access time)이 제안된 지능형 버퍼와 다른 구조 방식들을 비교, 측정하기 위해서 사용되었다. 잡근 실패율은 플레쉬 메모리 패킷 안의 버퍼 내에서 일치하는 블럭이 없는 메모리 접근의 비율을 의미한다. 평균 메모리 접근 시간은 접근의 시작으로부터 요청한 데이터가 온-칩 캐쉬에 도착할 때까지의 지연된 시간을 의미한다.
플레쉬 메모리 패킷에서의 버퍼 크기는 접근 실패율을 결정하는 중요한 요소이다. 그럼으로 이러한 버퍼의 크기는 실제 설계시 중요한 변수로써 작용되어진다. 버퍼 크기가 커질수록 시간에 영향을 미치는 주소 및 데이터 공간을 가로지르는 신호가 그만큼 길어지므로 버퍼는 느려진다. 또한, 버퍼가 커질수록 전력 소비도 그만큼 더 늘어난다. 비용 또한 무시할 수 없는 변수이다. 시뮬레이션에서는 32 바이트의 블럭 크기를 갖는 1KB 희생 버퍼와 128 바이트의 블럭 크기를 갖는 2KB 공간 버퍼를 지닌, 즉 총 3KB의 버퍼 공간을 지니는 지능형 버퍼 시스템을 가정하였다. 32KB 또는 64KB 크기의 직접 사상 버퍼와 4KB 또는 8KB 크기의 완전 연관 버퍼가 제안된 지능형 버퍼 캐쉬 시스템과 비교 측정하였다. 도 7에서와 같이 고성능을 보장하기 위하여 상용 버퍼의 기본 블럭 패치 크기는 512 바이트로 가정하였다.
제안된 지능형 버퍼 시스템에서 희생 버퍼와 공간 버퍼의 최적의 블럭 크기를 결정하기 위하여 여러번의 실험을 수행하였다. 실험 결과, 32 바이트의 작은 블럭과 128 바이트의 큰 블럭이 대부분의 경우에서 가장 좋은 성능을 보임을 시뮬레이션을 통하여 알 수 있었다. 플레쉬 메모리 패킷에 포함된 버퍼 캐쉬 시스템의 접근 실패율은 도 9에 도시되어 있다. 접근 실패율은 아래와 같은 식으로 계산된다.
접근 실패율=(버퍼 내의 총 접근 실패수 / 전체 캐쉬 내에서의 접근 실패 수)×100
총 3KB 크기의 버퍼를 지닌 지능형 버퍼 시스템의 평균 접근 실패율이 대략 30%임을 알 수 있다. 이는 어떠한 버퍼 시스템도 내장하지 않은 상용 플레쉬 메모리와 비교하였을 때, 제안된 구조가 플레쉬 메모리 접근을 약 70%까지 줄일 수 있다. 그리고 제안된 구조 및 메카니즘의 효율성을 검증하기 위한 시뮬레이션을 수행하였다. 기존에 이러한 플레쉬 패킷 구조에 대한 연구가 거의 전무한 상태이기 때문에 시뮬레이션에는 지능형 버퍼 대신에 기존의 직접 사상 버퍼와 완전 연관 버퍼를 플레쉬 메모리에 패킷화하였다고 가정하여 성능 평가를 수행하였다. 이 세 종류 버퍼의 접근 실패율이 도 9에 도시되어 있다.
도 9에서 알 수 있듯이, 주어진 크기의 예컨대, 3KB 지능형 버퍼의 접근 실패율은 8배 크기의 직접 사상 버퍼 보다는 좋은 성능 향상을 보이고 있으며, 2배 크기의 완전 연관 버퍼와 거의 비슷한 성능을 보여준다. 그러나, 지능형 버퍼에서는 주 패치 크기가 128 바이트 블럭을 채택한 데 반해, 다른 구조에서는 512 바이트 블럭을 채택한다. 이는 로딩 시간이 그만큼 길어진다는 단점을 초래한다. 메모리 계층 구조에서 성능을 평가하는 데 주로 사용하는 또 다른 성능 평가 지표는 평균 메모리 접근 시간이다. 이는 다음과 같은 식에 의하여 계산된다.
평균 메모리 접근 시간 = 캐쉬 적중 시간 + 버퍼 적중 시간 × 버퍼 적중율 + 접근 실패율 × 접근 실패 시간
접근 실패율×접근 실패 지연 시간 = 순차적 읽기 비율 × 버퍼 적중 시간 + 무작위 읽기 비율 × 무작위 읽기 시간 + 쓰기 비율 × 프로그래밍 시간
여기서, 적중 시간이란 캐쉬나 버퍼에서 적중했을 때의 수행 시간을 뜻하며, 접근 실패 시간이란 접근 실패가 발생했을 때 메모리 접근을 위해 지연되는 시간을 뜻한다. 시뮬레이션의 기본 변수들은 이미 표 1에 도시되었다. 버퍼의 적중 시간은 상용화된 NAND 플레쉬 메모리의 수행 시간에 따라 약 17 사이클(cycle)로 가정하였으며, 순차적 읽기 시간과 무작위 읽기 시간은 각각 10 사이클과 2000 사이클로 가정하였다. 마지막으로 프로그래밍(쓰기) 시간은 60000 사이클로 가정하였다.
각각 지능형 버퍼와 상용 버퍼를 사용한 NAND 플레쉬 메모리 패킷의 총 평균 메모리 접근 시간은 도 10에 도시되어 있다. 총 평균 메모리 접근 시간은 온-칩 캐쉬와 오프-칩 플레쉬 메모리로 인한 결과를 모두 반영한다. 세 가지의 접근 명령 중에서 가장 결정적인 영향을 미치는 명령은 다른 두 개와 비교하여 휠씬 느린 쓰기 명령이다.
도 9에서 본 바와 같이 완전 연관 버퍼 구조의 평균 접근 실패율이 직접 사상 버퍼의 구조보다도 더 좋은 성능을 나타낸다. 그러나, 도 10에서 보듯이 오히려 직접 사상 버퍼가 완전 연관 버퍼보다 평균 메모리 접근 시간에서는 더 좋은 성능을 보임을 알 수 있다. 이는 오직 작은 엔트리만을 지닌 완전 연관 버퍼가 많은 읽기 명령에 대해서는 접근 실패율을 줄여줄 수 있지만 상대적으로 높은 수행 시간을 요하는 쓰기 명령을 거의 줄여주지 못하기 때문이다. 즉, 쓰기 동작이 수행된 블럭이 버퍼에서 다시 온-칩 캐쉬로 올라가지 못하고 읽기 동작에 의한 접근 실패로 버퍼에서 빠져나와 바로 플레쉬 메모리로 업데이트 동작이 일어나기 때문에 많은 접근 실패율 감소에도 불구하고 전체 시스템의 성능에는 거의 영향을 못 미치게 되며, 상용 플레쉬 메모리와도 거의 유사한 성능을 보임을 알 수 있다. 이러한 결과는 버퍼의 크기가 전체 시스템에 중요한 변수가 됨을 알 수 있다. 그러나, 제안한 버퍼 구조와 새로운 기법은 단지 작은 크기의 버퍼 공간으로도 높은 성능을 이끌어 낼 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 본 발명의 플레쉬 메모리 시스템에 의하면, 플레쉬 메모리 장치로의 접근 횟수를 줄여 소비 전력을 감소시키고 접근 실패율과 메모리 접근 시간을 줄인다.
도 1은 본 발명의 일실시예에 따른 플레쉬 메모리 시스템을 설명하는 도면이다.
도 2는 본 발명의 다이나믹 패칭 유닛을 설명하는 도면이다.
도 3은 본 발명에 따른 블럭 패치 방법의 일예를 설명하는 도면이다.
도 4는 본 발명에 따른 블럭 패치 방법의 다른 예를 설명하는 도면이다.
도 5는 본 발명의 플레쉬 메모리 시스템을 이용한 데이터 억세스 방법을 설명하는 플로우 챠트이다.
도 6은 본 발명의 플레쉬 메모리 시스템을 시뮬레이션한 결과로써, 다양한 블럭 패치 크기에 따른 효과를 설명하는 도면이다.
도 7은 본 발명의 플레쉬 메모리 시스템을 시뮬레이션한 결과로써, 플레쉬 메모리 패킷의 접근 실패율을 설명하는 도면이다.
도 8은 본 발명의 플레쉬 메모리 시스템을 시뮬레이션한 결과로써, 상용 플레쉬 메모리 모델에 대한 성능 향상 정도를 설명하는 도면이다.
도 9는 본 발명의 플레쉬 메모리 시스템을 시뮬레이션한 결과로써, 직접 사상 버퍼, 완전 연관 버퍼 그리고 지능형 버퍼의 성능 평가를 설명하는 도면이다.
도 10은 본 발명의 플레쉬 메모리 시스템을 시뮬레이션한 결과로써, 직접 사상 버퍼, 완전 연관 버퍼 그리고 지능형 버퍼의 메모리 접근 시간을 비교 설명하는 도면이다.

Claims (20)

  1. 온-칩 캐쉬를 내장한 프로세서가 사용하는 명령어 또는 데이터를 저장하는 플레쉬 메모리 시스템에 있어서,
    상기 명령 또는 데이터를 저장하는 플레쉬 메모리 장치;
    상기 플레쉬 메모리 장치로 입출력되는 데이터를 저장하는 페이지 레지스터;
    상기 페이지 레지스터에 저장된 소정의 블럭을 선택적으로 패치하여 상기 선택된 블럭을 온-칩 캐쉬로 전송하는 다이나믹 패칭 유닛;
    상기 온-칩 캐쉬로부터 교체되는 블럭 데이터를 저장하는 희생 버퍼; 및
    상기 다이나믹 패칭 유닛에 의해 패치된 블럭이 저장되는 공간 버퍼를 구비하는 것을 특징으로 하는 플레쉬 메모리 시스템.
  2. 제1항에 있어서, 상기 다이나믹 패칭 유닛은
    상기 공간 버퍼에 저장된 블럭들 중 일정 블럭들의 참조 비트들을 저장하는 D 플립플롭;
    상기 D 플립플롭에 저장된 참조 비트들을 합산하는 가산기;
    상기 가산기의 합산 결과에 응답하여 상기 페이지 레지스터로부터 소정 블럭을 패치하여 상기 공간 버퍼로 대체시키도록 패치 신호를 발생하는 멀티플렉서; 및
    상기 가산기의 합산 결과에 따른 블럭 패치 크기를 저장하는 레지스터를 구비하는 것을 특징으로 하는 플레쉬 메모리 시스템.
  3. 제2항에 있어서, 상기 멀티플렉서는
    상기 레지스터에 저장된 이전 블럭 패치 크기를 참조하여 다음 블럭 패치 크기를 확대시키는 것을 특징으로 하는 플레쉬 메모리 시스템.
  4. 제1항에 있어서, 상기 희생 버퍼는
    상기 온-칩 캐쉬로부터 교체되는 블럭 데이터의 태그값을 저장하는 내용 번지 메모리 장치(CAM); 및
    상기 블럭 데이터의 데이터 값을 저장하는 SRAM을 구비하는 것을 특징으로 하는 플레쉬 메모리 시스템.
  5. 제1항에 있어서, 상기 페이지 레지스터는
    상기 온-칩 캐쉬로부터 교체되는 블럭 데이터를 상기 페이지 레지스터로 전송하기 이전에 저장하는 것을 특징으로 하는 플레쉬 메모리 시스템.
  6. 제1항에 있어서, 상기 플레쉬 메모리 시스템은
    상기 희생 버퍼에 저장된 블럭 데이터가 상기 프로세서에 의해 적중(hit)되면 상기 적중된 블럭 데이터를 상기 온-칩 캐쉬로 이동시키는 것을 특징으로 하는 플레쉬 메모리 시스템.
  7. 제1항에 있어서, 상기 공간 버퍼는
    상기 다이나믹 패칭 유닛을 통하여 상기 페이지 버퍼로부터 패치된 블럭 데이터의 태그 값을 저장하는 내용 번지 메모리 장치(CAM);
    상기 CAM에 저장된 블럭 데이터의 데이터 값을 저장하는 SRAM; 및
    상기 CAM에 저장된 블럭이 참조되었던 블럭인지 여부를 나타내는 참조 비트들을 구비하는 것을 특징으로 하는 플레쉬 메모리 시스템.
  8. 제1항에 있어서, 상기 플레쉬 메모리 장치는
    NAND형 플레쉬 메모리 장치인 것을 특징으로 하는 플레쉬 메모리 시스템.
  9. 온-칩 캐쉬를 내장한 프로세서가 사용하는 명령어 또는 데이터를 저장하는 플레쉬 메모리 시스템에 있어서,
    상기 명령 또는 데이터를 저장하는 플레쉬 메모리 장치;
    상기 플레쉬 메모리 장치로 입출력되는 데이터를 일정 블럭 단위로 저장하는 페이지 레지스터;
    공간 버퍼에 저장된 참조 비트들의 합산 값에 따라 상기 페이지 레지스터에 저장된 소정의 블럭을 선택적으로 패치하고, 상기 온-칩 캐쉬로 전송하는 다이나믹 패칭 유닛;
    상기 온-칩 캐쉬로부터 교체되는 블럭 데이터를 상기 페이지 레지스터에 저장하기 이전에 저장하는 희생 버퍼; 및
    상기 다이나믹 패칭 유닛에 의해 상기 페이지 레지스터로부터 패치된 블럭을 저장하는 공간 버퍼를 구비하는 것을 특징으로 하는 플레쉬 메모리 시스템.
  10. 제9항에 있어서, 상기 다이나믹 패칭 유닛은
    상기 공간 버퍼에 저장된 블럭들 중 일정 블럭들의 참조 비트들을 저장하는 4 개의 D 플립플롭들;
    상기 D 플립플롭들에 저장된 참조 비트들을 합산하는 4 비트 가산기;
    상기 가산기의 합산 결과에 응답하여 상기 페이지 레지스터로부터 소정 블럭을 패치하여 상기 공간 버퍼로 대체시키도록 패치 신호를 발생하는 멀티플렉서; 및
    상기 가산기의 합산 결과에 따른 블럭 패치 크기를 저장하는 2 비트 레지스터를 구비하는 것을 특징으로 하는 플레쉬 메모리 시스템.
  11. 제10항에 있어서, 상기 멀티플렉서는
    상기 2 비트 레지스터에 저장된 이전 블럭 패치 크기를 참조하여 다음 블럭 패치 크기를 확대시키는 것을 특징으로 하는 플레쉬 메모리 시스템.
  12. 제9항에 있어서, 상기 희생 버퍼는
    상기 온-칩 캐쉬로부터 교체되는 블럭 데이터의 태그 값을 저장하는 내용 번지 메모리 장치(CAM); 및
    상기 CAM에 저장된 블럭 데이터의 데이터 값을 저장하는 SRAM을 구비하는 것을 특징으로 하는 플레쉬 메모리 시스템.
  13. 제9항에 있어서, 상기 공간 버퍼는
    상기 다이나믹 패칭 유닛을 통하여 상기 페이지 버퍼로부터 패치된 블럭 데이터의 태그 값을 저장하는 내용 번지 메모리 장치(CAM);
    상기 CAM에 저장된 블럭 데이터의 데이터 값을 저장하는 SRAM; 및
    상기 CAM에 저장된 블럭이 참조되었던 블럭인지 여부를 나타내는 참조 비트들을 구비하는 것을 특징으로 하는 플레쉬 메모리 시스템.
  14. 제9항에 있어서, 상기 플레쉬 메모리 장치는
    NAND형 플레쉬 메모리 장치인 것을 특징으로 하는 플레쉬 메모리 시스템.
  15. 컴퓨터 시스템의 데이터 억세스 방법에 있어서,
    프로세서에 내장된 온-칩 캐쉬로의 접근이 실패되면, 희생 버퍼로의 접근 또는 공간 버퍼로의 접근을 시도하는 단계;
    상기 희생 버퍼로의 접근 또는 공간 버퍼로의 접근이 성공하면 요청한 데이터 또는 명령어를 상기 온-칩 캐쉬로 보내고, 상기 희생 버퍼로의 접근 또는 공간 버퍼로의 접근이 실패하면 페이지 레지스터로 접근하는 단계;
    상기 페이지 레지스터로의 접근이 성공하면 상기 요청한 데이터 또는 명령어를 상기 온-칩 캐쉬로 보내고, 상기 페이지 레지스터로의 접근이 실패하면 다이나믹 패칭 유닛을 통하여 상기 페이지 레지스터의 블럭들 중 일부 블럭을 선택하는 단계;
    상기 공간 버퍼로 저장할 공간이 있으면 상기 페이지 레지스터로부터 선택되는 일부 블럭을 상기 공간 버퍼에 저장하고, 상기 공간 버퍼에 저장할 공간이 없으면 상기 페이지 레지스터로부터 요청한 블럭 갯수 만큼 상기 공간 버퍼를 대체시킨 후 상기 페이지 레지스터로부터 일부 블럭을 상기 공간 버퍼에 저장하고 상기 요청한 데이터 또는 명령어를 상기 온-칩 캐쉬로 보내는 단계;
    상기 온-칩 캐쉬에 저장 공간이 있으면 상기 요청한 데이터 또는 명령어를 온-칩 캐쉬에 저장하고, 상기 온-칩 캐쉬에 저장 공간이 없으면 상기 온-칩 캐쉬로부터 대체 블럭을 상기 희생 버퍼로 보내는 단계; 및
    상기 희생 버퍼에 저장할 공간이 있으면 상기 희생 버퍼에 상기 온-칩 캐쉬로부터 대체된 블럭을 저장하고, 상기 희생 버퍼에 저장할 공간이 없으면 상기 희생 버퍼 대체 블럭의 더티 비트가 셋팅된 상태이면 상기 페이지 레지스터로 저장시켜 플레쉬 메모리 장치로의 기입 동작을 수행하는 단계를 구비하는 것을 특징으로 하는 컴퓨터 시스템의 데이터 억세스 방법.
  16. 제15항에 있어서, 상기 다이나믹 패칭 유닛은
    상기 공간 버퍼에 저장된 블럭들 중 일정 블럭들의 참조 비트들을 저장하는 D 플립플롭들;
    상기 D 플립플롭들에 저장된 참조 비트들을 합산하는 가산기;
    상기 가산기의 합산 결과에 응답하여 상기 페이지 레지스터로부터 소정 블럭을 패치하여 상기 공간 버퍼로 대체시키도록 패치 신호를 발생하는 멀티플렉서; 및
    상기 가산기의 합산 결과에 따른 블럭 패치 크기를 저장하는 레지스터를 구비하는 것을 특징으로 하는 컴퓨터 시스템의 데이터 억세스 방법.
  17. 제16항에 있어서, 상기 멀티플렉서는
    상기 레지스터에 저장된 이전 블럭 패치 크기를 참조하여 다음 블럭 패치 크기를 확대시키는 것을 특징으로 하는 컴퓨터 시스템의 데이터 억세스 방법.
  18. 제15항에 있어서, 상기 희생 버퍼는
    상기 온-칩 캐쉬로부터 교체되는 블럭 데이터의 태그 값을 저장하는 내용 번지 메모리 장치(CAM); 및
    상기 CAM에 저장된 블럭 데이터의 데이터 값을 저장하는 SRAM을 구비하는 것을 특징으로 하는 컴퓨터 시스템의 데이터 억세스 방법.
  19. 제15항에 있어서, 상기 공간 버퍼는
    상기 다이나믹 패칭 유닛을 통하여 상기 페이지 버퍼로부터 패치된 블럭 데이터의 태그 값을 저장하는 내용 번지 메모리 장치(CAM);
    상기 CAM에 저장된 블럭 데이터의 데이터 값을 저장하는 SRAM; 및
    상기 CAM에 저장된 블럭이 참조되었던 블럭인지 여부를 나타내는 참조 비트들을 구비하는 것을 특징으로 하는 컴퓨터 시스템의 데이터 억세스 방법.
  20. 제15항에 있어서, 상기 플레쉬 메모리 장치는
    NAND형 플레쉬 메모리 장치인 것을 특징으로 하는 컴퓨터 시스템의 데이터 억세스 방법.
KR10-2003-0032552A 2003-05-22 2003-05-22 시간적·공간적 지역성을 향상시키고 플레쉬 메모리장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및데이터 억세스 방법 KR100481943B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0032552A KR100481943B1 (ko) 2003-05-22 2003-05-22 시간적·공간적 지역성을 향상시키고 플레쉬 메모리장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및데이터 억세스 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0032552A KR100481943B1 (ko) 2003-05-22 2003-05-22 시간적·공간적 지역성을 향상시키고 플레쉬 메모리장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및데이터 억세스 방법

Publications (2)

Publication Number Publication Date
KR20040100262A KR20040100262A (ko) 2004-12-02
KR100481943B1 true KR100481943B1 (ko) 2005-04-14

Family

ID=37377676

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0032552A KR100481943B1 (ko) 2003-05-22 2003-05-22 시간적·공간적 지역성을 향상시키고 플레쉬 메모리장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및데이터 억세스 방법

Country Status (1)

Country Link
KR (1) KR100481943B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101257848B1 (ko) 2005-07-13 2013-04-24 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
KR100765786B1 (ko) * 2006-06-12 2007-10-12 삼성전자주식회사 플래시 메모리 시스템, 그 프로그램을 위한 호스트 시스템및 프로그램 방법
KR101297563B1 (ko) 2007-11-15 2013-08-19 삼성전자주식회사 스토리지 관리 방법 및 관리 시스템

Also Published As

Publication number Publication date
KR20040100262A (ko) 2004-12-02

Similar Documents

Publication Publication Date Title
US6665749B1 (en) Bus protocol for efficiently transferring vector data
JP4486750B2 (ja) テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造
US6219760B1 (en) Cache including a prefetch way for storing cache lines and configured to move a prefetched cache line to a non-prefetch way upon access to the prefetched cache line
JP4008826B2 (ja) オンチップキャッシュのデータ圧縮により有効キャッシュサイズを増大させるキャッシュ圧縮エンジンのための装置
KR100339904B1 (ko) 캐시 프로세스용 시스템 및 방법
US6513107B1 (en) Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page
US6813701B1 (en) Method and apparatus for transferring vector data between memory and a register file
US20090031084A1 (en) Cache line replacement techniques allowing choice of lfu or mfu cache line replacement
JP2005115910A (ja) シリアルフラッシュメモリにおけるxipのための優先順位に基づくフラッシュメモリ制御装置及びこれを用いたメモリ管理方法、これによるフラッシュメモリチップ
JP5622155B2 (ja) キャッシュメモリおよびその制御方法
KR20150031402A (ko) 시스템 온 칩 및 그것의 주소 변환 방법
US6553486B1 (en) Context switching for vector transfer unit
KR20150057798A (ko) 캐시 제어 장치 및 방법
JP2006516168A (ja) ストライド予測テーブルにアドレスするためにキャッシュミスパターンを使用する方法
US9792228B2 (en) Enhancing lifetime of non-volatile cache by injecting random replacement policy
KR20150076200A (ko) 캐시의 캐시 라인 길이 조절 방법 및 장치
US7219197B2 (en) Cache memory, processor and cache control method
US20210365378A1 (en) Method of cache prefetching that increases the hit rate of a next faster cache
US8661169B2 (en) Copying data to a cache using direct memory access
US20020042861A1 (en) Apparatus and method for implementing a variable block size cache
JP3515333B2 (ja) 情報処理装置
KR100481943B1 (ko) 시간적·공간적 지역성을 향상시키고 플레쉬 메모리장치로의 접근 횟수를 줄이는 플레쉬 메모리 시스템 및데이터 억세스 방법
KR100532417B1 (ko) 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법
US6625720B1 (en) System for posting vector synchronization instructions to vector instruction queue to separate vector instructions from different application programs
US9767043B2 (en) Enhancing lifetime of non-volatile cache by reducing intra-block write variation

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: 20110223

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee