Buscar

Projeto Logico de Computadores 01 Nivel ISA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 59 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Projeto Lógico de Computadores
Nível ISA
Projeto Lógico de Computadores
Prof. Arthur
arthur@unip.br
2016
Nível da Arquitetura do
Conjunto das Instruções
Conceituação
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Nível ISA
Nível da Arquitetura do Conjunto das Instruções
ou
Nível ISA - Instruction Set Architecture
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Máquina Multinível
Nível Lógico-Digital
Nível da Micro-arquitetura
Nível ISA
Nível do Sistema Operacional
Nível da Linguagem de Montagem
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Quando uma nova máquina chega ao mercado surgem, de imediato, pelo menos 3 perguntas:
Nível ISA
Essa máquina é compatível com a anterior?
Meu sistema operacional antigo roda nesta máquina?
Esta máquina roda todos os meus programas sem que eu precise fazer qualquer modificação neles?
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Perguntas desta natureza geram uma pressão para que as novas máquinas sejam compatíveis com as anteriores.
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Quais as características de um bom projeto de Nível ISA?
Nível ISA
Definir um conjunto de instruções que possa ser implementado com eficiência tanto nas tecnologias atuais como nas futuras, resultando em projetos com uma relação custo-benefício adequada para várias gerações de tecnologias.
Fornecer uma interface eficiente com o compilador e com o hardware.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Propriedades do Nível ISA
Nível ISA
Define o aspecto da máquina para um programador da linguagem de máquina,
ou, em outras palavras,
As instruções do nível ISA são aquelas para as quais o compilador deve gerar código.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Propriedades do Nível ISA
Nível ISA
Para fazer com que o compilador gere código para o nível ISA, o projetista do compilador deve conhecer muito bem o modelo de memória da máquina, quais registradores estão implementados, quais os tipos de dados e de instruções disponíveis e assim por diante.
O conjunto de todas essas informações é que define o nível ISA.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Instruções
Nível ISA
A principal característica de um nível ISA é o seu conjunto de instruções de máquina. Essas instruções controlam tudo aquilo que a máquina pode fazer.
Do conjunto de instruções de uma máquina sempre fazem parte instruções LOAD e STORE, por exemplo, para permitir o movimento de dados entre a memória e os registradores.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Formatos de Instruções
Nível ISA
Um programa é constituído de uma sequência de instruções, cada uma especificando alguma ação em particular. As instruções contém, obrigatoriamente, “códigos de operação” que irão gerar a ação desejada.
Muitas instruções contém, ou especificam, o endereço ou dado a ser usado pela instrução. Por exemplo: uma instrução que compara duas informações para checar se são iguais deve especificar quais caracteres devem ser comparados.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Formatos de Instruções - Exemplos
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Formatos de Instruções
Nível ISA
Em algumas máquinas todas as instruções têm o mesmo tamanho, e em outras pode haver instruções de diversos tamanhos.
As instruções de uma máquina podem ser menores, do mesmo tamanho ou maiores que o tamanho da palavra da máquina.
O fato de todas as instruções terem o mesmo tamanho (mesmo número de bits) simplifica muito o projeto do hardware.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Formatos de Instruções - Exemplos
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Critérios para a Determinação do
Formato das Instruções
Nível ISA
Instruções curtas são melhores que as longas, por serem menos complexas e ocuparem menos memória.
Cada memória tem uma determinada taxa de transferência (medida em bps – bits por segundo), a qual é maior para instruções mais curtas, o que aumenta a velocidade de processamento.
É desejável que o comprimento da palavra seja um múltiplo inteiro do comprimento das instruções.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação
Nível ISA
A técnica da expansão dos códigos de operação é utilizada para permitir que todas as instruções de um conjunto possam manter o mesmo tamanho.
Para instruções simples utiliza-se códigos de operação mais longos, poupando os códigos de operação mais curtos para as instruções mais complexas e que, por isso, necessitam de mais dados no corpo da instrução.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exemplo
Palavra de 16 bits
Nível ISA
15 instruções
16 instruções
31 instruções
14 instruções
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exemplo
1º Grupo: 15 instruções
.
.
.
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exemplo
Nível ISA
Código inicial do próximo grupo = código final atual + 1
Código atual = 1110
Código inicial = 1110 + 1 = 1111
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exemplo
2º Grupo: 14 instruções
.
.
.
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exemplo
3º Grupo: 31 instruções
.
.
.
.
.
.
Nível ISA
16 instruções
15 instruções
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exemplo
4º Grupo: 16 instruções
.
.
.
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exercício
Nível ISA
Projete um código de operação expandido para permitir que todas as instruções seguintes sejam codificadas em 15 bits:
07 instruções com: código de operação (3), endereço-1 (6) e endereço-2 (6)
63 instruções com: código de operação (9), endereço (3) e constante (3)
08 instruções com: código de operação (12) e operando (3)
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exercício
1º Grupo: 7 instruções
Nível ISA
.
.
.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exercício
2º Grupo: 63 instruções
.
.
.
Nível ISA
.
.
.
.
.
.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exercício
Nível ISA
2º Grupo: 63 instruções
111 000 000 até 111 000 111  8 instruções
111 001 000 até 111 001 111  8 instruções
111 010 000 até 111 010 111  8 instruções
111 011 000 até 111 011 111  8 instruções
111 100 000 até 111 100 111  8 instruções
111 101 000 até 111 101 111  8 instruções
111 110 000 até 111 110 111  8 instruções
111 111 000 até 111 111 110  7 instruções
63 instruções
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Expansão dos Códigos de Operação - Exercício
3º Grupo: 8 instruções
Nível ISA
.
.
.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento
Nível ISA
Uma instrução pode ter mais de um endereço associado a ela.
As formas de se endereçar uma determinada posição de memória, ou determinado registrador, são diversas, de acordo com a natureza da operação a ser executada.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento Imediato
Nível ISA
A maneira mais simples de uma instrução especificar um operando é contê-lo no campo de endereçamento ao invés de endereçá-lo.
Este tipo de operando é denominado de “operando imediato” porque é trazido da memória junto com a instrução e está imediatamente disponível paraexecução.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento Imediato
O endereçamento imediato não usa nenhuma outra referência para buscar o operando.
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento Direto
Ocorre quando a instrução contém o endereço de memória onde está o operando necessário.
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento do Registrador
Ocorre quando a instrução contém o endereço do registrador onde está o operando necessário.
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento Indireto
Ocorre quando a instrução contém o endereço de uma posição de memória a qual contém, por sua vez, o endereço do operando necessário.
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento Indireto Múltiplo
Ocorre quando a instrução contém o 1º endereço de uma posição de memória a qual contém outros endereços, até que o endereço do operando desejado seja alcançado.
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento por Indexação
O endereço do operando é a soma da constante mais o conteúdo do registrador indicado.
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento por Base-Deslocamento
O endereço do operando é a soma da base (que está num registrador) mais o deslocamento.
Este caso e o anterior podem coincidir:
Se o deslocamento tem bits suficientes para endereçar toda a memória, será designado de endereçamento por Indexação.
Caso contrário, será designado por Base-Deslocamento. 
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento por Base-Deslocamento
Nível ISA
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento por Pilha
Nível ISA
Para economizar espaço na memória e acelerar o processamento, utiliza-se instruções o mais curtas possível.
Se tivermos instruções só com o código de operação, e sem endereços, usa-se o método de endereçamento por pilha.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Endereçamento por Pilha
Nível ISA
O Registrador de Topo de Pilha contém o endereço do topo da pilha, e é atualizado a cada entrada ou saída de informação na pilha.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle
Nível ISA
Entende-se por fluxo de controle a sequência na qual instruções são dinamicamente executadas no decorrer de um programa.
Em geral, na ausência de desvios e de chamadas a procedimentos, as instruções vão sendo executadas sucessivamente, a partir de endereços consecutivos de memória.
As instruções de chamada a procedimento alteram o fluxo de controle, fazendo com que o procedimento corrente pare de ser executado, começando a execução do novo procedimento.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle
Nível ISA
As co-rotinas são estruturas parecidas com os procedimentos e também causam o mesmo tipo de alteração no fluxo de controle.
As co-rotinas são úteis na implementação do paralelismo entre processos.
As interrupções e os traps também alteram o fluxo de controle, quando determinadas condições especiais ocorrem.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle
Nível ISA
A execução da maioria das instruções de uma máquina não altera o fluxo de controle. Em geral, após a execução de uma instrução, o processador vai à memória para buscar a instrução armazenada no endereço seguinte àquela que acabou de ser executada.
A ordem dinâmica na qual um processador executa suas instruções é a mesma em que elas aparecem na listagem do programa.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle
Nível ISA
Processamento sem desvios no fluxo de controle
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle
Nível ISA
Se um programa contiver desvios, essa relação simples entre a ordem em que a instrução aparece na memória e a ordem de sua execução desaparece.
Quando existem desvios, o valor armazenado no registrador PC não é mais uma função linear no tempo.
Como resultado disso, torna-se difícil visualizar a sequência de execução das instruções a partir da listagem do programa.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle
Nível ISA
Processamento com desvios no fluxo de controle
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Procedimentos
Nível ISA
O procedimento (sub-rotina) é a técnica mais importante para a estruturação de programas.
De um lado, uma chamada a procedimento altera o fluxo de controle exatamente do mesmo modo que um desvio, mas o procedimento, ao contrário do desvio, quando termina sua tarefa retorna o controle para o comando ou instrução seguinte à instrução de chamada.
Uma sub-rotina é um grupo de instruções que executa alguma tarefa, e pode ser chamada em vários pontos do programa. Ao final da sub-rotina há uma instrução de retorno ao programa chamador.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Sub-rotinas
Nível ISA
Instruções
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Sub-rotinas
Nível ISA
Instruções
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Sub-rotinas
Nível ISA
Instruções
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Sub-rotinas Recursivas
Nível ISA
Instruções
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Co-Rotinas
Nível ISA
Consideremos um procedimento A (chamador) que chama um procedimento B (chamado):
Instruções
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Co-Rotinas
Nível ISA
Os dois procedimentos podem considerar um ao outro como procedimento chamador e chamado.
Quando uma co-rotina é retomada, a execução começa no comando suspenso anteriormente, e não no início.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Traps
Nível ISA
Um trap é uma chamada a procedimento automática, iniciada sempre que ocorrer alguma condição específica causada pela execução de um programa.
Por exemplo:
Divisão por zero
Violação de proteção
Código de operação inválido
Tentativa de acessar periférico de E/S que não existe
Etc.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Traps
Nível ISA
O trap é disparado para evitar que uma anormalidade cause danos ao processamento.
O trap detecta o problema para o qual foi planejado, pára o processamento e alerta para a ocorrência.
O trap não tem, contudo, recursos para uma eventual recuperação do problema e nem para reiniciar o processamento.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Interrupções
Nível ISA
As interrupções são modificações no fluxo de controle de um programa causadas por um evento externo ao processamento do programa, usualmente relacionados a operações de E/S.
Por exemplo, um programa pode instruir o disco para iniciar uma transferência de informações, e programá-lo de maneira que ele gere uma interrupção tão logo a transferência se conclua.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Interrupções
Nível ISA
Da mesma forma que ocorre com os traps, as interrupções também param o processamento do programa atual e transferem o controle para uma rotina de tratamento de interrupção, que executa ações apropriadas.
Quando esta rotina termina sua execução, o controle retorna ao programa que teve seu processamento interrompido, o qual reinicia exatamente do ponto em que havia parado.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Fluxo de Controle - Interrupções
Nível ISA
As interrupções têm como funções principais:
Disparar programas interruptores
Controlar as prioridades dentro da máquina
Prof. Arthur
Projeto Lógicode Computadores
Nível ISA
Fluxo de Controle – Interrupções x Traps
Nível ISA
A diferença essencial entre um trap e uma interrupção é o fato de que os traps são síncronos com o programa, e as interrupções são assíncronas.
Se um programa for processado milhões de vezes, com as mesmas entradas, os traps vão ocorrer nos mesmos instantes relativos, a cada nova execução do programa.
A ocorrência das interrupções irá variar a cada processamento, dependendo das ações dos dispositivos de E/S a cada instante.
Prof. Arthur
Projeto Lógico de Computadores
Nível ISA
Projeto Lógico de Computadores
Prof. Arthur
arthur@unip.br
2016
Nível da Arquitetura do
Conjunto das Instruções
Conceituação
Prof. Arthur
�
�
Linguagens Atuais�
Linguagens Anteriores�
Nível ISA�
Nível da Micro-Arquitetura�
Nível Lógico-Digital�
�
Código de Operação�
Código de Operação�
Endereço�
Código de Operação�
Endereço 1�
Endereço 2�
�
�
Instrução�
Instrução�
Instrução�
Instrução�
1 palavra�
�
�
Instrução�
Instrução�
Instrução�
Instrução�
1 palavra�
Instrução�
Instrução�
Instrução�
Instrução�
�
�
Instrução�
Instrução�
Instrução�
Instrução�
1 palavra�
�
Cód. Operação
4�
Endereço 1
4�
Endereço 2
4�
Endereço 4
4�
Cód. Operação
8�
Cód. Operação
12�
Endereço 5
4�
Endereço 6
4�
Cód. Operação
16�
Endereço 7
4�
�
210�
�
0000�
Endereço 1
4�
Endereço 2
4�
Endereço 4
4�
0001�
Endereço 1
4�
Endereço 2
4�
Endereço 4
4�
0010�
Endereço 1
4�
Endereço 2
4�
Endereço 4
4�
1110�
Endereço 1
4�
Endereço 2
4�
Endereço 4
4�
�
010�
�
110�
�
1410�
�
1111 0000�
1111 0001�
Endereço 5
4�
Endereço 6
4�
Endereço 5
4�
Endereço 6
4�
1111 0010�
Endereço 5
4�
Endereço 6
4�
1111 1101�
Endereço 5
4�
Endereço 6
4�
�
1310�
�
010�
�
110�
�
210�
�
210�
�
1410�
�
010�
�
110�
�
1510�
�
010�
�
110�
�
1510�
�
1111 1111 1111 0000�
1111 1111 1111 0001�
1111 1111 1111 0010�
1111 1111 1111 1111�
�
010�
�
110�
�
210�
�
Código de
Operação
3�
Endereço-1
6�
Endereço-2
6�
�
000�
001�
010�
110
�
Endereço
3�
Código de Operação
9�
Constante
3�
�
111 000 000
111 000 111
�
111 001 000
111 001 111
�
111 010 000
111 010 111
�
Endereço
3�
Código de Operação
9�
Constante
3�
�
111 111 111 000�
111 111 111 001�
111 111 111 010�
111 111 111 111�
�
Código de Operação
12�
Operando
3�
�
Código de Operação�
Operando�
�
�
Código de Operação�
Endereço�
O operando está
nesta posição�
�
�
Código de Operação�
Endereço�
O registrador está
nesta posição�
�
�
O endereço do operando
desejado está nesta posição�
O operando está
nesta posição�
�
�
Código de Operação�
Endereço�
O operando está
nesta posição�
O 1o endereço desejado está
nesta posição�
O 2o endereço desejado está
nesta posição�
O no endereço desejado
está nesta posição�
�
�
Código de Operação�
Número do Registrador
de Índice�
O registrador está
nesta posição�
Constante�
O operando está
nesta posição�
�
�
Código de Operação�
Número do Registrador
de Base�
O registrador está
nesta posição�
Deslocamento�
O operando está
nesta posição�
�
�
Registrador de
Topo de Pilha�
Instante t1�
Instante t2
Instante t3�
�
�
Tempo
Registrador
PC
�
�
�
Tempo
Registrador
PC
Desvios
�
�
Programa
Sub-rotina B
Sub-rotina A
�
�
Programa
Sub-rotina A
1a chamada�
2a chamada�
�
�
Programa
Sub-rotina B
Sub-rotina A
�
�
�
�
�
�
Programa
Sub-rotina
�
�
�
Programa A
�
Programa B
�

Outros materiais