Method and apparatus for prefetching recursive data structures

   
   

Computer systems are typically designed with multiple levels of memory hierarchy. Prefetching has been employed to overcome the latency of fetching data or instructions from or to memory. Prefetching works well for data structures with regular memory access patterns, but less so for data structures such as trees, hash tables, and other structures in which the datum that will be used is not known a priori. The present invention significantly increases the cache hit rates of many important data structure traversals, and thereby the potential throughput of the computer system and application in which it is employed. The invention is applicable to those data structure accesses in which the traversal path is dynamically determined. The invention does this by aggregating traversal requests and then pipelining the traversal of aggregated requests on the data structure. Once enough traversal requests have been accumulated so that most of the memory latency can be hidden by prefetching the accumulated requests, the data structure is traversed by performing software pipelining on some or all of the accumulated requests. As requests are completed and retired from the set of requests that are being traversed, additional accumulated requests are added to that set. This process is repeated until either an upper threshold of processed requests or a lower threshold of residual accumulated requests has been reached. At that point, the traversal results may be processed.

Os sistemas computatorizados são projetados tipicamente com níveis múltiplos da hierarquia da memória. Prefetching foi empregado para superar a latência de buscar dados ou instruções ou à memória. Prefetching trabalha bem para estruturas de dados com testes padrões regulares do acesso de memória, mas menos assim para estruturas de dados tais como árvores, tabelas da mistura, e outras estruturas em que a referência que será usada não é sabida a priori. A invenção atual aumenta significativamente as taxas de batida do esconderijo de muitos traversals importantes da estrutura de dados, e desse modo o throughput potencial do sistema computatorizado e da aplicação em que é empregado. A invenção é aplicável 2 aqueles acessos da estrutura de dados em que o trajeto traversal é determinado dinâmicamente. A invenção faz esta agregando pedidos traversal e então pipelining o traversal de pedidos agregados na estrutura de dados. Uma vez que bastante pedidos traversal foram acumulados de modo que a maioria da latência da memória possam ser escondidas prefetching os pedidos acumulados, a estrutura de dados é atravessada executando o encanamento do software em algum ou os todos os pedidos acumulados. Como pedidos são terminados e aposentado do jogo dos pedidos que estão sendo atravessados, os pedidos acumulados adicionais são adicionados àquele ajustam-se. Este processo é repetido até que um ponto inicial superior de pedidos processados ou um ponto inicial mais baixo de pedidos acumulados residuais estejam alcançados. Nesse ponto, os resultados traversal podem ser processados.

 
Web www.patentalert.com

< Self archiving log structured volume with intrinsic data protection

< Automatic database statistics creation

> Intelligent data inventory and asset management system method and apparatus

> Application independent write monitoring method for fast backup and synchronization of open files

~ 00157