Organização de sistemas de computadores
- somente operações LOAD/STORE devem referenciar a memória.
- necessários muitos registradores, trabalhando em uma pipeline unica ou dividida em threads físicas e/ou logicas, onde cada registrador manipulado pode ser parte do processo.
#Memoria #cache #ram #paralelismo
Instruções
[[Conjunto de Instruções]] [[Ciclo de instrução – O retorno]] A CPU executa cada instrução em uma série de pequenas etapas. Em termos simples, as etapas são as seguintes:
- Trazer a próxima instrução da memória até o registrador ele instrução.
- Alterar o contador de programa para que aponte para a próxima instrução.
- Determinar o tipo de instrução trazida.
- Se a instrução usar uma palavra na memória, determinar onde essa palavra está.
- Trazer a palavra para dentro de um registrador da CPU, se necessário.
- Executar a instrução.
- Voltar à etapa 1 para iniciar a execução da instrução seguinte.
Paralelismo
[[Paralelismo em nível de instrução]] [[Paralelismo em nível de dados]] [[Paralelismo em nível de thread (n vou terminar esse)]]
Memória
[[Memórias]]
Dividida em células (ou locais) os quais são referenciados por um endereço único e indicado para cada célula.
- os bytes em uma palavra podem ser organizados
- big endian -> bytes numerados da esquerda pra direita
- little endian-> bytes numerados da direita pra esquerda
![[Pasted image 20240814174741.png]]
devido a possibilidade de falhas, faz-se necessária a detecção de erros. Veja: [[#Error Handling]] e tipos de memória
Error Handling
Código de Hamming
Dadas duas palavras de código quaisquer, por exemplo, 10001001 e 10110001, é possível determinar quantos bits correspondentes são diferentes. Nesse caso, 3.
O número de posições de bit nas quais as duas palavras de código diferem é denominado distância de Hamming (Hamming, 1950).
Se duas palavras de código estiverem separadas por uma distância de Hamming d, será preciso d erros de único bit para converter uma na outra.
ex: Por exemplo, as palavras de código 11110001 e 00110000 estão a uma distância de Hamming 3 porque é preciso 3 erros de único bit para converter uma na outra.
palavra = m + r $\implies$ (qtd de bits de dados) + (qtd de bits de paridade)
- ex: uma palavra com 16 bits de dados tem q ter 5 de paridade (1, 2, 4, 8 e 16 ($2^{i} >= m$ -> i = 0, 1, 2, 3, 4)) ![[Pasted image 20240904103651.png]]
se os bits de paridade 1 e 4 estiverem incorretos, mas 2, 8 e 16 estiverem corretos, o bit 5 (1 + 4) foi invertido.
Memória Secundária
[[1-2 - Armazenamento secundário]] ![[Pasted image 20240904104532.png]]
RAID
[[Memoria Interna#RAID (Redundant Array of Independent Disks)]] a ideia é conseguir utilizar diversos drives logicamente conectados sendo tratados com um SLED (disco único e grandão) e acessar seus dados de forma paralela.
alguns RAID’s promovem versões diferentes de paridade, no geral, sem seguir a de Hamming.
exemplos:
Solid State Drive (SSD -> memória flash não volátil): bom CD-ROM: codifica cada byte em 14 bits, amontoados em quadros de 42 * 14 bytes CD-R e CD-RW: um só lê, já o outro…
Entrada e Saída
[[Entrada e Saída]]
Barramento PCI: ![[Pasted image 20240904111043.png]]
VRAM -> memória RAM feita pra armazenar pixels e buffers de vídeo.

