organização de computadores

Propaganda
UNIP - UNIVERSIDADE PAULISTA
ORGANIZAÇÃO DE COMPUTADORES
ORGANIZAÇÃO DE COMPUTADORES
• Bibliografia:
– MONTEIRO, M. A. – Introdução à organização de
computadores. 4 ed. RJ. LTC 2001.
– TANEMBAUM, A. S. Organização Estruturada de
Computadores. 4 ed. RJ. LTC 2001.
• Bibliografia complementar
– MURDOCCA, M. J. Introdução à arquitetura de
computadores. RJ. Campus, 2001.
– STALLINGS, W. Arquitetura e organização de
computadores. 5 ed. SP. Pearson, 2002.
ORGANIZAÇÃO DE COMPUTADORES
• Conceituação de Organização e arquitetura de
Computadores e máquinas multiníveis.
• Organização de Sistemas computacionais.
• CPU, memória, Entradas e multimídia,
barramentos.
ORGANIZAÇÃO DE COMPUTADORES
• Nível lógico digital: UAL, Organização da
memória, Clock e registradores.
• Nível de microarquitetura: Fluxos de dados,
Temporização do fluxo de dados, operação de
memória, microinstruções.
• Exemplo de macroarquitetura e projeto do nível de
macroarquitetura (forma introdutória).
MÓDULO I
Organização estruturada de
computador

Máquinas multiníveis contemporâneas

Nível de lógica digital;

Nível de microarquitetura;

Nível de arquitetura de arquitetura de conjunto de
instruções;

Nível de máquina de sistema operacional;

Nível de linguagem assembly; e

Nível de linguagem orientada ao problema.
MÓDULO I
Organização estruturada de
computador

Evolução das máquinas de vários níveis

A invenção da microprogramação;

A invenção do Sistema Opreacional;

Migração das funcionalidades para o Microcódigo;

A eliminação da Microprogramação;
INTRODUÇÃO

O Computador:


É uma máquina de solução de problemas.
Executa programas - Conjunto de instruções que
descrevem como realizar uma tarefa.
INTRODUÇÃO

Os circuitos de um computador:


Reconhecem e executam um conjunto limitado e simples de
instruções (Linguagem de máquina – Binária);
Exemplo: soma, subtração, transferência de dados de uma
parte da memória para outraparte.
INTRODUÇÃO

Instruções da linguagem de máquina (decidida
pelos projetistas de computadores) devem:

Ser simples;

Ser compatível com o uso da máquina;

Ser compatível com a performance requerida;

Ter custo e complexidade da eletrônica reduzidos
(aplicação).
INTRODUÇÃO


A linguagem de máquina (binária – baixo nível)
está muito distante de uma linguagem natural
(humana – alto nível)
O que as pessoas precisam fazer é complexo X O
conjunto de instruções do computador é simples.
INTRODUÇÃO

EXEMPLO:

O usuário quer calcular a correção da trajetória de um
foguete até a lua.


Como ele pode fazer isso em linguagem de máquina?
Trabalho difícil e tedioso para seres humanos.
SOLUÇÃO:

Criar uma hierarquia de abstrações de níveis mais altos baseados nos
níveis mais baixos.

Criar uma organização estruturada de computadores para facilitar a
comunicação homem-máquina
LINGUAGENS, NÍVEIS E
MÁQUINAS VIRTUAIS



Supondo a existência das Linguagens:
L1: Linguagem natural, do usuário (Alto nível e
complexa).
L0: Linguagem de máquina (Baixo Nível e
simples).

COMO COMPATIBILIZAR L1 com L0?
Temos 2 soluções.
LINGUAGENS, NÍVEIS E
MÁQUINAS VIRTUAIS

USAR UM TRADUTOR;

USAR UM INTERPRETADOR.
LINGUAGENS, NÍVEIS E
MÁQUINAS VIRTUAIS

TRADUTOR:

Cada instrução de L1 é substituída por um conjunto
de instruções equivalentes de L0;

