53
§1.2.3 Функционалды құрылғылар жҥйесі
Кезкелген есептеу жүйесі уақыт аралығында жұмыс істейтін
функционалды құрылғылардың жиынтығы. Оның жұмыс сапасын бағалау
үшін әртүрлі сипаттамалар енгізіледі. Оларды практика жүзінде қолдануға
жеткілікті, кейбір құрылғыларының жұмыс процесінің моделі аясында
қарастырайық. Біз функционалды құрылғылар орындайтын операциялардың
мазмұнына үңіліп жатпаймыз, олар арифметикалық немесе логикалық
функция болуы, деректерді енгізу/шығару, деректерді жадыға жіберу немесе
жадыдан қайта алу т.с.с болуы мүмкін. Бізге
қазір сол операциялардың
орындалу уақыты және қандай типті құрылғыда іске асырылатыны маңызды.
Уақытты есептеу жүйесі және оның ӛлшем бірлігі енгізілді делік,
мысалы, секунд. Операцияның орындалу уақыты бірлік мӛлшерімен
ӛлшенеді деп есептейік. Барлық құрылғылар, нақты немесе гипотетикалық,
негізгі немесе қосымша, кезкелген қосылу уақытылы болуы мүмкін.
Мұндағы бір ғана шектеу, ол – бір функционалдық құрылғының (ФҚ) барлық
қосылуларының ұзақтығы бірдей болу қажет. Бізді барлық уақытта, қандай
да бір нақты ФҚ жиынының жұмысы қызықтыратын болады. Осы
жиындардың жұмысын қамтамасыз ету үшін қажетті басқа барлық ФҚ лезде
қосылады деп есептеледі. Сол себептен, арнайы айтылмаса, мұндай жағдайда
олардың нақты түрде бар екенін ескермейміз. Қарастырып отырған ФҚ-ның
қосылу уақытылары
нөлдік емес деп есептейік.
Егер алдыңғы
операция аяқталмай тұрып, кейінгі операциялар
орындалуын бастай алмаса, онда функционалдық құрылғы
қарапайым деп
аталады. Қарапайым ФҚ бір типті операцияларды және әртүрлі
операцияларды орындай алады. Әртүрлі ФҚ операцияларды оның ішінде
бірдей операцияларды да әртүрлі уақытта орындай алуы мүмкін. Қарапайым
ФҚ мысалы ретінде конвейерлік сумматорлар немесе кӛбейтушілерді ғана
келтіріп қоя алмаймыз. Бұл ФҚ операциялардың бір типін ғана жүзеге асыра
алады. Қарапайым құрылғылар ретінде кӛпфункционалды процессорды
санауымызға болады, егер де ол әртүрлі операцияларды бірмезетте орындай
алмаса және біз олардың операцияларды іске асырудағы уақыт
айырмашылығын назарға алмаймыз және оларды бірдей деп санаймыз. ФҚ -
ның негізгі ерекшелігі біреу ғана: әрбір операцияны
орындау кезінде ол
ӛзінің құрылғыларын жеке пайдаланады.
Қарапайым ФҚ қарағанда,
конвейерлік ФҚ бірнеше операцияларды бір
мезетте орындау үшін ӛзінің құрылғыларын бӛліп қояды. Әдетте оның
қарапайым конструкциясы, бірдей уақытта іске қосылатын сызықты ӛрім
сияқты қарапайым элементарлық ФҚ құралады. Осы элементарлық ФҚ,
операцияның жекелеген этаптары тізбекті түрде іске асырылады.
Жылжымалы үтірі бар сандарды қосу операциясын орындайтын конвейерлік
ФҚ жағдайында, оған сәйкес элементтарлық құрылғылар мынадай
операцияларды тізбектей іске асырады: қатарларды салыстыру, мантиссаны
ығыстыру, мантиссаларды қосу және т.б.
Солай болғанымен, мысалы,
54
әмбебап процессорлардың тізбекті ӛрімін конвейерлік ФҚ деп есептеуге
ешқандай кедергі жоқ.
Конвейерлік ФҚ-ның жұмыс істеу принципі бір қалыпта қалады.
Алдымен бірінші элементарлы конвейерлі ФҚ-да бірінші операцияның
бірінші этапы орындалады да нәтиже екінші элментарлы ФҚ-ға беріледі.
Содан кейін екінші элементарлы ФҚ-да бірінші операцияның екінші этапы
орындалады. Осы мезетте, босаған бірінші ФҚ-да екінші операцияның
бірінші этапы іске қосылады. Содан соң екінші ФҚ-ның іске қосылу нәтижесі
үшінші ФҚ-ға, бірінші ФҚ-ның іске қосылу нәтижесі екінші ФҚ-ға беріледі.
Босаған бірінші ФҚ үшінші операцияның бірінші этапын орындауға дайын
тұрады және т.с.с. Конвейердегі барлық элементарлы ФҚ-ды ӛту
кезеңінен
кейін, операция орындалды деп есептелінеді. Элементарлы ФҚ-лар
конвейердің
баспалдақтары (сатылары), ал конвейердегі баспалдақтар
саны – конвейердің
ұзындығы деп аталады. Қарапайым ФҚ-ны конвейер
ұзындығы бірге тең конвейерлі ФҚ деп санауға болады. Сонымен, жоғарыда
айтылып кеткендей, конвейерлік ФҚ кӛбіне элементарлық ФҚ-дың сызықты
ӛрімінен құралады, бірақ бұдан да күрделі конвейерлік конструкциялар
болуы мүмкін.
Конвейерлі ФҚ-ның ӛзі бір-бірімен байланысқан құрылғылар жүйесі
болғандықтан, ФҚ жүйесі жұмысының жалпы қағидаларын орнату қажет.
Кезкелген ФҚ-ның
бір мезетте операцияны
орындауы және алдыңғы
қосылу нәтижесін сақтай алуы мүмкін емес деп есептейік, яғни оның
ешқандай да жеке жадысы жоқ. Алайда, ФҚ-да алдыңғы іске қосылудың
нәтижесі, келесі іске қосылуға дейін (және осы моментті қоса алағанда)
сақталуы мүмкін деп есептейік. ФҚ-да кезекті іске қосылу басталғаннан
кейін алдыңғы іске қосылу нәтижесі жойылады. Барлық ФҚ дербес
командалармен жұмыс істейді делік. Команда берілген мезетте нақты ФҚ-
ның кірістеріне орындалып жатқан операцияның аргументтері басқа ФҚ-ның
қосылуларының нәтижесі ретінде оның шығысынан беріледі немесе болмаса
кіріс деректері, болмаса басқаша түрде де беріледі. Бізге қазір олардың қалай
жеткізілуі маңызды емес.
Маңыздысы, ФҚ-ның кезекті іске қосылу сәтінде,
осы ФҚ үшін енгізілетін деректер қол жетімді болуы, ал берілу (жіберу)
процесі жалпы процестің кідіріп қалуына әкеліп соқтырмауы. Әрине, біз
барлық ФҚ-ның іске қосылу мезетін анықтайтын бағдарламалар дұрыс
құрылып және олар тығырыққа әкеліп тіремейді деп болжам жасаймыз.
Әртүрлі сипаттамаларды анықтау барысында, (ФҚ-ның жұмыс істеуімен
байланысты), белгілі бір уақыт аралығында орындалатын операциялардың
санын қалайда табу керек болады. Бұл сан бүтін болуы тиіс.
Егер уақыт
аралығыт-ға тең, ал операцияның ұзақтығы
τ болса, онда
Т уақыты
аралығында
Т/τ, болмаса (
T/τ) – 1 операция орындауға болады. Уақыт
аралығы
Т операция ұзақтығымен
τ салыстырғанда үлкен мәнге ие болған
жағдайда [T/
τ] – 1 ≈ Т/
τ тең деп алуға болады. Бұдан әрі бүтінсандылық
символдары және әртүрлі реті аз мүшелермен формулалар мен жазбаларды
күрделендіре бермес үшін, біз әр кезде нәтижелерді жетекшіде келтіретін
55
боламыз,
яғни ол Т
шекке кӛшкенге эквивалентті деген сӛз. Басқаша
айтқанда, бұл туралы арнайы ескертілмесе де, барлық сипаттамалар мен
қатынастар ассимптотикалық сипат алады. Берілген жағдай алынатын
нәтижелердің практикалық маңыздылығын ешқандай тӛмендетпей, олардың
одан әрі кӛрнекілігін арттырады.
Достарыңызбен бөлісу: