KR20080021211A - 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는컴퓨팅 시스템 - Google Patents

버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는컴퓨팅 시스템 Download PDF

Info

Publication number
KR20080021211A
KR20080021211A KR1020060082979A KR20060082979A KR20080021211A KR 20080021211 A KR20080021211 A KR 20080021211A KR 1020060082979 A KR1020060082979 A KR 1020060082979A KR 20060082979 A KR20060082979 A KR 20060082979A KR 20080021211 A KR20080021211 A KR 20080021211A
Authority
KR
South Korea
Prior art keywords
data
buffer memory
memory
temporarily stored
stored data
Prior art date
Application number
KR1020060082979A
Other languages
English (en)
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 KR1020060082979A priority Critical patent/KR20080021211A/ko
Publication of KR20080021211A publication Critical patent/KR20080021211A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements

Abstract

여기에 제공되는 컴퓨팅 시스템은 외부 저장 장치에 저장될 데이터를 임시 저장하는 버퍼 메모리와; 그리고 상기 버퍼 메모리의 임시 저장된 데이터가 무효 데이터로 처리될 때 상기 버퍼 메모리의 임시 저장된 데이터를 무효화시키는 프로세싱 유니트를 포함하며, 상기 임시 저장된 데이터가 무효화될 때, 상기 임시 저장된 데이터는 상기 외부 저장 장치로 쓰여지지 않는다.

Description

버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는 컴퓨팅 시스템{COMPUTING SYSTEM WITH SCHEME CAPABLE OF INVALIDATING DATA STORED IN BUFFER MEMORY}
도 1은 일반적인 저장 시스템을 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도;
도 2는 도 1에 도시된 컴퓨팅 시스템의 파일 관리 체계를 설명하기 위한 도면;
도 3은 본 발명에 따른 저장 시스템을 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도;
도 4a 및 도 4b는 도 3에 도시된 제어 회로의 사상 테이블을 보여주는 도면들;
도 5는 본 발명에 따른 컴퓨팅 시스템의 저장 시스템에 저장된 데이터를 관리하는 방법을 설명하기 위한 흐름도;
도 6a 내지 도 6c는 본 발명에 따른 컴퓨팅 시스템의 저장 시스템에서 버퍼 메모리에 저장된 데이터의 유효 정보에 따른 저장 매체로의 쓰기 동작을 설명하기 위한 도면들; 그리고
도 7은 본 발명의 다른 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
* 도면의 주요 부분에 대한 부호 설명 *
100 : 호스트 시스템 110 : 중앙 처리 장치
120 : 메인 메모리 200 : 저장 시스템
220 : 저장 매체 240 : 버퍼 메모리
260 : 제어 회로
본 발명은 컴퓨팅 시스템에 관한 것으로, 좀 더 구체적으로는 버퍼 메모리에 저장된 데이터를 무효화시킬 수 있는 저장 시스템을 갖는 컴퓨팅 시스템에 관한 것이다.
도 1은 일반적인 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다. 도 1을 참조하면, 컴퓨팅 시스템은 호스트(또는 호스트 시스템)(10) 및 저장 장치(20)를 포함한다. 호스트(10)에는, 비록 도면에는 도시되지 않았지만, 중앙처리장치 및 메인 메모리가 제공될 것이다. 저장 장치(20)는 SCSI, ESDI, 또는 IDE 인터페이스와 같은 표준 인터페이스(standardized interface)에 의해서 호스트(10)에 연결된다. 저장 장치(20)는 저장 매체(예를 들면, 하드 디스크 또는 플래시 메모리)(22), 버퍼 메모리(24), 그리고 컨트롤러(26)로 구성된다. 컨트롤러(26)는 잘 알려진 인터페이스 메카니즘을 통해 저장 매체(22) 및 버퍼 메모리(24)에 연결되어 있다. 버퍼 메모리(24)는 SRAM 또는 DRAM과 같은 메모리로 구성되며, 호스트(10)의 저장 장치(20)에 대한 쓰기 성능을 높이기 위해서 사용된다.
도 2는 도 1에 도시된 컴퓨팅 시스템의 파일 처리 과정을 개략적으로 보여주는 도면이다. 호스트(10)와 같은 상위 레벨에서 응용 프로그램이 실행될 때, 응용 프로그램에 의해서 생성된 파일(들)은 파일 시스템(예를 들면, FAT file system)에 의해서 관리된다. 응용 프로그램에 의해서 생성된 파일에 데이터가 쓰여지면, 호스트(10)에 있는 중앙처리장치의 제어에 따라 파일에 쓰여진 새로운 데이터는 필요에 따라 저장 장치(20)와 같은 하위 레벨로 전송된다. 전송된 데이터는 저장 장치(20)의 버퍼 메모리(24)에 임시 저장된다. 또한, 호스트(10)에 의해서 요청된 파일의 데이터는 버퍼 메모리(24)를 통해 또는 직접 저장 매체(22)에서 호스트(10)의 메인 메모리로 전송된다. 호스트(10)에 의해서 요청된 파일의 데이터가 버퍼 메모리(24)를 통해 저장 매체(22)에서 호스트(10)의 메인 메모리로 전송되는 경우, 호스트(10)에 의해서 요청된 파일의 데이터는 버퍼 메모리(24)에 임시 저장될 수도 있다.
버퍼 메모리(24)의 용량이, 잘 알려진 바와 같이, 저장 매체(22)에 비해 작기 때문에, 호스트(10)에서 전달되는 모든 데이터를 버퍼 메모리(24)에 저장하는 것은 불가능하다. 그러한 까닭에, 버퍼 메모리(24)에 임시 저장된 데이터는 컨트롤러(26)의 제어에 따라 어느 시점에 가면 저장 매체(22)로 이동된다. 저장 매체(22)로의 데이터 이동은, 일반적으로, 호스트(10)의 개입없이 컨트롤러(26)에 의해서 자동적으로 수행된다. 예를 들면, 버퍼 메모리(24)에 임시 저장된 데이터는 새로운 데이터 쓰기 요청에 따라 버퍼 메모리(24)의 여유 공간이 부족할 때 또는 호스트에서 요청이 없을 때 발생하는 컨트롤러(26)의 유휴 시간을 이용하여 호스트(10)의 개입없이 컨트롤러(26)의 제어에 따라 저장 매체(22)로 자동적으로 이동된다.
호스트(10)의 개입없이 컨트롤러(26)에 의해서 저장 매체(22)로의 쓰기 동작(또는 옮겨쓰기 동작)이 제어되는 스킴을 갖는 컴퓨팅 시스템은 다음과 같은 문제점을 갖는다. 호스트(10)의 응용 프로그램에 의해서 처리되는 파일의 데이터가 상위 레벨에서 삭제되었을 경우, 파일 시스템에 의해서 데이터 파일은 삭제된 파일로 처리된다. 비록 상위 레벨의 호스트(10)에서 데이터 파일이 삭제되더라도, 삭제된 파일의 데이터는 버퍼 메모리(24)에 저장되어 있을 수 있다. 버퍼 메모리(24)에 임시 저장된 파일 데이터는 새로운 데이터 쓰기 요청에 따라 버퍼 메모리(24)의 여유 공간이 부족할 때 또는 호스트에서 요청이 없을 때 발생하는 컨트롤러(26)의 유휴 시간을 이용하여 호스트(10)의 개입없이 컨트롤러(26)의 제어에 따라 저장 매체(22)에 저장된다. 즉, 버퍼 메모리(24)에 임시 저장된 데이터는 상위 레벨에서 삭제된 파일의 유효하지 않은 데이터임에도 불구하고, 컨트롤러(26)가 버퍼 메모리(24)에 저장된 데이터의 유효성을 판단할 수 없기 때문에 버퍼 메모리(24)에 저장된 유효하지 않은 데이터는 불필요하게 저장 매체(22)에 쓰여진다. 이는 저장 장치(20)의 쓰기 성능이 저하되게 할 뿐만 저장 장치(20)의 수명이 단축되게 한다. 또한, 불필요한 쓰기 동작에 따라 불필요하게 전력이 소모될 수 있다.
본 발명의 목적은 버퍼 메모리에 저장된 데이터를 무효화시킬 수 있는 저장 시스템 및 그것을 포함한 컴퓨팅 시스템을 제공하는 것이다.
본 발명의 다른 목적은 버퍼 메모리에 저장된 데이터의 불필요한 쓰기 동작을 방지할 수 있는 저장 시스템 및 그것을 포함한 컴퓨팅 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 상위 레벨에서 제공되는 버퍼 메모리에 저장된 데이터의 유효/무효 정보를 참조하여 버퍼 메모리의 무효 데이터의 쓰기 동작을 제어할 수 있는 저장 시스템 및 그것을 포함한 컴퓨팅 시스템을 제공하는 것이다.
예시적인 실시예들은 컴퓨팅 시스템을 제공하며, 컴퓨팅 시스템은 외부 저장 장치에 저장될 데이터를 임시 저장하는 버퍼 메모리와; 그리고 상기 버퍼 메모리의 임시 저장된 데이터가 무효 데이터로 처리될 때 상기 버퍼 메모리의 임시 저장된 데이터를 무효화시키는 프로세싱 유니트를 포함하며, 상기 임시 저장된 데이터가 무효화될 때, 상기 임시 저장된 데이터는 상기 외부 저장 장치로 쓰여지지 않는다.
예시적인 실시예에 있어서, 상기 프로세싱 유니트는 상기 임시 저장된 데이터의 쓰기 상태 정보를 관리하도록 구성되며, 상기 임시 저장된 데이터와 관련된 정보에 따라 상기 쓰기 상태 정보를 갱신한다.
예시적인 실시예에 있어서, 상기 프로세싱 유니트는 상기 임시 저장된 데이터의 모두 또는 일부가 상기 외부 저장 장치에 쓰여지지 않도록 상기 쓰기 상태 정보에 따라 상기 버퍼 메모리 및 상기 외부 저장 장치를 제어하도록 구성된다.
예시적인 실시예에 있어서, 상기 쓰기 상태 정보는 상기 임시 저장된 데이터 가 유효한 데이터인 지의 여부를 나타낸다.
예시적인 실시예에 있어서, 상기 쓰기 상태 정보는 테이블 형태로 상기 컴퓨팅 시스템의 메모리에 저장된다.
예시적인 실시예에 있어서, 상기 메모리는 상기 버퍼 메모리를 관리하는 데 필요한 장치 드라이버를 저장하도록 구성된다.
예시적인 실시예에 있어서, 상기 버퍼 메모리는 SRAM 또는 DRAM을 포함한 휘발성 메모리 또는 낸드 플래시 메모리, 노어 플래시 메모리, MRAM, FRAM, 또는 PRAM을 포함한 불 휘발성 메모리이며, 상기 외부 저장 장치는 마그네틱 디스크와 불 휘발성 메모리 중 어느 하나이다.
예시적인 실시예에 있어서, 상기 버퍼 메모리는 읽기 그리고 쓰기 캐쉬 메모리로서 사용된다.
예시적인 실시예에 있어서, 상기 버퍼 메모리는 시스템 성능의 향상을 위해서 중요한 소프트웨어를 저장하는 데 사용된다.
다른 예시적인 실시예들은 컴퓨팅 시스템을 제공하며, 컴퓨팅 시스템은 외부 저장 장치에 저장될 데이터를 임시 저장하는 버퍼 메모리와; 상기 버퍼 메모리를 관리하는 데 필요한 장치 드라이버를 저장하는 메모리와; 상기 장치 드라이버를 이용하여 상기 버퍼 메모리를 제어하도록 구성된 프로세싱 유니트를 포함하며, 상기 프로세싱 유니트는 상기 임시 저장된 데이터가 무효 데이터로 처리될 때 상기 임시 저장된 데이터를 무효화시키기 위한 쓰기 상태 정보를 관리하도록 구성된다.
예시적인 실시예에 있어서, 상기 쓰기 상태 정보는 상기 임시 저장된 데이터 가 유효한 데이터인 지의 여부를 나타낸다.
예시적인 실시예에 있어서, 상기 상기 임시 저장된 데이터가 무효한 데이터임을 상기 쓰기 상태 정보가 나타낼 때, 상기 프로세싱 유니트는 상기 임시 저장된 데이터가 상기 외부 저장 장치로 쓰여지지 않도록 상기 버퍼 메모리를 제어한다.
예시적인 실시예에 있어서, 상기 프로세싱 유니트는 상기 임시 저장된 데이터와 관련된 정보에 따라 상기 쓰기 상태 정보를 갱신한다.
예시적인 실시예에 있어서, 상기 쓰기 상태 정보는 테이블 형태로 상기 메모리에 저장된다.
예시적인 실시예에 있어서, 상기 버퍼 메모리는 읽기 그리고 쓰기 캐쉬 메모리로서 사용된다.
예시적인 실시예에 있어서, 상기 버퍼 메모리는 시스템 성능의 향상을 위해서 중요한 소프트웨어를 저장하는 데 사용된다.
또 다른 예시적인 실시예들은 외부 저장 장치에 저장될 데이터를 임시 저장하는 버퍼 메모리를 포함하는 컴퓨팅 시스템의 데이터 관리 방법을 제공하며, 이 방법은 상기 버퍼 메모리의 임시 저장된 데이터가 무효 데이터로 처리되었는 지의 여부를 판별하는 단계와; 그리고 상기 버퍼 메모리의 임시 저장된 데이터가 무효 데이터로 처리될 때 상기 임시 저장된 데이터의 전부 또는 일부를 무효화시키는 단계를 포함한다.
예시적인 실시예에 있어서, 상기 임시 저장된 데이터가 무효화될 때, 상기 임시 저장된 데이터는 상기 외부 저장 장치로 쓰여지지 않는다.
예시적인 실시예에 있어서, 상기 무효화 단계는 상기 임시 저장된 데이터의 쓰기 상태 정보를 구성하는 단계와; 그리고 상기 임시 저장된 데이터가 무효 데이터로서 처리될 때 상기 쓰기 상태 정보를 갱신하는 단계를 포함한다.
또 다른 예시적인 실시예들은 외부 저장 장치에 쓰여질 데이터를 저장하는 버퍼 메모리와; 그리고 상기 버퍼 메모리에 저장된 데이터와 관련된 무효 정보를 참조하여 상기 버퍼 메모리에 저장된 데이터의 전부 또는 일부가 상기 외부 저장 장치에 쓰여지지 않도록 상기 버퍼 메모리를 제어하는 프로세싱 유니트를 포함하는 컴퓨팅 시스템을 제공한다.
예시적인 실시예에 있어서, 상기 무효 정보는 상기 버퍼 메모리의 임시 저장된 데이터가 무효 데이터로 처리되었는 지의 여부를 나타낸다.
예시적인 실시예에 있어서, 상기 프로세싱 유니트는 상기 버퍼 메모리에 저장된 데이터의 전부 또는 일부가 상기 외부 저장 장치에 쓰여지지 않도록 상기 무효 정보에 따라 상기 버퍼 메모리의 임시 저장된 데이터를 무효화시킨다.
예시적인 실시예에 있어서, 상기 임시 저장된 데이터가 무효화될 때, 상기 임시 저장된 데이터는 상기 외부 저장 장치로 쓰여지지 않는다.
예시적인 실시예에 있어서, 상기 프로세싱 유니트는 상기 임시 저장된 데이터의 쓰기 상태 정보를 관리하도록 구성되며, 상기 임시 저장된 데이터와 관련된 정보에 따라 상기 쓰기 상태 정보를 갱신한다.
예시적인 실시예에 있어서, 상기 쓰기 상태 정보는 테이블 형태로 상기 컴퓨팅 시스템의 메모리에 저장된다.
예시적인 실시예에 있어서, 상기 메모리는 상기 버퍼 메모리를 관리하는 데 필요한 장치 드라이버를 저장하도록 구성된다.
예시적인 실시예에 있어서, 상기 버퍼 메모리는 SRAM 또는 DRAM을 포함한 휘발성 메모리 또는 낸드 플래시 메모리, 노어 플래시 메모리, MRAM, FRAM, 또는 PRAM을 포함한 불 휘발성 메모리이며, 상기 외부 저장 장치는 마그네틱 디스크와 불 휘발성 메모리 중 어느 하나이다.
예시적인 실시예에 있어서, 상기 버퍼 메모리는 읽기 그리고 쓰기 캐쉬 메모리로서 사용된다.
예시적인 실시예에 있어서, 상기 버퍼 메모리는 시스템 성능의 향상을 위해서 중요한 소프트웨어를 저장하는 데 사용된다.
예시적인 실시예에 있어서, 상기 버퍼 메모리는 PCI-E 버스를 통해 상기 프로세싱 유니트와 통신한다.
예시적인 실시예에 있어서, 상기 버퍼 메모리는 상기 프로세싱 유니트가 장착되는 보드 상에 직접 실장된다.
본 발명의 예시적인 실시예들이 참조 도면들에 의거하여 이하 상세히 설명될 것이다. 본 명세서에 있어서, 저장 시스템의 버퍼 메모리에서 저장 매체로 데이터가 옮겨지는 것을 무효화시키기 위해서 저장 시스템의 외부에서 입력되는 명령/정보는 "쓰기 되물리기(unwrite) 명령(또는 정보나 요청)라 칭한다. 또한, 저장 시스템의 버퍼 메모리에서 저장 매체로 데이터가 옮겨지는 동작은 "옮겨쓰기(transcribe) 동작" 또는 "쓸어내리기(flushing) 동작"로 불리며, 바람직하게 " 옮겨쓰기 동작"이라 칭한다.
도 3은 본 발명에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다. 도 3을 참조하면, 본 발명에 따른 컴퓨팅 시스템(1000)은 호스트 시스템(100)과 저장 시스템(또는 저장 장치)(200)을 포함하며, 호스트 시스템(100)과 저장 시스템(200)은 USB, SCSI, ESDI, 또는 IDE 인터페이스와 같은 표준 인터페이스(standardized interface)에 의해서 연결된다. 하지만, 호스트 시스템(100)과 저장 시스템(200)을 연결하기 위한 인터페이스 방식이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 호스트 시스템(100)은 중앙처리장치(도면에는 "CPU"로 표기됨)(110)와 메모리(120)를 포함하며, 메모리(120)의 적어도 일부분은 호스트 시스템(100)의 메인 메모리를 포함한다. 또는, 메모리(200)는 호스트 시스템(100)의 메인 메모리를 구성한다. 응용 프로그램(121) 및 파일 시스템(122)이 메모리(120) 내에 각각 제공된다. 파일 시스템(122)은 파일 할당 테이블(file allocation table: FAT) 파일 시스템을 포함하는 모든 파일 시스템들을 포함한다. 하지만, 파일 시스템이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 본 발명에 따른 호스트 시스템(100)의 경우, 응용 프로그램(121)에 의해서 처리되는 파일의 데이터 전부를 삭제될 때, 또는 응용 프로그램(121)에 의해서 처리되는 파일의 일부 데이터가 삭제될 때, 호스트 시스템(100)의 중앙처리장치(110)는 특정 명령(이하, 쓰기 되물리기 명령이라 칭함)을 저장 시스템(200)으로 출력한다. 예시적인 실시예에 있어서, 특정 명령과 함께 삭제된 데이터를 지정하기 위한 어드레스 정보 및 데이터 크기 정보가 저장 시스템(200)으로 전송될 수 있다.
잘 알려진 바와 같이, FAT 파일 시스템은, 도 2에 도시된 바와 같이, 마스터 부트 리코드(master boot record: MBR), 파티션 부트 리코드(partition boot record: PBR), 제 1 및 제 2 파일 할당 테이블들(primary FAT, copy FAT), 그리고 루트 디렉토리를 포함한다. 저장 시스템(200)에 저장된/저장될 파일은 2가지의 정보를 사용하여 확인될 수 있다. 그 정보는 파일의 파일명과 파일이 저장된 곳에 도달하기 위해 통과하는 디렉토리 트리의 경로이다. 하나의 디렉토리에서 각 엔트리는, 예를 들면, 32-바이트 길이를 가지며, 파일명, 확장자, 파일 속성 바이트, 최종적으로 변경된 날짜/시간, 파일 크기, 그리고 시동 클러스터로의 연결 등과 같은 정보를 저장하고 있다. 특히, 파일명에 있어서, 삭제된 파일을 가리키기 위한 파일명의 첫 문자로 하나의 특수한 코드가 사용된다. 예를 들면, 파일명의 첫 글자의 자리에 십육진수 바이트 코드인 E5h를 위치시킨다. 이것은 하나의 특별한 꼬리표로서, '이 파일은 삭제되었습니다'라는 것을 시스템에 말해준다. 임의의 파일이 삭제될 때, 중앙처리장치(110)는 삭제된 파일의 파일명의 첫 문자에 하나의 특수한 코드를 위치시킴과 아울러 삭제된 파일에 대응하는 쓰기 되물리기 명령(또는 삭제된 파일 데이터에 대한 무효 정보)을 저장 시스템(200)으로 출력한다.
계속해서 도 3을 참조하면, 저장 시스템(200)은 저장 매체(220), 버퍼 메모리(240), 그리고 제어 장치(260)를 포함한다. 본 발명에 따른 저장 시스템(200)은, 외부로부터 무효 정보(예를 들면, 쓰기 되물리기 명령, 저장 시스템의 상위 레벨에서 삭제된 파일 데이터의 어드레스 정보, 그리고 삭제된 데이터의 크기 정보를 포 함함)가 입력될 때, 버퍼 메모리(220)의 데이터(저장 시스템의 상위 레벨에서 이미 삭제된 데이터를 나타냄)가 저장 매체(260)에 쓰여지는 것을 방지하도록 구성된다. 이는 이후 상세히 설명될 것이다.
저장 시스템(200)의 저장 매체(220)는 데이터(문서 데이터, 영상 데이터, 음악 데이터, 그리고 프로그램과 같은 저장 가능한 모든 형식의 데이터를 포함함)를 저장하기 위한 것으로, 마크네틱 디스크 또는 플래시 메모리와 같은 불 휘발성 반도체 메모리로 구성될 수 있다. 하지만, 저장 매체(220)가 여기에 개시된 것에 제한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
계속해서, 버퍼 메모리(240)는 호스트 시스템(100)과 저장 매체(220) 사이의 원활한 데이터 전송을 위해 사용되며, DRAM 또는 SRAM과 같은 고속 휘발성 메모리 또는 MRAM, PRAM, FRAM, NAND형 플래시 메모리, 또는 NOR형 플래시 메모리 장치와 같은 불 휘발성 메모리로 구성될 수 있다. 버퍼 메모리(240)는 쓰기 버퍼로서 기능한다. 예를 들면, 버퍼 메모리(240)는 호스트 시스템(100)의 요청에 따라 저장 매체(220)에 쓰여질 데이터를 임시 저장하기 위한 쓰기 버퍼로서 기능한다. 또한, 쓰기 버퍼의 기능은 선택적으로 사용될 수 있다. 예컨대, 경우에 따라, 호스트 시스템(100)에서 전달된 데이터는 쓰기 버퍼 즉, 버퍼 메모리(240)를 경유하지 않고 저장 매체(220)로 직접 전송될 수 있다. 저장 장치(200)의 이러한 기능은 쓰기 바이패스 기능(write bypass function)이라 불린다. 또는, 버퍼 메모리(240)는 읽기 버퍼로서 기능한다. 예를 들면, 버퍼 메모리(240)는 호스트 시스템(100)의 요청에 따라 저장 매체(220)에서 읽혀진 데이터를 임시 저장하기 위한 읽기 버퍼로서 기능한 다. 도면에는 단지 하나의 버퍼 메모리가 도시되어 있지만, 2개 또는 그 보다 많은 버퍼 메모리들이 제공될 수 있다. 이 경우, 각 버퍼 메모리는 쓰기 버퍼, 읽기 버퍼 또는 2개의 기능을 모두 갖는 버퍼로서 사용될 수 있다.
본 발명에 따른 제어 장치(260)는 저장 매체(220) 및 버퍼 메모리(240)를 제어하도록 구성된다. 호스트 시스템(100)으로부터 읽기 명령이 입력될 때, 제어 장치(260)는 저장 매체(220)에 저장된 데이터가 호스트 시스템(100)으로 이동되도록 저장 매체(220)를 제어한다. 또는, 호스트 시스템(100)으로부터 읽기 명령이 입력될 때, 제어 장치(260)는 저장 매체(220)에 저장된 데이터가 버퍼 메모리 (240)를 통해 호스트 시스템(100)으로 이동되도록 저장 매체(220) 및 버퍼 메모리(240)를 제어한다. 호스트 시스템(100)으로부터 쓰기 명령이 입력될 때, 제어 장치(260)는 쓰기 명령과 관련된 데이터가 버퍼 메모리(240)에 임시 저장되게 한다. 버퍼 메모리(240)에 임시 저장된 데이터의 전부 또는 일부는 버퍼 메모리(240)의 여유 공간이 부족할 때 또는 유휴 시간(호스트로부터 요청이 없을 때 생기는 제어 장치(260)의 유휴 시간)이 생길 때 제어 장치(260)의 제어에 따라 저장 매체(220)로 옮겨진다. 이상의 동작을 수행하기 위해서, 제어 장치(260)는 저장 매체(220)와 버퍼 메모리(240) 사이의 어드레스 사상 정보(address mapping information) 및 버퍼 메모리(240)에 저장된 데이터가 유효한 정보인지의 여부를 나타내는 쓰기 상태 정보를 저장하기 위한 사상 테이블(261)을 포함한다. 쓰기 상태 정보는 외부로부터 제공되는 무효 정보에 따라 갱신되며, 이는 이후 상세히 설명될 것이다. 제어 장치(260)는 사상 테이블(261)의 쓰기 상태 정보에 따라 버퍼 메모리(240)에 저장된 데이터 의 전부 또는 일부가 저장 매체(220)에 쓰여지도록 저장 매체(220) 및 버퍼 메모리(240)를 제어하며, 이는 이후 상세히 설명될 것이다.
이 실시예에 있어서, 저장 매체(220) 및 버퍼 메모리(240)는 플래시 메모리와 같은 메모리로 동일하게 구성될 수 있다.
이상의 설명으로부터 알 수 있듯이, 본 발명에 따른 저장 시스템(200)은 버퍼 메모리(240)의 여유 공간이 부족할 때 또는 유휴 시간(호스트로부터 요청이 없을 때 생기는 제어 장치(260)의 유휴 시간)이 생길 때 사상 테이블(261)의 쓰기 상태 정보를 참조하여 버퍼 메모리(240)에 저장된 데이터의 전부 또는 일부를 저장 매체(220)로 옮기지 않는다. 즉, 본 발명에 따른 저장 시스템(200)은 버퍼 메모리(240)에 저장된 데이터가 유효한 데이터인 지 또는 무효한 데이터 인지를 나타내는 쓰기 되물리기 정보(또는 버퍼 메모리(240)에 저장된 데이터와 관련된 무효 정보)를 저장 시스템(200)의 외부(예를 들면, 호스트 시스템)로부터 입력받고 입력된 정보를 참조하여 버퍼 메모리(240)에 저장된 데이터 중 무효한 데이터가 저장 매체(220)에 쓰여지는 것을 방지한다. 다시 말해서, 본 발명에 따른 저장 시스템(200)은 버퍼 메모리(240)에 저장된 데이터에 유효/무효 정보의 꼬리표를 달아 저장 매체(220)로의 데이터 옮겨쓰기 동작을 선별적으로 제어한다. 따라서, 저장 시스템(200)의 쓰기 성능이 향상되고, 불필요한 쓰기 동작으로 인한 저장 매체(220)의 수명이 단축되는 것을 방지할 수 있으며, 불필요한 쓰기 동작으로 인한 전력 소모를 줄일 수 있다.
도 4a 및 도 4b는 도 3에 도시된 제어 장치(260)의 예시적인 사상 테이블을 보여주는 도면들이다. 도 4a 및 도 4b를 참조하면, 부호 "BBN"은 버퍼 메모리(240)의 블록 번호를 나타내고, 부호 "DCN"은 저장 매체(220)의 클러스터 번호를 나타내며, 부호 "WSI"는 버퍼 메모리(240)에 저장된 데이터가 유효한 데이터인지의 여부를 나타내는 쓰기 상태 정보를 나타낸다. 설명의 편의상, 버퍼 메모리(240)의 블록 크기가 다수의 섹터들로 구성되는 클러스터의 크기와 같다고 가정하자. 하지만, 저장 매체(220)의 할당 단위(allocation unit)가 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 저장 매체(220)의 할당 단위가 마크네틱 디스크의 섹터로 또는 플래시 메모리의 페이지, 섹터, 또는 블록으로 지정될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 도 4a 및 도 4b에 있어서, 무효 데이터는 'X'로 표시되어 있고, 유효 데이터는 'V'로 표시되어 있다.
도 4a에 도시된 바와 같이, 버퍼 메모리(240)에 3개의 파일들(FILE1, FILE2, FILE3)과 관련된 데이터가 유효한 데이터로서 저장되어 있다고 가정하자. 각 데이터는 저장 매체(220)로부터 읽혀진 데이터로 호스트 시스템(100)에 의해서 갱신되고 저장 매체(220)에 아직 저장되지 않는 데이터일 수 있다. 또는, 호스트 시스템(100)에서 전달되고 저장 매체(220)에 아직 저장되지 않은 데이터일 수 있다. 버퍼 메모리(240)에 저장된 파일 데이터(FILE1, FILE2, FILE3)는, 앞서 언급된 바와 같이, 버퍼 메모리(240)의 여유 공간이 부족할 때 또는 유휴 시간이 생길 때 제어 장치(260)의 제어에 따라 저장 매체(220)로 이동될 것이다. 제어 장치(260)는 호스트 시스템(100)으로부터 전달되는 무효 정보에 따라 저장된 파일들 데이터(FILE1, FILE2, FILE3)의 쓰기 상태 정보를 갱신하도록 구성된다. 예를 들면, 파일 데이터(FILE2)가 저장 시스템(200)의 상위 레벨로서 호스트 시스템(100)에서 삭제되었다는 무효 정보가 호스트 시스템(100)으로부터 입력되면, 도 4b에 도시된 바와 같이, 제어 장치(260)는 무효 데이터를 나타내도록 파일 데이터(FILE2)의 쓰기 상태 정보를 'X'로 표시한다. 또한, 제어 장치(260)는 무효 데이터를 나타내도록 저장 매체(220)에 쓰여진 데이터의 쓰기 상태 정보를 'X'로 표시한다.
도 5는 본 발명에 따른 컴퓨팅 시스템에서 저장 시스템에 저장된 데이터를 관리하는 방법을 설명하기 위한 흐름도이다. 본 발명에 따른 저장 시스템(200)은, 앞서 설명된 바와 같이, 데이터를 저장하는 저장 매체(220)와 저장 매체(220)에 쓰여질 데이터를 임시 저장하는 버퍼 메모리(240)를 포함하며, 이 저장 시스템(200)의 데이터 관리 방법은, 도 5에 도시된 바와 같이, 쓰기 되물리기 정보가 저장 시스템(200)의 외부로부터 인가되었는 지의 여부를 판별하는 단계(S100)와; 그리고 쓰기 되물리기 정보가 입력될 때 버퍼 메모리(240)에 임시 저장된 데이터 전부 또는 일부를 무효화시키는 단계(S120)를 포함한다. 이후, 무효화된 데이터는 저장 매체(220)에 쓰여지지 않는다.
도 6a 내지 도 6c는 본 발명에 따른 컴퓨팅 시스템에 포함된 저장 시스템의 데이터 관리 동작을 설명하기 위한 도면들이다. 이하, 본 발명에 따른 저장 시스템의 데이터 관리 동작이 참조 도면들에 의거하여 이하 상세히 설명될 것이다.
앞서 설명된 바와 같이, 저장 시스템(200)의 제어 장치(260)는 버퍼 메모리(240)의 여유 공간을 확보하기 위해서 또는 유휴 시간을 활용하기 위해서 사상 테이블(261)을 참조하여 버퍼 메모리(240)에 저장되어 있는 데이터 파일들을 저장 매체(220)로 옮겨놓는다. 도 6a에 도시된 바와 같이, 버퍼 메모리(240)에는 3개의 파일 데이터(FILE1-FILE3)가 유효한 데이터로서 저장되어 있다고 가정하자. 특정 시점에서 저장 시스템(200)의 제어 장치(260)는 저장된 파일 데이터(FILE1-FILE3)와 관련된 사상 테이블(261)의 쓰기 상태 정보(WSI)를 참조하여 어떤 데이터가 무효한 데이터인 지의 여부를 판별한다. 도 6a에 도시된 바와 같이, 모든 파일 데이터(FILE1-FILE3)가 사상 테이블(261)에서 유효한 데이터로서 표시되어 있기 때문에, 제어 장치(260)는 정해진 방식에 따라 파일 데이터(FILE1-FILE3)가 저장 매체(220)의 대응하는 공간으로 옮겨지도록 저장 매체(220) 및 버퍼 메모리(240)를 제어한다.
만약 저장 매체(220)로의 데이터 옮겨쓰기 동작 이전에 저장 시스템(200)의 외부로부터 무효 정보(쓰기 되물리기 명령, 무효한 데이터 파일의 어드레스 정보, 그리고 무효한 파일 데이터의 크기 정보를 포함함)가 입력되면, 저장 시스템(200)의 제어 장치(260)는 무효 정보와 관련된 파일 데이터(예를 들면, FILE2)를 무효화시킨다. 즉, 도 6b에 도시된 바와 같이, 파일 데이터(FILE2)와 관련된 사상 테이블(261)의 쓰기 상태 정보(WSI)는 무효 데이터를 나타내도록 제어 장치(260)의 제어에 따라 갱신된다. 이후, 특정 시점에서 저장 시스템(200)의 제어 장치(260)는 저장된 파일 데이터(FILE1-FILE3)와 관련된 사상 테이블(261)의 쓰기 상태 정보(WSI)를 참조하여 어떤 데이터 파일들이 무효한 데이터인 지의 여부를 판별한다. 도 6b에 도시된 바와 같이, 파일 데이터(FILE1, FILE3)만이 사상 테이블(261)에서 유효한 데이터로서 표시되어 있기 때문에, 제어 장치(260)는 정해진 방식에 따라 파일 데이터(FILE1, FILE3)이 저장 매체(220)의 대응하는 공간으로 옮겨지도록 저장 매체(220) 및 버퍼 메모리(240)를 제어한다. 즉, 제어 장치(260)는 파일 데이터(FILE2)가 저장 매체(220)의 대응하는 공간으로 옮겨지는 것을 방지한다. 무효 파일 데이터로 처리된 버퍼 메모리(240)의 공간은 이후 행해지는 쓰기/읽기 동작을 위해서 사용될 수 있다.
또 다른 예로서, 도 6c에 도시된 바와 같이, 단지 하나의 파일 데이터(FILE1)만이 버퍼 메모리(240)에 저장되어 있다고 가정하자. 만약 저장 매체(220)로의 데이터 옮겨쓰기 동작 이전에 저장 시스템(200)의 외부로부터 무효 정보가 입력되면, 저장 시스템(200)의 제어 장치(260)는 입력된 무효 정보와 관련된 데이터(FILE1)를 무효화시킨다. 즉, 도 6c에 도시된 바와 같이, 데이터(FILE1)와 관련된 사상 테이블(261)의 쓰기 상태 정보(WSI)는 무효 데이터를 나타내도록 제어 장치(260)의 제어에 따라 갱신된다. 이후, 특정 시점에서 저장 시스템(200)의 제어 장치(260)는 저장된 데이터(FILE1)와 관련된 사상 테이블(261)의 쓰기 상태 정보(WSI)를 참조하여 저장된 데이터가 무효한 데이터인 지의 여부를 판별한다. 도 6c에 도시된 바와 같이, 사상 테이블(261)에서 유효한 데이터로서 표시되어 있는 데이터가 존재하지 않기 때문에, 저장 시스템(200)에서는 어떠한 옮겨쓰기 동작도 일어나지 않는다. 특히, 유휴 상태에서의 무효한 데이터의 옮겨쓰기 동작이 방지될 수 있다. 무효 데이터로 처리된 버퍼 메모리(240)의 공간은 이후 행해지는 쓰기 동작을 위해서 사용될 수 있다.
비록 무효 데이터로 표시된 데이터가 저장 매체(220)에 쓰여지더라도, 저장 매체(220)에 저장된 데이터인 무효 데이터와 관련된 파일은 어떠한 영향도 받지 않음에 주의해야 한다. 게다가, 무효 처리된 데이터는 제어 장치(260)의 제어에 따라 선별적으로 저장 매체(220)로 옮겨질 수 있다. 예컨대, 쓰기 되물리기 명령에 따라 버퍼 메모리(240)의 데이터가 무효화되더라도, 제어 장치(260)는 선별적으로 무효화된 데이터의 옮겨쓰기 동작을 수행하도록 구성될 수 있다.
본 발명에 따른 저장 시스템(200)은 버퍼 메모리(240)에 저장된 데이터가 무효한 데이터인 지의 여부를 나타내는 쓰기 상태 정보(WSI)를 포함하는 사상 테이블을 참조하여, 버퍼 메모리(240)에 임시 저장된 데이터를 저장 매체(220)에 옮기는 동작을 제어한다. 앞서 언급된 바와 같이, 데이터의 쓰기 상태 정보는 저장 시스템(200)의 외부로부터 제공되는 것으로, 그 데이터는 저장 시스템(200)의 외부에서 생성되어 전달된 데이터이다. 또는, 그 데이터는 저장 매체(220)에서 읽혀지고 저장 시스템(200)의 외부에서 변경된 새로운 데이터일 수 있다. 이러한 저장 시스템(200)은 컴퓨팅 시스템 뿐만 아니라 데이터를 저장하고자 하는 장치들(예를 들면, 하드 디스크 또는 플래시 메모리를 기반으로 한 MP3 플레이어, 휴대용 전자 장치들, 또는 그와 같은 것)에 적용될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 7은 본 발명의 다른 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 7을 참조하면, 본 발명의 다른 실시예에 따른 컴퓨팅 시스템(2000)은 프 로세싱 유니트(2100), 메모리(2200), 그리고 버퍼 메모리(2300)를 포함한다. 프로세싱 유니트(2100)는 중앙처리장치(CPU), 마이크로프로세서, 그리고 그와 같은 것을 포함할 것이다. 바람직하게, 프로세싱 유니트(2100)는 중앙처리장치로 구현될 것이다. 프로세싱 유니트(2100)는 컴퓨팅 시스템(2000)의 전반적인 동작을 제어하도록 구성될 것이다. 특히, 본 발명의 다른 실시예에 따른 컴퓨팅 시스템(2000)의 경우, 도 3에서 설명된 제어 장치(260)의 역할을 수행하도록 구성될 것이다. 예를 들면, 프로세싱 유니트(2100)는 버퍼 메모리(2300)의 데이터가 메모리(2200)의 사상 테이블(2240)에 따라 외부 저장 장치(3000)에 쓰여지는 것을 방지하도록 구성될 것이다. 이는 이후 상세히 설명될 것이다.
계속해서 도 7을 참조하면, 메모리(2200)의 적어도 일부분은 컴퓨팅 시스템(2000)의 메인 메모리를 포함한다. 또는, 메모리(2200)는 컴퓨팅 시스템(2000)의 메인 메모리를 구성한다. 메모리(2200)에는 응용 프로그램(2210) 및 파일 시스템(2220)이 각각 제공된다. 파일 시스템(122)은 파일 할당 테이블 파일 시스템을 포함하는 모든 파일 시스템들을 포함한다. 하지만, 파일 시스템이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리(2200)에는, 또한, 디바이스 드라이버(2230) 및 사상 테이블(2240)이 더 제공될 것이다. 디바이스 드라이버(2230)는 외부 저장 장치(3000)의 제어 및 인터페이스를 위해서 사용되며, 프로세싱 유니트(2100)는 디바이스 드라이버(2230)를 이용하여 외부 저장 장치(3000)와의 인터페이스를 제어할 것이다. 또한, 프로세싱 유니트(2100)는 디바이스 드라이버(2230)를 이용하여 외부 저장 장치(3000)와 버퍼 메모리(2300) 사이의 어드레스 사상을 관리하도록 구성될 것이다. 메모리(2200)에 저장된 사상 테이블(2240)은 외부 저장 장치(3000)와의 인터페이스 정보, 외부 저장 장치(3000)와 버퍼 메모리(2300) 사이의 어드레스 사상 정보, 그리고 버퍼 메모리(2300)에 저장된 데이터가 유효한 정보인 지의 여부를 나타내는 쓰기 상태 정보를 저장하는 데 사용될 것이다. 쓰기 상태 정보는 프로세싱 유니트(2100)에 의해서 갱신될 것이다. 예를 들면, 응용 프로그램(2210)에 의해서 처리되는 파일의 데이터 전부가 삭제될 때 또는 응용 프로그램(2210)에 의해서 처리되는 파일의 일부가 삭제될 때, 프로세싱 유니트(2100)는 디바이스 드라이버(2230)에 의거하여 사상 테이블(2240)의 쓰기 상태 정보를 갱신한다. 프로세싱 유니트(2100)는 사상 테이블(2240)의 쓰기 상태 정보에 따라 버퍼 메모리(2230)에 저장된 데이터의 전부 또는 일부가 외부 저장 장치(3000)에 쓰여지도록 버퍼 메모리(2300) 및 외부 저장 장치(3000)를 제어할 것이다. 따라서, 이미 삭제된 데이터에 대응하는 버퍼 메모리(2300)의 데이터가 외부 저장 장치(3000)에 쓰여지는 것을 방지하는 것이 가능하다.
계속해서, 버퍼 메모리(2300)는 컴퓨팅 시스템(2000)과 외부 저장 장치(3000) 사이의 원활한 데이터 전송을 위해 사용되며, DRAM 또는 SRAM과 같은 고속 휘발성 메모리 또는 MRAM, PRAM, FRAM, 낸드 플래시 메모리, 또는 노어 플래시 메모리 장치와 같은 불 휘발성 메모리로 구성될 수 있다. 바람직하게, 버퍼 메모리(2300)는 낸드 플래시 메모리로 구현될 것이다. 버퍼 메모리(2300)는 쓰기 버퍼로서 기능한다. 예를 들면, 버퍼 메모리(2300)는 프로세싱 유니트(2100)의 요청에 따라 외부 저장 장치(3000)에 쓰여질 데이터를 임시 저장하기 위한 쓰기 버퍼로서 기능한다. 또한, 쓰기 버퍼의 기능은 선택적으로 사용될 수 있다. 예컨대, 경우에 따라, 프로세싱 유니트(2100)에 의해서 처리된 데이터는 쓰기 버퍼 즉, 버퍼 메모리(2300)를 경유하지 않고 외부 저장 장치(3000)로 직접 전송될 수 있다. 버퍼 메모리(2300)는 읽기 버퍼로서 기능한다. 예를 들면, 버퍼 메모리(2300)는 프로세싱 유니트(2300)의 요청에 따라 외부 저장 장치(3000)에서 읽혀진 데이터를 임시 저장하기 위한 읽기 버퍼로서 기능한다. 도면에는 단지 하나의 버퍼 메모리가 도시되어 있지만, 2개 또는 그 보다 많은 버퍼 메모리들이 제공될 수 있다. 이 경우, 각 버퍼 메모리는 쓰기 버퍼, 읽기 버퍼 또는 2개의 기능을 모두 갖는 버퍼로서 사용될 수 있다.
계속해서 도 7을 참조하면, 외부 저장 장치(3000)는 데이터(문서 데이터, 영상 데이터, 음악 데이터, 그리고 프로그램과 같은 저장 가능한 모든 형식의 데이터를 포함함)를 저장하기 위한 것으로, 마크네틱 디스크 또는 플래시 메모리와 같은 불 휘발성 반도체 메모리로 구성될 수 있다. 외부 저장 장치(3000)에는 버퍼 메모리가 제공되지 않을 것이다. 이는 컴퓨팅 시스템(2000)의 버퍼 메모리가 쓰기 버퍼/읽기 버퍼인 캐쉬 메모리로서 사용되기 때문이다. 이러한 경우, 버퍼 메모리(2300)와 외부 저장 장치(3000)는 하이브리드 하드 디스크(Hybrid Hard Disk: HHD)로서 기능할 것이다.
본 발명에 따른 프로세싱 유니트(2100)는 외부 저장 장치(3000)와 버퍼 메모리(2300)를 제어하도록 구성된다. 프로세싱 유니트(2100)는 필요에 따라 외부 저장 장치(300)에 저장된 데이터가 컴퓨팅 시스템(2000)으로 이동되도록 디바이스 드라 이버(2230)를 이용하여 외부 저장 장치(3000)를 제어한다. 또는, 프로세싱 유니트(2100)는 필요에 따라 외부 저장 장치(300)에 저장된 데이터가 버퍼 메모리(2300)를 통해 컴퓨팅 시스템(2000)으로 이동되도록 디바이스 드라이버(2230)를 이용하여 외부 저장 장치(3000) 및 버퍼 메모리(2300)를 제어한다. 프로세싱 유니트(2100)는 외부 저장 장치(3000)에 저장될 데이터가 버퍼 메모리(2300)에 임시 저장되게 한다. 버퍼 메모리(2300)에 임시 저장된 데이터의 전부 또는 일부는 버퍼 메모리(2300)의 여유 공간이 부족할 때 또는 프로세싱 유니트(2100)의 유휴 시간이 생길 때, 프로세싱 유니트(2100)의 제어에 따라 외부 저장 장치(3000)로 옮겨진다. 이상의 동작을 수행하기 위해서, 앞서 언급된 바와 같이, 프로세싱 유니트(2100)는 외부 저장 장치(300)와 버퍼 메모리(2300) 사이의 어드레스 사상 정보 및 버퍼 메모리(2300)에 저장된 데이터가 유효한 정보인지의 여부를 나타내는 쓰기 상태 정보를 저장하기 위한 사상 테이블(2240)을 관리한다.
몇몇 실시예에 있어서, 컴퓨팅 시스템(2000)과 외부 저장 장치(3000)는 ATA, SATA, USB, SCSI, ESDI, 또는 IDE 인터페이스와 같은 표준 인터페이스 (standardized interface)에 의해서 연결된다. 하지만, 컴퓨팅 시스템(2000)과 외부 저장 장치(3000)를 연결하기 위한 인터페이스 방식이 이에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
이상의 설명으로부터 알 수 있듯이, 본 발명에 따른 컴퓨팅 시스템(2000)은 버퍼 메모리(2300)의 여유 공간이 부족할 때 또는 프로세싱 유니트(2100)의 유휴 시간이 생길 때 사상 테이블(2240)의 쓰기 상태 정보를 참조하여 버퍼 메모 리(2300)에 저장된 데이터의 전부 또는 일부를 외부 저장 장치(3000)로 옮기지 않는다. 즉, 본 발명에 따른 컴퓨팅 시스템(2000)은 버퍼 메모리(2300)에 저장된 데이터가 유효한 데이터인 지 또는 무효한 데이터 인지를 나타내는 사상 테이블(2240)의 쓰기 상태 정보에 의거하여, 버퍼 메모리(2300)에 저장된 데이터 중 무효한 데이터가 외부 저장 장치(3000)에 쓰여지는 것을 방지한다. 다시 말해서, 본 발명에 따른 컴퓨팅 시스템(2000)은 버퍼 메모리(2300)에 저장된 데이터에 유효/무효 정보의 꼬리표를 달아 외부 저장 장치(3000)로의 데이터 옮겨쓰기 동작을 선별적으로 제어한다. 버퍼 메모리(2300)에 저장된 데이터를 외부 저장 장치(3000)에 옮겨쓰는 동작은 도 4 내지 도 6에서 설명된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 따라서, 컴퓨팅 시스템(2000)의 쓰기 성능이 향상되고, 불필요한 쓰기 동작으로 인한 외부 저장 장치(3000)의 수명이 단축되는 것을 방지할 수 있다. 또한, 불필요한 쓰기 동작으로 인한 전력 소모를 줄임으로써 배터리 수명을 연장시킬 수 있다.
몇몇 실시예에 있어서, 버퍼 메모리(2300)는 온-보드 타입으로 컴퓨팅 시스템(2000)에 실장될 수 있다. 또는, 버퍼 메모리(2300)는 PCI 버스 또는 PCI-E 버스를 통해 컴퓨팅 시스템(2000)과 연결될 수 있다. 하지만, 버퍼 메모리(2300)의 연결 방법이 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 데스크탑 컴퓨터 및 노트북컴퓨터의 가능한 인터페이스들이 모두 사용될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
버퍼 메모리(2300)가 낸드 플래시 메모리 또는 노어 플래시 메모리와 같은 불 휘발성 메모리로 구현되는 경우, 버퍼 메모리(2300)는 다양하게 사용될 수 있다. 예를 들면, 버퍼 메모리(2300)는 부팅시 사용되는 부트 코드를 저장하기 위한 부트-업 메모리로서 사용될 수 있다. 이는 도 4에 도시된 버퍼 메모리(240) 역시 부트-업 메모리로서 사용될 수 있음을 의미한다. 게다가, 시스템 성능의 향상을 위해서 중요한 소프트웨어가 버퍼 메모리(2300)에 저장될 수 있다.
본 발명에 있어서, 각 구성 요소의 단순한 기능만이 설명되었지만, 인터페이스 기능(제어 기능을 포함함)이 필요에 따라 각 구성 요소에 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 도 7에 도시된 컴퓨팅 시스템의 버스가 단순하게 도시되어 있지만, 그러한 버스는 컴퓨팅 시스템에서 잘 알려진 다양한 버스들을 포함할 것이다.
이상에서, 본 발명에 따른 회로의 구성 및 동작을 상기한 설명 및 도면에 따라 도시하였지만, 이는 예를 들어 설명한 것에 불과하며 본 발명의 기술적 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능함은 물론이다.
상술한 바와 같이, 버퍼 메모리에 저장된 무효 데이터가 외부 저장 장치에 옮겨쓰여지는 것을 방지함으로써 컴퓨팅 시스템의 쓰기 성능이 향상되고, 불필요한 옮겨쓰기 동작으로 인한 외부 저장 장치의 수명이 단축되는 것을 방지할 수 있으며, 불필요한 옮겨쓰기 동작으로 인한 컴퓨팅 시스템(예를 들면, 데스크탑 그리고/또는 노트북 컴퓨터)의 전력 소모를 줄일 수 있다.

Claims (31)

  1. 외부 저장 장치에 저장될 데이터를 임시 저장하는 버퍼 메모리와; 그리고
    상기 버퍼 메모리의 임시 저장된 데이터가 무효 데이터로 처리될 때 상기 버퍼 메모리의 임시 저장된 데이터를 무효화시키는 프로세싱 유니트를 포함하며, 상기 임시 저장된 데이터가 무효화될 때, 상기 임시 저장된 데이터는 상기 외부 저장 장치로 쓰여지지 않는 컴퓨팅 시스템.
  2. 제 1 항에 있어서,
    상기 프로세싱 유니트는 상기 임시 저장된 데이터의 쓰기 상태 정보를 관리하도록 구성되며, 상기 임시 저장된 데이터와 관련된 정보에 따라 상기 쓰기 상태 정보를 갱신하는 컴퓨팅 시스템.
  3. 제 2 항에 있어서,
    상기 프로세싱 유니트는 상기 임시 저장된 데이터의 모두 또는 일부가 상기 외부 저장 장치에 쓰여지지 않도록 상기 쓰기 상태 정보에 따라 상기 버퍼 메모리 및 상기 외부 저장 장치를 제어하도록 구성된 컴퓨팅 시스템.
  4. 제 3 항에 있어서,
    상기 쓰기 상태 정보는 상기 임시 저장된 데이터가 유효한 데이터인 지의 여 부를 나타내는 컴퓨팅 시스템.
  5. 제 4 항에 있어서,
    상기 쓰기 상태 정보는 테이블 형태로 상기 컴퓨팅 시스템의 메모리에 저장되는 컴퓨팅 시스템.
  6. 제 5 항에 있어서,
    상기 메모리는 상기 버퍼 메모리를 관리하는 데 필요한 장치 드라이버를 저장하도록 구성되는 컴퓨팅 시스템.
  7. 제 1 항에 있어서,
    상기 버퍼 메모리는 SRAM 또는 DRAM을 포함한 휘발성 메모리 또는 낸드 플래시 메모리, 노어 플래시 메모리, MRAM, FRAM, 또는 PRAM을 포함한 불 휘발성 메모리이며, 상기 외부 저장 장치는 마그네틱 디스크와 불 휘발성 메모리 중 어느 하나인 컴퓨팅 시스템.
  8. 제 1 항에 있어서,
    상기 버퍼 메모리는 읽기 그리고 쓰기 캐쉬 메모리로서 사용되는 컴퓨팅 시스템.
  9. 제 1 항에 있어서,
    상기 버퍼 메모리는 시스템 성능의 향상을 위해서 중요한 소프트웨어를 저장하는 데 사용되는 컴퓨팅 시스템.
  10. 외부 저장 장치에 저장될 데이터를 임시 저장하는 버퍼 메모리와;
    상기 버퍼 메모리를 관리하는 데 필요한 장치 드라이버를 저장하는 메모리와;
    상기 장치 드라이버를 이용하여 상기 버퍼 메모리를 제어하도록 구성된 프로세싱 유니트를 포함하며,
    상기 프로세싱 유니트는 상기 임시 저장된 데이터가 무효 데이터로 처리될 때 상기 임시 저장된 데이터를 무효화시키기 위한 쓰기 상태 정보를 관리하도록 구성된 컴퓨팅 시스템.
  11. 제 10 항에 있어서,
    상기 쓰기 상태 정보는 상기 임시 저장된 데이터가 유효한 데이터인 지의 여부를 나타내는 컴퓨팅 시스템.
  12. 제 11 항에 있어서,
    상기 상기 임시 저장된 데이터가 무효한 데이터임을 상기 쓰기 상태 정보가 나타낼 때, 상기 프로세싱 유니트는 상기 임시 저장된 데이터가 상기 외부 저장 장 치로 쓰여지지 않도록 상기 버퍼 메모리를 제어하는 컴퓨팅 시스템.
  13. 제 11 항에 있어서,
    상기 프로세싱 유니트는 상기 임시 저장된 데이터와 관련된 정보에 따라 상기 쓰기 상태 정보를 갱신하는 컴퓨팅 시스템.
  14. 제 10 항에 있어서,
    상기 쓰기 상태 정보는 테이블 형태로 상기 메모리에 저장되는 컴퓨팅 시스템.
  15. 제 10 항에 있어서,
    상기 버퍼 메모리는 읽기 그리고 쓰기 캐쉬 메모리로서 사용되는 컴퓨팅 시스템.
  16. 제 10 항에 있어서,
    상기 버퍼 메모리는 시스템 성능의 향상을 위해서 중요한 소프트웨어를 저장하는 데 사용되는 컴퓨팅 시스템.
  17. 외부 저장 장치에 저장될 데이터를 임시 저장하는 버퍼 메모리와 프로세싱 유니트를 포함하는 컴퓨팅 시스템의 데이터 관리 방법에 있어서:
    상기 버퍼 메모리의 임시 저장된 데이터가 무효 데이터로 처리되었는 지의 여부를 판별하는 단계와; 그리고
    상기 버퍼 메모리의 임시 저장된 데이터가 무효 데이터로 처리될 때, 상기 프로세싱 유니트의 제어에 따라 상기 임시 저장된 데이터의 전부 또는 일부를 무효화시키는 단계를 포함하는 것을 특징으로 하는 데이터 관리 방법.
  18. 제 17 항에 있어서,
    상기 임시 저장된 데이터가 무효화될 때, 상기 임시 저장된 데이터는 상기 외부 저장 장치로 쓰여지지 않는 것을 특징으로 하는 데이터 관리 방법.
  19. 제 17 항에 있어서,
    상기 무효화 단계는
    상기 임시 저장된 데이터의 쓰기 상태 정보를 구성하는 단계와; 그리고
    상기 임시 저장된 데이터가 무효 데이터로서 처리될 때 상기 쓰기 상태 정보를 갱신하는 단계를 포함하는 것을 특징으로 하는 데이터 관리 방법.
  20. 외부 저장 장치에 쓰여질 데이터를 저장하는 버퍼 메모리와; 그리고
    상기 버퍼 메모리에 저장된 데이터와 관련된 무효 정보를 참조하여 상기 버퍼 메모리에 저장된 데이터의 전부 또는 일부가 상기 외부 저장 장치에 쓰여지지 않도록 상기 버퍼 메모리를 제어하는 프로세싱 유니트를 포함하는 컴퓨팅 시스템.
  21. 제 20 항에 있어서,
    상기 무효 정보는 상기 버퍼 메모리의 임시 저장된 데이터가 무효 데이터로 처리되었는 지의 여부를 나타내는 컴퓨팅 시스템.
  22. 제 21 항에 있어서,
    상기 프로세싱 유니트는 상기 버퍼 메모리에 저장된 데이터의 전부 또는 일부가 상기 외부 저장 장치에 쓰여지지 않도록 상기 무효 정보에 따라 상기 버퍼 메모리의 임시 저장된 데이터를 무효화시키는 컴퓨팅 시스템.
  23. 제 22 항에 있어서,
    상기 임시 저장된 데이터가 무효화될 때, 상기 임시 저장된 데이터는 상기 외부 저장 장치로 쓰여지지 않는 컴퓨팅 시스템.
  24. 제 20 항에 있어서,
    상기 프로세싱 유니트는 상기 임시 저장된 데이터의 쓰기 상태 정보를 관리하도록 구성되며, 상기 임시 저장된 데이터와 관련된 정보에 따라 상기 쓰기 상태 정보를 갱신하는 컴퓨팅 시스템.
  25. 제 24 항에 있어서,
    상기 쓰기 상태 정보는 테이블 형태로 상기 컴퓨팅 시스템의 메모리에 저장되는 컴퓨팅 시스템.
  26. 제 25 항에 있어서,
    상기 메모리는 상기 버퍼 메모리를 관리하는 데 필요한 장치 드라이버를 저장하도록 구성되는 컴퓨팅 시스템.
  27. 제 20 항에 있어서,
    상기 버퍼 메모리는 SRAM 또는 DRAM을 포함한 휘발성 메모리 또는 낸드 플래시 메모리, 노어 플래시 메모리, MRAM, FRAM, 또는 PRAM을 포함한 불 휘발성 메모리이며, 상기 외부 저장 장치는 마그네틱 디스크와 불 휘발성 메모리 중 어느 하나인 컴퓨팅 시스템.
  28. 제 20 항에 있어서,
    상기 버퍼 메모리는 읽기 그리고 쓰기 캐쉬 메모리로서 사용되는 컴퓨팅 시스템.
  29. 제 20 항에 있어서,
    상기 버퍼 메모리는 시스템 성능의 향상을 위해서 중요한 소프트웨어를 저장하는 데 사용되는 컴퓨팅 시스템.
  30. 제 20 항에 있어서,
    상기 버퍼 메모리는 PCI-E 버스를 통해 상기 프로세싱 유니트와 통신하는 컴퓨팅 시스템.
  31. 제 20 항에 있어서,
    상기 버퍼 메모리는 상기 프로세싱 유니트가 장착되는 보드 상에 직접 실장되는 컴퓨팅 시스템.
