Глава 2. Общие принципы организации и работы компьютеров
2.1. Что такое компьютер?
Существует два основных класса компьютеров: · цифровые компьютеры, обрабатывающие данные в виде двоичных кодов; · аналоговые компьютеры, обрабатывающие непрерывно меняющиеся физические величины (электрическое напряжение, время и т.д.), которые являются аналогами вычисляемых величин. Поскольку в настоящее время подавляющее большинство компьютеров являются цифровыми, далее будем рассматривать только этот класс компьютеров и слово " компьютер " употреблять в значении " цифровой компьютер ".
Любая компьютерная программа представляет собой последовательность отдельных команд.
Например, у команды " сложить два числа " операндами являются слагаемые, а результатом — их сумма. А у команды " стоп " операндов нет, а результатом является прекращение работы программы. Результат команды вырабатывается по точно определенным для данной команды правилам, заложенным в конструкцию компьютера.
Компьютеры работают с очень высокой скоростью, составляющей миллионы — сотни миллионов операций в секунду. 2.2. Как устроен компьютер? Разнообразие современных компьютеров очень велико. Но их структуры основаны на общих логических принципах, позволяющих выделить в любом компьютере следующие главные устройства: · память (запоминающее устройство, ЗУ), состоящую из перенумерованных ячеек; · процессор, включающий в себя устройство управления (УУ) и арифметико-логическое устройство (АЛУ); · устройство ввода; · устройство вывода. Эти устройства соединены каналами связи, по которым передается информация. Основные устройства компьютера и связи между ними представлены на схеме (рис. 2.1). Жирными стрелками показаны пути и направления движения информации, а простыми стрелками — пути и направления передачи управляющих сигналов. Функции памяти: · приём информации из других устройств; · запоминание информации; · выдача информации по запросу в другие устройства машины. Функции процессора: · обработка данных по заданной программе путем выполнения арифметических и логических операций; · программное управление работой устройств компьютера.
Обычно эти два устройства выделяются чисто условно, конструктивно они не разделены. В составе процессора имеется ряд специализированных дополнительных ячеек памяти, называемых регистрами.
Основным элементом регистра является электронная схема, называемая триггером, которая способна хранить одну двоичную цифру (разряд двоичного кода). Логическая схема триггера описана в разделе 5.7.
Существует несколько типов регистров, отличающихся видом выполняемых операций. Некоторые важные регистры имеют свои названия, например: · сумматор — регистр АЛУ, участвующий в выполнении каждой операции; · счетчик команд — регистр УУ, содержимое которого соответствует адресу очередной выполняемой команды; служит для автоматической выборки программы из последовательных ячеек памяти; · регистр команд — регистр УУ для хранения кода команды на период времени, необходимый для ее выполнения. Часть его разрядов используется для хранения кода операции, остальные — для хранения кодов адресов операндов. 2.3. На каких принципах построены компьютеры? В основу построения подавляющего большинства компьютеров положены следующие общие принципы, сформулированные в 1945 г. американским ученым Джоном фон Нейманом.
1. Принцип программного управления. Из него следует, что программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности. Выборка программы из памяти осуществляется с помощью счетчика команд. Этот регистр процессора последовательно увеличивает хранимый в нем адрес очередной команды на длину команды. А так как команды программы расположены в памяти друг за другом, то тем самым организуется выборка цепочки команд из последовательно расположенных ячеек памяти. Если же нужно после выполнения команды перейти не к следующей, а к какой-то другой, используются команды условного или безусловного переходов, которые заносят в счетчик команд номер ячейки памяти, содержащей следующую команду. Выборка команд из памяти прекращается после достижения и выполнения команды “стоп”. Таким образом, процессор исполняет программу автоматически, без вмешательства человека. 2. Принцип однородности памяти. Программы и данные хранятся в одной и той же памяти. Поэтому компьютер не различает, что хранится в данной ячейке памяти — число, текст или команда. Над командами можно выполнять такие же действия, как и над данными. Это открывает целый ряд возможностей. Например, программа в процессе своего выполнения также может подвергаться переработке, что позволяет задавать в самой программе правила получения некоторых ее частей (так в программе организуется выполнение циклов и подпрограмм). Более того, команды одной программы могут быть получены как результаты исполнения другой программы. На этом принципе основаны методы трансляции — перевода текста программы с языка программирования высокого уровня на язык конкретной машины. 3. Принцип адресности. Структурно основная память состоит из перенумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка. Отсюда следует возможность давать имена областям памяти, так, чтобы к запомненным в них значениям можно было впоследствии обращаться или менять их в процессе выполнения программ с использованием присвоенных имен. Компьютеры, построенные на этих принципах, относятся к типу фон-неймановских. Но существуют компьютеры, принципиально отличающиеся от фон-неймановских. Для них, например, может не выполняться принцип программного управления, т.е. они могут работать без “счетчика команд”, указывающего текущую выполняемую команду программы. Для обращения к какой-либо переменной, хранящейся в памяти, этим компьютерам не обязательно давать ей имя. Такие компьютеры называются не-фон-неймановскими. 2.4. Что такое команда?
В общем случае, команда содержит следующую информацию: · код выполняемой операции; · указания по определению операндов (или их адресов); · указания по размещению получаемого результата. В зависимости от количества операндов, команды бывают: · одноадресные; · двухадресные; · трехадресные; · переменноадресные. Команды хранятся в ячейках памяти в двоичном коде. В современных компьютерах длина команд переменная (обычно от двух до четырех байтов), а способы указания адресов переменных весьма разнообразные. В адресной части команды может быть указан, например: · сам операнд (число или символ); · адрес операнда (номер байта, начиная с которого расположен операнд); · адрес адреса операнда (номер байта, начиная с которого расположен адрес операнда), и др. Рассмотрим несколько возможных вариантов команды сложения (англ. add — сложение), при этом вместо цифровых кодов и адресов будем пользоваться условными обозначениями: · одноадресная команда add x (содержимое ячейки x сложить с содержимым сумматора, а результат оставить в сумматоре)
· · двухадресная команда add x, y (сложить содержимое ячеек x и y, а результат поместить в ячейку y)
· · трехадресная команда add x, y, z (содержимое ячейки x сложить с содержимым ячейки y, сумму поместить в ячейку z)
·
2.5. Как выполняется команда? Выполнение команды можно проследить по схеме: Как пpавило, этот процесс разбивается на следующие этапы: · из ячейки памяти, адрес которой хранится в счетчике команд, выбирается очередная команда; содержимое счетчика команд при этом увеличивается на длину команды; · выбранная команда передается в устройство управления на регистр команд; · устройство управления расшифровывает адресное поле команды; · по сигналам УУ операнды считываются из памяти и записываются в АЛУ на специальные регистры операндов; · УУ расшифровывает код операции и выдает в АЛУ сигнал выполнить соответствующую операцию над данными; · результат операции либо остается в процессоре, либо отправляется в память, если в команде был указан адрес результата; · все предыдущие этапы повторяются до достижения команды “стоп”. 2.6. Что такое архитектура и структура компьютера? При рассмотрении компьютерных устройств принято различать их архитектуру и структуру.
Наиболее распространены следующие архитектурные решения. Классическая архитектура (архитектура фон Неймана) — одно арифметико-логическое устройство (АЛУ), через которое проходит поток данных, и одно устройство управления (УУ), через которое проходит поток команд — программа (рис. 2.1). Это однопроцессорный компьютер. К этому типу архитектуры относится и архитектура персонального компьютера с общей шиной, подробно рассмотренная в разделе 2.18 (рис. 2.26). Все функциональные блоки здесь связаны между собой общей шиной, называемой также системной магистралью.
Периферийные устройства (принтер и др.) подключаются к аппаратуре компьютера через специальные контроллеры — устройства управления периферийными устройствами.
Многопроцессорная архитектура. Наличие в компьютере нескольких процессоров означает, что параллельно может быть организовано много потоков данных и много потоков команд. Таким образом, параллельно могут выполняться несколько фрагментов одной задачи. Структура такой машины, имеющей общую оперативную память и несколько процессоров, представлена на рис. 2.3. Многомашинная вычислительная система. Здесь несколько процессоров, входящих в вычислительную систему, не имеют общей оперативной памяти, а имеют каждый свою (локальную). Каждый компьютер в многомашинной системе имеет классическую архитектуру, и такая система применяется достаточно широко. Однако эффект от применения такой вычислительной системы может быть получен только при решении задач, имеющих очень специальную структуру: она должна разбиваться на столько слабо связанных подзадач, сколько компьютеров в системе. Преимущество в быстродействии многопроцессорных и многомашинных вычислительных систем перед однопроцессорными очевидно. Архитектура с параллельными процессорами. Здесь несколько АЛУ работают под управлением одного УУ. Это означает, что множество данных может обрабатываться по одной программе — то есть по одному потоку команд. Высокое быстродействие такой архитектуры можно получить только на задачах, в которых одинаковые вычислительные операции выполняются одновременно на различных однотипных наборах данных. Структура таких компьютеров представлена на рис. 2.4. В современных машинах часто присутствуют элементы различных типов архитектурных решений. Существуют и такие архитектурные решения, которые радикально отличаются от рассмотренных выше. 2.7. Что такое центральный процессор?
Центральный процессор в общем случае содержит в себе: · арифметико-логическое устройство; · шины данных и шины адресов; · регистры; · счетчики команд; · кэш — очень быструю память малого объема (от 8 до 512 Кбайт); · математический сопроцессор чисел с плавающей точкой. Современные процессоры выполняются в виде микропроцессоров. Физически микропроцессор представляет собой интегральную схему — тонкую пластинку кристаллического кремния прямоугольной формы площадью всего несколько квадратных миллиметров, на которой размещены схемы, реализующие все функции процессора. Кристалл-пластинка обычно помещается в пластмассовый или керамический плоский корпус и соединяется золотыми проводками с металлическими штырьками, чтобы его можно было присоединить к системной плате компьютера. В вычислительной системе может быть несколько параллельно работающих процессоров; такие системы называются многопроцессорными. 2.8. Как устроена память? Память компьютера построена из двоичных запоминающих элементов — битов, объединенных в группы по 8 битов, которые называются байтами. (Единицы измерения памяти совпадают с единицами измерения информации). Все байты пронумерованы. Номер байта называется его адресом. Байты могут объединяться в ячейки, которые называются также словами. Для каждого компьютера характерна определенная длина слова — два, четыре или восемь байтов. Это не исключает использования ячеек памяти другой длины (например, полуслово, двойное слово). Как правило, в одном машинном слове может быть представлено либо одно целое число, либо одна команда. Однако, допускаются переменные форматы представления информации. Разбиение памяти на слова для четырехбайтовых компьютеров представлено в таблице:
Широко используются и более крупные производные единицы объема памяти: Килобайт, Мегабайт, Гигабайт, а также, в последнее время, Терабайт и Петабайт. Современные компьютеры имеют много разнообразных запоминающих устройств, которые сильно отличаются между собой по назначению, временным характеристикам, объёму хранимой информации и стоимости хранения одинакового объёма информации. Различают два основных вида памяти — внутреннюю и внешнюю. 2.9. Какие устройства образуют внутреннюю память? В состав внутренней памяти входят оперативная память, кэш-память и специальная память.
|