arquitetura e organização de computadores · o microprograma é um interpretador para as...

26
Arquitetura e Organização de computadores Aula 1: Organização e evolução de computador, parte 2 Prof. MSc. Pedro Brandão Neto, [email protected] Sistemas de Informação - UNDB

Upload: lykhue

Post on 20-Sep-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Arquitetura e Organização de computadores

Aula 1: Organização e evolução de computador, parte 2

Prof. MSc. Pedro Brandão Neto, [email protected]

Sistemas de Informação - UNDB

2

Introdução

3

Nível 0: Nível da Lógica Digital Nível mais baixo da estrutura. É o verdadeiro hardware da máquina

Objetos de interesse são conhecidas portas lógicas (AND, OR e XOR)

Cada porta lógica possui 1 ou mais entradas digitais (aceitam 0 ou 1) ecalculam funções lógicas simples sobre essas entradas

Um pequeno número número de portas pode ser combinado paraformar uma memória de 1 bit, que pode armazena 0 ou 1

As memórias de 1 bit podem ser combinadas em grupos de 16, 32 ou64 para formar registradores

Portas também podem ser combinadas para formar o mecanismoprincipal de computação, o processador

Máquinas Multiníveis Contemporâneas

4

Nível 1: Nível da Microarquitetura Constituído por um conjunto de 8 a 32 registradores (uma memória local) e o

circuito Unidade Aritmética Lógica (UAL, capaz de executar operaçõesaritméticas simples)

Registradores são conectados à UAL para formar o caminho dos dados

Operações são controladas por um microprograma ou diretamente porhardware

O microprograma é um interpretador para as instruções no Nível 2. Ele busca,decodifica e executa instruções, uma a uma, usando o caminho de dados para arealizações de terefas Por exemplo: Com uma instrução ADD, a instrução é buscada, seus

operandos, localizados e trazidos para dentro do registrador e então asoma é calculada pela UAL e, por fim, o resultado é enviado para a memória

Máquinas Multiníveis Contemporâneas

5

Nível 1: Nível da Microarquitetura

Máquinas Multiníveis Contemporâneas

6

Nível 2: Nível de Arquitetura do Conjunto de Instruções (ISA -Instruction Set Architecture) , ou nível ISA

É o nível de Arquitetura do conjunto de instruções (ISA -Instruction Set Architecture), ou nível ISA

Fabricantes disponibilizam “Manual de Referência da Linguagemde Máquina” ou “Princípios de operação” do ComputadorModelo XYZW” (ou algo similar)

Os manuais de referências descrevem as instruções executadaspor interpretação pelo microprograma ou pelo circuitos deexecução do hardware

As informações dos manuais são necessárias para osdesenvolvedores de sistemas operacionais

Máquinas Multiníveis Contemporâneas

7

Nível 2: Nível de Arquitetura do Conjunto de Instruções (ISA -Instruction Set Architecture) , ou nível ISA

Coleção completa das instruções que a CPU é capaz de executar Linguagem de máquina É uma linguagem numérica (sequência de bits)

Linguagem demontagem (Assembly) é uma representaçãosimbólica do conjunto de instruções

Tradução é feita por um programa montador – Assembler (1:1) Linguagens de alto-nível devem ser convertidas em linguagem de

máquina para sua execução Tradução por compiladores ou interpretadores(1:N)

Máquinas Multiníveis Contemporâneas

8

Nível 3: Nível do Sistema Operacional Neste nível também podem conter instruções do nível ISA

Suporta uma organização diferente de memória

Suporta capacidade de executar 2 ou mais programassimultaneamente

Programadores deste nível, e também dos níveis mais baixos, sãoconhecidos como programadores de sistema

Os programadores dos níveis mais altos que este são chamadosprogramadores de aplicação

As novas facilidades adicionadas ao nível 3 são executadas por uminterpretador que executa no nível 2. O nível 3 é denominadosistema operacional

Máquinas Multiníveis Contemporâneas

9

Nível 4: Nível da linguagem de montagem (Assembly language) Os três níveis mais baixos não são projetados para utilização do

programador médio, de nível caseiro São dirigidos à execução dos interpretadores e tradutores (escritos por pessoas

denominadas programadores de sistemas que se especializam em projetar eimplementar novas máquinas reais) que dão suporte aos níveis mais alto

Este nível e os superiores são dirigidos ao programador de aplicaçõesque tem um problema a resolver Linguagem de montagem (assembly): forma simbólica de representação das

linguagens do nível mais baixo

Programas em assembly são traduzidos para as linguagens dos níveis 1, 2e 3 e depois interpretados pela máquina virtual apropriada ou pelaprópria máquina real

Programa que realiza a tradução é denominado assembler (montador)

Máquinas Multiníveis Contemporâneas

10

Nível 5: Nível das linguagens orientadas para solução dosproblemas

Conhecidas como linguagens de alto nível. Exemplos: Basic, C,c++, Pascal, Java, LISP, Prolog....

Programas são geralmente traduzidos para os níveis 3 e 4 porcompiladores.

Alguns são interpretados: Exemplo: programas em Java.

Máquinas Multiníveis Contemporâneas

11

Observações importantes (I)

A maioria dos computadores modernos consiste em dois ou maisníveis

Computadores são projetados como uma série de níveis, cada umdeles construído em cima de seus precursores.

Cada nível representa uma abstração distinta, com diferentesobjetos e operações.

A abstração permite ignorar, "abstrair", temporariamente detalhesirrelevantes, de níveis mais baixos, reduzindo uma questão complexaa algo muito mais fácil de ser entendido.

Máquinas Multiníveis

12

Observações importantes (II)

O conjunto de tipos de dados, operações e características de cadanível é denominado arquitetura

A arquitetura trata dos aspectos que são visíveis ao usuário daquelenível. Características que o programador vê, como a quantidade dememória disponível, são parte da arquitetura

O estudo sobre como projetar as partes de um sistema decomputador que sejam visíveis para os programadores édenominado arquitetura de computadores.

Máquinas Multiníveis

13

Evolução das máquinas Multiníveis

Programas escritos em linguagem de máquina (nivel 1) de umcomputador podem ser executados diretamente pelos circuitoeletrônicos (nível 0) sem nenhum interpretador ou tradutor

Os circuitos eletrônicos junto com a memória e dispositivos deentrada/saída formam o hardware do computador

O hardware consiste em objetos tangíveis Circuitos integrados, placas de circuito impresso, cabos, fontes de

energia, memórias e impressoras, ao invés de ideias abstratas,algoritmos ou instruções

Máquinas Multiníveis

14

Evolução das máquinas Multiníveis

O software, entretanto, consiste em algoritmos (instruçõesdetalhadas que dizem como fazer algo) e suas representações nocomputador

Primeiros computadores – fronteira entre o hardware e osoftware era muito clara

Máquinas Multiníveis

Evolução das máquinas Multiníveis

Qualquer operação realizada por software pode ser realizadadiretamente por hardware

Qualquer instrução executada por hardware pode ser simuladaem software.

Hardware e software são equivalentes logicamente

15

Máquinas Multiníveis

16

Considerações (I)

Fronteira entre o hardware e o software pode ser arbitrária eestá sempre mudando.

O que hoje está implementado em software poderá em breveestar implementado em hardware, e vice-versa - O software dehoje pode ser o hardware de amanhã e vice-versa.

As fronteiras entre os demais níveis não estão bem definidas epodem também ser alteradas.

Máquinas Multiníveis

17

Considerações (II)

Do ponto de vista do programador, não tem muita importância amaneira como uma instrução é realmente implementada.

Programador de um nível, em geral, não deve se preocupar comimplementações de níveis inferiores

Máquinas Multiníveis

Invenção da Microprogramação

Os primeiros computadores (anos 40) possuíam somente doisníveis Nível de Arquitetura de Conjunto de Instruções (ISA) – onde era

feita toda programação – e o Nível de Lógica Digital queexecutava os programas Os circuitos eram complicados, difíceis de entender e montar, e não

confiáveis.

Em 1951, Maurice Wilkes (University of Cambridge) sugeriuprojetar um computador de três níveis para simplificardrasticamente o hardware. Essa máquina deveria ter uminterpretador embutido, imutável, cuja função fosse executarprogramas de nível ISA.

18

Invenção do Sistema Operacional

Por volta de 1960, foi criado o primeiro sistema operacional queautomatizava o trabalho do programador:

carregar o compilador de FORTRAN. Antes o programador colocava-ona leitora de cartões e apertava o botão START

carregar o programa a ser compilado. Antes o programador tinha quecolocar o seu programa na leitora e apertava o botão CONTINUE

O programa resultante da compilação começava a executar. Antes ocompilador perfurava os cartões o programa traduzido para a linguagem demáquina

entrar os dados para o programa imprimir os resultados do programa ...

19

Invenção do Sistema Operacional

Nos anos subsequentes, os sistemas operacionais tornaram-secada vez mais sofisticados Novas instruções, facilidades e características foram adicionadas

ao nível ISA. Estas novas instruções ficaram conhecidas como macros de SO

ou chamadas do supervisor. Hoje é conhecido como chamada do sistema.

21

Sistemas Embarcados

Circuito de Aplicação Específica – ASIC

Computação Reconfigurável Lógica programável - FPGA

Máquinas Multiníveis

22

Sistemas Embarcados

Partes de outros produtos

Exemplos de sistemas embarcados: microcomputadores microcontroladores processadores digitais de sinais

Exemplos de aplicações para sistemas embarcados: Telefones celulares Automóveis Video Games TV GPS

Máquinas Multiníveis

23

Sistemas Embarcados

Desafio

Máquinas Multiníveis

Código Morse

Sistema de representação de letras, números e sinais de pontuaçãoatravés de um sinal codificado enviado intermitentemente

Desenvolvido por Samuel Morse em 1835, criador do telégrafo elétrico

Uma mensagem codificada pode ser transmitida através de pulsos (outons) curtos e longos por: pulsos eléctricos transmitidos em um cabo ondas mecânicas (perturbações sonoras) sinais visuais (luzes acendendo e apagando) ondas eletromagnéticas (sinais de rádio)

Vide ilustração: https://www.youtube.com/watch?v=eu2jKRDHff024

Ábaco

Há cerca de 5 mil anos. Foi quando os mercadores daMesopotâmia desenvolveram o primeiro sistema científico paracontar e acumular grandes quantias.

25

Fim!