61
III – Hardware e Software III – Hardware e Software Hardware Processador Memória Dispositivos de E/S Barramento Arquiteturas RISC e CISC Software Tradutor Interpretador Linker Loader Depurador

Hardware - Página do Professor André · gerencia as atividades de todos os componentes do computador, como a gravaç̃o de dados em discos, ... armazenar informaç̃es de controle

  • Upload
    dobao

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

III – Hardware e Software

III – Hardware e Software

• Hardware Processador Memória Dispositivos de E/S Barramento Arquiteturas RISC e CISC

• Software Tradutor Interpretador Linker Loader Depurador

III – Hardware e Software

III – Hardware e Software

• Hardware

CPU

Barramento

E/S Memória

Unidade de Controle

Interconexão interna da

CPU

CPU

Unidade Lógica e

Aritmética

III – Hardware e Software

III – Hardware e Software

ProcessadorGerencia todo o sistema computacionalcontrolando as operacoes realizadas por cadaunidade funcional.Função Principal: Controlar e executar instrucoespresentes na memoria principal, por meio deoperacoes basicas.

Unidade de Controle

gerencia as atividades de todos os componentes docomputador, como a gravacao de dados em discos,busca de instrucoes na memoria.

Unidade Lógica e

Aritmética

realizacao de operacoes logicas (testes ecomparacoes) e aritmeticas (somas e subtracoes).

III – Hardware e Software

III – Hardware e Software

Processador

Sinal de clock

É um pulso gerado ciclicamente (a partir de um cristal de quartzopolarizado) que sincroniza de todas as funcoes do processador. Afrequência de oscilação do clock é bem determinada

Sao dispositivos com a funcao principal de armazenar dadostemporariamente. O conjunto de registradores funciona comouma memoria de alta velocidade interna do processador.Possui capacidade de armazenamento reduzidaO numero de registradores e sua capacidade de armazenamentovariam em funcao da arquitetura de cada processador.

• Registradores de uso geral: são manipuladosdiretamente por instrucoes;

• Registradores de uso especifico: sao responsaveis porarmazenar informacoes de controle do processador e dosistema operacional. Entre estes destaca-se:

III – Hardware e Software

III – Hardware e Software

Contador de Instrucoes (CI) ou Program Counter(PC) : Contem o endereco da proxima instrucao queo processador deve buscar e executar;

Apontador da Pilha (AP) ou Stack Pointer (SP):contem o endereco de memoria do topo da pilha,que e a estrutura de dados onde o sistema manteminformacoes sobre programas que estao sendoexecutados;

Registrador de Instrucoes (RI): Armazena ainstrucao que sera decodificada e executada peloprocessador;

Processador

III – Hardware e Software

III – Hardware e Software

Processador Registrador de Status ou Program Status Word

(PSW): Armazena informacoes sobre a execucao deinstrucoes, como a ocorrencia de overflow. Amaioria das instrucoes, quando executadas, altera oregistrador de status conforme o resultado.

III – Hardware e Software

III – Hardware e Software

Processador

Ciclo de busca de instrucao: e a maneira pelaqual o processador executa os programasarmazenados na memoria principal:

a) Busca na memoria principal a instrucao armazenada noendereco indicado pelo CI e a armazena no RI.

b) Incrementa o CI para que o registrado contenha o enderecoda proxima instrucao.

c) Decodifica a instrucao armazenada no RI.

d) Busca os operandos na memoria, se houver.

e) Executa a instrucao decodificada.

Apos este ultimo passo, o ciclo e reiniciado dopasso (a).

III – Hardware e Software

III – Hardware e Software

Memória Principal

Onde se armazena instrucoes e dados.

É composta por unidades de acesso chamadascelulas, sendo cada celula composta por umdeterminado numero de bits.

O bit e a unidade basica de memoria, podendoassumir o valor logico 0 ou 1.

Atualmente, a grande maioria dos computadoresutiliza o byte (8 bits) como tamanho de celula

III – Hardware e Software

III – Hardware e Software

Memória Principal

Memória com 64 Kb

III – Hardware e Software

III – Hardware e Software

Memória Principal

O acesso ao conteudo de uma celula e realizadoatraves da especificacao do endereco que éunica que pode ser feita a uma celula dememoria.

Para leitura ou gravação de um dado em umacelula, deve-se primeiro especificar qual oendereco de memoria desejado, para depoisrealizar a operacao.

III – Hardware e Software

III – Hardware e Software

Memória Principal

A especificacao do endereco e realizada por umregistrador denominado registrador deendereco de memoria (memory addressregister — MAR (ou REM)).

Pelo conteudo deste registrador, a unidade decontrole sabe qual a celula de memoria quesera acessada.

Outro registrador usado em operacoes com amemoria e o registrador de dados da memoria(memory buffer register — MBR (ou RDM)).

III – Hardware e Software

III – Hardware e Software

Memória Principal

Este registrador e utilizado guardar o conteudode uma ou mais celulas de memoria apósoperação de leitura ou gravação.

O numero de celulas enderecadas na memoriaprincipal e limitado pelo tamanho do MAR.

Se o registrador possuir n bits, a memoria poderano maximo enderecar 2n celulas, isto e, doendereco 0 ao endereco (2n - 1)

III – Hardware e Software

III – Hardware e Software

Memória PrincipalCiclo de leitura ou gravação:

Leitura

1. A UCP armazena do MAR o endereço da célula a serlida.

2. A UCP gera um sinal de controle para a memóriaprincipal, indicando que uma operação de leituradeve ser realizada

3. O conteúdo da(s) célula(s), identificada(s) peloendereço contido no MAR, é transferido para o MBR.

4. O conteúdo do MBR é Transferido para um registradorda UCP.

III – Hardware e Software

III – Hardware e Software

Memória PrincipalCiclo de leitura ou gravação:

Gravação

1.A UCP armazena do MAR o endereço da célula queserá gravada.

2. A UCP armazena no MBR a informação que deverá sergravada.

3.A UCP gera um sinal de controle para a memóriaprincipal, indicando que uma operação de gravaçãodeve ser realizada.

4. A informação contida no MBR é transferida para acélula de memória endereçada pelo MAR.

III – Hardware e Software

III – Hardware e Software

Memória Principal

A memoria principal pode ser classificada emfuncao de sua volatilidade, que e a capacidadede a memoria preservar o seu conteudomesmo sem uma fonte de alimentacao ativa.

Memorias do tipo RAM (Random AccessMemory) sao volateis, enquanto as memorias

ROM (Read-Only Memory) e EPROM (ErasableProgrammable ROM) sao do tipo nao volateis.

III – Hardware e Software

III – Hardware e Software

Memória Cache

É uma memoria volatil é de alta velocidade,porem com pequena capacidade dearmazenamento.

O tempo de acesso a um dado e muito menorque se o mesmo estiver na memoria principal.

O proposito do uso da memoria cache eminimizar a disparidade existente entre avelocidade com que o processador executainstrucoes e a velocidade com que dados saolidos e gravados na memoria principal.

III – Hardware e Software

III – Hardware e Software

Memória Cache

A memoria cache armazena uma pequena partedo conteudo da memoria principal.

Toda vez que o processador faz referencia a umdado armazenado na memoria, e verificado,primeiramente, se o mesmo encontra-se namemoria cache.

Caso o processador encontre o dado (cache hit),nao ha necessidade do acesso a memoriaprincipal, diminuindo assim o tempo de acesso.

III – Hardware e Software

III – Hardware e Software

Memória Cache

Se a informacao desejada nao estiver presente nacache, o acesso a memoria principal e obriga-torio (cache miss).

Consequentemente, o processador, a partir dodado referenciado, transfere um bloco dedados da memoria principal para a cache.

Apesar de existir neste mecanismo um tempoadicional para a transferencia de dados entre asdiferentes memorias, este tempo ecompensado pela melhora do desempenho

III – Hardware e Software

III – Hardware e Software

Memória Cache

Se a informacao desejada nao estiver presente nacache, o acesso a memoria principal e obriga-torio (cache miss).

Consequentemente, o processador, a partir dodado referenciado, transfere um bloco dedados da memoria principal para a cache.

Apesar de existir neste mecanismo um tempoadicional para a transferencia de dados entre asdiferentes memorias, este tempo ecompensado pela melhora do desempenho

III – Hardware e Software

III – Hardware e Software

Memória Secundária

A memoria secundaria e um meio permanente,isto e, nao volatil de armazenamento deprogramas e dados.

Enquanto a memoria principal precisa estarsempre energizada para manter suasinformacoes, a memoria secundaria naoprecisa de alimentacao.

O acesso a memoria secundaria e lento, secomparado com o acesso a memoria principal,porem seu custo e baixo e sua capacidade dearmazenamento e bem superior.

III – Hardware e Software

III – Hardware e Software

Memória Secundária

Enquanto a unidade de acesso a memoriasecundaria e da ordem de milissegundos, oacesso a memoria principal e denanossegundos.

Exemplos: fita magnetica, o disco magnetico e odisco optico.

III – Hardware e Software

III – Hardware e Software

Memória Secundária

III – Hardware e Software

III – Hardware e Software

Dispositivos de Entrada e Saída

Permitem a comunicacao entre o sistemacomputacional e o mundo externo.

Podem ser divididos em duas categorias:

•Os utilizados como memoria secundaria:Discos e fitas magneticas. caracterizam-se

por ter capacidade de armazenamentobastante superior ao da memoriaprincipal.

Custo e relativamente baixoTempo de acesso e bem superior ao damemoria principal.

III – Hardware e Software

III – Hardware e Software

Dispositivos de Entrada e Saída

• Os que servem para a interface usuario-maquina.

Tem como finalidade a comunicacao usuario-maquina, como teclados, monitores de video,impressoras e plotters.

A implementacao de interfaces mais amigaveispermite, cada vez mais, que usuarios poucoespecializados utilizem computadores de maneiraintuitiva.

Exemplos: Scanner, caneta otica, mouse,dispositivos sensiveis à voz humana e tato saoalguns exemplos desses tipos de dispositivos.

III – Hardware e Software

III – Hardware e Software

Barramento

O barramento ou bus e um meio de comunicacaocompartilhado que permite a comunicacaoentre as unidades funcionais de um sistemacomputacional.

Atraves de condutores, informacoes como dados,enderecos e sinais de controle trafegam entreprocessadores, memorias e dispositivos de E/S.

Em geral, um barramento possui linhas decontrole e linhas de dados.

III – Hardware e Software

III – Hardware e Software

Barramento

Nas linhas de controle trafegam informacoes desinalizacao como, por exemplo, o tipo deoperacao que esta sendo realizada.

Pelas linhas de dados, informacoes comoinstrucoes, operandos e enderecos saotransferidos entre unidades funcionais.

Os barramentos sao classificados em tres tipos:

barramentos processador-memoria

barramentos de E/S

barramentos de backplane

III – Hardware e Software

III – Hardware e Software

Barramento

Barramentos processador-memoria:Sao de curta extensao e alta velocidade para

que seja otimizada a transferencia deinformacao entre processadores ememorias.

Barramentos de E/S:Possuem maior extensao, sao mais lentos e

permitem a conexao de diferentesdispositivos.

III – Hardware e Software

III – Hardware e Software

Barramento

III – Hardware e Software

III – Hardware e Software

Barramento

barramento de backplane:

Nesta organizacao, o barramento de E/S naose conecta diretamente ao barramentoprocessador-memoria, tendo obarramento de backplane a funcao deintegrar os dois barramentos. A principalvantagem desta arquitetura e reduzir onumero de adaptadores existentes nobarramento processador-memoria e,desta forma, otimizar seu desempenho.

III – Hardware e Software

III – Hardware e Software

Barramento

III – Hardware e Software

III – Hardware e Software

Pipelining

É uma tecnica que permite ao processadorexecutar multiplas instrucoes paralelamenteem estagios diferentes. O conceito deprocessamento pipeline se assemelha muito auma linha de montagem, onde uma tarefa edividida em uma sequencia de subtarefas,executadas dentro da linha de producao.

Da mesma forma que em uma linha demontagem, a execucao de uma instrucao podeser dividida em subtarefas, como as fases debusca da instrucao e dos operandos, execucaoe armazenamento dos resultados.

III – Hardware e Software

III – Hardware e Software

Pipelining

O processador, atraves de suas varias unidadesfuncionais pipeline, funciona de forma apermitir que, enquanto uma instrucao seencontra na fase de execucao, uma outrainstrucao possa estar na fase de buscasimultaneamente

III – Hardware e Software

III – Hardware e Software

Pipelining

O pipelining pode ser empregado em sistemas com um ou maisprocessadores em diversos niveis. Tem sido a tecnica deparalelismo mais utilizada para aumentar o desempenho dossistemas computacionais.

III – Hardware e Software

III – Hardware e Software

Arquiteturas RISC e CISC

A única linguagem entendida pelo processador éa linguagem de máquina.

O conjunto de instruções de um processador édefinido pelo fabricante.

As instruções da máquina referem-se aosdetalhes como: registradores, modos deendereçamento e tipos de dadoscaracterísticos de um processador e suafuncionalidade

III – Hardware e Software

III – Hardware e Software

Arquiteturas RISC e CISC

Um programa em linguagem de maquina podeser diretamente executado pelo processador.

Quando escrito em linguagem de maquina deum determinado processador, um programanao pode ser executado em outra maquina dearquitetura diferente, visto que o conjunto deinstrucoes de um processador e caracteristicaespecifica de cada arquitetura.

III – Hardware e Software

III – Hardware e Software

Arquiteturas RISC e CISC

Arquitetura RISC (Reduced Instruction SetComputer)

• Possui poucas instrucoes de maquina,geralmente bastante simples, que saoexecutadas diretamente pelo hardware.

• A maioria das instrucoes nao acessam amemoria principal;

• Estas instruções trabalham principalmentecom registradores;

• Possuem grande numero de Registradores.

III – Hardware e Software

III – Hardware e Software

Arquiteturas RISC e CISC

Arquitetura RISC (Reduced Instruction Set Computer)

• Estas caracteristicas, alem de permitirem queas instrucoes sejam executadas rapidamente;

• Possui fácil implementacao do pipelining;

• Exemplos: SPARC (Sun), RS-6000 (IBM), PA-RISC (HP), Alpha AXP (Compaq) e Rx000(MIPS).

III – Hardware e Software

III – Hardware e Software

Arquiteturas RISC e CISC

Arquitetura CISC (Complex Instruction SetComputers)

• Possuem instrucoes complexas, interpretadaspor microprogramas;

• Numero de registradores e pequeno;

• Qualquer instrucao pode referenciar a memoriaprincipal;

• É mais difícil a implementação do pipelining.

III – Hardware e Software

III – Hardware e Software

Arquiteturas RISC e CISCArquitetura CISC (Complex Instruction Set Computers)

• Exemplos: VAX (DEC), Pentium (Intel) e 68xxx(Motorola). A Tabela 2.3 compara caracteristicaspresentes nas arquiteturas RISC e CISC.

III – Hardware e Software

III – Hardware e Software

Arquiteturas RISC e CISC

Estrutura de Camadas das diferentes arquiteturas.

Aplicações

Utilitários

Sistema Operacional

Linguagem de Máquina

Microprogramação

Circuitos Eletrônicos

Aplicações

Utilitários

Sistema Operacional

Linguagem de MáquinaCircuitos

Eletrônicos

RISCCISC

III – Hardware e Software

III – Hardware e Software

Arquiteturas RISC e CISC

Processadores RISC: Programa em linguagem demaquina e executado diretamente pelohardware.

Processadores CISC: seu codigo executavel einterpretado pelos microprogramas durante suaexecucao, gerando microinstrucoes, que,finalmente, sao executadas pelo hardware. Paracada instrucao em linguagem de maquina existe ummicroprograma associado.

Um computador possui, aproximadamente, 25microinstrucoes basicas, que sao interpretadaspelos circuitos eletronicos.

III – Hardware e Software

III – Hardware e Software

Arquiteturas RISC e CISC

Os processadores chamados microprogramaveissao aqueles que permitem que novas instrucoesde maquina possam ser criadas atraves dacriacao de microprogramas. Algunsequipamentos, como os microprocessadores,nao dispoem desse recurso, ja que osmicroprogramas vem gravados em memoria dotipo ROM

III – Hardware e Software

III – Hardware e Software

• SoftwarePara que o usuário usufrua integralmente da

disponibilidade da máquina (hardware) énecessário o uso de programas que funcionamcomo interface entre este e o hardware.

III – Hardware e Software

III – Hardware e Software

Os programas escritos nessas linguagens de alto nívelnao estao prontos para ser diretamente executadospelo processador (programas-fonte).

Portanto, é preciso passar por uma etapa de conversao,onde toda representacao simbolica das instrucoes etraduzida para codigo de maquina.

Esta conversao e realizada por um utilitario denominadotradutor.

O modulo gerado pelo tradutor e denominado modulo-objeto, que, apesar de estar em codigo de maquina, namaioria das vezes nao pode ser ainda executado.

Tradutor

III – Hardware e Software

III – Hardware e Software

Isso ocorre em funcao de um programa poder chamarsub-rotinas externas, e, neste caso, o tradutor nao temcomo associar o programa principal as sub-rotinaschamadas.

Esta funcao e realizada por outro utilitario denominadolinker.

Dependendo do tipo do programa-fonte, existem doistipos distintos de tradutores que geram modulos-objeto: montador e compilador.

Tradutor

III – Hardware e Software

III – Hardware e Software

Tradutor

III – Hardware e Software

III – Hardware e Software

Tradutor

• Montador (assembler): Utilitario responsavel portraduzir um programa-fonte em linguagem demontagem em um programa-objeto nao executavel(modulo-objeto).

A linguagem de montagem e particular para cadaprocessador.

Compilador: Utilitario responsavel por gerar, a partir deum programa escrito em uma linguagem de alto nivel,um programa em linguagem de maquina naoexecutavel.

III – Hardware e Software

III – Hardware e Software

Tradutor

Os programadores de alto nivel se preocupam apenascom o desenvolvimento de suas aplicacoes, nao seenvolvendo com detalhes sobre a arquitetura doprocessador.

Assim, os programas-fonte podem ser portados entrecomputadores de diversos fabricantes, desde queexistam padroes para a sintaxe da linguagem. Issopermite o desenvolvimento de aplicacoesindependentes do equipamento.

III – Hardware e Software

III – Hardware e Software

Tradutor

Um compilador e um utilitario que opera de modointegrado aos componentes do sistema deprogramacao disponiveis, sob a supervisao do sistemaoperacional.

Pode-se visualizar o compilador como uma interfaceentre o sistema operacional e o usuario, de maneiraque e possivel acessar diversos servicos do sistemasem a necessidade da utilizacao de linguagem decontrole ou de outros utilitarios.

III – Hardware e Software

III – Hardware e Software

InterpretadorÉ considerado um tradutor que nao gera modulo-objeto.

A partir de um programa- fonte escrito em linguagemde alto nivel, o interpretador, durante a execucao doprograma, traduz cada instrucao e a executaimediatamente. Algumas linguagens tipicamenteinterpretadas sao o Basic e o Perl.

A maior desvantagem na utilizacao de interpretadores eo consumo de tempo na traducao das instrucoes deum programa toda vez que este for executado.

A vantagem e permitir a implementacao de tipos dedados dinamicos, ou seja, que podem mudar de tipodurante a execucao do programa, aumentando, assim,sua flexibilidade.

III – Hardware e Software

III – Hardware e Software

Linker

Linker ou editor de ligacao: Utilitario que gera, a partirde um ou mais modulos-objeto, um unico programaexecutavel resolvendo todas as referencias simbolicasexistentes entre os modulos e reservando memoriapara a execucao do programa. Além disso, tambémpode pesquisar em bibliotecas do sistema ou doproprio usuario para resolver todas as referencias àsimbolos. Bibliotecas sao arquivos que contemdiversos modulos-objeto e/ou definicoes de simbolos.

Outra função Importante é Relocacao, que determina aregiao de memoria na qual o programa sera carregadopara execucao.

III – Hardware e Software

III – Hardware e Software

Linker

Nos primeiros sistemas operacionais, a relocacaoera realizada somente uma vez, na etapa delinkedicao. Todos os enderecos simbolicos doprograma eram traduzidos para enderecosfisicos, e o programa executavel gerado podiaser carregado a partir de uma posicao prefixadana memoria (codigo absoluto). Nesse tipo derelocacao, o programa poderia ser carregado,apenas, a partir de uma unica posicao namemoria.

III – Hardware e Software

III – Hardware e Software

Linker

Em sistemas multiprogramaveis esse tipo derelocacao e de dificil implementacao, ja que amemoria e compartilhada entre diversosprogramas, e e pouco provavel que, nomomento em que o sistema carrega umprograma, sua area de memoria prefixadaesteja disponivel.

A solucao para este problema e permitir que oprograma seja carregado em regioes diferentestoda vez que for trazido para a memoria(codigo relocavel).

III – Hardware e Software

III – Hardware e Software

Linker

Em alguns sistemas, o compilador pode realizarmais do que suas funcoes basicas, comoresolver referencias de endereco, sendo que,dessa forma, o programa nao necessita passarpela etapa de linkedicao independente. Nessecaso, um outro utilitario (linking loader) ficaresponsavel pela carga do programa namemoria e pela sua execucao. Nesse tipo desistema, o programa passa por um processo delink dinamico, onde as referencias globais saoresolvidas no momento da execucao.

III – Hardware e Software

III – Hardware e Software

Linker

A grande desvantagem dessa implementacao e asobrecarga de processamento (overhead)existente em cada execucao do programa,problema que nao ocorre em sistemas quepossuem linkers independentes.

III – Hardware e Software

III – Hardware e Software

III – Hardware e Software

III – Hardware e Software

Loader

Loader ou Carregador: e o utilitario responsavelpor carregar na memoria principal um programapara ser executado. O procedimento de cargavaria com o codigo gerado pelo linker e, emfuncao deste, o loader e classificado como dotipo absoluto ou relocavel.

Absoluto: Necessita conhecer o endereco dememoria inicial e o tamanho do modulo pararealizar o carregamento. O programa étransferido da memoria secundaria para amemoria principal e inicia sua execucao.

III – Hardware e Software

III – Hardware e Software

Loader

Relocavel: O programa pode ser carregado emqualquer posicao de memoria, e o loader eresponsavel pela relocacao no momento docarregamento.

III – Hardware e Software

III – Hardware e Software

Depurador

O desenvolvimento de programas esta sujeito aerros de logica, independentemente demetodologias utilizadas pelo programador.

A depuracao e um dos estagios dessedesenvolvimento, e a utilizacao de ferramentasadequadas e essencial para acelerar o processode correcao dos programas.

O depurador (debugger) e o utilitario que permiteao usuario acompanhar toda a execucao de umprograma a fim de detectar erros na sua logica.

III – Hardware e Software

III – Hardware e Software

Depurador

Este utilitario oferece ao usuario recursos como:

• acompanhar a execucao de um programainstrucao por instrucao;

• possibilitar a alteracao e a visualizacao doconteudo de variaveis;

• implementar pontos de parada dentro doprograma (breakpoint), de forma que, durante aexecucao, o programa pare nesses pontos;

• especificar que, toda vez que o conteudo deuma variavel for modificado, para que oprograma envie uma mensagem (watchpoint).

III – Hardware e Software

III – Hardware e Software