CPU в близък план

Категория: Хардуер , Процесори
Етикети: процесори , cpu
PC MAGAZINE
15.6.2005

За всеобщо учудване и днес дизайнът на микропроцесори и компютри се базира на основните правила и принципи от 40-те години на миналия век. Структурата, създадена от Джон Моучли и Дж. Преспърт Екерт (създателите на ENIAC), облечени научно от математика и компютърен експерт Джон фон Нойман, позволяват на паметта да съдържа едновременно програмни инструкции и данни. Тази концепция за съхранена програма, наречена Архитектура на Фон Нойман, е елиминирала необходимостта от трудоемко кодиране на инструкциите, като е позволявала лесно препрограмиране и революционно подобрение на изчисленията.

Днешните процесори също използват и другия тип архитектура, наречена Харвард Архитектура, защото се основава на принципите, използвани в компютъра Marc I , създаден  в Харвардския университет през 40-те. Той е имал отделни блокове памет за инструкции и данни. Например модерните микропроцесори в общия случай разпределят L1 кеша на дъното на отделни блокове за инструкции и данни. (За разлика L2 и L3 кеша съдържа както инструкции, така и данни.)

Програмите от най-ниско ниво – тези, които комуникират директно с процесора – трябва да бъдат на машинен език, който представя на процесора всякакви данни и команди под формата на двоичен код. Въпреки че доста търсихме, едва няколко човека намерихме, които си падат по писането на програми, състоящи се от код, подобен на „1000101111010000”. Програмният език Асемблер поставя нещата на малко по-високо ниво, като улеснява процесите по кодиране и представя операциите и данните в символен вид, което води до използване на команди като MOV AX,9 вместо неразбираемия низ 101110000000100100000000. След което специална програма превежда тази инструкция на машинен език. Програмните езици от високо ниво като C извършват транслирането на инструкциите чрез използването на компилатори.

Доста от инструкциите към един процесор изискват определена операция, като например събиране, изваждане или сравнение да бъде направена като операнд – това са данни, които CPU пази обикновено в регистрите, но е възможно и да бъде извикана от централната памет. Различните типове инструкции могат да бъдат с променлива дължина. Настоящите CPU, като Pentium 4 и Athlon64, декодират х86 инструкциите с променлива дължина в няколко такива с фиксирана и опростена структура, наречени „micro-ops”, които не могат да бъдат достъпни извън процесора.

Въпреки че сравнимите процесори трябва да дават идентични резултати за една и съща инструкция, начинът, по който се обработва последната, може да е тотално различен. Например AMD64 за разлика от Pentium4 вътрешно декодира една инструкция в една или няколко macro-ops части, които от своя страна се разбиват на micro-ops.

Вътрешната архитектура може да бъде дори различна за една CPU фамилия и следващите поколения (какъвто е случаят с Intel 386, 486 и Pentium). Подобренията като MMX (Multimedia Extensions), SSE (Streaming-Single Instruction, Multiple-Data Extensions) за процесорите Intel или AMD64, който може да обработва 64-битови инструкции, са още един пример за постоянните промени.

Каквито и да са разликите, процесорите обработват инструкциите последователно освен ако външно прекъсване или някакво друго събитие не прекъсне този процес. Специален брояч в процесора пази информация коя инструкция се обработва в момента и коя е следващата. Процесорът прихваща данни от паметта (независимо дали вградената на дънната платка или външен системен RAM), поставя я в регистрите, изпълнява различните математически и текстови операции и записва резултатите или във вътрешните регистри, или във външната памет.

Входящият тактов сигнал поддържа оперативното състояние на определена честота. Вътрешно за процесора този сигнал може да бъде разделен на няколко високочестотни такта, за да синхронизира операции, изискващи висока скорост. Но големият трик е в организирането на CPU архитектурата по начин, по който се постига бързо и ефективно изпълнение на инструкциите, а това е характеристика, която влияе на цената на процесора, размера и производителността.