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

5. Конвейерлердің құрылымы және жұмыс алгоритмі. Суперскалярлы архитектураның ерекшеліктері.

Командаларды жылдам орындаудың кедергісі оларды жадыдан шақыру екендігі белгілі. Бұл проблеманы шешу үшін командалардың жадыдан алдын ала шақыратын құрылғы ойлап тапты, ол кезде команда буферден тікелей көшірілетін және оның жадыдан оқылуын күту қажет емес болды. Бұл идея 1959 жылы құрастырылған IBM Stretch құру кезінде пайдаланылған.

Конвейерлер күту уақыты (бір команданың орындалуы қанша уақыт алады) және процессордың өткізгіштік қабілеті арасындағы (бір сеукнд ішінде процессор қанша млн команда орындай алады) компромисті табуға мүмкіндік береді. Суперскалярлы архитектура кезінде командаларды шақырудың жалпы режимі жадыдан бірден екі команданы алып, олардың әрқайсысын конвейерлердің біріне орналастырады. Әр конвевйердің параллельді операцияларға арналған АЛУ болады. екі команда қатар орындалуы үшін олардың арасында ресурстарды пайдалану кикілжіңдері болмауы керек, олардың бірі екіншісінің нәтижесіне тәуелсіз болуы керек. Конвейердағы сияқты компилятор кикілжіңдердің болмауын қадағалап отырады немесе кикілжіңдер командалардың орындалуы барысында қосымша аппараттық жабдықтаманы қолдану арқылы анықталып, түзетіледі.

6.Қазіргі кездегі компьютерлерді дайындаудың негізгі принциптері. Командалар және процессорлар деңгейіндегі параллелизмнің мәні.

Әмбебап процессор өндірушілері барынша ұстанғылары келетін кей кезде RISC принциптері деп аталатын процессорды құрастыру принциптері болады. соларға тоқталсақ: міндетті түрде барлық командаларды аппараттық жабдықтама орындауы тиіс. Барлық қарапайым программалар аппараттық жабдықтама арқылы орындалады. Оларға микрокомандалар интерпретация жасамайды. CISC компьютерлерінде күрделірек программалар әрқайсысы микрокомандалар тізбегі ретінде орындалатын бірнеше бөлікке бөліне алады. Бұл қосымша операция машинаның жұмыс істеу жылдамдығын төмендетеді. Компьютер командалардың үлкен санын орындауды бастауы керек. Заманауи компьютерлерде жұмыс өнімділігін арттырудың бірнеше әдісіс бар, олардың негізгісі – секунд бірлігінде командалардың мүмкін болатын ең үлкен санын орындау. 500-MIPS процессоры 500 млн команда орындай алады, оларға қанша уақыт кететіні бұл жерде маңызды емес. Бұл принцип жұмыс өнімділігін арттыруда параллельділік маңызды рөл атқарады дейді. Командалар оңай кері кодталуы керек. Бір секунд ішінде шақырылатын командалар саны жеке командалардың декодталу процесіне байлансты болады. командалардыі декодталуы қандай ресурстардың керек екенін және қандай амалды орындау керектігін анықтау үшін жүргізіледі. Жадыға тек жүктеу және сақтау командалары жүгіне алады. Операцияны жеке қадамға бөлудің қарапайым әдістерінің бірі – көпетген командалар үшін операндтар регистрден алынуы тиістілігі және қайтадан сол жерге қайтып бару керектігі. Жадыға қол жеткізу көп уақыт алатындықтан бұл командалардың жұмысын басқа командалар атқара алады, әрине егер олар регистрлер мен жады арасында операндтарды жылжытудан басқа еш нәрсе атқарып жатпаған болса. Осыдан шығатыны – жадыға тек сақтау және жүктеу командалары жүгіне алады. Регистрлердің саны көп болуы керек. Жадыға қол жеткізу баяу жүргізілетіндіктен, компьютерде регистрлер көп болуы тиіс (кем дегенде отыз екі). Егер сөз бұрын жадыдан шақырылса, онда ол келесі рет қайта қажет етілгенге дейін регистрде сақталады. Артық орналастырулардан сақтанудың бір жолы – қажетті регистрлер санының болуы. Компьютер өндірушілері өздері шығарған машинаның жұмыс өнімділіктерін барынша арттыруды қалайды. Компьютерді тезірек жұмыс істетудің бір әдісі – олардың жылдамдықтарын арттыру. Параллелизмнің екі түрі болады: командалар және процессорлар деңгейіндегі параллелизм. Бірінші жағдайда бірнеше команда қатар орындалу арқылы бір секунд ішінде процессордың бірнеше команда орындауын қамтамасыз етеді. Екінші жағдайда бір операцияны орындау үшін бірнеше процессор іске қосылады. Командаларды жылдам орындаудың кедергісі оларды жадыдан шақыру екендігі белгілі. Бұл проблеманы шешу үшін командалардың жадыдан алдын ала шақыратын құрылғы ойлап тапты (конвейерлер), ол кезде команда буферден тікелей көшірілетін және оның жадыдан оқылуын күту қажет емес болды. Бұл идея 1959 жылы құрастырылған IBM Stretch құру кезінде пайдаланылған. Командалар деңгейіндегі параллелизм кезінде конвейерлер мен суперскалярлы архитектура жұмыс жылдамдығын небәрі 5-10 есе ғана өсіре алады. Жұмыс өнімділігін 50, 100 және одан да көп есе арттыру үшін бірнеше процессоры бар компьютері қолдану керек. Массивті-параллельді процессор (array processor) әр түрлі мәліметтер жиыны үшін қолданылатын командалар тізбегін орындайтын бірнеше ұқсас процессордан тұрады. Ең алғашқы мұндай процессор ILLIAC IV болды. Алғашқыда әр секторы 8x8 процессор-жады элементтерінен тұратын төрт секторлы машина құрастыру көзделді. Әр сектордың бір бақылау блогы болды. Ол барлық процессорлар бір уақытта орындайтын командаларды жіберіп тұрады, ол кезде әр процессор өз жадысындағы мәліметтер жұмыс істейтін. Массивті-параллельді процессорлар сияқты векторлық процессорлар да мәліметтер элементінің жұбымен жұмыс істегенде өте тиімді болып табылады. Бірақ біріншісінен өзгешелік ретінде, барлық қосу амалдары конвейерлік құрылымы бар бір блок ішінде орындалады. Ортақ жадыны пайдаланатын мультипроцессорлар — бірнеше процессор және солардың барлығына көрінетін бір адрестік кеңістіктегі компьютерлік жүйе. Ол операциялық жүйенің бір данасын сақтайды және ондағы қай беттің бос, қайсысының бос емес екендігін анықтайды. Процесс бұғатталған кезде, процессор өз күйін ОЖ кестелерінде сақтайды, содан кейін орындалуы тиіс процесті табу үшін осы кестелерді бір қарап шығады. Барлық компьютерлер сияқты мультипроцессордың да енгізу-шығару құрылғысы болады (дисктер, адаптерлер). Кей мультипроцессорлық жүйелерде анықталған процессорлардың ғана енгізу-шығару құрылғыларына енуге мүмкіндіктері болады. егер барлық процессорлардың жадының кез келген бөлігіне немесе енгізу-шығару құрылғыларына енуге мүмкіндіктері болса және әр процессор басқа процессорлармен өзара байланысқан болса, онда ондай жүйе SMP (Symmetric Multiprocessor — симметриялық мультипроцессор) деп аталады.

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