KR20070108410A - 호스트 제어기 상에서의 독립적이면서 동시적인 데이터전달을 위한 방법 및 장치 - Google Patents

호스트 제어기 상에서의 독립적이면서 동시적인 데이터전달을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20070108410A
KR20070108410A KR1020077022323A KR20077022323A KR20070108410A KR 20070108410 A KR20070108410 A KR 20070108410A KR 1020077022323 A KR1020077022323 A KR 1020077022323A KR 20077022323 A KR20077022323 A KR 20077022323A KR 20070108410 A KR20070108410 A KR 20070108410A
Authority
KR
South Korea
Prior art keywords
serial port
register
serial
data
host controller
Prior art date
Application number
KR1020077022323A
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 KR20070108410A publication Critical patent/KR20070108410A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0661Format or protocol conversion 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/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

액세스 검출기가 직렬 저장 디바이스로 인터페이싱하는 다수의 직렬 포트 중 하나로의 액세스의 액세스 타입을 검출한다. 이 액세스는 다수의 병렬 채널의 태스크 파일 레지스터를 통해서 병렬 저장 디바이스로 인터페이싱하는 다수의 병렬 채널 중 하나의 병렬 채널로 의도된다. 맵핑 회로가 직렬 포트를 병렬 채널로 맵핑한다. 상태 머신은 상기 액세스 타입 및 상기 맵핑된 직렬 포트를 기초로 하여서 다수의 병렬 채널 중 상기 하나의 병렬 채널로부터의 응답을 에뮬레이트한다.

Description

