Цифровая схемотехника и архитектура компьютера: RISC-V
معرفی کتاب «Цифровая схемотехника и архитектура компьютера: RISC-V» نوشتهٔ Сара Л. Харрис, Дэвид Харрис ; под редакцией А. Ю. Романова ; перевод с английского В. С. Яценкова, А. Ю. Романова، منتشرشده توسط نشر ДМК Пресс در سال 2021. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
The Newest Addition To The Harris And Harris Family Of Digital Design And Computer Architecture Books, This Risc-v Edition Covers The Fundamentals Of Digital Logic Design And Reinforces Logic Concepts Through The Design Of A Risc-v Microprocessor. Combining An Engaging And Humorous Writing Style With An Updated And Hands-on Approach To Digital Design, This Book Takes The Reader From The Fundamentals Of Digital Logic To The Actual Design Of A Processor. By The End Of This Book, Readers Will Be Able To Build Their Own Risc-v Microprocessor And Will Have A Top-to-bottom Understanding Of How It Works. Beginning With Digital Logic Gates And Progressing To The Design Of Combinational And Sequential Circuits, This Book Uses These Fundamental Building Blocks As The Basis For Designing A Risc-v Processor. Systemverilog And Vhdl Are Integrated Throughout The Text In Examples Illustrating The Methods And Techniques For Cad-based Circuit Design. The Companion Website Includes A Chapter On I/o Systems With Practical Examples That Show How To Use Sparkfun's Red-v Redboard To Communicate With Peripheral Devices Such As Lcds, Bluetooth Radios, And Motors. This Book Will Be A Valuable Resource For Students Taking A Course That Combines Digital Logic And Computer Architecture Or Students Taking A Two-quarter Sequence In Digital Logic And Computer Organization/architecture. Covers The Fundamentals Of Digital Logic Design And Reinforces Logic Concepts Through The Design Of A Risc-v Microprocessor Gives Students A Full Understanding Of The Risc-v Instruction Set Architecture, Enabling Them To Build A Risc-v Processor And Program The Risc-v Processor In Hardware Simulation, Software Simulation, And In Hardware Includes Both Systemverilog And Vhdl Designs Of Fundamental Building Blocks As Well As Of Single-cycle, Multicycle, And Pipelined Versions Of The Risc-v Architecture Features A Companion Website With A Bonus Chapter On I/o Systems With Practical Examples That Show How To Use Sparkfun's Red-v Redboard To Communicate With Peripheral Devices Such As Lcds, Bluetooth Radios, And Motors The Companion Website Also Includes Appendices Covering Practical Digital Design Issues And C Programming As Well As Links To Cad Tools, Lecture Slides, Laboratory Projects, And Solutions To Exercises See The Companion Edx Moocs Engr85a And Engr85b With Video Lectures And Interactive Problems Отзывы на книгу «Цифровая схемотехника и архитектура компьютера. RISC-V» Об авторах Предисловие к русскому изданию Предисловие от редактора русского перевода Предисловие Глава 1. От нуля до единицы 1.1. План игры 1.2. Искусство управления сложностью 1.2.1. Абстракция 1.2.2. Конструкторская дисциплина 1.2.3. Три базовых принципа 1.3. Цифровая абстракция 1.4. Системы счисления 1.4.1. Десятичная система счисления 1.4.2. Двоичная система счисления 1.4.3. Шестнадцатеричная система счисления 1.4.4. Байт, полубайт и «весь этот джаз» 1.4.5. Сложение двоичных чисел 1.4.6. Знак двоичных чисел 1.5. Логические элементы 1.5.1. Логический элемент НЕ 1.5.2. Буфер 1.5.3. Логический элемент И 1.5.4. Логический элемент ИЛИ 1.5.5. Другие логические элементы с двумя входными сигналами 1.5.6. Логические элементы с количеством входов больше двух 1.6. За пределами цифровой абстракции 1.6.1. Напряжение питания 1.6.2. Логические уровни 1.6.3. Допускаемые уровни шумов 1.6.4. Передаточная характеристика 1.6.5. Статическая дисциплина 1.7. КМОП-транзисторы 1.7.1. Полупроводники 1.7.2. Диоды 1.7.3. Конденсаторы 1.7.4. n-МОП- и p-МОП-транзисторы 1.7.5. Логический элемент НЕ на КМОП-транзисторах 1.7.6. Другие логические элементы на КМОП-транзисторах 1.7.7. Передаточный логический элемент 1.7.8. Псевдо-n-МОП-логика 1.8. Потребляемая мощность 1.9. Краткий обзор главы 1 и того, что нас ждет впереди Упражнения Вопросы для собеседования Глава 2. Разработка комбинационной логики 2.1. Введение 2.2. Логические функции 2.2.1. Терминология 2.2.2. Дизъюнктивная форма 2.2.3. Конъюнктивная форма 2.3. Булева алгебра 2.3.1. Аксиомы 2.3.2. Теоремы одной переменной 2.3.3. Теоремы с несколькими переменными 2.3.4. Доказательство теорем булевой алгебры 2.3.5. Упрощение логических уравнений 2.4. От логики к логическим элементам 2.5. Многоуровневая комбинационная логика 2.5.1. Минимизация аппаратных затрат 2.5.2. Перемещение инверсии 2.6. Что такое X и Z? 2.6.1. Недопустимое значение: Х 2.6.2. Третье состояние: Z 2.7. Карты Карно 2.7.1. Думайте об овалах 2.7.2. Логическая минимизация на картах Карно 2.7.3. Безразличные переменные 2.7.4. Карты Карно: подведение итогов 2.8. Базовые комбинационные блоки 2.8.1. Мультиплексоры 2.8.2. Дешифраторы 2.9. Временные характеристики 2.9.1. Задержка распространения и задержка реакции 2.9.2. Импульсные помехи 2.10. Заключение Упражнения Вопросы для собеседования Глава 3. Разработка последовательностной логики 3.1. Введение 3.2. Защелки и триггеры 3.2.1. RS-триггер 3.2.2. D-защелка 3.2.3. D-триггер 3.2.4. Регистр 3.2.5. Триггер с функцией разрешения 3.2.6. Триггер с функцией сброса 3.2.7. Разработка триггеров и защелок на транзисторном уровне 3.2.8. Сравнение защелок и триггеров 3.3. Разработка синхронных логических схем 3.3.1. Некоторые проблемные схемы 3.3.2. Синхронные последовательностные схемы 3.3.3. Синхронные и асинхронные схемы 3.4. Конечные автоматы 3.4.1. Пример разработки конечного автомата 3.4.2. Кодирование состояний 3.4.3. Автоматы Мура и Мили 3.4.4. Декомпозиция конечных автоматов 3.4.5. Восстановление конечных автоматов по электрической схеме 3.4.6. Конечные автоматы: подведение итогов 3.5. Синхронизация последовательностных схем 3.5.1. Динамическая дисциплина 3.5.2. Временные характеристики системы 3.5.3. Расфазировка тактовых сигналов 3.5.4. Метастабильность 3.5.5. Синхронизаторы 3.5.6. Вычисление времени разрешения 3.6. Параллелизм 3.7. Заключение Упражнения Вопросы для собеседования Глава 4. Языки описания аппаратуры 4.1. Введение 4.1.1. Модули 4.1.2. Происхождение языков SystemVerilog и VHDL 4.1.3. Моделирование и синтез 4.2. Комбинационная логика 4.2.1. Битовые операторы 4.2.2. Комментарии и пробелы 4.2.3. Операторы сокращения 4.2.4. Условное присваивание 4.2.5. Внутренние переменные 4.2.6. Приоритет 4.2.7. Числа 4.2.8. Z-состояние и X-состояние 4.2.9. Манипуляция с битами 4.2.10. Задержки 4.3. Структурное моделирование 4.4. Последовательностная логика 4.4.1. Регистры 4.4.2. Регистры со сбросом 4.4.3. Регистры с сигналом разрешения 4.4.4. Группы регистров 4.4.5. Защелки 4.5. И снова комбинационная логика 4.5.1. Операторы case 4.5.2. Условный оператор (if) 4.5.3. Таблицы истинности с незначащими битами 4.5.4. Блокирующие и неблокирующие присваивания 4.6. Конечные автоматы 4.7. Типы данных 4.7.1. SystemVerilog 4.7.2. VHDL 4.8. Параметризированные модули 4.9. Тестбенч 4.10. Заключение Упражнения Упражнения для SystemVerilog Упражнения для VHDL Вопросы для собеседования Глава 5. Цифровые функциональные узлы 5.1. Введение 5.2. Арифметические схемы 5.2.1. Сложение 5.2.2. Вычитание 5.2.3. Компараторы 5.2.4. Арифметико-логическое устройство 5.2.5. Схемы сдвига и циклического сдвига 5.2.6. Умножение 5.2.7. Деление 5.2.8. Дополнительная литература 5.3. Представление чисел 5.3.1. Числа с фиксированной запятой 5.3.2. Числа с плавающей запятой 5.4. Функциональные узлы последовательностной логики 5.4.1. Счетчики 5.4.2. Сдвиговые регистры 5.5. Матрицы памяти 5.5.1. Обзор матриц памяти 5.5.2. Динамическое ОЗУ (DRAM) 5.5.3. Статическое ОЗУ (SRAM) 5.5.4. Площадь и задержки 5.5.5. Регистровые файлы 5.5.6. Постоянное запоминающее устройство 5.5.7. Реализация логических функций с использованием матриц памяти 5.5.8. Языки описания аппаратуры и память 5.6. Матрицы логических элементов 5.6.1. Программируемые логические матрицы 5.6.2. Программируемые пользователем вентильные матрицы 5.6.3. Схемотехника матриц 5.7. Заключение Упражнения Вопросы для собеседования Глава 6. Архитектура 6.1. Предисловие 6.2. Язык ассемблера 6.2.1. Инструкции 6.2.2. Операнды: регистры, память и константы 6.3. Программирование 6.3.1. Порядок выполнения программы 6.3.2. Арифметические/логические инструкции 6.3.3. Ветвление программ 6.3.4. Условные операторы 6.3.5. Циклы 6.3.6. Массив 6.3.7. Вызовы функций 6.3.8. Псевдокоманды 6.4. Машинный язык 6.4.1. Инструкции типа R 6.4.2. Инструкции типа I 6.4.3. Инструкции типа S/B 6.4.4. Инструкции типа U/J 6.4.5. Кодирование констант 6.4.6. Режимы адресации 6.4.7. Расшифровываем машинные коды 6.4.8. Могущество хранимой программы 6.5. Камера, мотор! Компилируем, ассемблируем и загружаем 6.5.1. Карта памяти 6.5.2. Директивы ассемблера 6.5.3. Компиляция 6.5.4. Трансляция 6.5.5. Компоновка 6.5.6. Загрузка 6.6. Добавочные сведения 6.6.1. Порядок байтов 6.6.2. Исключения 6.6.3. Команды для чисел со знаком и без знака 6.6.4. Команды для работы с числами с плавающей запятой 6.6.5. Сжатые инструкции 6.7. Эволюция архитектуры RISC-V 6.7.1. Базовые наборы команд и расширения RISC-V 6.7.2. Сравнение архитектур RISC-V и MIPS 6.7.3. Сравнение архитектур RISC-V и ARM 6.8. Живой пример: архитектура x86 6.8.1. Регистры x86 6.8.2. Операнды x86 6.8.3. Флаги состояния 6.8.4. Команды x86 6.8.5. Кодировка команд х86 6.8.6. Другие особенности x86 6.8.7. Архитектура х86: подведение итогов 6.9. Заключение Упражнения Вопросы для собеседования Глава 7. Микроархитектура 7.1. Введение 7.1.1. Архитектурное состояние и система команд 7.1.2. Процесс разработки 7.1.3. Микроархитектуры RISC-V 7.2. Анализ производительности 7.3. Однотактный процессор 7.3.1. Пример программы 7.3.2. Однотактный тракт данных 7.3.3. Однотактный блок управления 7.3.4. Дополнительные команды 7.3.5. Анализ производительности 7.4. Многотактный процессор 7.4.1. Многотактный тракт данных 7.4.2. Многотактное устройство управления 7.4.3. Дополнительные команды 7.4.4. Анализ производительности 7.5. Конвейерный процессор 7.5.1. Конвейерный тракт данных 7.5.2. Конвейерное устройство управления 7.5.3. Конфликты 7.5.4. Анализ производительности 7.6. Разрабатываем процессор на HDL 7.6.1. Однотактный процессор 7.6.2. Универсальные строительные блоки 7.6.3. Тестбенч 7.7. Улучшенные микроархитектуры 7.7.1. Длинные конвейеры 7.7.2. Микрокоманды 7.7.3. Предсказание условных переходов 7.7.4. Суперскалярный процессор 7.7.5. Процессор с внеочередным выполнением команд 7.7.6. Переименование регистров 7.7.7. Многопоточность 7.7.8. Мультипроцессоры 7.8. Живой пример: эволюция микроархитектуры RISC-V 7.9. Заключение Упражнения Вопросы для собеседования Глава 8. Системы памяти 8.1. Введение 8.2. Анализ производительности систем памяти 8.3. Кеш-память 8.3.1. Какие данные хранятся в кеш-памяти? 8.3.2. Как найти данные в кеш-памяти? 8.3.3. Какие данные заместить в кеш-памяти? 8.3.4. Улучшенная кеш-память 8.4. Виртуальная память 8.4.1. Трансляция адресов 8.4.2. Таблица страниц 8.4.4. Защита памяти 8.4.5. Стратегии замещения страниц 8.4.6. Многоуровневые таблицы страниц 8.5. Заключение Эпилог Упражнения Вопросы для собеседования Глава 9. Ввод/вывод во встраиваемых системах 9.1. Введение 9.2. Отображение ввода/вывода в пространство памяти 9.3. Ввод/вывод во встраиваемых системах 9.3.1. Плата RED-V 9.3.2. Система на кристалле FE310-G002 9.3.3. Цифровой ввод/вывод общего назначения 9.3.4. Драйверы устройств ввода/вывода 9.3.5. Последовательный ввод/вывод 9.3.6. Таймеры 9.3.7. Аналоговый ввод/вывод 9.3.8. Прерывания 9.4. Другие внешние устройства микроконтроллера 9.4.1. Символьные ЖК-дисплеи 9.4.2. VGA-монитор 9.4.3. Беспроводная связь Bluetooth 9.4.4. Управление двигателями 9.5. Заключение Приложение А. Реализация цифровых систем А.1. Введение А.2. Логические микросхемы серии 74xx А.2.1. Логические элементы А.2.2. Другие логические функции А.3. Программируемая логика А.3.1. PROM А.3.2. Блоки PLA А.3.3. FPGA А.4. Заказные специализированные интегральные схемы А.5. Работа с документацией А.6. Семейства логических микросхем А.7. Корпуса и монтаж интегральных схем А.8. Линии передачи A.8.1. Согласованная нагрузка A.8.2. Нагрузка холостого хода A.8.3. Нагрузка короткого замыкания A.8.4. Рассогласованная нагрузка A.8.5. Когда нужно применять модели линии передачи A.8.6. Правильное подключение нагрузки к линии передачи A.8.7. Вывод формулы для Z0 A.8.8. Вывод формулы для коэффициента отражения A.8.9. Линии передачи: подведение итогов A.9. Экономика Приложение В. Система команд RISC-V Приложение С. Программирование на языке С C.1. Введение Краткий итог C.2. Добро пожаловать в язык С C.2.1. Структура программы на языке С C.2.2. Запуск С-программы Краткий итог C.3. Компиляция C.3.1. Комментарии C.3.2. #define C.3.3. #include Краткий итог C.4. Переменные C.4.1. Базовые типы данных C.4.2. Глобальные и локальные переменные C.4.3. Инициализация переменных Краткий итог C.5. Операции C.6. Вызовы функций C.7. Управление последовательностью выполнения действий C.7.1. Условные операторы C.7.2. Циклы Краткий итог C.8. Другие типы данных C.8.1. Указатели C.8.2. Массивы C.8.3. Символы C.8.4. Строки символов C.8.5. Структуры C.8.6. Оператор typedef C.8.7. Динамическое распределение памяти C.8.8. Связные списки Краткий итог C.9. Стандартная библиотека языка C C.9.1. stdio C.9.2. stdlib C.9.3. math C.9.4. string C.10. Компилятор и опции командной строки C.10.1. Компиляция нескольких исходных c-файлов C.10.2. Опции компилятора C.10.3. Аргументы командной строки C.11. Типичные ошибки Дополнительная литература Предметный указатель "The newest addition to the Harris and Harris family of Digital Design and Computer Architecture books, this RISC-V Edition covers the fundamentals of digital logic design and reinforces logic concepts through the design of a RISC-V microprocessor. Combining an engaging and humorous writing style with an updated and hands-on approach to digital design, this book takes the reader from the fundamentals of digital logic to the actual design of a processor. By the end of this book, readers will be able to build their own RISC-V microprocessor and will have a top-to-bottom understanding of how it works. Beginning with digital logic gates and progressing to the design of combinational and sequential circuits, this book uses these fundamental building blocks as the basis for designing a RISC-V processor. SystemVerilog and VHDL are integrated throughout the text in examples illustrating the methods and techniques for CAD-based circuit design. The companion website includes a chapter on I/O systems with practical examples that show how to use the RED-V RedBoard, which has a RISC-V microcontroller, to communicate with peripheral devices such as LCDs, Bluetooth radios, and motors. This book will be a valuable resource for students taking a course that combines digital logic and computer architecture or students taking a two-semester sequence in digital logic and computer organization/architecture."--Page 4 of cover "The newest addition to the Harris and Harris family of Digital design and computer architecture books, this RISC-V edition covers the fundamentals of digital logic design and reinforces logic concepts through the design of a RISC-V microprocessor. Combining an engaging and humorous writing style with an updated and hands-on approach to digital design, this book takes the reader from the fundamentals of digital logic to the actual design of a processor. By the end of this book, readers will be able to build their own RISC-V microprocessor and will have a top-to-bottom understanding of how it works. Beginning with digital logic gates and progressing to the design of combinational and sequential circuits, this book uses these fundamental building blocks as the basis for designing a RISC-V processor. SystemVerilog and VHDL are integrated throughout the text in examples illustrating the methods and techniques for CAD-based circuit design. The companion website includes a chapter on I/O systems with practical examples that show how to use SparkFun's RED-V RedBoard to communicate with peripheral devices such as LCDs, Bluetooth radios, and motors."--Page 4 de la couverture
دانلود کتاب Цифровая схемотехника и архитектура компьютера: RISC-V