KR20000005206A - 데이터 저장 장치 - Google Patents

데이터 저장 장치 Download PDF

Info

Publication number
KR20000005206A
KR20000005206A KR1019980707884A KR19980707884A KR20000005206A KR 20000005206 A KR20000005206 A KR 20000005206A KR 1019980707884 A KR1019980707884 A KR 1019980707884A KR 19980707884 A KR19980707884 A KR 19980707884A KR 20000005206 A KR20000005206 A KR 20000005206A
Authority
KR
South Korea
Prior art keywords
data
memory
storage device
area
block
Prior art date
Application number
KR1019980707884A
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 알란 웰시 싱클레어
Publication of KR20000005206A publication Critical patent/KR20000005206A/ko

Links

Classifications

    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 저장기(10), 버퍼 메모리(12), 사용자 인터페이스(32), 및 메모리 제어기(24)를 포함하며, 상기 메모리는 상기 사용자 인터페이스와 상기 저장기 사이에 전송되는 모든 데이터를 버퍼링하는 데이터 저장 장치로서, 상기 메모리 제어기는 상기 저장기와 상기 메모리 사이의 전송을 위해 직접 데이터를 복사하는데 사용되지만, 상기 데이터가 상기 메모리와 상기 사용자 인터페이스 사이에 전송될 때 상기 데이터를 재구성하는 것을 특징으로 하는 데이터 저장 장치에 관한 것이다.

Description

