Pull to refresh
69
Иван Савватеев@SIISII

Микроконтроллеры, цифровая электроника, ОС…

0,8
Rating
53
Subscribers
Send message

Вот и меня примерно по таким же причинам ни одна из советских бытовых ЭВМ, как и Спектрум, не интересовали вообще: у меня был доступ и к СМ-1420, и к ЕС-1035, и на их фоне эти машинки... Да они банально скучны внутри, единственное достоинство -- недокартинку нарисовать на экране могут, и то не все (а недокартинок мне хватило на школьном Агате).

  1. Нет у 6502 комнад, выполняемых за один такт.

  2. Предвыборка команды в том или ином виде, включая выборку новой команды одновременно с завершением предыдущей, много у кого есть, но это далеко не конвейеризация.

У 6502 тактирование однофазное, у 8080 -- да, двухфазное, но обе фазы имеют место на протяжении одного такта. AlexSpirit имеет в виду, что 6502 работает прям как нынешняя DDR-память -- выполняет операции и по фронту, и по спаду синхросигнала. (Хотя я в этом не уверен, это надо разбираться со схемой процессора, чтоб понять точно, как оно сделано).

Из которой следует, что теоритический максиммум у КР580ВМ80А был 625 тыс оп/с. Но я отчетливо помню, еще со студенчекого УМК-80, что в спецификации на этот микропроцессор была дана средная производительность в 125 тыс оп/сек при частоте 1 МГц. На MOS 6502 эта же средняя составляет 600 тыс оп/сек на 1 МГц.

Как считали эти 125 тысяч, мне неведомо. Но насчёт 6502 -- полная ерунда, у него теоретический предел на 1 МГц -- это 500 тыс оп/с, причём это будут либо межрегистровые пересылки, либо арифметико-логические с константой.

Ну и замечу, что терминами оперируют очень вольно. Быстродействие и производительность -- разные вещи. Скажем, для ЕС-1035 указывают производительность в 130-160 тыс. опс/с -- но это по какому-то из "Гибсонов", т.е. среднее число выполняемых команд на смеси, включающей самые разные команды, в том числе немалое количество операций с плавающей запятой. Ну а с какой производительностью плавающую запятую будет считать 6502 или 8080?

Ну, я это говорю больше ради точности: часто смешивают многотактовые процессоры со схемным управлением (типа того же К1801ВМ1) с реально микропрограммными, где управляющие сигналы формируются из информации, считываемой из памяти (а соответственно, можно поменять, скажем, систему команд, заменив содержимое памяти, но без внесения изменений в собственно схемотехнику).

Но, справедливости ради, микропрограммное управление само по себе тормозом не является -- всё зависит от конкретной реализации и общих аппаратных затрат. Скажем, процессор ЭВМ ЕС-1130 -- конвейерный (4 ступени, насколько помню), но с микропрограммным управлением. Выборка и декодирование команды, вычисление адресов операндов в памяти и даже выборка операндов из памяти реализованы схемно, а управление собственно выполнением команды -- микропрограммное. Как следствие, все простые команды типа сложения "регистр-регистр" и "регистр-память" (!) выполняются при заполненном конвейере за одну микрокоманду, т. е. за один такт (но для "регистр-память", естественно, требуется, чтобы содержимое нужной ячейки памяти уже лежало в кэше процессора, иначе потребуется обращение к физическому ОЗУ -- а это и несколько тактов, и возможная конкуренция с каналами ввода-вывода). Сложные команды, понятно, требовали многих микрокоманд, а поэтому выполнялись медленнее.

Строго говоря, "одинаково тормозила" -- неверное утверждение. Например, у 8080 доступы к шине предсказуемы, и после очередного обращения процессора можно сразу выполнять очередную регенерацию -- в это время процессор занят своими делами и точно к шине не полезет (вроде б, так сделано на Специалисте, причём регенерация совмещается с выборкой очередного байта для вывода на экран). У 6502 с его временем такта в 1000 нс в один такт можно впихнуть и обслуживание запроса процессора, и регенерацию. Но всё это требует, естественно, достаточно грамотного подхода при проектировании (и лишних деталей по сравнению с совсем примитивной реализацией "в лоб"); кроме того, работает лишь на простых системах, где, кроме процессора, активных устройств нет.

Ранние БК шли с Фокалом, Бейсик появился позже.

8080 на 2,5 МГц выдавал 625 тыс оп/с, 6502 на 1 МГц -- до 500 тыс, я выше кусок таблички с тактами выложил.

БК в этом отношении вообще телепается в хвосте. Его процессор К1801ВМ1 был очень многотактовым, в среднем на одну операцию требовалось 10 и более тактов.

У самом проца по справочникам максимальная частота -- 5 МГц. В БК изрядным тормозом было видео, поскольку отдельной видеопамяти как таковой не было, и любое обращение для вывода на экран тормозило процессор. Плюс, частота процессора сильно ниже максимально возможной.

Не было там "микрокода", если уж на то пошло, хотя все утверждают именно это. Там было чисто схемное управление -- управляющие сигналы на каждый такт вырабатывались схемой (матрицей), а не считывались из памяти микропрограмм, как при настоящем микропрограммном управлении..

