logo
AOM / Мельник А

1.3.1. Поняття архітектури комп'ютера

Вперше означення терміну "архітектура комп'ютера" було зроблене в 1964 році роз­робниками комп'ютера IBM360 Г. Амдалем та його колегами. Архітектура комп'ютера з їх точки зору - це його структура і поведінка як їх бачить програміст на асемблерній мові. Вона включає наступне: формати даних і команд, методи адресації, систему ко­манд, а також загальну організацію процесора, основної пам'яті і пристроїв введення-виведення. Пізніше А. Пейджез з тієї ж фірми запропонував розуміти під архітектурою комп'ютера інтерфейс між його апаратним та програмним забезпеченням.

Як відомо, в комп'ютері використовується двійкове представлення команд. При на­писати програми крім двійкової можуть використовуватись і інші форми представлення команд: вісімкова, шістнадцяткова, символьна (мнемонічна). Використання вісімково-го і шістнадцяткового кодування дозволяє скоротити записи і спростити роботу про­граміста. Мнемонічне кодування спрощує процес написання, читання і відлагодження програми. Основний принцип такого кодування - кожна команда представляється 3-х або 4-х буквеним символом, який показує назву команди. Деякі приклади мнемонічно­го кодування: add - додати, sub - відняти, load - зчитати дані з пам'яті, store - записа­ти дані в пам'ять. Операнди також представляються символічно. Наприклад, команда addR,Y означає додавання значення вмісту комірки пам'яті Y до вмісту регістра R.За­уважимо, що операція виконується над вмістом, а не над адресою комірки пам'яті та регістра. Таким чином, з'являється можливість написання машинних програм в сим­волічній формі. Повний набір символічних назв і правила їх використання утворюють мову програмування, відому як асемблерна мова. Запис деякої програми на асемблерній мові представляє собою символічний запис цієї ж програми, написаної на внутрішній мові комп'ютера, тобто в формі послідовності команд, представлених в двійкових кодах. Тому і з'явилось визначення архітектури комп'ютера як інтерфейсу між його апаратним та програмним забезпеченням.

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

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

29

kення, яка практично витіснила інші способи представлення чисел, наприклад, пред­ставлення в позиційній десятковій системі числення, в системі залишкових класів тощо. В комп'ютерах є три класи даних: вхідні, проміжні та вихідні, які можна охарактеризу­вати наступною множиною параметрів: кількістю N даних, їх розрядністю n (n=1,2,3,...), способом кодування М (прямий, обернений чи доповняльний код), формою представ­лення S (фіксована чи рухома кома), форматом Т (місце розміщення знаку, ціле чи дро­бове число, місце розміщення коми, розрядність порядку, основа порядку, використан­ня знаку порядку чи зміщення, розрядність мантиси, чи використовується нормалізація мантиси). Таким чином, залежно від значення параметрів n,M,S,Т можна виділити від­повідну архітектуру комп'ютера. Наприклад, це може бути комп'ютер для виконання операцій над 16-розрядними дробовими двійковими даними в форматі з фіксованою комою в доповняльному коді, або це може бути комп'ютер для виконання операцій над 32-розрядними двійковими даними в форматі з рухомою комою.

Команда в комп'ютері зберігається в двійковій формі. Вона вказує тип операції, яка має бути виконаною, адреси операндів, над якими виконується операція, та адреси роз­міщення результатів виконання операції. Відповідно до цього команда складається з двох частин: коду операції та адресної частини. Поле коду операції займає kрозрядів. Ним може бути закодовано до N = 2k різних операцій. Поле адреси (адресна частина) займає mрозрядів. В ньому знаходяться адреси операндів. Кожна адреса займає mрозрядів, де і - номер адреси (і = 1, 2....l), l - кількість адресних полів. Кожною адресою можна адресувати пам'ять ємністю 2mi слів. Таким чином, залежно від форматy команди комп'ютери можна поділити на: комп'ютери з постійним та змінним форматом команди, комп'ютери з одноадресними, двоадресними та триадресними командами, комп'ютери з вузьким та широким форматом команди (залежно від кількості полів коду операції та адресних полів) і т. д.

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

При розробці комп'ютера необхідно враховувати багато особливостей вибору систе­ми команд. З одного боку, система команд повинна бути функціонально повною, тобто комп'ютер повинен забезпечувати виконання всіх заданих функцій. З іншого боку, сис­тема команд має бути ортогональною, тобто не повинна бути надлишковою. Для нового комп'ютера, який є розширенням відповідної серії, першочерговою є сумісність - програми, які виконуються на одному комп'ютері, повинні виконуватись і на іншому комп'ютері. Є багато рівнів повноти системи команд. Теоретично система команд комп'ютера може включати лише одну команду. Однак програми на базі простих операцій є дуже складни­ми. Існує фундаментальний зв'язок між простотою комп'ютера і складністю програми. В геальних комп'ютерах застосовується система команд, до складу якої входить широкий спектр команд обробки даних, переміщення даних, передачі керування та введення-

30

виведення. За складом системи команд комп'ютери можуть бути поділені на наступні типи: комп'ютери з складною (комплексною) системою команд, комп'ютери з простою (спрощеною) системою команд, комп'ютери з доповненою системою команд, комп'юте­ри з орієнтованою (спеціалізованою) системою команд.

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

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

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