Escolar Documentos
Profissional Documentos
Cultura Documentos
FAFISM – Muriaé - MG
Arquitetura de computadores.
Notas de aula.
Prof. Tarcísio
Linguagem Delphi:
Procedure Tform1.TesteAsm;
Var I, Total: Integer;
Begin
Total :=0;
For i:= 0 to 5 do
Total:= Total + 10;
End;
00010111010101
0000111110011010011
00110011001100110010
00000001
Números binários.
O Bit.
Assim como para nós a letra “A” do alfabeto separada não faz muito sentido
(somente agrupando algumas letras conseguiremos formar uma palavra), também
poderemos dizer o mesmo para o “bit”. O bit portanto é a menor unidade de
informação. Somente agrupando-os conseguiremos atribuir comandos ao
computador.
Você colocou um painel com duas lâmpadas e montou uma tabela (mais adiante
chamaremos esta tabela de “tabela verdade”). Toda vez que quiser solicitar a
elaboração de uma pizza, adotara um código previamente estabelecido. Assim,
zero, indica uma luz apagada e um indica uma luz acesa.
0 0 – Pizza de calabresa
0 1 – Pizza de Mussarela
1 0 – Pizza de quatro queijos
1 1 – Pizza Portuguesa
Observe que com dois bit´s conseguimos fazer quatro combinações, de tal forma a
poder codificar quatro pizzas. Os números que estamos utilizando são números
binários, ou seja, estão na base 2. Veja que interessante:
Dois números
binários
2 números binários geram quatro combinações porque 22 = 4
Base 2
23 = 8
Base 2
O Byte.
O byte é um agrupamento de oito bit´s. Agora vem a pergunta: Com oito
bit´s (1 byte) quantas combinações possíveis poderemos ter? A resposta para esta
pergunta é fácil:
28 = 256 combinações
2 15 10 Número mais
5 1 significativo
1 Centena
5 Dezenas
2 Unidades
Número menos
significativo
152 está na base decimal porque pode ser representado na potência de 10.
Num. Menos
significativo
Num. Menos
significativo
0 1 12
0 1 12 = 1 * 20 + 1 * 21 + 0 * 22 = 1 + 2 + 0 = 310
Pronto! Aprendemos que para converter de uma base binária para uma base
decimal, basta multiplicarmos pelas potências de 2. De posse deste conceito
poderemos fazer alguns exercícios.
1. 101010101
2. 1111
3. 11000001
4. 111111
As grandezas binárias
Exercícios
Grandezas binárias
1. 1Mbit
2. 256 Kbit´s
3. 32 Mbit´s
4. 128 Mbit´s
5. 16 Mbit´s
5 2
1 2 2
0 1 = 1 01
610 = ?2
6 2
0 3 2
1 1 = 1 1 0
Exercícios propostos:
2 Gbit´s
32 Mbytes
128 Kbytes
256 Mbytes
10 Bytes
110010
1010
0011
1001
100
10
64
128
32
135
Foi usada até o presente momento a base decimal, (que é a que todos nós
conhecemos) e a base binária (usada pelo computador). Além destas, existem
outras duas bases muito comuns no uso da linguagem de computadores.
A base binária pode estar mais fácil de aceitar pois sabemos que o
computador trabalha somente com zeros (0) ou uns (1). Daí a importância de
sabermos representar um número decimal na base binária e vice-versa.
3210 = 11112
Como o próprio nome diz, a base Octal é representada por oito números (0
a 7). Isto quer dizer que, em analogia à base binária, os números expressos em
base octal podem ser decompostos em potências de 8.
8910 = ?8
89 8
1 11 8
3 1 = 1 3 18
2.1.3 - Exercícios.
1. 128
2. 37
3. 8
4. 90
5. 125
6. 225
7. 237
8. 410
9. 640
10. 880
67710 = ?16
677 16
5 42 16
10 2 = 2 10 5 16 = 2 A 5 16
2.1.5 - Exercícios.
1. 750
2. 330
3. 470
4. 980
5. 1000
6. 782
7. 16
8. 652
9. 698
10. 985
Toda a conversão entre bases diferentes de 10, deve-se antes converter para a
base decimal. Exemplo: Binária para hexadecimal Converta antes para a base
decimal. Octal para binário Converta antes para decimal e assim por diante...
2.2.1 - Exercícios.
374218 = ? 16
14A3B16 =?8
110111000112 = ? 16
2BEF516 =?8
53318 =?2
1000110112 = ? 8
21710 =?2
Regra:
Esta porta lógica é conhecida como porta que faz multiplicação binária pois
quando temos qualquer uma das entradas igual a 0 (zero), a saída sempre será
zero.
O nível lógico é chamado de alto ou um (1) quando tem-se uma tensão por
volta de 5 volt´s. Por outro lado, o nível lógico baixo ou zero (0) é considerado
quando tem-se uma tensão por volta de 0 volt´s. Observe que apesar de estarmos
usando tensões, para nós o que interessa é o número zero e o número um.
Se você não entendeu muito bem esta simbologia, não se preocupe. Isto é
comum, pois este foi o primeiro contato com uma porta lógica. O importante é
notar que quando o portão for aberto o sensor “joga” o nível lógico 1 (um) na
entrada da porta lógica. Por sua vez, analisando as entradas, ela irá “jogar ou não”
nível lógico 1 (um) em sua saída. Se ela colocar a saída em nível lógico 1 (um) a
sirene soará. Caso contrário a sirene ficará muda.
Observe na figura anterior que esta porta lógica contém uma entrada e uma
saída. O seu funcionamento dá-se observando a seguinte tabela verdade:
Como a impressora está ocupada, ela coloca nível lógico igual a zero em
“sinal da UC”. Assim os dados do registrador “A” (neste exemplo o computador)
não são enviados para o registrador “B” (impressora) pois zero em uma porta
lógica E dará sempre zero em suas saídas.
B A Saída
0 0
0 1
1 0
1 1
C B A Saída
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Pela tabela verdade podemos notar que basta apenas uma entrada estar
em nível lógico “1” para que a saída fique em “1”.
Exemplo prático.
B A Saída
0 0 1
0 1 0
1 0 0
1 1 0
S = A+B
Exercícios.
a. A + B * A * B + A * C
b. (B * A + A + B + B + C ) * (A + B)
c. (B + D) + (A + C)
d. (A + B) * (B * C) + (A * B)
4. 1– Introdução
Ranhura
1) 2)
3) 4)
5) 6)
5. 1 Introdução
Conforme vimos, pelo fato de ser um dispositivo ativo, ele necessita de uma
fonte de alimentação. Consequentemente, o transistor apresenta 3 entradas, uma
para o sinal de entrada e as outras duas associadas ao sinal de saída e à
alimentação.
As fontes de alimentação destinam-se à fornecer energia elétrica ao
transistor. Sua construção é relativamente simples, porém requer conhecimentos
Vale ressaltar, que existem as mais variadas cargas e nem todas elas
podem ser diretamente ligadas à um transistor, uma vez que ele possui limites de
correntes elétricas. Para resolver este problema, torna-se necessário o uso do
relé, um dispositivo eletromecânico, cujo princípio de funcionamento baseia-se nas
5. 3 – O Relé
- Construção de um relé
Os relés são dispositivos simples e possuem quatro partes:
• eletroímã
• armadura que pode ser atraída pelo eletroímã
• mola
• conjunto de contatos elétricos
A+B = A *B
Comprovação:
A B A+B A+ B A B A *B
0 0 0 1 1 1 1
0 1 1 0 1 0 0
1 0 1 0 0 1 0
1 1 1 0 0 0 0
A *.B = A + B
B A A.B A.B A B A +B
0 0 0 1 1 1 1
0 1 0 1 0 1 1
1 0 0 1 1 0 1
1 1 1 0 0 0 0
Exercícios:
1) 2) 3)
4)
6)
7)
8)
B A Saída
Saída = A B
0 0 0
0 1 1
1 0 1
1 1 0
B A Saída
0 0 1
Saída = A B
0 1 0
1 0 0
1 1 1
Comprovação:
A B A B A.B A .B A.B+A.B A B
0 0 1 1 0 0 0 0
0 1 1 0 1 0 1 1
1 0 0 1 0 1 1 1
1 1 0 0 0 0 0 0
Exercícios.
Dia da semana
Circuito
Hora Lógico
Válvula de água.
Nível lógico = “1”
aciona a água
Solução:
Montemos a tabela verdade que irá representar o funcionamento do
circuito:
B = Dia A= Saída
da Horário
semana
0 0 0
0 1 0
1 0 1
1 1 0
Exercícios:
Exemplo 1
Montar o circuito lógico que atenda à tabela verdade:
Decimal B A Saída
0 0 0 1
1 0 1 1
2 1 0 0
3 1 1 0
Exemplo2
Monte o circuito lógico que atenda à tabela verdade:
Finalmente, o circuito que atende à “exigente” tabela verdade está descrito abaixo:
Ou então...
S = ( B + C ) + B.(A + C) Ufa....
a) Tabela verdade
b) Mapa de Karnaugh
c) Circuito lógico
Obs: Moção: Proposta, em uma assembléia, acerca do estudo de uma questão, ou relativa a
qualquer incidente que surja nessa
assembléia.
Considerar o reservatório ideal, que não perderá calor, e que a placa troca calor instantaneamente.
Os sensores A e B indicam quando o reservatório e a placa estão cheios. A foto-célula indica a
presença de luz solar e, portanto indica que a placa sofreu aquecimento.
6ª Questão: A figura mostra a interseção de uma via preferencial com uma outra
secundária. Vários sensores de detecção de veículos estão colocados ao longo
das mãos de direção C e D (via principal) e A e B (via secundária). A saída de tais
sensores está no nível lógico BAIXO quando nenhum veículo foi detectado, e no
nível lógico ALTO quando pelo menos um veículo tiver sido detectado. O sinal de
tráfego no cruzamento deve ser controlado como se segue:
Tabela verdade
R S Q(t+1) Interpretação
0 0 Q(t) Sem mudança
0 1 1 Saída igual a 1
1 0 0 Saída igual a 0
1 1 ?? Indeterminado
Explicação:
R e S são entradas de controle. Q (t+1) representa a saída Q logo após a
ação de R e S. Q(t) representa a saída Q antes da ação de R e S. A interpretação
da tabela é feita da seguinte maneira:
8.1.1 - Exercícios
Solução:
Em A tem-se R = 1 e S = 0, neste caso, a saída Q(t+1) = 0
Tabela verdade
R S Q(t+1) Interpretação
0 0 ?? Indeterminado
0 1 1 Saída igual a 1
1 0 0 Saída igual a 0
1 1 Q(t) Sem mudança
Explicação:
Observe que ao abrir a agenda, é colocado nível lógico 1 na entrada S do
Latch. Desta forma a saída Q(t+1) = 1. Neste caso a luz ascende. Suponha agora
que a agenda é fechada. Mesmo colocando nível lógico 0 em S, a saída
permanecerá em 1 indicando a abertura da agenda. Pronto! Você acabou de
montar “um circuito detector de intrusos...”.
Freqüência do sinal de clock.. (Quanto mais veloz é o sinal de clock, menor é este
intervalo.)
8.5.1 - Exercícios.
Clk
Q(t+1)
Clk
Q(t+1)
Tabela verdade
Clock D Q(t+1) Interpretação
0 0 Q(t) Sem mudança
0 1 Q(t) Sem mudança
1 0 0 Saída = 0
1 1 1 Saída = 1
8.6.1 - Exercícios
Q(t+1)
Q(t+1)
9.1 – Introdução
O flip-flop somente funciona quando o clock está mudando de zero para um.
Podemos afirmar, mais uma vez, que o flip-flop trabalha nas mudanças ou
“FLANCOS” do clock.
CLK D Saída
0 0 Q(t)
0 1 Q(t)
1 0 Q(t)
1 1 Q(t)
↓ 0 Q(t)
↓ 1 Q(t)
↑ 0 0
↑ 1 1
9.2.1 - Exercícios
Considerando um flip-flop tipo D, determinar a saída Q(t+1) para os dois
gráficos abaixo:
Clk
Q(t+1)
Q(t+1)
9.3 - Flip-flop JK
J = 0 e K = 0 Q(t+1) = Q(t).
J = 0 e K = 0 Q(t+1) = 0.
J = 1 e K = 0 Q(t+1) = 1.
J = 1 e K = 1 Q(t+1) = Q(t).
Tabela verdade:
CLK J K Saída
0 0 0 Q(t) Simbologia:
0 0 1 Q(t)
1 1 0 Q(t)
↓ 1 1 Q(t)
↑ 0 0 Q(t)
↑ 0 1 0
↑ 1 0 1
↑ 1 1 Q(t)
10.1 - Introdução.
Um exemplo prático
Pense que nas saídas Q0, Q1, Q2 e Q3 são ligadas algumas luzes. O efeito
que se verá será o de um seqüenciador, que irá acendendo as lâmpadas e
mantendo-as acesas no decorrer do sinal de clock. Este exemplo prático será
testado no laboratório.
Decimal Q2 Q1 Q0 Clock
0 0 0 0 0
1 0 0 1 1
2 0 1 0 2
3 0 1 1 3
4 1 0 0 4
5 1 0 1 5
6 1 1 0 6
7 1 1 1 7
8 0 0 0 8
10.8.1 - Observações:
10) Construa um circuito de um relógio digital que mostre as horas, minutos e dias
da semana.
11.1 Introdução.
Outp(endereço, byte);
Inp(endereço);
outp(0x378,2);
Isso foi feito para facilitar a compreensão do programa e deve ser adotado
como “norma” e “método” de programação. Nos PCs e na maioria dos
microcontroladores os endereços das portas de I/Os, memória (registradores) e
outros são sempre feitos em hexadecimal. Nada impede que usemos a notação
“decimal”, porém isso deixará os programas fora dos “padrões e convenções”
adotados pela maioria dos programadores.
Vamos montar um pequeno circuito que permitirá testar tudo o que foi dito
até o presente momento sobre portas I/O. O mesmo é bem simples e pode ser
montado em uma matriz de contatos. Durante a montagem, deve-se tomar
O circuito foi montado com oito LEDs e oito resistores limitadores para a
parte de “saída” e três chaves para entrada.
Lembre-se que você estará lidando com seu PC e qualquer erro ou engano
poderá causar a queima da porta paralela!!! É preferível perder alguns minutos em
uma verificação minuciosa do circuito a perder horas tentando encontrar o “por
que”o pior aconteceu?”
while(conta <=8){
entrada=inp(LPT_S); //lê entrada
if (entrada==63){sair();} //S1 pressionado?
outp(LPT_D,saida); //escreve dado na porta
tempo(); //temporiza
saida=saida>>1; //gira saida a direita
conta = conta + 1;
}
return;
}
int entrada;
int entrada;
Exercício 1 Exercício 2
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
main(){
int inicio, fim, incr;
float fahr, celsius;
inicio = 0;
fim = 300;
incr = 20;
fahr = inicio;
while (fahr <=fim){
celsius = (5.0/9.0) * (fahr - 32.0);
printf ("%4.0f -- %6.5f\n", fahr, celsius);
fahr= fahr + incr;
}
Exercícios propostos:
1) Repita o exercício anterior, apresentando a tabela na ordem decrescente.
2) Repita o exercício anterior, utilizando uma função para calcular a temperatura e
retornar o valor calculado.
#include <stdio.h>
#include <stdlib.h>
main(){
int a[5][5], i, j;
for (i = 0; i<=4; i++){
for(j = 0; j<=4; j++){
a[i][j] = rand();
}
}
#include <stdio.h>
#include <time.h>
void main(void){
struct tm *newtime;
time_t hora;
int i = 1;
while (i ==1){
time(&hora); /* Pega a hora do computador como um núm. Inteiro longo
*/
newtime = localtime(&hora); /* Converte o núm. P/ hora local */
13. 1 Introdução
13.2.1 - Custo.
• SRAM: $$$$$/Mbyte
• DRAM: $$$/Mbyte
• Discos magnéticos: $$/Mbyte
• Fitas magnéticas: $/Mbyte
• SRAM: 13–25 ns
• DRAM: 60–70 ns
• Discos magnéticos: 8–10 ms
13.2.4 - Alterabilidade.
13.3.3 - Byte
Exercícios.
Endereço Palavra
000 Palavra 0
001 Palavra 1
010 Palavra 2
011 Palavra 3
100 Palavra 4
101 Palavra 5
110 Palavra 6
111 Palavra 7
Exercícios:
É uma operação pela qual uma palavra binária armazenada num local
específico (endereço) da memória é identificada e então, transferida para outro
local. Por exemplo, se for desejado usar a palavra 4 da memória por qualquer
motivo, deve-se realizar a operação de leitura no endereço 1002. A operação de
leitura é muitas vezes chamada de operação de busca (fech operation), uma vez
que uma palavra está sendo “buscada” na memória.
Exercícios:
Qual o número a ser escrito nas entradas de endereço para:
1) Acessar a primeira palavra.
2) Acessar a décima palavra.
3) Acessar a palavra de número 135.
4) Acessar a palavra de número 37.
É uma operação pela qual uma nova palavra é colocada (armazenada) num
local particular da memória. Esta operação é também referida como uma operação
de armazenagem, sempre que uma nova palavra for escrita num local da
memória, ela substitui a palavra que havia sido anteriormente armazenada.
Esse tipo de memória precisava ser usada com pentes em pares. Isso porque os
processadores daquela época (Pentium) podiam acessar 64 bits por vez, mas
cada pente de memória EDO trabalhava apenas com 32 bits. No caso de
processadores 486, esse acesso era feito a 32 bits e assim um único pente
poderia ser usado. Memórias EDO usavam o encapsulamento SIMM-72, visto em
um tópico mais à frente.
13.6.1 - DIP
13.6.2 - SIP
SIPP (Single In Line Pin Package) - esse tipo encapsulamento é uma espécie de
evolução do DIP. A principal diferença é que esse tipo de memória possui, na
verdade, um conjunto de chips DIP que formavam uma placa de memória (mais
conhecida como pente de memória). O padrão SIPP foi aplicado em placas-mãe
de processadores 286 e 386;
13.6.3 - SIMM
13.6.4 - DIMM
As memórias DDR (Double Data Rating) estão cada vez mais presentes
nos computadores e são consideradas as substitutas naturais das populares
memórias SDRAM. Isso se deve a vários fatores, entre eles, a rapidez deste novo
ipo de memória.
O grande diferencial das memórias DDR está no fato de que elas podem
realizar o dobro de operações por ciclo de clock (em poucas palavras, a
velocidade em que o processador solicita operações. Assim, uma memória DDR
de 266 MHz trabalha, na verdade, com 133 MHz. Como ela realiza duas
operações por vez, é como se trabalhasse a 266 MHz.
Como já dito antes, as memórias DDR são muito parecidas com as memórias
SDRAM. Veja o porquê: os pentes de memórias SDRAM e DDR são divididos
logicamente em bancos, onde cada um contém uma determinada quantidade de
endereços de memória disponíveis. Cada banco, por sua vez, se divide em
combinações de linhas e colunas. Acessando uma linha e coluna de um banco é
que se acessa um endereço de memória. Dentro de cada banco, somente um
linha pode estar sendo usada por vez, mas é possível que haja mais de um
acesso simultâneo, desde que seja a endereços diferentes. É isso que a memória
DDR faz: basicamente acessa duas linhas, em vez de uma, não sendo preciso
mudar a estrutura da memória. Basta fazer alguns ajustes em circuitos e claro,
criar chipsets que possuam controladores de memória que consigam fazer
acessos desse tipo.
Memória Velocidade
SDRAM PC100 800 MB/s
SDRAM PC133 1.064 MB/s
DDR200 ou
1.600 MB/s
PC1600
DDR266 ou
2.100 MB/s
PC2100
DDR333 ou
2.700 MB/s
PC2700
DDR400 ou
3.200 MB/s
PC3200
Dual DDR226 4.200 MB/s
Dual DDR333 5.400 MB/s
Dual DDR400 6.400 MB/s
Embora que cada tipo de memória seja diferente na sua operação interna
há certos princípios de operação básicos que são os mesmos para todos os
sistemas de memória. Uma compreensão dessas idéias básicas ajudará o estudo
das memórias individuais.