Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

analize e funcionamento da cpu, Notas de estudo de Informática

funcionamento da cpu

Tipologia: Notas de estudo

2013

Compartilhado em 12/04/2013

helecardino-cabral-7
helecardino-cabral-7 🇧🇷

4.8

(13)

56 documentos

1 / 20

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
ce:
Análise do funcionamento do CPU dum computador.......................................................................2
Instrução...............................................................................................................................2
Existem três grandes classes de instruções:...........................................................................2
Operações num processador....................................................................................................4
Nº de operandos em cada instrução......................................................................................4
Tipos de operandos..................................................................................................................4
Números............................................................................................................................5
Caracteres.........................................................................................................................5
Dados Lógicos.....................................................................................................................5
Endereços..........................................................................................................................6
Localização dos operandos.......................................................................................................7
Especificação dos Operandos...................................................................................................7
Registos Internos.................................................................................................................7
Constantes Especificadas na Própria Instrução......................................................................9
Memória e Portos de Entrada/Saída......................................................................................9
Formato das instruções..........................................................................................................11
Comprimento das instruções...............................................................................................12
Instruções para tomada de decisões........................................................................................13
Saltos Incondicionais..........................................................................................................13
Saltos condicionais............................................................................................................13
Interrupções.....................................................................................................................14
A r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 UNIVERSIDADE SÃO
TOMÁS DE MOÇAMBIQUE F i c h a 5
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Pré-visualização parcial do texto

Baixe analize e funcionamento da cpu e outras Notas de estudo em PDF para Informática, somente na Docsity!

ce:

  • Análise do funcionamento do CPU dum computador.......................................................................
    • Instrução...............................................................................................................................
  • Existem três grandes classes de instruções:...........................................................................
    • Operações num processador....................................................................................................
    • Nº de operandos em cada instrução......................................................................................
    • Tipos de operandos..................................................................................................................
    • Números............................................................................................................................
  • Caracteres.........................................................................................................................
    • Dados Lógicos.....................................................................................................................
    • Endereços..........................................................................................................................
    • Localização dos operandos.......................................................................................................
    • Especificação dos Operandos...................................................................................................
    • Registos Internos.................................................................................................................
    • Constantes Especificadas na Própria Instrução......................................................................
    • Memória e Portos de Entrada/Saída......................................................................................
    • Formato das instruções..........................................................................................................
    • Comprimento das instruções...............................................................................................
  • Instruções para tomada de decisões........................................................................................
    • Saltos Incondicionais..........................................................................................................
  • Saltos condicionais............................................................................................................
  • Interrupções.....................................................................................................................
  • TOMÁS DE MOÇAMBIQUE F i c h a A r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 UNIVERSIDADE SÃO

AAnnáálliissee ddoo ffuunncciioonnaammeennttoo ddoo CCPPUU dduumm

subtracção. São também suportadas por todos os processadores operações lógicas básicas, como a disjunção

e a conjunção, e operações de deslocamento. Muitos processadores executam

também operações aritméticas mais complexas como multiplicação, divisão e outras funções matemáticas sobre números inteiros ou reais.

Entre estas instruções encontram-se, tipicamente, instruções como ADD, SUB, INC, MULT, AND, OR e XOR. Por exemplo, no processador, a instrução ADD R1,M[00B0h] soma o conteúdo do registo R1 ao conteúdo da posição de memória 00B0h, guardando o resultado no registo R1.

A sequência de instruções a executar é controlada por um registo especial, o contador de programa. Na maioria dos processadores, este registo é designado por PC (program counter). Este registo contém o endereço de memória onde se encontra a próxima instrução a ser executada. Tipicamente, as instruções de transferência e de manipulação de dados incrementam o contador de programa para o valor correspondente à posição de memória onde se inicia a instrução que se segue na sequência normal de execução, o que faz com que essa instrução seja a próxima a ser executada.

As instruções de controlo permitem alterar a ordem de execução de instruções, incondicionalmente ou, em alternativa, apenas se a operação anterior produzir um resultado que satisfaça certas condições. Mais especificamente, as instruções de controlo permitem especificar qual o endereço da próxima instrução a executar, através da alteração do registo contador de programa, PC.

Este tipo de instruções permite tomar decisões em função dos resultados de cálculos anteriores ou de acontecimentos externos, sendo, portanto fundamentais para o funcionamento correcto de qualquer programa.

Um exemplo de uma instrução de controlo no processador é a instrução JMP. Por exemplo, a instrução JMP 00CCh faz com que a próxima instrução a ser executada seja a instrução na posição de memória 00CCh.

A combinação de bits que corresponde a cada instrução codifica, de forma única, quais as operações a executar, quais os operandos e qual a localização onde deve ser guardado o resultado. Assim, cada instrução máquina contém, necessariamente, três componentes, que se reflectem na estrutura da instrução: A r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 3 UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a 5

Números............................................................................................................................

Toda linguagem de máquina inclui tipos de dados númericos. Mesmo o processamento de dados nao numéricos requer o uso de números, como tamanho de campos.

Tipos de dados numéricos comuns em computadores : 1 0 0 0 3 9

F 0 2 0 Número inteiro ou de ponto fixo 1 0 0 0 3 9

F 0 2 0 Número de ponto flutuante 1 0 0 0 3 9

F 0 2 0 Número decimal

Embora toda operaçao interna de um computador é de natureza binária, usuários do sistema lidam com números decimais. Portanto, números decimais devem ser convertidos para binários, na entrada, e números binários devem ser convertidos para decimais, na saída.

Caracteres.........................................................................................................................

Uma forma comum de dado é o texto ou sequencia de caracteres. Essa representaçao é conveniente para o ser humano, mas eles nao podem ser armazenados ou transmitidos facilmente, na forma de caracteres, por sistemas de processamento de dados ou de comunicaçao, uma vez que estes estao projectados para amnipular dados binários. Portanto é nessa sequencia que diversos códigos foram criados, onde caracteres sao representados em sequencia de bits, destacando –se o alfabeto de referencia internacional (International Reference Alphabet) – IRA , conhecido por código ASCII (American Standard Code for Information Interchange). Existem outros como EBCDIC (Exterbded Binary Coded Decimal Interchange Code).

Dados Lógicos.....................................................................................................................

Normalmente, cada palavra ou unidade endereçavel (byte, meia palavra, etc) é tratada como uma unidade única de dado. Entretanto, algumas vezes é útil considerar uma unidade de n bits como composta de n itens de dado, n itens de dado, de um 1 bit cada, com valor 0 e 1.quando isso acontece, esse dado é considerado um dado lógico.

TOMÁS DE MOÇAMBIQUE F i c h a A r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 UNIVERSIDADE SÃO

TOMÁS DE MOÇAMBIQUE F i c h a 5

Vantagens :

1 0 0 0 3 9

F 0 2 0 Economia de memória obtida quando queremos armazenar vectores de dados booleanos (verdadeiro ou falso). 1 0 0 0 3 9

F 0 2 0 É a possibilidade de manipulaçao de bits de um item de dado, o que pode ser requerido em determinadas situaçoes.

Endereços..........................................................................................................................

Técnicas de endereçamento mais comum:

1 0 0 0 3 9

F 0 2 0 Endereçamento imediato – Operando=A, valor de operando especificado directamente na instruçao; 1 0 0 0 3 9

F 0 2 0 Endereçamento directo – EA=A:^ EA – Efective Address,^ neste, o campo de endereço contém o endereço efectivo do operando.

1 0 0 0 3 9F 0 2 0Endereçamento indirecto – EA=(A), neste se a palavra tem n bits, o espaço de endereçamento tem tamanho 2n.

1 0 0 0 3 9

F 0 2 0 Endereçamento de registador – EA=(R), o campo de endereço especifica a um registador. 1 0 0 0 3 9

F 0 2 0 Endereçamento indirecto via registador –EA=(R), semelhante ao endereçamento de registador, mas requer um acesso a menos que no caso anterior.

1 0 0 0 3 9

F 0 2 0 Endereçamento por deslocamento – EA=A+(R), combinaas capacidades do endereço directo e indirecto via registador. 1 0 0 0 3 9

F 0 2 0 Endereçamento a pilha

Pilha é bloco reservado de posiçoes na memória. A r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 6 UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a 5

Isto leva a que as instruções que utilizam apenas registos necessitem de menos bits para a sua codificação,

ocupando menos memória e sendo lidas e executadas mais rapidamente.

Os registos internos podem estar organizados de diversas formas. 1 0 0 0 3 9

F 0 2 0 Na sua forma mais simples, os registos internos são simplesmente um conjunto de registos, com igual funcionalidade, organizados num banco de registos e especificados pelo seu número.

Outros processadores têm organizações mais complexas. Podem existir registos com funções específicas, que são sempre usados em determinadas operações.

Em processadores que tenham um registo especial denominado acumulador, este guarda o resultado das operações e é também muitas vezes usado para especificar o endereço de acesso à memória.

Processadores complexos, como, por exemplo, a família x86 da Intel, tem diversos registos com funções específicas, como a manipulação de cadeias de caracteres em memória e a gestão da memória do processador.

Mesmo os processadores simples e com organizações muito regular dos registos possuem, geralmente, dois registos de uso específico, que podem ou não ser acessíveis directamente ao programador.

1 0 0 0 3 9

F 0 2 0 Estes dois registos são o contador de programa (PC), 1 0 0 0 3 9

F 0 2 0 e o apontador para a pilha (em inglês,^ stack pointer , SP).

Utilização de Pilhas

Uma opção muito utilizada para aceder e guardar operandos em memória consiste no uso de uma pilha (em inglês, stack.). Uma pilha é um conjunto contíguo de posições de memória cujo acesso é gerido por um registo especial, o apontador de pilha, geralmente denominado SP (em inglês, stack pointer). Conceptualmente, a pilha consiste num conjunto de posições de memória sobrepostas umas às outras, e às quais apenas é possível aceder uma a uma, a partir do topo, quer para colocar um dado ( operação de PUSH ) quer para o retirar ( operação de POP).

A pilha tem uma base que corresponde à posição inferior, que não deve ser ultrapassada, o que significa que não devem ser retirados dados que não foram lá colocados. Em alguns processadores, a base da

A r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 8 UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a 5

verificação não é efectuada pelo processador. A forma mais simples de utilização permite apenas aceder ao valor guardado no topo da pilha, e que corresponde ao último valor lá colocado. Assim, é possível guardar-se um valor no topo da pilha usando a operação de PUSH (ou semelhante) ou recuperar o valor guardado no topo da pilha através da operação de POP (ou semelhante).

Constantes Especificadas na Própria Instrução......................................................................

Quase todos os processadores podem executar instruções em que um ou mais operandos são valores constantes, especificados na própria instrução. Por exemplo, a instrução ADD R1,0005h soma ao conteúdo do registo R1 o valor 5, valor este que se encontra especificado na própria instrução.

Embora este método possa parecer tanto ou mais eficiente que a utilização de um valor em registo, isso não é, geralmente, verdade. De facto, a especificação de uma constante na própria instrução obriga, na prática, a utilizar mais uma palavra de memória para codificar a instrução, onde é guardada a constante.

Assim, para carregar este valor, é geralmente necessário fazer um acesso extra a memória1 o que se revela muito mais lento que um acesso a um registo interno. Desta forma, emtermos de velocidade, o uso de uma constante especificada na própria instrução é, na prática, equivalente, em termos de velocidade de execução, ao uso de um operando guardado em memória.

Memória e Portos de Entrada/Saída......................................................................................

Existem duas formas possíveis de tratar os dados provenientes de portos de entrada/saída. A r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 9 UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a 5

Uma filosofia, adoptada em muitas famílias de processadores, consiste em disponibilizar um conjunto de

diferentes alternativas existentes para a especificação da localização de um operando, ou seja, os possíveis

modos de endereçamento.

FFoorrmmaattoo ddaass iinnssttrruuççõõeess

Em formatos pretende-se saber qual é o tamanho das instruçoes (em bits), o número de endereços por instruçao, o tamanho de vários campos, etc.

