2016年1月20日星期三

Módulo 8: Análise de Equipamentos Informáticos

Microprocessador

Ligações do microprocessador com o exterior


Um processador também precisa ser capaz de comunicar-se com o mundo exterior.
Neste mundo exterior está o utilizador que trabalha no PC.





É preciso ler dados provenientes do teclado, mouse e outros dispositivos de entrada, bem como transferir dados para o vídeo, impressora e outros dispositivos de saída.

Essas operações são chamadas de “entrada e saída”, ou E/S (em inglês, Input/Output, ou I/O).

Portanto, além de processar dados, um processador deve ser capaz de realizar operações de entrada e saída, bem como realizar leituras e gravações na memória.

A ligação entre o microprocessador por um lado e a memória e os circuitos periféricos por outro é efectuada através de três conjuntos distintos de ligações eléctricas, denominados "bus" e que são:

  • O bus de dados, que permite a transferência de dados entre o microprocessador e quer a memória quer os periféricos;
  • O bus de endereço que permite ao microprocessador seleccionar a posição de memória sobre a qual quer efectuar uma operação de escrita ou leitura;

  • O bus de comando que permite ao microprocessador escolher entre a memória e os periféricos para operações de escrita ou leitura assim como o tipo de operação a realizar. • O bus de comando permite ainda aos periféricos interromperem a actividade normal do microprocessador de modo a que este execute as operações necessárias à satisfação do periférico que emitiu o sinal de interrupção.
Nos microprocessadores mais simples o bus de dados é constituído por quatro ou oito linhas distintas dizendo-se por isso que é um microprocessador de quatro ou oito bits, isto porque cada linha pode transportar um sinal eléctrico que só pode ter um de dois valores de tensão distintos a que correspondem os valores numéricos em numeração binária 0 e 1.


O relógio

O microprocessador necessita também de um sinal periódico chamado sinal de relógio, gerado externamente, que irá definir a cadência de execução do programa pelo microprocessador.


A frequência desse sinal periódico tem de estar ajustada às especificações do microprocessador e encontram-se valores entre alguns Megahertz para os microprocessadores mais simples até alguns Gigahertz para os microprocessadores mais modernos.


Tipos de endereçamento do microprocessador

Endereçamento de registro
Nesse modo ocorre de registro ou memória para outro registro ou memória. Ou seja, os dados saem do registro para outro registro ou para outra memória, bem como podem sair da memória para um registro ou para outro local da memória.

Endereçamento imediato
Nesse modo, se transfere da fonte de forma imediata, através de um número constante em hexadecimal.

Endereçamento direto
Move uma informação entre um endereço de memória e um registro.

Endereçamento indireto de registro 
Ocorre entre registro e local da memória, onde esta é endereçada por um registro de índice ou registro de base, que são BP, BX(BH e BL), SI e DI. Usado em endereços de segmentos de dado do offset.

Endereçamento de Base+Índice
Igual ao modo de endereçamento indireto de registro, porém ele também usa o registro de índice (SI ou DI).

Endereçamento relativo de registro
Também usa registro de índice ou registro de base, mas com algum deslocamento no endereço.

Endereçamento relativo de Base+Índice
Igual ao caso anterior, mas usando ambos registros (de índice e de base), além do deslocamento.






Organização de memória

A memória de dados e a memória de programa tem espaços de endereçamento diferentes cada um com 64 Kbytes.

Capturar2


Memória de programa
A memória de programa é uma memória do tipo ROM, por isso sobre ela só se efectuam operações de leitura.

Este memória pode ser interna e/ou externa e ocupa no máximo 64 Kbytes. O acesso à memória de programa externa faz-se recorrendo ao sinal nPSEN (Program Strobe Enable) que deverá ser ligado ao pino de output enable da memória.

O sinal aplicado ao pino nEA do microcontrolador determina qual o tipo de acesso a ser feito para os 4 Kbytes inferiores da memória de programa.

Se nEA = 0, para endereços a partir de 0000H o acesso é feito à memória de programa externa, se nEA = 1, o acesso é feito è memória de programa interna para endereços de 0000H até 0FFFH, sendo feito o acesso à memória de programa externa para endereços mais elevados.

Memória de dados
A memória de dados é do tipo RAM podendo ser lida ou escrita pelo microcontrolador. Esta memória pode ser interna e/ou externa. O espaço de endereçamento associado à memória de dados é de 64 Kbytes.

Memória de programa externa
O acesso à memória de programa externa faz-se recorrendo aos sinais nRD (Read) e nWR (Write) fornecidos pelo microcontrolador para controlo da operação da memória.

O endereçamento pode fazer-se recorrendo a um mínimo de um e a um máximo de dois bytes.

Para acesso à memória de programa externa utiliza-se o porto P0 como barramento multiplexado de endereços/ dados (byte menos significativo). O porto P2, caso seja necessária a sua utilização, funciona como barramento de endereços (byte mais significativo).

