Аналоговые и цифровые предшественники
Хэмминг начал свою историю оборудования с различия: аналоговые вычисления (логарифмическая линейка, дифференциальный анализатор) против цифровых вычислений (кости Непера, настольные калькуляторы). Обе линии развивались параллельно; цифровая линия в конечном итоге доминировала.
Непер (1550–1617)
Джон Непер изобрел логарифмы, которые позволили создать логарифмическую линейку — аналоговое устройство, где физическая длина представляет логарифмическое значение. Сложение длин = умножение чисел. Непер также разработал «кости Непера»: костяные стержни для помощи в умножении. Цифровой инструмент, не следует путать с логарифмической линейкой.
От Шикарда к Бэббиджу
Вильгельм Шикард (1623) разработал машину для четырех арифметических операций; она загорелась до завершения. Паскаль (1623–1662) построил суммирующую машину для налогового учета. Лейбниц добавил умножение и деление, но машины были ненадежны.
Чарльз Бэббидж (1791–1871) разработал разностную машину: машину для вычисления полиномов в равномерно распределенных значениях посредством последовательного сложения, производящую безошибочные печатные таблицы. Он никогда не завершил это; норвежская семейная команда (Шойц) построила рабочие версии. В 1992 году команда в Англии построила аналитическую машину Бэббиджа по его чертежам — она работала.
Аналитическая машина Бэббиджа была близка к архитектуре фон Неймана: хранилище (память), мельница (арифметический блок) и условное ветвление. Леди Лавлейс опубликовала первые программы для нее.
Релейные компьютеры до ENIAC
Современная эра вычислений началась с релейных компьютеров в начале 1940-х годов. Хэмминг отследил эволюцию скорости:
| Эра | Технология | Скорость |
|---|---|---|
| До 1940 | Ручной калькулятор | 1/20 опс/сек |
| ~1940 | Реле (Bell Labs) | 1 опс/сек |
| 1946 | ENIAC (электронная лампа) | ~5000 опс/сек |
| 1952 | IBM 701 | ~17000 опс/сек |
| ~1993 | Современная рабочая станция | 10⁹ опс/сек |
Джордж Стибиц в Bell Telephone Laboratories построил релейные компьютеры из запчастей осужденных пушечных наводчиков M9. Хэмминг использовал один много лет. Эти релейные машины были не быстрыми — примерно одна операция в секунду — но они были надежны и программируемы.
ENIAC (1945–1946) первоначально работал по проводке коммутационной панели, как гигантский компьютер с коммутационной панелью. Ник Метрополис и Дик Клипперджер позже преобразовали его в десятичное переключательное программирование из баллистических таблиц. ENIAC потреблял примерно 150 кВт.
Внутреннее программирование стало практичным только при наличии достаточного хранилища. Роль фон Неймана была в качестве консультанта для Мочли и Эккерта; внутреннее программирование обсуждалось среди группы до участия фон Неймана, хотя его широко распространяемые (но никогда формально не опубликованные) отчеты распространяли концепции.
Порядки величины в скорости
Прогрессия скорости от ручного калькулятора к рабочей станции 1990-х годов охватывает более десяти порядков величины примерно за 50 лет.
Где оборудование не может пойти
Хэмминг представил три физических ограничения, которые ограничивают скорость, с которой компьютеры в конечном итоге могут работать. Это были не инженерные проблемы, которые изобретательность преодолеет — это были законы физики.
Ограничение 1: Размер молекулы
Компоненты не могут сжиматься ниже атомных размеров. Затвор транзистора шириной в 10 атомов: туннелирование квантов доминирует и транзистор перестает переключаться надежно. К 1993 году Хэмминг оценил, что переход ниже ~100 000 атомов расстояния между соединенными устройствами (примерно 3 пикосекунды времени распространения света) представляет реальную физическую границу.
Ограничение 2: Скорость света
Сигналы распространяются максимум со скоростью c = 3×10⁸ м/с в вакууме (меньше в проводе, примерно 2×10⁸ м/с). Цикл часов 1 ГГц составляет 1 наносекунду; за 1 нс свет проходит 30 см. Чип, который должен отправить сигнал на 15 см и получить ответ в течение одного цикла часов, работает близко к пределу скорости света.
По мере увеличения скорости часов размеры кристалла должны уменьшиться, чтобы сохранить время круговой поездки сигнала ниже одного периода часов.
Ограничение 3: Рассеивание тепла
Больше компонентов на единицу площади + более быстрое переключение = больше мощности на единицу площади = больше тепла. Тепло должно рассеиваться, иначе компоненты расплавляются. К 1993 году рабочие напряжения снижались до 2-3 В для снижения мощности переключения. Алмазные слои как проводники тепла были в стадии исследования. Обратимые вычисления (термодинамически без потерь) существовали только в теории.
Эти три ограничения вместе объясняют, почему прирост скорости однопроцессорных систем приближался к насыщению в 1990-х годах и почему интерес к параллельным архитектурам растет.
Применение предела скорости света
Процессор работает на 3 ГГц. Один цикл часов = 1/3 нс ≈ 0,333 нс. Скорость сигнала в меди: ~2/3 c ≈ 2×10⁸ м/с.
Эксперты, которые были спектакулярно неправы
Хэмминг отметил один из самых известных случаев неудачного прогноза в истории технологии: эксперты в конце 1940-х годов оценили, что миру потребуется максимум три-пять компьютеров. Том Уотсон из IBM, как сообщается, сказал два.
К 1993 году было миллионы компьютеров в эксплуатации.
Почему эксперты ошибались
Эксперты экстраполировали текущие варианты использования: научные расчеты в национальных лабораториях. Они не предвидели эквивалент идеи продукта: компьютеры не будут делать то, что люди уже делали, быстрее. Компьютеры позволят выполнять совершенно новые категории работ, которые ранее не существовали.
Паттерн отказа: эксперты в развитой технологии наиболее уверены в ее пределах и наиболее вероятно ошибаются в отношении будущих приложений. Их опыт дает им точные модели настоящего; это не дает им моделей того, что станет возможным.
Параллельные архитектуры
Скорость однопроцессорных систем приближалась к насыщению в 1990-х годах. Ответ индустрии: несколько арифметических блоков, конвейеры, иерархии кэша и массово параллельные машины. К 1993 году не было единой доминирующей параллельной архитектуры — много конкурирующих конструкций с разными компромиссами и разными моделями программирования. Хэмминг отметил эту фрагментацию как проблему: без стандарта усилия программирования делятся между несовместимыми системами.
Почему эксперты прогнозируют неправильно
Хэмминг рассматривал прогноз 3-5 компьютеров не как любопытство, а как урок о пределах экспертных знаний. Эксперты хорошо моделируют настоящее; они ошибаются в приложениях, которые еще не существуют.
Данные Лос-Аламоса и уравнение роста
Хэмминг цитировал график, составленный Национальной лабораторией Лос-Аламоса (LANL), отслеживающий скорость самого быстрого компьютера на рынке в каждый момент времени. Данные соответствовали экспоненциальному уравнению: скорость примерно удваивалась каждые 18 месяцев — позже популяризованной как закон Мура для количества транзисторов.
Уравнение LANL: скорость(t) = скорость₀ × 10^(bt), где b ≈ 0,09 в год (удвоение примерно каждые 3,3 года в операциях в секунду, отличается от удвоения количества транзисторов).
Хэмминг использовал это, чтобы сделать вывод об экстраполяции: экспоненциальная не может продолжаться бесконечно. Три физических ограничения устанавливают потолок. Когда экспоненциальная достигает потолка? Это переходное событие отмечает конец эры однопроцессорной системы.
К 1993 году индустрия уже приближалась к этому потолку, что приводило к интересу к параллельным архитектурам, приемам конвейеризации и иерархиям кэша — все небольшие шаги к параллелизму, а не более быстрому однопоточному выполнению.