Аппаратные средства персональных компьютеров. Самоучитель
Шрифт:
Но все же реализованные именно в процессорах Pentium принципы обработки информации позволили к настоящему времени превратить обычный персональный компьютер в нечто большее, чем в простую машину для обработки цифр и текстов.
Наиболее интересное новшество, примененное в процессорах, – это использование механизма предсказаний (правда, не так, как это делают гадалки). Как должны выполняться компьютерные программы – шаг за шагом, инструкция за инструкцией. Точно так, как считают в первом классе два плюс два – к результату прибавим еще одно число.
Но ряд команд получают данные от внешней памяти и разнообразных
Обычно, по результатам выполнения таких "медленных" инструкций в программе делается выбор между несколькими возможностями: как бы решить – идти налево или направо. Вот тут и полезен механизм предсказания. Блок предсказаний предугадывает наиболее вероятное направление дальнейших вычислений. В том случае, если выбор был правильным, все выполненные к этому моменту команды будут считаться "правильными", и процессор продолжит дальнейшие вычисления. Если же предсказание было неверным – а это бывает примерно в 20 % случаев, – то процессору ничего не остается делать, как заново начать обрабатывать инструкции, идущие за такой командой.
В дальнейшем механизм предсказаний был дополнен возможностью выполнения команд не в том порядке, как они следуют в программе.
Такие особенности архитектуры процессоров Pentium (а также самых последних моделей 486) эффективно повышают производительность процессора, не требуя повышения тактовой частоты, т. е. рассматриваемый нами процессор с тактовой частотой 100 МГц будет работать так, как обычный процессор, работающий на частоте 130 или 170 МГц. (Обратите внимание, что механизм предсказаний в каждой последующей модели процессора Pentium совершенствуется, но тонкости технологий интересны, в основном, системным программистам).
Кроме того, для повышения производительности в процессорах Pentium была применена суперскалярная архитектура. Это громкое название говорит о том, что в процессоре имеются два параллельно работающих конвейера.
Начиная с 8086, процессор загружал "за раз" не одну инструкцию для выполнения, а несколько, помещая их в очередь – конвейер. Теперь один конвейер – "основной", или U-конвейер – остался аналогичен такому же, как у 486 процессора, а второй, V-конвейер – работает с сокращенным числом команд. То есть процессор Pentium может выполнять в один и тот же момент сразу две разные инструкции.
Следующая, наиболее отличительная особенность процессоров Pentium состоит в том, что шина данных у них 64-разрядная, хотя работают они с 32-разрядной арифметикой. Часто из-за этого их ошибочно относят к 64-разрядным процессорам, но на самом деле они принадлежат к семейству 32-разрядных процессоров. Только в процессоре Itanium разработчики корпорации Intel действительно полностью реализовали 64-разрядную архитектуру.
Удвоение разрядности шины данных позволяет ускорить работу с внешней оперативной памятью. Используя возможности 64-разрядной шины, можно за один такт считать или записать в память сразу несколько инструкций или 8-байтных данных. Правда, не всегда производительность компьютера возрастает в два раза, т. к. частенько важен лишь один байт данных
Кэш
В процессорах семейства Pentium, опять-таки для повышения производительности компьютера, серьезной доработке подвергся механизм кэширования оперативной памяти.
Тактовая частота ядра современных процессоров в настоящее время возросла в 1000 раз и превысила 2000 МГц, а вот частотные характеристики оперативной памяти сильно отстают. Например, модули дешевой динамической памяти работают на частоте всего 133 МГц.
Разрыв обозначился уже при появлении первых 16-разрядных процессоров. Микросхемы памяти, которые могли работать на той же скорости, что и процессор, оказались слишком дорогими для применения в персональных компьютерах. А дешевые микросхемы динамической памяти, которые позволяли хранить много данных, увы, не отличались быстродействием. Поэтому разработчики компьютеров использовали принцип организации памяти, который применяли в больших ЭВМ.
Так как процессор в каждый момент времени работает с ограниченным адресным пространством, то необходимые для текущей работы данные можно хранить в дорогостоящих, но быстрых микросхемах. Основная же память выполняется на медленных, но зато дешевых микросхемах, позволяющих хранить много данных. Поэтому процессор, используя такое разделение памяти, большую часть времени использует быструю память и обращается к основной только при необходимости. Такой вид быстродействующей памяти был назван кэшем (от англ. cache — склад, тайник).
Технология изготовления процессоров совершенствовалась. Возможности кэша, выполненного на отдельных микросхемах и расположенного на системной плате, были быстро исчерпаны. Для дальнейшего повышения производительности компьютера кэш решили разделить на две части – традиционный кэш на системной плате оставили неизменным, а на кристалле процессора организовали еще один кэш, который должен работать на тактовой частоте процессора. Такой принцип организации памяти был реализован в некоторых 386 процессорах, а, начиная с процессоров Intel 486, стал обязателен. Кэш, расположенный на кристалле процессора, получил название – первичный кэш (LI Cache) или внутренний кэш.
В дальнейшем, для эффективного использования 64-разрядной шины в семействе процессоров Pentium добавили еще два уровня – вторичный кэш L2 Cache и L3 Cache.
Кэширование памяти является "прозрачным" для программ и программистов, т. е. процессор и чипсет системной платы в большинстве случаев сами определяют необходимые данные, которые будут храниться в кэше. Кроме того, они следят за тем, чтобы данные в кэше и основной памяти соответствовали друг другу, т. к. к оперативной памяти может обращаться не только процессор, но и внешние устройства.
Механизм кэширования в каждом из последующих типов процессоров Pentium подвергался серьезной доработке. Фактически, в современных процессорах на кристалле вместе с блоками обработки данных расположена внутренняя оперативная память – кэш, которая по своим размерам превосходит объем всей памяти (ОЗУ, винчестер), которой когда-то оперировал компьютер с процессором 386. Следует заметить, что размер первичного кэша чаще всего бывает равен 8, 16 или 32 Кбайт, а вторичного – 256 или 512 Кбайт. Хотя, например, в некоторых процессорах вторичный кэш может достигать и 1 Мбайт или вообще отсутствовать. У новейших процессоров внешний кэш не применяется.