• Nenhum resultado encontrado

Bibliografia. Avaliações. Disciplina: Organização de Computadores Carga Horária 60 horas/aula Prof. Glauco Paparoto

N/A
N/A
Protected

Academic year: 2021

Share "Bibliografia. Avaliações. Disciplina: Organização de Computadores Carga Horária 60 horas/aula Prof. Glauco Paparoto"

Copied!
23
0
0

Texto

(1)

Disciplina: Organização de Computadores

Carga Horária – 60 horas/aula

Prof. Glauco Paparoto

1

Bibliografia

Monteiro, Mário A. Introdução à Organização

de Computadores. 4ª Ed. Rio de Janeiro, LTC,

2001

Tanembaum, Andrew S. Organização

Estruturada de Computadores. 4ª Ed. Rio de

Janeiro, LTC, 2001

STALLINGS, W. Arquitetura e organização de

computadores. 5.ed, São Paulo, Pearson: 2002

2

Avaliações

• A avaliação será obtida por meio de provas, trabalhos e seminários, dentre outros, bem como pela participação do aluno durante as aulas e demais atividades, a critério do professor e em conformidade com o respectivo plano de ensino. Serão feitas avaliações, assim distribuídas:

• Duas Notas do Professor (NP) para as atividades curriculares, com peso 4 (quatro) cada uma, na composição da nota semestral de cada disciplina;

• Uma nota referente ao Projeto Integrado Multidisciplinar (PIM), com peso 2 (dois) no cálculo da Média Semestral (MS) de cada disciplina. Esse Projeto será desenvolvido durante o semestre.

• A MS será: (NP1 x 4 + PIM x 2 + NP2 x 4) / 10. Para a aprovação, a MS deverá ser igual ou superior a 5,0; é exigida a freqüência mínima de 75%. O desempenho do aluno é avaliado numa escala de 0 (zero) a 10 (dez).

(2)

Ementa:

• 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 e Barramentos.

• Nível Lógico Digital: Unidade Lógica e Aritmética,

Organização de 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, O Mic-1, Exemplo de

Macroarquitetura e Projeto do Nível de

Microarquitetura (forma introdutória).

4

Objetivos

Conhecer

a

organização

interna

dos

computadores, para análise da otimização do

uso de seus componentes em aplicações das

áreas

de

informação,

comunicação

e

processos de controle.

5

Conteúdo Programático

1- 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 conjunto de instruções, nível de máquina de sistema operacional, nível de linguagem Assembly, nível de linguagem orientada ao problema.

• Evolução das máquinas multiníveis: microprograma, a invenção do sistema operacional, microcódigo, a eliminação da microprogramação.

• Exercícios relacionados com o material apresentado.

(3)

Conteúdo Programático

(cont.)

2- Organização de sistemas computacionais:

• Processadores: organização da CPU, execução de instrução, princípios de projetos para computadores modernos, paralelismo no nível de instrução, paralelismo no nível de processador

• Exercícios relacionados com o material apresentado.

• Memória primária: endereços, ordenação dos bytes, códigos de correção de erros.

• Memória secundária

• Exercícios relacionados com o material apresentado.

• Entrada e saída: barramentos

• Exercícios relacionados com o material apresentado.

7

Conteúdo Programático

(cont.)

3- Nível de lógica digital:

• Introdução à portas lógicas

• Clocks • RAMs, ROMs • Chips de memória • Organização de memória • Chips de CPU • Exemplos de microprocessadores

• Barramentos: largura, temporização, operação

• Exemplos de barramentos: ISA, PCI, USB

• Interfaceamento de E/S: chips de E/S, decodificação de endereço

8

Conteúdo Programático

(cont.)

4- Nível de microarquitetura (microprogramação):

• Exemplo de microarquitetura: fluxo de dados, temporização do fluxo de dados

(4)

Arquitetura dos Computadores

• Refere-se aos atributos de um sistema, ao Hardware

(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 o que for visível para o programador. Incluem também o barramento que é o conjunto de linhas de comunicação que permitem a interligação entre dispositivos, como oCPU, amemóriae outrosperiféricose conjunto de instruções, o número de bits usados para representar os vários tipos de dados (números, caracteres), ou seja, a linguagem de máquina (0 e 1).

10

Organização dos computadores

Lida com os relacionamentos estruturais que não

são vistos pelo programador, ou seja, a forma

como se estrutura o sistema.

Incluem também os detalhes de Hardware

transparentes ao programador, tais como os

sinais

de

controle,

as

interfaces

entre

o

computador e os periféricos e a tecnologia de

memória e disco utilizada.

11

Breve História

Marcos da arquitetura de computadores:

12

Ano Nome Construído por Comentários 1943 Colossus Zuse Primeiro computador eletrônico 1946 ENIAC Eckert /

Mauchley

A história moderna dos computadores começa aqui 1949 EDSAC Wilkes Primeiro computador com programa

armazenado 1952 IAS Von Neumann A maioria das máquinas atuais usa esse

projeto 1978 VAX DEC Primeiro superminicomputador de 32 bits 1981 IBM PC IBM Deu início àera moderna do computador

pessoal 1981 Osborne-1 Osborne Primeiro computador portátil 1985 386 Intel Primeiro ancestral de 32 bits da linha Pentium 1992 Alpha DEC Primeiro computador pessoal de 64 bits 1993 Newton Apple Primeiro computador palmtop

(5)

Marcos da arquitetura de computadores:

13

Colossus (1943)- Tubos de vácuo armazenavam o conteúdo de uma fita de papel que era alimentada na máquina, e os cálculos aconteciam entre os tubos de vácuo e uma segunda fita lida pela máquina. A programação era feita com placas de conexão de fios.

1848–O inglês matemático George Boole inventa a álgebra binária booleana, abrindo o caminho para o desenvolvimento de computadores quase 100 anos depois.

•ENIAC (1946) - que consistia em 18.000 tubos de vácuo que eram a seção computacional da máquina. Programas e dados eram introduzidos por meio de interruptores e troca de cabos. Ocupava uma sala de 140 m². Executava 5 mil adições por segundo.

Breve História

14

Breve História

A primeira geração de computadores – Válvulas (1945 – 1955)

A segunda geração de computadores – Transistores (1955-1965)

A terceira geração – Circuitos Integrados (1965-1980) A quarta geração – Integração em Escala Muito Grande (1980 - ?)

A quinta geração - Computadores Invisíveis

O modelo de Von Neumann

• Computador de programa armazenado;

• Iniciou em 1946 e terminou em 1952;

• Consiste em cinco componentes principais: (1) unidade de entrada; (2) unidade de saída; (3) unidade de lógica aritmética; (4) unidade da memória; (5) unidade de controle.

Setas grossas representam o caminho dos dados; setas finas, o caminho de controle

(6)

O modelo de Von Neumann

(1)unidade de entrada (teclado, scanner, mouse, etc)

provê instruções e dados ao sistema, que são

subsequentemente armazenados na (4)unidade de memória. As instruções e os dados são processados pela (3)unidade aritmética e lógica (adição, subtração, or, and) sob a supervisão da (5)unidade de controle (Quem decide a seqüência de instruções corretas, ou seja, como fazer esses cálculos). Os resultados são enviados para a (2)unidade de saída (monitor, impressora, caixas de som); A ALU e a unidade de controle são

frequentemente chamadas de forma coletiva de

unidade central de processamento (Central processing unit - CPU)

16

O modelo de Von Neumann

O modelo de Von Neumann foi modernizado, conforme

ilustrado abaixo:

17

Barramentos (Bus): Conjunto de fios que fazem a ligação física entre as diversas unidades.

O modelo de Von Neumann

18

Barramento de Endereços: Tráfego de endereços; Barramento de Dados: Tráfego dos dados;

Barramento de Controle: Tráfego dos sinais de controle; OBS:

A CPU gera endereços que são colocados no barramento de endereços, e a memória e os dispositivos de E/S recebem 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.

(7)

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 às pessoas se comunicarem com os computadores, dá-se o nome de linguagem de máquina;

Programa: sequência de instruções que descreve como

executar uma determinada tarefa.

19

Linguagens, Níveis e Máquinas

Reais

20

LO – Linguagem de Máquina

L1 – Conjunto de instruções mais conveniente

para as pessoas;

Para executar um programa escrito em L1, é

necessário substituir cada instrução por uma

sequência de instruções em LO. O resultado será

um programa inteiramente em LO.

O computador executa o programa LO ao invés do

L1. Essa técnica é denominada TRADUÇÃO.

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 LO. Nessa

técnica não existe a geração prévia de um novo

programa em LO;

(8)

Linguagens, Níveis e Máquinas

Reais

22

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, LO e L1 não devem ser muito

diferentes, ou seja, L1 embora melhor que LO,

ainda estará longe de ser o ideal para a maioria

das aplicações;

Linguagens, Níveis e Máquinas

Reais

23

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

Linguagens, Níveis e Máquinas

Reais

24

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;

Somente programas escritos em L0 podem ser

executadas

diretamente

pelos

circuitos

eletrônicos, sem a necessidade de TRADUÇÃO ou

INTERPRETAÇÃO;

(9)

25

Linguagens, Níveis e Máquinas

Reais

Microprogramação

26

Os primeiros computadores (anos 40) possuíam somente dois níveis:

- Nível de Arquitetura de Conjunto de Instruções (ISA), 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 e pouco confiáveis).

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.

