Buscar

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

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 95 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 95 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 95 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Disciplina: Arquitetura 
de Computadores 
Profa. Carla Katarina de Monteiro 
Marques 
UERN 
2 
Programa do curso 
 Modelo de um Sistema de Computação: 
 Unidade de Controle e Unidade de Processamento, 
Organização de Memória, Memória Auxiliar, Entrada e Saída, 
Barramento 
 Conceitos Básicos de Arquitetura: 
 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. 
 Linguagem de máquina e linguagem assembly 
 Execução de Programas; 
 Arquiteturas RISC. 
 Computação paralela. 
3 
Metodologia, Técnicas de 
Ensino 
 Aulas expositivas. 
 Atividades individuais e em grupo. 
 
4 
Avaliações 
 1ª, 2a e 3ª aval.: avaliação teórica 
5 
Bibliografia 
 Tanenbaum, A., Organização Estruturada de 
Computadores, 4a Edição, 1999. 
 capítulos 1, 2 e 5. 
 Monteiro, Introdução à Organização de Computadores, 
4a Edição, 1996. 
 capítulos 1, 2, 5, 6, 7, 8 e 9. 
 Stallings, W., Arquitetura e Organização de 
Computadores, 8a Edição, Prentice Hall, 2010. (Leitura 
complementar) 
 Notas de Aula 
Arquitetura de Computadores 
 Estudo sobre como projetar as partes de 
um sistema de computador que são 
visíveis para os programadores. 
 Atributos que têm impacto direto sobre a 
execução lógica de um programa. 
Arquitetura de Computadores 
 Exemplos de atributos: 
Conjunto de instruções; 
Número de bits usados para representar os 
vários tipos de dados (caracteres 2B ou 4B); 
Mecanismos de E/S; 
Técnicas de endereçamento à memória. 
Organização de Computadores 
 Refere-se às unidades operacionais e 
suas interconexões que implementam as 
especificações da sua arquitetura. 
 Inclui detalhes de hardware transparentes 
ao programador. 
 Deve ser projetada para implementar uma 
especificação particular de arquitetura 
Organização de Computadores 
 Exemplos: 
Sinais de controle; 
 Interfaces entre o computador e os 
periféricos; 
Tecnologia de memória utilizada. 
Organização e Arquitetura 
 Exemplos Práticos: 
Projeto de arquitetura: 
 Decisão de definir se um computador deve ou não 
ter uma instrução de multiplicação; 
Organização 
 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 
 Na prática, arquitetura e organização 
significam a mesma coisa. 
Projeto de computadores atuais 
 Base no modelo de John Von Neumann; 
 Formado pelos componentes: memória, 
CPU, E/S, barramentos; 
 CPU dividida em ULA e unidade de 
controle. 
Projeto de computadores atuais 
 John Von Neumann - Conceitos Básicos: 
Dados/Instruções são armazenados em uma 
única memória de leitura/escrita; 
Conteúdo da memória é endereçado pela 
posição; 
Execução de instruções de modo seqüencial 
(salvo exceções). 
Família de Computadores 
 
 Todos os modelos possuem a mesma 
arquitetura, mas com diferença de 
organização; 
 Assim, os modelos têm diferentes preços 
e características de desempenho distintos 
 A arquitetura pode sobreviver por muito 
tempo, mas a organização muda ao longo 
dos anos! 
Família de Computadores 
 Entretanto, a alteração da organização 
geralmente afeta a arquitetura. 
 Mudanças na tecnologia influenciam a 
organização e a arquitetura! 
Computador Digital 
 Máquina que pode resolver problemas 
executando uma série de instruções que lhe 
são fornecidas. 
 
 Executa Programas – conjunto de instruções 
que descrevem a maneira de realizar 
determinada tarefa. 
 
 Reconhecem e executam um conjunto 
limitado e simples de instruções 
(linguagem de máquina- binária). 
 
Exemplo: soma, comparação, 
transferência de dados de uma parte da 
memória para outra parte. 
 
Circuitos de um computador 
(Hardware) 
 Instruções da linguagem de máquina (decidida 
pelos projetistas de computadores) devem: 
 
 ser simples 
 ser compatíveis com o uso da máquina 
 ser compatíveis com o desempenho requerido 
 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 
 
 Exemplo: o usuário quer calcular a trajetória de um 
foguete até a lua. 
 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 
 
 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. 
 
 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 
 Estrutura – modo como os componentes estão 
inter-relacionados. 
 
 Função – a operação de cada componente 
individual como parte da estrutura. 
Considerações do projetista 
Unidade Central de 
Processamento (CPU) 
Memória Principal 
Entrada/Saída 
Sistema de interconexão 
Computador – Estrutura 
interna 
 
 
 
 Processamento de dados 
 Armazenamento de dados 
 Transferência de dados 
 Controle 
Computador - Funções 
básicas 
 Como solucionar: 
 
 
 As pessoas devem fazer X, mas os 
computadores só podem fazer Y 
 
 Supor a existência das linguagens: 
 L1: linguagem natural, do usuário (alto nível e 
complexa) 
 L0: linguagem da máquina (baixo nível e simples) 
 
 Como compatibilizar L1 com L0? Existem 2 
soluções (tradução e interpretação) 
 usar um tradutor 
 usar um interpretador 
 
Pode ser utilizada uma 
metodologia híbrida: 
tradutor + interpretador 
Linguagens, Níveis e 
Máquinas Virtuais 
 
 
 Cada instrução de L1 é substituída por um conjunto 
de instruções equivalentes de L0 . 
 Processador executa programa em L0. 
 Todo programa em L0 é carregado em memória e é 
executado. 
 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: 
 
 Cada instrução de L1 é substituída por um conjunto 
de instruções equivalentes de L0 . 
 Processador executa uma instrução de L1 
(transformada para L0) antes de executar próxima 
instrução. 
 Cada instrução de L1, transformada para L0, é 
carregada na memória e executada. 
 Não é criado um programa em L0. 
 Programa deve ser novamente interpretado para ser 
executado. 
 
Interpretador: 
 É 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) 
 
 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 traduzidosou interpretados para L0 e 
executados em M0. 
Outra solução: 
 Na prática se implementa a solução 2. 
 
 As pessoas escrevem programas para 
máquinas virtuais como se elas realmente 
existissem. 
 
 Muitos níveis de máquinas virtuais podem ser 
implementados. 
 
 Cada linguagem usa a sua linguagem 
antecessora como base, de modo que um 
computador que use essa técnica pode ser visto 
como um conjunto de camadas ou níveis. 
Outra solução: 
Máquina de vários níveis 
Máquinas Multiníveis Modernas 
 
Obs.: Existe um outro nível situado abaixo do Nível 0 – nível dos dispositivos. Nesse 
nível o projetista trabalha com os elementos básicos do projeto (transistores). 
Computador 
com 6 níveis 
 
Método por 
meio do qual 
cada nível que é 
suportado é 
indicado abaixo 
do nível (junto 
com o nome do 
programa que o 
suporta). 
 
 Nível mais baixo da estrutura. 
 
 Objetos de interesse são conhecidos como portas 
lógicas. 
 
 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. 
Nível 0: Nível da Lógica 
Digital 
 
 Uma memória local (8 a 32 registradores) e a UAL 
(Unidade Aritmética Lógica) que realiza operações 
aritméticas muito simples. 
 
 Registradores - conectados a UAL formando o 
caminho dos dados. 
 
 Operações são controladas por um microprograma 
ou diretamente por hardware. 
 
 Microprograma - interpretador para as instruções do 
Nível 2. Busca, decodifica e executa as instruções, 
uma a uma, usando o caminho de dados para a 
realização desta tarefa. 
Nível 1: Nível da Microarquitetura 
 
 Nível ISA - Instruction Set Architecture. 
 Definida pelo fabricante e dependente da arquitetura 
da máquina. 
 Fabricantes disponibilizam “Manual de Referência da 
Linguagem de Máquina” ou “Princípios de operação 
do Computador Modelo XYZW” (ou algo similar). 
 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. 
Nível 2: Nível da Arquitetura 
do Conjunto de Instruções 
 
 Instruções da linguagem deste nível também podem 
conter instruções do nível ISA. 
 Suporta uma organização diferente de memória. 
 Suporta capacidade de rodar 2 ou mais programas 
simultaneamente. 
 Suporta sistemas de comandos ou de janelas 
(windows). 
 Programadores deste nível, e também dos níveis 
mais baixos, são conhecidos como programadores 
de sistema. 
 Os programadores dos níveis mais altos que este 
são chamados programadores de aplicação. 
 
Nível 3: Nível do Sistema 
Operacional 
 Linguagem de montagem: forma simbólica de 
representação das linguagens do nível mais baixo. 
 
 Programas nessa linguagem são, inicialmente, 
traduzidos para as linguagens dos níveis 1, 2 e 3 e 
depois interpretados pela máquina virtual 
apropriada ou pela própria máquina real. 
 
 Programa que realiza a tradução - montador. 
 
Nível 4: Nível da linguagem 
do montador ou de montagem 
(Assembly language) 
 Conhecidas como linguagens de alto nível. 
Exemplos: Basic, C, Pascal, Java, LISP, .... 
 
 Programas são geralmente traduzidos para os 
níveis 3 e 4 por compiladores. 
 
 Alguns são interpretados: Exemplos: programas em 
Java, MatLab, ... 
 
Nível 5: Nível das linguagens 
orientadas para solução dos 
problemas 
 
 Computadores são projetados como uma série de 
níveis, cada um deles construído em cima de seus 
precursores. 
 
 Cada nível representa uma abstração distinta, com 
diferentes objetos e operações. 
 
 A abstração permite ignorar, "abstrair", 
temporariamente detalhes irrelevantes, de níveis 
mais baixos, reduzindo uma questão complexa a 
algo muito mais fácil de ser entendido. 
Observações finais 
importantes: 
Conjunto de tipos de dados, operações 
e características de cada um dos 
níveis - arquitetura do nível. 
 
 Partes da arquitetura - as 
características que um programador do 
nível deve enxergar, por exemplo, a 
disponibilidade de memória. 
Observações finais 
importantes: 
Primeiros computadores – fronteira 
entre o hardware e o software era 
muito clara. 
 
 Atualmente – muito difícil separar o 
hardware do software. 
 
Evolução das máquinas de 
vários níveis 
 
 
Hardware e software são 
equivalentes logicamente. 
 
 
 Qualquer operação realizada por software pode ser 
realizada diretamente por hardware. 
 
 Qualquer instrução executada por hardware pode 
ser simulada em software. 
 
“O hardware é simplesmente o software petrificado” 
Evolução das máquinas de 
vários níveis 
 
 Fatores que influenciam na decisão de se colocar 
funções em hardware ou software: 
 Custo 
 Velocidade 
 Confiabilidade 
 Freqüência esperada de mudanças 
 
 A decisão muda com a evolução da tecnologia e da 
própria utilização do computador. 
 
Evolução das máquinas de 
vários níveis 
 
 Década de 40 - Primeiros computadores: 
 2 níveis - Nível ISA + Nível da Lógica Digital 
 
 Década de 50 
 Idéia de construção de um computador de 3 níveis – 
simplificação de hardware 
 Acoplar à máquina um interpretador (microprograma) 
para executar programas do nível ISA (por 
interpretação). Conseqüências: 
 
 número de circuitos (hardware + simples) 
 
 confiabilidade da máquina (circuitos à válvula) 
A invenção da 
Microprogramação 
 Década de 1960 - surgiram muitas máquinas com a 
filosofia de 3 níveis. 
 
 Década de 1970 - uso do nível ISA interpretado por 
microprograma, ao invés de executado diretamente 
por circuitos eletrônicos, tornou-se uma prática 
comum. 
 
 
 Primórdios: 
 Computadores eram operados e gerenciados pelo 
próprio programador . 
 Computadores executavam apenas um programa 
por vez (disponível para um único usuário). 
 
Mecanismo de 
entrada de 
dados 
Invenção do Sistema Operacional 
1. Colocar cartões do compilador FORTRAN na leitora + 
mandar executar (botão de início de operação da leitora); 
2. Colocar cartões do programa na leitora (1a vez) + executar; 
3. Colocar cartões do programa na leitora (2a vez) + executar 
(compilador de 2 passos); 
4. Se programa não tem erro, o compilador perfurava cartões 
com código de máquina. Senão, corrige programa e volta ao 
passo 1; 
5. Colocar programa em linguagem de máquina + cartões da 
biblioteca Fortran e executar; 
 
 Programa é executado. Se há erro de lógica, 
corrige e volta ao passo 1. 
Exemplo de execução de um 
programa em FORTRAN 
 Por volta de 1960, foi criado o Sistema 
Operacional (SO). 
 
 Objetivo: facilitar a operação do computador. 
 
 O Sistema operacional era mantido na memória 
do computador durante todo o tempo de 
utilização. 
 
 Cartões de controle comandavam instruções do 
SO. 
 
Invenção do Sistema 
Operacional 
Programa 
FORTRAN 
Cartões de 
dados 
Exemplo de um Job para o 
Sistema Operacional FMS 
(FORTRAN Monitor System) 
Cartões de controle: 
*JOB - identifica o usuário. 
*FORTRAN - carrega 
compilador. 
*DATA - executa o programa 
com os dados que seguem. 
Programa é executado em 
sistema BATCH. 
 
 
 
1401 7094 1401
Leitora de
cartões
Unidade
 de FitaEntrada
da Fita
Sistema
de Fitas
Saída
de Fita
Impressora
Um sistema “batch” antigo. ( a ) Programadores levam cartões ao 
1401. ( b ) 1401 lê batch de jobs em fita. ( c ) A operadora acopla fita 
de entrada no 7094. ( d) O 7094 faz o processamento. ( e ) A 
operadora acopla fita de saída no 1401. ( f ) O 1401 imprime a saída. 
Invenção do Sistema 
Operacional 
Evolução do SO - incorpora, além de algumas 
instruções do ISA, tratamento de Entrada/Saída. 
 
 As instruções do SO eram conhecidas por macros 
do SO ou chamadas ao supervisor (atualmente: 
chamadas ao sistema). 
 
 1960 (MIT) - SO com compartilhamento de vários 
usuários (terminais ligados ao computador por 
linhas telefônicas) - Sistemas de Tempo 
Compartilhado. 
Invenção do Sistema 
Operacional 
 1970 - explosão nos conjuntos de instruções das 
máquinas, expandindo-se o microprograma – 
Adicionar “hardware” (novas instruções de máquina) 
por meio de programação. 
 
 Exemplos de novas funcionalidades, instruções para: 
 multiplicação e divisão de inteiros 
 aritmética em ponto flutuante 
 chamada e retorno de procedimentos 
 acelerar a execução de loops 
 manipulação de strings (cadeias) de caracteres 
Migração de funcionalidades 
para o Microcódigo 
 Facilidade da microprogramação  incorporação de 
novas funcionalidades para: 
 acelerar o processamento de programas envolvendo cálculo 
matricial (indexação e endereçamento indireto); 
 permitir que os programas pudessem ser deslocados de 
posição de memória, após o início da execução (realocação); 
 tratar interrupções que enviam um sinal para o processador 
logo que uma operação de E/S termine; 
 suspender a execução de um programa e iniciar a execução 
de outro (troca de contexto entre processos). 
Migração de funcionalidades 
para o Microcódigo 
 
 Décadas de 1960 a 1970 
 Microprogramas cresceram muito. 
 Conseqüência: tornaram-se lentos. 
 
 Retorna a idéia: 
 instruções e funcionalidades executadas por hardware. 
 
A eliminação da 
Microprogramação 
 
 Fronteira entre o hardware e o software pode ser 
arbitrária e está sempre mudando. 
 O que hoje está implementado em software poderá 
em breve estar implementado em hardware, e vice-
versa - O software de hoje pode ser o hardware de 
amanhã e vice-versa. 
 As fronteiras entre os demais níveis não estão bem 
definidas e podem também ser alteradas. 
 
Conclusões: 
 Do ponto de vista do programador, não tem 
muita importância a maneira como uma 
instrução é realmente implementada. 
 
 Programador de um nível, em geral, não deve se 
preocupar com implementações de níveis 
inferiores. 
Conclusões: 
Computador 
 
 É uma máquina cuja função é resolver problemas 
através da execução de instruções fornecidas. 
 
 É constituída basicamente por um conjunto de 
dispositivos eletrônicos e eletromecânicos que permitem 
transmitir, guardar e manipular informações. 
 
 Computadores digitais x computadores analógicos 
Processamento de dados 
 
 tradução do termo inglês Data Processing. 
 
 Consiste em uma série de atividades ordenadamente 
realizadas, com o objetivo de produzir um arranjo 
determinado de informações a partir de outras obtidas 
inicialmente. 
 
 Etapas básicas de um processamento de dados 
 
Dados Processamento 
Resultado: 
informação 
 
Dado:. 
 
 Conjunto de fatos ou valores medidos (numéricos ou 
não) sem significado próprio. Consiste na etapa inicial do 
processamento. 
 Tipos de dados: 
 Numéricos: inteiro, real, etc. 
 Alfanuméricos: nomes, endereços, etc. 
 gráficos: mapas, desenhos, etc. 
 
 sonoros: música, voz, etc. 
Dado x informação 
 Informação: 
 
 Representa o dado devidamente “tratado”. É a etapa final 
do processamento. 
 A informação é o significado que se confere aos dados, 
que pode ser diferente conforme o contexto de aplicação 
dos mesmos. 
Dado x informação 
 Exemplo: 
Elefante 
Processando 
 o dado elefante 
É um mamífero, 
de grande porte, 
e que se alimenta 
de vegetais. 
Dado Resultado: Processamento 
Programa 
 Formado por um conjunto de instruções, as quais 
executadas passo a passo realizam uma determinada 
ação. 
 
 Exemplo: 
 
 operação aritmética; 
 transferência de dados; 
 etc. 
Algoritmo 
 
 “É uma descrição de um padrão de comportamento 
expresso em termos de um repertório bem definido e 
finito de ações ‘primitivas’, as quais damos por certo que 
podem ser executadas”. (Guimarães/Lages) 
 
 O computador necessita de instruções precisas, 
completas e finitas sobre cada passo a executar. 
 
 Exemplo: 
1. Ler o valor numérico para o raio do circulo 
e armazenar na memória; 
2. Calcular o valor da área utilizando da 
fórmula indicada e também armazená-lo 
na memória; 
3. Imprimir e/ou mostrar no vídeo os valores 
dos raios e áreas correspondentes; 
4. Parar. 
Fazer um algoritmo que calcule 
a área de uma circunferência: 
 
Linguagem de 
Máquina x Linguagem 
de alto nível 
Quando o pastor 
rechaça o lobo, o 
rebanho chama o 
pastor de libertador 
mas o lobo chama-o 
de tirano 
 Da-da 
Linguagem de Máquina ou de baixo nível 
 
 A linguagem de um computador é baseado 
em impulsos elétricos (0 = desligado, 1 = 
ligado); 
 
 É uma linguagem de difícil manipulação e 
entendimento pelo ser humano. 
Linguagem de alto nível 
 Foram desenvolvidas linguagens de programação 
próximas do estilo de linguagem humana (Pascal, 
Fortran, C); 
 
 Estas linguagens apresentam uma sintaxe rígida sobre a 
qual são construídas as descrições de cada passo de um 
algoritmo. 
 
 Linguagens de alto nível são transformadas em 
linguagem de computador (linguagem de baixo nível ou 
de máquina) por programas interpretadores ou 
tradutores. 
 
 Linguagem Delphi 
 
Procedure Tform1.TesteAsm; 
Var I, Total: integer; 
Begin 
 Total :=0; 
 For i :=0 to 5 do 
 Total :Total + 10; 
end; 
Exemplos de programas: 
 
 
Push ebp Add dword ptr [ebp-$0c], $0a 
Mov ebp, esp 
Add esp, -$0c Mov [ebp-$08], $00000001 
Mov [ebp-$04],eax 
 Inc dword ptr [ebp-$08] 
Xor eax, eax Cmp dword ptr [ebp-$08], $06 
Mov [ebp-$0c], eax Jnz Tform1.testAsm + $15 
 
 Mov esp, ebp 
 Pop ebp 
 ret 
Linguagem Assembly 
 
 
 
01010101 
000101111101100 
100000111100010011110100 
100010010100010111111100 
0011001111001101 
100010010100010111111100 
1100011101000101111100001000000 
10000011010001011111010000001010 
 
111111110100010111111000 
10000011011111011111100000000110 
0111010111110011 
1000101111100101 
01011101 
11000011 
Linguagem de Máquina 
Software x Hardware 
 Conjunto formado pelos circuitos eletrônicos e 
partes eletromecânicas de um computador. 
 Ainda não há uma tradução adequada para o 
termo hardware. 
 
 Constitui a parte física, visível do computador. 
Hardware 
 Os principais componentes de hardware de um 
sistema computacional podem ser agrupados 
nas seguintes categorias: 
 
Dispositivos de entrada; 
CPU e memória principal; 
Dispositivos de armazenamento ou memória 
auxiliar; 
Dispositivos de saída; 
 
Barramentos de dados, endereços e controle 
CPU M P E/S 
Memória 
Auxiliar 
Cache 
Processador 
 Também conhecido como CPU (Central Processing 
Unit - Unidade Central de Processamento). Noscomputadores pessoais o processador é um único chip, 
chamado microprocessador. 
 O Processador é considerado o componente vital de um 
sistema computacional. 
 Além de executar as ações finais (operações aritméticas 
com os dados) controla quando e o que deve ser 
realizado pelos demais componentes, emitindo os sinais 
de controle. 
Memória 
 Tem como função armazenar dados e/ou 
informações que são (ou serão) manipuladas 
por esse sistema, para que possam ser 
prontamente recuperadas, quando necessário. 
 É dividida em duas categorias: 
 A memória principal, que está conectada 
diretamente ao processador. 
 A memória secundária ou de massa, responsável 
pelo armazenamento de um grande volume de 
dados. 
 Utilizada para guardar dados/informações que estão 
sendo utilizados pela CPU em alguma fase de 
processamento. 
 Essas informações são representadas eletronicamente 
no chip da memória e, enquanto estão na nela, o 
computador pode acessá-los diretamente. 
 Tipos: Memória RAM; Memória ROM; Memória 
CACHE. 
 Memória Principal 
 Significa Random Access Memory ou Memória de 
Acesso Aleatório. 
 É a memória de trabalho da CPU. 
 São fabricadas em forma de Circuitos Integrados. 
 A informação armazenada nessa memória é apenas 
temporária  memória volátil 
 Quanto mais memória RAM o computador possuir, 
mais ele poderá fazer ou maior será a velocidade de 
processamento. 
Memória RAM 
 Significa Read Only Memory ou memória somente de 
leitura. 
 Nela estão contidos os códigos básicos de operação do 
equipamento, suas rotinas de inicialização e auto-teste 
 Forma o sistema básico de entrada e saída (BIOS) da 
máquina. 
 A informação armazenada nessa memória é 
permanente  memória não volátil. 
Memória ROM 
 É uma memória de alta velocidade (comparável à da 
CPU) e de capacidade menor que a MP. 
 Está localizada, logicamente, entre a CPU e a MP para 
armazenar dados e instruções que deverão ser 
imediatamente utilizados pela CPU. 
 Tem por finalidade acelerar o processamento do 
sistema CPU/MP. 
 Esta memória passou a existir a partir das placas 386 
DX de 25MHz. 
Memória CACHE 
Memória Secundária 
 
• Também conhecida como memória auxiliar ou memória de 
massa. 
• É um tipo de memória utilizada para um armazenamento mais 
permanente de toda a estrutura de dados e programas do usuário. 
• Possui uma capacidade maior que a da MP, com tempo de 
acesso mais elevado. 
• Ex.: disquetes, disco rígido, fitas magnéticas, CD-ROM, etc. 
Disco rígido (Hard Disk ou Winchester) 
 
 
• São discos magnéticos formados por várias chapas de alumínio 
que giram em altíssima velocidade. 
 
• Cada chapa de alumínio tem um cabeçote de leitura que faz a 
leitura e a gravação de dados. 
 
• Permite um acesso rápido e o armazenamento de uma grande 
quantidade de Informações. 
 
• É importante lembrar que estes discos podem ser danificados por 
excesso de trepidação no local de instalação. 
 
CD 
 
• Os discos ópticos utilizam a tecnologia do raio-laser. 
 
• Podem ser divididos em: 
 
• CD-ROM 
 
• ROM é a sigla de Read Only Memory - Memória apenas de 
leitura; 
 
• Não nos permite gravar nada em seu interior, apenas 
consultar seus dados. 
 
 
• CD-WORM 
 
• WORM é a sigla de Write Once Memory - Memória de 
apenas uma gravação - os CDs regraváveis. 
 
• Utilizam um drive de CD diferente do de CD-ROM. 
 
• CD-R/W 
 
• Utilizam um drive de CD diferente do de CD-ROM. 
 
• Os CDs possuem grande capacidade de armazenamento (acima 
de 650 MB) 
DVD 
 
• Inicialmente era chamado Digital Video Disk. 
 
• Atualmente, Digital Versatile Disk 
 
• Por ser mais compacto que os CD´s, pode alcançar a marca dos 
4.7 GB de armazenamento. 
 
• Opera a velocidades mais elevadas que os CD´s (1,4 MB/s contra 
150 KB/s, para a velocidade 1x). 
Dispositivos de Entrada/Saída 
 Entrada/Saída (E/S) compreende todas as maneiras como o 
computador se comunica com os usuários e outras máquinas ou 
dispositivos. 
 
 
 Sem E/S, o computador ficaria isolado do mundo. Ele não 
conseguiria receber instruções e, mesmo que tivesse instruções 
permanentemente inseridas em sua memória, não teria como 
comunicar os resultados de seu trabalho. 
 
• Exemplos de dispositivo de entrada: Teclado, mouse, leitores ópticos 
ou leitores a laser (leitores para códigos de barras), scanners, 
sensores, light pen, mesas digitalizadoras, câmaras CCD (charge 
coupled device), filmadoras, WEB câmaras e outros. 
 
• Exemplos de dispositivo de saída: Impressoras (matricial, laser, jato 
de tinta), Monitor (CGA, SVGA) 
 
• Portas Paralelas 
 
• É uma interface de comunicação entre o computador e um periférico. 
 
• Foi inicialmente concebido pela IBM para conectar impressoras. 
 
•Conhecendo-se um pouco de eletrônica e dominando uma linguagem 
de programação como: C/C++/C++ Builder, Pascal/Delphi ou mesmo 
o Visual Basic, é possível desenvolver um programa que controle um 
aparelho conectado à Porta paralela, ou um programa de transferência 
de arquivos entre dois computadores, utilizando um cabo paralelo 
como meio de transmissão. 
Barramento (Bus) 
 
 É o caminho de comunicação entre a CPU e os demais 
componentes de um computador, ou sistema 
computacional. 
 
 Todo computador tem três tipos de barramentos: 
 O barramento de endereço; 
 O barramento de dados; 
 O barramento de controle. 
 
 Outra Classificação: 
 Barramento Local; 
 Barramento do Sistema; 
 Barramento de Expansão. 
Software 
 É considerado a parte lógica de um sistema de computação; 
 
 O hardware sozinho não funciona sem instruções (software) 
sobre o que e quando fazer. 
 
 O software consiste em programas, de qualquer tipo e em 
qualquer linguagem, que são introduzidos na máquina para 
fazê-la trabalhar, passo a passo, e produzir algum resultado. 
 
• Divide-se em dois grupos básicos: 
 
• Softwares aplicativos. 
• Softwares básicos. 
• Software básico 
 
• É uma coleção de programas escritos para dar apoio a outros 
programas. 
 
• Características: 
• forte interação com o hardware do computador; 
• intenso uso por múltiplos usuários; 
• compartilhamento de recursos e sofisticada administração do 
processo; 
• estruturas de dados complexas; 
• múltiplas interfaces externas. 
 
• Exemplos: sistemas operacionais, compiladores. 
• Softwares Aplicativos: 
 
• São programas desenvolvidos pelo usuário ou por terceiros, que 
são dedicados a uma aplicação. 
 
• Algumas categorias: 
• Aplicações comerciais (editores de texto, planilhas 
eletrônicas, banco de dados, aplicações gráficas, etc); 
• Utilitários (ampliam os recursos de um sistema operacional, 
ex.: Norton Utilities) 
• Aplicações pessoais (destinados a simplificar as tarefas 
pessoais. Ex.: agendas pessoais, “internet”) 
• Aplicações de entretenimento 
UNIDADE 
ARITMÉTICA 
E 
LÓGICA 
 
 
MEMÓRIA 
UNIDADE 
 DE 
CONTROLE 
ACC 
ACC = Acumulador 
ENTRADA 
SAÍDA 
A máquina de Von Neumann

Outros materiais