що означає 2 ядра 4 потоку на процесорі?


22

Мені хотілося знати, що означає 2 ядра 4 потоку про процесор? Я говорю про цей процесор, який у мене є

http://ark.intel.com/products/47341/Intel-Core-i5-520M-Processor-3M-Cache-2_40-GHz

Спочатку я думав, що у i5 було 4 ядра, але я думаю, що я помиляюся. Моє розуміння потоку - це фрагмент коду, який може працювати одночасно (одночасно) з іншими потоками. Отже, що означає 4 нитки на цьому аркуші специфікацій? Чи відрізняється він від програмних ниток. Чи відрізняється кількість потоків там, ніж створений нами програмний потік. Якщо у нього всього 2 ядра, то чи правильно, ви можете запускати лише 2 паралельних програми, навіть якщо він має 4 потоки?


2
Після того як ви зробите кілька фонових досліджень на en.wikipedia.org/wiki/Hyper-threading, це має мати для вас кращий сенс. Процесор, який у вас є, дійсно має можливість одночасно робити 4 інструкції. Ви повинні розуміти, що навіть одноядерний процесор має можливість запускати кілька програм. Його просто НЕ має можливість робити 2 інструкції одночасно. Вам не здається зрозумілим, як програма працює насправді.
Рамхаунд

@Ramhound Ви імовірно мали на увазі 4 потоки інструкцій . Оскільки i5 є суперскалярним, він може виконувати кілька інструкцій паралельно навіть з одного потоку інструкцій. Одночасна багатопотокова редакція дозволяє паралелізм рівня нитки перетворюватися на паралелізм рівня інструкцій, збільшуючи використання ресурсів виконання.
Пол А. Клейтон

Я мінімізував моє твердження, кількість інструкцій за тактовий цикл - це різниця між Pentium D і 4-м ядром i5 за вирахуванням розміру штампу, і вимогами до потужності, звичайно, (знову спрощено)
Ramhound


Ця відповідь може дати збудження: superuser.com/questions/1198459/…
Джеймі Ханрахан

Відповіді:


15

Ваш i5 має два ядра, кожне ядро може працювати два потоки з - за корпорації Intel гіперпоточності , роблячи 4 теми, за що він переключається на високих швидкостях між процесами. Ось приємне пояснення багатопотокового читання, якщо ви хочете дізнатися більше, але по суті ваш процесор може одночасно запускати 4 процеси та перемикатися з високою швидкістю між процесами.


> "крім того, він перемикається з високою швидкістю між процесами." Що робить процес перемикання Ч / Б швидшим?
Talespin_Kit

@Talespin_Kit Я думаю, що @ Slowki мав на увазі спосіб використання процесора для роботи над декількома процесами, тому це не обмежується чотирма речами. Це 4 нитки багатьох речей.
Метт Сефтон

3

Я не впевнений у вашому рівні знань щодо архітектури комп’ютерів, однак Core i5, про який ви згадували тут, реалізує форму багатопотокової передачі, відому як одночасне багатопотокове запитання (SMT). Торгова марка Intel щодо їх впровадження SMT - це гіперточення.

Крім SMT, існують і інші форми багаторізкової різьблення, тимчасова багатонарізка є однією. Наприклад, дрібнозерниста тимчасова багатопотокова передача, де процесор може перемикатися між різними потоками на кожному циклі і таким чином давати можливість псевдопаралельного виконання декількох програм. Аналогічно, може бути грубозерниста тимчасова багатопотокова різьба, де процесор може перемикатися між потоками, коли він потрапляє на операцію з високою затримкою, наприклад, доступ до основної пам'яті поточного потоку. Точні точки перемикання можуть змінюватись залежно від впровадження та вимог, таких як справедливість або терміни реального часу.

SMT відхиляється від філософії контекстного комутатора для багатопотокової передачі тим, що він фактично має два або більше потоків, що виконуються на одному процесорі одночасно. Хоча реалізація може змінюватись, головна мета полягає у використанні функціональних підрозділів у процесорі, які працюють на холостому ході, якщо виконується лише одна нитка, а також у використанні надширокого надпрофільного характеру процесора. Ви можете уявити тимчасову багатопотоковість як час розрізання ресурсів процесорів, тоді як SMT як просторове нарізання ресурсів.

Детальний аналіз можна знайти в роботі Tullsen 1995:

http://dl.acm.org/citation.cfm?id=224449


0

"Якщо у нього всього 2 ядра, то чи правильно, ви можете запускати лише 2 паралельних програми, навіть якщо він має 4 потоки?" Якщо у нього є 2 ядра, обчислення ділиться на 2 = паралелізм. Однак, якщо у вас система має гіпер-різьблення, вона може зробити два обчислення в одному ядрі, чому ж те саме ядро ​​показує ОС, як 2 ядра ... логічні ядра.


0

Візьміть кількість потоків і розділіть його на кількість ядер, і це дасть вам кількість потоків, які можна запустити одночасно на ядро ​​процесора.

У більш ранні часи [на більш ранніх моделях Intel] гіперточення було обмежене 1 ядром, що працює 2 потоками одночасно АБО декількома ядрами, що виконують 1 набір інструкцій (він же, потік) на ядро ​​(досить неефективно, якщо ви запитаєте мене). Але з кращою обчислювальною потужністю та більш пізніми розробками, такими як ваш i5-процесор, у вас є те, що я люблю називати, багатоядерний гіпертоковий процесор, який має декілька ядер, що працюють з декількома наборами інструкцій (так само, потоками) на ядро.

У вашому випадку 1 ядро ​​отримує 2 потоки, тож, коли ви займаєтеся математикою, у вас є = 4 набори інструкцій (ниток).

Ще один приклад: # Cores = 4, # потоків = 8 | 8/4 = 2, тому кожне ядро ​​обробляє 2 потоки одночасно (не впевнений, яка модель процесора це робить, але я майже впевнений, що існує).

Сподіваюся, це допоможе моєму другові! Щасливі обчислення!

Джерело: PEARSON IT Certification CompTIA A + Examp Cram Cert. Посібник

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.