lista 1 de Exercícios.Entrega até dia 27/08/2014.Prorrogado para 29/08/2014. Gabarito Notas
lista 2 de Exercícios.Entrega até dia 17/09/2014.
lista 3 de Exercícios.Entrega até dia 01/11/2014. Gabarito
lista 4 de Exercícios.Entrega até dia 15/11/2014.
Exercícios de revisão
Um computador digital é uma máquina que pode resolver problemas para as pessoas executando instruções que lhe são dadas.
Uma sequência de instruções que descreve como realizar certa tarefa é denominada programa.
Os circuitos eletrônicos de cada computador podem reconhecer e executar diretamente um conjunto limitado de instruções simples, e, para que os programas possam ser executados, todos devem antes ser convertidos em instruções.
As instruções primitivas formam uma linguagem com a qual pessoas podem se comunicar com computadores. Essa linguagem é denominada linguagem de máquina
Os projetistas de computadores, geralmente fazem com que as instruções sejam as mais simples possíveis, coerentes com os requisitos de utilização e desempenho idealizados para o computador.
Como a maioria das linguagens de máquina são simples, todos acham difícil e entendiante usá-la.
Com o passar do tempo, essas observações resultaram em uma série de abstrações. Assim, a complexidade pode ser dominada e sistemas de computação podem ser projetados de modo estruturado, sistemático. Denominamos essa abordagem organização estruturada de computadores.
Portanto, existe uma grande lacuna entre o que é conveniente para as pessoas e o que é conveniente para computadores. As pessoas querem fazer X mas os computadores só podem fazer Y.
Para resolver este problema há duas abordagens (tradução e interpretação), ambas envolvem projetar um novo conjunto de instruções que seja mais conveniente para as pessoas usarem do que o conjunto de instruções que já vem embutido na máquina.
Tradução:
Caracteriza-se pela criação de um programa em um nível de abstração acima da linguagem de máquina.
As instruções criadas nessa linguagem de "alto nível" são substituídas pelas instruções de linguagem de máquina.
O programa responsável por executar esta substituição é chamado de compilador.
Interpretação:
Também é caracterizado pela criação de um programa em um nível de abstração acima da linguagem de máquina.
As instruções criadas nessa linguagem de "alto nível" são consideradas como entrada para a linguagem de máquina, a execução é feita instrução por instrução de forma sequencial.
O programa responsável por executar esta interpretação é chamado de interpretador.
Tais técnicas resultam no conceito de máquinas multiníveis apresentada na tabela a seguir:
Nível 5 | Nível de linguagem orientado a problemas | Tradução (compilador/interpretador) |
Nível 4 | Nível de linguagem de montagem (assembly) | Tradução (assembler) |
Nível 3 | Nível de sistema operacional de máquina | Híbrido entre ISA e conjunto de instruções do SO (organização de memória, pipeline) |
Nível 2 | Nível de arquitetura de conjunto de instruções | Nível de arquitetura do conjunto de instruções(ISA) |
Nível 1 | Nível de microarquitetura | Unidade Lógica e Aritmética (ULA) |
Nível 0 | Nível lógico digital | Portas lógicas |
Nível lógico digital:
As portas são o objeto de interesse. Embora, constituídas com componentes analógicos, como transistores, as portas podem ser modeladas com precisão como dispositivos digitais.
Nível de microarquitetura:
Formado por um conjunto de 8 a 32 registradores que formam uma memória local e um circuito denominado ULA, que é capaz de executar operações aritméticas simples.
Os registradores são conectados à ULA para formar um caminho de dados através do qual os dados transitam.
Nível de arquitetura de conjunto de instruções:
Também chamado de nível ISA.
Todo fabricante de computadores pública um manual para cada um dos computadores que vende, intitulado "Manual de referência de linguagem de máquina".
Esses manuais descrevem o conjunto de instruções.
Nível de sistema operacional de máquina:
Este nível pose ser considerado híbrido por mesclar as instruções do nível ISA com novos conjuntos de instruções, como organização de memória e pipeline.
Nível de linguagem de montagem:
Forma simbólica para uma das linguagens subjacentes.
Fornece um método para as pessoas escreverem programas para o nível 1, 2 ou 3, e em seguida interpretado pela máquina real.
O programa que realiza a tradução é denominado assembler.
Códigos (mnemônicos).
ADD AX,BX;
Nível de linguagem orientado a problemas:
Linguagens projetadas para ser usadas por programadores de aplicações que tenham um problema a resolver.
Normalmente denominadas como linguagens de alto nível. Próximo ao ser humano, escrita de forma textual.
SE(A==B) A=B+C;
Programas criados por estas linguagens são traduzidos ou interpretados para os níveis 3 ou 4 (JAVA, C, C++)
Programas em JAVA, por exemplo, costumam ser primeiro traduzidos para uma linguagem semelhante à ISA denominada "bytecode", que é então interpretada.
Arquitetura de Von Neumann:
- Unidade Central de Processamento – CPU:
Responsável por todo o processamento (execução de programas) dentro de um computador.
- Unidade de Controle – UC
Circuito que gera os sinais de controle responsáveis pelo gerenciamento (controle) de todas as atividades do computador.
- Unidade Lógica e Aritmética – ULA
Circuito responsável por efetuar todas as operações lógicas e aritméticas.
- Registradores de Propósito Geral
Elementos de memória (circuitos) responsáveis por armazenar os dados que são utilizados durante a execução de um programa (instruções).
- Hierarquia de Memória:
Sistema de memória com objetivo de melhorar o desempenho de um sistema computacional, diminuindo o tempo de acesso médio
![]()
- Registradores da CPU
- Memória de armazenamento binário, usado para armazenamento temporário da CPU.
- Memória de alto custo.
- Memória Cache
- Fica entre o processador e a memória RAM.
- Espaço de armazenamento limitado.
- Comumente chamadas de L1, L2, L3, LN...
- Memória Principal
- Exemplo memória RAM
- Memória Secundária
- Ex. Discos rigidos, disquete, CD-ROM, DVD, Blu-ray
- Memórias (continuação)
Semicondutoras
- RAM – Random Access Memory : memória de acesso aleatório, volátil.
- SRAM – RAM estática: seu conteúdo só se altera quando se escreve nela ou quando se desliga a tensão de alimentação. Exemplo – registradores da CPU, memória cache
- DRAM – RAM dinâmica: periodicamente é necessário reescrever o seu conteúdo (refresh de memória) pois há diminuição de cargas elétricas. Exemplo - memória principal.
- ROM – Read Only Memory: memória somente de leitura, não volátil.
- ROM – gravação feita pelo fabricante da memória, não apagável.
- PROM – Programmable ROM: programação feita pelo usuário, não apagável.
- EPROM – Erasable PROM: programação feita pelo usuário, apagável através de luz ultra-violeta.
- EEPROM – Electrical EPROM: programação feita pelo usuário, apagável eletricamente.
- Flash – memória semicondutora, não volátil e de escrita e leitura, apagável.
Magnéticas
- Discos – Hard Disk – HDs
- Opticos – CD-ROM, DVD, etc.
- Fitas – cartchos, rolos, etc.
![]()
- Unidade de Entrada e Saída:
Responsável por gerenciar a ligação entre CPU-Memória-barramentos e os periféricos.
- Interfaces
Circuitos simples que apenas compatibilizam a comunicação (protocolo). O controle da transferência é feita pela CPU. Exemplo: interface serial RS232, interface paralela, interface USB.
- Canais de E/S
Circuitos que controlam e compatibilizam a comunicação. A CPU apenas inicia a transferência. Exemplo – Controlador de Acesso Direto à Memória (DMA – Direct Access Memory).
- Processadores E/S
CPUs dedicadas a fazer E/S de dados. Iniciam e controlam a comunicação.
- Barramentos
Conjunto de fios que fazem a ligação física entre as diversas unidades.
- Barramento de Endereços
Por onde trafegam os endereços.
- Barramento de Dados
Por onde trafegam os dados.
- Barramento de Controle
Por onde trafegam os sinais de controle.
Referências
- Ricardo Pannain - Unicamp MC404 - http://www.ic.unicamp.br/~pannain/mc404/aulas/slides/obclm2_ppt.pdf - Acessado em 11/08/2014.
- TANENBAUM, A. S. Organização estruturada de computadores. 5. ed. São Paulo: Pearson Prentice-Hall, 2007.
Circuitos Lógicos
Circuitos Lógicos (continuação)
Teoremas Booleanos
Teoremas de Demorgan e Universalidade de Portas
Introdução
Projetando Circuitos Lógicos Combinacionais
Exercícios de fixação:
Exercícios de fixação:
1) Dada a Tabela Verdade a seguir, ache a equação simplificada de saída utilizando soma de produtos:
A B C X 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1
2) Realize a mesma tarefa do exercício anterior para a tabela a seguir :
A B C D x 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 1
3) Utilize as tabelas verdades fornecidas no exercícios 1 e 2 para encontrar a equação simplificada de saída utilizando o produto de somas (lembrando que no produtos de somas a saída baixa é a utilizada para construir os termos da equação):
Projetando Circuitos Lógicos Combinacionais parte 2Projetando Circuitos Lógicos Combinacionais parte 3
Flip-flops (parte 1)
Flip-flops (parte 2)