© Сайт про Урок @""ІНФОРМАТИКА""@ WMmail.ru - сервис почтовых рассылок
   
  pc201010
  Багаторівнева організація комп’ютерів
 

 

ЗМІСТ

 

Вступ.............................................................................................................................3

1. Багаторівнева комп'ютерна організація................................................................4

1.1 Мови, рівні і віртуальні машини………….........................................................4

1.2 Сучасні багаторівневі машини.............................................................................7

2. Розвиток комп'ютерної архітектури.....................................................................11

2.1 Нульове покоління — механічні комп'ютери (1642-1945)..............................11

2.2 Перше покоління — електронні лампи (1945-1955)........................................14

2.3 Друге покоління — транзистори (1955-1965).................................................. 18

2.4 Третє покоління — інтегральні схеми (1965-1980)..........................................21

2.5 Четверте покоління — надвеликі інтегральні схеми (1980-?).........................23

3. Типи комп'ютерів…………………………...........................................................26

3.1 Технологічні і економічні аспекти.....................................................................26

3.2 Широкий спектр комп'ютерів………………………………….........................28

4. Сімейства комп'ютерів..........................................................................................32

4.1 Pentium II..............................................................................................................32

4.2 ULTRASPARC II.................................................................................................36

4.3 PicoJava II.............................................................................................................39

Література..................................................................................................................42

 

 

 

 

 

 

 

 

 

 

Вступ

Цифровий комп'ютер — це машина, яка може вирішувати задачі, виконуючи дані їй команди. Послідовність команд, що описують рішення певної задачі, називається програмою. Електронні схеми кожного комп'ютера можуть розпізнавати і виконувати обмежений набір простих команд. Всі програми перед виконанням повинні бути перетворені на послідовність таких команд, які зазвичай не складніше чим:

• скласти 2 числа;

• перевірити, чи не є число нулем;

• скопіювати шматок даних з однієї частини пам'яті комп'ютера в іншу.

Ці примітивні команди в сукупності складають мову, на якій люди можуть спілкуватися з комп'ютером. Така мова називається машинною мовою. Розробник при створенні нового комп'ютера повинен вирішувати, які команди включити в машинну мову цього комп'ютера. Це залежить від призначення комп'ютера, від того, які завдання він повинен виконувати. Зазвичай прагнуть зробити машинні команди якомога простіше, щоб уникнути складнощів при конструюванні комп'ютера і понизити витрати на необхідну електроніку. Оскільки більшість машинних мов дуже примітивні, використовувати їх важко і утомливо. Це просте спостереження з часом привело до побудови ряду рівнів абстракцій, кожна з яких надбудовується над абстракцією нижчого рівня. Саме таким чином можна подолати складнощі при спілкуванні з комп'ютером. Ми називаємо цей підхід багаторівневою комп'ютерною організацією.

Так ми і назвали цю книгу. У наступному розділі ми розповімо, що розуміємо під цим терміном. Потім ми розповімо про історію розвитку цієї проблеми і положення справ зараз, а також розглянемо деякі важливі приклади.

 

 

 

 

 

 

Багаторівнева комп'ютерна організація

Як ми вже сказали, існує величезна різниця тим часом, що зручно для людей, і тим, що зручно для комп'ютерів. Люди хочуть зробити X, але комп'ютери можуть зробити тільки Y. Через це виникають проблеми. Мета даної книги — пояснити, як можна вирішувати ці проблеми.

 

Мови, рівні і віртуальні машини

Проблему можна вирішити двома способами. Обидва ці способу включають розробку нових команд, які зручніші для людини, чим вбудовані машинні команди. Ці нові команди в сукупності формують мову, яку ми називатимемо Я 1. Вбудовані машинні команди теж формують мову, і ми називатимемо його Я 0. Комп'ютер може виконувати тільки програми, написані на його машинній мові Я 0. Згадані два способи вирішення проблеми розрізняються тим, яким чином комп'ютер виконуватиме програми, написані на мові Я 1.

Перший спосіб виконання програми, написаної на мові Я 1, — заміна

кожної команди на еквівалентний набір команд в мові Я 0. В цьому випадку комп'ютер виконує нову програму, написану на мові Я 0, замість старої програми, написаної на Я 1. Ця технологія називається трансляцією.

Другий спосіб — написання програми на мові Я 0, яка бере програми, написані на мові Я 1, як вхідні дані, розглядає кожну команду по черзі і відразу виконує еквівалентний набір команд мови Я 0. Ця технологія не вимагає складання нової програми на Я 0. Вона називається інтерпретацією, а програма, яка здійснює інтерпретацію, називається інтерпретатором.

Трансляція і інтерпретація схожі. При застосуванні обох методів комп'ютер зрештою виконує набір команд на мові Я 0, еквівалентних командам Я 1. Відмінність лише в тому, що при трансляції вся програма Я 1 переробляється в програму Я 0, програма Я 1 відкидається, а нова програма на Я 0 завантажується в пам'ять комп'ютера і потім виконується.

При інтерпретації кожна команда програми на Я 1 перекодує в Я 0 і відразу ж виконується. На відміну від трансляції, тут не створюється нова програма на Я 0, а відбувається послідовна перекодувала і виконання команд. Обидва ці методу, а також їх комбінація широко використовуються.

Зазвичай набагато простіше уявити собі існування гіпотетичного комп'ютера або віртуальної машини, для якої машинною мовою є мова Я 1, чим думати про трансляцію і інтерпретацію. Назвемо таку віртуальну машину М 1. Якби таку машину М 1 можна було б сконструювати без великих грошових витрат, мова Я 0, та і машина, яка виконує програми на мові Я 0, були б не потрібні. Можна було б просто писати програми на мові Я 1, а комп'ютер відразу б їх виконував. Навіть якщо віртуальна машина дуже дорога або її дуже важко сконструювати, люди все ж таки можуть писати програми псові. Ці програми можуть транслюватися або інтерпретуватися програмою, написаною на мові Я 0, яка сама могла б виконуватися фактично існуючим комп'ютером.

Іншими словами, можна писати програми для віртуальних машин, неначе

вони дійсно існують. Щоб трансляція і інтерпретація були доцільними, мови Я 0 і Я 1 не повинні сильно розрізнятися. Це означає, що мова Я 1 хоч і краще, ніж Я 0, але все таки далекий від ідеАЛП. Можливо, це декілька бентежить в світлі первинної мети створення мови Я 1 — звільнити програміста від тягаря написання програм на мові, яка зручніша для комп'ютера, чим для людини.

Проте ситуація не так безнадійна. Очевидне рішення цієї проблеми — створення ще одного набору команд, які більшою мірою орієнтовані на людину і у меншій мірі на комп'ютер, чим Я 1. Цей третій набір команд також формує мову, яку ми називатимемо Я 2, а відповідну віртуальну машину — М 2, Людина може писати програми на мові Я 2, неначе віртуальна машина з машинною мовою Я 2 дійсно існує. Такі програми можуть або транслюватися на мову Я 1, або виконуватися інтерпретатором, написаним на мові Я 1. Винахід цілого ряду мов, кожен з яких зручніший для людини, чим попередній, може продовжуватися до тих пір, поки ми не дійдемо до відповідної нам мови. Кожен така мова використовує свого попередника як основу, тому ми можемо розглядати комп'ютер у вигляді ряду рівнів, як показано на мал. 1. Мова, що знаходиться в самому низу ієрархічної структури, — найпримітивніший, а що знаходиться на самому верху — найскладніший.

Мал. 1. Багаторівнева машина

Між мовою і віртуальною машиною існує важлива залежність. У кожної машини є якась певна машинна мова, що складається зі всіх команд, які ця машина може виконувати. По суті, машина визначає мову. Схожим чином мова визначає машину, яка може виконувати всі програми, написані на цій мові. Машину, що задається певною мовою, дуже складно і дорого сконструювати з електронних схем, але ми можемо уявити собі таку машину. Комп'ютер з машинною мовою C++ або COBOL був би дуже складним, але його можна було б сконструювати, якщо враховувати високий рівень сучасних технологій. Проте існують вагомі причини не створювати такий комп'ютер: це злитком складно в порівнянні з іншими технічними прийомами.

Комп'ютер з п рівнями можна розглядати як п разных віртуальних

машин, у кожної з яких є своя машинна мова. Терміни «рівень» і «віртуальна машина» ми використовуватимемо як синоніми. Тільки програми, написані на Я 0, можуть виконуватися комп'ютером без застосування трансляції і інтерпретації. Програми, написані на Я 1, Я 2.... Я п, повинні проходити через інтерпретатор нижчого рівня або транслюватися на мову, відповідну нижчому рівню.

Людині, яка пише програми для віртуальної машини рівня п, не обов'язково знати про транслятори і інтерпретатори нижчих рівнів. Машина виконає ці програми, і не важливо, чи будуть вони виконуватися крок за кроком інтерпретатором або їх виконуватиме сама машина. У обох випадках результат один і той же: програма буде виконана.

 

Сучасні багаторівневі машини

Більшість сучасних комп'ютерів складаються з двох і більш за рівні. Існують машини навіть з шістьма рівнями (мал. 2). Рівень 0 — апаратне забезпечення машини. Його електронні схеми виконують програми, написані на мові рівня 1. Ради повноти потрібно згадати про існування ще одного рівня, розташованого нижче рівня 0. Цей рівень не показаний на мал. 1.2, оскільки він потрапляє в сферу електронної техніки і, отже, не розглядається в цій книзі. Він називається рівнем фізичних пристроїв. На цьому рівні знаходяться транзистори, які є примітивами для розробників комп'ютерів. Пояснювати, як працюють транзистори, — завдання фізики.

