ARM архитектура (разширено RISC машина Acorn RISC машина) е архитектура за 32-битови RISC процесори, разработена от ARM Limited, който е широко използван в редица embedded дизайни. Поради техните функции за пестене на енергия, ARM процесорите са доминиращи на мобилния пазар за електроника, където ниската потребленска мощност е критичен показател.
Известно е, че ARM7 е широко използван в on-chip и embedded системите, заменили старите 8-битови микроконтролери. Но ARM7 е още с фон Нойманова архитектура, което ограничава подобряването на ефективността на процесорите. Само проста операционна система е в състояние да работи с ARM7 чипове (като uCOS-II и uCLinux). Но ARM9, която е с Харвардска компютърна архитектура, поддържа повече embedded операционни системи (като WinCE). Проста система ARM9 може дори да работи като компютър, ако един монитор се свърже към неговия AGP порт. Всичко това е заради по-добрата производителност. ARM9 реализира същите (v4T) инструкции, както ARM7. Дължина на конвейера е 5 нива вместо трите на ARM7. Това дава възможност за по-бързо тактуване и наличие на TDMI разширения. С тези фактори, ефективността на процесора се засилва значително, особено в областта на DSP.
Можем да разберем архитектурата от техните кеш структури. Unified Cache означава, че е фон-Нойманов процесор, а divided cache е символ за Харвардска архитектура.
Нека да дадем някои разяснения за няколко ключови понятия:
MMU: Устройство за управление на паметта (Memory Management Unit), понякога наричан е хардуерen компонент на компютърa, отговарящ за обработване на заявките за достъп до паметта, поискан от централния процесор (CPU). Неговите функции включват преобразуването на виртуалните адреси във физически адреси (т.е. управление на виртуалната памет), защита на паметта, контрол на кеш, арбитраж на шината. Модерните MMU обикновено разделят виртуалното адресно пространство (обхвата от адреси, използвани от процесора) на страници, чийто размер е 2n, обикновено няколко килобайта. Долните N бита на адреса (офсета в рамките на една страница) са останали непроменени. Горните битове на адреса са номерата на страниците. MMU обикновено транслира виртуалните номера на страници във физически номера на страници чрез асоциативен кеш, наричан Translation Lookaside Buffer (TLB). Когато в TLB липсва транслация се използва по-бавен механизъм, включващ хардуерно специфични структури от данни или софтуерен помощник. Данните, намерени в тези структури от данни, обикновено се наричат записи в таблицата на страниците (PTEs) самата структура данни обикновено се нарича таблица на страниците. Физическия номер на страниците е комбиниран с офсета на страницата, за да даде пълния физически адрес.
Един MMU също намалява проблема с фрагментацията на памет. След като няколко блока памет се освободят, свободната памет може да се фрагментира така, че най-големите блокове, съседни на свободната памет да бъдат много по-малки от общата памет. С виртуална памет няколко граничещи виртуални адреса могат да бъдат съпоставени с няколко несъседни блока от физическата памет.
FPU: Устройство за числа с плаваща запетая (Floating Point Unit) е част от една компютърна система специално проектирано да извършва операции с числа с плаваща запетая. Типичните операции са събиране, изваждане, умножение, деление и корен квадратен. Някои системи (особено микрокод-базирани архитектури) също могат да изпълняват различни „трансцендентални“ функции, като например експоненциални или тригонометрични изчисления, въпреки че в повечето модерни процесори това се прави чрез софтуерна библиотека.
В най-модерните компютър архитектури с общо предназначение, един или повече FPU-та са интегрирани в централния процесор, но въпреки това много embedded процесори, особено по-старите дизайни, нямат хардуерна поддръжка за операции с числа с плаваща запетая.
Не всички компютърни архитектури имат хардуерни FPU. При липса на FPU, много от функции на FPU могат да бъдат емулирани, което спестява разходите за допълнителни хардуер, но е значително по-бавно. Емулацията може да се имплементира на някое от следните нива: в процесора като микрокод, като функция на операционната система или код в потребителското пространство.
В повечето съвременни компютърни архитектури има известно разделение на операциите с числа с плаваща запетая от целочислените операции.
Add-on FPUs (Coprocessor): Допълнително устройство за числа с плаваща запетая. В допълнение към Intel архитектури, FPUs като копроцесори бяха на разположение на поредица Motorola 680×0. Те също често сa добавяни към високия клас модели на Apple Macintosh и Commodore Amiga серии, но за разлика от IBM PC-съвместими системи, сокетите за добавяне на копроцесори не са били толкова чести при по-ниски серии системи. С 68040, Motorola интегрира FPU и процесора, но както при x86 серия, по-евтиния 68LC040 без интегриран FPU е също на разположение.
SMP: (Symmetric multiprocessing) е многопроцесорна компютърна архитектура, където два или повече идентични процесори са свързани с една обща основна памет. Повечето съвременни многопроцесорни системи използват архитектурата SMP. В случай на многоядрени процесори, SMP се прилага за ядра, които се третират като отделни процесори.
SMP системите позволяват всеки процесор да работи по всяка задача, без значение къде данните за тази задача са разположени в паметта; с подходяща системна поддръжка SMP системите могат лесно да се разпределят задачите между процесорите за балансиране на натоварването.
Три процесора са свързани към един и същ модул памет чрез шина или crossbar превключвател.
SMP е един от най-ранните архитектурни стилове за многопроцесорни машини, които обикновено се използват за изграждане на по-малки компютри с до 8 процесора. Големите компютърни системи могат да използват по-нови архитектури като NUMA (Non-Uniform Memory Access) или нееднороден достъп до паметта, която има различни банки памети за различните процесори. В архитектурата NUMA процесорите могат да достъпват до локални памети по-бързо и до далечната памет по-бавно.
Instruction Pipeline: (Конвейерни инструкции) Концептуално, всеки импулс на компютърния часовник се използва за контрол на една стъпка в последователността, но понякога допълнителни импулси могат да се използват за контрол на малки детайли в една стъпка. Някои процесори прекъсват изтегляне-декодиране-изпълнение цикъла на по-малки стъпки, където някои от тези по-малки стъпки могат да се извършват паралелно. Това преливане ускорява изпълнението. Този метод, използван от всички сегашни процесори, е известен като конвейер.
Да предположим, че изтегляне-декодиране-изпълнение цикъла е разбит на следните малки стъпки: изтегляне на инструкции, декодиране, изчислявана на ефективен адрес на операнда, изтегляне на операнди, изпълнение на инструкции, както и запис на резултат.
Фиг. 5 представя илюстрация на конвейера на компютъра с припокриване на етапите. Виждаме всеки часовников цикъл и всеки етап за всяка инструкция (S1 представлява извличането, S2 представлява декодирането, S3 е изчисляване на нивото, S4 е извличане на операнд, S5 е изпълнението, и S6 е записа).
След като инструкция 1 е извлечена и е в процес на декодиране, можем да започнем изтеглянето на инструкция 2. Когато инструкция 1 е извлечена, както и операндите и и инструкция 2 се декодира, можем да започнем изтеглянето на инструкция 3.