Какие компьютеры относятся к третьему поколению ес 1066 ibm 360 см 4 мэсм бэсм 6
Третье поколение ЭВМ создавалось на новой элементной базе — интегральных схемах. С помощью очень сложной технологии специалисты научились монтировать на маленькой пластине из полупроводникового материала, площадью менее 1 см, достаточно сложные электронные схемы.
Их назвали интегральными схемами (ИС)
Первые ИС содержали в себе десятки, затем — сотни элементов (транзисторов, сопротивлений и др.).
Когда степень интеграции (количество элементов) приблизилась к тысяче, их стали называть большими интегральными схемами — БИС; затем появились сверхбольшие интегральные схемы — СБИС.
ЭВМ третьего поколения начали производиться во второй половине 60-х годов, когда американская фирма IBM приступила к выпуску системы машин IBM-360. Это были машины на ИС.
Немного позднее стали выпускаться машины серии IBM-370, построенные на БИС.
В Советском Союзе в 70-х годах начался выпуск машин серии ЕС ЭВМ (Единая Система ЭВМ) по образцу IBM-360/370.
Переход к третьему поколению связан с существенными изменениями архитектуры ЭВМ.
Появилась возможность выполнять одновременно несколько программ на одной машине. Такой режим работы называется мультипрограммным (многопрограммным) режимом.
Скорость работы наиболее мощных моделей ЭВМ достигла нескольких миллионов операций в секунду.
На машинах третьего поколения появился новый тип внешних запоминающих устройств — магнитные диски .
Как и на магнитных лентах, на дисках можно хранить неограниченное количество информации.
Но накопители на магнитных дисках (НМД) работают гораздо быстрее, чем НМЛ.
Широко используются новые типы устройств ввода-вывода: дисплеи , графопостроители .
В этот период существенно расширились области применения ЭВМ. Стали создаваться базы данных, первые системы искусственного интеллекта, системы автоматизированного проектирования (САПР) и управления (АСУ).
В 70-е годы получила мощное развитие линия малых (мини) ЭВМ. Своеобразным эталоном здесь стали машины американской фирмы DEC серии PDP-11.
В нашей стране по этому образцу создавалась серия машин СМ ЭВМ (Система Малых ЭВМ). Они меньше, дешевле, надежнее больших машин.
Машины этого типа хорошо приспособлены для целей управления различными техническими объектами: производственными установками, лабораторным оборудованием, транспортными средствами. По этой причине их называют управляющими машинами.
Во второй половине 70-х годов производство мини-ЭВМ превысило производство больших машин.
Что такое северный и южный мост
Мост – это чип, который распаян на материнской плате и является частью чипсета. Традиционно чипсет материнской платы состоит из двух чипов, которые называют северным и южным мостом.
Данные чипы называют мостами потому, что они выполняют связующую функцию между центральным процессором компьютера и остальными комплектующими. Что касается названий «северный» и «южный», то эти названия указывают на расположение данных чипов на материнской плате. По аналогии с полюсами на глобусе, северный мост находится ближе к верхней, а южный ближе к нижней части платы.
Нужно отметить, что на современных материнских платах два моста больше не используется. Вместо северного и южного мостов теперь используется исключительно южный мост, так как все функции северного моста были интегрированы в процессор.
ECC-память с защитой от ошибок (а так же LRDIMM)
Большие объёмы памяти набирают большим количеством модулей ОЗУ, а 256 Гб — это всего лишь 8 модулей по 32 Гб. Вполне вероятна ситуация, когда 8 разъёмов DIMM вам не хватит, поэтому придётся приобретать 2-процессорную машину, чтобы получить 16 слотов для модулей ОЗУ.
Начиная со второго модуля, каждый следующий удваивает вероятность возникновения ошибок в памяти компьютера. В абсолютном выражении вероятность появления ошибки — не такая уж и маленькая, около 0.22% в год на каждый модуль памяти, согласно статистике Google. Как говорится: «Shit Happens», и чаще всего операционная система компьютера ошибки восстанавливает, так что вы их даже не замечаете, но чтобы не полагаться на разработчиков ПО, лучше доверить механизм ECC Correction железу. Для этого на каждом модуле ОЗУ установлен миниатюрный чип, выполняющий функцию защиты от сбоев.
Можно сказать, что этот чип разгружает процессор от ненужной ему работы, и большие объёмы памяти без ECC просто нет возможности набрать. Но иногда и такой разгрузки недостаточно, и используются Load Reduced DIMM модули, в которых для общения с процессором используется отдельный чип-контроллер, выполняющий буферизацию запросов. Модули LRDIMM могут иметь объём 128 Гб, благодаря чему современные рабочие станции могут поставляться с 1-2 Тб ОЗУ.
Память микропроцессора
Знакомство с подробностями, касающимися компьютерной памяти и ее иерархии помогут лучше понять содержание этого раздела.
Выше мы писали о шинах (адресной и данных), а также о каналах чтения (RD) и записи (WR). Эти шины и каналы соединены с памятью: оперативной (ОЗУ, RAM) и постоянным запоминающим устройством (ПЗУ, ROM). В нашем примере рассматривается микропроцессор, ширина каждой из шин которого составляет 8 бит. Это значит, что он способен выполнять адресацию 256 байт (два в восьмой степени). В один момент времени он может считывать из памяти или записывать в нее 8 бит данных. Предположим, что этот простой микропроцессор располагает 128 байтами ПЗУ (начиная с адреса 0) или 128 байтами оперативной памяти (начиная с адреса 128).
Модуль постоянной памяти содержит определенный предварительно установленный постоянный набор байт. Адресная шина запрашивает у ПЗУ определенный байт, который следует передать шине данных. Когда канал чтения (RD) меняет свое состояние, модуль ПЗУ предоставляет запрошенный байт шине данных. То есть в данном случае возможно только чтение данных.
Из оперативной памяти процессор может не только считывать информацию, он способен также записывать в нее данные. В зависимости от того, чтение или запись осуществляется, сигнал поступает либо через канал чтения (RD), либо через канал записи (WR). К сожалению, оперативная память энергозависима. При отключении питания она теряет все размещенные в ней данные. По этой причине компьютеру необходимо энергонезависимое постоянное запоминающее устройство.
Более того, теоретически компьютер может обойтись и вовсе без оперативной памяти. Многие микроконтроллеры позволяют размещать необходимые байты данных непосредственно в чип процессора. Но без ПЗУ обойтись невозможно. В персональных компьютерах ПЗУ называется базовой системой ввода и вывода (БСВВ, BIOS, Basic Input/Output System). Свою работу при запуске микропроцессор начинает с выполнения команд, найденных им в BIOS.
Команды BIOS выполняют тестирование аппаратного обеспечения компьютера, а затем они обращаются к жесткому диску и выбирают загрузочный сектор. Этот загрузочный сектор является отдельной небольшой программой, которую BIOS сначала считывает с диска, а затем размещает в оперативной памяти. После этого микропроцессор начинает выполнять команды расположенного в ОЗУ загрузочного сектора. Программа загрузочного сектора сообщает микропроцессору о том, какие данные (предназначенные для последующего выполнения процессором) следует дополнительно переместить с жесткого диска в оперативную память. Именно так происходит процесс загрузки процессором операционной системы.
Компьютер ПЭВМ «Поиск». Электронмаш
Сегодня я бы хотел немного рассказать о незаслуженно обделенном на Хабре вниманием советском ПЭВМ Поиск. Отличает данный компьютер от многочисленных Байтов, Ириш, Корветов, БК0010, Радио-Р86 и прочих то, что он был полу-совместим с IBM XT/PC. Машина базировалась на отечественном аналоге процессора Intel i8088 — КМ1810ВМ88, работающем на чуть завышенной частоте — ~ 5 MHz, против 4,7 MHz у оригинальной XT. Однако, в целом, компьютер работал медленнее, чем XT, потому что в Поиске не была реализована полноценная CGA видеокарта. Фактически, текстовые режимы эмулировались – видеоадаптер всегда работал в графическом режиме, а буквы на экране прорисовывал системный BIOS попиксельно. Естественно это отнимало кучу процессорного времени. Еще одним отличием от настоящей XT было отсутствие DMA, что так же сказывалось на быстродействии работы с памятью не в лучшую сторону. Да и самой памяти было далеко не 640Kb, которых бы конечно хватило всем, а поменьше, и ее хватало не всем. Однако, несмотря на все недостатки, ПЭВМ Поиск мог запускать актуальную в то время MS-DOS и работать практически со всеми популярными в то время приложениями и играми, начиная от Norton Commander и Digger, заканчивая Windows и Office. И цена, конечно… Если настоящую XT-шку могли позволить себе в основном только организации, то ПК Поиск был более-менее доступен для рядового советского инженера (месячная зарплата). Но обо всем по порядку…
Предисловие
Вообще, строго говоря, Поисков было несколько модификаций. Самым главным отличием было количество набортной оперативной памяти. Первые модели Поисков имели всего лишь 128 Kb, из которых 32 Kb отнимала видео память. У пользователя оставалась всего лишь 96 Kb свободной памяти. Последние модели уже несли на борту 512 Kb, 32 Kb так же уходило под видео память и у пользователя оставалось 480 Kb. Это уже давало шанс запустить что-то еще, кроме самой DOS.
Впрочем, о DOS я заговорил рано, потому что в стандартную поставку входил сам моноблок, блок питания и пара кассет с системными программами и играми. И все. Таким образам, любой контроллер, будь то контроллер дисковода (и, разумеется, сам дисковод) или контроллер джойстика, пользователь должен был приобретать отдельно. А пока, пользователь мог работать с кассетным магнитофоном в качестве носителя информации. Кассетный интерфейс был “скопи-пащен” с буржуйского компьютера IBM PCjr. Формат записи на кассету был идентичен PCjr и еще одному советскому “брату по духу” – Электроника MC-1502, тоже x86 совместимому, и тоже как Поиск, не без ”изюминки” от создателей. И поэтому, пока у нас нет контроллера дисковода, начну я с кассет.
Формат записи на кассету и кассетный интерфейс
Поиск не так популярен среди любителей старых компьютеров, как например, ZX-совместимые и их клоны, поэтому софта для работы с кассетами просто нет, и я решил исправить эту несправедливость. Итак, данные записываются в виде ноликов и единичек. Если полярность успевает смениться с отрицательной на положительную за 1 миллисекунду — то это единичный бит. Если не успевает — то нулевой. Таким образом, ноль – это приблизительно 0.5 миллисекунд, один – 1 миллисекунда. Зная это, можно без проблем декодировать сигнал прямо визуально глазами. Вот, например:
Здесь “размахистые” периоды с большим интервалом – это единицы, короткие – нули. Итого на рисунке изображено 1111 0000 1011 001. Каждая запись начинается с пилот-тона, который состоит из 256 байт 0xFF, то есть 256*8 = 2048 единичных бит, после следует записанный бит ‘0’, и далее синхро-байт 0x16 (00010110). Все данные записываются 256-байтными блоками, после которых следует 2 байта контрольной суммы. Контрольная сумма считается по алгоритму CRC-16 с полиномом 0x1201, начальное значение = 0xFFFF, после подсчета CRC = CRC xor 0xFFFF. После пилот тона, нулевого бита и синхро-байта 0x16 находится 256-байтный заголовок, в котором присутствуют такие важные данные, как имя файла, тип файла, сегмент и смещение куда будет загружена программа.
Заголовок дополняется нулями до 256 байт. Далее идет его контрольная сумма – 2 байта. Последовательность завершается 4 байтами 0xFF. Потом заново идет лидер (пилот-тон) с единицами, бит синхронизации 0, байт синхронизации 0x16 и вот тут уже начинаются блоки с данными. В конце последовательность так же завершается 4мя байтами 0xFF.
Итогом ковыряния с форматом записи стали две небольших утилиты: CAS2WAV и WAV2CAS. Первая позволяет создать из бинарного файла .WAV файл, который в последующем может быть проигран на обычном mp3 плеере. Вторая же, наоборот, пытается из кассетной записи создать бинарный файл. Поэтому, если у кого-то сохранились кассеты от Поиска или от МС-1502, то цифруйте их, пожалуйста, в WAV, для коллекции и истории. Скачать наиболее полный на данный момент набор кассетных программ и игр для Поиска можно здесь: vizersprojects.ru/archive/sannata/apps.zip
Кассеты
Теперь, когда есть возможность создавать WAV файлы, конвертируем кассетный софт и записываем на mp3-плеер. Подключаем плеер к разъему “МАГНИТОФОН” и включаем питание.
В BIOS Поиска, помимо основных функций обработки прерываний, была записана небольшая программа – монитор, которая позволяла ввести имя файла и загрузить его с магнитофона в память:
Программы и игры, в основном, представляли собой русифицированные версии популярных игр и программ с IBM PC. К примеру, Бейсик есть ни что иное, как Microsoft Basic, который был зашит в ПЗУ компьютера IBM PCjr. Найдите два отличия:
Впрочем, справедливости ради, стоит отметить что были и свои собственные игры, к примеру шахматы или реверси.
Дополнительные контроллеры (адаптеры)
Да, как ранее уже упоминалось, к Поиску можно было подключить дополнительные контроллеры, или адаптеры, как сказано в инструкции. Для этого Поиск имел четыре слота расширения, куда можно было установить одновременно до четырех контроллеров. Фактически, шина — стандартная на тот момент ISA-8, но конечно с другим разъемом и каким-то одним (или двумя) инвертированными сигналами. Контроллеры для Поиска выпускались как на заводе, так изготавливались кооперативами и даже любителями.
Первое, что было желанно и необходимо — это контроллер дисковода. С ним Поиск превращался из печатающей машинки для Бейсика и игр в серьезный компьютер с DOS, открывающий пользователю весь набор (ну, почти весь) существующего на тот момент x86 программного обеспечения. Чего только с этими контроллером не делали – турбировали (увеличивали скорость чтения-записи), закладывали в прошивку поддержку 800 Kb форматов дискет, вместо 360 Kb. В общем, они были разные, но в целом работали с дискетами хорошо и быстро. Этой мой контроллер:
А это еще один контроллер дисковода:
Для моделей Поиска с 128Kb оперативной памяти так же необходимо было приобрести “Расширитель оперативной памяти”, что бы запускать что-то еще, кроме самого DOS. “Расширитель оперативной памяти” вставлялся в слот, как обычный контроллер. Были разные модели, на 256 Kb, 512 Kb и даже по слухам на 670Kb. Иногда их совмещали с чем-то еще, например с LPT-портом. На имеющимся у меня экземпляре как раз так и сделано.
Ну и конечно контроллер жесткого магнитного диска с MFM интерфейсом. Зверь редкий и дорогой, как, впрочем, и сам жесткий диск. Позволял подключить к Поиску жесткий диск объемом до 68 Mb. Не менее уникален был и сам шлейф, которым контроллер соединялся с жестким диском.
С ним мне пришлось немного повозиться. Во-первых шлейф. Он не стандартный, и пришлось на скорую руку набросать примерную схему:
И спаять такой переходник:
Дальше, я пытался заставить работать контроллер с имеющимся у меня винчестером Robotron K5504.20 на 20Мб. Низкоуровневое форматирование завершалось без ошибок, но вот при попытке запустить FDISK и разметить системный раздел возникала ошибка: Error reading fixed drive. Я грешил на кабель, перепробовал все комбинации джамперов на контроллере, изменял путем правки в прошивке контроллера параметров для этого конкретного винта — бесполезно. FDISK все-таки иногда запускался, но при попытке записать разделы на диск зависал. Причем я точно знал, что этот Гроботрон полностью рабочий — он без проблем форматировался, размечался и вообще чувствовал себя совершенно нормально на моей XT-шке. Виновник торжества:
После «прозвонки» и проверки кабеля в стотысячный раз я плюнул и все-таки решил подключить свой второй MFM жесткий диск Seagate ST-225, который стоял у меня в XT-шке. Правда, пришлось предварительно делать с него бекап по нульмодему на основной компьютер. И, о чудо!, он без проблем отформатировался и заработал с первого раза. Так и пришлось оставить Сигейт на Поиске, а Гроботрон поставить в XT-шку, хотя я хотел наоборот.
Еще существовал контроллер джойстика и соответственно сам джойстик. Забавное устройство, ни с чем кроме себя не совместимое и ни на что не похожее. Программа драйвер позволяла задать соответствие наклона какой-либо клавише на клавиатуре, тем самым, когда джойстик наклоняли влево, эмулировалось нажатие клавиши “влево” и тд. Вообще, хорошая идея. Все это позволяло играть в игры джойстиком, даже если игра джойстик не поддерживала.
Потроха и ремонт
Поиск у меня сломался давно и был неисправен. Неисправность заключалась в периодическом внезапном зависании или даже перезагрузке. Логично предположив, что все дело в памяти и, запустив программу CheckIT с тестом, я увидел такую печальную картину:
Берем в руки кувалду отвертку, отвинчиваем несколько винтов снизу и снимаем верхнюю крышку с клавиатурой. Взору открывается системная плата целиком:
В центре керамический процессор, в правом верхнем углу на панельке ПЗУ с BIOS, а снизу 16 запаянных микросхем К565РУ7Г – это и есть память. Шестнадцать микросхем выпаивать мне не хотелось, поэтому я решил попробовать способ, который где-то раньше слышал: прямо сверху на ножки старой микросхемы одевать новую и смотреть по тесту памяти, изменится ли ситуация. Если что-то меняется, то заменять микросхему. Меня останавливало только одно – нужно каждый раз при надевании новой микросхемы на старую подключать клавиатуру, грузить DOS, грузить CheckIT и запускать тест. И ладно бы со временем, которое тратится на загрузку программы… Еще у клавиатуры не очень надежный шлейф, и от частого включения – отключения ему лучше точно не будет. Короче лень двигатель прогресса. Из архивов был вытащен на свет божий старый добрый TASM (ассемблер). Решено было написать тест, который зашивался бы прямо вместо BIOS и стартовал сразу при включении компа.
Вообще, написание программы на ассемблере вместо BIOS немного отличается от написания программы на ассемблере под DOS, например тем, что у нас нет привычных прерываний BIOS (ведь мы его и пишем) и ДОС, и для того, что бы что-то выводить на экран нужно рисовать символы вручную. С другой стороны, вся память в нашем полном распоряжении и с ней можно делать все что угодно. Ну, правда, в одних регистрах много не сохранишь данных, поэтому все-таки какие-то переменные приходится хранить в памяти. Ну и стек конечно тоже, ибо без стека ни подпрограмму не вызвать, ни значения регистра сохранить. Короче стек тоже полезная вещь. Поэтому я сначала тестирую первый килобайт памяти – если есть ошибки, то пикаем три раза и вешаем процессор. Если все нормально – устанавливаем в первый килобайт стек, переменные и начинается выполнение основного теста.
Итого, немного говно так_себе_кода (ибо на коленке и для себя) и тест готов. Зашиваю в ПЗУ, включаю компьютер и вижу то же самое, что показывал мне CheckIT, только уже в своем тесте и моментально:
Все, теперь постепенно начинаю “насаживать” заведомо исправную микросхему поверх впаянных. Довольно быстро нашел первую сбойную в районе 152Kb, заменил, потом долго возился с ошибками в районе 264Kb, но постепенно уменьшал, уменьшал и свел до нуля. Сменил в итоге семь микросхем (возможно, некоторые зря), заодно поднял их на панельки:
Семь хоть и много, но не шестнадцать все-таки. Мой тест проходит без ошибок, CheckIT без ошибок и вообще, все мыслимые и не мыслимые тесты памяти – без ошибок. Победа!
С дисководом, а тем более с жестким диском, Поиск в буквальном смысле «оживал» и становился большим серьезным компьютером. Где оставались те кассетные игрушки, когда тут можно было играть в такое:
Ну и конечно, винда, just for lulz, как говорится. Версия 3.0, работает не торопливо (а чего вы хотели от 480 Kb оперативки), но работать можно.
Апгрейд (наполовину удачный)
Еще прошлой зимой из Китая ко мне приехало два процессора NEC V20. В теории, он полностью совместим по ногам с i8088, работает несколько быстрее за счет улучшенного аппаратной реализации деления и умножения, содержит в себе набор инструкций 80186 процессора (например таких, как сдвиги с аргументом, отличным от 1, сохранение сразу всех регистров в стек и тд). Почти 80286, разве что только без защищенного режима. Ну и как приятный бонус для любителей ретро, у него есть аппаратная поддержка команд i8080 процессора, таким образом, на нем через специальную программу можно запускать нативно софт от CP/M для i8080.
Поэтому берем в руки кувалду, паяльник с оловоотсосом, запасаемся терпением и аккуратно выпаиваем советский КМ1810ВМ88. Ставим DIP-40 панельку, на которой уютно устраивается NEC V20:
Как и предполагалось, компьютер стартует без проблем. Теперь можно немного померить попугаи. Сперва тесты оригинального КМ1810ВМ88. Общее быстродействие:
Видео подсистема с КМ1810ВМ88
А дальше уже NEC V20:
Тест CPU с NEC V20:
И видео подсистема:
Видно, что с V20 компьютер работает несколько быстрее, особенно это касается математики. Так же несколько быстрее стала и видео-подсистема из-за того, что в функциях BIOS программного рендеринга символов кое-где присутствуют операции умножения и деления. Хороший процессор, чего говорить. Вот только дальше меня ждал неприятный сюрприз — когда я попробовал после этих тестов загрузить обычный Volkov Commander я увидел следующее:
Заметно, что каждый второй символ на экране не прорисовывается. Я долго задумчиво смотрел на код BIOS, отвечающий за все, что связано с выводом символов, просматривал программы обработки int 10h. Я думал будет вполне легко пропатчить BIOS на предмет не совместимости с NEC V20, поскольку я знал, что хоть NEC V20 и i8088 используют один и тот же набор команд, но различия все-таки есть. Проверял я код вот на какие вещи:
1) POP CS, и вообще двух-байтные POP‘ы мне не встретились в листинге. v20 их не ест;
2) После MUL v20 не сбрасывает ZF, если резалт 0. Есть несколько MUL в коде, но ZF после операций не проверяется нигде;
3) Экзотические AAD/AAM не встречаются нигде. В интеле инструкции могут принимать аргумент, в V20 он всегда = 0Ah;
4) То же касается и инструкции SALC (D6 opcode), которую v20 интерпретирует как XLAT. Нет таких инструкций в BIOS;
Пофиксить проблему с наскоку не получилось. Дальше, по подсказке одного пользователя с форума ZX-PK.ru, я обратил внимание на тот факт, что глючат таким образом программы, которые работают с видео-памятью напрямую. У Поиска, как уже говорилось, нет физического текстового режима, поэтому когда какая-либо программа пытается что-то записать в область текстовой памяти 0xB800 генерируется немаскируемое аппаратное прерывание и управление передается обработчику Int 2. Обработчик NMI в свою очередь считывает значение из порта 0x28, в котором находится смещение по которому произошла запись в память, и начинает попиксельно рисовать символ в графической видео-памяти 0xBC00. После того, как символ нарисовался в видеопамяти происходит выход из обработчика NMI. Вот примерно по такой упрощенной схеме и происходит визуализация символов из текстового режима в графическом режиме. Так вот, путем проб и ошибок выяснилось, что когда в память записываются сразу несколько символов командой REP STOSW, скажем два, то не срабатывает аппаратная ловушка адреса и в порту 0x28 вместо смещения на последний символ сидит смещение предыдущего символа. Так же не вызывается и NMI. Можно предположить, что у V20 тратится меньше тактов на каждый цикл REP STOSW, а схема рассчитана на большее количество тактов, поэтому схема срабатывает лишь на каждый второй цикл. Итого, проблема оказалась аппаратной, к сожалению. Конечно можно обойти ее и программно, например в качестве костыля в обработчике NMI рисовать не только текущий символ, но сразу и соседа, но это, как вы сами понимаете, именно костыль. Если не обращать внимание на этот недостаток, остальные программы работают нормально, включая игры.
В заключение
ПК Поиск — это мой первый компьютер, наверное именно по этому к нему уделяется больше внимания, нежели к другим моим старым железкам. В технических вопросах очень здорово помогает форум ZK-PK.ru и его раздел «Поиск». Сейчас несколькими энтузиастами готовятся к выпуску платы-реплики контроллеров MFM диска, дисковода. Вообще, планов много, например изготовление контроллера IDE (тем более, что такой контроллер существовал на закате выпуска Поисков), возможно контроллер IDE-CF (compact flash). Если у кого-то вдруг сохранились кассеты с записью, или какие-то редкие контроллеры (адаптеры), был бы рад обсудить возможность их получения (в личных сообщениях). Всем удачи!