С целью тестирования процессора компаниями AMD, Cyrix и другими используются специальные программы для сравнения с производительностью процессоров Pentium. Основой для тестирования выбраны несколько категорий программ, которые являются базами данных, текстовыми редакторами, электронными таблицами и издательскими системами. В соответствии с этим тестом назначаются и индексы для процессоров вышеуказанных компаний.

Дополнительные сведения о работе центрального процессора

Команды процессора. Центральный процессор выполняет команды, число которых не превышает двух сотен. Основными из них являются простейшие арифметические команды, которые выполняются над данными, находящимися в регистрах. Регистр - это область памяти, расположенная в центральном процессоре и имеющая довольно небольшую емкость: до нескольких байт, в зависимости от типа процессора. Так как центральный процессор выполняет арифметические операции в регистрах, то часто используются команды пересылки данных из оперативной памяти в регистры и обратно. Чтобы сложить два числа, которые находятся в оперативной памяти, необходимо сначала переслать их в регистры, затем выполнить операцию сложения, а потом переслать в оперативную память. Кроме того, может встретиться переполнение при сложении чисел и возникает, когда результат не помещается в выделенный для него регистр, и вызывается программа обработки данной ошибки. То есть для одной операции может возникнуть необходимость выполнения сразу нескольких операций. Так как процессор имеет большую производительность, то эти операции выполняются очень быстро. Когда сообщается, что процессор может работать с частотой 400 мегагерц, то это не означает, что он выполнит 400 миллионов арифметических операций в секунду. Во-первых, для одной операции сложения могут потребоваться дополнительные команды, например, пересылки, и, во-вторых, не все команды выполняются за один такт, некоторые сложные команды могут потребовать для выполнения несколько тактов и, в-третьих, при большом количестве операций ввода-вывода, то есть пересылки данных по системной шине, процессор, послав запрос на данное из оперативной памяти, может простаивать до тех пор, пока шина не освободится.

НЕ нашли? Не то? Что вы ищете?

Для сложения чисел имеется несколько разных видов команд, каждая из которых работает с определенными видами данных в зависимости от их длины и вида (двоичное, десятичное, упакованное и пр.). В результате, хотя команд много, существует достаточно небольшое количество групп команд, которые довольно легко систематизируются.

Кроме указанных, существуют команды переходов для передачи управления команде, которая находится в другом месте программы (памяти). Существуют условные и безусловные переходы, то есть переход при условии, что что-то выполнено, например, счетчик достиг определенного значения, или без всяких условий.

Существуют и другие команды, например, циклический сдвиг разрядов числа, пустой оператор и пр., которые используются довольно редко по сравнению с вышеуказанными командами. Команды для центрального процессора имеют размер от 1 до 11 байт, в среднем 4-5 байт.

Разобраться с командами при программировании довольно просто, основной трудностью является знание параметров системных таблиц и стандартных функций, прерываний, которых довольно много и не все они описаны. Чтобы упростить написание программ, используются языки программирования высокого уровня, в которых один оператор представляет собой довольно большое число машинных команд.

Принцип построения центрального процессора основан на обратной совместимости процессоров. Это означает, что все программы, которые работали на текущем компьютере, будут работать и в следующем поколении процессоров. То есть программы для 8086 будут работать и на современном процессоре Pentium. Однако это означает и то, что недостатки, которые имелись в более ранних центральных процессорах, будут присутствовали и в последующих моделях. Так, основным недостатком является принцип деления оперативной памяти на обычную и расширенную, метод сегмент:сектор, размещение числовых данных, при котором вначале находится младшее значение, потом старшее, и т. д..

Принципиальными отличиями с точки зрения математического обеспечения, связанным с введением новых режимов работы, характеризовались три первые вида процессоров: 8086 (когда он появился), 80286 (введен защищенный режим с адресацией до 16 мегабайт) и 80386 (введен принцип постраничного обмена для виртуальной памяти, увеличена адресация защищенного режима до 4 Гигабайт). Остальные виды процессоров имели повышенную разрядность для обработки данных, увеличенную кэш-память, повышенную производительность и новые наборы команд, которые убыстряют работу мультимедийных программ за счет того, что позволяют одновременно обрабатывать несколько данных (ММХ, 3DNow!). То есть программа, которая работает с Pentium III, будет работать и с 386 процессором, только очень медленно.

Здесь, конечно, можно задать вопрос: каким образом это происходит, ведь программа может использовать какой-либо из существующих дополнительных наборов команд (например, ММХ), а 386 процессор их не поддерживает. Все очень просто. Когда программа начинает выполняться, то она проверяет, может ли производиться работа с дополнительным набором команд на данном виде процессора. Если может, то будет работать один вид подпрограмм, если нет, то другой вид, то есть, если процессор не поддерживает определенный набор команд, то программа это определит и все равно будет работать, но медленнее, чем если бы имелись дополнительные наборы команд.

Центральный процессор может работать в разных режимах. Рассмотрим их подробнее.

В первых моделях процессора х86 использовался реальный режим для работы с оперативной памятью, при котором физический адрес формировался как сумма двух чисел: базовый*16+смещение, где базовый адрес указывал на начало в области памяти, куда загружается программа, а смещение - на смещение относительно начала программы.

В первых компьютерах для адресации памяти использовался один байт, что позволяло производить адресацию в 64 Кб памяти, и поначалу оказалось, что это очень много для персональных компьютеров. Однако этого пространства скоро стало не хватать и возникла необходимость перехода к другой схеме адресации. Вполне понятно, что лучшим решением был бы вариант перехода на адресацию при помощи 16 разрядов (2-х байт). Это позволило бы адресовать 2 16 = 4 гигабайт оперативной памяти, что было бы вполне достаточно и для современных компьютеров. Однако, чтобы перевести программы, работавшие в среде СР/М, был реализован другой подход, который вычисляет адрес по формуле сегмент*16+смещение.

Таким образом, загрузив программу по произвольному адресу и переслав этот адрес в базовый регистр, программа сможет выполняться в любом месте оперативной памяти, то есть базовый указывает на начало программы, а смещение - на смещение относительно начала программы или относительно базового адреса, что одно и то же. При этом пара чисел база:сегмент называется логическим адресом.

Поясним смысл этого более подробно. Область оперативной памяти может быть разбита на сегменты по 64 Кбайт каждый. Так как для адреса использовалось 2 байта (16 бит), то можно адресовать до 64 Кбайт памяти (216 = 64 Кбайт). Для адресации более 64 Кбайт используется два адреса по два байта. При этом первый называется базовым, а второй - смещением. Базовый адрес может принимать максимальное значение 16*216 = 1 Мегабайт, а сам адрес вычисляется по формуле: базовый адрес*16 + смещение. Таким образом, можно адресовать 1 Мбайт памяти, то есть в реальном режиме можно работать только с одним мегабайтом памяти. Это ограничение остается справедливым для реального режима и для современных компьютеров. Начало области является базовым адресом, местоположение данных в сегменте определяется смещением относительно начала сегмента. Это сегментированный адрес.

Начиная с серии 286 компьютеров, процессор может перейти в защищенный режим памяти. В этом режиме используется адресация виртуальной памяти. При этом, когда задан адрес в программе, то для вычисления физического адреса в памяти используются специальные таблицы (таблицы дескрипторов), которые содержат строки с указанием начала, длины области данных, права доступа. Каждая строка соответствует одной области, которая может достигать от 1 байта до 4 гигабайт. При помощи этих таблиц вычисляется физический адрес, после чего по нему происходит обращение к данным. Все эти вычисления производятся внутри центрального процессора по заложенным разработчиком алгоритмам, программист же часто даже не знает, как это реализовано. Для него важно указать адрес данного и получить возможность работать с данными. Адрес указывается при помощи двух чисел – селектор:смещение, которое называется линейным адресом, причем смещение указывает на смещение относительно начала области, указанной селектором.

Защищенный режим 386 процессора имеет те же принципы функционирования, что и в 286, но несколько другие значения в таблице дескрипторов и другой размер чисел в таблице. Кроме этого, введен виртуальный режим, в котором могут работать несколько программ одновременно, причем каждая программа как бы работает в реальном режиме и написана для реального режима работы.

Преимуществом этого метода является возможность организации параллельной работы нескольких задач, каждая из которых действует в своей области памяти и при обращении программы к данным другой задачи процессор это отслеживает. В записи селектор:смещение, смещение может иметь 32 разряда. Если программа использует 32-разрядный формат, то принято говорить о 32-разрядном приложении, если 16 разрядов - то это 16-разрядное приложение.

При работе с несколькими программами в защищенном режиме имеется средство переключения задач, при котором состояние каждой задачи (то есть значение всех регистров) сохраняется в специальном сегменте состояния задач (TSS), на который указывает селектор в регистре задач. Для переключения задач нужно изменить селектор в регистре задач, и автоматически значения регистров старой задачи сохраняются, а новой - восстановятся.

Кроме того, в 386 процессорах реализован механизм страничной памяти. Причина, по которой она введена, заключается в том, что программа может использовать только один мегабайт памяти. Для использования памяти сверх первого мегабайта как раз и предназначен этот режим, при котором в верхней части первого мегабайта устанавливается буфер, в который копируются данные из области свыше первого мегабайта. При данном методе используется 32-разрядная адресация, состоящая из трех частей. Первые 10 бит используются в каталоге таблицы для выбора номера таблицы страниц, далее 10 бит указывают на номер в таблице страниц и 12 бит - на смещение относительно найденной страницы. Все эти методы организованы на аппаратном уровне и программе не обязательно знать, как организованы таблицы и где они находятся, надлежит указывать только линейный адрес.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12