·
Cursos Gerais ·
Organização de Computadores
Send your question to AI and receive an answer instantly
Recommended for you
77
Conjunto de Instruções da Arquitetura de Computadores
Organização de Computadores
UFS
73
Linguagem de Máquina e de Montagem na Arquitetura de Computadores
Organização de Computadores
UFS
3
Prova Organização de Computadores - Unip
Organização de Computadores
UNIP
2
Atividade de Arquitetura de Computadores: Montagem de Circuito Lógico e Tabela Verdade
Organização de Computadores
UNOPAR
8
Prova1_ftc
Organização de Computadores
UFOP
6
Ptis Senac
Organização de Computadores
UMG
4
prova - Organização de Computadores - Unip
Organização de Computadores
UMG
8
Prova1_ftc
Organização de Computadores
UFOP
Preview text
Registradores e memória Arquitetura de Computadores Bruno Prado Departamento de Computação UFS Introdução Já foi visto que os computadores funcionam executando uma programação sequência de operações e de dados armazenada em memória Processador Código Dados Como os operandos são armazenados Imediata Registrador Memória Por que utilizar diferentes formas de armazenamento para os operandos C 2022 Bruno Prado Departamento de Computação UFS 2 53 Introdução Já foi visto que os computadores funcionam executando uma programação sequência de operações e de dados armazenada em memória Processador Código Dados Como os operandos são armazenados Imediata Registrador Memória Por que utilizar diferentes formas de armazenamento para os operandos C 2022 Bruno Prado Departamento de Computação UFS 3 53 Introdução Já foi visto que os computadores funcionam executando uma programação sequência de operações e de dados armazenada em memória Processador Código Dados Como os operandos são armazenados Imediata Registrador Memória Por que utilizar diferentes formas de armazenamento para os operandos C 2022 Bruno Prado Departamento de Computação UFS 4 53 Introdução Capacidade Custo Latência Tipo Capacidade Custo Latência Imediato 1 3 bytes SRAM 2 KiB 32 Mbit US 5k GiB 020 2 ns DRAM 1 16 GiB US 3 GiB 10 ns C 2022 Bruno Prado Departamento de Computação UFS 5 53 Registrador O que é um registrador É uma memória interna do processador Geralmente do tamanho da arquitetura 16 bits 32 bits 64 bits 0 15 0 31 0 63 Tipos Propósito geral Controle e status C 2022 Bruno Prado Departamento de Computação UFS 6 53 Registrador Propósito geral R0R25 Definido pelo programador Armazenamento ou endereçamento Processador R0 R1 R24 R25 C 2022 Bruno Prado Departamento de Computação UFS 7 53 Registrador Propósito geral R0R25 Indexáveis de 0 até 25 R0 possui valor constante 0 e os demais registradores podem armazenar valores de 32 bits com ou sem sinal 0 2147483648 2147483647 0 31 R0 0 31 R1 R25 C 2022 Bruno Prado Departamento de Computação UFS 8 53 Registrador Propósito geral R0R25 Indexáveis de 0 até 25 R0 possui valor constante 0 e os demais registradores podem armazenar valores de 32 bits com ou sem sinal 0 0 4294967295 0 31 R0 0 31 R1 R25 C 2022 Bruno Prado Departamento de Computação UFS 9 53 Registrador Controle e status IR PC SP SR Indexáveis de 28 até 31 São utilizados para o funcionamento do processador Processador R0 R1 R24 R25 IR PC SP SR C 2022 Bruno Prado Departamento de Computação UFS 10 53 Registrador Controle e status IR PC SP SR Indexáveis de 28 até 31 São utilizados para o funcionamento do processador Processador R0 R1 R24 R25 IR PC SP SR Registrador de instrução IR armazena a instrução carregada da memória e em execução C 2022 Bruno Prado Departamento de Computação UFS 11 53 Registrador Controle e status IR PC SP SR Indexáveis de 28 até 31 São utilizados para o funcionamento do processador Processador R0 R1 R24 R25 IR PC SP SR Contador de programa PC controla o fluxo de execução da aplicação apontando para as instruções C 2022 Bruno Prado Departamento de Computação UFS 12 53 Registrador Controle e status IR PC SP SR Indexáveis de 28 até 31 São utilizados para o funcionamento do processador Processador R0 R1 R24 R25 IR PC SP SR Ponteiro de pilha SP referencia o topo da pilha na memória alocação estática e subrotinas C 2022 Bruno Prado Departamento de Computação UFS 13 53 Registrador Controle e status IR PC SP SR Indexáveis de 28 até 31 São utilizados para o funcionamento do processador Processador R0 R1 R24 R25 IR PC SP SR Registrador de status SR controle de configurações e status das operações do processador C 2022 Bruno Prado Departamento de Computação UFS 14 53 Registrador Registrador de instrução IR Índice 28 Código da instrução 0 31 R28 IR Contador de programa PC Índice 29 Endereço da instrução 0 31 R29 PC Ponteiro de pilha SP Índice 30 Endereço da pilha 0 31 R30 SP C 2022 Bruno Prado Departamento de Computação UFS 15 53 Registrador Registrador de status SR Índice 31 ZN ZD SN OV IV CY 0 1 2 3 4 5 6 7 31 R31 SR Resultado de operações entre A e B ZN zero igual a 0 ZD divisão por zero divisor B 0 SN sinal sinal negativo OV overflow extrapolação de capacidade IV instrução inválida código de operação inválido CY carry vai a um aritmético C 2022 Bruno Prado Departamento de Computação UFS 16 53 Registrador Quais os cenários de operação com os dados 1 Acessar e operar diretamente em memória 2 Ler os dados da memória realizar as operações em registradores e escrever os resultados na memória Processador Memória 5 GHz 020 ns DDR4 10 ns Cenário com 100 instruções que acessam a memória para ler uma variável em memória Cenário 1 100 0 2 ns 10 ns 1020 ns Cenário 2 10 2 ns 100 0 2 ns 10 2 ns 40 4 ns Operações com registradores são 25 vezes mais rápidas C 2022 Bruno Prado Departamento de Computação UFS 17 53 Registrador Quais os cenários de operação com os dados 1 Acessar e operar diretamente em memória 2 Ler os dados da memória realizar as operações em registradores e escrever os resultados na memória Processador Memória 5 GHz 020 ns DDR4 10 ns Cenário com 100 instruções que acessam a memória para ler uma variável em memória Cenário 1 100 0 2 ns 10 ns 1020 ns Cenário 2 10 2 ns 100 0 2 ns 10 2 ns 40 4 ns Operações com registradores são 25 vezes mais rápidas C 2022 Bruno Prado Departamento de Computação UFS 18 53 Registrador Quais os cenários de operação com os dados 1 Acessar e operar diretamente em memória 2 Ler os dados da memória realizar as operações em registradores e escrever os resultados na memória Processador Memória 5 GHz 020 ns DDR4 10 ns Cenário com 100 instruções que acessam a memória para ler uma variável em memória Cenário 1 100 0 2 ns 10 ns 1020 ns Cenário 2 10 2 ns 100 0 2 ns 10 2 ns 40 4 ns Operações com registradores são 25 vezes mais rápidas C 2022 Bruno Prado Departamento de Computação UFS 19 53 Registrador Arquitetura de carregamentoarmazenamento Operações apenas com registradores loadstore Sempre que um dado é necessário é feito seu carregamento prévio da memória Quando todas as operações já foram concluídas o dado é armazenado de volta para a memória C 2022 Bruno Prado Departamento de Computação UFS 20 53 Registrador Arquitetura de carregamentoarmazenamento Operacdes apenas com registradores loaastore Sempre que um dado é necessario é feito seu carregamento prévio da memoria Quando todas as operacées jd foram concluidas o dado 6 armazenado de volta para a meméria VY Acesso muito rapido com registradores Regularidade e simplicidade no enderecamento C 2022 Bruno Prado Departamento de Computado UFS 2153 Registrador Arquitetura de carregamentoarmazenamento Operacdes apenas com registradores loaastore Sempre que um dado é necessario é feito seu carregamento prévio da memoria Quando todas as operacées jd foram concluidas o dado 6 armazenado de volta para a meméria X Baixa capacidade de armazenamento Numero limitado de registradores C 2022 Bruno Prado Departamento de Computado UFS 2253 Registrador E quando forem necessarios mais registradores do que estdo disponiveis Acessando multiplos elementos de um vetor Alocagdo dindmica e estdtica de dados Chamadas de funcdes aninhadas ou recursivas C 2022 Bruno Prado Departamento de Computado UFS 2353 Registrador E quando forem necessarios mais registradores do que estdo disponiveis Acessando multiplos elementos de um vetor Alocagdo dindmica e estdtica de dados Chamadas de funcdes aninhadas ou recursivas V Realizar mais acessos a memoria V Utilizar a estrutura de pilha C 2022 Bruno Prado Departamento de Computado UFS 2453 Memória O que é uma memória É um dispositivo semicondutor para armazenamento em estado sólido de informações Permite o endereçamento de posições para realização de operações de escrita e de leitura Todos os dados são codificados em formato binário Memória Endereço InstruçãoDado C 2022 Bruno Prado Departamento de Computação UFS 25 53 Memória O que é uma memória É um dispositivo semicondutor para armazenamento em estado sólido de informações Permite o endereçamento de posições para realização de operações de escrita e de leitura Todos os dados são codificados em formato binário Memória Endereço InstruçãoDado C 2022 Bruno Prado Departamento de Computação UFS 26 53 Memória O que é uma memória É um dispositivo semicondutor para armazenamento em estado sólido de informações Permite o endereçamento de posições para realização de operações de escrita e de leitura Todos os dados são codificados em formato binário Memória Endereço InstruçãoDado C 2022 Bruno Prado Departamento de Computação UFS 27 53 Memória Tecnologias de memória Volátil Não retém as informações com a interrupção de fornecimento de eletricidade Ex DRAM SRAM Não volátil Dados são escritos e lidos eletricamente com persistência da informação Ex ROM EEPROM Flash C 2022 Bruno Prado Departamento de Computação UFS 28 53 Memória Endereçamento de 32 bits 4 GiB Diagrama de blocos Processador Memória 32 1 32 32 32 1 32 32 Endereço Escritaleitura Dado Dado C 2022 Bruno Prado Departamento de Computação UFS 29 53 Memória Tipos de endereçamento Valor imediato para acessar endereços constantes 1 R1 Memória 0 x00000100 2 l8 r1 0 x100 3 R2 Memória 0 x00000100 4 l16 r2 0x80 5 R3 Memória 0 x00000100 6 l32 r3 0x40 C 2022 Bruno Prado Departamento de Computação UFS 30 53 Memória Tipos de endereçamento Baseado em registrador para acesso indireto 1 R1 0x100 2 mov r1 0x100 3 R2 Memória 0 x00000100 4 l8 r2 r1 5 R1 R1 1 6 sra r1 1 7 R3 Memória 0 x00000100 8 l16 r3 r1 9 R1 R1 1 10 sra r1 1 11 R4 Memória 0 x00000100 12 l32 r4 r1 C 2022 Bruno Prado Departamento de Computação UFS 31 53 Memória Tipos de endereçamento Indireto e imediato para acesso linear 1 R1 0x40 2 mov r1 0x40 3 R2 Memória 0 x00000100 4 l32 r2 r1 0 5 R3 Memória 0 x00000104 6 l32 r3 r1 1 7 R4 Memória 0 x00000108 8 l32 r4 r1 2 C 2022 Bruno Prado Departamento de Computação UFS 32 53 Memória Tamanho típico dos tipos de dados Tipos inteiros Tipo Bits Com sinal Sem sinal char 8 27 27 1 0 28 1 short 16 215 215 1 0 216 1 int¹ 16 64 263 263 1 0 264 1 long¹ 32 64 263 263 1 0 264 1 long long¹ 64 263 263 1 0 264 1 ¹ Valores dependentes da plataforma Padronização por tamanho e sinal em stdinth C 2022 Bruno Prado Departamento de Computação UFS 33 53 Memória Tamanho típico dos tipos de dados Tipos inteiros Tipo Bits Com sinal Sem sinal char 8 27 27 1 0 28 1 short 16 215 215 1 0 216 1 int¹ 16 64 263 263 1 0 264 1 long¹ 32 64 263 263 1 0 264 1 long long¹ 64 263 263 1 0 264 1 ¹ Valores dependentes da plataforma Padronização por tamanho e sinal em stdinth C 2022 Bruno Prado Departamento de Computação UFS 34 53 Memória Tamanho típico dos tipos de dados Tipos reais Tipo Bits Alcance float 32 1 2E38 3 4E38 double 64 2 3E308 1 7E308 long double¹ 80 128 3 4E4932 1 1E4932 ¹ Valores dependentes da plataforma C 2022 Bruno Prado Departamento de Computação UFS 35 53 Memória Alinhamento dos dados na memória Dados alinhados Preenchimento com zeros padding 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 00 00 00 40 0x00000104 AB CD 11 22 0x00000108 00 00 12 34 Bigendian C 2022 Bruno Prado Departamento de Computação UFS 36 53 Memória Alinhamento dos dados na memória Dados alinhados Preenchimento com zeros padding 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 00 00 00 40 0x00000104 AB CD 11 22 0x00000108 00 00 12 34 Bigendian C 2022 Bruno Prado Departamento de Computação UFS 37 53 Memória Alinhamento dos dados na memória Dados alinhados Preenchimento com zeros padding 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 40 00 00 00 0x00000104 22 11 CD AB 0x00000108 34 12 00 00 Littleendian C 2022 Bruno Prado Departamento de Computação UFS 38 53 Memória Alinhamento dos dados na memória Dados alinhados Preenchimento com zeros padding 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 40 00 00 00 0x00000104 22 11 CD AB 0x00000108 34 12 00 00 Littleendian C 2022 Bruno Prado Departamento de Computação UFS 39 53 Memória Alinhamento dos dados na memória Dados não alinhados Acesso complexo e específico 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 40 AB CD 11 0x00000104 22 12 34 Bigendian C 2022 Bruno Prado Departamento de Computação UFS 40 53 Memória Alinhamento dos dados na memória Dados não alinhados Acesso complexo e específico 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 40 22 11 CD 0x00000104 AB 34 12 Littleendian C 2022 Bruno Prado Departamento de Computação UFS 41 53 Memoria Alinnamento da meméria Qual é a melhor abordagem Alinnhados Ndo alinhados Desempenho no acesso Economia de espaco V Simplicidade de uso x Complexidade de acesso x Desperdicio de espaco x Suporte da arquitetura C 2022 Bruno Prado Departamento de Computado UFS 4253 Memória Arquitetura Harvard São utilizadas duas memórias fisicamente separadas para armazenar as instruções e os dados A memória de programa só permite leitura enquanto que a memória de dados permite escrita e leitura Aplicação text PC 0xFFFF 0x0000 Pilha Heap Dados não inicializados bss Dados inicializados data SP 0xFFFF 0x0000 C 2022 Bruno Prado Departamento de Computação UFS 43 53 Memoria Arquitetura Harvard Sdo utilizadas duas memérias fisicamente separadas para armazenar as instrudes e os dados Ameméria de programa so permite leitura enquanto que a meméria de dados permite escrita e leitura OxFFEFE OxFFEFE i Aplicacdo text Heap Dados nao inicializados ss Dados inicializados on Ox0000 deta Ox0000 V Acesso paralelo das instrucées e dos dados C 2022 Bruno Prado Departamento de Computado UFS 4453 Memoria Arquitetura Harvard Sdo utilizadas duas memérias fisicamente separadas para armazenar as instrudes e os dados Ameméria de programa so permite leitura enquanto que a meméria de dados permite escrita e leitura OxFFEFE OxFFEFE i Aplicacdo text Heap Dados nao inicializados ss Dados inicializados on Ox0000 deta Ox0000 V Protecdo contra modificacdo da aplicacdo C 2022 Bruno Prado Departamento de Computado UFS 4553 Memoria Arquitetura Harvard Sdo utilizadas duas memérias fisicamente separadas para armazenar as instrudes e os dados Ameméria de programa so permite leitura enquanto que a meméria de dados permite escrita e leitura OxFFEFE OxFFEFE Aplicacdo text Heap Dados nao inicializados ss Dados inicializados oe Ox0000 deta Ox0000 x Componente adicional de meméria C 2022 Bruno Prado Departamento de Computado UFS 46 53 Memoria Arquitetura Harvard Sdo utilizadas duas memérias fisicamente separadas para armazenar as instrudes e os dados Ameméria de programa so permite leitura enquanto que a meméria de dados permite escrita e leitura OxFFEFE OxFFEFE SP Aplicacdo text Heap Dados nao inicializados ss Dados inicializados oe Ox0000 deta Ox0000 X Pior aproveitamento da capacidade C 2022 Bruno Prado Departamento de Computado UFS 4753 Memória Arquitetura Von Neumann Princeton É utilizada somente uma memória compartilhada para armazenar as instruções e os dados Tanto o código de programa como os dados podem ser acessados para escrita e leitura Pilha Heap Dados não inicializados bss Dados inicializados data Aplicação text PC SP 0xFFFF 0x0000 C 2022 Bruno Prado Departamento de Computação UFS 48 53 Memoria Arquitetura Von Neumann Princeton E utilizada somente uma memoria compartilhada para armazenar as instrudes e os dados Tanto o cédigo de programa como os dados podem ser acessados para escrita e leitura OxFEFE Dados nao inicializados Bss Dados inicializados data Aplicacdo text PC OxO0000 Vv Capacidade de automodificacdo da aplicacdo C 2022 Bruno Prado Departamento de Computado UFS 4953 Memoria Arquitetura Von Neumann Princeton E utilizada somente uma memoria compartilhada para armazenar as instrudes e os dados Tanto o cédigo de programa como os dados podem ser acessados para escrita e leitura OxFEFE so Dados nao inicializados Bss Dados inicializados data Aplicacdo text PC OxO0000 V Uso eficiente da meméria C 2022 Bruno Prado Departamento de Computado UFS 5053 Memoria Arquitetura Von Neumann Princeton E utilizada somente uma memoria compartilhada para armazenar as instrudes e os dados Tanto o cédigo de programa como os dados podem ser acessados para escrita e leitura OxFEFE Dados nao inicializados Bss Dados inicializados data Aplicacdo text PC OxO0000 X Acesso sequencial de instrugoes e dados C 2022 Bruno Prado Departamento de Computado UFS 5153 Memoria Arquitetura Von Neumann Princeton E utilizada somente uma memoria compartilhada para armazenar as instrudes e os dados Tanto o cédigo de programa como os dados podem ser acessados para escrita e leitura OxFEFE Dados nao inicializados Bss Dados inicializados data Aplicacdo text PC OxO0000 X Mais vulnerdvel a ataques e falhas C 2022 Bruno Prado Departamento de Computado UFS 5253 Exemplo Considerando uma arquitetura loadstore e o código fonte abaixo calcule seu tempo de execução O processador opera com um frequência de 4 GHz e a memória possui latência média de 10 ns 1 Padrão de tipos por tamanho 2 include stdinth 3 Função principal 4 int main 5 uint32t a 1 i 1000 6 whilei 0 7 a a i 8 i 9 10 return 0 11 Compare o tempo de execução caso todas as operações acessem diretamente a memória C 2022 Bruno Prado Departamento de Computação UFS 53 53
Send your question to AI and receive an answer instantly
Recommended for you
77
Conjunto de Instruções da Arquitetura de Computadores
Organização de Computadores
UFS
73
Linguagem de Máquina e de Montagem na Arquitetura de Computadores
Organização de Computadores
UFS
3
Prova Organização de Computadores - Unip
Organização de Computadores
UNIP
2
Atividade de Arquitetura de Computadores: Montagem de Circuito Lógico e Tabela Verdade
Organização de Computadores
UNOPAR
8
Prova1_ftc
Organização de Computadores
UFOP
6
Ptis Senac
Organização de Computadores
UMG
4
prova - Organização de Computadores - Unip
Organização de Computadores
UMG
8
Prova1_ftc
Organização de Computadores
UFOP
Preview text
Registradores e memória Arquitetura de Computadores Bruno Prado Departamento de Computação UFS Introdução Já foi visto que os computadores funcionam executando uma programação sequência de operações e de dados armazenada em memória Processador Código Dados Como os operandos são armazenados Imediata Registrador Memória Por que utilizar diferentes formas de armazenamento para os operandos C 2022 Bruno Prado Departamento de Computação UFS 2 53 Introdução Já foi visto que os computadores funcionam executando uma programação sequência de operações e de dados armazenada em memória Processador Código Dados Como os operandos são armazenados Imediata Registrador Memória Por que utilizar diferentes formas de armazenamento para os operandos C 2022 Bruno Prado Departamento de Computação UFS 3 53 Introdução Já foi visto que os computadores funcionam executando uma programação sequência de operações e de dados armazenada em memória Processador Código Dados Como os operandos são armazenados Imediata Registrador Memória Por que utilizar diferentes formas de armazenamento para os operandos C 2022 Bruno Prado Departamento de Computação UFS 4 53 Introdução Capacidade Custo Latência Tipo Capacidade Custo Latência Imediato 1 3 bytes SRAM 2 KiB 32 Mbit US 5k GiB 020 2 ns DRAM 1 16 GiB US 3 GiB 10 ns C 2022 Bruno Prado Departamento de Computação UFS 5 53 Registrador O que é um registrador É uma memória interna do processador Geralmente do tamanho da arquitetura 16 bits 32 bits 64 bits 0 15 0 31 0 63 Tipos Propósito geral Controle e status C 2022 Bruno Prado Departamento de Computação UFS 6 53 Registrador Propósito geral R0R25 Definido pelo programador Armazenamento ou endereçamento Processador R0 R1 R24 R25 C 2022 Bruno Prado Departamento de Computação UFS 7 53 Registrador Propósito geral R0R25 Indexáveis de 0 até 25 R0 possui valor constante 0 e os demais registradores podem armazenar valores de 32 bits com ou sem sinal 0 2147483648 2147483647 0 31 R0 0 31 R1 R25 C 2022 Bruno Prado Departamento de Computação UFS 8 53 Registrador Propósito geral R0R25 Indexáveis de 0 até 25 R0 possui valor constante 0 e os demais registradores podem armazenar valores de 32 bits com ou sem sinal 0 0 4294967295 0 31 R0 0 31 R1 R25 C 2022 Bruno Prado Departamento de Computação UFS 9 53 Registrador Controle e status IR PC SP SR Indexáveis de 28 até 31 São utilizados para o funcionamento do processador Processador R0 R1 R24 R25 IR PC SP SR C 2022 Bruno Prado Departamento de Computação UFS 10 53 Registrador Controle e status IR PC SP SR Indexáveis de 28 até 31 São utilizados para o funcionamento do processador Processador R0 R1 R24 R25 IR PC SP SR Registrador de instrução IR armazena a instrução carregada da memória e em execução C 2022 Bruno Prado Departamento de Computação UFS 11 53 Registrador Controle e status IR PC SP SR Indexáveis de 28 até 31 São utilizados para o funcionamento do processador Processador R0 R1 R24 R25 IR PC SP SR Contador de programa PC controla o fluxo de execução da aplicação apontando para as instruções C 2022 Bruno Prado Departamento de Computação UFS 12 53 Registrador Controle e status IR PC SP SR Indexáveis de 28 até 31 São utilizados para o funcionamento do processador Processador R0 R1 R24 R25 IR PC SP SR Ponteiro de pilha SP referencia o topo da pilha na memória alocação estática e subrotinas C 2022 Bruno Prado Departamento de Computação UFS 13 53 Registrador Controle e status IR PC SP SR Indexáveis de 28 até 31 São utilizados para o funcionamento do processador Processador R0 R1 R24 R25 IR PC SP SR Registrador de status SR controle de configurações e status das operações do processador C 2022 Bruno Prado Departamento de Computação UFS 14 53 Registrador Registrador de instrução IR Índice 28 Código da instrução 0 31 R28 IR Contador de programa PC Índice 29 Endereço da instrução 0 31 R29 PC Ponteiro de pilha SP Índice 30 Endereço da pilha 0 31 R30 SP C 2022 Bruno Prado Departamento de Computação UFS 15 53 Registrador Registrador de status SR Índice 31 ZN ZD SN OV IV CY 0 1 2 3 4 5 6 7 31 R31 SR Resultado de operações entre A e B ZN zero igual a 0 ZD divisão por zero divisor B 0 SN sinal sinal negativo OV overflow extrapolação de capacidade IV instrução inválida código de operação inválido CY carry vai a um aritmético C 2022 Bruno Prado Departamento de Computação UFS 16 53 Registrador Quais os cenários de operação com os dados 1 Acessar e operar diretamente em memória 2 Ler os dados da memória realizar as operações em registradores e escrever os resultados na memória Processador Memória 5 GHz 020 ns DDR4 10 ns Cenário com 100 instruções que acessam a memória para ler uma variável em memória Cenário 1 100 0 2 ns 10 ns 1020 ns Cenário 2 10 2 ns 100 0 2 ns 10 2 ns 40 4 ns Operações com registradores são 25 vezes mais rápidas C 2022 Bruno Prado Departamento de Computação UFS 17 53 Registrador Quais os cenários de operação com os dados 1 Acessar e operar diretamente em memória 2 Ler os dados da memória realizar as operações em registradores e escrever os resultados na memória Processador Memória 5 GHz 020 ns DDR4 10 ns Cenário com 100 instruções que acessam a memória para ler uma variável em memória Cenário 1 100 0 2 ns 10 ns 1020 ns Cenário 2 10 2 ns 100 0 2 ns 10 2 ns 40 4 ns Operações com registradores são 25 vezes mais rápidas C 2022 Bruno Prado Departamento de Computação UFS 18 53 Registrador Quais os cenários de operação com os dados 1 Acessar e operar diretamente em memória 2 Ler os dados da memória realizar as operações em registradores e escrever os resultados na memória Processador Memória 5 GHz 020 ns DDR4 10 ns Cenário com 100 instruções que acessam a memória para ler uma variável em memória Cenário 1 100 0 2 ns 10 ns 1020 ns Cenário 2 10 2 ns 100 0 2 ns 10 2 ns 40 4 ns Operações com registradores são 25 vezes mais rápidas C 2022 Bruno Prado Departamento de Computação UFS 19 53 Registrador Arquitetura de carregamentoarmazenamento Operações apenas com registradores loadstore Sempre que um dado é necessário é feito seu carregamento prévio da memória Quando todas as operações já foram concluídas o dado é armazenado de volta para a memória C 2022 Bruno Prado Departamento de Computação UFS 20 53 Registrador Arquitetura de carregamentoarmazenamento Operacdes apenas com registradores loaastore Sempre que um dado é necessario é feito seu carregamento prévio da memoria Quando todas as operacées jd foram concluidas o dado 6 armazenado de volta para a meméria VY Acesso muito rapido com registradores Regularidade e simplicidade no enderecamento C 2022 Bruno Prado Departamento de Computado UFS 2153 Registrador Arquitetura de carregamentoarmazenamento Operacdes apenas com registradores loaastore Sempre que um dado é necessario é feito seu carregamento prévio da memoria Quando todas as operacées jd foram concluidas o dado 6 armazenado de volta para a meméria X Baixa capacidade de armazenamento Numero limitado de registradores C 2022 Bruno Prado Departamento de Computado UFS 2253 Registrador E quando forem necessarios mais registradores do que estdo disponiveis Acessando multiplos elementos de um vetor Alocagdo dindmica e estdtica de dados Chamadas de funcdes aninhadas ou recursivas C 2022 Bruno Prado Departamento de Computado UFS 2353 Registrador E quando forem necessarios mais registradores do que estdo disponiveis Acessando multiplos elementos de um vetor Alocagdo dindmica e estdtica de dados Chamadas de funcdes aninhadas ou recursivas V Realizar mais acessos a memoria V Utilizar a estrutura de pilha C 2022 Bruno Prado Departamento de Computado UFS 2453 Memória O que é uma memória É um dispositivo semicondutor para armazenamento em estado sólido de informações Permite o endereçamento de posições para realização de operações de escrita e de leitura Todos os dados são codificados em formato binário Memória Endereço InstruçãoDado C 2022 Bruno Prado Departamento de Computação UFS 25 53 Memória O que é uma memória É um dispositivo semicondutor para armazenamento em estado sólido de informações Permite o endereçamento de posições para realização de operações de escrita e de leitura Todos os dados são codificados em formato binário Memória Endereço InstruçãoDado C 2022 Bruno Prado Departamento de Computação UFS 26 53 Memória O que é uma memória É um dispositivo semicondutor para armazenamento em estado sólido de informações Permite o endereçamento de posições para realização de operações de escrita e de leitura Todos os dados são codificados em formato binário Memória Endereço InstruçãoDado C 2022 Bruno Prado Departamento de Computação UFS 27 53 Memória Tecnologias de memória Volátil Não retém as informações com a interrupção de fornecimento de eletricidade Ex DRAM SRAM Não volátil Dados são escritos e lidos eletricamente com persistência da informação Ex ROM EEPROM Flash C 2022 Bruno Prado Departamento de Computação UFS 28 53 Memória Endereçamento de 32 bits 4 GiB Diagrama de blocos Processador Memória 32 1 32 32 32 1 32 32 Endereço Escritaleitura Dado Dado C 2022 Bruno Prado Departamento de Computação UFS 29 53 Memória Tipos de endereçamento Valor imediato para acessar endereços constantes 1 R1 Memória 0 x00000100 2 l8 r1 0 x100 3 R2 Memória 0 x00000100 4 l16 r2 0x80 5 R3 Memória 0 x00000100 6 l32 r3 0x40 C 2022 Bruno Prado Departamento de Computação UFS 30 53 Memória Tipos de endereçamento Baseado em registrador para acesso indireto 1 R1 0x100 2 mov r1 0x100 3 R2 Memória 0 x00000100 4 l8 r2 r1 5 R1 R1 1 6 sra r1 1 7 R3 Memória 0 x00000100 8 l16 r3 r1 9 R1 R1 1 10 sra r1 1 11 R4 Memória 0 x00000100 12 l32 r4 r1 C 2022 Bruno Prado Departamento de Computação UFS 31 53 Memória Tipos de endereçamento Indireto e imediato para acesso linear 1 R1 0x40 2 mov r1 0x40 3 R2 Memória 0 x00000100 4 l32 r2 r1 0 5 R3 Memória 0 x00000104 6 l32 r3 r1 1 7 R4 Memória 0 x00000108 8 l32 r4 r1 2 C 2022 Bruno Prado Departamento de Computação UFS 32 53 Memória Tamanho típico dos tipos de dados Tipos inteiros Tipo Bits Com sinal Sem sinal char 8 27 27 1 0 28 1 short 16 215 215 1 0 216 1 int¹ 16 64 263 263 1 0 264 1 long¹ 32 64 263 263 1 0 264 1 long long¹ 64 263 263 1 0 264 1 ¹ Valores dependentes da plataforma Padronização por tamanho e sinal em stdinth C 2022 Bruno Prado Departamento de Computação UFS 33 53 Memória Tamanho típico dos tipos de dados Tipos inteiros Tipo Bits Com sinal Sem sinal char 8 27 27 1 0 28 1 short 16 215 215 1 0 216 1 int¹ 16 64 263 263 1 0 264 1 long¹ 32 64 263 263 1 0 264 1 long long¹ 64 263 263 1 0 264 1 ¹ Valores dependentes da plataforma Padronização por tamanho e sinal em stdinth C 2022 Bruno Prado Departamento de Computação UFS 34 53 Memória Tamanho típico dos tipos de dados Tipos reais Tipo Bits Alcance float 32 1 2E38 3 4E38 double 64 2 3E308 1 7E308 long double¹ 80 128 3 4E4932 1 1E4932 ¹ Valores dependentes da plataforma C 2022 Bruno Prado Departamento de Computação UFS 35 53 Memória Alinhamento dos dados na memória Dados alinhados Preenchimento com zeros padding 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 00 00 00 40 0x00000104 AB CD 11 22 0x00000108 00 00 12 34 Bigendian C 2022 Bruno Prado Departamento de Computação UFS 36 53 Memória Alinhamento dos dados na memória Dados alinhados Preenchimento com zeros padding 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 00 00 00 40 0x00000104 AB CD 11 22 0x00000108 00 00 12 34 Bigendian C 2022 Bruno Prado Departamento de Computação UFS 37 53 Memória Alinhamento dos dados na memória Dados alinhados Preenchimento com zeros padding 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 40 00 00 00 0x00000104 22 11 CD AB 0x00000108 34 12 00 00 Littleendian C 2022 Bruno Prado Departamento de Computação UFS 38 53 Memória Alinhamento dos dados na memória Dados alinhados Preenchimento com zeros padding 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 40 00 00 00 0x00000104 22 11 CD AB 0x00000108 34 12 00 00 Littleendian C 2022 Bruno Prado Departamento de Computação UFS 39 53 Memória Alinhamento dos dados na memória Dados não alinhados Acesso complexo e específico 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 40 AB CD 11 0x00000104 22 12 34 Bigendian C 2022 Bruno Prado Departamento de Computação UFS 40 53 Memória Alinhamento dos dados na memória Dados não alinhados Acesso complexo e específico 1 char a 2 uint32t b 0xABCD1122 3 int16t c 0x1234 0x00000100 40 22 11 CD 0x00000104 AB 34 12 Littleendian C 2022 Bruno Prado Departamento de Computação UFS 41 53 Memoria Alinnamento da meméria Qual é a melhor abordagem Alinnhados Ndo alinhados Desempenho no acesso Economia de espaco V Simplicidade de uso x Complexidade de acesso x Desperdicio de espaco x Suporte da arquitetura C 2022 Bruno Prado Departamento de Computado UFS 4253 Memória Arquitetura Harvard São utilizadas duas memórias fisicamente separadas para armazenar as instruções e os dados A memória de programa só permite leitura enquanto que a memória de dados permite escrita e leitura Aplicação text PC 0xFFFF 0x0000 Pilha Heap Dados não inicializados bss Dados inicializados data SP 0xFFFF 0x0000 C 2022 Bruno Prado Departamento de Computação UFS 43 53 Memoria Arquitetura Harvard Sdo utilizadas duas memérias fisicamente separadas para armazenar as instrudes e os dados Ameméria de programa so permite leitura enquanto que a meméria de dados permite escrita e leitura OxFFEFE OxFFEFE i Aplicacdo text Heap Dados nao inicializados ss Dados inicializados on Ox0000 deta Ox0000 V Acesso paralelo das instrucées e dos dados C 2022 Bruno Prado Departamento de Computado UFS 4453 Memoria Arquitetura Harvard Sdo utilizadas duas memérias fisicamente separadas para armazenar as instrudes e os dados Ameméria de programa so permite leitura enquanto que a meméria de dados permite escrita e leitura OxFFEFE OxFFEFE i Aplicacdo text Heap Dados nao inicializados ss Dados inicializados on Ox0000 deta Ox0000 V Protecdo contra modificacdo da aplicacdo C 2022 Bruno Prado Departamento de Computado UFS 4553 Memoria Arquitetura Harvard Sdo utilizadas duas memérias fisicamente separadas para armazenar as instrudes e os dados Ameméria de programa so permite leitura enquanto que a meméria de dados permite escrita e leitura OxFFEFE OxFFEFE Aplicacdo text Heap Dados nao inicializados ss Dados inicializados oe Ox0000 deta Ox0000 x Componente adicional de meméria C 2022 Bruno Prado Departamento de Computado UFS 46 53 Memoria Arquitetura Harvard Sdo utilizadas duas memérias fisicamente separadas para armazenar as instrudes e os dados Ameméria de programa so permite leitura enquanto que a meméria de dados permite escrita e leitura OxFFEFE OxFFEFE SP Aplicacdo text Heap Dados nao inicializados ss Dados inicializados oe Ox0000 deta Ox0000 X Pior aproveitamento da capacidade C 2022 Bruno Prado Departamento de Computado UFS 4753 Memória Arquitetura Von Neumann Princeton É utilizada somente uma memória compartilhada para armazenar as instruções e os dados Tanto o código de programa como os dados podem ser acessados para escrita e leitura Pilha Heap Dados não inicializados bss Dados inicializados data Aplicação text PC SP 0xFFFF 0x0000 C 2022 Bruno Prado Departamento de Computação UFS 48 53 Memoria Arquitetura Von Neumann Princeton E utilizada somente uma memoria compartilhada para armazenar as instrudes e os dados Tanto o cédigo de programa como os dados podem ser acessados para escrita e leitura OxFEFE Dados nao inicializados Bss Dados inicializados data Aplicacdo text PC OxO0000 Vv Capacidade de automodificacdo da aplicacdo C 2022 Bruno Prado Departamento de Computado UFS 4953 Memoria Arquitetura Von Neumann Princeton E utilizada somente uma memoria compartilhada para armazenar as instrudes e os dados Tanto o cédigo de programa como os dados podem ser acessados para escrita e leitura OxFEFE so Dados nao inicializados Bss Dados inicializados data Aplicacdo text PC OxO0000 V Uso eficiente da meméria C 2022 Bruno Prado Departamento de Computado UFS 5053 Memoria Arquitetura Von Neumann Princeton E utilizada somente uma memoria compartilhada para armazenar as instrudes e os dados Tanto o cédigo de programa como os dados podem ser acessados para escrita e leitura OxFEFE Dados nao inicializados Bss Dados inicializados data Aplicacdo text PC OxO0000 X Acesso sequencial de instrugoes e dados C 2022 Bruno Prado Departamento de Computado UFS 5153 Memoria Arquitetura Von Neumann Princeton E utilizada somente uma memoria compartilhada para armazenar as instrudes e os dados Tanto o cédigo de programa como os dados podem ser acessados para escrita e leitura OxFEFE Dados nao inicializados Bss Dados inicializados data Aplicacdo text PC OxO0000 X Mais vulnerdvel a ataques e falhas C 2022 Bruno Prado Departamento de Computado UFS 5253 Exemplo Considerando uma arquitetura loadstore e o código fonte abaixo calcule seu tempo de execução O processador opera com um frequência de 4 GHz e a memória possui latência média de 10 ns 1 Padrão de tipos por tamanho 2 include stdinth 3 Função principal 4 int main 5 uint32t a 1 i 1000 6 whilei 0 7 a a i 8 i 9 10 return 0 11 Compare o tempo de execução caso todas as operações acessem diretamente a memória C 2022 Bruno Prado Departamento de Computação UFS 53 53