Whats the smallest computer you could make? - Page 1
Forum section: electronics / projects

author: typematrix
author_rank: Contributor
timestamp: May 30, 2019, 12:47:54 am
content: HiI was watching one of those "I built a 8-bit computer videos".I just had a Thought.Whats the smallest computer you could make at home as a hobbyist,I mean in terms of components counts not physical size.No microcontrollers.First of all define a "computer". There are a lot of different definitions, for example .merriam-webster : a programmable usually electronic device that can store, retrieve, and process data.

author: xrunner
author_rank: Super Contributor
timestamp: May 30, 2019, 01:20:16 am
content: Quote from: typematrix on May 30, 2019, 12:47:54 amYou mean like a trivial super-basic "computer" that technically meets the definition? I guess the processing is the question You could make a simple thing that would store a one or a zero by a simple input button, that's the simplest memory you could do and simplest data. But what are you going to "process" with the simplest memory? Do you need two memory locations to be able to claim it could process data - like add?I don't think you could claim it was much of a computer, but perhaps by the rules it might be. See what other people say.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: May 30, 2019, 01:28:51 am
content: What's wrong with a microcontroller? They're single chip solutions. You've been long beaten to it by the manufacturers!As a microcontroller more than adequately meets your criteria other than the direct prohibition, I wonder if you simply don't know what a microcontroller can offer, or what differentiates computers by application, or if you're fishing for a much narrower definition than the dictionary's most general definition.In any case, it would seem much more interesting discussions would be had in these directions?Examples:If you're thinking of something much more familiar, e.g., something with human-scale peripherals or at least ports compatible with such -- then, you'll have a hard time reducing it below the size of those connectors. But the connectors themselves are arbitrary, if one does not insist on forcing a requirement of standard peripherals.Plenty of SBCs approach this, from rPi's (studded with connectors, more or less setting the outline of the board), to say, CF or SD card computers (which don't have much connectivity by themselves, and need some kind of bus interface and IO expansion to connect to offer the usual ports).Even the relatively sizable "laptop" has some relevance here. Consider its absolutely minimal case: the docking port. This is usually a small high-speed connector, with a few hundred pins total. A very compact (and probably much less powerful) computer could be plugged into such a connector, and the laptop dock itself meets a criteria of "standard peripheral". This would allow something smaller than a credit card to operate all the standard devices we expect with a personal computer.Tim

author: DaJMasta
author_rank: Super Contributor
timestamp: May 30, 2019, 03:05:50 am
content: I think you're going to have to be more specific about your restrictions, because a single micro on a battery can be a full fledged computer minus peripherals. Stuff is very integrated, and even full ARM based linux machines can be run on a chip, some nonvolatile storage, some bypass caps, and whatever interface connectors/bits you need.Now maybe if you restrict the architecture to something that doesn't have a full system on a chip design available (though you could always make a soft core in an FPGA), or you restrict it to TTL parts or something then your answer isn't just "a single chip", probably not even requiring bypass caps at slower speeds.

author: NiHaoMike
author_rank: Super Contributor
timestamp: May 30, 2019, 04:33:20 am
content: I think the exclusion of microcontrollers is to not make the problem too easy. It wouldn't be much of a challenge if you could just buy a microcontroller and call it done.As for the physically smallest DIY computer including a reasonable form of user interface, it would have to be some sort of smartwatch.

author: Someone
author_rank: Super Contributor
timestamp: May 30, 2019, 08:52:40 am
content: Quote from: typematrix on May 30, 2019, 12:47:54 amIt is a very interesting concept to explore, there are many people building or simulating very simple processors:http://www.microcorelabs.comIt can get a fair bit smaller than that, there are practical uses for soft cores with just a few instructions. The differentiation between a state machine and a computer is usually addressable registers/memory but many other definitions exist. If you want to play around with the ideas a small FPGA board is much faster to prototype with than hardware, even CPLDs can fit practical processors:https://www.bigmessowires.com/cpu-in-a-cpld/

author: Rerouter
author_rank: Super Contributor
timestamp: May 30, 2019, 09:04:35 am
content: The answer I think your digging for is what is the least amount of logic gates required to build a turing complete device.Atleast that is the most I can minimalise "computer" to, anything less would not be able to compute everything.Now that is all fine and dandy, but unless you give a task your trying to accomplish, It probably will not end up how you hope, e.g. the MOV command is turing complete, so if you build a very stripped back 8 bit cpu with an instruction pointer, some memory and only processes "MOV" from 1 location to another, you have a computer, It will be a pain to program or use. but it will be about as reduced as you can make it.If you wanted to go on the other side of the argument, take a CPU design you like, e.g. a normal 8 bit, spend some time learning the tools universities use for old silicon processes. e.g. 10 um silicon, and draw it up and get it produced, congrats, you now have a CPU that is less than a square mm,Or the third side, if you want out of silicon, you can build logic gates mechanically, you can likely use MEMs tech to build a mechanical cpu of your choosing down in the um to nm scale, definatly not a microcontroller, but a CPU none the lessOr even weirder, photonics, Its not outside of what is possible today to build an optical computer around the same scales, most of the logic gate designs are well documented. just I imagine it would use a lot more power maintaining something like 8 bits worth of memory.

author: iMo
author_rank: Super Contributor
timestamp: May 30, 2019, 09:30:08 am
content: Quote from: typematrix on May 30, 2019, 12:47:54 amAt home you can build the smallest computer powerful like any, say, 16 (or even32)bitters with "os", plenty of memory, IOs and tons of spare logic, with just 1-2 parts (no MCU).

author: xrunner
author_rank: Super Contributor
timestamp: May 30, 2019, 12:09:46 pm
content: Quote from: Rerouter on May 30, 2019, 09:04:35 amRight, that's what he's asking, it's a theoretical sort of question. I don't think it has any practical applications, but that's OK. What's the smallest minimalistic machine that can be defines as a computer.

author: joeqsmith
author_rank: Super Contributor
timestamp: May 30, 2019, 12:21:28 pm
content: Without peripherals, an FPGA and PROM.

author: eugenenine
author_rank: Frequent Contributor
timestamp: May 31, 2019, 12:47:56 am
content: 6502, rom, ram and a handful of support components.http://www.sunrise-ev.com/6502.htm

author: RES
author_rank: Regular Contributor
timestamp: May 31, 2019, 09:01:07 am
content: 1-bit cpu i.e. Motorola MC14500B DIP16.https://en.wikipedia.org/wiki/1-bit_architecturehttps://en.wikipedia.org/wiki/Motorola_MC14500Bhttps://m.eet.com/media/1122084/0112esdganssle01.png

author: ChristofferB
author_rank: Frequent Contributor
timestamp: May 31, 2019, 09:21:09 am
content: One chip - Motorola 6801/6805.Basically a 6800 with a sprinkle of ram (I think 128 bytes) and a mask rom in the same package. Still not a microcontroller! Still had Von Neumann-architecture.I believe they made them with a piggyback eprom soctet on top for the romantic, too.

author: TomS_
author_rank: Frequent Contributor
timestamp: May 31, 2019, 10:43:57 am
content: You could build a minimal Z80 computer with "about 6" chips:* CPU* ROM* RAM* 1-2 glue logic* PIO and/or SIO for some I/OThe address space would be very coarsely segmented, but that is a price you pay for minimalism. Add an oscillator, and a few resistors and capacitors here and there as required.

author: joeqsmith
author_rank: Super Contributor
timestamp: May 31, 2019, 11:47:46 am
content: Quote from: ChristofferB on May 31, 2019, 09:21:09 amI don't think we started using the word microcontroller when the 01 was released, not that it's not one.My book from 1981, Motorola uses the term microcomputer1983, same1984, they still use the term microcomputer, even for the 6811Looking at my 1988 book, I see they are using microcontrollerMaybe someone else could chime in on when that term was first introduced.

author: magic
author_rank: Super Contributor
timestamp: May 31, 2019, 11:59:04 am
content: I suppose you could build a universal Turing machine from a magnetic tape head and a few logic chips to manage state transitions.Everybody else is trying to sell you an overkill

author: TomS_
author_rank: Frequent Contributor
timestamp: May 31, 2019, 12:06:10 pm
content: Quote from: magic on May 31, 2019, 11:59:04 amIf we're going there, why not a (E)EPROM state machine, which could potentially be single chip?

author: EEVblog
author_rank: Unknown
timestamp: May 31, 2019, 12:14:25 pm
content: Tiny FPGA?

author: magic
author_rank: Super Contributor
timestamp: May 31, 2019, 12:26:56 pm
content: Quote from: TomS_ on May 31, 2019, 12:06:10 pmThat would be a finite state machine, wouldn't it?A Turing machine starts with some input data and instructions and starts churning, producing new data on the tape, never seen before. If it runs out of tape, you load a bigger one and pretend it's infinite.A finite state machine is designed to only ever assume a certain number of pre-determined states and every calculation it performs is just a walk through a path intended by the designer. I wouldn't call that a computer.But EEPROM or SRAM could be employed with a bidirectional counter to replace tape in the 21st century

author: chris_leyson
author_rank: Super Contributor
timestamp: May 31, 2019, 12:38:34 pm
content: Xilinx's 8-bit PicoBlaze, KCPSM6, fits into 26 logic slices on Spartan-6, Virtex-6 or Virtex-7 and uses 1 block RAM.Older generation KCPSM3 used 96 slices on Spartan3.

author: SiliconWizard
author_rank: Super Contributor
timestamp: May 31, 2019, 02:10:28 pm
content: Quote from: joeqsmith on May 31, 2019, 11:47:46 amI think the first chip really akin to a microcontroller was the TMS1000 (https://en.wikipedia.org/wiki/Texas_Instruments_TMS1000) in 1974 (although the TMS1802 in 1971 was already its precursor but much less capable). Then Intel shipped the 8048 in1976. I think both were called something like "single-chip microcomputers" at the time.It looks like the term started to appear in an Intel datasheet for the MCS-48 family in the 80s. Not quite sure about the exact year and if Intel was really the first to coin the term.

author: RJSV
author_rank: Super Contributor
timestamp: June 06, 2019, 09:31:26 pm
content: HI There. I did lots of thinking, and have read some of Alan Turing's 1940's and 1950's work. Attempting to find (full employment) here in 'Silicon Valley' I created and filed for a US Patent on using MECHANICAL LOGIC (2002). The purpose, first was intended for teaching. The simplest summary would be that I worked on creating a mechanical version resembling, more or less, the popular 8-bit 6502 processor.Now, a point I would make, is that you don't strictly need EVERY boolean logic variety to be a computer. Such functions as exclusive OR do not have to be included, as some kind of grade-school requirement... For example, you can build an 'adder', just by committing the results to a block of memory... Say you want 'inverse hyperbolic Secant', well, just pre-calculate the answers, and commit to a memory block. Function is there, now folks can argue the solution 'does not satisfy Turing's Law', and besides, that's ridiculous to use 100 bytes in Read only memory, just to implement an ADDER!Whew, I always have fun with that one... (lol). Thanks

author: David Hess
author_rank: Super Contributor
timestamp: June 07, 2019, 02:58:20 am
content: Turing machines are a useful standard but not real practical. Useful processors have functions way beyond what a Turing machine requires.For practical implementations, I would say a programmable logic chip plus non-volatile storage so that could get you down to two chips and even be useful. Some programmable logic includes non-volatile storage so that is one chip. This is for a true processor and not just a state machine.At the gate level I am not sure about the smallest size but CPUs can be built with 1000s of gates excluding memory. An online search shows computers built with 100s of transistors. It would be fun to build something using just discrete bipolar injection logic.

author: westfw
author_rank: Super Contributor
timestamp: June 07, 2019, 11:48:58 am
content: There's a lovely 4chip z80 system that uses a z80, a memory chip, a small bit of glue logic for the z80 to,acccess the memory. And then there’s an avr mixrocontroller that serves as storage,bootloader, and all the peripherals, over on hacaday.io runs cp/m and ismexpandable.The same scheme should work for other cpus as well......Edit: I left out the link:https://hackaday.io/project/159973-z80-mbc2-4ics-homemade-z80-computer

author: RJSV
author_rank: Super Contributor
timestamp: June 07, 2019, 02:54:33 pm
content: Hello Typematrix! OOPs, shot my mouth off (again); I had meant to say, you could have a processor using non-silicon technology, where it is the case that its easier to do MATH functions by table lookup, rather than actual ALU logic. A decimal mode multiplier, for example, can perform a multiply by placing the two input digits together, concatenating into an address, such as '42', when doing a 4 times 2 multiply. (The answer would be '08', as a two digit result.)Of course any table lookup method must have a well behaved input, such as SINE wave lookup, using zero though 90 degrees. Obviously, an 'inverse SINE' lookup table does not appear practical, as the input values aren't going to show a sequential form, for the pointer to the table values. Still, there can be some powerful lookups done, such as SINE lookup, producing 3 digits of result for each angle of input.While development of the mechanical computer was most focus on 'imitation' of electronic gates and existing bus architectures one of the more interesting MEMs developments had implemented a transistor function using a vibrating column, used to transfer single electrons as it gets close to either side (electrode). I believe that development was being done as a university physics dept.Mostly, practical systems are going to have layers, as the network folks say; and I would say the layers are for data transfer (gate layer), next are layer(s) doing the micro-code, as in the 6502 instruction set, for example. Next up is going to start to be operating systems. My approach, to a mechanical system, would be to get upwards a couple layers, to where a user does not know or need to knowwhat the signal level hardware is or is doing. Thus some students could stick to learning software, rather than delving into the physics of the gates.I was convinced, and still am, that the students, learning on a mechanical gate system, would come up with things I would never have thought of !Typematrix, I think this question you've asked is one of the best, in this blog system !