Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1212122.docx
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
939 Кб
Скачать
☆
  1. Кэширование в микропроцессорах. Кэш прямого отображения и наборно-ассоциативный. Кэш микропроцессора — кэш (сверхоперативная память), используемый микропроцессором компьютера для уменьшения среднего времени доступа к компьютерной памяти. Является одним из верхних уровней иерархии памяти. Кэш использует небольшую, очень быструю память (обычно типа SRAM), которая хранит копии часто используемых данных из основной памяти. Если большая часть запросов в память будет обрабатываться кэшем, средняя задержка обращения к памяти будет приближаться к задержкам работы кэша. Большинство современных микропроцессоров для компьютеров и серверов имеют как минимум три независимых кэша: кэш инструкций для ускорения загрузки машинного кода, кэш данных для ускорения чтения и записи данных, и буфер ассоциативной трансляции (TLB) для ускорения трансляции виртуальных (математических) адресов в физические, как для инструкций, так и для данных. Кэш данных часто реализуется в виде многоуровневого кэша (L1, L2, L3). Простейшим кэшем является виртуально индексируемый кэш прямого отображения. Виртуальный адрес подсчитывается при помощи сумматора, соответствующая часть адреса выделяется и используется для индексирования SRAM, который вернет загружаемые данные. Данные могут быть выровнены по байтовым границам в байтовом сдвиге и затем переданы следующей операции. При таком чтении не требуется какая-либо проверка тегов, фактически, нет даже необходимости считывать тег. На более поздних стадиях конвейера, перед окончанием исполнения инструкции чтения потребуется чтение тега и его сравнение с виртуальным адресом, чтобы удостовериться, что произошло попадание в кэш. Если же был промах, потребуется чтение из памяти либо более медленного кэша с дальнейшим обновлением рассматриваемого кэша и перезапуском конвейера. Ассоциативный кэш более сложен, потому что некоторый вариант тега нужно считать для определения, какую часть кэша выбрать. Кэш N-way set-associative первого уровня обычно считывает одновременно все N возможных тегов и N данных параллельно, затем проводит сравнение тегов с адресом и выбор данных, ассоциированных с совпавшим тегом. Кэши 2го уровня в целях экономии энерговыделения иногда выполняют сначала чтение тегов, и только затем чтение одного элемента данных из SRAM данных. В порядке ухудшения (увеличения длительности проверки на попадание) и улучшения (уменьшения количества промахов): кэш прямого отображения (direct mapped cache) - наилучшее время попадания, и, соответственно, лучший вариант для больших кэшей; 2-х канальный множественно-ассоциативный кэш 2-way set associative cache; 2-х канальный skewed ассоциативный кэш ( «the best tradeoff for …. caches whose sizes are in the range 4K-8K bytes» — André Seznec); 4-х канальный множественно-ассоциативный кэш (4-way set associative cache); полностью ассоциативный кэш, fully associative cache — наилучший (самый низкий) процент промахов (miss rate), и лучший вариант при чрезвычайно высоких затратах при промахе (miss penalty).

  2. Особенности архитектуры современных микропроцессоров. Конвейерная и суперскалярная обработка.

«архитектура современных CPU» — это некий набор свойств, присущий целому семейству процессоров, как правило, выпускаемому в течение многих лет (иначе говоря — «внутренняя конструкция», «организация» этих процессоров). Так, например, любой специалист по x86 CPU скажет, что процессор с ALU, работающими на удвоенной частоте, QDR-шиной, Trace cache, и, возможно, поддержкой технологии Hyper-Threading — это «процессор архитектуры NetBurst.

Особенности архитектуры: Достаточно сложно дать однозначное определение данного термина. С  точки зрения программистов (для которых, собственно, и важен данный параметр), под архитектурой процессора подразумевается его способность исполнять определенный набор машинных кодов. Подавляющее  большинство современных CPU относятся к семейству x86, или Intel-совместимых процессоров с архитектурой IA32. Ее основа была заложена компанией Intel в микропроцессоре i80386, однако в последующих семействах процессоров была дополнена и расширена как самой Intel (введены новые наборы команд MMX, SSE, SSE2 и SSE3), так и сторонними производителями (наборы команд EMMX, 3DNow! и Extended 3DNow!, разработанные компанией AMD). Однако разработчики железа используют  понятие «архитектура процессора» (иногда, чтобы окончательно не запутаться, используется термин «микроархитектура») несколько в ином контексте. С их точки зрения, архитектура процессора отражает основные принципы внутренней структуры конкретных семейств микропроцессоров. Например, архитектура процессоров Intel Pentium 4 обозначалась как NetBurst. После того, как компания Intel закрыла архитектуру Р5(Pentium и Pentium MMX) для сторонних производителей, ее основной конкурент – компания AMD была вынуждена разработать собственную архитектуру – К7 для процессоров Athlon и Athlon XP, и К8 для Athlon 64. Однако  дальнейшее развитие Intel Pentium 4 и его потомка Pentium D на архитектуре NetBurst зашло в тупик, и компания вернулась к архитектуре P6, заменяя ее приемником Intel Core (на ней были выпущены мобильные процессоры) и Core 2 (мобильные и десктопные процессоры, имеющие 2 и 4 ядра). Ответом AMD на выпуск многоядерных процессоров Core 2 от Intel была архитектура K10, которой выпущены процессоры Phenom, Phenom II(X4 и X6). Однако единственным весомым  преимуществом каждого из процессоров AMD (за исключением Phenom II X6) перед их прямыми конкурентами  от Intel (по уровню производительности) является их цена. Лишь с выпуском Phenom II X6 AMD смогла потягаться с флагманами Intel линейки Core i7 Extreme. Но, как и ожидалось , Intel  продолжает планомерное развитие своей линейки Core ix.На смену микроархитектуре Nehalem приходит новое поколение процессоров на новой аппаратной платформе Sandy Bridge.

Суперскалярность - Основная черта всех современных процессоров состоит в том, что они способны запускать на исполнение не только ту команду, которую (согласно коду программы) следует исполнить в данный момент времени, но и другие, следующие после неё. Такой механизм называется Out-of-Order – внеочередное исполнение команд:  в тех случаях, когда очерёдность выполнения никак не может сказаться на результате, команды отправляются на исполнение не в той последовательности, в которой они располагаются в коде программы, а в той, которая позволяет достичь максимального быстродействия. Стоит заметить, что никаких заслуг в разработке концепций суперскалярности и OoO — нет ни у Intel, ни у AMD, ни у какого-либо иного (в том числе из ныне почивших) производителя x86 CPU. Первый суперскалярный компьютер, поддерживающий OoO, был разработан Сеймуром Креем (Seymour Cray) ещё в 60-х годах XX века. Для сравнения: Intel свой первый суперскалярный процессор (Pentium) выпустила в 1993 году. Конвейерная и векторная обработка - Основу конвейерной обработки составляет раздельное выполнение некоторой операции в несколько этапов (за несколько ступеней) с передачей данных одного этапа следующему. Производительность при этом возрастает благодаря тому, что одновременно на различных ступенях конвейера выполняются несколько операций. Конвейеризация эффективна только тогда, когда загрузка конвейера близка к полной, а скорость подачи новых операндов соответствует максимальной производительности конвейера. Если происходит задержка, то параллельно будет выполняться меньше операций и суммарная производительность снизится. Векторные операции обеспечивают идеальную возможность полной загрузки вычислительного конвейера.

  1. Организация многопроцессорных систем. Технологии многопроцессорной обработки. В мультипроцессорных системах имеется несколько процессоров, каждый из которых может относительно независимо от остальных выполнять свою программу. В мультипроцессоре существует общая для всех процессоров операционная система, которая оперативно распределяет вычислительную нагрузку между процессорами. Взаимодействие между отдельными процессорами организуется наиболее простым способом - через общую оперативную память. Сам по себе процессорный блок не является законченным компьютером и поэтому не может выполнять программы без остальных блоков мультипроцессорного компьютера - памяти и периферийных устройств. Все периферийные устройства являются для всех процессоров мультипроцессорной системы общими. Территориальную распределенность мультипроцессор не поддерживает - все его блоки располагаются в одном или нескольких близко расположенных конструктивах, как и у обычного компьютера. Основное достоинство мультипроцессора - его высокая производительность, которая достигается за счет параллельной работы нескольких процессоров. Так как при наличии общей памяти взаимодействие процессоров происходит очень быстро, мультипроцессоры могут эффективно выполнять даже приложения с высокой степенью связи по данным. Еще одним важным свойством мультипроцессорных систем является отказоустойчивость, то есть способность к продолжению работы при отказах некоторых элементов, например процессоров или блоков памяти. При этом производительность, естественно, снижается, но не до нуля, как в обычных системах, в которых отсутствует избыточность. Существует несколько основных типов мультипроцессорных конфигураций, которые могут реализовать изменяемую систему: Иерархическая система основана на «ведущем» процессоре и двух или более «ведомых» процессорах, связанных «сильной» или «слабой» иерархической зависимостью. Параллельная система использует два или более процессоров, которые могут параллельно работать над двумя или более потоками данных. Параллельная система может также работать над одним потоком данных в параллель, чтобы обеспечить высокую надежность обработки данных. Кольцевая система представляет собой размещение процессоров вдоль одного или более колец или контуров. Данные передаются по кольцу и принимаются определенным процессором на основании заданных критериев. Коммутируемая система - это схема, в которой процессоры соединяются непосредственно друг с другом посредством координатного устройства.

Теория передачи информации