Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22794 Location: Silicon Valley
|
Раздумывая над двоичным ядром троичного компьютера у меня родился план по созданию универсальной платы для реализации не очень сложных процессоров (включая 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. Промежуточные варианты, когда этот регистр частично используется для внутренней адресации, а частично - пользователем, также возможны.
Last edited by Shaos on 02 Oct 2012 20:15, edited 4 times in total.
|
04 Sep 2010 04:58 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22794 Location: Silicon Valley
|
С другой стороны вместо одной ПЗУ 512К, счётчика и 8 регистров можно поставить восемь ПЗУ 64К, которые будут работать в параллель. В этом случае скорость будет в 8 раз больше - 12 МГц при 80 нс и 5 МГц при 200 нс памяти, однако программирование кучи ПЗУх будет гораздо неудобнее программирования одной большой...
|
06 Sep 2010 16:45 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 858 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Второй вариант намного лучше.
|
06 Sep 2010 22:33 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22794 Location: Silicon Valley
|
Зато первый программировать проще
Можно первый вариант использовать для разработки, а второй - для реального использования
Ещё один вариант - иметь одно ПЗУ, но по включению его содержимое заливается в 8 работающих параллельно ОЗУ - схема при этом правда будет тяжелее...
|
09 Sep 2010 19:42 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22794 Location: Silicon Valley
|
На самом деле 8 регистров всё равно будут нужны...
P.S. Из видимых плюсов параллельного исполнения видится возможность наращивать девайс фактически безгранично - просто добавляем ещё одно параллельное ПЗУ (с регистром) каждый раз, когда нам нужно расширить микрокоманду дополнительными 8-ю байтами
|
10 Sep 2010 19:46 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 858 Location: г.Лянтор,Сургутского р-на,ХМАО
|
Shaos, хотя бы приблизительную схему проекта не нарисуешь?
|
12 Sep 2010 05:26 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22794 Location: Silicon Valley
|
Надо из тетрадки в игл перенести
|
12 Sep 2010 06:01 |
|
|
fifan
Devil
Joined: 06 Oct 2006 03:17 Posts: 858 Location: г.Лянтор,Сургутского р-на,ХМАО
|
У меня до фига УФ пзушек и логики. Можно на них что-нибудь собрать?
|
12 Sep 2010 08:09 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22794 Location: Silicon Valley
|
У меня тоже - думаю сделать посадочные места для ПЗУ-х универсальными - любые стандартные от 2К до 64К чтобы втыкались
|
12 Sep 2010 10:23 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Сунул бы тетрадку в сканер.... , а то пока еще ты всё перерисуешь...
|
14 Sep 2010 04:25 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22794 Location: Silicon Valley
|
Да там непонятно будет постороннему наблюдателю - половина соединений у меня в голове находится. Надо скорее детальную схему перенести в компьютер, а то скоро она и мне непонятна будет
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 битов микрокодового слова.
Last edited by Shaos on 15 Sep 2010 05:27, edited 3 times in total.
|
14 Sep 2010 19:23 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 873
|
А какое будет ALU? Какие операции будут предусмотрены? И на какой базе?
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
15 Sep 2010 00:58 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22794 Location: Silicon Valley
|
ALU юзер будет цеплять сам
А в базовой "безалушной" конфигурации девайс будет представлять из себя некую железную реализацию машины Тьюринга (правда без возможности собственного перепрограммирования), на которой можно делать некоторые вычисления, путём хитрого программирования ПЗУх
|
15 Sep 2010 03:41 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 873
|
Как это без ALU? Для условных команд необходимо как минимум вычитание, иначе что анализировать-то? А для вычислений нужны как минимум сложение и вычитание, побитная логика и сдвиг тоже не будут лишними.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
15 Sep 2010 06:40 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22794 Location: Silicon Valley
|
А кто сказал, что условные команды безусловно нужны?
Естественно, что для "эмуляции" 8080 или 6502 нам понадобятся некоторые схемотехнические расширения, однако для каких-то простых вещей базовой конфигурации должно хватить - я наверное в ближайшем будущем напишу эмулятор этого дела и попробую попрограммировать в базовой конфигурации...
|
15 Sep 2010 09:03 |
|
|