Читайте также: |
|
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 компьютерінің архитектурасы, бір векторлық операцияның нәтижелері регистрін келесі векторлық операция үшін кірістік регистр ретінде пайдалануға мүмкіндік береді. Бір операцияның шығысы бірден келесінің кірісіне беріледі және де соңғысы біріншінің аяқталуын күтуі міндетті емес, ал қандай да бір уақыттан кейін онымен бір мезгілде жұмыс істей бастайды. Бұндай ситуация векторлық операциялардың ілінісуі деп аталады.
Жалпы алғанда, ілінісу тереңдігі кезкелген болуы мүмкін, мысалы, векторларды оқу, қосу операциясын орындау, көбейту операциясын орындау, векторларды жазу және т.б.
26 сурет. Cray C90 компьютерінде векторлық операциялардың орындалуы
Бұл жерде де ілінісудің негізгі тағайындалуы тағы да деректерді өңдеудің жылдамдығын арттыру болып табылады. Мысалы, бізге әрбір кірістік векторы n элементтен тұратын Ai=Bi+Ci*d түріндегі операцияны орындау қажет делік және де біздің қол астымызда, сәйкесінше, l1 және l2 баспалдақтан тұратын қосу және көбейту функционалдық құрылғылары болсын. Егер берілген операцияны дәстүрлі әдіспен орындайтын болсақ, яғни бірінші көбейту векторлық операциясын, сонан кейін қосу операциясын, онда барлық операция l1 + l2 +2* n – 2 тактіде іске асатын болады. Егер де осы операция үшін ілінісу режимі пайдаланылатын болса, онда негізінен ұзындығы l1 + l2 болатын бір конвейер алынады, онда барлық операцияны орындау уақыты да l1 + l2 + n – 1 –ге дейін қысқарады. Берілген кірістік вектор саны n үлкен болған жағдайда, операцияның орындалу уақыты дәстүрлі әдіспен салыстырғанда екі есеге дейін азаяды. Бұл ситуация сызба түрінде 27 – ші суретте көрсетілген.
27 сурет. Cray C90 компьютерінде векторлық операциялардың ілінісуі
Дата добавления: 2015-10-29; просмотров: 256 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Жедел жады құрылымы | | | Ортақ жадылы параллель компьютерлер |