KR20060017470A - 개량 데이터 전송을 위한 제어기 장치 및 방법 - Google Patents

개량 데이터 전송을 위한 제어기 장치 및 방법 Download PDF

Info

Publication number
KR20060017470A
KR20060017470A KR1020050002328A KR20050002328A KR20060017470A KR 20060017470 A KR20060017470 A KR 20060017470A KR 1020050002328 A KR1020050002328 A KR 1020050002328A KR 20050002328 A KR20050002328 A KR 20050002328A KR 20060017470 A KR20060017470 A KR 20060017470A
Authority
KR
South Korea
Prior art keywords
host
data
controller
bus
interface logic
Prior art date
Application number
KR1020050002328A
Other languages
English (en)
Other versions
KR101035225B1 (ko
Inventor
알란제이. 그린버저
Original Assignee
에이저 시스템즈 인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에이저 시스템즈 인크 filed Critical 에이저 시스템즈 인크
Publication of KR20060017470A publication Critical patent/KR20060017470A/ko
Application granted granted Critical
Publication of KR101035225B1 publication Critical patent/KR101035225B1/ko

Links

Images

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
    • 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/0658Controller construction arrangements
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F01MACHINES OR ENGINES IN GENERAL; ENGINE PLANTS IN GENERAL; STEAM ENGINES
    • F01PCOOLING OF MACHINES OR ENGINES IN GENERAL; COOLING OF INTERNAL-COMBUSTION ENGINES
    • F01P11/00Component parts, details, or accessories not provided for in, or of interest apart from, groups F01P1/00 - F01P9/00
    • F01P11/02Liquid-coolant filling, overflow, venting, or draining devices
    • F01P11/0204Filling
    • F01P11/0209Closure caps
    • F01P11/0238Closure caps with overpressure valves or vent valves
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F01MACHINES OR ENGINES IN GENERAL; ENGINE PLANTS IN GENERAL; STEAM ENGINES
    • F01PCOOLING OF MACHINES OR ENGINES IN GENERAL; COOLING OF INTERNAL-COMBUSTION ENGINES
    • F01P11/00Component parts, details, or accessories not provided for in, or of interest apart from, groups F01P1/00 - F01P9/00
    • F01P11/02Liquid-coolant filling, overflow, venting, or draining devices
    • F01P11/029Expansion reservoirs
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of 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
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명의 실시예들은 컴퓨터 시스템내의 데이터 저장 장치들 사이에서 데이터를 전송하기 위한 제어기 장치를 포함한다. 본 발명의 제어기 장치는 다수의 데이터 저장 장치들, 예를들어, 하드 디스크 장치 및 CD-RW 장치에 제어기를 접속하기 위한 장치 인터페이스 로직, 및 PCI 버스 같은 버스를 통하여 호스트 또는 호스트 컴퓨터에 제어기를 접속시키기 위한 호스트 인터페이스 로직을 포함한다. 호스트는 다수의 다른 구성 요소들, 예를 들어 호스트 메모리 및 거기에 접속된 부품들을 포함한다. 제어기는 데이터가 소스 데이터 저장 장치로부터 적어도 하나의 목적지 데이터 저장 장치로 직접적으로 전송되게, 즉 제어기로부터 버스를 통하여 호스트 및/또는 호스트 메모리로 데이터가 전달하지 않고 전송되게 하는 스위칭 회로를 포함한다. 스위칭 회로는 호스트, 호스트 메모리 및 상기 호스트 및 제어기 사이의 버스가 대부분의 데이터 전송 동작들 동안 보다 많은 데이터 전송 의무를 지지 않는 방식으로 소스 장치로부터 목적지 장치로 데이터를 직접적으로 전송하는 적당한 버퍼링 회로 및 멀티플렉싱 회로를 포함한다. 또한, 본 발명의 제어기는 데이터 전송에 요구되는 시간을 감소시키고 데이터 전송 구성요소들이 보다 작은 전력을 소비하도록 한다. 본 발명의 다른 실시예에 따라, 개선된 제어기는 데이터 전송의 보존을 검증하기 위한 데이터 검증 로직을 포함한다.
장치 인터페이스 로직, PCI 버스, 호스트, 스위칭 회로, 멀티플렉싱

Description

개량 데이터 전송을 위한 제어기 장치 및 방법{Controller apparatus and method for improved data transfer}
도 1은 PCI 버스 같은 버스 및 다수의 데이터 저장 장치들 사이에 인터페이스된 종래 ATA 호스트 제어기의 개략도.
도 2는 두개의 외부 장치들 사이의 카피 동작 동안 시간의 함수로서 종래 제어기의 버스 사용 개략도.
도 3은 PCI 버스 같은 버스 및 다수의 데이터 저장 장치들 사이에 인터페이스된 종래 SATA 호스트 제어기의 개략도.
도 4는 본 발명에 따른 SATA 호스트 제어기 같은 제어기의 개략도.
도 5는 도 4의 제어기를 사용하여 두개의 외부 장치들 사이에서 카피 동작 동안의 버스 사용 개략도.
도 6은 본 발명의 다른 실시예에 따른, 내부에 통합된 데이터 검증 로직을 가진 SATA 호스트 제어기 같은 제어기의 개략도.
도 7은 본 발명의 다른 실시예에 따른 PCI 스위치 같은 버스 스위치를 통해 호스트와 인터페이스된 SATA 호스트 제어기들 같은 다수의 제어기들의 개략도.
*도면의 주요 부분에 대한 부호의 설명*
32: 하드 디스크 34: CD-RW
102: 호스트 인터페이스 로직 104: 제 1 장치 인터페이스 로직
106: 제 2 장치 인터페이스 로직 108: 스위칭 회로
발명의 분야
본 발명은 시리얼 ATA(SATA) 호스트 제어기들 같은 제어기들에 관한 것이다. 특히, 본 발명은 호스트 및 제어기 사이의 인터페이스상에 데이터 전송 양을 감소시키기 위하여 호스트 및 호스트 메모리의 데이터 전송 태스크(task)들을 감소시키는 개선된 제어기들에 관한 것이다.
관련 기술의 설명
컴퓨터들 및 컴퓨터 아키텍쳐 세계에서, 데이터 저장 장치들 및 그것의 인터페이스들은 제조 및 동작이 보다 정교해져서 증가된 데이터 전송 및 저장 속도들을 발생시킨다. 데이터가 컴퓨터 하드 디스크들 같은 장치들 및 컴팩트 디스크 판독/기록(CD-RW) 드라이브들 같은 장치들 사이에 전송되는 속도는 호스트 컴퓨터의 메모리의 사이클 시간(클럭 속도)의 증가보다 비례적으로 보다 크게 증가한다. 예를 들어, 집적 드라이브 전자 부품들(IDE)로서 공지된 어드밴스드 테크놀로지 어태치 먼트(Advanced Technology Attachment)(ATA) 같은 디스크 드라이브 인터페이스를 사용하는 데이터 저장 장치들은 현재 초당 적어도 2.4 기가비트들(Gb/s)의 전송 속도를 가진다. 시리얼 ATA(SATA 또는 S-ATA)로서 공지된 표준으로 발전된 ATA 표준은 장치 자체상의 장치 제어기의 통합을 특징으로 한다.
장치들 사이의 데이터 전송은 제 1 장치로부터 호스트 메모리로 데이터를 전송하고, 그 다음 호스트 메모리로부터 제 2 제어 장치로 데이터를 전송하는 것을 포함한다. 데이터 저장 장치들은 IDE 케이블 같은 인터페이스 케이블을 통하여 제어기, 예를 들어, 호스트 제어기와 인터페이싱함으로써 호스트 컴퓨터에 접속한다. 제어기, 예를 들어 ATA 제어기 또는 SATA 제어기는 버스, 예를 들어 PCI 버스 또는 PCI 익스프레스 버스를 통하여 호스트 컴퓨터 및 그 메모리와 인터페이스한다. PCI 버스는 주변 구성요소 상호접속(PCI) 버스 표준에 따라 제조되고 동작되는 인터페이스 버스이다.
상기된 비교적 고속 데이터 전송 속도들에서 데이터 저장 장치들로부터 데이터를 액세스하는 것은 호스트, 호스트 메모리, 및 제어기에 호스트를 접속시키는 버스에 로드를 둔다. 게다가, 다른 장치들 및 그것들의 인터페이스들, 예를 들어 유니버셜 시리얼 버스(USB) 및 파이어와이어 인터페이스들(firewire interfaces)은 호스트 및 호스트 메모리에 접속된 버스상 데이터 전송 시간을 다툰다.
따라서, 호스트, 호스트 메모리 및 호스트와 제어기 사이의 버스에 통상적으로 요구된 태스크들을 오프로딩(offloading) 함으로써 데이터 전송 동작들 동안 호스트, 호스트 메모리 및 호스트와 제어기 사이의 버스의 사용을 감소시키는 개선된 제어기 장치 및 방법을 가지는 것이 바람직할 것이다.
발명의 요약
본 발명은 컴퓨터 시스템내의 데이터 저장 장치들 사이에서 데이터를 전송하기 위한 개선된 제어기 장치로 구현된다. 개선된 제어기 장치는 다수의 데이터 저장 장치들, 예를 들어, 하드 디스크 장치 및 CD-RW 장치, 및 PCI 버스 같은 버스를 통하여 호스트 또는 호스트 컴퓨터에 제어기를 접속하기 위한 호스트 인터페이스 로직에 제어기를 접속하기 위한 장치 인터페이스 로직을 포함한다. 호스트는 다수의 다른 구성요소들, 예를들어 호스트 메모리, 그것에 접속된 것들을 포함한다. 데이터 저장 장치들 사이에서 종래의 데이터 전송시, 소스 장치로부터의 데이터는 제어기에 의해 판독되고 제어기로부터 버스를 통하여 호스트 및/또는 호스트 메모리 장치에 전송된다. 그 다음, 데이터는 메모리 장치 및/또는 호스트로부터 버스를 통하여 제어기로 전송되고, 제어기로부터 목적지 장치에 기록된다. 따라서, 종래 데이터 전송시,데이터는 호스트 및 제어기 사이의 버스를 가로질러 몇번씩 전송되고, 일시적으로 호스트 메모리의 저장 리소스들 및 호스트의 컴퓨팅 리소드들을 일시적으로 차지한다. 본 발명의 실시예들에 따라, 제어기는 소스 데이터 저장 장치로부터 직접적으로 적어도 하나의 목적지 데이터 저장 장치로 데이터가 전송되게 하는, 즉 전송되는 데이터가 제어기로부터 버스를 통하여 호스트 및/또는 호스트 메모리로 전달되지 않게 하는 스위칭 회로를 포함한다. 스위칭 회로는 소스 장치 로부터, 소스 장치 인터페이스 및 소스 장치 인터페이스 로직을 통해, 목적지 장치로, 목적지 장치 인터페이스 및 목적지 장치 인터페이스를 통해 직접적으로 데이터를 전송하기 위하여 적당한 버퍼링 회로 및 멀티플렉싱 회로를 포함한다. 멀티플렉싱 회로는 버퍼링 회로가 데이터 저장 장치로부터 데이터를 수신하거나, 종래 방식으로 호스 버스로부터 데이터를 수신하게 한다. 본 발명의 대안의 실시예들에 따라, 개선된 제어기는 또한 데이터 전송의 통합을 검증하는 데이터 검증 로직을 포함한다. 본 발명의 실시예들에 따라, 상기 개선된 제어기는 대부분의 데이터 전송 동작들 동안 호스트, 호스트 메모리 및 상기 호스트와 제어기 사이의 버스에 많은 데이터 전송 의무를 경감시킨다. 또한, 본 발명의 실시예들에 따라, 데이터 전송에 요구되는 시간은 감소되고 데이터 전송 구성요소들은 전력을 보다 적게 소비한다.
예시적인 실시예들의 상세한 설명
다음 상세한 설명에서 유사한 참조 번호들은 도면의 상세한 설명을 통해 본 발명의 이해를 강화시키기 위하여 유사한 구성요소를 가리킨다. 또한, 비록 특정 피쳐들, 구성들 및 장치들이 하기에 논의되었지만, 이것은 단지 도시를 위한 것임을 이해하여야 한다. 당업자는 다른 단계들, 구성들 및 장치들이 본 발명의 사상 및 범위로부터 벗어나지 않고 유용하다는 것을 인식할 것이다.
도 1을 참조하여, 호스트 제어기(HC) 같은 종래 대량 저장 제어기(10)의 간 략화된 개략도가 도시된다. 통상적으로, 호스트 버스 어댑터(HBA)로서 공지된 제어기(10)는 마더보드상 PCI 슬롯에 플러그된 컴퓨터 회로 보드상에 물리적으로 배치된다. 선택적으로, 제어기(10) 또는 제어기(10)의 일부는 집적 회로(IC)로서 제조되거나, 제어기(10)는 (내부적으로) PCI 버스를 포함하는 컴퓨터 칩상에 집적된다.
제어기(10)는 버스 인터페이스 또는 버스(14)를 통하여 호스트 또는 호스트 컴퓨터(12)에 접속한다. 한가지 형태의 버스(14)는 주변 구성요소 상호접속(PCI) 버스 표준에 따른 사양들을 가진 버스인 PCI 버스이다. 통상적으로, 버스(14)는 적당한 인터페이스 로직 또는 접속부의 각각의 단부에 배치된 제어 로직을 통하여 호스트 컴퓨터(12)에 접속한다. 독립 동작체로서 식별될때 상기 로직은 입력 제어기 또는 인터페이스 제어기라 한다. 그러나, 이런 논의에서, 상기 로직은 제어기(10)와의 혼란을 피하기 위하여 인터페이스 로직 또는 제어 로직이라 불릴 것이다.
예를 들어, 버스(14)는 호스트 컴퓨터(12)의 일부인 제 1 인터페이스 로직(16), 및 제어기(10)의 일부인 호스트 인터페이스 로직(18) 사이에 접속된다. 각각의 인터페이스 로직은 호스트 컴퓨터(12) 및 제어기(10)가 버스(14)를 통하여 서로 적당하게 통신하도록 하는 적당한 제어 로직을 포함한다. 또한, 통상적으로 호스트 컴퓨터(12)내에 포함된 제 1 인터페이스 로직(16)은 호스트 컴퓨터(12)가 다른 시스템 구성요소들, 예를들어 호스트 메모리 장치(22)와 적당한 호스트 메모리 버스(24) 및 메모리 인터페이스 로직(26)을 통해, 또는 다른 적당한 인터페이스 장치를 통해 인터페이스하도록 하는 적당한 제어 로직을 포함한다.
다수의 데이터 저장 장치들은 제어기(10)에 접속된다. 예를들어, 어드밴스드 테크놀로지 어태치먼트(ATA)로서 공지된, 또한 집적 드라이브 전자부품들(IDE)로서 공지된 디스크 드라이브 인터페이스 표준을 사용하는 판독 가능/기록 가능 하드 디스크(HD)(32) 및 판독가능/기록 가능 컴팩트 디스크(CD-RW)(34)는 데이지 체인 IDE 케이블 및 적당한 장치 인터페이스 로직(38) 같은 인터페이스(36)를 통하여 제어기(10)에 접속된다. 다른 적당한 장치들이 데이터 저장 장치들을 제어기(10)에 접속하기 위하여 제공되는 것이 이해된다. 일반적으로, 인터페이스(36)는 데이터 저장 장치들(32, 34)의 어느 하나로부터 데이터를 호스트 메모리(22)(호스트 12를 통해)에 전송하게 하거나 호스트 메모리(22)로부터 데이터 저장 장치들(32, 34)의 어느 하나에 데이터를 전송하게 한다.
제 1 장치로부터 제 2 장치로 종래의 데이터 전송 동작에서, 데이터 세트 또는 데이터 파일은 제 1 또는 제 2 소스 장치 예를들어 하드 드라이브(32)로부터 제어기(10) 및 호스트(12)를 통해 호스트 메모리(22)로 판독된다. 그 다음, 데이터 세트는 호스트 메모리(22)로부터 제 2 또는 목적지 장치, 예를들어 CD-RW 드라이브(34)로, 다시 호스트(12) 및 제어기(10)를 통해 기록된다. 약간 상세한 투시도로부터, 데이터 전송 동작은 다수의 데이터 전송들로 나뉘어지고, 각각의 데이터 전송은 통상적으로 고작 64 킬로바이트(Kbytes)의 전송이다. 일반적으로, 비트 레벨에서, 데이터 전송들은 다수의 물리적 영역 디스크립터들(PRDs)을 포함하는, 물리적 영역 디스크립터 테이블들의 사용을 포함한다.
PRDs는 일단 호스트가 장치들중 하나에 의해 카피 동작 요구를 통지받으면 호스트에 의해 생성된다. 통상적으로, 각각의 PRD는 8개의 바이트들: 4개의 각각의 바이트들의 두개의 디워드(Dword)을 포함한다. 각각의 PRD의 제 2 디워드에서, 제 1 두개의 바이트들은 비축된다. 그러나, 이런 비축된 필드에서 최상위 비트는 예를들어 테이블의 단부에 도달되었는지를 논리 1로 표현한다. 각각의 PRD에서 제 2 디워드의 제 2 두개의 바이트들은 PRD 바이트 카운트 필드를 포함한다. 바이트 카운트 필드는 얼마나 많은 바이트들이 메모리 영역 물리적 베이스 어드레스에서 시작하여 전송되는지를 가리킨다. 만약 바이트 카운트가 영이면, 64 바이트들은 전송된다. 예를들어 하드 디스크로부터 CD-RW로 600 메가바이트(Mbyte)의 카피 동작 동안, 카피 동작은 다중 PRD 테이블들을 사용하여 대략 10,000 PRD로 분할되거나, 동일한 PRD 테이블은 새로운 콘텐츠로 재생된다.
데이터 전송이 에러들없이 이루어지는 것을 검증하기 위하여, 전송된 데이터는 통상적으로 다시 판독된다. 하나의 종래 방법에서, 본래 데이터는 소스 장치로부터(예를들어, 하드 디스크 32) 호스트(12)로 판독되고, 두개는 두개의 데이터 세트들 사이의 차이를 식별하는 종래 프로그램을 사용하여 호스트(12)에 의해 비교된다. 다른 종래 데이터 검증 방법에서, 호스트(12)는 카피된 데이터의 디지털 서명 또는 지문을 얻고 그것을 소스 데이터 세트로부터의 미리 계산된 디지털 서명과 비교한다. 이런 방식으로, 카피된 데이터 세트만이 목적지 장치로부터 호스트(12)로 다시 판독된다. 예를들어, MD5 알고리듬 같은 알고리듬은 소스 데이터 세트가 카피되기 전에 소스 데이터 세트의 "메시지 요약"으로서 공지된 디지털 서명을 미리 계산한다. 카피 동작 후, 카피된 데이터 세트는 목적지 장치로부터 통상적으로 호 스트(12)내에 배치된 호스트(12) 및 MD5 알고리듬으로 다시 판독되고, 카피된 데이터 세트의 디지털 서명을 계산하고 소스 데이터 세트의 디지털 서명과 카피된 데이터 세트의 디지털 서명을 비교한다.
그러나, 어느 방법에서, 적어도 하나의 데이터 세트는 버스(14)를 통하여 호스트 메모리(22)로 다시 판독되어야 하고, 여기서 호스트(12)는 데이터에 액세스하고 데이터 검증 처리들을 수행한다. 따라서, 종래 데이터 전송 동작 및 검증을 위하여, 완전한 데이터 세트는 3개 또는 4 배로 전송되고, 각각의 데이터 세트 전송들은 버스(14) 같은 계산 리소스들, 호스트 메모리(22) 및 호스트(12)를 차지한다.
도 2를 참조하여, 도 1과 게속하여, 두개의 외부 장치들 사이의 데이터 전송 동작 동안 시간의 함수로서 종래 호스트 제어기(예를들어, 제어기 10) 및 호스트 컴퓨터(예를들어, 호스트 12) 사이에 접속된 버스(14)의 사용의 간략화된 다이어그램이 도시된다. 예를 들어, 하드 디스크(32) 및 CD-RW(34) 사이의 데이터 전송을 위하여, 호스트(12)는 소스 장치, 예를들어 하드 디스크(32)로부터 데이터 전송 요구를 수신한다. 데이터 전송 요구의 수신후 호스트(12)는 예를들어 상기된 바와같이 PRD의 생성을 포함하는 버스(14)를 통한 데이터 판독 전송을 위한 초기 셋업(42로서 도시됨)을 수행한다. 도시를 위하여, 데이터 판독 동작을 위한 단지 두개의 PRD 테이블들 및 데이터 기록 동작을 위한 두개의 PRD 테이블들은 도시되고 여기에 기술된다.
초기 셋업(42) 후, 제어기(10)는 데이터가 판독되는 동안 바이트 카운트 및 메모리 어드레스(여러 정보중)에 대한 제 1 PRD 테이블(일반적으로 44로서 도시됨) 에 액세스한다. 데이터 세트로부터 데이터의 제 1 버퍼 부분(46)은 하드 디스크(32)(즉, 소스 장치)로부터 제어기(10)로 인터페이스(36)를 통하여 판독되고 그 다음 버스(14), 호스트(12) 및 호스트 메모리 버스(24)를 통하여 호스트 메모리(22)로 판독된다. 버스(14)에 데이터 액세스의 제 1 버퍼 부분(46) 판독 동작은 화살표(48)에 의해 일반적으로 도시된다.
이후 제어기(10)는 다음의 PRD 테이블(일반적으로 52로 도시됨)에 액세스하고 데이터 세트의 다음 버퍼 부분 예를들어 제 2 버퍼 부분(54)은 하드 디스크(32)로부터 제어기(10)로 판독되고, 버스(14), 호스트(12), 호스트 메모리 버스(24)를 통하여 메모리(22)로 판독된다. 버스(14)를 가로질러 데이터의 제 2 버퍼 부분(54) 데이터 판독은 일반적으로 화살표 56으로 표시된다. 상기된 방식으로, 제어기(10)는 추후 PRD 테이블들(도시되지 않음)에 액세스하고 추후 데이터는 데이터 세트의 모든 데이터가 하드 디스크(32)로부터 호스트 메모리(22)로 판독될때까지 수행된다.
데이터 세트가 하드 디스크(32)로부터 호스트 메모리(22)로 판독된 후, 제어기(10)는 버스(14)를 통해 인터럽트(58로서 도시됨)를 내린다. 그 다음, 호스트(12)는 PRD 테이블들의 생성을 포함하는 데이터 기록 동작 동안 셋업(62로서 도시됨)을 수행한다. 제어기(10)는 제 1 기록 PRD 테이블들(일반적으로 64로서 도시됨)에 액세스하고 호스트 메모리(22)에 이전에 판독된 데이터(66으로서 도시됨)의 제 1 버퍼 부분은 호스트 메모리(22)로부터 호스트 메모리 버스(24), 호스트(12) 및 버스(14)를 통하여 제어기(10)로 기록되고, 그 다음 장치 인터페이스(36)를 통 하여 목적지 장치(예를들어, CD-RW 34)에 기록된다. 데이터 세트의 제 1 버퍼 부분(66)의 데이터 기록 동작은 화살표(68)에 의해 일반적으로 도시된다.
다음, 제어기(10)는 다음 PRD 테이블(일반적으로 72로서 도시됨)에 액세스하고 이전에 하드 디스크(32)로부터 호스트 메모리(22)로 이전에 판독된 데이터 세트의 다음 버퍼 부분(74로서 도시됨)은 호스트 메모리(22)로부터 제어기(10)(호스트 메모리 버스 24, 호스트 12 및 버스 14를 통해)로 기록되고 그 다음 장치 인터페이스(36)를 통하여 목적지 장치(예를들어, CD-RW 34)로 기록된다. 상기 데이터 기록 동작은 일반적으로 화살표 76에 의해 도시된다. 데이터 세트에서의 모든 데이터가 목적지 장치에 기록된 후, 제어기(10)는 호스트(12)에 인터럽트(78로서 도시됨)를 내린다.
도 3을 지금 참조하여, 예를들어 ATA 표준으로부터 발전된 표준인 시리얼 어드밴스드 테크놀로지 어태치먼트(SATA 또는 S-ATA) 디스크 드라이브 인터페이스 표준에 따라 제조되고 동작하는 데이터 저장 장치들과 인터페이스하는 다른 종래 제어기(80), 예를들어 호스트 제어기의 간략적인 개략도가 도시된다. SATA 호스트 제어기인 제어기(80)는 호스트(12)(버스 14를 통해) 및 하드 디스크(32) 및 CD-RW(34) 같은 다수의 데이터 저장 장치들 사이에서 인터페이스한다. 제어기(80)는 제어기(80)가 버스(14)에 인터페이스하도록 하는 인터페이스 로직 또는 제어 로직(82)을 포함한다.
제어기(80)는 또한 도 1에 도시된 데이지 체인 구성을 통하기 보다 제어기(80)와 직접적으로 각각의 데이터 저장 장치가 인터페이스하도록 하는 독립된 장치 인터페이스 로직 또는 제어 로직을 포함한다. 즉, 제어기(80)는 예를들어 하드 디스크(32)가 제 1 인터페이스(85)를 통하여 제어기(80)에 직접적으로 접속되도록 하는 제 1 장치 인터페이스 로직(84)을 포함한다. 또한, 제어기(80)는 제 2 장치, 예를들어 CD-RW(34)가 제 2 인터페이스(87)를 통하여 제어기(80)에 직접적으로 접속되게 하는 제 2 장치 인터페이스 로직(86)을 포함한다. 각각의 제 1 및 제 2 인터페이스들은 예를 들어 IDE 케이블 또는 다른 적당한 인터페이스이다.
제어기(80)는 한쌍의 메모리 버퍼들(92, 93)를 포함한다. 메모리 버퍼들은 예를 들어 전송되는 데이터를 일시적으로 저장함으로서 제어기(80)를 통해 데이터 전송을 부드럽게 하는 선입선출 메모리들(FIFO)을 포함한다. 예를들어, 제 1 메모리 버퍼(92)는 호스트 인터페이스 로직(82) 및 제 1 장치 인터페이스 로직(84) 사이에 접속된 제 1 FIFO(95)를 포함하여 하드 디스크(32)로부터 호스트(12)로 데이터 전송을 부드럽게 한다. 또한, 제 1 메모리 버퍼(92)는 호스트 메모리(22)로부터 하드 디스크(32)로 기록되는 데이터를 호스트(12)로부터 하드 디스크(32)로 부드럽게 전송하도록 호스트 인터페이스 로직(82) 및 제 1 인터페이스 로직(84) 사이에 접속된 제 2 FIFO(96)를 포함한다. 유사하게, 제 2 메모리 버퍼(93)는 호스트(12) 및 CD-RW(34) 사이에서 데이터 전송을 부드럽게 하기 위하여 호스트 인터페이스 로직(82) 및 제 2 장치 인터페이스 로직(86) 사이에 접속된 제 3 FIFO(97) 및 제 4 FIFO(98)를 포함한다.
또한, 통상적으로, 제어기(80)는 임의의 레벨을 넘어로 양쪽 버퍼들을 데이터로 충전하도록 하는 흐름 제어 하드웨어(도시되지 않음)를 포함한다. 즉, 흐름 제어 하드웨어는 메모리 버퍼들의 목적지 측면이 버퍼에 저장된 몇몇 데이터를 비울때까지 메모리 버퍼들의 소스 측면들이 부가적인 데이터를 전송하는 것을 방지한다. 이런 방식으로, 전송되는 데이터는 손실되지 않는다.
도 3에 도시된 종래 장치에서, 장치들(32, 34) 모두는 동시에 제어기(80)로 또는 제어기로부터 데이터를 전송할 수 있다. 그러나, 제어기(80)는 소스 장치로부터 호스트 메모리(22)로 데이터 전송을 위한 PRD 테이블들을 셋업하고 호스트 메모리(22)로부터 목적지 장치로 데이터 전송을 위한 PRD 테이블들을 셋업하는 단계를 포함하는 도 1에 도시된 장치에서 제어기(10)와 같은 데이터 전송 단계들을 여전히 수행하여야 한다.
호스트 메모리(22)에 또는 호스트 메모리로부터 데이터를 전송하는 것과 관련하여, 제어기(80)는 직접적인 메모리 액세스(DMA) 전송을 지원하기 위한 하드웨어를 포함한다. DMA 전송에서, 데이터는 호스트(12)의 간섭 없이 호스트 메모리(22)와 직접 상호 작용한다. 예를 들어, 소스 장치로부터 전송된 데이터는 제어기(80)에 의해 판독되고 그 다음 호스트 인터페이스 로직(16), 호스트 메모리 버스(24) 및 메모리 인터페이스 로직(26)을 통하여 제어기(80)로부터 호스트 메모리(22)로 전달한다. 유사하게 호스트 메모리(22)로부터 전송되는 데이터는 메모리 인터페이스 로직(26), 호스트 메모리 버스(24) 및 호스트 인터페이스 로직(16)을 통하여 제어기(80)로 전달한다. 그 다음 데이터는 제어기(80)로부터 목적지 장치로 기록된다.
동작 관점에서, DMA 전송은 제어기(80) 및 호스트(12) 사이에서 버스 중재자 (도시되지 않음)로부터 버스(14)의 버스 마스터로 승인을 요구하고 얻는 제어기(80)를 포함한다. 통상적으로, 버스 중재기는 제어기(80)의 일부가 아니라, 예를들어 버스 중재기는 호스트(12)의 일부이다. 일단 버스 중재기가 버스(14)의 버스 마스터이도록 제어기(80)를 승인하면, 제어기(80)는 호스트 메모리(22)와 직접적으로 상호 작용한다. 즉 호스트(12)의 간섭 없이 데이터 저장 장치들 사이에서 데이터의 전송을 관리하도록 상호 작용한다.
상기 전술된 바와 같이, 많은 종래 데이터 전송 동작들은 호스트 및 제어기 사이의 버스를 가로질러 몇몇 데이터를 전송하는 것을 포함하고, 또한 호스트 및 호스트 메모리를 주기적으로 차지하는 것을 포함한다. 이들 계산의 차지는 이들 리소들을 이용하는 경쟁 장치들 및 그들의 인터페이스들, 예를 들어 유니버셜 시리얼 버스(USB) 및 파이어와이어 인터페이스들에 악영향을 미친다.
본 발명의 실시예들에 따라, 제어기는 대부분의 데이터 전송 동작들 동안 버스, 호스트 및 호스트 메모리에 많은 데이터 전송 의무를 경감시킬 수 있는 개선된 구조를 포함한다. 또한, 데이터 전송에 요구된 시간은 감소되고 데이터 전송 구성요소들은 전력을 보다 덜 소비한다. 본 발명의 실시예들에 따라, 개선된 제어기는 소스 장치로부터 직접적으로 목적지 장치로 데이터를 지향시키고, 제어기 및 호스트(및 호스트 메모리) 사이의 버스를 바이패싱시킨다. 선택적으로, 개선된 제어기는 호스트, 호스트 메모리 및 상기 제어기와 호스트 사이의 버스 같은 게산 리소드들을 차지하지 않고 데이터 검증 동작들을 수행한다.
도 4를 참조하여, 본 발명의 실시예들에 따른 제어기(100)의 간략화된 개략 도가 도시된다. 본 발명의 실시예들에 따라, 제어기(10) 또는 제어기(100)의 일부는 마더보드상 PCI 슬롯에 플러그된 컴퓨터 회로 보드상에 물리적으로 배치된다. 본 발명의 다른 실시예들에 따라, 제어기(10) 또는 제어기(10)의 일부는 집적 회로로서 제조된다.
제어기(100)는 호스트 인터페이스 로직 또는 제어기 로직(102), 제 1 장치 인터페이스 로직(104), 제 2 인터페이스 로직(106) 및 스위칭 회로(108)를 포함한다. 호스트 인터페이스 로직(102)은 제어기(100)가 버스(14), 예를들어 PCI 버스를 통하여 호스트(12)(도 1 및 도 3에 도시됨)와 인터페이스하도록 한다. 상기된 바와 같이, 호스트는 통상적으로 호스트 메모리 장치(22)(도 1 및 도 3에 도시됨)를 포함하는 다른 시스템 구성요소들과 인터페이스한다.
제 1 장치 인터페이스 로직(104)은 제어기(100)가 제 1 장치, 예를들어 하드 디스크(32)와 IDE 케이블 또는 다른 적당한 인터페이스인 인터페이스(85)를 통하여 인터페이스하도록 한다. 제 2 장치 인터페이스 로직(106)은 제어기(100)가 제 2 장치, 예를 들어 CD-RW(34)와 IDE 케이블 또는 다른 적당한 인터페이스인 인터페이스(87)를 통하여 인터페이스하도록 한다.
스위칭 회로(108)는 호스트 인터페이스 로직(102) 및 장치 인터페이스 로직, 즉 제 1 장치 인터페이스 로직(104) 및 제 2 장치 인터페이스 로직(106) 사이에 접속된다. 이하에 더 상세히 논의될 바와같이, 본 발명의 실시예들에 따라, 스위칭 회로(108)는 호스트, 호스트 메모리, 및 상기 호스트와 제어기(100) 사이의 버스(14)의 계산 리소스들을 불필요하게 포함하지 않고 데이터 저장 장치들 사이의 데 이터 전송이 제어기(100)내에서 유지되도록 한다.
스위칭 회로(108)의 제 1 부분은 호스트 인터페이스 로직(102) 및 제 1 장치 인터페이스 로직(104) 사이에 접속된 제 1 메모리 버퍼(112) 및 제 1 멀티플렉싱 회로(114)를 포함한다. 스위칭 회로(108)의 다른 부분은 호스트 인터페이스 로직(102) 및 제 2 장치 인터페이스 로직(106) 사이에 접속된 제 2 메모리 버퍼(116) 및 제 2 멀티플렉싱 회로(118)를 포함한다.
제 1 메모리 버퍼(112)는 제 1 장치 인터페이스 로직(104) 및 인터페이스(85)를 통하여 제 1 장치(예를 들어, 하드 디스크(32))에 및 상기 제 1 장치로부터 전송되는 데이터를 일시적으로 저장한다. 제 1 메모리 버퍼(112)는 제 1 장치(32)로부터 판독된 데이터를 일시적으로 저장하는 적어도 하나의 버퍼 장치(예를 들어, 제 1 FIFO 메모리(122)), 및 제 1 장치(32)에 기록될 데이터를 일시적으로 저장하는 적어도 하나의 버퍼 장치(예를 들어, 제 2 FIFO 메모리(124))를 포함한다.
유사하게, 제 2 메모리 버퍼(116)는 제 2 장치 인터페이스 로직(106) 및 인터페이스(87)를 통하여, 제 2 장치(예를 들어, CD-RW(34))에 전송되고 상기 제 2 장치로부터 전송되는 데이터를 일시적으로 저장한다. 제 2 메모리 버퍼(116)는 제 2 장치(34)로부터 판독되는 데이터를 일시적으로 저장하는 적어도 하나의 버퍼 장치(예를 들어, 제 3 FIFO 메모리(126)), 및 제 2 장치(34)에 기록될 데이터를 일시적으로 저장하는 적어도 하나의 버퍼 장치(예를들어, 제 4 FIFO 메모리(128))를 포함한다.
제 1 멀티플렉싱 회로(114)는 호스트 인터페이스 로직(102), 또는 제 2 장치 를 통해, 제 3 FIFO 메모리(126)를 통해 버스(14)로부터 데이터를 제 1 장치(즉, 제 2 FIFO 메모리(124))에 기록될 데이터를 저장하는 메모리 장치가 수신하도록 하는 회로를 포함한다. 유사하게, 제 2 멀티플렉싱 회로(118)는 호스트 인터페이스 로직(102), 또는 제 1 장치(32), 제 1 FIFO 메모리(122)를 통하여 버스(14)로부터 데이터를 제 2 장치(즉, 제 4 FIFO 메모리 128)에 기록될 데이터를 저장하는 메모리 장치가 수신하도록 하는 회로를 포함한다.
스위칭 회로(108)는 소스 장치로부터 판독된 데이터가 예를들어 종래 방식으로 버스(14)를 통하여 호스트(및 호스트 메모리)에 전송되는지, 각각의 메모리 버퍼를 통하여 목적지 장치에 직접 전송되는지를 제 1 및 제 2 메모리 버퍼들(112, 116) 및 제 1 및 제 2 멀티플렉싱 회로(114, 118)에 알리기 위한 적당한 제어 회로(도시되지 않음)를 포함한다. 스위칭 회로(108)내의 제어 회로는 소스 장치의 메모리 버퍼로부터 그리고 호스트로부터 데이터를 수신하기 위하여 제 1 및 제 2 멀티플렉싱 회로(114, 118)의 능력을 인에이블하거나 디스에이블한다.
본 발명의 실시예들에 따라, 호스트는 데이터가 소스 장치로부터 목적지 장치로 직접적으로 전송되는지 호스트 및 호스트 메모리를 통하여 목적지 장치로 전송되는지를 스위칭 회로의 제어 회로에게 알린다. 예를들어, 호스트는 전송용 데이터가 소스 장치로부터 목적지 장치로 직접적으로 기록되는 것을 가리키기 위하여 스위칭 회로의 레지스터 제어를 세팅한다. 적당한 제어 비트들은 호스트로부터 데이터를 수신하기 위한 멀티플렉싱 회로의 능력을 디스에이블하고 소스 장치의 메모리 버퍼로부터 데이터를 수신하기 위한 멀티플렉싱 회로의 능력을 인에이블하도록 멀티플렉싱 회로에서 설정된다. 그렇지 않으면, 만약 레지스터 제어 비트가 세팅되지 않으면, 데이터는 소스 장치로부터 호스트 메모리로 호스트 메모리로부터 목적지 장치로 종래 방식으로 전송된다.
도 4와 연속된 도 5를 참조하여, 소스 장치(예를 들어, 하드 디스크(32)) 및 목적지 장치(예를 들어, CD-RW(34)) 사이의 데이터 전송 동작 동안 시간의 함수로서 본 발명의 실시예들에 따른 호스트 및 제어기(100) 사이에 접속된 버스(14)의 사용을 간략하게 도시한다. 처음에, 소스 장치로부터 데이터 전송 요구를 수신한후, 초기 셋업(일반적으로 132로서 도시됨)을 수행한다. 상기 셋업은 적당한 PRD 테이블들의 생성을 포함한다.
예를 들어, 본 발명의 실시예들에 따라, 호스트는 소스 장치로부터 전송될 데이터를 판독하기 위한 하나 이상의 PRD 테이블들 및 목적지 장치에 전송될 데이터를 기록하기 위한 하나 이상의 PRD 테이블들을 동시에 셋업한다. 또한, 상기된 바와같이 호스트는 전송 데이터가 소스 장치로부터 적당한 판독 버퍼를 통하여 적당한 멀티플렉싱 회로의 입력으로, 적당한 기록 버퍼를 통하여, 목적지 장치로 직접적으로 전송되도록 하는 스위칭 회로(108)에게 알리도록 적당한 레지스터 비트를 세팅한다. 이런 방식으로, 스위칭 회로(108)는 소스 장치로부터 판독되는 데이터가 버스(14)(및 호스트 인터페이스 로직(102))를 바이패스하여 대신 목적지 장치(예를 들어, 멀티플렉싱 회로(118))의 기록 경로에서 멀티플렉싱 회로의 입력으로 지향되게 할 것이다. 또한, 목적지 장치의 기록 경로에서 멀티플렉싱 회로는 버스(14)보다 소스 장치(예를 들어, 제 1 FIFO(122))의 판독 경로의 메모리 버퍼로부터 데이터를 수용하는 것을 알 것이다.
일단 호스트가 초기 셋업(132)을 수행하고 적당한 PRD 테이블들을 생성하면, 제어기(100)는 바이트 카운트에 대한 제 1 PRD 테이블(일반적으로 134로서 도시됨)을 액세스한다. 본 발명의 실시예들에 따라, 전송될 데이터가 호스트 메모리의 위치에 기록되지 않기 때문에, 제어기(100)가 메모리 어드레스를 알 필요가 없다. PRD 테이블이 호스트(12) 또는 호스트 메모리(22)(도 1 및 3 참조)에 배치되기 때문에, 제어기(100)는 버스(14)를 통하여 PRD 테이블들을 액세스한다. 일단 제어기(100)가 바이트 카운트에 대한 제 1 PRD 테이블을 액세스하면, 전송될 데이터의 제 1 부분(일반적으로 136으로 도시됨)은 소스 장치(예를들어, 하드 디스크 32)로부터 인터페이스(85) 및 인터페이스 로직(104)을 통하여 제어기(100)로 판독된다.
데이터의 제 1 부분(136)은 소스 장치(이 실시예에서, 제 1 FIFO 메모리 122)의 적당한 메모리 버퍼에 일시적으로 저장된다. 이것으로부터, 제어기(100)는 통상적으로 제 1 기록 PRD 테이블을 액세스한다. 그러나, 제어기(100)는 제 1 판독 PRD 테이블내에 있을때 제 1 기록 PRD 테이블과 동일한 바이트 카운트만을 필요로 한다. 그러므로, 본 발명의 실시예들에 따라, 제어기(100)는 바이트 카운트에 대해 다시 제 1 판독 PRD 테이블을 액세스할 수 있다. 따라서, 제 1 기록 PRD 테이블은 생성되지 않는다. 이런 방식으로, 생성되는 PRD 테이블들(즉 기록 PRD 테이블들)의 수는 감소되고, 제어기(100)에 의해 요구된 전체 처리를 간략화한다. 일단 제어기(100)가 제 1 판독 PRD 테이블(일반적으로 138로서 도시됨)로부터 다시 바이트 카운트를 액세스하면, 데이터의 제 1 부분(136)은 적당한 멀티플렉싱 회로( 이 실시예에서, 제 2 멀티플렉싱 회로 118)를 통하여 목적지 장치(이 실시예에서, 제 4 FIFO 메모리 128)의 적당한 메모리 버퍼에 직접 전송된다.
상기된 바와 같이, 호스트는 데이터의 제 1 부분(136)이 호스트 인터페이스 로직(102)을 바이패스하고 소스 장치 메모리로 버퍼로부터 목적지 장치 멀티플렉싱 회로를 통하여 목적지 장치 메모리 버퍼로 전송되는 것을 제어기(100)가 알게하는 적당한 제어 레지스터 비트들을 설정한다. 또한, 목적지 장치 멀티플렉싱 회로는 데이터가 소스 장치 메모리 버퍼로부터 수신되고 호스트 인터페이스 로직(102)로부터는 수신되지 않는 것을 제어 레지스터 비트들의 세팅으로부터 안다. 목적지 장치 멀티플렉싱 회로로부터, 데이터의 제 1 부분(136)은 제 2 장치 인터페이스 로직(106) 및 인터페이스(87)를 통하여 목적지 장치(예를들어, CD-RW 34)에 기록된다. 목적지 장치에 데이터의 제 1 부분(136)의 기록 동작은 일반적으로 화살표 142에 의해 도시된다.
그 다음 제어기(100)는 바이트 카운트에 대한 다음 판독 PRD 테이블(일반적으로 144로서 도시됨)을 액세스한다. 일단 제어기(100)가 바이트 카운트를 얻으면, 전송될 데이터의 제 2 또는 다음 부분(일반적으로 146으로서 도시됨)은 하드 디스크(32)(즉, 소스 장치)로부터 인터페이스(85) 및 장치 인터페이스 로직(104)을 통하여 제어기(100)로 판독된다. 다시, 데이터의 제 2 부분(146)은 제 1 FIFO 메모리(122)에 일시적으로 저장된다. 그다음, 제어기(100)는 다음 기록 PRD 테이블(일반적으로 148로 도시됨)을 액세스하고, 데이터의 제 2 부분(146)은 제 1 FIFO 메모리(122)로부터 제 2 멀티플렉싱 회로(118)를 통하여 제 4 FIFO 메모리(128)로 직 접적으로 전송된다. 그 다음, 데이터의 제 2 부분(146)은 제 2 장치 인터페이스 로직(106) 및 인터페이스(87)를 통하여 CD-RW(34)(목적지 장치)에 기록된다. CD-RW(34)에 제 2 부분(146)의 기록 동작은 일반적으로 화살표 152에 의해 도시된다.
유사하게, 제어기(100)는 추후 판독 PRD 테이블들 및 기록 PRD 테이블들(도시되지 않음)을 액세스하고 추후 데이터 판독들 및 데이터 기록들(도시되지 않음)은 데이터 세트의 모든 데이터가 하드 디스크(32)로부터 CD-RW(34)로 판독될때까지 수행된다. 전체 데이터 세트가 하드 디스크(32)로부터 판독되고 CD-RW(34)에 기록된후, 제어기(100)는 버스(14)를 통해 인터럽트(154로서 도시됨)를 내린다.
도 5에 도시된 바와 같이, 소스 장치(예를들어, 하드 디스크 32)로부터 목적지 장치(예를들어, CD-RW 34)로 데이터의 전송 동안, 호스트 및 제어기(100) 사이의 버스(14)는 제어기(100)에 의해 PRD 테이블들을 액세스하기 위한 초기 전송 요구만을 위해 사용되고, 인터럽트(154)는 제어기(100)에 의해 내려진다. 상기 버스는 예를들어 도 2에 도시된 바와같이 장치들 사이에서 종래 데이터 전송들 동안 버스 사용과 호의적으로 비교된다.
종래 데이터 전송 동작들과 관련하여 상기된 바와 같이, 일단 데이터가 소스 장치로부터 목적지 장치로 전송되면, 데이터 전송 보존은 몇가지 형태의 데이터 검증 동작의 사용을 통해 검증된다. 예를들어, 카피된 데이터 세트의 메시지 다이제스트 같은 디지털 서명이 취해지고 본래 데이터 세트의 미리 계산된 (통상적으로) 디지털 서명과 비교된다. 통상적으로, 데이터 검증 명령 세트 또는 알고리듬(예를 들어, MD5 알고리듬)은 일반적으로 호스트 메모리에 잔류하고, 호스트는 카피된 데 이터 세트의 디지털 서명을 얻기 위하여 데이터 검증 처리를 수행하고 본래 데이터 세트의 미리 계산된 서명과 디지털 서명을 비교한다. 그러나, 상기된 바와 같이, 이런 방식의 검증은 제어기로부터 호스트로(그리고 때때로 호스트 메모리로) 버스트를 통한 전체 데이터의 적어도 한번 완전한 전송 외에, 데이터 검증을 수행하기 위하여 호스트에 요구된 계산 리소스들을 포함한다.
그러므로, 본 발명의 다른 실시예들에 따라, 제어기(100)는 데이터 검증 회로를 포함하도록 구성된다. 데이터 검증 회로를 포함함으로써, 제어기(100)는 호스트, 호스트 메모리 및 호스트 및 제어기(100) 사이의 버스(14)에게 보다 많은 의무들을 경감시킨다. 즉 데이터 전송 동작들의 데이터 검증 부분에 관련된 데이터 전송 및 처리 의무들을 경감시킨다.
도 6을 참조하여, 본 발명의 다른 실시예들에 따른 제어기(100)의 간략화된 개략도가 도시된다. 다른 실시예에서 제어기(100)의 구성은 도 4에 도시된 제어기(100)의 구성과 유사하지만 다른 실시예에서, 제어기는 또한 적당한 데이터 검증 로직 또는 회로(156으로서 도시됨)를 포함한다. 본 발명의 실시예들에 따라, 데이터 검증 회로(156)는 임의의 적당한 데이터 검증 동작을 수행하기 위한 하드웨어 및/또는 소프트웨어, 예를들어 종래 MD2 또는 MD5 알고리듬들 같은 임의의 적당한 메시지 다이제스트 알고리듬, 또는 종래 CRC-32 또는 CRC-64 회로 같은 임의의 적당한 주기적인 리던던시 검사(CRC) 회로를 포함한다.
데이터 검증 기술에 따라, 회로 실행과 연관된 크기 및 복잡성은 데이터 검증 동작이 제어기(100)의 일부로서 포함되도록 가장 잘 맞추어지는 것을 지시한다. 예를들어, 몇몇 메시지 다이제스트 알고리듬들의 실행은 비교적 큰 회로들이 종래 제어기 회로에 부가되는 것을 요구한다. 유사하게, 몇몇 리던던시 기술, 예를들어 CRC-32의 사용은 제어기(100)에 의해 비교적 큰 양의처리를 요구할 수 있다. 그러나, 본 발명의 실시예들에 따라, 임의의 적당한 데이터 검증 기술은 제어기(100)에 통합되는 것이 이해되어야 한다.
도 6에 도시된 바와같이, 제어기(100)는 예를들어 CRC-64 데이터 검증 회로(156)를 포함한다. 데이터 검증 회로(156)는 호스트 인터페이스 로직(102)과 통신될 제어기(100)에서 실행된다. 또한, 데이터 검증 회로(156)는 데이터 검증 회로(156)에 대한 입력들이 제 1 또는 제 2 장치들로부터 판독되는 데이터를 일시적으로 저장하는 버퍼 방치들의 출력들에 접속되는 방식으로 제어기(100)에서 구성된다. 즉, 제 1 장치(32)가 소스 장치일때 제 1 장치(예를들어, 하드 디스크 32)로부터 판독된 데이터를 일시적으로 저장하는 제 1 FIFO 메모리(122)의 출력은 데이터 검증 회로(156)에 대한 입력들중 하나이다. 데이터 검증 회로(156)에 대한 다른 입력은 제 2 장치(34)가 소스 장치일때 제 2 장치(예를들어, CD-RW 34)로부터 판독된 데이터를 일시적으로 저장하는 제 3 FIFO 메모리(126)의 출력이다.
동작시, 데이터 검증 회로(156)는 소스 장치의 메모리 버퍼의 출력으로부터 목적지 장치의 멀티플렉싱 회로의 입력으로 전송되는 데이터를 수신한다. 데이터 검증 회로(156)가 전송되는 데이터를 수신할때, 데이터 검증 회로(156)는 전체 데이터 세트가 목적지 장치의 메모리 버퍼에 전송될때까지 작동중인 데이터 검증 정보, 예를들어 CRC-64 값을 축적한다. 일단 전체 데이터 세트가 전송되면, 데이터 검증 회로(156)는 필요한 데이터 검증 정보를 저장하고, 그 다음 예를들어 종래 방식으로 호스트에 의해 판독될 수 있다.
만약 호스트가 본래 데이터 세트에 대한 데이터 검증 정보를 가지면, 카피된 데이터에 대한 데이터 검증 회로(156)에 의해 축적된 데이터 검증 정보는 호스트에 의해 판독되고 본래 데이터 세트에 대한 이전 데이터 검증 정보와 비교된다. 만약 호스트가 본래 데이터 세트에 대한 검증 정보를 가지지 않으면, 데이터 검증 회로(156)는 상기된 바와같이 본래 데이터 세트가 목적지 장치에 카피될대 작동중인 검증 정보를 축적한다. 그 다음, 일단 전체 데이터 세트가 목적지 장치로 전송되면, 데이터 검증 회로(156)는 목적지 장치로부터 데이터 검증 회로(156)로 카피된 데이터 세트의 추후 전달로부터 작동중인 데이터 검증 정보를 축적한다. 그 다음, 호스트는 카피된 데이터 세트로부터 이런 데이터 검증 정보를 판독하고 본래 데이터 세트로부터 축적된, 소스 장치로부터 목적지 장치로 본래 데이터 전송로부터의 데이터 검증 정보와 비교한다.
본 발명의 실시예들에 따라, 상기된 방식으로, 데이터 검증은 데이터 세트가 직접적으로 소스 장치로부터 목적지 장치로 전송될때 수행된다. 본 발명의 실시예들에 따라 데이터 검증을 사용하는 종래 장치들과 달리, 전체 데이터 세트는 데이터 검증 계산들을 위하여 제어기(100)로부터 호스트로 버스(14)를 통하여 판독되지 않는다. 대신, 데이터 검증은 제어기(100)에서 데이터 검증 회로(156)에 의해 수행된다. 단지 최종 데이터 검증은 제어기(100)로부터 버스(14)로 전송된다. 그러므로, 이런 방식으로, 데이터 검증을 위하여, 호스트, 호스트 메모리 및 버스(14) 의 사용은 종래 장치들과 비교하여 감소된다.
도 7을 참조하여, 본 발명의 다른 실시예에 따른 다수의 제어기들의 간략화된 개략도가 도시된다. 본 발명의 실시예들에 따라, 데이터 전송은 동일한 제어기에 접속된 장치로 제한되지 않는다. 데이터는 다른 제어기 대신 하나의 제어기와 인터페이스된 소스 장치로부터 목적지 장치로 전송될 수 있다.
본 발명의 다른 실시예들에 따른 다중 제어기 장치(160)는 SATA 호스트 제어기 같은 제 1 제어기(162), SATA 호스트 제어기 같은 제 2 제어기(164), 및 스위치 또는 PCI 스위치 같은 하드웨어 스위치(166)를 포함한다. 제 1 제어기(162)는 다수의 장치들, 예를들어 하드 디스크 같은 제 1 장치(172), 및 CD-RW 같은 제 2 장치(174)에 접속된다. 유사하게, 제 2 제어기(164)는 다수의 장치들, 예를들어 하드 디스크 같은 제 3 장치(176), 및 CD-RW 같은 제 4 장치(178)에 접속된다. 상기 장치들은 적당한 인터페이스를 통하여, 상기된 바와같이 본 발명의 다른 실시예들과 관련하여 각각의 제어기에 접속된다. 비록, 다수의 제어기 장치(160)가 스위치(166)에 접속된 두개의 제어기들을 도시하지만, 본 발명의 실시예들은 적당한 인터페이스를 통하여 두개 이상의 제어기들이 스위치(166)에 접속되는 장치들을 포함한다.
본 발명의 이전 실시예들과 달리, 단일 제어기는 본 발명의 다른 실시예에 따라 PCI 버스 같은 버스를 통하여 호스트(12)와 직접적으로 인터페이스되고, 제어기들(162, 164)은 하드웨어 스위치(166)에 접속된다. 각각의 제어기는 적당한 인터페이스, 예를들어 PCI 익스프레스 접속을 통해 스위치(166)에 접속된다. 스위치 (166)는 적당한 인터페이스, 상기된 바와같이 PCI 버스일 수 있는 버스를 통하여 호스트(12)에 접속된다.
동작시, 장치들중 하나로부터 호스트(12)로 데이터 전송 요구 동안, 검사는 소스 장치 및 목적지 장치가 동일한 제어기에 접속되는지를 결정하기 위하여 수행된다(예를들어, 호스트 12에 의해). 이런 방식으로 검사하기 위한 능력은 이하에 보다 상세히 설명될 바와같이 연산 시스템의 일부이거나, 적당한 드라이버 소프트웨어의 일부일 수 있다.
만약 소스 장치 및 목적지 장치가 동일한 제어기에 접속되면, 데이터 전송은 상기된 바와같이, 또는 종래 방식으로 본 발명의 실시예들에 따라 수행된다. 만약 소스 장치 및 목적지 장치가 동일한 제어기에 접속되지 않으면, 호스트(12) 및 제어기들(162, 164)의 제어 로직은 하나의 제어기에 접속된 소스 장치 사이에서 스위치(166)를 통하여 다른 제어기에 접속된 목적지 장치로 데이터 전송을 관리한다. 각각의 제어기내의 데이터 전송은 본 발명의 다른 실시예들과관련하여 상기된 바와같이 각각의 제어기들에 포함된 스위칭 회로 및 인터페이스 로직에 의해 관리된다.
예를들어, 제 1 장치(172)로부터 제 4 장치(178)로 데이터 세트를 전송시, 데이터는 본 발명의 실시예들과 관련하여 상기된 바와같이 제 1(소스) 장치(172)로부터 제 1 제어기(162)로 전송된다. 그러나, 목적지 장치가 다른 제어기에 접속되기 때문에, 데이터는 제 1 제어기(162) 및 스위치(166) 사이의 인터페이스를 통하여 스위치(166)에 전송되고, 그 다음 스위치(166)로부터 제 2 제어기(164)로 스위치(166) 및 제 2 제어기(164) 사이의 인터페이스를 통하여 전송된다. 그 다음 데 이터는 예를들어 본 발명의 실시예들과 관련하여 상기된 바와같이 제 2 제어기(164)로부터 제 4(목적지) 장치(178)로 전송된다.
그러므로, 데이터가 본 발명의 실시예들에 따라 다른 제어기들에 접속된 장치들 사이에 전송되더라도, 데이터 전송은 제어기들 및 버스 스위치(166) 사이의 접속을 통하여 발생한다. 스위치(166) 및 호스트(12) 사이의 버스(14)는 임의의 기능들, 예를들어 초기 데이터 전송 요구들(셋업의 일부), 제어기들에 의한 PRD 테이블 액세스 및 제어기 지시 인터럽트들에 사용된다. 그러나, 본 발명의 다른 실시예들과 같이, 본 발명의 다른 실시예에서, 호스트 버스(14), 호스트(12) 및 호스트 메모리(도시되지 않음)은 데이터 전송에 사용되지 않는다.
본 발명의 실시예들에 따라, 여기에 기술된 개선된 데이터 전송은 호스트 및/또는 제어기(들)에 의해 사용될 수 있는 다양한 다른 피쳐들 및 표준들과 호환 가능하다. 예를들어, 많은 제어기들이 SATAⅡ로서 공지된 표준에 동작하도록 구성된다. 이런 표준에서, 데이터 저장 장치가 DMA 전송들 같은 데이터 전송을 최적화하도록 하는 선택적 피쳐들이 있다. 몇몇의 이들 피쳐들은 상기된 본 발명의 데이터 전송 방법들과 건삽하지만, 다른 피쳐들은 그렇지 않을 수 있다. 본 발명의 실시예들에 따라, 호스트는 본 발명의 데이터 전송 방법의 실행전에 상기된 본 발명의 데이터 전송 방법에 악영향을 미칠 수 있는 임의의 선택적인 피쳐들을 디스에이블하고, 일단 데이터 전송 방법이 완료되면 상기 선택적 피쳐들을 인에이블하도록 구성된다. 디스에이블된 상기 피쳐들은 예를들어, 피쳐가 처음과 다른 데이터 세트의 위치들로부터 데이터 전송이 발생하도록 하는 "논-지어로우 버퍼 오프셋 인 DMA 셋업 프레임 정보 구조(FIS)"로서 공지된 피쳐를 포함하고, 데이터 세트의 시작은 추후 동작들에서 전송된다. 이런 피쳐가 본 발명의 데이터 전송을 방해할 수 있기 때문에, 본 발명의 실시예들에 따른 데이터 전송 방법 전에 디스에이블이 수행된다. 디스에이블되는 다른 피쳐는 다중 부분적 데이터 전송들을 허용하는 네이티브 명령 퀀싱(native command quencing)(NCQ)로서 공지된 피쳐이다.
본 발명의 데이터 전송 방법과 간섭하지 않는 선택적 피쳐들을 위하여, 상기 피쳐들은 인에이블된 상태로 유지되고 본 발명의 데이터 전송 방법은 수행된다. 인에이블된 채로 남아있는 상기 피쳐들은 예를들어 데이터 저장 장치가 비순서적으로 데이터를 리터닝함으로써 최적화를 수행하는 것을 중단하는 "보증 순서 데이터 전송"로서 공지된 피쳐이다.
본 발명의 다른 실시예들에 따른 네이티브 명령 퀀싱(NCQ)과 관련하여, 부가적인 회로 및 제어 로직은 종래 스위칭 회로(108)에 부가되어 본 발명의 실시예들에 따른 데이터 전송 동작들과 함께 NCQ의 동작을 수용한다. 부가적인 회로 및 제어 로직은 제어기(100)가 다중 소스 및 목적지 장치들을 검출 및 식별하게 하여, 저장될 부가적인 데이터에 대한 적당한 버퍼 저장을 제공하고, 데이터 전송에 사용되는 소스 및 목적지 장치들을 가진 다중 장치들에서 선택한다. 제어 로직은 데이터 전송을 제어하기 위하여적당한 플래그들 및 제어 비트들을 설정하고, NCQ 동작은 인에이블된다. 이런 방식으로, 본 발명의 실시예들에 따른 데이터 전송은 NCQ 피쳐를 디스에이블하지 않고 수행된다.
마지막으로, 본 발명의 실시예들에 따라, 여기에 기술된 개선된 데이터 전송 방법에 대한 명령들은 호스트, 호스트 메모리 또는 호스트에 의해 액세스할 수 있는 다른 적당한 위치들에 잔류한다. 예를들어, 명령들은 표준 단일 프로그램이고, 호스트의 연산 시스템에 의해 쉽게 액세스할 수 있는 호스트 메모리의 일부에 잔류한다. 선택적으로, 명령들은 호스트 연산 시스템의 일부이다.
예를들어, 호스트 연산 시스템의 종래 카피 명령은 본 발명의 실시예들에 따른 개선된 데이터 전송 방법에 대한 명령들을 통합하기 위하여 변형된다. 이런 방식에서, 호스트는 만약 데이터 전송이 본 발명의 실시예에 따라 이루어지면, 즉 호스트 및 호스트 메모리에 데이터를 전송하지 않고 데이터 전송이 이루어지면 카피 명령의 실행 부분으로서 자동적으로 결정할 것이다. 호스트는 소스 장치 및 목적지 장치가 여기에 논의된 바와같이 적당히 버스 스위치에 의해 함께 링크된 동일한 제어기 또는 다른 제어기들에 접속되는지를 결정할 것이다. 만약 그렇다면, 카피 명령은 본 발명의 실시예들에 다라 데이터 전송을 수행하기 위하여 제어기(들)에 필요한 명령들을 제공할 수 있다. 만약 그렇지 않으면, 카피 명령은 종래 방식으로 데이터 전송을 수행하기 위하여 제어기(들)에게 명령할 수 있다.
많은 변형들 및 대체들이 첨부된 청구항들 및 등가물의 완전한 범위에 의해 한정된 바와 같이 본 발명의 사상 및 범위로부터 벗어나지 않고 상기된 본 발명의 실시예들로 이루어질 수 있다는 것은 당업자에게 명백할 것이다. 예를 들어, 본 발명의 실시예들에 따라, 데이터는 소스 장치로부터 다수의 목적지 장치들로, 예를 들어 동일한 제어기 또는 상기 제어기와 호스트 사이에 접속된 버스를 통하여 동시에 판독될 수 있다.
본 발명으로 인하여, 호스트, 호스트 메모리 및 호스트와 제어기 사이의 버스에 통상적으로 요구된 태스크들을 오프로딩 함으로써 데이터 전송 동작들 동안 호스트, 호스트 메모리 및 호스트와 제어기 사이의 버스의 사용은 감소된다.

Claims (3)

  1. 컴퓨터 시스템내의 제 1 장치로부터 최소한 하나의 제 2 장치로 데이터의 전송을 제어하는 제어기(100)에 있어서,
    제 1 버스를 통하여 상기 제어기를 호스트 컴퓨터와 인터페이싱하는 호스트 인터페이스 로직(102)으로서, 상기 호스트 컴퓨터는 제 2 버스를 통하여 인터페이싱되는 호스트 메모리를 가진, 상기 호스트 인터페이스 로직(102)과,
    제 1 장치 버스를 통해 상기 제어기를 상기 제 1 장치와 인터페이싱하고, 상기 제 1 버스를 통하여 상기 제 1 장치로부터 데이터를 판독하는, 제 1 장치 인터페이스 로직(104)과,
    제 2 장치 버스를 통해 상기 제어기를 상기 제 2 장치와 인터페이싱하고, 상기 제 2 버스를 통하여 상기 제 2 장치에 데이터를 기록하는, 제 2 장치 인터페이스 로직(106)과,
    데이터 전송을 제어하기 위해 상기 제 1 장치 인터페이스 로직과 상기 호스트 인터페이스 로직 사이에 접속되는 제 1 버퍼(112)와,
    상기 제 2 장치 인터페이스 로직과 상기 호스트 인터페이스 로직 사이의 데이터 전송을 제어하기 위해 상기 제 2 장치 인터페이스 로직과 상기 호스트 인터페이스 로직 사이에 접속되는 제 2 버퍼(116)와,
    상기 제 1 버퍼와 상기 호스트 인터페이스 로직 사이에 접속되고 상기 제 1 버퍼와 상기 제 2 버퍼 사이에 접속되는 제 1 멀티플렉싱 회로(114)로서, 상기 호 스트 인터페이스 로직과 상기 제 1 버스, 상기 호스트 컴퓨터, 상기 제 2 버스 및 상기 호스트 메모리 중 하나 이상으로 전달되는 상기 데이터 없이 상기 제 2 버퍼로부터 상기 제 1 버퍼로의 데이터의 전송을 제어하는, 상기 제 1 멀티플렉싱 회로(114), 및
    상기 제 2 버퍼와 상기 호스트 인터페이스 로직 사이에 접속되고 상기 제 2 버퍼와 상기 제 1 버퍼 사이에 접속되는 제 2 멀티플렉싱 회로(118)로서, 상기 호스트 인터페이스 로직과 상기 제 1 버스, 상기 호스트 컴퓨터, 상기 제 2 버스 및 상기 호스트 메모리 중 하나 이상으로 전달되는 상기 전송된 데이터 없이 상기 제 1 버퍼로부터 상기 제 2 버퍼로의 데이터의 전송을 제어하는, 상기 제 2 멀티플렉싱 회로(118)를 포함하는, 제어기(100).
  2. 제 1 항에 있어서,
    상기 제 1 버퍼 및 제 2 버퍼에 접속되는 데이터 검증 로직을 더 포함하고, 상기 데이터 검증 로직은 상기 호스트 인터페이스 로직과 상기 제 1 버스, 상기 호스트 컴퓨터, 상기 제 2 버스 및 상기 호스트 메모리 중 하나 이상으로 전달되는 상기 전송된 데이터 없이 상기 제 1 장치와 상기 제 2 장치 사이에 전송된 데이터에 대해 최소한 하나의 검증 동작을 수행하도록 구성되는, 제어기(100).
  3. 제 1 항에 있어서,
    상기 제 1 버퍼는,
    상기 제 1 장치 인터페이스 로직과 상기 호스트 인터페이스 로직 사이에 접속되고 상기 제 1 장치 인터페이스 로직과 상기 제 2 멀티플렉싱 회로 사이에 접속되는, 제 1 선입 선출(FIFO) 버퍼 장치, 및
    상기 제 1 멀티플렉싱 회로와 상기 제 1 장치 인터페이스 로직 사이에 접속되는 제 2 FIFO 버퍼 장치를 더 포함하는, 제어기(100).
KR1020050002328A 2004-08-19 2005-01-10 개량 데이터 전송을 위한 제어기 장치 및 방법 KR101035225B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/921,723 2004-08-19
US10/921,723 US7284082B2 (en) 2004-08-19 2004-08-19 Controller apparatus and method for improved data transfer

Publications (2)

Publication Number Publication Date
KR20060017470A true KR20060017470A (ko) 2006-02-23
KR101035225B1 KR101035225B1 (ko) 2011-05-18

Family

ID=35910859

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050002328A KR101035225B1 (ko) 2004-08-19 2005-01-10 개량 데이터 전송을 위한 제어기 장치 및 방법

Country Status (4)

Country Link
US (1) US7284082B2 (ko)
JP (1) JP4928100B2 (ko)
KR (1) KR101035225B1 (ko)
CN (1) CN100527112C (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100922635B1 (ko) * 2008-12-02 2009-10-22 (주) 제노맥스 Pci 익스프레스 버스 기반 테스터 인터페이스 장치

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI269968B (en) * 2004-04-22 2007-01-01 Mediatek Inc Method for processing the noise in the SATA
TWI242716B (en) * 2004-04-30 2005-11-01 Mediatek Inc Method for processing interference of noise
US7865803B2 (en) * 2004-04-30 2011-01-04 Mediatek Inc. Method for processing noise interference in data accessing device with serial advanced technology attachment (SATA) interface
US8572755B2 (en) * 2005-03-29 2013-10-29 Microsoft Corporation Trust verification in copy and move operations
JP4442523B2 (ja) * 2005-06-30 2010-03-31 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US20070214277A1 (en) * 2006-03-07 2007-09-13 Ahmed Ali U Peer-to-peer network communications using SATA/SAS technology
US8886892B2 (en) * 2007-01-26 2014-11-11 Hewlett-Packard Development Company, L.P. Memory module and method employing a multiplexer to replace a memory device
US7650447B2 (en) * 2007-02-16 2010-01-19 Apple Inc. System and method for a host to access an internal SATA storage device within an accessible host using an external serial ATA connection
KR20080111691A (ko) * 2007-06-19 2008-12-24 삼성전자주식회사 커넥터 및 그 통신방법
US7793032B2 (en) * 2007-07-11 2010-09-07 Commex Technologies, Ltd. Systems and methods for efficient handling of data traffic and processing within a processing device
CN101782883B (zh) * 2009-01-16 2013-03-20 鸿富锦精密工业(深圳)有限公司 Sata设备控制电路及方法
US9092160B2 (en) 2011-02-08 2015-07-28 Seagate Technology Llc Selective enablement of operating modes or features via host transfer rate detection
US9423983B2 (en) * 2012-01-19 2016-08-23 Syncsort Incorporated Intelligent storage controller
US8898506B2 (en) 2012-07-25 2014-11-25 Lsi Corporation Methods and structure for hardware serial advanced technology attachment (SATA) error recovery in a serial attached SCSI (SAS) expander
US8589607B1 (en) * 2012-08-07 2013-11-19 Lsi Corporation Methods and structure for hardware management of serial advanced technology attachment (SATA) DMA non-zero offsets in a serial attached SCSI (SAS) expander
US8745296B2 (en) * 2012-10-02 2014-06-03 Intel Corporation Serial storage protocol compatible frame conversion, at least in part being compatible with SATA and one packet being compatible with PCIe protocol
KR101988287B1 (ko) * 2012-11-26 2019-06-12 삼성전자주식회사 저장 장치 및 그것을 포함하는 컴퓨팅 시스템, 및 그것의 데이터 전송 방법
US9170750B2 (en) * 2013-04-22 2015-10-27 Hitachi, Ltd. Storage apparatus and data copy control method
EP2822230B1 (de) * 2013-07-04 2017-10-18 Omicron electronics GmbH Datenübertragung über einen Speicher einer Kommunikationsvorrichtung
US10169257B2 (en) * 2015-03-06 2019-01-01 Rambus Inc. Module based data transfer
US10671549B2 (en) * 2015-03-25 2020-06-02 Toshiba Memory Corporation Memory system
US20170147228A1 (en) * 2015-11-25 2017-05-25 Advanced Micro Devices, Inc. Computation along a datapath between memory blocks
KR20180021284A (ko) * 2016-08-18 2018-03-02 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20180043451A (ko) * 2016-10-19 2018-04-30 삼성전자주식회사 컴퓨팅 시스템 및 그것의 동작 방법
US10559351B2 (en) 2017-02-20 2020-02-11 Texas Instruments Incorporated Methods and apparatus for reduced area control register circuit
US11226909B2 (en) 2018-08-24 2022-01-18 Rambus Inc. DRAM interface mode with interruptible internal transfer operation
SG10202105796SA (en) 2021-06-01 2021-07-29 Flexxon Pte Ltd Module and method for authenticating data transfer between a storage device and a host device

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60110067A (ja) * 1983-11-21 1985-06-15 Mitsubishi Electric Corp 簡易型メモリデ−タ転送装置
JPS62138948A (ja) * 1985-12-13 1987-06-22 Hitachi Ltd デ−タ転送装置
US4991084A (en) * 1988-02-05 1991-02-05 International Business Machines Corporation N×M round robin order arbitrating switching matrix system
CA2014799A1 (en) * 1989-05-08 1990-11-08 John W. Whisler System and method for reading and writing disks formatted for an operating system foreign to the host computer
JPH02299014A (ja) * 1989-05-12 1990-12-11 Nec Corp データコピー/比較方式
JPH0340122A (ja) * 1989-07-07 1991-02-20 Nec Corp ディスク内ダイレクトコピー機能付ハードディスクコントローラ
JP2910303B2 (ja) * 1990-06-04 1999-06-23 株式会社日立製作所 情報処理装置
US5522050A (en) * 1993-05-28 1996-05-28 International Business Machines Corporation Bus-to-bus bridge for a multiple bus information handling system that optimizes data transfers between a system bus and a peripheral bus
US5799161A (en) * 1993-06-25 1998-08-25 Intel Corporation Method and apparatus for concurrent data routing
JPH096549A (ja) * 1995-06-26 1997-01-10 Hitachi Ltd 積層型ディスクアレイ装置
US5859988A (en) * 1995-09-29 1999-01-12 Intel Corporation Triple-port bus bridge
KR100197407B1 (ko) * 1995-12-28 1999-06-15 유기범 전전자 교환기에 있어서 프로세서들간 통신버스구조
US6175888B1 (en) * 1996-04-10 2001-01-16 International Business Machines Corporation Dual host bridge with peer to peer support
US5889935A (en) * 1996-05-28 1999-03-30 Emc Corporation Disaster control features for remote data mirroring
US6081863A (en) * 1998-03-13 2000-06-27 International Business Machines Corporation Method and system for supporting multiple peripheral component interconnect PCI buses by a single PCI host bridge within a computer system
US6763416B1 (en) * 1999-07-29 2004-07-13 Micron Technology, Inc. Capturing read data
JP2001256176A (ja) * 2000-03-13 2001-09-21 Mitsubishi Electric Corp ブリッジ装置
US6633296B1 (en) * 2000-05-26 2003-10-14 Ati International Srl Apparatus for providing data to a plurality of graphics processors and method thereof
DE60038172T2 (de) * 2000-09-25 2009-02-26 Bull S.A. Verfahren um Daten in einem Verarbeitungsystem zu übertragen
JP4009434B2 (ja) * 2001-04-18 2007-11-14 株式会社日立製作所 磁気ディスク装置間結合装置
JP2003316522A (ja) * 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
US6792486B1 (en) * 2002-04-30 2004-09-14 Western Digital Ventures, Inc. System and method for managing information storage among plural disk drives
US6954811B2 (en) * 2002-07-19 2005-10-11 Calix Networks, Inc. Arbiter for an input buffered communication switch
US7349416B2 (en) * 2002-11-26 2008-03-25 Cisco Technology, Inc. Apparatus and method for distributing buffer status information in a switching fabric
JP2005215729A (ja) * 2004-01-27 2005-08-11 Hitachi Global Storage Technologies Netherlands Bv データ伝送制御方法及び記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100922635B1 (ko) * 2008-12-02 2009-10-22 (주) 제노맥스 Pci 익스프레스 버스 기반 테스터 인터페이스 장치

Also Published As

Publication number Publication date
KR101035225B1 (ko) 2011-05-18
US20060041702A1 (en) 2006-02-23
JP4928100B2 (ja) 2012-05-09
CN1737781A (zh) 2006-02-22
JP2006059365A (ja) 2006-03-02
US7284082B2 (en) 2007-10-16
CN100527112C (zh) 2009-08-12

Similar Documents

Publication Publication Date Title
KR101035225B1 (ko) 개량 데이터 전송을 위한 제어기 장치 및 방법
US6401149B1 (en) Methods for context switching within a disk controller
US6330626B1 (en) Systems and methods for a disk controller memory architecture
US9529707B2 (en) Apparatus and method for reducing read-modify-write cycles by combining unaligned write commands
KR100909119B1 (ko) 집적 dma 엔진을 사용하는 고성능 휘발성 디스크드라이브 메모리 액세스 장치 및 방법
US7272676B2 (en) Data transmission controller that restarts data transmission when reconstruction is completed
US6813688B2 (en) System and method for efficient data mirroring in a pair of storage devices
US20110072209A1 (en) Processing Diagnostic Requests for Direct Block Access Storage Devices
US6636927B1 (en) Bridge device for transferring data using master-specific prefetch sizes
US7739419B2 (en) Data transfer control device and electronic instrument
WO1996018141A1 (fr) Systeme informatique
US7600058B1 (en) Bypass method for efficient DMA disk I/O
US6014717A (en) PCMCIA host adapter and method for variable data transfers
US8161214B2 (en) System and method for data transfer using ATA interface
US20080215789A1 (en) Data transfer control device and electronic instrument
JP2003288317A (ja) 端数ブロックデータ転送を検出し補償するシステムおよび方法
KR100638378B1 (ko) 디스크 제어장치의 메모리 구조에 대한 시스템 및 방법
US20050005039A1 (en) Data transfer control device, electronic instrument, and data transfer control method
US7596639B2 (en) Skip mask table automated context generation
JP2007011526A (ja) Hddコントローラ及びそれを搭載したシステム
EP1288774A2 (en) Integrated drive controller for systems with integrated mass storage
US20060277326A1 (en) Data transfer system and method
JP2007011659A (ja) インターフェース装置、ディスクドライブ及びインターフェース制御方法
US7146440B1 (en) DMA acknowledge signal for an IDE device
CN100371916C (zh) Scsi磁盘记录装置与方法

Legal Events

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

Payment date: 20140422

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee