- Архитектури на процесори
- Архитектура на набор от инструкции RISC и CISC
- Комплексни изчисления с инструкции (CISC)
- Намалено изчисляване на набор от инструкции (RISC)
Вградената система е сърцевината и сърцевината на повечето електронни продукти, предлагани на пазара. Това е внедряването на инженеринг, при което хардуерът отговаря на софтуера. Заобиколени сме от свят на вградени системи, с мини-компютри в биометрични брави на врати, самолети, автомобили, пейсмейкъри и др. Тези ограничени ресурси, малки, интелигентни и мощни системи ни помагат в ежедневните ни задачи.
Винаги съм мислил как функционира нашето тяло, нервната система, мозъкът и способността за многозадачност. Ако комбинирате всички тези функции, ще получите груба картина на биологична вградена система. Нашият мозък крие сложните детайли от функционирането си, които се случват вътре в него, но въпреки това ни позволява да го контролираме с максимален потенциал. Същата сложност важи и за процесора или контролера, използвани във вградени системи. Те крият сложни детайли и ни предоставят интерфейс на високо ниво, върху който да работим. За нивото на абстракция може да се свърже как кодът за добавяне на две числа в език за програмиране на високо ниво причинява регистрите в чиповете да обработват битове и дават изход обратно на потребителя.
Архитектури на процесори
Централният процесор, отнасящ се както за микропроцесор, така и за микроконтролер, изпълнява специфични задачи с помощта на контролен блок (CU) и аритметичен логически блок (ALU). Тъй като инструкциите се доставят от RAM, процесорът действа с помощта на двете си помощни единици, като създава променливи и им присвоява стойности и памет. Наистина е важно да знаете как процесорът изпълнява всички тези действия с помощта на своята архитектура. Ако искате да научите повече за това как работи микроконтролерът, можете да прочетете тази основна статия за микроконтролера.
Всеки процесор има свързана с него памет за съхранение на програмата и данните. Програмата и данните работят с процесора, за да получат изхода. Програмата предоставя инструкции, докато данните предоставят информацията, върху която трябва да се работи. За достъп до програмата и данните CPU използва шини, тези шини са проводници, по-точно това са следите от проводници, както може би сте виждали на печатните платки. През тези години микроконтролерите и микропроцесорите се развиха чрез адаптиране на различни архитектури, въз основа на приложението или изискванията за дизайн, изборът на микроконтролер се влияе от типа архитектура, използвана в него. Нека да разгледаме популярните архитектури.
Архитектура на фон Нойман / Принстън
Начинът, по който процесорът получава достъп до програмата и данните, разказва за архитектурата на процесора. По-рано за получаване на достъп до програмата и данните се използваше една-единствена шина. Този тип архитектура е известна като Von Neumann Architecture или по-просто Princeton Architecture. Единична шина за получаване на кода и данните означава, че те идват, за да си намерят пътя и да забавят скоростта на обработка на процесора, защото всеки трябва да изчака другият да завърши извличането. Това ограничение е известно още като условието на Von-Neumann за затруднение.
Харвардска архитектура
За да се ускори процесът беше предложена Харвардската архитектура. В тази архитектура присъстват отделни шини за данни за данни и програма. Това означава, че тази архитектура предлага използването на четири автобуса
- Набор от шина за данни, пренасяща данните към и извън CPU.
- Набор от адресна шина за достъп до данните.
- Набор от шина за данни за носене на код в процесора.
- Адресна шина за достъп до кода.
Използването на отделна адресна шина и шина за данни означаваше ниско време за изпълнение на процесора, но това се дължи на сложността при проектирането на архитектурата. Архитектурата на Von Neumann може да звучи малко мързеливо, но има предимството от простия си дизайн.
Харвардската архитектура е много лесна за изпълнение, когато процесорът и блоковете памет споделят едно и също пространство или RAM и ROM са вградени (в чипа) с процесора, като например в микроконтролер, където разстоянията са в микрони и милиметри. Същата архитектура обаче е трудно да се приложи, когато паметта, съдържаща кода, е външна за процесора, като тази в x86 IBM PC. Комплект отделни следи от проводници както за данните, така и за адреса на дънната платка биха направили платката сложна и скъпа. Нека го разберем с пример за процесор.
Процесорът с 64-битова шина за данни и 32-битова адресна шина ще се нуждае от приблизително 100 шини (96 за шината за данни и адреси и няколко други за управляващите сигнали) за изпълнение на архитектурата на Von-Neumann. Същата структура, ако се реализира с архитектурата на Харвард, ще струва двойни проводници приблизително 200 с голям брой изводи, излизащи от процесора. По същата причина не виждаме чиста харвардска архитектура, внедрена за персонални компютри и работни станции. Вместо това се използва модифицирана харвардска архитектура, в която йерархията на паметта с кеш памет на процесора се използва за разделяне на програмата и данните. Йерархията на паметта разделя хранилището въз основа на йерархията на времето за отговор на процесите.
Инструкция за архитектура
Тъй като програмата (кодът) се зарежда в паметта на системата (RAM), тя се извлича от процесора (отнасящ се както за микропроцесор, така и за микроконтролер), за да действа върху данните, тя е много подобна, тъй като даваме инструкции, когато обучаваме кучето за определени действия и команди. Тъй като тези инструкции се въздействат на определени транзистори, преминава от едно логическо ниво на друго, за да се случи това. Така че основно с помощта на инструкции човешкият програмист комуникира с процесора. Всеки процесор има свой собствен набор от инструкции, колекция от инструкции въз основа на неговата архитектура и възможности.
CPU разбира тези инструкции в комбинацията от 0 и 1, които също са известни като opcode. За човешки програмист е наистина трудно да запомни комбинацията от 0 и 1 за всяка инструкция, която е свързана с процесора. За да улесним работата на човешки програмист, ние сме снабдени с интерфейси на високо ниво на тези инструкции и компилаторът ги преобразува под формата на 0 и 1 за тяхната обработка. Също така в набора от инструкции на всеки процесор, той има ограничен брой инструкции, които може да разбере.
Производителност на процесора
Може да сте чували термина тактова честота на процесора, свързан с производителността на процесора. Процесорите обикновено имат тактова честота в MHz (Mega-Hertz) или GHz (Giga-Hertz) като 25 GHz тактова честота. Числото, свързано с тактовата честота, показва колко пъти часовникът в процесора отчита в цикли в секунда. Практичността на тактовата честота може да се разбере от факта, че инструкциите се изпълняват въз основа на тактови цикли на процесора, което е пропорционално на броя програми, които CPU може да изпълнява в даден момент.
В работата на процесора, зависи от броя на инструкции, които са написани в програмата, повече инструкциите, по времето, за което процесора, за да ги изпълни. Също така зависи от броя на тактовите цикли, в които се изпълнява всяка инструкция, някои инструкции се нуждаят от повече тактови цикли, за да бъдат изпълнени, отколкото други, така че да изостават в работата на процесора. Инструкциите в програма и циклите, необходими за изпълнение на всяка инструкция, са обратно пропорционални една на друга. Промяната на едно ще повлияе на другото. Това е точката, в която индустрията на процесорите е разделена.
Архитектура на набор от инструкции RISC и CISC
Както беше казано по-горе, изпълнението на програма и производителността на процесора зависи от броя на инструкциите в програма, при които инструкциите са предложени на конкретния процесор като част от набора инструкции, а вторият фактор е броят на тактовите цикли в която всяка инструкция се изпълнява. Въз основа на тези два фактора в момента са налични две инструкции. Най-ранното от които е Компютърно изчисляване на набор от инструкции (CISC), докато другото е Изчисление на набори от инструкции (RISC). Нека обсъдим всяка от тези архитектури в детайли, за да разберем разликата между RIC и CISC архитектура.
Комплексни изчисления с инструкции (CISC)
CISC е съкращение от Компютърни изчисления с инструкции. Основният мотив на CISC е да намали броя на инструкциите, които програмата изпълнява, това се прави чрез комбиниране на много прости инструкции като режим на адрес, зареждане и т.н. и да се образува една сложна инструкция. Инструкцията CISC включва поредица от прости инструкции, както и някои специални инструкции, които изпълняват повече от един часовник. Инструкциите на CISC могат директно да работят върху паметта без намеса на регистри, което означава, че елиминира необходимостта от някои основни инструкции като зареждане на стойности и изискване за памет (RAM). Инструкциите на CISC наблягат повече на хардуера, отколкото върху софтуера, което означава, че вместо да натоварват компилаторите,CISC използва транзистори като хардуер за декодиране и изпълнение на инструкции. Тъй като обаче инструкциите са сложни и представляват множество стъпки, те се изпълняват в по-голям брой тактови цикли.
Една проста аналогия, която трябва да се свърже, е когато ви се каже да отворите книгата и да прочетете втората страница на третата глава. В тази поредица от дейности правите няколко стъпки, като например да намерите книгата от чантата си, отколкото да разместите страницата до глава 3 и след това да отидете на 2- ра страница на главата и след това да започнете да четете. Поредицата от стъпки, ако се комбинират в една инструкция за четене на страница 44 (която е номер на 2- ра страница на 3 -та глава), получаваме инструкция CISC.
Намалено изчисляване на набор от инструкции (RISC)
Първият интегриран чип е проектиран от Джак Килби през 1958 г., който е осцилатор, а през 1970 г. първият търговски микропроцесор излиза от Intel. Въпреки че при стартирането на процесорите нямаше CISC. Но с тежките изчислителни изисквания архитектурата на CISC става все по-сложна и трудна за обработка. Пълен редизайн на CISC архитектурата, известна като RISC, излезе от IBM от Джон Коук. По този начин, за да се направи разлика между двете архитектури, бяха въведени термините RISC и CISC.
RISC означава съкратено изчисление на набор от инструкции. Основният мотив на RISC беше да въведе еднаквост в размера и изпълнението на инструкциите. Това беше направено чрез въвеждане на прост набор от инструкции, който може да се изпълни като една инструкция на цикъл, това се прави чрез разбиване на сложни инструкции като зареждане и съхраняване в различни инструкции, където всяка инструкция отнема приблизително един тактов цикъл за изпълнение. В архитектурата RISC включва прости инструкции, със същия размер, който може да бъде изпълнен в един цикъл часовник. Машините, базирани на RISC, се нуждаят от повече RAM от CISC, за да задържат стойностите, тъй като зареждат всяка инструкция в регистри. Изпълнението на единична инструкция за цикъл дава на RISC машините предимство на тръбопровода(конвейерът е процес, при който следващата инструкция се зарежда преди изпълнението на първата инструкция, това увеличава ефективността на изпълнението). RISC архитектурата подчертава