Я же выкладывал цифры. Потоковое чтение, увы, не выходит. Цикл из трех команд: 1$: DEC R5 / TSTB @R3 / BPL 1$ успевает выполниться 64 раза, прежде, чем придет сигнал готовности. К тому же я не уверен, что К СИП Н приходит сразу - там очень даже могут быть 2-3-4 такта задержки, т.е. цикл шины по добыванию CSR моей железки может быть растянут. Надо будет все-таки вытащить из кладовки осцилограф и глянуть. Хотя это и немного - переслать тот же блок в память - это 256 повторений, хоть цикл и на команду короче.
А с записью все еще хуже - аналогичный цикл при записи блока успевает выполниться 425 раз. То есть запись идет заметно дольше, чем пересылка блока из ДВК в контроллер.Хотя, опять же, все это относительно - время перемещения головок винчестера должно быть сильно больше - у меня получается порядок единиц миллисекунд, а головки бегут десятки мс. Но, как я и говорил, задержки хоть и невелики, но сильно больше тайм-аута МПИ.
Ладно, это лирика. А теперь серьезный вопрос. Какие мне взять адрес и вектор для этого чуда? Мне, в принципе, все равно, что прописывать в ПЗУху и программу. А что именно?
- - - Добавлено - - -
Начал продумывать прерывания, увы, программно, опять же, похоже, не успеваю, придется лепить аппаратный довесок. Вроде-бы укладываюсь в один дополнительный триггер 7474 aka 155ТМ2. Хвала всевышнему,один свободный толерантный вывод в GPIOA у меня остался...
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Ну вот, в варианте без прерываний работает в полном объеме.Сейчас размышляю над аппаратными "довесками" на предмет прерываний, а, заодно, и аппаратной сигнализации "Думаю, прошу не мешать" - программная реализация этого дела мне что-то не нравится, а аппаратная - плюс пара ЛЭ к имеющемуся оборудованию.Скрытый текст
Код:@ 173000 @177724G HD v4 Boot-I-Cold boot.. HD (177720) disk driver v4.0 2017 SL V08.00 [SW] Сторожевых С.В. 1988 RT-11SJ (Y) V05.04 G .SET USR NOSWAP .SET EXIT NOSWAP .SET TT SCOPE .SET SL ON .DAY Время Дата 00:00:00 25-Ноя-2018, Воскресенье .SH MEM Address Module Words ------- ------ ----- 160000 IOPAGE 4096. 157276 HD 161. 146450 RMON 2251. 142132 SL 1127. 132066 USR 2066. 001000 ..BG.. 22811. .SH CONF RT-11SJ (Y) V05.04 G Booted from HD0:RT11SJ USR is set NOSWAP EXIT is set NOSWAP KMON is set NOIND TT is set NOQUIET ERROR is set ERROR SL is set ON EDIT is set KED KMON nesting depth is 3 LSI 11 or PDP 11/03 Processor 56KB of memory Extended Instruction Set (EIS) Floating Instruction Set (FIS) 50 Cycle System Clock No SYSGEN options enabled .[свернуть]
- - - Добавлено - - -
Да, машинка, если что - 1201.02 (ВМ2).
Patron, form, так какой адрес мне взять? 177710 ? 177730 ? А вектор? Я ведь ориентируюсь только в нашем оборудовании, и то не всём, а оригинального DEC'овского вообще не знаю.
Последний раз редактировалось AFZ; 26.11.2018 в 12:30.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
ОК. Как только достану из кладовки 386-ю машинку с "Кротом", сразу перепишу. Спасибо!
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ну вот, вроде-бы завёл.
Скрытый текст
Код:000002 @177734G AZ v4 Boot-I-Cold boot.. AZ (177730) disk driver v4.0 2018 SL V08.00 [SW] Сторожевых С.В. 1988 RT-11SJ (Y) V05.04 G .SET USR NOSWAP .SET EXIT NOSWAP .SET TT SCOPE .SET SL ON .DAY Время Дата 00:00:00 12-Дек-2018, Среда .SH M Address Module Words ------- ------ ----- 160000 IOPAGE 4096. 157304 AZ 158. 146456 RMON 2251. 142140 SL 1127. 132074 USR 2066. 001000 ..BG.. 22814. .SH CONF RT-11SJ (Y) V05.04 G Booted from AZ0:RT11SJ USR is set NOSWAP EXIT is set NOSWAP KMON is set NOIND TT is set NOQUIET ERROR is set ERROR SL is set ON EDIT is set KED KMON nesting depth is 3 LSI 11 or PDP 11/03 Processor 56KB of memory Extended Instruction Set (EIS) Floating Instruction Set (FIS) 50 Cycle System Clock No SYSGEN options enabled .SH SU LD0 is AZ0:LD001.DSK[5000.] .DIR LD0: 12-Dec-2018 0 Files, 0 Blocks 4962 Free blocks .DIR 12-Dec-2018 RT11SJ.SYS 78 16-Dec-2012 SWAP .SYS 30 25-Mar-2003 HX .SYS 6 06-May-2015 TT .SYS 2 23-Jan-1980 SL .SYS 10 28-Dec-1987 EM .SYS 4 04-Mar-2012 DIR .SAV 19 04-Jul-2002 PIP .SAV 30 31-Oct-1998 DUMP .SAV 9 27-Dec-1983 DUP .SAV 45 27-Dec-1983 UCL .SAV 16 18-Jan-1988 UCL .DAT 9 04-Dec-2011 HAND .SAV 8 08-Nov-2011 HANDLE.SAV 17 06-Sep-1991 EDIK .SAV 22 19-Mar-2003 DAY .SAV 4 13-Apr-2013 DESS .SAV 19 04-Mar-1994 AZ .SYS 3 12-Dec-2018 MEMORY.SAV 2 03-Sep-1982 KLOP .SAV 13 21-Nov-1988 IND .SAV 58 19-Dec-1988 TESTMY.SAV 16 27-Dec-1988 HZ .SYS 3 24-Nov-2018 SPEED .SAV 3P 26-Apr-1989 RESORC.SAV 25 01-Mar-2012 STARTS.COM 1 30-Dec-2014 DHRY .SAV 25 08-Feb-2015 HD .SYS 3 25-Nov-2018 DW .SYS 4 02-Feb-1990 MACRO .SAV 63 21-Dec-2012 CREF .SAV 6 31-Oct-1998 SYSMAC.SML 92 31-Oct-1998 LP .SYS 2 19-Dec-1988 MY .SYS 3 07-Dec-1989 MX .SYS 9 15-Dec-2012 VM .SYS 3 19-Dec-1988 RT11XM.SYS 107 19-Dec-1988 DWX .SYS 5 15-Jun-1988 MYX .SYS 3 07-Jul-1988 MXX .SYS 10 01-Sep-1989 VMX .SYS 3 17-Apr-1989 LPX .SYS 2 19-Dec-1988 LDX .SYS 8 19-Dec-1988 HDX .SYS 3 09-Feb-2016 HXX .SYS 6 09-Feb-2016 BINCOM.SAV 25 21-Apr-1998 BASIC .SAV 60 15-Feb-2015 LINK .SAV 59 31-Oct-1998 HELP .SAV 143 19-Dec-1988 K52 .SAV 54 19-Dec-1988 TESTDW.SAV 47 27-Dec-1988 TDW .SAV 51 08-Mar-1990 XONIX .SAV 13 01-Sep-1992 TETRIS.SAV 28 04-Apr-1985 DESS .HLP 26 10-Dec-1987 EDIK .HLP 32 06-May-1988 LD001 .DSK 5000P 25-Nov-2018 KOMP8 .SAV 5 21-May-1987 LD .SYS 8 18-Jan-1988 59 Files, 6360 Blocks 59107 Free blocks .DIR AZ1: 12-Dec-2018 TT .SYS 2P 12-Mar-1985 MY .SYS 3P 27-Dec-1988 KZ .SYS 3P 22-Mar-1990 DW .SYS 4P 27-Dec-1988 VM .SYS 3P 31-Dec-1988 SL1 .SYS 10P 06-Mar-1987 LD .SYS 8P 08-Dec-1986 RK .SYS 3P 06-Sep-1989 SL .SYS 10P 26-Oct-1988 RT11DS.SYS 72P 21-Aug-1986 SWAP .SYS 27P 25-Oct-1985 MT .SYS 4 10-Sep-1991 NL .SYS 2P 13-Oct-1982 BINCOM.SAV 24P 24-Nov-1987 KOMP8 .SAV 5 21-May-1987 FORMAT.SAV 24 25-Oct-1986 ZCHR .SAV 2 03-Feb-1990 PIP .SAV 29 12-Mar-1985 DESS .SAV 19P 24-Apr-1987 RESORC.SAV 22 30-Sep-1987 DIR .SAV 19 22-Mar-1986 LIBR .SAV 24P 24-Nov-1987 SPEED .SAV 3P 26-Apr-1989 SRCCOM.SAV 26P 24-Nov-1987 EDK .SAV 22 27-Dec-1988 DUP .SAV 45 30-Sep-1987 VRF .SAV 3 19-Apr-1984 DUMP .SAV 8 16-Jan-1988 MYFORM.SAV 5 14-Feb-1986 REG .SAV 1 05-Mar-1991 MACRO .SAV 60 12-Mar-1983 LINK .SAV 49 12-Mar-1983 QUEMAN.SAV 15 12-Mar-1983 BAS .SAV 45P 20-Jan-1990 DMP .SAV 2 25-Sep-1985 DAY .SAV 4P 14-Feb-1986 KMATCH.SAV 5 06-Jun-1987 CREF .SAV 6P 24-Nov-1987 IVP .SAV 4 04-Apr-1992 KCGD .SAV 13 04-Oct-1989 SP21 .SAV 21 03-Jun-1985 RENDZU.SAV 23P 28-Dec-1983 XCUBE .SAV 7 06-Aug-1991 WALL .SAV 7 05-Jun-1989 BASIC .SAV 56 13-Oct-1982 HELP .SAV 161P 05-Sep-1986 PITON .SAV 8 02-Mar-1991 STAKAN.SAV 27 10-Nov-1986 SYSMAC.SML 49 29-Oct-1985 HD .SYS 3 28-Sep-2017 AZ .SYS 3 12-Dec-2018 51 Files, 1000 Blocks 64467 Free blocks .[свернуть]
Вариант без прерываний, чистая "прополка".
Основной МК, как я и говорил, 100-ногий STM32F103VET6, он сам разбирается с шиной МПИ, принимает с нее команды, выдает состояние, обменивается данными, и, при включенной оптимизации по скорости, вполне все успевает. Кроме, естественно, обмена с SD. Поэтому, на время обмена с СД-шкой, я подключаю заглушку "Думаю, прошу не мешать".
Её я пока сделал на втором STM32, попроще - STM32F103C8T6, 48-ногая дешевка. Оно, вроде-бы, работает, но мне активно не нравится, надо будет сделать или аппаратную, или на мелкой ПЛИС, так, что вариант еще не окончательный. Но работает.
Пока поддерживаются два псевдодиска - AZ0: и AZ1:, представленные на СД-шке двумя файлами типа dsk. По-простому, залил на СД-шку два файл-образа с RT-11, залил драйвер AZ.SYS на файл-образ HX.DSK, загрузился с HX:, скопировал AZ.SYS на диски AZ0: и AZ1:, сделал COPY/BOOT и вперед!
Рабочего DW я пока не подключал, мне нечем кормить винчестер. В моем БПС6-1, оказывается, высохли литики, пришлось переделывать и цеплять писюшный АТХ-БП, но я ему еще не доделал нормальную стабилизацию +12В, так, что винты подключать пока не хочу.
Однако, эмулятор Патрона, вроде-бы, соблюдает временнЫе характеристики DW. Так вот, "на глаз", с моего AZ загрузка RT-11 идет заметно быстрее, чем с DW в эмуляторе. Так, что, в принципе, можно не упираться на темы прерываний и DMA, и так неплохо.![]()
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Хотел бы такой себе собрать, а краевой разьем на плате будет для советской корзины или для DEC ковской?
Давно ждал, что кто-то нечто подобное сделает. Молодец
Ну а то, что без прерываний - так конечно получается быстрее чем с прерываниями.
Ведь обмен начинается сразу по готовности. Не уходит время на обработку прерывания.
Конечно тратятся ресурс ЦП в пустую, но для большинства конфигураций реально работающих - не велика потеря.
Для того, чтобы получить бонус от прерываний необходимо пользоваться многозадачностью и(или) асинхронным вводом-выводом. Под RT11 такое специально мало кто пишет. (ну пожалуй только при работе с другими устройствами)
А вот под RSX-11 или чем-то подобным прерывание, а то и ПДП будут иметь большой смысл.
У устройства МХ, на мой взгляд, ситуация гораздо печальнее...
Последний раз редактировалось Alex; 14.12.2018 в 10:41.
Тут другое. Пересылка блока из РД контроллера , т.е. из буфера в ОЗУ контроллера - 768 циклов шины МПИ
А ожидание, пока контроллер прочитает очередной сектор с СД-шки в этот буфер, на время которого имело бы смысл выходить из драйвера и ждать прерывания - порядка 180 циклов шины, т.е. не стоит оно того. С записью хуже, но не намного - там время измеряется где-то 1000-1500 циклов шины, на такое время можно, наверное и выйти. А можно и не выходить.Код:10$: MOV @R3,(R1)+ SOB R2,1$
Или в TSX-11. Впрочем, не системным диском единым жива операционка...![]()
Нет, о ПДП я потихоньку размышляю, но для того, чтобы по-быстрому слить на SD-шку содержимое винчестеров, сойдет и так...
- - - Добавлено - - -
Да, у меня пока не все гладко с заглушкой "Думаю, прошу не мешать". Я тут почитал всякое разное и решил-таки использовать ПЛИС. Конкретно, вроде-бы, для моих целей годится ATF22V10B, я выписал их с Али и за те полтора-два месяца, пока они доползут, хочу освоить методы сочинения прошивок для них. Отписался тут (почти) рядом, задал списочек вопросов, пока молчат, как партизаны на допросе.![]()
Последний раз редактировалось AFZ; 14.12.2018 в 19:59.
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)