(10)

A invenção do Sistema Operacional

28

A invenção do sistema operacional

Por volta de 1960, foi criado um programa – sistema operacional – 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...

A invenção do Sistema Operacional

29

Nos anos subsequentes os sistemas operacionais tornaram-se cada vez mais sofisticados, com novas instruções, facilidades e características adicionadas ao nível ISA, até que ele começou a parecer como um novo nível.

Algumas instruções eram idênticas às instruções no nível ISA, mas outras completamente diferentes (E/S)

Qual a função do Microcódigo?

30

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

(11)

Qual a função do Microcódigo?

31

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

32

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.

Conclusões

A fronteira entre hardware e software pode ser

arbitrária;

O software de hoje pode ser o hardware de

amanhã, e vice-versa;

Programador de um nível, em geral, não deve se

preocupar com implementações de níveis

inferiores.

(12)

Revisão dos Conceitos

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

executar uma determinada tarefa.

• Linguagem de máquina: linguagem 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).

34

Revisão de 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 deníveis ou camadas.

• Linguagens de Alto Nível:Linguagens projetadas para serem utilizadas por programadores. Ex. C/C++, Visual Basic, PHP, etc... 35

Organização Estruturada de

Computador

Processadores

•Execuções de Instruções

•Organização da CPU, Execução Paralela de Instruções

Memória

•Bits , Endereços de Memória, Memória Secundária

Entrada/Saída

•Mouses, Terminais, Mouse, Impressoras.

(13)

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

37

38

Máquina Multinível

Você verá agora os

Seis Níveis

Presentes na maioria

dos computadores

(14)

Nível de linguagem orientada ao problema Nível de linguagem Assembly Nível de máquina de sistema operacional Nível de arquitetura de conjunto de instruções

Nível de Microarquitetura (microprogramação) Nível de lógica digital

TRADUÇÃO (Compilador)

TRADUÇÃO (Montador)

Interpretação Parcial (Sistema Operacional)

INTERPRETAÇÃO (Microprograma)

Os microprogramas são executados diretamente pelo hardware

0 1 2 3 4 5 Dispositivos 40

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.

41

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

(15)

Nível 0 - Lógica Digital

(cont.)

• 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);

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

43

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) que formam uma memória local e um circuito chamado ULA (Unidade Lógica Aritmética)

44

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 p/ as instruções do nível 2.

• Máquinas c/ controle incorporado do caminho de

dados,ocorreriam etapas semelhantes, mas sem

um programa explícito armazenado p/ controlar a interpretação das instruções do nível 2.

(16)

Nível 2 - arquitetura de conjunto de

instruções (ISA)

• 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 HW.

• Antigamente este nível chamava-se nível de microprogramação porque ele era quase sempre um interpretador de software.

46

Nível 2 - arquitetura de conjunto

de instruções (ISA)

• Nível 2 -Mas pode ser nível 1 quando não existir o nível de microprogramação. Neste caso, as instruções são executadas diretamente pelo nível de circuitos eletrônicos.

