Топ новостей


РЕКЛАМА



Календарь

Історія обчислювальної техніки за кордоном.

Головна Історія обчислювальної техніки за кордоном

Юрій Полунов

- У нас, - сказала Аліса, насилу перевівши дух, - коли довго біжиш щодуху, неодмінно потрапиш в інше місце.

- Яка повільна країна! - сказала Королева. - Ну а тут, чи знаєш, доводиться бігти щодуху, тільки щоб залишитися на тому ж місці! Якщо ж хочеш потрапити в інше місце, тоді потрібно бігти щонайменше вдвічі швидше!

Л. Керрол. Аліса в країні чудес

Джон фон Нейман і Герман Голдстайн покинули Муровскую групу з твердим наміром створити в Прінстонському Інституті перспективних досліджень (IAS) універсальну швидкодіючу обчислювальну машину для наукових досліджень. Вони, однак, зіткнулися зі скептичним ставленням до цього задуму з боку ради директорів інституту та колег. Більшість з них вважало використання ЕОМ долею математиків-прикладників, до яких наукова еліта ставилася, м'яко кажучи, стримано. Поява в "храмі чистої науки" інженерів, техніків і робітників, придбання обладнання, необхідного для розробки машини, високим теоретикам уявлялося відступом від принципів, покладених в основу діяльності IAS. Крім того, інститут не мав коштів на створення і експлуатацію "фон-неймановской примхи" (як багатьом здавалося). Але великому вченому вдалося подолати несподівано виникли труднощі. Заручившись підтримкою деяких авторитетних колег, фон Нейман переконав рада директорів прийняти його пропозицію за умови, що він знайде кошти для фінансування "Проекту електронної обчислювальної машини" (Electronic Computer Project, ECP). Величезний авторитет, яким учений користувався у військових, зробив це завдання порівняно нескладної, і навесні 1946 р інститутом і Артилерійським управлінням МО США був підписаний відповідний контракт. У фінансуванні ECP брали участь державні оборонні організації - Комісія з атомної енергії (Atomic Energy Commission, AEC), Управління військово-морських досліджень (Office of Naval Research, ONR) і деякі інші. Фон Нейман домовився також про творчу співпрацю з Іллінойським університетом і Radio Corporation of America (RCA), одна з лабораторій якій знаходилася в Прінстоні.

Ян Олександр Райхман - "містер Пам'ять"

Там працював Ян Олександр Райхман (Jan Alexander Rajchman, 1911-1989), пізніше не без підстави прозваний в журналістських колах "містером Пам'ять".

У передвоєнний час Райхман створив одне з перших постійних запам'ятовуючих пристроїв (ПЗУ) на резистивних матрицях, а з 1946 р почав розробляти оперативну пам'ять на основі спеціальної "багатокоміркової" вакуумної трубки, яку назвали Selectron (Selective Electrostatic Storage Tube). Вона-то і привернула увагу фон Неймана, оскільки в разі вдалого завершення розробки конструктори отримували пристрій абсолютно нового виду - з так званої довільною вибіркою, що зберігається. Це, в свою чергу, дозволяло будувати обчислювальні машини з набагато більш високою швидкодією (в порівнянні з ЕОМ, які використовували рулз). Ідея Райхмана полягала в тому, щоб з внутрішньої сторони трубки, перед екраном, помістити дві решітки з симетрично розташованих під прямим кутом один до одного вузьких металевих смужок (bars), що утворюють ряд "вікон". Вікно, до якого додавалося напруга, "відкривалося" для проходження електронного променя до вкритого фосфором екрану, де записувалася або звідки зчитувалася інформація.

Фон Нейман увірував в безумовний успіх трубки Райхмана і вирішив побудувати навколо неї майбутню машину 1 . Опису її архітектури і вибору основних технічних характеристик Артур У. Беркс, Герман Г. Голдстайн і Джон фон Нейман присвятили велику статтю "Попереднє обговорення логічного конструювання електронного обчислювального пристрою" (Preliminary discussion of the logical design of the electronic computing instrument), видану IAS в наприкінці червня 1946 г. Вона представляла собою першу частину звіту про теоретичних дослідженнях, передбачених контрактом з Артилерійським управлінням (у другій частині звіту, написаного Голдстайном і фон Нейманом і виданого в 1947 р, ра ссматріваются питання програмування). "Попереднє обговорення ...", спочатку призначений для публікації, поширювалося абсолютно вільно і послужило безцінним посібником для комп'ютерників багатьох країн, а описана в ньому архітектура машини отримала назву Прінстонської. По суті це була все та ж "фон-неймановская архітектура", описана в "Першому варіанті ..." (див. Статтю Ю. напівновій "Автора !!!" ), Але тільки стосовно до нового типу "внутрішньої" (оперативної) пам'яті. У згаданій роботі фон Неймана з товаришами, крім обгрунтування деяких технічних характеристик планованого "електронного обчислювального пристрою", були розвинуті деякі важливі теоретичні питання, про які в "Першому варіанті ..." вже говорилося, але, може бути, недостатньо докладно (або взагалі не говорилося ). Приділимо увагу деяким з них.

Зберігання програм у внутрішній пам'яті. В "Першому варіанті ...", описуючи структуру машини, фон Нейман дає визначення її основних блоків в наступному порядку: арифметичний пристрій (АУ) - пристрій управління (УУ) - ОЗУ - зовнішнє ЗУ - пристрій вводу-виводу. Дуже симптоматично, що в "Попередньому обговоренні ..." цей порядок змінено і розгляд починається з опису органу пам'яті 2 : "Очевидно, що машина повинна бути здатна певним чином запам'ятовувати не тільки цифрову інформацію, необхідну для даного обчислення, таку, як граничні значення, функціональні таблиці і проміжні результати ... але і команди, що управляють фактичним порядком (actual routine), в якому повинні виконуватися обчислення над цифровими даними. Концептуально ми можемо говорити про два види пам'яті: пам'яті чисел і пам'яті наказів (orders). Якщо, проте, накази до машини звести до числовому коду і якщо вона отримає можливість відрізнити числа від наказів, то орган пам'яті можна використовувати для зберігання як чисел, так і наказів ". І - повторюся - при цьому з'являється можливість модифікації програми (точніше - її адресної частини 3 ) І навіть генерування нової, а це властивість надалі дозволило реалізовувати такі програмні засоби, як асемблери, компілятори, операційні системи.

Розгалуження програм. Хоча в командний набір ЕДВАК "по фон Нейманом" входили не зазначені автором команди безумовної та умовної передачі управління, в "Першому варіанті ..." проблеми розгалуження програм приділено незначну увагу - про неї сказано, по суті, мимохідь. Навпаки, в "Попередньому обговоренні ..." їй присвячено цілий розділ, а команди отримали назви, що збереглися до нашого часу (відповідно unconditional transfer order і conditional transfer order). При цьому підкреслювалося, що за винятком цих команд машина повинна мати послідовне (природне) управління.

Подання чисел в машині. Розглядаючи проблему вибору системи числення, автори зауважують: "Відповідальна частину машини за своїм характером є не арифметичною, а логічної.

Селектрон здатний запам'ятати до 4096 розрядів

Логіка ж, будучи системою типу "так - ні", в основі своїй також двійкову. Тому двійкове арифметичне пристрій істотно сприяє побудові більш однорідною машини, яка може бути краще скомпонована і більш ефективна ". Але одне питання, пов'язане з поданням чисел, автори залишають відкритим: "Для нас незрозуміло, чи можуть скромні переваги способу представлення чисел з плаваючою точкою 4 компенсувати втрату деякої частини пам'яті і збільшення складності арифметичних і керуючих ланцюгів ".

Тип машини. Внутрішня (оперативна) пам'ять машини, як уже говорилося, повинна була будуватися на трубках Райхмана, кожна з яких призначалася для зберігання одного і того ж розряду всіх машинних слів (перше використання терміну в англомовній комп'ютерної літературі). Якщо трубки з'єднати паралельно і використовувати відповідну систему запису і зчитування інформації, то можна записати або витягти з пам'яті все розряди слова одночасно 5 . Це дозволяє створити паралельну машину (parallel machine), або, користуючись сучасною термінологією, комп'ютер з АУ паралельної дії (з розрядно-паралельну арифметикою), що виконує операції над усіма розрядами одночасно (на відміну від ЕДВАК, де застосування рулз диктувало порозрядну обробку). Зазначу, що в наш час термін "паралельна машина" трактується інакше, ніж в "Попередньому розгляді ...".

Ієрархія пам'яті. Автори побудували цю ієрархію наступним чином: внутрішня пам'ять (internal memory), вторинна пам'ять (secondary memory), інтегрована в машину (т. Е. Зчитування і запис здійснюються за командою з УУ), і автономна, "мертва пам'ять" (dead memory) , яка є своєрідним продовженням попередньої, але в машину не інтегрується (її вмістом можуть бути, наприклад, бібліотеки програм).

Останній розділ "Попереднього обговорення ..." присвячений способам контролю роботи ЕОМ, побудови і опису роботи УУ і зв'язків між окремими органами, а також обґрунтуванню одноадресна формату команд6. У машинному слові передбачалося розмістити дві такі команди: спочатку машина повинна була виконати "ліву" команду, потім автоматично перейти до виконання "правої", що скорочувало число звернень до оперативної пам'яті. Адреса другого операнда не задавався, так як він, як правило, вже знаходиться в регістрі-акумуляторі.

У цьому ж розділі розглядався цикл роботи машини, про який відомий програміст Алан Перліс (Alan Perils, 1922-1990) згодом говорив: "Іноді я думаю, що єдиним універсальним поняттям в комп'ютерній області є цикл" витягти - виконати "(fetch-execute cycle ) ".

Для організації циклу в апаратне забезпечення машини крім регістру-акумулятора були включені:
- буферний регістр пам'яті (Memory Buffer Register, MBR) - містив слово, яке повинно бути записано в пам'ять або вилучено з неї;
- регістр адреси (Memory Address Register, MAR) - визначав адресу, за якою слово записувалося в пам'ять або витягувалися з неї і містилося в MBR;
- командний регістр (Instruction Register, IR) - містив код операції, яка підлягає виконанню;
- буферний регістр команди (Instruction Buffer Register, IBR) - короткочасно зберігав "праву" команду;
- програмний лічильник (Program Counter, PC) - містив адресу наступної команди.

На думку фон Неймана як ідеолога комп'ютерної архітектури, без сумніву, вплинуло його математичне "початок", що стало джерелом характерних для нього "помилок". Ось два приклади.

Сучасні комп'ютери в переважній більшості здійснюють операції над числами з плаваючою точкою (в формі мантиса - експонента), але до такого поданням чисел фон Нейман і його співавтори ставилися несхвально. Вони були переконані, що ЕОМ будуть використовувати тільки математики, а для них положення десяткового дробу в числі є лише ступінь десяти, яку вони мають на думці. Який мав феноменальну пам'ять і блискучими обчислювальними здібностями, фон Нейман був переконаний, що будь-який математик без жодних труднощів переведе в розумі числа з експоненційної форми в форму десяткового дробу. Навіщо ж витрачати для цих цілей дороге устаткування і машинний час?

Далі. Створивши комп'ютерну архітектуру, в якій "одна програма могла складати іншу" (скажімо, переводити програму на асемблери в машинні коди), фон Нейман противився розробкам програмних мов високого рівня. Як згадує один з його студентів, якого фон Нейман застав за написанням асемблера: "Він обурився, сказавши, що немає сенсу використовувати дорогий обчислювальний інструмент, щоб зробити роботу клерка". Про негативне ставлення фон Неймана до Фортрана говорив і його творець - великий програміст Джон Бекус. Втім, Бекус в боргу не залишився, помітивши основний недолік фон-неймановской архітектури.

Справа в тому, що комп'ютерники завжди прагнули домогтися якомога більшої продуктивності машин, а для цього було необхідно (при інших рівних умовах), щоб АУ не простоювали. Але обмін даними між АУ і ОЗУ йшов пословно, і подібний "простий" був вимушеним, спочатку властивим фон-неймановской архітектурі (інакше кажучи, канал зв'язку між згаданими пристроями мав невисоку пропускну здатність, незмірно меншу, ніж швидкодія АУ). У 1977 р в лекції, яку Бекус прочитав з приводу нагородження його премією імені Алана Тьюринга, говорилося: "Що таке комп'ютер по фон Нейманом? Коли 30 років тому Джон фон Нейман та інші запропонували свою оригінальну архітектуру, ідея здалася елегантною, практичною і дозволяє спростити рішення цілого ряду інженерних і програмістів завдань. І хоча за минулий час умови, що існували на момент її публікації, радикально змінилися, ми ототожнюємо наші уявлення про комп'ютери з цієї старої концепцій. У найпростішому викладі фон-Неймановская комп'ютер складається з трьох частин: це центральний процесор (СPU) 7 , Пам'ять і з'єднує їх канал, який служить для обміну даними між CPU і пам'яттю, причому маленькими порціями (лише по одному слову). Я пропоную назвати цей канал "пляшковим горлом фон Неймана" (von Neumann bottleneck). Напевно має бути менш примітивне рішення, ніж перекачування величезної кількості даних через "пляшкове горло". Такий канал не тільки створює проблему для трафіку, але ще і є "інтелектуальним пляшковим горлом", яке нав'язує програмістам "Послівний" мислення, не дозволяючи міркувати в більш високих концептуальних категоріях ".

Але, як проникливо зауважив Л. Черняк, якому належить цитований вище переклад уривка з лекції Бекуса, останній "... розробив" самий фон-Неймановская мову "з усіх мов високого рівня ... і основний пафос його критики був звернений насамперед до недосконалим методам програмування. .. з моменту проголошення Бекуса його промови в програмуванні відбулися помітні зрушення, з'явилися функціональні та об'єктно-орієнтовані технології, і з їх допомогою вдалося подолати (на мій погляд, частково. - Ю. П.) то, що Бекус назвав "ін інтелектуальні фон-Неймановская пляшковим горлом ". Однак архітектурна причина цього явища, вроджена хвороба каналу між пам'яттю і процесором ... не зникла, не дивлячись на прогрес в області технології за минулі з тих пір 30 років. З роками ця проблема постійно погіршується, оскільки швидкість роботи пам'яті зростає набагато повільніше, ніж продуктивність процесорів, і розрив між ними стає все більше ". Додам, що з'явилися і апаратні методи поліпшення вихідної архітектури (індексні регістри, введення-виведення даних паралельно з обчисленнями, віртуальна пам'ять, мультіпроцессірованіе і т. Д.), Запропоновані нові комп'ютерні архітектури, реалізовані в основному в дорогих машинах, а й в них в тій чи іншій мірі присутній (можна піднесено сказати - безсмертна) фон-неймановская, або принстонська архітектура.

Для подолання цього недоліку пропонувалися і пропонуються архітектури процесорів, які називаються паралельними. Фон-неймановская архітектура комп'ютера не є єдино можливою, і про інших архітектурах ми ще поговоримо свого часу.

Примітки

1. Продовжуючи працювати в області ЗУ, Райхман згодом створив ЗУ на магнітних сердечниках (незалежно від Д. Форрестера), на трасфлюксере (многодирочном магнітному елементі), а також голографічну і надпровідну пам'ять.

2. Свідченням уваги, що фон Нейман приділяв пристроїв зберігання інформації, є той факт, що їм присвячені два з шести розділів "Попереднього обговорення ...".

3. Нагадаю, що в той час ще не були запропоновані індексні регістри, непряма адресація і ін.

4. У Росії - з плаваючою комою.

5. Передбачалося, що в машині буде використано 40 трубок Райхмана, що дозволило б створити пам'ять ємністю в 4096 машинних слів по 40 двійкових розрядів в кожному.

6. Оскільки машинне слово повинно було містити 40 розрядів, фон Нейман обгрунтував доцільність упаковки в одному слові двох 20-розрядних команд. Ця ідея була використана потім в англійській ЕОМ Manchester Mark I, американських UNIVAC I, IBM 701 і деяких інших машинах.

7. У сучасних машинах в центральному процесорі об'єднані АУ і УУ.

З Циклу статей Ю. напівновій "Історичні машини" .
Стаття опублікована в PCWeek / RE № 23 2006 р

Стаття надрукована в музей 15.07.2006 року

Навіщо ж витрачати для цих цілей дороге устаткування і машинний час?
У 1977 р в лекції, яку Бекус прочитав з приводу нагородження його премією імені Алана Тьюринга, говорилося: "Що таке комп'ютер по фон Нейманом?

Реклама



Новости