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

Организация цифровых вычислительных машин и систем

Покупка
Артикул: 821440.01.99
Доступ онлайн
360 ₽
В корзину
Учебное пособие используется при изучении дисциплин «Основы архитектуры ЦВМ» и «Программирование микроконтроллеров». В рамках курсов рассматриваются особенности: CISC, RISC архитектур процессоров; работы и взаимодействия с периферийными подсистемами компьютера; изучаются: способы организации взаимодействия периферийных подсистем компьютера и вычислительного ядра; способы организации вычислительного процесса; изучение дисциплин способствует получению представления о специализированных аппаратных и программных средствах, ориентированных на встроенные применения. Предназначено для студентов 2-го года обучения бакалавриата по направлению подготовки 02.03.01 «Математика и компьютерные науки».
Новицкий, А. П. Организация цифровых вычислительных машин и систем : учебное пособие / А. П. Новицкий, Л. М. Курочкин. - Санкт-Петербург : ПОЛИТЕХ-ПРЕСС, 2019. - 60 с. - ISBN 978-5-7422-6583-2. - Текст : электронный. - URL: https://znanium.com/catalog/product/2131028 (дата обращения: 02.06.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство науки и высшего образования Российской Федерации

САНКТ-ПЕТЕРБУРГСКИЙ 
ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ПЕТРА ВЕЛИКОГО

А. П. Новицкий   Л. М. Курочкин

ОРГАНИЗАЦИЯ  ЦИФРОВЫХ 
ВЫЧИСЛИТЕЛЬНЫХ  МАШИН 
И  СИСТЕМ

Учебное пособие

Санкт-Петербург
2019

ПОЛИТЕХ-ПРЕСС
Санкт-Петербургский
политехнический университет
Петра Великого
ББК 32.971.32-02я73
Н73

Р е ц е н з е н т ы:
Канд. техн. наук, доцент факультета систем управления 
и робототехники университета ИТМО С. А. Чепинский
Канд. техн. наук, директор высшей школы программной инженерии 
СПбПУ П. Д. Дробинцев 

Новицкий А. П. Организация цифровых вычислительных машин и систем : 
учеб. пособие / А. П. Новицкий, Л. М. Курочкин. – СПб. : ПОЛИТЕХ-
ПРЕСС, 2019. – 60 с.

Учебное пособие используется при изучении дисциплин «Основы архитектуры 
ЦВМ» и «Программирование микроконтроллеров». В рамках 
курсов рассматриваются особенности: CISC, RISC архитектур процессоров; 
работы и взаимодействия с периферийными подсистемами компьютера; 
изучаются: способы организации взаимодействия периферийных 
подсистем компьютера и вычислительного ядра; способы организации 
вычислительного процесса; изучение дисциплин способствует получению 
представления о специализированных аппаратных и программных 
средствах, ориентированных на встроенные применения.
Предназначено для студентов 2-го года обучения бакалавриата по 
направлению подготовки 02.03.01 «Математика и компьютерные науки».

Табл. 1.  Ил. 12.

Печатается по решению
Совета по издательской деятельности Ученого совета
Санкт-Петербургского политехнического университета Петра Великого

© Новицкий А. П., Курочкин Л. М.,
2019
© Санкт-Петербургский политехнический
университет Петра Великого, 2019
ISBN 978-5-7422-6583-2
doi:10.18720/SPBPU/2/id19-138
A.P. NOVITSKII   L.M. KUROCHKIN

ORGANIZATION  OF  DIGITAL 
COMPUTER  MACHINES 
AND  SYSTEMS

Training manual

Ministry of Science and Higher Education of the Russian Federation

PETER THE GREAT ST. PETERSBURG 
POLYTECHNIC UNIVERSITY

A. V. Rubtsova

PRODUCTIVE   
COMMUNICATION  PRACTICE

Study guide

Saint-Petersburg
2019

Peter the Great 
St.Petersburg Polytechnic 
University

POLYTECH-PRESS
Peter the Great 
St.Petersburg Polytechnic 
University

POLYTECH-PRESS
P e e r  r e v i e w e d  b y:
PhD in Engineering Science, Associate Professor 
of the Faculty of Control Systems and Robotics, ITMO University 
S.A. Chepinskiy
PhD in Engineering Science, Director of SPbPU Higher School of Software
Engineering P.D. Drobintsev 

Novitskii A.P. Organization of Digital Computer Machines and Systems: 
training manual / A.P. Novitskii, L.M. Kurochkin. – St.Petersburg: POLY-
TECH-PRESS, 2019. – 60 p.

The training manual is aimed at studying the following courses: “Architectural 
framework of DVR” and “Programming of Microcontrollers”. Courses consider 
the following peculiarities of CISC, RISC processor architecture, works and 
interactions with peripheral subsystems of the computer. The manual considers 
the ways how to organize interaction between the peripheral subsystem and the 
computational core; to study computing arrangements. Learning these courses 
contributes to acquiring knowledge about specialized hardware and software 
intended for embedded implementation.
The training manual is intended for the second-year students of the Bachelor’s 
degree program in the major 02.03.01 “Mathematics and Computer Science”.

Table 1. Figures 12.

Printed by the Publishing Council 
of the Peter the Great St. Petersburg polytechnic university Academic Council

© Novitskii A.P., Kurochkin L.M., 2019
© Peter the Great St. Petersburg polytechnic
university, 2019
ISBN 978-5-7422-6583-2
doi:10.18720/SPBPU/2/id19-138
ОГЛАВЛЕНИЕ

1. Подробно о способах адресации ........................................................... 8
Однокомпонентные способы адресации ............................................ 8
Замечание о регистровой адресации .................................................10
Непосредственная адресация ............................................................10
Непосредственная адресация в RISC-архитектурах. ........................12
Абсолютная (или прямая) адресация .................................................13
Косвенно-регистровая адресация .....................................................15
Неявная (inherent) адресация .............................................................17
Многокомпонентные способы формирования адреса .....................20
Преимущества и новые свойства, представленные 
многокомпонентными способами .....................................................22
Автомодификация адресов. ................................................................25
Понятие и интерпретация соотношения «прямая – косвенная 
адресация» ..........................................................................................26
2. Взаимодействие процессора с периферийными подсистемами ........29
Поллинг ...............................................................................................29
Механизм аппаратных прерываний ..................................................30
Реакция на запрос аппаратного прерывания ....................................33
Действия, которые должен выполнить (обеспечить) 
программист, чтобы механизм прерывания был 
работоспособным. ..............................................................................39
Организация обслуживания множественных запросов 
прерываний в компьютере .................................................................40
Приоритеты прерываний и управление ими .....................................40
Отличия обработчика прерывания от обычной 
подпрограммы ....................................................................................41
Сохранение и восстановление контекста ..........................................42
3. Периферийные подсистемы в компьютере ........................................ 44
Таймерная подсистема (тайминг) ..................................................... 44
Подсистема аппаратных прерываний ................................................45
Внешние интерфейсы ........................................................................45
Последовательные интерфейсы. ........................................................46
Средства аналого-цифрового преобразования .................................47
4. Кэш-память в компьютере ...................................................................48
Временные соотношения и идея кэш-памяти ..................................48
Ассоциативная память ........................................................................50
Оценка объема оборудования ............................................................53
Кэш, ассоциативный по множеству (set-associative –
наборно-ассоциативный) и кэш с прямым отображением. .............54
Алгоритмы обеспечения когерентности системы памяти. ...............56
Список сокращений

ЦВМ – цифровая вычислительная машина
ВТ – вычислительная техника 
ВС – вычислительная система
ОЗУ – оперативное запоминающее устройство
ПК – персональный компьютер
ПЗУ – постоянное запоминающее устройство
БИС – большие интегральные схемы
ЛЭ – логические элементы
ПЛМ – программируемая логическая матрица
ОМК – однокристальные микроконтроллеры
АЛУ – арифметико-логическое устройство 
ОС – операционная система
ПУ – периферийное устройство
УВВ – устройство ввода-вывода 
МАЕ – минимальная адресуемая единица 
1. ПОДРОБНО  О  СПОСОБАХ  АДРЕСАЦИИ

Словосочетание «способ адресации» можно понимать в более 
широком и более узком смыслах.
В более узком смысле имеется в виду алгоритм определения 
адреса в основной памяти, с которого в ней расположен операнд. 
Точнее говоря, та часть алгоритма определения (формирования) 
адреса, которая является наблюдаемой для программиста и он, 
программист, может задать, записывая команды ассемблерной 
программы. Еще одна часть этого алгоритма, которую называют 
словосочетанием «трансляция адреса», для прикладного программиста 
не наблюдаема.
В более широком смысле имеется в виду способ указания 
в команде местоположения операнда(ов), хотя эти операнды могут 
располагаться:
– в основной памяти (с адресной организацией);
– в регистрах процессора;
– в регистрах ПУ.
Здесь следует заметить, что для различных архитектур, доступ к 
этим трем местам может быть организован совершенно одинаково, 
как в процессорах ARM, либо тремя разными способами, как в х86, 
либо в промежуточных вариантах.

Однокомпонентные способы адресации

При рассмотрении способов задания местоположения операндов 
в цифровом компьютере и их особенностей будем предполагать, 
что речь идет о простом компьютере, в котором:
– память имеет минимальную адресуемую единицу – байт;
– отсутствует трансляция адресов;
– размер адресного пространства – 4 Гбайт, т. е. разрядность 
адресов – 32 бита. Значение адреса, которое получается в соответствии 
со способом адресации, далее используется в качестве 
физического адреса;
– разрядность целочисленных операций – 32 бита (так в архитектурах 
х86 и ARM);
– программа пишется на языке высокого уровня (Си), и процессорные 
команды формирует транслятор.
Начнем с простого и понятного примера: операция присваивания, 
которая выражается на языке Си инструкцией: unsigned int 
uiVar = 0x123.
Для выполнения такого действия нужно иметь возможность 
задать в процессорной команде:
– адрес участка памяти, в которой хранится значение переменной 
uiVar, разрядность этого адреса равна 32 бита. В рассматриваемых 
примерах, если информационный элемент имеет длину более 
одного байта, то адресом этого элемента принято считать младший 
из нескольких адресов, занимаемых байтами этого элемента;
– значение константного операнда-источника 0x123. В данном 
случае слово «константный» означает, что программист уже во 
время написания инструкции знает конкретное числовое значение 
операнда. Разрядность операнда-источника – 3 шестнадцатеричных 
разряда (для изображения такого операнда достаточно 
9 двоичных разрядов), однако для задания произвольного значения 
операнда в рамках разрядности целочисленного АЛУ и для задания 
константного операнда потребуется 32 бита;
– разрядность копируемого операнда (если процессор поддерживает 
действия с операндами разной разрядности) многие процессоры 
поддерживают действия с операндами разной разрядности, 
но не произвольной, а лишь 1, либо 2, либо 4 байта. Именно 
так обстоит дело в архитектуре х86. Однако в процессорах ARM 
все операции выполняются только с 4-байтовыми значениями. 
Перед выполнением операций операнды меньшей разрядности 
представляются в 4-байтовой разрядной сетке, а результат операции 
размещается в разрядности операнда-приемника (возможно, 
с потерей некоторых значащих цифр).
Таким образом, способ кодирования команды должен давать 
возможность задать 32-разрядное значение константного операнда-
источника и 32-разрядного адреса операнда-приемника.

Замечание о регистровой адресации

Операнд-приемник в приведенном примере может располагаться 
в памяти (и там есть место для большого количества данных, 
в современных компьютерах объем памяти может составлять от 
единиц килобайтов до нескольких Гигабайтов). Однако некоторые 
переменные могут находиться в регистрах процессора. В этом 
случае говорить об «адресации» не совсем корректно, ведь под 
адресом (в узком смысле) понимается указатель места операнда в 
основной памяти (а не в регистре процессора). Однако в компьютерных 
книгах говорят о «регистровой адресации», понимая под этим 
словосочетанием обозначение случаев, когда операнд находится 
в регистре процессора, а не в основной памяти.
Преимущество расположения переменной в регистре в том, что 
это обеспечивает меньшее время, необходимое для действия с ней, 
по сравнению с переменной, расположенной в основной памяти.
Регистровая адресация – не способ вычисления адреса операнда 
в основной памяти, а обозначение того факта, что операнд расположен 
в одном из регистров процессора.

Непосредственная адресация

Если программист уже во время написания исходного кода программы, 
неважно на Ассемблере или на ЯВУ, знает численные 
значения операндов для некоторых команд, например число повторений 
тела цикла for, то оказывается удобным включить значения 
таких операндов непосредственно внутрь программного кода, 
например прямо в тело соответствующей команды. Такой способ 
задания значения операнда называют непосредственной адресацией 
(immediate). Примеры команд с такой адресацией следующие.
1. Для процессоров Intel х86: mov cx, 1FFh; загрузка шестнадцатеричной 
константы 1FF в регистр cx.
2. Для процессоров с другими именами регистров и способом 
записи констант (ARM): mov R1, #12; копирование константы 12 
в регистр R1.
Отметим, что при использовании непосредственной адресации 
в некоторых Ассемблерах перед константой должен быть знак #, 
чтобы отличить ее задание от задания абсолютного адреса. Два приведенных 
примера – для двух различных платформ: х86 и ARM7T. 
В Ассемблерах двух этих процессоров используются два разных 
способа обозначения непосредственной адресации.
В обеих приведенных командах операнд-приемник – регистр 
процессора, т. е. в них использована непосредственная (для источника) 
и регистровая (для приемника) адресация. Структура рассмотренных 
команд представлена на рис. 1.
Адресное поле в команде должно содержать два элемента: тип 
адресации и необходимый параметр. Для непосредственной адресации – 
операнд-источник, для регистровой – указание регистра-
приемника. Поскольку регистров в процессоре обычно не 
слишком много (от 2…4 до 64…128), то для указания регистра-приемника 
требуется не очень большое место: 1…7 битов.
Для операнда-источника использована непосредственная адресация, 
операнд 12 (двоичный код 00010010) входит в состав кода

Рис. 1. Структура команды
команды. Отметим то обстоятельство, что для помещения непосредственного 
операнда в 32-разрядных процессорах в коде команды 
потребуется значительное место.
Количество различных способов адресации, реализованных в 
процессоре не очень велико: не превышает 2…3 десятков, а чаще 
всего даже меньше 10. Поэтому для обозначения способа адресации 
требуется не более 4…5 битов. Длина поля для регистровой 
адресации, составит около 1 байта. А вот для непосредственной, 
если требуется задавать любое значение в пределах разрядности 
процессора, адресное поле оказывается длиннее. Для 32-разрядных 
архитектур оно превышает 4 байта.

Непосредственная адресация в RISC-архитектурах

В большинстве RISC-архитектур длина команды составляет 
4 байта. Разрядность АЛУ, регистров процессора, логических и физических 
адресов также обычно 4 байта. Это означает, что в команде 
недостаточно места для указания произвольного значения непосредственного 
операнда. Статистический анализ, выполненный 
по множеству программ, показывает, что 90 % непосредственных 
целочисленных констант в реальных программах могут быть представлены 
в 1-байтовом поле, лишь одна из 10 непосредственных 
беззнаковых констант выходит за диапазон [0…255]. Обычно поле, 
предназначенное для задания значения непосредственной константы 
в RISC-процессоре не превышает байта. Если же требуется задать 
значение, выходящее за пределы этого диапазона, то применяют 
различные приемы, которые для разных RISC-архитектур могут 
различаться. Указанные значения могут формироваться, например, 
за счет сдвига значений меньшей разрядности (210 = 21  <<9). 
Как же может выглядеть структура команды, если операнд-приемник 
расположен в памяти? В этом случае где-то должен быть 
указан адрес места в памяти. Первое, что приходит в голову, – расположить 
адрес приемника (как и константный операнд-источник) 
в коде команды. Именно так и может быть сделано в системе кодирования 
команд архитектуры х86. Однако должно быть сразу ясно, 
Доступ онлайн
360 ₽
В корзину