Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Программная модель микропроцессора.





Программная модель – это часть компьютера, оставленная видимой и доступной для программирования на Ассемблере, содержит 32 регистра, доступных в той или иной мере программисту. Регистры делятся на 2 большие группы, в каждой из которых по 16 регистров:

  1. пользовательские – программист использует их при написании своих программ. Они делятся на 3 группы:

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. Пять системных флагов, управляющих вводом/выводом и отладкой.

  1. системные

 

23 марта 2012 г.

Системы команд.

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

  1. процессоры с RISC-архитектурой – процессоры с сокращенным набором команд
  2. процессоры с CISC-архитектурой – процессоры со сложным набором команд.

10 наиболее часто используемых команд.

  1. чтение данных (22%)
  2. условные переходы (20%)
  3. сравнение (16%)
  4. запись данных (12%)
  5. сложение (8%)
  6. логическое И (6%)
  7. вычитание (5%)
  8. пересылка регистр в регистр (4%)
  9. вызов подпрограмм (1%)
  10. возврат в подпрограммы (1%).

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

CISC характеризуется следующим набором свойств:

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

Примерное количество команд – 100-200.

RISC характеризуется следующим набором свойств:

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

Типичными представителями CISC является процессор на основе Х86 до Pentium 4. Однако процессоры, начиная с 486, являются CISC с ядром RISC.

Расширения стандартного набора команд.

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

  1. технология MMX – предназначена для поддержки приложений, ориентированных на обработку больших массивов данных целого типа, над которыми выполняются одинаковые операции (для обработки мультимедиа, потоков сетевых данных). Система команд ММХ содержит 57 инструкций и 4 новых типа данных и 8 ММХ-регистров по 64 бита каждый. Позволяет обрабатывать данные по 1, 2, 4 и 8 пакета.
  2. SSE, SSE-2, SSE-3 – обновление технологии ММХ, оперирующие данными вещественного типа для геометрических расчетов в трехмерных приложениях. Инструкции содержат 70 новых команд (144 – для SSE-2). SSE-3 признано облегчить оптимизацию программ под SSE и SSE-2.
  3. 3DNow – аналогично предыдущим, предназначена для ускорения обработки мультимедиа и трехмерной графики. Представляет собой набор из 21 инструкции, используется в AMD.

Архитектурные способы повышения производительности.

Повышение производительности процессоров в большинстве случаев достигается за счет применения технологических и архитектурных решений. Технологические решения: технология производства ИС, повышение тактовой частоты, уменьшение проектной нормы. Архитектурные способы связаны с рядом направлений: оптимизация системы команд с учетом развития технологий программирования, использование методов и средств параллельной обработки данных.

1. конвейеризация – это естественное средство реализации параллелизма линейной последовательности команд. В процессоре команда разбивается на 5–6 ступеней, которые исполняются в различных блоках процессора. Каждый блок в цепочке осуществляет только один этап исполнения команды. Полная обработка команды занимает несколько тактов. Выборка (IF) – промежуточный буфер – дешифрация команды (ID)– промежуточный буфер – чтение операции (RD)– промежуточный буфер – исполнение операции (EX)– промежуточный буфер – запись результата (WB).

                     
Команда1 IF ID RD EX WB          
Команда2   IF ID RD EX WB        
Команда3     IF ID RD EX WB      
Команда4       IF ID RD EX WB    
Команда5         IF ID RD EX WB  
Команда6           IF ID RD EX WB

В ходе выполнения команда продвигается по конвейеру, освобождая ступень для следующей команды. Для хранения информации, передаваемой между ступенями, используются внутренние промежуточные буферы, которые обновляются после каждого такта. Благодаря конвейерной обработке обрабатывается несколько следующих друг за другом команд. Из принципа конвейера следует, что повышение производительности прямо пропорционально количеству ступеней. Однако существуют ситуации, при которых в процессе выполнения происходит временная остановка конвейера, которые называются конфликтами. Конфликты снижают производительность процессора и для уменьшения их отрицательного влияния разрабатывают специальные архитектурные решения. Существует 3 типа конфликтов:

  • Конфликты по ресурсам возникают, когда нескольким командам, находящимся на разных ступенях конвейера требуется использование одного и того же ресурса, например, памяти.
  • Конфликт по данным – ситуация, когда или исходный операнд или результат недоступны в положенное время.
  • Конфликт по управлению возникает при конвейеризации команд условного перехода и других ситуациях, приводящих к изменению значения счетчика команд.

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

Суперскалярность вычислений.

Означает, что на каждом этапе обрабатывается сразу несколько потоков инструкций. Современные процессоры способны запускать на исполнение не только ту команду, которая стоит на входе, но и следующие за ней.

Внеочередное исполнение команд.

Означает, что операции не обязаны выполняться в устройствах строго в том порядке, в котором определены в коде. Более поздние могут выполняться перед ранними, если не зависят от порождаемых результатов. Процессор должен лишь гарантировать, чтобы результаты внеочередного выполнения совпадали с результатами последовательного.

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

 

31 марта 2012 г.

Предсказание перехода.

Функция предсказания перехода позволяет процессору при высокоскоростном выполнении сохранять конвейер заполненным. Специальный модуль выборки декодирования, включенный в процессор, использует высокооптимизированный алгоритм предсказания, позволяющий предсказывать направление и результаты команд, выполняемых через несколько уровней ветвлений. Модуль имеет несколько различных стратегий предсказывания, он пытается предсказать, на какой участок кода укажет команда условного перехода еще до того, как она будет исполнена. В соответствии с указаниями блока предсказаний предсказанный участок кода загружается в кэш, и начинается его декодирование и выполнение. Причем среди выполняемых команд есть команды условного перехода, которые также предсказываются. Эффективность предсказания – 95–97%, но сейчас алгоритмы продолжают совершенствоваться. Эта эффективность обусловлена тем, что большинство переходов – циклы.

Кроме предсказаний есть еще анализ потока данных. Используется для исследования потока данных, проходящих через процессор и выявление любых возможностей выполнения команд с изменением ранее заданной последовательности. Блок предвыборки данных похож на блок предсказания ветвлений, только анализирует не поток инструкций, а поток данных. Блок позволяет существенно сократить время доступа к нужным данным, тем самым компенсируя высокую латентность памяти. В случае ошибки неизбежны негативные последствия – загрузка ненужных данных с вытеснением возможно нужных и дополнительная нагрузка на контроллер памяти.

64-битные расширения.

При переходе на эту архитектуру быстродействие не увеличилось в 2 раза. В некоторых случаях ускорение от её использования присутствует, если ПО ориентировано на 64-битную целочисленную арифметику. Операции с плавающей запятой – 80-битные, следовательно производительность не повышается. Основные изменения: появление команд для работы с 64-битными целыми числами, увеличение количества и разрядности регистров, увеличение максимального объема адресуемой памяти.

Архитектура процессоров.

Процессорное ядро – конкретное воплощение микроархитектуры, являющееся стандартом для целой серии процессоров. В микроархитектуру входят длина конвейера, разновидности КЭШа и другие общие принципы.

Ядро – это воплощение микроархитектуры в кристалле, обладающее набором характеристик.

Ревизия – модификация ядра, крайне незначительно отличающаяся от предыдущей.

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







Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...

Что способствует осуществлению желаний? Стопроцентная, непоколебимая уверенность в своем...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.