From Wikipedia, the free encyclopedia
Харвардската архитектура е компютърна архитектура с отделно съхранение и сигнални пътища за инструкциите и данните. Тя контрастира с архитектурата на фон Нойман, където програмните инструкции и данните споделят една и съща памет и пътища.
Терминът произлиза от реле-базирания компютър Mark I, който съхранява инструкции на перфолента (широка 24 бита) и данни в електро-механични броячи (въпреки че както произходът, така и значението, което обикновено се дава на термина „Харвардска архитектура“, се оспорва в „Митът за Харвардската архитектура“, публикуван от IEEE Annals of the History of Computing [1]). Хранилището за данни на тези ранни машини е вътрешна част от централния процесор. Те не предоставят достъп до инструкциите като данни. Такъв тип процесор не може да се инициализира сам. Нужен е оператор, който ръчно да зареди програмата.
Съвременните процесори се представят за потребителя като системи с архитектура на фон Нойман, като програмният код се съхранява в същата основна памет като данните. С цел по-висока производителност, вътрешно и до голяма степен невидимо за потребителя, повечето процесори имат отделни кешове за инструкциите и данните, с отделни пътища към процесора за всеки. Това е една от формите на така наречената модифицирана Харвардска архитектура.
Архитектурата на Харвард исторически и традиционно е разделена на две адресни пространства, но наличието на три, т.е. две допълнителни (и всички достъпни във всеки цикъл) също се случва,[2] макар и рядко.
В Харвардската архитектура няма нужда паметта за инструкции и паметта за данни да споделят характеристики. По-специално, ширината на думата, скоростта, имплементационната технология и структурата на адреса на паметта могат да се различават. В някои системи инструкциите за предварително програмирани задачи могат да се съхраняват в ROM паметта, докато паметта за данни обикновено изисква възможност за четене и запис. В някои системи има много повече памет за инструкции, отколкото памет за данни, така че адресите на инструкциите са по-широки от адресите на данните.
В система с чиста фон Нойманова архитектура инструкциите и данните се съхраняват в една и съща памет, така че инструкциите се извличат по същите пътища както данните. Това означава, че процесорът не може едновременно да чете инструкция и да чете или записва данни. В компютър с Харвардска архитектурата, процесорът може едновременно да прочете инструкция и да извърши достъп до паметта за данни,[3] дори без кеш. Това посзволява постигането на по-висока скорост при една и съща сложност на схемата.
Освен това машина с архитектура на Харвард има различни адресни пространства за код и данни: нулев адрес за инструкция не е същият като нулев адрес за данни. Нулевият адрес за инструкция може да идентифицира двадесет и четири-битова стойност, докато нулевият адрес за данни може да указва осем-битов байт, който не е част от тази двадесет и четири-битова стойност.
Модифицираната Харвардска архитектура много прилича на оригиналната Харвардска архитектура, но с не толкова стриктно разделение между инструкции и данни, като същевременно позволява на процесора да осъществява едновременно достъп до две (или повече) шини на паметта. Най-често срещаната модификация включва отделни кешове за инструкции и данни, поддържани от общо адресно пространство. Докато инструкциите се изпълнява от кеша, процесора действа като чиста Харвардска машина. Когато осъществява достъп до резервната памет, той действа като машина на фон Нойман. Тази модификация е широко разпространена в съвременните процесори, като архитектурата ARM, Power ISA и процесорите x86. Понякога се нарича просто Харвардска архитектура, като се пренебрегва фактът, че тя всъщност е „модифицирана“.
Друга модификация осигурява връзка между паметта за инструкции (като ROM или флашпамет) и процесора, за да позволи думите от паметта за инструкции да се третират като данни само четене. Тази техника се използва в някои микроконтролери, включително Atmel AVR. Това позволява достъп до константи, като например текстови низове или функционални таблици, без първо да се налага да бъдат копирани в RAM паметта.
През последните години скоростта на процесорите нарасна многократно в сравнение със скоростта на достъп на основната памет. За да се осигури добра производителност, достъпа до паметта трябва е ограничен. Например, ако всяка инструкция, изпълнявана в процесора, изисква достъп до паметта, компютърът не печели нищо от повишена скорост на процесора – скоростта е ограничена от скоростта на паметта.
Възможно е да се направи изключително бърза памет, но това е практично само за малки количества памет поради висока цена, висок разход на енергия и необходимостта от допълнителни сигнали. Решението е да се осигури малко количество много бърза памет, известна като CPU кеш, която съхранява наскоро достъпвани данни. Докато данните, от които процесорът се нуждае, са в кеша, производителността е много по-висока, отколкото когато процесорът трябва да получи данните от основната памет.
Модерните високопроизводителни дизайни на CPU чипове включват аспекти както на Харвардската архитектура, така и на фон Ноймановата. По-специално, версията „разделен кеш“ на модифицираната Харвардска архитектура е много разпространена. Кеш паметта на процесора е разделена на кеш за инструкции и кеш за данни. Харвардската архитектура се използва когато процесорът има достъп до кеша. В случай на пропуск в кеша обаче данните се извличат от основната памет, която не е формално разделена на отделни секции с инструкции и данни, въпреки че може да има отделни контролери на паметта, използвани за едновременен достъп до RAM, ROM и (NOR) флаш памет.
По този начин, въпреки че процесорът изглежда като фон Нойманова архитектура, хардуерната реализация получава ефективността на Харвардската архитектурата за достъп до кеша и поне някои от достъпите до основната памет.
В допълнение, процесорите често имат буфери за запис, които им позволяват да продължат след запис в некеширани региони. За да се запази модела на фон Нойман са нужни допълнителни синхронизации при записване на буфера.
Модифицираната Харвардска архитектура с модерни CPU кеш системи доближава по скорост „чистия" вариант. Машините с относително чиста Харвардска архитектура се използват най-вече в приложения, където ползите, като по-ниската цена и намаленото използване на енергия, надвишават трудностите за програмиране предизвикани от включването на различни адресни пространства за код и данни.
Дори в тези случаи е обичайно да се използват специални инструкции за достъп до програмната памет, сякаш са данни за таблици само за четене или за препрограмиране; тези процесори са процесори с модифицирана Харвардска архитектура.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.