KR100245896B1 - 다수의 마이크로프로세서를 사용하는 하드 디스크 드라이브 제어기 - Google Patents

다수의 마이크로프로세서를 사용하는 하드 디스크 드라이브 제어기 Download PDF

Info

Publication number
KR100245896B1
KR100245896B1 KR1019960706112A KR19960706112A KR100245896B1 KR 100245896 B1 KR100245896 B1 KR 100245896B1 KR 1019960706112 A KR1019960706112 A KR 1019960706112A KR 19960706112 A KR19960706112 A KR 19960706112A KR 100245896 B1 KR100245896 B1 KR 100245896B1
Authority
KR
South Korea
Prior art keywords
data
microprocessor
control
buffer
error
Prior art date
Application number
KR1019960706112A
Other languages
English (en)
Other versions
KR970703012A (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 KR970703012A publication Critical patent/KR970703012A/ko
Application granted granted Critical
Publication of KR100245896B1 publication Critical patent/KR100245896B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming 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
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/48Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed
    • G11B5/54Disposition or mounting of heads or head supports relative to record carriers ; arrangements of heads, e.g. for scanning the record carrier to increase the relative speed with provision for moving the head into or out of its operative position or across tracks
    • G11B5/55Track change, selection or acquisition by displacement of the head
    • G11B5/5521Track change, selection or acquisition by displacement of the head across disk tracks
    • G11B5/5569Track change, selection or acquisition by displacement of the head across disk tracks details of specially adapted mobile parts, e.g. electromechanical control devices
    • G11B5/5578Multiple actuators addressing the same disk, e.g. to improve data rate or access rate
    • 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

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)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Multi Processors (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Peptides Or Proteins (AREA)

Abstract

다수의 호스트 프로세서와 디스크 드라이브 시스템사이에 데이타 및 제어신호의 전송을 제어하는 하드 디스크 드라이브 시스템내의 제어기, 디스크 드라이브 시스템은 저장매체, 저장매체에 데이타를 기록하고 저장매체로 부터 데이타를 복구하는 적어도 하나의 트랜스듀서 및 저장매체에 대하여 트랜스듀서를 이동하는 액추에이터를 포함한다. 제어기는 제1메모리 유니트에 연결되어, 제1메모리 유니트에 저장된 제1동작 시스템의 제어하에 동작하며, 저장매체에 데이타를 기록하고 저장매체로 부터 데이타를 검색하며 트랜스듀서를 저장매체에 대하여 지정위치로 지정하기 위하여 액추에이터를 위치시키는 것을 제어하고, 트랜스듀서의 위치를 저장매체에 대하여 지정 위치로 유지하는 프로그램된 제1마이크로프로세서를 포함한다. 제어기는 제2메모리 유니트에 연결되어, 제2메모리 유니트에 저장된 제2동작 시스템의 제어하에 동작하며, 다수의 호스트 프로세서중 요청 호스트 프로세서로 부터 디스크 드라이브 시스템으로의 데이타 전송과 저장매체로 부터 다수의 호스트 프로세서중 요청 호스트 프로세서의 복구된 데이타의 전송을 제어하고, 제1마이크로프로세서에 의해 수행되는 동작을 한정하기 위하여 제1마이크로프로세서에 대한 파라미터를 발생하고 통신하는 프로그램된 제2마이크로프로세서를 포함한다. 제2마이크로프로세서는 제1마이크로프로세서와 독립적으로 그리고 동시에 동작하고, 제1마이크로프로세서는 제2마이크로프로세서에서 수신된 파라미터에 의해 한정되는 동작을 실행할 때, 제2마이크로프로세서와 독립적으로 그리고 동시에 동작한다.

Description

다수의 마이크로프로세서를 사용하는 하드 디스크 드라이브 제어기
제1도는 본 발명의 바람직한 실시예의 구조를 예시하는 다수의 액추에 이터를 갖춘 제어시스템의 블록선도.
제2도는 본 발명의 바람직한 실시예에 따라 구성되는 디스크 드라이브 제어구조의 호스트 인터페이스 및 이차 레벨 제어부의 블록선도.
제3도는 본 발명의 버퍼 시퀀서 및 데이타전송 지원회로를 상세히 보여주는 블록선도.
제4도는 본 발명의 바람직한 실시예에 따라 구성되는 제어지원회로를 상세히 보여주는 블록선도.
제5도는 본 발명의 바람직한 실시예에 따라 구성되는 버퍼제어 및 시퀀서 유니트를 상세히 보여주는 블록선도.
제6도는 본 발명의 바람직한 실시예에 따라 구성되는 인터페이스 지원회로의 바람직한 실시예를 상세히 보여주는 블록선도.
제7a도는 본 발명의 바람직한 실시예에 따라 구성되는 또다른 인터페이스 지원회로를 상세히 보여주는 블록선도.
제7b도는 제7a도에 도시한 인터페이스 지원회로에 의해 활용되는 프로그램가능한 버스트전송 제어로직을 상세히 보여주는 블록선도.
* 도면의 주요부분에 대한 부호의 설명
10 : 하드디스크 드라이브 제어구조 12 : 호스트 인터페이스
14 : 디스크 16 : 동심트랙
18 : 스핀모터 20 : 헤드
24 : 액추에이터 32 : 액추에이터 제어기
34 : 액추에이터 제어기 36 : 헤드
42 : 액추에이터 아암 50 : 인터페이스 유니트
52 : 인터페이스 제어기 62 : 램
64 : 롬 66 : 버퍼/시퀀서
하기의 출원은 본 출원의 관련출원이다.
1987년 6월 2일자로 출원되고 본 출원의 양수인에게 양도된 미국특허출원 제 057,289호(발명의 명칭 : 디스크 드라이브 시스템 제어구조)
1987년 6월 2일자로 출원되고 본 출원의 양수인에게 양도된 미국특허출원 제 057,806호(발명의 명칭 : 디스크 드라이브 소프트웨어 시스템 구조)
1987년 2월 4일자로 출원되고 본 출원의 양수인에게 양도된 미국특허출원 제 152,069호(발명의 명칭 : 저전력 하드디스크 드라이브 시스템 구조)
1989년 7월27일자로 출원되고 본 출원의 양수인에게 양도된 미국특허출원 제 386,504호(발명의 명칭 : 다중 내장 구상 서브필드를 사용하는 디스크드라이브 시스템)
1990년 7월 30일자로 출원되고 본 출원의 양수인에게 양도된 미국특허출원 제 559,899호 (디스크 드라이브용의 셧오프 모드를 갖춘 적용 판독 등화기)
1989년 10월 12일자로 출원되고 본 출원의 양수인에게 양도된 미국특허출원 제 420,371호(발명의 명칭 : 적응 판독/기록 채널제어부를 채용하는 디스크 드라이브 시스템 및 그러한 시스템의 사용방법)
1989년 11월 3일자로 출원되고 본 발명의 양수인에게 양도된 미국특허출원 제 431,575호(발명의 명칭 : 다수의 액추에이터를 갖춘 디스크 드라이브)
1990년 11월 9일자로 출원되고 본 출원의 양수인에게 양도된 미국특허출원 제 612,427호(발명의 명칭 : 고성능 디스크 드라이브 구조)
1990년 11월 9일자로 출원되고 본 출원의 양수인에게 양도된 미국특허출원 제 614,853호(발명의 명칭 : 다수의 액추에이터를 갖춘 디스크 드라이브)
상기 관련출원은 본 명세서에서 참고자료로서 인용된다.
본 발명은 하드디스크 드라이브 및 디스크 드라이브 전자제어시스템에 관한 것이다. 특히 본 발명은 하드디스크 드라이브의 디스크 스택(stack)에 대해 하나의 액추에이터를 제어하는 고성능, 마이크로프로세서 전자제어 시스템에 관한 것이다.
수요가 계속적으로 늘어남에 따라 디스크 드라이브 시스템이 빠른 속도로 개발되고 있다. 디스크 드라이브는 전기능 노트북 컴퓨터에서 고성능의 한사람만이 사용하는 다중업무 워크스테이션 그리고 다수의 사용자가 동시에 사용할 수 있는 고성능의 보급형 컴퓨터 시스템에 이르는 매우 다양한 시스템에서 사용되고 있다. 그러한 다양한 전체 응용분야에서 사용하기 위한 디스크 드라이브 설계조건이 많고 변동적임에도 불구하고, 공통적인 조건이 많다. 이들 조건에는 높은 신뢰성, 저전력 소모, 빠른 데이타 억세스와 전송속도 및 최소 형상 팩터 크기 및 저장용량을 제공하는데 필요한 중량이 포함된다.
워크스테이션 및 고성능 보급형 컴퓨터 시스템의 경우 디스크 드라이브 설계에 있어서 요구되는 조건은 고용량과 실제적인 데이타 억세스 및 전송율의 필요성을 강조하는 경향이 있다. 이밖에, 응용분야의 실제적인 상황에 따라 제작되고 개량됨으로써 드라이브의 성능이 다소간 또는 가능한 한 현저히 개선된 그러한 고성능 드라이브를 융통성 있게 특정한 제어로 실현하고자 하는 욕구가 존재한다.
종래의 고성능 디스크 드라이브 시스템은 전형적으로 데이타억세스 속도를 끌어올리기 위한 실제의 기계적인 성능의 향상에 의존한다. 그러한 개량에는 디스크 다수의 데이타 판독/기록 헤드를 제공하는 것이 포함되었다. 몇가지 실시예에 있어서, 다수의 헤드는 하나의 공통 액추에이터 아암상에서 지지됨으로써 소정의 트랙 위치에 접근하기 위한 데이타 탐색 스트로크의 길이를 줄일 수 있게 되었다. 그와는 달리, 다수의 액추에이터 어셈블리를 활용함으로써 독립적인 테이타를 동시에 탐색하는 방법도 있었다.
기계적으로는 개량이 이루어진 반면, 제어 전자공학의 관점에서, 데이타 전송율을 향상시키기 위한 종래의 방법은 드라이브 시스템을 작동하기 위해 필요한 독립적인 특정 기능을 관리하기 위해 특정의 전용 전자 서브시스템을 채용하는 것이었다. 소정의 높은 데이타 전송율을 획득할 수 있는 반면, 그러한 설계는 필연적으로 디스크 드라이브 시스템의 구조에 제한을 가한다. 기계적 또는 고급 드라이브 제어동작의 특정속성을 변경하는 것은, 전체적인 재설계가 아닌 경우, 하부의 전자적인 하드웨어 구조를 적어도 그에 대응하여 변경하는 것을 필요로 한다. 또한, 초기의 전용 전자 서브시스템의 개발과 관련된 단가 및 후속하는 설계변경에 따른 비용으로 인해 시간과 비용이 크게 소요되게 된다.
따라서, 본 발명의 목적은 고신뢰성과 저단가를 유지하면서 높은 억세스 및 데이타 전송속도를 달성할 수 있는 디스크 드라이브 시스템 및 전자 제어구조를 제공하는데 있다.
이러한 본 발명의 목적은 호스트 프로세서 인터페이스와 기록매체간의 데이타 전송을 제어하며, 데이타를 저장하는 하나 이상의 디스크 표면, 메모리 버퍼, 호스트 인터페이스, 디스크와 데이타버퍼간의 데이타 전송을 제어하는 저급 데이타 제어기, 호스트 인터페이스와 데이타 버퍼간의 데이타 전송을 제어하는 인터페이스제어기 및 저급 및 인터페이스 제어기로부터의 테이타 전송 요청에 응답하여 데이타 버퍼에 대한 데이타 저장 및 검색 억세스를 조정하는 조정기 및 버퍼 제어기를 포함하는 전자 디스크 드라이브 구조를 제공함으로써 달성된다. 저급 및 인터페이스 제어기는 사실상 상호 독립적으로 동작함으로써 그들 각각의 제어동작을 수행한다. 결과적으로, 데이타는 양쪽 제어기의 최적 타이밍으로 데이타 버퍼를 통해 양방향으로 전송된다.
따라서, 본 발명의 장점은 본 발명의 인터페이스 및 저급 제어기를 효과적으로 사용함으로써 전자 제어구조 및 드라이브 시스템을 통해 데이타 처리량을 최대화할 수 있다는 것이다.
본 발명의 또다른 장점은 인터페이스 및 저급제어에 모두 펌웨어 제어프로그램의 실행을 통해 실질적인 부분의 각각의 제어기 기능을 수행하기 위한 고성능 범용 마이크로콘트롤러를 포함 한다는 것이다. 제어구조의 나머지 부분은 제한된 수의 전용 제어회로를 활용하여 실현된다. 그러나 그러한 회로는 마이크로콘트롤러에 의해 직접적인 또는 프로그램화된 제어를 하도록 설계되어 동작의 융통성을 최대화할 수 있도록 구성된다.
본 발명의 다른 장점은 전자 제어구조가 각각의 액추에이터유니트를 취급하기 위한 별도의 저급 제어기를 부가함으로써 기준화될 수 있다는 것이다. 따라서, 데이타 억세스 시간을 사실상 줄이면서도, 본 발명에 따라 구성되는 하드 디스크 제어시스템에 의해 달성될 수 있는 데이타 전송율을 증가시킬 수 있다.
본 발명의 또다른 장점은 본 발명의 전자 제어구조의 동작이 펌웨어에 저장된 제어 프로그램을 변경시킴으로써 전자적인 하드웨어 구조를 변경시키지 않고도 사실상 변경될 수 있다는 것이다.
본 발명의 다른 장점은 집적형 드라이브 전자부(Integrated Drive Electronics; IDE) 호스트 인터페이스를 사용할 때 호스트 인터페이스를 통한 데이타 전송의 대기시간을 최소화하기 위한 프로그램가능한 하드웨어 지원부를 제공한다는 것이다.
본 발명의 또다른 장점은 최소의 전용 제어부품 및 소정의 데이타 전송 및 억세스율을 얻기 위한 최적의 수로 이루어진 범용 마이크로콘트롤러를 사용하여 저가 및 높은 융통성과 신뢰성을 유지하는 것이다.
이하, 첨부도면을 통해 본 발명의 상기한 장점 및 그밖의 다른 장점 및 특징을 상세히 설명하기로 한다. 도면부호 기재에 있어서 동일한 요소에 대하여는 동일한 도면부호를 부여하였다.
A. 개요 : 다중 액추에이터 제어시스템
다수의 마이크로콘트롤러 하드디스크 드라이브 제어구조가 제1도에 도면부호 10으로 도시되어 있다. 제어구조(10)는 호스트 인터페이스(12)에 커플링되는 호스트 컴퓨터와 디스크(14)의 자기 기록 표면간에 데이타를 전송하기 위해 제공된다. 예시한 바람직한 실시예에서, 판독/기록 헤드(20)는 내경(ID) 및 외경(OD) 트랙에 의해 한정되는 트랙밴드내의 동심트랙(16)의 선택된 트랙(16´)위에 위치한다. 디스크(14)는 스핀모터(18)에 의해 회전한다.
헤드(20)는 보이스 코일 모터에 의해 구동되는 액추에이터(24)에 차례로 커플링되는 만곡부 아암(flexure arm)(22)상에 지지된다. 별도의 디스크(14) 및 헤드/아암 어셈블리(20, 22)는 각각 스핀모터(18)및 액추에이터(24)상에 쌍을 이루어 배치될 수도 있다. 액추에이터제어기(32)는 라인(26)을 통해 헤드(20)에 대해 직렬화된 데이타를 전송하고 수신한다. 제어라인(28)은 액추에이터 제어기(32)에 의해 구동되어 액추에이터 모터(24)를 제어함으로써 선택된 트랙(16´)에 대한 헤드(20)의 위치를 제어한다. 액추에이터 제어기(32)는 스핀모터(18)를 동작시키는데 필요한 제어라인(30)을 통해 교환제어신호를 또한 발생시킨다. 스핀모터(18)를 제어하는 바람직한 방법 및 회로가 1989년 10월 24일자로 스콰이어(Squires)등에 허여된 미국특허 제 4,876,491호에 개시되어 있다.
사실상 제1액추에이터 제어기(32)와 동일한 제2 액추에이터 제어기(34)가 제공되어 제2 만곡부 아암(40)에 장착되고 제2 보이스 코일 모터 구동 액추에이터 아암(42)에 연결된 헤드(36)의 위치를 제어한다. 라인(38)에 의해 헤드(36)와 액추에이터 제어기(34)간에 직렬화된 데이타의 전송이 이루어진다. 이와 유사하게, 액추에이터 제어신호는 라인(44)을 통해 액추에이터 제어기(34)에서 액추에이터 아암(42)의 보이스 코일 모터에 제공된다. 제1 액추에이터 제어기(32)는 스핀모터(18)를 제어하기 때문에, 이 기능은 실현되지 않거나, 제2 액추에이터 제어기(34)내에 연결이 되지 않은 상태로 남겨지게 된다.
제2 액추에이터 제어기(34)의 동작은 제1 액추에이터 제어기(32)와는 사실상 독립적으로 이루어진다. 따라서 헤드(36)의 위치선정은 헤드(20)가 위치하는 동일한 트랙(16´)을 포함하는 디스크(14)의 자기 기록표면상의 선택된 트랙(16)에 대해 이루어질 수도 있다.
데이타 및 제어신호는 액추에이터 제어기(32, 34)에 의해 독립적인 데이타 및 제어버스(46, 48)를 통해 호스트 인터페이스 유니트(50)로 전송된다. 본 발명의 바람직한 실시예에 따라서, 호스트 인터페이스 유니트(50)는 호스트와 통신하여 인터페이스(12)를 통해 제어요청과 데이타요청을 교환하고, 제어 및 데이타 요청을 이행하는데 필요한 하나 이상의 일련의 제어요청 및 데이타를 디스크(14)에 대해 데이타를 검색하고 저장하는데 적절한 액추에이터 제어기(32, 34)중 어느 하나 또는 양쪽 모두에 할당한다.
액추에이터 제어기(32, 34)는 호스트 인터페이스(50)및 디스크(14)사이에서 전송중에 보유되는 디스크 데이타를 버퍼링하기 위하여 독립적인 공유 메모리를 내장한다. 공유 메모리내에서 대기되어 있는 데이타는, 필요에 따라 액추에이터 제어기(32, 34)에서 호스트 인터페이스 유니트(50)로의 전송을 승인하기에 앞서 마이크로콘트롤러(52)에 의해 관측되고 조작될 수도 있다. 이러한 목적을 달성하기 위해 그리고 마이크로콘트롤러(52)가 액추에이터 제어기(32, 34)및 호스트 인터페이스 유니트(50)의 동적 기능을 프로그램적으로 제어할 수 있도록 데이타, 어드레스및 제어버스(54)가 제공된다. 버스(54)는 액추에이터 제어기(32, 34)와 제어 및 데이타 버스(46, 48)와는 독립적인 호스트 인터페이스 유니트(50)내에서 제어 및 상태 레지스터로의 메모리 및 입/출력 변환 억세스를 허용한다.
액추에이터 제어기(32, 34)는 각각 호스트 인터페이스 유니트(50), 마이크로콘트롤러(52) 및 액추에이터 제어기(32, 34)의 공유 메모리를 통한 데이타의 전송을 위한 직렬 데이타 라인(26, 38)으로 표시되는 각각의 디스크 데이타 채널간의 억세스를 조정한다. 그렇게 제공된 제어 및 데이타 경로 구조는 호스트 인터페이스 명령 복호화와 관리의 지원및 인터페이스(12)및 액추에이터 제어기(32, 34)의 공유 메모리간의 데이타 전송을 포함하는 마이크로콘트롤러(52)에 의해 수행되는 고급 기능으로부터 탐색 및 트랙추적과 헤드의 위치설정 및 디스크(14)와 공유 메모리간의 데이타 판독/기록 전송을 포함하는 저급 디스크 제어기능을 분리시킨다. 따라서, 시스템(10)의 호스트와 저급 측면간의 대화는 공유 메모리로의 억세스의 조정된 인터리빙(interleaving)사실상 제한된다. 마이크로콘트롤러(52) 및 액추에이터 제어기(32, 34)는 연속적으로 작동하여 그 각각의 기능을 지원한다.
B. 인터페이스 및 단일/다중 액추에이터 제어기 시스템 구조
인터페이스와 단일의 액추에이터 제어기를 실현하는 제어시스템의 상세한 블록선도가 제2도에 도면부호 60 으로 도시되어 있다. 인터페이스 제어기 레벨은 호스트 인터페이스 유니트(50)와 마이크로콘트롤러(52)를 포함한다. 본 발명의 바람직한 실시예에서, 마이크로콘트롤러(52)는 4메가헤르츠의 시스템 클럭 레이트에서 작동하는 모토롤라 6HC11싱글 칩 마이크로프로세서이다. 68HC11은 모토롤라 세미콘덕터, 인코포레이티드(미합중국 아리조나 85036 피닉스피.오.박스 20912 소재)의 모토롤라 문헌실 에서 발행한 모토롤라데이타 북(AD11207)에 기술되어 있다. 랜덤 억세스 메모리(램, RAM) 유니트(62) 및 판독전용 메모리(롬, ROM) 유니트(64)가 또한 포함된다. 롬 유니트 (64)는 마이크로콘트롤러(52)에 의해 실행되는 제어 프로그램을 저장하는데 사용된다. 램, 롬 및 호스트 인터페이스 유니트(62, 64, 50)는 마이크로콘트롤러(52)의 메인 어드레스, 제어 및 데이타 버스(54)를 통해 억세스가능하다.
제2도에 도시한 그밖의 다른 요소는 본 발명의 단일 액추에이터 제어기를 구성한다. 이 액추에이터 제어기는 버퍼/시퀀서 유니트(66) 및 버퍼 램 메모리(68)로 실현되는 공유 메모리를 포함한다. 버퍼/시퀀서 유니트(66)는 독특하게, 버퍼 메모리(68)에 억세스하는데 활용되는 어드레스를 버스(70)를 통해 발생시키고 제공한다. 공유 데이타 버스(72)에 의해 호스트 인터페이스 유니트(50)와 버퍼 메모리(68)간에 그리고 버퍼/시퀀서(66) 및 버퍼 램(68)간에 데이타 전송이 이루어진다. 호스트 인터페이스 유니트(50)에 의한 버퍼 램(68)으로의 억세스는 라인(74)을 통한 요청 및 승인 제어신호의 교환을 통해 버퍼/시퀀서(66)에 의해 조정되고 관리된다.
버퍼/시퀀서(66)는 마이크로콘트롤러(52)가 버퍼 램(68)으로 억세스 하여 그 내용을 수정하기 위한 페이지 모드 억세스 데이타경로를 실현한다. 이는 어드레스, 제어 및 데이타 버스(54)를 데이타 라인(72) 및 페이지 모드 어드레스 발생 제어 로직 유니트에 연결하는 내부 데이타 경로에 의해 달성된다.
액추에이터 제어기의 전반적인 동작을 제어하기 위해 제2마이크로콘트롤러
(80)가 제공된다. 마이크로콘트롤러(80)도 또한 4메가헤르츠의 모토롤라 68HC11 마이크로프로세서인 것이 좋다. 마이크로콘트롤러(80)는 메인 데이타 어드레스 및 제어 버스(86)를 통해 램 유니트(82)및 롬 유니트(84)에 커플링된다. 롬 유니트(84)는 마이크로콘트롤러(80)에 의해 실행되는 제어 프로그램을 저장하여 트랙(16´)에 대한 헤드(20)의 트랙추적 제어, 선택된 트랙(16)간의 헤드(20)의 탐색 제어. 디스크(14)의 표면 및 버퍼/시퀀서(66)를 통한 버퍼 메모리(68)간의 데이타의 판독/기록 전송 및 스핀모터(18)의 회전 및 속도 제어의 저급 제어기능을 수행하기 위해 제공된다.
마이크로콘트롤러(80)를 지원하는 버퍼/시퀀서(66)는 디스크 데이타 및 서보 시퀀서 제어 로직을 포함하는 것이 바람직하다. 이들 시퀀서는 데이타 어드레스 및 제어 버스(86)를 통해 마이크로콘트롤러(80)에 억세스 가능한 제어 레지스터를 통해 프로그램되고 관리되는 것이 바람직하다. 판독/기록 지원회로(90)는 라인(104)(WDAT)상에서 직렬 데이타를 생성하고 입력 라인(1061.2)으로부터 차동 원 판독 데이타 신호를 수신하는데 필요한 일반적인 아날로그 신호 처리기능을 실현하기 위해 또한 제공된다. 상기한 미국특허(발명의 명칭 : 디스크 드라이브용의 셧오프 모드를 갖춘 적응판독 등화기)에 개시된 바와 같이 구성되고 동작하는 등화기 회로(92)가 라인(108)을 통해 판독/기록 지원회로(90)에 연결된다. 라인(110)을 통해 판독/기록 지원회로(90)에 커플링되는 전압제어 발진기(VCO)(94)는 라인(108)을 통해 수신되는 원 데이타로부터 데이타 클록을 재발생하는데 사용된다. 원 데이타, 데이타 클록 및 클록 분리 NRZ 데이타는 라인(100)을 통해 버퍼/시퀀서로 복귀된다.
제어지원회로(88)는 어드레스, 데이타 및 제어버스(86)를 통해 또한 커플링되어 마이크로콘트롤러(80)가 액추에티어 탐색, 트랙추적및 스핀모터 제어기능을 수행할 수 있도록 하는 기본적인 하드웨어 지원부를 제공한다. 특히, 제어지원회로(88)는 액추에이터(24)의 보이스 코일 모터를 구동하는데 사용되는 차동 제어 신호(±VC)를 발생시키기 위한 디지탈 대 아날로그 변환기(DAC) 및 전력 구동기를 실현한다. 디지탈 대 아날로그 변환기로의 입력부는 데이타 어드레스 및 제어 버스(86)를 통해 마이크로콘트롤러(80)에 의해 기록될 수 있는 프로그램가능한 데이타 레지스터이다. 이와 유사한 방식으로, 어드레스, 데이타 및 제어버스(86)를 통해 기록가능한 제어 레지스터는 라인 (114)상에 제공된 제어신호의 상태를 설정하여 액추에이터 아암 래치를 인에이블 및 디스에이블 시키고, 라인(112)상에서 액추에이터 통신상태를 설정하고, 라인(128)상에서 판독/기록 지원회로(90)의 적응 제어 프로필 상태를 설정하고, 라인(130)상에서 간접적으로 판독/기록 지원회로(90)에 전력을 제공하는 제어지원회로(88)내에 프로그램가능한 내부 인터페이스를 제공한다.
제어지원회로(88)의 바람직한 단일 칩 실시예에서는, 스핀모터(18)를 직접 구동시키기에 충분한 구동전류가 제어지원회로(88)를 통해 공급될 수 없다. 따라서, 라인(116)상의 통신 제어신호가 사용되어 라인(118)(SpinA-C)상의 직접 삼상 교환 제어신호를 차례로 산출하는 H-브리지 구성 전력 FET 회로(96)를 제어한다. H-브리지 회로(96)로부터의 전류 복귀경로는 라인(120)을 통해 제어지원회로(88)에 제공된다. 이 귀환전류는 전압레벨로 변환되어 라인(122)중의 하나를 통해 마이크로콘트롤러
(80)의 각각의 아날로그 대 디지탈 변환기 입력부로 제공된다.
본 발명의 바람직한 실시예에서 내장 서보 제어 서보시스템을 실현하는 버퍼/시퀀서(66)의 서보 순차부는 판독/기록 지원회로(90)에 의해 데이타 라인(100)을 통해 버퍼/시퀀서(66)로 복귀되는 원 데이타에 응답한다. 이에 응답하여, 버퍼/시퀀서(66)의 내부 서보 시퀀서 로직은 디스크(14)에서 수신된 제어정보에 대해 액추에이터 제어기의 동작을 동기화하고 관리하기 위해 다수의 서보 제어신호(981-4)를 발생시킨다. 내부 서보 시퀀서는 라인 (102)을 통해 판독/기록 지원회로(90)에 제공되는 일련의 서보 버스트 게이트 신호를 또한 발생시킨다. 이들 서보 버스트 게이트 신호는 라인(981)을 통해 각각의 피크 신호 라인(1260상에 또한 제공되는 어드레스 마크 검출 신호의 발생으로부터 시간이 정해지는 각각의 서보 버스트를 게이트하는데 사용된다. 제어지원회로
(88)는 일반적으로 라인(126)을 통해 수신되는 각각의 피크 신호의 샘플-앤드-홀드 (sample-and-hold) 회로를 포함한다. 피크 샘플-앤드-홀드 회로의 출력은 각각의 라인(122)상에서 마이크로콘트롤러(80)의 대응하는 아날로그 대 디지탈 입력부에 제공된다. 이렇게 하여, 마이크로콘트롤러(80)는 소정의 전류 트랙(16´)에 대한 헤드(20)의 상대 오프-트랙 위치를 얻을 수 있고 결정할 수 있다. 오프-트랙 조건을 보상하거나 탐색동작에서의 액추에이터 가속 프로필을 수정하기 위해, 마이크로콘트롤러(80)는 제어 지원 유니트(88)내의 보이스 코일 모터 위치 변환 제어 레지스터에 차례로 기록되는 적절한 액추에이터 위치 교정 디지탈 값을 계산한다.
최종적으로, 마이크로콘트롤러(80)는 다수의 디스크 표면에 데이타를 판독하거나 기록하기위한 각각의 헤드가 제공되며, 데이터를 판독하거나 기록하는데 사용되는 특정 판독/기록 헤드(20)를 직접 선택하기 위해 동작한다. 특히, 헤드 선택 라인(124)은 종래의 헤드 데이타 멀티플렉서 및 전치증폭기 회로(도시안됨)에 연결되어 대응하는 판독/기록 헤드(20)의 전기적인 데이타 채널을 선택적으로 인에블시킨다. 라인(125)을 통한 등화기 회로(92)의 인에이블링 같은 다른 기능 또한 마이크로콘트롤러(80)에 의해 직접 수행된다.
도면부호 60 으로 함께 표시된 인터페이스 및 액추에이터 제어기는 단일 액추에이터 어셈블리(20, 22,24)를 통한 호스트 인터페이스 및 디스크(14)간의 완전한 제어 및 데이타 경로를 실현한다. 그러나, 본 발명의 구조는 모듈의 확장을 허용하기 때문에 현저한 구조의 변경없이 전반적인 구조내에 어셈블리(36, 40, 42)따위의 다중 엑추에이터 어셈블리가 포함될 수 있다. 특히, 호스트 인터페이스 유니트(50)의 바람직한 실시예에는 제2의 저급 제어기 공유데이타 버스(76) 및 요청/승인 라인(78)이 제공된다. 액추에이터 제어기(32)의 경우와 동일하게 상호연결되고, 공유 데이타 버스(76), 요청/승인 라인(78)을 호스트 인터페이스 유니트에 커플링되고 데이타, 어드레스 및 제어버스(54)에 커플링되는 버퍼/시퀀서(66´), 버퍼 메모리(68´), 마이크로콘트롤러
(80), 램(82´), 롬(84´), 제어지원회로(88´)및 판독/기록 지원 유니트(90´)를 포함하는 액추에이터 제어기(32)의 복제는 제2 액추에이터 어셈블리(36, 40, 42)의 완전한 기능의 독립적인 제어를 위해 제공된다. 다시, 한가지 현저한 차이는 그러한 제2 액추에이터 제어기(34)가 스핀모터(18)를 제어하기 위해 제공될 필요가 없거나 단지 여분이나 백업의 형태로 사용하기 위해 제공될 필요가 없다는 것이다.
1. 버퍼/시퀀서 및 판독/기록 지원회로
제3도에 버퍼/시퀀서(66) 및 판독/기록 지원회로(90)가 상세히 도시되어 있다. 도시한 바와 같이, 버퍼/시퀀서(66)는 인터페이스 마이크로콘트롤러(52)에 대한 데이타 어드레스 및 제어버스(541-3)상의 메모리 맵 주변기기로서 도시되어 있다. 요청/승인 라인(74)은 분리된 인에이블, 요청, 승인 및 바이트 계수 신호 라인(131, 132, 134, 136)을 포함하는 것이 바람직하다. 호스트 인터페이스 유니트(50)는 라인(132)을 통해 데이타 전송 요청을 제공한다. 성공적으로 조정이 이루어지면, 버퍼/시퀀서(66)는 라인(134)을 통해 승인신호를 제공한다. 바이트 계수 라인(136)은 각각의 요청/승인 사이클로 전송된 바이트의 수를 암호화한다. 버퍼(68)로의 데이타 억세스 및 전송효율을 향상시키기 위해, 1 내지 4 바이트의 기록 버스트 순서가 각각의 요청/승인 사이클과 함께 버퍼(68)로 전송된다. 바람직하게는, 버퍼 메모리가 정적 램으로 구성되는 경우, 단일 바이트 전송이 선택된다. 페이지 모드 동적 램이 사용되는 경우, 종래의 페이지 억세스 어드레싱은 신속한 순서로 전송될 1 내지 4 바이트를 인에블시킨다. 최종적으로, 인에이블 신호는 데이타가 호스트 인터페이스 유니트(50)에 의해 버퍼 메모리(68)로 전송되는 버퍼/시퀀서(66)에 의해 제공된다. 전송방향은 호스트 인터페이스유니트(50) 및 버퍼/시퀀서(66)용 호스트 마이크로콘트롤러(52)에 의해 프로그래밍된다. 라인(131)상의 인에이블 신호는 승인/데이타 전송 사이클을 예기하여 호스트 인터페이스의 공유 데이타 버스 구동기 회로를 인에이블시키는데 사용된다. 인에이블 신호는 데이타의 소오스가 버퍼 메모리(68)인 경우에는 사용되지 않으며, 버퍼(68)의 데이타 구동기 회로는 제어라인(702)상의 신호에 의해 인에이블된다. 따라서, 버퍼(68)로 전송되는 모든 데이타는 공유 데이타 버스(72)를 경유한다. 버퍼/시퀀서(66)는 어드레스 라인(701)과 메모리 억세스 제어 라인(702)을 구동하는데 필요한 어드레스 발생 유니트및 버퍼 제어 회로와 통합된다.
라인(138)은 마이크로콘트롤러(52)의 인터럽트 입력부에 제공된다. 버퍼/시퀀서(66)는 마이크로콘트롤러(80)가 데이타, 어드레스 및 제어버스(861-3)를 활용하여 프로세서간 명령(interprocessor command)및 수반되는 데이타를 마이크로콘트롤러
(52)에 전송할 때마다 라인(138)상에서 인터럽트 신호를 제공한다. 특히, 프로세서간 명령 및 데이타 레지스터는 마이크로콘트롤러(52)에 의해 명령을 마이크로콘트롤러
(80)로 통과시켜 다음에 수행되는 동작을 선택하는데 사용된다. 따라서, 호스트 인터페이스(12)를 통해 수신되는 명령은 액추에이터 제어기(32,34)에 의해 순차적으로 실행될 수 있는 저급 명령의 대응하는 순서로 마이크로콘트롤러(52)에 의해 분해되는 동안 지역램 메모리(62)로 전송된다. 표1 및 표2는 바람직한 프로세서간 통신 레지스터 세트를 보인 것이다.
[표 1]
[표 2]
버퍼/시퀀서(66)는 또한 디스크(14)로 및 디스크로부터의 제어된 데이타의 전송에 필요한 디스크 데이타 및 서보 시퀀서를 실현한다. 바람직하게는, 스플릿 섹터, 쿼드-서보 버스트, 내장 버스트 제어시스템이 섹터 헤드 정보가 연속적으로 현재 선택된 헤드(20)를 통해 디스크로부터 판독되어 헤드(20)에 의한 트랙 추적을 인에이블할 수 있는 경우에 활용된다. 차동 원 판독 데이타는 라인(1061-2)을 경유하여 등화기(92) 및 DC 차단 커패시터(C1, C2)를 통해 라인(1081-2)을 경우하여 판독/기록 지원회로(90)에 제공된다. 차동 원 데이타 신호에 기초하는 단일의 종료 차동 신호는 원데이타 신호
(RDAT)로서 라인(140)을 통해 버퍼/시퀀서(66)에 제공된다. 판독/기록 지원회로(90)는 데이타 클록을 원 데이타 열로부터 차단하고 라인(142)을 통해 대응하는 클록신호를 버퍼/시퀀서(66)에 제공한다. 이들 신호로부터, 버퍼/시퀀서(66)는, 그 내부 서보 시퀀서 로직을 통해, 데이타 열내의 어드레스 마크의 발생을 검출할 수 있다. 어드레스 마크는 섹터 헤더의 시작을 알린다. 대응하는 어드레스 마크 신호는 라인(981)을 통해 어드레스 마크 검출 신호로서 그리고 인터럽트 신호로서 마이크로콘트롤러(80)에 제공된다. 이 인터럽트 신호는 마이크로콘트롤러(80)에 의해 펌웨어 프로그램의 실행을 디스크(14)의 특정 회전위치에 동기시키는데 활용된다.
본 발명의 바람직한 실시예에 따라, 일련의 4 서보 버스트 게이트 신호가 라인(146)을 통해 판독/기록 지원회로(90)에 의해 제공되어 섹터/헤더에서 획득한 원 데이타 신호의 각각의 부분을 피크 라인(1501-4)상에 게이트한다. 이들 게이팅 신호는 본 발명의 바람직한 실시예에서 활용되는 구상 서보 버스트 패턴을 졀연한다. 본 발명의 사용과 일치하는, 구상 버스트 서보 패턴의 사용방법은 상기한 미국특허(발명의 명칭 : 다중 내장 구상 서보 필드를 사용하는 디스크 드라이브 시스템)에 개시되어 있다. 저항기(1521-4)및 커패시터(1541-4)는 4개의 병렬 피크 신호 검출회로를 실현한다. 검출된 피크신호는 라인(1261-4)(IA-ID)상에 제공된다.
버퍼/시퀀서(66)의 서보 시퀀서 로직은 라인(144)을 통해 판독/기록 지원회로
(90)에 판독/기록 제어신호를 제공함으로써 궁극적으로는 마이크로콘트롤러(80)의 지시에 따른다 하더라도 버퍼/시퀀서(66)내의 디스크 데이타 시퀀서 로직에 의해 일반적으로 결정되는 섹터 데이타 필드의 판독 또는 기록을 선택한다. 섹터 헤더는 항상 내장 서보 트랙추적 기능의 지원하에서 판독된다. 데이타가 데이타 시퀀서 로직에 의해 디스크(14)상의 섹터 데이타 필드에 전송되는 경우, 디지탈 직렬 데이타가 기록 테이타 라인(148)상에서 판독/기록 지원회로(90)에 제공된다. 이 데이타는 후속하여 기록 데이타라인(104)상에서 디스크(14)의 표면에 기록하기에 적절한 아날로그신호로 변환하기 위한 헤드 멀티플렉서 및 전치증폭기 회로(도시안됨)에 제공된다.
최종적으로, 버퍼/시퀀서(66)내의 서보 시퀀서는 서보 섹터 헤더로부터 섹터 ID번호를 판독하기 위해 제공된다. 제로 서보 섹터ID를 판독하면, 인덱스 신호가 발생되고 라인(984)을 통해 제공된다.
2. 제어 지원회로
제어 지원회로(88)의 내부 블록선도가 제4도에 도시되어 있다. 어드레스 복호화 유니트(160)는 어드레스 및 제어버스(862-3)를 수신하고 차례로 개개의 선택된 인에이블 신호를 각각의 라인(162)을 통해 스핀 래치(164), 판독/기록 경로 제어 래치(166), 디지탈 대 아날로그 변환기(DAC) 래치(168) 및 내부 제어래치(174)에 제공된다. 데이타 버스(861)는 저급 마이크로콘트롤러(80)가 교환상태 한정 디지탈 단어를 스핀 래치(164)상에 기록하는 것을 허용한다. 그후 대응하는 상태 제어 신호는 출력라인(116)상에 제공된다.
판독/기록 경로 제어래치(166)는 판독/기록 지원회로(90)에 의해 사용되는 판독 데이타 타이밍 윈도우, 판독 신호 식별 임계치 및 기록-전류 레벨의 조정을 디지탈적으로 한정하는 데이타 버스(861)로 부터 데이타 단어를 수신한다. 라인(1281-3)을 통해 제공된 판독/기록 경로 제어 래치(166)의 디지탈 출력은 3개의 다중 비트 바이너리 암호화 값을 제공하며, 이값은 레지스터 가중회로(도시안됨)를 통과하면 판독/기록 지원회로(90)에 의해 사용되는 소정의 타이밍 윈도우 지연, 판독 임계값 포텐셜 및 기록 전류 레벨에서의 변화에 비례하는 아날로그 신호 값을 제공한다. 이들 적응 판독/기록 채널 제어에 사용하는 바람직한 방법은 상기한 미국특허(발명의 명칭 : 적응 판독/기록 채널제어부를 채용하는 디스크 드라이브 시스템 및 그러한 시스템의 사용방법)에 개시되어 있다.
DAC 래치(168)는 트랙(16´)에 대한 헤드(20)의 위치의 현재의 조정을 한정하는 디지탈 값을 고정하기 위해 제공된다. DAC 래치(168)의 출력은 라인(170)을 통해 DAC 구동기 유니트(172)에 제공된다. DAC 구동기(172)내의 디지탈 대 아날로그 변환기는 디지탈값을 대응하는 아날로그 값으로 변환한다. 증폭 팩터가 라인(176)을 통해 내부 제어 래치(174)로부터 제공되는 제어신호에 의해 가변적으로 제어되는 아날로그 증폭기는 디지탈 대 아날로그 변환기 출력 신호를 증폭한다. 증폭되건 증폭되지 않건 간에, 결과적으로 얻어지는 어날로그 신호는 내부적으로 제공된 VDD전압 소오스 (188)로부터 동작하는 고출력 전류 게이퍼블 구동기에 제공된다. 아날로그 구동기는 차례로 고전류 케이퍼블 차동 전압을 보이스 코일 제어라인(112)상에 제공한다.
내부 제어래치(174)는 데이타 버스(861)로부터 디지탈 단어를 래치하는데 사용된다. 래치된 단어의 비트 위치는 라인(176)상에 제공된 증폭 제어신호의 상태, 라인
(178)상에 제공된 변환 인에이블 신호의 상태, 라인(182)을 통한 어웨이크 인에이블 신호의 상태 및 라인(184)상의 언래치 제어신호의 상태를 한정한다. 어웨이크 제어신호는 DAC 구동기(172) 및 래치 구동기 회로(190)의 정상적인 동작을 인에이블하기 위해 제공된다. 어웨이크 신호가 들어오지 않으면 DAC 및 래치 구동기 회로(172, 190)의 고동작 전류부를 효과적으로 디스에이블시킨다. 차례로, 라인(184)상에 제공된 바와 같은 언래치 제어신호를 철회하면, 래치 회로(190)가 액추에이터 래치를 해제한다. 래치는 라인(114)상의 대응하는 래치신호로부터 동작한다. 라인(114)상의 래치신호가 없으면 액추에이터는 사전선택된 랜딩 구역, 전형적으로는 트랙밴드(16)의 내경내에서 헤드(20)에 의해 기계적으로 고정된다.
전력 소오스 VC(186)로부터 동작하는 전력 스위치(192)는 저전력모드 및 고른 저전력 소모 슬립 모드의 선택을 인에이블한다. 저전력 및 슬립 모드는 각각 라인(1833)을 통한 사이클 제어신호및 라인(182)상의 어웨이크 제어신호의 제공에 의해 선택된다. 위의 2개의 신호는 내부 제어 래치(174)내의 대응하는 비트의 세팅 및 리세팅에 의해 발생된다. 사이클 제어신호의 상태에 따라, 절환된 5볼트의 전력은 +5VC라인(130)상에 제공되거나 제공되지 않는다. 라인(130)으로부터 전력이 철회되면, 판독/기록 지원회로(90)의 동작이 사실상 종료한다. 어웨이크 제어신호가 철회되면, 라인 (130)상에서 절환된 +5VC전력 및 라인(188)상에서 절환된 12 볼트의 전력 VDD이종료된다. 따라서, DAC 및 래치 구동기 (172, 190)에 의한 전력소모는 슬립모드 주기동안에 또한 종료된다.
전류 대 전압 버퍼(194)는 라인(120)상의 스핀 복귀 전류를 스핀 센스 라인(1221)상의 대응하는 전압레벨로 변환하기 위해 제공된다. 전류 대 전압 버퍼(194)는 라인(182)상에 제공된 어웨이크 제어신호에 응답하여 스핀 구동기 회로(96)로부터의 전류 복귀경로를 회로화하는 것을 개방한다. 따라서, 슬립모드에서, 구동기(96)및 스핀모터(18)에 의한 전력소모는 제거된다.
최종적으로, 제어지원회로(88)는 이득 및 차동 증폭기 유니트(196)를 포함한다. 유니트(196)는 피크 고정회로(1521-4,1541-4)로부터 라인(1261-4)상에 제공된 피크 아날로그 전압을 수신한다. 이에 응답하여, 이득 및 차동 증폭기 유니트(196)는 피크 출력 라인(1222-5)상에 전류 버퍼 아날로그 전압을 제공한다. 이들 출력전압에는 라인(1261-4)상의 입력 전압에 고정된, 바람직하게는 일관된 이득 관계가 제공된다. 라인(182)상의 어웨이크 제어신호는 이득 및 차동 증폭기 유니트(196)에 제공되어 동작을 디스에이블시킴으로써 전류소모를 디스에이블시킨다. 리세트 신호는 라인(1801)
상의 내부 제어 래치(174)로부터 제공되고 짝수 제어신호는 라인(1802)상에 제공된다. 리세트 제어신호는 입력라인(1261-4)이 접지되게 함으로써 다음의 일련의 서보 버스트의 처리를 준비하는 동안 각각의 커패시터(1541-4)를 방전시킨다. 이득 및 차동 증폭기 유니트(196)는 Pdiff출력신호를 발생시키는 아날로그 조합 로직을 또한 포함한다. Pdiff신호의 발생은 라인(1802)상의 Odd 제어신호의 상태에 의해, 식 1 또는 식 2 에 따라 수행된다.
Pdiff(even)= (IA + IB) - (IC + ID) 식 1
Pdiff(odd)= (IC+ ID) - (IA + IB) 식 2
C. 고성능 조정 버퍼/시퀀서 제어구조
제 5 도에 버퍼/시퀀서(66)의 상세한 블록선도가 도시되어 있다. 버퍼/시퀀서
(66)의 중심부는 버퍼 메모리(68)로의 데이타 억세스 요청을 해결하기 위한 요청 조정 로직 및 각각의 데이타 요청기에 요구되는 버퍼 메모리 억세스 동작을 제어하는 대응하는 로직을 내부적으로 통합하는 조정 및 버퍼 제어 유니트(200)이다. 버퍼 메모리(68)에 대한 데이타 억세스 전송 요청은 라인(132)을 통하여 호스트 인터페이스 회로(50)로 부터 수신되고, 제어라인(204)중 하나를 통한 호스트 마이크로콘트롤러 인터페이스 유니트(202), 제어라인(208)중 하나를 통한 저급 마이크로 콘트롤러 언터페이스 유니트(206), 제어라인(212)중 하나를 통한 에러교정 코드(ECC) 발생 및 제어 유니트(210)를 포함하는 버퍼/시퀀서(66)의 내부 부품으로부터 그리고 제어라인(218)중 하나를 통한 서보 및 데이타 시퀀서 유니트(214, 216)로부터 수신된다.
데이타 전송 요청의 조정이 받아들여지면, 조정 및 버퍼 제어 유니트(200)는 적절한 승인 제어라인(134, 204, 208, 212, 218)을 통해 승인신호를 제공한다. 승인신호가 초기에 동시에 일어나면, 조정 및 버퍼 제어 유니트(200)는 내부 제어버스(220)를 통해 제어신호를 제공함으로써 버퍼/시퀀서(66)의 조정 선택 내부 부품의 데이타 전송 지정동작을 지시한다. 그러나, 호스트 인터페이스 유니트(50)는 그 자신의 내부 데이타 전송 제어로직과 통합하여 라인(184)상의 승인신호 및 공유 시스템 클록 신호에 의해 직접 동작함으로써 그 데이타 전송동작을 버퍼/시퀀서(66)와 동기시킨다. 모든 경우에 있어서, 조정 및 버퍼 제어 유니트는 라인(240)상에서, 데이타 전송방향 및 데이타 멀티플렉서(222)의 멀티플렉서 입력/출력 라인을 선택하거나 데이타 전송이 호스트 인터페이스 유니트(50) 및 어드레스 발생 및 판독/기록 제어 유니트(236)에 의해 사용되는 어드레스 소오스로 또는 그로부터 일어나는 곳으로 이동하는데 필요한 제어신호를 발행한다.
호스트 마이크로콘트롤러(52)에 의한 데이타 전송은 호스트 마이크로콘트롤러
인터페이스 회로(202)를 경유하여 선택가능한 양방향 1 또는 2 바이트 깊이의 선입선출 유니트(224)를 통해 데이타 버스(226)를 경유한 다음 데이타 버스(226) 및 버스
(228)를 통해 데이타 멀티플렉서(222)로 통과한다. 표 3 은 버퍼 레지스터 유니트
(232)내의 호스트 마이크로콘트롤러(52)에 억세스가능한 버퍼 제어 레지스터를 보인 것이다. 본 발명의 바람직한 실시예에 있어서, 호스트 및 저급 마이크로콘트롤러는 8 비트 프로세서에 기초하기 때문에, 데이타 선입선출(224)은 호스트 마이크로콘트롤러
(52)의 메모리 맵내의 2 바이트 폭의 레지스터 위치로서 나타난다.
[표 3]
데이타 전송요청은 호스트 인터페이스(50)에 의해 요청라인(132)상에서 조정 및 버퍼 제어 유니트(200)에 발행된다. 그러한 요청은, 수신될 경우, 조정 및 버퍼 제어기 유니트(200)에 의해 인식되는 가장 낮은 우선순위에서 조정 및 버퍼 제어 유니트
(200)에 의해 처리된다. 요청 신호로 인해, 바이트 계수 요청값이 또한 제어 라인(136) 상에서 조정 및 버퍼 제어 유니트에 제공된다. 바이트 계수 값은 호스트 인터페이스 유니트(50)가 단일 요청/승인 사이클내에서 연속하는 버스트 억세스 사이클로 전송하고자 하는 바이트 수를 나타낸다.
라인(134)상에 승인 신호가 제공되면, 호스트 인터페이스 유니트(50)는 버퍼 메모리(68)에 대해 데이타를 전송하기 시작한다. 데이타는 공유 데이타 버스(72)를 통해 전송된다. 그러나, 버퍼/시퀀서 유니트(66)는 버러 억세스 어드레스를 발생시킨다. 특히, 호스트 인터페이스 유니트(50)에 의한 데이타 전송은 호스트 어드레스 PC 레지스터(표3)내에 저장된 어드레스에 위해 지정되는 위치에서 버퍼 메모리(68)내에 저장된다. 호스트 어드레스 PC 레지스터는 초기에 호스트 어드레스 PC 프리로드 레지스터내에 고정되는 어드레스로 로드된다. 이 어드레스는 데이타 전송을 요청하는 호스트 인터페이스 유니트(50)를 기대하여 호스트 마이크로콘트롤러(52)에 의해 프리로드 레지스터내로 프로그래밍된다.
즉, 동작의 명령단계에서, 호스트 인터페이스 유니트(50)는 전형적으로 호스트 인터페이스(12)를 통해 데이타의 전송을 요구하는 호스트 레벨 명령을 수신한다. 이 호스트 레벨 명령은 마이크로콘트롤러(52)로 전송되어 하나 이상의 저급 명령으로 처리된다. 본 발명의 바람직한 실시예에서, 마이크로콘트롤러(52)는 램 메모리(62)내에서 그러한 명령, 블록 어드레스 위치 및 각각의 완료/에러상태의 대기 리스트를 실현한다. 명령은 요청되는 데이타가 버퍼메모리(68, 68´)내에 존재하는 경우의 명령, 디스크(14)에서 새로이 판독되는 데이타가 버퍼 메모리(68)내에 위치하는 경우의 유용한 블록 어드레스를 실행하는데 가장 적절한 액추에이터 제어기(32, 34)의 실행 및 선택의 순서의 적절성 및 시스템(10)에 의한 데이타의 전송의 성능 및 신뢰성에 영향을 미치는 다른 고려조건에 대해 평가된다.
요청된 데이타가 버퍼(68)내에 존재하지 않는 경우, 명령 및 대응하는 블록 어드레스는 마이크로콘트롤러(82)를 통과함으로써 데이타가 검색되어 특정 블록 어드레스에 위치하게 된다. 버퍼(68)내에서 요청되는 데이타를 후속하여 검색하는 경우, 또다른 프로세서간 명령이 마이크로콘트롤러(52)를 통과함으로써 그것이 적절한 호스트 인터페이스 동작을 다시 시작하게 하여 호스트 인터페이스는 라인(132)상에서 데이타 요청신호를 재가정(reassert)한다.
데이타가 버퍼 메모리(68)내로 전송되는 경우 또는 외부로 나가는 데이타가 버퍼 메모리(68)내에 존재할 때, 호스트 마이크로콘트롤러(52)는 적절히 다음 버퍼/시퀀서(66) 동작을 위한 블록 어드레스 호스트 어드레스 PC 프리로드 레지스터를 프로그램한다. 호스트 인터페이스(50)에 의한 마이크로콘트롤러(52)의 인터럽트는 현재의 전송동작의 종료신호를 보낸다. 이에 응답하여, 마이크로콘트롤러(52)는 다음의 데이타 전송동작을 위한 버퍼/시퀀서(66)의 전송방향을 설정하고 호스트 어드레스 PC 전송 레지스터의 기록 억세스를 수행함으로써 호스트 어드레스 PC레지스터내에 프리로드 레지스터 프로그램된 어드레스를 로딩한다. 호스트 인터페이스 유니트(50)에 의한 동작의 후속하는 데이타 전송상태에서, 요청된 블록의 데이타는 호스트 인터페이스 유니트(50) 및 버퍼 메모리(68)간의 일련의 요청/승인 사이클에 의해 전송된다. 각각의 데이타 바이트 또는 단어가 전송되면, 호스트 어드레스 PC 레지스터내의 어드레스는 그에 대응하여 조정 및 버퍼 제어 유니트(200)에 의해 증분된다. 한편, 마이크로콘트롤러(52)는 다음 데이타 블록 전송을 위한 블록 어드레스를 결정하고 이 어드레스를 호스트 어드레스 PC 프리로드 레지스터내로 프로그램한다. 호스트 인터페이스(12)를 통한 데이타 전송이 전형적으로 다수의 연속하는 데이타 블록으로 이루어지기 때문에, 마이크로콘트롤러(52)는 각각의 데이타 블록 전송을 예기하며 현재의 데이타 블록 전송과 일치하는 다음의 호스트 어드레스 PC 값을 프리로드함으로써 연속하는 데이타 블록 전송간의 경과시간을 최소화한다. 연속하는 데이타 블록 전송간의 대기시간은 필연적으로 마이크로콘트롤러(52)가 인터럽트되고, 다음 데이타 전송방향을 필요한 만큼 변화시키고 호스트 어드레스 PC 전송 레지스터에 대한 기록동작을 수행하는데 필요한 시간으로 감소된다.
마이크로프로세서(52)에 의한 버퍼/시퀀서(66)의 억세스를 위해, 마이크로콘트롤러 인터페이스 유니트(202)는 호스트 마이크로콘트롤러 버스(54)의 제어부로부터 마이크로콘트롤러(52) 및 버퍼/시퀀서(66)간의 데이타 전송의 방향을 결정한다. 차례로, 마이크로콘트롤러 인터페이스 유니트(202)는 라인(230)상의 제어신호를 통해 전송방향및 데이타 선입선출(224)의 바이트 시프트 로딩 및 언로딩을 제어한다. 데이타 전송의 요청되는 방향이 또한 제어라인(204)을 통해 조정 및 버퍼 제어 유니트(200)에 제공됨으로써 전송을 위한 데이타 멀티플렉서(222) 및 어드레스 발생기(236)의 적절한 구성을 허용한다.
호스트 마이크로콘트롤러 요청 데이타 전송의 어드레스는 버퍼 레지스터 유니트(232)의 페이지 억세스 어드레스 레지스터내에 저장된 페이지 어드레스 오프셋 값 버스(54)의 어드레스부상에 제공된 어드레스 값의 비트 8 : 0 에 의해 제어되며, 이 저차수의 일부 어드레스는 호스트 마이크로콘트롤러 인터페이스 유니트(202)내의 위치 억세스 어드레스 레지스터를 통해 일부 어드레스 버스(234)상의 어드레스 발생 유니트(236)에 반송된다.
따라서, 데이타 전송이 실행되면, 마이크로콘트롤러 인터페이스 유니트(202)는 최하위 자리 비트 8 : 0 의 어드레스를 어드레스 발생 유니트(236)의 입력라인
(234)으로 전송한다. 라인(220)중 하나에서의 제어신호는 버퍼 레지스터(232)의 페이지 억세스 어드레스 레지스터로부터 라인(238)을 통해 어드레스 발생기(236)에 제공되는 페이지 어드레스 오프셋 값을 인에이블시킨다. 그러면, 합성 어드레스는 조정 및 버퍼 제어 유니트(200)로 부터 제어라인(240)을 통해 제공되는 제어신호에 응답하여 어드레스 발생기(236)에 의해 발생된다. 그후 데이타는 내부 데이타 버스(228)를 통해 데이타 멀티플렉서(222) 및 선입선출(224)간에 전송된다.
호스트 마이크로콘트롤러 인터페이스 유니트(202)와 유사한 방식으로, 저급 마이크로콘트롤러 인터페이스 유니트(206)는 제어라인(208)을 통해 조정 및 버퍼 제어 유니트(200)와 제어정보를 교환 하고, 버스(242)를 통해 데이타를 전송하며, 일부 어드레스 버스(234)를 통해 위치 어드레스를 전송한다. 버퍼 메모리(68) 억세스 요청은 호스트 마이크로콘트롤러 인터페이스 유니트(202)의 경우 아래의 우선순위 레벨에서 처리되는 것이 바람직하다. 데이타 버스(242)는 제어라인(246)을 통해 저급 마이크로콘트롤러 인터페이스 유니트(206)에 의해 제어되는 또다른 양방향의 1 또는 2 바이트 깊이의 선입선출(244)을 통해 연결된다. 선입선출(244)은 내부 데이타 버스(248)를 통해 버퍼 레지스터(232)와 데이타 멀티플렉서(222)의 양방향 데이타 포트에 연결된다. 데이타 버스(248)는 버퍼 레지스터(232)의 억세스부에 또한 연결되고, 그와 별도로 시퀀서 제어 및 상태 레지스터(250)의 억세스부에 또한 연결된다. 최종적으로, 저급 마이크로콘트롤러 인터페이스 유니트(206)를 통해, 마이크로콘트롤러(50)는 표 1 및 표 2 에 나타낸 프로세서간 레지스터 세트로의 억세스를 가지며 표4에 나타낸 버퍼 억세스 레지스터 세트로의 억세를 가진다.
[표 4]
그밖에, 마이크로콘트롤러(80)는 서보 제어, 디스크 데이타 시퀀서 및 ECC 제어기 레지스터 세트로부터 상태정보를 프로그램밍하고 판독할 수 있다. 이하에서 상세히 설명되겠지만, 시퀀서 제어및 상태 레지스터(250)내에 저장된 데이타 값은 일반적으로 버퍼/시퀀서(66) 유니트의 디스크 관련 동작을 한정한다.
서보 시퀀서 유니트(214) 및 데이타 시컨서 유니트(216)는 버퍼 /시퀀서(66)를 통한 데이타의 전송시 함께 동작한다. 특히, 서보 시퀀서(214)는 원 데이타 라인(140)을 통해 수신된 원 데이타를 탐색하여 어드레스 마크를 식별하고, 인덱스 섹터의 발생을 식별하며, 서보 버스트 게이트 신호를 발생시킨다. 마이크로콘트롤러(80)는 표5에 나타낸 서보 제어 및 상태 레지스터를 통해 서보 시퀀서 (214)의 기능을 제어한다.
[표 5]
서보 시퀀서(214)는 제어라인(252)상에서 새로운 섹터의 제어신호를 또한 발생시킴으로써 데이타 시퀀서(216)용 섹터 데이타 영역의 시작을 효과적으로 한정한다.
섹터의 시작이 검출되면, 서보 시퀀서(214)가, 적절한 타이밍 시점에서, 라인(146)상에서 구상 서보 버스트 게이트 인에이블 신호를 발생시킴으로써 현재의 섹터의 섹터 헤더 데이타로 부터의 서보 버스트를 선택한다. 서보 시퀀서(214)는 섹터 헤더 데이타로부터 현재의 실린더 및 섹터 ID 정보를 또한 전송하고, 라인(254)을 통해 시퀀서 제어 및 상태 레지스터(250)내의 서보 인덱스 및 서보 ID 레지스터내에 정보를 위치시킨다. 이들 실린더 및 섹터값은 데이타 버스(248)를 경유하여 저급 마이크로콘트롤러 인터페이스 유니트(206)을 통해 마이크로콘트롤러(80)에 의해 즉시 판독된다. 원 데이타 열의 어드레스 마크에 대한 추적(hunt)을 시작하는 마크 탐색신호 따위의 구성 정보는 마이크로콘트롤러(80)에 의해 시퀀서 제어 및 상태 레지스터(250)로부터 서보 상태 제어 레지스터 유니트내의 사전한정된 비트 위치내에 프로그래밍된다. 그러면, 대응하는 인에이블링 신호가 제어라인(256)을 통해 서보 시퀀서(214)에 제공된다.
이와 유사하게, 시퀀서 제어 및 상태 레지스터(250)는 마이크로 콘트롤러(80)에 의해 프로그램가능하고 데이타 시퀀서(216)의 동작구성을 효과적으로 한정하는 데이타 레지스터를 포함한다. 이들 레지스터는 표 6에 나타낸 레지스터와 시러스(Cirrus)로직 (미합중국 캘리포니아 프레몬트 빌딩 I-905 워렌 애비뉴 3100W소재)에서 발생 하는 시러스 로직 데이타 시트 북(SH4A)에 기재된 바와 같은 시러스 로직 CL-SH260 따위의 종래의 디스크 데이타 시퀀서의 레지스터를 포함한다.
[표 6]
레지스터 데이타 값은 제어라인(258)을 통해 데이타 시퀀서(216)에 제공된다. 데이타 시퀀서(216)는 일반적으로 데이타 직렬화/비직렬화 및 실행 길이 제한(RLL) 데이타 암호기/복호기로서의 기능을 수행한다. 직렬화된 기록 데이타는 기록 데이타 출력 라인(148)상에 제공된다. 판독 데이타 클록 및 클록 분리 NRZ 판독 데이타는 입력 라인(1421-2)상에 수신된다. 병렬 데이타는 데이타 버스(262)를 통해 데이타 시퀀서(216)로 또는 그로부터 전송된다. 양방향의, 16바이트 깊이의 선입선출(260)은 데이타 버스(262)를 데이타멜티플렉서(222)의 데이타부(270)에 연결한다.
조정 및 버퍼 제어 유니트(200)는 데이타 버퍼(68) 및 데이타 시퀀서(216)간의 데이타 전송을 관측하고 검출한다. 각각의 섹터 데이타 블록 전송은 마이크로콘트롤러(80)에 의한 시퀀서 제어 및 상태 레지스터(250)의 시퀀서 제어 레지스터내의 데이타 전송 선택 비트 및 방향 비트의 프로그래밍에 의해 시작된다. 선택 및 방향 비트는 섹터마다 프로그래밍됨으로써 전송이 이루어졌는지를 한정하며, 전송이 이루어진 경우 그 방향을 한정한다. 전송이 디스크(14)로 이루어진 경우, 데이타 시퀀서(216)는 즉시 데이타 전송 요청 제어신호를 제어라인(2205)을 통해 조정 및 버퍼 제어 유니트(200)에 제공하여, 현재 능동적인 디스크 데이타 전송 동작에 놓여있더라도 버퍼 메모리(68)로부터 선입선출(260)로 데이타를 사전 인출한다. 데이타 시퀀서(216)를 통한 데이타 디스크 전송이 디스크 회전과 동기되어야 하기 때문에, 조정 및 버퍼 제어 유니트(200)는 그러한 전송을 우선순위가 가장 높은 버퍼 요청으로 처리한다. 디스크(14)로부터의 데이타 전송으로 인해, 요청은 데이타가 선입선출(260)내에 먼저 로드됨에 따라 조정 및 제어 유니트(200)와 함께 놓인다. 양쪽 경우에 있어서, 버퍼 레지스터(232)내의 디스크 어드레스 PC 레지스터는 조정 및 버퍼 제어 유니트(200)에 의해 버퍼 메모리(68)내의 디스크 어드레스 전송 위치의 소오스로서 활용된다.
호스트 어드레스 PC 어드레스를 가짐으로써, 디스크 어드레스 PC 어드레스는 마이크로콘트롤러(80)에 의해 디스크 어드레스 PC전송 레지스터의 기록 억세스에 응답하여 디스크 어드레스 PC 프리로드 어드레스 레지스터로부터 로드된다. 디스크(14)로의 또는 그로부터의 각각의 데이타 전송은 마이크로콘트롤러(80)에 의해 시작 되기 때문에, 디스크 어드레스 PC 프리로드 레지스터는 현재의 데이타 전송동작중에 프로그래밍될 수 있다. 마이크로콘트롤러(80)에 의한 오버헤드 처리는 다음의 버퍼 메모리 어드레스의 디스크 어드레스 PC 레지스터로의 전송을 위해 단지 단일의 기록 억세스만을 필요로 함으로써 그리고 데이타 전송방향을 설정하고 데이타 시퀀서를 인에이블함으로써 동작을 수행하기 위해 기록 억세스를 필요로 함으로써 사실상 감소된다. 제어라인(2201)을 통해 버퍼 레지스터(232)에 제공되는 제어신호는 라인(238)상에서 디스크 어드레스 PC 레지스터의 내용을 어드레스 발생기(236)에 놓는다. 결과적으로 얻어지는 버퍼 어드레스는 버퍼 어드레스 및 제어라인(70)의 어드레스부에 제공된다. 데이타 멀티플렉서(222)가 선택되어 대응하는 데이타를 버퍼 메모리(68)에서 데이타 포트 라인(270)을 통해 선입선출(260)에 복귀시킨다. 그 후에 조정 및 버퍼 제어 유니트(200)는 데이타 시퀀서 유니트(216)의 연속적인 데이타 전송 동작을 지원하는데 필요한 선입선출(260)을 통해 데이타의 흐름을 관측하고 제어한다. 버퍼(68)가 각각 억세스되면, 디스크 어드레스 PC 내에 고정된 어드레스는 완전한 섹터 데이타 필드가 전송완료될 때까지 증분된다. 전형적으로는 516 바이트(512) 데이타 바이트 + 4 CRC 바이트인 섹터 바이트 길이는 마이크로프로세서(90)에 의해 시퀀서제어 및 상태 레지스터(250)내의 섹터 크기 레지스터내에 프로그램되는 값에 의해 설정된다. 따라서, 데이타 시퀀서(216)는 단순히 선입선축(260)을 억세스하기 위해 동작하여 내부 데이타 시퀀서 동작을 지원하는데 필요한 데이타의 정상적인 열을 전송한다. 데이타 버퍼 어드레스를 제공하기 위한 디스크 어드레스 PC 값의 증분을 포함하는 선입선출(260) 및 데이타 멀티플렉서(222)를 통한 데이타의 조정은 제어라인(2201, 2202, 2205, 240)상에 제공된 제어신호를 통해 조정 및 버퍼 제어 유니트(200)에 의해 수행된다.
데이타 시퀀서(216)는 ECC 발생 및 제어 유니트(210)와 공동작용하여 하드웨어 발생 및 데이타 에러의 교정을 용이하게 한다. 데이타가 버퍼 메모리(68)에서 선입선출(260)으로 전송이 되면, 조정 및 버퍼 제어 유니트(200)는 제어라인 (2204)을 통해 멀티플렉서(274)를 선택함으로써 ECC 유니트 입력 라인(276)상에 데이타를 루팅한다. 라인(2207)상에 제공된 제어신호는 ECC 발생 및 제어 유니트(210)의 동작을 개시하며 그를 한정한다. 선입선출(260)로의 데이타의 사전 인출로 인한 버퍼의 지연에 의해 데이타 시퀀서가 마지막 섹터 바이트를 선입선출(260)로부터 전송할 때 또는 그 전에 ECC 발생 제어 유니트(210)가 전형적으로는 길이가 11 바이트인 섹터 ECC 값을 발생시키기에 충분한 시간이 제공된다. 섹터 ECC 값은 제어라인(278)을 통해 데이타 시퀀서(216)로 지나간다. 데이카 시퀀서(216)는 ECC 값 바이트의 전송을 제어함으로써 데이타 버스(262)를 통해 수신된 섹터 데이터의 단부에 섹터 ECC 값을 부가한다. ECC를 포함하여 디스크 섹터 데이타 필드의 길이는 전형적으로 527 바이트이다.
판독 데이터의 전송으로 인해, 멀티플렉서(274)는 제어라인(2204)에 의해 선택됨으로써 판독 데이타 열을 데이타 버스(262)로부터 ECC 유니트 입력 라인(276)상으로 통과시킨다. 데이타가 수신되면, ECC 값은 재계산된다. 앞서 계산된 섹터 ECC 값은 , 디스크(14)로 부터 판독되는 경우, 선입선출(260)에 기록되지 않고, 라인(278)을 통해 ECC 발생 및 제어 유니트(210)로 다시 향한다. 재계산된 섹터 데이타 ECC 값은 데이타 시퀀서(216)에 의해 판독된 앞서 계산된 ECC 값과 비교된다. 비교가 완료되면, ECC 발생및 제어 유니트(210)는 ECC 상태 비트를 라인(282)을 통해 시퀀서 제어 및 상태 레지스터(232)의 에러 제어 및 상태 레지스터내에 기록함으로써 섹터 판독이 어떠한 비트 에러를 포함하였는지의 여부를 나타낸다. 에러 제어 및 상태 레지스터 및 ECC 발생 및 제어 유니트(210)에 의해 사용되는 다른 레지스터를 표 8 에 보였다.
[표 8]
에러가 검출되었을 때, ECC 발생 및 제어 유니트(210)는, 라인(284)을 통해 표시되는 에러 제어 및 상태 레지스터내의 하드웨어 교정 제어 비트에 의해 인에이블되는 경우, 버퍼 베모리(68)내에 현재 정단된 데이타상의 데이타 에러를 자율적으로 식별하고 교정한다. 최대로 교정가능한 에러 값은 에러 제어 상태 레지스터내의 하드웨어 교정 인에이블 제어 비트를 설정함과 함께 마이크로콘트롤러(80)에 의해 에러 오프셋 카운터 프리로드 리제스터에 프로그램밍된다. 이 프리로드된 값은 주어진 데이타 섹터 크기로 ECC 교정 시프트 레지스터상에서 이론적으로 수행될 수 있는 최대수의 비트 시프트를 나타낸다. 에러 오프셋 카운터 프리로드 값은 (섹터 크기 x 4)-3 으로 계산된다. 값은 하드웨어 ECC 에러 교정 사이클이 시작되면 에러 오프셋 카운터 레지스터내로 로드된다. 또한, 버퍼 메모리(68)내에 지금 저장되어 있는 섹터 데이타의 마지막 바이트의 어드레스에 대응하는 디스크 어드레스 PC 값은 ECC 어드레스 PC 레지스터(표6)로 전송된다.
실제로 섹터 데이타내의 비트 에러의 위치를 식별하기 위해, 디스크(14)로부터 재계산되고 판독되는 ECC 값이 교정 시프트 레지스터를 통해 처리된다. 에러 오프셋 카운터 값은 교정 시프트 레지스터의 각각의 시프트와 함께 감분되고 ECC 어드레스 PC 값은 교정 시프트 레지스터의 각각의 8개의 시프트 후에 감분된다. 에러의 위치를 파악하고 에러가 교정가능한 것으로 판단되면, ECC 발생 및 제어 유니트(210)는 제어라인(212)상의 억세스 요청을 조정 및 버퍼 제어회로(200)에 제공함으로써 버퍼 메모리 억세스를 요청한다. 바람직하게는, ECC 발생 및 제어 유니트(210) 요청은 호스트 및 저급 마이크로콘트롤러 인터페이스 유니트의 경우의 아래의 우선순위로서 조정 및 버퍼 제어 유니트(200)에 의해 처리된다.
ECC 발생 및 제어 유니트(210)는 ECC 에러를 교정하는데 필요한 3개까지의 판독/수정/기록 버퍼 엑세스 사이클을 수행하는 것이 바람직하다. 각각의 사이클에서, 버퍼 판독 억세스는 버퍼 레지스터(232)로부터 어드레스 발생 및 판독/기록 제어 유니트(236)를 통해 버퍼 메모리(68)로 제공되는 ECC 어드레스 PC 값에 위치하는 섹터 데이타 바이트를 획득한다. 이 섹터 데이타 바이트는 데이타 멜티플렉서(222)를 경유하고 제어라인(212)을 통해서 ECC 발생 및 제어 유니트(210)로 복귀한다. 일단 수정되면, 섹터 데이타 바이트는 버퍼 메모리(68)에 다시 기록되고 버퍼 레지스터(232)내의 ECC 어드레스 PC 값은 감분된다.
ECC 에러 위치가 ECC 발생 제어 유니트(210)에 의해 발견되지만, 에러가 교정불가능한 것으로 결정되면, 대응하는 상태 비트는 에러 제어 및 상태 레지스터내에 설정된다. 마이크로콘트롤러(80)는 그 펌웨어 루틴내에서 ECC 검출 에러를 교정하기 위한 더욱 넓은 알고리즘을 실현할 수도 있다. 따라서, 마이크로콘트롤러(80)는 교정 시프트 레지스터 억세스 포트 레지스터의 연속하는 억세스를 통해 교정 시프트 레지스터내에 표시된 증후군(syndrome)의 값을 판독한다. 각각의 억세스는 증후군의 최하위 비트 바이트를 검색한다. 연속하는 판독간에, 에러 제어 및 상태 레지스터내의 바이트 시프트 인에이블 비트의 기록은 교정 시프트 레지스터내의 증후군의 값을 오른쪽으로 8 비트만큼 시프트함으로써 전체 증후군이 연속적으로 판독될 수 있다.
최종적으로, ECC 에러의 위치를 파악하지 못하게 되는 것은 에러 오프셋 카운터 값의 종료에 따라 검출된다. 이러한 경우, 하드웨어 교정 사이클은 종료되고 대응하는 에러 상태 비트가 에러 제어 및 상태 레지스터내에 설정된다. 이 또는 앞서의 ECC 에러 상태에서, 마이크로콘트롤러(80)는 ECC 에러를 포함하는 데이타를 폐기하고 디스크(14)로부터 데이타를 재판독하는 것으로 결정할 수도 있다. 어떠한 경우에도, 마이크로콘트롤러(80)는 통계적인 또는 경과적인 기록 유지를 포함하여 에러를 처리하기 위해, 프로세서간 레지스터를 통한 대응하는 명령 및 블록 어드레스 기준값에 의해 에러의 속성, 익스텐트 및 위치를 호스트 마이크로콘트롤러(52)에 보고할 수도 있다.
버퍼 억세스 요청의 최종 소오스는 재생 제어 유니트(286)이다. 재생 제어 유니트(286)는 버퍼 메모리(86)가 정적 메모리 설계로 이루어지는 것과는 반대로, 동적 메모리 셀을 활용하는 경우에만 필요하다. 버퍼 메모리(68)로의 억세스는 요청 제어신호를 제어 라인(288)을 통해서 조정 및 버퍼 제어 유니트(200)로 제공함으로써 재상 제어 유니트(286)에 의해 주기적으로 요청된다. 메모리 버퍼(68)의 데이타 보전성을 유지하기 위한 필요성이 주어지면, 재생 사이클 요청이 조정 및 버퍼 제어 유니트(200)에 의해 최고의 우선순위의 요청으로서 처리된다. 요청이 받아들여지면, 조정 및 버퍼 제어 유니트(200)는 버퍼 메모리(68)의 종래의 동적 메모리 재생 사이클 억세스를 지시한다. 소정의 동적 메모리 재생 사이클을 나타내는 이진 값은 버퍼 레지스터(232)내의 재생 레지스터내로 마이크로콘트롤러(52)에 의해 프로그램된다. 이 재생 값은 라인(290)을 통해서 재생 제어기(286)로 전송된다. 재생 레지스터가 표9에 기재되어 있다.
[표 9]
D. 소형 컴퓨터 시스템 인터페이스(SCSI) 호스트 인터페이스 구조
호스트 인터페이스 유니트(50)의 바람직한 실시예의 상세한 블록선도가 제 6 도에 도시되어 잇다. 도시한 바와 같이, 호스트 인터페이스 유니트(50)는 다수의 포텐셜 데이타 소오스와 데이타 수신포트간의 제어된 데이타의 전송을 관리하는데 필요하다. 제 6 도에 도시한 호스트 인터페이스 유니트(50)의 바람직한 실시예의 경우, 데이타의 포텐셜 소오스는 호스트 인터페이스(12), 이 경우에는 소형 컴퓨터 시스템 인터페이스(SCSI), 데이타, 어드레스 및 제어버스(54)의 데이타부(541) 및 각각의 액추에이터 제어기(32, 34)의 공유 데이타 버스(72, 76)에 연결되는 두개의 데이타 포트, 포트A 및 포트B를 포함한다. 동일한 세트의 데이타 소오스가 또한 포텐셜 데이타 수신지이다.
호스트 인터페이스 유니트(50)를 통해 원위치로 돌아가는 주요데이타 경로는 호스트 인터페이스(12)의 데이타부가 데이타 래치(292)를 통해 내부 데이타 버스(296)를 경유하여 다중 입력 단일 출력 데이타 경로 멜티플렉서(294)의 입력부를 통해 커플링됨으로써 시작된다. 멀티플렉서(294)의 출력은 데이타 버스(300)를 통해 17바이트 깊이의 선입선출(298)에 연결된다. 선입선출(298)의 포트A출력은 멀티플렉서(302)를 통해, 라인(306), 출력 래치(310) 및 라인(314)을 경유하여 포트A 공유 데이타 출력버스(72)에 연결된다. 유사한 방식으로, 선입선출(298)의 포트 B 출력은 멀티플렉서(304)를 통해 라인(308), 출력 래치(312) 및 라인(316)을 통해 포트B공유 데이타 출력버스(76)에 연결된다.
원위치로 되돌아가는 이차 데이타 경로를 나타내는 호스트 마이크로콘트롤러
(52)로부터의 데이타는 데이타 라인(324)을 통해 멀티플렉서(294)의 또다른 입력에 루팅된다. 그곳으로부터, 마이크로콘트롤러(54)에 의해 시작되는 데이타의 데이타 경로는 호스트 인터페이스 데이타의 데이타 경로와 동일하다. 그러나, 선입선출(298)의 포트A 출력에 제공되는 데이타는, 그밖에, 라인(306)을 통해 SCSI 호스트 인터페이스(12)의 데이타부(121)로 전송하기 위한 SCSI 명령 시퀀서(330)로 루팅될 수 있다. 이 데이타 경로는 호스트 마이크로콘트롤러(52)가 호스트 인터페이스(12)를 통해 전송되는 SCSI 명령 및 응답의 지원으로 직접 데이타를 제공할 수 있도록 제공된다.
포트 A 및 포트 B 공유 데이타 버스(72, 76)는 나머지 두 데이타 입력부에 멀티플렉서(294)를 제공한다. 선입선출(298)을 통한 적절한 루팅을 통해, 포트 A 및 포트 B 데이타는 SCSI 명령 시퀀서(330)에 유연하게 루팅되거나 역수 포트 B및 포트 A 공유 데이타 버스(76, 72)에 루팅되거나 멀티플렉서(318)에 루팅됨으로써 데이타, 어드레스 및 제어 버스(54)의 데이타부(541)를 통해 호스트 (52)에 전송된다.
공유 데이타 버스(72, 76)는 라인(320, 322)을 통해 입력 데이타를 멀티플렉서(318)에 제공하기 때문에, 호스트 마이크로콘트롤러(52)는 나란히 SCSI 명령 시퀀서(330)에 전송되고 액추에이터 제어기(32, 34)에 전송되는 실제 데이타를 수신할 수 있다. 또한, 호스트 인터페이스(12)의 데이타 버스부(121) 및 공유 데이타 버스(72, 76)는 양방향이기 때문에, 호스트 마이크로콘트롤러(52)는 특정 데이타 소오스 및 수신포트에 관계없이 전송되는 데이타를 관측할 수 있다.
호스트 인터페이스(12)를 통해 전송되는 데이타의 보전성을 보전하고 후속하여 유효하게 하기 위하여, 각각의 SCSI 데이타 단어는 패리티 비트를 포함한다. 원위치로 향하는 데이타 전송의 패리티 비트는 패리티 비트 라인(123)을 통해 SCSI 명령 시퀀서
(330)로 전송된다. 데이타 단어는 호스트 인터페이스 버스(121)의 데이타부를 통해 패리티 발생기(332)로 통과하며, 여기서는 수신된 실제의 데이타 단어에 기초하여 패리티 비트를 재발생시킨다. 재발생된 패리티 비트는 패리티 비트 라인(334)을 통해 SCSI 명령 시퀀서에 제공됨으로써 수신된 실제의 패리티 비트와 비교된다. 패리티 에러의 종래의 SCSI 처리는 SCSI 명령 시퀀서(330)가 패리티 비트비교가 이루어지지 않았음을 결정하는 경우 시작된다.
호스트 인터페이스(50)를 통해 전송된 데이타의 타당성은 순환 여유검사(cyclic redundancy check; CRC) 값을 호스트 인터페이스 유니트(50)를 통해 전송된 각각의 데이타 블록에 연합시킴으로써 또한 유지되고 검사된다. 내부 데이타 소오스 멀티플렉서와 통합된 CRC 발생 유니트(336)는 데이타, 어드레스 및 제어버스(54)의 데이타 버스부(541)로부터, 입력 버스(338, 340)를 통해 포트 A 및 포트 B 공유 데이타 버스(72, 76)로부터, 그리고 버스(320, 322)를 통해 포트 A 및 포트 B 공유 데이타 버스(72, 76)로부터 데이타 열로서 각각의 데이타 블록을 수신한다. 따라서, 호스트 인터페이스(12)에서 나온 원위치로 향하는 데이타의 경우, 궁극적으로 포트 A 또는 포트 B 공유 데이타 버스(72, 76)를 통해 전송되는 데이타는 내부 데이타 버스 라인(320, 322)을 경유하여 CRC 발생기(336)로 루팅된다. 그러면, 데이타 블록 수신지에 따라, 결과적으로 얻어진 CRC 값은 CRC 출력 라인(346, 348)으로 제공되고, 멀티플렉서(302, 304)및 출력 래치(310, 312)를 통해 공유 데이타 버스(72, 76)에 제공된다.
본 발명의 바람직한 실시예에 있어서, CRC 발생기(336)는 포트 A 또는 포트 B 공유 데이타 버스(72, 76)에 전송된 데이타의 각각의 원위치로 향하는 512 바이트 블록의 4 바이트 CRC 값을 생성 하였다. 이 4바이트 CRC 값은 멀티플렉서(302, 304)의 동작 및 계속되는 버퍼 메모리(68)의 기록 억세스를 통해 512 바이트 블록에 부가된다. 선입선출(298)의 깊이는 일반적으로 현재의 블록이 CRC 발생 유니트(336)를 통해 처리되고, 버퍼 메모리(68)내의 현재의 블록에 CRC 값을 부가하기에 필요한 별도의 버퍼 메모리(68) 억세스가 수행되며, CRC 발생 유니트의 하드웨어 재초기화가 CRC 시드값으로 완료되는 한 원위치로 향하는 데이타의 다음 블록의 수신이 처리될 수 있게 하기에 적절하다.
원위치에서 나오는 데이타 전송에 있어서, 포트 A 또는 포트 B 공유 데이타 버스 (72, 76)에서 나오는 데이타는 내부 데이타 버스(338, 340)를 통해 멀티플렉서(294)를 통한 데이타 전송과 일치하는 CRC 발생 유니트(336)를 거쳐 선입선출(298)내로 들어간다. 선입선출(298)에서 나온 데이타는 포트 A 버스(306)를 통해 SCSI 명령 시퀀서(330)를 통과하여 호스트 인터페이스(12)로 출력된다. 데이타 블록의 선입선출(298)로의 전송의 마지막에 임하여, 이전에 계산된 CRC 값을 나타내는 4 바이트는 포트 A 및 포트 B 버스(72,76)로 부터 CRC 발생기(336)로 전송된다. CRC 값은 선입선출(298)내에 놓이지 않는다. 재계산된 CRC 값은 앞서의 계산된 값과 비교된다. CRC 비교가 실패로 끝나는 경우, 제어신호는 CRC 발생 유니트(336)로부터 SCSI 명령 시퀀서(330)로 통과함으로써 원위치에서 나오는 데이타 블록이 데이타 에러를 포함 하고 있는지 그리고 궁극적인 수신 호스트에 의해 폐기되어야 하는지를 나타낸다.
호스트 마이크로콘트롤러 유니트(50)의 제어경로 기능은 마이크로콘트롤러 복호기 유니트(356), 제어 레지스터 유니트(342) 및 비동기 로직 블록(386)을 통해 실현된다. 추가 제어 경로지원이 선입선출 제어기(368), CRC 발생 유니트 제어기(354), SCSI 요청 래치(396) 및 인터럽트 제어기(398)에 의해 제공된다.
SCSI 명령 시퀀서가 호스트 인터페이스(12)상에서 원위치로 향하는 SCSI 명령을 수신한 경우, 명령 및 관련 데이타는 선입선출(298)로 로드된다. 라인(394)중 하나위의 제어신호에 의해 비동기 로직 유니트(386)는 라인(543)상의 인터럽트를 흐스트 마이크로콘트롤러(52)에 발행한다. 멜티플렉서(318)의 출력버스(541)에 대응하고 마이크로콘트롤러 복호 유니트(356)에 의해 인식되어 선입선출(298), 멜티플렉서(302) 및 래치(310)를 선택하는 메모리 위치가 연속하여 판독되면, SCSI 명령 및 관련 데이타는 마이크로콘트롤러(52)에 의해 판독되고 대기된다. 마이크로콘트롤러(52)가 SCSI 명령에 응답하기 시작하는데 필요한 일련의 저급 명령을 수행할 것을 지시하면, 호스트 인터페이스 유니트(50) 및 버퍼/시퀀서(66)의 동작의 다음상태가 측정된다. 마이크로콘트롤러(52)는 호스트 인터페이스(50)의 제어 레지스터 유니트(342) 및 버퍼/시퀀서(66)의 버퍼 레지스터(232)를 호스트 인터페이스 유니트(50) 및 버퍼 메모리(68)간의 데이타 전송에 적절하게 프로그래밍함으로써 이 상태를 설정한다. 데이타의 프로그램된 양이 전송된 경우 호스트 어드레스 PC 레지스터내의 어드레스를 갱신하기 위해 블록 전송이 완료되면, 비동기 로직 유니트(386)에 의해 인터럽트가 라인(543)상에서 마이크로콘트롤러(52)에 다시 발생되게 된다.
따라서, 제어 레지스터 유니트(342)는 호스트 인터페이스 유니트(50)용 정적 구성 파라미터를 정적으로 저장하며, 호스트 인터페이스 유니트(50)의 동작상태를 수정하고 호스트 인터페이스 유니트(50)의 동작상태를 동적으로 반영하는 억세스가능한 상태 값을 만들기 위해 호스트 마이크로콘트롤러(52)에 의해 다시 프로그램될 수 있는 동작 제어 값을 저장하기 위해 제공된다. 제어 레지스터 유니트(342)는 호스트 마이크로콘트롤러(52)의 어드레스 공간내에 메모리 맵되는 것이 바람직하다. 따라서, 적절한 어드레스 및 제어신호 및 어드레스 및 제어버스(542)를 제공함으로써, 대응하는 레지스터 선택 신호가 제어라인(358)을 통해 제어 레지스터 유니트(342)에 제공된다. 데이타, 어드레스 및 제어 버스의 데이타부에 제공된 데이타는 내부 버스(324)를 통해 대응하는 제어 레지스터내에 기록될 수 있다. 그러나, 마이크로콘트롤러(52)가 판독동작을 요청하면, 제어 레지스터 유니트(342)의 어드레스 기준 레지스터의 내용은 내부 데이타 버스(324, 328)로 전송되고, 멀티플렉서(318)를 통해 데이타, 어드레스 및 제어버스(54)의 데이타부(541)에 전송된다.
제어 레지스터 유니트(342)내에 저장된 값은 제어라인(364)의 하나에서 제어신호를 SCSI 요청 유니트(396)에 발생시켜 SCSI 명령 조정 및 실행 트랜잭션을 요청하는 비트 위치를 포함한다. 라인(398)을 통해 SCSI 명령 시퀀서에 제공되는 이 요청 신호는 제어라인(390)을 통해 비동기 로직 유니트에서 나온 제어신호를 제공함으로써 호스트 인터페이스 유니트(50)의 내부동작에 먼저 동기된다. 별도의 구성제어신호가 제어라인(364)을 통해 직접 SCSI 명령 시퀀서(330)에 제공된다. 별도의 하나의 제어신호가 멀티플렉서 출력 버스(300)에 커플링되는 그 4 바이트 데이타 입력중 하나를 선택하기 위해 멀티플렉서(294)에 지시된다.
제어 레지스터 유니트(342)에 의해 저장된 또다른 값은 CRC 발생 유니트(336)의 재초기화시 제어라인(344)을 통해 CRC 발생 유니트(336)에 사이클되는 CRC 시드 값이다. 이 초기값은 CRC 발생 알고리즘을 실현하는 로직을 준비하는데 사용된다. 그것만으로, 마이크로콘트롤러(52)에 의해 제시간보다 먼저 제어 레지스터 유니트(342)내에 프로그램된 정적 값일 수도 있다. 그렇지 않으면, 호스트 마이크로콘트롤러(52)는 사용되는 데이타 블록의 양상에 기초하여 시드 값을 선택할 수도 있다. 즉, 예를 들어 논리적인 섹터수 또는 그 순환은 시드 값으로 사용되어 동일한 CRC 값이 계산되는 데이타를 또는 다른 논리적인 섹터에서 부주의하게 판독된 동일한 데이타가 앞서 계산된 CRC 값을 조합하는 재계산된 CRC 값을 산출할 수 없다는 것을 보장한다. 따라서, CRC 값은 버퍼 메모리(68)내에 저장되고 버퍼 메모리(66)를 통해 처리되는 데이타를 포함하여 호스트 인터페이스 유니트(50)와 다스크(14)간의 어떤점에서 발생하는 데이타 에러는 물론 디스크(14)상의 부적절한 위치로 부터 데이타 블록의 판독으로 가져오는 기계적인 펌웨어 에러에 대해 효과적으로 보호된다.
제어 레지스터 유니트(342)내에 저장된 값에서 발생된 또다른 제어신호는 제어라인(372)을 통해 제공됨으로써 CRC 제어 유니트(354)의 동작을 인에이블한다. 유사한 제어 값이 라인(370)상에서 선입선출 제어 유니트(368)에 구성제어 신호를 발생시킨다. 선입선출(298)의 동작을 한정하는 별도의 제어신호가 비동기 로직 유니트(386)와 함께 시작되는 제어라인(390)을 통해 선입선출 제어 유니트(368)에 의해 수신된다. CRC 발생 유니트(336) 및 선입선출(298)의 통합된 동작은 제어라인(376)상에서 선입선출 제어 유니트(368)에서 CRC 제어 유니트(354)에 제공되고 제어라인(378)을 통해 CRC발생 유니트(336)에 제공되는 제어 신호에 의해 달성된다.
다수의 제어값이 제어 레지스터 유니트(342)내에 저장되고 제어라인(360)상에서 비동기 로직 유니트(386)에 제공되어 인터페이스(50)에 의해 수행되는 동작 제어 순서를 선택한다. 별도의 제어상태 귀환 신호가 비동기 로직 유니트(386)에 의해 제어 신호(384)를 통해 선입선출 제어 유니트(368), CRC 비교 실패 라인을 포함하는 제어라인(382)으로부터, CRC 발생 유니트(336)로부터, 그리고 제어라인(394)을 통해 SCSI 명령 시퀀서(330)로부터 수신된다. 그밖에, 액추에이터 제어기(32, 34)와 연관된 인에이블 및 승이 제어신호가 제어라인(131, 781, 134, 783)을 통해 수신된다. 이에 응답하여, 비동기 로직 유니트(386)는 출력 라인(392)상에서 시퀀서 제어 신호를 발생시키고, 출력제어라인(390)상에서 성분 제어신호를 발생시킨다. 이들 성분 제어 신호는 라인(132, 782, 136, 783)상의 포트 A 및 포트 B 요청 및 바이트 계수 신호를 포함하고 라인(543)상에서 호스트 마이크로콘트롤러(52)로 들어가는 인터럽트 신호를 포함한다. 내부적으로, 성분제어신호는 멀티플렉서(318)에 제공되는 멀티플렉서 인에이블 및 입력 선택 신호, 출력 래치(310)에 제공되는 래치 인에이블 신호, CRC 제어기(354)에 제공되는 제어신호를 한정하는 순서 및 제어 레지스터 유니트(342)내의 상태 레지스터로 다시 제공되는 상태값을 포함한다. 성분 제어 신호는 패리티 발생기(332) 및 SCSI 요청 유니트(396)의 동작을 SCSI 명령 시퀀서(330)의 동작에 동기시키기 위한 인에이블 신호를 또한 포함한다.
최종적으로, 인터럽트 제어기(398)는 집중장치로서 작용함으로써 다수의 다른 인터럽트 조건에 응답하여 호스트 인터페이스의 라인(124)상의 단일 SCSI 인터럽트 신호를 생성한다. 소오스는 SCSI 명령 시퀀서(330)로부터, 비지(busy)/대기(await) 인터럽트, 선택 인터럽트 및 선택된 인터럽트를 포함한다. 비동기 로직 블록(386)은 다른 것들중에서, SCSI 패리티 에러 인터럽트, 식별 인터럽트 및 SCSI 리세트 인터럽트의 소오스이다. 인터럽트 마스크는 SCSI 인터럽트의 선택된 소오스를 선택적으로 인에이블하기 위해 마이크로콘트롤러(52) 데이타 버스(541)를 통해 인터럽트 제어기내로 프로그래밍될 수도 있다.
E. 물리적 블록(IDE) 호스트 인터페이스 구조
호스트 인터페이스 유니트의 또다른 구조가 제 7a도에 도면부호 50˝으로 도시되어 있다. 호스트 인터페이스 유니트(50˝)는 시스템(10)이 산업규격 IDE 인터페이스를 준수하는 호스트 인터페이스(12)와 동작하도록 되어 있는 경우에 바람직하다. 인터페이스 명령 시퀀서(412)는 명령과 함께 전송되는 데이타의 소오스 또는 수신지를 나타내는 명령 및 데이타를 수신하는 일련의 레지스터와 통합된다. 이에 응답하여, 인터페이스 명령 시퀀서(412)는 특히 I/O 채널(IOCHNL) 준비신호를 포함하여 인터페이스 명령 시퀀서(412) 및 바람직하게는 마이크로콘트롤러(80)가 요청되는 명령 동작을 위해 설정되는데 필요한 다수의 제어신호를 호스트 제어라인(122)상에서 발생시킨다.
호스트 인터페이스(12)에서 나온 데이타는 내부 데이타 버스(416)를 통해 멀티플렉서(414)의 입력부에 루팅된다. 멀티플렉서(414)로의 다른 데이타 입력부는 포트 A 및 포트 B 공유 데이타 버스(72, 76) 및 데이타, 어드레스 및 제어버스(54)의 데이타부(541)를 포함한다. 데이타는 멀티플렉서(414)로부터 멀티블렉서 데이타 출력 버스
(420)를 통해 17 바이트 깊이의 선입선출(418)로 전송된다. 데이타는 선입선출(418)로부터 선입선출 출력 버스(426)를 통해 두개의 멀티플렉서(422, 424)중 어느 하나 또는 둘다에 전송되고, 출력 데이타 래치(430, 432)를 통해 데이타 버스(434, 436)를 경유하여 포트 A 및 포트 B 공유 데이타 버스(72, 76)에 전송된다. 선입선출(418)에서 나온 데이타는 데이타 버스(426)를 통해 인터페이스 명령 시퀀서(412)로 전송되어 호스트 인터페에스(12)의 호스트 데이타부(121)로 루팅될 수도 있다. 최종적으로, 멀티플렉서(442)는 인터페이스 명령 시퀀서(412)를 통해 내부 데이타 버스로 바이패스되는 호스트 인터페이스(12)로부터 나오는 데이타 또는 포트 A 또는 포트 B 공유 데이타 버스(72, 76)상에 전송된 데이타를 호스트 마이크로콘트롤러 데이타, 어드레스 및 제어버스(54)의 데이타부(541)상에 선택적으로 전송하기 위해 제공된다. 그에 의해, 멀티플렉서(442)는 호스트 마이크로콘트롤러(52)가 포트 A 및 포트 B 버퍼 메모리(68, 68´)로의 모든 호스트 데이타 전송 및 모든 데이타 전송을 관측할 수 있도록 한다.
CRC 발생 유니트(446)가 제공되어 호스트 인터페이스(12)에서 수신되는 전형적으로 512 바이트 길이의 각각의 데이타 블록과 독특하게 연합하는 전형적으로 4 바이트 길이의 CRC 값을 발생시킨다. 원위치로 향하는 데이타는 데이타 블록 수신지가 포트 A 또는 포트 B 공유 데이타 버스(72, 76)인지에 따라 내부 데이타 버스(438, 440)를 통해 CRC 발생기(446)로 루팅된다. CRC 발생 유니트(446)에 의해 생성된 CRC 값은 데이타 버스(454, 460) 상에서 포트 A 또는 포트 B 공유 데이타 버스(72, 76)상에 전송된 데이타 블록의 단부에 부가되기에 적절한 멀티블렉서(422, 424)에 제공된다.
선입선출(418)의 깊이는 CRC 발생기(446)의 동작이 그 동작을 완료하기에 충분한 다음의 데이타 블록 데이타의 시작을 수용하기에 충분하다. 또한, CRC 발생기(446)는 새로이 계산된 CRC 값이 전송되고 그에 대응하는 512 바이트 블록의 데이타에 부가하기 위해 판독되는 4 바이트의 출력 버퍼를 짜넣는 것이 바람직하다. CRC 발생 유니트(446)내의 이 출력단계에 의해 유니트(446)는 다음의 데이타 블록 전송에 따라 재초기화될 수 있다.
원위치에서 나와서 포트 A 및 포트 B 공유 데이타 버스(72, 76)를 통해 호스트 인터페이스 유니트(50˝)에 의해 수신되는 데이타 블록은 내부 데이타 버스(450, 452)를 통해 CRC 발생 유니트(446)에 전송된다. 전체 데이타 블록이 수신되면, 멀티플렉서(414)는 더이상 데이타를 선입선출(418)에 전송하지 않는다. 그러나, 부가된 사전에 게산된 CRC 값은 CRC 발생 유니트(446)로 통과한다. 이 사전에 계산된 CRC 값은 데이타 블록 전송 데이타에서 재계산된 CRC 값과 비교된다. CRC 값 비교의 부합/실패 상태는 궁극적으로 호스트 인터페이스(12)에 연결되는 호스트에 이용가능한 상태 조건에서 반영된다.
호스트 인터페이스(50˝)의 동작은 인터페이스 명령 시퀀서(412)내의 레지스터내에 구성상태 파라미터를 프로그래밍함으로써 계속된다. 이들 값은 호스트 인터페이스 유니트(50˝)의 프로그램 상태를 설정한다. 이들 데이타 값은 마이크로콘트롤러
(52)의 전체 어드레스 공간내의 I/O 맵핑된 위치에 기초하여 호스트 마이크로콘트롤러
(52)에 의해 프로그램된다. 이들 데이타 값은 호스트 마이크로콘트롤러 데이타, 어드레스 및 제어 버스(54)의 데이타부(541)상에서 인터페이스 명령 시퀀서(412)에 제공된다. 대응하는 I/O 어드레스 및 제어 신호는 버스(54)의 어드레스 및 제어부(542) 상에서 마이크로콘트롤러 복호 유니트(454)에 제공된다. 복호화된 어드레스 및 제어 신호는 제어라인(458)을 통해 비동기 로직 유니트(456)에 제공된다. 이에 응답하여, 대응하는 래치 인에이블 신호가 제어라인(466)을 통하여 인터페이스 명령 시퀀서(412)에 제공됨으로써 인터페이스 명령 시퀀서(412)내의 대응하는 레지스터로의 공급된 데이타의 기록을 인에이블한다. 이와 유사한 방식으로, 존재하는 구성 파라미터 및 상태데이타는 호스트 마이크로콘트롤러(52)에 의해 인터페이스 명령 시퀀서 레지스터로부터 판독될 수 있다.
인터페이스 명령 시퀀서(412)내의 그러한 레지스터는 명령 레지스터이다. 유효 명령값이 이 레지스터에 기록되면, 인터페이스 명령 시퀀서(412) I/O 채널 준비 신호를 주장하지 않으며 마이크로콘트롤러(52)를 인터럽트하여 새로운 명령의 수신의 신호를 보낸다. 명령및 관련 데이타는 내부 데이타 버스(444) 및 멀티플렉서(442)를 통해 인터페이스 명령 시퀀서(412)로부터 판독된다. 마이크로콘트롤러(52)가 적절히 인터페이스 명령 시퀀서(412) 및 버퍼/시퀀서내에 제어 레지스터를 프로그램하면, 호스트 인터페이스 유니트(50)는 I/O 채널 준비 신호를 재주장할 것을 지시받으며 명령의 처리를 시작한다.
조정제어신호는 제어라인(474)을 통해 비동기 로직 유니트(456)에 제공된다. 이에 응답하여, 선입선출 제어신호는 제어라인(460)을 통해 선입선출 제어 유니트(480)에 제공된다. 제어라인(482)상에 제공된 선입선출 제어신호를 통해, 선입선출 제어기(480)는 선입선출(418)의 동작을 관리한다. 선입선출 상태에 관한 상태정보는 상태라인(484)에 의해 다시 비동기 로직 회로(456)에 제공된다. 비동기 로직 유니트(454)는 제어라인(462, 464)상의 제어신호를 CRC 발생 유니트(446) 및 CRC 제어 유니트(468)에 또한 제공한다. CRC 제어 유니트(468)는 CRC 발생 유니트(446)의 상세한 동작을 담당하며. 그밖에 멀티플렉서(422, 424)중 어느 하나를 선택하여 내부 데이타 버스(454, 466)에서 버스(434, 436)로 현재 전송되는 데이타 블록의 종료부에 CRC 값을 부가하는데 필요한 CRC 값을 전송한다. CRC 발생 유니트(446) 및 CRC 제어 유니트(464)는 상태라인(476)을 통해 비동기 로직 유니트(456)에 다시 상태정보를 제공한다. 그러한 상태신호는 CRC 값 비교 동작의 부합/실패 상태이다. 다른 것들과 함께 멀티플렉서(414)의 특정동작을 제어하는 이 제어신호, 래치(430, 422) 및 멀티플렉서(442)가 제어라인(466)의 일부에 제공된다. 또한, 비동기 로직 유니트(456)는 나머지 제어라인(466)을 경유하여, 포트 A 및 포트 B 요청 신호를 발생시키고 라인(132, 782)상에 제공하며, 포트 A 및 포트 B 바이트 계수 제어 신호를 발생시키고 라인(136, 784)상에 제공한다. 최종적으로, 비동기 로직 유니트(456)는 라인(466)중 하나에 이터럽트 신호를 발생시키고 마이크로콘트롤러 인터럽트 라인(543)에 제공한다. 이 인터럽트 신호는, 앞서 설명한 바와 같이, 인터페이스 명령 시퀀서(412)에 의해 명령의 수신을 경고하는데 사용되어 전형적으로 새로운 호스트 어드레스 PC 어드레스 값이 추가적인 데이타 전송에 요구되는 경우 그리고 예를 들어 CRC 부합 동작이 실패할 경우 블록 데이타 전송의 종료부의 신호를 보낸다.
제7b도에는 인터페이스 명령 시퀀서(412)가 상세히 도시되어 공유 구성 제어 레지스터의 이중 버퍼 또는 스테이징 세트(staging set)의 활용을 보여주고 있다. 마이크로콘트롤러 인터페이스 유니트(500)는 호스트 마이크로콘트롤러 데이타, 어드레스 및 제어 버스(54)의 데이타 및 제어부(541-2)를 수신한다. 마이크로콘트롤러 인터페이스 유니트(500)는 제어라인(466)중 하나를 통해 비동기 로직 유니트(456)로부터 인에이블 제어신호를 또한 수신한다.
동시에, 호스트 인터페이스 유니트(502)는 제어라인(466)중 또다른 하나를 통해 비동기 로직 유니트(456)로부터 호스트 인테페이스 데이타 제어 및 어드레스 라인(121-3) 및 인에이블 제어신호를 수신한다. 마이크로콘트롤러 인터페이스(500) 및 호스트 인터페이스 유니트(502)로 부터의 데이타는 내부 데이타 버스(504, 506)를 통해 입력 라인(504, 506)으로부터 (514)의 출력라인으로 데이타를 선택적으로 전달하는 디멀티플렉서/루터로서의 기능을 수행하는 멀티플렉서(508)로 통과한다. 멀티플렉서의 기능은 마이크로콘트롤러 인터페이스 유니트(500) 및 호스트 인터페이스 유니트(502)에 의해 일제히 구동되는 제어라인 (512)상의 선택신호에 의해 제어된다. 멀티플렉서(508)에서 나온 데이타는 분배버스(514)를 통해 데이타 레지스터(516)의 어레이로 전송된다. 이들 데이타 레지스터는 명령(CMD1), 헤드(SDF1), 실린더(CYL1), 섹터(SCT1), 계수(CNT) 데이타(DATA1) 및 고정값 CRC 시드를 한정하는 단일 바이트의 저장을 위해 제공된다. 따라서, 멀티플렉서(508)의 기능 및 제어버스(512)에서 나온 라인(510)상의 제어신호에 의해 레지스터 어렛이(516)내의 레지스터는 각각 선택된 바이트 값으로 독립적으로 기록된다.
제2 레지스터 어레이(518)는 필수적으로 어레이(516)의 계수 레지스터를 통해 헤드를 복사한다. 이밖에, 에러(ERRO) 레지스터는 현재의 에러 상태값을 유지하기 위해 제공된다. 호스트 인터페이스(12) 또는 호스트 마이크로콘트롤러(52)로부터의 모든 데이타는 데이타 레지스터(DATA1, DATA0)를 통해 루팅된다. 이들 두 레지스터는 함께 호스트 인터페이스(12)로부터의 전송을 위한 단어 대 바이트 변환기로서 동작한다.
제어라인(510, 511)상에 제공된 제어신호는 어레이(516)에서 어레이(518)로의 계수 바이트 값을 통한 헤드의 고속 병렬 전송을 위해 제공된다. 어레이(516)의 계수 레지스터를 통한 헤드와는 달리, 어레이(518)의 대응하는 레지스터는 현재의 데이타 블록 전송 동작을 직접 제어하는데 사용된다. 호스트 인터페이스 유니트(50˝)를 위해, 호스트 인터페이스(12)는 일반적으로 길이가 512 바이트로서 한정되는 섹터와 함께 "물리적" 블록 어드레싱 모드로 동작한다. 따라서, 계수 레지스터내에 저장된 몇개의 섹터로 이루어진 데이타 블록의 전송에 있어서, 각각의 섹터내의 데이타는 현재의 헤드에 의해 억세스되는 현재의 실린더의 섹터내에서 오프셋 계수로서 참조될 수 있다. 따라서, 데이타 블록의 각각의 섹터가 호스트 인터페이스 유니트(50˝)를 통해 전송됨에 따라, 레지스터 어레이(518)의 섹터 어레이내에 저장된 값은 증분되고 계수 레지스터 값은 감분된다. 섹터번호가 실린더당 사전한정된 섹터의 수(전형적으로는 17)를 초과할 때마다, 섹터 값은 제로에 가까워지며 헤드값은 증분된다. 이와 유사하게, 최대 헤드의 수를 초과하면, 실린더 수는 증분된다. 섹터 레지스터 값의 증분은 제어 라인(511)상에서 마이크로콘트롤러 또는 호스트 인터페이스(500, 502)에서 수신된 제어신호에 응답하여 수행된다.
섹터 번호의 오버플로우는, 그것이 실린더당 섹터의 한정된 수를 초과할 때, 오버플로우 어드레스 계산 유니트(552)에 의해 검출된다. 이 오버플로우 어드레스 계산 유니트(552)는 라인(550)을 통해 현재의 계수, 섹터, 실린더 및 헤드 레지스터 값을 관측한다. 섹터, 실린더 및 헤드 레지스터 값중 어느 것이 사전한정된 한계에 이르면, 새로이 조합된 섹터, 실린더 및 헤드 레지스터값이 계산되어 레지스터 어레이(516)의 대응하는 레지스터내에 기록된다. 현재의 계수값은 또한 레지스터 어레이(516)내의 대응하는 레지스터내에 기록됨으로써 보전된다. 따라서, 현재의 섹터가 전송되는 순간, 새로운 조합의 섹터, 실린더 및 헤드값이 레지스터 어레이(518)와 나란히 전송될 수 있으며, 데이타 블록 전송은 호스트 마이크로콘트롤러(52)를 개입시키거나 데이타 블록 전송을 완료에 따른 대기시간을 도입하지 않고도 계속될 수 있다.
레지스터 어레이(518)의 명령 레지스터는 섹터에 기초하여 변화하지 않는다. 오히려, 명령은 전송되는 데이타 블록에 대해 수행되는 동작을 한정한다.
레지스터 어레이(518)의 데이타 레지스터내에 저장된 값은 제어라인(530, 532, 534, 536, 540, 542)을 통한 인터페이스 명령 시퀀서(412)의 제어 로직에 직접 사용될 수 있다. 또한, 레지스터 어레이(516)의 에러 레지스터내의 데이타 값 및 고정 시드 CRC 값은 제어라인(544, 4482)상에서 이용될 수 있다. 고정 CRC 시드 값과는 달리, 이들 레지스터 값은 인터페이스 명령 시퀀서(412)의 동작을 선택하고 점진적으로 시퀀스하는데 사용된다.
가변 CRC 발생기(512)가 제공되어 현재의 헤드 및 실린더 레지스터 값에 직접 종속되는 CRC 시드 값을 발생시킨다. 본 발명의 바람직한 실시예에 있어서, 제어라인(532, 534)으로부터의 헤드 및 실린더 값에 배타적인 또는 그 값의 비트는 가변 시드 유니트(528)에 의해 수행된다. 결과적으로 얻어지는 8비트, 위치 종속CRC 시드 값은 라인(4481)상에 제공된다. 마이크로콘트롤러 인터페이스 유니트(500)에서 나온 제어신호에 의해 제어되는 멀티플렉서(도시안됨)는 위치종속 또는 고정 CRC 시드값이 CRC 시드라인(448)상에서 인터페이스 명령 시퀀서(412)를 통해 CRC 발생 유니트(446)로 제공되는지의 여부를 선택한다. 따라서, 데이타의 타당성이 호스트 인터페이스 유니트(50˝)를 통해 전송되는 각각의 데이타 블록을 위해 CRC 를 제공함으로써 보장됨은 물론, 후속하여 디스크로부터의 판독이 이루어질 대 그 데이타가 의도된 헤드 및 실린더에서 나왔는지에 대한 별도의 보전성 검사가 행해진다.
최종적으로, 호스트 마이크로콘트롤러(52) 및 호스트 인터페이스(12)에 커플링되는 호스트는 레지스터 어레이(518)의 데이타 레지스터를 통한 헤드의 현재의 값을 판독하는 것이 허용된다. 일반적인 데이타 멀티플렉서(524)는 버스(522)를 통해 레지스터 어레이(518)의 헤드, 실린더, 섹터, 계수, 데이타 및 에러 레지스터에 커플링된다. 따라서, 이들 레지스터 값중 어떤 것도 내부 데이타 버스(546)상에서 일반적인 데이타 멀티플렉서(524)를 통해 선택됨으로써 인터페이스 명령 시퀀서(412)를 통해 호스트 데이타 버스 (1211)로 또한 루팅할 수 있다. 이와 유사하게, 상태 멀티플렉서(526)는 완전한 세트의 레지스터 어레이(518)의 레지스터에 연결되고, 또한 레지스터 어레이(516)의 명령 레지스터에 연결된다. 상태 멀티플렉서(526)를 통해 획득될 수 있는 값은 멀티플렉서(442)에 선택된 데이타를 전송하기 위해 내부 데이타 버스(548)상에서 데이타 버스(444)에 제공된다.
이상과 같이, 공통의 한세트의 디스크에 대해 하나 이상의 액추에이터 어셈블리를 제어하기 위한 포괄적인 고성능 구조에 대해 설명하였다. 또한, 전자 제어구조를 통해 데이타 보전성을 보장하고 디스크의 표면으로 또는 그로부터 데이타를 기록하거나 판독하기 위한 일련의 다중구조에 관하여 설명하였다. 구조는 특히 분리형 마이크로콘트롤러가 호스트 인터페이스를 관리하고 액추에이터 어셈블리의 저급 제어를 관리하는 각각의 과제에서 완전히 동작할 수 있도록 하는 각각의 엑추에이터 또는 제어기내에서 중간 버퍼 메모리로의 억세스를 관리하기 위하여 조정 제어기를 사용할 경우 특히 주목할 만하다.
따라서, 본 발명은 이하에 기재하는 특허청구의 범위를 벗어나지 않는 한 여러가지로 변경 및 변형이 가능하다.

Claims (12)

  1. 저장매체, 상기 저장매체에 데이타를 기록하고 상기 저장 매체로 부터 데이타를 검색하는 적어도 하나의 트랜스듀서 및 상기 저장 매체에 대하여 상기 트랜스듀서를 이동하는 액추에이터를 포함하는 하드 디스크 드라이브 시스템에 장착되어, 다수의 호스트 프로세서와 상기 디스크 드라이브 시스템사이에 데이타 및 제어신호의 전송을 제어하는 제어기로서, 제1메모리 유니트에 연결되어, 상기 제1메모리 유니트에 저장된 제1동작 시스템의 제어하에 동작하며, 상기 저장매체에 데이타를 기록하고 상기 저장매체로 부터 데이타를 검색하며 상기 트랜스듀서를 상기 저장매체에 대하여 지정위치로 지정하기 위하여 상기 액추에이터를 위치시키는 것을 제어하고, 상기 트랜스듀서의 위치를 상기 저장매체에 대하여 지정 위치로 유지하는 프로그램된 제1마이크로프로세서와,제2메모리 유니트에 연결되어, 상기 제2메모리 유니트에 저장된 제2동작 시스템의 제어하에 동작하며, 상기 다수의 호스트 프로세서중 요청 호스트 프로세서로 부터 상기 디스크 드라이브 시스템으로의 데이타 전송과 상기 저장매체로 부터 상기 다수의 호스트 프로세서중 요청 호스트 프로세서로의 복구된 데이타의 전송을 제어하고, 상기 제1마이크로프로세서에 의해 수행되는 동작을 한정하기 위하여 상기 제1마이크로프로세서에 대한 파라미터를 발생하고 교환하는 프로그램된 제2마이크로프로세서를 포함하며, 상기 제2마이크로프로세서는 상기 제 1마이크로프로세서와 독립적으로 그리고 동시에 동작하고, 상기 제1 마이크로프로세서는 상기 제2 마이크로프로세서에서 수신된 상기 파라미터에 의해 한정되는 동작을 실행할 때, 상기 제2마이크로프로세서와 독립적으로 그리고 동시에 동작하는 것을 특징으로 하는 제어기.
  2. 제1항에 있어서, 데이타를 저장하는 버퍼와, 상기 저장매체에 저장하기 위하여 상기 제2마이크로프로세서에 의해 상기 버퍼에 저장된 데이타를 복구하고 상기 제2마이크로프로세서에 의해 데이타를 요청하는 호스트 프로세서로 데이타를 전송하기 위하여 상기 저장매체로 부터 복구된 데이타를 상기 버퍼에 저장하는 상기 제1마이크로프로세서와, 데이타를 요청하는 호스트 프로세서에 데이타를 전송하기 위하여 상기 제1마이크로프로세서에 의해 상기 버퍼에 저장된 데이타를 복구하고 상기 제1마이크로프로세서에 의해 상기 저장매체에 저장하기 위하여 상기 호스트로 부터 복구된 데이타를 상기버퍼에 저장하는 상기 제2마이크로프로세서를 포함하는 것을 특징으로 하는 제어기.
  3. 제2항에 있어서, 상기 버퍼에 연결되어, 상기 버퍼와 상기 호스트 사이 및 상기 버퍼와 상기 저장매체 사이에 있는 데이타의 동시흐름을 위하여 상기 버퍼에 대한 억세를 제어하는 버퍼 시퀀서를 포함하는 것을 특징으로 하는 제어기.
  4. 제3항에 있어서, 상기 버퍼 시퀀서는 상기 제1마이크로프로세서에 의해 발생된 상기 버퍼에 대한 억세스용 요청과 상기 제2마이크로프로세서에 의해 발생된 상기 버퍼에 대한 억세스용 요청 사이에 충돌이 발생할 때 상기 버퍼에 대한 억세스를 조정하는 조정수단을 포함하는 것을 특징으로 하는 제어기.
  5. 제1항에 있어서, 상기 제2마이크로프로세서는, 상기 다수의 호스트 프로세서에 의해 발행된 상기 디스크 드라이브 시스템을 위한 태스크를 누산하는 태스크수단과, 상기 태스크가 상기 디스크 드라이브 시스템에 의해 수행되는 순서를 결정하는 시퀀스수단과, 상기 저장매체와 상기 버퍼내의 데이타의 위치를 어드레스 매핑하고 상기 저장매체와 상기 버퍼상에 유효 저장공간을 결정하고 상기 저장매체위와 상기 버퍼내에 공간을 필요로 하는 상기 디스크 드라이브 시스템에 의해 수신되는 상기 태스크를 위하여 상기 저장매체와 상기 버퍼에 저장공간을 할당하는 매핑수단을 포함하는 것을 특징으로 하는 제어기.
  6. 제1항에 있어서, 상기 제2마이크로프로세서는, 상기 디스크 드라이브 시스템과 상기 다수의 호스트 프로세서 사이에 통신을 제어하는 호스트 수단을 포함하며, 상기 디스크 드라이브 시스템은 상기 다수의 호스트 프로세서중 하나와 직접 통신하는 동안 상기 다수의 프로세서중 다른 하나로 부터의 요청을 처리할 수 있는 것을 특징으로 하는 제어기.
  7. 제1항에 있어서, 상기 제2마이크로프로세서는, 상기 다수의 프로세서중 요청 호스트 프로세서로 부터 수신된 태스크를 상기 제1프로세서에 대한 하나 또는 그 이상의 명령으로 변환하여 상기 태스크를 수행하는 변환수단과, 상기 태스크에 대한 상기 하나 또는 그 이상의 명령을 상기 제1마이크로프로세서에 연결된 제3메모리 유니트로 전송하는 전송수단을 포함하는 것을 특징으로 하는 제어기.
  8. 제1항에 있어서, 상기 제1마이크로프로세서는, 상기 저장매체로 부터 복구된 데이타에서 에러를 검출하여 교정하는 에러 처리수단과, 상기 제2마이크로프로세서에 상기 에러와 에러의 위치를 보고하는 보고수단을 포함하는 것을 특징으로 하는 제어기.
  9. 제 8 항에 있어서, 상기 제2마이크로프로세서는, 상기 제1마이크로프로세서와 상기 제2마이크로프로세서에 의해 검출된 에러에 대한 통계적 및 전력(前歷) 에러 기록보존을 수행하는 에러 전력수단과, 상기 제1에러 프로세서에 의해 교정되지 않은 상기 제1마이크로프로세서에 의해 검출된 에러로 부터 복구하는 에러 교정수단과, 상기 제1 마이크로프로세서의 상기 에러 처리수단에 의해 상기 저장매체로 부터 복구된 데이타에서 검출된 에러이외에 상기 디스크 드라이브 시스템에 대하여 내부 데이타 전송시의 에러를 검출하는 에러 검출수단을 포함하는 것을 특징으로 하는 제어기.
  10. 제1항에 있어서, 상기 제2마이크로프로세서는, 상기 다수의 호스트 프로세서에 의해 발행된 상기 디스크 드라이브 시스템을 위한 태스크를 누산하는 태스크수단과, 상기 태스크가 상기 디스크 드라이브 시스템에 의해 수행되는 순서를 결정하는 시퀀스수단과, 상기 저장매체와 상기 버퍼내의 데이타의 위치를 어드레스 매핑하고, 상기 저장매체와 상기 버퍼상에 유효 저장공간을 결정하는 매핑수단과, 상기 다수의 호스트 프로세서와 상기 다수의 호스트 프로세서중 하나와 직접 통신하는 동안 상기 다수의 프로세서중 다른 하나로 부터의 요청을 처리할 수있는 상기 디스크 드라이브 시스템 사이에 통신을 제어하는 호스트 수단과, 상기 다수의 프로세서중 요청 호스트 프로세서로 부터 수신된 태스크를 상기 제1프로세서에 대한 하나 또는 그 이상의 명령으로 변환하여 상기 태스크를 수행하는 변환수단과, 상기 태스크에 대한 상기 하나 또는 그 이상의 명령을 상기 제1마이크로프로세서에 연결된 제3메모리 유니트로 전송하는 전송수단을 포함하는 것을 특징으로 하는 제어기.
  11. 제 10 항에 있어서, 상기 제1마이크로프로세서는, 상기 저장매체로 부터 복구된 데이타에서 에러를 검출하여 교정하는 에러 처리수단과, 상기 제2마이크로프로세서에 상기 에러와 에러의 위치를 보고 하는 보고수단을 포함하는 것을 특징으로 하는 제어기.
  12. 제 11 항에 있어서, 상기 제2마이크로프로세서는, 상기 제1마이크로프로세서와 상기 제2마이크로프로세서에 의해 검출된 에러에 대한 통계적 및 전력 에러 기록보존을 수행하는 에러 전력수단과, 상기 제1에러 프로세서에 의해 교정되지 않은 상기 제1마이크로프로세서에 의해 검출된 에러로 부터 복구하는 에러 교정수단과, 상기 제1마이크로프로세서의 상기 에러 처리수단에 의해 상기 저장매체로 부터 복구된 데이타에서 검출된 에러이외에 상기 디스크 드라이브 시스템에 대하여 내부 데이타 전송시의 에러를 검출하는 에러 검출수단을 포함하는 것을 특징으로 하는 제어기.
KR1019960706112A 1990-11-09 1991-10-29 다수의 마이크로프로세서를 사용하는 하드 디스크 드라이브 제어기 KR100245896B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US61114190A 1990-11-09 1990-11-09
US611,141 1990-11-09
PCT/US1991/008061 WO1992009036A1 (en) 1990-11-09 1991-10-29 Multiple microcontroller hard disk drive control architecture

Publications (2)

Publication Number Publication Date
KR970703012A KR970703012A (ko) 1997-06-10
KR100245896B1 true KR100245896B1 (ko) 2000-03-02

Family

ID=24447805

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1019960706114A KR100343878B1 (ko) 1990-11-09 1991-10-29 단일 디스크 드바이브내의 동일 자기디스크 매체를 서비스하는 2개의 액추에이터 사이의 태스크 할당 시스템
KR1019960706115A KR100242179B1 (ko) 1990-11-09 1991-10-29 디스크 드라이브 데이타경로 보전 제어구조
KR1019960706113A KR100242178B1 (ko) 1990-11-09 1991-10-29 융통적인 호스트 인터페이스 제어구조
KR1019960706112A KR100245896B1 (ko) 1990-11-09 1991-10-29 다수의 마이크로프로세서를 사용하는 하드 디스크 드라이브 제어기
KR1019930701389A KR100202262B1 (ko) 1990-11-09 1993-05-08 다중 마이크로콘트롤러 하드 디스크 드라이브 제어구조

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1019960706114A KR100343878B1 (ko) 1990-11-09 1991-10-29 단일 디스크 드바이브내의 동일 자기디스크 매체를 서비스하는 2개의 액추에이터 사이의 태스크 할당 시스템
KR1019960706115A KR100242179B1 (ko) 1990-11-09 1991-10-29 디스크 드라이브 데이타경로 보전 제어구조
KR1019960706113A KR100242178B1 (ko) 1990-11-09 1991-10-29 융통적인 호스트 인터페이스 제어구조

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1019930701389A KR100202262B1 (ko) 1990-11-09 1993-05-08 다중 마이크로콘트롤러 하드 디스크 드라이브 제어구조

Country Status (6)

Country Link
US (2) US5412666A (ko)
EP (2) EP0556324B1 (ko)
JP (1) JP3262330B2 (ko)
KR (5) KR100343878B1 (ko)
DE (2) DE69133216T2 (ko)
WO (1) WO1992009036A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100904648B1 (ko) * 2006-06-01 2009-06-25 브로드콤 코포레이션 다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러
US7587538B2 (en) 2006-06-01 2009-09-08 Broadcom Corporation Disk controller, channel interface and methods for use therewith
US8144413B2 (en) 2007-04-30 2012-03-27 Broadcom Corporation Reduced instruction set computer (RISC) processor based disk manager architecture for hard disk drive (HDD) controllers

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2855019B2 (ja) * 1992-02-10 1999-02-10 富士通株式会社 外部記憶装置のデータ保証方法及び外部記憶装置
US5424881A (en) 1993-02-01 1995-06-13 Cirrus Logic, Inc. Synchronous read channel
US5629949A (en) * 1993-09-21 1997-05-13 Cirrus Logic, Inc. Error correction verification method and apparatus using CRC check remainders
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus
US5640538A (en) * 1994-08-22 1997-06-17 Adaptec, Inc. Programmable timing mark sequencer for a disk drive
US5640583A (en) * 1994-08-22 1997-06-17 Adaptec, Inc. Programmable servo burst decoder
US5684972A (en) * 1994-08-22 1997-11-04 Adaptec, Inc. Programmable servo burst sequencer for a disk drive
US5680537A (en) * 1995-03-01 1997-10-21 Unisys Corporation Method and apparatus for isolating an error within a computer system that transfers data via an interface device
US5691994A (en) * 1995-05-08 1997-11-25 Western Digital Corporation Disk drive with fast error correction validation
US5812564A (en) * 1995-05-08 1998-09-22 Western Digital Corporation Disk drive with embedded finite field processor for error correction
US5649233A (en) * 1995-08-18 1997-07-15 United Microelectronics Corporation Apparatus for flexibly selecting primary and secondary connectors and master and slave cascaded disk drives of an IDE interface
KR0176637B1 (ko) * 1995-12-30 1999-04-15 김광호 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법
KR0159435B1 (ko) * 1995-12-30 1998-12-15 김광호 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법
US5801897A (en) * 1996-04-11 1998-09-01 Kabushiki Kaisha Toshiba Head positioning control system for use in a disk storage system
US5822330A (en) * 1996-04-19 1998-10-13 International Business Machines Corp. Method and system for dynamically adjusting signal skewing
EP0821308A1 (en) * 1996-07-23 1998-01-28 Hewlett-Packard Company Error indication for a storage system with removable media
US5889796A (en) * 1996-10-17 1999-03-30 Maxtor Corporation Method of insuring data integrity with a data randomizer
JP3290365B2 (ja) * 1996-11-19 2002-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーション エラー回復プロシージャを実行する方法
KR100253279B1 (ko) * 1997-03-12 2000-04-15 김영환 퍼스널컴퓨터의음악연주데이터페치회로
JPH10293975A (ja) * 1997-04-21 1998-11-04 Sony Corp 磁気ディスク装置
US6157984A (en) * 1997-05-15 2000-12-05 Seagate Technology, Llc Integrated controller/processor for disc drive having direct memory access
US6057990A (en) * 1997-05-27 2000-05-02 Gilovich; Paul A. Multiple actuator assemblies for data storage devices
US6076180A (en) * 1997-06-23 2000-06-13 Micron Electronics, Inc. Method for testing a controller with random constraints
US6061822A (en) * 1997-06-23 2000-05-09 Micron Electronics, Inc. System and method for providing a fast and efficient comparison of cyclic redundancy check (CRC/checks sum) values of two mirrored disks
US5832418A (en) * 1997-06-23 1998-11-03 Micron Electronics Apparatus for testing a controller with random contraints
US5953352A (en) 1997-06-23 1999-09-14 Micron Electronics, Inc. Method of checking data integrity for a raid 1 system
US6035425A (en) * 1997-09-29 2000-03-07 Lsi Logic Corporation Testing a peripheral bus for data transfer integrity by detecting corruption of transferred data
US20020021526A1 (en) * 1997-12-04 2002-02-21 Evert S. Cooper Method and apparatus for controlling a voice coil motor of a hard disk drive
US6052818A (en) * 1998-02-27 2000-04-18 International Business Machines Corporation Method and apparatus for ECC bus protection in a computer system with non-parity memory
JP2000155751A (ja) * 1998-11-18 2000-06-06 Mitsubishi Electric Corp システムlsi
US6230062B1 (en) 1999-01-08 2001-05-08 Voyan Technology Adaptation to unmeasured variables
US6948113B1 (en) 1999-04-21 2005-09-20 Seagate Technology Llc Self-throttling error-correction buffer and method for a disc drive
US6654195B1 (en) * 1999-04-27 2003-11-25 Western Digital Ventures, Inc. Disk drive having a register set for providing real time position variables to a host
US6446238B1 (en) * 1999-05-21 2002-09-03 International Business Machines Corporation System and method for updating microcode stored in a non-volatile memory
JP2001034427A (ja) * 1999-07-23 2001-02-09 Fujitsu Ltd デバイス制御装置及び制御方法
KR100621615B1 (ko) * 1999-08-30 2006-09-06 삼성전자주식회사 마스터 및 슬레이브 모드를 모두 지원하는 스왑 베이 디바이스와 이를 갖는 휴대용 컴퓨터
US6515672B1 (en) * 1999-12-23 2003-02-04 Intel Corporation Managing prefetching from a data buffer
JP3457602B2 (ja) * 1999-12-28 2003-10-20 株式会社東芝 ディスク装置
US6691198B1 (en) 2000-03-30 2004-02-10 Western Digital Ventures, Inc. Automatically transmitting scheduling data from a plurality of storage systems to a network switch for scheduling access to the plurality of storage systems
JP4620267B2 (ja) * 2001-02-16 2011-01-26 株式会社スカラベ・コーポレーション 情報処理システム
AU2001295954A1 (en) * 2000-10-19 2002-04-29 Scarabs Corporation Co., Ltd. Information processing system
US6751757B2 (en) * 2000-12-07 2004-06-15 3Ware Disk drive data protection using clusters containing error detection sectors
US6788488B2 (en) * 2001-01-22 2004-09-07 Qualcomm, Incorporated Variable mode multi-media data object storage device
US7143202B2 (en) * 2001-07-02 2006-11-28 Seagate Technology Llc Dual serial port data acquisition interface assembly for a data storage device
US6973535B2 (en) 2001-09-14 2005-12-06 Cornice, Inc. Digital device configuration and method
US7106541B2 (en) * 2001-09-14 2006-09-12 Convergent Systems Solutions, Llc Digital device configuration and method
US20030154355A1 (en) * 2002-01-24 2003-08-14 Xtec, Incorporated Methods and apparatus for providing a memory challenge and response
US7421459B2 (en) * 2002-03-06 2008-09-02 Hewlett-Packard Development Company, L.P. Buffer management for data transfers between a host device and a storage medium
JP4074110B2 (ja) * 2002-03-20 2008-04-09 Necエレクトロニクス株式会社 シングルチップ・マイクロコンピュータ
US7171525B1 (en) * 2002-07-31 2007-01-30 Silicon Image, Inc. Method and system for arbitrating priority bids sent over serial links to a multi-port storage device
US7174485B2 (en) * 2003-11-21 2007-02-06 Seagate Technology Llc Reverse error correction coding with run length limited constraint
DE10355583A1 (de) 2003-11-28 2005-07-07 Advanced Micro Devices, Inc., Sunnyvale Gemeinsame Nutzung eines Speichers in einer Zentralsteuerung
US20050204185A1 (en) * 2004-03-11 2005-09-15 Tait Philip J. Detecting and identifying data loss
US7315429B2 (en) * 2005-07-28 2008-01-01 International Business Machines Corporation Apparatus, method and program product for a multi-controller and multi-actuator storage device
US7430091B2 (en) * 2005-10-21 2008-09-30 Microsoft Corporation Method and apparatus for improving the performance of a disk drive
US7205912B1 (en) * 2005-10-31 2007-04-17 Seagate Technology Llc Structured set partitioning and multilevel coding for partial response channels
US20080005384A1 (en) * 2006-06-01 2008-01-03 Broadcom Corporation, A California Corporation Hard disk drive progressive channel interface
KR100849212B1 (ko) * 2006-10-12 2008-07-31 삼성전자주식회사 메모리 카드 및 메모리 카드의 구동 프로그램 업데이트방법
US7760463B2 (en) * 2006-12-19 2010-07-20 Teradata Us, Inc. Multiple disks in a single disk package
US8176386B1 (en) * 2007-04-10 2012-05-08 Marvell International Ltd. Systems and methods for processing streaming data
US20090034107A1 (en) * 2007-08-05 2009-02-05 Joshua Posamentier Redundant data on hard drive
DE102007063291A1 (de) * 2007-12-27 2009-07-02 Robert Bosch Gmbh Sicherheitssteuerung
US20090185311A1 (en) * 2008-01-18 2009-07-23 Broadcom Corporation Multiple access hard disk
JP2010027105A (ja) * 2008-07-15 2010-02-04 Hitachi Global Storage Technologies Netherlands Bv ディスク・ドライブ装置及びそのエラー回復処理の方法
US8223451B2 (en) * 2009-02-13 2012-07-17 International Business Machines Corporation Data storage apparatus and method
US8578242B1 (en) 2010-01-29 2013-11-05 Western Digital Technologies, Inc. Data storage device employing seed array for data path protection
RU2450328C1 (ru) * 2010-12-15 2012-05-10 Государственное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗГУ) Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором
US20120250177A1 (en) * 2011-04-01 2012-10-04 Lsi Corporation Increased data access rates for magnetic hard disk media
KR101932920B1 (ko) * 2012-09-14 2019-03-18 삼성전자 주식회사 비휘발성 메모리 카드를 제어하는 호스트, 이를 포함하는 시스템 및 이의 동작 방법
US20140337676A1 (en) * 2013-05-09 2014-11-13 Lsi Corporation Systems and Methods for Processing Data With Microcontroller Based Retry Features
US9823966B1 (en) 2013-11-11 2017-11-21 Rambus Inc. Memory component with error-detect-correct code interface
US9851901B2 (en) 2014-09-26 2017-12-26 Western Digital Technologies, Inc. Transfer of object memory references in a data storage device
US9607632B1 (en) * 2016-02-16 2017-03-28 Seagate Technology Llc Multiple virtual preamps in a single die
US9911442B1 (en) 2016-11-23 2018-03-06 Seagate Technology Llc Feedforward compensation for multi-actuator hard drives
US9792938B1 (en) * 2017-05-03 2017-10-17 Western Digial Technologies, Inc. Data storage device communicating servo information between servo channels of multiple actuators
US9934803B1 (en) * 2017-05-03 2018-04-03 Western Digital Technologies, Inc. Data storage device attenuating multiple actuator coupling disturbance
US10192576B1 (en) 2017-12-05 2019-01-29 Seagate Technology Llc Method and apparatus that modifies seeks to remediate inter-actuator coupling in a storage drive
US10446180B1 (en) 2018-03-21 2019-10-15 Seagate Technology Llc Multi-actuator interconnector
JP2020042876A (ja) * 2018-09-11 2020-03-19 株式会社東芝 磁気ディスク装置
JP7080843B2 (ja) * 2019-03-19 2022-06-06 株式会社東芝 磁気ディスク装置
US10706886B1 (en) * 2019-03-29 2020-07-07 Seagate Technology Llc Scheduling low-priority disk seeks for multi-actuator data storage device
US10803893B1 (en) 2019-06-03 2020-10-13 Seagate Technology Llc Data transfer scheduling for fairness and balance
US10741210B1 (en) * 2019-08-09 2020-08-11 Seagate Technology Llc Magnetic disk device having coupling observers for reducing coupling issues between independently running multi-actuators
US10861490B1 (en) * 2019-08-12 2020-12-08 Seagate Technology Llc Multi-controller data storage devices and methods
JP2021044039A (ja) * 2019-09-11 2021-03-18 株式会社東芝 磁気ディスク装置の製造方法および磁気ディスク装置
JP7179794B2 (ja) * 2020-03-03 2022-11-29 株式会社東芝 磁気ディスク装置、および磁気ディスク装置のメモリ管理方法
US11200112B1 (en) 2020-08-24 2021-12-14 International Business Machines Corporation Method and apparatus to reduce bandwidth overhead of CRC protection on a memory channel
JP2022051129A (ja) * 2020-09-18 2022-03-31 株式会社東芝 磁気ディスク装置および方法
US11861195B2 (en) * 2021-03-15 2024-01-02 Western Digital Technologies, Inc. TLC data programming with hybrid parity
TWI798672B (zh) * 2021-03-30 2023-04-11 幸福新科技股份有限公司 一種具有多個讀寫頭之驅動臂以同步存取資料的儲存裝置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3638182A (en) * 1970-01-02 1972-01-25 Bell Telephone Labor Inc Random and burst error-correcting arrangement with guard space error correction
US4166211A (en) * 1978-04-03 1979-08-28 Burroughs Corporation Error control system for named data
US4371932A (en) * 1979-07-30 1983-02-01 International Business Machines Corp. I/O Controller for transferring data between a host processor and multiple I/O units
US4371929A (en) * 1980-05-05 1983-02-01 Ibm Corporation Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory
US4420819A (en) * 1981-03-13 1983-12-13 Data Card Corporation System for processing and storing transaction data and for transmitting the transaction data to a remote host computer
JP2533076B2 (ja) * 1983-04-30 1996-09-11 ソニー株式会社 エラ−訂正のための符号化方法
US4773004A (en) * 1983-05-16 1988-09-20 Data General Corporation Disk drive apparatus with hierarchical control
US4987530A (en) * 1985-11-15 1991-01-22 Data General Corp. Input/output controller for a data processing system
US4783705A (en) * 1986-02-27 1988-11-08 Quantum Corporation High capacity disk file with embedded sector servo and SCSI interface
US5034914A (en) * 1986-05-15 1991-07-23 Aquidneck Systems International, Inc. Optical disk data storage method and apparatus with buffered interface
US4979056A (en) * 1987-06-02 1990-12-18 Conner Peripherals, Inc. Disk drive system controller architecture
US4965801A (en) * 1987-09-28 1990-10-23 Ncr Corporation Architectural arrangement for a SCSI disk controller integrated circuit
JPH0193933A (ja) * 1987-10-06 1989-04-12 Sony Corp エラー訂正符号化装置
US4949245A (en) * 1988-10-21 1990-08-14 Modular Computer Systems, Inc. Intermediate memory system for connecting microcomputers to a rotating disk memory
AU4641689A (en) * 1988-11-10 1990-05-28 Maxtor Corporation Control for a rotating media storage system
JPH02158824A (ja) * 1988-12-12 1990-06-19 Nippon I B M Kk ディスク装置の記憶制御装置
US5072420A (en) * 1989-03-16 1991-12-10 Western Digital Corporation FIFO control architecture and method for buffer memory access arbitration
US5214768A (en) * 1989-11-01 1993-05-25 E-Systems, Inc. Mass data storage library
US5155845A (en) * 1990-06-15 1992-10-13 Storage Technology Corporation Data storage system for providing redundant copies of data on different disk drives
US5261058A (en) * 1990-11-09 1993-11-09 Conner Peripherals, Inc. Multiple microcontroller hard disk drive control architecture
US5274773A (en) * 1990-11-09 1993-12-28 Conner Peripherals, Inc. Flexible host interface controller architecture
US5191584A (en) * 1991-02-20 1993-03-02 Micropolis Corporation Mass storage array with efficient parity calculation
US5341387A (en) * 1992-08-27 1994-08-23 Quantum Corporation Viterbi detector having adjustable detection thresholds for PRML class IV sampling data detection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100904648B1 (ko) * 2006-06-01 2009-06-25 브로드콤 코포레이션 다중의 분산된 프로세서들을 갖는 하드 디스크 컨트롤러
US7587538B2 (en) 2006-06-01 2009-09-08 Broadcom Corporation Disk controller, channel interface and methods for use therewith
US8144413B2 (en) 2007-04-30 2012-03-27 Broadcom Corporation Reduced instruction set computer (RISC) processor based disk manager architecture for hard disk drive (HDD) controllers

Also Published As

Publication number Publication date
KR970703031A (ko) 1997-06-10
EP0990980B1 (en) 2003-03-12
DE69132618T2 (de) 2001-09-13
EP0556324A1 (en) 1993-08-25
US5610808A (en) 1997-03-11
KR970703013A (ko) 1997-06-10
KR100242178B1 (ko) 2000-08-01
EP0556324B1 (en) 2001-05-30
KR970703012A (ko) 1997-06-10
JPH06502267A (ja) 1994-03-10
EP0990980A3 (en) 2000-05-24
EP0556324A4 (en) 1997-03-12
KR930702723A (ko) 1993-09-09
EP0990980A2 (en) 2000-04-05
KR100202262B1 (ko) 1999-06-15
KR100343878B1 (ko) 2006-03-28
DE69133216T2 (de) 2003-12-18
WO1992009036A1 (en) 1992-05-29
US5412666A (en) 1995-05-02
JP3262330B2 (ja) 2002-03-04
DE69132618D1 (de) 2001-07-05
KR100242179B1 (ko) 2000-08-01
KR970703014A (ko) 1997-06-10
DE69133216D1 (de) 2003-04-17

Similar Documents

Publication Publication Date Title
KR100245896B1 (ko) 다수의 마이크로프로세서를 사용하는 하드 디스크 드라이브 제어기
US5261058A (en) Multiple microcontroller hard disk drive control architecture
US5274773A (en) Flexible host interface controller architecture
EP0485110B1 (en) Logical partitioning of a redundant array storage system
JP3235815B2 (ja) データ記憶方法及びキューイング方法
US5442752A (en) Data storage method for DASD arrays using striping based on file length
US5603002A (en) Hard disk drive having buffer memory employing directory based cache controller with data replacement scheme
EP0601699A2 (en) Method of storing data in a disk array
US10614852B2 (en) Data-center drive with split-actuator that increases read/write performance via data striping
US20120151134A1 (en) Data Storage Management in a Memory Device
US5420983A (en) Method for merging memory blocks, fetching associated disk chunk, merging memory blocks with the disk chunk, and writing the merged data
EP0701208B1 (en) Disk array subsystem and data generation method therefor
US20020083288A1 (en) Addressing system for use in storage devices
JP2007184046A (ja) 回転円板形記憶装置および記録方法
JP2000285688A (ja) 不揮発性半導体記憶装置
JP3236166B2 (ja) キャッシュ制御方法および情報処理装置
JP3615250B2 (ja) ディスクアレイ装置
JPH11119915A (ja) ディスクアレイ装置
JPH076093A (ja) 記憶制御装置
JP2845770B2 (ja) ディスクアレイ装置
JPH0816327A (ja) ディスクアレイ装置
JPH04295946A (ja) ディスク制御装置
JPH04311217A (ja) 外部記憶制御装置
JPH09305330A (ja) ディスクアレイ装置
JPH0876940A (ja) ディスクアレイ制御方法

Legal Events

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

Payment date: 20030509

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee