[Python-ideas] Associative arrays in hardware

Neil Toronto ntoronto at cs.byu.edu
Wed Apr 16 09:00:58 CEST 2008


Greg Ewing wrote:
> Neil Toronto wrote:
>> Full-on associative memory wouldn't be necessary. If there were a 
>> machine-level instruction in current chips that did a dict-style lookup 
>> almost as fast as a base+index*size,
> 
> But how would you make it that fast without some kind of
> associative lookup hardware?

Good point. They'd have to add that to the RAM. :D Or at least the cache...

> Without that, you'd just be implementing the Python dict
> lookup algorithm in microcode, which might be a bit
> faster, but not spectacularly so -- the same number of
> memory accesses would still be needed.

Right, it's memory access that's the bottleneck. A hardware dict lookup 
could know its own memory access characteristics and plan for them. In 
particular, it would be much better at predicting what to bring into 
cache next than current CPUs are at predicting based on software 
algorithms, if they predict at all. On the other side of it, they could 
optimize their lookups for their own hardware, particularly collision 
resolution methods.

Neil



More information about the Python-ideas mailing list