Современная архитектура и устройство компьютеров, 2-е изд.
Год издания: 2024
Автор: Ледин Дж.
Переводчик: Мешков Дмитрий
Издательство: БХВ-Петербург
ISBN: 978-5-9775-1870-3
Язык: Русский
Формат: PDF
Качество: Отсканированные страницы + слой распознанного текста
Количество страниц: 689
Описание: Книга посвящена архитектуре и принципам работы современных цифровых устройств: компьютеров, смартфонов, облачных серверов. Подробно рассмотрены архитектуры процессоров и наборы инструкций x86, x64, ARM и RISC-V. Описано внутреннее устройство процессора, логические вентили, триггеры, регистры, конвейеры, показаны режимы адресации, обработка прерываний, представлены основы машинной логики, методы повышения вычислительной производительности процессоров. Приведен пример разработки процессора RISC-V на базе недорогой платы FPGA (ПЛИС). Описаны принципы виртуализации и технологии, лежащие в основе виртуальных машин, рассмотрены архитектурные решения для обеспечения кибербезопасности и конфиденциальности вычислений. Уделено внимание специализированным компьютерным архитектурам: облачным серверам, мобильным устройствам, процессорам для нейронных сетей и машинного обучения, блокчейна и майнинга, беспилотного транспорта. На практическом примере показаны квантовые вычисления, рассмотрены другие перспективные направления в вычислительных архитектурах.
Для программистов, инженеров и системных архитекторов.
Комплект исходного кода для данной книги размещен на
GitHub.
Примеры страниц (скриншоты)
Оглавление
Предисловие...............................................................................................................................17
Составители.............................................................................................................................. 21
Об авторе................................................................................................................................. 21
О рецензентах.........................................................................................................................21
Вступление..................................................................................................................................23
Для кого эта книга................................................................................................................. 24
Как организована эта книга.................................................................................................24
Как получить максимальную отдачу от этой книги.....................................................28
Загрузите файлы с примерами кода................................................................................. 28
Загрузите цветные изображения........................................................................................28
Условные обозначения и соглашения..............................................................................28
Свяжитесь с нами.................................................................................................................. 29
Поделитесь своими мыслями............................................................................................. 30
Глава 1. Введение в архитектуру компьютеров........................................................... 31
Технические требования..................................................................................................... 32
Эволюция автоматических вычислительных устройств............................................. 32
Аналитическая машина Чарльза Бэббиджа......................... ,.....................................32
ENIAC..................................................................................................................................35
IBM PC.................................................................................................................................36
iPhone....................................................................................................................................40
Закон Мура............................................................................................................................. 41
Архитектура компьютеров..................................................................................................44
Представление чисел уровнями напряжения............................................................ 44
Двоичные и шестнадцатеричные числа...................................................................... 45
Микропроцессор 6502...................................................................................................... 49
Набор инструкций микропроцессора 6502..................................................................52
Резюме........................................................................................................................................55
Упражнения..............................................................................................................................56
Глава 2. Цифровая логика....................................................................................................58
Технические требования...................................................................................................... 59
Электрические схемы............................................................................................................59
Транзистор................................................................................................................................60
Логические вентили............................................................................................................... 61
Защелки..................................................................................................................................... 66
Триггеры...................................................................................................................................69
Регистры.................................................................................................................................... 71
Сумматоры................................................................................................................................73
Задержка распространения.............................................................................................. 74
Синхронизация........................................................................................................................76
Последовательностная логика............................................................................................ 77
Языки описания аппаратных средств................................................................................78
ѴНОЬ..................................................................................................................................... 78
Резюме........................................................................................................................................83
Упражнения..............................................................................................................................83
Глава 3. Элементы процессора............................................................................................ 85
Технические требования...................................................................................................... 86
Простой процессор................................................................................................................. 86
Устройство управления....................................................................................................87
Арифметико-логическое устройство.............................................................................90
Регистры................................................................................................................................95
Набор инструкций процессора............................................................................................ 97
Режимы адресации................................................................................................................. 98
Режим непосредственной адресации.............................................................................98
Режим абсолютной адресации........................................................................................99
Режим абсолютной индексной адресации................................................................. 100
Режим косвенной индексной адресации.................................................................... 102
Категории инструкций.........................................................................................................103
Инструкции загрузки и сохранения............................................................................ 104
Инструкции передачи данных из регистра в регистр............................................. 104
Инструкции стека............................................................................................................. 104
Арифметические инструкции....................................................................................... 105
Логические инструкции.................................................................................................. 106
Инструкции ветвления................................................................................................... 106
Инструкции вызова подпрограммы и возврата из подпрограммы..................... 107
Инструкции для работы с флагами процессора...................................................... 107
Инструкции для работы с прерываниями................................................................. 107
Инструкция отсутствия операций...............................................................................108
Обработка прерываний.......................................................................................................108
Обработка IRQ............................................................................................................... 108
Обработка NMI ............................................................................................................. 110
Обработка инструкции BRK........................................................................................ 111
Операции ввода-вывода..................................................................................................... 112
Программируемый ввод-вывод...................................................................................114
Ввод-вывод с управлением по прерываниям...........................................................114
Прямой доступ к памяти................................................................................................116
Резюме.................................................................................................................................... 116
Упражнения.......................................................................................................................... 117
Глава 4. Компоненты компьютерной системы.......................................................... 119
Технические требования................................................................................................... 120
Подсистема памяти............................................................................................................. 120
Знакомство с полевыми МОП-транзисторами.............................................................121
Построение схем динамической памяти с помощью полевых
МОП-транзисторов............................................................................................................. 124
Конденсатор...................................................................................................................... 124
Битовая ячейка динамической памяти.......................................................................126
SDRAM DDR5..................................................................................................................128
DDR для графики............................................................................................................131
Предварительная выборка.............................................................................................131
Подсистема ввода-вывода.................................................................................................132
Параллельные и последовательные шины данных.................................................133
PCI Express........................................................................................................................ 135
SATA..................................................................................................................................137
М.2...................................................................................................................................... 138
USB..................................................................................................................................... 138
Thunderbolt........................................................................................................................ 139
Графические дисплеи.........................................................................................................140
VGA.................................................................................................................................... 141
DVI..................................................................................................................................... 141
HDMI.................................................................................................................................. 142
DisplayPort......................................................................................................................... 142
Сетевой интерфейс.............................................................................................................. 143
Ethernet...............................................................................................................................143
Wi-Fi................................................................................................................................... 144
Клавиатура и мышь.............................................................................................................. 146
Клавиатура......................................................................................................................... 146
Мышь.................................................................................................................................. 147
Технические характеристики современной компьютерной системы.................... 148
Резюме......................................................................................................................................149
Упражнения............................................................................................................................150
Глава 5. Аппаратно-программный интерфейс............................................................ 151
Технические требования.................................................................................................... 152
Драйверы устройств............................................................................................................. 152
Параллельный порт..........................................................................................................153
Драйверы устройств РСІе...............................................................................................155
Структура драйверов устройств...................................................................................156
Базовая система ввода-вывода (BIOS)............................................................................158
Единый расширяемый интерфейс встроенного ПО (UEFI)..................................160
Процесс загрузки операционной системы..................................................................... 162
Загрузка при использовании BIOS.............................................................................. 163
Загрузка при использовании UEFI.............................................................................. 163
Доверенная загрузка........................................................................................................164
Мобильные устройства................................................................................................... 165
Операционные системы...................................................................................................... 166
Процессы и потоки............................................................................................................... 168
Алгоритмы планирования и приоритет процесса....................................................171
Многопроцессорность.........................................................................................................175
Резюме......................................................................................................................................177
Упражнения........................................................................................................................... 177
Глава 6. Специализированные вычисления.................................................................179
Технические требования.................................................................................................... 180
Вычисления в реальном времени.....................................................................................180
Операционные системы реального времени............................................................ 182
Цифровая обработка сигналов.......................................................................................... 186
АЦПиЦАП....................................................................................................................... 186
Особенности аппаратных средств DSP...................................................................... 189
Алгоритмы обработки сигналов.................................................................................. 192
Обработка данных в графических процессорах........................................................... 197
Графические процессоры как процессоры обработки данных............................ 198
Примеры специализированных архитектур..................................................................202
Резюме..................................................................................................................................... 204
Упражнения........................................................................................................................... 204
Глава 7. Архитектура процессора и памяти................................................................207
Технические требования...................................................................................................207
Фон-неймановская, гарвардская и модифицированная гарвардская
архитектуры..........................................................................................................................208
Фон-неймановская архитектура.................................................................................. 208
Гарвардская архитектура.............................................................................................. 210
Модифицированная гарвардская архитектура........................................................ 211
Физическая и виртуальная память...................................................................................212
Виртуальная память со страничной организацией................................................ 216
Биты состояния страницы............................................................................................ 220
Пулы памяти.................................................................................................................... 222
Блок управления памятью.................................................................................................223
Резюме....................................................................................................................................226
Упражнения..........................................................................................................................227
Глава 8. Методы повышения производительности..................................................229
Технические требования...................................................................................................230
Кеш-память...........................................................................................................................230
Многоуровневое кеширование в процессорах........................................................ 232
Статическая оперативная память...............................................................................233
Кеш первого уровня....................................................................................................... 235
Кеш с прямым отображением......................................................................................235
Наборно-ассоциативный кеш.......................................................................................239
Полностью ассоциативный кеш................................................................................. 241
Политики записи в кеш процессора...........................................................................242
Кеши процессора второго и третьего уровней........................................................ 243
Конвейерная обработка инструкций..............................................................................245
Суперконвейеризация....................................................................................................248
Конфликты конвейеризации........................................................................................250
Микрооперации и переименование регистров........................................................252
Условное ветвление....................................................................................................... 253
Одновременная многопоточность.................................................................................. 254
Модель обработки 8ІМО...................................................................................................256
Резюме....................................................................................................................................258
Упражнения.......................................................................................................................... 258
Глава 9. Специализированные расширения процессоров......................................260
Технические требования...................................................................................................260
Привилегированные режимы процессора..................................................................... 261
Обработка прерываний и исключений...................................................................... 261
Кольца защиты................................................................................................................265
Режим супервизора и режим пользователя.............................................................. 267
Системные вызовы...........................................................................................................268
Арифметика с плавающей запятой..................................................................................269
Сопроцессор 8087 для вычислений с плавающей запятой....................................272
Стандарт вычислений с плавающей запятой IEEE 754......................................... 274
Управление питанием......................................................................................................... 275
Динамическое изменение напряжения и частоты...................................................276
Управление безопасностью системы..............................................................................277
Доверенный платформенный модуль........................................................................ 280
Противодействие кибератакам.................................................................................... 281
Резюме..................................................................................................................................... 282
Упражнения........................................................................................................................... 283
Глава 10. Современные архитектуры и наборы инструкций
процессоров.............................................................................................................................. 285
Технические требования....................................................................................................285
Архитектура и набор инструкций х86............................................................................ 286
Набор регистров архитектуры х86..............................................................................288
Режимы адресации х86...................................................................................................292
Категории инструкций х86............................................................................................ 295
Форматы инструкций х86.............................................................................................. 300
Язык ассемблера х86....................................................................................................... 301
Архитектура и набор инструкций х64.............................................................................304
Набор регистров архитектуры х64..............................................................................306
Категории и форматы инструкций х64...................................................................... 307
Язык ассемблера х64....................................................................................................... 307
Архитектура и набор инструкций 32-разрядных процессоров ARM..................... 310
Набор регистров ARM....................................................................................................312
Режимы адресации ARM............................................................................................... 313
Категории инструкций ARM.........................................................................................316
32-разрядный язык ассемблера ARM......................................................................... 319
Архитектура и набор инструкций 64-разрядных процессоров ARM..................... 321
64-разрядный язык ассемблера ARM......................................................................... 323
Резюме..................................................................................................................................... 325
Упражнения........................................................................................................................... 325
Глава 11. Архитектура и набор инструкций RISC-V................................................328
Технические требования....................................................................................................329
Архитектура и приложения RISC-V................................................................................329
Базовый набор инструкций RISC-V................................................................................ 332
Вычислительные инструкции.......................................................................................333
Инструкции потока управления................................................................................... 334
Инструкции доступа к памяти.................................................................................... 334
Системные инструкции................................................................................................ 335
Псевдоинструкции......................................................................................................... 336
Уровни привилегий........................................................................................................ 338
Расширения RISC-V............................................................................................................340
Расширение М................................................................................................................. 340
Расширение А.................................................................................................................. 341
Расширение С.................................................................................................................. 342
Расширения F и D............................................................................................................342
Другие расширения........................................................................................................ 343
Варианты RISC-V................................................................................................................ 344
64-разрядная архитектура RISC-V................................................................................. 345
Стандартные конфигурации RISC-V..............................................................................346
Язык ассемблера RISC-V...................................................................................................347
Реализация концепции RISC-V в ПЛИС........................................................................348
Резюме....................................................................................................................................352
Упражнения..........................................................................................................................353
Глава 12. Виртуализация процессоров..........................................................................355
Технические требования...................................................................................................356
Введение в виртуализацию.............................................................................................. 356
Типы виртуализации...................................................................................................... 356
Категории виртуализации процессоров.................................................................... 360
Проблемы виртуализации.................................................................................................365
Небезопасные инструкции........................................................................................... 366
Теневые таблицы страниц............................................................................................ 367
Безопасность.....................................................................................................................367
Виртуализация современных процессоров................................................................... 368
Виртуализация процессоров х86................................................................................ 368
Виртуализация процессоров ARM.............................................................................370
Виртуализация процессоров RISC-V........................................................................ 371
Инструменты виртуализации........................................................................................... 372
VirtualBox..........................................................................................................................372
VMware Workstation....................................................................................................... 373
VMware ESXi................................................................................................................... 373
KVM...................................................................................................................................373
Xen...................................................................................................................................... 374
QEMU.................................................................................................................................374
Виртуализация и облачные вычисления........................................................................375
Потребление электроэнергии.......................................................................................376
Резюме....................................................................................................................................376
Упражнения..........................................................................................................................377
Глава 13. Специализированные компьютерные архитектуры............................................... 378
Технические требования................................................................................................... 378
Проектирование архитектуры компьютерных систем на основе
уникальных требований.....................................................................................................379
Архитектура смартфона.....................................................................................................380
iPhone 13 Pro Max.............................................................................................................381
Архитектура персонального компьютера......................................................................384
Игровой настольный компьютер Alienware Aurora Ryzen Edition RIO............................... 384
Вычислительная архитектура масштаба центра обработки данных................................. 389
Аппаратные средства WSC........................................................................................... 390
Стоечные серверы............................................................................................................392
Управление отказами аппаратных средств............................................................... 395
Потребление электроэнергии........................................................................................395
WSC как многоуровневый информационный кеш....................................................... 396
Развертывание облачного приложения...................................................................... 397
Архитектура процессоров для нейронных сетей и машинного обучения........................ 401
Нейропроцессор Intel Nervana..................................................................................... 401
Резюме..................................................................................................................................... 405
Упражнения........................................................................................................................... 405
Глава 14. Архитектуры для обеспечения кибербезопасности
и конфиденциальности вычислений...............................................................................407
Технические требования....................................................................................................408
Угрозы кибербезопасности............................................................................................... 408
Категории угроз кибербезопасности.......................................................................... 408
Методы кибератак........................................................................................................... 410
Типы вредоносного программного обеспечения.................................................... 412
Действия после проникновения................................................................................... 414
Особенности защищенного оборудования....................................................................416
Определите, что нуждается в защите......................................................................... 416
Рассматривайте все типы атак..................................................................................... 417
Особенности конструкции защищенных систем.................................................... 419
Конфиденциальные вычисления..................................................................................... 422
Меры безопасности на уровне архитектуры................................................................ 425
Избегайте защиты посредством сокрытия информации.......................................425
Комплексный подход к безопасному проектированию.........................................427
Принцип наименьших привилегий..............................................................................427
Архитектура нулевого доверия.................................................................................... 428
Обеспечение безопасности системного и прикладного ПО......................................429
Общие слабые места программного обеспечения..................................................430
Проверка безопасности исходного кода....................................................................433
Резюме..................................................................................................................................... 433
Упражнения........................................................................................................................... 434
Глава 15. Архитектуры блокчейна и майнинга биткоинов................................... 436
Технические требования...................................................................................................437
Введение в блокчейн и биткоин......................................................................................437
Алгоритм хеширования SHA-256...............................................................................441
Вычисление хеша SHA-256..........................................................................................443
Программное обеспечение Bitcoin Core.................................................................... 444
Процесс майнинга биткоинов.......................................................................................... 445
Пулы майнинга биткоинов........................................................................................... 447
Майнинг с помощью центрального процессора.....................................................449
Майнинг с помощью графического процессора.....................................................450
Компьютерные архитектуры для майнинга биткоинов.............................................451
Майнинг с помощью ПЛИС.........................................................................................453
Майнинг с помощью ASIC...........................................................................................455
Экономика майнинга биткоинов................................................................................ 458
Альтернативные виды криптовалют..............................................................................459
Резюме....................................................................................................................................460
Упражнения..........................................................................................................................461
Глава 16. Архитектуры для самоуправляемых автомобилей...............................462
Технические требования...................................................................................................463
Обзор самоуправляемых автомобилей...........................................................................463
Уровни автономности вождения................................................................................ 464
Аспекты безопасности самоуправляемых автомобилей...........................................466
Требования к аппаратным средствам и программному обеспечению
для самоуправляемых автомобилей...............................................................................468
Наблюдение за состоянием транспортного средства и его окружением.........469
Распознавание окружающей обстановки..................................................................473
Принятие решений......................................................................................................... 484
Вычислительная архитектура автономного транспортного средства....................486
Автопилот Tesla HW3....................................................................................................487
Резюме....................................................................................................................................489
Упражнения..........................................................................................................................489
Глава 17. Квантовые вычисления и другие перспективные
направления в вычислительных архитектурах........................................................ 491
Технические требования...................................................................................................492
Текущее развитие компьютерных архитектур............................................................ 492
Экстраполяция современных тенденций в будущее.................................................. 494
Закон Мура — новый взгляд........................................................................................494
Третье измерение............................................................................................................495
Распространение специализированных устройств................................................ 496
Потенциально прорывные технологии.......................................................................... 497
Квантовая физика.............................................................................................................497
Спинтроника..................................................................................................................... 498
Квантовые вычисления...................................................................................................500
Квантовый взлом кода....................................................................................................501
Адиабатические квантовые вычисления....................................................................502
Будущее квантовых вычислений................................................................................. 503
Углеродные нанотрубки.................................................................................................504
Формирование набора навыков с заделом на будущее..............................................506
Непрерывное обучение...................................................................................................506
Высшее образование....................................................................................................... 508
Конференции и литература...........................................................................................509
Резюме..................................................................................................................................... 510
Упражнения........................................................................................................................... 513
Приложение. Ответы к упражнениям..................................................................................515
Глава 1. Введение в архитектуру компьютеров................................................................... 515
Упражнение 1....................................................................................................................515
Упражнение 2....................................................................................................................517
Упражнение 3................................................................................................................... 521
Упражнение 4................................................................................................................... 525
Упражнение 5................................................................................................................... 526
Упражнение 6................................................................................................................... 528
Глава 2. Цифровая логика..................................................................................................530
Упражнение 1................................................................................................................... 530
Упражнение 2....................................................................................................................530
Упражнение 3....................................................................................................................531
Упражнение 4................................................................................................................... 533
Упражнение 5................................................................................................................... 534
Упражнение 6................................................................................................................... 536
Глава 3. Элементы процессора............................................................................................539
Упражнение 1................................................................................................................... 539
Упражнение 2................................................................................................................... 540
Упражнение 3....................................................................................................................540
Упражнение 4....................................................................................................................541
Упражнение 5....................................................................................................................543
Упражнение 6....................................................................................................................545
Глава 4. Компоненты компьютерной системы...................................................................... 551
Упражнение 1................................................................................................................... 551
Упражнение 2....................................................................................................................552
Глава 5. Аппаратно-программный интерфейс...................................................................... 552
Упражнение 1....................................................................................................................552
Упражнение 2....................................................................................................................553
Содержание 15
Глава 6. Специализированные вычисления.........................................................................554
Упражнение 1...................................................................................................................554
Упражнение 2.................................................................................................................. 555
Упражнение 3.................................................................................................................. 557
Глава 7. Архитектура процессоров и памяти.......................................................................558
Упражнение 1.................................................................................................................. 558
Упражнение 2.................................................................................................................. 558
Упражнение 3.................................................................................................................. 559
Глава 8. Методы повышения производительности................................................................561
Упражнение 1.................................................................................................................. 561
Упражнение 2.................................................................................................................. 562
Упражнение 3.................................................................................................................. 562
Глава 9. Специализированные расширения процессоров.....................................................563
Упражнение 1.................................................................................................................. 563
Упражнение 2.................................................................................................................. 565
Упражнение 3.................................................................................................................. 569
Упражнение 4.................................................................................................................. 569
Упражнение 5.................................................................................................................. 570
Упражнение 6.................................................................................................................. 570
Упражнение 7.................................................................................................................. 570
Упражнение 8.................................................................................................................. 571
Глава 10. Современные архитектуры и наборы инструкций процессоров...............................571
Упражнение 1.................................................................................................................. 571
Упражнение 2.................................................................................................................. 575
Упражнение 3.................................................................................................................. 580
Упражнение 4.................................................................................................................. 583
Упражнение 5.................................................................................................................. 588
Упражнение 6.................................................................................................................. 590
Упражнение 7.................................................................................................................. 595
Упражнение 8.................................................................................................................. 598
Глава 11. Архитектура и набор инструкций RISC-V............................................................. 604
Упражнение 1.................................................................................................................. 604
Упражнение 2.................................................................................................................. 604
Упражнение 3.................................................................................................................. 606
Глава 12. Виртуализация процессоров...............................................................................609
Упражнение 1...................................................................................................................609
Упражнение 2.................................................................................................................. 611
Упражнение 3.................................................................................................................. 613
Глава 13. Специализированные компьютерные архитектуры................................................614
Упражнение 1.................................................................................................................. 614
Упражнение 2.................................................................................................................. 615
Глава 14. Архитектуры для обеспечения кибербезопасности и
конфиденциальности вычислений..................................................................................... 617
Упражнение 1.................................................................................................................. 617
Упражнение 2.................................................................................................................. 618
Упражнение 3.................................................................................................................. 618
Глава 15. Архитектуры блокчейна и майнинга биткоинов.....................................................619
Упражнение 1................................................................................................................... 619
Упражнение 2................................................................................................................... 621
Глава 16. Архитектуры для самоуправляемых автомобилей.................................................. 622
Упражнение 1................................................................................................................... 622
Упражнение 2................................................................................................................... 623
Упражнение 3................................................................................................................... 625
Упражнение 4................................................................................................................... 629
Глава 17. Квантовые вычисления и другие перспективные направления
в вычислительных архитектурах........................................................................................ 633
Упражнение 1....................................................................................................................633
Упражнение 2................................................................................................................... 634
Упражнение 3................................................................................................................... 635
Упражнение 4................................................................................................................... 637
Предметный указатель....................................................................................................... 639