EL68E Sistemas Embarcados Prof. Douglas RENAUX
|
|
- Thomas Jonathan Andrade de Sousa
- 7 Há anos
- Visualizações:
Transcrição
1 EL68E Sistemas Embarcados Prof. Douglas RENAUX
2 Arquitetura ARM Prof. Douglas RENAUX
3 ARM Histórico Ano Evento Desenvolvimento do primeiro RISC comercial na Acorn Computers Ltd (Cambridge UK) ARM = Acorn RISC Machine 1990 Fundação da ARM (Advanced RISC Machines Ltd.) 1995 ARM7TDMI Desenvolvimento do ARM8 em conjunto com a DEC (adquirida pela Intel que fez o StrongARM) 1997 ARM ARM ARM Cortex M3, R4, A Cortex A9 Multicore 2012 Arquitetura v8 32/64 bits (Cortex A50) 2014 Cortex M7 pipeline superescalar
4 Acorn BBC Micro 1981
5 Developer Type Release date Retail availability Introductory price Acorn Computers 8-bit home computer 1 December years 235 Model A, 335 Model B (in 1981) Discontinued Units sold Media 1994 over 1.5 million Cassette tape, floppy disc (optional), hard disc (rare), Laserdisc (BBC Domesday Project) Operating system Power CPU Acorn MOS 50 W 2 MHz MOS Technology 6502/6512 Storage capacity kb (DFS) kb (ADFS floppy discs) 20 MB (ADFS hard disc) Memory kb (Model A/B) kb (Model B+) 128 kb (Master) Display Plus kb ROM, expandable to 272 kb PAL/NTSC, UHF/composite/TTL RGB Graphics , 8 colours (various framebuffermodes) 78 75, 8 colours (Teletext) Sound Texas Instruments SN76489, 4 channels, mono TMS5220 speech synthesiser with phrase ROM (optional) Input Keyboard, twin analogue joysticks with fire buttons, lightpen Connectivity Printer parallel, RS-423 serial, user parallel,econet (optional), 1 MHz bus, Tube second processor interface
6 Acorn Archimedes
7 ARM Family ARM1 ARM Arch. ARM Core ARM1 First implementation ARMv2 ARM2 ARMv2 added the MUL (multiply) instruction 4 8 MHz 0.33 DMIPS/MHz ARM250 Integrated MEMC (MMU), Graphics and IO processor. ARMv2a added the SWP and SWPB (swap) instructions MHz ARM3 First integrated memory cache. 4 KB unified MHz 0.50 DMIPS/MHz ARM60 ARMv3 first to support 32-bit memory address space (previously 26-bit) MHz ARM600 As ARM60, cache and coprocessor bus (for FPA10 floating-point unit) MHz As ARM60, cache, no coprocessor bus MHz 0.65 DMIPS/MHz ARMv2a ARM6 Typical MHz ARMv1 ARM2 ARM3 Feature ARMv2a ARMv3 ARM610
8 ARM700 ARM7 ARM7TDMI ARM7EJ ARMv3 ARMv4T ARMv5TEJ 40 MHz ARM710 As ARM700, no coprocessor bus. 40 MHz ARM710a As ARM MHz 0.68 DMIPS/MHz ARM7TDMI(-S) 3-stage pipeline, Thumb MHz MHz ARM710T As ARM7TDMI, cache 8 KB unified, MMU MHz ARM720T As ARM7TDMI, cache 8 KB unified, MMU MHz ARM740T As ARM7TDMI, MPU ARM7EJ-S 5-stage pipeline, Thumb, Jazelle DBX, Enhanced DSP instructions
9 Pipeline Fonte: ARM
10 ARM Cortex
11 ARM Cortex
12 ARM Cortex
13 CortexM0[9] Microcontroller profile, most Thumb + some Thumb-2,[10] hardware multiply instruction (optional small), optional system timer, optional bit-banding memory Optional cache, no TCM, no MPU 0.84 DMIPS/MHz CortexM0+[11] Microcontroller profile, most Thumb + some Thumb-2,[10] hardware multiply instruction (optional small), optional system timer, optional bit-banding memory Optional cache, no TCM, optional MPU with 8 regions 0.93 DMIPS/MHz ARMv6-M CortexM1[12] CortexM Microcontroller profile, most Thumb + some Thumb-2,[10] hardware multiply instruction (optional small), OS option adds SVC / banked stack pointer, optional system timer, no bitbanding memory Optional cache, KB ITCM, KB DTCM, no MPU MHz,[13]( 0.8 DMIPS/M Hz FPGAdependent)[1 4] ARMv7-M ARMv7E-M ARM Family ARM Architecture CortexM3[15] Microcontroller profile, Thumb / Thumb-2, hardware multiply and divide instructions, optional bit-banding memory Optional cache, no TCM, optional MPU with 8 regions 1.25 DMIPS/MHz CortexM4[16] Microcontroller profile, Thumb / Thumb-2 / DSP / optional VFPv4-SP single-precision FPU, hardware multiply and divide instructions, optional bit-banding memory Optional cache, no TCM, optional MPU with 8 regions 1.25 DMIPS/MHz (1.27 w/fpu) ARM Core Feature Cache (I/D), MMU Typical MHz
14 Thumb-2 Densidade de código melhora em até 35% em relação ao código ARM. Thumb-2: melhor de dois mundos independe de código ARM Fonte: ARM
15 Baixo Custo x 8 bits
16
17
18 ARMv8-A (64 bits)
19
20
21
22
23 Exynos 5250 com Cortex-A15 dual core
24
25 64-bits - AMD Hierofalcon will pack four to eight 64-bit ARM A57 cores clocked up to 2GHz. In addition to new ARM cores, the 28nm chips also feature 10Gbit Ethernet and PCI Express 3.0 on board, which means they should be a good fit for data centres. 21-Out-2013
26 NVIDEA: 192 GPU 4x A15 ou 2x A57 Tegra K1 Lançado em 2014
27 Tegra X1-2015
28 NVidia
29 Qualcomm's Growing 64-bit SoC Lineup Marketing Name Snapdragon 615 Snapdragon 610 Snapdragon 410 Internal Model Number MSM8939 MSM8936 MSM8916 Manufacturing Process 28nm LP 28nm LP 28nm LP CPU 8 x ARM Cortex A53 4 x ARM Cortex A53 4 x ARM Cortex A53 1.2GHz+ ISA 32/64-bit ARMv8 32/64-bit ARMv8 32/64-bit ARMv8 GPU Qualcomm Adreno 405 Qualcomm Adreno 405 Qualcomm Adreno 306 H.265 Decode Yes Yes No Memory Interface 1 x 64-bit LPDDR2/3 1 x 64-bit LPDDR2/3 1 x 64-bit LPDDR2/3 Integrated Modem 9x25 core, LTE Category 4, DCHSPA+, DS-DA 9x25 core, LTE Category 4, DCHSPA+, DS-DA 9x25 core, LTE Category 4, DCHSPA+, DS-DA Integrated WiFi Qualcomm VIVE ac Qualcomm VIVE ac Qualcomm VIVE ac emmc Interface
30
31 Fev 29, 2016 Raspberry Pi 3
32 Cortex-M7 (lançamento 24-Set-2014)
33
34
35
36
37 RISC x CISC
38 Histórico Computadores Computador = um dispositivo que computa (calcula, processa dados)
39 Gerações de Computadores Geração Descrição 0 Máquinas Mecânicas e Eletromecânicas solução de equações 1 40 s Válvula ENIAC, Zuse 2 50 s Transistores Universidade de Manchester IBM s Circuitos integrados SSI (portas lógicas) Apolo Guidance Computer (embarcado) IBM System/360 Digital VAX 4 70 s Microprocessador 5 20?? ótico, orgânico, computação quântica??? IA
40 Computação Quântica 5-Out-2015
41 Primeira Geração Colossus - UK ENIAC - USA
42 Segunda Geração PDP-1
43 Terceira Geração VAX 11/780
44 De que forma os projetistas de computadores (arquitetos) utilizaram o aumento significativo de transistores disponibilizados pela evolução rápida da tecnologia de fabricação de circuitos integrados?
45 CISC Complex Instruction Set Computer o conjunto de instruções inicialmente simples avanços tecnológicos (transistores, CIs) permitiram a manufatura de computadores com mais transistores a menor custo projetistas optaram por conjuntos de instruções cada vez mais complexos
46 CISC Como tornar as instruções mais complexas: aumentar o número de modos de endereçamento endereçamento indireto em memória [[R]] instruções com elevado grau semântico Exemplos do SBCD: Subtract Decimal with Extend SWAP: Swap register Words CMP2: Compare Register against Upper and Lower Bounds
47
48 Processor Transistor count Date of introductio n Manufactu rer Intel , Intel 10 µm 12 mm² Intel , Intel 10 µm 14 mm² Motorola , Motorola 3.5 μm 44 mm² Intel , Intel 1.5 µm 49 mm² Pentium 3,100, Intel 0.8 µm 294 mm² ARM [9] 1994 ARM 0.5 µm mm² ARM Cortex-A9 26,000,000[ 2007 ARM 65 nm 12] Process Area AMD K10 quadcore 2M L3 463,000,00 0[11] 2007 AMD 65 nm 283 mm² Quad-Core + GPU Core i7 1,400,000, Intel 22 nm 160 mm² Xbox One Main SoC 5,000,000, Microsoft/AMD 28 nm 363 mm²
49 Perguntas Qual é, afinal, o objetivo primordial do arquiteto / projetista de computadores? Dada uma tecnologia de fabricação e uma área de silício (custo), como fazer o melhor aproveitamento possível? Quais são as conseqüências de um conjunto de instruções complexo?
50 RISC x CISC RISC CISC Conjunto de instruções reduzido Conjunto de instruções extenso Instruções muito simples Instruções complexas Instruções de tamanho fixo Instruções de tamanho variável Decodificação simplificada (tabela) Decodificação complexa (microcódigo) Execução regular Cada instrução executa a sua maneira Instruções requerem o mesmo número de clocks para executar Grande variação no número de clocks por instrução Possibilita o uso de pipeline Extremamente difícil / impossível o uso de pipeline
51 Pipeline
52 Diferenciais da arquitetura ARM Cortex-M3
53 Instruções Condicionais A maioria das instruções ARM são condicionais só produzem efeito se os flags estiverem setados adequadamente BEQ Branch on Equal executa um salto caso o bit Z esteja setado As instruções condicionais precisam estar em um bloco IT exceto a instrução B (BRANCH = Salto) ex: ADDEQ executa uma soma caso o bit Z esteja setado
54 Pipeline Na arquitetura Cortex-M, as instruções são executadas de acordo com uma das seqüências abaixo: BUSCA DECODIFICAÇÃO EXECUÇÃO (OPERAÇÃO LÓG./ARIT.) BUSCA DECODIFICAÇÃO EXECUÇÃO (CÁLCULO ENDEREÇO) ACESSO À MEMÓRIA DE DADOS
55 Pipeline No Cortex-M3 o pipeline tem três estágios: BUSCA leitura da instrução da memória DECODIFICAÇÃO interpretação do código da instrução e geração dos sinais de controle EXECUÇÃO operação lógica/aritmética ou acesso a memória de dados * o estágio de EXECUÇÃO pode ocupar mais de um ciclo de clock
56
57
58 Arquitetura ARM Prof. Douglas RENAUX
59 Módulo 3 A arquitetura Cortex-M3
60 Cortex-M3 internal structure
61 Instruções do Cortex-M0
62
63
64
65 Arquitetura Cortex-M3 Visão geral da Arquitetura: Registradores Conjunto de instruções Acesso à Memória Interrupções
66 Módulo 4 Conjunto de Instruções Thumb-2
67 Arquitetura Cortex-M3 Cortex-M3 usa a versão ARMv7-M de arquitetura ARMv7-M Thumb2 Mix de instruções de 16 e 32 bits Não requer alinhamento na memória das instruções de 32 bits
68
69
70
71
72
73
74
75 infocenter.arm.com Developer Guides and Articles Software Development
76 Formato das Instruções Log/Arit Três operandos explícitos (Rd,Op1,Op2) ADD R0,R1,R2 R0 := R1 + R2 Dois operandos e um implícito (Rd,Op2) ADDS R0,R5 R0 := R0 + R5 Dois operandos (Op1,Op2) CMP R8,R9
77 1 - Lógicas e Aritméticas Instrução Descrição ADD, ADDS, ADCS Soma, soma com carry SUB, SUBS Subtrai RSBS Subtração reversa MUL Multiplicação: 32b x 32b -> 32b ANDS, ORRS, EORS Operações lógicas: E, OU, OU-EXCL (bit a bit) BICS Operação lógica: E NÃO CMP, CMN Comparação, comparação negada TEQ, TST Teste de bits MOV, MVN Move, move negado
78 Tipo Tamanho Tipo Tamanho char 8 bits [] 32 bits short 16 bits struct ptr = 32 bits int 32 bits float 32 bits unsigned 32 bits double 64 bits long 32 bits enum = int long long 64 bits * 32 bits
79 CMP, CMN, TST, MOV, MVN Formatos: CMN Rn,Rm CMP Rn, #imm CMP Rn,Rm TST Rn, Rm MOVS Rd, Rm MOVS Rd, #imm MVNS Rd,Rm MOV Rd,Rm // R0-R7 (soma Rn e Rm) //R0-R14; // R0-R7 (AND) // 0-255
80 Deslocamento (LSLS) n >= 32 todos os bits são zerados n >= 33 todos os bits e o carry são zerados variantes: só LSLS (altera carry) LSLS {Rd},Rm,Rs LSLS {Rd},Rm,#imm efeito de LSLS Rm, #n é Rm * 2n
81 Deslocamento (LSRS) n >= 32 todos os bits são zerados n >= 33 todos os bits e o carry são zerados variantes: só LSRS (altera carry) LSRS {Rd},Rm,Rs LSRS {Rd},Rm,#imm efeito de LSRS Rm, #n é Rm / 2n
82 Deslocamento (ASRS) n >= 32 todos os bits e o carry recebem cópia do bit 31 variantes: só ASRS (altera carry) ASRS {Rd},Rm,Rs ASRS {Rd},Rm,#imm efeito de ASRS Rm, #n é Rm / 2n
83 Rotação (RORS) / RRX n >= 32 é o mesmo que n-32 variantes: só RORS (altera carry) RORS {Rd},Rm,Rs RORS {Rd},Rm,#imm efeito de LSRS Rm, #n é Rm / 2n (para Rm sem sinal) n = 32 o valor não é alterado e CY := Rm[31] n = 33 mesmo efeito que RORS com n = 1 variantes: só RORS (altera carry) RORS {Rm},Rm,Rs não acessa regs altos apenas dois operandos
84 ARM Barrel Shifter LSL : Logical Left Shift CF Destination ASR: Arithmetic Right Shift Destination 0 Multiplication by a power of 2 LSR : Logical Shift Right...0 Destination CF Division by a power of 2, preserving the sign bit ROR: Rotate Right CF Division by a power of 2 Destination Bit rotate with wrap around from LSB to MSB RRX: Rotate Right Extended Destination CF Single bit rotate with wrap around from CF to MSB CF
85 Operando 2
86 Operando 2 Registrador R4 Registrador e deslocamento R4, LSL #4 R5, ASR #1 Constante: #4 #0xAABB #-2
87 Deslocamentos no Operando 2 Opções: ASR #n 1 n 32 LSL #n 1 n 31 LSR #n 1 n 32 ROR #n 1 n 31 RRX
88 Constantes no Operando 2 Não é possível definir qualquer valor de constante no Operando 2 Apenas alguns valores podem ser formados: Valores de 8 bits deslocados Valores do tipo 0x00XY00XY Valores do tipo 0xXY00XY00 Valores do tipo 0xXYXYXYXY
89 MULTIPLICAÇÃO-1 MULS Rd,Rn,Rm Rd := Rn x Rm Rm deve ser o mesmo registrador que Rd formato preferido: MULS Rd,Rn R0 R7 32-bits x 32-bits -> 32-bits em 1 único ciclo de clock afeta N e Z
90 MULTIPLICAÇÃO-2 MUL Rd,Rn,Rm Rd := Rn x Rm formato alternativo: MUL Rd,Rn Registradores exceto SP, PC 32-bits x 32-bits -> 32-bits em 1 único ciclo de clock
91 MULTIPLICAÇÃO-3 MLA Rd,Rn,Rm,Ra Rd := Ra + Rn x Rm 32-bits x 32-bits -> 32-bits em 2 ciclos de clock
92 MULTIPLICAÇÃO-4 MLS Rd,Rn,Rm,Ra Rd := Ra - Rn x Rm 32-bits x 32-bits -> 32-bits em 2 ciclos de clock
93 MULTIPLICAÇÃO-5 UMULL RdLo, RdHi, Rn, Rm RdHi:RdLo := Rn x Rm UMLAL RdLo, RdHi, Rn, Rm RdHi:RdLo := RdHi:RdLo + Rn x Rm SMULL RdLo, RdHi, Rn, Rm RdHi:RdLo := Rn x Rm SMLAL RdLo, RdHi, Rn, Rm RdHi:RdLo := RdHi:RdLo + Rn x Rm 32-bits x 32-bits -> 64-bits em 3 a 5 ciclos de clock
94 DIVISÃO UDIV Rd,Rn,Rm Rd := Rn / Rm SDIV Rd,Rn,Rm Rd := Rn / Rm 32-bits / 32-bits -> 32-bits em 4 ciclos de clock configurável se quer gerar exceção na divisão por zero
95 MOV, MOV.W, MOVT Para simplificar a carga de constantes que não atendem o formato 8-bits com deslocamento MOV Ri,#16-bits (equivalente a MOV.W Ri,#16) carrega os 16 bits menos significativos de Ri MOVT Ri,#16-bits carrega os 16 bits mais significativos de Ri Com 2 instruções pode-se carregar qualquer constante de 32 bits em um registrador!
96 Exercícios Multiplicar o valor inteiro (32-bits) que está em R3 pela constant 9: 1. a) b) Usando instrução de multiplicação Sem usar multiplicação (sugestão: usar ADD/SUB/shift) Idem, mas multiplicando por 15. Qual a maneira mais eficiente (menos instruções e menos tempo) para fazer as seguintes cargas de constantes: R0 := 0 R1 := 200 R2 := 0x1234 R3 := 0xFFFFFF00 R4 := 0xABCDEF00
97 Instruções que Operam em Bits BFC Rd, #lsb, #w #lsb e #w estão na faixa de 0 a 31 e 1 a 32 Bit-field clear: limpa #w bits a partir de #lsb BFC R0, #4, #8 R0 = 0xFFFF F00F BFI Rd, Rn, #lsb, #w Bit-field Insert: copia #w bits de Rn:0 para Rd:#lsb BFI R1, R2, #8, #0xC R1 = 0x FFFC DDFF
98 Exercícios Alterar os bits 5 a 9 do registrador R10 para a) b) Usando AND/OR/ Usando instruções de bit-field sua solução deve funcionar para qualquer que seja o valor atual de R10.
99 Instruções que Operam em Bits SBFX Rd, Rn, #lsb, #w #lsb e #w estão na faixa de 0 a 31 e 1 a 32 Extrai campo e faz extensão de sinal: copia #w bits a partir de #lsb para o bit0 de Rd e estende SBFX R0, R1, #4, #8 R0 = 0xFFFF FFBC UBFX Rd, Rn, #lsb, #w Idem, estendendo com zeros
100 Extend SXTB Rd,Rm // Rd := sign extend Rm[7:0] UXTB Rd,Rm // Rd := zero extend Rm[7:0] SXTH Rd,Rm // Rd := sign extend Rm[15:0] UXTH Rd,Rm // Rd := zero extend Rm[15:0] R0-R7
101 ADR ADR Rd, label calcula o endereço do label na forma de um offset para o PC Carrega o Rd com o endereço do label Faixa permitida: PC +/ Obs: no IAR o label deve estar na região de dados para que o assembler aceite o ADR
102 2 - Acesso à Memória
103 Acessos Alinhados um acesso à memória de dados é alinhado se: acesso à Word é em endereço múltiplo de 4 acesso à HalfWord é em endereço múltiplo de 2 acesso à Byte é em endereço múltiplo de 1 No Cortex-M0 todos os acessos devem ser alinhados ou causa um HardFault No Cortex-M3 os acessos podem ser desalinhados
104 Instruções de Acesso à Memória de Dados LD (Load = Leitura) ST (Store = Escrita) LDR LDRD LDM POP STR STRD STM PUSH
105 LDR Lê dado da memória Formatos: LDR Rt,[Rn] LDR Rt,[Rn,#off] LDRB Rt,[Rn,#off] LDRH Rt,[Rn,#off] Restrições: #off: [Rn,#off] outras restrições quando envolve os registradores SP ou PC
106 LDR Lê dado da memória Formatos: LDR Rt,[Rn,Rm] LDRB Rt,[Rn,Rm] LDRH Rt,[Rn,Rm] LDR Rt,[Rn, Rm, LSL #2] //end = Rn + Rm<<2
107 LDR Pré e Pós Indexado Pré-Indexado: LDR Rd,[Ri,#cte]! LDR Rd,[Ri,Rm]! Primeiro calcula endereço depois acessa memória O! indica que o Ri deve ser atualizado com o endereço recém calculado. LDR R2,[R3,#4]! Pós-Indexado LDR Rd,[R ],#cte LDR Rd,[Ri],Rm Primeiro acessa memória depois calcula endereço Sempre atualiza Ri
108 LDRSB e LDRSH Lê dado da memória e faz extensão de sinal Formatos: LDRSB Rt,[Rn,#off] LDRSH Rt,[Rn,#off] LDRSB Rt,[Rn,Rm] LDRSH Rt,[Rn,Rm]
109 LDR (relativo ao PC) Lê dado da memória O dado está em endereço próximo ao código sendo executado Formatos: LDR Rt,[PC,#100] LDR Rt, label
110 LDRD Lê 64 bits da memória para 2 registradores Usado para carregar inteiros de 64 bits (long long) LDRD Rt, Rt2, label LDRD Rt, Rt2, [...] // relativo ao PC // mesmos modos de // endereçamento que LDR Rt word menos significativo (LSW) está no endereço especificado Rt2 word mais signifivativo (MSW) está no endereço seguinte (+4)
111 STR Escreve dado da memória Formatos: STR STRB STRH mesmas regras que para LDR
112 LDM e STM Tranfere múltiplos registradores de/para memória Formatos: LDM R0,{R0,R1,R2} LDM R1!,{R2-R7} STM R0!,{R2-R4}
113 LDM e STM Variantes: IA = Increment After default DB = Decrement Before acessa memória incrementa endereço decrementa endereço acessa memória EA = Empty Ascending FD = Full Descending LDM = LDMIA, LDMFD STM = STMIA, STMEA
114 PUSH e POP Tranfere múltiplos registradores de/para memória STMFD sp!, {r0,r1,r3-r5} Formatos: PUSH {r0,r1,r3-r5} PUSH {R0-R7} POP {R1,R3-R6} Full Descending Stack old SP r5 r4 r3 r1 r0 SP FD endereço baixo : Full Descending
115 LDM e STM STMDB sp!, {r0,r1,r3-r5} STMIA sp!, {r0,r1,r3-r5} STMFD sp!, {r0,r1,r3-r5} STMEA sp!, {r0,r1,r3-r5} 0x418 SP r5 r4 r3 r1 Old SP Old SP r5 SP r0 0x400 r4 r3 r1 r0 0x3e8 DB : Decrement Before IA : Increment After FD : Full Descending EA : Empty Ascending 155
116 Exercício Acesso à Memória Em C: crie uma struct com 3 campos: um inteiro, um char, e um short e atribua valores a estes campos. Em assembly: some os 3 campos da struct produzindo um resultado de 32 bits com sinal.
117 Projetos: Parte da avaliação (equipes de 1 ou 2 pessoas) 1. Comunicação por CAN, só 4 placas USB device: HID (p.ex. mouse) PWM: gerar onda senoidal.
118 3 - Saltos
119 3 - Saltos B loopa ; salta para o label LoopA (unica instrução condicional que não precisa IT) BL func ; chamada de rotina, armazena endereço de retorno em LR BX LR ; retorno de chamada de rotina BLX R0 ; Chamada de rotina BEQ labeld ; Salto condicional
120 Saltos CBZ Rn, label Testa Rn e salta se 0 CBNZ Rn, label Testa Rn e salta se não-zero Restrições: Só saltos para frente até 130 bytes Não pode ser usado em bloco IT Não modifica flags Só R0 a R7
121 Bloco IT Bloco consiste de 1 a 4 instruções condicionais ITxyz cond x,y,z são T ou E (Then ou Else) ITTE EQ ADDEQ SUBEQ ORRNE
122 Bloco IT A instrução de salto condicional Bcc label (onde cc é uma das condições) não precisa estar num bloco IT As instruções: IT, CBZ, CBNZ, CPSIE, CPSID NÃO podem estar em bloco IT Uma instrução que altera PC, só pode estar num bloco IT se for a última.
123 Condições No Cortex-M3 as outras instruções podem ir em blocos IT
124 Saltos (limites)
125 Exercício 1)
126 Exercício continuação MDC 2) Como transformar em subrotina? 3) Como chamar a partir de outra rotina em assembly? 4) Como chamar a partir de uma função em C?
127 Exercício Qual a maneira mais eficiente de implementar um loop com número fixo de execuções, como por exemplo: for (int i=0; i<10; i++) { // dentro do loop não se usa i a = b<<3 + a; b++; }
128 Módulo 5 Registradores Especiais Modos de Operação Instruções Especiais
129 priviledged
130 Pilha (Stack) pode-se trabalhar apenas com MSP o SP corrente sempre é acessado como R13 ou SP O SP está sempre com alinhamento de Word (i.e. endereços múltiplos de 4) Instruções: PUSH - empilha POP - desempilha Full descending
131 Link Register R14 ou LR Armazena o endereço de retorno de uma subrotina Deve ser salvo antes de chamar outra subrotina
132 Contador de Programa PC ou R15 instrução sendo executada + 4 endereço de instrução é sempre par (bit0 = 0) bit0 do PC é usado para indicar modo Thumb após reset e em algumas instruções de salto: BX e BLX
133 Modo Handler Thread Não-Privilegiado Privilegiado Main (Principal) Processo Pilha Nível de Privilégio
134
135 Stack: selecionado pelo bit1 de CONTROL 0 = main; 1 = process (este stack só pode ser usado em modo Thread) Modo: selecionado pelo IPSR 0 = Thread; >0 exception Privilégio: bit 0 do CONTROL (0 = privilegiado, 1 = não-privilegiado) no Cortex-M0 é sempre privilegiado (sem restrição)
136
137 xpsr
138
139 IPSR IPSR Exception number!= IRQ Number (Table 320)
140 CONTROL CONTROL instruções MSR e MRS após MSR usar ISB para garantir que o novo stack será usado
141 PRIMASK PRIMASK só pode ser escrito em modo privilegiado instruções CPSID e CPSIE, MSR e MRS
142 Modo Privilegiado No modo Privilegiado o código tem acesso a TODOS os recursos. No modo NÃO-Privilegiado o código NÃO tem acesso à: instruções como CPS que permitiriam alterar FAULTMASK e PRIMASK maioria dos registradores do System Control
143 4 - Outros
144 BKPT BKPT #imm #imm é um valor de 0 a 255 entrada no estado de depuração esta instrução é utilizada por debugers instrução não deve ser usada por programadores
145 CPS Change Processor State altera o PRIMASK Formatos: CPSID i CPSIE i // desabilita IRQs // habilita IRQs
146 DMB The Data Memory Barrier (DMB) completa transações pendentes antes de realizar outra transação. DSB The Data Synchronization Barrier (DSB) completa transações pendentes antes de executar a próxima instrução. ISB The Instruction Synchronization Barrier (ISB) garante que o efeito das transações efetuadas seja percebido antes da próxima instrução.
147 Exemplos de Uso Tabela de vetores: usar DMB entre uma alteração no vetor e a habilitação da IRQ correspondente. Alteração no código: usar uma ISB logo após a instrução que altera o código. Alteração no mapa de memória: usar um DSB imediatamente após a instrução que altera o mapa de memória.
148 MSR, MRS MSR Move to Special Reg from Register MSR special_reg, Rn MRS Move to Register from Special Reg MRS Rd, special_reg Special Reg: APSR, IPSR, EPSR, IEPSR, IAPSR, EAPSR, PSR, MSP, PSP, PRIMASK, or CONTROL Rd, Rn não podem ser SP ou PC
149 NOP Não realiza nenhuma operação Pode ser elimininada no pipeline (i.e. pode ser executado em tempo 0) Uso: alinhamento de código em fronteira de word ou double-word
150 SEV Send Event Formato: SEV Informa da ocorrência de um evento Seria usado com WFE que não existe no LPC11xx
151 SVC Chamada ao Supervisor (S.O.) Formato SVC #imm // Gera uma exceção do tipo SVC A ISR pode ler o valor de #imm para identificar o serviço solicitado
152 WFI Wait for Interrupt Formato: WFI entra em modo de baixo consumo até que: exceção IRQ, mesmo que mascarada por PRIMASK solicitação de DEBUG
153 Módulo 6 Acesso à Memória
154
155 Memória Processadores 13xx
156 Módulo 7 Exceções/Interrupções
157 Interrupções Interrupções são uma forma eficiente de se responder às demandas solicitadas pelos periféricos. Alternativa é polling: desperdício de consultas atendimento mais demorado 212
158 Estrutura típica de Interrupção Peripheral 1 P2 IRQ Interrupt Controller Microprocessor Core (e.g Cortex-M) P3 P4 Pn 213
159 Interrupções Princípio de funcionamento durante a execução de um programa, um sinal de hardware (IRQ = Interrupt Request) é ativado. um controlador de interrupções percebe o sinal, verifica se está habilitado (desmascarado) e sua prioridade e então informa o processador da existência de um pedido de interrupção pendente o processador verifica se as interrupções estão habilitadas e finaliza a execução da instrução corrente SALVAMENTO DE CONTEXTO (registradores, palavra de status) [em alguns casos] - muda o ponteiro de pilha para IRQ_STACK busca no vetor de interrupção: identifica quem é a rotina responsável pelo atendimento daquela interrupção específica execução da ISR (parte do salvamento de contexto pode ser feito aqui) informa ao periférico solicitante que a IRQ foi atendida informa ao controlador de interrupção que o atendimento finalizou (EOI) RECUPERA CONTEXTO dá seguimento a execução do programa que foi interrompido 214
160 Interrupções É um processo complexo Qualquer falha em algum passo causa uma parada total do sistema Depuração difícil, principalmente porque é um evento assíncrono Um programador só é realmente um programador de sistemas embarcados quando sabe trabalhar bem com o atendimento de interrupções. Quando se usa RTOS, em geral, passa-se ao RTOS a responsabilidade de tratar as IRQs. 215
161 Controlador de Interrupção Em geral são vetorizados: detectam automaticamente qual dos pedidos de interrupção ativo é o mais prioritário, consultam a tabela de endereços de ISR (vetor de interrupção) e entregam ao processador o endereço da ISR. portanto, a CPU só precisa ler o endereço da ISR e executar a partir dali No Cortex-M: maior eficiência obtida pelo atendimento totalmente realizado pelo HW. 216
162 Desabilitando o Atendimento de IRQs Também chamado de mascaramento de IRQs No controlador de interrupções é possível mascarar / desmascarar IRQs específicas: p.ex. mascarar apenas a IRQ da UART2 No processador é possível mascarar / desmascarar o atendimento de interrupções por completo. 217
163 Teste e Depuração Teste e Depuração de ISRs é uma atividade complexa. Quando finalmente se consegue atender à primeira interrupção: o teste NÃO acaba aqui!!! atender a segunda IRQ do mesmo periférico também requer teste e depuração p.ex. esquecer de enviar um EOI impede o atendimento do pedido seguinte. Importante testar situações de stress: vários pedidos simultâneos de periféricos distintos várias repetições de pedidos de interrupção do mesmo periférico 218
164 Como registrar uma ISR num Cortex-M3 Basta colocar o nome da ISR na tabela de vetores de exceção localizada no endereço 0 da memória. 229
165 Como registrar uma ISR num Cortex-M3 Cortex-M: o vetor de interrupções fica na memória do processador a partir do endereço 0. basta armazenar a tabela com os endereços das ISRs nesta região de memória. 230
166 Interrupções - Conceitos Latência: tempo entre o pedido de interrupção (ativação do sinal IRQ) até o início da execução da ISR: HW: detecção, processamento no Cont. IRQ tempo de finalização da instrução corrente tempo que as IRQs estão desabilitadas outras ISR em execução (aninhamento x prioridade) no device driver no RTOS na aplicação Tempo de Resposta (pior caso): Somar: Pior caso da Latência Pior caso do tempo de execução da ISR. 231
167 Exceções Qualquer solicitação para mudança do fluxo normal de um programa. interrupção detecção de falha / erro (p.ex. acesso desalinhado)
168 Exceções Estados Inativo (inactive) = não ativo nem pendente Pendente (pending) = aguardando atendimento (p.ex. pedido de interrupção irq de periférico) Ativo (active) = em atendimento pode haver mais de uma interrupção em atendimento (interrupções aninhadas nested) Ativo e Pendente = interrupção em atendimento e outro pedido da mesma fonte está pendente
169 Tipos de Exceção Reset reinício da execução (modo Thread) (-3) NMI - prioridade -2 HardFault prioridade -1 falha genérica: representa todas as classes de falhas que não foram tratadas SVC causada pela instrução SVC (Supervisor Call) PendSV solicitação de serviço (p.ex. chaveamento de contexto) SysTick gerado pelo system timer IRQ pedido de interrupção feito por periférico
170 Configurável: prioridade de 0 (default) a 3 Prioridades: valor menor significa maior prioridade PRIMASK: pode mascarar as IRQ com prioridade configurável
171 O LSb deve ser 1 indicando que a rotina de tratamento é em Thumb O IAR coloca o bit0 em 1 automaticamente para todos os labels criados em Thumb
172 Atendimento Um atendimento de exceção ocorre quando: existe uma exceção pendente com prioridade suficiente (*); e o processador está em modo Thread; ou a exceção pendente é de prioridade maior que a exceção sendo atendida (preempção) (*) prioridade suficiente significa prioridade maior do que o limite estabelecido no PRIMASK
173 Atendimento (2) Stacking salva o estado O SP está alinhado em double-word se necessário pula um word antes de começar o empilhamento
174 Atendimento (3) O processador lê do vector_table o endereço do handler; LR := EXC_RETURN (ver próximo slide) após o stacking, a execução se dá a partir do handler, a exceção passa ao status de ativa Se durante o stacking ocorreu outra exceção de maior prioridade então esta é atendida (late-arriving exception) Prof. Dr. Dr. Douglas Douglas Renaux Prof. Renaux
175 Atendimento (4)
176 Retorno de Exceção Ocorre quando uma instrução escreve no PC um dos valores de EXC_RETURN As instruções que podem ser usadas para retorno de exceção são POP e BX
177 Tratamento de Faltas Todas as faltas causam HardFault Trava se a falta ocorre no handler da NMI ou HardFault Faltas: SVC BKPT fora de depuração (i.e. não conectado ao IAR) erro de acesso a memória (erro de barramento) em LD ou ST tentativa de execução em área XN tentativa de execução causando erro de barramento erro de barramento em acesso ao vector_table tentativa de execução de instrução inválida tentativa de execução em modo ARM (T=0) LD ou ST desalinhado
178 Hard Faults
179 Módulo 8 ATPCS
180 ATPCS ARM-Thumb Procedure Call Std Passagem de parâmetros: - primeiros parâmetros em R0.. R3 demais parâmetros pela pilha - retorno: R0 ou R1:R0
181 ATPCS Tipos de Dados Tipo Tamanho Tipo Tamanho char 8 bits [] 32 bits short 16 bits struct ptr = 32 bits int 32 bits float 32 bits unsigned 32 bits double 64 bits long 32 bits enum = int long long 64 bits * 32 bits
182 ATPCS Quem tem a obrigação de salvar o valor dos registradores caso interesse manter este valor após a chamada de uma função? - - rotina chamada: deve salvar R4 R11 antes de alterar R0 R3,R12 podem ser livremente utilizados pela rotina chamada
183 Código de Entrada e Saída de Função PUSH {R4-R7,LR} POP {R4-R7,LR} MOV PC,LR PUSH {R4-R7,LR} POP {R4-R7,PC}
184 Exercício continuação MDC 2) Como transformar em subrotina? 3) Como chamar a partir de outra rotina em assembly? 4) Como chamar a partir de uma função em C?
185 Exercício de Alinhamento C: struct s { char a; short b; char c; int d; }; #pragma pack(2) #pragma pack()
Cortex-M3/M4. Conjunto de Instruções Thumb-2 (Assembly Cortex-M3/M4) Unified Assembler Language (UAL) Estrutura de Código em Assembly 06/09/2018
Cortex-M3/M4 Conjunto de Instruções Thumb-2 (Assembly Cortex-M3/M4) Prof. Hugo Vieira Neto 2018/2 Arquitetura ARMv7E-M Conjunto de instruções Thumb-2 Material de apoio: Referência Rápida do Conjunto de
Leia maisEL68E Sistemas Embarcados Prof. Douglas RENAUX
EL68E Sistemas Embarcados Prof. Douglas RENAUX ARM Histórico Ano 1984-1985 Evento Desenvolvimento do primeiro RISC comercial na Acorn Computers Ltd (Cambridge UK) ARM = Acorn RISC Machine 1990 Fundação
Leia maisSISTEMAS EMBARCADOS. Conjunto de Instruções Thumb2. Prof. André Schneider de Oliveira
Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) SISTEMAS EMBARCADOS Conjunto de Instruções Thumb2 Prof. André Schneider de Oliveira andreoliveira@u6pr.edu.br
Leia maisUniversidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) SISTEMAS EMBARCADOS
Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) SISTEMAS EMBARCADOS Registradores, Instruções Especiais, Exceções e Memórias Prof. André Schneider de Oliveira
Leia maisRegistradores. Registradores e Instruções Especiais. Link Register. Stack Pointer. Registradores Especiais. Contador de Programa 29/03/2018
Registradores Registradores e Instruções Especiais Prof. Hugo Vieira Neto Nível de acesso privilegiado MSP = main SP Kernel do S.O. Exceções PSP = process SP Aplicações (threads) PRIMASK Desabilita interrupções
Leia maisRegistradores. Registradores Especiais e Exceções no ARM Cortex-M4. Link Register. Stack Pointer. Registradores Especiais. Contador de Programa
Registradores Registradores Especiais e Exceções no ARM Cortex-M4 Prof. Hugo Vieira Neto 2019/1 Nível de acesso privilegiado MSP = main SP Kernel do S.O. Exceções PSP = process SP Aplicações (threads)
Leia maisEL68E Sistemas Embarcados
EL68E Sistemas Embarcados Prof. Douglas RENAUX www.dainf.ct.utfpr.edu.br/~douglas Arquitetura ARM Prof. Douglas RENAUX Acorn BBC Micro 1981 Developer Acorn Computers Type 8-bit home computer Release date
Leia maisInstruções Assembly. César Yutaka Ofuchi (Adaptado do Prof. Hugo Vieira Neto) César Ofuchi
1 Instruções Assembly César Yutaka Ofuchi ofuchi@utfpr.edu.br (Adaptado do Prof. Hugo Vieira Neto) 2 Instruções Novo Workspace IAR 1- Fazer download do novo workspace no site em laboratório2 2 Corrigir
Leia maisMinistério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 2. Cibele Lemos Freire Viginoski
Aula 2 Cibele Lemos Freire Viginoski Registradores R0-R7: disponíveis para todas as instruções R8-R15: disponíveis para algumas instruções R13: SP (Stack Pointer) Pilha obrigatoriamente LIFO decrescente
Leia maisUniversidade de São Paulo
Conjunto Instruções ARM Universidade de São Paulo Sistemas Embarcados Jorge Luiz e Silva ARM versões. ARM Linguagem Assembly. ARM modelo de programação. ARM organização de memória. ARM operação com dados.
Leia maisEL68E Sistemas Embarcados Prof. Douglas RENAUX
EL68E Sistemas Embarcados Prof. Douglas RENAUX ARM Histórico Ano 1984-1985 Evento Desenvolvimento do primeiro RISC comercial na Acorn Computers Ltd (Cambridge UK) ARM = Acorn RISC Machine 1990 Fundação
Leia maisParadigma CISC. Arquitetura ARM Cortex-M3. Paradigma CISC. Paradigma RISC. Paradigma RISC. Resumo: RISC x CISC 18/08/2016
Paradigma CISC Arquitetura ARM Cortex-M3 Prof. Hugo Vieira Neto Complex Instruction Set Computer Conjunto de instruções inicialmente simples Avanços tecnológicos permitiram a fabricação de computadores
Leia maisPSI3441 Arquitetura de Sistemas Embarcados
PSI3441 Arquitetura de Sistemas Embarcados - Instruções de Desvio Loop - Ponto Flutuante - Multiplicação e Divisão - Pseudo-Instruções - Processadores ARM Escola Politécnica da Universidade de São Paulo
Leia maisSISTEMAS EMBARCADOS Arquitetura ARM Cortex-M3
Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) SISTEMAS EMBARCADOS Arquitetura ARM Cortex-M3 Prof. André Schneider de Oliveira andreoliveira@utfpr.edu.br
Leia maisArquitetura Cortex-M
1 Arquitetura Cortex-M César Yutaka Ofuchi ofuchi@utfpr.edu.br (Adaptado do Prof. Hugo Vieira Neto/Prof. Douglas Renaux) Referências Joseph Yiu The definitive guide to the arm córtex-m3 (second edition)
Leia maisArquitetura ARM Cortex
1 Arquitetura ARM Cortex César Yutaka Ofuchi ofuchi@utfpr.edu.br (Adaptado do Prof. Hugo Vieira Neto) 2 Porque ARM Cortex M3? Performance Baixo Consumo Baixo Custo Determinismo: garantia de execução críticas
Leia maisParadigma CISC. Arquitetura ARM Cortex-M3. Paradigma CISC. Paradigma RISC. Paradigma RISC. Resumo: RISC x CISC 16/03/2018
Paradigma CISC Arquitetura ARM Cortex-M3 Prof. Hugo Vieira Neto Complex Instruction Set Computer Conjunto de instruções inicialmente simples Avanços tecnológicos permitiram a fabricação de computadores
Leia maisMinistério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski
Aula 1 Cibele Lemos Freire Viginoski ARM (Advanced RISC Machine) Arquitetura de Processadores CISC Conjunto Complexo de Instruções Microinstruções RISC Conjunto de Instruções Reduzidas Instruções devem
Leia maisAula 8. Engenharia de Sistemas Embarcados. Prof. Abel Guilhermino Tópico: Arquitetura ARM
Aula 8 Engenharia de Sistemas Embarcados Prof. Abel Guilhermino Tópico: Arquitetura ARM Repertório de Instruções O conjunto de instruções possui uma largura fixa de 32 bits É o conjunto padrão de instruções
Leia mais7/4/2010. Aula 8. Engenharia de Sistemas Embarcados. Repertório de Instruções. Prof. Abel Guilhermino Tópico: Arquitetura ARM
Repertório de Instruções Engenharia de Sistemas Embarcados Prof. Abel Guilhermino Tópico: Arquitetura ARM Aula 8 O conjunto de instruções possui uma largura fixa de 32 bits É o conjunto padrão de instruções
Leia maisPSI3441 Arquitetura de Sistemas Embarcados
PSI3441 Arquitetura de Sistemas Embarcados - Ponto Flutuante Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Prof. Sergio Takeo kofuji@usp.br Prof. Antonio Seabra
Leia maisAJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador:
Introdução aos Sistemas de Computação (4) Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3. Execução de programas num computador 4.
Leia maisRevisão: Modo Real, pt 2 Interrupções
Revisão: Modo Real, pt 2 Interrupções Interrupção Evento (interno ou externo) que faz o processador parar o programa em execução para tratar a interrupção Ex: ler o teclado, comunicação com os dispositivos
Leia maisPSI3441 Arquitetura de Sistemas Embarcados
PSI31 Arquitetura de Sistemas Embarcados - Arquitetura do µprocessador Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Prof. Sergio Takeo kofuji@usp.br Prof. Antonio
Leia maisAdvanced RISC Machine
Advanced RISC Machine ARM Vítor da Rosa Sumário Introdução História Evolução ARM Ltd Arquitetura & Organização Primeiros Processadores ARM7TDMI ARM9TDMI Referências História Out/83, a Acorn Computers Ltd
Leia maisOrganização e Arquitetura de Computadores I
Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas
Leia maisTópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL É A INTERFACE ENTRE
Leia maisArquitetura ARM. Prof. André Schneider de Oliveira. Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN)
Universidade Tecnológica Federal do Paraná (UTFPR) Departamento Acadêmico de Eletrônica (DAELN) Arquitetura ARM Prof. André Schneider de Oliveira andreoliveira@u6pr.edu.br O Processador ARM O processador
Leia maisUniversidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador
Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação Arquitetura de Computadores I Organização Básica do Computador Gabriel P. Silva Ementa Unidade 2: Organização Lógica e Funcional
Leia maisTrabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas
Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas Material a ser utilizado: Kits de desenvolvimento de sistemas microprocessados para aplicações em DSP Texas DSK-TMS320C67xx. Apresentação
Leia maisRegistradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture
Registradores na Arquitetura MIPS 29/4/2016 MIPS - Instruction Set Architecture 1 Mapa de Memória da Arq. MIPS 2 GB 2 GB 256 MB 64 KB 2 GB 64 KB 256 4 MB 4 MB 29/4/2016 MIPS - Instruction Set Architecture
Leia maisSSC0114 Arquitetura de Computadores
SSC0114 Arquitetura de Computadores 3ª Aula Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento MIPS Monociclo: Caminho de Dados e Unidade de Controle Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br
Leia maisArchC. Wesley Nunes Gonçalves
Implementação do Processador ARM7 em ArchC Wesley Nunes Gonçalves 23 de novembro de 2007 ARM7 Instruções Implementadas O ARM possui 37 registradores, sendo 31 registradores de propósito geral e 6 registradores
Leia maisWilliam Stallings Arquitetura e Organização de Computadores 8 a Edição
William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 10 Conjuntos de instruções: Características e funções slide 1 O que é um conjunto de instruções? A coleção completa de instruções
Leia maisOrganização e Projeto de Computadores 3: Modo de Endereçamento, Sub-Rotina, Instruções de E/S, Interrupção
Organização e Projeto de Computadores 3: Modo de Endereçamento, Sub-Rotina, Instruções de E/S, Interrupção 1 Modo de Endereçamento Determina como o operando é obtido durante a execução de uma ins trução.
Leia maisMinistério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski
Aula 1 Cibele Lemos Freire Viginoski ARM (Advanced RISC Machine) Historia ARM Começou a vida como parte da Acorn Computer. 1978 Arcon Computer de Cambridge produziam computadores e foram sucesso no Reino
Leia maisUniversidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.
Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas
Leia maisArquitetura de Computadores II. Arm 9. Rodrigo Padilha Thaiane Lopes
Arquitetura de Computadores II Arm 9 Rodrigo Padilha Thaiane Lopes 26 de Novembro de 2007 Introdução Este trabalho pretende apresentar instruções de máquinas, utilizando a arquitetura Arm9. São apresentadas
Leia maisInfraestrutura de Hardware. Implementação Monociclo de um Processador Simples
Infraestrutura de Hardware Implementação Monociclo de um Processador Simples Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço
Leia maisProcessador. Processador
Departamento de Ciência da Computação - UFF Processador Processador Prof. Prof.Marcos MarcosGuerine Guerine mguerine@ic.uff.br mguerine@ic.uff.br 1 Processador Organização básica de um computador: 2 Processador
Leia maisControladores do IBM-PC. Gustavo G. Parma
Controladores do IBM-PC Gustavo G. Parma IBM-PC baseado em ISA Sistema de interrupção do x86 Duas entradas de solicitação de interrupção NMI: Non-maskable interruption Erro de paridade da RAM Channel Check
Leia maisEstrutura Básica de um Computador
SEL-0415 Introdução à Organização de Computadores Estrutura Básica de um Computador Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira INTRODUÇÃO n Organização Æ implementação do hardware, componentes, construção
Leia maisSistemas Embebidos I , Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos
Sistemas Embebidos I Licenciatura em Eng. de Electrónica e Telecomunicações e de Computadores Licenciatura em Engenharia Informática e de Computadores Mestrado em Engenharia Informática e de Computadores
Leia maisOrganização de Computadores
Organização de Computadores Aula 25 Conjunto de Instruções: Características e Funções Rodrigo Hausen 10 de novembro de 2011 http://cuco.pro.br/ach2034 1/92 Apresentação 1. Bases Teóricas 2. Organização
Leia maisArquitetura de Computadores. Revisão Volnys Bernal. Agenda. Revisão: Arquitetura de Computadores. Sobre esta apresentação
1998-2010 - Volnys Bernal 1 1998-2010 - Volnys Bernal 2 Agenda Revisão: Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Arquitetura Geral Espaço de Endereçamento Processador e s Laboratório
Leia maisOrganização de Computadores 1
Organização de Computadores 1 3.1 CPU: Unidade de Processamento Central Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Unidade de Processamento Central (CPU): Memória Principal Unidade de Processamento
Leia maisARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-1 Objetivos Conhecer o processador Compreender os registradores
Leia maisSistemas Embarcados. KIT LPCXPresso1343 e BaseBoard. (Adaptado do Prof. Hugo Vieira Neto) César Yutaka Ofuchi
1 Sistemas Embarcados KIT LPCXPresso1343 e BaseBoard (Adaptado do Prof. Hugo Vieira Neto) César Yutaka Ofuchi ofuchi@utfpr.edu.br Ambiente de Desenvolvimento IAR Embedded Workbench for ARM Utilizar versão
Leia maisOMAP Open Multimedia Application Platform
OMAP Open Multimedia Application Platform Ricardo Miotto Redin rmredin@inf.ufrgs.br Roteiro Visão Geral Arquitetura Organização O que está por vir... Referências 14/7/2006 2 Visão Geral (1/4) 14/7/2006
Leia maisEstudo sobre a Arquitetura AVR32. Bruno George de Moraes Gustavo Henrique Nihei
Estudo sobre a Arquitetura AVR32 Bruno George de Moraes Gustavo Henrique Nihei Motivação Século XX - advento dos dispositivos portáteis Alto poder computacional Baixo consumo de energia Grande parte dos
Leia maisMicroprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios
Microprocessadores I ELE 1078 Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Grupos de Instruções do 8085 As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da
Leia maisO estudo da arquitectura de computadores efectua-se com recurso à Abstracção
ARQUITECTURA DE COMPUTADORES O estudo da arquitectura de computadores efectua-se com recurso à Abstracção Podemos ver um computador de várias formas. Para um utilizador normalmente o computador é a aplicação
Leia maisArquitetura e Organização de Computadores
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes
Leia maisInfraestrutura de Hardware. Implementação Multiciclo de um Processador Simples
Infraestrutura de Hardware Implementação Multiciclo de um Processador Simples Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e
Leia maisWilliam Stallings Organização de computadores digitais. Capítulo 11 Estrutura e função da CPU
William Stallings Organização de computadores digitais Capítulo 11 Estrutura e função da CPU Encruzilhada na arquitetura de computadores 2004/2005 Antiga opinião Nova visão a energia é de graça, os transistores
Leia maisCPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3
CPU CPU Funções: Processamento; Controle Componentes: UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3 Processador A função de um computador é executar tarefas
Leia maisPSI3441 Arquitetura de Sistemas Embarcados
PSI31 Arquitetura de Sistemas Embarcados - Arquitetura do µprocessador Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Prof. Sergio Takeo kofuji@usp.br Prof. Antonio
Leia maisSistemas Digitais Transferências entre Registradores
Sistemas Digitais Transferências entre Registradores Referência Bibliográfica: Logic and Computer Design Fundamentals Mano & Kime Adaptações: josé artur quilici-gonzalez Sumário Transferências entre Registradores
Leia maisInfra-estrutura de Hardware
CPU: Estrutura e Funcionalidade Roteiro da Aula Ciclo de Instrução Projeto de uma CPU simples: conceitos Componentes básicos Leitura da instrução Operação entre registradores Acesso à memória Implementação
Leia maisInterrupção. Prof. Adilson Gonzaga
Interrupção Prof. Adilson Gonzaga Estrutura de Programação Assembly Programa Principal Chamada de Sub-rotina1 Programa Principal Chamada de Sub-rotina2 Sub-rotina1 Subrotina2 Programa Principal Chamada
Leia mais2. A influência do tamanho da palavra
PROCESSAMENTO 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante
Leia maisARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Msc. Tiago Alves de Oliveira Objetivos Conhecer o processador Compreender os registradores
Leia maisARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-2 Objetivos Conhecer o processador Compreender os registradores
Leia maisMIPS ISA (Instruction Set Architecture)
MIPS ISA (Instruction Set Architecture) MIcroprocessor without Interlocking Pipeline Stages MIPS Processador RISC de 32 bits Referência dos Processadores RISC Mais de 100 Milhões de processadores vendidos
Leia maisORGANIZAÇÃO DE COMPUTADORES
ORGANIZAÇÃO DE COMPUTADORES TECNOLOGIAS EM REDES DE COMPUTADORES Semestre 2015.2 Prof. Dsc. Jean Galdino As principais arquiteturas de processadores são: Von Neumann; Harvard. ARQUITETURAS AULA 06 28/10/2015
Leia maisOrganização de Memórias
Intel 8051 O Intel 8051 é um microcontrolador de 8 bits que pertence a família MCS-51 da Intel e foi lançado em 1977. É tido como o microcontrolador mais popular do mundo, pois é muito versátil e possui
Leia maisInfraestrutura de Hardware. Instruindo um Computador
Infraestrutura de Hardware Instruindo um Computador Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço Operando ALU Temp Datapath
Leia maisSistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores)
Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores) 1 - Fazendo uma comparação entre a arquitetura proposta por Von Neumann e a arquitetura de um microcomputador
Leia maisConjunto de Instruções e Modelos de Arquiteturas
Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira
Leia maisARQUITETURA DE COMPUTADORES
RCM00014 Haswell wafer ARQUITETURA DE COMPUTADORES Prof. Luciano Bertini Site: http://www.professores.uff.br/lbertini/ Objetivos do Curso Entendimento mais aprofundado do funcionamento
Leia maislw, sw add, sub, and, or, slt beq, j
Datapath and Control Queremos implementar o MIPS Instruções de referência à memória: lw, sw Instruções aritméticas e lógicas: add, sub, and, or, slt Controle de fluxo: beq, j Cinco passos de execução Busca
Leia maisArquitetura de Computadores Aula 11 - Multiprocessamento
Arquitetura de Computadores Aula 11 - Multiprocessamento Prof. Dr. Eng. Fred Sauer http://www.fredsauer.com.br fsauer@gmail.com 1/28 PROCESSAMENTO PARALELO OBJETIVO: aumentar a capacidade de processamento.
Leia maisUNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES
Tecnologia da informação e comunicação UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES CICLO DE INSTRUÇÕES OU DE EXECUÇÃO Arquitetura de computadores 2 CICLO DE EXECUÇÃO No inicio de cada ciclo de instrução,
Leia maisProf. Adilson Gonzaga
Prof. Adilson Gonzaga Temporização da CPU Todos os Microcontroladores da família MCS-51 têm um oscilador interno. Para uso deste oscilador deve-se conectar um cristal entre os pinos Xtal1 e Xtal2 da CPU.
Leia maisWilliam Stallings Computer Organization and Architecture
William Stallings Computer Organization and Architecture Capítulo 3 Como o Processador Funciona Arquitetura von Neumann Como discutido anteriormente, os projetos dos computadores modernos são baseados
Leia maisPARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR
PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n
Leia maisUFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos
UFRJ IM - DCC Sistemas Operacionais I Unidade IV Gerência de Recursos Entrada e Saída 02/12/2014 Prof. Valeria M. Bastos 1 ORGANIZAÇÃO DA UNIDADE Gerência de Entrada e Saída Fundamentos Evolução Estrutura
Leia maisORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 04: ASPECTO BÁSICO DO PROJETO DE UMA CPU SIMPLES E LINGUAGEM DE MONTAGEM Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia
Leia maisUniversidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel
Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel Processadores 8086 Registradores: 16 bits 1978 Data bus:
Leia maisNível do Conjunto de Instruções Prof. Edson Pedro Ferlin
1 Definições Nível ISA (Instruction Set Architecture). Está posicionado entre o nível da microarquitetura e o nível do sistema operacional. É a interface entre o software e o hardware. Nesse nível está
Leia maisESTRUTURA E FUNCIONAMENTO DO COMPUTADOR
ESTRUTURA E FUNCIONAMENTO DO COMPUTADOR Prof. Filippo Valiante Filho http://prof.valiante.info Estrutura do Computador Computador CPU (Central Processing Unit) Sistema de Armazenamento (Memórias) Sistema
Leia maisSEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES
SEL 0415 Aula 11 Microcontrolador 8051 Parte 3 SEL 0415 INTROD. À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Marcelo A. C. Vieira SEL 415 INTERRUPÇÃO Estrutura de Interrupção do 8051 n 5 Fontes [ 2 Externas
Leia maisConjunto de Instruções. Alisson Brito
Conjunto de Instruções Alisson Brito 1 1 O que é o Conjunto de Instruções? Instruction Set Architecture (ISA) Interface entre Programas e CPU A coleção completa de instruções reconhecidas pela CPU Programas
Leia maisLISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO
LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO 1) Identifique na instrução em linguagem de máquina armazenada na memória, os elementos da instrução 2) Na figura acima, qual a quantidade de código de operações
Leia maisARQUITETURA DE COMPUTADORES
RCM00014 Haswell wafer ARQUITETURA DE COMPUTADORES Prof. Luciano Bertini Site: http://www.professores.uff.br/lbertini/ Objetivos do Curso Entendimento mais aprofundado do funcionamento
Leia maisProf. Gustavo Oliveira Cavalcanti https://sites.google.com/a/poli.br/professorgustavooc/
Sistemas Digitais Prof. Gustavo Oliveira Cavalcanti gustavooc@poli.br https://sites.google.com/a/poli.br/professorgustavooc/ Conteúdo Programático (Organização e Arquitetura) Arquitetura e história dos
Leia maisOrganização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores
Ciência da Computação Arq. e Org. de Computadores Processadores Prof. Sergio Ribeiro Composição básica de um computador eletrônico digital: Processador Memória Memória Principal Memória Secundária Dispositivos
Leia maisFamília 8051 (introdução) 2011/1
Família 8051 (introdução) 2011/1 Refresh Microprocessador vs. microcontrolador. Periféricos built-in. Single-chip computer 2 Objetivos Histórico Modelos da família original Principais características Diagrama
Leia maisArquitetura e Organização de Computadores
Arquitetura e Organização de Computadores Conjunto de Instruções Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Material do prof. Sílvio Fernandes - UFERSA
Leia maisSSC510 Arquitetura de Computadores 1ª AULA
SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura
Leia maisNotas de Aula Guilherme Sipahi Arquitetura de Computadores
Notas de Aula Guilherme Sipahi Arquitetura de Computadores Conjunto de Instruções: Elementos de uma instrução: Operation Code (Opcode): especifica a operação a ser executada. Source operand reference:
Leia maisSistema Digitais. Bacharelado de Informática UEM DIN - Prof. Elvio v. 17a
5197 - Sistema Digitais Bacharelado de Informática UEM DIN - Prof. Elvio v. 17a Roteiro A Família AVR Introdução ao ATmega328 Características Gerais Memórias Família AVR AVR = Advanced Virtual RISC Fundadores
Leia maisDepartamento de Sistemas de Computação - SSC. Sistemas Digitais. 2 o Semestre Projeto CPU. Data da apresentação: 26/27 de outubro
UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação - SSC Sistemas Digitais 2 o Semestre Projeto CPU Data da apresentação: 26/27 de outubro
Leia maisSSC0611 Arquitetura de Computadores
SSC0611 Arquitetura de Computadores 2ª e 3ª Aulas Arquitetura MIPS: ISA, Formato das instruções e Modos de endereçamento Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Arquitetura MIPS MIPS: Microprocessor
Leia maisOrganização de Sistemas de Computadores
Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =
Leia maisArquitetura de Sistemas Embarcados
Arquitetura de Sistemas Embarcados Edna Barros (ensb @cin.ufpe.br) Centro de Informática UFPE Introdução a Arquitetura ARM (Advanced( RISC Machine) História do ARM Originalmente significava: ARM Acorn
Leia maisOrganização de Computadores μarquitetura. Na Aula Anterior... Introdução. Nesta Aula. MIPS-Monociclo. Formas de Organização 17/10/2016
GBC06 Arq. e Org. de Computadores I 17/10/2016 Organização de Computadores μarquitetura Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D. Abdala Na Aula Anterior...
Leia maisDepartamento de Sistemas de Computação - SSC. SSC-110 Elementos de lógica digital I SSC-111 Laboratório de elementos de lógica digital I.
UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação - SSC SSC-110 Elementos de lógica digital I SSC-111 Laboratório de elementos de lógica
Leia maisEEC2104 Microprocessadores
EEC2104 Microprocessadores Edição 2005/2006 Arquitectura de um microprocessador básico (Qual o hardware necessário para executar instruções e poder chamar subrotinas?) Uso da memória Guardar instruções
Leia maisOrganização e Projeto de Computadores
Organização e Projeto de Computadores 1 Processamento no Computador Operações principais: leitura de instrução do programa leitura de dados processamento: execução da instrução escrita de resultado entrada/saída
Leia mais