Tuesday 5 December 2017

Moving average algorithm


DEFINIÇÃO DE ALGORITMO Um algoritmo é conjunto de regras para realizar uma tarefa em um certo número de etapas. Um exemplo comum é uma receita, que é um algoritmo para preparar uma refeição. Algoritmos são essenciais para que os computadores processem informações. Como tal, eles se tornaram centrais para a vida diária dos seres humanos, se alguém encomendas um livro on-line, faz uma reserva de companhia aérea ou usa um motor de busca. As empresas financeiras usam algoritmos em áreas como preços de empréstimos, negociação de ações e gerenciamento de ativos e passivos. Por exemplo, negociação algorítmica. Conhecido como algo, é usado para decidir o timing, preço e quantidade de ordens de estoque. BREAKING DOWN Algoritmo A negociação de Algo, também conhecida como negociação automatizada ou negociação em caixa preta, usa um programa de computador para comprar ou vender títulos em um ritmo que não é possível para os seres humanos. Uma vez que os preços dos estoques, títulos e commodities aparecem em vários formatos on-line e em dados comerciais, o processo pelo qual um algoritmo digere dezenas de dados financeiros torna-se fácil. O usuário do programa simplesmente define os parâmetros e obtém uma saída desejada quando os títulos atendem aos critérios do comerciante. Tipos de Algos Vários tipos de algoritmos de negociação ajudar os investidores a decidir se a comprar ou vender. Um algoritmo de reversão médio examina preços de curto prazo sobre o preço médio a longo prazo. E se um estoque vai muito mais elevado do que a média, um comerciante pode vendê-lo para um lucro rápido. Sazonalidade refere-se à prática de comerciantes compra e venda de títulos com base na época do ano, quando os mercados normalmente subir ou cair. Um algoritmo de análise sentimento mede notícias sobre um preço das ações que poderia levar a maior volume para um determinado período comercial. A seguir é um exemplo de um algoritmo simples para negociação. Um comerciante instrui sua conta automatizada para vender 100 partes de um estoque se a média móvel de 50 dias for abaixo da média móvel de 200 dias. Ao contrário, o trader poderia dizer ao seu programa para comprar 100 ações se a média móvel de 50 dias de uma ação sobe acima da média móvel de 200 dias. Algoritmos sofisticados podem levar em conta centenas de critérios antes de comprar ou vender títulos. A razão para isto é que os computadores são máquinas altamente eficientes para executar cálculos complexos muito rapidamente. Em Ciência da Computação Um programador deve empregar cinco partes básicas de um algoritmo para criar um programa bem sucedido. A pessoa deve descrever o problema em termos matemáticos antes de configurar as fórmulas e os processos que criam um resultado. Em seguida, o programador entra os parâmetros que dão o resultado e, em seguida, ele executa o programa repetidamente para testá-lo. A conclusão do algoritmo é o resultado dado após o conjunto de parâmetros passa pelo conjunto de instruções no programa. Para algoritmos financeiros, quanto mais complexo o programa, mais dados o software pode usar para fazer avaliações precisas para comprar ou vender títulos. Preço médio ponderado do volume - VWAP QUEBRANDO O preço médio ponderado do volume - VWAP O preço médio ponderado do volume (VWAP) é uma relação usada geralmente por investors institutional E fundos mútuos para fazer compras e vende para não perturbar os preços de mercado com grandes encomendas. É o preço médio da ação de uma ação ponderada em relação ao seu volume de negociação dentro de um período de tempo específico, geralmente um dia. VWAP Explained Grandes investidores institucionais ou casas de investimento que usam VWAP basear seus cálculos de cada tiquetaque de dados durante um dia de negociação. Em essência, toda transação fechada é registrada. No entanto, a maioria dos sites gráficos e investidores individuais podem preferir usar um minuto ou cinco minutos preços de negociação, a fim de reduzir o volume de dados necessários para acompanhar VWAP em um dia. Para um cálculo de VWAP de cinco minutos você tomaria o baixo, mais o alto, mais o preço de fechamento dentro do período de cinco minutos e dividiria o total por três. Isso lhe dá um preço médio ponderado pelo tempo (TWAP) que é bastante preciso, e você pode multiplicar esse número pelo volume negociado no mesmo período para alcançar um preço ponderado. Por que usar VWAP Grandes compradores institucionais e fundos mútuos usam a relação VWAP para ser capaz de mover em ações de uma forma que não vai perturbar a dinâmica do mercado natural de um preço das ações. Se esses compradores foram para mover para uma posição de estoque de uma só vez, seria anormalmente elevar o preço das ações. No entanto, comprar ações de compra sob a média móvel VWAP intraday. Estes compradores podem mover-se em um estoque sobre o curso de um dia ou de dois sem disruption demasiado do preço. No entanto, existem outros usos para o VWAP, e uma tal estratégia é comprar um estoque para investidores individuais, assim como o VWAP perfura a média móvel VWAP intraday, como isso pode indicar uma mudança momentum no preço da ação. Também é usado na negociação algorítmica e permite corretores para garantir a execução de um comércio perto de um determinado volume de preço para os clientes. Problemas VWAP VWAP é indicador cumulativo e, como tal, o número de pontos de dados aumenta ao longo do dia. Este crescente conjunto de dados, durante períodos mais longos de tempo, como quatro, seis ou oito horas em um dia pode causar atraso entre a média móvel VWAP eo VWAP real. Como tal, a maioria dos investidores nunca usam um VWAP mais de um dia. MemTest86 Informações Técnicas O que há de novo no MemTest86 para a plataforma UEFI (Versão 5 e posterior) MemTest86 suporta a inicialização da plataforma UEFI mais recente e do BIOS tradicional. Ao iniciar a UEFI, o MemTest86 tem acesso a serviços adicionais não disponíveis no BIOS, incluindo: Suporte nativo de 64 bits Não requer mais o uso da solução alternativa PAE para acessar mais de 4 GB de memória. (PAE Physical Address Extension) Suporte de mouse, onde suportado pelo sistema UEFI subjacente. Em sistemas mais antigos, um teclado ainda é necessário. Melhor suporte de teclado USB. O teclado agora funciona em sistemas que não conseguem emular a porta IO 6460 corretamente. Então os teclados USB do Mac agora são suportados. Suporte aprimorado de multi-threading, onde suportado pelo sistema UEFI subjacente. Relatórios de informações detalhadas do SPD de RAM. Timings, velocidades de clock, nomes de fornecedores e muito mais. Suporte para gravação na unidade USB que o MemTest86 está executando para geração de logs e relatórios. Em todas as versões anteriores do MemTest86, não havia suporte a disco. Uso de GPT. (GUID Partition Table) Suporte a ECC RAM (suporte a hardware limitado, desenvolvimento contínuo) Detecção de suporte ECC tanto na RAM quanto no controlador de memória Pesquisando para erros ECC Injeção de erros ECC para fins de teste. (Somente hardware limitado) Suporte para RAM DDR4 (e hardware associado), incluindo recuperação e geração de relatórios de detalhes SPD específicos para DDR4. Isso inclui DDR4 RAM que suporte Intel XMP 2.0 DDR4 RAM temporizações Opção para desativar o cache da CPU para todos os testes Ter um arquivo de configuração para permitir que as configurações sejam pré-definidas sem a necessidade de entrada de teclado. Isso pode ajudar na automação. Suporte para Secure Boot. Melhorias de velocidade entre 10 e 30. Especialmente para testes, 5, 8 9. Este é o resultado mais emocionante para o código nativo 64 bits, removendo o PAE paginação hack, comutação de compiladores e usando algoritmos de geração de números aleatórios mais rápido. Adição de 2 novos testes de memória para tirar proveito de dados de 64 bits e instruções SIMD. Suporte para inicialização PXE em rede para implantação escalável e sem disco para vários destinos Consulte a página Whats New para obter uma lista completa de alterações. Consulte a página de comparação de recursos para obter um resumo das diferenças entre as várias edições do MemTest86. Se UEFI não for suportado no sistema, a versão mais antiga do BIOS v4 é inicializada. MemTest86 pode inicializar a partir de um CD, unidade flash USB ou, com sistemas Linux, pelo gerenciador de inicialização (por exemplo, LILO ou Grub). Qualquer sistema Windows, Linux ou Mac pode ser usado para criar o CD ou unidade flash USB. Uma vez que um disco de inicialização MemTest86 foi criado, ele pode ser usado em qualquer computador x86 (PCMac). MemTest86 (Site Edition) também pode inicializar via rede (PXE) de inicialização para provisionamento escalável de MemTest86 para várias máquinas cliente na rede LAN. Nessa configuração, nenhum disco é necessário apenas um servidor PXE e os clientes habilitados para inicialização PXE são necessários para suportar a inicialização de rede. Criando um disco de inicialização MemTest86 no Windows Para criar um Memotest86 USB inicializável, CD ou disquete no Windows, é recomendável que você faça o download de uma das imagens do Windows MemTest86. Nota: Não há diferença no disco de inicialização do MemTest86 resultante criado usando as imagens Windows ou LinuxMac, a diferença é que as imagens são empacotadas de uma forma que é mais adequada para o sistema operacional respectivo (por exemplo, zip vs tarball). Crie um CD-ROM inicializável: Faça o download da imagem ISO do Windows MemTest86. Clique com o botão direito do mouse no arquivo baixado e selecione a opção Extrair até aqui. Isso coloca a imagem ISO do CD-ROM na pasta atual. Use o software de gravação de CD disponível no seu sistema para criar um CD-ROM usando a imagem ISO extraída. Certifique-se de criar uma imagem de CD a partir do arquivo ISO em vez de colocar uma cópia do arquivo ISO em um CD de dados. Procure a imagem queimada da lima ou a opção similar sob o menu da lima de seu software ardente da queimadura. Crie uma unidade USB Flash inicializável: Faça o download da imagem USB do Windows MemTest86. Clique com o botão direito do mouse no arquivo baixado e selecione a opção Extrair até aqui. Isso coloca a imagem USB ea ferramenta de criação de imagens na pasta atual. Execute a ferramenta imageUSB incluída, já deve ter o arquivo de imagem selecionado e você só precisa escolher qual unidade USB conectada para se transformar em uma unidade inicializável. Observe que isso irá apagar todos os dados na unidade. Crie um disquete inicializável (somente v4): Faça o download da imagem de disquete do Windows MemTest86. Clique com o botão direito do mouse no arquivo baixado e selecione a opção Extrair até aqui. Isso coloca a imagem de disquete na pasta atual. Criar um disquete inicializável requer o uso de um programa de terceiros para gravar a imagem de disquete em um disco. Vários programas estão disponíveis para gravar a imagem do disco. Rawwrite é um programa livre recomendado disponível em: chrysocomerawwrite. Uma solução mais robusta é WinImage, disponível em winimagedownload. htm. Voltar ao inícioCriar um disco de inicialização MemTest86 no LinuxMac Para criar um Memotest86 USB, CD ou disquete de inicialização no LinuxMac, é recomendável que você faça o download de uma das imagens pré-compiladas do LinuxMac MemTest86. Os usuários avançados podem desejar criar a partir da origem e, opcionalmente, fazer alterações no código-fonte. Nota: Não há diferença no disco de inicialização do MemTest86 resultante criado usando as imagens Windows ou LinuxMac, a diferença é que as imagens são empacotadas de uma forma que é mais adequada para o sistema operacional respectivo (por exemplo, zip vs tarball). Crie um CD-ROM inicializável: Faça o download da imagem ISO do LinuxMac MemTest86. UN-tar o pacote (tar xvzf MemTest86 - iso. tar. gz). Um arquivo de imagem ISO e um arquivo README serão criados no diretório atual. Use o software de gravação de CD disponível no seu sistema para criar um CD-ROM usando a imagem ISO descompactada. Certifique-se de criar uma imagem de CD a partir do arquivo ISO em vez de colocar uma cópia do arquivo ISO em um CD de dados. Procure a imagem queimada da lima ou a opção similar sob o menu da lima de seu software ardente da queimadura. Em um Mac, você pode usar o Utilitário de Disco. Veja este post no fórum para mais detalhes. Crie uma unidade flash USB inicializável: Faça o download da imagem USB MemTest86 do LinuxMac. UN-tar o pacote (tar xvzf MemTest86 - usb. tar. gz). Um arquivo de imagem e um arquivo README serão criados no diretório atual. Siga as instruções no README para gravar o disco flash USB. Crie um disquete inicializável (somente v4): Faça o download da imagem do disquete do Linux. UN-tar o pacote (tar xvzf MemTest86 - floppy. tar. gz). Um arquivo de imagem e um arquivo README serão criados no diretório atual. Siga as instruções no README para gravar o disquete. Voltar ao topoMemTest86 suporta a inicialização de ambos os sistemas UEFI e BIOS. A maioria dos sistemas mais recentes são capazes de executar a versão UEFI do MemTest86, mas todos os sistemas devem ser capazes de inicializar a versão tradicional do BIOS. Para iniciar o MemTest86 insira o CD-ROM ou a unidade flash USB na unidade apropriada e reinicie o computador. Nota: Se estiver em execução em um sistema UEFI, o UEFI BIOS deve ser configurado para inicializar a partir do dispositivo no qual o MemTest86 está instalado. A maioria dos sistemas tem um menu de inicialização opcional que é ativado pressionando uma tecla na inicialização (muitas vezes ESC, F9, F11 ou F12) semelhante à seguinte: Se disponível, use o menu de inicialização para selecionar a unidade correta. Você pode ver o UEFI eo BIOS como opções separadas. Consulte a documentação da placa-mãe para obter detalhes. Em um Mac, você precisa manter pressionada a tecla c enquanto o computador está inicializando para inicializar a partir do CD. Para inicializar a partir do USB, você precisa manter pressionada a tecla ALT Option no teclado do Mac enquanto liga a máquina. Inicializando o v5 ou mais recente no UEFI Todas as imagens do MemTest86 suportam a inicialização dupla de v4 (BIOS) e v5 ou posterior (UEFI), dependendo se o sistema está configurado para inicializar no modo UEFI ou BIOS. Se o seu sistema inicializar o v4, é mais provável que: Você tenha um sistema mais antigo que não suporta UEFI Seu sistema suporta UEFI, mas está configurado no modo herdado (ou seja, BIOS) Se (1) for verdadeiro, o sistema não Ser capaz de inicializar o MemTest86 v5 ou posterior. Você precisará atualizar para um novo sistema que suporte UEFI para executar MemTest86 v5 ou posterior. Se (2) for verdadeiro, você precisará ir para a configuração do BIOS e alterar as configurações necessárias para iniciar a UEFI. A configuração real varia dependendo do fornecedor, mas normalmente é o Legacy Boot, o CSM ou o Módulo de Suporte de Compatibilidade, como a seguinte captura de tela para um sistema ASUS Usando uma Console Serial Para sistemas sem suporte de vídeo, o MemTest86 pode ser executado no modo de console serial tanto da UEFI como da Sistemas BIOS. Para MemTest86 v4, selecione a opção 5 no menu para habilitar a saída para o console serial. Você não precisará fazer nada para o MemTest86 v5 ou posterior, pois ele usará automaticamente o console serial, desde que o UEFI BIOS tenha sido configurado para redirecionar o console para a porta serial. Não há suporte GUI disponível ao usar o console serial para que todas as configurações de teste devem ser feitas usando o arquivo de configuração. Inicialização na rede PXE (apenas na edição do site) O MemTest86 (apenas no Site Edition) suporta a inicialização de rede via PXE. Para configurar a inicialização PXE do MemTest86, um servidor DHCPPXE deve estar presente na rede que distribui a imagem de inicialização do MemTest86 para máquinas clientes com inicialização PXE. A inicialização da rede do MemTest86 foi testada com sucesso com Serva PXE Server, mas outros servidores PXE devem funcionar bem. Para obter instruções passo a passo, consulte Configurando Serva para MemTest86 PXE Boot no Guia do Usuário do MemTest86. Para outros, consulte o manual do servidor DHCPPXE para obter instruções de configuração. Uma vez que o servidor PXE esteja configurado, extraia os arquivos do pacote MemTest86 para o diretório apropriado para a configuração do servidor PXE. Nas configurações do servidor PXE, especifique o arquivo de imagem de inicialização para BOOTX64.efi para máquinas clientes x86-64 e BOOTIA32.efi para máquinas cliente x86. Na máquina cliente, o UEFI BIOS deve suportar a inicialização a partir da rede. Na configuração do BIOS, certifique-se de que os recursos Suporte de UEFI Network Stack e IPv4 PXE estão ativados, similar à imagem abaixo. O arquivo de configuração (mt86.cfg) é suportado no arranque PXE e pode ser usado para configurar e personalizar o MemTest86. Da mesma forma, os arquivos de relatório são suportados e podem ser carregados para o servidor PXETFTP. Atualmente, o registro não é suportado ao inicializar via rede. Quando o MemTest86 é inicializado, é exibido um ecrã com um temporizador de contagem regressiva de 10 segundos que, quando expira, inicia automaticamente os testes de memória com as predefinições. Pressionar uma tecla ou mover o mouse deve parar o temporizador. Para configurar os testes de memória, selecione Config e o menu principal é exibido. O menu principal permite que o usuário personalize as configurações de teste de memória, como os testes específicos a serem executados, o intervalo de endereços a testar e as CPU usadas nos testes. O menu principal está estruturado da seguinte forma: Info do sistema - exibe os detalhes de hardware do sistema Seleção de teste - especifica quais testes ativar e quantos passes para executar o intervalo de endereços - especifica os limites de memória de endereço inferior e superior para testar a seleção da CPU Entre os modos Single, Parallel, Round Robin e Sequential Start - start executando os testes de memória RAM Benchmark - executa testes de benchmarking na RAM e grava os resultados em um gráfico Configurações - configura configurações gerais do MemTest86 como seleção de linguagem Exit - sai do MemTest86 e reinicia o (Pro e Site Edition) Os parâmetros de teste de memória também podem ser configurados através de um arquivo de configuração (mt86.cfg) carregado na inicialização, sem a necessidade de configurar manualmente os testes de memória toda vez que o MemTest86 é executado. Isso é útil especialmente em ambientes de teste onde os testes de memória precisam ser executados de forma automatizada sem a intervenção do usuário. O arquivo de configuração mt86.cfg precisa ser colocado na pasta EFIBOOT na unidade USB. O seguinte é um exemplo de um arquivo de configuração MemTest86: Especifica se a primeira passagem deve executar o teste completo ou reduzido. Por padrão, a primeira passagem deve executar um teste reduzido (ou seja, menos iterações), a fim de detectar os erros mais óbvios o mais rapidamente possível. Lista de posições de bit de um endereço de memória para exclusivo - ou (XOR) para determinar qual canal de memória (0 ou 1) é usado. Isso é útil se você souber que o controlador de memória mapeia um endereço particular para um canal usando este esquema de decodificação. Se este parâmetro for especificado eo MemTest86 detectar um erro de memória, o número do canal será calculado e exibido juntamente com o endereço de falha. Cada posição de bit especificada é separada por uma vírgula. Por exemplo, será XOR bits 1,8,9 do endereço para determinar o canal. Lista de posições de bits de um endereço de memória para exclusivo - ou (XOR) para determinar qual slot (0 ou 1) é usado. Isso é útil se você souber que o controlador de memória mapeia um endereço particular para um slot usando este esquema de decodificação. Se este parâmetro for especificado e o MemTest86 detectar um erro de memória, o número do slot será calculado e exibido juntamente com o endereço de falha. Cada posição de bit especificada é separada por uma vírgula. Por exemplo, será XOR bits 3,4 do endereço para determinar o slot. Lista de posições de bit de um endereço de memória para exclusivo - ou (XOR) para determinar os bits de seleção de chip (0 ou 1). Isso é útil se você souber que o controlador de memória mapeia um endereço particular para um bit CS usando este esquema de decodificação. Se este parâmetro for especificado e o MemTest86 detectar um erro de memória, o bit CS será calculado e exibido juntamente com o endereço de falha. Cada posição de bit especificada é separada por uma vírgula. Por exemplo, os bits XOR 5, 11 do endereço para determinar o bit CS. Especifica um dos seguintes idiomas a serem usados: Número dos erros mais recentes a serem exibidos no arquivo de relatório. Esse número não deve exceder 5000. Número de avisos mais recentes a serem exibidos no arquivo de relatório. Este número deve ser não superior a 5000. Atualmente, este parâmetro é usado somente para o teste de martelo (teste 13) Especifica o nível de intervenção do usuário a ser usado ao executar os testes de memória. A tela inicial e o menu principal são exibidos. O usuário é solicitado a salvar o arquivo de relatório quando os testes forem concluídos. Os testes são iniciados imediatamente, ignorando a tela inicial eo menu principal. Uma vez concluídos os testes, os resultados do teste são salvos automaticamente no arquivo de relatório eo sistema é reinicializado. Os testes são iniciados imediatamente, ignorando a tela inicial eo menu principal. Uma vez concluídos os testes, o usuário é solicitado a salvar os resultados do teste em um arquivo de relatório. Especifica se deve ignorar a tela de 10 segundos e ir direto para o menu principal. Número mínimo de SPDs RAM a serem detectados antes de permitir que os testes de memória comecem. Especifica uma substring sensível a maiúsculas e minúsculas para coincidir com o fabricante JEDEC de todos os SPDs RAM detectados antes de permitir que os testes de memória comecem. Especifica uma subcadeia sensível a maiúsculas e minúsculas para coincidir com o número de peça de todos os SPDs RAM detectados antes de permitir que os testes de memória comecem. Especifica uma cor de fundo alternativa a ser usada: Especifica um padrão de dados de 32 bits a ser usado para o teste de martelo de linha (Teste 13). Se este parâmetro não for especificado, padrões de dados aleatórios serão usados. Especifica um dos seguintes algoritmos de martelamento a serem usados ​​para o teste de martelo de linha (Teste 13): Especifica se deseja desabilitar o suporte ao multiprocessador. Isso pode ser usado como uma solução para determinados firmwares UEFI que têm problemas executando MemTest86 em modos multi-CPU. Ao final do teste, é exibido um resumo dos resultados do teste, conforme mostrado na seguinte captura de tela: O usuário também pode salvar os resultados como um relatório de teste HTML em um arquivo. A aparência do relatório de teste é totalmente personalizável na versão de licença pro e site. Veja um exemplo de um relatório de teste HTML Solução de problemas de erros de memória Consulte a página Solução de problemas de erros de memória sobre o que fazer quando o MemTest86 detectar uma erroria com memória. O tempo necessário para uma passagem completa do MemTest86 varia muito dependendo da velocidade da CPU, da velocidade da memória e do tamanho da memória. Os incrementos do contador de passes depois de todos os testes selecionados terem sido executados. Geralmente uma única passagem é suficiente para capturar todos, exceto os erros mais obscuros. No entanto, para total confiança quando erros intermitentes são suspeitos de testes para um período mais longo é aconselhado. Descrições Detalhadas Filosofia de Teste de Memória Existem muitas boas abordagens para testar memória. No entanto, muitos testes simplesmente jogar alguns padrões na memória sem muito pensamento ou conhecimento de arquitetura de memória ou como os erros podem ser melhor detectados. Isso funciona bem para falhas de memória dura, mas faz pouco para encontrar erros intermitentes. Os testes de memória baseados no BIOS são inúteis para encontrar erros intermitentes de memória. Os chips de memória consistem em uma grande variedade de células de memória firmemente compactadas, uma para cada bit de dados. A grande maioria das falhas intermitentes são resultado da interação entre essas células de memória. Geralmente, escrever uma célula de memória pode fazer com que uma das células adjacentes seja escrita com os mesmos dados. Um teste de memória eficaz tenta testar para esta condição. Portanto, uma estratégia ideal para testar a memória seria a seguinte: escrever uma célula com um zero escrever todas as células adjacentes com uma, uma ou mais vezes verificar que a primeira célula ainda tem um zero Deve ser óbvio que essa estratégia requer Um conhecimento exato de como as células de memória são dispostas no chip. Além disso, há um número interminável de layouts de chip possíveis para diferentes tipos de chip e fabricantes que tornam esta estratégia pouco prática. No entanto, existem algoritmos de teste que podem aproximar este ideal. MemTest86 Algoritmos de Teste MemTest86 usa dois algoritmos que fornecem uma aproximação razoável da estratégia de teste ideal acima. A primeira dessas estratégias é chamada de inversão de movimento. O teste de inversão de movimento funciona da seguinte forma: Encha memória com um padrão Começando no endereço mais baixo verifique se o padrão não mudou gravar os padrões complementar incremento a repetição de endereço Começando no endereço mais alto verifique se o padrão não mudou gravar os padrões complemento decremento O endereço repetir Este algoritmo é uma boa aproximação de um teste de memória ideal, mas existem algumas limitações. A maioria dos chips de alta densidade armazenam hoje dados de 4 a 16 bits de largura. Com chips que têm mais de um bit de largura, é impossível ler ou escrever seletivamente apenas um bit. Isso significa que não podemos garantir que todas as células adjacentes tenham sido testadas para interação. Neste caso, o melhor que podemos fazer é usar alguns padrões para garantir que todas as células adjacentes, pelo menos, foram escritos com todas as possíveis um e zero combinações. Também pode ser visto que cache, buffering e execução fora de ordem irá interferir com o algoritmo de inversão de movimento e tornar menos eficaz. É possível desativar o cache, mas o buffer de memória em novos chips de alto desempenho não pode ser desabilitado. Para resolver esta limitação, criou-se um novo algoritmo que chamo Modulo-X. Esse algoritmo não é afetado pelo cache ou buffering. O algoritmo funciona da seguinte maneira: Para começar offsets de 0 - 20 escreva cada 20 localização com um padrão escreva todos os outros locais com os padrões complemento repetir acima de uma ou mais vezes verificar cada 20 localização para o padrão Este algoritmo realiza quase o mesmo nível de Testes de adjacência como inversões de movimento, mas não é afetado pelo cache ou buffering. Uma vez que passagens de escrita separadas (1a, 1b) e a passagem de leitura (1c) são feitas para toda a memória, podemos ter certeza de que todos os buffers e cache foram limpos entre passagens. A seleção de 20 como o tamanho da passada era um tanto arbitrária. Passos maiores podem ser mais eficazes, mas levaria mais tempo para ser executado. A escolha de 20 parecia ser um compromisso razoável entre velocidade e rigor. Descrições de testes individuais O MemTest86 executa uma série de seções de teste numeradas para verificar erros. Essas seções de teste consistem em uma combinação de algoritmo de teste, padrão de dados e configuração de cache. A ordem de execução para estes testes foi organizada para que os erros sejam detectados o mais rapidamente possível. Uma descrição de cada uma das seções de teste é a seguinte: Test 0 Test de endereço, walking uns, no cache Testa todos os bits de endereço em todos os bancos de memória usando um padrão de endereço de andamento. Test 1 Address test, own address, Sequential Cada endereço é escrito com seu próprio endereço e, em seguida, é verificado quanto à consistência. Em teoria, os testes anteriores deveriam ter detectado problemas de endereçamento de memória. Esse teste deve detectar erros de endereçamento que de alguma forma não foram detectados anteriormente. Este teste é feito sequencialmente com cada CPU disponível. Test 2 Address test, own address, Parallel Igual ao teste 1, mas o teste é feito em paralelo usando todas as CPUs e usando endereços sobrepostos. Teste 3 Inversão em Movimento, onesampzeros, Paralelo Este teste utiliza o algoritmo de inversão móvel com padrões de todos os e zeros. O cache é habilitado mesmo que interfira em algum grau com o algoritmo de teste. Com cache habilitado este teste não demora muito e deve rapidamente encontrar todos os erros duros e alguns erros mais sutis. Isso é feito em paralelo usando todas as CPUs. Teste 4 Inversão em movimento, padrão de 8 bits Este é o mesmo que o teste 3, mas usa um padrão de 8 bits de largura de uns e zeros. Este teste irá detectar melhor os erros sutis em chips de memória de largura. Teste 5 Inversão em movimento, teste padrão aleatório O teste 5 usa o mesmo algoritmo que o teste 4, mas o padrão de dados é um número aleatório e seu complemento. Este teste é particularmente eficaz em encontrar difícil de detectar erros sensíveis a dados. A sequência de números aleatórios é diferente com cada passagem, de modo que múltiplas passagens aumentam a eficácia. Teste 6 Movimento de bloco, 64 movimentos Este teste salienta a memória usando instruções de movimento de bloco (movsl) e é baseado no teste de Robert Redelmeiers burnBX. A memória é inicializada com padrões de deslocamento que são invertidos a cada 8 bytes. Em seguida, os blocos de memória de 4mb são movidos usando a instrução movsl. Após os movimentos serem concluídos, os padrões de dados são verificados. Como os dados são verificados somente após os movimentos da memória serem concluídos, não é possível saber onde ocorreu o erro. Os endereços relatados são apenas para onde o padrão ruim foi encontrado. Uma vez que os movimentos são restritos a um segmento de 8 MB de memória o endereço de falha será sempre inferior a 8 m de distância do endereço relatado. Os erros desse teste não são usados ​​para calcular padrões de BadRAM. Teste 7 Inversão de movimento, padrão de 32 bits Esta é uma variação do algoritmo de inversão móvel que desloca o padrão de dados deixando um bit para cada endereço sucessivo. A posição do bit de partida é deslocada para a esquerda para cada passagem. Para usar todos os padrões de dados possíveis, são necessárias 32 passagens. Este teste é bastante eficaz na detecção de erros sensíveis a dados, mas o tempo de execução é longo. Teste 8 Seqüência de números aleatórios Este teste grava uma série de números aleatórios na memória. Ao redefinir a semente para o número aleatório a mesma seqüência de número pode ser criada para uma referência. O padrão inicial é verificado e, em seguida, complementado e verificado novamente na próxima passagem. No entanto, ao contrário das inversões em movimento, o teste de escrita e verificação só pode ser feito na direção para a frente. Test 9 Modulo 20, Random pattern Usando o algoritmo Modulo-X deve descobrir erros que não são detectados por inversões de movimento devido a cache e buffering interferência com o algoritmo. Teste Teste de Fade de 10 bits, 2 padrões O teste de fade de bits inicializa toda a memória com um padrão e depois dorme por alguns minutos. Em seguida, a memória é examinada para ver se os bits de memória foram alterados. Todos os padrões e todos os zero são usados. Teste 11 Sequência de números aleatórios, 64 bits Este teste é o mesmo que o Teste 8, mas são usadas instruções nativas de 64 bits. Teste 12 Seqüência de números aleatórios, 128 bits Este teste é o mesmo que o Teste 8, mas as instruções nativas SIMD (128 bits) são usadas. O teste de martelo de linha expõe um defeito fundamental com módulos de RAM 2010 ou posterior. Este defeito pode levar a erros de perturbação ao aceder repetidamente a endereços no mesmo banco de memória mas linhas diferentes num curto período de tempo. O fechamento de abertura repetido de linhas provoca vazamento de carga em linhas adjacentes, potencialmente causando bits para inverter. Este teste martela linhas alternativamente lendo dois endereços de uma forma repetida, então verificando o conteúdo de outros endereços para erros de perturbação. Para obter mais detalhes sobre erros de distorção DRAM, consulte Flipping bits na memória sem acessá-los: um estudo experimental de DRAM perturbação erros por Yoongu Kim et al. A partir do MemTest86 v6.2, são realizadas duas passagens de teste de martelo de linha. Na primeira passagem, os pares de endereços são martelados na taxa mais alta possível. Se forem detectados erros na primeira passagem, os erros não são imediatamente relatados e uma segunda passagem é iniciada. Nesta passagem, pares de endereços são martelados a uma taxa mais baixa considerada como o pior cenário pelos vendedores de memória (200K acessos por 64ms). Se erros também são detectados nesta passagem, os erros são relatados ao usuário como normal. No entanto, se apenas a primeira passagem produz um erro, uma mensagem de aviso é exibida ao usuário. Voltar para parte superior Recuperar espaço em disco em uma unidade flash Tivemos alguns usuários se perguntando como recuperar o espaço em uma unidade USB depois de terem terminado de usar MemTest86. O problema decorre do fato de que a função de Gerenciamento de Disco do Windows não permite limpar ou re-particionamento de unidades flash USB. Você pode encontrar as etapas necessárias para reformatar uma unidade flash USB para capacidade total aqui. Ajuda a melhorar o MemTest86 Estamos sempre à procura de formas de melhorar o MemTest86 para os nossos utilizadores. Por favor, envie sugestões gerais para a tradução do MemTest86 para o seu idioma Desde o MemTest86 v6, adicionamos suporte para permitir que o usuário selecione o idioma a ser usado no MemTest86. Atualmente, os seguintes idiomas são suportados: Se o seu idioma não estiver disponível para seleção ou quiser fornecer generosamente traduções para o benefício de outros usuários, você pode baixar o seguinte arquivo de seqüência de caracteres que contém todas as strings no programa. Siga as instruções no arquivo sobre como fornecer traduções para o texto. Qualquer texto traduzido que recebamos pode ser incluído na próxima versão do MemTest86, com o crédito apropriado dado.

No comments:

Post a Comment