Файл: Мельник А. Архітектура комп\'ютера.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.12.2021

Просмотров: 6774

Скачиваний: 22

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

50

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

Таким чином, СКС - це комп'ютерні системи для розв'язку великого числа відносно вузьких класів задач, оптимізовані в певній критеріальній сукупності.

Для СКС характерні наступні риси, які відрізняють їх від універсальних комп'ютер­них систем:

  • орієнтація структури на вирішувані задачі;

  • вузький, в основному постійний клас вирішуваних задач;

  • особливі вимоги до точності, часто нестандартна довжина розрядної сітки;

  • спеціальна система обміну, в тому числі наявність аналого-цифрових та цифро-аналогових каналів зв'язку;

  • використання орієнтованих на область застосування мов програмування та ши­рокі можливості їх апаратної інтерпретації;

  • наявність спеціальних функцій і процедур в наборі операцій та команд;

  • необхідність обробки вхідних даних в темпі їх поступлення та видачі результатів обчислень в темпі поступлення вхідних даних;

  • суміщення в часі приймання, обробки та видачі даних;

  • висока продуктивність;

  • малі габарити;

  • низька споживана потужність;

  • орієнтація конструкції на конкретне застосування.

1.5. Предмет та порядок розгляду матеріалу даної книги

Комп'ютер є складною системою. Сучасні комп'ютери складаються з мільйонів або й мільярдів елементарних електронних компонент. Для зрозумілого опису такої складної системи використовується її ієрархічна природа, тобто комп'ютер розглядається як на­бір взаємозв'язаних підсистем, кожна з яких також є ієрархічною (рис. 1.22). Найниж­чим рівнем є елементарна підсистема. На кожному рівні складна система включає набір відповідним чином з'єднаних компонент, які визначають її поведінку на даному рівні. Кожен рівень може бути описаним структурою та функціями компонент. Структура включає перелік компонент та організацію їх взаємозв'язків. Функції описують операції кожної індивідуальної компоненти.



51


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

Комп'ютер має багаторівневу організацію. Найнижчим є рівень фізичних пристроїв, об'єктами якого є транзистори. Він є основою для цифрового логічного рівня, об'єктами якого є вентилі, побудовані на декількох транзисторах. Вентиль виконує прості логічні функції, такі як: І, АБО. На основі цифрового логічного рівня формується рівень між-регістрових передач або мікроархітектурний рівень, об'єктами якого є регістри, мульти­плексори, лічильники, стеки регістрів, блоки постійної та оперативної пам'яті, суматори, арифметико-логічні пристрої і т. д. Цей рівень можна поділити на підрівні, оскільки ко­жен з перерахованих елементів може бути представленим кількома рівнями простіших елементів. Наступним є архітектурний рівень, або рівень системи команд, який також має підрівні. Далі йде макроархітектурний рівень, або рівень операційної системи. Цей рівень є відповідальним за мультипрограмування, захист пам'яті, синхронізацію проце­сів та багато інших важливих функцій. І, нарешті, асемблерний рівень та рівні мов про­грамування. Кожна команда асемблерного рівня транслюється у відповідну їй команду


52

архітектурного рівня. На рівні мов програмування програміст працює з комп'ютером на таких мовах як: С, C++, FORTRAN, Lisp, Pascal, Prolog. Користувач цього рівня бачить дуже мало з того, що робиться на нижчих рівнях.

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

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

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


53

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

Оскільки кожен з рівнів сприймається по-іншому, користувачі сприймають комп'ю­тери кожного рівня як окремі комп'ютери, які називають віртуальними машинами.

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

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

1.6. Підсумок розділу

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


1.7. Література для подальшого читання

Основні поняття, функції й основні функціональні вузли комп'ютера та їх взаємозв'я­зок, а також загальна організація роботи комп'ютера детально розглянуто в літературі [1-4]. Тут же, а також в роботах [5-11], проведено детальний огляд історії створення та