데이터 저장 장치
데이터 압축 기술은 데이터 저장 시스템에 대해 2개의 주요한 이익을 제공할 수 있다. 데이터 저장 장치의 유효 용량은 상기 장치에 저장될 데이터의 부피가 저장 시스템으로 그리고 저장 시스템으로부터 전송된 데이터의 논리적 부피보다 적기 때문에 그것의 물리적 용량 이상으로 증가될 수 있다. 상기 저장 장치로의 그리고 저장 장치로부터의 데이터 전송 시간은 상기 데이터의 물리적 부피를 감소시킴으로써 효율적으로 감소된다. 이것은 예를 들어 자기 디스크에서 저장 장치의 동작이 상대적으로 느린 경우에 특히 이익이 된다.
PCT 특허 출원 제91/20076호(스토리지 테크놀로지 코포레이션)는 각각의 데이터 레코드가 데이터를 위해 요구된 물리적 공간만을 차지하도록 데이터의 저장을 허용하는 동적 매핑 가상 메모리 시스템의 사용을 개시한다. 다중 경로 저장 관리자를 사용한 압축 알고리즘이 저장 이전에 데이터를 압축한다. 널 필드가 가상 메모리 맵에 나열되고 물리적 매체에 기록되지 않는다.
PCT 특허 출원 제 91/20025호(스토리지 테크놀로지 코포레이션)는 삭제된 데이터 세트 공간이 재사용을 위해 즉시 해제되는 동적 매핑 가상 메모리 시스템을 개시한다. 상기 데이터 저장 부시스템은 데이터 파일이 가상 VTOC로부터 소거된다는 표시를 수신한다. 부가적 데이터 보안성은 캐시와 저장 장치 둘다에서 소거된 저장 파일의 데이터에 대한 인증되지않은 액세스를 방지함으로써 제공된다.
유럽 특허 출원 제 0 682306호는 가장 효율적인 위치 배열을 결정하도록 데이터의 블록 크기를 데이터 저장을 위해 이용가능한 공간과 비교하는 로그 구조 파일 시스템을 개시한다. 상기 시스템은 압축된 데이터와 압축되지않는 데이터를 위한 개별 버퍼 및 디스크에 보다 소수의 바이트를 선택적으로 기록하는 제어기를 가진다.
미국 특허 제4467421호(스토리지 테크놀로지)는 저장 매체가 테이프 드라이브를 흉내내어 연속 방식으로 데이터를 기록하도록 호스트 CPU와 (디스크드라이브) 저장 장치 사이에 삽입되는 가상 저장 시스템을 개시한다. 상기 시스템은 혼합 모드 저장 시스템에 적용될 수 있는데, 반도체 RAM, CCD 메모리, 디스크 드라이브 및 테이프와 같은 상기 시스템의 부품은 서로 다른 응답 시간을 가진다.
자기 디스크, 광디스크 및 자기 테이프와 같은 많은 데이터 저장 장치에서, 데이터는 데이터 블록으로 칭해지는 고정된 크기의 단위로 저장된다. 데이터 블록의 공통 크기는 512 바이트이다. 호스트가 데이터 블록에 주는 어드레스는 논리적 블록 어드레스라 불리우는 반면, 실제로 데이터 블록을 저장하는 메모리 영역의 어드레스는 물리적 블록으로 불리운다. 논리적 블록 어드레스와 물리적 블록 어드레스는 보통 동일한 순서로 되지만(즉, 연속적인 논리적 블록 어드레스는 통상 연속적인 물리적 블록 어드레스에 대응된다), 물리적 어드레스 공간은 연속될 수 없다. 상기 불연속성은 저장 매체의 물리적 특성 때문에 발생할 수 있는데, 예를 들어 물리적 어드레스내의 특정 블록은 결함의 존재 때문에 쓸 수 없을 것이다. 데이터 블록의 논리적 어드레스는 블록들의 물리적 순서에서의 불연속성을 정의하기 위한 알고리즘 또는 룩업 테이블을 사용함으로써 물리적 어드레스로 변환될 수 있다.
그러나, 데이터 압축이 사용될 때, 압축 후의 데이터 크기는 일부 데이터가 다른 데이터보다 더 많이 압축될 수 있기 때문에 각 논리적 블록에 대해 일정하지 않을 수 있다. 그러므로, 각 논리적 블록의 압축으로부터 얻어지는 데이터 양은 변화될 것이다.
논리 블록의 압축으로부터 얻어지는 데이터의 양은 데이터의 성질과 사용된 압축 기술에 의존한다. 또한 압축된 데이터 블록의 물리적 크기는 데이터가 판독되고, 변형되며, 재기록될 때 변경될 수 있다. 그러므로, 자기 디스크와 같은 무작위 블록 액세스 저장 장치의 중간 제어 구조에서 데이터 압축을 사용하는 것은 데이터의 고정된 논리 블록의 압축으로부터 얻어지는 데이터의 가변 양을 관리하는 문제 때문에 상당한 어려움이 있다.
발명의 요약
본 발명은 저장기, 버퍼 메모리, 사용자 인터페이스, 및 메모리 제어기를 포함하며, 상기 메모리는 상기 사용자 인터페이스와 상기 저장기 사이에 전송되는 모든 데이터를 버퍼링하는 데이터 저장 장치로서, 상기 메모리 제어기는 상기 저장기와 상기 메모리 사이의 전송을 위해 직접 데이터를 복사하는데 사용되지만, 상기 데이터가 상기 메모리와 상기 사용자 인터페이스 사이에 전송될 때 상기 데이터를 재구성하는 것을 특징으로 하는 데이터 저장 장치를 제공한다.
상기 메모리는 상기 저장기 영역과 동일한 용량을 가지는데, 상기 영역은 상기 저장기의 액세싱 매커니즘에 따라 단일 동작으로 편리하게 액세싱될 수 있는 상기 저장기의 일부이다.
데이터는 저장기로 그리고 저장기로부터 충분한 용량의 메모리 유니트에 전송될 수 있다.
상기 데이터 저장 시스템은 수개의 저장기를 포함할 수 있고, 각각의 저장기는 메모리로 그리고 메모리로부터의 데이터 전송을 수행할 수 있다.
상기 데이터 저장 시스템은 수개의 메모리를 포함할 수 있고, 각각의 메모리는 저장기의 독립 영역으로부터 데이터를 로딩할 수 있다.
저장기로부터 메모리로의 데이터 전송은 메모리에 상주하는 사용자 인터페이스에서의 트랜잭션을 위해 요구되는 데이터 블록의 최고 가능한 가능성을 제공하도록 스케줄링될 수 있다.
상기 저장기는 자기 디스크가 될 수 있다.
상기 메모리는 랜덤 액세스 반도체 메모리가 될 수 있다.
데이터 압축과 압축 해제는 메모리와 사용자 인터페이스 사이에 편입될 수 있다.
저장기의 영역은 상기 영역에 영구적으로 상주하는 미리 결정된 수의 논리적으로 연속적인 데이터 블록을 포함할 수 있으며, 같은 수 만큼의 불연속 데이터 블록이 상기 영역의 이용가능한 물리적 저장 공간에 알맞게 수용될 수 있다.
상기 불연속 데이터 블록은 제 1 영역에 영구적으로 상주하는 하나 이상의 논리적으로 연속적인 데이터 블록이 크기에서 증가하는 경우 제 1 영역으로부터 제 2 영역으로 재배치될 수 있다.
상기 불연속 데이터 블록은 제 2 영역에 영구적으로 상주하는 하나 이상의 논리적으로 연속적인 데이터 블록의 물리적 크기의 변화로부터 얻어지는 물리적 저장 공간을 채우기 위해 제 1 영역으로부터 제 2 영역으로 재배치될 수 있다.
상기 영역들 사이의 불연속 데이터 블록의 재배치는 하나의 메모리로부터 다른 메모리로 상기 블록을 전송함으로써 달성될 수 있다.
메모리는 상기 영역들 사이에 재배치될 수 있는 모든 데이터 블록의 소스 또는 용도로 선정될 수 있다.
상기 메모리 제어기는 데이터 블록의 재배치를 위해 충분히 자유로운 물리적 메모리 공간을 제공할 때 상기 메모리가 저장기의 영역으로부터 데이터를 로딩하는 것을 보장할 수 있다.
어떤 영역에 영구적으로 상주하는 미리 결정된 수의 논리적으로 연속적인 데이터 블록의 논리적 페이지 어드레스는 저장기내의 영역에 대한 순차적 어드레스와의 직접 대응을 가질 수 있다.
어떤 영역에 영구적으로 상주하지 않는 독립 데이터 블록의 논리적 어드레스는 룩업 테이블에 의해 어떤 영역내의 논리적 어드레스로 전송될 수 있다.
상기 메모리는 고정된 수의 데이터 워드를 포함하는 타일로 독립적으로 어드레싱 가능하다.
각각의 논리적 데이터 블록은 링크된 타일 그룹의 체인으로 저장될 수 있다.
각 체인에서의 그룹의 크기와 수는 데이터 블록의 크기에 따라 선택될 수 있다.
어드레스는 상기 블록의 제 1 타일 그룹의 메모리내에 물리적 어드레스를 식별하는 데이터의 각 논리적 블록에 대해 저장될 수 있다.
상기 메모리에서 사용되지 않은 어떤 타일 그룹은 다수의 자유 공간 체인에 동시에 링크된다.
1차 전력 공급원이 고장나는 경우에 메모리로의 모든 데이터를 저장기로 전송할 수 있도록 충분한 시간동안 전력원을 유지하기 위해 배터리가 제공될 수 있다.
데이터 압축으로부터 얻을 수 있는 가변 블록 크기를 갖는 데이터 저장 관리를 위한 구성이 고안되어 왔다. 이런 구성중 하나는 분할할 수 없는 단위로서 데이터 블록을 취급하고 메모리에서의 데이터 블록의 재배치와 기록에 의해 자유 메모리의 분할을 관리한다. 이것은 서로 다른 배치로 데이터 블록을 재기록할 것과 논리적 어드레스를 물리적 어드레스에 매핑하는 룩업 테이블의 갱신을 요구한다.
이런 구성의 단점은 데이터 블록의 반복된 재배치가 데이터의 변조 기회를 증가시킬 수 있다는 것이다. 그러나, 상기 재배치는 데이터 블록이 물리적 메모리의 물리적으로 연속적인 영역에 저장되어야 하기 때문에 필수적이다. 상기 구성은 재배치를 수행하기 위해 전체 메모리에 대한 빠른 액세스를 요구하고 고체 상태 디스크와 같은 큰 반도체 메모리에 가장 적당하다. 상기 구성이 요구하는 빠른 무작위 데이터 액세스 동작은 자기 디스크 메모리와 호환 불가능하다.
가변 블록 크기로 데이터를 저장하기 위한 다른 구성은 데이터 블록의 분산된 저장을 사용한다. 상기 데이터 블록은 물리적 메모리의 서로 다른 위치에 저장되는 불연속 단편으로 세분된다. 메모리는 타일이 메모리의 기본 단위이고 고정된 수의 데이터 워드를 포함하는 다수의 타일 그룹으로 편성된다. 다수의 서로 다른 그룹 크기가 있고 각각의 그룹 크기는 서로 다른 수의 타일을 포함한다. 데이터 블록이 저장될 때 타일 그룹의 부분 사용으로부터 일어나는 저장 공간의 낭비를 최소화하기 위하여 타일 그룹의 선택으로 분할된다. 데이터 블록의 개별 단편은 각각의 단편 또는 그룹과 연관된 그룹 헤더에 저장된 링크 포인터에 의해 동시에 링크된다. 데이터 블록의 저장을 위해 사용된 제 1 단편의 물리적 위치는 바람직하게 동일한 매체에 개별적으로 저장되고, 논리 룩업 테이블을 물리적 블록 어드레스로 컴파일링하는데 사용된다. 상기 구성은 상기 메모리를 블록을 위해 요구되는 저장 공간의 최소량이 사용되도록 동시에 링크될 수 있는 다수의 미리 결정된 크기를 가지는 개별 단편으로 미리 형성할 수 있다. 자유 데이터 공간을 관리하기 위하여, 저장을 위해 사용되지 않은 단편들은 이들의 그룹 헤더를 통해 링크되고 자유 메모리의 단편 체인이 얻어진다. 상기 구성은 각각의 블록 액세스를 위해 메모리 소자에 대한 다중 무작위 액세스를 요구하고, 그래서 고속 반도체 메모리가 사용될 때 가장 효과적이다. 상기 구성은 특히 고체 상태 디스크 메모리에 사용하기 적당하다. 그러나 한가지 단점은 빠른 무작위 액세스를 제공할 수 없는 자기 디스크와 같은 메모리 소자와 직접 사용하기에 부적당하다는 점이다.
가변 블록 크기를 갖는 데이터의 저장 관리를 위한 이미 언급된 2가지 구성은 저장 매체에서의 효율적인 배치를 위한 데이터 블록의 분할 및 저장된 데이터 블록의 어떤 크기 변화를 보상하기 위한 데이터 블록의 재배치 원리에 기초하고 있다. 둘다의 원리는 데이터 블록 판독과 기록 동작을 위해 저장 매체에 대한 다중 무작위 액세스를 요구하므로 빠른 메모리가 저장 장치에 사용되는 경우에만 고성능 데이터 저장 시스템을 제공할 수 있다. 상기 방법들은 주로 랜덤 액세스 반도체 메모리를 사용하는 고체 상태 디스크 시스템을 위해 사용된다. 이런 방법들은 자기 디스크에서의 랜덤 액세스는 기계적인 동작이고 상대적으로 느리기 때문에 자기 디스크와 같은 저장 장치에는 적용하기 어렵다.
본 발명의 더 나은 이해 및 어떻게 효과적으로 수행될 수 있는지를 제시하기 위하여, 이제 본 발명의 바람직한 실시예가 첨부된 도면을 참조하여 설명될 것이다.
본 발명은 데이터 저장 장치에 관한 것이다. 데이터 변환 또는 압축 기술의 사용으로부터 얻을 수 있는 바와 같이 블록 크기를 변경하여 데이터를 저장할 수 있는 시스템에 적용된다.
도 1은 데이터 액세스를 저장기 영역에 버퍼링하기 위한 고속 메모리의 사용을 개략적으로 도시하는 도면.
도 2는 영역 버퍼 구조를 사용하는 시스템을 도시하는 도면.
도 3은 영역 저장 관리를 위한 논리적 대 물리적 매핑을 도시하는 도면.
도 4는 글로벌 저장 관리를 위한 논리적 대 물리적 매핑을 도시하는 도면.
도 5는 영역 버퍼내의 메모리 구조를 도시하는 도면.
도 6은 영역 버퍼내의 각 그룹 메모리 구조와 연관되는 그룹 헤더의 포맷을 도시하는 도면.
도 7은 영역 버퍼내의 데이터 블록 구조를 도시하는 도면.
도 8은 영역 버퍼내의 자유 공간 구조를 도시하는 도면.
도 9는 본 발명의 실시예에 따른 영역 저장의 제어를 위한 구성을 도시하는 도면.
도 10은 본 발명을 적용한 시스템에서의 영역 버퍼 메모리의 제어를 위한 구성을 도시하는 도면.
데이터 압축 기술이 데이터 블록에 적용될 때, 상기 압축이 달성되므로 압축된 블록 크기는 데이터의 특성 함수로서 광범하게 변화한다. 일부 데이터 타입, 이를테면 2진 객체 코드는 매우 적은 여분을 포함하고, 이미지 데이터와 같은 다른 형태가 1/10 이하로 압축될 수 있는 반면 단지 약간만의 압축이 가능하다. 그러므로, 압축 이전의 블록 크기가 고정 크기라 하더라도 데이터 압축후 데이터 저장 시스템에서의 블록 크기는 매우 넓은 범위로 변화할 수 있다. 효율적인 저장 관리 구성은 블록 크기 분배의 동적인 특성으로 대처할 수 있어야 한다.
도 1은 기본 데이터 저장 시스템을 도시한다. 상기 시스템은 이런 실시예에서 고속 메모리(12)에 접속된 자기 디스크 드라이브(10)가 되는 저장기를 가지고, 상기 메모리는 상기 자기 디스크 드라이브로의 모든 데이터 입/출력 동작을 위한 버퍼로서 기능한다. 도 1의 시스템은 데이터 압축과 같은 데이터 변환으로부터 얻어지는 가변 블록 크기 데이터의 관리를 위해 요구되는 분할 및 재배치 원리를 보여준다. 상기 자기 디스크 드라이브(10)는 고정된 물리적 크기가 되는 영역(14)으로 분할되고 순차적으로 상기 자기 디스크 드라이브(10)내에 어드레싱된다. 영역(14)은 액세싱 매커니즘에 따른 자기 디스크 드라이브(10)의 자연적 세분이다. 데이터는 상기 디스크 드라이브(10)의 단일 액세스 동작으로 영역(14)에 기록되거나 영역(14)으로부터 판독될 수 있다. 예를 들면, 영역(14)은 상기 자기 디스크910)의 트랙 또는 실린더 또는 자기 디스크의 어레이가 될 수 있다. 상기 디스크 드라이브(10)는 고속 메모리(12)를 사용하여 상기 자기 디스크 드라이브(10)에 접속하는 데이터 포트(16)를 통해 개별적으로 어드레싱될 수 있는 다수의 영역(14)을 포함한다. 상기 고속 메모리(12)는 상기 데이터 포트(16)에 접속하여 디스크 드라이브(10)내로 또는 그것으로부터 전송되는 모든 데이터를 버퍼링한다. 상기 고속 메모리(12)는 상기 디스크 드라이브(10)의 영역(14)의 용량과 동일한 메모리 용량을 가지도록 구성된다. 데이터는 상기 고속 메모리(12)와 영역의 전체 데이터 내용이 단일 동작으로 데이터 포트(16)를 통해 전송되도록 상기 고속 메모리(12)와 영역(14) 사이에 전송된다. 상기 데이터 전송은 상기 고속 메모리(12)와 영역(14) 사이의 직접 비트 복사로서 발생한다.
데이터는 상기 고속 메모리 소자(12)에 접속되는 데이터 입/출력 채널(18)을 통해 상기 데이터 저장 시스템에 기록되고 데이터 저장 시스템으로부터 판독된다. 데이터는 상기 고속 메모리(12)와 상기 입/출력 채널(18) 사이에 재편성된다. 예를 들면, 데이터 압축과 압축 해제는 상기 입/출력 채널(18)에 편입될 수 있다. 데이터는 입/출력 동작에서 전송된 데이터 부피가 상기 고속 메모리(12)의 용량보다 상당히 작게 되도록 보통 데이터 블록의 단위 또는 데이터 블록의 시퀀스로 상기 입/출력 채널(18)에 전송된다.
도 2는 다수의 고속 메모리(12), 대응하는 수의 저장기(10) 및 관리 기능들을 편입시킨 데이터 저장 시스템을 도시한다. 이런 실시예에서의 상기 저장기(10)는 자기 디스크 이지만, 다른 실시예에서 광 디스크 또는 자기 테이프와 같은 대용량 저장 장치의 다른 형태가 될 수 있다. 각각의 디스크 드라이브(10)는 데이터 포트(16)를 통해 어떤 저장기(10)의 어떤 영역(14)으로부터의 데이터가 액세싱될 수 있는 영역 버스(20)에 접속한다. 또한 상기 영역 버스(20)는 메모리 포트(22)를 통해 다수의 고속 메모리(12)에 접속된다. 각각의 고속 메모리(12)는 상기 영역 버스(20)에서 사용된 어떤 데이터 전송 구성의 멀티플렉싱 제약만을 받게 되는, 어떤 저장기(10)의 영역(14)에 그리고 그 영역으로부터 데이터를 독립적으로 전송한다. 각각의 고속 메모리(12)는 메모리 저장 관리기(24)에 의해 제어된다. 데이터 압축기(26)가 각각의 고속 메모리(12)에 대한 압축기 포트(28)와 상기 데이터 저장 시스템에 대한 입/출력 채널(18) 사이에 편입된다.
고정된 크기로 이루어진 데이터의 논리적 블록(데이터 블록)은 인터페이스 버스(32)와 인터페이스 포트(34)를 통해 상기 입/출력 채널(18)로부터 블록 버퍼 메모리(30)로 전송된다. 다음에 이런 데이터 블록은 상기 메모리 저장 관리기(24)의 제어하에서 상기 데이터 압축기(26)를 통과하고 얻어지는 가변적인 크기의 블록들은 상기 고속 메모리(12)에 기록된다. 반전 시퀀스 동작이 고속 메모리(12)로부터 상기 입/출력 채널(18)로의 데이터 블록 전송을 위해 적용된다. 상기 인터페이스 버스(32)는 데이터 블록이 사용된 어떤 데이터 전송 구성의 멀티플렉싱 제약만을 받게 되는, 어떤 고속 메모리(12)와 상기 데이터 입/출력 채널(18) 사이에 전송되도록 한다. 또한 데이터는 내부 복사 포트(36)와 내부 복사 버스(38)에 의해 2개의 고속 메모리(12) 사이에 직접 전송될 수 있다. 메모리 저장 관리기(24)는 고속 메모리(12)내의 데이터 구성과 저장을 제어하고, 데이터 압축기(26)를 통과하는 데이터 흐름을 제어하고, 고속 메모리(12)로의 그리고 고속 메모리(12)로부터의 데이터 전송을 제어하며, 영역(14)내의 데이터에 대한 논리적이고 물리적인 어드레스 변환을 수행한다. 글로벌 저장 관리기(40)는 상기 입/출력 채널(18)에서의 동작으로 제어하고, 디스크 캐싱 알고리즘을 수행하고, 대용량 저장 장치에서의 영역(14)으로 그리고 그 영역(14)으로부터의 데이터 전송을 스케줄링하고 제어하고, 영역(14) 사이의 블록 재배치를 스케줄링하고 데이터 블록에 대한 논리 대 물리적 영역(14) 어드레스 변환을 수행한다.
상기 도 2에 도시된 시스템은 고속 디스크 캐시 메모리로서 고속 메모리(12)의 사용을 통해 자기 디스크에 기초한 고성능 데이터 저장 시스템을 제공한다. 고속 캐시 메모리와 디스크 메모리 사이의 데이터 전송이 캐시 메모리에 상주하고 있는 입/출력을 위해 요구되는 데이터의 높은 확률을 제공하도록 스케줄링 된다면 캐시 메모리의 사용이 빠른 데이터 저장 시스템을 제공할 수 있다는 것은 공지되어 있다. 상기 고속 메모리(12)는 단지 압축된 데이터가 자기 디스크(10)와 고속 메모리(12) 사이에 전송되기 때문에 매우 빠른 캐시 동작을 달성한다. 그러므로 데이터 전송 시간은 최소화될 수 있다. 높은 논리적 저장 능력이 저장된 데이터의 압축에 의해 형성된다.
도 3은 압축되지 않은 논리적 데이터 블록의 구성과 고속 메모리(12)내의, 즉 상기 자기 저장기(10)의 영역(14)내의 물리적 저장 공간 사이의 관계를 도시한다. 각각의 영역(14)은 페이지(50)로서 지시되고 상기 영역(14)에 영구적으로 상주하는 고정된 수(m)의 논리적으로 연속적인 데이터 블록을 포함한다. 상기 데이터 저장 시스템내의 논리적 페이지 번호는 논리적 페이지 어드레스와 논리적 영역 어드레스 사이의 직접 대응이 있도록 상기 자지 디스크(10)내의 순차적 영역 번호와 동일하게 될 수 있게 배열된다. 페이지(50)내의 데이터 블록의 수(m)는 어드레스 디코딩이 간단하도록 바람직하게 2진 거듭제곱이다. 영역(14)의 물리적 메모리 용량은 상기 데이터의 최소 압축만이 달성될 때 하나의 논리 페이지(50)를 수용하기에 충분할 만큼 크다.
통상 논리 페이지(50)의 저장후 나머지 물리적 메모리 용량이 있을 것이고 이것은 다수(b)의 독립의 언페이징 불연속 데이터 블록(언페이징 블록(52))에 의해 차지될 수 있다. 상기 수(b)는 영역(14)내의 데이터에 대해 얻어진 압축비의 함수로서 변경가능하다.
상기 가변 크기의 논리적 블록은 상기 물리적 영역(14)에 효율적으로 팩킹되도록 분할되고 분배된다. 영역(14a)내의 부가적 물리적 공간이 언페이징 블록(50)의 크기 증가를 도모하기 위해 요구되는 경우, 언페이징 블록(52)은 다른 영역(14b)에 재배치될 수 있다. 이것은 도 2의 구조에서 고속 메모리(12) 사이에 직접 데이터를 전송함으로써 달성될 수 있다.
도 4는 상기 데이터 저장 시스템내에서의 논리적 블록 번호와 물리적 저장 공간의 구성 사이의 관계를 도시한다. 논리적 블록은 2개의 별개 시리즈로 구성된다. 제 1 시리즈는 각각 m개 블록의 n개 페이지(50)를 가지며, 각각의 페이지(50)는 대응하는 논리적 번호로 영역(14)에 저장된다. 그러므로 페이지(50)에 대한 어드레스 변환은 요구되지 않는다. 제 2 시리즈는 k개의 언페이징 블록(52)으로 이루어진다. 상기 k개의 언페이징 블록(52)은 페이지 없이 저장된다. 상기 k값은 상기 페이지 블록(50)의 저장후 이용가능한 메모리 공간에 의존한다. 언페이징 블록(52)은 상기 물리적 메모리 공간내의 어떤 영역(14)에 배치될 수 있고, 또한 영역(14a)에서의 페이지 블록(52)의 크기 변화를 수용하기 위해 한 영역(14a)으로부터 다른 영역(14b)에 재배치될 수 있다.
룩업 테이블(54)은 언페이징 블록(52)에 대한 논리적 번호를 그것이 배치되는 논리적 영역 번호로 변환하는데 사용된다. 상기 룩업 테이블(540은 빠른 메모리의 특별한 영역에 저장될 수 있다. 상기 빠른 메모리(상기 룩업 테이블)의 내용은 영역(14)에 대한 고속 메모리(12)의 내용 전송과 유사한 방식으로 상기 자기 디스크(10)의 대응 영역에 복사된다.
영역(14) 사이의 언페이징 블록(52)의 재배치는 내부 복사 버스(38)를 통한 하나의 고속 메모리(12a)로부터 다른 고속 메모리(12b)로의 언페이징 블록(52)의 전송에 의해 달성된다. 어떤 고속 메모리(12b)는 자유 물리적 메모리 영역을 갖는 영역(14)을 홀딩하도록 할당될 수 있고 모든 블록 재배치의 소스 또는 용도로서 지정될 수 있다. 이런 식으로, 영역(14) 사이의 블록 재배치는 상기 자기 디스크 드라이브에 대한 액세스를 요구하지 않는다.
자유 메모리 공간이 자기 디스크(10)의 어떤 영역(14)에 존재하지 않을 때, 상기 저장 시스템은 최대 용량에 도달되게 된다. 부가적 데이터 블록은 기록될 수 없을 것이다. 현재의 데이터 블록의 변형은 자유 공간이 데이터 블록의 삭제에 의해 형성될 때까지는 가능하지 않을 것이다.
도 5는 고속 메모리(12)에 존재하는 상기 메모리 구조를 도시한다. 고속 메모리(12)와 영역(14)내의 데이터 블록과 자유 메모리 공간은 본 출원에서 이미 기술된 블록의 분배 저장을 위한 구성에 따라 편성된다. 워드(60)가 물리적 메모리의 최소 어드레싱 가능한 단위이고 메모리 소자의 구조에 의해 결정된 워드 길이를 가질 것이다. 상기 길이는 전형적으로 16 또는 32비트 길이가 될 것이다. 타일(62)은 메모리내의 고정된 수의 연속적 워드(60)이다. 상기 타일이 메모리 공간 어드레싱의 기본 단위이고 그러므로 저장된 데이터 블록 크기에서의 최소 증분이다. 타일(62)은 전형적으로 8 또는 16 워드(60)가 될 수 있다. 그룹(64)은 메모리내의 한 세트의 연속적 타일(62)이고 1개 타일(62)의 최소 크기를 갖지만 전형적으로 1, 2, 4, 또는 8 타일(62)을 포함할 수 있는 어떤 크기가 될 것이다. 그룹(64)은 그룹 헤더(66)에 할당된 미리 결정된 수의 메모리 위치를 포함한다,
도 6은 전형적 그룹 헤더(66)의 포맷을 도시한다. 상기 그룹 헤더(66)는 3개 필드: 상태 필드(70), 타일 필드(72) 및 링크 포인터(74)를 포함한다. 상기 상태 필드(70)는 상기 그룹(64)이 영역(14)내의 데이터 블록의 일부 또는 자유 공간의 일부인지 그리고 상기 그룹(64a)이 다음 그룹(64b)에 링크되는지를 정의한다. 상기 타일 필드(72)는 상기 그룹(64)내의 타일(62)의 수에 대한 정보를 포함한다. 상기 링크 포인터(74)는 상기 그룹(64a)이 링크되는 다른 그룹(64b)의 개시 어드레스를 정의한다. 상기 어드레스는 상기 고속 메모리(12)의 개시 어드레스에 비례하여 1개 타일(62)의 증분으로 정의된다.
도 7은 상기 그룹 헤더(66)내의 링크 포인터 필드(74)가 어떻게 그룹들(64a, b, c)이 더 큰 데이터 블록을 형성하도록 링크될 수 있게 하는지를 도시한다. 상기 데이터 블록은 어떤 물리적 순서로 링크될 수 있는 그룹(64)을 포함할 수 있다. 상기 블록의 상기 제 1 그룹(64a)의 그룹 헤더에 대한 물리적 어드레스 포인터(80)는 상기 영역(14)내의 상기 블록의 논리적 어드레스에 의해 정의되는 상기 고속 메모리(12)내의 위치에 배치될 수 있다. 그러므로 m+b 논리 블록을 포함하는 도 3의 영역(14)을 위해, 상기 고속 메모리(12)의 제 1 m+b 위치는 상기 데이터 블록의 물리적 개시 어드레스를 포함한다.
상기 도 7의 데이터 블록은 그룹 헤더(66)내의 정보에 의해 체인으로 링크되는 7개 타일(62)의 길이이고 8개 타일(64a), 2개 타일(64b), 및 1개 타일(64c)로 이루어진 그룹을 포함한다. 상기 구성 그룹(64a, b, c)은 상기 고속 메모리(12)의 물리적 메모리 공간내의 어디에나 배치될 수 있다.
어떤 길이의 데이터 블록은 이런 구성으로 수용될 수 있지만, 이용가능한 크기의 8, 4, 2 및 1 타일로 이루어진 그룹은 15 타일까지의 블록 크기에 대한 최대 효율을 준다. 데이터 블록이 고속 메모리(12)에 기록되어야 할 때, 상기 데이터 블록은 이용가능한 그룹 크기와 동일한 크기가 되는 하나 이상의 단편으로 분할된다. 상기 적당한 그룹 헤더 정보(66)와 함께 상기 데이터는 현재 자유 공간으로서 존재하는 그룹의 위치에 기록되고 다른 데이터 블록에 할당되지 않는다. 링크된 체인내의 최종 그룹 헤더(64c)는 데이터 보안성 및 어떤 포인터 또는 헤더(66)가 변조되는 경우에 링킹 정보를 회복하는 능력을 제공하도록 상기 링크 포인터 필드(74)내의 블록 논리 어드레스를 포함한다.
링크된 그룹(64)의 유사한 체인이 도 8에 도시된 바와 같이 고속 메모리(12)에서의 자유 공간을 관리하는데 사용될 수 있다. 개별 자유 공간 체인(90)은 각각의 그룹 크기로 유지될 수 있다. 개시 포인터(92a)는 상기 제 1 그룹(64e)의 헤더에 대한 어드레스를 정의하는데 사용되고 최종 포인터(94a)는 각 체인에서의 최종 그룹(64f)의 어드레스를 정의하는데 사용된다. 이런 포인터들(92, 94)은 그룹(64)이 자유 공간 체인에 추가되거나 자유 공간 체인으로부터 제거될 때 변형된다. 상기 자유 공간 체인(90)을 정의하는 포인터(92, 94)는 블록 물리적 어드레스 포인터(80)에서와 같이 동일한 방법으로 고속 메모리(12)내의 예비 위치에 저장될 수 있다.
데이터 저장 시스템이 우선 초기화된 후, 각각의 영역(14)이 1, 2, 4 및 8 타일(62)의 그룹 크기로 포맷되어야 하고 자유 공간 체인(90)이 이들의 연관된 포인터(92, 94)와 함께 형성되어야 한다. 이런 포맷팅은 모든 영역(14)과 고속 메모리(12)가 동일한 크기가 될 수 있기 때문에 자기 디스크(10)내의 모든 영역(14)에 대해 동일할 수 있다. 상기 포맷팅은 데이터가 자기 디스크(10)의 미리 비워진 영역(14)에서의 최종 용도를 위해 고속 메모리(12)에 기록되기 이전에 자유 공간 체인 포인터(92, 94)의 표준 패턴과 링크된 그룹 헤더(66)를 고속 메모리(12)에 로딩함으로써 쉽게 달성될 수 있다. 그러므로, 상기 자기 디스크(10)는 자기 디스크에서 일반적으로 수행되는 것과는 달리 본 발명과 사용하기 위한 초기화 후 어떤 특정 포맷팅을 요구하지 않는다.
데이터 블록 판독 동작은 다음과 같이 수행된다. 상기 데이터 블록이 이미 고속 메모리(12)에 상주한다면, 상기 판독 동작이 즉시 시작된다. 그렇지 않으면, 블록이 배치되는 자기 디스크(10)의 전체 영역(14)에 대한 데이터는 고속 메모리(12)로 로딩되어야 한다. 자기 디스크를 위한 캐싱 알고리즘은 데이터의 최상의 즉각 이용 가능성을 보장하도록 데이터가 입/출력 채널(18)에 요구되기에 앞서서 고속 캐시 메모리에 데이터를 전송하기 위해 잘 알려져 있다.
상기 영역(14)내의 데이터 블록의 논리적 어드레스는 글로벌 저장 관리기(40)에 의해 메모리 저장 관리기(24)에 공급된다. 물리적 어드레스 포인터(80)가 블록 논리적 어드레스에 의해 정의된 고속 메모리(12)내의 위치로부터 판독되고 그룹(64)이 이런 물리적 어드레스 포인터(800에 의해 정의된 위치로부터 판독된다. 상기 그룹 헤더(66)는 어떤 순차적 그룹에 대한 물리적 어드레스를 제공하기 위해 저장된다. 링크된 그룹은 최종 블록 그룹이 도달될 때까지 하드웨어 제어하에서 상기 방법으로 판독된다.
데이터 블록 기록 동작은 다음과 같이 수행된다. 블록이 기록될 영역에 대한 데이터는 상기 동작이 데이터 판독 동작과 같은 동일한 방식으로 시작되기 전에 고속 메모리(12)에 상주되어야 한다. 상기 메모리 저장 관리기(24)내의 제어 프로세서는 데이터 블록을 분할하고 적당한 자유 공간 체인(90)으로부터 그룹(64)을 할당한다. 다음에 상기 제어 프로세서는 상기 메모리 저장 관리기(24)에 구성 그룹(64)에 대한 모든 필요한 포인터, 헤더 및 어드레스 정보를 로딩하며, 어드레스 포인터와 데이터 그룹은 상기 메모리 저장 관리기(24)의 제어하에서 고속 메모리(12)내의 미리 정의된 위치에 기록된다. 상기 논리적 블록과 관련한 안 쓰이는 그룹은 적당한 공간 체인(90)의 끝에 첨부되고 상기 자유 공간 포인터(92, 94)는 갱신된다. 데이터는 고속 메모리(12)내로 또는 미리 결정된 시간 이후에 다른 영역(14)으로부터 데이터를 로딩해야 할 때 상기 고속 메모리(12)로부터 자기 디스크(10)상의 영역(14)에만 로딩될 필요가 있다.
상기 메모리 저장 관리기(24)는 고속 메모리(12)에서의 데이터 구성과 저장을 제어하고, 데이터 압축기(26)를 통과하는 데이터 흐름을 제어하고, 고속 메모리(12)로의 그리고 고속 메모리(12)로부터의 데이터 전송을 제어하며, 영역(14)내의 데이터에 대한 논리 대 물리 어드레스 변환을 수행한다.
도 9는 메모리 저장 관리기와 데이터 압축기를 포함하는 상기 영역 제어 기능의 블록도를 도시한다. 영역 제어 프로세서(100)는 데이터 전송 스케줄링과 어드레스 제어 기능을 수행하고 전송 버스(102)를 통해 다른 제어 소자와 통신한다. 단일의 영역 제어 프로세서(100)가 다수의 메모리 저장 관리기(24)와 통신하고 이들을 제어할 수 있다.
데이터 블록이 고속 메모리(12)에 기록될 때, 상기 글로벌 저장 관리기(40)는 상기 블록이 입/출력 채널(18)에 전송될 준비가 되었다는 것을 상기 영역 제어 프로세서(100)에 알리고 상기 영역(14)내의 블록의 논리적 어드레스에 대한 정보를 제공한다. 또한 상기 동작은 다수의 순차적 데이터 블록에서 수행될 수 있다. 상기 영역 제어 프로세서(100)는 전송 버스(102)를 통해 입/출력 인터페이스(104)와 데이터 압축기(26)에 제어 정보를 로딩한다. 상기 데이터 압축기(26)는 주문형 반도체 집적 회로(ASIC)가 될 수 있다. 다음에 상기 데이터 블록은 입/출력 인터페이스(104)와 인터페이스 데이터 버스(106)를 통해 블록 버퍼(30)에 전송된다. 이런 블록 버퍼(30)는 스태틱 랜덤 액세스 메모리(SRAM)가 될 수 있다.
상기 블록 버퍼(30)에 상주하는 데이터 블록은 압축되지 않고 고정된 크기를 갖는다. 상기 블록 버퍼(30)는 다수의 데이터 블록을 수용하기에 충분한 용량을 가진다. 다음에 상기 데이터 블록은 상기 데이터 압축기(26)를 통해 선입선출 메모리(108)로 전송된다. 상기 블록 버퍼(30)내로 그리고 상기 블록 버퍼(30)로부터의 모든 데이터 전송은 압축기 버스(110)를 통해 데이터 압축기(26)에 의해 제어된다. 상기 블록 버퍼(30)내로 그리고 상기 블록 버퍼(30)로부터의 데이터 전송은 시분할 멀티플렉스 구성이 상기 인터페이스 버스(106)에서 사용된다면 동시에 발생될 수 있다. 상기 데이터 압축기(26)는 데이터 블록의 크기를 감소시키는 어떤 데이터 압축 구성을 수행할 수 있다.
상기 영역 제어 프로세서(100)는 선입선출 메모리(FIFO)(108)에 상주하는 상기 데이터 블록 크기를 데이터 압축기(26)에 의해 통보받는다. 다음에 상기 영역 제어 프로세서(100)는 상기 블록을 단편들로 분할하고 고속 메모리(12)내의 자유 공간 체인(90)에서 이용가능하게 되는 그룹(64)에 단편들을 할당한다. 그룹 헤더 어드레스와 데이터 정보, 및 제어 코드는 상기 영역 제어 프로세서(100)에 의해 메모리 저장 관리기(24)내로 로딩된다. 데이터는 FIFO 버스(112)와 드라이버(114)를 통해 상기 메모리 저장 관리기(24)의 제어하에 FIFO(108)로부터 고속 메모리(12)로 전송된다. 상기 메모리 저장 관리기 블록(24)은 주문형 반도체 집적 회로(ASIC)가 될 수 있다. 상기 데이터의 고속 메모리(12)에 대한 기록동안, 상기 메모리 저장 관리기(24)는 FIFO 버스(112)를 통해 그룹 헤더(66)에 대해 데이터를 삽입하고 관리기 버스(116)를 통해 고속 메모리(12)의 모든 어드레스에 대한 어드레스를 제어한다.
고속 메모리(12)로부터의 데이터 블록 판독 및 입/출력 채널(18)로의 데이터 블록 전송 동작은 역방향으로의 유사한 패턴을 허용한다.
고속 메모리(12)와 대용량 저장 장치로서 기능하는 자기 디스크(10)상의 영역(14) 사이의 데이터 전송은 메모리 드라이버(118), FIFO 버스(112), 디스크 인터페이스 제어부(120) 및 디스크 인터페이스 포트(122)를 통해 수행된다. 상기 고속 메모리(12)의 전체 데이터 내용은 단일 동작으로 전송되고 고속 메모리(12) 어드레스의 순환은 메모리 저장 관리기(24)에 의해 수행된다. 디스크 인터페이스 제어부(120)는 자기 디스크(10)에 액세싱하기 위해 필요한 모든 제어 기능을 수행하고 자기 디스크(10)와 호환할 수 있게 데이터 전송을 동조화한다. 자기 디스크 이외의 저장기가 사용되는 다른 실시예에서, 상기 디스크 인터페이스 제어부(120)는 사용된 특별한 저장기에 전용되는 제어기로 교체될 것이다. 상기 전송을 위한 제어 파라미터가 상기 영역 제어 프로세서(100)에 의해 상기 메모리 저장 관리기(24)와 상기 디스크 인터페이스(120)에 로딩된다.
2개의 고속 메모리(12) 사이의 데이터 전송은 메모리 드라이버(118), FIFO 버스(112), 드라이버(114)와 영역 인터페이스 포트(124), 및 제 2 고소 메모리(12)를 위한 영역 제어 구조내의 대응하는 소자들을 통하여 달성된다. 이런 경로를 통한 데이터 전송은 보통 단일의 언페이징 데이터 블록(52) 또는 작은 언페이징 데이터 블록 세트(52)의 재배치를 위한 것일 수 있다.
도 10은 메모리 저장 관리기(24)의 구조를 도시한다. 저장 관리기 포트(126)는 FIFO 버스 인터페이스(128)를 통해 상기 메모리 저장 관리기(24)와 FIFO 버스(112) 사이의 통신을 제공한다. 전송 포트(130)는 전송 버스 인터페이스(132)를 통해 상기 메모리 저장 관리기(24)와 전송 버스(102) 사이의 통신을 제공한다.
상기 메모리 저장 관리기(24)내에서, 내부 데이터 버스(134)는 데이터 버스로서 기능하고 내부 프로세서 버스(136)는 프로세서 버스로서 기능한다. 관리 버스(116)는 어드레스를 공급하고 고속 메모리(12)에 대한 신호를 제어한다. 상기 헤더 기록 레지스터(138)는 하나 이상의 그룹 헤더(66)가 상기 내부 데이터 버스(134)를 통해 그룹 헤더(66)로서 기록될 수 있도록 영역 제어 프로세서(100)에 의해 로딩되는 레지스터 뱅크를 포함한다. 상기 헤더 판독 레지스터(140)는 내부 데이터 버스(134)로부터 추출된 하나 이상의 그룹 헤더(66)가 상기 영역 제어 프로세서(100)에 의한 순차적 판독을 위해 저장되는 레지스터 뱅크를 포함한다. 상기 어드레스 레지스터(142)는 하나 이상의 어드레스가 내부 프로세서 버스(136) 또는 내부 데이터 버스(134)로부터 로딩되는 레지스터 뱅크를 포함한다. 멀티플렉서(144)는 어드레스 레지스터 로딩을 위한 소스를 제어한다. 상기 어드레스 레지스터(142)로부터의 어드레스는 메모리 액세스를 위한 개시점을 정의하기 위해 어드레스 카운터(146)에 저장된다. 상기 메모리 액세스가 순차적 워드 어드레스의 스트링을 포함한다면, 그룹 판독 또는 기록 동작과 같이, 상기 어드레스 카운터(146)는 어드레스 시퀀스를 발생시킨다. 제어 블록(148)은 상기 영역 제어 프로세서(100)의 방향 아래의 모든 동작을 위한 제어 신호를 발생시킨다. ECC 논리 블록은 각각의 그룹(64) 또는 데이터 뱅크에 첨부될 수 있는 에러 체크 코드(ECC)를 발생하고 체크한다.
이상에서는 본 발명의 양호한 일 실시예에 따라 본 발명이 설명되었지만, 첨부된 청구 범위에 의해 한정되는 바와 같은 본 발명의 사상을 일탈하지 않는 범위 내에서 다양한 변형이 가능함은 본 발명이 속하는 기술 분야의 당업자에게는 명백하다.

Claims (12)

  1. 저장기(14), 버퍼 메모리(12), 사용자 인터페이스(18), 및 메모리 제어기(40)를 포함하며, 상기 메모리는 상기 사용자 인터페이스와 상기 저장기 사이에 전송되는 모든 데이터를 버퍼링하는 데이터 저장 장치에 있어서,
    상기 메모리 제어기(40)는 상기 저장기(14)와 상기 메모리(12) 사이의 전송을 위해 직접 데이터를 복사하는데 사용되지만, 상기 데이터가 상기 메모리(12)와 상기 사용자 인터페이스(18) 사이에 전송될 때 상기 데이터를 재구성하는 것을 특징으로 하는 데이터 저장 장치.
  2. 제 1항에 있어서, 상기 저장기는 단일의 동작으로 편리하게 액세싱될 수 있는 동일한 크기의 영역(14a,14b)으로 분할되며, 상기 버퍼 메모리(12)는 상기 저장기의 영역과 동일한 용량을 가지는 것을 특징으로 하는 데이터 저장 장치.
  3. 제 1항 또는 제 2항에 있어서, 상기 데이터 제어기(40)는 상기 메모리의 최대 용량 단위로 상기 저장기(14)로의 그리고 상기 저장기(14)로부터의 데이터를 전송하는데 사용되는 것을 특징으로 하는 데이터 저장 장치.
  4. 제 1항, 제 2항 또는 제 3항에 있어서, 상기 데이터 저장 장치는 다수의 저장기(10)를 포함하며, 상기 각각의 저장기는 상기 메모리(12a, 12b)로의 그리고 상기 메모리(12a, 12b)로부터의 데이터 전송을 수행하는데 사용되는 것을 특징으로 하는 데이터 저장 장치.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서, 상기 데이터 저장 장치는 다수의 메모리를 포함하며, 상기 각각의 메모리는 상기 저장기(10)의 개별 영역으로부터 데이터가 로딩될 수 있도록 사용되는 것을 특징으로 하는 데이터 저장 장치.
  6. 제 1항 내지 제 5항 중 어느 한 항에 있어서, 저장기의 영역은 미리 결정된 수의 논리적으로 연속적이고 상기 영역에 영구적으로 상주하는 데이터 블록을 포함하며, 불연속 데이터는 상기 영역의 이용가능한 물리적 저장 공간에 알맞게 수용될 수 있는 것을 특징으로 하는 데이터 저장 장치.
  7. 제 1항 내지 제 6항 중 어느 한 항에 있어서, 상기 불연속 데이터 블록은 제 1 영역에 영구적으로 상주하는 상기 하나 이상의 논리적으로 연속적인 데이터 블록의 크기가 증가하는 경우 상기 제 1 영역으로부터 제 2 영역에 재배치되는 것을 특징으로 하는 데이터 저장 장치.
  8. 제 7항에 있어서, 상기 불연속 데이터 블록은 제 2 영역에 영구적으로 상주하는 상기 하나 이상의 논리적으로 연속적인 데이터 블록의 물리적 크기 변화로부터 얻어지는 물리적 저장 공간을 채우기 위해 제 1 영역으로부터 상기 제 2 영역으로 재배치 가능한 것을 특징으로 하는 데이터 저장 장치.
  9. 제 6항 내지 제 8항 중 어느 한 항에 있어서, 상기 영역들 사이의 불연속 데이터 블록의 재배치는 하나의 메모리로부터 다른 메모리로 상기 블록을 전송함으로써 달성되는 것을 특징으로 하는 데이터 저장 장치.
  10. 제 5항 내지 제 9항 중 어느 한 항에 있어서, 메모리는 상기 영역들 사이에 재배치될 수 있는 모든 데이터 블록의 소스 또는 용도로서 지정되는 것을 특징으로 하는 데이터 저장 장치.
  11. 제 6항 내지 제 10항 중 어느 한 항에 있어서, 어떤 하나의 영역에 영구적으로 상주하는 상기 미리 결정된 수의 논리적으로 연속적인 데이터 블록의 논리적 페이지 어드레스는 상기 저장기내의 상기 영역의 순차적 어드레스와 직접적으로 대응하는 것을 특징으로 하는 데이터 저장 장치.
  12. 제 6항 내지 제 11항 중 어느 한 항에 있어서, 어떤 영역에 상주하지 않는 어떤 하나의 데이터 블록의 논리적 어드레스는 룩업 테이블에 의해 어떤 영역내의 논리적 어드레스로 변환되는 것을 특징으로 하는 데이터 저장 장치.
KR1019980707884A 1996-04-02 1997-04-02 데이터 저장 장치 KR20000005206A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9606927.3 1996-04-02
GBGB9606927.3A GB9606927D0 (en) 1996-04-02 1996-04-02 Data storage devices

Publications (1)

Publication Number Publication Date
KR20000005206A true KR20000005206A (ko) 2000-01-25

Family

ID=10791469

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980707884A KR20000005206A (ko) 1996-04-02 1997-04-02 데이터 저장 장치

Country Status (7)

Country Link
US (1) US6467021B1 (ko)
EP (1) EP0891580B1 (ko)
JP (2) JP3852954B2 (ko)
KR (1) KR20000005206A (ko)
DE (1) DE69703538D1 (ko)
GB (1) GB9606927D0 (ko)
WO (1) WO1997037297A1 (ko)

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US8171203B2 (en) 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
JP3629216B2 (ja) 2001-03-08 2005-03-16 株式会社東芝 デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法
CN1270273C (zh) * 2001-04-19 2006-08-16 艾利森电话股份有限公司 自适应存储器分配
EP1251460A1 (en) * 2001-04-19 2002-10-23 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Adaptive method for allocation of random access memory
GB0123421D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Power management system
GB0123415D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Method of writing data to non-volatile memory
GB0123416D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Non-volatile memory control
GB0123410D0 (en) 2001-09-28 2001-11-21 Memquest Ltd Memory system for data storage and retrieval
US7231643B1 (en) 2002-02-22 2007-06-12 Lexar Media, Inc. Image rescue system including direct communication between an application program and a device driver
US20030172229A1 (en) * 2002-03-08 2003-09-11 Takasugi Robin Alexis Systems and methods for detecting and compensating for runt block data transfers
US7512616B2 (en) * 2003-11-20 2009-03-31 International Business Machines Corporation Apparatus, system, and method for communicating a binary code image
US7647358B2 (en) * 2004-03-22 2010-01-12 Microsoft Corporation Computing device with relatively limited storage space and operating/file system thereof
US7499929B2 (en) * 2004-03-22 2009-03-03 Microsoft Corporation Computing device with relatively limited storage space and operating/file system thereof
US8069192B2 (en) * 2004-03-22 2011-11-29 Microsoft Corporation Computing device with relatively limited storage space and operating / file system thereof
DE602005002774D1 (de) * 2004-04-08 2007-11-22 St Microelectronics Pvt Ltd Ein verbesserter on-chip Speicher zur Speicherung von variablen Datenbits
US7725628B1 (en) 2004-04-20 2010-05-25 Lexar Media, Inc. Direct secondary device interface by a host
US7370166B1 (en) 2004-04-30 2008-05-06 Lexar Media, Inc. Secure portable storage device
US7464306B1 (en) 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
US7594063B1 (en) 2004-08-27 2009-09-22 Lexar Media, Inc. Storage capacity status
US20060184719A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US20060184718A1 (en) 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US7620772B1 (en) 2005-05-05 2009-11-17 Seagate Technology, Llc Methods and structure for dynamic data density in a dynamically mapped mass storage device
US7685360B1 (en) 2005-05-05 2010-03-23 Seagate Technology Llc Methods and structure for dynamic appended metadata in a dynamically mapped mass storage device
US7653847B1 (en) 2005-05-05 2010-01-26 Seagate Technology Llc Methods and structure for field flawscan in a dynamically mapped mass storage device
US7617358B1 (en) 2005-05-05 2009-11-10 Seagate Technology, Llc Methods and structure for writing lead-in sequences for head stability in a dynamically mapped mass storage device
US7603530B1 (en) 2005-05-05 2009-10-13 Seagate Technology Llc Methods and structure for dynamic multiple indirections in a dynamically mapped mass storage device
US7916421B1 (en) 2005-05-05 2011-03-29 Seagate Technology Llc Methods and structure for recovery of write fault errors in a dynamically mapped mass storage device
US7752491B1 (en) * 2005-05-05 2010-07-06 Seagate Technology Llc Methods and structure for on-the-fly head depopulation in a dynamically mapped mass storage device
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7873683B2 (en) * 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US7627733B2 (en) 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7949845B2 (en) 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7984084B2 (en) * 2005-08-03 2011-07-19 SanDisk Technologies, Inc. Non-volatile memory with scheduled reclaim operations
US7669003B2 (en) 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7529905B2 (en) * 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US7908276B2 (en) * 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US7599972B2 (en) * 2006-08-25 2009-10-06 Qnx Software Systems Gmbh & Co. Kg File system having variable logical storage block size
US8566503B2 (en) * 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
IL187041A0 (en) * 2007-10-30 2008-02-09 Sandisk Il Ltd Optimized hierarchical integrity protection for stored data
JP2010015197A (ja) * 2008-06-30 2010-01-21 Toshiba Corp ストレージ制御装置、データ復元装置およびストレージシステム
US8650162B1 (en) * 2009-03-31 2014-02-11 Symantec Corporation Method and apparatus for integrating data duplication with block level incremental data backup
US9047921B2 (en) * 2009-11-19 2015-06-02 HGST Netherlands B.V. Adjusting recording density in a circumferential direction
KR20110113420A (ko) * 2010-04-09 2011-10-17 삼성전자주식회사 저장 매체에 데이터를 저장하는 방법, 그를 이용한 데이터 저장 장치, 및 그것을 포함한 시스템
US8656094B2 (en) * 2010-05-06 2014-02-18 International Business Machines Corporation Locating host data records on a physical stacked volume
US8533427B2 (en) * 2010-05-06 2013-09-10 International Business Machines Corporation Mapping locations of logical volume records on a physical stacked volume
US9336149B2 (en) 2010-05-06 2016-05-10 International Business Machines Corporation Partial volume access in a physical stacked volume
US9442806B1 (en) 2010-11-30 2016-09-13 Veritas Technologies Llc Block-level deduplication
JPWO2012124117A1 (ja) * 2011-03-17 2014-07-17 富士通株式会社 タイミングエラー除去方法、設計支援装置、及びプログラム
CN104170364B (zh) * 2012-01-10 2017-03-15 京瓷办公信息系统株式会社 图像形成装置
JP5818740B2 (ja) 2012-04-17 2015-11-18 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation テキストデータストリームに含まれるアイテムの中から出現頻度の高いアイテムを特定する方法、装置及びコンピュータプログラム
CN105264497B (zh) 2014-04-22 2020-04-21 华为技术有限公司 一种文件管理方法及文件系统
US9710199B2 (en) 2014-11-07 2017-07-18 International Business Machines Corporation Non-volatile memory data storage with low read amplification
US10162700B2 (en) 2014-12-23 2018-12-25 International Business Machines Corporation Workload-adaptive data packing algorithm
US9712190B2 (en) 2015-09-24 2017-07-18 International Business Machines Corporation Data packing for compression-enabled storage systems
US9870285B2 (en) 2015-11-18 2018-01-16 International Business Machines Corporation Selectively de-straddling data pages in non-volatile memory
US10241811B2 (en) 2016-11-23 2019-03-26 Significs And Elements, Llc Systems and methods for automatic data management for an asynchronous task-based runtime
CN113254392B (zh) * 2021-07-12 2022-06-14 深圳比特微电子科技有限公司 用于片上系统的数据存储方法和基于片上系统的设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4467421A (en) * 1979-10-18 1984-08-21 Storage Technology Corporation Virtual storage system and method
US5247646A (en) 1986-05-15 1993-09-21 Aquidneck Systems International, Inc. Compressed data optical disk storage system
US5193184A (en) * 1990-06-18 1993-03-09 Storage Technology Corporation Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US5247638A (en) * 1990-06-18 1993-09-21 Storage Technology Corporation Apparatus for compressing data in a dynamically mapped virtual data storage subsystem
US5574952A (en) * 1994-05-11 1996-11-12 International Business Machines Corporation Data storage system and method for operating a disk controller including allocating disk space for compressed data
JP3426385B2 (ja) * 1995-03-09 2003-07-14 富士通株式会社 ディスク制御装置
US6000009A (en) * 1997-05-06 1999-12-07 International Business Machines Corporation Method and apparatus for allocation of disk memory space for compressed data records

Also Published As

Publication number Publication date
EP0891580B1 (en) 2000-11-15
GB9606927D0 (en) 1996-06-05
JP2000512041A (ja) 2000-09-12
EP0891580A1 (en) 1999-01-20
WO1997037297A1 (en) 1997-10-09
JP2004240985A (ja) 2004-08-26
DE69703538D1 (de) 2000-12-21
JP3852954B2 (ja) 2006-12-06
US6467021B1 (en) 2002-10-15

Similar Documents

Publication Publication Date Title
JP3852954B2 (ja) データ記憶装置
US5454103A (en) Method and apparatus for file storage allocation for secondary storage using large and small file blocks
US7424482B2 (en) Method and system for compression of data for block mode access storage
US8285898B2 (en) Method and system for compression of files for storage and operation on compressed files
US5247638A (en) Apparatus for compressing data in a dynamically mapped virtual data storage subsystem
US8135925B2 (en) Methods of operating a memory system
US5394532A (en) Disk drive array memory system having instant format capability
JP2804115B2 (ja) ディスクファイルシステム
US20030115437A1 (en) Disk array apparatus and data update method therein
JPH11194899A (ja) ディスク記憶システム及び同システムに適用するデータ更新方法
WO1991020025A1 (en) Deleted data file space release system for a dynamically mapped virtual data storage subsystem
US6636941B1 (en) Enhanced stable disk storage
US20060190643A1 (en) Method and system for compression of data for block mode access storage
US5859960A (en) Semiconductor disk apparatus having a semiconductor memory for a recording medium
US5420983A (en) Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data
CA2218296C (en) Method and apparatus for storing and retrieving error check information
JP2006120162A (ja) 異なる種類のデータ記憶媒体にデータを記憶するためのデータストレージシステムおよび方法、磁気テープに記憶されたデータの読取または変更を最適化する方法、ならびにコンピュータ読取可能な記憶媒体
US5671390A (en) Log structured array storage subsystem using LSA directory and LSA sub-directory stored in different storage media
US5862313A (en) Raid system using I/O buffer segment to temporary store striped and parity data and connecting all disk drives via a single time multiplexed network
US5860088A (en) Method for extraction of a variable length record from fixed length sectors on a disk drive
JPH07261938A (ja) 記憶制御方法及びそれを用いた圧縮機能付きディスクシステム
JP4934820B2 (ja) Raid装置及びraid装置のストライプ変換制御方法
WO2000013180A1 (en) Improved method for providing variable sector-format operation to a computer system
EP0341036A2 (en) A method of operating an information handling system
JPH01319820A (ja) 記憶媒体管理システム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid