Різниця між Інструкцією, операціями та мікро-операціями (взагалі) [закрито]


3

Я намагаюся зрозуміти складні терміни, пов'язані з продуктивністю процесорів.

Продуктивність комп'ютера вимірюється в FLOPS, що коротко для FLOP в секунду . FLOPsсама по собі означає операції з плаваючою комою .

Тепер чому розглядаються операції з плаваючою комою для продуктивності комп'ютера. Що з цілими операціями? Чи є джерело в Інтернеті (офіційне цитування), яке б пояснило цю тенденцію? Google нічого не дав мені при пошуку.

Тепер, що саме означає операція у FLOP? Чи означає це, що математичну операцію , як MUL, ADD, і DIVт.д.?

У цьому випадку, що було б інструкцією ? Якщо інструкція що - щось на зразок ADDPD, і ADDSDт.д., як я можу бачити тут ( http://docs.oracle.com/cd/E26502_01/html/E28388/epmpv.html ), то одна команда може привести до багатьох внутрішніх операціях. Це були б мікро-операції чи Uops ?

Не знайшов пояснення мікро-операції у Вікіпедії корисним. Хто тут чітко пояснить це, мабуть, повинен буде вдосконалити статтю у Вікіпедії :)

Відповідно до книги Геннесі / Паттерсона з питань архітектури комп’ютерів (5-е видання, стор. 233), ARM Cortex-A8 (RISC) може виконувати дві інструкції за годинник. Чи означає це, що процесор може виконувати, наприклад, an ADDPDі an ADDSD(total = 2 Інструкції) за один цикл?

У цьому джерелі ( http://en.community.dell.com/techcenter/high-performance-computing/w/wiki/2329 ) зазначено наступне:

Більшість мікропроцесорів сьогодні може робити чотири (4) ФЛОП за тактовий цикл, тобто 4 ФОП на Гц.

Я вважаю, що автор помиляється. Він, мабуть, мав на увазі 4 інструкції на цикл , обмежуючи себе процесорами на базі CISC (наприклад, Intel). Це тому, що деякі інструкції, такі як FMA на Haswell, можуть підвищити продуктивність, завдяки чому процесор може обробляти більше операцій за цикл. Іншими словами, 1 FMA інструкція означає пару операцій . Маю рацію?

IPC означає Інструкцію за цикл. Які інструкції тут посилаються? Інструкції, які відмовив процесор? За допомогою апаратного лічильника я можу порахувати кількість циклів процесора та кількість INST_RETIRED.ANY. Це був би правильний спосіб розрахунку IPC?

Дуже дякую за будь-які відповіді та коментарі. Сподіваюся, моє запитання допоможе багатьом іншим заплутаним душам :)


2
Ласкаво просимо до SuperUser. Чи можете ви бути більш конкретними у своєму питанні? Також ви тут задали більше 1 запитання, тому важко відповісти на це. Ознайомтеся з допомогою цього веб-сайту.
Uwe Plonus

Чи розумієте ви різницю між операцією ADD, що стосується цілого числа, і операцією ADD, що стосується плаваючої точки? Щоб зрозуміти будь-яку відповідь на це питання, вам потрібно було б зрозуміти різницю.
Рамхаунд

@Ramhound, ADD буде відрізнятися, оскільки два різні ALU будуть обчислювати їх. Наприклад, на Sandy Bridge / Ivy Bridge є два окремих ALU під портом 0, які роблять ці обчислення. Однак, коли ми говоримо про продуктивність, ми говоримо про FLOPS. Цілісні операції не враховуються. Тож це заплутано. Я думаю, що всі підпитання стосуються більшого питання, яке стосується різниці між трьома термінами. Я переформулюю все питання, щоб я міг отримати кращі відповіді та менше зворотних запитань :)
shailenTJ

@shailenTJ - Мене бентежить питання, якщо чесно. Ви підкреслюєте та різницю, як обробляється ціле число і плаваюча точка.
Рамхаунд

Відповіді:


1

Тепер чому розглядаються операції з плаваючою комою для продуктивності комп'ютера. Що з цілими операціями?

Операції з плаваючою комою - лише одна з декількох показників, які використовувались протягом багатьох років для порівняння продуктивності комп'ютера. Вимірювання FP-операцій вважається більш застосовними для деяких реальних додатків (таких як симуляція погоди), ніж цілочисельні операції. Якщо ви оцінювали комп’ютери на додаток до бази даних, ви, ймовірно, ігнорували б специфікації FLOPS та орієнтувались на IPS (інструкції в секунду) та продуктивність вводу / виводу.

Тепер, що саме означає операція у FLOP? Це означає математичну операцію, як MUL, ADD, DIV тощо?

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

Зауважте, що комп’ютер (близько 1980 р.), Який не мав FPU, міг бути оновлений периферійним пристроєм FPU. Бібліотека програмного забезпечення програм FP, яка реалізує основні операції з ПП (додавання, віднімання, множення, ділення, квадратний корінь тощо), буде замінена бібліотекою, яка використовує інструкції вводу / виводу для доступу до периферійних пристроїв FPU. Перерва з боку FPU сповістить ЦП, що операція FP завершена.

Ранні ПК були подібної конструкції. В оригінальному комп'ютері IBM використовувався мікропроцесор Intel 8088, який не мав можливості HW FP. Але може бути встановлений математичний спільний процесор 8087, щоб інструкції FP могли виконуватись апаратно, а не перенаправлятися на програмні процедури. Врешті Intel інтегрувала математичний спільний процесор в пакет процесора для i486

У цьому випадку, що було б інструкцією?

"Інструкція" не повинна бути неоднозначною сутністю. Це один машинний код або одна мнемічна процесор.

то одна інструкція може призвести до багатьох внутрішніх операцій. Це були б мікро-операції чи Uops?

Мабуть, ви маєте на увазі мікропрограмування.
(Раніше була комп'ютерна компанія, яка займала мікропрограмування на одну ітерацію нижче: до рівня нанопрограмування . Продукти були для емуляції процесора.)
Мікропрограмування не дуже важливо для роботи прикладних програм. Тобто ти зазвичай не можеш переписати / покращити мікропрограмування, як можна було б на процесорі нанопрограми.

Чи означає це, що процесор може виконувати, наприклад, ADDPD та ADDSD (всього = 2 інструкції) за один цикл?

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

Які інструкції тут посилаються?

Кожна інструкція є машинним кодом.

Іншими словами, 1 інструкція FMA перекладається на пару операцій. Маю рацію?

Ні, одна інструкція співвідноситься з однією операцією.

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