|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Хардыч - как ты говоришь:" Похоже, меня никто не читает!" Для записи у меня только 16 4-битных регистров из К155РУ2. А поскольку записи в "ОЗУ программ" пока нет - то это мешает сохранять этот регистр где-нибудь еще, - фактически негде. Регистры нужны для текущих задач. Так что - неправда... Сохранить этот регистр нужны сразу 3 4-битных ячейки из 16, и как правильно заметил b2m - этого не сделать за 1 цикл...
Мочь-то мы всё можем... но "нищебродская" религия не пускает...
Волков сделал " Специалист" с 2-мя линейками ОЗУ и одной ПЗУ.
А тут - убогая 4-битка и 2 ПЗУ и 2 статических ОЗУ!
Пока ситуация не выглядит безвыходной, пока " искусство схемотехники" не сдалось - я предпочитаю не добавлять БИС в конструкцию.
PS. Убрал баян про Эмулятор i8080 в железе
|
06 Nov 2011 08:06 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Но как ни крутись, а стек предполагает, что будет какая-то память. 1-уровневый стек кажется мне неприличным фиговым листком, польза от которого лишь в декларации его наличия . Тем не менее не настаиваю. Можно для начала вообще без стека попробовать.
|
06 Nov 2011 08:46 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну вот я и пытаюсь сделать прикидку - как задействовать то ОЗУ, что уже есть.
Либо под стек, либо без него - под адреса возврата.
Иначе 4-битная поделка становится слишком расточительной!
Вон DEC PDP-8 и то была более скромной...
Last edited by Lavr on 20 Nov 2011 12:36, edited 1 time in total.
|
06 Nov 2011 08:52 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Обычно блок-схемы в той или иной степени упрощены. Столь детальные вопросы они решать не призваны. Дешифратор команд, возможно, имеет регистры не только для КОП, но и для адресов в командах. Но это не более, чем догадка. На блок-схемах я таких подробностей не встречал.
|
06 Nov 2011 10:29 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Довольно экономное решение стека можнo слямзить у 6502 в принципе.
Стек фиксированный и расположен в нулевом 256-байтном сегменте.
Для этого ввести придётся 8-битный указатель стека. Без указателя сегмента.
Ещё мультиплексор понадобится РС и SP коммутировать на адреса памяти.
Мультиплексор на ОК - вполне прост.
Вот только память пока - Read Only...
|
15 Feb 2012 18:32 |
|
|
shoorick
Doomed
Joined: 05 Nov 2007 05:08 Posts: 487 Location: Украина
|
можно стек держать в отдельной памяти у 8080 для этого была возможность - сигнал в слове состояния
|
16 Feb 2012 07:21 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
а сегментные регистры будут?
|
17 Feb 2012 16:05 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Не будут. Уже есть. Схема кусками в топике. Но не окончательная. PS. Основную идею повторю ибо бывает людям лень полистать:
Мы оттолкнулись от этой схемы, как простой, РАБОТОСПОСОБНОЙ!, местами оригинальной.
Сделали для неё своё АЛУ - можно выбрать подходящий вариант, ибо всё обсудили здесь.
Теперь модернизируем сам процессор, обсуждая его систему команд и их реализацию
по ходу этого топика.
Схемы в топике приводятся.
Но тормозит всё и ступор сейчас на
CALL ... RET
будет стек или нет.
Пока количество разных книг и др.источников склоняет меня к НЕТ именно из-за
б ольшей простоты схемотехники.
Мы всё же пришли к выводу, что без нормальных CALL ... RET очень кисло.
Хотя и кривые CALL ... RET там реализованы...
Но слишком уж кривые: RET - только на фиксированный адрес, а CALL - только на начало
любого параграфа.
И ещё неприятный тормоз - внутренняя магистраль 4-битная, а шина адреса для
памяти программ - уже 12 битная (для 4096 байт вместо 256).
Варианты переходов не получаются RISC-типа (за 2 цикла).
Всёж мы заложились - все команды за 1 машинный цикл, и лишь дальние переходы -
за 2 цикла.
Может быть это очень жесткие требования к нашей поделке.
Last edited by Lavr on 12 Mar 2012 01:32, edited 3 times in total.
|
17 Feb 2012 18:47 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я просмотрел очень много схем " самогонных" процессоров из Интернета,
большинство ссылок на них приведены в этом топике 4-BIT.
В подавляющем большинстве их делают именно так как советует VituZz:
" если нам необходимо ОЗУ - давайте вставим микросхему ОЗУ".
Я не могу сказать, что это неверно - но схему распирает не по децки...
Тут уж и желание " поиграцца" исчезает напроч.
Поэтому я стараюсь найти здесь оригинальные компактные решения, чтобы
и процессор получился не игрушкой, но и схема не вылезла за габариты
большой макетки.
И первый компромисс был - ограничение в 4 бита.
Иначе только АЛУ занимало практически всю большую макетку.
|
18 Feb 2012 04:30 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
В проекте Titan - The 8 bit TTL Processor стек, похоже, выполнен отдельно, в одном корпусе ОЗУ.
Это несколько странно, поскольку, как видно из блок-схемы, памяти у него хватает...
В отсутствие схем (уже долгое время) трудно сказать, был ли какой схемотехнический
выигрыш у автора, или просто "рука так легла"...
|
19 Feb 2012 06:32 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Читал статеечку Микропроцессор своими руками-5 - некоторые положения меня просто в осадок выбросили...
Ну не стремятся люди к простоте!
Честно говоря, я об такую ерунду уже спотыкнулся и сам...
Когда думал, как аппаратно загружать память программ - легкомысленно сказал себе - да PIC можно поставить...
Сам же и одумался: 4-битную поделку и PIC-ом загружать? Да она портов его не стОит...
|
05 Mar 2012 15:41 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Что-то похожее реализовано в " Машине Мано"
Если посмотреть её систему команд, то есть команда довольно небычная:
То есть как таковые вызов и возврат можно и не делать.
Запомнили счетчик команд, перешли на подпрограмму, а при возврате просто загрузили счетчик команд значением возврата.
Только в отличие от стека, за адресами возвратов придётся вручную следить.
Но я так представляю, что это не столь трагично. В PDP-8 без рекурсии справлялись.
Хардыч, а поплотнее у МИПС где взглянуть этот момент?
|
08 Mar 2012 14:22 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Я выложил рабочий прототип 4-битного ЦПУ, и всяк может теперь в модели пробовать
свои и чужие замыслы.
Чтобы абстрактных рассуждений у нас стало поменьше, а реальная возможность
протестировать различные решения была.
|
16 Mar 2012 08:55 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
И мне кажется, одно оригинальное аппаратное решение по реализации вызова подпрограммы и возврата у меня в процессе завершения работы над моделью прототипа Stupid PIC всё-таки вырисовалось...
Адрес возврата мы нигде сохранять не будем. Он так и останется в РС.
Раз уж полюбому надо вводить в конструкцию ещё один регистр, шириной в РС,
то пусть это будет дополнительный программный счётчик для подпрограммы!
Если встречается CALL, основной счётчик делает выборку кода операции и
увеличивается на 1 ( РС=РС+1). Это и будет адрес возврата.
После этого адрес подпрограммы заносится в дополнительный программный счётчик, и подпрограмма выполняется на нём.
Когда встретится команда RET - надо будет лишь переключиться
обратно на основной РС.
Хуже чем у МИПСов точно не будет! Но экономим на выполнении операций:
1. считать значение РС.
2. сохранить значение РС.
3. снова считать сохранённое значение РС.
4. загрузить РС.
аппаратно эти цепи будут не нужны. Функциональность как с одним регистром
адреса возврата, куда сохраняется адрес при вызове подпрограммы.
Но аппаратно - компактно и очень неплохо вписывается в нашу схему.
В принципе и третий РС так можно ввести. Чтобы хотя бы два уровня вложения
подпрограмм было.
К ОЗУ программ РС всё равно подключается через тристабильный регистр.
Так что оба дополнительных РС мешать не будут.
И по этой же схеме, похоже, надо ввести в схему регистры для записи в память.
Хотя бы парочку: индекс источника и индекс приёмника.
|
16 Mar 2012 11:20 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Интересное решение!
Чувствую, что программирование этого проца будет экстремальным . Мы уже настолько привыкли к роскошам типа неограниченной вложенности подпрограмм, прерываний и прочая...
|
16 Mar 2012 11:35 |
|
|
Who is online |
Users browsing this forum: No registered users and 14 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
|
|