Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 634932)
Контекстум
Руконтекст антиплагиат система

Цифровая схемотехника и архитектура компьютера: RISC-V (6000,00 руб.)

0   0
Первый авторМ. Харрис Дэвид
АвторыЛ. Харрис Сара
ИздательствоМ.: ДМК Пресс
Страниц812
ID811172
АннотацияВ книге представлен уникальный и современный подход к разработке цифровых устройств. Авторы начинают с цифровых логических элементов, переходят к разработке комбинационных и последовательностных схем, а затем используют эти базовые блоки как основу для самого сложного: разработки настоящего процессора RISC-V. По всему тексту приводятся примеры на языках SystemVerilog и VHDL, иллюстрирующие методы и способы разработки схем с помощью САПР. Изучив эту книгу, читатели смогут разработать свой собственный микропроцессор и получат полное понимание того, как он работает. В книге объединен привлекательный и юмористический стиль изложения с развитым и практичным подходом к разработке цифровых устройств. В издание вошли новые материалы о системах ввода/вывода применительно к процессорам общего назначения как для ПК, так и для микроконтроллеров. Приведены практические примеры интерфейсов периферийных устройств с применением RS-232, SPI, управления двигателями, прерываний, беспроводной связи и аналого-цифрового преобразования. Представлено высокоуровневое описание интерфейсов, включая USB, SDRAM, Wi-Fi, PCI Express и др.
ISBN978-5-97060-961-3 (рус.)
УДК004.2+744.4
ББК32.971.3
М. Харрис, Д. . Цифровая схемотехника и архитектура компьютера: RISC-V / С. . Л. Харрис; Д. . М. Харрис .— Пер. с англ. В. С. Яценкова .— Москва : ДМК Пресс, 2022 .— 812 с. : ил. — ISBN 978-0-12-820064-3 (англ.) .— ISBN 978-5-97060-961-3 (рус.) .— URL: https://rucont.ru/efd/811172 (дата обращения: 29.04.2024)

Предпросмотр (выдержки из произведения)

Цифровая_схемотехника_и_архитектура_компьютера_RISC-V.pdf
Стр.5
Стр.6
Стр.7
Стр.8
Стр.9
Стр.10
Стр.11
Стр.12
Стр.13
Цифровая_схемотехника_и_архитектура_компьютера_RISC-V.pdf
УДК 004.2+744.4 ББК 32.971.3 Х21 Научный редактор: Романов А. Ю., канд. тех. наук, доцент Московского института электроники и математики им. А. Н. Тихонова Национального исследовательского университета «Высшая школа экономики» Сара Л. Харрис, Дэвид Харрис Х21 Цифровая схемотехника и архитектура компьютера: RISC-V / пер. с англ. В. С. Яценкова, А. Ю. Романова; под ред. А. Ю. Романова. – М.: ДМК Пресс, 2022. – 810 с.: ил. ISBN 978-5-97060-961-3 В книге представлен уникальный и современный подход к разработке цифровых устройств. Авторы начинают с цифровых логических элементов, переходят к разработке комбинационных и последовательностных схем, а затем используют эти базовые блоки как основу для самого сложного: разработки настоящего процессора RISC-V. По всему тексту приводятся примеры на языках SystemVerilog и VHDL, иллюстрирующие методы и способы разработки схем с помощью САПР. Изучив эту книгу, читатели смогут разработать свой собственный микропроцессор и получат полное понимание того, как он работает. В книге объединен привлекательный и юмористический стиль изложения с развитым и практичным подходом к разработке цифровых устройств. В издание вошли новые материалы о системах ввода/вывода применительно к процессорам общего назначения как для ПК, так и для микроконт роллеров. Приведены практические примеры интерфейсов периферийных устройств с применением RS-232, SPI, управления двигателями, прерываний, беспроводной связи и аналого-цифрового преобразования. Представлено высокоуровневое описание интерфейсов, включая USB, SDRAM, Wi-Fi, PCI Express и др. Издание будет полезно студентам, инженерам, а также широкому кругу читателей, интересующихся современной схемотехникой. This Russian edition of Digital Design and Computer Architecture: RISC-V Edition (9780128200643) by Sarah Harris & David Harris is published by arrangement with Elsevier Inc. The translation has been undertaken by DMK Press at its sole responsibility. Practitioners and researchers must always rely on their own experience and knowledge in evaluating and using any information, methods, compounds or experiments described herein. Because of rapid advances in the medical sciences, in particular, independent verification of diagnoses and drug dosages should be made. To the fullest extent of the law, no responsibility is assumed by Elsevier, authors, editors or contributors in relation to the translation or for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or from any use or operation of any methods, products, instructions, or ideas contained in the material herein. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. ISBN 978-0-12-820064-3 (англ.) ISBN 978-5-97060-961-3 (рус.) © 2022 Elsevier, Inc. All rights reserved © Перевод, научное редактирование, НИУ ВШЭ, 2022 © Издание, оформление, ДМК Пресс, 2022
Стр.5
Содержание Отзывы на книгу «Цифровая схемотехника и архитектура компьютера. RISC-V» ....................................................................................... 13 Об авторах ........................................................................................................ 14 Предисловие к русскому изданию..................................................................... 15 Предисловие от редактора русского перевода ............................................... 22 Предисловие....................................................................................................... 24 Глава 1 От нуля до единицы 31 1.1. План игры .................................................................................................... 31 1.2. Искусство управления сложностью ............................................................. 32 1.2.1. Абстракция .......................................................................................... 33 1.2.2. Конструкторская дисциплина .............................................................. 35 1.2.3. Три базовых принципа ......................................................................... 36 1.3. Цифровая абстракция .................................................................................. 38 1.4. Системы счисления ...................................................................................... 40 1.4.1. Десятичная система счисления ........................................................... 40 1.4.2. Двоичная система счисления .............................................................. 41 1.4.3. Шестнадцатеричная система счисления ............................................. 43 1.4.4. Байт, полубайт и «весь этот джаз» ...................................................... 45 1.4.5. Сложение двоичных чисел .................................................................. 46 1.4.6. Знак двоичных чисел ........................................................................... 47 1.5. Логические элементы .................................................................................. 53 1.5.1. Логический элемент НЕ ...................................................................... 53 1.5.2. Буфер .................................................................................................. 54 1.5.3. Логический элемент И ........................................................................ 54 1.5.4. Логический элемент ИЛИ ................................................................... 54 1.5.5. Другие логические элементы с двумя входными сигналами ................ 55 1.5.6. Логические элементы с количеством входов больше двух................... 56 1.6. За пределами цифровой абстракции ............................................................ 57 1.6.1. Напряжение питания .......................................................................... 57 1.6.2. Логические уровни .............................................................................. 57 1.6.3. Допускаемые уровни шумов ................................................................ 58 1.6.4. Передаточная характеристика............................................................. 59 1.6.5. Статическая дисциплина ..................................................................... 60 1.7. КМОП-транзисторы ..................................................................................... 62 1.7.1. Полупроводники .................................................................................. 63 1.7.2. Диоды .................................................................................................. 64 1.7.3. Конденсаторы ...................................................................................... 64 1.7.4. n-МОП- и p-МОП-транзисторы............................................................ 65 1.7.5. Логический элемент НЕ на КМОП-транзисторах ................................ 69 1.7.6. Другие логические элементы на КМОП-транзисторах ........................ 69 1.7.7. Передаточный логический элемент ..................................................... 72 1.7.8. Псевдо-n-МОП-логика ......................................................................... 72 1.8. Потребляемая мощность .............................................................................. 73 1.9. Краткий обзор главы 1 и того, что нас ждет впереди .................................... 75 Упражнения ....................................................................................................... 77 Вопросы для собеседования ................................................................................ 89
Стр.6
6 Глава 2 Разработка комбинационной логики 91 2.1. Введение ...................................................................................................... 91 2.2. Логические функции .................................................................................... 95 2.2.1. Терминология ...................................................................................... 95 2.2.2. Дизъюнктивная форма ........................................................................ 96 2.2.3. Конъюнктивная форма ........................................................................ 98 2.3. Булева алгебра ............................................................................................. 99 2.3.1. Аксиомы ............................................................................................ 100 2.3.2. Теоремы одной переменной ............................................................... 100 2.3.3. Теоремы с несколькими переменными .............................................. 102 2.3.4. Доказательство теорем булевой алгебры .......................................... 104 2.3.5. Упрощение логических уравнений .................................................... 105 2.4. От логики к логическим элементам ........................................................... 106 2.5. Многоуровневая комбинационная логика .................................................. 110 2.5.1. Минимизация аппаратных затрат...................................................... 111 2.5.2. Перемещение инверсии ..................................................................... 112 2.6. Что такое X и Z? ........................................................................................ 115 2.6.1. Недопустимое значение: Х ............................................................... 115 2.6.2. Третье состояние: Z ........................................................................... 116 2.7. Карты Карно ............................................................................................... 118 2.7.1. Думайте об овалах ............................................................................. 119 2.7.2. Логическая минимизация на картах Карно ........................................ 120 2.7.3. Безразличные переменные ................................................................ 124 2.7.4. Карты Карно: подведение итогов ....................................................... 124 2.8. Базовые комбинационные блоки ................................................................ 125 2.8.1. Мультиплексоры ............................................................................... 125 2.8.2. Дешифраторы .................................................................................... 129 2.9. Временные характеристики ....................................................................... 131 2.9.1. Задержка распространения и задержка реакции ............................... 131 2.9.2. Импульсные помехи .......................................................................... 136 2.10. Заключение .............................................................................................. 139 Упражнения ..................................................................................................... 140 Вопросы для собеседования .............................................................................. 147 Глава 3 Разработка последовательностной логики 149 3.1. Введение .................................................................................................... 149 3.2. Защелки и триггеры ................................................................................... 150 3.2.1. RS-триггер ......................................................................................... 151 3.2.2. D-защелка .......................................................................................... 154 3.2.3. D-триггер ........................................................................................... 155 3.2.4. Регистр .............................................................................................. 156 3.2.5. Триггер с функцией разрешения........................................................ 156 3.2.6. Триггер с функцией сброса ................................................................ 158 3.2.7. Разработка триггеров и защелок на транзисторном уровне ............... 159 3.2.8. Сравнение защелок и триггеров ........................................................ 160 3.3. Разработка синхронных логических схем .................................................. 161 3.3.1. Некоторые проблемные схемы .......................................................... 161 3.3.2. Синхронные последовательностные схемы ....................................... 163 3.3.3. Синхронные и асинхронные схемы .................................................... 166 3.4. Конечные автоматы .................................................................................... 166 3.4.1. Пример разработки конечного автомата............................................ 167 3.4.2. Кодирование состояний ..................................................................... 173
Стр.7
7 3.4.3. Автоматы Мура и Мили .................................................................... 176 3.4.4. Декомпозиция конечных автоматов .................................................. 180 3.4.5. Восстановление конечных автоматов по электрической схеме ......... 182 3.4.6. Конечные автоматы: подведение итогов ............................................ 185 3.5. Синхронизация последовательностных схем ............................................. 185 3.5.1. Динамическая дисциплина ................................................................ 187 3.5.2. Временные характеристики системы................................................. 188 3.5.3. Расфазировка тактовых сигналов ...................................................... 194 3.5.4. Метастабильность ............................................................................. 197 3.5.5. Синхронизаторы ................................................................................ 199 3.5.6. Вычисление времени разрешения ..................................................... 201 3.6. Параллелизм .............................................................................................. 205 3.7. Заключение ................................................................................................ 209 Упражнения ..................................................................................................... 210 Вопросы для собеседования .............................................................................. 218 Глава 4 Языки описания аппаратуры 221 4.1. Введение .................................................................................................... 221 4.1.1. Модули .............................................................................................. 222 4.1.2. Происхождение языков SystemVerilog и VHDL ................................ 222 4.1.3. Моделирование и синтез ................................................................... 224 4.2. Комбинационная логика ............................................................................. 226 4.2.1. Битовые операторы ........................................................................... 227 4.2.2. Комментарии и пробелы .................................................................... 229 4.2.3. Операторы сокращения ..................................................................... 230 4.2.4. Условное присваивание ..................................................................... 230 4.2.5. Внутренние переменные .................................................................... 233 4.2.6. Приоритет ......................................................................................... 235 4.2.7. Числа ................................................................................................. 235 4.2.8. Z-состояние и X-состояние ................................................................ 237 4.2.9. Манипуляция с битами...................................................................... 239 4.2.10. Задержки ......................................................................................... 239 4.3. Структурное моделирование ...................................................................... 241 4.4. Последовательностная логика ................................................................... 245 4.4.1. Регистры ............................................................................................ 245 4.4.2. Регистры со сбросом .......................................................................... 245 4.4.3. Регистры с сигналом разрешения ...................................................... 248 4.4.4. Группы регистров .............................................................................. 249 4.4.5. Защелки............................................................................................. 250 4.5. И снова комбинационная логика ................................................................ 251 4.5.1. Операторы case ................................................................................. 254 4.5.2. Условный оператор (if) ...................................................................... 256 4.5.3. Таблицы истинности с незначащими битами ..................................... 259 4.5.4. Блокирующие и неблокирующие присваивания ................................ 260 4.6. Конечные автоматы .................................................................................... 264 4.7. Типы данных .............................................................................................. 268 4.7.1. SystemVerilog .................................................................................... 268 4.7.2. VHDL................................................................................................. 269 4.8. Параметризированные модули ................................................................... 272 4.9. Тестбенч .................................................................................................... 275 4.10. Заключение .............................................................................................. 280 Упражнения ..................................................................................................... 281 Упражнения для SystemVerilog .................................................................. 287
Стр.8
8 Упражнения для VHDL ............................................................................... 289 Вопросы для собеседования .............................................................................. 291 Глава 5 Цифровые функциональные узлы 293 5.1. Введение .................................................................................................... 293 5.2. Арифметические схемы ............................................................................. 294 5.2.1. Сложение .......................................................................................... 294 5.2.2. Вычитание ......................................................................................... 302 5.2.3. Компараторы ..................................................................................... 303 5.2.4. Арифметико-логическое устройство.................................................. 304 5.2.5. Схемы сдвига и циклического сдвига................................................. 309 5.2.6. Умножение ........................................................................................ 310 5.2.7. Деление ............................................................................................. 312 5.2.8. Дополнительная литература.............................................................. 313 5.3. Представление чисел ................................................................................. 313 5.3.1. Числа с фиксированной запятой........................................................ 314 5.3.2. Числа с плавающей запятой .............................................................. 315 5.4. Функциональные узлы последовательностной логики ............................... 319 5.4.1. Счетчики ........................................................................................... 319 5.4.2. Сдвиговые регистры .......................................................................... 321 5.5. Матрицы памяти ........................................................................................ 324 5.5.1. Обзор матриц памяти ........................................................................ 324 5.5.2. Динамическое ОЗУ (DRAM) ............................................................. 328 5.5.3. Статическое ОЗУ (SRAM) ................................................................. 328 5.5.4. Площадь и задержки.......................................................................... 329 5.5.5. Регистровые файлы ........................................................................... 330 5.5.6. Постоянное запоминающее устройство ............................................. 330 5.5.7. Реализация логических функций с использованием матриц памяти .... 332 5.5.8. Языки описания аппаратуры и память ............................................... 333 5.6. Матрицы логических элементов ................................................................ 336 5.6.1. Программируемые логические матрицы ............................................ 336 5.6.2. Программируемые пользователем вентильные матрицы ................... 338 5.6.3. Схемотехника матриц ........................................................................ 345 5.7. Заключение ................................................................................................ 346 Упражнения ..................................................................................................... 347 Вопросы для собеседования .............................................................................. 357 Глава 6 Архитектура 359 6.1. Предисловие .............................................................................................. 359 6.2. Язык ассемблера ........................................................................................ 362 6.2.1. Инструкции ....................................................................................... 362 6.2.2. Операнды: регистры, память и константы ......................................... 364 6.3. Программирование .................................................................................... 370 6.3.1. Порядок выполнения программы ....................................................... 371 6.3.2. Арифметические/логические инструкции ........................................ 371 6.3.3. Ветвление программ .......................................................................... 374 6.3.4. Условные операторы ......................................................................... 377 6.3.5. Циклы ................................................................................................ 378 6.3.6. Массив .............................................................................................. 381 6.3.7. Вызовы функций ................................................................................ 385 6.3.8. Псевдокоманды ................................................................................. 398 6.4. Машинный язык ........................................................................................ 400
Стр.9
9 6.4.1. Инструкции типа R ............................................................................401 6.4.2. Инструкции типа I ............................................................................. 403 6.4.3. Инструкции типа S/B .......................................................................404 6.4.4. Инструкции типа U/J .......................................................................407 6.4.5. Кодирование констант ....................................................................... 408 6.4.6. Режимы адресации ............................................................................ 409 6.4.7. Расшифровываем машинные коды ..................................................... 411 6.4.8. Могущество хранимой программы .................................................... 412 6.5. Камера, мотор! Компилируем, ассемблируем и загружаем ........................ 413 6.5.1. Карта памяти ..................................................................................... 414 6.5.2. Директивы ассемблера ...................................................................... 416 6.5.3. Компиляция ....................................................................................... 419 6.5.4. Трансляция ........................................................................................ 421 6.5.5. Компоновка ....................................................................................... 424 6.5.6. Загрузка ............................................................................................ 426 6.6. Добавочные сведения................................................................................. 426 6.6.1. Порядок байтов ................................................................................. 426 6.6.2. Исключения ....................................................................................... 427 6.6.3. Команды для чисел со знаком и без знака .......................................... 431 6.6.4. Команды для работы с числами с плавающей запятой ....................... 433 6.6.5. Сжатые инструкции .......................................................................... 434 6.7. Эволюция архитектуры RISC-V ................................................................. 436 6.7.1. Базовые наборы команд и расширения RISC-V ................................. 436 6.7.2. Сравнение архитектур RISC-V и MIPS .............................................. 437 6.7.3. Сравнение архитектур RISC-V и ARM............................................... 438 6.8. Живой пример: архитектура x86 ................................................................ 439 6.8.1. Регистры x86 ..................................................................................... 440 6.8.2. Операнды x86 .................................................................................... 440 6.8.3. Флаги состояния ............................................................................... 442 6.8.4. Команды x86 ...................................................................................... 442 6.8.5. Кодировка команд х86 ....................................................................... 444 6.8.6. Другие особенности x86 .................................................................... 446 6.8.7. Архитектура х86: подведение итогов ................................................. 447 6.9. Заключение ................................................................................................ 448 Упражнения ..................................................................................................... 449 Вопросы для собеседования .............................................................................. 462 Глава 7 Микроархитектура 465 7.1. Введение .................................................................................................... 465 7.1.1. Архитектурное состояние и система команд ..................................... 466 7.1.2. Процесс разработки ........................................................................... 466 7.1.3. Микроархитектуры RISC-V ............................................................... 469 7.2. Анализ производительности ...................................................................... 470 7.3. Однотактный процессор ............................................................................. 472 7.3.1. Пример программы ............................................................................ 473 7.3.2. Однотактный тракт данных ............................................................... 473 7.3.3. Однотактный блок управления .......................................................... 482 7.3.4. Дополнительные команды ................................................................. 485 7.3.5. Анализ производительности .............................................................. 488 7.4. Многотактный процессор .......................................................................... 490 7.4.1. Многотактный тракт данных ............................................................. 491 7.4.2. Многотактное устройство управления .............................................. 497 7.4.3. Дополнительные команды ................................................................. 509
Стр.10
10 7.4.4. Анализ производительности .............................................................. 512 7.5. Конвейерный процессор ............................................................................. 515 7.5.1. Конвейерный тракт данных ............................................................... 518 7.5.2. Конвейерное устройство управления ................................................ 520 7.5.3. Конфликты ........................................................................................ 520 7.5.4. Анализ производительности .............................................................. 531 7.6. Разрабатываем процессор на HDL ............................................................. 533 7.6.1. Однотактный процессор ................................................................... 535 7.6.2. Универсальные строительные блоки ................................................. 539 7.6.3. Тестбенч ............................................................................................ 542 7.7. Улучшенные микроархитектуры ................................................................ 547 7.7.1. Длинные конвейеры .......................................................................... 548 7.7.2. Микрокоманды .................................................................................. 549 7.7.3. Предсказание условных переходов .................................................... 550 7.7.4. Суперскалярный процессор ............................................................... 552 7.7.5. Процессор с внеочередным выполнением команд ............................. 555 7.7.6. Переименование регистров ............................................................... 558 7.7.7. Многопоточность .............................................................................. 560 7.7.8. Мультипроцессоры ............................................................................ 561 7.8. Живой пример: эволюция микроархитектуры RISC-V ............................... 565 7.9. Заключение ................................................................................................ 569 Упражнения ..................................................................................................... 571 Вопросы для собеседования .............................................................................. 579 Глава 8 Системы памяти 581 8.1. Введение .................................................................................................... 581 8.2. Анализ производительности систем памяти .............................................. 586 8.3. Кеш-память ................................................................................................ 588 8.3.1. Какие данные хранятся в кеш-памяти? .............................................. 589 8.3.2. Как найти данные в кеш-памяти?....................................................... 590 8.3.3. Какие данные заместить в кеш-памяти? ............................................ 599 8.3.4. Улучшенная кеш-память ................................................................... 600 8.4. Виртуальная память ................................................................................... 604 8.4.1. Трансляция адресов ........................................................................... 607 8.4.2. Таблица страниц ................................................................................ 609 8.4.4. Защита памяти .................................................................................. 612 8.4.5. Стратегии замещения страниц .......................................................... 612 8.4.6. Многоуровневые таблицы страниц .................................................... 613 8.5. Заключение ................................................................................................ 616 Эпилог .............................................................................................................. 616 Упражнения ..................................................................................................... 617 Вопросы для собеседования .............................................................................. 624 Глава 9 Ввод/вывод во встраиваемых системах 626 9.1. Введение .................................................................................................... 626 9.2. Отображение ввода/вывода в пространство памяти ................................. 627 9.3. Ввод/вывод во встраиваемых системах .................................................... 629 9.3.1. Плата RED-V ..................................................................................... 629 9.3.2. Система на кристалле FE310-G002.................................................... 631 9.3.3. Цифровой ввод/вывод общего назначения ....................................... 634 9.3.4. Драйверы устройств ввода/вывода ................................................... 638 9.3.5. Последовательный ввод/вывод......................................................... 642
Стр.11
11 9.3.6. Таймеры............................................................................................. 659 9.3.7. Аналоговый ввод/вывод ................................................................... 661 9.3.8. Прерывания ....................................................................................... 669 9.4. Другие внешние устройства микроконтроллера ........................................ 674 9.4.1. Символьные ЖК-дисплеи .................................................................. 674 9.4.2. VGA-монитор .................................................................................... 678 9.4.3. Беспроводная связь Bluetooth ........................................................... 684 9.4.4. Управление двигателями ................................................................... 686 9.5. Заключение ................................................................................................ 698 Приложение А. Реализация цифровых систем 699 А.1. Введение.................................................................................................... 699 А.2. Логические микросхемы серии 74xx ......................................................... 700 А.2.1. Логические элементы ....................................................................... 700 А.2.2. Другие логические функции ............................................................. 701 А.3. Программируемая логика .......................................................................... 703 А.3.1. PROM ..................................................................................................... 704 А.3.2. Блоки PLA......................................................................................... 705 А.3.3. FPGA ................................................................................................ 705 А.4. Заказные специализированные интегральные схемы ................................ 708 А.5. Работа с документацией ............................................................................ 709 А.6. Семейства логических микросхем ............................................................. 714 А.7. Корпуса и монтаж интегральных схем....................................................... 717 А.8. Линии передачи ......................................................................................... 721 A.8.1. Согласованная нагрузка ................................................................... 723 A.8.2. Нагрузка холостого хода ................................................................... 725 A.8.3. Нагрузка короткого замыкания ......................................................... 726 A.8.4. Рассогласованная нагрузка ............................................................... 726 A.8.5. Когда нужно применять модели линии передачи .............................. 729 A.8.6. Правильное подключение нагрузки к линии передачи ....................... 730 A.8.7. Вывод формулы для Z0 ..............................................................................................................................731 A.8.8. Вывод формулы для коэффициента отражения ................................. 733 A.8.9. Линии передачи: подведение итогов ................................................. 733 A.9. Экономика ................................................................................................. 735 Приложение B. Система команд RISC-V Приложение C. Программирование на языке С 738 747 C.1. Введение .................................................................................................... 747 Краткий итог ..................................................................................................... 749 C.2. Добро пожаловать в язык С ....................................................................... 750 C.2.1. Структура программы на языке С ..................................................... 750 C.2.2. Запуск С-программы ......................................................................... 751 Краткий итог ..................................................................................................... 752 C.3. Компиляция ............................................................................................... 752 C.3.1. Комментарии..................................................................................... 753 C.3.2. #define ............................................................................................. 753 C.3.3. #include ......................................................................................... 754 Краткий итог ..................................................................................................... 755 C.4. Переменные ............................................................................................... 756 C.4.1. Базовые типы данных ........................................................................ 756 C.4.2. Глобальные и локальные переменные ............................................... 758
Стр.12
12 C.4.3. Инициализация переменных ............................................................. 759 Краткий итог ..................................................................................................... 759 C.5. Операции ................................................................................................... 760 C.6. Вызовы функций ........................................................................................ 763 C.7. Управление последовательностью выполнения действий ......................... 765 C.7.1. Условные операторы ......................................................................... 765 C.7.2. Циклы ............................................................................................... 767 Краткий итог ..................................................................................................... 769 C.8. Другие типы данных .................................................................................. 770 C.8.1. Указатели ......................................................................................... 770 C.8.2. Массивы ........................................................................................... 772 C.8.3. Символы............................................................................................ 777 C.8.4. Строки символов ............................................................................... 778 C.8.5. Структуры ......................................................................................... 780 C.8.6. Оператор typedef ........................................................................... 781 C.8.7. Динамическое распределение памяти ............................................... 783 C.8.8. Связные списки................................................................................. 784 Краткий итог ..................................................................................................... 786 C.9. Стандартная библиотека языка C .............................................................. 786 C.9.1. stdio ............................................................................................... 787 C.9.2. stdlib ............................................................................................. 791 C.9.3. math ................................................................................................. 794 C.9.4. string ............................................................................................. 794 C.10. Компилятор и опции командной строки ................................................... 795 C.10.1. Компиляция нескольких исходных c-файлов ................................... 795 C.10.2. Опции компилятора ........................................................................ 795 C.10.3. Аргументы командной строки ......................................................... 796 C.11. Типичные ошибки .................................................................................... 797 Дополнительная литература Предметный указатель 801 803
Стр.13

Облако ключевых слов *


* - вычисляется автоматически
Антиплагиат система на базе ИИ