Оқулық Қазақстан Республикасы Білім және ғылым министрлігі бекіткен Алматы, 2011



Pdf көрінісі
бет17/121
Дата31.08.2022
өлшемі2,81 Mb.
#38343
түріОқулық
1   ...   13   14   15   16   17   18   19   20   ...   121
Байланысты:
duisembiev-parallel-esep

Конвейерлік ӛңдеу 
Алдыңғы мысалда, бір қосу операциясын орындау үшін, құрылғы бес 
тактіге бұғатталып басқа ешқандай жұмыс орындамаған болатын. Бұның 
тиімділігі бар ма және енгізілетін массив элементтерінің барлығын ӛңдеу 
процесін одан да тиімді ұйымдастыруға бола ма?


24 
8 сурет. Бір операцияны әрбірі бес тактіде орындайтын екі бірдей тізбекті
құрылғының көмегімен С=А+В векторларын қосу 
Бұл сұраққа жауап беру үшін нақты сандардың компьютерде берілуін 
еске түсіруіміз керек. Мұнда әрбір сандар жұбын қосу микрооперациялар 
тізбегі түрінде орындалады, ретін салыстыру, ретін теңестіру, мантиссаларын 
қосу, нормализациялау т.б. Жақсы жағы: әрбір енгізілген сандар жұбын 
ӛңдеу процесінде микрооперация бір рет қана және әруақытта бір тәртіппен 
бірінен кейін бірі іске қосылады. Бұл, бірінші микрооперация ӛз жұмысын 
орындап нәтижесін екіншісіне бергеннен кейін, ағымдағы жұпты ӛңдеу үшін 
бұдан ары оның қажеті болмайды, яғни ол, құрылғыға енгізілуді күтіп тұрған 
келесі аргументтер жұбын ӛңдеуді бастай алу мүмкіндігі бар деген сӛз.
Осы айтылғандарды ескере отырып, құрылғының келесі түрде 
құрастырылуын қарастырайық. Әрбір микрооперацияны құрылғының жеке 
бӛлігінде белгілеп алып, оларды орындалу тәртібі бойынша орналастырамыз. 
Алғашқы уақыт мезетінде енгізілген мәндер ӛңдеу үшін бірінші бӛлікке келіп 
түседі. Бірінші микрооперация орындалғаннан кейін, бірінші бӛлік ӛз 
жұмысы нәтижесін екінші бӛлікке береді де, ӛзі ӛңдеуге жаңа жұпты алады. 
Осылайша, енгізілген аргументтер ӛңдеудің барлық этапынан ӛткеннен 
кейін, құрылғыдан шығарда операцияның орындалу нәтижесі алынады. 
Есептеуді ұйымдастырудың осындай тәсілі – конвейерлік өңдеу деп 
аталады. Құрылғының әрбір бӛлігі конвейердің баспалдағы, ал жалпы 


25 
баспалдақтар саны – конвейер ұзындығы деп аталады. Нақты сандарды қосу 
операциясын орындау үшін әрқайысы бір тактіде қосылатын бес 
баспалдақтан тұратын конвейерлік құрылғы жобаланған болсын делік. 
Конвейерлік құрылғының бір операцияны орындау уақыты барлық конвейер 
баспалдақтарының қосылу уақыттарының қосындысына тең. Бұл екі санды 
қосу операциясы бес тактіде орындалады, яғни алдыңғы тізбекті құрылғы 
жағдайындағы осындай операцияның орындалу уақытымен бірдей деген сӛз.
Енді екі массивті қосу процесін қарастырайық (9 сурет). Алғашында, 
бірінші парды қосу нәтижесі бес тактіден кейін алынады. Бірақ мұнда, 
бірінші пармен бірге бір мезетте басқа элементтердің де бӛлшектік ӛңдеуден 
ӛткенін байқаймыз. Конвейерлік құрылғыда әрбір келесі тактіде кезектегі 
элементтер қосындысы пайда болады. Сонымен, барлық операцияны 
орындауға тізбекті құрылғыны пайдаланғанда 500 такті қажет етілсе,
конвейерлік құрылғыда 104 такт қажет етіледі.
Шамамен жалпы жағдайда да осындай болады. Егер конвейерлік 
құрылғы l баспалдақты қамтыса, және әрбір баспалдақ бір бірлік уақытында
қосылса (срабатывает), онда бұл құрылғының n байланыссыз (независимый) 
операцияны ӛңдеу уақыты l+n-1 бірлікті құрайды. Егер де бұл құрылғыны 
монопольді режимінде пайдаланса (тізбекті сияқты), онда ӛңдеу уақыты l×n-
ге тең болады. Нәтижесінде, мәліметтерді конвейерлік ӛңдеуді пайдалану 
есебінен n-нің үлкен мәндері үшін есе үдеу аламыз. 
9 сурет. Конвейерлік құрылғының көмегімен С = А+В векторларының
қосындысын есептеу. Конвейердің бес баспалдағының 
 
әрбірі бір тактіде іске қосылады 


26 
Мұндағы «скалярлық», «векторлық» және «конвейерлік» эпитеттерін 
пайдалану жиі шатасуға әкеліп соқтырады, себебі, олардың кӛбі мағынасы 
жақын «ӛңдеу», «команда» және «құрылғы» ұғымдары үшін де қолданылады. 
Скалярлық команда деп, барлық аргументі тек қана скаляр шама болатын 
команданы айтады. Егер команданың кемінде бір (хотя бы один аргумент) 
аргументі вектор болатын болса, онда мұндай қоманданы векторлық 
команда деп атайды. Мысалы, Сray C90 компьютерінің командалар 
жүйесінде екі нақты санды S
1
және S
2
қосып, нәтижесін S

–ке енгізітін A
scal
 
скалярлық командасы бар S
3
: A
scal
S
1
,S
2
→ S
3
. Сонымен қатар, бір мезгілде 
скаляр командамен бірге екі векторды қосып, нәтижесін үшіншісіне V
3
енгізетін A
vekt
 командасы қарастырылған: A
vekt
V
1
, V

→ V
3
.  
Түскен команданың кодына байланысты (A
scal
немесе A
vekt
) процессор
операнданы скаляр адрестері ретінде немесе вектор бастамасы адресі ретінде 
интерпретациялайды.
Скаляр және конвейерлік құрылғылар арасындағы айырмашылықты біз 
жоғарыда талдап ӛттік. Кейбір жағдайларда, процессор архитектурасына 
деректер векторларын ӛңдеу үшін ғана бағытталған векторлық құрылғылар 
енгізіледі. Мысалы, Сray C90 компьютерінде бүтін сандарды қосудың тек 
скаляр командаларын 
scal
AI
ғана орындайтын
scal
UA
int
конвейерлік құрылғысы 
да және бүтін санды қосудың векторлық командаларын 
vect
AI
ғана орындауға 
арналған конвейерлік құрылғысы 
vect
UA
int
да бар. Айта кетсек, бұл компьютерде
(
scal
AI
және 
vect
AI
бүтін санды командаларынан ерекше) нақты сандарды қосу 
командалары A
scal
 және A
vekt
бір құрылғыда 
real
UA
орындалады. 
Жоғарыда қарастырып кеткендей, конвейерлік құрылғы бір тактіде 
қосылатын l баспалдақтан тұрсын. n элементтен тұратын екі векторды бір 
векторлық команда кӛмегімен немесе осы векторлар элементтерін қосатын 
қатарынан скалярлық командаларды орындау арқылы қосуға болады. Егер 


Достарыңызбен бөлісу:
1   ...   13   14   15   16   17   18   19   20   ...   121




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет