Programação Aplicada à Engenharia

Download Report

Transcript Programação Aplicada à Engenharia

Universidade Federal Rural do Semi-Árido
Departamento de Ciências Exatas e Naturais
Ciência da Computação
Software Básico
Aula 01: Revisão arquitetura de computadores
Silvio Fernandes
2010.1
1
Disciplina Software Básico
• Cronograma
– Revisão de arquitetura de computadores
– Software Básico, SIC e SIC/XE
– Montadores
– Carregadores e Ligadores
– Macroprocessadores
– Outros softwares básicos
2
Disciplina Software Básico
• Avaliações
–
–
–
–
–
1ª: 30/04/2010
2ª: 04/06/2010
3ª: 06/07/2010
Reposições: 13/07/2010
4ª: 16/07/2010
• Dias sem aula
– 02/04/2010: Paixão de Cristo
– 16/04/2010: Reunião Regional da SBPC e SEPE
• Processo de avaliação
– Provas teóricas, trabalhos de implementação e seminários
3
Disciplina Software Básico
• Referências
– Leland L Beck.. “Desenvolvimento de software
básico”. 2ª ed. Rio de Janeiro: Campus, 1993.
525p.
– Andrew S. Tanenbaum. “Organização estruturada
de computadores”. 3ª Rio de Janeiro: LTC, 1999.
460p.
– Andrew S. Tanenbaum. “Sistemas Operacionais
Modernos”. 2ª Edição, Prentice Hall, 2007.
4
Revisão de Arquitetura de
computadores
• Componentes de um computador pessoal
simples
5
Revisão de Arquitetura de
computadores
• Organização de um computador (Modelo de Von
Neumann - 1945)
–
–
–
–
Conceito de programa armazenado
Separação da Unidade Aritmética e de Controle
Utilização de barramentos e registradores
Hardware de entrada e saída (I/O)
• Modelo de Harvard
– Separação de barramentos de dados das memórias
onde estão as instruções de programa e das memórias
de dados
– O processador pode acessar as 2 simultaneamente
6
Revisão de Arquitetura de
computadores
• Modelo de Von Neumann
7
Revisão de Arquitetura de
computadores
• Comunicação
8
Revisão de Arquitetura de
computadores
• Memória: Conjunto de posições/locações
endereçáveis
• Palavras: Posição/locação da memória.
Contém dados e instruções. Unidade básica de
transferência de/para memória.
• Palavras são localizadas através de um
endereço
• Dados, instruções e endereços são codificados
em binário
9
Revisão de Arquitetura de
computadores
• Programa é uma seqüência de instruções,
colocadas numa seqüência de endereços
• A execução de um programa corresponde à
execução seqüencial de suas instruções
• A seqüência das instruções é definida de
forma dinâmica em tempo de execução
– Existência de instruções de controle de fluxo
10
Revisão de Arquitetura de
computadores
• Registradores: Posições de memória internas a
CPU (Unidade Central de Processamento).
– Dedicados e de Uso Geral
• Barramento: Via de comunicação
– Dados e Instruções, Endereços e Controle
– Comunicação Síncrona e Assincrona
11
Revisão de Arquitetura de
computadores
• Em um computador geralmente existe uma
hierarquia de memória.
• Cada nível da hierarquia é dividido em
palavras de N bits cada
• A palavra é a unidade básica de transferência
entre a UCP e a memória.
• Uma memória com 2M palavras necessita de
M bits de endereço
12
Revisão de Arquitetura de
computadores
13
Revisão de Arquitetura de
computadores
• Processadores
– O “cérebro” do computador ou a CPU
– Ele busca instruções na memória e as executa
– O ciclo básico de execução de qualquer CPU
• Buscar a 1ª instrução da memória
• Decodificá-la para determinar os operandos e qual
operação executar
• Executá-la
• Buscar, decodificar e executar as instruções
subsequentes até que o programa termine
14
Revisão de Arquitetura de
computadores
• Processadores
– Cada CPU tem um conjunto específico de
instruções que ela pode executar
– Um Pentium não executa programas SPARC e viceversa
– Todas as CPUs tem registradores internos para
armazenamento de variáveis importantes e de
resultados temporários
15
Revisão de Arquitetura de
computadores
• Processadores
– Um registrador especial é contador de programa
(PC – Program Counter)
• Contém o endereço de memória da instrução a ser
buscada
• Depois da busca de uma instrução, o PC é atualizado
para apontar a instrução seguinte
16
Revisão de Arquitetura de
computadores
• Processadores
– Outro registrador é o ponteiro de pilha
• Aponta para o topo da pilha atual na memória que
contém para cada rotina chamada que ainda não
encerrou
• Uma estrutura de pilha da rotina contém os parâmetros
de entrada, as variáveis locais e as variáveis
temporárias que não são mantidas nos registradores
17
Revisão de Arquitetura de
computadores
• Processadores
– Outro registrador é o PSW (program status word)
• Contém os bits do código de condições, os quais são
alterados pelas instruções de comparação, pelo nível de
prioridade da CPU, pelo modo de execução (núcleo ou
usuário) e por outros bits de controle
• Programas de usuário podem ler toda a PSW, mas em
geral são capazes de alterar somente alguns de seus
campos
18
Revisão de Arquitetura de
computadores
• Processadores
– Muitas CPUs modernas têm recursos para
executar mais de uma instrução ao mesmo tempo
– A CPU pode ter unidades separadas de busca,
decodificação e execução
– Enquanto estiver executando a instrução n, ela
também pode estar decodificando a n+1 e
buscando a n+2
– Isso é chamado de pipeline
19
Revisão de Arquitetura de
computadores
• Processadores
– Pipeline de 3 estágios
20
Revisão de Arquitetura de
computadores
• Processadores
– Ainda mais avançado que um processador
pipeline é um processador superescalar
– Que possui múltiplas unidades de execução por
exemplo
21
Referência
• Notas de aula do Prof. Ivan Saraiva.
http://www.dimap.ufrn.br/~ivan/orgi.html
• Andrew S. Tanenbaum. “Sistemas
Operacionais Modernos”. 2ª Edição, Prentice
Hall, 2007
22