83
3.6 сур. Процессордың күрделі емес құрылымдық сызбасы:
F
n
— процессор жиілігі; F
я
— ядро жиілігі; xF— жиілікті көбейткіш; U
n
—
процессордың қуат көзі; U
я
— ядроның қуат көзі
Кэш-жады деңгейі бойынша ақпараттарды тарату екі əдіспен
орындалуы мүмкін: К2 НК1 жəне МК2 мəліметтерінің барлық көлемін өзі
қамтыған кезде, қосарлану əдісі жəне кэш деңгейінде ақпараттарды оның
қайталануынсыз дəл бөлу əдісі. Бірінші жағдайда ядро буферінің жалпы
өлшемі К2 көлемімен тең болады; екінші жағдайда ол екі деңгейлі кэштің
жиынтық көлемімен теңеседі. Алғашқы Pentium процессорларында екінші
деңгейлі кэш-жады жүйелік тақтада орналастырылып, соның жиілгінде
жұмыс істеді, ал сосын кристаллға біріктірілді (интегралданды).
Процессорда екі тəуелсіз шина пайдаланылады: екінші деңгейлі кэштің
ішкі шинасы жəне FSB (процессордан ОЕҚ-на) шинасы, бұлар ядроның
мəліметтерге бір уақытта қол жетімділігін қамтамасыз етіп, процессорда
ақпарат алмасуды бірнеше есеге арттыруға мүмкіндік береді.
Кэш-жады жұмысының жылдамдығы тек жиілікке ғана емес, сонымен
қатар шинаның еніне де байланысты болады.
84
К1 жəне К2 арасындағы байланыстың аппаратты жүзеге асуы көбінесе
процессорлар арқылы немесе ақпаратты бір уақытта жіберіп жəне
қабылдап ала алатын екі бағытты 64-разрядты шина, не болмаса ені 256
битке дейінгі, симплексті режимде жұмыс істейтін бір бағытты шина
арқылы орындалады.
Элементарлық микрокоманда (микронұсқаулық немесе микрооперация)
ядросының ішкі жүйесінде командалардың өзгеруі үшін қайта кодтайтын
блок – декодер пайдаланылады. Мұнымен қатар, бір машиналық команда
бірнеше микрокомандадан бірізділікке өзгеруі мүмкін. Декодер қазіргі
процессорлардың бөлігі болып саналады. Одан тез əрекет ету
микронұсқаулық
ағынының
атқарушы
функционалды
блогына
ақпараттардың уақытылы жəне үздіксіз түсуіне байланысты.
Процессордың қалай құрастырылуына байланысты, НК1 бастапқы
қалпында, ішінара өзгертілген немесе декодталған түрде, яғни
микрокоманда жиынтығын пайдалану үшін дайындалған түрде сақталуы
мүмкін. Кэш-жадыда қажетті нұсқаулық (бастапқы немесе өзгертілген)
болмаған жағдайда, олар К2-ден оқып алынады, бұл қажет болған
жағдайда, оларды НК1 кэшіне орналастыру алдында, алдына-ала
декодталуға ұшырата отырып орындалады. Сөйтіп, егер команда
қайталанып орындалып жəне ол НК1-де тұрса, процессор декодеріне оны
микрокоманданың бірізділігіне қайта өзгеру қажет емес, өйткені ол кэште
декодталған күйде болады.
Қазіргі процессорлар орындауға тек ағымдағы бағдарламаға сəйкес, дəл
осы шақта орындау қажет етілетін команданы ғана емес, одан кейін келетін
команданы да жүргізуге қабілетті. Сондықтан, процессорлардың көпші-
лігінде нұсқаулық НК1-ден оқылады жəне 2 декодерге (ол бар болған
жағдайда) жəне өткізгіш болжағышқа (тармақталған бағдарламаға)
жіберіледі. Өткізштерді болжағыш блогы алдын-ала, өткізгіш жүргізілетін
команда адресін болжайды.
Декодер микрооперацияда бастапқы (кейде декодталған) нұсқаулықты
өзгертеді, ал өткізгіштерді болжағыш, өңделетін блокта өткізгіш команда
бар-жоғын, егер бар болса, бұл өткізгіш аяқталады ма жəне оның қандай
адреске бағытталғанын анықтайды.
Тармақталған болжау шартты өткізгіштің бұрын орындалған коман-
дасының қатарларының анализі нəтижесінде орындалады. Егер есептеу
процесінде қатарынан бірнеше рет, белгіленген адреске өткізу нəтиже
ретінде шықса, онда келесі өткізу сол жерге жіберіледі. Егер өткізу мүмкін
ретінде болжалса, онда НК1 кэште болжанған адрестегі нұсқаулық блогы
қосымша оқылады.
85
Өткізгіш қате болжанған жағдайда, бұдан кейінгі операцияларда артық
жəне талап етілмеген процестер орындалады.
Мəліметтерге қолжетімділік уақытын қысқарту жəне бағдарламаларды
орындау жылдамдығын арттыру үшін процессорда мəліметтерді қайта
таңдау блогы орналастырылады, ол кэшке мəліметтерді озық түрде жүктеу
есебінен ОЕҚ-на жүгіну кезінде, кідірістердің орнын толтырады.
Ескертілетін əрекеті бар, мəліметтерді таңдау алгоритмі жүйелік жадыдан
ақпараттар оқылатын тұрақты адрестерді үнемі қадағалайды жəне
осылардың негізінде, бағдарламаның келесі қиылып алыну жұмысы үшін
мəліметтер қандай адрестен оқылуы тиіс екенін болжайды. Мысалы,
болжау негізінде мəліметтер оперативті есте сақтау құрылғысынан екінші
деңгейлі кэшке ағымдағы бағдарламада іске асудан бұрын оқылуы мүмкін.
Процессорларда мəліметтерді қайта таңдау адрестердің көбеюімен
қатар, олардың кемуі ретінде де жұмыс істеуі мүмкін.
Қате болжау кезінде кэште талап етілмеген мəліметтер жүктеліп, қажет
мəліметтер ығысып шығып қалуы мүмкін. Алайда, мұндай жағдайлар сирек
орын алады жəне мəліметтерді қайта таңдау блогы жұмысының
тиімділігіне қатты əсер етпейді.
Бағдарламада үнемі параллельді орындалуы мүмкін командалардың
бірізділігі болады (егер олар бастапқы мəліметтер бойынша жəне нəтижені
орналастыру орны бойынша бір-біріне тəуелсіз болса). Мұнымен қатар,
кейбір командалардың есептеу алгоритмін бұзбай оларды қолдану
тəртібінің ауысуы есебінен кезектен тыс орындалуына жол беріледі, бұл
бағдарламалардың орындалу жылдамдығын арттырады.
Бірнеше командалардың бір уақытта орындалуы үшін соңғы үлгідегі
процессорларға ішкі конвейерлер орнатылған.
Бірнеше командалардың бір уақытта орындалу технологиясы
суперскалярлық деп аталады.
Ядрода командалардың параллель жəне кезектен тыс жүзеге
асырылуын, орындалатын уақыты бойынша реттелген, арнайы кезекте
микрокомандалар сақталатын буфер ретіндегі микрокоманда конвейерінің
блогы жүзеге асырылады. Конвейерде сонымен қатар, бөлінген ресурстар
(тағайындалған ресурстар жəне командаларды параллельді жəне кезектен
тыс орындайтын функционалдық құрылғылар) туралы барлық қажетті
қосымша мəліметтер де сақталады.
Конвейер ұзындығы бір уақытта орындалатын микронұсқаулықтар
санын жəне жеке командалардың іске асырылу уақытын анықтайды.
Достарыңызбен бөлісу: |