Дэвид М. Харрис Сара Л. Харрис Цифровая схемотехника и архитектура компьютера. Второе издание

Недавно Юрий Панчул, один из сотрудников MIPS, решил с толкача организовать большое дело — перевести на русский язык один из толковых современных американских учебников по цифровой электронике. Благодаря его организации и активным действиям собралась внушительная команда русскоязычных профессионалов, которые за какие то 4 месяца осилили эту задачу, родив 1600 страничный учебник (на самом деле в исходной книжке страниц раза так в два поменьше будет, тут просто верстка оптимизирована под чтение с планшета). Подробней об этом можно прочитать на Хабре

Я же просто обращаю ваше внимание на сей замечательный труд. Книга реально толковая, начинает с нуля, с того что такое нолик и единичка, а заканчивает конвейерными процессорами. Причем все разобрано на HDL, начиная с простейших блоков. Есть задачи и вопросы для самопроверки. В общем, если ее вдумчиво прочитать и выполнить все задания, то потом родить какой-нибудь свой собственный микроконтроллер в недрах ПЛИС будет вполне посильной задачей.

Хорошо разобрана дискретная логика и ее синтез. Основные математические операции с целыми, а также числами с плавающей точкой. Дано беглое введение в VDHL и Verilog, а дальше идет сборка на HDL разных сумматоров, счетчиков, АЛУ и прочих потрохов процессора.

Содержание:

Глава 1 От нуля до единицы ………………………………………………………… 2
1.1 План игры …………………………………………………………………………………………. 3
1.2 Искусство управления сложностью ……………………………………………………… 5
1.2.1 Абстракция ……………………………………………………………………………….. 6
1.2.2 Конструкторская дисциплина …………………………………………………….. 11
1.2.3 Три базовых принципа ……………………………………………………………… 13
1.3 Цифровая абстракция ……………………………………………………………………… 18
1.4 Системы счисления …………………………………………………………………………. 24
1.4.1 Десятичная система счисления …………………………………………………. 24
1.4.2 Двоичная система счисления ……………………………………………………. 25
1.4.3 Шестнадцатеричная система счисления ……………………………………. 29
1.4.4 Байт, полубайт и «весь этот джаз» ……………………………………………. 33
1.4.5 Сложение двоичных чисел ……………………………………………………….. 36
1.4.6 Знак двоичных чисел ……………………………………………………………….. 39
1.5 Логические элементы ………………………………………………………………………. 50
1.5.1 Логический вентиль НЕ …………………………………………………………….. 51
1.5.2 Буфер……………………………………………………………………………………… 52
1.5.3 Логический вентиль И ………………………………………………………………. 54
1.5.4 Логический вентиль ИЛИ ………………………………………………………….. 55
1.5.5 Другие логические элементы с двумя входными сигналами ………… 56
1.5.6 Логические элементы с количеством входов больше двух …………… 59
1.6 За пределами цифровой абстракции …………………………………………………. 62
1.6.1 Напряжение питания ………………………………………………………………… 62
1.6.2 Логические уровни……………………………………………………………………. 63
1.6.3 Допускаемые Уровни Шумов …………………………………………………….. 64
1.6.4 Передаточная Характеристика ………………………………………………….. 67
1.6.5 Статическая Дисциплина ………………………………………………………….. 68
1.7 КМОП транзисторы* …………………………………………………………………………. 73
1.7.1 Полупроводники ………………………………………………………………………. 75
1.7.2 Диоды……………………………………………………………………………………… 77
1.7.3 Конденсаторы ………………………………………………………………………….. 78
1.7.4 n-МОП и p-МОП-транзисторы ……………………………………………………. 80
1.7.5 Логический вентиль НЕ на КМОП-транзисторах ………………………….. 90
1.7.6 Другие логические вентили на КМОП-транзисторах ……………………. 92
1.7.7 Передаточный логический вентиль ……………………………………………. 99
1.7.8 Псевдо n-МОП-Логика …………………………………………………………….. 100
1.8 Потребляемая мощность ………………………………………………………………… 103
1.9 Краткий обзор главы 1 и того, что нас ждет впереди …………………………. 106
Упражнения …………………………………………………………………………………… 111
Вопросы для собеседования …………………………………………………………… 142

Глава 2 Проектирование комбинационной логики……………………. 144
2.1 Введение ………………………………………………………………………………………. 145
2.2 Булевы уравнения………………………………………………………………………….. 153
2.2.1 Терминология ………………………………………………………………………… 153
2.2.2 Дизъюнктивная форма ……………………………………………………………. 154
2.2.3 Конъюнктивная форма ……………………………………………………………. 159
2.3 Булева алгебра ……………………………………………………………………………… 161
2.3.1 Аксиомы ………………………………………………………………………………… 162
2.3.2 Теоремы одной переменной ……………………………………………………. 163
2.3.3 Теоремы с несколькими переменными …………………………………….. 167
2.3.4 Правда обо всем этом…………………………………………………………….. 172
2.3.5 Упрощение уравнений ……………………………………………………………. 174
2.4 От логики к логическим элементам ………………………………………………….. 178
2.5 Многоуровневая комбинационная логика …………………………………………. 186
2.5.1 Минимизация аппаратуры ………………………………………………………. 187
2.5.2 Перемещение инверсии ………………………………………………………….. 190
2.6 Что за x и z? ………………………………………………………………………………….. 196
2.6.1 Недопустимое значение: Х ……………………………………………………… 196
2.6.2 Третье состояние: Z ……………………………………………………………….. 198
2.7 Карты карно …………………………………………………………………………………… 202
2.7.1 Думайте об овалах …………………………………………………………………. 205
2.7.2 Логическая минимизация на картах Карно………………………………… 207
2.7.3 Безразличные переменные …………………………………………………….. 215
2.7.4 Подводя итоги ……………………………………………………………………….. 217
2.8 Базовые комбинационные блоки……………………………………………………… 218
2.8.1 Мультиплексоры …………………………………………………………………….. 218
2.8.2 Дешифраторы ……………………………………………………………………….. 228
2.9 Временные характеристики …………………………………………………………….. 231
2.9.1 Задержка распространения и задержка реакции ……………………….. 232
2.9.2 Импульсные помехи ……………………………………………………………….. 242
2.10 Резюме …………………………………………………………………………………………. 246
Упражнения …………………………………………………………………………………… 250
Вопросы для собеседования …………………………………………………………… 266

Глава 3 Проектирование последовательностной логики …………. 269
3.1 Введение ………………………………………………………………………………………. 270
3.2 Защелки и триггеры ……………………………………………………………………….. 271
3.2.1 RS-триггер …………………………………………………………………………….. 274
3.2.2 D-защелка ……………………………………………………………………………… 280
3.2.3 D-Триггер ………………………………………………………………………………. 282
3.2.4 Регистр………………………………………………………………………………….. 285
3.2.5 Триггер с функцией разрешения ……………………………………………… 286
3.2.6 Триггер с функцией сброса ……………………………………………………… 287
3.2.7 Проектирование триггеров и защелок на транзисторном уровне … 289
3.2.8 Общий обзор …………………………………………………………………………. 293
3.3 Проектирование синхронных логических схем ………………………………….. 295
3.3.1 Некоторые проблемные схемы ……………………………………………….. 295
3.3.2 Синхронные последовательностные схемы ……………………………… 298
3.3.3 Синхронные и асинхронные схемы ………………………………………….. 305
3.4 Конечные автоматы ……………………………………………………………………….. 306
3.4.1 Пример проектирования конечного автомата ……………………………. 307
3.4.2 Кодирование состояний ………………………………………………………….. 320
3.4.3 Автоматы Мура и Мили …………………………………………………………… 327
3.4.4 Декомпозиция конечных автоматов …………………………………………. 334
3.4.5 Восстановление конечных автоматов по электрической схеме ….. 338
3.4.6 Обзор конечных автоматов ……………………………………………………… 345
3.5 Синхронизация последовательностных схем ……………………………………. 346
3.5.1 Динамическая дисциплина ……………………………………………………… 349
3.5.2 Временные характеристики системы ……………………………………….. 351
3.5.3 Расфазировка тактовых сигналов ……………………………………………. 364
3.5.4 Метастабильность ………………………………………………………………….. 371
3.5.5 Синхронизаторы …………………………………………………………………….. 375
3.5.6 Вычисление времени разрешения …………………………………………… 380
3.6 Параллелизм …………………………………………………………………………………. 388
3.7 Резюме …………………………………………………………………………………………. 396
Упражнения …………………………………………………………………………………… 399
Вопросы для собеседования …………………………………………………………… 417

Глава 4 Языки описания аппаратуры ……………………………………….. 420
4.1 Введение ………………………………………………………………………………………. 421
4.1.1 Модули ………………………………………………………………………………….. 422
4.1.2 Происхождение языков SystemVerilog и VHDL ………………………….. 425
4.1.3 Симуляция и Синтез ………………………………………………………………. 427
4.2 Комбинационная логика………………………………………………………………….. 433
4.2.1 Битовые операторы………………………………………………………………… 433
4.2.2 Комментарии и пробелы …………………………………………………………. 439
4.2.3 Операторы сокращения ………………………………………………………….. 440
4.2.4 Условное присваивание ………………………………………………………….. 442
4.2.5 Внутренние переменные …………………………………………………………. 449
4.2.6 Приоритет ……………………………………………………………………………… 453
4.2.7 Числа ……………………………………………………………………………………. 456
4.2.8 Z-состояние и X-состояние ……………………………………………………… 459
4.2.9 Манипуляция битами ……………………………………………………………… 465
4.2.10 Задержки ……………………………………………………………………………… 466
4.3 Структурное моделирование …………………………………………………………… 469
4.4 Последовательностная логика ………………………………………………………… 478
4.4.1 Регистры ……………………………………………………………………………….. 478
4.4.2 Регистры со сбросом ………………………………………………………………. 483
4.4.3 Регистры с сигналом разрешения ……………………………………………. 488
4.4.4 Группы регистров …………………………………………………………………… 490
4.4.5 Защелки ………………………………………………………………………………… 493
4.5 И снова комбинационная логика ……………………………………………………… 496
4.5.1 Операторы case …………………………………………………………………….. 502
4.5.2 Операторы if ………………………………………………………………………….. 508
4.5.3 Таблицы истинности с незначащими битами ……………………………. 512
4.5.4 Блокирующие и неблокирующие присваивания ………………………… 515
4.6 Конечные автоматы ……………………………………………………………………….. 525
4.7 Типы данных* ………………………………………………………………………………… 537
4.7.1 SystemVerilog …………………………………………………………………………. 537
4.7.2 VHDL …………………………………………………………………………………….. 540
4.8 Параметризованные модули* ………………………………………………………….. 547
4.9 Среда тестирования ………………………………………………………………………. 556
4.10 Резюме …………………………………………………………………………………………. 569
Упражнения …………………………………………………………………………………… 571
Вопросы для собеседования …………………………………………………………… 594

Глава 5 Цифровые функциональные узлы ………………………………. 596
5.1 Введение ………………………………………………………………………………………. 597
5.2 Арифметические схемы ………………………………………………………………….. 598
5.2.1 Сложение ………………………………………………………………………………. 598
5.2.2 Вычитание …………………………………………………………………………….. 616
5.2.3 Компараторы …………………………………………………………………………. 618
5.2.4 АЛУ……………………………………………………………………………………….. 622
5.2.5 Схемы сдвига и циклического сдвига ……………………………………….. 626
5.2.6 Умножение …………………………………………………………………………….. 629
5.2.7 Деление ………………………………………………………………………………… 633
5.2.8 Дополнительная литература …………………………………………………… 635
5.3 Представление чисел …………………………………………………………………….. 636
5.3.1 Числа с фиксированной точкой ……………………………………………….. 636
5.3.2 Числа с плавающей точкой ……………………………………………………… 639
5.4 Функциональные узлы последовательностной логики ……………………….. 649
5.4.1 Счетчики ……………………………………………………………………………….. 649
5.4.2 Сдвигающие регистры ……………………………………………………………. 651
5.5 Матрицы памяти…………………………………………………………………………….. 658
5.5.1 Обзор ……………………………………………………………………………………. 659
5.5.2 Динамическое ОЗУ (DRAM) …………………………………………………….. 668
5.5.3 Статическое ОЗУ (SRAM) ……………………………………………………….. 670
5.5.4 Площадь и задержки ………………………………………………………………. 670
5.5.5 Регистровые файлы ……………………………………………………………….. 672
5.5.6 Постоянное Запоминающее Устройство …………………………………… 673
5.5.7 Реализация логических функций с использованием матриц
памяти ………………………………………………………………………………… 681
5.5.8 Языки описания аппаратуры и память ……………………………………… 682
5.6 Матрицы логических элементов ………………………………………………………. 687
5.6.1 Программируемые логические матрицы …………………………………… 688
5.6.2 Программируемые пользователем матрицы логических
элементов …………………………………………………………………………… 691
5.6.3 Схемотехника матриц …………………………………………………………….. 703
5.7 Резюме …………………………………………………………………………………………. 707
Упражнения …………………………………………………………………………………… 710
Вопросы для собеседования …………………………………………………………… 732

Глава 6 Архитектура …………………………………………………………………. 734
6.1 Предисловие …………………………………………………………………………………. 735
6.2 Язык ассемблера …………………………………………………………………………… 740
6.2.1 Инструкции ……………………………………………………………………………. 741
6.2.2 Операнды: регистры, память и константы ………………………………… 745
6.3 Машинный язык ……………………………………………………………………………… 762
6.3.1 Инструкции типа R …………………………………………………………………. 763
6.3.2 Инструкции типа l …………………………………………………………………… 766
6.3.3 Инструкции типа J ………………………………………………………………….. 770
6.3.4 Расшифровываем машинные коды ………………………………………….. 771
6.3.5 Могущество хранимой программы …………………………………………… 772
6.4 Программирование ………………………………………………………………………… 776
6.4.1 Арифметические/логические инструкции ………………………………….. 776
6.4.2 Переходы ………………………………………………………………………………. 786
6.4.3 Условные операторы ……………………………………………………………… 791
6.4.4 Зацикливаемся ………………………………………………………………………. 797
6.4.5 Массивы ………………………………………………………………………………… 803
6.4.6 Вызовы функций…………………………………………………………………….. 815
6.5 Режимы адресации ………………………………………………………………………… 838
6.6 Камера, мотор! Компилируем, ассемблируем и загружаем ………………… 845
6.6.1 Карта памяти …………………………………………………………………………. 845
6.6.2 Трансляция и запуск программы ……………………………………………… 851
6.7 Добавочные сведения* …………………………………………………………………… 861
6.7.1 Псевдокоманды ……………………………………………………………………… 861
6.7.2 Исключения …………………………………………………………………………… 863
6.7.3 Команды для чисел со знаком и без знака………………………………… 867
6.7.4 Команды для работы с числами с плавающей точкой ……………….. 870
6.8 Живой пример: архитектура х86* …………………………………………………….. 874
6.8.1 Регистры x86 …………………………………………………………………………. 877
6.8.2 Операнды x86 ………………………………………………………………………… 878
6.8.3 Флаги состояния …………………………………………………………………….. 881
6.8.4 Команды х86 ………………………………………………………………………….. 883
6.8.5 Кодировка команд х86 …………………………………………………………….. 887
6.8.6 Другие особенности х86 ………………………………………………………….. 890
6.8.7 Оглядываясь назад ………………………………………………………………… 892
6.9 Резюме …………………………………………………………………………………………. 893
Упражнения …………………………………………………………………………………… 896
Вопросы для собеседования …………………………………………………………… 920

Глава 7 Микроархитектура ……………………………………………………….. 923
7.1 Введение ………………………………………………………………………………………. 924
7.1.1 Архитектурное состояние и система команд …………………………….. 925
7.1.2 Процесс разработки ……………………………………………………………….. 927
7.1.3 Микроархитектуры MIPS …………………………………………………………. 932
7.2 Анализ производительности …………………………………………………………… 934
7.3 Однотактный процессор …………………………………………………………………. 938
7.3.1 Однотактный тракт данных ……………………………………………………… 939
7.3.2 Однотактное устройство управления ……………………………………….. 951
7.3.3 Дополнительные команды ………………………………………………………. 957
7.3.4 Анализ производительности ……………………………………………………. 962
7.4 Многотактный процессор ………………………………………………………………… 966
7.4.1 Многотактный тракт данных ……………………………………………………. 967
7.4.2 Многотактное устройство управления ……………………………………… 980
7.4.3 Дополнительные команды ………………………………………………………. 998
7.4.4 Оценка производительности …………………………………………………. 1003
7.5 Конвейерный процессор ……………………………………………………………….. 1007
7.5.1 Конвейерный тракт данных ……………………………………………………. 1012
7.5.2 Конвейерное устройство управления ……………………………………… 1016
7.5.3 Конфликты …………………………………………………………………………… 1018
7.5.4 Дополнительные команды …………………………………………………….. 1038
7.5.5 Оценка производительности …………………………………………………. 1040
7.6 Пишем процессор на hdl* ……………………………………………………………… 1044
7.6.1 Однотактный процессор ……………………………………………………….. 1046
7.6.2 Универсальные строительные блоки ……………………………………… 1059
7.6.3 Тестовое окружение ……………………………………………………………… 1068
7.7 Исключения* ………………………………………………………………………………… 1079
7.8 Улучшенные микроархитектуры* …………………………………………………… 1086
7.8.1 Длинные конвейеры ……………………………………………………………… 1087
7.8.2 Предсказание условных переходов ……………………………………….. 1091
7.8.3 Суперскалярный процессор …………………………………………………… 1096
7.8.4 Процессор с внеочередным выполнением команд ………………….. 1102
7.8.5 Переименование регистров …………………………………………………… 1109
7.8.6 SIMD ……………………………………………………………………………………. 1112
7.8.7 Многопоточность ………………………………………………………………….. 1114
7.8.8 Симметричные мультипроцессоры ………………………………………… 1117
7.8.9 Гетерогенные мультипроцессоры ………………………………………….. 1120
7.9 Живой пример: микроархитектура x86 ……………………………………………. 1127
7.10 Резюме ……………………………………………………………………………………….. 1139
Упражнения …………………………………………………………………………………. 1143
Вопросы для собеседования …………………………………………………………. 1156

Глава 8 Иерархия памяти и подсистема ввода-вывода …………. 1158
8.1 Введение …………………………………………………………………………………….. 1159
8.2 Анализ производительности систем памяти …………………………………… 1170
8.3 Кэш-память ………………………………………………………………………………….. 1174
8.3.1 Какие данные хранятся в кэш-памяти? …………………………………… 1175
8.3.2 Как найти данные в кэш-памяти? …………………………………………… 1177
8.3.3 Какие данные заместить в кэш-памяти? …………………………………. 1196
8.3.4 Улучшенная кэш-память* ………………………………………………………. 1198
8.3.5 Эволюция кэш-памяти процессоров MIPS ………………………………. 1206
8.4 Виртуальная память …………………………………………………………………….. 1208
8.4.1 Трансляция адресов …………………………………………………………….. 1214
8.4.2 Таблица страниц ………………………………………………………………….. 1218
8.4.3 Буфер ассоциативной трансляции …………………………………………. 1223
8.4.4 Защита памяти …………………………………………………………………….. 1227
8.4.5 Стратегии замещения страниц*……………………………………………… 1228
8.4.6 Многоуровневые таблицы страниц* ……………………………………….. 1230
8.5 Системы ввода-вывода ………………………………………………………………… 1236
8.6 Ввод-вывод во встроенных системах …………………………………………….. 1241
8.6.1 Микроконтроллер PIC32MX675F512H …………………………………….. 1243
8.6.2 Цифровой ввод-вывод общего назначения …………………………….. 1254
8.6.3 Последовательный ввод-вывод …………………………………………….. 1259
8.6.4 Таймеры ……………………………………………………………………………… 1288
8.6.5 Прерывания …………………………………………………………………………. 1292
8.6.6 Аналоговый ввод-вывод ……………………………………………………….. 1297
8.6.7 Другие внешние устройства микроконтроллера ………………………. 1313
8.7 Интерфейсы ввода-вывода персональных компьютеров …………………. 1360
8.7.1 USB …………………………………………………………………………………….. 1364
8.7.2 PCI и PCI Express …………………………………………………………………. 1366
8.7.3 Память DDR3 ……………………………………………………………………….. 1367
8.7.4 Сеть ……………………………………………………………………………………. 1368
8.7.5 SATA …………………………………………………………………………………… 1370
8.7.6 Подключения к ПК ………………………………………………………………… 1371
8.8 Живой пример: системы памяти и ввода-вывода семейства х86 ………. 1377
8.8.1 Системы кэш-памяти процессоров семейства х86 …………………… 1377
8.8.2 Виртуальная память х86 ……………………………………………………….. 1383
8.8.3 Программируемый ввод-вывод х86 ………………………………………… 1385
8.9 Резюме ……………………………………………………………………………………….. 1386
Упражнения …………………………………………………………………………………. 1390
Вопросы для собеседования …………………………………………………………. 1409

Приложение A Реализация цифровых систем ……………………… 1410
A.1 Введение …………………………………………………………………………………….. 1411
A.2 Логические микросхемы серии 74xx……………………………………………….. 1412
A.2.1 Логические элементы …………………………………………………………… 1413
A.2.2 Другие логические функции…………………………………………………… 1415
A.3 Программируемая логика ……………………………………………………………… 1415
A.3.1 PROM …………………………………………………………………………………. 1419
A.3.2 Блоки PLA ……………………………………………………………………………. 1421
A.3.3 FPGA ………………………………………………………………………………….. 1422
A.4 Программируемая логика ……………………………………………………………… 1428
A.5 Заказные специализированные интегральные схемы ……………………… 1430
A.6 Работа с документацией ……………………………………………………………….. 1439
A.7 Семейства логических элементов ………………………………………………….. 1445
A.8 Корпуса и монтаж интегральных схем ……………………………………………. 1454
A.8.1 Согласованная нагрузка ……………………………………………………….. 1457
A.8.2 Нагрузка холостого хода……………………………………………………….. 1462
A.8.3 Нагрузка короткого замыкания ………………………………………………. 1465
A.8.4 Рассогласованная нагрузка …………………………………………………… 1467
A.8.5 Когда нужно применять модели линии передачи …………………….. 1473
A.8.6 Правильное подключение нагрузки к линии передачи …………….. 1474
A.8.7 Вывод формулы для Z0* ………………………………………………………. 1477
A.8.8 Вывод формулы для коэффициента отражения* ……………………. 1480
A.8.9 Подводя итог ……………………………………………………………………….. 1482

A.9 Экономика …………………………………………………………………………………… 1485

Приложение B Инструкции архитектуры MIPS ………………………. 1490

Приложение C Программирование на языке Си ……………………. 1502
C.1 Введение …………………………………………………………………………………….. 1503
C.2 Добро пожаловать в язык Си …………………………………………………………. 1508
Оглавление xxv
C.2.1 Структура программы на языке СИ ……………………………………….. 1510
C.2.2 Запуск Си-программы …………………………………………………………… 1512
C.3 Компиляция …………………………………………………………………………………. 1514
C.3.1 Комментарии ……………………………………………………………………….. 1515
C.3.2 #define …………………………………………………………………………….. 1516
C.3.3 #include …………………………………………………………………………… 1519
C.4 Переменные ………………………………………………………………………………… 1521
C.4.1 Базовые типы данных…………………………………………………………… 1523
C.4.2 Глобальные и локальные переменные…………………………………… 1527
C.4.3 Инициализация переменных …………………………………………………. 1530
C.5 Операции …………………………………………………………………………………….. 1532
C.6 Вызовы функций ………………………………………………………………………….. 1538
C.7 Управление последовательностью выполнения действий ……………….. 1544
C.7.1 Условные операторы ……………………………………………………………. 1544
C.7.2 Циклы …………………………………………………………………………………. 1548
C.8 Другие типы данных ……………………………………………………………………… 1553
C.8.1 Указатели ……………………………………………………………………………. 1553
C.8.2 Массивы ……………………………………………………………………………… 1557
C.8.3 Символы……………………………………………………………………………… 1566
C.8.4 Строки символов …………………………………………………………………. 1568
C.8.5 Структуры ……………………………………………………………………………. 1572
C.8.6 * Оператор typedef …………………………………………………………….. 1576
C.8.7 Динамическое распределение памяти …………………………………… 1578
Оглавление xxvi
C.8.8 Связные списки ……………………………………………………………………. 1580
C.9 Стандартная библиотека языка C ………………………………………………….. 1585
C.9.1 stdio ………………………………………………………………………………… 1586
C.9.2 stdlib ………………………………………………………………………………. 1596
C.9.3 math ………………………………………………………………………………….. 1601
C.9.4 string ………………………………………………………………………………. 1602
C.10 Компилятор и опции командной строки ………………………………………….. 1603
C.10.1 Компиляция нескольких исходных c-файлов ………………………… 1603
C.10.2 Опции компилятора ……………………………………………………………. 1603
C.10.3 Аргументы командной строки ………………………………………………. 1605
C.11 Типичные ошибки …………………………………………………………………………. 1606
Литература для дальнейшего чтения ………………………………………. 1619

Лушче утащить книжку можно с оригинального сайта проекта. Тем самым вы дадите обратную связь авторам и команде переводившей этот труд. Регистрация там правда своеобразная

Юрий Панчул:

Как загрузить? К сожалению, не одним кликом. Сначало надо зарегистрироваться в пользовательском коммьюнити Imagination Technologies, потом зарегистрироваться в образовательных программах на том же сайте, после чего наконец скачать:

Последовательность регистрации:
1) зарегистрироваться в коммьюнити community.imgtec.com/register
2) подтвердить емейл
3) login в коммьюнити
4) пойти в imagination university program — community.imgtec.com/university/university-registration
5) пойти в меню University | Join IUP
6) заполнить
7) пойти в community.imgtec.com/downloads/digital-design-and-computer-architecture-russian-edition и наконец скачать

Также в поле телефонного кода страны есть баг — вместо «максимум три символа» она требует «минимум три символа», из-за чего в Великобритании сайт работает (+44), а в России и США — нет (код +7 и +1). Напишите туда что-нибудь абстрактное.

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

Но, если вам таки это не удалось, то можно попробовать дернуть отсюда:
Зеркало 1
Зеркало 2
Зеркало 3

21 thoughts on “Дэвид М. Харрис Сара Л. Харрис Цифровая схемотехника и архитектура компьютера. Второе издание”

  1. Хочется верить, что это и есть царский путь в геометрию.
    Но верится с трудом. Неужели оно того действительно стоит? Вот так вот — 1600 страниц, и они перевешивают всё, что можно было найти до этого?
    К тому же, какая именно архитектура компьютера имеется в виду? Какого компьютера? Интереснее не архитектура, а схемотехника, которая меняется со скоростью пули.

    1. Универсальной книги нет. Но тут очень последовательно и систематично все изложено. Так сказать непрерывно.

      За основу берется конечно же MIPS так как авторы, как я понял, оттуда все. А схемотехника там есть, я же не зря упор на HDL в описании давал. Вот оно там все и на HDL и написано. Это и есть современная схемотехника. Конечно никто тебе не покажет HDL реального MIPS, но каких то базовых блоков — почему нет? А дальше твори и придумывай свое! Может выстрогаешь своего Буратину. Не боги же горшки обжигают, вон товарищи сели и поприколу запилили Пропеллер. А кто то рожает майнеры биткоинов.

  2. Да это ясно, что нет. Но меня всегда слегка раздражало желание автора вынести в заглавие книги то, чего там нет, в маркетинговых целях. Достаточно вспомнить печально известного Скотта Мюллера, который обозвал свою эпопею «Ремонт и модернизация ПК». в которой ничего о настоящем ремонте нет вообще. (Ещё умиляет посвящения-предисловия на 5 страниц, в многочисленные адреса, не исключая тёщу и любимую кошку.)
    К тому же, я не настолько амбициозен, чтобы придумывать свой софтовый контроллер/процессор. Хотя, если большой брат и дальше будет наглеть, то придётся.

    Скачал для полноты.

            1. Это просто. Берешь и начинаешь листать. Если понимаешь о чем написано на странице — листаешь, как только видишь, что пошла какая то непонятная херь — вчитываешься и так до конца :)

              1. Как это ни странно, я всегда так делал. Вопрос только, чей конец придёт раньше.
                Но прочь шутки. Просмотрел по вертикали, и увидел там нешуточную дискретную математику, вплоть до теорем об алгебрах Жигалкина. Сомнительно, что вдаваться в такие дебри нужно, но подход и впрямь солидный.

  3. «родив 1600 страничный учебник»
    Осталось научитсья читать…
    А, если серьёзно, наконец-то появилась хорошая возможность обновить устаревшие сведения о цифровой схемотехнике, начало которым положила книжка «Микросхемы и их применение» 1984 года. Я того же года.

  4. Чисто для поиграться, на ноуте, в виртуалке стоит XP, вней proteus. Дак вот логические элементы довольно шустро прощитывает, ram и rom не проблема, вполне можно в реальном времени смотреть на собственный «процессор» 8 бит 40 кГц. Так, от нечего делать…

  5. Книга замечательная. Мне, как математику и программисту, она была совершенно понятна.
    Одна лишь проблема: после её прочтения не получается сесть и начинать жахать свои микросхемки. Читаю какие-нибудь статьи «для новичков», а там пишут:
    «естественно, нельзя обмотку реле напрямую подключить к выходу МК (слишком высокий ток), поэтому добавим необходимую «обвязку» (резистор, транзистор и диод)» — а мне совершенно не ясно, почему нельзя и что за обвязка, поэтому приходится штудировать разрозненные статьи вроде вашей про конкретные методики соединения электродеталей. Не могли бы посоветовать солидное чтиво про эту часть?

  6. А подскажите аналогичную по способу изложения книгу, только по аналоговой электронике, в частности, по аудио?

    У меня задача: научиться делать звуковую карту для компьютера. Т.е. я понимаю, что мне нужен будет модуль ЦАП с какой-нибудь развязкой на USB, какой-то усилитель для вывода на колонки, и какой-то источник питания для всего этого. И вот я три дня уже не могу найти книгу, в которой были бы «зацепки» для всего этого. Всё, что я встречаю — это или море теории без малейших намеков, как это все применять к моей задаче. Да взять того же Хоровица и Хилла — вот эти все транзисторы, ОУ и прочее, я смотрю на них, как баран на новые ворота, и не понимаю, как это применять к моей задаче? В какой последовательности? Или мы имеем обратное — кучу практических примеров без какого бы то ни было нормального объяснения, как это всё работает и почему оно спроектировано именно так, а не как-то по-другому.

    Вот чем хороша книжка Харрисов — в ней цифровая электроника изложена от и до. Я ее прочитал и я знаю, что теперь смогу самостоятельно разобраться с деталями и понажечь плисин, каких надо. Она одновременно и теоретически хороша, и очень сильно пошагово завязана на практику. И что же, неужели нет ничего столь же всеобъемлющего по аудиотехнике?

  7. Книгу интересная,спасибо за труд. Но немного не логично устроено повествование,и видно что при переводе не по главам распределялись все участники,есть ошибки ,то ли перевода,то ли и в оригинале так же. Отсутствует некоторые рисунки и выражении,может при форматирование в PDF были утеряны.
    Не совсем понятны иногда и приводимые там примеры.
    В общем,,чтобы понимать эту книгу надо не только знать английский,но можно сказать и уметь мыслить по-английски.
    Так же не понравилось самолюбование авторов книги,не переводчиков, выраженная в якобы юморе.
    Зачем это в таких книгах,до сих пор не пойму.
    Ошибок и мелких недочётов много,как-нить напишу какие именно.

Добавить комментарий