Processador executa o programa em L0;

Todo o programa em L0 é carregado em memória e
executado;

O programa pode ser traduzido uma única vez e
executado várias vezes.
LINGUAGENS, NÍVEIS E
MÁQUINAS VIRTUAIS

INTERPRETADOR:

Cada instrução de L1 é substituída por um conjunto de
instruções equivalentes de L0;

Processador executa instrução de L1 (transformada para L0)
antes de executar a próxima instrução;

Cada instrução de L1, transformada em L0, é carregada na
memória e executada;

Não é criado um programa em L0;

O programa deve ser novamente interpretado para ser
executado.
LINGUAGENS, NÍVEIS E
MÁQUINAS VIRTUAIS

Ao invés de pensar em tradução ou
interpretação,
pode-se imaginar
a
existência de um computador hipotético,
ou de uma máquina virtual M1, cuja
linguagem de máquina seja L1 ( e uma
máquina real M0 com linguagem L0 ).
LINGUAGENS, NÍVEIS E
MÁQUINAS VIRTUAIS

Os progrmas poderiam ser escritos em L1, para
a máquina M1 e:

(1) Serem executados diretamente em M1 se esta
máquina fosse de custo de construção baixo, ou

(2) Serem traduzidos ou interpretados para L0 e
executados em M0.
Na prática, implementa-se a solução 2 acima. As pessoas
escrevem programas para máquinas virtuais como se
elas realmente existissem.
LINGUAGENS, NÍVEIS E
MÁQUINAS VIRTUAIS



Muitos níveis de máquinas virtuais podem ser
implementados;
Cada linguagem usa a sua linguagem
antecessora como base;
Um computador que use essa técnica pode ser
visto como um conjunto de camadas ou níveis
um em cima do outro como mostra a figura a
figura do próximo slide.
LINGUAGENS, NÍVEIS E
MÁQUINAS VIRTUAIS
MÁQUINAS MULTINÍVEIS
CONTEMPORÂNEAS
A grande maioria dos computadores é formada por 2 ou mais níveis. A
figura abaixo mostra o esquema de um computador de 6 níveis:
MÁQUINAS MULTINÍVEIS
CONTEMPORÂNEAS

Nível 0: Nível da lógica digital.




