Dependemos cada vez mais dos computadores para desempenhar atividades vitais e de maneira implícita ou explícita confiamos a eles a responsabilidade de executá-las corretamente. Os circuitos de memória em particular, nos últimos anos, têm sua confiabilidade ameaçada por conta da redução da vida útil dos transistores, decorrente da instabilidade de temperatura de polarização negativa (Negative Bias Temperature Instability – NBTI). Neste trabalho, propomos uma solução arquitetural, denominado CACTO (Cache Tolerante a falhas), para tratar falhas permanentes em memórias cache. A abordagem usa uma FIFO (Fist In First Out), uma cache redundante e um vetor de falhas para detectar, sinalizar e lidar com falhas nestas memórias. Durante uma operação de escrita, a palavra é gravada simultaneamente na cache e na FIFO. Então, uma comparação é realizada para avaliar se a palavra duplicada tem o mesmo valor em ambas as memórias. Caso haja divergência entre valores comparados, a palavra da cache é definida como defeituosa, sua referência no vetor de falhas é atualizada e não será mais possível acessá-la durante operações de leitura ou escrita. Além disso, a palavra escrita na FIFO é copiada para a cache redundante e todos os acessos relacionados ao endereço defeituoso na cache principal serão encaminhados para a cache redundante. A solução proposta foi implementada usando duas abordagens. Na primeira, a cache aplica a política de substituição LRU (Least Recently Used). Na segunda, a cache combina LRU com um rodízio, quando existem linhas livres, para reduzir o número de operações write-back. Em ambos os casos, a cache redundante usa o mapeamento direto. A solução proposta foi validada usando uma implementação em VHDL (VHSIC Hardware Description Language), prototipada em FPGA (Field Programmable Gate Array). Os resultados da simulação mostram que, com o modelo proposto, é possível obter taxas de hit entre 95% e 99%, mesmo quando a memória cache apresenta falhas em até 80% de suas linhas.