KR100579203B1 - 능률화된 ata 장치 초기화 방법 및 장치 - Google Patents

능률화된 ata 장치 초기화 방법 및 장치 Download PDF

Info

Publication number
KR100579203B1
KR100579203B1 KR1020037004598A KR20037004598A KR100579203B1 KR 100579203 B1 KR100579203 B1 KR 100579203B1 KR 1020037004598 A KR1020037004598 A KR 1020037004598A KR 20037004598 A KR20037004598 A KR 20037004598A KR 100579203 B1 KR100579203 B1 KR 100579203B1
Authority
KR
South Korea
Prior art keywords
register
controller
cpu
task
processing unit
Prior art date
Application number
KR1020037004598A
Other languages
English (en)
Other versions
KR20030048415A (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 KR20030048415A publication Critical patent/KR20030048415A/ko
Application granted granted Critical
Publication of KR100579203B1 publication Critical patent/KR100579203B1/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/38Information transfer, e.g. on 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
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices

Abstract

본 발명은 시스템 버스를 통해 중앙 처리 장치에 연결된 제어기를 구비한 플랫폼을 포함한다. 플랫폼은 또한 중앙 처리 장치와 제어기 사이에 연결된 레지스터 장치를 포함한다. 또한, 플랫폼은 제어기에 연결되어 있으며 장치를 수용하기에 적합한 하나의 단부를 구비한 버스를 포함한다. 레지스터 장치는 최대한의 조건으로 인한 지연을 나타내지 않고 중앙 처리 장치로부터의 모든 명령어 패킷을 홀드하기에 적합한 깊이를 포함한다.
컴퓨터, 플랫폼, 레지스터, 버스, 제어기, CPU, 어드레스, 지연, 입출력

Description

능률화된 ATA 장치 초기화 방법 및 장치{STREAMLINING ATA DEVICE INITIALIZATION}
본 발명은 ATA(advanced technology attachment) 인터페이스 제어기를 구비한 정보 처리 시스템의 입출력 데이터 처리 구조에 관한 것이다. 특히, 본 발명은 새도우 레지스터 공간을 통한 주변기기 구성 초기화에 관한 것이다.
호스트 컴퓨터 시스템의 중앙 처리 장치(CPU)는 컴퓨터의 모든 다른 부분들을 제어하는 부분이 될 수 있다. CPU는 그 CPU에 국부적인 메모리로부터 명령어를 펫치(fetch)하고, 컴퓨터의 다른 부분을 제어하는 신호를 발생하기 위해 이들 명령어를 디코드한다. 이것은 CPU로 하여금 메모리와 산술 논리 유닛(ALU) 사이에서 데이터를 전송하게 하거나 또는 외부 장치 또는 주변기기로 하여금 입출력 서비스를 수행하도록 한다. 주변기기의 예로는 하드 디스크 드라이브가 있다.
하드 디스크 드라이브로 하여금 입출력 서비스를 수행하도록 하기 위해, CPU는 하드 디스크 드라이브가 연산 명령어를 수신할 준비를 하도록 하드 디스크 드라이브를 초기화할 수 있다. 하드 디스크 드라이브를 초기화하기 위해, CPU는 태스크-파일 레지스터 셋트로 불리는 것을 통해 하드 디스크 드라이브로 하나 또는 그 이상의 태스크-파일 초기화 명령어를 데이터 패킷으로서 전송할 수 있다. 각각의 태스크-파일 초기화 명령어는 실행을 위해 소정 길이의 시간이 걸린다. 그 한가지 이유는 각각의 명령어 실행이 그 다음 명령어가 실행될 수 있기 전에 CPU에 의해 검증된다는 것이다.
종래에, CPU는 그 처리 시간의 한 블록을 주변기기의 초기화에 전용했다. 이러한 주변기기 초기화 전용 시간 동안에, CPU는 다른 처리 기능을 수행할 수 없었다. 이러한 방식에 의해 CPU 성능이 느려졌다.
발명의 요약
본 발명은 시스템 버스를 통해 중앙 처리 장치에 연결된 제어기를 구비한 플랫폼을 포함한다. 플랫폼은 또한 중앙 처리 장치와 제어기 사이에 연결된 레지스터 장치를 포함한다. 또한, 플랫폼은 제어기에 연결되어 있으며 장치를 수용하기에 적합한 하나의 단부를 구비한 버스를 포함한다. 레지스터 장치는 최대한의 조건으로 인한 지연을 나타내지 않고 중앙 처리 장치로부터의 모든 명령어 패킷을 홀드하기에 적합한 깊이를 포함한다.
도1은 본 발명의 플랫폼(100)의 블록도.
도2는 판독/기록 명령어 셋업 프로토콜 방법(200)을 예시한 도면.
도3은 표준 입출력(I/O) 태스크-파일 액세스를 예시한 도면.
도4는 태스크-파일 액세스를 능률화시키는 본 발명의 실시예를 도시한 도면.
초기화 완료 통지를 처리하기 위해 CPU를 채택한 종래기술과 달리, 초기화 완료 통지를 처리하기 위해 도1의 레지스터 장치(128)가 채택될 수 있다. 레지스터 장치(128)를 이용하여, 본 발명은 CPU가 ATA 장치를 초기화시키는데 전용(dedicate)할 수 있는 시간을 감소시키는 작용을 한다.
대부분의 개인용 및 이동식 컴퓨터는 컴퓨터의 기억장치와 CPU 사이의 전력 및 데이터 신호 인터페이스 통신을 자세히 기술하는 산업 표준을 채택하고 있다. 대중적인 일련의 산업 표준이 ATA 표준이다. 때때로, AT attachment(ATA) 또는 IDE(integrated drive electronics)로도 불리는, 이러한 표준 셋트는 미국 워싱턴 D.C 소재의 NCITS(National Committee on Information Technology Standards)(www.NCITS.org 참조)의 기술 위원회 T13(www.t13.com 참조)에 의해 만들어진다.
디스크 드라이브를 위한 ATA 인터페이스(ANSI X3.221-199x)는 기억장치 연산을 위한 프로토콜 및 명령어 뿐만 아니라 호스트 시스템과 기억장치 사이의 상호접속 신호의 논리적 특성을 명시하는 디스크 드라이브 인타페이스 표준이다. 이 표준은 이 표준에 따르는 호스트 시스템 제품과 기억장치 제품이 비록 서로 다른 제조 자에 의해 생산되는 경우에도 이들 제품 사이의 호환성을 허용한다.
제어기는 한 장치로부터 주변기기로 또는 그 역으로 데이터의 전송을 제어하는 장치로 생각될 수 있다. 통상적으로, ATA 인터페이스 제어기는 (하드 디스크 드라이브와 같은) ATA 장치와 CPU 사이에 위치될 수 있다. ATA 인터페이스 제어기는 각각의 입출력(I/O) 사이클 동안에 CPU/ATA 장치 통신을 용이하게 하기 위한 변환기(translator)로서 작용할 수 있다. 예를 들어, 초기화 명령어와 같은 명령어를 CPU로부터 수신하면, ATA 인터페이스 제어기는 그 명령어를 다운스트림 ATA 장치가 이해할 수 있는 것으로, 즉, ATA 장치가 처리할 수 있는 것으로 표현하여 그 명령어를 부속된 ATA 장치로 전송한다. 변환된 명령어를 수신하면, ATA 장치는 그 명령어를 처리할 수 있으며, ATA 인터페이스 제어기를 통해 CPU로 완료 통지를 반송할 수 있다. 전송된 명령어로부터 완료 통지까지의 이러한 통상적인 입출력 사이클은 약 1.2 마이크로초(㎲-100만분의 1초)가 걸릴 수 있는 단일 태스크-파일 레지스터 액세스이다.
ATA 장치로 정보를 전송하는 것은 태스크-파일 레지스터 셋트로의 수개의 개별 동작(또는 "기록")을 수반할 수 있으며, 이 각각의 동작은 통상적으로 1.2㎲ I/O 사이클에서 처리될 수 있다. 예를 들어, ATA 인터페이스 제어기에 의해 7개의 개별 초기화 동작이 처리되는 경우에, 총 I/O 사이클 시간은 8.4(=7x1.2)㎲가 될 수 있다. 이들 7개의 기록의 집합이 하나의 태스크-파일로서 간주될 수 있다. 데이터의 전송을 위해 ATA 장치를 적절하게 인에이블시키기 위해 일련의 명령어 또는 입출력 액세스를 수행하는데 있어 CPU의 동작은 "태스크-파일 기록"으로서 언급될 수 있다.
ATA 인터페이스 제어기 장치가 태스크-파일 I/O를 전송하는 시간 동안에, CPU는 다른 명령어를 발생하거나 다른 요구를 수신하는 것이 차단된다. 현재의 ATA 표준에 따르면, CPU는 7개의 개별적인 I/O 태스크-파일 기록을 위해 ATA 장치로 명령어를 전송할 때 8.4㎲ 동안 방해를 받게 된다. 이러한 대기시간을 고려하면, 1GHz CPU는 1㎲에 약 1,000개의 통상적인 명령어를 실행할 수 있으며, 그러므로, 만일 CPU가 ATA 장치 명령어 셋업에 전용하는 시간이 감소된다면, CPU가 ATA 장치 초기화에 전용하는 8.4㎲ 동안에, 최대 8,400개의 통상적인 명령어가 CPU에 의해 처리될 수도 있다.
본 발명은 태스트-파일 I/O 완료를 처리하기 위해 새도우 레지스터 공간을 이용함으로써, CPU가 ATA 장치의 명령어 셋업에 전용할 수 있는 시간을 8.4㎲로부터 약 1.4㎲로, 즉 약 7.0㎲만큼 감소시키는 작용을 하게 된다. 또한, 본 발명은 CPU가 CPU 내부 및 외부의 장치들의 동작에 전용할 수 있는 시간을 감소시키기 위해 이용될 수 있다. 그러므로, 하나의 태스크-파일 레지스터가 기록되고, ATA 장치로의 I/O 사이클이 완료될 때까지 CPU가 대기해야 하는 "최대한의 조건(full condition)"에서, 레지스터 공간은 본 발명에서 설명되는 ATA 인터페이스 제어기에서의 확장이 ATA 장치로의 I/O 사이클을 완료할 수 있도록 허용한다. 따라서, CPU가 태스크-파일 기록과 같은 다른 태스크의 처리로 복귀할 수 있도록 허용한다.
도1은 본 발명의 플랫폼(100)의 블록도이다. 이 플랫폼(100)은 CPU를 구비한 어떤 시스템에도 연결될 수 있다. 예를 들어, 이 프랫폼(100)은 데스크탑 컴퓨터, 메인 프레임, 라디오, 텔레비전, 랩탐과 같은 이동식 컴퓨터, 위성 시스템 또는 정보를 처리하는 다른 전자장치와 연결될 수 있다.
플랫폼(100)은 마더보드(102)를 포함할 수 있다. 마더보드(102)는 컴퓨터의 메인 보드가 될 수 있다. 또한, 마더보드(102)는 CPU, 키보드, 모니터를 위한 회로를 포함할 수 있으며, 추가회로를 수용하기 위한 슬롯을 포함할 수 있다. 마더보드(102) 내에는, CPU(110), 시스템 버스(112), 비디오 카드(114), 메모리(116), 입출력(I/O) 포트(118), 및 제어기(120)가 포함될 수 있다. 제어기(120)에는 기억장치(122)가 연결될 수 있다.
CPU(110)는 플랫폼(100)에서 소프트웨어 명령어를 실행함으로써 모든 다른 부분을 제어하는 부분이 될 수 있다. 시스템 버스(112)는 마더보드(102) 상의 다양한 기능 유닛을 연결하는 도체 셋트(집적회로 내의 배선, 인쇄회로 기판 트랙 또는 접속)가 될 수 있다. 예를 들어, 비디오 카드(114), 메모리(116), I/O 포트(118) 및 제어기(120)가 시스템 버스(112)를 통해 CPU(110)에 연결될 수 있다. 도1에 도시된 바와 같이, 제어기(120)는 버스(124)를 통해 시스템 버스(112)에 연결되고, 버스(126)를 통해 기억장치(122)에 연결될 수 있다. 비디오 카드(114)는 모니터에 비트맵 디스플레이를 제공하기 위해 필요한 비디오 메모리 및 다른 전자장치를 구비한 회로 보드가 될 수 있다. 메모리(116)는 머신-판독가능 포맷으로 데이터를 홀드하는 모든 기억장치가 될 수 있다. I/O 포트(118)는 키보드, 마우스, 터치 스크린, 조이스틱, 디지타이징 태블릿 및 마이크로폰과 같은 입력장치(도시 안됨)와 CPU(110) 사이의 통신을 용이하게 할 수 있다.
제어기(120)는 CPU(110)와 기억장치(122) 사이의 통신 변환기로서 작용하는 장치가 될 수 있다. 제어기(120)는 버스(126) 상으로 프로토콜 명령어를 실행시키는 논리를 포함할 수 있다. 일실시예에서, 제어기(120)는 ATA 인터페이스 제어기가 될 수 있다.
기억장치(122)는 CPU 명령어의 변환을 필요로 하고 플랫폼(100)에 연결된 위치에 저장된 정보를 이용할 수 있는 어떤 장치도 될 수 있다. 기억장치(122)는 중심축에 대해 회전하는 적어도 하나의 단단한 자기 데이터 저장 디스크(하드디스크)로부터/로 판독 및 기록하기에 적합한 디스크 드라이브가 될 수 있다.
버스(124)는 16-비트 버스가 될 수 있다. 이 기술분야에 통상의 지식을 가진 자는 버스(124)가 32-비트 PCI 버스와 같이 더 많은 처리능력을 가질 수도 있다는 것을 이해할 것이다. 버스(126)는 마스터 장치와 같은 ATA 장치로서 기억장치(122)에 하나가 접속되고, 다른 하나는 슬레이브 장치와 같은 제2 ATA 장치에 접속되는 ATA 리본(ribbon) 케이블을 구비한 제1 채널이 될 수 있다. 각각의 리본 케이블은 44/80 도체 케이블 또는 다른 적절한 도체 케이블이 될 수 있다. 마스터 및 슬레이브 장치의 제2 쌍에 서비스를 제공하기 위해 버스(126)와 유사한 제2 채널이 제어기(120)에 연결될 수 있다.
플랫폼(100) 내에서 의미있는 방식으로 데이터를 전송하기 위해, 전송의 발신지(source)와 목적지(destination)를 고유하게 식별하기 위한 방법이 요구될 수 있다. 이러한 식별은 가정이나 회사의 메일박스와 매우 유사한 어드레스를 이용하여 이루어질 수 있다. 플랫폼(100)에 있어서, 이러한 방식은 어드레싱으로 언급될 수 있다.
메모리 집적회로, 기억장치(122) 및 CPU(100)와 같은 각각의 장치는 그 고유의 논리 어드레스 공간을 가질 수 있다. 어드레스 공간은 프로세서 또는 프로세스가 액세스할 수 있거나 또는 소정의 장치가 액세스될 수 있는 어드레스들의 범위가 될 수 있다.
장치의 어드레스 범위는 적어도 어드레스의 폭, 즉 어드레스 내의 비트의 수에 의존할 수 있다. 16 비트의 어드레스 폭을 가진 장치 버스는 고유하게 216, 정확하게는 65,536개의 위치를 식별한다. 프로세서의 어드레스 공간의 크기는 프로세서의 어드레스 버스의 폭 및 어드레스 레지스터들에 의존한다. 각각의 로컬 어드레스는 프로세서의 어드레스 공간 내의 소정의 기본 어드레스에서 시작하여 어드레스들의 범위로 매핑될 수 있다. 마찬가지로, 각각의 프로세스는 프로세서의 어드레스 공간의 전부 또는 일부가 될 수 있는 그 고유의 어드레스 공간을 갖게 된다.
어드레스 공간은 메모리 어드레스 공간과 I/O 어드레스 공간으로 분할될 수 있다. 동작중에, CPU(110)는 메모리 어드레스 공간, I/O 어드레스 공간 또는 메모리 어드레스 공간과 I/O 어드레스 공간의 조합을 통해 플랫폼(100)의 구성요소들과 통신할 수 있다.
표준 마이크로프로세서 아키텍처에 있어서, I/O 어드레스 공간의 0-FFFFhex 공간은 65,535개의 어드레스 위치(= 15*163 + 15*162 + 15*161 + 15*16 0)(때때로 64K로도 언급됨)를 포함할 수 있다. I/O 어드레스 공간을 이용하는 플랫폼(100)의 장 치들이 이 어드레스 범위를 통해 매핑될 수 있다. 통상적으로, CPU는 I/O 어드레스 공간을 통해 기억장치를 초기화하고 액세스하게 된다. 보다 상세하게 후술되는 바와 같이, CPU(110)는 기억장치(122)를 초기화하고 액세스하기 위해 메모리 어드레스 공간을 고유하게 이용한다. 메모리 어드레스 공간은 데이터의 이동량에 따라 조정될 수 있으며, 그 이유는 CPU가 다른 처리 태스크로 이동할 수 있기 전에는 메모리 기록이 완료 표시를 필요로 하지 않기 때문이다. 그러므로, 기억장치(122)에 액세스하기 위해 메모리 어드레스 공간을 이용하면, I/O 어드레스 공간을 이용하는 것보다 장점을 제공한다.
CPU(110)가 기억장치(122)와 통신할 수 있도록 하기 위해, 통상적으로는 기억장치(122)의 제어 및 명령어를 위한 I/O 어드레스 공간 내의 어드레스 범위로서 한 셋트의 어드레스가 할당될 수 있다. 기억장치(122)가 액세스될 수 있는 이러한 어드레스 범위는 태스크-파일로서 알려져 있다. ATA 표준 하에서, 어드레스 범위 1F0hex-1F7hex(또는 1F0h-1F7h)는 PFT(Primary Command Task-file)로서 알려져 있으며, 3F6hex는 PCT(Primary Control Task-file)로서 알려져 있다.
CPU(110)가 기억장치(122)와 같은 ATA 장치로/로부터 데이터를 기록 또는 판독할 필요가 있을 때마다, CPU(110)는 일련의 초기화 명령어를 그 ATA 장치로 전송할 수 있다. 예를 들어, 기억장치(122)는 CPU 초기화 명령어를 수신하면, 그 자신을 CPU(110)가 요구한 바와 같이 데이터를 전송할 수 있는 상태로 만들기 위해 이들 일련의 명령어를 수행할 수 있다. 따라서, 이 태스크-파일의 9개의 어드레스 각 각은 CPU가 초기화 데이터를 기록할 수 있는 레지스터 공간을 가질 수 있다. 각각의 태스크-파일 레지스터 공간은 특정 제어 또는 명령 기능을 나타내며, 그 동작은 그 어드레스에 위치한 수치 데이터에 기반하여 이루어질 수 있다.
기억장치(122)를 초기화하기 위해, CPU(110)는 초기화 명령어를 셋업하기 위해 소프트웨어 드라이버를 이용할 수 있다. 이들 소프트웨어 드라이버는 하나의 태스크-파일 내의 9개의 레지스터 공간 각각에 명령어 패킷을 형성하는 일련의 명령어 어드레스(I/O 액세스)로서 데이터를 기록한다(위치시킨다). CPU(110)는 다음에 그 태스크-파일 명령어 패킷을 직접 제어기(120)를 통해 기억장치로 전송하게 된다. 이러한 명령어 패킷을 수신하면, 기억장치(122)는 각각의 9개의 어드레스 명령어를 순차적으로 실행하고, 각각의 실행 이후에 완료 메시지를 CPU(110)로 전송하게 된다.
CPU(110)가 기억장치(122)를 초기화하는데 전용할 수 있는 시간을 감소시키기 위해, 도1의 플랫폼(100)은 CPU(110)와 기억장치(122) 사이에 배치되는 레지스터 장치(128)를 더 포함할 수 있다. 이 레지스터 장치(128)는 제어기(120)와 CPU(110) 사이에 배치되거나 또는 버스(130)를 통해 시스템 버스(112)에 연결될 수 있다.
CPU(110) 및 제어기(120)가 데이터 패킷을 정확하게 동일한 속도로 전송하거나 수신하고 있지 않으면(예를 들어, 이들이 동기화되지 않음), 레지스터 장치(128)는 포스팅(posting) 하드웨어 버퍼를 포함할 수 있으며, 이 버퍼로부터 항목들(items)은 CPU(110)와 제어기(120) 사이에서 데이터의 스트림을 버퍼링하기 위해 그것들이 놓여진 순서와 동일한 순서로 꺼내지게 된다. 레지스터 장치(128)는 FIFO(First-in-First-out) 장치가 될 수 있다. 레지스터 장치(128)는 각각의 엔트리가 하나의 구조를 갖는 큐 장치가 될 수 있다. 또한, 레지스터 장치(128)는 최대한의 조건으로 인한 지연을 나타내지 않고 CPU(110)로부터의 모든 태스크-파일 기록 명령어 패킷을 홀드하는 깊이를 가질 수 있다. 또한, 레지스터 장치(128)의 깊이는 성능을 최적화시키기 위해 판독가능한 레지스터를 통해 태스크-파일 기록 소프트웨어로 전달될 수 있다.
필요한 파라미터를 이용하여 명령어 블록내에 요구된 레지스터를 로딩하고, 명령어 코드를 명령어 레지스터에 기록함으로써, 명령어들이 레지스터 장치(128)를 통해 기억 장치(122)에 제공될 수 있다. 정보 기술(Information Technology - AT Attachment With Packet Interface- 5 (ATA/ATAPI-5) 1999 표준안 p.133-134) 하에서, 버스(130)는 다음과 같은, 9개의 어드레스 1F0hex - 1F7hex, 3F6hex 를 갖는 메모리 어드레스 공간을 사용할 수 있다.
테이블 Ⅰ 직접 메모리 액세스(DMA) 입력 명령어 판독
어드레스 레지스터 7 6 5 4 3 2 1 0
1F2 특징 NA
1F3 섹터 카운트 섹터 카운트
1F0 섹터 넘버 섹터 넘버 또는 LBA
1F4 실린더 로우 실린더 로우 또는 LBA
1F5 실린더 하이 실린더 하이 또는 LBA
1F6 장치/헤드 obs LBA obs DEV LBA의 헤드 넘버
1F7 명령어 명령어 코드 C8h
3F6 제어 제어 코드 ㅊ8ㅗ

테이블 Ⅰ에 나타난 바와 같이, 직접 메모리 액세스(DMA) 장치를 판독하기 위한 입력 명령어/제어 코드는 C8h가 될 수 있다. 잔여 레지스터 필드에 대해서는, 특징 레지스터 필드는 테이블 Ⅰ의 직접 메모리 액세스 입력에 적용할 수 없다(NA). 섹터 카운트 레지스터 필드는 전송될 섹터의 넘버를 지시한다. 예를 들면, 00h 값은 256 섹터가 전송된다는 것을 나타낸다. 섹터 넘버 레지스터 필드는 시작 섹터 넘버 또는 논리 블록 어드레스(LBA) 모드 어드레스 비트(7:0)를 나타낸다. 실린더 로우 레지스터 필드는 시작 실린더 넘버 비트(7:0) 또는 LBA 어드레스 비트(15:8)를 지시한다. 또한, 실린더 하이 레지스터 필드는 시작 실린더 넘버 비트(15:8) 또는 LBA 어드레스 비트(23:16)를 나타낸다.
장치/헤드 레지스터 필드에 있어서, 비트6은, LBA 논리적 어드레싱 모드가 사용중인 경우에는 1로 설정되고, 실린더, 헤드, 섹터(CHS) 물리적 어드레싱 모드가 사용중인 경우에는 0으로 클리어된다. 비트7은 시작 실린더 넘버 비트(7:0) 또는 LBA 어드레스 비트(15:8)을 나타낸다. 비트7 및 비트5의 사용은 무효가 된다(obs). 비트4는 선택된 장치(DEV)를 지시한다. 나머지 비트 또는 장치/헤드 레지스터 필드, 비트3~0은 헤드 넘버 비트(3:0) 또는 LBA 모드 어드레스 비트(27:24)를 나타낸다.
레지스터 장치(128)와 함께 테이블 Ⅰ의 명령어 레지스터 필드를 사용하는 것은, 플랫폼(100)의 소프트웨어 드라이버가 태스크-파일 명령어 시퀀스를 제어기(120)의 메모리-맵에 기록하도록 할 수 있다. 이 간소한 태스크-파일 액세스 기술의 장점은 버스(126) 상에서 기억 장치(122)로의 I/O 데이터 전송의 완료를 차단하지 않는다. 다시 말해서, I/O 사이클 대신에 메모리 기록을 이용하여, CPU(110)는 시스템 버스(112) 상에서 클럭 사이클의 최소 넘버로 각 기록을 완료하기 위해, 제어기(120)내의 기반 구조를 포스팅(posting)하는 현재 메모리 기록을 적용한다.
버스(126) 상에서 저장 장치(122)로 의 I/O 데이터 전송의 완료를 차단하지 않음으로써, 제어기(120)는, CPU(110)가 기억 장치(122)의 초기화로부터 자유로워지는 것에 지배되지 않는 속도로, 태스크-파일 레지스터 컨텐츠를 기억 장치로 전송할 수 있다. 여기서, 플랫폼(100)은 기억 장치(122)에 의해 이해될 수 있는 I/O 기록 속도 및 I/O 기록 포맷으로 메모리 기록을 변환할 수 있다. 이에 따라, 사이클이 버스(126) 상에서 (CPU(110)에 의해 포스팅되는 것보다 훨씬 더 느린 속도로) 실행되는 동안에, CPU(110)는 후속 태스크-파일 메모리 기록을 레지스터 장치(128)에 포스팅하거나 또는 다른 처리 동작으로 이동할 수 있다.
도2는 기록/판독 명령어 셋업 프로토콜 방법(200)을 도시하고 잇다. 도3은 도2의 방법의 타임라인(timeline)을 도시하고 있다. 쉽게 알 수 있는 바와 같이, 도3에서, 드라이브 선택 기록과 같이, ATA 채널이 액티브 상태인 동안에, CPU는 다른 태스크를 수행하는 것으로부터 차단된다.
방법(200)은 태스크-파일을 기록하는데 사용되는 종래 프로토콜과 유사점을 포함할 수 있다. 그러나, 방법(200)은 I/O 맵 태스크-파일 레지스터 대신에, 메모리-맵 레지스터 큐(memory-mapped register queue)에 기록하는 것을 포함한다.
방법(200)은, 실행되는 경우 본 발명의 플랫폼(100)으로 하여금 방법(200)을 수행하도록 야기하는 판독가능 매체로 구현될 수 있다. 일실시예에서, 방법(200) 은, 실행되는 경우 클라이언트 컴퓨터 시스템 및 서버 컴퓨터 시스템 중 적어도 하나로 하여금 방법(200)을 수행하도록 야기하는 실행가능 컴퓨터 프로그램 명령어를 포함하는 분산형 판독가능 저장 매체를 통해 구현될 수 있다. 또한, 방법(200)은, 실행되는 경우 플랫폼(100)을 포함한 컴퓨터 시스템으로 하여금 방법(200)을 수행하도록 야기하는 실행가능 컴퓨터 프로그램 명령어를 포함하는 컴퓨터 판독가능 저장 매체를 통해 구현될 수 있다.
방법(200)은 단계(202)에서 시작된다. 단계(202)에서, 방법(200)은 기억 장치(122)의 어텐션(attention)을 명령하기 위해 기억 장치(122)를 어드레싱할 수 있다. 상기의 테이블 Ⅰ로부터, 장치/헤드 레지스터 필드의 비트4가 선택된 장치(DEV)를 지시한다는 것을 조회한다. 따라서, 단계(202)는 장치/헤드 레지스터 필드의 비트4(기록/드라이브 선택 비트)에 알맞한 입력을 배치하는 것을 포함할 수 있다. 이 비트4 정보는 항상 I/O 태스크-파일로 전송된다.
단계(204)에서, 방법(200)은 기억 장치(122)가 사용중(busy)인지의 여부를 판단하기 위해, 기억 장치(122)의 교번-상태 레지스터를 판독할 수 있다. 기억 장치(122)가 사용중인 경우, 소형 컴퓨터 시스템 인터페이스(SCSI) 요구 블록(SRB) 필드가 클리어(clear) 상태가 아니기 때문에, 방법(200)은, 단계(206)에서, "SRB_STATUS_BUSY" 신호를 리턴한다. 단계(206)로부터, 방법(200)은 단계(204)로 리턴할 수 있다.
정규 동작하에서, 알트-상태 레지스터(alt-state register)의 제1 판독에서 기억 장치(122)가 사용중이 아닐 수 있다. 이에 따라, 단계(204)의 판독 명령어가 I/O 태스크-파일로 전송될 수 있다. 대안적으로, 방법(200)은 20,000회까지 단계(204)로 리턴할 수 있다. 여기서, 단계(204)의 판독 명령어는 메모리 큐에 전송될 수 있다.
기억 장치(122)가 사용중이 아닌 경우, 방법(200)은 단계(208)로 진행될 수 있다. 단계(208)에서, 방법(200)은 기억 장치(122)의 DMA 엔진이 액티브인지의 여부를 판단할 수 있다. 기억 장치(122)의 DMA 엔진이 액티브인 경우, 단계(210)에서, DMA 엔진은 턴오프되고, 그 드라이브는 리셋될 수 있다. 기억 장치(122)의 DMA 엔진이 액티브가 아닌 경우, 방법(200)은 단계(212)로 진행된다.
단계(212)에서, 방법(200)은 블록 카운트 및 프로그램 장치를 계산할 수 있다. 이것은 테이블 Ⅰ의 섹터 카운트 레지스터 필드의 메모리 큐에 블록 길이를 기록하는 것을 포함할 수 있다. 단계(212)는 메모리 큐에 블록 길이를 기록하는 것을 포함하는 반면에, 종래 기술하에서는 블록 길이가 I/O 태스크-파일에 기록된다는 점에서, 단계(212)가 종래 기술과 구별된다.
단계(214)에서, 방법(200)은 논리 블록 어드레스(LBA) 및 프로그램 장치를 계산할 수 있다. 이것은 상기 테이블 Ⅰ의 다음의 레지스터, 즉, 섹터 넘버, 실린더 로우, 실린더 하이, 및 장치/헤드 레지스터를 메모리 큐에 기록하는 것 중 적어도 하나를 포함할 수 있다. 단계(214)는 메모리 큐에 레지스터들을 기록하는 것을 포함하는 반면, 종래 기술하에서는 이 레지스터들이 I/O 태스크-파일에 기록된다는 점에서, 단계(214)가 종래 기술과 구별된다.
단계(216)에서, 방법(200)은 DMA 디스크립터 테이블 컨텐츠를 프로그래밍하 는 것을 포함할 수 있다. 단계(218)에서, 테이블 Ⅰ의 명령어 레지스터가 I/O 태스크-파일 보다는 메모리 큐에 전송될 수 있는 판독 또는 기록 명령어로 프로그래밍될 수 있다.
단계(220)에서, DMA 엔진이 프로그램될 수 있다. 이것은 제어기(120)와 같이, 특정-액세스 제어기에 대한 BM 인터럽트(BMI) 상태 비트를 클리어하는 것을 포함할 수 있다. 또한, DMA 엔진의 드라이브 전송 프로토콜(DTP)이 설정될 수 있다. 일실시예에서, BMI_DTP 레지스터는 단지 한번 설정될 수 있다. 마지막으로, BMI 제어가 "시작/정지 버스 마스터(Start/Stop Bus Master)" 비트로 설정될 수 있다.
단계(220)에서 프로그램된 DMA 엔진을 이용하여, 방법(200)은, 단계(222)에서, 기억 장치(122)로부터의 인터럽트 신호를 기다린다. 이것은, SCSI 요구 블록(SRB) 필드가 변경과 관련되기 때문에, "SRB_STATUS_PENDING" 신호를 리턴하는 것을 포함할 수 있다. 단계(224)에서, 인터럽트 신호가 수신된다.
본 발명은 직접 메모리 액세스 판독 또는 기록이 ATA 장치에 전달될 때마다 적용될 수 있다. 통상의 컴퓨터 시스템은 직접 메모리 액세스 판독 또는 기록을 통해 액세스를 위해 인에이블될 수 있는 1차 하드 디스크 드라이브를 포함하기 때문에, CPU 성능이 본 발명을 이용하여 향상될 수 있다. 이후에, CPU 성능이 향상됨에 따라, 본 발명이 감소쪽으로 작용하는 디스크 액세스 오버헤드가 성능 이득과 동일해질 것이다.
도4는 태스크-파일 액세스가 능률화된 본 발명의 방법을 위한 시간 스케쥴을 도시하고 있다. 도1에 도시된 바와 같이, 레지스터 장치(128)를 이용하여, CPU가 다른 태스크를 처리할 수 있도록 자유로워진다.
전술한 실시예는 또한 명령어를 수행하기 위해, 장치에 저장 또는 매체에 저장되고, 머신에 의해 판독될 수 있다. 장치 또는 매체는 고체 메모리 장치 및/또는 회전식 자기 또는 광 디스크를 포함할 수 있다. 명령어의 파티션들이 컴퓨터의 인터커넥션 등을 통해 상이한 머신으로 분리된 경우, 장치 또는 매체는 분산될 수 있다.
전술된 예시적인 실시예들은 단지 본 발명의 원리를 설명하기 위해 제공된 것이며, 청구된 본 발명의 범위를 제한하도록 의도된 것은 아니다. 따라서, 본 명세서 및 도면은 제한적인 의미라기 보다는 예시적인 의미로 간주되어야 한다. 또한, 본 발명의 원리는, 여기서 기술된 장점 및 그 밖의 장점들을 달성하고, 다른 목적들을 만족시키도록 적용될 수 있다.

Claims (22)

  1. 중앙 처리 장치;
    시스템 버스를 통해 상기 중앙 처리 장치에 연결된 제어기;
    상기 중앙 처리 장치와 상기 제어기 사이에 연결된 레지스터 장치; 및
    상기 제어기에 연결되어 있으며, 장치를 수용하기에 적합한 하나의 단부를 구비한 버스
    를 포함하고,
    여기서, 상기 레지스터 장치는 상기 CPU로부터 명령어를 수신하고, 상기 제어기는 상기 레지스터 장치로부터 상기 명령어를 수신하며, 상기 레지스터 장치는 상기 CPU 및 상기 제어기의 외부에 배치되고,
    상기 제어기 및 상기 레지스터 장치의 새도우 레지스터 공간은, 태스크-파일 레지스터가 기록되고, 상기 CPU가 상기 태스크-파일 레지스터에 대한 입/출력(I/O) 사이클이 완료될 때까지 대기해야 하는 조건 동안에, 상기 장치에 대한 I/O 사이클의 완료를 가능하게 하고, 상기 레지스터 장치는 상기 제어기가 상기 레지스터 장치로부터 상기 명령어를 수신하는 것보다 빠른 속도로 상기 CPU로부터 상기 명령어를 수신하는
    플랫폼.
  2. 제1항에 있어서,
    상기 제어기는 ATA(Advanced Technology Attachment) 인터페이스 제어기인
    플랫폼.
  3. 제1항에 있어서,
    상기 레지스터 장치는 포스팅 하드웨어 버퍼를 포함하는
    플랫폼.
  4. 제1항에 있어서,
    상기 레지스터 장치는 FIFO 장치인
    플랫폼.
  5. 제1항에 있어서,
    상기 태스크-파일 레지스터가 기록되고, 상기 CPU가 상기 장치에 대한 I/O 사이클이 완료될 때까지 대기할 때에 최대 조건(full condition)이 발생하는
    플랫폼.
  6. 제2항에 있어서,
    상기 제어기에 연결된 버스는 ATA 리본 케이블을 구비한 제1 채널인
    플랫폼.
  7. 제1항에 있어서,
    상기 버스를 통해 상기 제어기에 연결된 기억장치
    를 더 포함하는 플랫폼.
  8. 제7항에 있어서,
    상기 기억장치는 적어도 하나의 단단한 자기 데이터 저장 디스크를 판독 및 기록하기에 적합한 디스크 드라이버인
    플랫폼.
  9. 제1항에 있어서,
    상기 레지스터 장치에 저장된 명령어는 I/O 사이클 대신에 메모리 기록에 의해 ATA 장치로 송신되고, 상기 레지스터 장치는 태스크-파일 I/O 사이클 동안에 CPU가 차단되는 것을 방지하는
    플랫폼.
  10. 제어기 및 레지스터 장치를 통해 중앙 처리 장치에 연결된 기억장치를 어드레싱하는 단계 - 여기서, 상기 제어기는 시스템 버스를 통해 상기 중앙 처리 장치에 연결되고, 상기 레지스터 장치는 상기 중앙 처리 장치와 상기 제어기 사이에 연결되고, 상기 레지스터 장치는 상기 중앙 처리 장치 및 상기 제어기의 외부에 배치되고, 상기 제어기는 장치를 수용하기에 적합한 하나의 단부를 구비함 -;
    메모리 큐에 블록 길이를 기록하는 단계;
    상기 메모리 큐에 다수의 레지스터의 내용을 기록하는 단계;
    판독 및 기록 명령어 중 하나에 따라 디스크립터 명령어 레지스터를 저장하고, 상기 판독 및 기록 명령어 중 하나를 상기 메모리 큐로 송신하는 단계;
    다수의 직접 메모리 액세스 비트에 대한 값을 설정하는 단계;
    프로토콜을 설정하는 단계;
    상기 저장장치로부터 인터럽트 신호를 기다리는 단계;
    태스크-파일 레지스터가 기록되고, 상기 중앙 처리 장치가 상기 태스크-파일 레지스터에 대한 I/O 사이클이 완료될 때까지 대기해야하는 조건 동안에 상기 제어기 및 상기 레지스터 장치의 새도우 레지스터 공간을 이용함으로써, 상기 장치에 대한 I/O 사이클의 완료를 가능하게 하는 단계; 및
    상기 제어기가 상기 레지스터 장치로부터 상기 명령어를 수신하는 것보다 더 빠른 속도로 상기 레지스터 장치에 의해 상기 중앙 처리 장치로부터 상기 명령어를 수신하는 단계
    를 포함하는 방법.
  11. 제10항에 있어서,
    상기 메모리 큐에 대한 판독 및 기록 중 하나를 포함하는 상기 디스크립터 명령어 레지스터를 로딩하는 단계
    를 더 포함하는 방법.
  12. 제11항에 있어서,
    상기 제어기가 상기 메모리 큐로부터 상기 저장장치로 입/출력 데이터를 전송함에 따라, 상기 중앙 처리 장치는 상기 저장장치로의 입/출력 데이터의 전송 완료에 대해 차단되지 않는
    방법.
  13. 제10항에 있어서,
    상기 제어기가 상기 메모리 큐로부터 상기 저장장치로 입/출력 데이터를 전송함에 따라, 상기 중앙 처리 장치는 상기 저장장치로의 I/O 데이터의 전송 완료에 대해 차단되지 않는
    방법.
  14. 실행가능한 명령어들을 포함하고 있는 머신-판독가능 매체에 있어서,
    상기 명령어들은 실행될 때, 플랫폼으로 하여금, 다음의 단계, 즉
    제어기 및 레지스터 장치를 통해 중앙 처리 장치에 연결된 기억장치를 어드레싱하는 단계 - 여기서, 상기 제어기는 시스템 버스를 통해 상기 중앙 처리 장치에 연결되고, 상기 레지스터 장치는 상기 중앙 처리 장치와 상기 제어기 사이에 연결되고, 상기 레지스터 장치는 상기 중앙 처리 장치 및 상기 제어기의 외부에 배치되고, 상기 제어기는 장치를 수용하기에 적합한 하나의 단부를 구비함 -;
    메모리 큐에 블록 길이를 기록하는 단계;
    상기 메모리 큐에 다수의 레지스터의 내용을 기록하는 단계;
    판독 및 기록 명령어 중 하나에 따라 디스크립터 명령어 레지스터를 저장하고, 상기 판독 및 기록 명령어 중 하나를 상기 메모리 큐로 송신하는 단계;
    다수의 직접 메모리 액세스 비트에 대한 값을 설정하는 단계;
    프로토콜을 설정하는 단계;
    상기 저장장치로부터 인터럽트 신호를 기다리는 단계;
    태스크-파일 레지스터가 기록되고, 상기 중앙 처리 장치가 상기 태스크-파일 레지스터에 대한 I/O 사이클이 완료될 때까지 대기해야하는 조건 동안에 상기 제어기 및 상기 레지스터 장치의 새도우 레지스터 공간을 이용함으로써, 상기 장치에 대한 I/O 사이클의 완료를 가능하게 하는 단계; 및
    상기 제어기가 상기 레지스터 장치로부터 상기 명령어를 수신하는 것보다 더 빠른 속도로 상기 레지스터 장치에 의해 상기 중앙 처리 장치로부터 상기 명령어를 수신하는 단계를 수행하도록 야기하는
    머신-판독가능 매체.
  15. 제14항에 있어서,
    상기 명령어들은 상기 메모리 큐에 대한 판독 및 기록 중 하나를 더 포함하는 상기 디스크립터 명령어 레지스터를 저장하는 단계를 더 수행하는
    머신-판독가능 매체.
  16. 삭제
  17. 삭제
  18. 제어기의 외부에 연결되는 메모리 장치
    를 포함하고,
    여기서, 상기 제어기는 새도우 레지스터 공간을 사용하고, 상기 새도우 레지스터 공간을 갖는 상기 메모리 장치를 이용함으로써, 태스크-파일 레지스터가 기록되고, 상기 제어기에 연결된 CPU가 상기 태스크-파일 레지스터에 대한 I/O 사이클이 완료될 때까지 대기해야 하는 조건 동안에 장치에 대한 I/O 사이클의 완료를 가능하게 하는
    장치.
  19. 제18항에 있어서,
    상기 메모리 장치는 포스팅 하드웨어 버퍼를 포함하는
    장치.
  20. 제18항에 있어서,
    상기 메모리 장치는 FIFO 장치인
    장치.
  21. 제18항에 있어서,
    상기 태스크-파일 레지스터가 기록되고, 상기 CPU가 상기 장치에 대한 I/O 사이클이 완료될 때까지 대기할 때에 최대 조건이 발생하는
    장치.
  22. 제18항에 있어서,
    상기 메모리 장치는 태스크-파일 I/O 사이클 동안에 CPU의 차단없이 ATA 장치에 대한 I/O 사이클을 처리할 수 있는
    장치.
KR1020037004598A 2000-09-29 2001-09-27 능률화된 ata 장치 초기화 방법 및 장치 KR100579203B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/675,873 2000-09-29
US09/675,873 US6779062B1 (en) 2000-09-29 2000-09-29 Streamlining ATA device initialization
PCT/US2001/030199 WO2002027509A2 (en) 2000-09-29 2001-09-27 Streamlining ata device initialization

Publications (2)

Publication Number Publication Date
KR20030048415A KR20030048415A (ko) 2003-06-19
KR100579203B1 true KR100579203B1 (ko) 2006-05-11

Family

ID=24712305

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037004598A KR100579203B1 (ko) 2000-09-29 2001-09-27 능률화된 ata 장치 초기화 방법 및 장치

Country Status (9)

Country Link
US (2) US6779062B1 (ko)
KR (1) KR100579203B1 (ko)
CN (1) CN100432970C (ko)
AU (1) AU2001293133A1 (ko)
DE (1) DE10196697T1 (ko)
GB (1) GB2384088B (ko)
HK (1) HK1054097A1 (ko)
TW (1) TW538379B (ko)
WO (1) WO2002027509A2 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062644B2 (en) * 2001-05-30 2006-06-13 International Business Machines Corporation Method, system, and program for initializing a storage device comprising multiple storage units through a storage controller
US7228338B2 (en) * 2002-03-27 2007-06-05 Motorola, Inc. Multi-service platform module
US7111066B2 (en) * 2002-03-27 2006-09-19 Motorola, Inc. Method of operating a storage device
US7085873B1 (en) * 2002-06-21 2006-08-01 Cypress Semiconductor Corp. ATA device access system with surrogate registers corresponding to ATA registers
US6915390B2 (en) * 2002-12-05 2005-07-05 International Business Machines Corporation High speed memory cloning facility via a coherently done mechanism
US7275120B2 (en) * 2003-05-15 2007-09-25 Michael Ou Configurable advanced technology attachment/integrated drive electronics host controller with programmable timing registers that store timing parameters that control communications
US7606993B2 (en) * 2003-06-10 2009-10-20 Tdk Corporation Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory
CN100383736C (zh) * 2004-05-08 2008-04-23 鸿富锦精密工业(深圳)有限公司 串行高阶硬盘架构控制器自动初始化方法
US20060095594A1 (en) * 2004-11-03 2006-05-04 Jaan-Huei Chen System and method of automatically executing ata/atapi commands
US7975000B2 (en) * 2005-01-27 2011-07-05 Fmr Llc A/B testing of a webpage
TWI308696B (en) * 2005-10-07 2009-04-11 Via Tech Inc Initializing method bus device
KR100761263B1 (ko) * 2006-01-24 2007-09-28 엘지전자 주식회사 버퍼 제어기를 구비한 ata 인터페이스 시스템
US20100138566A1 (en) * 2008-11-30 2010-06-03 Rite Track Equipment Services, Inc. Control System for Legacy Computers Using Peripheral Devices

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5313626A (en) 1991-12-17 1994-05-17 Jones Craig S Disk drive array with efficient background rebuilding
US5444853A (en) * 1992-03-31 1995-08-22 Seiko Epson Corporation System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's
US5701450A (en) 1994-02-25 1997-12-23 Seagate Technology, Inc. System including ATA sequencer microprocessor which executes sequencer instructions to handle plurality of real-time events allowing to perform all operations without local microprocessor intervention
US5727184A (en) 1994-06-27 1998-03-10 Cirrus Logic, Inc. Method and apparatus for interfacing between peripherals of multiple formats and a single system bus
US5696931A (en) * 1994-09-09 1997-12-09 Seagate Technology, Inc. Disc drive controller with apparatus and method for automatic transfer of cache data
IL117134A (en) * 1996-02-14 2000-01-31 Galileo Technology Ltd First-in first-out (fifo) buffer
US5920709A (en) 1996-06-04 1999-07-06 Exabyte Corporation Bus interface for IDE device
US6081849A (en) * 1996-10-01 2000-06-27 Lsi Logic Corporation Method and structure for switching multiple contexts in storage subsystem target device
US5923895A (en) * 1996-11-15 1999-07-13 Cirrus Logic, Inc. Method and arrangement to effectively retrieve residual data from a buffer
WO1998022869A1 (en) 1996-11-22 1998-05-28 Oak Technology, Inc. Ide/ata cd drive controller
US5890002A (en) * 1996-12-31 1999-03-30 Opti Inc. System and method for bus master emulation
US6098114A (en) 1997-11-14 2000-08-01 3Ware Disk array system for processing and tracking the completion of I/O requests
US6330626B1 (en) * 1999-05-05 2001-12-11 Qlogic Corporation Systems and methods for a disk controller memory architecture
JP2001229115A (ja) 2000-02-17 2001-08-24 Matsushita Electric Ind Co Ltd Atapiコマンド処理方式
US6490635B1 (en) * 2000-04-28 2002-12-03 Western Digital Technologies, Inc. Conflict detection for queued command handling in disk drive controller

Also Published As

Publication number Publication date
GB2384088A (en) 2003-07-16
US20040210681A1 (en) 2004-10-21
WO2002027509A2 (en) 2002-04-04
DE10196697T1 (de) 2003-08-21
TW538379B (en) 2003-06-21
US6779062B1 (en) 2004-08-17
CN100432970C (zh) 2008-11-12
GB0308822D0 (en) 2003-05-21
GB2384088B (en) 2005-03-16
US6957280B2 (en) 2005-10-18
CN1503948A (zh) 2004-06-09
HK1054097A1 (en) 2003-11-14
WO2002027509A3 (en) 2002-06-13
AU2001293133A1 (en) 2002-04-08
KR20030048415A (ko) 2003-06-19

Similar Documents

Publication Publication Date Title
US5918028A (en) Apparatus and method for smart host bus adapter for personal computer cards
US7496699B2 (en) DMA descriptor queue read and cache write pointer arrangement
JP3403284B2 (ja) 情報処理システム及びその制御方法
US7010638B2 (en) High speed bridge controller adaptable to non-standard device configuration
KR100352224B1 (ko) 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션
US5878248A (en) Device access controller for virtual video/keyboard/mouse input/output for remote system management and maintenance
US7225288B2 (en) Extended host controller test mode support for use with full-speed USB devices
KR100579203B1 (ko) 능률화된 ata 장치 초기화 방법 및 장치
US6070204A (en) Method and apparatus for using universal serial bus keyboard to control DOS operations
US20030177297A1 (en) USB host controller
US6766386B2 (en) Method and interface for improved efficiency in performing bus-to-bus read data transfers
US5519872A (en) Fast address latch with automatic address incrementing
EP1516261B1 (en) Bus system, station for use in a bus system, and bus interface
US5671443A (en) Direct memory access acceleration device for use in a data processing system
US5896549A (en) System for selecting between internal and external DMA request where ASP generates internal request is determined by at least one bit position within configuration register
US6014717A (en) PCMCIA host adapter and method for variable data transfers
US6799231B2 (en) Virtual I/O device coupled to memory controller
EP1483674B1 (en) Usb host controller
US20030217218A1 (en) Interface for devices having different data bus widths and data transfer method using the interface
CN113778934B (zh) 基于PCIe的高速实时传输系统
US5881250A (en) Host adapter system including an integrated PCI buffer controller and XOR function circuit
US5991861A (en) Method of enabling and disabling a data function in an integrated circuit
US5867732A (en) Hardware method for verifying that an area of memory has only zero values
US7694004B2 (en) Bit-granular writes of control registers
EP0321775B1 (en) Secure data processing system using commodity devices

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee