Skip to Main Content
The design of a simple hardware memory allocator is described, which allocates blocks of different lengths L = 2h = K, K-1,..., K-n in a memory according to the buddy system algorithm. The binary tree, representing the distribution of free and used blocks in memory is mapped into a set of shift registers. They are connected for end-around shifting and clocked with frequencies different for each register, preserving thereby the internal structure of the binary tree. A small counter, attached to each shift register in the set holds the address of the first free block and can be read out on request within 0.5 μs. A simple control unit realizes the algorithm. Having answered a request the system needs about 130 μs to compute the addresses of free blocks in a total of 511 blocks managed by the device.