nedoPC.org

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



Reply to topic  [ 31 posts ]  Go to page 1, 2, 3  Next
Микрокодовое ядро на ПЗУ (nedoPC-27) 
Author Message
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Раздумывая над двоичным ядром троичного компьютера у меня родился план по созданию универсальной платы для реализации не очень сложных процессоров (включая 8080 и 6502) с использованием микрокода. Получающейся устройство предполагается назвать nedoMicro-64 (64, т.к. оно может иметь на борту до 64K 64-битных микрокоманд).

Сердцем устройства является ПЗУ до 512K. Каждая микрокоманда вычерпывается из ПЗУ за 8 шагов, загружаясь в 8 8-битных регистров (всего 64 бита). Это значит, что применив скажем 80 нс память мы получим скорость работы максимум 1.5 МГц. С учётом того, что одна команда "эмулируемого" процессора занимает несколько микрокоманд - внешняя скорость процессора будет ещё ниже в разы. Но думаю, что для начала это терпимо.

Кроме того плата будет содержать 4 24-битных регистра (каждый из которых представляется тремя 8-битными), а также один 8-битный регистр, через который будут осуществляться все 1-байтовые пересылки изнутри и снаружи. Прямая адресация внешней памяти при этом будет составлять 2^24=16MB.

P.S. Из 64 бит микрокоманды первые 24 будут отданы под внутренние нужды (адрес следующей команды и внутренние биты управления), а оставшиеся 40 - будут отданы "пользователю". Если память будет меньше - скажем 2К (256 микрослов), то один 8-битный регистр внутренних нужд будет также освобождён для пользователя (т.е. пользователь получит уже 48 бит на одну микрокоманду).

P.P.S. Промежуточные варианты, когда этот регистр частично используется для внутренней адресации, а частично - пользователем, также возможны.

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


Last edited by Shaos on 02 Oct 2012 20:15, edited 4 times in total.



04 Sep 2010 04:58
Profile WWW
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Сердцем устройства является ПЗУ до 512K. Каждая микрокоманда вычерпывается из ПЗУ за 8 шагов, загружаясь в 8 8-битных регистров (всего 64 бита). Это значит, что применив скажем 80 нс память мы получим скорость работы максимум 1.5 МГц. С учётом того, что одна команда "эмулируемого" процессора занимает несколько микрокоманд - внешняя скорость процессора будет ещё ниже в разы. Но думаю, что для начала это терпимо.


С другой стороны вместо одной ПЗУ 512К, счётчика и 8 регистров можно поставить восемь ПЗУ 64К, которые будут работать в параллель. В этом случае скорость будет в 8 раз больше - 12 МГц при 80 нс и 5 МГц при 200 нс памяти, однако программирование кучи ПЗУх будет гораздо неудобнее программирования одной большой...

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


06 Sep 2010 16:45
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Post 
Второй вариант намного лучше.


06 Sep 2010 22:33
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Post 
fifan wrote:
Второй вариант намного лучше.


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

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


09 Sep 2010 19:42
Profile WWW
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Shaos wrote:
Сердцем устройства является ПЗУ до 512K. Каждая микрокоманда вычерпывается из ПЗУ за 8 шагов, загружаясь в 8 8-битных регистров (всего 64 бита). Это значит, что применив скажем 80 нс память мы получим скорость работы максимум 1.5 МГц. С учётом того, что одна команда "эмулируемого" процессора занимает несколько микрокоманд - внешняя скорость процессора будет ещё ниже в разы. Но думаю, что для начала это терпимо.


С другой стороны вместо одной ПЗУ 512К, счётчика и 8 регистров можно поставить восемь ПЗУ 64К, которые будут работать в параллель. В этом случае скорость будет в 8 раз больше - 12 МГц при 80 нс и 5 МГц при 200 нс памяти, однако программирование кучи ПЗУх будет гораздо неудобнее программирования одной большой...


На самом деле 8 регистров всё равно будут нужны...

P.S. Из видимых плюсов параллельного исполнения видится возможность наращивать девайс фактически безгранично - просто добавляем ещё одно параллельное ПЗУ (с регистром) каждый раз, когда нам нужно расширить микрокоманду дополнительными 8-ю байтами

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


10 Sep 2010 19:46
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Post 
Shaos, хотя бы приблизительную схему проекта не нарисуешь?


12 Sep 2010 05:26
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Post 
fifan wrote:
Shaos, хотя бы приблизительную схему проекта не нарисуешь?


Надо из тетрадки в игл перенести :)

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


12 Sep 2010 06:01
Profile WWW
Devil

Joined: 06 Oct 2006 03:17
Posts: 856
Location: г.Лянтор,Сургутского р-на,ХМАО
Reply with quote
Post 
У меня до фига УФ пзушек и логики. Можно на них что-нибудь собрать?


12 Sep 2010 08:09
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Post 
fifan wrote:
У меня до фига УФ пзушек и логики. Можно на них что-нибудь собрать?


У меня тоже - думаю сделать посадочные места для ПЗУ-х универсальными - любые стандартные от 2К до 64К чтобы втыкались

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


12 Sep 2010 10:23
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Shaos wrote:
Надо из тетрадки в игл перенести


Сунул бы тетрадку в сканер.... :wink: , а то пока еще ты всё перерисуешь...


14 Sep 2010 04:25
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Lavr wrote:
Shaos wrote:
Надо из тетрадки в игл перенести


Сунул бы тетрадку в сканер.... :wink: , а то пока еще ты всё перерисуешь...


Да там непонятно будет постороннему наблюдателю - половина соединений у меня в голове находится. Надо скорее детальную схему перенести в компьютер, а то скоро она и мне непонятна будет :roll:

P.S. Решил тут я, что это микрокодовое ядро вполне может стать самостоятельным вычислителем с шириной микрокодового слова в 32 бита (16 бит адрес следующей команды, 8 бит управления и 8 бит выходных данных, которые замкнуты на вход 8-битового регистра T0), причём с возможностью неограниченного расширения. А это значит, что его уже можно назвать nedoPC, а номер ему можно дать 27, т.к. оно будет построено на ПЗУ с ультрафиолетовым стиранием 27c... - т.е. "официальное" имя сего поделия - nedoPC-27.

P.P.S. Пока определился с базовым набором микросхем:
4 x 27C512 - ПЗУ;
5 x 74LS574 - 8-битные регистры;
3 x 74LS174 - 6-битные регистры со сбросом;
6 x 74LS670 - ОЗУ на 4 x 4-битных слова;
10 x 74LS157 - 4-битовый мультиплексор 2:1;
1 x 74LS139 - сдвоенный дешифратор 2:4;
1 x 74LS74 - два D-триггера с входами сброса и установки;
и немного мелкой логики (в основном 74LS00) - т.е. уже более 30 корпусов.

P.P.P.S. Схема наращивается путём присоединения одного ПЗУ 27C512 и одного регистра 74LS574 для каждых дополнительных 8 битов микрокодового слова.

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


Last edited by Shaos on 15 Sep 2010 05:27, edited 3 times in total.



14 Sep 2010 19:23
Profile WWW
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
А какое будет ALU? Какие операции будут предусмотрены? И на какой базе?

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


15 Sep 2010 00:58
Profile WWW
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Post 
b2m wrote:
А какое будет ALU? Какие операции будут предусмотрены? И на какой базе?


ALU юзер будет цеплять сам :)

А в базовой "безалушной" конфигурации девайс будет представлять из себя некую железную реализацию машины Тьюринга (правда без возможности собственного перепрограммирования), на которой можно делать некоторые вычисления, путём хитрого программирования ПЗУх :roll:

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


15 Sep 2010 03:41
Profile WWW
Devil

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

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


15 Sep 2010 06:40
Profile WWW
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22411
Location: Silicon Valley
Reply with quote
Post 
b2m wrote:
Как это без ALU? Для условных команд необходимо как минимум вычитание, иначе что анализировать-то? А для вычислений нужны как минимум сложение и вычитание, побитная логика и сдвиг тоже не будут лишними.


А кто сказал, что условные команды безусловно нужны? ;)

Естественно, что для "эмуляции" 8080 или 6502 нам понадобятся некоторые схемотехнические расширения, однако для каких-то простых вещей базовой конфигурации должно хватить - я наверное в ближайшем будущем напишу эмулятор этого дела и попробую попрограммировать в базовой конфигурации...

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


15 Sep 2010 09:03
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 31 posts ]  Go to page 1, 2, 3  Next

Who is online

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