Sliding block memory: Difference between revisions

From LifeWiki
Jump to navigation Jump to search
m When I _do_ look at the preview properly, there's never anything wrong...
Confocal (talk | contribs)
m →External links: category
 
(4 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Glossary}}
{{Glossary}}
A '''sliding block memory''' is a memory register whose value is stored as the position of a [[block]]. The block can be moved by means of [[glider]] collisions. See [[block pusher]] for an example.
A '''sliding block memory''' is a memory register whose value is stored as the position of a [[block]]. The block can be moved by means of [[glider]] collisions. See [[block pusher]] for an example.


In Conway's original formulation, as part of his proof of the existence of a [[universal computer]] in Life, two gliders were used to pull the block inwards by three diagonal spaces as shown below, and thirty gliders were used to push it out by the same amount.
In Conway's original formulation, as part of his proof of the existence of a [[universal computer]] in Life, two gliders were used to [[pull]] the block inwards by three diagonal spaces as shown below, and thirty gliders were used to [[push]] it out by the same amount.


{{EmbedViewer
{{EmbedViewer
|pname        = Originalsbmpull
|pname        = originalsbmpull
|viewerconfig = #C [[ THUMBNAIL THUMBSIZE 2 THEME 6 GRID GPS 10 LOOP 40 ZOOM 20 PAUSE 2 AUTOSTART ]]
|viewerconfig = #C [[ THUMBNAIL THUMBSIZE 2 THEME 6 GRID GPS 10 LOOP 40 ZOOM 20 PAUSE 2 AUTOSTART ]]
|position    = center
|position    = center
}}
}}


Dean Hickerson later greatly improved on this,<ref>{{cite web|url=http://conwaylife.com/ref/lifepage/patterns/sbm/sbm.html|title=Description of sliding block memory|date=March 1, 1990|work=Paul Callahan's Game of Life Miscellany|author=Dean Hickerson|accessdate=February 17, 2018}}</ref> finding a way to pull a block inwards by one diagonal space using 2 gliders, and push it out the same distance using 3 gliders. In order for the memory to be of any use there also has to be a way to read the value held. It suffices to be able to check whether the value is zero (as Conway did), or to be able to detect the transition from one to zero (as Hickerson did).
Dean Hickerson later greatly improved on this, finding a way to pull a block inwards by one diagonal space using 2 gliders, and push it out the same distance using 3 gliders. In order for the memory to be of any use there also has to be a way to read the value held. It suffices to be able to check whether the value is zero (as Conway did), or to be able to detect the transition from one to zero (as Hickerson did).


Dean Hickerson's sliding block memory is used in Paul Chapman's [[URM]], and several other complex constructions such as Adam P. Goucher's [[pi calculator]] and [[Spartan]] [[universal computer]]-constructor, and David Bell's [[Collatz 5N+1 simulator]].
Dean Hickerson's sliding block memory is used in Paul Chapman's [[URM]], and several other complex constructions such as Adam P. Goucher's [[pi calculator]] and [[Spartan universal computer-constructor]], and David Bell's [[Collatz 5N+1 simulator]].


== References ==
== External links ==
<references />
* {{LinkLexicon|lex_s.htm#slidingblockmemory}}
* {{LinkCallahan|patterns/sbm/sbm.html|patternname=Sliding block memory}}


==External links==
[[Category:Universal computation]]
{{LinkLexicon|lex_s.htm#slidingblockmemory}}

Latest revision as of 05:21, 24 March 2023

A sliding block memory is a memory register whose value is stored as the position of a block. The block can be moved by means of glider collisions. See block pusher for an example.

In Conway's original formulation, as part of his proof of the existence of a universal computer in Life, two gliders were used to pull the block inwards by three diagonal spaces as shown below, and thirty gliders were used to push it out by the same amount.

x = 12, y = 9, rule = B3/S23 2o$2o4$9b3o$3o6bo$o9bo$bo! #C [[ THUMBSIZE 2 THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]] #C [[ THUMBNAIL THUMBSIZE 2 THEME 6 GRID GPS 10 LOOP 40 ZOOM 20 PAUSE 2 AUTOSTART ]]
(click above to open LifeViewer)
RLE: here Plaintext: here

Dean Hickerson later greatly improved on this, finding a way to pull a block inwards by one diagonal space using 2 gliders, and push it out the same distance using 3 gliders. In order for the memory to be of any use there also has to be a way to read the value held. It suffices to be able to check whether the value is zero (as Conway did), or to be able to detect the transition from one to zero (as Hickerson did).

Dean Hickerson's sliding block memory is used in Paul Chapman's URM, and several other complex constructions such as Adam P. Goucher's pi calculator and Spartan universal computer-constructor, and David Bell's Collatz 5N+1 simulator.