호스트 제어기 상에서의 독립적이면서 동시적인 데이터 전달을 위한 방법 및 장치{A METHOD AND APPARATUS FOR INDEPENDENT AND CONCURRENT DATA TRANSFER ON HOST CONTROLLERS}
본 발명은 저장 인터페이스에 관한 것이다. 특히, 본 발명은 호스트 제어기에 대한 인터페이스에 관한 것이다.
플로피 디스크, 하드 드라이브 및 CD-ROM 드라이브와 같은 저장 디바이스는 통상적으로 IDE(Integrated Drive Electronics) 인터페이스(또한, ATA(Advanced Technology Attachment)로 지칭됨)를 통해서 컴퓨터에 접속된다. 병렬 ATA는 2 개까지의 디바이스가 마스터/슬레이브 통신 기술을 사용하여 단일 포트로 접속될 수 있게 한다. 하나의 ATA 디바이스가 마스터로서 구성되고, 다른 ATA 디바이스는 슬레이브로서 구성된다. 이러한 구성은 하나의 디바이스의 제어기가 다른 디바이스에게 자신이 데이터를 컴퓨터로/로부터 전송하는 시기를 통지할 수 있게 한다. 양 디바이스는 무종결 멀티드랍 버스(an unterminated multidrop bus)인 하나의 리본 케이블을 통해서 서로 데이지 체인 방식으로(daisy-chained) 접속된다. 이러한 버 스 또는 접속은 통상적으로 병렬 채널로서 지칭된다. 또한, 개인용 컴퓨터는 2 개의 병렬 ATA 채널, 즉 주 채널과 보조 채널을 갖는다.
병렬 ATA 인터페이스는 1989년 이후로 실질적인 변화 없이 존재하여 왔고 생산 시에 체적이 가장 큰 디스크 드라이브 디바이스 인터페이스가 되었다. 그러나, 보다 큰 전송 및 저장 대역폭에 대한 요구가 증가함에 따라서, 병렬 ATA는 성능에 있어서 자신의 한계가 드러났다. 그래서, 직렬 ATA 인터페이스가 병렬 ATA를 대체하기 시작하였다. 직렬 ATA는 개별 케이블로 2 개의 디바이스 각각을 점대점 방식으로 접속시킨다. 직렬 ATA의 이점은 150 MB/s에 달하는 높은 데이터 전송 레이트(병렬 ATA에서는 100 MB/s임), 저비용, 용이한 설치 및 구성, 적은 핀 개수 등을 포함한다.
그러나, 현재 너무나 많은 병렬 ATA가 설치되어 있기 때문에, 이 병렬 ATA를 직렬 ATA로 대체하는 것은 문제가 될 수 있다. 이러한 대체 비용을 피하고 대체가 용이하게 되기 위해서, 병렬 ATA를 위한 소프트웨어 드라이버가 직렬 ATA를 수용하도록 수정되었고 새로운 직렬 ATA 인터페이스가 병렬 ATA 인터페이스와 호환될 수 있도록 설계되었다. 가령, 하드웨어 에뮬레이터는 직렬 ATA 디바이스들이 마치 병렬 ATA 디바이스인 것처럼 병렬 ATA 드라이버가 직렬 ATA 디바이스들을 제어할 수 있도록 병렬 ATA 드라이버가 알 수 있게 동작하는 하드웨어 회로이다. 병렬 ATA 드라이버와 함께 직렬 ATA 디바이스를 사용할 때에 독립적이면서 동시적인 데이터 전달이 필요하다.
본 발명의 이점 및 특징들이 본 발명의 다음의 실시예 부분을 참조하면 분명해질 것이다.
도 1은 본 발명의 일 실시예가 구현되는 시스템의 도면,
도 2는 하드웨어 에뮬레이터를 사용하는 도 1에 도시된 ATA 제어기의 도면,
도 3은 도 2에 도시된 ATA 제어기 내의 에뮬레이터의 도면,
도 4는 본 발명의 일 실시예에 따른, 액세스 타입을 기초로 하여서 병렬 채널로부터의 응답을 에뮬레이트하는 프로세스의 순서도,
도 5는 본 발명의 일 실시예에 따른, 액세스 타입이 제 1 액세스 타입일 때에 응답을 에뮬레이트하는 프로세스의 순서도,
도 6은 DEV 비트 세팅을 달성하기 위한 소프트웨어 프로그래밍 시퀀스의 구현을 도시한 순서도.
본 실시예 부분에서, 수많은 세부 사항들이 본 발명의 철저한 이해를 돕기 위해서 제공될 것이다. 그러나, 이러한 세부 사항들은 본 발명을 구현하기 위한 필수적인 사항은 아니고 단지 본 발명을 설명하기 위한 것이다. 한편, 잘 알려진 전기 구조체 및 회로는 본 발명을 모호하게 하지 않도록 단지 블록 형태로 도시되 었다.
도 1은 본 발명의 일 실시예가 구현될 수 있는 컴퓨터 시스템(100)을 도시하고 있다. 이 컴퓨터 시스템(100)은 프로세서(110), 상호접속부(120), 메모리 제어 허브(MCH)(130), BIOS(Basic Input/Output System) 메모리(135), 시스템 메모리(140), 입출력 제어 허브(ICH)(150), 직렬 ATA 디바이스(176, 178) 및 입출력 디바이스(1801 내지 180K)를 포함한다.
프로세서(110)는 내장형 프로세서, 마이크로 제어기, 디지털 신호 프로세서, 슈퍼스칼라 컴퓨터, 벡터 프로세서, SIMD(Single Instruction Multiple Data) 컴퓨터, CISC(Complex Instruction Set Computer), RISC(Reduced Instruction Set Computer), VLIW(Very Long Instruction Word) 또는 하이브리드 아키텍처와 같은 임의의 타입의 아키텍처로 된 중앙 처리 장치를 나타낸다. 일 실시예에서, 프로세서(110)는 IA-32 및 IA-64와 같은 IA(Intel Architecture) 프로세서와 호환가능하다. 프로세서(110)는 통상적으로 가상 메모리 및 캐시 메모리와 같은 메모리 관리 태스크를 지원하는 다수의 제어 레지스터를 포함한다. 이러한 태스크는 페이징 및 세그멘테이션을 포함한다. 프로세서(110)를 갖는 칩은 오직 하나의 프로세서 코어 또는 하나 이상의 프로세서 코어를 갖는다. 상호접속부(120)는 프로세서(110)가 다른 프로세서 또는 MCH와 같은 디바이스와 통신하도록 하는 인터페이스 신호를 제공한다. 상호접속부(120)는 단일 프로세서 구성 또는 다중 프로세서 구성을 지원할 수 있다. 상호접속부(120)는 병렬형, 직렬형, 파이프라인형, 동기형, 비동기형 또는 이들의 임의의 조합일 수 있다. 상호접속부(120)는 점대점 방식으로 존재하 거나 2 개 이상의 칩과 접속될 수 있다.
MCH(130)는 시스템 메모리(140) 및 ICH(150)와 같은 메모리 및 입출력 디바이스를 제어하고 구성한다. MCH(130)는 격리된 실행 모드, 호스트 대 주변부 버스 인터페이스, 메모리 제어와 같은 다수의 기능을 통합한 칩세트 내부로 집적될 수 있다. 설명의 명료성을 위해서, 주변 버스 모두가 도시된 것은 아니다. 시스템(100)은 PCI(Peripheral Component Interconnect), AGP(Accelerated Graphics Port), ISA(Industry Standard Architecture) 버스, USB(Universal Serial Bus) 등과 같은 주변부 버스를 포함한다. 일 실시예에서, MCH(130)는 프로세서(110)와 동일한 칩 내에 존재할 수 있다. 몇몇 실시예에서, 동일한 MCH(130)가 프로세서들을 갖는 칩 내에서 모든 코어 또는 프로세서에 대해서 동작한다. 다른 실시예에서, MCH(130)는 프로세서들을 갖는 칩 내에서 상이한 코어 또는 프로세서에 대해서 개별적으로 동작하는 상이한 부분들을 갖는다.
BIOS 메모리(135)는 부팅 업 코드 및 데이터를 저장한다. BIOS 메모리(135)는 통상적으로 ROM, 플래시 메모리 및 다른 유사한 메모리와 같은 비휘발성 메모리로 구현된다. 또한, BIOS 메모리(135)는 MCH(130) 내에 저장될 수 있다. BIOS 메모리(135)는 ICH(150)를 통해서 직렬 ATA 디바이스(176,178)를 제어하기 위해서 병렬 ATA 드라이버(138)를 포함할 수 있다.
시스템 메모리(140)는 시스템 코드 및 데이터를 저장한다. 시스템 메모리(140)는 통상적으로 DRAM 또는 SRAM으로 구현된다. 리프레시될 필요가 없는 메모리를 포함하여 다른 타입의 메모리가 사용될 수 있다. 시스템 메모리는 본 발명 의 일 실시예를 구현하는 프로그램 코드 또는 코드 세그멘트를 포함한다. 시스템 메모리는 또한 병렬 ATA 드라이버(145)를 포함한다. 병렬 ATA 드라이버(145)는 운영 체제 또는 애플리케이션 프로그램의 일부일 수 있다. 병렬 ATA 드라이버(145)는 ICH(150)를 통해서 직렬 ATA 디바이스(176,178)로 액세스한다. BIOS 메모리(135) 내의 병렬 ATA 드라이버(138) 및 시스템 메모리(140) 내의 병렬 ATA 드라이버(145)는 같이 존재하거나 그러지 않을 수 있다.
ICH(150)는 입출력 기능을 지원하기 위해서 설계된 다수의 기능을 갖는다. 또한, ICH(150)는 MCH(130)와 함께 또는 별도로 칩세트 내부로 집적되어서 입출력 기능을 수행한다. ICH(150)는 PCI 버스 인터페이스, 프로세서 인터페이스, 인터럽트 제어기, DMA(direct memory access) 제어기, 전력 관리 로직, 타이머, USB 인터페이스, 대형 저장 인터페이스, LPC(low pin count) 인터페이스 등과 같은 다수의 인터페이스 및 입출력 기능을 포함한다. 특히, ICH(150)는 직렬 ATA 디바이스(176,178)를 제어하기 위해서 ATA 제어기(155)를 포함한다. 이 ATA 제어기(155)는 병렬 ATA 디바이스 드라이버와 반대로 호환가능하게 되기 위해서 하드웨어 에뮬레이터를 갖는다. ATA 제어기(155)는 사용자로 하여금 기존의 ATA 드라이버를 사용하면서 직렬 ATA 인터페이스를 이용할 수 있게 한다.
직렬 ATA 디바이스(176,178)는 코드, 프로그램, 파일, 데이터, 애플리케이션, 운영 체제 등과 같은 아카이브 정보를 저장하는 대형 저장 디바이스 또는 하드 디스크이다. 직렬 ATA 디바이스(176,178)는 직렬 ATA 인터페이스 신호(179)를 통해서 하드 드라이브 제어기(155)에 접속된다. 직렬 ATA 인터페이스, 프로토콜 및 규격은 Serial ATA Workgroup에 의해서 2001년 4월 9일에 Revision 1.0.0.1에서 공지된 "Serial ATA/High Speed Serialized AT Attachment"을 따른다. 대형 저장 디바이스(170)는 다른 아카이브 정보를 저장한다. 대형 저장 디바이스(170)는 CD-ROM(172), 플로피 디스켓(174), 하드 드라이브(176) 및 다른 자기 또는 광학 저장 디바이스를 포함한다. 대형 저장 디바이스(170)는 머신 판독가능한 매체를 판독하는 메카니즘을 제공한다.
입출력 디바이스(1801 내지 180K)는 입출력 기능을 수행하는 임의의 입출력 디바이스를 포함한다. 입출력 디바이스(1801 내지 180K)의 실례는 입력 디바이스(가령, 키보드, 마우스, 트랙볼, 포인팅 디바이스)를 위한 제어기, 매체 카드(가령, 오디오, 비디오, 그래픽), 네트워크 카드 및 임의의 다른 주변부 제어기를 포함한다.
병렬 ATA 인터페이스 상에서, 파워 온, 하드웨어 또는 소프트웨어 리셋 후에 또는 Executive Device Diagnostic 명령의 실행 후에, 슬레이브 디바이스는 진단 상태를 ATA 리본 케이블 내의 PDIAG-와이어를 통해서 마스터 디바이스로 제공한다. PDIAG-신호 상의 상태를 관찰한 후에, 이에 따라서 마스터 디바이스는 그 상태 및 에러 레지스터를 업데이트한다. 직렬 ATA 인터페이스의 경우에, 2 개의 직렬 ATA 디바이스 간의 이러한 직접 통신은 존재하지 않는다. 또한, 병렬 ATA 인터페이스 상에서, 동일한 채널 상의 두 ATA 디바이스는 케이블 상의 신호 활동을 관찰한다. 가령, ATA Command Block 레지스터(Data 및 Command 레지스터는 제외됨)로의 기록 액세스가 두 디바이스에 의해서 관찰되고 허용된다. 한편, 직렬 ATA 인터페이스에 서, 각 직렬 ATA 디바이스는 서로 독립적이다.
병렬 ATA 드라이버(138)가 관찰할 수 있는 상호작용을 모방하기 위해서, ATA 제어기(155) 내의 에뮬레이터는 가상 ATA 채널 상에서 병렬 ATA 디바이스로서 맵핑되는 두 직렬 ATA 디바이스(176,178)로의 소프트웨어 액세스를 전송 및 조작한다. 또한, 에뮬레이터는 직렬 ATA 디바이스의 인터럽트를 IRQ14 또는 IRQ15로 라우팅한다.
도 2는 하드웨어 에뮬레이터(210)를 사용하는 ATA 제어기(155)를 도시한다. ATA 제어기(155)는 에뮬레이터(210) 및 직렬 ATA 호스트 제어기 1 및 2(220,230)를 포함한다. 에뮬레이터(210)는 병렬 ATA 드라이버(138)와의 인터페이싱 시에 병렬 ATA 디바이스의 응답을 에뮬레이션한다. 에뮬레이터(210)는 병렬 ATA 드라이버(138)가 마치 직렬 ATA 디바이스들(176,178)이 병렬 ATA 디바이스인 것처럼 이들 직렬 ATA 디바이스(176,178)를 제어하도록 병렬 ATA 드라이버(138)가 알 수 있게 동작하는 하드웨어 회로이다. ATA 드라이버가 직렬 ATA 디바이스(176,178)를 위해서 직접적으로 기록되는 경우에는 에뮬레이터(210)는 디스에이블된다.
직렬 포트로서 지칭되는 직렬 ATA 호스트 제어기(220,230)는 레지스터, 제어 회로 및 각기 직렬 ATA 디바이스(176,178)로의 인터페이싱 회로를 포함한다. 특히, 직렬 ATA 호스트 제어기(220,230)는 각기 직렬 포트 태스크 파일 1 및 2(225,235)를 포함하며, 이 태스크 파일 1 및 2는 해당 직렬 ATA 디바이스(176,178)를 제어 및 구성하는 운영 레지스터를 포함한다. ATA 사양에서 규정된 하나의 이러한 레지스터는 디바이스 및 헤드 수를 포함하는 디바이스/헤드 레지스 터이다.
에뮬레이터(210)는 포트 1 선택 신호 또는 포트 2 선택 신호를 통해서 병렬 채널로 맵핑될 직렬 포트를 선택한다. 에뮬레이터(210)는 기록 데이터 신호 경로를 통해서 선택된 직렬 포트에 데이터를 기록하고 해당 판독 데이터 신호 경로를 통해서 선택된 직렬 포트로부터 데이터를 판독한다. 직렬 ATA 호스트 제어기(220,230)는 에뮬레이터(210)에게 진단 상태 및 에러 상태를 제공한다.
도 3은 도 2에 도시된 ATA 제어기 내의 에뮬레이터(210)를 도시한다. 에뮬레이터(210)는 액세스 검출기(310), 맵핑 회로(320), 에뮬레이션 상태 머신(330), 에뮬레이션된 태스크 파일 레지스터 세트(340) 및 직렬 포트 선택기(350)를 포함한다. 액세스 검출기(310)는 직렬 저장 디바이스(176,178)로 인터페이싱하는 직렬 포트(220,230) 중 하나로의 액세스의 액세스 타입을 검출한다. 이러한 액세스는 병렬 ATA 드라이버(138)에 의해서 제공되며 병렬 채널의 태스크 파일 레지스터를 통해서 병렬 저장 디바이스로 인터페이싱하는 병렬 채널들 중 하나의 채널로 의도된다.
맵핑 회로(320)는 직렬 포트를 병렬 채널로 맵핑한다. 이러한 맵핑은 어드레스 번역에 의해서 수행된다. 또한, 직렬 포트는 디바이스/헤드 레지스터 내의 디바이스(DEV) 비트에 따라서 마스터 또는 슬레이브 병렬 채널로 맵핑된다.
에뮬레이션 상태 머신(330)은 액세스 검출기(310)에 의해서 검출된 액세스 타입 및 맵핑 회로(320)에 의해서 제공된 맵핑된 직렬 포트를 기초로 하여서 병렬 채널들 중 하나의 채널로부터의 응답을 에뮬레이션한다. 이 에뮬레이션 상태 머 신(330)는 액세스 타입에 따라서 일련의 동작을 수행하기 위한 다수의 상태를 포함한다. 가령, 상이한 액세스 타입에 따른 응답의 에뮬레이션에 대응하는 몇 개의 상태 및 인터럽트 생성의 에뮬레이션에 대응하는 인터럽트 상태가 존재할 수 있다.
에뮬레이션된 태스크 파일 레지스터 세트(340)는 다수의 병렬 채널의 태스크 파일 레지스터를 에뮬레이션한다. 이 레지스터들은 디바이스(DEV), 비지(BSY) 비트 및 에러 레지스터에 관한 정보를 포함한다.
직렬 포트 선택 회로(350)는 맵핑 회로(320)에 의해 제공된 맵핑된 직렬 포트를 기초로 하여 직렬 포트(220,230) 중 하나를 선택한다. 가령, 병렬 ATA 드라이버(138)가 병렬 채널로의 액세스를 생성하면, 맵핑 회로(320)는 병렬 채널의 어드레스를 번역하여 직렬 포트로 보낸다. 이와 달리, 맵핑 회로(320)는 디바이스/헤드 레지스터 내의 디바이스(DEV) 비트에 따라서 맵핑한다. 이러한 맵핑 정보가 상태 머신(330)을 통해서 또는 직접적으로 직렬 포트 선택 회로(350)에 전송되며, 이로써 직렬 포트 선택 회로가 대응하는 직렬 포트를 선택한다. 이러한 선택은 선택된 직렬 ATA 호스트 제어기(220 또는 230)를 인에이블링함으로써 수행된다.
도 4는 액세스 타입을 기초로 하여서 병렬 채널로부터의 응답을 에뮬레이션하는 프로세스(400)를 도시하는 순서도이다. 시작 후에, 마스터 또는 슬레이브 채널로서의 병렬 채널에 맵핑된 직렬 ATA 포트로의 액세스가 검출된다(블록(410)). 이러한 액세스는 병렬 ATA 드라이버(138)에 의해서 수행된다. 이어서, 액세스 타입이 판정된다(블록(420)). 이는 어드레스와 같은 액세스 정보 및 기록/판독 정보를 디코딩함으로써 수행될 수 있다. 이 액세스 타입은 몇 개의 액세스 타입 중 하 나일 수 있다.
프로세스(400)는 액세스가 버스 마스터 레지스터(BM-IDE), 데이터 전송을 수반하지 않는 명령 레지스터(non-data command register) 및 디바이스 제어 레지스터 중 하나에 대한 최초 판독인 경우인 제 1 액세스 타입이 액세스 타입인지의 여부를 판정한다(블록(430)). 또한, 이러한 제 1 액세스 타입은 버스 마스터 명령 레지스터의 START 비트를 로직 1로 설정하는 것을 제외하고 버스 마스터 레지스터, 데이터 전송을 수반하지 않는 명령 레지스터 및 디바이스 제어 레지스터 중 하나로의 최초 기록을 포함한다(블록(430)). 만일 액세스가 제 1 액세스 타입이면, 제 1 액세스 타입의 액세스가 에뮬레이션되고(블록(435)) 프로세스는 종결된다.
액세스가 제 1 액세스 타입이 아니면, 액세스가 다른 액세스 타입이다고 판정되고(블록(440)) 이 다른 액세스 타입이 에뮬레이션된다(블록(445)). 이 다른 액세스 타입은 디바이스/헤드 레지스터로의 액세스 또는 파워-온, 하드웨어 또는 소프트웨어 리셋 또는 디바이스 진단 명령의 실행 후 슬레이브 병렬 채널에 맵핑된 선택된 직렬 포트의 에러 레지스터, 상태 레지스터 또는 교대 레지스터(an alternate register)에 대한 판독 액세스일 수 있다. 또한, 이 다른 액세스 타입은 파워-온, 하드웨어 또는 소프트웨어 리셋 또는 디바이스 진단 명령의 실행 후 마스터 병렬 채널에 맵핑된 직렬 포트의 상태 레지스터 또는 교대 레지스터에 대한 판독 액세스일 수 있다. 또한, 이 다른 액세스 타입은 파워-온, 하드웨어 또는 소프트웨어 리셋 또는 디바이스 진단 명령의 실행 후 마스터 병렬 채널에 맵핑된 직렬 포트의 에러 레지스터에 대한 판독 액세스일 수 있다.
SATA 디바이스(176,178) 상의 명령을 셋업하기 위해서, 각각의 호스트 제어기(220 또는 230)는 통상적으로 일련의 이벤트를 수행한다. 호스트 제어기는 상태 레지스터를 판독하여 채널의 비지(busy) 상태를 판정한다. 호스트 제어기는 올바른 디바이스가 선택되는 것을 보장하도록 디바이스/헤드 레지스터를 기록한다. 호스트 제어기는 전달될 섹터의 개수를 표시하기 위해서 섹터 카운트 레지스터를 기록한다. 호스트 제어기는 LBA(logical block addressing) 어드레스의 일부를 로딩하기 위해서 섹터 넘버 레지스터를 기록한다. 호스트 제어기는 LBA 어드레스의 일부를 로딩하기 위해서 실린더 로우 레지스터를 기록한다. 호스트 제어기는 LBA 어드레스의 일부를 로딩하기 위해서 실린더 하이 레지스터를 기록한다. 호스트 제어기는 명령이 디스패치(dispatch), I/O 시작, IRQ 및 완료인 4 개의 문구에서 실행되도록 명령 레지스터를 기록한다.
호스트 제어기로부터의 명령은 선택 동작에 의해서 선택된 직렬 ATA 디바이스에 수신된다. 호스트 제어기는 디바이스/헤드 레지스터 내의 DEV 비트를 사용하여 두 디바이스 간을 구별한다. DEV는 자신이 데이터를 전송하거나 전송받기 원하는 디바이스를 표시하도록 프로그래밍된다. 비트 "0"은 마스터 디바이스로 지정된 디바이스 0을 선택한다. 이와 달리, DEV 비트는 슬레이브 디바이스로 지정되는 디바이스 1를 선택한다. 그러나, 전통적인 제어기 동작에 있어서, 레지스터 내용은 두 디바이스 및 그들의 제어기로 전송된다. 따라서, 전통적인 제어기 동작에 있어서, 레지스터 기록 사항은 마스터 및 슬레이브 태스크 파일 레지스터(225,226) 및 BM-IDE 레지스터로 전송된다.
도 5는 본 발명의 일 실시예에 따른, 액세스 타입이 제 1 액세스 타입일 경우에 응답을 에뮬레이션하는 프로세스(435)를 도시하는 순서도이다. 이 프로세스(435)는 도 3에 도시된 상태 머신(330) 내의 제 1 상태에 의해서 수행된다. 시작 후에, 액세스가 기록 액세스인지의 여부가 판정된다(블록(510)). 본 발명의 일 실시예에서, BM-IDE 레지스터 또는 태스크 파일(225,226)로의 임의의 관련 기록 이전에 DEV 비트가 기록된다. DEV 비트가 제로이면, 디바이스 0이 선택된다. DEV 비트가 1이면, 디바이스 1이 선택된다.
따라서, 에뮬레이션 하드웨어는 자신이 기록 사이클을 마스터 BM-IDE 레지스터 및 슬레이브 BM-IDE 레지스터 및 새도우 태스크 파일로 전송하지 않는 모드를 갖는다. 대신에, 기록 사이클은 DEV 비트에 따라서 특정 디바이스로 전송된다. 이는 에뮬레이터가 기록 사이클을 마스터 디바이스 태스크 파일 레지스터 및 슬레이브 디바이스 태스크 파일 레지스터 및 BM-IDE I/O 레지스터에 전송하는 전통적인 동작과는 상이하다.
액세스가 기록 액세스이면, 블록(515)에서, 디바이스 비트에 따라서 병렬 채널로 맵핑된 선택된 직렬 포트로 데이터가 기록된다. 기록 사이클을 기초로 하여, 두 호스트 레지스터 세트가 설정되기보다는 상기 선택된 디바이스의 호스트 레지스터가 설정된다. 따라서, 마스터 ATA 디바이스 및 슬레이브 ATA 디바이스가 서로 완전하게 독립적으로 액세스된다. 따라서, 동시적이면서 독립적인 데이터 전달이 병렬 ATA 드라이브에게는 마스터 드라이브 및 슬레이브 드라이브로서 보이는 2 개의 직렬 ATA 드라이브 상에서 수행되게 된다. 이와 달리, 액세스가 판독 액세스이 면, 블록(520)에서, 디바이스 비트에 따라서 병렬 채널로 맵핑된 선택된 직렬 포트로부터 데이터가 판독된다. 이어서, 판독된 데이터가 액세스 요청자에게 전송되고 프로세스는 종결된다.
도 6은 DEV 비트 세팅을 달성하기 위한 소프트웨어 프로그래밍 시퀀스를 구현하는 순서도(600)이다. 블록(610)에서, 선택된 디바이스에 대응하는 직렬 포트의 디바이스/헤드 레지스터의 DEV 비트가 기록된다. 블록(620)에서, 다른 BM-IDE 레지스터 및 이와 관련된 태스크 파일 레지스터가 프로그램된다. 일 실시예에서, 선택된 직렬 포트와 관련된 BM-IDE 레지스터 및 태스크 파일 레지스터에 데이터가 기록된다. 블록(630)에서, 명령 태스크 파일 레지스터가 프로그램되고 BM-IDE 명령 레지스터의 시작 비트가 설정된다. 블록(640)에서, 디바이스/헤드 레지스터의 DEV 비트에 다른 값을 기록한다. 블록(650)에서, 다른 BM-IDE 레지스터 및 이와 관련된 태스크 파일 레지스터가 필요한 데로 프로그램된다. 블록(660)에서, 명령 태스크 파일 레지스터가 프로그램되고 BM-IDE 명령 레지스터의 시작 비트가 설정되고 이로써 프로세스(600)가 종료된다.
지금까지 본 발명이 예시적인 실시예를 참조하여 기술되었지만, 이러한 발명의 상세한 설명 부분은 본 발명을 한정하지 않는다. 본 발명의 기술적 사상 및 범위 내에서 본 예시적인 실시예들의 다양한 수정 및 본 발명의 다른 실시예들이 본 기술 분야의 당업자에게 가능하다. 가령, 상술한 부분은 직렬 ATA 인터페이스 및 병렬 ATA 인터페이스에 대한 것이었지만, 본 기술은 임의의 점대점 인터페이스에 적용될 수 있다.
본 발명은 하드웨어, 소프트웨어, 펌웨어, 마이크로코드 또는 이들의 임의의 조합으로 구현될 수 있다. 본 발명이 소프트웨어, 펌웨어 또는 마이크로코드로 구현되면, 본 발명의 구성 요소들은 필요한 작업을 수행하기 위한 프로그램 코드 또는 코드 세그먼트이다. 코드 세그먼트는 절차, 기능, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 인스트럭션들의 임의의 조합, 데이터 구조 또는 프로그램 스테이트먼트를 포함한다. 코드 세그먼트는 정보, 데이터, 변수, 파라미터 또는 메모리 내용을 송수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 접속될 수 있다. 정보, 변수, 파라미터, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 전송 등과 같은 임의의 적합한 수단을 통해서 전송될 수 있다. 프로그램 또는 코드 세그먼트는 프로세서 판독가능한 매체 내에 저장되거나 반송파로 구현되는 컴퓨터 데이터 신호 또는 반송파에 의해서 변조되는 신호에 의해서 전송 매체 상에 전송될 수 있다. "프로세서 판독가능한 매체"는 정보를 저장 또는 전달할 수 있는 임의의 매체를 포함한다. 프로세서 판독가능한 매체의 실례는 전자 회로, 반도체 메모리 디바이스, ROM, 플래시 메모리, EROM, 플로피 디스켓, CD-ROM, 광 디스크, 하드 디스크, 광 섬유 매체, 무선 주파수 링크 등을 포함한다. 컴퓨터 데이터 신호는 전자 네트워크 채널, 광 섬유, 공기, 전자기, RF 링크 등과 같은 전송 매체 상에서 전파될 수 있는 임의의 신호를 포함한다. 코드 세그먼트는 인터넷, 인트라넷 등과 같은 컴퓨터 네트워크를 통해서 다운로딩될 수 있다.
본 발명이 통상적으로 순서도, 구조도 또는 블록도로서 도시된 프로세스로서 기술되었다. 순서도가 순차적 프로세스로서 동작을 기술하였지만, 수많은 동작들이 병렬로 또는 동시적으로 수행될 수 있다. 또한, 동작들의 순서가 재배열될 수 있다. 프로세스는 자신의 동작이 완료되면 종결된다. 프로세스는 방법, 기능, 절차, 서브루틴, 서브프로그램 등에 대응한다. 프로세스가 기능에 대응하면, 프로세스의 종결은 그 기능이 호출 기능 또는 메인 기능으로 돌아가는 것과 대응한다.