A codificação das instruções assembly para linguagem máquina deverá ser compacta para que as instruções ocupem pouca memória e para que a sua transferência para o CPU seja rápida.

As instruções do processador são codificadas em uma ou duas palavras de memória. A segunda palavra de memória só é usada quando o modo de endereçamento requer a especificação do endereço de uma posição de memória ou de um operando imediato, nomeadamente nos modos de endereçamento imediato e indexado. Assim, todas as instruções que usem um destes modos de endereçamento usam duas posições de memória, a segunda das quais especifica o valor da palavra W usada no endereçamento.

A Figura abaixo descreve o formato genérico de uma instrução do processador. Nesta figura, os campos marcados com um ponto de interrogação podem ou não estar presentes numa dada instrução. Os primeiros seis bits (bits 15 a 10) da primeira palavra de cada instrução especificam qual o código da operação a executar (em inglês, operation code, ou mais simplesmente, opcode ). A r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 11 UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a 5

IInnssttrruuççõõeess ppaarraa ttoommaaddaa ddee ddeecciissõõeess

A execução de qualquer programa pressupõe normalmente a tomada de decisões quanto à próxima instrução a executar. As estruturas de controlo presentes nas linguagens HLL incluem essencialmente o "if...then...else" e os ciclos. As instruções em linguagem máquina que suportam estas estruturas são de nível mais baixo: apenas executam testes que poderão ser seguidos de saltos condicionais ou incondicionais para uma determinada localização de memória, onde se encontre o bloco de instruções para executar.

Saltos Incondicionais..........................................................................................................

As instruções de controlo mais simples são os saltos incondicionais , normalmente designados em linguagem assembly por JUMP ou BRANCH. Estas instruções especificam qual o endereço da próxima instrução a ser executada, através da manipulação do valor do PC. Em linguagem assembly, este endereço é normalmente especificado através da utilização de um nome simbólico.

Saltos condicionais............................................................................................................

Em muitos casos, é necessário transferir o controlo apenas quando uma dada condição se verifica. Por exemplo, pode-se querer terminar um ciclo quando o valor de um contador guardado num dado registo atinge o valor _. Nestes casos, utilizam-se instruções de salto condicional, que apenas transferem controlo para o endereço especificado quando uma dada condição se verifica.

É comum fazer com que a condição de salto dependa da última operação efectuada, uma vez que isso evita que seja necessário especificar qual a localização do valor que deve ser testado. Assim, é necessário guardar num registo bits que mantenham o valor das condições que podem ser testadas por instruções de controlo.

Entre as condições que podem ser testadas por instruções deste tipo encontram-se, tipicamente, as seguintes:

1 0 0 0 3 9

F 0 2 0 Zero (Z): a condição é verdadeira se o resultado da última operação foi zero. 1 0 0 0 3 9

F 0 2 0 Negativo (N): a condição é verdadeira se o resultado da última operação foi negativo.

A r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2 0 0 6 13 UNIVERSIDADE SÃO TOMÁS DE MOÇAMBIQUE F i c h a 5

1 0 0 0 3 9

F 0 2 0 Transporte (C): esta condição (carry) é verdadeira se o resultado da última operação aritmética teve transporte.

1 0 0 0 3 9

F 0 2 0 Excesso (O): esta condição (overflow) é verdadeira se o resultado da última operação excede a capacidade de representação do processador.

1 0 0 0 3 9

F 0 2 0 Positivo (P): esta condição é verdadeira se o resultado da última operação foi estritamente positivo.

Interrupções

Uma outra situação em que a sequência normal de execução das instruções é alterada acontece quando o processador recebe e atende um pedido de interrupção.

Em muitos sistemas, o processador temde reagir a sinais vindos do exterior, que sinalizam a necessidade de efectuar algum processamento específico ou operações de entrada/saída. Por exemplo, um periférico pode querer sinalizar o processador que uma tecla foi premida, ou que uma palavra foi recebida num porto série.

A r q u i t e c t u r a e O r g a n i z a ç ã o d e C o m p u t a d o r e s - 2