Инструменты пользователя

Инструменты сайта


computers_and_computing

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
computers_and_computing [2025/10/13 22:42]
iadenisov [Аналог против цифры ‒ двоичный код против десятичного]
computers_and_computing [2025/10/14 00:56] (текущий)
iadenisov [Компьютеры и вычисления]
Строка 3: Строка 3:
 Личная точка зрения Личная точка зрения
  
-Никлаус Вирт     +Никлаус Вирт, декабрь 2015
  
 Оригинал: Оригинал:
 https://people.inf.ethz.ch/wirth/Miscellaneous/ComputersAndComputing.pdf https://people.inf.ethz.ch/wirth/Miscellaneous/ComputersAndComputing.pdf
  
-Перевод[[https://forum.oberoncore.ru/memberlist.php?mode=viewprofile&u=5636|Dimik]] +Перевод [[https://forum.oberoncore.ru/viewtopic.php?f=30&t=6868&p=119624#p119610|Dimik]] с правками Ивана Денисова
- +
 ===== Эпоха становления ===== ===== Эпоха становления =====
  
-Историки относят зарождение вычислительной техники далеко назад, в средние века. Мы же предпочитаем начать с того момента, когда компьютеры стали коммерчески доступными и обрели роль в бизнесе и науке. Это был 1960 год.+Историки относят зарождение вычислительной техники далеко назад, в средние века. Здесь мы всё же начнём рассказ с момента, когда компьютеры стали коммерчески доступнымии начали играть важную роль в бизнесе и науке. Это было примерно в 1960 году или даже немного раньше. Всего несколько изобретений легли в основу развития такой доступности.
  
-До электроники были вакуумные лампы. Ранние компьютеры содержали тысячи таких ламп, которые потребляли много электроэнергии. С их многочисленными лампами и тяжелыми блоками питания компьютеры были монструозными и заполняли целые комнаты.+На физическом уровне, --- это было появление электроники, которое сделало компьютеры предметами интереса. Электроника обеспечила необходимую скорость. До этого времени активными элементами электронных схем были электронные лампы. Нагретые катоды испускали электроны, которые всасывались окружающим анодом. Между ними находилась сетка, позволявшая управлять потоком электронов, прикладывая отрицательное поле. Ранние компьютеры содержали тысячи таких ламп, которые из-за нагрева катода и высокого напряжения на аноде потребляли значительное количество энергии, по нескольку ватт каждая. С их многочисленными лампами и мощными источниками питания эти ранние 
 +компьютеры были довольно огромными и занимали целые комнаты.
  
-Инновация Джона фон Неймана (1944гпревратила компьютеры в то, чем они сейчас являются. Раньше они состояли из блока управления и отдельного арифметического блока. Первый последовательно получал инструкции из хранилища инструкций, второй интерпретировал их и изменял данные в хранилище данных.+На логическом уровне, --- инновация Джона фон Неймана в 1944 году превратила компьютеры в то, чем они являются сейчас. Ранее они состояли из блока управления и отдельного арифметического блока. Первый извлекал инструкции из хранилища инструкций одну за другой, второй интерпретировал их и соответствующим образом изменял данные в хранилище данных.
  
 {{ :img1.png |}} {{ :img1.png |}}
  
-Фон Нейман ввел две фундаментальные концепции. +Фон Нейман ввел две фундаментальные концепции. Во-первых, два хранилища были объединены. Это позволило компьютеру генерировать данные, а затем интерпретировать их как инструкции. Таким образом, компьютер превратился из специального устройства (со всегда одинаковой программой) в //универсальную машину// --- программируемый компьютер. И это то, что отличает компьютер от всех других технических устройств вплоть до сегодняшнего дня.
  
-Во-первых, два блока были объединены. Это позволило компьютеру генерировать данные, а затем интерпретировать их как инструкцииТаким образом, компьютер превратился из специального устройства (с одной и той же программой) в универсальную машину ‒ программируемый компьютер. И именно это отличает компьютер от всех других технических устройств до сегодняшнего дня.+Второй основополагающей идей была условная инструкцияОна имеет различный результат в зависимости от ранее вычисленных значений, т.есостояния машины.
  
-Второй важной концепцией стала инструкция условия.+Все экспериментальные компьютеры, разработанные в качестве прототипов (обычно в университетах, между 1945-м и 1960 годами) использовали эти фундаментальные идеи.
  
-Экспериментальные компьютеры, разработанные в качестве прототипов, обычно в университетах, с 1945 по 1960 год, все они использовали эти фундаментальные идеи.+===== Годы пионеров =====
  
-===== Годы пионеров =====+Это было в 1959 году в Квебеке (Канада), когда я впервые имел дело с компьютером. Я записался на курс по численному анализу, который вел профессор Goodspeed (дословный перевод фамилии профессора с английского <<Хорошая скорость>>). Но компьютер не соответствовал имени профессора. На самом деле, он был не только медленным, но и <<падал>> всякий раз, когда мы составляли небольшую программу в качестве части упражнений. Таким образом, мое первое знакомство с компьютером было печальным и обескураживающим. Я не могу объяснить, как я сохранил интерес к вычислительной технике. Однако я чувствовал, что это будет важно в будущем.
  
-В 1959 году в Квебеке (Канада) я впервые имел дело с компьютером на курсе по численному анализу, который вел профессор Goodspeed. Но компьютер не соответствовал имени профессора. На самом деле, он был не только медленным, но и "падал" всякий раз, когда мы составляли небольшую программу. Таким образоммое первое знакомство с компьютером было мрачным и обескураживающим. Я не могу объяснить, как я сохранил интерес к вычислительной технике. Но я чувствовал, что это будет важно в будущем.+Доступным  компьютером  был  Alwac  III-3E. Он был основан на тысячах электронных ламп, в основном на двойные триоды, и занимал целую комнату.  Срок  службы  одной  лампы 10 000 часов. Следовательноможно было предположить, что одна из них --- а значит, и вся система --- будет выходить из строя каждые несколько часов. Так и случалось! Программирование осуществлялось путём составления таблиц инструкций в шестнадцатеричном коде. Я подумал, что тут есть потенциал для улучшения.
  
-Доступным  компьютером  был  Alwac  III-3E тысячами электронных ламп, и занимавший целую  комнату Срок  службы  одной  лампы 10'000 часов. Можно было рассчитать,  что  вся система  будет умирать каждые несколько часов.  Так и происходило!   Программирование   осуществлялось   путем  составления  таблиц инструкций  в  шестнадцатеричном  коде. Я думал ‒ что в этом был потенциал для улучшения.+Мой второй подход к компьютерам состоялся годом позднее в Беркли. Там был большой компьютер IBM 704, один из первых компьютеровна транзисторах вместо ламп, и поэтому  гораздо  более  надежный.  Доступ к нему был только через колоды перфокарт, которые доставлялись в Вычислительный центрКарточные колоды от различных клиентов складывались операторами, и система автоматически обрабатывала одну колоду за другой. Это называлось //пакетная обработка//. Результаты можно было получить через несколько часов или даже дней на бесконечной бумаге в виде текстов, состоящих из цифр и заглавных букв. Программирование осуществлялось на новом языке //Фортран// (Трансляция формул). Это было определённым улучшением по сравнению с шестнадцатеричным кодом, но я больше не мог понимать, как проводится управление компьютером. И снова я почувствовалчто есть возможности для совершенствования.
  
-Второй  раз  я  попробовал  компьютеры через год в Беркли. Там был большой компьютер IBM 704, один из первых компьютеров, на транзисторах вместо ламп, и поэтому  гораздо  более  надежный Доступ  к  нему  был  только через колоды перфокарт,  которые  доставлялись в Вычислительный центрКарточные колоды от различных   клиентов   складывались   операторами,  и  система  автоматически обрабатывала  одну  колоду  за  другой (пакетная обработка)Результаты  были  через  несколько  часов  или  даже дней, на бумаге,  в  виде  текстов,  состоящих  из  цифр и заглавных букв. Программирование осуществлялось на новом языке Фортран (Трансляция формул). Это было улучшение по сравнению с шестнадцатеричным кодом, но я не мог понять, как  работает компьютер. И снова я чувствовал, что здесь есть возможности для совершенствования.+В 1960-1965 годах большие удаленные компьютеры преобладали в мире вычисленийОни назывались //мэйнфреймами// и занимали большие комнаты, оснащённые системами кондиционирования воздуха. Все марки были почти одинаковыми, различаясь размером слов, объемом памяти и, конечно, --- скоростью выполненияОни имели один или два регистра-аккумулятора. Три нововведения заслуживают упоминания. Первое -- это индексный регистр, значение которого добавляется к адресу операнда во время цикла выборки.
  
-В 1960-1965 годах доминировали большие, удаленные компьютерыОни назывались мэйнфреймами и занимали большие помещения. Все марки были почти одинаковыми, различаясь размером слов, объемом памяти и скоростью выполнения. Они имели один или два регистра аккумулятора. Три нововведения заслуживают упоминания:+ --- //[[d.ivan.krsk@gmail.com|Иван Денисов]] вычитал перевод до этого места 2025/10/13 23:52//
  
-Первое ‒ это индексный регистр, значение которого добавляется к адресу операнда во время цикла выборки. 
  
-Охарактеризуем IBM 704. Он имел память из 32768 (215) слов по 36 бит каждое. В то время наборы символов состояли из 64 (26) символов и размер слов был кратен 6 (6-битные байты!). Числа хранились в знаково-величинной форме: один бит для знака, 35 бит для абсолютного значения. Ядро 704 состояло из 36-битного регистра аккумулятора (в котором якобы накапливались суммы), регистра MQ (в котором хранился множитель и три 15-битных индексных регистра.+Охарактеризуем IBM 704. Он имел память из 32768 (= 2<sup>15</sup>) слов по 36 бит каждое. В то время наборы символов состояли из 64 (= 2<sup>6</sup>) символов и размер слов был кратен 6 (6-битные байты!). Числа хранились в знаково-величинной форме: один бит для знака, 35 бит для абсолютного значения. Ядро 704 состояло из 36-битного регистра-аккумулятора (в котором якобы накапливались суммы), регистра MQ (в котором хранился множитель и три 15-битных индексных регистра.
  
 Существовало два формата инструкций: Существовало два формата инструкций:
Строка 66: Строка 64:
 В 1960-х годах компьютерный мир состоял из двух лагерей: аналогового и цифрового. Было совершенно неясно, за кем из них будущее. Как правило, математики принадлежали к цифровому, а инженеры-электрики --- к аналоговому лагерю. Цифровые компьютеры были точными, но требовали много дорогих компонентов, в то время как инженеры привыкли жить с приблизительными результатами, точными, возможно, до 3 или 4 десятичных цифр. В аналоговом мире только сложение и интегрирование (по времени) легко достижимы, в то время как умножение и деление трудны или практически невозможны. Сегодня жаркие споры по поводу аналоговых и цифровых технологий полностью исчезли. Это связано не только с огромным снижением цены на цифровые схемы, но и потому, что аналоговые значения было очень трудно (или даже невозможно) хранить. Сегодня, компьютеры  используются не столько для вычислений, сколько для хранения данных. Как следствие, аналоговые компьютеры вымерли. В 1960-х годах компьютерный мир состоял из двух лагерей: аналогового и цифрового. Было совершенно неясно, за кем из них будущее. Как правило, математики принадлежали к цифровому, а инженеры-электрики --- к аналоговому лагерю. Цифровые компьютеры были точными, но требовали много дорогих компонентов, в то время как инженеры привыкли жить с приблизительными результатами, точными, возможно, до 3 или 4 десятичных цифр. В аналоговом мире только сложение и интегрирование (по времени) легко достижимы, в то время как умножение и деление трудны или практически невозможны. Сегодня жаркие споры по поводу аналоговых и цифровых технологий полностью исчезли. Это связано не только с огромным снижением цены на цифровые схемы, но и потому, что аналоговые значения было очень трудно (или даже невозможно) хранить. Сегодня, компьютеры  используются не столько для вычислений, сколько для хранения данных. Как следствие, аналоговые компьютеры вымерли.
  
-Цифровые технологии ‒ это иллюзия. Физический мир является аналоговым за исключением атомарного уровня квантовой физики. Даже хранимые значения часто не являются цифровыми . Современная память (2016г) состоит из ячеек, способных различать 8 (аналоговых) значений. Кстати, прилагательное "цифровойпроисходит от латинского digis (digitis),означающего "палец". Это наводит на мысль, что цифровые компьютеры считают, поднимая пальцы вверх, как ученики первого класса. Прилагательное "аналоговыйподразумевает что вычисленное значение представлено аналогичной величиной, (напряжением). Здесь разумнее проводить различие между дискретным и непрерывным, а не между цифровым и аналоговыми.+Цифровые технологии --- это иллюзия. Физический мир является аналоговым за исключением атомарного уровня квантовой физики. Даже хранимые значения часто не являются цифровыми. Современная память (2016 г.) состоит из ячеек, способных различать 8 (аналоговых) значений. Кстати, прилагательное <<цифровой>> происходит от латинского digis (digitis), означающего <<палец>>. Это наводит на мысль, что цифровые компьютеры считают, поднимая пальцы вверх, как ученики первого класса. Прилагательное <<аналоговый>> подразумеваетчто вычисленное значение представлено аналогичной величиной, (напряжением). Здесь разумнее проводить различие между дискретным и непрерывным, а не между цифровым и аналоговыми.
  
-Внутри цифрового сообщества существовал еще один раскол. Он разделил мир на двоичный и десятичный лагеря. Двоичные компьютеры ‒ представляют целые числа как последовательность битов, причем один  в позиции ''n'' с основанием ''2n''. Десятичные компьютеры ‒ представляют целые числа как последовательности десятичных цифр, один из которых в позиции ''n'' имеет основание ''10n''. Каждая десятичная цифра кодируется 4 битами.+Внутри цифрового сообщества существовал еще один раскол. Он разделил мир на двоичный и десятичный лагеря. Двоичные компьютеры --- представляют целые числа как последовательность битов, причем один  в позиции ''n'' с основанием ''2n''. Десятичные компьютеры --- представляют целые числа как последовательности десятичных цифр, один из которых в позиции ''n'' имеет основание ''10n''. Каждая десятичная цифра кодируется 4 битами.
  
-Крупные компании предлагали оба вида компьютеров, хотя очевидно, что двоичное представление было более экономичным. Причина такого разделения в том, что финансовый мир настаивал на том чтобы компьютеры давали точно такие же результаты, как и вычисления вручную, даже если они ошибочны. Такие ошибки могут возникнуть в случае деления. +Крупные компании предлагали оба вида компьютеров, хотя очевидно, что двоичное представление было более экономичным. Причина такого разделения в том, что финансовый мир настаивал на том чтобы компьютеры давали точно такие же результаты, как и вычисления вручную, даже если они ошибочны. Такие ошибки могут возникнуть в случае деления.
  
 Дилемма была <<решена>> в 1964 году системой 360 от IBM, предложив оба представления чисел с помощью большого набора инструкций. Дилемма была <<решена>> в 1964 году системой 360 от IBM, предложив оба представления чисел с помощью большого набора инструкций.
- 
 ===== Первые языки программирования (1957-62г) ===== ===== Первые языки программирования (1957-62г) =====
  
Строка 137: Строка 134:
 Архитектура CDC 6000 выглядит следующим образом. Память состоит из 262144 (218) 60-битных слов, а процессор содержит три набора по 8 регистров. Регистры данных X0 - X7 имеют ширину 60 бит, адресные регистры A0 - A7 и регистры индексов B0 - B7 имеют ширину 18 бит. Инструкции имеют длину 15 или 30 бит, 2, 3 или 4 помещаются в 60-битное слово. Архитектура CDC 6000 выглядит следующим образом. Память состоит из 262144 (218) 60-битных слов, а процессор содержит три набора по 8 регистров. Регистры данных X0 - X7 имеют ширину 60 бит, адресные регистры A0 - A7 и регистры индексов B0 - B7 имеют ширину 18 бит. Инструкции имеют длину 15 или 30 бит, 2, 3 или 4 помещаются в 60-битное слово.
  
-тут вставить рисунок+{{ ::img3.png |}}
  
-Компьютер использовал 1-комплементарное представление целых чисел. Это позволило быструю инверсию знаков, но обеспечивало две формы для нуля, что порождало несколько неприятных проблем. Странность заключается в правиле, что присваивание A-регистра имеет побочный эффект на соответствующий X-регистр. Присвоение адреса А-регистру было единственным способом передачи данных из памяти в память. (Эта "особенностьнравилась разработчикам компиляторов).+Компьютер использовал 1-комплементарное представление целых чисел. Это позволило быструю инверсию знаков, но обеспечивало две формы для нуля, что порождало несколько неприятных проблем. Странность заключается в правиле, что присваивание A-регистра имеет побочный эффект на соответствующий X-регистр. Присвоение адреса А-регистру было единственным способом передачи данных из памяти в память. (Эта <<особенность>> нравилась разработчикам компиляторов).
  
 Ai := a         →         Xi :=  mem[a]               for i < 6      load Ai := a         →         Xi :=  mem[a]               for i < 6      load
Строка 228: Строка 225:
  
 В тени больших монстров, с 1965 года появилось новое поколение компьютеров ‒  мини-компьютеры. Первым был PDP-1 компании DEC (Digital Equipment Corp.), за которым последовал популярный PDP-8. Они устанавливались в стандартные 19-дюймовые стойки для  использования в лабораториях, и были построены с дискретными транзисторами с биполярным переходом и памятью на магнитных сердечниках. Длина слова составляла 18 бит (PDP-1), 12 бит (PDP-8) и 16 бит (HP 2116). Время цикла составляло около двух микросекунд. На выполнение каждой команды требовалось 1-2 цикла. Для того времени это считалось очень быстро. Их наборы команд содержали инструкции загрузки и хранения, логические операции, однобитные сдвиги, сложение и вычитание. Умножение и деление должны были быть запрограммированы. Поскольку объем их памяти был небольшим, обычно 4К или 8К о компиляторах для языков высокого уровня не могло быть и речи. Они подключались к печатной машинке (телетайпу) для ввода и вывода данных. В тени больших монстров, с 1965 года появилось новое поколение компьютеров ‒  мини-компьютеры. Первым был PDP-1 компании DEC (Digital Equipment Corp.), за которым последовал популярный PDP-8. Они устанавливались в стандартные 19-дюймовые стойки для  использования в лабораториях, и были построены с дискретными транзисторами с биполярным переходом и памятью на магнитных сердечниках. Длина слова составляла 18 бит (PDP-1), 12 бит (PDP-8) и 16 бит (HP 2116). Время цикла составляло около двух микросекунд. На выполнение каждой команды требовалось 1-2 цикла. Для того времени это считалось очень быстро. Их наборы команд содержали инструкции загрузки и хранения, логические операции, однобитные сдвиги, сложение и вычитание. Умножение и деление должны были быть запрограммированы. Поскольку объем их памяти был небольшим, обычно 4К или 8К о компиляторах для языков высокого уровня не могло быть и речи. Они подключались к печатной машинке (телетайпу) для ввода и вывода данных.
 +
 Привлекательность миникомпьютеров заключалась в их доступности. Они находились в вычислительных центрах и допускали интерактивное использование. Вернулась старая схема часов регистрации, которая неэффективна. Привлекательность миникомпьютеров заключалась в их доступности. Они находились в вычислительных центрах и допускали интерактивное использование. Вернулась старая схема часов регистрации, которая неэффективна.
 +
 В качестве примера мы набросаем структуру популярного PDP-8. Его память из магнитных сердечников, была 4096 слов длиной 12 бит. Вычислительный блок содержал аккумулятор, длиной 12 бит. Инструкции поступали в двух вариантах. Инструкции с обращением к памяти и операторы в формате микроинструкций. В качестве примера мы набросаем структуру популярного PDP-8. Его память из магнитных сердечников, была 4096 слов длиной 12 бит. Вычислительный блок содержал аккумулятор, длиной 12 бит. Инструкции поступали в двух вариантах. Инструкции с обращением к памяти и операторы в формате микроинструкций.
  
 +{{ ::img4.png |}}
  
-Инструкции обращения к памяти включают команды загрузки, хранения, сложения и логические переходы. Становится ясно, что такие миникомпьютеры кодировались "вручнуюс помощью ассемблера. О компиляторах не могло быть и речи; получаемый код был бы слишком длинным и неэффективным. Память была небольшой и обеспечивала загрузку только небольших программ, обычно для управления оборудования и сбора данных.+Инструкции обращения к памяти включают команды загрузки, хранения, сложения и логические переходы. Становится ясно, что такие миникомпьютеры кодировались <<вручную>> с помощью ассемблера. О компиляторах не могло быть и речи; получаемый код был бы слишком длинным и неэффективным. Память была небольшой и обеспечивала загрузку только небольших программ, обычно для управления оборудования и сбора данных.
  
-Примечательной новинкой была система разделения времени с целью обеспечить полностью интерактивное использование без монополизации компьютера. Эта система была разработана Деннисом и Ван Хорном в Массачусетском технологическом институте. В сотрудничестве с DEC они разработали расширенный PDP-1. Он был усилен барабанным магазином с 16 дорожками по 4К слов в каждом. Основное хранилище было увеличено до 3 блоков по 4К слов. Первый раздел использовался для небольшой "операционной системы". Система позволяла 16 программистам работать на одном компьютере квази-одновременно. Она работала с квантами времени  длительностью 33 мс. В каждом кванте происходило три действия: дорожка поочередно считывалась с барабана в секцию 2 (или 3) основного хранилища, та же секция хранилища сбрасывалась на соответствующую дорожку барабана, и процессор выполнял программу в секции основного хранилища 3 (или 2). Это создовало впечатление для программиста что  PDP-1 находится только в его распоряжении. Планирование работы процессора, т.е. его выделение отдельному пользователю, было довольно простым. Пользователям статически отводилось место в кольце, следующий временной фрагмент отдавался следующему пользователю в кольце, за исключением случаев, когда он ожидал ввода/вывода.+Примечательной новинкой была система разделения времени с целью обеспечить полностью интерактивное использование без монополизации компьютера. Эта система была разработана Деннисом и Ван Хорном в Массачусетском технологическом институте. В сотрудничестве с DEC они разработали расширенный PDP-1. Он был усилен барабанным магазином с 16 дорожками по 4К слов в каждом. Основное хранилище было увеличено до 3 блоков по 4К слов. Первый раздел использовался для небольшой "операционной системы". Система позволяла 16 программистам работать на одном компьютере квази-одновременно. Она работала с квантами времени  длительностью 33 мс. В каждом кванте происходило три действия: дорожка поочередно считывалась с барабана в секцию 2 (или 3) основного хранилища, та же секция хранилища сбрасывалась на соответствующую дорожку барабана, и процессор выполнял программу в секции основного хранилища 3 (или 2). Это создавало впечатление для программиста что  PDP-1 находится только в его распоряжении. Планирование работы процессора, т.е. его выделение отдельному пользователю, было довольно простым. Пользователям статически отводилось место в кольце, следующий временной фрагмент отдавался следующему пользователю в кольце, за исключением случаев, когда он ожидал ввода/вывода. 
 + 
 +{{ ::img5.png |}}
  
 Вероятно, первая такая система была установлена в Стэнфордском университете в 1964 году в лаборатории для обучения программированию (профессор Суппес). Для того чтобы облегчить ввод текста и управления функциями, в клавиатуру каждой станции была включена специальная клавиша. Позже она стала повсеместной и получила название CTRL-клавиша. Вероятно, первая такая система была установлена в Стэнфордском университете в 1964 году в лаборатории для обучения программированию (профессор Суппес). Для того чтобы облегчить ввод текста и управления функциями, в клавиатуру каждой станции была включена специальная клавиша. Позже она стала повсеместной и получила название CTRL-клавиша.
 Эта идея совместного использования времени была простой и увлекательной. Вскоре такие системы стали нормой. Производители мэйнфреймов подхватили эту идею и расширили свои продукты соответствующим образом (IBM 360/67, GE 645). Но они верили, что программное обеспечение было всемогущим, и не ограничивали себя ни фиксированной схемой временных квантов, ни фиксированным распределением памяти для каждого пользователя. Индивидуальное, динамическое распределение ресурсов было их видением, размеры памяти в соответствии с потребностями каждого пользователя, и планирование индивидуально в соответствии с приоритетами и доступностью ресурсов. Побочным эффектом стало появление блоков управления памятью в этих многопользовательских компьютерах. Пионером в этой области стал гигантский компьютер Atlas в Манчестере. Эта идея совместного использования времени была простой и увлекательной. Вскоре такие системы стали нормой. Производители мэйнфреймов подхватили эту идею и расширили свои продукты соответствующим образом (IBM 360/67, GE 645). Но они верили, что программное обеспечение было всемогущим, и не ограничивали себя ни фиксированной схемой временных квантов, ни фиксированным распределением памяти для каждого пользователя. Индивидуальное, динамическое распределение ресурсов было их видением, размеры памяти в соответствии с потребностями каждого пользователя, и планирование индивидуально в соответствии с приоритетами и доступностью ресурсов. Побочным эффектом стало появление блоков управления памятью в этих многопользовательских компьютерах. Пионером в этой области стал гигантский компьютер Atlas в Манчестере.
  
-Это были цели высокого полета. Никто еще не проектировал системы такой сложности. Трудности были сильно недооценены, тем не менее, сроки поставки были обещаны жаждущим клиентам. Были наняты огромные толпы системных программистов, что привело к непреодолимым управленческим и коммуникационным проблемам. Все закончилось тем, что 1968 год был назван кризисом программного обеспечения, очень метко описанный в книге Фреда Брукса "Мифический человеко-месяц", кульминацией которого стала мудрая мысль о том, что "добавление человеческих ресурсов в запоздалый проект делает его более поздним".+Это были цели высокого полета. Никто еще не проектировал системы такой сложности. Трудности были сильно недооценены, тем не менее, сроки поставки были обещаны жаждущим клиентам. Были наняты огромные толпы системных программистов, что привело к непреодолимым управленческим и коммуникационным проблемам. Все закончилось тем, что 1968 год был назван кризисом программного обеспечения, очень метко описанный в книге Фреда Брукса <<Мифический человеко-месяц>>, кульминацией которого стала мудрая мысль о том, что <<добавление человеческих ресурсов в запоздалый проект делает его более поздним>>. 
 Компиляторы вместе с OS/360 стали первыми системами  которые  опирались на элементы дизайна, созданные армиями программистов, никому не понятные и сомнительной надежности. Отказы были запрограммированы заранее. Обновления стали ежемесячной рутиной. Компиляторы вместе с OS/360 стали первыми системами  которые  опирались на элементы дизайна, созданные армиями программистов, никому не понятные и сомнительной надежности. Отказы были запрограммированы заранее. Обновления стали ежемесячной рутиной.
  
-Программное обеспечение, то есть ОС, компиляторы и библиотеки, поставлялись производителями компьютеров как аксессуар. Поскольку программное обеспечение выросло до огромных размеров и требовало больших затрат, начался процесс "разукрупнения". Программное обеспечение стало самостоятельным объектом, и его ценообразование было отделено от ценообразования аппаратного обеспечения. Это произошло не без вмешательства судебных инстанций. Появились компании, производящие программное обеспечение. Они создавали программы, пригодные для использования на компьютерах различных марок, и создали собственный рынок.+Программное обеспечение, то есть ОС, компиляторы и библиотеки, поставлялись производителями компьютеров как аксессуар. Поскольку программное обеспечение выросло до огромных размеров и требовало больших затрат, начался процесс <<разукрупнения>>. Программное обеспечение стало самостоятельным объектом, и его ценообразование было отделено от ценообразования аппаратного обеспечения. Это произошло не без вмешательства судебных инстанций. Появились компании, производящие программное обеспечение. Они создавали программы, пригодные для использования на компьютерах различных марок, и создали собственный рынок.
  
 ===== Языки второго поколения и Паскаль (1965-1970г) ===== ===== Языки второго поколения и Паскаль (1965-1970г) =====
Строка 384: Строка 387:
 Оглядываясь назад, можно поразиться, какие дополнительные усилия и сложности пришлось придумывать потому что существующей технологии было недостаточно. Инженеров компании Xerox постигла та же участь, но сознательно и добровольно. Они знали, что через несколько лет появится гораздо более мощная технология. Если бы им удастся создать продвинутый персональный компьютер (хотя и с большими затратами) который в будущем станет намного дешевле, они могли бы разработать передовые системные технологии и соответствующее программное обеспечение в настоящее время, получив явное преимущество перед конкурентами в дальнейшем. Такая "философия" лежала в основе компьютера Dorado, построенного по технологии ECL в 1984/5. Логика с эмиттерной связью была очень быстрой, но потребляла очень большое количество энергии, что требовало интенсивного охлаждения. Но обстоятельства изменились, и знаменитый Дорадо так и не оправдал надежд разработчиков. Следствием этого стал отход от концепции собственного, персонального компьютера на столе или под столом, разработанной в PARC. Все Дорадо пришлось запихнуть в кондиционируемую комнату они были соединены индивидуальными кабелями по всему зданию (не шиной), как Ethernet к пользователям. Оглядываясь назад, можно поразиться, какие дополнительные усилия и сложности пришлось придумывать потому что существующей технологии было недостаточно. Инженеров компании Xerox постигла та же участь, но сознательно и добровольно. Они знали, что через несколько лет появится гораздо более мощная технология. Если бы им удастся создать продвинутый персональный компьютер (хотя и с большими затратами) который в будущем станет намного дешевле, они могли бы разработать передовые системные технологии и соответствующее программное обеспечение в настоящее время, получив явное преимущество перед конкурентами в дальнейшем. Такая "философия" лежала в основе компьютера Dorado, построенного по технологии ECL в 1984/5. Логика с эмиттерной связью была очень быстрой, но потребляла очень большое количество энергии, что требовало интенсивного охлаждения. Но обстоятельства изменились, и знаменитый Дорадо так и не оправдал надежд разработчиков. Следствием этого стал отход от концепции собственного, персонального компьютера на столе или под столом, разработанной в PARC. Все Дорадо пришлось запихнуть в кондиционируемую комнату они были соединены индивидуальными кабелями по всему зданию (не шиной), как Ethernet к пользователям.
 Однако, пока Alto, Dorado и другие разрабатывались в Xerox, остальной мир также двигался вперед. Компании, которые были пионерами 8-битных микро-процессоров, теперь перешли к 16-битным, а вскоре и к 32-битным процессорам на одном чипе. Они шли не по пути более быстрых, высокотоковых полупроводниковых а перешли на технологию маломощных CMOS FET-транзисторов. Так появился в 1978 году процессорный чип 8086 (16 бит) компании Intel (чьи преемники доминируют на рынке до сегодняшнего дня), и 680х0 от Motorola. Однако, пока Alto, Dorado и другие разрабатывались в Xerox, остальной мир также двигался вперед. Компании, которые были пионерами 8-битных микро-процессоров, теперь перешли к 16-битным, а вскоре и к 32-битным процессорам на одном чипе. Они шли не по пути более быстрых, высокотоковых полупроводниковых а перешли на технологию маломощных CMOS FET-транзисторов. Так появился в 1978 году процессорный чип 8086 (16 бит) компании Intel (чьи преемники доминируют на рынке до сегодняшнего дня), и 680х0 от Motorola.
 +
 +{{ ::img6.png |}}
  
 Часть Intel страдала от нехватки ресурсов на кристалле, что привело к появлению большого разнообразия регистров специального назначения и трюков адресации. Последнее было связано с ограничением 16-битного слова и требованием 20-битных адресов. Это привело к появлению ужасной схемы сегментов памяти и сегментированной адресации, которая была мучением для разработчиков компиляторов и источником  неэффективностей. Более поздний Motorola 680х0 был намного чище, но часть Intel уже завоевала рынок. 680х0 стал основой знаменитого Apple Macintosh, игрушки с маленьким дисплеем, похожей на тостер.  Часть Intel страдала от нехватки ресурсов на кристалле, что привело к появлению большого разнообразия регистров специального назначения и трюков адресации. Последнее было связано с ограничением 16-битного слова и требованием 20-битных адресов. Это привело к появлению ужасной схемы сегментов памяти и сегментированной адресации, которая была мучением для разработчиков компиляторов и источником  неэффективностей. Более поздний Motorola 680х0 был намного чище, но часть Intel уже завоевала рынок. 680х0 стал основой знаменитого Apple Macintosh, игрушки с маленьким дисплеем, похожей на тостер. 
Строка 397: Строка 402:
 ===== Сокращенный набор инструкций RISC (1985г) ===== ===== Сокращенный набор инструкций RISC (1985г) =====
  
-В сфере аппаратного обеспечения мир также становился все сложнее. Полупроводниковая технология достигла огромного прогресса. Стало возможным размещать несколько миллионов транзисторов на одном чипе. Уменьшение размеров привело к уменьшению времени распространения сигнала и к более высокой скорости. Дизайнеры соблазнялись использовать армии доступных транзисторов и включить функции, которые раньше откладывались на потом. Прямым следствием этого стало увеличение количества регистров на кристалле, виртуальная адресация, блоков управления памятью и блоков с плавающей запятой. Помимо этого, память стала больше и быстрее, примерно до 1 МБ на кристалл в 1985 году. Еще одним  способом использования транзисторов был сложный набор инструкций, включающий строковые инструкции, инструкции для десятичных и вычислений с плавающей запятой. И еще один способ ‒ это выбор режимов адресации. Наиболее продвинутыми в этом направлении была серия NS 32000 компании National Semiconductor. Они не только предлагали набор адресов длиной 25 (аналогично Lilith), но и большой набор режимов, включая один для связывания модулей. Кроме того, это был первый процессор с 32-битными трактами передачи данных. Но по сравнению с традиционной конструкцией с дискретными компонентами, компьютеры на базе этих чипов (также Intel 80286 и Motorola 680х0), считались медленными. Вопрос  какой технологии будет принадлежать будущее, оставался открытым.+В сфере аппаратного обеспечения мир также становился все сложнее. Полупроводниковая технология достигла огромного прогресса. Стало возможным размещать несколько миллионов транзисторов на одном чипе. Уменьшение размеров привело к уменьшению времени распространения сигнала и к более высокой скорости. Дизайнеры соблазнялись использовать армии доступных транзисторов и включить функции, которые раньше откладывались на потом. Прямым следствием этого стало увеличение количества регистров на кристалле, виртуальная адресация, блоков управления памятью и блоков с плавающей запятой. Помимо этого, память стала больше и быстрее, примерно до 1 МБ на кристалл в 1985 году. Еще одним  способом использования транзисторов был сложный набор инструкций, включающий строковые инструкции, инструкции для десятичных и вычислений с плавающей запятой. И еще один способ --- это выбор режимов адресации. Наиболее продвинутыми в этом направлении была серия NS 32000 компании National Semiconductor. Они не только предлагали набор адресов длиной 25 (аналогично Lilith), но и большой набор режимов, включая один для связывания модулей. Кроме того, это был первый процессор с 32-битными трактами передачи данных. Но по сравнению с традиционной конструкцией с дискретными компонентами, компьютеры на базе этих чипов (также Intel 80286 и Motorola 680х0), считались медленными. Вопрос  какой технологии будет принадлежать будущее, оставался открытым.
  
 Решение было принято с появлением Mosfet: полевого транзистора на основе оксида металла - полупроводника. Затвор становится проводящим под действием электронов. В транзисторах с биполярным переходом они вводятся током, подаваемым в слой затвора между истоком и стоком, в полевых транзисторах - путем подачи напряжения на слой, изолированный от канала исток - сток. т.е. за счет эффекта поля. Сегодня (2015г) практически все транзисторы являются FET, и эра биполярных транзисторов подошла к концу. Со стороны архитектуры произошла полная революция. Тенденция к все большему усложнению была остановлена. Новые RISC превосходили по простоте.  Как правило, процессор теперь состоял из набора регистров (32 бита), а набор инструкций был сведен к простым логическим инструкциям и инструкциям сложения/вычитания. Даже умножение и деление были исключены. Обоснование такого отхода от традиций в том, что каждая инструкция  требует один тактовый цикл и очень быстра. Плотность кода стала иметь ничтожное значение, поскольку память была доступна в больших объемах. Так как, каждая инструкция занимала только один такт, стало возможным одновременное выполнение нескольких инструкций, каждая из которых состоит из 4 - 5 шагов:  Решение было принято с появлением Mosfet: полевого транзистора на основе оксида металла - полупроводника. Затвор становится проводящим под действием электронов. В транзисторах с биполярным переходом они вводятся током, подаваемым в слой затвора между истоком и стоком, в полевых транзисторах - путем подачи напряжения на слой, изолированный от канала исток - сток. т.е. за счет эффекта поля. Сегодня (2015г) практически все транзисторы являются FET, и эра биполярных транзисторов подошла к концу. Со стороны архитектуры произошла полная революция. Тенденция к все большему усложнению была остановлена. Новые RISC превосходили по простоте.  Как правило, процессор теперь состоял из набора регистров (32 бита), а набор инструкций был сведен к простым логическим инструкциям и инструкциям сложения/вычитания. Даже умножение и деление были исключены. Обоснование такого отхода от традиций в том, что каждая инструкция  требует один тактовый цикл и очень быстра. Плотность кода стала иметь ничтожное значение, поскольку память была доступна в больших объемах. Так как, каждая инструкция занимала только один такт, стало возможным одновременное выполнение нескольких инструкций, каждая из которых состоит из 4 - 5 шагов: 
Строка 407: Строка 412:
  
  
-Эта концепция называлась "конвейеризация", и существенно повышала скорость+Эта концепция называлась <<конвейеризация>>, и существенно повышала скорость.
-Эта схема была предложена в научных кругах (Дж. Хеннесси в Стэнфорде и Д. Паттерсон в Беркли) в 1985 году. В результате появились компании-стартапы: MIPS и SPARC. В Англии развивались аналогичные разработки: Acorn в Кембридже, что привело к созданию архитектуры ARM. Выжила именно архитектура ARM. Однако со временем появлялись новые версии и каждая обладала новыми возможностями такими, какие позволяла миниатюризация транзисторов. Удивительно, но эта система смогла сохранить свой лейбл даже после замены набора инструкций на 16-битные "пальчиковые" инструкции+
  
 +{{ ::img7.png |}}
 +
 +Эта схема была предложена в научных кругах (Дж. Хеннесси в Стэнфорде и Д. Паттерсон в Беркли) в 1985 году. В результате появились компании-стартапы: MIPS и SPARC. В Англии развивались аналогичные разработки: Acorn в Кембридже, что привело к созданию архитектуры ARM. Выжила именно архитектура ARM. Однако со временем появлялись новые версии и каждая обладала новыми возможностями такими, какие позволяла миниатюризация транзисторов. Удивительно, но эта система смогла сохранить свой лейбл даже после замены набора инструкций на 16-битные <<пальчиковые>> инструкции.
 ===== Новая парадигма вычислений (1985г) ===== ===== Новая парадигма вычислений (1985г) =====
  
Строка 415: Строка 422:
 Ввод текста как таковой стал менее важным. Было признано ‒ то что набирается, уже где-то было набрано. Таким образом, указание на этот текст делало повторный набор текста излишним. Можно утверждать, что концепция вьювера революционизировала использование компьютера. Это было прямым следствием новой парадигмы объектно-ориентированного программирования: процедуры (процессы) могут быть присоединены к структурам данных.  Ввод текста как таковой стал менее важным. Было признано ‒ то что набирается, уже где-то было набрано. Таким образом, указание на этот текст делало повторный набор текста излишним. Можно утверждать, что концепция вьювера революционизировала использование компьютера. Это было прямым следствием новой парадигмы объектно-ориентированного программирования: процедуры (процессы) могут быть присоединены к структурам данных. 
 Эта парадигма уже была представлена в языке Simula (1965г), и позднее в языке Smalltalk (1976г), а концепция вьювера является ее самым известным применением. Она  была усовершенствована в системе Cedar компании Xerox и перенята системой Oberon. Понятие текстовой единицы программы (модуль) стало четко отделено от единицы выполнения программы (процедуры), что значительно повысило ясность концепции.  Эта парадигма уже была представлена в языке Simula (1965г), и позднее в языке Smalltalk (1976г), а концепция вьювера является ее самым известным применением. Она  была усовершенствована в системе Cedar компании Xerox и перенята системой Oberon. Понятие текстовой единицы программы (модуль) стало четко отделено от единицы выполнения программы (процедуры), что значительно повысило ясность концепции. 
 +
 +{{ ::img8.png |}}
  
 Весь этот прогресс в конечном итоге стал возможен только благодаря огромному увеличению объема памяти. После выполнения, процедура не удалялась из памяти, как это делалось при пакетной обработке, она сохранялась в памяти, чтобы иметь быстрый доступ к ней при последующем вызове.  Весь этот прогресс в конечном итоге стал возможен только благодаря огромному увеличению объема памяти. После выполнения, процедура не удалялась из памяти, как это делалось при пакетной обработке, она сохранялась в памяти, чтобы иметь быстрый доступ к ней при последующем вызове. 
computers_and_computing.1760384564.txt.gz · Последнее изменение: 2025/10/13 22:42 — iadenisov