Sei sulla pagina 1di 36

Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Introdução

Prof. M.Sc. Rodrigo Costa


rodccosta@gmail.com

Fortaleza-CE, Brasil
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Sumário

1 Disciplina
Objetivos
Ementa
Bibliografia

2 Conteúdo Programático

3 Introdução
Definições

4 Máquinas Multinı́veis
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Objetivos

Analisar os marcos do desenvolvimento na evolução da


arquitetura dos computadores;
Compreender a organização de sistemas de computadores;
Capacitar os alunos quanto à compreensão dos nı́veis de lógica
digital;
Estudar as questões de projetos dos componentes
computacionais;
Apresentar o funcionamento básico do processador.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Ementa

Evolução histórica da arquitetura de computadores;


organização básica dos sistemas de computação;
circuitos digitais;
subsistema de Interconexão;
subsistema de E/S;
subsistema de Memória;
estrutura e funcionamento da unidade central de processamento;
modos de endereçamento e formato de instruções;
pipelining;
arquiteturas avançadas.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Nesta disciplina serão utilizados os seguintes livros:

[1] Tanenbaum, A. S. Organização Estruturada de


computadores. 5a Edição, São Paulo: Pearson, 2006.

[2] Monteiro, Mário A. Introdução à Organização de


Computadores, 4o edição, Rio de Janeiro: LTC, 2001.

[3] Stallings, W. Arquitetura e Organização de


Computadores, 8a Ed., São Paulo: Pearson, 2008
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Conteúdo Programático - 1a Etapa

Fundamentos de Arquiteturas de Computadores:


Conceitos Básicos;
Histórico da evolução dos computadores;
Marcos do desenvolvimento da arquitetura dos computadores;
Arquitetura de Von Neumann;
Arquitetura de um computador didático.
Componentes do Sistema de Computação:
Processadores;
Unidade Lógica Aritmética, Unidade de Controle,
Registradores;
Memória;
Entrada/Saı́da;
Interconexão.
Circuitos Digitais.
AV1: Quinta-feira.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Conteúdo Programático - 2a Etapa

Subsistema de Interconexão:
Estrutura;
Tipos;
Questões de Projeto.
Subsistema de Entrada/Saı́da (I/O)
Módulos;
Técnicas de E/S
Subsistema de Memória
Organização;
Tipos;
Caracterı́sticas.
2a AV: Quinta-feira.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Conteúdo Programático - 3a Etapa

Unidade Central de Processamento (UCP):


Ciclo de Busca-Decodificação-Execução;
Conjunto de instruções : modos de endereçamento e formatos;
Tipos de instruções;
Estrutura e funcionamento da CPU;
Pipelining.
Arquiteturas avançadas: RISC x CISC;
3a AV: Quinta-feira.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Computador

Computador
Máquina capaz de sistematicamente coletar, manipular e fornecer os
resultados da manipulação de informações para um ou mais objetivos, ou
seja, um equipamento de processamento de dados

Definição alternativa:
Máquina capaz de resolver problemas executando instruções que lhe são
dadas

Exemplos
microcomputadores de um único chip à supercomputadores.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Funções do Computador

Figura 1: visão funcional de um computador. Fonte: [3]


Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Definições

Componentes não fı́sicos -


SOFTWARE
consiste em programas, de qualquer
tipo e em qualquer linguagem, que
Componentes Fı́sicos - HARDWARE são introduzidos na máquina para
fazê-la trabalhar, passo a passo, e
É a parte fı́sica, visı́vel do computador
produzir algum resultado
partes mecânicas;
necessários ao funcionamento
partes elétricas; da parte fı́sica;
partes eletrônicas. métodos;
procedimentos;
normas;
documentação;
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Introdução

Um sistema computacional
consiste no conjunto de componentes eletrônicos (memória, processador,
controladores de entrada e saı́da, interfaces de rede) associados a um
conjunto de programas.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Introdução
Hardware precisa de um Software
Isoladamente, os componentes estão apenas ligados fisicamente e há a
necessidade de gerenciá-los e usá-los de maneira apropriada.

Figura 2: visão geral de um sistema computacional composto por hardware,


programas de sistemas e programas de aplicativos.. Fonte: [1]
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Princı́pio da Equivalência

Possibilidade de criar softwares que simulam o hardware


Possibilidade de trabalhar a relação custo x benefı́cio. Hardware tem
custo alto, e software tem custo baixo;
Possibilidade de inserir novas instruções em um hardware existente.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Observação

Arquitetura de Computadores NÃO é


manutenção de computadores.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Arquitetura de computadores

Stallings
refere-se às caracterı́sticas visı́veis pelo programador, em outras palavras, aos atributos
que têm impacto direto sobre a execução lógica de um programa.

NULL
enfoca o comportamento do computador e como a estrutura afeta o funcionamento de
um programa.

Exemplo
número de bits de dados - inteiro de 16 bits ou de 64 bits é permitido / Conjunto de
instruções / tipos de dados.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Organização de computadores

Stallings
diz respeito à como são implementadas as unidades operacionais e suas
interconexões que implementam as especificações de sua arquitetura.

Null
Compreende todos aspectos fı́sicos do computador, tornado possı́vel
entender como funciona o mesmo.

Exemplo
quais são os detalhes dos processadores, sinais de controle, interfaces,
tecnologia de memória.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Assuntos de interesse de cada área

Arquitetura Organização
conjunto de instruções estrutura interna do
conjunto de registradores processador

representação de dados barramentos internos

mecanismos de Entrada/Saı́da tecnologia de memórias


(E/S) interface com sistema de
endereçamento de memória Entrada/Saı́da (E/S)
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Exemplo

Compatibilidade
Todo INTEL da famı́lia x86 compartilham a mesma arquitetura básica
Os programas que rodam nos 486 rodam num core2duo.

Por outro lado


Os processadores são bem diferentes e possuem tecnologias diferentes.

Conclusão:
uma organização deve ser projetada para implementar uma especificação
particular de arquitetura.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Comparação

Projeto de arquitetura:
Decisão de definir se um computador deve ou não ter uma instrução de
multiplicacao

Organização
Decisao de definir se essa instrução será implementada por uma unidade
especial de multiplicacao ou por um mecanismo que utiliza repetidamente
sua unidade de soma.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Abstração:
habilidade de se ignorar os aspectos de
assuntos não relevantes para o propósito
em questão.

Organização de Computadores:
Através da abstração pode-se imaginar
uma máquina construı́da em uma
hierarquia de nı́veis, em que cada nı́vel tem
uma função especı́fica e existe como uma
máquina hipotética distinta

Linguagem
conjunto de instruções utilizadas para se
construir programas
Figura 3: nı́veis de abstração do projeto de
componentes.. Fonte: [4]
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Máquinas Multinı́veis

Em outras palavras
É como se existisse uma máquina
hipotética para cada camada, em que cada
uma delas tem sua função e solicita às
camadas mais baixas para realizarem as
tarefas que são necessárias.

Existem máquinas com até 2 à 6


nı́veis:
microprocessador: possui os nı́veis
lógicos e a linguagem de máquina
(assembly);
computadores: possuem as 6
camadas em que o programador
programa em uma linguagem de alto
nı́vel, suportado pelo SO que Figura 4: os nı́veis abstratos dos modernos
controla o hardware. sistemas de computação. Fonte: [5]
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Máquinas Multinı́veis

Máquina virtual
Um computador com n nı́veis pode ser considerado como n diferentes
máquinas virtuais, cada uma delas com uma diferente linguagem de
máquina.

Funcionamento
A máquina Mi , mais simples, interpreta ou traduz instruções ou
programas da máquina Mi +1 , mais complexa. De modo geral:
Nı́veis baixos: linguagens de natureza numérica, interpretadas.
Nı́veis altos: linguagens de natureza simbólica, traduzidas.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Diferentes Linguagens
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Linguagem de Máquina

Caracterı́sticas:
Linguagem que a máquina é capaz de “entender” sem precisar ser
traduzida;
Programas em linguagens de máquina são compostos por
sequências de bits (códigos numéricos);
Ex.:000110110
As sequências de bits referem-se a instruções e dados a serem
executados.

Problemas da Linguagem de máquina


Legibilidade pobre;
Dificuldades em efetuar alterações ;
Codificação de expressões era complicado e tedioso.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Linguagens de Alto nı́vel

Há a necessidade de criar uma linguagem que seja mais


entendida de forma mais fácil;
Existe a possibilidade de criar uma máquina C ou Java,
contudo custo alto;
Uma máquina virtual é capaz de abstrair os conceitos de
interpretação / tradução;
A estrutura da máquina esconde a existência dos
interpretadores ou tradutores existentes entre as camadas.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Formas de Conversão de Linguagens

Tradução:
substituição de cada instrução de um programa em L1 por uma seqüência equivalente
de instruções em L0, obtendo um novo programa em L0 que pode ser executado no
computador real

Interpretação:
execução de um programa em L1 por outro programa (interpretador) em L0; o
programa em L1 é input para o interpretador, que examina cada instrução em L1 e
executa uma seqüência equivalente de instruções em L0
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Comparação

Compilação:
Traduz linguagem de alto nı́vel para código de máquina;
Tradução lenta
Execução rápida
Ex.: C, C++;
Interpretação Pura:
Não há tradução;
Execução lenta;
Tornando-se rara;
Ex.: Scheme, Matlab;
Interpretação Parcial.
Custo de tradução pequeno;
Velocidade de execução média;
Perl: compila o código parcialmente para detectar erros antes
da interpretação;
Java: geração dos bytecodes.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Máquina Contemporânea

Figura 5: os nı́veis abstratos dos modernos sistemas de computação. Fonte: [1]


Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Camadas I

0:Nı́vel Lógico
Nı́vel mais baixo da estrutura;
Objetos de interesse são as portas lógicas onde são realizadas as
implementações da lógica matemática;
Cada porta lógica possui 1 ou mais entradas digitais (aceitam 0 ou
1) e calculam funções lógicas simples sobre essas entradas.
Exemplos: AND, OR, XOR,...;
Portas lógicas são combinadas para formar memórias de um bit →
registradores → o processador → principal dispositivo do
computador.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Camadas II

1: Nı́vel de Microarquitetura
assegura de que as instruções sejam decodificadas e executadas
adequadamente e de que os dados sejam movidos para onde e
quando eles devem ser;
Principais componentes:
Unidade Lógica Aritmética (ULA) que realiza operações
aritméticas muito simples.
Registradores conectados a Unidade Lógica Aritmética (ULA)
formando o caminho dos dados.
Operações são controladas por um microprograma que busca,
decodifica e executa as instruções, uma a uma, usando o
caminho de dados para a realização desta tarefa ou é
implementada em hardware
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Camadas III

2: Nı́vel Arquitetura de Conjunto de Instruções (ISA)


A parte do computador visı́vel ao programador ou ao implementador de
compiladores
Manuais descrevem como as instruções são executadas
interpretativamente pelo microprograma ou como são executadas
diretamente pelo hardware;
Essas informações são necessárias para os desenvolvedores de
sistemas operacionais. Ex.: MMX, 3DNOW.
http://softpixel.com/~ cwright/programming/simd/cpuid.php
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Camadas IV

3: Nı́vel do Sistema Operacional (SO)


Trata das instruções de operação do sistema, possibilitando a tradução
da linguagem simbólica para a linguagem de máquina, sendo responsável
por gerenciar os recursos e fornecer uma base para execução dos
programas de alto nı́vel.

4: Nı́vel do montador
Linguagens compiladas de alto nı́vel são primeiro traduzidas para
linguagem simbólica a qual, então, é diretamente traduzida para
linguagem de máquina através de um programa chamado assembler.
Exemplo de tradução: MOV AX,0F79 == B8790F = 1011 1000 0111
1001 0000 1111.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Camadas V

5: Nı́vel de Linguagens de alto nı́vel


Há a necessidade de criar uma linguagem que seja mais entendida
de forma mais fácil: C, C++, FORTRAN, Lisp, Pascal e Prolog;
Existe a possibilidade de criar uma máquina C ou Java, contudo
custo alto;
A estrutura da máquina esconde a existência dos interpretadores ou
tradutores existentes entre as camadas.
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Abreviaturas I

E/S Entrada/Saı́da
ISA Arquitetura de Conjunto de Instruções(Instruction Set Architeture)

SO Sistema Operacional
ULA Unidade Lógica Aritmética
Disciplina Conteúdo Introdução Máquinas Multinı́veis Referências

Referências I

[1] TANENBAUM, A. S. Organização Estruturada de


computadores. 5a edição. ed. São Paulo: Pearson, 2006.
[2] MONTEIRO, M. A. Introdução à Organização de
Computadores. 4. ed. Rio de Janeiro: LTC, 2008.
[3] STALLINGS, W. Arquitetura e Organização de Computadores.
8a edição. ed. São Paulo: Pearson, 2008.
[4] FRUETT, F. EE610 Eletrônica Digital. 2003.
[5] NULL, L.; LOBUR, J. Princı́pios Básicos de Arquitetura e
Organização de Computadores. 2a . ed. Porto Alegre: Bookman,
2010.

Potrebbero piacerti anche