Você está na página 1de 25

MICROPROCESSADOR

UCM-FENG
1
MICROPROCESSADOR- CONCEITOS BÁSICOS
Computador – Unidade de processamento que executa
Instruções de um programa para realizar alguma tarefa.
Instrução – define uma única acção que um
computador pode executar por Uma única vez.
As acções das instruções podem ser: leitura ou escrita
de uma informação binária na memória, leitura ou
escrita de uma informação binária em um registador,
operações lógicas entre informações binárias,
operações aritméticas entre informações binárias, etc...

2
MICROPROCESSADOR-
CONCEITOS BÁSICOS
Programa – conjunto de Instruções arranjadas de
maneira organizada por um programador com o
objectivo de informar ao Computador qual a tarefa
que mesmo deverá executar. Os Programas, em geral,
são armazenados na Memória do Computador.
Software – são os programas que são carregados na
memória do Computador para serem executados (Ex:
Windows, Office, C++, etc...).

3
COMPONENTES DA UNIDADE CENTRAL DE PROCESSAMENTO - CPU

Registadores:
Acumulador
Registador 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)
Controlo e Decodificação (Memória de Microprogramas)
Decodificador de Instrução
Barramentos Internos:
Barramento de Dados
Barramento de Endereço
Barramento de Controlo

4
MICROPROCESSADOR
Unidade Lógica Aritmética (ULA),
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,
fornecendo os sinais de temporização adequados
para as diversas partes do processador e do
próprio .
Registadores -armazenamento da Informação
Binária (dados, endereços e instruções).

5
MICROPROCESSADOR
Programação de um Microprocessador
Todos os microprocessadores trabalham com um conjunto de
instruções que implementam as operações básicas. Este possui
conjunto de instruções divididas em sete grupos básicos.
 Transferência de dados,
 Aritméticas e lógicas,
 Manipulação de bit,
 Loops e jumps (saltos),
 Strings,
 Sub-rotinas e interrupções,
 Controlo

6
MICROPROCESSADOR

Critérios para escolha de um microprocessador:


Funcionalidade do conjunto de instruções
Arquitetura e modos de endereçamento
Velocidade de execução (não exatamente a freqüência do clock)
Capacidade aritmética e lógica
Capacidade de endereçamento
Consumo de energia
Tamanho
Presença de periféricos necessários a aplicação
7
ESTRUTURA DOMICROPROCESSADOR

Independetemente do tipo e fabricante do microcomputador está


organizado como se apresenta a seguir

8
UNIDADE CENTRAL DE PROCESSAMENTO - CPU

o Acumulador: é o principal registador dentro de um


processador, participando da maioria das operações lógicas e
aritméticas, sendo em geral fonte de um dos operandos, e destino
dos resultados das operações, além de participar das operações de
entrada e saída de dados.
o Registador de Flags(Bandeiras): armazena os indicadores de
estado do processador (1 bit cada estado), como a ocorrência de
um estouro numa operação aritmética, ou a ocorrência de um
resultado nulo.

9
ORGANIZAÇÃO INTERNA DO MICROPROCESSADOR

10
UNIDADE DE INTERFACE DE BARRAMENTO (BIU)
As partes principais da BIU são a fila de instruções de 4 bytes, os
registradores de segmento(CS, DS, SS e ES), o ponteiro de
instruções (IP) e o bloco de soma de endereços (∑).
Os barramentos internos de dados de 16 bits e o barramento
da fila (Q) interconectam a BIU e a EU.
Fila de Instruções-A fila de instruções aumenta a
velocidade média na qual um programa é executado
(denominado de processamento) armazenando até quatro
bytes (seis no 8086).
Conformedescrito anteriormente, essa técnica permitiu ao
8088 fazer essencialmente duas coisas: busca e execução, ao
mesmo tempo. Essa característica foi expandida em
processadores subsequentes incluindo filas mais rápidas e
muito maiores.

11
UNIDADE DE INTERFACE
DE BARRAMENTO (BIU)
A principal vantagem do método seleccionado é permitir
que o código seja facilmente realocável. Um código
realocável pode ser movido para qualquer lugar dentro do
espaço de memória sem alteração do código básico.
Cada um dos quatro segmentos identifica o endereço inicial
de um bloco de 64 kB (65.536bytes) representando uma
“janela” do espaço de memória completo de 1 M (20 bits).
O endereço inicial de um segmento é representado pelo
número de 16 bits no registrador de segmento mais 4bits
subentendidos anexados à direita os quais são sempre
considerados zeros.
Em outras palavras,os registadores de segmento contêm os
16 bits mais significativos que representam o endereço
físico inicial do segmento.
12
UNIDADE DE EXECUÇÃO (EU)
Unidade de Execução (EU)

Os registos podem ser classificados em 4 grupos:

Registos de uso geral ou de dados;


Registos de ponteiro e de índice;
Registos de segmento;
Registos de estado ou flags e indicadores de instrução.

13
UNIDADE DE EXECUÇÃO
(EU)

Registos de dados

Cada um dos registos de dados AX, BX, CX e DX, pode ser usado
como dois registos de 8 bits independentes, passando a ser
designados como por ex.: AH e AL, em que AH é o byte mais
significativo e AL o menos significativo de AX.

Apesar de normalmente serem usados para operações aritméticas de


8 e 16 bits, operações lógicas e transferência de dados, por vezes têm
funções específicas

14
UNIDADE DE EXECUÇÃO (EU)

AX (Acumulador)

O registo AX ou acumulador, e como tal está envolvido em tipos


específicos de operações como IN (entradas de dados) e OUT
(saídas de dados), multiplicação, divisão e operações de ajuste
decimal codificado em binário.

BX (Base)

O registo BX é frequentemente usado como um registo base para


referenciar posições de memória. Nesses casos, o BX guarda o
endereço base de uma tabela ou vector no qual posições
específicas são referenciadas adicionando-se um valor de
deslocamento. 15
UNIDADE DE EXECUÇÃO
(EU)
CX (Contador)

O registo CX funciona como um registo de 16 bits para contar o


número de bytes ou palavras numa dada string, durante operações
com strings de caracteres e em operações interactivas.
Por exemplo se n palavras devem ser movidas de uma área de
memória para outra, o registo CX irá conter inicialmente o
número total de palavras a serem movidas, e será decrementado à
medida que cada palavra ou byte for transferido.
O CX é também usado como contador de 8 bits para instruções
de deslocamento e rotação.

16
UNIDADE DE EXECUÇÃO
(EU)

DX (Dados)

O registo DX é usado em operações de


multiplicação para armazenar parte de um
produto de 32 bits (os 16 bits mais
significativos), ou em operações de divisão para
armazenar o resto. Pode também ser usado em
operações de IN e OUT para especificar o
endereço de uma porta de I/O.
17
UNIDADE DE EXECUÇÃO
(EU)
Registos de Ponteiro e Índice

Os registos de ponteiros e índice são usados para armazenar valores


de deslocamento de forma a aceder a posições de memória muito
usadas, tais como a stack, ou blocos de dados de acordo
com uma organização vectorial. Os ponteiros SP e BP, são usados
para guardar deslocamentos no segmento de stack corrente da
memória, enquanto os dois registos de índice SI e DI, são
usados para guardar deslocamentos no segmento de dados da
memória.

18
UNIDADE DE EXECUÇÃO (EU)
SP(“Stack Pointer” - SP) -armazena o endereço da última
posição ocupada da pilha (topo da pilha).
A pilha é uma estrutura do tipo LIFO (“Last In First Out”), sendo
utilizada para armazenamento temporário de dados, como o
endereço de retorno de uma sub-rotina ou o salvamento de
registadores do microprocessador.
Em muitos microprocessadores, quando um dado é inserido na
pilha, o Stack Pointer é decrementado, ocorrendo o inverso
quando um dado é retirado

BP (Base pointer)

É o ponteiro da base, permite o acesso a dados dentro do


segmento da stack. Normalmente, este registo é usado para
referências parâmetros que devem ser acedidos através da stack.

19
UNIDADE DE EXECUÇÃO
(EU)

SI (Segment index)

É usado como registo de índice em alguns modos de endereçamento


indirecto. É também usado para guardar um deslocamento que vai
endereçar a posição do operando fonte em operações com strings.

DI (Data index)

É usado como índice em alguns modos de endereçamento indirecto. É


também usado para guardar a posição de destino do operando em
operações com strings.

20
UNIDADE DE EXECUÇÃO (EU)
Registos de Segmento

As áreas de memória alocadas para código de programa, dados e


stack (pilha) são endereçados separadamente. Existem quatro
blocos de memória endereçados disponíveis, chamados
segmentos, cada um com 64 Kbytes.

Os registos CS, DS, SS e ES são usados para apontar à base dos


quatro segmentos endereçáveis de memória; Segmento de código
(Code Segment); Segmento de dados (Data Segment);
Segmento de stack (Stack Segment); e Segmento extra (Extra
Segment).
21
UNIDADE DE EXECUÇÃO
(EU)

22
UNIDADE DE EXECUÇÃO
(EU)
Registo de flags

O registo de flags é um registo de 16 bits, dos quais


apenas 9 bits contêm flags, e que são usados para indicar
várias situações durante a execução das instruções bem
como relativas ao seu
resultado.

23
UNIDADE DE EXECUÇÃO
(EU)

24
BIBLIOGRAPHIC:

1. Zilog - Z80-CPU User Manual, 2004, UM008005-0205, San Jose


2. Bradley, John - Introduction to Microprocessors Micamaster 980
& 960, Feedback, England

25

Você também pode gostar