Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Микропроцессоры. Теория и практика проектирования

Покупка
Новинка
Основная коллекция
Артикул: 811511.03.99
В книге дается представление о методах, средствах и алгоритмах, используемых в процессе проектирования микропроцессоров, рассматриваются подходы к разработке архитектуры микропроцессоров общего назначения, их основных блоков, проводится анализ методов построения рассматриваемых блоков с точки зрения теории алгоритмов. Это позволяет дать предварительную оценку описываемых методов и алгоритмов как с точки зрения занимаемой площади, так и по их быстродействию - основных показателей качества проектирования электронной аппаратуры. В книге приведены RTL коды базовых алгоритмов, используемые для построения блоков микропроцессоров, что позволяет синтезировать их принципиальные электрические схемы средствами стандартных САПР. Описанные в книге методы и алгоритмы дают возможность сильно упростить самостоятельную разработку как архитектуры микропроцессоров в целом, так и разработку их отдельных блоков. Книга будет полезна как профессионалам - проектировщикам систем на кристалле в виде больших интегральных схем (СБИС) и на базе программируемых логических схем (ПЛИС), так и студентам старших курсов направлений «Вычислительная техника». «Информатика», программистам микропроцессорных систем и всем, кто интересуется внутренним устройством микропроцессоров. В книге даются упражнения для самостоятельной работы. Разработайте свой микропроцессор!
Ерохин, В. В. Микропроцессоры. Теория и практика проектирования : монография / В. В. Ерохин. - Москва : СОЛОН-ПРЕСС, 2023. - 256 с. - ISBN 978-5-91359-541-6. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2185395 (дата обращения: 21.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
 
В. В. Ерохин 
 
 
 
Микропроцессоры  
 
Теория и практика  
проектирования 
 
 
 
 
 
 
 
СОЛОН-Пресс 
Москва 
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