Claims (20)

  1. 제 1 하드 드라이브로 인터페이싱하는 제 1 호스트 제어기를 포함하되,
    제 1 데이터 전달 동작에 있어서, 상기 제 1 호스트 제어기 상의 다른 레지스터들보다 먼저 상기 제 1 호스트 제어기 상의 디바이스/헤드 레지스터 내의 디바이스 비트가 기록되며,
    상기 제 1 호스트 제어기 상의 상기 디바이스/헤드 레지스터 내에 기록된 데이터를 기초로 하여서, 전달 데이터가 상기 제 1 호스트 제어기 상의 또 다른 레지스터에 기록되는
    장치.
  2. 제 1 항에 있어서,
    제 2 하드 드라이브로 인터페이싱하는 제 2 호스트 제어기를 더 포함하며,
    제 2 데이터 전달 동작에 있어서, 상기 제 2 호스트 제어기 상의 다른 레지스터들보다 먼저 상기 제 2 호스트 제어기 상의 디바이스/헤드 레지스터 내의 디바이스 비트가 기록되고,
    상기 제 2 호스트 제어기 상의 상기 디바이스/헤드 레지스터 내에 기록된 데이터를 기초로 하여서, 전달 데이터가 상기 제 2 호스트 제어기 상의 또 다른 레지스터에 기록되는
    장치.
  3. 제 2 항에 있어서,
    상기 제 1 하드 드라이브 및 상기 제 2 하드 드라이브는 직렬 ATA(Advanced Technology Attachment) 디바이스인
    장치.
  4. 제 2 항에 있어서,
    상기 제 1 데이터 전달 동작 및 상기 제 2 데이터 전달 동작은 상기 제 1 호스트 제어기와 상기 제 1 하드 드라이브 간 및 상기 제 2 호스트 제어기와 상기 제 2 하드 드라이브 간에서 데이터를 독립적이면서 동시적으로 전달하는 동작을 포함하는
    장치.
  5. 제 2 항에 있어서,
    상기 제 1 하드 드라이브 및 상기 제 2 하드 드라이브 중 하나는 마스터 드라이브로서 맵핑되는
    장치.
  6. 다수의 병렬 채널과,
    직렬 저장 디바이스로 인터페이싱하는 다수의 직렬 포트━상기 다수의 병렬 채널이 상기 다수의 직렬 포트로 맵핑됨━와,
    제 1 직렬 포트 상의 디바이스/헤드 레지스터를 포함하고,
    제 1 데이터 전달 동작에 있어서, 상기 제 1 직렬 포트 상의 다른 레지스터들보다 먼저 상기 제 1 직렬 포트 상의 상기 디바이스/헤드 레지스터가 기록되며,
    상기 제 1 직렬 포트 상의 상기 디바이스/헤드 레지스터 내에 기록된 데이터를 기초로 하여서, 상기 제 1 직렬 포트 상의 또 다른 레지스터가 액세스되는
    장치.
  7. 제 6 항에 있어서,
    상기 제 1 직렬 포트 상의 또 다른 레지스터를 액세스하는 동작은 상기 제 1 직렬 포트 상의 또 다른 레지스터에 데이터를 기록하는 동작을 포함하는
    장치.
  8. 제 6 항에 있어서,
    상기 제 1 직렬 포트 상의 또 다른 레지스터를 액세스하는 동작은 상기 제 1 직렬 포트 상의 또 다른 레지스터로부터 데이터를 판독하는 동작을 포함하는
    장치.
  9. 제 6 항에 있어서,
    제 2 직렬 포트 상의 디바이스/헤드 레지스터를 더 포함하고,
    제 2 데이터 전달 동작에 있어서, 상기 제 2 직렬 포트 상의 다른 레지스터들보다 먼저 상기 제 2 직렬 포트 상의 상기 디바이스/헤드 레지스터가 기록되며,
    상기 제 2 직렬 포트 상의 상기 디바이스/헤드 레지스터 내에 기록된 데이터를 기초로 하여서, 상기 제 2 직렬 포트 상의 또 다른 레지스터가 액세스되는
    장치.
  10. 제 9 항에 있어서,
    상기 제 2 직렬 포트 상의 또 다른 레지스터를 액세스하는 동작은 상기 제 2 직렬 포트 상의 또 다른 레지스터에 데이터를 기록하는 동작을 포함하는
    장치.
  11. 제 9 항에 있어서,
    상기 제 2 직렬 포트 상의 또 다른 레지스터를 액세스하는 동작은 상기 제 2 직렬 포트 상의 또 다른 레지스터로부터 데이터를 판독하는 동작을 포함하는
    장치.
  12. 제 9 항에 있어서,
    상기 제 1 데이터 전달 동작 및 상기 제 2 데이터 전달 동작은 상기 제 1 직렬 포트와 이에 대응하는 직렬 저장 디바이스 간 및 상기 제 2 직렬 포트와 이에 대응하는 직렬 저장 디바이스 간에서 데이터를 독립적이면서 동시적으로 전달하는 동작을 포함하는
    장치.
  13. 제 6 항에 있어서,
    상기 제 1 직렬 포트 상의 다른 레지스터들에 기록하기 이전에 상기 제 1 직렬 포트 상의 상기 디바이스/헤드 레지스터에 기록하는 동작은 상기 제 1 직렬 포트 상의 상기 디바이스/헤드 레지스터 내의 디바이스 비트를 기록하는 동작을 포함하는
    장치.
  14. 제 6 항에 있어서,
    상기 제 1 직렬 포트 상의 다른 레지스터들에 기록하기 이전에 상기 제 1 직렬 포트 상의 상기 디바이스/헤드 레지스터에 기록하는 동작은 상기 제 1 직렬 포트의 버스 마스터 또는 태스크 파일에 기록하기 이전에 상기 제 1 직렬 포트 상의 상기 디바이스/헤드 레지스터 내의 상기 디바이스 비트를 기록하는 동작을 포함하는
    장치.
  15. 제 6 항에 있어서,
    상기 제 1 직렬 포트 상의 또 다른 레지스터를 액세스하는 동작은 상기 제 1 직렬 포트에 대응하는 버스 마스터와 태스크 파일 중 적어도 하나를 액세스하는 동작을 포함하는
    장치.
  16. 다수의 직렬 저장 디바이스와,
    상기 직렬 저장 디바이스에 접속되며 직렬 저장 제어기를 포함하는 칩셋을 포함하며,
    상기 직렬 저장 제어기는
    상기 다수의 직렬 저장 디바이스로 인터페이싱하는 다수의 직렬 포트를 다수의 병렬 채널로 맵핑하는 맵핑 회로와,
    상기 맵핑 회로에 접속되어서 액세스 타입을 기초로 하여서 상기 다수의 병렬 채널 중 하나로부터의 응답을 에뮬레이션하는 상태 머신과,
    상기 상태 머신 및 상기 다수의 직렬 포트에 접속되어서 상기 다수의 직렬 포트 중 하나를 선택하는 직렬 포트 선택기와,
    상기 상태 머신에 접속되어서 상기 선택된 직렬 포트에 맵핑된 병렬 채널의 태스트 파일 레지스터를 에뮬레이션하는 다수의 레지스터를 포함하며,
    상기 선택된 직렬 포트에 대응하는 버스 마스터 및 태스크 파일 레지스터 중 임의의 하나보다 먼저 상기 선택된 직렬 포트의 디바이스/헤드 레지스터 내의 디바이스 비트가 기록되는
    시스템.
  17. 제 16 항에 있어서,
    상기 상태 머신은,
    상기 디바이스 비트에 따라서 상기 다수의 병렬 채널 중 상기 하나에 맵핑된 상기 선택된 직렬 포트에 데이터를 기록하는 제 1 기록 상태와,
    상기 디바이스 비트에 따라서 상기 다수의 병렬 채널 중 상기 하나에 맵핑된 상기 선택된 직렬 포트로부터 데이터를 판독하는 제 1 판독 상태를 포함하는
    시스템.
  18. 제 16 항에 있어서,
    또 다른 직렬 포트에 대응하는 레지스터에 데이터가 기록되지 않고, 적어도 상기 선택된 직렬 포트에 대응하는 버스 마스터 또는 태스크 파일 레지스터에 데이터가 기록되는
    시스템.
  19. 제 16 항에 있어서,
    상기 다수의 직렬 저장 디바이스로 인터페이싱하는 다수의 직렬 포트 중 하나로의 액세스의 제 1 액세스 타입을 검출하는 액세스 검출기를 더 포함하며,
    상기 액세스는 상기 다수의 병렬 채널 중 하나의 병렬 채널로 의도된 액세스인
    시스템.
  20. 제 19 항에 있어서,
    상기 제 1 액세스 타입은 버스 마스터 명령 레지스터의 START 비트를 로직 1로 설정하는 것을 제외하고 버스 마스터 레지스터, 데이터 전송을 수반하지 않는 명령 레지스터(a non-data command register) 및 디바이스 제어 레지스터 중 하나로의 최초 기록을 포함하는
    시스템.
KR1020077022323A 2005-03-31 2006-03-31 호스트 제어기 상에서의 독립적이면서 동시적인 데이터전달을 위한 방법 및 장치 KR20070108410A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/096,619 US7603514B2 (en) 2005-03-31 2005-03-31 Method and apparatus for concurrent and independent data transfer on host controllers
US11/096,619 2005-03-31

Publications (1)

Publication Number Publication Date
KR20070108410A true KR20070108410A (ko) 2007-11-09

Family

ID=36694540

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077022323A KR20070108410A (ko) 2005-03-31 2006-03-31 호스트 제어기 상에서의 독립적이면서 동시적인 데이터전달을 위한 방법 및 장치

Country Status (8)

Country Link
US (1) US7603514B2 (ko)
JP (1) JP2008537219A (ko)
KR (1) KR20070108410A (ko)
CN (1) CN101133386A (ko)
DE (1) DE112006000634T5 (ko)
GB (1) GB2438782B (ko)
TW (1) TWI334537B (ko)
WO (1) WO2006105548A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011142604A2 (ko) * 2010-05-14 2011-11-17 주식회사 노바칩스 반도체 칩 및 이를 구비하는 반도체 시스템

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8731506B2 (en) * 2008-07-28 2014-05-20 Marvell World Trade Ltd. Complementary low noise transductor with active single ended to differential signal conversion
KR101004640B1 (ko) * 2010-05-14 2011-01-03 주식회사 신성냉동공조 실내환기용 전열교환장치
US9116694B2 (en) 2012-09-26 2015-08-25 Intel Corporation Efficient low power exit sequence for peripheral devices
US9276623B2 (en) * 2013-08-20 2016-03-01 Aviacomm Inc. Cost effective multiband RF front-end architecture for mobile applications
US11888002B2 (en) 2018-12-17 2024-01-30 Meta Platforms Technologies, Llc Dynamically programmable image sensor
US11962928B2 (en) 2018-12-17 2024-04-16 Meta Platforms Technologies, Llc Programmable pixel array
US11935291B2 (en) * 2019-10-30 2024-03-19 Meta Platforms Technologies, Llc Distributed sensor system
US11948089B2 (en) 2019-11-07 2024-04-02 Meta Platforms Technologies, Llc Sparse image sensing and processing
US11825228B2 (en) 2020-05-20 2023-11-21 Meta Platforms Technologies, Llc Programmable pixel array having multiple power domains
US11373014B2 (en) * 2020-07-21 2022-06-28 Hewlett Packard Enterprise Development Lp Controlling access to peripheral ports of a host computing system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2246494B (en) * 1990-05-25 1994-08-31 Silicon Systems Inc Method and apparatus for serial communications
GB2288954B (en) * 1994-04-15 1998-10-14 Vlsi Technology Inc Method and apparatus for providing programmable serial communications
US5604870A (en) * 1994-08-01 1997-02-18 Moss; Barry UART emulator card
JPH11282632A (ja) * 1998-03-27 1999-10-15 Sony Corp インターフェース装置及び制御方法並びに記録再生装置
US6684275B1 (en) * 1998-10-23 2004-01-27 Octave Communications, Inc. Serial-to-parallel/parallel-to-serial conversion engine
CN1222876C (zh) * 1999-09-22 2005-10-12 网孔公司 磁盘冗余阵列控制器和使其与主机连接的方法
US6772108B1 (en) * 1999-09-22 2004-08-03 Netcell Corp. Raid controller system and method with ATA emulation host interface
US6772258B2 (en) * 2000-12-29 2004-08-03 Intel Corporation Method and apparatus for sharing an interrupt between disk drive interfaces
US6854045B2 (en) * 2001-06-29 2005-02-08 Intel Corporation Hardware emulation of parallel ATA drives with serial ATA interface
US6961787B2 (en) * 2002-01-07 2005-11-01 Intel Corporation Method and apparatus for updating task files
DE10214700B4 (de) * 2002-04-03 2006-02-23 Advanced Micro Devices, Inc., Sunnyvale Kombinierter ATA/SATA-Controller als integrierter Schaltkreischip und dazugehöriges Verfahren zum Betreiben
AU2003217839A1 (en) * 2002-04-03 2003-10-20 Advanced Micro Devices, Inc. Ata/sata combined controller
US6983338B2 (en) * 2003-04-01 2006-01-03 Dell Products L.P. Coupling device for connectors wherein coupling device comprises multiplexer unit for selectiving first mode for SATA channel and second mode that establishes loop back function
US7496691B2 (en) * 2003-07-28 2009-02-24 Lsi Corporation Standard ATA queuing automation in serial ATA interface for creating a frame information structure (FIS) corresponding to command from transport layer
JP2005056519A (ja) * 2003-08-06 2005-03-03 Fujitsu Ltd ストリーム系コマンドを使用する場合の読取処理方法及び媒体記憶装置
JP2005346123A (ja) * 2004-05-31 2005-12-15 Toshiba Corp パラレルインタフェースコネクタを備えたストレージ装置及び同装置に適用される変換コネクタ
US20060075164A1 (en) * 2004-09-22 2006-04-06 Ooi Eng H Method and apparatus for using advanced host controller interface to transfer data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011142604A2 (ko) * 2010-05-14 2011-11-17 주식회사 노바칩스 반도체 칩 및 이를 구비하는 반도체 시스템
WO2011142604A3 (ko) * 2010-05-14 2012-05-18 주식회사 노바칩스 반도체 칩 및 이를 구비하는 반도체 시스템

