Главная » Просмотр файлов » В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования

В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования (975817), страница 6

Файл №975817 В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования (В.Г. Баула - Введение в архитектуру ЭВМ и системы программирования.doc) 6 страницаВ.Г. Баула - Введение в архитектуру ЭВМ и системы программирования (975817) страница 62019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 6)

Например, рассмотрим двухадресную ЭВМ, в которой регистровая память состоит из 16 ячеек. В этом случае адрес каждого регистра лежит в диапазоне 015, и будет помещаться в 4 бита, а основная память содержит 220 ячеек и адрес каждой ячейки занимает 20 двоичных разрядов. В такой ЭВМ в качестве адресов операндов каждой команды могут быть или адреса двух регистров, или адрес регистра и адрес ячейки основной памяти. Адреса регистров на схемах команд будем обозначать R1 и R2, а адрес основной памяти A1 или A2. Первый вид команд будем называть командами формата регистр-регистр (обозначается RR), а вторые – формата регистр-память (обозначается RX). В этом случае для одного кода операции (например, сложения) мы получим команды двух форматов длины 2 и 4 байта соответственно:

КОП

R1

R2

= 2 байта

1 байт

1 байт

КОП

R1

A2

= 4 байта

8 бит

4 бита

20 бит

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

Скажем теперь, что такая архитектура получила название дробно-адресной потому, что адрес ячейки регистровой памяти составляет какую-то часть адреса ячейки большой основной памяти. В нашем примере соответствующее отношение равно правильной дроби 1/5.

Из рассмотренного выше можно сделать вывод, что при программировании на ЭВМ с такой архитектурой желательно как можно чаще оперировать с регистровой памятью и как можно реже обращаться к большой основной памяти, такого принципа мы и будем придерживаться. Теперь для нашей дробно-адресной машины составим фрагмент программы, который реализует, как и в предыдущих примерах, арифметический оператор присваивания x:=a/(a+b)2 . Мнемонические коды операций задают арифметические операции с обычным смыслом. Точка с запятой, как это принято в языке Ассемблера, задаёт комментарий к команде:

...

СЧ R1,a; R1 := a

СЧ R2,b; R2 := b

СЛ R2,R1; R2 := b+a=a+b

УМН R2,R2; R2 := (a+b)2

ДЕЛ R1,R2; R1 := a/(a+b)2

ЗП x,R1; x := R1= a/(a+b)2

...

Длина этого фрагмента программы равна 3*4+3*2 = 18 байт. Как видим, данная архитектура не уступает стековой (безадресной) архитектуре по длине получаемых программ.

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

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

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

4.4. Способы адресации

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

  • Прямой способ адресации.

СЛ

2

S := S + <2>

При этом способе адресации (только этот способ мы использовали до сих пор) число на месте операнда задаёт адрес ячейки основной памяти, в котором и содержится необходимый в команде операнд. Мы будем в угловых скобках обозначать содержимое ячейки основной памяти с данным адресом. Так, в приведённом выше примере <2> обозначает содержимое ячейки с адресом 2. В этой ячейки, конечно же, скорее всего не хранится число 2.

  • Непосредственный способ адресации.

СЛН

2

S := S + 2

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

  • Косвенный способ адресации.

СЛК

2

S := S + <<2>>

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

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

. . .

Адрес

Значение

СЧ 0; S := 0

000

0

СЛ 2; S := 3

001

2

СЛН 2; S := 5

002

3

СЛК 2; S := 13

003

8

. . .

. . .

. . .

Рис. 4.1. Значение регистра сумматора после выполнения команд

сложения с различными способами адресации.

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

4.5. Многообразие форматов данных

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

Размер (байт)

Название формата

1

Короткое

2

Длинное

4

Сверхдлинное

Многообразие форматов данных требует усложнения архитектуры регистровой памяти. Теперь регистры должны уметь хранить и обрабатывать данные разной длины.

4.6. Форматы команд

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

  • регистр – регистр (RR);

  • регистр – память, память – регистр (RX);

  • регистр – непосредственный операнд в команде (RI);

  • память – непосредственный операнд в команде (SI);

  • память – память, т.е. оба операнда в основной памяти (SS).

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

4.7. Базирование адресов

Для дальнейшего уменьшения объёма программы современные ЭВМ используют базирование адресов. Изучение этого понятия проведём на следующем примере. Пусть в программе на одноадресной машине необходимо реализовать арифметический оператор присваивания X:=(A+B)2. Ниже приведена эта часть программы с соответствующими комментариями (напомним, что S – это регистр сумматора одноадресной ЭВМ):

...

СЧ A; S:=A

СЛ B; S:=A+B

ЗП R; R:=A+B – запись в рабочую переменную

УМ R; S:=(A+B)2

ЗП X; X:=(A+B)2

...

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

A – в ячейке с адресом 10 000 000

B – в ячейке с адресом 10 000 001

X – в ячейке с адресом 10 000 002

R – в ячейке с адресом 10 000 003

Тогда приведённый выше фрагмент программы будут выглядеть следующим образом:

...

СЧ 10 000 000; S:=A

СЛ 10 000 001; S:=A+B

ЗП 10 000 003; R:=A+B

УМ 10 000 003; S:=(A+B)2

ЗП 10 000 002; X:=(A+B)2

...

Из этого примера видно, что большинство адресов в нашей программе имеют вид B+, где число B назовём базовым адресом программы или просто базой (в нашем случае B=10 000 000), а  – смещением адреса относительно этой базы. Здесь налицо существенная избыточность информации. Очевидно, что в каждой команде можно указывать только короткое смещение , а базу хранить отдельно (обычно на каком-то специальном базовом регистре центрального процессора). Исходя из этих соображений, предусмотрим в машинном языке команду загрузки базы (длина этой команды 4 байта):

ЗГБ

A1

8 бит

24 бита

Тогда наш фрагмент программы будет иметь такой вид:

...

ЗГБ 10 000 000

...

СЧ 000; S:=A

СЛ 001; S:=A+B

ЗП 003; R:=A+B

УМ 003; S:=(A+B)2

ЗП 002; X:=(A+B)2

...

Теперь, однако, при выполнении каждого обращения за операндом в основную память, центральный процессор должен вычислять значение адреса этого операнда адреса по формуле A=B+. Это вычисление производится в устройстве управления и, естественно, усложняет его. Например, адрес переменной A=10000001=B+=107+1.

Осталось выбрать длину смещения . Вернёмся к рассмотрению дробноадресной ЭВМ, для которой реализовано базирование адресов. Например, пусть под запись смещения выделим в команде поле длиной в 12 бит. Будем, как и раньше, обозначать операнд в памяти A1 или A2, но помним, что теперь это только смещение относительно базы. Тогда все команды, которые обращаются за операндом в основную память, будут в нашей дробноадресной ЭВМ более короткими:

КОП

R1

A2

8 бит

4 бита

12 бит

Схема выполнения такой команды для формата регистр-память:

<R1> := <R1>  <B+A2>

или для формата память-регистр:

<B+A2> := <B+A2>  <R1>

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

Сегментирование позволяет уменьшить объём памяти для хранения программ, но оно имеет и один существенный недостаток: теперь каждая команда может обращаться не к любой ячейки оперативной памяти, а только к тем из них, до которых "дотягивается" смещение. В нашем примере каждая команда может обращаться к диапазону адресов от значения сегментного регистра B до B+212-1. Для доступа к другим ячейкам памяти необходимо записать в сегментный регистр новое значение (как говорят, перезагрузить сегментный регистр). Несмотря на указанный недостаток, практически все современные ЭВМ производят сегментирование памяти. Заметим также, что этот недостаток в большинстве архитектур современных ЭВМ исправляется путём реализации переменной длины смещения (например, разрешается смешение в 1, 2 или 4 байта), что, однако ещё более увеличивает набор команд и усложняет центральный процессор.

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

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

5. Понятие семейства ЭВМ

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

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

Говорят, что компьютеры образуют семейство, если выполняются следующие требования:

  1. Одновременно выпускаются и используются несколько моделей семейства с различными производительностью и ценой (моделями называются компьютеры-члены семейства).

  2. Модели обладают программной совместимостью:

  1. снизу-вверх – старшие модели поддерживают все команды младших (любая программа, написанная для младшей модели, безошибочно выполняется и на старшей);

  2. сверху-вниз – на младших моделях выполняются программы, написанные для старших, если выполнены условия:

  • наличие у младшей модели достаточного количества ресурсов (например, памяти);

  • программа состоит только из поддерживаемых младшей моделью команд.

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

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

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

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

6. Архитектура младшей модели семейства Intel

6.1. Память

Архитектура рассматриваемого компьютера является дробно-адресной, поэтому адресуемая память состоит из регистровой и основной памяти. В младшей модели семейства основная память имеет объём 220 ячеек по 8 бит каждая. Регистровая память будет рассмотрена немного позже.

6.2. Форматы данных

  • Целые числа.

Целые числа могут занимать 8 бит (короткое целое), 16 бит (длинное целое) и 32 бита (сверхдлинное целое). Длинное целое принято называть машинным словом (не путать с машинным словом в Учебной Машине!).

Характеристики

Тип файла
Документ
Размер
1,7 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6374
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее