Автоматизация работы процессора
(основной алгоритм работы процессора)
Команды машинной программы располагаются в ячейках памяти последовательно друг за другом, так же как последовательно они выполняются. Чтобы обеспечить автоматический переход от исполнения одной команды к исполнению следующей, используется специальный регистр собственной памяти процессора - счетчик команд(СК). В нем находится адрес ячейки, хранящей команду, которую надо выполнить следующей.
В каждый момент процессор выполняет одну команду программы, адрес которой хранится в специальном регистре собственной памяти процессора – счетчике команд. (Принцип архитектуры Неймана)
Действия процессора по выполнению каждой отдельной команды (основной алгоритм его работы) таковы:
1. читать адрес из счетчика команд;
2. читать слово (содержащее команду) по этому адресу;
3. читать счетчик команд;
4. выполнить команду, записанную в прочитанном слове.
Заметим, что выполняя пункт 3, процессор автоматически увеличивает содержимое счетчика команд на 1, 2 или ; в зависимости от типа процессора. Увеличение счетчика команд на заданное число ведет к автоматическому появлению в нем адреса следующей ячейки памяти, где и хранится следующая команда – вот почему команды программы располагаются в ячейках памяти одна за другой.
Но таким образом можно исполнять автоматически только линейные алгоритмы. Для реализации циклов и ветвлений используются специальные команды процессора, исполнение которых определенным образом меняет содержимое счетчика команд.
Процессор ЭВМ содержит в своем составе несколько основных устройств (блоков):
♦ Арифметико-логическое устройство. В зависимости от количества и сложности выполняемых АЛУ команд процессоры подразделяются на архитектуры CISC (большое количество сравнительно сложных и длительных по времени выполнения команд) и RISC (малое число очень простых и поэтому быстро выполняемых команд). Современные процессоры часто имеют смешанный набор команд, включающий в себя и CISC- и RISC-команды.
Количество бит данных, обрабатываемых в АЛУ одной командой, называется разрядностью процессора. В настоящее время наибольшее распространения имеют 32-х и 64-х разрядные микропроцессоры.
♦ Блок регистров. Регистр - это сверхбыстродействующая ячейка памяти, находящаяся внутри процессора и предназначенная для временного хранения одного или нескольких байт (в зависимости от разрядности регистра) информации в качестве обрабатываемых в АЛУ данных или для собственных нужд процессора.
Различают регистры общего назначения (РОН), которые служат источником данных и приемником результата при выполнении команды в АЛУ и могут изменяться программным путем и специальные регистры, предназначенные для обеспечения работы процессора (например, регистр состояния процессора, регистр команд, регистр дескриптора сегментов памяти), многие из которых недоступны программным методом.
Современные процессоры имеют до нескольких десятков РОН и специальных регистров.
♦ Устройство управления - обеспечивает согласованное и целенаправленное функционирование всех блоков процессора по выполнению программы.
♦ Блок управления памятьюзанимается выборкой из памяти и записью в ячейки памяти информации, требующейся процессору для выполнения программы. Информация такого рода бывает двух видов - команды и данные, которые хранятся вместе в памяти, но при выборке процессором попадают в разные блоки: команды - в специальные регистры, а данные - в РОНы и АЛУ. Поскольку все современные компьютеры снабжены кэш-памятью, то на блок управления памятью возлагается задача незаметно для выполняемой программы (и без заметных задержек) копировать информацию из кэш-памяти в ОЗУ и наоборот.
♦ Блок операций с плавающей точкой служит для быстрого выполнения математических операций с вещественными числами.
К математическим операциям относятся не только все арифметические (сложение, вычитание, умножение и деление), но и некоторые функциональные вычисления (извлечение корня, логарифмирование, нахождения тангенса и т.п.) Вычисления с плавающей точкой интенсивно используются для создания трехмерной графики, в динамичных играх, инженерных расчетах, при моделировании физических процессов. В отличие от АЛУ, блок операций с плавающей точкой выполняет расчеты значительно быстрее и с большей разрядностью (точность до 18-20 значащих десятичных цифр).
Первоначально микропроцессоры не имели в своем составе такого блока, но предусматривали совместную работу с отдельно устанавливаемой микросхемой арифметического сопроцессора. Начиная с процессора i80486DX все Intel-совместимые микропроцессоры имеют встроенный блок операций с плавающей точкой.
♦ Кэш-память (Cash) - быстродействующая память сравнительно небольшой ёмкости, предназначенная для ускорения обращения процессора к оперативной памяти. В кэш-память помещаются данные икоманды, которые в данный момент требуются процессору, а также те, к которым возможно обращение в ближайшем будущем. В кэш-памяти хранятся команды и данные, используемые микропроцессором в текущий момент времени. Обращения к кэш-памяти производятся значительно быстрее, чем к ОЗУ и тем более к ПЗУ. В современных ПК на микропроцессорах типа Pentium Pro, Pentium II, Celeron, Pentium III, Pentium IV, AMD Duron, Athlon кэш-память-размещена в одном корпусе с ядром процессора, в более старых компьютерах - на системной плате.
При записи данных сначала заполняется кэш, а затем информация переносится в ОЗУ. Вся работа с кэш-памятью производится автоматически блоком управления памятью независимо от выполняющейся программы, то есть «прозрачно». Имеется два уровня кэш-памяти: первый (level-1, L1) и второй (level-2, L2). Кэш 1-го уровня расположен на кристалле процессора ислужит промежуточным буфером для данных и команд между регистрами процессора икэшем 2-го уровня. Кэш-память 2-го уровня располагалась в процессорах прежних разработок (до Pentium Pro иPentium II) на системной плате, а в современных процессорах непосредственно на его кристалле (что значительно увеличивает быстродействие). Объем кэш-памяти L1 обычно 16-32 кбайт, L2 в десятки раз больше, но несколько медленнее 128-512 кбайт (в самых производительных процессорах до 2 Мбайт). Объём ибыстродействие кэш-памяти очень сильно влияет на производительность процессора и являются наряду с тактовой частотой его основной характеристикой.
♦ Различные расширения процессора используются для быстрого выполнения операций со специфическими данными. Например, набор дополнительных команд ММХ (и дальнейшее его расширение SIMD в Pentium II и более новых процессорах) позволяет одной командой обрабатывать сразу несколько байт данных (например, сложение нескольких пар значений с ограничением по величине сверху или вычисление скалярного произведения векторов).
Такие операции часто возникают при обработке звуковой играфической информации (в совокупности называемой мультимедийной). Другое популярное расширение 3D Now! (в процессорах AMD) обеспечивает высокопроизводительную обработку трехмерной графики. Следует, однако, учесть, что преимущества в производительности можно получить, только используя специально разработанное для этого расширения программное обеспечение (в основном игры). В противном случае дополнительные функции процессора использоваться не будут.
Память
Памятью ЭВМ называется устройство для хранения информации,представленной в цифровом коде. Информация в памяти может быть изменена и прочитана процессором и некоторыми периферийными устройствами.
Перейдем теперь к описанию основных характеристик внутренней памяти компьютера. В составе памяти компьютера различают внутреннюю (основную) память и внешнюю память. Можно выделить также собственную память процессора (регистры памяти процессора).
Память первых ЭВМ была реализована на электронных лампах, магнитных (ферритовых) кольцах, магнитных барабанах, магнитных лентах и даже электронно-лучевых трубках. Затем на смену электронным лампам пришли транзисторы, а потом микромодули и микросхемы. Внешняя память ЭВМ первых поколений представляла собой накопители на перфокартах и перфолентах - затем на магнитных лентах и магнитных дисках большого диаметра. В настоящее время внутренняя память представляет собой большие интегральные микросхемы (БИС), а внешняя - компактные накопители на магнитных и оптических дисках, картриджах с магнитной лентой.
Оперативная постоянная (ОЗУ), информацию в которой можно постоянно изменять, и которая стирается при выключении компьютера; и постоянная (ПЗУ), информация в которой записывается изготовителем ЭВМ, сохраняется в выключенном состоянии, но её невозможно (либо трудоёмко) изменять в процессе эксплуатации. Объём ОЗУ современных персональных компьютеров составляет от нескольких сотен мегабайт (128-512).
Постоянная память (ПЗУ) содержит программы, автоматически выполняемые при включении компьютера и обеспечивающие его начальную загрузку, настройку конфигурации, самотестирование и запуск операционной системы. Располагается ПЗУ в микросхеме Flash-памяти на системной плате.
Внутренняя память обладает очень высоким быстродействием по сравнению с другими видами памяти, но гораздо медленнее регистров микропроцессора, поэтому для повышения производительности компьютера между процессором и ОЗУ ставят быстродействующую Cash-память небольшого объема (до 2 Мбайт).
В современных компьютерах используется энергонезависимая Flash-память (флэш), сочетающая достоинства и ОЗУ и ПЗУ. Информация во флэш-памяти сохраняется при выключении питания, но допускает перезапись. Недостатками модулей флэш-памяти являются меньшее быстродействие по сравнению с ОЗУ, небольшой объём и сравнительно высокая стоимость, а также возможность некоторым вирусам разрушать содержимое ПЗУ. Флэш-память в настоящее время часто применяется в качестве перезаписываемого ПЗУ. Также большое распространение флэш-память получила в сменных устройствах хранения информации небольшой ёмкости - флэш-картах .
Конструктивно, внутренняя память представляет собой микросхему (чаше несколько микросхем). Каковы бы ни были физические принципы работы элементов внутренней памяти и технические особенности конструкции - а на различных этапах развития вычислительной техники они были разными равное в том, что элемент памяти может находиться в двух устойчивых состояниях, т.е. хранить либо 0, либо 1. При этом его состояние может быть легко изменено в результате внешнего воздействия (поступившего сигнала).
Главным достоинством внутренней памяти является быстрый доступ к хранимой информации за счет быстрого поиска и быстрого обмена сигналами с процессором. Это достигается не только за счет технического совершенства элементов памяти, но и за счет особенностей ее структурной организации.
В соответствии с принципами архитектуры фон Неймана память обладает двумя свойствами: дискретностью и адресуемостью.
Дискретность означает, что память состоит из отдельных частиц, наименьшей из которых является 1 бит - участок памяти для хранения одного двоичного разряда (двоичной цифры). Биты объединены в группы, каждая из которых обрабатывается как единое целое. Такая группа называется байт. Один или несколько байт образуют ячейку памяти.
Байты внутренней памяти. Байты внутренней памяти пронумерованы, нумерация начинается с нуля. Номер байта называется его адресом. Такое свойство, памяти называется адресуемостью и способствует, быстрому поиску, информации. Его можно сформулировать так:
вся память разбита на ячейки, и каждой ячейке присвоен адрес.
В качестве адреса ячейки берется адрес младшего байта (байта с наименьшим адресом, входящего в состав ячейки). Именно по адресу процессор находит нужную для обработки информацию при обращении к внутренней памяти.
Содержимое ячейки доступно для обработки одной командой и называется машинное слово. Длина машинного слова может быть различной, т.к. биты группируются в более крупные блоки информации.
Первоначально она составляла 8 бит (1байт). Тогда термины «ячейка», «байт», «слово» имели примерно одинаковый смысл. В современных компьютерах длина машинного слова составляет 2 байта (16 бит), т.е. удвоенное слово, и даже 4 байта (32 бита) — учетверенное слово. Таким образом, адреса ячеек изменяются, начиная с нуля, через 1, 2 или 4 (в зависимости от длины машинного слова).
От процессора к памяти и обратно информация передается целыми машинными словами. Именно между pегистрами собственной памяти процессора и ячейками внутренней памяти и происходит обмен информацией.
Важной характеристикой памяти является время доступа, или быстродействие памяти. Этот параметр определяется временем выполнения операций записи или считывания данных; он зависит от принципа действия и технологии изготовления запоминающих элементов.
Оставляя в стороне целый ряд других технологических характеристик современных запоминающих устройств, нельзя тем не менее пройти мимо статического и динамического устройств микросхем памяти.
Статическая ячейка памяти — это специальная полупроводниковая схема (инженеры называют ее триггером), обладающая двумя устойчивыми состояниями. Одно из них принимается за логический ноль, а другое — за единицу. Состояния эти действительно настолько устойчивы, что при отсутствии внешних воздействий (и, конечно, подключенном напряжении питания!) могут сохраняться сколь угодно долго.
Динамические ячейки памяти, напротив, не обладают этим свойством. Такие ячейки фактически представляют собой конденсатор, образованный элементами полупроводниковых микросхем. С некоторым упрощением можно сказать, что логической единице соответствует заряженный конденсатор, а нулю - незаряженный. Существенным свойством динамической ячейки памяти является наличие постепенного самопроизвольного разряда конденсатора через внешние схемы, что ведет к потере информации. Чтобы этого не происходило, конденсаторы динамической памяти необходимо периодически подзаряжать (такой процесс принято называть регенерацией ОЗУ).
Оба вида запоминающих микросхем успешно конкурируют между собой, поскольку ни одна из них не является идеальной. С одной стороны, статическая память значительно проще в эксплуатации, так как не требует регенерации и приближается по быстродействию к процессорным микросхемам. С другой стороны, она имеет меньший информационный объем и большую стоимость (в самом деле, изготовление конденсатора значительно проще изготовления триггерной схемы, кроме того, конденсатор требует на кремниевой пластине гораздо меньше места), сильнее нагревается при работе. На практике в данный момент выбор микросхем для построения ОЗУ всегда решается в пользу динамической памяти. И все же быстродействующая статическая память в современном компьютере тоже обязательно есть. Она называется кэш-памятью.
Этот вид памяти заслуживает отдельного рассмотрения. Он появился относительно недавно, но, начиная с 486-го процессора, без кэш-памяти не обходится ни одна модель. Название "кэш" происходит от английского слова cache, которое означает тайник или замаскированный склад (в частности, этим словом называют провиант, оставленный экспедицией для обратного пути, или запас продуктов, например, зерна или меда, который животные создают на зиму). "Секретность" кэша заключается в том, что он невидим для пользователя и данные, хранящиеся там, недоступны для прикладного программного обеспечения. Процессор использует кэш, помещая туда извлеченные им из ОЗУ данные и команды программы и запоминая при этом в специальном каталоге адреса, откуда информация была извлечена. Если эти данные потребуются повторно, то уже не надо будет терять времени на обращение к ОЗУ - их можно получить из кэш-памяти значительно быстрее. Поскольку объем кэша существенно меньше объема оперативной памяти, его контроллер (управляющая схема) тщательно следит за тем, какие данные следует сохранять в кэше, а какие заменять: удаляется та информации которая пользуетося реже или совсем не используется. Следует заметить, что кэш-память является очень эффективным средством повышения производительности компьютера, в чем легко убедиться на практике, если в вашем компьютере предусмотрена возможность отключения кэша.
В современных компьютерах кэш обычно строится по двухуровневой схеме. При этом первичный кэш встроен непосредственно внутрь процессора, а вторичный обычно устанавливается на системной плате. Как и для ОЗУ, увеличение объема кэша повышает эффективность работы компьютерной системы.