Instrutor: Walton Lins de Miranda Sup Redes de Computadores - UCB PMTN – Eletrobrás/Eletronuclear HISTÓRICO 1969 – BUSICOM – Calculadora Eletrônica -Japão. 1971 – INTEL – Processador 4 bits 4004 – Estados Unidos – 6K IPs 1972 – INTEL – Processador 8 bits 8008 – Estados Unidos – 300K IPs. 1972 – MOTOROLA – Processador 8 bits 6800 Estados Unidos. 1974 – MOS – Processador 8 bits 6502 – Estados Unidos 1976 – INTEL – 8080 8 bits 1976 – ZILOG – Z80 8 bits compatível com 8080 Intel 1976 – INTEL – Processador 8085 8 bits (mais rápido) 1978 – INTEL - 8086 16 bits 1979 a 2000 – 386 – 486 – Pentium – Pentium MMX – Pentium II, III – Celeron Processor – Itanium Processor. Unidades Básicas de um Microprocessador Unidade Lógica Aritmética - Responsável pela realização das operações lógicas e aritméticas. Unidade de Controle (UC) - Responsável pela decodificação e execução das instruções. ARQUITETURA DE UM MICROPROCESSADOR COMPONENTES DA UNIDADE CENTRAL DE PROCESSAMENTO - CPU Registradores: Acumulador Registrador de Flags Contador do Programa Ponteiro da Pilha Unidade Lógica e Aritmética – ALU Unidade de Controle – UC Circuitos de Temporização (Gerador de Clock) Controle e Decodificação (Memória de Microprogramas) Decodificador de Instrução Barramentos Internos: Barramento de Dados Barramento de Enderêço Barramento de Controle REGISTRADORES São utilizados na execução de programas de computadores, disponibilizando um local para armazenar dados. Na maioria dos computadores modernos, quando da execução das instruções de um programa, os dados são movidos da memória principal para os registradores. Então, as instruções que utilizam estes dados são executadas pelo processador e, finalmente, os dados são movidos de volta para a memória principal. Registradores de dados são utilizados para armazenar valores, tais como inteiros e pontos flutuante. Acumulador O acumulador é um registrador onde são armazenados temporariamente os resultados aritméticos e lógicos intermediários que serão tratados pela Unidade LógicaAritimética (ULA). HIERARQUIA DE MEMÓRIA As características usadas para classificar diferentes tipos de memória são basicamente sua capacidade de armazenamento, tempo de acesso, taxa de transferência, custo, etc. Outros fatores também podem ser analizados, como por exemplo seu consumo de energia e sua durabilidade, e finalmente para se fazer uma comparação entre memórias, é preciso ter em mente que aplicação a memória terá. Usando como exemplo uma comparação de tempo de acesso, poderíamos organizar a seguinte sequência: Registrador <-> Cache <-> Memória RAM <-> Memória secundária HIERARQUIA DE MEMÓRIA Sendo: Registrador: Memória temporária usada pelo processador no processamento das instruções. Cache: Armazena partes da memória principal que são usados frequentemente pelos programas. Memória RAM: Memória principal do computador, sendo diretamente endereçavel pelo processador. Memória secundária: Memória de armazenamento permanente. Fluxo dos Dados Fluxo dos Dados Fluxo dos Dados Fluxo dos dados O quê fazer Onde está? Quem? Fluxo dos Dados Fluxo dos Dados EXEMPLO DE EXECUÇÃO DE UM MICROPROGRAMA Instruções A B f2 f1 f0 Fluxo dos dados Para explicar como funciona um microprocessador decidimos pegar num exemplo simples no qual vamos calcular a soma de 2 com 3. Ao carregar na tecla 2, o microprocessador 'acorda' e manda um sinal à Unidade de Prefetch a pedir à memória pelos dados referentes à instrução visto que não existem estes dados na Memória de Instruções. A nova instrução de dados chega ao microprocessador através da Unidade de Barramento vinda da memória principal e é guardada na Memória de Instruções, onde é designado o código "2=X". A Unidade de Prefetch pede à Memória de Instruções uma cópia do código "2=X" e manda-a para a Unidade de Decodificação para processamento futuro. Fluxo dos dados Na Unidade de Decodificação a instrução "2=X" é traduzida ou decodificada para uma string de código binário que é mandado para a Unidade de Controle e para a Memória de Dados a dizer-lhes o que fazer com a instrução. Visto que a Unidade de Decodificação 'descobriu' que o número 2 era para ser guardada para uma futura utilização na memória de Dados, a Unidade de Controle executa a instrução "2=X". Isto faz com que o número 2 vá para o endereço na Memória de Dados chamado "X", onde ficará à espera de ordens futuras. Quando se carregar a tecla 3, ocorrerá um ciclo equivalente ao da tecla 2. Quando se carregar a tecla "+", a Unidade de Prefetch pede à memória principal do computador e à Memória de Instruções por instruções sobre os novos dados, que devem ser lidos da memória principal. Fluxo dos dados Visto que esta é uma nova instrução, o "+" vem para o microprocessador da memória principal e fica guardado num endereço da Memória de Instruções como o código "X+Y=Z", mostrando que a operação de adição irá ocorrer. A Unidade de Prefetch pede à Memória de Instruções por uma cópia do código "X+Y=Z" e manda-a para a Unidade de Decodificação para processamento futuro. Na Unidade de Decodificação, "X+Y=Z" é traduzido ou decodificado para ser mandado para a Unidade de Controle e Memória de Dados a dizer-lhes o que fazer com a instrução. A ALU também recebe a mensagem de que uma função ADD irá ser realizada. Fluxo dos dados Na Unidade de Controle o código é dividido e o comando ADD é mandado para a ALU onde "X" e "Y" são somados depois de serem enviados da Memória de Dados. A ALU envia finalmente o valor "5" para ser guardado nos Registradores ONDE SÃO USADOS OS MICROPROCESSADORES ? Nos microcomputadores pessoais, workstations. CISC (Complex Instruction Set Computer) -Software 386, 486, K62/500, CELERON...etc. Nos PICs – Periferal Interface Controller. RISC –(Reduced Instruction Set Computer ) -Firmware PLCs – Programadores Lógicos Controlados. ARQUITETURA DE MICROCOMPUTADORES Em computadores pessoais temos o conceito de BIOS (programa de inicialização de periféricos) + SISTEMA OPERACIONAL (interface gráfica amigável ao usuário) + APLICATIVO (programa final). CPU Unidade Central de Processamento: Bloco com capacidade de realizar tarefas (controlar sinais de controle e temporização do sistema, bem como barramentos de dados e endereço) orientadas por instruções. É o principal elemento de decisão do computador, podendo ser comparado ao cérebro do “ser humano”. MEMÓRIAS Bloco semicondutor com capacidade de armazenar informações. Armazena basicamente as instruções a serem processadas (através de seus códigos de operação), variáveis (como resultados de operações da C.P.U.) ou dados de entrada e saída dos periféricos. A memória dos microcomputadores podem ser divididas em volátil (RAM estática /dinâmica), Random Access Memory Não voláteis (ROM / PROM / EPROM / EEPROM - FLASH). PROM - Fusíveis EPROM- U.V EEPROM – grava e apaga elétricamente MEMÓRIAS Cache: É uma memória presente em diversos componentes de hardware. As memórias cache mais conhecidas são as do processador e da placa-mãe. A memória cache sempre tem um tamanho (este medido em KB ou MB) reduzido, pois ela tem como principal função fazer um intermédio entre dois itens quaisquer de uma forma mais rápida. A memória cache, geralmente, armazena dados importantes ou que sejam utilizados constantemente, isto agiliza muito o processamento de dados e você obtém resultados mais rápidos. MEMÓRIAS Bios: É uma memória do tipo EPROM, inicializa todo o hardware da máquina, responsável pela manutenção da data, hora, configurações do hardware, permitindo também a alteração das suas funções na medida da necessidade, tais como velocidade da memória, mudança do processador, etc. de acordo com as especificações do fabricante da placa mãe. BIOS MEMÓRIAS Memórias Auxiliares: Em computadores pessoais temos o conceito de BIOS (programa de inicialização de periféricos) + SISTEMA OPERACIONAL ( interface gráfica amigável ao usuário) + APLICATIVO (programa final). BARRAMENTOS EXTERNOS a) BARRAMENTO DE DADOS: É UM BARRAMENTO BIDIRECIONAL. b) BARRAMENTO DE ENDEREÇOS: É UM BARRAMENTO UNIDIRECIONAL. c) BARRAMENTO DE CONTROLE: CONTROLA O FUNCIONAMENTO DOS BARRAMENTOS DE DADOS E ENDEREÇOS. BARRAMENTOS EXTERNOS BARRAMENTOS EXTERNOS Pontes Norte e Sul PROCESSADOR (Não instalado) SLOT MEMÓRIA RAM PONTE NORTE SLOT AGP SLOT PCI PONTE SUL BIOS DISPOSITIVOS I/O Common HIDs Teclado Mouse, Trackball, Touchpad Graphics tablet (mesa digitalizadora) Joystick, Gamepad, Analógico Webcam Fone (telefone) DISPOSITIVOS I/O MICROPROCESSADORES & MICROCONTROLADORES Microprocessador -> CPU encapsulada em um único circuito integrado. Pelo fato de concentrar apenas a função de controle no “chip”, as aplicações de microprocessadores são complexas voltadas para multimídia (controle de som + imagem + comunicação). Ex: - Microprocessador Pentium IV da Intel. A aplicação do Pentium é em computadores multimídia. MICROPROCESSADORES & MICROCONTROLADORES PONTES NORTE E SUL DE UM MICROCOMPUTADOR O chipset é um dos principais componentes lógicos de uma placa-mãe, dividindo-se entre "ponte norte" (northbridge, controlador de memória, alta velocidade) e "ponte sul" (southbridge, controlador de periféricos, baixa velocidade). A ponte norte faz a comunicação do processador com as memórias, e em alguns casos com os barramentos de alta velocidade AGP e PCI Express. Já a ponte sul, abriga os controladores de HDs (ATA/IDE e SATA), portas USB, paralela, PS/2, serial, os barramentos PCI e ISA, que já não é usado mais em placas-mãe modernas. Muitas vezes, como em algumas implementações de controladores para processadores AMD K8 (Athlon 64 e Athlon X2, nos quais o controlador de memória está embutido no processador), as duas pontes (bridges) são substituídas por um único chip, o que reduz custos para os fabricantes. O chipset é quem define, entre outras coisas, a quantidade máxima de memória RAM que uma placa-mãe pode ter, o tipo de memória que pode ser usada (SDRAM, DDR-SDRAM, Rambus, etc.), a freqüência máxima das memórias e do processador e o padrão de discos rígidos aceitos (UDMA/33, UDMA/66, etc.). MICROPROCESSADORES & MICROCONTROLADORES Microcontrolador -> CPU + MEMORIA + PERIFËRICOS encapsulados em Um único circuito integrado. Dedicado a funções menos complexas de controle. Normalmente está “embarcado” em equipamentos dedicados. Utiliza o conceitode “firmware” para o programa dedicado. Ex: - Microcontrolador 8051 da Intel - Microcontrolador PIC12F629 da Microchip MICROPROCESSADORES & MICROCONTROLADORES APLICAÇÃO TÍPICA DO MICROCONTROLADOR PIC 12F629 MICROPROCESSADORES & MICROCONTROLADORES Microcontrolador PIC 18F4550 fazendo o controle de um modelo automotivo. MICROPROCESSADORES & MICROCONTROLADORES BOARD EXPERIMENTAL Você pode, via comunicação serial ou USB, a partir de seu microcomputador, gravar um programa (firmware) no PIC 18F4550, que define o que o micocontrolador deverá executar: Ex: Sistemas de alarme, controle de bombas e lâmpadas, ligar o computador remotamente, usando a linguagem C++, para gravar o programa. MICROPROCESSADORES & MICROCONTROLADORES - Controladores Lógicos Programáveis (PLCs) - Em plantas industriais. - Injeção eletrônica de automóveis. PROGRAMADOR LÓGICO CONTROLÁVEL – PLC. 1. Facilidade de programação; 2. Facilidade de manutenção com conceito plug-in; 3. Alta confiabilidade; 4. Dimensões menores que painéis de Relês, para redução de custos; 5. Envio de dados para processamento centralizado; 6. Preço competitivo; 7. Expansão em módulos; 8. Mínimo de 4000 palavras na memória. PLANTA INDUSTRIAL USANDO PROGRAMADOR LÓGICO CONTROLÁVEL LINGUAGEM LADDER ou, a linguagem dos relés PROGRAMADOR LÓGICO CONTROLÁVEL – PLC. Podemos didaticamente dividir os CLP's historicamente de acordo com o sistema de programação por ele utilizado: 1ª Geração: Os CLP's de primeira geração se caracterizam pela programação intimamente ligada ao hardware do equipamento. A linguagem utilizada era o Assembly que variava de acordo com o processador utilizado no projeto do CLP, ou seja, para poder programar era necessário conhecer a eletrônica do projeto do CLP. Assim a tarefa de programação era desenvolvida por uma equipe técnica altamente qualificada, gravando-se o programa em memória EPROM, sendo realizada normalmente no laboratório junto com a construção do CLP. 2ª Geração: Aparecem as primeiras “Linguagens de Programação” não tão dependentes do hardware do equipamento, possíveis pela inclusão de um “Programa Monitor “ no CLP, o qual converte (no jargão técnico, “compila”), as instruções do programa, verifica o estado das entradas, compara com as instruções do programa do usuário e altera o estados das saídas. Os Terminais de Programação (ou maletas, como eram conhecidas) eram na verdade Programadores de Memória EPROM. As memórias depois de programadas eram colocadas no CLP para que o programa do usuário fosse executado. PROGRAMADOR LÓGICO CONTROLÁVEL – PLC. 4ª Geração: Com a popularização e a diminuição dos preços dos microcomputadores (normalmente clones do IBM PC), os CLP's passaram a incluir uma entrada para a comunicação serial. Com o auxílio dos microcomputadores a tarefa de programação passou a ser realizada nestes. As vantagens eram a utilização de várias representações das linguagens, possibilidade de simulações e testes, treinamento e ajuda por parte do software de programação, possibilidade de armazenamento de vários programas no micro, etc. 5ª Geração: Atualmente existe uma preocupação em padronizar protocolos de comunicação para os CLP's, de modo a proporcionar que o equipamento de um fabricante “converse” com o equipamento outro fabricante, não só CLP's, como Controladores de Processos, Sistemas Supervisórios, Redes Internas de Comunicação e etc., proporcionando uma integração a fim de facilitar a automação, gerenciamento e desenvolvimento de plantas industriais mais flexíveis e normalizadas, fruto da chamada Globalização. Existem Fundações Mundiais para o estabelecimento de normas e protocolos de comunicação. A grande dificuldade tem sido uma padronização por parte dos fabricantes. Com o avanço da tecnologia e consolidação da aplicação dos CLPs no controle de sistemas automatizados, é frequente o desenvolvimento de novos recursos dos mesmos. PROGRAMADOR LÓGICO CONTROLÁVEL – PLC. CPU (Central Processing Unit - Unidade Central de Processamento): compreende o processador (microprocessador, microcontrolador ou processador dedicado), o sistema de memória (ROM e RAM) e os circuitos auxiliares de controle; Circuitos/Módulos de I/0 (Input/Output - Entrada/Saída): podem ser discretos (sinais digitais: 12VIDC, 11OVAC, contatos normalmente abertos, contatos normalmente fechados) ou analógicos (sinais analógicos: 4-2OmA, 0-1 OVDC, termopar); Fonte de Alimentação: responsável pela tensão de alimentação fornecida à CPU e aos Circuitos/Módulos de 1/0. Em alguns casos, proporciona saída auxiliar (baixa corrente); Base ou Rack: proporciona conexão mecânica e elétrica entre a CPU, os Módulos de 1/0 e a Fonte de Alimentação. Contém o barramento de comunicação entre eles, no qual os sinais de dados, endereço, controle e tensão de alimentação estão presentes. PROGRAMADOR LÓGICO CONTROLÁVEL – PLC. Pode ainda ser composto por Circuitos/Módulos Especiais: contador rápido (5kHz, 10kHz, 100kHz, ou mais), interrupção por hardware, controlador de temperatura, controlador PID, coprocessadores (transmissão via rádio, posicionamento de eixos, programação BASIC, sintetizador de voz, entre outros) e comunicação em rede, por exemplo. As figuras a seguir mostram a estrutura básica de um PLC e a foto de um PLC comercial: PROGRAMADOR LÓGICO CONTROLÁVEL – PLC. PROGRAMADOR LÓGICO CONTROLÁVEL – PLC.