AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1827227
Accepted
theo1996
theo1996
Asked: 2024-01-25 00:43:41 +0800 CST2024-01-25 00:43:41 +0800 CST 2024-01-25 00:43:41 +0800 CST

por que o memtest mostra que cada endereço tem 4 bytes?

  • 772

Recentemente, notei que o Windows emitia bipes longos, o que supostamente é um problema de memória 1a no código de erro BSOD. Executei o memtest e encontrei endereços defeituosos mostrados abaixo.

2024-01-24 14:20:11 - [Data Error] Test: 13, CPU: 0, Address: 293B98920, Expected: 5F0DF0A5, Actual: 5F8DF0A5
2024-01-24 14:18:53 - [Data Error] Test: 13, CPU: 0, Address: 293B98920, Expected: D70BA8A2, Actual: D78BA8A2
2024-01-24 14:17:20 - [Data Error] Test: 13, CPU: 0, Address: 293B98920, Expected: 1F1F39AC, Actual: 1F9F39AC
2024-01-24 14:17:05 - [Data Error] Test: 13, CPU: 0, Address: 293B98920, Expected: 50039BF9, Actual: 50839BF9

Eu tenho ~ 12 GB de RAM, então os endereços vão até 31F000000, que é 12784 MB, mas também mostra outros 4 bytes, que são as informações armazenadas nesses endereços, como isso funciona? Existem 13.404.995.584 endereços e cada um deles armazena 4 bytes?

memory
  • 2 2 respostas
  • 58 Views

2 respostas

  • Voted
  1. Best Answer
    u1686_grawity
    2024-01-25T01:03:26+08:002024-01-25T01:03:26+08:00

    Embora a memória seja endereçada a bytes, é típico que programas (e até mesmo CPUs) a manipulem em 16 bits (2 bytes), 32 bits (4 bytes) ou mesmo 64 bits (8 bytes). unidades. Por exemplo, um programa pode armazenar um valor de 32 bits entre bytes 0xABC0...0xABC3e diz-se que o valor é armazenado "em 0xABC0" (o resto do intervalo está implícito). Isso é o que o memtest está fazendo aqui.

    (Mesmo no nível do código de máquina, existem instruções para carregar, por exemplo, um número inteiro de 32 bits da memória como uma única instrução com apenas o endereço 'inicial' especificado, que geralmente é mais rápido que quatro bytes de um byte por vez. instruções de tempo.)

    • 2
  2. Mokubai
    2024-01-25T02:14:43+08:002024-01-25T02:14:43+08:00

    As leituras e gravações na memória não acontecem "por byte", elas estão alinhadas nos "limites das palavras".

    Isso significa que se sua memória opera em transferências de 32 bits, para ler o terceiro byte acima 0x000F0000(então 0x000F0002), você deve trabalhar até o limite de 32 bits mais próximo 0x000F0000e depois transferir todos os quatro bytes para ler o terceiro. Para memória de 64 bits, usada pela maioria dos sistemas modernos, você deve transferir uma "palavra" completa de 8 bytes (64 bits) da memória para ler um único byte dentro dessa área de memória.

    O Memtest acabou de escolher uma visualização padrão que mostra 4 bytes por vez em vez de 8 ou qualquer que seja o tamanho da transferência de memória do sistema.

    O que o software mostra é muitas vezes uma escolha arbitrária baseada no que as pessoas estão mais acostumadas e é uma escolha entre ser sucinto e muito detalhado. Dois blocos 293B98920 51F22EABsão mais fáceis para uma pessoa analisar do que293B9892051f22eab


    Na verdade, você não pode passar 0x000F0002para um chip de memória física. As linhas de endereço mais baixas que permitem o endereçamento de bytes ficam efetivamente escondidas pelo fato de que a memória moderna usa um barramento de dados paralelo através de um banco de chips de memória. Ao usar 8 chips (ou 4 chips, cada um com dois bancos de memória), você essencialmente não "vê" mais os 3 bits mais baixos de qualquer endereço.

    Todos esses 8 chips receberão o mesmo endereço e então o que será enviado ao controlador de memória será uma longa palavra de 64 bits que representa o conteúdo de cada chip de memória alinhados juntos.

    Essa palavra de 64 bits é então colocada em um registro no processador.

    Seu processador, então, vendo que você solicitou o byte específico, 0x000F0002percorre os 8 bytes recebidos e fornece o terceiro byte. Esses outros bytes foram recebidos no controlador de memória do processador e provavelmente chegaram aos vários caches da CPU, você simplesmente não se preocupou em ler o conteúdo do seu software.

    • 2

relate perguntas

  • CPU/PC Congelando (Temperatura?)

  • Sistema que pode ler o disco rígido e gravar exclusivamente na RAM?

  • Comprando o tipo certo de RAM para laptop [fechado]

  • Ordem de instalação da RAM. 8GB E 16GB. Qual deles deve estar no slot 0?

  • CPU, RAM ou placa-mãe? (PEBCAK!)

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Vickel O Firefox não permite mais colar no WhatsApp web? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve