самодельный многозадачный процессор

Печатные платы, программируемая логика, разработка и изготовление аппаратуры

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

MM wrote:Насчет "расписывать процессор по конвееру" - это гораздо более сложный процесс я упомянул, следует понимать как "при максимальной тактовой частоте логики" - т.е. фазное управление в принципе не рассматривается. Реально это фантастически сложный процесс - Интел его делала усилием десятка яйцеголовых ручками за 2-3 года на камешек. Однако, результат - на максимальной ( тактовой ) частоте конвееризованный процессор показывает не менее, чем 2-х кратный прирост на классических смесях команд ( при линейной подаче команд - соответственно степени конвееризации ).
Первым конвеерным был 486 - но я могу ошибаться. Не конвеерным был 386DX - 7 тактов на рег-рег.
Апофеоз одноядерности в Интел - 8-параллельный Т(итаниум) - до 3-х подряд идущих ветвлений без потери крейсерской скорости - думается, со временем и господа из Израиля сцапают этот рецепт ( разработчики Коре-дуля ).
*
Насчет хитрости с экономией ПЗУ - не я разработчик, я просто привел пример - не стоит упускать из внимания, что готово было в 1988 г. - т.е. начали свистать с оригинала году так в 1983. К тому же я привел законченный вариант - 200 нс РФка - её не обойти ( напрямую ).
Были, конечно, и масочные ТТЛШ ПЗУ - с временами менее 60 нс,
но мне такие конструктивы не извесны ( т.е. готовые умножители 12 бит ).
*
Вот клянчил у Ю.Л. Отрохова ТО на его камень 1013ВМ1 - хрен дал
( официально ). И даже не счел нужным ( он ) упомянуть, что полно камушков без "К" - по этому и не дает ТО ( официально ) :
http://forum.ixbt.com/topic.cgi?id=64:3394-153 ( Иванов И.И. = MM )
Говорят, что 6502 уже имел в себе примитивный конвеер - иначе бы он не смог на частоте 1 МГц уделывать по математике Z80 работающий на 3.5 МГц...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

А что мы в данном случае подразумеваем под словом "конвеер"?
А то:
В 8086/8088 применена конвейерная архитектура. Конвейер повышает производительность процессора
за счет сокращения времени его простоя. Конвейер BIU в МП 8086 хранит до 6 байт, а 8088- до 4 байт.
Что тогда значит эта фраза?
MM wrote:Первым конвеерным был 486 - но я могу ошибаться. Не конвеерным был 386DX - 7 тактов на рег-рег.
В старших процессорах Intell к конвейеру добавили еще и кеши.
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Post by petrenko »

Stan wrote:А что мы в данном случае подразумеваем под словом "конвеер"?
А то:
В 8086/8088 применена конвейерная архитектура. Конвейер повышает производительность процессора
за счет сокращения времени его простоя. Конвейер BIU в МП 8086 хранит до 6 байт, а 8088- до 4 байт.
Что тогда значит эта фраза?
MM wrote:Первым конвеерным был 486 - но я могу ошибаться. Не конвеерным был 386DX - 7 тактов на рег-рег.
В старших процессорах Intell к конвейеру добавили еще и кеши.
Коллега очевидно в своём понимании изволил употребить термин "конвеер".
Ничего страшного, раз всё разъяснилось, не будем цепляться к терминологическому разночтению, надеюсь.. :no:
А если не ограничиваться процессорами на одном кристалле, то надо отметить, что конвеер был и в некоторых "больших"( размером с зал которые ) машинах
MM wrote:*
Насчет хитрости с экономией ПЗУ - не я разработчик, я просто привел пример - не стоит упускать из внимания, что готово было в 1988 г.* - т.е. начали свистать с оригинала году так в 1983. К тому же я привел законченный вариант - 200 нс РФка - её не обойти ( напрямую ).
Были, конечно, и масочные ТТЛШ ПЗУ - с временами менее 60 нс,
но мне такие конструктивы не извесны ( т.е. готовые умножители 12 бит ).
*
Ну вот, получается Вы косвенно обозвали того разработчика ваятелем НЕрационального решения. :oops: ( шучу :D )
Как я уже говорил :
petrenko wrote:Уж не обессудьте, коллега, но решение не самое рациональное.. :(

Я ещё учась в школе запросто перемножал два двоичных 12-битных без-знаковых числа за те же 200нс при помощи ПЗУ-шек организованных как 8192*24 и ещё четырёх ИМС средней степени интеграции ( в "нашем" смысле средней - в "буржуинском" они считаются мелкой логикой )
( Не подумайте никоим образом, что хвастаю, ибо кроме меня так же умели делать, пожалуй, не менее десятка тысяч советских инженеров - дело то сие вполне заурядное, если школьные формулы знать... ) :rotate:
*_А я как раз в том году и узнал формулу. :idea:
Могу сообщить, ежели, так сказать, "по просьбам трудящихся".. :wink:
И даже блок-схему такого быстрого "математического сопроцессора", пожалуй, ... если все дружно спросят .... пока я добрый ... :dj:
User avatar
Stan
Banned
Posts: 397
Joined: 04 Jan 2013 10:09
Location: 95.24.178.158

Post by Stan »

petrenko wrote:Коллега очевидно в своём понимании изволил употребить термин "конвеер".
Ничего страшного, раз всё разъяснилось, не будем цепляться к терминологическому разночтению, надеюсь.. :no:
Ну объясните мне тогда, раз у Вас всё разъяснилось, что имел в виду этот коллега, и что потом вот этот:
Shaos wrote:Говорят, что 6502 уже имел в себе примитивный конвеер
Я не цепляюсь к "терминологическому разночтению" но хотелось бы понять о чем речь, чтобы общаться на едином техническом языке.
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Post by petrenko »

Да тоже всё просто. ( Надеюсь коллега "MM" не будет в обиде и ругать меня за разглашение. ) Он из экситона. А ещё я случайно с ним не так давно встретился и немножко разговаривал.
Так вот я обратил внимание, что ( видимо от среды общения по работе и не только ) у коллеги по многим вопросам своеобразный - как бы так поточнее сказать ... - контекст восприятия, что ли. В том числе и трактовка некоторых терминов. Ничего особо плохого в этом нет, но вот иногда, увы, приводит к недопониманию. :( В данном случае коллега для присвоения частичке схемы звания "конвеер" выдвинул весьма завышенные требования по сравнению с, например, пониманием "конвеера" той же фирмой "Intel". :-?

В конце концов - действительно - кто то скажет - "ну всего то шесть регистров", кто то обзовёт буфером, а вот в оригинале - как Вы изволили совершенно верно заметить - фирма назвала сие конвеером.

Или вот недавно я пытался разобраться в работе процессора из мелкой логики одной древней машинки. Там КОП после прочтения из ОЗУ сначала защёлкивается в регистре команд, а через tзадерж. сие, преобразованное в микрокод защёлкивается в регистре микрокоманды.
Вопрос - можно ли сие обозвать, ну например "примитивным конвеером" ? ( Честно говоря я не знаю, у меня нет однозначного ответа... )
И что обзывать конвеером, а что - нет ?
Два регистра - это конвеер ?
А три ?
( Ну четыре уж точно можно - ведь в 8088 их четыре :rotate: )

В общем затруднения небольшие выходят с единым техническим..
Надеюсь это сильно не помешает нашей развлекухе. :dj:


Ой, чуть не забыл - ведь T.S. просил подробнее за многофазную синхронизацию сказать..
Это просто : допустим у нас есть лог.элементы с задержками по 25нс
И нам приходится для обработки данных выстраивать лог.элементы в 4 "слоя". Соответственно общая задержка составит 100нс и обработанные данные будут выдаваться в темпе 10`000`000 "кусочков данных"/сек.
Но мы можем сделать каждый "слой" тактируемым отдельной фазой синхро ( со скважностью 4) и тогда несмотря на то, что общая задержка осталась 100нс (- но это только для самого первго "кусочка данных"-) темп выдачи составит уже 40`000`000 "кусочков данных"/сек.
Вот в чём преимущество многофазной синхронизации.
Выглядят синхросигналы при этом примерно так :
_П___П___П_
__П___П___П
___П___П___
П___П___П__
Mogrif
Writer
Posts: 23
Joined: 27 Feb 2014 05:15
Location: 93.123.183.154

Post by Mogrif »

похоже меня подталкивают к добавлению конвейера, я об этом думал, но точно не для версии 1.0, скорее для дальнейших доработок, если они будут
Ой, чуть не забыл - ведь T.S. просил подробнее за многофазную синхронизацию сказать..
Это просто : допустим у нас есть лог.элементы с задержками по 25нс
И нам приходится для обработки данных выстраивать лог.элементы в 4 "слоя". Соответственно общая задержка составит 100нс и обработанные данные будут выдаваться в темпе 10`000`000 "кусочков данных"/сек.
Но мы можем сделать каждый "слой" тактируемым отдельной фазой синхро ( со скважностью 4) и тогда несмотря на то, что общая задержка осталась 100нс (- но это только для самого первго "кусочка данных"-) темп выдачи составит уже 40`000`000 "кусочков данных"/сек.
понятно, спасибо
пока не ясно нужна ли будет такая технология
оно, конечно, хорошо, но это уже получится схема намного сложнее, хоть и более производительная, вот если бы мне надо было в 60-х годах разрабатывать процессор для реальных нужд народного хозяйства....

а так я пока стремлюсь сделать правильный (с моей точки зрения) самопальный процессор, на минимуме правильных (опять же с моей точки зрения) микросхем

правильными чипами для фан проектов считаю честную логику, а не ПЛМ-ы и зашитые в ПЗУ таблицы умножения
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Post by petrenko »

Увы, не во всех случаях одну~две 556рт1 можно заменить на множество 531ла19 и/или 531ле7 :no:
Но во многих случаях в принципе можно..

( А ещё можно делать самому ПЗУ из одного или нескольких дешифраторов типа ид3 ( смотря сколько адресов ) и огромного количества диодов.. А что - видел ПЗУ в одной "малой" ЭВМ именно так выполненное.. :rotate: Веселуха .... ещё та. :dj: )
User avatar
MM
Banned
Posts: 102
Joined: 02 Feb 2014 08:29
Location: Павловский Посад

Post by MM »

Уважаемый господин petrenko, я не состою в штате Экситона уже более 20 лет, и я с Вами вообще никогда не встречался лично - только по переписке.
Далее замечу, что Иванов И.И. - это псевдоним.
Лично я не разрабатывал ни БК10, ни БК11 - т.к. тогда был студентом и присуствовал в качестве практиканта на Э.
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Post by petrenko »

Вы меня забыли... :(
Мы всё таки виделись.
И не так давно.
Я вместе с товарищем приезжал к Вам. :idea:

Впрочем неважно.
я не состою в штате Экситона уже более 20 лет
Среди творческих работников как и среди .. ( .. впрочем тоже неважно, не будем о не касающихся наших тем людях ) "бывших" не бывает ! :rotate:

Так или иначе, но формула вообще из школьного курса математики !
ВСЕ инженеры обязаны знать ! ( или их надо увольнять ни секунды не раздумывая )

Ну так что - где "просьбы трудящихся" ? Формулу написать ?
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

petrenko wrote:Так или иначе, но формула вообще из школьного курса математики !
ВСЕ инженеры обязаны знать ! ( или их надо увольнять ни секунды не раздумывая )
Ну так что - где "просьбы трудящихся" ? Формулу написать ?
Я что-то не пойму, о чем Вы так экспрессивно митингуете... :(
Ни здесь, ни постами выше. Какая формула *, о которой Вы в какой-то год узнали?
iLavr
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Post by jdigreze »

Lavr, разные формулы есть, в том числе на умножение. С другой стороны категорически не соглашусь насчёт "каждый инженер должен знать". Слишком околоспецифическая область.
Навскидку предположу, что в современных процессорах дофига математики делается табличками. Хотя бы ради регулярности структур на кристалле.
User avatar
MM
Banned
Posts: 102
Joined: 02 Feb 2014 08:29
Location: Павловский Посад

Post by MM »

Насчет конвеера - видимо, я не упомянул, что именно "конвеера АЛУ" - а так всякие забеги вперед и у 1801ВМ2 есть. В маленьких процессорах используются 2 тактовые линейки - прямой импульс и инверсный ( в упомянутом ВМ2 - вообще сдвинутый на 1/4 от главного такта ).
*
Вообще, конечно, командированных призжает к нам много - всё возможно.
*
По теме - а если взять боольшое многоразрядное СОЗУ, да подсоединить некотрые входы адресов к некотрым добавочным выходам данных - не получится ли нечто, похожее на примитивный 8-разрядный процессор ( пусть с 8-битным адресом ) ?
( О контенте микропрограммы этого монстрика скромно промолчу ).
( Первоначальную запись данных в СОЗУ вынесем за скобки ).
*
Многозадачность процессора обычно обеспечивается программно -
это всего лишь работа со стеком ( ядра ОС ).
Если аппаратно - можно просто предусмотреть группы РОН и призраков - и регистрик - переключатель этого дела. Отмечу так же, что 16 бит адреса - маловато будет ...
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

jdigreze wrote:Lavr, разные формулы есть, в том числе на умножение.
Так, может быть, мы их и знаем, а г-н petrenko разводит словесного туману,
что "за ним и леса не видать..." :lol:
iLavr
petrenko
Doomed
Posts: 598
Joined: 10 Mar 2012 16:21
Location: РФ

Post by petrenko »

Lavr wrote:
petrenko wrote:Так или иначе, но формула вообще из школьного курса математики !
Ну так что - где "просьбы трудящихся" ? Формулу написать ?
Я что-то не пойму, о чем Вы так экспрессивно митингуете... :(
Ни здесь, ни постами выше. Какая формула *, о которой Вы в какой-то год узнали?
"По просьбам трудящихся" пишу формулу :
(А-Б)*(А+Б)==А^2-Б^2
Настолько просто, что никто не вспомнил... :D

А теперь как это поможет аппаратно.
Возьмём к примеру 16-битные беззнаковые два числа X и Y
{ ( А==X+Y ) & ( Б==Y-X ) }=>{ (X+Y)-(Y-X)==2*X ; (X+Y)+(Y-X)==2*Y }=>{4*X*Y==А^2-Б^2}
Не запутались ещё ?
Так в чём же выигрыш ( спросят возможно некоторые ) ?
Сколько входов ПЗУ треба для двух перемножаемых 16-битных беззнаковых чисел ?
Правильно, 32 входа. Очень доступная в 80-ые годы ПЗУ-шка, не так ли ? :-?
А сколько входов треба для одного возводимого в квадрат 16-битного беззнакового числа ?
Вдвое меньше - 16
Тоже многовато, но уже полегче.
А теперь обратим внимание, что функция ^2 регулярная и возможно поддаётся декомпозиции. :wink:
Дальше объяснять ?
Или уже и так всё ясно ?

( И напомню, что доступность ИМС MPY16 в СССР в 80-ые была просто замечательной ... :no: )
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

petrenko wrote:А теперь обратим внимание, что функция ^2 регулярная и возможно поддаётся декомпозиции. :wink:
Дальше объяснять ? Или уже и так всё ясно ?
Конечно, продолжайте, с этого места. А то Вы вечно норовите сказать "А" и не договорить "Б".
"Зогатки во тьме..."? (с) :wink:
iLavr