Унутрыпрацэсарная шматпаточнасьць: розьніца паміж вэрсіямі

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