memória interna para projeto de sistema

Propaganda
Memória interna para Projeto de Sistema Computacionais com Capacidade de
Detecção de Erro de Escrita e Configuração de Recursos de Redundância
Francisco Carlos Silva Junior (bolsista do PIBITI/CNPq),
Ivan Saraiva Silva (Orientador, Depto. de Computação – UFPI)
Campus Ministro Petrônio Portella
Resumo
Este trabalho apresenta uma memória multi-banco com redundância para tratar
erros de escrita na memória devido à NBTI (negative-bias temparature instability) ou
PBTI (positive-bias temparature instability). Foi desenvolvido um microprocessador
MIPS, em sua versão pipeline, para testar a memória multi-banco proposta e
verificar seu desempenho. A aplicação desenvolvida para fazer a comparação de
desempenho foi uma multiplicação de matriz feita em linguagem C. Para permitir o
desenvolvimento de aplicações em linguagem de alto nível (C), foi desenvolvido um
ambiente de desenvolvimento de aplicações usando o CROSS-COMPILER GNU.
Conclui-se que o modelo é propotipável em FPGA e possui um desempenho
aceitável, haja vista que há um ganho na confiabilidade.
Palavras-chave: Arquitetura de memórias. Tolerância a falha. PBTI e NBTI.
Introdução
O projeto trata-se de uma arquitetura de memória interna usando memórias voláteis,
preferencialmente, mas não necessariamente, estáticas para projeto de sistemas
computacionais com capacidade de detecção de erro de escrita e configuração de
recursos de redundância. Os erros de escrita a que se refere a presente invenção
podem ser provocados, eventualmente, mas não exclusivamente, pelos problemas
tecnológicos conhecidos como “instabilidade de temperatura de polarização
negativa” (negative-bias temperature instability - NBTI) ou “instabilidade de
temperatura de polarização positiva” (positive-bias temperature instability - PBTI). A
arquitetura de memória, objeto deste trabalho, é constituída por recursos que
possibilitem: a verificação da efetivação de escritas em qualquer endereço da
memória; a detecção e sinalização do erro de escrita, quando este acontecer, e a
configuração de recursos de redundância de modo a recuperar o funcionamento
normal da memória.
A “instabilidade de temperatura de polarização negativa” ocorre quanto uma
tensão negativa é aplicada a Porta do transistor com relação à Fonte, e afeta a
operação considerada normal dos transistores PMOS. A “instabilidade de
temperatura de polarização positiva”, por sua vez, ocorre uma tensão positiva é
aplicada, e afeta a operação considerada normal dos transistores NMOS.
Infelizmente, este é frequentemente o caso em circuitos CMOS (Complementary
Metal Oxide Semiconductur), especialmente em memórias SRAM. Em ambos os
casos, a tensão de limiar (VT) do transistor é aumentada, resultando em degradação
do tempo de operação do transistor. Em memórias internas o efeito de longo termo
apresenta-se como incapacidade de armazenar novos valores.
Metodologia
O projeto foi desenvolvido no Laboratório CESLa (Circuits and Embedded
System Laboratory) do Departamento de Computação da Universidade Federal do
Piauí. A descrição de hardware da memória foi feita em linguagem de descrição de
hardware VHDL. Para realizar as simulações foi utilizado a ferramenta ModelSim da
ALTERA. A prototipagem foi feita em uma placa FPGA da ALTERA, DE2-115.
O projeto proposto consiste de duas partes: um bloco de hardware que
verifica o erro de escrita e uma memória interna multi-banco com redundância. O
plano de trabalho deste projeto consiste do desenvolvimento da memória interna
multi-banco com redundância, a outra parte foi desenvolvida por outro aluno de
iniciação científica.
A arquitetura proposta
A arquitetura proposta nesse projeto consiste uma memória interna multibanco com redundância com detecção de erro de escrita. A arquitetura é composta
de uma memória multi-banco com redundância e de um bloco de hardware que é
responsável por detectar erros de escrita.
O modelo da memória interna multi-banco com redundância consiste uma
memória com vários bancos de memória e alguns bancos de redundância. O
endereçamento de cada banco desse é feito de acordo com a configuração da
memória interna.
A memória multi-banco desenvolvida nesse projeto consiste de uma memória
de 256 palavra, sendo composta de 8 bancos de 32 palavras, com um banco de
redundância. Os bits de endereçamento dessa memória pode ser visto na figura 1.
Como são 8 bancos de memória, são necessários 3 bits para mapear esses
bancos, e como são 32 palavras dentro de cada banco de memória, são necessários
3 bits para mapear as palavras dentro daquele banco.
Quando ocorre um erro de escrita (NBTI ou PBTI), na memória multi-banco, é
necessário mapear a palavra para o bloco de redundância para permitir a
recuperação do funcionamento da memória . A detecção de erro, como foi falado
anteriormente, foi desenvolvido por outro aluno. O mapeamento da memória multibanco para a redundância é feito usando mapeamento direto por palavras, ou seja,
dado uma palavra que gerou erro ao escrever na memória multi-banco devido a
NBTI ou PBTI ela será mapeada para um único endereço no bloco de redundância.
Foi escolhida esse tipo mapeamento para permitir um maior espalhamento de erros
na memória de redundância.
O mapeamento é feito usando um bloco de hardware adicional. Uma visão
geral da arquitetura da memória multi-banco, incluindo o bloco de detecção de erro
de escrita que foi desenvolvida por outro aluno de iniciação científica, pode ser visto
na figura 2.
O bloco de detecção de erro é mostrado na figura de forma simplifica, foi
omitida a parte da detecção de erro em si e mostrado somente a comunicação desse
bloco informando o erro à memória multi-banco. Essa arquitetura de memória possui
uma latência de 2 ciclos para realizar uma operação de escrita/leitura devido à
inserção da detecção de erro e do bloco de redundância. Houve um ganho em
confiabilidade, contudo, também houve um aumento na latência da memória.
Figura 1 - Endereçamento dos bancos de memória
Figura 2 - visão geral da arquitetura
Resultados e Discussão
O primeiro resultado foi o desenvolvimento de um modelo de memória,
descrito, validado e prototipado em FPGA, com capacidade de detecção de erro e
transparente de recursos de redundância, visando restabelecer o funcionamento
normal da memória interna. Em todo caso, a disponibilidade deste modelo, tenha ele
ou não inovação suficiente para depósito de pedido de patente, configura-se como
um produto que garantirá ao grupo domínio tecnológico e diferencial, tanto no âmbito
da comunidade científica quanto no âmbito do mercado.
Para medir o desempenho da arquitetura de memória proposta neste trabalho
foi desenvolvido um microprocessador MIPS em sua versão pipeline. Foram
implementada duas versões, uma com a memória de dados sendo uma memória
convencional, e portanto sem tratamento de erro de escrita, e outra com a memória
de dados usando a arquitetura proposta neste trabalho. Foi desenvolvido também
um ambiente de desenvolvimento de aplicações para MIPS utilizando o CROSSCOMPILER GNU.
A aplicação escolhida para fazer a comparação de desempenho foi uma
multiplicação de matriz 2x2.
Tabela 1 - Resultados de desempenho
Número de ciclos
Memória sem tratamento de erro
1038 ciclos
Memória proposta neste trabalho
1297 ciclos
Como pode ser visto na Tabela 1, houve um incremento de aproximadamente
em 20 % em números de ciclo para executar a aplicação quando comparada com
uma versão de memória sem tratamento de erro. Contudo, como já foi discutido, a
memória proposta neste trabalho aumenta a confiabilidade e consegue se recuperar
de um erro e voltar ao seu funcionamento.
A memória em si pode e será, tão logo os requisitos de patenteamento
permitam, usada nos modelos de arquitetura de microprocessadores multicore e
many-core. Isto, espera-se, implicará em diferencial tecnológicos para estas
arquitetura, no mínimo no que diz respeito a confiabilidade e tolerância a falhas.
Conclusões e Trabalhos futuros
Este projeto é importante para o meu aprimoramento como docente, uma
meta que deve ser buscada por qualquer unidade de ensino superior, onde a
pesquisa seja uma componente a ser considerada. Imagina-se que esta pesquisa
permite a publicação de resultados obtidos o que vem a melhorar o nível de
participação do Departamento de Computação na pesquisa científica além de
impactos tecnológico que o projeto pode gerar, além de um possível depósito de
patente.
Como trabalho futuro, pretende-se desenvolver uma memória cache com
teste de erro de escrita por NBIT (Negative-bias Temperature Instability) ou PBTI
(Positive-bias Temperature Instability) e a implementação de uma hierarquia de
memória para multicore com manutenção da coerência da memória.
Agradecimentos
Agradeço ao projeto PIBITI-UFPI por me dar oportunidade de poder participar do
meio de pesquisa e de inovação tecnológica, algo que me engrandece muito como
discente dessa instituição. Agradeço também ao meu orientador que me auxiliou no
desenvolver do projeto.
Referências Bibliográficas
US7642864 -Circuits and design structures for monitoring NBTI (negative bias
temperature instability) effect and/or PBTI (positive bias temperature instability)
effect.
US8456247 - Monitoring negative bias temperature instability (NBTI) and/or positive
bias temperature instability (PBTI).
US20120194222- Memory having a latching sense amplifier resistant to negative
bias temperature instability and method therefor.
US20090132849 - Method and Computer Program for Selecting Circuit Repairs
Using Redundant Elements with Consideration of Aging Effects.
Download