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 Guardar dados (operandos, resultados) Guardar temporariamente informação necessária ao funcionamento do CPU Endereços de retorno (subrotinas, interrupções) Outros valores temporários 26
Subrotinas... Na chamada Guardar em memória o endereço da próxima instrução a ser executada (guardar PC) Carregar PC com o endereço inicial da subrotina No retorno Recuperar o valor do PC guardado (força o regresso ao ponto para onde teria ido se a subrotina não tivesse sido chamada) 27 Interrupções... Acontecimento inesperado para o processador Resulta na chamada automática de uma subrotina Sequência de processamento: Acabar de executar a instrução corrente Invocar a subrotina de atendimento da interrupção (tem um retorno especial) 28
Stack (pilha) e stack pointer Stack (pilha) Zona de memória utilizada para guardar temporariamente a informação necessária ao funcionamento do processador Estrutura do tipo LIFO (last in, first out) Endereços crescentes ou decrescentes Acesso indirecto (por apontador) Stack pointer (SP) pode apontar a última posição ocupada a primeira posição livre 29 Funcionamento... Na chamada (call nn) PC = PC+3 SP = SP+1, mem[sp] = low(pc) SP = SP+1, mem[sp] = high(pc) PC = nn No retorno (ret): high(pc) = mem[sp], SP = SP-1 low(pc) = mem[sp], SP = SP-1 A rotina não pode corromper o SP! 30
Arquitectura de um µp básico CPU DBUS ABUS Flags PC SP IR Acc ALU TMP CBUS IPC LPC ISP DSP LSP LIR Controlo e descodificação LAcc OAcc OTMP Clock Reset Interrupt 31 Conflitos nos barramentos Em que condições? Quando há mais do que uma entidade a poder controlar o mesmo barramento Como se resolvem? Internos: Unidade de controlo do µp garante que só uma entidade está activa em cada instante Externos: Todas as entidades com saídas de 3 estados Sinais /CS e descodificação de endereços adequada 32
A unidade de controlo... Máquina de estados FF D memorizam estado actual Bloco combinatório gera próximo estado e sinais de controlo em função do código de cada instrução Bloco combinatório FF D Entradas: códigos das instruções e outros sinais Saídas: sinais de controlo internos e externos Clock 33 A unidade de controlo... Bloco microprogramado Micromemória Contador ascendente Não confundir as memórias!... Contador Micro memória Clock Entradas: códigos das instruções e outros sinais Saídas: sinais de controlo internos e externos 34
Avaliação e aprofundamento... Perceber, conhecer: Qual a função de cada componente na arquitectura básica apresentada? Qual a função de cada sinal interno? De que modo se resolvem os conflitos nos barramentos? Definir, distinguir: Subrotina? Interrupção? Stack? Stack pointer? Estudar: Livro 2: secções 5.4, 5.5 e 5.7 35 EEC2104 Microprocessadores Edição 2005/2006 Apresentação da família MCS51
Família MCS51 Família de microcontroladores Microcontrolador: Um único circuito integrado com CPU+MEM+IO Aplicações: Controlo de eventos versus processamento de dados Pentium Capacidade 80486 80386 80286 8086 8088 8051 8096 80196 Microprocessador Microcontrolador 8080/85 8048/49 Integração de funções 37 Arquitectura interna Vcc 128 RAM CPU OSC RST TIMER 1 128 RAM INT TIMER 0 Barramento interno 4k ROM Bus CTR I/O PORTS UART P0 P1 P2 P3 38
Organização da memória Arquitectura do tipo Harvard - separação física entre: Memória de programas (MP) Memória de dados (MD) Barramentos (DBUS, ABUS) comuns às duas Sinais de controlo separados: Sinal /PSEN para leitura da MP (externa) Sinais /RD e /WR para leitura e escrita na MD (externa) 39 Memória de programas (MP) Interna (MPI) e/ou Externa (MPE) Só permite operações de leitura Na MPE: controladas pelo sinal /PSEN Na MPI: controladas por um sinal interno Capacidade Externa: até 64 kbytes Interna: actualmente até 64 kbytes Capacidade total: sempre 64 kbytes Acesso: sempre através de apontadores Indirecto (um apontador) Indexado (conjugação de dois apontadores) 40
MPI versus MPE Escolha feita por hardware Combinações possíveis Sinal /EA=0 Só memória externa (MPE) Sinal /EA=1 Combinação das duas (MPI+MPE) MPE entra em funcionamento só para endereços superiores à capacidade da MPI Nas versões actuais /EA é lido apenas e imediatamente após a inicialização do uc MPE (N:64 kb) MPI (0:N kb) /EA=1 MPE (0:64 kb) /EA=0 41 Memória de dados (MD) Interna (MDI) e Externa (MDE) Permite operações de leitura e escrita Na MDE: Sinal /RD para leitura Sinal /WR para escrita Na MDI: controladas por sinais internos Capacidade Interna: 128/256 Bytes + SFRs Externa: até 64 kbytes Modos de endereçamento MDI: Directo (D) e Indirecto (I) MDE: Apenas Indirecto (I) FFh 80h 7Fh 00h I D,I MDI D I MDE FFFFh 0000h 42
Memória de dados interna (00h:7Fh) Registos de trabalho (R0..R7) Banco 0: 00h.. 07h Banco 1: 08h.. 0Fh Banco 2: 10h.. 17h Banco 3: 18h.. 1Fh Selecção do banco em PSW C AC F0 RS1 RS0 OV - P USO GERAL 20h Zona endereçável ao bit RB3 18h Endereços entre 20h e 2Fh RB2 10h Processamento booleano RB1 08h Uso geral RB0 00h Endereçamento directo e indirecto MDI 30h BIT 7Fh 2Fh 1Fh 17h 0Fh 07h 43 Memória de dados interna (80h:FFh) Duas zonas distintas nos mesmos endereços Endereçamento directo Acesso aos periféricos internos através dos SFRs Alguns acessíveis ao bit Endereçamento indirecto Nem todos têm... Utilizada para stack (Ind) (Dir) FFh 80h MDI 44
MDI versus MDE Eficiência MDI de acesso directo MDI de acesso indirecto MDE Selecção por software Instruções para acesso a MDE (movx) Instruções para acesso a MDI (mov) Dentro da MDI (80h:FFh) Selecção pelo modo de endereçamento FFh 80h 7Fh 00h I D,I D MDI (mov) I MDE (movx) FFFFh 0000h 45 Avaliação e aprofundamento... Perceber, conhecer: O que é uma arquitectura von Newman? e Harvard? Qual a organização da memória na família MCS51? Qual a função dos sinais de controlo da memória externa? Definir, distinguir: PSW? SFR? Acesso directo e indirecto? Estudar: Livros: [1, pp. 23 a 38], [2, pp. 258 a 262], [3, pp. 3 a 10] 80C51 family architecture (Philips): pp. 1 a 3 46