Командалар конвейрін ұйымдастыру

Қазіргі заманғы микроархитектураларда конвейерлік деректер тракті кеңінен қолданылады деп есептеледі. Бұл техника көптеген қазіргі заманғы микропроцессорларда, микроконтроллерде және цифрлық сигнальды процессорларда қолданылады. Конвейерлік архитектура бірнеше инстркуцияның орындалуы кезінде үзілуіне мүмкіндік береді, яғни жинау құрылымын қамтамасыздандырады.

Командалар жүйесін таңдау

Жылдар өте командалар жүйесі қарапайымна өте қиынға дейін дамыды. Соңғы жылдары ең кеңнен таратылғандардың қатарына RISC, VLIW, EPIC архитектураларын жатқызуға болады. Деректер деңгейінде парареллельділікпен байланысты архитектураларға SIMD және векторлы процессорларды жатқызуға болады.

Инструкциялар конвейеризациясы

Өнімділікті арттырудың мықты техникаларының бірі ретінде конвейерлік инструкцияны алуға болады. Бұрынғы процессор моделдерінің барлығы қадамдардың барлығын орындап болғаннан кейін ғана инструкцияларын ауыстыра алатын. Ал конвейерлер бірнеше инструкцияларға бір уақытта бірнеше жол салуға мүмкіндіктер береді.

Кэш

Кэш жады және конвейерлер бір бірін жақсы толықтырады. Егер бастапқыда конвейерлер құрудың маңызы болмаса, кештің пайда болуымен оның маңызы өсті, кэша конвейерлер ичптегі жедел жадыға қатынаудың жылдамдығын арттырды. Нәтижесінде процессорлардың тактілік жиіліктері арттыруға мүмкіндіктер пайда болды.

Суперскалярлылық

Бастапқы кезде конвейерлік микроархитектурадағы процессорлардың өзі тек бір инструкцияны ғана орындай алатын. Сондықтан біруақытта бірнеше инструкцияны жіберу қарастырылды. Міне осы кезде суперскалярлы микроархитектуралар пайда болды, ол бірнеше бірдей функциональды блоктарды қолдану арқылы жүзеге асырылды, мысалы АЛҚ.

Қазіргі заманғы өңдеулерде екі таңдау құрылғысын және, бір сақтау құрылғысын, екі немесе одн көп бүтін сандар АЛҚ, екі немесе одан көп жылжымалы нүктелі сандар құрылғысын көруге болады.

Көппроцессорлық және көпағындық

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

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

Одним из способов достижения параллелизма такого вида являются многопроцессорные системы — компьютеры с несколькими ЦПУ. Когда-то ограничивавшиеся мэйнфреймами и суперкомпьютерами, многопроцессорные системы в виде миниатюрных (2-8)-процесорных серверов становятся[источник не указан 66 дней] обычным явлением в малом бизнесе. Для крупных корпораций характерны масштабные мультипроцессоры (16-256). В 1990-е появились и многопроцессорные персональные компьютеры.

По мере дальнейшего уменьшения размера транзисторов (с соответствующим увеличением их числа в интегральных микросхемах) получали распространение многоядерные процессоры, у которых несколько физических процессорных ядер размещаются в единственном кремниевом чипе. Сначала такие решения предназначались для рынка встроенных систем, где более простые и компактные архитектуры позволяли разместить несколько экземпляров ЦПУ на одном кристалле. К 2005 году полупроводниковая технология позволила поместить в один корпус два высокопроизводительных универсальных процессора. В некоторых проектах, таких, как UltraSPARC T1 Sun Microsystems, разработчики вернулись к более простым микроархитектурам (скалярным с исполнением по порядку) с тем, чтобы разместить больше процессоров на одном кристалле.

Многопоточность является ещё одной технологией, получившей распространение сравнительно недавно[когда?]. Суть её в том, что когда процессору необходимо получить данные из медленной основной памяти, он вместо того, чтобы простаивать в ожидании этих данных, переключается на выполнение другого программного потока, который готов к исполнению. Не улучшая время выполнения отдельной программы, многопоточность тем не менее увеличивает пропускную способность всей системы. Концептуально операции многопоточного процессора эквивалентны переключению контекста (процесса или потока) на уровне операционной системы. Различие состоит в том, что многопоточный процессор производит переключение активного потока за один такт, в то время как программная реализация на уровне ОС требует на несколько порядков больших временных затрат. Это достигается путём аппаратной репликации регистрового контекста для каждого потока.

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

 








Дата добавления: 2016-04-11; просмотров: 842;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.