• Manual de fabricantes de computadores fazem referência a este nível.

47

Formatos de Instruções

Endereçamento

Tipos de Instruções

Fluxo de Controle

48

Nível 2 - arquitetura de conjunto

de instruções (ISA)

(17)

Nível 3 - Sistema Operacional

• Nível 3 -Algumas instruções deste nível são

interpretadas pelo próprio sistema operacional (SO), outras são interpretadas pelo microprograma.

• Isto é o que se quer dizer por híbrido.

49

Nível 3 - Sistema Operacional

• Conhecido também como nível de linguagem de montagem ou de código de máquina;

Este nível é a fronteira entre o hardware e o software;

• Os usuários deste nível podem ser programas do nível 4 ou usuários humanos.

50

Nível 3 - Sistema Operacional

Memória Virtual

• Técnica implementada em diversos SO que faz com que a máquina aparentemente possua mais memória do que ela realmente possui.

• Programas grandes x memória pequena => Divisão do programa em blocos, armazenados em memória secundária, chamados overlays. => Responsabilidade do programador em gerenciar a execução dos blocos.

• Método para executar o processo de overlay automaticamente, sem a percepção do programador => memória virtual.

(18)

Nível 3- Sistema Operacional

Instruções de Entrada/Saída Virtual

As instruções de E/S do nível ISA permitem acessar detalhes de hardware dos dispositivos de E/S. Por exemplo:

•ler/escrever dados armazenados em discos quaisquer

•checar se um disco está funcionando totalmente correto.

•escrever em terminais de outros usuários, etc...

52

Nível 3 - sistema Operacional

–São necessárias algumas instruções virtuais para que diversos processos possam trabalhar juntos, em paralelo.

•Objetivo principal: diminuir tempo de execução das instruções –O processamento paralelo:

• pode ser realizado por vários processadores.

ou por um único processador realizando processamento paralelo

simulado.

–Mesmo quando o paralelismo é simulado, podemos considerar que cada processo tem seu próprio processador virtual (O processador real é compartilhado pelos processos).

–Importante: Os problemas de comunicação entre processos são os mesmos tanto no paralelismo verdadeiro quanto no simulado.

53

Instruções Virtuais usadas em processamento paralelo

Nível 4- Linguagem Assembly ou de

Montagem

• são dirigidos à execução dos interpretadores e tradutores para dar suporte a níveis mais altos;

• Fornece um método para as pessoas escreverem programas para os níveis 1, 2 e 3 em forma que não seja tão desagradável quanto as linguagens de máquina;

• Programas em linguagem de montagem são primeiro traduzidos para linguagem de nível 1, 2 ou 3, e em seguida interpretados pela máquina real.

• O programa que realiza a tradução é denominado

(19)

Nível 4 - Linguagem Assembly ou

de Montagem

O que é uma linguagem Assembly ?

• Linguagem na qual cada comando produz exatamente uma instrução de máquina => correspondência direta entre as instruções de máquina e os comandos do programa em assembly.

• Muito mais fácil trabalhar com assembly do que com a linguagem máquina diretamente.

• O programador em assembly possui acesso a todas as características e instruções disponíveis na máquina alvo.

• Tudo o que pode ser feito pela linguagem de máquina pode ser feito na linguagem assembly.

• Um programa em linguagem assembly só pode ser executado em uma família de máquinas.

55

Nível 4 - Linguagem Assembly ou

de Montagem

Por que utilizar a linguagem Assembly ?

• − Performance

• − Acesso total a máquina

56

Nível 5 - Linguagem

Orientada ao problema

• Consiste em linguagens projetadas para serem utilizadas por programadores de aplicação com problemas a serem resolvidos.

• Tais linguagens são denominadas linguagens de alto nível, como C, Pascal, C++, Cobol, Fortran, Basic dentre outras.

• Programas são geralmente traduzidos para os níveis 3 e 4 por compiladores

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

(20)

Máquina Multinível

linguagem orientada ao problema linguagem de Assembly sistema operacional Conjunto de instruções Microarquitetura lógica digital dispositivos 58 • Formado pelos transistores individuais

• Tensão, corrente, circuitos, etc.

