Магистрально-модульный способ организации ЭВМ — КиберПедия 

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

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

Магистрально-модульный способ организации ЭВМ

2017-10-16 213
Магистрально-модульный способ организации ЭВМ 0.00 из 5.00 0 оценок
Заказать работу

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

 

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

(технический университет)”

 

Е.Л. ИВАНОВ Е.В. БРАЖНИКОВА

 

 

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

ЧАСТЬ 1

 

 

УЧЕБНОЕ ПОСОБИЕ

 

 

МОСКВА 2006

ББК 32.973

П

УДК 004.3

 

Рецензенты: Т.И. Лимонова, К.С. Хомяков.

 

П18 Иванов Е.Л., Бражникова Е.В. Организация ЭВМ и систем, часть 1: Учебное пособие / Государственное образовательное учреждение высшего профессионального образования “Московский государственный институт радиотехники, электроники и автоматики (технический университет)” – М., 2006. – с.

 

ISBN

 

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

 

 

Табл.3, Ил.60, Библиогр.: 7 назв.

 

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

 

© Е.Л. Иванов,

Е.В. Бражникова, 2006

 

 


Предисловие

 

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

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

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


1. ЭВМ и системы; основные понятия и определения

Классификация ЭВМ и систем

Все средства вычислительной техники можно классифицировать [л.1]:

- с позиций пользователя;

- по архитектурной организации;

- по структурной организации.

С позиций пользователя все ЭВМ можно разделить на три группы:

- ЭВМ общего назначения;

- специализированные;

- проблемно ориентированные.

Это разделение базируется на критерии максимума производительности.

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

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

Проблемно ориентированные ЭВМ занимают промежуточное место между универсальными и специализированными.

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

а) ОКОД – одиночный поток команд, одиночный поток данных (рис. 1).

На рис. 1: УУ – устройство управления, АЛУ – арифметико-логическое устройство, ОЗУ - оперативное запоминающее устройство.

Процессор представляет собой композицию АЛУ и УУ.

Процессор по каждой команде обрабатывает один или два операнда. Команда читается из ОЗУ. По этой команде из ОЗУ в АЛУ считываются операнды и над ними производятся определенные действия.

б) ОКМД – одиночный поток команд множественный поток данных (рис.2).

Системы типа ОКМД позволяют по каждой команде обрабатывать данные из разных источников. В системе под управлением одного УУ должно работать много вычислителей:

 

Рис. 2

 

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

в) МКОД – множественный поток команд одиночный поток данных (рис.3).

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

Данная структура пока не реализована.

 

Рис. 3

 

г) МКМД – множественный поток команд, множественный поток данных (рис. 4).

Многопроцессорная система.

 
 

Рис. 4

 

По режиму работы ЭВМ можно классифицировать как:

- однопрограммные,

- мультипрограммные,

- ЭВМ, работающие в режиме реального времени.

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

Мультипрограммные позволяют одновременно обра-батывать несколько программ пользователя.

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

 

Понятие быстродействия и

Декомпозиция процессора на

Основные элементы СФ-языка

 

1) Слово вводится своим идентификатором и указываются номера первого и последнего разрядов.

С (n1: n2) – слово;

n1 – номер первого разряда; n2 – номер последнего разряда.

Например, слово ADP – адрес: ADP (0: 7).

Слово можно разбить на поля, если допустима работа с частями слова самостоятельно. Например, слово КОМАНДА:

КОМАНДА (0: 15); КОП (0: 7).R1 (8: 11).R2(12: 15), где под код операции отводится 8 разрядов, под адреса R1 и R2 по 4 разряда.

2) Описание массивов.

Массив также вводится своим идентификатором.

M[m1; m2] (n1: n2);

m1 – номер первого элемента массива;

m2 – номер последнего элемента массива;

n1, n2 – соответственно номер первого и последнего разряда (слова).

Например, ОЗУ [0; 64 M] (0: 31), где в квадратных скобках указывается емкость памяти, а в круглых- разрядность слов.

3) Знаки двоичных микроопераций:

4) Микрооперации. Вводятся оператором присваивания (:=).

Микрооперации установки.

Слову присваивается значение константы А (1: 4):=0000.

Если слово уже описано, т.е. известна его разрядность, то допустима упрощенная запись.

Пример:

А:=0000 - слову А присвоить значение нулей во всех разрядах;

Тогда в сокращенном виде эта запись будет выглядеть так -А:=0.

В тех случаях, когда различным разрядам присваиваются разные значения, необходима полная запись - В (1:3)=101; ее можно выполнить и в такой форме - СЧ (1: 4):=1510.

Микрооперации инверсии.

Слову присваивается его инверсное значение или инверсное значение другого слова.

Например, А (1: n):= А (1: n).

Если слово разбивается на поля, то можно инвертировать часть поля.

Например, слово В имеет 16 разрядов, из которых под знак отводится 0-й разряд, а остальные под числовую часть. Тогда имеем следующую запись:

В (0: 15):= Зн В (0). Ч В(1: 15).

Микрооперации передачи.

Используются для присваивания одному слову значения другого слова: А (1: n):= В (1: n) - полная запись,

А:=В - сокращенная запись.

Передачу можно совмещать с инверсией всего слова или его части.

Микрооперации счета.

Микрооперации инкремента (+1) или декремента (-1).

Например: СЧ (1: n):= СЧ (1: n) ± 1 или А:=В+1.

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

Слову присваивается сумма (разность) двух других слов. Слова должны иметь одинаковую разрядность. Например:

A (1: n):=B (1: n) ± C (1: n) или A (1: n):=A (1: n) + B (1: n) A:=A+B - сокращенная запись.

Микрооперации сдвига.

Слова сдвигаются влево или вправо на заданное количество разрядов.

C (1: n):=L1С.0 – сдвиг слова С влево на 1 разряд, с вводом нулей справа.

С (1: n):=L4C.0000 - сдвиг слова С влево на 4разряда.

B (1: n):=0.R 1B – сдвиг слова В вправо на 1 один разряд с вводом нулей.

A (1: n):=L1(A).A (1) – циклический сдвиг влево на 1 разряд.

Микрооперации кодирования и декодирования.

Осуществляются с помощью шифратора и дешифратора.

A:=Cod B

B:=Decod А

Бинарные логические микрооперации.

Выполняются поразрядно над одноименными разрядами слов. Слова должны быть одинаковой разрядности.

 

Например: A (1: n):=B (1: n) C (1: n) –логическое ИЛИ,

A (1: n):=A (1: n) B (1: n) – логическое И,

C:=A B – поразрядное сложение.

5) Логические условия.

Это булева функция Ψ ={0,1}, которая принимает значения «0» или «1». Вычисляются логические условия по значению какого-либо разряда слова. Например, при ЗнА(0)=1, Ψ=1, а при ЗнА(0)=0, Ψ=0;

Или логические условия вычисляются при анализе нескольких разрядов, например, СЧ (1:3)=111, тогда Ψ=1, иначе Ψ=0.

Логически условия могут вычисляться по значению функции: если Зн A Зн В = 1, то Ψ=1, иначе Ψ=0

 

Алгоритмов их выполнения

 

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

Команды логических операций

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

Если в команде логической операции результат не записывается в память, например, в команде сравнения, по результату операции осуществляется только установка флагов в АЛУ.

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

 

Команды сдвига

 
 

Цель команды осуществить сдвиг слова вправо или влево на заданное количество разрядов. Как правило, направление сдвига указывается в коде операции команды, а для указания количества разрядов, на которое происходит сдвиг, и слов, которое должно сдвигаться, выделяются 2 адресных кода. Формат команды сдвига можно представить:

 

КОП А1 n

 

где А1- адрес сдвигаемого операнда;

n - количество разрядов, на которое должно быть сдвинуто слово.

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

 

 
 

Рис.32

 

Операнд засылается на Р1 арифметико-логического устройства, где производится сдвиг. Количество тактов сдвига фиксируется на СЧсдв. При каждом сдвиге комбинационная схема КС (рис.32) анализирует его значение на равенство нулю. При СЧсдв=0 сдвиг слова на Р1 завершается и полученный результат записывается в ОЗУ по адресу А1.

 

Команды управления

 

Команды управления предназначены для организации ветвления в программах. Можно выделить 3 типа команд: безусловного перехода (БП), условного перехода (УП) и команды обращения к подпрограммам (БПВ).

Команды безусловного перехода

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

Формат команды имеет следующий вид:

БП А1

где А1 – адрес перехода к следующей команде программы.

Правило выполнения: после выборки команды и дешифрации кода операции на программный счетчик заносится адрес перехода А1; на этом цикл выполнения команды заканчивается.

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

 

 
 

Рис. 41 Рис. 42

Команды условного перехода имеют такой же формат как и команды БП, но выполняются в зависимости от условий, вырабатываемых в процессоре, т.е. значений флагов. Например, результат операции, полученный в АЛУ по предыдущей команде равен нулю (или больше нуля и т.д.) Вне зависимости от того, какой флаг обрабатывается, команды данного типа выполняются по следующему правилу: если значение флага Ф=1, то переход осуществляется по адресу А1; в противном случае – по продвинутому адресу (рис.42).

Команды обращения к подпрограммам

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

Аббревиатура «БПВ» расшифровывается как «безусловный переход с возвратом». Действительно, в функции команды входит организация перехода к подпрограмме (т.е. безусловный переход), но эта же команда должна обеспечить сохранение продвинутого адреса выполняемой программы (адреса возврата). В противном случае после выполнения подпрограммы невозможно будет вернуться к предыдущей программе.

Адрес возврата может запоминаться в РОН или в СТЕКе. Поскольку РОН представляет собой адресуемую память, а СТЕК является безадресным запоминающим устройством, формат команды БПВ будет определяться типом памяти для сохранения адреса возврата.

Таким образом, имеем два формата команд БПВ:

А2
БПВ1
R1

 

где R1 - адрес ячейки РОН для сохранения адреса возврата, А2 - адрес перехода к подпрограмме.

БПВ2 А1

 

где А1- адрес перехода к подпрограмме.

Адрес возврата запоминается в стеке. Поскольку стек является безадресной памятью, он адресуется неявно, и в команде БПВ2 указан только один адрес перехода. Рассмотрим по порядку рабо-ту этих команд.

Команда БПВ1.

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

Схема перехода к вложенным программам.


Рис. 43

 

Пусть процессор обрабатывает основную программу и три вложенные по следующей схеме (рис.43). Адреса начала размещения подпрограмм (п/п) указаны в адресном поле А2 каждой команды БПВ1. Основная программа, п/п 1 и п/п 2 имеют вложения, а п/п 3 вложений не имеет. Адреса возврата основной программы и п/п 1, и п/п 2 запоминаются в регистрах РОН по адресам 1; 4; и 2 соответственно. Цифры в кружочках означают номер процедуры при выполнении переходов. На рис.43 показано содержание РОН после перехода к последней вложенной программе.

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

Команда возврата БП1.


Рис. 44

Формат команды возврата:

 
 

 


По своей сути эта команда выполняет безусловный переход, т.к. всегда заносит на СЧАК адрес перехода. Поэтому будем обозначать ее как БП1.

Схема возврата из подпрограмм показана на рис.44. Последовательность действий при возврате обозначена цифрами в кружочках.

На рис. 45 и 46 показаны функциональные схемы алгоритмов выполнения команд БПВ1 и БП1 соответственно.

 
 

 
 

Рис. 46

 

Команда БПВ2.

 
 

Прежде, чем перейти к рассмотрению работы команды БПВ2, необходимо уяснить механизм работы стека.

 

Рис. 47 Рис. 48

 

Стек – такой вид памяти, который работает в соответствии с алгоритмом LIFO – Last Input First Output (последний вошел, первый вышел). Стек может быть реализован, как область ОЗУ или построен на регистровых структурах. Для указания адреса ячейки используется счетчик, называемый указателем стека (УС). Если стек пуст, то УС указывает на вершину стека. При записи слова в стек (проталкивание данных в стек-push) оно помещается по адресу указателя стека, после чего адрес на УС увеличивается на 1 (или уменьшается на 1, в зависимости от вида стека) (рис. 47 и 48). В режиме чтения из стека сначала необходимо изменить значение УС таким образом, чтобы он указывал последнюю занятую ячейку, после чего производится чтение слова (выталкивание из стека-pop).

Различают два вида стека:

- прямой стек,

- перевернутый стек.

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

Алгоритмы работы СТЕКА (для прямого стека) в режимах записи и чтения представлены на рис.49 и 50 соответственно.

 

 
 

Рис. 49 Рис. 50

При записи слово D принимается на входной буферный регистр СТЕКА (РСст), адрес для записи слова уже сформирован на УС. После записи слова адрес на УС увеличивается на 1.

При чтении информации выполняется процедура: УС:=УС-1, при этом производится адресация последней занятой ячейки. Затем следует обращение к СТЕКУ.

Для перевернутого СТЕКА алгоритмы режимов записи и чтения представлены соответственно на рис.51 и 52.

 
 

 

Рис. 51 Рис. 52

 

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

Предположим, что для прямого стека адрес вершины стека – α, адрес дна стека – β.

Режим записи невозможен, если указатель стека равен β – стек полон;

Режим чтения невозможен, если указатель стека больше α – стек пуст.

В соответствии с этими условиями формируются два соответствующих флага, которые выполняют роль осведомительных сигналов для процессора.

Команды БПВ2 и БП2.

Форматы команд БПВ2 и БП2

       
 
   
БП 2

 


В команде БПВ2 только один адрес А1, который определяет переход к п/п. Адрес возврата записывается в стек по адресу УС.

Команда возврата имеет аббревиатуру БП, как и в предыдущем случае. Причем эта команда безадресная, т.к. в ее функции входит чтение слова из стека.


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

Рис. 53

 

После перехода ко 2-й подпрограмме УС стека будет указывать на последнюю незанятую ячейку. В последней занятой ячейке стека записан адрес возврата п/п 1 γ+1, в следующей - адрес возврата основной программы α+1. С опроса этих ячеек стека (рис. 54) команда БП2 будет производить возврат к предыдущей программе:


 
 

Рис.54

В данном примере адреса возврата заносятся в перевернутый стек. Функциональные схемы алгоритмов выполнения команд БПВ2 и БП2 показаны на рис.55 и рис.56.

 
 

восстановление программного счетчика

 

Рис. 56

 

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

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

Основным недостатком прямого способа адресации является большая разрядность адресных полей команды, поскольку адрес должен обеспечивать обращение к самой старшей ячейке ОЗУ. Это означает, что при емкости памяти в 512 Мb, разрядность адреса должна быть равна 28 разрядам. При трехадресной команде, даже без КОП, общая длина команды будет 84 разряда. Это повлечет увеличение разрядности шин адреса, а так же разрядности шин данных (или увеличения количества обращений за командой, если ШД имеет ширину меньшую, чем разрядность команды).

Регистровая адресация так же относится к прямому способу адресации.

Форматы команд:

Одноадресная команда:

 

КОП R1

 

 

Двухадресная команда:

 

КОП R1 R2

 

Трехадресная команда:

 

КОП R1 R2 R3

 

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

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

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

Формат команды:

 

 
 

 



В поле адреса вводится дополнительный разряд ПА-признак адресации, который определяет значение поля (А/R). Если ПА=1, то А указывает адрес ОЗУ, в ячейке которого записан адрес операнда. Соответственно R адресует РОН, из которого читается адрес операнда. При значении ПА=0 поле А/R интерпретируется процессором, как прямой адрес. Существует такое понятие как глубина косвенной адресации (ГКА), которая определяется количеством обращений памяти за операндом. В том случае, если при первом обращении выбирается адрес операнда, то в этом случае глубина косвенной адресации равняется 1, если выби-рается снова адрес операнда, то ГКА равняется 2 и т.д.

Пример сокращения разрядности адреса при косвенной адресации приведен на рис. 57.

В начальной области, адресуемой полем А, могут быть размещены либо ограниченное количество данных, либо адреса операндов. Предположим, что емкость ОЗУ 1М слов. При прямом способе адресации разрядность поля А должна составлять 20 разрядов, что обеспечит доступ к старшей ячейке памяти. Косвенный способ адресации позволяет сократить разрядность адреса в поле команды. Пусть под адреса отводятся 256 начальных ячеек ОЗУ. Тогда поле А будет иметь 8 разрядов, а каждая ячейка ОЗУ должна быть 20-ти разрядной для размещения адреса операнда.

ФСА выборки операнда рассмотрена на рис. 58. Данный способ косвенной адресации имеет следующий недостаток: для выборки операнда требуются большие затраты времени, связанные с двойным обращением к ОЗУ. Поэтому он применяется крайне редко.

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

КОП ПА R

           
 
ПА=
   
косвенная регистровая
   
 
 
прямая регистровая
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 


 
 

При косвенной адресации поле R адресует ячейку РОН, из которой считывается адрес операнда в ОЗУ (рис. 59).

Рис. 59

 


ФСА выборки операнда будет иметь следующий вид (рис. 60).

 

 

Рис. 60

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

Относительные способы адресации (адресация со смещением)

Относительные способы адресации используются, с одной стороны, для организации размещения программ пользователя в любом месте адресного пространства ОЗУ, с другой стороны, для организации работы с массивами данных. При этом в общем случае адрес обращения к ОЗУ (Аисп.) вычисляется путем сложения прямого адреса А с модификаторами, которые выбираются из РОН по адресам, записанным в полях R1 и R2 адресного поля команды:

КОП R1 R2 А

В качестве модификаторов используются базовая константа и индекс, адреса которых могут обозначаться как B и X соответственно:

КОП X B А

Независимо от того, что функциональное назначение модификаторов различное, Аисп. вычисляется следующим образом (рис. 61):

АИСП:=РОН[X] + POH[B] + А.

 

 
 

 

 


Рис. 61

 

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

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

Предположим, что одновременно в ОЗУ размещены программы А, В и С. Программа А находится в начальной области ОЗУ и все адреса команд и данных являются истинными и не требуют модификации. Программы В и С размещены соответственно начиная с адресов k и m. Следовательно, все адреса данных программ должны быть изменены на величину базовых констант bB и bC соответственно (рис.62).

 

Рис. 62

 

Прямой адрес «А» будет указывать ячейку ОЗУ относительно базового адреса, задаваемого константой bC, т.е. будет смещением относительно начала размещения программы C.

Иногда прямой адрес обозначают D и называют смещением.

Формирование адреса обращения за операндом выполняется согласно следующему алгоритму (рис. 63).

В ряде процессоров перед обращением к РОН за базовой константой производится анализ значения поля B. Если программа находится в начале адресного пространства ОЗУ, базовая константа равна нулю, и обращения к РОН не требуется.

 

 
 

Рис. 63

 

Индикатором данной ситуации для процессора может служить наличия кода нуля в поле B. Именно это и отражено в алгоритме вычисления Аисп.

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

В ряде процессоров выделяется специальный неявно адресуемый базовый регистр, на который при загрузке в ОЗУ программы операционная система записывает базовую константу. Тогда формирование Аисп. будет реализовано по следующей схеме (рис. 64).

 
 

 
 


Рис. 64

 

Перемещаемости программ по адресному пространству ОЗУ можно достигнуть и другим способом – с помощью адресации относительно программного счетчика.

 

 
 

 

Данный способ базируется на локальности информации, который заключается в том, что значительная часть обращений за данными происходит в непосредственной близости от команды. Кроме того, размещение данных в теле программы фиксировано относительно команд. Поэтому при размещении программы в любом месте ОЗУ адреса операндов всегда будут жестко привязаны к адресам команд, по которым эти операнды обрабатываются. Адрес Аисп. в этом случае вычисляется следующим образом Аисп.= СЧАК+ D по схеме (рис.65).

Относительная адресация с индексированием.

Индекс предназначен для указания или вычисления элементов массива. В адресном поле команды записаны адрес индекса – X и прямой адрес – D:

 

КОП Х D

 

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

АИСП=РОН[X] + D

На рис.66 показан пример использования индекса. Пусть массив данных а0, а1, а2 … размещен в ячейках ОЗУ начиная с адреса α. Предположим, что индекс размещается в 5-й ячейке
 
 

РОН. Тогда для указания первого элемента массива в поле D команды необходимо записать прямой адрес этого элемента, а в ячейке индекса код нуля.

Процессор после вычисления адреса элемента массива – а0 для указания следующего элемента должен изменить значение индекса в регистре 5 на единицу. И так индекс должен увеличиваться на 1 от элемента к элементу.

 

Пример организации процессора,

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

 

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

(технический университет)”

 

Е.Л. ИВАНОВ Е.В. БРАЖНИКОВА

 

 

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

ЧАСТЬ 1

 

 

УЧЕБНОЕ ПОСОБИЕ

 

 

МОСКВА 2006

ББК 32.973

П

УДК 004.3

 

Рецензенты: Т.И. Лимонова, К.С. Хомяков.

 

П18 Иванов Е.Л., Бражникова Е.В. Организация ЭВМ и систем, часть 1: Учебное пособие / Государственное образовательное учреждение высшего профессионального образования “Московский государственный институт радиотехники, электроники и автоматики (технический университет)” – М., 2006. – с.

&nb


Поделиться с друзьями:

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

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

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

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



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.205 с.