Аналогові & цифрові попередники
Хеммінг розпочав свою історію обладнання розрізненням: аналогове обчислення (логарифмічна лінійка, диференціальний аналізатор) на противагу цифровому обчисленню (кісточки Непера, настільні калькулятори). Обидві лінії розвивалися паралельно; цифрова лінія зрештою домінувала.
Непер (1550–1617)
Джон Непер винайшов логарифми, які дозволили логарифмічну лінійку — аналоговий пристрій, де фізична довжина представляє логарифмічне значення. Додавання довжин = множення чисел. Непер також розробив 'кісточки Непера': слонову кість стержнів для допомоги в множенні. Цифрова, не плутати з логарифмічною лінійкою.
Від Шіккарда до Бебіджа
Вільгельм Шіккард (1623) розробив машину для чотирьох арифметичних операцій; вона згоріла перед завершенням. Паскаль (1623–1662) побудував додаючу машину для податкової оцінки. Ляйбніц додав множення & ділення, але машини були ненадійні.
Чарльз Бебідж (1791–1871) розробив машину різниць: машину для обчислення поліномів у рівномірно розташованих значеннях послідовним додаванням, виробляючи безпомилкові надруковані таблиці. Він ніколи не завершив її; норвезька батьківщина-синівська команда (Шойтц) побудували робочі версії. У 1992 році команда в Англії побудувала аналітичний двигун Бебіджа за його кресленнями — він працював.
Аналітичний двигун Бебіджа був близький до архітектури фон Неймана: сховище (пам'ять), млин (арифметичний блок) & умовне розгалуження. Леді Лавлейс опублікувала перші програми для нього.
Комп'ютери на реле до ENIAC
Сучасна епоха обчислень розпочалася з комп'ютерів на реле на початку 1940-х років. Хеммінг простежив еволюцію швидкості:
| Епоха | Технологія | Швидкість | |---|---|---| | До 1940 | Ручний калькулятор | 1/20 опер./сек | | ~1940 | Реле (Bell Labs) | 1 опер./сек | | 1946 | ENIAC (вакуумна трубка) | ~5,000 опер./сек | | 1952 | IBM 701 | ~17,000 опер./сек | | ~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 року індустрія вже наближалася до цієї стелі, що спонукало інтерес до паралельних архітектур, трюків конвеєра & ієрархій кешу — всі невеликі кроки до паралелізму замість швидшого виконання однопотокового.