Arquitetura de Computadores 1



Documentos relacionados
Organização e Arquitetura de Computadores I. de Computadores

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

Computador Digital Circuitos de um computador (Hardware)

- Aula 1 - ARQUITETURA DE COMPUTADORES

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Introdução à Engenharia de Computação

Figura 1 - O computador

Sistema de Computação

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Capítulo 1 Introdução

Introdução à Arquitetura de Computadores

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

ARQUITETURA DE COMPUTADORES

Introdução à Arquitetura de Computadores IFES Campus Serra

Organização de Computadores 1. Prof. Luiz Gustavo A. Martins

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Sistemas Operacionais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Máquina Multinível. Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa.

3. Arquitetura Básica do Computador

Edeyson Andrade Gomes

SIS17-Arquitetura de Computadores

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

ALP Algoritmos e Programação. . Linguagens para Computadores

Máquinas Multiníveis

Bibliografia. Avaliações. Disciplina: Organização de Computadores Carga Horária 60 horas/aula Prof. Glauco Paparoto

1 MÁQUINAS VIRTUAIS, MÁQUINAS MULTINÍVEL E LINGUAGENS

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

ARQUITETURA DE COMPUTADORES

Arquitetura e Organização de Computadores

Disciplina: Introdução à Informática Profª Érica Barcelos

1.1. Organização de um Sistema Computacional

Introdução aos Computadores

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)


BARRAMENTO DO SISTEMA

Sistemas Computacionais II Professor Frederico Sauer

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Sistemas Operacionais

Aula 26: Arquiteturas RISC vs. CISC

Prof. Sandrina Correia

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de / 25

INFORMÁTICA - BICT (noturno)

Sistemas Operacionais

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

MC-102 Aula 01. Instituto de Computação Unicamp

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

Componentes do Computador e. aula 3. Profa. Débora Matos

1. NÍVEL CONVENCIONAL DE MÁQUINA

Universidade Federal do Piauí Centro de Tecnologia Curso de Engenharia Elétrica. Prof. Marcos Zurita

Introdução à Informática

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

5 Entrada e Saída de Dados:

ARQUITETURA DE COMPUTADORES

Introdução à Engenharia de Computação

Disciplina: Organização de computadores

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

Visão Geral de Sistemas Operacionais

Informática I. Aula 4. Aula 4-11/09/2006 1

1 - Processamento de dados

Sistemas Operacionais. Revisando alguns Conceitos de Hardware

ULA Sinais de Controle enviados pela UC

Organização de Computadores

Arquitetura de Von Neumann e os Computadores Modernos

UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Curso de Introdução à Informática Prof: Anilton Joaquim da Silva / Ezequiel Roberto Zorzal

Informática I. Aula 5. Aula 5-13/05/2006 1

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

LÓGICA DE PROGRAMAÇÃO

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Everson Scherrer Borges João Paulo de Brito Gonçalves

Programação de Computadores III

Estrutura geral de um computador

Escola Secundária de Emídio Navarro

Fundamentos de Sistemas Computacionais Introdução

Arquitetura de Computadores

Algoritmos. Cláudio Barbosa

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Barramentos - BUS. Professor Especialista: Airton Ribeiro de Sousa

Introdução à Lógica de Programação

Estrutura de um Computador. Linguagem de Programação Rone Ilídio UFSJ - CAP

SISTEMAS OPERACIONAIS 2007

Organização e Arquitetura de Computadores I. Introdução. Ivan Saraiva Silva Leonardo Casillo

28/9/2010. Unidade de Controle Funcionamento e Implementação

Introdução à Computação: Arquitetura von Neumann

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Nível da Microarquitetura

Microprocessadores. Prof. Leonardo Barreto Campos 1

Arquitetura e Organização de Computadores Introdução à Organização do Computador

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

Estrutura de um Computador

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Transcrição:

Prof. João Marcelo M Fernandes TANENBAUM, Andrew S. Organização Estruturada de computadores 4a Edição. Rio de Janeiro: Printice-Hall do Brasil, 2001

