|
Программная модель микропроцессора.Программная модель – это часть компьютера, оставленная видимой и доступной для программирования на Ассемблере, содержит 32 регистра, доступных в той или иной мере программисту. Регистры делятся на 2 большие группы, в каждой из которых по 16 регистров:
a. 8 32-битных регистров – РОНы. Туда входят ЕАХ, ЕВХ, ЕСХ, EDX, EBP, ESI, EDI, ESP. Первый регистр – аккумулятор, применяется для хранения промежуточных данных, его использование обязательно. Второй – базовый, применяется для хранения базового адреса некоторого объекта в памяти. Третий – счетчик, применяется в командах, производящих некоторые повторяющиеся действия, часто используется неявно и скрыто. Четвертый – регистр данных, хранит промежуточные данные, в некоторых командах используется обязательно и неявно. Шестой и седьмой – регистры для поддержки цепочечных операций, шестой – индекс источника, седьмой – индекс приемника. Пятый и восьмой – регистры для работы со стеком, восьмой – регистр указателя стека, содержит указатель вершины стека в текущем сегменте, пятый – регистр-указатель базы стека, предназначен для произвольного доступа к данным в стеке. b. 6 регистров сегментов – CS, DS, SS, ES, FS, GS. Первый – сегмент кода, содержит адрес сегмента программы, к которому имеет доступ микропроцессор. Второй – сегмент данных, содержит обрабатываемые данные. Третий – сегмент стека. Четвертый, пятый, шестой – дополнительные сегменты данных. c. 2 регистра флагов – Eflags, EIP. Первый – отдельные биты данного регистра имеют определенное функциональное назначение и называются флагами. Второй – содержит смещение относительно регистра входа. Их делят на 3 группы: i. Восемь флагов состояния – флаги определяют состояние по результатам арифметических и логических операций (CF – флаг переноса, ZF – флаг нуля, SF – флаг знака) ii. Флаг управления – DF определяет направление обработки цепочечной операции. iii. Пять системных флагов, управляющих вводом/выводом и отладкой.
23 марта 2012 г. Системы команд. Системы команд являются одной из важнейших архитектурных характеристик, определяет совокупность операций, реализуемых процессором. В понятие система команд входят форматы команд и обрабатываемых данных, список команд и их функциональное назначение, способы адресации к данным.
10 наиболее часто используемых команд.
CISC и RISC-процессоры характеризуются различными показателями производительности. Оба типа обеспечивают достижение максимальных показателей, используя свою систему команд. Для повышения производительности необходимо уменьшить либо число команд в программе (CISC) либо среднее время выполнения (RISC). CISC характеризуется следующим набором свойств:
Примерное количество команд – 100-200. RISC характеризуется следующим набором свойств:
Типичными представителями CISC является процессор на основе Х86 до Pentium 4. Однако процессоры, начиная с 486, являются CISC с ядром RISC. Расширения стандартного набора команд. Для организации групповой обработки данных в процессорах используется SIMD-расширения инструкций. Под этим расширением понимается программно-аппаратное решение, представляющее собой совокупность дополнительных регистров и наборов инструкций процессора, предназначенных для групповой обработки данных. Для использования этих расширений необходимо наличие соответствующего компилятора.
Архитектурные способы повышения производительности. Повышение производительности процессоров в большинстве случаев достигается за счет применения технологических и архитектурных решений. Технологические решения: технология производства ИС, повышение тактовой частоты, уменьшение проектной нормы. Архитектурные способы связаны с рядом направлений: оптимизация системы команд с учетом развития технологий программирования, использование методов и средств параллельной обработки данных. 1. конвейеризация – это естественное средство реализации параллелизма линейной последовательности команд. В процессоре команда разбивается на 5–6 ступеней, которые исполняются в различных блоках процессора. Каждый блок в цепочке осуществляет только один этап исполнения команды. Полная обработка команды занимает несколько тактов. Выборка (IF) – промежуточный буфер – дешифрация команды (ID)– промежуточный буфер – чтение операции (RD)– промежуточный буфер – исполнение операции (EX)– промежуточный буфер – запись результата (WB).
В ходе выполнения команда продвигается по конвейеру, освобождая ступень для следующей команды. Для хранения информации, передаваемой между ступенями, используются внутренние промежуточные буферы, которые обновляются после каждого такта. Благодаря конвейерной обработке обрабатывается несколько следующих друг за другом команд. Из принципа конвейера следует, что повышение производительности прямо пропорционально количеству ступеней. Однако существуют ситуации, при которых в процессе выполнения происходит временная остановка конвейера, которые называются конфликтами. Конфликты снижают производительность процессора и для уменьшения их отрицательного влияния разрабатывают специальные архитектурные решения. Существует 3 типа конфликтов:
При возникновении конфликта приходится прерывать работу конвейера на время, необходимое для устранения причин нарушения. В связи с этим есть еще дополнительные архитектурные особенности, позволяющие держать конвейер заполненным. Такие способы называются динамическим выполнением – метод, позволяющий процессору выполнять параллельно несколько команд и включающий в себя следующие элементы: предсказание множественного перехода, анализ потока команд, упреждающее выполнение. Суперскалярность вычислений. Означает, что на каждом этапе обрабатывается сразу несколько потоков инструкций. Современные процессоры способны запускать на исполнение не только ту команду, которая стоит на входе, но и следующие за ней. Внеочередное исполнение команд. Означает, что операции не обязаны выполняться в устройствах строго в том порядке, в котором определены в коде. Более поздние могут выполняться перед ранними, если не зависят от порождаемых результатов. Процессор должен лишь гарантировать, чтобы результаты внеочередного выполнения совпадали с результатами последовательного. Процессор, оснащенный механизмом параллельного исполнения, называется суперскалярным, однако не все суперскалярные процессоры поддерживали внеочередное исполнение. Все современные процессоры поддерживают обе особенности.
31 марта 2012 г. Предсказание перехода. Функция предсказания перехода позволяет процессору при высокоскоростном выполнении сохранять конвейер заполненным. Специальный модуль выборки декодирования, включенный в процессор, использует высокооптимизированный алгоритм предсказания, позволяющий предсказывать направление и результаты команд, выполняемых через несколько уровней ветвлений. Модуль имеет несколько различных стратегий предсказывания, он пытается предсказать, на какой участок кода укажет команда условного перехода еще до того, как она будет исполнена. В соответствии с указаниями блока предсказаний предсказанный участок кода загружается в кэш, и начинается его декодирование и выполнение. Причем среди выполняемых команд есть команды условного перехода, которые также предсказываются. Эффективность предсказания – 95–97%, но сейчас алгоритмы продолжают совершенствоваться. Эта эффективность обусловлена тем, что большинство переходов – циклы. Кроме предсказаний есть еще анализ потока данных. Используется для исследования потока данных, проходящих через процессор и выявление любых возможностей выполнения команд с изменением ранее заданной последовательности. Блок предвыборки данных похож на блок предсказания ветвлений, только анализирует не поток инструкций, а поток данных. Блок позволяет существенно сократить время доступа к нужным данным, тем самым компенсируя высокую латентность памяти. В случае ошибки неизбежны негативные последствия – загрузка ненужных данных с вытеснением возможно нужных и дополнительная нагрузка на контроллер памяти. 64-битные расширения. При переходе на эту архитектуру быстродействие не увеличилось в 2 раза. В некоторых случаях ускорение от её использования присутствует, если ПО ориентировано на 64-битную целочисленную арифметику. Операции с плавающей запятой – 80-битные, следовательно производительность не повышается. Основные изменения: появление команд для работы с 64-битными целыми числами, увеличение количества и разрядности регистров, увеличение максимального объема адресуемой памяти. Архитектура процессоров. Процессорное ядро – конкретное воплощение микроархитектуры, являющееся стандартом для целой серии процессоров. В микроархитектуру входят длина конвейера, разновидности КЭШа и другие общие принципы. Ядро – это воплощение микроархитектуры в кристалле, обладающее набором характеристик. Ревизия – модификация ядра, крайне незначительно отличающаяся от предыдущей. Частота работы ядра – как правило, каждое конкретное ядро может исполнять различное количество команд за один такт. Частота определяет количество тактов. В рамках одного и того же ядра увеличение частоты не всегда пропорционально увеличению производительности. Разные виды частот процессора делают процессоры, которые потом тестируют на частоту, то есть не существует процессора с точным, определенным значением показателя частоты. Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все... ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования... ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала... Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|