1. Conjunto de Instruções
1.1. Definição
1.1.1. Cada instrução é dada por uma sequência de bits
1.1.2. Cada processador possui seu próprio conjunto de instruções
1.2. CISC
1.2.1. Conjunto de instruções complexas
1.2.2. Compiladores mais complexos
1.2.3. Vantagens
1.2.3.1. Apesar do conjunto de instruções ser muito grande, oferece um número maior de instruções(“ferramentas”) ao programador
1.2.3.2. Menor quantidade de instruções são necessárias para desenvolver um programa (programas ocupam menos memória)
1.3. RISC
1.3.1. Conjunto menor de instruções
1.3.2. Grande número de registradores de propósito geral.
1.3.3. Instruções mais complexas são construídas a partir das mais simples
1.3.4. Utiliza Arquitetura Harvard e Pipeline
1.3.5. Vantagens
1.3.5.1. Etapa de decodificação tão simples que pode, em alguns casos, ser eliminada
1.3.5.2. Simplificação dos circuitos eletrônicos.
1.4. Considerações
1.4.1. Uma única instrução CISC pode equivaler a várias instruções RISC
1.4.2. Uma instrução CISC precisa realizar passos semelhantes aos realizados pelas RISC
1.4.3. CISC minimiza o número de acessos a memória de programa
1.4.4. RISC simplifica a decodificação de instruções, deixando esta etapa mais rápida
1.5. Comparativo
1.5.1. Risc X Cisc
2. Composição
2.1. Imagem
2.2. Vídeo
3. CPU
3.1. Imagem
3.2. Definição
3.2.1. A CPU é responsável pela inteligência da máquina, ou seja, é ela que tem a capacidade de tomar decisões (ações) no sistema computadorizado, por meio da execução de um programa.
3.2.2. É ela que executa o programa armazenado na memória do microcomputador, que foi projetado por um programador.
3.3. Funções
3.3.1. Operações aritméticas e lógicas
3.3.2. Operações de movimentação de dados
3.3.3. Operações de entrada ou saída
3.3.4. Leitura (busca) e interpretação do programa alocado na memória, instrução por instrução
3.3.5. Execução do programa, instrução por instrução
3.4. Esquema de Funcionamento
3.5. Resumindo:
3.5.1. O processador é responsável por buscar e executar as instruções existentes na memória, as quais determinam as operações que o computador deve realizar.
3.5.2. Essas instruções primitivas são denominadas instruções de máquina e, quando agrupadas, formam os programas.
3.6. Componentes
3.6.1. Unidade Lógico Aritmética
3.6.1.1. Como todo sistema, um sistema micro processado constantemente recebe dados e realiza um conjunto de operações sobre eles. Estas operações podem ser operações lógicas (deslocamentos, operações booleanas, etc.) ou aritméticas (somar, multiplicar, etc.)
3.6.1.2. é um dispositivo digital que recebe dois operandos e realiza uma operação (escolhida dentre um conjunto de possíveis) entre eles.
3.6.1.3. Como a ALU funciona?
3.6.2. Registradores
3.6.2.1. Definição
3.6.2.1.1. Os operandos recebidos pela ALU devem vir de algum lugar. Da mesma forma, o resultado da operação deve também ser armazenado em algum lugar.
3.6.2.1.2. Este “lugar” é um conjunto de registradores.
3.6.2.1.3. os registradores provêm operandos para a ALU e podem armazenar o resultado da operação.
3.6.2.2. Tipos
3.6.2.2.1. Registradores visíveis ao usuário
3.6.2.2.2. Registradores de controle e de estado
3.6.3. Unidade de Controle
3.6.3.1. Garante que os componentes do sistema estejam trabalhando em harmonia e em perfeito sincronismo
3.6.3.2. Funções
3.6.3.2.1. controlar todos os outros
3.6.3.2.2. sincronizar as operações
3.6.3.2.3. tomar decisões baseadas em seus resultados
4. Memória
4.1. Definição
4.1.1. a memória é um dispositivo físico capaz de armazenar e recuperar uma configuração elétrica em um "conjunto de fios".
4.1.2. Uma vez que essa configuração elétrica estabelece um padrão de bits, ligados ou desligados, é possível dizer que a memória armazena e recupera dados.
4.2. Hierarquia das memórias
4.2.1. Registradores e Memória Cache
4.2.1.1. Armazenamento Interno
4.2.1.2. armazenamento de curto prazo
4.2.1.3. dados usados intensivamente pelo computador
4.2.1.4. extremamente rápidos
4.2.1.5. pequena capacidade
4.2.1.6. Custo Alto
4.2.2. Memória Principal
4.2.2.1. Armazenamento Interno
4.2.2.2. armazenamento de médio prazo
4.2.2.3. dados medianamente usados
4.2.2.4. custo por bit é médio
4.2.2.5. velocidade de acesso média
4.2.2.6. Capacidade Média
4.2.3. Memória Secundária
4.2.3.1. Armazenamento Externo
4.2.3.2. armazenamento de longo prazo
4.2.3.3. dados pouco usados
4.2.3.4. armazenamento não volátil
4.2.3.5. custo por bit é baixo
4.2.3.6. grande capacidade
4.2.3.7. Lentos
4.2.4. Memória de Segurança
4.2.4.1. Armazenamento externo de Segurança
4.2.4.2. armazenamento de longuíssimo prazo
4.2.4.3. armazenamento não volátil
4.2.4.4. custo por bit extremamente baixo
4.2.4.5. com enorme capacidade
4.2.4.6. extremamente lentos
4.2.5. Imagem
4.3. Organização
4.3.1. A maneira mais fácil de explicar a memória principal é descrevê-la como uma grande prateleira cheia de gavetas
4.3.2. marcamos as gavetas de modo a elas não se confundirem umas com as outras
4.3.3. seu conteúdo será facilmente acessível
4.4. Funcionamento da Memória
4.4.1. o dispositivo memória recebe sinais de controle
4.4.2. que indicam se a operação é de leitura ou escrita na memória
4.4.3. e um endereço
4.4.4. Se a operação for de leitura
4.4.4.1. o dispositivo de memória responde emitindo o dado armazenado no endereço
4.4.5. se a operação for de escrita
4.4.5.1. o dispositivo recebe o dado e o armazena na posição de memória indicada pelo endereço.
4.5. Memória Interna e Memória Externa
4.5.1. A memória interna aquela incorporada nativamente ao sistema computacional
4.5.1.1. a memória cache
4.5.1.2. os registradores
4.5.2. A memória externa aquela adicionada como recurso suplementar ao sistema.
4.6. Unidade de medida de memórias
4.6.1. Os computadores digitais processam a informação através de bits
4.6.1.1. Um bit é a menor unidade num sistema digital e pode assumir o valor 0 ou 1
4.6.2. O agrupamento de 8 bits forma um byte
4.6.2.1. pode armazenar um valor numérico de 0 a 255 ou representar uma letra
4.6.2.2. unidade básica de medida
4.7. Memória Cache
4.7.1. Conceitos
4.7.1.1. tem o objetivo de acelerar a velocidade de transferência das informações entre a memória principal e o processador
4.7.1.2. Podem ser internas ou externas ao processador.
4.7.1.3. possui uma elevada velocidade de transferência de dados
4.7.2. Tipos
4.7.2.1. L1
4.7.2.1.1. é inserida na pastilha da CPU
4.7.2.1.2. 32 a 256KB
4.7.2.2. L2
4.7.2.2.1. é encapsulada no mesmo chip do processador
4.7.2.2.2. 4MB
4.7.2.3. L3
4.7.2.3.1. não vem no processador, e sim em um chip separado instalado na placa mãe.
4.7.2.3.2. L2 externa
4.7.2.4. nos processadores modernos, a memória cache é interna ao encapsulamento da CPU e normalmente referida como memórias cache L1 e L2.
4.8. Memória Principal
4.8.1. Definições
4.8.1.1. para armazenar as instruções que definirão as operações realizadas pela ALU
4.8.1.2. estas instruções são utilizadas durante todo o tempo no qual o sistema estiver ativo
4.8.1.3. capacidade de armazenamento muito maior que os registradores
4.8.1.4. podemos necessitar armazenar mais operandos que nossos registradores permitem
4.8.1.5. Por isto, a memória principal também é utilizada para armazenar dados
4.8.2. O que é a memória Principal?
4.8.2.1. os registradores são usados para armazenar os operandos para que o processador possa realizar operações e executar as instruções
4.8.2.2. mas o sistema necessita de um local para armazenar o conjunto completo de instruções e de dados que serão usados pela CPU
4.8.2.3. Este novo local, geralmente com uma capacidade de armazenamento muito maior que os registradores, é chamado de memória principal.
4.8.3. Memória de Armazenamento de Programa
4.8.3.1. armazena o programa que definirá as tarefas que o microcontrolador / CPU deve executar
4.8.3.2. O microcontrolador não funcionará se não existir um programa armazenado em sua memória de programa
4.8.3.3. Esse programa não pode ser perdido na ausência de energia elétrica
4.8.3.4. o tipo de memória em que esse programa deve ser armazenado é a memória não volátil (ROM)
4.8.4. Memória de Armazenamento de Informações
4.8.4.1. Armazena informações definidas pelo mundo externo por meio de chaves, sensores, teclados etc.,
4.8.4.2. Essa memória deve permitir a escrita e a leitura de informações (RAM).
4.9. Tipos de Memória
4.9.1. RAM
4.9.1.1. O processador pode ler e escrever
4.9.1.2. Perde os dados sem alimentação
4.9.2. ROM
4.9.2.1. Memória somente de leitura
4.9.2.2. Gravada uma única vez na fábrica
4.9.3. PROM
4.9.3.1. Memória somente de leitura
4.9.3.2. Gravadas 1 vez por gravador PROM
4.9.4. EPROM
4.9.4.1. Memória somente de leitura
4.9.4.2. Memória apagável por luz ultravioleta
4.9.4.3. Pode ser gravada n vezes por gravador EPROM, em que não é definido pelo fabricante
4.9.5. EEPROM
4.9.5.1. Memória somente de leitura
4.9.5.2. Memória apagável por luz ultravioleta e por tensão elétrica (15 a 30V)
4.9.5.3. Pode ser gravada n vezes por gravador EEPROM, em que não é definido pelo fabricante
4.9.6. EEPROM Flash
4.9.6.1. MCU conseguem escrever nesta memória ao longo da execução do programa
4.10. Memória Secundária
4.10.1. Conceitos
4.10.1.1. local de armazenamento permanente do computador
4.10.1.2. programas e os arquivos dos usuários
4.10.1.3. A informação precisa ser carregada na memória principal antes de ser tratada pelo processador
4.10.1.4. É importante não confundir armazenamento com memória
4.10.2. Dispositivos
4.10.2.1. discos rígidos - HD
4.10.2.2. discos óticos
4.10.2.3. discos flexíveis
4.10.2.4. discos de estado sólido - SSD
4.10.2.5. dispositivos de armazenamento removíveis
4.10.2.5.1. Pendrives
4.10.2.5.2. Cartões
4.10.2.6. Fitas
5. Dispositivos de Entrada e Saída
5.1. Definição
5.1.1. fonte externa que prove dados ao sistema
5.1.2. apresenta um resultado ao mundo exterior
5.1.3. conversores A/D e D/A, teclado (keypad), visores de cristal líquido, push-button, porta serial, PIO, etc.
5.2. Função
5.2.1. são os responsáveis pela interação da máquina com o homem.
5.2.2. É por meio deles que os dados entram e saem do computador.
5.2.3. Codificam e decodificam as informações
5.3. Comunicação com a CPU e a memória
5.3.1. a maneira com que as informações destes dispositivos são transferidas para a memória pode variar em nível de complexidade, do mais simples e lento ao mais complexo e eficiente
5.3.2. serão apresentados os três modos de comunicação existentes nos computadores modernos
5.3.2.1. Entrada e Saída Programada (ou polling)
5.3.2.2. Acesso Direto à Memória (ou Direct Memory Access, DMA)
5.3.2.3. Entrada e Saída Controlada por Interrupção.
5.3.3. A maior diferença entre os três é o nível de interferência da CPU no processo de comunicação de um dado dispositivo com a memória
5.4. Entrada e Saída Por Polling
5.4.1. Conceitos
5.4.1.1. muito simples
5.4.1.2. a CPU é responsável por todo o controle de transferências de dados de dispositivos
5.4.1.3. E também pela verificação constante dos dispositivos, para saber se algum deles tem dados a serem transferidos
5.4.2. Exemplo do Garçom
5.4.2.1. No sistema de polling o garçom é a CPU e o cliente é o dispositivo
5.4.2.2. O cliente tem que esperar pacientemente até o garçom resolver atendê-lo
5.4.2.3. enquanto o garçom atende a um cliente, ele não pode realizar qualquer outra tarefa
5.4.2.4. Depois que o cliente fez o pedido, ele ainda tem que esperar, pacientemente, o garçom trazer a comida.
5.4.3. Problemas do Polling
5.4.3.1. 1. A CPU gasta uma parcela considerável de tempo de processamento só para verificar se alguns dispositivos têm dados a serem transferidos para a memória.
5.4.3.1.1. muitas vezes a CPU perde tempo perguntando para todos os dispositivos e nenhum deles tem qualquer dado a ser transferido. É tempo de processamento totalmente desperdiçado.
5.4.3.2. 2. A CPU gasta uma parcela considerável de tempo de processamento apenas para transferir dados de um dispositivo para a memória.
5.4.3.2.1. cópia de dados é uma tarefa que dispensa totalmente a capacidade de processamento
5.4.3.2.2. é uma tarefa que mobiliza toda a CPU mas apenas a Unidade de Controle estará trabalhando
5.4.3.2.3. são realizadas duas transferências: dispositivo=>CPU e depois CPU=>Memória
5.4.3.3. 3. Se um dispositivo precisar de um atendimento "urgente" (porque vai perder dados se a CPU não fizer a transferência imediata para a memória, para liberar espaço no dispositivo), não necessariamente ele terá.
5.4.3.3.1. eventualmente, dados serão perdidos
5.5. Entrada e Saída por Interrupção
5.5.1. Conceitos
5.5.1.1. a CPU fica responsável apenas pelas transferências em si
5.5.1.2. ela não tem que verificar os dispositivos, para saber se há dados a serem transferidos.
5.5.1.3. o dispositivo dispara um sinal do barramento de controle chamado "Interrupção"
5.5.2. Exemplo do Garçom
5.5.2.1. o cliente possuir uma sineta que, ao tocar, o garçom viria o mais rapidamente possível para atender ao cliente Barramento
5.5.3. Problemas
5.5.3.1. Há sistemas em que há mais dispositivos que interrupções
5.5.3.1.1. . Neste caso, o sistema ainda terá que fazer polling para saber qual foi o dispositivo que solicitou atenção
5.5.3.1.2. será feito somente quando certamente um dispositivo precisar de atenção da CPU
5.5.3.1.3. Desta forma, elimina-se o problema de tempo perdido fazendo pollings quando nenhum dispositivo precisa de transferências.
5.5.3.2. A forma mais eficiente, entretanto, é quando temos pelo menos uma interrupção por dispositivo
5.5.3.2.1. Essa característica resolve os problemas 1 e 3 existentes no sistema de polling puro
5.5.3.3. e se dois ou mais dispositivos solicitarem uma interrupção ao mesmo tempo?
5.5.3.3.1. Normalmente os sistemas com várias interrupções possuem vários níveis de prioridade de interrupção
5.5.3.4. quando a CPU recebe uma IRQ, ela sempre para o que está fazendo, momentaneamente, para realizar outra atividade qualquer
5.5.3.4.1. Entretanto, há alguns processos em que talvez o programador não quisesse interrupções
5.5.3.4.2. em aplicações onde o controle de tempo é crítico, as interrupções podem causar problemas graves
5.5.3.4.3. DI, de Disable Interrupts
5.5.3.4.4. ao desligar as interrupções, o programador pode, potencialmente, causar um dano grave ao funcionamento do sistema operacional
5.6. GPIO
5.6.1. Entrada
5.6.1.1. detectam a tensão presente externamente no pino correspondente
5.6.1.2. Quando abaixo de determinado valor de tensão, o nível lógico lido é 0, já se dentro de uma faixa próxima do valor de alimentação, o nível lógico lido é 1.
5.6.1.3. chaves ou interruptores quando conectados a pinos de entrada podem alterar estados de variáveis dentro do software em execução no microcontrolador
5.6.2. Saída
5.6.2.1. Pinos configurados como saídas digitais podem ser comandados por meio do software e ter seu valor de tensão assim alterado
5.6.2.2. Nível lógico 0 representa valor de tensão nulo, já nível lógico 1 representa valor de tensão de alimentação do circuito.
5.6.2.3. A saída digital dos microcontroladores é a principal interface deste componente com o mundo real, bastando conectar um LED e fazê-lo piscar, ou um pequeno alto-falante para emitir um sinal sonoro.
6. Barramento
6.1. Definição
6.1.1. Interligam Registradores, memórias, operandos, instruções, dispositivos de E/S, todos estes itens que fazem parte do mesmo sistema.
6.1.2. Cada barramento é constituído por um número de vias (trilhas de cobre), nas quais fluem informações em paralelo
6.1.3. também conhecido como interface CPU/ Memória Principal
6.1.4. CPU não podem manipular diretamente os dados armazenados na memória, pois somente operam sobre valores mantidos em registradores
6.2. Conceitos
6.2.1. Registradores, memórias, operandos, instruções, dispositivos de E/S, todos estes itens fazem parte do mesmo sistema
6.2.1.1. Logo, eles devem interagir entre si
6.2.1.2. Para que isto aconteça, eles devem estar interligados
6.2.1.3. Eles são interligados pelos Barramentos
6.2.2. Cada barramento é constituído por um número de vias (trilhas de cobre), nas quais fluem informações em paralelo.
6.2.2.1. Um barramento de dados de 64 bits tem 64 fios individuais
6.2.2.2. cada fio transporta um bit da informação
6.3. Barramento de endereços
6.3.1. Usado para definir os endereços das posições de memória de programa em que ela irá buscar as instruções a serem executadas
6.3.2. e para definir os endereços de memória de dados ou dos dispositivos de entrada e saída para a troca de informações
6.3.3. . Esse barramento é unidirecional.
6.4. Barramento de temporização e controle
6.4.1. Utilizado para definir os sinais de temporização e controle para gerenciar o tempo e a direção do fluxo de informações nas operações de leitura e escrita nos dispositivos
6.4.2. Esse barramento é unidirecional.
6.5. Barramento de dados
6.5.1. utilizado para receber as informações vindas da memória ou dos dispositivos de entrada e saída
6.5.2. ou então definir as informações para a memória ou para os dispositivos de entrada e saída
6.5.3. Esse barramento é bidirecional
7. Outros Componentes
7.1. Oscilador
7.1.1. É o elemento que gera o “marcapasso” da CPU
7.1.2. permite que o microprocessador realize as suas tarefas internas e externas de maneira sincronizada e com velocidade predeterminada
7.1.3. A unidade de temporização gera sinais em intervalos de tempos regulares
7.2. WatchDog
7.2.1. Tambem chamado de RESET
7.2.2. É o elemento que faz a CPU iniciar suas rotinas internas e realizar também a primeira leitura de instrução no endereço 0000h
7.2.3. contador que está sempre contando, e que o programa sempre o coloca a zero quando é executado corretamente
7.2.4. No caso do programa "travar", o zero não será escrito e o contador, irá fazer o reset do microcontrolador
7.3. Interrupções
7.3.1. São pinos de acesso externo que permitem interromper o microprocessador, que então interrompe suas tarefas atuais e atende aquelas planejadas pela interrupção solicitada
7.4. Conversor AD
7.4.1. os sinais dos periféricos são substancialmente diferentes daqueles que o microcontrolador pode entender
7.4.2. devem ser convertidos num formato que possa ser compreendido pelo microcontrolador.
7.4.3. responsável pela conversão de uma informação de valor analógico para um número binário
7.5. Comunicação Serial
7.5.1. A comunicação serial permite a interligação entre um microcontrolador e um computador, ou outros dispositivos
7.5.2. leitura de dados de sensores, ou interfaces de entrada
7.5.3. acionar motores por meio de comandos oriundos de um computador
7.5.4. Onde se conectam módulos de comunicação sem fio
7.5.4.1. Bluetooth
7.5.4.2. WiFi