A Hierarchical Associative Memory Architecture for Logic Programming Unification