ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1...

88
И.В. Хмелевский, В.П. Битюцкий ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ ОДНОПРОЦЕССОРНЫЕ ЭВМ ЧАСТЬ 1

Upload: others

Post on 21-Sep-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

И.В. Хмелевский, В.П. Битюцкий

ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ

ОДНОПРОЦЕССОРНЫЕ ЭВМ

ЧАСТЬ 1

Page 2: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

Федеральное агентство по образованию ГОУ ВПО «Уральский государственный технический университет-УПИ»

И.В. Хмелевский, В.П. Битюцкий

ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ

ОДНОПРОЦЕССОРНЫЕ ЭВМ

ЧАСТЬ 1

Конспект лекций

Издание второе, исправленное и дополненное

Научный редактор проф., д-р техн.наук Л.Г. Доросинский

Екатеринбург 2005

Page 3: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

УДК 681.3 ББК 32.973.202я73 Х-65 Рецензенты: кафедра информатики УГГУ (зав. кафедрой доц. канд.техн.наук А.В.Дружинин); доц., канд. техн. наук Г.Б.Захарова (УрО РАН) Авторы: И.В.Хмелевский, В.П.Битюцкий Х-65 Организация ЭВМ и систем. Однопроцессорные ЭВМ. Часть 1.:

Конспект лекций / И.В. Хмелевский, В.П. Битюцкий. 2-е изд., испр. и допол. Екате-ринбург: ГОУ ВПО УГТУ-УПИ, 2005. 87 с.

ISBN 5-321-00516-8 Конспект лекций посвящен изучению основ организации и функционирования

ЭВМ в целом и ее отдельных узлов, взаимодействия ЭВМ и периферийных уст-ройств, в том числе многопроцессорных систем, перспективных направлений в раз-витии вычислительной техники, приобретению опыта разработки простейших микро-процессорных устройств.

Конспект предназначен для студентов всех форм обучения направления 230100 – Информатика и вычислительная техника

Табл. 11, Рис. 30. Подготовлено кафедрой "Автоматика и информационные технологии".

УДК 681.3 ББК 32.973.202я73

ISBN 5-321-00516-8 ©ГОУ ВПО «Уральский государственный

технический университет-УПИ», 2005 (испр. и доп.)

Page 4: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

3

ОГЛАВЛЕНИЕ

1. ОБЩИЕ ВОПРОСЫ ИСТОРИИ РАЗВИТИЯ И ПОСТРОЕНИЯ ЭВМ..... 5 1.1. ДВА КЛАССА ЭВМ .................................................................................................5 1.2. НЕМНОГО ИСТОРИИ ............................................................................................7 1.3. ПРИНЦИПЫ ДЕЙСТВИЯ ЭВМ ..............................................................................8 1.4. ПОНЯТИЕ О СИСТЕМЕ ПРОГРАММНОГО (МАТЕМАТИЧЕСКОГО)

ОБЕСПЕЧЕНИЯ ЭВМ ....................................................................................................11 1.5. ПОКОЛЕНИЯ ЭВМ ...............................................................................................14 1.6. БОЛЬШИЕ ЭВМ ОБЩЕГО НАЗНАЧЕНИЯ..........................................................17

1.6.1. КАНАЛЫ........................................................................................................19 1.6.2. ИНТЕРФЕЙС ................................................................................................20

1.7. МАЛЫЕ ЭВМ ........................................................................................................20 ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ ...........................................................................21

2. ПРЕДСТАВЛЕНИЕ ИНФОРМАЦИИ В ЭВМ .......................................... 22 2.1. ПОЗИЦИОННЫЕ СИСТЕМЫ СЧИСЛЕНИЯ .......................................................22 2.2. ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ ................................................................22

2.2.1. ПРЕОБРАЗОВАНИЕ ДВОИЧНЫХ ЧИСЕЛ В ДЕСЯТИЧНЫЕ....................23 2.2.2. ПРЕОБРАЗОВАНИЕ ДЕСЯТИЧНЫХ ЧИСЕЛ В ДВОИЧНЫЕ ...................24 2.2.3. ДВОИЧНО-ДЕСЯТИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ .................................26

2.3. ВОСЬМЕРИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ ......................................................26 2.4. ШЕСТНАДЦАТЕРИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ ..........................................27 2.5. ДВОИЧНАЯ АРИФМЕТИКА .................................................................................28

2.5.1. СЛОЖЕНИЕ..................................................................................................28 2.5.2. ВЫЧИТАНИЕ ................................................................................................28 2.5.3. УМНОЖЕНИЕ ...............................................................................................29 2.5.4. ДЕЛЕНИЕ .....................................................................................................30

2.6. ПРЯМОЙ, ОБРАТНЫЙ И ДОПОЛНИТЕЛЬНЫЙ КОДЫ.....................................31 2.6.1. ПРЯМОЙ КОД...............................................................................................31 2.6.2. ОБРАТНЫЙ КОД ..........................................................................................32 2.6.3. ДОПОЛНИТЕЛЬНЫЙ КОД ..........................................................................33 2.6.4. СЛОЖЕНИЕ И ВЫЧИТАНИЕ В ДОПОЛНИТЕЛЬНОМ КОДЕ ...................35 2.6.5. ПРИЗНАК ПЕРЕПОЛНЕНИЯ РАЗРЯДНОЙ СЕТКИ...................................36 2.6.6. ДЕЛЕНИЕ В ДОПОЛНИТЕЛЬНОМ КОДЕ ..................................................37 2.6.7. ПРАВИЛО ПЕРЕВОДА ИЗ ДОПОЛНИТЕЛЬНОГО КОДА В ДЕСЯ-

ТИЧНУЮ СИСТЕМУ ...................................................................................................37 2.6.8. МОДИФИЦИРОВАННЫЕ КОДЫ .................................................................38 2.6.9. АРИФМЕТИКА ПОВЫШЕННОЙ ТОЧНОСТИ.............................................39

2.7. ПРЕДСТАВЛЕНИЕ ДРОБНЫХ ЧИСЕЛ В ЭВМ. ЧИСЛА С ФИКСИ-РОВАННОЙ И ПЛАВАЮЩЕЙ ЗАПЯТОЙ .....................................................................40

2.7.1. ЧИСЛА С ФИКСИРОВАННОЙ ЗАПЯТОЙ...................................................40 2.7.2. ЧИСЛА С ПЛАВАЮЩЕЙ ЗАПЯТОЙ............................................................41 2.7.3. СЛОЖЕНИЕ (ВЫЧИТАНИЕ) ЧПЗ................................................................48 2.7.4. УМНОЖЕНИЕ ЧПЗ.......................................................................................49 2.7.5. МЕТОДЫ УСКОРЕНИЯ УМНОЖЕНИЯ.......................................................50 2.7.6. ДЕЛЕНИЕ ЧИСЕЛ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ .........................................51

Page 5: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

4

2.8. ДЕСЯТИЧНАЯ АРИФМЕТИКА ............................................................................52 2.8.1. СЛОЖЕНИЕ ДВОИЧНО-ДЕСЯТИЧНЫХ ЧИСЕЛ .......................................52 2.8.2. ВЫЧИТАНИЕ МОДУЛЕЙ ДВОИЧНО-ДЕСЯТИЧНЫХ ЧИСЕЛ ..................56 2.8.3. УМНОЖЕНИЕ МОДУЛЕЙ ДВОИЧНО-ДЕСЯТИЧНЫХ ЧИСЕЛ .................58 2.8.4. ДЕЛЕНИЕ МОДУЛЕЙ ДВОИЧНО-ДЕСЯТИЧНЫХ ЧИСЕЛ........................59

2.9. НАРУШЕНИЕ ОГРАНИЧЕНИЙ ЭВМ ...................................................................59 2.10. ПРЕДСТАВЛЕНИЕ БУКВЕННО-ЦИФРОВОЙ ИНФОРМАЦИИ .......................60 2.11. ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ ..................................................................61 ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ ...........................................................................62 КОНТРОЛЬНЫЕ ЗАДАНИЯ К ГЛАВЕ 2 .....................................................................63

ФОРМА 1. ОТВЕТЫ НА ВОПРОСЫ......................................................................63 ФОРМА 2. ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ НАД ЧИС-

ЛАМИ ...........................................................................................................................63 ПРИМЕР ВЫПОЛНЕНИЯ КОНТРОЛЬНОГО ЗАДАНИЯ (ФОРМА 2) ..................66

3. ПРИНЦИПЫ ПОСТРОЕНИЯ ЭЛЕМЕНТАРНОГО ПРОЦЕССОРА ...... 72 3.1. ОПЕРАЦИОННЫЕ УСТРОЙСТВА (АЛУ)............................................................75 3.2. УПРАВЛЯЮЩИЕ УСТРОЙСТВА.........................................................................77

3.2.1. УУ С ЖЕСТКОЙ ЛОГИКОЙ .........................................................................78 3.2.2. УУ С ХРАНИМОЙ В ПАМЯТИ ЛОГИКОЙ ...................................................80

ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ ...........................................................................85 КОНТРОЛЬНЫЕ ЗАДАНИЯ К ГЛАВЕ 3 .....................................................................85

Page 6: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

5

1. Общие вопросы истории развития и построения ЭВМ С момента своего возникновения человек старался облегчить свой труд с по-

мощью различных приспособлений. В начале это касалось только физического тру-да, а затем также и умственного. В результате уже в XVII веке начали появляться первые механические устройства, позволяющие выполнять некоторые арифметиче-ские действия над числами. Они предназначались, в основном, для коммерческих расчетов и составления навигационных таблиц.

Совершенствование технологии обработки металлов, а затем и появление пер-вых электромеханических устройств типа электромагнитных реле привело к интен-сивному совершенствованию вычислительных устройств. Кроме того, совершенст-вование вычислительных устройств было обусловлено все возрастающим объемом информации, требующей переработки.

До 30-х годов прошлого столетия разработкой вычислительных устройств за-нимались механики, математики, электрики. Но с конца 30-х годов к этому процессу подключились электронщики, поскольку вычислительные устройства стали созда-вать на электронных элементах – электронных лампах. Вычислительные устройства превратились в электронные вычислительные машины (ЭВМ0, а все, что связано было с созданием ЭВМ, превратилось в отдельную область человеческих знаний, которую условно можно было назвать "Теория и принципы проектирования ЭВМ".

Однако уже в 50-е годы разнообразие проблем теории и методов проектирова-ния объектов вычислительной техники, сложность ее элементов, устройств, машин и систем закономерно привели к тому, что из дисциплины "Теория и принципы проек-тирования ЭВМ", еще недавно охватывающей все основные аспекты этой области науки и техники, выделились самостоятельные курсы: схемотехника ЭВМ, методы оптимизации, периферийные устройства, операционные системы, теория програм-мирования и т.д. Современная ЭВМ – настолько сложное устройство, что в одном курсе физически невозможно охватить подробно все проблемы проектирования, создания и эксплуатации ЭВМ, которые в общем случае имеют три аспекта:

- пользовательский (т.е. ЭВМ является инструментом решения прикладных за-дач); - программный (т.е. ЭВМ является объектом системного программирования); - электронный (т.е. ЭВМ является сложным электронным устройством, создан-ным с использованием сложных технологий). Настоящий курс "Организация ЭВМ и систем" без излишней детализации рас-

сматривает комплекс основных вопросов, относящихся к теории, принципам по-строения и функционирования ЭВМ как сложного электронного устройства. При этом основное внимание уделяется микроЭВМ и устройствам на базе микропроцессорных комплектов. Следует иметь в виду также, что под ЭВМ понимается любое устройст-во переработки цифровой информации (от микроконтроллера, управляющего сти-ральной машиной, до суперЭВМ), а не только персональный компьютер.

1.1. Два класса ЭВМ Любая сфера человеческой деятельности, любой процесс функционирования

технического объекта связаны с передачей и преобразованием информации. Одно из важнейших положений кибернетики состоит в том, что без информации, ее пере-дачи и переработки невозможны организованные системы – ни биологические, ни технические, искусственно созданные человеком.

Информацией называются сведения о тех или иных явлениях природы, собы-тиях общественной жизни, процессах в технических устройствах. Информация, за-

Page 7: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

6

фиксированная в некоторых материальных формах (на материальном носителе), называется сообщением, например:

• статистические данные о работе предприятия и потребности производства в материалах; • данные переписи населения; • данные для диспетчера аэропорта о перемещении самолетов в воздухе; • данные о толщине прокатываемого листа. Все эти сообщения отличаются друг от друга по источнику информации, по спо-

собу представления, по продолжительности и т.д. Но их объединяет одно – инфор-мацию, которую они несут, необходимо передать, переработать и как-то использо-вать.

В общем случае сообщения могут быть непрерывными (аналоговыми) и дис-кретными (цифровыми).

Аналоговое сообщение представляется некоторой физической величиной (обычно электрическим током или напряжением), изменение которой во времени от-ражает протекание рассматриваемого процесса, например температуры в нагрева-тельной печи. Физический процесс, передающий непрерывное сообщение, может в определенном интервале принимать любые значения и изменяться в произвольные моменты времени, т.е. может иметь бесконечное множество состояний.

Дискретное сообщение характеризуется конечным набором состояний, напри-мер, передача текста. Каждое из этих состояний можно представить в виде конечной последовательности символов или букв, принадлежащих конечному множеству, на-зываемому алфавитом. Такая операция называется кодированием, а последова-тельность символов – кодом. Число символов, входящих в алфавит, называется ос-нованием кода. Важным здесь является не физическая природа символов кода, а то, что за конечное время можно передать только конечное число состояний сообще-ния. Причем, чем меньше основание кода, тем длиннее требуются кодовые группы для передачи фиксированного набора состояний сообщения.

В настоящее время в абсолютном большинстве случаев используются коды с основанием два, т.е. информация представляется в виде бинарных импульсных по-следовательностей, или двоичных кодов.

Передачу и преобразование любой дискретной информации всегда можно све-сти к эквивалентной передаче и преобразованию двоичных кодов, или цифровой информации.

Более того, возможно с любой заранее заданной степенью точности непрерыв-ное сообщение заменить цифровым путем квантования непрерывного сообщения по уровню и дискретизации его по времени. Однако следует иметь в виду, что с увели-чением точности представления аналогового сообщения растет разрядность кода. Это может привести к тому, что обработка аналогового сообщения в цифровой фор-ме на конкретной ЭВМ в реальном масштабе времени окажется невозможной.

Таким образом, любое сообщение может быть с определенной степенью точно-сти представлено в цифровой форме.

Электронные вычислительные машины (ЭВМ) являются преобразователями информации. В них исходные данные задачи преобразуются в результат ее реше-ния. В соответствии с используемой формой представления информации при пре-образовании ЭВМ делятся на два больших класса – аналоговые и дискретного дей-ствия – цифровые. Их обозначают как АВМ и ЦВМ соответственно. С 70-х годов термин ЭВМ относят именно к машинам дискретного действия, или ЦВМ, принципы функционирования которых и будут рассмотрены в настоящем курсе.

Page 8: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

7

1.2. Немного истории Считается, что первым механизмом для счета являлся абак, в котором сложе-

ние и вычитание чисел выполнялось перемещением камешков по желобам доски. Подобные устройства встречаются в разных вариантах в различных странах древне-го мира.

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

Первые эскизы счетной машины создал Леонардо да Винчи (около 1500 года). А первые сведения о работающей счетной машине относятся к 1646 году (Герма-ния). Но подробностей устройства этой счетной машины не сохранилось. В 1646 го-ду во Франции Паскаль создал механическое устройство, которое складывало и вы-читало многозначные числа. В 1673 году в Германии Лейбниц строит счетную маши-ну, выполняющую все четыре арифметических действия. Он же предложил исполь-зовать двоичную систему счисления для нужд вычислительной математики. В этот период были созданы и другие счетные машины. Все они были построены в одном экземпляре (поскольку создавались десятки лет) и не могли долго работать – слиш-ком сложны были их механизмы и слишком примитивна технология их изготовления. Только в 1820 году был налажен серийный выпуск (сотни штук в год) арифмометров конструкции Томаса де Кальмера. Вычисления, состоящие из последовательности арифметических операций, все еще лежали за пределами возможностей счетной машины.

В 1834 году Ч. Бэббидж разработал проект счетной машины, позволяющей реализовать вычисления любой сложности. Машина была задумана как механиче-ская. Но Ч. Бэббиджа можно назвать пророком, поскольку его "аналитическая" ма-шина стала прообразом ЭВМ, появившейся 100 лет спустя. Его машина содержала механический эквивалент практически всех основных устройств простейшей ЭВМ: память ("склад" на 1000 чисел по 50 десятичных знаков), арифметическое устройст-во ("мельница"), устройство управления, устройства ввода и вывода информации. Последовательность выполнения операций и пересылки чисел между устройствами задавалась программой на перфокартах Жаккарда (1804), которые использовались для управления работой ткацких станков. Кроме того, в машине Бэббиджа преду-сматривалась возможность изменения программы в зависимости от результата вы-числений. Говоря современным языком, имелись команды условных переходов. Ин-тересно отметить, что Бэббидж изобрел наиболее эффективный способ сложения чисел – сложение по схеме со сквозным переносом. Эту машину Бэббидж строил всю оставшуюся жизнь (до 1871 года), но создал только ее отдельные узлы. В то же время (50-е годы прошлого столетия) благодаря трудам английского математика Ады Лавлейс зародилось машинное программирование. Ада Лавлейс пыталась на-писать программы к еще не созданной счетной машине Бэббиджа.

В конце XIX –начале XX века начали появляться электромеханические счетно-аналитические машины для выполнения расчетно-бухгалтерских и статистических операций. Сильным толчком к развитию таких устройств стал конкурс, объявленный в США при проведении переписи 1888 года. В нем победил табулятор Холлерита, который явился родоначальником целого семейства электронно-механических ма-шин для обработки статистических данных. В 1898 году Холлерит организовал фир-му, которая поставляла такие машины всему миру. Эти машины непрерывно совер-шенствовались: в 1913 году создан табулятор, печатающий результаты; в 1921 году к нему добавлена коммутационная доска, на которой хранилась программа обработ-ки данных, считываемых с различных позиций перфокарты.

Page 9: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

8

Первые вычислительные машины в современном смысле появились в конце 30-х – начале 40-х годов. В 1936 -1937 году К. Цузе (Германия) спроектировал маши-ну с программным управлением. В 1941 году она была создана (машина на электро-магнитных реле). Это первая в мире ЭВМ с программным управлением. Программа наносилась на перфоленту и целиком вводилась в машину. После этого оператор уже не мог влиять на последовательность выполнения команд программы. Посколь-ку перфолента двигалась в одну сторону, все циклы записывались в развернутом виде, т.е. в виде последовательности групп команд.

В 1937 году Г. Айкин (США) разработал проект электромеханической универ-сальной ЭВМ с программным управлением. Она была построена в 1944 году фир-мой IBM и названа "Марк-1". В 1947 году под руководством Айкина построена более мощная машина "Марк-2". В ней для хранения чисел и выполнения операций ис-пользовано 16000 электромеханических реле. В этот период был разработан целый ряд подобных релейных вычислительных машин, одна из которых практически пол-ностью повторяла "аналитическую" машину Бебиджа.

Эти релейные вычислительные машины были ненадежны, медленно работали и потребляли много энергии, но позволили накопить большой опыт по созданию ма-шин для автоматизированных вычислений. На них было опробовано двоичное коди-рование чисел, представление чисел в форме с плавающей запятой, способы вы-полнения операций над числами на основе релейных схем и т.д.

В этот же период начали появляться машины, построенные на электронных лампах, причем первоначально лампы стали использоваться в простейших счетчи-ках импульсов. На них строились схемы с двумя устойчивыми состояниями, впо-следствии названные триггерами (впервые подобная схема была разработана в 1918 году Бонч-Бруевичем). Исследуя свойства триггеров, американские ученые Дж. Моучли и Д. Эккер пришли к выводу о целесообразности использования в вы-числительных машинах вместо электромеханических реле ламповых триггеров. В 1946 году под их руководством построена вычислительная машина "ЭНИАК" для баллистических расчетов. Она содержала 18000 электронных ламп и 1500 реле. Ис-пользование электронных ламп позволило резко (на два порядка) повысить скорость выполнения операций.

Анализируя работу этой машины, математик Дж. Нейман сформулировал ос-новные концепции организации ЭВМ. В соответствии с этими концепциями началась разработка ЭВМ "ЭДВАК" – прообраза современных ЭВМ. Она была построена в 1950 году. А в 1949 году в Англии была введена в эксплуатацию первая в мире ЭВМ с хранимой в памяти программой – "ЭДСАК", созданная под руководством М. Уилкса.

Вычислительные машины "ЭДВАК" и "ЭДСАК" положили начало первому поко-лению ЭВМ – поколению ламповых машин. С начала 50-х годов было осуществлено много проектов ЭВМ, в каждом из которых применялись новые типы устройств, спо-собы управления вычислительным процессом и обработки информации. Особое внимание уделялось улучшению характеристик памяти, поскольку в ламповых ЭВМ она была незначительной. Так, в 1952 г. впервые были использованы ферритовые сердечники.

На этом закончим рассмотрение истории развития вычислительных машин и перейдем к принципам действия ЭВМ.

1.3. Принципы действия ЭВМ Рассмотрим вначале вычисления с помощью калькулятора. Предварительно на

листе бумаги выписываются формулы и исходные данные, а часто и таблицы для занесения промежуточных и конечных результатов. В процессе вычисления числа с листа заносятся в регистр микрокалькулятора, а затем включается нужная по фор-

Page 10: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

9

муле операция. Полученные результаты переписываются с регистра (индикатора микрокалькулятора) на лист бумаги (в таблицу).

Таким образом, микрокалькулятор выполняет арифметические операции над числами, которые в него вводит человек. Лист бумаги выполняет в данном случае роль запоминающего устройства, хранящего программу (расчетную формулу), ис-ходные, промежуточные и конечные результаты. Человек управляет процессом вы-числения, включая перенос чисел с листа в микрокалькулятор и обратно, а также выбирает нужный вариант продолжения процесса вычисления в соответствии с по-лученным результатом. Интересно, что в данном случае быстродействие устройст-ва, выполняющего арифметические операции (механического или электронного), практически не влияет на скорость вычислительного процесса, так как остальные операции выполняются очень медленно.

Принципиальный эффект достигается, если к быстродействующему арифмети-ческому устройству добавить быстродействующую память, а также быстродейст-вующее устройство, производящее все необходимые операции по реализации про-граммы вычислений и пересылке чисел между арифметическим устройством и па-мятью. Если добавить к такому комплексу аппаратуры устройства связи с внешним миром, т.е. устройства ввода исходных данных и программы и вывода результата, то придем к классической пятиблочной структуре Неймана, несколько модифицирован-ный вид которой показан на рис. 1.1 (первоначально устройство ввода и вывода изо-бражалось одним блоком, а память не разделялась на основную и внешнюю).

Рассмотрим основные функции устройств, входящих в состав неймановской

модели ЭВМ. АЛУ – производит арифметические и логические преобразования над посту-

пающими в него машинными словами, т.е. двоичными кодами определенной длины, представляющими собой числа или другой вид информации.

Пульт ручного управления

Управляющее устройство

Устройство ввода (УВ)

Арифметико- логическое устройство

(АЛУ)

Внутренняя (основная,

оперативная память (ОП))

Устройство вывода

(УВ)

Внешняя память (ВП)

Программа, исходные данные

Результат расчета

Рис. 1.1. Классическая структура ЭВМ

Page 11: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

10

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

Непосредственно в вычислительном процессе участвует только ОП. Обмен информацией между ОП и ВП происходит только после окончания отдельных этапов вычислений. Физическая реализация ОП и ВП будет рассмотрена в последующих разделах данного курса.

Устройство управления (УУ) – автоматически, без участия человека, управля-ет вычислительным процессом, посылая всем другим устройствам сигналы, предпи-сывающие те или иные действия, в частности заставляет ОП пересылать необходи-мые данные, включать АЛУ на выполнение необходимой операции, перемещать по-лученный результат в необходимую ячейку ОП. Следует иметь в виду, что в совре-менных ЭВМ АЛУ и УУ всегда объединены в одно устройство, которое называется процессор.

Пульт управления – позволяет оператору вмешиваться в процесс решения за-дачи, т.е. давать директивы устройству управления.

Устройство ввода – позволяет ввести программу решения задачи и исходные данные в ЭВМ и поместить их в ОП. В зависимости от типа устройства ввода исход-ные данные для решения задачи вводятся непосредственно с клавиатуры (дисплей, пишущая машинка) либо должны быть предварительно помещены на какой-либо но-ситель – перфокарты, перфоленты, магнитные карты, магнитные ленты, магнитные и оптические диски и т.д. В системах САПР осуществляется ввод графической ин-формации.

Устройство вывода – служит для вывода из ЭВМ результатов обработки ис-ходной информации. Чаще всего это символьная информация, которая выводится с помощью печатающих устройств (ПчУ) или на экран дисплея. В ряде случаев это графическая информация в виде чертежей и рисунков, которые могут быть выведе-ны с помощью графических дисплеев, графопостроителей, принтеров, и т.д.

Теперь необходимо определить понятия алгоритм и программа. Понятие ал-горитма не замыкается только областью вычислительной техники (ВТ). По интуитив-ному определению:

Алгоритм – это совокупность правил, строго следуя которым можно перейти от исходных данных к конечному результату.

В ВТ под "совокупностью правил" понимается последовательность арифмети-ческих и логических операций. (Утверждают, что слово алгоритм произошло от имени Мухаммед аль Хорезми, написавшем в IX веке трактат по арифметике деся-тичных чисел.)

Page 12: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

11

Программа – это запись алгоритма в форме, воспринимаемой ЭВМ. Любая про-грамма состоит из отдельных команд. Каждая команда предписывает определенное действие и указывает, над какими операндами это действие производится. Про-грамма представляет собой совокупность команд, записанных в определенной по-следовательности, обеспечивающих решение задачи на ЭВМ. Для того,чтобы УУ могло воспринять команды, они должны быть закодированы в цифровой форме (во всех современных ЭВМ – это двоичный код).

Автоматическое управление процессом решения задачи достигается на основе принципа программного управления, являющегося основной особенностью ЭВМ. (Без программного управления ЭВМ превратится в обычный быстродействующий арифмометр или калькулятор.).

Другим важнейшим принципом является принцип хранимой в памяти програм-мы. Согласно этому принципу программа, закодированная в цифровом виде, хранит-ся в памяти наравне с числами. Поскольку программа хранится в памяти, одни и те же команды можно извлекать и выполнять необходимое количество раз. Более того, над кодами команд можно выполнять некоторые арифметические операции и тем самым модифицировать адреса обращения к ОП.

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

1.4. Понятие о системе программного (математического) обеспечения ЭВМ

Каждая ЭВМ обладает определенными свойствами, такими как возможность обрабатывать информацию в той или иной форме, возможность выполнять арифме-тические и логические операции, операции, связанные с организацией совместной работы устройств машины и т.д.

Для придания определенных свойств ЭВМ используют средства двух видов – аппаратные и программные (hard & soft). Последние называются также средствами программного обеспечения.

Часть свойств ЭВМ приобретает благодаря наличию в ней электронного и элек-тромеханического оборудования, специально предназначенного для реализации этих свойств. Примером такого устройства является АЛУ.

Ряд других свойств реализуется без специальных электронных блоков с помо-щью программных средств. При этом используются имеющиеся аппаратные средст-ва ЭВМ, выполняющие действия, предписанные специальными программами.

Так, например, ЭВМ может не иметь аппаратно реализованной операции из-влечения корня. Но если есть программа извлечения корня, то существующие аппа-ратные средства могут выполнить эту операцию. Причем, с точки зрения пользова-теля, ЭВМ приобретет свойство вычисления корня.

Следует иметь в виду, что с помощью аппаратных средств соответствующие функции ЭВМ выполняются значительно быстрее, чем программным путем, но при этом ЭВМ становится сложнее и дороже. Всвязи с этим в ЭВМ с достаточно просты-ми процессорами стремятся как можно больше функций реализовать программным путем, а в мощных ЭВМ для повышения быстродействия – по максимуму использо-вать аппаратные средства.

Page 13: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

12

Вообще же стремятся как можно оптимальнее соотнести аппаратные и про-граммные средства, чтобы при умеренных аппаратных затратах и стоимости достиг-нуть высокой эффективности и быстродействия.

Таким образом, аппаратные и программные средства являются тесно связан-ными компонентами современной ЭВМ. Поскольку с точки зрения пользователя, как правило, неважно аппаратно или программно выполнены те или иные функции, можно говорить о виртуальной (кажущейся) ЭВМ.

Система программного (математического) обеспечения – это комплекс про-граммных средств, в котором можно выделить операционную систему, комплект про-грамм технического обслуживания и пакеты прикладных программ. На рис. 1.2 изо-бражена упрощенная структура вычислительной системы как совокупности аппарат-ных и программных средств.

Операционная система (ОС) – это центральная и важнейшая часть програм-много обеспечения ЭВМ, предназначенная для эффективного управления вычисли-тельным процессом, планирования работы и распределения ресурсов ЭВМ, автома-тизации процесса подготовки программ и организации их выполнения при различных режимах работы машины, облегчения общения оператора и пользователя с маши-ной.

Оператор Пользователь

Язык ОС Проблемно- ориентированный

Процедурно- ориентированный

Макроязык

Ассемблер

Машинный язык

Пакетпрограммно- технического обслуживания

ППП

Операционная система

Управляющие программы

Аппаратные средства ЭВМ

Обрабатывающие программы

BIOS

Машинно-зависимые

языки

Машинно-независи-мые языки

Програм

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

ППП – пакет прикладных программ

Рис. 1.2. Вычислительная система как совокупность программных и аппаратных средств ЭВМ

Page 14: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

13

ОС состоит из программ, относящихся к двум большим группам. Управляющие программы осуществляют управление работой устройств ЭВМ,

т.е. координируют работу устройств в процессе ввода, подготовки и выполнения дру-гих программ.

Обрабатывающие программы осуществляют работу по подготовке новых про-грамм для ЭВМ и исходных данных для них, например, сборку отдельно трансли-руемых модулей в одну или несколько исполняемых программ, работы с библиоте-ками программ, перезаписи массивов информации между ВП и ОП и т.д.

ОС в большинстве случаев являются универсальными и не учитывают особен-ности конкретных аппаратных средств. В современных ЭВМ для адаптации универ-сальной ОС к конкретным аппаратным средствам используют аппаратно-ориентированную часть операционной системы, которая в персональных компьюте-рах называется BIOS (Basic Input / Output System – базовая система ввода/вывода).

Следует иметь в виду, что оператор и пользователь не имеют прямого доступа к аппаратным средствам ЭВМ. (В частном случае, например при работе с персо-нальным компьютером, оператор и пользователь являются одним и тем же лицом.) Все связи осуществляются только через ОС, обеспечивающую определенный уро-вень общения человека и машины. А уровень общения определяется в первую оче-редь уровнем языка, на котором оно происходит. На схеме представлена прибли-женная иерархия таких языков.

Проблемно-ориентированный – это язык, строго ориентированный на какую-либо проблему (моделирование сложных технических и экономических систем, САПР самых различных направлений, задачи анимации и т.д.).

Процедурно-ориентированный – это язык, ориентированный на выполнение общих процедур переработки данных (Фортран, Паскаль, Бейсик и т.д.).

Машинный язык – это самый нижний уровень языка. Команды записываются в виде двоичных кодов. Адреса ячеек памяти – абсолютные. Программирование очень трудоемко.

Ассемблер – это язык более высокого уровня, использующий мнемокоды (т.е. команды обозначаются буквенными сочетаниями). Запись программы ведется с ис-пользованием символических адресов, т.е. вместо численных значений адреса ис-пользуются имена, за исключением первого оператора программы, который жестко привязан к физическому адресу. (Вообще, более правильно говорить язык ассемб-лера, поскольку Ассемблер –служебная программа, преобразующая символические имена команд и символические адреса в команды в машинном коде и числовые ад-реса.)

Макроязык – в первом приближении его можно определить как язык процедур, написанных на языке ассемблера, т.е. когда вместо целого комплекса команд (кото-рые часто встречаются) используется только имя (название) этого комплекса.

Язык ОС – это язык, на котором оператор может выдавать директивы ОС, вме-шиваться в ход вычислительного процесса.

Пакет программно-технического обслуживания предназначен для уменьше-ния трудоемкости эксплуатации ЭВМ. Эти программы проводят тестирование рабо-тоспособности ЭВМ и ее отдельных устройств, определяют места неисправностей.

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

Все это, как уже отмечалось, в совокупности с аппаратными средствами со-ставляет вычислительную систему. Причем при создании новых ЭВМ разработка аппаратного и программного обеспечения производится одновременно. В настоящее

Page 15: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

14

время программное обеспечение – такой же вид промышленной продукции, как и сама ЭВМ, причем его стоимость зачастую дороже аппаратной части.

Сложность современных вычислительных систем (ВС) привела к возникнове-нию понятия архитектуры ВС. Это понятие охватывает комплекс общих вопросов построения ВС, существенных в первую очередь для пользователя, интересующего-ся главным образом возможностями ЭВМ, а не деталями ее технического исполне-ния. К числу таких вопросов относятся вопросы общей структуры, организации вы-числительного процесса и общения пользователя с машиной, вопросы логической организации представления, хранения и преобразования информации и вопросы ло-гической организации совместной работы различных устройств, а также аппаратных и программных средств машины.

1.5. Поколения ЭВМ Выше рассматривались три понятия: аппаратные средства, программное обес-

печение и архитектура ЭВМ. Рассмотрим коротко этапы развития ЭВМ за последние 50 лет с точки зрения этих понятий, составляющих основу классификации ЭВМ по поколениям.

Ранее отмечалось, что ближайшими прототипами современной ЭВМ можно считать машины "ЭДВАК" и "ЭДСАК", построенные в Англии и США в 1949-1950 го-дах. С начала 50-х годов началось массовое производство ЭВМ различных типов, которые сейчас принято относить к ЭВМ первого поколения. Следует иметь в виду, что поколения ЭВМ не имеют четких временных границ. Элементы каждого нового поколения ЭВМ разрабатывались и опробовались на ЭВМ предыдущего поколения.

Первое поколение (1950-1960 гг.) ЭВМ этого поколения строилось на дискретных элементах и вакуумных лампах,

имели большие габариты, массу, мощность, обладая при этом малой надежностью. Основная технология сборки – навесной монтаж. Они использовались в основном для решения научно-технических задач атомной промышленности, реактивной авиации и ракетостроения.

Увеличению количества решаемых задач препятствовали низкая надежность и производительность, а также чрезвычайно трудоемкий процесс подготовки, ввода и отладки программы, написанной на языке машинных команд, т.е. в форме двоичных кодов. Машины этого поколения имели быстродействие порядка 10-20 тысяч опера-ций в секунду и ОП порядка 1К (1024 слова). В этот же период появились первые простые языки для автоматизированного программирования.

Второе поколение (1960-1965 гг.) В качестве элементной базы использовались дискретные полупроводниковые

приборы и миниатюрные дискретные детали. Основная технология сборки – одно- и двухсторонний печатный монтаж невысокой плотности. По сравнению с предыдущим поколением резко уменьшились габариты и энергозатраты, возросла надежность. Возросли также быстродействие (приблизительно 500 тысяч оп/с) и объем опера-тивной памяти (16-32К слов). Это сразу расширило круг пользователей, а следова-тельно, и решаемых задач. Появились языки высокого уровня (Фортран, Алгол, Ко-бол) и соответствующие им трансляторы. Были разработаны служебные программы для автоматизации профилактики и контроля работы ЭВМ, а также для лучшего рас-пределения ресурсов при решении пользовательских задач. (Задача экономии вре-мени процессора и ОП осталась, как и в первом поколении).

Все эти вышеперечисленные служебные программы оформились в ОС, которая первоначально просто автоматизировала работу оператора: ввод текста программы, вызов нужного транслятора, вызов необходимых библиотечных программ, размеще-ние программ в основной памяти и т.д. Теперь вместе с программами и исходными

Page 16: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

15

данными вводилась целая инструкция о последовательности обработки программы и требуемых ресурсах.

Совершенствование аппаратного обеспечения, построенного на полупроводни-ковой базе, привело к тому, что появилась возможность строить в ЭВМ помимо цен-трального (основного) процессора еще ряд вспомогательных. Эти процессоры управляли всей периферией, в частности устройствами ввода/вывода, избавляли от вспомогательной работы центральный процессор. Одновременно совершенствова-лись и ОС. Это позволило на ЭВМ второго поколения реализовать режим пакетной обработки программ, а также режим разделенного времени. Последний был необхо-дим для параллельного решения нескольких задач управления производством и ор-ганизации многопользовательского режима через дисплейные станции. В машинах второго поколения широко использовались ОП на ферритовых кольцах (так назы-ваемые кубы памяти). Все это позволило поднять производительность ЭВМ и при-влечь к ней массу новых пользователей.

Третье поколение (1965-1970 гг.) В качестве элементной базы использовались интегральные схемы малой инте-

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

Но вскоре потребители обнаружили, что после небольшой доработки на мини-ЭВМ можно решать и вычислительные задачи. Простота обслуживания новых ма-шин и их низкая стоимость позволили снабдить подобными вычислительными ма-шинами небольшие коллективы исследователей, разработчиков, учебные заведения и т.д. В начале 70-х гг. с термином миниЭВМ уже связывали два существенно раз-личных типа вычислительной техники:

- контроллер – универсальный блок обработки данных и выдачи управляющих сигналов, серийно выпускаемый для использования в различных специализи-рованных системах контроля и управления; - универсальная ЭВМ небольших габаритов, проблемно-ориентированная поль-зователем на ограниченный круг задач в рамках одной лаборатории, техноло-гического участка и т.д.

Четвертое поколение (с 1970 г.) Успехи микроэлектроники позволили создать БИС и СБИС, содержащие десят-

ки тысяч активных элементов. Одновременно уменьшались и габариты дискретных электронных компонентов. Основной технологией сборки стал многослойный печат-ный монтаж. Это позволило разработать более дешевые ЭВМ с большой ОП. Стои-мость одного байта памяти и одной машинной операции резко снизилась. Но затра-ты на программирование почти не сократились, поэтому на первый план вышла за-дача экономии человеческих, а не машинных ресурсов.

Для этого разрабатывались новые ОС, позволяющие пользователю вести диа-лог с ЭВМ, что облегчало работу пользователя и ускоряло разработку программ. Это

Page 17: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

16

потребовало, в свою очередь, совершенствовать организацию одновременного дос-тупа к ЭВМ целого ряда пользователей, работающих с терминалов.

Совершенствование БИС и СБИС привело в начале 70-х гг. к появлению новых типов микросхем – микропроцессоров (в 1968 г. фирма Intel по заказу Дейта-Дженерал разработала и изготовила первые БИС микропроцессоров, которые пред-полагалось использовать как составные части больших процессоров).

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

В 70-е же годы появились первые микроЭВМ – универсальные вычислительные системы, состоящие из процессора, памяти, схем сопряжения с устройствами вво-да/вывода и тактового генератора, размещенные в одной БИС (однокристальная микроЭВМ) или в нескольких БИС, установленных на одной печатной плате (одно-платные микроЭВМ).

Совершенствование технологии позволило изготовить СБИС, содержащие сот-ни тысяч активных элементов, и сделать их достаточно дешевыми. Это привело к созданию небольшого настольного прибора, в котором размещалась микроЭВМ, клавиатура, монитор, магнитный накопитель (кассетный или дисковый), а также схе-мы сопряжения с малогабаритным печатающим устройством, измерительной аппа-ратурой, другими ЭВМ и т.д. Этот прибор получил название персональный компью-тер.

В 1976 г. была зарегистрирована компания Apple Comp (Стив Джекоб и Стефан Возняк), которая и начала серийный выпуск первых в мире персональных компьюте-ров "Макинтош".

Благодаря ОС, обеспечивающей простоту общения с этой ЭВМ больших биб-лиотек прикладных программ, а также низкой стоимости персональный компьютер начал стремительно внедряться в различные сферы человеческой деятельности во всем мире. Об областях и целях его использования можно прочитать в многочис-ленных литературных источниках. По данным на 1985 год, общий объем мирового производства уже составил 200⋅106 микропроцессоров и 10⋅106 персональных ком-пьютеров в год.

Что касается больших ЭВМ этого поколения, то происходит дальнейшее упро-щение контакта человек-машина. Использование в больших ЭВМ микропроцессоров и СБИС позволило резко увеличить объем памяти и реализовать некоторые функ-ции программ ОС аппаратными методами, например аппаратные реализации транс-ляторов с языков высокого уровня и т.п. Это сильно увеличило производительность ЭВМ, хотя несколько возросла и цена.

Характерным для крупных ЭВМ 4-го поколения является наличие нескольких процессоров, ориентированных на выполнение определенных операций, процедур или решение определенных классов задач. В рамках этого поколения создаются многопроцессорные вычислительные системы с быстродействием в несколько де-сятков или сотен миллионов операций/с и многопроцессорные управляющие ком-плексы повышенной надежности с автоматическим изменением структуры.

Примером вычислительной системы 4-го поколения является многопроцессор-ный комплекс "Эльбрус-2" с суммарным быстродействием 100⋅106 оп/с или вычисли-тельная система ПС-2000, содержащая до 64 процессоров, управляемых общим по-током команд. При распараллеливании вычислительного процесса суммарная ско-рость достигает 200⋅106 оп/с. Подобные суперЭВМ развивают максимальную произ-

Page 18: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

17

водительность только при решении определенных типов задач (под которые они и строились). Это, прежде всего, задачи сплошных сред, связанные с аэродинамиче-скими расчетами, прогнозами погоды, силовыми энергетическими полями и т.д. Про-изводство суперЭВМ во всем мире составляет в настоящее время десятки штук в год, и строятся они, как правило, "под заказ".

Пятое поколение Характерной особенностью пятого поколения ЭВМ является то, что основные

концепции этого поколения были заранее формулированы в явном виде. Задача разработки принципиально новых компьютеров впервые поставлена в 1979 году японскими специалистами, объединившими свои усилия под эгидой научно-исследовательского центра по обработке информации – JIPDEC. В 1981 г. JIPDEC опубликовал предварительный отчет, содержащий детальный многостадийный план развертывания научно-исследовательских и опытно-конструкторских работ с целью создания к 1991 г. прототипа ЭВМ нового поколения.

Указанная программа произвела довольно сильное впечатление сначала в Ве-ликобритании, а затем и в США. Под эгидой JIPDEC прошли ряд международных конференций, в частности – "Международная конференция по компьютерным систе-мам пятого поколения" (1981 г.), на которых полностью оформился "образ компью-тера пятого поколения". Были предложены концепции создания не только поколения ЭВМ в целом, но и вопросы архитектуры основных типов ЭВМ этого поколения, структуры программных средств и языков программирования, разработки наиболее перспективной элементной базы и способов хранения информации.

Следует отметить, однако, что оптимистические прогнозы японских специали-стов не сбылись. До сих пор не создан компьютер, в полной мере удовлетворяющий требованиям, предъявляемым к компьютерам пятого поколения.

Прежде чем перейти к изучению дальнейшего материала, следует сделать не-которые замечания. Дело в том, что, несмотря на общие принципы функционирова-ния всех ЭВМ, их конкретные реализации существенно различаются. Особенно это касается суперЭВМ, решающих весьма специфические задачи. Да и обычные се-рийные большие ЭВМ общего назначения работают, как правило, в составе вычис-лительных центров, и доступ к ним возможен только через терминалы. Кроме того, их архитектура, аппаратное и программное обеспечение достаточно сложны для первоначального изучения, поэтому в дальнейшем основное внимание будет уделе-но небольшим ЭВМ, построенным на базе микропроцессоров, в том числе персо-нальным компьютерам. Это имеет смысл еще и потому, что ЭВМ, построенные на базе микропроцессорных комплектов, представляют наибольший интерес для со-временного инженера, поскольку непосредственно участвуют в работе систем авто-матизации производственных процессов, обрабатывают данные научных экспери-ментов, принимают и обрабатывают потоки информации в каналах связи, решают небольшие расчетные инженерные задачи и т.д. В ряде случаев для решения кон-кретных задач пользователь сам на базе микропроцессорных комплектов создает специализированные контроллеры и ЭВМ.

Рассмотрим очень коротко основное отличие структур больших ЭВМ общего назначения и малых ЭВМ (миниЭВМ), появившихся в начале 70-х годов.

1.6. Большие ЭВМ общего назначения На первых этапах внедрения ЭВМ в деятельность человека решаемые задачи,

в основном, можно было разделить на два больших класса: - научные и технические расчеты – для них типичным является возможность работы со словами фиксированной длины, относительно небольшие объемы входной информации (исходных данных) и выходной информации (результатов

Page 19: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

18

расчета) и очень большое количество разнотипных вычислительных операций, которые необходимо выполнить в процессе решения; - планово-экономические расчеты, статистика носят совсем иной характер. Они связаны с вводом в машину очень большого количества (массивов) исход-ных данных. Сама же обработка требует сравнительно небольшого числа про-стейших логических и арифметических операций. Однако в результате обычно выводится и печатается большое количество информации, причем, как прави-ло, в отредактированной форме – в виде таблиц, ведомостей, различных форм и т.д. Задачи такого типа получили название задач обработки данных. ЭВМ, предназначенные для их решения, часто называли системами автоматизиро-ванной обработки данных. Подобные ЭВМ составляли основу систем АСУ. Для систем обработки данных важно иметь возможность ввода, хранения, об-

работки и вывода большого количества текстовой (алфавитно-цифровой) информа-ции, которая представлена словами переменной длины. Кроме того, для таких сис-тем важно наличие значительного числа периферийных запоминающих устройств, хранящих большое количество информации (накопители на дисках и лентах), а так-же высокопроизводительных устройств ввода и вывода данных.

Для решения этих двух типов задач первоначально строили ЭВМ, которые раз-личались уже на уровне аппаратного обеспечения. Однако резкое расширение сфе-ры использования ЭВМ, совершенствование аппаратного и программного обеспече-ния, расширение понятия научно-технических расчетов привели к стиранию границ между этими двумя типами задач, а следовательно, и типами ЭВМ. В результате появились ЭВМ общего назначения (mainframe), которые стали выполнять основной объем вычислительных работ и машинной обработки информации в различных ВЦ и АСУ.

ЭВМ общего назначения универсальны и могут использоваться как для реше-ния научно-технических задач численными методами, так и в режиме автоматиче-ской обработки данных в АСУ. Такие ЭВМ имеют высокое быстродействие, память большого объема, гибкую систему команд и способов представления данных, широ-кий набор периферийных устройств. Появление персональных компьютеров на не-которое время (3-4 года) снизило интерес к подобным ЭВМ, и их производство стало сокращаться. Однако уже к концу 80-х годов стало ясно, что персональные компью-теры не могут полностью заменить мэйнфреймы. В настоящее время многие фирмы (в том числе IBM) продолжают разрабатывать и выпускать новые модели мэйн-фреймов, на долю которых, по мнению некоторых авторов, и приходится основной объем перерабатываемой в мире информации.

Для того чтобы понять радикальные отличия структуры первых микро- и мини-ЭВМ, появившихся в начале 70 годов, от структур основных типов ЭВМ, существо-вавших в то время – ЭВМ общего назначения, необходимо рассмотреть структуру типичных представителей этих ЭВМ (например, ЕС–ЭВМ), прототипами которых бы-ли машины IBM 360/370. Их быстродействие составляло от 200 тысяч оп/с (ЕС 1030) до 5000 тысяч оп/с (ЕС 1065) и более для старших моделей машин этого семейства. Характерной особенностью подобных ЭВМ было наличие большого количества как "быстрых", так и "медленных" периферийных устройств, которые функционировали параллельно с центральным процессором и требовали специальных средств управ-ления. Упрощенная структура ЭВМ серии ЕС изображена на рис. 1.3.

Собственно обработка данных производилась в центральном процессоре (ЦП), содержащем АЛУ и УУ. Это самая быстродействующая часть ЭВМ, поэтому возни-кала проблема взаимодействия быстродействующего процессора с большим числом сравнительно медленно действующих периферийных устройств (ПУ). Для эффек-тивного использования всего вычислительного комплекса требовалось организовать параллельную во времени работу ЦП и ПУ. Такой режим в ЭВМ общего назначения

Page 20: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

19

организовывался при помощи специализированных вспомогательных процессоров ввода/вывода, называемых каналами. Периферийные устройства связывались с ка-налами через собственные блоки управления (УПУ) –их часто называли контролле-рами ПУ– и систему сопряжения, называемую интерфейсом. Коротко рассмотрим функции этих устройств.

1.6.1. Каналы Поскольку каналы предназначались для освобождения центрального процессо-

ра от вспомогательных операций, не связанных с вычислениями, они имели непо-средственный доступ к ОП параллельно ЦП, естественно со своими приоритетами. Ввиду того что ПУ различаются по быстродействию и режимам работы, каналы под-разделялись на байт-мультиплексные, блок-мультиплексные и селекторные.

Байт-мультиплексный канал мог обслуживать одновременно несколько срав-нительно медленно действующих ПУ – печатающих, УВВ с перфокарт и перфолент, дисплеев и др. Этот канал попеременно организовывал с ними сеансы связи для пе-редачи между ОП и ПУ небольших порций информации фиксированной длины (обычно 1-2 слова или байта). В простейшем случае происходил циклический опрос ПУ, например при работе с дисплейной станцией. В более сложном варианте байт-мультиплексный канал начинал обслуживать ПУ по их запросу, причем первым оп-рашивался ПУ с высшим приоритетом, а затем по очереди шло обращение ко всем остальным ПУ. Таким образом, байт-мультиплексный канал работал с "медленными" устройствами, способными ожидать обслуживание без потери информации.

Селекторный и блок-мультиплексный каналы связывали ЦП и ОП с ПУ, рабо-тающими с высокой скоростью передачи информации (магнитные диски, ленты и др.).

Селекторный канал предназначался для монопольного обслуживания одного устройства. При работе с селекторным каналом ПУ после пуска операции остава-лось связанным с каналом до окончания цепи операций. Запросы на обслуживание других ПУ, так же как и новые команды пуска операций ввода-вывода от процессора,

Интерфейс

УПУ

УПУ

УПУ

Сел. и БМ канал

ЦП

ОП

БТМ канал

Интерфейс

УПУ

УПУ

УПУ

Центральная часть

Сел. и БМ канал – селекторный и блок-мультиплексорпый канал; ЦП – центральный процессор; БТМ канал – байт-мультиплексорный канал

Рис. 1.3. Структура ЭВМ общего назначения

"Медленная" периферия

"Быстрая" периферия

Page 21: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

20

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

Блок-мультиплексный канал обладал тем свойством, что операции, не связан-ные с передачей данных (установка головок на цилиндр, поиск записи и т.д.), выпол-нялись для нескольких устройств в мультиплексном режиме, а передача блока ин-формации происходила в монопольном (селекторном) режиме.

Аппаратные средства каналов разделялись на две части: средства, предназна-ченные для обслуживания отдельных ПУ, подключенных к каналу, и оборудование, являющееся общим для устройств и разделяемое всеми устройствами во времени. Средства канала, выделенные для обслуживания одного ПУ, назывались подкана-лами.

1.6.2. Интерфейс Связи всех устройств ЭВМ друг с другом осуществлялись, как и в современных

ЭВМ, с помощью интерфейсов. Интерфейс представляет собой совокупность линий и шин сигналов, электронных схем и алгоритмов, предназначенную для осуществле-ния обмена информацией между устройствами. От характеристик интерфейсов во многом зависят производительность и надежность ЭВМ.

В заключение следует отметить, что все вышесказанное относится к серийно выпускаемым в свое время крупным ЭВМ общего назначения серии ЕС (IBM 360/370). Однако в этот же период были разработаны и серийно производились су-перЭВМ типа Крэй1, Крэй2, Кибер-205, "Эльбрус", ПС-2000, и т.д. Их колоссальная производительность достигалась за счет уникальных структур аппаратного и про-граммного обеспечения. Эти ЭВМ выпускались в незначительных количествах, как правило, под конкретный заказ. Более подробно о многопроцессорных ЭВМ речь пойдет в отдельном разделе данного курса.

1.7. Малые ЭВМ Наиболее массовое внедрение ЭВМ в деятельность человека началось тогда,

когда в конце 60-х годов удалось построить небольшие, достаточно простые, надеж-ные и дешевые вычислительные устройства, элементной базой которых были мик-росхемы. Уменьшение объема аппаратуры и стоимости машины было достигнуто за счет укорочения машинного слова (8-16 разрядов вместо 32-64 в машинах общего назначения), уменьшения по сравнению с ЭВМ общего назначения количества типов обрабатываемых данных (в некоторых моделях только целые числа без знака), ог-раниченного набора команд, сравнительно небольшого объема ОП и небольшого набора ПУ.

Укорочение машинного слова повлекло за собой множество проблем, связан-ных с представлением данных, адресацией, составом и структурой команд, логиче-ской структурой процессора, организацией обмена информацией между устройства-ми ЭВМ. В процессе эволюции ЭВМ эти проблемы, так или иначе, решались, что привело к созданию малых ЭВМ, структура которых существенно отличалась от структуры больших машин.

Следует отметить, что структуры современных микро - и миниЭВМ весьма сложны и в ряде случаев мало отличаются от структуры мощных ЭВМ – все зависит от мощности используемого процессора, объема и быстродействия ОП, производи-тельности подсистем ввода-вывода и т.д. Однако первые мини - и микроЭВМ, поя-вившиеся в начала 70-х годов, имели весьма простую структуру, радикально отли-чавшуюся от структуры больших машин того времени.

Page 22: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

21

Типичная структура такой микроЭВМ изображена на рис. 1.4.

Такая структура называется магистрально-модульной. Ее основу составляет общая магистраль (общая шина), к которой подсоединены в нужной номенклатуре и количестве все устройства машины, выполненные в виде конструктивно закончен-ных модулей. Эта структура более простая и гибкая, чем у больших ЭВМ. Устройст-ва машины обмениваются информацией только через общую магистраль.

Такая структура оказывается эффективной, а система обмена данных через общую шину – достаточно динамичной лишь при небольшом наборе ПУ.

Универсальность применения миниЭВМ при ограниченном наборе команд мог-ла быть обеспечена лишь при сравнительно высоком быстродействии процессора – в первых моделях около 200-800 тысяч операций в секунду, что превышало скорость многих ЭВМ общего назначения. Это позволяло малым ЭВМ обслуживать техноло-гические процессы в реальном масштабе времени, а также компенсировать замед-ление обработки данных, связанное с тем, что малый объем аппаратных средств вынуждал реализовывать многие процедуры обработки программным путем (напри-мер, операции арифметики с плавающей запятой).

Подобное решение оказалось настолько эффективным, что и сейчас простей-шие контроллеры и микроЭВМ строятся по этой же схеме. Однако структуры сколь-ко-нибудь сложных микро- и миниЭВМ, в частности персональных компьютеров, в процессе эволюции существенно усложнились. Современный персональный компь-ютер имеет сложную структуру магистралей, иерархию внутренней памяти и множе-ство подсистем ввода-вывода различного быстродействия. Архитектура современ-ного персонального компьютера будет рассмотрена в отдельном разделе.

Вопросы для самопроверки 1. Укажите, чем АВМ отличается от ЦВМ. 2. Назовите основные этапы эволюции ЭВМ. 3. Опишите классическую структуру ЭВМ по Нейману и укажите свойства каж-дого блока. 4. В чем заключается принцип оптимального соотношения аппаратных и про-граммных средств при построении вычислительной техники? 5. Опишите способ обращения пользователя ЭВМ к ее аппаратным средствам. 6. Что нового появилось в каждом поколении по отношению к предыдущему. 7. Чем различается принцип построения малых ЭВМ и больших ЭВМ общего пользования?

Устройство постоянной памяти

Устройство ОП

Процессор, микропро-цессор

ПУ1

ПУn

Наращивание памяти Наращивание ПУ

Общая магистраль (шина)

Рис. 1.4. Обобщенная структура первых микроЭВМ магистрально-модульной архитектуры

Page 23: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

22

2. Представление информации в ЭВМ

2.1. Позиционные системы счисления Под системой счисления понимают способ представления любого числа с по-

мощью некоторого алфавита символов, называемых цифрами. Существуют различ-ные системы счисления. От их особенностей зависят наглядность представления числа при помощи цифр и сложность выполнения арифметических операций.

В ЭВМ используются только позиционные системы счисления с различными основаниями. Позиционные системы счисления характеризуются тем, что одна и та же цифра имеет различное значение, определяющееся позицией цифры в последо-вательности цифр, изображающих число.

Пример.: • Десятичная система счисления – позиционная, • Римская система счисления – непозиционная. Количество S различных цифр, употребляющихся в позиционной системе счис-

ления, называется ее основанием. В общем случае, любое число в позиционной системе счисления можно представить в виде полинома от основания S:

...SεSεSεSε...SεSεX 22

11

00

11

1r1r

rr +++++++= −

−−

−−

− . В качестве коэффициента ε могут стоять любые из S цифр, используемых в

системе счисления. Однако для краткости число принято изображать в виде после-довательности цифр.

...εεε...εεεX 21011rr −−−= Позиции цифры, отсчитанные от запятой (точки), отделяющей целую часть от

дробной, называются разрядами. В позиционной системе счисления вес каждого разряда больше соседнего в число раз, равное основанию системы S.

Пример. Для десятичной системы счисления (основание S = 10) имеем число 6321.564.

Веса разряда и коэффициенты ε для этого числа будут следующими:

Веса 103 102 101 100 10-1 10-2 10-3 ε 6 3 2 1 5 6 4

В ЭВМ применяют двоичную, восьмеричную и шестнадцатеричную системы счисления. В дальнейшем систему счисления, в которой записано число, будем обо-значать подстрочным индексом, заключенным в круглые скобки. Например: 1101(2), 369(10), BF(16) и т.д.

2.2. Двоичная система счисления В двоичной системе счисления основание S = 2, т.е. используются всего два

символа: 0 и 1. Двоичная система счисления проще десятичной. Однако двоичное изображение числа требует большего (для многоразрядного числа примерно в 3,3 раза) числа разрядов, чем его десятичное представление. Тем не менее применение двоичной системы создает большие удобства для проектирования ЭВМ, так как для представления в машине разряда двоичного числа может быть использован любой простой элемент, имеющий всего два устойчивых состояния. Также достоинством двоичной системы счисления является простота двоичной арифметики.

В общем виде двоичное число выглядит следующим образом:

...2ε2ε2ε2ε...2ε2εX 22

11

00

11

1r1r

rr +++++++= −

−−

−−

− , где 0,1ε i = .

Вес каждого разряда в двоичной системе счисления кратен 2 или 1/2.

Page 24: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

23

Пример. Двоичное число – 101101(2).

Веса

ε

→ ( )1045=

10110122222212481632

012345 ,

т.е. ( )10012345 45212021212021 =⋅+⋅+⋅+⋅+⋅+⋅ .

Как и в десятичной, в двоичной системе счисления для отделения целой части от дробной используется точка. Значение веса разрядов справа от точки равно ос-нованию двоичной системы (2), возведенному в отрицательную степень. Такие веса – это дроби вида: 1/2, 1/22, 1/23, 1/24, 1/25 или 1/2, 1/4, 1/8, 1/16. Их можно выразить через десятичные дроби: 2-1 = 0.5, 2-2 = 0.25, 2-3 = 0.125, 2-4 = 0,0625.

В общем случае двоичное число имеет целую и дробную части, например 1101101.10111.

Каждая позиция, занятая двоичной цифрой, называется битом. Бит является наименьшей единицей информации в ЭВМ. Наименьшим значащим битом (МЗР) на-зывают самый младший двоичный разряд, а самым старшим двоичным разрядом – наибольший значащий бит (СЗР). В двоичном числе эти биты имеют соответственно наименьший и наибольший вес. Обычно двоичное число записывают так, что стар-ший значащий бит является крайним слева.

2.2.1. Преобразование двоичных чисел в десятичные Для преобразования двоичных чисел в десятичные необходимо сложить деся-

тичные веса всех разрядов двоичного числа, в которых содержатся единицы.

Пример. Преобразовать целое двоичное число 11001100(2) в десятичное.

210 0 4 8 0 0 64 128

1 1 0 0 1 1 0 0

23

24

25

204(10)

27

20

22

26

Преобразование вещественного двоичного числа 101.011(2) будет выглядеть следующим образом:

2-3 0.1250.25 0 1 0 4

1 0 1 . 0 1 1

2-1

20

21

5.375(10)

22

2-2

Если преобразуемое число большое, то операцию перевода удобнее делать

отдельно для целой и дробной частей.

Page 25: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

24

2.2.2. Преобразование десятичных чисел в двоичные При работе с ЭВМ, особенно с микропроцессорами, очень часто приходится

выполнять преобразование десятичных чисел в двоичные. Для преобразования целого десятичного числа в двоичное необходимо разде-

лить его на основание новой системы счисления (S = 2). Полученное частное снова делится на основание новой системы счисления, до тех пор пока частное, получен-ное в результате очередного деления, не будет меньше основания новой системы счисления. Последнее частное (являющееся старшим значащим разрядом) и все полученные остатки от деления составляют число в новой системе счисления.

Проиллюстрируем преобразование на примере.

Пример. Перевести целое десятичное число 10(10) в двоичное число.

т.е. 10(10)=1010(2)

СЗР

21⇑

2220

2 5 4 1

10 10

МЗР⇒ 0

Если процедуру перевода выполняет человек, то последний шаг получения ча-стного, равного нулю, никогда не делается. Если перевод выполняется ЭВМ, то он необходим. Таким образом, полный вариант преобразования 10(10) будет иметь сле-дующий вид:

20

2101 ⇐ СЗР

10(10)=1010(2)2220

2541

1010

МЗР⇒0

Пример. Десятичное число 57(10) преобразовать в двоичное число.

20⇐ СЗР

57(10)=111001(2)22828

0

5756

МЗР⇒1214140

2761

2321

2101

Для перевода дробных чисел (или дробных частей вещественных чисел) тре-буется другая процедура преобразования. Рассмотрим ее на примере. Пример. Десятичное число 0.375(10) преобразовать в двоичное число.

1. Умножим дробь на основание новой системы счисления S = 2: 2*0.375 = 0.75. 2. Если результат умножения меньше единицы, то СЗР присваивают значе-ние 0. Если больше единицы, то присваивают значение 1. Поскольку 0.75<1, то СЗР=0.

Page 26: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

25

3. Результат предыдущей операции вновь умножаем на основание новой сис-темы счисления 2. Если бы он был больше единицы, то в этой операции умно-жения участвовала бы только его дробная часть. В данном случае: 2*0.75=1.5. 4. Поскольку 1.5>1, то ближайшему разряду справа от СЗР присваивается зна-чение один, а следующая операция умножения производится только над дроб-ной частью числа 1.5, т.е. над числом 0.5: 2*0.5=1. 5. Шаги описанной процедуры повторяются до тех пор, пока либо результат ум-ножения не будет точно равен 1 (как в рассматриваемом примере), либо не бу-дет достигнута требуемая точность. Таким образом, 0.375(10) = 0.011(2). Если в результате умножения на основание новой системы счисления S = 2 ре-

зультат не равен единице, операцию останавливают при достижении необходимой точности, а целую часть результата последней операции умножения используют в качестве значения МЗР.

Пример. Десятичное число 0.34375(10) преобразовать в двоичное число.

00*211.00.5*211.50.75*200.750.375*211.3750.6875*2

(СЗР)00.68750.34375*2

=====

Таким образом, 0.34375(10) = 0.01011(2).

Пример. Десятичное число 0.3(10) преобразовать в двоичное число.

0011001

(СЗР)0

8.04.0*24.02.0*22.16.0*26.18.0*28.04.0*24.02.0*22.16.0*26.03.0*2

========

Далее будут следовать повторяющиеся группы операций и результатов, поэто-му ограничимся восемью разрядами, т.е. 0.3(10) = 0.01001100(2).

Из рассмотренных выше примеров видно, что если десятичное число дробное, то его преобразование в двоичное должно выполняться отдельно над его целой и дробной частями.

Следует иметь в виду, что рассмотренные процедуры перевода целых и дроб-ных чисел из десятичных в двоичные и обратно являются общими для перевода чи-сел в любых позиционных системах счисления (т.е. целое число делится на основа-ние системы счисления, в которую число переводится, а правильная дробь умножа-ется). Притом надо помнить, что при выполнении переводов чисел из одной системы счисления в другую все необходимые арифметические действия выполняются в той системе счисления, в которой записано переводимое число.

Page 27: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

26

2.2.3. Двоично-десятичная система счисления Эта система имеет основание S = 10, но каждая цифра изображается четырех-

разрядным двоичным числом, называемым тетрадой. Обычно данная система счис-ления используется в ЭВМ при вводе и выводе информации. Однако в некоторых типах ЭВМ в АЛУ имеются специальные блоки десятичной арифметики, выполняю-щие операции над числами в двоично-десятичном коде. Это позволяет в ряде слу-чаев существенно повышать производительность ЭВМ.

Например, в автоматизированной системе обработки данных чисел много, а вычислений мало. В этом случае операции, связанные с переводом чисел из одной системы в другую, существенно превысили бы время выполнения операций по об-работке информации.

Перевод чисел из десятичной системы в двоично-десятичную весьма прост и заключается в замене каждой цифры двоичной тетрадой.

Пример. Записать десятичное число 572.38(10) в двоично-десятичной системе счисления.

)102()10( 00111000.1001010111001000001100100111010183.275 −=

Обратный перевод также прост: необходимо двоично-десятичное число раз-бить на тетрады от точки влево (для целой части) и вправо (для дробной), дописать необходимое число незначащих нулей, а затем каждую тетраду записать в виде де-сятичной цифры.

Пример. Записать двоично-десятичное число 10010.010101(2-10) в десятичной системе счис-ления.

)10()102( 54.124521

01000101.00100001 =−

Перевод чисел из двоично-десятичной в двоичную систему осуществляется по общим правилам, описанным выше.

2.3. Восьмеричная система счисления В восьмеричной системе счисления употребляются всего восемь цифр, т.е. эта

система счисления имеет основание S = 8. В общем виде восьмеричное число вы-глядит следующим образом:

...8888...88 22

11

00

11

11 +++++++= −

−−

−−

− εεεεεε rr

rrX ,

где 7,0=jε . Восьмеричная система счисления не нужна ЭВМ в отличие от двоичной систе-

мы. Она удобна как компактная форма записи чисел и используется программистами (например, в текстах программ для более краткой и удобной записи двоичных кодов команд, адресов и операндов). В восьмеричной системе счисления вес каждого раз-ряда кратен восьми или одной восьмой, поэтому восьмиразрядное двоичное число позволяет выразить десятичные величины в пределах 0-255, а восьмеричное охва-тывает диапазон 0-99999999 (для двоичной это составляет 27 разрядов).

Поскольку 8=23, то каждый восьмеричный символ можно представить трехбито-вым двоичным числом. Для перевода числа из двоичной системы счисления в вось-меричную необходимо разбить это число влево (для целой части) и вправо (для дробной) от точки (запятой) на группы по три разряда (триады) и представить каж-дую группу цифрой в восьмеричной системе счисления. Крайние неполные триады дополняются необходимым количеством незначащих нулей.

Page 28: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

27

Пример. Двоичное число 10101011111101(2) записать в восьмеричной системе счисления.

)8()2( 2537557352

101111011101010 =

Пример. Двоичное число 1011.0101(2) записать в восьмеричной системе счисления.

( ) ( )

423124.13100010.011001 82 =

Перевод из восьмеричной системы счисления в двоичную осуществляется пу-тем представления каждой цифры восьмеричного числа трехразрядным двоичным числом (триадой).

2.4. Шестнадцатеричная система счисления Эта система счисления имеет основание S = 16. В общем виде шестнадцате-

ричное число выглядит следующим образом:

...16161616...1616 22

11

00

11

11 +++++++= −

−−

−−

− εεεεεε rr

rrX ,

где FEDCBAi ,,,,,,9,0=ε .

.151413121110

)10()16()10()16()10()16(

)10()16()10()16()10()16(

======

FEDCBA

Шестнадцатеричная система счисления позволяет еще короче записывать мно-горазрядные двоичные числа и, кроме того, сокращать запись 4-разрядного двоично-го числа, т.е. полубайта, поскольку 16=24. Шестнадцатеричная система также при-меняется в текстах программ для более краткой и удобной записи двоичных чисел.

Для перевода числа из двоичной системы счисления в шестнадцатеричную не-обходимо разбить это число влево и вправо от точки на тетрады и представить каж-дую тетраду цифрой в шестнадцатеричной системе счисления.

Пример. Двоичное число 10101011111101(2) записать в шестнадцатеричной системе.

)16()2( 22

1101111110100010 AEDDEA

=

Пример. Двоичное число 11101.01111(2) записать в шестнадцатеричной системе.

)16()2( 78.1871

10000111.11010001 DD

=

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

В заключение следует отметить, что перевод из одной системы счисления в другую произвольных чисел можно осуществлять по общим правилам, описанным в разделе “Двоичная система счисления”. Однако на практике переводы чисел из де-сятичной системы в рассмотренные системы счисления и обратно осуществляются через двоичную систему счисления.

Кроме того, следует помнить, что шестнадцатеричные и восьмеричные числа – это только способ представления больших двоичных чисел, которыми фактически

Page 29: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

28

оперирует процессор. При этом шестнадцатеричная система оказывается предпоч-тительнее, поскольку в современных ЭВМ процессоры манипулируют словами дли-ной 4, 8, 16, 32 или 64 бита, т.е. длиной слов, кратной 4. В восьмеричной же системе счисления предпочтительны слова, кратные 3 битам, например слова длиной 12 бит (как в PDP-8 фирмы DEC).

2.5. Двоичная арифметика Правила выполнения арифметических действий над двоичными числами опре-

деляются арифметическими действиями над одноразрядными двоичными числами.

↵↑

==−=+==−=+==−=+==−=+

11*11110101101*001110100*100111000*0000000

УмножениеВычитаниеСложение

перенос в старший разряд

Правила выполнения арифметических действий во всех позиционных системах счисления аналогичны.

2.5.1. Сложение Как и в десятичной системе счисления, сложение двоичных чисел начинается с

правых (младших) разрядов. Если результат сложения цифр МЗР обоих слагаемых не помещается в этом же разряде результата, то происходит перенос. Цифра, пере-носимая в соседний разряд слева, добавляется к его содержимому. Такая операция выполняется над всеми разрядами слагаемых от МЗР до СЗР.

Пример. Сложить два числа в десятичном и двоичном представлении (формат – 1 байт).

Перенос (единицы) 11 1111111 Слагаемое 1 099(10) 01100011(2) Слагаемое 2 095(10) 01011111(2) Сумма 194(10) 11000010(2)

Операция получается громоздкая со многими переносами, но удобная для ЭВМ.

2.5.2. Вычитание Операция вычитания двоичных чисел аналогична операции в десятичной сис-

теме счисления. Операция вычитания начинается, как и сложение, с МЗР. Если со-держимое разряда уменьшаемого меньше содержимого одноименного разряда вы-читаемого, то происходит заем 1 из соседнего старшего разряда. Операция повто-ряется над всеми разрядами операндов от МЗР до СЗР.

Поясним это примером.

Пример. Вычесть два числа в десятичном и двоичном представлении (формат – 1 байт).

Заем (единица) 1 01100000 Уменьшаемое 109(10) 01101101(2) Вычитаемое 049(10) 00110001(2) Разность 060(10) 00111100(2)

Page 30: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

29

Второй вариант операции вычитания – когда уменьшаемое меньше вычитаемо-го – приведен в разделе представления двоичных чисел в дополнительном коде.

2.5.3. Умножение Как и в десятичной системе счисления, операция перемножения двоичных мно-

горазрядных чисел производится путем образования частичных произведений и по-следующего их суммирования. Частичные произведения формируются в результате умножения множимого на каждый разряд множителя, начиная с МЗР. Каждое час-тичное произведение смещено относительно предыдущего на один разряд. По-скольку умножение идет в двоичной системе счисления, каждое частичное произве-дение равно либо 0 (если в соответствующем разряде множителя стоит 0), либо яв-ляется копией множимого, смещенного на соответствующее число разрядов влево (если в разряде множителя стоит 1). Поэтому умножение двоичных чисел идет путем сдвига и сложения. Таким образом, количество частичных произведений определя-ется количеством единиц в множителе, а их сдвиг – положением единиц (МЗР час-тичного произведения совпадает с положением соответствующей единицы в множи-теле). Положение точки в дробном числе определяется так же, как и при умножении десятичных чисел.

Пример. Вычислить произведение 17(10)*12(10) в двоичной форме.

+

11001100 = 204(10)

10001 - сдвинуто на 3 разряда10001 - сдвинуто на 2 разряда

*0001000100001100

17(10)=00010001(2); 12(10)=00001100(2)

Естественно, что при сложении частичных произведений в общем случае воз-никают переносы.

Теперь рассмотрим машинный вариант операции перемножения. Общий алго-ритм перемножения имеет вид

⎩⎨⎧

≠−=+

=

==

. sign(Y)sign(X) ,sign(Y)sign(X) ,

sign(Z)

,Y*X*sign(Z)Y*XZ

Как отмечалось выше, операция перемножения состоит в формировании суммы частичных произведений, которые суммируются с соответствующими сдвигами от-носительно друг друга. Этот процесс суммирования можно начинать либо с младше-го, либо со старшего частичного произведения. В ЭВМ процессу суммирования при-дают последовательный характер, т.е. формируют одно частичное произведение, к нему с соответствующим сдвигом прибавляют следующее и т.д. (т.е. не формируют все частичные произведения, а потом их складывают). В зависимости от того, с како-го частичного произведения начинается суммирование (старшего или младшего), сдвиг текущей суммы осуществляется влево или вправо. При умножении целых чи-сел для фиксации результата в разрядной сетке число разрядов должно равняться сумме числа разрядов в X и Y.

Рассмотрим на примере два машинных варианта выполнения умножения целых чисел: начиная со старшего частичного произведения (“старшими разрядами впе-

Page 31: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

30

ред”) и начиная с младшего частичного произведения (“младшими разрядами впе-ред”).

Пример. Найти произведение двух чисел X*Y=1101(2)*1011(2)=13(10)*11(10)= 143(10).

Обозначим Pi – i-е частичное произведение. 1. Умножение старшими разрядами вперед:

1 10

+

P41101 1 Y=

сдвиг на 1 разряд влево 11010 P30000 сумма P4 + P3 11010 сдвиг на 1 разряд влево 110100

+ P21101 сумма P4+P3+P2 1000001 сдвиг на 1 разряд влево 10000010

+ P11101 сумма P4+P3+P2+P1 (результат) = 143(10) 10001111

2. Умножение младшими разрядами вперед:

1 1 0

+

P11101 1 Y=

сдвиг на 1 разряд вправо01101P21101сумма P1 + P2 100111

сдвиг на 1 разряд вправо 100111+ P30000

сумма P1+P2+P3 100111сдвиг на 1 разряд вправо0100111

+ P41101сумма P1+P2+P3+P4 (результат)=143(10) 10001111

2.5.4. Деление Деление – операция, обратная умножению, поэтому при делении двоичных чи-

сел, так же как и в десятичной системе счисления, операция вычитания повторяется до тех пор, пока уменьшаемое не станет меньше вычитаемого. Число этих повторе-ний показывает, сколько раз вычитаемое укладывается в уменьшаемом.

Пример. Вычислить 204(10) /12(10) в двоичном коде.

-

-

-

-

- 10001, т.е. результат 10001(2)=17(10)

0

0

0

0

110

011

01

1100 1100

1100 110011001100

204(10)=11001100(2); 12(10)=1100(2)

Page 32: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

31

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

Пример. Вычислить 1100.011(2)/10.01(2).

2.6. Прямой, обратный и дополнительный коды В целях упрощения выполнения арифметических операций и определения зна-

ка результата применяют специальные коды для представления чисел. Операция вычитания (или алгебраического сложения) чисел сводится к арифметическому сло-жению кодов, облегчается выработка признаков переполнения разрядной сетки. В результате упрощаются устройства, выполняющие арифметические операции.

Для представления чисел со знаком в ЭВМ применяют прямой, обратный и до-полнительный коды.

Общая идея построения кодов такова. Код трактуется как число без знака, а диапазон представляемых кодами чисел без знака разбивается на два поддиапазо-на. Один из них представляет положительные числа, другой – отрицательные. Раз-биение выполняется таким образом, чтобы принадлежность к поддиапазону опреде-лялась максимально просто.

Наиболее распространенным и удобным является формирование кодов таким образом, чтобы значение старшего разряда указывало на знак представляемых чи-сел, т.е. использование такого кодирования позволяет говорить о старшем разряде как о знаковом (бит знака) и об остальных как о цифровых разрядах кода.

2.6.1. Прямой код Это обычный двоичный код, рассмотренный в разделе двоичной системы счис-

ления. Если двоичное число является положительным, то бит знака равен 0, если двоичное число отрицательное, то бит знака равен 1. Цифровые разряды прямого кода содержат модуль представляемого числа, что обеспечивает наглядность пред-ставления чисел в прямом коде (ПК).

Рассмотрим однобайтовое представление двоичного числа. Пусть это будет 28(10). В двоичном формате – 0011100(2) (при однобайтовом формате под величину числа отведено 7 разрядов). Двоичное число со знаком будет выглядеть так, как по-казано на рис. 2.1.

0

–28(10)=10011100(2) +28(10)=00011100(2)

модуль модуль бa

1

Рис. 2.1. Формат двоичного числа со знаком в прямом коде: а – положительное число; б – отрицательное

-

-

-101.1

0

11011 10010

10010

1001010010

100101100011

Page 33: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

32

Сложение в прямом коде чисел, имеющих одинаковые знаки, достаточно про-сто: числа складываются, и сумме присваивается знак слагаемых. Значительно бо-лее сложным является алгебраическое сложение в прямом коде чисел с разными знаками. В этом случае приходится определять большее по модулю число, произво-дить вычитание модулей и присваивать разности знак большего по модулю числа. Такую операцию значительно проще выполнять, используя обратный и дополни-тельный коды.

2.6.2. Обратный код В обратном коде (ОК), так же как и в прямом коде, для обозначения знака по-

ложительного числа используется бит, равный нулю, и знака отрицательного – еди-ница. Обратный код отрицательного двоичного числа формируется дополнением модуля исходного числа нулями до самого старшего разряда модуля, а затем пораз-рядной заменой всех нулей числа на единицу и всех единиц на нули. В знаковом разряде обратного кода у положительных чисел будет 0, а у отрицательных – 1.

На рис. 2.2 приведен формат однобайтового двоичного числа в обратном коде.

В общем случае ОК является дополнением модуля исходного числа до наи-большего числа без знака, помещенного в разрядную сетку.

Алгоритм формирования ОК очень прост, при этом ОК позволяет унифициро-вать операции сложения и вычитания в АЛУ, которые в прямом коде выполняются по-разному. Однако работа с ОК вызывает ряд трудностей. В частности, возникают два нуля: +0 и -0, т.е. в прямом коде (в котором представлены положительные чис-ла) имеет место (+0) = 000...0, а в обратном коде (в котором представлены отрица-тельные числа): (-0) = 111...1.

Кроме того, в операциях сложения и вычитания требуется дополнительная операция по прибавлению бита переноса в младший разряд суммы. Рассмотрим правила алгебраического сложения в ОК (поскольку А-В=А+(-В)). Алгоритм сложения в ОК содержит:

• сложение кодов, включая знаковый разряд; • прибавление переноса к МЗР (младшему значащему разряду) суммы.

Пример. Вычислить выражение -3(10) -2(10).

011 1

Обратный код Прямой код

Измен.

Измен.

010 + 1

-3(10) + -2(10)

Бит знака равен 1, сле-довательно, результат отрицательный в ОК. Результат в ПК имеет вид: 1101 или -5(10).

=1010

перенос

001

1001

101+

111

0

–28(10)=11100011(2)+28(10)=00011100(2)

инверс.модульмодуль бa

1

Рис. 2.2. Формат двоичного числа со знаком в обратном коде: а – положительное число; б – отрицательное

Page 34: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

33

Пример. Вычислить 7(10)-3(10).

1110

Обратный кодПрямой код

Измен.

Не измен.

011+1

7(10)+-3(10)

Бит знака равен0, следовательно,результат поло-жительный +4(10) вПК.

=0100

перенос

011

1110

100+

101

Указанные трудности привели к тому, что в современных ЭВМ абсолютное большинство операций выполняется в дополнительном коде.

2.6.3. Дополнительный код Дополнительный код (ДК) строится следующим образом. Сначала формируется

обратный код (ОК), а затем к младшему разряду (МЗР) добавляют 1. При выполне-нии арифметических операций положительные числа представляются в прямом ко-де (ПК), а отрицательные числа – в ДК, причем обратный перевод ДК в ПК осущест-вляется аналогичными операциями в той же последовательности. На рис. 2.3 рас-смотрена цепь преобразований числа из ПК в ДК и обратно в двух вариантах.

Пример. Число -5(10) перевести в ДК и обратно (первый вариант).

101 1

ДК (-)

ОК (-)ПК (-)

011

010 + 1 1

1

101

ДК (-)ДК (-)

ПК (-)

011100+ 1

1

1

1

Пример. Число -5(10) перевести в ДК и обратно (второй вариант).

101 0 мод. ПК

+

ДК (-)0111

ДК (-)

ОК (-)

011

010 1

1

1

101

ДК

мод. ПК

100+ 1

0

0

Использование ДК для представления отрицательных чисел устраняет дву-смысленное представление нулевого результата (наличие двух нулей: +0 и -0), так как -0 исчезает.

ДК ДК ОК

(-)

+1инверс (кроме знака)

ПК (-) числа

ПК (-) числа

инверс(кроме знака)

+1

ДК ДК ОК

(-)

+1инверс ПК модуль

ПК модуль

инверс +1

Рис. 2.3. Два варианта преобразования чисел из ПК в ДК и обратно

Page 35: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

34

В общем случае использованием ДК для записи отрицательных чисел можно перекрыть диапазон десятичных чисел от -2k-1 до +2k-1-1, где k – число используемых двоичных разрядов, включая знаковый. Так, с помощью одного байта можно пред-ставить десятичные числа от -128 до +127 либо только положительные числа от 0 до 255 (здесь под положительными числами понимаются числа без знака). В табл.2.1 приведены 4-разрядные двоичные числа от 0000 до 1111 и десятичные числа для представления их со знаком и без знака. Из этой таблицы следует, что в формате 4-разрядного двоичного числа могут быть представлены десятичные числа со знаком в диапазоне от -8 до +7 или десятичные числа без знака в диапазоне от 0 до +15.

Оба способа представления чисел широко используются в ЭВМ.

Таблица 2.1 Представление десятичных чисел одним полубайтом

4 - разрядное двоичное число

Десятичные эквиваленты двоичного числа со знаком

Десятичные эквиваленты двоичного числа без знака

0000 +0 0 0001 +1 1 . . . . ПК . . . . . . 0110 +6 6 0111 +7 7 1000 -8 8 1001 -7 9 1010 -6 10 . . . . ДК . . . . . . 1110 -2 14 1111 -1 15

В ЭВМ используется быстрый способ формирования ДК.При этом двоичное число просматривается от МЗР к СЗР. Пока встречаются нули, их копируют в разря-ды результата. Первая встретившаяся единица также копируется в соответствую-щий разряд, а каждый последующий бит исходного числа заменяется на противопо-ложный (0 на 1, 1 на 0).

Пример. Число -44(10) (10101100 (2)) перевести в ДК и обратно.

Проверка:

ОК

ПК инверсия

1010100 ДК

1010011

0101100

+1

1

1

1

0101 1

ДК

ПК сохраняется инвертируется

100

1

1 1010 100

0101 ПК 100

инвертируется сохраняется

Пример. Перевести в ДК модуль числа -44.

0101

ДК (-44)

ПК числа без знакаСохран. Инверс.

100

1

0

1010 100

Видно, что результаты преобразований обоими методами совпадают.

Page 36: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

35

2.6.4. Сложение и вычитание в дополнительном коде При выполнении арифметических операций в современных ЭВМ используется

представление положительных чисел в прямом коде (ПК), а отрицательных – в об-ратном (ОК) или в дополнительном (ДК) кодах. Это можно проиллюстрировать схе-мой на рис. 2.4.

Общее правило. При алгебраическом сложении двух двоичных чисел, пред-

ставленных обратным (или дополнительным) кодом, производится арифметическое суммирование этих кодов, включая разряды знаков. При возникновении переноса из разряда знака единица переноса прибавляется к МЗР суммы кодов при использова-нии ОК и отбрасывается при использовании ДК. В результате получается алгебраи-ческая сумма в обратном (или дополнительном) коде.

Рассмотрим подробнее алгебраическое сложение для случая представления отрицательных чисел в ДК.

При алгебраическом сложении чисел со знаком результатом также является число со знаком. Суммирование происходит по всем разрядам, включая знаковые, которые при этом рассматриваются как старшие. При переносе из старшего разряда единица переноса отбрасывается и возможны два варианта результата:

• знаковый разряд равен нулю: результат – положительное число в ПК; • знаковый разряд равен единице: результат – отрицательное число в ДК. Для определения абсолютного значения результата его необходимо инверти-

ровать, затем прибавить единицу.

Пример. Вычислить алгебраическую сумму 58-23.

- ПК58(10) → 0011 1010(2)

- ДК- ПК Число отрицательное - необхо-

димо перевести в ДК (быстрый перевод)

1110 1001(2) -28(10) → 1001 0111(2)

+ 0011 1010 Перенос из знакового разряда отбрасываем. Число является положительным в ПК.

(ПК) = 35(10) 1 ← 0010 0011(2) 1110 1001

перенос

Пример. Вычислить алгебраическую сумму 26-34.

. - ПК26(10) → 0001 1010(2)

- ДК- ПК

Быстрый перевод 1101 1110(2)

-34(10) → 1010 0010(2)

Перенос из знакового разряда отсутст-вует. Число отрицательное в ДК, так как знаковый разряд равен 1.

+ 0001 1010

0 ← 1111 1000(2) 1101 1110

перенос

ПК ОК ДК

Мод.дв.числа0 Мод.дв.числа0 Мод.дв.числа0

Мод.дв.числа 1Мод.дв.числа 1

ОК+1МЗР 1

а б

Рис. 2.4. Представление чисел в ЭВМ: а – положительное число; б – отрицательное число

Page 37: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

36

. Вычислим результат, преобразовав его из ДК в ПК : 1111 1000(2) (ДК)

Инверсия всех разрядов, кроме знакового + 1000 0111

(ПК) = - 8(10) 1000 1000(2) 1

Пример. Вычислить алгебраическую сумму -5-1.

+ 1011

-5(10) → 1101 (ПК) →1011 (ДК)

1 ← 1010 (2) 1111

-1(10) → 1001 (ПК) →1111 (ДК)

Запишем результат, преобразовав его из ДК в ПК:

Инверсия значащих разрядов (кроме знакового)

1010(2) (ДК)

+ 1101

(ПК) = - 6(10) 1110(2) 1

Перенос из знакового разряда отбросить. Число отрицательное в ДК, так как знаковый разряд равен 1.

перенос

2.6.5. Признак переполнения разрядной сетки При алгебраическом суммировании двух чисел, помещающихся в разрядную

сетку, может возникнуть переполнение, т.е. образуется сумма, требующая для сво-его представления на один двоичный разряд больше, чем разрядная сетка слагае-мых. Предполагается, что положительные числа представляются в прямом коде, а отрицательные − в дополнительном.

Признаком переполнения является наличие переноса в знаковый разряд суммы при отсутствии переноса из знакового разряда (положительное переполнение) или наличие переноса из знакового разряда суммы при отсутствии переноса в знаковый разряд (отрицательное переполнение).

При положительном переполнении результат операции положительный, а при отрицательном переполнении – отрицательный.

Если и в знаковый, и из знакового разряда суммы есть переносы или этих пере-носов нет, то переполнение отсутствует.

Рассмотрим простейшие примеры с трехбитовыми словами. Диапазон чисел, которые они представляют, равен от -4 до +3. В рассматриваемых словах 1 бит зна-ка и 2 информационных бита.

1. Алгебраическое суммирование без переноса.

0←

2+1=3+

1(10) → 001(2) ПК ПК = 3(10)

2(10) → 010(2) ПК

011(2)

001(2)

010(2)

0перенос

Поскольку перенос в знаковый разряд или из знакового разряда суммы отсутст-вует, то переполнения нет.

Результат – положительное число в ПК, равное 3.

Page 38: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

37

2. Алгебраическое суммирование с двумя переносами.

11←

-3-1=-4+

ДК=-4(10)-1(10) → 101(2) ПК→ 111(2) ДК-3(10) → 111(2) ПК→ 101(2) ДК

100(2)

111(2)

101(2)

перенос

Имеются переносы в знаковый разряд и из знакового разряда вычисляемой суммы, поэтому переполнения нет.

Результат – отрицательное число в ДК, равное -4. 3. Алгебраическое суммирование с одним переносом. (Положительное переполнение).

10←

2+2=4+

ДК = ?(10)2(10) → 010(2) ПК2(10) → 010(2) ПК

100(2)

010(2)

010(2)

перенос

При суммировании есть перенос в знаковый разряд суммы, а перенос из знако-вого разряда отсутствует, т.е. имеет место положительное переполнение, и резуль-тат операции положительный.

Число 4 нельзя представить в прямом коде. Формальный результат равен -4. 4. Алгебраическое суммирование с одним переносом. (Отрицательное переполнение).

01←

-3-2=-5+

ДК=?(10)-2(10) → 010(2) ПК→ 110(2) ДК-3(10) → 111(2) ПК→ 101(2) ДК

011(2)

110(2)

101(2)

перенос

Число -5 нельзя представить 3-битовой комбинацией. Формальный результат равен +3.

Из рассмотренных ранее примеров видно, что арифметические операции в до-полнительном коде выполняются достаточно просто. Необходимо только не упус-кать из виду то, с какими числами происходит работа в данный момент – без знака или со знаком. Поскольку внешний вид обоих чисел одинаков, возможны ошибки.

2.6.6. Деление в дополнительном коде Деление в дополнительном коде осуществляется по тем же правилам, что были

описаны в п. 5.4. разд. "Двоичная арифметика". Но метод деления "столбиком" для ЭВМ не пригоден. Используются более громоздкие методы деления, которые здесь не рассматриваются. Информацию о них можно найти в литературе, приведенной в конце главы.

2.6.7. Правило перевода из дополнительного кода в десятичную систему Перевод чисел из дополнительного кода в десятичную систему можно прово-

дить по схеме, приведенной на рис. 2.5. Однако существует прямой способ перевода числа из ДК в десятичную систему

без использования промежуточного перевода в ПК.

Page 39: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

38

Рассмотрим машинное слово произвольной длины (рис. 2.6). При прямом спо-собе перевода десятичное число со знаком формируется как сумма разрядов со своими весами и знаками (старший N-й разряд имеет отрицательный вес).

Проиллюстрируем перевод чисел из ДК в десятичную систему примерами.

Пример. Перевести число 1110 из ДК в десятичную систему.

(2)

-23 22 21 20

0111 (ДК) = -8+4+2 = -2(10)

Вес →

Проверим правильность перевода, используя промежуточный перевод в ПК:

число в ПК, т.е.

инверсия

010

число в ДК110

+001

1

1

1

1010(2) = -(0+21+0) = -2(10)

1

Пример. Перевести число 101100 из ДК в десятичную систему.

101100(2) (ДК) = -25+23+22 = -32+8+4 = -20(10)

Проверим:

число в ПК, т.е.

инверсия

10100

число в ДК01100

+10011

1

1

1

110100(2)=-(24+22)=-20(10)

1

2.6.8. Модифицированные коды Эти коды отличаются от прямого, обратного и дополнительного кодов тем, что

на изображение знака отводится два разряда: если число положительное – 00, если число отрицательное – 11. Такие коды оказались удобны (с точки зрения построения АЛУ) для выявления переполнения разрядной сетки. Если знаковые разряды ре-

ДК Десятичная система счисления

ПК

Рис. 2.5. Схема перевода из ДК в десятичную систему

Номер разряда 0 1 . . . N-2 N-3N-1

Вес разряда 20 21 -2N-1 2N-2 2N-3знак

Рис. 2.6. Машинное слово длиной N

. . .

Page 40: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

39

зультата принимают значение 00 и 11, то переполнения разрядной сетки не было, а если 01 или 10 – то было переполнение. Вернемся к примерам в п. 2.6.5.

2 + 1 = 3

0011

+ 0001 0010

– знаковые –разряды

– знаковые –разряды

В этих примерах переполнение есть

2 + 2 = 4

0110

+ 0010 0010

-3 - 2 = -5

1011

+ 11101101

-3 - 1 = -4

1100

+ 1111В этих примерах переполнения нет

1101

В предыдущих разделах рассмотрены основные принципы выполнения ариф-метических операций, из которых видно, что все арифметические операции с двоич-ными числами могут быть сведены к операциям суммирования в прямом или допол-нительном кодах, а также операциям сдвига двоичного числа вправо или влево. Ре-альные алгоритмы выполнения операций умножения и деления в современных ЭВМ достаточно громоздки и здесь не рассматриваются.

2.6.9. Арифметика повышенной точности Проблема точности возникает, как правило, при работе с микро- и миниЭВМ,

имеющих небольшую длину машинного слова (1-2 байта). Рассмотрим микропроцес-сор, работающий со словами длины 1 байт. Этот формат позволяет представить це-лые числа в диапазоне от -128 до 127. Очевидно, что для решения большинства за-дач такого диапазона чисел недостаточно. Использование двух однобайтовых слов (16 бит) позволяет представить уже числа в диапазоне от -32768 до 32767. Это так называемые числа с двойной точностью. Иногда используются числа тройной точно-сти (1 бит – знак и 23 бита для модуля числа). Это обеспечивает диапазон уже от -8388608 до 8388607, т.е. точность существенно повышается.

Однако при работе с арифметикой повышенной точности требуется больший объем памяти для хранения того же объема данных и более интенсивная работа процессора. Увеличение объема требуемой памяти достаточно очевидно. Рассмот-рим очень коротко последовательность операций при сложении чисел с тройной точностью. Здесь уже недостаточно извлечь два слова из памяти, сформировать сумму в аккумуляторе и переслать результат в однобайтовую ячейку памяти. Снача-ла необходимо произвести обращение к младшему значащему байту каждого числа. После сложения результат записывается в память, а возможные при этом переносы подлежат временному хранению. Затем извлекаются средние по значимости байты, их складывают и к сумме добавляют биты переноса, полученные в результате пре-дыдущей операции. Результат записывается в память на место, специально заре-зервированное для среднего байта суммы. Со старшим байтом поступают аналогич-но.

Таким образом, при использовании арифметики тройной точности требуются в три раза большие объем памяти и время на операции сложения по сравнению с арифметикой одинарной точности. Кроме того, в случае возникновения прерываний необходимо временно хранить содержимое регистра переносов (то же самое для вычитания, умножения и деления).

Page 41: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

40

2.7. Представление дробных чисел в ЭВМ. Числа с фиксированной и плавающей запятой

В ЭВМ числа представлены в двоичной форме и под число отводится N разря-дов. N-разрядное двоичное число называют машинным словом. Диапазон представ-ления чисел можно расширить за счет использования машинных слов двойной и большей длины. Но увеличение длины слова не может разрешить всех проблем представления чисел. Рассмотрим, как обращаться с дробной частью числа, как представлять очень большие и очень малые числа.

Используют две формы представления чисел: • числа с плавающей запятой (точкой), которые сокращенно называются ЧПЗ (ЧПТ); • числа с фиксированной запятой (точкой) – ЧФЗ (ЧФТ), которые подразделя-ются по месту фиксации запятой на:

- слева от СЗР (дробные |X| < 1); - справа от МЗР (целые).

2.7.1. Числа с фиксированной запятой Первые ЭВМ были машинами с фиксированной запятой, причем запятая фик-

сировалась перед старшим разрядом. В настоящее время форму ЧФЗ, как правило, применяют для представления целых чисел (запятая фиксируется после младшего разряда). Следует отметить, что нумерация разрядов в слове может быть разная. Наиболее распространенной в настоящее время является нумерация разрядов справа налево. Между тем, возможна нумерация и слева направо, которая традици-онно использовалась в старых мэйнфреймах, например IBM-360/370 и некоторых других ЭВМ, в том числе и миниЭВМ.

Поскольку фиксация точки слева от СЗР в настоящее время практически не ис-пользуется, рассмотрим только формат представления целых чисел на примере 32-разрядного слова, используемого в мэйнфреймах IBM-360 (рис. 2.7). Аналогич-ный формат используется и в современных 32-разрядных процессорах, причем ну-мерация разрядов может быть как справа налево, так и слева направо.

Целые числа могут быть представлены как в формате слова (32 разряда), так и в формате полуслова (16 разрядов).

Используют два варианта представления целых чисел – со знаком и без знака. В последнем случае все разряды служат для представления модуля числа. В ЭВМ реализуются оба этих варианта в формате слова и полуслова.

В мини- и микроЭВМ разрядность слова обычно меньше (16 бит), но формат представления целых чисел аналогичен рассмотренному (рис. 2.8), за исключением того, что нумерация разрядов в большинстве случаев осуществляется в другую сто-рону.

Следует иметь в виду, что в мини- и микроЭВМ целые числа могут быть пред-ставлены как в формате слова (16 или 8 бит), так и в формате двойного слова (32 или 16 бит). В микроЭВМ целые числа часто представляют без знака в формате слова (8 бит) или двойного слова. В современных ЭВМ, как правило, слова содержат целое число байт, кратное степени двойки (1,2,4… байта).

0 31 30 21Номер разряда

Вес 20 21 229230

знак

Рис. 2.7. Формат представления целых чисел в ЭВМ

. . .

. . .

Page 42: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

41

Рассмотрим диапазон представления чисел с фиксированной запятой (только целых чисел, т.е. точка фиксирована справа от МЗР). Если в разрядной сетке N раз-рядов, то под модуль числа отводится N-1 разряд (число со знаком). Самое большое по модулю число, записанное в такой сетке, имеет вид

N-2 0

разрядN-1 → =2N-1; → |X|max +1 = 2N-11

1+

Номер разряда

0 0 0 0 . . . 0

|X|max = 1 1 1 1 . . . 1

Следовательно, |X|max = 2N-1 -1 или 0 ≤|X|≤ 2N-1 - 1. При записи отрицательных чисел в дополнительном коде наибольшее по моду-

лю отрицательное число – это -2N-1. Но модуль этого числа при такой же разрядной сетке (N бит) получить уже нельзя. Поэтому диапазон представления десятичных чисел N-разрядным двоичным числом определяется следующим выражением:

-2N-1≤X≤ 2N-1-1 .

В табл. 2.2 приведены диапазоны представления десятичных чисел 8-, 16- и 32- разрядными двоичными числами.

Таблица 2.2 N 8 16 32

Xmax 127 32767 2147483647 Xmin -128 -32768 - 2147483648

При решении расчетных задач на ЭВМ с фиксированной точкой для предот-вращения переполнения разрядной сетки при подготовке к решению приходится вводить масштабные коэффициенты, которые не позволяют числам, участвующим в решении, и результатам превышать по модулю максимальное машинное число.

В настоящее время представление чисел с фиксированной запятой использу-ется как основное и единственное лишь в сравнительно небольших по своим вычис-лительным возможностям машинах. Подобные ЭВМ применяют в системах переда-чи данных, для управления технологическими процессами, для обработки измери-тельной информации в реальном масштабе времени, для построения кодирующих и декодирующих устройств в каналах связи. В ЭВМ общего назначения основным яв-ляется представление чисел с плавающей запятой.

2.7.2. Числа с плавающей запятой Представление чисел в виде ЧПЗ позволяет избавиться от операции масшта-

бирования при вычислениях, поскольку диапазон представляемых чисел существен-но расширяется по сравнению с ЧФЗ. Однако в большинстве ЭВМ общего назначе-

15 0 1 1314

Вес 20 21213214

Номер разряда

7 0 1 5 6

20 212526Вес

Номер разряда

знак

знак

Рис. 2.8. Формат представления целых чисел в мини- и микроЭВМ

. . .

. . .

. . .

. . .

Page 43: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

42

ния, для целых чисел сохраняется возможность представления в виде ЧФЗ. Опера-ции с ЧФЗ всегда выполняются за меньшее время, чем операции с ЧПЗ. В частно-сти, к операциям с целыми числами сводятся операции над кодами адресов (опера-ции индексной арифметики).

Представление чисел с плавающей запятой в общем случае имеет вид:

X = Sp*q; |q|<1,

где q – мантисса (правильная дробь со знаком), p – порядок (целое число со знаком), S – основание, Sp – характеристика. В ЭВМ q и p представлены в системе счисления с основанием S в соответст-

вующей двоичной кодировке. Знак числа совпадает со знаком мантиссы. Порядок может быть как положительным, так и отрицательным и определяет положение точ-ки в числе X. Арифметические действия над ЧПЗ требуют помимо действий с ман-тиссами, определенные операции над порядками (сравнение, вычитание и др.). Для упрощения операций над p их сводят к действиям над целыми положительными числами, применяя представление ЧПЗ со смещенным порядком.

В этом случае к порядку p прибавляют целое число R=2k, где k – число двоич-ных разрядов, используемых для представления модуля порядка. Смещенный поря-док PСМ=P+R всегда больше нуля или равен ему. Для его представления требуется такое же количество двоичных разрядов, как и для представления знака и модуля p.

При фиксированном числе разрядов мантиссы любая величина представляется в ЭВМ нормализованным числом с наибольшей возможной точностью. Число назы-вается нормализованным, если мантисса q удовлетворяет условию 1>|q|≥1/S, т.е. старший разряд мантиссы в S-ричной системе счисления отличен от нуля, иначе число не нормализовано. Так, например, в десятичной системе счисления число 0.00726*10-3 не нормализовано, а число 0.726*10-5 – нормализовано.

В процессе вычислений числа могут оказаться ненормализованными. Обычно ЭВМ автоматически нормализует такие числа, выполняя ряд действий. На рис. 2.9 представлен обобщенный формат представления ЧПЗ в микро- и миниЭВМ.

Пусть r старших разрядов S-ричной мантиссы равны нулю. Тогда нормализация состоит:

- из сдвиг мантиссы на r разрядов влево; - уменьшения PСМ на r единиц; - запись нуля в r младших разрядах мантиссы.

При этом число не изменяется, а условия нормализации выполняются.

Пример. Нормализовать двоичное число. Ненормализованное двоичное число:

001*0.010=(21*0.25)(10)=0.5(10)qp

Нормализованное двоичное число:

N-k-2 k+11

N-1 0PСМ q знак

Рис. 2.9. Формат представления ЧПЗ в мини- и микроЭВМ

. . .

Page 44: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

43

pнорм=p-1; q - сдвиг на 1 разряд влево

000*0.100=(20*0.50)(10)=0.5(10)qнорм pнорм

Пример. Нормализовать двоичное число. Ненормализованное двоичное число:

011*0.011=(23*0.375)(10)=3(10)qp

Нормализованное двоичное число:

pнорм=p-1; q - сдвиг на 1 разряд влево

010*0.110=(22*0.750)(10)=3(10)qнорм pнорм

Следует иметь в виду, что нормализация может происходить в другую сторону, если в результате выполнения операции слева от точки появилась единица. В этом случае необходимо выполнить следующие операции:

- сдвиг мантиссы на один разряд вправо; - увеличение PСМ на единицу. В различных ЭВМ числа с плавающей запятой используются в системах счис-

ления с различными основаниями S, но равными целым степеням числа 2, т.е. S=2W. При этом порядок представляют целым числом, а мантиссу q – числом, в котором группы по W двоичных разрядов изображают цифры мантиссы с основанием систе-мы счисления S=2W. В современных ЭВМ используются, как правило, S = 2, 16.

Использование S>2 позволяет: - расширить диапазон представления чисел; - ускорить выполнение операций нормализации, поскольку сдвиг может сразу происходить на несколько разрядов (при S=16 – сдвиг на 4 разряда).

Пример. В результате операции получили (S=16):

X=1000 * 0.0000 0101 = 168*5/162=5*166

(10)

вес: 1/1621/160 5(10)8(10)

мантиссапорядок

Произведем нормализацию. Для этого q нужно сдвинуть влево на один шестна-дцатеричный разряд, т.е. на 4 двоичные единицы, а из P вычесть 1. В результате получим

X=0111 * 0.0101 = 167*5/16=5*166(10)

вес: 1/165(10)7(10)

Итак, диапазон представляемых в ЭВМ чисел с плавающей запятой зависит от

основания системы счисления S и числа разрядов, выделенных для P. Точность вы-числения для ЧПЗ определяется числом разрядов q. С увеличением числа разрядов q увеличивается точность, но одновременно увеличивается и время выполнения арифметических операций. Ввиду этого использование S, отличного от 2, несколько уменьшает точность вычислений при фиксированном числе двоичных разрядов q. Традиционно шестнадцатеричная арифметика используется в мэйнфреймах.

Page 45: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

44

Задачи, решаемые на ЭВМ, предъявляют различные требования к точности вычисления, поэтому большинство машин общего назначения имеют несколько форматов ЧПЗ с различным числом разрядов q. Рассмотрим только короткие фор-маты ЧПЗ в ЭВМ с 32-разрядным словом, использующих шестнадцатеричную (S=16) и двоичную (S=2) системы счисления.

Формат ЧПЗ при S=16 представлен на рис. 2.10.

Всего под q отведено 24 двоичных разряда. Общая длина слова N – 32 двоич-ных разряда. Еще есть длинный формат (64 бита) и расширенный (128 бит). Во всех форматах под PСМ отведено по 7 двоичных разрядов (с первого по седьмой). Если бы порядок был несмещенный, то один двоичный разряд отводился бы под знак по-рядка и k разрядов – под модуль (k = 6). При этом диапазон изменения модуля не-смещенного порядка P составил бы 0 ÷ 2k-1 или 0 ÷ 63, а полный диапазон измене-ния порядка Р = (-64) ÷ (+63). Выражение для смещенного порядка соответственно имеет вид 12212RPP 1kkk

CM −=+−=+= + .

Таким образом, при S=16 диапазон изменения PСМ = 0 ÷ 127. Следует иметь в виду, что при изображении машинного слова с помощью ше-

стнадцатеричных символов первые две старшие шестнадцатеричные цифры пред-ставляют совместно знак числа и смещенный порядок.

Формат ЧПЗ при S=2 представлен на рис. 2.11.

Общая длина слова N – 32 двоичных разряда. Обычно еще есть длинный фор-мат, имеющий N = 64 бита. В обоих форматах под смещенный порядок отведено 8 двоичных разрядов. Таким образом, диапазоны изменения смещенного и несмещен-ного порядков составляют соответственно

PСМ = 0...255 и P = -128...+127 .

Поскольку числа в памяти хранятся в нормализованной форме, старший разряд q всегда равен единице, поэтому он не запоминается, а подразумевается., В таких ЭВМ точность представления числа фактически определяется мантиссой q в 24 двоичных разряда (короткий формат) и 56 двоичных разрядов (длинный формат).

Рассмотрим только короткие форматы. Диапазон представления ЧПЗ определяется значением S и числом разрядов,

отведенных под P. Двоичное основание (S=2): (k=7) Xmax=2127→ 1038 .

d6 d5 d2 d1 PСМ знак …

Модуль мантиссы шестнадцатеричный

28…31 24…2712…158…11 1…7 0

d – шестнадцатеричные цифры, состоящие из 4 бит

Рис. 2.10. Формат ЧПЗ при S=16

. . .

31 02230...23

Модуль мантиссы двоичный

PСМ знак q (23 разряда)

Рис. 2.11. Формат ЧПЗ при S=2

. . .

Page 46: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

45

Шестнадцатеричное основание (S=16): (k=6) Xmax=1663→ 1076 . Точность представления ЧПЗ определяется значением S и числом разрядов

мантиссы в соответствующей системе счисления. И при S=16, и при S=2 под q отве-дено фактически 24 двоичных разряда:

• при S=2: 24 двоичных разряда обеспечивают точность, соответствующую семи десятичным разрядам; • при S=16: точность при использовании короткого слова (N = 32) ниже за счет другого способа нормализации, т.е. в q могут быть три нуля слева, поскольку шестнадцатеричное число при этом еще не равно нулю. В двоичных числах слева всегда единица, то есть разрядная сетка используется полнее. Пояснить это можно на примере 8-разрядной сетки:

при S=1611110101при S=2 111110.1010

0.0001

При S=16 нормализация не произойдет, так как d1 не равно нулю. Это приведет к потере четырех младших разрядов результата. При S=2 нормализация произойдет и будет потерян только один младший разряд результата. В связи с этим в ЭВМ с S=16 обычно предусматриваются еще длинный и расширенный форматы.

Еще до недавнего времени каждый производитель процессоров пользовался собственным представлением вещественных чисел (чисел с плавающей точкой). За последние несколько лет ситуация изменилась. Большинство поставщиков процес-соров в настоящее время для представления вещественных чисел придерживаются стандарта ANSI/IEEE 754-1985 Standard for Binary Floating-Point Arithmetic.

Стандарт описывает два основных формата ЧПЗ: одиночный (single – 32 бита) и двойной (double – 64 бита). В IEEE 754 не указан точный размер расширенного формата, но описаны минимальная точность и размер (79 бит).

Формат числа – структура, определяющая поля, составляющие число с пла-вающей запятой, их размер, расположение и интерпретацию. Одиночный формат

Одиночный формат состоит из трех полей: 23-разрядной мантиссы f, 8-раз-рядного смещенного порядка e, знакового бита s (см. рис. 2.12).

В табл. 2.3 показано соответствие между значениями трех полей и значением числа с плавающей запятой.

Таблица 2.3 Комбинация значений полей Значение

0 < e < 255 (-1)s × 2e-127 × 1.f (нормализованные числа)

e= 0; f ≠ 0 (по крайней мере, один бит не нулевой) (-1)s × 2-126 × 0.f (ненормализованные числа)

e= 0; f = 0 (все биты нулевые) (-1)s × 0.0 (ноль со знаком) e= 255; f = 0 (все биты нулевые) INF (бесконечность со знаком)e= 255; f ≠0 (по крайней мере, один бит не нулевой) NaN (Not-a-Number)

Значение неявного бита (старшего разряда мантиссы) прямо не задается, но

подразумевается значением порядка. 23-разрядная мантисса вместе с неявным би-том обеспечивает точность в 24 разряда.

31 02230 e[30:23]s f[22:0]

23

Рис 2.12. Одиночный формат

. . . . . .

Page 47: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

46

Двойной формат Двойной формат состоит из трех полей: 53-разрядной мантиссы f, 11-

разрядного смещенного порядка e, знакового бита s. Эти поля хранятся в двух 32-разрядных словах, как показано на рис. 2.13. В x86–архитектуре слово с меньшим адресом содержит младшие разряды мантиссы, в то время как, например, в SPARC– архитектуре младшие разряды мантиссы содержит слово с большим адресом.

В табл. 2.4 показано соответствие между значением трех полей и значением ЧПЗ двойной точности.

Таблица 2.4 Комбинация значений полей Значение

0 < e < 2047 (-1)s × 2e-1023 × 1.f (нормализованное число) e = 0; f ≠ 0 (-1)s × 2-1022 × 0.f (ненормализованное число) e = 0; f = 0 (-1)s × 0.0 (ноль со знаком) s = 0; e = 2047; f = 0 +INF (положительная бесконечность) s = 1; e = 2047; f = 0 -INF (отрицательная бесконечность) e = 2047; f ≠ 0 NaN (Not-a-Number)

Значение неявного бита (старшего разряда мантиссы) прямо не задается, но подразумевается значением порядка. 53-разрядная мантисса вместе с неявным би-том обеспечивает точность в 54 разряда. Расширенный формат (SPARC– архитектура)

Расширенный формат состоит из трех полей: 112-разрядной мантиссы f, 15-разрядного смещенного порядка e, знакового бита s. Эти поля хранятся в четырех 32-разрядных словах, как показано на рис. 2.14. В SPARC–архитектуре младшие разряды мантиссы содержит слово с большим адресом.

В табл. 2.5 показано соответствие между значением трех полей и значением ЧПЗ расширенного формата для SPARC–архитектуры.

f[31:0] 031

63 3251 62 e[52:62]s

52f[51:32]

Рис. 2.13. Двойной формат

. . .

. . . . . .

127 96111 126 e[126:112] s f[111:96]

112

f[95:64] 95 64

f[63:32] 63 32

f[31:0] 31 0

Рис. 2.14. Расширенный формат (SPARC архитектура)

. . . . . .

. . .

. . .

. . .

Page 48: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

47

Таблица 2.5 Комбинация значений полей Значение

0 < e < 32767 (-1)s × 2e-16383 × 1.f (нормализованное число) e = 0; f ≠ 0 (-1)s × 2-16382 × 0.f (ненормализованное число) e = 0; f = 0 (-1)s × 0.0 (ноль со знаком) s = 0; e = 32767; f = 0 +INF (положительная бесконечность) s = 1; e = 32767; f = 0 -INF (отрицательная бесконечность) e = 32767; f ≠ 0 NaN (Not-a-Number)

Расширенный формат (х86– архитектура)

Расширенный формат состоит из 4-ч полей: 63-разрядной мантиссы f, явного старшего значащего бита j, 15-разрядного смещенного порядка e, знакового бита s.

В х86–архитектуре эти поля сохранены в восьми последовательно адресован-ных 8-разрядных байтах. Однако UNIX System V Application Binary Interface Intel 386 Processor Supplement (Intel ABI) требует, чтобы числа расширенного формата зани-мали три последовательно адресованных 32-разрядных слова в стеке, оставляя 16 старших бит неиспользованными, как показано на рис. 2.15.

В табл. 2.6 показано соответствие между значениями трех полей и значением ЧПЗ расширенного формата для х86–архитектуры.

Таблица 2.6 Комбинация значений полей Значение

j = 0; 0 < e < 32767 Не поддерживается j = 1; 0 < e < 32767 (-1)s × 2e-16383 × 1.f (нормализованное число) j = 0; e = 0; f ≠ 0 (-1)s × 2-16382 × 0.f (ненормализованное число)

j = 1; e = 0 (-1)s × 2-16382 × 0.f (псевдоненормализованное число)

j = 0; e = 0; f = 0 (-1)s × 0.0 (ноль со знаком) j = 1; s = 0; e = 32767; f = 0 +INF (положительная бесконечность) j = 1; s = 1; e = 32767; f = 0 -INF (отрицательная бесконечность) j = 1; e = 32767; f ≠ 0 quiet или signaling NaN

Мэйнфреймы

В мэйнфреймах фирмы IBM используемое еще со времен S/360 шестнадцате-ричное представление чисел с плавающей запятой – с шестнадцатеричной мантис-сой и характеристикой (HFР) – в ESA/390 (мэйнфреймы серии S/390) дополнено двоичным представлением BFP, удовлетворяющим стандарту IEEE 754. Это пред-ставление определяет 3 формата данных – короткий, длинный и расширенный– и 87 новых команд для работы с ними.

BFP появилось в ESA/390 относительно недавно, в 1998 году. Одновременно было введено 12 дополнительных регистров FR (общее число FR достигло 16). Кро-

f[31:0] 31 0

32f[62:32] j

62 63

64e[78:64] s

78 79 8095

Рис. 2.15. Расширенный формат (х86 архитектура)

. . .

. . .

. . .

. . .

Page 49: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

48

ме того, в архитектуре появился управляющий регистр с плавающей запятой и сред-ства сохранения содержания регистров при операции записи состояния. Добавлено еще 8 новых команд, не связанных однозначно с тем или иным представлением данных с плавающей запятой, в том числе 4 – для преобразования между формата-ми HFP и BFP.

Для работы с HFP-данными появилось 26 новых команд, являющихся аналога-ми соответствующих BFP-команд. Эти новые команды включают, в частности, пре-образования между форматами чисел с фиксированной и с плавающей запятой и новые операции с расширенной точностью.

В суперкомпьютерах NEC SX-4 (представленных в 1995 году) целые числа мо-гут быть как 32-, так и 64-разрядными. Для чисел с плавающей запятой применяется стандарт IEEE 754 (как для 32-, так и для 64-разрядных чисел). Кроме того, SX-4 мо-жет работать со 128-разрядными числами с плавающей запятой расширенной точ-ности и с форматами чисел с плавающей запятой, используемыми в PVP-системах Cray и мэйнфреймах IBM. При этом производительность SX-4 не зависит от формата представления, а сам этот формат выбирается при компиляции.

2.7.3. Сложение (вычитание) ЧПЗ Требуется вычислить Z=X±Y при условии, что |X|≥|Y|. Формальное выражение

для выполнения этой операции можно записать следующим образом:

( )zP

zyPxPy

xxPyP

yxP

x SqS

qqSSqSqYXZ ⋅=⎟⎟

⎞⎜⎜⎝

⎛±=⋅±⋅=±=

− .

Алгоритм выполнения операции состоит в следующем: • производится выравнивание порядков, при котором порядок меньшего по

модулю числа принимается равным порядку большего, а мантисса меньше-го числа сдвигается вправо на число S-ричных разрядов, равное разности (Px-Py), т.е. происходит денормализация;

• производится сложение (вычитание) мантисс, в результате чего получается мантисса суммы (разности);

• порядок результата равен порядку большего числа; • полученный результат нормализуется.

Пример. Сложить два числа (ЧПЗ) Z=X+Y для S = 2.

- qx

- ненормализованное значение Z

- выравнивание порядка Y

21*0.5=1(10)

2. +1. 0.01010

PX qX

qYPY0.10

22*0.75=3(10)

1.000.11

0.11

Y → 001

X → 010

3. 1.00010

- нормализованное значение Z4.

0.10 = 23 * 0.5= 4(10)

0.10

Z=011

011PZ qZ

В общем случае сложение и вычитание q производится по правилам сложения

и вычитания чисел с фиксированной точкой, т.е. с использованием прямого, обрат-ного и дополнительного кодов.

Page 50: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

49

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

2.7.4. Умножение ЧПЗ Требуется вычислить YXZ ⋅= . Формальное выражение для выполнения этой

операции можно записать следующим образом:

Z=X*Y=qxSPx*qySPy= qxqyS(Px+Py)=qzSPz .

Алгоритм выполнения операции состоит в следующем: • мантиссы сомножителей перемножаются; • порядки сомножителей складываются; • произведение нормализуется; • произведению присваивается знак в соответствии с алгоритмом, приведен-

ным для ЧФЗ, а именно:

⎩⎨⎧

≠−=+

=

==

. sign(Y)sign(X) ,sign(Y)sign(X) ,

sign(Z)

,Y*X*sign(Z)Y*XZ

В данном случае имеется в виду способ умножения, предполагающий отделе-ние от сомножителей их знаковых разрядов и раздельное выполнение действий над знаками и модулями чисел. Однако на практике в современных ЭВМ используют ал-горитмы, не требующие раздельных операций над знаками и модулями, например алгоритм Бута. Информацию о них можно найти в литературе, приведенной в конце главы.

Рассмотрим простейший раздельный алгоритм перемножения ЧПЗ. Умножение ЧПЗ сводится к следующим операциям: • алгебраическое суммирование порядков – это операции над целыми числа-

ми или ЧФЗ с фиксацией точки справа от МЗР; • перемножение мантисс – это операции над правильными дробями или над

ЧФЗ с фиксацией точки слева от СЗР; • определение знака произведения. Операции над целыми числами были рассмотрены ранее. Теперь рассмотрим

только перемножение правильных дробей. Вручную дроби можно перемножать столбиком. Подсчет знаков в дробной части такой же, как и при перемножении деся-тичных дробей. В ЭВМ для перемножения мантисс (как и для целых чисел) возмож-ны два варианта перемножения: "старшими разрядами вперед" и "младшими разря-дами вперед".

Если требуется сохранить все разряды, то в устройстве, формирующем произ-ведение, число разрядов должно равняться сумме числа разрядов множителя и множимого. Однако часто в произведении требуется сохранить то же количество разрядов, что и в множимом. Это приводит к потере младших разрядов.

Рассмотрим пример перемножения двух чисел "младшими разрядами вперед" для случая, когда разрядная сетка результата соответствует разрядной сетке со-множителей.

Page 51: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

50

Пример. Вычислить Z=X*Y=0.1101(2) * 0.1011(2) = 0.8125(10) * 0.6875(10) = 0.55859375(10).

X= 1 1 0. 0 1 Y= 1 0 0. 1 1

сдвиг на 1 разряд вправо 0.0100 111

+

P10.11011 сдвиг на 1 разряд вправо 0.0110

1 сумма P1 + P2 1.001111 сдвиг на 1 разряд вправо 0.1001

P20.1101

+

0.0000+

+ P40.1101

сдвиг на 1 разряд вправо 0.1000 1111сумма P1+P2+P3+P4 1.0001 111

сумма P1+P2+P3110.1001P30.0000

- результат 0.1000 1111

Таким образом, результат Z=0.1000(2)=0.5(10), поскольку последние четыре раз-ряда потеряны.

При перемножении мантисс (правильных дробей) последнее сложение можно не делать, а ограничиться просто последним сдвигом. Из примера видно, что если разрядная сетка ограничена числом разрядов X, то результаты правее вертикально-го пунктира не фиксируются после выполнения сдвигов. Таким образом, четыре младших разряда будут потеряны, и результат будет приближенный 0.1000(2). В ряде случаев используется округление по правилу: если старший из отбрасываемых раз-рядов содержит 1, то к младшему из сохранившихся разрядов добавляется 1. В дан-ном примере получается число 0.1001(2).

В заключение отметим следующее: • если мантисса X или Y равна 0, то перемножение не проводится и Z=0; • если при суммировании PX и PY возникло переполнение и PZ<0, то это озна-чает, что Z меньше минимального представляемого в машине числа, и Z при-сваивают 0 без перемножения мантисс; • если при суммировании PX и PY возникло переполнение и PZ>0, может ока-заться, что Z все же находится в диапазоне представляемых в ЭВМ чисел, так как после нормализации полученного qZ переполнение в порядке может исчез-нуть.

2.7.5. Методы ускорения умножения Рассмотренный в предыдущей теме материал показывает, что умножение – это

достаточно длинная операция, состоящая из N суммирований и сдвигов, а также вы-делений очередных цифр множителя.

Из этого следует актуальность задачи максимального сокращения времени, за-трачиваемого на операцию умножения, особенно для систем, работающих в реаль-ном масштабе времени. В современных ЭВМ методы ускорения умножения можно разделить:

• на аппаратные; • логические (алгоритмические); • комбинированные.

Page 52: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

51

Аппаратные методы 1. Распараллеливание вычислительных операций. Например, совмещение во времени суммирования и сдвига. 2. Табличное умножение. Это довольно распространенный способ реализации различных функций. Остановимся на нем подробнее. Пусть X и Y – целые числа длиной в 1 байт. Надо вычислить Z=X*Y. Можно ис-

пользовать 65 Кбайт памяти и занести в них значения Z для всех возможных комби-наций X и Y, а сомножители X и Y использовать в качестве адреса. Получается своеобразная таблица следующего вида:

X Y00...00 000...00000...00

Z

.........8 бит 16 бит8 бит

......... .........

...........................11..11 11..11 111..111

65 к

Адрес Содержание

Алгоритмические методы

Эти методы разнообразны. Приведем только один пример: при S=16 можно за один такт обрабатывать несколько разрядов множителя (4 разряда). Сдвиги тоже осуществляются на 4 разряда. Следует отметить, однако, что в большинстве случа-ев алгоритмические методы требуют определенную аппаратную поддержку.

Комбинированные методы

Рассмотрим пример. Пусть X и Y – 16-разрядные числа. Надо вычислить произ-ведение вида Z=X*Y. Использовать непосредственно табличный метод не удастся, поскольку для этих целей потребуется очень большой объем памяти. Однако можно представить каждый сомножитель как сумму двух 16-разрядных слагаемых, каждое из которых представляет группы старших и младших разрядов сомножителей. В этом случае произведение примет вид

Z = X*Y = (x15 ... x0)*(y15 ... y0) = = (x15...x8000...0 + 000...0x7...x0)* (y15...y8000...0 + 000...0y7...y0) = = 216(x15...x8) (y15...y8) + 28(x15...x8) (y7...y0) + 28(x7...x0) (y15...y8) + + (x7...x0)*(y7...y0) .

Таким образом, произведение раскладывается на простые 8-разрядные сомно-жители. Эти произведения 8-разрядных операндов вычисляются табличным мето-дом, а затем следует сдвиг слагаемых сразу на 16,8,8,0 разрядов и суммирование.

2.7.6. Деление чисел с плавающей запятой Алгоритмы деления чисел с плавающей запятой в настоящем курсе не рас-

сматриваются. Информацию о них можно найти в литературе, приведенной в конце главы.

Page 53: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

52

2.8. Десятичная арифметика Необходимый перевод для ЭВМ десятичных чисел в двоичные и обратно тре-

бует затраты времени и ресурсов. В цифровых устройствах, где основная часть опе-раций связана не с обработкой и хранением информации, а с самим ее вводом и выводом на какие-либо устройства отображения с десятичным представлением по-лученных результатов, имеет смысл проводить вычисления в десятичной системе счисления. Но ЭВМ требует информацию только в двоичной форме. Следовательно, десятичные цифры нужно кодировать каким-либо легко реализуемым и быстрым способом. Для этих целей используется двоично-десятичный код, в котором каждая десятичная цифра 0...9 изображается соответствующим 4-разрядным числом (от 0000 до 1001). Такой код называется еще кодом 8421 (цифры, соответствующие ве-сам двоичных разрядов).

Пример. Представление десятичного числа в двоично-десятичном коде.

( 347 )(10)=001101000111(2-10)

( 3 4 7 )(10) 011101000011

Две двоично-десятичные цифры составляют 1 байт, т.е. с помощью 1 байта можно представить десятичные числа от 0 до 99.

Действия над двоично-десятичными числами выполняются как над двоичными. Сложности возникают при переносе из тетрады в тетраду.

Кроме того, следует отметить, что выполнение сложения и вычитания двоично-десятичных чисел со знаком сводится к сложению или вычитанию модулей путем определения фактически выполняемой операции по знаку операндов и виду выпол-няемой операции. Например, требуется вычислить Z=X-Y при X<0 и Y<0. Тогда вы-полняется операция |Z|=|Y|-|X|, а затем знак |Z| изменяется на противоположный.

2.8.1. Сложение двоично-десятичных чисел В операции сложения двоично-десятичных чисел участвуют только модули чи-

сел. Поскольку код одноразрядных двоично-десятичных чисел полностью совпадает с их двоичным кодом, никаких проблем при выполнении операции сложения не воз-никает. Однако многоразрядные двоично-десятичные числа не совпадают с двоич-ными, поэтому при использовании двоичной арифметики получается результат, в который надо вводить коррекцию. Рассмотрим это подробнее.

Уже отмечалось, что каждая цифра десятичного числа может быть представле-на кодом от 0000 до 1001, поэтому если при сложении разряда j двоично-десятичного числа результат меньше, либо равен 9, то коррекции не требуется, так как двоично-десятичный код результата полностью совпадает с его двоичным кодом.

Пример. Zj=Xj+Yj = 3(10)+5(10), где j – номер разряда десятичного числа

1000(2-10)=8(10)=1000(2)

Zj → 1000(2-10)

Yj → 0101

Xj → 0011+

Если при сложении j-разрядов чисел результат Zj будет больше или равен 10, то требуется коррекция результата. Рассмотрим, как машина может идентифициро-вать эту ситуацию. Существуют два варианта.

Вариант 1. Zj=10...15 = (1010...1111)

Page 54: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

53

Здесь требуется коррекция, т.е. перенос 1 в старший (j+1) десятичный разряд. Необходимость коррекции в этом случае ЭВМ узнает по чисто формальным призна-кам:

Расположение 1 в четырёх разрядах двоичного числа, которое указывает, что Zj≥10

1 - 1 - 1 1 - - r3 r2 r1 r0 8 4 2 1

Эту ситуацию можно описать логическим выражением:

1.)r(r)r(rf 1323 =∧∨∧= Пример. Zj=Xj+Yj = 5(10)+7(10) , где j – номер разряда десятичного числа.

Zj → 1100(2-10)

Yj → 0111

Xj → 0101+

. . 1 ← 2(10) 7

5 +

j+1 j Перенос из разряда j означает в десятичной системе счисления, что

10ZZ jj −=′ . В то же время в двоичной системе счисления перенос 1 из младшей тетрады в старшую означает, что 16ZZ jj +=′ . Следовательно, при коррекции имеет место соотношение

Zjкор = Zj - 10(10) + 16(10) = Zj + 6(10).

Тогда в рассмотренном выше примере

т.о., имеем Zjкор=0010и перенос 1 в j+1 разряд

перенос=12(10) Zjкор → 1← 0010

6(10) → 0110

Zjкор → 1100+0110

Zj → 1100+

Вариант 2. Zj=16,17,18 = (8+8, 8+9, 9+9) В этом случае из младшей тетрады в старшую происходит перенос 1 или 16(10).

Но в десятичной системе счисления переносится в старший разряд только 10. Сле-довательно, для компенсации в младший разряд следует прибавить 6.

Пример. Zj=Xj+Yj = 8(10)+9(10) = 17(10), где j – номер разряда десятичного числа.

Xj → 1000

Yj → 1001Zj → 1← 0001 (2-10)

+

перенос=17(10)Zjкор → 1 0111

6(10) → 0110

Zj → 1 0001+

Таким образом, можно сформулировать правило, по которому следует осуще-

ствлять коррекцию каждого десятичного разряда результата: если при сложении многоразрядных двоично-десятичных чисел возник перенос из разряда или f=1, то этот разряд требует коррекции (прибавления 6(10)). При этом корректируются все тетрады последовательно, начиная с млад-шей.

Page 55: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

54

Пример. Z = X + Y = 927 + 382 = 1309.

Zкор =0001 0011 0000 1001(2-10) = 1309(10)

Zкор →

Z →Y →X →

2-й и 3-й разряды результата требуют коррекции, так как f=1

- коррекция 3-й цифры

- коррекция 2-й цифры

0111001010000011

0010

1

11101

0000

00000000

00110110

0110

. . .. . .

1001

10011001

100110101100

1001

+

+

. . . .

При практической реализации двоично-десятичной арифметики поступают не-сколько по-другому.

Алгоритм выполнения операции состоит в следующем: 1. Одно из слагаемых представляется в коде с избытком 6, т.е. к каждой тетра-де двоично-десятичного числа добавляется число 0110. Избыток не обязатель-но добавлять к одному из слагаемых. Его можно добавить к результату сложе-ния обоих модулей. 2. Сложение двоично-десятичных модулей выполняется по правилам двоичной арифметики. 3. Если при сложении тетрад получается результат Zj больше или равный 10, то автоматически вырабатывается перенос в следующий разряд (тетраду), по-скольку фактически Zj≥16. В этом случае результат в данной тетраде получает-ся в естественном двоично-десятичном коде 8421 и коррекции не требуется. Однако, если избыток добавлять к результату сложения модулей, а не к одному из слагаемых, то при выяснении необходимости коррекции следует учитывать переносы как при сложении модулей, так и при добавлении избытка. 4. Если при сложении в каких-либо тетрадах переносы отсутствуют, то для по-лучения правильного результата из кодов этих тетрад необходимо вычесть из-быток 6. Это можно сделать двумя способами:

• просто вычесть число 0110(2) = 6(10); • сложить с дополнением до 16(10) , т.е. с числом 10(10) = 1010(2).

Возникшие при этом межтетрадные переносы не учитываются. На практике реализуют второй способ.

Пример. Z = X + Y = 132 + 57 = 189.

Z’→ 0001 1000 1001Y → 0000 0101 0111

X → 0001 0011 0010

- нескорректированное Z

+

Перед сложением операнды выравниваются по крайней правой тетраде. Те-перь надо к Z’ добавить избыток (6(10)):

Page 56: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

55

Z6’→ 0111 1110 1111→ 0110 0110 0110

Z’→ 0001 1000 1001

избыток- нескорр. избыточное Z

+

Такой же результат получится, если с избытком +6 взять один из операндов (X или Y). Тогда к результату избыток прибавлять не нужно.

В данном примере при вычислении Z6’ не было переносов из каких-либо тетрад, поэтому необходима коррекция каждой тетрады суммы Z6’. Коррекция производится путем прибавления к каждой тетраде числа 10(10)= 1010(2):

результат Z=0001 1000 1001(2-10)=189(10)

Z → 0001 1000 1001

Z6’→ 0111 1110 1111

отброситьпереносы → 111

+→ 1010 1010 1010коррекция

Пример. Z = X + Y = -93(10) - 48(10) = -(93+48)(10) = -141(10).

X → 0000 1001 0011+

Z’→ 0000 1101 1011Y → 0000 0100 1000

- нескорректированное Z

Перед сложением операнды выравниваются по крайней правой тетраде. После этого к Z необходимо добавить избыток (6(10)):

Z’→ 0000 1101 1011

Z6’→ 0111 0100 0001 - нескорр. избыточное Z

+ → 0110 0110 0110избыток

- переносы 11

Такой же результат получится, если с избытком +6 взять один из операндов (X или Y). Тогда к результату избыток прибавлять нет необходимости. В данном приме-ре из двух тетрад переносы существуют, поэтому необходима коррекция только старшей тетрады (из нее нет переноса):

результат Z = -(0001 0100 0001)(2-10) = -141(10)

Z → 0001 0100 0001

Z6’→ 0111 0100 0001

отброситьперенос → 1

→ 1010коррекция +

Пример. Z = X + Y = 99(10) + 99(10) = 198(10).

Z’ → 1 0011 0010Y → 1001 1001X → 1001 1001

- нескорректированное Z

+

- переносы 1 1

При сложении модулей возникли переносы. Добавим избыток:

Page 57: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

56

Z’→ 0001 0011 0010+

Z6’→ 0111 1001 1000→ 0110 0110 0110избыток

- нескорр. избыточное Z

При добавлении избытка 6 переносов не было, однако они имели место при сложении модулей. Их следует учитывать при оценке необходимости коррекции, по-этому, в данном случае, коррекция требуется только для старшей тетрады:

результат Z=0001 1001 1000(2-10)=198(10)

Z6’→ 0111 1001 1000

Z → 0001 1001 1000отброситьперенос → 1

→ 1010 коррекция +

2.8.2. Вычитание модулей двоично-десятичных чисел

По аналогии с операциями вычитания в двоичном коде операцию X-Y можно представить как X + (-Y). При этом отрицательное число представляется в дополни-тельном коде, аналогичном дополнительному коду в двоичной арифметике. Этот код используется только для выполнения операций вычитания. Хранятся двоично-десятичные числа (как положительные, так и отрицательные) в прямом коде со зна-ком.

Алгоритм выполнения операции состоит в следующем: 1. Модуль положительного числа представляется в прямом двоично-десятичном коде (8421). Модуль отрицательного числа – в дополнительном коде (ДК) с избытком 6. Для получения ДК необходимо:

- инвертировать значения разрядов всех тетрад числа; - к младшему разряду младшей тетрады прибавить 1.

Таким образом, цепочка ПК (mod) → ОК → ОК+1 → ДК аналогична цепочке в двоичной арифметике. Только здесь получается ДК с избытком 6, так как до-полнение идет не до 10, а до 16. 2. Произвести сложение операндов (X) в ПК и (Y) в ДК. 3. Если при сложении тетрад возник перенос из старшей тетрады, то он отбра-сывается, а результату присваивается знак "+", т.е. результат получается в прямом избыточном коде. Он корректируется по тем же правилам, что и при сложении модулей. 4. Если при сложении тетрад не возникает переноса из старшей тетрады, то результату присваивается знак "-", т.е. результат получается в избыточном ДК. В этом случае необходимо перейти к избыточному ПК (т.е. инвертировать все двоичные разряды двоично-десятичного числа и прибавить к младшему разря-ду 1). 5. Полученный в этом случае результат в ПК корректируется. Для этого к тем тетрадам, из которых возникал перенос при выполнении пункта 2 (при сумми-ровании), необходимо добавить 10(10) или 1010(2). Возникшие при этом межтет-радные переносы не учитываются. Таким образом, корректировка происходит в тех тетрадах, которые в положительных числах не корректируются. Следует отметить, что при выполнении операции вычитания большего числа из меньше-го (X - Y = Z, при |X|≤|Y|), т.е. при Z≤0 алгоритм коррекции результата после пе-ревода Z из ДК в ПК требует уточнения. А именно, после перевода Z в ПК необ-ходимость коррекции определяется не только приведенными правилами, но и следующими требованиями:

Page 58: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

57

а) нулевой результат не корректируется; б) значащие нули справа в результате не корректируются; в) если Z≠0 и в нем отсутствуют значащие нули справа (т.е. пп. а, б не имеют места), необходимо анализировать Y. Если в Y есть значащие нули справа, то соответствующие им разряды (тетрады) Z требуют обязатель-ной коррекции, независимо от наличия переносов при сложении XПК и YДК.

Пример. Z=X-Y=49(10) -238(10) =-189(10).

Y → 0010 0011 1000X → 0000 0100 1001

Представим |Y| в ДК с избытком 6:

YОК → 1101 1100 0111+

YДК → 1101 1100 1000 0001

Выполним сложение:

XПК → 0000 0100 1001 +

Z’ДК → 1110 0001 0001 YДК → 1101 1100 1000

- нескорректированное Z в ДК

1 1 - переносы Отсутствие переноса из старшей тетрады является признаком того, что резуль-

тат получился в ДК (т.е. отрицательный). Перейдем к нескорректированному избыточному ПК:

Z’ДК → 1110 0001 0001 ZДК → 0001 1110 1110 +

Z’ПК → 0001 1110 1111 0001

- нескорректированное Z в ПК

Произведем коррекцию результата в соответствии с п. 5 алгоритма:

Z’ПК → 0001 1110 1111

результат |Z|= (0001 1000 1001) = 189(10)

+→ 0000 1010 1010коррекция

0001 1000 1001

отброситьпереносы → 11

Поскольку ранее результат получался в ДК, т.е. отрицательный, необходимо

добавить знак (-). Окончательный результат будет следующий:

Z= -(0001 1000 1001) = -189(10) Пример. Z=X-Y=143(10) -58(10) =85(10).

Y → 0000 0101 1000X → 0001 0100 0011

Представим |Y| в ДК с избытком 6:

YОК → 1111 1010 0111+

YДК → 1111 1010 10000001

Page 59: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

58

Выполним сложение:

XПК → 0001 0100 0011 +

Z’ПК → 0000 1110 1011 YДК → 1111 1010 1000

- нескорректированное Z в ПК

- перенос отбросить 1

Наличие переноса из старшей тетрады указывает на то, что результат полу-чился в ПК (т.е. положительный).

Произведем коррекцию результата в соответствии с п. 3 алгоритма:

Z’ПК → 0000 1110 1011

результат Z= 1000 0101(2-10)=85(10)

+→ 1010 1010

0000 1000 0101коррекция

отброситьпереносы → 11

2.8.3. Умножение модулей двоично-десятичных чисел

Операция умножения сводится к образованию и многократному сложению час-тичных двоично-десятичных произведений.

Алгоритм выполнения операции состоит в следующем: 1. Сумма частичных произведений полагается равной нулю. 2. Анализируется очередная тетрада множителя, и множимое прибавляется к сумме частичных произведений столько раз, какова цифра, определяемая этой тетрадой. 3. Сумма частичных произведений сдвигается на одну тетраду, и повторяются действия, указанные в п. 2, пока все цифры (тетрады) множителя не будут об-работаны. Направление сдвига зависит от того, какой вариант перемножения выбран – "старшие разряды вперед" или "младшие разряды вперед". 4. Каждая операция суммирования завершается десятичной коррекцией, соот-ветствующей случаю суммирования двоично-десятичных чисел без избытка 6 (т.е. необходимо добавить 0110 к тем тетрадам, из которых был перенос или в которых f=1).

Пример. Z = X * Y = 25(10) * 13(10) = 325(10). X = 25(10) = 0010 0101(2-10); Y = 13(10) = 0001 0011(2-10).

Для решения примера выберем вариант перемножения "старшие разряды впе-ред". В соответствии с п. 1 алгоритма полагаем сумму частичных произведений P0=0. (Частичные произведения будем обозначать Pi).

Y = 0001 0011 X = 0010 01010000 0000+ 0010 0101

0010 0101 0000+

1(10) ← P0=0 ← P1 (1-е част. произв.) ← Σ1=P0 + P1=P1 - коррекции

не требует ← Сдвиг влево

0010 01010010 01010010 0101

+ +

3(10) ← P2 (2-е част. произв.)

Page 60: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

59

Формирование второго частичного произведения - более длительная операция, поскольку вторая анализируемая тетрада содержит 3(10), поэтому каждая операция суммирования требует проверки необходимости коррекции. Вычислим P2, последо-вательно суммируя слагаемые, образующие P2:

0010 0101 Х → ← первое слагаемое Р2

← тетрада требует коррекции (f=1) . . . +

+0010 0101 Х → ← второе слагаемое Р2

0000 0110 коррекция →

+

← полное Р2. Коррекции не требует 0111 0101 P2 →

0101 0000 P2 неп. → ← неполное, скорректированное Р2 0010 0101 Х → ← третье слагаемое Р2

0100 1010 P'2 неп. → ← неполное, нескорректированное Р2 . .

Таким образом, второе частичное произведение, состоящее из трех слагаемых, имеет вид

P2 = 0111 0101.

Теперь можно вычислить сумму первого и второго частичного произведений, т.е. результат:

0000 0110 0000

0010 1100 01010111 0101

0010 0101 0000

коррекция →

∑‘2=P1+P2

P2 →

P1 →

← тетрада требует коррекции. (f=1)← нескорректированный результат← второе частичное произведение

← первое сдвинутое частичное произведение

. . .+

+

0011 0010 0101∑2=P1+P2 → ← скорректированный результат

. .

Окончательный результат: Z = 0011 0010 0101(2-10) = 325(10). Следует отметить, что в данном случае при суммировании операндов не возни-

кало переносов, поэтому коррекция осуществлялась только по признаку f=1.

2.8.4. Деление модулей двоично-десятичных чисел Операция деления выполняется путем многократного вычитания, сдвига и ана-

лиза результата подобно тому, как это делается при обычном делении. В настоящем курсе эта операция не рассматривается. Информация о ней может быть найдена в литературе, приведенной в конце главы.

2.9. Нарушение ограничений ЭВМ При выполнении арифметических операций возможны ситуации, когда нару-

шаются ограничения, связанные с конечной длиной разрядной сетки ЭВМ. При этом в ЭВМ формируются признаки соответственно:

• для ЧФЗ: - переполнение, когда результат не вмещается в отведенное количество бит (име-ются в виду ЧФЗ справа от МЗР);

• для ЧПЗ: - положительное переполнение порядка, когда PZ>Pmax; - отрицательное переполнение порядка, когда PZ<Pmin (исчезновение порядка).

Конкретная реакция различных ЭВМ и различных операционных систем на при-знаки нарушения ограничений в общем случае различна. Однако все они обязатель-но выполняют следующие операции:

Page 61: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

60

- при обработке программы после выполнения операций, где возможно переполне-ние, предусматривается анализ соответствующего признака и в зависимости от его значения, реализуется то или иное конкретное действие; - при возникновении признака в любом месте программы в ЭВМ формируется запрос на прерывание и выполняется программа его обслуживания.

2.10. Представление буквенно-цифровой информации По своей природе компьютеры могут работать лишь с числами. И для того

чтобы они могли хранить в памяти и обрабатывать буквы или другие символы, каж-дому из них должно быть поставлено в соответствие некоторое число, т.е. использо-вана та или иная система кодировки символов.

До недавнего времени было принято представлять один символ буквенно-цифровой информации в виде одного байта. С помощью одного байта в общем слу-чае можно закодировать 28=256 символов. Исторически сложилось так, что различ-ные производители стали использовать для представления символов внутри ЭВМ различные коды. В мире имели хождение десятки схем подобного кодирования сим-волов. Но ни одна из этих схем не была столь универсальной, чтобы описать все не-обходимые символы. По большому счёту, даже для отдельного языка, например, английского, не существовало единой системы кодирования, включавшей в себя все обычно используемые буквы, знаки пунктуации, технические и математические сим-волы.

Среди однобайтовых систем кодировок наибольшее распространение в мире получил Стандартный американский код обмена информацией ASCII, имеющий не-сколько модификаций. В базовом варианте кода ASCII для кодирования каждого символа используется 7 бит, т.е. можно закодировать 27=128 символов, например:

= - 0011 1101 - 3D(16) + - 0010 1011 - 2B(16) Z - 0101 1010 - 5A(16)

. . . B - 0100 0010 - 42(16) A - 0100 0001 - 41(16)

9 - 0011 1001 . . .

2 - 0011 0010 1 - 0011 0001 0 - 0011 0000

Обычно код информации и управляющих символов представлялся в виде двухразрядного шестнадцатеричного числа. Восьмой бит в байте использовался для расширения отображаемого набора символов или для проверки правильности пере-данной кодовой комбинации, например проверки на четность.

В отечественных ЭВМ также использовались различные коды. Так, в ЕС-ЭВМ использовался двоичный код обработки информации (ДКОИ), 8-разрядный код об-мена информацией (КОИ-8). Использовались также 7-разрядный код КОИ-7 и его модификации, причем код КОИ-7 наиболее близок к базовому варианту кода ASCII. Код КОИ-8 за счет использования 8-го бита позволял представлять помимо служеб-ных символов, цифр и латинских букв еще и русские буквы.

Между тем все эти однобайтовые схемы кодирования часто даже не были со-вместимы друг с другом. Например, две разные кодировки могли использовать один и тот же код для представления двух разных символов или присваивать разные ко-ды одной и той же букве. В этой ситуации для любого компьютера, а особенно сер-вера, приходилось поддерживать несколько разных кодировок, которые могли пона-добиться. Но даже и тогда при передаче данных на другую платформу или при их преобразовании в другую кодировку всегда оставался риск, что эти данные окажутся повреждёнными.

Page 62: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

61

Указанные выше недостатки 8-битовых систем кодирования символов приве-ли к появлению 16-битовых систем, в которых для кодирования любого символа ис-пользуются два байта. В настоящее время международным стандартом стала двух-байтовая система кодирования символов Unicode, разработанная Unicode Consor-tium. Unicode Consortium является некоммерческой организацией, основанной для разработки и развития стандарта Unicode, определяющего представление символь-ной информации в современных программных продуктах и стандартах, и для содей-ствия его широкому распространению и использованию.

Система Unicode присваивает уникальный двухбайтовый код любому символу, независимо от платформы, независимо от программы, независимо от языка. Unicode был принят как стандарт такими лидерами компьютерной индустрии, как Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase, Unisys, и многими другими. Именно эта схема кодирования используется такими современными технологиями и стандартами, как, например, XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML и так далее. Именно Unicode является официальной схемой реализации стан-дарта ISO/IEC 10646, определяющего способы кодировки символов. Эта кодировка поддерживается во множестве операционных систем, во всех современных браузе-рах Интернет. Повсеместное распространение стандарта Unicode и доступность поддерживающих его средств в настоящее время являются одними из наиболее важных направлений развития индустрии программного обеспечения. Следует отме-тить, что для сохранения преемственности программного обеспечения Unicode включает в себя как подмножества прежние наиболее распространенные однобай-товые системы кодирования символов.

Использование Unicode в многоуровневых приложениях или программных комплексах, построенных в рамках архитектуры клиент-сервер, а также при пред-ставлении данных в сети Интернет, приводит к значительному снижению расходов на поддержку этих продуктов или сервисов по сравнению со случаем использования старых схем кодирования. Unicode позволяет создавать единый программный про-дукт или Интернет-сайт для множества платформ, языков и стран без каких-либо пе-ределок. Его использование при передаче данных между различными системами предохраняет эти данные от повреждения.

2.11. Заключительные замечания Представленный выше материал дает только общее представление о выпол-

нении арифметических операций над двоичными числами в различных системах счисления. Реальные алгоритмы выполнения арифметических операций, исполь-зуемые в современных ЭВМ, позволяют существенно ускорить процесс вычислений, особенно для операций умножения и деления. Однако эти алгоритмы весьма гро-моздки и сложны для первоначального понимания. Более полную информацию о них можно найти в литературных источниках, перечисленных ниже.

Библиографический сисок 1. Искусство программирования. Т.1. Основные алгоритмы. 3-е изд., испр. и доп. / Д. Кнут; Под ред. Ю.В. Козаченко М.; СПб.; Киев: ВИЛЬЯМС, 2000. 729 с. 2. Искусство программирования. Т.2: Получисленные алгоритмы. 3-е изд., испр. и доп. / Д. Кнут; Под ред. Ю.В. Козаченко М.; СПб.; Киев: ВИЛЬЯМС, 2000. 832с. 3. Основы информатики: Учебник для вузов А.Я. Савельев. М.: МГТУ им. М.Э. Баумана, 2001. 328 с. 4. Информатика: Системы счисления и компьютерная арифметика: / Е.Андреева, И.Фалина; М.: Лаборатория базовых знаний, 1999. 256 с. 5. Электронные вычислительные машины и системы: Учеб. пособие для вузов. 3-е изд., перераб. и доп. / Б.М. Каган;М.: Энергоатомиздат, 1991. 592 с.

Page 63: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

62

6. Программирование арифметических операций в микропроцессорах: Учеб. пособие для технических вузов. / Злобин В.К., Григорьев В.Л. М.: Высшая шко-ла, 1991. 303 с. 7. Микропроцессоры и их применение в системах передачи и обработки сигна-лов: Учеб. пособие для вузов / Б.А. Калабеков; М.: Радио и связь, 1988. 368 с. 8. Введение в микропроцессорную технику / Ч. Гилмор; Под ред. В.М. Кисель-никова. М.: Мир, 1984. 334 с.

Вопросы для самопроверки 1. Какие виды систем счисления вы знаете? 2. В каких случаях целесообразно применять двоичную, восьмеричную и ше-стнадцатеричную систему счисления? 3. Чем двоичная система счисления отличается от двоично-десятичной? 4. Как различаются прямой, обратный и дополнительный коды для представ-ления чисел? 5. Когда следует применять прямой, обратный и дополнительный коды для представления чисел? 6. Что такое переполнение разрядной сетки? 7. В каких случаях возникает переполнение разрядной сетки? 8. Для чего используют модифицированные коды? 9. Опишите алгоритм перевода из дополнительного кода в десятичную систе-му. 10. Поясните понятие «арифметика повышенной точности». 11. Опишите формат ЧФЗ. 12. Для чего нужны ЧФЗ, почему при работе с ними вводят масштабный коэф-фициент? 13. Опишите формат ЧПЗ. 14. В каких случаях используют ЧПЗ? В чем преимущества ЧФЗ и ЧПЗ? 15. Что такое нормализация числа? 16. Назовите существующие форматы ЧПЗ, используемые в ЭВМ. 17. От чего зависит точность представления ЧПЗ в ЭВМ? 18. Для чего используется нормализация числа? 19. Какие методы ускорения умножения вы знаете? Кратко охарактеризуйте их. 20. В каких случаях используется десятичная арифметика? 21. Зачем нужна двоично-десятичная коррекция? 22. Какие признаки формируются в ЭВМ при нарушении ограничения на длину разрядной сетки? 23. Каким образом хранится символьная информация в ЭВМ?

Page 64: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

63

Контрольные задания к главе 2 Контрольное задание имеет две формы: Форма 1 – ответы на теоретические вопросы. Форма 2 – выполнение арифметических операций. Выбор формы задания зависит от дополнительных указаний преподавателя.

Форма 1. Ответы на вопросы 1. На листах ответа должны быть указаны номер группы, фамилия студента и номер его варианта. 2. Номера вопросов выбираются студентом в соответствии с двумя последними цифрами в его зачетной книжке. В табл. 2.7 аn-1 – предпоследняя цифра номе-ра, аn – последняя цифра. В клетках таблицы стоят номера вопросов, на кото-рые необходимо дать письменный ответ

Таблица 2.7 an

an-1 0 1 2 3 4

0 1,5,9,13,19 2,6,10,14,20 3,7,11,15,21 4,8,12,16,22 1,7,12,17,23 1 3,8,10,18,20 4,6,12,13,22 2,7,9,16,23 1,5,11,14,21 3,6,9,14,19 2 1,6,9,18,19 2,5,10,17,20 1,8,11,16,21 3,5,9,18,22 2,7,9,17,19 3 1,5,9,13,19 2,6,10,14,20 3,7,11,15,21 4,8,12,16,22 1,7,12,17,23 4 3,8,10,18,20 4,6,12,13,22 2,7,9,16,23 1,5,11,14,21 3,6,9,14,19 5 1,6,9,18,19 2,5,10,17,20 1,8,11,16,21 3,5,9,18,22 2,7,9,17,19 6 1,5,9,13,19 2,6,10,14,20 3,7,11,15,21 4,8,12,16,22 1,7,12,17,23 7 3,8,10,18,20 4,6,12,13,22 2,7,9,16,23 1,5,11,14,21 3,6,9,14,19 8 1,6,9,18,19 2,5,10,17,20 1,8,11,16,21 3,5,9,18,22 2,7,9,17,19 9 1,5,9,13,19 2,6,10,14,20 3,7,11,15,21 4,8,12,16,22 1,7,12,17,23

anan-1

5 6 7 8 9

0 2,8,9,15,19 3,5,10,16,20 4,6,11,13,21 1,8,11,17,22 2,5,12,18,23 1 4,7,10,13,20 1,6,12,14,23 2,7,11,15,20 3,5,11,18,21 4,8,10,15,22 2 1,6,10,14,22 3,7,12,16,19 4,7,12,15,23 2,5,10,13,23 4,6,9,17,21 3 2,8,9,15,19 3,5,10,16,20 4,6,11,13,21 1,8,11,17,22 2,5,12,18,23 4 4,7,10,13,20 1,6,12,14,23 2,7,11,15,20 3,5,11,18,21 4,8,10,15,22 5 1,6,10,14,22 3,7,12,16,19 4,7,12,15,23 2,5,10,13,23 4,6,9,17,21 6 2,8,9,15,19 3,5,10,16,20 4,6,11,13,21 1,8,11,17,22 2,5,12,18,23 7 4,7,10,13,20 1,6,12,14,23 2,7,11,15,20 3,5,11,18,21 4,8,10,15,22 8 1,6,10,14,22 3,7,12,16,19 4,7,12,15,23 2,5,10,13,23 4,6,9,17,21 9 2,8,9,15,19 3,5,10,16,20 4,6,11,13,21 1,8,11,17,22 2,5,12,18,23

Форма 2. Выполнение арифметических операций над числами 1. Все действия, производимые над операндами и результатами, включая пере-вод чисел из одной системы счисления в другую, должны быть подробно рас-писаны в соответствии с алгоритмами, рассмотренными в этом разделе. 2. В операциях перемножения указать вариант операции, т.е. "старшими разря-дами вперед" или "младшими разрядами вперед". 3. Результаты представить в десятичной системе счисления. 4. На листах ответа должны быть указаны номер группы, фамилия студента и номер варианта задания. 5. Номер варианта задания выбирается студентом в соответствии с двумя по-следними цифрами в его зачетной книжке. В табл. 2.8 аn-1 – предпоследняя

Page 65: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

64

цифра номера, аn – последняя цифра. В клетках табл. 2.8 стоят номера вариан-тов заданий, полный список которых приведен в табл. 2.9.

Таблица 2.8 an

an-1 0 1 2 3 4 5 6 7 8 9

0 1 19 34 27 5 14 20 30 9 26 1 28 2 31 4 13 6 15 8 32 10 2 21 35 3 12 22 33 7 16 23 18 3 29 24 11 36 28 25 30 29 17 34 4 20 9 12 8 22 5 15 4 27 1 5 11 36 21 35 14 32 24 33 18 31 6 19 10 13 7 23 6 16 3 26 2 7 17 25 1 15 34 33 27 29 12 20 8 14 2 22 5 35 8 36 9 21 11 9 3 16 4 18 6 19 7 13 10 17

Задание 1. Выполнить арифметические действия, рассматривая операнды как ЧФЗ справа от МЗР в формате 1-го байта. Определить модуль результата. Формат результата – 2 байта.

Задание 2. Выполнить арифметические действия, рассматривая операнды как ЧПЗ с основанием 2 в следующем формате: несмещенный порядок – 4 бита, ман-тисса – 8 бит. Формат результата – тот же. Округление производить после приведе-ния операнда к нормализованной форме. Результат нормализовать.

Задание 3. Выполнить арифметические действия над операндами, представив их в двоично-десятичном коде.

Варианты заданий Таблица 2.9 Задание 1 (ЧФЗ) Задание 2 (ЧПЗ) Задание 3 (2-10)

Операции Операции Операции №

вари-анта

Операнды X+Y X-Y X*Y X+Y X-Y X*Y X+Y X-Y X*Y

1 2 3 4 5 6 7 8 9 10 11

01 X Y

15 33

15 33

15 33

15.33 33.15

15.33 33.15

15.33 33.15

153 331

153 331

153 331

02 X Y

32 67

32 67

32 67

32.67 67.32

32.67 67.32

32.67 67.32

326 673

326 673

326 673

03 X Y

17 37

17 37

17 37

17.37 37.17

17.37 37.17

17.37 37.17

173 371

173 371

173 371

04 X Y

30 63

30 63

30 63

30.63 63.30

30.63 63.30

30.63 63.30

306 633

306 633

306 633

05 X Y

19 41

19 41

19 41

19.41 41.19

19.41 41.19

19.41 41.19

194 411

194 411

194 411

06 X Y

28 59

28 59

28 59

28.59 59.28

28.59 59.28

28.59 59.28

285 592

285 592

285 592

07 X Y

21 45

21 45

21 45

21.45 45.21

21.45 45.21

21.45 45.21

214 452

214 452

214 452

08 X Y

26 55

26 55

26 55

26.55 55.26

26.55 55.26

26.55 55.26

265 552

265 552

265 552

09 X Y

23 49

23 49

23 49

23.49 49.23

23.49 49.23

23.49 49.23

234 492

234 492

234 492

Page 66: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

65

Продолжение табл. 2.9 1 2 3 4 5 6 7 8 9 10 11

10 X Y

24 51

24 51

24 51

24.51 51.24

24.51 51.24

24.51 51.24

245 512

245 512

245 512

11 X Y

25 53

25 53

25 53

25.53 53.25

25.53 53.25

25.53 53.25

255 532

255 532

255 532

12 X Y

22 47

22 47

22 47

22.47 47.22

22.47 47.22

22.47 47.22

224 472

224 472

224 472

13 X Y

27 57

27 57

27 57

27.57 57.27

27.57 57.27

27.57 57.27

275 572

275 572

275 572

14 X Y

20 43

20 43

20 43

20.43 43.20

20.43 43.20

20.43 43.20

204 432

204 432

204 432

15 X Y

29 61

29 61

29 61

29.61 61.29

29.61 61.29

29.61 61.29

296 612

296 612

296 612

16 X Y

38 54

38 54

38 54

38.54 54.38

38.54 54.38

38.54 54.38

385 543

385 543

385 543

17 X Y

31 65

31 65

31 65

31.65 65.31

31.65 65.31

31.65 65.31

316 653

316 653

316 653

18 X Y

16 35

16 35

16 35

16.35 35.16

16.35 35.16

16.35 35.16

163 351

163 351

163 351

19 X Y

13 31

13 31

13 31

13.31 31.13

13.31 31.13

13.31 31.13

133 331

133 331

133 331

20 X Y

18 72

18 72

18 72

18.72 72.18

18.72 72.18

18.72 72.18

187 721

187 721

187 721

21 X Y

15 48

15 48

15 48

15.48 48.15

15.48 48.15

15.48 48.15

154 481

154 481

154 481

22 X Y

41 58

41 58

41 58

41.58 58.41

41.58 58.41

41.58 58.41

415 584

415 584

415 584

23 X Y

22 81

22 81

22 81

22.81 81.22

22.81 81.22

22.81 81.22

228 812

228 812

228 812

24 X Y

19 74

19 74

19 74

19.74 74.19

19.74 74.19

19.74 74.19

197 741

197 741

197 741

25 X Y

46 73

46 73

46 73

46.73 73.46

46.73 73.46

46.73 73.46

467 734

467 734

467 734

26 X Y

38 62

38 62

38 62

38.62 62.38

38.62 62.38

38.62 62.38

386 623

386 623

386 623

27 X Y

14 51

14 51

14 51

14.51 51.14

14.51 51.14

14.51 51.14

145 511

145 511

145 511

28 X Y

23 36

23 36

23 36

23.36 36.23

23.36 36.23

23.36 36.23

233 362

233 362

233 362

29 X Y

34 71

34 71

34 71

34.71 71.34

34.71 71.34

34.71 71.34

347 713

347 713

347 713

30 X Y

19 64

19 64

19 64

19.64 64.19

19.64 64.19

19.64 64.19

196 641

196 641

196 641

31 X Y

42 69

42 69

42 69

42.69 69.42

42.69 69.42

42.69 69.42

426 694

426 694

426 694

32 X Y

35 68

35 68

35 68

35.68 68.35

35.68 68.35

35.68 68.35

356 683

356 683

356 683

33 X Y

21 75

21 75

21 75

21.75 75.21

21.75 75.21

21.75 75.21

217 752

217 752

217 752

34 X Y

17 66

17 66

17 66

17.66 66.17

17.66 66.17

17.66 66.17

176 661

176 661

176 661

Page 67: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

66

Окончание табл. 2.9

35 X Y

35 52

35 52

35 52

35.52 52.35

35.52 52.35

35.52 52.35

355 523

355 523

355 523

36 X Y

28 83

28 83

28 83

28.83 83.28

28.83 83.28

28.83 83.28

288 832

288 832

288 832

Пример выполнения контрольного задания (форма 2) Задание 1 (ЧФЗ) Задание 2 (ЧПЗ) Задание 3 (2-10)

Операции Операции Операции №

вари-анта

Операнды X+Y X-Y X*Y X+Y X-Y X*Y X+Y X-Y X*Y

№ X Y

18 33

18 33

18 33

18.33 33.18

18.33 33.18

18.33 33.18

183 331

183 331

183 331

Задание 1. Выполнить арифметические действия, рассматривая операнды как ЧФЗ справа от МЗР в формате 1-го байта. Определить модуль результата. Формат результата – 2 байта.

1. Выполним операцию сложения Z = X+Y = 18(10) + 33(10) = 51(10). X = 18(10) = 0001 0010(2); Y = 33(10) = 0010 0001(2). Выполним сложение в ПК:

Перенос (единицы)X 0001 0010Y + 0010 0001Сумма (X+Y) 0011 0011(2) = 51(10)

Результат: Z = 0011 0011(2) = 51(10) .

2. Выполним операцию вычитания Z = X-Y = 18(10) – 33(10) = -15(10).

- ПКX = 18(10) → 0001 0010(2)

- ДК- ПК (-)

Быстрый перевод1101 1111(2)

Y = -33(10)→ 1010 0001(2)

Перенос из знакового разряда отсутст-вует. Число отрицательное в ДК, так какзнаковый разряд равен 1.

+0001 0010

0 ← 1111 0001(2)

1101 1111

перенос

.Вычислим результат, преобразовав его из ДК в ПК :

1111 0001(2) (ДК)

Инверсия всех разрядов, кроме знакового+1000 1110

(ПК) = - 15(10) 1000 1111(2)

1

Результат: Z = 1000 1111(2) = 15(10) .

3. Выполним операцию умножения Z = X*Y = 18(10)*33(10) = 594(10). X = 18(10) = 0001 0010(2); Y = 33(10) = 0010 0001(2).

Page 68: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

67

Выполним операцию умножения младшими разрядами вперед:

000000010010

1 00

+

P100010010

0 Y=

сдвиг на 1 разряд вправо 000010010P200000000 сумма P1 + P2 000010010 сдвиг на 1 разряд вправо 0000010010

+ P300000000 сумма P1+P2+P3 0000010010 сдвиг на 1 разряд вправо 00000010010

+ P400000000 сумма P1+P2+P3+P4 00000010010

0 1 0 0

00000000

0000000010010

P5

сумма P1+P2+P3+P4+P5

сдвиг на 1 разряд вправо

00010010 000100101001000001001010010

P6

сумма P1+P2+P3+P4+P5+P6

сдвиг на 1 разряд вправо

+

+

000000010010 сдвиг на 1 разряд вправо

Последние два нуля дают сдвиг на 2 разряда вправо

После сдвига получим:

0000001001010010(2) = 594(10)т. Z =

Задание 2. Выполнить арифметические действия, рассматривая операнды как ЧПЗ с основанием 2 в следующем формате: несмещенный порядок – 4 бита, ман-тисса – 8 бит. Формат результата – тот же. Округление производить после приведе-ния операнда к нормализованной форме. Результат нормализовать.

X = 18.33(10); Y = 33.18(10).

• Преобразуем дробную часть Х, равную 0.33(10), в двоичное число:

00.480.24*200.240.12*211.120.56*200.560.28*211.280.64*200.640.32*211.320.66*2

)СЗР(00.660.33*2

========

Таким образом, 0.33(10) = 0.01010100(2), a X = 18.33(10) = 00010010.01010100(2). • Представим X в формате ЧПЗ, округлив значение мантиссы до 8 разрядов (не-

нормализованное число):

Page 69: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

68

0000*10010.011 .qxPx

X=

• Нормализуем X:

Pнорм x=Рx+5; qx - сдвигаем на 5 разрядов вправо

0101*0.10010011. qнорм x pнорм x

X=

• Преобразуем дробную часть Y, равную 0.18(10), в двоичное число:

00.080.04*211.040.52*211.520.76*211.760.88*200.880.44*211.440.72*200.720.36*2

(СЗР)00.360.18*2

========

Таким образом, 0.18(10) = 0.00101110(2), a Y = 33.18(10) = 00100001.00101110(2). • Представим Y в формате ЧПЗ, округлив значение мантиссы до 8 разрядов (не-

нормализованное число):

0000*100001.01 .qyPy

Y=

• Нормализуем Y:

Pнорм y=Рy+6; qy - сдвигаем на 6 разрядов вправо

0110*0.10000101. qнорм y pнорм y

Y=

1. Выполним операцию сложения Z = X+Y = 18.33(10) + 33.18(10) = 51.51(10).

- qY

- нормализованное значение Z

- выравнивание порядка X2.

+1. 0.010010010110

PY qY

qXPX0.10010011

0.110011100.10000101

0.10000101

X → 0101

Y → 0110

3. 0.110011100110

Результат: Z = 0110 * 0.11001110(2) = 26 * 0.8046875 = 51.5(10)

PZ qZ

2. Выполним операцию вычитания Z = X-Y = 18.33(10) + 33.18(10) = -14.85(10).

Page 70: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

69

Результат: Z = (-) 0110 * 0.00111100(2) = - 26 * 0.234375 = - 15(10)

3). Выполним операцию умножения Z = X*Y = 18.33(10)*33.18(10) = 608.1894(10).

0101 0.10010011 ,qXPX

X= Y= 0110 0.10000101qYPY

• Перемножим мантиссы сомножителей (вариант умножения младшими разря-дами вперед):

qX = 0.1 0 0 1 0 0 1 1qY = 0.1 0 0 0 0 1 0 1

10010011 P1

01001001 1 сдвиг на 1 разряд вправо00000000 Р2

+

01001001 1 сумма Р1+Р2

10010011 P3

00100100 11 сдвиг на 1 разряд вправо

10110111 11 сумма Р1+Р2+Р3

+

следующие 4 нуля дадут сдвиг на 4 разряда вправо

00000101 1011111 сдвиг на 4 разряда вправо10010011 P4

01001100 01011111 сдвиг на 1 разряд вправо10011000 1011111 сумма Р1+Р2+Р3+Р4

+

00000000 Р5

01001100 01011111 результат

+

01011011 111 сдвиг на 1 разряд вправо

Page 71: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

70

• Сложим порядки сомножителей:

0101 - PX

0110 - PY

1011 - PX + PY

+

• Нормализуем произведение:

Pнорм Z = РZ -1; qZ - сдвигаем на 1 разряд влево

1010 0.10011110 .qнорм Zpнорм Z

Результат: Z = 1010 * 0.10011000(2) = 210 * 0.59375(10) = 608(10). Задание 3. Выполнить арифметические действия над операндами, представив

их в двоично-десятичном коде. 1. Выполним операцию сложения Z=X+Y= 183(10) + 331(10) = 514(10). X = 183(10) = 0001 1000 0011(2-10); Y = 331(10) = 0011 0011 0001(2-10).

. .

0001 1000 0011 - X0011 0011 0001 - Y

+

0101 0001 0100 - X+Yкор

0000 0110 0000 - коррекция 2-й цифры+

0100 1011 0100 - X+Y

Результат: Z = 0101 0001 0100(2-10) = 514(10).

2. Выполним операцию вычитания Z = X – Y = 183(10) – 331(10) = -148(10). • Представим |Y| в ДК с избытком 6:

YДК → 1100 1100 11110001

YОК → 1100 1100 1110+

• Выполним сложение:

Z’ДК → 1110 0101 0010 YДК → 1100 1100 1111

XПК → 0001 1000 0011

- нескорректированное Z в ДК

1 1 - переносы

+

Отсутствие переноса из старшей тетрады является признаком того, что резуль-тат получился в ДК (т.е. отрицательный). • Перейдем к нескорректированному избыточному ПК:

Z’ДК → 1110 0101 0010ZДК → 0001 1010 1101

Z’ПК → 0001 1010 11100001

- нескорректированное Z в ПК

+

Page 72: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

71

• Произведем коррекцию результата в соответствии с п. 5 алгоритма выполнения операции вычитания двоично-десятичных чисел:

Z’ПК → 0001 1010 1110

→ 0000 1010 1010

результат |Z|= (0001 0100 1000) = 148(10)

0001 0100 1000

отброситьпереносы →

коррекция

11

+

Поскольку ранее результат получался в ДК, т.е. отрицательный, необходимо добавить знак (-).

Результат: Z = - ( 0001 0100 1000)(2-10) = -148(10).

3. Выполним операцию умножения Z = X * Y = 183(10) * 331(10) = 60573(10) X = 183(10) = 0001 1000 0011(2-10); Y = 331(10) = 0011 0011 0001(2-10).

Для решения примера выберем вариант перемножения "младшие разряды вперед". В соответствии с п. 1 алгоритма полагаем сумму частичных произведений P0=0. (Частичные произведения будем обозначать Pi).

Y = 0011 0011 0001 X = 0001 1000 00110000 0000 0000

+0001 1000 00110001 1000 0011

0000 0001 1000 0011

0001 1000 00110001 1000 00110001 1000 0011

++

+

1(10)

3(10)

← P0=0← P1 (1-е част. произв.)← Σ1=P0 + P1=P1 - коррекции

не требует← Сдвиг вправо

← P2 (2-е част. произв.)

3(10)0001 1000 00110001 1000 00110001 1000 0011

++

← P3 (3-е част. произв.)

← Сдвиг вправо

+

Формирование второго и третьего частичных произведений – более длительная операция, поскольку вторая и третья анализируемые тетрады содержат 3(10), поэто-му каждая операция суммирования требует проверки необходимости коррекции. Вы-числим P2 ( P2 = Р3 ), последовательно суммируя слагаемые, образующие P2:

0000 0110 0000

0011 0000 01100001 1000 0011

0001 1000 0011

коррекция →

P'2 неп. →Х →

Х →

тетрада требует коррекции (перенос)← неполное, нескорректированное Р2

← второе слагаемое Р2

← первое слагаемое Р2

+

+

← полное Р2, коррекции не требует0101 0100 10010001 1000 0011

0011 0110 0110+P2 неп. →

Х →P2 →

← неполное, скорректированное Р2

← третье слагаемое Р2

1

Page 73: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

72

Таким образом, второе (а также и третье) частичное произведение, состоящее из трех слагаемых, имеет вид

P2 = Р3 = 0101 0100 1001(2-10).

Теперь можно вычислить сумму первого, второго и третьего частичного произ-ведений, т.е. результат.

0000 0000 0000 0110 0000

0000 0101 0110 0001 00110000 0101 0100 1001

0000 0000 0001 1000 0011

коррекция →

∑‘2=P1+P2

P2 →

P1 →

← тетрада требует коррекции (перенос)← Р1 + Р2

← второе сдвинутое частичное произведение

← первое сдвинутое частичное произведение

+

+

0000 0101 0110 0111 0011∑2=P1+P2 → ← скорректированная сумма Р1+Р2

0000 0110 0110 0000 0000

0101 1001 1111 0111 0011

коррекция →

∑‘3=P1+P2+P3 →← тетрада требует коррекции (f=1)← Р1 + Р2+ Р3

+

0110 0000 0101 0111 0011∑3=P1+P2+P3 → ← скорректированная сумма Р1+Р2+Р3

0101 0100 1001P3 → ← третье частичное сдвинутое произведение

. .

1

Окончательный результат: Z = 0110 0000 0101 0111 0011(2-10) = 60573(10).

3. Принципы построения элементарного процессора Ранее, при рассмотрении обобщенной структуры ЭВМ, отмечалось, что основ-

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

Ранее рассматривались действия над числами (сложение, вычитание, умноже-ние), представленными в различной форме. Было подчеркнуто, что все эти действия осуществляются с помощью элементарных операций, выполняемых в определен-ной последовательности.

К таким элементарным операциям относятся: - запись числа в регистр; - инвертирование содержимого разрядов регистра; - пересылка содержимого регистров; - сдвиг содержимого регистра; - сложение кодов; - поразрядные логические операции или анализ разрядов; - операция счета с+1 или с-1 (инкремент или декремент).

Page 74: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

73

Пример. Операция умножения реализуется с помощью:

- анализа разряда множителя; - суммирования; - сдвига. Все эти действия выполняются в устройстве, называемом процессором, кото-

рое состоит из двух устройств – операционного (ОУ) и управляющего (УУ). ОУ – выполняет указанные элементарные операции. УУ – управляет ОУ, задавая необходимую последовательность выполнения

этих операций. Это соответствует принципу В.М. Глушкова, что в любом устройстве обработки

цифровой информации можно выделить операционный и управляющий блоки. В качестве узлов УУ и ОУ включают в себя регистры, счетчики, сумматоры,

мультиплексоры, дешифраторы и т.д., т.е. устройства импульсной цифровой техни-ки. Кроме того, нормальное функционирование процессора и всей ЭВМ возможно только при наличии высокостабильных импульсных последовательностей, форми-руемых, как правило, из одной импульсной последовательности, вырабатываемой кварцевым генератором. Эти тактовые импульсные последовательности синхрони-зируют работу узлов процессора, а иногда и всей ЭВМ.

Обобщенная структура любого процессора изображена на рис. 3.1. Каждая элементарная операция, выполняемая в одном из узлов ОУ в течение

одного тактового периода, называется микрооперацией. В определенные тактовые периоды одновременно могут выполняться несколь-

ко микроопераций, например: R2 ← 0, Сч ← (Сч) – 1 и т.д. Такая совокупность непро-тиворечивых микроопераций называется микрокомандой, а набор микрокоманд, предназначенный для решения задачи, называется микропрограммой.

Если в ОУ предусмотрена возможность выполнения n различных микроопера-ций, то из УУ должно выходить n управляющих цепей S1,...,Sn, каждая из которых со-ответствует своей микрооперации. В силу того что УУ определяет микропрограмму, т.е. какие и в какой временной последовательности должны выполняться микроопе-рации, оно получило название микропрограммного автомата. Соответственно ОУ часто называют операционным автоматом.

Pm

Z

ОУ

Вх. данные X

P1

Вых. данные

УУ

S1

КОП Признак результата

Код операции (+, -, /, * и т.д.)

Рис. 3.1. Обобщенная структура процессора

Sn

УУ – управляющее устройство; КОП – код операции; ОУ – операционное устройство

Page 75: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

74

Формирование управляющих сигналов S1,...,Sn может зависеть как от внешних сигналов КОП (команды ассемблера), так и от состояния узлов ОУ, определяемого известительными сигналами признаков состояния P1,...,Pm, поступающими с выхода ОУ на соответствующие входы УУ.

Как уже отмечалось, ОУ выполняет над исходными данными различные ариф-метические и логические операции, поэтому ОУ наиболее часто называют арифме-тико-логическим устройством, или АЛУ.

Деление любого процессора на программный и операционный автоматы доста-точно очевидно и не вызывает особых трудностей в понимании. Однако структурные схемы даже простейших реальных процессоров, помимо АЛУ и УУ, содержат еще ряд узлов (регистров, счетчиков, дешифраторов), которые вроде бы не относятся ни к АЛУ, ни к УУ. Для устранения путаницы в дальнейшем материале необходимо сде-лать ряд замечаний: 1. В абсолютном большинстве случаев устройства обработки цифровой инфор-мации имеют многоуровневую структуру, т.е. построены по принципу "матрешки". Это означает, что УУ и ОУ могут сами распадаться на пары УУ' и ОУ', которые, в свою очередь, также могут распадаться на соответствующие УУ и ОУ. Все зависит от степени детализации рассмотрения данного цифрового устройства. Этот принцип многоуровневости справедлив для всех устройств ЭВМ.

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

Так, например, центральный процессор больших ЭВМ общего назначения се-редины 70-х годов разбивался на 4-5 уровней, на каждом из которых можно выде-лить свое УУ и ОУ. Современные процессоры имеют еще более сложную структуру.

Более того, эти рассуждения справедливы в целом для ЭВМ, которую можно разложить на ряд виртуальных (кажущихся) машин и с каждой работать на соответ-ствующем уровне. В общем случае современные универсальные ЭВМ имеют шесть уровней:

- уровень проблемно-ориентированного языка; - процедурно-ориентированный язык; - ассемблерный уровень (язык ассемблера); - уровень операционной системы (язык операционной системы); - традиционный машинный уровень (язык машинных команд); - микропрограммный уровень (язык микрокоманд).

Машинные языки двух нижних уровней являются цифровыми, и программы на них состоят из длинных числовых последовательностей, очень неудобных для чело-века, но понятных машине. Все более высокие уровни содержат слова и аббревиа-туру, что более удобно для человека. 2. Из сказанного следует, что только самые простейшие процессоры имеют один уровень и могут быть в чистом виде разложены на УУ и ОУ, состоящие из комбина-ционных логических схем, способных выполнять элементарные арифметико-логические операции. 3. В настоящее время нет строгого определения АЛУ, что вызывает некоторую пу-таницу при пользовании различной литературой. АЛУ обычно обозначают так, как показано на рис. 3.2. При этом одни авторы подразумевают под АЛУ только комби-национные логические схемы, способные выполнять операции двоичного суммиро-вания (т.е. фактически двоичный сумматор), другие – целый комплекс схем для вы-полнения арифметико-логических операций, который сам может быть разложен на УУ и ОУ.

Page 76: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

75

4. Из сказанного следует вывод, что в общем случае понятия микрооперации и мик-ропрограммы относительны и требуют конкретизации уровня рассмотрения процессора, поскольку один такт верхнего уровня может включать в себя не-сколько тактов нижнего уровня.

5. Для устранения путаницы при изучении основных принципов построения эле-ментарных процессоров будем считать:

- процессор имеет один уровень; - процессор пользуется одной тактовой последовательностью; - значок АЛУ (см. рис. 3.2) обозначает комплекс комбинационных схем, спо-собных выполнять двоичное суммирование, сдвиг двоичного числа, простей-шие поразрядные логические операции; - узлы микропроцессора, не относящиеся непосредственно к схеме управле-ния, будем считать вспомогательными узлами АЛУ, или, точнее, узлами, обес-печивающими нормальное функционирование АЛУ.

3.1. Операционные устройства (АЛУ) В разделе "Представление информации в ЭВМ" было показано, что различные

арифметические операции над числами (представленными, кроме, того в различной кодировке) требуют существенно различных последовательностей микроопераций. Кроме того, очевидно, что чем многофункциональнее электронное устройство, тем сложнее его структура (больше элементов) и тем медленнее оно работает. С другой стороны, функции такого сложного устройства может выполнить набор более про-стых и быстродействующих устройств, однако аппаратурные затраты и цена будут выше.

В общем случае операции, выполняемые в АЛУ, можно разделить на следую-щие группы:

- операции двоичной арифметики для ЧФЗ; - операции двоичной (шестнадцатеричной) арифметики для ЧПЗ; - операции десятичной арифметики; - логические операции; - операции индексной арифметики (при модификации адресов команд); - операции специальной арифметики:нормализация чисел, арифметический сдвиг (сдвигаются только цифровые разряды без знакового), логический сдвиг (сдвигаются все разряды) и т.д.. ЭВМ общего назначения обычно реализуют операции приведенных выше

групп, но делают это по-разному, в зависимости от типа АЛУ, используемого в про-цессоре.

АЛУ подразделяется на блочные и многофункциональные. В блочных АЛУ (рис. 3.3) перечисленные группы операций выполняются в от-

дельных электронных блоках, при этом повышается скорость работы, так как блоки могут параллельно выполнять соответствующие операции. Кроме того, специализи-

АЛУ

Входы

Выход

Рис. 3.2. Графическое обозначение простейшего АЛУ

АЛУ – арифметико - логическое устройство

Page 77: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

76

рованный блок всегда выполняет операции быстрее, чем универсальный перена-страиваемый блок.

Блочные АЛУ характерны для больших ЭВМ, где главным является максималь-

ное быстродействие, а не аппаратные затраты и стоимость. Простейшие сопроцес-соры в микроЭВМ, выполняющие операции с ЧПЗ, также можно рассматривать как специализированные блоки, поэтому АЛУ микроЭВМ с сопроцессорами можно ино-гда рассматривать как блочные.

В многофункциональных АЛУ перечисленные группы операций выполняются одними и теми же схемами, которые коммутируются нужным образом в зависимости от требуемого режима работы. Такие АЛУ характерны для мини- и микроЭВМ, по-строенных на простых процессорах.

Существуют и другие структуры АЛУ (смешанные), находящиеся где-то между блочными и многофункциональными.

Следует иметь в виду, что часто ЭВМ, построенные на базе простейших микро-процессоров, имеют АЛУ, позволяющие выполнять только операции двоичной арифметики над ЧФЗ и некоторые логические операции. В этом случае остальные группы операций выполняются специальными подпрограммами, что сильно понижа-ет скорость их выполнения.

Рассмотрим несколько подробнее структуру АЛУ простейшего процессора и определим минимально необходимый набор входящих в него устройств. Из изло-женного выше следует, что в состав такого АЛУ должно входить устройство, выпол-няющее операции двоичного суммирования (сумматор). Кроме того, для хранения операндов и результата необходимо иметь, по крайней мере, три буферных регист-ра (регистры временного хранения). Однако в простейшем случае результат опера-ции можно записывать в один из регистров временного хранения на место одного из операндов. Этот регистр принято называть аккумулятором, а процессор в целом – процессором аккумуляторного типа. Аккумулятор должен обязательно иметь дву-направленную связь с внутренней шиной данных процессора. (В более сложных АЛУ результат операции может быть записан по желанию программиста в любой из спе-циально выделенных для этой цели регистр). Для выполнения арифметико-логических операций необходимо устройство, выполняющее сдвиги двоичных чисел (сдвигатель). И, наконец, необходим регистр, в котором хранятся некоторые призна-ки результата выполненной операции, необходимые для функционирования УУ (ре-гистр признаков).

Структурная схема АЛУ простейшего микропроцессора аккумуляторного типа изображена на рис. 3.4.

Арифметика

ЧФЗ Десятичная арифметика

Логические операции

Арифметика ЧПЗ

Специальная арифметика

Индексная арифметка

X

S

Z

P

X – входные данные; S – управляющие сигналы; Z – результат операции; P – извещение о завершении работы

Рис. 3.3. Блочные АЛУ

Page 78: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

77

Уже отмечалось, что АЛУ в целом и двоичный сумматор имеют одно обозначе-ние. В соответствии со сделанными ранее замечаниями регистр временного хране-ния и аккумулятор можно считать вспомогательными узлами АЛУ.

3.2. Управляющие устройства Выше отмечалось, что УУ (рис. 3.5) управляет работой АЛУ путем выработки

последовательности микрокоманд, необходимых для выполнения той или иной опе-рации (+, -, /, * и т.д.). Порядок выполнения микрокоманд определен микропрограм-мой реализации операции, но может изменяться в зависимости от признаков опера-ции, вырабатываемых в АЛУ (P1,...,Pm) и подаваемых на вход УУ.

Микропрограммы могут иметь как линейную структуру, так и быть разветвленными, причем условные переходы осуществляются в соответствии с признаками P.

Технические реализации УУ даже простейших процессоров разнообразны. Од-нако в самом общем случае их различают по способу хранения микропрограмм. По этому критерию УУ подразделяются на УУ с жесткой (схемной) логикой и УУ с хра-нимой в специальной памяти микропрограммой. Если микропроцессорная память

Сумматор

Рг временного хранения

Аккумулятор

СдвигательРг признаков

Внутренняя шина данных

Рис. 3.4. Структурная схема простейшего АЛУ аккумуляторного типа

КОП

УУ

P

S

Рис. 3.5. Общий вид УУ

УУ – управляющее устройство; S – сигнал управления (СУ); АЛУ – арифметико-логическое устройство; КОП – код операции; P – оповещающие сигналы (признаки) от АЛУ

Page 79: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

78

доступна программисту, то УУ являются микропрограммируемыми и позволяют из-менить систему команд процессора. Если микропрограммная память не доступна, то процессор имеет неизменную систему команд, как и в случае УУ с жесткой логикой.

Данные варианты отличаются друг от друга принципами построения, аппарат-ными затратами, временем реализации микропрограмм, возможностью изменения последовательности микрокоманд, а следовательно, и системы команд процессора.

УУ современных процессоров во многих случаях комбинированные. Выполне-нием простых команд управляет быстродействующее УУ на жесткой логике, а вы-полнением сложных команд – более медленное УУ с микропрограммной памятью.

Ниже будут рассмотрены общие принципы построения обоих типов УУ.

3.2.1. УУ с жесткой логикой УУ, построенные на жесткой логике (рис. 3.6), исторически появились первыми.

Основным преимуществом таких УУ является их быстродействие. Именно поэтому абсолютное большинство специализированных процессоров, особенно предназна-ченных для обработки информации в режиме реального времени, имеют УУ на же-сткой логике. Под специализированными понимаются процессоры, предназначенные для выполнения узкого набора специальных функций (обработка сигналов радиоло-кационных станций, преобразование Фурье, матричные операции, обработка сигна-лов в скоростных линиях связи и т.д.) с максимальной скоростью.

Однако и в процессорах общего назначения с универсальными наборами ко-манд УУ на жесткой логике также используются очень широко, особенно, как уже от-мечалось, для управления выполнением простых команд. Системы команд таких процессоров всегда фиксированные и не могут быть изменены пользователем. По-добные УУ иногда называют специализированными.

Специализированные УУ формируют неизменные последовательности сигна-лов управления (СУ).

Блок логических схем состоит из комбинационных схем, регистров, счетчиков, дешифраторов и других устройств, выполняющих функции запоминания текущего состояния автомата, определяющего СУ, и формирования следующего состояния в соответствии с входными признаками.

Микропрограмма в таком автомате хранится за счет системы жестких связей между узлами УУ. Для изменения микропрограммы требуется демонтаж жестких связей и создание новой схемы.

Логические схемы

Многофаз-ный счетчик

тактов

КОП

Признаки от ОУ

Синхроимпульсы от ГТИ

СУ к ОУ

СУ – сигналы управления; ОУ – операционное устройство; ГТИ – генератор тактовых импульсов; КОП – код операции

Рис. 3.6. Структура УУ с жесткой логикой

Page 80: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

79

Одним из недостатков УУ на жесткой логике является то, что любые изменения или модификации команд универсального процессора, требующие изменения мик-ропрограмм, приведут к изменению структуры управляющего автомата, а следова-тельно, и топологии его внутренних связей. При производстве специализированных процессоров требуется весьма широкая номенклатура УУ (по числу решаемых за-дач) при относительно небольшой потребности в каждом конкретном типе. С точки зрения технологии микроэлектронного производства процессоров в виде БИС и СБИС указанный недостаток является весьма существенным. Увеличивается цена каждого выпущенного кристалла процессора за счет увеличения расходов на разра-ботку новых топологий УУ и отладку технологии их производства.

Оптимальным решением этой проблемы явилось построение УУ на специали-зированных логических структурах с фиксированной топологией – программируемых логических матрицах (ПЛМ). ПЛМ является слоистой структурой, в каждом слое ко-торой сосредоточены однотипные логические элементы. Топология связей построе-на таким образом, что на входы каждого элемента последующего слоя подаются выходные сигналы всех элементов предыдущего слоя. ПЛМ может выполняться как отдельная БИС, так и формироваться внутри кристалла процессора, являясь весьма удобным элементом для создания управляющих автоматов.

Обобщенная функциональная схема простейшей ПЛМ представлена на рис. 3.7.

При изготовлении ПЛМ образуется схема, допускающая множество вариантов обработки входных сигналов. Входные элементы позволяют иметь все входные пе-

Слой входных

инверторов

Слой элементов

"И"

Слой элементов

"ИЛИ"

Слой выходных инверторов

&

&

&

1

1

1

1

1

1

1

1

1

Рис. 3.7. Функциональная схема простейшей ПЛМ

1

2

r

k

1

k

1

k

1

n

1

n

1

n

1

2

k

1

2

n

1 1

1'

2

2'

n

n'

Page 81: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

80

ременные как в прямой, так и в инверсной форме. На входы любого элемента "И" поданы все входные переменные и их инверсии. Ко входам каждого элемента "ИЛИ" подключены выходы всех элементов "И". Наконец, выходные элементы позволяют получить любую из выходных функций в прямом или инверсном виде.

Программирование матрицы состоит в устранении ненужных связей с помощью фотошаблонов или выжиганием (подобно тому, как это делается в ПЗУ).

Программируя ПЛМ, можно реализовать нужные системы булевых функций. Это позволяет строить управляющие автоматы весьма сложной структуры. В силу своей сложности УУ, как правило, описывается большим количеством булевых функций многих переменных. Эти переменные, в свою очередь, часто бывают зави-симыми, поэтому оказывается необходимой совместная минимизация системы бу-левых функций, реализуемой ПЛМ.

Рассмотренная выше функциональная схема иллюстрирует только саму идею построения ПЛМ. Структура же реально выпускаемых БИС достаточно разнообраз-на. Для построения управляющих автоматов наиболее удобны БИС, содержащие наряду с ПЛМ набор выходных триггеров.

Следующим поколением устройств типа ПЛМ являются ПЛИС – программируе-мые логические интегральные схемы, позволяющие программно скомпоновать в од-ном корпусе электронную схему, эквивалентную схеме, включающей от нескольких десятков до нескольких сотен ИС стандартной логики.

В настоящее время на мировом рынке доминируют несколько производителей ПЛИС – XILINX, ALTERA, LATTICE, AT&T, INTEL. Выпускаемые ими ПЛИС весьма разнообразны по сложности, назначению, многофункциональности и т.д., однако все они делятся на две большие группы – EPLD и FPGA.

EPLD – многократно программируемые для сохранения конфигурации исполь-зуется ППЗУ с ультрафиолетовым стиранием).

FPGA – многократно реконфигурируемые для сохранения конфигурации ис-пользуется статическое ОЗУ).

Фирмы-производители поставляют также полное инструментальное обеспече-ние для разработки и применения устройств на базе EPLD и FPGA с помощью пер-сональных компьютеров.

3.2.2. УУ с хранимой в памяти логикой Идея создания микропрограммного УУ возникла давно, в 1951г., но реализо-

вать ее в полном объеме удалось сравнительно недавно – с появлением компактных устройств памяти на БИС. Обобщенная структурная схема микропрограммного УУ изображена на рис. 3.8.

В общем случае МК может задавать одну или несколько МО. Микропрограмма хранится в ПМК. Адрес МК формируется контроллером КПМК и запоминается в ре-гистре адреса МК (РгАМК). МК считывается из памяти в регистр микрокоманды (РгМК). МК, в общем случае, имеет три поля – АСМК, КМО, КПР.

В последнее заносят признак разветвления в микропрограмме, который необ-ходимо анализировать в КПМК. Адрес первой МК определяет КОП, т.е. происходит вызов соответствующей микроподпрограммы. АСМК может указываться в МК явным образом или формироваться естественным путем (при последовательной выборке МК). После выдачи СУ на ОУ происходит выполнение МК, после чего цикл (выборка-реализация) повторяется.

Page 82: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

81

3.2.2.1. Выборка и выполнение МК Возможны три варианта взаимного расположения циклов выборка-реализация. Последовательный способ (рис. 3.9, а). В этом случае выборка следующей МКi+1 не инициируется до момента оконча-

ния предыдущей МКi. Достоинством метода является прежде всего простота органи-зации МК-цикла.

Параллельный способ (конвейер МК) –рис. 3.9, б. Имеет место совмещение этапов выборки МКi+1 и реализации МКi. При равен-

стве периодов выборки и реализации достигается сокращение МК-цикла теоретиче-ски в 2 раза.

Параллельно-последовательный способ (рис. 3.9, в). Используется при наличии МК условной передачи управления, когда адрес

следующей МК зависит от результата предыдущей МК. Выборка МКi+2, стоящей по-сле МКi+1 условного перехода, возможна только после завершения МКi+1.

РгМК

КПМК

Рг АМК

ПМК

КОП

АСМК КМО КПР

S1 Sn

СУ к ОУ

P

МК – микрокоманда; РгМК – регистр МК; МО – микрооперация; АСМК – адрес следующей МК; КОП – код операции; ПМК – память МК; РгАМК – регистр адреса МК; СУ – сигналы управления; ОУ – операционное устройство; КПР – код признаков; КПМК – контроллер последовательности КМО – код МО; микрокоманд или схема P – оповещающие сигналы формирования адреса; (признаки) от АЛУ

Рис. 3.8. Микропрограммное УУ

Page 83: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

82

Используются два основных способа адресации – принудительная и естествен-

ная. Принудительная адресация сводится к тому, что в каждой микрокоманде,

включая операционные, указывается адрес следующей за ней микрокоманды (рис. 3.10, а).

Естественная адресация характерна тем, что адрес следующей микрокоман-ды образуется путем увеличения адреса предыдущей микрокоманды на 1. Это по-зволяет исключить поле адреса из операционных микрокоманд и уменьшить разряд-ность ПМК.

Для выполнения условных и безусловных переходов в микропрограмме ис-пользуются управляющие микрокоманды, содержащие адрес перехода и поле при-знаков (КПР) при обоих типах адресации. Таким образом, операционные и управ-ляющие микрокоманды должны различаться некоторым признаком (рис. 3.10, б и в). Признак α определяет тип МК (например, α = 1 – операционная).

Коротко остановимся на формировании адреса при естественной адресации. В КПМК есть специальный счетчик адреса микрокоманд (СчА), в котором в конечном итоге формируется адрес следующей микрокоманды. Алгоритм формирования ад-реса следующей МК зависит от ее типа, а именно:

- операционная МК – после выборки МК СчА := СчА + 1; - управляющая МК – после выборки происходит проверка условия, заложенно-го в МК. Если условие выполняется, то СчА := АСМК, а если условие не выпол-няется, то СчА := СчА + 1.

MKi

MKi+1

MKi+2

t

B P

B P

B P

а

MKi

MKi+1

MKi+3

t

B P

B P

B P

в

1

2

3

MKi

MKi+1

MKi+2

t

B P

B P

B P

б

В – выборка; Р – реализация; 1 и 3 – операционные МК; 2 – МК условного перехода

Рис. 3.9. Выборка и реализация микрокоманды: а – последовательная; б – параллельная; в – последовательно-параллельная

Page 84: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

83

3.2.2.3. Кодирование МК Выбор способа кодирования микрокоманд представляет собой достаточно

сложную задачу и зависит от структуры процессора и его целевого назначения, сис-темы команд, быстродействия и т.д. Рассмотрим только основные способы кодиро-вания микрокоманд. 1. Горизонтальное кодирование (рис. 3.11, а). Это простейший вариант кодирова-ния микрокоманд, при котором каждый разряд поля кода микроопераций однозначно определяет управляющий сигнал для выполнения микрооперации.

Достоинство данного способа состоит в том, что он допускает работу несколь-ких устройств, т.е. параллельное выполнение ряда МО, что повышает быстродейст-вие.

Недостаток способа – при большом наборе МО (от нескольких десятков до не-скольких сотен) возрастает разрядность МК и, следовательно, разрядность ПМК. 2. Вертикальное кодирование (рис. 3.11, б). Это другой подход к кодированию МК с целью максимального сокращения разрядности поля КМО. В этом случае требует-ся дешифратор МО, который увеличивает временные задержки и, следовательно, время выполнения МО.

КМО АСМК

a КМО

КПР АСМК

a

б

Рис. 3.10. Форматы микрокоманды: а - операционная МК при принудительной адресации; б - операционная МК при естественной адресации; в - управляющая МК при обоих типах адресации

а

в КМО1 КМОL

ДШМОLДШМО1

МО1 МОi МОnМОk

г КМО1 КМО2

ДШМО2 ДШМО1

КМО1 m

б

ДШМО

МО1 МОn 1 2 3 8

Логические схемы

1

4

МО1 МОn

КМО 1 n

МО1 МОn

МО – микрооперация; КМО – код микрооперации; ДШМО – дешифратор микрооперации

Рис. 3.11. Кодирование МК: а – горизонтальное; б – вертикальное; в – смешанное; г – косвенное

Page 85: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

84

Помимо увеличения времени на МО к недостаткам следует отнести невозмож-ность параллельного выполнения МО. 3. Смешанное кодирование (рис. 3.11, в). Это кодирование устраняет основные недостатки, присущие горизонтальному и вертикальному кодированиям.

При таком кодировании в отдельных полях кода МО объединяют взаимоисклю-чающие наборы для обеспечения параллельного выполнения МО с разных полей. Данный способ кодирования находит широкое применение в микропрограммных УУ.

Способы 1, 2, 3 – это прямые способы кодирования. Здесь каждое поле КМО формирует определенный набор управляющих сигналов, интерпретируемых всегда одинаковым образом. 4. Косвенное кодирование (рис. 3.11, г). Этот способ кодирования позволяет еще больше уменьшить разрядность МК. Здесь одно и то же поле можно использовать для формирования СУ для различных блоков, при этом его функции определяются другим полем.

На рис. 3.11 КМО1 кодирует одну из четырех групп МО, поле КМО2 определяет реализуемую в данной группе операцию. Пример

00 – микрооперации в АЛУ; 01 – МО в памяти и регистрах контроллеров периферийных устройств; 10 – МО безусловного и условного переходов; 11 – константы для загрузки регистров и счетчиков.

КМО2 позволяет выполнить 64 МО в любой из указанных групп оборудования. Недостатком такого способа кодирования является увеличение объема обору-

дования и, следовательно, дополнительных задержек при исполнении МО. Рассмотренные способы кодирования являются одноуровневыми. На практике

используют и многоуровневое кодирование (микрокоманды, нанокоманды и т. д.).

3.2.2.4. Синхронизация МК С этой точки зрения МК делятся на однофазные и многофазные. При этом в МК

может быть включен дополнительный разряд, определяющий тип синхронизации. Достоинством однофазных МК (рис. 3.12, а) является простота технической

реализации. Многофазные МК (рис. 3.12, б) позволяют минимизировать число МК в памяти,

упрощают выполнение сложных МК и связь между приемником и источником ин-формации. Недостатком является увеличение объема оборудования для формиро-вания многофазных синхросигналов.

Время

КМО1

МОn

КМОа

МО1

КМОб

МО1 МОn

& & & &&

&

Тактовые импульсы

Фазирующие импульсы

МО – микрооперация; КМО – код МО

Рис. 3.12. Синхронизация МК: а – однофазная; б – многофазная

Page 86: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

85

выполнения некоторых МО бывает существенно меньше рабочего такта процессора (время выполнения одной МК), что позволяет при горизонтальном кодировании в одном такте выполнять не только совместимые, но и ряд несовместимых МО. Для этого рабочий такт процессора делят на подтакты (фазы), в каждом из которых вы-полняется одно или несколько элементарных действий (МО) по реализации МК.

Вопросы для самопроверки 1. Опишите обобщенную структуру процессора. 2. Как принцип академика Глушкова реализуется в структуре процессора? 3. Почему устройства обработки цифровой информации имеют многоуровне-вую структуру? 4. Какие операции выполняются в АЛУ? Как в зависимости от реализации этих операций подразделяются АЛУ? 5. Чем отличаются АЛУ блочного типа от многофункциональных АЛУ? 6. Опишите структуру АЛУ простейшего микропроцессора. 7. Опишите общие принципы построения УУ. 8. Укажите основные отличия УУ на жесткой логике от УУ с хранимой в памяти логикой. 9. Перечислите преимущества УУ с жесткой логикой. 10. В чем заключается главный недостаток УУ на жесткой логике? 11. Какое решение было найдено для устранения главного недостатка УУ на жесткой логике? 12. Для чего нужна ПЛМ? 13. Что такое ПЛИС? 14. Опишите структуру УУ с хранимой в памяти логикой. 15. Перечислите варианты взаимного расположения циклов выборка-реализация МК. 16. Охарактеризуйте основные способы формирования адреса следующей МК. 17. Какие форматы микрокоманд бывают? 18. Опишите алгоритмы формирования адреса следующей МК. 19. Назовите способы кодирования МК. Приведите для каждого способа схему кодирования МК. 20. Опишите достоинства и недостатки каждого способа кодирования микроко-манды. 21. Как подразделяются МК с точки зрения синхронизации?

Контрольные задания к главе 3 1. На листах ответа должны быть указаны номер группы, фамилия студента и номер его варианта. 2. Номера вопросов выбираются студентом в соответствии с двумя последни-ми цифрами в его зачетной книжке. В табл.3.1 аn-1 – это предпоследняя цифра номера, аn – последняя цифра. В клетках таблицы стоят номера вопросов, на которые необходимо дать письменный ответ.

Page 87: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

86

Таблица 3.1 an

an-1 0 1 2 3 4 5 6 7 8 9

0 1,5,9, 13,17

3,6,10,14,18

4,7,11,16,20

2,8,12,15,19

3,7,9,13,17

1,6,10,13,21

4,7,9,13,20

2,5,9, 15,18

1,6,10,14,18

4,7,11,14,17

1 2,8,12,16,17

4,8,11,13,21

1,5,9, 16,20

3,8,10,15,18

4,7,11,13,18

2,5,10,16,21

3,6,10,13,17

1,7,12,16,21

4,7,9, 16,19

2,8,12,14,18

2 3,6,10,16,20

1,8,12,16,18

4,7,11,15,19

2,6,9,15,17

1,5,9,14,18

3,6,10,15,19

4,8,12,14,19

2,8,12,13,20

3,5,10,14,21

1,5,9,15,19

3 2,6,9, 15,21

3,7,11,13,20

1,7,11,14,18

1,5,9,13,17

3,6,10,14,18

4,7,11,16,20

2,8,12,15,19

3,7,9, 13,17

1,6,10,13,21

4,7,9,13,20

4 2,5,9, 15,18

1,6,10,14,18

4,7,11,14,17

2,8,12,16,17

4,8,11,13,21

1,5,9,16,20

3,8,10,15,18

4,7,11,13,18

2,5,10,16,21

3,6,10,13,17

5 1,7,12,16,21

4,7,9,16,19

2,8,12,14,18

3,6,10,16,20

1,8,12,16,18

4,7,11,15,19

2,6,9,15,17

1,5,9, 14,18

3,6,10,15,19

4,8,12,14,19

6 2,8,12,13,20

3,5,10,14,21

1,5,9, 15,19

2,6,9,15,21

3,7,11,13,20

1,7,11,14,18

1,5,9,13,17

3,6,10,14,18

4,7,11,16,20

2,8,12,15,19

7 3,7,9, 13,17

1,6,10,13,21

4,7,9, 13,20

2,5,9,15,18

1,6,10,14,18

4,7,11,14,17

2,8,12,16,17

4,8,11,13,21

1,5,9, 16,20

3,8,10,15,18

8 4,7,11,13,18

2,5,10,16,21

3,6,10,13,17

1,7,12,16,21

4,7,9,16,19

2,8,12,14,18

3,6,10,16,20

1,8,12,16,18

4,7,11,15,19

2,6,9,15,17

9 1,5,9, 14,18

3,6,10,15,19

4,8,12,14,19

2,8,12,13,20

3,5,10,14,21

1,5,9,15,19

2,6,9,15,21

3,7,11,13,20

1,7,11,14,18

1,5,9,13,17

Page 88: ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМiamdrunk.ru/teach/Учеба_ПГАТИ/2007-2008/1 Семестр/!/ustu064.pdf · систем закономерно привели

Учебное издание

Хмелевский Игорь Васильевич Битюцкий Валерий Петрович

ОРГАНИЗАЦИЯ ЭВМ И СИСТЕМ

ОДНОПРОЦЕССОРНЫЕ ЭВМ

ЧАСТЬ 1

Редактор издательства И.Г.Южакова

Компьютерный набор авторский

Подписано в печать 20.06.2005 Формат 60 х 84 1/16 Бумага типографская Офсетная печать Усл. печ. л. 4,99 Уч.-изд. л. 6,7 Тираж 150 Заказ Цена «С»

Редакционно-издательский отдел ГОУ ВПО УГТУ-УПИ 620002, Екатеринбург, ул. Мира, 19

Ризография НИЧ ГОУ ВПО УГТУ-УПИ

620002, Екатеринбург, ул. Мира, 19