Monitoria ORG

  • Inicio
  • Cursos
  • Aritmética não Decimal
    • C2 para SM
    • Base 10
    • Contas em C2
    • Contas
    • Conversao
  • Questionários
    • Complemento 2
    • C2 para SM
    • Conversão de Bases
  • Fichamento

Fichamento do Capítulo 5 do Livro Organização e Projeto de Computadores, 4ª Edição, de Patterson e Hennessy. (até a página 410)
  • O princípio da localidade diz que os programas acessam uma parte relativamente pequena do seu espaço de endereçamento em qualquer instante do tempo.(pg.364)
    • Localidade temporal (localidade no tempo): se um item é referenciado, ele tenderá a ser referenciado novamente em breve; (pg.364)
    • Localidade espacial (localidade no espaço): se um item é referenciado, os itens cujos endereços estão próximos tenderão a ser referenciados em breve. (pg.364)
  • A memória principal é implementada por meio de DRAM (Dinamic Ran- dom Access Memory), enquanto os níveis mais próximos do processador (caches) usam SRAM (Static Random Access Memory). 
    • A DRAM é mais barata por bit do que a SRAM, embora seja substancialmente mais lenta. (pg.365)
  • Uma hierarquia de memória pode consistir em múltiplos níveis, mas os dados são copiados apenas entre dois níveis adjacentes ao mesmo tempo, de modo que podemos concentrar nossa atenção em apenas dois níveis.
    • O nível superior – o que está mais perto do processador – é menor e mais rápido (já que usa tecnologia mais cara) do que o nível inferior.
    • A unidade de informação mínima que pode estar presente ou ausente na hierarquia de dois níveis é denominada um bloco ou uma linha.
    • Se os dados requisitados pelo processador aparecerem em algum bloco no nível superior, isso é chamado um acerto (...). Se os dados não forem encontrados no nível superior, a requisição é chamada uma falha. O nível inferior em uma hierarquia é, então, acessado para recuperar o bloco com os dados requisitados.
    • O tempo de acerto é o tempo para acessar o nível superior da hierarquia de memória, que inclui o tempo necessário para determinar se o acesso é um acerto ou uma falha (...). A penalidade de falha é o tempo de substituição de um bloco no nível superior pelo bloco correspondente do nível inferior, mais o tempo para transferir esse bloco ao processador (pg. 366)

  • Agora, sabemos onde olhar na cache para cada endereço possível: os bits menos significativos de um endereço podem ser usados para encontrar a entrada de cache única para a qual o endereço poderia ser mapeado, sendo dividido em:
    • um campo tag, usado para ser comparado com o valor do campo tag da cache;
    • um índice de cache, usado para selecionar o bloco.
      • O índice de um bloco de cache, juntamente com o conteúdo da tag desse bloco, especifica de modo único o endereço de memória da palavra contida no bloco de cache. Como o campo índice é usado como um endereço para acessar a cache e como um campo de n bits possui 2 n valores, o número total de entradas em uma cache diretamente mapeada será uma potência de dois. (pg 370)
  • Um problema mais sério associado a apenas aumentar o tamanho de bloco é que o custo de uma falha aumenta. A penalidade de falha é determinada pelo tempo necessário para buscar o bloco do próximo nível mais baixo na hierarquia e carregá-lo na cache. O tempo para buscar o bloco possui duas partes: a latência até a primeira palavra e o tempo de transferência para o restante do bloco. (pg 376)
  • Quando uma escrita na memória principal é concluída, a entrada no buffer de escrita é liberada. Se o buffer de escrita estiver cheio quando o processador atingir uma escrita, o processador precisará sofrer stall até que haja uma posição vazia no buffer de escrita. Naturalmente, se a velocidade em que a memória pode completar escritas for menor do que a velocidade em que o processador está gerando escritas, nenhuma quantidade de buffer pode ajudar, pois as escritas estão sendo geradas mais rápido do que o sistema de memória pode aceitá-las. (pg 376)

  • A velocidade de clock do barramento geralmente é muito mais lenta do que a do processador. A velocidade desse barramento afeta a penalidade de falha. (pg 379)
  • Devido à onipresença das caches e ao desejo de tamanhos de bloco maiores, os fabricantes de DRAM fornecem um acesso em rajada aos dados de locais sequenciais na DRAM. O desenvolvimento mais recente são as DRAMs Double Data Rate (DDR). O nome significa que os dados são transferidos tanto na transição de subida quanto na transição de descida do clock, gerando, assim, o dobro da largura de banda que se poderia esperar com base na velocidade de clock e na largura de dados. Para oferecer uma largura de banda tão grande, a DRAM interna é organizada em bancos de memória intercalados. (pg 380)

  • Um esquema em que um bloco pode ser posicionado em qualquer local na cache. Esse esquema é chamado de totalmente associativo porque um bloco na memória pode ser associado com qualquer entrada da cache. Para encontrar um determina- do bloco em uma cache totalmente associativa, todas as entradas da cache precisam ser pesquisadas, pois um bloco pode estar posicionado em qualquer uma delas. (pg 386)
  • A faixa intermediária de projetos entre a cache diretamente mapeada e a cache total- mente associativa é chamada de associativa por conjunto. Em uma cache associativa por conjunto, existe um número fixo de locais (pelo menos dois) onde cada bloco pode ser colocado; (pg 386)
  • Da mesma forma, a memória principal pode agir como uma “cache” para o armazenamento secundário, normalmente implementado com discos magnéticos. Essa técnica é chamada de memória virtual. Historicamente, houve duas motivações principais para a memória virtual:
    • permitir o compartilhamento seguro e eficiente da memória entre vários programas e remover os transtornos de programação de uma quantidade pequena e limitada de memória principal (pg 396)
    • A memória virtual implementa a tradução do espaço de endereçamento de um programa para os endereços físicos. Esse processo de tradução impõe a proteção do espaço de endereçamento de um programa contra outros programas. (pg 396)
    • A memória virtual também simplifica o carregamento do programa para execução fornecendo relocação. A relocação mapeia os endereços virtuais usados por um programa para diferentes endereços físicos antes que os endereços sejam usados no acesso à memória. Essa relocação nos permite carregar o programa em qualquer lugar na memória principal. (pg 397)

  • Quando o sistema operacional obtém o controle, ele precisa encontrar a página no próximo nível da hierarquia (geralmente o disco magnético) e decidir onde colocar a página requisitada na memória principal.
    • O sistema operacional normalmente cria o espaço no disco para todas as páginas de um processo no momento em que ele cria o processo. Esse espaço do disco é chamado de área de swap.(pg 401)
    • Quando ocorre uma falta de página, se todas as páginas na memória principal estiverem em uso, o sistema operacional precisa escolher uma página para substituir. (pg 402)
    • Cada processo possui seu próprio espaço de endereçamento virtual. Portanto, se o sistema operacional mantiver as tabelas de páginas organizadas de modo que as páginas virtuais independentes mapeiem as páginas físicas separadas, um processo não será capaz de acessar os dados de outro (pg 410)

Share
Tweet
Pin
Share
No comentários

Resumo da primeira parte das aulas de Memórias baseadas em anotações das aulas do professor Paulo Massilon e de apontamentos retirados do livro Organização e Arquitetura de computadores da autora Eliane Maria de Bortoli Fávero.
  • UCP: sigla representativa de Unidade Central de Processamento. Podemos dizer que se trata do componente principal do computador.
  • Representação: Bits, conjunto de Bits.
  • Operação: Leitura e Gravação
  • Localização: Célula, palavra, Bloco
  • Uma célula é uma unidade endereçada,
  • A memória é dividida em células, cada célula é uma unidade endereçada (tem um endereço).
    • Ao juntar uma quantidade de células se faz um bloco, o tamanho do bloco define a largura de transferência.
      • A largura de transferência varia conforme o tamanho do bloco.
  • De acordo com o modelo de Von Neumann, a UCP, ou processador deve capturar dados e instruções que compõem um programa e processá-los, não importando sua origem ou destino, para que o processador possa executar os programas, seus dados e instruções devem estar armazenados na memória.
  • Registradores: “O processador busca dados e instruções de onde estiverem armazenadas e os deposita temporariamente em seu interior para que possa realizar as operações solicitadas utilizando seus demais componentes (seria análogo à função memória de uma calculadora). Os dispositivos denominados registradores são os locais onde esse conteúdo fica armazenado. Assim, o conceito de registrador surgiu da necessidade do processador de armazenar temporariamente dados intermediários durante um processamento.” - Livro Organização e arquitetura de computadores, pg 47. Os registradores ficam no topo da piramide, sua velocidade de transferência dentro do processador é bastante alta, sua capacidade e armazenamento é baixa e seu custo é alto.
  • O tamanho máximo da memória principal é definido por registradores de endereço de memória. O limite da memória é a elevação de 2 ao endereço de memória.
    • Int, char, float (e demais ) dizem ao compilador o tamanho do endereço.
  • REM – Responsável pelo limite da memória.
    • “O REM, também chamado de MAR (Memory Address Register), é um registrador que armazena temporariamente o endereço de acesso a uma posição de memória, necessário ao se iniciar uma operação de leitura ou de escrita. Em seguida, o referido endereço é encaminhado à controladora da memória, principal identificação e localização da célula desejada. Permite armazenar a mesma quantidade de bits do barramento de endereço.” - Livro Organização e arquitetura de computadores pg 62
  • O endereçamento acontece na primeira célula.
  • UCP – Unidade Lógica e Unidade de controle.
    • Unidade de controle: Faz o sequenciamento, busca endereços, instruções.
  • Compilador: O programa compila antes de chegar a unidade de controle.
  • Quanto maior a distância da CPU/UCP, maior o tempo de acesso.
  • A memória principal é tão importante quanto a UCP, sem ela não seria possível disponibilizar os programas e seus dados para o processamento pela CPU, a memória é responsável por armazenar todos os programas que executam no computador e os dados que utilizam;
    • “encontra-se organizada em um conjunto de células, sendo que cada uma delas representa o agrupamento de uma quantidade de bits. Cada célula caracteriza uma unidade de armazenamento na memória e possui um endereço único, o qual é utilizado pelo processador para acessar seu conteúdo. Portanto, a célula é a menor unidade endereçável em um computador.”Livro Organização e arquitetura de computadores pg- 52.
  • A memória em disco não é volátil. O processo de hibernação pega tudo da memória volátil (RAN) e joga para o disco.
    • “A memória ROM (Read Only Memory) também é considerada uma memória principal, mas apresenta algumas diferenças em relação à memória RAM. A primeira delas é o fato de ser uma memória somente de leitura, ou seja, seu conteúdo é escrito uma vez e não é mais alterado, apenas consultado. Outra característica das memórias ROM é que elas são do tipo não voláteis, isto é, os dados gravados não são perdidos na ausência de energia elétrica ao dispositivo” - Livro Organização e arquitetura de computadores pg 53
    • “A memória principal é denominada memória RAM (Random Access Memory), corresponde a um tipo de memória volátil, ou seja, seu conteúdo fica armazenado enquanto o computador estiver ligado (energizado); ao desligar a corrente elétrica, o conteúdo da memória RAM é apagado. “ - Livro Organização e arquitetura de computadores pg 50
  • FRAMES – Quando se carrega os programas, as paginas vão para dentro dos frames, fazendo com que a memória fique “infinita”, se carregando nela só o que se usa. (paginação)
    • Conceito de Paginação: Só se pega o que for usar, o que tá ativo
      • A função vai para outra página quando não se tá usando, dessa forma não ocupando memória.
      • Os registradores ficam com a informação durante o tempo de execução
      • A cache fica com a informação durante o tempo de processo
  • O que mais se usa em uma máquina é o Sistema Operacional
  • As máquinas são monoprocessadas, um programa de cada vez.
    • Quando um aplicativo roda, os outros param.
  • O s registradores se encontram dentro da UCP/CPU, possuem tamanho fixo, e contém várias células
  • Trade-off: Troca entre capacidade e custo. Quanto maior a capacidade maior o custo, é necessária para Localidade espacial:garantir a porcentagem alta de hits (taxa de acerto). Tipicamente entre:
    • 64 kb e 256 para a L2;
    • 256 kb e 2 mb para L3;
    • 32 KB E 64KB para L1;
  • Memória estática (SRAM) – A leitura do conteúdo se mantém
  • Memória Dinâmica (DRAM) – Se inverte os capacitores entre ligado e desligado.
    • A tecnologia de fabricação da memória cache é SRAM (Static Random Access Memory), a qual é bastante diferente das memórias DRAM (Dynamic Random Access Memory) – tecnologia da memória principal. A diferença é que nas memórias SRAM não há necessidade de refresh ou realimentação constante para que os dados armazenados não sejam perdidos. Livro Organização e arquitetura de computadores pg 49
  • BUFF de leitura: grava e regrava as informações
  • Pipeline – Processadores auxiliares que auxiliam os processos, cada etapa cuida de um processo. Várias instruções são realizadas de forma simultânea, embora em estágios diferentes.
    • O tempo para cada instrução é o mesmo que sem pipeline. O tempo total, de várias instruções, é menor. Potencialmente 3 vezes mais rápido que o processo não pipeline
  • A ideia da memória cache é entrar no caminho com algoritmos, e com uma memória pequena resolver os problemas de velocidade.
    • Surgiu pela observação do princípio de localidade
    • “Sua função principal é acelerar a velocidade de transferência das informações entre processador e memória principal e, com isso, aumentar o desempenho dos sistemas de computação. As memórias cache são voláteis, assim como os registradores, pois dependem de energia para manter o seu conteúdo armazenado. “ - Livro arquitetura de computadores – Livro Organização e arquitetura de computadores pg 48
        • “quando o processador solicita um determinado dado e o encontra na cache, não há necessidade de requisitá-lo à memória principal, reduzindo significativamente o tempo de processamento. Ou seja, quanto mais memória cache um processador possuir, melhor será o seu desempenho.” - Livro Organização e arquitetura de computadores pg 49
      • localidade temporal: posições temporais uma vez acessadas, tendem a ser acessadas novamente no futuro próximo (loops), esses são trechos de código (estrutura de repetição), que são carregados para perto da L1 e separados em instruções de dados.
      • Localidade espacial: O próximo endereço a ser acessado tende a ser próximo do endereço anterior. Sendo assim, uma sequencia de instruções.
  • Clock: “Monteiro (2007) define este dispositivo como um gerador de pulsos, cuja duração é chamada de ciclo, e a quantidade de vezes que esse pulso básico se repete em um segundo define a unidade de medida do relógio, denominada frequência, a qual também é usada para definir a velocidade na CPU. A unidade de medida utilizada para a frequência do relógio da UCP é o hertz (Hz), que significa um ciclo por segundo. “ Livro Organização e arquitetura de computadores pg. 65
  • Barramento - “O barramento conduz de modo sincronizado o fluxo de informações (dados e instruções, endereços e controles) de um componente para outro ao longo da placa-mãe, (…) é o caminho por onde trafegam todas as informações dentro do computador. Esse barramento é formado basicamente por três vias específicas: barramento de dados, barramento de endereços e barramento de controle. “Livro Organização e arquitetura de computadores pg 66
Material de apoio utilizado disponível em: http://redeetec.mec.gov.br/images/stories/pdf/eixo_infor_comun/tec_inf/081112_org_arq_comp.pdf


Share
Tweet
Pin
Share
No comentários

Percebam que o sinal permanece quando invertemos um número. Após inverter some 1.



Quando somamos o número 1, ocorre um excesso de "vai um" que chega até o bit do sinal, bit esse que "deveria" permanecer intacto a conversão. Esse estouro de base, (excesso de "vai um"), troca de sinal, é denominado Overflow

Obs: Os números positivos em sinal e magnitude permanecem os mesmo que em Complemento a 2. Números positivos, aqueles iniciados por zero. (o bit do sinal é igual a zero)
Share
Tweet
Pin
Share
No comentários
Sejam os valores representados em c2, com palavra de 10 bits, mostre a representação dos mesmos valores, se possível com palavras de 10 bits em sinal e magnitude

C2 para SM

Question #1: 1000000000


Question #2: 0000111010


Question #3: 1000000110


Question #4: 1111111111


Question #5: 0000110001


Question #6: 1000110100


Question #7: 1011011110


Share
Tweet
Pin
Share
No comentários
Segue algumas contas em complemento a 2, contas essas que são as respostas do questionário de c2:

Some os dois números e observe que ocorre o vai 1, sobre o bit de sinal e outro após o bit do sinal; a resposta é zero, pq o exercício pede 6 bits.

Se lembre que o computador não processa operação de subtração, então se lembre de inverter o subtraendo e somar 1. (011000 fica 100111 +1 = 101000)

  • Se ocorrer um e somente um dos dois "vai 1", (no bit do sinal e após a ele) ocorreu um estouro da base, overflow; 


Atenção : Nas contas de subtração se inverte todos os números e se soma 1 ao final, para aí sim fazer uma conta de adição. 
Share
Tweet
Pin
Share
No comentários
Os computadores interpretam um número na base 2, essa representação de números negativos e positivos utilizando números binários, é denominada  “complemento a dois”. 
  • A representação de números positivos em complemento é idêntica à representação em sinal e magnitude.
  • Para obter o C1 de um número binário, basta inverter inverter todos os bits.
  •  para obter o C2 de um número, obtemos primeiro o C1 (invertendo os bits) e depois somamos 1 ao resultado. (negativo)
  • Imagem retirada do material do professor Paulo Massilon:
A adição de dois números nesse sistema de representação segue duas regras:
  • Some os dois números e observe se ocorre o vai 1, sobre o bit de sinal e outro após o bit do sinal;
  • Se ocorrer um e somente um dos dois "vai 1", ocorreu um estouro da base, overflow; 
Para se efetuar uma conta de subtração é necessário inverter todos os números e somar 1. E aí sim, realizar a conta de adição:
  • Some os dois números e observe se ocorre o vai 1, sobre o bit de sinal e outro após o bit do sinal;
  • Se ocorrer um e somente um dos dois "vai 1", ocorreu um estouro da base, overflow; 

Sinal e Magnitude: 
  • Se lembre que em Sinal e Magnitude existem 2 zeros, o positivo e o negativo.
  • A representação negativa é a manutenção do Bit do sinal, a inversão de todos os números e a soma do 1, quando o bit do sinal muda se estoura a base. 
Imagem retirada do material do professor Paulo Massilon:

Material utilizado: Material do professor Paulo Massilon
Aritmética Binária disponível em: https://inf.ufes.br/~zegonc/material/Introducao_a_Computacao/Aritmetica_binaria_Complemento.pdf

Share
Tweet
Pin
Share
No comentários

indique os valores correspondentes

Question #1: 173033 (b.8)


Question #2: 10100100111(b.2)


Question #3: 22233031(b.4)


Question #4: 9A24FB(b.16)


Question #5: 98765(b.10)


Question #6: 111110100(b2)/11001(b.2)


Question #7: 4D2(B.16)*6(10)


Question #8: 74520(8)-950(16)


Question #9: 177777(b.8)+10(2)


Question #10: 7950(b.16)-31056(b.10)


Share
Tweet
Pin
Share
No comentários
Quando se faz uma operação de adição dentro de uma base que não é a 10, estamos na verdade fazendo a mesma operação que na base 10. Dividimos um valor pela base, e dessa forma o resto fica e o valor do quociente vai. (na base 10 conhecemos esse processo como "vai um", que na verdade pode ser bem mais q 1).

Quando se faz uma operação de subtração em qualquer base pedimos emprestado a base em que a conta tá sendo feita. O nosso famoso pede 1 emprestado nada mais é que pedir a base 10 emprestado. 



Share
Tweet
Pin
Share
No comentários
A quantidade de algarismos de um dado sistema é chamada de base; 
no sistema decimal a base é 10, no octal a base é oito, no hexadecimal a base é 16. 
O sistema binário possui apenas dois algarismos (0 e 1), sendo que sua base é 2. 
Um conjunto ordenado de bits na base 2 representa um número na base 10, ou em outras bases.
O último algarismo usado na base 2 é o 1, na 8 é o 7, na 16 o 15 e na 10 o 9, 
se aplicando a qualquer outra base. 
Conversão da base 10 para qualquer base:

Para se fazer a conversão estando na base 10 é necessário se dividir o número até que se obtenha o valor de zero no quociente, 
assim pegando todos os restos obtidos, 
do último até o primeiro.

Os exemplos a seguir foram retirados do site Dicas de programação:


Conversão da base binária para a octal:
Para se converter um número na base 2 para a base 8 é necessário, separar em grupos de 3 símbolos, sempre da direita para a esquerda, já que 2³ = 8¹. Dessa forma 3 símbolos na base 2 correspondem a 1 símbolo na base 8. 
Dessa forma o número 111.010.111 na base 2 corresponde à 727 
111 (mais à direita) – 1*2^0 + 1*2^1 + 1*2^2 = 7 
010 (ao centro) – 0*2^0 + 1*2^1 + 0*2^2 = 2 
111 (mais à esquerda) – 1*20 + 1*21 + 1*22 = 7
Conversão da base binária para a hexadecimal.
O mesmo ocorre com a conversão para hexadecimal.
Para se converter um número na base 2 para a base 16 é necessário, separar em grupos de 4 símbolos, sempre da direita para a esquerda, já que 2^4 = 16¹. Dessa forma 4 símbolos na base 2 correspondem a 1 símbolo na base 16. 
 Conversão de qualquer base para a base 10.
Os exemplos da imagem foram retirados do livro digital, Organização e arquitetura de computadores. 

Sites sugeridos e utilizados:

  • Dicas de Programação: https://dicasdeprogramacao.com.br/as-10-conversoes-numericas-mais-utilizadas-na-computacao/
  • Livro Organização de computadores (mec): http://redeetec.mec.gov.br/images/stories/pdf/eixo_infor_comun/tec_inf/081112_org_arq_comp.pdf

  • Material do pdf 2 do professor Paulo Massilon. 


Share
Tweet
Pin
Share
No comentários

Complemento a 2 com 6 bits

Question #1: 000111+011000


Question #2: 010101+101011


Question #3: 001111-011000


Question #4: 011010-111010


Question #5: 100111+010011


Question #6: 011111+100110


Question #7: 100000-111000


Question #8: 001011-110100


Share
Tweet
Pin
Share
No comentários

Instagram

topo

Colaboradores

  • Gabriel Delgado
  • Ju Marques

Procure Aqui!

  • aritmética não decimal
  • Arquitetura de Computadores
  • complento a 2
  • conversão de base
  • Fichamento
  • Memória
  • questionario
  • respostas
  • Resumo
  • Sinal e Magnitude

Segue o Link!

  • Programação Descomplicada (Linguagem.C)

Posts Recentes

Postagens Anteriores

  • maio 2019 (10)

Created with by BeautyTemplates| Distributed By Gooyaabi Templates