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
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
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
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
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
• 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
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).