Опубликовано

Долгожданная книга: “Современная архитектура и устройство компьютеров. 2-е издание”

Современная архитектура и устройство компьютеров

Книга посвящена архитектуре и принципам работы современных цифровых устройств: компьютеров, смартфонов, облачных серверов. Подробно рассмотрены архитектуры процессоров и наборы инструкций x86, x64, ARM и RISC-V. Описано внутреннее устройство процессора, логические вентили, триггеры, регистры, конвейеры, показаны режимы адресации, обработка прерываний, представлены основы машинной логики, методы повышения вычислительной производительности процессоров. Приведен пример разработки процессора RISC-V на базе недорогой платы FPGA (ПЛИС). Описаны принципы виртуализации и технологии, лежащие в основе виртуальных машин, рассмотрены архитектурные решения для обеспечения кибербезопасности и конфиденциальности вычислений. Уделено внимание специализированным компьютерным архитектурам: облачным серверам, мобильным устройствам, процессорам для нейронных сетей и машинного обучения, блокчейна и майнинга, беспилотного транспорта. На практическом примере показаны квантовые вычисления, рассмотрены другие перспективные направления в вычислительных архитектурах.

 

Вы — разработчик программного обеспечения, системный архитектор или студент, изучающий устройство компьютеров?

Вы ищете издание, которое подробно познакомит вас с внутренней архитектурой и принципами работы цифровых устройств?

В этом пошаговом руководстве на практических примерах вы узнаете, как работают современные компьютерные системы, виртуальные машины, смартфоны и облачные серверы. Вы получите представление о внутреннем устройстве процессоров и поймете, как они выполняют код, написанный на языках высокого уровня.

Из этой книги вы

  • узнаете об основах современных компьютерных систем;
  • подробно изучите устройство процессоров, включая логические вентили, триггеры, регистры, последовательную логику, обработку прерываний и конвейеры управления;
  • исследуете процессорные архитектуры и наборы инструкций, включая x86, x64, ARM и RISC-V;
  • узнаете, как реализовать процессор RISC-V на недорогой плате FPGA (ПЛИС);
  • напишете  программу для квантовых вычислений и запустите ее на реальном квантовом компьютере.

Второе издание включает в себя описание архитектуры и принципов проектирования, лежащих в основе таких важных областей, как кибербезопасность, блокчейн и майнинг криптовалют, а также управление беспилотными автомобилями. Прочитав эту книгу, вы получите глубокое представление о современных процессорах и архитектуре компьютеров, а также о будущих направлениях развития этих технологий.

Книгу “Современная архитектура и устройство компьютеров. 2-е издание” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Предисловие.. 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

VHDL. 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

Обработка ……. 108

Обработка …….. 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

M.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

Драйверы устройств PCIe. 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

Модель обработки SIMD.. 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

Архитектура и набор инструкций x86. 286

Набор регистров архитектуры x86. 288

Режимы адресации x86. 292

Категории инструкций x86. 295

Форматы инструкций x86. 300

Язык ассемблера x86. 301

Архитектура и набор инструкций x64. 304

Набор регистров архитектуры x64. 306

Категории и форматы инструкций x64. 307

Язык ассемблера x64. 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

Расширение M.. 340

Расширение A.. 341

Расширение C.. 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

Виртуализация процессоров x86. 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 R10. 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

Глава 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

Ледин Джим

Джим Ледин (Jim Ledin) — исполнительный директор компании Ledin Engineering, Inc. Джим является экспертом в области проектирования и тестирования встроенного программного обеспечения и аппаратных средств, а также экспертом в области оценки кибербезопасности систем и тестирования на проникновение. Джим имеет степень бакалавра в области аэрокосмической техники от Университета штата Айова и степень мастера в области электротехники и вычислительной техники от Технологического института Джорджии. Он является зарегистрированным профессиональным инженером-электриком в штате Калифорния, сертифицированным специалистом по безопасности информационных систем (Certified InformationSystem Security Professional, CISSP), сертифицированным этичным хакером (CertifiedEthical Hacker, CEH) и сертифицированным специалистом

 

Summary
Aggregate Rating
3 based on 1 votes
Добавить комментарий