Escolar Documentos
Profissional Documentos
Cultura Documentos
Arquitetura Nota Aula
Arquitetura Nota Aula
NOTAS DE AULA
Prof. Antonio Carlos Schneider Beck Filho (UFSM)
Prof. Jlio Carlos Balzano de Mattos (UFPel)
Instrues
As instrues de um computador so operaes que devem ser executadas em
uma seqncia pr-determinada. Estas instrues compem um programa. Desta
maneira, um programa uma lista de instrues que especificam operaes,
operandos e a seqncia em que o processamento deve ocorrer. O processamento de
dados executados em um computador pode ser alterado pela especificao de um novo
programa com instrues diferentes ou pela especificao das mesmas instrues com
diferentes dados.
O bloco de controle responsvel por ler uma instruo da memria, decodificla e gerar uma ou mais micro-operaes (que so os bits que controlam o bloco
operativo). As instrues podem variar de um computador para outro. Processadores
que seguem um determinado padro e que utilizam o mesmo conjunto (ou subconjunto) de instrues sendo, de certa forma, compatveis entre si, constituem uma
famlia de processadores. O Conjunto de instrues suportadas por um determinado
processador (ou famlia) chamado de Instruction Set Architecture (conjunto de
instrues da arquitetura), cuja sigla ISA comumente utilizada.
Uma instruo representada por um conjunto de bits que instruem o
processador a executar uma operao especifica. Este conjunto de bits chamado de
operation code (cdigo da operao), geralmente chamada de opcode. O nmero de
bits necessrios para o opcode de uma instruo a funo do nmero total de
operaes no conjunto de instrues e da quantidade de operandos disponveis.
A operao de uma instruo deve ser executada utilizando os dados
armazenados nos registradores do computador ou na memria. Uma instruo, alm do
mais, deve especificar no somente uma operao, mas tambm os registradores e
palavras de memria em que os operandos so encontrados e onde o resultado deve
ser armazenado.
A linguagem binria em que as instrues so definidas e armazenadas na
memria so referidas como linguagem de mquina (machine language). Uma
linguagem simblica que substitui os opcodes e endereos binrios por nomes
simblicos e que fornece outras caractersticas de auxilio para o programador referida
como linguagem de montagem (assembly language). A estrutura lgica dos
computadores normalmente descrita em manuais de referncia da linguagem de
montagem.
A habilidade de executar um programa da memria a mais importante
propriedade de um computador de uso geral.
Conjunto de registradores
O conjunto de registradores consiste em todos os registradores da CPU que
podem ser acessados pelo programador. Estes registradores so tipicamente os
mencionados nos manuais de referncia da linguagem assembly. As CPUs podem
tambm conter outros registradores, como o registrador de instrues, ou ainda outros
registradores que so acessveis somente internamente (o programador no pode,
explicitamente, mudar seus valores). O conjunto de registradores consideravelmente
influenciado pela arquitetura do conjunto de instrues.
R1 M[A] + M[B]
R2 M[C] + M[D]
M[X] R1 x R2
Instrues de at 2 endereos
Para instrues de 2 endereos, cada campo de endereamento pode
especificar tambm um possvel registrador ou endereo de memria. O primeiro
endereamento de operando listado na instruo simblica o endereo implcito que o
resultado da operao ser transferido.
MOVE T1, A
ADD T1, B
MOVE X, C
ADD X, D
MUL X, T1
M[T1] M[A]
M[T1] M[T1] + M[B]
M[X] M[C]
M[X] M[X] + M[D]
M[X] M[X] x M[T1]
O registrador temporrio R1 disponvel e pode ser trocado por T1. Note que
este programa resulta em cinco instrues ao invs das trs necessrias quando
utilizada uma arquitetura com instrues de 3 endereos.
Instrues de 1 endereo
Para executar instrues como ADD, o computador com um instrues de 1 endereo
utiliza um endereo implcito um registrador chamado acumulador (accumulator)
ACC para obter um dos operandos, assim como gravar o resultado. O programa para
implementar a expresso aritmtica anterior a seguinte:
LD A
ADD B
ST X
LD C
ADD D
MUL X
ST X
ACC M[A]
ACC ACC + M[B]
M[X] ACC
ACC M[C]
ACC ACC + M[D]
ACC ACC x M[X]
M[X] ACC
TOS M[A]
TOS M[B]
TOS TOS + TOS-1
TOS M[C]
TOS M[D]
TOS TOS + TOS-1
TOS TOS x TOS-1
M[X] TOS
Arquiteturas de endereamento
Os programas apresentados mudam se a maneira como o endereamento dos
operandos restringido, ou ainda se o endereamento memria restrito apenas
para instrues especificas. A seguir, estas variaes sero demonstradas utilizando
como base uma arquitetura de trs endereos, como vista anteriormente. Todavia, elas
podem ser aplicadas a quaisquer arquiteturas de 2 endereos.
Arquitetura memory-to-memory
Esta arquitetura possui apenas registradores de controle, como o PC (Program
Counter). Todos os operandos vem diretamente da memria, e todos os resultados
so enviados diretamente para a memria.
ADD T1, A, B
ADD T2, C, D
MUL X, T1, T2
R1
R2
R3
R1
R2
R1
R1
M[X]
M[A]
M[B]
R1 + R2
M[C]
M[D]
R1 + R2
R1 x R3
R1
Arquitetura register-to-memory
uma variao das duas arquiteturas anteriores, onde ambas referncias (para
memria e para registradores) podem ser utilizadas em uma mesma instruo. O
tamanho do programa e o nmero de acessos a memria tende a ser intermedirio
entre as duas arquiteturas anteriores. Um exemplo de uma instruo de 2 endereos
com um nico endereo a memria permitido :
ADD R1, A
R1 R1 + M[A]
10