Aula1 Introdução Aos Sistemas Computacionais-1

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 52

DEPARTAMENTO DE ENGENHARIA DE TELECOMUNICAÇÕES

ISUTIC - Instituto Superior de Tecnologias de


Informação e Comunicação

Engenharia de Telecomunicações (2º Ano – 4º Semestre)

Disciplina de Microprocessadores

Luanda - 2024 Prof: Adilson G. Domingos


Introdução aos Sistemas Computacionais

Organização Básica dos Sistemas Computacionais


Todo Sistema Computacional possui como principal
característica a propriedade de ser “programável”.

• Todo Sistema Computacional é constituído de duas partes fundamentais: Hardware e Software

 Hardware: é a parte física de todo o Sistema.

 Software: é a parte maleável do Sistema, constituído


pelo Programa a ser executado.
Organização Básica dos Sistemas Computacionais
Todo Sistema Computacional tem seu Hardware, organizado segundo a estrutura básica
apresentada pela figura abaixo.

Figura: Arquitetura de VON NEUMAN (ou Princeton)


CPU (Unidade Central de Processamento)

• A CPU é responsável pelo controle de todo o Sistema.

Em um Microcomputador a
CPU é implementada por um
único Chip, o Microprocessador. Em um Microcontrolador
toda esta estrutura é
EX: Pentium, Athlon, etc encapsulada em um único
chip.
CPU (Unidade Central de Processamento)

Fig: Sistema Computacional com Microprocessador Fig: Sistema Computacional com Microcontrolador
Dispositivos de entrada e saída (I/O)

PORTAS:
• Paralela
• Serial
• USB
• etc

• Padrões:
- Físico (conector),
- Elétrico (tensão nos pinos, por exemplo)
- Sinalização (seqüência de comunicação)

• Periféricos  são os vários tipo de Dispositivos que permitem a comunicação entre o


Sistema e o exterior, através das Portas.

• Portas  estabelecem padrões, para os Periféricos serem conectados ao Sistema.


Barramentos
Barramentos  fazem a interconexão de todas as partes do Sistema Computacional

• B.Dados  por onde trafegam os dados (Bi-direcional)


• Capacidade de manipulação de dados
• Ex: 8 bits  valores de 0 a 255
16 bits  valores de 0 a 65535
32 bits  valores de 0 a 4.294.967.295

• B.Endereços  indica qual dispositivo será acessado.

• Capacidade de endereçamento da CPU


• Ex: 16 bits = 216 = 65.536 (64K) endereços de memória ou portas de I/O
32 bits = 232 = 4.294.967.296 (4G) endereços

• B.Controle  determina a maneira como será feito o acesso aos dispositivos (Read/Write) faz a sequenciação e
sincronização dos sinais de controle internos e externos.
Memórias
Tipos de memórias e sua classificação

Memórias

Primárias Secundárias

RAM ROM
CD Floppy
DVDs HD Disc
ROMs

Flash
SRAM DRAM MROM PROM EPROM EEPROM
ROM
Memória
• Armazenam os dados que serão manipulados e também o próprio programa a
ser executado pela CPU.

• Tipos:
• Memória de programa ( Ex: Flash)
• Memória de dados ( Ex: RAM)

Quanto a funcionalidade no sistema:

• Memória Principal  armazenam programas e dados que são


manipulados pela CPU durante o processamento.

• Memória Secundária (ou auxiliar)  armazenam programas e dados


que não estão em uso pela CPU.
Memórias

Conceitos Básicos e Terminologia

Memória  todo dispositivo capaz de armazenar informações.

Célula de memória  dispositivo capaz de armazenar um único bit (0 ou 1).


Como célula de memória podemos citar o flip-flop, um capacitor, um ponto magnético em fita ou disco, etc.

Palavra de memória  um conjunto de bits que representa instruções ou dados armazenados.

Ex: um registrador composto por 8 flip-flops  capacidade de armazenar uma palavra de 8 bits (1 byte).

Endereço  um número que identifica a posição de uma palavra na memória.


Conceitos Básicos e Terminologia

Ex: uma memória de 1024 endereços x 8 bits:

MODE CONTROLS DATA BUS


CS/ OE/
disable H X HI-Z
read L L OUT
write L H IN
Capacidade de uma memória
É a capacidade de armazenamento de bits. Esta medida, muitas vezes pode ser expressa
em bytes.

Exemplos:

1) Uma memória que possa armazenar 4.096 palavras de 20 bits.

Capacidade total de armazenamento de: 4.096 x 20 = 81.920 bits

2) Uma memória que possa armazenar 65.536 palavras de 8 bits.

Capacidade total de armazenamento de: 65536 x 8 = 524.288 bits ou


65536 bytes ou 64 Kbytes.
Créditos e Referências:

Instituto Nacional de Telecomunicações: INATEL


Memórias

Conceitos sobre dispositivos de memória

Tempo de acesso  É a quantidade de tempo necessário à efetivação de uma operação de


leitura.

Memória volátil  tipo de memória que necessita de energia elétrica para reter as informações
armazenadas. Quando a energia elétrica for interrompida toda a informação armazenada será
perdida.

Memória não-volátil  tipo de memória que mantém os dados armazenados mesmo sem
energia.
Memória de acesso randômico (RAM)  a localização física real de uma palavra de memória
não tem efeito sobre o tempo que se leva para ler ou escrever nesta posição, isto é, o tempo de
acesso é constante para qualquer endereço da memória.

Memória de acesso sequencial (SAM)  Para encontrar determinada palavra, passa-se por
todos os endereços situados entre aquele onde se realizou o último acesso e o objeto do acesso
atual. Isto produz tempos de acesso bem maiores do que os dispositivos de acesso randômico.
Memória de Leitura/Escrita (RWM)  Qualquer memória que possa ser lida ou escrita.

Memória Somente de leitura (ROM)  Memória que só pode ser gravada ou programada por
processo especial de gravação ou na fábrica, ou seja, depois de programada ou gravada, a informação
somente poderá ser lida pela CPU.

Memória estática  as informações armazenadas permanecerão armazenadas enquanto houver


energia elétrica aplicada à memória, sem que haja necessidade da informação ser rescrita
periodicamente na memória.

Memória dinâmica  as informações armazenadas não permanecerão armazenadas, mesmo com a


presença da energia elétrica necessária para alimentar o circuito, a não ser que as informações sejam
periodicamente rescritas.
Esta operação é denominada refresh (recarga).

Tipos de Memórias a Semicondutor


ROM (Read-Only Memory)

Durante sua operação normal nenhum dado poderá ser escrito na ROM, sendo utilizada então apenas
para leitura de dados que estiverem armazenados.

Para alguns tipos de ROM os dados são gravados durante o processo de fabricação enquanto que,
para outros, os dados são gravados eletricamente por um processo especial de gravação.
As ROMs são não voláteis e por isso são usadas para guardar programas e alguns dados (tabelas,
códigos, etc) que não mudarão durante a operação de um sistema.
Tipos de Memórias a Semicondutor

ROM – Arquitetura – Um exemplo de uma ROM de 16 x 8 bits


Tipos de Memórias a Semicondutor

Tipos de ROM: MROM (Mask ROM) - ROM programada por máscara

Tem suas posições de memória gravadas pelo fabricante de acordo com as


especificações do cliente.

Uma máscara é utilizada para realizar as


conexões elétricas do chip;

Vantagem: alternativa mais econômica, desde que sejam produzidas em larga


escala;

Desvantagem: não podem ser apagadas e reprogramadas caso ocorra a mudança


de um determinado projeto que exija modificações nos dados armazenados, a
memória não pode ser reaproveitada (regravada).
Tipos de Memórias a Semicondutor

Tipos de ROM: PROM (Programmable ROM) - ROM programáveis

Esse tipo de ROM é conhecido como PROM FUSE, isto é, uma ROM programável por fusíveis.

Depois de gravada uma palavra, não mais poderá ser alterada ou desgravada.

Se após gravada, houver a necessidade de modificar os dados armazenados, isto não mais será possível,
havendo então necessidade de utilizar outro chip.
Tipos de Memórias a Semicondutor

Tipos de ROM: EPROM (Erasable PROM) - ROM programável / apagável

Pode ser programada pelo usuário, com a vantagem de poder ser apagada e reprogramada quantas vezes
forem necessárias.

Uma vez programada uma EPROM comporta-se como uma memória não volátil.

O processo de programação de uma EPROM envolve a aplicação de níveis especiais de tensão situados
entre 10 e 25V às entradas do chip, em intervalos com tempo determinado, da ordem de alguns
milisegundos por posição de memória.

Em seu estado natural (sem qualquer programação) todas as células armazenam o bit 1. Durante a
programação os pinos de dados e endereços da EPROM são usados para selecionar quais células são
programadas como “0” e quais serão deixadas em “1”.
Tipos de Memórias a Semicondutor

Tipos de ROM: EPROM (Erasable PROM) - ROM programável / apagável

Depois de gravada uma EPROM, é possível apagá-la expondo-a à luz ultravioleta,


aplicada através de uma janela no chip, requerendo para isso uma exposição que
varia de 15 a 30 minutos, dependendo da intensidade da luz.

Não é possível apagar células selecionadas, pois ao


expor o chip à radiação ultravioleta todas as células
se apagarão, voltando a nível “1”.

Tipos de ROM: EEPROM (Electrically-Erasable PROM) - ROM programável / apagável


eletricamente

As EPROMs apresentam duas grandes desvantagens:


- precisa ser retirada do circuito para ser apagada e reprogramada;
- a memória inteira é apagada com a aplicação de radiação ultravioleta.

Para contornar esse inconveniente foi desenvolvido um outro tipo de EPROM, que
pode ser apagada por pulsos elétricos, são as denominadas EEPROM ou E2PROM.
A grande vantagem com relação a EPROM é que o apagamento e a reprogramação dos dados podem ser
feitos seletivamente (em bytes) ao invés da memória toda e para ser programada ou reprogramada, o chip
não precisa ser removido do circuito.

Tipos de Memórias a Semicondutor

Tipos de ROM: FLASH

Nas memórias E2PROM, a gravação e regravação podem ser feitas em cada byte, o que as tornam
versáteis, mas lentas.

Fabricantes responderam a essa limitação com as memórias FLASH, um tipo de E2PROM que usa para
apagar dados um campo elétrico em todo o circuito ou em uma seção pré-determinada do circuito,
chamada de blocos.

A memória Flash funciona muito mais rapidamente que as tradicionais E2PROMs porque grava os dados
em blocos, geralmente de 512 bytes, em vez de 1 byte por vez.
Tipos de Memórias a Semicondutor

RAM (Random Access Memory)


Também conhecidas como memórias de escrita e leitura (RWM) são usadas em computadores para
armazenamento temporário de dados durante o processamento dos programas.

Tipos de RAM: SRAM (Static Random Access Memory)

As RAMs por serem voláteis perdem os dados nela armazenados com a falta de energia.

Mas, armazenam dados por tempo indeterminado, enquanto a alimentação estiver sendo aplicada ao chip.

Por esse motivo, essas RAMs são denominadas RAMs ESTÁTICAS (SRAM).
Tipos de Memórias a Semicondutor

Tipos de RAM: DRAM (Dynamic Random Access Memory)

Enquanto que as RAMs estáticas armazenam informações em flip-flops, as RAMs dinâmicas armazenam os bits 0
e 1 em microcapacitores parasitas nos transistores MOS que constituem sua célula.

Devido a corrente de fuga essas informações podem ser perdidas após um determinado período, necessitando de
um processo de restauração periódica.

O ato de restaurar um dado armazenado em uma RAM dinâmica chama-se refresh.

A necessidade da operação de refresh torna a RAM dinâmica desvantajosa em relação à RAM estática, porém
seu custo é bem menor.
RAM não volátil (NVRAM – Non Volatile RAM)

As RAMs estáticas são utilizadas para leitura e escrita, devido a sua alta velocidade na realização dessas
operações, no entanto, por serem voláteis, os dados nela armazenados se perdem quando cessa a alimentação
elétrica.
Quando se requer o uso de memórias não voláteis de alta capacidade, a alternativa é a utilização de RAMs CMOS
com bateria.
Ampliação de Capacidade das Memórias

- Ampliação das palavras (dados)

- Ex: usando memórias de 1024 x 4 bits construir um banco de


memória com capacidade de 1024 x 8 bits

- Ampliação dos endereços

- Ex: usando memórias de 1024 x 8 bits construir um banco de


memória com capacidade de 2048 x 8 bits
Ampliação de Dados

Exemplo 1: A partir de uma memória RAM de 16 x 4 bits, gerar um banco de memória que possa
armazenar 16 x 8 bits.

Exercícios:

1 – Utilizando blocos de RAM 1K x 4 bits, forme um banco de 1K x 8 bits


Ampliação de Endereços

Exemplo 2: A partir de uma memória RAM de 16 x 4bits, gerar um banco de memória que possa
armazenar 32 x 4 bits.
Ampliação de Capacidade das Memórias

Exercícios:

1 – A partir de blocos de RAM de 8 x 4 bits formar um banco de 16 x 4 bits.

2 – Utilizando blocos de memória RAM 128 x 4 bits, forme um banco de 256 x 4 bits. Escreva a
palavra de endereço inicial e final de cada bloco (em hexadecimal).

3 – Formar uma RAM de 512 x 8 bits com blocos de estrutura 128 x 4 bits.

4 – Idem ao anterior, para uma RAM 64 x 8, obtida com blocos 32 x 4.


Até ao Próximo Encontro
Estrutura Básica da Unidade Central de Processamento (CPU)

• Unidade de Controle  Controla a operação interna e externa da CPU e, portanto, do computador


• Unidade Lógica e Aritmética  realiza o processamento das operações lógicas e aritméticas da CPU
• Unidade de Registros  oferece armazenamento interno, temporário e de rápido acesso à CPU
Estrutura Básica da Unidade Central de Processamento (CPU)

Unidade Lógica e Aritmética (ALU)

Responsável pelas operações lógicas e aritméticas com os dados.

As principais operações que a ALU geralmente pode executar são:

Após a realização de uma operação lógica ou aritmética, a ALU faz o ajuste dos bits de
FLAGs conforme o resultado da operação.
Unidade de Registradores

É composta por um grupo de Registradores, onde ficam armazenados os dados, temporariamente,


durante a execução dos Programas ou, onde ficam armazenadas informações necessárias ao controle
do próprio Sistema.

Esta unidade de registradores é dividida em dois grupos:

• Registradores de propósito geral  armazenam dados durante o processamento do programa.

• Registradores de propósito específico  possuem funções específicas durante o processamento


dos programas e não podem ser utilizados para armazenar qualquer valor.
Unidade de Registradores – Alguns Registradores Específicos Importantes

O Contador de Programa (PC – Program Counter)

Responsável pela armazenagem do endereço da próxima instrução a ser buscada na Memória de


programa, para futura execução.

É incrementado em cada instrução, ficando sempre com o endereço da próxima instrução na memória.

Quando a execução do programa é de forma sequencial, o PC vai sendo


incrementado a cada nova instrução para apontar sempre para a próxima a ser
executada.

Quando a CPU executa uma instrução de salto, o PC ao invés de ser


incrementado (para o endereço seguinte) ele é alterado para o novo endereço de
memória onde será a execução da próxima execução no salto do programa.
Unidade de Registradores – Alguns Registradores Específicos Importantes

O Registrador de Status / Flags

Contém vários bits de status que refletem o estado da última operação lógica ou
aritmética. Os bits de flags podem variar para cada tipo de processador.

Esta indicação serve para tomada de decisões no programa e para controle da


CPU.
Processamento das Instruções
• Instruções  São tarefas elementares que podem ser executadas em um processador, tais
como:

• Somar 2 números;
• Transferir um número da Memória para a CPU;
• Transferir um dado da CPU para uma Porta de E/S;
• etc

OBS: Cada instrução é representada por um código de operação (OP-CODE)

• Conjunto de Instruções (ou “SET” DE INSTRUÇÕES”)  É o conjunto de todas as


Instruções disponíveis, quando da construção do Processador, escolhido para implementar o
Sistema.

OBS: cada microprocessador ou microcontrolador tem o seu próprio “Set de Instruções”


Processamento das Instruções
• Processamento das Instruções  Estando o Programa já escrito e armazenado na
Memória, o processamento do programa passa por:

1 - Leitura do “Op.Code” na memória de programa


2 - Interpretação do código
3 - Execução da Instrução
4 - volta ao passo 1, para a próxima Instrução.

Desta forma, o mesmo Hardware permite gerar inúmeros Programas (Softwares), através das diferentes
combinações da seqüência de instruções do mesmo Conjunto de Instruções (Set de Instruções).
Ciclo de Instrução

O Processamento de cada instrução é feito pela atuação da UC (Unidade de Controle) sobre todos os sinais
de controles do Sistema (Via de controle interna e Via de controle externa), numa seqüência de tempo bem
definida (baseada na frequência do clock).

Esta seqüência de controles para o processamento da Instrução é chamado de: Ciclo de Instrução

sendo subdividido em: Ciclo de Busca (Fetch) e Ciclo de Execução.


Ciclo de Busca (FETCH)  1º. Passo: Busca do Op-Code na Memória

Ciclo de Busca (FETCH)  2º. Passo: Decodificação do Op-Code


Ciclo de Busca (FETCH)  3º. Passo: Atualização do PC

Ciclo de Execução da Instrução  UC utiliza os sinais de controle (internos e/ou externos) para
sequenciar todas as operações necessárias para a execução da instrução (op-code decodificado).
Conjunto de Instruções
Cada Instrução do "Set de Instruções" possui, para sua identificação, um código
de operação, conhecido como Op-code.

Para facilitar a programação, o fabricante também associa a cada op-code um símbolo, conhecido
como MNEMÔNICO.

Exemplo de Instruções de um “Set de Instruções” de um determinado Processador


Ciclo de Instrução

Uma instrução pode ser executada em vários ciclos de máquina, ou seja, um ciclo de
instrução é formado por vários ciclos de máquina (dependente da arquitetura).

Os ciclos de máquina indicam quanto tempo uma instrução leva para ser executada pelo
processador.
Arquiteturas dos Processadores

Arquitetura de Von Neuman:

A CPU é interligada à memória por um


único barramento de dados. Por este
barramento único, trafegam instruções
(op-codes) e dados de forma
compartilhada (não simultâneo)

Arquitetura de Harvard:

A CPU é interligada a memória de dados


e a memória de programa por
barramentos independentes (de dados e
de instruções). Isto permite o “PIPELINE”
de instruções e dados.
Arquiteturas dos Processadores
Arquitetura de Von Neuman:

Definiu a arquitetura CISC – Complex Instruction Set Computer (Set de instruções Complexo)
- Set de instruções grande (muitas instruções) Ex: 8051  225 instruções
- Os programas armazenados na memória são menores em relação ao RISC.

- Op-codes são pequenos e realizam varias tarefas (a UC consegue decodificá-lo em varias sequencias de
sinais de controle para executar a instrução - Microcódigo).

- Execução mais lenta (op-code é decodificado em vários passos na UC)

Arquitetura de Harvard:

Definiu a arquitetura RISC – Reduce Instruction Set Computer (Set de Instruções Reduzido)
- Set de instruções reduzido (poucas instruções) Ex: PIC16Fxxx  35 instruções
- Instruções possuem um comprimento fixo e longo, que permite a utilização de um
Decodificador de Instruções bastante simplificado, onde, praticamente, o Op.code atua diretamente sobre os
controles dos dispositivos do Sistema (eliminando o microcódigo).

- Processamento das Instruções é mais rápido.


- Os Programas armazenados na memória são maiores (op-codes são grandes).
Arquiteturas dos Processadores

Arquitetura Híbrida:

Atualmente, existem os processadores híbridos, que são essencialmente

processadores CISC (com um grande conjunto de instruções), porém possuem

internamente núcleos RISC (para execução das instruções em alta velocidade).


Linguagens de Programação

Os programas para execução na CPU são armazenados na memória em binário,


ou seja, nos seus respectivos op-codes.

É imensamente desconfortável desenvolvermos programas utilizando a Linguagem de Máquina,


ou seja, usando diretamente os opcodes das instruções.

Surgiram então outras linguagens de Programação:

Linguagem Assembly  - Linguagem Mnemônica (Símbolos)


- Tradução simples (Montador ou Assembler)
- Baixo Nível: mais próxima da arquitetura do processador
- Para cada processador: Set de instruções próprio

Linguagem C  - Comandos mais “familiares” ao programador


- Tradução complexa (Compilador)
- Alto Nível: mais próximo do programador
- Igual, mesmo trocando a arquitetura do processador
Linguagens de Programação

Exemplo: Assembly x C

while (true) {
if (BOTAO == PRESSIONADO)
LED = LIGADO;
else
LED = DESLIGADO;
}
Linguagens de Programação

Qual é a melhor linguagem para escrever os programas (baixo ou alto nível)?

Linguagem de alto nível x linguagem de baixo nível:

• mais amigável e mais fácil para desenvolvimento de aplicações mais complexas.

• permite maior portabilidade.

• não é necessário se preocupar com a arquitetura interna do processador.

• ponto fraco  o código gerado, muitas vezes, é maior do que um código gerado por um
montador (Assembler), ocupando uma memória maior de programa.

• muitas vezes, a eficiência de execução do programa não é boa (pouco otimizado. Tempo de
processamento maior).
Linguagens de Programação para Microcontroladores

Assembly
Fim
Exercício
1- Como ler a palavra R10 de conteúdo 10011101?
Até ao Próximo Encontro

Você também pode gostar