ОБЩИЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ И РАБОТЫ КОМПЬЮТЕРОВ
Что такое компьютер
Компьютер представляет собой программируемое электронное устройство, способное обрабатывать данные и производить вычисления, а также выполнять другие задачи манипулирования символами.
Существует два основных класса компьютеров:
цифровые компьютеры, обрабатывающие данные в виде числовых двоичных кодов;
аналоговые компьютеры, обрабатывающие непрерывно меняющиеся физические величины (электрическое напряжение, время и т. д.), которые являются аналогами вычисляемых величин.
В настоящее время подавляющее большинство компьютеров является цифровыми.
Принцип действия компьютеров состоит в выполнении программ (Software) – заранее заданных, четко определенных последовательностей арифметических, логических и других операций.
Любая компьютерная программа представляет собой последовательность отдельных команд.
Команда – это описание операции, которую должен выполнить компьютер. Как правило, у команды есть свой код (условное обозначение), исходные данные (операнды) и результат.
Результат команды вырабатывается по точно определенным для данной команды правилам, заложенным в конструкцию компьютера.
Совокупность команд, выполняемых данным компьютером, называется системой команд этого компьютера.
Компьютеры работают с очень высокой скоростью, которая составляет миллионы – сотни миллионов операций в секунду.
В любом компьютере можно выделить следующие главные устройства:
память (запоминающее устройство – ЗУ), состоящую из перенумерованных ячеек;
процессор, включающий устройство управления (УУ)и арифметико-логическое устройство (АЛУ);
устройство ввода;
устройство вывода.
Эти устройства соединены каналами связи,по которым передается информация. Основные устройства компьютера и связи между ними представлены на схеме (рис. 1). Тонкими стрелками показаны пути и направления движения информации, а толстыми стрелками – пути и направления передачи управляющих сигналов.
Функции памяти:
– прием информации из других устройств;
– запоминание информации;
– выдача информации по запросу в другие устройства машины.
Рис. 1. Общая схема компьютера
Функции процессора:
– обработка данных по заданной программе путем выполнения арифметических и логических операций;
– программное управление работой устройств компьютера.
Та часть процессора, которая выполняет команды, называется арифметико-логическим устройством (АЛУ), а другая его часть, выполняющая функции управления устройствами, – устройством управления (УУ).
Обычно эти два устройства выделяются чисто условно, конструктивно они не разделены.
В составе процессора имеется ряд специализированных дополнительных ячеек памяти, называемых регистрами. Регистр выполняет функцию кратковременного хранения числа или команды. Над содержимым некоторых регистров электронные схемы могут выполнять манипуляции, например «вырезать» отдельные части команды для последующего их использования или выполнять определенные арифметические операции над числами. Основным элементом регистра является электронная схема, называемая триггером, которая способна хранить одну двоичную цифру (разряд). Регистр представляет собой совокупность триггеров, связанных друг с другом определенным образом общей системой управления.
Существует несколько типов регистров, отличающихся видом выполняемых операций. Некоторые регистры имеют свои названия, например:
– сумматор – регистр АЛУ, выполняющий суммирование двоичных чисел;
– счетчик команд – регистр УУ, содержимое которого соответствует адресу очередной выполняемой команды; служит для автоматической выборки программы из последовательных ячеек памяти;
– регистр команд – регистр УУ для хранения кода команды на период времени, необходимый для ее выполнения. Часть его разрядов используется для хранения кода операции, остальные – для хранения кодов адресов операндов.
Принципы работы компьютера
В основу построения подавляющего большинства компьютеров положены следующие общие принципы, сформулированные в 1945 г. американским ученым Джоном фон Нейманом.
1. Принцип программного управления. Программа состоит из набора команд, выполняющихся процессором автоматически в определенной последовательности.
Выборка программы из памяти осуществляется с помощью счетчика команд. Этот регистр процессора последовательно увеличивает хранимый в нем адрес очередной команды на длину команды. А так как команды программы расположены в памяти друг за другом, то тем самым организуется выборка цепочки команд из последовательно расположенных ячеек памяти. Если же нужно после выполнения команды перейти не к следующей, а к какой-то другой, используются команды условного или безусловного перехода,которые заносят в счетчик команд номер ячейки памяти, содержащей следующую команду. Выборка команд из памяти прекращается после достижения и выполнения команды «стоп».
Таким образом, процессор исполняет программу автоматически, без вмешательства человека.
2. Принцип однородности памяти. Программы и данные хранятся в одной и той же памяти, поэтому компьютер не различает, что хранится в данной ячейке памяти – число, текст или команда. Над командами можно выполнять такие же действия, как и над данными.
Это открывает целый ряд возможностей. Например, программа в процессе своего выполнения также может подвергаться переработке,что позволяет задавать в самой программе правила получения некоторых ее частей (так в программе организуется выполнение циклов и подпрограмм).
Более того, команды одной программы могут быть получены как результаты исполнения другой программы. На этом принципе основаны методы трансляции – перевода текста программы с языка программирования высокого уровня на язык конкретной машины.
3. Принцип адресности. Структурно основная память состоит из перенумерованных ячеек. Процессору в произвольный момент времени доступна любая ячейка.
Отсюда следует возможность давать имена областям памяти так, чтобы к запомненным в них значениям можно было впоследствии обращаться или менять их в процессе выполнения программ с использованием присвоенных имен.
Компьютеры, построенные на перечисленных принципах, относятся к типу фон-неймановских. Но существуют компьютеры, принципиально отличающиеся от фон-неймановских. Для них, например, может не выполняться принцип программного управления, т. е. они могут работать без счетчика команд, указывающего текущую выполняемую команду программы. Для обращения к какой-либо переменной, хранящейся в памяти, этим компьютерам необязательно давать ей имя. Такие компьютеры называются не фон-неймановскими.
Команда и ее исполнение
Команда – это описание элементарной операции, которую должен выполнить компьютер.
В общем случае команда содержит следующую информацию:
– код выполняемой операции;
– указания по определению операндов (или их адресов);
– указания по размещению получаемого результата.
В зависимости от количества операндов команды бывают:
– одноадресные;
– двухадресные;
– трехадресные;
– переменно-адресные.
Команды хранятся в ячейках памяти в двоичном коде.
В современных компьютерах длина команд переменная (обычно от двух до четырех байт), а способы указания адресов переменных весьма разнообразны.
В адресной части команды может быть указан:
– сам операнд (число или символ);
– адрес операнда (номер байта, с которого начинается операнд);
– адрес адреса операнда (номер байта, начиная с которого расположен адрес операнда) и т. д.
Рассмотрим несколько возможных вариантов команды сложения (англ. add – сложение), при этом вместо цифровых кодов и адресов будем пользоваться условными обозначениями.
1. Одноадресная команда add x (содержимое ячейки х сложить с содержимым сумматора, а результат оставить в сумматоре):
2. Двухадресная команда add х, у (содержимое ячеек х и у сложить, а результат поместить в ячейку у):
3. Трехадресная команда add x, у, z (содержимое ячейки х сложить с содержимым ячейки y, сумму поместить в ячейку z):
Выполнение команды можно проследить по схеме (рис.1). Как правило, этот процесс разбивается на следующие этапы:
1. из ячейки памяти, адрес которой хранится в счетчике команд, выбирается очередная команда; содержимое счетчика команд при этом увеличивается на длину команды;
2. выбранная команда передается в устройство управления на регистр команд;
3. устройство управления расшифровывает адресное поле команды;
4. по сигналам УУ операнды считываются из памяти и записываются в АЛУ на специальные регистры операндов;
5. УУ расшифровывает код операции и выдает в АЛУ сигнал выполнить соответствующую операцию над данными;
6. результат операции либо остается в процессоре, либо отправляется в память, если в команде был указан адрес результата;
7. все предыдущие этапы повторяются до достижения команды «стоп».