ГоловнаСтаттіComputer Science

Комп'ютерна архітектура

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

mysimulator teamОновлено — липень 2026≈ 3 хв читання▶ Відкрити симуляцію

🎯 Вступ до комп'ютерної архітектури

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

🔑 Основні компоненти:

Центральний процесор (CPU): Серце комп'ютера

Пам'ять: Зберігання даних та інструкцій

Шини: Канали зв'язку між компонентами

Ввід-вивід: Інтерфейси з периферійними пристроями

⚡ Архітектура процесора

🧠 Структура CPU

Основні компоненти процесора

Арифметико-логічний пристрій (ALU): Виконання арифметичних та логічних операцій

Блок керування (CU): Керування виконанням інструкцій

Регістри: Швидкі пристрої зберігання

Кеш: Буфер між процесором та пам'яттю

📊 Набір інструкцій (ISA)

Складні інструкції, що виконують багато операцій.

Приклади: x86, x86-64

Переваги: Менше інструкцій для програми

Недоліки: Складність реалізації

Прості інструкції, що виконуються швидко.

Приклади: ARM, MIPS, RISC-V

Переваги: Простота, висока швидкість

Недоліки: Більше інструкцій для програми

Інструкції містять кілька операцій для паралельного виконання.

Приклади: Itanium, DSP процесори

🔄 Конвеєрна обробка

⚙️ Концепція конвеєра

Етапи виконання інструкцій

IF (Instruction Fetch): Завантаження інструкції з пам'яті

ID (Instruction Decode): Розшифровка інструкції

EX (Execute): Виконання операції

MEM (Memory Access): Доступ до пам'яті (якщо потрібно)

WB (Write Back): Запис результату в регістр

🚧 Конфлікти в конвеєрі

Кілька інструкцій намагаються використовувати один ресурс.

Рішення: Дублювання ресурсів

Умовні переходи змінюють порядок виконання.

Рішення: Передбачення переходів

Інструкція залежить від результату попередньої.

Рішення: Форвардінг, затримки

🔮 Передбачення переходів

Рішення приймається на основі типу інструкції.

Стратегії: Завжди так, завжди ні, назад так/вперед ні

Рішення приймається на основі історії виконання.

Стратегії: 1-bit, 2-bit, адаптивні алгоритми

🚀 Суперскалярна архітектура

⚡ Паралельне виконання інструкцій

Принципи суперскалярної архітектури

Множинне видання: Видача кількох інструкцій за такт

Множинне виконання: Паралельне виконання незалежних інструкцій

Порядкове завершення: Результати повертаються в правильному порядку

🔄 Out-of-Order виконання

Алгоритм Tomasulo

Метод реалізації out-of-order виконання з динамічним плануванням.

Reservation Stations: Буфери для інструкцій, що очікують виконання

Register Renaming: Усунення WAR та WAW залежностей

Reorder Buffer (ROB): Збереження порядку завершення

🧠 Ієрархія пам'яті

📊 Рівні пам'яті

Найшвидші, найменші за обсягом

Час доступу: 1 такт

Обсяг: Кілобайти

Кеш першого рівня

Час доступу: 2-4 такти

Обсяг: 32-128 КБ

Кеш другого рівня

Час доступу: 10-20 тактів

Обсяг: 256 КБ - 8 МБ

Кеш третього рівня

Час доступу: 30-50 тактів

Обсяг: 8-64 МБ

Оперативна пам'ять

Час доступу: 100-300 тактів

Обсяг: Гігабайти

Жорсткий диск або SSD

Час доступу: Мільйони тактів

Обсяг: Терабайти

🎯 Політики кешування

Запис відбувається одночасно в кеш та пам'ять.

Переваги: Консистентність

Недоліки: Повільніші записи

Запис відбувається тільки в кеш, в пам'ять пізніше.

Переваги: Швидкіші записи

Недоліки: Складність реалізації

жива демонстрація · пов'язана симуляція● LIVE

🔗 Архітектура шин

🚌 Типи шин

Передає адреси пам'яті або пристроїв.

Напрямок: Односпрямована

Передає фактичні дані між компонентами.

Напрямок: Двоспрямована

Передає сигнали керування та статусу.

Приклади: READ, WRITE, RESET

⚡ Швидкість шин

🌐 Мультипроцесорні системи

🔄 Типи паралелізму

Одна інструкція обробляє один набір даних.

Приклад: Класичний однопроцесор

Одна інструкція обробляє кілька наборів даних.

Приклад: SSE, AVX, GPU

Різні інструкції обробляють різні дані.

Приклад: Багатопроцесорні системи

🏗️ Архітектури мультипроцесорів

Всі процесори мають рівний доступ до пам'яті.

Переваги: Простота програмування

Недоліки: Обмежена масштабованість

Час доступу до пам'яті залежить від розташування.

Переваги: Краща масштабованість

Недоліки: Складність програмування

Велика кількість процесорів з власною пам'яттю.

Приклад: Суперкомп'ютери

🔧 Системи вводу-виводу

📡 Інтерфейси вводу-виводу

CPU безпосередньо керує передачею даних.

Недоліки: CPU зайнятий під час передачі

Пристрій сигналізує CPU про готовність.

Переваги: CPU може виконувати інші задачі

Пристрій безпосередньо записує в пам'ять.

Переваги: Мінімальне навантаження на CPU

🎯 Практичні застосування

💻 Процесори

Intel, AMD, ARM, RISC-V архітектури

🎮 Графічні процесори

NVIDIA, AMD GPU архітектури

📱 Мобільні пристрої

ARM архітектура для смартфонів та планшетів

☁️ Серверні системи

Мультипроцесорні сервери та суперкомп'ютери

📚 Рекомендована література

"Computer Architecture: A Quantitative Approach" - Hennessy, Patterson

"Computer Organization and Design" - Patterson, Hennessy

"Modern Processor Design" - Shen, Lipasti

"The RISC-V Reader" - Patterson, Waterman

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Hash Function Avalanche Visualizer і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Hash Function Avalanche Visualizer

Що ви знайшли?

Додати кроки відтворення (опційно)