Паралелизам на нивоу наредбеПаралелизам на нивоу наредбе (енгл. Instruction-level parallelism, ILP) мери колико се операција, у једном рачунарком програму, могу извршити истовремено. Потенцијално преклапање инструкција се назива паралелизам на нивоу наредбе. Постоје два приступа паралелизму на нивоу наредбе:
Хардверски ниво ради на основу динамичког паралелизма, док софтверски ниво ради на основу статичког паралелизма.[1] Pentium процесор ради на основу динамичких секвенци паралелног извршавања док Itanium процесор ради на основу паралелизма на статичком нивоу. Размотримо следећи програм:
Трећа операција зависи од резултата прве и друге операције, тако да се не може добити резултат док се не изврше прве две до краја. Међутим, прве две операције не зависе од других операција тако да се могу извршити истовремено. Ако претпоставимо да се свака операција може завршити у једној јединици времена, онда се овај програм може извршити, укупно, у две јединице времена (добијамо паралелизам на нивоу наредбе 3/2). Циљ дизајнера компајлера и процесора је да идентификује предност паралелизма на нивоу наредбе и да ту предност искористи што је више могуће. Обични програми се углавном пишу по моделу секвенцијалног извршавања где се инструкције извршавају јена за другом и редоследом који одређује програмер. Паралелизам на нивоу наредбе омогућава процесору и компајлеру преклапање извршавања више инструкција. Може чак дозволити и промену редоследа по коме се инструкције извршавају. Колико паралелизам на нивоу наредбе постоји у програмима, директно зависи од апликације. У одређеним областима, као што су графика и научна израчунавања, ова врста паралелизма може постојати у великој количини. Међутим, преоптерећења, као што је криптографија, излажу много мање паралелизма. Микроархитектонске технике које искоришћавају паралелизам на нивоу наредбе:
Архитектуре токова података су друга класа архитектура где се ILP експлицитно наглашава. Последњих година, ILP технике су се користиле да би обезбедиле побољшање перформансе упркос повећању разлика између фреквенција рада процесора и времену приступа меморије (рани дизајни ILP-а, као што је IBM 360, су користили технике да савладају ограничења наметнута релативно малим фајловима регистара). Тренутно, кеш пенал за промашај у главној меморији кошта неколико стотина процесорских циклуса. Док је углавном могуће искористити ILP да би дпустио таква кашњења, трошкови повезаног ресурса и расипања енергије су несразмерни. Шта више, комплексност и честа кашњења основних хардверских структура резултују смањење фрекверије рада, и тиме поништавајући било какве бенефиције. Отуда су се наведене технике показале као неадекватне да очувају процесор од одуговлачења за податке ван чипа. Уместо тога, индустрија се креће ка експлоатисању паралелизма вишег нивоа који се може експлоатисати преко техника као што су multiprocessing и multithreading.[2] Види јошРеференце
Литература
Спољашње везе |
Portal di Ensiklopedia Dunia