Home
versão electrónica - Universidade do Minho
Contents
1. 7 2 2 1 An lise e compara o dos RTOS eternas 7 2 2 2 An lise e compara o dos processadores eee 11 a EMEND TCU Oo E EP E EE 12 2 3 Exemplos e T cnicas de Migra es de Software para Hardware 13 2 3 1 PSCOIOUEG ON a Do uus 13 Zones dion Pc 14 2o RN 16 Beet ARTESSO Name RTOS aa SA ad 18 eds SO ONE NS IO it a a da Tc a Ae to Capitulo 3 Tecnologias de suporte Migra o eee 21 3 1 O sistema operativo de tempo real eCos terrena 21 3d Hardware Abstraction Layer HAL aiios sonent age ttt tees eto asia dear 23 CMM 0 Dr 28 3 1 3 Gest o das Exce es e Interrup es sssssssssssseeemnees 38 3 2 Processador RISC ORE utei Er tro 42 sel Unidade Central de Processamento CPU ne 43 3 2 2 Memory Managment Unit e caches eene 44 3 9 U bamamenmoWISEBONE asia ite acess ie we cos repere EGER 46 3 2 4 Os restantes perif ricos opcionais eee eternas 49 3 3 ORPSoC Openkisc reference Platform 5 52 3 Os arbiters do barramento de dados e de instru es 52 32s RES RE 54 O MO QUIS VARR TGSS O 55 Capitulo 4 Modela
2. 10 Tabela 3 Compara o entre o Leon2 e o OR1200 eee 12 Tabela 4 Tabela VSR do eCos para o OpenRISC 38 Tabela 5 Instru es adicionadas ISA 0 1200 59 Tabela 6 Registos de Prep sito Geral GPR do OR1200 eee 65 Tabela 7 Output da fun o Load context e switch context 84 xix Capitulo 1 Introdu o Neste cap tulo apresentado o enquadramento desta disserta o assim como os seus objetivos e contribui o no dominio cient fico Para finalizar ser identificada a organiza o da disserta o 1 1 Enquadramento Atualmente os sistemas embebidos s o omnipresentes desde o pacernaker at ao sistema de controlo de um sat lite passando pelo telem vel at ao leitor mp3 estes dispositivos s o utilizados diariamente pela popula o em diversas reas de consumo Alguns destes sistemas s o capazes de executar m ltiplas tarefas para tal muitos deles disp em no seu software de um sistema operativo de tempo real RTOS Os RTOS s o destinados execu o de m ltiplas tarefas em que o seu tempo de execu o tem que ser cumprido dentro do prazo m ximo esperado n o obstando o seu comportamento funcional e temporal Os RTOSs devem ser t o determin sticos quanto imposto pelas caracter sticas do sistema No entanto a utiliza o de
3. h A basetype h h spr def h ls K Context S h B hal_io h lh G openrisc opcode h zi L vectors S h C hal_cache h Ih H openrisc stub h c M hal misc c hi D hal arch h E I arch inc N openrisc stub c lh E hal intr h D openrisc inc m O openrisc ld Figura 9 Constitui o do HAL para a arquitetura OpenRISC basetype h o tipo de m quina neste caso que se trata de uma m quina Big End an B hal io h as APIs para manusear o registo de controlo dos pinos 1 0 para aceder lhes individualmente ou por registos de 8 16 ou 32 bits C hal cache h as APIs para acesso e controlo das caches de mem ria onde tamb m est definido o tamanho total das caches 4096 bytes e o tamanho de bytes por linhas 16 D hal arch h a abstra o do hardware no que diz sentido ao acesso aos registos especiais de prop sito geral a manipula o de bit como a flag e a defini o do tamanho das pilhas para interrup o e para as threads E hal intr h o suporte para as interrup es e para o temporizador contador est o tamb m definidas os vetores de Interrup o assim como as APIs para ativa o ou desativa o destas F spr_def h o valor de cada bit dos Special Purpose Register para serem endere ados corretamente G openrisc_opcode h os formato das instru es de salto e os respetivos opcodes H openrisc stub h as
4. 88 Distribui o percentual das unidades l gicas utilizadas pelos m dulos de Hrtos 88 Pot ncia consumida OR1200 com e sem 89 Energia dissipada total OR1200 com e sem Hrttos 89 GUI Configtool Janela principal erraram anne 104 GUI Configtool localizar ferramentas sss 105 GUI Configtool localizar reposit rio 105 GUI Configtool Janela de resolu o de conflitos 106 C digo da ferramenta vmem2Ccoe eee reneeeeeenceeee aeee nnns 111 Localiza o da ferramenta 1 0 Pin Planning 112 petens prm eade 112 Localiza o da ferramenta iIMPACT eee eee 113 Configura o dos pinos SW3 da placa XC5VLX110T e liga o 113 IMPACT els as ere 114 iMPACT Selecionar ficheiro do Design eee 114 xvii Figura 70 iMPACT Programa o da Figura 71 Esquema de liga o a placa XC5VLX110T xviii Indice de Tabelas Tabela 1 RTOS e respetivos porting para diversos 8 Tabela 2 Compara o dos RTOS sobre as suas
5. MESO rettet ett Pet t et eit emt et te es 7 Eisura 2 Escalonador E ete re DS t d D De a da 14 Figura 3 Processador Base com tightly coupled hardware RTOS 4 15 Figura 4 Vis o geral do projeto ARPA MT CPU MIPS32 CopO MEC memory managment unit configura o e handling interrup o e exce es Cop2 OSC hardware RTOS 1 16 Figura 5 Diagrama de blocos internos do m dulo Corp2 OSC 1 17 Figura 6 Configura o do ARTESSO e arquitetura do hardware RTOS 11 18 Figura 7 Exemplifica o das camadas constituintes do eCos 12 22 Figura 8 Exemplifica o da estrutura da diretoria do HAL do 24 Figura 9 Constitui o do HAL para a arquitetura 25 Figura 10 Etapas da inicializa o do HAL 12 27 Figura 11 Exemplo do escalonamento operado pelo escalonador Multilevel queue 30 Figura 12 Diagrama de classes escalonador 9 77 31 Figura 13 Diagrama de classes 32 Figura 14 Diagrama de classes lista de 112905 eee 33 Fisura do Gestao CaS I OAS assit tente rite Cette
6. TAGN_O TAGN TAGN TAGN O RTY I RTY O ERRI ERR_O WISHBONE SLAVE oc aq gt 2 T o E Figura 23 Esquema de ligacao a barramento Wishbone 15 CYC O este sinal informa que existe um ciclo iniciado e que est em progresso RIY um sinal enviado pelo s ave ao master para pedir o recome o do ciclo confirmando que o ultimo ciclo n o finalizou corretamente ERR I sinal de erro enviado pelo s ave para indicar ao master que um erro surgiu e que o ciclo n o se completar TAGN e TAGN_O s o sinais adicionais que fornecem informa es para m dulos especiais cache control interrup es etc 47 Para entender como efetuado o ciclo de leitura e escrita atrav s do barramento recorrendo a Figura 24 que representa uma opera o de leitura seguida de uma opera o de escrita operada pelo master a uma mem ria externa CLE E ADR O DAT I DAT O X WE O SEL O STB O ACK I CYC O Figura 24 Wishbone Master Signat ciclo de leitura e escrita Em l o master inicia o ciclo colocando os sinais CYC O e STB_O a um em simultaneo identifica o n mero de bytes SEL O a serem usados a opera o leitura por WE O est a 0 eo endere o de leitura N o especifica DAT O por se tratar de uma opera o de leitura Em 2 master recebe o acknowledge por parte do s ave e o dado j se encontra disponivel em DAT Em 3 o master efetua uma opera
7. refere se a uma instru o para o hardware RTOS a mnem nica representada com X refere se a classe onde a As instru es que comecem por I s o instru es do ORBIS32 If s o instru es para unidade de opera es com virgula flutuante sendo assim para manter a mesma coas o le Representa opera es para o RTOS em hardware que e refere se a eCos 58 fun o implementada em ardware existia como m todo Por exemplo ht refere se a uma instru o que m todo da classe hardware Thread Para finalizar o imediato Imm refere se a um valor inteiro que identifica qual a fun o que se est a chamar Tabela 5 Instru es adicionadas ao ISA 0R1200 Instru o Bit 31 26 25 21 20 16 150 Refer ncia classe le ht imm 66111111 5600001 0 Imm Hardware thread le scht imm 6b111111 5b00010 0 Imm Scheduler Thread le t imm 6b111111 5b00011 0 Imm Thread le tqueue imm 60111111 5600100 0 Imm Thread queue le sched imm 60111111 5b00101 0 Imm Scheduler Estas novas instru es ser o acrescentadas ao assembler mais concretamente no ficheiro or32 opc c da toolchain que se encontra na diretoria gnu src binutils 2 20 1 opcodes or32 opc c Ap s efetuar esta altera o esta s ser concretizada quando a toolchain compilada criando deste modo o assembler com as novas instru es e as restantes ferramentas para o OpenRISC 4 1 1 2 Altera o das bibliote
8. TA estiver a ser executada se uma thread de maior prioridade estiver a espera na fila de execu o o escalonador efetua uma preemp o e recoloca TA num estado suspended Por outro lado se TA necessitar de recursos que n o possui para continuar a sua execu o ela retirada do estado running e recolocada na fila de espera com o estado sleeping Caso o regresso a lista de espera tenha sido causado por esta ter terminado toda a sua execu o TA exited e removida da tabela e da lista A Figura 15 mostra como efetuada a gest o das treads no eCos 33 Thread selecionada para executar Thread precisa de dados sleeping Thread interrompida Suspended ESTADO READY Thread recebeu dados ESTADO WAIT lista ligada de threads Thread precisa de dados lista ligada de thread a espera de dados prontas a serem executadas a que estiver no topo da pilha sera a proxima Thread criada creating Thread killed Thread killed Figura 15 Gest o das hreads 3 1 2 3 Mecanismos de sincroniza o e comunica o entre threads Os mecanismo de sincroniza o entre threads s o ferramentas indispens veis quando necess rio sincronizar fluxos de execu o e ou partilhar recursos entre as reads evitando assim as race conditions O eCos fornece quatro mecanismos de sincroniza o e comunica o diferentes Mutexes A Semaphore B
9. que possui o c digo espec fico para essa arquitetura que semelhante para todas as variantes e plataformas escolhidas da mesma arquitetura uma diretoria sim caso haja um simulador para esta arquitetura de processador e por ltimo uma diretoria para cada um das variantes ou plataformas dessa fam lia com o seu c digo espec fico no interior Na Figura 8 est representado de uma forma simples como est o encapsuladas as diversas pastas e subpastas do HAL Hal Outras en openrisc MIPS arquiteturas Arch OrpSoc Arch Mips32 SIM Outras variantes Figura 8 Exemplifica o da estrutura da diretoria do HAL do eCos Revelada a distribui o do HAL mencionar se para o caso da arquitetura OpenRISC quais s o os ficheiros e as fun es servi os disponibilizados para efetuar uma migra o sem descaracterizar a estrutura do HAL Na Figura 9 est ilustrada a composi o do HAL do eCos para a arquitetura OpenRISC No interior do diret rio do HAL para a familia OpenRISC existe duas diretorias include com os header files e uma diretoria src que cont m o c digo fonte A diretoria include tem os header files h com as macros que definem 24 hal openrisc arch es wd Include lt N src
10. 3 3 1 Os arbiters do barramento de dados e de instruc es Os arbiters s o um componente fulcral quando utilizado o barramento pois estes s o respons veis pelo controlo do seu acesso isto com base na prioridade do master determinam qual dos masters e qual dos s aves estao a comunicar pelo barramento Existem tr s arbiters diferentes o arbiter para instru es 32 bits para dados de 32 bits e o arbiter de acesso ao byte para m dulos UART ou GPI O Observando a Figura 28 v se para o barramento de instrucdes que este possui um master o CPU e um save a memoria externa Para o barramento de dados o arbiter Dbus faz a liga o como dois s aves a memoria externa e o arbiter ByteBus No primeiro caso quando o CPU quer escrever ou receber um dado da mem ria O segundo caso quando passa pelo arbiter bytebus trata se de uma comunica o especial para perif ricos como a UART que enviam dados com tamanhos inferior a 32 bit Estes enviam ou recebem os dados byte a byte logo o dado devolvido pelo arbiter Dbus dividido em 4 bytes e s passado 1 byte de cada vez 52 Ja seu ANE S 5 93 9 sop 90508 SODO q ep 8 gz 21181 s Uusig 88081 VIVO SARIS IDA TAIS sjeusig 19 88051 id Avis s Rusis IJSEI VINNAN 518481 8081 Lys 0 PARTS J9 SV A 4 53 3 3 2 Memoria Externa A memor
11. TICK INT RISC clk Figura 25 Diagrama de Blocos Temporizador Contador 14 3242 Unidade de Debug A unidade de debug permite efetuar o teste a valida o do software pois fornece ferramentas como breakpoint watchpoint assim como durante a execu o do programa fornece tamb m 49 valor do Program Counter e dos registos GPRs e SPRs O par DVR DCR Figura 26 usado para comparar o endere o efetivo da instru o no momento do fetch IF EA ou da unidade de LOAD STORE LS EA com o dado obtido pela mem ria de dados LS data esta compara o que ainda pode ser mais complexa cria durante a execu o do programa dependendo do registo DMR Debug Mode Registe os watchpointe breackpoint previamente configurados DVRUDCR Watchpoints Breakpomis Data Cache Figura 26 Diagrama de blocos Unidade de Debug 14 3 2 4 3 Unidade de gest o de energia A unidade de gest o de energia power management permite configurar o processador para diversos modos de modo a minimizar o consumo de energia Existem tr s modos s ow down feature doze mode e sleep mode modo s ow down feature controlado por software com a configura o de 4 bits do registo PMR Um valor mais baixo neste registo 0x0 coincide com um maior desempenho por parte do processador Sendo que o RTOS controla o desempenho aumentando ou diminuindo o valor do registo PMR sendo que quanto maior for o valor a frequ ncia do clock dim
12. Universidade do Minho Escola de Engenharia Jorge Miguel Silva Aires Migracao de funcionalidades de um sistema operativo de tempo real para Gateware de um processador m I J orge Miguel Silva Aires UMinho 2012 Outubro de 2012 N Pd eis NI Universidade do Minho Escola de Engenharia Jorge Miguel Silva Aires Migracao de funcionalidades de um sistema operativo de tempo real para Gateware de um processador Tese de Mestrado Ciclo de Estudos Integrados Conducentes ao Grau de Mestre em Engenharia Eletr nica Industrial e Computadores Trabalho efetuado sob a orienta o do Professor Doutor Paulo Cardoso Outubro de 2012 Agradecimentos Ao longo deste projeto varias pessoas colaboraram tornando possivel seu desenvolvimento as quais quero agradecer Em primeiro lugar gostaria de agradecer ao Professor doutor Adriano Tavares pelo apoio prestado no desenvolvimento desta disserta o assim como pelo conhecimento os valores que adquiri ao frequentar as unidades curriculares lecionadas pelo mesmo no meu quarto ano de mestrado integrado Gostaria de agradecer meu orientador Professor Doutor Paulo Cardoso pela paci ncia a preocupa o di ria que este teve em meu favor no decorrer deste projeto Queria agradecer tamb m aos restantes professores do ESRG Embedded System Research Group com especial foco ao Professor Doutor Jorge Cabral que ocasionalmente me perguntava
13. o espec fica ou uma combina o de condi es a serem realizadas antes de poderem 36 come ar a executar A thread que efetua a sinaliza o pode ent o definir ou redefinir bits de acordo com as condi es especificas de modo que a read adequada possa ser executada 3 1 2 4 Inicializa o do Kerne kerne do eCos antes de lan ar o escalonador e deixar iniciar a aplica o tem que perfazer algumas opera es Estas opera es s s o realizadas se o HAL j tiver sido inicializado A fun o cyg start a fun o principal na inicializa o do Kemmel esta chamar posteriormente as restantes fun es apresentadas na Figura 17 HAL Startup Procedure cyg prestart package start Start the scheduler Figura 17 Inicializa o do Aerne do eCos A fun o cyg_prestart uma fun o por defeito que n o efetua qualquer tarefa no entanto pode ser usada para inicializar partes do sistema antes de efetuar o carregamento das bibliotecas Assim que a fun o cyg prestart termina lan ada a fun o cyg package start esta inicializa as bibliotecas de compatibilidade tais como ISO math POSIX ou uTRON De seguida chamada a fun o cyg user start onde s o criadas as reads mecanismos de sincroniza o alarmes e rotinas de gest o de interrup es para a aplica o Para finalizar lan ado o escalonador ap s cyg user start ter terminad
14. 31 0 lt RB 31 0 Page fault Bus Error lt EXTs imediato RA _ TLBmiss A 7 0 lt RB 7 0 Page fault Bus Error lt EXTs I RA TLB miss Alignment Page fault 15 0 lt RB 15 0 Bus Error RD lt RA RB range exception SR lt carry SR OV lt overflow RD lt RA RB SR CY range exception SR CY lt carry ISR OV lt overflow RD lt RA RB range exception SR CY lt carry ISR OV overflow RD lt RA none 1 Rd Ra Rb exclusive Or Rd Ra Rb multiply signed 1 51 Rd Ra Rb shift left logical 1 51 Rd Ra Rb shift right logical Isra Rd Ra Rb shift right arithmetic lror Rd Ra Rb rotate right Idiv Rd Ra Rb l divu Rd Ra Rb divis o sem sinal mulu Rd Ra Rb multiply unsigned Lexths Rd Ra extend half word with RD lt RA XOR RB none RD 31 0 lt RA RB range exception SR CY lt carry ISR OV overflow RD 31 RB 4 0 lt RA 31 Rb 4 0 0 none RD Rb 4 0 1 0 lt 0 RD 31 RB 4 0 0 lt RA 31 Rb 4 0 none RD 31 32 Rb 4 0 lt 0 RD 31 RB 4 0 0 lt RA 31 Rb 4 0 0 RD 31 32 Rb 4 0 lt RA 31 RD 31 RB 4 0 0 lt RA 31 RB none RRR
15. Capitulo 6 Conclus es 6 1 Conclus es Nesta disserta o foi apresentado a migra o de funcionalidades do sistema operativo eCos para gateware do processador 0R1200 Para tal foi necess rio realizar um estudo da composi o e do funcionamento do sistema operativo de tempo real e do processador Com base nesse estudo efetuou se a migra o da opera o de comuta o de contexto As migra es efetuadas resultaram na cria o de um novo m dulo de Aardware o Hrtos que est tightly coupled ao processador partilhando o mesmo register file e special purpose registers As opera es que este realiza efetuam as mesmas tarefas do que as tarefas realizadas em software por parte do CPU O m todo de implementa o permite ao utilizador ativar ou desativar certas funcionalidades de Hrtos recorrendo a Macros quando se est a compilar as bibliotecas do eCos e a sintetizar o SOC para a FPGA Hrtos possui uma liga o oose y coupled a memoria de dados recorrendo ao barramento externo Wishbone Esta abordagem foi realizada de modo a poder utilizar Hrtos com a vers o base do processador No entanto tamb m estava destinado realizar uma liga o a cache de dados de modo a melhorar o desempenho do acesso aos dados mas um problema com o suporte do eCos para as caches impossibilitou esta implementa o 93 A nivel dos testes realizados os resultados obtidos sao promissores Estes revelam um aumento performance
16. Conditions variables C e Flags E 31231 Mutexes O Mutex Mutual Exclusion object um mecanismo de sincroniza o que possui apenas dois estados bloqueado e desbloqueado Quando uma thread possui o mutex isto quando exerce bloqueio do mutex usando a fun o mutex lock esta ser a Unica que poder desbloque lo usando cyg mutex unlock sendo que se outra read estiver a espera para bloquear o mutex esta tera que esperar que a primeira o liberte 34 Este mecanismo de sincroniza o tamb m possui a particularidade de fornecer dois tipos de prote o contra o efeito de priority inversion O efeito de invers o de prioridade A na Figura 16 acontece quando uma Z read com prioridade alta n o pode continuar a executar porque necessita de bloquear um mutex bloqueado por uma thread de baixa prioridade e que posteriormente uma thread de prioridade m dia seja executada em detrimento da que possui o mutex porque tem prioridade em rela o a esta Prioridade Tentativa de bloqueio do e Tentativa de bloqueio do por parte de 4 Mutex por parte de Alta Thread A Alta Thread Deschedule 1 M dia M dia 1 Preemption Thread Preemption f 9 dil Tz Bloqueio do Mutex Tempo Bloqueio do Mutex Desbloqueio do Mutex Tempo por parte de C por parte de por parte de e Preemp o Figura 16 Efeito de priority inve
17. DADocumentos importantes projecAOp1200 vAOp1200 ise orpsoc INIHI IB File Edit View Project Source Process Window Layout Help amp Dae B S amp LBS A Constraints Editor EL Design 4 Core Generator View 8 Implementation 8 Simulation fe PlanAhead J O Pin Planning PlanAhead Pre Synthesis Hierarchy Schematic Viewer gt a Op1200 v2 Timing Analyzer Floorplan Area IO Logic PlanAhead amp 3 xc5vbd10t 1ff1136 eJ FPGA Editor Analyze Timing Floorplan Design PlanAhead de Automatic includes CE PSH Y tdi pi df orpsoc top orpsoc top v w XPower Analyzer 4 E iMPACT ifdef XILINX_DDR2 SmartXplorer ddr2 a ddr2 ba ddr2 ras n ddr2_cas1 ddr can ddr nar ddr cre ddr dm Figura 64 Localiza o da ferramenta 1 0 Pin Planning Ser ent o aberta uma janela Figura 65 onde se deve mapear os seguintes pinos rst n pad i sys clk in p uartO six pad i e uartO stx pad o fe Op1200 v2 DADocumentos importantes Xilinx_project Op1200_v2 planAhead_run_1 0p1200_v2 ppr 132 B File Edit Tools Window Layout View Help Bae x A SO IB 10 Planning 0 x 3 QA Name Dir NegDiffPar Site Bank I OStd Vref Drive Strength SlewType Pull Type 2 Slo Aports 2 EQ gpio0 io 24 In Out LVCMOS25 25 12 SLOW dia SE E D rst n pad i Input j 20 LVCMOS25 12 SLOW del D
18. com humor Est tudo bem Areias Ah desculpa Aires Tenho que agradecer os maiores incentivadores desta epopeia meus pais Jos Aires e Adelina Silva que apesar do longo per odo de aus ncia f sica que tivemos nunca deixaram de estar comigo a nivel emocional Tamb m agrade o aos meus irm os mais velhos Filipe e Paula que apesar de n o perceber o meu trabalho sempre se mostraram interessados e sempre me motivaram Por fim gostaria de agradecer ao resto da comunidade ESRGiana deste modo que n s membros do grupo nos denominamos alunos de licenciatura mestrado e doutoramento pela ajuda pelas brincadeiras e pelo convivio realizado no dia a dia que fizeram com que estes anos passassem sem serem vistos Jorge Aires Resumo Migra o de funcionalidades de um sistema operativo de tempo real para Gateware de um processador Palavras chaves Aea Time Operating Systems RTOS Desenho de processadores FPGA Gateware migration Nesta disserta o pretende se efetuar a migra o de uma ou diversas funcionalidades de um sistema operativo de tempo real para Hardware de um microprocessador sob a forma de unidade funcional e analisar a viabilidade deste tipo de abordagem criando assim um sistema embebido real time reconfigur vel e deterministico Neste sentido realizado o estudo aprofundado de um sistema operativo tempo real de modo a identificar e extrair as suas funcionalidades para posteriormente se
19. inicializado com um valor positivo que indica o n mero de threads que o sempahore deixa passar antes de come ar a bloquear o acesso ao recurso Quando uma thread efetua uma chamada a fun o cyg sema wait o RTOS verifica se o contador maior que zero se for o caso decrementa o contador de uma unidade e a thread continua a execu o caso contr rio a thread fica bloqueada Ao concluir o acesso ao recurso a thread efetua a opera o cyg sema post e o contador incrementado de um valor 31 233 Conditions Variables As conditions variables s o usadas com mutexes e permitem que m ltiplas threads acedam aos dados partilhados Tipicamente existe uma unica read produzindo os dados e uma ou mais thread a espera que os dados estejam dispon veis A read respons vel pelos dados pode sinalizar uma nica thread ou varias para passar para o estado de prontas a executar quando os dados est o dispon veis As threads em espera podem ent o consoante a sua posi o na fila processar os dados conforme a necessidade 3 1234 Flags As flags sao mecanismos de sincronizacao representados por um word de 32 bits Cada bit na flag representa uma condi o o que permite que uma dread espere por uma das 32 condi es ou de uma combina o de condi es Existem dois tipos de threads as que esperam pela condi o e as que ativam os bits de condi o As reads que est o espera das condi es podem esperar por uma condi
20. o entradas do escalonador e correspondem as quatro threads de maior prioridade 12 a 15 permitindo lhe efetuar a destas Os sinais de enqueue e dequeue sao sinais de entrada e sao fornecidas no est gio de por parte do processador e pelo m dulo que implementa os semaphore no est gio de acesso a mem ria Estes sinais permitem ao escalonador acrescentar retirar ou posicionar threads na pilha de execu o das tarefas consoante o tempo que estiveram a espera sa da do escalonador existe o sinal TID que o identificador da thread a ser executada O TID propagado ao longo de todo o pipeline do processador para em caso de azard este ser resolvido sem perder informa o Este sinal tamb m entrada do mu tiplexer entrada do primeiro est gio para fornecer a este ultimo o valor do PC respetivo thread a ser executada 15 O m dulo dos temporizadores em ardware permite cada thread ser colocada por ordem de espera para execu o no escalonador Acontece que cada vez que uma thread executada sinal de enqueue das restantes atualizado para serem reordenadas de uma forma justa no escalonador O m dulo respons vel por implementar os semaphore est inclu do no est gio de acesso a mem ria do processador com a finalidade de bloquear acessos n o autorizados Existem no total quatro semaphore em hardware descodificando o valor do registo A o m dulo ativa o respetivo se
21. 3 2 RTBlaze O RTBlaze 4 trata se de um projeto onde foi desenvolvido um processador com um tightly coupled hardware RTOS com interface dedicada Este projeto desenvolvido por Terance Wijesenghe possui um escalonador preemptivo threads timer e semaphore implementados em hardware A Figura ilustra como se encaixa o m dulos do hardware RTOS no pipeline do processador a verde os m dulos das funcionalidades do RTOS migradas para hardware 14 To the Scheduler Dequeue Q Killitkill Sleep Data Memory Instruction Memory To the Scheduler Enqueue Branch FORKIIfork Address Decode Execute Control Access Unit Write Branch FORK Ifork TID Forwarding Mux n Data side ALU LMB Instruction Interface Side LMB 4 Interface Tome Scheduler Schedule Enquetie Dequeue Bemaphore Module m Timer Module gt Ral Rb Ji Scheduler Interrupts Enqueue Dequeue Processor Pipeline 5 stage Figura 3 Processador Base com figh ly coupled hardware RTOS 4 Na implementa o do escalonador Wijesenghe atribui a cada uma prioridade fixa que varia de O a 15 isto permite uma implementa o simplificada do escalonador O processador possui um banco de Program Counter que guarda para cada thread o respetivo endere o da pr xima instru o Os quatro sinais de interrup es s
22. Bitmap com as duas threads com prioridades diferentes B Mlqueue com as duas threads com prioridades iguais onde existe timeslice de 30ms 0r1200 standard m 1200 o 3 o Q 5 e N A A Q N Save_context Load_context Switch_context Fun es Figura 51 Tempo de execu o das fun es load_context context_switch com e sem Hrtos E Or1200 standard Or1200 Hrtos A Escalonador Bitcount B Escalonador Mlqueue Figura 52 Tempo de finaliza o do programa usando o escalonador Bitmap e Mlqueue 86 5 2 3 Resultados das unidades l gicas usadas A placa usada possui um total de 69120 s ce registere slice LUTS Para efeito de medi o efetuou se a contagem da totalidade de ookup tables Flip lop e block rams utilizadas por 0R1200 com e sem o Hrtos Figura 53 e a percentagem de ocupa o destas duas configura es na XC5VLX110T Figura 54 E 0r1200 standard Or1200 Hrtos e interface 8875 Slice Flip Flops Block RAMS Shift register amp ram Figura 53 Unidades l gicas totais utilizada por OR1200 com e sem Hrtos E 0r1200 standard N o utilizado E Or1200 Hrtos e interface N o utilizados Figura 54 Ocupa o percentual de OR1200 com e sem Hrtos na placa 87 Determinou se tamb m as unidades l gicas utilizadas somente pelo m dulo Hrtos Figura 55 descriminando os wires de interface com os m dulos externos e a ocupa o perce
23. Create PROM File PROM File Format WebTalk Data Tol xc5vix110t bypass E Assign New Configuration File yl My Comp xinx auto 0 xdb xst A Jorge Aires PT 2 NEN E Fies of type Des Fes a m Configuration Platform Cable USB 6 MHz usb hs Figura 69 iMPACT Selecionar ficheiro do Design 114 Assim que carregar em Open abrir se uma janela a pedir para adicionar um ficheiro PROM selecionar nao e efetuar cancelar na pr xima janela que abrir De seguida selecionar XC5VLX110T com o ficheiro bit j inicializado e efetuar Program Figura 70 EP ISEIMPACT O 61xd Boundary San mA O lobos File Edit View Operations Output Debug Window Help HG XM mX i ST PR x 22 Boundary Scan File j File File ij File 1j orpsoc top bit Do ace xcSvik110t iMPACT Processes lt 3 Available Operations are Get Device ID Program Succeeded Get Device Signature Usercode mp Read Device Status mb One Step SVF mp One Step XSVF Console 5 Programmed successfully PROGRESS END End Operation Elapsed time 9 sec Co
24. Diagrama de blocos m dulo UART do 0R1200 17 55 56 Capitulo 4 Modela o e Implementa o Este cap tulo apresenta o projeto das migra es a realizar e as t cnicas usadas para a implementa o do projeto Assim ir o ser descritos os novos m dulos de ardware adicionados e como estes est o ligados ao processador assim como as altera es necess rias ao software para que as funcionalidades dos novos m dulos possam ser usadas por este No final deste cap tulo apresentado o esquema f sico da implementa o efetuada 4 1 Migra o de fun es do RTOS para hardware A migra o de fun es de um RTOS comercial para hardware possui algumas limita es de implementa o Para conseguir ter um RTOS hibrido com fun es em software e outras em hardware necess rio manter a estrutura funcional do RTOS pois caso contr rio a coordena o coer ncia entre fun es operadas por software e fun es operadas por hardware n o verificada Sendo assim para efetuar a migra o de uma fun o em software para hardware com sucesso necess rio ter em mente tr s conceitos de implementa o das fun es 57 e Uma fun o em software que recebe argumentos dever quando implementada hardware passa los atrav s da instru o ou caso seja mais simples o m dulo de hardware dever saber a sua localiza o para poder opera los e Caso uma fun o A em software efetue a chamada de outra f
25. SR i 1 ent o trap exception Tra D msync _ _ es de load store antes do memory syncronization fetched ante da l psync pipeline syncronization pipeline e fetched outra vez context syncronization 1 RB jump register gt delay 1 insn lar RB lt 86 ad LR DelaylNSNaddr 4 jump and link register delay 1 insn temp 31 0 lt RA EXTs I none I MACHI 31 0 MACLO 3I 0 temp 31 0 MACHI 31 0 MACLO 31 0 lmaci RAI multiply immediate signed and acumulate Rd RA 0 EA lt EXTs imediato RA load word and extend with zero I lws RA EA lt EXTs imediato RA TLB miss Alignment load word and RD 31 0 EA 31 0 Page fault extend with sign Bus Error Llbz Rd RA load Byte and EA EXTz imediato RA RD 7 0 lt EA 7 0 RD 31 8 lt 0 1105 Rd I RA lt EXTs imediato RA load Byte and t RD 7 0 lt EA 7 0 extend with sign Llhz Rd I RA load half word and extend with zero Bus Error 107 INSTRUCTION SET 7 Implementation Specific 7 Exception 7 Llhs Rd I RA EA lt EXTs imediato RA TLB miss Alignment load half word RD 15 0 lt EA 15 0 Page fault and extend with sign RD 31 16 lt EA 15 Bus
26. VMPS 1 CID ERR Index Page Offset 4 bits 32 VMPS bits VMPS bits Virtual Page Number VPN Virtual Address 36 Bit MMU II Physical Address Physical Page Number Page Offset PADDR_WIDTH Bit PADDR_WIDTH VMPS bit VMPS bit Figura 22 Diagrama de blocos MMU Tradu o do endere o efetivo para o endere o f sico 14 Em primeiro lugar o CPU fornece o endere o efetivo e 4 bits de contextualiza o depois a MMU converte estas duas parcelas no endere o da p gina na mem ria virtual Finalmente recorrendo TLB 7ranslation Lookaside table determinado qual o endere o f sico As MMUs tamb m fornecem mecanismos de prote o ao acesso s page tables por exemplo caso a unidade de fetch ou oad store queiram aceder a uma p gina onde os dados est o protegidos uma exce o do tipo Page Fault ser criada Existe outro tipo de exce o que pode ser gerado pelas MMUs este uma exce o do tipo TLB Miss que quando o endere o efetivo n o corresponde a nenhuma entrada da tabela Resumindo a MMU em conjunto com a unidade de gest o de exce es fornece o suporte necess rio para o RTOS implementar um ambiente de mem ria virtual paginada com prote o no acesso a essas reas As caches s o unidades que armazenam dados de forma transparente de modo a que um pedido futuro a esses dados seja devolvido ao CPU de uma forma muito mais r pida Esta rapidez deve se 45 a quando fei
27. a sua execu o primeiro e devolver o controlo ao CPU que executar a ISR respetiva Este acontecimento pode caso aconte a aumentar o overhead do atendimento da interrup o num m ximo de 3 045us B An lise de Performance temporal A nivel da execu o das fun es load context e switch context examinando o gr fico da Figura 51 verifica se que as fun es realizadas por Hrtos s o finalizadas em metade do tempo do que eram finalizadas por software resultando num aumento de performance de 50 Este aumento de performance s pode ser notado caso se utiliza um programa com m ltiplas reads onde existe preemp o m ltiplas vezes Os resultados apresentados na Figura 52 confirmam esta ultima afirma o Para a simula o A s existiu um load context e uma nica comuta o de contexto pois as duas reads tinham 90 prioridades diferentes nao existiam mecanismo de sincronizacao que possibilitavam preempcao levando a execu o total de uma thread e no seu final o lan amento da segunda thread Para a simula o B apesar das threads possuirem o mesmo grau de prioridades o escalonador tinha a capacidade de realizar timesiice o que possibilitou um total de 28 comuta es de contexto at uma das threads finalizar C An lise das Unidades l gicas consumidas Olhando para a Figura 54 verifica se que a adi o do Hrtos e das suas interfaces acrescentou ao projeto um total de 1052 LUTs e 217 Flip flops Este n
28. algumas funcionalidades que geralmente s o usadas como suporte de recursos avan ados para sistemas embebidos mais complexos reduzindo assim o seu tamanho na mem ria Esta caracter stica permite lhe adaptar se facilmente aos requisitos e restri es do sistema embebido que o acolhe Como de esperar o eCos possui algumas funcionalidades que s o esperadas quando estamos a falar de sistemas operativos de tempo real isto inclui gest o de threads escalonamento sincroniza o entre threads temporizadores gest o de interrup es gest o de exce es e device 21 drivers eCos fornece estas funcionalidades divididas pelos seguintes componentes que constituem a sua arquitetura 11 e Hardware Abstraction Layer HAL e Device Drivers Inclui drivers para porta s rie Ethernet Mem ria Flash entre outros e O kernel e As bibliotecas ISO math POSIX e uTron e Suporte para o GNU Debugger GDB disponibiliza o software necess rio para comunicar com um AostGDB com aplica o de debug Estes componentes estao divididos por quatro camadas como se pode verificar na Figura 7 User Application Compatibility Web Server SE TN Networking Stack NEUEN eee Hardware Abstraction Layer Device Drivers Interrupts Target Hardware Figura 7 Exemplificac o das camadas constituintes do eCos 12 22 Para configurar e compilar o eCos utilizada uma ferramenta o Configtool sendo
29. bem como a cria o de processadores customizados Com o objetivo de contribuir para a evolu o das t cnicas de desenho de processadores a abordagem escolhida consistir em efetuar a migra o de fun es e estruturas de um sistema operativo de tempo real tais como o escalonador de tarefas semaphores ou threads para gateware de um processador e verificar a sua viabilidade tendo em conta as m tricas desempenho temporal unidades l gicas utilizadas e energia dissipada 1 2 Objetivos O objetivo desta disserta o consiste em efetuar a migra o de algumas funcionalidades e estruturas de um sistema operativo de tempo real existente no mercado para o gateware de um microprocessador criando um sistema embebido 1ea time reconfigur vel e determin stico capaz de se adequar a v rias aplica es Numa primeira fase ser estudada a constitui o do processador assim como a do RTOS selecionado de seguida ser o identificadas e implementadas algumas funcionalidades do RTOS em hardware que ser o acopladas ao processador Estas s o codificadas usando uma linguagem de descri o de hardware e sintetizadas com recurso a uma FPGA Numa segunda fase ser analisada a viabilidade deste tipo de abordagem tendo em conta as tr s m tricas de modela o performance temporal dissipa o de energia e unidades l gicas utilizadas 1 3 Organiza o da Disserta o Os temas abordados nesta disserta o est o dividido
30. dados espec ficos como o stack pointer o frame pointer e o link register como se pode ver na Tabela 6 Tabela 6 Registos de Prep sito Geral GPR do OR1200 Registo Dado espec fico RO Sempre com valor O ligado em hardware 1 SP Stack Pointer Apontador para o in cio da pilha da thread R2 FP Frame Pointer Aponta para uma localiza o espec fica na pilha da thread R3 SP da pr xima thread a ser executada R4 SP da thread que est a ser executada R9 LR ink register guarda o endere o de retorno quando chamada uma fun o R11 RV return value guarda o valor ou endere o a devolver pela fun o 3 No caso de tratar se da execu o da fun o load_context ou context_switch Sen o s o registos normais usados para guardar dados vindo de opera es efetuadas pelo CPU 65 4 1 2 4 Liga o e acesso do Hrtos mem ria externa de dados O acesso mem ria externa de dados por parte do Hrtos dever ser efetuado atrav s do barramento Wishbone Para tal Hrtos dever possuir um m dulo de compatibilidade Wishbone para o barramento de dados semelhante ao do processador Este m dulo ter que estar ligado ao arbiter do barramento de dados sendo que deve criar se novas entradas e sa das para Hrtos no interior do arbiter Dbus ver subcapitulo 3 2 3 Para ter a certeza que Hrtos tenha prioridade de acesso a mem ria externa de dados no interior do arbiter Dbus os sinais de Hrtos ser o priorit ri
31. e de dados que permite ao utilizador configurar o comportamento do escalonador e verificar os dados guardados nos seus registos de controlo uma unidade de rel gio de tempo real que gera os eventos peri dicos na unidade de gest o das tarefas de um modo similar ao projeto do RTBlaze 4 uma unidade de gest o de tarefas uma unidade de gest o de semaphore e para finalizar uma unidade de gera o de exce es que gera as exce es internas do m dulo para depois as fornecer ao m dulo CopO MEC Estes m dulos e suas interliga es internas est o ilustrados na Figura 5 Instruction Decoder Configuration and Data Registers Banks Control Instruction Control Control Status Data Contrq Status Status Realtine Events Clock Task 77 Semaphore Coprocessor Interface Instruction Data Control Internal Pipeline Unit Handling Handling nitialization Unit Uni Control and Peripherals Synchronization Interrupt Requests Exception Flags and Masks Exception Flags Exceptions Interface Exception Generation Unit Figura 5 Diagrama de blocos internos do m dulo Corp2 OSC 1 17 Ao contr rio do RTBlaze 4 o Hardware RTOS desta implementa o possui uma interface com o CPU n o se encontrando embutido no pipeline do processador Sendo assim trata se de um modulo oosely coupled ao processador porque utiliza um b
32. e escritas nos registos especiais de controlo e configura o do processador assim como no registo de supervis o Um exemplo da sua fun o a responsabilidade que este tem por escrever no registo de controlo das interrup es A Freeze Unit uma unidade que serve para efetuar uma paragem no pipeline do processador denominado stall isto pode ser devido a um azard ou simplesmente uma espera por parte da unidade de oad store at que receba o dado correto Esta unidade pode parar tamb m a unidade GenPC de gerar o novo valor do Program Counter Por fim a unidade de exce es respons vel por identificar a ocorr ncia destas e efetuar a gest o necess ria 3 2 2 Memory Managment Unite caches O processador 0R1200 vem com MMUs para mem ria de instru o e outra para mem ria de dados Estas unidades s o respons veis por implementar a gest o da mem ria virtual Essa gest o passa por traduzir endere os efetivos para endere os f sicos que s o realizados quando h um pedido efetuado pela unidade de fetch no caso das instru es ou um pedido efetuado pela unidade de LOAD STORE no caso dos dados As page table s o estruturas de dados usados para guardar o mapeamento entre o endere o virtual e o endere o f sico respetivo Na Figura 22 est representada de uma forma simples como a MMU traduz um endere o efetivo para f sico 14 Effective Address Page Index 32 Bit 32 VMPS bits CPU 4 Bit Context ID 32 31 VMPS
33. es switch e LED mapeados para posteriormente efetuar a verifica o e testes de funcionamento do mesmo Tamb m poder ser acrescentado um m dulo de interface s rie Os requisitos n o funcionais s o requisitos que o projeto deve possuir mas que n o est o relacionados com a sua utilidade pr tica Sendo assim um dos requisitos deste projeto encontrar o trade off entre as m tricas performance energia consumida e Configurable Logic Block CLBs usadas Outro requisito que sistema devera cumprir que este tera que ser deterministico isto um sistema que produzir sempre o mesmo comportamento na sa da para uma determinada entrada Por fim o ultimo requisito que este dever satisfazer que toda a sua implementa o dever ser capaz de ser sintetizada e testada na plataforma XC5VLX110T 5 da Xilinx exibida na Figura 1 Figura 1 Placa Virtex 5 ML509 2 2 Sele o do ambiente de execu o Neste subcap tulo apresenta se o estudo que se realizou para determinar qual seria o RTOS a escolher assim como o respetivo processador com base nas restri es e nos requisitos acima referidos 2 2 1 An lise e compara o dos RTOS Existem m ltiplos RTOS de licen a livre no mercado com variadas especifica es e implementa es Mais de 25 RTOS de licen a aberta podem ser obtidos gratuitamente na internet mas foram escolhidos apenas tr s para analisar de modo a encontrar qual ser o alvo de estudo par
34. gt t eCos HAL v3 0 gt Ex 1 O sub system v3_0 Figura 60 GUI Configtool localizar ferramentas Build Toc Library Tests Clean Global build optia gt Redboot HAL opt 9 Flash memory sug gt 5 AMD AM29XXXXX eCos HAL 1 O sub system Generate Build Tree e v u v Y infrastructure v3_0 ec La I v v ui d v g A Please specify the root of the eCos repository tree Cancel home ubuntu ecos hybrid Browse Figura 61 GUI Configtool localizar reposit rio Na hora de escolher as op es desejadas algumas destas poder o efetuar conflitos com outras op es selecionadas Para informar o utilizador destas altera es esta ferramenta abrir uma janela de resolu o de conflitos A Figura 62 mostra a janela de conflito gerada quando se escolhe o escalonador Mlqueue em detrimento do escalonador bitmap 105 1 DM Resolve conflicts 3 41PM 2 ubuntu 4 D g wa Goo Resolve conflicts Ge ERVIEW S4 gt e work ec ET Conflict Property V CYGINT KERNEL SCHEDULER Unsatisfied Requires 1 CYGINT KERNEL SCHEDULER gt E PRIORITIE gt but only v E that 4 Al heduler is Proposed Solutions atic ce there Item Value gt M CYGSEM KERNEL SCHED MLQUEUE Enabled gt v CYGSEM KERNEL SYNCH MUTEX PRIORITY INVERSION PROTOCOL DEFAULT I
35. mero comparado com a totalidade de recursos que possu mos na Virtex 5 aumentou a ocupa o do projeto de aproximadamente 2 Examinado a Figura 55 e a Figura 56 chega se a conclus o que das 1052 LUTs adicionadas ao projeto s 480 prov m do interior do m dulo Hrtos a n vel percentual isto traduz se por uma utiliza o inferior a 1 dos recursos da placa por parte de Hrtos O resto cerca de 1 2 adicional deve se aos wires de liga o e controlo aos m dulos externos register file spr e liga o ao barramento Wishbone que consomem um grande n mero de s ice Destes 480 LUTS e 212 Flip flop utilizados internamente por Hrtos verifica se que as fun es em hardware load context e switch context consomem mais de metade destes recursos num total de 56 o que razo vel tendo em conta as opera es que realizam D An lise da energia dissipada A pot ncia consumida est dividida em duas parcelas a pot ncia est tica que a pot ncia utilizada pelas unidades l gicas usadas nos m dulos devido a correntes de fuga e a pot ncia din mica que adv m da utiliza o comuta o dos valores destas unidades Os resultados apresentados na Figura 58 demonstram que energia dissipada nas duas simula es por OR1200 com Hrtos superior a energia dissipada por OR1200 sem Hrtos No entanto esta diferenca de consumo m nima aproximadamente 0 5mJ e n o chega a ser um entrave adicao de novos m dulos 91 92
36. necess rio reposit rio do eCos e a toolchain respetiva para efetuar cross compile para o processador escolhido ver Anexo e Anexo II Sendo o Kerne um componente fulcral assim como HAL que permite ao sistema operativo ter uma abstra o do funcionamento do hardware ser o os dois componentes da arquitetura do eCos a serem aprofundados nos subcapitulos 3 1 1 e 3 1 2 respetivamente Por fim em 3 1 3 ser explicado a intera o entre o HAL e o kerne para efetuar a gest o de exce es e interrup es 3 1 1 Hardware Abstraction Layer HAL A camada de abstra o de hardware HAL presente na maioria dos sistemas operativos uma camada de software que permite isolar recursos dependentes da arquitetura do hardware de modo a serem utilizados de uma forma simples atrav s de API s Desta forma o HAL permite camada da aplica o aceder ao hardware por interm dio de API s do kernel No entanto este pode n o ser o controlador de todo o hardware do sistema sendo necess rio recorrer a device drivers O HAL do eCos est codificado em C e assembly este est dividido em 3 m dulos A arquitetura a variante e a plataforma O primeiro m dulo a arquitetura cont m o c digo necess rio para o arranque do CPU a comuta o de contexto a entrega das interrup es e outras funcionalidades espec ficas ao ISA da fam lia do processador utilizado Como exemplo de fam lias de processadores existe o OpenRISC SPARC ou MI
37. o de escrita WE O passa a um assim como enviado o novo endere o e dado a partir de DAT O Em 4 o slave devolve um acknowledge informando ao master que recebeu dado Em 5 o master liberta o barramento ao recolocar CYC_O e STB O a Zero 48 3 2 4 Os restantes perif ricos opcionais Esta sec o descreve os restante perif ricos opcionais mencionados no subcap tulo 3 2 e representados na Figura 20 estes s o o m dulo do temporizador contador a unidade de debug a unidade de gest o de energia e o controlador de interrup es Estes foram reagrupados numa nica sec o por se tratar de m dulos que n o influenciaram diretamente a modela o e implementa o deste projeto 3 2 4 1 Temporizador contador Este m dulo temporizador contador que obt m o seu sinal de rel gio atrav s do sistema utilizado pelo RTOS para medir com precis o o tempo e o escalonamento das tarefas A sua sa da gera uma interrup o que poder ser mascarada composto por dois registos de controlo Zick Timer Master Registe permite ativar desativar o temporizador contador e especificar em que modo funcionar TTCR Zick Timer Counter Registe o registo onde incrementado decrementado o temporizador contador Este m dulo permite tr s modos de opera o diferente Auto restart timer One shot timer ou Continuous timer A Figura 25 representa como composto este m dulo temporizador contador
38. qual ser a pr xima tarefa a ser executa para cada um dos n cleos do multiprocessador O escalonador Pfair est dividido em quatro blocos O registo de estados das tarefas TR a calculadora de ordem parcial POC o gerador de escalonamento SG e o controlador geral MC apresentados na Figura 2 O Registo de estados das tarefas permite guardar a prioridade da tarefa este pormenor importante porque permite ao escalonador ser preemptivo A calculadora de 13 ordem parcial gerador de escalonamento permitem calcular a nova thread ser executada sem atulhar o processador de instru es esta funcionalidade diminui o overhead na ocorr ncia de context switch O ltimo bloco respons vel por controlar todos os sinais de entrada e sa da para o Pfair Pfair Scheduler Core m Task State Partial Order Schedule Register Calculator Generator e TR POC 86 M Demon aja air Hardware External Interface Ps scheduler Figura 2 Escalonador Pfair diagrama de blocos esquerda funcionamento do Pfair direita 2 Segundo o autor esta implementa o de escalonador permite aumentar a performance do sistema embebido em rela o ao tempo perdido no context switch assim como a energia dissipada em compara o com escalonadores em software e escalonadores a correr num nico n cleo aquando presentes numa implementa o multi processor 2
39. que funciona como supervisor e usado para mascarar ou desmascarar as interrup es Por exemplo caso o valor do registo seja OxO isto quer dizer que todas as interrup es est o mascaradas O registo PICSR o registo do estado das interrup es ou seja serve unicamente para verificar se as 51 interrup es est o ativas ou desativas As interrup es n o podem ser limpas atrav s deste registo s o feitas por Hardware mas caso se trate de uma ativa o por transi o de n vel numa interrup o esta tera que ser limpa ao escrever um 1 no bit respetivo do registo isto para certificar que a atch venha ao valor 0 O registo PICPR o registo de controlo de prioridade e serve para definir se a prioridade alta ou baixa Estes registos PICMR PICSR e PICPR s o acedidos com as instru es l mtprs e l mfspr presentes ISA do OR1200 3 3 ORPSoC Openkisc reference Platform System on Chip ORPSoC 16 um projeto desenvolvido pela comunidade OpenCores trata se de um System on Chip que constitu do pelo processador OR1200 ao qual foram acoplados de uma forma oosely coupled atrav s do barramento Wishbone diversos perif ricos adicionais Neste subcapitulo sao referidos os m dulos ligados ao processador atrav s do barramento Wishbone que s o a memoria externa o m dulo UART e os arbiters que controlam troca de informa o pelo barramento de dados e instru o
40. rio pode interromper a execu o de uma thread e colocar em execu o uma thread com maior prioridade que esteja pronta para ser executada Tamb m possui a capacidade de timeslicing isto o escalonador consegue dividir o tempo de execu o para cada thread com o mesmo grau de prioridade permitindo cada thread 29 um tempo A Figura 11 ilustra funcionamento do escalonador Multilevel queue com preemp o da thread C e timeslice entre a thread A e Tabela Thread Nivel de Prioridade a __ Thread Bio 31 Timeslice Deschedule Thread A Preemption Deschedule Figura 11 Exemplo do escalonamento operado pelo escalonador Multilevel queue O escalonador Bitmap mais simples que o anterior permite preemp o mas n o existe timeslice como em II na Figura 11 pois n o precisa desta caracter stica visto que este escalonador s permite uma read por prioridade A Figura 12 apresenta o diagrama de classes para a implementa o dos escalonadores no eCos neste caso refere se ao Bitmap A classe Cyg Scheduler Base trata se de uma classe base para ambos os escalonadores cuja subclasse Cyg Scheduler implementation herda todos os atributos e m todos A classe Cyg Scheduler Implementation pode apresentar varia es dependendo do tipo de escalonador que escolhemos Multilevel queue ou Bitmap pois esta apresenta os m todos e atributos e
41. sys ck in p Input sys ck in n 3 LVPECL_25 X uartO stx expheader pad o Output LVCMOS25 12 SLOW uartO stx pad 0 Output 4 LVCMOS25 12 SLOW D gt uart srx expheader pad i Input LVCMOS25 12 SLOW E i Input 4 LVCMOS25 12 SLOW a Properties ISE Integration Flow Figura 65 Ferramenta PlanAhead 112 Assim que os pinos estiverem mapeados abrir a ferramenta iMPACT esta encontra se no separador tools iMPACT Figura 66 a ISE Project Navigator O 61xd DADocumentos importantes Wilinx projectOp1200 v2XOp120 2 File Edit View Project Source Process Window Layout Help Deag NBA 25 ZB Constraints Editor lt Core Generator i View O Implementation Simulation PlanAhead gt include dE Hierarchy Schematic Viewer gt Ro module or Ga Op1200_v2 Qj Timing Analyzer gt i E Pa 6 o FPGA Editor cigaer i 1 Automatic includes fi tdo pe T V orpsoc top orpsoc top v 8 XPower Analyzer l II SmartXplorer ddr2 c zi ddr2 c endif ifdef XII Figura 66 Localiza o da ferramenta iMPACT Neste momento ser necess rio preparar a placa sendo assim ligar o USB JTAG a placa pinos PC4 e ao computador assim como o conversor USB RS232 com inversor a COMI Para efetuar o carregamento do projeto para a mem ria vol til colocar os pinos SW3 6 e SW
42. todas opcionais Para finalizar possui tamb m um interface ao barramento Wishbone para mem ria de dados e de instru es O nstruction Set Architecture ISA do OR1200 composto por duas subclasses o ORBIS32 Anexo III e o ORFPX32 O ORBIS32 refere se s instru es de oad store as instru es de salto condicional e incondicional e as instru es para as opera es sobre inteiros de 32 bits O ORFPX32 que opcional refere se as instru es com inteiros de virgula flutuante OR 200 Instr Cache __ Optional Configurable J03 19 922 Minimal configuration Figura 20 Diagrama de blocos constitui o do Processador OR1200 13 42 3 2 1 Unidade Central de Processamento CPU A unidade central de processamento como o seu nome indica o centro de todas as opera es do processador nela est o inseridas os cinco est gios de pipeline Fetch Decode Execute Memory Access e Write Back O CPU composta por quinze m dulos diferentes que efetuam as suas pr prias opera es como pode ser visto na Figura 21 Insn MMU amp Cache INSTRUCTION FETCH UNIT Data MMU amp cache WRITE BACK MUX Exceptions Figura 21 Diagrama de Blocos constitui o interna do CPU do 0R1200 A unidade de fetch das instru es respons vel por receber a instru o da cache de instru es e guard la para depois fornec la unidade de controlo de salie
43. 2 1 1 e 2 1 2 e na an lise efetuada nos dois subcapitulos anteriores verifica se os resultados apresentados na Tabela 3 Tabela 3 Compara o entre o Leon2 e o OR1200 Open Source Tamanho Arquitetura RTOS port Linguagem Instru o RISC HDL SPARC LEON Sim 32 bit Sim eCos VHDL OR1200 Sim 32 bit Sim eCos Verilog HDL Com base na Tabela 1 e na an lise efetuada em 2 2 1 pode se afirmar que o RTOS a utilizar ser o eCos visto a ser o Unico que possui port at ao momento para estes dois processadores Em rela o aos outros par metros que caracterizam os processadores verifica se que ambos possuem uma arquitetura RISC e ambos possuem um formato de instru o de 32 bit O nico par metro que os pode diferenciar o tipo de linguagem HDL no qual existe uma vers o do c digo do processador para FPGA Visto que o Verilog uma linguagem HDL mais simples e sendo um dos requisitos do projeto o processador escolhido o OpenRISC 1200 pois com base na Tabela 3 o nico processador que est dispon vel na linguagem de descri o de hardware Verilog Concluindo a An lise dos processadores do RTOS respetivo ficamos ent o a saber que para a realiza o da parte pr tica desta disserta o ser o usados o processador OpenRISC 1200 e o RTOS eCosm 12 2 3 Exemplos e T cnicas de Migra es de Software para Hardware Existem diversas migra es de fun es m todos em software para hardware com finali
44. 3 8 a 1 e os restantes a zero Figura 67 i CLK PROG Amm AR ur J5 Dm ger C398p5 MY cao c o Ca Figura 67 Configura o dos pinos SW3 da placa XC5VLX110T e liga o JTAG Ap s preparar a placa voltar ao iMPACT e efetuar Boundary Scan de seguida na janela branca efetuar clique direito com o rato e efetuar Initialize Chain Figura 68 113 GB ISE IMPACT O 61xd Boundary Scan ko File Edit View Operations Output Debug Window Help 5 x Bax Ba PR O 2 gt Right click to Add Device or Initialize chain Create PROM File PROM File Format WebTalk Data Add Xilinx Device Add Non Xilinx Device Initialize Chain iMPACT Processes Available Operations are Cable Auto Connect Cable Setup Output File Type No Cable Connection NoFileOpen Figura 68 iMPACT Inicializar Esta ultima a o desencadeara a abertura de uma janela para decidir quais sao os ficheiros de configura o a carregar Figura 69 efetuar bypass de todos os passos at aparecer o ficheiro bit seleciona se o ficheiro e efetua se open E ISE iMPACT O 61xd Boundary Scan E File Edit View Operations Output Debug Window Help DAR i m iMPACT Flows ensx Tal Boundary Scan SystemACE
45. 51111 NS was Sz Tpue t de 3215989 6 62 ZAT T ds 5 SawiTHO ZAT T de 3215385 NTO Z ZI ZMUI I 93 Sz pue t penieA Ois2 s eM ST IT senedsq Pa10269Z 101 ET OY WS gas Oz adsgu T S443 szaastbay asodang az0rsay 331 YS 351331 NS 45 51 5 9 64 0 de zat 1 pesiua Mou 329316 STqeus adnzzsautT as 03 cy Adop de 3715329 NTHO ZMT T dS s pesiua 196227 ATTRUTI de 3219889 4 EI znT T zaqeTbaz 2 6 27 uaAe IT 2709821 02 S PM OS uoraoung aurod Azaus peeiua sua o3 ausunDze aus sureauoo cy pesiui e Duruuni 31 94 SUT 21611 sya ST 5191 JI axsauo2 peor peezua Teu INVIS 69 Ap s a an lise das opera es que esta fun o efetua em software contabilizou se um total de 17 acessos memoria externa para leitura de dados Este tempo de acesso a mem ria n o poder ser diminu do mesmo passando a efetuar a fun o em ardware isto porque s o pedidos individuais e imposs veis de serem efetuados em simult neo A Figura 39 representa a nova fun o que substituir o c digo presente na Figura 38 assim como a instru o que iniciar a m quina de estados para o load context FUNC START hal thread load context ifdef CYG HRTOS HTHREAD LCTX le ht OxFC200001 Lir FUNC hal thr
46. 83 Tabela 7 Output da fun o Load_context e switch_context Fun o load context Fun o switch context R5 R9 0x8207 0 3 924 0x8207 0x11C10 0x8207 0x3a934 0x8207 0x1194C 0x8207 Ox3b974 0x8207 0 11 5 0 8207 Ox3b984 0x8207 0x11998 R12 R16 0x404000c 0x4040010 0x404000c 0x4040010 0 303000 0 3030010 0x303000c 0x3030010 R20 R24 0x4040014 0x4040018 0x4040014 0x4040018 Y 0x3030014 0x3030018 0x3030014 0x3030018 0x404001c 0x404001c 0x303000c 0x303000c Y 4 gt Zw Por fim a Figura 50 representa que acontece quando uma interrup o externa ocorre enquanto Hrtos estiver a operar 3 Atualiza o 4 Execu o Xterna erup o e 2 Ocorr ncia de int c Ca Co qu qu oo Es on hrtos fsm finis T Figura 50 Ocorr ncia de interrup o quando Hrtos est em execu o 85 5 2 2 Testes de desempenho temporal Os testes de desempenho temporal foram realizados para obter valores de comparacao entre o OR1200 standard e OR1200 com Hrtos quanto ao gt Tempo de execu o da fun o Load_Context e da fun o Switch Context Figura 51 Tempo de finalizac o do programa Figura 52 usando o escalonador A
47. APIs de suporte ao debugger gdb para obter valores de registos cria o remo o de breakpoints entre outros Os header files inc para serem usados conjuntamente com os ficheiros em Assembly tamb m se encontram nesta diretoria Estes definem 25 arch inc as macros da inicializa o de fun es em assembly o valor do stack pointer r1 do frame pointer r2 e do tamanho dos registos J openrisc inc do mesmo modo que o hal arch h a arquitetura mas para o c digo em assembly A pasta src cont m o c digo fonte onde as APIs est o implementadas Os ficheiros em assembly contexto S e vectors S cont m as seguintes fun es context S Cont m as fun es hal thread switch context hal setjmp hal thread load context e hal longimp A fun o hal thread switch context realiza como o seu nome indica a comuta o de contexto isto salvaguarda o estado de uma read e carrega a informa o da pr xima thread a ser executada A fun o hal setjmp e hal longijmp que salvaguardam e carregam respetivamente os registos de prep sito geral antes de efetuar um salto Por fim est a fun o hal thread load context que assegura o carregamento correto da informa o da thread nos respetivos registos L vectors S Cont m as fun es start hal default exception vsr hal default interrupt vsr hal interrupt stack call pending DSRs A funcao
48. Analise dos resultados Ap s a realiza o dos testes efetuou se a seguinte an lise e discuss o dos resultados obtidos A An lise do Funcionamento Com base na Figura 49 verifica se que a fun o em ardware context switch inicia pela maquina de estados para salvaguarda de contexto ctxs state sendo que hrtos coloca o sinal de paragem do CPU a 1 Como foi abordado no subcapitulo 4 1 3 2 a fun o context switch ativa load context ap s finalizar a salvaguarda de contexto Ictxs state Assim que load context finaliza Hrtos devolve a execu o o CPU colocando insn_rtos a zero Esta sequ ncia de opera es demonstram que a n vel de execu o context switch e load context operam como era esperado A n vel de output originado Tabela 7 verifica se que tanto para as fun es realizadas pelo CPU fun o standard do eCos como pelas fun es realizadas por Hrtos os resultados s o iguais menos para os registos R1 R2 e R9 Esta desigualdade nestes registos deve se diferen a na biblioteca do eCos para implementar a fun o em software e em hardware pois em software a fun o ocupa mais posi es na mem ria do que em hardware fazendo com que os endere os guardados nestes registos sejam diferentes Na Figura 50 observa se a ocorr ncia de interrup o quando Hrtos est a operar repara se que caso est situa o acontece pouco prov vel mas n o imposs vel Hrtos finalizar
49. Error laddi Rd Ra l RD lt RA EXTs imediato range exception SR CY lt carry ISR OV lt overflow Laddic RD lt RA EXTs imediato SR CY range exception ISR CY lt carry ISR OV lt overflow Landi RD lt RA EXTz imediato none lori Rd Ra l RD RA EXTz i none Ixori Rd Ra l RD RA EXTs i none exclusive Or with imm half word Iimuli Rd Ra l RD lt RA I multiply range exception imediate signed 1 Rd RA move from special RD lt spr RA I _ none purpose register Lslli Rd Ra 1 RD 31 1 lt RA 31 1 0 none shift left logical RD 1 1 0 lt 0 with imediate Lsdi Rd Ra RD 31 1 0 lt RA 31 1 Israi Rd Ra RD 31 1 0 lt RA 31 i shift right arithmeti with imediate RD 31 32 1 Ra 31 Lrori RD 31 I 0 lt RA 31 1 rotate right RD 31 32 1 lt RA I 1 0 with imediate lsfegi RAI SR F lt RA EXTs 1 none Set Flag if equal immediate Lsfnei RA SR lt RA EXTs 1 none Set Flag if Not Equal Immediate l sfgtui RA ISR lt RA gt EXTs 1 Set Flag if gt than unsigned l sfgeui RA
50. ISR F RA gt EXTs 1 Set Flag if gt unsigned Lsfltui RA Set Flag if lt than unsigned Isfleui RA I Set Flag if lt unsigned Lsfgtsi RA Set Flag if gt signed l sfgesi RA SR F lt RA lt EXTs 1 none E ISR F lt RA lt EXTs 1 none SR lt RA gt EXTs 1 _ SR F lt gt EXTs 1 none Set Flag if gt 1 SR F lt RA lt EXTs 1 SR F lt RA lt EXTs 1 Set Flag if lt I 108 INSTRUCTION SET 1 RA RB I move to special purpose register multiply signed and acumulate l msb RA RB multiply signed and subtract Lsw RA RB store word Lsb I RA RB store byte Ish I RA RB store half word ladd Rd Ra Rb laddc Rd Ra Rb Isub Rd Ra Rb subtract signed land Rd Ra Rb Lor Rd Ra Rb Imac RARB Implementation Specific 7 7 31 0 lt RB MACHI 31 0 MACLO 31 0 lt temp 31 0 MACHI 31 0 MACLO 31 0 EA lt EXTs I RA temp 31 0 lt RA RB none MACHI 31 0 MACLO 31 0 MACHI 31 0 MACLO 31 0 temp 31 0 miss Alignment _ EA
51. NHERIT A mere d build finish make Lea Ready conflicts Figura 62 GUI Configtool Janela de resolu o de conflitos Ap s escolher as op es desejadas efetuar a compila o das librarias C na Figura 59 ser o criados os ficheiros libtarget a e targe ld localizados na pasta ecos install na mesma diretoria do que ecos ecc Para efetuar a compila o de uma aplica o teste com as librarias do eCos usar os seguintes prefixos e jor32elKgcc g 02 nostdlib l local ecos_build install include L local ecos_build install lib T local ecos_build install lib target ld teste c o TESTE 106 Anexo Ill ISA do OR1200 ORBIS32 Implementation Specific 7 Exception 7 lt EXTs imediato lt lt 2 jinsnaddr gt delay 1 insn ljal 1 PC lt EXTs imediato lt lt 2 jinsnaddr LR lt DelayINSNaddr 4 gt delay 1 insn jump and link l bnf 1 EA lt EXTs imediato lt lt 2 binsnaddr 6 PC lt EA Se SR F 0 branch if not flag gt delay 1 insn EA EXTs imediato 2 binsnaddr PC lt EA Se SR F 1 l nop none l macrc RD RD lt MACLO AT t MACHI 31 0 MACLO 31 0 0 MAC Read and Clear i RD I RD EXTz 1 lt lt 16 none Move imediate high 1 5 I system call execption 1 system call Itrap SE
52. PS A variante para distinguir um processador espec fico pertencente a familia de processadores escolhido no caso de escolher uma arquitetura OpenRISC uma variante possivel o OR1200 que pertence a esta familia Neste m dulo est geralmente o c digo para o suporte de MMU e outros perif ricos que pertencem exclusivamente ou possuem uma altera o do seu acesso para a determinada variante Por ltimo a plataforma refere se ao c digo de inicializa o para um determinado ardware que inclui o processador escolhido ou uma variante isto placas de desenvolvimento com FPGAs ou com o processador inserido fisicamente em ASIC Para entender melhor a estrutura do HAL e suas fun es os pr ximos pontos esclarecer o como este efetua a gest o de uma interrup o e de uma exce o e como iniciado no arranque do 23 sistema lt por esclarecer como est constituida a diretoria do HAL mais especificamente a diretoria do HAL para a arquitetura OpenRISC 3 1 1 1 A diretoria do HAL e a arquitetura OpenRISC A nivel de diretoria o HAL do eCos est dividido pelas diversas arquiteturas de processadores no entanto para evitar repeti o de c digo e erros no ca das fun es uma diretoria common possui o c digo que semelhante para todas as arquiteturas e as macros que ir o chamar as fun es respetivas Dentro de uma arquitetura existe tr s sub diretorias diferentes uma diretoria arch
53. RRR Reserved ese 109 RD 31 32 RB 4 0 lt RA RB 4 0 1 0 RD lt RA RB range exception ISR CY lt carry se Divisor is 0 ISR OV lt overflow RD lt RA RB SR CY lt carry se Divisor is 0 range exception SR OV overflow RD 31 0 lt RA RB range exception SR CY lt carry SR OV lt overflow RD 31 16 lt 15 none RD 15 0 lt RA 15 0 INSTRUCTION SET 7 Implementation Specific 7 Exception 7 lexthz Rd Ra RRRRRR OJRD 31 16 lt O none extend half E Reserved RD 15 0 RA 15 0 word with zero Lextbz Rd Ra extend Byte with zero RD 31 8 lt 0 RD 7 0 lt RA 7 0 with sign lcmov Rd Ra Rb IRD lt SR F RA RB none Lff RdRaRb RD 31 0 lt RA 0 1 RA 1 2 RA 2 3 none R rel conditional move d RO rel RA 31 32 0 find first 1 HE 1 91 Rd Ra Rb 1 R RD 31 0 lt RA 31 32 RA 30 31 none Es red F 1 0 find last 1 l l sfeq RA RB W SR F lt RA RB none Set Flag if equal I sfne RA RB 11 bits SR F lt RA RB none Set Flag if nus Not Equal EE l sfgtu RA RB 11 bits SR F lt RA gt RB none Set Flag if gt Reserved than unsi
54. _user_start que cria as reads com as fun es bitcnt e stringsearch respetivamente Este ficheiro est representado na Figura 48 81 cyg_thread thread s stack 2 1 cyg_handle_t threadA threadB cyg_thread_entry_t StrSearch Bitcnt cyg_mutex_t cliblock cyg user start printf cyg mutex init amp cliblock cyg thread create StrSearch cyg_addrword_t gt stack 0 amp threadA amp thread s 0 cyg thread create Bitcnt cyg addrword t ark stack 1 amp threadB amp thread_s i cyg_thread_resume threadA cyg_thread_resume threadB Figura 48 C digo principal usado para efetuar as simula es Ap s compilar o c digo acima com os ficheiros dos benchmark do Mibench foi necess rio converter a aplica o para um ficheiro bin rio de modo a carrega lo para a mem ria do processador Este passo est descrito no Anexo IV Tendo o c digo m quina sido carregado para a mem ria do processador foram realizados os testes de aprova o e medi o das m tricas recorrendo as seguintes ferramentas e 5 para medir a performance temporal das novas fun es e verificar a sua correta execu o em compara o com as fun es originais implementadas em software e XPower Analyser para medi o da pot ncia consumida que juntamente com o tempo de execu o resultaram no c lculo da energia dissipada e o n mero de unidades l gicas
55. a Tabela 1 verifica se que apesar de existirem diversos processadores para qual existe o port dos tr s RTOS mencionados muitos deste n o possuem uma vers o gratuita e completa do c digo em linguagem de descri o de hardware Sendo assim o numero de escolhas do processador est reduzido a dois o Sparc LEON 2 e o Openkisc 1200 O Sparc Leon 2 foi desenvolvido pelo grupo Ga s er Research 9 Este processador possui uma arquitetura RISC com 32 bit de tamanho de instru o O CPU possui 5 est gios no seu pipeline esta ainda possui uma cache de instru o e de dados separados e Memory Managment Unit Este processador vem com diversos perif ricos embutidos tratando se assim de um Syste on chip Vem com porta s rie portos 1 0 timers e controlador de interrup o A conex o entre o CPU e os perif ricos efetuada usando o barramento AMBA A linguagem de descri o de hardware para a qual j foi implementado este SOC o Very high speed integrated circuit Hardware Description Languages VHDL O OpenRISC1200 um processador desenvolvido pela comunidade OpenCores Este processador possui as mesmas caracter sticas mencionadas para o Leon 2 com exce o de que este Jd processador possui um barramento Wishbone conexao com seus perif ricos externos Este processador foi desenvolvido com uma linguagem HDL diferente do que o LEONZ2 o Verilog 2 2 3 Discuss o Com base nas restri es mencionadas na sec o
56. a o desenvolvimento do projeto O FreeRTOS o eCos e o ChibiOS RT O FreeRTOS 6 um RTOS desenvolvido por um grupo denominado de Aea Time Engineers Ltd Este RTOS largamente utilizado em diversos sistemas embebidos assim como em diversos projetos de investiga o O c digo fonte deste RTOS est desenvolvido em C Atualmente este RTOS possui 31 ports para arquiteturas diferentes desde processadores de 8 bit 64 bit ver Tabela 1 Este elevado n mero de ports sem d vida uma das suas grandes vantagens no entanto para usufruir do manual do utilizador este ter que ser pago num valor de 30 o que pode ser um entrave ao uso deste RTOS Tabela 1 RTOS e respetivos porting para diversos processadores Arquitetura Variante FreeRTOS ChibiOS RT eCos Cortex M3 X X OR1200 X PowerPC X X MSP430 X X H8S X X X uBlase X eCos embedded Configurable operating system 7 desenvolvido pela Cygnus Solutions mantido atualmente pela empresa AedHat um sistema operativo realtime que possui a caracter stica de ter um Aerme modulavel isto possui uma ferramenta que lhe permite optar por certas bibliotecas entre outras a biblioteca POSIX e funcionalidades em detrimento de outros atrav s do mesmo c digo fonte Estas op es s o selecionadas de uma forma simples e eficaz recorrendo a uma Graphical User Interface GUI denominada Configtoo As ferramentas de configura o assim como o c
57. ar que se trata de uma opera o de escrita Para a opera o de leitura as entradas s o e addra e addrb que s o os endere os do registos a ler visto que o register file dual ram e permite ler dois registo em simult neo 5bits e rda e que s o bits de sele o que permitir ler um registo a ou b dois a e b ou nenhum nem a nem b 64 E as saidas sao e dataa e datab que s o os dados 32bits devolvido pelos registos selecionado em a e em b respetivamente Para cada opera o escrita ou leitura A e B na Figura 35 respetivamente existe uma condi o de selecao diferente No caso de efetuar uma operacao de escrita Hrtos tera acesso se hrtos_rf_we insn_rtos for 1 e no caso de efetuar uma opera o de leitura a condi o se insn rtos for 1 e tiver um dos sinais ou rdb a 1 Para ambas as opera es insn_rtos ter que ser 1 isto porque o Hrtos s poder aceder ao register file caso o CPU esteja em 5 2 A letra C na Figura 35 representa dois sinais que dever o ser postos a zero caso haja uma opera o de leitura ou escrita por parte de Hrtos ainda de salientar que os registos de prop sito geral localizados no register file m dulo GPRs na Figura 21 apesar de guardarem dados para as fun es opera los alguns destes registos guardam
58. arramento standard 2 3 4 ARTESSO hardware RTOS O projeto elaborado por Naotaka Maruyama o ARTESSO cujo principal componente o hardware RTOS 11 foi criado tendo em vista libertar o CPU das instru es relacionadas com o sistema operativo de tempo real das escritas para a mem ria e da tarefa de calcular o checksum para protocolo TCP Como se pode verificar na Figura 6 o CPU com o tighty coupled RTOS comunica os restantes m dulos mem ria de instru o e de dados DMA atrav s de um barramento externo CPU Instruction CPU Work Header Butter Memory Rearrangement Memory Memo BUS Arbiter amp BUS Excange RTOS LAM BUS IF eryption MAC PHY ex PCI Engine CPU Hold Figura 6 Configura o do ARTESSO e arquitetura do hardware RTOS 11 18 Esta mais uma implementa o em Aardware de um RTOS para libertar o CPU de processamento sup rfluo sendo que neste caso em concreto esta liberta o de carga de processamento feita para que o CPU esteja totalmente dedicada ao processamento do protocolo TCP 2 3 5 Conclus o Com um olhar cr tico nas implementa es acima referidas conclui se que o tipo de acoplamento entre os m dulos a desenvolver e o processador principal um aspeto importante a definir na elabora o deste projeto pois um m dulo tghtly coupled mais robusto e eficiente mas menos flex vel enquanto um m dulo mais f cil de migrar
59. cas do eCos As altera es s bibliotecas do eCos sao realizadas para acrescentar as novas instru es com a ajuda do assembler inline assim como as macros que definirao se a funcao ser implementada em software ou hardware Estas altera es est o exemplificadas na Figura 31 A instruc o le hrtos Ox1 inserida no c digo recorrendo ao assembler inline Esta ferramenta usada para otimizar o c digo servir para chamar uma instru o espec fica do processador neste caso a instru o para realizar por hardware a fun o schedule Como se pode observar a fun o schedule possui uma macro CYG HRTOS SCHED BM SCHEDULE Na hora de gerar o ficheiro objeto relativo compila o da biblioteca caso a macro esteja definida implementar a fun o schedule do escalonador bitmap em hardware 59 Caso contr rio a fun o permanecer implementada em software originalmente disponibilizada na respetiva biblioteca do eCos Thread Cyg Scheduler Implementation schedule 1 Teste se a Macro est Chamada do definida assemblador inline para inserir a instru o para Caso n o esteja definida o m dulo de hardware implementar em software CYG ASSERT run queue 0 Corpo da fun o original implementada em software HAL LSBIT INDEX index run queue thread table index dit Fim da condi o Figura 31 Exemplifica o da altera o das bibli
60. da fase ser iniciada com a ativa o da FSM load context que efetuar o carregamento do contexto como referido em 4 1 3 1 Clock pulse Wb ack i ze v Fsm ctxs e Wb ack i Fsm_ctxs_e Fsm_ctxs_finish Figura 42 Diagrama de estados da fun o context_switch em hardware A instru o que ser respons vel por desencadear a execu o da fun o switch context por hardware est representada na Figura 43 Esta instru o substituir o c digo apresentado na Figura 41 No entanto ser necess rio acrescentar na biblioteca hibrida duas instru es que ser o a instru o de salto com o uso do ink register e uma instru o NOP Esta adi o ser feita porque context switch em fardware chamar load context em hardware sem que processador tenha conhecimento logo se esta adi o n o fosse efetuada o CPU executaria a pr xima instru o que neste caso seria le ht 0x1 A nivel de execu o n o haveria diferen a visto que efetuaria o mesmo resultado porque chamaria a fun o load context no entanto aumentaria o overhead desta opera o de dois pulsos de rel gio isto porque insn_rtos viria a zero e voltaria novamente ao valor 1 Pa FUNC_START hal_thread_switch_context ifdef CYG_HRTOS_HTHREAD_CTXS le ht 0 200002 FUNC END hal thread switch context Opcode Principal Opcode classe Reservado Opcode fun o consoante a classe Inst
61. dade de aumentar a performance de um sistema embebido Este conceito n o novo 3 10 mas s nos nossos dias a tecnologia e os meios permitem apostar com abund ncia neste conceito de implementa o No desenvolvimento de novos m dulos CCUs ou coprocessadores estes podem ser coupled 1 2 3 ou Zightly coup ed 4 ao processador principal O termo tghtly coupled refere se as unidades de hardware geralmente CCUs que est o intrinsecamente ligadas ao processador central partilhando barramentos e ou a mem ria interna sendo que a sua estrutura tem uma forte depend ncia da estrutura do processador dificultando a sua reutiliza o para outras arquiteturas de processadores O termo refere se s unidades que apesar de comunicarem uma com as outras e ou com o processador central atrav s de um barramento especial AMBA Wishbone etc s o totalmente independentes a n vel funcional e estrutural permitindo que sejam exportadas para outras arquiteturas de uma forma mais simples e mais r pida Tendo estes dois conceitos de implementa o em mente vai se agora analisar diversos exemplos de migra es e implementa es em Hardware efetuadas at ao momento 2 3 1 Escalonador Pfair O Pfair 2 um escalonador em fardware para multiprocessadores de tempo real implementado por Nikhil Gupta Funciona como um coprocessador oose y coup ed que executa o algoritmo de escalonamento e determina
62. digo fonte est o desenvolvidas em C C e permitem serem compiladas tanto em Windows como em Linux A documenta o fornecida para este RTOS est bastante desenvolvida mas carece em alguns aspetos tais como no User Guide que n o est totalmente atualizado No entanto este RTOS sem d vida um timo candidato para implementa o do projeto por possuir diversos ports para diversos processadores de c digo aberto e por ser altamente configur vel ChibiOS RT 8 desenvolvido pela pr pria comunidade chibios org trata se de um sistema operativo realtime compacto quando todas as bibliotecas s o compiladas o seu tamanho em mem ria n o excede os 6kBytes e simplista Este RTOS desenvolvido em s possui ports para 8 arquiteturas diferentes o que em compara o com o FreeRTOS resume se a poucas op es documenta o disponibilizada est fragmentada por cada port existente sendo que para cada um existe um manual de refer ncia para o Aerne e outro para o respetivo HAL Hardware Abstraction Layer Este RTOS apesar de ser bastante compacto n o apresenta nenhuma vantagem direta sobre os restantes apresentados Ap s efetuar uma breve descri o dos tr s RTOS selecionados referindo o n mero de ports a linguagem do seu c digo fonte e alguns aspetos n o funcionais realizou se uma compara o destes RTOS em rela o as capacidades do kerne do escalonador das threads e da gest o da mem ria virtual repre
63. do se realiza uma interrup o De seguida lan ada a fun o hal mon init T que respons vel por instalar a tabela de Vector Service Routine por defeito para o caso do OpenRISC entre a posi o 0x200 a A fun o em trata de limpar a sec o onde as vari veis est ticas est o alocadas e a tarefa posterior 9 cria uma pilha onde as fun es em poder o ser chamadas pelo c digo Assembly presente no ficheiro Vector S A pr xima etapa complementa a tarefa realizada em 7 ao acrescentar novas exce es referentes plataforma escolhida Em 1 as Memory Managment Unit respons veis por traduzir endere os l gicos para f sicos e desencadear mecanismos de prote o de acesso as caches inicializada A fun o Mal enables caches 2 ativa as caches de instru o e de dados Em 3 ativado o m dulo respons vel por gerir as interrup es externas Na etapa a fun o hal nvoke constructors chama os construtores C das diferentes classes que s o necess rias para ao Seguidamente em 5 se a op o for selecionada a fun o initialize stub instala as trap handler respons veis por gerir as a es de debug e inicializa m dulo de debug Para finalizar a inicializa o do HAL em 16 a fun o cyg start passa controlo ao para este efetuar a sua inicializa o 3 1 2 O kerne O Kernel o n cleo do sistema operativo eCos respons vel por fornec
64. dos dados da thread A segunda fase efetuada pela chamada da fun o load context presente na Figura 38 ral FUNC_START hal_thread_switch_context Store General Purpose Registers GPRs l sw 2 ORIK GPRSIZE sp r2 l sw 9 OR1K_GPRSIZE sp l sw 10 ORIK GPRSIZE sp l sw 12 ORIK GPRSIZE sp l sw 14 OR1K_GPRSIZE sp l sw 16 ORIK GPRSIZE sp l sw 18 OR1K_GPRSIZE sp l sw 20 ORIK GPRSIZE sp l sw 22 OR1K_GPRSIZE sp l sw 24 ORIK GPRSIZE sp l sw 26 OR1K_GPRSIZE sp l sw 28 OR1K_GPRSIZE sp l sw 30 ORIK GPRSIZE sp l addi r5 sp SIZEOF ORIKREGS save SP in reg dump l sw 1 OR1K GPRSIZE sp l mfspr r5 r0 SPR SR save SR in reg dump l sw ORIKREG SR sp r5 Return resulting new SP to caller via second argument l sw O r4 sp Now load the destination thread by dropping through to hal thread load context FUNC END hal thread switch context HAL THREAD LOAD CONTEXT Figura 41 C digo da fun o hal thread context switch em software Para migrar esta fun o para hardware em duas fases tamb m a primeira ser composta por uma m quina de estados com pelo menos 19 estados compostos por um estado idle um estado de inicio e outro de fim e 16 outros obrigat rios devido aos acessos para escrita na mem ria de dados Em simult neo efetuar se as opera es necess rias aos dados para este 12 serem escritos corretamente A segun
65. e Insn_rtos_reg registo que sinalizar a unidade de freeze para efetuar paragem reativa o do CPU Hrtos Decode id insn i 31 0 Lhrtos d insn 31 0 hrtos clk hrtos insn e hrtos fsm finish hrtos rst insn rtos reg b d Figura 33 Esquema da unidade Hrtos Decode Caso o opcode recebido pelo sinal id insn i dado pelo CPU seja uma instru o para o Hrtos este ativar o sinal hrtos insn e que por sua vez ativar a FSM adequada recorrendo ao sinal hrtos d insn Para informar o CPU que o Hrtos come ar a operar e tomar controlo dos registos 62 da memoria externa sera usado sinal insn_rtos_reg A Figura 34 representa diagrama de estados do sinal insn_rtos_reg Hrtos_fsm_finish Hrtos_fsm_finish Reset Reset _finish Hrtos fsm finish Hrtos fsm fini Hrtos fsm finish Figura 34 Diagrama de estados do sinal insn rtos reg Quando acontece o reset do sistema insn_rtos_reg passa para o valor 0 No pr ximo pulso de rel gio como n o existe nenhuma FSM ativa o sinal hrtos_fsm_finish esta a 1 e insn rtos reg toma o valor de hrtos insn e Caso hrtos insn e esteja a 1 dete o de uma instru o para Hrtos insn rtos reg passa a l Caso hrtos fsm finish esteja a O insn rtos realimentado com o valor 1 sen o insn_rtos_reg iniciar outro ciclo de sal
66. ead Implementation os atributos e os m todos relativo ao tipo de escalonador escolhido e fornece a Cyg Thread a abstra o a n vel do escalonador Possui um atributo queue que o apontador para a lista de espera de thread s para serem executadas Este apontador fornece esta informa o no tipo de classe abstrata Cyg ThreadQueue Figura 14 que possui APIs para remover 32 incrementar ou decrementar a posi o das threads na lista de espera assim como um atributo herdado Cyg_ThreadQueue_Implementation que a lista ligada de thread s no estado wait Figura 14 Diagrama de classes lista de reads No decorrer de uma aplica o uma thread pode ter diversos estados guardado no atributo state classe thread na Figura 13 esses estados no eCos podem ser running sleeping suspended creating e exited Para entender como efetuada esta troca usando o exemplo de uma ead TA que ainda est criada Quando TA criada registada na tabela de yead s e inserida na lista ligada de threads em espera com o estado sleeping Quando TA possuir todos os recursos necess rios a sua execu o esta removida da lista de espera e inserida na lista de reads pronta a ser executada com o estado suspended Caso aconte a um ponto de escalonamento e TA estiver no topo da fila ela passar a ser executada estado running Enquanto
67. ead load context Opcode Principal Opcode classe Reservado Opcode fun o consoante a classe Instru o bo he 18 17 16 85 leht Oxi Figura 39 Instru o para ativar a fun o load_context em hardware Para implementar a fun o load context uma maquina de estados com 20 estados sendo um estado parado um estado inicial para o arranque um estado de finaliza o e os restantes 17 s o condicionados pelo acesso mem ria e rece o dos dados Em simult neo ser o efetuadas a opera o de jun o dos valores do registo de supervis o e a salvaguarda dos valores recebidos calculados nos registos respetivos Para diminuir o overhead da leitura de R1 que guarda o stack pointer criar se a um registo com esse prep sito A Figura 40 representa a m quina de estados que implementar a fun o load context em hardware 70 Clock pulse Wb i Fsm lctx e Wb ack i Wb ack i Fsm letx finish Figura 40 Diagrama de estados da fun o load context em ardware 4 1 3 2 Migra o da Fun o Context switch A fun o hal thread load contex um m todo da classe cyg hardware thread e esta implementada em assembly Esta fun o opera em duas fases sequenciais 1 Salvaguarda dos dados da thread que estava a executar 2 Carregamento dos dados da read que ir executar A primeira fase que o c digo em software representada na Figura 41 realiza a salvaguarda
68. eet ee iie toe ied 34 Figura 16 Efeito de priority inversion A e priority inheritance protocol 35 Figura 17 Inicializa o do Aerne do eCos ssssssssssesseeennmennens 37 Figura 18 Gest o de uma exce o pelo eCos 12 sss 39 Figura 19 Manipula o de uma interrup o no eCos 12 41 Figura 20 Diagrama de blocos constitui o do Processador OR1200 13 42 Figura 21 Diagrama de Blocos constitui o interna do CPU do 0R1200 43 XV Figura 22 Figura 23 Figura 24 Figura 25 Figura 26 Figura 27 Figura 28 Figura 29 Figura 30 Figura 31 Figura 32 Figura 33 Figura 34 Figura 35 Figura 36 Figura 37 Figura 38 Figura 39 Figura 40 Figura 41 Figura 42 Figura 43 Figura 44 Figura 45 Diagrama de blocos MMU Tradu o do endere o efetivo para o endere o f sico 14 45 Esquema de liga o a barramento Wishbone 15 47 Wishbone Master Signat ciclo de leitura e escrita 48 Diagrama de Blocos Temporizador Contador 14 49 Diagrama de blocos Unidade de Debug 14 50 Diagrama de blocos Programmable I
69. enRISC Exce o Vetor Endere o Exce o Vetor Endere o Dummy Vector 0x000 External interrupt 0x800 Reset 0x100 D tib miss 0x900 Bus_error 0x200 llb miss Oxa00 Data page fault 0x300 hange OxbOO Instruciton Page fault 0x400 Syscall Tick timer 0x500 Reserved Oxd00 Unlaigned access 0x600 Trap Oxe00 legal instruction Ox700 38 As exce es s o lidadas conjuntamente entre HAL e o kemel Inicialmente HAL respons vel por efetuar a paragem na execu o das instru es e obter o endere o da VSR na tabela De seguida o kernel assume o controlo e efetuada atrav s da fun o cyg hal exception handler a gest o da exce o ocorrida Depois este fandler entrega a ao nivel da aplica o com cyg hal deliver exception onde est instalada uma rotina que efetua um processamento suplementar gest o da exce o apresentando tamb m as informa es sobre a exce o ocorrida Posteriormente devolvido ao HAL a gest o da exce o e este finaliza a opera o restaurando o sistema onde foi interrompido O exemplo ilustrado na Figura 20 apresenta a gest o de uma exce o mais particularmente quando um system call realizado Application Installed Alignment Exception Vector Service Routine Application Level HAL Exception Support and Kernel Exception Handling mesm Alignment Exception Call KSA HAL Level Get handler from vector Hardware
70. ent With eCos New Jersey U S A Prentice Hall Professional Technical Reference 2003 97 13 Julius Baxter Michael Unneback and Marcus Erlandson 2012 janeiro OpenCore org Online http opencores org openrisc or1200 14 Damjan Lampret OpenRISC 1200 IP Core Specification OpenCores 2001 15 OpenCores org WHISBONE SoC Interconnection Architecture for Portable IP Cores Silicore 2002 16 Julius Baxter ORPSoC User Guide OpenCores 2011 17 Jacob Gorban UART IP Core Specifications OpenCores 2012 98 Bibliografia IR Anthony J Massa Embedded Software Development With elos New Jersey U S A Prentice Hall Professional Technical Reference 2003 Julius Baxter Open Source Hardware Development and the OpenRISC Project IMIT Tese de Mestrado Computer Science and Communication 2011 OPENCORES org WISHBONE SoC Interconnection Architecture for Portable IP Cores Silicore 2002 Damjan Lampret OpenRISC 1200 IP Core Specification OpenCores 2001 Damjan Lampret Chen Min Chen and Marko et Al Milnar OpenRISC 1000 Architecture Manual OpenCores 2006 Jeremy Bennett and Julius Baxter OpenRISC 1200 Supplementary Programmer s Reference Manual OpenCores 2010 Julius Baxter ORPSoC User Guide OpenCores 2011 99 100 ANEXOS Anexo Instala o da GNU oolchain Usando um computador com Linux instalado ou atrav s de uma maquina virtual que corra o Linux abr
71. er as funcionalidades de um RTOS como escalonamento gest o e sincroniza o entre threads mas tamb m com o aux lio do HAL faz a gest o de exce es e interrup es ver subcap tulo 3 1 3 A camada de aplica o tem a particularidade das suas APIs n o devolver valores isto porque o tratamento destes valores consome muito processamento por vezes desnecess rio Devido a esta op o de implementa o o Aerne impossibilitado de recuperar de erros por si s parando a aplica o quando um erro surge No entanto o eCos disponibiliza assertions que podem ser habilitados ou desabilitados no momento de configura o do RTOS Assertions s o um suporte na 28 hora de efetuar o debug do sistema pois caso um erro surja a assertion informa o utilizador do tipo de erro que aconteceu efetuando um prompt para posteriormente ser corrigido Sabendo agora como est composto o Aerne do eCos os subcapitulos 3 1 2 1 a 3 1 2 3 v o de uma forma pormenorizada explicar a composi o e o funcionamento das suas funcionalidades para finalizar com o Kerne do eCos em 3 1 2 4 ser exemplificada a sua inicializa o 3 1 2 1 Escalonadores e controlo do escalonamento O escalonador a pe a principal no de um sistema operativo pois este que efetua o trabalho de determinar qual a pr xima thread a ser executada fornece os mecanismos de controlo e sincroniza o entre read e controla o efeito das interrup es na e
72. errpt stack OD arm O mem 7 mine O Setup C function call stack Figura 10 Etapas da inicializa o do HAL 12 Numa primeira fase o hardware ligado quando acontece o Program Counter PC aponta para o endere o de reset que no caso do OpenRISC 0x100 Ap s o reset ser efetuado a fun o start iniciada presente no ficheiro Vector S Esta fun o trata se da fun o principal para a inicializa o do HAL pois as seguintes fun es presentes na Figura 10 de 4 a 16 s o fun es chamadas dentro da fun o start 3 Assim que a fun o start arranque a fun o hal cpu init 4 inicializada est respons vel por preencher os registos de prep sito geral com valores iniciais tamb m respons vel por desativar a cache de instru es e dados de modo a que nenhuma informa o errada passe para o pipeline do processador O pr ximo passo a execu o de hal hardware init 5 esta funcao respons vel por inicializar o Hardware espec fico variante escolhida Configura a cache coloca os 27 registos de controlo de interrup o com valores por defeito e configura os registos de chip select relativos variante esta ultima parte realizada se for escolhida uma variante caso n o seja n o realizada A pr xima rotina denominada Setup interrupt stack 6 para guardar as informa es do processador quan
73. es dois m dulos passam pela liga o ao register File special purpose register ao m dulo de freeze com o wire insn ros 75 lane eee Jds xn y xnyy 9pooep soge soy mm mm mm mm um um lt m peeJuy soge pue Ws peal ids peel GVSYHLH WSS 76 aveau gM 502 SOH 114 Sp enS II HTHREAD Figura 46 RTL 78 mm mm mm um NM I 1 1 Lia LE i i dy I 11 H Dica I H EM NE I Ina I T I P an ee ndo 002120 11 1 pror og 1 la gg gro 1 gr d jg I boos EB BE lalala ota da da do nai 0 ew Jds souy ys souu I d 1 peas ids souy TAL sony H um um um am souu E nune 11 oem qmp souy TE ET Fus amp sony I Dio amp souy 1 1 148 DUE Wd I I o tclappe ads s
74. fetuar o carregamento dos dados da nova thread a executar Esta fun o no eCos est implementada em assembly O c digo desta fun o ilustrado na Figura 38 e tendo em conta a Tabela 6 verifica se que esta possui quatro blocos de opera es sequenciais distintas Estas opera es s o 1 Rece o atrav s do registo R3 do endere o do stack pointer da thread e salvaguarda deste no registo R1 2 Carregamento usando o valor em R1 dos registos de prep sito geral R2 R9 R10 R12 R14 R16 R18 R20 R22 R24 R26 R28 R30 da trhead 3 Carregamento usando o valor em R1 do estado do registo de supervis o da thread e juncao desse valor com o valor atual do registo 4 Coloca o em RI do valor do novo stack pointer guardado anteriormente pela thread 68 peo pe iyy jey oe3unj ep OSIPOD 8g enS ax92u09 prot peezua ONO dou snw 20TE Aetop Il de 32198d9 0 OSI ZMT T 45 1715 445 HTHO SZ 8731 ZMT T ds 3215329 92 921 ZMT T de 2215329 pZ PZT ZMT T ds 3215949 ZZ 201 ZMl 1 9 2215999 OZ 001 ZMT T de 3215989 BT BTI ZATT de 3215389 91 912 ZMT T de 3215929 PT PTZ ZMT T WS was sz ox 1 452 45 171 445 ZT 211 ZMU I 91 gz 10 1 ds 3215929 OT 011 ZMT T 331 NS 4
75. ghtly Coupled Real Time Operating System College of Engineering and Mineral Resources a WVU Morgantown West Virginia Disserta o Mestrado em Engenharia Eletronica 2008 5 Xilinx inc ML505 ML506 ML507 Evaluation Platform User Guide Maio 2011 6 Support for Hierarchical Scheduling in FreeRTOS tecfnical program at IEEE ETFA pp 1 10 Setembro 2011 7 Jung Guk Kim and Mon Hae Kim An eCos based Real Time Micro Operating System Supporting Execution of a structured Program the Eighth IEEE International Symposium on Object Oriented Real Time Distributed Computing ISORC pp 182 189 Junho 2005 ISBN 0 7695 2356 0 8 Giovanni Di Sirio 2011 Outubro ChibiOS RT free embedded RTOS Online http chibios sourceforge net html pages html 9 2011 Dezembro Aeroflex Gaisler Online http www gaisler com cms index php option com_content amp task view amp id 156 amp ltemid 104 10 S Saez A Crespo and A Garcia hardware scheduler for complex real time systems Proceedings of the IEEE International Symposium on Industrial Electronics pp 43 48 1999 ISBN 0 803 5662 4 11 Naotaka Maruyama Tohru Ishihara and Hiroto Yasuura An RTOS in Hardware for Energy Efficient Software based TCP IP Processing 2010 IEEE Sth Symposium on Application Specific Processors SASP pp 58 63 2010 ISBN 978 1 4244 7954 2 12 Anthony J Massa Embedded Software Developm
76. gned l sfgeu RA RB SR F lt RA gt RB none Set Flag if gt than unsigned l sfltu RA RB Set Flag if than unsigned SR F RA RB none l sfleu RA RB L SR F lt RA lt RB none Set Flag if E lt than unsigned l sfgts RA RB SR F lt RA gt RB none Set Flag if gt than signed Lsfges RA RB 1 SR lt RA gt RB none Set Flag if gt than Isfits RA RB E SR lt RA lt RB none Set Flag E 9 if than signed Isfles RA RB u 1 0j SR F RA RB none Set Flag if than Legenda Acr nimo Defini o Acr nimo Defini o Acr nimo Defini o a Registoa LR Link register EXTs sign extended b Registo SR Superivision Register EXTs sign extended d Registod OV Overflow bit F Flag bit R reserved binsnaddr branch instruction address PC Program Counter Imediato EXTZ zero extended EA Effective Address Bit de 110 Anexo IV Gera o do ficheiro coe Ap s a aplica o ser compilada necess rio criar o ficheiro com o c digo m quina de modo a ser carregado na mem ria do processador A foolchain possui duas ferramentas que geram os ficheiros bin e vmem usando os comandos e Sor32 elfobjcopy O binary TESTE teste bin e bin2vmem teste bin teste mem Visto que a mem ria
77. ia externa a mesma para memoria de c digo assim como para a memoria de dados Esta ter que ter um tamanho m nimo de 65 Kbytes para poder guardar a aplica o com as bibliotecas do eCos Esta duatport com acesso s ncrono isto permite acesso a escrita e leitura em simult neo como se pode ver na Figura 29 Para efetuar comunica es atrav s do barramento Wishbone possui um m dulo de compatibilidade com este barramento sendo que o primeiro master a pedir o barramento instru o ou dados ser o primeiro servido ram dualport wb dat o 31 0 CCIR wb d dat 0 31 0 wb ct wes 1 2 0 31 0 i310 wb d 31 0 wb d dat 31 0 Figura 29 Diagrama de blocos memoria externa de dados e de instrucdes 54 3 3 3 O m dulo 16550 O m dulo de porta s rie UART16550 um IP core desenvolvido pela comunidade e integrado no projeto ORPSoC para acrescentar mais um perif rico ao OR1200 visto que possui compatibilidade com o barramento Wishbone Este m dulo possui suporte para interrup es registos de controlo para configurar interrup es buffer de rece o de dados e buffer de transmiss o de dados como se pode observar na Figura 30 Por defeito este m dulo comunica com um baudrate de 11500 bps bit por segundo 8 bit de dados 1 startbit e 1 stop bit Teceiver Receiver shift register Wishbone signals sTX O INTO Figura 30
78. ientar que insn_rtos_reg s passar a 1 um ciclo de rel gio depois de hrtos insn e ter identificado uma instru o Este efeito propositado para deixar o est gio execute do pipeline do processador finalizar a sua opera o antes que Hrtos comece a operar e retirar o acesso aos seus registos e a mem ria externa 63 4 1 2 3 Liga o do Hrtos aos registos de prop sito geral GPR As entradas e as sa das do register file ter o que estar dispon veis tanto para o Hrtos como para o processador visto que ambos partilham o mesmo entrada do register file deve existir multiplexers que consoante a condi o de sele o permitir ao Hrtos ou ao processador aceder aos seus dados Figura 35 representa a liga o entre o Hrtos e o register file i Register File A y 4 CPU input i addw Bh dataw Hrtos input CPU signal addra A insn rtos amp hrtos we B insn amp rda rdb addrb CPU input inpu Multiplexer rdo b p o cy_we i Hrtos input CPU signal id freeze Sempre que acontece ou B eZ Figura 35 Esquema de liga o entre Aegister File e Hrtos As entradas do register file que Hrtos utilizar para efetuar uma opera o de escrita s o e addw que o endere o do registo onde ser escrita a informa o wire de bbits e dataw que o dado que ser escrito no registo escolhido wire de 32 bits e we um bit que indic
79. informa o ser passada ao Hrtos para este efetuar a descodifica o das suas instru es caso Seja uma instru o para este ativar o sinal insn rtos que estar ligado a unidade de reeze do processador efetuando se uma paragem na execu o do pipeline Em simult neo Hrtos ativar o enable FSM Finite State Machine da fun o correspondente Assim que a FSM termina Hrtos acabar de operar ser substitu da a instru o ilegal por uma instru o Register FILE NOP e a execu o ser devolvida ao processador Decode Execute Fetch TO T1 insn_rtos T2 T3 Instru o Figura 32 Funcionamento do Hrtos 61 4 1 2 2 A unidade de decode de Hrtos A unidade de descodifica o de instru o interna ao Hrtos permitirlhe saber quando uma instru o deve ser processada por si ou pelo CPU Esta unidade dever ter as seguintes entradas e Hrtos_reset 1bit para efetuar resete repor os valores de origem e Hrtos_clk fornecer o sinal de clock do rel gio para as opera es s ncronas e Hrtos fsm finish 1bit que indicar que todas as FSM est o inativas completadas e Idinsni 1 wire de 32 bits que fornecer a instru o que se encontra no 2 estagio do pipeline do processador E as seguintes sa das e Hrtos d insn wire de 32 bits que fornecer a instru o a respetiva FSM e Hrtos_insn_e wire que indicar que Hrtos esta a operar
80. inui diminuindo tamb m o consumo de enrgia modo doze quando ativo suspende o decorrer das instruc es por 50 parte do CPU pois desabilita o clock do CPU deixando apenas ativo o temporizador contador e o PIC Quando surge uma interrup o c ock do CPU reativado o processador deixa de estar no modo doze No ltimo modo s eep mode todas as unidades internas s o desabilitadas pois sinal de rel gio n o fornecido e s voltar ao modo normal quando ocorrer uma interrup o 3 2 4 4 Programable Interrupt Controller O OpenRISC 1200 possui um controlador de interrup es program vel com 32 pinos de entrada sendo que o pino 0 e 1 est o sempre habilitados e conectados s prioridades altas e baixa respetivamente Os restantes 30 pinos s o maskable isto estas interrup es podem ser ignoradas pelo sistema se no respetivo registo estiver 0 O PIC tamb m composto por tr s registos de prop sito especial PICMR PICSR e PIPR ilustrados na Figura 27 permitindo que as interrup es sejam ativas por estado 0 ou 1 e ou por transi o de estado 0 para 1 PICMR PICPR INTO TICK INT HIGHPRIO INT EXCEPTION Mask Function INT 31 2 PICSR LOWPRIO INT EXCEPT INT 1 Figura 27 Diagrama de blocos Programmable Interrupt Controller PIC 14 O registo de controlo de interrup es mascaradas PICMR um registo de 32 bits
81. iority levels is automatic PE ET Timeslicing within a given priority level is irrelevant since there W Scheduler de m can be only one thread at each priority level gt Ri Number of pri 32 gt Scheduler time TORE Ty LCUVITIy UICCCUT y UUUIICU CCU UU TCpUSILUT yy WUT Ry CCU UUNU TIQU spor yy UT ery Eee build finished ake Leaving directory home ubuntu eCOS tool repository work ecos build No conflicts Ready Legenda A Op es de configura o do eCOS kernel Hal e bibliotecas de compatibilidade B exemplo efetuar escolha do escalonador C Bot o para compilar as bibliotecas previamente escolhidas configuradas D Informa o sobre onde se encontra o ficheiro da implementa o da op o selecionada E Macro que define a op o selecionada utilizada na hora de compilar as bibliotecas Figura 59 GUI Configtool Janela principal Para utilizar Configtool para compilar as librarias necess rio indicardhe onde est o as ferramentas de compila o do Aoste do target deslocando se ao separador tools path Figura 60 Tamb m necess rio indicar lhe onde se encontram os packages necess rios deslocando ao separador build repositor Figura 61 104 Build Tools Help Paths Build Tools Shell User Tools Run Tests Global build options Platforms gt Redboot HAL options 4S Flash memory support 0 gt EF AMD AM29XXXXX FLASH S PU 0
82. ir um terminal e efetuar o seguinte comando para adquirir os pr requisitos de instala o e sudo apt get y install build essential make gcc g flex bison patch texinto libncurses5 dev libmpfr dev libgmp3 dev librmpc dev libzip dev python dev libexpat I dev Ap s a instala o destas ferramentas efetuar o download da toolchain que esta dispon vel atrav s de um reposit rio SVN Usando o terminal efetuar o comando e 5 sn http opencores org ocsvn openrisc openrisc trunk gnu sre Assim que o download terminar dirigir se para o interior da pasta gnu src efetuando e cd onde esta estiver guardada gnu sre No interior desta pasta existem duas toolchain a newlib toolchain a que queremos que criar as ferramentas com o prefixo or32 elf e a uClibc foo chain que criar as ferramentas com o prefixo or32Jinux Usando a script bld all sh que se encontra no interior da pasta gnu src efetuar a compila o da new ib toolchain com o seguinte comando e bldal sh force prefix opt apenrisc orlksim dir opt orlksim no uclibe no or32 inux Ap s efetuar este ultimo comando todas as ferramentas como compilador assemblador inker entre outras estar o criadas e prontas a serem utilizadas no entanto n o estar o dispon veis na path atual Para estas ferramentas estarem sempre dispon veis na path editar o ficheiro profile usando o comando e sudo gedit etc profile Isto abrir o ficheiro pr
83. m o apontador por defeito das interrup es a partir da tabela VSR guardado o estado do processador bloqueado o escalonador e as interrup es Depois o VSR por defeito aponta para a localiza o das ISR e no conjunto das ISRs determinada qual deve ser executada ap s a fun o hal_intr_decode devolver o seu valor A ISR executada ao n vel da aplica o e notifica ao keme que a DSR tem que ser executada ap s esta terminar A DSR s ser executada caso n o exista nenhuma DSR mais priorit ria por executar Ap s a ISR estar terminada a fun o a fun o interrupt end chamada Se necess rio executar uma DSR a fun o interrup end chama a fun o post dsr Ap s post dsr retornar o escalonador desbloqueado Se o escalonador n o for bloqueado por uma thread a DSR executada se existir sen o executada a thread neste caso est uma DSR ativa e o escalonador n o est bloqueado Assim que a DSR acaba a rotina restore state lan ada Finalmente a retomada 41 3 2 Processador RISC OR1200 O processador 0R1200 Figura 20 um processador RISC de 32 bit com cinco est gios de pipeline Possui suporte de mem ria virtual atrav s das MMUS cache de instru es e dados direct mapped m dulos DSP Digital Signal Processing temporizadores contadores uma unidade de debug uma unidade de controlo de interrup es e outra de gest o de energia que s o
84. maphore a ser usado Este exemplo retrata certamente a melhor implementa o para remover o overhead do context switch e tornar o sistema embebido mais deterministico mas tem a desvantagem de ser uma implementa o menos flexivel sendo exclusiva para este processador 2 3 3 O ARPA MT O projeto ARPA MT 1 desenvolvido por Arnaldo Oliveira consistiu no desenvolvimento de um processador multitarefa com respetivo hardware RTOS ver Figura 4 Este projeto constitu do por tr s m dulos o CPU o Cop2 OSC e o CopO MEC Peripherals Interrupt Requests Initialization Synchronization Coprocessor Coprocessor and and Exceptions Exceptions Cop0 MEC nterface nterface Cop2 OSC External Memory Interface Figura 4 Vis o geral do projeto ARPA MT CPU MIPS32 CopO MEC memory managment unit configura o e handling interrup o e exce es Cop2 OSC hardware RTOS 1 16 O CPU cont m a implementa o standard da arquitetura do MIPS32 com cinco est gios de pipeline O m dulo CopO MEC um coprocessador respons vel por manipular e efetuar a gest o da mem ria exce es e interrup es enquanto o m dulo Cop2 OSC respons vel por implementar as funcionalidades do Aerne de um RTOS Este ultimo m dulo constitu do internamente por um pipeline que permite gerir todas as atividades relacionadas com gest o e dete o de hazard um banco de registos de configura o
85. mas poder n o ser t o eficiente devido as perdas de tempo na comunica o com o processador Outro aspeto encontrado que as migra es apresentadas s o exemplos de m dulos completos e n o apenas de funcionalidades isto acontece porque se torna mais vantajoso passar para hardware m dulos mais completos do que parcelas ou fun es implementas em software Tamb m de salientar que em todas as implementa es referidas anteriormente o hardware acoplado consiste numa implementa o personalizada das funcionalidades de um RTOS gen rico e n o prov m da migra o direta de fun es ou estruturas de um RTOS comercial onde poder se escolher a execu o em hardware ou em software como ser o caso desta disserta o 19 20 Capitulo 3 Tecnologias de suporte migra o Ap s efetuar a an lise geral do projeto e decidir quais o RTOS e o processador a utilizar ser o apresentadas neste cap tulo as caracteristicas e a constitui o destes de uma forma aprofundada para se perceber o seu funcionamento 3 1 O sistema operativo de tempo real eCos O eCos um sistema operativo de tempo real open source que possui a caracteristica de ser altamente parametriz vel Esta filosofia de implementa o permite lhe reduzir o seu tamanho quando um sistema embebido possui limita es nos seus recursos por exemplo a mem ria Sendo assim para sistemas embebidos minimalistas o eCos pode ser compilado sem
86. mpute Unit CLBs Configurable Logic Blocks CPU Central Processing Unit DBus Data Bus DMA Direct Memory Access DSR Deferred Service Routine ECOS Embedded Configurable Operating System E S Entradas e sa das FIFO First In First Out FPGA Field Programmable Gate Array Floating Point Unit FSM Finite State Machine GDB GNU debugger GPS Global Positioning System GUI Graphical User Interface HAL Hardware Abstraction Layer HDL Hardware Description Languages 1 0 Input Output xili 12C Inter Integrated Circuit IDE Integrated Development Environment IP core Intellectual Property core ISA Instruction Set Architecture JTAG Joint Test Access Group LED Light Emitting Diode LUTs Lookup Tables MAC unit Multiply and Accumulate unit MIPS Microprocessor without Interlocked Pipeline Stage MMU Memory Management Unit PCP Priority Ceiling Protocol PIP Priority Inheritance Protocol RAM Random Access Memory RISC Reduced Instruction Set Computer RTOS Real Time Operating System RTU Real Time Unit RTL Register Transfer Level SOC System on chip SPARC Scalable Processor ARChitecture SPI Serial Peripheral Interface Bus UART Universal Asynchronous Receiver Transmitter TLB Translation Look aside Table VHDL Very high speed integrated circuit Hardware Description Languages VSR Vector Service Routine xiv Indice de Figuras
87. ms mutex semaphore are examples of features to implement The processor used to integrate the new features should have a 32 bit RISC architecture This should be studied enough to understand its mode of execution as well as determine which modules it has and how they are interlinked Taking into account the relationship between the three chosen metrics performance logic unit used and energy consumption for the development of the project proving the viability of the migration of one or several features to the processor gateware in order to make the embedded system dedicated to some applications will be attempted Vii viii Indice ACFACIO CIM CIOS Eras see EE RE ML e Sa DM LU Ree hoe EE iii RESTO sa cca Lis eu cut been shed aca A on e Stent loud uk sion A orci eta V vii Capitulo 1 IMMOGUGAO eR tea ie dede ions 1 11 ENQUadFamento steer tasers otc o rico teet eere etr reet ert reete muda iq cei nd 1 1 25 s cm Re Sc 2 1 3 Organizacao da Disserta o sutis anais ete eene des 3 Capitulo 2 Caraci riza o dO Projeto enni eene RE re RENS 5 24 CONGICOESICO PIO CLO tenete tte erteilt tete da 5 2 1 1 ReStricoes do tete e etn tte mt ttes 5 2 1 2 Requisitos do projelo a ette neue ete et 6 2 2 Sele o do ambiente de
88. nfiguration Platform Cable USB 6 MHz usb hs Figura 70 iMPACT Programa o da placa Assim que terminar o projeto estar a executar na placa caso se queira efetuar o reset do processador clicar no bot o CPU Reset Figura 71 JTAG switch SW3 escolha de Bot o Reset da Placa opcionalidade Bot o Reset do Processador sintetizado Porta s rie UART Interruptor Alimenta o Figura 71 Esquema de liga o a placa XC5VLX110T 115
89. nstru o para ativar context_switch em 74 Diagrama de estado para troca entre 74 RIEA GLO as ae ce a E Ruane aide Serre nan els 77 xvi Figura 46 Figura 47 Figura 48 Figura 49 Figura 50 Figura 51 Figura 52 Figura 53 Figura 54 Figura 55 Figura 56 Figura 57 Figura 58 Figura 59 Figura 60 Figura 61 Figura 62 Figura 63 Figura 64 Figura 65 Figura 66 Figura 67 Figura 68 Figura 69 ELES AREA tct oet do tata Coste ren 78 SE SEE mo EE 79 C digo principal usado para efetuar as 82 Execu o da fun o context switch pelo 83 Ocorr ncia de interrup o quando Hrtos est em 85 Tempo de execu o das fun es load context e context switch com e sem Hrtos 86 Tempo de finaliza o do programa usando o escalonador Bitmap e Miqueue 86 Unidades l gicas totais utilizada por OR1200 com e sem 8 Ocupa o percentual de OR1200 com e sem Hrtos na placa 8 Distribui o por m dulos das unidades l gicas utilizadas por
90. ntar que cada vez que a nova instru o guardada na unidade de etch a unidade Gen PC j gerou o novo valor do Program Counter que fornecer sempre o endere o certo da pr xima instru o A unidade de controlo efetua a descodifica o da instru o dependendo desta a sua sa da pode fornecer unidade Operand 43 Mux os registos de prop sito geral GPR que ser o usados devolvendo os valores respetivo unidade respons vel por efetuar a execu o da instru o A Unidade L gica Aritm tica ALU respons vel por efetuar as opera es logicas e aritm ticas recebendo os operando A e B com o valor dos registos e ou o valores imediatos e efetua a opera o certa dependendo do valor devolvido por ALU OP A sua sa da devolve o resultado da opera o e tamb m caso seja necess rio sinais de controlo como Cary e Flag entre outros LOAD STORE a unidade respons vel pelos acessos mem ria efetuando leituras ou escritas a memoria de dados A unidade Write Back MUX composta por multiplexers e respons vel por devolver aos registos os valores ap s opera o A MAC unit Multiply And aCcumulate em conjunto com a FPU Floating Point Unit s o DSPs Esta primeira respons vel por efetuar opera es de multiplica o e em segundo lugar por efetuar opera es com virgula flutuante SPRs Special Purpose Register em conjunto com o m dulo Configure Unit s o respons veis por efetuar leituras
91. nterrupt Controller PIC 51 Diagrama de blocos Liga es dos arbiters entre slave e 77 51 53 Diagrama de blocos memoria externa de dados e de 54 Diagrama de blocos m dulo UART do OR1200 17 55 Exemplifica o da altera o das bibliotecas do 60 FUNCIONAM do FIOS E sob Pe ten da ba 61 Esquema da unidade Hrtos Decode ssssssssssee mes 62 Diagrama de estados do sinal insN rtos FS eee 63 Esquema de liga o entre Aegister Filee HrtoS eee 64 Esquema de liga o entre Hrtos e a memoria de dados 66 Esquema de liga o entre Hrtos e os registos especiais 67 C digo da fun o hal_thread_load_context em 69 Instru o para ativar a fun o load_context em hardware 70 Diagrama de estados da fun o load context em hardware 71 C digo da fun o hal_thread_context_switch em 50 8 72 Diagrama de estados da fun o context_switch em hardware 73 I
92. ntual das unidades totais de Hrtos pelos seus diversos m dulos Figura 56 Restantes m dulos internos de Hrtos Hrtos Wb interface E Hrtos switch context B Hrtos Load context 600 Total 480 Total 212 Unidades usadas Slice Flip Flops Block RAMS Shift register amp ram Figura 55 Distribui o por m dulos das unidades l gicas utilizadas por Hrtos B Hrtos Load context E Hrtos switch context Hrtos Wb interface Restantes m dulos internos de Hrtos Figura 56 Distribuicao percentual das unidades l gicas utilizadas pelos m dulos de Hrtos 88 5 2 4 Resultados da energia dissipada Para calcular a energia dissipada foi necess rio determinar a pot ncia consumida por parte do 0R1200 com e sem Hrtos Figura 57 0r1200 standard E Or1200 Hrtos e interface E S o c o n Pot ncia estatica Pot ncia din mica consumida mW consumida mW consumida mW Figura 57 Pot ncia consumida por OR1200 com e sem Hrtos Com estes dados e os dados obtidos em 5 2 2 efetuou se o calculo da energia dissipada para A Simula o com o escalonador Bitmap B Simula o com o escalonador Mlqueue 0r1200 standard 1200 e interface Diferen a Energia mJ Energia Total Dissipada mJ Energia Total Dissipada mJ simula o A simula o Figura 58 Energia dissipada total por OR1200 com e sem Hrtos 89 5 3
93. o de salientar que em qualquer altura o utilizador pode reescrever as fun es de inicializa o do kernel apresentadas na Figura 17 pois estas s o fornecidas como APIs que podem ser usadas na codifica o de um programa No entanto estas s ser o executadas no momento de inicializa o do Kernel 37 3 1 3 Gest o das Exce es e Interrup es Uma exce o um evento interno que ocorre durante a execu o de uma thread que provoca um dist rbio no decorrer normal das instru es Caso as exce es n o sejam processadas atempadamente durante a execu o do programa falhas graves podem acontecer por isso que a gest o das exce es importante porque aumentam a robustez do sistema Estas exce es podem ocorrer no sistema devido a um erro no acesso a mem ria ou at por um erro causado por uma opera o de divis o por zero HAL do eCos utiliza uma tabela de Vector Service Routine VSR para todas as exce es do sistema A tabela VSR consiste num conjunto de apontadores que apontam para as sec es de c digo respetivo Sendo assim quando ocorre uma exce o o processador verifica na tabela VSR qual foi ativa para executar a sua respetiva rotina A tabela VSR localiza se num local fixo da mem ria e o HAL do eCos assegura a sua inicializa o ao efetuar startup A Tabela 4 representa a exce es por defeito e os respetivos endere os na mem ria Tabela 4 Tabela VSR do eCos para o Op
94. o dado for inferior ao tempo necess rio para efetuar a comuta o de contexto h grandes probabilidades de sobrecarregar o CPU e de afetar o seu desempenho Cada RTOS apresentado consegue gerir mais de 32 threads sendo que cada um deles tem a possibilidade de 10 variar a prioridade dessas de O at 32 Mais concretamente chibiOS RT consegue ir at ao nivel de prioridade 128 enquanto o FreeRTOS permite ao utilizador inserir o numero de treads que quiser assim como a escala de n veis de prioridade que o utilizador desejar de salientar que o eCos e o FreeRTOS permitem threads com o mesmo nivel de prioridade enquanto o chibiOS RT n o A n vel de gest o da mem ria os RTOS permitem alocar a mem ria virtualmente e de uma forma din mica Tamb m possuem mecanismos de sincroniza o entre tarefas como mutexes e semaphores para efetuar acessos protegidos a mem ria ou a determinadas fun es Efetuando uma an lise cr tica do que foi analisado todos os tr s RTOS apresentados s o bons candidatos para a implementa o deste projeto no entanto s com a an lise efetuada no pr ximo subcap tulo que se poder chegar a uma conclus o sobre qual entre o FreeRTOS o ChibiOS RT e o eCos se deve escolher 2 2 2 An lise e compara o dos processadores Com base nos RTOS escolhido realizado agora a escolha do processador para qual j existe port que servir de base para o resto do projeto Com base n
95. o e Implementac o sss 57 4 Migra o de fun es do RTOS para 57 4 1 1 Pr requisitos de Soffware essent 58 21 2 RIOS IAMOS tS E RP tns 60 4 1 3 Fun es a migrar para MardWare ereta eee tree era eee er een 68 2 2 Implementa o a Some eee ud be hee ated al el 75 Capitulo 5 Resultados Experimentais essere 81 5 1 Metodologias de Teste errar ceara eee nnn 81 Quer 2 RESON AGUS caca isa mira ie a rimasti a a a sd 83 5 2 1 Testede funcionaMEnNntO se ch 83 5 2 2 de desempenho temporal s sss 86 5 2 3 Resultados das unidades l gicas usadas eterna 87 5 2 4 Resultados da energia dissipada sss 89 Seo An lise dos fara teta le pt ted etes ae 90 Capitulo 6 e Ree E 93 O dy cuui puis 93 LO a 94 RD M cM O Lt 97 Bibliografia eee Gat een e eset un 99 ANEXOS me M 101 xi xii Lista de Abreviaturas Siglas ABEL Advanced Boolean Expression Language AMBA Advanced Microcontroller Bus Architecture API Application Programming Interface ASIC Application Specific Integrated Circuit CCU Custom Co
96. ofile com autoriza o de super utilizador no final do ficheiro acrescentar seguinte linha gt export PATH opt openrisc bin PATH Finalmente ter o a newlib toolchain com as suas ferramentas dispon veis a partir do terminal em qualquer altura 102 Anexo Il Obten o configura o e compila o de uma aplica o com as bibliotecas do eCos Assim que a foo chain esteja instalada poder se efetuar o download do reposit rio do eCos e das suas ferramentas No terminal usando o comando abaixo efetuar se o download do reposit rio e sn http opencores org ocsvn openrisc openrisc trunk rtos ecos 3 0 Quando o download terminar necess rio obter duas ferramentas que permitir o criar e editar as op es do eCos para a arquitetura de processador desejada Estas ferramentas s o gt ecosconfig gt configtool A primeira ferramenta ecosconfig permitir criar e editar as op es do eCos atrav s da linha de comandos Para utilizar ecosconfig necess rio cri la para tal dirigir se ao reposit rio do eCos efetuar a configura o e a compila o da ferramenta e cd localiza o da pasta ecos 3 0 e configure prefix localiza o desejada e Make e Make install A segunda ferramenta Configtool uma GUI que permitir ajustar as op es de configura es poss veis de uma forma simples e intuitiva Para obter a ferramenta efetuar e SWgethttp
97. omo efetuada a liga o entre um m dulo s ave e o master Neste barramento existem catorze sinais diferentes estes s o e RST e CLK s o os sinais de clock e reset de 1 bit fornecem ao barramento o sinal de rel gio necess rio para a transfer ncia de dados assim como o sinal de reset quando acontece um erro na transmiss o dos dados O sinal de c ock fornecido pela unidade que gera o c ock para o processador e afins e O fornece o endere o de sa da dado pelo master ao slave este sinal tem 32 bit e DAT Ie DAT O s o sinais de 32 bit para o OR1200 para os dados de entrada e sa da e WE este sinal de 1 bit fornecido pelo master a um s ave para informar que se trata de uma opera o de escrita 1 ou leitura 0 46 SEL O este sinal 4 bit fornecido pelo master para informar quais os bytes word ser o usados para troca isto num dado de 32 bit SEL O define se s o para ler os 4 bytes SEL_O 061111 ou por exemplo somente o primeiro SEL O 060001 SIB O e STB I este sinal de 1 bit indica que est a decorrer uma transfer ncia v lida no caso do s ave quer dizer que ele foi selecionado e s ele responder pelo barramento 1 este sinal fornece ao master a confirma o que um dado foi bem recebido ou enviado e que o ciclo terminou RST I RST_I CLK 1 ADR O ADR_I DAT_I DAT_I DAT_O DAT O WE O WE I SEL O SEL I STB O STB ACK ACK O cvc o
98. os Isto acontece tornando Hrtos um master priorit rio como se pode ver na Figura 36 Hrtos tornar se o master O absoluto para acessos aos dados WBE Master H Signals Signals Signals D MMU Cache DATA H T MEM RIA EXTERNA Master 0 Signals DATA Figura 36 Esquema de liga o entre Hrtos e a mem ria de dados 66 4 1 2 5 Liga o e acesso do Hrtos aos registos especiais O acesso aos registos de prop sito especial e ao registo de supervis o ser feitos recorrendo adi o de novas entradas e sa das ao m dulo or1200 sprs As novas entradas ser o e hrtos_spr_addr o endere o do registo a selecionar para ler ou escrever 32bits e hrtos spr read um bit de sinaliza o para efetuar uma leitura do registo e hrtos spr write um bit de sinaliza o para efetuar escrita no registo e hrtos spr dat o dado inserido por Hrtos no registo selecionado 32bits E a nica sa da ser e hrtos spr dat o dado devolvido pelo registo previamente selecionado 32bits Para estas entradas e sa das terem efeito necess rio alterar a multiplexagem interna dos sinais deste m dulo Os sinais internos a multiplexar s o spr we spr_addr spr dat o dat i e to wbmux representados na Figura 37 a imp TO o m hrtos spr read M OR1200 sprs Internal hrtos spr read hrtos spr write operations Multiplexer hrtos spr dat i hrtos spr wri
99. otecas do eCos 4 1 2 O m dulo hardware RTOS Hrtos O m dulo Hrtos refere se implementa o por ardware do RTOS Nele estar o contidas todas as m quinas de estado e opera es que implementar o por Hardware as fun es migradas Al m das fun es este m dulo ter que ter uma liga o ighty coupled ao pipeline do processador e aos seus registos de prop sito geral assim como um m dulo de compatibilidade Wishbone para poder aceder ao barramento de dados Para al m dessas liga es o Hrtos dever possuir uma unidade pr pria de descodifica o das instru es 60 4 1 2 1 Funcionamento geral de Hrtos O m dulo Hrtos comportar se como uma unidade de coprocessamento no entanto esta nunca ser executada em simult neo com o processador visto que ambas partilhar o os registos de prop sito geral e o acesso a mem ria externa Sendo assim necess rio criar um sinal que bloqueie o pipeline do processador quando este est a tentar processar uma instru o que n o lhe destinada Este sinal gerado pela unidade de descodifica o das instru es interna ao Hrtos ver sec o 4 1 2 2 A Figura 32 exemplifica como funcionar o Hrtos Numa primeira fase o processador estar a executar instru es que passam pelo diversos est gios do seu pipeline verde a unidade de decode do CPU verificar que existe uma instru o ilegal e para criar uma exce o No entanto como a
100. ouu P EDT UN Um lt T lo 1 o 1 as u souy 3 o tcJo erep p souu fo Led usur pr 0 Le wep ds souu 0 1 072 jj souu o Le hep ads souy 0 L appe uds souy 0 cjo 9s qmp sony ldem eun o Lixa 0 sony EI VESTE o elmenep souy z o 85 amp sony s opmppe souu Do aa qp sou O LE ep souu sony c lo tc o ape souu ndo 002 20 o euppe souu 4 0021 Figura 47 RTL Hrtos 79 80 Capitulo 5 Resultados Experimentais Este capitulo demonstra quais foram as metodologias de teste aplicadas e as ferramentas usadas para a realiza o dos testes Ser o apresentados os resultados obtidos e para finalizar sera efetuada uma an lise a esses resultados 5 1 Metodologias de Teste Os testes para a verifica o do funcionamento de Hrtos foram realizados usando os benchmarks do MiBench esta suite de benchmarks open source e serve para medir e comparar a performance entre v rios sistemas Como dispositivo usou se a placa XC5VLX110T FF1136 da fam lia Virtexb em que o processador Or1200 estava sintetizado para funcionar com um clock de 66Mhz Foram usados dois benchmarks do Mibench o bitcnt e o stringsearch cada um realizado numa thread Para ambos os benchmarks correrem no mesmo execut vel foi necess rio criar um ficheiro c com a fun o cyg
101. rem implementadas em hardware O escalonador de tarefas e os mecanismos de sincronismo mutex semaphore s o exemplos de funcionalidades a implementar O processador que ser usado para receber as novas funcionalidades dever possuir uma arquitetura RISC com 32 bits de tamanho de instru es para uma implementa o mais acess vel e abrangente Este ser estudado o suficiente para entender o seu modo de execu o assim como determinar os m dulos que possui e como estes est o interligados Tendo em conta a rela o entre as tr s m tricas escolhidas desempenho temporal unidades l gicas usadas e consumo de energia para o desenvolvimento do projeto este trabalho demonstra a viabilidade da passagem de uma ou diversas dessas funcionalidades para hardware a fim de tornar o sistema embebido dedicado a certas aplica es vi Abstract Real Time Operating System Gateware Migration Environment Keywords Real Time Operating Systems RTOS Processors Design FPGA Gateware migration This thesis aims to migrate one or several features of a real time operating system to microprocessor gateware and analyze the feasibility of this approach by creating a reconfigurable and deterministic real time embedded system Towards this goal in depth study of a real time operating system will be performed in order to identify and extract its features to be implemented later in hardware The task scheduler and the synchronization mechanis
102. rsion A e priority inheritance protocol A primeira prote o contra a invers o de prioridade denomina se priority ceiling protocol PCP em que dada ao mutex um certo valor de prioridade e a read ganha essa prioridade enquanto possuir este mutex No entanto este mecanismo de prote o n o funciona por si s e o programador necessita de determinar quais e como atribuir as prioridades aos mutexes para evitar a invers o de prioridade A segunda prote o contra este efeito indesej vel B na Figura 16 denominada de priority inheritance protocol PIP O PIP funciona da seguinte forma quando uma thread de menor prioridade possui um mufex e uma thread de maior prioridade esteja a espera deste a read de menor prioridade herda o nivel de prioridade da thread que esta a espera e executa at libertar o mutex 35 3 1 2 22 Semaphore Um semaphore um mecanismo de sincroniza o que cont m uma contagem interna que indica se um recurso est bloqueado ou dispon vel Existem dois tipos de semaphore counting semaphore e binary semaphore Binary semaphore s o semelhantes aos counting semaphore no entanto a sua contagem apesar de ser incrementada nunca ultrapassa o valor de um valor Bin rio O ou 1 Sendo assim binary semaphores s possuem dois estados bloqueados ou desbloqueados Couting semaphores possuem v rios estados dependendo do seu valor inicial de contagem Ao criar um sempahore o contador
103. ru o _ lh 02 Figura 43 Instru o para ativar context_switch em hardware Como a FSM context_switch ter que ativar a FSM load context ser necess rio criar uma condi o que permite ativar o enable da fun o load_context ap s context_switch terminar Esta passar pela utiliza o de uma m quina de estados representada na Figura 44 Fsm ctxs finish Fsm lctx e Fsm Ictx finish Fsm hthread e Figura 44 Diagrama de estado para troca entre fun es 74 4 2 Implementa o Neste subcapitulo est o apresentados alguns esquem ticos da implementa o final resultante do gateware efetuado Estes esquem ticos foram obtidos atrav s da ferramenta RTL viewer presente no IDE da Xilinx ap s ter sintetizado o c digo de descri o de hardware desenvolvido Estes esquem ticos representam em gate eve os seguintes m dulos e Hrtos Figura 45 ilustra a composi o de Hrtos e a liga es entre os seus m dulos Estes m dulos internos s o a unidade de decode a unidade hthread e a interface com o barramento Wishbone e Hthread Figura 46 ilustra a composi o deste m dulo que agrupa os m todos presentes na classe hardware thread neste est o contidas as FSM das fun es load context e context switch e CPU com Hrtos Figura 47 ilustra as liga es entre CPU e o hardware RTOS desenvolvido no interior do processador Estas liga es entre est
104. s em seis cap tulos e organizados tal como de seguida apresentado No segundo capitulo inicialmente efetuada uma an lise do problema em rela o aos objetivos propostos Depois s o apresentadas as restri es do projeto seguido dos requisitos que este deve possuir Seguidamente discutido qual ser o sistema operativo de tempo real a utilizar assim como o respetivo processador Na parte final feita uma apresenta o de diversos exemplos e t cnicas de migra o de software para hardware efetuadas at ao momento na rea espec fica No terceiro cap tulo s o apresentadas as tecnologias utilizadas para efetuar as migra es isto RTOS escolhido e o respetivo processador assim como os restantes perif ricos que em conjunto formaram o sistema embebido base No quarto capitulo s o apresentadas as especifica es das migra es de funcionalidades assim como esta se encaixam no funcionamento do processador e respetivo RTOS h brido No final deste capitulo tamb m apresentada a implementa o final do sistema recorrendo a imagens No quinto cap tulo apresentado a metodologia dos testes efetuados seguidas dos resultados a n vel de funcionamento performance temporal unidades l gicas utilizadas e consumo de energia Para finalizar efetuada a an lise dos resultados obtidos O sexto e ltimo cap tulo apresenta as conclus es do projeto assim como as perspetivas futuras do trabalho descrito nesta di
105. sentada na Tabela 2 1 Com aux lio a ferramenta CygWin Tabela 2 dos RTOS sobre as suas capacidades FreeRTOS ChibiOS RT eCosTM KERNEL Multithreading SIM SIM SIM Est tico SIM SIM SIM ESCALONADOR Tipos Round Robin Round Robin Bitmap Mlqueue Preemptivo SIM SIM SIM THREADS Nivel Prioridades 0 32 0 128 0 32 N Max Threads 64 e Troca prioridades SIM SIM SIM MEM RIA Alocac o Din mica SIM SIM Gest o Mem ria Virtual SIM SIM SIM Mutex Semaphore SIM SIM SIM SIM SIM SIM Com base nesta compara o verificase que todos os RTOS t m a capacidade de efetuar multithreading isto conseguem executar diversas tarefas em simult neo Tamb m se pode afirmar que como possuem um kerne est tico todos eles ap s efetuar a compila o do seu c digo fonte n o podem adicionar novos m dulos sem efetuar a compila o novamente isto permite que o hemel destes RTOS seja mais especifico a arquitetura da plataforma processador escolhido A n vel de escalonadores pode se constatar que todos eles fornecem escalonadores preemptivos o que lhes permite parar a execu o de uma tarefa para executar outra com uma prioridade superior que esteja pronta para ser executada efetuando assim uma comuta o de contexto de salientar que todos t m um tipo de escalonador com timeslice este permite lhes dar uma por o de tempo de execu o a cada tarefa no entanto esta op o pode n o ser vantajosa pois se o temp
106. service routine table Figura 18 Gest o de uma exce o pelo eCos 12 39 As interrup es sao eventos assincronos externos que quando ocorrem provocam uma paragem da execu o do programa Quando ocorrem o processador efetua um salto para o endere o da ISR nterrupt Service Routine dado pela tabela VSR refere se a exce o external interrupt ap s descodificar qual a interrup o no conjunto de interrup es instaladas executa o c digo relativo a interrup o dada Um fen meno critico a ter em conta a lat ncia no atendimento da interrup o Este o tempo perdido entre a ocorr ncia da interrup o e o momento em que executada a sua ISR O eCos divide ent o a gest o da interrup o em duas partes em que a primeira feita pela ISR e a segunda pela DSR Deferred Service Routine Esta divis o permite reduzir para o m nimo a lat ncia da interrup o No entanto se se trata de uma interrup o que necessita apenas de um pequeno processamento este pode ser efetuado completamente na ISR A n vel de prioridades uma ISR tem prioridade absoluta sobre as DSRs assim como uma DSR tem prioridade absoluta sobre as threads Nas ISRs s o executadas as instru es com as interrup es e o escalonador desligados ora quando acontecem o processador somente se preocupa por processar a ISR Neste caso como o escalonador esta desligado nenhuma API de sincroniza o do Aerne pode ser utilizada pois estas efe
107. spec ficos ao escalonador Esta classe possui dois atributos run queue que a lista ligada de threads prontas a serem executadas e thread table que um apontador para a tabela onde est o registadas todas as threads por prioridade Por fim 30 subclasse Cyg Scheduler herda todos os atributos e m todos das duas classes anteriores fornecendo a abstra o da implementa o do escalonador perante todo o sistema operativo Figura 12 Diagrama de classes escalonador Bitmap 3 1 2 2 Gest o de threads Uma thread no contexto de sistemas operativos consiste numa linha ou encadeamento de execu o nica A Figura 13 ilustra como constituida a classe Cyg Thread que fornece a implementa o dos m todos e os atributos pr prios da read Thread herda atributos e m todos de duas classes bases que lhe dam a abstra o a nivel do hardware e do escalonador 31 Figura 13 Diagrama de classes thread s Cyg hardwareThread d a abstra o a Thread em rela o ao hardware fornecendo he os atributos e m todos necess rios para efetuar opera es a n vel do hardware relativas a thread Nestes atributos herdados constam os apontadores para a pilha da thread esta pilha disponibilizada pela aplica o e fornece um espa o reservado de mem ria para guardar vari veis locais A classe Cyg SchedThread uma subclasse que herda da classe base Cyg SchedThr
108. sserta o Capitulo 2 Caracterizacao do Projeto Neste Capitulo tendo em conta os objetivos propostos ser o abordados as restri es do projeto assim como os requisitos que este ter de cumprir Tamb m ser esclarecido tendo em conta essas duas premissas a escolha do RTOS e do respetivo processador para a realiza o do projeto Para finalizar ser o apresentados algumas t cnicas e exemplos de migra o de software para hardware que servir o de base para caracterizar o trabalho desta disserta o 2 1 Condi es do projeto Quando se est a planear um projeto ap s saber os objetivos a identifica o das restri es e os requisitos condi es impostos por um cliente permitem realizar um guia simples para uma boa implementa o Assim neste subcapitulo ser o apresentados as condi es necess rias para a realiza o deste projeto assim como as limita es restri es iniciais ao desenvolvimento deste 2 1 1 Restri es do projeto Tendo em conta os objetivos e a disponibilidade de recursos o projeto a desenvolver ter as seguintes restri es e O processador que ir ser usado para implementar as novas funcionalidades dever ser de licen a aberta possuir uma vers o numa linguagem de descri o de hardware HDL o Verilog e possuir um formato de instru es com tamanho de 32bit e O sistema operativo que ir ser usado dever ser reattime Em rela o disponibilidade do c digo fonte es
109. start o ponto de partida para a inicializa o do hardware no arranque do sistema A fun o hal default exceprion vsr chama a fun o hal exception handler que trata de efetuar a manipula o da exce o A fun o hal default interrupt vs faz o manejo das interrup es com o escalonador bloqueado Por fim a fun o hal interrupt stack call pending_DSRs faz o manejo de interrup es mais complexas ativas com o escalonador e as interrup es ativas segundo a sua prioridade Os ficheiros em C hal misc c e hal stubs c cont m as seguintes fun es M hal misc c Este ficheiro C cont m todas as fun es do HAL algumas destas est o implementadas outras efetuam o ca de fun es implementadas em assembly apresentadas nos ficheiros anteriores N openrisc stubs c Este ficheiro cont m todas a implementa o das APIs para o uso do debbuger gdb O ltimo ficheiro openrisc ld um inker script para a arquitetura OpenRISC para definir o local da VSR Vector Service Routine 26 3 1 1 2 Inicializa o do HAL A inicializa o do hardware abstraction layer no arranque do sistema passa por v rias etapas pois todo o hardware preparado nesta fase para ser utilizado posteriormente A Figura 10 representa as diversas etapas da inicializa o do HAL O O reset vector 0 3 O 7 OD mom _ O hal enable caches O setupint
110. te Figura 37 Esquema de liga o entre Hrtos e os registos especiais 67 4 1 3 Fun es a migrar para hardware As fun es a migrar para Hardware ser o os m todos das classes scheduler Figura 12 thread hardware thread scheduler thread Figura 13 e thread queue Figura 14 Estas fun es ser o implementadas recorrendo a m quinas de estados e estar o inseridas no m dulo ao qual pertencem por exemplo um m todo da classe hardware thread pertencer ao m dulo HTHREAD no interior de Hrtos Agora que o encapsulamento com Hrtos est definido as sec es seguintes explicar o como se dever migrar determinadas fun es 4 1 3 1 Migra o da fun o Load Context A fun o hal thread load context tamb m chamada de init context um m todo da classe hardware thread Esta efetua o carregamento dos dados da thread a executar para os registos de prop sito geral e para os registos especiais vindos da mem ria de dados Esta fun o pode ser chamada a executar em dois momentos distintos possuindo deste modo as duas nomenclaturas que lhe s o concedidas e init context quando a fun o iniciada ap s o escalonador ter determinado qual a primeira thread a ser executada inicio de contexto e load context quando se est num ponto de escalonamento e ocorrer uma comuta o de contexto esta fun o chamada por context switch para e
111. te ter de ser de licen a aberta O RTOS dever possuir ferramentas de suporte e desenvolvimento para o processador escolhido isto dever existir um port do RTOS para o processador que dever incluir ferramentas como compiladores assemblador e inker que construir o as bibliotecas adequadas para o processador escolhido O n mero de tarefas suportadas pelo RTOS dever ser superior a duas para efeitos de multithreading 2 1 2 Requisitos do projeto A nivel de requisitos do projeto estes dividem se em dois grupos os requisitos funcionais os requisitos nao funcionais Os requisitos funcionais sao os requisitos relacionados com as a es que um sistema dever ser capaz de executar assim como o comportamento das entradas e sa das que este apresentar Assim ao n vel da aplica o as funcionalidades migradas para hardware dever o possuir os mesmos comportamentos do que a funcionalidade original do RTOS Por exemplo se a fun o tinha que ativar um LED est ter que continuar a faz lo independentemente de estar implementada em ardware ou em software O sistema embebido final dever possuir uma ferramenta de configura o onde ser poss vel escolher que funcionalidades migrar nenhuma ou diversas pois sendo um dos objetivos tornar o sistema embebido reconfigur vel necess rio que possua esta ferramenta de modela o A n vel de interface com utilizador dependendo do programa o sistema tera que ter bot
112. temporal diminuindo para a metade overhead na comutacao de contexto Esta diminui o de tempo deve se ao retiro de a es sup rfluas que o processador realiza que Hrtos n o necessita de efetuar Este aumento mais not vel quando executado um programa com m ltiplas threads onde o escalonador efetua m ltiplas preemp es e ou Os resultados das unidades l gicas usadas divulgam um aumento de 2 de ocupa o de rea na placa no entanto a maior parte deste acr scimo deve se adi o dos interfaces com os m dulos existentes e n o diretamente com as fun es migradas prevendo se um uso m nimo de 5 para as pr ximas migra es n vel de dissipa o de energia regista se um aumento que n o chega a ser preocupante Para uma implementa o onde existe muito ou pouco processamento por parte de Hrtos a dissipa o de energia est na ordem dos 50 mJ Maior parte deste valor deve se a correntes de fuga determinadas a partir da pot ncia est tica e n o propriamente da utiliza o comuta o das 5 determinada com base na pot ncia din mica Com base no trabalho efetuado e nos resultados obtidos pode se afirmar que o desempenho do SOC melhorou para um aumento m nimo de pot ncia e unidades l gicas consumidas tornando este tipo de implementa o vi vel para sistemas mu tithreading 6 2 Trabalho Futuro O projeto atual encontra se a funcionar cumprindo os requisitos propostos no entan
113. to este pode ser melhorado tornando o mais completo e aumentando o seu desempenho sendo proposto como trabalho futuro os seguintes pontos e Migrar mais funcionalidades isto efetuar mais fun es em hardware de modo a poder ter um maior grau de compara o entre as m tricas propostas e Efetuar uma interface com as caches sendo necess rio primeiro corrigir erros no suporte a este Hardware nas bibliotecas do eCos e Ligar Hrtos ao controlador de interrup es de modo a conseguir remover a lat ncia j existente e originada por Hrtos 94 e Adicionar as macros de configura o GUI Configtool de modo a selecionar ou desseleccionar as fun es operadas por Hrtos recorrendo a esta ferramenta simples e f cil de utilizar por parte do utilizador final 95 96 Refer ncias 1 Arnaldo S R Oliveira Embedded SMT Processor and its RTOS hardware acelerator EEE TRANSACTIONS ON INDUSTRIAL ELECTRONICS vol 58 no 3 pp 890 904 Marco 2011 ISBN 0278 0046 2 Nichil Gupta A hardware Scheduler for Real Time Multiprocessor System on Chip 23rd International Conference on VLSI Design 264 269 2010 ISBN 978 1 4244 5541 6 3 Susanna Nordstorm Application Specific Real Time Microkernel in hardware 74th EEE NPSS Real Time Conference pp 333 336 2005 ISBN 7803 9183 7 4 Terance Wijesenghe Design and Implementation of a Multithreaded Softcore Processor with Ti
114. to um pedido a cache se esta tiver o dado cache hit o CPU s precisa de ler o dado que est guardado na cache Caso contr rio cache miss o CPU tem que efetuar o pedido a mem ria externa que mais lenta Deste modo quanto mais solicita es puderem ser servidas pelas caches mais r pido ser o desempenho geral do sistema A cache de instru es e a cache de dados no 0R1200 est o estritamente ligadas s MMUs correspondentes Ambas s o directmapped isto para uma certa posi o da mem ria principal esta s poder corresponder numa entrada da cache pois estas n o possuem uma pol tica de substitui o que lhes permita associar v rias posi es da cache para a mesma posi o da mem ria principal como acontece nas caches V way associative ou fully associative 3 2 3 O barramento WISHBONE e sua interface O barramento Wishbone 15 um barramento de dados destinado a efetuar uma liga o estandardizada entre diferentes IP cores podendo nesta arquitetura efetuar liga es entre o 0R1200 mem ria externa m dulos UART e outros perif ricos modulares Para comunicar com este barramento o 0R1200 possui dois m dulos que efetuam a tradu o do barramento de dados e de instru es internos para o barramento standard Wishbone denominados de wb_biu No 0R1200 o barramento Wishbone funciona como multimaster e multi salve existindo um barramento para dados e outro para instru es A Figura 23 representa c
115. tuam intera es com o escalonador As DSRs s o utilizadas quando o processamento da interrup o mais complexo neste caso s o executadas imediatamente ap s a ISR ter finalizado a execu o Estas DSRs s o executadas com as interrup es e o escalonador ativo o que pode levar com que a DSR n o seja completada de uma forma continua Como as interrup es est o ativas uma interrup o de maior grau de prioridade pode ocorrer interrompendo a execu o da DSR e lan ar a respetiva ISR Como a DSR executada com o escalonador ativo esta pode utilizar mecanismos de sincroniza o como por exemplo semaphore para sinalizar a uma fread que uma interrup o ocorreu Mas esta particularidade tamb m pode ser um inconveniente pois caso uma thread tenha bloqueado o escalonador com a fun o cyg sched lock antes de ocorrer a interrup o a DSR s ser executada ap s a read ter libertado o escalonador com a fun o cyg sched unlock Para exemplificar a gest o de uma interrup o a Figura 21 vem ilustrar o seu funcionamento seguido da sua descri o passo a passo 40 Application Level Kernel Level Hardware qo TES fOr OE 10 LL Thread Execution o VSR from External Ha rdw are Interrupt vector D eu Figura 19 Manipula o de uma interrup o no eCos 12 Execu o de uma read Ocorr ncia de uma interrup o externa O processador obt
116. um RTOS em software num sistema embebido que deve ser hard real time encontra dois problemas cr ticos o acr scimo de lat ncia na ocorr ncia de interrup o e o overhead da opera o de context switch O primeiro problema deve se ao tempo que o RTOS leva a executar o servi o a uma interrup o quando esta j foi ativada enquanto o segundo problema traduzido para instru es a realizar consome muito tempo til do processador Estes problemas somados penalizam o desempenho do sistema embebido De forma a minimizar estes efeitos desagrad veis projetistas t m investigado a migra o de v rios componentes b sicos de um RTOS para hardware 1 2 3 4 Estes componentes de hardware designados de intellectual Property IP cores podem ser acoplados ao processador de duas formas oosely coupled e tightly coupled A primeira abordagem permite a utiliza o de qualquer CPU visto que o IP core est ligado ao barramento externo do CPU por m n o garante que o sistema final seja completamente determin stico A outra abordagem que consiste em acoplar o IP core ao processador com um barramento especial permite tornar o sistema mais determin stico no entanto torna a sua migra o para outros processadores mais complexa e consequentemente mais cara Com a apari o das Field Programmable Gate Array FPGA e das linguagens de descri o de hardware HDL o desenvolvimento destes IP core tornou se muito mais f cil e r pido
117. un o B o m dulo em hardware respons vel por efetuar essa opera o ter que chamar a fun o B no devido momento caso esta n o esteja implementada em Aardware Caso a fun o B tamb m esteja implementada em hardware o m dulo de hardware da fun o A ativar o m dulo B em hardware e Qualquer devolu o de argumentos por parte de uma fun o em software ter que ser cumprido se esta for migrada para hardware assim como o output originado durante a opera o da fun o ter que corresponder ao output originado pela fun o em software Agora que foram especificados os tr s conceitos para migrar fun es para hardware os subcapitulos seguintes especificam quais foram os pr requisitos a n vel do software seguido da modela o do RTOS em ardware Hrtos 4 1 1 Pr requisitos de Software Para que a migra o seja compat vel com o resto do RTOS algumas opera es importantes t m que ser efetuadas primeira o acr scimo de novas instru es ao assembler para este traduzir instru es para c digo m quina pertencentes ao m dulo em ardware A segunda passa por alterar as fun es a migrar nas bibliotecas do eCos usando o assembler inline caso seja necess rio 4 1 1 1 Adi o de novas instru es As novas instru es acrescentar ao ISA do processador est o apresentadas na Tabela 5 Estas instru es possuem um formato do tipo le X imm em que a mnem nica le
118. usada no projeto uma primitiva da XILINX que n o aceita os dois formatos anteriormente mencionados bin e vmem necess rio traduzir o ficheiro vmem para coe Para tal usa se a ferramenta vmem2coe desenvolvida na realiza o deste projeto cujo c digo esta presente na Figura 63 include lt stdio h gt Ficheiro resultante coe int main int argc char argv 1 memory initialization radix 16 t 2 memory initialization vector FILE vmem v FILE int pos a b c d 0 E vmem fopen argv rb if vmem NULL printf Error opening bin file return 2 coe fopen argv 2 wt if coe printf Error opening coe file return 2 fprintf coe memory_initialization_radix 16 n fprintf coe memory_initialization_vector n while fscanf vmem X XX X X X n amp pos amp a amp b amp c amp d EOF fprintf coe X n X n X n X n b c d fprintf coe 0 fclose vmem fclose coe return Figura 63 Codigo da ferramenta vmem2coe 111 Anexo V Passagem do projeto para a placa XC5VLX110T Ap s abrir e sintetizar o projeto necess rio mapear os pinos de entrada e sa da na placa Para tal usa se a ferramenta PlanAhead Esta encontra se no separador Tools PlanAhead do ISE da Xilinx como est apresentado na Figura 64 r ur Project Navigator 0 61xd
119. usadas LUTs Flip Flop e Block ram e Sintetiza o na placa XC5VLX110T usando o iMPACT para efetuar um teste em tempo real do correto funcionamento das fun es migradas ver Anexo V Estas tr s ferramentas iMPACT ISim e XPower Analyser fazem parte do conjunto do ISE da Xilinx 82 5 2 Testes Resultados Os testes realizados foram efetuados com a comparacao entre processador com funcdes do eCos standard e com fun es realizadas em ardware por Hrtos Estes testes e resultados est o divididos em teste de funcionamento teste de performance temporal resultados das unidades l gicas consumidas e energia dissipada 5 2 1 Teste de funcionamento Os testes de funcionamento serviram para verificar se as funcionalidades implementadas em hardware funcionam e se o output originado era semelhante ao output das fun es originais A Figura 49 mostra o funcionamento de Hrtos no momento de efetuar um context switch 399 275 000ns 399 276 500ns 399 271 500ns O 1400 ll id freeze mw 1 1 1 L end LEEREN Bis Up lax fsm end Figura 49 Execu o da fun o context_switch pelo Hrtos O output originado pela fun o Load_context e pela fun o context_switch com e sem Hrtos num determinado momento em que finalizou a sua execu o est representado na Tabela 7
120. www ecoscentric com snapshots coniigtoo 100305 bz e bunzip contigtool 100305 bz e chmod u x contigtool 100305 e n s contigtool 100305 usr local Dbin Configtool Agora que o packages do eCos e suas ferramentas est o disponiveis criar se o projeto para a arquitetura OpenRISC tal usando o ecosconfig realizar e ecosconfig new orpsoc Este ultimo comando criar um ficheiro com o nome ecos ecc Abrir o ficheiro usando Configtool da seguinte forma 103 e configtool ecos ecc Abrir se uma janela como apresentado na Figura 59 onde poder efetuar se as sele es das op es desejadas ecos eCos Configuration Tool E3pt _ ty 4 326PM ubuntu il nau e Y EN Configuration Property Value Global build option URL ref kernel overview htmlitKERNEL OVERVIEW SQ t eCos HAL current File home ubuntu eCOS tool repository work eco D i O sub system current Macro CYGSEM KERNEL SCHED BITMAP Enabled True Infrastructure current Ea Requires CYGPKG KERNEL SMP SUPPORT E DefaultValue 0 Implements KERNEL SCHEDULER 45 eCos kernel current gt Kernel interrupt gt M Exception handlii Y Kernel scheduler The bitmap scheduler supports multiple priority levels but only one thread can exist at each priority level This means that Multi level que scheduling decisions are very simple and hence the scheduler is e efficient Preemption between pr
121. xecu o de uma tfread No entanto h que ter em aten o que este pode ser impedido de efetuar um ponto de escalonamento sendo bloqueado por uma interrup o ou at mesmo por uma thread com a fun o scheduler lock Quando um ponto de escalonamento surge efetuada uma comuta o de contexto As comuta es de contexto s o eventos em que parada a execu o de uma tarefa e iniciada a execu o de outra tarefa Quando tal acontece o estado do CPU e a informa o sobre reas de mem ria atribu das thread que estava a executar s o guardados e as informa es relativa a thread pronta a ser executada s o carregadas Ora no momento de troca de contexto o CPU nao est a executar nenhum c digo relativo aplica o surgindo aqui um overhead Sendo assim na hora de escolher o escalonador necess rio ter em mente as necessidades da aplica o e o poss vel overhead da comuta o de contexto que pode surgir O eCos fornece dois tipos de escalonadores o Multilevel queue e o Bitmap sendo que a escolha de um s pode ser feita em detrimento de outro O escalonador Multilevel queue permite a execu o de m ltiplas threads com a mesma prioridade As prioridades v o de O e podem chegar dependendo da configura o at 31 sendo que a com o menor n mero tem maior prioridade Este escalonador permite efetuar preemption isto se o escalonador o achar necess
Download Pdf Manuals
Related Search
Related Contents
Altinex MT106-100 Scanner User Manual Crème Brûlée ou Crème Renversée NESTLÉ Docello™ Etui de 1,3 Mode d`emploi Here Mode d`emploi Graco 312226L User's Manual Conditions Générales d`Abonnement Location Macbook + Not for Reproduction Samsung MM-DG25 User Manual インテリア・バー(コンテンポラリタイプ) Copyright © All rights reserved.
Failed to retrieve file