Автор работы: Пользователь скрыл имя, 04 Сентября 2014 в 13:43, реферат
Все компьютеры используют для хранения информации двоичную систему. Это значит, что каждый элемент хранимой информации может иметь только два состояния. Эти состояния обозначаются как «включен» и «выключен», «истина» и «ложь», или «1» и «0». Как правило, компьютер использует эти значения в виде уровней напряжения.
Из-за двоичного представления данных компьютеры используют в своих вычислениях арифметику с двоичным основанием. Используя простейшие числа 0 и 1, можно выполнять очень сложные вычисления.
Это открывает целый ряд возможностей. Например, программа в процессе своего выполнения также может подвергаться переработке, что позволяет задавать в самой программе правила получения некоторых ее частей (так в программе организуется выполнение циклов и подпрограмм).
Более того, команды одной программы могут быть получены как результаты исполнения другой программы. На этом принципе основаны методы трансляции — перевода текста программы с языка программирования высокого уровня на язык конкретной машины.
Отсюда следует возможность давать имена областям памяти так, чтобы к запомненным в них значениям можно было впоследствии обращаться или менять их в процессе выполнения программ с использованием присвоенных имен.
Поясним основные понятия, которыми мы должны будем пользоваться при разборе архитектуры (и которые уже использовались в принципах фон Неймана).
Адрес – способ обратиться к содержимому ячейки памяти. Обычно в качестве минимально адресуемой ячейки памяти выбирается восьмиразрядная ячейка памяти (байт), поэтому можно считать, что адрес это номер байта в адресном пространстве.
Адресное пространство – диапазон доступных процессу адресов памяти. Не утверждается, что все эти адреса доступны безусловно. Возможно, что для корректного доступа к каким-то из них требуется некая специальная процедура. Не утверждается также и того, что обращение по любому из них обязательно должно быть успешно – возможно, попытка обратиться по адресу Х приведёт к немедленному прерыванию программы, но важно, что потенциально можно использовать этот диапазон, т.е. породить адрес.
Размер объема памяти обычно измеряют в кило-, мега-, гига-, тера- и петабайтах (больше пока не употребляются). Название «килобайт» общепринято, но формально неверно, так как приставка кило-, в этом случае означает умножение не на 1000, а на 210 т.е. на 1024. При этом обозначение Кбайт (и все остальные тоже) начинают с прописной буквы в отличие от строчной буквы к для обозначения множителя 103. Приведем определения для всех введенных приставок.
Название |
Символ |
Степень |
Степень ГОСТ |
Кбайт |
KiB |
210 |
103 |
Мбайт |
MiB |
220 |
106 |
Гбайт |
GiB |
230 |
109 |
Тбайт |
TiB |
240 |
1012 |
Пбайт |
PiB |
250 |
1015 |
Машинная команда (она же инструкция) – «Слово» машинного языка располагающееся в памяти. У каждой команды есть свой код, который называют код операции (англ. operation code). Код операции показывает, какую именно операцию из системы команд процессора надо выполнить. В отличие от самого кода операции, машинные команды, которые обрабатывает процессор, обычно включают один или два операнда (англ. operand), над которыми должна выполняться операция, хотя некоторые операции могут совсем их не иметь.
Для того чтобы исполнить команду, процессор должен прочитать ее из памяти. Для того чтобы произвести операцию над данными, процессор должен прочитать их из памяти, и, возможно, после произведения над ними определенного действия, записать их обратно в память в обновленном (измененном) виде. Команды и данные идентифицируются их адресом, который, по сути, представляет собой порядковый номер ячейки памяти.
Операнд - аргумент операции или, иначе говоря, элемент данных, над которым производятся машинные операции, Операнды могут быть обозначением регистра – операнд регистр, непосредственно числами (константами) – непосредственный операнд, значениями адреса – операнд память (в этом случае действие производится над данными расположенными по этому адресу).
Большинство команд требуют двух операндов, один из которых является операндом-источником, а второй — операндом назначения или приемником. В двухоперандной машинной команде возможны следующие сочетания операндов:
Программа – это просто список инструкций, выполняемых процессором.
Регистр процессора – сверхбыстрая память внутри процессора или иначе ячейка процессора. Регистр предназначен, прежде всего, для хранения промежуточных результатов вычисления (регистр общего назначения/регистр данных) или данных, необходимых для работы процессора (специальные регистры). Можно сказать, что регистры общего назначения - это переменные, как X или Y в алгебре. Только регистры физически существуют в отличие от абстрактных переменных. С точки зрения схемотехники регистр это многоразрядная ячейка памяти, которая состоит из нескольких триггеров.
В процессоре имеется значительное количество регистров, большая часть которых используется самим процессором и недоступна программисту. Например, при выборке из памяти очередной команды она помещается в регистр команд. Программист обратиться к этому регистру не может. Имеются так же регистры, которые в принципе программно доступны, но обращение к ним осуществляется из программ операционной системы. Этими регистрами пользуются в основном разработчики операционных систем.
Регистры могут быть восьмиразрядные (в такой регистр помещаются 8 бит, т.е. 1 байт), шестнадцатиразрядные (в такой регистр помещается два байта или говорят машинное слово), 32-разрядные и т.д.
Доступ к значениям, хранящимся в регистрах, как правило, в несколько раз быстрее, чем доступ к ячейкам оперативной памяти.
Счетчик команд – регистр процессора, содержащий адрес текущей выполняемой команды.
В основу архитектуры современных персональных компьютеров положен магистрально-модульный принцип. Модульный принцип подразумевает организацию компьютера на основе функциональных модулей (компонент). Модульная организация компьютера опирается на магистральный (шинный) принцип обмена информацией между устройствами. Компоненты соединены шиной, представляющей собой набор параллельно связанных проводов (линий), по которым передаются адреса, данные и сигналы управления. Линии разного назначения образуют:
Рисунок Упрощенная архитектура компьютера
шину адреса,
В самом упрощенном виде компьютер включает два компонента процессор и память. (Рис …). Для обозначения процессора также часто используют сокращение CPU (англ., céntral prócessing únit, дословно — центральное вычислительное устройство).
Так как существует несколько разновидностей памяти обычно уточняют, что процессор имеет доступ к оперативной памяти, или иначе к памяти с произвольным доступом (англ., Random Access Memory, RAM).
Большинство современных процессоров для персональных компьютеров в общем основаны на той или иной версии циклического процесса последовательной обработки информации, изобретённого Джоном фон Нейманом.
Важнейшие этапы этого процесса приведены ниже. В различных архитектурах и для различных команд могут потребоваться дополнительные этапы.
Этапы цикла выполнения:
Данный цикл выполняется неизменно, и именно он называется процессом (откуда и произошло название устройства).
Во время процесса процессор считывает последовательность команд, содержащихся в памяти, и исполняет их. Такая последовательность команд называется программой и представляет алгоритм полезной работы процессора. Очерёдность считывания команд изменяется в случае, если процессор считывает команду перехода — тогда адрес следующей команды может оказаться другим. Другим примером изменения процесса может служить случай переключения в режим обработки аппаратного прерывания.
Команды центрального процессора являются самым нижним уровнем управления компьютером, поэтому выполнение каждой команды неизбежно и безусловно. Не производится никакой проверки на допустимость выполняемых действий, в частности, не проверяется возможная потеря ценных данных. Чтобы компьютер выполнял только допустимые действия, команды должны быть соответствующим образом организованы в виде необходимой программы.
Скорость перехода от одного этапа цикла к другому определяется тактовым генератором. Тактовый генератор вырабатывает импульсы, служащие ритмом для центрального процессора. Частота тактовых импульсов называется тактовой частотой.
Система команд (язык) это конкретной вычислительной машины (машинный язык), который интерпретируется непосредственно микропроцессором.
«Слова» машинного языка называются машинными командами или инструкциями. Каждая из них описывает элементарное действие, выполняемое процессором, такое как «переслать байт из памяти в регистр».
У разных процессоров системы команд существенно различаются, но в основе своей они очень похожи. Количество команд у процессоров также различно. У современных мощных процессоров количество команд достигает нескольких сотен.
Каждая команда процессора имеет два представления:
Ассемблер это символический язык программирования, представляющий команды процессора. В приведенных ниже примерах мы будем рассматривать именно команды Ассемблера. Команда с двумя операндами будет на ассемблере иметь следующий вид:
Имя_команды операнд_Приемник, операнд_Источник.
Расскажем теперь только об основных командах и только самое главное. Все приведенные ниже примеры будут относиться к системе команд х86. Полную информацию об этой системе команд можно найти в приложении.
Команды можно условно разделить на следующие:
Арифметические команды выполняют операции сложения, вычитания, умножения, деления, увеличения на единицу (инкрементирования), уменьшения на единицу (декрементирования) и т.д. Этим командам требуется один или два входных операнда. Формируют команды один выходной операнд (для большинства процессоров, и для частности для семейства х86, один из входных операндов будет и выходным, это так называемый операнд приемник, второй входной операнд будет операндом источником).
Примеры арифметических команд
ADD AH,AL
Прибавить к содержимому регистра AH содержимое регистра AL. Результат будет находиться в регистре AH. Здесь ADD обозначает код операции, а AH,AL операнды, которые в нашем примере являются регистрами общего назначения.
SUB CX,DX
Отнять от CX содержимое DX, результат будет находиться в регистре CX.
Два первых примера иллюстрируют случай, когда оба операнда инструкции являются регистрами.
ADD AH,9
Добавляем значение 9 к содержимому регистра AH, результат будет находиться в регистре AH. То есть в этом случае приемник это регистр, а источник находится непосредственно в команде. Это пример на использование в качестве операнда конкретного числа.
ADD AX,[0133h]
Прибавить к содержимому регистра AX байты находящиеся в памяти по адресу 0133h (квадратные скобки указывают что операндом будет адрес).
Команды пересылки данных не требуют выполнения никаких операций над операндами. Операнды просто пересылаются (точнее, копируются) из источника в приемник. Источником и приемником могут быть регистры процессора, ячейки памяти.
Примеры команд пересылки данных
MOV DX,BX
Копировать содержимое регистра BX в регистр DX.
Информация о работе Арифметические основы вычислительных машин