Also Published As

Publication number Publication date
JP2008537219A (ja) 2008-09-11
TW200708958A (en) 2007-03-01
US20060224792A1 (en) 2006-10-05
DE112006000634T5 (de) 2008-02-14
GB2438782B (en) 2008-09-10
US7603514B2 (en) 2009-10-13
CN101133386A (zh) 2008-02-27
TWI334537B (en) 2010-12-11
GB2438782A (en) 2007-12-05
GB0717767D0 (en) 2007-10-24
WO2006105548A1 (en) 2006-10-05

Similar Documents

Publication Publication Date Title
US6854045B2 (en) Hardware emulation of parallel ATA drives with serial ATA interface
KR20070108410A (ko) 호스트 제어기 상에서의 독립적이면서 동시적인 데이터전달을 위한 방법 및 장치
US8423682B2 (en) Address space emulation
EP0948768B1 (en) System for facilitating data i/o between usb input device and non-usb cognition application
US20170329537A1 (en) Methods to communicate a timestamp to a storage system
US20060161419A1 (en) External emulation hardware
JPH10207637A (ja) コンピュータをデータ記憶装置と通信させる方法及び構成
JP2003150383A (ja) 多機能半導体記憶装置、及びホスト・コンピュータを起動させる方法
KR20020048414A (ko) Ata 에뮬레이션 호스트 인터페이스를 가진 raid제어기 시스템 및 방법
JP2003296191A (ja) 汎用プロセッサおよび周辺装置のプロセッサとして動作可能な集積回路
JP2001202243A (ja) データ処理装置
CN113849433A (zh) 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质
US7555641B2 (en) Efficient resource mapping beyond installed memory space by analysis of boot target
JP2006313561A (ja) データ処理装置
EP0139254A2 (en) Apparatus and method for direct memory to peripheral and peripheral to memory data transfer
US20050198425A1 (en) Combined optical storage and flash card reader using single ide or sata port and method thereof
CN115586867B (zh) NVMe控制器
CN115454902A (zh) 一种基于pcie接口的nvme通信系统及方法
CN114328342B (zh) 一种用于PCIe异构加速卡的新型程控配置方法
KR100534613B1 (ko) 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법
JPWO2007088967A1 (ja) 外部デバイス、電子機器システム及び制御方法
JP3839835B2 (ja) データ処理装置及びマイクロコンピュータ
US20020004877A1 (en) Method and system for updating user memory in emulator systems
JPS59112325A (ja) 電子計算機システム
GB2367918A (en) Batch methods for accessing IDE task registers

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application