KR20060017816A - 주 메모리와 기억 장치 사이에서 데이터를 전송하는 방법및 장치 - Google Patents

주 메모리와 기억 장치 사이에서 데이터를 전송하는 방법및 장치 Download PDF

Info

Publication number
KR20060017816A
KR20060017816A KR1020057022545A KR20057022545A KR20060017816A KR 20060017816 A KR20060017816 A KR 20060017816A KR 1020057022545 A KR1020057022545 A KR 1020057022545A KR 20057022545 A KR20057022545 A KR 20057022545A KR 20060017816 A KR20060017816 A KR 20060017816A
Authority
KR
South Korea
Prior art keywords
data
set list
sector
distributed set
data structure
Prior art date
Application number
KR1020057022545A
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 KR20060017816A publication Critical patent/KR20060017816A/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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • 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/38Information transfer, e.g. on bus

Abstract

본 발명은 기억 시스템의 주 메모리와 기억 장치 사이에서 데이터 전송을 표시하는 방법 및 장치에 관한 것이다. 본 발명은 데이터 전송들에 관련된 주 메모리 및 기억 장치 모두의 데이터 영역을 기술하도록 분산 집합 목록들을 사용한다. 또한, 방향 지시기는 디스크의 위치가 소스이고 주 메모리의 일부가 착신지인지 또는 반대로 지정하기 위해 사용된다. 바람직하게, 이전에 사용되지 않았던 여분 비트는 방향 지시기로서 사용된다. 이러한 방법으로, 판독, 기록 및/또는 수정 처리들을 다루는 효율적인 방법이 가능해 진다. 또한, 데이터에 대한 참조들 즉, 투플(tuple)들만이 기억 장치 및 대역폭 요건들을 상당히 감소시키는 SGL들 사이에서 복제되기 때문에, 어떤 실제적인 데이터도 CPU 처리 동안 이동되지 않는다. 본 발명은 또한, CPU의 지연이 훨씬 느린 디스크/기억장치 입/출력과 분리되도록 하는 분산 집합 목록들을 사용하여 섹터 정렬을 수행하는 효율적인 방법에 관한 것이다.
분산 집합 목록 요소, 섹터 경계, 투플, 섹터 정렬, 헤드 섹터

Description

주 메모리와 기억 장치 사이에서 데이터를 전송하는 방법 및 장치{Method and device for transferring data between a main memory and a storage device}
본 발명은 주 메모리와 기억 장치 사이에서 데이터를 전송하는 방법 및 그에 대응하는 장치에 관한 것이다.
기억 장치는 통상적으로, 데이터의 블록들을 판독하고 가능한 기록할 수 있는 임의의 기억 장치다. 그와 같은 기억 장치들은 일반적으로 블록 또는 섹터를 기반으로 하여, 블록, 섹터 등의 일부만이 필요할 때에도 여전히 블록 또는 섹터가 완전히 판독되어야 하고, 블록, 섹터 등의 일부만이 갱신/기록될 때에도 먼저 블록 또는 섹터가 완전히 판독된 후, 수정되어 최종적으로 완전히 기록되어야 한다.
대부분의 컴퓨터 기반 시스템들에서, 데이터 버퍼의 메모리는 인접하고(contiguous) 있기보다는 "분산(scattered)"될 수 있다. 즉, 버퍼의 다른 "프래그먼트들(fragments)"이 물리적으로 다른 메모리 위치들에 존재할 수 있다. 예컨대, 호스트 컴퓨터의 주 메모리로부터 2차 기억 장치로 데이터의 "분산"된 버퍼를 전송할 때, 이들이 더욱 인접하는 방식으로 2차 기억 장치로 전송될 수 있도록 버퍼의 다른 프래그먼트들을 "집합(gather)"해야할 필요가 있다. 이러한 목적으로 분산-집합 목록(Scatter-Gather List; SGL)으로 불리는 데이터 구조를 사용하는 것이 일반 적으로 알려져 있다. 분산-집합 목록의 각 요소는 다른 버퍼 프래그먼트를 지시(point)하거나 참조하고, 목록은 요구된 전송을 위해 프래그먼트들을 함께 효과적으로 "집합"한다. 직접 액세스 메모리(Direct Access Memory; DMA)와 같은 메모리 제어기는 그때, 분산-집합 목록의 각 연속적인 요소로 지정되는 전송을 수행한다.
종래의 파일/기억 시스템에서, 버퍼 캐시는 통상적으로 섹터 정렬 제한들 없이 파일/기억 시스템에 기억된 데이터에 액세스하는 것이 가능하다. 하지만, 종래의 파일/기억 시스템들은 통상적으로 분산된 데이터가 기억되도록 하지 않는다. 예외로는 UNIX와 같은 파일 시스템들의 'vwrite' 및 'vread' 명령들이다.
성능의 문제로 인해, 실시간 파일/기억 시스템(Real Time Flie/Storage system; RTFS)은 일반적으로 버퍼 캐시를 갖지 않고, 일부 섹터 비-정렬(unaligned) 기록들은 일반적으로 완전한 섹터들의 판독-수정-기록 과정으로서 구현된다. 섹터 정렬은 완전한 섹터들만을 판독하거나 기록하고 각 바이트를 개별적으로 또는 기억 장치로부터 판독하거나 기록할 수 없다. 언급된 것처럼, SGL들은 통상적으로 주 메모리 공간 예컨대, 디스크에 또는 디스크로부터의 데이터 전송과 관련하거나 주 메모리 위치들 예컨대, DMA 가능 장치를 통해 분산된 테이터 위치들을 기술하는데 사용된다.
RTFS에서, 부분적인 블록/섹터 기록들은 통상적으로 데이터의 존속성들에 대한 요건들 예컨대, 시간 제한 및/또는 전원 장애 동안 손실된 데이터의 양에 대한 제한의 결과로서 발생한다. 데이터 스트림들 특히, 매우 얇은 데이터 스트림들 예컨대, CPI(Characteristic Point Information) 또는 다른 종류의 메타 데이터에 관 련하여, 부분적 블록 갱신들에서 양호하게 발생된다. 부분적 기록들의 다른 소스는 첨부한 데이터로부터 존재하는 데이터 예컨대, 디스크 기록 장치에 기초한 개인용 비디오 레코더(Personal Video Recorder; PVR) 애플리케이션들의 기록들이 될 수 있다. 부분적 판독들은 예컨대, PVR 애플리케이션을 사용하는 트릭 플레이 시나리오에서는 일반적이다. 데이터 스트림은 통상적으로 데이터의 연속적인 흐름이다. 일단 시작되면, 미들웨어로부터의 어떤 제어도 필요치 않다. 데이터 전송은 부분적 판독들을 사용하는 구성요소들에 의해 규제될 것이다. 일반적으로, 스트림에서 소스와 싱크간 '러버 밴딩(rubber banding)'을 제공하는 버퍼 메카니즘이 존재한다. 버퍼의 처리는 스트리밍 데이터를 사용하는 구성요소들 사이의 주요한 인터페이스이다.
부분적 섹터 갱신을 행하는 이전에 공지된 방법은 전체 블록을 판독하기 위한 명령을 실행하고 전체 블록이 판독될 때까지 대기하는 것이다.
그 후, 판독된 데이터를 새로운 데이터로 수정하거나 새로운 데이터와 결합하고 최종적으로 갱신된 블록을 기록하기 위한 명령을 실행한다. 이러한 3단계들은 일반적으로 동일한 콘텍스트의 일부 즉, 스레드(thread), 프로세스, 태스크 등이고, 요구된 콘텍스트 전환으로 인한 비효율적인 CPU 사용을 초래하고, 비효율적인 기억 장치의 사용을 초래한다. 디스크 I/O는 CPU와 비해 느리기 때문에, CPU는 통상적으로 다음 단계를 처리하기 전 각 단계를 완료하기 위해 디스크에 대해 대기할 것이다. 대기하는 CPU는 이러한 대기 상태에서 다른 스레드, 프로세스, 태스크 등에 의해 방해될 수 있어 콘텍스트 전환을 야기한다. 또한, 단일 스레드, 처리, 테 스크 등만이 CPU에서 이용가능하면, 그때 더 느린 디스크 I/O에 대한 CPU의 대기는 초당 섹터 기록들의 회수를 매우 양호하게 제한할 수 있다. 장치에 의해 인지되는 동일한 블록의 판독 및 기록 명령들이 매우 적으면, 상기 장치의 처리율은 비효율적인 CPU 사용에 영향을 받고, 상기 판독 및 기록 명령들이 적지 않다면, 다른 디스크 요구들이 개입할 수 있어, 불필요한 기억 장치의 사용이 초래된다. 상기 판독 및 기록 명령들이 적지 않은 경우에, 부가의 탐색 오버헤드는 동일한 디스크 블록 위치로부터 또는 동일한 디스크 블록 위치에서 초래된다.
일부 경우들에서, 처리율은 또한 지연(latency)에 영향을 받아, 현저한 지연은 처리율에 상당한 영향을 미친다. 네트워크된 기억 장치들 예컨대, SBP-2 지원 IEEE 1394 또는 이더넷 기반 네트워크들에 더 현저한 지연이 존재한다.
본 발명의 목적은 상기에서 언급된 문제들을 해결하는 데이터 전송 방법(및 대응하는 장치)을 제공하는 것이다. 다른 목적은 간단하고 효율적으로 상기 방법 및 장치를 제공하는 것이다. 다른 목적은 분산된 데이터가 기억 장치의 디스크로부터/디스크에서 판독/기록되도록 하는 것이다. 본 발명의 또 다른 목적은 종래의 ATA(Advanced Technology Attachment)/IDE(Integrated Drive Electronics) 판독 및/또는 기록 명령들에 대한 대안의 인터페이스를 제공하는 것이다.
상기의 목적은 기억 시스템의 주 메모리와 기억 장치 사이에서 데이터 전송을 표시하는 방법(및 대응하는 장치)에 의해 달성되고, 상기 기억 시스템은, 전송될 상기 데이터의 소스와 착신지 중 하나인 디스크 위치를 참조하는 0개 이상의 분산 집합 목록 요소들(Scatter Gather List elements)을 포함하도록 배열된 제 1 분산 집합 목록 데이터 구조, 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 주 메모리의 일부를 참조하는 0개 이상의 분산 집합 목록 요소들을 포함하도록 배열된 제 2 분산 집합 목록 데이터 구조, 및 상기 제 1 분산 집합 목록 데이터 구조의 각 분산 집합 목록 요소 또는 상기 제 2 분산 집합 목록 데이터 구조의 각 분산 집합 목록 요소에 대한 방향 지시기로서, 상기 방향 지시기는 상기 디스크 위치가 소스이고 상기 주 메모리의 일부가 착신지인지를 지정하거나 상기 디스크 위치가 착신지이고 상기 주 메모리의 일부가 소스인지를 지정하는, 상기 방향 지시기를 포함하고, 상기 표시 방법은,
- 상기 제 1 분산 집합 목록 데이터 구조 및 제 2 분산 집합 목록 데이터 구조를 발생시키는 단계를 포함한다.
이러한 방법으로, 판독/기록 동작들의 단순하고 효율적인 방법이 제공되고, 특히 실시간 기억 시스템들에서 유효하다. 또한, 데이터에 대한 참조들 즉, 투플(tuple)들만이 기억 장치 및 대역폭 요건들을 상당히 감소시키는 SGL들 사이에서 복제되기 때문에, 어떤 실제적인 데이터도 CPU 처리 동안 이동되지 않는다.
본 발명에 따른 방법의 이로운 실시예들은 종속항들에서 규정된다.
본 발명은 또한 본 발명에 따른 방법에 대응하는 장치에 관한 것이다.
특히, 본 발명은 기억 시스템의 주 메모리와 기억 장치 사이에서 데이터 전송을 표시하는 장치에 관한 것으로, 상기 기억 시스템은, 전송될 상기 데이터의 소스와 착신지 중 하나인 디스크 위치를 참조하는 0개 이상의 분산 집합 목록 요소들을 포함하도록 배열된 제 1 분산 집합 목록 데이터 구조, 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 주 메모리의 일부를 참조하는 0개 이상의 분산 집합 목록 요소들을 포함하도록 배열된 제 2 분산 집합 목록 데이터 구조, 및 상기 제 1 분산 집합 목록 데이터 구조의 각 분산 집합 목록 요소 또는 상기 제 2 분산 집합 목록 데이터 구조의 각 분산 집합 목록 요소에 대한 방향 지시기로서, 상기 방향 지시기는 상기 디스크 위치가 소스이고 상기 주 메모리의 일부가 착신지인지를 지정하거나 상기 디스크 위치가 착신지이고 상기 주 메모리의 일부가 소스인지를 지정하는, 상기 방향 지시기를 포함한다.
본 발명에 따른 장치의 이로운 실시예들은 종속항들에서 규정된다.
또한, 본 발명은 하나 이상의 처리 유닛들이 본 발명에 따른 상기 데이터 전송 표시 방법을 실행하도록 하는 명령들을 기억하는 컴퓨터 판독가능 매체에 관한 것이다.
하기에서, 제 1 분산 집합 목록 데이터 구조는 디스크 입력 SGL(201)/SGL1로 표시되고, 제 2 분산 집합 목록 데이터 구조는 디스크 입력 SGL(202)/SGL2로 표시되고, 제 3 분산 집합 목록 데이터 구조는 디스크 입력 SGL(230)/SGL7로 표시되고, 제 4 분산 집합 목록 데이터 구조는 디스크 입력 SGL(231)/SGL8로 표시되고, 제 5 분산 집합 목록 데이터 구조는 디스크 입력 SGL(208)/SGL5로 표시되고, 제 6 분산 집합 목록 데이터 구조는 디스크 입력 SGL(209)/SGL6으로 표시되고, 제 7 분산 집합 목록 데이터 구조는 디스크 입력 SGL(232)/SGL4로 표시되고, 제 8 분산 집합 목록 데이터 구조는 디스크 입력 SGL(233)/SGL3으로 표시된다.
도 1은 SGL(Scatter-Gather List)를 개략적으로 도시한 도면.
도 2는 본 발명에 따른 전송의 일부분으로서 사용된 SGL들을 도시한 도면.
도 3a 및 도 3b는 부분적인 판독/기록에 관련하여 본 발명에 따른 전송의 일부로서 사용된 SGL들을 도시한 도면.
도 3a는 본 발명에 따른 섹터 정렬이 수행되기 전의 SGL들을 도시한 도면.
도 3b는 본 발명에 따른 섹터 정렬이 실행된 후의 SGL들을 도시한 도면.
도 4는 본 발명의 실시예에 따른 인터페이스의 층들을 개략적으로 도시한 도면.
도 5는 본 발명의 일 실시예에 따른 장치의 일 예를 개략적으로 도시한 도면.
도 1은 SGL(Scatter-Gather List)를 개략적으로 도시한다. SGL(101)은 화살표(102)에 의해 지시된 것처럼 데이터의 논리적 시퀀스를 기술하는데 사용된다. 데이터의 시퀀스는 주 메모리(103) 또는 본 발명에 따른 기억 장치(103)의 디스크에 걸쳐 분산될 수 있다. SGL(101)에 의해 기술된 데이터는 다른 또는 동일한 크기의 데이터 영역들에 위치될 수 있다. 메모리/디스크 어드레스는 화살표(104)에 의해 지시된다.
상기 도면의 특정 SGL 인스턴스 생성(101)은 'A', 'B', 'C', 'D' 및 'E'으로 지정된 고정된 수의 분산-집합 유닛들(105, 105')을 갖고, 특정 순서로 메모리/디 스크 위치들(103) Mem3, Mem2, Mem4 및 Mem1에 기억된 것처럼 데이터의 논리적 시퀀스를 기술한다. SGL 인스턴스 생성(101)은 어떤 부가의 인접한 데이터 영역이 추가될 수 있는 것처럼 즉, SG-유닛 'E'(105')으로 완전히 채워지지 않는다. 논리적 데이터('A', 'B', 'C', 'D')의 순서(102)는 메모리/디스크-어드레스 순서(104)와 동일할 필요가 없다. 도시된 유닛들 'A' 내지 'E'은 SGL(101)의 내부임을 또한 주의하라.
SGL은 SG-유닛들(105; 105')을 포함하는 FIFO(First In First Out; 선입 선출) 큐(queue)로서 구현된 본 발명에 따르고, 각 유닛은 메모리의 인접하는 부분이고, (예컨대, 포인터, 어드레스 오프셋 등으로) 메모리/디스크 위치의 시작 어드레스에 대한 참조를 가지며 일반적으로 바이트들로 표현된 특정 메모리 /디스크 위치에 기억된 데이터의 크기 또는 길이 등을 상술한다. SG-유닛들은 단순한 튜플들(a,l)이고, 'a'는 시작 어드레스를 지정하고, 'l'은 길이를 지정한다. SGL들에 대한 어드레스 및/또는 길이에 대한 어떤 정렬 제한도 존재하지 않는다.
메모리/디스크 위치의 어떤 실질적인 데이터도 SGL에 기억되지않고 SGL들 상에 전송되지 않는다. 투플(tuple)만이 기억되거나 전송되어, 기억 및 대역폭 요건들을 크게 감소시킨다.
요약하면, 데이터가 분산/비-연속이라도, SGL은 메모리 또는 본 발명에 따라 디스크에 기억된 데이터를 참조하는 효율적인 방법이다.
하기에서, 소문자들은 주 메모리에 관련된 투플들로 사용되고, 대문자들은 디스크/기억 장치 메모리에 관련된 투플들로 사용된다. 즉, (aj, li) 및 (Aj, Lj) 처처럼 각각 사용된다.
본 발명에 따라서, 방향 지시기(도시되지 않음)는 상술되어야 하고, 디스크 위치가 소스인지 주 메모리의 일부가 착신지 또는 주변의 다른 길인지를 상술하는데 사용된다. 바람직하게, 하기에서 더 상세하게 설명되는 것처럼 디스크에 대한 SGL의 각 투플은 상기 특정 투플에 의해 기술된 전송들의 방향을 상술하는 방향 지시기(도시되지 않음)를 포함한다. 바람직하게, 방향 지시기는 단일 비트에 의해 구현된다. 바람직하게, 64 비트 디스크 어드레스들의 비트들 중 하나는 사용되지 않았기 때문에 사용될 수 있고, 예컨대, ATA6에서 LBA의 크기가 48비트이고, 섹터가 512 바이트들이기 때문이다. 이것은 64 - 48 - 9 = 7이 되고, 그것들 중 하나는 Disk SGL의 주어진 투플에 대한 방향 지시기로서 사용될 수 있다. 대안으로, 다른 사용되지 않은 비티는 예컨대 SCSI 등과 같은 다른 파일 제어기들에 대해 사용될 수 있다. 다른 대안으로서, 방향 지시기는 예컨대, 개별 SGL처럼, 주 메모리 SGL 등의 각 투플에서 다른 방식으로 또한 기억될 수 있다.
도 2는 본 발명에 따른 전송의 일부분으로서 사용된 SGL들을 도시한다. (도 4의 SGL2에 대응하는) 메모리 입력 SGL(202) 및 (도 4의 SGL1에 대응하는) 디스크 입력 SGL(201)이 도시된다. 메모리 입력 SGL(202)는 투플들((a1, l1) 및 (a2, l2))를 포함하고, 그 결과 길이 l1을 갖는 어드레스 a1 및 길이 l2를 갖는 어드레스 a2에서 (디스크로부터 판독하면) 주 메모리(204)에 데이터를 기억시키거나 (디스크에 기록하면) 주 메모리(204)로부터 판독될 (분산된) 데이터 영역(207)을 참조한다.
디스크 입력 SGL(201)은 투플(A1, L1)을 포함하고, 그 결과 메모리 입력 SGL(202)에 의해 참조되는 데이터가 (디스크에 기록하면) 기억되거나, 데이터가 위치되고 (디스크로부터 판독되면) 메모리 입력 SGL(202)에 참조되는 데이터 영역에 기억될 기억 장치(203)의 데이터 영역(206)을 참조한다. 디스크 입력(201)의 데이터는 이 예에서 연속적이지만, 본 발명의 측면에 따라 분산될 수 있다. 디스크 입력 SGL(201)은 또한 디스크 입력 SGL(201)에 기억된 각 투플에 대한 본 발명에 따른 '방향 지시기'(205) 즉, 상기 예에 대한 하나를 포함할 수 있다. 바람직하게, 방향 지시기(205)는 상기에서 설명된 것처럼, 단일 비트로서 구현된다. 방향 지시기(205)는 디스크 SGL의 주어진 투플에 의해 참조된 데이터가 기억 장치(203)로부터 주 메모리(204)로 또는 그 역으로 전송될지를 상술한다. 이 방법으로, 상기 전송 방향의 단순하고 간단한 지시기는 하기에서 기술될 것처럼 효율적인 섹터 정렬을 가능케하고 각 투플에 대해 존재하는 잔여 비트만을 사용하여 얻어진다.
섹터 경계들(S.B.; Sector Boundaries)의 표시들은 기억 장치(203)와 연결된 것으로도 표시된다. 이 특정한 단순 예에서, (방향 지시기(205)에 의해 주어지는 것처럼) 판독 또는 기록 중 하나에 사용되는 기억 장치(203)의 데이터 영역(206)은 섹터 경계에서 시작하고 종료한다. 즉, 어떤 부분적 블록 판독/기록도 필요치 않다.
동작 중, 판독, 기록 및 (판독 및 기록의 조합인) 수정 명령들은 디스크 입력 SGL(201) 및 메모리 입력 SGL에 튜플들을 큐하고, 소스인 것과 주 메모리 및 디 스크의 착신지인 것을 상술하기 위해 디스크 입력 SGL(201)의 각 투플에 대한 방향 지시기(205)를 설정함으로써 단순하게 처리된다.
메모리 및 디스크 SGL들에 '충분(enough)'해진 후, 실제 전송들 즉, 데이터의 물리적 전송은 IDE, ATA 등과 같은 인터페이스 및/또는 기억 장치 제어 층의 제어 하에 비동기적으로 발생할 수 있다. SGL들(201, 202)의 투플들은 표준 ATA/IDE 명령들로 번역될 필요가 있다. '충분'은 바람직하게, 적어도 하나의 미리 결정된 기준 예컨대, 지난 실제 전송 때문에 경과된 주어진 시간 기간 및/또는 SGL들 등에 의해 표시된 데이터 총량의 주어진 크기에 의존한다. 본 발명에 따른 SGL들의 사용은 주 메모리와 기억 장치의 디스크사이에서 일종의 '가상(virtual)' 전송들을 기술하고 '충분'한 데이터가 표시될 때, 실제 물리적 전송들이 발생한다.
이 단순한 예에서, (a1,11 및 a2,12에 의해 주어진) 주 메모리의 데이터 영역(207)의 콘텐트들을 (A1에서 시작하고 L1의 길이를 갖는) 기억 장치의 특정 데이터 영역(206)으로 전송하도록 하는 전송 명령 즉, 종래 양식에서의 기록 명령은 2개의 투플(a1, l1) 및 (a2, l2)은 메모리 입력 SGL에 입력되도록 하고 투플(A1, L1)은 디스크 입력 SGL에 입력되도록 하는 반면, 디스크 입력 SGL의 투플(A1, L1)의 방향 지시기(205)는 주 메모리로부터 기억 장치로의 방향을 지정하기 위해 예컨대, 상기에서 기술된 것처럼 비트를 설정(또는 대안으로 제거)함으로써 단순화하기 위해 설정된다. 이 예에서, L1은 l1 + l2과 같다.
실제 전송이 발생할 때, 예컨대, 다른 기록, 판독 및/또는 수정 명령들이 더 많은 투플들이 SGL들에 부가되도록 할 때, 주 메모리의 데이터 영역(207)의 특정 콘텐트가 기억 장치의 데이터 영역(206)에 기억된다. 본 발명에 따른 SGL들의 고유의 FIFO 구조는, 여러 명령들이 올바른 순서로 처리되도록 보장한다.
반대로 각 콘텐트들을 전송하기 위해 지정하는 전송 명령에 대해(종래 양식에서는 판독 명령), 즉, 기억 장치로부터 주 메모리로 투플(A1, L1)의 방향 지시기(205)의 값만이 변경된다. 동일한 투플들은 SGL들에 놓여져야 한다.
즉, 판독 또는 기록 처리는 (디스크 입력 SGL내의 하나 이상의 투플들을 바람직하게 사용하여) 기억 장치의 데이터 영역(206)을 지정하고 함으로써 처리된다. (메모리 입력 SGL의 하나 이상의 투플들을 사용하는) 주 메모리의 데이터 영역(207) 및 디스크 입력 SGL의 각 투플에 바람직하게 기억된 방향 지시기(205)의 값을 지정함으로써 다루어지고, 방향 지시기(205)의 지정 값은 디스크 입력 SGL(201)의 특정의 하나 이상의 투플들 및 메모리 입력 SGL(202)의 하나 이상의 대응하는 투플들에 대해 판독(즉, 기억 장치로부터 주 메모리로 전송) 또는 기록(즉, 주 메모리로부터 기억 장치로 전송) 처리 여부를 지정한다.
이런 방식으로, 매우 간단하고 효율적인 방법으로 판독/기록 동작들을 가능케하는 것이 기억 시스템에서 가능하다. 동작들이 부분적인 블록들/섹터들에 기초할지라도, 도 3a 및 도 3b와 관련하여 설명될 것이다.
도 3a 및 도 3b는 부분적인 블록 판독/기록들에 관련하여 본 발명에 따른 전송의 일부로서 사용된 SGL들을 도시한다.
도 3a는 본 발명에 따른 섹터 정렬이 수행되기 전의 SGL들을 도시한다. (도 2의 메모리 입력 SGL에 대응하는) 메모리 입력 SGL 및 (도 2의 디스크 입력 SGL에 대응하는) 디스크 입력 SGL(201)이 도시되고, 다른 예시적인 상황은 아니다. 이 예시적인 상황은 부분적인 블록 기록/판독 동작을 도시한다. 이러한 구체적인 예에서, 방향 지시기(205)에 의해 지시된 것처럼, 전송의 방향은 주 메모리(204)로부터 디스크/기억 장치(203)인 즉, 기록 동작이다. 이 기록은 부분적인 블록(210), 2개의 전체적인 블록(211, 212), 다른 부분적인 블록(213)의 순서로 된 것과 관련되며, 모든 블록들(210 내지 213)은 기억 장치상에서 연속되며 어드레스 A에서 시작하고 디스크 입력 SGL(201)의 투플(A1, L1)에 의해 주어진 L1의 전체적인 길이이다. 소스 주 메모리 위치들은 분산되고 메모리 입력 SGL(202)의 투플들(a1, l1), (a2, l2) 및 (a3, l3)에 의해 주어진 3개의 유닛들(214, 215, 216)로 구성된다. 따라서 파선 영역들은 입력 SGL들(201, 202)에 의해 기술되고, 섹터 경계들과 어떤 정렬도 존재하지 않는다. 이 예에서, L1은 l1, l2, l3의 합과 같은데, 소스 및 착신지의 길이는 기억 장치에 액세스하기 위해 동일해야 한다. 입력 SGL들(201, 202)은 앞에서 기술된 거처럼 더 많은 데이터를 포함할 수 있지만, 데이터는 상기 예를 지정하기 위해 도시되거나 논의되지 않는다.
기술된 것처럼, SGL은 부가의 동작들 및 최적화들을 더 제공하는 그와 같은 투플들의 큐로서 기본적으로 구현된다.
A1은 상기 섹터의 첫번째 부분은 그대로인 반면에, 두번째 부분(210)은 파선 영역들에 의해 지시된 것처럼 변경되는 2개의 섹터 경계들 사이의 섹터의 일정 위치를 가리킨다. 앞에서 기술된 것처럼, 디스크로부터의 기록(및 판독)은 섹터들의 정수들에서만 행해질 수 있다. 어드레스들(a1, a2, a3)은, 상기 주 메모리가 상기 전송을 행하는 하드웨어 및/또는 소프트웨어에 액세스가능한 것으로 주어지면 주 메모리 중 어떤 곳을 가리킬 수 있다.
섹터 정렬의 처리는 도 3b에 관련하여 더 설명된다.
도 3b는 본 발명에 따른 섹터 정렬이 실행된 후의 SGL들을 도시한다. 섹터 정렬이 수행되고 디스크 메모리(203)가 더 이상 어떤 부분적인 블록 액세스들도 포함하지 않은 후의 (도 4의 SGL(6)에 대응하는) 메모리 입력 SGL(209) 및 (도 4의 SGL(5)에 대응하는) 디스크 입력 SGL(208) 및 그것들의 관련된 메모리들(203, 204) 각각이 도시된다. 이 도면의 디스크 입력 SGL(208) 및 메모리 입력 SGL(209)은 본 발명에 따른 섹터 정렬 층/애플리케이션에 의해 도 3a의 디스크 입력 SGL(도 3a의 201) 및 메모리 입력 SGL(도 3a의 202)에 기초하여 발생된다. 도 3a에 관련하여 지시된 것처럼, 이 예에서, 주 메모리의 데이터 콘텐트는 디스크에 전송될 것이다. 부분적인 판독은 이 후에서 설명될 것처럼 다루기가 훨씬 더 쉽다.
주 메모리의 일부분이고 섹터 정렬 처리에서 사용된 일시적 메모리 블록들(217, 218)이 또한 도시된다. 일시적 메모리 블록들(217, 218)은 기억 장치 블록들/섹터들과 적어도 같은 크기를 갖고, 하기에서 설명될 것처럼 부분적인 블록들의 '헤드(head)' 및 '테일(tail)'에 대해 사용된다.
섹터 정렬은 전송의 시작과 말미의 각각에 부가된 부가 섹터 부분들(219, 220)을 발생시키고, 그 결과 완전한 블록들/섹터들에 제공한다.
섹터 정렬을 수행하기 위해 하기에 따른 도 3a의 디스크 입력 SGL(도 3a의 201) 및 메모리 입력 SGL(도 3a의 202)에 기초하여 디스크 입력 SGL(208) 및 메모 리 입력 SGL(209)이 발생될 것이다.
먼저, 디스크의 헤드 섹터는, (전송될 데이터가 섹터 경계에서 시작되지 않으면) 기록/수정 단계에 의해 변형되지 않는(209) 데이터를 포함하는 것처럼 어떤 기록이 발생되기 전 프리-패치(pre-fetch)/판독된다. 이것은 메모리 입력 SGL(209)의 투플(a1', l1')을 엔-큐잉(en-queuing)하고 디스크 입력 SGL(208)의 투플(A2, L2)을 엔-큐잉하며, 판독하기 위해 (A2, L2)의 방향 지시기를 지정함으로써 행해진다(즉, 디스크는 소스이고 주 메모리는 (A2, L2)/(a1', l1')에 의해 참조된 데이터에 대한 착신지이다)). 투플(a1', l1')은 일시적 메모리 블록(217)의 데이터를 참조한다.
그 후, 디스크의 테일 섹터는, (전송될 데이터가 섹터 경계에서 종료하지 않으면) 변형되지 않는(220) 데이터를 또한 포함하는 것처럼 어떤 기록이 발생되기 전 이 실시예에서 또한 프리-패치/판독된다.
이것은 메모리 입력 SGL(209)의 투플(a1', l1')을 엔-큐잉(en-queuing)하고 디스크 입력 SGL(208)의 투플(A3, L3)을 엔-큐잉하며, 판독하기 위해 (A3, L3)의 방향 지시기를 지정함으로써 행해진다(즉, 디스크는 소스이고 주 메모리는 (A3, L3)/(a2', l2')에 의해 참조된 데이터에 대한 착신지이다)). 투플(a2', l2')은 일시적 메모리 블록(217)의 데이터를 참조한다.
일반적으로, 테일 섹터의 판독은 테일 섹터에 데이터를 기록하기 전에 수행되어야 한다. 상기 투플들(a2', l2') 및 (A3, L3)이, 테일 섹터에 기록을 규정하는 어떤 투플들이 엔-큐잉되기전에 엔-큐잉되는 동안 투플들(a1', l1') 및 (A2, L2) 전 또는 후 엔-큐잉되면 중요치 않고, 변형되지 않을 헤드의 데이터(219) 및 테일의 데이터(220)가 그렇게 기록한 후 유지되는 것을 보장한다.
상기 단계 후, 헤드 섹터(219)의 헤드, 즉, 비-정렬 판독에 의해 변형되지 않을 부분이 기록된다.
이것은 a3'가 a1'과 같고 l3'<l1'인 메모리 입력 SGL(209)의 투플(a3', l3')을 엔-큐잉함으로써 행해진다. 특히, l3'는 기록될 헤드 섹터의 데이터(210)의 길이를 뺀 섹터의 길이와 동일하다. 대안으로, l3'는 (도 3a의 디스크 입력 SGL으로부터의) A1에서 A2를 뺀 것과 동일하다.
상기 단계 후, 새로운/수정된 데이터(214, 215, 216)가 기록된다.
이것은 도 3a의 메모리 입력 SGL(202)로부터 메모리 입력 SGL(209)의 투플들(a1, l1), (a2, l2) 및 (a3, l3)를 엔-큐잉함으로써 행해진다.
그리고 최종적으로, 테일 섹터(220)의 테일, 즉, 비-정렬 판독에 의해 변형되지 않을 부분이 기록된다.
이것은 l4'가 기록될 테일 섹터의 데이터(213)의 길이를 뺀 섹터의 길이와 동일한 메모리 입력 SGL(209)의 (a4', l4')를 엔-큐잉함으로써 행해진다. a4'는 a2' + 기록될 테일 섹터의 데이터의 길이와 동일하다. a2'+l2'는 a4'+l4'는 같은 것 즉, 둘 모두는 테일 섹터의 끝에서 종료한다.
투플들 (a3', l3'), (a1, l1), (a2, l2), (a3, l3) 및 (a4', l4')은, A4는 A2와 같고, L4는 l3'+l1+l2+l3+l4' 즉, 데이터 길이의 합은 기록/수정되고(214, 215, 216) 헤드의 일부(219)는 변형되지 않으며 테일의 일부(220)는 변형되지 않는 투플(A4, L4)을 엔-큐잉하여 디스크 입력 SGL(도 3a의 201)의 투플(A1, L1)을 수정함으로써 디스크에 관련된다. (A4, L4)의 방향 지시기는 기록을 지정하도록 설정된다.
상기 단계 후, 디스크에 관련된 투플들은 블록/섹터 기억 장치에 전송되도록 준비된 섹터 할당된 데이터 영역을 참조/규정한다. 그때, SGL들(208, 209)은 콘텐트를 기억 장치 인터페이스 즉, IDE 인터페이스에 대한 기억 장치에 대한 명령으로 번역하도록 적합한 변환 메커니즘에 대한 입력으로서 사용될 수 있다.
부분적인 블록들을 판독하기 위해, 부가된 섹터들(219, 220)은 패치되고 있을 때 단순 폐기된다. (동일한 데이터 영역들을 사용하는) 부분적 블록 판독에 대해서, SGL들의 투플들은 (A4, L4) 및 (a3', l3'), (a1, l1), (a2, l2), (a3, l3) 및 (a4', l4')가 될 것이다. 하지만, 이것에 대해, 헤드 및 테일의 프리-패치/판독은 필요치 않다. 헤더 섹터(219)의 헤드의 데이터 및 테일 섹터(220)의 테일의 데이터가 판독된 후 간단히 폐기된다. 즉, 기억 장치(506)로부터의 (적합한 순서로) 모든 섹터(219+210, 211, 212, 213+220)를 판독하고, 전송될 테이터가 섹터 경계(S.B.)에서 시작하지 않으면 전송될 데이터의 일부를 포함하지 않는 헤드 섹터(219+210)의 일부의 폐기하고, 전송될 데이터가 섹터 경계(S.B.)에서 종료하지 않으면 전송될 데이터의 일부를 포함하지 않는 테일 섹터(213+220)의 일부를 폐기하며, 판독은 입력 디스크 입력 SGL(208) 및 메모리 입력 SGL(209)의 분산/집합 목록 요소들(105)에 의해 표시될 수 있다.
전송될 데이터가 섹터 경계에서 시작하면, 그때 (A2, L2), (a1', l1') 및 (a3', l3')은 생략되거나 발생되지 않고, A4 = A1이다.
전송될 데이터가 섹터 경계에서 섹터 경계에서 종료하면, 그때 (A3, L3), (a2', l2') 및 (a4', l4')는 생략되거나 발생되지 않고, A4+L4=A1+L1이다. 즉, A3, L3), (a2', l2') 및 (a4', l4')는 동일한 장소에서 종료한다.
기술된 섹터 정렬 처리는 종래 기술의 3 단계들에 반대로서, CPU의 업무(들)는 상대적으로 휠씬 느린 디스크 I/O로부터 디-커플링되기 때문에, 상기에서 기술된 종래 기술 처리에서처럼 CPU를 블록(block)하지 않고, 디스크 I/O는 각 단계 후 필요하다.
또한, 데이터에 대한 참조들만이, 즉 투플들이 기억 및 대역폭 요건들을 상당히 감소시키는 SGL들 사이에서 복제되기 때문에, 어떤 실제 데이터도 복제되지 않는다.
본 발명에 따른 섹터 정렬에서, "수정(modifying)" 부분은 이제 "자동적으로(automatically)" 발생하는데, 주 메모리는 기록 명령들뿐 아니라 판독의 일부이기 때문이다. 요구된 메모리 위치들의 요구된 데이터에서 판독이 발생된 후 기록만이 발생될 수 있는 것이 유일한 제한이다. 그와 같은 제한들은 이미 알려진 것처럼, 기억 장치의 상부의 디스크 스케줄러(scheduler)에 의해 쉽게 처리된다. 또한, 상기 스케줄러는 이제 기억 장치의 처리율을 쉽게 최적화할 수 있다.
디스크 입력 SGL(도 3a의 201)의 투플에 의해 참조된 전체 데이터 영역이 단일 섹터 내에 존재하는 상황에서, 상기 섹터가 헤드와 테일 모두이기 때문에, 상기에서처럼 두 번이 아닌 한 번의 프리-패치만이 필요하다. 이런 상황에서, 프리-패 치는 어떤 기록 전에 행해져야 한다. 그 후, 섹터 정렬 처리는 예컨대, 기억 장치(506)로부터 단일 섹터를 판독하고 일시적인 섹터(217, 218) 내에 기억할 수 있고, 단일 처리가 판독된 후, 전송될 데이터가 섹터 경계(S.B.)에서 시작하지 않으면 단일 섹터 경계의 헤드를 기록하고, 전송될 데이터를 기록하며, 전송될 데이터가 섹터 경계에서 종료하지 않으면 단일 섹터의 테일을 기록한다.
여러 투플들의 기능은 다음의 테이블에 요약된다:
유닛 기술
(a1', l1') 헤드 섹터. 정확히 유지될 수 있는 일시적인 버퍼는 하나의 섹터이다. 1'에 대해, 어떤 섹터 정렬 요건들도 유지되지 않는다. (A2, L2)에 대 응. 판독.
(a2', l2') 테일 섹터. 동일. (A3, L3), 판독
(a3', l3') 헤드 섹터의 헤드. 변형되지 않을 수 있는 섹터의 일부. a3'는 a1'이 고, ㅣ3'<ㅣ1'. 기록. 유닛들 a3', a1, a2, a3, a4'는 (A4, L4)에 대 응.
(a1, l1) 도 3a로부터 오리지널(a1, l1)이 존재. 기록.
(a2, l2) 도 3a로부터 오리지널(a2, l2)이 존재. 기록.
(a3, l3) 도 3a로부터 오리지널(a3, l3)이 존재. 기록
(a4', l4') 테일 섹터의 테일. 변형되지 않을 수 있는 섹터의 일부. a2'+l2'는 a4'+l4'와 동일이고, 둘 모두 테일 섹터의 끝에서 종료. 기록.
도 4는 본 발명의 실시예에 따른 인터페이스의 층들을 개략적으로 도시한다. 기억 시스템 층/파일 관리 층, 섹터 정렬 층, 디스크 인터페이스/IDE 층 및 DMA 엔진 등이 도시된다. 도 2 및 도 3a에 대응하는 디스크 입력 SGL/SGL1(201), 도 2 및 도 3a에 도시된 것에 대응하는 메모리 입력 SGL/SGL2(201), 도 3b에 도시된 것에 대응하는 다른 디스크 입력 SGL(208)/SGL5, 도 3b에 도시된 것에 대응하는 다른 메 모리 입력 SGL(209)/SGL6가 도시된다.
바람직한 실시예에서, 부가의 출력 메모리 SGL(230)은 이미 실제 전송의 일부분이었던 즉, 필요한 경우 어떤 섹터 정렬 이후의 주 메모리를 기술하는데 사용된다. 각 전송은 입력 메모리 SGL(209)로부터 출력 메모리 SGL/SGL7(230)로 메모리를 '이동(move)'시킨다. 데이터 자체는 움직이지 않고, 데이터의 기술 즉, 관련된 투플(들)만이 이동한다. 또한, 유사한 방식으로 이미 실제 전송의 일부분이었던 디스크 위치(들)를 기술하도록 사용된 부가의 출력 디스크 SGL/SGL8(도 4의 231)이 존재한다.
바꾸어 말하면, 전송의 일부가 발생한 후, 상기 전송은 입력 SGL들(208, 209)로부터 대응하는 출력 SGL들(231, 230)로 즉, 도 4에서 도시된 것처럼, SGL5로부터 8로, SGL 6으로부터 7로 이동된다. 이것은 여러 애플리케이션들, 다른 처리들 등에 유용할 수 있고, 발생되었던 전송 처리들을 쉽고 간단한 모니터링을 가능케한다.
다른 실시예에서, 섹터 정렬 층은 또한, 일시적인 헤드 및 테일 섹터들(도 3b의 217 및 218)의 일시적 메모리를 리사이클하기 위해 출력 SGL들 7(230) 및 8(231)에서 발생하는 역 처리를 또한 포함하고, 원(original) 입력 SGL들 2(202) 및 1(201)과 일치하는 출력 SGL들 3(233) 및 4(232)를 만든다. 이것은 매우 간단한 방법으로 사용된 메모리의 재사용을 용이하게 한다.
ATA(6)에서, LBA의 크기는 48비트이고 섹터는 512 바이트들이기 때문에, 64비트 디스크 어드레스들의 일부 비트들은 사용되지 않는다. 이것은 64-48-9=7 비트 들을 남기고, 상기 비트들 중 하나는 이전에 설명되었던 것처럼 방향 지시기로서 사용될 수 있다. 비-정렬된 기록 액세스들은 도 3a 및 3b에 관련하여 기술된 것처럼, 정렬된 기록 액세스 다음의 (헤드 및 테일 섹터들의 정렬된) 판독 액세스들로 번역된다. 단순하게 유지하도록, 그와 같은 번역의 결과는 다시 단일 SGL이 되지만, 일 실시예에서, 판독 요구들은 사용되지 않은 비트 세트(기록을 나타내는 삭제된 비트)를 가진다. 대안으로, 삭제된 비트는 판독 요구를 나타낼 수 있다. IDE/디스크 층은, 디스크에서 바로 판독되었던 데이터를 기록하기 전에 판독 요구들이 완료되었던 것을 보장한다. 그때마다, SGL 5(208) 및/또는 SGL 6(209)의 방향 지시기는 변경되고, 그 후, 동일한 메모리 위치를 액세스할 때마다 판독은 기록 전에 완료되는 것을 보장한다. 이러한 점은 네트워크 기억 장치들에 특히 중요할 수 있다.
하드웨어 요건들로 인해 존재할 수 있는 하프-워드(half-word)는 정규 방법으로 처리된다.
도 5는 본 발명의 일 실시예에 따른 장치의 일 예를 개략적으로 도시한다. 본 발명에 따른 장치(500)가 도시되며, 상기 장치(500)는 내부 데이터/어드레스 버스(504) 등을 통해 주 메모리(502) 및 적어도 하나의 기억 장치(506)에 접속된 하나 이상의 마이크로-프로세서들(501)을 포함한다. 장치(500)는 또한, 네트워크를 통해 하나 이상의 원격 시스템들과 통신하는 통신 수단(501) 및/또는 디스플레이(207)에 접속되거나 포함할 수 있다. 메모리(502) 및/또는 기억 장치(506)는 본 발명에 따른 기능을 제공하기 위한 실행가능한 컴퓨터 코드와 함께 관련된 데이터를 기억하거나 검색하는데 사용된다. 마이크로 프로세서(들)는 본 발명에 따른 SGL들 의 발생, 취급, 처리 등에 이용된다.
기억 장치(506)는 데이터의 블록들을 판독하고 가능하면 기록할 수 있는 하나 이상의 기억 장치들 예컨대, DVD, CD, 광 디스크, PVR 등의 플레이어/레코더 및/또는 하드 디스크(IDE, ATA 등), 플로피 디스크, 스마트 카드, PCMCIA 카드 등을 포함한다. 기억 장치는 네트워크 디스크도 될 수 있다.
청구항들에서, 괄호들 사이의 어떤 참조 부호들은 청구항을 제한하도록 구성되지 않는다. 단어 "포함하는(comprising)"은 청구항에 열거된 것과 다른 요소들 또는 단계들의 존재를 배제하지 않는다. 어떤 요소 앞의 단어 "하나(a 또는 an)"는 그와 같은 요소들의 복수의 존재를 배제하지 않는다.
본 발명은 여러 개별 요소들을 포함하는 하드웨어 및 적합하게 프로그램된 컴퓨터에 의해 구현될 수 있다. 여러 수단을 열거하는 장치 청구항에서, 이런 여러 수단은 하드웨어 중 하나 및 하드웨어의 동일한 아이템에 의해 구현될 수 있다. 어떤 측정들이 서로 다른 종속항들에서 인용된 단순한 사실은 이러한 측정들의 조합이 유리하게 사용될 수 없는 것을 나타내지 않는다.

Claims (21)

  1. 기억 시스템의 주 메모리(502)와 기억 장치(506) 사이에서 데이터 전송을 표시하는 방법에 있어서,
    상기 기억 시스템은:
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 디스크 위치(203)를 참조하는 0개 이상의 분산 집합 목록 요소들(Scatter Gather List elements; 105)을 포함하도록 배열된 제 1 분산 집합 목록 데이터 구조(201; SGL1);
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 주 메모리(204)의 일부를 참조하는 0개 이상의 분산 집합 목록 요소들(105)을 포함하도록 배열된 제 2 분산 집합 목록 데이터 구조(202; SGL2); 및
    - 상기 제 1 분산 집합 목록 데이터 구조(201; SGL1)의 각 분산 집합 목록 요소(105) 또는 상기 제 2 분산 집합 목록 데이터 구조(202; SGL2)의 각 분산 집합 목록 요소에 대한 방향 지시기(205)로서, 상기 방향 지시기(205)는 상기 디스크 위치(203)가 소스이고 상기 주 메모리(204)의 일부가 착신지인지를 지정하거나, 상기 디스크 위치(203)가 착신지이고 상기 주 메모리(204)의 일부가 소스인지를 지정하는, 상기 방향 지시기(205)를 포함하고,
    상기 방법은,
    - 상기 제 1 분산 집합 목록 데이터 구조(201; SGL1) 및 상기 제 2 분산 집합 목록 데이터 구조(202; SGL2)를 발생시키는 단계를 포함하는, 데이터 전송 표시 방법.
  2. 제 1 항에 있어서,
    상기 제 1 분산 집합 목록 데이터 구조(201; SGL1)가 상기 방향 지시기(205)를 포함하거나, 상기 제 2 분산 집합 목록 데이터 구조(202; SGL2)가 상기 방향 지시기(205)를 포함하는 것을 특징으로 하는, 데이터 전송 표시 방법.
  3. 제 1 항에 있어서,
    판독 또는 기록 동작을 수행할 때,
    - 착신지 데이터 영역, 소스 데이터 영역 및 방향을 수신하는 단계;
    - 상기 방향에 의존하는 상기 착신지 데이터 영역을 포함하는 적어도 하나의 분산 집합 목록 요소(105)를, 상기 제 1 분산 집합 목록 데이터 구조(201; SGL1) 내에 엔-큐잉(en-queing)하는 단계;
    - 상기 방향에 의존하는 상기 소스 데이터 영역을 포함하는 적어도 하나의 분산 집합 목록 요소(105)를, 상기 제 2 분산 집합 목록 데이터 구조(202; SGL2) 내에 엔-큐잉하는 단계; 및
    - 상기 주 메모리 및 기억 장치 중 어느 것이 소스 및 착신지인지를 지정하기 위해 상기 방향 지시기(205)를 설정하는 단계를 더 포함하는 것을 특징으로 하는, 데이터 전송 표시 방법.
  4. 제 1 항에 있어서,
    상기 기억 시스템은:
    - 제 5 분산 집합 목록 데이터 구조(208; SGL5); 및
    - 제 6 분산 집합 목록 데이터 구조(209; SGL6)를 더 포함하고,
    상기 데이터 전송 표시 방법은 상기 기억 장치(506)에 대한 비정렬된 기록 이전에 전송될 데이터(214, 215, 216)의 섹터 정렬을 수행하는 단계를 더 포함하며,
    상기 수행 단계는:
    - 상기 전송될 데이터가 섹터 경계(Sector Boundary: S.B.)에서 시작하지 않으면 상기 기억 장치(506)로부터 헤드 섹터(219+210)를 판독하고 일시적인 헤드 섹터(217)에 상기 데이터를 기억하는 단계; 및
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 종료하지 않으면 상기 기억 장치(506)로부터 테일 섹터(213+220)를 판독하고 일시적인 테일 섹터(218)에 상기 데이터를 기억하는 단계를 포함하고.
    상기 헤드 및 테일 섹터(219+210; 213+220)가 판독된 후,
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 시작하지 않으면 상기 헤드 섹터(219+210)의 헤드(219)를 기록하는 단계;
    - 상기 전송될 데이터(214, 215, 216)를 기록하는 단계; 및
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 종료하지 않으면 상기 테일 섹터(213+220)의 테일(220)을 기록하는 단계를 포함하며,
    상기 판독 및 기록 단계는 상기 제 5(208; SGL5) 및 제 6(209; SGL6) 데이터 구조의 분산 집합 목록 요소들로 표시되는 것을 특징으로 하는, 데이터 전송 표시 방법.
  5. 제 1 항에 있어서,
    상기 제 1 분산 집합 목록 데이터 구조(201; SGL1)는 디스크 위치(203)의 단일 섹터 내의 전송될 데이터를 참조하는 일 분산 집합 목록 요소(105)를 포함하고,
    상기 기억 시스템은:
    - 제 5 분산 집합 목록 데이터 구조(208; SGL5); 및
    - 제 6 분산 집합 목록 데이터 구조(209; SGL6)를 포함하고,
    상기 데이터 전송 표시 방법은 상기 기억 장치(506)에 대한 비정렬된 기록 이전에 전송될 데이터(214, 215, 216)의 섹터 정렬을 수행하는 단계를 더 포함하며,
    상기 수행 단계는:
    - 상기 기억 장치(506)로부터 단일 섹터를 판독하고 일시적인 헤드 섹터(217, 218)에 상기 데이터를 기억시키는 단계를 포함하고,
    상기 단일 섹터가 판독된 후,
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 시작하지 않으면 상기 단일 섹터의 헤드를 기록하는 단계;
    - 상기 전송될 데이터를 기록하는 단계; 및
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 종료하지 않으면 상기 단일 섹터의 테일을 기록하는 단계를 포함하며,
    상기 판독 및 기록 단계는 상기 제 5(208; SGL5) 및 제 6(209; SGL6) 데이터 구조의 분산 집합 목록 요소들로 표시되는 것을 특징으로 하는, 데이터 전송 표시 방법.
  6. 제 1 항에 있어서,
    상기 기억 시스템은:
    - 제 5 분산 집합 목록 데이터 구조(208; SGL5); 및
    - 제 6 분산 집합 목록 데이터 구조(209; SGL6)를 더 포함하고,
    상기 데이터 전송 표시 방법은 상기 기억 장치(506)로부터 전송될 데이터(210, 211, 212, 213)의 비정렬된 판독을 수행하는 단계를 더 포함하며,
    상기 수행 단계는:
    - 상기 기억 장치(506)로부터 모든 섹터(219+210, 211, 212, 213+220)를 판독하는 단계;
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 시작하지 않으면 전송될 데이터 중 일부를 포함하지 않는 상기 헤드 섹터(219+210)의 일부(219)를 폐기하는 단계; 및
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 종료하지 않으면 전송될 데이터 중 일부를 포함하지 않는 상기 테일 섹터(213+220)의 일부(220)를 폐기하는 단 계를 포함하고,
    상기 판독 및 기록 단계는 상기 제 5(208; SGL5) 및 제 6(209; SGL6) 데이터 구조의 분산 집합 목록 요소들로 표시되는 것을 특징으로 하는, 데이터 전송 표시 방법.
  7. 제 1 항에 있어서,
    상기 기억 시스템은:
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 주 메모리(204)의 일부를 참조하는 하나 이상의 분산 집합 목록 요소들(105)을 포함하는 제 3 분산 집합 목록 데이터 구조(230; SGL7); 및
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 디스크 위치(203)를 참조하는 하나 이상의 분산 집합 목록 요소들(105)을 포함하는 제 4 분산 집합 목록 데이터 구조(231; SGL8)를 더 포함하고,
    전송의 일부가 행해질 때, 상기 제 6 데이터 구조(201)로부터 상기 제 3 데이터 구조(233)로 상기 일부의 데이터에 대한 참조를 전송하는 단계 및 상기 제 5 데이터 구조(202)로부터 상기 제 4 데이터 구조(232)로 상기 일부의 데이터를 전송하는 단계를 더 포함하는 것을 특징으로 하는, 데이터 전송 표시 방법.
  8. 제 7 항에 있어서,
    상기 기억 시스템은:
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 주 메모리(204)의 일부를 참조하는 하나 이상의 분산 집합 목록 요소들(105)을 포함하는 제 7 분산 집합 목록 데이터 구조(233; SGL3); 및
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 디스크 위치(203)를 참조하는 하나 이상의 분산 집합 목록 요소들(105)을 포함하는 제 8 분산 집합 목록 데이터 구조(232; SGL4)를 더 포함하고,
    - 상기 일시적인 헤드 섹터(217) 및/또는 상기 일시적인 테일 섹터(218)의 일시적 메모리를 리사이클(recycle)하기 위해 상기 제 3 분산 집합 목록 데이터 구조(230; SGL7) 및 상기 제 4 분산 집합 목록 데이터 구조(231; SGL8)에서 역 처리를 수행하는 단계;
    - 상기 역 처리에 기초하여 상기 제 2 분산 집합 목록 데이터 구조(202; SGL2)와 일치하도록 상기 제 7 분산 집합 목록 데이터 구조(233; SGL3)를 발생시키는 단계; 및
    - 상기 역 처리에 기초하여 상기 제 1 분산 집합 목록 데이터 구조(201; SGL1)와 일치하도록 상기 제 8 분산 집합 목록 데이터 구조(232; SGL4)를 발생시키는 단계를 더 포함하는 것을 특징으로 하는, 데이터 전송 표시 방법.
  9. 제 1 항에 있어서,
    상기 방향 지시(105)는 ATA6에 따른 디스크 어드레스들의 컴퓨터 표현의 비트들 중 단일 잉여 비트(single surplus bit)로서 구현되는 것을 특징으로 하는, 데이터 전송 표시 방법.
  10. 제 1 항에 있어서,
    상기 기억 시스템은 실시간 기억 시스템인 것을 특징으로 하는, 데이터 전송 표시 방법.
  11. 기억 시스템의 주 메모리와 기억 장치 사이에서 데이터 전송을 표시하는 장치에 있어서,
    상기 기억 시스템은:
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 디스크 위치(203)를 참조하는 0개 이상의 분산 집합 목록 요소들(105)을 포함하도록 배열된 제 1 분산 집합 목록 데이터 구조(201; SGL1);
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 주 메모리(204)의 일부를 참조하는 0개 이상의 분산 집합 목록 요소들(105)을 포함하도록 배열된 제 2 분산 집합 목록 데이터 구조(202; SGL2); 및
    - 상기 제 1 분산 집합 목록 데이터 구조(201; SGL1)의 각 분산 집합 목록 요소(105) 또는 상기 제 2 분산 집합 목록 데이터 구조(202; SGL2)의 각 분산 집합 목록 요소에 대한 방향 지시기(205)로서, 상기 방향 지시기(205)는 상기 디스크 위치(203)가 소스이고 상기 주 메모리(204)의 일부가 착신지인지를 지정하거나, 상기 디스크 위치(203)가 착신지이고 상기 주 메모리(204)의 일부가 소스인지를 지정하 는, 상기 방향 지시기(205)를 포함하는, 데이터 전송 표시 장치.
  12. 제 11 항에 있어서,
    상기 제 1 분산 집합 목록 데이터 구조(201; SGL1)가 상기 방향 지시기(205)를 포함하거나, 상기 제 2 분산 집합 목록 데이터 구조(202; SGL2)가 상기 방향 지시기(205)를 포함하는 것을 특징으로 하는, 데이터 전송 표시 장치.
  13. 제 11 항에 있어서,
    판독 또는 기록 동작을 수행할 때,
    - 착신지 데이터 영역, 소스 데이터 영역 및 방향을 수신하고,
    - 상기 방향에 의존하는 상기 착신지 데이터 영역을 포함하는 적어도 하나의 분산 집합 목록 요소(105)를, 상기 제 1 분산 집합 목록 데이터 구조(201; SGL1) 내에 엔-큐잉하고,
    - 상기 방향에 의존하는 상기 소스 데이터 영역을 포함하는 적어도 하나의 분산 집합 목록 요소(105)를, 상기 제 2 분산 집합 목록 데이터 구조(202; SGL2) 내의 엔-큐잉하며,
    - 상기 주 메모리 및 기억 장치 중 어느 것이 소스 및 착신지인지를 지정하기 위해 상기 방향 지시기(205)를 설정하도록 적응되는 것을 특징으로 하는, 데이터 전송 표시 장치.
  14. 제 11 항에 있어서,
    상기 기억 시스템은:
    - 제 5 분산 집합 목록 데이터 구조(208; SGL5); 및
    - 제 6 분산 집합 목록 데이터 구조(209; SGL6)를 더 포함하고,
    상기 데이터 전송 표시 장치는 상기 기억 장치(506)에 대한 비정렬된 기록 이전에 전송될 데이터(214, 215, 216)의 섹터 정렬 단계를 수행하도록 더 적응되며,
    상기 수행 단계는:
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 시작하지 않으면 상기 기억 장치(506)로부터 헤드 섹터(219+210)를 판독하고 일시적인 헤드 섹터(217)에 상기 데이터를 기억하는 단계; 및
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 종료하지 않으면 상기 기억 장치(506)로부터 테일 섹터(213+220)를 판독하고 일시적인 테일 섹터(218)에 상기 데이터를 기억하는 단계를 포함하고.
    상기 헤드 및 테일 섹터(219+210; 213+220)가 판독된 후,
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 시작하지 않으면 상기 헤드 섹터(219+210)의 헤드(219)를 기록하는 단계;
    - 상기 전송될 데이터(214, 215, 216)를 기록하는 단계; 및
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 종료하지 않으면 상기 테일 섹터(213+220)의 테일(220)을 기록하는 단계를 포함하며,
    상기 판독 및 기록 단계는 상기 제 5(208; SGL5) 및 제 6(209; SGL6) 데이터 구조의 분산 집합 목록 요소들로 표시되는 것을 특징으로 하는, 데이터 전송 표시 장치.
  15. 제 11 항에 있어서,
    상기 제 1 분산 집합 목록 데이터 구조(201; SGL1)는 디스크 위치(203)의 단일 섹터 내의 전송될 데이터를 참조하는 일 분산 집합 목록 요소(105)를 포함하고,
    상기 기억 시스템은:
    - 제 5 분산 집합 목록 데이터 구조(208; SGL5); 및
    - 제 6 분산 집합 목록 데이터 구조(209; SGL6)를 포함하고,
    상기 데이터 전송 표시 장치는 상기 기억 장치(506)에 대한 비정렬된 기록 이전에 전송될 데이터(214, 215, 216)의 섹터 정렬 단계를 수행하도록 더 적응되며,
    상기 수행 단계는:
    - 상기 기억 장치(506)로부터 단일 섹터를 판독하고 일시적인 헤드 섹터(217, 218)에 상기 데이터를 기억시키는 단계를 포함하고,
    상기 단일 섹터가 판독된 후,
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 시작하지 않으면 상기 단일 섹터의 헤드를 기록하는 단계;
    - 상기 전송될 데이터를 기록하는 단계; 및
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 종료하지 않으면 상기 단일 섹터의 테일을 기록하는 단계를 포함하며,
    상기 판독 및 기록 단계는 상기 제 5(208; SGL5) 및 제 6(209; SGL6) 데이터 구조의 분산 집합 목록 요소들로 표시되는 것을 특징으로 하는, 데이터 전송 표시 장치.
  16. 제 11 항에 있어서,
    상기 장치는 상기 기억 장치(506)로부터 전송될 데이터(210, 211, 212, 214)의 비정렬된 판독의 단계를 수행하도록 더 적응되며,
    상기 수행 단계는:
    - 상기 기억 장치(506)로부터 모든 섹터(219+210, 211, 212, 213+220)를 판독하는 단계;
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 시작하지 않으면 전송될 데이터 중 일부를 포함하지 않는 상기 헤드 섹터(219+210)의 일부(219)를 폐기하는 단계; 및
    - 상기 전송될 데이터가 섹터 경계(S.B.)에서 종료하지 않으면 전송될 데이터 중 일부를 포함하지 않는 상기 테일 섹터(213+220)의 일부(220)를 폐기하는 단계를 포함하고,
    상기 판독 및 기록 단계는 상기 제 5(208; SGL5) 및 제 6(209; SGL6) 데이터 구조의 분산 집합 목록 요소들로 표시되는 것을 특징으로 하는, 데이터 전송 표시 장치.
  17. 제 11 항에 있어서,
    상기 기억 시스템은:
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 주 메모리(204)의 일부를 참조하는 하나 이상의 분산 집합 목록 요소들(105)을 포함하는 제 3 분산 집합 목록 데이터 구조(230; SGL7); 및
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 디스크 위치(203)를 참조하는 하나 이상의 분산 집합 목록 요소들(105)을 포함하는 제 4 분산 집합 목록 데이터 구조(231; SGL8)를 더 포함하고,
    전송의 일부가 행해질 때, 상기 제 1 데이터 구조(201)로부터 상기 제 3 데이터 구조(233)로 상기 일부의 데이터에 대한 참조를 전송하고 상기 제 2 데이터 구조(202)로부터 상기 제 4 데이터 구조(232)로 상기 일부를 전송하도록 더 적응되는, 데이터 전송 표시 장치.
  18. 제 17 항에 있어서,
    상기 기억 시스템은:
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 주 메모리(204)의 일부를 참조하는 하나 이상의 분산 집합 목록 요소들(105)을 포함하는 제 7 분산 집합 목록 데이터 구조(233; SGL3); 및
    - 전송될 상기 데이터의 소스와 착신지 중 하나인 상기 디스크 위치(203)를 참조하는 하나 이상의 분산 집합 목록 요소들(105)을 포함하는 제 8 분산 집합 목록 데이터 구조(232; SGL4)를 더 포함하고,
    - 상기 일시적인 헤드 섹터(217) 및/또는 상기 일시적인 테일 섹터(218)의 일시적 메모리를 리사이클하기 위해 상기 제 3 분산 집합 목록 데이터 구조(230; SGL7) 및 상기 제 4 분산 집합 목록 데이터 구조(231; SGL8)에서 역 처리를 수행하고,
    - 상기 역 처리에 기초하여 상기 제 2 분산 집합 목록 데이터 구조(202; SGL2)와 일치하도록 상기 제 7 분산 집합 목록 데이터 구조(233; SGL3)를 발생시키며,
    - 상기 역 처리에 기초하여 상기 제 1 분산 집합 목록 데이터 구조(201; SGL1)와 일치하도록 상기 제 8 분산 집합 목록 데이터 구조(232; SGL4)를 발생시키도록 더 적응되는 것을 특징으로 하는, 데이터 전송 표시 장치.
  19. 제 11 항에 있어서,
    상기 방향 지시(105)는 ATA6에 따른 디스크 어드레스들의 컴퓨터 표현의 비트들 중 단일 잉여 비트로서 구현되는 것을 특징으로 하는, 데이터 전송 표시 장치.
  20. 제 11 항에 있어서,
    상기 기억 시스템은 실시간 기억 시스템인 것을 특징으로 하는, 데이터 전송 표시 장치.
  21. 하나 이상의 처리 유닛들이 제 1 항 내지 제 10 항 중 어느 한 항에 따른 상기 데이터 전송 표시 방법을 실행하도록 하는 명령들을 기억하는 컴퓨터 판독가능 매체.
