Чому процесорам потрібно стільки струму?


37

Я знаю, що простий процесор (наприклад, Intel або AMD) може споживати 45-140 Вт і що багато процесорів працюють на 1,2 В, 1,25 В і т.д.

Так, якщо припустити процесор, який працює на 1,25 В і має TDP 80 Вт ... він використовує 64 Ампер (багато амперів).

  1. Чому процесору потрібно більше 1 А в їх ланцюзі (якщо припустити транзистори FinFET)? Я знаю, що більшість часу процесор працює на холостому ходу, а 60 A - це все "імпульси", оскільки процесор має тактовий годинник, але чому процесор не може працювати на 1 В і 1 А?

  2. Маленький і швидкий транзистор FinFET, наприклад: 14 нм, що працює на частоті 3,0 ГГц, потрібно скільки ампер (приблизно)?

  3. Чи більший струм змушує транзистори вмикати та / або вимикати швидше?


27
Сучасні процесори (жоден з яких не є простими) потребують декількох напрямних напруг, все з власними потребами в електроенергії. Ваше запитання робить багато припущень і має багато помилкових тверджень. Ви повинні врахувати всі вимоги до потужності, а не лише ті, що стосуються однієї рейки.
Wossname

8
Чи транзистор FinFET розраховує на сучасний процесор. Не кожен FET проводить струм від Vdd до землі, але навіть так, 64 А поширюється на * дуже велику кількість * цих FET-комутаторів.
glen_geek

9
@EricLippert "доведеться витягнути 64 ампера зі стіни" - у мене є підозра, що процесор не працюватиме на 110 В.
Ендрю Мортон

6
Збережена кількість - це енергія, і в середньому також потужність. Якщо ЦП черпає 64 Вт, то блок живлення повинен витягувати не менше 64 Вт з розетки. Це <1А навіть при 110В.
MSalters

6
@EricLippert Материнська плата вашого комп'ютера містить багатофазний перетворювач постійного струму в постійний струм, який спрямовує напругу живлення (12 В у випадку настільного комп’ютера, можливо, 12-19 В у випадку ноутбука) аж до базової напруги живлення. Це робиться з постійною потужністю, тому вихідний струм закінчується в 10-20 разів від вхідного струму. Не кажучи вже про джерело живлення 12В в настільному комп’ютері, також відбувається від комутаційного джерела живлення, який також перетворюється з постійною потужністю. Процесор на вашому комп’ютері, ймовірно, має щонайменше 100 штифтів потужності та заземлення для обробки струму.
alex.forencich

Відповіді:


70
  1. Процесори не є простими в будь-якій частині уяви. Оскільки у них є кілька мільярдів транзисторів, кожен з яких матиме невеликий витік на холостому ходу і повинен заряджати і розряджати затвор і з'єднувати ємність в інших транзисторах при перемиканні. Так, кожен малює невеликий струм, але коли ви помножите це на кількість транзисторів, ви отримуєте напрочуд велику кількість. 64А - це вже середній струм ... при перемиканні транзистори можуть вивести набагато більше, ніж середній, і це згладжується обхідними конденсаторами. Пам’ятайте, що ваша цифра 64A походить від роботи TDP, що робить насправді 64A RMS, і навколо цього можуть бути суттєві відмінності (коливання тактового циклу, зміна під час різних операцій, зміна стану сну тощо). ). Також, можливо, ви зможете піти з роботи процесора, розробленого для роботи на частоті 3 ГГц на 1,2 вольтах і 64 амперах на 1 вольт і 1 ампер .... просто, можливо, на 3 МГц. Хоча в цей момент вам потім доведеться турбуватися про те, чи чіп використовує динамічну логіку, яка має мінімальну тактову частоту, тому, можливо, вам доведеться запускати її на кілька сотень МГц до ГГц і періодично вмикати її в глибокий сон, щоб отримати середню струм вниз. Суть полягає в тому, що потужність = продуктивність. Продуктивність більшості сучасних процесорів насправді обмежена терміном. тож, можливо, вам доведеться запускати його на кількох сотнях МГц до ГГц і періодично вмикати його у глибокий сон, щоб зменшити середній струм. Суть полягає в тому, що потужність = продуктивність. Продуктивність більшості сучасних процесорів насправді обмежена терміном. тож, можливо, вам доведеться запускати його на кількох сотнях МГц до ГГц і періодично вмикати його у глибокий сон, щоб знизити середній струм. Суть полягає в тому, що потужність = продуктивність. Продуктивність більшості сучасних процесорів насправді обмежена терміном.
  2. Це порівняно легко підрахувати - , де I - струм, C - ємність навантаження, v - напруга, α - коефіцієнт активності, а f - частота комутації. Я побачу, чи можу я отримати номери бальних парків для ємності воріт FinFET і відредагувати. I=CvαfICvαf
  3. Типу. Чим швидше ємність затвора заряджається або розряджається, тим швидше перемикається транзистор. Швидше заряджати потрібно або меншу ємність (визначається геометрією), або більший струм (визначається опором між з'єднанням і напругою живлення). Окремі транзистори перемикаються швидше, а значить, вони можуть перемикатися частіше, що призводить до більш середнього виходу струму (пропорційного тактовій частоті).

Редагувати: так, http://www.synopsys.com/community/universityprogram/documents/article-iitk/25nmtriplegatefinfetswithraisedsourcedrain.pdf має цифру для ємності затвора 25 nm FinFET. Я просто називаю це 0,1 fF заради простоти речей. Мабуть, вона змінюється залежно від напруги зсуву, і, безумовно, буде змінюватися залежно від розміру транзистора (транзистори розміщені відповідно до їх призначення в ланцюзі, не всі транзистори будуть однакового розміру! Більші транзистори "сильніші", оскільки вони можуть перемикати більше струму, але вони також мають більшу ємність воріт і потребують більше струму для приводу).

α=10.375μA. Помножте це на 1 мільярд і отримаєте 375 А. Це необхідний середній струм затвора (заряд в секунду в ємність затвора), щоб переключити 1 мільярд цих транзисторів на 3 ГГц. Це не враховує "простріл", який відбудеться під час перемикання в логіці CMOS. Це також середній показник, тому миттєвий струм може сильно відрізнятися - подумайте, як асимптотичний розряд струму зменшується, коли ланцюг RC заряджається. Обхід конденсаторів на підкладці, упаковці та друкованій платі з вирівнюванням цього варіанту. Очевидно, це лише цифра бального парку, але, здається, це правильний порядок. Це також не враховує струм витоку або заряд, що зберігається в інших паразитах (тобто електропроводці).

αα=1 as they switch twice on every clock cycle. For something like a binary counter, the LSB would have α of 0.5 as it switches once per clock cycle, the next bit would have α=0.25 as it switches half as often, etc. However, for something like a cache memory, α could be very small. Take a 1 MB cache, for example. A 1 MB cache memory built with 6T SRAM cells has 48 million transistors just to store the data. It will have more for the read and write logic, demultiplexers, etc. However, only a handful would ever switch on a given clock cycle. Let's say the cache line is 128 bytes, and a new line is written on every cycle. That's 1024 bits. Assuming the cell contents and the new data are both random, 512 bits are expected to be flipped. That's 3072 transistors out of 48 million, or α=0.000061. Note that this is only for the memory array itself; the support circuitry (decoders, read/write logic, sense amps, etc.) will have a much larger α. Hence why cache memory power consumption is usually dominated by leakage current - that is a LOT of idle transistors just sitting around leaking instead of switching.


4
1V 1A isn't a weird target, ARM CPU's are quite commonly specc'ed as mW/MHz. As a comparison, the whole Raspberry Pi A+ uses 1Watt, including a 700 Mhz CPU - a lot more than the meagre 3Mhz suggested
MSalters

2
It's more useful to refer to "MIPS per watt", as the amount of work done per clock cycle varies wildly.
pjc50

1
Well, it depends on what the chip is designed to do. A chip with a TDP of 80W that's designed to run at 3 GHz at 1.2 volts could maybe run on 1V and 1A...but at 1V you're going to have to drop the speed significantly, and to get it to draw 1A you'll have to drop the speed even more. You're not going to get anywhere near 3 GHz in that case. I have no idea what you would actually be able to achieve, though, as I haven't tried it myself. Maybe 3 MHz is a bit pessimistic for an i7 at 1V and 1A. Now, it's certainly possible to design a chip to run at that power level, as you mention.
alex.forencich

6
They are not simple. In fact they are the one of most complex things we have ever built.
joojaa

2
Modern Intel/AMD CPUs use at least some dynamic logic that would actually fail to work if clocked too low. Intel Skylake (for example) has a minimum efficient frequency/voltage point. To hit even lower power/throughput levels for SoC, it switches a core in and out of sleep at a variable duty cycle (>=800us at maybe ~1GHz (most efficient f), rest in sleep). See Efraim Rotem's IDF2015 Skylake power-mgmt talk, at about 53 minutes in
Peter Cordes

17

According to Wikipedia, top CPUs released in 2011 had some 0.5 to 2.5 billions of transistors. Assuming a CPU with 1 billion of transistors consumes 64A of current, the average current is only 64nA per transistor. Considering operation frequencies of several GHz, it's actually surprisingly little.


Is for higher operating frequency of CPU required higher current?
Lu Ka

2
Generally current II0+kfCV2 where fc is the clock frequency and k is a constant and V is the operating voltage, and I0 is the leakage current. k will vary depending on how many transistors are switching at a given time as well as with the chip design.
Spehro Pefhany

4
At this point, we can put more transistors on a CPU than we can use at the same time without melting it. So at any given time, a large fraction of the chip is Dark Silicon: not powered up, but sitting there waiting to be used while other parts of the chip (with different specialized functions) are powered down. e.g. the vector floating point hardware, the vector integer multipliers, and the vector shuffle units can't all be saturated at once, but they each have high throughput when used alone. Also, large caches don't switch much.
Peter Cordes

1
This is a big factor in CPUs gaining more and more specialized hardware, like AES and SHA crypto instructions, and Intel's BMI2 (especially PEXT / PDEP bit-extract/deposit). Something to do with the transistor budget that can speed up some workloads but doesn't have to be powered on when not in use.
Peter Cordes
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.