Едновременна многонишковост

Едновременната многонишковост, с акроним SMT, е техника за подобряване на общата ефективност на суперскаларни процесори с хардуерна многонишковост. SMT позволява множество независими нишки на изпълнение, за да се използват по-добре ресурсите, предоставени от съвременните компютърни архитектури.

Концепцията за многонишковост е подобна на тази за многозадачност, но в съвременните суперскаларни процесори се реализира на ниво нишка на изпълнение.

При проектирането на процесори има два начина за увеличаване на паралелизма в чипа с по-малко изисквания към ресурсите:

  1. Свръхскаларна техника: която се опитва да увеличи паралелизма на ниво инструкции (ILP) чрез изпълнение на множество инструкции едновременно (наричано: едновременно); чрез "едновременно" изпращане на инструкции (наричано: изпращане на инструкции) към множество излишни единици за изпълнение, вградени в процесора.
  2. Техника за многонишковост на ниво чип (CMT): използване на паралелизъм на ниво нишка (TLP), за да се изпълняват едновременно инструкции от няколко нишки в рамките на един процесорен чип.

Съществуват много начини за поддържане на повече от една нишка в един чип, а именно:

  1. Многонишковост (IMT) : Прекъснато издаване на множество инструкции от различни нишки, наричано още времева многонишковост. Тя може да бъде разделена допълнително на финозърнеста многонишковост или едрозърнеста многонишковост в зависимост от честотата на прекъсващите се издания. Финозърнестата многонишковост издава инструкции за различни нишки след всеки цикъл, докато едрозърнестата многонишковост преминава към издаване на инструкции от друга нишка само когато текущо изпълняващата се нишка предизвика някакви събития с голяма латентност (като грешка на страницата и др.). Многонишковата обработка на груби нива е по-често срещана за по-малко превключване на контекста между нишките. За процесори с по един конвейер на ядро многонишковото управление е единственият възможен начин, тъй като то може да издава само до една инструкция на цикъл.
  2. Едновременна многонишковост (SMT): Издаване на няколко инструкции от няколко нишки в един цикъл. Процесорът трябва да е суперскаларен, за да може да прави това.
  3. Многоядрен процесор на ниво чип (CMP или Multi-core processor): интегрира два или повече суперскаларни процесора в един чип, като всеки от тях изпълнява нишки самостоятелно.
  4. Всяка комбинация от IMT/SMT/CMP

Ключовият фактор за разграничаването им е да се разгледа колко инструкции може да издаде процесорът в рамките на един цикъл и колко са нишките, от които идват инструкциите.

Примери за съвременни SMT процесори

  1. Intel Pentium 4 е първият съвременен процесор за настолни компютри, в който е въведена едновременна многонишкова обработка, като се започне от модела с тактова честота 3,06 GHz, пуснат на пазара през 2002 г., и след това е въведен в редица техни процесори. Intel нарича тази функционалност Hyper-Threading Technology (HTT) и осигурява основен SMT двигател с две нишки. От Intel твърдят, че скоростта се подобрява с до 30% в сравнение с иначе идентичен Pentium 4 без SMT.
  2. Най-новите проекти на архитектурата MIPS включват система SMT, известна като "MIPS MT".
  3. IBM POWER5, обявен през май 2004 г., се предлага като двуядрен DCM или четириядрен или 8-ядрен MCM, като всяко ядро включва двунишково SMT устройство. Реализацията на IBM е по-усъвършенствана от предишните, тъй като може да задава различен приоритет на различните нишки, по-фина е и SMT двигателят може да се включва и изключва динамично, за да се изпълняват по-добре онези работни натоварвания, при които SMT процесорът не би увеличил производителността. Това е втората реализация на IBM на общодостъпна хардуерна многонишковост.
  4. Intel Atom, пуснат на пазара през 2008 г., е първият продукт на Intel с функция SMT (предлагана на пазара като Hyper-threading), без да поддържа пренареждане на инструкциите, спекулативно изпълнение или преименуване на регистрите.

Свързани страници

Въпроси и отговори

В: Какво представлява едновременната многонишковост?


О: Едновременната многонишковост (SMT) е техника за подобряване на общата ефективност на суперскаларни процесори с хардуерна многонишковост. Тя позволява множество независими нишки на изпълнение, за да се използват по-добре ресурсите, предоставени от съвременните компютърни архитектури.

Въпрос: Как се сравнява SMT с многозадачната работа?


О: Концепцията за многонишковост е подобна на тази за многозадачност, но се реализира на ниво нишка на изпълнение в съвременните суперскаларни процесори, докато многозадачността се реализира на ниво процес.

Въпрос: Кои са двата начина за увеличаване на паралелизма на чипа?


О: Двата начина за увеличаване на паралелността на чипа са суперскаларна техника и многопоточност на ниво чип (CMT).

В: Какви са някои различни видове многопоточност на ниво чип?


О: Различните видове многонишковост на ниво чип включват Interleaved Multithreading (IMT), Fine-Grain Multithreading, Coarse Grain Multithreadin и Simultaneous Multithreadin (SMT).

В: Как можете да направите разлика между IMT/SMT/CMP?


О: Ключовият фактор за разграничаване на IMT/SMT/CMP е да се разгледа колко инструкции може да издаде процесорът в един цикъл и от колко нишки идват инструкциите.

В: Какъв тип процесор трябва да се използва за SMT?


О: За SMT трябва да се използва суперскаларен процесор.

В: Какъв тип процесор се използва при Chip Level MultiProcessing?


О: При Chip Level MultiProcessing се използват многоядрени процесори, които интегрират два или повече суперскаларни процесора в един чип, като всеки от тях изпълнява нишки независимо.

AlegsaOnline.com - 2020 / 2023 - License CC3