Agenda do Curso Organização estruturada de computadores Semana 01 (03/08/) Introdução - Linguagens, níveis e máquinas virtuais Maquinas Multiníveis Contemporâneas nível de lógica digital, nível de microarquitetura, nível de arquitetura de conjunto de instruções, nível de máquina de sistema operacional, nível de linguagem assembly, nível de linguagem orientada ao problema. Organização estruturada de computadores Semana 02 (20/08/) Histórico e evolução dos computadores - Evolução das Máquinas Multiníveis microprograma, a invenção do sistema operacional, microcódigo, a eliminação da microprogramação. Organização de sistemas computacionais Semana 03 (27/08/) - Processadores organização de CPU, execução de instrução, princípios de projetos para computadores modernos, paralelismo no nível de instrução, paralelismo no nível de processador

Agenda do Curso Organização de sistemas computacionais Semana 04 (03/09/) - Memória Primária: endereços, ordenação dos bytes, códigos de correção de erros, memória cache. Apresentação de Equipes (Memória Secundária) Semana 05 (10/09/) Revisão e Exercícios Semana 06 (17/09/) Prova AP1 Semana 07 (24/09/) Apresentação de Equipes (Dispositivos de E/S) Semana 08 (01/10/) Nível Lógico Digital Parte I Semana 09 (08/10/) Revisão da matéria de Sistemas Digitais Clocks RAMS, ROMs Chips de memória

Agenda do Curso Dia dos Professores Semana 10 (15/10/) Nível Lógico Digital Parte II Semana 11 (22/10/) Organização de memória Chips de CPU Exemplos de microprocessadores Barramentos: largura, temporização, operação Exemplos de barramentos: ISA, PCI, USB Interfaceamento de E/S: chips de E/S, decodificação de endereço Nível de microarquitetura Parte I (microprogramação) Semana 12 (29/10/) Exemplo de microarquitetura: fluxo de dados, temporização do fluxo de dados Exemplo de microarquitetura: operação de memória, microinstruções Exemplo de microarquitetura: controle por microinstrução: o Mic-1 Exercícios relacionados com o material apresentado

Agenda do Curso Nível de microarquitetura Parte II Semana 13 (05/11/) Exemplo de macroarquitetura Exemplo de implementação: microinstruções e notações Exercícios relacionados com o material apresentado Nível de microarquitetura (microprogramação) Semana 14 (12/11/) Implementação da máquina virtual do nível ISA usando Mic-1 Projeto do nível de microarquitetura apresentado de forma introdutória: velocidade versus custo, redução de fluxo de execução, pipeline. Revisão e Exercícios Semana 15 (19/11/) Prova AP2 Semana 16 (26/11/) Entrega de Notas Semana 17 (03/12/) Prova Substitutiva Semana 18 (10/12/) Prova Final Semana 19 (17/12/)

Tópicos Trabalho Semestral TÓPICO 1 - MEMÓRIA SECUNDÁRIA HIERARQUIAS DE MEMÓRIAS DISCOS MAGNÉTICOS DISCOS FLEXÍVEIS TÓPICO 2 - MEMÓRIA SECUNDÁRIA DISCOS IDE DISCOS SCSI RAID TÓPICO 3 - MEMÓRIA SECUNDÁRIA CD-ROMS CDS GRAVÁVEIS CDS REGRAVÁVEIS TÓPICO 4 - MEMÓRIA SECUNDÁRIA DVDS BLU - RAYS

Tópicos Trabalho Semestral TÓPICO 5 - ENTRADA/SAÍDA BARRAMENTOS TERMINAIS TECLADOS MONITORES CRT VÍDEOS DE TELA PLANA TÓPICO 6 - ENTRADA/SAÍDA TERMINAIS MAPEADOS A CARACTER TERMINAL MAPEADO A BIT TERMINAIS RS-232-C TÓPICO 7 - ENTRADA/SAÍDA MOUSES IMPRESSORAS MONOCROMÁTICAS COLORIDAS TÓPICO 8 - ENTRADA/SAÍDA MODEMS EQUIPAMENTOS TELECON CÂMERAS DIGITAIS

Introdução Visão Geral O computador : É uma máquina que serve para solucionar problemas. Executa programas - Conjunto de instruções que descrevem como realizar uma tarefa.

Introdução Arquitetura de Computadores Tem como objetivo lidar com o comportamento funcional de um sistema computacional do ponto de vista do programador. São os atributos do sistema que são visíveis a este: Ex.: Conjunto de instruções, número de bits usados para representação de dados, mecanismos de E/S, técnicas de endereçamento, etc. 1. Tamanho dos tipos de dados (ex.: usar 16 bits para representar um inteiro) e as operações que ocorre sobre esses dados (+,-,*,/,chamadas de rotinas e etc.) 2. Existe uma instrução de multiplicação?

Introdução A organização de Computadores Trata dos aspectos que são transparentes ao programador. Refere-se às unidades operacionais e suas interconexões que implementam sua arquitetura: Sinais de controle, interfaces entre o computador e os periféricos, tecnologia de memória, tamanho da memória física, frequência de clock, etc. ex: Existe uma unidade de multiplicação no hardware ou esta é implementada através do uso sucessivo do mecanismo de soma?

Introdução Os circuitos de um computador (Hardware) Reconhecem e executam um conjunto limitado e simples de instruções (linguagem de máquinabinária) Ex.: soma, comparação, transferência de dados de uma parte da memória para outra parte

Introdução Breve Resumo: Computador é uma máquina que resolve problemas para as pessoas a partir de instruções que lhe são fornecidas. Programa é a seqüência de instruções que descreve como realizar determinada tarefa. Circuitos Eletrônicos reconhecem e executam um conjunto de instruções simples. Para que o programa execute, deve ser convertido em instruções simples.

Introdução Linguagem de Máquina são instruções primitivas. Linguagem que a máquina entende, possibilita a comunicação. Essas instruções ficam a cargo de quem projeta um novo componente ou um novo computador.

Introdução Instruções da linguagem de máquina (decidida pelos projetistas de computadores) devem: ser simples ser compatível com o uso da máquina ser compatível com a performance requerida 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)

Introdução Organização Estruturada de Computadores uma maneira de estruturar os computadores como uma série de abstrações. Sistemas de Computação sendo projetados de modo estruturado e sistemático.

1.1 Organização Estruturado de Computadores Grande Lacuna:? É melhor, Conveniência para as pessoas Conveniência para os computadores O que as pessoas precisam fazer é complexo e o conjunto de instruções do computador é simples Pessoas querem X, mas computadores só podem Y (Resultado Problema)

Exemplo: o usuário quer calcular a correção da trajetória de um foguete saindo da terra 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 baseadas nos níveis mais baixos. Criar uma organização estruturada de computadores para facilitar a comunicação homemmáquina

1.1.1 Linguagens, níveis e máquinas reais O Problema pode ser abordado de duas formas: I. Projetar um novo conj. De instruções que seja mais conveniente para as pessoas, do que as instruções da máquina L1. As instruções de máquina formam a linguagem L0.

L1: linguagem natural, do usuário (alto nível e complexa) L0: linguagem da máquina (baixo nível e simples) Programas escritos em L1 de alguma forma tem que se transformar em L0.(Máquinas só entendem linguagens de máquina) ou seja, Como compatibilizar L1 com L0? Temos 2 soluções: usar um tradutor usar um interpretador

Métodos de Leitura: 1 Introdução I.Tradução: 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

II. Interpretação: Cada instrução de L1 é substituída por um conjunto de instruções equivalentes de L0 Processador executa 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

Analogia: Tradução (Traduzir um texto do inglês para o português e depois interpreta) Interpretação (Ler um texto e o interpreta direto) Em ambos os métodos o computador faz instruções em L1 que realizam seqüências equivalentes em L0. A diferença é que na tradução, todo programa L1 é antes convertido em L0.(L1 é descartado e L0 é carregado na memória) Na interpretação, após a decodificação de L1, ela é executada. (nenhum programa traduzido é gerado) Observação: Pode ser utilizada uma metodologia híbrida: tradutor + interpretador.

Máquina Multinível Em vez de pensar em tradução e interpretação, muitas vezes é mais simples imaginar 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)

Máquina Multinível Os programas poderiam ser escritos em L1, para a máquina M1 e: serem executados diretamente em M1 se esta máquina fosse de custo de construção baixo, ou serem traduzidos ou interpretados para L0 e executados em M0

Máquina Multinível Na prática geralmente se implementa a solução 2 do slide anterior. As pessoas escrevem programas para máquinas virtuais como se essas máquinas realmente existissem.

Máquina Multinível Cada linguagem Ln usa a antecessora como base, de modo que podemos considerar um computador que use essa técnica como uma série de níveis. (o nível mais baixo é mais simples do que os de cima)

Nível n Máquina real Mn, com linguagem de máquina Ln Programas em Ln são interpretados por um interpretador que roda em uma Máquina de nível inferior, ou são traduzidos para a linguagem de máquina de uma máquina de nível inferior.... Nível 2 Máquina real M2, com linguagem de máquina L2 Programas em L2 são interpretados por interpretadores que rodam em M1 ou M0, ou são traduzidos para L1 ou L0 Nível 1 Nível 0 Máquina real M1, com linguagem de máquina L1 Máquina real M0, com linguagem de máquina L0 Programas em L1 são interpretados por um interpretador que roda em M0, ou são traduzidos para L0 Programas em L0 podem ser executados diretamente pelos circuitos eletrônicos

Interesse Nível mais Alto: A maioria dos Programadores Nível mais Baixo: Projetistas de novos computadores ou máquinas reais

Máquinas Multiníveis contemporâneas A maioria dos computadores modernos tem dois ou mais níveis. Computador de 6 níveis. Abaixo de cada nível está indicado o método de suporte.

Máquinas Multiníveis contemporâneas Nível 0: Nível da Lógica Digital Nível mais baixo da estrutura Objetos de interesse são conhecidos como portas lógicas Cada porta lógica tem 1 ou mais entradas digitais (aceitam 0 ou 1) e calculam funções lógicas simples sobre essas entradas. Exemplo: AND, OR, NOT... Portas lógicas são combinadas para formar o Processador - principal dispositivo do computador Pode combinar para formar memória de 1bit (0 ou 1), essas memórias podem ser combinadas em 16, 32, 64 para formar registradores.

Um registrador pode conter de um único número binário até algum valor máximo. (Portas lógicas e Registros serão vistos com mais detalhes no capitulo 3) Nível 1: Nível da Micro arquitetura Enxergamos uma memória local (8 a 32 registradores) e a UAL (Unidade Aritmética Lógica) que realiza operações aritméticas muito simples Os registradores são conectados a UAL formando o caminho dos dados Operações são controladas por um micro programa ou diretamente por hardware Micro programa é um interpretador para as instruções do nível 2. Ex.: A ALU seleciona dois registros, faz uma operação (+,-...) e guarda o resultado em um deles.

A função do micro programa é interpretar as instruções de nível 2. Poucas são as máquinas que têm mais de 20 instruções no nível do micro programa, e a maior parte destas instruções envolve a movimentação de dados de uma parte da máquina para outra ou alguns testes simples.

A microprogramação é utilizada especialmente nas máquinas classificadas de CISC Complex Instruction Set Computer. Este tipo de máquina implementa instruções complexas correspondentes ao nível 2. Isto tende a facilitar a programação de compiladores de uma linguagem de alto nível específica, mas de uma maneira geral compromete o desempenho da máquina. Isto acontece porque a complexidade dos circuitos lógicos tende a aumentar, criando um caminho mais longo para a propagação do sinal elétrico gerando um maior atraso. Tal atraso implica em uma menor freqüência de operação dos circuitos.

Nível 2: Nível da Arquitetura do Conjunto de Instruções (nível ISA - Instruction Set Architeture) 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 XYZ4W), ou algo similar. Manuais descrevem como as instruções são executadas interpretativamente pelo micro programa ou como elas são executadas diretamente pelo hardware. Essas informações são necessárias para os desenvolvedores de sistemas operacionais.

O nível 2 corresponde à linguagem de máquina ou o código binário executado pelo hardware. Na Figura vista, este nível é interpretado para o nível de micro programação, porém nas máquinas RISC - Reduced Instruction Set Computer - o nível 1 (micro programação) não existe. Neste tipo de máquina, o nível 2 é executado (interpretado) diretamente no nível 0. Atualmente este tipo de máquina é considerado mais eficiente e flexível que as CISC. Isto porque, as instruções delas tendem a ser executadas em poucos (ou mesmo um único) ciclos de relógio, permitindo assim ao projetista do compilador, ou ao projetista do Sistema Operacional uma programação mais sob medida (customizado) para cada situação. Entretanto, o código gerado tende a ser mais longo e complexo. Cada máquina ou processador tem sua linguagem própria de nível 2, a qual é documentada em manuais específicos de cada fabricante.

Nível 3: Nível do Sistema Operacional 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.

O nível do Sistema Operacional (S.O.) - é responsável por fornecer serviços básicos para os níveis acima. Tais serviços são: interface (gráfica ou linha de comando) com o usuário (Shell), gerenciamento de memória, escalonamento de processos, acionamento de dispositivos de entrada e saída de dados etc. Este nível é geralmente desenvolvido de forma híbrida, ou seja, parte em uma linguagem de alto nível (como C ou C++, por exemplo), e parte diretamente em linguagem de máquina. Após o seu desenvolvimento, o programa executável em código de máquina é gerado para ser carregado nas máquinas a que se destina. S.O. complexos são desenvolvidos em ambientes computacionais apropriados, porém, os mais simples podem ser desenvolvidos diretamente em linguagem de máquina.

Nível 4: Nível da linguagem do montador ou de montagem (Assembly language) Linguagem de montagem: forma simbólica de representação das linguagens do nível mais baixo. Programas nessa linguagem são primeiro 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 essa tradução é chamado de montador

O nível de linguagem de montagem, é realmente uma forma simbólica. Todas as linguagens de alto nível são simbólicas, isto é, usam agrupamentos de caracteres alfanuméricos que representam palavras ou expressões matemáticas que apelidam uma instrução de máquina ou correspondem a uma seqüência (rotina) de instruções de máquina. Tais apelidos são mais expressivos para os humanos que os códigos numéricos computacionais. Os compiladores traduzem estes caracteres em linguagem de máquina.

O nível 4 provê um método para as pessoas escreverem programas para os níveis 1, 2, e 3 de uma maneira mais agradável e amigável. Neste nível cada instrução de máquina é apelidada por um minemônico (por exemplo add, load, sub, mov e etc.) que normalmente correspondem diretamente a uma única instrução de máquina. Assim, o minemônico é um apelido, mais significativo para os humanos, que representa uma instrução de máquina, ou seja, um código binário executável.

Nível 5: Nível das linguagens orientadas para solução dos problemas 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: Exemplo: programas em Java, MatLab,...

Há ainda a existência de outros níveis abaixo do nível 0, que não estão representados na figura. Estes níveis situam-se no campo da engenharia elétrica e da física do estado sólido. Nestes níveis os projetistas enxergam portas lógicas, transistores individuais e o cristal semicondutor, que é o substrato dos circuitos integrados. O nível 0 e os níveis abaixo dele fogem ao escopo desta disciplina.

Organização do software. Etapas da execução de um programa (adaptado de Patterson e Hennessy, 3ª ed., 2005, pág.78).

Observações finais importantes do capítulo: Computadores são projetados como uma série de níveis, cada um deles construídos 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. O conjunto de tipos de dados, operações e características de cada um dos níveis é chamado arquitetura do nível. São parte da arquitetura, as características que um programador do nível deve enxergar, por exemplo, a disponibilidade de memória