CompuServe Messages

32 bit ram?

    06-Jul-91 00:41:51
Sb: #27353-32 bit ram?
Fm: Charles Blaquiere 76046,1756
To: Don Curtis/SYSOP 76703,4321
Don, there is a very specialized type of memory called associative memory. It works as an instantaneous table search. One use is for operating systems that feature virtual memory, where the logical address of a piece of data may be different from the physical address. For example, say you have a Meg of memory configured as 256 pages of 4K, and say that the total virtual memory space you could address is 256 Meg. This means that virtual pages would be numbered 0-65535. You would have a table somewhere in associative memory (outside the Meg of main RAM) that indicates the virtual page number of the data found in each of the 256 physical pages. If a program needs access to a location in, say, page 2001, you would do a table search to see if page 2001 is in main RAM. If so, you can point the program to the right physical page; if not, you'd need to swap out one of the pages in main RAM to disk, and read in page 2001 off the disk. (I know this is a lot to swallow but it's late and my english isn't that clear even in the daytime) Here is where the magic of associative memory come into play. In a normal memory area, you would have to search the table for the value 2001 sequentially, which could take up to 256 operations. (Even on processors that implement a table search as one opcode, the processor would still need to perform up to 256 separate comparisons) But with associative memory, each memory cell would compare its value with the 2001 being fed to the chip, and raise its flag if a match was found. This is hardware parallelism: all 256 comparisons are made at the same time. You could then have the 256 flags being fed into a big OR gate to send a single "found/not found" result back to the processor. As far as figuring out just which cell holds the desired value, I'm fuzzy on this; my operating systems and computer architecture courses are 4 years away. Blaq! – via Whap!