Verificação de consistência de memória para sistemas integrados multiprocessados
Autor(a) principal: | |
---|---|
Data de Publicação: | 2011 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFSC |
Texto Completo: | http://repositorio.ufsc.br/xmlui/handle/123456789/95908 |
Resumo: | Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico. Programa de Pós-Graduação em Ciência da Computação. |
id |
UFSC_0ac5a4744d4eed1b789a6c463edfed0a |
---|---|
oai_identifier_str |
oai:repositorio.ufsc.br:123456789/95908 |
network_acronym_str |
UFSC |
network_name_str |
Repositório Institucional da UFSC |
repository_id_str |
2373 |
spelling |
Verificação de consistência de memória para sistemas integrados multiprocessadosInformaticaCiência da computaçãoMemória compartilhada distribuídaGrafos de ligaçãoMultiprocessadoresDissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico. Programa de Pós-Graduação em Ciência da Computação.O multiprocessamento em chip (CMP) mudou o panorama arquitetural dos servidores e computadores pessoais e agora está mudando o modo como os dispositivos pessoais móveis são projetados. CMP requer acesso a variáveis compartilhadas em hierarquias multiníveis sofisticadas onde caches privadas e compartilhadas coexistem. Ele se baseia no suporte em hardware para implicitamente gerenciar o relaxamento da ordem de programa e a atomicidade de escrita de modo a fornecer, na interface software-hardware, uma semântica de memória compartilhada bem definida, que é capturada pelos axiomas de um modelo de consistência de memória (MCM). Este trabalho aborda o problema de verificar se uma representação executável do subsistema de memória implementa um MCM especificado. Técnicas convencionais de verificação codificam os axiomas como arestas de um único grafo orientado, inferem arestas extras a partir de traces de memória e indicam um erro quando um ciclo é detectado. Usando uma abordagem diferente, esta dissertação propõe uma nova técnica que decompõe o problema de verificação em múltiplas instâncias de um problema (estendido) de emparelhamento de vértices em grafos bipartidos. Como a decomposição foi judiciosamente projetada para induzir instâncias independentes, o problema-alvo pode ser resolvido por um algoritmo paralelo de verificação. Também é proposto um gerador de sequências de instruções aleatórias distribuídas em múltiplas threads para estimular o sistema de memória sob verificação. Por ser independente do MCM sob verificação, o gerador proposto pode ser utilizado pela maioria dos verificadores. A técnica proposta, que é comprovadamente completa para diversos MCMs, superou um verificador convencional para um conjunto de 2400 casos de uso gerados aleatoriamente. Em média, o verificador proposto encontrou um maior percentual de faltas (90%) comparado ao convencional (69%) e foi, em média, 272 vezes mais rápido.Chip multiprocessing (CMP) changed the architectural landscape of servers and personal computers and is now changing the way personal mobile devices are designed. CMP requires access to shared variables in sophisticated multilevel hierarchies where private and shared caches coexist. It relies on hardware support to implicitly manage relaxed program order and write atomicity so as to provide, at the hardware-software interface, a well-defined sharedmemory semantics, which is captured by the axioms of a memory consistency model (MCM). This dissertation addresses the problem of checking if an executable representation of the memory system complies with a specified consistency model. Conventional verification techniques encode the axioms as edges of a single directed graph, infer extra edges from memory traces, and indicate an error when a cycle is detected. Unlike them, this dissertation proposes a novel technique that decomposes the verification problem into multiple instances of an extended bipartite graph matching problem. Since the decomposition was judiciously designed to induce independent instances, the target problem can be solved by a parallel verification algorithm. To stimulate the memory system under verification, the dissertation also proposes a generator of multi-threading random-instruction sequences. It complies with an arbitrary MCM and can be used by most checkers. Our technique, which is proven to be complete for several MCMs, outperformed a conventional checker for a suite of 2400 randomly-generated use cases. On average, it found a higher percentage of faults (90%) as compared to that checker (69%) and did it, on average, 272 times faster.Florianópolis, SCSantos, Luiz Claudio Villar dosUniversidade Federal de Santa CatarinaRambo, Eberle Andrey2012-10-26T07:02:27Z2012-10-26T07:02:27Z20112011info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesis95 p.| il., grafs., tabs.application/pdf300498http://repositorio.ufsc.br/xmlui/handle/123456789/95908porreponame:Repositório Institucional da UFSCinstname:Universidade Federal de Santa Catarina (UFSC)instacron:UFSCinfo:eu-repo/semantics/openAccess2013-05-03T15:50:05Zoai:repositorio.ufsc.br:123456789/95908Repositório InstitucionalPUBhttp://150.162.242.35/oai/requestopendoar:23732013-05-03T15:50:05Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)false |
dc.title.none.fl_str_mv |
Verificação de consistência de memória para sistemas integrados multiprocessados |
title |
Verificação de consistência de memória para sistemas integrados multiprocessados |
spellingShingle |
Verificação de consistência de memória para sistemas integrados multiprocessados Rambo, Eberle Andrey Informatica Ciência da computação Memória compartilhada distribuída Grafos de ligação Multiprocessadores |
title_short |
Verificação de consistência de memória para sistemas integrados multiprocessados |
title_full |
Verificação de consistência de memória para sistemas integrados multiprocessados |
title_fullStr |
Verificação de consistência de memória para sistemas integrados multiprocessados |
title_full_unstemmed |
Verificação de consistência de memória para sistemas integrados multiprocessados |
title_sort |
Verificação de consistência de memória para sistemas integrados multiprocessados |
author |
Rambo, Eberle Andrey |
author_facet |
Rambo, Eberle Andrey |
author_role |
author |
dc.contributor.none.fl_str_mv |
Santos, Luiz Claudio Villar dos Universidade Federal de Santa Catarina |
dc.contributor.author.fl_str_mv |
Rambo, Eberle Andrey |
dc.subject.por.fl_str_mv |
Informatica Ciência da computação Memória compartilhada distribuída Grafos de ligação Multiprocessadores |
topic |
Informatica Ciência da computação Memória compartilhada distribuída Grafos de ligação Multiprocessadores |
description |
Dissertação (mestrado) - Universidade Federal de Santa Catarina, Centro Tecnológico. Programa de Pós-Graduação em Ciência da Computação. |
publishDate |
2011 |
dc.date.none.fl_str_mv |
2011 2011 2012-10-26T07:02:27Z 2012-10-26T07:02:27Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
300498 http://repositorio.ufsc.br/xmlui/handle/123456789/95908 |
identifier_str_mv |
300498 |
url |
http://repositorio.ufsc.br/xmlui/handle/123456789/95908 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
95 p.| il., grafs., tabs. application/pdf |
dc.publisher.none.fl_str_mv |
Florianópolis, SC |
publisher.none.fl_str_mv |
Florianópolis, SC |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFSC instname:Universidade Federal de Santa Catarina (UFSC) instacron:UFSC |
instname_str |
Universidade Federal de Santa Catarina (UFSC) |
instacron_str |
UFSC |
institution |
UFSC |
reponame_str |
Repositório Institucional da UFSC |
collection |
Repositório Institucional da UFSC |
repository.name.fl_str_mv |
Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC) |
repository.mail.fl_str_mv |
|
_version_ |
1808652388186193920 |