Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Duisembiev-Parallel-esep.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.86 Mб
Скачать

25 Сурет. Cray c90 компьютері жадысының бөлінуі

Сонда да, жадының осындай құрылымы аса типті жағдайларды максималды тез өңдеуге бағытталған. Тізбектей орналасқан деректерді оқу/жазу операциялары шиелініссіз өтеді. Мысалы, барлық бір өлшемді массивтерді өңдеу дәл осылай жүргізіледі. Кезкелген тақ қадаммен орналасқан деректерді таңдау кезінде де шиеленістер туындамайды. Жалпы жағдайда, деректерді таңдау қадамы екі есе дәрежесінен көп болған сайын, соғұрлым пайда болған шиеліністерді шешуге уақыт көбірек қажет етіледі.

Енгізу/шығару секциясы

Компьютердің бұл бөлігі сыртқы құрылғылармен жұмыс істеу үшін, деректерді жіберу (алмасу) жылдамдығы әр түрлі, үш канал түрін пайдаланады:

  • Low-speed (LOSP) channels — 6 Мбайт/с;

  • High-speed (HISP) channels — 200 Мбайт/с;

  • Very high-speed (VHISP) channels — 1800 Мбайт/с.

Процессораралық арақатынас секциясы

Бұл секцияның негізгі қызметі, процессорлардың бір-бірімен арақатынасын бірге ұйымдастыру жұмысын синхронизациялау үшін деректерді және процессорлар арасында басқарушы ақпаратты жіберу (алмасу) болып табылады. Процессор аралық ара-қатынас секциясы, кластерлерге – бірдей топтарға біріктірілген, бөлінетін регистрлер мен семафорлардан тұрады. Әрбір кластер сегіз 32-разрядтық бөлінген адрестік регистрлерден (SB), сегіз 64-разрядтық бөлінген скалярлық регистрлерден (ST) және 32 бірбиттік семафорлардан құралған. Жүйедегі кластерлер саны компьютердің конфигурациясымен анықталады.

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

Процессордың регистрлік құрылымы

Әрбір процессорда негізгі және аралық регистрлер жиыны болады. Негізгі регистрлерге адрестік регистрлер А, скалярлық регистрлер S және векторлық регистрлер V жатады. Жады және негізгі регистрлер арасындағы аралық сақтаушы рөлін атқаратын аралық В және Т регистрлері, сәйкесінше А және S регистрлері үшін де қарастырылған. Барлық негізгі регистрлер жадымен және функционалдық құрылғылармен байланысқан, ал А және S регистрлері сәйкес аралық регистрлермен қосымша байланыс түзейді. Аралық регистрлер тек жадымен және негізгі регистрлермен байланысқан, олардың функционалдық құрылғылармен тікелей байланысы жоқ. Айта кету керек, бұл компьютерде дәстүрлі кэш-жады да қарастырылмаған.

Компьютер құрылымында 8 адрестік регистрлер, негізінен А жиынында және 64 регистр аралық В жиынында қарастырылған. Адрестік регистрлер адрестерді, ығысулар шамасын көрсету, цикл итерациялар санын және т.б. есептеуге және сақтауға арналған. Осы топтағы барлық регистрлерде 32 разрядтан бар.

Адрестік регистрлер жағдайындағы сияқты скалярлық регистрлердің S негізгі жиынында 8 регистр және аралық Т жиынында тағы 64 регистр бар. Бұл регистрлер, скалярлық арифметика нәтижелерін және аргументтерін сақтауға арналған, бірақ оларда векторлық командалар үшін операндалар болуы мүмкін. Яғни, бұл дегеніміз, скалярлық регистрлер скалярлық та, векторлық та командаларды орындау үшін пайдаланылады деген сөз. Барлық скалярлық регистрлер 64 разрядты.

Әрбір векторлық V регистр 128-ге дейін 64-разрядты сөз сақтай алады. Процессорда барлығы 8 векторлық регистр бар. Аралық регистрлер V жиыны үшін қарастырылмаған. Векторлық регистрлер тек қана векторлық командаларды орындау үшін пайдаланылады.

Векторлық командалардың орындалуына қолдау көрсету үшін екі қосымша регистрлер және VM қарастырылған. Вектор ұзындығы регистрі VL векторлық регистрлерде сақталатын және векторлық операцияларға қатысатын векторлардың нақты ұзындығын қамтиды. Бұл регистр 8 разрядты. Вектор маскасы регистрі VM, кірістік вектор элементтерімен (бәрімен емес) векторлық операцияларды орындауға мүмкіндік береді және ол 128 разрядтан тұрады. Егер маска разряды 1-ге тең болса, онда сәйкес элементтермен операция орындалады, кері жағдайда – орындалмайды. Бұл мүмкіндік, шартты операторларды қамтитын фрагменттерді векторлау кезінде аса пайдалы.

Функционалдық құрылғылар

Cray C90 компьютерінің барлық функционалды құрылғылары конвейерлік болып табылады. Олардағы баспалдақ саны әртүрлі, бірақ әрбір құрылғының әрбір баспалдағы әрқашанда бір тактіде қосылады. Бұл дегеніміз, дербес жағдайда, толық жүктелу кезінде барлық құрылғылар әрбір тактіде нәтиже бере алады дегенді білдіреді. Сонымен қатар, барлық функционалды құрылғылар тәуелсіз және бір мезгілде бір-бірімен жұмыс істей алады.

Cray C90 компьютерінің функционалды құрылғылары төрт топқа бөлінеді: адрестік, скалярлық, векторлық және нақты сандармен операциялар орындауға арналған функционалды құрылғылар.

Адрестік екі функционалдық құрылғы 32-разрядты бүтін сандарды қосуға, азайтуға және көбейтуге арналған. Процессордағы скалярлық құрылғылар саны әрдайым төртеу. Олар бүтін санды қосу/азайту, логикалық разрядтық операциялар, ығысу операциясын орындау және сөздегі бірінші бірге дейінгі нөлдер санын табу үшін пайдаланылады. Скалярлық құрылғылар 64-разрядты деректермен операциялар орындайды және де олар тек қана скалярлық командаларды орындауға арналған.

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

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

Қызығы, функционалдық құрылғылардың әрбір тобында қосу операциясын орындауға арналған құрылғы қарастырылған. Алайда, әрбір жағдайда операция форматы әртүрлі. Адрестік функционалдық құрылғы 32-разрядты бүтін сандарды скаляр қосуды орындайды. Скалярлық құрылғы 64-разрядты бүтін сандарды скаляр қосуға арналған. Векторлық топтағы қосу құрылғысы 64-разрядты бүтін сандардан тұратын векторлармен операциялар орындайды. Соңғы топтағы қосу құрылғысы екі нақты сандарды және векторларды қосу үшін де пайдаланылады. Бұл түрлердің әрқайсысына Cray C90 компьютерінің командалар жүйесінде өз командасы сәйкес келеді, яғни қандай топтың құрылғысында қандай операция орындау қажет екенін, берілген код бойынша аппаратура анықтай алады (түсіне алады). Бұндай ситуация тек қосынды үшін ғана туындамайды. Ол тұтас алғанда компьютер архитектурасына тән және көптеген басқа операциялардың орындалуы кезінде де байқалады деуге болады.

Бұл компьютерде векторлық командаларды орындаудың қызықты ерекшеліктері бар. Әрбір векторлық және нақты арифметикаға арналған құрылғыларда барлық конвейерлер қайталанған (26 сурет). Жұп нөмірлі кірістік векторлардың элементтері әрқашанда 0-ші конвейерге келіп түседі, ал тақ нөмірлі кірістік векторлардың элементтері 1-ші конвейерге түседі. Алғашқы уақыт мезетінде V1 және V2 векторлық регистрлерінің нөлінші элементтері 0-ші конвейердің бірінші баспалдағына келіп түседі және дәл осы мезетте V1 және V2 векторлық регистрлерінің бірінші элементтері 1-ші конвейердің бірінші баспалдағына түседі. Келесі тактіде бірінші баспалдақтың нәтижесі екіншіге орын ауыстырылады (көшіріледі), ал 0-ші және 1-ші конвейерлердің бірінші баспалдағына V1 және V2 векторлық регистрлерінің екінші және үшінші элементтері келіп түседі. Осылайша, алынған нәтижелер V3 регистрінде орналастырылады: 0-ші конвейерден олар жұп нөмірлі элементтерге жазылады, ал 1-ші конвейерден тақтарына жазылады. Нәтижесінде, функционалдық құрылғы максималды жүктелу кезінде әрбір тактіде біреу емес енді екі нәтиже береді.

Нақты арифметикаға арналған функционалдық құрылғыларды пайдаланатын скалярлық операцияларда тек бір, 0-ші конвейер ғана жұмыс істейді.

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

Жалпы алғанда, ілінісу тереңдігі кезкелген болуы мүмкін, мысалы, векторларды оқу, қосу операциясын орындау, көбейту операциясын орындау, векторларды жазу және т.б.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]