Memória de programa interna
A memória de dados interna encontra-se dividida em 3 blocos distintos. O acesso à memória de dados interna faz-se utilizando endereços de 8 bits.

Capturar3

A área de memória superior contém os registos com funções especiais, SFRs (Special Function Registers).

O acesso a esta área de memória faz-se utilizando endereçamento directo.

A função de cada um destes registos será analisada em detalhe mais adiante nesta unidade.

A área de memória superior representada na figura 4 a tracejado não está implementada no microcontrolador 80C51 existindo apenas nos dispositivos com 256 bytes de RAM interna.

O acesso a esta área de memória é feito utilizando endereçamento indirecto sendo uma zona de uso genérico.

A parte inferior da memória de dados interna encontra-se dividida em três zonas distintas.

O acesso pode ser feito utilizando endereçamento directo ou indirecto.

Capturar4
Os 32 bytes inferiores destinam-se aos quatro bancos de oito registos designados R0 a R7.

A selecção do banco de registos é feita recorrendo aos bits RS1 (Register Select) e RS0 do registo PSW (Program Status Word). Segue-se uma área de 16 bytes (128 bits) endereçáveis bit a bit sendo a restante área de uso genérico.



Tipos de dados

Os dados podem ter vários tipos, ou seja, um conjunto de valores possíveis para cada tipo.

Inteiro (integer).
Pode ser qualquer valor contido no conjunto de números inteiros, como 1, 300, -14, 5500, 80000, etc. São valores que não têm uma parte fracionária. Alguns exemplos de como definir se um dado pode ser do tipo inteiro:
  • Se eu quero definir um número de pessoas em um sistema, um número como 30 é possível. Pelo fato de não existir fração de pessoa, o tipo inteiro parece ideal para esta finalidade.
  • Caso seja preciso armazenar em um banco de dados o número de visitas a um site, o tipo inteiro é o ideal, pois não existe meia visita.


Real (float).
Define uma abrangência maior que o tipo inteiro, podendo conter qualquer valor do conjunto dos números Reais, como 8.15, 1.5, -0.15, etc. Como na maioria das linguagens de programação o separador de números de ponto flutuantes (floats) é o ponto, utilizaremos essa sintaxe em nossos algoritmos. Um exemplo de dados que podem ser definidos como Real (float):
  • Digamos que um veículo percorreu uma distância entre duas cidades, que foi de 69,3 km. Neste caso, precisamos de valores após a casa decimal para efetuar cálculos, e novamente a melhor escolha parece ser o tipo Real (float)

Lógico (boolean).
Trabalha com valores verdadeiro (true) e falso (false). Também chamado de booleano, este tipo só aceita esses dois valores. No entanto, é utilizado extensivamente em programação. Um exemplo:
  • Precisa verificar se um utilizador está ativo ou inativo num sistema que contém todos os funcionário de uma empresa. A resposta também só poderá conter dois valores:verdadeiro ou falso. Não existe utilizador “meio ativo”, nem um utilizador mais ativo que outro; ou está ativo, ou não.


Caracter (char).
É o tipo utilizado para representar um caracter, que pode ser uma letra (a, b, d), um dígito (4, 7, 0), ou um símbolo (&, #, @). Exemplos:
  • Numa questão de escolha múltipla o programa pode receber só a letra da escolha do utilizador (ou ‘a’, ou ‘b’, ou ‘d’, etc.);
  • Símbolos de operações matemáticas também podem ser utilizados para perceber a intenção do utilizador (+, -, *, /).


Cadeia de Caracteres (string).
A representação de uma palavra, sequência de caracteres, incluindo ou não símbolos. Pode ser uma frase, uma palavra ou um código qualquer. Exemplos:
  • O nome de uma pessoa é uma cadeia de caracteres (string), pois contém uma sequência de caracteres.
  • A matrícula de um aluno pode ser uma cadeia de caracteres, se contiver, por exemplo: “GRR20071514”.
  • Quando trabalhamos com cadeias de caracteres em algoritmos, utilizamos aspas simples (”) ou duplas (“”), diferenciando o tipo cadeia (String) de outros.



Arquitectura de um sistema tipo microprocessador

Tipos e modelos de Arquitetura existem quatro modelos básicos:
  • Centralizado;
  • Cliente / Servidor “Clássico”;
  • Provedores de Serviços de Aplicação (ASP);
  • Software-como-um-Serviço (SaaS) e Nuvem.
  • Modelo Centralizado

O modelo Centralizado é representado pelo seu extremo, que é a situação onde os sistemas da empresa (ou parte deles) estão implantados em mainframes ou em alguns poucos servidores de grande poder de processamento.

Os mainframes são computadores de grande porte que centralizam a hospedagem e a execução de aplicações, assim como a persistência de dados, e são ainda comuns em algumas empresas de grande porte.


Centralizado

A Computação em Nuvem (Cloud Computing) não deixa de ser equivalente ao modelo centralizado; porém, na Nuvem, é logicamente centralizado e com protocolos de comunicação e ferramentas de acesso diferentes.
Cloud Computing