На самому нижньому рівні, цифровому логічному рівні, об'єкти називаються вентилями. Хоча вентилі складаються з аналогових компонентів, таких як транзистори, вони можуть бути точно змодельовані як цифрові засоби. У кожного вентиля є одне або декілька цифрових вхідних даних (сигналів, що представляють 0 або 1). Вентиль обчислює прості функції цих сигналів, такі як і або АБО. Кожен вентиль формується з декількох транзисторів. Декілька вентилів формують 1 біт пам'яті, який може містити 0 або 1. Біти пам'яті, об'єднані в групи, наприклад, по 16,32 або 64, формують регістри. Кожен регістр може містити одне двійкове число до певної межі. З вентилів також може полягати сам комп'ютер.

Мал. 2. Комп'ютер з шістьма рівнями. Спосіб підтримки кожного рівня     

             вказаний під ним.

Наступний рівень — мікроархітектурний рівень. На цьому рівні можна бачити сукупності 8 або 32 регістрів, які формують локальну пам'ять і схему, звану АЛП (арифметико-логічний пристрій). АЛП виконує прості арифметичні операції. Регістри разом з АЛП формують тракт даних, по якому поступають дані. Основна операція тракту даних полягає в наступному. Вибирається один або два регістри, АЛП проводить над ними яку-небудь операцію, наприклад складання, а результат поміщається в один з цих регістрів.

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

На машинах, де тракт даних контролюється програмним забезпеченням мікропрограма — це інтерпретатор для команд на рівні 2. Мікропрограма викликає команди з пам'яті і виконує їх одну за іншою, використовуючи при цьому тракт даних. Наприклад, для того, щоб виконати команду ADD, ця команда викликається з пам'яті, її операнди поміщаються в регістри, АЛП обчислює суму, а потім результат переправляється назад. На комп'ютері з апаратним контролем тракту даних відбувається така ж процедура, але при цьому немає програми, яка контролює інтерпретацію команд рівня 2.

Другий рівень ми називатимемо рівнем архітектури системи команд. Кожен виробник публікує керівництво для комп'ютерів, які він продає, під назвою «Керівництво по машинній мові» або «Принципи роботи комп'ютера Western Wombat Model 100Х» - і т.п. Таке керівництво містить інформацію саме про цей рівень. Коли вони описують набір машинних команд, вони насправді описують команди, які виконуються мікропрограмою-інтерпретатором або апаратним забезпеченням. Якщо виробник поставляє два інтерпретатори для однієї машини, він повинен видати два керівництво по машинній мові, окремо для кожного інтерпретатора.

Наступний рівень зазвичай гібридний. Більшість команд в його мові є також і на рівні архітектури системи команд (команди, що є на одному з рівнів, цілком можуть знаходитися на інших рівнях). У цього рівня є деякі додаткові особливості: набір нових команд, інша організація пам'яті, здатність виконувати дві і більш за програми одночасно і деякі інші. При побудові третього рівня можливі більше варіантів, чим при побудові першого і другого.

Нові засоби, що з'явилися на третьому рівні, виконуються інтерпретатором, який працює на другому рівні. Цей інтерпретатор був колись названий операційною системою. Команди третього рівня, ідентичні командам другого рівня, виконуються мікропрограмою або апаратним забезпеченням, але не операційною системою. Іншими словами, одна частина команд третього рівня інтерпретується операційною системою, а інша частина — мікропрограмою. От чому цей рівень вважається гібридним. Ми називатимемо цей рівень рівнем операційної системи.

Між третім і четвертим рівнями є істотна різниця. Нижні три рівня конструюються не для того, щоб з ними працював звичайний програміст. Вони спочатку призначені для роботи інтерпретаторів і трансляторів, що підтримують вищі рівні. Ці транслятори і інтерпретатори складаються так званими системними програмістами, які спеціалізуються на розробці і побудові нових віртуальних машин. Рівні з четвертого і вищеописані для прикладних програмістів, вирішальних конкретні завдання. Ще одна зміна, що з'явилася на рівні 4, — спосіб, яким підтримуються вищі рівні. Рівні 2 і 3 зазвичай інтерпретуються, а рівні 4, 5 і вище зазвичай, хоч і не завжди, підтримуються транслятором. Інша відмінність між рівнями 1,2,3 і рівнями 4,5 і вище — особливість мови. Машинні мови рівнів 1,2 і З — цифрові. Програми, написані на цих мовах, складаються з довгих лав цифр, які зручні для комп'ютерів, але абсолютно незручні для людей. Починаючи з четвертого рівня, мови містять слова і скорочення, зрозумілі людині.

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

П'ятий рівень зазвичай складається з мов, розроблених для прикладних програмістів. Такі мови називаються мовами високого рівня. Існують сотні мов високого рівня. Найбільш відомі серед них — BASIC, З, C++, Java, LISP і Prolog. Програми, написані на цих мовах, зазвичай транслюються на рівень 3 або 4. Транслятори, які обробляють ці програми, називаються компіляторами. Відзначимо, що іноді також використовується метод інтерпретації. Наприклад, програми на мові Java зазвичай інтерпретуються. В деяких випадках п'ятий рівень складається з інтерпретатора для такої сфери додатку, як символічна математика. Він забезпечує дані і операції для вирішення завдань в цій сфері в термінах, зрозумілих людям, досвідченим в символічній математиці.

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

Набір типів даних, операцій і особливостей кожного рівня називається архітектурою. Архітектура пов'язана з аспектами, які видно програмістові. Наприклад, відомості про те, скільки пам'яті можна використовувати при написанні програми, — частина архітектури. А аспекти розробки (наприклад, яка технологія використовується при створенні пам'яті) не є частиною архітектури. Вивчення того, як розробляються ті частини комп'ютерної системи, які видно програмістам, називається вивченням комп'ютерної архітектури. Терміни «комп'ютерна архітектура» і «комп'ютерна організація» означають по суті одне і те ж.

 

Розвиток комп'ютерної архітектури

В період розвитку комп'ютерних технологій були розроблені сотні різних комп'ютерів. Багато хто з них давно забутий, але деякі сильно вплинули на сучасні ідеї. У цьому розділі ми дамо короткий огляд деяких ключових історичних моментів, щоб краще зрозуміти, яким чином розробники дійшли до створення сучасних комп'ютерів.

Комп'ютери, які ми розглядатимемо, представлені в табл. 1.

 

Нульове покоління — механічні комп'ютери (1642-1945)

Першою людиною, що створила рахункову машину, був французький учений Блез Паскаль (1623-1662), на честь якого названа одна з мов програмування. Паскаль сконструював цю машину в 1642 році, коли йому було всього 19 років, для свого отця, складальника податків. Вона була механічна: з шестерінками і ручним приводом. Рахункова машина Паскаля могла виконувати тільки операції складання і віднімання.

Тридцять років через великого німецького математика Готфрід Вільгельм Лейбніц (1646-1716) побудував іншу механічну машину, яка окрім складання і віднімання могла виконувати операції множення і ділення. По суті, Лейбніц три століття назад створив подібність кишенькового калькулятора з чотирма функціями. Ще через 150 років професор математики Кембріджського університету Чарльз Беббідж (1792-1871), винахідник спідометра, розробив і сконструював різницеву машину. Ця механічна машина, яка, як і машина Паскаля, могла тільки складати і віднімати, підраховувала таблиці чисел для морської навігації. У машину був закладений тільки один алгоритм — метод кінцевих різниць з використанням поліномів. У цієї машини був досить цікавий спосіб виведення інформації: результати видавлювалися сталевим штампом на мідній дощечці, що передбачило пізніші засоби введення-виводу — перфокарти і компакт-диски. Хоча цей пристрій працював досить непогано, Беббіджу незабаром наскучила машина, що виконувала тільки один алгоритм. Він витратив дуже багато часу, велику частину свого сімейного стану і ще 17000 фунтів, виділених урядом, па розробку аналітичної машини. У аналітичної машини були 4 компоненти: пристрій (пам'ять), що запам'ятовує, обчислювальний пристрій, пристрій введення (для прочитування перфокарт), пристрій виводу (перфоратор і друкуючий пристрій). Пам'ять складалася з 1000 слів але 50 десяткових розрядів, кожне з яких містило змінні і результати. Обчислювальний пристрій приймав операнди з пам'яті, потім виконувало операції складання, віднімання, множення або ділення і повертало отриманий результат назад в пам'ять. Як і різницева машина, цей пристрій був механічним.

Перевага аналітичної машини полягала в тому, що вона могла виконувати різні завдання. Вона прочитувала команди з перфокарт і виконувала їх.

Деякі команди наказували машині узяти 2 числа з пам'яті, перенести їх у обчислювальний пристрій, провести над ними операцію (наприклад, скласти) і відправити результат назад в пристрій, що запам'ятовує. Інші команди перевіряли число, а іноді здійснювали операцію переходу залежно від того, позитивне воно або негативне. Якщо в прочитуючий пристрій вводилися перфокарти з іншою програмою, то машина виконувала інший набір операцій. А різницева машина могла здійснювати тільки один алгоритм. Оскільки ця аналітична машина програмувалася на асемблері, їй було необхідне програмне забезпечення. Щоб створити це програмне забезпечення, Беббідж найняв молоду жінку — Аду Августу Ловлейс, дочку знаменитого британського поета Байрона. Ада Ловлейс була першим в світі програмістом. У це честь названа сучасна мова програмування Ada. До нещастя, Беббідж ніколи не відладжував комп'ютер. Йому потрібні були тисячі і тисячі шестерінок, зроблених з такою точністю, яка була неможлива в XIX столітті. Але ідеї Беббіджа випередили його епоху, і навіть сьогодні більшість сучасних комп'ютерів по будові схожі з аналітичною машиною. Тому справедливо буде сказати, що Беббідж був дідусем сучасного цифрового комп'ютера.

Таблиця 1. Основні етапи розвитку комп'ютерів

В кінці 30-х років XX століття німець Конрад Зус сконструював декілька автоматичних рахункових машин з використанням електромагнітних реле. Йому не вдалося отримати грошові кошти від уряду на свої розробки тому що почалася війна. Зус нічого не знав про роботу Беббіджа, і його машини були знищені під час бомбардування Берліна в 1944 році, тому його робота ніяк не вплинула на майбутній розвиток комп'ютерної техніки. Проте він був одним з піонерів в цій області. Трохи пізніше рахункові машини були сконструйовані в Америці. Машина Атанасова була надзвичайно розвиненою для того часу. У ній використовувалася бінарна арифметика і інформаційні ємкості, які періодично оновлювалися, щоб уникнути знищення даних. Сучасна динамічна пам'ять (ОЗУ) працює точно за таким же принципом. До нещастя, ця машина так і не стала такою, що діє. У якомусь сенсі Атанасов був схожий на Беббіджа: мрійник, якого не влаштовували технології свого часу.

Комп'ютер Стібітса дійсно працював, хоч і був примітивніший, чим машина Атанасова. Стібітс продемонстрував роботу своєї машини на конференції в Дартмутськом коледжі в 1940 році. На цій конференції був присутній Джон Моушлі, нічим не знаменитий професор фізики з університету Пенсільванії. Пізніше він став дуже відомим в області комп'ютерних розробок. Поки Зус, Стібітс і Атанасов розробляли автоматичні рахункові машини, молодий Говард Айкен насилу проектував ручні рахункові машини як частина свого філософського дослідження в Гарварді. Після закінчення дослідження Айкен усвідомив важливість автоматичних обчислень. Він пішов в бібліотеку, дізнався про роботу Беббіджа і вирішив створити з реле такий же комп'ютер, який Беббіджу не вдалося створити із зубчатих коліс.

Робота над першим комп'ютером Айкена «Mark I» була закінчена в 1944 році. Комп'ютер містив 72 слова по 23 десяткових розряду кожне і міг виконати будь-яку команду за 6 секунд. На пристроях введення-виводу використовувалася перфострічка. На той час, як Айкен закінчив роботу над комп'ютером «Mark II», релейні комп'ютери вже застаріли. Почалася ера електроніки.

 

Перше покоління — електронні лампи (1945-1955)

Стимулом до створення електронного комп'ютера стала Друга світова війна. На початку війни німецькі підводні човни руйнували британські кораблі. Німецькі адмірали посилали на підводні човни по радіо команди, а англійці могли перехоплювати ці команди. Проблема полягала в тому, що ці радіопослання були закодовані за допомогою приладу під назвою ENIGMA, попередник якого був спроектований винахідником-дилетантом і колишнім президентом США Томасом Джефферсоном.  На початку війни англійцям вдалося придбати ENIGMA у поляків, які у свою чергу, вкрали його у німців. Проте щоб розшифрувати закодоване послання, була потрібна величезна кількість обчислень, і їх потрібно було провести відразу після того, як радіопослання було перехоплене. Тому британський уряд заснував секретну лабораторію для створення електронного комп'ютера під назвою COLOSSUS. У створенні цієї машини брав участь знаменитий британський математик Алан Тюрінг. COLOSSUS працював вже в 1943 році, але оскільки британський уряд повністю контролював цей проект і розглядав його як військову таємницю впродовж 30 років, COLOSSUS не міг служити основою подальшого розвитку комп'ютерів. Ми згадали його тільки тому, що це був перший в світі електронний цифровий комп'ютер.

Друга світова війна вплинула і на розвиток комп'ютерної техніки в США. Армії потрібні були таблиці стрілянина, яка використовувалася при націлюванні важкої артилерії. Сотні жінок наймалися для обчислення цих таблиць на ручних рахункових машинах (вважалося, що жінки акуратніші при розрахунках, чим чоловіки). Проте цей процес вимагав багато часу, і часто траплялися помилки.

Джон Моушлі, який був знайомий з роботами Атанасова і Стібітса, розумів, що армія зацікавлена в створенні механічних рахункових машин. Він зажадав від армії фінансування робіт із створення електронного комп'ютера. Вимога була задоволена в 1943 році, і Моушлі з своїм студентом, Дж. Преспером Екертом, почали конструювати електронний комп'ютер, який вони назвали ENIAC (Electronic Numerical Integrator and Computer — електронний цифровий інтегратор і калькулятор). Він складався з 18 000 електровакуумних ламп і 1500 реле. ENIAC важив 30 тонн і споживав 140 кіловат електроенергії. У машини було 20 регістрів, кожен з яких міг містити 10-розрядне десяткове число. (Десятковий регістр — це пам'ять дуже маленького об'єму, яка може вміщати число до якої-небудь певної максимальної кількості розрядів, щось подібне до одометра, який запам'ятовує кілометраж пройденого автомобілем шляху.) У ENIАС було встановлено 6000 багатоканальних перемикачів і безліч кабелів було протягнуто до розеток.

Робота над машиною була закінчена в 1946 році, коли вона вже була не потрібна. Але оскільки війна закінчилася, Моушлі і Екерту дозволили організувати школу, де вони розповідали про свою роботу колегам-ученим. З цієї школи почався розвиток інтересу до створення великих цифрових комп'ютерів. Після появи школи і інші дослідники узялися за конструювання електронних обчислювальних машин. Першим робочим комп'ютером був EDSAC (1949 рік). Цю машину сконструював Моріс Уїлкс в Кембріджському університеті. Далі JOHNIAC — в корпорації Rand, ILLIAC — в Університеті Ілінойса, MANIAC — в лабораторії Лос-аламоса і WEIZAC — в Інституті Вайцмана в Ізраїлі.

Екерт і Моушлі незабаром почали роботу над машиною EDVAC (Electronic Discrete Variable Computer — електронна дискретна параметрична машина). До нещастя, цей проект закрився, коли вони пішли з університету, щоб заснувати комп'ютерну корпорацію у Філадельфії (Силіконової долини тоді ще не було). Після ряду злиття ця компанія перетворилася на Unisys Corporation. Екерт і Моушлі хотіли отримати патент на винахід цифрової обчислювальної машини. Після декількох років судової тяжби було винесено ухвАЛП, що патент недійсний, оскільки цифрову обчислювальну машину винайшов Атанасов, хоча він і не запатентував свій винахід. Тоді як Екерт і Моушлі працювали над машиною EDVAC, один з учасників проекту ENIAC, Джон фон Нейман, поїхав в Інститут спеціальних досліджень в Прінстоне, щоб сконструювати свою власну версію EDVAC, машину IAS1. Фон Нейман був генієм в тих же областях, що і Леонардо да Вінчі. Він знав багато мов, був фахівцем у фізиці і математиці і володів феноменальною пам'яттю; він пам'ятав все, що коли-небудь чув, бачив або читав.

Він міг дослівно процитувати по пам'яті тексти книг, які читав кілька років тому. Коли фон Нейман став цікавитися обчислювальними машинами, він вже був найзнаменитішим математиком в світі. Фон Нейман незабаром усвідомив, що створення комп'ютерів з великою кількістю перемикачів і кабелів вимагає тривалого часу і дуже утомливо. Він прийшов до думки, що програма повинна бути представлена в пам'яті комп'ютера в цифровій формі, разом з даними. Він також відзначив, що десяткова арифметика, використовувана в машині ENIAC, де кожен розряд представлявся 10 електронними лампами (1 включена і 9 вимкнені), повинна бути замінена бінарною арифметикою.

Основний проект, який він описав спочатку, відомий зараз як фон-неймановская обчислювальна машина. Він був використаний в EDSAC, першій машині з програмою в пам'яті, і навіть зараз, більш ніж півстоліття опісля, є основою більшості сучасних цифрових комп'ютерів. Цей задум і машина IAS зробили дуже великий вплив на подальший розвиток комп'ютерної техніки, тому варто стисло описати його. Схема архітектури цієї машини дана на мал. 1.4.

Мал. 3. Схема фон-неймановської обчислювальної машини

Машина фон Неймана складалася з п'яти основних частин: пам'яті, арифметико-логічного пристрою, пристрою управління, а також пристроїв введення-виводу. Пам'ять включала 4096 слів, кожне слово містило 40 бітів, битий — це 0 або 1. Кожне слово містило або 2 команди по 20 бітів, або ціле число сознаком на 40 бітів. 8 бітів указували на тваней команди, а решта 12 бітів визначали одне з 4096 слів. Усередині арифметико-логічного пристрою знаходився особливий внутрішній регістр в 40 бітів, так званий акумулятор. Типова команда додавала слово з пам'яті до акумулятора або зберігала вміст акумулятора в пам'яті. Ця машина не виконувала арифметичні операції з плаваючою крапкою, оскільки фон Нейман розумів, що будь-який досвідчений математик був здатний тримати плаваючу кому в голові.

Приблизно в той же час, коли фон Нейман працював над машиною IAS, дослідники МТИ розробляли свій комп'ютер Whirlwind I. На відміну від IAS, ENIAC і інших машин того ж типу із словами великої довжини, машина Whirlwind I містила слова по 16 бітів і була призначена для роботи в реальному часі. Цей проект привів до винаходу пам'яті на магнітному сердечнику (винахідник Джей Форрестер), а потім і першого серійного міні-комп'ютера. У той час IBM була маленькою компанією, що проводила перфокарти і механічні машини для їх сортування. Хоча фірма IBM частково фінансувала проект Айкена, вона не цікавилася комп'ютерами і лише в 1953 році побудувала комп'ютер IBM-701, через багато років після того, як компанія Екерта і Моушлі з своїм комп'ютером UNIVAC стала номером один на комп'ютерному ринку. У IBM-701 було 2048 слів по 36 бітів, кожне слово містили дві команди. Він став першим комп'ютером, що лідирує на ринку протягом десяти років. Через три роки з'явився IBM-704, у якого були 4 Кбайт пам'яті на магнітних сердечниках, команди по 36 бітів і процесор з плаваючою крапкою. У 1958 році компанія IBM почала роботу над останнім комп'ютером на електронних лампах, IBM-709, який по суті був ускладненою версією IBM-704.

 

Друге покоління — транзистори (1955-1965)

Транзистор був винайдений співробітниками лабораторії Bell Laboratories Джоном Бардіном, Уолтером Браттейном і Уїльямом Шоклі, за що в 1956 році вони отримали Нобелівську премію в області фізики. Протягом десяти років транзистори провели революцію у виробництві комп'ютерів, і до кінця 50-х років комп'ютери на вакуумних лампах застаріли. Перший комп'ютер на транзисторах був побудований в лабораторії МТІ. Він містив слова з 16 бітів, як і Whirlwind I. Комп'ютер називався ТХ-0 (Transistorized experimental computer 0 — експериментальна транзисторна обчислювальна машина 0) і призначався тільки для тестування машини ТХ-2. Машина ТХ-2 не мала великого значення, але один з інженерів з цієї лабораторії, Кенет Ольсен, в 1957 році заснував компанію DEC (Digital Equipment Corporation — корпорація по виробництву цифрової апаратури), щоб проводити серійну машину, схожу з ТХ-0. Ця машина, PDP-1, з'явилася тільки через чотири роки головним чином тому, що капіталісти, фінансуючі DEC, вважали виробництво комп'ютерів невигідним. Тому компанія DEC продавала в основному невеликі електронні плати.

PDP-1 ноявнлея тільки в 1961 році. У нього були 4 Кбайт слів по 18 бітів і час циклу 5 мікросекунд. Цей параметр був в два рази менше, ніж у IBM-7090, транзисторного аналога IBM-709. PDP-1 був найшвидшим комп'ютером в світі у той час. PDP-1 коштував $120000, а IBM-7090 коштував мільйони. Компанія DEC продала десятки комп'ютерів PDP-1, і так з'явилася комп'ютерна промисловість. Одну з перших машин моделі PDP-1 віддали в МТІ, де вона відразу привернула увагу деяких молодих дослідників, що подають великі надії. Одним з нововведень PDP-1 був дисплей з розміром 512 на 512 пікселів, на якому можна було малювати крапки. Незабаром студенти МТІ склали спеціальну програму для PDP-1, щоб грати в «Війну світів» — першу в світі комп'ютерну гру. Через декілька років DEC розробив модель PDP-8, 12-бітовий комп'ютер. PDP-8 коштував набагато дешевше, ніж PDP-1 ($16000). Головне нововведення — одна шина (Omnibus) (мал. 4). Шина — це набір паралельно сполучених проводів для зв'язку компонентів комп'ютера. Це нововведення сильно відрізняло PDP-8 від I AS. Така структура з тих пір стала використовуватися у всіх комп'ютерах. Компанія DEC продала 50 000 комп'ютерів моделі PDP-8 і стала лідером на ринку міні-комп'ютерів.

Мал. 4. Шина компютера PDP-8

Як вже було сказано, з винаходом транзисторів компанія IBM побудувала транзисторну версію IBM-709 - IBM-7090, а пізніше - IBM-7094. У неї час циклу складало 2 мікросекунди, а пам'ять складалася з 32 До слів по 16 бітів. IBM-7090 і IBM-7094 були останніми комп'ютерами типу ENIAC, але вони широко використовувалися для наукових розрахунків в 60-х роках минулого століття. Компанія IBM також випускала комп'ютери IBM-1401 для комерційних розрахунків. Ця машина могла прочитувати і записувати магнітні стрічки і перфокарти і роздруковувати результат так само швидко, як і IBM-7094, але при цьому коштувала дешевше. Для наукових обчислень вона не підходила, та зате була дуже зручна для ведення ділових записів.

У IBM-1401 не було регістрів і фіксованої довжини слова. Пам'ять містила 4 Кбайт по 8 бітів (4 Кбайт). Кожен байт містив символ в 6 бітів, адміністративний біт і біт для вказівки кінця слова. У команди MOVE, наприклад, є початкова адреса і адреса пункту призначення. Ця команда переміщає байти з першої адреси в другу, поки біт кінця слова не прийме значення 1.

У 1964 році компанія CDC (Control Data Corporation) випустила машину 6600 яка працювала майже на порядок швидше, ніж IBM-7094. Цей комп'ютер для складних розрахунків користувався великою популярністю, і компанія CDC пішла в гору. Секрет такої високої швидкості роботи полягав в тому, що усередині ЦП (центрального процесора) знаходилася машина з високим ступенем паралелізму. У неї було декілька функціональних пристроїв для складання, множення і ділення, і всі вони могли працювати одночасно. Для того, щоб машина швидко працювала, потрібно було скласти хорошу програму, але доклавши деякі зусилля, можна було зробити так, щоб машина виконувала 10 команд одночасно. Усередині машини 6600 було вбудовано декілька маленьких комп'ютерів. ЦП, таким чином, робило тільки підрахунок чисел, а решту функцій (управління роботою машини, а також введення і виведення інформації) виконували маленькі комп'ютери. Деякі принципи пристрою 6600 використовуються і в сучасних комп'ютерах.

Розробник комп'ютера 6600 Сеймур Крей був легендарною особою, як і фон Нейман. Він присвятив все своє життя створенню дуже могутніх комп'ютерів, які зараз називають суперкомп'ютерами. Серед них можна назвати CDC-6600, CDC-7600 і Сгау-1. Сеймур Крей також є автором відомого «алгоритму покупки автомобілів»: ви йдете в магазин, найближчий до вашого будинку, показуєте на машину, найближчу до дверей, і говорите: «Я беру цю». Цей алгоритм дозволяє витрачати мінімум часу на не дуже важливі справи (покупку автомобілів) і залишає велику частину часу на важливі (розробку суперкомп'ютерів).

Слід згадати ще один комп'ютер — Burroughs B5000. Розробники машин PDP-1, IBM-7094 і CDC-6600 займалися тільки апаратним забезпеченням, прагнучи понизити його вартість (DEC) або примусити працювати швидше (IBM і CDC). Програмне забезпечення не мінялося. Виробники В5000 пішли іншим шляхом. Вони розробили машину з наміром програмувати її иа мові Algol 60 (попереднику мови Pascal), сконструювавши апаратне забезпечення так, щоб спростити завдання компілятора. Так з'явилася ідея, що програмне забезпечення також потрібно враховувати при розробці комп'ютера. Але незабаром ця ідея була забута.

 

Третє покоління — інтегральні схеми (1965-1980)

Винахід кремнієвої інтегральної схеми в 1958 році (винахідник — Роберт Нойс) дав можливість поміщати десятки транзисторів на одну невелику мікросхему. Комп'ютери на інтегральних схемах були меншого розміру, працювали швидше і коштували дешевше, ніж їх попередники на транзисторах. Нижче описані найбільш значні з них.

До 1964 року компанія IBM лідирувала на комп'ютерному ринку, але існувала одна велика проблема: комп'ютери IBM-7094 і IBM-1401, які вона випускала, були несумісні один з одним. Один з них призначався для складних розрахунків, в нім використовувалася двійкова арифметика на регістрах по 36 бітів, а в другому використовувалася десяткова система числення і слова різної довжини. У багатьох покупців були обидва комп'ютери, і їм не подобалося, що вони абсолютно несумісні.

Коли прийшов час замінити ці дві серії комп'ютерів, компанія IBM зробила рішучий крок. Вона випустила серію комп'ютерів на транзисторах System/360, які були призначені і для наукових, і для комерційних розрахунків. System/360 містила багато нововведень. Це було ціле сімейство комп'ютерів з однією і тією ж мовою (асемблером). Кожна нова модель була більша за розміром і по потужності, чим попередня. Компанія могла замінити IBM-1401 иа IBM-360 (модель 30), а IBM-7094 - на IBM-360 (модель 75). Модель 75 була більше за розміром, працювала швидше і коштувала дорожче, але програми, написані для однієї з них, могли використовуватися для іншої. На практиці програми, написшшые для маленької моделі, виконувалися великою моделлю без особливих утруднень. Але у разі перенесення програмного забезпечення з великої машини на маленьку могло не вистачити пам'яті. Та все ж створення такого серію комп'ютерів було великим досягненням. Ідея створення сімейств комп'ютерів незабаром стала дуже популярною, і протягом декількох років більшість комп'ютерних компаній випустили цілі серії схожих машин з різною вартістю і функціями.

У табл. 1.2 показані деякі параметри перших моделей з сімейства IBM-360.0 інших моделях цього сімейства ми розповімо нижче.

Таблиця 2. Перші моделі серії ІВМ-360

Ще одне нововведення в I ВМ-360 — мультипрограмування. У пам'яті комп'ютера могло знаходитися одночасно декілька програм, і поки одна програма чекала, коли закінчиться процес введення-виводу, інша виконувалася.

IBM-360 була першою машиною, яка могла повністю імітувати роботу інших комп'ютерів. Маленькі моделі могли імітувати IBM-1401, а великі — IBM-7094, тому програмісти могли залишати свої старі програми без змін і використовувати їх в роботі з IBM-360. Деякі моделі IBM-360 виконували програми, написані для IBM-1401, набагато швидше, ніж сама IBM-1401, тому не було ніякого сенсу в переробленні програм.

Комп'ютери серії IBM-360 могли імітувати роботу інших комп'ютерів, тому що вони створювалися з використанням мікропрограмування. Потрібно було всього лише написати три мікропрограми: одну — для системи команд IBM-360, іншу — для системи команд IBM-1401 і третю — для системи команд IBM-7094. Вимога сумісності була однією з головних причин використання мікропрограмування.

IMB-360 вдалося вирішити дилему між двійковою і десятковою системою:

 

у цього комп'ютера було 16 регістрів по 32 бита для бінарної арифметики, Але нам'яти складалася з байтів, як у IBM-1401. У ній використовувалися такі ж  команди для переміщення записів різного розміру з однієї частини пам'яті в іншу, як і в IBM-1401. Об'єм пам'яті у IBM-360 складав 2й байтів (16 Мбайт). В ті часи такий об'єм пам'яті здавався величезним. Серія IBM-360 пізніше змінилася серією IBM-370 потім IBM-4300, IBM-3080, IBM-3090. У всіх цих комп'ютерів була схожа архітектура. До середини 80-х років 16 Мбайт пам'яті стало недостатньо, і компанії IBM довелося частково відмовитися від сумісності, щоб перейти на систему адрес в 32 бита, необхідну для пам'яті об'ємом в 232 байтів. Можна було б припустити, що оскільки у машин були слова в 32 бита і регістри, у них цілком могли б бути і адреси в 32 бита. Але у той час ніхто не міг навіть уявити собі комп'ютер з об'ємом пам'яті 16 Мбайт. Звинувачувати IBM у відсутності передбачення — все одно що звинувачувати сучасних виробників персональних комп'ютерів в тому, що адреси в них всього по 32 бита. Можливо через декілька років об'єм пам'яті комп'ютерів складатиме набагато більше 4 Гбайт, і тоді адрес в 32 біта буде недостатньо.

Світ міні-комп'ютерів зробив великий крок вперед в третьому поколінні разом з виробництвом серію комп'ютерів PDP-11, послідовників PDP-8 сословами по 16 бітів. У багатьох відношеннях PDP-11 був молодшим братом ІВМ-360 a PDP-1 -  молодшим братом 1ВМ-7094. І у IBM-360, і у PDP-11 були регістри, слова, пам'ять з байтами, і в обох серіях були комп'ютери різної вартості і з різними функціями. PDP-1 широко використовувався, особливо в університетах, і компанія DEC продовжувала лідирувати серед виробників міні-комп'ютерів.

 

Четверте покоління — надвеликі інтегральні схеми (1980-?)

Поява надвеликих інтегральних схем (НВІС) в 80-х роках дозволила поміщати на одну плату спочатку десятки тисяч, потім сотні тисяч і, нарешті, міліони транзисторів. Це привело до створення комп'ютерів меншого розміру і з більш високою швидкістю роботи. До появи PDP-1 комп'ютери були настільки великі і дорогі, що компаніям і університетам доводилося мати спеціальні відділи (обчислювальні центри). До 80-х років ціни впали так сильно, що можливість набувати комп'ютерів з'явилася не тільки у організацій, але і у окремих людей. Почалася ера персональних комп'ютерів.

Персональні комп'ютери використовувалися зовсім для інших цілей. Вони використовувались для обробки слів, а також для різних діалогових прикладних

програм, з якими великі комп'ютери не могли працювати.

Перші персональні комп'ютери продавалися у вигляді комплектів. Кожен комплект містив друкарську плату, набір інтегральних схем, зазвичай включав схему Intel 8080, декілька кабелів, джерело живлення і іноді 8-дюймовий дисковод. Скласти з цих частин комп'ютер покупець винен був сам. Програмне забезпечення до комп'ютера не додавалося. Покупцеві доводилося самому писати програмне забезпечення. Пізніше з'явилася операційна система СР/М, написана Гарі Кілдаллом для Intel 8080. Ця операційна система поміщалася на дискету, вона включала систему управління файлами і інтерпретатор для виконання призначених для користувача команд, які набирались з клавіатури.

Ще один персональний комп'ютер, Apple (а пізніше і Apple II), був розроблений Стівом Джобсом і Стівом Возняком. Він став надзвичайно популярний серед окремих покупців, а також широко використовувався в школах, і це зробило компанію Apple серйозним конкурентом IBM.

Спостерігаючи за тим, чим займаються інші компанії, компанія IBM, була лідером тоді на комп'ютерному ринку, теж вирішила зайнятися виробництвом персональних комп'ютерів. Але замість того щоб конструювати комп'ютер з нуля що зайняло б дуже багато час, компанія IBM надала одному з своїх працівників, Філіпу Естріджу, велику суму грошей, наказала йому піти абикуди подалі від бюрократів головного, що втручаються у все управління компанії, що знаходиться в Нью-Йорку, і не повертатися, поки не буде сконструйований персональний комп'ютер, що діє. Естрідж відкрив підприємство достатнє далеко від головного управління компанії (у Флоріді) узяв Intel 8088 як центральний процесор і створив персональний комп'ютер з серійних компонентів. Цей комп'ютер (IBM РС) з'явився в 1981 році і став комп'ютером, що самим купувався, в історії.

Але компанія IBM зробила одну річ, про яку вона пізніше пошкодувала. Замість того щоб тримати проект машини в секреті (або принаймні захистити себе патентами), як вона зазвичай робила, компанія опублікувала повні проекти, сподіваючись всіх електронних схем, в книзі вартістю $49. Ця книга була опублікована для того, щоб інші компанії могли проводити змінні плати для IBM РС що підвищило б сумісність і популярність цього комп'ютера. До нещастя для IBM, як тільки проект IBM РС став широко відомий, оскільки все складало частині комп'ютера можна було легко придбати, багато компаній почали робити клони РС і часто продавали їх набагато дешевше, ніж IBM. Так почалося бурхливе виробництво персональних комп'ютерів. Хоча деякі компанії (такі як Commodore, Apple, Amiga, Atari) виготовляли персональні комп'ютери з використанням своїх процесорів, а не Intel потенціал виробництва IBM РС був настільки великий, що іншим компаніям доводилося пробиватися насилу. Вижити вдалося тільки деяким з них і те тому, що вони спеціалізувалися а вузьких областях.

Перша версія IBM РС була оснащена операційною системою MS-DOS, котру випускала тоді ще крихітна корпорація Microsoft. IBM і Microsoft разом розробили ту, що послідувала за MS-DOS операційну систему OS/2 характерною межею якої був графічний інтерфейс, схожий з інтерфейсом Apple Macintosh. Тим часом компанія Microsoft також розробила власну операційну систему Windows, яка працювала на основі М S-DOS, на випадок якщо OS/2 не матиме попиту. OS/2 дійсно не мала попиту а Microsoft успішно продовжувала випускати операційну систему Windows, що послужило причиною грандіозного розбрату між IBM і Microsoft. Легенда про те як крихітна компанія Intel і компанія Microsoft, яка була ще менша чим Intel, вмудрилися повалити IBM, одну з найбільших, найбагатших і самих впливових корпорацій в світовій історії, детально висловлюється в бізнес-школах по всьому світу.

В середині 80-х років на зміну CISC' прийшов RISC2. Команди RISC були простіші і працювали набагато швидше. У 90-х роках з'явилися суперскалярні процесори, які могли виконувати багато команд одночасно, часто не в тому порядку у якому вони з'являються в програмі. Ми введемпонятия RISC, CISC і суперскалярного процесора в розділі 2 і обговоримо їх детально.

 

 

Типи комп'ютерів

Хоча найбільш відомі персональні комп'ютери в наші дні існують і інші типи машин, тому варто стисло розповісти про них.

1 Complex instruction set computer — комп'ютер па мікропроцесорі з повним набором команд.

2 Reduced instruction set computer — комп'ютер з скороченим набором команд.

 

Технологічні і економічні аспекти

Комп'ютерна промисловість рухається вперед як ніяка інша. Головна рушійна сила — здатність виробників поміщати з кожним роком все більше і більше транзисторів на мікросхему. Чим більше транзисторів (крихітних електронних перемикачів), тим більше об'єм пам'яті і могутніше процесори.

Ступінь технологічного прогресу можна спостерігати, використовуючи закон Мура названий на честь одного із засновників і глави компанії Intel Гордона Мура який відкрив його в 1965 році. Коли Мур готував доповідь для промислової групи, то відмітив, що кожне нове покоління мікросхем з'являється через три роки після попереднього. Оскільки у кожного нового покоління комп'ютерів була в 4 рази більше пам'яті, чим у попереднього, він зрозумів, що число транзисторів на мікросхемі зростає на постійну величину, і, таким чином, це зростання можна передбачати на роки вперед. Закон Мура свідчить, що число транзисторів на одній мікросхемі подвоюється кожні 18 місяців, тобто збільшується на 60% щороку. Розміри мікросхем і дат їх виробництва, показані на мал. 5, підтверджують, що закон Мура до цих пір діє.

Мал. 5. Закон Мура передбачає, що кількість транзисторів на одній мікросхемі

Звичайно, закон Мура — це взагалі не закон, а просто емпіричне спостереження про те, з якою швидкістю фізики і інженери-технологи розвивають комп'ютерні технології, і прогноз, що з такою швидкістю вони працюватимуть і в майбутньому.

Багато фахівців вважають, що закон Мура діє і в XXI столітті, можливо до 2020 року. Ймовірно, транзистори скоро складатимуться всього лише з декількох атомів, хоча досягнення квантової комп'ютерної техніки, можливо, дозволять використовувати для розміщення 1 біта спин одного електрона. Закон Мура пов'язаний з тим, що деякі економісти називають ефективним циклом. Досягнення в комп'ютерних технологіях (збільшення кількості транзисторів на одній мікросхемі) приводять до продукції кращої якості і більш низьким цінам. Низькі ціни ведуть до появи нових прикладних програм (нікому не приходило в голову розробляти комп'ютерні ігри, коли кожен комп'ютер коштував $10 млн). Нові прикладні програми приводять до появи нових комп'ютерних ринків і нових компаній. Існування всіх цих компаній веде до конкуренції між ними, яка, у свою чергу, створює економічний попит на кращі технології. Круг замикається.

Ще один чинник розвитку комп'ютерних технологій — перший натановский закон програмного забезпечення, названий на честь Натана Мірвольда, головного адміністратора компанії Microsoft. Цей закон свідчить: «Програмне забезпечення — це газ. Воно розповсюджується і повністю заповнює резервуар, в якому знаходиться». У 80-і роки електронна обробка текстів здійснювалася програмою troff (програма troff використовувалася при створенні цієї книги). Troff займає декілька десятків кілобайт пам'яті. Сучасні електронні редактори займають десятки мегабайтів. В майбутньому, поза сумнівом, вони займатимуть десятки гігабайтів. Програмне забезпечення продовжує розвиватися і створює постійний попит на процесори, що працюють з вищою швидкістю, на більший об'єм пам'яті, на велику продуктивність пристроїв введення-виводу.

З кожним роком відбувається стрімке збільшення кількості транзисторів на одній мікросхемі. Відзначимо, що досягнення в розвитку інших частин компютера такі ж великі. Наприклад, у IBM PC/XT, що з'явився в 1982 році, об'єм жорсткого диска складав всього 10 Мбайт, значно менше, чим у більшості

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

Крупні досягнення спостерігаються також і у сфері телекомунікацій і будівлі мереж. Менше ніж за два десятиліття ми прийшли від модемів, передающих інформацію із швидкістю 300 бит/с, до аналогових модемів, що працюють із швидкістю 56 Кбит/с, телефонним лініям ISDN, де швидкість передачі інформації 2x64 Кбит/с, оптико-волоконним мережам, де швидкість вже більш ніж 1 Гбнт/с. Оптико-волоконні трансатлантичні телефонні кабелі (наприклад ТАТ-12/13) коштують близько $700 млн, діють протягом 10 років і можуть передавати 300 000 дзвінків одночасно. Лабораторні дослідження підтвердили, що можливі системи зв'язки, що працюють із швидкістю 1 терабит/с (10" бит/с) на відстані більше 100 км. без підсилювачів. Навряд чи потрібно згадувати тут про розвиток мережі Інтернет.

 

Широкий спектр комп'ютерів

Річард Хаммінг, колишній дослідник з Bell Laboratories, відмітив, що кількісна зміна величини на порядок веде до якісної зміни. Наприклад, гоночна машина, яка може їздити із швидкістю 1000 км/ч по пустелі Невада, корінним чином відрізняється від звичайної машини, яка їздить із швидкістю 100 км/ч по шосе. Так само хмарочос в 100 поверхів неспівставимо з десятиповерховим багатоквартирним будинком. А якщо мова йде про компютери, то тут за три десятиліття кількісні показники збільшилися не в 10 а в 1 000 000 разів.

Розвивати комп'ютерні технології можна двома шляхами: або створювати комп'ютери все більшої і більшої потужності при постійній ціні, або випускати

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

Таблиця 3. Типи сучасних комп'ютерів. Вказані ціни приблизні

У самій верхній строчці знаходяться мікросхеми, які приклеюються на внутрішню сторону вітальних листівок для програвання мелодій «Happy Birthday», весільного маршу або чого-небудь подібного. Автор ідеї ще не придумав листівки із співчуттями, які грають похоронний марш, але оскільки він випустив цю ідею в споживчу сферу, незабаром можна буде чекати появи і таких листівок. Той, хто виховувався на комп'ютерах вартістю в мільйони доларів, сприймає такі доступні всім комп'ютери приблизно так само, як доступний всім літак. Проте такі комп'ютери, поза всяких сумнівів, повинні існувати (а як щодо мішків для сміття, що говорять, які просять вас не викидати алюмінієві банки?).

Друга строчка — комп'ютери, які збожеволіють всередину телефонів, телевізорів, мікрохвильових печей, CD-плейєрів, іграшок, ляльок і т.п. Через декілька років у всіх електричних приладах знаходитимуться вбудовані комп'ютери, кількість яких вимірюватиметься в мільярдах. Такі комп'ютери складаються з процесора, пам'яті менше 1 Мбайт і пристроїв введення-виводу, і все це на одній маленькій мікросхемі, яка коштує всього декілька доларів. Наступний рядок — ігрові комп'ютери. Це звичайні комп'ютери з особливою графікою, але з обмеженим програмним забезпеченням і майже повною відсутністю відвертості, тобто можливості перепрограмування. Приблизно рівні їм але вартості електронні записники і інші кишенькові комп'ютери, а також мережеві комп'ютери і web-термінали. Всі вони містять процесор, декілька мегабайтів пам'яті, який-небудь дисплей (можливо, навіть телевізійний) і більше нічого. Тому вони такі дешеві. Далі йдуть персональні комп'ютери. Саме вони асоціюються у більшості людей із словом «комп'ютер». Персональні комп'ютери бувають двох видів: настільні і ноутбуки. Вони зазвичай містять декілька мегабайтів пам'яті, жорсткий диск з даними на декілька гігабайтів, CD-ROM, модем, звукову карту і інші периферійні пристрої. Вони забезпечені складними операційними системами, мають можливість нарощування, при роботі з ними використовується широкий спектр програмного забезпечення. Комп'ютери з процесором Intel зазвичай називаються «Персональними комп'ютерами», а комп'ютери з іншими процесорами — «робочими станціями», хоча особливої різниці між ними немає.

Персональні комп'ютери і робочі станції часто використовуються в якості мережевих серверів як для локальних мереж (зазвичай в межах однієї організації), так і для Інтернету. У цих комп'ютерів звичайні один або декілька процесорів, декілька гігабайтів пам'яті і багато Гбайт на диску. Такі комп'ютери здатні працювати в мережі з дуже високою швидкістю. Деякі з них можуть обробляти тисячі повідомлень, що поступають, одночасно.

Крім невеликих серверів з декількома процесорами існують системи, які називаються мережами робочих станцій (NOW Networks of Workstations) або кластерами робочих станцій (COW — Clusters of Workstations). Вони складаються із звичайних персональних комп'ютерів або робочих станцій, зв'язаних в мережу, по якій інформація передається із швидкістю 1 Гбіт/с, і спеціального програмного забезпечення, що дозволяє всім машинам одночасно працювати над одним завданням. Такі системи широко застосовуються в науці і техніці. Кластери робочих станцій можуть включати від декількох комп'ютерів до декількох тисяч. Завдяки низькій ціні компонентів окремі організації можуть набувати таких машин, які по ефективності є міні-суперкомп'ютерами.

А зараз ми дійшли до великих комп'ютерів розміром з кімнату, що нагадують комп'ютери 60-х років. В більшості випадків ці системи — прямі нащадки великих комп'ютерів серію IBM-360. Зазвичай вони працюють не набагато швидше, ніж могутні сервери, але у них вище швидкість процесів введення-виводу і володіють вони досить великим простором на диску — 1 терабайт і більш (1 терабайт = 1012 байт). Такі системи коштують дуже дорого і вимагають крупних вкладень в програмне забезпечення, дані і персонал, обслуговуючий ці комп'ютери. Багато компаній вважають, що дешевше заплатити декілька мільйонів доларів один раз за таку систему, ніж навіть думати про те, що потрібно буде наново програмувати всі прикладні програми для маленьких комп'ютерів.

Саме цей клас комп'ютерів привів до проблеми 2000 року. Проблема виникла через те, що в 60-і і 70-і роки програмісти, програми, що пишуть, на мові COBOL представляли рік двозначним десятковим числом з метою економії пам'яті. Вони не змогли передбачати, що їх програмне забезпечення використовуватиметься через три або чотири десятиліття. Багато компаній повторили ту ж помилку, додавши до року тільки два десяткові розряди. Автор цієї книги передбачає, що кінець цивілізації відбудеться опівночі 31 грудня 9999 року, коли відразу знищаться всі COBOL-програми, написані за 8000 років'.

Услід за великими комп'ютерами йдуть справжні суперкомп'ютери. Їх процесори працюють з дуже високою швидкістю, об'єм пам'яті у них складає безліч гігабайтів, диски і мережі також працюють дуже швидко. Останніми роками багато суперкомп'ютерів сталі дуже схожі, вони майже не відрізняються від кластерів робочих станцій, але у них більше за складові і вони працюють швидше.

Суперкомп'ютери використовуються для вирішення різних наукових і технічних завдань, які вимагають складних обчислень, наприклад таких, як моделювання галактик, що стикаються, розробка нових ліків, моделювання потоку повітря навколо крила аероплана.

 

 

 

 

Сімейства комп'ютерів

P e n t i u m I I

У 1968 році Роберт Нойс, винахідник кремнієвої інтегральної схеми, Гордон Мур, автор відомого закону Мура, і Артур Рок, капіталіст, з Сан-Франциско заснували корпорацію Intel для виробництва комп'ютерних мікросхем. За перший рік свого існування корпорація продала мікросхем всього на $3000, але потім об'єм продажів компанії помітно збільшився. В кінці 60-х років калькулятори були великі електромеханічні машини розміром з сучасний лазерний принтер і важили близько 20 кг У вересні 1969 року японська компанія Busicom звернулася до корпорації Intel з проханням випустити 12 несерійних мікросхем для електронної обчислювальної машини. Інженер компанії Intel Тед Хофф, призначений на виконання цього проекту, вирішив, що можна помістити 4-бітовий універсальний процесор на одну мікросхему, яка виконуватиме ті ж функції і при цьому опиниться простіше і дешевше. Так в 1970 році з'явився перший процесор на одній мікросхемі, процесор 4004 на 2300 транзисторах.

Відмітимо, що ні Intel, ні Busicom не мали анінайменшого поняття, яке грандіозне відкриття вони зробили. Коли компанія Intel вирішила, що варто спробувати використовувати процесор 4004 в інших розробках, вона запропонувала купити всі права на нову мікросхему у компанії Busicom за $60000, тобто за суму, яку Busicom заплатила Intel за розробку цієї мікросхеми. Busicom відразу прийняла пропозицію Intel, і Intel почала роботу над 8-бітовою версією мікросхеми 8008, випущеною в 1972 році. Компанія Intel не чекала великого попиту на мікросхему 8008, тому вона випустила невелику кількість цієї продукції. До загального здивування, нова мікросхема викликала великий інтерес, тому Intel почала розробку ще одного процесора, в якому межа в 16 Кбайт пам'яті (як у процесора 8008), нав'язуваний кількістю зовнішніх виводів мікросхеми, був подоланий. Так з'явився невеликий універсальний процесор 8080, випущений в 1974 році. Як і PDP-8, він провів революцію на комп'ютерному ринку і відразу став масовим продуктом: тільки компанія DEC продала тисячі PDP-8, а Intel — мільйони процесорів 8080.

У 1978 році з'явився процесор 8086 — 16-бітовий процесор на одній мікросхемі. Процесор 8086 був багато в чому схожий на 8080, але не був повністю сумісний з ним. Потім з'явився процесор 8088 з такою ж архітектурою, як і у 8086. Він виконував ті ж програми, що і 8086, але замість 16-бітової шини у нього була 8-бітова, із-за чого процесор працював повільніше, але коштував дешевше, ніж 80861. Коли IBM вибрала процесор 8088 для IBM РС, ця мікросхема стала еталоном у виробництві персональних комп'ютерів. Ні 8088, ні 8086 не могли звертатися до більше 1 Мбайт пам'яті. На початок 80-х років це стало серйозною проблемою, тому компанія Intel розробила модель 80286, сумісну з 8086. Основний набір команд залишився по суті таким же, як у процесорів 8086 і 8088, по пам'ять була влаштована трохи по-іншому, хоч і могла працювати як і раніше із-за вимоги сумісності з попередніми мікросхемами. Процесор 80286 використовувався в IBM PC/AT і в моделях PS/2. Він, як і 8088, мав великий попит (головним чином тому, що покупці розглядали його як швидший процесор 8088).

Наступним кроком був 32-бітовий процесор 80386, випущений в 1985 році.

Як і 80286, він був більш менш сумісний зі всіма старими версіями. Сумісність такого роду виявлялася благом для тих, хто користувався старим програмним забезпеченням, і деякою незручністю для тих, хто віддавав перевагу сучасній архітектурі, необтяженій помилками і технологіями минулого.

Через чотири роки з'явився процесор 80486. Він працював швидше, ніж 80386 міг виконувати операції з плаваючою крапкою і мав 8 Кбайт кеш-пам'яті. Кеш-пам'ять використовується для того, щоб тримати найбільш часто використовувані слова усередині центрального процесора і уникати тривалого доступу до основної (оперативною) пам'яті. Іноді кеш-пам'ять знаходиться не усередині центрального процесора, а поряд з ним. 80486 містив вбудовані засоби підтримки багатопроцесорного режиму, що давало виробникам можливість конструювати системи з декількома процесорами.

У цей момент Intel, програвши судову тяжбу з приводу порушення правив найменування товарів, з'ясувала, що номери (наприклад, 80486) не можуть бути

торговою маркою, тому наступне покоління комп'ютерів отримала назва Pentium (від грецького слова nevie — п'ять). На відміну від 80486, у якого був один внутрішній конвейєр, Pentium мав два, що дозволяло працювати йому майже в два рази швидше (конвейєри ми розглянемо детально в розділі 2).

Коли з'явилося наступне покоління комп'ютерів, ті, хто розраховував на назва Sexium (sex по-латині — шість), були розчаровані. Назва Pentium стала так добре відомо, що його вирішили залишити, і нову мікросхему назвали Pentium Pro. Не дивлячись на таку незначну зміну назви, цей процесор дуже сильно відрізнявся від попереднього. У нього була абсолютно інша внутрішня організація, і він міг виконувати до п'яти команд одночасно.

Ще одне нововведення у Pentium Pro — дворівнева кеш-пам'ять. Процесор містив 8 Кбайт пам'яті для часто використовуваних команд і ще 8 Кбайт для

часто використовуваних даних. У корпусі Pentium Pro поряд з процесором (але не на самій мікросхемі) знаходилася інша кеш-пам'ять в 256 Кбайт.

Услід за Pentium Pro з'явився процесор Pentium II, по суті такої ж як і його попередник, але з особливою системою команд для мультимедіа-завдання (ММХ — multimedia extensions). Ця система команд призначалася для прискорення обчислень, необхідних при відтворенні зображення і звуку. За наявності ММХ спеціальні співпроцесори були не потрібні. Дані команди були в наявності і в пізніших версіях Pentium, але їх не було в Pentium Pro. Таким чином, комп'ютер Pentium II поєднував в собі функції Pentium Pro з мультимедіа-команди.

На початку 1998 року Intel запустив нову лінію продукції під назвою Celeron. Celeron мав меншу продуктивність, чим Pentium II, та зате коштував дешевше. Оскільки у комп'ютера Celeron така ж архітектура, як у Pentium II, ми не обговорюватимемо його в цій книзі. У червні 1998 року компанія Intel випустила спеціальну версію Pentium II — Хеоп. Він мав кеш-пам'ять більшого об'єму, його внутрішня шина працювала швидше, були вдосконалені засоби підтримки багатопроцесорного режиму, але у всьому остальном він залишився звичайним Pentium II, тому ми його теж не обговорюватимемо. Комп'ютери сімейства Intel показані в табл. 4.

Таблиця 4. Сімейство процесорів Intel. Тактова частота вимірюється в Мгц (1 МГц= 1 млн циклів/с)

Всі мікросхеми Intel сумісні з своїми попередниками аж до процесора 8086. Іншими словами, Pentium II може виконувати програми, написані для процесора 8086'. Сумісність завжди була однією з головних вимог при розробці нових комп'ютерів, щоб покупці могли продовжувати працювати із старим програмним забезпеченням і не витрачати гроша на нове. Звичайно, Pentium II у багато разів складніше, ніж 8086, тому він може виконувати багато функцій, які не здатний виконувати процесор 8086. Всі ці поступові доопрацювання в кожній новій версії привели до того, що архітектура Pentium II не так проста, як могла б бути, якби розробникам процесора Pentium II надали 7,5 млн транзисторів і команд, щоб почати все наново.

Цікаво, що хоча закон Мура раніше асоціювався з числом бітів в пам'яті комп'ютера, він в рівній мірі застосовний і по відношенню до процесорів. Якщо напроти дат випуску кожної мікросхеми поставити число транзисторів на цій мікросхемі (кількість транзисторів показана в табл. 4), ми побачимо, що закон Мура діє і тут. Графік показаний на мал. 6.

Мал. 6. Закон Мура діє і для процесорів U l t r а S P A R C I I

У 70-х роках в багатьох університетах була дуже популярна операційна система UNIX, але персональні комп'ютери не підходили для цієї операційної системи, тому любителям UNIX доводилося працювати на міні-комп'ютерах з розділенням часу, таких як PDP-11 і VAX. Енді Бехтольсхайм, аспірант університету Стэнфордского, був дуже засмучений тим, що йому потрібно відвідувати комп'ютерний центр, щоб працювати з UNIX. У 1981 році він вирішив цю проблему, самостійно побудувавши персональну робочу станцію UNIX із стандартних частин, наявних в продажі, і назвав її SUN-1 (Stanford University Network — мережа університету Стэнфордского).

На Бехтольсхайма скоро звернув увагу Вінод Косла, 27-річний індієць який горів бажанням рокам до тридцяти стати мільйонером і піти від справ. Косла запропонував Бехтольсхайму організувати компанію по виробництву робочих станцій Sun. Він найняв Худоби Мак-нілі, іншого аспіранта університету Стэнфордского, щоб той очолив виробництво. Для написання програмного забезпечення вони найняли Біла Джоя, головного творця системи UNIX. У 1982 році вони учотирьох заснували компанію Sun Microsystems. Перший комп'ютер компанії Sun-1, був оснащений процесором Motorola 68020 і мав великий успіх, як і подальші моделі Sun-2 і Sun-З, які також були сконструйовані з використанням мікропроцесорів Motorola. Ці машини були набагато могутніші, ніж інші персональні комп'ютери того часу (звідси і назва «Робоча станція»), і спочатку були призначені для роботи в мережі. Кожна робоча станція Sun була оснащена мережевим адаптером Ethernet і програмним забезпеченням TCP/IP для зв'язку з мережею ARPANET, попередницею Інтернету.

У 1987 році компанія Sun, яка на той час продавала робочих станцій на півмільярда доларів в рік, вирішила розробити свій власний процесор, заснований на новому революційному проекті каліфорнійського університету в Берклі (RISC II). Цей процесор називався SPARC (Scalable Processor ARCitecture — нарощувана архітектура процесора). Він був використаний при виробництві робочої станції Sun-4. Через деякий час всі робочі станції компанії Sun стали проводитися на основі цього процесора. На відміну від багатьох інших комп'ютерних компаній, Sun вирішила не займатися виробництвом процесорів SPARC. Натомість вона надала патент на їх виготовлення декільком підприємствам, сподіваючись, що конкуренція між ними спричинить за собою підвищення якості продукції і зниження цін. Ці підприємства випустили декілька різних мікросхем, заснованих на різних технологіях, що працюють з різною швидкістю і відрізняються один від одного за вартістю.

Мікросхеми називалися MICROSPARC, HYPERSPARK, SUPERSPARK і TURBOSPARK. Мало чим відрізняючись один від одного, всі вони були сумісні і могли виконувати одні і ті ж програми, які не доводилося змінювати. Компанія Sun завжди хотіла, щоб різні підприємства поставляли для SPARK складові частини і системи. Потрібно було побудувати цілу індустрію, тільки в цьому випадку можна було конкурувати з компанією Intel, що лідирує на ринку персональних комп'ютерів. Щоб завоювати довіру компаній, які були зацікавлені у виробництві процесорів SPARC, але не хотіли вкладати засобу в продукцію, яку пригнічуватиме Intel, компанія Sun створила промисловий консорціум SPARC International для керівництва розвитком майбутніх версій архітектури SPARC. Важливо розрізняти архітектуру SPARC, яка є набором команд, і власне виконання цих команд. У цій книзі ми говоритимемо і про загальну архітектуру SPARC, і про процесор, використовуваний в робочій станції SPARC (заздалегідь обговоривши процесори в третьому і четвертому розділах).

Перший SPARC був 32-бітовим і працював з частотою 36 Мгц. Центральний процесор називався Ш (Integer Unit процесор цілочисельної арифметики) і був вельми посереднім. У нього були тільки три основні формати команд і в цілому всього 55 команд. З появою процесора з плаваючою крапкою додалося ще 14 команд. Відзначимо, що компанія Intel почала з 8- і 16-бітових мікросхем (моделі 8088, 8086, 80286), а вже потім перейшла на 32-бітові (модель 80386), а Sun, на відміну від Intel, відразу почала з 32-бітових.

Грандіозний перелом в розвитку SPARC відбувся в 1995 році, коли була розроблена 64-бітова версія (версія 9) з адресами і регістрами по 64 битий. Першою робочою станцією з такою архітектурою став ULTRASPARC I, що вийшов в світ в 1995 році. Він був повністю сумісний з 32-бітовими версіями SPARC, хоча сам був 64-бітовим.

Тоді як попередні машини працювали з символьними і числовими даними, ULTRASPARC із самого початку був призначений для роботи із зображеннями, аудіо, відео і мультимедіа взагалі. Серед нововведень, крім 64-бітової архітектури, з'явилися 23 нових команди, зокрема команди для упаковки і розпаковування пікселів з 64-бітових слів, масштабування і обертання зображень, переміщення блоків, а також для компресії і декомпресії відео в реальному часі. Ці команди називалися VIS (Visual Instruction Set) і призначалися для підтримки мультимедіа. Вони були аналогічні командам ММХ.

ULTRASPARC призначався для web-серверів з десятками процесорів і фізичною пам'яттю до 2 Тбайт (терабайт, 1Тбайт - 101гбайтів). Проте деякі версії ULTRASPARC можуть використовуватися і в ноутбуках.

За ULTRASPARC I послідували ULTRASPARC II і ULTRASPARC III. Ці моделі відрізнялися один від одного за швидкістю, і у кожної з них з'являлися якісь нові особливості. Коли ми говоритимемо про архітектуру SPARC, ми матимемо на увазі 64-бітову версію комп'ютера ULTRASPARC II (версії 9).

 

 

 

 

 

J а v а II

Мова програмування C придумав один з працівників компанії Bell Laboratories Денніс Рітчи. Ця мова призначалася для роботи в операційній системі UNIX. Із-за великої популярності UNIX З скоро став домінуючою мовою в системному програмуванні. Через декілька років Бьярн Строуструп, теж з компанії Bell Laboratories, додав до З деякі особливості з об'єктно-орієнтованого програмування, і з'явилася мова C++, яка також стала дуже популярною.

В середині 90-х років розробники Sun Microsystems думали, як зробити так, щоб користувачі могли викликати двійкові програми через інтернет і завантажувати їх як частина web-сторінок. Їм подобався C++, але він не був надійним в тому сенсі, що програма, послана на деякий комп'ютер, могла заподіяти збиток цьому комп'ютеру. Тоді вони вирішили на основі C++ створити нову мову програмування Java, з яким не було б подібних проблем. Java — об'єктно-орієнтована мова, яка застосовується при рішенні різних прикладних задач. Оскільки ця мова проста і популярна, ми використовуватимемо його для прикладів. Оскільки Java — всього лише мова програмування, можна написати компілятор, який перетворюватиме його для Pentium, SPARC або будь-якого іншого комп'ютера. Такі компілятори існують. Проте ця мова була створена в першу чергу для того, щоб пересилати програми між комп'ютерами по Інтернету і щоб користувачам не доводилося змінювати їх. Але якщо програма на мові Java компілювалася для SPARC, то коли вона пересилалася по Інтернету на Pentium, запустити там цю програму було вже не можна.

Щоб вирішити цю проблему, компанія Sun придумала нову віртуальну машину JVM (Java Virtual Machine — віртуальна машина Java). Пам'ять у цієї машини складалася з 32-бітових слів, машина підтримувала 226 команд. Більшість команд були простими, але виконання деяких досить складних команд вимагало великої кількості циклів звернення до пам'яті.

У компанії Sun розробили компілятор, що перетворює програми на мові Java на рівень JVM, і інтерпретатор JVM для виконання цих програм.

Цей інтерпретатор був написаний на мові З і, значить, міг використовуватися практично на будь-якому комп'ютері. Отже, щоб комп'ютер міг виконувати двійкові програми на мові Java, потрібно було всього лише дістати інтерпретатор JVM для відповідного комп'ютера (наприклад, для Pentium II з системою Windows 98 або для SPARC з системою UNIX) разом з певними програмами підтримки і бібліотеками. Крім того, більшість браузеров в Інтернеті містять інтерпретатор JVM, що дозволяє легко запускати апплсты (невеликі двійкові програми на Java, пов'язані із сторінками World Wide Web). Більшість цих аплетів підтримують анімацію і звук.

Інтерпретація програм JVM (і будь-яких інших програм) відбувається поволі. Альтернативний підхід — спочатку скомпілювати аплет або іншу програму JVM для вашої власної машини, а потім запустити скомпільовану програму. Така стратегія вимагає наявність компілятора з JVM на машинну мову усередині браузера і можливості активізувати його, коли необхідно.

Ці компілятори називаються JIT-компіляторами (Just In Time — «саме вчасно»), і вони широко поширені. Проте ця система створює деяку затримку між отриманням JVM-програми і її виконанням, оскільки JVM-програма компілюється намашинный мова.

Окрім програмного забезпечення JVM (JVM-інтерпретаторів і JIT-компіляторів) Sun і інші компанії розробили мікросхеми JVM — процесори, які відразу виконують двійкові програми JVM без якої-небудь інтерпретації і компіляції. Picojava I і picojava II були розроблені для ринку вбудованих систем. На цьому ринку потрібні могутні і дуже дешеві процесори (ціна нижче $50), що вбудовуються всередину пластикових карток, телевізорів, телефонів і інших пристроїв, особливо таких, які забезпечують зв'язок із зовнішнім світом. Підприємства, що мають патент на виробництво мікросхем компанії Sun, могли проводити власні мікросхеми на основі проекту picojava, в тому або іншому ступені змінюючи їх, включаючи і прибираючи процесор з плаваючою крапкою, перетворюючи розмір кеш-пам'яті і т.п.

Цінність мікросхеми Java полягає в тому, що вона здатна міняти функції

в процесі роботи. Наприклад, уявимо собі адміністратора, у якого є телефон з процесором Java. Адміністраторові ніколи не доводилося читати факси на крихітному екрані телефону, але одного прекрасного дня йому це знадобилося. Тоді він дзвонить провайдерові і просить надати йому аплет для проглядання факсів, і таким чином додає нову функцію до свого телефону. Але із-за деяких особливостей приладу і недоліку пам'яті неможливо використовувати інтерпретатори і JIT-компілятори, тому саме в таких випадках необхідні мікросхеми JVM.

Picojava II — не фізична мікросхема (ви не можете піти в магазин і купити її), а проект, який є основою для ряду мікросхем, наприклад Sun Microjava 701 і інших. Ці мікросхеми проводяться підприємствами, що отримали патент Sun. Ми використовуватимемо процесор picojava II як ілюстративний приклад, оскільки він дуже сильно відрізняється від Pentium II і ULTRASPARC II і має абсолютно іншу сферу застосування. Picojava II представляє особливий інтерес для нас, оскільки в розділі 4 ми розповімо, як можна створити JVM за допомогою мікропрограмування. Тоді ми зможемо порівняти запрограмований JVM з апаратним забезпеченням JVM. Picojava II містить два факультативні процесори: кеш-пам'ять і процесор з плаваючою крапкою, які кожен виробник може включати або не включати в розробку. В цілях простоти ми розглядатимемо picojava II як мікросхему, хоча насправді це не мікросхема, а проект мікросхеми. Іноді ми говоритимемо про мікросхему Sun Microjava 701, яка є втіленням проекту picojava II. Але навіть якщо ми не згадуватимемо конкретні мікросхеми, читачі повинні пам'ятати, що picojava II — це не фізична мікросхема, а проект, на основі якого виробники розробляють різні мікросхеми.

Використовуючи Pentium II, ULTRASPARC II і picojava II як приклади, ми можемо вивчити три разных типу процесорів. Перший з них є CISC з суперскалярним процесором, другий — RISC з суперскалярним процесором. Третій використовується у вбудованих системах. Ці три процесори сильно відрізняються один від одного, що дає нам можливість краще побачити діапазон комп'ютерних розробок.

 

Література

 

1. Архитектура комп’ютера. 4-е изд. Питер, 2005. - 699 с.: ил.- (Серия „Класика

    computer sience”).

 
  Сегодня были уже 1 посетителей  
 
Лаптєв Олег Володимирович © 2010 pc201010.ru.gg Этот сайт был создан бесплатно с помощью homepage-konstruktor.ru. Хотите тоже свой сайт?
Зарегистрироваться бесплатно