Расширения базовой архитектуры, введение новых инструкций. — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Расширения базовой архитектуры, введение новых инструкций.



В более поздних 32-разрядных процессорах (начиная с Pentium Pro) появилось PAE (Physical Address Extension) — расширение адресов физической памяти до 36 бит (возможность адресации 64 Гбайт ОЗУ). Это изменение не затронуло разрядности задач — они остались 32-битными.

Дополнительный «мультимедийный» (англ. Multi-Media eXtensions) набор инструкций, выполняющих по несколько характерных для процессов кодирования/декодирования потоковых аудио/видеоданных действий за одну машинную инструкцию. Впервые появился в процессорах Pentium MMX. Обеспечивает только целочисленные вычисления.

SSE (англ. Streaming SIMD Extensions — потоковое SIMD-расширение) — это SIMD (англ. Single Instruction, Multiple Data — «одна инструкция — множество данных») набор инструкций, разработанный Intel и впервые представленный в процессорах серии Pentium III. Поддерживает вычисления с плавающей точкой. SSE состоит из восьми 128-битных регистров (с xmm0 до xmm7). Каждый регистр определяет 4 последовательных значения с плавающей точкой одинарной точности. SSE включает в себя инструкции, которые производят операции со скалярными и упакованными типами данных.

SSE2 Улучшенное расширение SSE. Появилось в процессорах Pentium 4. Производит потоковые вычисления с вещественными числами двойной точности (2 числа по 64 бита в одном регистре SSE). Кроме того, добавлены инструкции, аналогичные расширению MMX, работающие с регистрами SSE (16 байт, 8 слов, 4 двойных слова или 2 учетверённых слова в одном регистре). SSE2 включает в себя ряд команд управления КЭШем, предназначенных для минимизации загрязненияКЭШа при обработке неопределенных потоков информации.

Продолжение SSE и SSE2, появилось в процессорах Prescott. Набор SSE3 содержит 13 инструкций: FISTTP (x87), MOVSLDUP (SSE), MOVSHDUP (SSE), MOVDDUP (SSE2), LDDQU (SSE/SSE2), ADDSUBPD (SSE), ADDSUBPD (SSE2), HADDPS (SSE), HSUBPS (SSE), HADDPD (SSE2), HSUBPD (SSE2), MONITOR (нет аналога в SSE3 для AMD), MWAIT (нет аналога в SSE3 для AMD). Наиболее заметное изменение — возможность горизонтальной работы с регистрами. Если говорить более конкретно, добавлены команды сложения и вычитания нескольких значений, хранящихся в одном регистре. Эти команды упростили ряд DSP и 3D-операций. Существует также новая команда для преобразования значений с плавающей точкой в целые без необходимости вносить изменения в глобальном режиме округления.

SSSE3Дополнение к SSE3 для работы с упакованными целыми. Новыми в SSSE3, по сравнению с SSE3, являются 16 уникальных команд, работающих с упакованными целыми. Каждая из них может работать как с 64-х битными (MMX), так и с 128-ми битными (XMM) регистрами, поэтому Intel в своих материалах ссылается на 32 новые команды. Категории новых инструкций: работа со знаком, сдвиги, перемешивание байт, умножения, горизонтальные сложения и вычитания целых.



SSE4Новый набор команд Intel, впервые реализованный в процессорах серии Penryn. SSE4 состоит из 54 инструкций, 47 из них относят к SSE4.1 (они есть только в процессорах Penryn). Ожидается, что полный набор команд (SSE4.1 и SSE4.2, то есть 47 + оставшиеся 7 команд) будет доступен в процессорах Nehalem. Ни одна из SSE4 инструкций не работает с 64-битными mmx регистрами, только со 128-битными xmm0-15. Может оказаться, что не будет выпущено 32-битных процессоров с SSE4, только 64-битные — с EM64T. Добавлены инструкции, ускоряющие компенсацию движения в видеокодеках, быстрое чтение из USWC памяти, множество инструкций для упрощения векторизации программ компиляторами. Кроме того, в SSE4.2 добавлены инструкции обработки строк 8/16 битных символов, вычисления CRC32, popcnt. Впервые в SSE4 регистр xmm0 стал использоваться как неявный аргумент для некоторых инструкций. Новые инструкции SSE4.1 включают ускорение видео, работу с векторными примитивами, вставки/извлечения, скалярное умножение векторов, смешивания, проверки бит, округления, чтение WC-памяти. Новые инструкции SSE4.2 включают обработку строк, подсчёт CRC32, подсчет популяции единичных бит, работу с векторными примитивами.

SSE5Новое расширение x86 инструкций от AMD, названное SSE5. Этот абсолютно новый набор SSE инструкций, созданный специалистами AMD, станет поддерживаться перспективными CPU компании, начиная с 2009 года. SSE5 привносят в классическую x86 архитектуру некоторые возможности, доступные ранее исключительно в RISC процессорах. Набор инструкций SSE5 определяет 47 новых базисных команд, призванных ускорить однопоточные вычисления благодаря увеличению «плотности» обрабатываемых данных. Среди новых инструкций выделяется две основные группы. В первую входят инструкции, аккумулирующие результаты умножения. Инструкции такого типа могут быть полезны для организации итерационных вычислительных процессов при рендеринге изображений или при создании трёхмерных аудио эффектов. Вторая группа новых команд включает инструкции, оперирующие с двумя регистрами и сохраняющие результат в третьем. Это нововведение может позволить разработчикам обойтись без лишних пересылок данных между регистрами в вычислительных алгоритмах. Также, SSE5 содержит и несколько новых инструкций для сравнения векторов, для перестановки и перемещения данных, а также для изменения точности и округления. Основными применениями для SSE5 AMD видит расчётные задачи, обработку мультимедиа контента и средства шифрования. Ожидается, что в счётных приложениях, использующих матричные операции, использование SSE5 может дать 30-процентный прирост производительности. Мультимедийные задачи, требующие выполнения дискретного косинусного преобразования, могут получить 20-процентное ускорение. А алгоритмы шифрования благодаря SSE5 способны получить пятикратный выигрыш в скорости обработки данных.



Следующий набор расширений от Intel. AVX

Расширение системы команд AES — реализация в микропроцессоре шифрования AES.

3DNow!Набор инструкций для потоковой обработки вещественных чисел одинарной точности. Поддерживается процессорами AMD начиная с K6-2. Процессорами Intel не поддерживается. Инструкции 3DNow! используют регистры MMX в качестве источников операндов (в один регистр помещается два числа одинарной точности), поэтому, в отличие от SSE, при переключении задач не требуется отдельно сохранять контекст 3DNow!.

Немного истории.

16-разрядный процессор i8086, был создан в июне 1978 года. Сначала работал на частотах 4,77 МГц, затем на 8 и 10 МГц. Изготавливался по технологии 3 мкм и имел 29 000 транзисторов.

Чуть позже, в 1979 году, был разработан i8088, который работал на тех же частотах, что и i8086, но использовал 8-разрядную шину данных (внутренняя шина процессора осталась 16-разрядной) для обеспечения большей совместимости с имевшейся в то время в ходу периферией. Благодаря более низкой цене, широко использовался в ранних системах IBM PC вместо 8086.

В 1982 году были выпущены 80186 и 80188, которые первоначально не получили широкого распространения из-за того, что IBM не стала использовать их в своих персональных компьютерах. Впрочем, некоторые производители «клонов» сделали это, выпустив ускоренные варианты IBM PC/XT. В то же время, эти процессоры оказались чрезвычайно удачными для использования во встроенных системах и в различных модификациях выпускаются до настоящего времени[1]. В эти процессоры были первоначально добавлено несколько новых команд, повышена тактовая частота. Впоследствии появились модификации, содержащие дополнительные аппаратные средства, такие, как интегрированные контроллеры последовательного порта.

80286 объявлен в 1982 году. Работал на частотах 6, а затем 8, 10, 12, 16, 20 МГц. Производился по техпроцессу 1,5 мкм и содержал около 134 тысяч транзисторов. С его появлением появилось такое понятие, как защищённый режим (protected mode) и виртуальная память. Производительность процессора по сравнению с 8086 увеличилась в несколько раз (0,99-2,6 млн. операций в секунду).

80386 (i386). Первый 32-разрядный процессор, работал на частотах 16-40 МГц. Появился в 1985 году. Знаменовал собой начало революции в мире процессоров x86. Основные принципы, заложенные в этом чипе, без кардинальных изменений дожили и до наших дней (за всё это время изменения касались, в основном, повышения производительности, расширения набора команд, увеличения разрядности). Первые 386 процессоры содержали серьезную ошибку, приводящую к невозможности функционирования в защищенном режиме. Исправленная версия называлась 386DX. Так же выпускались более дешевые процессоры i386SX с урезанной до 16 бит внешней шиной данных и 24 бит шиной адреса.

Процессор i486 (1989 год) является усовершенствованным, доработанным 32-х разрядным процессором и первым центральным процессором Intel с RISC добавкой (ряд операций выполнялись за один такт). Имел встроенный FPU (Floating Point Unit — блок вычислений с плавающей запятой) и впервые — встроенную кэш-память (8 Кбайт). 80486 — первый процессор Intel, для которого была применена технология умножения частоты шины FSB (в моделях DX2-50, DX2-66, DX4-75 и DX4-100).

Для ноутбуков и встраиваемых систем в начале 1990-х была выпущена «облегченная» модификация i486SX без встроенного блока FPU.

Процессоры 486, 8086 составили легенду Intel по массовости и устойчивости на рынке.

Pentium (1993 год. Intel отказалась от ix586 названия, потому что не могла запатентовать числа.) — первый суперскалярный и суперконвейерный процессор Intel. Суперскалярность — термин, означающий, что процессор позволяет выполнять более одной операции за один такт. Суперконвейерность означает, что процессор имеет несколько вычислительных конвейеров. У Pentium их два, что позволяет ему при одинаковых частотах в идеале быть вдвое производительней 486, выполняя сразу 2 инструкции за такт. Вышел на рынок чуть позже процессора фирмы Motorola с аналогичными параметрами, но имел внешнюю 64-х разрядную шину данных. Кроме того, особенностью процессора Pentium являлся полностью переработанный и очень мощный на то время блок FPU, производительность которого оставалась недостижимой для конкурентов вплоть до конца 1990-х годов.

Pentium Pro (1995 год) — первый процессор шестого поколения в основном, как 386 заявочный, без удачи на рынке. Идеи и технологии, заложенные в данный чип, определили архитектуры всех современных x86-процессоров: блоки предсказания ветвлений, переименование регистров, RISC-ядро, интегрированная в один корпус с ядром кэш-память второго уровня. Однако технологическая сложность ядра данного процессора привела к сравнительно невысокому выходу годных чипов при технологиях того времени, что сказалось на высокой цене Pentium Pro. При этом процессор обладал достаточно низкой производительностью при исполнении 16-разрядного кода. Поэтому данный процессор применялся только в High-End системах и серверах.

Pentium MMX (январь 1997 года) — процессор пятого поколения, и, по сути, просто модификация ядра Pentium. Был добавлен новый блок целочисленных матричных вычислений MMX и увеличен до 32 Кбайт объём кэш-памяти первого уровня.

Pentium II (май 1997 года) — модификация ядра Pentium Pro с целью сделать его более доступным. Интегрированный кэш и тегКЭШа были вынесены на отдельные микросхемы с пониженной в два раза частотой. Это упростило и удешевило процессор, хотя и сделало его более медленным, чем Pentium Pro. Первые процессоры Pentium II выпускались с кэш-памятью второго уровня емкостью 256 Кбайт, затем её объём был увеличен до 512 Кбайт. Новая конструкция процессора потребовала размещения элементов на печатной плате, что, в свою очередь, привело к изменению конструктива процессора. Данные ЦПУ выпускались в виде картриджей SECC, устанавливающихся в специальный разъём на плате (Slot 1). Кроме того, в ядро Pentium II был добавлен блок MMX.

Celeron — упрощённая модификация процессоров Pentium II / III / IV / Core / Core 2 для построения недорогих компьютеров. Первый Celeron (ядро Covington, частоты 266/300 МГц) представлял собой Pentium II, лишенныйКЭШа второго уровня и пластикового картриджа. Печатная плата также была упрощена. Такая упаковка получила название SEPP (Sinlge Edge Processor Package). В результате эти процессоры демонстрировали более низкую производительность, стоили очень недорого и легко прибавляли до 50 % частоты при разгоне. Все последующие варианты этого процессора имели интегрированный полночастотный КЭШ второго уровня. Основные отличия процессоров Celeron в объёме этогоКЭШа и частоте шины, а также часто в увеличенной латентности доступа к кэш-памяти по отношению к оригинальному процессору.

Любопытный факт: вторая модификация Celeron (ядро Mendochino, частоты 300..533 МГц) на многих задачах демонстрировала более высокую производительность, чем равный по частоте Pentium II. Это объяснялось тем, что маленький (128 Кбайт) КЭШ Mendochino располагался на одном кристалле с ядром и работал на частоте ядра, в то время как большой (512 Кбайт) КЭШ Pentium II находился достаточно далеко от ядра и работал на половинной частоте. Больше таких промашек фирма Intel не допускала, и все последующие Celeron гарантированно медленнее полноценных процессоров того же поколения.

Pentium III, изготовленный изначально по технологическому процессу 0,18 мкм, отличается от P2 главным образом добавлением инструкций SSE. Поздние процессоры этой серии изготавливались по технологическому процессу 0,13 мкм, получили интегрированную в кристалл ядра полночастотную кэш-память (сначала 256 Кбайт, затем — 512 Кбайт) и послужили прообразом процессоров архитектуры Pentium M. Выпускались в конструктивах как SECC/SECC2 (Slot 1), так и FCPGA-370 (PGA-370).

Pentium 4 Принципиально новый процессор с гиперконвейеризацией (hyperpipelining) — с конвейером, состоящим из 20 ступеней. Согласно заявлениям Intel, процессоры, основанные на данной технологии, позволяют добиться увеличения частоты примерно на 40 процентов относительно семейства P6 при одинаковом технологическом процессе (при «правильной» загрузке процессора). На практике же, первые модели работали даже медленнее, чем Pentium III. Позже они были дополнены поддержкой 64-битного кода.

Core / Core 2 После провала последнего поколения процессоров Pentium 4 на ядре Tejas, было решено обратиться к другой ветви продукции. В основе новых процессоров лежит переработанное ядро Pentium M. Таким образом, ядро P6, использованное ещё в процессорах Pentium Pro, продолжило свою эволюцию, нарастив частоту со 150 МГц до 3,2 ГГц и обзаведясь новой системной шиной, поддержкой многоядерности, мультимедийных инструкций.

Процессоры Core— это решение для ноутбуков, одно- и двуядерное, исполняющее 32-битный код.

Процессоры Core 2 выпускаются как в настольном, так и мобильном исполнении, включают ряд микроархитектурных улучшений и способны исполнять 64-битный код. Количество ядер варьируется от одного до четырёх.

Core i3/Core i5/Core i7

Дальнейшее развитие идей, заложенных в процессорах Core 2. Сохранив основную конструкцию процессорных ядер, появившийся первым Core i7 получил модульную структуру, позволяющую легко варьировать их количеством. Встроенный контроллер памяти (трёхканальной DDR3 в высшем сегменте и двухканальной DDR3) и новая шина, соединяющую процессор с чипсетом, дополнили архитектуру. Микроархитектурные улучшения позволяют Core i7 показывать повышенную производительность в сравнении с Core 2 на равных частотах. Большое внимание было уделено вопросу энергоэффективности нового процессора.

Позже появились более дешевые Core i5/i7 с двухканальным контроллером памяти и четырьмя ядрами, затем — Core i3/i5 с двумя ядрами и встроенным видеоядром. В секторе наиболее производительных решений выпускаются также процессоры Core i7 с трехканальным контроллером памяти и шестью ядрами. Благодаря использованию технологии Hyper Threading эти процессоры способны одновременно исполнять до 12 потоков команд.

Atom

Недорогие сверхэкономичные одно- и двуядерные процессоры, предназначенные для использования в так называемых сетевых компьютерах — нетбуках и неттопах (компьютерах, в которых вычислительная мощность пожертвована в пользу экономичности, бесшумности и малогабаритности). В основе — модифицированное ядро от первых Pentium, которое адаптировали под новый техпроцесс, добавили возможность исполнения 64-битного кода и мультимедийных инструкций, а также кэш-память второго уровня и поддержку многопоточного исполнения (SMT, аналог Hyper Threading). Для упрощения конструкции было решено отказаться от внеочередного исполнения команд, что не лучшим образом сказалось на производительности.

Xeon.Модификации процессоров, ориентированных на серверы и многопоточные вычисления. Первый представитель этого семейства базировался на архитектуре Pentium II, представлял собой картридж с печатной платой, на которой монтировались ядро, кэш-память второго уровня и тегКЭШа. Монтировался в гнездо Slot 2.

Добавим процессоры от фирмы AMD/

Athlon.Очень успешный процессор, благодаря которому фирма AMD сумела восстановить почти утраченные позиции на рынке микропроцессоров. Кэш первого уровня — 128 Кбайт. Первоначально процессор выпускался в картридже с размещением КЭШа второго уровня (512 Кбайт) на плате и устанавливался в разъём Slot A, который механически, но не электрически совместим с интеловским Slot 1. Затем устанавливался в разъём Socket A и имел 256 Кбайт КЭШа второго уровня в ядре. По быстродействию — примерный аналог Pentium III.

DuronКонкурент Celeron поколений Pentium III / Pentium 4. Отличается от Athlon объёмом КЭШа второго уровня (всего 64 Кбайт), зато интегрированным в кристалл и работавшем на частоте ядра. Производительность заметно выше, чем у аналогичных Celeron, и при выполнении многих задач соответствует Pentium III.

Athlon XPПродолжение развития архитектуры Athlon. По быстродействию — аналог Pentium 4. По сравнению с обычным Athlon, добавлена поддержка инструкций SSE.

Sempron.Более дешёвый (за счёт уменьшенного КЭШа второго уровня) вариант процессоров Athlon XP и Athlon 64.

Первые модели Sempron являлись перемаркированными чипами Athlon XP на ядре Thoroughbred и Thorton, имевшими 256 Кбайт КЭШа второго уровня, и работавшими на 166 (333 DDR) шине. Позднее под маркой Sempron выпускались (и выпускаются) урезанные версии Athlon 64/Athlon II, позиционируемые как конкуренты Intel Celeron. Все Sempron имеют урезанный КЭШ 2-го уровня; младшие модели Socket 754 имели заблокированные Cool&quiet и x86-64; Socket 939 модели имели заблокированный двухканальный режим работы памяти.

Opteron.Первый процессор, поддерживающий архитектуру x86-64.

Athlon 64.Первый несерверный процессор, поддерживающий архитектуру x86-64.

Athlon 64 X2. Продолжение архитектуры Athlon 64, имеет 2 вычислительных ядра.

Athlon FX.Имел репутацию «самого быстрого процессора для игрушек». Является, по сути, серверным процессором Opteron 1xx на десктопных сокетах без поддержки registered-memory. Выпускается малыми партиями. Стоит значительно дороже своих «массовых» собратьев.

Phenom.Дальнейшее развитие архитектуры Athlon 64, выпускается в вариантах с двумя (Athlon 64 X2 Kuma), тремя (Phenom X3 Toliman) и четырьмя (Phenom X4 Agena) ядрами.

Phenom II.Модификация Phenom. Небольшие архитектурные изменения, переход на более тонкий технологический процесс и добавление КЭШа L3 объёмом от 4 до 6 Мбайт позволили нарастить производительность этих процессоров на 10-20 % по сравнению с предшественниками. Выпускаются в конструктивах Socket AM2+ и Socket AM3. При этом первые могут работать только с памятью DDR2, а вторые — как с DDR2, так и с DDR3. Максимальное число ядер выросло до шести.

Athlon IIPhenom II без КЭШа L3 и количеством ядер не более четырех.

TurionМобильная версия Athlon 64 с пониженным энергопотреблением и расширенными средствами управления питанием. Выпускается в вариантах с одним и двумя ядрами.

Athlon NeoМаксимально оптимизированные по энергопотреблению одно- и двуядерные процессоры, близкие родственники мобильных Sempron и Turion 64 X2. Выпускаются в исполнении BGA, предназначены для использования в легких и тонких ноутбуках. Позиционируются, как конкуренты Intel Atom.

Х разрядные процессоры

Как показано выше, на определенном этапе компании DEC, Motorola, Sun и др. ушли с рынка 32-х разрядных процессоров. Это обусловлено несколькими факторами: разрядность физического адреса 4 Гигабайта для рабочих станций не достаточна. Точность цельночисленных операций в 32-х разрядном формате, также не привлекательна для финансовых приложений. За несколько десятков лет наработано множество архитектур, остановимся на отдельных.

 

Рис. 11.1. Процессор R 12000 архитектура

 

Фирма MIPS вошедшая в состав Silicon Graphics после кратковременного решения прекратить развитие архитектуры 64-х разрядных центральных процессоров выпустила ряд новых решений, в том числе и R12000.

Архитектура микропроцессоров компании MIPS Technology была одной из первых RISC-архитектур, получившей признание со стороны промышленности, Анонсированный еще в 1986 году и имеющий первоначально 32-разрядную архитектуру, первый чип имел 32 регистра общего назначения, 16 регистров плавающей точки и специальную пару регистров для хранения результатов выполнения операций целочисленного умножения и деления. Размер команд составлял 32 бит, поддерживался всего один метод адресации, а пользовательское адресное пространство определялось 32 битами. Благодаря высоким, по тем временам, параметрам быстродействия, относительной простоте и неприхотливости первые микропроцессоры MIPS сразу завоевали широкую популярность. Чипы серии R2000, R3000, R4000 и их последующие модификации стали основой для построения рабочих станций и серверов компаний Silicon Graphics, Digifal, Siemens Nixdorf и др. MIPS Technology была первой компанией, выпустившей процессоры с 64-разрядной архитектурой -R4000 и R4400. Набор команд этих процессоров - спецификация MIPS II - был расширен командами загрузки и записи 64-разрядных вещественных чисел, командами вычисления квадратного корня с одинарной и двойной точностью, командами условных прерываний, а также атомарными операциями, необходимыми для поддержки мультипроцессорных конфигураций. В процессорах R4000 и R4400 были реализованы 64-разрядные шины данных и 64-разрядные регистры. В этих процессорах применяется метод удвоения внутренней частоты.

В R4000 и R4400 применяются длинные конвейеры, иногда их называют суперконвейерами. Число ступеней в R4000 и R4400 увеличилось до восьми, что объясняется, прежде всего, увеличением тактовой частоты и необходимостью распределения логики для обеспечения заданной пропускной способности конвейера. В середине 1994 года MIPS анонсировала процессор R8000, который был ориентирован на научные прикладные задачи с интенсивным использованием операций с плавающей точкой. Этот процессор построен на двух кристаллах (выпускается в виде многокристальной сборки) и представляет собой первую суперскалярную реализацию архитектуры MIPS и способна выполнять до четырех команд и шести операций с плавающей точкой в каждом такте. Аппаратные средства поддержки когерентного состояния кэш-памяти вместе со средствами распараллеливания компиляторов обеспечивают возможность построения высокопроизводительных симметричных многопроцессорных систем. В 1997 году компания выпускает еще один микропроцессор- R 12000. MIPS R12000 использует два уровня кэш-памяти. Первый уровень ассоциативная кэш-память, расположенная на кристалле и имеет 32КБ для данных и 32КБ для команд. Второй уровень - внешняя кэш-память объединена для данных и для команд и может иметь размер от 512КБ до 16МБ.
При разработке процессора R12000 большое внимание было уделено эффективной реализации иерархии памяти. В данном чипе обеспечиваются раннее обнаружение промахов кэш-памяти и параллельная перезагрузка строк с выполнением другой полезной работой. Реализованные на кристалле КЭШи поддерживают одновременную выборку команд, выполнение команд загрузки и записи данных в память, а также операций перезагрузки строк кэш-памяти. Заполнение строк кэш-памяти выполняется по принципу "запрошенное слово первым", что позволяет существенно сократить простои процессора из-за ожидания требуемой информации. Все КЭШи имеют двухканальную множественно ассоциативную организацию с алгоритмом замещения LRU.

Кэш-память данных первого уровня процессора R12000 имеет емкость 32 Кбайт и организована в виде двух одинаковых банков емкостью по 16 Кбайт, что обеспечивает двукратное расслоение при выполнении обращений к этой кэш-памяти. Каждый банк представляет собой двухканальную множественно-ассоциативную кэш-память с размером строки (блока) в 32 байта. Кэш данных индексируется с помощью виртуального адреса и хранит теги физических адресов памяти. Такой метод индексации позволяет выбрать подмножество кэш-памяти в том же такте, в котором формируется виртуальный адрес. Однако для того, чтобы поддерживать когерентность с кэш-памятью второго уровня, в КЭШе первого уровня хранятся теги физических адресов памяти.

Массивы данных и тегов в каждом банке являются независимыми. Эти четыре массива работают под общим управлением очереди формирования адресов памяти и схем внешнего интерфейса кристалла. В очереди адресов могут одновременно находиться до 16 команд загрузки и записи, которые обрабатываются в четырех отдельных конвейерах. Команды из этой очереди динамически подаются для выполнения в специальный конвейер, который обеспечивает вычисление исполнительного виртуального адреса и преобразование этого адреса в физический. Три других параллельно работающих конвейера могут одновременно выполнять проверку тегов, осуществлять пересылку данных для команд загрузки и завершать выполнение команд записи в память. Хотя команды выполняются в строгом порядке их расположения в памяти, вычисление адресов и пересылка данных для команд загрузки могут происходить неупорядоченно. Схемы внешнего интерфейса кристалла могут производить заполнение или обратное копирование строк кэш-памяти, либо операции просмотра тегов. Такая параллельная работа большинства устройств процессора позволяет процессору R12000 эффективно выполнять реальные многопроцессорные приложения.

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

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

Интерфейс кэш-памяти второго уровняпроцессора R12000 поддерживает 128-разрядную магистраль данных. Все стандартные синхронные сигналы управления статической памятью вырабатываются внутри процессора. Не требуется никаких внешних интерфейсных схем. Минимальный объем кэш-памяти второго уровня составляет 512 Кбайт, максимальный размер - 16 Мбайт. Размер строки этой кэш-памяти программируется и может составлять 128 или 1024 байт.

Одним из методов улучшения временных показателей работы кэш-памяти является построение псевдо-множественно-ассоциативной кэш-памяти. В такой кэш-памяти частота промахов находится на уровне частоты промахов множественно-ассоциативной памяти, а время выборки при попадании соответствует кэш-памяти с прямым отображением. В одном наборе микросхем памяти находятся оба канала КЭШа. Информация о частоте использования этих каналов хранится в схемах управления КЭШем на процессорном кристалле. Поэтому после обнаружения промаха в первичном КЭШе, из наиболее часто используемого канала вторичного КЭШа считываются две четырехсловные строки. Их теги считываются вместе с первой четырехсловной строкой, а теги альтернативного канала читаются одновременно со второй четырехсловной строкой - это осуществляется простым инвертированием старшего разряда адреса. При этом возможны три случая. Если происходит попадание по первому каналу, то данные доступны немедленно. Если попадание происходит по альтернативному каналу, выполняется повторное чтение вторичного КЭШа. Если отсутствует попадание по обоим каналам, вторичный кэш должен перезаполняться из основной памяти.

Для обеспечения целостности данных в кэш-памяти большой емкости обычной практикой является использование кодов, исправляющих одиночные ошибки (ЕСС-кодов). В R12000 с каждой четырехсловной строкой хранится 9-разрядный ЕСС-код и бит четности. Дополнительный бит четности позволяет сократить задержку (поскольку проверка на четность может быть выполнена очень быстро), чтобы предотвратить использование некорректных данных. При этом если обнаруживается корректируемая ошибка, то чтение повторяется через специальный двухтактный конвейер коррекции ошибок.

Объем внутренней двухканальной множественно-ассоциативной кэш-памяти командсоставляет 32 Кбайт. В процессе ее загрузки команды частично декодируются. При этом к каждой команде добавляются 4 дополнительных бита, указывающих на исполнительное устройство, в котором будет выполняться команда. Таким образом, в кэш-памяти команды хранятся в 36-разрядном формате. Размер строки кэш-памяти команд составляет 64 байта.

Обработка команд перехода

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

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

Предсказатель переходов (ветвлений) (Branch predict) процессора R12000 может декодировать и выполнять только по одной команде перехода в каждом такте. Поскольку за каждой командой перехода следует слот задержки, то максимально могут быть одновременно выбраны две команды перехода, но только одна более ранняя команда перехода может декодироваться в данный момент времени. Во время декодирования команд к каждой команде добавляется бит признака перехода. Эти биты используются для пометки команд перехода в конвейере выборки команд.

Направление условного перехода прогнозируется с помощью специальной памяти (branch history table) емкостью 2048 строк, которая хранит историю выполнения переходов в прошлом. Обращение к этой таблице осуществляется с помощью адреса команды во время ее выборки. Двухбитовый код прогноза в этой памяти обновляется каждый раз, когда принято окончательное решение о направлении перехода.

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

Структура очередей команд

Процессор R12000 содержит три очереди буфера команд: целочисленных команд(integer queue), команд плавающей точки(FP queue) и адресов(address queue). Все три очереди осуществляют динамическую выдачу команд в соответствующие исполнительные устройства. С каждой командой в очереди хранится тег команды, который перемещается вместе с командой по ступеням конвейера. Каждая очередь осуществляет динамическое планирование потока команд и может определить моменты времени, когда становятся доступными операнды, необходимые для выполнения каждой команды. Кроме того, очередь определяет порядок выполнения команд на основе анализа состояния соответствующих исполнительных устройств. Как только ресурс оказывается свободным, очередь выдает команду в соответствующее исполнительное устройство.

Очередь целочисленных команд содержит 16 строк и выдает команды в два арифметико-логических устройства. Целочисленные команды поступают в свободные строки этой очереди, причем в каждом такте в нее могут записываться до 4 команд. Целочисленные команды остаются в очереди до тех пор, пока они не будут выданы в одно из АЛУ.

Очередь команд плавающей точки также содержит 16 строк и выдает команды в исполнительные устройства сложения и умножения с плавающей точкой. Команды вещественной арифметики поступают в свободные строки очереди, причем в каждом такте в нее могут записываться до 4 команд. Команды остаются в очереди до тех пор, пока они не будут выданы в одно из исполнительных устройств. Очередь команд плавающей точки содержит также логику управления команд типа "умножить-сложить". Эта команда сначала направляется в устройство умножения, а затем прямо в устройство сложения.

Очередь адресных команд выдает команды в устройство загрузки/записи и содержит 16 строк. Очередь организована в виде циклического буфера FIFO. Команды могут выдаваться в произвольном порядке, но должны записываться в очередь и изыматься из нее строго последовательно. За каждый такт в очередь могут поступать до 4 команд. Буфер FIFO поддерживает первоначальную последовательность команд, что упрощает обнаружение зависимостей по адресам. Выполнение выданной команды может не закончиться при обнаружении зависимости по адресам, кэш-промаха или конфликта по ресурсам. В этих случаях адресная очередь должна заново повторять выдачу команды до тех пор, пока ее выполнение не завершится.

Переименование регистров

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

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






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

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...



© cyberpedia.su 2017 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав

0.025 с.