Ну вы уже поняли, да :)
Это второй мой комп. Как и всё остальное компьютерное, покупалось всегда на свои деньги :)
Вид для печати
Ну вы уже поняли, да :)
Это второй мой комп. Как и всё остальное компьютерное, покупалось всегда на свои деньги :)
Удаление в знак протеста против действий MM
Пардон, извиняюсь, действительно, не там создал :)
Хотя тут и писать то особо нечего - слишком она вещь в себе...
Удаление в знак протеста против действий MM
У меня есть 10-ки и 11-ая.
Могу с уверенностью сказать сделано на высоком уровне. А не в гаражном кооперативе, где то одно то другое вылетает, глючит. Естественно с РС сранвнивать не фиг, но для своего времени супер.
Качество изготовления - одно, совместимость со стандартами архитектуры PDP-11 (читай - простота переносимости операционок) - другое. Ну и на 0010 - 16 кб памяти даже по тем временам - как то маловато.
Но свою задачу - быть коробкой с зашитым Бейсиком или Фокалом - выполняет неплохо
Поэтому для экспериментов я купил 11М. Там памяти побольше.
Основное назначение контроллера ЧПУ МС510 - замена НЦ31 в областях применения с небольшим к-вом датчиков/исполняющих устройств.
Первые прототипы 1982 г. имели разъем порта УП 3-х рядный СНП59-96, и там был разведен порт 177715, т.е. общее к-во линий УП было 32+32.
Вариант с встроенной силовой МПИ на КР531АП2 не пошел даже в ОП, т.к. жрал 3.5 а., и к нему даже хотели поставлять БПС6-1 как штатный БП, но такой вариант отклонили по причине дороговизны БПС6-1 - сделали из него микро-урезку на 8 ватт выходной мощности - всем известный "кирпич".
Кстати, была первая редакция "кирпича" с током нагрузки 4 а. - силовой транзистор КТ805АМ, выпрямительные диоды КД213А, конденсаторы фильтра БП 4700 мк 25 в, выходной разъем 7-штырьковый, выходные конденсаторы 4х1000 мкф 6.3 в, КМ6 2.2 мк., траник ТН36, встроенные +12 и минус 12 в. 0.1 а.
Потом хотели у болгар заказать импульсный малогабаритный БП, но уже в 1984 г. в НЦ заявили, что Болгария требует за него валютные рубли, и по-любому придется для вояк делать "самодел", т.к. до 1986 г. рассчитывали и на милитариское исполнение МС510 ( бытовое название БК0010 ).
Конец 1982 г. Разработка шла сразу после МС1201 ( тогда называлась - НМС1100 ) без индекса.
Была даже полная плата ДВК, с основными узлами МС1201 и ВП1-037 и ВП1-014, вместо разъема принтера был разъем клавиатуры с ВП1-014.
На плате были КП7 с выключателями сигналов записи и чтения ДОЗУ из ВП1-030, т.е. можно было организовывать "ПЗУ".
В ноябре 82 авторы уже достаточно бодро выступали и описывали конструкцию "Микро-ЭВМ индивидуального пользования БК0010", включая такие подробности как размер, четыре панельки под ПЗУ, из которых в трёх 1801ре1. Но, насколько я понял, на выставке, в отличие от некоторых других разработчиков, своё детище не демонстрировали.
>А МС1201 ( НМС1100 )
Про то, показывали ли МС1201 на выставках в указанный период - не подскажу, надо изучать вопрос.
Но вот НМС1100 не существовало точно ;-)
Была Н МС11100.1
Не путать с Н МС01100.1, она же потом МС1501, она же потом МС 0501, она же в просторечии ДВК
Не сочтите за занудство ;-)
Почитал в Wiki про процессор ВМ1 - похоже, подтверждается информация, которую я излагал под видом слухов в статье для "Компьютерры" 2003-го года. Хочу по этому поводу уточнить у знатоков.
Как я понял, изначально ВМ1 проектировали на основе К587, который производили на заводе "Ангстрем" аж в 1975-ом году. Посмотрел систему команд этого процессора (или, скорее, АЛУ) - там всё запущено: примитивные команды и вычисления в аккумуляторе. Выходит, это ядро (только масштабированное с 4 бит до 16) выполняет предварительно написанный микрокод, обеспечивающий совместимость с командами PDP-11.
Вспомнить о том, что я писал (и знал на уровне слухов) в 2003-ем году, меня заставила цитата из недавней статьи про демку для IBM PC XT:
У нас же на ВМ1 обращение к памяти (косвенная адресация) отнимает аж 20 тактов (хотя, есть разные мнения). Так или иначе, всё это очень похоже на эмуляцию.Цитата:
ЦП 8088 на 4,77 МГц. Кажется, что 5 МГц — это много по сравнению с другими 8-битными микропроцессорами, но для считывания одного байта ЦП требуется 4 цикла. Поэтому по сравнению с другими 8-битными ЦП наподобие 6502 или 6809, способными считывать байт за один цикл, фактическая тактовая частота 8088 ближе к (4,77 / 4) = 1,19 МГц.
Помимо общего вопроса "правильно ли я всё понял?" хочу задать ещё один, более конкретный: возможно ли теоретически создать FPGA-версию процессора ВМ1, совместимую с ним по выводам, но работающую с эффективностью MOS 6502 (типа считывания из памяти за 1 такт)? Я понимаю, что выборка данных из памяти затормаживается видеоконтроллером, но всё же.
ИМХО - да, с вероятностью более 90%.
Но стоимость такой разработки запросто превысит среднюю новенькую иномарку, т.к. работа программеров вообще Очень дорогая ( в Москве - от 100 т.р. ), а тоже самое по железу ( от 200 т.р., если по-существу ) - вообще супердорого ( да и долго ).
Напомню, что современную архитектуру ядер процев Интел разработали в Израиле на основе П-3 за ~5 лет, с 1997 по 2004 г. шла работа. Считается, что по энегоэффективности пока что это пик конструкторской мысли. Какие перреспективы - если будет разработана более энергоэкономическая схема вентиля - будет новый шаг в производительности, по мотивам параллизма Итаниума - 8 частичек ядра одновременно исполняют код, и по итогам работы арбитр выбирает результат с одного микроядра ( для ветвлений ). Такая архитектура даст прирост на математике до 25-30%% производительности без поднятия частоты.
Возможно, я слишком наивен, но правда не понимаю почему подобными проектами не занимаются студенты в качестве дипломных работ (ну, если одному такое не потянуть, то на пятерых). Сам бы с удовольствием такое делал в своё время.
Update: и действительно...
В моей БК в ФПГА ВМ1 в принципе примерно такой и есть (и никакого диплома мне за него не дали =) Но делать его совместимым по выводам, чтобы вклячивать в реальную ретро-железяку, это совершенно отдельный спорт.
Это же очень круто!
Отдельная история, да. Но зато это реальный способ донести продукт до пользователей. Вынул старый ВМ1 из кроватки, вставил этот - и счастье! В идеале, у него должно быть два программно переключаемых режима: совместимый (по скорости исполнения команд) и турбо (максимальная производительность).
Manwe, может быть кто-нибудь когда-нибудь. Не исключаю, что это мог бы быть и я, но это должна очень серьезная вожжа под хвост попасть, чтобы такое затеять. И еще не факт, что БК, в которой вся схема построена вокруг вполне определенного проца с его тормозами, заведется вот так вот прямо с процессором без тормозов (хотя строго по бумаге конечно все асинхронное и должно завестись).
Вслав г. Киев категорически нашел 100500 причин, что бы не делать такой модуль ( пин-то-пин совместимый с 1801ВМ1А ).
Остается вся надежда на Вас.
Если есть интерес - могу немного консультировать в области привязки ХХ мгц ядра к 3-мгц МПИ БК/ДВК.
ИМХО - рублей так по 1000-2000 сбыт будет, штучек так 10...
Совершенно верно. Более того, сама (асинхронная) схема (логика/комбинаторика, БИСы и т.д.) есть еще тот тормоз...
Из собственного опыта: раскочегарил я свой АГАТик (это при всего-то 1.021 МГц такта!) в 2.8 раза, с трудом, но раскочегарил. А вот в 3.5 раза (пока) не получается, оно работает-то, но лажает... А все потому, что вся остальная схема тормозная.
Вывод: не только шустрый проц нужен, но и все остальное тоже должно быть скорострельным! Поэтому, очень желательно "засунуть" все это в ПЛИС, и функционал реализовать в синхронном дизайне - вот залог успешного разгона.
Байку расскажу гаражную :)
Достались мне давно когда-то в наследство дедушкины Жигули - 2101 из первых выпусков. Долго я с ней возился - интересно мне тогда это было, откапиталил "по-взрослому" все что можно, много импортных запчастей (двигатель с немецкими кольцами СМ, клапанами Мале и всеми оригинальными резинками Гётц так и продали после 150тык пробега - масло не брал вообще, чистенький - никаких потеков, ровная компрессия 9+ во всех цилиндрах, клапана регулировки потребовали только один раз - не знаю до чего он там дожил потом у нового хозяина, а жаль, интересно ведь), хотел туда 1.8 двигатель вкинуть, но стремление сохранить оригинал победило. Но потом пересекся с человеком который таки в свою копейку нивовский 1.8 "вкинул".
Ну что сказать, приключений у него много было. Морда тяжелая стала - шаровые, которые и так гуано, он не успевал менять, сцепление, даже усиленное у него тоже долго не жило, копеечная коробка быстро ремонта запросила, хотя она там неубиваемая, я не знаю что с ней надо делать, ну поставил чел 5-ступку, норм, все к лучшему :). Картер низко стал, ессно, поймался он на него пару раз нормально так. Кардан и редуктор - то мелочи, заменил. Но это все фигня - кузов у него был неплохо сохранившийся, но его тяжелым движком с повышенным моментом начало крутить и рвать. Задние тяги, солдатика и прочее, даже лонжероны - того, не сильно параллельные стали :). В-общем, в гараже рассказывать про 1.8 в копейке - оно красиво очень, ага. И про последующий секс - тоже интересно послушать. Но эксплуатировать по жизни такую машину - ну его, толку мало, геморроя много. Вот и фпга-шный разогнанный ВМ1 ставить в старые системы - толку ноль.
Ну почему же "толку ноль"? Если NOP будет выполняться не за 8 тактов, а за 4 - разве это плохо? Как я понял, у БК время выполнения команд кратно 4 тактам (из-за обращений контроллера видеопамяти), так что можно свести время выполнения каждой команды процессора к минимуму (число обращений к памяти умноженное на 4 такта) без какого-либо ущерба для остальных узлов компьютера. А это даст прирост в производительности в 2-3 раза.
На самом деле ядро ВМ1 не такое уж тормозное, я раскладку по микропрограмме готовлю, там будет много интересного для любителей считать такты :). А вот память в старых системах очень тормозная. Имхо, если будет итоговый прирост скорости процентов на 30, то можно считать что все удачно прошло, 2-3 раза - это не очень правдоподобно. Впрочем, у меня есть видение физической реплики ВМ1 - 42-ногая платка на 10М08 + DDR3 (чтобы уж на внешнюю память потом не жаловаться), поживем - увидим.
Это как ядрёной ракетой по воробьям... ;)
Позвольте подкинуть идейку прокачки БК, подобную этому проекту:
1. Новая печатная плата в корпус БК.
2. Реальный проц 180хВМ1/2/3 с максимальным тактом.
3. SRAM 128К - хМ.
4. FPGA на готовом модуле. В ней вся логика компа. 2 экранных страницы по 16КБ развернуть во внутренней памяти FPGA в виде двухпортовой. ПЗУ также развернуть во внутренней памяти или в виде отдельных чипов.
5. Преобразователи уровней для разъема шины и внешних устройств.
6. Дополнительные устройства (КНГМД, Covox и т.д.) интегрировать в FPGA (или, как и раньше, через внешние разъёмы).
А итог применения модуля 1801ВМ1А-100 мгц на заводской плате БК0010 7.102.641 и так ясен :
1. Быстродействие в ПЗУ/СОЗУ - ~ 1.4 млн
2. Быстродействие в ДОЗУ - 370 т.
О, ждём с нетерпением!
Прирост процентов 20 уже достигается переносом программы в дополнительное статическое ОЗУ. Прирост 30% - не то, за что стоит бороться.
Вроде как svofski писал, что его проект БК-FPGA за 1 такт выполняет команду. Даже если из-за тормозной памяти придётся подождать 3 лишних такта - не беда.
Ух :)
- - - Добавлено - - -
Фактически, эмулятор получается? А не проще тогда на Raspberry Pi портировать готовый эмулятор GID и вставить в корпус БК?
Выполнять-то выполняет, но не надо это понимать так, что 1мгц = 1 миллион инструкций в секунду. Я наверное неточно высказался в прошлый раз. Такое приближение возможно только если архитектура RISC, реализован четырехэтапный конвейер, и внешние устройства отвечают на следующий такт после запроса. А ВМ1 очень CISC, конвейера у него нет, шина у БК тормозная. Команду надо загрузить, вычислить каждый операнд, каждый из которых может быть с автоинкрементом и двойной косвенной адресацией, ня, то есть это все с доступом к внешним устройствам, собственно выполнить инструкцию и сохранить результат, тоже зачастую в память. Этих шагов даже у моего "быстрого" ВМ1 на инструкцию получается много.
Я про БК знаю слишком мало, чтобы предсказать, как это будет пересекаться с периферией. Знаю, что у Вектора, например, на каждый машинный цикл у процессора есть "люфт" в 4 такта, то есть если машинный цикл 5 тактов, то мы попали на 8, а если бы он был 1, все равно займет 4. Чудес не бывает, в БК тоже что-то где-то должно быть сделано, чтобы освежать память и обновлять экран. И скорее всего, даже если получится сделать так, что все заработает правильно, заметно быстрее вся система не станет.
Да, у БК то же самое.
Это понятно. Но вот, скажем, увеличение значения регистра на 1 в БК-FPGA выполняется не дольше четырёх тактов? Идея-то в чём: допустим, нам повезло, и ячейка ОЗУ откликнулось быстро (не совпало с регенерацией памяти), мы считали команду "INC R0". Следующую команду мы сможем считать из ОЗУ только через 3-4 такта, но ведь за это время FPGA успеет увеличить регистр на единицу? (не будет тупить 16 тактов как реальный ВМ1)
Конечно, много что станет быстрее за счет укороченных циклов. Но вот не сделав, не узнать насколько ;)