ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 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], проведено детальний огляд історії створення та