Lavr wrote:Попов приводит конкретные временные интервалы, их можно при желании проверить
Вот я и хочу сказать, что цифры не стыкуются. Конечно, я за десятки лет многое позабыл и могу что-то упускать.
Сергей Попов wrote:Контроллер одинарной плотности выдает/принимает 1 байт за 32 мкс. А на процессоре с тактовой 1,77 МГц мне не хватало для приема и записи в буфер с индексацией указателя (ПДП-то не было!) буквально двух-трех микросекунд
Тут надо подумать, посчитать и сравнить. Тут явная нестыковка с цифрами.
Потому что одинарную плотность, т.е FM с тем же кварцем 8 МГЦ, Е.Седов получил на РК86, даже с работающим ПДП и процессором на клоке 1.77 МГЦ без особых проблем (там даже остался ещё некоторый запас, потому что мне удавалось форматировать трек не только на 5 секторов, но и на 6 секторов по 512 байт, немного подняв кварц КНГМД и сократив межсекторный GAP, выигрывая этим на каждом секторе несколько десятков байтов). А ПДП в РК-КНГМД работает в момент чтения сектора, т.к пауза между запросами ПДП намного короче, чем время чтения одного сектора.
Считайте сами, колесо крутится 300 об/мин, т.е 5 оборотов в секунду. Трек целиком проворачивается за 200 МСЕК. Значит на каждый из 5 секторов трека приходится 200:5= 40 МСЕК. ПДП пересылает 80 байтов за время в 3.5 периода строчной развёртки, т.е 3.5*0.064=0.224 МСЕК (затем в запросах ПДП перерыв, в лучшем случае на 6.5 строчных периодов). За 40 МСЕК, пока идёт поток данных одного сектора проходят многие сотни циклов ПДП.
ПДП делает пересылку пачками по 8 байтов, на что уходит 32 маш.такта (плюс ещё несколько тактов на вхождение и выход из режима HOLD), что при клоке 1.77 длится ~18 МКСЕК. Т.е у РК86 время остающееся на считывание байта резко падает. В худшем случае из 32 МКСЕК ПДП забирает все 18 МКСЕК. Это равноценно тому, что средняя скорость CPU 1.77 на время считывания байта падает более, чем вдвое. Т.е реальная скорость CPU, не равна пиковой скорости в 1.77 МГЦ, и даже не равна средней скорости в ~1.3 МГЦ, а еще ниже.
И этой скорости хватает на одинарную плотность, что согласуется и с работой ВГ93 в форматах DD/SD. Там для формата DD - минимальная скорость CPU, как упоминал выше, это 2.4 МГЦ, а для SD (single Density), хватает и 1.2 МГЦ. Но там просто обычное (без аппаратных извратов) считывание готовности в регистре статуса, ещё и потеря на маскирование для выделения нужных битов. В РК есть и программные хитрости, перед чтением/записью сектора ВГ75 перепрограммируется (в него кидается байт 25H, что увеличивает паузу между запросами ПДП). Благодаря этому, даже сильно тормозясь ПДП, РК успевает обслужить очередной байт из КНГМД.
С.Попов применял i8271, а не WD1793/MB8876A (это иностранные прототипы ВГ93), про него я ничего не знаю, но думаю, что требования к скорости CPU там д.быть примерно те же. А он пишет именно про одинарную плотность и что речь об этом, указанный объём диска в 160 кб это чётко подтверждает. Для такой скорости потока данных даже не нужна БИС контроллера. В дисководе Apple-II форматная ёмкость 140 кб (это потому, что там программная упаковка битов, 6 битов в байте), в комодоровских КНГМД 170 кб читаются 6502 с клоком 1 МГЦ, что эквивалентно КР580 на клоке 2 МГЦ.
Это я всё к тому, что для одинарной плотности проблемы нехватки скорости при клоке в 2 МГЦ не должны быть столь остры. Сами подумайте, Л.Афанасьев и
makbar при том же клоке в 2 МГЦ сумели читать/писать не одинарную, а даже двойную плотность. А для одинарной плотности скоростные проблемы в 2 раза меньше.
Правда и РК-КНГМД, и
makbar используют чуть более эффективные способы проверки готовности, чем подвеска CPU в WAIT. Например, в РК-КНГМД для оценки флага используется команда INC (HL), когда HL указывает на порт, где готовность в 7-м бите, у
makbar-а, если мнип - XOR (HL) (не помню точно, искать исходник долго). Почему-то Л.Афанасьев считал, что подвеска CPU в HOLD выгоднее, чем его подвеска в WAIT. Может быть С.Попов забыл и у него был такт КР580 всего 1 МГЦ. Но нет полной подпрограммы С.Попова, как проверить? Похоже он потерял скорость на командах IN/OUT, команда LD A,(HL) намного быстрее. Потому, например, если в ОРИОН КНГМД подключить не в область памяти, а в область портов IN/OUT, то для работы КНГМД требуется реальный такт CPU не 2.4 МГЦ, а 2.8 МГЦ.
Lavr wrote:А вот про "никому", пожалуй, дописывать не следует, честнее было бы дописать про себя лично
Ну хорошо, именно Я не знал (а также многие десятки компетентных инженеров разрабатывающих микроконтроллеры с разных городов страны, с которыми я имел дело на работе, это тоже не знали и десятки местных радиолюбителей с которыми я общался, это тоже не знали). Вы хотите сказать, что вы знали? Откуда же?
Lavr wrote:благодаря Попову и таким же людям, как он, это стало известно мне и другим людям
Покажите хоть одного, кому это стало известно (не в 2016-м, а в 80-тые годы) и хоть, чем-то помогло. На самом деле, когда в 1989-92 годах любители озадачились дисководом, С.Попов давно уже отошёл от Микро-80, а к РК86, и тем более к Специалисту, дисковод не подключал и свои идеи не опубликовал. Так что вы снова все эти намёки на нерадивость в поиске информации написали мимо.
Об опытах С.Попова ничего нигде нельзя было прочитать до 2016 года. Как же можно упрекать людей, что они этого не знали, они же не телепаты? С.Попову может БИС контроллера привёз знакомый дипломат, но другим это было недоступно. До конца 80-тых нЕгде было взять ВГ93, даже в Корвет их отпускали по спискам министерств, считая поштучно.
А дописываю посты, точнее доредактирую, потому что я малограмотный и очень быстро печатаю и отчего возникает огромное число ошибок и опечаток. И я вынужден после перечитывать и исправлять их. А если, кто-то сразу делает коммент, то все последующие исправления фиксируются в счётчике исправлений. Правильнее было бы включать счётчик час спустя или на другой день.