Arquitetura e Organização de computadores Aula 1: Organização e evolução de computador, parte 1 Prof. MSc. Pedro Brandão Neto pedroobn@gmail.com Sistemas de Informação - UNDB
Introdução Computador Digital Máquina que pode resolver problemas através de instruções que lhe são dadas Um conjunto de instruções que descreve como realizar certa tarefa é denominado programa Por exemplo Some dois números Verifique se um número é zero 2
Introdução Circuitos eletrônicos de cada computador Reconhecem e executam diretamente um conjunto limitado de instruções simples Um programa para ser executado precisa ser convertido em instruções simples Tais instruções, que são primitivas, formam uma linguagem de máquina através da qual pessoas podem de certa forma utilizar Linguagens de máquinas são difíceis e entediantes 3
Introdução A linguagem de máquina deve ser o mais simples possível Reduz complexidade e custo de produção Computadores são estruturados utilizando uma série de abstrações, cada uma acumulando-se à aquela que lhe precede. Assim, sistemas de computação podem ser projetados de modo estruturado, sistemático. Organização estruturada de computadores 4
Máquinas Multiníveis 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) 5
Máquinas Multiníveis Problema Complexidade do que as pessoas precisam fazer versus simplicidade do conjunto de instruções do computador 6
Máquinas Multiníveis Solução Criar uma hierarquia de abstrações de níveis mais altos baseados nos níveis mais baixos R Criar uma organização estruturada de computadores para facilitar a comunicação homem-máquina 7
Máquinas Multiníveis As pessoas querem fazer X, mas os computadores só podem fazer Y 8
Linguagens, níveis e máquinas reais Projetar um novo conjunto de instruções que seja mais conveniente para as pessoas usarem do que o conjunto de instruções que já vem embutido na máquina Essas novas instruções formam uma linguagem denominada de L1. Já as instruções de máquina formam a linguagem L0 Um computador só pode executar programas escritos em sua linguagem de máquina, L0 Como compatibilizar L1 com L0? Existem 2 soluções (tradução e interpretação) usar um tradutor usar um interpretador 9
Linguagens, níveis e máquinas reais Técnica de Tradução Cada instrução, na linguagem L1, é substituída por uma sequência equivalente de instruções em L0 O programa resultante consiste inteiramente em instruções L0 Então, o computador executa o novo programa L0 Programa pode ser traduzido uma única vez e executado várias vezes 10
Linguagens, níveis e máquinas reais Técnica de Interpretação Um programa em L0 recebe como entrada instruções em L1 e as executam examinando cada instrução por vez e executando diretamente a sequência equivalente de instruções L0 Essa técnica não requer a geração prévia de um novo programa em L0, e O programa que executa esta técnica é chamada de interpretador 11
Linguagens, níveis e máquinas reais Tradução e Interpretação São semelhantes Na tradução, todo o programa em L1 é antes convertido para um programa L0, o qual é carregado na memória Na interpretação, após o exame e a decodificação de cada instrução em L1, ela é executada imediatamente Nenhum programa traduzido é gerado 12
Linguagens, níveis e máquinas reais Ao invés de pensar em termos de tradução ou interpretação, é mais fácial imaginar a existência de um computador hipotético M1, com a linguagem de máquina L1, ou de uma máquina real M0, com a linguagem L0) Se não fosse custoso contruir uma máquina M1 não haveria a necessidade de ter linguagem L0 ou uma máquina que executasse programas em L0 13
Linguagens, níveis e máquinas reais Existe também um conjunto de instruções mais dirigido a pessoas e menos a máquinas do que L1, a linguagem L2 (com a máquina real M2) As pessoas podem escrever programas em L2 exatamente como se de fato existisse uma máquina real com linguagem de máquina L2 Esses programas podem ser traduzidos para L1 executados por um interpretador escrito em L1 ou 14
Linguagens, níveis e máquinas reais A invenção de toda uma série de linguagens, cada uma mais conveniente do que suas antecessoras, pode continuar até que se chegue a uma adeguada Cada linguagem usa a antecessora como base. Essa técnica pode ser visualizada como uma série de camadas ou níveis, um sobre o outro A linguagem ou nível que fica mais embaixo é a mais simples e a que fica mais em cima é a mais sofisticada 15
Máquina multinível 16
Linguagens, níveis e máquinas reais Cada máquina tem uma linguagem de máquina, que consiste em todas instruções que a máquina pode executar Uma pessoa que escreve programas para a máquina real de nível n não precisa estar ciente dos interpretadores e tradures subjacentes A maioria dos programadores que usam uma máquina de nível n está interessada apenas no nível superior, aquele que menos se assemelha à linguagem de máquina que está no mais inferior Todavia, que se interessa em entender como um computador realmente funciona deve estudar todos os níveis 17
Máquinas Multiníveis Contemporâneas Nível 5 Nível de Linguagem Orientada a Problemas Tradução (compilador) Nível 4 Nível de Linguagem de Montagem (Assembly) Tradução (montador ou assembler) Nível 3 Nível de Máquina de Sistema Operacional Interpretação parcial (sistema operacional) Nível 2 Nível de Arquitetura de Conjunto de Instruções Interpretação (microprograma) ou execução direta Nível 1 Nível de Microarquitetura Nível 0 Hardware Nível de Lógica Digital 18
Atividade 1 1. Discorra sobre Hardware X Software 19
Fim!