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

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


DisciplinaArquitetura de Computadores3.609 materiais28.371 seguidores
Pré-visualização4 páginas
ou interpretados para L0 e 
executados em M0. 
Outra solução: 
\uf06e Na prática se implementa a solução 2. 
 
\uf06e As pessoas escrevem programas para 
máquinas virtuais como se elas realmente 
existissem. 
 
\uf06e Muitos níveis de máquinas virtuais podem ser 
implementados. 
 
\uf06e 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 \u2013 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). 
 
\uf06e Nível mais baixo da estrutura. 
 
\uf06e Objetos de interesse são conhecidos como portas 
lógicas. 
 
\uf06e 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,... 
 
\uf06e Portas lógicas são combinadas para formar 
memórias de um bit \uf0ae registradores \uf0ae o 
processador - principal dispositivo do computador. 
Nível 0: Nível da Lógica 
Digital 
 
\uf06e Uma memória local (8 a 32 registradores) e a UAL 
(Unidade Aritmética Lógica) que realiza operações 
aritméticas muito simples. 
 
\uf06e Registradores - conectados a UAL formando o 
caminho dos dados. 
 
\uf06e Operações são controladas por um microprograma 
ou diretamente por hardware. 
 
\uf06e 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 
 
\uf06e Nível ISA - Instruction Set Architecture. 
\uf06e Definida pelo fabricante e dependente da arquitetura 
da máquina. 
\uf06e Fabricantes disponibilizam \u201cManual de Referência da 
Linguagem de Máquina\u201d ou \u201cPrincípios de operação 
do Computador Modelo XYZW\u201d (ou algo similar). 
\uf06e Manuais descrevem como as instruções são 
executadas interpretativamente pelo microprograma 
ou como são executadas diretamente pelo hardware. 
\uf06e 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 
 
\uf06e Instruções da linguagem deste nível também podem 
conter instruções do nível ISA. 
\uf06e Suporta uma organização diferente de memória. 
\uf06e Suporta capacidade de rodar 2 ou mais programas 
simultaneamente. 
\uf06e Suporta sistemas de comandos ou de janelas 
(windows). 
\uf06e Programadores deste nível, e também dos níveis 
mais baixos, são conhecidos como programadores 
de sistema. 
\uf06e Os programadores dos níveis mais altos que este 
são chamados programadores de aplicação. 
 
Nível 3: Nível do Sistema 
Operacional 
\uf06e Linguagem de montagem: forma simbólica de 
representação das linguagens do nível mais baixo. 
 
\uf06e 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. 
 
\uf06e Programa que realiza a tradução - montador. 
 
Nível 4: Nível da linguagem 
do montador ou de montagem 
(Assembly language) 
\uf06e Conhecidas como linguagens de alto nível. 
Exemplos: Basic, C, Pascal, Java, LISP, .... 
 
\uf06e Programas são geralmente traduzidos para os 
níveis 3 e 4 por compiladores. 
 
\uf06e Alguns são interpretados: Exemplos: programas em 
Java, MatLab, ... 
 
Nível 5: Nível das linguagens 
orientadas para solução dos 
problemas 
 
\uf06e Computadores são projetados como uma série de 
níveis, cada um deles construído em cima de seus 
precursores. 
 
\uf06e Cada nível representa uma abstração distinta, com 
diferentes objetos e operações. 
 
\uf06e 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: 
\uf06eConjunto de tipos de dados, operações 
e características de cada um dos 
níveis - arquitetura do nível. 
 
\uf06e 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 \u2013 fronteira 
entre o hardware e o software era 
muito clara. 
 
\uf06e Atualmente \u2013 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. 
 
 
\uf06e Qualquer operação realizada por software pode ser 
realizada diretamente por hardware. 
 
\uf06e Qualquer instrução executada por hardware pode 
ser simulada em software. 
 
\u201cO hardware é simplesmente o software petrificado\u201d 
Evolução das máquinas de 
vários níveis 
 
\uf06e Fatores que influenciam na decisão de se colocar 
funções em hardware ou software: 
\uf0a8 Custo 
\uf0a8 Velocidade 
\uf0a8 Confiabilidade 
\uf0a8 Freqüência esperada de mudanças 
 
\uf06e 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 
 
\uf06e Década de 40 - Primeiros computadores: 
\uf0a8 2 níveis - Nível ISA + Nível da Lógica Digital 
 
\uf06e Década de 50 
\uf0a8 Idéia de construção de um computador de 3 níveis \u2013 
simplificação de hardware 
\uf0a8 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 
\uf06e Década de 1960 - surgiram muitas máquinas com a 
filosofia de 3 níveis. 
 
\uf06e 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. 
 
 
\uf06e Primórdios: 
\uf0a8 Computadores eram operados e gerenciados pelo 
próprio programador . 
\uf0a8 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; 
 
\uf06e Programa é executado. Se há erro de lógica, 
corrige e volta ao passo 1. 
Exemplo de execução de um 
programa em FORTRAN 
\uf06e Por volta de 1960, foi criado o Sistema 
Operacional (SO). 
 
\uf06e Objetivo: facilitar a operação do computador. 
 
\uf06e O Sistema operacional era mantido na memória 
do computador durante todo o tempo de 
utilização. 
 
\uf06e 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 Fita