하드 드라이브는 데이터가 시작되는 위치를 어떻게 알 수 있습니까? [복제]


14

나는 항상 하드 드라이브가 어떻게 데이터의 첫 비트를 찾는 지 궁금했습니다.

하드 드라이브가 회전 할 때 판독 헤드가 다른 위치로 이동할 때까지 판독 된 데이터는 원형 데이터 스트림이어야합니다.

그러나 이러한 순환 스트림에서 드라이브는 첫 번째 비트와 마지막 비트가 어디에 있는지 알기 때문에 올바른 순서로 데이터를 전달할 수 있습니까?


BTW (드물게 언급되었지만 현저한) 트랙의 시작과 끝을 나타내는 색인 표시 가 있습니다. 디스크 컨트롤러가 인덱스를 두 번째로 만나면 트랙의 모든 섹터를 읽었 음을 나타냅니다.
톱밥

답변:


2

디스크에서 읽습니다.

디스크의 데이터는 @psusi가 말한 것처럼 구조화 될뿐만 아니라 인코딩됩니다. 인코딩은 기록 된 데이터가 섹터 표제의 위치 마커에 대해 혼동 될 수 없도록하여 목표 위치 마커가 발견 될 때까지 순환 스트림을 읽을 수 있습니다.

내가 이해 하듯이, 현대 하드 드라이브는 그렇게하지 않습니다. 그들은 전체 원을 버퍼로 읽어 각 섹터의 위치를 ​​추적하고 버퍼를 사용하여 요청 된 데이터를 다시 보냅니다.

최신 정보:

자기 매체는 1) 자체적으로 변하지 않으며, 2) 기록 장치는 표면의 어느 지점에서든 자기장의 방향을 변경할 수 있습니다. 매체를 읽을 때 센서는 필드가 센서를 향하는 위치와 필드가 센서를 향하지 않는 위치를 감지합니다. 센서가 표면을 가로 질러 이동함에 따라 이러한 극성 전이의 타이밍을 감지합니다. 디코딩의 첫 번째 레이어는 이러한 타이밍을 비트 값으로 변환합니다 . 이 과정에서 물리적으로 필요한 불확실성으로 인해, 인코딩은 동일한 극성의 긴 스트레치를 필요로하지 않아야한다. 즉, RLL ( Run-length limited coding) 이어야합니다 .

하드 드라이브 디자인의 특징은 일반적으로 영업 비밀이지만, 섹터 마커가 섹터 내용에 나타나지 않도록하는 두 가지 방법이 있습니다.

  1. 콘텐츠 데이터를 인코딩하지 않아도되는 특수 값을 허용하는 RLL을 설계하십시오. 이러한 특수 값은 섹터 경계 표시뿐만 아니라 오류 수정 또는 기타 보조 목적으로도 사용될 수 있습니다.

  2. 마커 값만 마커에만 표시되도록 두 번째 인코딩 레이어를 사용하십시오. 이는 URL에서 특수 문자를 "숨길"수 있도록하는 URL 인코딩 과 비슷 하지만 추가 할 수있는 문자 수를 제한하는 것과 같은 추가 제약 조건이 있으므로 base64 encoding 과 비슷 합니다.

따라서, 판독 헤드는 표면을 가로 질러 자기 극성 변화를 검출하고, 그 변화의 타이밍은 대응하는 비트 값 시퀀스 (저장된 데이터를 나타내지 않는 예외적 인 값을 포함 할 수 있음)를 결정하는데 사용되며, 그 시퀀스는 읽고있는 섹터와 해당 섹터의 내용을 결정하십시오. 섹터의 내용이 결정됨에 따라, 데이터는 솔리드 스테이트 버퍼에 저장 및 / 또는 RAM 버퍼에 저장 및 / 또는 요청을 이행하기 위해 다시 전송 될 수있다.


이 인코딩은 허프만 코딩과 같은 것입니까? 누군가가 이것이 하드웨어 레벨에서 어떻게 작동하는지에 대한 명확한 예를 만들 수 있다면 : "헤드는 010111010010111010과 같은 순환 데이터 스트림을 읽습니다. 대답을 받아들이십시오.
uzumaki

하드 드라이브는 추상 데이터를 자기 매체의 물리적 특성으로 인코딩해야하며 결과를 쉽게 처리 할 수 ​​있어야합니다. 허프만 코딩은 하나의 추상 데이터 스트림을 (보통) 더 짧은 추상 데이터 스트림에 매핑합니다 (어드레싱 가능성). 그들은 대부분 관련이 없습니다.
ShadSterling

내 업데이트는 예제를 추가하지 않았지만 RLL 링크를 따르면 몇 가지가 있습니다.
ShadSterling

18

데이터는 1과 0의 임의의 스트림으로 기록되지 않습니다. 섹터로 작성되었습니다. 각 섹터에는 사용자 데이터의 페이로드와 헤더가 있습니다. 헤더에는 오류 수정 코드와 섹터 시작을 식별하는 특수 동기화 필드 및 섹터 번호가 포함되어 있으므로 드라이브가 섹터의 시작을 발견 한시기와 섹터를 알 수 있습니다.


3
일부 참조 또는 링크는이 좋은 답변을 훌륭하게 만듭니다. : D
cat

1
@cat, "컴퓨터 작동 방식"또는 Peter Norton의 "PC 내부"중 하나가 아직 인쇄본으로되어 있다면 아마도 내 책장에있는 몇 가지 새로운 판일 것입니다.
psusi

이것은 질문에 대답하지 않습니다. 문제는 드라이브가 헤더 또는 동기화 필드가 시작되는 위치를 어떻게 알 수 있는지입니다.
Martin Argerami 2016 년

@MartinArgerami-이것은 OP의 오해를 바로 잡고 중요한 부문의 개념을 소개하기 때문에 질문에 대답합니다. 마그네틱 도메인의 읽기 / 쓰기 수준으로 드릴 다운하는 것은 OP IMO에 비해 너무 강해 보입니다. 자세한 내용을 원하면 superuser.com/questions/427554/…
sawdust

1
@ user134593-동기화 바이트는 항상 간격 이후이며 레코드의 첫 바이트입니다. 그들은 단지 레코드의 시작을 나타냅니다. 따라서 디스크 컨트롤러는 페이로드 또는 사용자 데이터와 충돌하거나 혼동되지 않습니다. 당신은 그것이 OP 스트림처럼 비트 스트림이라고 생각하는 것처럼 보이지만 자기 미디어이므로 원하는 지점에서 읽거나 쓸 수는 없습니다.
톱밥

7

Psusi는 정확하지만 (디스크의 데이터는 구조화 되어 있으며 컴퓨터의 다른 부분은 해당 구조의 다른 부분을 사용합니다) 실제로 귀하의 질문에 도달하지는 않습니다.

드라이브는 실제로 "알지"않습니다. 디스크의 마커 (일반적으로 출고시 또는 드라이브 헤드 자체로 기록)를 읽거나 디스크에서 데이터 블록을 읽거나 디스크에 데이터 블록을 쓰거나 디스크의 특정 지점을 알 수있는 저수준 전자 장치가 있습니다. 디스크가 손상되었거나 디스크의 특정 위치로 이동해야합니다. 그것이 "알고있는"모든 것입니다. 판독 헤드는 그 자체로 다른 곳으로 이동하기로 결정하지 않습니다.


2
그러나 더 높은 것은 여전히 ​​하드 드라이브의 일부입니다. (하드 드라이브 외부의 무언가에 의해 명령되는 것, 컴퓨터 외부의 무언가에 의해 명령되는 것, 이것은 형이상학 적으로 지시되는 것이지만, 우리는 그러한 것에 대해 이야기하고 있지 않습니다)
user253751

0

다른 답변 외에도, 하드 디스크는 사용자 데이터 저장을 위해 전혀 사용되지 않고 교정 / 포지셔닝 데이터를 위해 예약 된 하나의 플래터 (실린더 / 헤드 / 섹터 용어에서 "헤드")를 가지고 있습니다. .


3
이것은 내가 들어 본 것이 아니며, 그것에 대한 참조가 있습니까?
ShadSterling

예, 아니요 .. 그건 아니에요
psusi

서보 표면 / 플래터를 말하는 것 같습니다. 그러나 이것이 원래 IBM PC-XT의 ST-506 HDD보다 이전 인 14 "디스크 팩 이후로는 보지 못한 기술입니다. Winchester와 최신 디스크 드라이브는 내장 된 서보를 사용합니다.
sawdust

아 OK, 나는 이것을 오랫동안 들어 본 적이 없지만 블랙 박스 인 현대 디스크에 내려 놓았습니다.
Mark K Cowan

0

당신이 찾고있는 대답은 두 부분으로 구성됩니다.

1) 하드웨어 컨트롤러

2) 파일 시스템

당신이 말했듯이, HDD에서 (SSD와 같은 다른 기술과 달리) 실제 데이터는 패턴 자기장을 유지하는 동심원 고리로 둥근 금속판에 기록됩니다. 이 데이터를 보유한 플래터 위에는 비닐 레코드 플레이어와 같이 데이터를 읽고 쓰기 위해 이동하는 쓰기 헤드가 있습니다. 그것이 움직이는 플래터는 회전을 제어하는 ​​전기 모터에 부착됩니다.

하드웨어 컨트롤러는 운영 체제와 하드 드라이브 간의 인터페이스 역할을합니다. 컨트롤러는 쓰기 헤드의 위치와 플래터의 회전을 읽을 수 있으며이 정보를 사용하여 읽기 및 쓰기를 위해 헤드와 플래터를 배치하는 방법을 결정합니다. 운영 체제의 읽기 및 쓰기 요청을 쓰기 헤드를 이동하고 플래터를 회전시키는 제어 신호로 변환하고 운영 체제에서 들어오는 병렬 데이터를 단일 직렬 데이터 라인으로 변환합니다. 또한이 직렬 회선을 분할하고 각 조각을 넣을 물리적 위치 또는 섹터를 결정하고 파일 시스템이 지정한 방식으로이 정보를 기록합니다.

파일 시스템은 데이터 저장 방법 및 위치를 지정합니다. 컴퓨터 운영 체제는이 파일 시스템을 해석하는 방법을 알고 있으며이 지식을 사용하여 하드웨어 컨트롤러와 적절하게 통신합니다.이 경우 순환 데이터 링을 섹터라고하는 사용 가능한 세그먼트로 분류하고 파일 시스템에 해당 섹터가있는 위치를 알려줍니다. 파일 시스템은 각 섹터에 고유 한 번호 인 주소를 제공하며이 주소는 하드웨어 컨트롤러에 의해 특정 플래터 회전 및 읽기 헤드 위치로 변환되어 읽기 또는 쓰기를 시작합니다.

자세한 내용은이 Wikipedia 기사의 다음 섹션이 매우 유용합니다.

https://en.wikipedia.org/wiki/File_system 소개 및 섹션 3.1 "공간 관리"를 참조 하십시오.

섹션 2.1 "자기 기록"을 참조하십시오 : https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.