А вот у настоящих PDPшек, как и у наших СМок -- как правило, ещё более сложных (ВМ1 -- это LSI-11, т. е. огрызок архитектуры) -- было настоящее микропрограммное управление с настоящим ПЗУ микрокоманд.

MicroVAX -- это уже про VAX, а не про PDP-11. И у ДЕКа микропроцессорные реализации ПДПшек тоже были -- сначала из нескольких специализированных микросхем, потом и до одной дошли. Ну а скорость нужна не всегда и не везде; тот же К1801ВМ1 вполне сопоставим, если не быстрей, чем СМ-1300 -- но одна микросхема, а не целая плата.

500 тысяч (два такта) на пересылках регистр-регистр и на арифметико-логических с константой, 333 тысячи (три такта) на арифметико-логических при размещении второго операнда на нулевой странице, 250 тысяч (четыре такта) при размещении в произвольном месте памяти и прямой (абсолютной) адресации:

В то же время не забываем, что у PDP-11/LSI-11 для любых видов косвенной адресации используются регистры, а ещё есть автоинкремент/автодекремент, поэтому при последовательной обработке массивов у них будет одна команда там, где у 6502 может потребоваться десяток.

Шина 16-разрядная, поэтому "вдвое больше байтов" проблемы не создают сами по себе. Это у IBM PC 16-разрядные операции с памятью медленнее 8-разрядных их-за того, что сам процессор -- 16-разрядный, но шина у него -- 8-разрядная.

Это под вопросом, так сказать. Надо либо проводить тщательный теоретический анализ (считать время выполнения достаточно сложных программ, а не отдельных команд), либо гонять схожие программы на разных машинах и замерять время.

Как Вам уже указали, это не так. В, скажем, IBM PC у обоих штатных видеоадаптеров -- CGA и MDA -- была своя собственная видеопамять, которая на основной шине компьютера не висела (подключалась лишь при обращении со стороны процессора), поэтому собственно вывод видео никак на работе остальной машины не сказывался. Но во многих бытовых, и, в частности, в БК всё было на одной и той же шине, поэтому обращения видео отнимали шину у процессора. Кстати говоря, то же самое было в IBM PCjr -- сделали для удешевления не полностью отдельную видеопамять, а общую с системной.

Только одних операционок на нём могло быть три (как замшевых курток у Шпака): РАФОС, РУДОС и ФОДОС

Хто такое РУДОС, не знаю, а вот РАФОС и ФОДОС, если склероз не изменяет, -- одно и тоже, а именно DECовская RT-11.

А ещё конфликты с видео за память, насколько знаю -- что ещё больше тормозило проц. Кстати говоря, по справочникам, "сферически в вакууме" К1801ВМ1 мог работать на 5 МГц, давая 500 тыс. оп/с.

Финишная толщина меди после металлизации (3‑й класс IPC) для внешних слоёв:  

  • из ½ oz получаем минимум около 38,4 мкм;  

  • из 1 oz — около 52,9 мкм.

Для внутренних слоёв фольга стравливается, поэтому итоговые значения меньше:  

  • из ½ oz — минимум 11,4 мкм;  

  • из 1 oz — минимум 24,9 мкм.

Это не очепятка? Финишная толщина на внутренних слоях действительно в 2-3 раза меньше, чем на внешних?

Кстати, вот только что подумалось: 8088 в IBM PC и IBM PC/XT работал на частоте 4,77 МГц, но для одного обращения к памяти ему требовалось четыре такта, или 840 нс, причём шина была 8-разрядной. У 6502 на мегагерц -- принципиально аналогичная 8-разрядная шина с периодом обращения 1000 нс -- т.е. пропускная способность памяти всего на 15% меньше, чем у 8088. Это к тому, насколько неэффективны были тогдашние процы Intel в плане доступа к шине.

ADD: глянул ещё для оригинальной PC/AT. 80286 на 6 МГц, шина 16 бит, для обращения к памяти -- три такта, т.е. 500 нс. ПСП всего в 4 раза больше, чем у 6502, при том, что сам 80286 -- процессор абсолютно другого уровня.

Кольца, на которых строилась ферритовая память -- меньше миллиметра диаметром. Цитируя самого себя из статьи про память от ЕС-1030:

...и собственно память — матрицу размером 1024×1152 ферритовых сердечника типа 5ВТ (размер одного сердечника составляет 0,6×0,4×0,13 мм).

Северный берег Чёрного моря -- не то же самое, что южный берег Белого моря? :)

Сей-час мейнфрйм это стойка (или несколько) с серверами.

Отнюдь. Это, конечно, стойка -- но с одной машиной, имеющей десятки или сотни физических процессоров (логически, естественно, больше из-за многоядерности и своего аналога HyperThreading) и терабайты оперативной памяти. Память, естественно, NUMA: какая-то часть расположена физически близко к конкретным процессорам, какая-то -- далеко. Но даже к самой далёкой доступ многократно быстрей и проще, чем пытаться обратиться к соседнему серверу по Ethernet (для программы так вообще незаметно, поскольку вся оперативная память -- или основная память, main storage, в терминологии IBM, -- находится в едином физическом адресном пространстве).

1
23 ...

Information

Rating
2,151-st
Location
Солнечногорск, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Инженер встраиваемых систем
Ведущий