Порты vs память, слово состояния и т.д.
Moderator: Lavr
-
- Retired
- Posts: 1328
- Joined: 25 Jul 2011 00:14
- Location: WWW
Порты vs память, слово состояния и т.д.
возник вопрос - почему практически во всех конструкциях того времени на ВМ80 не использовалось обращение к портам ввода/вывода?
пара логических элементов за кучу адресного пространства вроде бы не большая цена, плюс код быстрее и компактнее
IN #C0h vs LDA #C000h
пара логических элементов за кучу адресного пространства вроде бы не большая цена, плюс код быстрее и компактнее
IN #C0h vs LDA #C000h
-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
-
- Devil
- Posts: 905
- Joined: 26 May 2003 06:57
В Векторе не было ВК28, но порты были. Не сэкономили пару микросхемVituZz wrote:А что, в какой-то из тех конструкций были ВК28? А проц - он только сигналы чтения и записи выводит, без разделения к чему - к памяти или вводу-выводу.

Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Devil
- Posts: 905
- Joined: 26 May 2003 06:57
И это тоже использовалось в ВектореHardWareMan wrote:ЕМНИП, помимо разделения портов и останова, в этом слове есть флаг работы со стеком, чего нет ни в одном другом проце. Да-да, можно физически отделить стек.

Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
Мне всегда было интересно, каким образом формирует свои выходные сигналы ВК28 - на основе слова состояния, или используя DBIN и /WR процессора. Похоже, что ВК28 использует второй вариант, а ВК38 - первый. И как формируется у ВК28/38 сигнал (вернее, даже три) /INTA - на основе слова состояния или как-то самостоятельно? При получении запроса на прерывание формирует ли процессор три слова состояния, подтверждающих прерывание, или это забота контроллера? Подробностей я нигде не встречал. Похоже, что особой необходимости в ВК28 нет, и бОльшие возможности мог бы обеспечить простой 8-разрядный регистр с тремя состояниями и мощными выходами, данные в который защёлкивались бы сигналом /STSTB. Так, действительно, можно получить ещё 64к стека, отдельного от ОЗУ.HardWareMan wrote:помимо разделения портов и останова, в этом слове есть флаг работы со стеком, чего нет ни в одном другом проце. Да-да, можно физически отделить стек.
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Несколько удивил твой такой вопрос...VituZz wrote:Мне всегда было интересно, каким образом формирует свои выходные сигналы ВК28 - на основе слова состояния, или используя DBIN и /WR процессора. Похоже, что ВК28 использует второй вариант, а ВК38 - первый. И как формируется у ВК28/38 сигнал (вернее, даже три) /INTA - на основе слова состояния или как-то самостоятельно? При получении запроса на прерывание формирует ли процессор три слова состояния, подтверждающих прерывание, или это забота контроллера? Подробностей я нигде не встречал.
Уж извини, что я вроде как потыкаю этим справочником Шахнова, но просто я им пользуюсь в работе.
Так согласно ему ВК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.
-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
Я редко пользуюсь справочниками в электронном виде, а в бумажном у меня Шахнова, к сожалению, нет. А в каком-то из тех, что есть, писалось, что /INTA формируется контроллером, что и ввело меня в заблуждение.Lavr wrote: Уж извини, что я вроде как потыкаю этим справочником Шахнова, но просто я им пользуюсь в работе.
Непонятно только, почему в контроллере не сделали выходов работы со стеком. С отслеживанием того, куда наползает его вершина, только лишние проблемы. Хотя в те годы, конечно, ОЗУ стоило дорого, и наверное разработчики решили, что оно никогда не подешевеет.
-
- Banned
- Posts: 2139
- Joined: 20 Mar 2005 13:41
- Location: От туда
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Да вроде так оно и есть: /INTA формируется контроллером ВК28/38 - это фактически /RD от процессора, пропущенный через вентиль, управляемый битом "Подтверждение прерывания" из STATUS.VituZz wrote:Я редко пользуюсь справочниками в электронном виде, а в бумажном у меня Шахнова, к сожалению, нет. А в каком-то из тех, что есть, писалось, что /INTA формируется контроллером, что и ввело меня в заблуждение.
Так что заблуждения я тут особого не вижу...
-
- God
- Posts: 1343
- Joined: 13 Nov 2010 04:06
Может, я непонятно выразился. У меня были сомнения: будут ли формироваться три сигнала /INTA, если вместо ВК28 применить регистр. В Шахнове тоже написано, что /INTA формирует контроллер, вот я и засомневался, не сам ли он его формирует (т.е. не на основании слова состояния процессора). В описаниях ВМ80 этот момент подробно не описывается.
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Понял тебя.VituZz wrote:У меня были сомнения: будут ли формироваться три сигнала /INTA, если вместо ВК28 применить регистр. В Шахнове тоже написано, что /INTA формирует контроллер, вот я и засомневался, не сам ли он его формирует (т.е. не на основании слова состояния процессора).

Аппаратно нечем проверить - может только b2m сможет, да и то - это будет абстракция...
Если первый код по прерыванию подсунуть процессору (чисто экспериментально) скажем, MVI A, то процессор захочет получить второй байт и по идее - запросит второй байт такой глупой команды прерывания...

Впрочем - ему должно быть всё-равно. Он ожидает КОП, либо КОП и данные, что ему и подсовывают.

-
- Devil
- Posts: 905
- Joined: 26 May 2003 06:57
Будут. Подтверждение прерывания формирует процессор в бите D0 шины данных при активном сигнале SYNC. ВК28 лишь запоминает его, выдаёт в качестве отдельного сигнала и рулит шиной данных, выступая в роли буферного формирователя шины.VituZz wrote:У меня были сомнения: будут ли формироваться три сигнала /INTA, если вместо ВК28 применить регистр.
А картинки из Шахнова, которые тебе дал HardWareMan, посмотри внимательнее.

Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
С чего бы это однозначно будут? А что в этом случае с регистром дают процессору в качестве первого КОП-а при прерывании?b2m wrote:Будут. Подтверждение прерывания формирует процессор в бите D0 при активном сигнале SYNC. ВК28 лишь запоминает его, выдаёт в качестве отдельного сигнала и рулит шиной данных, выступая в роли буферного формирователя шины.VituZz wrote:У меня были сомнения: будут ли формироваться три сигнала /INTA, если вместо ВК28 применить регистр.
А картинки из Шахнова, которые тебе дал HardWareMan, посмотри внимательнее.
Если первый КОП не 0CDH, то три сигнала /INTA никто не обещал.
-
- Devil
- Posts: 905
- Joined: 26 May 2003 06:57
В каждом цикле в первом такте выдаётся слово состояния. При обработке прерывания будет столько циклов, сколько требуется для выполнения команды, и в каждом цикле в слове состояния будет стоять подтверждение прерывания. И только лишь в следующем цикле M1 его не будет.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Вот я и говорю, что /INTA будет не обязательно три.b2m wrote:В каждом цикле в первом такте выдаётся слово состояния. При обработке прерывания будет столько циклов, сколько требуется для выполнения команды, и в каждом цикле в слове состояния будет стоять подтверждение прерывания. И только лишь в следующем цикле M1 его не будет.