, Архитектура и организация современного компьютера

Архитектура и организация современного компьютера

Джим Лидин

 

Первая публикация на английском языке: Апрель 2020

Ссылка на продукт: 1290420

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

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

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

Опубликовано Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK

ISBN 978-1-83898-439-7

www.packtpub.com

2020-05-03

 Состав исполнителей

Автор
Джим Лидин
Редактор ввода в эксплуатацию
Кунал Чаудхайри
Редактор приобретения
Диним Пинто
Главный редактор
Афшаан Хан
Редактор разработки содержимого
Тикша Лад
Технический редактор
Гаурав Гэйла
Литературный редактор
Safis Editing
Координатор проекта
Фрэнси Путхайри
Корректор
Safis Editing
Составитель указателя
Прэйтик Шайродкар
Технолог
Эйпарна Бхэйгат

 Об авторе

Джим Лидин

 Рецензент

Роджир Спирс

 www.PacktPub.com

 Предисловие

 Для кого эта книга

 Что охватывает эта книга

Глава 1. Введение в вычислительную архитектуру

Глава 2. Цифровая логика

Глава 3. Составляющие процессора

Глава 4. Составляющие вычислительной системы

Глава 5. Программно- аппаратное взаимодействие

Глава 6. Области специализированных вычислений

Глава 7. Архитектуры процессора и памяти

Глава 8. Технологии улучшения производительности

Глава 9. Специализированные расширения процессора

Глава 10. Архитектуры и наборы инструкций современного процессора

Глава 11. Архитектура н набор инструкций RISC-V

Глава 12. Виртуализация процессоров

Глава 13. Вычислительные архитектуры особых областей

Глава 14. Дальнейшие напраления вычислительных архитектур

 Как получить от этой книги больше пользы

 Загрузка примеров кода

Вы можете загрузить файлы примеров кода по адресу из своей учётной записи: http://www.packtpub.com. Если вы приобрели книгу где- либо ещё, вы можете посетить http://www.packtpub.com/support и зарегистрироваться для получения этих файлов по электронной почте непосредственно на свой адрес.

Вы можете загрузить эти файлы с кодом выполнив следующие шаги:

  1. Зарегистрируйтесь на нашем вебсайте при помощи своего адреса электронной почты и пароля.

  2. Переместите указатель мыши на закладку SUPPORT в верхней части.

  3. Кликните по Code Downloads & Errata.

  4. Введите название книги в блок Search.

  5. Выберите книгу для которой вы ищете для загрузки файлы исходного кода.

  6. В ниспадающем меню выберите где вы приобрели эту книгу.

  7. Кликните по Code Download.

После загрузки убедитесь, пожалуйста, что вы раззиповали или раскрыли эту папку при помощи самой последней версии:

  1. WinRAR / 7-Zip для Windows

  2. Zipeg / iZip / UnRarX для Mac

  3. 7-Zip / PeaZip для Linux

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

У нас также имеются и прочие упаковки кодов из нашего богатого каталога книг и видео- материалов , доступными в GitHub. Ознакомьтесь с ним!

 Загрузка цветных изображений этой книги

Мы дополнительно снабжаем вас файлом PDF, который содержит цветные изображения экранных снимков/ схем, использованных в данной книге. Цветные изображения помогут вам лучше понять изменения в выводе. Вы можете загрузить этот файл по адресу: https://static.packt-cdn.com/downloads/9781789131611_ColorImages.pdf.

 Соглашения

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

Кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, расширения файлов, имена путей, модели URL-адресов, ввод пользователя, и регулировки Twitter представлены следующим образом: "Исеется возможность убить некий процесс немедленно при помощи метода terminate".

Блок кода записываются следующим образом:


import socket
port=60000
s =socket.socket()
host=socket.gethostname()
 	   

Когда мы желаем привлечь ваше внимание к определённой части кода в блоке, соответствующие строки или элементы выделяются жирным шрифтом:


p = multiprocessing.Process(target=foo)
print ('Process before execution:', p, p.is_alive())
p.start()
 	   

Всякая командная строка ввода или вывода отображается так:


> python server.py
 	   

Жирным шрифтом отображаются новые термины или важные слова, которые вы видите на экране. Например, появляющиеся в тексте слова в меню или блоках диалогов. Вот некий пример: "Перейдите в System Properties | Environment Variables | User or System variables | New".

[Замечание]Замечание

Предостережения или важные замечания появляются в блоках подобных этому.

[Совет]Совет

Советы и ловкие приёмы возникают таким образом.

 Разделы

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

Приготовление

Этот раздел сообщит вам что ожидает данный раздел и описывает как настроить всё необходимое для данного рецепта и выполнить предварительные настройки.

Как это сделать...

Данный раздел содержит все шаги, которые следует осуществить в нём.

Как это работает...

Этот раздел обычно размещает подробное объяснение того что происходило в предыдущем разделе.

Также ознакомьтесь...

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

Дополнительно

Данный раздел предоставляет полезные ссылки на прочую полезную для обсуждаемого рецепта информацию.

 Обратная связь с читателями

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

Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.

Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.

 Поддержка пользователей

Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.

 Опечатки

Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.

Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.

 Незаконное тиражирование

Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}

Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.

Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.

 Вопросы

Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.

 Содержание

Предисловие
Что охватывает эта книга
Что вам нужно для этой книги
Для кого эта книга
Соглашения
Обратная связь с читателями
Поддержка пользователей
Загрузка кодов примеров
Опечатки
Незаконное тиражирование
Вопросы
Часть 1. Основы вычислительной архитектуры
Глава 1. Введение в вычислительную архитектуру
Оценка устройств автоматических вычислений
Аналитический механизма Чарльза Бэббиджа
ENIAC
IBM PC
iPhone
Закон Мура
Вычислительная архитектура
Двоичные и шестнадцатеричные числа
Микропроцессор 6502
Набор инструкций 6502
Выводы
Упражнения
Глава 2. Цифровая логика
Электронные цепи
Транзистор
Элементы логики
Триггеры- защёлки
Триггеры- flip-flop
Регистры
Сумматоры
Распространение задержки
Генерация тактов
Последовательная логика
Языки описания оборудования
VHDL
Выводы
Упражнения
Глава 3. Составляющие процессора
Простой процессор
Устройство управления
Арифметическо- логическое устройство
Регистры
Набор инструкций
Режимы адресации
Режим прямой адресации
Режим абсолютной адресации
Режим абсолютной адресации с индексами
Режим косвенной адресации с индексами
Категории инструкций
Инструкции загрузки и запоминания
Регистр- регистр инструкции обмена данными
Стековые инструкции
Арифметические инструкции
Логические инструкции
Инструкции логического перехода
Инструкции вызова подпрограмм и возврата
Инструкции флага процессора
Связанные с прерываниями инструкции
Инструкция нет операции
Обработка прерываний
Обработка IRQ
Обработка NMI
Обработка инструкции BRK
Операции ввода/ вывода
Программируемый ввод/ вывод
Ввод/ вывод по прерываниям
Прямой доступ к памяти
Выводы
Упражнения
Глава 4. Составляющие вычислительной системы
Технические требования
Подсистема памяти
Введение в полевые МОП- транзисторы
Построение микросхем ОЗУ на полевых МОП- транзисторах
Конденсатор
Элемент ячейки ОЗУ
SDRAM DDR4
Графическая память
Предварительная выборка
Подсистема ввода/ вывода
Параллельные и последовательные шины данных
PCI Express
SATA
M.2
USB
Thunderbolt
Контроллеры графических дисплеев
VGA
DVI
HDMI
DisplayPort
Сетевой интерфейс
Ethernet
Wi-Fi
Клавиатура и мышь
Клавиатура
Мышь
Спецификации современных вычислительных систем
Выводы
Упражнения
Глава 5. Программно- аппаратное взаимодействие
Драйверы устройств
Параллельный порт
Драйверы устройств PCIe
Структура драйвера устройства
BIOS
UEFI
Процесс запуска
Запуск BIOS
Запуск UEFI
Встроенные устройства
Операционные системы
Процессы и потоки
Алгоритмы планирования и приоритет процесса
Многопроцессорность
Выводы
Упражнения
Глава 6. Области специализированных вычислений
Вычисления в реальном времени
Системы обработки в реальном масштабе времени
Обработка цифровых сигналов
ADC и DAC
Функции оборудования DSP
Алгоритмы обработки сигналов
GPU вычисления
GPU в качестве процессора данных
Примеры специализированных архитектур
Выводы
Упражнения
Часть 2. Архитектура и наборы инструкций процессора
Глава 7. Архитектуры процессора и памяти
Технические требования
Архитектуры фон Неймана, Гарвардская и модифицированная Гарвардская
Архитектура фон Неймана
Гарвардская архитектура
Модифицированная гарвардская архитектура
Физическая и виртуальная память
Управление страницами виртуальной памяти
Биты состояния страницы
Пулы памяти
Устройство управления памятью
Выводы
Упражнения
Глава 8. Технологии улучшения производительности
Кэш- память
Исправление при помощи Pulp на основе RPM
Исправление при помощи Pulp на основе DEB
Конвейеризация инструкций
Многоуровневое кэширование процессора
Статическая оперативная память
Кэш 1 уровня
Кэш прямого отображения
Набор ассоциативного кэша
Полностью ассоциативный кэш
Политики записи в кэш прцессора
Кэш 2 и 3 уровня процессора
Одновременная многопоточность
Обработка в одном потоке множества потоков данных
Выводы
Вопросы
Упражнения
Глава 9. Специализированные расширения процессора
Технические требования
Привилегированные режимы процессора
Обработка прерываний и исключительных ситуаций
Кольца защиты
Математические операции с плавающей точкой
8087 сопроцессор операций с плавающей запятой
IEEE 754 стандарт операций с плавающей запятой
Управление питанием
Динамическое масштабирование напряжения частот
Управление системной безопасностью
Выводы
Упражнения
Глава 10. Архитектуры и наборы инструкций современного процессора
Технические требования
Архитектура и набор инструкций x86
Набор регистров x86
Режимы адресации x86
Категории инструкций x86
Форматы инструкций x86
Язык ассемблера x86
Архитектура и набор инструкций x64
Набор регистров x64
Категории и форматы инструкций x64
Язык ассемблера x64
Архитектура и набор инструкций 32- битных ARM
Набор регистров ARM
Режимы адресации ARM
Категории инструкций ARM
Язык ассемблера ARM
Архитектура и набор инструкций 64- битных ARM
Язык ассемблера 64- битного ARM
Выводы
Упражнения
Глава 11. Архитектура н набор инструкций RISC-V
Технические требования
Архитектура и свойства RISC-V
Базовый набор инструкций RISC-V
Автоматизация загрузки данных MariaDB через Ansible
Расширения RISC-V
Обычное обслуживание PostgreSQL через Ansible
64- битный RISC-V
Стандартные конфигурации RISC-V
Язык ассемблера RISC-V
Реализация RISC-V в FPGA
Выводы
Упражнения
Часть 3. Приложения вычислительной архитектуры
Глава 12. Виртуализация процессоров
Технические требования
Введение в виртуализацию
Виды виртуализации
Категории виртуализации процессоров
Проблемы виртуализации
Ненадёжные инструкции
Таблицы теневых страниц
Безопасность
Виртуализация современных процессоров
Виртуализация процессора x86
Виртуализация процессора ARM
Виртуализация процессора RISC-V
Инструменты виртуализации
VirtualBox
VMware Workstation
VMware ESXi
KVM
Xen
QEMU
Виртуализация и облачные вычисления
Выводы
Упражнения
Глава 13. Вычислительные архитектуры особых областей
Технические требования
Проектирование вычислительных систем для соответствия уникальным требованиям
Архитектура смартфона
iPhone X
Архитектура персонального компьютера
Игровая настольная система в редакции Alienware Aurora Ryzen
Предсказание ветвлений Ryzen 9 3950X
GPU Nvidia GeForce RTX 2080 Ti
Подсистемы Aurora
Вычислительная архитектура складского масштаба (WSC)
Оборудование WSC
Серверы стоечного исполнения
Управление отказами оборудования
Потребление электрической энергии
WSC в качестве многоуровнемог информационного кэша
Архитектуры нейросетей и машинного обучения
Сетевой нейропроцессор Intel Nervana
Выводы
Упражнения
Глава 14. Дальнейшие напраления вычислительных архитектур
Непрекращающаяся эволюция вычислительных архитектур
Экстраполяция из тенденций нашего времени
Пересмотр закона Мура
Третье измерение
Увеличение специализации устройств
Потенциально подрывающие основы технологии
Квантовая физика
Спиновая электроник
Квантовые вычисления
Углеродные нанотрубки
Построение ориентированных на будущее навыков
Непрерывное обучение
Обучение в колледже
Конференции и литература
Выводы
Упражнения
Ответы на упражнения
Глава 1. Введение в вычислительную архитектуру
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 3
Ответ
Упражнение 4
Ответ
Упражнение 5
Ответ
Упражнение 6
Ответ
Глава 2. Цифровая логика
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 3
Ответ
Упражнение 4
Ответ
Упражнение 5
Ответ
Упражнение 6
Ответ
Глава 3. Составляющие процессора
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 3
Ответ
Упражнение 4
Ответ
Упражнение 5
Ответ
Упражнение 6
Ответ
Глава 4. Составляющие вычислительной системы
Упражнение 1
Ответ
Упражнение 2
Ответ
Глава 5. Программно- аппаратное взаимодействие
Упражнение 1
Ответ
Упражнение 2
Ответ
Глава 6. Области специализированных вычислений
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 5
Ответ
Глава 7. Архитектуры процессора и памяти
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 5
Ответ
Глава 8. Технологии улучшения производительности
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 5
Ответ
Глава 9. Специализированные расширения процессора
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 3
Ответ
Упражнение 4
Ответ
Упражнение 5
Ответ
Упражнение 6
Ответ
Упражнение 7
Ответ
Упражнение 8
Ответ
Глава 10. Архитектуры и наборы инструкций современного процессора
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 3
Ответ
Упражнение 4
Ответ
Упражнение 5
Ответ
Упражнение 6
Ответ
Упражнение 7
Ответ
Упражнение 8
Ответ
Глава 11. Архитектура н набор инструкций RISC-V
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 3
Ответ
Упражнение 4
Ответ
Глава 12. Виртуализация процессоров
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 3
Ответ
Глава 13. Вычислительные архитектуры особых областей
Упражнение 1
Ответ
Упражнение 2
Ответ
Глава 14. Дальнейшие напраления вычислительных архитектур
Упражнение 1
Ответ
Упражнение 2
Ответ
Упражнение 3
Ответ
Упражнение 4
Ответ
Указатель