Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!xanth!ukma!psuvm.bitnet!cunyvm!nyser!cmx!goedel!hamid From: hamid@goedel.uucp (Hamid Bacha) Newsgroups: comp.arch Subject: Re: Content Addressible Memories Message-ID: <1036@cmx.npac.syr.edu> Date: 26 Jan 89 03:22:51 GMT References: <12371@srcsip.UUCP> <367@enint.Wichita.NCR.COM> <6694@pucc.Princeton.EDU> <13308@srcsip.UUCP> Sender: usenet@cmx.npac.syr.edu Reply-To: hamid@logiclab.cis.syr.edu (Hamid Bacha) Organization: Logic Lab, CIS Dept., Syracuse University Lines: 57 During the month of December, there was an interesting discussion concerning Content-Addressable Memories. With regard to some possible uses of the CAM, there was this exchange: In article <367@enint.Wichita.NCR.COM>, lpelleti@enint.Wichita.NCR.COM (Larry Pelletier) writes: >There was never a "popular" programming paradigm that could really take >advantage of content addressable memories. Although some things could be >done, it really didn't help the concepts of data and code in languages such >as Fortran, Cobol, Pascal, or C. and In article <13308@srcsip.UUCP>, shankar@src.honeywell.COM (Son of Knuth) writes: >That's probably correct with procedural languages, but how about languages >like Prolog or other logic languages? I believe that the use of CAMs would >lead to significantly greater performances then the use of the more >traditional indexing schemes for rule unification and retrieval, despite >problems with inherently sequential portions of the problem. CAMs can also >be used for maintenance of the binding environments. I recently developed a Prolog Abstract Machine for content-addressable memory (along the lines of the Warren Abstract Machine). This new abstract machine is shown to be superior to the WAM in many respects. It is discussed in detail in a paper that was submitted to the next International Conference on Logic Programming (Lisbon '89). It has also been published as a technical report by the CASE Center (New York State Center for Advanced Technology in Computer Applications and Software Engineering) at Syracuse University. Anybody interested in obtaining a free copy of this report should contact Donna McCammon at (315)-443-1066 or write to her at: CASE Center 120 Hinds Hall Syracuse University Syracuse, NY 13210 The technical report number is: 8816 and the title is: "Beyond the WAM: A PAM for the CAM" (a Prolog Abstract Machine for Content-Addressable Memory). Following is a brief list of the advantages that this abstract machine model enjoys over the Warren Abstract Machine: *When binding a variable, there is no need to check whether it should be trailed. *No trailing means no resetting of variables on failure, and no trail to manage. *No need to check for unsafe variables because there are none. *No read or write mode when dealing with lists and structures. This eliminates the S register. *No need to initialize unbound variables when a structure is built. Arguments of structures are accessed by position and their absence from the CAM indicates that they are unbound. *Fewer number of instructions means a less complex compiler and a smaller emulator. The 26 GET, PUT and UNIFY instructions from the WAM are replaced by 15 new instructions that are no more complex than their WAM counterparts.