플로피 디스크 컨트롤러
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
플로피 디스크 컨트롤러(FDC)는 플로피 디스크 드라이브(FDD)를 제어하는 집적 회로이다. 1971년 IBM 2305 고정 헤드 디스크 드라이브용 스토리지 제어 장치의 구성 요소로 처음 등장했으며, 이후 IBM 3740 데이터 입력 시스템을 통해 8인치 플로피 디스크 표준이 자리 잡으면서 FDC의 수요가 증가했다. 초기 FDC는 여러 개의 IC로 구성되었으나, 웨스턴 디지털의 FD1771을 시작으로 특수 목적의 집적 회로로 발전했다. NEC μPD765는 IBM PC에 채택되면서 사실상 업계 표준이 되었으며, 이후 FDC는 Super I/O 칩이나 사우스브리지 칩에 통합되어 사용되다가 플로피 디스크의 사용 감소와 함께 마더보드에서 제거되었다. FDC는 데이터를 인코딩하고, 드라이브 헤드 이동, 트랙 관리, 오류 감지 등의 기능을 수행하며, 호스트 시스템과의 연결을 위한 인터페이스를 제공한다.
더 읽어볼만한 페이지
- 컴퓨터 저장 장치 - 하드 디스크 드라이브
하드 디스크 드라이브(HDD)는 자기 기록 방식으로 데이터를 저장하는 비휘발성 저장 장치로, 꾸준히 발전하여 대용량 저장이 가능하지만 SSD의 등장으로 시장 점유율이 감소하고 있으며 웨스턴디지털, 씨게이트, 도시바가 주요 제조업체이다. - 컴퓨터 저장 장치 - 씨마이크로
씨마이크로는 2007년 설립되어 투자 유치 후 AMD에 인수된 서버 개발 회사로, SM10000, SM15000 시리즈 등의 제품을 개발하고 버라이즌과의 협력 및 여러 수상 경력을 보유하고 있다. - 집적 회로 - 실시간 시계
실시간 시계(RTC)는 CPU 개입 없이 독립적으로 시간을 유지하며, 저전력 소비와 시간 민감 작업의 부담 감소, 절전 모드 유지를 위해 디지털 카운터 회로, 결정 진동자, 배터리 등으로 구성되어 PC 메인보드에 부착되거나 사우스브리지 칩 또는 마이크로컨트롤러에 내장된다. - 집적 회로 - NMOS 논리
NMOS 논리는 n형 MOSFET만을 사용하여 논리 게이트를 구현하는 방식으로, 저항을 부하로 사용하여 NOR 게이트 등을 구현할 수 있지만, Low에서 High로의 전환 속도가 느리고 전력 소비가 높아 CMOS 논리에 밀려 현재는 제한적으로 사용된다.
플로피 디스크 컨트롤러 | |
---|---|
기본 정보 | |
![]() | |
유형 | 디스크 컨트롤러 |
개발 연도 | 1970년대 초반 |
사용 | 플로피 디스크 드라이브 제어 플로피 디스크 드라이브에서 데이터 읽기 및 쓰기 |
기능 | |
주요 기능 | 디스크 드라이브와 호스트 시스템 간의 인터페이스 제공 데이터 전송 제어 데이터 형식화 오류 감지 및 수정 |
기술 사양 | |
데이터 전송 속도 | (다양한 표준에 따라 다름) |
지원하는 디스크 형식 | (다양한 표준에 따라 다름) |
인터페이스 | ISA PCI USB |
역사 및 발전 | |
초기 플로피 디스크 컨트롤러 | 1970년대 초반 개발, 단순한 기능 제공 |
표준화 | NEC 765 컨트롤러 (산업 표준으로 널리 사용) |
고급 기능 추가 | 데이터 압축, 오류 수정 코드 (ECC) 등 |
인터페이스 변화 | ISA에서 PCI, USB로의 전환 |
제조사 | |
주요 제조사 | NEC 인텔 텍사스 인스트루먼트 |
관련 기술 | |
관련 기술 | 플로피 디스크 디스크 컨트롤러 IDE SATA |
참고 자료 | |
추가 정보 | 플로피 디스크 컨트롤러 작동 방식에 대한 추가 정보는 관련 기술 문서를 참조하십시오. 플로피 디스크 컨트롤러 관련 자료를 참조하십시오. |
2. 역사
플로피 디스크 컨트롤러(FDC)는 초기에 여러 개의 집적 회로(IC)로 구성된 복잡한 장치였으나, 기술 발전에 따라 단일 칩으로 통합되고, 결국 컴퓨터 시스템의 다른 구성 요소에 포함되는 형태로 변화해왔다.
하위 섹션에서 이미 초기 FDC 개발 과정과 각 FDC 칩들에 대한 자세한 내용들을 다루고 있으므로, 여기서는 FDC의 발전 과정을 간략하게 요약한다.
- 초기 FDC (1970년대): IBM이 주도하여 개발했으며, 여러 개의 IC로 구성되어 크기가 크고 복잡했다. 3740 데이터 입력 시스템은 8인치 플로피 디스크 표준을 확립하는 데 기여했다.
- 집적 회로 FDC 등장 (1970년대 후반): Western Digital FD1771를 시작으로 단일 칩 FDC가 등장하여 크기와 복잡성이 감소했다. NEC μPD765는 IBM PC에 채택되어 널리 사용되었다.
- FDC 통합 및 쇠퇴 (1980년대 이후): FDC는 Super I/O 칩이나 사우스브리지 칩의 일부로 통합되었다. 플로피 디스크 사용 감소와 함께 FDC 인터페이스는 점차 제거되었고, 일부 USB 기반 FDC가 개발되었다.
2. 1. 초기 FDC 개발 (1970년대)
플로피 디스크 드라이브 컨트롤러(FDC)와 최초의 플로피 디스크 드라이브(IBM 23FD)는 1971년 IBM 2305 고정 헤드 디스크 드라이브용 IBM 2385 스토리지 제어 장치의 구성 요소로, 그리고 시스템 370 모델 155 및 165에 탑재되어 출시되었다.[2] IBM 3830 스토리지 제어 장치는 동시대의 매우 유사한 컨트롤러로, 자체 내부 프로세서를 사용하여 23FD를 제어했다.[2] 그 결과 FDC는 IBM의 MST 하이브리드 회로로 몇 개의 인쇄 회로 기판에 간단하게 구현되었다.[2] 당시에는 IBM의 독점 기술이었으며, 1973년 이전에 다른 제조업체들이 초기 FDD를 제공했지만 FDC, 드라이브 또는 미디어에 대한 표준은 없었다.1973년, IBM이 도입한 3740 데이터 입력 시스템은 8인치 단면 플로피 디스크, IBM의 "Type 1" 디스켓에 대한 기본적인 미디어 표준을 만들었다.[3] 이는 많은 소규모 애플리케이션에서 저렴하고 이동 가능한 직접 접근 저장 장치에 대한 요구를 빠르게 증가시켜, 드라이브 및 컨트롤러 출하량이 급증하는 결과를 낳았다.[3]
특수 목적의 집적 회로 버전이 도입되기 전까지, 대부분의 FDC는 40개 이상의 IC로 구현된 하나 이상의 인쇄 회로 기판으로 구성되었다.[4]
초기 FDC의 예는 다음과 같다.
특수 목적의 집적 회로로 구현된 최초의 FDC는 1976년 7월 19일에 발표된 Western Digital FD1771이다.[14][15] 초기 설계는 단일 형식을 지원하고 추가 회로가 필요했지만, 시간이 지남에 따라 이 설계는 다중 소스가 되었고 진화하여 많은 형식을 지원하고 외부 회로를 최소화했다.
1978년에 발표된 NEC μPD765는[16] 1979년에 NEC는 디지털 PLL을 통합한 μPD765와 소프트웨어 호환되는 μPD72068을 출시했다.[17] μPD765는 최초의 IBM PC (1981년)에 채택되면서 준 업계 표준이 되었으며, FDC는 지원 회로와 함께 자체 어댑터 카드에 물리적으로 위치했다. Intel과 같은 다른 벤더들도 호환 부품을 생산했다. 이 설계는 시간이 지남에 따라 칩에 거의 완전한 FDC를 제공하는 제품군으로 발전했다.[18]
2. 2. FDC 기술 발전 및 통합 (1980년대 ~ 현재)
IBM이 1973년에 도입한 3740 데이터 입력 시스템은 8인치 단면 플로피 디스크, IBM의 "Type 1" 디스켓에 대한 기본적인 미디어 표준을 만들었다. 이는 많은 소규모 애플리케이션에서 저렴하고 이동 가능한 직접 접근 저장 장치에 대한 요구 사항이 빠르게 증가하면서 드라이브 및 컨트롤러 출하량이 급증하는 결과를 낳았다.[3]특수 목적의 집적 회로 버전이 도입되기 전까지, 대부분의 FDC는 40개 이상의 IC로 구현된 하나 이상의 인쇄 회로 기판으로 구성되었다.[4] 이러한 FDC의 예는 다음과 같다.
플로피 디스크는 데이터를 일련의 값의 변화로 저장하며, 이는 디스크 표면이 드라이브 헤드를 지날 때 전압을 유도한다. 이 전압 변화의 타이밍이 원래 데이터의 1과 0을 나타내는데, 컨트롤러는 쓰기 시 데이터를 극성 패턴으로 변환하고 읽기 시 이를 다시 생성한다.[4]
특수 목적의 집적 회로로 구현된 최초의 FDC는 1976년 7월 19일에 발표된 Western Digital FD1771이다.[14][15] 초기 설계는 단일 형식을 지원하고 추가 회로가 필요했지만, 시간이 지남에 따라 이 설계는 다중 소스가 되었고 진화하여 많은 형식을 지원하고 외부 회로를 최소화했다.
NEC μPD765는 1978년에 발표되었으며,[16] 1979년에 NEC는 디지털 PLL을 통합한 μPD765와 소프트웨어 호환되는 μPD72068을 출시했다.[17] μPD765는 최초의 IBM PC (1981년)에 채택되면서 준 업계 표준이 되었으며, FDC는 지원 회로와 함께 자체 어댑터 카드에 물리적으로 위치했다. 인텔과 같은 다른 벤더들도 호환 부품을 생산했다. 이 설계는 시간이 지남에 따라 칩에 거의 완전한 FDC를 제공하는 제품군으로 발전했다.[18]
1986년 3월, 샤프는 FDC LH0110을 상용화했다.[19]
1987년 초, 인텔은 업계 표준 PC 컴퓨터에서 사용할 수 있는 82072 CHMOS 고집적 플로피 디스크 컨트롤러를 출시했다.[20][21]
궁극적으로 대부분의 컴퓨터 시스템에서 FDC는 Super I/O 칩 또는 사우스브리지 칩의 일부가 되었다.[18][22][23] 그러나 나중에 마더보드에서 플로피 디스크가 개인용 컴퓨터 사용자에 의해 단계적으로 폐지되면서 이 인터페이스는 제거되었다. 일부 제조업체는 USB 기반 플로피 디스크 컨트롤러를 개발했다.[24]
3. FDC의 기능 및 작동 방식
데이터 저장은 타이밍에 기반하며, 이는 기계적, 전기적 방해에 취약하다. 따라서 클럭 신호와 같은 기준 신호가 필요한데, 디스크 자체에서 클럭 신호를 생성하기 위해 데이터는 클럭 신호가 포함된 형태로 수정되어 저장된다. 읽을 때는 클럭 복구를 통해 원래 신호를 복원한다. 일부 컨트롤러는 이러한 인코딩을 외부에서 수행하지만, 대부분은 디지털 주파수 변조(FM) 및 변형 주파수 변조(MFM)과 같은 표준 인코딩을 사용한다.
컨트롤러는 드라이브 헤드를 이동시키고, 위치를 추적하며, 0번 트랙으로 되돌리는 등 드라이브 메커니즘을 제어한다. 또한, 트랙 수, 트랙당 섹터 수, 섹터당 바이트 수 등의 입력을 기반으로 디스크를 포맷하기도 한다.
FDC는 호스트 시스템과의 연결을 통해 완전한 시스템을 이룬다. 애플 II나 IBM PC와 같은 시스템에서는 호스트 마이크로프로세서의 소프트웨어가 컨트롤러를 제어하며, 확장 카드를 통해 프로세서에 직접 연결된다. 코모도어 64나 Atari 8-비트 컴퓨터와 같은 시스템에서는 MOS 6507 또는 Zilog Z80과 같은 별도의 프로세서가 드라이브 내부에 사용되어 호스트 CPU와의 통신을 담당한다.
FDC 기능의 대부분은 집적 회로에서 수행되지만, 일부는 외부 하드웨어 회로에서 수행된다.
3. 1. FDC의 주요 기능
플로피 디스크에 데이터를 저장하고 읽는 과정은 정밀한 타이밍을 요구하며, 이는 기계적 및 전기적 요인에 의해 쉽게 영향을 받는다. 따라서 안정적인 데이터 읽기를 위해 클럭 신호와 같은 기준 신호가 필요하다. 디스크 자체에서 클럭 신호를 생성하기 위해, 원래 데이터는 클럭 정보가 포함된 형태로 변환되어 저장되며, 읽을 때는 클럭 복구 기술을 통해 원래 신호를 복원한다. 많은 FDC는 디지털 주파수 변조(FM) 및 변형 주파수 변조(MFM)과 같은 표준 데이터 인코딩 방식을 사용한다.
FDC는 디스크 드라이브 메커니즘을 제어하는 다양한 기능도 수행한다. 여기에는 다음이 포함된다.
FDC는 호스트 시스템과의 연결을 통해 완전한 시스템을 이룬다. 애플 II나 IBM PC와 같은 시스템에서는 호스트 마이크로프로세서에서 실행되는 소프트웨어가 FDC를 제어하며, 확장 카드를 통해 프로세서에 직접 연결된다. 반면, 코모도어 64나 Atari 8-비트 컴퓨터와 같은 시스템에서는 별도의 프로세서(MOS 6507, Zilog Z80 등)가 드라이브 내부에 사용되어 호스트 CPU와의 통신을 담당한다.
IBM PC는 어댑터 카드를 통해 최대 4개의 드라이브를 지원했으며, 직접 메모리 접근(DMA) 채널 2와 인터럽트 요청(IRQ) 6을 사용하여 드라이브에 대한 DMA를 수행했다. 일반적인 FDC는 산업 표준 아키텍처(ISA) 버스 또는 유사한 버스를 통해 CPU와 통신하고, 34핀 리본 케이블로 플로피 디스크 드라이브와 통신한다. 최근에는 FDC가 슈퍼 I/O 칩에 통합되어 LPC 버스를 통해 통신하는 방식이 일반적이다.
center
FDC 기능의 대부분은 집적 회로에서 수행되지만, 일부는 외부 하드웨어 회로에서 수행된다. 각 구성 요소에서 수행되는 기능은 다음과 같다.
FDC IC 및 FDD(플로피 디스크 드라이브)에 대한 정보를 읽는 데 사용되는 포트는 다음과 같은 정보를 나타낸다.
비트 | 표현 |
---|---|
0 | FDD 0: 탐색 모드 |
1 | FDD 1: 탐색 모드 |
2 | FDD 2: 탐색 모드 |
3 | FDD 3: 탐색 모드 |
4 | FDC 사용 중; 읽기/쓰기 명령 진행 중 |
5 | 비-DMA 모드 |
6 | DIO; FDC IC와 CPU 간 데이터 전송 방향 |
7 | MQR; 데이터 레지스터 준비 상태 |
설명 | |
---|---|
MQR | 1 = 데이터 레지스터 준비 완료, 0 = 데이터 레지스터 준비 안 됨 |
DIO | 1 = 컨트롤러가 CPU에 대한 데이터를 가지고 있음, 0 = 컨트롤러가 CPU로부터 데이터를 예상 |
비-DMA | 1 = 컨트롤러가 DMA 모드가 아님, 0 = 컨트롤러가 DMA 모드임 |
FDC 사용 중 | 1 = 사용 중, 0 = 사용 안 함 |
FDD 0,1,2,3 | 1 = 실행 중, 0 = 실행 안 함 |
소프트웨어에서 특정 FDD 및 FDC IC 기능을 제어하는 데 사용되는 포트의 비트 할당은 다음과 같다.
비트 | 나타내는 것 |
---|---|
0 및 1 | 선택할 장치 번호 |
2 | FDC IC 재설정 (Low) |
3 | FDC 인터럽트 및 DMA 요청 신호 활성화 |
4 ~ 7 | 각각 디스크 드라이브 0, 1, 2 또는 3의 모터 켜기 |
3. 2. FDC 작동 방식
플로피 디스크는 이진 데이터를 일련의 값으로 저장하지 않고, 값의 일련의 '변화'로 저장한다. 자성 기록 매체의 극성으로 기록된 이러한 각 변화는 디스크 표면이 지나갈 때 드라이브 헤드에 전압을 유도한다. 이 극성 변화의 타이밍과 그 결과로 발생하는 전압의 급증이 원래 데이터의 1과 0을 나타낸다. 컨트롤러의 기능 중 하나는 쓰기 시 원래 데이터를 적절한 극성 패턴으로 바꾸고, 읽기 시 이를 다시 생성하는 것이다.저장은 타이밍을 기반으로 하며, 그 타이밍은 기계적 및 전기적 방해에 쉽게 영향을 받는다. 따라서 데이터를 정확하게 읽으려면 클럭 신호와 같은 일종의 기준 신호가 필요하다. 디스크 상의 타이밍은 끊임없이 변화하므로, 클럭 신호는 디스크 자체에서 제공해야 한다. 이를 위해 원래 데이터는 클럭 신호가 데이터에 포함되도록 추가 전환으로 수정된 다음, 읽기 시 클럭 복구를 사용하여 원래 신호를 다시 생성한다. 일부 컨트롤러는 이러한 인코딩을 외부에서 수행해야 하지만, 대부분의 설계는 디지털 주파수 변조(FM) 및 변형 주파수 변조(MFM)와 같은 표준 인코딩을 제공한다.
컨트롤러는 또한 드라이브 메커니즘 자체를 제어하기 위한 다른 여러 기능을 제공한다. 여기에는 일반적으로 디스크의 개별 트랙 위로 드라이브 헤드를 이동시키고, 헤드의 위치를 추적하고, 0으로 되돌리는 기능, 그리고 때로는 트랙 수, 트랙당 섹터 수 및 섹터당 바이트 수와 같은 간단한 입력을 기반으로 디스크를 포맷하는 기능이 포함된다.
완전한 시스템을 만들기 위해 컨트롤러는 컨트롤러와 호스트 시스템 간의 다리 역할을 하는 추가 회로 또는 소프트웨어와 결합되어야 한다. 애플 II 및 IBM PC와 같은 일부 시스템에서는 컴퓨터의 호스트 마이크로프로세서에서 실행되는 소프트웨어로 제어되며, 드라이브 인터페이스는 확장 카드를 사용하여 프로세서에 직접 연결된다. 코모도어 64 및 Atari 8-비트 컴퓨터와 같은 다른 시스템에서는 컨트롤러에서 호스트 CPU로 직접적인 경로가 없으며, 이 목적을 위해 MOS 6507 또는 Zilog Z80과 같은 두 번째 프로세서가 드라이브 내부에 사용된다.
플로피 디스크 컨트롤러 (FDC) 기능의 대부분은 집적 회로에서 수행되지만, 일부는 외부 하드웨어 회로에서 수행된다. 각 구성 요소에서 수행되는 기능 목록은 아래와 같다.
- 데이터 비트를 FM, MFM, M²FM, 또는 GCR 형식으로 변환하여 기록할 수 있도록 한다.
- 탐색, 읽기, 쓰기, 포맷 등과 같은 명령을 해석하고 실행한다.
- 체크섬 생성 및 검증과 같은 CRC를 사용한 오류 감지
- PLL를 사용하여 데이터를 동기화한다.
이 포트는 소프트웨어가 FDC IC 및 FDD(플로피 디스크 드라이브)에 대한 전체 상태 정보를 읽는 데 사용된다. 소프트웨어는 플로피 디스크 작업을 시작하기 전에 이 포트를 읽어 FDC 및 디스크 드라이브의 준비 상태를 확인하여 이전에 시작된 명령의 상태를 확인한다. 이 레지스터의 각 비트는 다음을 나타낸다.
비트 | 표현 |
---|---|
0 | FDD 0: 탐색 모드에서 사용 중 |
1 | FDD 1: 탐색 모드에서 사용 중 |
2 | FDD 2: 탐색 모드에서 사용 중 |
3 | FDD 3: 탐색 모드에서 사용 중 |
4 | FDC 사용 중; 읽기/쓰기 명령 진행 중 |
5 | 비-DMA 모드 |
6 | DIO; FDC IC와 CPU 간의 데이터 전송 방향을 나타냅니다. |
7 | MQR; 데이터 레지스터가 데이터 전송 준비가 되었음을 나타냅니다. |
설명 | |
---|---|
MQR | 1 = 데이터 레지스터 준비 완료, 0 = 데이터 레지스터 준비 안 됨 |
DIO | 1 = 컨트롤러가 CPU에 대한 데이터를 가지고 있음, 0 = 컨트롤러가 CPU로부터 데이터를 예상 |
비-DMA | 1 = 컨트롤러가 DMA 모드가 아님, 0 = 컨트롤러가 DMA 모드임 |
FDC 사용 중 | 1 = 사용 중, 0 = 사용 안 함 |
FDD 0,1,2,3 | 1 = 실행 중, 0 = 실행 안 함 |
4. 일반적인 x86-PC FDC의 입출력 포트
(16진수)