KR1020060082979A 2006-08-30 2006-08-30 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는컴퓨팅 시스템 KR20080021211A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060082979A KR20080021211A (ko) 2006-08-30 2006-08-30 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는컴퓨팅 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060082979A KR20080021211A (ko) 2006-08-30 2006-08-30 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는컴퓨팅 시스템

Publications (1)

Publication Number Publication Date
KR20080021211A true KR20080021211A (ko) 2008-03-07

Family

ID=39395746

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060082979A KR20080021211A (ko) 2006-08-30 2006-08-30 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는컴퓨팅 시스템

Country Status (1)

Country Link
KR (1) KR20080021211A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100968121B1 (ko) * 2008-09-01 2010-07-06 주식회사 안철수연구소 이동식 디스크를 통한 악성 프로그램 차단 방법 및 그 장치
KR20110103165A (ko) * 2010-03-12 2011-09-20 삼성전자주식회사 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100968121B1 (ko) * 2008-09-01 2010-07-06 주식회사 안철수연구소 이동식 디스크를 통한 악성 프로그램 차단 방법 및 그 장치
KR20110103165A (ko) * 2010-03-12 2011-09-20 삼성전자주식회사 데이터 저장 장치 및 그것을 포함하는 컴퓨팅 시스템

Similar Documents

Publication Publication Date Title
KR100578143B1 (ko) 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
US11216214B2 (en) Memory system and operation method thereof
CN109144888B (zh) 存储器系统
KR100876084B1 (ko) 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
EP3382557B1 (en) Method and apparatus for persistently caching storage data in a page cache
KR102553261B1 (ko) 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법
US20100083247A1 (en) System And Method Of Providing Multiple Virtual Machines With Shared Access To Non-Volatile Solid-State Memory Using RDMA
JP2011128998A (ja) 半導体記憶装置
US20110231595A1 (en) Systems and methods for handling hibernation data
JP2018073040A (ja) メモリシステム
JP2006018839A (ja) 漸進的マージ方法及びそれを利用したメモリシステム
JP2010186340A (ja) メモリシステム
KR20130123729A (ko) 비휘발성 메모리 시스템
US20180089088A1 (en) Apparatus and method for persisting blocks of data and metadata in a non-volatile memory (nvm) cache
US8185687B2 (en) Semiconductor storage device and method of controlling semiconductor storage device
CN113126910A (zh) 存储设备及其操作方法
EP3926451B1 (en) Communication of data relocation information by storage device to host to improve system performance
JP2005190187A (ja) 記憶装置
KR20240004304A (ko) Copy-on-write를 사용하는 on-ssd-copy 기술들
CN112309450A (zh) 存储装置
WO2015015589A1 (ja) 情報処理装置、メモリダンプ方法、およびメモリダンププログラム
CN112148628A (zh) 用于主机管理的存储的卸载碎片整理操作
KR20100121389A (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
KR20080021211A (ko) 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는컴퓨팅 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application