Архітектура ПК

Матеріал з Iteach WIKI
Версія від 15:49, 17 жовтня 2017, створена Tkachdm12 (обговореннявнесок) (Створена сторінка: У комп'ютерній інженерії і інформатиці,[1] архітектура комп'ютера (англ. Computer architecture ) — ц...)

(різн.) ←Попередня ревізія • Поточна версія (різн.) • Слідуюча ревізія→ (різн.)
Перейти до: Навігація, пошук

У комп'ютерній інженерії і інформатиці,[1] архітектура комп'ютера (англ. Computer architecture ) — це набір дисциплін, які описують функціональність, організацію та реалізацію комп'ютерних систем. Деякі визначення архітектури є описами можливостей та програмної моделі комп'ютера, але не конкретної реалізації.[2] Інші описи комп'ютерної архітектури містять опис архітектури системи команд, логічної побудови та реалізації.[3]

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

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

За перерахованими ознаками та їх поєднаннями серед архітектур виділяють:

За розрядністю інтерфейсів і машинних слів: 8-, 16-, 32-, 64-розрядні (ряд ЕОМ має й інші розрядності); За особливостями набору регістрів, формату команд і даних: CISC, RISC, VLIW; За кількістю центральних процесорів: однопроцесорні, багатопроцесорні, суперскалярні; багатопроцесорні за принципом взаємодії з пам'яттю: симетричні багатопроцесорні (SMP), масивно-паралельні (MPP), розподілені.

Підкатегорії 

Архітектура системи команд (англ. instruction set architecture, ISA). Архітектура системи команд визначає машинний код, який процесор зчитує і виконує, а також розмір слова, способи адресації пам'яті, регістри процесора, і формати даних. Мікроархітектура, або побудова комп'ютера (англ. computer organization) описує, як процесор реалізує систему команд.[5] Наприклад, розмір кеша процесора це виключно питання побудови комп'ютера і немає нічого спільного з архітектурою системи команд. Системне проектування (англ. System Design) містить усі інші апаратні елементи обчислювальної системи. Це включає: Обробка даних поза процесором, така як прямий доступ до пам'яті (DMA) Інші властивості, такі, як віртуалізація, багатопроцесорність та програмне забезпечення. Деякі архітектури від таких компаній, як Intel і AMD використовують більш тонкі відмінності. Наприклад, вони послуговуються макроархітектурою, це шар більш абстрактний ніж мікроархітектура.

Виникнення терміну

Поняття архітектури ЕОМ вперше було успішно застосовано при проектуванні серії обчислювальних машин IBM System/360, серії універсальних ЕОМ загального призначення, кожна з яких мала різну швидкодію та конструктивні особливості, але всі вони були програмно сумісними. Така сумісність означала можливість виконувати програми без необхідності їх додаткової адаптації до різних моделей серії та була певною мірою революційною, адже в той час практично всі ЕОМ випускались, як би ми зараз сказали, з унікальною архітектурою і необхідні були суттєві витрати для адаптації існуючого програмного забезпечення до нових моделей обчислювальної техніки. І якщо для спеціалізованих обчислювачів це було платою за високі показники швидкодії, то для класу універсальних ЕОМ така ситуація була неприпустимою.

Спеціалісти фірми IBM при створенні System/360 (S/360) зробили архітектуру єдиною для всіх машин серії, але реалізували її в кожній машині по-різному. В 1964 році було анонсовано зразу 6 моделей S/360.

Архітектура S/360 саме завдяки такій сумісності моделей мала надзвичайний комерційний успіх та отримала свій розвиток в наступній серії System/360, і в новій серії z/Server.

Ролі

Визначення

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

Архітектура системи команд

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

Окрім інструкцій, ССК визначає елементи комп'ютера, які доступні програмі – наприклад типи даних, регістри, способи адресації та пам'ять. Інструкції розташовують операнди з індексами регістрів (або іменами) й способами адресації пам'яті.

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

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

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

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

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

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

Імплементація

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

  • Логічна імплементація : проектування блоків визначених в мікро-архітектурі на рівні міжрегістрових передач та на рівні логічних вентилів.
  • Імплементація схем: проектування як базових елементів транзисторного рівня (вентилів, мультиплексорів та ін.), так і деяких більших блоків (арифметично-логічні пристрої, кеш та ін.), які можуть бути реалізовані на цьому рівні, або навіть частково на фізичному рівні.
  • Фізична імплементація: Створення плану мікросхеми. Розташування компонентів мікросхеми на базовому плані кристала або на дошці й планування розташування дротів, що їх з'єднують.
  • Утвердження дизайну:  Тестування комп'ютера на здатність працювати в усіх ситуаціях за будь-якого хронометражу