Щоб описати роботу сучасного процесора потрібно написати книгу. Настільки багато в ньому різних елементів для виконання тих чи інших інструкцій. Тим більше сучасні процесори багатоядерні. Частина мають реальні ядра, а частина віртуальні. Значить повинні бути пристрої, які поділяють завдання для деяких ядер. На виході все це складається в інших пристроях.
Головне в ядрі будь-якого процесора це арифметичний пристрій. На якому і виникають основні арифметичні процеси відомі будь-якому першокласнику додавання, множення, віднімання і ділення. Є пристрої кодування і декодування. Є командне пристрій і ще багато всяких інших.
Все відбувається в двійковому коді. Тобто складаються одинички або нулі за законами алгебри Буля. Тобто, наприклад, якщо до одиниці додати одиницю вийде не двійка, а нуль. а одиничка перескочить в наступний вищий розряд. Для цієї мети використовуються дуже прості пристрої Тригери. Вони складаються з двох транзисторів і мають два стійких станів. Коли на колекторі одного з них порівняно високий потенціал - це означає одиницю. В цей час на іншому транзисторі низький потенціал і це означає нуль. Варто на вхід такого тригера подати високий потенціал, той переключиться і потенціали поміняються місцями. Ось на базі таких тригерів і збираються арифметичні пристрої в процесорах. Є пристрої І, є АБО, є І-НЕ, а є АБО-НЕ. Варіацій величезна кількість. Ось з них проектувальники і мудрують, як в кристалі кремнію все це величезна кількість тригерів і розмістити і зібрати в діючий процесор. Це дуже складний процес, який триває роками. Проб і помилок і різних варіантів виготовлення. І звичайно все це заздалегідь опрацьовується на математичній моделі.
Але, повторюю, головним цеглинкою з чого складається процесор є тригер. А це всього два транзистора і кілька опорів і конденсаторів. І ось сотні тисяч цих тригерів в процесорі вважають завдання і виконують інструкції, які перед ними ставляться.
Ось так дуже дуже примітивно і коротко.
система вибрала цю відповідь найкращим
Сумний Роджер [176K]
Ні, додавання виконується за правилами звичайної арифметики, а не булевої алгебри. 9 + 1 = 0 з перенесенням одиниці в наступний розряд - це виходить і в звичайній десятковій арифметиці. Булеві закони застосовуються саме для логічних операцій, а не аріфметісческіх.
І складання виробляється в арифметичне-логічні ському пристрої (АЛП), яке складається не з тригерів. Тригер - це елемент послідовних логіки, а АЛУ - комбінаційної. Тригери служать для зберігання інформації, тоді як перетворення її здійснюється в АЛУ. - 3 місяці тому
Байдуже ий [143K]
Згоден! Я не став вдаватися в подробиці. Вийшло б занадто багато. - 3 місяці тому
Груст ний Роджей р [176K]
В цілому (не в деталях!) Згоден з Байдужим в тому, що для опису роботи процесора потрібна книга. І не одна. І все ж спробую.
Виходити при цьому треба з завдання, яке ставиться перед процесором. Завдання ж ця проста: взяти одне дане, взяти, якщо потрібно, інше дане, щось з цими даними зробити і результат кудись покласти, щоб не пропав. Що саме - теж треба зрозуміти.
Ось це і є основні класи операцій для будь-якого процесора: читання даних, читання команд, дешифрування команд, обробка даних, запис даних. А значить, вимальовуються і основні блоки процесора: блок читання команд, блок читання даних (часто це один і той же блок, але в комп'ютерах гарвардської архітектури пам'ять даних і пам'ять команд - це дві різні, фізично розділені пам'яті, і для них потрібні два різних , незалежні канали читання), блок запису результатів назад в пам'ять, елементи проміжного зберігання команд і даних, пристрій дешифрування команд, яке розуміє, що ж треба зробити на даному етапі, ну і власне "думатель" - блок обробки інформації (арифметико-логічний ське пристрій).
Ну і, нарешті, потрібен диригент, який всім цих господарством керує: тактовий генератор.
І тепер - як це працює.
Дешифратор команд в кінцевому підсумку управляє "мозком" процесора - АЛУ, в якому і відбувається безпосередньо обробка інформації: додавання чи віднімання даних, їх порівняння між собою, логічні операції (логічне додавання множення, порозрядні бітові операції, логічні або арифметичні зрушення.) . АЛУ зазвичай виконує лише найпростіші, з точки зору комп'ютерної логіки, інструкції. Для складних команд, типу арифметичного множення, в ранніх ЕОМ викликалася спеціальна підпрограма, що розбиває цю операцію на прості, які могли виконуватися в АЛП, в сучасних - вони передаються на виконання в спеціальний блок - співпроцесор (пам'ятаєте 8087? Це якраз він).
Крім чисто думателя, до складу АЛУ входять і регістри зберігання операндів - того блоку інформації, над яким і проводиться в даний момент дана операція. Розрядність цих регістрів і визначає "розрядність ЕОМ" - це може бути і 8 розрядів, як в найперших простих машинах (перший мікропроцесор був 4-розрядних), може бути 64, як в більшості сучасних, а може бути і 256, як в графічних процесорах.
Окремий блок процесора - блок переривань. Це його "вуха". Механізм переривань дозволяє реагувати на зовнішні події, що не терплять зволікання, або ж на події, які приходять в непередбачуваний момент часу. Наприклад, натискання клавіші або рух мишкою. Процесор не може постійно стежити - натиснута клавіша чи ні, тому що нічим іншим він тоді займатися не зможе. Зате якщо від клавіатури прийде сигнал, що перериває якусь фонову завдання процесора, він зможе відволіктися, швиденько обробити це натискання клавіші і повернутися до своїх справ.