KR0176637B1 - 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법 - Google Patents
디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법 Download PDFInfo
- Publication number
- KR0176637B1 KR0176637B1 KR1019950072287A KR19950072287A KR0176637B1 KR 0176637 B1 KR0176637 B1 KR 0176637B1 KR 1019950072287 A KR1019950072287 A KR 1019950072287A KR 19950072287 A KR19950072287 A KR 19950072287A KR 0176637 B1 KR0176637 B1 KR 0176637B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- feed
- address
- count
- branch
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B21/00—Head arrangements not specific to the method of recording or reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B20/1258—Formatting, e.g. arrangement of data block or words on the record carriers on discs where blocks are arranged within multiple radial zones, e.g. Zone Bit Recording or Constant Density Recording discs, MCAV discs, MCLV discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/48—Disposition 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/58—Disposition 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 for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following
- G11B5/596—Disposition 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 for the purpose of maintaining alignment of the head relative to the record carrier during transducing operation, e.g. to compensate for surface irregularities of the latter or for track following for track following on disks
- G11B5/59633—Servo formatting
- G11B5/59655—Sector, sample or burst servo format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Programmable Controllers (AREA)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야
하드 디스크 드라이브에서 디스크 콘트롤러에 구비되는 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법에 관한 것이다.
2. 발명이 해결하고자 하는 기술적 과제
프로그램을 저장하는 램의 크기를 줄여 마이크로 콘트롤러의 로드를 대폭적으로 줄인다.
3. 발명의 해결방법의 요지
브랜치 조건과 카운트 피일드 인에이블정보중 하나를 가지며 각종 데이타 레지스터를 선택하여 디스크로부터 리드된 데이타와 비교 또는 처리하기 위해 사용되는 브랜치/데이타선택 피일드와, 브랜치 조건에 따라 다음의 어드레스와 카운트값중 하나가 인코딩된 값을 가지는 인코딩된 다음 어드레스/카운트 피일드와, 외부에서 동기를 잡기 위한 시험을 위한 출력 피일드로 이루어진다.
4. 발명의 중요한 용도
프로그래머블 콘트롤 시퀀서에 이용한다.
Description
제1도는 일반적인 하드 디스크 드라이브의 블럭구성도.
제2도는 본 발명이 적용되는 통상적인 콘스턴스-덴시티 기록형태의 디스크상의 데이타 포맷도.
제3도는 제2도중 ID 피일드의 상세 포맷도.
제4도는 제2도중 데이타 피일드의 상세 포맷도.
제5도는 본 발명에 따른 시퀀서 맵의 할당 포맷도.
제6도는 본 발명에 따른 제5도의 시퀀서 맵 할당과 제2도의 데이타 포맷에 따른 프로그래머블 콘트롤 시퀀서의 블럭구성도.
제7도는 제5도의 시퀀서 맵 할당에 따른 포맷모드의 마이크로프로그램 예시도.
제8a도 및 제8b도는 제7도에 따른 포맷모드시 시퀀서의 처리흐름도.
제9도는 제5도의 시퀀서 맵 할당에 따른 리드모드의 마이크로프로그램 예시도.
제10a도 및 제10b도는 제9도에 따른 리드모드시 시퀀서의 처리흐름도.
제11도는 제5도의 시퀀서 맵 할당에 따른 라이트모드의 마이크로프로그램 예시도.
제12a도 및 제12b도는 제11도에 따른 라이트모드시 시퀀서의 처리흐름도.
본 발명은 자기 디스크 기록장치의 디스크 콘트롤러(disk controller)에 관한 것으로, 특히 디스크 콘트롤러에 구비되는 프로그래머블 콘트롤 시퀀서(programmable control sequencer)와 그의 맵(map) 할당방법에 관한 것이다.
일반적으로 하드 디스크 드라이브(Hard Disk Drive:이하 HDD라 함), 플로피 디스크 드라이브(Floppy Disk Drive:이하 FDD라 함)와 같은 자기 디스크 기록장치에 구비되는 디스크 콘트롤러는 프로그래머블 콘트롤 시퀀서를 구비하여 디스크상에 대한 포맷(format)을 하거나 데이타를 라이트 또는 리드하는 시퀀스(sequence)를 제어한다. 그리고 디스크 콘트롤러는 PC(Personal computer)와 같은 호스트(host)와 자기 디스크 기록장치의 주제어장치인 마이크로 콘트롤러와, 디스크 사이의 인터페이스를 제공하며, 리드/라이트에 따른 데이타의 에러 검출 및 정정을 수행한다.
상기한 바와 같은 디스크 콘트롤러에 있어서 시퀀서의 자동(automation) 수행 기능을 강화하여 데이타 전송을 위한 마이크로 콘트롤러의 로드(load)를 대폭 줄이고 마이크로 콘트롤러의 다른 기능, 예를 들어 서보(servo) 제어 등에 시간을 더 할당하도록 하고 있다. 이때 다양한 규격의 디스크에 적용할 수 있도록 프로그래머블 콘트롤이 가능한 프로그래머블 콘트롤 시퀀서를 사용한다. 프로그래머블 콘트롤 시퀀서는 프로그램 램(RAM:Random Access Memory)과 그 주변회로로 구성되며, 프로그램에 다운로딩(downloading)되는 마이크로프로그램(microprogram)에 따라 전원이 온 초기화 또는 리드, 라이트, 포맷(format) 동작중 해당하는 동작의 시퀀스 제어를 수행한다. 이에 따라 프로그램 램에는 전원이 온될 때 또는 리드/라이트/포맷 동작을 수행하기 전에 매번 마이크로 콘트롤러에 의해 마이크로프로그램이 다운로딩되어야 한다.
이와 같이 마이크로 콘트롤러는 전원 온 또는 리드, 라이트, 포맷시에 각각의 경우마다 해당하는 마이크로프로그램을 프로그램 램에 다운로딩해야 함에 따라 다운로딩에 소요되는 시간은 시스템의 성능에 큰 영향을 미친다. 만일 마이크로 콘트롤러의 1클럭주기를 T라 하면, 하나의 램 어드레스에 마이크로프로그램을 라이트할 때 3T만큼이 필요하게 된다. 이때 프로그램 램의 크기에 따른 전체 소요시간을 예를 들면 다음과 같다. 31×4바이트 크기의 프로그램 램을 사용하는 CIRRUS사의 디스크 콘트롤러인 CL-SH5600의 경우에는 전체 소요시간이 31×4×3T=372T가 되고, 48×4바이트 크기의 프로그램 램을 사용하는 ADAPTEC사의 디스크 콘트롤러인 AIC-8265의 경우에는 전체 소요시간이 48×4×3T=576T가 된다.
상기한 바와 같이 프로그램 램의 크기에 따라 매 동작마다 마이크로프로그램을 다운로딩하는데 필요한 마이크로 콘트롤러의 부하(load)에 상당한 차이가 있음을 알 수 있다. 즉, AIC-8265는 CL-SH5600에 비해 약 47% 정도의 시간이 더 필요하다.
이러한 프로그램 램의 크기는 시퀀서 맵에 따라 결정된다. 상기 시퀀서 맵은 프로그램 램의 저장영역에 대한 피일드(field) 할당 형태를 말한다. 즉, 프로그램 램의 각각의 어드레스에 대응하는 저장영역들에는 마이크로프로그램을 이루는 인스트럭션(isntruction)들이 하나씩 라이트되는데, 각 인스트럭션은 피일드를 구성하는 형태에 따라 달라진다.
그러므로 프로그래머블 콘트롤 시퀀서에 있어서 프로그램 램의 각 피일드를 할당하는 방법에 따라 프로그램 램의 크기를 결정짓게 된다. 결국 프로그램 램의 크기는 전체 시스템의 성능을 좌우하는 마이크로 콘트롤러의 오버헤드(overhead)를 결정짓게 된다.
이에 따라 시퀀서 맵을 효율적으로 할당하여 프로그램 램의 크기를 보다 줄일 수 있는 기술이 제안되어 왔었다. 이러한 기술로서 본원 출원인에 의해 대한민국 특허청에 1995년 월 일자로 특허 출원된 특허출원 제95- 호가 있다. 상기 특허출원 95- 호는 32×2바이트 크기의 프로그램 램을 사용할 수 있도록 시퀀서 맵을 할당하는 기술을 제시하고 있다. 이러한 경우에는 전체 소요시간이 32×2×3T=192T 대폭적으로 줄어들게 되었다.
그러나 상기 특허출원 제95- 호도 여전히 192T나 되는 적지 않은 시간을 소요하게 됨에 따라 보다 더 줄일 수 있는 기술이 요구되었었다.
따라서 본 발명의 목적은 프로그램을 저장하는 램의 크기를 대폭적으로 줄일 수 있는 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법을 제공함에 있다.
본 발명의 다른 목적은 마이크로 콘트롤러의 로드를 대폭적으로 줄일 수 있는 프로그래머블 시퀀서와 그의 맵 할당방법을 제공함에 있다.
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명 및 첨부도면에서 구체적인 처리 흐름, 비트 또는 바이트 수, 논리상태, 데이타 포맷, 마이크로프로그램 등과 같은 많은 특정 상세들이 본 발명의 보다 전반적인 이해를 제공하기 위해 나타나 있다. 이들 특정 상세들 없이 본 발명이 실시될 수 있다는 것은 이 기술분야에서 통상의 지식을 가진자에게 자명할 것이다. 그리고 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다. 또한 설명의 편의 상 프로그래머블 시퀀서를 시퀀서라 칭한다.
제1도는 통상적인 자기 디스크 기록장치의 하나인 HDD의 블럭구성도를 보인 것으로, 두장의 디스크와 그의 각 면에 하나씩 대응되게 설치되는 4개의 헤드를 구비한 예를 보인 것이다. 상기 제1도를 참조하여 본 발명을 이해하는데 유용한 통상적이 HDD에 대하여 살펴본다.
헤드(12)와 연결되는 전치증폭기(14)는 헤드(12)에 의해 픽업된 신호를 전치증폭하여 아나로그 리드신호를 리드/라이트 채널(channel)회로(16)에 인가하며, 라이트시에는 리드/라이트 채널회로(16)로부터 인가되는 인코딩된 라이트데이타에 따른 라이트전류를 헤드(12)에 인가함으로써 라이트데이타를 디스크(10)상에 라이트한다.
그리고 리드/라이트 채널회로(16)는 전치증폭기(14)로부터 인가되는 리드신호로부터 데이타 펄스를 검출하고 디코딩하여 DDC(Disk Data Controller)(18)에 인가하며, DDC(18)로부터 인가되는 라이트데이타를 인코딩하여 전치증폭기(14)에 인가한다.
상기 DDC(18)는 전술한 바와 같이 마이크로 콘트롤러(22)로부터 다운로딩되는 마이크로프로그램에 따른 동작을 수행하는 시퀀서를 구비하며 호스트로부터 수신되는 데이타를 리드/라이트 채널회로(16)와 전치증폭기(14)를 통해 디스크(10)상에 라이트하거나 디스크(10)상으로부터 데이타를 리드하여 호스트로 송신한다. 또한 DDC(18)는 호스트와 마이크로 콘트롤러(22)간의 통신을 인터페이스한다. 버퍼 램(20)은 호스트와, 마이크로 콘트롤러(22)와, 리드/라이트 채널회로(16) 사이에 전송되는 데이타를 일시 저장한다.
상기 마이크로 콘트롤러(22)는 호스트로부터 수신되는 포맷이나 리드 또는 라이트 명령에 응답하여 DDC(18)를 제어하며 트랙 탐색 및 트랙 추종을 제어한다. 롬(ROM:Read Only Memory)(24)는 마이크로 콘트롤러(22)의 수행 및 프로그램 및 각종 설정값들을 저장한다.
서보구동부(26)는 마이크로 콘트롤러(22)로부터 발생되는 헤드(12)의 위치 제어를 위한 신호에 의해 액츄에이터(28)를 구동하기 위한 구동전류를 발생하여 액츄에이터(28)에 인가한다. 액츄에이터(28)는 서보구동부(26)로부터 인가되는 구동전류의 방향 및 레벨에 대응하여 헤드(12)를 디스크(10)상에서 이동시킨다. 스핀들모터 구동부(30)는 마이크로 콘트롤러(22)로부터 발생되는 디스크(10)의 회전 제어를 위한 제어값에 따라 스핀들모터(32)를 구동하여 디스크(10)를 회전시킨다. 디스크신호 제어부(34)는 리드/라이트 채널회로(16)로부터 출력되는 리드데이타에서 서보정보를 디코딩하여 마이크로 콘트롤러(22)에 인가하며, 리드/라이트에 필요한 각종 제어신호들을 DDC(18)로부터 인가되는 신호와 마이크로 콘트롤러(22)의 제어에 의해 발생하여 전치증폭기(14), 리드/라이트 채널회로(16), DDC(18) 등에 인가한다. 이러한 디스크신호 제어부(34)는 통상 각각의 HDD에 적합하게 설계된 ASIC(Application Specific Integrated Circuit)이 사용된다.
상기한 바와 같은 HDD에 적용되는 디스크상의 데이타 포맷을 예를 들어 보이면 제2도와 같다. 상기 제2도는 통상적인 콘스턴스-덴시티 기록(Constant Density Recording:이하 CDR이라 함) 형태의 데이타 포맷을 보인 것으로, 디스크상에서 서보피일드간에 하나의 완전한 데이타섹터와 인접한 데이타 정보영역에 스플리트(split)되어 있는 데이타섹터를 가지는 구역에 있는 한 트랙의 섹터 포맷을 예를 들어 보인 것이며, 정확한 스케일(scale)은 아니다. 상기 CDR형태는 존-비트 기록(Zone-Bit Recording:ZBR이라 함) 형태라고도 알려져 있다.
일반적으로 CDR형태에 있어서 디스크상의 정보기록영역은 디스크상의 원심으로부터 방사방향으로 기록밀도가 일정하게 되는 다수의 구역(zone)들로 스플리트되어진다. 스플리트된 각 구역의 트랙들에 있어서 데이타섹터의 수는 서로 다르게 할당되는데, 즉, 외주 구역의 트랙들은 내주 구역의 트랙들에 비해 보다 많은 수의 데이타섹터를 가지게 된다. 데이타섹터는 자기 디스크 기록장치가 디스크상에 데이타를 액세스하기 위한 단위영역을 말하는 것으로 디스크상의 위치에 관계없이 동일한 크기, 예를 들어 512바이트의 크기를 가진다. 그리고 서보방식에 있어 엠베디드 섹터 서보(embeded sector servo) 방식을 채용할 경우 하나의 데이타섹터는 디스크상의 각 구역에 따라 2개의 세그먼트(segment)로 스플리트될 수도 있다. 엠베디드 섹터 서보방식은 자기 디스크 기록장치에 헤드의 위치정보를 제공하기 위한 방식중 하나로서, 엠베디드 섹터 서보방식에 있어서 각 트랙의 원주방향으로 교호적으로 제공되는 서보정보영역과 데이타정보영역으로 구분된다. 서보정보영역은 서보정보가 기록되는 서보 피일드이고, 데이타정보영역은 실제 데이타정보가 기록되는 영역으로 데이타섹터를 제공한다.
상기 제3도에서 데이타섹터들은 각각 ID 피일드(Identification field)와 데이타 피일드로 구분된다. ID 피일드는 해당 데이타섹터를 식별하기 위한 정보를 가지는 헤더(header) 정보가 기록되는 영역이고, ID 피일드는 뒤이어지는 데이타 피일드는 실제의 디지탈 정보가 기록되는 영역이다.
상기 ID 피일드는 제3도와 같이 이루어지며, VFO(Variable Frequency Oscillator)는 ID 프리앰블(preamble)로서 12바이트이며 ID 피일드를 리드할 때 클럭 동기를 위하여 사용되는 동기신호이다. 동기패턴은 ID 어드레스마크로서 1바이트이며 뒤이어지는 ID의 시작을 알리기 위해 해당 데이타정보영역에 존재하는 각 데이타섹터의 위치, 특성 등을 가진 ID 영역을 재차 확인하기 위해 특정 패턴, 예를 들어 A5H(16진수 값임)를 기록한 영역이다. ID중 헤드번호 HCYLH와 실린더번호 CYLL은 각각 1바이트로서 헤드의 위치정보와 트랙의 ID인 실린더번호를 가지는 영역이다. 섹터번호 SNO는 1바이트로서 ID 피일드의 바로 다음에 뒤이어지는 데이타섹터의 섹터번호이다. 헤드번호, 실린더번호, 섹터번호는 현재 헤드가 위치하고 있는 데이타섹터의 번호를 알려주는 ID 정보이다. 만일 자기 디스크 기록장치에 있어서 하나의 헤드와 한면의 디스크만을 사용할 경우에는 ID 정보중 헤드/실린더번호는 생략된다. FCDRH, CDRL은 각각 2바이트로서 해당 데이타정보영역내에 존재하는 데이타섹터 각각의 위치를 나타내는 위치정보와, 뒤이어지는 데이타섹터에 대한 스플리트 여부와, 데이타섹터에 대한 가용여부와, CDR을 위한 스플리트정보로서 해당 데이타정보영역 내에서 시작되는 데이타섹터에 대한 스플리트정보 등을 포함한다. 이러한 스플리트정보에 의해 스플리트되어 있는 데이타섹터에 대한 액세스를 하게 되는 것은 일반적인 사항이다. CRC(Cyclic Redunancy Code)는 2바이트로서 현재의 ID 피일드의 ID부터 CDRL까지의 검사합으로서 에러 검출 및 정정을 위한 에러검출코드이다. PAD는 포스트앰블(postamble)로서 2바이트이며 ID 피일드의 포스트앰블로서 다음에 오는 데이타 피일드를 위한 것이다.
상기 데이타 피일드는 제4도와 같이 연속적으로 연결되는 데이타 프리앰블인 VFO와, 데이타 어드레스마크인 동기패턴과, 실제 데이타와, ECC와, 데이타 포스트앰블인 PAD로 이루어진다. 데이타 프리앰블은 ID 포스트앰블과 데이타 동기 사이에 위치하며 데이타 피일드에 대한 리드시의 클럭동기를 제공하는 동시에 ID 피일드와 데이타 피일드간에 갭을 제공한다. 동기패턴은 데이타의 시작을 알려 자기 디스크 기록장치가 데이타를 리드할 때 필요한 동기를 제공한다. 데이타는 디스크상에 실제로 저장되는 디지탈 정보이다. ECC는 데이타 어드레스마크와 데이타에 대한 에러검출 및 정정을 위한 에러검출코드이다. 포스트앰블은 데이타를 리드한 후에 필요로 하는 타이밍 마진을 제공한다.
이제 상기한 바와 같은 제1도의 HDD와 제2도 내지 제4도의 포맷에 적용되는 본 발명에 따른 시퀀서 맵 할당 포맷을 보이면 제5도와 같다. 상기 제5도는 프로그램 램에 대한 하나의 어드레스에 대응하는 저장영역의 할당 상태를 보인 것으로, 나머지 어드레스에 대응하는 저장영역들도 동일하게 할당되어진다. 즉, 하나의 인스트럭션에 대하여 브랜치(branch)/데이타선택 피일드와, 인코딩된 다음 어드레스/카운트 피일드와, 출력 피일드 등으로 이루어지며, 총 7비트가 된다.
첫번째로 상기 제5도의 7비트중 상위 3비트 D6∼D4로 할당되는 브랜치/데이타선택 피일드는 브랜치조건이나 카운트 피일드 인에이블용으로 사용되며, 각종 데이타 레지스터를 선택하여 디스크상의 NRZ 데이타와 비교하거나 처리하기 위한 데이타선택용으로 동시에 사용된다. 브랜치/데이타선택 피일드의 3비트 D6∼D4로 이루어지는 코드에 따른 기능을 설명하면 다음과 같다.
브랜치/데이타선택 피일드의 코드가 0일 경우는 항상 브랜치된다. 즉, 다음 어드레스로 점프한다. 이때 프로그램 카운터 PC는 다음 어드레스를 나타낸다.
브랜치/데이타선택 피일드의 코드가 1일 경우에는 ID에러/CRC에러/ECC에러/스킵/결함일 경우 브랜치된다. 이때 ID에러 또는 CRC에러 또는 ECC에러 또는 스킵이면 프로그램 카운터 PC는 다음 어드레스를 나타내고, 디스크 결함이면 자동중지하며, 그렇지 않으면 프로그램 카운터 PC는 1증가한다.
브랜치/데이타선택 피일드의 코드가 10일 경우는 데이타 카운트 인에이블을 나타낸다. 만일 데이타의 종료이면 데이타선택은 CRCECCEN이고, ECC의 종료이면 프로그램 카운터 PC는 1증가하며, 그렇지 않으면 데이타선택은 BUFDEN이 된다.
브랜치/데이타선택 피일드의 코드가 11일 경우는 ID카운트 인에이블이다. ID 카운트값이 00h이면 데이타선택은 HCYLH이 되고, ID 카운트값이 01h이면 데이타선택은 CYLL이 되며, ID 카운트값이 02h이면 데이타선택은 TSNO이 되며, ID 카운트값이 03h이면 데이타선택은 FCDRH이며, ID 카운트값이 04h이면 데이타선택은 CDRL이 되며, ID 카운트값이 05h 또는 06h이면 데이타선택은 CRCECCEN이 되며, ID 카운트값이 캐리 아웃이면 프로그램 카운터 PC는 1증가한다.
브랜치/데이타선택 피일드의 코드가 100일 경우는 카운트 인에이블로서, 카운트 캐리아웃이면 프로그램 카운터 PC는 1증가한다.
브랜치/데이타선택 피일드의 코드가 101일 경우는 카운트 인에이블을 대기한다. 이때 카운트 클럭을 32분주하여 클럭으로 사용하며, 대시 카운트 캐리아웃이면 프로그램 카운터 PC는 1증가한다.
브랜치/데이타선택 피일드의 코드가 110일 경우는 동기검출을 대기하거나 동기패턴을 라이트한다. 이때 라이트모드에서는 프로그램 카운터 PC는 1증가하며, 데이타선택은 SYNCEN이 된다. 리드모드에서는 동기 타임 아웃이면 프로그램 카운터는 PC는 다음 어드레스를 나타내고, 동기검출이 되면 프로그램 카운터 PC는 1증가하며 데이타선택은 SYNCEN이 된다.
브랜치/데이타선택 피일드의 코드가 111일 경우는 인덱스펄스/섹터펄스/서보종료신호(End Of Servo:이하 EOS라 함)를 대기한다. 이때 인덱스모드에서는 2회전 타임아웃이면 프로그램 카운터 PC는 다음 어드레스를 나타내며, 인덱스펄스가 검출되면 프로그램 카운터 PC는 1증가한다. 섹터모드에서는 2회전 타임아웃되면 프로그램 카운터 PC는 다음 어드레스를 나타내고, 섹터펄스가 검출되면 프로그램 카운터 PC는 1증가한다. CDR 모드에서는 2회전 타임아웃되면 프로그램 카운터 PC는 다음 어드레스를 나타내며, EOS가 검출되면 프로그램 카운터 PC는 1증가한다.
두번째로 상기 제5도의 7비트중 3비트 D3∼D1로 할당되는 인코딩된 다음 어드레스/카운트 피일드는 브랜치 조건에 따라 다음 어드레스나 카운트 값으로 사용된다. 즉, 브랜치조건 0, 1, 110, 111은 다음 어드레스 피일드로 사용된다. 또한 다음 어드레스나 카운트값은 내부 레지스터에 저장되며 인코딩된 다음 어드레스/카운트값에 의해 선택된다.
세번째로 상기 제5도의 7비트중 하위 1비트 D0으로 할당되는 출력 피일드는 외부에서 동기를 잡기 위한 시험 목적으로 사용되며 출력 핀을 통해 외부에서 볼 수 있다.
한편 STINC는 브랜치조건과 인코딩된 다음 어드레스/카운트가 0이고 출력이 1인 시점에서 목표섹터번호(Target Sector Number:이하 TSNO라 함)를 증가하고 디스크 섹터 전송 카운트(Disk sector Transfer Count:이하 DSTC라 함)를 감소하여 갱신 기능으로서, 마이크로 콘트롤러(22)의 관여없이 다중 섹터 리드/라이트를 하기 위해 필요한 기능이다. 또한 리드게이트 RG와 라이트게이트 WG의 제어를 살펴보면, 브랜치조건중 1, 101, 111은 리세트 RG/WG 동작을 한다. 마이크로프로그램상에서 브랜치조건 11을 경계로 1섹터를 ID 부분과 데이타 부분으로 구분지을 때 포맷/리드/라이트 동작을 수행하기 위한 RG/WG의 제어는 다음과 같다. 시퀀스를 제어하는 포맷플래그가 셋트되어 있으면 WG가 온되며, 포맷플래그가 리셋트이고 RBW플래그가 0이 되면 RG가 온되며, 포맷플래그가 리셋트이고 RBW플래그가 1이면 WG가 온된다.
이제 상기한 바와 같은 제5도의 시퀀서 맵 할당에 따라 상기한 제2도의 데이타 포맷에 적용할 경우 본 발명에 따른 프로그래머블 콘트롤 시퀀서의 블럭구성도를 보이면 제6도와 같다. 상기한 제5도의 시퀀서 맵 할당에 따라 DDC(18)에 구비되는 시퀀서의 프로그램 램(36)은 16×7비트의 크기를 가진다. 어드레스 발생부(38)에서는 프로그램 카운터 PC에 따른 램 어드레스를 상황에 따라서 발생시킨다. 즉, DCRINT, DCRRTN, LD, INC 상황에 따른 어드레스를 발생시키며 동작을 계속하게 된다. 이때 DSTC가 0이거나 자동중지가 발생하거나 다음 어드레스가 F일 때 LD 신호가 발생하면 시퀀서는 동작을 멈추게 된다. 이러한 중지조건 중 CDR 서브루틴에서는 램 어드레스가 E에서 F로 증가한 경우는 정상적으로 동작하고, 그외의 어드레스에서 F로 LD(점프)되는 경우는 중지조건을 사용한다. 디코딩부(40)는 마이크로 콘트롤러(22)의 데이타 MPUD와 다음 어드레스/카운트 N_ADD/CNT 값을 디코딩하여 다음 어드레스 N_ADD를 발생한다. CDR카운트부(42)는 브랜치조건 10에 의해 동작을 시작하고 CDR 값과 CNT 결과가 같으면 CDRINT 신호를 발생시키며 CDRRTN이 발생할때까지 동작을 정지한다. 또한 스플리트2 플래그가 셋트되어 있으면 첫번째 CDRRTN이 발생한 후, 미리 설정된 값이 경과한 후 두 번째로 CDRINT 신호를 발생시킨다. 타이머(44)에서는 브랜치조건에 의해 동작을 시작하며 최대 동작시간을 제한한다. 브랜치/데이타선택 디코딩부(46)에서는 브랜치조건, 해당하는 신호와 타이머(44)의 상태를 참조하여 다음 어드레스의 기준인 LD, INC 신호를 발생한다. 또한 데이타 레지스터를 선택하기 위한 데이타선택신호를 발생하여 디스크로부터 리드한 데이타와 데이타 레지스터의 값을 선택하기 위한 데이타선택신호를 발생하여 디스크로부터 리드한 데이타와 데이타 레지스터의 값을 선택하여 비교하거나 리드데이타중 HCYLH, CYLL, TSNO, FCDRH 정보를 스택(48)에서 저장하기 위한 PUSHEN 신호를 만든다. 그리고 디스크 동작을 제어하는 리드, 라이트신호나 섹터를 갱신하기 위한 신호를 만든다. 이 신호에 따라 섹터 갱신부(50)에서는 제1도의 마이크로 콘트롤러(22)와 관계없이 갱신동작을 수행한다.
이제 본 발명에 따른 상기 제5도의 시퀀서 맵 할당에 따라 구성한 마이크로프로그램을 실예를 들고 그에 따른 제1도의 HDD와 제6도의 시퀀서 동작을 시퀀서 맵의 구성과 그에 대응하는 흐름도를 참조하여 상세히 설명한다. 이에 대해 HDD에 있어서 시퀀서의 통상적인 동작모드들인 포맷모드, 리드모드, 라이트모드별로 구분하여 설명한다.
[포맷모드]
먼저 포맷모드에 대하여 설명한다. 이때 상기한 제5도의 시퀀서 맵 할당에 따른 포맷모드의 시퀀서 맵 구성도를 보이면 제7도와 같다. 제7도에서 어드레스는 램(36)에 대한 어드레스, 즉 램 어드레스이고, BRANCH/D_SEL은 제5도의 브랜치/데이타선택 피일드이고, E_N_ADD/CNT는 제5도의 인코딩 다음 어드레스/카운트 피일드이며, OT는 제5도의 출력 피일드이다.
그리고 상기 제7도에 따른 포맷모드시 시퀀서의 처리흐름도를 제8a도 및 제8b도로서 도시하였다. 상기 제8a도와 제8b도는 편의상 페이지를 나누어 도시하였으나 서로 연결되며, 흐름도에 따른 동작은 제6도의 시퀀서에 의해 수행된다.
우선 제8a도의 (100)단계에서 초기설정값들을 다음과 같이 설정함으로써 초기화된다. 타이머(44)에 인덱스를 검색할 최대시간을 설정하고, 디스크 동작을 시작할 TSNO를 라이트하며, 디스크 동작 횟수를 의미하는 DSTC를 라이트한다. 또한 마이크로 콘트롤러(22)는 디스크 동작전에 제7도에 보인 바와 같은 마이크로프로그램를 라이트한다. 즉, 어드레스 발생부(38)에서는 어드레스 MPUA와 데이타 MPUD를 입력받아 램(36)에 라이트한다. 마이크로 콘트롤러(22)에서 램의 시작 어드레스를 라이트하면 어드레스 발생부(38)에서는 어드레스를 발생하며 시퀀서 동작을 시작하게 된다.
상기와 같은 상태에서 제7도의 어드레스 00h단계에 해당하는 (102)∼(104)단계에서 타이머(44)를 인에이블시키고 인덱스펄스를 대기한다. 이때 만일 인덱스펄스가 입력되면 INC 신호에 의해 다음의 어드레스인 01h단계로 진행하고 입력되지 않으면 현상태인 어드레스 00h단계를 유지한다. 이때 타임아웃이 될 때까지 인덱스펄스가 입력되지 않으면, 즉 1이 출력되며 다음 어드레스 0Fh와 LD 신호의 조합에 의해 자동중지신호가 발생하며 어드레스 발생부(38)에서는 어드레스 발생을 중단하며 시퀀서는 동작을 멈추게 된다.
상기 어드레스 01h단계에 해당하는 (106)단계에서는 브랜치/데이타선택 디코딩부(46)에서 타이머(44)로 타이머 인에이블신호 TIMEREN를 출력한다. 이때 타이머(44)내의 카운터는 다음 어드레스/카운트 피일드의 값이 될 때까지 계속 00h를 출력하게 된다. 즉, 제7도의 마이크로프로그램에서는 00h값을 12번, 즉 12바이트를 디스크(10)상의 제3도와 같은 ID 피일드의 VFO 피일드에 라이트한 후 INC에 의해 어드레스 02h단계로 진행한다. 어드레스 02h단계에 해당하는 (108)단계에서는 디스크(10)상에 제3도와 같이 1바이트의 동기패턴을 라이트하며 ID부분의 CRC 검사를 위한 구간설정을 위하여 CRC인터럽트신호 CRCINI를 발생한다.
이후 어드레스 03h단계에 해당하는 (110)∼(120)단계에서는 HCYLH, CYLL, TSNO, FCDRH, CDRL, CRC 2바이트를 디스크(10)상에 제3도와 같이 순차적으로 라이트한다. 그리고 어드레스 04h단계에 해당하는 (122)단계에서는 00h값을 2회, 즉 2바이트를 PAD로서 디스크(10)상에 제3도와 같이 라이트한다. 그리고 어드레스 05h단계에 해당하는 (124)단계에서는 00h값을 2회, 즉 2바이트를 디스크(10)상에 라이트함으로써 ID 피일드와 데이타 피일드간의 스프라이스(splice)를 수행한다.
다음에 어드레스 06h단계에 해당하는 (126)단계에서는 00h값을 12회, 즉 12바이트를 디스크(10)의 제4도와 같은 데이타 피일드의 VFO 피일드에 라이트한다. 그리고 어드레스 07h단계에 해당하는 (128)단계에서는 동기패턴을 디스크(10)상에 제4도와 같이 라이트한다.
그리고 어드레스 08h단계에 해당하는 (130)∼(136)단계에서는 CDR 카운트부(42)는 다음 단계에서부터 데이타구간임을 의미하는 DATAEN 신호를 발생한다. 그리고 데이타구간중에 스플리트가 발생하지 않으면 CDR 카운트부(42)의 카운트값이 512가 될 때까지 데이타를 디스크(10)상에 제4도와 같이 라이트한 후 어드레스 09h단계로 진행한다. 만일 데이타구간중에 스플리트가 발생하면 CDR 카운트부(42)는 현재의 카운트값을 유지하며, CDRINT 신호를 발생하고 다음 단계는 다음 어드레스를 선택한다. 즉, 제7도의 마이크로프로그램에서는 어드레스 0Ch단계로 진행한다. 이때 CDR 카운트부(42)는 데이타의 바이트수를 카운트하여 CDR값과 비교하여 같으면 CDRINT를 발생한다. 어드레스 발생부(38)는 CDRINT가 발생하면 현재의 단계를 저장하고 다음 단계의 다음 어드레스 N_ADD를 발생한다. 그리고 CDR 카운트부(42)는 CDRINT 처리구간동안에는 현재의 카운트값을 유지하고 CDRINT 처리가 끝난 후 다시 데이타의 갯수를 카운트하기 시작하여 총 512바이트의 데이타를 처리한 후 다음 단계로 진행한다. 여기서 포맷모드시 서보 스키핑(skipping)이 이루어지는 CDR과정을 살펴보면, CDR 인터럽트가 발생되고 현재의 WCS_ADD와 카운트값을 저장하며 제7도의 어드레스 0Ch단계인 VECT1로 점프하며 메인루틴으로 리턴하며 현재 WCS_ADD와 카운트값을 재저장한다. 그리고 (136)단계에서는 ECC 데이타를 11바이트 디스크(10)상에 라이트한다.
다음에 어드레스 09h단계에 해당하는 (138)단계에서는 00h값을 2회, 즉 2바이트를 PAD로서 디스크(10)상에 제4도와 같이 라이트한다.
그리고 어드레스 0Ah단계에 해당하는 (140)단계에서는 현재 DSTC값을 비교하여 0이면 원하는 섹터만큼의 디스크 포맷 동작완료를 의미하므로 시퀀서는 어드레스 발생부(38)에서 어드레스 발생을 중단하고 수행을 멈춘다. 이와 달리 현재 DSTC값이 0이 아니라면 섹터갱신부(50)에서 TSNO 증가, DSTC 감소를 수행하고 상기한 어드레스 00h단계에 진행한다. 그리고 어드레스 0Bh단계에서는 어드레스 발생부(38)에서 어드레스 발생을 중단하고 시퀀서는 동작을 멈춘다.
그리고 어드레스 0Ch단계에 해당하는 (142)단계에서는 데이타구간에서 스플리트가 발생한 경우이므로, 00h값을 2바이트 PAD로서 라이트한 다음 어드레스 0Dh단계로 진행한다. 상기 어드레스 0Dh단계에 해당하는 (144)∼(146)단계에서는 타이머(44)를 인에이블시키고 EOS가 검출될 때까지 현 상태를 유지한다. 이때 EOS가 검출되면 어드레스 0Eh단계로 진행하고 타임아웃이면 자동중지에 의해 동작을 멈춘다.
상기 어드레스 0Eh단계에 해당하는 (148)단계에서는 00h값을 12바이트 디스크(10)상에 제4도와 같이 라이트한다. 그리고 어드레스 0Fh단계에 해당하는 (150)단계에서는 동기패턴을 라이트하고 브랜치조건이 아닌 우선순위를 갖는 CDRRTN에 의해서 어드레스 발생부(38)에서 CDRINT가 발생했던 원래 위치인 상기한 어드레스 08h단계로 진행한다.
따라서 상기한 바와 같은 동작에 의해 디스크(10)상의 포맷이 이루어진다.
이때 스택(48)은 데이타선택 피일드의 최상위 비트가 1일 때, 즉 상기한 어드레스 03h단계의 경우에 PUSHEN 신호에 의해 HCYLH, CYLL, TSNO, FCDRH 정보를 저장하게 된다.
[리드모드]
다음에 상기한 제5도의 시퀀서 맵 할당에 따른 리드모드의 마이크로프로그램 예시도를 보이면 제9도와 같다. 제9도에서 어드레스는 램(36)에 대한 어드레스, 즉 램 어드레스이고, BRANCH/D_SEL은 제5도의 브랜치/데이타선택 피일드이고, E_N_ADD/CNT는 제5도의 인코딩 다음 어드레스/카운트 피일드이며, OT는 제5도의 출력 피일드이다.
그리고 상기 제9도에 따른 리드모드시 시퀀서의 처리흐름도를 제10a도 및 제10b도로서 도시하였다. 상기 제10a도와 제10b도는 편의상 페이지를 나누어 도시하였으나 서로 연결되며, 흐름도에 따른 동작은 제6도의 시퀀서에 의해 수행된다.
우선 제10a도의 (200)단계에서 초기설정값들을 다음과 같이 설정함으로써 초기화한다. 타이머(44)에 인덱스를 검색할 최대시간을 설정하고, 디스크 동작을 시작할 TSNO, HCYLH, CYLL을 라이트한다. 그리고 디스크 동작 횟수를 의미하는 DSTC를 라이트하고, 동기패턴이 리드될때까지의 최대 시간을 라이트한다. 또한 마이크로 콘트롤러(22)에서 디스크 동작전에 프로그램을 라이트한다. 즉, 어드레스 발생부(38)에서는 어드레스 MPUA와 데이타 MPUD를 입력받아 램(36)에 라이트한다. 마이크로 콘트롤러(22)에서 램의 시작 어드레스를 라이트하면 어드레스 발생부(38)에서는 어드레스를 발생하며 시퀀서 동작을 시작하게 된다.
상기와 같은 상태에서 제9도의 어드레스 00h단계에 해당하는 (202)∼(204)단계에서 타이머(46)를 인에이블시키고 인덱스펄스를 대기한다. 이때 만일 섹터펄스가 입력되면 INC 신호에 의해 어드레스 01h단계로, 섹터필터가 입력되지 않으면 현 상태인 어드레스 00h단계를 유지한다. 이때 타임아웃이 될 때까지 섹터펄스가 입력되지 않으면, 즉 1이 출력되며 다음 어드레스 0Fh와 LD 신호의 조합에 의해 자동중지신호가 발생하며 어드레스 발생부(38)에서 어드레스 발생을 중단하며 시퀀서는 동작을 멈추게 된다.
상기 어드레스 01h단계에 해당하는 (206)단계에서는 브랜치/데이타선택 디코딩부(46)에서 타이머(44)로 타이머 인에이블신호 TIMEREN를 출력한다. 이때 타이머(44) 내부의 카운터는 다음 어드레스/카운트 피일드의 값이 될 때까지 계속 00h를 리드하게 된다. 즉, 제9도의 마이크로프로그램에서는 00h값을 7번, 즉 7바이트를 디스크(10)상의 제3도와 같은 ID 피일드의 VFO 피일드로부터 리드한 후 INC에 의해 어드레스 02h단계로 진행한다. 어드레스 02h단계에 해당하는 (208)∼(210)단계에서는 타이머(46)내의 동기 카운터를 인에이블시키고 동기패턴이 검출될때까지 대기한다. 이때 타임아웃이 발생하면 상기한 어드레스 00h단계로 진행하고 동기패턴이 검출되면 어드레스 03h단계로 진행한다. 또한 ID부분의 CRC 검사를 위한 구간설정을 위하여 CRC인터럽트신호 CRCINI를 발생한다.
이후 어드레스 03h단계에 해당하는 (212)∼(222)단계에서는 제3도와 같은 HCYLH, CYLL, TSNO, FCDRH, CDRL, CRC를 디스크(10)상으로부터 순차적으로 리드한다. 그리고 어드레스 04h단계에 해당하는 (224)∼(228)단계에서는 디스크(10)상으로부터 리드한 CRC 에러 유무와 ID에러 유무와 스킵 플래그 셋트 유무를 확인한다. 그리고 CRC와 ID의 에러가 없으면 디스크 동작을 원하는 목표를 찾았음을 의미하므로 스킵플래그 셋트 여부를 확인하고, 에러가 있으면 다음 섹터와 비교하기 위하여 상기한 00h단계로 진행한다. 또한 FCDRH의 상위 비트들인 결함플래그가 셋트되어 있으면 자동중지를 발생시키고, 스킵플래그가 셋트되어 있으면 상기한 어드레스 00h단계로 진행하고, 그렇지 않으면 어드레스 05h단계로 진행한다. 상기 어드레스 05h단계에 해당하는 (230)단계에서는 1바이트 무동작을 수행함으로써 스프라이스를 수행한다. 그리고 어드레스 06h단계에 해당하는 (232)단계에서는 브랜치/데이타선택 디코딩부(46)애서 타이머(44)로 타이머 인에이블신호 TIMEREN를 보낸다. 그러면 타이머(44)의 카운터는 다음 어드레스/카운트 피일드의 값이 될 때까지 계속 제4도와 같은 VFO 피일드, 즉 00h를 리드하게 된다. 즉, 제9도의 마이크로프로그램에서는 00h값을 7번, 즉 7바이트 리드한 후 INC에 의해 어드레스 07h단계로 진행한다. 상기 어드레스 07h단계에 해당하는 (234)∼(236)단계에서는 타이머(44)의 동기 카운터를 인에이블시키고 동기패턴이 리드될때까지 대기한다. 이때 타임아웃이 발생하면 동작을 중단하고, 동기패턴이 검출되면 어드레스 08h단계로 진행한다. 또한 데이타부분의 ECC를 위한 구간 설정을 위하여 ECCINI 신호를 발생한다. 이때 CDR 카운트부(42)는 다음 단계에서 데이타 구간임을 의미하는 DATAEN 신호를 발생한다.
상기 어드레스 08h단계에 해당하는 (238)∼(244)단계에서는 데이타 구간중에 스플리트가 발생하지 않으면 CDR 카운트부(42)의 CDR 카운트값이 512가 될 때까지 제4도와 같은 데이타를 디스크(10)상으로부터 리드한다. 데이타구간중에 스플리트가 발생하면 CDR 카운트부(42)는 현재 카운트값을 유지하며, CDRINT 신호를 발생한다. 이때 CDR 카운트부(42)는 데이타의 바이트수를 카운트하여 CDR값과 비교하여 같으면 CDRINT를 발생한다. 어드레스 발생부(38)는 CDRINT가 발생하면 현재의 단계를 저장하고 다음 어드레스 N_ADD를 발생한다. 이때 CDR 카운트부(42)는 CDRINT 처리구간동안에는 현재의 카운트값을 유지하고 CDRINT 처리가 끝난 후 다시 데이타의 갯수를 카운트하기 시작하여 총 512바이트의 데이타를 처리한 후 다음 단계로 진행한다. 이후 제4도와 같은 ECC 데이타 12바이트를 디스크(10)상으로부터 리드한다. 여기서 리드모드시 CDR 과정을 살펴보면, CDR 인터럽트가 발생되고 현재의 WCS_ADD와 카운트값을 저장하며 제9도의 어드레스 0Ch단계인 VECT1로 점프하며 메인루틴으로 리턴하며 현재 WCS_ADD와 카운트값을 재저장한다. 그리고 어드레스 09h단계에 해당하는 (246)단계에서는 디스크(10)상으로부터 리드한 ECC와 내부에서 생성한 ECC간의 차이가 있으면 시퀀서 동작을 멈추고 에러정정을 수행한다. 이와 달리 데이타에 에러가 없으면 다음 단계인 어드레스 0Ah단계로 진행한다.
그리고 어드레스 0Ah단계에 해당하는 (248)단계에서는 현재 DSTC값을 비교하여 0이면 원하는 섹터만큼의 디스크 리드 동작완료를 의미하므로 시퀀서는 어드레스 발생부(38)에서 어드레스 발생을 중단하고 수행을 멈춘다. 이와 달리 현재 DSTC값이 0이 아니라면 섹터갱신부(50)에서 TSNO 증가, DSTC 감소를 수행하고 또 다른 섹터를 처리하기 위하여 상기한 어드레스 00h단계로 진행한다.
그리고 어드레스 0Ch단계에 해당하는 (250)단계에서는 타이머(44)를 인에이블시키고 EOS가 검출될때까지 현 상태를 유지한다. 이때 EOS가 검출되면 어드레스 0Dh단계로 진행하고 타임아웃이면 자동중지에 의해 동작을 중지한다. 상기 어드레스 0Dh단계에 해당하는 (254)단계에서는 VFO 피일드의 00h값을 디스크(10)상으로부터 7바이트 리드한다. 이후 어드레스 0Eh단계에 해당하는 (256)∼(258)단계에서는 타이머(44)의 동기 카운터를 인에이블시키고 동기패턴이 리드될때까지 대기한다. 이때 타임아웃이 발생하면 동작을 중단하고, 동기패턴이 검출되면 브랜치조건보다 우선순위를 갖는 CDRRTN에 의해 어드레스 발생부(38)에서 CDRINT가 발생했던 원래 위치인 상기한 08h단계로 진행한다.
따라서 상기한 바와 같은 동작에 의해 디스크(10)상으로부터 데이타 리드가 이루어지게 된다.
이때 스택(48)은 데이타선택 피일드의 최상위 비트가 1일 때, 즉 상기한 어드레스 03h단계의 경우에 PUSHEN 신호에 의해 HCYLH, CYLL, TSNO, FCDRH 정보를 저장하게 된다.
[라이트모드]
다음에 상기한 제5도의 시퀀서 맵 할당에 따른 라이트모드의 마이크로프로그램 예시도를 보이면 제11도와 같다. 제11도에서 어드레스는 램(36)에 대한 어드레스, 즉 램 어드레스이고, BRANCH/D_SEL은 제5도의 브랜치/데이타선택 피일드이고, E_N_ADD/CNT는 제5도의 인코딩 다음 어드레스/카운트 피일드이며, OT는 제5도의 출력 피일드이다.
그리고 상기 제11도에 따른 라이트모드시 시퀀서의 처리흐름도를 제12a도 및 제12b도로서 도시하였다. 상기 제12a도와 제12b도는 편의상 페이지를 나누어 도시하였으나 서로 연결되며, 흐름도에 따른 동작은 제6도의 시퀀서에 의해 수행된다.
우선 제12a도의 (300)단계에서 초기화와 제11도의 어드레스 00h∼05h단계에 해당하는 (302)∼(330)단계는 전술한 리드모드시의 (200)∼(230)단계와 동일하다.
그리고 어드레스 06h단계에 해당하는 (332)단계에서는 브랜치/데이타선택 디코딩부(46)에서 타이머(44)로 타이머 인에이블신호 TIMEREN를 출력한다. 이때 타이머(46) 내부의 카운터는 다음 어드레스/카운트 피일드의 값이 될 때까지 계속 00h를 리드하게 된다. 즉, 제9도의 마이크로프로그램에서는 00h값을 12번, 즉 2바이트를 디스크(10)상의 제3도와 같은 ID 피일드의 VFO 피일드에 라이트한 후 INC에 의해 어드레스 07h단계로 진행한다. 상기 어드레스 07h단계에 해당하는 (334)단계에서는 동기패턴(10)상에 라이트한다. 또한 데이타 부분의 ECC를 위한 구간설정을 위하여 ECCINI 신호를 발생한다. 이때 CDR 카운트부(42)는 다음 단계에서부터 데이타구간임을 의미하는 DATAEN 신호를 발생한다.
다음에 어드레스 08h단계에 해당하는 (336)∼(342)단계에서는 데이타 구간중에 스플라이트가 발생하지 않으면 CDR 카운트부(42)의 CDR 카운트값이 512가 될 때까지 제4도와 같은 데이타를 디스크(10)상에 라이트한다. 데이타구간중에 스플리트가 발생하면 CDR 카운트부(42)는 현재 카운트값을 유지하며, CDRINT 신호를 발생한다. 이때 CDR 카운트부(42)는 데이타의 바이트수를 카운트하여 CDR값과 비교하여 같으면 CDRINT를 발생한다. 어드레스 발생부(38)는 CDRINT가 발생하면 현재의 단계를 저장하고 다음 어드레스 N_ADD를 발생한다. 이때 CDR 카운트부(42)는 CDRINT 처리구간동안에는 현재의 카운트값을 유지하고 CDRINT 처리가 끝난 후 다시 데이타의 갯수를 카운트하기 시작하여 총 512바이트의 데이타를 처리한 후 다음 단계로 진행한다. 여기서 라이트모드시 CDR 과정을 살펴보면, CDR 인터럽트가 발생되고 현재의 WCS_ADD와 카운트값을 저장하며 제11도의 어드레스 0Ch인 VECT1로 점프하며 메인루틴으로 리턴하며 현재 WCS_ADD와 카운트값을 재저장한다. 이후 제4도와 같이 ECC 데이타 12바이트를 생성시켜 디스크(10)상에 라이트한다.
다음에 어드레스 09h단계에 해당하는 (344)단계에서는 디스크(10)상에 00h값을 2회, 즉 2바이트를 PAD로서 라이트한다. 그리고 어드레스 0Ah단계에 해당하는 (346)단계에서는 현재 DSTC값을 비교하여 0이면 원하는 섹터만큼의 디스크 라이트 동작완료를 의미하므로 시퀀서는 어드레스 발생부(38)에서 어드레스 발생을 중단하고 수행을 멈춘다. 이와 달리 현재 DSTC값이 0이 아니라면 섹터갱신부(50)는 TSNO 증가, DSTC 감소를 수행하고 또 다른 섹터를 처리하기 위하여 상기한 어드레스 00h단계로 진행한다.
그리고 어드레스 0Bh단계에 해당하는 (348)단계에서는 00h값을 2회, 즉 2바이트를 디스크(10)상에 PAD로서 라이트한다. 그리고 어드레스 0Ch단계에 해당하는 (350)∼(352)단계에서는 타이머(36)를 인에이블시키고 ESO가 검출될때까지 현 상태를 유지한다. 이때 EOS가 검출되면 어드레스 0Dh단계로 진행하고 타임아웃되면 동작을 중지한다. 그리고 어드레스 0Dh단계에 해당하는 (354)단계에서는 VFO 피일드의 00h값을 디스크(10)상에 12바이트 라이트한다. 이후 어드레스 0Eh단계에 해당하는 (356)단계에서는 동기패턴을 디스크(10)상에 라이트한 후, 브랜치조건보다 우선순위를 갖는 CDRRTN에 의해 어드레스 발생부(38)에서 CDRINT가 발생했던 원래 위치인 상기한 어드레스 08h단계로 진행한다.
따라서 상기한 바와 같은 동작에 의해 디스크(10)상에 데이타 라이트가 이루어지게 된다.
이때 스택(48)은 데이타선택 피일드의 최상위 비트가 1일 때, 즉 상기한 어드레스 03h단계의 경우에 PUSHEN 신호에 의해 HCYLH, CYLL, TSNO, FCDRH 정보를 저장하게 된다.
따라서 제5도와 같은 시퀀서 맵 할당에 따라 시퀀서의 램(36), 즉 프로그램 램을 16×7비트 크기로 사용하면서도 정상적인 포맷/리드/라이트 동작이 이루어지게 되는 것이다. 이에 따라 램의 크기를 종래에 비해 거의 절반정도로 줄일 수 있게 됨으로써 시퀀서의 하드웨어가 간단해질 뿐만 아니라 마이크로 콘트롤러(22)에 의한 프로그램 다운로딩시간은 16×1×3T=48T만 필요하게 되므로 마이크로 콘트롤러(22)의 오버헤드가 종래에 비해 대폭적으로 줄어들게 된다. 즉, 프로그램 램(36)의 크기는 종래의 AIC-8265의 7.3%, CL-SH5600의 11.3%, 전술한 특허출원 제95- 호의 21.9%로 줄어들고 마이크로 콘트롤러(22)의 오버헤드는 특허출원 제95- 호에 비해 약 75%만큼 적게 된다.
상술한 바와 같이 본 발명은 프로그램을 저장하는 램의 크기를 대폭적으로 줄임으로써 시퀀서의 하드웨어를 간단하게 하고, 데이타 전송을 위한 마이크로 콘트롤러의 로드를 대폭적으로 줄일 수 있는 잇점이 있다.
한편 상술한 본 발명의 실시예에서는 구체적인 실시예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 따라서 발명의 범위는 설명된 실시예에 의하여 정할 것이 아니고 특허 청구의 범위와 특허 청구의 범위에 균등한 것에 의해 정하여져야 한다.
Claims (7)
- 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서에 있어서, 16×7비트 크기의 저장영역을 가지며, 각 어드레스마다의 저장영역이 브랜치/데이타선택 피일드와 인코딩 다음어드레스/카운트 피일드와 출력 피일드로 이루어지는 프로그램 램과, 상기 램을 액세스하기 위한 어드레스를 상기 브랜치/데이타선택 피일드와 인코딩 다음 어드레스/카운트 피일드의 정보에 따라 발생하여 상기 램에 인가하는 어드레스 발생수단과, 상기 인코딩 다음 어드레스/카운트 값을 디코딩하여 상기 어드레스 발생수단에 제공하는 디코딩수단과, 상기 브랜치/데이타선택 피일드의 정보를 디코딩하고 디스크로부터 리드한 데이타와 데이타 레지스터의 값을 선택하여 비교하며 스택에 푸쉬하며 디스크 동작을 제어하는 리드/라이트신호와 섹터를 갱신하기 위한 신호를 발생하는 브랜치/데이타선택 디코딩수단과, 상기 브랜치/데이타선택 디코딩수단에 의해 CDR 스플리트를 위한 값을 카운트하여 상기 어드레스 발생수단을 제어하는 CDR 카운트수단과, 상기 브랜치/데이타선택 피일드의 브랜치조건에 의해 동작을 시작하며 상기 브랜치/데이타선택 디코딩수단에 대한 최대 동작시간을 제한하는 타이머수단과, 상기 브랜치/데이타선택 디코딩수단의 출력에 의해 갱신동작을 수행하는 섹터갱신수단을 구비하는 것을 특징으로 하는 프로그래머블 콘트롤 시퀀서.
- 디스크 콘트롤러에서 16×7비트 크기의 저장영역을 가지는 프로그램을 프로그래머블 콘트롤 시퀀서의 맵 할당방법에 있어서, 브랜치 조건과 카운트 피일드 인에이블정보 중 어느 하나를 가지며 각종 데이타 레지스터를 선택하여 디스크로부터 리드된 데이타와 비교 또는 처리하기 위해 사용되는 브랜치/데이타선택 피일드와, 상기 브랜치 조건에 따라 다음의 어드레스와 카운트값중 어느 하나가 인코딩된 값을 가지는 인코딩 다음 어드레스/카운트 피일드와, 상기 시퀀서 외부에서 동기를 접기 위한 시험을 위한 출력 피일드로 이루어지는 것을 특징으로 하는 맵 할당방법.
- 제2항에 있어서, 상기 브랜치/데이타선택 피일드가, 3비트로 이루어지는 코드에 따라 항상 브랜치됨과, ID 에러/CRC에러/ECC에러/스킵일 경우 브랜치됨과, 데이타 카운트 인에이블과, ID 카운트 인에이블과, 카운트 인에이블과, 카운트 인에이블 대기와, 동기검출 대기/동작패턴 라이트와, 인덱스펄스/섹터펄스/서보종료신호 대기중 어느 하나를 나타내는 것을 특징으로 하는 맵 할당방법.
- 제2항에 있어서, 상기 인코딩 다음 어드레스/카운트 피일드가, 3비트로 이루어지는 값을 가지며 상기 브랜치/데이타선택 피일드의 코드에 따라 다음 어드레스 또는 카운트값으로 사용되는 것을 특징으로 하는 맵 할당방법.
- 제4항에 있어서, 상기 출력 피일드가, 1비트로 이루어지는 코드값을 가지는 것을 특징으로 하는 맵 할당방법.
- 제5항에 있어서, 마이크로 콘트롤러의 관여없이 섹터갱신을 수행하기 위해 상기 브랜치/데이타선택 피일드와 인코딩 다음 어드레스/카운트 피일드가 0이고 상기 출력 피일드 1의 조합을 갱신시점으로 사용되는 것을 특징으로 하는 맵 할당방법.
- 제6항에 있어서, 상기 램 어드레스 1Fh번지가 프로그램중 CDR 서브루틴으로 사용되거나 프로그램의 중지조건으로 사용되는 것을 특징으로 하는 맵 할당방법.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950072287A KR0176637B1 (ko) | 1995-12-30 | 1995-12-30 | 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법 |
GB9626798A GB2308915B (en) | 1995-12-30 | 1996-12-23 | Programmable control sequencer and map allocation of disk controller |
DE19654590A DE19654590B4 (de) | 1995-12-30 | 1996-12-27 | Programmierbare Ablaufsteuerung und Verfahren für eine programmierbare Ablaufsteuerung |
US08/777,137 US5946706A (en) | 1995-12-30 | 1996-12-30 | Programmable control sequencer of disk controller and method for map allocation therefor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950072287A KR0176637B1 (ko) | 1995-12-30 | 1995-12-30 | 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970050732A KR970050732A (ko) | 1997-07-29 |
KR0176637B1 true KR0176637B1 (ko) | 1999-04-15 |
Family
ID=19448911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950072287A KR0176637B1 (ko) | 1995-12-30 | 1995-12-30 | 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5946706A (ko) |
KR (1) | KR0176637B1 (ko) |
DE (1) | DE19654590B4 (ko) |
GB (1) | GB2308915B (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691186B2 (en) | 2001-10-09 | 2004-02-10 | Texas Instruments Incorporated | Dual sequencer based disk formatter |
US9231865B2 (en) * | 2012-08-10 | 2016-01-05 | Wisconsin Alumni Research Foundation | Lookup engine with reconfigurable low latency computational tiles |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4050094A (en) * | 1976-04-30 | 1977-09-20 | International Business Machines Corporation | Translator lookahead controls |
US4080651A (en) * | 1977-02-17 | 1978-03-21 | Xerox Corporation | Memory control processor |
US4583162A (en) * | 1983-01-13 | 1986-04-15 | The Singer Company | Look ahead memory interface |
US4884197A (en) * | 1985-02-22 | 1989-11-28 | Intergraph Corporation | Method and apparatus for addressing a cache memory |
US4866601A (en) * | 1987-09-24 | 1989-09-12 | Ncr Corporation | Digital data bus architecture for computer disk drive controller |
US4918587A (en) * | 1987-12-11 | 1990-04-17 | Ncr Corporation | Prefetch circuit for a computer memory subject to consecutive addressing |
JPH02231621A (ja) * | 1989-03-06 | 1990-09-13 | Hitachi Ltd | 回転記憶装置における情報転送方式 |
JPH03266039A (ja) * | 1990-03-16 | 1991-11-27 | Fujitsu Ltd | フリーフォーマットデータリンク処理方式 |
US5274773A (en) * | 1990-11-09 | 1993-12-28 | Conner Peripherals, Inc. | Flexible host interface controller architecture |
EP0990980B1 (en) * | 1990-11-09 | 2003-03-12 | Seagate Technology LLC | Multiple microcontroller hard disk drive control architecture |
US5261058A (en) * | 1990-11-09 | 1993-11-09 | Conner Peripherals, Inc. | Multiple microcontroller hard disk drive control architecture |
US5592348A (en) * | 1991-05-17 | 1997-01-07 | Adaptec, Inc. | Method and structure for locating and skipping over servo bursts on a magnetic disk |
DE69218294T2 (de) * | 1991-06-04 | 1997-07-17 | Quantum Corp | Miniatureplattenantriebsgerät mit eingebettetem Servosector und trennbaren Datenfeldern und sofortige Datenblockreihenfolge |
US5596736A (en) * | 1992-07-22 | 1997-01-21 | Fujitsu Limited | Data transfers to a backing store of a dynamically mapped data storage system in which data has nonsequential logical addresses |
US5564118A (en) * | 1992-11-12 | 1996-10-08 | Digital Equipment Corporation | Past-history filtered branch prediction |
US5422763A (en) * | 1992-11-13 | 1995-06-06 | Teac Corporation | Split field zone data recording |
JP3528094B2 (ja) * | 1994-02-09 | 2004-05-17 | 株式会社日立製作所 | バス利用方法および記憶制御装置 |
US5530825A (en) * | 1994-04-15 | 1996-06-25 | Motorola, Inc. | Data processor with branch target address cache and method of operation |
US5581715A (en) * | 1994-06-22 | 1996-12-03 | Oak Technologies, Inc. | IDE/ATA CD drive controller having a digital signal processor interface, dynamic random access memory, data error detection and correction, and a host interface |
US5829049A (en) * | 1994-10-12 | 1998-10-27 | Hewlett-Packard Company | Simultaneous execution of two memory reference instructions with only one address calculation |
US5589998A (en) * | 1994-12-22 | 1996-12-31 | International Business Machines Corporation | Cylinder address storage in multiple servo sectors of a track |
US5559982A (en) * | 1995-04-10 | 1996-09-24 | International Business Machines Corporation | Method and apparatus for controlling storage utilization |
-
1995
- 1995-12-30 KR KR1019950072287A patent/KR0176637B1/ko not_active IP Right Cessation
-
1996
- 1996-12-23 GB GB9626798A patent/GB2308915B/en not_active Expired - Lifetime
- 1996-12-27 DE DE19654590A patent/DE19654590B4/de not_active Expired - Fee Related
- 1996-12-30 US US08/777,137 patent/US5946706A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE19654590A1 (de) | 1997-07-10 |
GB2308915B (en) | 1998-03-18 |
US5946706A (en) | 1999-08-31 |
GB9626798D0 (en) | 1997-02-12 |
KR970050732A (ko) | 1997-07-29 |
DE19654590B4 (de) | 2006-06-14 |
GB2308915A (en) | 1997-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5627946A (en) | Hard disk format using frames of sectors to optimize location of servo bursts | |
EP0300264B1 (en) | Defect skipping mechanism for disk drives | |
JP3480962B2 (ja) | ディスク駆動システム | |
KR100258666B1 (ko) | 디스크 드라이브에서의 섹터 펄스 자동발생 및 분할 필드 자동 계산 방법과 장치 | |
US5740358A (en) | Defect management and split field processing in disk storage systems | |
KR100278534B1 (ko) | 테이블 구동 방식의 자동 분할 필드 계산 방법 | |
US7046467B1 (en) | Method for generating a format specific data structure in a disk drive having differing surface formats | |
US4554598A (en) | Single revolution disk sector formatter | |
WO1997027585A1 (en) | Tiled partitioning for magnetic tape recording | |
CN102237097A (zh) | 具有对数据磁道的写的自适应计数的盘驱动器 | |
KR100242761B1 (ko) | 데이터 저장 시스템 및 이를 포맷하기 위한 방법 | |
US5422763A (en) | Split field zone data recording | |
US20020009294A1 (en) | Information playback apparatus, information processing method and information recording medium | |
KR20050030167A (ko) | 데이터기록/재생장치 및 데이터 기록/재생방법 | |
US4504873A (en) | Identification field scan apparatus | |
KR0176637B1 (ko) | 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법 | |
KR0159435B1 (ko) | 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법 | |
US4663733A (en) | Programmable universal synchronization byte detector | |
US6154331A (en) | Disk formatter write gate look-ahead device | |
US6993600B1 (en) | Write control sequencer for optical read/write and DVD combination integrated circuit | |
JP2540768B2 (ja) | セクタid情報の転送機能を持つ磁気ディスクコントロ―ラ | |
US5452458A (en) | Method of controlling a flexible disk controller | |
US5907445A (en) | Apparatus and method for controlling hard disk drive-locating position by counting sectors | |
JP2723226B2 (ja) | 磁気記録再生装置 | |
KR19990011718A (ko) | 하드디스크 드라이브 정보 기록용 디스크 내 정보 기록 필드 리드 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20061030 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |