ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 14.10.2024
Просмотров: 128
Скачиваний: 0
Цифровая ЭВМ осуществляет вычисления на основе програм мы, заложенной в памяти ЭВМ. При проведении вычислений программа дешифруется устройством управления ЭВМ, которое настраивает вычислительное (арифметическое) устройство и осталь ные части ЭВМ так, чтобы могла быть выполнена заданная ин струкция (команда) программы.
Отдельные команды программы, выраженные обычно комбина циями чисел, и отдельные данные, закодированные в памяти соот ветствующим образом, занимают в памяти одну ячейку, длина ко торой обычно равна одному слову (например, 16 или 32 разряда). Слова в памяти пронумерованы целыми числами, определяющими адрес каждой ячейки. Поэтому часто говорят, что какая-либо ко манда или переменная записана в памяти ЭВМ по определенному адресу.
Команда программы должна содержать информацию о том, какую операцию и с какими переменными следует производить. Вид операции определяется так называемым кодом операции, об разованным, например, комбинацией трех восьмиричных цифр или буквенно-цифровыми знаками. Переменные, участвующие в опера ции, определяются указанием адресов в команде, по которым эти переменные записаны в памяти. Часть ячейки памяти, в которой записаны номера адресов, содержащиеся в команде, называется адресной частью команды.
Такая запись информации в программе аналогична записи, ко торую делает человек при^ вычислении простых математических и логических операций. Код операции соответствует знаку опера ции, адреса соответствуют операндам.
Кроме этой основной информации, команда содержит часто и адрес, по которому записана следующая команда.
Некоторые команды, например служащие для остановки вычис лений, могут иметь адресную часть незаполненной. •
В зависимости от числа адресов в команде ЭВМ часто подраз деляют на одноадресные, двухадресные и т. д. Иногда бывают и «полутораадресные» ЭВМ, команды которых содержат код опера ции, адрес операнда и адрес последующей команды.
Благодаря тому, что в команде указываются адреса следую щих команд, последовательность записи программы при вычисле ниях можно нарушать, можно создавать в программе циклы и не сколько раз использовать отдельные участки программы.
С командами, записанными в памяти ЭВМ, вычислительная ма шина при необходимости может работать как с обычными числами. Прибавлением констант к их адресной части или их вычитанием ЭВМ может изменять содержащиеся в команде адреса; прибавле нием констант к коду операции или их вычитанием может изме нять коды операции (модифицировать команды) и т. п.
Каждая математическая или логическая операция, которую должна осуществить ЭВМ, должна быть запрограммирована так, чтобы она была расчленена на элементарные операции, которые можно реализовать при помощи вычислительного устройства.
12* |
179 |
Возможные формы элементарных операций у разных ЭВМ раз личны. Основными элементарными операциями у большинства цифровых ЭВМ являются сложение, вычитание, сравнение двух
чисел, передача данных из памяти в |
арифметическое |
устройство |
||
и наборот |
и т. д. Программа для более сложных |
математических |
||
и логических операций (например, извлечение корня) |
может быть |
|||
составлена |
из этих элементарных операций. |
|
|
|
Такой |
способ программирования |
называется |
программирова |
|
нием в машинном коде. Составленная |
таким способом |
программа |
||
может быть непосредственно введена |
в память ЭВМ. Программа |
вычисления у= (а + Ь)2, может быть представлена в форме табл. 21, аналогичной записи на с. 173. В табл. 21 код операции 137 означает передачу данных из ячейки памяти с адресом, приведенным в адрес ной части команды, в регистр арифметического вычислительного устройства. Код операции 337 означает сложение содержания ячейки с адресом, приведенным в адресной части команды, и со
держания |
регистра арифметического вычислительного устройства, |
||||||
и т. д. (т. е. аналогично |
приведенному словесному описанию про |
||||||
граммы). Знак «плюс»в табл. 21 означает, |
что вычисления осуще |
||||||
ствляются |
последовательно. |
|
|
|
|
||
|
|
|
|
Т А Б Л И Ц А 21 |
|
|
|
|
Запись программы для вычисления машинным |
кодом |
|||||
|
|
|
(ЭВМ ОДРА 1003) |
|
|
||
|
|
|
|
|
Команда |
|
|
|
Адрес |
|
|
|
|
|
|
|
в памяти |
Код |
операции |
Адрес |
Адрес |
последую |
|
|
операнда |
щей инструкции |
|||||
|
|
||||||
|
|
|
|
|
|||
|
1 |
|
137 |
|
0007 |
|
-г |
|
2 |
|
337 |
|
0008 |
|
+ |
|
3 |
|
237 |
|
00006 |
|
+ |
|
4 |
|
637 |
|
00006 |
|
+ |
|
5 |
|
237 |
|
0009 |
|
+ |
|
6 |
|
|
|
|
|
|
|
7 |
|
|
|
7.281 |
|
|
|
8 |
|
|
|
16.31 |
|
|
|
9 |
|
|
|
|
|
|
При описанном способе для записи программы в машинном коде используются десятичные или восьмеричные цифры. Однако в собственно ЭВМ значения как переменных, так и команды за кодированы соответствующими двоичными кодами, так как у ЭВМ, работающих с электрическими сигналами, операции с двоичными цифрами являются более простыми (например, единица харак теризуется наличием электрического напряжения, нуль — отсутст вием его).
Следует отметить, что программист, который программирует задание в машинном коде, обычно подготавливает программу в де-
180
сятичных (или в восьмеричных либо в буквенно-цифровых) сим волах. Перекодирование информации в соответствующие двоичные коды осуществляется уже автоматически как при подготовке про граммы для ЭВМ, например после записи программы с помощью телетайпа на перфоленте, где каждой цифре соответствует ком бинация отверстий на перфоленте (отверстие соответствует двоич ной цифре 1, 'а пропуски — цифре 0), так и при вводе в ЭВМ (после перфорации лента с записанной на ней программой и дан ными вводится в устройство для считывания перфоленты, которая формирует комбинацию электрических импульсов, соответствую щих комбинации отверстий на перфоленте). Эти импульсы со счи тывающего устройства поступают в ЭВМ, где дешифруются с те летайпного кода в код машины и в двоичной форме записываются в памяти ЭВМ.
Рассмотрим более подробно, как записываются числа и ко манды в памяти с этой точки зрения. Данные (числа, с которыми проводится вычисление) обычно записаны в ЭВМ в каком-либо из двоичных кодов (например, в двоично-десятичном коде, когда каж дая десятичная цифра закодирована отдельно, либо в двоичном коде, когда все десятичное число переведено в соответствующую двоичную систему, например, в дополнительный код).
Пример записи числа в памяти ЭВМ показан на рис. 114, где двоичное число записано в памяти ЭВМ в одной ячейке длиной 38 двоичных знаков, в которую можно заложить информацию ем костью 38 бит (бит — один двоичный разряд). Данные могут быть заложены в память и обрабатываться с фиксированной или плава ющей запятой. Разница при записи чисел с фиксированной и пла вающей запятой показана на рис. 114, а, б.
Число с фиксированной запятой можно, например, понимать как число, абсолютное значение которого меньше единицы. При этом все числа, с которыми проводятся вычисления, необходимо пе ревести в соответствующую форму, поставив запятую перед стар шим разрядом числа. Преимуществом вычисления с фиксирован ной запятой является легкость проектирования арифметического устройства и эффективное использование емкости памяти; недо статком является необходимость проведения контроля и возмож ной корректировки положения запятой при программировании опе рации. Этот недостаток устраняется при проведении вычисления с плавающей запятой, когда числа выражены в форме характери
стики и мантиссы. Арифметическое устройство проводит |
операции |
||
с |
характеристикой-и мантиссой |
отдельно. Естественно, |
что место |
в |
памяти, необходимое для |
записи характеристики, |
получают |
(рис. 114, б) за счет снижения точности мантиссы. Большинство современных скоростных ЭВМ позволяет проводить вычисление с плавающей запятой. Команды записаны в памяти также в двоич
ном коде. Форма команды изменяется в зависимости |
от числа ад |
|
ресов, |
которые она содержит, и от вида ЭВМ. Ниже приведено |
|
общее |
описание состава команды. Команда содержит |
информацию |
о том, какой вид операции следует осуществить (так |
называемый |
181
код операции). Далее команда содержит информацию о том, с ка кими переменными следует производить операцию (т. е. адреса •операндов). У одноадресных машин указывается только один адрес (адрес одного операнда), в качестве второго операнда в операции используется та переменная, которая записана в регистре арифме тического устройства как результирующее состояние после выпол нения предыдущей операции (которой может быть, в случае необ ходимости, передача числа из памяти в регистр арифметического устройства).
Наиоысший |
двоичный порядок (2'') |
шла |
|
|
|
|
|||||
і |
|
|
|
|
|
|
|
|
|
36 37 |
33 |
Г |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
Число |
|
|
|
|
|
||
$на/< числа |
|
|
|
|
Наивысший двоичный порядок |
||||||
|
|
|
|
|
|
||||||
Иаибысший |
дбоичный |
порядок |
|
(25) характеристики |
|
||||||
|
(2'') |
пантиссы |
|
|
|
| |
|
|
|||
|
|
|
|
|
|
|
|
|
Характеристика |
||
|
|
|
Мантисса числа |
|
|
|
|
числа |
|
||
7ТІ |
|
|
|
|
|
|
30 i—Г7^ 33\34 35 36 37 3S |
||||
ùA |
|
|
|
|
|
|
|
m |
^ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Знак |
пантиссы |
|
|
Знак |
характеристики |
|
|||||
0 / |
2 3 |
4 |
5 6 |
7 |
в 9 |
|
|
|
34 35 36 37 38 |
||
|
OR |
|
|
AR |
|
|
NR |
|
HR |
ZR |
|
|
Код |
|
|
Адрес |
|
|
Адрес |
|
Подиа>икация |
||
|
операции |
|
рперанда |
последующей |
|
|
|||||
|
|
|
|
|
|
|
|
копандьі |
|
|
|
|
Рас. |
114. Запись данных и к о м а н д в памяти: |
|
|
|||||||
• запись чисел |
с |
фиксированной запятой; б — запись чисел с плавающе й |
|||||||||
|
|
запятой; |
в — запись к о м а н д |
в |
памяти |
|
|
|
Команда содержит информацию о том, по какому адресу сле дует записать результат операции. У одноадресных машин резуль тат операции записывается в регистр арифметического устрой ства; для передачи в память следует использовать отдельную команду, которая имеет в адресной части соответствующий адрес памяти.
Далее команда содержит адрес последующей |
команды |
(ино |
гда называемый полуадресом) и вспомогательные |
данные: данные, |
|
•служащие для модификации команды, данные о длине слова |
(у не |
|
которых ЭВМ длина слова переменная) и т. д. |
|
|
182
Язык |
относительных |
адресов |
и язык |
символических |
адресов |
Программирование, особенно программирование объемных про грамм, значительно упрощается при использовании относительных адресов. В этом случае отдельные части программы подготавли ваются таким образом, что в команде указывается не точный адрес в памяти, а только его «относительное значение» по отноше нию к какому-нибудь адресу, считающемуся основным. Компо новку программы и придание относительным адресам действитель ных значений осуществляет автоматически цифровая ЭВМ, осна щенная специальными компонующими программами.
Аналогично, при программировании на языке символических адресов адреса в командах указываются заранее оговоренными символами (например, индексными буквами). Перевод программы в машинный код •— т. е. придание символическим адресам действи тельных значений, также автоматически осуществляет ЭВМ, снаб женная языком символических адресов.
Основные устройства цифровой ЭВМ
При проектировании цифровой ЭВМ использованы соответству ющие элементы (электронные, магнитные и др.), при помощи кото рых реализуются все требуемые функции устройства.
Эти элементы являются агрегатными и в зависимости от функ ций делятся на две основные группы: логические элементы, служа щие для оценки и преобразования информации, и звенья запоми нания, позволяющие хранить информацию в ЭВМ.
Из агрегатных элементов составляются функциональные узлы ЭВМ (устройства для сложения закодированных чисел, устройства,, осуществляющие логические операции, запоминающие схемы и др.); из функциональных узлов ЭВМ составляются функциональные блоки (арифметическое устройство, запоминающее устройство. . . ) . (Кроме указанных двух групп основных элементов ЭВМ, для ее создания требуется большое количество вспомогательных устройств, например источники питания и др.).
Конструкцию отдельных элементов ЭВМ мы подробно рассмат ривать не будем. Приступим непосредственно к описанию свойствосновных блоков ЭВМ.
Арифметическое (вычислительное) устройство
Арифметическое (вычислительное) устройство осуществляет арифметические и логические операции с числами или с буквенноцифровой информацией, согласно заранее установленным прави лам. В настоящее время арифметическое устройство является' самой быстроработающей частью ЭВМ. ЭВМ второго поколения достигали скорости порядка 106 операций сложения в секунду;, современные ЭВМ третьего поколения — порядка 107 операций
183.