KR1020057022545A 2003-05-26 2004-05-17 주 메모리와 기억 장치 사이에서 데이터를 전송하는 방법및 장치 KR20060017816A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03101516 2003-05-26
EP03101516.7 2003-05-26

Publications (1)

Publication Number Publication Date
KR20060017816A true KR20060017816A (ko) 2006-02-27

Family

ID=33462213

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057022545A KR20060017816A (ko) 2003-05-26 2004-05-17 주 메모리와 기억 장치 사이에서 데이터를 전송하는 방법및 장치

Country Status (8)

Country Link
US (1) US20070011398A1 (ko)
EP (1) EP1631911B1 (ko)
JP (1) JP2007501473A (ko)
KR (1) KR20060017816A (ko)
CN (1) CN1795442A (ko)
AT (1) ATE354130T1 (ko)
DE (1) DE602004004780T2 (ko)
WO (1) WO2004104846A2 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5226341B2 (ja) 2008-02-27 2013-07-03 富士通株式会社 チャネル装置、情報処理システム、及びデータ転送方法
JP5076967B2 (ja) * 2008-02-27 2012-11-21 富士通株式会社 情報処理システム、情報処理システムの制御方法、および情報処理システムの制御プログラム
US8074113B2 (en) * 2009-03-10 2011-12-06 Emulex Design & Manufacturing Corporation System and method for data protection against power failure during sector remapping
US10095433B1 (en) 2012-10-24 2018-10-09 Western Digital Technologies, Inc. Out-of-order data transfer mechanisms for data storage systems
US10049061B2 (en) 2012-11-12 2018-08-14 International Business Machines Corporation Active memory device gather, scatter, and filter
US9338057B2 (en) * 2013-10-30 2016-05-10 Netapp, Inc. Techniques for searching data associated with devices in a heterogeneous data center
US9990298B2 (en) * 2014-05-12 2018-06-05 Western Digital Technologies, Inc System and method for caching solid state device read request results
US9818170B2 (en) 2014-12-10 2017-11-14 Qualcomm Incorporated Processing unaligned block transfer operations
US10956245B1 (en) * 2017-07-28 2021-03-23 EMC IP Holding Company LLC Storage system with host-directed error scanning of solid-state storage devices
CN109684140B (zh) * 2018-12-11 2022-07-01 广东浪潮大数据研究有限公司 一种慢盘检测方法、装置、设备及计算机可读存储介质
US11061676B2 (en) 2019-04-24 2021-07-13 International Business Machines Corporation Scatter gather using key-value store
JP6997235B2 (ja) * 2020-02-19 2022-01-17 株式会社日立製作所 データ転送システム
CN113031876B (zh) * 2021-03-31 2024-04-09 深信服科技股份有限公司 一种数据处理方法、装置、设备及可读存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4930065A (en) * 1987-08-20 1990-05-29 David Computer Corporation Automatic data channels for a computer system
GB2270780A (en) * 1992-09-21 1994-03-23 Ibm Scatter-gather in data processing systems.
US5802546A (en) * 1995-12-13 1998-09-01 International Business Machines Corp. Status handling for transfer of data blocks between a local side and a host side
US6021462A (en) * 1997-08-29 2000-02-01 Apple Computer, Inc. Methods and apparatus for system memory efficient disk access to a raid system using stripe control information
WO1999034273A2 (en) * 1997-12-30 1999-07-08 Lsi Logic Corporation Automated dual scatter/gather list dma
US7155569B2 (en) * 2001-02-28 2006-12-26 Lsi Logic Corporation Method for raid striped I/O request generation using a shared scatter gather list

Also Published As

Publication number Publication date
EP1631911A2 (en) 2006-03-08
EP1631911B1 (en) 2007-02-14
ATE354130T1 (de) 2007-03-15
WO2004104846A2 (en) 2004-12-02
DE602004004780T2 (de) 2007-12-06
JP2007501473A (ja) 2007-01-25
WO2004104846A3 (en) 2005-01-13
US20070011398A1 (en) 2007-01-11
CN1795442A (zh) 2006-06-28
DE602004004780D1 (de) 2007-03-29

Similar Documents

Publication Publication Date Title
US5276840A (en) Disk caching method for writing data from computer memory including a step of writing a plurality of physically adjacent blocks in a single I/O operation
US8583839B2 (en) Context processing for multiple active write commands in a media controller architecture
JP5274257B2 (ja) フラッシュメモリ・デバイスおよび方法
JP4748610B2 (ja) 取り出されたデータをメモリに直接に書き込むストレージコントローラによるバッファスペースの最適な使用
US7966351B2 (en) Fast and efficient method for deleting very large files from a filesystem
JP7191967B2 (ja) NVMeベースのデータ読み取り方法、装置及びシステム
US5813025A (en) System and method for providing variable sector-format operation to a disk access system
US20090327624A1 (en) Information processing apparatus, controlling method thereof, and program
JP2009134391A (ja) ストリーム処理装置、ストリーム処理方法及びデータ処理システム
EP1631911B1 (en) Method and device for transferring data between a main memory and a storage device
KR20150050457A (ko) 하이브리드 디바이스에서의 고체 상태 메모리 커맨드 큐
CN111143234A (zh) 存储设备、包括这种存储设备的系统及其操作方法
JP4502375B2 (ja) ファイルシステムおよびその制御方法
US20210103445A1 (en) Method and apparatus for preprocessing data transfer commands
US20110022793A1 (en) Systems And Methods For Accessing Hard Disk Drives
US7596639B2 (en) Skip mask table automated context generation
CN111045961B (zh) 数据处理方法及使用所述方法的存储控制器
JPH0628261A (ja) データ転送方法及び装置
US7421536B2 (en) Access control method, disk control unit and storage apparatus
JP2001517832A (ja) ファイルシステムのブロックサブアロケータ
CN117312201B (zh) 一种数据传输方法、装置及加速器设备、主机和存储介质
US11698871B2 (en) Method for PRP/SGL handling for out-of-order NVME controllers
KR102230669B1 (ko) 실시간 고속 데이터 병렬 처리 장치 및 방법
JP4480592B2 (ja) ファイルシステム
JP2013178787A (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