EEC2104 Microprocessadores Edição 2005/2006 Apresentação da disciplina Missão e Objectivos Ganhar competências que permitam desenvolver aplicações baseadas em microprocessadores (MPs) e microcontroladores (MCs) de 8 bits, nomeadamente: Análise do hardware de suporte Programação modular em linguagem assembly Interacção entre hardware e software 2
Programa Introdução à arquitectura de microprocessadores (ups) Execução de programas residentes em memória Arquitectura e conceitos básicos sobre ups de 8 bits A família Intel MCS51 Arquitectura de base e Interface com o exterior Tipos de instruções e modos de endereçamento Processamento de interrupções Periféricos internos Variantes da arquitectura base Memórias e periféricos de Entrada/Saída (E/S) Tipos de memórias Periféricos de E/S (digital e analógica) Interface com um microprocessador genérico 3 Docentes e metodologia Docentes António José Araújo (aja@fe.up.pt) P13,15 Augusto Silva Gomes (asg@fe.up.pt) P1,7,11,14 João Paulo Sousa (jpsousa@fe.up.pt) P2,6,9,12; T1:7 José Martins Ferreira (jmf@fe.up.pt) P3,4,5,8,10; T8:15 Metodologia Aulas teóricas: apresentação da matéria recorrendo a transparências e discussão de casos típicos e exemplos representativos. Aulas práticas: resolução de exercícios de aplicação e realização de trabalho de laboratório individual e em grupo. 4
Avaliação Distribuída com exame final (NGA, 1.3) Componente distribuída (peso 25%) Questionários (15..20 min) a realizar em 3 aulas práticas Contam para avaliação os 2 melhores Nota mínima para acesso a exame: 6 valores (em 20) Exame final (peso 75%) Eventual material de consulta é fornecido Uma questão de valorização Obtenção de frequência Nota mínima de 6 valores na componente distribuída Presença registada em 9 aulas práticas 5 Avaliação Nota de frequência obtida no ano anterior Substitui a componente distribuída da avaliação para os alunos que prescindem frequentar de novo Melhoria de classificação Por exame Para os alunos sem frequência anterior: não é considerada a componente distribuída Para os alunos com frequência anterior: é considerada a componente distribuída (nota de frequência anterior) com o peso de 25% desde que tenham prescindido de frequentar de novo Aspectos omissos A avaliar, caso a caso, pelo júri da disciplina 6
Bibliografia e material de apoio Livros (existentes na biblioteca) 1. Ken Arnold; Embedded Controller Hardware Design; LLH Publishing, 2001; ISBN: 1-878707-52-3 2. J.M.Martins Ferreira; Introdução ao Projecto com Sistemas Digitais e Microcontroladores; FEUP Edições, 1998 3. Sencer Yeralan, Ashutosh Ahluwalia; Programming and Interfacing the 8051 Microcontroller; Addison Wesley, 1995 Apoio online Disciplina no Moodle da FEUP (chave: #microp) http://moodle.fe.up.pt//course/view.php?id=9 Arquivo http://www.fe.up.pt/~jmf/mp 7 EEC2104 Microprocessadores Edição 2005/2006 Dos sistemas digitais aos computadores
Paradigmas de projecto Paradigma da interligação As operações a executar são definidas pelo estabelecimento de ligações físicas O hardware muda consoante a operação a efectuar Exemplo: máquina de estados de moore ou de mealy Paradigma do programa residente (von Neumann, 1945) As operações a executar (programa) são armazenadas em memória na forma de códigos de operação O hardware não muda! Exemplo: computador digital 9 O que é um computador?... Computador digital Sistema capaz de executar um programa residente em memória Blocos constituintes de um computador digital Memória (MEM) Armazena o programa (e, eventualmente, os dados) Processador (CPU) Executa as instruções do programa Unidade de Entrada/Saída (ES) Permite a entrada/saída de dados/resultados 10
Processador básico... Unidade lógica e aritmética (ALU) Circuito combinacional (na maioria dos casos) Suporta um conjunto pré-definido de instruções aritméticas e lógicas Unidade de controlo (CTU) Circuito sequencial Dá sequência às operações de baixo nível necessárias à execução de uma instrução 11 Micros, micros, micros... Microprocessador (µp) CPU num único circuito integrado. Exemplos: 8080, Z80, 6800, 8086, Pentium Microcomputador Computador em que o CPU é um µp. Exemplos: Spectrum, IBM PC, Apple Microcontrolador (µc) CPU+MEM+IO num único circuito integrado. Exemplos: 8051, Z8, C166 12
Algumas datas... 1945: ENIAC Electronic Numerical Integrator And Computer 18.000 válvulas (MTBF=15h) Programação por recablagem 1947: O transístor NCR 304, em 1957 1958: O circuito integrado IBM System 360, DEC PDP-8 em 1965 1945 1947 1958 13 Alguns µps da Intel... 1971: 4004 (2.3k, 10u, 46 instruções, 400kHz) 1974: Intel 8080 1977: 8051 (µc) 1985: 80386 1993: Pentium 2004: Pentium M (140M, 0.09u); Itanium 2 (410M, 0.13u) 2005: Itanium dual core 1945 1947 1958 1971 1977 1985 1993 2004 1974 2005 Fonte: http://www.intel.com/museum/online/hist_micro/hof/index.htm 14
Avaliação e aprofundamento... Perceber: Que disciplina é esta? como vai funcionar?... Quais os paradigmas de projecto apresentados? Definir, distinguir: Computador? processador? Microprocessador? microcomputador? microcontrolador? Estudar: Livro 2: secções 5.1 a 5.3 e 5.6 15 EEC2104 Microprocessadores Edição 2005/2006 Arquitectura de um microprocessador básico (Qual o hardware necessário para executar um programa residente em memória?)
De que estamos a falar? 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 17 Execução de um programa Continuamente: Ler da memória a próxima instrução Descodificá-la Executá-la (p. ex. obter operandos, operar, armazenar resultado) Questões em aberto: Como se podem ler posições de memória? Como se geram os endereços de memória? Como se indica à ALU a operação a efectuar? Como se movimentam operandos/resultados? 18
Leitura de uma memória Recebe: Por ABUS um número binário que representa o endereço a aceder Um sinal (RD) que dá a ordem de leitura Responde: Por DBUS com um número binário que é o conteúdo da posição que foi endereçada MEM ABUS DBUS RD WR CE (esquecer por enquanto o sinal CE, de activação do circuito e o sinal WR que dá ordem de escrita) 19 Para ler uma instrução O CPU envia à memória: O endereço pretendido O sinal de leitura E recebe: A resposta da memória, guardando-a internamente Hardware necessário: Registo para o endereço (PC) Registo para a instrução (IR) Sequenciador DBUS ABUS CPU IPC PC LIR IR LAcc Acc CBUS IPC: Increment PC LIR,LAcc: Load IR, Load Acc Controlo e descodificação Clock 20
Um registo... Elemento que permite armazenar n bits de informação Constituição base: Conjunto de n flip-flops Clock comum Eventualmente: Com saídas de 3 estados Com possibilidade de contagem Exemplos: IR, Acc: registos simples PC: contador ascendente com carregamento paralelo DBUS D Q Clk D Q Clk D Q Clk LIR IR 21 Execução de uma instrução Exemplo: carregar o registo acumulador com uma constante Assembly da família 51 Código máquina gerado cseg at 0000h mov a,#110 end 6E 74 0002h 0001h 0000h 22
Execução de uma instrução Exemplo: carregar o registo acumulador com uma constante Dar ordem de leitura da instrução (RD) em CBUS Guardar a resposta da memória em IR (LIR) Descodificar a instrução e executá-la: Endereçar posição seguinte (IPC) Depende Dar ordem de leitura (RD) em CBUS da Guardar a resposta em Acc (LAcc) instrução! Endereçar posição de memória seguinte (IPC) ABUS 0000h 0001h (Valores definidos pelo up) RD DBUS 75h 6Eh (Valores definidos pela memória) LIR IPC LACC 23 Avaliação e aprofundamento... Conhecer: Quais as fases de execução de um programa residente em memória? Qual a sua relação com a arquitectura interna de um up? Definir, distinguir: Program Counter? Instruction Register? Registo? Estudar: Livro 2: secções 5.4, 5.5 e 5.7 24