Académique Documents
Professionnel Documents
Culture Documents
Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo
Traduo (Assembly)
Nvel 3
Nvel 2
Nvel 1
Nvel de Microarquitetura
Hardware
Nvel 0
Em um computador novo, o nvel ISA precisa ser compatvel com as verses anteriores Os projetistas devem garantir que os programas antigos sejam executados na nova mquina
6
Perguntas
Um hardware pode executar um programa de alto nvel diretamente? Porque o hardware no faz isso? Qual a abordagem dos projetistas para o hardware no executar uma linguagem de alto nvel diretamente? Quais so as principais preocupaes dos projetistas no desenvolvimento de uma nova arquitetura de conjunto de instrues?
8
Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo
Segunda abordagem:
O efeito da execuo de um opcode reservador definido na implementao
14
Pentium 4:
No tem um documento formal que define o nvel ISA
15
Modo usurio
Executa os programas de aplicao No permite que certas instrues sensveis sejam executas
Ex: manipular a cache diretamente
16
Perguntas
Qual o objetivo do documento de definio? O que especificado no documento de definio? Para que serve o conjunto de teste do documento de definio? Citem um processador que tem o documento de definio e um processador que no tem o documento de definio do nvel ISA. Porque algumas empresas no criam o documento de definio do nvel ISA? Quais so os dois tipos de usurios do nvel ISA?
17
Modelos de memria
Todos os computadores dividem a memria em clulas As clulas tem endereos consecutivos Praticamente todos os fabricantes de computadores utilizam clulas de 8 bits Uma clula de 8 bits denominada byte Motivo: Os caracteres ASCII tm 7 bits Futuro:
UNICODE: os prximos computadores tero clulas de 16 bis
18
Modelos de memria
Unicode:
o padro que permite aos computadores representar e manipular textos de qualquer sistema de escrita existente formado por mais de 107 mil caracteres Exemplo:
Alfabeto rabe Alfabeto armnio Alfabeto grego Caracteres chineses Alfabeto hebraico Runas
19
Modelos de memria
Os bytes so agrupados em palavras de 4 bytes (32 bits) ou 8 bytes (64 bits) Muitas arquiteturas precisam que as palavras sejam alinhadas As memrias funcionam com mais eficincia quando esto alinhadas Desvantagem da memria no alinhada:
A capacidade de ler palavras em endereos arbitrrios requer lgica extra no chip, o que torna o chip maior e mais caro
20
Modelos de memria
Modelos de memria
No nvel ISA, a maioria das mquinas tem um nico espao de endereo linear O endereo se estende do endereo 0 ate 232 ou 264 bytes Algumas mquinas tm endereos separados:
Instrues Dados
Perguntas
Porque os fabricantes dividiram a memria em clulas de 8 bits? Quantos bits seria dividida a memria caso o padro UNICODE fosse utilizado? Como funciona uma memria alinhada? Como funciona uma memria no alinhada? Qual a vantagem de usar a memria alinhada? Qual a desvantagem de usar a memria no alinhada? Quais so as vantagens de uma mquina que tem os endereos de instruo e dados separados?
23
Registradores
Todos os computadores tm alguns registradores visveis no nvel ISA Os registradores so usados para controlar a execuo de programas, reter resultados temporrios etc Os registradores do nvel ISA so divididos em duas categorias:
Registradores de uso geral Registradores de uso especial
24
Registradores
Registradores de uso geral
So usados para armazenar:
As variveis locais dos programa em execuo Os resultados intermedirios de clculos
Funo:
Prover acesso rpido a dados muito usados
Registradores
Os registradores podem ser usados no modo ncleo e no modo usurio Registradores de modo usurio
Podem ser acessados pelo usurio atravs das linguagens de mquina ou de montagem
Ex: Registradores de uso geral, de dados e de endereo
Registradores
Registrador de controle
usado para controlar as aes da CPU Exemplo: Registrador de Flags ou PSW (Palavra de Estado do Programa) Podem ser usados no modo ncleo/usurio Contedo da PSW:
Cdigos de condio Modo da mquina (e.g., usurio ou ncleo) Bit de rastreamento Nvel de prioridade da CPU Estado de habilitao de interrupo
27
Registradores
Os cdigos de condio so:
ajustados em todo ciclo de ULA refletem o estado do resultado da operao mais recente
Cdigos de condio:
N: Resultado negativo Z: Resultado foi zero V: Resultado excedeu a capacidade da ULA (oVerflow) C: Resultado causou um vai-um do bit da extrema esquerda
Perguntas
Qual a funo dos registradores? Quais so as duas categorias dos registradores? Qual a funo dos registradores de uso geral? Qual a funo do registrador de controle? Porque os cdigos de condio so importantes?
29
30
31
As instrues MMX, SSE, SSE2 foram projetadas para melhorar o desempenho em aplicaes multimdia Pentium 4 tem trs modos de operao:
Modo real Modo virtual 8086 Modo protegido
32
Nvel 1 e 2:
So raramente utilizados
Nvel 3:
usado pelos programas usurios Nesse nvel, algumas instrues crticas esto bloqueadas e os registradores so controlados para impedir que um programa usurio trapaceiro faa a mquina inteira falhar
34
35
Little endian:
Os bytes so numerados da direita para a esquerda
36
EBX:
Usado para armazenar ponteiros
ECX:
Usado na execuo de loops
EDX:
usado para multiplicao e diviso
37
EDI:
Ponteiro de ndice destino
EBP:
Ponteiro de base de pilha
ESP:
Ponteiro de pilha
38
Contador de Programa
EIP
Registrador de Flags
EFLAGS
39
Perguntas
O nvel ISA do Pentium 4 baseada em quais processadores? Porque o nvel ISA do Pentium 4 baseada nestes processadores? Qual o nome da arquitetura de 32 bits do Pentium 4? Qual foi a nica alterao importante na arquitetura do Pentium 4? Pra que serve essas novas instrues? Quais so trs modos de operao do Pentium 4? Expliquem cada modo de operao do Pentium 4. Quantos nveis de privilgio tem o nvel ISA do Pentium 4? Expliquem cada nvel de privilgio. A memria do Pentium 4 dividida em quantos segmentos? Quantos segmentos o Sistema Operacional suporta?
40
44
45
Todos os operandos para instrues aritmticas e lgicas devem vir de registradores ou ser fornecidos pela instruo Todos os resultados devem ser salvos em um registrador
46
Perguntas
A UltraSPARC III usa qual verso do ISA SPARC? Quantos bits tem uma mquina UltraSPARC III? Quantos Bytes tem a memria enderevel da UltraSPARC III? Quantos Bytes da memria enderevel so realmente utilizados? Porque os projetistas colocaram no processador UltraSPARC III mais memria do que realmente pode ser utilizado? O UltraSPARC III usa que tipo de ordenao dos Bytes? Porque a organizao dos registradores ISA SPARC complexa? Quais so dois grupos de registradores do UltraSPARC III? Quantos registradores de uso geral esto disponveis? Quantos registradores de ponto flutuante esto disponveis?
47
O propsito de ter vrios conjuntos de registradores habilitar processamento rpido de interrupo Essa propriedade torna o 8051 capaz de tratar um nmero maior de interrupes por segundo
50
51
TCON:
Controla os temporizadores 0e1
Hardware Software
53
Perguntas
Porque o 8051 no tem proteo de hardware? Descrevam o modelo de memria do 8051. Quais so os 4 tipos de implementao de memria? Porque o registrador dividido em quatro conjuntos com oito registradores cada?
55
Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo
56
Tipos de Dados
Todos os computadores precisam de dados
Financeiros Comerciais Cientficos
Tipos de dados:
Numricos
Exemplos: inteiros e ponto flutuante
No numricos
Exemplos: caracteres, booleanos e ponteiro
57
Tipos de Dados
Numricos
Inteiros:
Armazenado: em notao binria de complemento de 2 Comprimento: 8, 16, 32 e 64 bits Tipos:
Inteiros sem sinal Ex: Uma palavra de 32 bits pode conter um nmero 0 a 232 1 Vantagem: Bit extra Inteiros com sinal Tem um bit de sinal Ex: Uma palavra de 32 bits pode conter um nmero 0 a 231 1 Vantagem: Pode manipular nmeros negativos
58
Tipos de Dados
Numricos (Cont.)
Ponto flutuante:
Comprimento: 32, 64 e 128 bits A maioria dos computadores tem instrues para efetuar operaes aritmticas de ponto flutuante Muitos computadores tem registradores separados para conter operandos inteiros e operandos de ponto flutuante
59
Tipos de Dados
No numricos
O nvel ISA pode manipular:
Cadeias de caracteres
ASCII (7 bits) UNICODE (16 bits)
Valores booleanos
Verdadeiro Falso
Ponteiro
60
Tipos de Dados
Tipos de dados no Pentium 4
Tipo
Bit Inteiro com sinal Inteiro sem sinal Inteiro decimal em cdigo binrio Ponto flutuante Caracteres ASCII X X X X X X X X X X
61
Tipos de Dados
Tipos de dados no UltraSPARC III
Tipo
Bit Inteiro com sinal Inteiro sem sinal Inteiro decimal em cdigo binrio Ponto flutuante Caracteres ASCII X X X X X X X X X X X X
62
Tipos de Dados
Tipos de dados no 8051
Tipo
Bit Inteiro com sinal Inteiro sem sinal Inteiro decimal em cdigo binrio Ponto flutuante Caracteres ASCII
63
Perguntas
Quais so os dois tipos de dados? Quais so os dois tipos de Inteiro? Qual a diferena entre esses dois tipos de Inteiro? Quais so os tipos de dados suportados pelo Pentium 4? Quais so os tipos de dados suportados pelo UltraSPARC III? Quais so os tipos de dados suportados pelo 8051?
64
Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo
65
Formatos de instruo
Formatos de instruo Critrios de projeto para formatos de instruo Expanso de opcodes Formatos de instrues dos processadores:
Pentium 4 UltraSPARC III 8051
66
Formatos de instruo
Cada instruo deve definir:
O qu fazer:
OPCODE
Com o qu:
endereamento de dados
67
Formatos de instruo
68
Formatos de instruo
As instrues podem ser mais curtas, mais longas ou do mesmo comprimento da palavra Instrues do mesmo comprimento da palavra:
Vantagens:
mais simples mais fcil para decodificar
Desvantagem:
Desperdcio de espao
Formatos de instruo
70
Formatos de instruo
Critrios de projeto para formatos de instruo
A deciso sobre o formato de instruo deve ser tomada no incio do projeto de um novo computador Preocupaes dos Projetistas:
Eficincia
Exemplo: Acesso rpido memria: projeto baseado em pilha Acesso lento memria: projeto baseado em registradores
71
Formatos de instruo
Expanso de opcodes
o artifcio utilizado pelos projetistas de computador para contrabalancear a quantidade de memria enderevel com a quantidade de instrues possveis Exemplo 1:
Considerar uma mquina na qual as instrues tem 16 bits e os endereos tem 4 bits cada
72
Formatos de instruo
Expanso de opcodes (Cont.)
Exemplo 2:
Os projetistas precisam de:
15 instrues de trs endereos 14 instrues de dois endereos 31 instrues de um endereo 16 instrues sem endereo
73
Formatos de instruo
74
Formatos de instruo
Os formatos de instrues do Pentium 4 so complexos
75
Formatos de instruo
A ISA UltraSPARC III consiste de instrues de 32 bits
76
Formatos de instruo
O 8051 tem seis formatos simples de instruo
77
Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo
78
Endereamento
O Endereamento indica onde esto os operandos que fazem parte das instrues Tipos de Endereamento:
Endereamento imediato Endereamento direto Endereamento de registrador Endereamento indireto de registrador Endereamento indexado Endereamento de base indexado Endereamento de pilha
79
Endereamento
Endereamento imediato:
O campo de endereo contm o operando
O endereo no usado para descrever a localizao do operando
Exemplo: Vantagem:
No exige uma referncia extra memria para buscar o operando
Desvantagem:
Somente uma constante pode ser fornecida neste modo e o valor da constante limitado pelo tamanho do campo
80
Endereamento
Endereamento direto
O operando indicado na memria atravs do seu endereo completo Neste tipo de endereamento, a instruo sempre acessar a mesma localizao da memria O endereo direto usado para acessar variveis globais cujos endereos so conhecidos no momento da compilao
81
Endereamento
Endereamento de registrador
Similar ao endereamento direto, porm especifica um registrador em vez de uma localizao de memria Esse modo de endereamento o mais comum na maioria dos computadores
Os registradores tm acesso rpido e endereos curtos
Endereamento
Endereamento indireto de registrador
O operando que est sendo especificado vem da memria ou vai para a memria
O endereo do operando fica armazenado em um registrador Quando um endereo usado dessa maneira, ele chamado de ponteiro
Vantagens:
O endereo do operando na instruo faz referencia memria sem pagar o preo por ter um endereo de memria completo na instruo Pode usar diferentes palavras de memria em diferentes execues da instruo
83
Endereamento
Endereamento indireto de registrador (Cont.)
Exemplo:
Um loop que soma os elementos de um vetor de inteiros No total so 1024 elementos com 4 Bytes (cada)
84
Endereamento
Endereamento indexado
o nome que se d ao endereamento de memria que fornece um registrador mais um deslocamento constante
Um ponteiro de memria e um pequeno deslocamento no registrador
Endereamento
Endereamento indexado (Cont.)
86
Endereamento
Endereamento de base indexado
Algumas mquinas tem um modo de endereamento no qual o endereo de memria calculado somando dois registradores mais um deslocamento (opcional)
Um dos registradores a base e o outro o ndice
Exemplo: LOOP:
Endereamento
Endereamento de base indexado (Cont.)
Vantagem:
Se o deslocamento tiver 8 ou 16 bits, ento esse tipo de endereamento melhor do que o endereamento indexado
Desvantagem:
Se o deslocamento sempre tiver 32 bits, ento no h nenhuma vantagem sobre o endereamento indexado
88
Endereamento
Endereamento de pilha
O processador tem a noo de manipulao de dados em uma pilha Operaes sempre se referem ao topo da pilha Vamos analisar:
Notao polonesa invertida Avaliao de frmulas em notao polonesa invertida
89
91
92
93
Montar tabela
Smbolo da expresso
Modos de endereamento
96
Perguntas
Quais so os tipos de endereamento? Expliquem cada tipo de endereamento. Quais so as trs vantagens da notao polonesa? Quais so os modos de endereamento suportados pelo Pentium 4? Quais so os modos de endereamento suportados pelo UltraSPARC III? Quais so os modos de endereamento suportados pelo 8051?
97
Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo
98
Tipos de instruo
Instrues para movimento de dados Operaes didicas Operaes mondicas Comparaes e desvios condicionais Instrues de chamada de procedimento Controle de lao Instrues dos processadores:
Pentium 4 UltraSPARC III 8051
99
Tipos de instruo
Instrues para movimento de dados
Copiar dados de um lugar para outro a mais fundamental de todas as operaes
Exemplo 1:
A=B
Exemplo 2:
O contedo da localizao de memria 2000 foi movido para algum registrador O que isso significa?
Um nome melhor para instrues de movimento de dados seria instrues de duplicao de dados
100
Tipos de instruo
Operaes didicas
Operaes que combinam dois operandos para produzir um resultado
Operaes aritmticas (adio, subtrao, multiplicao e diviso) Operaes booleanas (AND, OR, NOT, etc)
Exemplo: (A AND B) OR C A = 10110111 10111100 11011011 10001011 B = 11111111 11111111 11111111 00000000 C = 00000000 00000000 00000000 01010111
101
Tipos de instruo
Operaes mondicas
Operaes que tm apenas um operando e produzem um resultado So usadas em instrues para deslocar ou rodar o contedo de uma palavra ou byte
Deslocamentos:
So operaes que movem os bits para a esquerda ou para a direita Os bits deslocados so empurrados para fora na extremidade da palavra (perdidos)
Rotaes:
So deslocamentos que empurra os bits para fora da extremidade da palavra e os bits reaparecem na extremidade oposta
102
Tipos de instruo
Operaes mondicas (Cont.)
Deslocamento versus Rotaes
Exemplo 1:
A = 00000000 00000000 00000000 01110011 Deslocamento de 2 bits para a direita A = 00000000 00000000 00000000 00011100 Rotao de 2 bits para a direita A = 11000000 00000000 00000000 00011100
103
Tipos de instruo
Operaes mondicas (Cont.)
Deslocamento
Direita
Com extenso de sinal Sem extenso de sinal
Esquerda
Exemplo:
A = 11111111 11111111 11111111 11110000 Deslocamento de 2 bits para a direita sem sinal
A = 00111111 11111111 11111111 11111100
Tipos de instruo
Operaes mondicas (Cont.)
Deslocamentos
Podem ser usados para acelerar algumas operaes aritmticas
Exemplo: multiplicao
Rotaes
Podem ser usada para testar os bits em uma palavra Vantagem:
As operaes de rotao so mais puras do que operaes de deslocamento porque nenhuma informao perdida
105
Tipos de instruo
Comparaes e desvios condicionais
Comparaes: Instrues usadas para comparar duas palavras
Exemplo:
Comparar duas palavras para ver se so iguais Comparar duas palavras para ver qual deles o maior
Desvios condicionais: Instrues usadas para testar alguma condio e alterar a sequncia de instrues com base nos resultados do teste Exemplo: x
106
Tipos de instruo
Instrues de chamada de procedimento
Um procedimento um grupo de instrues que realiza alguma tarefa e pode ser chamado de diversas partes do programa
Linguagem de montagem: Sub-rotina Java: Mtodo
Quando o procedimento conclui sua tarefa, deve retornar declarao aps a chamada
O endereo de retorno deve ser transmitido ao procedimento ou salvo em algum lugar de modo que possa ser localizado quando for a hora de retornar
107
Tipos de instruo
Instrues de chamada de procedimento (Cont.) Endereo de retorno pode ser colocado:
Memria
Memria fixa ruim Mltiplas chamadas podem sobrescrever os dados anteriores
Registrador
Soluo melhor do que a memria fixa O armazenamento em registradores joga a responsabilidade do armazenamento para o procedimento Problema: Procedimentos recursivos
Pilha
Melhor soluo
108
Tipos de instruo
Controle de lao
109
Instrues do Pentium 4
110
Instrues do Pentium 4
111
112
113
114
Instrues do 8051
115
Instrues do 8051
116
Instrues do 8051
117
Instrues do 8051
118
Instrues do 8051
119
Perguntas
Qual a diferena entre deslocamento e rotao? Qual a diferena entre deslocamento com sinal e deslocamento sem sinal? Qual a diferena entre comparaes e desvios condicionais? Qual a melhor opo de armazenamento de endereo de retorno? Porque? Quais so os tipos de controle de lao? Quais so as caractersticas do Pentium 4? Quais so as caractersticas do UltraSPARC III? Quais so as caractersticas do 8051?
124