nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 01:28



Reply to topic  [ 25 posts ]  Go to page 1, 2  Next
Порты vs память, слово состояния и т.д. 
Author Message
Retired
User avatar

Joined: 25 Jul 2011 00:14
Posts: 1331
Location: WWW
Reply with quote
возник вопрос - почему практически во всех конструкциях того времени на ВМ80 не использовалось обращение к портам ввода/вывода?
пара логических элементов за кучу адресного пространства вроде бы не большая цена, плюс код быстрее и компактнее

IN #C0h vs LDA #C000h


22 Oct 2011 17:05
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
А что, в какой-то из тех конструкций были ВК28? А проц - он только сигналы чтения и записи выводит, без разделения к чему - к памяти или вводу-выводу. Экономили пару микросхем, а вот адресного пространства казалось слишком много. А может, ВК28 были тогда зверским дефицитом? Я не помню.


22 Oct 2011 22:23
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
VituZz wrote:
А что, в какой-то из тех конструкций были ВК28? А проц - он только сигналы чтения и записи выводит, без разделения к чему - к памяти или вводу-выводу.

В Векторе не было ВК28, но порты были. Не сэкономили пару микросхем :)

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


23 Oct 2011 02:54
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
HardWareMan wrote:
ЕМНИП, помимо разделения портов и останова, в этом слове есть флаг работы со стеком, чего нет ни в одном другом проце. Да-да, можно физически отделить стек. :)

И это тоже использовалось в Векторе :)

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


23 Oct 2011 02:56
Profile WWW
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
HardWareMan wrote:
помимо разделения портов и останова, в этом слове есть флаг работы со стеком, чего нет ни в одном другом проце. Да-да, можно физически отделить стек. :)

Мне всегда было интересно, каким образом формирует свои выходные сигналы ВК28 - на основе слова состояния, или используя DBIN и /WR процессора. Похоже, что ВК28 использует второй вариант, а ВК38 - первый. И как формируется у ВК28/38 сигнал (вернее, даже три) /INTA - на основе слова состояния или как-то самостоятельно? При получении запроса на прерывание формирует ли процессор три слова состояния, подтверждающих прерывание, или это забота контроллера? Подробностей я нигде не встречал. Похоже, что особой необходимости в ВК28 нет, и бОльшие возможности мог бы обеспечить простой 8-разрядный регистр с тремя состояниями и мощными выходами, данные в который защёлкивались бы сигналом /STSTB. Так, действительно, можно получить ещё 64к стека, отдельного от ОЗУ.


23 Oct 2011 03:20
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
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.



23 Oct 2011 03:59
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Lavr wrote:
Уж извини, что я вроде как потыкаю этим справочником Шахнова, но просто я им пользуюсь в работе.

Я редко пользуюсь справочниками в электронном виде, а в бумажном у меня Шахнова, к сожалению, нет. А в каком-то из тех, что есть, писалось, что /INTA формируется контроллером, что и ввело меня в заблуждение.
Непонятно только, почему в контроллере не сделали выходов работы со стеком. С отслеживанием того, куда наползает его вершина, только лишние проблемы. Хотя в те годы, конечно, ОЗУ стоило дорого, и наверное разработчики решили, что оно никогда не подешевеет.


23 Oct 2011 06:11
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Вот слово состояние процессора ВМ80:
Image
А вот скрины из Шахнова:
Image
Image
Image


23 Oct 2011 06:39
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
Я редко пользуюсь справочниками в электронном виде, а в бумажном у меня Шахнова, к сожалению, нет. А в каком-то из тех, что есть, писалось, что /INTA формируется контроллером, что и ввело меня в заблуждение.

Да вроде так оно и есть: /INTA формируется контроллером ВК28/38 - это фактически /RD от процессора, пропущенный через вентиль, управляемый битом "Подтверждение прерывания" из STATUS.
Так что заблуждения я тут особого не вижу...


23 Oct 2011 06:50
Profile
God
User avatar

Joined: 13 Nov 2010 04:06
Posts: 1345
Reply with quote
Post 
Может, я непонятно выразился. У меня были сомнения: будут ли формироваться три сигнала /INTA, если вместо ВК28 применить регистр. В Шахнове тоже написано, что /INTA формирует контроллер, вот я и засомневался, не сам ли он его формирует (т.е. не на основании слова состояния процессора). В описаниях ВМ80 этот момент подробно не описывается.


23 Oct 2011 07:18
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
VituZz wrote:
У меня были сомнения: будут ли формироваться три сигнала /INTA, если вместо ВК28 применить регистр. В Шахнове тоже написано, что /INTA формирует контроллер, вот я и засомневался, не сам ли он его формирует (т.е. не на основании слова состояния процессора).

Понял тебя. :wink: Нет, количество /INTA определяется КОП-ом, выставленным процессору прерыванием. А /INTA только дублирует количество обращений процессора.

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


23 Oct 2011 07:35
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
VituZz wrote:
У меня были сомнения: будут ли формироваться три сигнала /INTA, если вместо ВК28 применить регистр.

Будут. Подтверждение прерывания формирует процессор в бите D0 шины данных при активном сигнале SYNC. ВК28 лишь запоминает его, выдаёт в качестве отдельного сигнала и рулит шиной данных, выступая в роли буферного формирователя шины.

А картинки из Шахнова, которые тебе дал HardWareMan, посмотри внимательнее. :)

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


23 Oct 2011 07:51
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
b2m wrote:
VituZz wrote:
У меня были сомнения: будут ли формироваться три сигнала /INTA, если вместо ВК28 применить регистр.

Будут. Подтверждение прерывания формирует процессор в бите D0 при активном сигнале SYNC. ВК28 лишь запоминает его, выдаёт в качестве отдельного сигнала и рулит шиной данных, выступая в роли буферного формирователя шины.

А картинки из Шахнова, которые тебе дал HardWareMan, посмотри внимательнее. :)

С чего бы это однозначно будут? А что в этом случае с регистром дают процессору в качестве первого КОП-а при прерывании?
Если первый КОП не 0CDH, то три сигнала /INTA никто не обещал.


23 Oct 2011 07:55
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
В каждом цикле в первом такте выдаётся слово состояния. При обработке прерывания будет столько циклов, сколько требуется для выполнения команды, и в каждом цикле в слове состояния будет стоять подтверждение прерывания. И только лишь в следующем цикле M1 его не будет.

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


23 Oct 2011 08:10
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
b2m wrote:
В каждом цикле в первом такте выдаётся слово состояния. При обработке прерывания будет столько циклов, сколько требуется для выполнения команды, и в каждом цикле в слове состояния будет стоять подтверждение прерывания. И только лишь в следующем цикле M1 его не будет.

Вот я и говорю, что /INTA будет не обязательно три.


23 Oct 2011 08:17
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 25 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 10 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

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.