Você está na página 1de 138

Arquitetura e

Organização de
Computadores
Fabrício Costa Santana
Apresentação do Professor

 Fabrício Costa Santana


 Graduado em Sistemas de Informação - FTC Itabuna
 Especialistaem Gestão da Tecnologia da Informação –
FTC Feira de Santana
 Gerente de TI
 Site: http://professorfabricio.org
 E-mail: fcsantana.ita@ftc.edu.br
Plano de Ensino
 Ementa
 Objetivos de Aprendizagem
 Estratégias Metodológicas
 Critérios de Avaliação
 Competências
 Referências Bibliográficas
Ementa

 Introdução à organização de computadores:


 Evolução de sistemas computacionais.
 Classificação de arquiteturas:
 Estruturas de computadores;
 Máquina de Von Neumann;
 Medidas de avaliação de desempenho;
 Arquiteturas de alto desempenho.
Ementa

 Sistemas de memória hierárquica:


 Conceito de hierarquia de memória, bandwidth, esquemas de endereçamento,
memória virtual, paginação;
 Memória cache.
 Sub-sistemas de entrada e saída:
 Características, canais, processadores de E/S.
 Princípios de pipelining:
 Pipelines de instrução;
 Pipelines aritméticos;
 Projetos de sistemas pipeline.
Ementa

 Processadores matriciais
 Características, malhas de comunicação, algoritmos.
 Processadores associativos
 Multiprocessadores:
 Sistemas fortemente acoplados e fracamente acoplados;
 Influências no sistema operacional e em linguagens de programação;
 Algoritmos.
 Arquiteturas alternativas:
 Arquitetura VLSI;
 Computadores dataflow;
 Fundamentos de circuitos digitais.
Objetivos de Aprendizagem

Capacitar os alunos a compreenderem a organização e arquitetura básicas de um


computador, em especial, capacitar os alunos a entenderem e analisarem
criticamente as opções para definição do conjunto de instruções de uma
arquitetura, da estrutura da CPU e dos componentes de memória e barramentos.
Estratégias Metodológicas

 Aulas expositivas com auxílio de quadro branco, projetor multimídia, caixa de


som e vídeos;
 Uso de pelo menos uma metodologia ativa na segunda unidade:
 TBL, Host ou Storytelling.
 Uso de softwares simuladores.
Critérios de Avaliação

 Avaliações escritas, exercícios de fixação e trabalhos.

Calendário
VA1 – Prova – Peso 40  Data: 09/10/2019
VA 2 – Prova – Peso 40  Data: 04/12/2019
Atividade em grupo – Peso 20  Data: a definir
Competências

 Compreender fundamentos de Sistemas Digitais;


 Implantar infraestruturas computacionais considerando adequação financeira
e requisitos de desempenho;
 Indicar necessidades de atualizações de componentes de hardware de
infraestruturas computacionais pré-existentes;
 Avaliar requisitos de hardware para a implantação de sistemas de informação.
Referências Bibliográficas

 Tanenbaum, Andrew S. - Organização estruturada de computadores / Andrew S.


Tanenbaum, Todd Austin; São Paulo : Pearson Prentice Hall.
 Stallings, William - Arquitetura e organização de computadores /
William Stallings. — 8. ed. — São Paulo : Pearson Pratice Hall.
 DELGADO, José, RIBEIRO, Carlos. Arquitetura de Computadores, 5ª edição. [Minha
Biblioteca]. Retirado
de https://integrada.minhabiblioteca.com.br/#/books/9788521633921/
 WEBER, Fernando, R. Fundamentos de arquitetura de computadores - série livros
didáticos informática ufrgs Vol.8 - 4. [Minha Biblioteca]. Retirado
de https://integrada.minhabiblioteca.com.br/#/books/9788540701434/
 MONTEIRO, A., M. Introdução à Organização de Computadores, 5ª edição. [Minha
Biblioteca]. Retirado de https://integrada.minhabiblioteca.com.br/#/books/978-85-216-
1973-4/
Evolução dos Sistemas
Computacionais
Geração 0 de Computadores –
Mecânicos e Eletromecânicos – 1642 a
1945
Calculadoras Primitivas

 Ábaco / Soroban / Suanpan

