понедельник, 18 марта 2024 г.

Эволюция накопителей

 Рост вычислительных возможностей компьютеров вел и к увеличению объема и сложности данных, с которыми работали компьютеры. Изначально, для хранения данных использовались перфоленты и перфокарты, применявшиеся еще с 19-ого века для управления ткацкими станками, в которых был закодирован узор на ткани. В ранних компьютерах первого поколения информация записанная на такие носители читалась механически, с помощью контактов, а позже с помощью специальных фотодатчиков, для которых наличие отверстия означает единицу, отсутствие - ноль. Обычные перфоленты умещают 1 байт на 2,54 мм, перфокарта - 187х82 мм - 80х12 бит информации.

Низкая надежность - лента или перфокарта могла порваться после множества использований или из-за небрежного обращения и низкая скорость чтения/записи привели к появлению накопителей не на механическом, а электромагнитном принципе - магнитной ленте, жестких и гибких магнитных дисках. Самая распространенная магнитная лента 9-дорожечного формата, разработанная в 1960х годах, которая применялась в “серьезных” компьютерах, позволяла хранить от 32 до 243 бит/мм, что давало в от 20 до 140 Мбайт на стандартную катушку. Применяемая в бытовых компьютерах для хранения применялась компакт-кассета, однако из-за отсутствия единого стандарта записи её объем менялся для разных компьютеров, например на одну сторону 60-минутной кассеты ZX Spectrum мог записать около 600 кБайт, а Радио-86РК только 67 кБайт из-за более низкой скорости, а значит более отказоустойчивой записи.

Жесткие магнитные диски впервые были применены в компьютерах IBM 305 RAMAC в 1956 году. Эти диски имели диаметр 24 дюйма (около 61 см) и способность хранить до 5 мегабайт данных. С конца 60х по середину 80х магнитные диски уменьшились в размерах до 14 дюймов, а затем до 8 дюймов. Емкость увеличилась до нескольких десятков мегабайт. В 1980-е и 1990-е годы произошел переход к 5,25-дюймовым и 3,5-дюймовым дискам. Емкость дисков увеличилась до нескольких сотен мегабайт и затем гигабайт. С 2000 до 2010 ёмкость увеличилась до нескольких терабайт,  Сейчас максимальный объем жестких дисков исчисляется десятками терабайт.

Гибкие магнитные диски впервые были разработаны в IBM в конце 1960-х и начале 1970-х годов. Первые флоппи-диски имели размер 8 дюймов и небольшую емкость, обычно несколько сотен килобайт. В 1980-е годы появились более компактные флоппи-диски с размером 5,25 дюйма. Емкость увеличилась до нескольких мегабайт.  В конце 1980-х - начале 1990-х годов стандартным стал размер флоппи-дисков 3,5 дюйма. Эти диски имели увеличенную емкость - обычно 1,44 Мб или 2,88 Мб.

В начале 1980-х годов появились компакт-диски (CD), представляющие собой оптические накопители с возможностью записи и воспроизведения аудио и данных. CD-ROM использовались для хранения программ и мультимедийных файлов. DVD, более емкие и позволяющие хранить видео с высоким качеством, пришли на замену CD в 1990-2000. Они имеют большую емкость и были использованы для хранения фильмов и другой мультимедийной информации. Blu-ray Disc, с еще большей емкостью и поддержкой высокого разрешения видео, стал следующим шагом в развитии оптических накопителей. Blu-ray обеспечивает хранение данных до 25-50 ГБ на один диск. Кроме того существовала технология магнитооптических дисков, которые объединили магнитные и оптические технологии для повышения емкости хранения данных. Их использовали для архивирования и долгосрочного хранения больших объемов информации. Технические характеристики на различных этапах развития включают в себя емкость хранения данных (CD - около 700 МБ, DVD - до 4,7 ГБ на один слой), скорость чтения и записи, форматы файлов и возможные защитные механизмы.

История USB-Flash накопителей, или «USB-флешек», имеет непродолжительную, но быструю и значительную эволюцию. Принцип работы флэш-памяти основан на использовании полупроводниковой технологии. Флэш-память состоит из множества ячеек памяти, каждая из которых хранит бит информации в виде заряда.  USB-флешки впервые появились в конце 1990-х - начале 2000-х годов. Их емкость начиналась с нескольких мегабайт и составляла порядка 16-64 Мб. С 2000 по 2010 годы емкость «флешек» резко возросла, достигая от нескольких сотен мегабайт до нескольких гигабайт. Скорость чтения и записи также увеличилась, применялись интерфейсы USB 2.0 и 3.0. В настоящее время USB-флешки имеют емкость от нескольких гигабайт до нескольких терабайт. Скорость чтения и записи достигает огромных значений благодаря интерфейсу USB 3.0 и 3.1. Также начали появляться флешки с поддержкой USB Type-C и интерфейсом USB 3.2, обеспечивающие высокую скорость передачи данных.

понедельник, 26 февраля 2024 г.

Концепты устройств

Перед тем как приступить к практическому построению самодельных компьютеров я рисовал на бумаге свои задумки. Приведу некоторые из них.

ZComputer Keyboard и БК 0001

ZComputer Keyboard. Вот что делают Visio и много свободного времени
Один из самых ранних — ZComputer Keyboard — придуман, конечно же, по мотивам моноблочных домашних компьютеров, а именно советского БК. Клавиатура с советскими названиями управляющих клавиш, а рисунки на функциональных клавишах взяты с клавиатур Apple. По задумке компьютер должен был иметь встроенный блок питания, 4 USB разъема, аудио вход-выход, видеокарту с выходом VGA и оптический привод перезаписываемый (ОД-ПЗП) — то есть CD-RW. Мышь подключается по PS/2.
Планшет БК 0001
Выпад в сторону Apple iPad сразу после выхода. Интернета у меня не было, поэтому отечественный планшет я видел так, с двумя USB-портами на боку. Интерфейс срисован с Nokia Series 40. Дизайн панели плеера (срез с полосой прокрутки и тремя близко расположенными круглыми клавишами) проходит через многие мои концепты.

Ранние ZComputer

Следующая серия концептов охватывает период до осознания той платформы, на которой будет расти мой ZComputer. То есть до того как я понял, что из специализированных советских микросхем серии К145 конфетку не сделаешь, как не пытайся.
Для начала — «road map» — план эволюции моего компьютера. Даже из 2017 года он выглядит смешно:
ZComputer 1. Коробка-системный блок, к которому подключаются цифровая (16-ричная или что-то похожее) клавиатура и семисегментный экран.

ZComputer 1.ext (EXTended — расширенный). Должен был получить видео-выход с текстовым режимом (надеюсь что аналоговый), QWERTY-клавиатуру (надеюсь что PS/2) и накопитель в виде дисковода.
ZComputer 1.add (ADDed) Тот же ZC 1.ext собранный в одном корпусе с добавлением RAM-диска.
ZComputer 2.hm (HDD and Mouse) Добавлен жесткий диск, мышь. Дисковод размещен в системном блоке. Наконец-то графический режим.
ZComputer 2.cd (Compact Disk) Флоппи-привод заменён на оптический привод.
ZC 2.int (Integrated) Системный блок размещен в одном корпусе с монитором, оптический привод вынесен отдельным блоком.
Давайте посмотрим, как я видел внутреннее устройство ранних ZComputer. На одной плате должны был разместиться процессор, контроллер клавиатуры, интерфейс динамика-бипера и (не нарисованный, но подразумеваемый) контроллер системной шины. На шине должны быть следующие устройства: ОЗУ и ПЗУ, контроллеры дисплея, магнитофона и дисковода (НГМД).
Интересно, что в представленной выше эволюции нет никакого упоминания о магнитофонной ленте как носителе информации.
Планируемая структура ранних ZC

Передовые разработки

ZComputer Core
 ZComputerCore это комплекс из вычислительного модуля и корпусов для него. Вычислительный модуль содержит систему на чипе (центральный процессор, графический процессор, контроллер интерфейсов), ОЗУ, ПЗУ. Интерфейсы выведены на разъем, например SMARC. Корпуса представляют себя устройства ввода-вывода с гнездом под вычислительный блок. Корпус-планшет оборудован сенсорным экраном, аккумулятором и периферийными разъемами (аудио, USB). Ноутбук на ZC Core строится добавлением к планшету клавиатуры с дополнительным аккумулятором. Корпус стационарного компьютера исполнен в виде моноблока. Допускается возможность организации ZC Core в стойку, кластер.


ZComputer Cube
ZComputer Cube представляет из себя сверкомпактный (умещающийся на ладони) компьютер в защищенном корпусе имеющем форму куба. Доступ к разъемам закрыт сдвигающейся шторкой. Компьютер оборудован разъемами аудио, USB, разъемом питания и разъемом системной магистрали (могут быть объединены). ZC Cube устанавливается в док-станцию, являющуюся блоком питания, экраном (возможно сенсорным) и разветвителем интерфейсов USB.

воскресенье, 10 декабря 2023 г.

Коммунизм и его основы

Коммунизм - это политическая и экономическая идеология, которая стремится к установлению общества, в котором все имеют равный доступ к ресурсам и богатству, а производственные средства находятся в общественной собственности. В коммунистическом обществе нет частной собственности на землю, фабрики, заводы, магазины и другие средства производства. Вместо этого они принадлежат всему обществу. Коммунизм также предполагает отсутствие классовых различий и государства. Эта идеология была разработана Карлом Марксом и Фридрихом Энгельсом в 19 веке и была реализована в СССР и других странах в течение 20 века.

Идеи коммунизма основаны на философии материализма и диалектическом материализме, которые разработали Карл Маркс и Фридрих Энгельс. Они считали, что экономические и социальные отношения в обществе определяются производственными отношениями и что история развивается в результате борьбы между классами. Они также утверждали, что капитализм создает эксплуатацию рабочих классов и приводит к неравенству и социальной несправедливости. В своих работах Маркс и Энгельс предложили коммунистическую модель общества, которая была основана на общественной собственности на производственные средства и равном распределении богатства.

Материализм - это философская концепция, согласно которой материя является основой всего существующего в мире. Он основан на представлении о том, что мир существует независимо от нашего сознания и мышления, и что он может быть познан и объяснен только через изучение его материальных свойств и законов. Материализм утверждает, что все явления и процессы в мире, в том числе человеческое сознание и мышление, имеют материальную природу и обусловлены материальными условиями. Он является одной из основных философских основ коммунизма и диалектического материализма.

Как и любая философская концепция, материализм не может быть доказан или опровергнут научными методами. Он является лишь одним из возможных подходов к пониманию мира и может быть верным или нет в зависимости от контекста и точки зрения.

Как уже было сказано, материализм не может быть доказан или опровергнут научными методами, так как это философская концепция. Однако, можно привести аргументы в пользу или против материализма.

Доказательства материализма:

  • Материя и энергия существуют независимо от нашего сознания и восприятия.
  • Наблюдения и эксперименты подтверждают, что материя и энергия являются основными строительными блоками всего существующего.
  • Материальные объекты могут быть измерены и описаны с помощью научных методов.
  • Материальные процессы, такие как химические реакции и физические законы, объясняют многие явления в мире.

Опровержения материализма:

  • Существуют явления, которые невозможно объяснить только материалистическими методами, например, сознание, свобода воли, моральность.
  • Некоторые ученые и философы отвергают материализм в пользу других концепций, таких как идеализм или феноменализм.
  • Возможно, что существует некая высшая реальность, которая не поддаётся материальному описанию.
  • Материализм не может объяснить все явления в мире, например, феномены связанные с квантовой механикой.

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

Диалектический материализм - это философская теория, основанная на учении Карла Маркса и Фридриха Энгельса, которая объясняет развитие общества и природы через противоречия и борьбу между противоположностями. Она утверждает, что материальный мир является основой всего существующего и что идеи и культура происходят из материальных условий общественной жизни. Диалектический материализм также подчеркивает роль классовой борьбы в историческом процессе и призывает к действию для достижения социальной справедливости и равенства.

Доказательства:

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


Опровержения:

  • Некоторые культурные явления, такие как искусство и литература, могут быть созданы вне материальных условий общественной жизни.
  • Некоторые изменения в общественной жизни могут быть вызваны не борьбой между классами, а технологическими или экономическими инновациями.
  • Диалектический материализм не учитывает роль случайных факторов и личностных качеств в общественном развитии и историческом процессе.

Некоторые из указанных опровержений могут быть решены, но другие не могут. Например, можно утверждать, что культурные явления могут быть созданы вне материальных условий общественной жизни, но в то же время материальные условия могут оказывать значительное влияние на культуру и идеологию. Однако, роль случайных факторов и личностных качеств в общественном развитии и историческом процессе не может быть полностью учтена и объяснена диалектическим материализмом, так как они не подчиняются законам борьбы и противоречия.

Итоги

 Основные постулаты материализма:
1. Мир существует независимо от сознания человека.
2. Мир объективен и реален.
3. Материя является основой всего существующего.
4. Сознание и мышление возникают на основе материальных процессов в мозгу.

Основные постулаты диалектического материализма:
1. Мир развивается, изменяется и противоречив.
2. Противоречия являются движущей силой развития.
3. Развитие происходит через борьбу противоположностей.
4. Изменения качественного характера происходят на основе накопления количественных изменений.

Основные постулаты коммунизма:
1. Общественное производство должно быть организовано на основе общественной собственности на средства производства.
2. Распределение продукции должно осуществляться на основе потребностей каждого человека.
3. Классовая борьба должна быть устранена путем уничтожения эксплуатации человека человеком.
4. Государство должно быть устранено как инструмент подавления одного класса другим.

Воронежские ЭВМ

История

31 декабря 1957 года Советом Министров СССР было принято постановление о строительстве завода полупроводниковых приборов в городе Воронеже. С 1959 по 1965 годы в эксплуатацию были введены объекты производственного и вспомогательного назначения общей площадью в 40 тыс. квадратных метров. По Ленинскому проспекту были выстроены цеха, котельная, сборочный корпус, столовая для сотрудников.

В январе 1959 года было создано Особое конструкторское бюро (ОКБ), начальником которого и одновременно главным технологом был назначен В. Г. Колесников. 18 июня 1959 выпущена первая партия кремниевых сплавных высоковольтных диодов типа Д202-Д205 в количестве 9 штук. Эту дату принято считать днём рождения ВЗПП. В июле было изготовлено 9635 диодов, а в декабре — 75 тысяч. В июле 1960 года на заводе был создан отдел главного технолога, а также запущена первая конвейерная печь для получения сплавных германиевых переходов для транзисторов.

В 1961 году создан научно-исследовательский институт полупроводникового машиностроения (НИИПМ) со специализацией в области научно-исследовательских и опытно-конструкторских разработок по созданию механизированных линий и отдельных видов технологического и испытательного оборудования для производства полупроводниковых приборов и интегральных схем.

9 мая 1961 года при ВЗПП было образовано Центральное Конструкторское Бюро, которое в 1983 году стало Научно-исследовательским институтом электронной техники (НИИЭТ).

В 1965 году во время визита на ВЗПП министра электронной промышленности А. И. Шокина заводу было поручено провести научно-исследовательскую работу по созданию кремниевой монолитной схемы — НИР «Титан», которая была досрочно выполнена уже к концу года. Тема была успешно сдана Госкомиссии, и серия 104 микросхем диодно-транзисторной логики стала первым фиксированным достижением в области создания интегральных схем твердотельной микроэлектроники.

Микросхема серии 104, 1979 года

В 1972 году сдано в эксплуатацию здание Воронежского государственного союзного проектного института (ВГСПИ). С 1968 года институт работал как филиал Московского ГСПИ, а с 1 января 1971 года Воронежский филиал МГСПИ стал полностью самостоятельной организацией. В задачи Института входила разработка проектно-сметной документации для воронежских предприятий – завода электровакуумных приборов (ЭВП), завода полупроводниковых приборов (ВЗПП), завода радиодеталей, а также для иногородних заказчиков.

Строительство здания ВГСПИ

В декабре 1976 было сформировано производственное объединение «ЭЛЕКТРОНИКА», в которое в разное время вошли ВЗПП, ЦКБ (позже НИИЭТ), Научно-исследовательский институт полупроводникового машиностроения (НИИПМ), «Видеофон», «Процессор», «Алиот» (Нововоронеж) и другие предприятия электронной промышленности.

Расположение предприятий ПО "Электроника"

В 1982 построен завод "Процессор", специализирующийся на сборке компьютеров из компонентов производства ВЗПП и других заводов МЭПа (Минска, Баку, Зеленограда).

Генплан завода "Процессор"

К середине 1980-х годов на предприятиях НПО «Электроника» трудился огромный коллектив, численность которого составляла до 40 тыс. человек.

Компьютеры производства ПО "Электроника", г. Воронеж

МС 0102, "Электроника 89". 11-БК0.305.172ТУ-87

МС 0104, Комплекс информационно вычислительный 32-х разрядный. 11-БК0.305.173ТУ-87

МС 0508 ПЭВМ Электроника-85.1. Копия DEC Pro 380. В серию не пошла (выпущено менее 10 машин). Планировалось 11 исполнений.

МС 0515. ПЭВМ УПБК-16. 11-БК0.305.328ТУ-93.

МС 0532. ПЭВМ ОКР "Тезис 2". 11-БК0.305.440ТУ-93

МС 0585ПЭВМ Электроника-85. Копия DEC Pro 350, 11 исполнений. 11-БК0.305.111ТУ-89.

МС 1211. Микро-ЭВМ "Электроника 60-1". 11-БК0.305.033ТУ-84

МС 1212. Микро-ЭВМ "Электроника 60-1". 11-БК0.305.034ТУ-84

МС 1213. Микро-ЭВМ "Электроника 81-1". 11-БК0.305.060ТУ-84

МС 1260. микро-ЭВМ "Электроника 60М". 11-БК0.305.167ТУ-86


МС 1280. микро-ЭВМ "Электроника 81Т". 11-БК0.305.000ТУ-84


~1975 - 16-разрядная Электроника-100-16

~1985 - 32-разрядная Электроника-82.


Фотографии с заброшенного завода процессор.

Технологии в вычислительной технике

Технологии перечисляются от самой низкоуровневой к самой высокоуровневой.

  1. Логический уровень. Булева алгебра, системы счисления, конечные автоматы и алгоритмы. Логическая (цифровая) схемотехника.
  2. Языки ассемблера (и машинные языки). Архитектура процессора, наборы инструкций. Архитектуры RISC, CISC; фон-Неймана и гарвардская.
  3. Языки высокого уровня. Компилируемые (Fortran, PL/M, C), интерпретируемые (Basic, Python, PHP). Процедурные, функциональные (Lisp), объектно-ориентированные (C++, Java). Архитектура персонального компьютера.
  4. Системное ПО. Ядро операционной системы (устройства и драйверы, задачи их взаимодейстие и диспетчериазция; накопители и файловые системы). Интерфейсы пользователя (CLI, GUI).
  5. Прикладное ПО. СУБД (SQL), локальные сети (TCP/IP, Ethernet, WiFi), веб-серверы и их протоколы (FTP, HTTP, SSH), веб-браузеры (JavaScipt, CSS/HTML).
  6. Виртуализация (Xen).

МЭП СССР (1984)

Первое Главное управление

Главное управление развитие науки и производства СВЧ приборов. По приказу МЭП№206 от 18.06.70 код "А".
  1. Завод «Агат»
  2. ОКБ при заводе «Агат»
  3. Производственное объединение «Гранит»
  4. Производственное объединение «Знамя»
  5. Научно-производственное объединение «Исток»
  6. Саратовское производственное объединение «Контакт»
  7. Производственное объединение «Октава»
  8. Производственное объединение «Плутон»
  9. Производственное объединение «Радий»
  10. Производственное объединение «Тантал»
  11. Научно-исследовательский институт «Титан», Научно-производственное объединение «Торий»
  12. Саратовское научно-производственное объединение «Алмаз»
  13. Орджоникидзевский завод «Янтарь»
  14. ОКБ при заводе «Янтарь»
  15. Горьковский институт «Салют»
  16. Научно-исследовательский институт «Криоэлектроника», Научно-производственное объединение «Сатурн»
  17. Центральный научно-исследовательский институт измерительной аппаратуры (ЦНИИИА)

Второе Главное управление 

Главное управление развития науки и производства полупроводниковых приборов. По приказу МЭП№206 от 18.06.70 код "Б".
  1. Александровский завод им. 50-летия СССР. г. Александров 
    Производит диоды, транзисторы, микросхемы, микросборки. Штат 8000 (РФ - 200).
  2. Производственное объединение «Альфа», г. Рига
  3. Научно-производственное объединение «Ани», г. Ереван (АрССР) п/я А-3908.
    Производство: магнитофоны: «Электрон-202С, -204С, -301С».
  4. Брянский завод полупроводниковых приборов, г. Брянск
    Производит микросхемы, транзисторы, тиристоры, диоды.
  5. Производственное объединение «Гамма», Запорожье 

  6. Научно-производственное объединение «Дельтон», г. Ливны
  7. Производственное объединение «Днепр», г. Херсон

  8. Производственное объединение «Изомер» 
    Новосибирский завод полупроводниковых приборов (НЗПП) с ОКБ и Томский НИИ полупроводниковых приборов.
  9. Производственное объединение «Изотоп»
  10. Киевское производственное объединение «Кристалл», г. Киев
    НИИ «Микроприбор» и его опытный завод, Киевский завод полупроводниковых приборов.
    В начале 80-х годов в ПО "Кристалл" работало более 30 тыс. человек. В 80-е годы выпускались разработанные в объединении интегральные схемы (в том числе около 30 типов БИС), калькуляторы, микроконтроллеры, микро-ЭВМ и др.
  11. Научно-производственное объединение «Научный центр», г. Зеленоград
    Включало: НИИ микроприборов (НИИМП), НИИ точного машиностроения (НИИ ТМ) НИИ точной технологии (НИИ ТТ), НИИ материаловедения (НИИМВ), НИИ молекулярной электроники (НИИМЭ), НИИ физических проблем (НИИ ФП); завод «Компонент», завод «Элион», завод «Ангстрем»,, завод «Элма», завод «Микрон».

  12. Мордовское производственное объединение «Орбита»
  13. Производственное объединение «Планета»
  14. Производственное объединение «Протон»
  15. Производственное объединение «Родон»
  16. Московский завод «Старт»
  17. Производственное объединение «Тор»
  18. Производственное объединение «Фотон»
  19. Производственное объединение «Электронприбор»
  20. Электротехнический завод им. Пегельмана
  21. Производственное объединение «Элькор»
  22. Научно-исследовательский институт «Пульсар»
  23. Научно-исследовательский институт «Сапфир»

Третье Главное управление

Главное управление развития науки и производства лазерной техники и средств отображения информации. По приказу МЭП№206 от 18.06.70 код "В".
  1. Научно-производственное объединение «Восток», г. Новосибирск
  2. Производственное объединение «Восход», г. Калуга
  3. Производственное объединение «Газотрон»
  4. Производственное объединение «Октябрь», г. Винница
  5. Орловский завод им. 60-летия Октября
  6. Научно-производственное объединение «Плазма»
  7. Научно-производственное объединение «Полюс»
  8. Производственное объединение «Рефлектор»
  9. Рязанское производственное объединение электронных приборов
  10. Новосибирское производственное объединение «Союз»
  11. Объединение «Фонон»

Четвертое Главное управление

Главное управление развития науки и производства резисторов. По приказу МЭП№206 от 18.06.70 код "Г".
  1. Производственное объединение «Бином»
  2. Производственное объединение «Гиперон»
  3. Котовский завод им. 50-летия СССР
  4. СКТБ при Котовском заводе им. 50-летия СССР
  5. Производственное объединение «Микрокомпонент»
  6. Производственное объединение «Оникс»
  7. Производственное объединение «Позистор»
  8. Производственное объединение «Радиан»
  9. Производственное объединение «Реом»
  10. Производственное объединение «Эркон»
  11. Производственное объединение «Контакт»
  12. Южноуральский завод радиокерамики
  13. ОКБ при Южноуральском заводе радиокерамики
  14. Научно-исследовательский институт электронно-механических приборов (НИИЭМП)
  15. Центральное Конструкторское бюро технологического оборудования «Нейтрон» (ЦКБТО «Нейтрон»)
  16. Завод «Машиностроитель», г. Нижний Ломов

Пятое Главное управление

Главное управление развития науки и производства радиокомпонентов. По приказу МЭП№206 от 18.06.70 код "Д".
  1. Производственное объединение «Ала-Тоо»
  2. Производственное объединение «Вингис»
  3. Производственное объединение «Десна»
  4. Зубово-Полянский завод радиодеталей
  5. Производственное объединение «Изумруд»
  6. Завод «Исеть»
  7. Завод «Каскад»
  8. Производственное объединение «Коннектор»
  9. Беловский завод «Кузбассрадио»
  10. Производственное объединение «Лтава»
  11. Николаевский трансформаторный завод
  12. Производственное объединение «Сейм»
  13. Научно-производственное объединение «Система»
  14. Тбилисский завод разъёмов
  15. Научно-производственное объединение «Феникс»
  16. Производственное объединение «Элекон»
  17. Производственное объединение «Эльбрус»
  18. Производственное объединение «Эребуни»

Шестое Главное управление

Главное управление специального машиностроения. По приказу МЭП№206 от 18.06.70 код "E".
  1. Брянский завод технологического оборудования
  2. ОКБМ при Брянском заводе технологического оборудования
  3. Волгоградский машиностроительный завод
  4. ОКБ при Волгоградском машзаводе
  5. Производственное объединение «Донец»
  6. Производственное объединение «Кварц»
  7. Научно-производственное объединение «Вакууммашприбор»
  8. Производственное объединение «Обь»
  9. Научно-производственное объединение «Планар»
  10. Завод «Темп»
  11. ОКБМ при заводе «Темп»
  12. Саратовское производственное объединение «Элмаш»
  13. Научно-исследовательский технологический институт (НИТИ), г. Рязань
  14. Выборгский приборостроительный завод
  15. ОКБ при Выборгском приборостроительном заводе
  16. Майский завод электровакуумного машиностроения
  17. ОКБМ при Майском заводе электровакуумного машиностроения
  18. Производственное объединение «Тисса»

Седьмое Главное управление

Главное управление электронного материаловедения. По приказу МЭП№206 от 18.06.70 код "Ж".
  1. Производственное объединение «Алунд»
  2. Производственное объединение «Гранат»
  3. Завод «Кварц», г. Гомель
  4. Орджоникидзевский завод «Топаз»
  5. Костопольский стекольный завод
  6. Кузнецкий завод приборов и ферритов
  7. СКТБ при Кузнецком заводе приборов и ферритов
  8. Производственное объединение «Свет Октября»
  9. Производственное объединение «Сигма»
  10. Завод «Ситалл»
  11. Сходненский стекольный завод
  12. ОКТБ при Сходненском стекольном заводе
  13. Производственное объединение «Факел»
  14. Научно-производственное объединение «Феррит»
  15. Производственное объединение «Феррокерам»
  16. КБ «Алгоритм» с заводом
  17. КБ специальных магнитов с заводом
  18. Завод «Керамика»
  19. СКТБ при заводе «Керамика»
  20. Научно-производственное объединение «Полимер»

Восьмое Главное управление

Главное управление развития науки и производства электронно-лучевых приборов и электронно-оптических преобразователей. По приказу МЭП№206 от 18.06.70 код "И".
  1. Научно-исследовательский институт электровакуумного стекла (НИИЭС)
  2. Завод при НИИЭС
  3. Запрудненский завод электровакуумных изделий
  4. Производственное объединение «Кинескоп»
  5. Гомельское производственное объединение «Коралл»
  6. Завод «Литий»
  7. СКТБ при заводе «Литий»
  8. Научно-производственное объединение «Платан»
  9. Новосибирский завод «Экран»
  10. ОКБ при заводе «Экран»
  11. Производственное объединение «Элкон»
  12. Производственное объединение «Эльта»
  13. Завод «Эмиртон»
  14. ОКБ при заводе «Эмиртон»
  15. Воронежский завод электровакуумных приборов
  16. СКТБ при Воронежском заводе электровакуумных приборов
  17. Паневежский завод «Экранас»
  18. СКТБ при заводе «Экранас»
  19. Производственное объединение «МЭЛЗ»
  20. Центральное конструкторское бюро стандартизации «Нейтрино» (ЦКБС «Нейтрино»)

Девятое Главное управление

Главное управление развития науки и производства конденсаторов. По приказу МЭП№206 от 18.06.70 код "К".
  1. Воронежский завод радиодеталей
  2. СКБ Воронежского завода радиодеталей
  3. Производственное объединение «Катион»
  4. Завод «Кермиконд»
  5. Производственное объединение «Элитан»
  6. Можгинский завод радиодеталей
  7. Витебское производственное объединение «Монолит»
  8. Научно-производственное объединение «Научный центр»
  9. Производственное объединение «Нейрон»
  10. Производственное объединение «Никонд»
  11. Новгородский завод конденсаторов
  12. Производственное объединение «Оксид»
  13. Ленинградское производственное объединение «Позитрон»
  14. Производственное объединение «Поликонд»
  15. Ухтинский завод «Прогресс»
  16. СКТБ при Ухтинском заводе «Прогресс»
  17. Завод «Сигнал», пгт Глазуновка
  18. Завод «Элеконд»
  19. СКТБ при заводе «Элеконд»
  20. Кузнецкий завод приборов и конденсаторов
  21. ОКБ при Кузнецком заводе приборов и конденсаторов
  22. Производственное объединение «Диполь»
  23. Псковское производственное объединение «Рубин»
  24. Производственное объединение «Электролит»

Другие управления и структуры

Главное научно-техническое управление (ГНТУ)

  1. Всесоюзный научно-исследовательский институт «Электронстандарт» (ВНИИ «Электронстандарт»)
  2. Научно-исследовательский институт «Мион»
  3. Центральный научно-исследовательский институт «Циклон» (ЦНИИ «Циклон»)
  4. Московское специальное художественно-конструкторское бюро «Эстэл» (СХКБ «Эстэл»)

Главное технологическое управление (ГТУ)

  1. Нижегородский институт технологии и организации производства (НИИТОП)
  2. Научно-исследовательский проектно-конструкторский институт «Терминал» (НИПКИ «Терминал»)

Главное планово-экономическое управление (ГПЭУ)

  1. Центральный научно-исследовательский институт экономики, систем управления и информации «Электроника» (ЦНИИ «Электроника»)

Главное управление проектирования и капитального строительства (ГУПиКС)

  1. Завод «Айкар»
  2. Проектно-конструкторское объединении «Союзэлектронпроект» (ПКО СЭП)
  3. Завод «Фронтон»
  4. Экспериментальный завод объединения «Союзэлектронстрой»

Объединения на правах Главный управлений

  1. Производственное объединение «Интеграл» (г. Минск, БССР)
  2. Научно-производственное объединение «Механика»
  3. Научно-производственное объединение «Научный центр» (г. Зеленоград)
  4. Ленинградское объединение электронного приборостроения «Светлана» (г. Ленинград)
  5. Производственное объединение «Электроника» (г. Воронеж)

Главное управление кадров и учебных заведений (ГУКиУЗ)

  1. Абовянский вечерний техникум электронных приборов
  2. Беловский вечерний техникум электронного машиностроения
  3. Богородицкий техникум электронных приборов
  4. Винницкий техникум электронных приборов
  5. Донской вечерний техникум электронных приборов
  6. Запорожский техникум электронных приборов
  7. Ивано-Франковский вечерний техникум электронных приборов
  8. Калужский вечерний техникум электронных приборов
  9. Киевский техникум электронных приборов
  10. Козьмодемьянский вечерний техникум электронных приборов
  11. Кочкар-Атинский вечерний техникум электронных приборов
  12. Кузнецкий техникум электронных приборов
  13. Ленинградский радиополитехникум
  14. Московский техникум электронных приборов
  15. Новгородский техникум электронной промышленности
  16. Новосибирский техникум электронных приборов
  17. Орджоникидзевский техникум электронных приборов
  18. Рязанский техникум электронных приборов
  19. Саранский техникум электронных приборов
  20. Саратовский техникум электронных приборов
  21. Смоленский техникум электронных приборов
  22. Ужгородский техникум электронного машиностроения
  23. Фрязинский техникум электронных приборов

воскресенье, 15 мая 2022 г.

The Case for the Reduced Instruction Set Computer: David A. Patterson, David R. Ditzel

Аргументы в поддержку компьютера RISC с упрощенным набором инструкций

Девид Патерсон — Университет Калифорнии, Беркли
Девид Дитзел — Белл лабораториз, Нью Джерси

Перевод Бабкин И., ЛГТУ.

Введение

    Одна из основных задач архитекторов компьютерных систем заключается в разработке компьютеров, которые являются более экономически эффективными, чем их предшественники. Экономическая эффективность включает в себя стоимость оборудования для производства машины, стоимость программирования, а также расходы, связанные с архитектурой через отладку как сначала аппаратного, так и затем программного обеспечения. Если мы рассмотрим историю компьютерных архитектур, то увидим, что наиболее распространенным архитектурным изменением является тенденция к построению все более сложных компьютеров. Предположительно, это дополнительная сложность имеет положительный компромисс в отношении экономической эффективности новых моделей. В данной работе мы предполагаем, что эта тенденция не всегда является экономически эффективной, а на самом деле, возможно, даже приносит больше вреда, чем пользы. Рассмотрим пример компьютера с упрощенным набором команд (RISC), являющимся таким же рентабельным, как и компьютер со сложным набором команд (CISC). В этой статье мы утверждаем, что следующее поколение компьютеров на СБИС может быть более эффективно реализовано в виде RISC, чем CISC.
    В качестве примеров такого увеличения сложности, рассмотрим переходы от IBM System/3 к IBM System/38 [1] и от DEC PDP-11 к VAX II. Сложность определяется размером ПЗУ микропрограмм: для DEC размер вырос с 256×56 в PDP 11/40 до 5120×96 в VAX 11/780.

Причины увеличивающейся сложности

    Почему компьютеры стали более сложными? Мы можем назвать несколько причин:
    Скорость памяти по отношению к скорости процессора. Джон Кок утверждает, что усложнение началось с переходом от IBM 701 к IBM 709 [2]. ЦП 701 был примерно в десять раз быстрее, чем оперативная память — это сделало любые примитивы, реализованные в виде подпрограмм гораздо медленнее, чем примитивы, представленные инструкциями. Таким образом, подпрограммы работы с плавающей точкой стали частью архитектуры с ЦП 709. То, что 709 стал более сложным, привело к улучшению архитектуры и сделало его более рентабельным, чем 701. С тех пор многие инструкции «более высокого уровня» были добавлены к компьютерам в попытке улучшить их производительность. Обратите внимание, что эта тенденция началась из-за дисбаланса в скорости: неизвестно, спрашивали ли себя архитекторы, содержат ли их проекты этот дисбаланс до сих пор.
    Микрокод и БИС. Микропрограммы позволяют реализовать сложные архитектуры более рентабельно, чем жестко заданные схемы управления [3]. Достижения в области интегральных схем памяти, сделанные в конце 60-х и начале 70-х годов привели к тому, что применение микропрограмм стало более экономически эффективным подходом в во всех случаях. После того, как принимается решение об использовании микропрограмм, затраты на расширение набора инструкций становятся очень малыми: всего лишь несколько слов ПЗУ микропрограмм. Поскольку размеры ПЗУ микропрограмм часто бывают кратны степеням двойки, иногда набор инструкций может быть усложнен без каких-либо дополнительных затрат за счет расширения микропрограммы, чтобы полностью заполнить ПЗУ. Таким образом, достижения в  микроэлектронике привели к экономически эффективной реализации архитектур, которые внедрили традиционные подпрограммы в архитектуру. Примерами таких инструкций являются редактирование строк, преобразование целого числа к числу с плавающей точкой и некоторые математические операции, например полиномиальные вычисления.
    Плотность кода. В первых компьютерах, память была очень дорогой. Поэтому было экономически выгодно иметь очень компактные программы. Сложные наборы инструкций часто предвещали за их «возможное» уплотнение кода. Попытка увеличить плотность кода за счет увеличения сложности набора инструкций -- часто палка о двух концах, однако, чем больше инструкций и режимов адресации, тем больше требуется битов для их представления. Имеющиеся данные свидетельствуют о том, что уплотнение кода может быть легко достигнуто лишь путем очистки первоначального набора инструкций. Уплотнение кода важно, однако стоимость увеличения памяти на 10% зачастую намного дешевле, чем выжимание 10% из процессора с помощью архитектурных "инноваций". Затраты на большой процессор связаны с дополнительными наборами схем, в то время как стоимость одночипового процессора, скорее всего, будет связана с замедлением производительности из-за более крупных (следовательно, более медленных) управляющих логических схем (PLA). Cost for a large scale cpu is in additional circuit packages needed while cost for a single chip cpu is more likely to be in slowing down performance due to larger (hence slower) control PLA's.
    Маркетинговая стратегия. К сожалению, основной задачей компьютерной компании является не проектирование наиболее экономически эффективного компьютера, а получение большего количества прибыли от продажи компьютеров. Для того, чтобы продавать компьютеры, производители должны убедить клиентов, что их архитектура лучше, чем у конкурентов. Сложные наборы инструкций, безусловно, являются основным «маркетинговым» свидетельством лучшего компьютера. Для того, чтобы сохранить свои рабочие места, разработчики должны продолжать продавать новые и лучшие проекты. Количество инструкций и их «мощность» часто используются для продвижения, несмотря на реальное использование или эффективность сложного набора инструкций. В каком-то смысле, производители и разработчики не могут быть обвинены в этом до тех пор, пока покупатели компьютеров не ставят под сомнение вопрос о сложности в сравнении с эффективностью. Для полупроводниковых производств, модные .. поскольку они получает большую прибыль если заставят клиентов покупать большие объемы памяти для их относительно недорогого процессора. For the case of silicon houses, a fancy microprocessor is often used as a draw card, as the real profit comes from luring customers into buying large amounts of memory to go with their relatively inexpensive cpu.
Обратная совместимость.  С маркетинговой стратегией соседствует и потребность в обратной совместимости. Обратная совместимость означает, что основным способом улучшить архитектуру является добавление новых и, как правило, более сложных функций. Редко инструкции или режимы адресации, удаленные из архитектуры, приводят к постепенному увеличению числа и сложности инструкций в серии компьютеров. Новые архитектуры, как правило, имеют тенденцию включать все инструкции, найденные в машинах успешных конкурентов. Возможно, это происходит потому, что разработчики и покупатели не имеют никакого реального представления о том, что определяет «хороший» набор инструкций.
Поддержка языков высокого уровня. Поскольку использование языков высокого уровня становится все более популярным, производители стали стремиться обеспечить более мощные инструкции для их поддержки. К сожалению, существует мало доказательств того, что какой-либо из более сложных наборов команд фактически предоставил такую поддержку. Наоборот, мы будем утверждать, что во многих случаях сложные наборы инструкций являются более вредными, чем полезными. Усилия, направленные на поддержку языков высокого уровня, похвальны, но мы считаем, что часто внимание разработчиков было сосредоточено на неправильных вопросах.
Использование многозадачности. Разделение времени требуется, чтобы компьютеры могли реагировать на прерывания с возможностью остановить процесс выполнения и перезапустить его позже. Управление памятью и страницами памяти дополнительно требуется, чтобы инструкции могли быть остановлены до завершения, а затем перезапущены. Хотя ни один из них не оказал большого влияния на разработку самих наборов инструкций, они оказали прямое влияние на реализацию. Сложные инструкции и режимы адресации увеличивают описание состояние процессора, которое должно быть сохранено при получении прерывания. Сохранение этого состояния часто предполагает использование теневых регистров и значительное увеличение сложности микрокода. Эта сложность сильно упрощается на машине без сложных инструкций или режимов адресации.

Как используется CISC?

    Одним из интересных результатов роста стоимости программного обеспечения является возрастающая зависимость от языков высокого уровня. Одним из следствий этого является то, что автор компилятора заменяет программиста на языке ассемблера в принятии решения о том, какие инструкции будет выполнять машина. Компиляторы часто не могут использовать сложные инструкции и не используют коварные приемы, которыми восхищаются программисты на ассемблере. Компиляторы и программисты на ассемблере также правомерно игнорируют те части набора инструкций, которые бесполезны при данных компромиссах между временем и пространством. В результате часто используется довольно небольшая часть архитектуры.
    Например, измерения на конкретном компиляторе IBM 360 показали, что на 10 инструкций приходится 80 % всех выполняемых инструкций, на 16 — 90 %, на 21 — 95 % и на 30 — 99 % [4]. Другое исследование различных компиляторов и программ на ассемблере пришло к выводу, что «небольшая гибкость была бы потеряна, если бы набор инструкций CDC-3600 был сокращен до 1/2 или ¼ доступных сейчас инструкций». [5] Шустек указывает, что на IBM 370 «как уже неоднократно наблюдалось, на очень небольшое количество операций приходится большая часть объёма программы. Программа COBOL, например, выполняет 84 из доступных 183 инструкций, но 48 представляют 99,08% всех выполняемых инструкций, а 26 представляют 90,28%». Аналогичная статистика обнаруживается при исследования использования режимов адресации.

Последствия выбора RISC

    Быстрые изменения в технологии и трудности с реализацией CISC привели к нескольким интересным эффектам.
    Более быстрая память. Достижения в области полупроводниковой памяти внесли несколько изменений в предположения об относительной разнице в скорости между ЦП и основной памятью. Полупроводниковая память работает быстро и относительно недорого. Недавнее использование кэш-памяти во многих системах еще больше уменьшает разницу между скоростями процессора и памяти.
    Иррациональные реализации. Возможно, самым необычным аспектом реализации сложной архитектуры является то, что трудно иметь «рациональные» реализации. Под этим мы подразумеваем, что инструкции специального назначения не всегда быстрее, чем последовательность простых инструкций. Один пример был обнаружен Пеуто и Шустеком для IBM 370 [6] - они обнаружили, что последовательность инструкций загрузки выполняется быстрее, чем инструкция многократной загрузки менее чем для 4 регистров. Этот случай покрывает 40% загрузки нескольких инструкций в типичных программах. Другой случай был найден в VAX-11/780. Инструкция INDEX используется для вычисления адреса элемента массива, одновременно проверяя, соответствует ли индекс границам массива. Очевидно, что это важная функция для точного обнаружения ошибок в операторах языков высокого уровня. Мы обнаружили, что для VAX 11/780, заменив эту единственную инструкцию «высокого уровня» несколькими простыми инструкциями (сравнить, переход, сложение, умножение), мы можем выполнять ту же функцию на 45% быстрее! Кроме того, если компилятор воспользовался случаем, когда нижняя граница была равна нулю, простая последовательность инструкций была на 60% быстрее. Ясно, что меньший код не всегда означает более быстрый код, равно как и инструкции «более высокого уровня» не подразумевают более быстрый код.
    Увеличенное время проектирования. Одна из затрат, которую иногда игнорируют, — это время на разработку новой архитектуры. Несмотря на то, что затраты на репликацию CISC могут быть низкими, время проектирования значительно увеличивается. DEC потребовалось всего 6 месяцев, чтобы спроектировать и начать поставку PDP-1, но теперь требуется не менее трех лет, чтобы пройти тот же цикл для такой машины, как VAX.1. Это длительное время разработки может оказать серьезное влияние на качество конечной реализации. Машина либо анонсируется с использованием технологии трехлетней давности, либо проектировщики должны попытаться спрогнозировать хорошую технологию реализации и попытаться внедрить эту технологию при создании машины. Ясно, что сокращение времени проектирования имело бы очень положительные вклад в качество машины.
    Увеличение ошибок проектирования. Одной из основных проблем сложных наборов инструкций является отладка проекта; обычно это означает устранение ошибок программ микрокода. Хотя это трудно задокументировать, вполне вероятно, что эти исправления были серьезной проблемой с семейством IBM 360, поскольку почти каждый член семейства использовал хранилище управления только для чтения. Серия 370 использует исключительно изменяемое хранилище управления, возможно, из-за снижения стоимости оборудования, но, скорее всего, из-за неудачного опыта с ошибками на 360. Хранилище управления загружается с гибкого диска, что позволяет поддерживать микрокод аналогично операционным системам. Ошибки исправляются, и выпускаются новые дискеты с обновленными версиями микрокода. Команда разработчиков VAX 11/780 осознала возможность ошибок микрокода. Их решение состояло в том, чтобы использовать программируемый логический массив и 1024 слов Записываемого Хранилища системы Управления (Writable Control Store, WCS) для исправления ошибок микрокода. К счастью, DEC более открыто рассказывает о своем опыте, поэтому мы знаем, что было выпущено более 50 исправлений. Мало кто верит, что все ошибки были найдены.

RISC и СБИС

Разработка компьютеров на одном чипе СБИС делает вышеперечисленные проблемы с CISC даже более важными, чем с их реализациями на нескольких чипах малой интеграции. Несколько факторов указывают на то, что компьютер с сокращенным набором команд (RISC) является разумной альтернативой конструкции.
    Осуществимость реализации. Многое зависит от возможности разместить всю конструкцию ЦП на одном кристалле. Сложная архитектура имеет меньше шансов быть реализованной в данной технологии, чем менее сложная архитектура. Хорошим примером этого является серия компьютеров DEC VAX. Хотя модели высокого класса могут показаться впечатляющими, сложность архитектуры делает ее реализацию на одном чипе чрезвычайно сложной с учетом текущих правил проектирования, если не полностью невозможной. Усовершенствование технологии СБИС в конечном итоге сделает возможной версию с одним чипом, но только после того, как будут реализованы менее сложные, но столь же функциональные 32-разрядные архитектуры. Таким образом, компьютеры RISC выигрывают от того, что их можно реализовать в более ранние сроки.
    Время проектирования. Сложность проектирования является решающим фактором успеха компьютера СБИС. Если технология СБИС будет продолжать удваивать плотность кристаллов примерно каждые два года, конструкция, на проектирование и отладку которой требуется всего два года, потенциально может использовать гораздо более совершенную технологию и, следовательно, быть более эффективной, чем конструкция, на разработку и отладку которой требуется четыре года. Поскольку срок изготовления новой маски обычно измеряется месяцами, каждая партия ошибок задерживает поставку продукта еще на четверть; распространенными примерами являются задержки на 1-2 года в Z8000 и MC68000.
    Скорость. Конечным критерием экономической эффективности является скорость, с которой система выполняет заданный алгоритм. Лучшее использование площади чипа и доступность новых технологий за счет сокращения времени отладки способствуют повышению скорости чипа. RISC потенциально выигрывает в скорости просто за счет более простой конструкции. Удаление одного режима адреса или инструкции может привести к менее сложной структуре управления. Это, в свою очередь, может привести к уменьшению размера управляющих логических схем, уменьшению объема памяти микрокода, уменьшению числа логических вентилей на критическом пути машины. Все это может привести к более быстрому времени второстепенного цикла. Если исключение инструкции или адресного режима заставляет машину ускорить второстепенный цикл на 10%, то добавление должно ускорить машину более чем на 10%, чтобы быть рентабельным. До сих пор мы видели мало веских доказательств того, что сложные наборы инструкций являются экономически эффективными в этом отношении.
    Лучшее использование площади кристалла. Если у вас есть большая площадь, почему бы не реализовать CISC? Для заданной площади чипа существует множество компромиссов, которые могут быть реализованы. Мы считаем, что пространство, освобожденное за счет выбора  архитектуры RISC, а не CISC, может быть использовано для того, чтобы сделать RISC еще более привлекательным, чем CISC. Например, мы считаем, что общая производительность системы могла бы повыситься еще больше, если бы эта область использовалась для кэш-памяти на кристалле [7], более крупных и быстрых транзисторов или даже для конвейерной обработки. По мере совершенствования технологии СБИС архитектура RISC всегда может оставаться на шаг впереди сопоставимой CISC. Когда CISC станет возможным реализовать на одном кристалле, RISC будет располагать кремниевой областью для использования методов конвейерной обработки; когда CISC получает конвейерную обработку, RISC будет иметь кэш-память на кристалле и т. д. CISC также страдает от того факта, что его внутренняя сложность часто затрудняет реализацию передовых методов.

Поддержка языков высокого уровня

    Кто-то может возразить, что упрощение архитектуры — это шаг назад в поддержке языков высокого уровня. В недавней статье [8] отмечается, что архитектура высокого уровня не обязательно является самым важным параметром в создании компьютерной системы с поддержкой языка высокого уровня. Компьютерная система с поддержкой языка высокого уровня (КСЯВУ) определяется как имеющая следующие характеристики:
  1. Использует языки высокого уровня для всего программирования, отладки и других взаимодействий пользователя с системой.
  2. Обнаруживает и сообщает об ошибках синтаксиса и времени выполнения в терминах исходной программы на языке высокого уровня.
  3. Не имеет преобразований из пользовательского языка программирования в какие-либо внутренние языки.
    Таким образом, единственной важной характеристикой является то, что сочетание аппаратного и программного обеспечения гарантирует, что программист всегда взаимодействует с компьютером на языке высокого уровня. Программисту никогда не нужно знать о каких-либо более низких уровнях при написании или отладке программы. Пока это требование соблюдено, цель достигнута. Таким образом, для компьютерной системы с языком высокого уровня не имеет значения, реализована ли она с помощью CISC, который "понимает" элементы языка, или если та же реализована с помощью очень быстрой, но простой машиной.
    Опыт, полученный нами после изучения компиляторов, показывает, что нагрузка на авторов компиляторов облегчается, когда набор инструкций прост и единообразен. Сложные инструкции, которые предположительно поддерживают функции высокого уровня, часто невозможно использовать в компиляторе. Сложные инструкции все больше склонны к реализации «неправильной» функции по мере повышения уровня инструкции. Это связано с тем, что функция становится настолько специализированной, что становится бесполезной для других операций. Сложные инструкции, как правило, можно заменить небольшим количеством инструкций более низкого уровня, часто практически без потери производительности. Время создания компилятора для CISC дополнительно увеличивается, поскольку вероятность возникновения ошибок при генерации кода для сложных инструкций выше.
    Существует немало свидетельств того, что более сложные инструкции, предназначенные для облегчения написания компиляторов, часто не достигают своей цели. Это объясняется несколькими причинами. Во-первых, из-за обилия инструкций существует много способов выполнить данную элементарную операцию, что сбивает с толку как компилятор, так и автора компилятора. Во-вторых, многие разработчики компиляторов предполагают, что имеют дело с рациональной реализацией, хотя на самом деле это не так. В результате «подходящая» инструкция часто оказывается неправильным выбором. Например, занесение регистра в стек с помощью команды PUSHL R0 выполняется медленнее, чем занесение его с помощью команды перемещения MOVL R0,-(SP) на VAX 11/780. Мы можем навскидку придумать еще дюжину примеров для этой и почти любой другой сложной машины. Нужно проявлять особую осторожность, чтобы не использовать инструкцию «потому что она есть». Эти проблемы не могут быть «исправлены» разными моделями одной и той же архитектуры без полного уничтожения либо переносимости программы, либо репутации хорошего автора компилятора, поскольку изменение относительного времени выполнения команд потребует нового генератора кода для сохранения оптимальной генерации кода.
    Желание поддержки языков высокого уровня включает в себя как достижение КСЯВУ, так и снижение сложности компилятора. Мы видим несколько случаев, когда RISC значительно хуже, чем CISC, что приводит нас к выводу, что правильно спроектированный RISC кажется разумной архитектурой для поддержки языка высокого уровня.

Работа над RISC-архитектурами

    В Беркли. Исследование архитектуры RISC продолжается уже несколько месяцев под руководством Д.А. Паттерсон и К.Г. Секин. Мы чувствуем, что благодаря разумному выбору надлежащего набора инструкций и разработке соответствующей архитектуры можно получить очень простой набор инструкций, который может быть очень быстрым. Это может привести к существенному увеличению общей скорости выполнения программы. Это концепция компьютера с сокращенным набором команд. Реализации RISC почти наверняка будут дешевле, чем реализации CISC. Если мы сможем показать, что простые архитектуры так же эффективны для программиста на языке высокого уровня, как и CISC, такие как VAX или IBM S/38, мы можем заявить, что разработали эффективную конструкцию.
    В Bell-labs. Проект по проектированию компьютеров, основанный на исследовании языка программирования C, в течение ряда лет разрабатывается небольшим числом людей в научно-исследовательском центре Bell Laboratories Computing Science. Прототип 16-битной машины был спроектирован и построен А. Г. Фрейзером. 32-битные архитектуры были исследованы С.Р. Борн, Д.Р. Дитцель и С. К. Джонсон. Джонсон использовал итеративный метод предложения машины, написания компилятора, измерения результатов, чтобы предложить лучшую машину, а затем повторения цикла более дюжины раз. Хотя первоначальная цель не заключалась в том, чтобы придумать простую конструкцию, результатом стала 32-битная RISC-подобная архитектура, с плотность кода аналогичной PDP-11 и VAX  [9].
    В IBM. Несомненно, лучшим примером RISC является мини-ЭВМ 801, разработанный IBM Research в Йорктаун-Хайтс, штат Нью-Йорк [10, 11]. Этому проекту уже несколько лет, и большая группа разработчиков изучала использование архитектуры RISC в сочетании с продвинутым компилятором. Хотя многие детали отсутствуют, их первые результаты кажутся довольно необычными. Они могут тестировать программы в подмножестве PL/I, которое выполняется примерно пять раз производительность модели IBM S/370 168. Мы, безусловно, с нетерпением ждем более подробной информации.

Выводы

    Несомненно, есть много примеров, когда отдельные «уникальные» инструкции могут значительно повысить скорость программы. Мы редко видели примеры, когда одни и те же преимущества применимы к системе в целом. Мы считаем, что для широкого спектра вычислительных сред тщательное сокращение набора инструкций приводит к повышению рентабельности реализации. Компьютерные архитекторы должны задать себе следующие вопросы при разработке нового набора инструкций. Если эта инструкция встречается нечасто, оправдана ли она на том основании, что она необходима и не поддается синтезу, например, инструкция вызова супервизора. Если инструкция возникает нечасто и может быть синтезирована, может ли она быть оправдана на том основании, что это операция, занимающая много времени, например, операции с плавающей запятой. Если инструкцию можно синтезировать из небольшого числа более простых инструкций, каково общее влияние на размер и скорость программы, если инструкция будет исключена? Можно ли получить инструкцию бесплатно, например, используя неиспользуемое хранилище управления или используя операцию, уже предоставленную АЛУ? Если его можно получить «бесплатно», какова будет стоимость отладки, документации и стоимость будущих реализаций? Вероятно ли, что компилятор сможет легко сгенерировать инструкцию?
    Мы предположили, что стоит свести к минимуму «сложность» (возможно, измеряемую во времени проектирования и элементах) и максимизировать «производительность» (возможно, используя среднее время выполнения, выраженное в задержках вентилей в качестве независимой от технологии единицы времени), при соблюдении определения Компьютерной Системы ЯВУ. В частности, мы считаем, что компьютеры СБИС больше всего выиграют от концепций RISC. Слишком часто быстрое развитие технологии СБИС использовалось как панацея для усложнения архитектуры. Мы считаем, что каждый транзистор будет ценным как минимум в ближайшие десять лет. Хотя тенденция к усложнению архитектуры может быть одним из путей к улучшению компьютеров, в этой статье предлагается другой путь — компьютер с сокращенным набором команд.

Источники

  1. Utley и др., "IBM System/38 Technical Developments," IBM GS80-0237, 1978.
  2. J. Cocke, private communication, February, 1980.
  3. S.S. Husson, Microprogramming: Principles and Practices, Prentice-Hall, Engelwood, N.J., pp. 109-112, 1970.
  4. W.C. Alexander and D.B. Wortman, "Static and Dynamic characteristics of XPL Programs," Computer, pp. 41-46, November 1975, Vol. 8, No. 11.
  5.  C.C. Foster, R.H. Gonter and E.M. Riseman, "Measures of Op-Code Utilization," IEEE Transactions on Computers, May, 1971, pp. 582-584.
  6. B.L. Peuto and L.J. Shustek, "An Instruction Timing Model of CPU Performance," Conference Proc., Fourth Annual Symposium on Computer Architecture, March 1977.
  7. D.A. Patterson and C.H. Srquin, "Design Considerations for Single-Chip Computers of the Future," IEEE Journal of Solid-State Circuits, IEEE Transactions on Computers, Joint Special Issue on Microprocessors and Microcomputers, Vol. C-29, no. 2, pp. 108-116, February 
  8. "Retrospective on High-Level Language Computer Architecture," Seventh Annual International Symposium on Computer Architecture, May 6-8, 1980, La Baule, France
  9. S.C. Johnson, "A 32-bit Processor Design," Computer Science Technical Report # 80, Bell Labs, Murray Hill, New Jersey, April 2, 1
  10. Electronics Magazine, "Altering Computer Architecture is Way to Raise Throughput, Suggests IBM Researchers," December 23, 1976, pp. 3
  11. Datamation, "IBM Mini a Radical Depalrture," October 1979, pp. 53