Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
10 kB
2
Indexable
Never
1.1. Многоядрена технлогия. Какво представлява?
Многоядрен процесор е компютърен процесор на една интегрална схема с два или повече отделни процесора, наречени ядра, всеки от които чете и изпълнява програмни инструкции. Инструкциите са обикновени инструкции на процесора (като добавяне, преместване на данни и разклоняване), но единичният процесор може да изпълнява инструкции на отделни ядра едновременно, увеличавайки общата скорост за програми, които поддържат многопоточност или други паралелни изчислителни техники. Производителите обикновено интегрират ядрата върху една матрица с интегрална схема (известна като чип мултипроцесор или CMP) или върху множество матрици в един пакет от чипове. Микропроцесорите, използвани в момента в почти всички персонални компютри, са многоядрени. 

Многоядрен процесор реализира мултипроцесинг в един физически пакет. Дизайнерите могат да свързват ядра в многоядрено устройство плътно или свободно. Например, ядрата могат или не могат да споделят кеш памет и могат да реализират методи за предаване на съобщения или комуникация между ядрото в споделена памет. Общите мрежови топологии, използвани за взаимно свързване на ядра, включват шина, пръстен, двуизмерна мрежа и напречна греда. Хомогенните многоядрени системи включват само идентични ядра; хетерогенните многоядрени системи имат ядра, които не са идентични (напр. big.LITTLE имат хетерогенни ядра, които споделят един и същ набор от инструкции, докато AMD ускорените процесори имат ядра, които не споделят един и същ набор от инструкции). Подобно на еднопроцесорните системи, ядрата в многоядрените системи могат да реализират архитектури като VLIW, суперскаларна, векторна или многонишкова. 

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

1.2. Терминология.
Условията многоядрен и Двуядрен процесор най-често се отнасят до някакъв вид централен процесор (CPU), но понякога се прилагат и за цифрови сигнални процесори (DSP) и система на чип (SoC). Термините обикновено се използват само за означаване на многоядрени микропроцесори, които се произвеждат на същото матрица за интегрална схема; отделни микропроцесорни матрици в една и съща опаковка обикновено се означават с друго име, като например многочипов модул. Тази статия използва термините "многоядрен" и "двуядрен" за процесори, произведени на същото интегрална схема, освен ако не е посочено друго. 

За разлика от многоядрените системи, терминът мулти-процесор се отнася до множество физически отделни блокове за обработка (които често съдържат специални схеми за улесняване на комуникацията помежду си). 

Условията многоядрен и масово многоядрен понякога се използват за описване на многоядрени архитектури с особено голям брой ядра (десетки до хиляди). 

1.3. Развитие
Докато производствената технология се подобрява, намалявайки размера на отделните порти, физическите граници на полупроводниковата микроелектроника се превръщат в основна дизайнерска грижа. Тези физически ограничения могат да причинят значително разсейване на топлината и проблеми със синхронизирането на данни. За подобряване на производителността на процесора се използват различни други методи. Някои паралелизъм на ниво инструкции (ILP) методи като суперскаларен конвейер са подходящи за много приложения, но са неефективни за други, които съдържат трудно предвидим код. Много приложения са по-подходящи за паралелизъм на ниво нишка (TLP) методи и множество независими процесори обикновено се използват за увеличаване на общия TLP на системата. Комбинацията от увеличено налично пространство (поради усъвършенстваните производствени процеси) и търсенето на увеличен TLP доведоха до разработването на многоядрени процесори.

Примери в развитието при Intel Core i:
i7 970 -> 6 ядра, 12 нишки, 3.20 GHz основна тактова честота, 12 MB Intel® Smart Cache, TDP 130W, поддържана памет DDR3, сокет FCLGA1366
i7-4790K -> 4 ядра, 8 нишки, 4.00 GHz основна тактова честота, 8 MB Intel® Smart Cache, TDP 88 W, поддържана памет DDR3, сокет FCLGA1150
i7 7700k -> 4 ядра, 8 нишки, 4.20 GHz основна тактова честота, 8 MB Intel® Smart Cache, TDP 91 W, поддържана памет DDR4, сокет FCLGA1151
i7 9700k -> 8 ядра, 8 нишки, 3.60 GHz основна тактова честота, 12 MB Intel® Smart Cache, TDP 95 W, Поддърана памет DDR4, сокет FCLGA1151
i7 12700k


1.4. Предимства
Близостта на множество процесорни ядра на една и съща матрица позволява схемата на кохерентност на кеша да работи с много по-висока тактова честота, отколкото е възможно, ако сигналите трябва да се движат извън чипа. Комбинирането на еквивалентни процесори на една матрица значително подобрява производителността на операциите за проследяване на кеш памет (алтернатива: Snooping на шина). По-просто казано, това означава, че сигналите между различните процесори изминават по-малки разстояния и следователно тези сигнали се разграждат по-малко.Тези по-висококачествени сигнали позволяват да се изпращат повече данни за даден период от време, тъй като отделните сигнали могат да бъдат по-кратки и не е необходимо да се повтарят толкова често.