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



Pdf көрінісі
бет20/121
Дата31.08.2022
өлшемі2,81 Mb.
#38343
түріОқулық
1   ...   16   17   18   19   20   21   22   23   ...   121
сегіз 
тәуелсіз 
функционалды 
құрылғылардан тұрды және бір мезгілде параллельділік және конвейерлік 
ӛңдеу пайдаланылды. CDC 7600 моделінің тағы бір ерекшелігі, мұнда 
екідеңгейлі жады іске асырылды: есептеу секциясы дәстүрлі режимде «аса 
оперативті» жадымен (64 К 60-разрядты сӛз) жұмыс істейді. Бұл жадыға 


30 
қажетті жағдайда негізгі жадыдан (512 К 60-разрядты сӛз) деректер 
енгізіледі. CDC-7600 компьютерінің тактілі уақыты 27,5 нс, орташа 
ӛнімділігі секундына 10-15 млн. операция.
Деректерді параллель ӛңдеу идеясының дамуындағы келесі маңызды 
орынды ILLIAC IV компьютері құрастырылуымен байланыстырады. Бұл 
жобаның басты идеясы – синхронды жұмыс істейтін процессорлар 
матрицасы ILLIAC IV компьютерінің архитектурасы 1962 жылы 
сипатталған SOLOMON жүйесі концепцияларына негізделді. Алғашқы жоба 
бойынша ILLIAC IV компьютерінің негізін, әрқайсысында 64 элемент бар 
тӛрт квадрантқа жинақталған 256 процессорлық элементтен тұратын матрица 
құрады (11 сурет).
11 сурет. ILLIAC IV матрицалық жүйесінің жобасы 
Жоспар бойынша жүйе жалпы басқару арқылы жұмыс істеу керек 
болатын, алайда әрбір квадрантта синхронды жұмыс істейтін процессорлық 
элементтер үшін командалар беретін ӛзінің жеке басқару құрылығысы 
орналасты. Мұнда екі квадрантты 128 процессорлық элементтен тұратын бір 
квадрантқа біріктіру немесе барлық тӛрт квадрантты 16×16 бір матрица 
ретінде есептеу мүмкіндігі қарастырылған. Жоба бойынша компьютердің 
такті уақыты 40 нс, ал шектік ӛнімділігі секундына 1 миллиард нақты 
операцияға тең болады деп жоспарланған. Әрине, бұл ӛз уақытындағы 
күрделілігі және масштабы жағынан фантастикалық жоба екені анық. Жүйені 
құру 1967 жылы басталып, 1972 жылы 64 процессорлық элементтен тұратын 
бір квадрант дайындалды. Бұл жүйе NASA Ames (АҚШ) ғылыми-зерттеу 
256 ПЭ
1
28
ПЭ
12
8 ПЭ
3 квадрант 64 процесс.эл. 
4 квадрант 64 процесс.эл. 
Басқару құрылғысы 
Басқару құрылғысы 
2 квадрант 64 процесс.эл

Басқару құрылғысы 
1 квадрант 64 процесс.эл

Басқару құрылғысы 


31 
орталығына орнатылып, 1975-ші жылдарға дейін толықтыру жұмыстары 
жүргізілді. Бұл бір экземпляр күйінде дайындалған жүйе нақты пайдалануда 
1982-ші жылға дейін болып, соңында музейге ӛткізілді. Нәтижесінде не 
алынды? Тӛрт квадранттан және 256 процессорлық элементтен тұратын 
матрица жасау жоспарланып, біреуі ғана жасалынды, технологиялық 
пайымдаулар бойынша тактілік жобалау уақытын 80 нс-ке дейін арттыруға 
тура келді, тӛрттен бір бӛлігін дайындау құнының ӛзі алдын-ала есептелген 
сомадан тӛрт есе жоғары болды, ал оның нақты ӛнімділігі секундына 50 млн. 
операцияға ғана жетті. Әрине, жобаны толық орындау мүмкіншілігі болмады, 
бірақ бұл жоба компьютерлердің келесі буынының архитектурасы және 
параллель есептеу жүйелерінің бағдарламалық қамтамасының кӛптеген 
компоненттерінің дамуына да зор үлесін қосты. Жобада қарастырылып, 
пысықталған технологиялар, параллельдеу компиляторлары туралы идеялар 
кейінірек PEPE, BSP, ISL DAP және де басқа кӛптеген жүйелерді, параллель 
компьютерлер мен супер ЭЕМ-ын құруда кеңінен пайдаланылды.
Компьютерлердің командалар жүйесіне векторлық операцияларды да 
енгізу идеясы кӛптен бері ғалымдар мен ізденушілерді қызықтырып келді. 
Біріншіден, векторлық операцияларды пайдалану машиналық командалар 
терминінде кӛптеген есептеу фрагментерін әлдеқайда қарапайым қысқа түрде 
жазуға мүмкіндік береді. Егер екі векторды қосу С = А + В керек болса, онда 
бірнеше қосымша командаларды (индексті үлкейту, циклдан шығу шартын 
тексеру, циклдің басына кӛшу және т.б.) орындау қажеттілігі жойылып, оның 
орнына, сәйкесінше, векторлық команданы пайдаланса жеткілікті. Кӛріп 
отырғанымыздай, есептеу тиімділігі дәстүрлі үлгілерден кӛп жоғары. 
Екіншіден, кӛптеген алгоритмдерді векторлық операциялар терминінде жеңіл 
ӛрнектеуге болатындығы. Үшіншіден, осындай операциялар конвейерлік 
құрылғыларды пайдалануда максимал тиімділікке жетуге мүмкіндік 
беретіндігі. 
Векторлық командалар үлкен жетістіктермен пайдаланылған есептеу 
жүйелерінің жобаларына мысалдарды кӛптеп келтіруге болады. Солардың 
ішіндегі 
ең 
бастысы 
ретінде 
Cray 
векторлы-конвейерлік 
суперкомпьютерлерін айта кету керек. 
1972 жылы Control Data Corporation компаниясының вице-президенті 
және кӛптеген есептеу машиналарының бас конструкторы болған С. Крэй 
компанияны тастап, жаңа Cray Research компанияcының негізін қалайды. 
Жаңа компания 1976 жылы ӛзінің бірінші векторлы-конвейерлік 
компьютерін 
Cray-1 
құрастырып 
шығарады. 
Аталған 
компьютер 
архитектурасының негізгі ерекшеліктеріне векторлық командалар, тәуелсіз 
конвейерлік функционалдық құрылғылар және дамыған регистрлік 
структурасын 
айтуға 
болады. 
Конвейерлік 
және 
функционалдық 
құрылғылардың тәуелсіздігі компьютердің жоғары теориялық ӛнімділігін 
анықтады (бір тактіде екі операция), практика жүзінде векторлы командалар 
жоғары ӛнімділікке жету жолын қысқартты (конвейерлердің тиімді 


32 
жүктелуі), ал регистрлі функционалды құрылғылар жұмысы санаулы 
операциялар кезінде де жоғары ӛнімділікке жетуге мүмкіндік берді.
Cray-1 компьютерінің жалпы сипаттамалары: тактілік уақыты 12,5 нс, 
конвейерлік функционалдық құрылғылар саны – 12 және де бұл конвейерлік 
функционалдық құрылғылардың бәрі де бір-біріне тәуелсіз бір мезгілде
жұмыс істей алады, жедел жадысы 1 Мс-ға дейін, компьютердің шектік 
ӛнімділігі секундына 160 млн. операция. Кейінгі тарауларда, біз Cray-1 
компьютерінің архитектурасына кӛп ұқсас, бірақ одан 15 жыл кейін пайда 
болған Cray-С90 векторлы-конвейерлік компьютерінің архитектурасы мен 
бағдарламалау ерекшеліктеріне жеке тоқталатын боламыз. 
Сонымен, компьютер архитектурасының ерекшеліктерін талдай келе 
біз ӛте маңызды мәселелердің біріне бірнеше рет тоқталып ӛттік – ол мәселе 
процессор жұмысының жылдамдығы және жадыдан деректерді таңдау 
уақыты арасындағы үйлесімділік (келісімділік) мәселесі. Бір компьютерлерде 
жадының қабатталуы пайдаланылса, біреулеріне дамытылған регистрлік 
структура, кӛпдеңгейлі жады, кэш-жады немесе т.б. енгізілген, бірақ барлық 
жағдайда да жадыны осылайша ұйымдастыру ерекшеліктері тек бір мақсатқа 
жету үшін бағытталған – деректерді және командаларды таңдауды 
жеделдету.
Бағдарламалардың басым кӛпшілігінің орындалу процесі екі қасиетпен 
сипатталатыны белгілі: есептеудің жергіліктілігі және деректерді пайдалану 
жергіліктілігі. Екі жағдайда да бағдарламаның жұмысы үшін қажетті келесі 
объект (команда немесе операнда) жедел жадыда алдыңғы объектіге 
«жақын» жерде орналасады. Бір оператордан және кӛп итерациядан тұратын 
цикл – жоғары есептеу локальділігі ұйымдастырылған бағдарлама 
фрагментінің идеалды мысалы бола алады. Тәжірибе жүзінде кӛптеген 
бағдарламаларда осы екі қасиет есептеудің жергіліктілігі және деректерді 
пайдалану жергіліктілігі де кездеседі. Әрине, бұл заңдылық емес. 
Подпрограммалар және функцияларды шақыру, массивтерді жанама 
адрестеу, кӛп ӛлшемді массивтер және деректердің күрделі структурасымен 
сәтсіз жұмыс істеу, әртүрлі шартты операторларды пайдалану – мұның бәрі 
нақты бағдарламалардағы жергіліктілік қасиетінің әлсіздену себебінің тек 
шамалы тізімі ғана.
Бағдарламалау тілдеріндегі есептеу және деректерді пайдалану 
жергіліктілігін анықтайтын негізгі конструкция циклдар болып табылады. 
Әрине, цикл денесін жылдам жадыға орналастырған орынды, себебі келесі 
итерацияда дәл сол командаларды орындау қажет болуы мүмкін. 
Деректермен де осыған ұқсас ситуация: жиі пайдаланылатындардың 
барлығын да, оқу/жазу уақыты және процессордың жұмыс істеу 
жылдамдығы әруақытта үйлестірілген (келісілген) регистрларда сақтаған 
тиімді. Бірақ-та, деректердің үлкен кӛлемін регистрларде ұстау мүмкін емес. 
Бұндай жағдайларда жады иерархиясындағы келесі деңгей, мысалы, кэш-
жады пайдаланылады. Егер кэш-жады кӛлемі жетпесе, онда келесі деңгейді 
іске қосуға және т.с. болады. Күнделікті ӛмірден бұл фактіге ұқсас кӛптеген 


33 
мысалдар келтіруге болады. Мысалы, кітапхананың оқу залын қарастырып 
кӛрелік. Күнделікті қажеттінің бәрі залдағы қол жетімді жұмыс столдарына 
(регистрлар) қойылады, жиі пайдаланылатын кітаптар қоры осы залдағы 
сӛрелерге жайғастырылады (кэш-жады), негізгі кітаптар қоры залға жақын 
маңдағы бӛлмелерде сақталады (негізгі жады), кейбір жағдайларда 
кітапхананың абоненттік бӛліміне, архив қорларына баруға тура келеді 
(дискілік жады), табылмаған кітаптарды басқа кітапханалардан заказ беретін 
кездер де кездеседі (магниттік лентадағы (дискідегі) архив).
Жадының әртүрлі деңгейлерін нақты пайдалануға ӛте кӛп мысалдар 
келтіруге болады. Бұл регистрлар және регистрлік файлдар, түрлі деңгейдегі 
кэш-жадылар, негізгі жедел жады, виртуалды дискілер, қатты дискілер, 
ленталық роботтар және т.б. кӛптеген түрлері. 
Әрине, әрбір компьютердегі жады иерерхиясын қалыптастыру 
заңдылығы бірдей: иерархия деңгейі жоғары болған сайын деректермен 
жұмыс істеу жылдамдығы да жоғары. 
Жады иерархиясын пайдаланудың тиімділігі ертеде белгілі болды. 
Жоғарыда қарастырылған ILLIAC IV компьютерінің ӛзінде тӛрт деңгейді 
бӛлуге болады. Әрбір процессорлық элемент 6 бағдарламалық адрестелген 
регистрлерді және 2048 сӛзге арналған ӛзінің жеке жергілікті жедел жадысын 
қамтыды. Деректерді сақтау үшін әрбірі 1 Гбит болатын екі қатты диск 
пайдаланылды, ал деректерді ұзақ мерзімге сақтау үшін, сыйымдылығы 10
12
бит болатын бір реттік жазбалы лазерлік жады қолданылды (аргондық лазер 
сәулесі барабанға бекітілген, жұқа металдан жасалған пленкаға тесіктер 
күйдіріп түсірді). 
Әрине, жады иерархиясының параллелділікке тікелей қатысы жоқ. 
Бірақ, ол, компьютер ӛнімділігін жоғарылату үшін ӛте үлкен роль атқаратын 
компьютер архитектурасының ерекшеліктерінің біріне жататыны сӛзсіз. 
Қазіргі уақытта жады иерархиясын пайдалану, суперкомпьютерлерден бастап 
дербес компьютерлерге дейін жоғары деңгейде жолға қойылған 


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




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

    Басты бет