Last visit was: Fri Jul 19, 2024 6:01 am
It is currently Fri Jul 19, 2024 6:01 am

 [ 4 posts ] 
 new to me: clothesline memory 
Author Message

Joined: Wed Jan 09, 2013 6:54 pm
Posts: 1789
Having today received a book in the post: Turing's Legacy (A History of Computing at the National Physical Laboratory, 1945-1995) I've flipped through it looking for items of interest. And here's one: 'clothesline memory'. To the programmer, or indeed to the program, it appears as just a pair of read/write locations. Behind those locations is some reasonable amount of memory, with a head and a tail pointer. Depending on the access pattern, the memory can be used as a stack or a FIFO: the program can read or write at either end, either extending the clothesline or reducing its length.

The idea, at minimum, is to make a lot more memory available than the address space of the host machine. No reason not to hang a pair of clotheslines, or a larger number.

Any interesting thoughts on how one might make use of a variable length buffer like this? Unlike a plain FIFO, it's possible to both read and un-read bytes. Perhaps with a pair of clotheslines one could implement a very large edit buffer for a text, with the insertion point being between them.

Mon Feb 08, 2021 2:39 pm

Joined: Tue Dec 18, 2018 11:25 am
Posts: 43
Location: Hampshire, UK.
Not only can that be used to implement a stack machine processor but it could also be used to implement a queue machine processor.

Mon Feb 08, 2021 5:15 pm

Joined: Mon Aug 14, 2017 8:23 am
Posts: 157
EdS wrote:
The idea, at minimum, is to make a lot more memory available than the address space of the host machine. No reason not to hang a pair of clotheslines, or a larger number.

This is an interesting idea for some common applications. The idea of maximising the length of the queue of inline instructions, and minimising jumps and calls - because random access is going to have severe time and complexity penalties.

Think of a CNC drill program coded onto a paper tape. The controller need only read X, read Y, move drill to coordinates (X,Y) and drill hole, then move to the next instruction(s). Once in a while it might have to change the drill size, or replace with a sharper one - but essentially it is a sequential process limited only by the length of the paper tape.

The controller, back in the day would not have and does not need to have random access to every location on the tape

The other example is a video display, read the byte or bytes for the next pixel and push it out to the video system. Repeat until the end of the line, and ultimately repeat to the end of the frame.

Both of these applications would appear to be suitable for a clothesline or Queue machine.

A modern example is SPI serial memory - this is the modern equivalent of paper tape. Just keep clocking and the data automatically progresses byte after byte until the end of the memory - at which point it wraps around back to the beginning.

As with all serial memory, random access incurs a high overhead, but for a Queue machine with long unbroken runs of inline code it would make perfect sense.

Serial memory is now offering dual SPI, quad SPI and even octal SPI as a means to provide a greater bit rate. This is the equivalent of Ed's multiple clothes lines.

Because a subroutine call could create a large time penalty - it might be more efficient to switch to a different "clothes line" in order to execute the subroutine code.

Two closing thoughts - nobody likes a queue jumper, and don't air your dirty washing in public........

Last edited by monsonite on Tue Feb 16, 2021 5:58 pm, edited 2 times in total.

Tue Feb 16, 2021 5:50 pm

Joined: Wed Nov 20, 2019 12:56 pm
Posts: 92
This is making me think of The Mill's "Belt" concept, too.

Tue Feb 16, 2021 8:21 pm
 [ 4 posts ] 

Who is online

Users browsing this forum: CCBot and 0 guests

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software