Хипернишкова технология

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
Схема на хипернишкова технология: инструкциите се извличат от оперативната памет (с разноцветните правоъгълници са означени инструкциите от четири различни програми), декодират се и се пренареждат (с белите правоъгълници е означено изчакване), и се пращат към ядрото, което може да изпълнява инструкции от различни програми в един и същ такт.[1][2][3]

Хипернишковата технология (на английски: hyper-threading, HTT) е патентована технология на Intel за осъществяване на многонишковост с цел едновременно изпълнение на няколко задачи в x86 микропроцесорите. Появява се за първи път през февруари 2002 г. на сървърни процесори Xeon и през ноември 2002 г. на Pentium 4 десктоп процесори.[4] По-късно, корпорацията Intel включва тази технология в Itanium, Atom и Intel Core процесорите.

За всяко физическо процесорно ядро операционната система генерира две виртуални (логически) ядра и споделя натоварването между тях, когато това е възможно. Основната цел на технологията HTT е увеличаване на броя на независими инструкции в изчислителния конвейер; тя се възползва от суперскаларната архитектура, в която по едни и същи данни могат да работят паралелно няколко команди. С HTT едно физическо ядро изглежда за операционната система като два процесора, което позволява да се планират едновременната работа на два процеса. Освен това, два или повече процеса могат да използват едни и същи ресурси. Това позволява да се увеличи производителността на процесора. Принципът на технологията накратко е да се прехвърли полезна работа към бездействащи устройства.

HTT може да бъде правилно използвана само от специално оптимизирана за целта операционна система, която поддържа многонишковост.[5] Освен това, Intel corporation препоръчва HTT да бъде изключвана, когато операционната система не е предвидена за тази хардуерна функция.

Преглед[редактиране | редактиране на кода]

3 GHz модел на Intel Pentium 4 процесор, който включва технологията за Хипер-поточност[6]

Хипер-поточност технологията, е форма на едновременна многопоточна технология, внедрена от компанията Intel, а идеята зад технологията е патентована от компанията „Сън майкросистемз“. Архитектурно, процесор с хипер-поточност технология се състои от два логически процесора на всяко ядро, всеки от които има собствен процесорно архитектурно състояние. Всеки логически процесор може да бъде индивидуално спиран, прекъсван или пренасочени за изпълнението на определен поток, независимо от други логически процесори, които споделят едни и същи физически ядра.[7]

За разлика от традиционната двупроцесорна конфигурация, която използва два отделни физически процесори, логическите процесори в многонишковите ядра споделят ресурсите за изпълнение. Тези ресурси включват изпълнение на двигателя, кеш памет и системна шина интерфейс; съвместното използване на ресурси, позволява на два логически процесора да работят помежду си по-ефективно, и позволява на логически процесор да заема ресурси от спрени логически ядра (ако приемем, че и двете логически ядра са свързани с една и съща физическо ядро). Процесор спира, когато той очаква данни които е поискал за да може да довърши обработването на сегашната нишка. Степента на ползите виждани при използване на хипер-поточни или многоядрени процесори зависи от нуждите на софтуера, и колко добре той и операционната система са написани за управление на процесора ефективно.

Технологията Hyper-Threading работи чрез дублиране на отделни дялове на процесора—тези които съхраняват архитектурното състояние—но не дублира основните ресурси. Това позволява Hyper-Threading technology процесор, да изглежда като обикновен „физически“ процесор и допълнителен „логически“ процесор за операционната система, което позволява на операционната система, да планира две нишки или процеси едновременно и по подходящ начин.

Посочените характеристики[редактиране | редактиране на кода]

Според Intel, първата многопоточна имплементация използвала само 5% по-голяма площ на кристала от обикновен процесор, но изпълнението е 15 – 30% по-добро.[8][9] компанията Intel твърди, че до 30% увеличение на производителността в сравнение с идентични, без-едновременно многопоточни процесори Pentium 4. Освен това Intel твърди че има значително подобрение на производителността при многопоточно-поддържащ Pentium 4 процесор в някои алгоритми за изкуствен интелект.

В резултат, подобрения на работата са много зависими от приложения;[10] въпреки това, при започване на две програми, които изискват специално внимание от страна на процесора, всъщност може да изглежда, че една от двете програми се забавя малко, когато технологията за Многопоточност е включена.[11] това се дължи на система за възпроизвеждане на типа на Pentium 4 земаща ценни ресурси, уравновесявайки ресурсите на процесора между двете програми, което добавя различно количество време на работа. Pentium 4 „Prescott“ и Xeon „Nocona“ процесори са получили опашка, която намалява времето на изпълнение нужно за системата за възпроизвеждане и напълно превъзмогва загубата на производителност.[12]

Недостатъци[редактиране | редактиране на кода]

Когато първите HT процесори са били освободени, много операционни системи, не са били оптимизирани за използване на технологията multithreading (например, Windows 2000 и Linux в над 2.4).[13]

През 2006 г. много-поточността е критикувана за нерационалното използване на енергията.[14] Intel оспорили това твърдение, заявявайки, че multithreading е много ефективен, тъй като използва ресурси, които биха могли да бъдат иначе напълно неизползвани.

Сигурност[редактиране | редактиране на кода]

През май 2005 г., Колин Пърсивал показа, че злонамерена нишка на Pentium 4 може да използва синхронизирана атака за да нагледа схема за достъп на памет на друга нишка с която тя споделя кеш памет, позволявайки кражба на криптографска информация. Възможни решения за това включват процесор да променя стратегията си за кеш изчистване или операционната система да предотвратява едновременното изпълнение, на едно физическо ядро, от потоци с различни права.[15]

Източници[редактиране | редактиране на кода]

  1. Jon Stokes. Introduction to Multithreading, Superthreading and Hyperthreading. // Ars Technica, 2002-10-03. с. 2–3. Посетен на 2015-09-30.
  2. Hyper-Threading Technology Architecture and Microarchitecture (PDF). // 2006-12-12. Посетен на 2015-09-30.
  3. Anand Lal Shimpi. The Haswell Front End – Intel's Haswell Architecture Analyzed. // AnandTech, 2012-10-05. Посетен на 2015-09-30.
  4. Intel Pentium 4 3.06GHz CPU with Hyper-Threading Technology: Killing Two Birds with a Stone.... // X-bit labs. Посетен на 2014-06-04.
  5. Intel Required Components Interchangeability List for the Intel Pentium 4 Processor with HT Technology, включва списък с ОС с оптимизация за HTT: Windows XP Professional 64, Windows XP MCE, Windows XP Home, Windows XP Professional, някои версии на Linux като COSIX Linux 4.0, RedHat Linux 9 (Professional и Personal), RedFlag Linux Desktop 4.0 и SuSe Linux 8.2 (Professional и Personal)
  6. Intel Processor Spec Finder: SL6WK
  7. Michael E. Thomadakis. The Architecture of the Nehalem Processor and Nehalem-EP SMP Platforms (PDF). // Texas A&M University, 2011-03-17. с. 23. Посетен на 2014-03-21.
  8. http://web.archive.org/web/20121019025809/http://www.intel.com/technology/itj/2002/volume06issue01/vol6iss1_hyper_threading_technology.pdf
  9. How to Determine the Effectiveness of Hyper-Threading Technology with an Application
  10. Joel Hruska. Maximized performance: Comparing the effects of Hyper-Threading, software updates. // 24 July 2012. Посетен на 2 March 2015.
  11. CPU performance evaluation Pentium 4 2.8 and 3.0
  12. Replay: Unknown Features of the NetBurst Core. Page 15. // Replay: Unknown Features of the NetBurst Core.. http://www.xbitlabs.com.+Посетен на 24 April 2011.
  13. Hyper-Threading Technology – Operating systems that include optimizations for Hyper-Threading Technology. // Intel.com, 2011-09-19. Посетен на 2012-02-29.
  14. Sustainable Practices: Concepts, Methodologies, Tools and Applications. Information Resources Management Association. ISBN 9781466648524. с. 666.
  15. Colin Percival. Cache Missing for Fun and Profit. // 2005-05-14. Посетен на 2016-06-14.

Външни препратки[редактиране | редактиране на кода]

Криейтив Комънс - Признание - Споделяне на споделеното Лиценз за свободна документация на ГНУ Тази страница частично или изцяло представлява превод на страницата „Hyper-threading“ в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс - Признание - Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година — от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница. Вижте източниците на оригиналната статия, състоянието ѝ при превода, и списъка на съавторите.