| О компании
Цены на комплектующие
Наши услуги
Цены на услуги
Контакты
|
Как выполняется программа
Программа, написанная на одном из языков программирования, с помощью компилятора преобразуется в машинные коды и засылается в оперативное запоминающее устройство (ОЗУ). Кроме того, в ОЗУ вычислительной машины вводятся данные, являющиеся объектом вычислений. С этого момента программа, существующая на машинном языке, готова к выполнению ее компьютером.
Далее, в компьютере имеются специальные области или места, предназначенные для хранения информации, которая вырабатывается в процессе выполнения программы. Эти места называются регистрами. Как правило, регистр представляет собой логическое устройство или цепь, способную хранить одно машинное слово (обычно 32 или 36 двоичных разрядов - в зависимости от типа ЭВМ), причем это слово, записанное в двоичном коде, может вводиться или считываться из регистра с большой скоростью. Здесь под словом понимается набор данных, одноразово используемых в операционной цепи вычислительной машины. Засылка следующей информации в регистр означает ввод нового слова.
Один из регистров компьютера называется счетчиком команд. Слово, хранящееся в каждый момент времени в этом счетчике, указывает на то, какая команда из программы в машинных кодах выполняется в этот момент. Другие регистры называются операционными регистрами и предназначены для хранения данных, над которыми производятся арифметические или логические действия.
В операционном блоке центрального процессора имеются цепи анализа операционных команд, которые исследуют двоичные последовательности машинные команд и выясняют, к какому типу относится каждая команда, в каких ячейках памяти находятся данные и что с этими данными нужно сделать. Для каждого вида команды существует своя операционная цепь, которая эту команду выполняет. Например, имеется схема, которая считает два набора двоичных последовательностей двоичными числами и осуществляет сложение этих чисел. Другая цепь считает два набора двоичных последовательностей логическими величинами и осуществляет логическое умножение этих величин. Третья цепь проверяет, удовлетворяет ли некоторая двоичная последовательность какому-то логическому условию, засылая результат проверки в специальный регистр, и т. д.
Собрав все эти цепи в единое целое, можно выполнить любую последовательность записанных на машинном языке команд. Сначала в операционный блок поступает машинная команда, соответствующая своему адресу на счетчике команд, и счетчик команд увеличивает свое содержимое на единицу. Поступившая команда классифицируется в цепи анализа команд, определяя одновременно адреса ячеек с исходными данными, которые будут обрабатываться в ходе выполнения команды. Эти необходимые для операции данные заносятся в операционные регистры, после чего срабатывает нужная операционная цепь, и результат выполнения данной операции вводится в соответствующий операционный регистр либо в соответствующий раздел памяти, выделенный для хранения промежуточных результатов вычислений. После выполнения команды вырабатывается предписание или сигнал о том, что можно выполнять следующую команду. Тогда счетчик команд опять устанавливается в новое положение.
Интерпретация машинной команды с помощью аппаратных средств очень напоминает расшифровку программы на языке БЕЙСИК, о котором мы будем говорить в следующей главе. Читатель сможет убедиться в этом сам. Одну и ту же интерпретацию можно реализовать как с помощью аппаратных средств ЭВМ, так и с помощью программного обеспечения более высокого уровня.
Структуру вычислительной машины легко понять, если разделить ее на несколько слоев или уровней. На одном уровне осуществляется интерпретация программ, записанных на машинном языке. Для того чтобы эти программы стали понятными компьютеру, необходимо предусмотреть более низкий уровень, соответствующий построению логических схем машины. Более высокий уровень по отношению к программе на машинном языке будут иметь программы, составленные с помощью языков программирования, и т. д.
|