Vous êtes sur la page 1sur 12

05/04/2011

Organização de
Computadores

Definições
1 – Computador Digital : Maquina que pode resolver
problemas para as pessoas executando instruções que
lhe são dadas.

2 – Programa : Seqüência de instruções que descreve


como realizar certa tarefa.

3 – Linguagem de Maquina : Linguagem composta


somente por números, representados de forma binária,
que, sob o ponto de vista do computador, representam
as operações e os operandos que serão usados no
processamento do programa

Organização de computadores

• Lida com relacionamentos estruturais que não são


vistos pelo programador, ou seja, a forma como o
sistema se estrutura.

• Incluem também os detalhes de Hardware


transparentes ao programador, tais como sinais de
controles, as interfaces entre o computador e os
periféricos e a tecnologia de memória utilizada.

1
05/04/2011

Arquitetura de computadores
• Refere-se aos atributos de um sistema, aos Hardwares
(gabinete, memórias, HD, mecanismos de E/S, processador,
placa mãe, placa de rede, placa de vídeo, placa de som, cd
rom, etc...), ou seja, tudo que for visível para o programador.

• Incluem também o barramento que e’ o conjunto de linha de


comunicação que permitem a interligação entre dispositivos
como, CPU, memória e outros periféricos, e conjunto de
instruções, o numero de bits usados para representar os
vários tipos de dados (números,caracteres) , ou seja, a
linguagem de maquina (0 e 1 ).

Conceitos sobre organização de


computadores
Para estudar organização de computadores alguns
conceitos básicos devem ser assimilados/revisados.
Estes conceitos abrangem os componentes
funcionais básicos e as formas de
representação/armazenamento de informações, além
do funcionamento básico dos sistemas de
computação.

Modelo de Von Neumann

• Computador de programa armazenado


• Iniciou-se em 1946 e terminou em 1952
• Consiste em 5 componentes principais
1. Unidade de entrada
2. Unidade de Saída
3. Unidade de lógica aritmética
4. Unidade de memória
5. Unidade de controle

2
05/04/2011

Modelo de Von Neumann

Modernização Modelo de Von


Neumann

Barramentos (Bus) : Conjunto de fios que fazem a


ligação física entre as diversas unidades

Modelo de Von Neumann


Barramento de Endereços : Trafego de endereços
Barramento de Dados : Trafego dos dados
Barramento de Controle : Trafego dos sinais de controle

Observação : A CPU gera endereços que são colocados


no Barramento de endereços, e a memória recebe
endereços do barramento de endereços. A memória
nunca gera endereços, e a CPU nunca recebe endereços e
desta forma não existem conexões correspondentes a estas
direções.

3
05/04/2011

Microprogramação
Os primeiros computadores (anos 40) possuíam
somente dois níveis:
• Nível de Arquitetura de Conjunto de Instruções (ISA – Industry
Standard Architecture),
no qual era feita toda a programação, e;
• Nível de Lógica Digital, que era complicado, difícil de
entender e construir, e de baixa confiabilidade, que
executava esses programas.

Em 1951, Maurice Wilkes sugeriu a introdução de um


nível intermediário para simplificar o hardware: um
interpretador (microprograma) imutável para executar
as instruções no nível ISA por interpretação.

Microprogramação
Microprogramação é uma programação por linguagem
de máquina inserida em um hardware com um
microprocessador.
Como consequência disso, houve a diminuição do número
de circuitos (hardware mais simples), aumentando a
confiabilidade da máquina (já que na época, os circuitos
eram a válvula).

Em torno de 1970, a idéia de interpretar o nível ISA por


um microprograma em vez de diretamente por meios
eletrônicos era dominante. Todas as principais máquinas
de época utilizavam.

A invenção do sistema operacional


Por volta de 1960, foi criado um programa – Sistema
Operacional (SO) – que ficaria constantemente em
execução no computador com a função de automatizar o
trabalho do operador do computador :
• iniciar um novo job,
• carregar o compilador de FORTRAN
• carregar o programa a ser compilado
• executar o programa resultante da compilação
• entrar os dados para o programa
• imprimir os resultados do programa...

4
05/04/2011

Qual a função do Microcódigo ?


“Ensinar” ao processador o que fazer, é como um guia
passo a passo para cada instrução.

Exemplo:

somar a+b

seu microcódigo dirá à unidade de decodificação que


são necessários dois parâmetros, a e b.

Qual a função do Microcódigo ?


A unidade de decodificação requisita que a unidade de
busca pegue a informação presente nas duas
posições de memória seguintes, que seja compatível
com os valores para a e b.

Depois que a unidade de decodificação “traduziu” a


instrução e coletou todas as informações necessárias
para executar a instrução, ela irá passar todas as
informações e o “guia passo-a-passo” sobre como
executar aquela instrução para a unidade de execução.

A eliminação da Microprogramação?
Os projetistas perceberam que podiam acrescentar
novas instruções apenas ampliando o microprograma
(como se pudessem acrescentar HW, ou seja, novas
instruções de máquina por programação).
Microprogramas grandes = tendência a ficar mais
lentos.
Voltou a idéia de eliminar o microprograma,
promovendo uma drástica redução no conjunto de
instruções e funcionalidades e fazendo com que as
instruções restantes fossem executadas diretamente,
pelo Hardware, que deixaria a máquina mais rápida.

5
05/04/2011

Linguagens, Níveis e Máquinas Reais


• Os componentes (circuitos eletrônicos de um
computador) podem executar um número limitado de
instruções simples, como por exemplo: soma de dois
números, cópia de dados; verificação;

• Ao conjunto de instruções primitivas que torna


possível as pessoas se comunicarem com os
computadores, dá-se o nome de linguagem de máquina;

• Programa: seqüência de instruções que descreve como


executar uma determinada tarefa.

Linguagens, Níveis e Máquinas Reais


• Os componentes (circuitos eletrônicos de um
computador) podem executar um número limitado de
instruções simples, como por exemplo: soma de dois
números, cópia de dados; verificação;

• Ao conjunto de instruções primitivas que torna


possível as pessoas se comunicarem com os
computadores, dá-se o nome de linguagem de máquina;

• Programa: seqüência de instruções que descreve como


executar uma determinada tarefa.

Linguagens, Níveis e Máquinas Reais


• L0 – Linguagem de Máquina
• L1 – Conjunto de instruções mais conveniente
para as pessoas + L0;

• Para executar um programa escrito em L1, é


necessário substituir cada instrução por uma
sequência de instruções em L0. O resultado será
um programa inteiramente em L0.
• O computador executa o programa L0 ao invés de L1.

Essa técnica é denominada TRADUÇÃO.

6
05/04/2011

Linguagens, Níveis e Máquinas Reais


• Uma outra maneira é escrever um programa em L0
que utilize programas L1 como dados de entrada;

• O programa as executa examinando cada instrução por


vez e executando diretamente a sequência equivalente de
instruções L0.
Nessa técnica não existe a geração prévia de um novo
programa em L0;

• Essa técnica é denominada INTERPRETAÇÃO.

Linguagens, Níveis e Máquinas Reais


• Para simplificar, ao invés de pensarmos em
TRADUÇÃO e INTERPRETAÇÃO, vamos imaginar
uma máquina real (M1), cuja linguagem de máquina
seja L1;

• Vamos denominar M0 a maquina real, correspondente a


linguagem L0;

• Na prática, L0 e L1 não devem ser muito diferentes, ou


seja, L1 embora melhor que L0, ainda estará longe de ser
o ideal para a maioria das aplicações;

Linguagens, Níveis e Máquinas Reais


• Nessa mesma linha de raciocínio, teremos que ter
um novo conjunto de mais alto nível (mais dirigido as
pessoas) do que as máquinas, do que a linguagem
anterior. A este terceiro nível de linguagem, chamaremos
L2, com máquina real M2;

• A criação de outras linguagens mais dirigido a pessoas e


menos a máquinas pode continuar indefinidamente, até
que se chegue a uma adequada (Mn / Ln).

7
05/04/2011

Linguagens, Níveis e Máquinas Reais

• Somente programas escritos em L0 podem ser


executados diretamente pelos circuitos eletrônicos, sem
a necessidade de TRADUÇÃO ou INTERPRETAÇÃO;

• Cada linguagem usa sua antecessora como base,


de modo que podemos considerar um computador que
use essa técnica como uma série de níveis (ou camadas),
como mostra a figura a seguir;

Linguagens, Níveis e Máquinas Reais

Revisão dos conceitos


• Programa: seqüência de instruções que descreve como
executar uma determinada tarefa.

• Linguagem de máquina: formada por um conjunto de


instruções primitivas que torna possível às pessoas
se comunicarem com os computadores.

• Tradução: Método de execução de programa que


substitui cada instrução da linguagem L1 (linguagem
de alto nível) pela linguagem L0 (linguagem de baixo
nível).

8
05/04/2011

Revisão dos conceitos


• Interpretação: Método de execução de programa que
executa a linguagem L1 sem a geração de um novo
código, executando a seqüência equivalente de
instruções L0 diretamente.

• Cada linguagem utiliza sua predecessora como base, e


então pode-se visualizar um computador como uma série
de níveis ou camadas.

• Linguagens de Alto Nível: Linguagens projetadas para


serem utilizadas por programadores. Ex. C/C++, Visual
Basic, PHP,etc...

Máquina Multinível
• Conforme os conceitos que vimos anteriormente,
uma máquina pode ser vista como tendo vários
níveis, cada um capaz de executar um conjunto de
instruções específicas. Isto é, cada nível possui
linguagens apropriadas para descrever as instruções
que nele podem ser executadas.

• A maioria dos computadores possui dois ou mais


níveis. Descreveremos a organização de uma
máquina com seis níveis (máquinas mais atuais).

Linguagens, Níveis e Máquinas Reais

9
05/04/2011

Níveis das Máquinas


• Nível de lógica digital,

• Nível de microarquitetura,

• Nível de arquitetura de conjunto de instruções,

• Nível de máquina de sistema operacional,

• Nível de linguagem Assembly,

• Nível de linguagem orientada ao problema.

Nível 0 – Lógica Digital


• Chamado de Nível 0, mas, na verdade, existe um
outro nível abaixo do nível 0, que é o nível de
dispositivos, o qual situa-se no campo da engenharia
elétrica (fora de nosso escopo).

• No nível de lógica digital, os objetos são denominados portas

• Seus circuitos executam os programas em linguagem de


máquina de nível 1;
• Este nível consiste somente em componentes elétricos
(transistores e fios – os quais as portas lógicas são feitas);

10
05/04/2011

Nível 0 – Lógica Digital


• Chamado de Nível 0, mas, na verdade, existe um
outro nível abaixo do nível 0, que é o nível de
dispositivos, o qual situa-se no campo da engenharia
elétrica (fora de nosso escopo).

• No nível de lógica digital, os objetos são denominados portas

• Seus circuitos executam os programas em linguagem de


máquina de nível 1;
• Este nível consiste somente em componentes elétricos
(transistores e fios – os quais as portas lógicas são feitas);

Nível 0 – Lógica Digital

• As portas lógicas são combinadas para formar o


processador;

• Tem uma ou mais entradas digitais (0 ou 1) e


computa como saída alguma função simples (AND
ou OR).

Nível 1 – Microarquitetura
• Nível 1 – Conhecido também como nível das unidades
funcionais. É o verdadeiro nível de linguagem de máquina.

• A função deste nível é interpretar as instruções de nível 2


.
• Poucas são as máquinas que têm mais de 20 instruções
neste nível.

• Conjunto de registradores (8 a 32 registradores) que formam


uma memória local e um circuito chamado ULA (Unidade
Lógica Aritmética)

11
05/04/2011

Nível 1 – Microarquitetura (cont.)

• Os registradores são conectados à ULA para formar


um caminho de dados (onde os dados transitam);

• Máquinas em que o caminho de dados é controlado


por software, o microprograma é um interpretador
para as instruções do nível 2.

• Máquinas com controle incorporado do caminho de


dados, ocorreriam etapas semelhantes, mas sem
um programa explícito armazenado para controlar a
interpretação das instruções do nível 2.

Nível 2 – Nível ISA


• Arquitetura do conjunto de Instruções
( ISA - Instruction Set Architecture)

• Conhecida também como nível de controle; é a


interface entre o software e o hardware;

• Nível mais próximo ao hardware onde o usuário


pode programar;

• Em determinadas máquinas o caminho de dados é


controlado por um programa denominado microprograma.
Em outras é diretamente pelo Hardware.

12