Лекция 4. Архитектура процессоров для ВИУС РВ (Лекции 2014-2015)
Описание файла
Файл "Лекция 4. Архитектура процессоров для ВИУС РВ" внутри архива находится в папке "Лекции 2014-2015". PDF-файл из архива "Лекции 2014-2015", который расположен в категории "". Всё это находится в предмете "(иус рв) архитектура управляющих систем реального времени" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
ВСТРОЕННЫЕ ИНФОРМАЦИОННОУПРАВЛЯЮЩИЕ СИСТЕМЫ РЕАЛЬНОГОВРЕМЕНИЛекция 4:Архитектура процессоров для ВИУСРВВМиК МГУ им. М.В. Ломоносова, Кафедра АСВК,Лаборатория Вычислительных Комплексов,Ассистент Волканов Д.Ю.План• Интегрированная модульнаяавионика• Процессор ARM• Процессор обработки сигналов (NM6403)• Задача WCET24-е поколение боевых комплексовФедеративная структура КБОСистема индикацииБЦВМБЦВММКИО, ARINC 429,СистеманавигацииЦВМЦВМРЭКОЭКЦВМЦВМЦВМЦВМО ОС ДУЦВМЦВМЦВМЦВМЦВМСУОУЦВМ Низкоскоростные каналы информационного обмена (МКИО, ARINC429) Большое количество разнотипных специализированныхвычислителей Невозможность комплексной обработки информации Применение однопроцессорных вычислительных системЦВМЦВМЦВМУЦВМКомплекс средствсвязиУЦЦВМВМ335-е поколение боевых комплексовИнтегрированная структура КБОИУСИУПБЦВМБЦВМКоммутаторМКИО, ARINC 429,Fibre ChannelСистеманавигацииРЭКОЭКЦВМЦВМО ОС ДУЦВМЦВМЦВМкоммутатор Использование высокоскоростных каналов информационного обмена наряду сМКИО Сокращение количества отдельных вычислителей Комплексная обработка информации Перенос третичной и вторичной (частично) обработки информации в «ядро» Применение многопроцессорных вычислительных системСУОЦВМКомплекс средствУсвязиЦЦВМВМ445+ поколение боевых комплексовИнтегрированная модульная авионика боевых комплексовИУСИУПЕдиный вычислительный кластерБЦВМВычисл .модулиБЦВМВычисл.
модулиFibre ChannelСНВычисл. модулиОЭКВычисл. модулиРЭКВычисл. модулиСУОВычисл. модулиКССВычисл. модули Использование высокоскоростных каналов информационного обмена в качестве базового инструментамежмодульной и межблочной связи. Использование однородной вычислительной среды и унифицированных модулей в различных системах КБО Комплексная обработка информации и гибкая реконфигурация при отказах Использование многоядерных процессоров55Требования к процессорамво встроенных системах• Предсказуемость• Энергопотребление• Тепловыделение• Надёжность6ARM Powered Products7ARM• Парадигма программированияНабор инструкцийАрхитектура системы8Размер типов данных инабор иструкций• ARM имеет 32-битную архитектуру.• Обычно в ARM используется следующие ключевые слова:– Byte - 8 bits– Halfword - 16 bits (два байта)– Word - 32 bits (четыре байта)• Большинство ARM процессоров реализует два набораинструкций– 32-bit ARM Instruction Set– 16-bit Thumb Instruction Set9Режимы работы процессора• Семь основных режимов функционирования ARM:– User : непривилегированный режим, под которым выполняетсябольшинство задач– FIQ : включается, когда приходит high priority (fast) прерывание– IRQ : включается, когда приходит low priority (normal) прерывание– Supervisor : включается при перегрузке и когда выполняется SoftwareInterrupt instruction– Abort : позволяется ловить нарушения режима доступа к памяти– Undef : позволяет ловить нераспознанные инструкции– System : привилегированный режим использующий те же регистры,10что и User режимНабор регистров в ARMCurrent Visible RegistersAbortModeUndefSVCModeIRQFIQUserModeModeModer0r1r2r3r4r5Banked out Registersr6r7r8r9r10r11UserFIQr8r9r10r11r8r9r10r11r12r13 (sp)r14 (lr)r15 (pc)r12r13 (sp)r14 (lr)cpsrspsrIRQSVCUndefAbortr12r13 (sp)r14 (lr)r13 (sp)r14 (lr)r13 (sp)r14 (lr)r13 (sp)r14 (lr)r13 (sp)r14 (lr)spsrspsrspsrspsrspsr11Организация регистровUserr0r1r2r3r4r5r6r7FIQUsermoder0-r7,r15,andcpsrIRQUsermoder0-r12,r15,andcpsrSVCUsermoder0-r12,r15,andcpsrUndefUsermoder0-r12,r15,andcpsrAbortUsermoder0-r12,r15,andcpsrr8r9r10r11r12r8r9r10r11r12r13 (sp)r14 (lr)r15 (pc)r13 (sp)r14 (lr)r13 (sp)r14 (lr)r13 (sp)r14 (lr)r13 (sp)r14 (lr)r13 (sp)r14 (lr)spsrspsrspsrspsrspsrThumb состояниеLow registersThumb состояниеHigh registerscpsrNote: System mode использует те же регистры, что и User mode12Типы регистров• В ARM есть 37 регистров размером 32-bits.––––1 специальный регистр: program counter1 специальный регистр: current program status5 специальных регистров для хранения program status30 регистров общего назначения• В любом режиме работы процессора имеется доступ кследующим регистрам:––––r0-r12 РОНr13 (the stack pointer, sp) иr14 (the link register, lr)program counter, r15 (pc)current program status register, cpsrПривилегированный (except System) режим можетобращаться к spsr (saved program status register)13Регистры состояния программы3128 2724NZCVQ Jf•16 158U n d e f i n e dsxФлаги условных переходов––––•23N = Negative вычисляется АЛУZ = Zero вычисляется АЛУC = АЛУ операция Carried outV = АЛУ операция oVerflowed••– Только для 5TEJ архитектур– J = 1: процессор в состоянии Jazelle540Биты отключения прерываний.T Bit– Только для xT аржитетур– T = 0: процессор в состоянии ARM– T = 1: процессор в состоянииThumbSticky Overflow флаг - Q flagJ bit6IFTmode c– I = 1: отключает IRQ.– F = 1: отключает FIQ.– Только для 5TE/J архитертур– Определяет насыщение•7•Mode bits– Указывают режим работыпроцессора14Program Counter (r15)•Если процессор находится в режиме ARM:– Все инструкции размером 32 бита– Все инструкции должны быть выровнены по слову (word aligned)•Если процессор находится в режиме Thumb:– Все инструкции размером 16 бит– Все инструкции должны быть выровнены по полуслову (halfwordaligned)•Если процессор находится в режиме Jazelle:– Все инструкции размером 8 бит– Процессор позволяется читать по 4 инструкции сразу15Обработка исключений• Алгоритм обработки исключений:– Копируется CPSR в SPSR_<mode>– Заполняются CPSR биты0x1C0x180x14– Stores the return address in LR_<mode> 0x100x0C– Sets PC to vector address0x08• Для возврата к нормальной работе:– Восстанавливается CPSR из SPSR_<mode>0x040x00– Восстанавливается PC из LR_<mode>• Состояние изменяется на ARM• Включается exception mode• Игнорируются прерывания (if appropriate)Все это может проделываться только в состоянии ARM.FIQIRQ(Reserved)Data AbortPrefetch AbortSoftware InterruptUndefined InstructionResetVector TableVector table можетнаходится по адресу0xFFFF0000 на ARM720Tи ARM9/10 семействе16устройствРазработкаARM архитектуры12ПоддержкаHalfwordиsignedhalfword /байтовSystemmode4ImprovedARM/ThumbInterworkingCLZSA-110SA-1110ARM720TARM926EJ-SDSP multiplyaccumulateinstructionsARM7EJ-SARM1026EJ-S4TXScaleARM940T5TEJвыполнение JavabytecodeARM9EJ-SARM1020EARM9TDMIJazelleSaturated maths3ThumbinstructionРанние ARM setархитектурыARM7TDMI5TEARM9E-SARM966E-SSIMD Instructions6Multi-processingV6 Memoryarchitecture (VMSA)Unaligned datasupportARM1136EJ-S17Процессор ARMПарадигма программирования• Набор инструкцийАрхитектура системы18Условные переходы ифлаги•ARM инструкции могут выполнятся условно путем проставленияпостфикса с кодом условия.–•CMPr3,#0BEQskipADDr0,r1,r2skipCMPr3,#0ADDNE r0,r1,r2По умолчанию, инструкции обработки данных не влияют наусловные флаги, но данные флаги могут быть опциональноустановлены используя “S”.
CMP не нуждается в“S”.loop…SUBS r1,r1,#1BNE loopдекрементируем r1 и устанавливаем флагиесли Z флаг нулевой, то осуществляем переход19Условные коды•Возможные условные коды приведены ниже:Суффикс ОписаниеEQEqualNENot equalCS/HSUnsigned higher or sameCC/LOUnsigned lowerMIMinusPLPositive or ZeroVSOverflowVCNo overflowHIUnsigned higherLSUnsigned lower or sameGEGreater or equalLTLess thanGTGreater thanLELess than or equalALAlwaysФлагZ=1Z=0C=1C=0N=1N=0V=1V=0C=1 & Z=0C=0 or Z=1N=VN!=VZ=0 & N=VZ=1 or N=!V20Примеры условноговыполнения• Использование последовательности условных инструкцийif (a==0) func(1);CMPMOVEQBLEQr0,#0r0,#1func• Установка флагов, после использование различныхусловных кодовif (a==0) x=0;if (a>0) x=1;CMPMOVEQMOVGTr0,#0r1,#0r1,#1• Использование условных инструкций сравненияif (a==4 || a==10) x=0;CMPCMPNEMOVEQr0,#4r0,#10r1,#021Инструкции ветвления••Branch :Branch со связью:3128 27CondB{<cond>} labelBL{<cond>} subroutine_label25 24 2301 0 1 LOffsetLink bit0 = Branch1 = Branch with linkCondition field22Инструкции обработкиданных•Состоят из:––––Арифметических:ADDЛогических:ANDСравнений:CMPПеремещения данных:ADCSUBSBCORREORBICCMNTSTTEQMOVMVNRSBRSC•Данные инструкции работают только с регистрами, НЕ с памятью.•Синтаксис:<Operation>{<cond>}{S} Rd, Rn, Operand2• Сравнения только устанавливают флаги• Перемещение данных не специфицирует Rn•Второй операнд отправляется на АЛУ через barrel shifter.23Barrel ShifterLSL : Logical Left ShiftCFASR: Arithmetic Right ShiftDestinationDestination0Умножение на 2Деление на 2,сохраняя бит флагаLSR : Logical Shift Right...0DestinationCFROR: Rotate RightDestinationCFДеление на 2CFЦиклическое смещение бита от LSB к MSBRRX: Rotate Right ExtendedDestinationCFЦиклическое смещение через CF к MSB24Использование Barrel Shifter:Второй операндОперанд2Операнд1BarrelShifterАЛУРезультат25Умножение•Синтаксис:––––•MUL{<cond>}{S} Rd, Rm, RsMLA{<cond>}{S} Rd,Rm,Rs,Rn[U|S]MULL{<cond>}{S} RdLo, RdHi, Rm, Rs[U|S]MLAL{<cond>}{S} RdLo, RdHi, Rm, RsRd = Rm * RsRd = (Rm * Rs) + RnRdHi,RdLo := Rm*RsRdHi,RdLo := (Rm*Rs)+RdHi,RdLoВремя в циклах– Основная MUL инструкция• 2-5 циклов на ARM7TDMI• 1-3 циклов на StrongARM/XScale• 2 цикла на ARM9E/ARM102xE– +1 цикл для ARM9TDMI (over ARM7TDMI)– +1 цикл для “long”26Помещение данных врегистрLDR STRLDRBLDRHLDRSBLDRSHWordSTRBSTRHByteHalfwordSigned byte loadSigned halfword load• Память должна поддерживать все допустимыеразмеры• Синтаксис:– LDR{<cond>}{<size>} Rd, <address>– STR{<cond>}{<size>} Rd, <address>e.g.
LDREQB27Доступ по адресу• Адрес доступные по LDR/STR определяется какзначение регистра плюс смещение• Для слова и беззнакового байта доступа, смещениеможет быть– 0 - 4095 bytesLDR r0,[r1,#8]• Для полуслова и знакового полуслова, смещениеможет быть :– 0-255 bytes.– регистр28Префиксный илипостфиксный адрес?• Префиксный:OffsetSTRr0r0,[r1,#12]120x20cr1BaseRegister0x200Автообновление из: STR r0,[r1,#12]!0x50x5SourceRegisterfor STR0x200Постфискный: STR r0,[r1],#12UpdatedBaseRegisterOriginalBaseRegisterr1Offset0x20c12r10x2000x20c0x200r00x50x5SourceRegisterfor STR29LDM / STM• Синтаксис:<LDM|STM>{<cond>}<addressing_mode>Rb{!}, <register list>• 4 режима адресования:LDMIA / STMIALDMIB / STMIBLDMDA / STMDALDMDB / STMDBинкрементитьинкрементитьдекриментитьдекриментитьIALDMxx r10, {r0,r1,r4}STMxx r10, {r0,r1,r4}Base Register (Rb)r10r4r1r0последопоследоIBDADBr4r1r0Увеличениеr4r1r0адресовr4r1r03031Программное прерывание(SWI)28 27Cond024 231 1 1 1SWI number (ignored by processor)Условное поле• Возбуждает обработчик прерываний в соответствии сSWI hardware vector• SWI handler может определить SWI number чтобырешить какую операцию надо выполнить• Используя SWI механизм, ОС может реализовать наборпривилегированных операций• Синтаксис:–SWI{<cond>} <SWI number>31PSR инструкции3128 27242316 1587654IFTmode c0NZCVQ J U n d e f i n e dfsx• MRS и MSR позволяет переместить содержимое CPSR /SPSR в или из регистра общего назначения• Синтаксис:––MRS{<cond>} Rd,<psr>; Rd = <psr>MSR{<cond>} <psr[_fields]>,Rm ; <psr[_fields]> = Rmгде– <psr> = CPSR or SPSR– [_fields] = any combination of ‘fsxc’• Так же возможно–MSR{<cond>} <psr_fields>,#Immediate32ARM ветви• B <label>– PC relative.