Архитектура рачунара
Архитектура рачунара је унутрашња структура дигиталног рачунара коју сачињава дизајн и распоред скупа инструкација и регистара за складиштење података. Одређена рачунарска архитектура се бира имајући у виду тип програма (софтвера) који ће се на њему извршавати (пословни, научни, опште намјене, итд). Главне компоненте или подсистеми једне рачунарске архитектуре су улазно/излазни уређаји, складиштење (примарна и секундарна меморија), комуникација, контрола и процесовање. За сваки се може рећи да поседује властиту, посебну архитектуру.
У рачунарској науци и инжењерству, архитектура рачунара је скуп дисциплина која описује рачунарски систем наводећи његове делове и њихове односе.
На пример, на високом нивоу, рачунарски инжењери могу бити забринути како централна процесорска јединица (ЦПУ) делује и како користи меморију рачунара. Неке модерне (2011) рачунарске архитектуре укључују кластере рачунарства и неуједначен приступ меморији.
Рачунарски инжењери користе рачунаре за дизајн нових технологија у рачунарству. Иако је дизајн веома лако променити, компајлер дизајнери често сарађују са архитектама, предлажући побољшања у сету инструкција. Модерни емулатори могу мерити време у циклусима генератора такта: проценити потрошњу енергије у џулима и дају реалне процене величине кода у бајтовима. Они утичу на погодност корисника, трајност батерије, као и величине и цену највећег физичког дела рачунара: меморији. То јест, они помажу да процени вредност рачунара.
Историја
уредиПрва документована рачунарска архитектура била у преписци између Чарлса Бебиџа и Аде Ловлејс, у којој је описана аналитичка машина. Још један пример је први нацрт извештаја Џона фон Нојмана о ЕДВАЦ из 1945, који је описао организацију логичких елемената. IBM га користи за развој рачунара IBM 701, првог комерцијалног рачунара са ускладиштеним програмима, испорученог почетком 1952.
Термин „архитектура“ у рачунарској литератури може се пратити на раду Лајле Р. Јохнсон, Мохамед Усман Кхана и Фредерика П. Броокс, Јр, 1959- чланова одељења Машинске организације у главном истраживачком центру IBM-а. Џонсон је имао прилику да напише истраживачки рад о Стречу, IBM - развија суперрачунар у научној лабораторији Лос Аламос. Да би описао ниво детаља за разматрање рачунара, он је истакао да је његов опис формата, инструкција, типове хардвера параметара, брзине и побољшања били на нивоу " архитектуре система " -термин који се чинило више него користан " машинска организација“.
Након тога, Брукс, почео је друго поглавље књиге (планирање рачунарског система : Пројекат Стреч, изд В. Бучхолз , 1962 ) пишући, " Архитектура рачунара, као и друге архитектуре, јесте уметност утврђивања потреба корисника, структуре, а затим пројектовање да, што је могуће у оквиру економских и технолошких ограничења задовољи те потребе“.
Брукс је помогао развој IBM Систем/360 линију рачунара, у којој је " архитектура " постала именица која дефинише „шта корисник треба да зна“. Касније, корисници рачунара су користили термин у многим мање - експлицитним начинима.
Подкатегорије
уредиДисциплина архитектуре рачунара има три главне подкатегорије:[1]
- Скуп инструкција архитектуре, или ИСА. ИСА дефинише кодове који централни процесор чита и поступа по њима. То је језик машина (или скупа језика), укључујући и скуп инструкција, величине речи, меморија адресних модова, процесорских регистара, и адресу и формат података.
- Микроархитектура, такође познат као рачинарска организација која описује стазе података, елементе за обраду података и елементе за складиштење података, и описује како они треба да имплементирају ИСА.[2] Величина процесорског кеша рачунара, на пример, је организациони проблем који генерално нема везе са ИСА.
- Систем дизајн обухвата све остале хардверске компоненте унутар рачунарског система. Оне укључују:
- Стазе података, као што су рачунарске магистрале
- Меморијске контролере и хијерархије
- Обраду података осим процесора, као што је приступ директаној меморији (ДМА)
- Остало питања као што су виртуализација, мултипроцесорске и софтверске карактеристике.
Неки архитекти у компанијама као што су Интел и АМД користе детаљнију поделу:
- Макроархитектура : архитектонски слојеви више апстрактни него микроархитектура, нпр ИСА
- Упутство сет Архитектура (ИСА) : као горе, али без:
- Асемблер ИСА :паметан асемблер може претворити апстрактни језик у заједнички за групу машина у нешто другачијем машинском језику за различите имплементације.
- Програмер макроархитектуре : виши ниво језичких алатки, као што су компајлери, може дефинисати конзистентан интерфејс или уговор за програмере који их користите, апстрахује разлике између основног МСР , УИСА и микроархитектура. На пример то су C , C++ , Јава
- УИСА -фамилија машина са различитим хардверским нивоима микроархитектуре могу да деле заједничку архитектуру, а самим тим УИСА.
- Пин Архитектура : Функције хардвера које микропроцесор треба да обезбеди на хардверској платформи, на пример, на к86 пинова А20М, ФЕРР / ИГННЕ. Такође, поруке које процесор треба да емитује да се екстерни кеш испразни. Функције пин архитектуре су флексибилнији од ИСА функција јер спољни хардвер може да се прилагоди новом кодирању. Термин " архитектура " одговара, јер мора да се обезбеди функције за компатибилне системе.
Улога
уредиДефиниција
уредиЦиљ је дизајниран рачунар који има максимални учинак, а имајући потрошњу енергије у виду, ниске трошкове у односу на износ очекиване перформансе, а такође да је веома поуздан. Да би се ово постигло многи аспекти треба да се размотре, укључујући скуп инструкција, функционалну организацију, логику пројектовања и имплементације. Имплементација подразумева интегрисано коло дизајн, паковање, напајање и хлађење. Оптимизација дизајна захтева познавање компајлера, Оперативни системи који одговара логици дизајна и паковања.
Скуп инструкција архитектуре
уредиСкуп инструкција архитектуре (ИСА) је интерфејс између хардвера и софтвера рачунара и може се посматрати из угла програмера машине. Рачунари не разумеју језике високог нивоа који имају мало, ако их има, језичке елементе који се преводе директно у изворни машински код. Процесор разуме само инструкције кодиране на неки нумеричком начин, обично као бинарне бројеве. Софтверски алати, као што су компајлери, преводе језике на високом нивоу, као што је C, у инструкције.
Осим инструкција, ИСА дефинише ставке у рачунару који су доступни програму - пример типови података, регистара, начини адресирања и меморија.
ИСА рачунара се обично описује као мала књига, која описује како су инструкције кодиране. Такође, она може дефинисати кратко (нејасно) мненоничка имена инструкција. Имена се могу препознати помоћу развијеног софтверског алата збаног асемблер. Асемблер је рачунарски програм који преводи људски читљив облик инсрукција на ИСА рачунарски читљив облик. Дисассемблерс је такође широко распрострањен, обично у дебагерима.
ИСА варира у квалитету и комплетности. А добри ИСА праве компримис између удобности програмера (више инструкција) и трошкова рачунара да тумаче инструкције (јефтиније је боље), брзину рачунара (брже је боље) , и величине кода (мањи је бољи). Меморијска организација дефинише како инструкције интерагују са меморијом, а такође и како различити делови меморије комуницирају једни са другима.
Организација рачунара
уредиОрганизација рачунара помаже у оптимизацији префрормански продукта. На пример, софтверски инжењери треба да знају могућности процесора да обради захтеве. Они ће можда морати да оптимизују софтвер како би добили највише перформансе а најмању цену. Ово може захтевати прилично детаљну анализу организације рачунара. На пример, мултимедијални декодер, дизајнери можда морати да организују да се већина података обрађују у најбржем путу.
Организација рачунара такође помаже избору процесора за одређени пројекат. Мултимедијалним пројектима потребан је веома брз приступ подацима, док је надзорни софтвер можда морати да има брзе прекиде. Понекад су за одређене задатке потребне додатне компоненте. На пример, рачунар способан за виртуелизацију захтева хардвер виртуелне меморије, тако да се меморија различитих симулираних рачунара може држати одвојена. Организација рачунара и карактеристике такође утичу на потрошњу енергије и трошкове процесора.
Имплементација
уредиКада се заврши са описом скупа инструкција и микроархитектуре рачунара, практична машина може бити пројектована. Овај процес дизајн се зове имплементација. Имплементација се обично не сматра инжењерском дефиницијом, већ дизајном хардвера. Имплементација се може даље разложити на неколико (не потпуно различита корака):
- Логичка Имплементација дизајнира блокове дефинисане у микро-архитектури на (пре свега) на нивоу регистар - трансфер и нивоу логичког кола.
- Имплементација кола ради на транзисторском нивоу - дизајн основних елемената (капије, мултиплексера, резе и сл), као и неких већих блокова ( алус, кеш итд) који се могу спроводити на овом нивоу, или чак (делимично) на физичком нивоу, из разлога перформанси.
- Физичка имплементација повлачи физичке кола. Различите компоненте кола су смештени у чипу или на табли и жице их повезују се усмеравају.
- Дизајн Валидација тестира рачунар у целини да види да ли ради у свим ситуацијама и свим тренуцима. Када почне имплементација, први дизајн валидације су симулара користећи логику емулатора. Међутим, ово је обично сувише споро да покреће реалне програме. Дакле, после корекције, прототипови су конструисани користећи програмибилна поља - низове (ФПГА). Многи пројекти хоби заустављени су у овој фази. Последњи корак је да се тестира прототип интегрисаних кола. Интегрисана кола могу захтевати неколико редизајнирања у случају да постоји проблем који треба решити.
За процесоре, цео процес имплементације се често назива дизајн процесора.
Циљеви дизајна
уредиТачан облик рачунарског система зависи од ограничења и циљева. Компутерска арцхитектура обично баланс између стандарда, снаге и перформанси, цене, капацитета меморије, латенције (латенција је количина времена које је потребно за информације од једног чвора да путују до извора) и пропусне моћи. Понекад други разлози, као што су карактеристике, величина, тежина, поузданост и проширења су такође разматрајући фактори.
Најчешћа шема иде у дубину анализе у циљу да разреши како да задржи ниску потрошњу енергије, уз одржавање адекватног учинка.
Перформансе
уредиМодерне перформансе рачунара се често описују у МИПС по MHz (милиона инструкција у милионима циклуса такта). Ово мери ефикасност архитектуре при било којој брзини такта. Пошто бржи сат може направити бржи рачунар, ово је корисно, широко примењиво мерење. Историјски рачунари имали МИПС/ MHz ниско око 0.1. Јадноставни модерни процесори лако достижу близу 1. Суперкаларни процесори могу достићи три до пет извршавајући неколико инструкција у једном циклусу. процесори са више језгара и векторске обраде ЦПУ може помножити ово у будућности на много података секунди.
Историјски гледано, многи људи мерили брзине рада рачунара по такту (обично у MHz или GHz). Ово се односи на број циклуса у секунди главног такта процесора. Међутим, ово је нешто погрешно метрички, машина са вишим тактом не мора нужно имати боље перформансе. Као резултат тога произвођачи су удаљили од такта као мере учинка.
Остали фактори могу утицати на брзину, као што је мешавина брзина, брзина магисртале, брзина меморије на располагању, као и врста и редослед инструкција које се покрећи у програмима.
У типичном кућном рачунару, најједноставнији, најпоузданији начин да се убрза рад је обично додавање радне меморије (РАМ). Више РАМ-а повећава вероватноћу да су потребни подаци или програм у РАМ-у – па је мање вероватно да ће систему требати премештање података из секундарне меморије диска. Диск је често десет хиљада пута спорији него РАМ јер има механичке делове који морају да се покрећу како би се приступило подацима.
Постоје две главне врсте брзине, латенције и продуктивност. Латенција је време између почетка процеса и његовог завршетка. Продуктивност је количина изведених инструкција по јединици времена. Прекидачка латенција је гарантовано максимално време одзива система за електронски догађаја ( нпр. када диск заврши померање неких података).
На перформансе утиче веома широк спектар дизајнерских избора - на пример, процесор обично чини латенцијеа гори (спорији), али чини проток бољи. Рачунарима који контролишу машине обично је потребно да имају ниске прекидне латенција. Ови рачунари раде у реалном времену окружења и имаће неуспех ако операција није завршена у одређеном временском периоду. На пример, рачунарски контролисана против блокирања кочница мора почети кочење у предвидљиво, кратко време после стискања предале кочнице.
Прошерења у снази
уредиПотрошња у снази је још једна мера која је важна у савременим рачунарима. Енергетска ефикасност се често може балансирати између брзину или ниже цене. Типично мерење у овом случају је МИПС/В (милион инструкција у секунди по вату).
Модерна кола имају мање снаге по транзистору како број транзистора по чипу расте. Дакле, проширења у снази повећавају ефикасност значајно. Претходни дизајни процесора, као што су Интел коре 2 cу ставили већи нагласак на повећању енергетске ефикасности. Такође, у свету уграђених пачунара, ефикасност снаге је дуго била и остаје важан циљ поред продоктувности и кашњења.
Референце
уреди- ^ John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach (3. изд.). Morgan Kaufmann Publishers.
- ^ Laplante, Phillip A. (2001). Dictionary of Computer Science, Engineering, and Technology. CRC Press. стр. 94—95. ISBN 978-0-8493-2691-2.
Литература
уреди- John L. Hennessy and David Patterson (2006). Computer Architecture: A Quantitative Approach (4. изд.). Morgan Kaufmann. ISBN 978-0-12-370490-0.[мртва веза]
- Barton, Robert S., "Functional Design of Computers", Communications of the ACM 4(9): 405 (1961).
- Barton, Robert S, "A New Approach to the Functional Design of a Digital Computer", Proceedings of the Western Joint Computer Conference, May 1961, pp. 393–396. About the design of the Burroughs B5000 computer.
- Bell, C. Gordon; and Newell, Allen (1971). "Computer Structures: Readings and Examples", McGraw-Hill.
- Blaauw, G.A., and Brooks, F.P, Jr., "The Structure of System/360, Part I-Outline of the Logical Structure" Архивирано на сајту Wayback Machine (23. април 2016), IBM Systems Journal, vol. 3, no. 2, pp. 119–135, 1964.
- Tanenbaum, Andrew S. (1979). Structured Computer Organization. Englewood Cliffs, New Jersey: Prentice-Hall. ISBN 978-0-13-148521-1.
Спољашње везе
уреди- ISCA: Proceedings of the International Symposium on Computer Architecture Архивирано на сајту Wayback Machine (7. мај 2006)
- Micro: IEEE/ACM International Symposium on Microarchitecture
- HPCA: International Symposium on High Performance Computer Architecture
- ASPLOS: International Conference on Architectural Support for Programming Languages and Operating Systems Архивирано на сајту Wayback Machine (9. мај 2006)
- ACM Transactions on Computer Systems
- ACM Transactions on Architecture and Code Optimization
- IEEE Transactions on Computers
- The von Neumann Architecture of Computer Systems