Projeto Logico de Computadores   01   Nivel ISA
59 pág.

Projeto Logico de Computadores 01 Nivel ISA


DisciplinaProjeto Lógico do Sistema: Lógica5 materiais3 seguidores
Pré-visualização3 páginas
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, \u201ccódigos de operação\u201d 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 \u2013 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 \uf0e8 8 instruções
111 001 000 até 111 001 111 \uf0e8 8 instruções
111 010 000 até 111 010 111 \uf0e8 8 instruções
111 011 000 até 111 011 111 \uf0e8 8 instruções
111 100 000 até 111 100 111 \uf0e8 8 instruções
111 101 000 até 111 101 111 \uf0e8 8 instruções
111 110 000 até 111 110 111 \uf0e8 8 instruções
111 111 000 até 111 111 110 \uf0e8 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 \u201coperando imediato\u201d porque é trazido da memória junto com a instrução e está imediatamente disponível para