Mudanças entre as edições de "MI1022806 2020 1 AULA07"
(→ULA) |
|||
(9 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
=CPU - Unidade de Controle= | =CPU - Unidade de Controle= | ||
− | + | ;A CPU é o "cérebro" do processador. E possui as funções de: | |
− | + | :- Interpretação e execução dos programas da memória principal; | |
+ | :- Controle dos demais componentes. | ||
− | |||
− | + | [[image:fig_145_MI1022806.jpeg|border|center|600px]] | |
− | |||
− | |||
− | + | ;Componentes: | |
− | - Registradores - | + | :- Registradores - armazenam temporariamente dados e instruções. |
− | instruções. | ||
− | - Unidade Lógica e Aritmética (ULA)- “processa” os dados e atualiza os registradores. | + | :- Unidade Lógica e Aritmética (ULA)- “processa” os dados e atualiza os registradores. |
− | - Unidade de Controle (UC) - “dispara” cada um das etapas de execução da instrução. | + | :- Unidade de Controle (UC) - “dispara” cada um das etapas de execução da instrução. |
− | |||
==ULA== | ==ULA== | ||
Linha 35: | Linha 31: | ||
[[image:fig_146_MI1022806.jpeg|border|center]] | [[image:fig_146_MI1022806.jpeg|border|center]] | ||
− | == | + | ==Registradores== |
− | + | Um banco de registradores são pequenas unidades de memória com alta velocidade. | |
* Mais rápidas que as memórias principal e cache. | * Mais rápidas que as memórias principal e cache. | ||
Linha 104: | Linha 100: | ||
[[image:fig_150_MI1022806.jpeg|border|center|600px]] | [[image:fig_150_MI1022806.jpeg|border|center|600px]] | ||
− | == | + | ==Ciclo de Busca-Execução (fetch-execute)== |
# Busca a instrução (memória → IR); | # Busca a instrução (memória → IR); | ||
Linha 193: | Linha 189: | ||
< tamanho do ciclo ⇒ < tempo de execução ⇒ > nº de instruções/seg. | < tamanho do ciclo ⇒ < tempo de execução ⇒ > nº de instruções/seg. | ||
+ | |||
+ | =Exercícios= | ||
+ | |||
+ | [1] Quais as principais funções da CPU? | ||
+ | |||
+ | [2] Quais os principais componentes da CPU e como eles se comunicam? | ||
+ | |||
+ | [3] O que é a ULA? | ||
+ | |||
+ | [4] Qual a diferença entre os registradores de uso geral e registradores de controle? | ||
+ | |||
+ | [5] Quantos registradores a família 8088/8086 possuem? Qual o tamanho? | ||
+ | |||
+ | [6] Fale-me sobre o registrador PSW. | ||
+ | |||
+ | [7] No que ser refere a UC - qual a diferença entre: "controlar a execução de uma instrução" e "executar a instrução"? | ||
+ | |||
+ | [8] Como se dá o ciclo de busca e execução de uma instrução? | ||
+ | |||
+ | [9] Quais as categorias de instruções? | ||
+ | |||
+ | [10] O que são "interrupções" e para que servem? | ||
+ | |||
+ | [11] O que muda no ciclo de busca e execução de uma instrução em microcontroladores com "interrupções"? | ||
+ | |||
+ | [12] Como funcionam as múltiplas interrupções? | ||
+ | |||
+ | [13] O que significa: "< tamanho do ciclo ⇒ < tempo de execução ⇒ > nº de instruções/seg". | ||
+ | |||
+ | [14] O que é um barramento de computador? | ||
+ | |||
+ | [15] Qual a diferença entre um barramento serial e um paralelo? | ||
+ | |||
+ | [16] Explique o que são linhas: de dados, de endereços e de controle? | ||
+ | |||
+ | [17] Quando um dispositivo ou módulo do sistema deseja enviar ou requisitar dados para outro, como ele deve proceder? | ||
+ | |||
+ | [18] Cite barramentos computacionais típicos? | ||
+ | |||
+ | [19] Qual a diferença entre um barramento ser dedicado ou ser multiplexado? | ||
+ | |||
+ | [20] Como se dá um processo típico de arbitragem em um barramento do tipo PCI? | ||
+ | |||
+ | [21] Qual a diferença entre o barramento de cache e o barramento de memória? (ora, chace também é uma memória!) | ||
+ | |||
+ | [22] Para que servem barramentos de E/S? | ||
+ | |||
+ | [23] Vocês saberiam dizer que tipos de barramento tem o PC/Notebook que vocês usam? (não abram!) | ||
+ | |||
+ | |||
----- | ----- |
Edição atual tal como às 16h07min de 23 de fevereiro de 2021
CPU - Unidade de Controle
- A CPU é o "cérebro" do processador. E possui as funções de
- - Interpretação e execução dos programas da memória principal;
- - Controle dos demais componentes.
- Componentes
- - Registradores - armazenam temporariamente dados e instruções.
- - Unidade Lógica e Aritmética (ULA)- “processa” os dados e atualiza os registradores.
- - Unidade de Controle (UC) - “dispara” cada um das etapas de execução da instrução.
ULA
É o “núcleo” da CPU.
- Executa as operações de processamento de dados. Podem ser diferentes para cálculos com inteiros e ponto flutuante.
- Ativa bits especiais (flags), como resultado da operação. Ex: operação nula (bit Z), operação negativa (bit N), overflow, etc.
- Está conectada a um grupo de registradores pelo barramento interno, formando o caminho de dados.
- Pode-se utilizar um conjunto de conjunto de ULAs para a execução paralela de instruções.
Registradores
Um banco de registradores são pequenas unidades de memória com alta velocidade.
- Mais rápidas que as memórias principal e cache.
- Utilizam o barramento interno da CPU.
Armazenamento temporário de dados, instruções e endereços, em utilização pelo processador.
- Possuem diferentes funções, mas têm um uso bem definido, dentro da arquitetura.
- Possibilitam operações de leitura e escrita.
Registradores de uso geral
- Utilizados para armazenar dados que serão processados ou produzidos pela ULA. Ex: AX-DX, AC, R0-R13.
- Coletivamente são chamados conjunto de registradores de dados (data register file).
Registradores de controle
- Utilizados no controle das operações pela CPU e nas trocas de informações com a MP. Ex: PC, IR, MAR, MBR.
- Alguns desses são invisíveis aos programadores.
Registradores (Processador 8088/8086)
- CPU possui 14 registradores de 16 bits visíveis.
- 4 registradores de uso geral:
- AX (Acumulador): armazena operandos e resultados dos cálculos aritméticos e lógicos.
- BX (Base): armazena endereços indiretos.
- CX (Contador): conta iterações de loops ou especifica o n° de caracteres de uma string.
- DX (Dados): armazena overflow e endereço de E/S.
- Podem ser usados como registradores de 8 bits: Ex: AH e AL (byte alto e byte baixo de AX).
- 4 registradores de segmento:
- CS (Segmento de Código): contém o endereço da área com as instruções de máquina em execução.
- DS (Segmento de Dados): contém o endereço da área com os dados do programa. Geralmente aponta para as variáveis globais do programa.
- SS (Segmento de Pilha): contém o endereço da área com a pilha. Que armazena informações importantes sobre o estado da máquina, variáveis locais, endereços de retorno e parâmetros de subrotinas.
- ES (Segmento Extra): utilizado para ganhar acesso a alguma área da memória quando não é possível usar os outros registradores de segmento. Ex: transferências de bloco de dados.
- 5 registradores de offset:
- PC (Program Counter) ou IP (Instruction Pointer): usado em conjunto com o CS para apontar a próxima instrução.
- SI (source index) e DI (destiny index): utilizados para mover blocos de bytes de um lugar (SI) para outro (DI) e como ponteiros para endereçamento (junto com os registradores CS, DS, SS e ES).
- BP (Base Pointer): usado em conjunto com o SS para apontar a base da pilha. Similar ao registrador BX. Usado para acessar parâmetros e variáveis locais.
- SP (Stack Pointer): usado em conjunto com o SS para apontar o topo da pilha.
- 1 registrador de estado do processador (PSW) :
- Registrador especial composto por sinalizadores (flags) que ajudam a determinar o estado atual do processador. Coleção de valores de 1 bit. Apenas 9 bits são utilizados:
- 4 mais utilizados: ZF - zero; CF - carry ("vai um“) ou borrow (“vem um”); SF - sinal; e OF - overflow ou underflow.
Organização dos Registradores – Família Intel
Unidade de Controle
- Gerencia os recursos disponíveis e o fluxo de dados entre os componentes.
- Controla a execução das instruções pela CPU:
- Busca as instruções na memória principal.
- Decodificação das instruções (geração dos sinais de controle correspondentes).
- Seqüenciamento das operações.
- Disparo da execução (envio dos sinais de controle).
- Representa uma das partes mais difíceis de ser projetada em um computador, devido à complexidade dos processadores.
Estrutura
Ciclo de Busca-Execução (fetch-execute)
- Busca a instrução (memória → IR);
- Altera PC para indicar a próxima instrução;
- Decodifica a instrução atual;
- Determina o endereço e busca o operando na memória (quando necessário);
- Executa a operação (sinais de controle);
- Armazena os resultados;
- Repete passos anteriores.
Categorias de Instruções
- Movimentação processador – memória: Transferência de dados entre CPU e memória principal.
- Movimentação processador - E/S: Transferência de dados entre CPU e módulos de E/S.
- Processamento de dados: Realiza alguma operação lógica ou aritmética nos dados.
- Operações de controle: Alteração na seqüência de execução de instruções. Ex: desvios condicionais e não-condicionais (jump)
- Qualquer combinação das operações acima
Máquina Hipotética (32 bits)
Interrupções
Mecanismos pelos quais outros componentes podem interromper a seqüência normal do processamento.
- Visa melhorar a eficiência do processamento.
- Fontes de interrupções mais comuns:
- Programa (Software): gerada por alguma condição que ocorra como resultado da execução de uma instrução. Ex: overflow, divisão por zero, instrução ilegal etc.
- Timer: gerada pelo processamento interno do relógio (timer). Usado em sistemas sistemas multi-tarefa preemptivos para executar certas funções a intervalos regulares de tempo.
- E/S: gerada pelo módulo de E/S para sinalizar a conclusão uma operação ou a ocorrência de uma situação de erro.
- Falha de Hardware: gerada na ocorrência de uma falha. Ex: queda de energia, erro de paridade de memória
Controle do fluxo do programa
Ciclo de interrupção:
- Acrescentado ao ciclo de instrução.
- Processador verifica se há interrupção: Indicado por um sinal de interrupção.
- Se não há interrupção, busca a próxima instrução na memória.
- Se houver interrupção pendente:
- Suspende a execução do programa corrente.
- Salva o contexto na pilha.
- Configura PC com o endereço de início da rotina de rotina de tratamento da interrupção (interrupt handler routine).
- Processa a interrupção.
- Restaura o contexto.
- Continua a execução do programa interrompido.
Ciclo de Instruções com Interrupção
Múltiplas interrupções
Desabilitar interrupções:
- O processador ignora futuras interrupções enquanto processa uma interrupção.
- Interrupção são manipuladas na seqüência em que elas acontecem.
Definir prioridades:
- Interrupções de baixa prioridade são interrompidas por interrupções de alta prioridade
- Quando a interrupção de mais alta prioridade foi processada, o processador retorna à interrupção anterior.
Execução sequencial:
Execução aninhada:
Sinal de clock
- Utilizado para atender as relações de tempo requeridas nas operações (sincronismo).
- Novas operações básicas são iniciadas em um novo ciclo de clock.
- A execução de uma instrução consome um certo nº de ciclos de clock.
- Varia de acordo com o nº de operações básicas requeridas e o tempo de execução de cada uma delas.
- O tamanho do ciclo de clock é um dos fatores que determinam o desempenho de um processador.
< tamanho do ciclo ⇒ < tempo de execução ⇒ > nº de instruções/seg.
Exercícios
[1] Quais as principais funções da CPU?
[2] Quais os principais componentes da CPU e como eles se comunicam?
[3] O que é a ULA?
[4] Qual a diferença entre os registradores de uso geral e registradores de controle?
[5] Quantos registradores a família 8088/8086 possuem? Qual o tamanho?
[6] Fale-me sobre o registrador PSW.
[7] No que ser refere a UC - qual a diferença entre: "controlar a execução de uma instrução" e "executar a instrução"?
[8] Como se dá o ciclo de busca e execução de uma instrução?
[9] Quais as categorias de instruções?
[10] O que são "interrupções" e para que servem?
[11] O que muda no ciclo de busca e execução de uma instrução em microcontroladores com "interrupções"?
[12] Como funcionam as múltiplas interrupções?
[13] O que significa: "< tamanho do ciclo ⇒ < tempo de execução ⇒ > nº de instruções/seg".
[14] O que é um barramento de computador?
[15] Qual a diferença entre um barramento serial e um paralelo?
[16] Explique o que são linhas: de dados, de endereços e de controle?
[17] Quando um dispositivo ou módulo do sistema deseja enviar ou requisitar dados para outro, como ele deve proceder?
[18] Cite barramentos computacionais típicos?
[19] Qual a diferença entre um barramento ser dedicado ou ser multiplexado?
[20] Como se dá um processo típico de arbitragem em um barramento do tipo PCI?
[21] Qual a diferença entre o barramento de cache e o barramento de memória? (ora, chace também é uma memória!)
[22] Para que servem barramentos de E/S?
[23] Vocês saberiam dizer que tipos de barramento tem o PC/Notebook que vocês usam? (não abram!)