С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Из документа "LSI-11 WCS user's guide":
1.4.1 Vertical and Horizontal Microinstructions
The user will discover that microprogramming the LSI-11 micromachine
requires techniques nearly identical to those used in LSI-11 assembly
language programming. This strong similarity arises because the mi-
cromachine executes vertical as opposed to horizontal microcode. One
characteristic of vertical microinstructions is that microinstructions
are executed out of sequential locations in control store, just as ma-
chine instruction are executed sequentially out of main or program
store.
Another characteristic shared between vertical microinstructions and
machine instructions is that both perform recognized complete opera-
tions upon execution. For example, the COMPLEMENT BYTE microinstruc-
tion reads the contents of the specified source operand register into
the ALU, forms the complement and places the result in the specified
destination register. A horizontal microinstruction, by contrast,
would affect (micro) processor control at a much more detailed level,
often with direct control of register read and write circuitry, data
path bus drivers, ALU operating modes, and so forth. In addition, the
horizontal microcode usually contains a field which holds the address
of the next microinstruction to be executed.
Таким образом, по вопросу терминологии "микрокод-не микрокод"
можно внести окончательную ясность:
LSI-11 - вертикальный микрокод
Советская серия 1801 - горизонтальный микрокод
Серия Am2900/1804 - горизонтальный микрокод
Блин, с точностью до наоборот... Поправил
Или
Вертикальное микропрограммирование напоминает обычное программирование
Горизонтальное микропрограммирование выносит мозг классическому программисту
- - - Добавлено - - -
ХА! Ещё одно дошлоС точки зрения некоторой группы людей - LSI-11 - это резиновая женщина, потому что работает по принципу эмуляторов
А вот 1801 - это тру хардкор!
- - - Добавлено - - -
И ещё - текущая реализация PDP-2011 - это вертикальный микрокодТо есть - аналог LSI-11
Шах и мат - кричащие про эмулятор
![]()
Последний раз редактировалось Hunta; 08.06.2019 в 10:07.
по-моему фраза полная противоречия, pdp2011 это построенный на LUT цифровой автомат без всякого микрокода (как pdp11/20) который исполняет каждую pdp11 команду за 1 такт... про эмуль кричат те кому не нравиться что ради той же самой цели люди стали применять на порядок больше транзисторов или напорядок большие частоты... народ чувствует что это извращение ведущее к деградации моска, кроме того качество таких продуктов очень часто ниже чем у оригинала (равно как и качество услуг резиновой). слова симулятор и эмулятор это синонимы... и обозначают не програмную реализацию а функциональный аналог, чего людям не нравиться людям нравится оригинал или клон оригинала. так уж повелось. оригинал квадрата малевича бесценен (хотя полный декаданс и дегенерация)
Одна эта фраза говорит о полном не понимании.
Из википедии
Целью эмуляции является максимально точное воспроизведение поведения в отличие от разных форм компьютерного моделирования (симуляции), в которых имитируется поведение некоторой абстрактной модели. Например, моделирование урагана или химической реакции не является эмуляцией.
На остальное
Добро пожаловать в реальный современный мир, где основной целью стало - впаривание и потребление. Везде. В том числе - современных компах и программах. И да - оупен соурс точно такой же, плюс там легко забить на свой продукт типа - да надоело, идите все в жопу.
И ещё, пришедшее вчера в голову. Почитайте про программирование ENIAC - переключение проводов. Так что с точки зрения ретро - FPGA ближе к компам в их оригинальной идее, чем всё, что потом было выпущено. Просто такое программирование крайне не тривиально и уже потом придумали - последовательное выполнение, хранимая программа и - апофиоз - труд программиста дороже компьютера. Так что на качество продукта сейчас забили ВСЕ - а чё - выпустим комп, который быстрее, больше памяти, больше жрёт электричество.
Народ не хрена не чувствует, тренировка мозга требует усилий - да ну нах
- - - Добавлено - - -
Вдогонку, больше для Vslav-а
Пока это только очучение, но мне кажется, что на асинхронным схемах можно добиться большего быстродействия на меньших ресурсах. Но вот грамотно спроектировать асинхронный вариант...
В PDP-2011 у меня пока только небольшие модули построены внутри асинхронно и синхронность только в выдаче сигналов на аналог QBUS. Но результаты интересные - мне удавалось запускать модель на 100 МГц. К сожалению, у автора тактовая на процессор генерируется из модуля RAM (поэтому с точки зрения проца тактов ожидания доступа к памяти нет) и точно оценить, сколько она получается - не могу. По грубым прикидками - не больше 50, скорее - в районе 30-40. Ещё я экспериментировал с работой самой шины и выборки из памяти (построенной на BRAM) - из за ещё не удалённого кода при работе с памятью проц выполняет операцию за три клока. Опять же - по ощущениям - можно сделать (для BRAM) и на одном клоке на 100 МГц.
Какое то время назад меня достало то, что синтез исходного проекта приводил (после попыток что то поменять, причём иногда тривиальных вещей - типа - вместо скорости 9600 сделать 19200) к взлетающей прошивке с вероятностью процентов 10 - и я начал полностью перелопачивать проект. Поэтому - ещё не всё работает и сейчас моя основная цель - привести проект к полностью рабочему варианту - но на моих условиях. Поэтому эксперименты с асинхронностью и памятью пока отложены
Приколы разбора микрокода LSI-11 из 581-ых РУшек.
Оказывается, было несколько вариантов чипсета LSI-11, прошивка микрокода хранится не только в РУ-шках. Внутри управляющего чипа 581ИК2 есть еще логический массив PLA, и он не фиксированный - тоже может изменяться и взаимодействует с содержимым РУ-шек. Поэтому 581ИК2 будет дружить только со своими 581РУ1-3, их драли комплектом. Массив PLA содержит набор адресов РУ-шек, при которых он вырабатывает специальные условия, которые могут вызывать неявный переход. И набор этих адресов фиксирован в компиляторе MICRO - только для проверки, и только для адресов 20008-27778. Этот MICRO есть в исходниках (на MACRO-11), и есть исходники FIS/EIS для какого-то вариант дековской оригинальной РУ3-шки. Так вот - оно с прочитанным PLA из 581ИК2 не полностью совпадает (3-5% отличаются). 581ИК2 поддерживает какой-то другой вариант микрокода, будем надеяться - более поздний, с меньшим количеством ошибок.
- - - Добавлено - - -
Там в управляющем чипе еще PLA есть, который вносит элемент горизонтальщины - он тупо сравнивает текущий LC микрокода и может сделать неявный условный/безусловный переход, про который в исходнике ни слухом/ни духом.
Видать чисто вертикально оно совсем медленно и печально выходило. LSI-11 простой, на FPGA 100МГц цикл получится сделать с большой вероятностью, тогда и сравним скорость с 1801. Ну не совсем же женщина резиновая
- - - Добавлено - - -
Все привыкли к PC++ и что операция/операнды определены опкодом однозначно. А в горизонтальном микрокоде обычно есть поле NAF (Next Addres Field) и PC = NAF, да еще операция и операнды зависят не только от кода инструкции. Мозг ломается![]()
После того, как покопался с FPGA и посмотрел, а чего внутри получается... Сравнивающие FPGA с эмулятором сразу падают в моих глазах.
Опять же, если вспомнить мой ПЕРВЫЙ опыт работы с FPGA - мозг ломался не меньше. А всего то надо принять - логика программирования FPGA - это не логика написания программ. Принять, понять - и дальше всё зашибись. Но после большого опыты программирования - нужно учить мозг мыслить в соответствии с логикой работы железа. Тяжело, но решаемо.
Скажем ещё спасибо PDP-11 и языку С, разработанному не то что бы под него, но с большИм влиянием. Плюс - распространённость PDP-11, очень большое количество софта под него, что вынудило проектировать следующие процессора с оглядкой (безусловно - не все) для простоты переноса, потом взлетевший PC с процессором из этого же класса и.. а-ля-у-лю - засилье С-подобных процессоров и языков.
Ну и безусловно, свою роль сыграла то, что человеку проще думать последовательно, а не параллельно. Вспомним последствия - мучения с многопоточным программированиемИнтересно, а если ребёнка с самого детства приучать думать параллельно - чито будет?
Организм то человека и его мозг работают параллельно
![]()
А вариантов там было много... http://www.cpushack.com/2017/11/22/c...si-11-chipset/
Можно по-пинать коллекционеров и собрать все версии управляющих чипов и микрокода
тут еще информация http://web.frainresearch.org:8080/pr...-11/lsi-11.php
Господа, помоги пожалуйста.
Перенести CORE 1801ВМ1 на FPGA Xilinx XC3S250E (board GODIL50).
Как я понял надо брать синхронную версию из https://github.com/1801BM1/cpu11/tre...er/vm1/hdl/syn
эти файлы:
VERILOG_FILE ../../rtl/vm1.v
VERILOG_FILE ../../rtl/vm1_qbus.v
MIF_FILE ../../rtl/vm1_reg.mif
VERILOG_FILE ../../rtl/vm1_alib.v
VERILOG_FILE ../../../wbc/rtl/vm1_tve.v
VERILOG_FILE ../../../wbc/rtl/vm1_plm.v
Но вот как настроить под FPGA XILINX осилить не могу.
вот здесь пример определения ног для этой платы https://github.com/hoglet67/AtomBusM...ez80/board.ucf
У меня в репозитории есть проект под Spartan-6, возьмите его за основу, возможно будет для начала достаточно просто поменять целевой чип на нужный Spartan-3. Там есть пример файла ucf. Файлы xxx_alib не нужны, это переходники на альтеровские компоненты, вместо них xxx_xlib.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)