+ de 5.500 anos *

VIDEO

* Provavelmente na Mesopotâmia, segundo alguns historiadores


La Pascaline – Blaise Pascal

VIDEO
1
1642
VIDEO
2
Tear Mecânico - Joseph-Marie Jacquard

VIDEO
1801
Máquina Diferencial e Máquina Analítica
de Charles Babbage

1822

VIDEO
1

VIDEO
2
Máquina de Cartões Perfurados - Herman
Hollerith

1880

VIDEO
Bomba Eletromecânica (Bombe ou
Colossus) – Alan Turing

Enigma Máquina de Turing


1939 - 1940
O Jogo da Imitação
Harvard Mark I - Howard Aiken + IBM

1944
Harvard Mark I - Howard Aiken + IBM

1944

VIDEO
Primeira Geração de Computadores –
Eletrônicos a Válvulas – 1945 a 1955
Primeira Geração de Computadores –
Eletrônicos Valvulados
 ENIAC ( Eletronic Numerical Integrator and Computer) foi o primeiro
computador eletrônico digital de propósito geral:
 Composto por mais de 17 mil válvulas.
 Construído na Universidade da Pensilvânia;
 Realizava 5000 adições por segundo;
 Decimal e não binário;
 Programação manual por meio de chaves e conexão e desconexão de cabos;
ENIAC
1946
Primeira Geração de Computadores –
Eletrônicos Valvulados
 EDVAC (Electronic Discrete Variable Automatic Computer):
 Modelo proposto por John von Neuman;
 Sua arquitetura tornou-se padrão para os computadores modernos;
 Concebido para ter a adição binária, subtração e multiplicação, divisão programada
e automática;
 Utilizava códigos binários;
 Possuía quase 6.000 tubos de vácuo e 12.000 diodos;
 Consumia o equivalente a 56 kilowatts de potência;
 Ocupava 45,5 m2 de área e pesava 7.850 kg;
EDVAC
1952
Arquitetura de Von Neuman

 Uma memória principal, que armazena dados e instruções;


 Uma unidade lógica e aritmética (ALU) capaz de operar sobre dados binários.
 Uma unidade de controle, que interpreta as instruções na memória e faz com
que sejam executadas.
 Equipamento de entrada e saída (E/S) operado pela unidade de controle.
Arquitetura de Von Neuman
Registradores

 Registrador de buffer de memória (MBR, do inglês memory buffer register): contém uma palavra a ser
armazenada na memória ou enviada à unidade de E/S, ou é usada para receber uma palavra da memória
ou de uma unidade de E/S.
 Registrador de endereço de memória (MAR, do inglês memory address register): especifica o endereço
na memória da palavra a ser escrita ou lida no MBR.
 Registrador de instrução (IR, do inglês instruction register): contém o opcode de 8 bits da instrução que
está sendo executada.
 Registrador de buffer de instrução (IBR, do inglês instruction buffer register): empregado para manter
temporariamente a próxima instrução a ser executada.
 Contador de programa (PC, do inglês program counter): contém o endereço do próximo par de
instruções a ser apanhado da memória.
 Acumulador (AC) e quociente multiplicador (MQ, do inglês multiplier quotient): empregado para
manter temporariamente operandos e resultados de operações da ALU. Por exemplo, o resultado de
multiplicar dois números de 40 bits é um número de 80 bits; os 40 bits mais significativos são
armazenados no AC e o menos significativos no MQ
Unidade Lógica Aritmética
(ULA ou ALU)

AC AC
Equipamento de
Circuitos Lógicos Entrada/Saída
Aritméticos

Estrutura do
MBR
Computador IAS
Instruções (Princeton
e dados
Institute for
IBR PC Advanced
Studies)
IR MAR

Endereços
Memória
Circuitos de Principal
Controle

Unidade de Controle
(UC ou CU)
UNIVAC I

 Primeiro computador comercial de sucesso;


 tinha como finalidade aplicações científicas e comerciais;
 Usando no censo de 1950;
UNIVAC II

 Maior capacidade de memória e maior desempenho que o UNIVAC I


 Possuía retro-compatibilidade;
Válvulas
Transistor 1947
Válvula  Transistor
Vantagens dos transistores

 Capacidade de produção em massa;


 Custo muito baixo;
 Mais robusto;
 Menor consumo de energia elétrica;
 Tempo de vida últil.
Válvula X Transistor

Amplificador 40w Amplificador 60w


Valvulado Transistorizado
(Pesa 22Kg)
Segunda Geração de Computadores –
Transistores – 1955 a 1965
TX-0 (MIT 1956)
TX-2
IBM 7090
Tabela comparativa da série IBM
700/7000
PDP-1  1961
PDP-8  1965
Principal avanço do PDP-8
IBM 1401
CDC 6600  1964
Terceira Geração de Computadores –
Circuitos Integrados – 1965 a 1980
Quarta Geração de Computadores –
VLSI Very Large Scale Integration –
1980 a ?
Quinta Geração de Computadores
Arquitetura e Organização de
Computadores
 Arquitetura de computador refere-se aos atributos de um sistema
visíveis a um programador ou, em outras palavras, aqueles atributos que
possuem um impacto direto sobre a execução lógica de um programa.
 Organização de computador refere-se às unidades operacionais e
suas interconexões que realizam as especificações arquiteturais.
Introdução

 Computador digital – Máquina capaz de resolver problemas através da


execução de instruções.
 Programa – Sequencia lógica de instruções, descrevendo como realizar uma
tarefa.
Funções básicas de um computador
digital
 Armazenamento de dados: fornecido por células de memória.
 Processamento de dados: fornecido por portas.
 Movimentação de dados: os caminhos entre os componentes são usados para
movimentar dados da memória para a memória e da memória pelas portas até a
memória.
 Controle: os caminhos entre os componentes podem transportar sinais de
controle. Por exemplo, uma porta terá uma ou duas entradas de dados mais uma
entrada de sinal de controle que ativa a porta. Quando o sinal de controle é ON, a
porta realiza sua função sobre as entradas de dados e produz uma saída de dados.
De modo semelhante, a célula de memória armazenará o bit que está em seu fio
de entrada quando o sinal de controle ESCRITA for ON, e colocará o bit que está
na célula em seu fio de saída quando o sinal de controle LEITURA for ON.
Visão funcional Capacidade de
armazenamento
de dados

Ambiente
operacional Aparato de
Mecanismo de
(origem e movimentação
controle
destino dos dos dados
dados)

Capacidade de
processamento
de dados

Operações Possíveis
Estrutura de
alto nível do
computador
Velocidade de clock

 Ciclos por segundo;


 Unidade de medida: Hz (Hertz);
 100 ciclos por segundo = 100Hz;
 BCLK (Base Clock);
 Confusões comuns acerca do clock:
 Clock do processados X BCLK X Clock dos componentes;
 Melhorias arquiteturais;
 Avaliar Clock do processador como medida de velocidade, capacidade ou potência.
Lei de moore

 Moore observou que o número de transistores que poderia ser colocado em


um único chip estava dobrando a cada ano e previu corretamente que esse
ritmo continuaria no futuro próximo. Para a surpresa de muitos, incluindo
Moore, o ritmo continuou ano após ano e década após década. O ritmo
diminuiu para dobrar a cada 18 meses na década de 1970, mas sustentou essa
taxa desde então.

Evolução dos processadores Intel –
Década de 1970
Evolução dos processadores Intel –
Década de 1980
Evolução dos processadores Intel –
Década de 1990
Evolução dos processadores Intel –
Década de 2000 
Melhoria arquiteturais e organizacionais

 Previsão de desvio;
 Análise de fluxo de dados;
 Execução especulativa;
 Melhoria na DRAM;
 Melhorias nas estruturas de cache;
 Aumento na largura de banda entre a memória e o processador;
 Potência;
 Redução no delay de resistência e capacitância;
 Latência da memória.
Taxa de dados nos dispositivos E/S
Tipos de computadores

 Computador descartável.
 Microcontrolador.
 Computador de jogos.
 Computador pessoal.
 Servidor.
 Conjunto de estação de trabalho.
 Mainframe.
Computador descartável
 Esses computadores descartáveis em si são muito simples, não necessitam de
memória nem de grandes requisitos e nem mesmo velocidade de
processamento. Sua principal aplicação é em cartões de felicitação, mas vem
crescendo a demanda para identificadores e localizadores.
Microcontroladores

 Os microcontroladores estão escondidos dentro de inúmeros produtos


atualmente.
Computadores de Jogos

 São computadores normais com recursos de gráficos especiais e


capacidade de som.
Computadores pessoais

 Um computador pessoal ou PC (do inglês Personal Computer) é um


computador de pequeno porte e baixo custo, que se destina ao uso pessoal
ou por um pequeno grupo de indivíduos.
Servidores

 Em informática, um servidor é um sistema de computação centralizada que


fornece serviços a uma rede de computadores.
Conjuntos de estações de trabalho
Mainframes

 Um mainframe é um computador de grande porte, dedicado normalmente


ao processamento de um volume grande de informações.
Sistemas de numeração e conversão
de bases
Sistema de numeração decimal

 Sistema hindu-arábico
 Notação posicional
 Base 10


Dígitos: 0 1 2 3 4 5 6 7 8 9
Sistema de numeração decimal

4ª Classe 3ª Classe 2ª Classe 1ª Classe

Bilhões Milhões Milhares Unidades

12ª 11ª 10ª 9ª 8ª 7ª 6ª 5ª 4ª 3ª 2ª 1ª


Ordem Ordem Ordem Ordem Ordem Ordem Ordem Ordem Ordem Ordem Ordem Ordem

Centena Dezena Unidade Centena Dezena Unidade Centena Dezena Unidade Centena Dezena Unidade
Sistema de numeração decimal

 Forma-se o número pela soma de cada dígito multiplicado por uma potência da
base relacionada à posição daquele dígito

854610
8 * 103 + 5 * 102 + 4 * 101 + 6 * 100
8000 + 500 + 40 + 6

8546
Sistema de numeração binário

 Muito usado na eletrônica


 Notação posicional
 Base 2


Dígitos: 0 1
 Cada dígito binário é chamado de bit
 Cada conjunto de 4 dígitos binários é chamado de nibble
 Cada conjunto de 8 dígitos binários é chamado de byte
Conversão de base binária para decimal

101100102
1 * 27 + 0 * 26 + 1 * 25 + 1 * 24 + 0 * 23 + 0 * 22 + 1 * 21 + 0 * 20
128 + 0 + 32 + 16 + 0 + 0 + 2 + 0

17810
Exercício de fixação

 Converta os números abaixo da base binária para a decimal:

112 
11012 
1011012 
100101102 
110011102 
010011002 
Conversão de base decimal para binária

156 2 15610
0 78 2
0 39 2
1 19 2
=
1 9 2 100111002
1 4 2
0 2 2
0 1
Exercício de fixação

 Converta os números abaixo da base decimal para a binária:

1510 
3610 
4810 
12510 
25510 
31210 
Conversão de base octal para decimal

1238
1 * 82 + 2 * 81 + 3 * 80
64 + 16 + 3

8310
Exercício de fixação

 Converta os números abaixo da base octal para a decimal:

458 
5488 
70358 
Conversão de base decimal para octal

246 8 24610
6 30 8
6 3 =
3668
Exercício de fixação

 Converta os números abaixo da base decimal para a binária:

1510 
25510 
31210 
Conversão de octal em binário e de
binário para octal
 A conversão de octal para binário é feita convertendo dígito a dígito de octal
em binário, da direita para a esquerda. Cada digito é convertido para um
grupo de 3 bits, conforme tabela a seguir:

OCTAL BINÁRIO
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
OCTAL BINÁRIO
0 000
Conversão de base octal para base 1 001

binária 2
3
010
011
4 100

26478 5
6
101
110
7 111

2 6 4 7
010 110 100 111

26478 = 0101101001112
OCTAL BINÁRIO
0 000
Conversão de base binária para base 1 001

octal 2
3
010
011
4 100

11101010112 5
6
101
110
7 111

001 110 101 011


1 6 5 3

11101010112 = 16538
Algarismos hexadecimais

Base 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Base 16 0 1 2 3 4 5 6 7 8 9 A B C D E F
Conversão de base hexadecimal para
decimal

254C16
2 * 163 + 5 * 162 + 4 * 161 + 12 * 160
8192 + 1280 + 64 + 12

954810
Base 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Base 16 0 1 2 3 4 5 6 7 8 9 A B C D E F
Conversão de base decimal para octal

438 16 43810
6 27 16
11 1 =
1B616
Conversão de hexadecimal para binário
e de binário para hexadecimal
Hexadecimal Binário
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
Álgebra de Boole

 George Boole desenvolveu um sistema de análise lógica por volta de 1850


 Este sistema é conhecido atualmente como álgebra de Boole
 A álgebra de Boole expressa a operação de um circuito na forma de uma
operação algébrica
 Na álgebra Booleana, as constantes e variáveis podem ter apenas 2 valores: 0
ou 1 (níveis lógicos)

George Boole
Variáveis lógicas

 As variáveis lógicas assumem estados distintos, e podem representar situações


da vida real;
 A álgebra booleana tem apenas três operações básicas:

 AND (E),
 OR (OU),
 NOT (NÃO)
Variáveis lógicas

Nível Lógico 0 Nível Lógico 1


Falso Verdadeiro
Desligado Ligado
Baixo Alto
Não Sim
Chave aberta Chave fechada
Tabela Verdade

 Técnica para determinar como a saída lógica de um circuito depende dos


níveis lógicos presentes nas entradas do circuito
A operação OR (OU)

 Representada algebricamente como:


 S=A+B (leia-se A OU B)
A operação AND (E)

 Representada algebricamente como:


 S=A.B (leia-se A e B)
A operação NOT (NÃO) ou inversor

 Representada algebricamente como:

 ou lê-se (A barra) ou (NÃO A)

 Tem apenas uma entrada


 Também conhecido como complemento
A porta NOR (NÃO-OU)

 Combinação da porta OU com a porta inversora


A porta NAND (NÃO-E)

 Combinação da porta AND com a porta inversora


A porta XOR (OU Exclusivo)

 Nível ALTO na saída somente quando as 2 entradas são diferentes entre si!
A porta XNOR (OU Exclusivo com
inversor)
 Para a porta XNOR, teremos o resultado 1 somente quando as 2 entradas
forem iguais (exatamente o inverso da XOR)!
 Tanto a porta XOR quanto a XNOR possuem somente duas entradas
Portas Lógicas NAND num circuito
integrado
Exercício de Fixação
1 – Montar a tabela verdade dos circuitos abaixo:

A B C X
0 0 0  
0 0 1  
0 1 0  
0 1 1  
1 0 0  
1 0 1  
1 1 0  
1 1 1  
Exercício de Fixação
1 – Montar a tabela verdade dos circuitos abaixo:

A B C D X
0 0 0 0  
0 0 0 1  
0 0 1 0  
0 0 1 1  
0 1 0 0  
0 1 0 1  
0 1 1 0  
0 1 1 1  
1 0 0 0  
1 0 0 1  
1 0 1 0  
1 0 1 1  
1 1 0 0  
1 1 0 1  
1 1 1 0  
1 1 1 1  
Exercício de Fixação:
2 - Para satisfazer as saídas dos circuitos que níveis
lógicos os barramentos podem estar?
ASCII

 American Standard Code for Information Interchange; "Código Padrão


Americano para o Intercâmbio de Informação;
 É um código binário (cadeias de bits: 0s e 1s) que codifica um conjunto de 128
sinais: 95 sinais gráficos (letras do alfabeto latino, sinais de pontuação e
sinais matemáticos) e 33 sinais de controle, utilizando portanto apenas 7 bits
para representar todos os seus símbolos
ASCII - Sinais gráficos (imprimíveis)
Bin Oct Dec Hex Sinal Bin Oct Dec Hex Sinal Bin Oct Dec Hex Sinal Bin Oct Dec Hex Sinal Bin Oct Dec Hex Sinal

0010 0000 40 32 20 (espaço) 0011 0100 64 52 34 4 0100 1000 110 72 48 H 0101 1100 134 92 5C \ 0111 0000 160 112 70 p

