KR0160111B1 - 타이머 인터럽트를 이용한 시퀀서 폭주 장치 및 방법 - Google Patents
타이머 인터럽트를 이용한 시퀀서 폭주 장치 및 방법 Download PDFInfo
- Publication number
- KR0160111B1 KR0160111B1 KR1019950009792A KR19950009792A KR0160111B1 KR 0160111 B1 KR0160111 B1 KR 0160111B1 KR 1019950009792 A KR1019950009792 A KR 1019950009792A KR 19950009792 A KR19950009792 A KR 19950009792A KR 0160111 B1 KR0160111 B1 KR 0160111B1
- Authority
- KR
- South Korea
- Prior art keywords
- sequencer
- congestion
- timer
- time
- interrupt service
- Prior art date
Links
Classifications
-
- 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
- G11B21/02—Driving or moving of heads
- G11B21/08—Track changing or selecting during transducing operation
- G11B21/081—Access to indexed tracks or parts of continuous track
- G11B21/083—Access to indexed tracks or parts of continuous track on discs
Landscapes
- Debugging And Monitoring (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Moving Of Heads (AREA)
- Moving Of Head For Track Selection And Changing (AREA)
Abstract
본 발명은 하드 디스크의 중요 부분인 디스크 컨트롤러의 시퀀서의 정지 상태와 폭주 상태를 검출하여 폭주 상태를 방지하기 위한 시퀀서 폭주 방지 장치 및 방법에 관한 것이다.
즉, 본 발명에 따른 하드 디스크 커트롤러의 시퀀서 폭주방지 방법은 마이크로프로세서가 시퀀서의 상태를 반복적으로 점검하여 마이크로프로세서의 연산 능력을 활용하지 못하는 종래의 방법과는 달리, 마이크로프로세서의 내부 타이머를 이용하여 폭주를 방지하는 방법으로, 타이머 인터럽트 서비스 루틴에서만 시퀀서 동작 상태를 검사하면 되므로, 시퀀서 동작을 시작한 이후에도 마이크로프로세서가 각종 연산을 수행할 수 있어 효율적으로 오버헤드를 줄일 수 있는 동시에 효율적으로 시퀀서 동작을 방지할 수 있는 장점이 있다.
Description
제1도는 하드 디스크의 하드 웨어 구성을 나타내는 블록도.
제2도는 종래위 시퀀서 폭주 방지 알고리즘.
제3도 및 제5도는 본 발명에 따른 시퀀서 폭주 방지 알고리즘으로서,
제3도는 디스크 동작시의 순서도.
제4도는 타이머 오버플로우 인터럽트 서비스 루틴시의 순서도.
그리고 제5도는 디스크 인터럽트 서비스 루틴시의 순서도이다.
본 발명은 하드 디스크의 시퀀서 폭주 장치 및 방법에 관한 것으로, 상세하게는 하드 디스크의 중요 부품인 디스크 컨트롤러의 시퀀서의 정지 상태와 폭주 상태를 검출하여 폭주 상태를 방지하기 위한 시퀀서 폭주 방지 장치 및 방법에 관한 것이다.
제1도는 하드 디스크의 하드 웨허 구성을 나타내는 블록도이다. 여기서 하드웨어의 각 구성부를 설명하면 다음과 같다.
먼저, 프리앰프는 헤드/메디아에서 판독한 신호를 적정 크기로 증폭시켜서 전송하기 위한 소자이고, R/W 채널은 프리앰프 출력 신호의 파형을 정제(enhance)하여 디지탈 데이터로 변화하는 소자이고, ASIC은 헤드/메디아로부터 입력 받은 신호로 부터 각종 제어 신호를 생성하는 글루 로직(glue logic)의 집합이다. 그리고, 펌웨어(firm ware) 프로그램은 하드 디스크 전체를 구동하기 위한 제어 프로그램이다.
제1도에 도시된 바와 같은 하드 디스크 시스템에서 핵심 부품의 하나인 디스크 컨트롤러는 디스크에서 읽은 데이터를 버퍼에 저장하는 기능을 수행하고 있다. 하드 디스크에 기록되어 있는 정보는 크게 2가지로 분류할 수 있는데, 첫째 헤드의 종적, 횡적인 위치를 판단할 수 있도록 기준 신호를 제공해 주는 서보 프레임 정보가 있고, 둘째 하드 디스크의 기본적인 기능인 데이터 입출력을 수행하는 목적을 위하여 데이터 구간이 있다.
이때 디스크의 원주 방향으로의 위치를 기준하기 위해 서보 프레임에 인덱수를 기록한다. 따라서 디스크의 원주 방향으로의 위치는 인덱스를 기준으로 시작한다. 또한 데이터 구간에서는 연속된 데이터의 흐름을 일정 길이로 나워 기록하는데 이를 섹터라 하고 이러한 섹터의 시작을 나타내기 위하여 섹터 펄스가 존재한다.
데이터 섹터를 세분하면 섹터 사이의 갭, ID 구간, 데이터 구간으로 다시 나누어질 수 있는데, ID 구간과 데이터 구간은 좀 더 세분화 될 수 있다.
즉, ID 구간은 ID 어드레스 마크, ID PLO, ID 위치 정보(position information)
, ID 스플리트 정보(split information), ID CRC(cyclic redundancy code)로 세분화되고, 데이터 구간은 데이터 PLO, 데이터 어드레스 마크(data address mark), 데이터 , 데이터 ECC(error correction code)로 세분화된다.
시퀀서의 동작 구조상 데이터를 읽거나 쓰기 위해서는 다음과 같은 과정이 필요하다.
1. 섹터 펄스를 검출한다.
2. ID 어드레스 마크를 검출한다.
3. ID 위치 정보와 ID 스플리트 정보를 읽고 ID CRC(cyclic rddundancy code)의 값이 맞는지 확인한다.
이러한 과정이 원하는 섹터의 ID를 성공적으로 읽기 위하여 필요하며, 2와 3의 과정중에 에러가 발생하는 경우 시퀀서는 다음의 섹터 펄스를 기다리게 되므로 영구적인 불량일 경우의 무한 반복을 방지하기 위하여 시퀀서는 동작 시작후 인덱스를 검출하는 경우 동작을 중지하여 에러를 검출할 수 있도록 한다. 즉, 디스크가 수회전하는 동안 원하는 섹터 ID를 검출하지 못하도록 에러 복구 과정이 필요하다.
본 발명은 상기와 같은 문제점을 개선하고자 창안된 것으로, 하드 디스크 컨크롤러의 시퀀서의 폭주 상태를 방지하여 주는 시퀀서 폭주 방지 알고리즘을 제공하는데 그 목적이 있다.
그런데 인덱스 신호가 오류가 있을 경우 시퀸서는 정상적으로 중지할 수 없는 폭주 상태에 놓이게 된다. 따라서 이를 막기 위하여 일정시간이 지나는 경우 시퀀서를 중단시키는 것이 필요하다.
상기와 같은 목적을 달성하기 위하여 본 발명에 따른 시퀀서 폭주 방지 장치는, 시퀀서 동작시의 시퀀서 폭주 방지 장치에 있어서, 시퀀서를 초기화하는 단계; 시퀀서의 동작이 개시되는 시점의 타이머 값을 읽는 단계; 및 상기 현재 타이머 값에 소정의 시간상수를 더해서 시퀀서 정지 시간을 계산하는 단계; 시퀀서를 동작시키는 단계; 상기 시퀀서 정지 시간에 시퀀서가 동작하는 가를 판단하는 단계; 그리고 상기 시퀀서 정지시간에 상기 시퀀서가 동작하면 폭주 상택로 판단하여 시퀀서를 강제 정지키는 단계;를 포함하는 폭주 방지 알고리즘이 주 프로그램에 구비된 것을 특징으로 한다.
본 발명에 있어서, 상기 시간상수는 시퀀서가 동작상태에 있을 수 있는 최대의 시간인 것이 바람직하며, 상기 시퀀서 정지 시간을 계산하기 위한 상기 시간 상수는 디스크의 회전수를 고려하여 다음과 같이 설정하는 것이 바람직하다.
T = N * revolution time * timer frequency
(여기서 N은 최대 인덱스 검출 회수로써, 2 이상의 정수이다.)
또한 상기와 같은 목적을 달성하기 위하여 본 발명에 따른 시퀀서 폭주 방지 방법은, 타이머 인터럽트 서비스 루틴 내에서 시퀀서 폭주 방지하는 방법에 있어서, 타이머 값을 소정의 값 만큼 증가시키는 단계; 시퀀서 정지 시간과 상기 증가된 현재의 타이머 값이 같은 경우 시퀀서가 정지하였는지의 여부를 확인하는 시퀀서 폭주 확인 단계; 및 상기 시퀀서 폭주 확인 단계에서 시퀀서가 정지하였다면 인터럽트 서비스 루틴을 종료하고, 시퀀서가 정자하지 않았다면 시퀀서가 폭주 상태에 놓여 있는 것으로 판단하여 인덱스 검출 에러를 나타내는 플래그를 세트한 뒤, 시퀀서를 강제로 정지시키는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 타이머 인터럽트 서비스 루틴은 타이머에 의해 실행되며 동작중에 항상 주기적으로 실행되는 루틴인 것이 바람직하다.
또한, 상기와 같은 목절을 달성하기 위하여 본 발명에 따른 또 다른 시퀀서 폭주 방지 방법은, 디스크 인터럽트 서비스 루틴 내에서의 시퀀서 폭주 방지 방법에 있어서, 인덱스 검출 에러를 나타내는 플래그를 확인하는 단계; 상기 플래그가 세트되어 있는 경우 인덱스 검출 에러에 의해 에러복구 과정을 실행하여 시퀀서를 동작시켜서 끝내는 단계; 상기 인덱스 검출 에러를 나타내는 플래그가 클리어되어 있는 경우 일반적인 에러 검출과 복구 루틴을 실행하여 동작이 완료되었는가를 판단하는 단계; 상기 동작이 완료되었으면 끝내고, 완료되지 않았으면 시퀀서를 재동작시켜서 끝내는 단계;를 포함하는 것을 특징으로 한다.
이하 도면을 참조하면서 본 발명에 따른 시퀀서 폭주 방지 알고리즘을 설명한다.
제3도 내지 제5도는 본 발명에 따른 시퀀서 폭주 방지 알고리즘으로서, 제3도는 디스크 동작시의 시퀀서 폭주 방지 알고리즘, 제4도는 타이머 오버플로우 인터럽트 서비스 루틴시의 시퀀서 폭주 방지 알고리즘, 제5도는 디스크 인터럽트 서비스 루틴시의 시퀀서 폭주 방지 알고리즘이다.
먼저 제3도에 도시된 바와 같은, 시퀀서 동작 시작시의 타이머 인터럽트를 이용한 시퀀서 폭주 방지 알고리즘은 다음과 같다.
1. 시퀀서의 동작은 개시하는 시점의 타이머 값을 읽는다.
2. 이 값에 일정한 상수를 더해서 시퀀서 정지 시간을 계산한다. 시퀀서 상기 시간은 정상적인 동작 상태에서 시퀀서가 동작 상태에 있을 수 있는 최대 시간으로 이 시간 이후에도 시퀀서가 동작중이라면 폭주로서 간주한다. 시퀀서 정지 시간을 계산하기 위한 상수는 디스크의 회전수를 고려하여 다음과 같이 설정한다.
T = N * revolution time * timer frequency
여기서, N은 최대 인덱스 검출 회수로써, 2 이상의 정수이다.
예로 N=3, 디스크 회전 속도가 5400 RPM이고, timer frdquency가 1㎑이면, resolution timer은 11.11msec가 된다.
T=3*11.111*33.333(tick)
따라서 정수 34 혹은 그 이상의 값을 상수로서 사용한다.
다음으로 제4도에 도시된 바와 같은, 타이머 인터럽트 서비스시의 시퀀서 폭주 방지 알고리즘으은 다음과 같다.
1. 타이머 값을 1만큼 증가시킨다.
2. 시퀀서 방지 시간과 비교하여 같은지 비교한다. 다른 경우 인터럽트 서비스 루틴을 종료한다.
3. 시퀀서 정지 시간과 타이머 값이 같은 경우 시퀀서가 정지하였는지의 여부를 확인한다. 시퀀서가 이미 정지하였다면 인터럽트 서비스 루틴을 종료한다.
4. 시퀀서가 정지하지 않았다면 시퀀서가 폭주 상태에 놓여 있는 것으로 판단하고, 인덱스 검출 에러를 나타내는 플래그를 세트한 뒤, 시퀀서를 강제로 정지시킨다.
여기서, 타이머 인터럽트 서비스 루틴은 마이크로프로세서 내부 타이머에 의해 타이머 오버플로우 인터럽트를 발생시켜 실행되며, 일반적인 동작중에 항상 주기적으로 실행되는 루틴이다.
다음으로 제5도에 도시된 바와 같이, 시퀀서 정지시의 시퀀서 폭주 방지 알고리즘은 다음과 같다.
1. 인덱스 검출 에러를 나타내는 플래그를 확인하여 세트되어 있는 경우 인덱스 검출 에러에 대한 에러 복구 과정을 실행한다.
2. 인덱스 검출 에러를 나타내는 플래그가 클리어되어 있는 경우 일반적인 에러 검출의 복구 루틴을 실행한다.
이 과정에서도 마이크로프로레서의 내부 인터럽트를 이용함으로써 폴링으로 인한 마이크로컨트롤러의 오버헤드를 줄일 수 있다.
이상 설명한 바와 같이, 본 발명에 따른 하드 디스크 커트롤러의 시퀀서 폭주방지 방법은 마이크로프로세서가 시퀀서의 상태를 반복적으로 점검하여 마이크로프로세서의 연산 능력을 활용하지 못하는 종래의 방법과는 달리, 마이크로프로세서의 내부 타이머를 이용하여 폭주를 방지하는 방법으로, 시퀀서 동작 시작시점의 타이머 값을 읽고 여기에 시퀀서가 동작 상태에 있을 수 있는 최대의 시간을 위한 시간 이후에도 동작중이라면 폭주로서 검출하는 방법과, 타이머 인터럽트 서비스 루틴내에서 시퀀서 정지 시간과 타이머 값을 비교하여 시퀀서 정지 시간 이후에 시퀀서가 정지하였는 지를 판단하여 정지하지 않았으면 폭주로 검출하는 방법과 및 시퀀서 정지시에 인덱스 검출 에러를 나타내는 플래그를 확인하여 세트되어 있는 경우 인덱스 검출 에러에 대한 에러 복구 과정을 실행하는 방법으로 시퀀서의 폭주 방지함으로써, 타이머 인터럽트 서비스 루틴에서만 시퀀서 동작 상태를 검사하면 되므로, 시퀀서 동작을 시작한 이후에도 마이크로프로세서가 각종 연산을 수행할 수 있어 효율적으로 오버헤드를 줄일 수 있는 동시에 효율적으로 시퀀서 폭주를 방지할 수 있는 장점이 있다.
Claims (6)
- 시퀀서 동작시의 시간적 폭주 방지 장치에 있어서, 시퀀서를 초기화하는 단계; 시퀀서의 동작이 개시되는 시점의 타이머 값을 읽는 단계; 및 상기 현재 타이머 값에 소정의 시간상수를 더해서 시퀀서 정지 시간을 계산하는 단계; 시퀀서를 동작시키는 단계; 상기 시퀀서 정지 시간에 시퀀서가 동작하는 기를 판단하는 단계; 그리고 상기 시퀀서 정지시간에 상기 시퀀서가 동작하면 폭주 상태로 판단하여 시퀀서를 강제 정지시키는 단계;를 포함하는 폭주 방지 알고리즘이 주 프로그램에 구비된 것을 특징으로 하는 시퀀서 폭주 방지 장치.
- 제1항에 있어서, 상기 시간상수는 시퀀서가 동작상태에 있을 수 있는 최대의 시간인 것을 특징으로 하는 시퀀서 폭주 방지 장치.
- 제1항에 있어서, 상기 시퀀서 정지 시간을 계산하기 위한 상기 시간 상수는 디스크의 회전수를 고려하여 다음과 같이 설정하는 것을 특징으로 하는 시퀀서 폭주 방지 장치.T = N * revolution time * timer frequnency(여기서 N은 최대 인덱수 검출 회수로써, 2 이상의 정수이다.)
- 타이머 인터럽트 서비스 루틴 내에서 시퀀서 폭주를 방지하는 방법에 있어서, 타이머 값을 소정의 값 만큼 증가시티는 단계; 시퀀서 정지 시간과 상기 증가된 현재의 타이머 값이 같은 경우 시퀀서가 정지하였는지의 여부를 확인하는 시퀀서 폭주 확인 단계; 및 상기 시퀀서 폭주 확인 단계에서 시퀀서가 정지하였다면 인터럽트 서비스 루틴을 종료하고, 시퀀서가 정지하지 않았다면 시퀀서가 폭주 상태에 놓여 있는 것으로 판단하여 인덱스 검출 에러를 나타내는 플래그를 세트한 뒤, 시퀀서를 강제로 정지시키는 단계;를 포함하는 것을 특징으로 하는 시퀀서 폭주 방지 방법
- 제4항에 있어서, 상기 타이머 인터럽트 서비스 루틴은 타이머에 의해 실행되며 동작중에 항상 주기적으로 실행되는 루틴인 것을 특징으로 하는 시퀀서 폭주 방지 방법.
- 디스크 인터럽트 서비스 루틴 상태에서 시퀀서 폭주 방지 방법에 있어서, 인덱스 검출 에러를나타내는 플래그를 확인하는 단계; 상기 플래그가 세트되어 있는 경우 인덱스 검출 에러에 대한 에러 복구 과정을 실행하여 시퀀서를 동작시켜서 끝내는 단계; 상기 인덱스 검출 에러를 나타내는 플래그가 클리어되어 있는 경우 일반적인 에러 검출의 복구 루틴을 실행하여 동작이 완료되었는가를 판단하는 단계; 상기 동작이 완료되었으며 끝내고, 완료되지 않았으며 시퀀서를 재동작시켜서 끝내는 단계;를 포함하는 것을 특징으로 하는 시퀀서 폭주 방지 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950009792A KR0160111B1 (ko) | 1995-04-25 | 1995-04-25 | 타이머 인터럽트를 이용한 시퀀서 폭주 장치 및 방법 |
JP13125696A JP3526693B2 (ja) | 1995-04-25 | 1996-04-25 | ディスク制御器のオーバーラン防止方法 |
US08/635,170 US6381084B1 (en) | 1995-04-25 | 1996-04-25 | Preventing overrun in a disk controller by using timer interrupts from a microprocessor to halt sequencer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950009792A KR0160111B1 (ko) | 1995-04-25 | 1995-04-25 | 타이머 인터럽트를 이용한 시퀀서 폭주 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960038629A KR960038629A (ko) | 1996-11-21 |
KR0160111B1 true KR0160111B1 (ko) | 1999-01-15 |
Family
ID=19412905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950009792A KR0160111B1 (ko) | 1995-04-25 | 1995-04-25 | 타이머 인터럽트를 이용한 시퀀서 폭주 장치 및 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6381084B1 (ko) |
JP (1) | JP3526693B2 (ko) |
KR (1) | KR0160111B1 (ko) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4920462A (en) | 1988-03-07 | 1990-04-24 | Syquest Technology | Disc drive fine servo velocity control and method for head positioning relative to a disc |
JPH0814947B2 (ja) | 1988-04-20 | 1996-02-14 | 富士電機株式会社 | ディスク記憶装置のヘッド移動操作方式 |
JP2591255B2 (ja) | 1989-07-07 | 1997-03-19 | ティアツク株式会社 | ディスク装置 |
US5517631A (en) * | 1991-02-01 | 1996-05-14 | Quantum Corporation | Miniature disk drive having embedded sector servo with split data fields and automatic on-the-fly data block sequencing |
-
1995
- 1995-04-25 KR KR1019950009792A patent/KR0160111B1/ko not_active IP Right Cessation
-
1996
- 1996-04-25 JP JP13125696A patent/JP3526693B2/ja not_active Expired - Lifetime
- 1996-04-25 US US08/635,170 patent/US6381084B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR960038629A (ko) | 1996-11-21 |
JP3526693B2 (ja) | 2004-05-17 |
US6381084B1 (en) | 2002-04-30 |
JPH08315496A (ja) | 1996-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3984814A (en) | Retry method and apparatus for use in a magnetic recording and reproducing system | |
US6751038B1 (en) | Data write control system and method therefor | |
KR0160111B1 (ko) | 타이머 인터럽트를 이용한 시퀀서 폭주 장치 및 방법 | |
JP2793475B2 (ja) | 光ディスク装置 | |
JPS5841444A (ja) | 光デイスクの情報書き込み方式 | |
KR960019220A (ko) | 기록장치 및 방법 | |
US6295254B1 (en) | Seek control method for a disk device used for reading/writing data from and to a disk recording medium | |
CN87104485A (zh) | 信息记录和重现装置 | |
JP2894388B2 (ja) | サーチ回路 | |
JP2734860B2 (ja) | 磁気ディスク制御装置の書込み中断回復処理方式 | |
JPH07281836A (ja) | データ転送方法 | |
JPH03160670A (ja) | データ読取装置 | |
JPH02156473A (ja) | 磁気ディスク装置 | |
JPH0883151A (ja) | 磁気ディスク装置 | |
JP2933557B2 (ja) | 磁気ディスク装置 | |
JPH035954A (ja) | ディスク装置 | |
JPH0916442A (ja) | Cpu保守システム | |
JPH07121306A (ja) | ダミーシーク制御方式 | |
JPH03269890A (ja) | 光ディスク装置 | |
JPH01143082A (ja) | 磁気デイスク装置のアドレスマーク検出回路 | |
JPS60235230A (ja) | デイスク内レコ−ドサ−チの最適化技法 | |
JPH04259958A (ja) | ディスク型記憶装置 | |
JPS61144773A (ja) | 磁気デイスク制御装置 | |
JPH0522988B2 (ko) | ||
JPH07249275A (ja) | ディスク装置 |
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: 20060728 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |