'''Унутрыпрацэсарная шматпаточнасьць''' ({{мова-en|on-chip multithreading}}) дазваляе [[працэсар|працэсару]] адначасова кіраваць некалькімі [[праграмны паток|праграмнымі патокамі]], такім чынам маскіраваць прастоі. СціслаСьцісла прынцып унутрыпрацэсарнай шматпаточнасьці можна выказаць так: калі праграмны паток блакуеццаблякуецца, працэсар можа забяспечыцьзабясьпечыць поўную загрузку апаратуры, запусціўшызапусьціўшы праграмны паток 2.
Два асноўных спосабы рэалізацыі ўнутрыпрацэсарнай шматпаточнасьці:
== Дробнамодульная шматпаточнасьць ==
'''Дробнамодульная шматпаточнасьць''' ({{мова-en|fine-grained multithreading}}) дазваляе выкарыстаць некалькі патокаў, нават калі адзін ззь іх прастойвае.
Пры дробнамодульнай шматпаточнасьці затрымка працэсара на зварот у [[кэш]] маскіруецца шляхам выкананнявыкананьня патокаў «па коле», гэта значыць у сумежных цыклах запускаюцца розныя патокі.
Паколькі розныя праграмныя патокі ніяк паміж сабой не звязаныязьвязаныя, кожнаму ззь іх патрэбны свой набор [[рэгістар|рэгістраў]]. Ён павінен быць распрацаваны для кожнай выкліканай [[каманда|каманды]], і тады [[апаратнае забеспячэннезабесьпячэньне]] будзе ведаць, да якога набору рэгістраў пры неабходнасцінеабходнасьці трэба звяртаццазьвяртацца. Такім чынам, максімальнаямаксымальная колькасцьколькасьць адначасова выкананых праграмных патокаў вызначаецца ў перыядпэрыяд распрацоўкі [[мікрасхема|мікрасхемы]].
Агульнае правіла фармулюецца так: калі ў [[канвеерканвэер|канвеерыканвэеры]] k прыступак, але па крузе можна запусціцьзапусьціць, па меншай меры, k праграмных патокаў, то ў адным патоке ў любы асобна ўзяты момант неня можа выконвацца больш адной каманды, таму канфлікты паміж імі выключаныя. У такой сітуацыісытуацыі працэсар можа працаваць на поўнай хуткасціхуткасьці, без прастою.
Таму для прастою ў k тактаў трэба k+1 патокаў.
== Буйнамодульная шматпаточнасьць ==
У дадзеным выпадку праграмны паток працягвае выконвацца паслядоўнапасьлядоўна, да звароту ў кэш. Пры гэтым губляецца адзін цыкл, так як кожны раз пры прастоі каманды губляецца адзін цыкл, па сваёй эфектыўнасціэфэктыўнасьці '''буйнамодульная шматпаточнасьць''' ({{мова-en|coarse-grained multithreading}}), здавалася б, саступае дробнамодульнай, аднак у яе ёсцьёсьць адна істотная перавага - дзякуючы меншай колькасцьколькасьць праграмных патокаў значна скарачаецца выдатак рэсурсаў працэсара. Пры недастатковай колькасціколькасьці актыўных патокаў гэтая методыкамэтодыка аптымальная.
== ПрынылежнасцьПрынылежнасьць аперацыйапэрацый да патокаў ==
У незалежнасцінезалежнасьці ад варыянту шматпаточнасьці, неабходна як-небудзь адсочваць прыналежнасцьпрыналежнасьць кожнай аперацыіапэрацыі да таго ці іншага праграмнага патоку. У рамках дробнамодульнай шматпаточнасьці кожнай аперацыіапэрацыі прысвойваецца ідэнтыфікатар патока, таму пры перасоўванняхперасоўваньнях па канвеерыканвэеры яе прыналежнасцьпрыналежнасьць не выклікае сумневаў.
Буйнамодульная шматпаточнасьц прадугледжвае магчымасць ачысткі канвеера перад запускам кожнага наступнага патока. У такім разе выразна вызначаецца ідэнтычнасць патока, які выконваецца ў дадзены момант. ▼
▲Буйнамодульная шматпаточнасьцшматпаточнасьць прадугледжвае магчымасцьмагчымасьць ачысткі канвеераканвэера перад запускам кожнага наступнага патока. У такім разе выразна вызначаецца ідэнтычнасцьідэнтычнасьць патока, які выконваецца ў дадзены момант.
[[Катэгорыя:кампутар]]
|