A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modulo 9 - Arquitetura de microprocessadores

Apresentações semelhantes


Apresentação em tema: "Modulo 9 - Arquitetura de microprocessadores"— Transcrição da apresentação:

1 Modulo 9 - Arquitetura de microprocessadores
SDAC – 3ºano Curso Técnico de Gestão de Equipamentos Informáticos Modulo 9 - Arquitetura de microprocessadores Professor: Miguel Gonçalves e Ana Patrício

2 Tipos de Dados As instruções do processador operam em dados, em que as categorias gerais mais importantes são: Endereços Alguns cálculos têm de ser efetuados nas referências aos operandos de uma instrução para determinar o endereço principal ou virtual da memória. Neste contexto, os endereços podem ser considerados como inteiros sem sinal. Números Todas as linguagens máquina incluem tipos de dados numéricos. Mesmo no processamento de dados não numéricos, há necessidade de números para atuar como contadores, largura de campos e assim sucessivamente. Uma distinção importante é que os números guardados num computador é são limitados. Em primeiro lugar, há um limite para a grandeza dos números representados num computador. No caso de números em vírgula flutuante, há um limite para a sua precisão.

3 Tipos de Dados Números Três tipos de dados numéricos são habituais em computadores: Inteiros e Vírgula Fixa Vírgula Flutuante Decimal Examinámos os primeiros dois com algum detalhe no capítulo 8. Resta dizer alguma palavras à cerca de números decimais. Inteiros Num computador cada inteiro é representado por um número fixo de 4 bits. Em 8 bits, 13 seria representado por Isto é, introduzem-se 0 à esquerda sempre que o número de bits da representação do inteiro seja menor que o número fixo de bits Vírgula Fixa Este nome vem da posição em que se supõe estar situado o ponto decimal, que é uma posição fixa. A vírgula fixa é hoje utilizada exclusivamente para a representação de números inteiros, supondo-se a vírgula decimal implicitamente situada à direita dos dígitos.

4 Tipos de Dados Números Vírgula Flutuante
Formato de representação digital de números reais, que é usada nos computadores. Esta representação baseia-se na deslocação da virgula de forma que se obtenha um número menor ou próximo de 1. Esse deslocamento é feito por meio de notação científica. Exemplo: o número 25,456 em notação corresponde ao 0,25456 x 102 Decimal Apesar de todas as operações internas de um computador serem binárias, os utilizadores humanos manipulam números decimais. Assim, há necessidade de convertê-los de decimal para binário e, à saída, de binário para decimal. Em aplicações em que há uma grande quantidade de transações de E/S e, comparativamente, poucos cálculos, é preferível guardar e operar em números em formato decimal.

5 Tipos de Dados Caracteres
Uma forma muito comum de dados é o texto ou sequência de caracteres. Apesar dos dados textuais serem apropriados para os seres humanos, estes não podem, em formato de caracteres, ser facilmente armazenados ou transmitidos através de sistemas de processamento e de comunicação (sistemas projetados para dados binários). Assim, foram desenvolvidos um certo número de códigos, através dos quais os caracteres são representados por uma sequência de bits. O mais antigo dos exemplos é o código de Morse O mais habitual dos códigos de caracteres usado é o código ASCII ( American Standard Code for Information Interchange)

6 Tipos de Dados Dados Lógicos Normalmente, cada palavra de uma unidade endereçável (octeto, meia palavra, ...) é tratada como uma unidade simples de dados. Algumas vezes é útil considerar uma unidade como sendo constituída de n itens de dados de 1-bit, cada item tendo o valor 0 ou 1. Quando os dados são vistos desta maneira são considerados como sendo dados lógicos.

7 Organização da memória
Em Informática, um endereço de memória é um identificador único para um local de memória, no qual um processador ou algum outro dispositivo pode armazenar dados. Nos computadores modernos com endereçamento por byte, cada endereço de memória representa um byte distinto de armazenamento. Dados maiores que um byte podem residir em múltiplos bytes, ocupando uma sequência de bytes consecutivos, chamados de Word Alguns microprocessadores foram desenvolvidos para trabalhar com endereçamento por word, tornando a unidade de armazenamento maior que um byte.

8 Organização da memória
Tanto a memória virtual como memória física utilizam endereçamento de memória. Para facilitar a cópia de memória virtual em memória real, os sistemas operativos dividem a memória virtual em páginas, cada uma contendo um número fixo de endereços. Cada página é armazenada no disco até que seja necessária. Quando necessária, o sistema operativo, copia do disco para a memória, transformando o endereço virtual em endereço real na memória.

9 Organização da memória
Tal transformação é invisível aos aplicativos, e permitem que operem independente da sua localização na memória física, fornecendo aos sistemas operativos a liberdade para alocar e realocar memória conforme necessário mantendo o computador em funcionamento. Frequentemente, ao citar tamanho de Word em computadores modernos, é também indicado o tamanho de endereços de memória virtual nesse computador. Exemplo um computador de 32 bits geralmente trata os endereços de memória como valores inteiros de 32 bits, tornando o espaço de endereçamento igual a bytes de memória, ou seja 4 bytes.

10 Organização da memória
A gestão da memória é do sistema operativo e não das aplicações. Para que uma memória funcione de maneira correta, é necessário ter cuidado com vários elementos, nomeadamente segurança e isolamento. A gestão da memória e realizada a partir de duas tarefas: Alocação de Memória Fragmentação.

11 Organização da memória
Alocação de memória Consiste no processo de solicitar/utilizar memória durante a execução de um programa de computador. A alocação de memória no computador pode ser dividida em três grupos: Alocação Estática: os dados tem um tamanho fixo e estão organizados sequencialmente na memória do computador. Um exemplo típico de alocação estática são as variáveis globais e arrays;

12 Organização da memória
Alocação de memória Alocação Dinâmica: os dados não precisam ter um tamanho fixo, pois podemos definir para cada dado a quantidade de memória que desejamos usar de acordo com a nossa necessidade. Sendo assim, vamos alocar espaços de memória (blocos) que não precisam estar necessariamente organizados de maneira sequencial, podendo estar distribuídos de forma dispersa (não ordenada) na memória do computador. Para poder “encontrar/descobrir” blocos que estão dispersos ou espalhados na memória, usamos as variáveis do tipo Ponteiro (indicadores de endereços de memória).

13 Organização da memória
Alocação de memória Alocação Local: é usada para variáveis locais em funções e sub-rotinas (mini-programas). Isso significa que o processo em execução deve manter acessível as variáveis locais da função ou procedimento que está a executar no momento.

14 Organização da memória
Fragmentação Desperdício de páginas de memória alocadas. Pode ser de dois tipos: Interna: Ocorre quando o processo não ocupa inteiramente os blocos de memória (páginas) reservados. Geralmente acontece quando o tamanho do processo não é um múltiplo do tamanho da página de memória, o que acarreta sobra de espaço na última página alocada. Externa: Ocorre à medida que os programas vão terminando e deixando lacunas cada vez menores de espaços entre as páginas. Dependendo do tamanho que precisa ser escrito em memória, estes espaços podem ser pequenos demais para serem úteis, e assim ficam inutilizados.

15 Tipos de Endereçamento
Existem diversos tipos de endereçamento, com diferentes funções e com diferentes aplicações. Motivo de endereçar? Para ler uma informação na memória, precisamos do endereço dela, de onde começa até onde acaba. Para escrever, precisamos do endereço de onde está a informação e onde será alocada. Para apagar um dado, precisamos saber o endereço onde está. Sejam nos registros ou na memória são sempre necessários endereços.

16 Tipos de Endereçamento
Os modos de endereçamento dividem-se em: Endereçamento de dados são os seguintes: endereçamento a registro imediato direto indireto a registro, índice + base relativo a registro relativo a base mais índice. Endereçamento de programa são os seguintes: relativo a programa direto relativo a programa indireto.

17 Tipos de Endereçamento
Neste módulo vamos conhecer os tipos de endereçamentos existentes, para que cada um serve, onde são usados, bem como suas relações com as instruções Assembly (matéria a lecionar no modulo 10) que alteram o fluxo de funcionamento de um programa escrito nessa linguagem. Assembly A instrução mais usada no endereçamento de dados é a MOV. MOV destino, origem Move copiando os dados o que estão na 'origem' para o 'destino‘. Embora o comando MOV se lembre a palavra mover (ou move, em inglês), o que ela faz na verdade é COPIAR Para colocar os dados do registro BX no registro AX, usamos a instrução : MOV AX, BX

18 Tipos de Endereçamento - Dados
A instrução MOV é muita importante e flexível, sendo possível usá-la nos seguintes modos de endereçamento: Endereçamento de registo Os dados saem do registo para outro registo ou para outra memória. Podem ainda sair da memória para um registo ou para outro local da memória. A transferência pode ser com os registadores de 8 bits, ou com os de 16 bits. Nunca deve-se misturar registradores de tamanhos diferentes. Endereçamento imediato Transfere um byte ou uma palavra (Word) de dados da origem e de forma imediata para um registro destino ou posição de Memória, através de um número constante em hexadecimal. exemplo: MOV AH, 2112H Transfere diretamente do endereço 2112H para o registo AH

19 Tipos de Endereçamento - Dados
Endereçamento direto Move uma informação entre um endereço de memória e um registo. O endereço efetivo de memória que deve ser usado pela operação para ler o operando(soma, subtração, multiplicação e divisão) e/ou guardar o resultado é especificado na própria instrução. Endereçamento indireto de registo Ocorre entre registo e local da memória (esta é endereçada por um registo de índice ou registo de base). O conteúdo do registo especificado indica o endereço efetivo de memória onde os dados se encontram, no caso de uma leitura, ou onde devem ser guardados, no caso de uma escrita.

20 Tipos de Endereçamento - Dados
Endereçamento de Base + Índice Transfere um byte ou uma palavra entre um registo e uma posição de memória endereçada por um registo base (BP ou BX) mais um registo de índice (DI ou SI). Exemplo: MOV [BX+DI],CL Endereçamento relativo de registo Transfere um byte ou uma palavra entre um registo e uma posição de memória endereçada por um registo de índice ou base mais um deslocamento. Exemplo: MOV AX,[BX+4] MOV AH,[BH+2] Endereçamento relativo de Base + Índice Transfere um byte ou uma palavra entre um registo e uma posição de memória endereçada por um registo de base e um registo de índice com um deslocamento. Por exemplo: MOV AX,[BX + SI + 4]

21 Tipos de Endereçamento - Programa
Este modo é usado com as instruções JMP e CALL e consiste de 3 formas distintas: Endereçamento de memória de programa direta - este modo é usado em alto nível com instruções GOTO e GOSUB. Em assembly, o programa é desviado para o endereço indicado. JMP [10000H] - Neste exemplo CS é carregado com 10000H, IP com 0000H. Endereçamento de memória de programa relativo - o termo relativo significa relativo ao ponteiro de instruções (IP). JMP[2] - Esta instrução pula os próximos 2 bytes na memória. É somado 2 ao valor corrente do IP

22 Tipos de Endereçamento - Programa
Endereçamento de memória de programa indireto - existem diversas formas de endereçamento de memória de programa indireto. Podem ser usados registos de 16 bits + registos relativos, e ainda alguns registos relativos com deslocamento.

23 Ligação com o exterior Barramentos do processador
Os Barramentos do processador são "caminhos" por onde a informação circula. Esses barramentos, ou bases, podem ser: internos, isto é, estão situados dentro do processador Transportam a informação entre os vários componentes do processador (coprocessador aritmético, cache L1, registos, etc) externos, por onde o CPU recebe e envia informação para a memória do sistema e outros componentes do sistema informático.

24 Ligação com o exterior Barramentos do processador
Atualmente, os barramentos, principalmente dos processadores (os de transferência de dados) tem sido bastantes aprimorados com objetivo de melhorar a qualidade, ou seja , maior velocidade de processamentos de dados. Através deste barramento o processador comunica com o seu exterior. Nele transferem os dados lidos de memória, escritos na memória, enviados para interfaces e recebidos de interfaces. Pode ser dividido em três grupos: Barramento de Dados Barramento de Endereços Barramento de Controlo

25 Ligação com o exterior Barramentos do processador
Barramentos de endereços Permitem ao processador identificar qual a componente e a localização da mesma Transporta informação usada para descrever a localização de memória para a qual os dados serão enviados ou de onde os dados serão recolhidos Cada fio do barramento transporta um bit de informação (um só digito do endereço)

26 Ligação com o exterior Barramentos do processador Barramentos de Dados
Circulam dados que são enviados entre a memória e os periféricos Cada fio do barramento transporta um bit de informação Barramentos de Controlo Função de sincronizar o processador com os restantes componentes Como o processador é mais rápido é necessário controlar os tempos de espera para tornar a comunicação mais eficaz

27 Ligação com o exterior Barramentos do processador
Velocidade do barramento do processador Classificação baseada no número de bits e relacionada com a capacidade de manipulação do processador Capacidade interna medida em função da capacidade dos seus registos Exemplo: família Intel x86, varia entre 8 e 32 bits. Capacidade externa Medida em função da quantidade de informação que é recebida pelo CPU do exterior Raramente menor que a capacidade interna (tradicionalmente é igual) As últimas implementações duplicam a capacidade externa (2x a capacidade interna)

28 Ligação com o exterior Barramentos do processador
Velocidade do barramento do processador Os barramentos de todos os processadores modernos operam de forma síncrona, ou seja, os eventos são sincronizados com um sinal de clock. Nos processadores modernos, cada operação pode ser feita em um só período de clock. Nos processadores antigos, cada operação era feita em dois, três ou mais períodos de clock. Exemplo: um Pentium III funcionando a 64 bits (8 bytes) e clock de 100 MHz externos, oferece uma taxa de transferência máxima de 800 MB/s (100 MHz x 8). Infelizmente nem sempre as memórias e outros dispositivos são tão velozes a ponto de acompanhar esta velocidade, e assim são feitas prorrogações chamadas de wait states.

29 Ligação com o exterior Barramentos do processador
Evolução dos processadores relativamente ao comprimento do código que trabalha O 1º processador trabalhava com 4 bits Depois passam a trabalhar com palavras de 8 bits Posteriormente chegaram os processadores de 16, 32 Atualmente trabalham com códigos de 64 bits

30 Ligação com o exterior Barramentos do processador
Evolução rápida dos processadores não é acompanhada por muitas das restantes componentes Razões económicas Razões técnicas Manter a compatibilidade de novos equipamentos com equipamentos antigos Solução : o processador permite a comunicação com outras placas através de um barramento de "menor capacidade“ (um processador 64 bits pode trocar informações com placas de 8, 16 ou 32bits)


Carregar ppt "Modulo 9 - Arquitetura de microprocessadores"

Apresentações semelhantes


Anúncios Google