Что определяет скорость выполнения операций в микропроцессоре
Учебно-методический комплекс
По предмету «Архитектура аппаратных средств»
1. Организация работы и функционирование процессора. Микропроцессоры типа CISC, RISC, MISC. Характеристики микропроцессора. Устройство управления, арифметико-логическое устройство.
1. Организация работы и функционирование процессора. Микропроцессоры типа CISC, RISC, MISC. Характеристики микропроцессора. Устройство управления, арифметико-логическое устройство.
Организация работы процессора:
Во время процесса процессор считывает последовательность команд, содержащихся в памяти, и исполняет их. Очерёдность считывания команд изменяется в случае, если процессор считывает команду перехода — тогда адрес следующей команды может оказаться другим. Другим примером изменения процесса может служить случай получения команды останова или переключение в режим обработки аппаратного прерывания.
Скорость перехода от одного этапа цикла к другому определяется тактовым генератором. Тактовый генератор вырабатывает импульсы, служащие ритмом для центрального процессора.
В основу было положено понятие потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. Соответствующая система классификации основана на рассмотрении числа потоков инструкций и потоков данных и описывает четыре архитектурных класса:
В основе параллельного компьютера лежит идея использования для решения одной задачи нескольких процессоров, работающих сообща, причем процессоры могут быть как скалярными, так и векторными.
Конвейерная архитектура (pipelining) была введена в центральный процессор с целью повышения быстродействия. Обычно для выполнения каждой команды требуется осуществить некоторое количество однотипных операций, например: выборка команды из ОЗУ, дешифрация команды, адресация операнда в ОЗУ, выборка операнда из ОЗУ, выполнение команды, запись результата в ОЗУ. Каждую из этих операций сопоставляют одной ступени конвейера. Например, конвейер микропроцессора с архитектурой MIPS-I содержит четыре стадии:
· получение и декодирование инструкции (Fetch)
· адресация и выборка операнда из ОЗУ (Memory access)
· выполнение арифметических операций (Arithmetic Operation)
· сохранение результата операции (Store)
После освобождения k-й ступени конвейера она сразу приступает к работе над следующей командой. Если предположить, что каждая ступень конвейера тратит единицу времени на свою работу, то выполнение команды на конвейере длиной в n ступеней займёт n единиц времени, однако в самом оптимистичном случае результат выполнения каждой следующей команды будет получаться через каждую единицу времени
Способность выполнения нескольких машинных инструкций за один такт процессора. Появление этой технологии привело к существенному увеличению производительности.
Основными параметрами процессоров являются:
· коэффициент внутреннего умножения тактовой частоты,
Тактовая частота определяет количество элементарных операций (тактов), выполняемые процессором за единицу времени. Тактовая частота современных процессоров измеряется в МГц (1 Гц соответствует выполнению одной операции за одну секунду, 1 МГц=106 Гц). Чем больше тактовая частота, тем больше команд может выполнить процессор, и тем больше его производительность. Первые процессоры, которые использовались в ПК работали на частоте 4,77 МГц, сегодня рабочие частоты современных процессоров достигают отметки в 2 ГГц (1 ГГц=103 МГц).
Разрядность процессора показывает, сколько бит данных он может принять и обработать в своих регистрах за один такт. Разрядность процессора определяется разрядностью командной шины, то есть количеством проводников в шине, по которой передаются команды. Современные процессоры семейства Intel являются 32-разрядными.
Рабочее напряжение процессора обеспечивается материнской платой, поэтому разным маркам процессоров отвечают разные материнские платы. Рабочее напряжение процессоров не превышает 3 В. Снижение рабочего напряжения разрешает уменьшить размеры процессоров, а также уменьшить тепловыделение в процессоре, что разрешает увеличить его производительность без угрозы перегрева.
Весь ряд процессоров фирмы Intel, устанавливаемых в персональные компьютеры IBM, имеют архитектуруCISC, а процессоры Motorola, используемые фирмой Apple для своих персональных компьютеров, имеют архитектуру RISC. Обе архитектуры имеют свои преимущества и недостатки. Так CISC-процессоры имеют обширный набор команд (до 400), из которых программист может выбрать команду, наиболее подходящую ему в данном случае. Недостатком этой архитектуры является то, что большой набор команд усложняет внутреннее устройство управления процессором, увеличивает время исполнения команды на микропрограммном уровне. Команды имеют различную длину и время исполнения.
RISC-архитектура имеет ограниченный набор команд и каждая команда выполняется за один такт работы процессора. Небольшое число команд упрощает устройство управления процессора. К недостаткам RISC-архитектуры можно отнести то, что если требуемой команды в наборе нет, программист вынужден реализовать ее с помощью нескольких команд из имеющегося набора, увеличивая размер программного кода.
Упрощенная схема процессора, отражающая основные особенности архитектуры микроуровня, приведена на рис. 5. Наиболее сложным функциональным устройством процессора является устройство управления выполнением команд. Оно содержит:
· буфер команд, который хранит одну или несколько очередных команд программы; читает следующие команды из запоминающего устройства, пока выполняется очередная команда, уменьшая время ее выборки из памяти;
· дешифратор команд расшифровывает код операции очередной команды и преобразует его в адрес начала микропрограммы, которая реализует исполнение команды;
· управление выборкой очередной микрокоманды представляет собой небольшой процессор, работающий по принципу фон Неймана, имеет свой счетчик микрокоманд, который автоматически выбирает очередную микрокоманду из ПЗУ микрокоманд;
Поступивший от дешифратора команд адрес записывается в счетчик микрокоманд устройства выборки, и начинается процесс обработки последовательности микрокоманд. Каждый разряд микрокоманды связан с одним управляющим входом какого-либо функционального устройства. Так, например, управляющие входы регистра хранения «Сброс», «Запись», «Чтение» соединены с соответствующими разрядами микрокоманды. Общее число разрядов микрокоманды может составлять от нескольких сотен до нескольких тысяч и равно общему числу управляющих входов всех функциональных устройств процессора. Часть разрядов микрокоманды подается на устройство управления выборкой очередной микрокоманды и используется для организации условных переходов и циклов, так как алгоритмы обработки команд могут быть достаточно сложными.
Выборка очередной микрокоманды осуществляется через определенный интервал времени, который, в свою очередь, зависит от времени выполнения предыдущей микрокоманды. Частота, с которой осуществляется выборка микрокоманд, называется тактовой частотой процессора. Тактовая частота является важной характеристикой процессора, так как определяет скорость выполнения процессором команд, и, в конечном итоге, быстродействие процессора. Другими словами тактовая частота показывает количество элементарных операций, выполняемых центральным процессором в секунду. Под элементарной операцией понимается любая простейшая операция типа сложения, пересылки, сравнения и т.д.
Арифметико-логическое устройство (АЛУ) предназначено для выполнения арифметических и логических операций преобразования информации. Функционально АЛУ состоит из нескольких специальных регистров, полноразрядного сумматора и схем местного управления.
Регистры общего назначения (РОН) используются для временного хранения операндов исполняемой команды и результатов вычислений, а также хранят адреса ячеек памяти или портов ввода-вывода для команд, обращающихся к памяти и внешним устройствам. Необходимо отметить, что если операнды команды хранятся в РОН, то время выполнения команды значительно сокращается. Одна из причин, почему программисты иногда обращаются к программированию на языке машинных команд, это наиболее полное использование РОН для получения максимального быстродействия при выполнении программ, критичных по времени.
Основными параметрами процессоров являются: рабочее напряжение, разрядность, рабочая тактовая частота, коэффициент внутреннего умножения тактовой частоты и размер кэш-памяти.
Рабочее напряжение процессора обеспечивает материнская плата, поэтому разным маркам процессоров соответствуют разные материнские платы (их надо выбирать совместно). Ранние модели процессоров x86 имели рабочее напряжение 5 В. С переходом к процессорам Intel Pentium оно понижено до 3,3 В, а в настоящее время составляет менее 3 В. Сверху микропроцессора всегда устанавливают вентилятор (куллер) для его охлаждения во время работы.
Разрядность процессора показывает, сколько бит данных он может принять и обработать в своих регистрах за одни раз (за одни такт) и определяется разрядностью этих регистров. Первые процессоры x86 были 16-разрядными. Начиная с процессора 80386, они имеют 32-разрядную архитектуру. Современные процессоры семейства Intel Pentium остаются 32 разрядными, хотя и работают с 64 разрядной шиной данных.
Рассмотрим аппаратную архитектуру физической памяти и организацию управления ею на примере последних поколений процессоров Intel Pentium. Для управления памятью в процессор включен специальный модуль управления памятью, или, иначе, контроллер памяти (Memory Controller). В этом контексте схема обмена данными в компьютерной системе может быть представлена так, как показано на рис. 6. Данная схема отображает обмен данными в компьютерной системе, в которой используется процессор Intel Pentium 4. Все операции по обмену данными с устройствами со стороны процессора выполняет контроллер памяти.
Количество памяти, которая может быть использована программой, ограничено максимальным размером адресного пространства процессора. У процессора Intel Pentium 4, например, максимальное адресное пространство, включая физическую (оперативную) и виртуальную память, может достигать 64 Гбайт.
Для сопоставления большого числа изготовленных и изготовляемых МП существует множество классификационных признаков. Ограничимся самыми главными:
по числу больших интегральных схем (БИС) в микропроцессорном комплекте различают микропроцессоры однокристальные, многокристальные и многокристальные секционные;
по технологии изготовления:
по ширине ШД (по длине обрабатываемых данных):
* 8-разрядные, применяемые для построения простых МПС (контроллеров);
* 32-разрядные для построения ПЭВМ высокой производительности;
по виду синхронизации:
* синхронные, когда все процессы в МП и МПС синхронизированы сигналами тактового генератора (МП фирмы Intel);
* асинхронные, когда все процессы в МП и МПС протекают асинхронно (без участия сигналов тактового генератора, МП фирмы DEC);
по способу декодирования и выполнения команд: с использованием жесткой логики или микропрограммно.
Процессоры даже самых простых ЭВМ имеют сложную функциональную структуру, содержат большое количество электронных элементов и множество разветвленных связей. Изменять структуру процессора необходимо так, чтобы полная принципиальная схема или ее части имели количество элементов и связей, совместимое с возможностями БИС. При этом микропроцессоры приобретают внутреннюю магистральную архитектуру, т. е. в них к единой внутренней информационной магистрали подключаются все основные функциональные блоки (арифметико-логический, рабочих регистров, стека, прерываний, интерфейса, управления и синхронизации и др.).
Вырабатывает последовательность внутренних и внешних управляющих сигналов, обеспечивающих выборку и выполнение команд. Устройство управления интерпретирует команду выбранную из программной памяти, и формирует для АЛУ и других устройств требуемый набор команд низкого уровня – микрокоманд.
Микрокоманды задают последовательность элементарных низкоуровневых операций (микроопераций) (пересылка данных, сдвиг данных, установка и анализ признаков, запоминание результатов и т.д.)
Последовательность микрокоманд соответствующая оной команде называется микропрограммой.
В состав управляющего устройства входят три устройства:
1. Регистр команды – содержит код команды во время ее выполнения
2. Программный счетчик – в нем содержится адрес очередной подлежащей выполнению команды.
3. Регистр адреса – в нем вычисляются адреса операндов, находящихся в памяти.
4. Пульт управления – предусмотрен для связи пользователя с ЭВМ и позволяет производить сброс в начальное состояние, просматривать регистры и ячейки памяти, записывать адрес в программный счетчик, пошагово выполнять программу при ее отладке и т.д.
5. Память – устройство предназначено для запоминания, хранения и выборки программ и данных. Она состоит из конечного числа ячеек, каждая из которых имеет свой уникальный адрес (номер), доступ к ячейке осуществляется путем указания ее адреса.
Микропроцессор
Микропроцессор (см.рисунок) обычно представляет собой отдельную микросхему или же часть микросхемы (в случае микроконтроллера). В прежние годы процессор иногда выполнялся на комплектах из нескольких микросхем, но сейчас от такого подхода уже практически отказались. Микросхема процессора обязательно имеет выводы трех шин: шины адреса, шины данных и шины управления. Иногда некоторые сигналы и шины мультиплексируются, чтобы уменьшить количество выводов микросхемы процессора.
Важнейшие характеристики процессора — это количество разрядов его шины данных, количество разрядов его шины адреса и количество управляющих сигналов в шине управления. Разрядность шины данных определяет скорость работы системы. Разрядность шины адреса определяет допустимую сложность системы. Количество линий управления определяет разнообразие режимов обмена и эффективность обмена процессора с другими устройствами системы.
Кроме выводов для сигналов трех основных шин процессор всегда имеет вывод (или два вывода) для подключения внешнего тактового сигнала или кварцевого резонатора (CLK), так как процессор всегда представляет собой тактируемое устройство. Чем больше тактовая частота процессора, тем он быстрее работает, то есть тем быстрее выполняет команды. Впрочем, быстродействие процессора определяется не только тактовой частотой, но и особенностями его структуры. Современные процессоры выполняют большинство команд за один такт и имеют средства для параллельного выполнения нескольких команд. Тактовая частота процессора не связана прямо и жестко со скоростью обмена по магистрали, так как скорость обмена по магистрали ограничена задержками распространения сигналов и искажениями сигналов на магистрали. То есть тактовая частота процессора определяет только его внутреннее быстродействие, а не внешнее. Иногда тактовая частота процессора имеет нижний и верхний пределы. При превышении верхнего предела частоты возможно перегревание процессора, а также сбои, причем, что самое неприятное, возникающие не всегда и нерегулярно. Так что с изменением этой частоты надо быть очень осторожным
Функции микропроцессора
После включения питания процессор переходит в первый адрес программы начального пуска и выполняет эту программу. Данная программа предварительно записана в постоянную (энергонезависимую) память. После завершения программы начального пуска процессор начинает выполнять основную программу, находящуюся в постоянной или оперативной памяти, для чего выбирает по очереди все команды. От этой программы процессор могут отвлекать внешние прерывания или запросы на ПДП. Команды из памяти процессор выбирает с помощью циклов чтения по магистрали. При необходимости процессор записывает данные в память или в устройства ввода/вывода с помощью циклов записи или же читает данные из памяти или из устройств ввода/вывода с помощью циклов чтения.
Таким образом, основные функции любого процессора следующие:
выборка (чтение) выполняемых команд; ввод (чтение) данных из памяти или устройства ввода/вывода; вывод (запись) данных в память или в устройства ввода/вывода; обработка данных (операндов), в том числе арифметические операции над ними; адресация памяти, то есть задание адреса памяти, с которым будет производиться обмен; обработка прерываний и режима прямого доступа. Упрощенно структуру микропроцессора можно представить в следующем виде
Основные функции показанных узлов следующие.
Схема управления выборкой команд выполняет чтение команд из памяти и их дешифрацию. В первых микропроцессорах было невозможно одновременное выполнение предыдущей команды и выборка следующей команды, так как процессор не мог совмещать эти операции. Но уже в 16-разрядных процессорах появляется так называемый конвейер (очередь) команд, позволяющий выбирать несколько следующих команд, пока выполняется предыдущая. Два процесса идут параллельно, что ускоряет работу процессора. Конвейер представляет собой небольшую внутреннюю память процессора, в которую при малейшей возможности (при освобождении внешней шины) записывается несколько команд, следующих за исполняемой. Читаются эти команды процессором в том же порядке, что и записываются в конвейер (это память типа FIFO, First In — First Out, первый вошел — первый вышел). Правда, если выполняемая команда предполагает переход не на следующую ячейку памяти, а на удаленную (с меньшим или большим адресом), конвейер не помогает, и его приходится сбрасыва ть. Но такие команды встречаются в программах сравнительно редко.
Развитием идеи конвейера стало использование внутренней кэш-памяти процессора, которая заполняется командами, пока процессор занят выполнением предыдущих команд. Чем больше объем кэш-памяти, тем меньше вероятность того, что ее содержимое придется сбросить при команде перехода. Понятно, что обрабатывать команды, находящиеся во внутренней памяти, процессор может гораздо быстрее, чем те, которые расположены во внешней памяти. В кэш-памяти могут храниться и данные, которые обрабатываются в данный момент, это также ускоряет работу. Для большего ускорения выборки команд в современных процессорах применяют совмещение выборки и дешифрации, одновременную дешифрацию нескольких команд, несколько параллельных конвейеров команд, предсказание команд переходов и некоторые другие методы.
Арифметико-логическое устройство (или АЛУ, ALU) предназначено для обработки информации в соответствии с полученной процессором командой. Примерами обработки могут служить логические операции (типа логического «И», «ИЛИ», «Исключающего ИЛИ» и т.д.) то есть побитные операции над операндами, а также арифметические операции (типа сложения, вычитания, умножения, деления и т.д.). Над какими кодами производится операция, куда помещается ее результат — определяется выполняемой командой. Если команда сводится всего лишь к пересылке данных без их обработки, то АЛУ не участвует в ее выполнении.
Быстродействие АЛУ во многом определяет производительность процессора. Причем важна не только частота тактового сигнала, которым тактируется АЛУ, но и количество тактов, необходимое для выполнения той или иной команды. Для повышения производительности разработчики стремятся довести время выполнения команды до одного такта, а также обеспечить работу АЛУ на возможно более высокой частоте. Один из путей решения этой задачи состоит в уменьшении количества выполняемых АЛУ команд, создание процессоров с уменьшенным набором команд (так называемые RISC-процессоры). Другой путь повышения производительности процессора — использование нескольких параллельно работающих АЛУ.
Что касается операций над числами с плавающей точкой и других специальных сложных операций, то в системах на базе первых процессоров их реализовали последовательностью более простых команд, специальными подпрограммами, однако затем были разработаны специальные вычислители — математические сопроцессоры, которые заменяли основной процессор на время выполнения таких команд. В современных микропроцессорах математические сопроцессоры входят в структуру как составная часть.
Регистры процессора представляют собой по сути ячейки очень быстрой памяти и служат для временного хранения различных кодов: данных, адресов, служебных кодов. Операции с этими кодами выполняются предельно быстро, поэтому, в общем случае, чем больше внутренних регистров, тем лучше. Кроме того, на быстродействие процессора сильно влияет разрядность регистров. Именно разрядность регистров и АЛУ называется внутренней разрядностью процессора, которая может не совпадать с внешней разрядностью.
Регистр признаков (регистр состояния) занимает особое место, хотя он также является внутренним регистром процессора. Содержащаяся в нем информация — это не данные, не адрес, а слово состояния процессора (ССП, PSW — Processor Status Word). Каждый бит этого слова (флаг) содержит информацию о результате предыдущей команды. Например, есть бит нулевого результата, который устанавливается в том случае, когда результат выполнения предыдущей команды — нуль, и очищается в том случае, когда результат выполнения команды отличен от нуля. Эти биты (флаги) используются командами условных переходов, например, командой перехода в случае нулевого результата. В этом же регистре иногда содержатся флаги управления, определяющие режим выполнения некоторых команд.
Схема управления прерываниями обрабатывает поступающий на процессор запрос прерывания, определяет адрес начала программы обработки прерывания (адрес вектора прерывания), обеспечивает переход к этой программе после выполнения текущей команды и сохранения в памяти (в стеке) текущего состояния регистров процессора. По окончании программы обработки прерывания процессор возвращается к прерванной программе с восстановленными из памяти (из стека) значениями внутренних регистров. Подробнее о стеке будет рассказано в следующем разделе.
Схема управления прямым доступом к памяти служит для временного отключения процессора от внешних шин и приостановки работы процессора на время предоставления прямого доступа запросившему его устройству.
Логика управления организует взаимодействие всех узлов процессора, перенаправляет данные, синхронизирует работу процессора с внешними сигналами, а также реализует процедуры ввода и вывода информации.
Таким образом, в ходе работы процессора схема выборки команд выбирает последовательно команды из памяти, затем эти команды выполняются, причем в случае необходимости обработки данных подключается АЛУ. На входы АЛУ могут подаваться обрабатываемые данные из памяти или из внутренних регистров. Во внутренних регистрах хранятся также коды адресов обрабатываемых данных, расположенных в памяти. Результат обработки в АЛУ изменяет состояние регистра признаков и записывается во внутренний регистр или в память (как источник, так и приемник данных указывается в составе кода команды). При необходимости информация может переписываться из памяти (или из устройства ввода/вывода) во внутренний регистр или из внутреннего регистра в память (или в устройство ввода/вывода).
Внутренние регистры любого микропроцессора обязательно выполняют две служебные функции:
определяют адрес в памяти, где находится выполняемая в данный момент команда (функция счетчика команд или указателя команд); определяют текущий адрес стека (функция указателя стека). В разных процессорах для каждой из этих функций может отводиться один или два внутренних регистра. Эти два указателя отличаются от других не только своим специфическим, служебным, системным назначением, но и особым способом изменения содержимого. Их содержимое программы могут менять только в случае крайней необходимости, так как любая ошибка при этом грозит нарушением работы компьютера, зависанием и порчей содержимого памяти.
Содержимое указателя (счетчика) команд изменяется следующим образом. В начале работы системы (при включении питания) в него заносится раз и навсегда установленное значение. Это первый адрес программы начального запуска. Затем после выборки из памяти каждой следующей команды значение указателя команд автоматически увеличивается (инкрементируется) на единицу (или на два в зависимости от формата команд и типа процессора). То есть следующая команда будет выбираться из следующего по порядку адреса памяти. При выполнении команд перехода, нарушающих последовательный перебор адресов памяти, в указатель команд принудительно записывается новое значение — новый адрес в памяти, начиная с которого адреса команд опять же будут перебираться последовательно. Такая же смена содержимого указателя команд производится при вызове подпрограммы и возврате из нее или при начале обработки прерывания и после его окончания.
Характеристики
Здесь будут рассмотрены параметры наиболее важных устройств компьютера, таких как процессор и внутренняя память.
Начнем с процессора. Очевидно, что пользователя в первую очередь интересует его производительность, т.е. скорость выполнения предложенной процессору задачи. Традиционно быстродействие процессора измерялось путем определения количества операций в единицу времени, как правило, в секунду. До тех пор, пока машины выполняли только вычисления, такой показатель был достаточно удобен. Однако по мере развития вычислительной техники количество видов обрабатываемой информации возрастало, и обсуждаемый показатель перестал быть универсальным. В самом деле, в простейшем случае даже количество арифметических действий над целыми и над вещественными числами может для одного и того же компьютера отличаться на порядок! Что говорить о скорости обработки графической или видео информации, которые к тому же зависят не только от самого процессора, но и от устройства видеоблоков компьютера… Кроме того, современные процессоры, например, Pentium, имеют очень сложное внутренне устройство и могут выполнять машинные команды параллельно. Иными словами, процессор может одновременно выполнять несколько разных инструкций, а значит, время завершения команды уже зависит не только от нее самой, но и от «соседних» операций! Таким образом, количество выполняемых за секунду операций перестает быть постоянным и выбирать его в качестве характеристики процессора не очень удобно.
Именно поэтому сейчас получила широкое распространение другая характеристика скорости работы процессора – его тактовая частота. Рассмотрим данную величину подробнее. Любая операция процессора (машинная команда) состоит из отдельных элементарных действий – тактов. Для организации последовательного выполнения требуемых тактов друг за другом, в компьютере имеется специальный генератор импульсов, каждый из которых инициирует очередной такт машинной команды (какой именно, определяется устройством процессора и логикой выполняемой операции). Очевидно, что чем чаще следуют импульсы от генератора, тем быстрее будет выполнена операция, состоящая из фиксированного числа тактов. Из сказанного следует, что тактовая частота определяется количеством импульсов в секунду и измеряется в мегагерцах – т.е. миллионах импульсов за 1 сек. Разумеется, тактовая частота не может быть произвольно высокой, поскольку в какой-то момент процессор может просто «не успеть» выполнить очередной такт до прихода следующего импульса. Однако инженеры делают все возможное для повышения значения этой характеристики процессора, и на данный момент тактовая частота самых современных процессоров уже превышает 1000 МГц, т.е. 1 ГГц (1 гигагерц).
Следует четко представлять, что сравнение тактовых частот позволяет надежно определить, какой из двух процессоров более быстродействующий только в том случае, если оба процессора устроены примерно одинаково. Если же попытаться сравнить процессоры, произведенные разными изготовителями и работающие по разным принципам, можно получить абсолютно неправильные выводы. В самом деле, если в одном из процессоров команда выполняется за 2 такта, а в другом – за 3, то при совершенно одинаковой частоте первый будет работать в полтора раза быстрее! Кроме того, не нужно забывать, что производительность современной компьютерной системы определяется не только быстродействием отдельно взятого процессора, но и скоростями работы остальных узлов компьютера и даже способами организации всей системы в целом: очевидно, что чрезмерно быстрый процессор будет вынужден постоянно простаивать, ожидая, например, медленно работающую память; или другой пример – очень часто простое увеличение объема ОЗУ дает гораздо больший эффект, чем замена процессора на более быстрый.
Косвенно скорость обработки информации зависит и еще от одного параметра процессора – его разрядности. Под разрядностью обычно понимают число одновременно обрабатываемых процессором битов. Формально эта величина есть количество двоичных разрядов в регистрах процессора и для современных моделей она равна 32. Тем не менее, все не так просто. Дело в том, что помимо описанной «внутренней» разрядности процессора существует еще разрядность шины данных, которой он управляет, и разрядность шины адреса [о шине более подробно рассказано в предыдущем билете]. Эти характеристики далеко не всегда совпадают (данные для таблицы взяты из книги М.Гука «Процессоры Intel: от 8086 до Pentium II». – СПб.: Питер, 1997):
Мы не будем обсуждать технические причины, по которым эти три разрядности могут различаться между собой, ибо причины эти сейчас представляют в основном исторический интерес. Отметим только, что разрядность регистров и разрядность шины данных влияют на длину обрабатываемых данных, а вот разрядность шины адреса R определяет максимальный объем памяти, который способен поддерживать процессор. Эту характеристику часто называют величиной адресного пространства, и она может быть вычислена по простой формуле 2R. Действительно, R двоичных разрядов позволяют получить именно такое количество неповторяющихся чисел, т.е. в данном случае адресов памяти.
Перейдем теперь к описанию основных характеристик памяти компьютера.
Хотя память компьютера состоит из отдельных битов, непосредственно «общаться» с каждым из них невозможно: биты группируются в более крупные блоки информации и именно они получают адреса, по которым происходит обращение к памяти. По сложившейся исторической традиции минимальная порция информации, которую современный компьютер способен записать в память составляет 8 бит или 1 байт. Отсюда становится очевидным, что общий объем памяти должен измеряться в байтах, или в производных от него единицах. Размер памяти персональных компьютеров стремительно возрастает. Первые модели имели 16-разрядное адресное пространство и, следовательно, объем памяти 216 = 64 Кбайта. Затем, когда памяти под разрабатываемые программные системы перестало хватать, инженеры введением некоторых весьма специфических способов формирования адреса увеличили ее размер на порядок – в MS DOS стандартная память была принята равной 640 Кбайт. Сейчас вы вряд ли сможете приобрести новый компьютер с ОЗУ менее 32-64 Мбайт, т.е. еще на два порядка больше (надеюсь, читатели не забыли, что 1 Мб = 1024 Кбайта).
Еще одной важной характеристикой памяти является время доступа или быстродействие памяти. Этот параметр определяется временем выполнения операций записи или считывания данных; он зависит от принципа действия и технологии изготовления запоминающих элементов.
Оставляя в стороне целый ряд других технологических характеристик современных запоминающих устройств, нельзя, тем не менее, пройти мимо статического и динамического устройства микросхем памяти. Статическая ячейка памяти – это специальная полупроводниковая схема (инженеры называют ее триггер), обладающая двумя устойчивыми состояниями. Одно из них принимается за логический ноль, а другое – за единицу. Состояния эти действительно настолько устойчивы, что при отсутствии внешних воздействий (и, конечно, подключенном напряжения питания!) могут сохраняться сколь угодно долго. Динамические ячейки памяти, напротив, не обладают этим свойством. Такие ячейки фактически представляют собой конденсатор, образованный элементами полупроводниковых микросхем. С некоторым упрощением можно сказать, что логической единице соответствует заряженный конденсатор, а нулю – незаряженный. Существенным свойством динамической ячейки памяти является наличие постепенного самопроизвольного разряда конденсатора через внешние схемы, что ведет к потере информации. Чтобы этого не происходило, конденсаторы динамической памяти необходимо периодически подзаряжать (такой процесс принято называть регенерацией ОЗУ). Оба вида запоминающих микросхем успешно конкурируют между собой, поскольку ни одна из них не является идеальной. С одной стороны, статическая память значительно проще в эксплуатации, т.к. не требует регенерации, и приближается по быстродействию к процессорным микросхемам. С другой стороны, она имеет меньший информационный объем и большую стоимость (в самом деле, изготовление конденсатора значительно проще, чем триггерной схемы и требует на кремниевой пластине гораздо меньше места), сильнее нагревается при работе. На практике в данный момент выбор микросхем для построения ОЗУ всегда решается в пользу динамической памяти. И все же быстродействующая статическая память в современном компьютере тоже обязательно есть: она называется кэш-памятью.
Этот вид памяти заслуживает отдельного рассмотрения. Он появился относительно недавно, но, начиная с 486 процессора, без кэш-памяти не обходится ни одна модель. Название кэш происходит от английского слова «cache», которое обозначает тайник или замаскированный склад (в частности, этим словом называют провиант, оставленный экспедицией для обратного пути или запас продуктов, например, зерна или меда, который животные создают на зиму). «Секретность» кэш заключается в том, что он невидим для пользователя и данные, хранящиеся там, недоступны для прикладного программного обеспечения. Процессор использует кэш исключительно самостоятельно, помещая туда извлеченные им из ОЗУ данные и команды программы и запоминая при этом в специальном каталоге адреса, откуда информация была извлечена. Если эти данные потребуются повторно, то уже не надо будет терять время на обращение к ОЗУ – их можно получить из кэш-памяти значительно быстрее. Поскольку объем кэш существенно меньше объема оперативной памяти, его контроллер (управляющая схема) тщательно следит за тем, какие данные следует сохранять в кэш, а какие заменять: удаляется та информация, которая используется реже или совсем не используется. Следует заметить, что кэш-память является очень эффективным средством повышения производительности компьютера, в чем легко убедиться на практике, если в вашем компьютере предусмотрена возможность отключения кэш.
В современных компьютерах кэш обычно строится по двухуровневой схеме. При этом первичный кэш встроен непосредственно внутрь процессора, а вторичный обычно устанавливается на системной плате. Как и для ОЗУ, увеличение объема кэш повышает эффективность работы компьютерной системы.
Операционная часть МП
Интерфейсная часть МП
Интерфейсная часть МП предназначена для связи и согласования МП системной шиной ПК, а также для приема, предварительного анализа команд выполняемой программы и формирования полных адресов операндов и команд. Интерфейсная часть включает в свой состав адресные регистры МПП, узел формирования адреса, блок регистров команд, являющийся буфером команд в МП, внутреннюю интерфейсную шину МП и схемы управления шиной и портами ввода-вывода.