Тема 1. Принципы организации ЭВМ
Кодирование информации в ЭВМ.
Кодированием называется представление символов одного алфавита средствами другого алфавита.
Алфавит содержащий два символа называется двоичным (часто их обозначают как 0 и 1).
Величина способная принимать только два различных значения называется битом.
Как представить символы другого алфавита с помощью двоичного алфавита?
Для кодирования алфавитов, содержащих более 2-х символов используются последовательности символов двоичного алфавита. Например, последовательностью из двух двоичных символов можно закодировать 4 символа другого алфавита:
00 --> А 01 à В 10 à С 11 à D.
Можно показать, что число возможных комбинаций при использовании двоичного алфавита равно 2n, где n количество двоичных символов в последовательности. При n равном 8 число возможных комбинаций равно 256, что вполне достаточно для кодирования большинства известных алфавитов, поэтому последовательность из восьми двоичных символов широко используется для кодирования информации в ЭВМ. Последовательность из восьми двоичных разрядов принято называть байтом.
Пример кодирования:
символ А à 1100 0001 символ 9 à 1111 1001.
В настоящее время для кодирования символов используются также последовательности из 16 двоичных символов (2 байта).
Техническим носителем информации в ЭВМ является ячейка памяти, состоящая из совокупности простейших элементов, каждый из которых может находиться в одном из двух возможных состояний (обозначаемых как 0 и 1). Ячейка памяти может содержать различное число простейших элементов. Обычно количество элементов в ячейке кратно 8.
Для измерения памяти используются также более крупные единицы:
|
1 килобайт (кб) = 210 байт = 1024 байт;
1 мегабайт (мб) =220 байт = 1048576 байт;
1 гигабайт (гб) = 230 байт =
Машинным кодом (или просто кодом) называется совокупность 0 и 1, которую может хранить ячейка памяти.
Код длиной в 2 байта называется полусловом,
код длиной в 4 байта называется словом,
код длиной в 8 байта называется двойным словом.
Архитектура ЭВМ
Во все времена человек стремился расширить свои возможности создавая различные приборы (орудия труда, познания мира). Например недостаточность зрения он компенсировал микроскопом и телескопом. Ограниченные воэможности передавать информацию друг другу расширяются при помощи телефона радио и телевидения.
Вычислительные машины (ЭВМ) "дополняют" возможности человеческого мозга по обработке информации и позволяют увеличить скорость вычислений, а следовательно и принятия решений в ходе выполнения различных работ в сотни и тысячи раз.
Человеку всегда приходилось заниматься расчетами, поэтому люди стремились расширить свои возможности по переработке информации и в первую очередь в области вычислений. С этой целью были придуманы счеты, арифмометр и т.п. Однако все эти устройства не позволяли автоматизировать расчеты.
Идея использования программного управления для построения автоматического вычислительного устройства впервые была высказана английским математиком Чарлзом Бэббиджем еще в 1833 г. Однако низкий уровень развития науки и техники не позволил в то время создать автоматическое вычислительное устройство. Идея программного управления получила дальнейшее развитие в работах американского ученого Джона фон Неймана.
|
В 40-х годах 20 века работы в области ядерной физики, баллистики, аэродинамики и т.п. потребовали огромной вычислительной работы. Наука и техника были поставлены перед диллемой: или всем сесть за арифмометры, или сделать новый эффективный автоматический инструмент для вычислений. Как раз в это время Дж. Фон Нейман сформулировал основные принципы построения вычислительной машины. В результате в 1945 году была построена первая вычислительная машина, а с 1953 года началось серийное изготовление ЭВМ.
Рис.1.1.1.
Архитектура ЭВМ предложенная Нейманом приведена на рис. 1.1.1. ЭВМ содержит:
Устройства ввода (например клавиатуру) для ввода программ и данных в ЭВМ;
- Устройства вывода (например монитор, принтер и т.п.) для вывода данных из ЭВМ;
- память - устройство для хранения информации. Память может быть построена на различных физических принципах, но в любом случае она представляет собой совокупность ячеек, в которых можно хранить в закодированном виде различные данные (числа, символы). Все ячейки памяти пронумерованы. номер ячейки памяти называется адресом.
- процессор – это устройство, способное выполнять некоторый заданный набор операций над данными и вырабатывать значения заданного набора логических условий над этими данными. Процессор состоит из устройства управления (УУ) и арифметико логического устройства (АЛУ).
УУ предназначено для выполнения команд и управления работой ЭВМ при выполнении отдельной команды.
|
АЛУ предназначено для выполнения арифметических и логических операций, набор которых определяется системой команд, принятой для данного типа ЭВМ.
Программа - это алгоритм решения задачи, представленный в форме понятной ЭВМ.
В основе ЭВМ лежит два фундаментальных принципа Дж. Фон Неймана.
1 Принцип хранимой в памяти программы. Согласно этому принципу программа, закодированная в цифровом виде хранится в памяти ЭВМ наряду с числами (данными). В командах указываются не сами числа, участвующие в операциях, а адреса ячеек памяти, в которых они находятся.
Пример команды
КО | А1 | А2 | А3 |
где КО – код операции; А1 – адрес первого операнда; А2 – адрес второго операнда; А3 – адрес ячейки памяти в которую надо поместить результат. КО, А1, А2, А3 представляют собой последователиности нулей и единиц. Например
КО: 00110101
А1: 00011110……110001 (32 разряда).
Если КО это код операции сложения, то смысл этой команды можно сформулировать так:
- взять данное из ячейки с адресом А1;
- взять данное из ячейки с адресом А2;
- выполнить операцию сложения этих данных;
- поместить результат в ячейку с адресом А3.
Заметим, что в командах указываются не обрабатываемые данные, а адреса ячеек памяти. Все это делает ЭВМ универсальным средством обработки информации. Чтобы решить другую задачу не требуется изменять аппаратуру. Достаточно ввести в память другую программу и данные.
2.Принцип произвольного доступа к основной памяти. Согласно этому принципу процессору в произвольный момент времени доступна любая ячейка памяти.
Принцип действия ЭВМ
В соответствии с этими принципами ЭВМ следующим образом решает задачу.
1.Программа в виде последовательности команд в закодированном виде (машинная программа) размещается в памяти ЭВМ.
2. В памяти также размещаются и все данные которые использует программа.
3.Процессор считывает из памяти очередную команду, УУ расшифровывает ее и определяет кто должен ее выполнять (УВВ, АЛУ,). Если это команда арифметического типа, то управление передается АЛУ, которое определяет какую операцию и над какими данными надо выполнить. Затем АЛУ извлекает из памяти значения данных и выполняет указанную операцию.После передачи результата в память АЛУ сообщает УУ, что можно выполнять следующую команду.
Практически все выпускаемые в настоящее время ЭВМ имеют Неймановскую архитектуру (структура ЭВМ может быть разной).
Представление данных в ЭВМ.
Машинный код обрабатываемой информации (данные) называется операндом. По смысловому содержанию операнды делятся на символьные и числовые.
Символьные операнды.
Символьные операнды представляют собой последовательности символов исходного алфавита (букв, цифр, знаков). Для хранения каждого символа отводится ячейка памяти в 1 байт, в которую заносится код символа.
Например А (рус): 11100001: А (лат) 01000001.
Числовые данные.
Числовые данные характеризуются основанием системы счисления, и формой представления. Основанием называется количество различных цифр. используемых для представления чисел. В ЭВМ широко исползуются: двоичная, восьмиричная, десятичная и 16-ричная системы.
При использовании систем с различными основаниями возникает задача перехода от одной системы к другой. Придуманы различные алгоритмы перевода чисел из одной системы в другую. Например, для перехода
(Х)К à (Х)10
здесь индекс обозначает основание системы счисления, достаточно представить число в виде полинома по степеням основания исходной системы счисления и выполнить действия в десятичной системе.
Пример.Алгоритм 1.
(10011,11)2 = 1*24 + 0*23 +0*22 + 1*21 + 1*20 +1*2-1 + 1*2-2 = (19,75)10
Для перехода
(Х)10 --> (Х)К
используются другие алгоритмы, потому что важно в какой системе выполняются действия. Например, для перевода из (Х)10 в (Х)К целого числа достаточно делить исходное число и получающиеся частные на основание новой системы и взять остатки в порядке обратном их получению.
Пример. Алгоритм 2.
(29)10 -- (Х)2
(29) 10 = (11001)
Перевод дробной части делается иначе. Для перехода (Х)10 в (Х)К дробной части исходного числа необходимо последовательно умножать исходное число и получающиеся дробные части на основание новой системы и взять целые части в порядке их получения.
Пример. Алгоритм 3.
(0.125) 10 -> (x) 2
(0.125) 10 = (0.001) 2