41
UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

Embed Size (px)

Citation preview

Page 1: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

UNIP - UNIVERSIDADE PAULISTA

ORGANIZAÇÃO DE COMPUTADORES

Page 2: 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.

Page 3: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 4: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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).

Page 5: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganizaçã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.

Page 6: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganizaçã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;

Page 7: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

INTRODUÇÃO O Computador:

É uma máquina de solução de problemas.

Executa programas - Conjunto de instruções que descrevem como realizar uma tarefa.

Page 8: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 9: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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).

Page 10: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 11: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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

Page 12: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 13: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

LINGUAGENS, NÍVEIS E MÁQUINAS VIRTUAIS

USAR UM TRADUTOR;

USAR UM INTERPRETADOR.

Page 14: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 15: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 16: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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 ).

Page 17: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 18: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 19: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

LINGUAGENS, NÍVEIS E MÁQUINAS VIRTUAIS

Page 20: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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:

Page 21: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 22: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 23: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 24: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 25: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 26: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 27: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 28: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganizaçã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;

Page 29: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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;

Page 30: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

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.

Page 31: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganizaçã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).

Page 32: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganizaçã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.

Page 33: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganizaçã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).

Page 34: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganização estruturada de

computadorA 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.   

Page 35: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganização estruturada de

computadorA 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:

Page 36: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganizaçã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.

Page 37: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganização estruturada de

computadorA 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.  

   

Page 38: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganização estruturada de

computadorMigraçã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.

   

Page 39: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganização estruturada de

computadorMigração das funcionalidades para o Microcódigo Devido a facilidade da microprogramação, foram, ainda, incorporadas novasfuncionalidades 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)   

Page 40: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganização estruturada de

computadorA 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 funcionalidadesexecutadas 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).

Page 41: UNIP - UNIVERSIDADE PAULISTA ORGANIZAÇÃO DE COMPUTADORES

MÓDULO IOrganização estruturada de

computadorEXERCÍ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?