• Nenhum resultado encontrado

Aula04-MicroprogramaçãoII

N/A
N/A
Protected

Academic year: 2021

Share "Aula04-MicroprogramaçãoII"

Copied!
7
0
0

Texto

(1)

Microprogramação II

Alinne Corrêa

([email protected])

Micro/Macroinstruções

Memória Cache / Pilha

Montagem e Execução de programas

2 16/04/2010 Microprogramação II – Alinne Corrêa

Microinstruções

São instruções primitivas que codificam um único

ciclo de máquina a ser executado no caminho de

dados da CPU.

Uma microinstrução é definida pelos valores dos

sinais de controle que atuam na unidade operativa

A execução de uma instrução do processador pode

então ser realizada através de uma sequência de

microinstruções.

16/04/2010 Microprogramação II – Alinne Corrêa 3

Macroinstruções

São instruções de mais alto nível, compostas por

um certo número de microinstruções

Na técnica de microprogramação, cada instrução

oferecida

pela

arquitetura,

que

passa

a

ser

chamada

de

macroinstrução

,

é

na

realidade

executada

por

uma

seqüência

de

instruções

primitivas,

extremamente

simples,

chamadas

microinstruções

.

16/04/2010 Microprogramação II – Alinne Corrêa 4

Macroinstruções

A seqüência de microinstruções que executa uma

macroinstrução forma uma

microrotina

.

A execução de uma macroinstrução consiste na

chamada de uma microrotina, feita pela unidade de

controle.

As microinstruções da microrotina executam as

operações básicas associadas à macroinstrução.

16/04/2010 Microprogramação II – Alinne Corrêa 5

Macroinstruções

16/04/2010 Microprogramação II – Alinne Corrêa 6

• Asmicrorotinas encontram-se armazenadas na memória de microprograma.

• Quando o código da macroinstrução é armazenado no registrador de (macro)instrução, o seqüenciador interpreta este código e determina o endereço de entrada da microrotina que executa aquela macroinstrução.

• O seqüenciador fornece, a cada ciclo de clock, o endereço da próxima microinstrução a ser executada. Após o acesso à microinstrução, ela é armazenada no registrador de microinstrução.

• A execução de uma microinstrução envolve o acesso da microinstrução na memória de microprograma.

• Uma nova microinstrução é executada a cada ciclo de clock. Quando a execução de uma microrotina é concluída, uma nova macroinstrução é acessada na memória principal e armazenada no registrador de (macro) instrução, e iniciada a execução de uma nova microrotina.

(2)

Memória Cache

Problema:

▫ A CPU é mais rápida do que a memória principal. A memória principal é um gargalo no desempenho da CPU. A cada requisição, a CPU perde desempenho esperando que a memória atenda a sua requisição.

Solução:

▫ Combinar uma memóriagrande e lenta (memória principal) com uma memóriapequena e rápida(memória cache). Esta combinação, feita de maneira apropriada, responde como se fosse uma única memória grande e relativamente rápida.

16/04/2010 Microprogramação II – Alinne Corrêa 7

Memória Cache

É uma área de

armazenamento temporária,

onde

os

dados

frequentemente

acedidos

são

armazenados para acesso rápido.

Memória mais rápida interna ao chip da CPU.

Baseia-se nos princípios de localidade

▫ Referências de memória em um período curto de tempo tendem a acessar regiões de memória vizinhas

16/04/2010 Microprogramação II – Alinne Corrêa 8

Memória Cache

Características:

▫ Memórias de alta velocidade utilizadas como ligação entre o processador e a memória principal.

▫ Mantém dados de uso freqüente.

▫ Permiteganho de performancecom economia de acesso a memória principal.

▫ Utilizadas em todos os sistemas atuais.

▫ Divisãoentre oarmazenamento dos dados e o armazenamento de informaçõespara que os dados sejam localizados e validados (tag, valid bit).

16/04/2010 Microprogramação II – Alinne Corrêa 9

Memória Cache

Princípio da Localidade:

▫ Espacial:

Probabilidade que o próximo endereço a ser referenciado se encontre próximo ao último endereço da referência mais recente à memória.

Ex: busca de instruções de um programa geralmente é feita em PC+1 ▫ Temporal:

Probabilidade que um endereço referenciado recentemente, brevemente seja referenciado novamente.

Ex: execução de instruções dentro de um loop

16/04/2010 Microprogramação II – Alinne Corrêa 10

Memória Cache

Indicadores Estatísticos:

▫ Hit:

Busca de uma informação na cache é realizada comacertos(taxa de acerto = hit rate)

▫ Miss:

Busca de uma informação na cache é realizada comfaltas, sendo necessário o acesso a memória principal (taxa de falta = miss rate).

▫ Tempo médio de acesso:

th: tempo de acesso com acerto ph: facção de acessos com acerto

tm: tempo de acesso com falta

pm: facção de acessos com falta (pm = 1 – ph) tp: penalidade de falta (tp= tm – th)

tacesso = ph x th + pm x tm

= th + pm x tp

Memória Cache

Funcionamento:

▫ Sempre que a CPU vai buscar um dado ou instrução na memória,acessa inicialmente a cache.

▫ Se a instrução ou dado estiver na cache (acerto), e então é transferida emalta velocidade para CPU.

▫ Se a instrução (dado) não estiver na cache (falta), o sistema interrompe a execução do programa vaitransferir a instrução da MP para a cache. ▫ Atransferêncianão é somente da instrução desejada, masdela e de um grupo

subseqüente,na pressuposição de que as instruções do grupo serão requeridas logo em seguida (localidade espacial), aumentando a taxa de acertos. ▫ Para acache cumprir seu papel, é necessário que hajamais acertos que faltas,

sendo que essa razão tem que ser cada vez maior, pois as perdas comfaltas

(3)

Funcionamento:

16/04/2010 Microprogramação II – Alinne Corrêa 13

Modo de Endereçamento

▫ Mapeamento Direto ▫ Totalmente Associativo ▫ Associativo por Conjunto

16/04/2010 Microprogramação II – Alinne Corrêa 14

Memória Cache

Modo de Endereçamento

▫ Mapeamento Direto

Cada posição da memória principal só pode ser mapeadapara uma posição da memória cache.

16/04/2010 Microprogramação II – Alinne Corrêa 15

Memória Cache

Modo de Endereçamento

▫ Totalmente Associativo

Cada posição da memória principal pode ser mapeada em qualquer posição da memória cache.

16/04/2010 Microprogramação II – Alinne Corrêa 16

Memória Cache

Modo de Endereçamento

▫ Associativo por Conjunto

Cada posição da memória principal pode ser mapeada emN posições da cache.

16/04/2010 Microprogramação II – Alinne Corrêa 17

Memória Cache

Políticas de Atualização

▫ Write-Through (escrita em ambas) ▫ Write back (escrita somente no retorno) ▫ Write once (escrita uma vez) ▫ Write Through:

Cada escrita em uma palavra da cache acarreta uma escrita igual na palavra correspondente da MP.

Assegura validade permanente e igual o conteúdo de ambas as memórias. ▫ Write back:

Não realiza atualizações simultâneas, mas somente quando o bloco foi substituído e se ocorreu alteração.

(4)

Memória Cache

Políticas de Atualização

▫ Write once

Apropriada para sistemas multi CPU/cache que compartilham o mesmo barramento.

Permite o controlador da cache escrever atualizando o bloco da MP sempre que o bloco correspondente da cache for atualizado pela primeira vez.

Atualiza ambos os blocos, bem como alerta os demais componentes que compartilham o barramento único.

16/04/2010 Microprogramação II – Alinne Corrêa 19

Memória Cache

Algoritmos de Substituição

▫ Least Recently Used – LRU (o que não é usado há mais tempo) ▫ F1F0 (Just-in, Just-out) – Fila

▫ Least-Frequently Used –LFU (o que tem menos referência) ▫ Escolha Aleatória

16/04/2010 Microprogramação II – Alinne Corrêa 20

Memória Cache

Algoritmos de Substituição

▫ Least Recently Used (LRU)

O sistema escolhe para ser substituído o bloco que está há mais tempo sem ser acessado

Trata-se do bloco que a CPU não utiliza há mais tempo

▫ F1F0 (Just-in, Just-out)

O primeiro que chegar é o primeiro a ser atendido.

O sistema escolhe o bloco queestá há mais tempo armazenado na cache, independente de estar sendo usado ou não com frequência pela CPU.

16/04/2010 Microprogramação II – Alinne Corrêa 21

Memória Cache

Algoritmos de Substituição

▫ Least-Frequently Used (LFU)

O sistema escolhe para o bloco que tem tidomenos acessos por parte da CPU.

Trata-se do bloco que possui menos referências

▫ Escolha Aleatória

Trata-se de escolher aleatoriamente um bloco para ser substituído, independente da sua situação no conjunto.

16/04/2010 Microprogramação II – Alinne Corrêa 22

Memória Cache

Níveis da Cache

▫ Necessidade de aumento da velocidade da memória cache; ▫ Aceleração do tempo de resposta

▫ Minimizar impacto no custo da memória ▫ Criação dos níveis de memória

Diferem na relação tamanho x desempenho

Memória Cache

Níveis:

▫ L1 (memórias internas ao processador):

Uma pequena porção de memória estática presente dentro do processador

Geralmente tem entre 16KB e 128KB

▫ L2 (memórias internas ou externas ao processador): :

Contém muito mais memória que o cache L1

Mais um caminho para que a informação requisitada não tenha que ser procurada na lenta memória principal

Um dos elementos essenciais para um bom rendimento do processador ▫ L3 (memórias externas ao processador e existem em poucos

procesadores):

(5)

Tamanho

▫ A definição da faixa de tamanho (capacidadede armazenamento) de uma cache depende:

Uma pequena porção de memória estática presente dentro do processador

Capacidade de armazenamento da MP;

Razão acertos/falhas aceitaveis;

Tempo de acesso da MP e da MC;

Custo da MP e MC;

Natureza dos programas em execução.

16/04/2010 Microprogramação II – Alinne Corrêa 25

Dispositivo de armazenamento que guarda as

informações em uma disposição, onde o

último a

entrar

é o

primeiro a sair .

Possuem duas operações:

▫ Push

Insere os dados para armazenamento ▫ Pop

Retira os dados da memória

A maioria dos computadores utiliza a memória

principal para representar pilhas

16/04/2010 Microprogramação II – Alinne Corrêa 26

Pilha

16/04/2010 Microprogramação II – Alinne Corrêa 27

Montagem e Execução de Programas

Conceitos

▫ Linguagem de máquina:

Primeira e mais primitiva linguagem de computador

Linguagem que o computador entende diretamente e pode ser diretamente executada pelos circuitos do processador (pelo hardware). ▫ Linguagem de montagem:

Linguagem em que os códigos numéricos foram substituídos por mnemônicos (palavras ou símbolos), como, por exemplo, LOAD = carregar e ADD = somar.

▫ Linguagem de programação:

É um conjunto de ferramentas, regras de sintaxe e símbolos ou códigos que nos permitem escrever programas de computador.

16/04/2010 Microprogramação II – Alinne Corrêa 28

Montagem e Execução de Programas

Linguagem de Máquina

▫ Instruções eram escritas diretamente na linguagem do computador, uma longa série de 0's e 1's.

▫ As séries representam códigos de instruções e outros representam os dados que serão processados

▫ Cada instrução escrita pelo programador será individualmente executada

▫ Cada instrução do programa corresponderá uma ação do computador

A relação é portanto 1 para 1 - uma instrução do programa corresponde a uma operação do computador.

16/04/2010 Microprogramação II – Alinne Corrêa 29

Montagem e Execução de Programas

Linguagem de Máquina

▫ Desvantagens:

Difícil de ser escrito sem que se cometessem muitos erros, em um processo longo

Processo caro

Difícil de ser entendido por outros programadores que futuramente viessem a trabalhar na manutenção do programa.

(6)

Montagem e Execução de Programas

Linguagem de Montagem

▫ Solução para o problema da linguagem de máquina.

▫ Os códigos numéricos foram substituídos por mnemônicos (palavras ou símbolos), como, por exemplo, LOAD = carregar e ADD = somar,

▫ Essa linguagem simbólica recebeu o nome de Assembly Language (Linguagem de Montagem).

▫ Os programadores bastam decorar mnemônicos para as instruções e definir nomes para as referências dos endereços.

Ex: NOME representando o local onde seriam armazenados os nomes

16/04/2010 Microprogramação II – Alinne Corrêa 31

Montagem e Execução de Programas

Linguagem de Montagem

▫ O processo de tradução da linguagem de montagem para a linguagem de máquina é realizado por um programa chamado Assembler (Montador).

▫ O programa Assembler lê cada instrução escrita em linguagem Assembly e a converte em uma instrução equivalente em linguagem de máquina.

▫ Processo ainda considerado lento e complexo.

▫ Diversas linguagens de programação foram desenvolvidas, buscando afastar-se do modelo centrado no computador.

16/04/2010 Microprogramação II – Alinne Corrêa 32

Montagem e Execução de Programas

Linguagem de Programação

▫ Mais simples de programar e entender

▫ Mais rápidas e eficientes, levando a programas mais enxutos, com menos instruções, menos dependente do computador-alvo, mas que processassem com boa eficiência

▫ Primeiras linguagens:

FORTRAN (1957) – manipulação de fórmulas

ALGOL (1958) – manipulação de algoritmos

COBOL (1959) – processamento comercial

PASCAL (década de 60, 70) – alto nível estruturada

C (década de 80) – com suporte a objetos

16/04/2010 Microprogramação II – Alinne Corrêa 33

Montagem e Execução de Programas

Linguagem de Programação

▫ Vantagens x Desvantagens:

16/04/2010 Microprogramação II – Alinne Corrêa 34

Vantatgens Desvantagens Facilita o trabalho do programador Elevado desempenho Reduz a necessidade de conhecer o hardware da máquina Lentas Consome espaço em memória

Montagem e Execução de Programas

Tradução:

▫ Um programa escrito por um programador (chamado código fonte), em uma linguagem de alto nível.

▫ Conjunto de instruções que é clara para programadores, mas não para computadores, pois os computadores entendem única e exclusivamente suas linguagens nativas, as linguagens de máquina. ▫ O processo de tradução do programa escrito em uma linguagem

simbólica para a linguagem de máquina é chamado Compilação.

Montagem e Execução de Programas

Montagem:

▫ Traduz um programa escrito em linguagem Assembly em um programa equivalente em linguagem de máquina, possível de ser executado pelo computador

No processo de montagem, ocódigo

fonte (programa em linguagem

simbólica escrito pelo programador)

é examinado, instrução por

instrução e é feita a tradução, gerando ocódigo que será executado (código objeto)

(7)

Compilação:

▫ É o processo de tradução de um programa escrito em linguagem de alto nível para código em linguagem de máquina. ▫ É um processo análogo ao da montagem (verificação / análise do

código fonte, resolução das referências de memória, reserva de espaço em memória e conversão para código de máquina binário) ▫ Linguagens compiladas:

C

Pascal

COBOL

16/04/2010 Microprogramação II – Alinne Corrêa 37

Compilação:

▫ O código fonte é analisado (análise léxica, sintática e semântica), ▫ É gerado um código intermediário

▫ São construídas tabelas de símbolos, alocam-se as áreas de memória para variáveis.

▫ São atribuídos os registradores a serem utilizados. ▫ Geração do código objeto em linguagem binária de máquina

16/04/2010 Microprogramação II – Alinne Corrêa 38

Montagem e Execução de Programas

Montagem x Compilação:

▫ O que diferencia a compilação do processo de montagem é sua maior complexidade.

▫ No processo de montagem, há uma relação de 1:1, ou seja, cada instrução do código fonte resulta em uma instrução de máquina.

▫ Na compilação a relação é múltipla, cada instrução do código fonte gerando várias instruções de máquina.

16/04/2010 Microprogramação II – Alinne Corrêa 39

Montagem e Execução de Programas

Interpretação

▫ Um programa para ser executado precisa primeiro ter sido convertido para código objeto pelo compilador.

▫ Esse processo é o mais largamente utilizado, porém não é o único. ▫ Todo o processo de conversão é efetuado em tempo de execução e

imediatamente executado.

16/04/2010 Microprogramação II – Alinne Corrêa 40

Montagem e Execução de Programas

Interpretação

▫ Cada comando é lido, verificado, convertido em código executável e imediatamente executado, antes que o comando seguinte seja sequer lido.

▫ Linguagens interpretadas:

BASIC

Linguagens de construção de macros do word, Acces

16/04/2010 Microprogramação II – Alinne Corrêa 41

Montagem e Execução de Programas

Interpretação x Compilação

16/04/2010 Microprogramação II – Alinne Corrêa 42

Interpretação Compilação

Tempo de execução Cada vez que o programa for executado haverá compilação, o que aumenta o

tempo de execução

Tempo de execução do programa é reduzido, porque todos os passos

preliminares foram previamente cumpridos.

Consumo de memória O interpretador é um programa geralmente grande e que precisa permanecer na memória durante todo o tempo que durar a execução do programa, o que aumenta o

consumo de memória.

O compilador é carregado e fica na memória apenas durante o tempo de compilação, depois é descarregado, onde o consumo de memória é

mais reduzido.

Repetição de Interpretação Um programa é compilado apenas uma vez, logo cada programa terá que ser interpretado toda vez que for ser executado, levando a

um maior consumo de tempo no método de interpretação

A tradução do código do loop se faz uma única vez, em tempo de compilação , levando a um menor

consumo de tempo no método de compilação.

Desenvolvimento de programas e depuração de erros

cada comando é interpretado e executado individualmente, a relação entre código fonte e executável é mais direta e o efeito da

execução (certa ou errada) é direta.

A identificação de erros durante a fase de execução fica sempre difícil, pois não há mais relação entre comandos do código fonte e instruções do executável.

Referências

Documentos relacionados

Introduction: We assessed the effects of therapeutic ultrasound (TUS), either added to cast immobilization (CI) as a treatment alternative to muscular injuries

7.4 Em caso de abertura de vaga com o perfil exigido neste Comunicado para outras Unidades pertencentes ao Sistema Findes, num prazo de até 1 (um) ano, a contar da data da

Você está sendo convidado(a) como voluntário(a) a participar da pesquisa (Avaliação do uso de drogas em adolescentes atendidos em UBSs e a percepção de uso de

seria usada para o parafuso M6, foram utilizadas as equações 14 e 15, referentes aos parafusos de 8 mm de diâmetro e folga entre parafuso e furo de 0,5 mm, que definem,

No entanto, os resultados apresentados pelo --linalol não foram semelhantes, em parte, aos do linalol racêmico, uma vez que este apresenta um efeito vasorelaxante em anéis de

Resumo: O presente trabalho corresponde a um estudo empírico descritivo e exploratório que aborda comportamentos e falas de atores políticos que participaram do processo legislativo

As micotoxinas são compostos químicos tóxicos provenientes do metabolismo secundário de fungos filamentosos e conhecidas pelos danos causados à saúde humana e

onde Qe são as forças de origem externa ao sistema e Qc são as forças de reação. Estas equações não podem ser utilizadas diretamente, pois as forças de