Nível mais baixo da estrutura.
Objetos de interesse são conhecidos como portas
lógicas.
Cada porta lógica tem uma ou mais entradas digitais
(aceitam 0 ou 1 e calculam funções lógicas simples
sobre essas entradas. Exemplo: AND, OR e XOR.
Portas lógicas são combinadas para formar o
processador – principal dispositivo do computador.
MÁQUINAS MULTINÍVEIS
CONTEMPORÂNEAS

Nível 1: Nível da microarquitetura.




Enxergamos uma memória local (8 a 32
registradores) e a UAL (Unidade Aritmética e
Lógica) que realiza operações aritméticas muito
simples.
Os registradores são conectados a UAL formando o
caminho dos dados.
Operações são controladas por um microprograma
ou diretamente por hardware.
Microprograma é um interpretador para as
instruções do nível 2.
MÁQUINAS MULTINÍVEIS
CONTEMPORÂNEAS

Nível 2: Nível da arquitetura do conjunto de instruções (nível
ISA - Instruction Set Architeture).




Definida pelo fabricante e dependente da arquitetura da
máquina.
Fabricantes disponibilizam “Manual de Referência da
Linguagem de Máquina“ ou “Princípios de Operação do
Computador Modelo XPTO“, ou algo similar.
Os manuais descrevem como as instruções são executadas
interpretativamente pelo microprograma ou como elas são
executadas diretamente pelo hardware.
Essas i nformações são necessárias para os desenvolvedores
de sistemas operacionais.
MÁQUINAS MULTINÍVEIS
CONTEMPORÂNEAS

Nível 3: Nível do Sistema Operacional.





Instruções da linguagem deste nível também podem conter
instruções do nível ISA.
Suporta uma organização diferente da memória.
Suporta a capacidade de rodar 2 ou mais programas
simultaneamente.
Suporta sistemas de comandos ou de janelas (Windows).
Programadores deste nível e também dos níveis mais baixos,
são conhecidos como programadores de sistema. Os
programadores dos níveis mais altos que este são chamaddos
programadores de aplicação.
MÁQUINAS MULTINÍVEIS
CONTEMPORÂNEAS

Nível 4: Nível da linguagem do montador ou
montagem (Assembly language).



Linguagem de montagem: Forma simbólica de
representação das linguagens de nível mais baixo.
Programas nessa linguagem são primeiro traduzidos
para as linguagens dos níveis 1, 2 e 3. E depois são
interpretados pela máquina virtual apropriada ou pela
própria máquina real.
O programa que realiza essa tradução é chamado de
montador.
MÁQUINAS MULTINÍVEIS
CONTEMPORÂNEAS

Nível 5: Nível das linguagens orientadas para
a solução de problemas.



Conhecidas como linguagens de alto nível. Ex: C,
Pascal, Java, etc.
Programas são geralmente traduzidos para os níveis 3
e 4 por compiladores.
Alguns são interpretados. Exemplo: Java, Shell
Script, etc.
MÁQUINAS MULTINÍVEIS
CONTEMPORÂNEAS

OBSERVAÇÕES FINAIS (IMPORTANTES)





Computadores são projetados com uma série de níveis, cada
um deles construídos em cima de seus precursores.
Cada nível representa uma abstração distinta, com diferentes
objetos e operações.
A abstração permiter ignorar, “abstrair“ temporariamente,
detalhes irrelevantes de níveis mais baixos, reduzindo uma
questão complexa para algo muito mais fácil de ser
compreendido.
O conjunto de tipos de dados, operações e características de
cada um dos níveis é chamado de arquitetura do nível.
São parte da arquitetura, as características que um
programador do nível deve enxergar, por exemplo, a
disponibilidade de memória.
MÓDULO I
Organização estruturada de
computador

Evolução das máquinas de vários níveis

A invenção da microprogramação;

A invenção do Sistema Opreacional;

Migração das funcionalidades para o Microcódigo;

A eliminação da Microprogramação;
Organização estruturada de
computador
Evolução das máquinas de vários níveis


Hardware (Nível 0): Compostos de circuitos integrados, placas de
circuitos impressos, cabos, fontes de alimentação, memórias,
impressoras, etc;
Softwares: Algoritmos e programas;
Atualmente é difícil separar o hardware do software



Hardware e Software são equivalentes logicamente;
Qquer operação realizada por software pode ser diretamente
realizada por hardware;
Qualquer instrução executada por hardware pode ser simulada em
software;
Organização estruturada de
computador
A decisão de se colocar funções em hardware ou
software depende:

Custo;

Velocidade;

Confiabilidade;

Ferquência esperada de mudanças.
MÓDULO I
Organização estruturada de
computador

A invenção da microprogramação


Primeiros computadores – década de 1940 – tinham 2
níveis (Nível ISA + Nível da lógica digital);
Em 1951, Maurice Wilkes segere a idéia de acoplar um
interpretador (microprograma) para executar os
programas do nível ISA (por interpretação). Como
consequencia:


Diminui o número de circuitos (hardware + simples)
Aumenta a confiabilidade da máquina (circuitos à
válvula).
MÓDULO I
Organização estruturada de
computador

A invenção da microprogramação (Cont.)


Na década de 1960 surgiram muitas máquinas com essa
filosofia;
Em 1970, o uso do nível de ISA interpretado por
microprograma, ao invés de executado diretamente por
circuitos eletrônicos, tornou-se uma prática comum.
MÓDULO I
Organização estruturada de
computador
A invenção do Sistema Operacional
•
No início, os computadores:


Eram operados e gerenciados pelo próprio programador;
Executavam apenas um programa por vez (disponível
apenas para um único usuário).
MÓDULO I
Organização estruturada de
computador
A invenção do Sistema Operacional (Cont)
Exemplo de execução de um programa FORTRAN:
1.Colocar cartões do compilador FORTRAN na leitora + mandar executar (enter)
2. Colocar cartões do programa na leitora (1a vez) + executar
3. Colocar cartões do programa na leitora (2a vez) + executar (compilador de 2
passos)
4. Se programa não tem erro, o compilador perfurava cartões com código de
máquina. Senão, corrige programa e volta ao passo 1
5. Colocar programa em linguagem de máquina + cartões da biblioteca Fortran e
executar
6. Programa é executado. Se há erro de lógica, corrige e volta ao passo 1.
MÓDULO I
Organização estruturada de
computador
A invenção do Sistema Operacional (Cont)
Por volta de 1960, foi criado o Sistema Operacional:
•
Objetivo: Facilitar a operação do computador
•
O SO era mantido o tempo todo no computador
•
Cartões de controle comandavam instruções do SO.
Exemplo:
MÓDULO I
Organização estruturada de
computador
Cartões de Controle: * JOB identifica o usuário, * FORTRAN
carrega o compilador e *DATA executa o programa com os
dados que seguem. Programa é executado em sistema BATCH.
MÓDULO I
Organização estruturada de
computador
A invenção do Sistema Operacional (Cont)
Com o tempo o SO evoluiu incorporando, além de algumas instruções do
ISA, tratamento de Entrada/Saida. As instruções do SO eram conhecidas
por macros do SO ou chamadas ao supervisor.
Em 1960, no MIT, criou-se o SO com compartilhamento de vários usuários
(por terminais ligados ao computador por linhas telefônicas) conhecidos
como Sistemas de Tempo Compartilhado.
MÓDULO I
Organização estruturada de
computador
Migração das funcionalidades para o Microcódigo
Em 1970, houve uma explosão, nos conjuntos de instruções das
máquinas, expandindo-se o microprograma.
Exemplos de novas funcionalidades, instruções para:
- multiplicação e divisão de inteiros.
- aritmética em ponto flutuante.
- chamada e retorno de procedimentos.
- acelerar a execução de loops.
- manipulação de cadeias de caracteres.
MÓDULO I
Organização estruturada de
computador
Migração das funcionalidades para o Microcódigo
Devido a facilidade da microprogramação, foram, ainda, incorporadas novas
funcionalidades do tipo:
- para acelerar o processamento de programas envolvendo cálculo matricial
(indexação e endereçamento indireto)
- para permitir que os programas pudessem ser deslocados de posição de
memória, após o início da execução (realocação)
- para tratar interrupções que enviam um sinal para o processador logo que
uma operação de E/S termine.
- para suspender a execução de um programa e iniciar a execução de outro
(troca de contexto entre processos)
MÓDULO I
Organização estruturada de
computador
A eliminação da Microprogramação;
Assim os microprogramas cresceram muito e, em consequencia,
tornaram-se lentos. Voltou a idéia de ter instruções e funcionalidades
executadas por hardware.
CONCLUSÕES:
- Fronteira entre hardware e software pode ser arbitrária.
- O sotware de hoje pode ser o hardware de amanha, e vice-versa.
- Fronteiras entre demais níveis não estão bem definidas e podem também ser
mudadas.
- Programador de um nível, em geral, não deve se preocupar com
implementações de níveis inferiores.
- para suspender a execução de um programa e iniciar a execução de outro
(troca de contexto entre processos).
MÓDULO I
Organização estruturada de
computador
EXERCÍCIOS:
1.
Explique com suas palavras o significado de cada um dos seguintes termos:
- Tradutor, Interpretador e Máquina virtual.
2. Qual a diferença entre interpretação e tradução?
3. Até que ponto se pode afirmar que o hardware e o software são equivalentes? E não
equivalentes?
Download