Relay Computer Pi - Ep5 - Going full Turing
Автор: Paul Law
Загружено: 2025-03-07
Просмотров: 1550
I'm working towards my electromechanical relay computer calculating Pi to 20 digits and this time it's a major milestone - Turing completeness!
If you'd like to play with the code shown in this episode you can use https://editor.relaycomputer.co.uk and load the fibonacci example from the import menu.
Links to the Alan Turing book and film mentioned in this episode:
Alan Turing: The Enigma: https://www.turing.org.uk/book
The Imitation Game: https://www.imdb.com/title/tt2084970
Chapters:
00:00 Introduction & series recap
01:13 Turing machines
04:45 Instruction design
08:02 Sequencing
11:02 Instruction timing
13:45 Hardware implementation
18:34 Programming
23:18 Demonstration
26:38 Milestone achieved
If you'd like an overview of my Relay Computer then this is a good place to start: • Relay Computer 2020 Review: Architecture and more information on my relay computer can be found here on my YouTube channel and on my blog at https://relaycomputer.co.uk
In this episode:
I start off talking through the great progress made so far towards calculating Pi on my relay computer however I won't be getting much further because my computer isn't Turing complete. I've mentioned Turing completeness a few times in the series so this time I talk through what that is, why it's important for computing Pi and why my relay computer isn't Turing complete ... yet.
The architecture of my computer is Turing complete but I'm missing some key functionality in the physical computer - the Store and Load instructions. I then talk through the design of those instructions along with another useful function: the 16-bit increment XY.
Whilst we're talking of instructions it makes sense to revisit sequencing and controller design in general so I walk through how the sequencer unit works and how the states it counts through are used to generate a series of timing pulses. From there we can create instruction timing diagrams and therefore know which control lines to operate to complete the desired instruction.
Next I talk through the circuit diagrams for the load, store and increment instructions and that leads us to the final PCB design. It turns out that these PCBs already exist in the computer and the new instructions are there but they're missing the required relay and so, with that, it's soldering time.
To test the Turing completeness of my computer I need a test program and so I revise my simple Fibonacci example and extend it to write the results into memory. This is all done in my 'special' relay computer assembly language which makes it much easier to write and read programs.
With the example in hand I can then load it into my relay computer and demonstrate it working ... and with that done that's a major milestone completed for this series but also for my relay computer in general. I'm now surer than ever that my computer can calculate Pi in theory but it'll just come down to run time and reliability rather than the capability of my computer.
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: