Насколько я понял, автор рассматривает RISC-архитектуру....
Да не причем, просто пример устройства. Планшет, смартфон, да что угодно сейчас имеет многозадачность. Я озвучил саму суть проблемы: программа, требующая частый доступ к ядру, не уживается на одном ядре с производительными фоновыми программами, требующими суммарное время ядра.
программа, требующая частый доступ к ядру, не уживается на одном ядре с производительными фоновыми программами, требующими суммарное время ядра.
Быстрая смена контекста в этом ничем не поможет. Экономия "на спичках". В этом поможет лишь увеличение количества ядер и распределение задач с учетом их вычислительной прожорливости по этим ядрам. Более того, в правильно выстроенном алгоритме контекст не может быть большим по объему. А если еще учесть, что Вы говорите о программах расположенных в верхнем уровне (не драйверы и сама ОС), то и разговор об аппаратном контексте вообще теряет всякий смысл.
Чтo-то немного пернеборщил: Не всякий школьник с первого захода освоится в конструкциях такой системы команд:
Код:
HLT___________________________________________________________________________ 00 :HLT ;Останов. Команда не работает на системном уровне nn 00 :HLT Rn ;Захват регистра за опциональный nn nn :HLT Pn/n ;Захват указателя или числового индекса ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MOV___________________________________________________________________________ yx :MOV Rx,Ry ;Пересылка между регистрами 44 yx :MOV Px,Py ;Пересылка между указателями Ax ii:MOV Rx,i ;Загрузка непосредственной константы в регистр nn Ax ii:MOV Rx,[Pn+i] ;Загрузка с базовым смещением nn Bx ii:MOV [Pn+i],Rx ;Выгрузка в базовое смещиние r# nn Bx ii:MOV [Pn+=i],Rx ;Выгрузка по смещению и итерационным шагом w# xx :MOV Rx,[Rx] ;Чтение с контекста w# yx :MOV [Rx],Ry ;Запись в контекст w# nn nn :MOV Rw,[n] ;Чтение управляющего регистра w# ?? 00 :MOV [?],Rw ;Запись в управляющий регистр w# 00 :MOV [0],Rw ;Переключение контекста ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ JMP___________________________________________________________________________ B8 ii:JMP $+i ;Ветвление с относительной адресацией -128..+127 nn B8 ii:JMP $+n+i ;Ветвление с относительной адресацией -1024..+1023 nn 8m ii FF:JMP n+m+i ;Ветвление с абсолютной адресацией 0..65535 w# 00 :JMP Rw ;Переключение контекста ---------- WAIT__________________________________________________________________________ B8 FE:WAIT ;Ветвление с замыканием в режим условного ожидания nn nn B8 FE:WAIT n ;Пример режима ожидания с указанием длительности nn 00 B8 FE:WAIT Rn ;Пример режима ожидания с указанием счётчика ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Код:
ГДЕ___________________________________________________________________________ r# - означает префикс повтора командами LOOP n/Rn/[Rn] w# - означает префикс ожидания командами WAIT n/Rn nn - двойной ниббл (11h, 22h, 33h, 44h, 55h, 66h, 77h) ?? - двойной ниббл необязательный и может отсутствовать x/y- индекс регистра приёмника/транслятора ii - байт непосредственных данных ----------
Код:
ПРИМЕРЫ_______________________________________________________________________ 44 00 B8 FE 55 55:MOV AL,[5] ;Чтение управляющего регистра 44 00 B8 FE 55 00:MOV [5],AL ;Запись в управляющий регистр 44 00 B8 FE 00 :JMP AL ;Переключение на контекст задачи 44 FС 22 B6 03 :MOV [SI+=3],CL ;Запись с итерационным шагом счётчика AL 44 FC 22 A6 7D :MOV CL,[BX+2*AL];Чтение с двойной шириной по базе
P.S.: Можно сказать, что байт-код команд просто чудовищный Это - первое и ошибочное впечатление. На самом деле, аналогично M680x0 процессору с ортогональной демократией, у меня многое очень гибко. И, самое главное, дешифратор команд - не очень сложен (программировал на базе ВМ80 же). P.P.S.: Это те "плюшки", открываемые перспективы которых захватывают меня Кстати, долго думал вот, как быть с комбинациями, типа LOOP n + MOV R8,const. Естественно, повторять n-раз команду загрузки регистра одним и тем же - бессмысленно. Нашёл выход к очередной плюшке: Такие циклы не зацикливаются на одной команде, а двигаются к следующим. Но, все эти n-команд обрабатываются в расширенном виде. (один префикс на группу команд) P.P.P.S.: Вспомнил ещё деталь: 20 лет назад разработку своего CPU начинал с цоколовки (распиновки), чтобы шлейфом можно было воткнуть в панельку существующего компьютера (Радио-86РК, Специалист, Орион-128 или ZX-Spectrum). Вот там то я и топтался, так как не мог даже на бумаге задуманное подвести к шинам готовых компьютеров (у ВМ80 же тактирование двуфазное да на 12 Вольт). Поэтому, настойчиво считаю, что система команд не должна отражать грыжами реальность временных технологических сложностей устройства кристалла К тому же, в очень оптимистической перспективе, если инопланетянскими технологиями очень аккуратно вскрыть любой тот же Core-i7 и перепрошить модуль микропрограммного конвейера, теоретически можно же заставить его понимать и конвейеризировать любую систему команд (6502, 68000, Z80, 4004 и т.д.). Или я не прав? Тем более, уже на подходе FPGA-гибриды от ведущих производителей. Или Вас так жизнь сильно проколбасила, что модуль генераций мечт наглухо заземлило на реалии быта?
Представляетe, вчера видел сон, где занимался рекламой своего процессора в каком-то институте как мощнейщий из студенческих и продвигал свою идею… P.S.: Никогда не снились институты…
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
.. мощнейщий из студенческих и продвигал свою идею …
Всё таки как-нибудь найдите в себе силы и почитайте Пушкина, Толстого, Достоевского ,что такое архитекура процессора и какие они бывают , тогда, возможно, идея-фикс написать собственные "чукотские заметки" создать свой "мощнейший из школолошных студенческих" отпадёт сама собой.. А то дальше даже страшно представить, до чего сие доведёт ..
_________________ < виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Всё таки как-нибудь найдите в себе силы и почитайте Пушкина, Толстого, Достоевского ,что такое архитекура процессора и какие они бывают , тогда, возможно, идея-фикс написать собственные "чукотские заметки" создать свой "мощнейший из школолошных студенческих" отпадёт сама собой.. А то дальше даже страшно представить, до чего сие доведёт ..
Нe представляете даже, на сколько это тяжело!
Смотрю видео и думаю - счастливый человек! На днях мысль одна пришла. Что если в схеме РАДИО-86РК вывод 8 счётчика ИЕ4 DD3 подключить на вывод 16 ПДП ВТ57 DD2, а к выводам ПДП 21 и 15 соответственно подключиться триггером ТМ2 выводами 12 и 11, выход которого с вывода 8 через резистор 680 Ом подать к базе VT2… Вы уже сообразили, что должно получиться? И мне эта идея покоя не даёт… Модификации - мизер ведь. Лишь машину ту из шкафа достать, почистить, БП подключить и чуток подпаять кой-где… И схему набросал для ясности…
Вложения:
Комментарий к файлу: Нетрадиционное использование ПДП в РЛК i8257vs8275.jpg [99.35 KiB]
Скачиваний: 391
Удалoсь заняться попытками реализации задуманного… Благо, Icarus Verilog компактен и быстр для симуляции + облачные технологии доступны для демонстрации.
Облачная Verilog-версия. Написано, в основном, как попало, лишь бы убедиться, что я способен заставить это выполнять мой код. Но, это - работает… Крайне примитивно, но работает. А именно: «HLT», «MOV [BX],R», «MOV R,R1», «MOV R,ID», «INC BX», «PUSH n», «JMP $+ID», «RET»… Вывод «WAIT» позволяет удлинять циклы чтения/записи медленных устройств… Сделал просто, но не знаю, верно ли? (Работает так: По-фронту шина данных считывается во временный регистр. По-срезу - проверяется «WAIT» и снимается сигнал «READ»… То есть, если «WAIT» изменялся между этими событиями, то факт игнорируется… Ввёл триггер на такой случай, но потом решил, что это - излишества.)
В «i8080»/«Z80» всё завязано на машинных циклах. В частности, «M1» - считывает код очередной инструкции… Когда я начинаю так делать, на «NOP» требуется 4 такта… Когда иду «окольным» путём - уходит 3 такта… А если иду своим путём - вообще 2 такта требуется. В чём дело?
Мой путь (я его забраковал и удалил, так как пытаюсь находиться в рамках традиционных машинных циклов): Регистры IC (Instruction Code) и ID (Immediate Data) - 9-битные, где «лишний» бит - «признак сбоя»… Перед чтением очередной команды «признаки сбоя» устанавливаются… Тем самым, к шине адреса «подтягивается» счётчик инструкций и при считывании данные непосредственно фиксируются в «сбитых регистрах»… И если «WAIT»-сигнал «даёт добро», бит «сбоя» сбрасывается… Реализация проста, но не «красива», так как нужно оставаться в рамках битов машинных циклов, а они у меня, получается, хранятся прямо в «девятых» битах… При этом, промежуточные регистры адреса и данных имеют также «лишние биты». Так, если 17-й бит адреса установлен, его надо очистить, предварительно выдав адрес/данные на шины для цикла записи в память. А если установлен 9-й бит данных, то они считываются… То есть, «по-хорошему» это надо вынести в отдельные циклы. Тогда как у меня всё получается через «лишние биты», разбросанные по разным регистрам… Что, с одной стороны, даёт «интуитвную» модель поведения системы и ускоряет процесс. А с другой - «портит» архитектуру, так как уходит строгость и формальность завязанности на машинных циклах…
Проблемы: Во-первых, «файл контекста» (для страничной памяти и многозадачности) не задействован… Во-вторых, «АЛУ» не задействованно… В-третьих, реализация чтения/записи стека заметно кривая… В-четвёртых, элементарные операции реализовал с трудом. Не знаю, что будет дальше… В-пятых, «LOOP/SKIP/WAIT» режимы реализовать относительно легко, но пока не понятно, как…
P.S.: Что получилось, то получилось… На «NOP» уходит 3 такта… Не мало ли для «устойчивой работы»?
Нa LogiSim построил пробную схему своего x80. Спойлер
Хотя над схемой работаю долго, но всё лишь для того, чтобы проверить «читалку команд»: Спойлер
Вложение:
Комментарий к файлу: Ядро kernel.png [76.97 KiB]
Скачиваний: 5
Регистр «IB» - Instruction Block: Регистр префикса/постфикса для выбора блока инструкций… Регистр «IC» - Instruction Code и «ID» - Immediate Data… Светодиод «M1» указывает на сброс IB-IC-ID регистров и ожидание очередного кода… (В отличии от i8080/z80, здесь индекс M1 выбран условно, так как M1 активен у меня до конца чтения всего кода команды целиком.)
Префиксом являются все 8 кодов - 11h, 22h, 33h, 44h, 55h, 66h, 77h и код 00h, если активно «SYS» для режима OS… Постфикс образуется побочно только в операциях ветвления, где «JC $» - «CLC», «JNC $» - «STC», «JZ $» - «REPZ», «JNZ $» - «REPNZ», «JS $+1» - «RETS», «JNS $+1» - «RETNS» и т.д… Тем самым, уже на уровне чтения кода команды до передачи в дешифратор, формируются префиксы и отлавливаются замыкания переходов на себя с преобразованием в постфиксы. Всё делает «читалка x80 команд»…
Вся остальная часть схемы - мусор. В частности, АЛУ накидал как попало, лишь бы было и работало.
От «читалки команд» код передаётся в ПЗУ на 65536 32-битных слов для хранения микрокода. Всего возможно до 4096 x80-команд до 16 микрокоманд каждая. Но практически достижимо на программном уровне только менее 2560 x80-команд. Светодиод «UID» - Using Immediate Data, указывает на использование микрокодом константы регистра ID… Светодиод «HALT» указывает на завершение цепочки микрокоманд для сброса «читалки команд» и готовности к следующей x80-инструкции… Светодиод «Pair» указывает, что бит микрокода требует вписывать в регистровый файл «CTX» данные не в один регистр, а в смежную регистровую пару…
На время выборки x80-команды, пока горит M1, для ПЗУ формируется адрес C000 с микрокодом E9E9E1F1. Где:
E9?????? - выбор регистровой пары IP (ячейки E1:E9) для выдачи на шину «ADDR». Так-как указан E9, а не E1 - активен «Pair»…
??E9???? - указывает на ячейку операнда-источника
????E1?? - указывает на ячейку операнда-аккумулятора
??????F1 - холостая (15-я в АЛУ) операция, для инкремента IP на +1
Тем самым, при чтении команды из ОЗУ работает единственная RISC-операция для инкремента счётчика команд.
Под АЛУ есть блок условного прерывания цепочки микрокода. Что можно увидеть в анимации на команде «BC FC» по адресу 000C, когда она срабатывает лишь при единице в CF и переходом на 000A. А до этого очередь доходит до 000E «B8 F6» с переходом на 0006… Однако, обновление регистров хранения флажков пока заблокировано и производится вручную.
В целом же, наконец-то набросок x80-процессора работает и остаётся заполнить пару тысяч ячеек ПЗУ микрокодом и добавить ещё несколько узлов для чтения/записи данных ОЗУ, чтобы и стековые операции стали реализуемы.
Однако, так как я всего лишь обтачиваю алгоритм доступа к регистровому файлу и проверяю корректность работы «читалки», вся схема - мусор… Прежде всего из-за того, что x80 - задуман мной как CISC-процессор, а схемой получился - RISC читающий CISC-команды. Тем самым, под Verilog годится лишь именно «Читалка x80-кода»…
P.S.: Анимация из DropBox. Так что она может измениться, если мне не будет лень отснять новый вариант…
Всегдa задавался вопросом, почему ни в каких процессорах нету команды для дизассемблинга кода и думал, что это сложно. Однако, как показывает сегодняшний опыт, даже как попало можно из тройки мелких ПЗУ сделать пародию на дизассемблер.
Кaк эксперимент, решил набросать «аппаратный x80-дизассемблер»… По сути, это тот же RISC-процессор в CISC-оболочке, но вместо микрокоманд в нём используется поток ASCII-символов прямо на терминал. Спойлер Получилось (внизу) три крошечные ПЗУ внизу: Первая (512 байтов) хранит саму мнемонику и ссылки на токены. Вторая (справа, 256 байт) хранит указатели на токены и индексы от шины (выборка строк, столбцов и префикса). Третья (внизу на 512 байтов) хранит имена регистров, регистровых пар и АЛУ-операции.
Можно видеть, что схема довольно маленькая, но является самым примитивным дизассемблером на аппаратном уровне. Сегодня я приобрёл опыт, который заключается в том, чтобы хранить не один большой микрокод в одной огромной ПЗУ, а разбить микрокоманды на несколько мелких кодов в нескольких ПЗУ. Для меня это - довольно ценный опыт.
Даже своим x80-эмулятором на JavaScript я «плясал с бубном», так как тяжело было обрабатывать байт-код x80 на языке высокого уровня. В частности, «jmp замыкания» на себя приходилось перехватывать уже в самой команде. Теперь я вижу, как нужно было организовывать эмулятор… А если в JavaScript я напортачил, что говорить про Verilog! Теперь я вижу, как надо делать. По крайней мере, нащупал вариант компактнее и производительнее.
P.S.: Как программист я избалован тем, что программы можно бить неограниченной сложности. В Verilog похожая ситуация, так как не смотря на ограничения, в нём можно описать модуль космической сложности. А вот LogiSim связывает меня по рукам из-за многих ограничений и мозги начинают действительно варить на качественно ином уровне, так как изнуряет графическое редактирование и начинаешь реально думать очень чётко…
Заголовок сообщения: Re: Микропроцессоры: Попытки разработки собственной архитект
Добавлено: Вс янв 17, 2021 09:16:55
Друг Кота
Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52 Сообщений: 4470 Откуда: Главный Улей России (Moscow)
Рейтинг сообщения:0
Для облегчения работы можно купить на Али простую плату с FPGA Cyclone II. У этой ПЛИС 4 тысячи лог. ячеек (LE), которые представляют собой программируемую таблицу истинности (LUT) и один D триггер. Мощности одной LUT хватает на реализацию одного бита сумматора. Полноценного, со входом переноса, операндами, выходом результата и выходом переноса, ибо у LUT в этой FPGA есть 4 входа и 2 выхода. Помимо этого там есть еще блоки памяти (M9K), которые можно собирать в почти любую разрядность и им можно задавать изначальное состояние (типа прошивку для ПЗУ из HEX или иного файла). Есть там и десяток аппаратных умножителей. И самое главное - все это добро стоит совсем недорого вместе с программатором. В среде Quartus 2 есть различные отладчики, например SignalTap logic analyzer. Это логический анализатор, код которого генерирует сама среда и зашивает в ПЛИС вместе с проектом. И через программатор USB-Blaster можно следить за интересующими процессами. Я недавно купил себе такой наборчик, правда USB-Blaster пришлось перешить другой прошивкой (нашел на Github исходники), ибо родная кидала BSOD на Win10. Из языков HDL выбрал Verilog, так как он требует меньше писанины в отличии от VHDL, но VHDL позволяет более точно описывать схему. Пока тренируюсь на "кошках". Написал I2S интерфейс, сейчас пиишу автомат, который "расшаривает" один умножитель на несколько конвейеров (мне их не хватило для одного проекта), потом попробую написать КИХ фильтр с использованием этого автомата, ибо КИХ требует несколько умножителей, в зависимости от его порядка. А данные у меня имеют 32 бита разрядности. Потом на очереди апсемплер на каскадно-гребенчатом фильтре. Короче, полный DSPец. Закончу с этим проектом и займусь "баловством" с самодельными процессорами.
Прикола ради, собрал на FPGA EP2C5T144C8N процессор Nios 2/e, то есть тот, который совсем простой. Вот такая простая сборка из 8кБ ПЗУ, 2кБ ОЗУ, таймера, JTAG UART и GPIO заняла 45% этой плисины.
Спойлер
На этом процессоре запустил мигалку светодиодом:
Спойлер
Код:
////////////////////////////////////////////////////////////// // Main program entry int main() { // LEDs states value uint8_t ledsValue = 0x01; // Init system timer SYSTIM_Init();
// GPIO direction settings IOWR_ALTERA_AVALON_PIO_DIRECTION(GPIOA_BASE, 0x07);
// Hello World //alt_putstr("Hello from Nios II!\n");
// Custom instruction (multiplier) test int c = ALT_CI_CIMUL(2, 2); c = ALT_CI_CIMUL(c, 2);
// Main loop while (1) { if((IORD_ALTERA_AVALON_PIO_DATA(GPIOA_BASE)& 0x8)== 0) { SYSTIM_Delay(1000); } else { SYSTIM_Delay(500); }
//////////////////////////////////////////////////////////////////////////////// // System timer interrupt callback void SysTick_Handler(void* context) { // clear irq status in order to prevent retriggering IOWR_ALTERA_AVALON_TIMER_STATUS(SYSTEM_TIMER_BASE, 0); // Decrement counter variable timCounter--; }
//////////////////////////////////////////////////////////////////////////////// // Initialization void SYSTIM_Init() { // register the timer irq to be serviced by handle_timer_interrupt() function alt_ic_isr_register(SYSTEM_TIMER_IRQ_INTERRUPT_CONTROLLER_ID, SYSTEM_TIMER_IRQ, SysTick_Handler, 0, 0); // activate the time IOWR_ALTERA_AVALON_TIMER_CONTROL(SYSTEM_TIMER_BASE, ALTERA_AVALON_TIMER_CONTROL_CONT_MSK | ALTERA_AVALON_TIMER_CONTROL_START_MSK | ALTERA_AVALON_TIMER_CONTROL_ITO_MSK); }
//////////////////////////////////////////////////////////////////////////////// // Set delay value (delay with non blocking) int32_t SYSTIM_SetDelay(int32_t delayValue) { return (timCounter - delayValue); }
В результате все заработало. Тут в проекте я еще решил натянуть Интел и приделал аппаратное умножение в виде кастомной инструкции, так как бесплатная версия ядра не умеет умножать и делить.
Так что этой ПЛИС для экспериментов хватит за глаза.
_________________ I am DX168B and this is my favourite forum on internet!
А что это за ПО - а то очень интересно симулировать довольно большие схемы на логике, от которых протеус хренеет. Но хотелось-бы иметь модели крупных ТТЛ микросхем прототипов ИЕ5,6,7,8, сдвиговых регистров ИР13,16, дешифраторов ИД3,7
Всё это время тренируюсь на побочных архитектурах и набираюсь опыта, так как этот CISC оказался слишком сложным для меня. Побочно разрабатывал RISC, который очень быстро трансформировался в своеобразный простейший CISC и пытаюсь его докончить второй год…
Для облегчения работы можно купить на Али простую плату с FPGA Cyclone II. … … … Так что этой ПЛИС для экспериментов хватит за глаза.
Ну, я как-то уже решил, что DE2-115 хватит для любых сорвиголова-экспериментов без надобности в паяльнике.
Цитата:
Тут в проекте я еще решил натянуть Интел и приделал аппаратное умножение в виде кастомной инструкции, так как бесплатная версия ядра не умеет умножать и делить.
Вот из-за таких мелких ограничений хотелось бы чтобы в стоимость платы входили и всякие лицензии… (Хотя, что-то сомневаюсь…) Тем более, такие девайсы покупаются раз в жизни и покупать дешевле - накручивать счётчик следующих аналогичных покупок. То есть, хочется купить мощнее и дороже, чтобы хотелка больше не включалась!
А что это за ПО - а то очень интересно симулировать довольно большие схемы на логике, от которых протеус хренеет. Но хотелось-бы иметь модели крупных ТТЛ микросхем прототипов ИЕ5,6,7,8, сдвиговых регистров ИР13,16, дешифраторов ИД3,7
Там от ТТЛ только сама суть. На деле - одни примитивы. Но, среда позволяет из них самостоятельно строить аналогичные самостоятельные схемы, оформлять их в УГО, которое вставляется уже в общую схему. А так, Logisim весит чуть более 6 Мб в jar…
да господа че там в РУ(*.biz ) курят щас.... от насваля такое точно не ТОРКНЕТ.....
"анаша анаша до чаво ж ты хараща ... без тибя АНАША у миня болит душа"(с)
_________________ ZМудрость(Опыт и выдержка) приходит с годами. Все Ваши беды и проблемы, от недостатка знаний. Умный и у дурака научится, а дураку и .. Алберт Ейнштейн не поможет и ВВП не спасет.и МЧС опаздает
Народ - есть симуляторы больших схем на TTL логике. Тут пару вещей суровых хочу протестировать. Микрокалькулятор на рассыпухе и такую интересной машинку как "Кенбак" с 1битным АЛУ. Это первое примерно 100 корпусов с учетом крупных - реверсивные счетчики аки 155ИЕ6, у второго более мелкая логика - но все-ж набирать узел ОЗУ на мелочи да на 4096 бит (пол моему) занятие довольно себе так.
У второго в оригинале 150+ корпусов, но в реалиях советской базы примерно 210 выйдет. 75 корпусов только микропрограммный автомат.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 35
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения