Обработувачка архитектура

Обработувачкки дизајн е инженерскиот дел при дизајнирање и создавање на микрообработувач, компонента на компјутерскиот хардвер. Тоа е поле кое спаѓа во електроинженерството и сметачкото инженерство. Дизајнерскиот процес вклучува бирање на инструкциски сет и одредена парадигма на извршување (пр. VLIW или RISC) и резултира во микроархитектура опишана како пр. VHDL или Verilog. Описот е тогаш изработен со помош на еден од неколкуте процеси за фабрикација на полупроводнички направи. Резултатот на ова е коцка која е вметната во т.н куќиште за чипот. Чипот е тогаш залемен на некое коло (PCB).

Модот на оперирање на секој микрообработувач е извршувањето на листи од инструкции. Инструкциите типично ги вклучуваат оние кои компјутираат или манипулираат податочни вредности со помош на регистри, да менуваат и преземаат вредности во читањето/пишувањето на меморијата, извршуваат релациони тестови помеѓу податочни вредности и со цел да го контролираат текот на програмата.

## Детали

Обработувачккиот дизајн се фокусира на шест главни области:
#податочни патеки (како ALU и pipelines)
#контролна единица: логика која ги контролира податочните патеки
#Мемориски компоненти како регистерски податотеки, кешови
#Клок кола како клод драјвери, PLL-ови, дистрибутивни мрежи на клоковките
#Трансиверски кола на рампи
#Библиотека на ќелии од логички порти кои ќе се користат за имплементација на логиката

Обработувачите дизајнирани за пазарот на високи перформанси може да бараат специфичен дизајн за секој од овие предмети да достигне честота, дисипација на моќта, и цели кон областа на чипот; каде што обработувачите дизајнирани за пазари на пониски перформанси може да го олеснат товарот на имплементација со преземање на некои од овие предмети, купувајќи ги како интелектуален имот. Техниките за имплементација на контролната логика (логичка синтеза користејќи CAD алатки) може да се користат за имплементација на податочни патеки, регистарски податотеки и клокови. Вообичаени логички системи кои се користат во обработувачкки дизајн вклучуваат случајна логика, finite-state машини, микропрограмирање (често од 1965 до 1985), и логички низи кои можат да се програмираат (чести во 1980, кои не се повеќе чести)

Типови на направи користени за имплементација на логиката:
логички чипови (транзистори) интегрирани на помала скала - повеќе не се користат во обработувачи
логички низи кои можат да се програмираат и логички направи кои може да се програмираат - повеќе не се користат во обработувачи
емитер-комбинирачко логички(ECL) порти - не се повеќе чести
*CMOS низи на порти - повеќе не се користат во обработувачи
*CMOS интегрирани кола произведени на големо - мнозинството на обработувачи по волумен
*CMOS интегрирани кола специфични за апликации - само за малцинство на специјални апликации поради трошоци
*низи на порти кои се можат да се програмираат со полиња (FPGA) - чести во ‘меки’ микрообработувачи, и помалку барани за реконфигурирачко компјутирање

Проект кој дизајнира обработувач генерално ги има овие три главни задачи:

*Архитектура на инструкциски сетови кои се видливи за програмерите, со можност да бидат имплементирани од повеќе видови на микроархитектури
*Архитектурски увид и моделирање на перформански во ANSI C/C++ или SystemC
*Синтеза на високото ниво (HLS) или ниво на трансфер на регистри (RTL, пр. логичка) имплементација
*RTL верификација
*Дизајн на кола при брзинско-критчни компоненти (кешови, регистри, ALU-а)
*Синтеза на логика или дизајн на нивоа од логички порти
*Анализа на тајмирање за да се потврди целата логика и дека колата ќе работат на специфичната честота на оперирање
*Физички дизајн вклучувајќи планирање на поставеност, место и рута на логички порти
*Проверување дека претставувањата на RTL, нивоа на порти, нивоа на транзистори и физичките нивоа се еквиваленти
*Проверка за интегритетот на сигнали и можноста за произведување на чиповите

Ре-дизајнирање на обработувачкко јадро на помала коцкеста област помогнува да се смали сè (т.н photomask shrink), резултирање во истиот број на транзистори само на помала коцка. Тоа го подобрува перформаности (помали транзистори префрлаат побрзо), намалуваат на енергетска потрошувачка (помали жици имаат помал паразитска капацитивност) и ја намалуваат цената (помалку обработувачи собрани на истата силициумска вафла). Пуштање во употреба обработувач на коцка со истата големина, но со помало обработувачкко јадро, ја задржува цената на истата бројка но дозволува поголеми нивоа на интеграција во еден ‘големо-скалиран интегриран чип’ (додатен кеш, повеќе проесори или други компоненти), подобрувајќи ги перформансите и намалување на воглавната цена на системот.

Како и со повеќето сложени електронски дизајни, напорот за логичка верификација (докажување дека дизајнот нема грешки) доминира со распоредот на обработувачккиот проект.

Клучни архитектурски иновации вклучуваат индекс регистри, кеш, виртуелна меморија, инструкциски pipelining, суперскалирање, CISC, RISC, виртуелни машини, емулатори, микропрограми и стекови.

### Теми за истражување

Разновидност на нови идеи за дизајнирање на обработувачи биле предложени, вклучувајќи реконфигурабилна логика, обработувачи без клок, компјутитионален RAM и оптичко компјутирање.
Анализа на перформанси и бенчмаркинг
Бенчмаркингот е начин на испробување на обработувачкката брзина. Примери вклучуваат SPECint и SPECfp, развиени од Standard Performance Evaluation Corporation, и ConsumerMark развиени од Embedded Microprocessor Benchmark Consortium EEMBC.

Некои од најчесто користените метрики вклучуваат:
*Интрукции во секунда - Повеќето конзумери бираат компјутерска архитектура (нормално Intel IA32 архитектура) која може да обработува голема паза на веќе постоечки и однапред компајлиран софтвер. Дел од нив, бидејќи се неинформирани за компјутерски бенчмарк, избираат обработувач заснован на оперативната честота.
*FLOPS - Бројот на операции со подвижна запирка во секунда е често важна при селектирање на компјутери за научни компјутирања.
*Перформанс/вати сооднос - Дизајнери на системи кои градат паралелни компјутери, како Гугл, бираат обработувачи засновани на нивната брзина во однос на вати поради тоа што цената на енергијата што е потребна за напојување на обработувачот е поголема од цената на самиот обработувач.
*Некои дизајнери на системи кои градат паралелни компјутери бираат обработувачи засновани на брзината во однос на цената.
*Систем дизајнери кои градат компјутерски системи во ‘реално-време’ сакаат да гарантираат одговор при ‘најлошо сценарио’. Тоа полесно се прави кога обработувачот има ниска латенција на прекинатост и детерминистички одговор (DSP).
*Програмери кои работат директно во assembly сакаат обработувач кои поддржува цело вметнат инструкциски сет.
*Ниска енергетска потрошувачка - За системи со лимитирани извори на моќност (пр. сончева, батерии, човечка)
*Мала големина или тежина - за преносни ембедирани системи, пример во вселенски летала.
*Еколошко влијание - Минимизирање на еколошкото влијание за време на производство, рециклирање и користење. Намалување на ѓубрето, намалување на опасните материјали.

Може да има размени во оптимизирање на некои од овие параметри. Конкретно, многу техники на дизајн кои го прават работењето на обработувачот побрзо ги прави "перформансите на вати", "перформансите по долар", и "детерминистички одговор" многу полоши, и обратно.

## Пазари

Има повеќе различни пазари кои користат обработувачи. Бидејќи секој од овие пазари се разликува во побарувачката на перформансите на обработувачите, направите дизајнирани за едниот пазар се многу неадекватни во однос на цената со другите пазари.

### Компјутирање за општа потреба

Мнозинството од приходи генерирани од обработувачкките продажби е за компјутери за општа употреба како: лични компјутери, лаптопи, опслужувачи кои се користат најчесто во домашни услови и претпријатија. Во овој пазар Intel IA-32 архитектурата доминира, со нејезините соперници PowerPC и SPARC одржувајќи многу помали бази на клиенти. Годишно, стотици-милиони IA-32 архитектурски обработувачи се користено од страна на овој пазар. Растечки процент на овие обработувачи се за мобилни имплементации како нетбукови и лаптопи.

Бидејќи овие направи се користат за рабтење на безброј различни типови на програми, овие обработувачи не се специфично таргетирани кон еден тип на апликација или функција. Побарувачката за можноста да работат со повеќе типови на програми воедно ги има направено овие обработувачкки дизајни меѓу технолошки најразвиените, заедно со некои лоши страни како и фактот дека се поскапи и имаат поголема енергетска побарувачка.

### Економија на обработувачи со висок квалитет

Во 1984, за повеќето обработувачи со висок квалитет било потребно четири до пет години развој на истите.

### Научни компјутери

Научните компјутери е многу помал вид на пазар (во приход и испорачани бројки). Се користи во владини лаборатории за истражување и универзитети. Пред 1990, обработувачккиот дизајн бил најчесто правен за тој пазар, но масовни обработувачи организирани во големи кластери докажале дека се по економско просперитетни. Главната преостаната област од активниот хардверски дизајн и истражување за научните компјутери е за системи за пренос на податоци при големи брзини и нивното поврзување со обработувачи од масовниот пазар.

## Вграден дизајн

Мерени според испорачани бројки, голем дел од обработувачите се вградени во други машини како телефони, саати, уреди, возила и инфраструктура. Вградени обработувачи се продаваат околу билиони годишно, но со многу пониски цени отколку оние обработувачи со општа намена.

Овие уреди со една функција се разликуваат од повеќе познатите обработувачи со општа функција на неколку начини:
*Ниската цена е од огромна важност.
*Важно е да се одржува ниска потрошувачка на моќ бидејќи вградените системи често имаат лимитиран живот на батеријата и често е непрактично да се вградуваат вентилатори за ладење.
*За да се добие ниска цена на системот, надворешните конектори за уреди се интегрирани со обработувачот на истиот силициумски чип.
*Одржувајќи ги надворешните уреди на истиот чип ја намалува енергетската конзумација бидејќи надворешните порти типично имаат потреба од баферинг за да може да ги одржуваат на ниво фисоките напони кои се потребни за да се одржи јак сигнал надвор од чипот.
**Многу вградени апликации имаат лимитирана количина на физички простор за кола: задржувајќи ги надворешните уреди на чипот го намалуваат просторот наменет за колото.
**Програмските и податочни мемории се често интегрирани на самиот чип. Кога единствената дозволена програмска меморија е ROM, направата е позаната како микроконтролер.
*За многу вградени апликации, латенцијата на прекинување е по-критична отколку во обработувачите со општа намена.

### Економија на вградени обработувачи

Најчесто испорачувана ‘фамилија’ на вградени чипови, со најголема бројка на испораки, е 8051 со близу до билион единици секоја година. 8051 е најшироко користена бидејќи не е многу скапа. Времето на дизајнирање е грубо кажано - нула бидеќи е широко достапно како комерцијален интелектуален имот. Моментално, најчесто е вграден како мал дел од поголем систем на чип. Цената на силициумот на 8051 е моментално одприлика 0,001 американски долари бидејќи некои имплементации користат 2.200 логични порти и заземаат 0,0127 квадратни милиметри силициум.

Од 2009, повеќе обработувачи се изработени користејќи ја ARM архитектурата на инструкциски сет отколку било кој друг 32-битен инструкциски сет. ARM архитектурата и првиот ARM чип биле дизајнирани во одприлика една и пол година и пет човечки години работа.

32-битниот Parallax Propeller микроконтролер архитектура и првиот чип биле дизајнирани од двајца колеги во одприлика 10 години работно време.

8-битната AVR архитектура и првиот AVR микроконтролер бил зачнат и дизајниран од двајца студенти на Норвешкиот Институт за Технологија.

8-битната 6502 архитектура и првиот MOS Technology 6502 лип биле дизајнирани за 13 месеци од страна на група која се состоела од 9 луѓе.

### Дизајн на обработувачи за истражување и образовни причини

32-битниот Berkeley RISC I и RISC II архитектури и првите чипови биле главно дизајнирани од серија студенти како дел од четвртинска секвенца на курсеви од факултет. Дизајнот настанал основа за комерцијалниот SPARC обработувачкки дизајн.

За време на една декада, секој студент кој го земал 6.004 курсот на MIT бил дел од тим, секој тим имал еден семестар да дизајнира и изгради еднотавн 8-битен обработувач од 7400 серија интегрирани кола. Еден тим од 4 студенти дизајнирал и изградил едноставен 32-битен обработувач за време на тој семестар.

Неколку додипломски курсеви имале потреби од тим кој се состоел од 2-5 студенти со цел да дизајнираат, имлементираат и испробуваат едноставен обработувач во FPGA за време од еден 15 неделен семестар.

MultiTitan обработувачот бил дизајнран за време на 2.5 човечки години, кои биле сметани за ‘релативно мал напор’ во тоа време. 24 колеги придонеле кон 3.5 годишниот MultiTitan истражувачки проект, кој вклучувал дизајнирање и градење на прототип обработувач.

### Меки мултиобработувачкки јадра

За вградени системи, највискоите нивоа на перформанс се најчесто непотребни или пожелни поради потребите за енергетски вредности. Ова дозволува користењето на обработувачи и истите да бидат целосно имплементирани во техники на логичка синтеза. Овие синтезирани обработувачи можат да бидат имплементирани во многу пократкро време, давајќи побрзо време за да се донесат на пазарот.

## Наводи