Часова багатопотоковість
Часова багатопоточність є однією з двох основних форм багатонитевості, які можуть бути реалізовані на апаратному рівні, інша форма багатопотоковості — одночасна багатопотоковість. Відмінністю між цими двома формами полягає в максимальній кількість одночасних потоків, які можуть виконуватися в будь-якому даному етапі розпаралелення в даному циклі.
Варіації часової багатопотоковості
Є багато можливих варіацій часової багатопотоковості, але більшість з них можна розділити на дві підгрупи: крупнозернисту і дрібнозернисту.
- У крупнозернистій багатопотоковості, головний процесор містить тільки один потік одночасно. Процесор повинен ефективно виконувати швидке перемикання контексту перед виконанням іншого потоку. Це швидке перемикання контексту іноді називають перемикачем потоку. Там може бути або може не бути додатковий цикл, що відповідає за втрату даних, при перемиканні.
Є багато можливих варіацій крупнозернистої часової багатопотоковості, що в основному стосуються алгоритмів, які визначають, коли відбувається перемикання потоку. Цей алгоритм може бути заснований на одному або більше потоків.
- У дрібнозернистій часовій багатопоточності, головний процесор може містити кілька потоків, і переключення контексту ефективно відбувається між етапами. Ця форма багатопоточності може бути більш ресурсовимоглива, ніж крупнозерниста форма, тому що при виконанні ресурсів, які охоплюють кілька етапів потоків, можливо, доведеться мати справу з декількома потоками. Крім того, варто взяти до уваги той факт, що ця конструкція не може бути оптимізована навколо концепції «фотового» потоку — будь-який з паралельних потоків, здійснюваних апаратно може знадобитися для читання або записування на будь-якому циклі.
Порівняння з одночасною багатопотоковістю
У будь-який з його форм, часова багатопотоковість в чомусь схожа на одночасну багатопотоковість. Як і в одночасному процесі, апаратні засоби повинні зберігати повний набір станів в паралельному процесі виконання. Обладнання повинне також зберегти ілюзію, що даний потік привласнив ресурси процесора собі. Правильні алгоритми повинні бути включені в обох типах багатопотоковості, щоб запобігти такому коли один потік займає дуже багато часу або ресурсів.
Часова багатопотоковість має перевагу в порівнянні з одночасною багатопотоковістю в тому, що вона викликає нижче тепловиділення процесора; Однак, це дозволяє тільки одному потоку виконуватися одночасно.