Микропроцессоры. Теория и практика проектирования
Покупка
Новинка
Основная коллекция
Тематика:
Программирование и алгоритмизация
Издательство:
СОЛОН-Пресс
Автор:
Ерохин Владимир Васильевич
Год издания: 2023
Кол-во страниц: 256
Дополнительно
Вид издания:
Монография
Уровень образования:
Профессиональное образование
ISBN: 978-5-91359-541-6
Артикул: 811511.03.99
В книге дается представление о методах, средствах и алгоритмах, используемых в процессе проектирования микропроцессоров, рассматриваются подходы к разработке архитектуры микропроцессоров общего назначения, их основных блоков, проводится анализ методов построения рассматриваемых блоков с точки зрения теории алгоритмов. Это позволяет дать предварительную оценку описываемых методов и алгоритмов как с точки зрения занимаемой площади, так и по их быстродействию - основных показателей качества проектирования электронной аппаратуры. В книге приведены RTL коды базовых алгоритмов, используемые для построения блоков микропроцессоров, что позволяет синтезировать их принципиальные электрические схемы средствами стандартных САПР. Описанные в книге методы и алгоритмы дают возможность сильно упростить самостоятельную разработку как архитектуры микропроцессоров в целом, так и разработку их отдельных блоков. Книга будет полезна как профессионалам - проектировщикам систем на кристалле в виде больших интегральных схем (СБИС) и на базе программируемых логических схем (ПЛИС), так и студентам старших курсов направлений «Вычислительная техника». «Информатика», программистам микропроцессорных систем и всем, кто интересуется внутренним устройством микропроцессоров. В книге даются упражнения для самостоятельной работы. Разработайте свой микропроцессор!
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 00.03.31: Электроника и электротехника
- 11.03.01: Радиотехника
- 11.03.04: Электроника и наноэлектроника
- ВО - Магистратура
- 11.04.01: Радиотехника
- 11.04.04: Электроника и наноэлектроника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
В. В. Ерохин Микропроцессоры Теория и практика проектирования СОЛОН-Пресс Москва 2023
УДК 621.3 ББК 32.97, 32.971 Е78 Ерохин В. В. Микропроцессоры. Теория и практика проектирования. — М.: СОЛОН-Пресс, 2023. — 256 с. ISBN 978-5-91359-541-6 В книге дается представление о методах, средствах и алгоритмах, используемых в процессе проектирования микропроцессоров, рассматриваются подходы к разработке архитектуры микропроцессоров общего назначения, их основных блоков, проводится анализ методов построения рассматриваемых блоков с точки зрения теории алгоритмов. Это позволяет дать предварительную оценку описываемых методов и алгоритмов как с точки зрения занимаемой площади, так и по их быстродействию - основных показателей качества проектирования электронной аппаратуры. В книге приведены RTL коды базовых алгоритмов, используемые для построения блоков микропроцессоров, что позволяет синтезировать их принципиальные электрические схемы средствами стандартных САПР. Описанные в книге методы и алгоритмы дают возможность сильно упростить самостоятельную разработку как архитектуры микропроцессоров в целом, так и разработку их отдельных блоков. Книга будет полезна как профессионалам – проектировщикам систем на кристалле в виде больших интегральных схем (СБИС) и на базе программируемых логических схем (ПЛИС), так и студентам старших курсов направлений «Вычислительная техника», «Информатика», программистам микропроцессорных систем и всем, кто интересуется внутренним устройством микропроцессоров. В книге даются упражнения для самостоятельной работы. Разработайте свой микропроцессор! По вопросам приобретения обращаться: ООО «СОЛОН-Пресс» Тел: (495) 617-39-64, (495) 617-39-65 E-mail: kniga@solon-press.ru, www.solon-press.ru ISBN 978-5-91359-541-6 © «СОЛОН-Пресс», 2023 © Ерохин В.В., 2023
Содержание Предисловие .......................................................................................... 7 Базовые понятия................................................................................. 10 Понятие микропроцессора ............................................................. 10 Задачи, выполняемые микропроцессором ................................. 11 Понятие о ходе выполнение программ ........................................ 11 Счетчик команд ............................................................................... 12 Правила умолчания ........................................................................ 13 Шины ................................................................................................. 14 Понятие о тактировании ................................................................ 16 Способы классификации архитектур ............................................. 19 Классификация по способу синхронизации ............................... 20 Асинхронные процессоры ............................................................. 20 Тактируемые (Синхронные) процессоры ................................... 20 Классификация по способу доступа к программам и данным ........................................................................................... 21 Архитектура фон Неймана ......................................................... 21 Гарвардская архитектура ........................................................... 22 Расширенные архитектуры ........................................................ 24 Расширенная архитектура фон Неймана .......................................... 25 Механизм прерывания и последовательность выполнения команд .............................................................................................. 25 Прямой доступ как нарушитель монополии процессора на работу с памятью ........................................................................... 27 Расширенная гарвардская архитектура ............................................ 28 Классификация по разрядности процессора .............................. 28 Классификация по длине команды процессора ........................ 30 Классификация по количеству операндов в командах ............ 31 Безадресные машины .................................................................... 32 Одноадресные машины ................................................................. 32 Двухадресные машины .................................................................. 33 Трехадресные машины .................................................................. 33 Разновидности архитектур по управлению последовательностью выполнения операций ............................ 34 Флаговые и бесфлаговые процессоры ......................................... 34 3
Содержание Конвейерные и бесконвейерные (на основе машинного цикла) машины .............................................................................. 35 Классификация по системе команд процессора ........................ 36 Классификация по степени параллелизма обработки данных ............................................................................................... 39 Проектирование ЦП .......................................................................... 41 Критерии качества проектирования центрального процессора ........................................................................................ 41 Система команд, производительность и структура процессора ........................................................................................ 41 Основные принципы построения ЦП ......................................... 43 Система команд процессора .......................................................... 43 Арифметические операции ......................................................... 44 Логические операции .................................................................... 45 Сдвиговые операции ...................................................................... 45 Битовые операции ........................................................................ 46 Операции передачи управления .................................................. 46 Длина командного слова и количество операндов в командах ...................................................................................... 54 Топология системы команд процессора .................................... 56 Разработка архитектуры и структуры процессора .................. 59 Дешифратор команд .................................................................... 62 Построение дешифратора команд ............................................ 63 Блок управления центральным процессором ........................... 65 Построение блока на основе микропрограммного автомата .......... 66 Построение блока управления на основе КА .................................. 67 Построение блока управления на основе автомата с магазинной памятью (МПА) .................................................................................. 82 Вопросы и задания для самостоятельной работы (автоматы управления) ......................................................................................... 86 Регистровый файл ........................................................................ 86 Арифметические и логические операции .................................. 90 Операции суммирования и логические операции ........................... 91 Сумматоры ...................................................................................... 91 Знаковая арифметика ....................................................................... 115 Вопросы и задания для самостоятельной работы (операции суммирования) .................................................................................. 116 Логические операции ....................................................................... 117 4
Содержание Универсальная ячейка АЛУ ............................................................ 117 АЛУ на основе универсальной ячейки ........................................... 118 Вопросы и задания для самостоятельной работы (АЛУ на основе универсальной ячейки)........................................ 128 Битовые операции ...................................................................... 129 Операция сдвига ............................................................................... 129 Простейший алгоритм сдвига ......................................................... 130 Обсуждение простейшего алгоритма сдвига ................................. 132 Сдвиг на основе разложения счетчика сдвига ............................... 134 Обсуждение алгоритма сдвига на основе разложения счетчика сдвига ................................................................................................. 135 Вопросы и задания для самостоятельной работы (алгоритмы сдвига) ............................................................................................... 139 Операция подсчета лидирующих единиц (нулей) ......................... 139 Быстрый алгоритм подсчета числа лидирующих нулей ............... 143 Обсуждение быстрого алгоритма подсчета числа лидирующих нулей .................................................................................................. 146 Вопросы и задания для самостоятельной работы (алгоритмы подсчета числа лидирующих нулей) .............................................. 148 «Прямой» алгоритм операции вставки битовых последовательностей ........................................................................ 149 Обсуждение «прямого» алгоритма вставки битовых последовательностей ........................................................................ 152 Быстрый алгоритм вставки битовых последовательностей ......... 152 Обсуждение быстрого алгоритма вставки битовых последовательностей ........................................................................ 156 Операция извлечения битовых последовательностей. .................. 156 Умножение ................................................................................... 157 Быстрые алгоритмы умножения ..................................................... 157 Обсуждение алгоритмов умножения .............................................. 172 Умножение знаковых чисел ............................................................ 173 Операция умножения с суммированием ........................................ 174 Вопросы и задания для самостоятельной работы (операция умножения) ....................................................................................... 174 Деление .......................................................................................... 175 Деление с восстановлением остатка ............................................... 176 Деление без восстановления остатка .............................................. 176 Обсуждение алгоритма деления без восстановления остатка ...... 180 SRT-алгоритм деления ..................................................................... 180 5
Содержание Обсуждение SRT алгоритма деления ............................................. 186 Алгоритм деления без восстановления остатка с выработкой группы цифр за такт ......................................................................... 186 SRT-алгоритм с выработкой группы цифр за такт ........................ 193 Общее обсуждение алгоритмов деления ........................................ 201 Задачи для самостоятельного решения (алгоритмы деления) ..... 202 Автомат управления делением ....................................................... 203 Вопросы и задания для самостоятельной работы ......................... 207 Адресация данных в процессорах .............................................. 208 Адресация в командах передачи управления ................................ 209 Команды передачи управления ....................................................... 210 Построение арифметико-логического устройства ............. 215 Шинная структура процессора ............................................... 216 Конвейер процессора .................................................................... 218 Конвейер данных ......................................................................... 220 Обсуждение приведенных вариантов реализации конвейера ...................................................................................... 226 Конвейер команд ......................................................................... 227 Выборка команд .......................................................................... 227 Команды перехода и конвейер ................................................... 230 Чтение и запись данных ............................................................ 231 Продвижение данных в конвейере ............................................ 234 Шинный интерфейс ................................................................... 235 Адресное пространство процессора ........................................... 237 Заключение ....................................................................................... 239 Приложение 1 .................................................................................... 244 Конечные автоматы ..................................................................... 244 Автомат с магазинной памятью (МПА) ................................... 248 Приложение 2 .................................................................................... 251 Некоторые сведения из теории алгоритмов ............................ 251 Литература ........................................................................................ 253 Дополнительная литература ......................................................... 255 6
Предисловие Военное дело просто и вполне доступно здравому уму человека. Но воевать сложно. Карл фон Клаузевиц Кто мешает тебе выдумать порох непромокаемый? Козьма Прутков С момента появления первого микропроцессора (I8080, будем так считать) всегда казалось, что новые конструкции, сильно отличающиеся от лидера в этой области, серьезной конкуренции ему не составят. Конечно, все время появлялись новые микропроцессоры, они даже конкурировали с лидером (например, М68хх и x86) на протяжении некоторого периода, но затем отходили на периферию внимания потребителей. И тем не менее все время появляются новые микропроцессоры, и некоторым из них удается завоевать основные позиции в какой-либо области применения. Например, это процессоры ARM, которые сначала заняли нишу в области высокопроизводительных контроллеров, затем мобильных приложений, а теперь уже теснят x86 в его основной сфере применения вплоть до серверных приложений. Долгое время казалось, что процессорам ARM ничего не угрожает, его «одноклассники» (например, MIPS) сильно ему уступают по распространенности. Но опять же не так давно появились процессоры с новой архитектурой – RISC V – которые уже составляют архитектуре ARM конкуренцию. Это ситуация в топовых приложениях. Наряду с ними существует масса микропроцессоров совсем не таких мощных, как упомянутые выше, которые используются в более специфических приложениях – микроконтроллерах, то есть микросхемах, предназначенных для выполнения задач управления, где не нужна большая вычислительная мощность, а иногда ценятся совсем другие качества – минимальное энергопотребление, компактность, низкая стоимость. В самом деле, для управления хлебопечкой не требуется много вычислять, а для использования в качестве счетчика воды или электроэнергии нужна небольшая потребляемая мощность, чтобы контроллер мог работать от батареи достаточно большое время, и так далее. 7
Предисловие Причины появления новых архитектур могут быть разные. Это может быть действительно новое слово в области построения процессоров (RISC -архитектуры), желание обойти лицензионные ограничения уже имеющихся конструкций (RISC V), использование в специфической области (DSP - архитектуры), требование повышения производительности по сравнению с традиционными процессорами, тем не менее, не выходящими далеко за границы известных архитектуры (WLIW - архитектуры) и так далее. Перечисленные факторы и сейчас не утратили свою актуальность. Все сказанное говорит о том, что нужда в новых микропроцессорах разных архитектур постоянна, и задача разработки микропроцессоров вполне актуальна. Это относится как к простым микропроцессорам, так и к устройствам высокой вычислительной мощностью класса ARM, Pentium, MIPS и других. В этой книге дается необходимый базис, позволяющий выполнить разработку микропроцессора небольшому коллективу, или даже отдельному разработчику – для этого вовсе не надо быть супераппаратчиком (введем здесь такое понятие, аналогичное суперпрограммисту, в области разработки аппаратуры). Обычно алгоритмы в литературе по программированию и теории алгоритмов приводятся на псевдокоде или псевдо-Алголе. Но когда речь идет об аппаратуре, процедурных псевдоязыков оказывается недостаточно: процессы в аппаратуре выполняются параллельно, а такие псевдоязыки отсутствуют; поэтому почти все алгоритмы и описания работы аппаратуры, приведенные в книге, написаны на языке VHDL. Дополнительным аргументом в пользу этого решения является то, что при желании их можно воспроизвести, промоделировать, синтезировать и, самое главное, модифицировать для получения лучших результатов. Все характеристики алгоритмов, такие, как площадь и время выполнения функции, получены синтезом алгоритмов с использованием одной и той же библиотеки элементов и одной САПР, что позволяет сравнивать алгоритмы как вдоль, так и поперек, то есть сравнивать алгоритмы одной группы и делать оценку разных групп и даже отдельных алгоритмов из разных групп сравнением их между собой. В двух приложениях приведены сведения из теории автоматов и теории алгоритмов. Сведения из теории автоматов переработаны автором для единообразия и приведены в том виде, который удобен разработчикам аппаратуры (если речь идет об конечных автоматах, то они довольно привычны для аппаратчиков; автоматы с магазинной памятью обычно используются только при разработке программного обеспечения, компиляторов в первую очередь). 8
Предисловие Теория алгоритмов довольно редко использовалась разработчиками аппаратуры, разве что в теоретических работах – реальная сложность алгоритмов, используемых в аппаратных решениях, растет очень медленно. Разрядность процессоров за последние лет сорок выросла всего лишь в два раза – от 32 бит до 64 бит, а в этом диапазоне практические результаты могут быть достигнуты и без теоретических оценок, поскольку основные приемы проектирования уже отработаны на небольших размерностях и дают удовлетворительные результаты. В то же время, по убеждению автора, основная тенденция в развитии микропроцессоров состоит в росте их разрядности, доказательством чему служит появление в последнее время 128-битовых процессоров. Поэтому учитывать подходы теории алгоритмов при проектировании современных процессоров необходимо, почему и приведены основные сведения из этой теории во втором приложении в минимально необходимом количестве. Отметим, что в отличие от программ, у алгоритмов, описывающих аппаратуру, емкостные характеристики (то есть объем используемой памяти), выражаются в площади, занимаемой реализацией конкретных алгоритмов. Некоторые сведения об оценке алгоритмов приведены в приложении 2. Книга может быть полезна не только разработчикам аппаратуры: знать принципы устройства процессоров обязан любой настоящий профессионал, считающий себя айтишником. Только зная принципы построения процессоров, хотя бы на уровне основ, можно писать эффективные программы и приложения и составлять реалистичные проекты. Поэтому знакомство с книгой не повредит любому будущему специалисту в области вычислительной техники и информатики - от студентов соответствующих специальностей до просто интересующихся устройством тех кирпичиков, на которых строится вся современная цифровая среда. Для желающих повысить свой уровень в области проектирования микропроцессоров приведен список упражнений по наиболее значимым вопросам. Итак, читаем, изучаем, проектируем. Все пожелания к работе принимаются с благодарностью. Замечания принимаются только с решением одной из предложенных далее задач. Критика же вообще не приветствуется. 9
Базовые понятия Книга рассчитана на читателей, которые имеют соответствующую базовую подготовку, то есть, имеет представление о языках проектирования аппаратуры (Verilog и его производные, VHDL), основных конструкциях, которые используются при проектировании аппаратуры (мультиплексоры, шифраторы, регистры, и т. д.). Таким образом, книга не решает задачу обучения проектированию микропроцессоров «from scratch», с нуля, хотя и написана для массового читателя, желающего разобраться, что же такое микропроцессоры. Однако, не описывая всю современную цифровую схемотехнику, все же необходимо дать некоторые понятия как минимум для того, чтобы точно обозначить некоторые вещи, определения которых в литературе отсутствует, или, по мнению автора, требует уточнения. Понятие микропроцессора Под процессором обычно понимают устройство комплексной обработки чего-либо, причем подразумевается, что обработка осуществляется довольно сложная. Широко известны, например, кухонные процессоры. Поскольку нас не интересует (пока) обработка капусты и моркови, будем в дальнейшем употреблять понятие «процессор» применительно к системам обработки информации, представленной в цифровом виде. Итак, процессор – система обработки информации, представленной в цифровом виде. Соответственно, микропроцессор – это процессор в интегральном исполнении. Сознавая всю неполноту этого определения, стоит на данный момент ограничиться именно таким довольно расплывчатым определением в надежде, что в дальнейшем читатель для себя его уточнит. Будем в дальнейшем считать синонимами микропроцессор и процессор, поскольку не в интегральном исполнении процессоры, вообще говоря, не делаются. 10