0010 0001 41 33 21 ! 0011 0101 65 53 35 5 0100 1001 111 73 49 I 0101 1101 135 93 5D ] 0111 0001 161 113 71 q

0010 0010 42 34 22 " 0011 0110 66 54 36 6 0100 1010 112 74 4A J 0101 1110 136 94 5E ^ 0111 0010 162 114 72 r

0010 0011 43 35 23 # 0011 0111 67 55 37 7 0100 1011 113 75 4B K 0101 1111 137 95 5F _ 0111 0011 163 115 73 s

0010 0100 44 36 24 $ 0011 1000 70 56 38 8 0100 1100 114 76 4C L 0110 0000 140 96 60 ` 0111 0100 164 116 74 t

0010 0101 45 37 25 % 0011 1001 71 57 39 9 0100 1101 115 77 4D M 0110 0001 141 97 61 a 0111 0101 165 117 75 u

0010 0110 46 38 26 & 0011 1010 72 58 3A : 0100 1110 116 78 4E N 0110 0010 142 98 62 b 0111 0110 166 118 76 v

0010 0111 47 39 27 ' 0011 1011 73 59 3B ; 0100 1111 117 79 4F O 0110 0011 143 99 63 c 0111 0111 167 119 77 w

0010 1000 50 40 28 ( 0011 1100 74 60 3C < 0101 0000 120 80 50 P 0110 0100 144 100 64 d 0111 1000 170 120 78 x

0010 1001 51 41 29 ) 0011 1101 75 61 3D = 0101 0001 121 81 51 Q 0110 0101 145 101 65 e 0111 1001 171 121 79 y

0010 1010 52 42 2A * 0011 1110 76 62 3E > 0101 0010 122 82 52 R 0110 0110 146 102 66 f 0111 1010 172 122 7A z

0010 1011 53 43 2B + 0011 1111 77 63 3F ? 0101 0011 123 83 53 S 0110 0111 147 103 67 g 0111 1011 173 123 7B {

0010 1100 54 44 2C , 0100 0000 100 64 40 @ 0101 0100 124 84 54 T 0110 1000 150 104 68 h 0111 1100 174 124 7C |

0010 1101 55 45 2D - 0100 0001 101 65 41 A 0101 0101 125 85 55 U 0110 1001 151 105 69 i 0111 1101 175 125 7D }

0010 1110 56 46 2E . 0100 0010 102 66 42 B 0101 0110 126 86 56 V 0110 1010 152 106 6A j 0111 1110 176 126 7E ~

0010 1111 57 47 2F / 0100 0011 103 67 43 C 0101 0111 127 87 57 W 0110 1011 153 107 6B k

0011 0000 60 48 30 0 0100 0100 104 68 44 D 0101 1000 130 88 58 X 0110 1100 154 108 6C l

0011 0001 61 49 31 1 0100 0101 105 69 45 E 0101 1001 131 89 59 Y 0110 1101 155 109 6D m

0011 0010 62 50 32 2 0100 0110 106 70 46 F 0101 1010 132 90 5A Z 0110 1110 156 110 6E n

0011 0011 63 51 33 3 0100 0111 107 71 47 G 0101 1011 133 91 5B [ 0110 1111 157 111 6F o
ASCII - Sinais de controle (não-
imprimíveis)
Bin Oct Dec Hex Abrev Notação com ^ Código escape Descrição do Controle
0000 0000 0 0 0 NUL ^@ \0 Nulo (inglês Null)
0000 0001 1 1 1 SOH ^A Início de cabeçalho (inglês Start of Header)
0000 0010 2 2 2 STX ^B Início de texto (inglês Start of Text)
0000 0011 3 3 3 ETX ^C Fim de texto (inglês End of Text)
0000 0100 4 4 4 EOT ^D Fim de transmissão (inglês End of Transmission)
0000 0101 5 5 5 ENQ ^E Consulta; inquirição (inglês Enquiry)
0000 0110 6 6 6 ACK ^F Confirmação (inglês Acknowledge)
0000 0111 7 7 7 BEL ^G \a Campainha; sinal sonoro (inglês Bell)
0000 1000 10 8 8 BS ^H \b Espaço atrás; retorno de 1 caractere (inglês Back-space)
0000 1001 11 9 9 HT ^I \t Tabulação horizontal (inglês Horizontal Tabulation)
0000 1010 12 10 0A LF ^J \n Alimentação de linha; mudança de linha; nova linha (inglês Line Feed)
0000 1011 13 11 0B VT ^K \v Tabulação vertical (inglês Vertical Tabulation)
0000 1100 14 12 0C FF ^L \f Alimentação de formulário (inglês Form Feed)
0000 1101 15 13 0D CR ^M \r Retorno do carro; retorno ao início da linha (inglês Carriage Return)
0000 1110 16 14 0E SO ^N Mover para fora; deslocamento para fora (inglês Shift Out)
0000 1111 17 15 0F SI ^O Mover para dentro; deslocamento para dentro (inglês Shift In)
0001 0000 20 16 10 DLE ^P escape do linque de dados; escape de conexão (inglês Data-Link Escape)
0001 0001 21 17 11 DC1 ^Q Controle de dispositivo 1 (inglês Device Control 1)
0001 0010 22 18 12 DC2 ^R Controle de dispositivo 2 (inglês Device Control 2)
0001 0011 23 19 13 DC3 ^S Controle de dispositivo 3 (inglês Device Control 3)
0001 0100 24 20 14 DC4 ^T Controle de dispositivo 4 (inglês Device Control 4)
0001 0101 25 21 15 NAK ^U Confirmação negativa (inglês Negative-Acknowledge)
0001 0110 26 22 16 SYN ^V Estado ocioso síncrono; espera síncrona (inglês Synchronous Idle)
0001 0111 27 23 17 ETB ^W Bloco de fim de transmissão (inglês End of Transmission Block)
0001 1000 30 24 18 CAN ^X Cancelar (inglês Cancel)
0001 1001 31 25 19 EM ^Y Fim de mídia; fim do meio (inglês End of Medium)
0001 1010 32 26 1A SUB ^Z Substituir (inglês Substitute)
0001 1011 33 27 1B ESC ^[ Escapar (inglês Escape)
0001 1100 34 28 1C FS ^\ Separador de arquivos (inglês File Separator)
0001 1101 35 29 1D GS ^] \e Separador de grupos (inglês Group Separator)
0001 1110 36 30 1E RS ^^ Separador de registros (inglês Record Separator)
0001 1111 37 31 1F US ^_ Separador de unidades (inglês Unit Separator)
0111 1111 177 127 7F DEL ^? Deletar (inglês Delete)
Estrutura e Funcionamento do
computador
Revisão: Modelo Von Newman

1. Dados e instruções são


armazenados em uma única
memória de leitura e escrita.
2. O conteúdo dessa memória é
endereçável por local, sem
considerar o tipo de dados
neles contido.
3. A execução ocorre em um
padrão sequencial (a menos que
modifcado explicitamente) de
uma instrução para a seguinte.
Função básica de um computador

 Execução de um conjunto de instruções


Trabalho peso 10 – Datas de apresentações: Equipes de 1 a 4 -
25/09/2019
Equipes de 5 a 8 – 27/09/2019
Tempo de apresentação máximo 20 min

 Equipe 1 – Apresentação da Interface do Computador Teórico Neander


 Equipe 2 – Explicação dos mnemônicos do Computador Teórico Neander
 Equipe 3 – Apresentar e explicar um programa para soma de 3 números e
armazenamento de resultado na memória
 Equipe 4 - Apresentar e explicar um programa para multiplicação de 2 números e
armazenamento de resultado na memória
 Equipe 5 – Apresentar um programa que efetue uma contagem regressiva de 10 até 1
 Equipe 6 – Apresentar o computador didático AHMES
 Equipe 7 - Apresentar o computador didático RAMSES
 Equipe 8 - Apresentar o computador didático CESAR
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 da máquina (baixo nível e simples)

 Como compatibilizar L1 com L0? Temos 2 soluções:


 Opção 1: usar um tradutor
 Opção 2: usar um interpretador
Tradutor

 Cada instrução de L1 é substituída por um conjunto de instruções


equivalentes de L0
 Processador executa programa em L0.
 Todo programa em L0 é carregado em memória e é executado
 Programa pode ser traduzido uma única vez e executado várias vezes
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 próxima instrução;
 Cada instrução de L1, transformada para L0, é carregada na memória e
executada;
 Não é criado um programa em L0;
 Programa deve ser novamente interpretado para ser executado.
Máquina Virtual

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)

Os programas 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 se implementa a solução 2 acima. As pessoas escrevem programas para máquinas
virtuais como se elas realmente existissem.

Muitos níveis de máquinas virtuais podem ser implementados. Cada linguagem usa a sua linguagem
antecessora como base, de modo que 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 que segue.
Maquina Multinível: (Tannembaum)
Maquinas Multiníveis Contemporâneas: (Tannembaum)
Níveis

 Nível 0: Nível da Lógica Digital


 Nível 1: Nível da Microarquitetura
 Nível 2: Nível da Arquitetura do Conjunto de Instruções (nível ISA - Instruction
Set Architeture)
 Nível 3: Nível do Sistema Operacional
 Nível 4: Nível da linguagem do montador ou de montagem (Assembly
language)
 Nível 5: Nível das linguagens orientadas para solução dos problemas
Nível 0

 Nível mais baixo da estrutura


 Objetos de interesse são conhecidos como portas lógicas
 Cada porta lógica tem 1 ou mais entradas digitais (aceitam 0 ou 1) e calculam
funções lógicas simples sobre essas entradas. Exemplo: AND, OR, XOR,...
 Portas lógicas são combinadas para formar o Processador - principal
dispositivo do computador
Nível 1

 Enxergamos uma memória local (8 a 32 registradores) e a UAL (Unidade


Aritmética 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.
Nível 2

 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 XYZ4W), ou algo similar.
 Manuais descrevem como as instruções são executadas interpretativamente
pelo microprograma ou como elas são executadas diretamente pelo hardware.
 Essas informações são necessárias para os desenvolvedores de sistemas
operacionais.
Nível 3

 Instruções da linguagem deste nível também podem conter instruções do nível


ISA.
 Suporta uma organização diferente de memória
 Suporta 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 chamados programadores de aplicação.
Nível 4

 Linguagem de montagem: forma simbólica de representação das linguagens


do nível mais baixo.
 Programas nessa linguagem são primeiro traduzidos para as linguagens dos
níveis 1, 2 e 3 e depois interpretados pela máquina virtual apropriada ou pela
própria máquina real.
 Programa que realiza essa tradução é chamado de montador
Nível 5

 Conhecidas como linguagens de alto nível. Exemplos Basic, C, Pascal, Java,


LISP, ....
 Programas são geralmente traduzidos para os níveis 3 e 4 por compiladores
 Alguns são interpretados: Exemplo: programas em Java, MatLab, ...
Um novo recursos: virtualização de
containers
Linguagens de Programação

Linguagens de Baixo Nível


Linguagem de Máquina
 É a linguagem do computador, de difícil compreensão pelo ser humano. Está
fundamentada nos sistemas de numeração binário ou hexadecimal para apresentar
os dados. Essas instruções são formadas por códigos. Ex.: 0101010101.
Linguagem Assembly
 É um conjunto de linguagens baseadas em abreviações de expressões em inglês,
chamadas mnemônicos. Cada processador recebe um tipo de Assembly. Os
programas que convertem a primeira linguagem assembly para máquina são
chamados de assemblers. Apesar de ser mais compreensível para o homem, ela
somente se torna compreensível para o computador quando é traduzida para
linguagem de máquina.
Linguagem de Alto Nível

 Linguagens não-estruturadas
 Linguagem COBOL (COmmon Business Oriented Language)
 Linguagem Basic
 Linguagens Estruturadas
 Linguagens Procedurais
 C, Pascal, Fortran, ADA, Modula-2, Modula-3...
 Linguagens Funcionais
 Prolog, LISP, Scheme...
 Linguagens Orientadas a Objetos
 Simula, Smalltalk, C++, Java, C#...
 Linguagens de Programação Visual
 Linguagens Visuais Híbridas: C#, Delphi, Visual Basic
 Linguagens Visuais Puras: Kronos, Simulink

Você também pode gostar