|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Last visit was: 15 Jun 2024 14:12
|
It is currently 15 Jun 2024 14:12
|
Порты vs память, слово состояния и т.д.
Author |
Message |
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
возник вопрос - почему практически во всех конструкциях того времени на ВМ80 не использовалось обращение к портам ввода/вывода?
пара логических элементов за кучу адресного пространства вроде бы не большая цена, плюс код быстрее и компактнее
IN #C0h vs LDA #C000h
|
22 Oct 2011 17:05 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
А что, в какой-то из тех конструкций были ВК28? А проц - он только сигналы чтения и записи выводит, без разделения к чему - к памяти или вводу-выводу. Экономили пару микросхем, а вот адресного пространства казалось слишком много. А может, ВК28 были тогда зверским дефицитом? Я не помню.
|
22 Oct 2011 22:23 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 873
|
В Векторе не было ВК28, но порты были. Не сэкономили пару микросхем
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
23 Oct 2011 02:54 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 873
|
И это тоже использовалось в Векторе
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
23 Oct 2011 02:56 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Мне всегда было интересно, каким образом формирует свои выходные сигналы ВК28 - на основе слова состояния, или используя DBIN и /WR процессора. Похоже, что ВК28 использует второй вариант, а ВК38 - первый. И как формируется у ВК28/38 сигнал (вернее, даже три) /INTA - на основе слова состояния или как-то самостоятельно? При получении запроса на прерывание формирует ли процессор три слова состояния, подтверждающих прерывание, или это забота контроллера? Подробностей я нигде не встречал. Похоже, что особой необходимости в ВК28 нет, и бОльшие возможности мог бы обеспечить простой 8-разрядный регистр с тремя состояниями и мощными выходами, данные в который защёлкивались бы сигналом /STSTB. Так, действительно, можно получить ещё 64к стека, отдельного от ОЗУ.
|
23 Oct 2011 03:20 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Несколько удивил твой такой вопрос...
Уж извини, что я вроде как потыкаю этим справочником Шахнова, но просто я им пользуюсь в работе.
Так согласно ему ВК28/38 практически идентичны по схеме, с небольшой разницей в сигналах, но формируют дополнительные сигналы управления сугубо на основе обработки слова состояния STATUS.
Извини, что конкретно не привожу цитату, в чем разница, но если это принципиально интересно - на Шахнова я многократно давал здесь ссылку.
Подробностей как раз в Шахнове достаточно.
/INTA - это практически строб /RD но для операций получения вектора прерывания.
Количество /INTA зависит от первого байта "команды" прерывания.
Если этот байт 0CDH = ( CALL) - это выдаёт обычно контроллер прерывания, то ЦПУ обязан сделать 2 запроса-строба /INTA - что бы получить адрес прерывания - ( CALL AD1AD2).
Если этот байт 0FFH = ( RST7) - это "хитрая" обработка прерывания без контроллера прерывания, когда шина данных подтянута резисторами к +5В. И тогда на адресе 038H должна быть подпрогамма обработки перывания. Естественно, 2 штуки /INTA после RST7 процессор не выдаёт.
То есть 1-й байт прерывания - дожен быть однозначно КОП. А дальше проц обработает этот КОП как положено, только стробом будет этот самый /INTA вместо /RD .
Внутренняя требуха ВК28/38 приводится во многих источниках и можно рассмотреть, как контроллер формирует сигналы управления из сигналов процессора и зафиксированного слова-состояния.
Следует помнить ещё, что сигналы управления ВК28/38 переходят в высокоимпедансное состояние в циклах ПДП.
В "РК-86" ВК28/38 не использовали и пришлось разрешать конфликт стробов /RD, /WR резисторами, как мне помнится.
Last edited by Lavr on 23 Oct 2011 04:28, edited 1 time in total.
|
23 Oct 2011 03:59 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Я редко пользуюсь справочниками в электронном виде, а в бумажном у меня Шахнова, к сожалению, нет. А в каком-то из тех, что есть, писалось, что /INTA формируется контроллером, что и ввело меня в заблуждение.
Непонятно только, почему в контроллере не сделали выходов работы со стеком. С отслеживанием того, куда наползает его вершина, только лишние проблемы. Хотя в те годы, конечно, ОЗУ стоило дорого, и наверное разработчики решили, что оно никогда не подешевеет.
|
23 Oct 2011 06:11 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
|
23 Oct 2011 06:39 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да вроде так оно и есть: /INTA формируется контроллером ВК28/38 - это фактически /RD от процессора, пропущенный через вентиль, управляемый битом " Подтверждение прерывания" из STATUS.
Так что заблуждения я тут особого не вижу...
|
23 Oct 2011 06:50 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Может, я непонятно выразился. У меня были сомнения: будут ли формироваться три сигнала /INTA, если вместо ВК28 применить регистр. В Шахнове тоже написано, что /INTA формирует контроллер, вот я и засомневался, не сам ли он его формирует (т.е. не на основании слова состояния процессора). В описаниях ВМ80 этот момент подробно не описывается.
|
23 Oct 2011 07:18 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Понял тебя. Нет, количество /INTA определяется КОП-ом, выставленным процессору прерыванием. А /INTA только дублирует количество обращений процессора.
Аппаратно нечем проверить - может только b2m сможет, да и то - это будет абстракция...
Если первый код по прерыванию подсунуть процессору (чисто экспериментально) скажем, MVI A, то процессор захочет получить второй байт и по идее - запросит второй байт такой глупой команды прерывания...
Впрочем - ему должно быть всё-равно. Он ожидает КОП, либо КОП и данные, что ему и подсовывают.
|
23 Oct 2011 07:35 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 873
|
Будут. Подтверждение прерывания формирует процессор в бите D0 шины данных при активном сигнале SYNC. ВК28 лишь запоминает его, выдаёт в качестве отдельного сигнала и рулит шиной данных, выступая в роли буферного формирователя шины.
А картинки из Шахнова, которые тебе дал HardWareMan, посмотри внимательнее.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
23 Oct 2011 07:51 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
С чего бы это однозначно будут? А что в этом случае с регистром дают процессору в качестве первого КОП-а при прерывании?
Если первый КОП не 0CDH, то три сигнала /INTA никто не обещал.
|
23 Oct 2011 07:55 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 873
|
В каждом цикле в первом такте выдаётся слово состояния. При обработке прерывания будет столько циклов, сколько требуется для выполнения команды, и в каждом цикле в слове состояния будет стоять подтверждение прерывания. И только лишь в следующем цикле M1 его не будет.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
23 Oct 2011 08:10 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вот я и говорю, что /INTA будет не обязательно три.
|
23 Oct 2011 08:17 |
|
Who is online |
Users browsing this forum: Claude AI [Bot] and 4 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|