Suppose you have elements no more than 'n' as of now (of course you can add elements in, later) and you want to create a linked list, the best way in terms of cache performance is to select Unrolled linked list. You create a blocks of size ceil square root on n and then start add elements in the block if its size is less than ceil of square root of n. Thus you have finally floor of square root on n blocks. This is useful in searching a kth node in linked list as its complexity has now been decreased from n to square root of n.
When the block is full, means if the block contains equal to square root of n elements, you have to make a shift operation such that the tail in that block becomes the head of the next block and the tail of that next block becomes the head of its next and so on till you hit NULL
In each block, circular linked list is maintained rather than simple linked list.
Hope this helps.. :)