1541은 왜 그렇게 느렸습니까?
64와 함께 사용하기 위해 판매 된 Commodore 1541 플로피 디스크 드라이브는 역사적 및 기술적 인 이유로 인해 느리게 악명 높았습니다 .
마케팅은 Vic-20과 함께 판매 된 플로피 드라이브 인 1540과의 호환성을 주장했습니다. 이는 6522 VIA 칩의 시프트 레지스터가 작동하지 않아 느려서 한 바이트 대신 한 번에 조금씩 전송해야했습니다. 시간.
그런 다음 Vic-20과 달리 64의 비디오 칩이 8 개의 활성 스캔 라인 중 하나를 버스로 완전히 차지해야하기 때문에 더 느려 야했습니다.
좋습니다. 문제를 완화 할 수있는 개발 시간이없는이 두 가지 요소의 최악의 조합을 고려할 때 드라이브가 수평 블랭크 당 1 비트 = 63 마이크로 초 만 전송할 수 있다는 것을 알 수 있습니다. 1 / (63e-6) = 15873 비트 / 초 = 1984 바이트 / 초.
그러나 실제 속도는 400 바이트 / 초에 불과했습니다 .
역사적, 기술적 문제의 불행한 조합에도 불구하고 실제 속도가 가능해 보이는 것의 5 분의 1에 불과한 이유는 무엇입니까?
답변
드라이브는 수평 블랭크 당 1 비트 = 63 마이크로 초 만 전송할 수 있습니다. 1 / (63e-6) = 15873 비트 / 초 = 1984 바이트 / 초.
그것은 바이트 내에서 전송되는 동안의 비트 전송률이지만 바이트는 프레임 화되고 핸드 쉐이킹되어 바이트 당 평균 160µs가 추가됩니다. 결과는 (63 * 8) + 160 µs
, 또는 바이트 당 ~ 664 µs입니다. 따라서 상위 전송 속도는 1500 바이트 / 초 이하입니다.
위의 숫자는 절대적인 최소값이며, 바이트 사이의 시간은 1000 µs까지 길 수 있으며 여전히 사양 내에 있습니다. 추가 턴어라운드 시간은 명령 앞과 블록 / 명령 사이에 있습니다. 다음으로 1541은 반응하고 대응할 시간이 필요합니다. 그리고 마지막으로 C64 측은 순수한 비트 전송 이전의 관리도 필요합니다. 이 모든 것이 합산됩니다.
하지만 실제 속도는 400 바이트 / 초에 불과했습니다.
다른 모든 것보다 먼저이 400 Bytes / s는 실제 FD 드라이브에서 읽는 것에 관한 것임을 명심하는 것이 중요합니다. 실제 머리 움직임, 검색 대기 시간, 전송 및 회전으로. 자주 사용되는 테스트는 185 블록 프로그램을 읽는 것인데, 이는 최소한 10 개의 트랙 변경 등을 의미합니다.
기계식 드라이브없이 수정되지 않은 C64 (비속 로더, 모든 원래 루틴 사용)를 사용하는 실제 전송 속도에 대한 좋은 벤치 마크는 SD2IEC 인터페이스 일 수 있습니다 . 평균 처리량은 650 Bytes / s 입니다. SD2IEC는 본질적으로 직렬 IEC를 직접 처리하는 8MHz에서 실행되는 Atmel ATMega입니다. 응답 및 전송 시간은 가능한 최대에 가깝습니다. SD / MMC에서 읽는 것은 기계적 움직임, 검색 대기 시간 및 SD / MMC에서 컨트롤러 RAM으로의 고속 데이터 전송을 수행하지 않습니다.