nedoPC.org

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



Reply to topic  [ 25 posts ]  Go to page 1, 2  Next
4-bit minimal 
Author Message
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Я тут подумал, насколько простым может быть 4-х битный процессор?
Как минимум будет:
- ПЗУ микрокоманд
- регистр адреса ПЗУ микрокоманд (регистр состояния)
- регистр(ы) адреса ОЗУ/ПЗУ
- ОЗУ
- ПЗУ
Получилось вот что:
Image

Как думаете, можно написать для этого микрокод, чтобы получился работающий процессор?

Как тут любят говорить: дискасс.

P.S. обновил картинку

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


Last edited by b2m on 10 Sep 2012 06:25, edited 1 time in total.



07 Sep 2012 02:33
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
Немного пояснений.

Запись в область регистров (адрес ОЗУ 1111хххх) возможна лишь после предварительной установки адреса ОЗУ, а чтение - за один такт, путём установки adrsel.

Аккамулятора как такового нет, его роль, когда он нужен, будут играть младшие 4 бита регистра состояния. Если нужен перенос - используем ещё один бит.

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


07 Sep 2012 02:39
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
(Пожал плечами...) Попробуй...
Моя практика говорит, что то, что выглядит минимальным на блок-схеме,
в схемотехнике далеко не минимально вырисовывается... :-?
Блок-схемы обманчивы.

На данный момент я считаю схемотехнически минимальным, но пригодным
для реального практического применения
- Galactic Electronics 4 bit CPU.

Есть схемы проще - но это скорее уж макеты процессоров...

Вот я и планировал, что я самый простой, но работающий чуть-чуть усложню... :wink:
Оказалось - всё не столь просто. :-?

_________________
iLavr


07 Sep 2012 02:45
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Я немного не понял, что вот эта за цепь? (выделена контуром)

Image

Схемотехнически - что-то типа следующего?

Image

Но почему там 16 линий?

И что-то программный счетчик я нигде не вижу на блок-схеме... :(

_________________
iLavr


07 Sep 2012 09:32
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
Lavr wrote:
Я немного не понял, что вот эта за цепь? (выделена контуром)

Это адрес следующего состояния, адрес микрокода.

Lavr wrote:
Но почему там 16 линий?

Не обязательно 16, если уложимся в меньшее количество состояний, то будет меньше.

Lavr wrote:
И что-то программный счетчик я нигде не вижу на блок-схеме... :(

Все регистры в ОЗУ. В том числе и программный счетчик.

Я попробовал эмулировать такую систему. Вобщем - очень сложно писать микрокод. Слишком раздутый получается.

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


07 Sep 2012 10:11
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
b2m wrote:
Lavr wrote:
Я немного не понял, что вот эта за цепь? (выделена контуром)

Это адрес следующего состояния, адрес микрокода.
Lavr wrote:
Но почему там 16 линий?

Не обязательно 16, если уложимся в меньшее количество состояний, то будет меньше.
Lavr wrote:
И что-то программный счетчик я нигде не вижу на блок-схеме... :(

Все регистры в ОЗУ. В том числе и программный счетчик.

А какая это архитектура тогда?

Если ты затащил цепь адреса следующего состояния, значит у тебя переменная
длина команд?
Вобще в любительских конструкциях мне такое решение встречалось крайне редко...

_________________
iLavr


07 Sep 2012 10:19
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22412
Location: Silicon Valley
Reply with quote
Post 
Это получается что-то типа сродни моему микрокодовому ядру в базовом "безалушном" варианте...

_________________
:dj: https://mastodon.social/@Shaos


07 Sep 2012 10:25
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
На данный момент у меня эмулируется 16-битное ПЗУ микрокоманд, т.е. на адрес следующего состояния отводится всего 8 бит. Сама микрокоманда выглядит так:
Code:
nnnnnnnn h s ww dddd

nnnnnnnn - адрес следующего состояния (дополнится справа 4-мя битами из ОЗУ)
h - признак запрещения загрузки из ОЗУ, т.е. младшие 4 бита регистра состояния не меняются
s - выбор адреса adrsel
ww - разрешение записи одного из 4-х устройств
  00 - никуда
  01 - ОЗУ
  10 - we_a_lo
  11 - we_a_hi
dddd - выходные данные


Програмный счётчик и загрузка кода команды получились достаточно легко, а вот дальше... Выяснилось, что неудобно работать только с ОЗУ, нужны какие-то регистры для промежуточных данных. Простейшая команда загрузки в произвольный регистр (область ОЗУ F0-FF) поставила меня пока в тупик: нужен как минимум ещё один регистр адреса, т.к. имеющийся - постоянно используется для загрузки кода команды и операндов.

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


07 Sep 2012 10:46
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
b2m wrote:
Выяснилось, что неудобно работать только с ОЗУ, нужны какие-то регистры для промежуточных данных. Простейшая команда загрузки в произвольный регистр (область ОЗУ F0-FF) поставила меня пока в тупик: нужен как минимум ещё один регистр адреса, т.к. имеющийся - постоянно используется для загрузки кода команды и операндов.

Вот я тебе и сказал с самого начала - то, что элегантно в виде блок-схемы,
может быть весьма трудоёмким в схемотехнике.
На каждую линию или перекрестье магистралей, то регистр нужен, то
двунаправленный тристабильный шинный формирователь...

Но ты не ответил на 2 вопроса:
1. длина команд переменная?
2. какая предполагается архитектура?

_________________
iLavr


07 Sep 2012 10:57
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
Lavr wrote:
Но ты не ответил на 2 вопроса:
1. длина команд переменная?
2. какая предполагается архитектура?

1. нет, всё 4-х битное, и код команды, и операнды
2. сначала думал разделить код и данные, а потом подумал, что лучше оставить как у старины фон неймана.

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


07 Sep 2012 12:24
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
b2m wrote:
1. нет, всё 4-х битное, и код команды, и операнды.

Я про другое - все команды выполняются за одинаковое число циклов,
или - за 1... 2... 3... цикла?

b2m wrote:
На данный момент у меня эмулируется 16-битное ПЗУ микрокоманд, т.е. на адрес следующего состояния отводится всего 8 бит.

В моём 4-bit-CPU 16-бит ПЗУ микрокоманд управляют ВСЕМ ЦПУ, и то линий не хватает... :-?
А тут 8 бит - на адрес следующего состояния... :o

Я почему и спрашиваю про длину команды в циклах - если все команды
выполняются за 1 цикл (выборка+исполенение) этот механизм фактически
не нужен.

И про архитектуру я не зря спросил: RISC-архитектура подразумевает
(по крайней мере в теории), что большинство операций выполняется на регистрах.
С памятью общение идёт через регистр-память. И это действительно упрощает как
схемотехнику, так и программирование микрокоманд, поскольку они становятся
равны по тактам и сводятся к смыслу: операнд - на шину, с шины - в регистр.

_________________
iLavr


07 Sep 2012 12:28
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
Lavr wrote:
или - за 1... 2... 3... цикла?

Размечтался. С такой нищебродской архитектурой в 20 бы уложиться. Одно лишь увеличение счётчика команд 4-6 тактов.

Lavr wrote:
И про архитектуру я не зря спросил

Я не знаю, как называется архитектура, в которой программных регистров нет вообще, даже счётчика команд :)

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


08 Sep 2012 11:11
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
b2m wrote:
Я не знаю, как называется архитектура, в которой программных регистров нет вообще, даже счётчика команд :)

Такой умный и не знаешь? :o Не верю!... (с) :roll: (щютка)

Есть регистровая архитектура, есть стековая, а есть архитектура типа память-память.
Выбери себе подходящую... :wink:

_________________
iLavr


08 Sep 2012 11:17
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
Lavr wrote:
Выбери себе подходящую

Дык не подходит ни одна :)

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


08 Sep 2012 12:51
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
b2m wrote:
Дык не подходит ни одна :)

Ладно, отрывать автора от дела - глупо... как сделаешь, придумаем ему архитектуру... :D

_________________
iLavr


08 Sep 2012 13:01
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 6 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.