Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Computadores Aula 05-06 – Máquinas Multiníveis Prof. Sand Luz Corrêa Roteiro ● Computador Digital ● Linguagem de Máquina ● Tradução e Interpretação ● Máquina Multinível ● Conjunto de Instrução Computador Digital ● Conjunto de circuitos eletrônicos capaz de resolver problemas através de instruções que lhe são passadas. ● Por questões de custo, os circuitos de cada computador são capazes de executar diretamente apenas um conjunto simples e limitado de instruções: ● Capturar valores a partir de uma porta de entrada ● Executar operações aritméticas e lógicas ● Mover dados de um local para outro ● Mover valores para uma porta de saída . Linguagem de Máquina ● O conjunto de instruções que o computador executa diretamente forma uma linguagem com a qual as pessoas podem se comunicar com a máquina. ● Essa linguagem é chamada Linguagem de Máquina. ● A Linguagem de máquina de um computador é definida no projeto de seu processador e a escolha das instruções envolve 2 critérios: ● Simplicidade ● Desempenho Linguagem de Máquina ● Toda linguagem é formada por um conjunto de símbolos ● Caracteres alfanuméricos maiúsculos ou minúsculos, caracteres numéricos, símbolos de pontuação, etc ● Como os computadores surgiram para resolver problemas matemáticos de forma rápida e confiável: ● Optou-se por representar internamente os dados e as instruções através de algarismos ● Sinais elétricos (um sinal de voltagem ou corrente) são convertidos em algarismos ● Logo, precisamos de um valor de tensão para cada algarismo Linguagem de Máquina Algarismo Nível de tensão 0 +1.0V 1 -1.0V 2 +1.5V 3 +2.0V 4 +0.5V 5 -1.5V 6 -2.0V 7 +2.5V 8 +3.0V 9 -2.5V ● Problema: ● P a r a u m a f a i x a estreita de tensão – Valores próximos – Pouca confiabilidade ● Para uma faixa de tensão larga – Maior consumo de energia – Maior dissipação de calor Linguagem de Máquina ● Solução ● Codificação de símbolos via algarismos usando o sistema binário ● Vantagens – Apenas dois valores para ser representados: 0 e 1 – É possível trabalhar com uma faixa estreita de tensões – Muitos componentes eletrônicos básicos são binários ● Deixa ou não passar corrente ● Chaves abertas ou fechadas ● Campos magnéticos orientados para sul ou para o norte Linguagem de Máquina ● Resumindo: ● Linguagem compreendida pelo hardware do computador ● É formada por instruções representadas por símbolos 0 ou 1 ● 0 e 1 são normalmente chamados de dígito binário ou bit Linguagem de Máquina ● Por ser muito simples (simplificada, básica) é difícil programar aplicações usando linguagem de máquina. ● Por esse motivo, usamos linguagem de alto nível para desenvolver programas (C,Java, C++,Python,PHP,Ruby,etc.). ● Todo programa escrito em linguagem de alto nível deve ser convertido em linguagem de máquina antes de ser executado. Linguagem de Máquina e Linguagem de alto nível Tradução e Interpretação ● Há duas formas de fazer tal conversão ● Sejam: ● L1: uma linguagem de alto nível ● L0: uma linguagem de máquina Tradução e Interpretação ● 1a. Forma: ● Tradução: – Substitui cada instrução em L1 por uma sequência de instruções em L0, criando um novo programa. – O programa resultante é completamente formado por instruções em L0. – O programa em L0 é executado Tradução e Interpretação ● 2a. Forma: ● Interpretação: – um programa escrito em L0 toma o programa L1 como entrada – O programa escrito em L0 é denominado interpretador – Para cada instrução de L1, o interpretador executa uma sequência de inst ruções equivalentes em L0 ______ ____ ______ ___ _____ Compilador 0001 1001 0010 1010 1111 ______ ____ ______ ___ _____ Interpretador 0001 Compilação Interpretação Código Fonte Código Binário Código Fonte Instrução Binária Próxim a Instru ção Tradução e Interpretação Linguagem Tradução Interpretação Desempenho Maior Menor Portabilidade Menor Maior Facilidade de Teste/depuração Menor Maior Tradução e Interpretação ● Tradução e Interpretação são amplamente usados ● Exemplo de Linguagens que utilizam tradução ● ADA, Pascal, C, C++, C#, Delphi, Fortran, Visual Basic ● Exemplo de L inguagens que ut i l izam interpretação ● Smalltalk, Python, Lua, PHP, Ruby ● Exemplo de Linguagens que utilizam ambos ● Java Máquina Multinível ● Um computador moderno pode ser entendido como uma máquina com n níveis. Máquina Multinível Linguagem de Máquina Linguagem Assembly Linguagem C Ruby DSL(Domain Specific Language) Máquina Multinível Contemporânea Linguagens orientadas a problemas Linguagem de montagem Sistema Operacional Arquitetura do conjunto de instrução Microarquitetura Lógica digital Nível 5 Nível 4 Nível 3 Nível 2 Nível 1 Nível 0 Hardware Software Máquina Multinível ● Nível -1: Nível dos Dispositivos Máquina Multinível ● Nível 0: Lógica Digital Máquina Multinível ● Nível 1: Microarquitetura ● Nível dos registradores, unidade de aritmética e lógica, sinais controle, etc. Máquina Multinível ● Nível 2: Arquitetura do Conjunto de Instrução ● Determina as instruções de máquina que são executadas diretamente pelo hardware Máquina Multinível ● Nível 3: Sistema Operacional ● Fronteira entre hardware e software. ● Oferece : – novas abstrações e instruções – organização diferente para a memória principal – a capacidade de executar 2 ou mais programas de forma concorrente Máquina Multinível ● Nível 4: Linguagem de Montagem ● Primeiro nível orientado a programadores comuns. ● Oferece uma linguagem simples orientada a utilização humana (mnemônicos) – Linguagem Assembly. Máquina Multinível ● Nível 5: Linguagens Orientadas a Problemas ● Formado pelas linguagens de alto nível, usadas nas soluções de problemas (aplicações). C, C++, Java, Python, Lua, PHP. Bibliografia ● Capítulo 1 do Livro Organização Estruturada de Computadores, Andrew Tanenbaum, 5a. Edição, Prentice-Hall Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27
Compartilhar