Disciplina Arquitetura (Cap 1 e 2 - Introduç_o)
95 pág.

Disciplina Arquitetura (Cap 1 e 2 - Introduç_o)


DisciplinaArquitetura de Computadores3.588 materiais28.313 seguidores
Pré-visualização4 páginas
Disciplina: Arquitetura 
de Computadores 
Profa. Carla Katarina de Monteiro 
Marques 
UERN 
2 
Programa do curso 
\uf06e Modelo de um Sistema de Computação: 
\uf0a8 Unidade de Controle e Unidade de Processamento, 
Organização de Memória, Memória Auxiliar, Entrada e Saída, 
Barramento 
\uf06e Conceitos Básicos de Arquitetura: 
\uf0a8 Modo de Endereçamento, Tipo de Dados, Representação de 
Instruções, Conjunto de Instruções e Chamada de Subrotina, 
Tratamento de Interrupções, Exceções. 
\uf06e Linguagem de máquina e linguagem assembly 
\uf06e Execução de Programas; 
\uf06e Arquiteturas RISC. 
\uf06e Computação paralela. 
3 
Metodologia, Técnicas de 
Ensino 
\uf06e Aulas expositivas. 
\uf06e Atividades individuais e em grupo. 
 
4 
Avaliações 
\uf06e 1ª, 2a e 3ª aval.: avaliação teórica 
5 
Bibliografia 
\uf06e Tanenbaum, A., Organização Estruturada de 
Computadores, 4a Edição, 1999. 
\uf0a8 capítulos 1, 2 e 5. 
\uf06e Monteiro, Introdução à Organização de Computadores, 
4a Edição, 1996. 
\uf0a8 capítulos 1, 2, 5, 6, 7, 8 e 9. 
\uf06e Stallings, W., Arquitetura e Organização de 
Computadores, 8a Edição, Prentice Hall, 2010. (Leitura 
complementar) 
\uf06e Notas de Aula 
Arquitetura de Computadores 
\uf06e Estudo sobre como projetar as partes de 
um sistema de computador que são 
visíveis para os programadores. 
\uf06e Atributos que têm impacto direto sobre a 
execução lógica de um programa. 
Arquitetura de Computadores 
\uf06e Exemplos de atributos: 
\uf0a8Conjunto de instruções; 
\uf0a8Número de bits usados para representar os 
vários tipos de dados (caracteres 2B ou 4B); 
\uf0a8Mecanismos de E/S; 
\uf0a8Técnicas de endereçamento à memória. 
Organização de Computadores 
\uf06e Refere-se às unidades operacionais e 
suas interconexões que implementam as 
especificações da sua arquitetura. 
\uf06e Inclui detalhes de hardware transparentes 
ao programador. 
\uf06e Deve ser projetada para implementar uma 
especificação particular de arquitetura 
Organização de Computadores 
\uf06e Exemplos: 
\uf0a8Sinais de controle; 
\uf0a8 Interfaces entre o computador e os 
periféricos; 
\uf0a8Tecnologia de memória utilizada. 
Organização e Arquitetura 
\uf06e Exemplos Práticos: 
\uf0a8Projeto de arquitetura: 
\uf06e Decisão de definir se um computador deve ou não 
ter uma instrução de multiplicação; 
\uf0a8Organização 
\uf06e Decisão de definir se essa instrução será 
implementada por uma unidade especial de 
multiplicação ou por um mecanismo que utiliza 
repetidamente sua unidade de soma. 
Organização e Arquitetura 
\uf06e Na prática, arquitetura e organização 
significam a mesma coisa. 
Projeto de computadores atuais 
\uf06e Base no modelo de John Von Neumann; 
\uf06e Formado pelos componentes: memória, 
CPU, E/S, barramentos; 
\uf06e CPU dividida em ULA e unidade de 
controle. 
Projeto de computadores atuais 
\uf06e John Von Neumann - Conceitos Básicos: 
\uf0a8Dados/Instruções são armazenados em uma 
única memória de leitura/escrita; 
\uf0a8Conteúdo da memória é endereçado pela 
posição; 
\uf0a8Execução de instruções de modo seqüencial 
(salvo exceções). 
Família de Computadores 
 
\uf06e Todos os modelos possuem a mesma 
arquitetura, mas com diferença de 
organização; 
\uf06e Assim, os modelos têm diferentes preços 
e características de desempenho distintos 
\uf06e A arquitetura pode sobreviver por muito 
tempo, mas a organização muda ao longo 
dos anos! 
Família de Computadores 
\uf06e Entretanto, a alteração da organização 
geralmente afeta a arquitetura. 
\uf06e Mudanças na tecnologia influenciam a 
organização e a arquitetura! 
Computador Digital 
\uf06e Máquina que pode resolver problemas 
executando uma série de instruções que lhe 
são fornecidas. 
 
\uf06e Executa Programas \u2013 conjunto de instruções 
que descrevem a maneira de realizar 
determinada tarefa. 
 
\uf06e Reconhecem e executam um conjunto 
limitado e simples de instruções 
(linguagem de máquina- binária). 
 
\uf0a8Exemplo: soma, comparação, 
transferência de dados de uma parte da 
memória para outra parte. 
 
Circuitos de um computador 
(Hardware) 
\uf06e Instruções da linguagem de máquina (decidida 
pelos projetistas de computadores) devem: 
 
\uf0a8 ser simples 
\uf0a8 ser compatíveis com o uso da máquina 
\uf0a8 ser compatíveis com o desempenho requerido 
\uf0a8 ter custo e complexidade da eletrônica reduzidos 
(aplicação) 
 
A linguagem de máquina (binária-baixo nível) 
está muito distante de uma linguagem natural 
(humana-alto nível) 
Problema: 
 
Complexidade do que as pessoas precisam fazer 
versus 
simplicidade do conjunto de instruções do computador 
 
\uf06e Exemplo: o usuário quer calcular a trajetória de um 
foguete até a lua. 
\uf06e Como o usuário pode fazer isso em linguagem de 
máquina? Trabalho difícil e tedioso para os humanos 
 
Solução: 
 
 Criar uma hierarquia de abstrações de níveis mais 
altos baseados nos níveis mais baixos. 
 
 
 
 
Criar uma organização estruturada de computadores 
para facilitar a comunicação homem-máquina 
 
\uf06e Constituído de um conjunto de subsistemas 
inter-relacionados, cada qual, possuindo 
também uma estrutura hierárquica, contendo, 
em seu nível mais baixo, subsistemas 
elementares. 
 
\uf06e O comportamento de cada nível depende 
apenas de uma caracterização abstrata e 
simplificada do sistema de nível imediatamente 
inferior. 
 
Sistema hierárquico 
\uf06e Estrutura \u2013 modo como os componentes estão 
inter-relacionados. 
 
\uf06e Função \u2013 a operação de cada componente 
individual como parte da estrutura. 
Considerações do projetista 
\uf0b1Unidade Central de 
Processamento (CPU) 
\uf0b1Memória Principal 
\uf0b1Entrada/Saída 
\uf0b1Sistema de interconexão 
Computador \u2013 Estrutura 
interna 
 
 
 
\uf06e Processamento de dados 
\uf06e Armazenamento de dados 
\uf06e Transferência de dados 
\uf06e Controle 
Computador - Funções 
básicas 
\uf06e Como solucionar: 
 
 
 As pessoas devem fazer X, mas os 
computadores só podem fazer Y 
 
\uf06e Supor a existência das linguagens: 
\uf0a8 L1: linguagem natural, do usuário (alto nível e 
complexa) 
\uf0a8 L0: linguagem da máquina (baixo nível e simples) 
 
\uf06e Como compatibilizar L1 com L0? Existem 2 
soluções (tradução e interpretação) 
\uf0a8 usar um tradutor 
\uf0a8 usar um interpretador 
 
Pode ser utilizada uma 
metodologia híbrida: 
tradutor + interpretador 
Linguagens, Níveis e 
Máquinas Virtuais 
 
 
\uf0a8 Cada instrução de L1 é substituída por um conjunto 
de instruções equivalentes de L0 . 
\uf0a8 Processador executa programa em L0. 
\uf0a8 Todo programa em L0 é carregado em memória e é 
executado. 
\uf0a8 Programa pode ser traduzido uma única vez e 
executado várias vezes. 
 
Alguns autores usam o termo tradução em sentido genérico, 
englobando os conceitos de compilação e interpretação. Aqui, ele 
está sendo empregado como sinônimo de compilação. 
Tradutor: 
 
\uf0a8 Cada instrução de L1 é substituída por um conjunto 
de instruções equivalentes de L0 . 
\uf0a8 Processador executa uma instrução de L1 
(transformada para L0) antes de executar próxima 
instrução. 
\uf0a8 Cada instrução de L1, transformada para L0, é 
carregada na memória e executada. 
\uf0a8 Não é criado um programa em L0. 
\uf0a8 Programa deve ser novamente interpretado para ser 
executado. 
 
Interpretador: 
\uf06e É possível não pensar em tradução ou 
interpretação, imaginando-se 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) 
 
\uf06e 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