🎯 Вступ до комп'ютерної архітектури
Комп'ютерна архітектура - це галузь інформатики, що визначає структуру, організацію та функціонування комп'ютерних систем. Вона охоплює дизайн процесорів, пам'яті, систем вводу-виводу та їх взаємодію для створення ефективних та надійних обчислювальних систем.
🔑 Основні компоненти:
Центральний процесор (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
Час доступу: Мільйони тактів
Обсяг: Терабайти
🎯 Політики кешування
Запис відбувається одночасно в кеш та пам'ять.
Переваги: Консистентність
Недоліки: Повільніші записи
Запис відбувається тільки в кеш, в пам'ять пізніше.
Переваги: Швидкіші записи
Недоліки: Складність реалізації
🔗 Архітектура шин
🚌 Типи шин
Передає адреси пам'яті або пристроїв.
Напрямок: Односпрямована
Передає фактичні дані між компонентами.
Напрямок: Двоспрямована
Передає сигнали керування та статусу.
Приклади: 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