Máquina Multinível

linguagem orientada ao problema linguagem de Assembly

sistema operacional Conjunto de instruções

Microarquitetura lógica digital – Nível 0

dispositivos

59 • Portas lógicas e CI. • Implementam a manipulação de sinais executando funções lógicas básicas: AND, OR, NOT, deslocamento de bits, etc.

Máquina Multinível

linguagem orientada ao problema linguagem de Assembly sistema operacional Conjunto de instruções Microarquitetura – Nível 1 lógica digital dispositivos 60 • Microprogramas que

controlam a entrada e saída de

sinais para os vários

dispositivos e controlam as várias portas lógicas. • Instruções binárias.

(21)

Máquina Multinível

linguagem orientada ao problema linguagem de Assembly

sistema operacional Conjunto de instruções – Nível 2

Microarquitetura lógica digital dispositivos

61 • Comandos para executar funções específicas da máquina: formato de instruções endereçamento, interrupções, dependente da arquitetura utilizada. MOV 0 ACC; ADD 03FC;

Máquina Multinível

linguagem orientada ao problema linguagem de Assembly Sistema Operacional –Nìvel 3

Conjunto de instruções Microarquitetura

lógica digital dispositivos

62 Comandos para executar funções específicas da máquina:

•Gerenciamento de tarefas, Sistema de arquivos, Memória virtual e paginação.

Máquina Multinível

linguagem orientada ao problema linguagem de Assembly – Nível 4

sistema operacional Conjunto de instruções Microarquitetura lógica digital dispositivos Assembly

Cada comando corresponde exatamente a uma instrução a ser executada. Utiliza-se mnemônicos e endereços simbólicos. MOV 0 ACC; MOV 0 R1; ... GTO A R1

(22)

Máquina Multinível

linguagem orientada ao problema –

Nível 5 linguagem de Assembly sistema operacional Conjunto de instruções Microarquitetura lógica digital dispositivos 64 C, C++, Pascal, Cobol Aux:= 0; do print(Aux); Aux:= Aux + 1; while Aux <= 10;

Máquina Multinível

65 swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31

Swap (int v[], int k) {int temp: temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; } 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 Código Executável Linguagem C Linguagem Assembly

Observações Finais

66

•Computadores são projetados como uma série de níveis; • Cada nível representa uma abstração distinta, com diferentes objetos e operações ;

• A abstração permite ignorar, "abstrair",

temporariamente detalhes irrelevantes, de níveis mais baixos, reduzindo uma questão complexa a algo muito mais fácil de ser entendido;

• Não há uma definição demasiadamente rígida sobre o que está presente em cada nível.

• Cabe aos projetistas decidirem o que colocar em cada nível.

(23)

Questões

67

1. Explique com suas palavras: 1. Tradutor;

2. Interpretador; 3. Máquina Real;

2. Qual a diferença entre interpretação e tradução? 3. Em uma máquina multinível, quais as principais

características do nível de arquitetura de conjunto de instruções?

4. O que é a linguagem assembly e onde é utilizada? 5. Baseando-se nos conceitos vistos até agora, como

Referências

Documentos relacionados

et al., (2012), nos estudos realizados sobre o PCK, são propostas algumas estratégias para reconhecê-lo, como entrevistas, observações de aulas, análise de planejamentos de ensino

Defense reaction induced by a metabotropic glutamate receptor agonist microinjected into the dorsal periaqueductal gray of rats. Anxiolytic-like effect of AP7 injected

Os projetos, componentes de um programa, podem ser definidos como um conjunto de componentes de um programa, podem ser definidos como um conjunto de atividades

In this work, improved curves are the head versus flow curves predicted based on the correlations presented in Table 2 and improved by a shut-off head prediction

Jorge, Madalena, Maria, Miranda e Manuel de Sousa, entrando com vários Criados que o seguem, alguns com brandões acesos. Já, sem mais detença! Não apaguem esses brandões;

MADALENA (Repetindo maquinalmente e devagar o que acabava de ler.) – “Naquele engano d’alma ledo e cego / Que a fortuna não deixa durar muito...” Com a paz e a alegria de

Combinaram encontrar-se às 21h